Method for disk I/O transfer
First Claim
1. In a computer system including a central processing unit (CPU) having a main memory, and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
- for each user request received, placing a queue block representative of the user request on a work queue;
constructing a command block for each queue block placed on the work queue, said command block fully defining the user request;
forwarding each command block from the CPU to the disk memory unit for execution;
after each command block has been forwarded to the disk memory unit for execution, transferring the queue block that is representative of the user request from the work queue to a pending queue;
executing the user requests represented by each command block in an order determined by said disk memory unit; and
removing each queue block from the pending queue after the disk memory unit has completed the user request.
7 Assignments
0 Petitions
Accused Products
Abstract
A disk control system offloads to the disk controller much of the overhead associated with disk operations and makes the CPU available for other work. A command block that fully specifies a user request for a disk operation is forwarded to the disk memory unit. The command block contains a unique identifier for tracking of user requests. User requests are executed by the disk memory unit in an order that is most efficient for the disk drive system. The status of a user request is communicated to the CPU via an interrupt and a status block containing the unique identifier. The status block indicates status conditions such as command read, completion and DMA channel request. The disk driver contains a work queue for user requests that have not been forwarded to the disk memory unit and a pending queue for user requests that are awaiting completion by the disk memory unit. By manipulation of the work queues and pending queues, the disk controller can be automatically reinitialized when an error occurs. The disk driver monitors the time that each user request is on the pending queue in order to detect failures of the disk memory unit.
140 Citations
53 Claims
-
1. In a computer system including a central processing unit (CPU) having a main memory, and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
for each user request received, placing a queue block representative of the user request on a work queue; constructing a command block for each queue block placed on the work queue, said command block fully defining the user request; forwarding each command block from the CPU to the disk memory unit for execution; after each command block has been forwarded to the disk memory unit for execution, transferring the queue block that is representative of the user request from the work queue to a pending queue; executing the user requests represented by each command block in an order determined by said disk memory unit; and removing each queue block from the pending queue after the disk memory unit has completed the user request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. In a computer system including a central processing unit (CPU) having a main memory, and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
constructing for each user request a command block that fully specifies the user request; assigning to each command block a unique identifier; forwarding each command block from the CPU to the disk memory unit; after forwarding each command block to the disk memory unit, resuming normal operation of the CPU;
p1 executing the user request specified by each command block in an order determined by said disk memory unit;constructing a status block representative of a status of a user request that is pending in the disk memory unit, said status block containing the unique identifier; and initiating an interrupt and forwarding the status block from the disk memory unit to the CPU. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38)
-
-
36. In a computer system including a central processing unit (CPU) and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
constructing for each user request a command block that fully specifies the user request, each command block being assigned a unique identifier number; forwarding each command block from the CPU to the disk memory unit for execution in an order determined by said disk memory unit; after forwarding each command block to the disk memory unit, resuming normal operation of the CPU; requesting the CPU to set up a data transfer channel each time the disk memory unit is ready for transfer of data to or from the disk memory unit; transferring data to or from the disk memory unit under control of the disk memory unit; and notifying the CPU each time that a user request has been completed.
-
-
39. In a computer system including a central processing unit (CPU) having a main memory and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
for each user request received, constructing a command block fully defining the user request; forwarding each command block from the CPU to the disk memory unit for execution; executing the user requests represented by each command block in an order determined by said disk memory unit; notifying the CPU that a specified user request has been completed; maintaining in the CPU a record of each command block forwarded to the disk memory unit and a time that the command block was forwarded to the disk memory unit; deleting the record of each command block when the disk memory unit notifies the CPU that the user request was completed; generating an error condition when a period of time since any command block was forwarded to the disk memory exceeds a predetermined maximum value; and automatically reinitializing the disk memory unit and resuming operation in response to said error condition. - View Dependent Claims (40, 41)
-
-
42. In a computer system including a central processing unit (CPU) having a main memory and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
for each user request received, constructing a command block fully defining the user request; forwarding each command block from the CPU to the disk memory unit for execution; executing the user requests represented by each command block in an order determined by said disk memory unit; notifying the CPU that a specified user request has been completed; determining when an unrecoverable error has occurred in the disk memory unit; notifying the CPU that an unrecoverable error has occurred; and automatically reinitializing the disk memory unit and resuming operation in response to said unrecoverable error. - View Dependent Claims (43)
-
-
44. In a computer system including a central processing unit (CPU) having a main memory, and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
for each user request, forwarding a command block that fully specifies the user request from the CPU to the disk memory unit, said command block containing a unique identifier; resuming normal operation of the CPU until notified by the disk memory unit of a status of a specified user request; executing the user request specified by the command block at a time determined by the disk memory unit; and notifying the CPU of the status of the specified user request via an interrupt and a status block containing said unique identifier. - View Dependent Claims (45, 46, 47, 48, 49, 50, 51, 52)
-
-
53. In a computer system including a central processing unit (CPU) having a main memory, and a disk memory unit interconnected to the CPU, a method for executing user requests for work by the disk memory unit comprising the steps of:
-
notifying the disk memory unit that a command block representative of a user request is available in the CPU; accessing the command block for execution by the disk memory unit; and notifying the CPU when the user request represented by the command block has been completed.
-
Specification