JP2636746B2 - Input/Output Cache - Google Patents
Input/Output CacheInfo
- Publication number
- JP2636746B2 JP2636746B2 JP6201648A JP20164894A JP2636746B2 JP 2636746 B2 JP2636746 B2 JP 2636746B2 JP 6201648 A JP6201648 A JP 6201648A JP 20164894 A JP20164894 A JP 20164894A JP 2636746 B2 JP2636746 B2 JP 2636746B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- cache
- access
- access flag
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 description 22
- 238000000034 method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、中央処理装置と入出力
装置との間に位置付けられる入出力処理装置における入
出力キャッシュに関する。FIELD OF THEINVENTION This invention relates to an I/O cache in an I/O processor located between a central processing unit and an I/O device.
【0002】[0002]
【従来の技術】入出力キャッシュは、主記憶装置と入出
力装置間の記憶階層レベルとして設けられた小容量で高
速なメモリであって、主記憶装置の内容の一部を記憶す
ることにより入出力装置に対して高速なアクセスを提供
する。従来のキャッシュメモリでは、キャッシュミスが
生じたときに置き換え対象となるブロックデータを選択
する方法として、例えばランダム法やLRU(Least Re
cently Usedの略)法がある。ランダム法とは、文字通
り乱数を用いることにより、次にどのブロックを置き換
え対象とするかをランダムに決定する方法である。この
ランダム法によれば、置き換え制御用のハードウェアを
簡単な構成で実現できる。また、LRU法とは、有効な
データブロックの中でも必要性の高いデータを格納して
いるブロックを主記憶に追い出してしまわないように、
キャッシュ内の各ブロックへのアクセス状況を記録し、
最も長い間アクセスされなかったブロックのデータを置
き換えの対象とする方法である。このLRU法によれ
ば、使用頻度の高いブロックがキャッシュに留まるため
効率の良いデータ転送ができる。2. Description of the Related Art An I/O cache is a small-capacity, high-speed memory provided as a storage hierarchy level between a main memory and an I/O device, and provides high-speed access to the I/O device by storing a portion of the contents of the main memory. In conventional cache memories, methods for selecting a block of data to be replaced when a cache miss occurs include, for example, a random method or an LRU (Least Recent) method.
The random method is a method that uses random numbers to randomly determine which block will be replaced next. This random method allows the hardware for replacement control to be realized with a simple configuration. The LRU method is a method that uses the least recently used (cently used) method to prevent valid data blocks that store highly needed data from being expelled to main memory.
Records accesses to each block in the cache,
This method targets data in a block that has not been accessed for the longest time for replacement. This LRU method allows for efficient data transfer because frequently used blocks remain in the cache.
【0003】これら従来のブロック置き換え方法につい
ては、例えば、「長島,堀越著:キャッシュ記憶,情報
処理,Vol.21,No.4,pp.332-340(1980年4月)」
を参照できる。These conventional block replacement methods are described, for example, in "Nagashima and Horikoshi, Cache Memory, Information Processing, Vol. 21, No. 4, pp. 332-340 (April 1980)"
can be referred to.
【0004】[0004]
【発明が解決しようとする課題】しかし、従来のランダ
ム法では、必要性の高いデータのブロックであっても、
特に考慮されることなく置き換えられて主記憶に追い出
されてしまうおそれがあった。However, in the conventional random method, even if a block of data is highly necessary,
There was a risk that it would be replaced and pushed out to main memory without any special consideration.
【0005】また、LRU法を用いても、入出力キャッ
シュでは同一のアドレスのデータを頻繁に書き換えるよ
うな動作は稀であることからブロック間の使用頻度の差
がつき難いため、データ転送性能の向上はあまり期待で
きないという問題があった。Furthermore, even if the LRU method is used, since operations such as frequently rewriting data at the same address are rare in an I/O cache, it is difficult to distinguish between the frequencies of use of blocks, and therefore there is a problem that little improvement in data transfer performance can be expected.
【0006】すなわち、入出力装置のデータ転送は、大
容量のデータを連続したアドレスでアクセスすることが
多く、一度アクセスしたデータをまたすぐにアクセスす
るというよりも、ブロックの最初から最後までを一度ア
クセスしてしまえばそのブロックは不要となる場合が多
い。また、入出力装置の中でも、ディスク装置のように
比較的高速な装置もあれば、回線系のように低速な装置
もある。従って、入出力キャッシュにおける置き換え対
象ブロックの決定に当たっては、これら入出力装置特有
の事情を考慮する必要がある。That is, data transfers from I/O devices often involve accessing large volumes of data using consecutive addresses, and rather than immediately accessing data that has already been accessed once, once the block has been accessed from start to finish, the block is often no longer needed. Also, among I/O devices, there are relatively high-speed devices such as disk devices and low-speed devices such as line devices. Therefore, when determining which blocks to replace in the I/O cache, it is necessary to take into account the unique circumstances of each I/O device.
【0007】本発明の目的は、上述の問題を解決し、入
出力キャッシュに適したブロック置き換えアルゴリズム
を有する入出力キャッシュを提供することにある。SUMMARY OF THE PRESENT EMBODIMENT An object of the present invention is to solve the above problems and provide an I/O cache having a block replacement algorithm suitable for I/O caches.
【0008】また、本発明の他の目的は、ブロック内の
最後のバイトまでアクセスしたブロックやディスク装置
以外の装置によるデータを有するブロックを判別して、
キャッシュミス時に入出力装置の特性を活かした置き換
え対象ブロックを決定することにある。Another object of the present invention is to determine whether a block has been accessed up to the last byte in the block or whether the block contains data from a device other than a disk device,
The present invention aims to determine a replacement target block by making the most of the characteristics of an input/output device when a cache miss occurs.
【0009】さらに、本発明の他の目的は、主記憶装置
と入出力装置間のデータ転送性能を向上させることにあ
る。A further object of the present invention is to improve the performance of data transfer between a main memory device and an input/output device.
【0010】[0010]
【課題を解決するための手段】上記課題を解決するため
に本発明の入出力キャッシュは、ブロック毎に管理され
入出力装置によりアクセスされる入出力キャッシュであ
って、前記入出力装置からアクセスがあった場合にディ
スク装置以外の入出力装置であればセットされる第1の
アクセスフラグを各ブロック毎に保持する第1のアクセ
スフラグ保持手段と、前記入出力キャッシュ内に新たに
ブロックを確保する際、前記第1のアクセスフラグ保持
手段の内容に応じて前記入出力キャッシュのブロックの
中から何れのブロックを置き換え対象ブロックとすべき
かを判定する置き換え対象ブロック判定手段とを含む。[Means for solving the problems] In order to solve the above problems, the input/output cache of the present invention is an input/output cache managed on a block-by-block basis and accessed by an input/output device, and includes a first access flag holding means for holding a first access flag for each block which is set when accessed by the input/output device if the input/output device is an I/O device other than a disk device, and a replacement target block determination means for determining which block of the input/output cache should be selected as the replacement target block depending on the contents of the first access flag holding means when reserving a new block in the input/output cache.
【0011】また、本発明の他の入出力キャッシュは、
ブロック毎に管理され入出力装置によりアクセスされる
入出力キャッシュであって、前記入出力装置からアクセ
スがあった場合に回線系のアクセスであればセットされ
る第1のアクセスフラグを各ブロック毎に保持する第1
のアクセスフラグ保持手段と、前記入出力キャッシュ内
に新たにブロックを確保する際、前記第1のアクセスフ
ラグ保持手段の内容に応じて前記入出力キャッシュのブ
ロックの中から何れのブロックを置き換え対象ブロック
とすべきかを判定する置き換え対象ブロック判定手段と
を含む。Another input/output cache of the present invention comprises:
An input/output cache managed for each block and accessed by an input/output device, the input/output cache storing a first access flag for each block, the first access flag being set if the access is a line-based access when the input/output device accesses the first block.
and a replacement target block determination means for determining which block of the input/output cache should be selected as a replacement target block in accordance with the contents of the first access flag holding means when reserving a new block in the input/output cache.
【0012】また、本発明の他の入出力キャッシュは、
ブロック毎に管理され入出力装置によりアクセスされる
入出力キャッシュであって、前記入出力装置からアクセ
スがあった場合にディスク装置以外の入出力装置であれ
ばセットされる第1のアクセスフラグを各ブロック毎に
保持する第1のアクセスフラグ保持手段と、ブロック中
の最終位置のバイトにアクセスがあったことを示す第2
のアクセスフラグを各ブロック毎に保持する第2のアク
セスフラグ保持手段と、前記入出力キャッシュ内に新た
にブロックを確保する際、前記第1のアクセスフラグ保
持手段および前記第2のアクセスフラグ保持手段の内容
に応じて前記入出力キャッシュのブロックの中から何れ
のブロックを置き換え対象ブロックとすべきかを判定す
る置き換え対象ブロック判定手段とを含む。Another input/output cache of the present invention comprises:
An input/output cache managed for each block and accessed by an input/output device, the input/output cache having a first access flag holding means for holding a first access flag for each block, the first access flag being set if the input/output device is an input/output device other than a disk device when the input/output device accesses the block, and a second access flag indicating that a byte at the last position in the block has been accessed.
and a replacement target block determination means for determining which block of the input/output cache should be selected as a replacement target block according to the contents of the first access flag holding means and the second access flag holding means when reserving a new block in the input/output cache.
【0013】また、本発明の他の入出力キャッシュは、
ブロック毎に管理され入出力装置によりアクセスされる
入出力キャッシュであって、前記入出力装置からアクセ
スがあった場合に回線系のアクセスであればセットされ
る第1のアクセスフラグを各ブロック毎に保持する第1
のアクセスフラグ保持手段と、ブロック中の最終位置の
バイトにアクセスがあったことを示す第2のアクセスフ
ラグを各ブロック毎に保持する第2のアクセスフラグ保
持手段と、前記入出力キャッシュ内に新たにブロックを
確保する際、前記第1のアクセスフラグ保持手段および
前記第2のアクセスフラグ保持手段の内容に応じて前記
入出力キャッシュのブロックの中から何れのブロックを
置き換え対象ブロックとすべきかを判定する置き換え対
象ブロック判定手段とを含む。Another input/output cache of the present invention comprises:
An input/output cache managed for each block and accessed by an input/output device, the input/output cache storing a first access flag for each block, the first access flag being set if the access is a line-based access when the input/output device accesses the first block.
the first access flag holding means for holding a second access flag for each block indicating that the last byte in the block has been accessed; and replacement target block determination means for determining which block of the input/output cache should be selected as a replacement target block in accordance with the contents of the first access flag holding means and the second access flag holding means when reserving a new block in the input/output cache.
【0014】また、本発明の他の入出力キャッシュは、
ブロック毎に管理され入出力装置によりアクセスされる
入出力キャッシュにおいて、前記置き換え対象ブロック
判定手段は、前記入出力キャッシュに空きのブロックが
あるか否かを判定する未使用ブロック有無判定部と、前
記第1のアクセスフラグ保持手段の内容に応じて前記第
1のアクセスフラグがセットされているブロックがある
か否かを判定する第1のアクセスブロック有無判定部
と、前記入出力キャッシュの各ブロックのステータスを
判定するブロックステータス判定部と、置き換えブロッ
クを決定する際のブロック探索開始位置を保持する探索
位置保持部とを含み、前記未使用ブロック有無判定部に
より前記探索位置保持部の保持する位置から各ブロック
を探索して未使用ブロックがあれば該ブロックを置き換
え対象ブロックとして決定し、前記第1のアクセスブロ
ック有無判定部により前記探索位置保持部の保持する位
置から各ブロックを探索して前記第1のアクセスフラグ
がセットされているブロックがあれば該ブロックを置き
換え対象ブロックとして決定する。Another input/output cache of the present invention comprises:
In an input/output cache managed on a block-by-block basis and accessed by an input/output device, the replacement target block determination means includes an unused block presence/absence determination unit which determines whether there is an empty block in the input/output cache, a first access block presence/absence determination unit which determines whether there is a block in which the first access flag is set according to the contents of the first access flag holding means, a block status determination unit which determines the status of each block in the input/output cache, and a search position holding unit which holds the start position of a block search when determining a replacement block, wherein the unused block presence/absence determination unit searches each block from the position held by the search position holding unit, and if an unused block is found, it determines the block as the replacement target block, and the first access block presence/absence determination unit searches each block from the position held by the search position holding unit, and if a block in which the first access flag is set is found, it determines the block as the replacement target block.
【0015】また、本発明の他の入出力キャッシュは、
ブロック毎に管理され入出力装置によりアクセスされる
入出力キャッシュにおいて、前記置き換え対象ブロック
判定手段は、前記入出力キャッシュに空きのブロックが
あるか否かを判定する未使用ブロック有無判定部と、前
記第1のアクセスフラグ保持手段の内容に応じて前記入
出力キャッシュに前記第1のアクセスフラグがセットさ
れているブロックがあるか否かを判定する第1のアクセ
スブロック有無判定部と、前記第2のアクセスフラグ保
持手段の内容に応じて前記入出力キャッシュに前記第2
のアクセスフラグがセットされているブロックがあるか
否かを判定する第2のアクセスブロック有無判定部と、
前記入出力キャッシュの各ブロックのステータスを判定
するブロックステータス判定部と、置き換えブロックを
決定する際のブロック探索開始位置を保持する探索位置
保持部とを含み、前記未使用ブロック有無判定部により
前記探索位置保持部の保持する位置から各ブロックを探
索して未使用ブロックがあれば該ブロックを置き換え対
象ブロックとして決定し、前記第2のアクセスブロック
有無判定部により前記探索位置保持部の保持する位置か
ら各ブロックを探索して前記第2のアクセスフラグがセ
ットされているブロックがあれば該ブロックを置き換え
対象ブロックとして決定し、前記第1のアクセスブロッ
ク有無判定部により前記探索位置保持部の保持する位置
から各ブロックを探索して前記第2のアクセスフラグが
セットされているブロックがあれば該ブロックを置き換
え対象ブロックとして決定する。Another input/output cache of the present invention comprises:
In an I/O cache managed for each block and accessed by an I/O device, the replacement target block determination means includes an unused block presence/absence determination section for determining whether or not there is a free block in the I/O cache, a first access block presence/absence determination section for determining whether or not there is a block in the I/O cache with the first access flag set according to the contents of the first access flag holding means, and a replacement target block determination section for determining whether or not there is a block in the I/O cache with the first access flag set according to the contents of the second access flag holding means.
a second access block presence/absence determination unit that determines whether or not there is a block in which the access flag is set;
The input/output cache includes a block status determination unit which determines the status of each block, and a search position holding unit which holds the start position of a block search when determining a replacement block, wherein the unused block presence/absence determination unit searches each block from the position held by the search position holding unit, and if an unused block is found, determines the block as the block to be replaced, the second access block presence/absence determination unit searches each block from the position held by the search position holding unit, and if a block with the second access flag set is found, determines the block as the block to be replaced, and the first access block presence/absence determination unit searches each block from the position held by the search position holding unit, and if a block with the second access flag set is found, determines the block as the block to be replaced.
【0016】また、本発明の他の入出力キャッシュは、
データを格納するデータアレイと、このデータアレイに
対応するアドレスおよび制御情報を格納するタグアレイ
とを有し、前記制御情報は、前記第1のアクセスフラグ
保持手段と前記第2のアクセスフラグ保持手段とを含
む。Another input/output cache of the present invention comprises:
The memory device has a data array for storing data, and a tag array for storing addresses and control information corresponding to the data array, the control information including the first access flag holding means and the second access flag holding means.
【0017】また、本発明の他の入出力キャッシュは、
一定以上のバイト数でキャッシュのブロックにアクセス
を行った場合にそのアクセスのあったブロックに対応し
た前記第1のアクセスフラグをセットする。Another input/output cache of the present invention comprises:
When a cache block is accessed for a certain number of bytes or more, the first access flag corresponding to the accessed block is set.
【0018】また、本発明の他の入出力キャッシュは、
キャッシュアクセスの際にディスク装置識別信号を伴わ
ない場合にそのアクセスのあったブロックに対応した前
記第1のアクセスフラグをセットする。Another input/output cache of the present invention comprises:
When a cache access is not accompanied by a disk unit identification signal, the first access flag corresponding to the accessed block is set.
【0019】[0019]
【実施例】次に本発明の入出力キャッシュの一実施例に
ついて図面を参照して詳細に説明する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, an embodiment of an input/output cache according to the present invention will be described in detail with reference to the accompanying drawings.
【0020】図1を参照すると、本発明の一実施例であ
る入出力キャッシュ100は、中央処理装置101や主
記憶装置102が接続するシステムバス103と入出力
装置群106−1〜nが接続する入出力バス105との
間に位置する入出力処理装置104の中に含まれてい
る。Referring to FIG. 1, an input/output cache 100 embodying the present invention is included in an input/output processing unit 104 located between a system bus 103 to which a central processing unit 101 and a main memory unit 102 are connected, and an input/output bus 105 to which a group of input/output devices 106-1 to 106-n are connected.
【0021】中央処理装置101によって、主記憶装置
102から入出力装置106に対する転送命令が発行さ
れると、入出力装置106は入出力バス入力バッファ1
11およびセレクタ112を介して入出力キャッシュ1
00にアクセスする。所望のデータが入出力キャッシュ
100に存在すれば、そのデータはセレクタ114およ
び入出力バス出力バッファ110を介して行き先入出力
装置106に転送される。もし、所望のデータが入出力
キャッシュ100に存在しなければ、セレクタ113お
よびシステムバス出力バッファ108を介して主記憶装
置102に要求が通知される。要求されたデータを含む
ブロックは主記憶装置102から読み出された後、シス
テムバス入力バッファ107およびセレクタ112を介
して入出力キャッシュ100に格納される。また、要求
されたデータについてはセレクタ114および入出力バ
ス出力バッファ110を介して行き先入出力装置106
にも転送される。上記入出力キャッシュへのブロックの
格納により、その後の当該ブロック内のデータについて
は主記憶装置102へのアクセスが不要となる。When the central processing unit 101 issues a transfer command from the main memory 102 to the input/output unit 106, the input/output unit 106 reads the I/O bus input buffer 1
11 and the selector 112 through the I/O cache 1
00. If the desired data is present in I/O cache 100, the data is transferred to destination I/O device 106 via selector 114 and I/O bus output buffer 110. If the desired data is not present in I/O cache 100, the request is notified to main memory 102 via selector 113 and system bus output buffer 108. The block containing the requested data is read from main memory 102 and then stored in I/O cache 100 via system bus input buffer 107 and selector 112. The requested data is also transferred to destination I/O device 106 via selector 114 and I/O bus output buffer 110.
Storing the block in the I/O cache eliminates the need for subsequent access to main memory 102 for the data in that block.
【0022】なお、図1では入出力処理装置104の
内、入出力キャッシュに関係する部分のみを示してい
る。It should be noted that FIG. 1 shows only those parts of the I/O processor 104 that relate to the I/O cache.
【0023】図2を参照すると、本発明の一実施例であ
る入出力キャッシュ100は、データを格納するデータ
アレイ208と、このデータアレイ208に対応するア
ドレスや制御情報を格納するタグアレイ207とを含ん
でいる。また、この入出力キャッシュ100は、コマン
ド、アドレスおよびデータを保持するデータバッファ2
01と、未使用ブロックの有無を判定する未使用ブロッ
ク有無判定回路202と、LBU(Last Byte Usedの
略)ブロックの有無を判定するLBUブロック有無判定
回路203と、各ブロックのステータスを判定するブロ
ックステータス判定回路204と、NDA(ディスク以
外の装置によるアクセス、Non Disk Accessの略)ブロ
ックの有無を判定するNDAブロック有無判定回路20
5と、置き換え対象となるブロックを決定しその旨の指
示を行う置き換えブロック決定回路206と、置き換え
対象を探索する開始点を示すリプレースポインタ209
と、置き換え対象となったブロックとリプレースポイン
タ209の示すブロックとが一致するか否かを検出する
比較器210と、キャッシュタグアレイ207およびキ
ャッシュデータアレイ208を制御するキャッシュ制御
回路211とを含んでいる。2, an I/O cache 100 according to an embodiment of the present invention includes a data array 208 for storing data, and a tag array 207 for storing addresses and control information corresponding to the data array 208. The I/O cache 100 also includes a data buffer 204 for holding commands, addresses and data.
01, an unused block presence/absence determination circuit 202 that determines the presence or absence of unused blocks, an LBU block presence/absence determination circuit 203 that determines the presence or absence of LBU (abbreviation of Last Byte Used) blocks, a block status determination circuit 204 that determines the status of each block, and an NDA block presence/absence determination circuit 206 that determines the presence or absence of NDA (access by a device other than a disk, abbreviation of Non Disk Access) blocks.
5, a replacement block determination circuit 206 that determines a block to be replaced and issues an instruction to that effect, and a replace pointer 209 that indicates the start point for searching for the replacement object.
a comparator 210 that detects whether the block to be replaced matches the block indicated by the replace pointer 209 ; and a cache control circuit 211 that controls the cache tag array 207 and the cache data array 208 .
【0024】本発明の一実施例の入出力キャッシュは、
キャッシュタグアレイ207にブロック毎に「無効(以
下Iとする)」、「共有(以下Sとする)」、「一致/
排他的(以下CEとする)」および「不一致/排他的
(以下DEとする)」の何れかのステータスを有するこ
とを前提とする。ステータスが「I」であればそのブロ
ックには有効データが格納されていないことを示してい
る。「S」であればそのブロックは中央処理装置101
のキャッシュと入出力キャッシュ100に共有されてい
ることを示している。「CE」であればそのブロックは
入出力キャッシュ100に専有されており、かつ、その
内容が記憶装置のものと一致していることを示してい
る。また、「DE」であればそのブロックは入出力キャ
ッシュ100に専有されており、かつ、その内容が記憶
装置のものと一致していないことを示している。これら
ステータスは既存の技術によるものであり、例えば、
「天野等著:並列処理機構,丸善,pp.186-190(198
9年8月)」に記載されている。In one embodiment of the present invention, the I/O cache comprises:
The cache tag array 207 stores the following for each block: “invalid (hereinafter referred to as I)”, “shared (hereinafter referred to as S)”, “matched/unmatched”
It is assumed that each block has one of the following statuses: "exclusive (hereinafter referred to as CE)" or "mismatched/exclusive (hereinafter referred to as DE)." If the status is "I," it indicates that no valid data is stored in that block. If the status is "S," the block is not available to the central processing unit 101.
The status indicates that the block is shared between the I/O cache and the I/O cache 100. If it is "CE", it indicates that the block is exclusively used by the I/O cache 100 and its contents match those of the storage device. If it is "DE", it indicates that the block is exclusively used by the I/O cache 100 and its contents do not match those of the storage device. These statuses are based on existing technology and can be used in a variety of ways, such as:
“Amano et al.: Parallel Processing Mechanism, Maruzen, pp.186-190 (198
The report is included in the August 2009 issue of the
【0025】本発明の一実施例の入出力キャッシュは、
キャッシュタグアレイ207においてブロック毎に、さ
らにLBUフラグ、およびNDAフラグを保持する。In one embodiment of the present invention, the I/O cache comprises:
The cache tag array 207 further holds an LBU flag and an NDA flag for each block.
【0026】LBUフラグとは、ブロック中の最後尾に
該当するバイトにリードまたはライトのアクセスを行っ
たことを示すものである。入出力装置のデータ転送は、
大容量のデータを連続したアドレスでアクセスすること
が多く、一度アクセスしたデータをまたすぐにアクセス
するというよりも、ブロックの最初から最後までを一度
アクセスしてしまえばそのブロックは不要となる場合が
多い。そこで、このLBUフラグを設け、最後のバイト
をアクセスしてしまったブロックは置き換え対象とする
こととしたものである。The LBU flag indicates that a read or write access has been made to the last byte in a block.
Large amounts of data are often accessed using consecutive addresses, and rather than immediately accessing data that has already been accessed once, it is often the case that once a block has been accessed from start to finish, that block becomes unnecessary. Therefore, this LBU flag is provided, and a block whose last byte has been accessed is made a replacement target.
【0027】NDAフラグとは、そのブロックがディス
ク装置以外の装置により使用されていることを示すもの
である。高速転送可能なディスク系のアクセスは16バ
イト転送が主流であり、回線系等による低速転送のアク
セスは2バイトが主流であるため、高速にアクセスでき
るディスク系のデータを追い出すよりもそれ以外の低速
な装置のデータを追い出す方が入出力キャッシュを効率
良く使用することができる。このNDAフラグをセット
するには、例えば16バイト未満の転送で入出力キャッ
シュにアクセスがあった場合にそのアクセス対象となっ
たブロックのNDAフラグをセットするようにする方法
が考えられる。また、ディスク装置のアクセスの際には
識別信号を入出力処理装置104に送ることにして、こ
の信号がない場合にはディスク装置以外の装置によるア
クセスであるとみなしてそのアクセス対象となったブロ
ックのNDAフラグをセットするようにしてもよい。The NDA flag indicates that the block is being used by a device other than the disk device. Since access to disk systems that can be transferred at high speeds is mainly for 16-byte transfers, and access to low-speed transfers such as line systems is mainly for 2-byte transfers, the I/O cache can be used more efficiently by flushing data from other low-speed devices rather than flushing data from disk systems that can be accessed at high speeds. To set this NDA flag, for example, when the I/O cache is accessed with a transfer of less than 16 bytes, the NDA flag of the block that is the object of the access can be set. Also, when the disk device is accessed, an identification signal can be sent to the I/O processor 104, and if this signal is not present, it can be assumed that the access is from a device other than the disk device, and the NDA flag of the block that is the object of the access can be set.
【0028】キャッシュ制御回路211は、データバッ
ファ201に保持されているコマンドおよびアドレス
と、キャッシュタグアレイ207の内容により、各ブロ
ックに対応するキャッシュタグのステータスを遷移さ
せ、また、LBUフラグやNDAフラグを設定してい
る。また、このキャッシュ制御回路211は、置き換え
ブロック決定回路206からの置き換えブロックと置き
換え指示によって、キャッシュミス時におけるキャッシ
ュタグアレイ207とキャッシュデータアレイ208の
置き換え処理を行う。The cache control circuit 211 changes the status of the cache tag corresponding to each block, and also sets the LBU flag and NDA flag, according to the command and address held in the data buffer 201 and the contents of the cache tag array 207. The cache control circuit 211 also performs replacement processing of the cache tag array 207 and the cache data array 208 at the time of a cache miss, according to the replacement block and replacement instruction from the replacement block determination circuit 206.
【0029】ブロックステータス判定回路204は、キ
ャッシュタグアレイ207のデータを参照して、各ブロ
ックのステータスが「S」または「CE」であるか、
「DE」であるかを判定して、その結果をLBUブロッ
ク有無判定回路203とNDAブロック有無判定回路2
05に送る。The block status determination circuit 204 refers to the data in the cache tag array 207 and determines whether the status of each block is "S" or "CE" or
The result is sent to the LBU block presence/absence determination circuit 203 and the NDA block presence/absence determination circuit 204.
Send to 05.
【0030】未使用ブロック有無判定回路202は、キ
ャッシュタグアレイ207の各ブロックに対応する内容
とリプレースポインタ209を参照して、ステータスが
「I」のブロックがあれば、その旨とそのブロックの番
号とを、置き換えブロック決定回路206に送る。The unused block presence/absence determination circuit 202 refers to the contents corresponding to each block in the cache tag array 207 and the replacement pointer 209, and if there is a block with a status of "I", it sends that fact and the block number to the replacement block decision circuit 206.
【0031】LBUブロック有無判定回路203は、キ
ャッシュタグアレイ207の各ブロックに対応するLB
Uフラグ、リプレースポインタ209の値およびブロッ
クステータス判定回路204からの各ブロックのステー
タス情報を参照して、LBUフラグがセットされている
ブロックがあれば、その旨、そのブロックの番号および
ステータスを、置き換えブロック決定回路206に送
る。The LBU block presence/absence determination circuit 203 detects the LB corresponding to each block in the cache tag array 207.
It refers to the U flag, the value of the replace pointer 209 and the status information of each block from the block status determination circuit 204, and if there is a block for which the LBU flag is set, it sends that fact, the number of that block and its status to the replacement block determination circuit 206.
【0032】NDAブロック有無決定回路205は、キ
ャッシュタグアレイ207の各ブロックに対応するND
Aフラグ、リプレースポインタ209の値、ブロックス
テータス判定回路204からの各ブロックのステータス
情報を参照して、NDAフラグがセットされているブロ
ックがあれば、その旨、そのブロックの番号およびステ
ータスを、置き換えブロック決定回路206に送る。ま
た、NDAフラグがセットされているブロックがなけれ
ば、その旨、そのブロックの番号およびステータスを、
置き換えブロック決定回路206に送る。The NDA block presence/absence determination circuit 205 determines the ND corresponding to each block of the cache tag array 207.
It refers to the A flag, the value of the replace pointer 209, and the status information of each block from the block status determination circuit 204, and if there is a block with the NDA flag set, it sends that fact, the number of that block, and its status to the replacement block determination circuit 206. If there is no block with the NDA flag set, it sends that fact, the number of that block, and its status to the replacement block determination circuit 206.
The result is sent to a replacement block decision circuit 206 .
【0033】置き換えブロック決定回路206は、リプ
レースポインタ209と、未使用ブロック有無判定回路
202、LBUブロック有無判定回路203、NDAブ
ロックの有無判定回路205によるキャッシュブロック
の各判定結果とを基に、置き換えブロックを決定して、
そのブロックの番号と置き換え指示とを出力する。The replacement block determination circuit 206 determines a replacement block based on the replacement pointer 209 and the results of the cache block determinations made by the unused block presence/absence determination circuit 202, the LBU block presence/absence determination circuit 203, and the NDA block presence/absence determination circuit 205,
The block number and replacement instruction are output.
【0034】比較器210は、置き換え指示が置き換え
ブロック決定回路206から出力されると、置き換えブ
ロック決定回路206の出力する置き換えブロックの番
号とリプレースポインタの値とを比較して、両者の値が
一致した場合にはリプレースポインタ209の値を1つ
増加させる。When a replacement instruction is output from replacement block determination circuit 206, comparator 210 compares the replacement block number output by replacement block determination circuit 206 with the value of the replace pointer, and if the two values match, increases the value of replace pointer 209 by one.
【0035】次に本発明の入出力キャッシュの一実施例
の動作を図面を参照して詳細に説明する。Next, the operation of one embodiment of the input/output cache of the present invention will be described in detail with reference to the drawings.
【0036】図3および図2を参照すると、リプレース
ポインタ209は初期状態が0となっており、キャッシ
ュの先頭ブロックを示している(S301)。キャッシ
ュミスが発生してキャッシュブロックの置き換えが必要
になると(S302)、まずリプレースポインタ209
の示すブロックのステータスが「I」か否かを調べ(S
303)、「I」であれば現在のリプレースポインタ2
09の示すブロックを置き換え対象として決定する(S
304)。3 and 2, the replace pointer 209 is initially set to 0, which indicates the first block of the cache (S301). When a cache miss occurs and it becomes necessary to replace a cache block (S302), the replace pointer 209 is first
Check whether the status of the block indicated by is "I" (S
303), if "I", current replace pointer 2
The block indicated by S09 is determined as the block to be replaced (S
304).
【0037】現リプレースポインタ209の示すブロッ
クのステータスが「I」でなかった場合には、他のブロ
ックに「I」がないかをリプレースポインタに近いブロ
ックから順に探し(S305)、ステータスが「I」の
ブロックがあればそのブロックを置き換え対象とする
(S306)。If the status of the block pointed to by the current replace pointer 209 is not "I", other blocks are searched for "I" starting from the blocks closest to the replace pointer (S305), and if there is a block with a status of "I", that block is made the target for replacement (S306).
【0038】上記処理において「I」のブロックが一つ
もなかった場合には、キャッシュ内に空きブロックがな
いことになるので、使用中のブロックの中から置き換え
対象を探すことになる。そこで、次に最後のバイトまで
使用したブロックがあったか否かを判断する。If there is no "I" block in the above process, this means that there are no free blocks in the cache, so a replacement target will be searched for among the blocks in use. Then, it is determined whether there is a block that has been used up to the last byte.
【0039】LBUフラグがセットされていて、ステー
タスが「S」または「CE」のブロックがないかをリプ
レースポインタに近いブロックから順に探し(S30
7)、あればそのブロックを置き換え対象とする(S3
08)。該当するブロックがなければステータスが「D
E」のブロックでLBUフラグがセットされているブロ
ックがないかリプレースポインタに近いブロックから順
に探し(S309)、あればそのブロックを置き換え対
象とする(S310)。ここで、「S」および「CE」
のブロックを先に置き換え対象としたのは、これらのス
テータスの場合には主記憶上に同じデータがあるため、
置き換えの際、主記憶に該ブロックのデータを書き戻す
必要がないためすぐに置き換え処理ができるが、「D
E」のブロックの場合は主記憶上のデータと一致しない
ため、置き換えの際にはまず主記憶にそのブロックのデ
ータを書き戻す必要が生じ、このブロックデータの主記
憶への書き込みが終了しなければ、そのブロックへのデ
ータの置き換えはできないからである。The LBU flag is set and a block with a status of "S" or "CE" is searched for, starting from the block closest to the replace pointer (S30).
7), if there is one, that block is selected as the replacement target (S3
08). If there is no corresponding block, the status will be "D
The blocks in "S" and "CE" are searched for a block with the LBU flag set, starting from the block closest to the replace pointer (S309), and if any, the block is selected as the replacement target (S310).
The reason why the block in is the first to be replaced is that the same data exists in the main memory in these statuses.
When replacing, there is no need to write the data of the block back to the main memory, so the replacement process can be completed immediately.
In the case of block "E", the data does not match the data in main memory, so when replacing it, it is first necessary to write the data of that block back to main memory, and the data in that block cannot be replaced until writing of this block data to main memory is completed.
【0040】上記処理において、最後のバイトを使用し
たブロックがなかった場合には、NDAフラグがセット
されているか否かを判断する。In the above process, if there is no block that uses the last byte, it is determined whether or not the NDA flag is set.
【0041】NDAフラグがセットされていて、かつ、
ステータスが「S」または「CE」のブロックがないか
をリプレースポインタ209に近い順に探し(S31
1)、あればそのブロックを置き換え対象とする(S3
12)。該当するブロックがなければステータスが「D
E」のブロックでNDAフラグがセットされているブロ
ックがないかリプレースポインタに近いブロックから順
に探し(S313)、あればそのブロックを置き換え対
象とする(S314)。ここで、ステータスが「DE」
のブロックが置き換え対象になると、LBUフラグがセ
ットされている時の処理(S310)と同様に、そのブ
ロックのデータを主記憶に書き込んでから置き換え処理
を行う。The NDA flag is set, and
Search for blocks with a status of "S" or "CE" in order of proximity to the replace pointer 209 (S31
1), if there is one, that block is selected as the replacement target (S3
12) If there is no corresponding block, the status will be "D
The system searches for a block with the NDA flag set among the blocks in "DE" (S313), starting from the block closest to the replace pointer, and if there is one, it selects that block as the replacement target (S314).
When a block becomes a replacement target, the data of that block is written to the main memory and then replaced, similar to the process when the LBU flag is set (S310).
【0042】上記処理において、NDAフラグがセット
されているブロックがなかった場合には、キャッシュ内
のブロックは全てディスクに関するものであることがわ
かるので、まずステータスが「S」または「CE」のブ
ロックがないかをリプレースポインタ209に近いブロ
ックから順に探し(S315)、あればそのブロックを
置き換え対象と決定する(S316)。該当するブロッ
クがなければステータスが「DE」のブロックだけにな
るので、その時はリプレースポインタ209の示すブロ
ックを置き換え対象とする(S317)。In the above process, if there is no block with the NDA flag set, it is understood that all blocks in the cache are related to the disk, so first, a search is made for blocks with a status of "S" or "CE" starting from blocks closest to the replace pointer 209 (S315), and if there is one, that block is determined to be the block to be replaced (S316). If there is no such block, only blocks with a status of "DE" remain, so in that case, the block pointed to by the replace pointer 209 is determined to be the block to be replaced (S317).
【0043】以上のような処理により、置き換え対象の
ブロックが決定し、そのブロックのステータスが「S」
または「CE」ならばそのブロックに保持されているデ
ータを主記憶に書き戻さずに置き換え処理を実行し、ス
テータスが「DE」ならば、まずそのブロックに保持さ
れているデータを主記憶に書き込んでから置き換え処理
を実行する(S318)。そして、その置き換えたブロ
ックの番号とリプレースポインタの値とを比較して(S
319)、異なる場合はリプレースポインタ109の値
はそのままの値で、一致する場合はリプレースポインタ
209の値を1つ増加させ(S320)、次のキャッシ
ュアクセス(S302)に備える。Through the above process, the block to be replaced is determined, and the status of that block is set to "S".
If the status is "CE", the data stored in the block is not written back to the main memory and the replacement process is executed, and if the status is "DE", the data stored in the block is first written to the main memory and then the replacement process is executed (S318). Then, the number of the replaced block is compared with the value of the replace pointer (S
If they are different, the value of the replace pointer 109 remains the same, but if they are the same, the value of the replace pointer 209 is incremented by one (S320) in preparation for the next cache access (S302).
【0044】このように、本発明の一実施例である入出
力キャッシュによれば、キャッシュタグアレイ207の
各ブロックにLBUフラグとNDAフラグを設けたこと
により、ブロック内の最後のバイトまでアクセスしたブ
ロックやディスク装置以外の装置によるデータを有する
ブロックを、LBUブロック有無判定回路203やND
Aブロック有無判定回路205により容易に判別でき、
性能重視の観点から置き換えるべきブロックを決定する
ことができる。In this way, according to the input/output cache of the embodiment of the present invention, by providing an LBU flag and an NDA flag for each block of the cache tag array 207, a block which has been accessed up to the last byte in the block or a block which contains data from a device other than a disk device can be detected by the LBU block presence/absence determination circuit 203 or the ND flag.
This can be easily determined by the A block presence/absence determination circuit 205.
It is possible to determine which blocks should be replaced from a performance perspective.
【0045】[0045]
【発明の効果】以上の説明で明らかなように、本発明に
よると、キャッシュメモリの状態としてLBUフラグと
NDAフラグを設けたことにより、ブロック内の最後の
バイトまでアクセスしたブロックやディスク装置以外の
装置によるデータを有するブロックを容易に判別でき、
キャッシュミス時に入出力装置の特性を活かした置き換
え対象ブロックの決定ができるため、主記憶装置と入出
力装置間のデータ転送性能を向上させることができる。As is clear from the above explanation, according to the present invention, by providing an LBU flag and an NDA flag to indicate the state of the cache memory, it is possible to easily distinguish a block which has been accessed up to the last byte in the block or a block which contains data from a device other than a disk device.
Since the block to be replaced can be determined by taking advantage of the characteristics of the I/O device when a cache miss occurs, the data transfer performance between the main memory device and the I/O device can be improved.
【図1】本発明の入出力キャッシュの外部との接続の一
例を示す図である。FIG. 1 is a diagram showing an example of an external connection of an I/O cache according to the present invention.
【図2】本発明の入出力キャッシュの一実施例の構成を
表す図である。FIG. 2 is a diagram showing the configuration of an embodiment of an input/output cache of the present invention.
【図3】本発明の一実施例の入出力キャッシュの動作を
表す図である。FIG. 3 illustrates the operation of an I/O cache in one embodiment of the present invention.
【符号の説明】 100 入出力キャッシュ 101 中央処理装置 102 主記憶装置 103 システムバス 104 入出力処理装置 105 入出力バス 106 入出力装置 107 システムバス入力バッファ 108 システムバス出力バッファ 110 入出力バス出力バッファ 111 入出力バス入力バッファ 112〜114 セレクタ 201 データバッファ 202 未使用ブロック有無判定回路 203 LBUブロック有無判定回路 204 ブロックステータス判定回路 205 NDAブロック有無判定回路 206 置き換えブロック決定回路 207 キャッシュタグアレイ 208 キャッシュデータアレイ 209 リプレースポインタ 210 比較器 211 キャッシュ制御回路[Explanation of symbols] 100 I/O cache 101 Central processing unit 102 Main memory unit 103 System bus 104 I/O processing unit 105 I/O bus 106 I/O unit 107 System bus input buffer 108 System bus output buffer 110 I/O bus output buffer 111 I/O bus input buffer 112-114 Selector 201 Data buffer 202 Unused block presence/absence determination circuit 203 LBU block presence/absence determination circuit 204 Block status determination circuit 205 NDA block presence/absence determination circuit 206 Replacement block determination circuit 207 Cache tag array 208 Cache data array 209 Replace pointer 210 Comparator 211 Cache control circuit
Claims (6)
アクセスされる入出力キャッシュにおいて、前記入出力装置からアクセスがあった場合にディスク装
置以外の入出力装置であればセットされる第1のアクセ
スフラグ を各ブロック毎に保持する第1のアクセスフラ
グ保持手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記第1のアクセスフラグ保持手段の内容に応じて
前記入出力キャッシュのブロックの中から何れのブロッ
クを置き換え対象ブロックとすべきかを判定する置き換
え対象ブロック判定手段とを含むことを特徴とする入出
力キャッシュ。Claim 1: Managed by block and controlled by input/output device
In the I/O cache to be accessed , when an access is made from the I/O device,
The first access point that is set if the device is an I/O device other than the
an access flag holding means for holding an access flag for each block; and a replacement target block determination means for determining which block of the input/output cache should be selected as a replacement target block in accordance with the contents of the first access flag holding means when reserving a new block in the input/output cache.
アクセスされる入出力キャッシュにおいて、予め定められた速度よりも低速な入出力処理装置からア
クセスがあった場合にセットされる第1のアクセスフラ
グ を各ブロック毎に保持する第1のアクセスフラグ保持
手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記第1のアクセスフラグ保持手段の内容に応じて
前記入出力キャッシュのブロックの中から何れのブロッ
クを置き換え対象ブロックとすべきかを判定する置き換
え対象ブロック判定手段とを含むことを特徴とする入出
力キャッシュ。Claim 2: Managed by block and by input/output device
In an I/O cache that is accessed by an I/O processor slower than a predetermined speed,
The first access flag is set when an access occurs.
and a replacement target block determining means for determining which block of said input/output cache should be selected as a replacement target block in accordance with the contents of said first access flag holding means when reserving a new block in said input/output cache.
アクセスされる入出力キャッシュにおいて、前記入出力装置からアクセスがあった場合にディスク装
置以外の入出力装置であればセットされる第1のアクセ
スフラグ を各ブロック毎に保持する第1のアクセスフラ
グ保持手段と、 ブロック中の最終位置のバイトにアクセスがあったこと
を示す第2のアクセスフラグを各ブロック毎に保持する
第2のアクセスフラグ保持手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記第1のアクセスフラグ保持手段および前記第2
のアクセスフラグ保持手段の内容に応じて前記入出力キ
ャッシュのブロックの中から何れのブロックを置き換え
対象ブロックとすべきかを判定する置き換え対象ブロッ
ク判定手段とを含むことを特徴とする入出力キャッシ
ュ。Claim 3: Managed by block and by input/output device
In the I/O cache to be accessed , when an access is made from the I/O device,
The first access point that is set if the device is an I/O device other than the
a first access flag holding means for holding an access flag for each block; and a second access flag for holding, for each block, a second access flag indicating that a byte at the last position in the block has been accessed.
a second access flag holding means, when reserving a new block in the I/ O cache,
and a replacement target block determining means for determining which of the blocks in said input/output cache should be set as a replacement target block in accordance with the contents of said access flag holding means.
アクセスされる入出力キャッシュにおいて、予め定められた速度よりも低速な入出力処理装置からア
クセスがあった場合にセットされる第1のアクセスフラ
グ を各ブロック毎に保持する第1のアクセスフラグ保持
手段と、 ブロック中の最終位置のバイトにアクセスがあったこと
を示す第2のアクセスフラグを各ブロック毎に保持する
第2のアクセスフラグ保持手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記第1のアクセスフラグ保持手段および前記第2
のアクセスフラグ保持手段の内容に応じて前記入出力キ
ャッシュのブロックの中から何れのブロックを置き換え
対象ブロックとすべきかを判定する置き換え対象ブロッ
ク判定手段とを含むことを特徴とする入出力キャッシ
ュ。Claim 4: Managed by block and by input/output device
In an I/O cache that is accessed by an I/O processor slower than a predetermined speed,
The first access flag is set when an access occurs.
a first access flag holding means for holding a first access flag for each block; and a second access flag for holding, for each block, a second access flag indicating that a byte at the last position in the block has been accessed.
a second access flag holding means, when reserving a new block in the I/ O cache,
and a replacement target block determining means for determining which of the blocks in said input/output cache should be set as a replacement target block in accordance with the contents of said access flag holding means.
判定する未使用ブロック有無判定部と、 前記第1のアクセスフラグ保持手段の内容に応じて前記
第1のアクセスフラグがセットされているブロックがあ
るか否かを判定する第1のアクセスブロック有無判定部
と、 前記入出力キャッシュの各ブロックのステータスを判定
するブロックステータス判定部と、 置き換えブロックを決定する際のブロック探索開始位置
を保持する探索位置保持部とを含み、 前記未使用ブロック有無判定部により前記探索位置保持
部の保持する位置から各ブロックを探索して未使用ブロ
ックがあれば該ブロックを置き換え対象ブロックとして
決定し、前記第1のアクセスブロック有無判定部により
前記探索位置保持部の保持する位置から各ブロックを探
索して前記第1のアクセスフラグがセットされているブ
ロックがあれば該ブロックを置き換え対象ブロックとし
て決定することを特徴とする請求項1に記載の入出力キ
ャッシュ。5. The replacement target block determination means comprises: an unused block presence/absence determination section for determining whether or not there is an empty block in the I/O cache; and a replacement target block determination section for determining whether or not there is an empty block in the I/O cache according to the content of the first access flag holding section.
An input/ output cache as described in claim 1, comprising: a first access block presence/absence determination unit that determines whether there is a block with a first access flag set; a block status determination unit that determines the status of each block of the input/output cache; and a search position holding unit that holds the start position of a block search when determining a replacement block, wherein the unused block presence/absence determination unit searches each block from the position held by the search position holding unit, and if an unused block is found, it determines the block as the block to be replaced, and the first access block presence/absence determination unit searches each block from the position held by the search position holding unit, and if a block with the first access flag set is found, it determines the block as the block to be replaced.
判定する未使用ブロック有無判定部と、 前記第1のアクセスフラグ保持手段の内容に応じて前記
入出力キャッシュに前記第1のアクセスフラグがセット
されているブロックがあるか否かを判定する第1のアク
セスブロック有無判定部と、 前記第2のアクセスフラグ保持手段の内容に応じて前記
入出力キャッシュに前記第2のアクセスフラグがセット
されているブロックがあるか否かを判定する第2のアク
セスブロック有無判定部と、 前記入出力キャッシュの各ブロックのステータスを判定
するブロックステータス判定部と、 置き換えブロックを決定する際のブロック探索開始位置
を保持する探索位置保持部とを含み、 前記未使用ブロック有無判定部により前記探索位置保持
部の保持する位置から各ブロックを探索して未使用ブロ
ックがあれば該ブロックを置き換え対象ブロックとして
決定し、前記第2のアクセスブロック有無判定部により
前記探索位置保持部の保持する位置から各ブロックを探
索して前記第2のアクセスフラグがセットされているブ
ロックがあれば該ブロックを置き換え対象ブロックとし
て決定し、前記第1のアクセスブロック有無判定部によ
り前記探索位置保持部の保持する位置から各ブロックを
探索して前記第2のアクセスフラグがセットされている
ブロックがあれば該ブロックを置き換え対象ブロックと
して決定することを特徴とする請求項3に記載の入出力
キャッシュ。6. The replacement target block determination means comprises: an unused block presence/absence determination section for determining whether or not there is an empty block in the I/O cache; and a first access flag setting section for setting the first access flag in the I/O cache according to the content of the first access flag holding section.
a first access block presence /absence determination unit for determining whether or not there is a block in which the second access flag is set in the I/O cache according to the content of the second access flag holding means; and a second access block presence/absence determination unit for determining whether or not there is a block in which the second access flag is set in the I/O cache according to the content of the second access flag holding means.
an unused block presence/absence determination unit for determining whether or not an unused block is present; a block status determination unit for determining the status of each block of the input/output cache; and a search position holding unit for holding a block search start position when determining a replacement block, wherein the unused block presence/absence determination unit searches each block from the position held by the search position holding unit, and if an unused block is found, determines the block as the block to be replaced ; the second access block presence/absence determination unit searches each block from the position held by the search position holding unit, and if a block with the second access flag set is found, determines the block as the block to be replaced ; and the first access block presence/absence determination unit searches each block from the position held by the search position holding unit, and if a block with the second access flag set is found, determines the block as the block to be replaced.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6201648A JP2636746B2 (en) | 1994-08-26 | 1994-08-26 | Input/Output Cache |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6201648A JP2636746B2 (en) | 1994-08-26 | 1994-08-26 | Input/Output Cache |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0863398A JPH0863398A (en) | 1996-03-08 |
| JP2636746B2 true JP2636746B2 (en) | 1997-07-30 |
Family
ID=16444575
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6201648A Expired - Lifetime JP2636746B2 (en) | 1994-08-26 | 1994-08-26 | Input/Output Cache |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2636746B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105264498B (en) * | 2013-06-07 | 2018-11-06 | 马维尔国际贸易有限公司 | System and method for cache management of a universal serial bus system |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6045855A (en) * | 1983-08-22 | 1985-03-12 | Fujitsu Ltd | Sequential access detecting method of magnetic disk device |
| JPH01292549A (en) * | 1988-05-20 | 1989-11-24 | Nec Corp | Reservation system for logical address space |
-
1994
- 1994-08-26 JP JP6201648A patent/JP2636746B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0863398A (en) | 1996-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6216199B1 (en) | Hardware mechanism for managing cache structures in a data storage system | |
| US5761536A (en) | System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis | |
| CN111858404B (en) | Method and system for address translation, and computer readable medium | |
| US6023747A (en) | Method and system for handling conflicts between cache operation requests in a data processing system | |
| US6353874B1 (en) | Method and apparatus for controlling and caching memory read operations in a processing system | |
| US5684976A (en) | Method and system for reduced address tags storage within a directory having a tree-like data structure | |
| US6343344B1 (en) | System bus directory snooping mechanism for read/castout (RCO) address transaction | |
| US20210157746A1 (en) | Key-value storage device and system including the same | |
| JP2000347935A (en) | Virtual non-compression cache for compression main memory | |
| JPH10269142A (en) | Reorganization of collisions in hash bucket of a hash table for improving system performance | |
| US6457105B1 (en) | System and method for managing data in an asynchronous I/O cache memory | |
| JP2000090009A (en) | Method and device for replacing cache line of cache memory | |
| KR100443320B1 (en) | Reclaim space reserve for a compressed memory system | |
| CN107015922B (en) | cache memory | |
| US5717888A (en) | Accessing cached data in a peripheral disk data storage system using a directory having track and cylinder directory entries | |
| US7246202B2 (en) | Cache controller, cache control method, and computer system | |
| WO2003054705A2 (en) | System and method of data replacement in cache ways | |
| JP2636746B2 (en) | Input/Output Cache | |
| JPH04336641A (en) | Data cache and method for use in processing system | |
| JP2943896B2 (en) | Computer system and disk data control method | |
| US6480940B1 (en) | Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module | |
| US5636365A (en) | Hierarchical buffer memories for selectively controlling data coherence including coherence control request means | |
| KR20190072752A (en) | Semiconductor device managing address mapping of a semiconductor memory device and data storage device including the same | |
| JP2004178571A (en) | Cache control device, cache control method, and computer system | |
| JP3335919B2 (en) | Disk cache controller |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970311 |