JP2689920B2 - 演算処理システムに用いられるプリフェッチバッファ装置 - Google Patents
演算処理システムに用いられるプリフェッチバッファ装置Info
- Publication number
- JP2689920B2 JP2689920B2 JP6229949A JP22994994A JP2689920B2 JP 2689920 B2 JP2689920 B2 JP 2689920B2 JP 6229949 A JP6229949 A JP 6229949A JP 22994994 A JP22994994 A JP 22994994A JP 2689920 B2 JP2689920 B2 JP 2689920B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- entry
- address
- arithmetic processing
- memory
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は演算処理システムに関
し、特には演算処理装置、メインメモリおよびキャッシ
ュメモリを具備する演算処理システムに関する。
し、特には演算処理装置、メインメモリおよびキャッシ
ュメモリを具備する演算処理システムに関する。
【0002】
【従来の技術】図3は演算処理システムの従来例を示す
ブロック図、図4はダイレクトマップ方式が適用された
キャッシュメモリ周辺を示すブロック図である。図3に
おいてキャッシュメモリシステムは、キャッシュメモリ
207および比較器212からなり、演算部201とメ
インメモリ215との間に位置しメモリアクセスの高速
化を実現することにより演算処理システムの性能を向上
させる。
ブロック図、図4はダイレクトマップ方式が適用された
キャッシュメモリ周辺を示すブロック図である。図3に
おいてキャッシュメモリシステムは、キャッシュメモリ
207および比較器212からなり、演算部201とメ
インメモリ215との間に位置しメモリアクセスの高速
化を実現することにより演算処理システムの性能を向上
させる。
【0003】次に図3の演算処理システムの動作を例に
あげてキャッシュシステムの動作について説明する。演
算部201は、アドレスバス202とデータバス203
を用いてメモリアクセスを行う。演算部201は、アド
レスをアドレスバス202に出力するとともに、メモリ
アクセスの状態を外部に示す制御信号204,205,
206を出力する。また、演算部201がメモリ20
7,215からデータを読み出す場合は、データバス2
03を読み込み用に使用し、演算部201がメモリへデ
ータを書き込む場合は、データバス203を書き込み用
に用いる。
あげてキャッシュシステムの動作について説明する。演
算部201は、アドレスバス202とデータバス203
を用いてメモリアクセスを行う。演算部201は、アド
レスをアドレスバス202に出力するとともに、メモリ
アクセスの状態を外部に示す制御信号204,205,
206を出力する。また、演算部201がメモリ20
7,215からデータを読み出す場合は、データバス2
03を読み込み用に使用し、演算部201がメモリへデ
ータを書き込む場合は、データバス203を書き込み用
に用いる。
【0004】キャッシュメモリ207は、それぞれライ
ンとよばれる複数のメモリ単位を具備している。各ライ
ンはそれぞれタグアドレス、バリッドフラグおよびデー
タを記憶するためのメモリ領域であるタグアドレス記憶
部208,バリッドフラグ記憶部209,データ記憶部
210を有する。タグアドレス記憶部208のタグアド
レスには、データ記憶部210に格納されているデータ
がメインメモリ215においてはどこに格納されている
かを示すメインメモリ215のアドレスが格納される。
また、バリッドフラグ記憶部209のバリッドフラグ
は、対応するラインが有効なデータを含んでいるか否か
を示す。さらにキャッシュメモリ207は、アドレスバ
ス202からのアドレスの一部分を用いて前記複数のラ
インのうちの一つを選択するデコーダ211を具備して
いる。比較器212は、デコーダ211で選択したライ
ンのタグアドレスと、アドレスバス202からのアドレ
スの対応する部分とを比較する。
ンとよばれる複数のメモリ単位を具備している。各ライ
ンはそれぞれタグアドレス、バリッドフラグおよびデー
タを記憶するためのメモリ領域であるタグアドレス記憶
部208,バリッドフラグ記憶部209,データ記憶部
210を有する。タグアドレス記憶部208のタグアド
レスには、データ記憶部210に格納されているデータ
がメインメモリ215においてはどこに格納されている
かを示すメインメモリ215のアドレスが格納される。
また、バリッドフラグ記憶部209のバリッドフラグ
は、対応するラインが有効なデータを含んでいるか否か
を示す。さらにキャッシュメモリ207は、アドレスバ
ス202からのアドレスの一部分を用いて前記複数のラ
インのうちの一つを選択するデコーダ211を具備して
いる。比較器212は、デコーダ211で選択したライ
ンのタグアドレスと、アドレスバス202からのアドレ
スの対応する部分とを比較する。
【0005】次にダイレクトマップ方式のアドレス比較
方法について図4を参照して説明する。アドレスバス2
02からのアドレスは、MSB側部分301,中央部分
302,LSB側部分303の3つの部分に分けられて
いる。LSB側部分303は、前記ラインのなかのデー
タを選択する部分である。中央部分302は、デコーダ
211でデコードされキャッシュメモリ300のエント
リを選択するために用いられる。MSB側部分301
は、ラインに入っているデータが、メインメモリのいず
れかのアドレスにあるデータかどうかを判定するキーと
して用いられる。キャッシュラインのサイズは、演算処
理装置のデザインによってことなるが、概ね1ワードか
ら8ワード位のサイズになる(データの入るメモリのサ
イズはラインサイズと呼ばれる)。
方法について図4を参照して説明する。アドレスバス2
02からのアドレスは、MSB側部分301,中央部分
302,LSB側部分303の3つの部分に分けられて
いる。LSB側部分303は、前記ラインのなかのデー
タを選択する部分である。中央部分302は、デコーダ
211でデコードされキャッシュメモリ300のエント
リを選択するために用いられる。MSB側部分301
は、ラインに入っているデータが、メインメモリのいず
れかのアドレスにあるデータかどうかを判定するキーと
して用いられる。キャッシュラインのサイズは、演算処
理装置のデザインによってことなるが、概ね1ワードか
ら8ワード位のサイズになる(データの入るメモリのサ
イズはラインサイズと呼ばれる)。
【0006】演算処理装置の命令/データアクセスに
は、アドレスの局所性という経験的な法則がある。アド
レスの局所性とは、あるアドレスにアクセスがあった場
合に、そのアクセスに関連して、その周辺のデータがア
クセスされやすいという位置的な局所性を有するととも
に、一度アクセスのあったデータは、時間をおいて、何
度かアクセスされるという時間的な局所性を有するとい
うことである。小容量の高速メモリからなるキャッシュ
メモリは、上述の性質を利用し、一度キャッシュメモリ
中に置いたデータは、アドレスの衝突が起こらない限り
キャッシュメモリ中に置き続け、小容量の高速メモリを
効果的に使用しようとするものである。また、ラインサ
イズを大きくとることで、一度アクセスしたアドレスの
周辺のデータを同時にとってくることによっても、やは
り、小容量の高速メモリを効果的に使用しようとする。
しかし、キャッシュメモリ付きの演算処理装置のメモリ
インターフェースバスに通常のメインメモリを接続する
と、メインメモリのアクセスタイムの遅さから、演算処
理装置の性能を低下させてしまういう問題がある。
は、アドレスの局所性という経験的な法則がある。アド
レスの局所性とは、あるアドレスにアクセスがあった場
合に、そのアクセスに関連して、その周辺のデータがア
クセスされやすいという位置的な局所性を有するととも
に、一度アクセスのあったデータは、時間をおいて、何
度かアクセスされるという時間的な局所性を有するとい
うことである。小容量の高速メモリからなるキャッシュ
メモリは、上述の性質を利用し、一度キャッシュメモリ
中に置いたデータは、アドレスの衝突が起こらない限り
キャッシュメモリ中に置き続け、小容量の高速メモリを
効果的に使用しようとするものである。また、ラインサ
イズを大きくとることで、一度アクセスしたアドレスの
周辺のデータを同時にとってくることによっても、やは
り、小容量の高速メモリを効果的に使用しようとする。
しかし、キャッシュメモリ付きの演算処理装置のメモリ
インターフェースバスに通常のメインメモリを接続する
と、メインメモリのアクセスタイムの遅さから、演算処
理装置の性能を低下させてしまういう問題がある。
【0007】本発明は上記問題に鑑み、演算処理装置と
メインメモリとの間に接続し、演算処理装置の性能が低
下するのを防止するプリフェッチバッファ装置を提供す
ることを目的とする。
メインメモリとの間に接続し、演算処理装置の性能が低
下するのを防止するプリフェッチバッファ装置を提供す
ることを目的とする。
【0008】
【課題を解決するための手段】本発明のプリフェッチバ
ッファ装置は、メインメモリとキャッシュメモリ内蔵演
算処理装置の間に設けられ予め前記演算処理装置が必要
とする前記メインメモリのデータをプリフェッチしてお
くプリフェッチバッファ装置において、それぞれ前記メ
インメモリから一度に読み出せるビット数以下であって
前記キャッシュメモリの2ライン分以上のビット数を有
する第1及び第2のエントリを設け、前記第1のエント
リがヒットしていない状態からヒット状態に遷移したと
きに、前記第1のエントリに格納したデータに続くアド
レスのデータを前記メインメモリから読み出し、前記第
2のエントリに書き込むことを特徴とする。
ッファ装置は、メインメモリとキャッシュメモリ内蔵演
算処理装置の間に設けられ予め前記演算処理装置が必要
とする前記メインメモリのデータをプリフェッチしてお
くプリフェッチバッファ装置において、それぞれ前記メ
インメモリから一度に読み出せるビット数以下であって
前記キャッシュメモリの2ライン分以上のビット数を有
する第1及び第2のエントリを設け、前記第1のエント
リがヒットしていない状態からヒット状態に遷移したと
きに、前記第1のエントリに格納したデータに続くアド
レスのデータを前記メインメモリから読み出し、前記第
2のエントリに書き込むことを特徴とする。
【0009】さらに、本発明のプリフェッチバッファ装
置は、上述したプリフェッチバッファ装置において、前
記第2のエントリがヒットしていない状態からヒット状
態に遷移したときに、前記第2のエントリに格納したデ
ータに続くアドレスのデータを前記メインメモリから読
み出し、前記第1のエントリに書き込むことを特徴とす
る。
置は、上述したプリフェッチバッファ装置において、前
記第2のエントリがヒットしていない状態からヒット状
態に遷移したときに、前記第2のエントリに格納したデ
ータに続くアドレスのデータを前記メインメモリから読
み出し、前記第1のエントリに書き込むことを特徴とす
る。
【0010】すなわち、本発明のプリフェッチバッファ
装置は、2組のエントリとよばれる記憶ブロック最小単
位と、その周辺回路で構成される。
装置は、2組のエントリとよばれる記憶ブロック最小単
位と、その周辺回路で構成される。
【0011】
【作用】エントリは、データを格納するバッファ記憶手
段と、バッファ記憶手段に記憶されているデータのメイ
ンメモリ中でのアドレスを記憶するタグアドレス記憶手
段とバッファ記憶手段に記憶されているデータが有効か
無効かを記憶するバリッドフラグ手段と、2つの有効ア
ドレスを比較し、2つのアドレスが一致することを検出
する比較手段を有する。タグアドレス記憶手段の出力を
前記アドレス比較手段の一方のアドレス入力に接続し、
前記演算処理装置からのアドレス入力バスに示されたア
ドレスを前記アドレス比較手段のもう一方のアドレス入
力に接続する。エントリに入っているデータが演算処理
装置の要求するデータに等しい場合は、そのエントリの
バッファ記憶手段の内容を直接返し、かつ、他のエント
リのデータを更新することで、演算処理装置の発生する
連続するアドレスのアクセスを高速処理する。
段と、バッファ記憶手段に記憶されているデータのメイ
ンメモリ中でのアドレスを記憶するタグアドレス記憶手
段とバッファ記憶手段に記憶されているデータが有効か
無効かを記憶するバリッドフラグ手段と、2つの有効ア
ドレスを比較し、2つのアドレスが一致することを検出
する比較手段を有する。タグアドレス記憶手段の出力を
前記アドレス比較手段の一方のアドレス入力に接続し、
前記演算処理装置からのアドレス入力バスに示されたア
ドレスを前記アドレス比較手段のもう一方のアドレス入
力に接続する。エントリに入っているデータが演算処理
装置の要求するデータに等しい場合は、そのエントリの
バッファ記憶手段の内容を直接返し、かつ、他のエント
リのデータを更新することで、演算処理装置の発生する
連続するアドレスのアクセスを高速処理する。
【0012】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。図1は本発明のプリフェッチバッファ装置
の一実施例を示すブロック図、図2は図1の実施例の動
作を示す状態遷移図である。図1の実施例においては、
第1,第2のプリフェッチバッファ121,122から
なるプリフェッチバッファ部と、外部制御回路120と
がプリフェッチバッファ装置を構成している。プリフェ
ッチバッファ装置は、演算処理装置100とメインメモ
リ200との間に配置され、これらとともに全体で演算
処理システムを構成している。
て説明する。図1は本発明のプリフェッチバッファ装置
の一実施例を示すブロック図、図2は図1の実施例の動
作を示す状態遷移図である。図1の実施例においては、
第1,第2のプリフェッチバッファ121,122から
なるプリフェッチバッファ部と、外部制御回路120と
がプリフェッチバッファ装置を構成している。プリフェ
ッチバッファ装置は、演算処理装置100とメインメモ
リ200との間に配置され、これらとともに全体で演算
処理システムを構成している。
【0013】演算処理装置100は、演算部101と、
キャッシュメモリ107および比較器112を主要素と
するキャッシュシステムと、制御回路104とで構成さ
れている。このように構成された演算処理装置100は
集積回路として形成するのに適している。このキャッシ
ュメモリ付きの演算処理装置100は、32ビットのア
ドレスバス端子105と、64ビットのデータバス端子
106とを介してメインメモリ200とデータ交換を行
う。演算処理装置100は、前記端子を介して一般的に
20nS程度の時間で、1回のメモリアクセスサイクル
を実行し、64ビットのデータをメインメモリ200か
ら転送させる。ここで、キャッシュメモリ107のライ
ンサイズを16バイトとするとキャッシュメモリの1ラ
インを入れ替えるのに2回のバスサイクルを必要とす
る。
キャッシュメモリ107および比較器112を主要素と
するキャッシュシステムと、制御回路104とで構成さ
れている。このように構成された演算処理装置100は
集積回路として形成するのに適している。このキャッシ
ュメモリ付きの演算処理装置100は、32ビットのア
ドレスバス端子105と、64ビットのデータバス端子
106とを介してメインメモリ200とデータ交換を行
う。演算処理装置100は、前記端子を介して一般的に
20nS程度の時間で、1回のメモリアクセスサイクル
を実行し、64ビットのデータをメインメモリ200か
ら転送させる。ここで、キャッシュメモリ107のライ
ンサイズを16バイトとするとキャッシュメモリの1ラ
インを入れ替えるのに2回のバスサイクルを必要とす
る。
【0014】メインメモリ200は、32ビットのアド
レス端子113と256ビットのデータ端子114を有
し、一度に256ビットのデータを読み出すことができ
るが、前記アドレス端子にアドレスを受け取ってから、
前記データ端子にデータを出力するまで100nSから
300nS程度の一定の待ち時間を必要とする。
レス端子113と256ビットのデータ端子114を有
し、一度に256ビットのデータを読み出すことができ
るが、前記アドレス端子にアドレスを受け取ってから、
前記データ端子にデータを出力するまで100nSから
300nS程度の一定の待ち時間を必要とする。
【0015】メインメモリ200と演算処理装置100
とを接続するためには、演算処理装置100がメインメ
モリ200をアクセスに行った場合に、メインメモリ2
00の待ち時間に合わせて、演算処理装置100の演算
処理を待たせることが必要になる。もちろん、演算処理
装置100からの要求に従ってメインメモリ200をア
クセスし、毎アクセスごとに待ち時間を挿入すると演算
処理装置100の性能が下がってしまうことになる。こ
の性能低下を防止すること、換言すればメインメモリ2
00に対する演算処理装置100の性能を向上させるの
がプリフェッチバッファ装置である。
とを接続するためには、演算処理装置100がメインメ
モリ200をアクセスに行った場合に、メインメモリ2
00の待ち時間に合わせて、演算処理装置100の演算
処理を待たせることが必要になる。もちろん、演算処理
装置100からの要求に従ってメインメモリ200をア
クセスし、毎アクセスごとに待ち時間を挿入すると演算
処理装置100の性能が下がってしまうことになる。こ
の性能低下を防止すること、換言すればメインメモリ2
00に対する演算処理装置100の性能を向上させるの
がプリフェッチバッファ装置である。
【0016】プリフェッチバッファ装置のプリフェッチ
バッファ部は、上述したように、2エントリのプリフェ
ッチバッファ121,122を有する。プリフェッチバ
ッファ121,122の各エントリをそれぞれBANK
−A、BANK−Bと呼ぶこととする。プリフェッチバ
ッファ部は、BANK−A中に、32バイトのバッファ
メモリ118,119と、17ビットのアドレス比較器
115と、バッファメモリに記憶されているデータのア
ドレス[31:5](アドレスのMSBをビット31と
し、LSBをビット0としたとき、アドレスのビット3
1からビット5まで)がタグアドレスとして記憶される
タグアドレス記憶部116と、プリフェッチバッファ1
21,122に記憶されているデータが有効であること
を示すバリッドフラグを記憶するバリッドフラグ記憶部
117とを有する。勿論BANK−Bについても同様
で、32バイトのバッファメモリ126,127と、ア
ドレス比較器123と、タグアドレス記憶部124と、
バリッドフラグ記憶部125とを有する。
バッファ部は、上述したように、2エントリのプリフェ
ッチバッファ121,122を有する。プリフェッチバ
ッファ121,122の各エントリをそれぞれBANK
−A、BANK−Bと呼ぶこととする。プリフェッチバ
ッファ部は、BANK−A中に、32バイトのバッファ
メモリ118,119と、17ビットのアドレス比較器
115と、バッファメモリに記憶されているデータのア
ドレス[31:5](アドレスのMSBをビット31と
し、LSBをビット0としたとき、アドレスのビット3
1からビット5まで)がタグアドレスとして記憶される
タグアドレス記憶部116と、プリフェッチバッファ1
21,122に記憶されているデータが有効であること
を示すバリッドフラグを記憶するバリッドフラグ記憶部
117とを有する。勿論BANK−Bについても同様
で、32バイトのバッファメモリ126,127と、ア
ドレス比較器123と、タグアドレス記憶部124と、
バリッドフラグ記憶部125とを有する。
【0017】プリフェッチバッファ121,122は、
それぞれ対となっているバッファメモリ118,119
とバッファメモリ126,127とを含んでいる。各バ
ッファメモリのサイズは16バイトであるから、各プリ
フェッチバッファ121,122は、演算処理装置10
0が一度にアクセスするデータのサイズの2倍の32バ
イトのサイズを有することとなる。
それぞれ対となっているバッファメモリ118,119
とバッファメモリ126,127とを含んでいる。各バ
ッファメモリのサイズは16バイトであるから、各プリ
フェッチバッファ121,122は、演算処理装置10
0が一度にアクセスするデータのサイズの2倍の32バ
イトのサイズを有することとなる。
【0018】バッファメモリ118,119のデータ
は、セレクタ142の選択により一方が選択され、16
バイト単位で取り扱われる。同様にバッファメモリ12
6,127のデータは、セレクタ143の選択により一
方が選択され、16バイト単位で取り扱われる。セレク
タ142,143は、演算処理装置の発生する前記実行
アドレスのビット[4](LSBから5番目のビット)
を用い、セレクタ141を介して選択される。
は、セレクタ142の選択により一方が選択され、16
バイト単位で取り扱われる。同様にバッファメモリ12
6,127のデータは、セレクタ143の選択により一
方が選択され、16バイト単位で取り扱われる。セレク
タ142,143は、演算処理装置の発生する前記実行
アドレスのビット[4](LSBから5番目のビット)
を用い、セレクタ141を介して選択される。
【0019】書き込みは例えば、対となっているバッフ
ァメモリ118,119に同時におこなえるようになっ
ている。バッファメモリ118,119には、データ
が、32バイトアラインで記憶され、データのLSB側
はバッファメモリ118に、データのMSB側はバッフ
ァメモリ119にそれぞれ記憶される。バッファメモリ
126,127についても同様である。このように構成
することにより、メインメモリ200がバンド幅が大き
いがレイテンシタイムも大きい構成となっていても、演
算処理装置から見ると、メインメモリ200が自己の扱
うバンド幅で扱うことができ、レイテンシタイムの小さ
いメインメモリに見える。
ァメモリ118,119に同時におこなえるようになっ
ている。バッファメモリ118,119には、データ
が、32バイトアラインで記憶され、データのLSB側
はバッファメモリ118に、データのMSB側はバッフ
ァメモリ119にそれぞれ記憶される。バッファメモリ
126,127についても同様である。このように構成
することにより、メインメモリ200がバンド幅が大き
いがレイテンシタイムも大きい構成となっていても、演
算処理装置から見ると、メインメモリ200が自己の扱
うバンド幅で扱うことができ、レイテンシタイムの小さ
いメインメモリに見える。
【0020】演算処理装置100の演算部101が、メ
モリアクセス要求を出す場合、アドレスバス端子105
にアドレスが出力される。前記アドレスは、BANK−
AおよびBANK−Bのアドレス比較器115,123
の一方の入力端に入力される。アドレス比較器115,
123は、BANK−AおよびBANK−Bに記憶され
ているタグアドレス記憶部116,124のタグアドレ
スと、アドレスバス端子105からのアドレスとを比較
し、比較の結果で両者が一致しており、かつバリッドフ
ラグ記憶部117,125のバリッドフラグが1であれ
ば、アドレス比較器115,123の出力であるヒット
信号128,129を1として出力する。外部制御回路
120は、BANK−AまたはBANK−Bから1なる
ヒット信号であるHITA132またはHITB134
を受け付けると、1なるヒット信号を出力したBANK
−AまたはBANK−Bからのデータ出力を選択するよ
うにセレクタの制御信号であるBANKSEL131を
出力する。
モリアクセス要求を出す場合、アドレスバス端子105
にアドレスが出力される。前記アドレスは、BANK−
AおよびBANK−Bのアドレス比較器115,123
の一方の入力端に入力される。アドレス比較器115,
123は、BANK−AおよびBANK−Bに記憶され
ているタグアドレス記憶部116,124のタグアドレ
スと、アドレスバス端子105からのアドレスとを比較
し、比較の結果で両者が一致しており、かつバリッドフ
ラグ記憶部117,125のバリッドフラグが1であれ
ば、アドレス比較器115,123の出力であるヒット
信号128,129を1として出力する。外部制御回路
120は、BANK−AまたはBANK−Bから1なる
ヒット信号であるHITA132またはHITB134
を受け付けると、1なるヒット信号を出力したBANK
−AまたはBANK−Bからのデータ出力を選択するよ
うにセレクタの制御信号であるBANKSEL131を
出力する。
【0021】外部制御回路120は、演算処理装置のメ
モリアクセス要求にしたがって、プリフェッチバッファ
121,122のデータを更新する。これは、以下の手
順で行われる。演算処理装置のメモリアクセス要求が、
BANK−Aにヒットすると仮定する。この結果、HI
TA132が発生する。外部制御回路120は、このH
ITA132を受けて、後述する一定の条件を判定し
て、プリフェッチバッファのデータを更新するか否かを
決定する。演算処理装置のメモリアクセス要求がBAN
K−Aにヒットすると、外部制御回路は、アドレスセレ
クタ144により、BANK−Aのタグアドレス記憶部
116からのアドレスを選択する。
モリアクセス要求にしたがって、プリフェッチバッファ
121,122のデータを更新する。これは、以下の手
順で行われる。演算処理装置のメモリアクセス要求が、
BANK−Aにヒットすると仮定する。この結果、HI
TA132が発生する。外部制御回路120は、このH
ITA132を受けて、後述する一定の条件を判定し
て、プリフェッチバッファのデータを更新するか否かを
決定する。演算処理装置のメモリアクセス要求がBAN
K−Aにヒットすると、外部制御回路は、アドレスセレ
クタ144により、BANK−Aのタグアドレス記憶部
116からのアドレスを選択する。
【0022】このタグアドレス記憶部116には現在演
算処理装置がアクセスしているアドレスがはいってい
る。このアドレスに1を加えて現在BANK−Aに存在
するデータに続くデータのアドレスを生成し、このアド
レスをメインメモリをアクセスするアドレス端子113
に出力し、メインメモリ200をアクセスする。
算処理装置がアクセスしているアドレスがはいってい
る。このアドレスに1を加えて現在BANK−Aに存在
するデータに続くデータのアドレスを生成し、このアド
レスをメインメモリをアクセスするアドレス端子113
に出力し、メインメモリ200をアクセスする。
【0023】メインメモリ200は、プリフェッチバッ
ファ部から、アドレス端子113を通してアドレスを受
け、該当するアドレスのデータをデータ端子114を介
してデータ読み出しバス140に出力する。外部制御回
路120は、制御信号であるBA−BW135をアクテ
ィブにしてBANK−Bのバッファメモリ126,12
7にデータ読み出しバス140上のデータを書き込む。
ファ部から、アドレス端子113を通してアドレスを受
け、該当するアドレスのデータをデータ端子114を介
してデータ読み出しバス140に出力する。外部制御回
路120は、制御信号であるBA−BW135をアクテ
ィブにしてBANK−Bのバッファメモリ126,12
7にデータ読み出しバス140上のデータを書き込む。
【0024】以上の一連の動作で、BANK−Aがヒッ
トした場合に、BANK−Bのリプレイスが同時に行わ
れるシーケンスについて解説した。BANK−Bがヒッ
トした場合もBANK−Aのリプレイスが同様に行われ
る。
トした場合に、BANK−Bのリプレイスが同時に行わ
れるシーケンスについて解説した。BANK−Bがヒッ
トした場合もBANK−Aのリプレイスが同様に行われ
る。
【0025】次にリプレイスの条件について解説する。
勿論,演算処理装置の要求は、1バイトから16バイト
までの任意大きさのアクセスが考えられるが、各BAN
Kは、最低でもプロセッサからの2回分のアクセスを受
け付けるだけの容量を有している。そこで、例えば演算
処理装置のアクセスが、BANK−Aにヒットし、デー
タの下位アドレス側のバッファメモリ118のデータを
要求した場合には、上位アドレス側のバッファメモリ1
19のデータは、まだアクセスされずに残っている。演
算処理装置のアクセスは、連続したアドレスに発生する
ことが多いから、次のアクセスが始まる前にBANK−
Aのデータを入れ替えてしまうと、BANK−Aにプリ
フェッチしたデータを破棄してしまうことになる。この
ため、プリフェッチを以下の手順で制御する。
勿論,演算処理装置の要求は、1バイトから16バイト
までの任意大きさのアクセスが考えられるが、各BAN
Kは、最低でもプロセッサからの2回分のアクセスを受
け付けるだけの容量を有している。そこで、例えば演算
処理装置のアクセスが、BANK−Aにヒットし、デー
タの下位アドレス側のバッファメモリ118のデータを
要求した場合には、上位アドレス側のバッファメモリ1
19のデータは、まだアクセスされずに残っている。演
算処理装置のアクセスは、連続したアドレスに発生する
ことが多いから、次のアクセスが始まる前にBANK−
Aのデータを入れ替えてしまうと、BANK−Aにプリ
フェッチしたデータを破棄してしまうことになる。この
ため、プリフェッチを以下の手順で制御する。
【0026】外部制御回路120は、プリフェッチバッ
ファ部の動作に関する状態遷移を図2に示されるように
記憶している。図2において、符号505,506は内
部ステートを表わす。遷移502,503は、BANK
−AからのHITAが1で、演算処理装置からのデータ
ストローブ信号であるM−DS129が1になる条件で
発生する。また、BANK−BからのHITB134が
1で、演算処理装置からのM−DSが1になる条件で
は、遷移501,504が発生する。また、遷移501
または502が発生した場合にメインメモリ200をア
クセスすることと、バッファメモリのデータを更新する
こととを実行する。遷移501が発生した場合には、ア
ドレスセレクタ144を用いてBANK−Bのタグアド
レスを選択し、BANK−Aの入れ替えを行い、遷移5
02が発生した場合にはアドレスセレクタ144で、B
ANK−Aのタグアドレスを選択し、BANK−Bの入
れ替えを実行する。
ファ部の動作に関する状態遷移を図2に示されるように
記憶している。図2において、符号505,506は内
部ステートを表わす。遷移502,503は、BANK
−AからのHITAが1で、演算処理装置からのデータ
ストローブ信号であるM−DS129が1になる条件で
発生する。また、BANK−BからのHITB134が
1で、演算処理装置からのM−DSが1になる条件で
は、遷移501,504が発生する。また、遷移501
または502が発生した場合にメインメモリ200をア
クセスすることと、バッファメモリのデータを更新する
こととを実行する。遷移501が発生した場合には、ア
ドレスセレクタ144を用いてBANK−Bのタグアド
レスを選択し、BANK−Aの入れ替えを行い、遷移5
02が発生した場合にはアドレスセレクタ144で、B
ANK−Aのタグアドレスを選択し、BANK−Bの入
れ替えを実行する。
【0027】
【0028】
【発明の効果】本発明のプリフェッチバッファ装置は、
キャッシュメモリ付きの演算処理装置に、メインメモリ
を接続しようとする場合に、その両者の間に接続するの
が最も効果的である。
キャッシュメモリ付きの演算処理装置に、メインメモリ
を接続しようとする場合に、その両者の間に接続するの
が最も効果的である。
【0029】演算処理装置内部に集積するのであれば、
より効率の良い方法で、プリフェッチバッファ装置を制
御することができる。しかし、通常の集積化された回路
で構成された演算処理装置は、外部にプリフェッチバッ
ファ装置を接続するのは困難である。しかし本発明は、
集積された演算処理装置の外部にプリフェッチ装置を接
続することを可能にする。
より効率の良い方法で、プリフェッチバッファ装置を制
御することができる。しかし、通常の集積化された回路
で構成された演算処理装置は、外部にプリフェッチバッ
ファ装置を接続するのは困難である。しかし本発明は、
集積された演算処理装置の外部にプリフェッチ装置を接
続することを可能にする。
【0030】ここで、キャッシュ付演算処理装置に単な
るメインメモリを接続した場合と、両装置の間にプリフ
ェッチ装置を接続した場合の性能を比較する。キャッシ
ュ付演算処理装置が、バスサイクル20nSでデータを
要求し、メインメモリが、データを返すのに100nS
必要であると仮定する。
るメインメモリを接続した場合と、両装置の間にプリフ
ェッチ装置を接続した場合の性能を比較する。キャッシ
ュ付演算処理装置が、バスサイクル20nSでデータを
要求し、メインメモリが、データを返すのに100nS
必要であると仮定する。
【0031】プリフェッチバッファを挿入しない場合で
は、メインメモリサイクルは、5バスサイクルを必要と
するが、プリフェッチバッファを挿入し、かつ、プリフ
ェッチバッファに当った場合は、1バスサイクルでデー
タを返すことができる。勿論プリフェッチ装置は、はず
れることもあるため、この仮定は一概には言い切れな
い。しかし、はずれた場合でも、プリフェッチバッファ
を挿入した場合と変わらないため、結局性能は改善され
る。
は、メインメモリサイクルは、5バスサイクルを必要と
するが、プリフェッチバッファを挿入し、かつ、プリフ
ェッチバッファに当った場合は、1バスサイクルでデー
タを返すことができる。勿論プリフェッチ装置は、はず
れることもあるため、この仮定は一概には言い切れな
い。しかし、はずれた場合でも、プリフェッチバッファ
を挿入した場合と変わらないため、結局性能は改善され
る。
【図1】本発明のプリフェッチバッファ装置の一実施例
を示すブロック図である。
を示すブロック図である。
【図2】図1の実施例の動作を示す状態遷移図である。
【図3】従来例を示すブロック図である。
【図4】ダイレクトマップ方式が適用されたキャッシュ
メモリを説明するためのブロック図である。
メモリを説明するためのブロック図である。
100 演算処理装置 101,201 演算部 102,202 アドレスバス 103,203 データバス 104,219 制御回路 105 アドレスバス端子 106 データバス端子 107,207,300 キャッシュメモリ 108,116,124,208,304 タグアド
レス記憶部 109,117,125,209,305 バリッド
フラグ記憶部 110,210,306 データ記憶部 111,211 デコーダ 112,212,307 比較器113 アドレス端子 114 データ端子 115,123 アドレス比較器 118,126 16バイトバッファメモリ(下位) 119,127 16バイトバッファメモリ(上位) 120 外部制御回路 121 プリフェッチバッファ(BANK−A) 122 プリフェッチバッファ(BANK−B) 128 レディ信号(M−RDY) 129 データストローブ信号(M−DS) 130 リードライト信号(M−R/W) 131 バンクセレクト信号(BANKSEL) 132 バンクAヒット信号(HITA) 133 バンクA書き込み制御信号(BA−AW) 134 バンクBヒット信号(HITB) 135 バンクB書き込み制御信号(BA−BW) 136 プリフェッチアドレス選択制御信号(BA−
SEL) 137 アドレスセレクト制御信号(ADR−SE
L) 138 メモリ読み出し制御信号(RD) 139 メモリ書き込み制御信号(WE) 140 データ読み出しバス 141,142,143 データセレクタ144 アドレスセレクタ 200,215 メインメモリ204,205,206 制御信号 301 MSB側部分アドレス 302 中央部分アドレス 303 LSB側部分アドレス
レス記憶部 109,117,125,209,305 バリッド
フラグ記憶部 110,210,306 データ記憶部 111,211 デコーダ 112,212,307 比較器113 アドレス端子 114 データ端子 115,123 アドレス比較器 118,126 16バイトバッファメモリ(下位) 119,127 16バイトバッファメモリ(上位) 120 外部制御回路 121 プリフェッチバッファ(BANK−A) 122 プリフェッチバッファ(BANK−B) 128 レディ信号(M−RDY) 129 データストローブ信号(M−DS) 130 リードライト信号(M−R/W) 131 バンクセレクト信号(BANKSEL) 132 バンクAヒット信号(HITA) 133 バンクA書き込み制御信号(BA−AW) 134 バンクBヒット信号(HITB) 135 バンクB書き込み制御信号(BA−BW) 136 プリフェッチアドレス選択制御信号(BA−
SEL) 137 アドレスセレクト制御信号(ADR−SE
L) 138 メモリ読み出し制御信号(RD) 139 メモリ書き込み制御信号(WE) 140 データ読み出しバス 141,142,143 データセレクタ144 アドレスセレクタ 200,215 メインメモリ204,205,206 制御信号 301 MSB側部分アドレス 302 中央部分アドレス 303 LSB側部分アドレス
Claims (4)
- 【請求項1】 メインメモリとキャッシュメモリ内蔵演
算処理装置の間に設けられ予め前記演算処理装置が必要
とする前記メインメモリのデータをプリフェッチしてお
くプリフェッチバッファ装置において、 それぞれ前記メインメモリから一度に読み出せるビット
数以下であって前記キャッシュメモリの2ライン分以上
のビット数を有する第1及び第2のエントリを設け、 前記第1のエントリがヒットしていない状態からヒット
状態に遷移したときに、前記第1のエントリに格納した
データに続くアドレスのデータを前記メインメモリから
読み出し、前記第2のエントリに書き込む ことを特徴と
するプリフェッチバッファ装置。 - 【請求項2】 前記第2のエントリがヒットしていない
状態からヒット状態に遷移したときに、前記第2のエン
トリに格納したデータに続くアドレスのデータを前記メ
インメモリから読み出し、前記第1のエントリに書き込
むことを特徴とする請求項1記載のプリフェッチバッフ
ァ装置。 - 【請求項3】 演算処理装置のメモリ要求信号にしたが
ってエントリの書込を制御する外部制御回路と、第1及
び第2のエントリそれぞれに、エントリの上位アドレス
を記憶するタグアドレス記憶部と、それぞれのエントリ
に記憶されているデータが有効であるか否かを示すバリ
ッドフラグ記憶部を設け、前記タグアドレス記憶部に記
憶されているアドレスと前記演算処理装置のアクセス要
求アドレスを比較し、両者が一致し、しかも、該当する
エントリのバリッドフラグが有効であるとき、該当する
エントリのヒット信号を前記外部制御回路に入力し、前
記外部制御回路は前記ヒット信号に応答して、残る片側
のエントリのデータ更新を指示することを特徴とする請
求項1または請求項2記載のブリフェッチバッファ装
置。 - 【請求項4】 前記エントリのどちらかのヒット信号が
アクティブになったとき、一致したエントリのエントリ
アドレスに所定数を加算してメインメモリのアドレスと
して出力し、残る片側のエントリのデータ更新を行うこ
とを特徴とする請求項3記載のプリフェッチバッファ装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6229949A JP2689920B2 (ja) | 1994-09-26 | 1994-09-26 | 演算処理システムに用いられるプリフェッチバッファ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6229949A JP2689920B2 (ja) | 1994-09-26 | 1994-09-26 | 演算処理システムに用いられるプリフェッチバッファ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0895855A JPH0895855A (ja) | 1996-04-12 |
JP2689920B2 true JP2689920B2 (ja) | 1997-12-10 |
Family
ID=16900247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6229949A Expired - Lifetime JP2689920B2 (ja) | 1994-09-26 | 1994-09-26 | 演算処理システムに用いられるプリフェッチバッファ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2689920B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006215799A (ja) * | 2005-02-03 | 2006-08-17 | Toshiba Corp | メモリコントローラ |
JP4643667B2 (ja) | 2008-03-01 | 2011-03-02 | 株式会社東芝 | メモリシステム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5039427A (ja) * | 1973-08-10 | 1975-04-11 | ||
JPS53134335A (en) * | 1977-04-28 | 1978-11-22 | Fujitsu Ltd | Memory control system |
JPH04369061A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | キャッシュメモリの制御方式 |
JP2881049B2 (ja) * | 1991-07-30 | 1999-04-12 | 株式会社日立製作所 | プリフェッチバッファ |
JPH06103169A (ja) * | 1992-09-18 | 1994-04-15 | Nec Corp | 中央演算処理装置のリードデータプリフェッチ機構 |
-
1994
- 1994-09-26 JP JP6229949A patent/JP2689920B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0895855A (ja) | 1996-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3577331B2 (ja) | キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法 | |
US5642494A (en) | Cache memory with reduced request-blocking | |
US6272597B1 (en) | Dual-ported, pipelined, two level cache system | |
US5210842A (en) | Data processor having instruction varied set associative cache boundary accessing | |
JP2646854B2 (ja) | マイクロプロセッサ | |
JP3987577B2 (ja) | システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置 | |
US6718441B2 (en) | Method to prefetch data from system memory using a bus interface unit | |
US6934811B2 (en) | Microprocessor having a low-power cache memory | |
JP2717674B2 (ja) | バスマスタ | |
US5535350A (en) | Cache memory unit including a replacement address register and address update circuitry for reduced cache overhead | |
JPH0345407B2 (ja) | ||
US6993633B1 (en) | Computer system utilizing speculative read requests to cache memory | |
US6321302B1 (en) | Stream read buffer for efficient interface with block oriented devices | |
US6718439B1 (en) | Cache memory and method of operation | |
US6044447A (en) | Method and apparatus for communicating translation command information in a multithreaded environment | |
JP2838210B2 (ja) | バスマスタ | |
US5717894A (en) | Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system | |
US7596661B2 (en) | Processing modules with multilevel cache architecture | |
US6976130B2 (en) | Cache controller unit architecture and applied method | |
JP2689920B2 (ja) | 演算処理システムに用いられるプリフェッチバッファ装置 | |
US20040042278A1 (en) | Prefetch buffer | |
US6480940B1 (en) | Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module | |
US5749092A (en) | Method and apparatus for using a direct memory access unit and a data cache unit in a microprocessor | |
JP2580263B2 (ja) | バッファ記憶装置 | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19970311 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970729 |