Input/output decoupling system method having a cache for exchanging data between non-volatile storage and plurality of clients having asynchronous transfers
First Claim
Patent Images
1. An apparatus, comprising:
- a storage interface configured to communicate with a storage system having a non-volatile storage component;
a host interface configured to communicate with a plurality of clients;
a cache configured to cache communications exchanged between the non-volatile storage component and the plurality of clients, the cache configured to associate buffers with the plurality of clients; and
circuitry configured to;
identify a data rate for transferring data from the apparatus, over the host interface, to one of the plurality of clients, wherein the identified data rate is based on an amount of data cached in the buffer for the receiving client and decoupled from asynchronous transfers over the storage interface; and
stream the cached data to the receiving client according to the identified data rate that is decoupled from the asynchronous transfers.
6 Assignments
0 Petitions
Accused Products
Abstract
An I/O decoupling system comprising an I/O accelerator coupled between a host interface and a channel interface, wherein the I/O accelerator comprises a host manager, a buffer manager a function manager, and a disk buffer. The host manager is coupled to the host interface to receive a request from a connected host computer. The function manager in response to receiving the request allocates the disk buffer and determines a threshold offset for the buffer while coordinating the movement of data to the disk buffer through the channel interface coupled to the disk buffer.
43 Citations
34 Claims
-
1. An apparatus, comprising:
-
a storage interface configured to communicate with a storage system having a non-volatile storage component; a host interface configured to communicate with a plurality of clients; a cache configured to cache communications exchanged between the non-volatile storage component and the plurality of clients, the cache configured to associate buffers with the plurality of clients; and circuitry configured to; identify a data rate for transferring data from the apparatus, over the host interface, to one of the plurality of clients, wherein the identified data rate is based on an amount of data cached in the buffer for the receiving client and decoupled from asynchronous transfers over the storage interface; and stream the cached data to the receiving client according to the identified data rate that is decoupled from the asynchronous transfers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus, comprising:
-
a storage interface configured to communicate with a storage component; a host interface configured to communicate with a plurality of clients; a buffering component configured to buffer communications exchanged between the storage component and the plurality of clients, the buffering component configured to associate buffers with the plurality of clients; and circuitry configured to; identify a data rate for transferring data from the apparatus, over the host interface, to one of the plurality of clients, wherein the identified data rate is based on an amount of data existing in the buffer for the receiving client and decoupled from asynchronous transfers over the storage interface; and stream the buffered data to the receiving client according to the identified data rate that is decoupled from the asynchronous transfers; wherein the circuitry is further configured to align data stored in the buffering component according to communications exchanged with the plurality of clients such that the data stored in the buffering component is organized according to a first block size format that is different than a second block size format used for organizing the data stored on the storage component. - View Dependent Claims (16, 17)
-
-
18. An apparatus, comprising:
-
means for communicating with a storage system having a non-volatile storage component; means for communicating with a client and providing the client access through the apparatus to data stored on the non-volatile storage component; means for selecting a data rate for transferring data from the apparatus, over the client communication means, to the client, wherein the selected data rate is based on an amount of data cached on the apparatus and decoupled from asynchronous transfers over the non-volatile storage component communication means; and means for transferring the cached data to the client according to the selected data rate. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. An apparatus, comprising:
-
a storage interface configured to communicate with a storage system having a non-volatile storage component; a host interface configured to communicate with a plurality of clients; a cache configured to cache communications exchanged between the non-volatile storage component and the plurality of clients, the cache configured to associate a buffer with each client; and circuitry configured to; identify a data rate for transferring data from the apparatus, over the host interface, to one of the plurality of clients, wherein the identified data rate is based on an amount of data existing in the buffer for the receiving client and decoupled from asynchronous transfers over the storage interface. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification