Method and system for dynamic buffering of disk I/O command chains
First Claim
Patent Images
1. A method comprising:
- receiving a plurality of disk I/O command chains and respective start address pointers contemporaneously by re-entrant code from a plurality of threads executing on a processor of a computing system;
storing the plurality of disk I/O command chains, wherein each disk I/O command chain is stored separately from each other without implementing an appending operation;
storing the plurality of respective start address pointers for the plurality of stored disk I/O command chains on a first-in-first-out basis in a buffer of a disk controller for a disk drive using a hardware implemented lock function of the processor and not an operating system lock function to check a fullness of the buffer prior to adding new start address pointers, and using the operating system lock function to handle the buffer after a buffer full condition occurs; and
dynamically accessing and executing the plurality of stored disk I/O command chains by the disk controller by serially accessing on the first-in-first-out basis of the plurality of respective start address pointers in the buffer, wherein the plurality of disk I/O command chains are accessed and executed asynchronously with respect to storing the plurality of disk I/O command chains.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for dynamic buffering of disk I/O command chains for a computer system. The method includes receiving a plurality of disk I/O command chains from at least one thread executing on a processor of the computer system. A respective plurality of pointers for the disk I/O command chains are stored in a buffer of a disk controller. The disk I/O command chains are accessed for execution by the disk controller by serially accessing the pointers in the buffer.
-
Citations
8 Claims
-
1. A method comprising:
-
receiving a plurality of disk I/O command chains and respective start address pointers contemporaneously by re-entrant code from a plurality of threads executing on a processor of a computing system; storing the plurality of disk I/O command chains, wherein each disk I/O command chain is stored separately from each other without implementing an appending operation; storing the plurality of respective start address pointers for the plurality of stored disk I/O command chains on a first-in-first-out basis in a buffer of a disk controller for a disk drive using a hardware implemented lock function of the processor and not an operating system lock function to check a fullness of the buffer prior to adding new start address pointers, and using the operating system lock function to handle the buffer after a buffer full condition occurs; and dynamically accessing and executing the plurality of stored disk I/O command chains by the disk controller by serially accessing on the first-in-first-out basis of the plurality of respective start address pointers in the buffer, wherein the plurality of disk I/O command chains are accessed and executed asynchronously with respect to storing the plurality of disk I/O command chains. - View Dependent Claims (2)
-
-
3. A non-transitory computer readable media having computer readable code which when executed by a processor of a computer system cause the computer system to implement a method for dynamic buffering of disk I/O command chains for the computer system, comprising:
-
receiving the plurality of disk I/O command chains and respective start address pointers contemporaneously by re-entrant code from a plurality of threads executing on the processor of the computing system; storing the plurality of disk I/O command chains, wherein each disk I/O command chain is stored separately from each other without implementing an appending operation; storing the plurality of respective start address pointers for the plurality of stored disk I/O command chains on a first-in-first-out basis in a buffer of a disk controller for a disk drive using a hardware implemented lock function of the processor and not an operating system lock function to check a fullness of the buffer prior to adding new start address pointers, and using the operating system lock function to handle the buffer after a buffer full condition occurs; and dynamically accessing and executing the plurality of stored disk I/O command chains by the disk controller by serially accessing on the first-in-first-out basis of the plurality of respective start address pointers in the buffer, wherein the plurality of disk I/O command chains are accessed and executed asynchronously with respect to storing the plurality of disk I/O command chains. - View Dependent Claims (4)
-
-
5. A computer system for dynamic buffering of CPB (command parameter block) chains, comprising:
-
a processor; a system memory coupled to the processor; a bridge component coupled to the processor; and a disk controller for a disk drive coupled to the bridge component, wherein the processor execute software code stored in the system memory, the software code causing the computer system to implement a method comprising; receiving a plurality of CPB chains and respective start address pointers contemporaneously by re-entrant code from a plurality of threads executing on the processor of the computing system; storing the plurality of CPB chains, wherein each CPB chain is stored separately from each other without implementing an appending operation; storing the plurality of respective start address pointers for the plurality of stored CPB chains on a first-in-first-out basis in a buffer of the disk controller for the disk drive using a hardware implemented lock function of the processor and not an operating system lock function to check a fullness of the buffer prior to adding new start address pointers, and using the operating system lock function to handle the buffer after a buffer full condition occurs; and dynamically accessing and executing the plurality of stored CPB chains by the disk controller by serially accessing on the first-in-first-out basis of the plurality of respective start address pointers in the buffer, wherein the plurality of CPB chains are accessed and executed asynchronously with respect to storing the plurality of CPB chains. - View Dependent Claims (6, 7, 8)
-
Specification