Method and apparatus for implementing transfer ordering using hardware linked list
First Claim
1. Apparatus for implementing transfer ordering in a processor input/output (I/O) interface comprising:
- a command buffer for storing a plurality of command entries, each command entry for storing a linked list pointer to a next command, and a linked list of commands being chained together by said linked list pointers for defining the transfer ordering;
a current execution register storing a currently executing command;
said current execution register for storing a pointer to the next command to be executed, and said pointer being used to fetch information for the next command when the current command completes; and
a last received register storing a last received command until an ordering event occurs;
said last received register for storing a pointer to a command corresponding to the new ordering event when the next ordering event occurs.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for implementing transfer ordering in a processor input/output (I/O) interface. A pointer field is added to a command buffer. Commands are chained together in a linked list defining the transfer ordering. A currently executing command, or a command whose data is currently being transferred is held in a current execution register. The current execution register includes a pointer to the next command to be executed, or data to be transferred. When the current command completes, the pointer is used to fetch information for a next command. A command that last received an ordering event is held in a last received register. The last received register contains a link pointer field, which initially is not valid. When the next ordering event occurs, the link pointer field is loaded with a pointer to the command corresponding to the new ordering event. The register information is then written to the command buffer.
-
Citations
19 Claims
-
1. Apparatus for implementing transfer ordering in a processor input/output (I/O) interface comprising:
-
a command buffer for storing a plurality of command entries, each command entry for storing a linked list pointer to a next command, and a linked list of commands being chained together by said linked list pointers for defining the transfer ordering;
a current execution register storing a currently executing command;
said current execution register for storing a pointer to the next command to be executed, and said pointer being used to fetch information for the next command when the current command completes; and
a last received register storing a last received command until an ordering event occurs;
said last received register for storing a pointer to a command corresponding to the new ordering event when the next ordering event occurs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for implementing transfer ordering in a processor input/output (I/O) interface comprising the step of:
-
storing a plurality of command entries in a command buffer and storing a linked list pointer to a next command in each stored command entry to chain together a linked list of commands by said linked list pointers for defining the transfer ordering;
storing a currently executing command in a current execution register and storing a pointer to the next command to be executed in said current execution register, and said pointer being used to fetch information for the next command when the current command completes; and
storing a last received command in a last received register until an ordering event occurs; and
storing a pointer in said last received register to a command corresponding to the new ordering event when the next ordering event occurs. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification