Method and apparatus using address and read head location information to provide optimal operation of a disk system
First Claim
Patent Images
1. In a computer system including a host system and a disk system with a plurality of cylinders each having a plurality of tracks with each track containing a plurality of blocks arranged in stripes within each cylinder, a method of operation comprising:
- a) establishing a utilization level U by providing a number of logical block addresses for the disk system whih is less than the actual number of addressable physical blocks in the disk system;
b) maintaining physical blocks that are in use randomly distributed throughout the disk system;
c) determine the cylinder C, track T and physical block B location that is being accessed and write updated data of data at location C'"'"', T'"'"', B'"'"' into the next physical block location B+1 if it is indicated as being free;
d) write said data in physical block location B+1 in another track in the same cylinder C if block B+1 on said another track is indicated as being free and location C, T, B+1 is not free;
e) indicated as free the previous location C'"'"', T'"'"', B'"'"', of the data that has been updated to maintain utilization of actual storage locations in the disk system substantially at U or below; and
f) selecting the utilization level U to maintain average write acess time at less than two times the time necessary to access said next blocking by selecting a value for the utilization level U that results in 1/1-UI being <
2 where I is the number of tracks in a cylinder.
1 Assignment
0 Petitions
Accused Products
Abstract
Minimal random disk write latency is achieved by limiting the number of logical address blocks that can be serviced by a disk to less that the actual number of physically addressable blocks of the system and having a disk controller dynamically map logical data blocks to physical disk blocks in such a fashion that each logical write can take place to any free location, where the free location can be chosen in any track of the current cylinder.
-
Citations
11 Claims
-
1. In a computer system including a host system and a disk system with a plurality of cylinders each having a plurality of tracks with each track containing a plurality of blocks arranged in stripes within each cylinder, a method of operation comprising:
-
a) establishing a utilization level U by providing a number of logical block addresses for the disk system whih is less than the actual number of addressable physical blocks in the disk system; b) maintaining physical blocks that are in use randomly distributed throughout the disk system; c) determine the cylinder C, track T and physical block B location that is being accessed and write updated data of data at location C'"'"', T'"'"', B'"'"' into the next physical block location B+1 if it is indicated as being free; d) write said data in physical block location B+1 in another track in the same cylinder C if block B+1 on said another track is indicated as being free and location C, T, B+1 is not free; e) indicated as free the previous location C'"'"', T'"'"', B'"'"', of the data that has been updated to maintain utilization of actual storage locations in the disk system substantially at U or below; and f) selecting the utilization level U to maintain average write acess time at less than two times the time necessary to access said next blocking by selecting a value for the utilization level U that results in 1/1-UI being <
2 where I is the number of tracks in a cylinder. - View Dependent Claims (2, 3, 4)
-
-
5. In a computer system including a host system and a disk system with a plurality of cylinders each containing a plurality of tracks with each track containing a plurality of physical block locations for storing blocks of data which locations are arranged in stripes each stripe containing a block location of a different track of the cylinder, a method of operation comprising:
-
a) establishing a utilization level U that limits the number of logical block location addresses for the disk system to less than the actual number of physical block locations that are addressable in the disk system by setting 1/1-UI less than two where U is the ratio of the number of logical block location addresses to the number of addressable physical block locations and I is the number of tracks in the current cylinder; b) distributing data at logical block addresses randomly among the addressable physical block locations; c) taking into account track skew, finding the next free physical block location from the current track head position; d) performing a write operation for updated data at the next free physical block location by; i) if the next block location in any track of the current cylinder is the next free block location, writing the updated data in the next block using a write time of one block; and ii) if the next free block location in the current cylinder is not in the next block location in any track of the current cylinder but is in the next stripe, writing the data in the next stripe using a write time of two blocks; and e) indicating as free the previous block location of the data written into the next free physical block location in step d). - View Dependent Claims (6, 7, 8)
-
-
9. In a computer system including a host system and a disk system with a plurality of cylinders each containing a plurality of tracks with each track containing a plurality of physical block locations for storing blocks of data which locations are arranged in stripes each stripe containing a block location of a different track of the cylinder, a method of operation comprising:
-
a) maintaining the number of physical blocks in use at a desired utilization level U that results in 1/1-UI being <
2 where I is the number of tracks in a cylinder;b) distributing data in logical block locations at random addressable physical block locations; c) taking into account track skew, finding the next free physical block location from the current track head position; d) performing a write operation for updated data at the next free physical block location by; i) if the next block location in any track of the current cylinder is the next free block location, writing the updated data in that next block using a write time of one block; and ii) if the next free block location in the current cylinder is not in the next block location in any track of the current cylinder but is in the next stripe, writing the data in the next stripe using a write time of two blocks; and e) indicating as free the previous block location of the data written into the next free physical block location in step d). - View Dependent Claims (10, 11)
-
Specification