Data storage organization for distributed computing in an intelligent disk drive
First Claim
1. A method of operating a disk drive comprising the steps of:
- receiving a task definition command from a host computer which defines a task for the disk drive, the task requiring first and second alternative blocks of information during execution;
storing at least first and second alternative blocks of information at first and second physical locations on first and second disk surfaces respectively, the first and second physical locations being selected to optimize execution of the task;
executing the task to determine whether the first or the second alternative block of information is needed; and
reading the first or second alternative block of information.
3 Assignments
0 Petitions
Accused Products
Abstract
An intelligent disk drive is described which includes means for executing distributed computing tasks including a CPU and associated memory. The communication interface with the host computer is modified to allow the host computer to send executable code for a task to the drive and to allow the drive to communicate the results and status information about the task to the host computer. A method of organizing data for distributed processing in the intelligent disk drive is described which utilizes physical placement of the data around the rotating disk to optimize the execution of the task. In one embodiment head switching is used as further optimization in a disk drive having a plurality of heads to implement alternatives in the task program. In another embodiment, the intelligent disk drive has means for reading from at least one or more heads simultaneously while writing to another head.
-
Citations
30 Claims
-
1. A method of operating a disk drive comprising the steps of:
-
receiving a task definition command from a host computer which defines a task for the disk drive, the task requiring first and second alternative blocks of information during execution; storing at least first and second alternative blocks of information at first and second physical locations on first and second disk surfaces respectively, the first and second physical locations being selected to optimize execution of the task; executing the task to determine whether the first or the second alternative block of information is needed; and reading the first or second alternative block of information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of operating a disk drive comprising the steps of:
-
receiving a task definition command from a host computer, the task including processing a first series of units of input information sequentially stored on a first track to generate a series of units of output information; and executing the task by repeating the steps of reading a first unit in the first series of units of input information from the first track using a first head positioned over the first track, generating a first unit of the series of units of output information and writing the first unit of the series of units of output information on a second track using a second head without moving the first head. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A disk drive comprising:
-
a processor and a memory for storing data and a program for the processor; a task control program executable by the processor loaded into the memory, the task control program including means for accepting a task definition command from a host computer, the task definition command including a specification of a task program of code executable by the processor and a specification of data for the task program; means for executing the task program as an interruptible process using the data for the task, the means for executing the task program including means for storing task status and pointers when an interrupt occurs and resuming execution of the task program when an interrupt has been processed; means for storing at least first and second alternative blocks of information on first and second disk surfaces, the first and second alternative blocks being stored at a common angular position; means for executing the task to determine whether the first or the second alternative block of information is needed; means for selecting a head for the first disk surface to read the first alternative block or selecting a head for the second disk surface to read in the second alternative block based on the step of executing the task; and means for signaling the host that the task program has completed. - View Dependent Claims (22, 23, 24)
-
-
25. A disk drive comprising:
-
a processor and a memory for storing data and a program for the processor; a task control program executable by the processor loaded into the memory, the task control program including means for accepting a task definition command from a host computer, the task definition command including a specification of a task program of code executable by the processor and a specification of data for the task program; means for executing the task program as an interruptible process using the data for the task, the means for executing the task program including means for storing task status and pointers when an interrupt occurs and resuming execution of the task program when an interrupt has been processed; means for executing the task by repeating the steps of reading a first unit in the first series of units of input information from the first track using a first head positioned over the first track, generating a first unit of the series of units of output information and writing the first unit of the series of units of output information on a second track using a second head without moving the first head; and means for signaling the host that the task program has completed. - View Dependent Claims (26, 27, 28, 29, 30)
-
Specification