JPH0863398A - Input/output cache - Google Patents

Input/output cache

Info

Publication number
JPH0863398A
JPH0863398A JP6201648A JP20164894A JPH0863398A JP H0863398 A JPH0863398 A JP H0863398A JP 6201648 A JP6201648 A JP 6201648A JP 20164894 A JP20164894 A JP 20164894A JP H0863398 A JPH0863398 A JP H0863398A
Authority
JP
Japan
Prior art keywords
block
cache
input
disk device
flag
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.)
Granted
Application number
JP6201648A
Other languages
Japanese (ja)
Other versions
JP2636746B2 (en
Inventor
Masahiko Shiroichi
昌彦 城市
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP6201648A priority Critical patent/JP2636746B2/en
Publication of JPH0863398A publication Critical patent/JPH0863398A/en
Application granted granted Critical
Publication of JP2636746B2 publication Critical patent/JP2636746B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE: To provide the input/output cache with a block replacement algorithm suitable for the input/output cache. CONSTITUTION: A cache tag array 207 holds an LBU flag performing the access of read or write to the byte of the last one of a block and an NDA flag showing the block to be used by the device other than a disk for each block. A circuit 203 deciding the presence or absence of the LBU block and a circuit 205 deciding the presence or absence of the NDA block decide the presence or absence of the LBU flag and the NDA flag. By the use of the result, a block decision circuit 206 decides the replacement block.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、中央処理装置と入出力
装置との間に位置付けられる入出力処理装置における入
出力キャッシュに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an input / output cache in an input / output processing device located between a central processing unit and an input / output device.

【0002】[0002]

【従来の技術】入出力キャッシュは、主記憶装置と入出
力装置間の記憶階層レベルとして設けられた小容量で高
速なメモリであって、主記憶装置の内容の一部を記憶す
ることにより入出力装置に対して高速なアクセスを提供
する。従来のキャッシュメモリでは、キャッシュミスが
生じたときに置き換え対象となるブロックデータを選択
する方法として、例えばランダム法やLRU(Least Re
cently Usedの略)法がある。ランダム法とは、文字通
り乱数を用いることにより、次にどのブロックを置き換
え対象とするかをランダムに決定する方法である。この
ランダム法によれば、置き換え制御用のハードウェアを
簡単な構成で実現できる。また、LRU法とは、有効な
データブロックの中でも必要性の高いデータを格納して
いるブロックを主記憶に追い出してしまわないように、
キャッシュ内の各ブロックへのアクセス状況を記録し、
最も長い間アクセスされなかったブロックのデータを置
き換えの対象とする方法である。このLRU法によれ
ば、使用頻度の高いブロックがキャッシュに留まるため
効率の良いデータ転送ができる。
2. Description of the Related Art An input / output cache is a small-capacity, high-speed memory provided as a storage hierarchy level between a main storage device and an input / output device. Provides fast access to output devices. In the conventional cache memory, as a method of selecting the block data to be replaced when a cache miss occurs, for example, a random method or an LRU (Least Restore) method is selected.
cently Used) method. The random method is a method of randomly determining which block is to be replaced next by using a random number literally. According to this random method, the hardware for replacement control can be realized with a simple configuration. In addition, the LRU method is used to prevent a block storing high-necessity data among valid data blocks from being flushed to main memory.
Records the access status to each block in the cache,
This is a method of replacing the data of the block that has not been accessed for the longest time. According to this LRU method, since frequently used blocks remain in the cache, efficient data transfer can be performed.

【0003】これら従来のブロック置き換え方法につい
ては、例えば、「長島,堀越著:キャッシュ記憶,情報
処理,Vol.21,No.4,pp.332-340(1980年4月)」
を参照できる。
Regarding these conventional block replacement methods, for example, "Nagashima, 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 the data block is highly necessary,
There was a risk that it would be replaced without being considered and would be swept out to the main memory.

【0005】また、LRU法を用いても、入出力キャッ
シュでは同一のアドレスのデータを頻繁に書き換えるよ
うな動作は稀であることからブロック間の使用頻度の差
がつき難いため、データ転送性能の向上はあまり期待で
きないという問題があった。
Even if the LRU method is used, since the operation of frequently rewriting data at the same address is rare in the input / output cache, a difference in the frequency of use between blocks is hard to be obtained. There was a problem that improvement could not be expected so much.

【0006】すなわち、入出力装置のデータ転送は、大
容量のデータを連続したアドレスでアクセスすることが
多く、一度アクセスしたデータをまたすぐにアクセスす
るというよりも、ブロックの最初から最後までを一度ア
クセスしてしまえばそのブロックは不要となる場合が多
い。また、入出力装置の中でも、ディスク装置のように
比較的高速な装置もあれば、回線系のように低速な装置
もある。従って、入出力キャッシュにおける置き換え対
象ブロックの決定に当たっては、これら入出力装置特有
の事情を考慮する必要がある。
That is, in the data transfer of the input / output device, a large amount of data is often accessed at consecutive addresses. Rather than immediately accessing the data that has been accessed once, the data is transferred from the beginning to the end of the block once. Once accessed, the block is often unnecessary. Also, among input / output devices, there are relatively high-speed devices such as disk devices, and low-speed devices such as line systems. Therefore, in determining the replacement target block in the input / output cache, it is necessary to consider the circumstances peculiar to these input / output devices.

【0007】本発明の目的は、上述の問題を解決し、入
出力キャッシュに適したブロック置き換えアルゴリズム
を有する入出力キャッシュを提供することにある。
An object of the present invention is to solve the above-mentioned problem and to provide an input / output cache having a block replacement algorithm suitable for the input / output cache.

【0008】また、本発明の他の目的は、ブロック内の
最後のバイトまでアクセスしたブロックやディスク装置
以外の装置によるデータを有するブロックを判別して、
キャッシュミス時に入出力装置の特性を活かした置き換
え対象ブロックを決定することにある。
Another object of the present invention is to determine a block that has accessed up to the last byte in a block or a block having data from a device other than a disk device,
An object of the present invention is to determine a replacement target block utilizing a characteristic of an input / output device at the time of a cache miss.

【0009】さらに、本発明の他の目的は、主記憶装置
と入出力装置間のデータ転送性能を向上させることにあ
る。
Still another object of the present invention is to improve the data transfer performance between the main storage device and the input / output device.

【0010】[0010]

【課題を解決するための手段】上記課題を解決するため
に本発明の入出力キャッシュは、ブロック毎に管理され
る入出力キャッシュであって、ブロック中の最終位置の
バイトにアクセスがあったことを示す最終バイトアクセ
スフラグを各ブロック毎に保持する最終バイトフラグ保
持手段と、前記入出力キャッシュ内に新たにブロックを
確保する際、前記最終バイトフラグ保持手段の内容に応
じて前記入出力キャッシュのブロックの中から何れのブ
ロックを置き換え対象ブロックとすべきかを判定する置
き換え対象ブロック判定手段とを含む。
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 the last byte in the block is accessed. And a final byte flag holding means for holding a final byte access flag indicating each block, and a new block in the input / output cache when a new block is secured in the input / output cache. A replacement target block determination unit that determines which of the blocks should be the replacement target block is included.

【0011】また、本発明の他の入出力キャッシュは、
ブロック毎に管理される入出力キャッシュであって、デ
ィスク装置以外の入出力装置によるアクセスに係るブロ
ックであることを示す非ディスク装置アクセスフラグを
各ブロック毎に保持する非ディスク装置アクセスフラグ
保持手段と、前記入出力キャッシュ内に新たにブロック
を確保する際、前記非ディスク装置アクセスフラグ保持
手段の内容に応じて前記入出力キャッシュのブロックの
中から何れのブロックを置き換え対象ブロックとすべき
かを判定する置き換え対象ブロック判定手段とを含む。
Further, another input / output cache according to the present invention includes:
Non-disk device access flag holding means for holding, for each block, a non-disk device access flag indicating an I / O cache managed for each block and indicating a block related to access by an I / O device other than the disk device When allocating a new block in the I / O cache, it is determined which block from the blocks in the I / O cache is to be replaced according to the content of the non-disk device access flag holding unit. Replacement target block determination means is included.

【0012】また、本発明の他の入出力キャッシュは、
ブロック毎に管理される入出力キャッシュであって、ブ
ロック中の最終位置のバイトにアクセスがあったことを
示す最終バイトアクセスフラグを各ブロック毎に保持す
る最終バイトフラグ保持手段と、ディスク装置以外の入
出力装置によるアクセスに係るブロックであることを示
す非ディスク装置アクセスフラグを各ブロック毎に保持
する非ディスク装置アクセスフラグ保持手段と、前記入
出力キャッシュ内に新たにブロックを確保する際、前記
最終バイトフラグ保持手段および前記非ディスク装置ア
クセスフラグ保持手段の内容に応じて前記入出力キャッ
シュのブロックの中から何れのブロックを置き換え対象
ブロックとすべきかを判定する置き換え対象ブロック判
定手段とを含む。
Another I / O cache of the present invention is
An I / O cache managed for each block, a final byte flag holding means for holding a final byte access flag for each block indicating that the byte at the final position in the block has been accessed, and a device other than the disk device. A non-disk device access flag holding unit that holds a non-disk device access flag indicating a block related to access by an I / O device for each block, and a final block when a new block is secured in the I / O cache And a replacement target block determining unit that determines which of the blocks of the input / output cache should be the replacement target block according to the contents of the byte flag holding unit and the non-disk device access flag holding unit.

【0013】また、本発明の他の入出力キャッシュは、
前記置き換え対象ブロック判定手段において、前記入出
力キャッシュに空きのブロックがあるか否かを判定する
未使用ブロック有無判定部と、前記最終バイトフラグ保
持手段の内容に応じて前記入出力キャッシュに最終バイ
トフラグがセットされているブロックがあるか否かを判
定する最終バイト使用ブロック有無判定部と、前記入出
力キャッシュの各ブロックのステータスを判定するブロ
ックステータス判定部と、置き換えブロックを決定する
際のブロック探索開始位置を保持する探索位置保持部と
を含み、前記未使用ブロック有無判定部により前記探索
位置保持部の保持する位置から各ブロックを探索して未
使用ブロックがあれば前記ブロックを置き換え対象ブロ
ックとして決定し、前記最終バイト使用ブロック有無判
定部により前記探索位置保持部の保持する位置から各ブ
ロックを探索して最終バイト使用ブロックがあれば前記
ブロックを置き換え対象ブロックとして決定する。
Another input / output cache of the present invention is
In the replacement target block determining unit, an unused block presence / absence determining unit that determines whether or not there is a free block in the I / O cache, and a last byte in the I / O cache according to the contents of the last byte flag holding unit. Final byte used block presence / absence determining unit for determining whether or not there is a block in which a flag is set, a block status determining unit for determining the status of each block of the input / output cache, and a block for determining a replacement block And a search position holding unit that holds a search start position, the unused block presence / absence determining unit searches each block from the position held by the search position holding unit, and if there is an unused block, replaces the block And the final byte use block presence / absence determining unit determines Searches the blocks from the position held in the position holding section determines as the target block replaces the block if the last byte used block.

【0014】また、本発明の他の入出力キャッシュは、
前記置き換え対象ブロック判定手段において、前記入出
力キャッシュに空きのブロックがあるか否かを判定する
未使用ブロック有無判定部と、前記非ディスク装置アク
セスフラグ保持手段の内容に応じて前記入出力キャッシ
ュに非ディスク装置によるアクセスに係るブロックがあ
るか否かを判定する非ディスク装置アクセスブロック有
無判定部と、前記入出力キャッシュの各ブロックのステ
ータスを判定するブロックステータス判定部と、置き換
えブロックを決定する際のブロック探索開始位置を保持
する探索位置保持部とを含み、前記未使用ブロック有無
判定部により前記探索位置保持部の保持する位置から各
ブロックを探索して未使用ブロックがあれば前記ブロッ
クを置き換え対象ブロックとして決定し、前記非ディス
ク装置アクセスブロック有無判定部により前記探索位置
保持部の保持する位置から各ブロックを探索して非ディ
スク装置アクセスブロックがあれば前記ブロックを置き
換え対象ブロックとして決定する。
Further, another input / output cache according to the present invention includes:
In the replacement target block determination means, an unused block presence / absence determination portion that determines whether or not there is a free block in the input / output cache, and the input / output cache in accordance with the contents of the non-disk device access flag holding means When determining a replacement block, a non-disk device access block presence / absence determination unit that determines whether there is a block related to access by a non-disk device, a block status determination unit that determines the status of each block of the I / O cache And a search position holding unit that holds the block search start position, and the unused block presence / absence determination unit searches each block from the position held by the search position holding unit and replaces the block if there is an unused block. It is determined as the target block, and the non-disk device access block Click determining unit by exploring each block from the position held by the search position holding portion is non-disk device access block is determined as the target block replaces the block, if any.

【0015】また、本発明の他の入出力キャッシュは、
前記置き換え対象ブロック判定手段において、前記入出
力キャッシュに空きのブロックがあるか否かを判定する
未使用ブロック有無判定部と、前記最終バイトフラグ保
持手段の内容に応じて前記入出力キャッシュに最終バイ
トフラグがセットされているブロックがあるか否かを判
定する最終バイト使用ブロック有無判定部と、前記非デ
ィスク装置アクセスフラグ保持手段の内容に応じて前記
入出力キャッシュに非ディスク装置によるアクセスに係
るブロックがあるか否かを判定する非ディスク装置アク
セスブロック有無判定部と、前記入出力キャッシュの各
ブロックのステータスを判定するブロックステータス判
定部と、置き換えブロックを決定する際のブロック探索
開始位置を保持する探索位置保持部とを含み、前記未使
用ブロック有無判定部により前記探索位置保持部の保持
する位置から各ブロックを探索して未使用ブロックがあ
れば前記ブロックを置き換え対象ブロックとして決定
し、前記最終バイト使用ブロック有無判定部により前記
探索位置保持部の保持する位置から各ブロックを探索し
て最終バイト使用ブロックがあれば前記ブロックを置き
換え対象ブロックとして決定し、前記非ディスク装置ア
クセスブロック有無判定部により前記探索位置保持部の
保持する位置から各ブロックを探索して非ディスク装置
アクセスブロックがあれば前記ブロックを置き換え対象
ブロックとして決定する。
Further, another input / output cache according to the present invention includes:
In the replacement target block determining unit, an unused block presence / absence determining unit that determines whether or not there is a free block in the I / O cache, and a last byte in the I / O cache according to the contents of the last byte flag holding unit. A final byte used block presence / absence determining unit that determines whether there is a block in which a flag is set, and a block related to access by the non-disk device in the I / O cache according to the content of the non-disk device access flag holding unit. A non-disk device access block presence / absence determining unit for determining whether or not there is a block status determining unit for determining the status of each block of the input / output cache, and a block search start position for determining a replacement block are held. Including the search position holding unit, the unused block presence / absence judgment Unit searches each block from the position held by the search position holding unit, and if there is an unused block, the block is determined as a replacement target block, and the last byte used block presence / absence determination unit holds the search position holding unit. Each block is searched from the position to be searched, and if there is a last byte used block, the block is determined as a replacement target block, and the non-disk device access block presence / absence determination unit searches each block from the position held by the search position holding unit. If there is a non-disk device access block, the block is determined as a replacement target block.

【0016】また、本発明の他の入出力キャッシュは、
データを格納するデータアレイと、このデータアレイに
対応するアドレスおよび制御情報を格納するタグアレイ
とを有し、前記制御情報は、前記最終バイトフラグ保持
手段と前記非ディスク装置アクセスフラグ保持手段とを
含む。
Further, another input / output cache according to the present invention includes:
It has a data array for storing data and a tag array for storing addresses and control information corresponding to the data array, and the control information includes the final byte flag holding means and the non-disk device access flag holding means. .

【0017】また、本発明の他の入出力キャッシュは、
一定以上のバイト数でキャッシュのブロックにアクセス
を行った場合にそのアクセスのあったブロックに対応し
た前記非ディスク装置アクセスフラグをセットする。
Further, another input / output cache according to the present invention includes:
When a block of the cache is accessed with a certain number of bytes or more, the non-disk device access flag corresponding to the accessed block is set.

【0018】また、本発明の他の入出力キャッシュは、
キャッシュアクセスの際にディスク装置識別信号を伴わ
ない場合にそのアクセスのあったブロックに対応した前
記非ディスク装置アクセスフラグをセットする。
Further, another input / output cache according to the present invention includes:
When the cache device is not accompanied by the disk device identification signal at the time of cache access, the non-disk device access flag corresponding to the accessed block is set.

【0019】[0019]

【実施例】次に本発明の入出力キャッシュの一実施例に
ついて図面を参照して詳細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the input / output cache of the present invention will be described in detail with reference to the drawings.

【0020】図1を参照すると、本発明の一実施例であ
る入出力キャッシュ100は、中央処理装置101や主
記憶装置102が接続するシステムバス103と入出力
装置群106−1〜nが接続する入出力バス105との
間に位置する入出力処理装置104の中に含まれてい
る。
Referring to FIG. 1, an input / output cache 100 according to an embodiment of the present invention includes a system bus 103 to which a central processing unit 101 and a main storage device 102 are connected, and input / output device groups 106-1 to 106-n. In the input / output processing unit 104 located between the input / output bus 105 and the input / output bus 105.

【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 CPU 101 issues a transfer command from the main storage device 102 to the I / O device 106, the I / O device 106
I / O cache 1 via 11 and selector 112
Access 00. If the desired data exists in the I / O cache 100, the data is transferred to the destination I / O device 106 via the selector 114 and the I / O bus output buffer 110. If the desired data does not exist in the input / output cache 100, the request is notified to the main storage device 102 via the selector 113 and the system bus output buffer 108. The block including the requested data is read from the main storage device 102 and then stored in the input / output cache 100 via the system bus input buffer 107 and the selector 112. The requested data is sent to the destination input / output device 106 via the selector 114 and the input / output bus output buffer 110.
Also transferred to. By storing the block in the input / output cache, it becomes unnecessary to access the main storage device 102 for the data in the block thereafter.

【0022】なお、図1では入出力処理装置104の
内、入出力キャッシュに関係する部分のみを示してい
る。
FIG. 1 shows only a part of the input / output processing device 104 related to the input / output 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とを含んでいる。
Referring to FIG. 2, the input / output cache 100 according to the 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. Contains. The input / output cache 100 is provided with a data buffer 2 for holding commands, addresses and data.
01, an unused block presence / absence determination circuit 202 for determining the presence / absence of an unused block, an LBU block presence / absence determination circuit 203 for determining the presence / absence of an LBU (Last Byte Used) block, and a block for determining the status of each block A status determination circuit 204 and an NDA block presence / absence determination circuit 20 for determining the presence / absence of an NDA (access by a device other than a disk, abbreviation for Non Disk Access)
5, a replacement block determination circuit 206 that determines a block to be replaced and issues an instruction to that effect, and a replacement pointer 209 that indicates a starting point for searching for a replacement target.
And a comparator 210 for detecting whether the block to be replaced matches the block indicated by the replacement pointer 209, and a cache control circuit 211 for controlling the cache tag array 207 and the cache data array 208. I have.

【0024】本発明の一実施例の入出力キャッシュは、
キャッシュタグアレイ207にブロック毎に「無効(以
下Iとする)」、「共有(以下Sとする)」、「一致/
排他的(以下CEとする)」および「不一致/排他的
(以下DEとする)」の何れかのステータスを有するこ
とを前提とする。ステータスが「I」であればそのブロ
ックには有効データが格納されていないことを示してい
る。「S」であればそのブロックは中央処理装置101
のキャッシュと入出力キャッシュ100に共有されてい
ることを示している。「CE」であればそのブロックは
入出力キャッシュ100に専有されており、かつ、その
内容が記憶装置のものと一致していることを示してい
る。また、「DE」であればそのブロックは入出力キャ
ッシュ100に専有されており、かつ、その内容が記憶
装置のものと一致していないことを示している。これら
ステータスは既存の技術によるものであり、例えば、
「天野等著:並列処理機構,丸善,pp.186-190(198
9年8月)」に記載されている。
An input / output cache according to an embodiment of the present invention includes:
In the cache tag array 207, "invalid (hereinafter referred to as I)", "shared (hereinafter referred to as S)", "match /
It is assumed that the status has one of the statuses “exclusive (hereinafter, referred to as CE)” and “mismatch / exclusive (hereinafter, referred to as DE)”. If the status is "I", it indicates that no valid data is stored in that block. If "S", the block is the central processing unit 101.
It is shown that it is shared by the cache and the input / output cache 100. "CE" indicates that the block is exclusively used by the input / output cache 100 and its content matches that of the storage device. In addition, if it is “DE”, it indicates that the block is exclusively used by the input / output cache 100 and that its contents do not match those of the storage device. These statuses are due to existing technology, for example:
"Amano et al .: Parallel processing mechanism, Maruzen, pp.186-190 (198
Aug. '09) ".

【0025】本発明の一実施例の入出力キャッシュは、
キャッシュタグアレイ207においてブロック毎に、さ
らにLBUフラグ、およびNDAフラグを保持する。
The input / output cache of one embodiment of the present invention is
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 the last byte in the block has been accessed for reading or writing. I / O device data transfer
Often, a large amount of data is accessed at a continuous address, and rather than accessing the data once accessed again, once the block is accessed from the beginning to the end, the block may become unnecessary. Many. Therefore, this LBU flag is provided, and the block that has accessed the last byte is to be replaced.

【0027】NDAフラグとは、そのブロックがディス
ク装置以外の装置により使用されていることを示すもの
である。高速転送可能なディスク系のアクセスは16バ
イト転送が主流であり、回線系等による低速転送のアク
セスは2バイトが主流であるため、高速にアクセスでき
るディスク系のデータを追い出すよりもそれ以外の低速
な装置のデータを追い出す方が入出力キャッシュを効率
良く使用することができる。このNDAフラグをセット
するには、例えば16バイト未満の転送で入出力キャッ
シュにアクセスがあった場合にそのアクセス対象となっ
たブロックのNDAフラグをセットするようにする方法
が考えられる。また、ディスク装置のアクセスの際には
識別信号を入出力処理装置104に送ることにして、こ
の信号がない場合にはディスク装置以外の装置によるア
クセスであるとみなしてそのアクセス対象となったブロ
ックのNDAフラグをセットするようにしてもよい。
The NDA flag indicates that the block is used by a device other than the disk device. 16-byte transfer is the mainstream for high-speed transferable disk access, and 2 bytes is the mainstream for low-speed transfer access via the line system, etc. Ejecting data from a different device allows the I / O cache to be used more efficiently. In order to set the NDA flag, for example, a method of setting the NDA flag of the block which is the access target when the input / output cache is accessed by the transfer of less than 16 bytes can be considered. Further, when the disk device is accessed, an identification signal is sent to the input / output processing device 104. If this signal is not present, it is regarded as an access by a device other than the disk device, and the block that is the access target. You may make it set the NDA flag of.

【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 according to the command and address held in the data buffer 201 and the contents of the cache tag array 207, and also changes the LBU flag and the NDA flag. Is set. Further, the cache control circuit 211 performs a process of replacing the cache tag array 207 and the cache data array 208 at the time of a cache miss in accordance with the replacement block and the 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 of the cache tag array 207 to determine whether the status of each block is "S" or "CE".
It is determined whether it is “DE” and the result is determined by the LBU block presence / absence determination circuit 203 and the NDA block presence / absence determination circuit 2
Send to 05.

【0030】未使用ブロック有無判定回路202は、キ
ャッシュタグアレイ207の各ブロックに対応する内容
とリプレースポインタ209を参照して、ステータスが
「I」のブロックがあれば、その旨とそのブロックの番
号とを、置き換えブロック決定回路206に送る。
The unused block presence / absence determination circuit 202 refers to the content corresponding to each block of the cache tag array 207 and the replacement pointer 209, and if there is a block whose status is "I", that fact and the number of the block To the replacement block determination circuit 206.

【0031】LBUブロック有無判定回路203は、キ
ャッシュタグアレイ207の各ブロックに対応するLB
Uフラグ、リプレースポインタ209の値およびブロッ
クステータス判定回路204からの各ブロックのステー
タス情報を参照して、LBUフラグがセットされている
ブロックがあれば、その旨、そのブロックの番号および
ステータスを、置き換えブロック決定回路206に送
る。
The LBU block presence / absence determination circuit 203 is provided for the LB corresponding to each block of the cache tag array 207.
By referring to the U flag, the value of the replacement pointer 209, and the status information of each block from the block status determination circuit 204, if there is a block in which the LBU flag is set, that fact is replaced by the block number and status. This is sent to the 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.
By referring 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, if there is a block in which the NDA flag is set, that effect is replaced with the block number and status. It is sent to the block decision circuit 206. If there is no block in which the NDA flag is set, to that effect, the block number and status are
It is sent to the replacement block determination circuit 206.

【0033】置き換えブロック決定回路206は、リプ
レースポインタ209と、未使用ブロック有無判定回路
202、LBUブロック有無判定回路203、NDAブ
ロックの有無判定回路205によるキャッシュブロック
の各判定結果とを基に、置き換えブロックを決定して、
そのブロックの番号と置き換え指示とを出力する。
The replacement block determination circuit 206 performs replacement based on the replacement pointer 209 and each determination result of the cache block by the unused block presence determination circuit 202, the LBU block presence determination circuit 203, and the NDA block presence determination circuit 205. Determine the block,
The block number and the replacement instruction are output.

【0034】比較器210は、置き換え指示が置き換え
ブロック決定回路206から出力されると、置き換えブ
ロック決定回路206の出力する置き換えブロックの番
号とリプレースポインタの値とを比較して、両者の値が
一致した場合にはリプレースポインタ209の値を1つ
増加させる。
When the replacement instruction is output from the replacement block determination circuit 206, the comparator 210 compares the number of the replacement block output from the replacement block determination circuit 206 with the value of the replacement pointer, and the two values match. In this case, the value of the replacement pointer 209 is increased 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)。
Referring to FIG. 3 and FIG. 2, the initial state of the replacement pointer 209 is 0, indicating the head block of the cache (S301). When a cache block needs to be replaced due to a cache miss (S302), first, the replacement pointer 209 is replaced.
It is checked whether the status of the block indicated by “I” is “I” (S
303), if "I", the current replace pointer 2
The block indicated by 09 is determined as the replacement target (S
304).

【0037】現リプレースポインタ209の示すブロッ
クのステータスが「I」でなかった場合には、他のブロ
ックに「I」がないかをリプレースポインタに近いブロ
ックから順に探し(S305)、ステータスが「I」の
ブロックがあればそのブロックを置き換え対象とする
(S306)。
If the status of the block indicated by the current replacement pointer 209 is not "I", the other blocks are searched for "I" in order from the block closest to the replacement pointer (S305). If there is a block "", the block is set as a replacement target (S306).

【0038】上記処理において「I」のブロックが一つ
もなかった場合には、キャッシュ内に空きブロックがな
いことになるので、使用中のブロックの中から置き換え
対象を探すことになる。そこで、次に最後のバイトまで
使用したブロックがあったか否かを判断する。
If there is no block of "I" in the above processing, there is no free block in the cache, and therefore the replacement target is searched from among the blocks in use. Therefore, 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 in order from the block closest to the replace pointer (S30).
7) If present, the block is replaced (S3)
08). If there is no corresponding block, the status is "D.
In the block of “E”, the LBU flag is set, and the block closest to the replacement pointer is searched in order (S309). If there is a block, the block is set as a replacement target (S310). Where "S" and "CE"
The block was replaced first because, in these statuses, the same data exists in main memory,
At the time of replacement, there is no need to write back the data of the block to the main memory, so the replacement process can be performed immediately.
In the case of the block "E", since it does not match the data in the main memory, it is necessary to write back the data in the block to the main memory at the time of replacement, and the writing of this block data to the main memory must be completed. This is because the data cannot be replaced in that block.

【0040】上記処理において、最後のバイトを使用し
たブロックがなかった場合には、NDAフラグがセット
されているか否かを判断する。
In the above process, if there is no block using 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
A search is made for a block whose status is "S" or "CE" in the order of proximity to the replacement pointer 209 (S31).
1) If there is, the block is to be replaced (S3)
12). If there is no corresponding block, the status is "D.
If there is a block of which the NDA flag is set in the block of "E", the blocks closer to the replace pointer are searched in order (S313), and if there is, the block is to be replaced (S314). Here, the status is "DE"
Is replaced, the data of the block is written to the main memory and the replacement process is performed in the same manner as 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 in which the NDA flag is set, it is known that all the blocks in the cache are related to the disk. Therefore, the block whose status is "S" or "CE" is first. Is searched in order from the block closer to the replace pointer 209 (S315), and if there is, the block is determined as a replacement target (S316). If there is no corresponding block, only the block whose status is "DE" is set, and at that time, the block indicated by the replacement pointer 209 is set as a replacement target (S317).

【0043】以上のような処理により、置き換え対象の
ブロックが決定し、そのブロックのステータスが「S」
または「CE」ならばそのブロックに保持されているデ
ータを主記憶に書き戻さずに置き換え処理を実行し、ス
テータスが「DE」ならば、まずそのブロックに保持さ
れているデータを主記憶に書き込んでから置き換え処理
を実行する(S318)。そして、その置き換えたブロ
ックの番号とリプレースポインタの値とを比較して(S
319)、異なる場合はリプレースポインタ109の値
はそのままの値で、一致する場合はリプレースポインタ
209の値を1つ増加させ(S320)、次のキャッシ
ュアクセス(S302)に備える。
By the above processing, the block to be replaced is determined, and the status of the block is "S".
Alternatively, if it is "CE", the replacement process is executed without writing back the data held in the block to the main memory, and if the status is "DE", the data held in the block is first written to the main memory. After that, the replacement process is executed (S318). Then, the number of the replaced block is compared with the value of the replace pointer (S
319), if different, the value of the replace pointer 109 is the same value, and if they match, the value of the replace pointer 209 is incremented by 1 (S320) to prepare for the next cache access (S302).

【0044】このように、本発明の一実施例である入出
力キャッシュによれば、キャッシュタグアレイ207の
各ブロックにLBUフラグとNDAフラグを設けたこと
により、ブロック内の最後のバイトまでアクセスしたブ
ロックやディスク装置以外の装置によるデータを有する
ブロックを、LBUブロック有無判定回路203やND
Aブロック有無判定回路205により容易に判別でき、
性能重視の観点から置き換えるべきブロックを決定する
ことができる。
As described above, according to the input / output cache according to one embodiment of the present invention, the last byte in the block is accessed by providing the LBU flag and the NDA flag in each block of the cache tag array 207. A block having data by a device other than the block and the disk device is transferred to the LBU block presence / absence determination circuit 203 or ND.
It can be easily determined by the A block presence / absence determination circuit 205,
Blocks to be replaced can be determined from the viewpoint of performance emphasis.

【0045】[0045]

【発明の効果】以上の説明で明らかなように、本発明に
よると、キャッシュメモリの状態としてLBUフラグと
NDAフラグを設けたことにより、ブロック内の最後の
バイトまでアクセスしたブロックやディスク装置以外の
装置によるデータを有するブロックを容易に判別でき、
キャッシュミス時に入出力装置の特性を活かした置き換
え対象ブロックの決定ができるため、主記憶装置と入出
力装置間のデータ転送性能を向上させることができる。
As is apparent from the above description, according to the present invention, the provision of the LBU flag and the NDA flag as the state of the cache memory allows the block other than the block or disk device which has accessed the last byte in the block. Blocks having data by the device can be easily identified,
Since the block to be replaced can be determined by utilizing the characteristics of the input / output device at the time of a cache miss, the data transfer performance between the main storage device and the input / output device can be improved.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の入出力キャッシュの外部との接続の一
例を示す図である。
FIG. 1 is a diagram showing an example of an external connection of an input / output cache of the present invention.

【図2】本発明の入出力キャッシュの一実施例の構成を
表す図である。
FIG. 2 is a diagram illustrating a configuration of an embodiment of an input / output cache according to the present invention.

【図3】本発明の一実施例の入出力キャッシュの動作を
表す図である。
FIG. 3 is a diagram illustrating an operation of an input / output cache according to an embodiment of the present invention.

【符号の説明】[Explanation of symbols]

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 キャッシュ制御回路 100 I / O cache 101 Central processing unit 102 Main storage device 103 System bus 104 I / O processing device 105 I / O bus 106 I / O device 107 System bus input buffer 108 System bus output buffer 110 I / O bus output buffer 111 I / O bus input buffer 112 to 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)

【特許請求の範囲】[Claims] 【請求項1】 ブロック毎に管理される入出力キャッシ
ュにおいて、 ブロック中の最終位置のバイトにアクセスがあったこと
を示す最終バイトアクセスフラグを各ブロック毎に保持
する最終バイトフラグ保持手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記最終バイトフラグ保持手段の内容に応じて前記
入出力キャッシュのブロックの中から何れのブロックを
置き換え対象ブロックとすべきかを判定する置き換え対
象ブロック判定手段とを含むことを特徴とする入出力キ
ャッシュ。
1. A final byte flag holding unit for holding a final byte access flag for each block, which indicates that the byte at the final position in the block has been accessed, in an input / output cache managed for each block, and When allocating a new block in the write-out output cache, it is determined which block is to be the replacement target block from the blocks of the input / output cache according to the content of the last byte flag holding means. And an input / output cache comprising means.
【請求項2】 ブロック毎に管理される入出力キャッシ
ュにおいて、 ディスク装置以外の入出力装置によるアクセスに係るブ
ロックであることを示す非ディスク装置アクセスフラグ
を各ブロック毎に保持する非ディスク装置アクセスフラ
グ保持手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記非ディスク装置アクセスフラグ保持手段の内容
に応じて前記入出力キャッシュのブロックの中から何れ
のブロックを置き換え対象ブロックとすべきかを判定す
る置き換え対象ブロック判定手段とを含むことを特徴と
する入出力キャッシュ。
2. A non-disk device access flag that holds, for each block, a non-disk device access flag that indicates a block related to access by an I / O device other than a disk device in an I / O cache managed for each block. When a block is newly secured in the holding unit and the I / O cache, which block among the blocks of the I / O cache should be the replacement target block according to the content of the non-disk device access flag holding unit An input / output cache including replacement target block determining means for determining.
【請求項3】 ブロック毎に管理される入出力キャッシ
ュにおいて、 ブロック中の最終位置のバイトにアクセスがあったこと
を示す最終バイトアクセスフラグを各ブロック毎に保持
する最終バイトフラグ保持手段と、 ディスク装置以外の入出力装置によるアクセスに係るブ
ロックであることを示す非ディスク装置アクセスフラグ
を各ブロック毎に保持する非ディスク装置アクセスフラ
グ保持手段と、 前記入出力キャッシュ内に新たにブロックを確保する
際、前記最終バイトフラグ保持手段および前記非ディス
ク装置アクセスフラグ保持手段の内容に応じて前記入出
力キャッシュのブロックの中から何れのブロックを置き
換え対象ブロックとすべきかを判定する置き換え対象ブ
ロック判定手段とを含むことを特徴とする入出力キャッ
シュ。
3. An I / O cache managed on a block-by-block basis, and a final byte flag holding means for holding a final byte access flag for each block indicating that the byte at the final position in the block has been accessed, and a disk. A non-disk device access flag holding unit that holds a non-disk device access flag indicating each block for access by an I / O device other than the device, and a new block in the I / O cache A replacement target block determining means for determining which block among the blocks of the input / output cache should be the replacement target block according to the contents of the final byte flag holding means and the non-disk device access flag holding means. Input / output cache characterized by including.
【請求項4】 前記置き換え対象ブロック判定手段は、 前記入出力キャッシュに空きのブロックがあるか否かを
判定する未使用ブロック有無判定部と、 前記最終バイトフラグ保持手段の内容に応じて前記入出
力キャッシュに最終バイトフラグがセットされているブ
ロックがあるか否かを判定する最終バイト使用ブロック
有無判定部と、 前記入出力キャッシュの各ブロックのステータスを判定
するブロックステータス判定部と、 置き換えブロックを決定する際のブロック探索開始位置
を保持する探索位置保持部とを含み、 前記未使用ブロック有無判定部により前記探索位置保持
部の保持する位置から各ブロックを探索して未使用ブロ
ックがあれば前記ブロックを置き換え対象ブロックとし
て決定し、前記最終バイト使用ブロック有無判定部によ
り前記探索位置保持部の保持する位置から各ブロックを
探索して最終バイト使用ブロックがあれば前記ブロック
を置き換え対象ブロックとして決定することを特徴とす
る請求項1に記載の入出力キャッシュ。
4. The replacement target block determination means is an unused block presence / absence determination portion that determines whether or not there is a free block in the input / output cache, and the input block is determined according to the contents of the last byte flag holding means. A final byte used block presence / absence determination unit that determines whether or not there is a block in which the final byte flag is set in the output cache, a block status determination unit that determines the status of each block of the input / output cache, and a replacement block Including a search position holding unit for holding the block search start position when determining, the unused block presence determination unit searches each block from the position held by the search position holding unit and if there is an unused block, The block is determined as the block to be replaced, and the final byte use block presence / absence determining unit is determined. Ri O cache according to claim 1, wherein the determining as the search if the position held by the position holding section last byte used block by searching each block replaces the block target block.
【請求項5】 前記置き換え対象ブロック判定手段は、 前記入出力キャッシュに空きのブロックがあるか否かを
判定する未使用ブロック有無判定部と、 前記非ディスク装置アクセスフラグ保持手段の内容に応
じて前記入出力キャッシュに非ディスク装置によるアク
セスに係るブロックがあるか否かを判定する非ディスク
装置アクセスブロック有無判定部と、 前記入出力キャッシュの各ブロックのステータスを判定
するブロックステータス判定部と、 置き換えブロックを決定する際のブロック探索開始位置
を保持する探索位置保持部とを含み、 前記未使用ブロック有無判定部により前記探索位置保持
部の保持する位置から各ブロックを探索して未使用ブロ
ックがあれば前記ブロックを置き換え対象ブロックとし
て決定し、前記非ディスク装置アクセスブロック有無判
定部により前記探索位置保持部の保持する位置から各ブ
ロックを探索して非ディスク装置アクセスブロックがあ
れば前記ブロックを置き換え対象ブロックとして決定す
ることを特徴とする請求項2に記載の入出力キャッシ
ュ。
5. The replacement target block determining means determines whether or not there is a free block in the input / output cache, and an unused block presence / absence determining portion, and the non-disk device access flag holding means according to the contents of the non-disk device access flag holding means. A non-disk device access block presence / absence determining unit that determines whether or not there is a block related to access by a non-disk device in the I / O cache; a block status determining unit that determines the status of each block of the I / O cache; And a search position holding unit that holds a block search start position when determining a block, and the unused block presence / absence determination unit searches each block from the position held by the search position holding unit to find an unused block. For example, the block is determined as a replacement target block, and the non-disk device 3. The access block presence / absence determining unit searches each block from the position held by the search position holding unit, and if there is a non-disk device access block, determines the block as a replacement target block. I / O cache.
【請求項6】 前記置き換え対象ブロック判定手段は、 前記入出力キャッシュに空きのブロックがあるか否かを
判定する未使用ブロック有無判定部と、 前記最終バイトフラグ保持手段の内容に応じて前記入出
力キャッシュに最終バイトフラグがセットされているブ
ロックがあるか否かを判定する最終バイト使用ブロック
有無判定部と、 前記非ディスク装置アクセスフラグ保持手段の内容に応
じて前記入出力キャッシュに非ディスク装置によるアク
セスに係るブロックがあるか否かを判定する非ディスク
装置アクセスブロック有無判定部と、 前記入出力キャッシュの各ブロックのステータスを判定
するブロックステータス判定部と、 置き換えブロックを決定する際のブロック探索開始位置
を保持する探索位置保持部とを含み、 前記未使用ブロック有無判定部により前記探索位置保持
部の保持する位置から各ブロックを探索して未使用ブロ
ックがあれば前記ブロックを置き換え対象ブロックとし
て決定し、前記最終バイト使用ブロック有無判定部によ
り前記探索位置保持部の保持する位置から各ブロックを
探索して最終バイト使用ブロックがあれば前記ブロック
を置き換え対象ブロックとして決定し、前記非ディスク
装置アクセスブロック有無判定部により前記探索位置保
持部の保持する位置から各ブロックを探索して非ディス
ク装置アクセスブロックがあれば前記ブロックを置き換
え対象ブロックとして決定することを特徴とする請求項
3に記載の入出力キャッシュ。
6. The replacement target block determination means is an unused block presence / absence determination portion that determines whether or not there is a free block in the input / output cache, and the input block is determined according to the contents of the last byte flag holding means. A final byte used block presence / absence determining unit that determines whether or not there is a block in which the last byte flag is set in the output cache, and a non-disk device in the I / O cache according to the content of the non-disk device access flag holding unit. Non-disk device access block presence / absence determining unit that determines whether or not there is a block related to access, a block status determining unit that determines the status of each block of the I / O cache, and a block search when determining a replacement block A search position holding unit for holding a start position, The block presence / absence determining unit searches each block from the position held by the search position holding unit, and if there is an unused block, determines the block as a replacement target block, and the final byte used block presence / absence determining unit determines the search position. Each block is searched from the position held by the holding unit, and if there is a last byte used block, the block is determined as a replacement target block, and the non-disk device access block presence / absence determination unit determines the position held by the search position holding unit. 4. The input / output cache according to claim 3, wherein each block is searched and if there is a non-disk device access block, the block is determined as a replacement target block.
JP6201648A 1994-08-26 1994-08-26 I / O cache Expired - Lifetime JP2636746B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6201648A JP2636746B2 (en) 1994-08-26 1994-08-26 I / O cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6201648A JP2636746B2 (en) 1994-08-26 1994-08-26 I / O cache

Publications (2)

Publication Number Publication Date
JPH0863398A true JPH0863398A (en) 1996-03-08
JP2636746B2 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 I / O cache

Country Status (1)

Country Link
JP (1) JP2636746B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016520940A (en) * 2013-06-07 2016-07-14 マーベル ワールド トレード リミテッド System and method for cache management for a universal serial bus system

Citations (2)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016520940A (en) * 2013-06-07 2016-07-14 マーベル ワールド トレード リミテッド System and method for cache management for a universal serial bus system

Also Published As

Publication number Publication date
JP2636746B2 (en) 1997-07-30

Similar Documents

Publication Publication Date Title
US5761536A (en) System and method for reducing memory fragmentation by assigning remainders to share memory blocks on a best fit basis
CN108459826B (en) Method and device for processing IO (input/output) request
JP2000347935A (en) Virtual non-compression cache for compression main memory
US7493445B2 (en) Cache memory system and control method of the cache memory system
US20130254493A1 (en) Cache memory capable of adjusting burst length of write-back data in write-back operation
US20080059728A1 (en) Systems and methods for masking latency of memory reorganization work in a compressed memory system
EP3964967B1 (en) Cache memory and method of using same
EP0713181A1 (en) Data processing system including mechanism for storing address tags
KR100443320B1 (en) Reclaim space reserve for a compressed memory system
US7246202B2 (en) Cache controller, cache control method, and computer system
US7509473B2 (en) Segmented storage system mapping
US20060117142A1 (en) Disk array device, method for controlling the disk array device and storage system
CN116860170A (en) Data processing method, device, equipment, medium and solid state disk
EP0675443A1 (en) Apparatus and method for accessing direct mapped cache
CN107430546B (en) File updating method and storage device
JP2001195197A (en) Digital data sub-system including directory to efficiently provide format information about stored record
JP2001154895A (en) Digital data storage sub-system including directory for efficiently offering format information related with stored record
US11372760B2 (en) Storage control device for controlling cache memory based on access frequencies
JPH08137754A (en) Disk cache device
US11593276B2 (en) Data caching methods of cache systems
JPH08171513A (en) Apparatus for discrimination of changed index line of cache memory and for writing of said changed index line into external memory
JP2636746B2 (en) I / O cache
US20080059706A1 (en) Storage apparatus, storage system and control method for storage apparatus
US20060200631A1 (en) Control circuit and control method
JP4664586B2 (en) Cache control device, cache control method, and computer system

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