Back to results
US 9,430,379 B1Granted
Dynamic random access memory controller
AssigneeMarvell International Ltd.
InventorNafea Bishara
Life of this patent
Estimating the term…
Abstract
A memory controller comprises a memory controller core that receives packets of data and generates memory transactions for each of the packets of data. A memory interface transmits each of the memory transactions to one of a plurality of memory banks of a memory. The memory controller directs each of the memory transactions to a different memory bank than an immediately preceding memory transaction.
Claims17
A memory controller, comprising:
- a memory controller core configured to i) receive packets of data, and ii) generate memory transactions for each of the packets of data;
- and
- a memory interface configured to transmit each of the memory transactions to one of a plurality of memory banks of a memory, wherein the memory includes a plurality of blocks of memory, and wherein each of the blocks of memory includes cells arranged i) in rows corresponding to buffers, and ii) in columns corresponding to the memory banks,
- wherein the memory controller is configured to i) direct each of the memory transactions to a different memory bank than an immediately preceding memory transaction, and ii) direct each memory transaction corresponding to one of the packets of data to the same buffer until each of the memory banks corresponding to said same buffer includes data from the one of the packets,
- wherein the memory controller is configured to i) direct a last byte of a first packet of data to a first memory bank in a first buffer, and ii) direct a first byte of a second packet of data to a second memory bank in a second buffer, wherein the second memory bank is located immediately subsequent to the first memory bank, and
- wherein the memory controller is configured to direct a second byte of the second packet of data to a third memory bank in the second buffer and in a same row of the memory as the first byte, and wherein the third memory bank is located sequentially prior to the second memory bank in the second buffer.
3 more elements
A method for operating a memory controller, the method comprising:
- receiving packets of data;
- generating memory transactions for each of the packets of data;
- transmitting each of the memory transactions to one of a plurality of memory banks of a memory, wherein the memory includes a plurality of blocks of memory, wherein each of the blocks of memory includes cells arranged i) in rows corresponding to buffers, and ii) in columns corresponding to the memory banks, and wherein transmitting each of the memory transactions includes i) directing each of the memory transactions to a different memory bank than an immediately preceding memory transaction, and ii) directing each memory transaction corresponding to one of the packets of data to the same buffer until each of the memory banks corresponding to said same buffer includes data from the one of the packets;
- directing a last byte of a first packet of data to a first memory bank in a first buffer;
- directing a first byte of a second packet of data to a second memory bank in a second buffer, wherein the second memory bank is located immediately subsequent to the first memory bank;
- and
- directing a second byte of the second packet of data to a third memory bank in the second buffer and in a same row of the memory as the first byte, wherein the third memory bank is located sequentially prior to the second memory bank in the second buffer.
4 more elements
Dependencies are inferred from the claim text.