Seagate ST373554FC ユーザーズマニュアル

ページ / 98
Cheetah 15K.4 FC Product Manual, Rev. B
13
the applicable bytes in page 08h. Prefetch and cache operations are independent features from the standpoint 
that each is enabled and disabled independently using the Mode Select command; however, in actual opera-
tion, the prefetch feature overlaps cache operation somewhat as described in sections 4.5.1 and 4.5.2. 
All default cache and prefetch mode parameter values (Mode Page 08h) for standard OEM versions of this 
drive family are given in Table 18.
4.5
Cache operation
Note.
Refer to the Fibre Channel Interface Manual for more detail concerning the cache bits.
Of the 16,384 kbytes physical buffer space in the drive, approximately
 
14,218 kbytes can be used as a cache.
Cache segmenting is adjusted dynamically by the disk drive hardware according to the workload being experi-
enced by the drive. The drive is capable of dynamically-adjusting up to 256 segments. The number and sizes 
of segments are not user-defined.
The drive keeps track of the logical block addresses of the data stored in each segment of the buffer. If the 
cache is enabled (see RCD bit in the Fibre Channel Interface Manual ), data requested by the host with a read 
command is retrieved from the buffer, if possible, before any disc access is initiated. If cache operation is not 
enabled, the buffer is still used, but only as circular buffer segments during disc medium read operations (dis-
regarding 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 the explanation pro-
vided with the information about Mode Page 02h (disconnect/reconnect control) in the Fibre Channel Interface 
Manual
.
The following is a simplified description of the prefetch/cache operation: 
Case A—read command is received and the first logical block is already in the cache: 
1. Drive transfers to the initiator the first logical block requested plus all subsequent contiguous logical blocks 
that are already in the cache. This data may be in multiple segments.
2. When a requested logical block is reached that is not in any cache segment, the drive fetches it and any 
remaining requested logical block addresses from the disc and puts them in a segment of the cache. The 
drive transfers the remaining requested logical blocks from the cache to the host in accordance with the 
Mode Select Disconnect/Reconnect parameters, page 02h.
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, and the first logical block is not in any segment of the cache:
1. The drive fetches the requested logical blocks from the disc and transfers them into a segment, and then 
from there to the host in accordance with the Mode Select Disconnect/Reconnect parameters, page 02h.
2. If the prefetch feature is enabled, refer to section 4.5.2 for operation from this point.
During a prefetch, the drive crosses a cylinder boundary to fetch data only if the Discontinuity (DISC) bit is set 
to 1 in bit 4 of byte 2 of the Mode Select parameters page 08h. Default is zero for bit 4.
Each cache segment is actually a self-contained circular buffer whose length is an integer number of logical 
blocks. The sizes of the segments are determined by the drive’s analysis of the current workload.
Note.
The size of each segment is not reported by Mode Sense command page 08h, bytes 14 and 15. 
The value 0XFFFF is always reported regardless of the actual size of the segment. Sending a size 
specification using the Mode Select command (bytes 14 and 15) does not set up a new segment 
size. 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 an unchangeable parameter.