Claims
- 1. A computer system comprising;
- a) a host system;
- b) a disk system with a plurality of cylinders each having a plurality of tracks T with each track containing a plurality of blocks arranged in stripes within each cylinder, where the blocks in use in a cylinder are randomly distributed and have a utilization level U that results in 1/1-U.sup.I being <2 where I is the number of tracks in that cylinder; and
- c) logic means for controlling entry of data in said disk system including:
- i) records means to determine the cylinder C, track T and physical block B location that is being accessed and if the next location B+1 on track T or any other track is free;
- ii) write control means for controlling the writing of an updated version of data at location C', T', B' into the next physical block location B+1 if it is indicated as being free and write said updated version into 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; and
- iii) update means to indicate as free the 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.
- 2. The computer system of claim 1 wherein said record means includes table means indicating usage and non-usage of block locations in said disk system.
- 3. The computer system of claim 1 wherein said disk system includes more physically addressable block locations than logical block addresses.
- 4. The computer system of claim 1 wherein said write control means includes means for storing said data in any block B+2 in cylinder C if no physical block location B+1 in any track of cylinder C is free.
- 5. The computer system of claim 4 wherein said write control means includes means for:
- storing data in another free block address in cylinder C if no physical block location B+2 in cylinder C is free; and
- if no free block is found in cylinder C going to the next cylinder C".
- 6. A computer system comprising;
- a) a host system;
- b) a disk system with a plurality of cylinders C each containing a plurality of tracks T with each track containing a plurality of physical block locations B for storing blocks of data which block locations are arranged in stripes each stripe containing a block location of a different track of a cylinder which disk system has means establishing a utilization level U that limits the number of used logical block location addresses for each cylinder in the disk system to less than the actual number of physical block locations that are addressable in that cylinder of the disk system;
- c) means for performing a write operation for updated data at the next free physical block location in the following sequence:
- 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.
- 7. The computer system of claim 6 wherein 1/1-U.sup.I is 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.
- 8. The computer system of claim 7 including:
- means for checking the current cylinder to determine if the current cylinder utilization exceeds a predetermined ratio; and
- means for seeking a free block in the next cylinder if that ratio is exceeded.
- 9. The computer system of claim 8 including table means maintaining a list of physical block locations in use and of physical block locations indicated as free.
- 10. In a computer system including a host system and a disk system with a plurality of cylinders C each containing a plurality of tracks T with each track containing a plurality of physical block locations B for storing blocks of data which locations are arranged in stripes each stripe containing a block location of a different track of the cylinder, means for controlling the location of stored data comprising:
- a) means maintaining the number of physical blocks in use at a desired utilization level U of a cylinder that results in 1/1-U.sup.I being <2 where I is the number of tracks in the cylinder;
- b) means for distributing data in logical block locations at random addressable physical block locations;
- c) means taking into account track skew, for finding the next free physical block location from the current track head position;
- d) means for performing a write operation for updated data at the next free physical block location in the following sequence:
- 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) means for indicating as free the previous block location of the data written into the next free physical block location.
- 11. The computer system of claim 10 including:
- f) means for checking the current cylinder to determine if the current cylinder utilization exceeds a predetermined ratio; and
- g) means for seeking a free block in the next cylinder if that ratio is exceeded.
- 12. In the computer system of claim 10 including:
- means for maintaining a list of physical block locations in use and of physical block locations indicated as free.
Parent Case Info
This application is a continuing application of U.S. application Ser. No. 08/414,409, filed Mar. 31, 1995, now U.S. Pat. No. 5,708,793 issued Jan. 13, 1998.
US Referenced Citations (6)
Continuations (1)
|
Number |
Date |
Country |
Parent |
414409 |
Mar 1995 |
|