Seagate ST373405LW/LWV/LC/LCV ユーザーズマニュアル

ページ / 92
Cheetah 73LP Product Manual, Rev. E
11
4.5
Cache operation
In general, 3,600 kbytes (14,399 kbytes of the 16,384 kbytes in LWV and LCV models) of the 4,096 kbytes of
physical buffer space in the drive can be used as storage space for cache operations. The buffer can be divided
into logical segments (Mode Select Page 08h, byte 13) from which data is read and to which data is written.
The drive maintains a table of logical block disc medium addresses of the data stored in each segment of the
buffer. If cache operation is enabled (RCD bit = 0 in Mode Page 08h, byte 2, bit 0. See the 
SCSI Interface Prod-
uct Manual. Data requested by the host with a Read command is retrieved from the buffer (if it is there), before
any disc access is initiated. If cache operation is not enabled, the buffer (still segmented with required number
of segments) is still used, but only as circular buffer segments during disc medium read operations (disregard-
ing Prefetch operation for the moment). That is, the drive does not check in the buffer segments for the
requested read data, but goes directly to the medium to retrieve it. The retrieved data merely passes through
some buffer segment on the way to the host. On a cache miss, all data transfers to the host are in accordance
with buffer-full ratio rules. On a cache hit the drive ignores the buffer-full ratio rules. See explanations associ-
ated with Mode page 02h (disconnect/reconnect control) in the 
SCSI Interface Product Manual.
The following is a simplified description of a read operation with cache operation enabled:
Case A - A Read command is received and the first logical block (LB) is already in cache:
1.
Drive transfers to the initiator the first LB requested plus all subsequent contiguous LBs that are already in
the cache. This data may be in multiple segments.
2.
When the requested LB is reached that is not in any cache segment, the drive fetches it and any remaining
requested LBs from the disc and puts them in a segment of the cache. The drive transfers the remaining
requested LBs from the cache to the host in accordance with the disconnect/reconnect specification men-
tioned above.
3.
If the prefetch feature is enabled, refer to Section 4.5.2 for operation from this point.
Case B - A Read command requests data, the first LB of which is not in any segment of the cache:
1.
The drive fetches the requested LBs from the disc and transfers them into a segment, and from there to the
host in accordance with the disconnect/reconnect specification referred to in case A.
2.
If the prefetch feature is enabled, refer to Section 4.5.2 for operation from this point.
Each buffer segment is actually a self-contained circular storage (wrap-around occurs), the length of which is
an integer number of disc medium sectors. The wrap-around capability of the individual segments greatly
enhances the buffer’s overall performance as a cache storage, allowing a wide range of user selectable config-
urations, which includes their use in the prefetch operation (if enabled), even when cache operation is disabled
(see Section 4.5.2). The number of segments may be selected using the Mode Select command, but the size
can not be directly selected. Size is selected only as a by-product of selecting the segment number specifica-
tion. The size in Kbytes of each segment is not reported by the Mode Sense command page 08h, bytes 14 and
15. The value 0XFFFF is always reported. If a size specification is sent by the host in a Mode Select command
(bytes 14 and 15) no new segment size is set up by the drive, and if the STRICT bit in Mode page 00h (byte 2,
bit 1) is set to one, the drive responds as it does for any attempt to change unchangeable parameters (see
SCSI Interface Product Manual).
4.5.1
Caching write data
Write caching is a write operation by the drive that makes use of a drive buffer storage area where the data to
be written to the medium is stored in one or more segments while the drive performs the write command.
If read caching is enabled (RCD=0), then data written to the medium is retained in the cache to be made avail-
able for future read cache hits. The same buffer space and segmentation is used as set up for read functions.
The buffer segmentation scheme is set up or changed independently, having nothing to do with the state of
RCD. When a write command is issued, if RCD=0, the cache is first checked to see if any logical blocks that
are to be written are already stored in the cache from a previous read or write command. If there are, the
respective cache segments are cleared. The new data is cached for subsequent Read commands.
If the number of write data logical blocks exceeds the size of the segment being written into, when the end of
the segment is reached, the data is written into the beginning of the same cache segment, overwriting the data