Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
First Claim
Patent Images
1. A method of automatically transferring an I/O status block from a RAM of a host adapter to a memory of a host system, the method comprising:
- providing a response free buffer list in said adapter, said response free buffer list containing indices to buffers in said adapter where an adapter processor has allocated space for I/O responses;
providing a response filled buffer list in said adapter, said response filled buffer list identifying the address of a buffer in said adapter RAM in which said I/O status block is stored and a valid entry indicating that a response has been loaded onto to a buffer in said host adapter RAM;
wherein the response free buffer list and response filled buffer list are used to track buffers in the host adapter RAM;
monitoring said response filled buffer list to determine said address of said adapter RAM buffer;
determining if space is available in said host system memory to store said I/O status block by comparing a response queue in pointer controlled by an outbound logic of said adapter with a response queue out pointer controlled by a host system processor;
transferring said I/O status block from said buffer in said adapter RAM to a response queue in said host system memory; and
writing said buffer address to the free buffer list in said adapter.
7 Assignments
0 Petitions
Accused Products
Abstract
An input/output (I/O) host adapter in an I/O system processes I/O requests from a host system to a plurality of I/O devices. The host adapter includes a circuit to automatically transfer I/O requests from host memory to adapter memory. The host adapter also includes a circuit to automatically transfer I/O responses from adapter memory to host memory.
-
Citations
6 Claims
-
1. A method of automatically transferring an I/O status block from a RAM of a host adapter to a memory of a host system, the method comprising:
-
providing a response free buffer list in said adapter, said response free buffer list containing indices to buffers in said adapter where an adapter processor has allocated space for I/O responses;
providing a response filled buffer list in said adapter, said response filled buffer list identifying the address of a buffer in said adapter RAM in which said I/O status block is stored and a valid entry indicating that a response has been loaded onto to a buffer in said host adapter RAM;
wherein the response free buffer list and response filled buffer list are used to track buffers in the host adapter RAM;
monitoring said response filled buffer list to determine said address of said adapter RAM buffer;
determining if space is available in said host system memory to store said I/O status block by comparing a response queue in pointer controlled by an outbound logic of said adapter with a response queue out pointer controlled by a host system processor;
transferring said I/O status block from said buffer in said adapter RAM to a response queue in said host system memory; and
writing said buffer address to the free buffer list in said adapter. - View Dependent Claims (3, 5)
reading an address of a free response buffer in said adapter RAM from said free response buffer list;
storing an I/O status block in said free response buffer; and
then writing said address of said free response buffer in said filled buffer list as the address of a filled buffer.
-
-
5. The method of claim 1, wherein transferring said I/O status block from said buffer in said adapter RAM to a response queue in said host system memory is effected without intervention of the processor in said adapter.
-
2. A circuit for automatically transferring an I/O status block from a RAM of a host adapter to a memory of a host system, the circuit comprising:
-
a response free buffer list in said adapter, said response free buffer list containing indices to buffers in said adapter where an adapter processor has allocated space for I/O responses;
a response filled buffer list in said host adapter, said response filled buffer list identifying the address of a buffer in said adapter RAM in which said I/O status block is stored and a valid entry indicating that a response has been loaded onto to a buffer in said host adapter RAM;
wherein the response free buffer list and response filled buffer list are used to track buffers in the host adapter RAM;
a monitoring unit that monitors said response filled buffer list and generates a signal identifying the address of the adapter RAM buffer in which said I/O status block is stored;
means in said adapter for determining if space is available in a response queue in said host system memory to store said I/O status block by comparing a response queue in pointer controlled by an outbound logic of said adapter with a response queue out pointer controlled by a host system processor; and
a data retrieval unit operatively responsive to said monitoring unit signal and said determining means to transfer said I/O status block from said adapter RAM buffer to said response queue in said host system and then write said buffer address to the response free buffer list in said host adapter. - View Dependent Claims (4, 6)
a processor in said adapter operatively programmed to;
read an address of a free response buffer in said adapter RAM from said free response buffer list, write an I/O status block to said free response buffer, and then write said free response buffer address to said response filled buffer list as the address of a filled buffer.
-
-
6. The circuit of claim 4, wherein said data retrieval unit transfers said I/O status block from said adapter RAM buffer to said response queue without intervention of said adapter processor.
Specification