IP Library Granted Patent US 10,146,457
Granted Patent B2
US 10,146,457 · App. 15/438,492 · Granted Dec 4, 2018

Systems and methods for reordering packet transmissions in a scalable memory system protocol

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 10,146,457
App. No.
15/438,492
Granted
Dec 4, 2018
Kind
B2
Abstract

A memory device includes a plurality of memory components that stores data and a processor communicatively coupled to the plurality of memory components. The processor may receive a plurality of packets associated with a plurality of data operations, such that each of the plurality of packets includes a transaction window field indicating a type of memory component associated with a respective data operation of the respective packet. The processor may also perform the plurality of data operations in a first order based on the type of memory component indicated in the transaction window field of each of the plurality of packets.

Claims (35)

1. A device comprising:

a processor configured to receive a plurality of packets associated with a plurality of data operations, wherein each of the plurality of packets comprises a transaction window field indicating a type of memory component associated with a respective data operation of the respective packet; and

wherein the processor is further configured to perform the plurality of data operations in an order based on the type of memory component indicated in the transaction window field of each of the plurality of packets.

2. The device of claim 1 , wherein the processor is configured to perform a first portion of the plurality of data operations before a second portion of the plurality of operations, wherein the first portion is associated with a first memory type of the memory types and the second portion is associated with a second memory type of the memory types.

3. The device of claim 2 , wherein the first memory type is associated with a first set of requests having a first latency and the second memory type is associated with a second set of requests having a second latency that is larger than the first latency.

4. The device of claim 1 , wherein the processor is configured to perform the plurality of data operations in the order by:

determining whether a first data operation of the plurality of data operations can be performed, wherein the first data operation corresponds to a first packet of the plurality of packets and a first transaction window;

identifying a second data operation of the plurality of data operations, wherein the second data operation corresponds to a second packet of the plurality of packets and a second transaction window; and

performing the second data operation when the first data operation cannot be performed, wherein the first transaction window is different from the second transaction window.

5. The device of claim 4 , wherein the first data operation cannot be performed when a memory address associated with the first data operation is busy.

6. The device of claim 1 , wherein the memory types comprise a Dynamic Random-Access Memory (DRAM), Static Random-Access Memory (SRAM), a NAND memory, or any combination thereof.

7. The device of claim 1 , wherein the transaction window field comprises a minimum transaction size for each of the plurality of packets.

8. The device of claim 1 , wherein the processor is further configured to send a reorder message to another processor that transmitted the plurality of packets, wherein the reorder message indicates the first order, wherein the order is different from an order in which the plurality of packets are transmitted.

9. A system, comprising:

a receiving component configured to:

receive a plurality of packets from a processor, wherein the plurality of packets is transmitted in a first order;

determine whether a plurality of data operations that corresponds to the plurality of packets should be performed in the first order based on availability of a memory component in the system associated with the plurality of data operations;

determine a second order to perform the data operations when the plurality of data operations should not be performed in the first order, wherein each of the plurality of packets is associated with a transaction window indicating a type of memory component associated with a respective data operation of the respective packet, and wherein the receiving component determines the second order by identifying a portion of the plurality of packets having a same transaction window; and

send a reorder message comprising the second order to the memory processor.

10. The system of claim 9 , wherein the receiving component determines that the plurality of data operations should not be performed in the first order when at least one of the plurality of data operations cannot be performed due to an unavailable memory address or a busy memory address.

11. The system of claim 9 , wherein the receiving component determines the second order based on whether at least one of the plurality of data operations is dependent on another one of the plurality of data operations being performed before the at least one of the plurality of data operations.

12. The system of claim 9 , wherein the receiving component is configured to send a plurality of response packets to the processor according to the second order after sending the reorder message.

13. The system of claim 9 , wherein the reorder message comprises a new order number for each packet of a portion of the plurality of the packets that the processor has not received a corresponding response packet from the receiving component.

14. The system of claim 13 , wherein the new order number is associated with a relative position in a queue of a plurality of response packets expected to be received by the processor.

15. The system of claim 9 , wherein the receiving component comprises a system on chip (SoC).

16. A system, comprising:

a receiving component configured to:

receive the plurality of packets, wherein the plurality of packets is received in a first order that corresponds to an order in which the plurality of data operations are to be performed;

send a plurality of reorder messages when the plurality of data operations cannot be performed in the order;

append each received packet of a portion of the plurality of packets with a sequence number when the plurality of reorder messages exceeds a threshold; and

generate a response packet for each received packet of the portion, wherein the response packet for each received packet of the portion comprises a respective sequence number.

17. The system of claim 16 , wherein the receiving component receives the plurality of packets from a processor.

18. The system of claim 17 , wherein the receiving component is further configured to transmit the response packet for each received packet of the portion to the processor.

19. The system of claim 18 , wherein a respective sequence number is assigned to each received packet of the portion of the plurality of packets according to a round robin fashion based on a type of memory associated with a respective data operation that corresponds to a respective received packet.

20. The system of claim 16 , wherein the receiving component is configured to transmit a not-acknowledge packet when an error is identified in one of the plurality of packets, wherein the not-acknowledge packet comprises a second sequence number.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050702/0451 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
SUPPLEMENT NO. 4 TO PATENT SECURITY AGREEMENT Recorded May 4, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042405/0909 →