IP Library Granted Patent US 9,442,846
Granted Patent B2
US 9,442,846 · App. 12/806,631 · Granted Sep 13, 2016

High speed memory systems and methods for designing hierarchical memory systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,442,846
App. No.
12/806,631
Granted
Sep 13, 2016
Kind
B2
Abstract

A system and method for designing and constructing hierarchical memory systems is disclosed. A plurality of different algorithmic memory blocks are disclosed. Each algorithmic memory block includes a memory controller that implements a specific storage algorithm and a set of lower level memory components. Each of those lower level memory components may be constructed with another algorithmic memory block or with a fundamental memory block. By organizing algorithmic memory blocks in various different hierarchical organizations, may different complex memory systems that provide new features may be created.

Claims (32)

1. A digital memory circuit, comprising:

a set of low-level memory block circuits, each of said low- level memory block circuits comprising

a set of memory banks each having a plurality of entries for storing data, and

a first type of memory controller configured to resolve a memory access conflict of accessing a first entry and a second entry in a first memory bank of the set of memory banks during one clock cycle by servicing access to the first entry of the first memory bank and a third entry of a second memory bank of the set of memory banks and performing a first address translation to map a first address originally targeting the second entry in the first memory bank to a physical address of the third entry in the second memory bank; and

a high-level memory block circuit, comprising

said set of low-level memory block circuits, and

a second type of memory controller configured to resolve a memory access conflict of accessing multiple entries in a target memory bank of a target low-level memory block circuit during one clock cycle by servicing access to at least a target entry in the target memory bank of the target low-level memory block circuit and at least a non-target entry in a non-target memory bank of a non-target low-level memory block circuit and performing a second address translation to map a third address originally targeting the target memory bank of the target low-level memory block circuit to the non-target memory bank of the non-target low-level memory block circuit.

2. The digital memory circuit as set forth in claim 1 wherein said first type of memory controller is configured to support multiple simultaneous read operations.

3. The digital memory circuit as set forth in claim 2 wherein said first type of memory controller is configured to store a primary data value and secondary encoded version for each data item in different memory banks.

4. The digital memory circuit as set forth in claim 3 wherein said secondary encoded version comprises data values from a plurality of different memory banks combined together with an exclusive-OR operation.

5. The digital memory circuit as set forth in claim 2 wherein said second type of memory controller is configured to support multiple simultaneous write operations such that said digital memory circuit can process multiple read operations and multiple write operations simultaneously.

6. The digital memory circuit as set forth in claim 5 wherein said second type of memory controller is configured to use extra low-level memory block circuits to prevent memory bank conflicts.

7. The digital memory circuit as set forth in claim 1 wherein said first type of memory controller is configured to support multiple simultaneous write operations.

8. The digital memory circuit as set forth in claim 7 wherein said first type of memory controller is configured to use extra memory banks and a remapping table to prevent memory bank conflicts.

9. The digital memory circuit as set forth in claim 7 wherein said second type of memory controller is configured to support multiple simultaneous read operations such that said digital memory circuit can process multiple read operations and multiple write operations simultaneously.

10. The digital memory circuit as set forth in claim 9 wherein said second type of memory controller is configured to store a primary data value and secondary encoded version for each data item in different memory banks.

11. The digital memory circuit as set forth in claim 10 wherein said secondary encoded version comprises data values from a plurality of different low-level memory block circuits combined together with an exclusive OR operation.

12. A method of handling memory access requests in a digital memory circuit, said method comprising:

processing a memory request with a first type of memory controller, said first type of memory controller implementing a first type of memory technique by selecting at least one lower-level memory block circuit from a plurality of lower-level memory block circuits to process said memory request; and

processing said memory request with a second type of memory controller in said at least one lower-level memory block circuit, wherein the at least one lower-level memory block circuits comprises a set of memory banks and said second type of memory controller implements a second type of memory technique by resolving a memory access conflict caused by the memory request of accessing a first entry and a second entry in a first memory bank of the set of memory banks during one clock cycle, and the second type of memory technique includes:

servicing access to the first entry of the first memory bank and a third entry of a second memory bank of the set of memory banks, and

performing an address translation to map a first address originally targeting the second entry in the first memory bank to a physical address of the third entry in the second memory bank.

13. The method of claim 12 wherein said first type of memory technique allows for multiple simultaneous read operations.

14. The method of claim 13 wherein said first type of memory technique stores a primary data value and secondary encoded version for each data item in different memory banks.

15. The method of claim 14 wherein said secondary encoded version comprises data values from a plurality of memory banks combined together with an exclusive OR operation.

16. The method of claim 13 wherein said second type of memory technique allows for multiple simultaneous write operations such that said digital memory circuit can process multiple read operations and multiple write operations simultaneously.

17. The method of claim 16 wherein said second type of memory technique uses extra memory banks to prevent memory bank conflicts.

18. The method of claim 12 wherein said first type of memory technique allows for multiple simultaneous write operations.

19. The method of claim 18 wherein said first type of memory technique uses extra lower-level memory block circuits and a remapping table to prevent more than one write operation per lower-level memory block circuit.

20. The method of claim 18 wherein said second type of memory technique allows for multiple simultaneous read operations such that said digital memory circuit can process multiple read operations and multiple write operations simultaneously.

21. The method of claim 20 wherein said second type of memory technique stores a primary data value and secondary encoded version for each data item in different memory banks.

22. The method of claim 21 wherein said secondary encoded version comprises data values from a plurality of different memory banks combined together with an exclusive OR operation.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 035474 FRAME: 0122. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 24, 2015
From: MEMOIR SYSTEMS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 035497/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2015
From: CISCO TECHNOLOGY, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 035474/0122 →
CHANGE OF NAME Recorded Apr 22, 2015
From: MEMOIR SYSTEMS, INC.
To: MEMOIR SYSTEMS LLC
Reel/Frame 035479/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2010
From: IYER, SUNDAR; CHUANG, SHANG-TSE
To: MEMOIR SYSTEMS
Reel/Frame 025103/0724 →