JP2818415B2 - バッファ記憶装置 - Google Patents
バッファ記憶装置Info
- Publication number
- JP2818415B2 JP2818415B2 JP63119352A JP11935288A JP2818415B2 JP 2818415 B2 JP2818415 B2 JP 2818415B2 JP 63119352 A JP63119352 A JP 63119352A JP 11935288 A JP11935288 A JP 11935288A JP 2818415 B2 JP2818415 B2 JP 2818415B2
- Authority
- JP
- Japan
- Prior art keywords
- block data
- block
- data
- operand
- instruction
- 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 claims description 59
- 230000004044 response Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は,命令フェッチに応答する命令ブロックデー
タと,オペランドフェッチに応答するオペランドブロッ
クデータとを記憶するバッファ記憶装置に於けるキャッ
シュメモリ上のデータ管理制御方式に関する。
タと,オペランドフェッチに応答するオペランドブロッ
クデータとを記憶するバッファ記憶装置に於けるキャッ
シュメモリ上のデータ管理制御方式に関する。
従来,キャッシュメモリは,セットアソシアティブ方
式などを採用し,ある一定のブロックサイズで,ブロッ
クデータのバッファメモリへの登録を行い,さらにオペ
ランド用メモリ,命令用キャッシュメモリからなる分離
キャッシュメモリ構成を採ったり,オペランドと命令の
どちらとも記憶する共用キャッシュメモリ構成を採って
いた。また,一般にプログラムに於いて命令語は記憶領
域上で連続性を有するが,オペラドデータは,偏在もし
くは,不連続性を有することが多い傾向にあることが知
られている。そこで前者の分離キャッシュメモリ構成で
は,一般にオペランド用キャッシュメモリに於けるオペ
ランドブロックデータのブロックサイズは連続番地によ
るアクセス及び偏在もしくは,不連続性を有する番地に
よるアクセスに対して,性能的にバランスのとれたブロ
ックサイズを採用し,命令用キャッシュメモリに於ける
命令ブロックデータのブロックサイズは,連続番地によ
るアクセスに対して性能的によいブロックサイズが採用
され,それぞれのキャッシュメモリでのブロックサイズ
は,異っていることが多く,また後者の共用キャッシュ
メモリ構成では,オペランドブロックデータと命令ブロ
ックデータのブロックサイズは,共用キャッシュメモリ
構成であるが為に同じブロックサイズを採用していた。
式などを採用し,ある一定のブロックサイズで,ブロッ
クデータのバッファメモリへの登録を行い,さらにオペ
ランド用メモリ,命令用キャッシュメモリからなる分離
キャッシュメモリ構成を採ったり,オペランドと命令の
どちらとも記憶する共用キャッシュメモリ構成を採って
いた。また,一般にプログラムに於いて命令語は記憶領
域上で連続性を有するが,オペラドデータは,偏在もし
くは,不連続性を有することが多い傾向にあることが知
られている。そこで前者の分離キャッシュメモリ構成で
は,一般にオペランド用キャッシュメモリに於けるオペ
ランドブロックデータのブロックサイズは連続番地によ
るアクセス及び偏在もしくは,不連続性を有する番地に
よるアクセスに対して,性能的にバランスのとれたブロ
ックサイズを採用し,命令用キャッシュメモリに於ける
命令ブロックデータのブロックサイズは,連続番地によ
るアクセスに対して性能的によいブロックサイズが採用
され,それぞれのキャッシュメモリでのブロックサイズ
は,異っていることが多く,また後者の共用キャッシュ
メモリ構成では,オペランドブロックデータと命令ブロ
ックデータのブロックサイズは,共用キャッシュメモリ
構成であるが為に同じブロックサイズを採用していた。
ところが,上述した従来のキャッシュメモリ構成に於
いて,前者の分離キャッシュメモリ構成を採ると,オペ
ランド用キャッシュメモリ,命令用キャッシュメモリを
独立に2つ構成する必要があり,ハードウエア量が2倍
必要となる欠点があり,後者の共用キャッシュメモリ構
成では,ブロックサイズが,オペランド,命令ともに同
じ大きさとなり,それぞれのブロックデータの特性を生
かすことが出来ず,また,命令バッファをキャッシュメ
モリの上位に設ける場合など,下位のキャッシュメモリ
が,分離キャッシュメモリであれば,それぞれの特性を
生かすブロックサイズを選択出来るが,共用キャッシュ
メモリ構成であると,命令バッファのブロックサイズも
キャッシュメモリ上のブロックサイズと同じになり,や
はり,それぞれの特性を生かすことが出来ないという欠
点がある。
いて,前者の分離キャッシュメモリ構成を採ると,オペ
ランド用キャッシュメモリ,命令用キャッシュメモリを
独立に2つ構成する必要があり,ハードウエア量が2倍
必要となる欠点があり,後者の共用キャッシュメモリ構
成では,ブロックサイズが,オペランド,命令ともに同
じ大きさとなり,それぞれのブロックデータの特性を生
かすことが出来ず,また,命令バッファをキャッシュメ
モリの上位に設ける場合など,下位のキャッシュメモリ
が,分離キャッシュメモリであれば,それぞれの特性を
生かすブロックサイズを選択出来るが,共用キャッシュ
メモリ構成であると,命令バッファのブロックサイズも
キャッシュメモリ上のブロックサイズと同じになり,や
はり,それぞれの特性を生かすことが出来ないという欠
点がある。
そこで,本発明の技術的課題は,上記欠点に鑑み,分
離キャッシュメモリ構成のようにハードウエア量を2倍
必要せず,共用キャッシュメモリ構成のように命令ブロ
ックデータ及びオペランドブロックデータのブロックサ
イズを同じにすることなしに、最適なブロックサイズを
設定することができるバッファ記憶装置を提供すること
である。
離キャッシュメモリ構成のようにハードウエア量を2倍
必要せず,共用キャッシュメモリ構成のように命令ブロ
ックデータ及びオペランドブロックデータのブロックサ
イズを同じにすることなしに、最適なブロックサイズを
設定することができるバッファ記憶装置を提供すること
である。
[課題を解決するための手段] 本発明によれば、命令フェッチ要求に応答する命令ブ
ロックデータと、オペランドフェッチ要求に応答するオ
ペランドブロックデータとを記憶するバッファ記憶装置
において、 所定のブロックサイズのブロックデータの1個分から
なる前記オペランドブロックデータと、前記所定のブロ
ックサイズのブロックデータの2n(nは1以上の整数)
個分からなる前記命令ブロックデータとを記憶するとと
もに、記憶された前記オペランドブロックデータの前記
ブロックデータ及び記憶された前記命令ブロックデータ
の2n個のブロックデータに1対1対応で、記憶されたブ
ロックデータであることを示す有効情報を記憶するキャ
ッシュメモリと、 前記記憶されたブロックデータが前記オペランドブロ
ッタデータか前記命令ブロックデータかを示すブロック
情報を記憶するブロック情報保持手段と、 前記キャッシュメモリに対して前記オペランドブロッ
クデータ及び前記命令ブロックデータの書き込み及び前
記オペランドブロックデータ及び前記命令ブロックデー
タの読み出しを行うデータ処理手段と、 該データ処理手段から前記キャッシュメモリに対する
前記オペランドブロックデータ又は前記命令ブロックデ
ータに対する読み出し要求に応答し、該読み出し要求が
示している、前記オペランドブロックデータか前記命令
ブロックデータかを示すブロック情報と、前記読み出し
要求に対応する前記ブロック情報保持手段に記憶されて
いる前記ブロック情報とを比較し、不一致を検出した場
合に、ブロック情報不一致信号を出力し、前記データ処
理手段に前記読み出し要求を、前記キャッシュメモリに
おけるデータ不在として処理させるブロック情報チェッ
ク手段と、 前記キャッシュメモリに記憶されている前記命令ブロ
ックデータの2n個のブロックデータの一部が、前記オペ
ランドブロックデータによって書き換えられた場合に、
当該命令ブロックデータの2n個のブロックデータの残り
のブロックデータの前記有効情報を無効化する無効化手
段とを有することを特徴とするバッファ記憶装置が得ら
れる。
ロックデータと、オペランドフェッチ要求に応答するオ
ペランドブロックデータとを記憶するバッファ記憶装置
において、 所定のブロックサイズのブロックデータの1個分から
なる前記オペランドブロックデータと、前記所定のブロ
ックサイズのブロックデータの2n(nは1以上の整数)
個分からなる前記命令ブロックデータとを記憶するとと
もに、記憶された前記オペランドブロックデータの前記
ブロックデータ及び記憶された前記命令ブロックデータ
の2n個のブロックデータに1対1対応で、記憶されたブ
ロックデータであることを示す有効情報を記憶するキャ
ッシュメモリと、 前記記憶されたブロックデータが前記オペランドブロ
ッタデータか前記命令ブロックデータかを示すブロック
情報を記憶するブロック情報保持手段と、 前記キャッシュメモリに対して前記オペランドブロッ
クデータ及び前記命令ブロックデータの書き込み及び前
記オペランドブロックデータ及び前記命令ブロックデー
タの読み出しを行うデータ処理手段と、 該データ処理手段から前記キャッシュメモリに対する
前記オペランドブロックデータ又は前記命令ブロックデ
ータに対する読み出し要求に応答し、該読み出し要求が
示している、前記オペランドブロックデータか前記命令
ブロックデータかを示すブロック情報と、前記読み出し
要求に対応する前記ブロック情報保持手段に記憶されて
いる前記ブロック情報とを比較し、不一致を検出した場
合に、ブロック情報不一致信号を出力し、前記データ処
理手段に前記読み出し要求を、前記キャッシュメモリに
おけるデータ不在として処理させるブロック情報チェッ
ク手段と、 前記キャッシュメモリに記憶されている前記命令ブロ
ックデータの2n個のブロックデータの一部が、前記オペ
ランドブロックデータによって書き換えられた場合に、
当該命令ブロックデータの2n個のブロックデータの残り
のブロックデータの前記有効情報を無効化する無効化手
段とを有することを特徴とするバッファ記憶装置が得ら
れる。
〔実施例〕 次に,本発明の実施例について図面を参照して説明を
する。
する。
尚,説明にあたり,第3図及び第4図に示す構成を例
とする。まず,第3図を参照して、通常のオペランドフ
ェッチ及び命令フェッチの動作から説明する。
とする。まず,第3図を参照して、通常のオペランドフ
ェッチ及び命令フェッチの動作から説明する。
オペランドフェッチは,データ処理装置1から,フェ
ッチ要求線100を介してバッファ記憶装置2,に対して出
され,バッファ記憶装置2に該当するデータを含んだオ
ペランドブロックデータが存在した場合,リプライデー
タ線201を介してデータ処理装置1に該当データが返さ
れる。逆に,該当するデータを含んだオペランドブロッ
クデータが,存在しなかった場合には,主記憶装置3に
対して,オペランドブロックロード要求が,主記憶アク
セス線200を介して出され,主記憶装置3から読み出さ
れた該当するブロックデータを,ブロックデータ線300
を介して,バッファ記憶装置3に登録する。
ッチ要求線100を介してバッファ記憶装置2,に対して出
され,バッファ記憶装置2に該当するデータを含んだオ
ペランドブロックデータが存在した場合,リプライデー
タ線201を介してデータ処理装置1に該当データが返さ
れる。逆に,該当するデータを含んだオペランドブロッ
クデータが,存在しなかった場合には,主記憶装置3に
対して,オペランドブロックロード要求が,主記憶アク
セス線200を介して出され,主記憶装置3から読み出さ
れた該当するブロックデータを,ブロックデータ線300
を介して,バッファ記憶装置3に登録する。
次に,命令フェッチであるが,命令フェッチは,まず
データ処理装置1から命令フェッチ要求として,フェッ
チ要求線100を介して,バッファ記憶装置2に対して出
される(これは,一例として,同一パスによって,バッ
ファ記憶装置2をアクセスする場合を用いているが,別
パスによるアクセスの場合でも同じであることは,言う
までもない)。バッファ記憶装置2に該当する命令ブロ
ックデータが,存在した場合,リプライデータ線201を
介して,データ処理装置1に,該当命令ブロックデータ
が返される(リプライデータ線201も,オペランドフェ
ッチ時と同一パスを用いているがこれも別パスによるデ
ータ転送であっても良いことは,言うまでもない)。も
し,バッファ記憶装置2に該当する命令ブロックデータ
が存在しなかった場合は,バッファ記憶装置2から主記
憶アクセス線200を介して,主記憶装置3に対して命令
ブロックロード要求が出され,主記憶装置4から読み出
された該当する命令ブロックデータをブロックデータ線
300を介して,バッファ記憶装置2に登録する。
データ処理装置1から命令フェッチ要求として,フェッ
チ要求線100を介して,バッファ記憶装置2に対して出
される(これは,一例として,同一パスによって,バッ
ファ記憶装置2をアクセスする場合を用いているが,別
パスによるアクセスの場合でも同じであることは,言う
までもない)。バッファ記憶装置2に該当する命令ブロ
ックデータが,存在した場合,リプライデータ線201を
介して,データ処理装置1に,該当命令ブロックデータ
が返される(リプライデータ線201も,オペランドフェ
ッチ時と同一パスを用いているがこれも別パスによるデ
ータ転送であっても良いことは,言うまでもない)。も
し,バッファ記憶装置2に該当する命令ブロックデータ
が存在しなかった場合は,バッファ記憶装置2から主記
憶アクセス線200を介して,主記憶装置3に対して命令
ブロックロード要求が出され,主記憶装置4から読み出
された該当する命令ブロックデータをブロックデータ線
300を介して,バッファ記憶装置2に登録する。
第4図を参照して、本発明は、前述のオペランドブロ
ックデータと,命令ブロックデータとが異ったブロック
サイズであって,それらが同一キャッシュメモリ5上に
登録管理されるもので,引き続いてその点について説明
する。
ックデータと,命令ブロックデータとが異ったブロック
サイズであって,それらが同一キャッシュメモリ5上に
登録管理されるもので,引き続いてその点について説明
する。
例として,命令ブロックデータのブロックサイズを4N
バイト,オペランドブロックデータのブロックサイズを
Nバイトとした場合を用いることとする。第4図に示す
様にバッファ記憶装置2に,データ処理装置1からのフ
ェッチ要求を受付けるデータ処理手段4と、オペランド
ブロックデータ及び命令ブロックデータ(オペランドブ
ロックデータ及び命令ブロックデータは、上述のよう
に、ブロックサイズが互いに異なっている。)を記憶す
るキャッシュメモリ5と、キャッシュメモリ5に記憶さ
れているブロックデータが命令ブロックデータなのか,
オペランドブロックデータなのかを区別するブロック情
報をたとえば命令ブロックデータのブロックサイズ単位
に記憶するブロック情報保持手段6(後に説明する第2
図に示される様に、キャッシュメモリ5内のデータバ
ッファ50に記憶されているブロックデータD0〜D7(各々
はNバイト)の4Nバイト(例えば、D0〜D3)毎に、ブロ
ック情報を、ブロック情報保持手段6のブロック情報記
憶部60に記憶するものである。ブロック情報保持手段6
は、ブロック情報を、命令ブロックデータのブロックサ
イズ単位に記憶する代りに、ブロック情報を、オペラド
ブロックデータのブロックサイズ単位に記憶しても良
い。)と、データ処理手段4からのキャッシュメモリ5
に対するフェッチ要求時のフェッチ要求が示す,ブロッ
ク情報(オペランドフェッチ時は,“0",命令フェッチ
時は“1")と,ブロック情報保持手段6から読み出され
るブロック情報(オペランドブロックデータ時は“0",
命令ブロックデータ時は“1")とを比較し、不一致を検
出した場合に,データ処理手段4からのフェッチ要求
を,キャッシュメモリ5に於けるデータ不在として処理
させるブロック情報チェック手段7と,キャッシュメモ
リ4にすでに登録されている命令ブロックデータのうち
の1部(例えば、命令ブロックデータの4Nバイトの内の
Nバイト)を、オペランドブロックデータで書き換えて
しまうような場合に、残ったブロックデータ(上述の例
では、Nバイトだけ書き換えられた命令ブロックデータ
の残りの3Nバイト)の有効情報を無効化する無効化処理
手段8とを有する。
バイト,オペランドブロックデータのブロックサイズを
Nバイトとした場合を用いることとする。第4図に示す
様にバッファ記憶装置2に,データ処理装置1からのフ
ェッチ要求を受付けるデータ処理手段4と、オペランド
ブロックデータ及び命令ブロックデータ(オペランドブ
ロックデータ及び命令ブロックデータは、上述のよう
に、ブロックサイズが互いに異なっている。)を記憶す
るキャッシュメモリ5と、キャッシュメモリ5に記憶さ
れているブロックデータが命令ブロックデータなのか,
オペランドブロックデータなのかを区別するブロック情
報をたとえば命令ブロックデータのブロックサイズ単位
に記憶するブロック情報保持手段6(後に説明する第2
図に示される様に、キャッシュメモリ5内のデータバ
ッファ50に記憶されているブロックデータD0〜D7(各々
はNバイト)の4Nバイト(例えば、D0〜D3)毎に、ブロ
ック情報を、ブロック情報保持手段6のブロック情報記
憶部60に記憶するものである。ブロック情報保持手段6
は、ブロック情報を、命令ブロックデータのブロックサ
イズ単位に記憶する代りに、ブロック情報を、オペラド
ブロックデータのブロックサイズ単位に記憶しても良
い。)と、データ処理手段4からのキャッシュメモリ5
に対するフェッチ要求時のフェッチ要求が示す,ブロッ
ク情報(オペランドフェッチ時は,“0",命令フェッチ
時は“1")と,ブロック情報保持手段6から読み出され
るブロック情報(オペランドブロックデータ時は“0",
命令ブロックデータ時は“1")とを比較し、不一致を検
出した場合に,データ処理手段4からのフェッチ要求
を,キャッシュメモリ5に於けるデータ不在として処理
させるブロック情報チェック手段7と,キャッシュメモ
リ4にすでに登録されている命令ブロックデータのうち
の1部(例えば、命令ブロックデータの4Nバイトの内の
Nバイト)を、オペランドブロックデータで書き換えて
しまうような場合に、残ったブロックデータ(上述の例
では、Nバイトだけ書き換えられた命令ブロックデータ
の残りの3Nバイト)の有効情報を無効化する無効化処理
手段8とを有する。
また第1図に示す様に、キャッシュメモリ5内に、オ
ペランドブロックデータのデータサイズ(つまり、Nバ
イト)毎にそのブロックデータの有効情報を持ち,その
有効情報を命令ブロックデータ単位に折りたたんで,そ
れらの情報を同時に読み出し及び書き込みを可能とする
有効情報記憶部52を含んでいる。更に、第1図に示す様
に、キャッシュメモリ5は、データバッファ50と、アド
レスタグ記憶部51と、選択回路53と、コンベア回路54
と、ANDゲート55とを含む。又、データ処理手段4にお
いて、40はアドレスレジスタであり、41はブロック情報
であり、42はANDゲートである。更に、ブロック情報保
持手段6はブロック情報記憶部60を有し、ブロック情報
チェック手段7はコンベア回路70を有する。
ペランドブロックデータのデータサイズ(つまり、Nバ
イト)毎にそのブロックデータの有効情報を持ち,その
有効情報を命令ブロックデータ単位に折りたたんで,そ
れらの情報を同時に読み出し及び書き込みを可能とする
有効情報記憶部52を含んでいる。更に、第1図に示す様
に、キャッシュメモリ5は、データバッファ50と、アド
レスタグ記憶部51と、選択回路53と、コンベア回路54
と、ANDゲート55とを含む。又、データ処理手段4にお
いて、40はアドレスレジスタであり、41はブロック情報
であり、42はANDゲートである。更に、ブロック情報保
持手段6はブロック情報記憶部60を有し、ブロック情報
チェック手段7はコンベア回路70を有する。
これらの構成及び情報を持つことによって,たとえば
第2図に示すようにデータバッファ50に,オペランド
アクセス(a)があると,そのオペランドアクセス
(a)に該当する有効情報を有効情報記憶部52から,ブ
ロック情報をブロック情報記憶部60から読み出し,さら
にアドレスタグ記憶部51からアドレス上位部を読み出し
第1図に示す様に,コンペア回路54にて,アクセスアド
レス上位部とアドレスタグ記憶部51から読み出されたア
ドレス上位部とを比較し,一致がとれ,さらに有効情報
記憶部52から読み出された有効情報が“1"(有効)を表
示していてANDゲート55でANDがとれ,さらにブロック情
報保持手段6にあるブロック情報記憶部60から読み出さ
れたブロック情報が“0"でオペランドブロックデータで
あることを示していて,データ処理手段4からリクエス
ト情報線402を介して送られるブロック情報41(“オペ
ランドアクセス”=“0",“命令アクセス”=“1")の
情報とが,コンペア回路70で一致がとれた場合,キャッ
シュメモリ5からは,ヒット信号(キャッシュメモリ5
上に該当データが存在したことを意味する信号)が,ヒ
ット/ミスヒット情報線501を介してデータ処理手段4
に送られ,ブロック情報チェック手段7,からは,ブロッ
ク情報一致信号線700を介して,ブロック情報が一致し
ていたことが伝えられる。データ処理手段4では,2つの
情報がANDゲート42でANDがとれた場合に,初めてデータ
処理装置1に対して,リプライデータ線201を介して,
リプライデータをバッファ記憶装置2から返す。逆に,
有効情報が“0"(無効)を表示していたり,ブロック情
報記憶部60の情報が“1"(命令ブロックデータ)であっ
たりした場合には,該当データを含んだブロックデータ
がキャッシュメモリ5に存在しなかったように,制御す
る。
第2図に示すようにデータバッファ50に,オペランド
アクセス(a)があると,そのオペランドアクセス
(a)に該当する有効情報を有効情報記憶部52から,ブ
ロック情報をブロック情報記憶部60から読み出し,さら
にアドレスタグ記憶部51からアドレス上位部を読み出し
第1図に示す様に,コンペア回路54にて,アクセスアド
レス上位部とアドレスタグ記憶部51から読み出されたア
ドレス上位部とを比較し,一致がとれ,さらに有効情報
記憶部52から読み出された有効情報が“1"(有効)を表
示していてANDゲート55でANDがとれ,さらにブロック情
報保持手段6にあるブロック情報記憶部60から読み出さ
れたブロック情報が“0"でオペランドブロックデータで
あることを示していて,データ処理手段4からリクエス
ト情報線402を介して送られるブロック情報41(“オペ
ランドアクセス”=“0",“命令アクセス”=“1")の
情報とが,コンペア回路70で一致がとれた場合,キャッ
シュメモリ5からは,ヒット信号(キャッシュメモリ5
上に該当データが存在したことを意味する信号)が,ヒ
ット/ミスヒット情報線501を介してデータ処理手段4
に送られ,ブロック情報チェック手段7,からは,ブロッ
ク情報一致信号線700を介して,ブロック情報が一致し
ていたことが伝えられる。データ処理手段4では,2つの
情報がANDゲート42でANDがとれた場合に,初めてデータ
処理装置1に対して,リプライデータ線201を介して,
リプライデータをバッファ記憶装置2から返す。逆に,
有効情報が“0"(無効)を表示していたり,ブロック情
報記憶部60の情報が“1"(命令ブロックデータ)であっ
たりした場合には,該当データを含んだブロックデータ
がキャッシュメモリ5に存在しなかったように,制御す
る。
次に,第2図に示すように,データバッファ50に命
令アクセス(b)があると,前述のオペランドアクセス
(a)と同様にして,有効情報記憶部52から読み出され
る有効情報が“1"であって,ブロック情報記憶部60から
読み出されたブロック情報が“1"であった場合は,該当
する命令ブロックデータが,キャッシュメモリ5に存在
したことになり,逆に,有効情報が“0"であったり,ブ
ロック情報が“0"であったりした場合には,キャッシュ
メモリ5に該当するブロックデータが存在しなかったこ
とになる。
令アクセス(b)があると,前述のオペランドアクセス
(a)と同様にして,有効情報記憶部52から読み出され
る有効情報が“1"であって,ブロック情報記憶部60から
読み出されたブロック情報が“1"であった場合は,該当
する命令ブロックデータが,キャッシュメモリ5に存在
したことになり,逆に,有効情報が“0"であったり,ブ
ロック情報が“0"であったりした場合には,キャッシュ
メモリ5に該当するブロックデータが存在しなかったこ
とになる。
第2図に示すケースは,に示す状態で,オペラン
ドブロックデータの存在するキャッシュメモリ5のセッ
トアドレスに命令アクセス(b)があったケースで,前
述のようにブロック情報のチェックをコンペア回路70で
行うと一致がとれない為,キャッシュメモリ5,に於ける
データ不在(ミスヒット)となり,主記憶装置3からの
命令ブロックデータ(4Nバイト)の読み出しがなされ,
引き続いてキャッシュメモリ5へと登録がなされる。こ
の時,有効情報記憶部52の有効情報は4ビットとも“1"
にセットされ,ブロック情報記憶部60のブロック情報も
“0"から“1"にセットされる。第2図に示すケース
は,に示す状態で,命令ブロックデータの存在するキ
ャッシュメモリ5のセットアドレスにオペランドアクセ
ス(b)があったケースで前述のようにブロック情報の
チェックをコンペア回路70で行うと一致がとれない為,
キャッシュメモリ5に於けるデータ不在(ミスヒット)
となり,主記憶装置3からのオペランドブロックデータ
(Nバイト)の読み出しがなされ,引き続いて,キャッ
シュメモリ5への登録がなされる。
ドブロックデータの存在するキャッシュメモリ5のセッ
トアドレスに命令アクセス(b)があったケースで,前
述のようにブロック情報のチェックをコンペア回路70で
行うと一致がとれない為,キャッシュメモリ5,に於ける
データ不在(ミスヒット)となり,主記憶装置3からの
命令ブロックデータ(4Nバイト)の読み出しがなされ,
引き続いてキャッシュメモリ5へと登録がなされる。こ
の時,有効情報記憶部52の有効情報は4ビットとも“1"
にセットされ,ブロック情報記憶部60のブロック情報も
“0"から“1"にセットされる。第2図に示すケース
は,に示す状態で,命令ブロックデータの存在するキ
ャッシュメモリ5のセットアドレスにオペランドアクセ
ス(b)があったケースで前述のようにブロック情報の
チェックをコンペア回路70で行うと一致がとれない為,
キャッシュメモリ5に於けるデータ不在(ミスヒット)
となり,主記憶装置3からのオペランドブロックデータ
(Nバイト)の読み出しがなされ,引き続いて,キャッ
シュメモリ5への登録がなされる。
この時,有効情報記憶部52の有効情報は,オペランド
ブロックデータが登録されたアドレス位置のみ“1"にセ
ットされ,他の3ビットに関しては,“0"に無効化され
る必要がある。本無効化処理は,キャッシュメモリ5を
アクセスした時のセットアドレスと,そのアドレスによ
ってブロック情報記憶部60から読み出されたブロック情
報とを,それぞれ,登録指示線400及びブロック情報線6
00を介して,無効化処理手段8に受け,無効化要求線80
0を介して,キャッシュメモリ5にある有効情報記憶部5
2に対して,無効化指示を出すことで実現されるものと
する。
ブロックデータが登録されたアドレス位置のみ“1"にセ
ットされ,他の3ビットに関しては,“0"に無効化され
る必要がある。本無効化処理は,キャッシュメモリ5を
アクセスした時のセットアドレスと,そのアドレスによ
ってブロック情報記憶部60から読み出されたブロック情
報とを,それぞれ,登録指示線400及びブロック情報線6
00を介して,無効化処理手段8に受け,無効化要求線80
0を介して,キャッシュメモリ5にある有効情報記憶部5
2に対して,無効化指示を出すことで実現されるものと
する。
以上の様にすることによって,それぞれ異った大きさ
のブロックデータを各々同一キャッシュメモリ5上で独
立して処理することが可能となる。この説明では,1レベ
ルのキャッシュメモリを設定したが,nレベルであっても
同様の制御が可能であることは言うまでもない。
のブロックデータを各々同一キャッシュメモリ5上で独
立して処理することが可能となる。この説明では,1レベ
ルのキャッシュメモリを設定したが,nレベルであっても
同様の制御が可能であることは言うまでもない。
以上説明したように,本発明は,キャッシュメモリに
2種類のブロックサイズのブロックデータを登録可能と
することによって,分離キャッシュメモリ構成のように
ハードウェア量を2倍必要とせず,共用キャッシュメモ
リ構成のようにそれぞれのブロックサイズを同じにする
ことなしに,それぞれ最適なブロックサイズを設定可能
とすることで性能的に優れたバッファ記憶装置を提供す
ることができる効果がある。
2種類のブロックサイズのブロックデータを登録可能と
することによって,分離キャッシュメモリ構成のように
ハードウェア量を2倍必要とせず,共用キャッシュメモ
リ構成のようにそれぞれのブロックサイズを同じにする
ことなしに,それぞれ最適なブロックサイズを設定可能
とすることで性能的に優れたバッファ記憶装置を提供す
ることができる効果がある。
第1図は本発明の一実施例の詳細図,第2図〜は,
第1図における2種類のブロックデータのブロックサイ
ズの態様を示す具体例であり,第3図,第4図は,本実
施例の一構成例である。 1……データ処理装置,2……バッファ記憶装置,3……主
記憶装置,4……データ処理手段,5……キャッシュメモ
リ,6……ブロック情報保持手段,7……ブロック情報チェ
ック手段,8……無効化処理手段,40……アドレスレジス
タ,41……ブロック情報,42……ANDゲート,50……データ
バッファ,51……アドレスタグ記憶部,52……有効情報記
憶部,53……選択回路,54……コンペア回路,55……ANDゲ
ート,60……ブロック情報記憶部,70……コンペア回路,1
00……フェッチ要求線,200……主記憶アクセス線,201…
…リプライデータ線,300……ブロックデータ線,400……
登録指示線,401……フェッチ要求線,402……リクエスト
情報線,501……ヒット/ミスヒット情報線,600……ブロ
ック情報線,700……ブロック情報一致信号線,800……無
効化要求線。
第1図における2種類のブロックデータのブロックサイ
ズの態様を示す具体例であり,第3図,第4図は,本実
施例の一構成例である。 1……データ処理装置,2……バッファ記憶装置,3……主
記憶装置,4……データ処理手段,5……キャッシュメモ
リ,6……ブロック情報保持手段,7……ブロック情報チェ
ック手段,8……無効化処理手段,40……アドレスレジス
タ,41……ブロック情報,42……ANDゲート,50……データ
バッファ,51……アドレスタグ記憶部,52……有効情報記
憶部,53……選択回路,54……コンペア回路,55……ANDゲ
ート,60……ブロック情報記憶部,70……コンペア回路,1
00……フェッチ要求線,200……主記憶アクセス線,201…
…リプライデータ線,300……ブロックデータ線,400……
登録指示線,401……フェッチ要求線,402……リクエスト
情報線,501……ヒット/ミスヒット情報線,600……ブロ
ック情報線,700……ブロック情報一致信号線,800……無
効化要求線。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 G06F 9/38 310
Claims (1)
- 【請求項1】命令フェッチ要求に応答する命令ブロック
データと、オペランドフェッチ要求に応答するオペラン
ドブロックデータとを記憶するバッファ記憶装置におい
て、 所定のブロックサイズのブロックデータの1個分からな
る前記オペランドブロックデータと、前記所定のブロッ
クサイズのブロックデータの2n(nは1以上の整数)個
分からなる前記命令ブロックデータとを記憶するととも
に、記憶された前記オペランドブロックデータの前記ブ
ロックデータ及び記憶された前記命令ブロックデータの
2n個のブロックデータに1対1対応で、記憶されたブロ
ックデータであることを示す有効情報を記憶するキャッ
シュメモリと、 前記記憶されたブロックデータが前記オペランドブロッ
タデータか前記命令ブロックデータかを示すブロック情
報を記憶するブロック情報保持手段と、 前記キャッシュメモリに対して前記オペランドブロック
データ及び前記命令ブロックデータの書き込み及び前記
オペランドブロックデータ及び前記命令ブロックデータ
の読み出しを行うデータ処理手段と、 該データ処理手段から前記キャッシュメモリに対する前
記オペランドブロックデータ又は前記命令ブロックデー
タに対する読み出し要求に応答し、該読み出し要求が示
している、前記オペランドブロックデータか前記命令ブ
ロックデータかを示すブロック情報と、前記読み出し要
求に対応する前記ブロック情報保持手段に記憶されてい
る前記ブロック情報とを比較し、不一致を検出した場合
に、ブロック情報不一致信号を出力し、前記データ処理
手段に前記読み出し要求を、前記キャッシュメモリにお
けるデータ不在として処理させるブロック情報チェック
手段と、 前記キャッシュメモリに記憶されている前記命令ブロッ
クデータの2n個のブロックデータの一部が、前記オペラ
ンドブロックデータによって書き換えられた場合に、当
該命令ブロックデータの2n個のブロックデータの残りの
ブロックデータの前記有効情報を無効化する無効化手段
とを有することを特徴とするバッファ記憶装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63119352A JP2818415B2 (ja) | 1988-05-18 | 1988-05-18 | バッファ記憶装置 |
EP89108845A EP0342631B1 (en) | 1988-05-18 | 1989-05-17 | Buffer memory device capable of memorizing operand and instruction data blocks at different block sizes |
DE68928333T DE68928333T2 (de) | 1988-05-18 | 1989-05-17 | Pufferspeicher, der zur Speicherung von Befehls- und Datenblöcken auf verschiedene Blockgrössen geeignet ist |
US07/353,361 US5109498A (en) | 1988-05-18 | 1989-05-17 | Buffer memory device capable of memorizing operand and instruction data blocks at different block sizes |
AU34912/89A AU617474B2 (en) | 1988-05-18 | 1989-05-18 | Buffer memory device capable of memorizing operand and instruction data blocks at different block sizes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63119352A JP2818415B2 (ja) | 1988-05-18 | 1988-05-18 | バッファ記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01290050A JPH01290050A (ja) | 1989-11-21 |
JP2818415B2 true JP2818415B2 (ja) | 1998-10-30 |
Family
ID=14759366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63119352A Expired - Lifetime JP2818415B2 (ja) | 1988-05-18 | 1988-05-18 | バッファ記憶装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5109498A (ja) |
EP (1) | EP0342631B1 (ja) |
JP (1) | JP2818415B2 (ja) |
AU (1) | AU617474B2 (ja) |
DE (1) | DE68928333T2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112287A (en) * | 1993-03-01 | 2000-08-29 | Busless Computers Sarl | Shared memory multiprocessor system using a set of serial links as processors-memory switch |
JPH0740247B2 (ja) * | 1989-06-20 | 1995-05-01 | 松下電器産業株式会社 | キャッシュメモリ装置 |
US5442769A (en) * | 1990-03-13 | 1995-08-15 | At&T Corp. | Processor having general registers with subdivisions addressable in instructions by register number and subdivision type |
US6324120B2 (en) | 1990-04-18 | 2001-11-27 | Rambus Inc. | Memory device having a variable data output length |
IL96808A (en) | 1990-04-18 | 1996-03-31 | Rambus Inc | Introductory / Origin Circuit Agreed Using High-Performance Brokerage |
US6751696B2 (en) * | 1990-04-18 | 2004-06-15 | Rambus Inc. | Memory device having a programmable register |
US5390304A (en) * | 1990-09-28 | 1995-02-14 | Texas Instruments, Incorporated | Method and apparatus for processing block instructions in a data processor |
US5822781A (en) * | 1992-10-30 | 1998-10-13 | Intel Corporation | Sector-based storage device emulator having variable-sized sector |
FR2732134B1 (fr) * | 1995-03-23 | 1997-06-06 | Suisse Electronique Microtech | Systeme informatique avec memoires hierarchisees |
US5737550A (en) * | 1995-03-28 | 1998-04-07 | Advanced Micro Devices, Inc. | Cache memory to processor bus interface and method thereof |
GB2317788B (en) * | 1996-09-26 | 2001-08-01 | Nokia Mobile Phones Ltd | Communication device |
US6760816B1 (en) * | 2000-09-29 | 2004-07-06 | Intel Corporation | Critical loads guided data prefetching |
US6782469B1 (en) | 2000-09-29 | 2004-08-24 | Intel Corporation | Runtime critical load/data ordering |
US6662273B1 (en) | 2000-09-29 | 2003-12-09 | Intel Corporation | Least critical used replacement with critical cache |
AU2002360640A1 (en) * | 2002-12-17 | 2004-07-29 | International Business Machines Corporation | Selectively changeable line width memory |
JP2005166155A (ja) * | 2003-12-02 | 2005-06-23 | Hitachi-Lg Data Storage Inc | 光ディスクドライブ装置 |
US7958436B2 (en) | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US7925957B2 (en) | 2006-03-20 | 2011-04-12 | Intel Corporation | Validating data using processor instructions |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4312036A (en) * | 1978-12-11 | 1982-01-19 | Honeywell Information Systems Inc. | Instruction buffer apparatus of a cache unit |
US4315312A (en) * | 1979-12-19 | 1982-02-09 | Ncr Corporation | Cache memory having a variable data block size |
US4575814A (en) * | 1982-05-26 | 1986-03-11 | Westinghouse Electric Corp. | Programmable interface memory |
JPH0673114B2 (ja) * | 1987-03-31 | 1994-09-14 | 日本電気株式会社 | キヤツシユ制御装置 |
US4908748A (en) * | 1987-07-28 | 1990-03-13 | Texas Instruments Incorporated | Data processing device with parallel circular addressing hardware |
JPH01173241A (ja) * | 1987-12-28 | 1989-07-07 | Toshiba Corp | キャッシュメモリ装置 |
US5025366A (en) * | 1988-01-20 | 1991-06-18 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in cache system design |
-
1988
- 1988-05-18 JP JP63119352A patent/JP2818415B2/ja not_active Expired - Lifetime
-
1989
- 1989-05-17 DE DE68928333T patent/DE68928333T2/de not_active Expired - Fee Related
- 1989-05-17 EP EP89108845A patent/EP0342631B1/en not_active Expired - Lifetime
- 1989-05-17 US US07/353,361 patent/US5109498A/en not_active Expired - Fee Related
- 1989-05-18 AU AU34912/89A patent/AU617474B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
DE68928333D1 (de) | 1997-10-30 |
US5109498A (en) | 1992-04-28 |
EP0342631A2 (en) | 1989-11-23 |
JPH01290050A (ja) | 1989-11-21 |
DE68928333T2 (de) | 1998-01-29 |
EP0342631B1 (en) | 1997-09-24 |
EP0342631A3 (en) | 1991-09-18 |
AU617474B2 (en) | 1991-11-28 |
AU3491289A (en) | 1989-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2818415B2 (ja) | バッファ記憶装置 | |
JPH0668735B2 (ja) | キヤツシユメモリ− | |
US7577791B2 (en) | Virtualized load buffers | |
JPH03225542A (ja) | データ記憶方法及びビットエンコードデータの処理回路 | |
US4648033A (en) | Look-aside buffer LRU marker controller | |
KR100380674B1 (ko) | 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템 | |
JP3733604B2 (ja) | キャッシュメモリ | |
JPS60237553A (ja) | キヤツシユコヒ−レンスシステム | |
US5960456A (en) | Method and apparatus for providing a readable and writable cache tag memory | |
US20040030950A1 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache | |
JPS5922315B2 (ja) | バツフア記憶制御方式 | |
JP2976980B2 (ja) | キャッシュ制御方式 | |
JPH1185613A (ja) | キャッシュメモリ | |
JP3047992B2 (ja) | 主記憶キー制御方法 | |
JPH0769863B2 (ja) | データ処理装置 | |
JPH01290052A (ja) | キャッシュメモリ | |
JPH04160543A (ja) | キャッシュ装置 | |
JPH08272687A (ja) | 入出力キャッシュメモリ | |
JPS63127349A (ja) | マイクロプロセサ処理装置 | |
JPH0512109A (ja) | キヤツシユメモリ方式 | |
JPH03225540A (ja) | キャッシュメモリの無効化処理方式 | |
JPS62197846A (ja) | アドレス変換装置 | |
JPH01118944A (ja) | キャッシュメモリ制御装置 | |
JPS63282544A (ja) | ワンチツプキヤツシユメモリ | |
JPH0740245B2 (ja) | メモリ干渉検出装置 |