# US 5,708,793 A · Method and apparatus using address and read head location information to provide optimal operation of a disk system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 5,708,793 A
- Document ID: US5708793A
- Status: Granted
- Kind: A
- Application number: 08/414,409
- Filed: 1995-03-31
- Granted: 1998-01-13
- Earliest claimed: 1995-03-31
- Assignees: International Business Machines Corporation
- Inventors: Peter Anthony Franaszek; John Timothy Robinson
- Web page: https://patentgrep.com/patent/US5708793A

## CPC

- G06F 3/0611: {in relation to response time}
- G06F 3/064: {Management of blocks}
- G06F 3/0674: {Disk device}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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.

## Claims

### Claim 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-U.sup.I being &lt;2 where I is the number of tracks in a cylinder.

### Claim 2 (depends on 1)

The method of claim 1 including the step of
g) storing said data in the any block B+2 in cylinder C if no physical block location B+1 in cylinder C is free.

### Claim 3 (depends on 2)

The method of claim 2 including the steps of:
h) storing data in another free block address in cylinder C if no physical block location B+2 in cylinder C is free; an
i) if no free block is found in cylinder C go to the next cylinder C".

### Claim 4 (depends on 3)

The method of claim 3 including the step of:
j) checking said cylinder to determine if cylinder C is the same as cylinder C" and if not check cylinder C to determine if the utilization level of cylinder C is less or greater than the desired utilization level.

### Claim 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-U.sup.I 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).

### Claim 6 (depends on 5)

In the computer system of claim 5 including the step of seeking the next free block location in the next cylinder if no block in any of the stripes of the current cylinder contains the next free block location.

### Claim 7 (depends on 5)

In the computer system of claim 5 including the steps of checking the current cylinder to detemine if the current cylinder utilization exceeds a predetermined ratio; and
seeking a free block in the next cylinder if that ratio is exceeded.

### Claim 8 (depends on 5)

In the computer system of claim 5 including the steps of maintaining a list of physical block locations in use and of physical block locations indicated as free.

### Claim 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-U.sup.I being &lt;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).

### Claim 10 (depends on 9)

In the computer system of claim 9 including the steps of:
h) checking the current cylinder to determine if the curent cylinder utilization exceeds a predetermined ratio; and
i) seeking a free block in the next cylinder if that ratio is exceeded.

### Claim 11 (depends on 10)

In the computer system of claim 10 including the step of maintaining a list of physical block locations in use and of physical block locations indicated as free.
