IP Library Granted Patent US 9,335,947
Granted Patent B2
US 9,335,947 · App. 14/318,874 · Granted May 10, 2016

Inter-processor memory

Inventors: Pen C. Chien (Walnut, CA); Frank N. Cheung (Agoura Hills, CA); Kuan Y. Huang (West Hills, CA)
Assignee: RAYTHEON COMPANY
G06F3/0647G06F3/0604G06F3/0673
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,335,947
App. No.
14/318,874
Granted
May 10, 2016
Kind
B2
Abstract

Embodiments relate to an inter-processor memory. An aspect includes a plurality of memory banks, each of the plurality of memory banks comprising a respective plurality of parallel memory modules, wherein a number of the plurality of memory banks is equal to a number of read ports of the inter-processor memory, and a number of parallel memory modules within a memory bank is equal to a number of write ports of the inter-processor memory. Another aspect includes each memory bank corresponding to a single respective read port of the inter-processor memory, and wherein, within each memory bank, each memory module of the plurality of parallel memory modules is writable in parallel by a single respective write port of the inter-processor memory.

Claims (41)

1. An inter-processor memory, comprising:

a plurality of memory banks, each of the plurality of memory banks comprising a respective plurality of parallel memory modules, wherein a number of the plurality of memory banks is equal to a number of read ports of the inter-processor memory, and a number of parallel memory modules within a memory bank is equal to a number of write ports of the inter-processor memory;

wherein each memory bank corresponds to a single respective read port of the inter-processor memory, and wherein, within each memory bank, each memory module of the plurality of parallel memory modules is writable in parallel by a single respective write port of the inter-processor memory.

2. The inter-processor memory of claim 1 , wherein the plurality of parallel memory modules each comprise dual-port random access memory (DPRAM) modules.

3. The inter-processor memory of claim 1 , wherein each memory bank further comprises a respective data pointer, the data pointer comprising a plurality of write port identifiers storing write-port-IDs corresponding to the memory modules in the memory bank.

4. The inter-processor memory of claim 3 , wherein a write-port-ID in a write port identifier indicates a write port that most recently wrote to a memory location associated with the write port identifier.

5. The inter-processor memory of claim 3 , the data pointer further comprising a priority logic that determines, based on a write collision, a write-port-ID to insert into a write port identifier associated with a memory location in which the write collision occurred.

6. The inter-processor memory of claim 1 , wherein performing a write operation in the inter-processor memory comprises:

receiving a write address and write data corresponding to a write operation on a write port of the inter-processor memory; and

writing the write data into a memory location associated with the write address in a single memory module in each of the memory banks in parallel.

7. The inter-processor memory of claim 6 , further comprising:

inserting a write-port-ID of the write port into a write port identifier associated with the write address and priority logic.

8. The inter-processor memory of claim 1 , wherein performing a read operation in the inter-processor memory comprises:

receiving a read address on a read port of the inter-processor memory; and

reading data from a memory location associated with the read address from each of the parallel memory modules in the memory bank associated with the read port.

9. The inter-processor memory of claim 8 , further comprising:

selecting a memory module in the memory bank based on a write-port-ID that is stored in a write port identifier associated with the read address; and

outputting read data from the selected memory module onto the read port of the inter-processor memory.

10. A method of performing a write operation in an inter-processor memory, comprising:

receiving a write address and write data corresponding to a write operation on a write port of the inter-processor memory, the inter-processor memory comprising a plurality of memory banks, each of the plurality of memory banks comprising a respective plurality of parallel memory modules, wherein a number of the plurality of memory banks is equal to a number of read ports of the inter-processor memory, and a number of parallel memory modules within a memory bank is equal to a number of write ports of the inter-processor memory, wherein, within each memory bank, each memory module of the plurality of parallel memory modules is writable in parallel by a single respective write port of the inter-processor memory; and

writing the write data into a memory location associated with the write address in a single memory module in each of the memory banks in parallel.

11. The method of claim 10 , further comprising, based on the write operation, inserting a write-port-ID of the write port into a write port identifier associated with the memory location in a data pointer.

12. The method of claim 11 , wherein the write-port-ID in the write port identifier indicates a write port that most recently wrote to a memory location associated with the write port identifier.

13. The method of claim 11 , further comprising determining, by a priority logic of the data pointer, based on a write collision associated with the write operation, a write-port-ID to insert into a write port identifier associated with a memory location in which the write collision occurred.

14. The method of claim 10 , wherein each memory bank corresponds to a single respective read port of the inter-processor memory, and wherein performing a read operation in the inter-processor memory comprises:

receiving a read address on a read port of the inter-processor memory; and

reading data from a memory location associated with the read address from each of the parallel memory modules in the memory bank associated with the read port.

15. The method of claim 14 , further comprising:

selecting a memory module in the memory bank based on a write-port-ID that is stored in a write port identifier associated with the read address; and

outputting read data from the selected memory module on the read port.

16. A method of performing a read operation in an inter-processor memory, comprising:

receiving a read address on a read port of the inter-processor memory, the inter-processor memory comprising a plurality of memory banks, each of the plurality of memory banks comprising a respective plurality of parallel memory modules, wherein a number of the plurality of memory banks is equal to a number of read ports of the inter-processor memory, and a number of parallel memory modules within a memory bank is equal to a number of write ports of the inter-processor memory, wherein each memory bank corresponds to a single respective read port of the inter-processor memory; and

reading data from a memory location associated with the read address from each of the parallel memory modules in the memory bank associated with the read port.

17. The method of claim 16 , further comprising, based on the write operation, inserting a write-port-ID of the write port into a write port identifier associated with the memory location in a data pointer.

18. The method of claim 17 , further comprising determining by a priority logic of the data pointer, based on a write collision associated with the write operation, a write-port-ID to insert into a write port identifier associated with a memory location in which the write collision occurred.

19. The method of claim 16 , wherein, within each memory bank, each memory module of the plurality of parallel memory modules is writable by a single respective write port of the inter-processor memory, and wherein performing a write operation in the inter-processor memory comprises:

receiving a write address and write data corresponding to a write operation on a write port of the inter-processor memory; and

writing the write data into a memory location associated with the write address in a single memory module in each of the memory banks in parallel.

20. The method of claim 16 , further comprising:

selecting a memory module in the memory bank based on a write-port-ID that is stored in a write port identifier associated with the read address; and

outputting read data from the selected memory module on the read port.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2014
From: CHIEN, PEN C.; CHEUNG, FRANK N.; HUANG, KUAN Y.
To: RAYTHEON COMPANY
Reel/Frame 033208/0991 →
Continuity (1)
Related Publication 20150378639A1 · Dec 31, 2015