172
Copyright@2004~2014 Qsan Technology, Inc. All Rights Reserved.
Qsan Document – User Manual
SSD caching is divided into group of sectors of equal sizes. Each group is called a cache block; each
block is divided into sub-blocks. The I/O type configured for a virtual disk would affects size of the
cache block and size of sub-blocks.
Populating the Cache
The actions that read data from the HDD and write to the SSD are called populating the cache. It is
a background operation that typically immediately follows a host read or write operation. The
constraint is that two parameters are used to determine when to start a cache-populate operation:
1.
Populate-on-read threshold: The value is great than zero. If it is zero, no action is performed
for read cache.
2.
Populate-on-write threshold: It’s the same action as read.
According to these values, each cache block has associated to its read and write counts. When a
host requests the read data located on the cache block, its read count is increment. If a cache hit
does not occur, and the read count is greater than or equal to the populate-on-read threshold,
then a cache-populate operation is performed with the host read concurrently. If a cache hit
occurs, a populate operation is not performed. If the read count is smaller than the threshold, the
count continues and a populate operation is not performed neither.
For write cases, it’s the same scenario as read. We provide the figures to describe more details on
the following.
Read/Write Cache Cases
Read Data with Cache Miss
The following figure shows the steps of the controller which handles a host read request
when some of the data is not in the SSD cache.