Patent US5136692A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5136692A Expired / Lapsed US ⏱️ 0.0 years remaining

Memory disk buffer manager

Assignee: International Business Machines Corp
•
Filing: 1991-07-24
•
Granted: 1992-08-04
•
Expires: 2011-07-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data processing system including at least one storage device for storing and retrieving data and connected to a storage device interface that controls the storing and retrieving of data from the storage device and further includes a data buffer for storing data retrieved from or being stored in the storage device. The data processing system includes a storage device driver that receives storage access commands from a processor, provides commands to the interface in response to these commands to the access commands from the processor and also provides commands for data not requested by the processor. The commands for data not requested by the processor provide for the temporary storage of data in the storage device interface data buffer. This data not requested by the processor is retrieved in anticipation of commands to be sent by the processor. The storage driver manages this buffer to optimize the amount of storage dedicated to the storage of data for these anticipatory commands.

Inventors

  • 👤 Gerald G. Barrett
  • 👤 Syed Z. Pasha
  • 👤 Amal A. Shaheen-Gouda

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 18:42
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866; G06F12/0862

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 258 words
A data processing system comprising: at least one storage means for storing and retrieving data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means, said data buffer means further including a plurality of data blocks each for the storage of data from the storage means in response to one command from a storage driver means; and said storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for storing requested data in said data buffer means until said requested data has been accessed by said processor and storing nonrequested data in said data buffer means until either the nonrequested data is accessed by said processor or until a location storing the nonrequested data is needed for storing data from a subsequent command for requested or nonrequested data, and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data means and including means for determining how many commands for requested data have been received while each nonrequested data has been stored in said data blocks in response to said nonrequested data commands.
Claim 2
Dependent Claim 258 words
A data processing system comprising: at least one storage means for storing and retrieving data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means, said data buffer means further including a plurality of data blocks each for the storage of data from the storage means in response to one command from a storage driver means; and said storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for storing requested data in said data buffer means until said requested data has been accessed by said processor and storing nonrequested data in said data buffer means until either the nonrequested data is accessed by said processor or until a location storing the nonrequested data is needed for storing data from a subsequent command for requested or nonrequested data, and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data means and including means for determining how many commands for requested data have been received while each nonrequested data has been stored in said data blocks in response to said nonrequested data commands.
Claim 3
Dependent Claim 72 words
A data processing system according to claim 1 wherein said storage driver means includes means for designating a data block to store data in response to a storage means access command from said processor when the data block previously stored data in response to a nonrequested data command and the number of commands for requested data that have been received while that previously stored data has been stored exceeds a predetermined number.
Claim 4
Dependent Claim 134 words
A data processing system according to claim 2 wherein said storage driver means includes means for designating a data block to store requested data in response to a storage means access command from said processor (1) when the designated block previously stored nonrequested data in response to a nonrequested data command, (2) when a number of commands for requested data received during storage of the nonrequested data in the designated data block is less than a number of commands for requested data received during storage of nonrequested data in each of all other data blocks storing nonrequested data, and (3) when one of the remaining blocks storing nonrequested data have had their respective nonrequested data stored for a period during which a number of commands for requested data received has exceeded the predetermined number.
Claim 5
Dependent Claim 276 words
A data processing system comprising: at least one storage means for storing and retrieving data from a plurality of moving tracks each including sequentially located sectors for the storage of data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means and said data buffer means including a plurality of data blocks each for the storage of data from sectors of the storage means in response to one command from a storage driver means; and said storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for storing said requested data in said data buffer means until said requested data has been accessed by said processor and storing nonrequested data in said data buffer means until either the nonrequested data is accessed by said processor or until a location storing the nonrequested data is needed for storing data from a subsequent command for requested or nonrequested data, and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data and including means for determining how many commands for requested data have been received while each nonrequested data has been stored in said data blocks in response to said nonrequested data commands.
Claim 6
Dependent Claim 276 words
A data processing system comprising: at least one storage means for storing and retrieving data from a plurality of moving tracks each including sequentially located sectors for the storage of data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means and said data buffer means including a plurality of data blocks each for the storage of data from sectors of the storage means in response to one command from a storage driver means; and said storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for storing said requested data in said data buffer means until said requested data has been accessed by said processor and storing nonrequested data in said data buffer means until either the nonrequested data is accessed by said processor or until a location storing the nonrequested data is needed for storing data from a subsequent command for requested or nonrequested data, and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data and including means for determining how many commands for requested data have been received while each nonrequested data has been stored in said data blocks in response to said nonrequested data commands.
Claim 7
Dependent Claim 71 words
A data processing system according to claim 4 wherein said storage driver means includes means for designating a data block to store data in response to a storage means access command from said processor when the data block previously stored data in response to a nonrequested data command and number of commands for requested data that have been received while that previously stored data has been stored exceeds a predetermined number.
Claim 8
Dependent Claim 134 words
A data processing system according to claim 5 wherein said storage driver means includes means for designating a data block to store requested data in response to a storage means access command from said processor (1) when the designated block previously stored nonrequested data in response to a nonrequested data command, (2) when a number of commands for requested data received during storage of the nonrequested data in the designated data block is less than a number of commands for requested data received during storage of nonrequested data in each of all other data blocks storing nonrequested data, and (3) when none of the remaining blocks storing nonrequested data have had their respective nonrequested data stored for a period during which a number of commands for requested data received has exceeded the predetermined number.
Claim 9
Dependent Claim 44 words
A data processing system according to claim 6 wherein said means for providing nonrequested data commands provides such commands for data located in sectors adjacent to sectors storing said data retrieved in response to commands for requested data in one of said storage means.
Claim 10
Dependent Claim 295 words
A data processing system comprising: at least one storage means for storing and retrieving data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means and further including a buffer directory containing information indicating locations storing data and locations available for storing data; and a storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for regulating the storage of data in said data buffer means according to said buffer directory by (1) storing either requested or nonrequested data in available locations indicated by said buffer directory information and changing the buffer directory information to indicate such storage, (2) for requested data, changing such buffer directory information to indicate location availability when said requested data has been accessed by said processor, and (3) for nonrequested data, changing such buffer directory information to indicate location availability when either the nonrequested data is accessed by said processor or when a location storing the nonrequested data has been stored in said data blocks in response to said nonrequested data commands, and wherein said data buffer means includes a plurality of data blocks each for storage of data from the storage means in response to one command from the storage driver means and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data.
Claim 11
Dependent Claim 295 words
A data processing system comprising: at least one storage means for storing and retrieving data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means and further including a buffer directory containing information indicating locations storing data and locations available for storing data; and a storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for regulating the storage of data in said data buffer means according to said buffer directory by (1) storing either requested or nonrequested data in available locations indicated by said buffer directory information and changing the buffer directory information to indicate such storage, (2) for requested data, changing such buffer directory information to indicate location availability when said requested data has been accessed by said processor, and (3) for nonrequested data, changing such buffer directory information to indicate location availability when either the nonrequested data is accessed by said processor or when a location storing the nonrequested data has been stored in said data blocks in response to said nonrequested data commands, and wherein said data buffer means includes a plurality of data blocks each for storage of data from the storage means in response to one command from the storage driver means and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data.
Claim 12
Dependent Claim 72 words
A data processing system according to claim 8 wherein said storage driver means includes means for designating a data block to store data in response to a storage means access command from said processor when the data block previously stored data in response to a nonrequested data command and the number of commands for requested data that have been received while that previously stored data has been stored exceeds a predetermined number.
Claim 13
Dependent Claim 325 words
A data processing system comprising: at least one storage means for storing and retrieving data from a plurality of moving tracks each including sequentially located sectors for the storage of data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means and further including a buffer directory containing information indicating locations storing data and locations available for storing data; and a storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for regulating the storage of data in said data buffer means according to said buffer directory by (1) storing either requested or nonrequested data in available locations indicated by said buffer directory information and changing the buffer directory information to indicate such storage, (2) for requested data, changing such buffer directory information to indicate location availability when either the nonrequested data is accessed by said processor or when a location storing the nonrequested data is needed for storing data from a subsequent command for requested or nonrequested data, said storage driver means further including means for determining how many commands for requested data have been received while each nonrequested data has been stored in said data blocks in response to said nonrequested data commands, and wherein said data buffer means includes a plurality of data blocks each for storage of data from sectors of the storage means in response to one command from the storage driver means and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data.
Claim 14
Dependent Claim 325 words
A data processing system comprising: at least one storage means for storing and retrieving data from a plurality of moving tracks each including sequentially located sectors for the storage of data; a storage interface means for controlling the storing and retrieving of data from said storage means and including a data buffer means for storing data retrieved from or to be stored in said storage means and further including a buffer directory containing information indicating locations storing data and locations available for storing data; and a storage driver means for receiving storage means access commands from a processor, for providing requested data commands to said storage interface means in response thereto and including means for providing nonrequested data commands for data not requested by said processor from said storage means, and for regulating the storage of data in said data buffer means according to said buffer directory by (1) storing either requested or nonrequested data in available locations indicated by said buffer directory information and changing the buffer directory information to indicate such storage, (2) for requested data, changing such buffer directory information to indicate location availability when either the nonrequested data is accessed by said processor or when a location storing the nonrequested data is needed for storing data from a subsequent command for requested or nonrequested data, said storage driver means further including means for determining how many commands for requested data have been received while each nonrequested data has been stored in said data blocks in response to said nonrequested data commands, and wherein said data buffer means includes a plurality of data blocks each for storage of data from sectors of the storage means in response to one command from the storage driver means and said storage driver means further including means for regulating storage of data in said buffer means by reserving said blocks for data in response to said storage means access commands and said commands for nonrequested data.
Claim 15
Dependent Claim 71 words
A data processing system according to claim 10 wherein said storage driver means includes means for designating a data block to store data in response to a storage means access command from said processor when the data block previously stored data in response to a nonrequested data command and number of commands for requested data that have been received while that previously stored data has been stored exceeds a predetermined number.
Claim 16
Dependent Claim 44 words
A data processing system according to claim 11 wherein said means for providing nonrequested data commands provides such commands for data located in sectors adjacent to sectors storing said data retrieved in response to commands for requested data in one of said storage means.
Claim 17
Dependent Claim 123 words
A data processing system according to claim 12 wherein said storage driver means includes means for designating a data block to store requested data in response to a storage means access command from said processor (1) when the designated block previously stored nonrequested data in response to a nonrequested data command, (2) when a number of commands for requested data received during storage of the nonrequested data in the designated data received during storage of nonrequested data in each of all other data blocks storing nonrequested data, and (3) when none of the remaining blocks storing nonrequested data have had their respective nonrequested data stored for a period during which a number of commands for requested data received has exceeded the predetermined number.
Claim 18
Dependent Claim 124 words
A data processing system according to claim 13 wherein said storage driver means includes means for designating a data block to store requested data in response to a storage means access command from said processor (1) when the designated block previously stored nonrequested data in response to a nonrequested data command, (2) when a number of commands for requested data received during storage of the nonrequested data in the designated data block is less than a number of commands for requested data received during storage of nonrequested data, and (3) when none of the remaining blocks storing nonrequested data have had their respective nonrequested data stored for a period during which a number of commands for requested data received has exceeded the predetermined number.
Claim 19
Dependent Claim 242 words
In a data processing system including at least one storage device that stores and retrieves data, a storage interface that controls the storing and retrieving of data in the storage device and including a data buffer that stores data retrieved from or to be stored in the storage device, the data buffer further including a plurality of data blocks each for the storage of data from the storage device in response to a command from a storage driver circuit, a method comprising the steps of: receiving storage device access commands from a processor in the storage driver; providing requested data commands to the storage interface in response to the receiving of the storage means access commands; providing nonrequested data commands for data not requested by the processor; storing requested data in the data buffer until the requested data has been accessed by the processor; storing nonrequested data in the data buffer means until either the nonrequested data is accessed by the processor or until a location storing the nonrequested data is needed for storing data from a subsequent command for either requested or nonrequested data; regulating storage of data in said buffer means by reserving the blocks for data in response to the storage means access commands and the commands for nonrequested data; and determining how many commands for requested data have been received while each nonrequested data has been stored in the data blocks in response to the nonrequested data commands.
Claim 20
Dependent Claim 242 words
In a data processing system including at least one storage device that stores and retrieves data, a storage interface that controls the storing and retrieving of data in the storage device and including a data buffer that stores data retrieved from or to be stored in the storage device, the data buffer further including a plurality of data blocks each for the storage of data from the storage device in response to a command from a storage driver circuit, a method comprising the steps of: receiving storage device access commands from a processor in the storage driver; providing requested data commands to the storage interface in response to the receiving of the storage means access commands; providing nonrequested data commands for data not requested by the processor; storing requested data in the data buffer until the requested data has been accessed by the processor; storing nonrequested data in the data buffer means until either the nonrequested data is accessed by the processor or until a location storing the nonrequested data is needed for storing data from a subsequent command for either requested or nonrequested data; regulating storage of data in said buffer means by reserving the blocks for data in response to the storage means access commands and the commands for nonrequested data; and determining how many commands for requested data have been received while each nonrequested data has been stored in the data blocks in response to the nonrequested data commands.

References Cited (Backward Citations)

US4246637A Cited
US4399503A Cited
US4437155A Cited
US4489378A Cited
US4490782A Cited
US4530055A Cited
EP0109309A2 Cited
US4719568A Cited
US4648033A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-08-04 1996-02-03 1996-08-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-08-04 2000-02-03 2000-08-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-08-04 2004-02-03 2004-08-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag