IP Library Granted Patent US 7,386,643
Granted Patent B2
US 7,386,643 · App. 10/970,015 · Granted Jun 10, 2008

Mechanism to guarantee forward progress for incoming coherent input/output (I/O) transactions for caching I/O agent on address conflict with processor transactions

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 7,386,643
App. No.
10/970,015
Granted
Jun 10, 2008
Kind
B2
Abstract

A forwarding device compares a first address from a first coherent input/output (I/O) transaction with an address from at least one processor-issued transaction to determine if an address conflict exists. The forwarding device completes a first processor-issued transaction of the at least one processor-issued transaction if the address conflict exists and rejects the first coherent I/O transaction. The forwarding device holds remaining processor transactions of the at least one processor-issued transaction that have an address conflict with the first address of the first coherent I/O transaction. The forwarding device transmits the first coherent I/O transaction to an external I/O device, waits for the first coherent I/O transaction to return from the external I/O device, and completes the first coherent I/O transaction. The forwarding device releases the remaining processor transactions once the first coherent I/O transaction has been completed.

Claims (32)

1. A forward progress module, comprising:

an address conflict checking module to compare a first memory address from a first coherent input/output (I/O) transaction with a memory address corresponding to a processor-issued transaction to determine if an address conflict exists; and

a processor module to complete the processor-issued transaction that has the address conflict, reject the first coherent I/O transaction, hold remaining processor-issued transactions other than the processor-issued transaction that have the address conflict with the first memory address, and transmit the rejected first coherent I/O transaction to an external I/O device due to the address conflict.

2. The forward progress module of claim 1 , wherein the processor module waits for the rejected first coherent I/O transaction to return from the external I/O device, and completes the rejected first coherent I/O transaction once it returns.

3. The forward progress module of claim 2 , wherein the processor module releases the remaining processor transactions once the rejected first coherent I/O transaction has been completed and allows the remaining processor transactions to be completed by the processor module.

4. The forward progress module of claim 1 , wherein the forward progress module is located in a switching device.

5. The forward progress module of claim 1 , wherein the forward progress module is located in an input/output (I/O) device.

6. The forward progress module of claim 1 , further including a processor transaction buffer to store the at least one processor-issued transaction.

7. The forward progress module of claim 6 , wherein the processor transaction buffer stores a single processor-issued transaction of the remaining processor-issued transactions that request the first memory address.

8. The forward progress module of claim 6 , wherein the processor transaction buffer stores multiple processor-issued transactions of the remaining processor-issued transaction that request the first memory address.

9. The forward progress module of claim 1 , wherein the remaining processor-issued transactions are transmitted to a processor bus.

10. The forward progress module of claim 1 , further including a buffer module to store the first coherent I/O transaction.

11. A method to forward transactions, comprising:

comparing a first address from a first coherent input/output (I/O) transaction with an address from a processor-issued transaction to determine if an address conflict exists;

completing the processor-issued transaction if the address conflict exists and rejecting the first coherent I/O transaction;

holding remaining processor transactions that have the address conflict with the first address of the first coherent I/O transaction; and

transmitting the rejected first coherent I/O transaction, after the first coherent I/O transaction is rejected, to an external I/O device due to the address conflict.

12. The method of claim 11 , further including waiting for the rejected first coherent I/O transaction to return from the external I/O device, and completing the rejected first coherent I/O transaction.

13. The method of claim 12 , further including releasing the remaining processor transactions once the rejected first coherent I/O transaction has been completed and allowing the remaining processor transactions to be completed by a processor.

14. The method of claim 12 , wherein an I/O transaction buffer stores the first coherent I/O transaction, transmits the rejected first coherent I/O transaction to the external I/O device, waits for the rejected first coherent I/O transaction to return from the external I/O device, and transmits the rejected first coherent I/O transaction to a processor module to complete the rejected first coherent I/O transaction.

15. The method of claim 11 , wherein a single processor-issued transaction of the remaining processor transactions of the at least one processor transaction is held in a processor transaction buffer.

16. The method of claim 15 , wherein a plurality of the remaining processor transactions are transmitted to a processor bus.

17. A program code storage device, comprising:

a machine-readable storage medium; and

machine-readable program code, stored on the machine-readable storage medium, the machine readable program code having instructions, which when executed cause a computer, to:

compare a first address from a first coherent input/output (I/O) transaction with an address from a processor-issued transaction to determine if an address conflict exists;

complete the processor-issued transaction if the address conflict exists and reject the first coherent I/O transaction;

hold remaining processor transactions that have the address conflict with the first address of the first coherent I/O transaction; and

transmit the rejected first coherent I/O transaction to an external I/O device due to the address conflict.

18. The program code storage device of claim 17 , further including instructions, which when executed cause the computer to wait for the rejected first coherent I/O transaction return from the external I/O device and to complete the rejected first coherent I/O transaction.

19. The program code storage device of claim 18 , further including instructions, which when executed cause the computer to release the remaining processor transactions once the rejected first coherent I/O transaction has been completed and to complete, utilizing a processor, the remaining processor transactions.

20. The program code storage device of claim 17 , further including instructions, which when executed, cause the computer to hold a single processor-issued transaction of the remaining processor transactions in a processor transaction buffer and to transmit a plurality of the remaining processor transactions to a processor bus.

Assignments (7)
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 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →