Method and system for efficient cache buffering supporting variable stripe sizes to enable hardware acceleration
First Claim
1. A method of managing cache buffering, the method comprising:
- receiving an Input/Output (I/O) command from a host system at a storage controller, the I/O command requiring one or more blocks of memory from a cache memory;
parsing the I/O command at the storage controller with a host I/O manager to extract command instructions therefrom;
generating, at the host I/O manager, at least one local message that includes the command instructions extracted from the I/O command;
transmitting the at least one local message to a cache manager; and
enabling the cache manager to work in local memory to execute the command instructions contained in the at least one message, wherein the cache manager is configured to chain multiple buffer segments together on-demand to support multiple stripe sizes that are specific to the I/O command received from the host system, wherein each buffer segment is represented by a corresponding extent, and wherein the cache manager groups extents as extents are created so as to have at least two extents sharing a single frame.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for efficient cache buffering are provided. The disclosed method includes receiving an Input/Output (I/O) command from a host system at a storage controller, parsing the I/O command at the storage controller with a host I/O manager to extract command instructions therefrom. The host I/O manager is able to generate at least one local message that includes the command instructions extracted from the I/O command and transmit the at least one local message to a cache manager. The cache manager is enabled to work in local memory to execute the command instructions contained in the at least one message. The cache manager is also configured to chain multiple buffer segments together on-demand to support multiple stripe sizes that are specific to the I/O command received from the host system.
-
Citations
20 Claims
-
1. A method of managing cache buffering, the method comprising:
-
receiving an Input/Output (I/O) command from a host system at a storage controller, the I/O command requiring one or more blocks of memory from a cache memory; parsing the I/O command at the storage controller with a host I/O manager to extract command instructions therefrom; generating, at the host I/O manager, at least one local message that includes the command instructions extracted from the I/O command; transmitting the at least one local message to a cache manager; and enabling the cache manager to work in local memory to execute the command instructions contained in the at least one message, wherein the cache manager is configured to chain multiple buffer segments together on-demand to support multiple stripe sizes that are specific to the I/O command received from the host system, wherein each buffer segment is represented by a corresponding extent, and wherein the cache manager groups extents as extents are created so as to have at least two extents sharing a single frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A storage system, comprising:
a controller comprising a processor and memory having instructions stored thereon that are executable by the processor, the instructions including; a host Input/Output (I/O) manager that receives I/O commands from a host system and generates a corresponding local message for distribution within the controller; and a cache manager that is configured to work in local memory to execute command instructions contained in local messages received from the host I/O manager and, in response thereto, chain multiple buffer segments together on-demand to support multiple stripe sizes that are specific to the I/O command received from the host system, wherein each buffer segment is represented by a corresponding extent, and wherein the cache manager groups extents as extents are created so as to have at least two extents sharing a single frame. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
18. A controller situated between a host system and a data storage array, the controller comprising:
-
a processor; and memory coupled to the processor, the memory including instructions that, when executed by the processor, enable the controller to perform the following; receive an Input/Output (I/O) command from the host system, the I/O command requiring one or more blocks of memory from a cache memory; parse the I/O command to extract command instructions therefrom; generate at least one local message that includes the command instructions extracted from the I/O command; transmit the at least one local message; and chain multiple buffer segments together on-demand to support multiple stripe sizes that are specific to the I/O command received from the host system, wherein each buffer segment is represented by a corresponding extent, and wherein as extents are created extents are grouped so as to have at least two extents sharing a single frame. - View Dependent Claims (19, 20)
-
Specification