Method for dynamically adjusting buffer utilization ratios in a hard disk drive system
AssigneeInternational Business Machines Corporation
InventorDarin Edward Gerhart
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorDarin Edward Gerhart
Estimating the term…
A method, which may be embodied upon a computer readable medium and executed by a processor, for dynamically adjusting engine startup parameters for a hard disk drive system. The method includes determining if a drive catch-up condition or a host catch-up condition has occurred and adjusting at least one of a read pad and a write pad if a drive catch-up condition is determined. The method further calculating a pad parameter and an optimal delay parameter if a host catch-up condition is determined. Thereafter, the method includes adjusting the optimal delay parameter with the pad parameter if a host catch-up condition is determined.
A method for dynamically adjusting engine startup parameters for a hard disk drive system, comprising:
A computer readable medium storing a software program that, when executed by a processor, causes the processor to perform a method comprising:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Improving I/O performance: in relation to throughput
Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices: data buffering…
Disk device: magnetic disk device
Computing and data processing
Term ended 19 Sep 2022 (estimated)
1. Field of the Invention
The present invention relates to adjustment of buffer parameters in a hard disk drive system.
2. Background of the Related Art
So that the manner in which the above recited features and embodiments are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
FIG. 1 illustrates a conventional hard disk drive engine configuration.
A general solution to the difficulties associated with dynamically calculating adaptive ratios for a hard disk drive resident in an FC-AL type interface is to dynamically maintain at least one variable that may be used to control memory buffer usage. A first dynamically adjusted variable may represent a number of memory blocks read into a memory buffer by a drive side engine compared to the number of memory blocks currently residing in the memory buffer designated for transfer by a host side. This variable, which may be termed a Read Buffer Pad, may therefore be used to determine an optimal point in time where the host engine should start/restart transferring read data so that the drive side engine does not stall and/or enter into a catch-up condition during the transfer of data into and out of the buffer. A second dynamically adjusted variable, which may be termed the Write Buffer Pad, may represent the difference between the number of memory blocks read into the memory buffer by the drive side engine compared to the number of memory blocks remaining in the memory buffer for transfer by the host side engine. This variable may be used to determine the optimal point at which the host side engine should request more data to be written in to the memory buffer so that the drive side engine does not enter into a catch-up condition. These two variables are generally needed since the time to restart the host side transfer for reads can be significantly less than the amount of time to request and receive data for writes.
The dynamic maintenance of the two variables may be configured so that the drive side engine does not stop transferring data until it has reached the end of the command, which will minimize drive side catch-ups. FIG. 2 is presented as an exemplary illustration of hard disk drive data buffers prior to a host side engine being re-started for both a Read command case and a Write command case. The exemplary illustration of FIG. 2 assumes that respective buffers wrap from top to bottom. Therefore, for a read command, FIG. 2 illustrates how the read buffer 200 will fill up with data from the media. At the point where the drive side reaches the read buffer pad delta 202 from the host side location, the host side should begin transferring data to the host system. For a write command case, FIG. 2 illustrates the drive side engine emptying the read buffer 200 as it writes data to the media. Therefore, at the point where the drive side reaches the write buffer pad delta 203 from the host side location, the host side should begin requesting more data to write from the host system.
The respective pads 202, 203 may be dynamically adjusted during read/write operations, wherein the adjustments may be based upon current network condition as well as the success or failure of the previous pad settings. In order to accomplish this type of dynamic adjustment taking into account previous statistical information, separate statistical counters, as are known in the art, may be used to track and/or record statistical information relative to the configuration. For example, the statistical counters may be used to track and/or record parameters such as the number of host-catch-ups and the number of drive catch-ups for both read and write operations, the number of times the host side engine begins a data transfer, along with various other FC-AL related parameters. Separate variables may also track/record the host side and drive side locations in the buffer during the previous catch-up condition.