IP Library Granted Patent US 8,514,651
Granted Patent B2
US 8,514,651 · App. 13/302,837 · Granted Aug 20, 2013

Sharing access to a memory among clients

Inventors: Gil Levy (Hod Hasharon, IL); Nafea Bshara (San Jose, CA); Yaron Zimerman (Kiryat Ono, IL); Carmi Arad (Nofit, IL)
Assignees: Marvell World Trade Ltd.; Marvell Israel (M.I.S.L) Ltd.
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 8,514,651
App. No.
13/302,837
Granted
Aug 20, 2013
Kind
B2
Abstract

In a memory device having a set of memory banks to store content data, at least two requests to perform respective memory operations in a first memory bank are received during a single clock cycle. One or more of the at least two requests is blocked from accessing the first memory bank, and in response: redundancy data associated with the first memory bank and different from content data stored therein is accessed, and, without accessing the first memory bank, at least a portion of the content data stored in the first memory bank is reconstructed based on the associated redundancy data. A first memory operation is performed using the content data stored in the first memory bank, and a second memory operation is performed using content data reconstructed i) without accessing the first memory bank and ii) based on the associated redundancy data.

Claims (73)

1. A method of performing memory operations in a memory device having a set of memory banks to store content data, comprising:

receiving, during a single clock cycle, at least two requests to perform respective memory operations in a first memory bank in the set of memory banks;

determining that one or more of the at least two requests is blocked from accessing the first memory bank;

in response to determining that the one or more of the at least two requests is blocked from accessing the first memory bank:

accessing redundancy data associated with the first memory bank and different from content data stored in the first memory bank, and

reconstructing, without accessing the first memory bank, at least a portion of the content data stored in the first memory bank based on the redundancy data associated with the first memory bank;

performing a first requested memory operation using the content data stored in the first memory bank; and

performing a second requested memory operation using content data reconstructed 1) without accessing the first memory bank and ii) based on the redundancy data associated with the first memory bank.

2. The method of claim 1 , wherein:

the set of memory banks is a first set of memory banks,

accessing the redundancy data associated with the first memory bank comprises accessing redundancy data stored in at least one second memory bank in a second set of one or more memory banks,

the at least one second memory bank corresponds to the first memory bank, and

the second set of one or more memory banks is to store storing redundancy data associated with content data stored in the first set of memory banks.

3. The method of claim 2 , wherein reconstructing the at least the portion of the content data stored in the first memory bank based on the redundancy data associated with the first memory bank comprises reconstructing content data stored in a particular address of the first memory bank based on redundancy data stored in a corresponding particular address of the at least one second memory bank.

4. The method of claim 2 , wherein reconstructing the at least the portion of the data stored the first memory bank based on the redundancy data comprises:

reconstructing the at least the portion of the data stored the first memory bank based on the redundancy data stored in the at least one second memory bank and further based on content data stored in a subset of the first set of memory banks, the subset of the first set of memory banks excluding the first memory bank.

5. The method of claim 1 , wherein the redundancy data is first redundancy data, and the method further comprises:

(a) determining that the one or more of the at least two requests is blocked from accessing the first redundancy data, and, based on the determination that the one or more of the at least two requests is blocked from accessing the first redundancy data, forgoing reconstructing the at least the portion of the content data stored in the first memory bank based on the first redundancy data;

(b) determining whether the one or more of the at least two requests is blocked from accessing next redundancy data;

(c) when the one or more of the at least two requests is not blocked from accessing the next redundancy data, reconstructing, without accessing the first memory bank, the at least the portion of the data stored in the first memory bank based on the next redundancy data;

(d) when the one or more of the at least two requests is blocked from accessing the next redundancy data, one of:

attempting to access the first memory bank during a clock cycle that occurs after the single clock cycle; or

repeating steps (b) through (d) for additional redundancy data.

6. The method of claim 1 , wherein reconstructing the at least the portion of the data stored in the first memory bank based on the redundancy data comprises reconstructing the at least the portion of the data stored in the first memory bank based on data corresponding to a parity calculation.

7. A memory device comprising:

a set of memory banks to store content data, the set of memory banks including a first memory bank; and

a memory controller configured to:

when at least two requests to perform respective memory operations the first memory bank are received during a single clock cycle, determine that one or more of the at least two requests is blocked from accessing the first memory bank;

in response to determining that the one or more of the at least two requests is blocked from accessing the first memory bank:

access redundancy data associated with the first memory bank, the redundancy data associated with the first memory bank being different from content data stored in the first memory bank, and

reconstruct, without accessing the first memory bank, at least a portion of the content data stored in the first memory bank based on the redundancy data associated with the first memory bank;

perform a first requested memory operation based on the content data stored in the first memory bank; and

perform a second requested memory operation based on content data reconstructed i) without accessing the first memory bank, and ii) based on the redundancy data associated with the first memory bank.

8. The memory device of claim 7 , wherein:

the set of memory banks is a first set of memory banks,

the memory device further comprises a second set of memory banks to store redundancy data associated with content data stored in the first set of memory banks, and

the redundancy data associated with the first memory bank is stored in at least one second memory bank included in the second set of memory banks.

9. The memory device of claim 8 , wherein the first set of memory banks are arranged in an array, and the second set of memory banks are included in at least one of an additional column of the array or an additional row of the array.

10. The memory device of claim 8 , wherein the memory controller is configured to reconstruct content data stored in a particular address of the first memory bank based on redundancy data stored in a corresponding particular address of the at least one second memory bank.

11. The memory device of claim 7 , wherein the memory controller is configured to reconstruct the at least the portion of the content data stored in the first memory bank based on the redundancy data associated with the first memory bank and further based on content data stored in a subset of the set of memory banks, the subset of the set of memory banks excluding the first memory bank.

12. The memory device of claim 7 , wherein the redundancy data corresponds to a error correction operation.

13. The memory device of claim 7 , wherein the redundancy data is first redundancy data, and wherein the memory controller is further configured to:

(a) determine that the one or more of the at least two requests is blocked from accessing the first redundancy data, and based on the determination that the one or more of the at least two requests is blocked from accessing the first redundancy data, forgo reconstructing the at least the portion of the content data stored in the first memory bank based on the first redundancy data;

(b) determine whether the one or more of the at least two requests is blocked from accessing next redundancy data;

(c) when the one or more of the at least two requests is not blocked from accessing the next redundancy data, reconstruct, without accessing the first memory bank, the at least the portion of the data stored in the first memory bank based on the next redundancy data;

(d) when the one or more of the at least two requests is blocked from accessing the next redundancy data, one of:

attempt to access the first memory bank during a clock cycle that occurs after the single clock cycle; or

repeat steps (b) through (d) for additional redundancy data.

14. A network device comprising the memory device of claim 7 .

15. A network device, comprising:

a set of memory banks to store content data;

a switching core configured to access the set of memory banks and to perform a packet processing operation based on content data stored in the set of memory banks; and

a memory controller configured to:

receive, from the switching core, a request to perform a memory operation in a first memory bank, the first memory bank included in the set of memory banks;

determine that at least a portion of the switching core is blocked from accessing the first memory bank;

in response to the determination that the at least the portion of the switching core is blocked from accessing the first memory bank:

access redundancy data associated with the first memory bank, the redundancy data being different from content data stored in the first memory bank, and

reconstruct, without accessing the first memory bank, at least a portion of the content data stored in the first memory bank based on the redundancy data associated with the first memory bank; and

perform the requested memory operation using content data reconstructed i) without accessing the first memory bank, and ii) based on the redundancy data associated with the first memory bank.

16. The network device of claim 15 , wherein the content data stored in the set of memory banks comprises a shared control table.

17. The network device of claim 15 , wherein the at least the portion of the switching core is a first portion of a first switching core, and wherein the first portion of the first switching core is blocked from accessing the first memory bank by at least one of: a second portion of the first switching core, or a second switching core included on the network device.

18. The network device of claim 15 , wherein the redundancy data corresponds to a parity calculation.

19. The network device of claim 15 , wherein:

the set of memory banks is a first set of memory banks,

the network device further comprises a second set of memory banks to store redundancy data associated with the content data stored in the first set of memory banks, and

the redundancy data associated with the first memory bank is stored in at least one second memory bank included in the second set of memory banks, the at least one second memory bank corresponding to the first memory bank.

20. The network device of claim 15 , wherein the redundancy data is first redundancy data, and wherein the memory controller is further configured to:

(a) determine that the at least the portion of the switching core is blocked from accessing the first redundancy data, and based on the determination that the at least the portion of the switching core is blocked from accessing the first redundancy data, forgo reconstructing the at least the portion of the content data stored in the first memory bank based on the first redundancy data;

(b) determine whether the at least the portion of the switching core is blocked from accessing next redundancy data;

(c) when the at least the portion of the switching core is not blocked from accessing the next redundancy data, reconstruct, without accessing the first memory bank, the at least the portion of the content data stored in the first memory bank based on the next redundancy data;

(d) when the at least the portion of the switching core is blocked from accessing the next redundancy data, one of:

attempt to access the first memory bank during a future clock cycle; or

repeat steps (b) through (d) for additional redundancy data.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2011
From: ZIMERMAN, YARON
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 027351/0510 →
LICENSE Recorded Dec 8, 2011
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 027346/0413 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2011
From: LEVY, GIL; ARAD, CARMI
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 027352/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2011
From: BSHARA, NAFEA
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 027351/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2011
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 027348/0140 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2011
From: MARVELL INTERNATIONAL, LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 027350/0660 →
Continuity (3)
Provisional Application 61416247 · Nov 22, 2010
Provisional Application 61430400 · Jan 6, 2011
Related Publication 20120127818A1 · May 24, 2012