IP Library Granted Patent US 9,026,747
Granted Patent B2
US 9,026,747 · App. 13/718,773 · Granted May 5, 2015

Memory device with a logical-to-physical bank mapping cache

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,026,747
App. No.
13/718,773
Granted
May 5, 2015
Kind
B2
Abstract

A memory device with a logical-to-physical (LTP) bank mapping cache that supports multiple read and write accesses is described herein. The memory device allows for at least one read operation and one write operation to be received during the same clock cycle. In the event that the incoming write operation is not blocked by the at least one read operation, data for that incoming write operation may be stored in the physical memory bank corresponding to a logical memory bank that is associated with the incoming write operation. In the event that the incoming write operation is blocked by the at least one read operation, then data for that incoming write operation may be stored in an unmapped physical bank that is not associated with any logical memory bank.

Claims (62)

1. A memory device comprising:

a plurality of physical memory banks;

at least one cache that is configured to store a logical-to-physical bank map, the logical-to-physical bank map associating each one of a plurality of logical memory banks with a corresponding one of the plurality of physical memory banks; and

control logic coupled to each of the plurality of physical memory banks and to the at least one cache, the control logic being configured to:

determine whether a first incoming write operation configured to write data to a first logical memory bank in the plurality of logical memory banks is blocked by at least one incoming read operation;

write data associated with the first incoming write operation to a first physical memory bank that is associated with the first logical memory bank in the logical-to-physical bank map in response to determining that the first incoming write operation is not blocked by the at least one incoming read operation; and

write data associated with the first incoming write operation to a second physical memory bank that is not associated with any logical memory bank in the logical-to-physical bank map in response to determining that the first incoming write operation is blocked by the at least one incoming read operation.

2. The memory device of claim 1 , wherein the control logic is further configured to perform the following in response to determining that the first incoming write operation is blocked by the at least one incoming read operation:

update the logical-to-physical bank map to associate the second physical memory bank with the first logical memory bank; and

update the logical-to-physical bank map to disassociate the first physical memory bank from any other logical memory bank.

3. The memory device of claim 1 , wherein the control logic is configured to determine whether the first incoming write operation is blocked by two or more incoming read or write operations.

4. The memory device of claim 1 , wherein the control logic is configured to determine whether the first incoming write operation is blocked by the at least one incoming read operation by at least:

reading the cache to identify the first physical memory bank that is associated with the first logical memory bank;

reading the cache to identify a physical memory bank that is associated with a logical memory bank specified by the at least one incoming read operation; and

comparing the first physical memory bank that is associated with the first logical memory bank to the physical memory bank that is associated with the logical memory bank specified by the at least one incoming read operation.

5. The memory device of claim 1 , wherein the cache is configured to store a plurality of logical-to-physical bank maps, wherein each map is stored in a corresponding cache line indexed by a unique read/write address within a physical memory bank.

6. The memory device of claim 5 , wherein each cache line includes a plurality of physical memory bank identifiers, wherein each of the physical memory bank identifiers is indexed by a corresponding logical memory bank identifier.

7. The memory device of claim 6 , further comprising:

encoding logic that is configured to encode each cache line to generate a shorter representation thereof.

8. The memory device of claim 7 , wherein the encoding logic is configured to encode a cache line by:

(a) representing a first physical memory bank identifier in the cache line using a first number of bits and removing the first physical memory bank identifier from an ordered sequence of physical memory bank identifiers;

(b) determining a number of bits required to represent positions of each of the remaining physical memory bank identifiers in the ordered sequence of physical memory bank identifiers;

(c) representing a position in the ordered sequence of physical memory bank identifiers of a next physical memory bank identifier in the cache line using the number of bits determined in step (b);

(d) removing the next physical memory bank identifier from the ordered sequence of physical memory bank identifiers; and

(e) repeating steps (b), (c) and (d) until there are only two physical memory bank identifiers left in the ordered sequence.

9. A method implemented by a memory device that includes a plurality of physical memory banks, comprising:

determining whether a first incoming write operation configured to write data to a first logical memory bank in a plurality of logical memory banks is blocked by at least one incoming read operation;

writing data associated with the first incoming write operation to a first physical memory bank that is associated with the first logical memory bank in a logical-to-physical bank map in response to determining that the first incoming write operation is not blocked by the at least one incoming read operation; and

writing data associated with the first incoming write operation to a second physical memory bank that is not associated with any logical memory bank in the logical-to-physical bank map in response to determining that the first incoming write operation is blocked by the at least one incoming read operation.

10. The method of claim 9 , further comprising

updating the logical-to-physical bank map to associate the second physical memory bank with the first logical memory bank; and

updating the logical-to-physical bank map to disassociate the first physical memory bank from any other logical memory bank.

11. The method of claim 9 , further comprising determining whether the first incoming write operation is blocked by two or more incoming read or write operations.

12. The method of claim 9 , wherein determining whether the first incoming write operation is blocked by at least one incoming read operation comprises at least:

reading the cache to identify the first physical memory bank that is associated with the first logical memory bank;

reading a cache to identify a physical memory bank that is associated with a logical memory bank specified by the at least one incoming read operation; and

comparing the first physical memory bank that is associated with the first logical memory bank and the physical memory bank that is associated with the logical memory bank specified by the at least one incoming read operation.

13. The method of claim 9 , further comprising:

storing a plurality of logical-to-physical bank maps in a corresponding cache line indexed by a unique read/write address within a physical memory bank.

14. The method of claim 13 , further comprising:

indexing a plurality of physical memory bank identifiers included in each cache line by corresponding logical memory bank identifiers.

15. The method of claim 14 , further comprising:

encoding each cache line to generate a shorter representation thereof.

16. The method of claim 15 , wherein encoding each cache line to generate a shorter representation thereof comprises:

(a) representing a first physical memory bank identifier in the cache line using a first number of bits and removing the first physical memory bank identifier from an ordered sequence of physical memory bank identifiers;

(b) determining a number of bits required to represent positions of each of the remaining physical memory bank identifiers in the ordered sequence of physical memory bank identifiers;

(c) representing a position in the ordered sequence of physical memory bank identifiers of a next physical memory bank identifier in the cache line using the number of bits determined in step (b);

(d) removing the next physical memory bank identifier from the ordered sequence of physical memory bank identifiers; and

(e) repeating steps (b), (c), and (d) until there are only two physical memory bank identifiers left in the ordered sequence.

17. An apparatus, comprising:

control logic configured to be coupled to a plurality of memory banks and at least one cache, wherein the control logic is configured to:

determine whether a first incoming write operation configured to write data to a first logical memory bank in a plurality of logical memory banks is blocked by at least one incoming read operation;

write data associated with the first incoming write operation to a first physical memory bank that is associated with the first logical memory bank in a logical-to-physical bank map stored in the cache in response to determining that the first incoming write operation is not blocked by the at least one incoming read operation; and

write data associated with the first incoming write operation to a second physical memory bank that is not associated with any logical memory bank in the logical-to-physical bank map in response to determining that the first incoming write operation is blocked by the at least one incoming read operation.

18. The apparatus of claim 17 , wherein the control logic is further configured to perform the following in response to determining that the first incoming write operation is blocked by the at least one incoming read operation:

update the logical-to-physical bank map to associate the second physical memory bank with the first logical memory bank; and

update the logical-to-physical bank map to disassociate the first physical memory bank from any other logical memory bank.

19. The apparatus of claim 17 , wherein the control logic is configured to determine whether the first incoming write operation is blocked by two or more incoming read or write operations.

20. The apparatus of claim 17 , wherein the control logic is further configured to determine whether the first incoming write operation is blocked by the at least one incoming read operation by at least:

reading the cache to identify the first physical memory bank that is associated with the first logical memory bank;

reading the cache to identify a physical memory bank that is associated with a logical memory bank specified by the at least one incoming read operation; and

comparing the first physical memory bank that is associated with the first logical memory bank to the physical memory bank that is associated with the logical memory bank specified by the at least one incoming read operation.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2012
From: WANG, WEIHUANG; WU, CHIEN-HSIEN; ISSA, MOHAMMAD
To: BROADCOM CORPORATION
Reel/Frame 029547/0601 →