Host adapter integrated data FIFO and data cache and method for improved host adapter sourcing latency
AssigneeAdaptec, Inc.
InventorB. Arlen Young
Life of this patent
Estimating the term…
Abstract
A host adapter, which interfaces two I/O buses, caches data transferred from one I/O bus to another I/O bus in a data first-in-first-out (FIFO)/caching memory. In addition, when a target device on the another I/O bus is ready to receive the data, data is transferred from the data FIFO/caching memory even though not all of the data may be cached in that memory. Hence, data is concurrently transferred to and transferred from the data FIFO/caching memory. The data transfer to the target device is throttled if cached data is unavailable in the data FIFO/caching memory for transfer, e.g., the data cache is empty for the current context.
Claims21
A method comprising:
- caching data for a context in a memory of a host adapter interfacing a first I/O bus and a second I/O bus wherein a portion of said data for said context is cached in said memory;
- maintaining a queue of host adapter hardware control blocks for which said caching data is to be performed;
- enabling said caching of data associated with a host adapter hardware control block following removing said host adapter hardware control block from said queue;
- and
- transferring said portion of said data for said context from said memory concurrently with said caching data for a context in a memory caching another portion of said data for said context in said memory.
A method comprising:
- maintaining a queue of host adapter hardware control blocks for which caching of data is to be performed;
- removing a host adapter hardware control block from said queue upon a first I/O bus data transfer module becoming available;
- enabling said first I/O bus data transfer module to transfer data specified in said host adapter hardware control block;
- asserting a flag in said host adapter hardware control block indicating said enabling;
- caching said data in a memory of a host adapter interfacing a first I/O bus and a second I/O bus by using said first I/O bus data transfer module to transfer said data to said memory;
- and
- transferring said data, concurrently with said caching, from said memory.
A method comprising:
- loading a pointer to a hardware control block in an execution queue of a host adapter interfacing a first I/O bus and a second I/O bus;
- loading another pointer to said hardware control block in an enable caching queue of said host adapter;
- removing said another pointer to said hardware control block from said enable caching queue upon a first I/O bus data transfer module becoming available;
- and
- enabling said first I/O bus data transfer module to transfer data from said first I/O bus to a data first-in-first-out (FIFO)/caching memory of said host adapter following said removing said another pointer;
- asserting a flag in said hardware control block to indicate said enabling said first I/o bus data transfer module;
- caching data in said data FIFO/caching memory by transferring said data from said first I/O bus to said data FIFO/caching memory using said first I/O bus data transfer module following said enabling;
- removing said pointer to said hardware control block from said execution queue;
- determining whether said flag in said hardware control block is asserted;
- and
- transferring said data from said data FIFO/caching memory upon said determining finding that said flag in said hardware control block is asserted.
A host adapter comprising:
- a first I/O bus data transfer module;
- a second I/O bus data transfer module;
- a data first-in-first-out (FIFO)/caching memory coupled to said first I/O bus data transfer module and to said second I/O bus data transfer module;
- and
- a throttle control module coupled to said first I/O bus data transfer module, to said second I/o bus data transfer module, and to said data FIFO/caching memory, wherein said throttle control module controls data transfer from said data FIFO/caching memory by said second I/O bus data transfer module as data is concurrently being transferred into said data FIFO/caching memory using said first I/O bus data transfer module.
A system comprising:
- a first I/O bus;
- a second I/O bus;
- and
- a host adapter comprising:
- a first I/O bus data transfer module coupled to said first I/O bus;
- a second I/O bus data transfer module coupled to said second I/O bus;
- a data first-in-first-out (FIFO)/caching memory coupled to said first I/O bus data transfer module and to said second I/O bus data transfer module;
- and
- a throttle control module coupled to said first I/O bus data transfer module, to said second I/O bus data transfer module, and to said data-FIFO/caching memory, wherein said throttle control module controls data transfer from said data FIFO/caching memory by said second I/O bus data transfer module as data is concurrently being transferred into said data FIFO/caching memory using said first I/O bus data transfer module.
Dependencies are inferred from the claim text.