JPH06236321A - Cpuへのデータを取り出す方法及びキャッシュメモリ制御装置 - Google Patents
Cpuへのデータを取り出す方法及びキャッシュメモリ制御装置Info
- Publication number
- JPH06236321A JPH06236321A JP4304487A JP30448792A JPH06236321A JP H06236321 A JPH06236321 A JP H06236321A JP 4304487 A JP4304487 A JP 4304487A JP 30448792 A JP30448792 A JP 30448792A JP H06236321 A JPH06236321 A JP H06236321A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cpu
- cache
- data
- main 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.)
- Pending
Links
Classifications
-
- 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
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 CPUへデータをCPUアイドル時間がさら
に短縮するように取り出すこと。 【構成】 本発明方法及びキャッシュメモリ制御装置
は、データ語がマッピングされているメモリブロックフ
レームのメモリブロックオフセットに対応する記憶場所
に記憶されている場合、先のキャッシュミスによって開
始されたキャッシュメモリ充填が依然として進行中であ
っても、CPUにより取り出すべきデータ語をキャッシ
ュ−主メモリ階層から検索させ、CPUへ戻させる。
に短縮するように取り出すこと。 【構成】 本発明方法及びキャッシュメモリ制御装置
は、データ語がマッピングされているメモリブロックフ
レームのメモリブロックオフセットに対応する記憶場所
に記憶されている場合、先のキャッシュミスによって開
始されたキャッシュメモリ充填が依然として進行中であ
っても、CPUにより取り出すべきデータ語をキャッシ
ュ−主メモリ階層から検索させ、CPUへ戻させる。
Description
【0001】
【産業上の利用分野】本発明はコンピュータシステムの
分野に関する。特に、本発明は、CPUアイドル時間を
さらに短縮するようにCPUへのデータを取り出す方法
及びキャッシュメモリ制御装置に関する。
分野に関する。特に、本発明は、CPUアイドル時間を
さらに短縮するようにCPUへのデータを取り出す方法
及びキャッシュメモリ制御装置に関する。
【0002】
【従来の技術】通常、コンピュータシステムの中央処理
装置(CPU)は主メモリより相当に速い速度で動作す
る。CPUが主メモリからのデータ又は命令を待機して
いる間に余りに頻繁にアイドル状態になるのを避けるた
めに、多くの場合、主メモリとCPUとの間でデータと
命令をバッファする主メモリより高速で動作できるキャ
ッシュメモリを使用する。主メモリの記憶場所にあるデ
ータと命令はキャッシュメモリにブロックフレームの形
態でマッピングされる。各ブロックフレームは、複数の
データと命令を記憶する複数の記憶場所に対応する複数
のブロックオフセットを含む。CPU全体の性能をさら
に向上させるために、コンピュータシステムの中にはデ
ータ用と命令用の別個のキャッシュメモリを採用してい
るものがある。
装置(CPU)は主メモリより相当に速い速度で動作す
る。CPUが主メモリからのデータ又は命令を待機して
いる間に余りに頻繁にアイドル状態になるのを避けるた
めに、多くの場合、主メモリとCPUとの間でデータと
命令をバッファする主メモリより高速で動作できるキャ
ッシュメモリを使用する。主メモリの記憶場所にあるデ
ータと命令はキャッシュメモリにブロックフレームの形
態でマッピングされる。各ブロックフレームは、複数の
データと命令を記憶する複数の記憶場所に対応する複数
のブロックオフセットを含む。CPU全体の性能をさら
に向上させるために、コンピュータシステムの中にはデ
ータ用と命令用の別個のキャッシュメモリを採用してい
るものがある。
【0003】ところが、別個のキャッシュメモリを使用
しても問題が完全に解決されるわけではない。キャッシ
ュ読取りミスが起こったとき、すなわち、CPUが要求
したデータ又は命令がキャッシュメモリに入っていない
ときには、キャッシュメモリはそのデータ又は命令を主
メモリから検索しなければならない。それを実行するた
めに、通常は要求されたデータ又は命令を含むデータ又
は命令のブロックフレーム全体を検索する。そして、検
索が完了するまでCPUはアイドル状態になる。キャッ
シュの性能に関わるその他の問題や、改善の技法につい
ては、J.L.Hennessy及びD.A.Patt
ersonのComputer Architectu
re−A Quantitative Approac
h,454〜461ページ(Morgan Kanfm
ann,1990年刊)を参照。
しても問題が完全に解決されるわけではない。キャッシ
ュ読取りミスが起こったとき、すなわち、CPUが要求
したデータ又は命令がキャッシュメモリに入っていない
ときには、キャッシュメモリはそのデータ又は命令を主
メモリから検索しなければならない。それを実行するた
めに、通常は要求されたデータ又は命令を含むデータ又
は命令のブロックフレーム全体を検索する。そして、検
索が完了するまでCPUはアイドル状態になる。キャッ
シュの性能に関わるその他の問題や、改善の技法につい
ては、J.L.Hennessy及びD.A.Patt
ersonのComputer Architectu
re−A Quantitative Approac
h,454〜461ページ(Morgan Kanfm
ann,1990年刊)を参照。
【0004】キャッシュメモリを置き換え用ブロックフ
レームで充填するのに要する時間の量はブロックの大き
さと、キャッシュメモリ−主メモリ階層の転送速度とに
よって決まる。たとえば、ブロックの大きさが8語であ
り且つ主メモリの速度が3クロックサイクルごとに2つ
のブロックオフセットという速度であれば、キャッシュ
メモリを置き換え用ブロックフレームで充填するのに1
1のクロックサイクルを要する。ブロックフレームの大
きさを縮小しても、あるいは、キャッシュ読取りミス時
にブロックの一部を充填しても、将来、キャッシュ読取
りミスが起こる確率は高くなるので、CPUアイドル時
間は必ずしも短くならない。
レームで充填するのに要する時間の量はブロックの大き
さと、キャッシュメモリ−主メモリ階層の転送速度とに
よって決まる。たとえば、ブロックの大きさが8語であ
り且つ主メモリの速度が3クロックサイクルごとに2つ
のブロックオフセットという速度であれば、キャッシュ
メモリを置き換え用ブロックフレームで充填するのに1
1のクロックサイクルを要する。ブロックフレームの大
きさを縮小しても、あるいは、キャッシュ読取りミス時
にブロックの一部を充填しても、将来、キャッシュ読取
りミスが起こる確率は高くなるので、CPUアイドル時
間は必ずしも短くならない。
【0005】キャッシュ読取りミスが起こったときにキ
ャッシュメモリを待機するCPUアイドル時間の量をで
きる限り短くするために、様々な方法が使用されてい
る。一般に実施されている方法の1つは早期再始動であ
る。すなわち、要求したデータ又は命令が到着したなら
ば、ブロック全体の書込みが完了するのを待たずに直ち
にそのデータ又は命令をCPUへ送信するのである。従
って、CPUは置き換え用ブロックフレームの残る部分
が書込まれている間にその実行を再開できるであろう。
ャッシュメモリを待機するCPUアイドル時間の量をで
きる限り短くするために、様々な方法が使用されてい
る。一般に実施されている方法の1つは早期再始動であ
る。すなわち、要求したデータ又は命令が到着したなら
ば、ブロック全体の書込みが完了するのを待たずに直ち
にそのデータ又は命令をCPUへ送信するのである。従
って、CPUは置き換え用ブロックフレームの残る部分
が書込まれている間にその実行を再開できるであろう。
【0006】早期再始動方式をさらに改良したのが順序
無視取り出しである。これは、置き換え用ブロックフレ
ーム中の要求されているデータ又は命令の前にある全て
のデータ又は命令を飛び越して、まず最初に要求された
データ又は命令を検索することを主メモリに要求すると
いうものである。早期再始動と同様に、データ又は命令
を検索したならば、直ちにそのデータ又は命令をCPU
へ送信する。そのため、CPUは置き換え用ブロックフ
レームの残る部分が検索されている間に同じように実行
を再開できるであろう。要求されたデータ又は命令を検
索した後、主メモリは要求されたデータ又は命令の後に
位置するデータと命令から始めて置き換え用ブロックフ
レーム中の残りのデータと命令を検索し続け、ブロック
フレームの始めに戻って、ブロックフレームの終わりに
到達するまで先に飛び越したデータ又は命令を検索す
る。このように、CPUは、第1のデータ又は命令が主
メモリから検索されると直ちに実行を再開することがで
きる。
無視取り出しである。これは、置き換え用ブロックフレ
ーム中の要求されているデータ又は命令の前にある全て
のデータ又は命令を飛び越して、まず最初に要求された
データ又は命令を検索することを主メモリに要求すると
いうものである。早期再始動と同様に、データ又は命令
を検索したならば、直ちにそのデータ又は命令をCPU
へ送信する。そのため、CPUは置き換え用ブロックフ
レームの残る部分が検索されている間に同じように実行
を再開できるであろう。要求されたデータ又は命令を検
索した後、主メモリは要求されたデータ又は命令の後に
位置するデータと命令から始めて置き換え用ブロックフ
レーム中の残りのデータと命令を検索し続け、ブロック
フレームの始めに戻って、ブロックフレームの終わりに
到達するまで先に飛び越したデータ又は命令を検索す
る。このように、CPUは、第1のデータ又は命令が主
メモリから検索されると直ちに実行を再開することがで
きる。
【0007】ところが、置き換え用ブロックフレームの
残り部分を充填しようとしている間にCPUからの次の
要求を処理するという動作は急速に複雑さを増すので、
CPUはデータ又は命令の実行後に再びアイドル状態に
なるのが普通であり、残る検索が完了するのを待機す
る。CPUにより後続して要求されたデータ又は命令が
既にキャッシュメモリにあるか、あるいは検索中の残る
データ又は命令の一部である場合であっても、CPUは
アイドル状態になり、待機する。従って、置き換え用ブ
ロックフレームの残る部分が書込まれる前にCPUが実
行を完了しそうである場合には、早期再始動や順序無視
取り出しの利点は限定されてしまう。このような事態
は、典型的な命令を実行するのに要するクロックサイク
ルの数が少ないコンピュータシステム、たとえば、RI
SCコンピュータにおいて特に起こりやすい。
残り部分を充填しようとしている間にCPUからの次の
要求を処理するという動作は急速に複雑さを増すので、
CPUはデータ又は命令の実行後に再びアイドル状態に
なるのが普通であり、残る検索が完了するのを待機す
る。CPUにより後続して要求されたデータ又は命令が
既にキャッシュメモリにあるか、あるいは検索中の残る
データ又は命令の一部である場合であっても、CPUは
アイドル状態になり、待機する。従って、置き換え用ブ
ロックフレームの残る部分が書込まれる前にCPUが実
行を完了しそうである場合には、早期再始動や順序無視
取り出しの利点は限定されてしまう。このような事態
は、典型的な命令を実行するのに要するクロックサイク
ルの数が少ないコンピュータシステム、たとえば、RI
SCコンピュータにおいて特に起こりやすい。
【0008】キャッシュメモリは通常は主メモリより高
速で動作するので、CPUがキャッシュメモリを待機し
ている間にキャッシュメモリが主メモリからデータ又は
命令が転送されるのを待機しているデッドサイクルが存
在する。デッドサイクルの数もブロックフレームの大き
さと、キャッシュメモリ−主メモリ階層の転送速度とに
よって決まる。先に挙げた例では、1つのブロックフレ
ームを書込むごとに3つのデッドサイクル、すなわち、
3クロックサイクルごとに1つのデッドサイクルが現れ
る。従って、キャッシュメモリに入っているデータ又は
命令に対する後の要求をそれらのデッドサイクルの間に
満たすことができるので、CPUアイドル時間はさらに
短縮される。問題は、追加ハードウェアに大きなコスト
を費やさずに、そのデータ又は命令がキャッシュメモリ
にあるのを知ることと、キャッシュメモリからのデータ
又は命令の読取りをそれらのデッドサイクルに同期させ
ることである。
速で動作するので、CPUがキャッシュメモリを待機し
ている間にキャッシュメモリが主メモリからデータ又は
命令が転送されるのを待機しているデッドサイクルが存
在する。デッドサイクルの数もブロックフレームの大き
さと、キャッシュメモリ−主メモリ階層の転送速度とに
よって決まる。先に挙げた例では、1つのブロックフレ
ームを書込むごとに3つのデッドサイクル、すなわち、
3クロックサイクルごとに1つのデッドサイクルが現れ
る。従って、キャッシュメモリに入っているデータ又は
命令に対する後の要求をそれらのデッドサイクルの間に
満たすことができるので、CPUアイドル時間はさらに
短縮される。問題は、追加ハードウェアに大きなコスト
を費やさずに、そのデータ又は命令がキャッシュメモリ
にあるのを知ることと、キャッシュメモリからのデータ
又は命令の読取りをそれらのデッドサイクルに同期させ
ることである。
【0009】同様に、主メモリから検索されている途中
のデータ又は命令に対する後続する要求を満たすときに
問題となるのは、追加ハードウェアに大きなコストを費
やさずに、データ又は命令が検索される時点を知ること
と、そのデータ又は命令のCPUへの直接転送をその検
索と同期させることである。以下に説明する通り、本発
明は従来の技術の欠点を克服し、CPUのためのデータ
をCPUアイドル時点をさらに短縮させるように取り出
す方法及びキャッシュメモリ制御装置を提供する。
のデータ又は命令に対する後続する要求を満たすときに
問題となるのは、追加ハードウェアに大きなコストを費
やさずに、データ又は命令が検索される時点を知ること
と、そのデータ又は命令のCPUへの直接転送をその検
索と同期させることである。以下に説明する通り、本発
明は従来の技術の欠点を克服し、CPUのためのデータ
をCPUアイドル時点をさらに短縮させるように取り出
す方法及びキャッシュメモリ制御装置を提供する。
【0010】
【発明が解決しようとする課題】従って、本発明の目的
は、中央処理装置(CPU)へのデータをCPUアイド
ル時間をさらに短縮させるように取り出す方法及びキャ
ッシュメモリ制御装置を提供することである。本発明の
他の目的は、取り出すべきデータが現在マッピングされ
ているメモリブロックフレームの一部である場合に、C
PUをキャッシュメモリ充填の完了を待機するアイドル
状態にとどまらせずに、CPUにより取り出すべきデー
タをキャッシュメモリ充填中に検索し、戻すことであ
る。
は、中央処理装置(CPU)へのデータをCPUアイド
ル時間をさらに短縮させるように取り出す方法及びキャ
ッシュメモリ制御装置を提供することである。本発明の
他の目的は、取り出すべきデータが現在マッピングされ
ているメモリブロックフレームの一部である場合に、C
PUをキャッシュメモリ充填の完了を待機するアイドル
状態にとどまらせずに、CPUにより取り出すべきデー
タをキャッシュメモリ充填中に検索し、戻すことであ
る。
【0011】
【課題を解決するための手段】本発明では、CPUがキ
ャッシュメモリ充填中にデータを取り出すときに、取り
出すべきデータが現在充填されているメモリブロックフ
レームの一部である場合に、データがキャッシュメモリ
に書込まれていなければ、データをキャッシュメモリへ
の書込みと同時に検索して戻すが、書込まれていれば、
データは既にキャッシュメモリに書込まれているので、
データを次のデッドサイクルで検索してCPUに戻す。
ャッシュメモリ充填中にデータを取り出すときに、取り
出すべきデータが現在充填されているメモリブロックフ
レームの一部である場合に、データがキャッシュメモリ
に書込まれていなければ、データをキャッシュメモリへ
の書込みと同時に検索して戻すが、書込まれていれば、
データは既にキャッシュメモリに書込まれているので、
データを次のデッドサイクルで検索してCPUに戻す。
【0012】制御回路は、キャッシュメモリ充填が進行
中であるか否かを判定し、キャッシュメモリ充填が進行
中であれば、取り出すべきデータが充填中のメモリブロ
ックフレームの一部であるか否かを判定し、それらがメ
モリブロックフレームの一部であれば、データが既に書
込まれているか否かを判定し、データがまだ書込まれて
いなければ、データを次に書込むべきであるか否かを判
定するために使用される。
中であるか否かを判定し、キャッシュメモリ充填が進行
中であれば、取り出すべきデータが充填中のメモリブロ
ックフレームの一部であるか否かを判定し、それらがメ
モリブロックフレームの一部であれば、データが既に書
込まれているか否かを判定し、データがまだ書込まれて
いなければ、データを次に書込むべきであるか否かを判
定するために使用される。
【0013】複数の充填レジスタは、現在マッピング中
であるメモリブロックフレームと、現在マッピング中で
あるメモリブロックのメモリブロックオフセットと、マ
ッピング中であるメモリブロックフレームのマッピング
すべき次のメモリブロックオフセットとを追跡し、それ
により、充填レジスタと関連して制御回路が上記の判定
を実行できるようにするために使用される。
であるメモリブロックフレームと、現在マッピング中で
あるメモリブロックのメモリブロックオフセットと、マ
ッピング中であるメモリブロックフレームのマッピング
すべき次のメモリブロックオフセットとを追跡し、それ
により、充填レジスタと関連して制御回路が上記の判定
を実行できるようにするために使用される。
【0014】上記の判定の結果に基づいて、制御回路は
適切な信号を適切な時点でキャッシュメモリと、主メモ
リと、CPUとへ送信し、それにより、所望の通りにデ
ータを取り出させ、CPUに戻させる。制御回路はその
内部制御状態を使用して適切なタイミングを検出する。
本発明の目的、特徴及び利点は、図面と関連させた以下
の本発明の好ましい実施例の詳細な説明から明白になる
であろう。
適切な信号を適切な時点でキャッシュメモリと、主メモ
リと、CPUとへ送信し、それにより、所望の通りにデ
ータを取り出させ、CPUに戻させる。制御回路はその
内部制御状態を使用して適切なタイミングを検出する。
本発明の目的、特徴及び利点は、図面と関連させた以下
の本発明の好ましい実施例の詳細な説明から明白になる
であろう。
【0015】
【実施例】中央処理装置(CPU)へデータを取り出
す、CPUアイドル時間をさらに短縮するような方法及
びキャッシュメモリ制御装置を開示する。以下の説明
中、本発明を完全に理解させるために、説明の便宜上、
特定の数、材料及び構成を記載するが、そのような特定
の詳細な事項がなくとも本発明を実施しうることは当業
者には明白であろう。また、場合によっては、本発明を
無用にわかりにくくしないために、周知のシステムを概
略図又はブロック線図の形態で示すことがある。
す、CPUアイドル時間をさらに短縮するような方法及
びキャッシュメモリ制御装置を開示する。以下の説明
中、本発明を完全に理解させるために、説明の便宜上、
特定の数、材料及び構成を記載するが、そのような特定
の詳細な事項がなくとも本発明を実施しうることは当業
者には明白であろう。また、場合によっては、本発明を
無用にわかりにくくしないために、周知のシステムを概
略図又はブロック線図の形態で示すことがある。
【0016】そこで、図1を参照すると、CPUアイド
ル時間をさらに短縮する本発明のキャッシュメモリ制御
装置の好ましい実施例を表わすブロック線図が示されて
いる。キャッシュメモリ制御装置(CPU)20は、中
央処理装置(CPU)40と、キャッシュメモリ50
と、早期再始動及び順序無視取り出しの能力を備えた主
メモリ60とを具備する典型的なコンピュータシステム
10に関連して示されている。
ル時間をさらに短縮する本発明のキャッシュメモリ制御
装置の好ましい実施例を表わすブロック線図が示されて
いる。キャッシュメモリ制御装置(CPU)20は、中
央処理装置(CPU)40と、キャッシュメモリ50
と、早期再始動及び順序無視取り出しの能力を備えた主
メモリ60とを具備する典型的なコンピュータシステム
10に関連して示されている。
【0017】主メモリ60は、複数のデータ語を記憶す
る複数の記憶場所(図示せず)を有する。記憶場所は複
数のメモリブロックフレームとして編成されており、各
メモリブロックフレームはn1 個の記憶場所に対応する
n1 個のメモリブロックオフセットを有する。各記憶場
所は、複数の順序付けられたビットを有するメモリアド
レスによって参照され、その上位のビットはメモリブロ
ックフレームを参照し、下位ビットはメモリブロックオ
フセットを参照する。
る複数の記憶場所(図示せず)を有する。記憶場所は複
数のメモリブロックフレームとして編成されており、各
メモリブロックフレームはn1 個の記憶場所に対応する
n1 個のメモリブロックオフセットを有する。各記憶場
所は、複数の順序付けられたビットを有するメモリアド
レスによって参照され、その上位のビットはメモリブロ
ックフレームを参照し、下位ビットはメモリブロックオ
フセットを参照する。
【0018】キャッシュメモリ50は複数のキャッシュ
記憶場所(図示せず)を有する。キャッシュ記憶場所
は、メモリブロックフレームの中の少なくとも1つをマ
ッピングするための複数のキャッシュフレームとして編
成されている。それぞれのキャッシュフレームは、マッ
ピングしているメモリブロックフレームのn1 個のメモ
リブロックオフセットをマッピングするためのn1 個の
キャッシュオフセットと、その特定のキャッシュフレー
ムによりマッピングされているメモリブロックフレーム
を指示するキャッシュタグとを含む。各キャッシュ記憶
場所は複数の順序付けられたビットを有するキャッシュ
アドレスにより参照され、その上位ビットはキャッシュ
フレームを参照し、下位ビットはキャッシュオフセット
を参照する。
記憶場所(図示せず)を有する。キャッシュ記憶場所
は、メモリブロックフレームの中の少なくとも1つをマ
ッピングするための複数のキャッシュフレームとして編
成されている。それぞれのキャッシュフレームは、マッ
ピングしているメモリブロックフレームのn1 個のメモ
リブロックオフセットをマッピングするためのn1 個の
キャッシュオフセットと、その特定のキャッシュフレー
ムによりマッピングされているメモリブロックフレーム
を指示するキャッシュタグとを含む。各キャッシュ記憶
場所は複数の順序付けられたビットを有するキャッシュ
アドレスにより参照され、その上位ビットはキャッシュ
フレームを参照し、下位ビットはキャッシュオフセット
を参照する。
【0019】各メモリブロックフレームは、そのフレー
ムを参照するメモリアドレスと、キャッシュ読取りミス
を引き起こしたそのメモリブロックオフセットの1つと
を受信したために開始されたキャッシュメモリ充填の間
に、キャッシュフレームにマッピングされる。参照され
たメモリブロックフレームのメモリオフセットに対応す
る記憶場所に記憶されているデータ語は、マッピング中
のキャッシュフレームのマッピング中のキャッシュオフ
セットに対応するキャッシュ記憶場所に書込まれる。キ
ャッシュ読取りミスを引き起こしたメモリアドレスによ
り参照されたメモリオフセットに対応する記憶場所に記
憶されているデータ語は、第1にそのマッピングキャッ
シュ記憶場所に書込まれる(順序無視取り出し)。デー
タ語は、n3 回のクロックサイクルごとに、それぞれn
2 個のデータ語から成る複数のバーストとしてキャッシ
ュ記憶場所に書込まれる。尚、n1 はn2 で割り切れる
数である。その結果、キャッシュメモリ充填のたびに、
n3 回のクロックサイクルごとにn4 回のデッドサイク
ルが生まれる。
ムを参照するメモリアドレスと、キャッシュ読取りミス
を引き起こしたそのメモリブロックオフセットの1つと
を受信したために開始されたキャッシュメモリ充填の間
に、キャッシュフレームにマッピングされる。参照され
たメモリブロックフレームのメモリオフセットに対応す
る記憶場所に記憶されているデータ語は、マッピング中
のキャッシュフレームのマッピング中のキャッシュオフ
セットに対応するキャッシュ記憶場所に書込まれる。キ
ャッシュ読取りミスを引き起こしたメモリアドレスによ
り参照されたメモリオフセットに対応する記憶場所に記
憶されているデータ語は、第1にそのマッピングキャッ
シュ記憶場所に書込まれる(順序無視取り出し)。デー
タ語は、n3 回のクロックサイクルごとに、それぞれn
2 個のデータ語から成る複数のバーストとしてキャッシ
ュ記憶場所に書込まれる。尚、n1 はn2 で割り切れる
数である。その結果、キャッシュメモリ充填のたびに、
n3 回のクロックサイクルごとにn4 回のデッドサイク
ルが生まれる。
【0020】主メモリのメモリブロックフレーム及びメ
モリブロックオフセットのキャッシュメモリのキャッシ
ュフレーム及びキャッシュオフセットへのマッピングの
さらに詳細な説明については、J.L.Henness
y及びD.A.PattersonのComputer
Architecture−A Quantativ
e Approachの454〜461ページ(Mor
gan Kanfman,1990年刊)を参照。
モリブロックオフセットのキャッシュメモリのキャッシ
ュフレーム及びキャッシュオフセットへのマッピングの
さらに詳細な説明については、J.L.Henness
y及びD.A.PattersonのComputer
Architecture−A Quantativ
e Approachの454〜461ページ(Mor
gan Kanfman,1990年刊)を参照。
【0021】続けて図1を参照すると、CMC20はC
PU40に結合するアドレスレジスタ22と、複数の充
填レジスタ24〜30と、アドレスレジスタ22、充填
レジスタ24〜30、CPU40、キャッシュメモリ5
0及び主メモリ60に結合する制御回路とから構成され
ている。
PU40に結合するアドレスレジスタ22と、複数の充
填レジスタ24〜30と、アドレスレジスタ22、充填
レジスタ24〜30、CPU40、キャッシュメモリ5
0及び主メモリ60に結合する制御回路とから構成され
ている。
【0022】CPUに結合するアドレスレジスタ22
は、CPUから受信したメモリアドレスを記憶するため
のものである。メモリアドレスは、CPUにより取り出
されているデータ語を記憶する記憶場所を指示する。
は、CPUから受信したメモリアドレスを記憶するため
のものである。メモリアドレスは、CPUにより取り出
されているデータ語を記憶する記憶場所を指示する。
【0023】充填レジスタ24〜30は、主メモリ60
からキャッシュメモリ50へメモリブロックフレームの
1つをマッピングする状態を記憶するためのものであ
る。充填レジスタ24〜30はメモリブロックフレーム
充填ポインタと、メモリブロックオフセット充填ポイン
タと、複数の有効メモリブロックオフセット充填ビット
とをそれぞれ保持する3つのレジスタから構成される。
からキャッシュメモリ50へメモリブロックフレームの
1つをマッピングする状態を記憶するためのものであ
る。充填レジスタ24〜30はメモリブロックフレーム
充填ポインタと、メモリブロックオフセット充填ポイン
タと、複数の有効メモリブロックオフセット充填ビット
とをそれぞれ保持する3つのレジスタから構成される。
【0024】制御回路32に結合するメモリブロックフ
レーム充填レジスタ24は、主メモリ60からキャッシ
ュメモリ50へメモリブロックオフセットが現在マッピ
ングされているメモリブロックフレームを指示するメモ
リブロックフレーム充填ポインタを記憶するためのもの
である。メモリブロックフレーム充填ポインタは、キャ
ッシュメモリ充填の開始時に、マッピング中のメモリブ
ロックフレームを参照するメモリアドレスの上位ビット
に制御回路32により初期設定される。
レーム充填レジスタ24は、主メモリ60からキャッシ
ュメモリ50へメモリブロックオフセットが現在マッピ
ングされているメモリブロックフレームを指示するメモ
リブロックフレーム充填ポインタを記憶するためのもの
である。メモリブロックフレーム充填ポインタは、キャ
ッシュメモリ充填の開始時に、マッピング中のメモリブ
ロックフレームを参照するメモリアドレスの上位ビット
に制御回路32により初期設定される。
【0025】制御回路32に結合するメモリブロックオ
フセット充填レジスタ26は、主メモリ60からキャッ
シュメモリ50へマッピングされている次のブロックオ
フセットを指示するメモリブロックオフセット充填ポイ
ンタを記憶するためのものである。メモリブロックオフ
セットポインタは、キャッシュメモリ充填の開始時に、
書込まれている第1のブロックオフセットを参照するメ
モリアドレスの下位ビットに制御回路32により初期設
定される。加えて、各メモリブロックオフセットがキャ
ッシュメモリ50にマッピングされた後、メモリブロッ
クオフセット充填ポインタは次に書込まれるべきブロッ
クオフセットを参照するメモリアドレスの下位ビットに
制御回路32により更新される。
フセット充填レジスタ26は、主メモリ60からキャッ
シュメモリ50へマッピングされている次のブロックオ
フセットを指示するメモリブロックオフセット充填ポイ
ンタを記憶するためのものである。メモリブロックオフ
セットポインタは、キャッシュメモリ充填の開始時に、
書込まれている第1のブロックオフセットを参照するメ
モリアドレスの下位ビットに制御回路32により初期設
定される。加えて、各メモリブロックオフセットがキャ
ッシュメモリ50にマッピングされた後、メモリブロッ
クオフセット充填ポインタは次に書込まれるべきブロッ
クオフセットを参照するメモリアドレスの下位ビットに
制御回路32により更新される。
【0026】制御回路32に結合する有効ブロックオフ
セット充填レジスタ30は、マッピングされているメモ
リブロックフレームのそれぞれのメモリブロックオフセ
ットがマッピングされたか否かを指示する有効メモリブ
ロックオフセット充填ビットから成るベクトルを記憶す
るためのものである。有効メモリブロックオフセットビ
ットは、キャッシュメモリ充填の開始時に、制御回路3
2により連なる2進値0に初期設定される。加えて、対
応するメモリブロックオフセットのそれぞれがマッピン
グされた後、有効メモリブロックオフセットビットは個
別に制御回路32により2進値1に設定される。
セット充填レジスタ30は、マッピングされているメモ
リブロックフレームのそれぞれのメモリブロックオフセ
ットがマッピングされたか否かを指示する有効メモリブ
ロックオフセット充填ビットから成るベクトルを記憶す
るためのものである。有効メモリブロックオフセットビ
ットは、キャッシュメモリ充填の開始時に、制御回路3
2により連なる2進値0に初期設定される。加えて、対
応するメモリブロックオフセットのそれぞれがマッピン
グされた後、有効メモリブロックオフセットビットは個
別に制御回路32により2進値1に設定される。
【0027】アドレスレジスタ22、充填レジスタ24
〜30、CPU40、キャッシュメモリ50及び主メモ
リ60に結合する制御回路32は、先にCPU40から
受信したメモリアドレスに起因する先のキャッシュ読取
りミスによって開始されたキャッシュメモリ充填が依然
として進行中であるか否かを判定するためのものであ
り、先に受信したメモリアドレスはその後にサーブされ
ている。また、制御回路32は、現在CPU40から受
信したメモリアドレスがキャッシュ読取りミスに終わる
か否かを判定する働きもする。加えて、制御回路32は
適切な信号を適切な時点で送信することを制御し、それ
により、CPU40により取り出すべきデータ語をキャ
ッシュ−主メモリ階層50,60から検索し、CPU4
0へ戻すようになっている。
〜30、CPU40、キャッシュメモリ50及び主メモ
リ60に結合する制御回路32は、先にCPU40から
受信したメモリアドレスに起因する先のキャッシュ読取
りミスによって開始されたキャッシュメモリ充填が依然
として進行中であるか否かを判定するためのものであ
り、先に受信したメモリアドレスはその後にサーブされ
ている。また、制御回路32は、現在CPU40から受
信したメモリアドレスがキャッシュ読取りミスに終わる
か否かを判定する働きもする。加えて、制御回路32は
適切な信号を適切な時点で送信することを制御し、それ
により、CPU40により取り出すべきデータ語をキャ
ッシュ−主メモリ階層50,60から検索し、CPU4
0へ戻すようになっている。
【0028】次に図2を参照すると、本発明の制御回路
の動作の流れを表わすブロック線図が示されている。ア
ドレスレジスタに結合している制御回路は、ステップ7
2で、CPUにより取り出すべきデータ語のメモリアド
レスを入力として受信する。取り出すべきメモリアドレ
スを受信すると、制御回路はステップ74でキャッシュ
メモリが充填されているか否かを判定する。制御回路
は、キャッシュメモリが充填されているか否かをその内
部状態に基づいて判定するが、そのことについては以下
にさらに詳細に説明する。
の動作の流れを表わすブロック線図が示されている。ア
ドレスレジスタに結合している制御回路は、ステップ7
2で、CPUにより取り出すべきデータ語のメモリアド
レスを入力として受信する。取り出すべきメモリアドレ
スを受信すると、制御回路はステップ74でキャッシュ
メモリが充填されているか否かを判定する。制御回路
は、キャッシュメモリが充填されているか否かをその内
部状態に基づいて判定するが、そのことについては以下
にさらに詳細に説明する。
【0029】キャッシュメモリが充填されていなければ
(ブランチ74a)、制御回路は、ステップ76で、受
信したメモリアドレスがキャッシュミスに終わるか否か
を判定する。有効メモリブロックフレームアレイに結合
している制御回路は、その判定を、キャッシュメモリの
キャッシュフレーム中のキャッシュタグをアクセスし、
それらを受信したメモリアドレスの上位ビットと比較す
ることにより実行する。
(ブランチ74a)、制御回路は、ステップ76で、受
信したメモリアドレスがキャッシュミスに終わるか否か
を判定する。有効メモリブロックフレームアレイに結合
している制御回路は、その判定を、キャッシュメモリの
キャッシュフレーム中のキャッシュタグをアクセスし、
それらを受信したメモリアドレスの上位ビットと比較す
ることにより実行する。
【0030】受信したメモリアドレスの上位ビットがキ
ャッシュタグの1つと一致するならば(ブランチ76
a、この場合、キャッシュはアイドル状態であり、キャ
ッシュ読取りヒットとなる)、制御回路は読取り信号
と、対応するキャッシュアドレスをキャッシュメモリへ
送信し(ステップ108)、その結果、キャッシュメモ
リは取り出すべきデータ語をそのキャッシュ記憶場所か
ら検索して、それをCPUへ戻す。同時に、制御回路は
データ有効信号をCPUへ送信し(ステップ106)、
それにより、CPUはキャッシュメモリから戻されたデ
ータ語を受け入れる。
ャッシュタグの1つと一致するならば(ブランチ76
a、この場合、キャッシュはアイドル状態であり、キャ
ッシュ読取りヒットとなる)、制御回路は読取り信号
と、対応するキャッシュアドレスをキャッシュメモリへ
送信し(ステップ108)、その結果、キャッシュメモ
リは取り出すべきデータ語をそのキャッシュ記憶場所か
ら検索して、それをCPUへ戻す。同時に、制御回路は
データ有効信号をCPUへ送信し(ステップ106)、
それにより、CPUはキャッシュメモリから戻されたデ
ータ語を受け入れる。
【0031】受信したメモリアドレスの上位ビットがキ
ャッシュタグのいずれとも一致しない場合(ブランチ7
6b、キャッシュはアイドル状態であり、キャッシュ読
取りミスとなる)には、制御回路は読取り信号と、受信
したメモリアドレスを主メモリ102へ送信し、それに
より、主メモリは受信したメモリアドレスの上位ビット
により参照されるメモリブロックフレームのメモリブロ
ックオフセットに対応する記憶場所に記憶されているデ
ータ語をキャッシュメモリと、CPUとに同時に供給す
る。制御回路は書込み信号と、マッピングキャッシュフ
レームに関わる対応するキャッシュアドレスとをさらに
キャッシュメモリへ送信し(104)、それにより、キ
ャッシュメモリはマッピングキャッシュフレームのキャ
ッシュオフセットに対応するキャッシュ記憶場所に供給
されるデータ語を記憶する。同時に、制御回路はデータ
有効信号をもCPUへ送信し(ステップ106)、それ
により、CPUは主メモリから戻される第1のデータ語
(すなわち、CPUにより取り出されるデータ語)を受
け入れることになる。
ャッシュタグのいずれとも一致しない場合(ブランチ7
6b、キャッシュはアイドル状態であり、キャッシュ読
取りミスとなる)には、制御回路は読取り信号と、受信
したメモリアドレスを主メモリ102へ送信し、それに
より、主メモリは受信したメモリアドレスの上位ビット
により参照されるメモリブロックフレームのメモリブロ
ックオフセットに対応する記憶場所に記憶されているデ
ータ語をキャッシュメモリと、CPUとに同時に供給す
る。制御回路は書込み信号と、マッピングキャッシュフ
レームに関わる対応するキャッシュアドレスとをさらに
キャッシュメモリへ送信し(104)、それにより、キ
ャッシュメモリはマッピングキャッシュフレームのキャ
ッシュオフセットに対応するキャッシュ記憶場所に供給
されるデータ語を記憶する。同時に、制御回路はデータ
有効信号をもCPUへ送信し(ステップ106)、それ
により、CPUは主メモリから戻される第1のデータ語
(すなわち、CPUにより取り出されるデータ語)を受
け入れることになる。
【0032】キャッシュメモリが充填されている場合
(74b)、制御回路は受信したメモリアドレスの上位
ビットが現在マッピングされている同一のメモリブロッ
クフレームを参照するか否かをさらに判定する(ステッ
プ80)。メモリブロックフレーム充填レジスタにも結
合している制御回路は、その判定を、メモリブロックフ
レーム充填レジスタ中のメモリブロックフレームポイン
タをアクセスし、そのポインタを受信したメモリアドレ
スの上位ビットと比較することにより実行する。
(74b)、制御回路は受信したメモリアドレスの上位
ビットが現在マッピングされている同一のメモリブロッ
クフレームを参照するか否かをさらに判定する(ステッ
プ80)。メモリブロックフレーム充填レジスタにも結
合している制御回路は、その判定を、メモリブロックフ
レーム充填レジスタ中のメモリブロックフレームポイン
タをアクセスし、そのポインタを受信したメモリアドレ
スの上位ビットと比較することにより実行する。
【0033】受信したメモリアドレスの上位ビットが現
在マッピングされている同一のメモリブロックフレーム
を参照しない場合(ブランチ80a)には、制御回路は
進行中のキャッシュメモリ充填が完了するまで待機する
(ステップ81)。先に説明した通り、制御回路は進行
中のキャッシュメモリ充填が完了したか否かをその内部
状態に基づいて判定する。
在マッピングされている同一のメモリブロックフレーム
を参照しない場合(ブランチ80a)には、制御回路は
進行中のキャッシュメモリ充填が完了するまで待機する
(ステップ81)。先に説明した通り、制御回路は進行
中のキャッシュメモリ充填が完了したか否かをその内部
状態に基づいて判定する。
【0034】キャッシュメモリ充填が完了したとき(ブ
ランチ81a)、制御回路は、キャッシュメモリが充填
されていない間にメモリアドレスを受信したかのように
受信したメモリアドレスを処理する。
ランチ81a)、制御回路は、キャッシュメモリが充填
されていない間にメモリアドレスを受信したかのように
受信したメモリアドレスを処理する。
【0035】受信したメモリアドレスの上位ビットが現
在充填中であるのと同一のメモリブロックフレームを参
照する場合(ブランチ80b)、制御回路はメモリブロ
ックオフセットが実際に対応するキャッシュオフセット
にマッピングされている(すなわち、キャッシュ充填進
行中、非デッドサイクル)か否かを判定する(ステップ
82)。制御回路はメモリブロックオフセットが実際に
対応するキャッシュオフセットにマッピングされている
か否かを同様にその内部状態に基づいて判定する。
在充填中であるのと同一のメモリブロックフレームを参
照する場合(ブランチ80b)、制御回路はメモリブロ
ックオフセットが実際に対応するキャッシュオフセット
にマッピングされている(すなわち、キャッシュ充填進
行中、非デッドサイクル)か否かを判定する(ステップ
82)。制御回路はメモリブロックオフセットが実際に
対応するキャッシュオフセットにマッピングされている
か否かを同様にその内部状態に基づいて判定する。
【0036】メモリブロックオフセットが実際に対応す
るキャッシュオフセットにマッピングされていない場合
(ブランチ82a、すなわち、キャッシュ充填が完了し
たばかりであるか、又はキャッシュ充填が依然として進
行中であり且つデッドサイクル)、制御回路は、受信し
たメモリアドレスの下位ビットが現在マッピング中であ
るメモリブロックフレームの、既にマッピングされてい
るメモリブロックオフセットを参照するか否かをさらに
判定する(ステップ84)。有効ブロックオフセット充
填レジスタにも結合している制御回路は、有効ブロック
オフセット充填レジスタの有効ブロックオフセットをア
クセスし、それらを受信したメモリアドレスの下位ビッ
トにより参照されるメモリブロックオフセットと比較す
ることにより、その判定を実行する。
るキャッシュオフセットにマッピングされていない場合
(ブランチ82a、すなわち、キャッシュ充填が完了し
たばかりであるか、又はキャッシュ充填が依然として進
行中であり且つデッドサイクル)、制御回路は、受信し
たメモリアドレスの下位ビットが現在マッピング中であ
るメモリブロックフレームの、既にマッピングされてい
るメモリブロックオフセットを参照するか否かをさらに
判定する(ステップ84)。有効ブロックオフセット充
填レジスタにも結合している制御回路は、有効ブロック
オフセット充填レジスタの有効ブロックオフセットをア
クセスし、それらを受信したメモリアドレスの下位ビッ
トにより参照されるメモリブロックオフセットと比較す
ることにより、その判定を実行する。
【0037】受信したメモリアドレスの下位ビットが現
在マッピング中であるメモリブロックフレームの、既に
マッピングされているメモリブロックオフセットを参照
しない場合(ブランチ84a)、先に説明した通り、次
のクロックサイクルで、制御回路はメモリブロックオフ
セットが実際に対応するキャッシュオフセットにマッピ
ングされている(すなわち、キャッシュ充填進行中、非
デッドサイクル)か否かを再び判定する(ステップ8
2)。
在マッピング中であるメモリブロックフレームの、既に
マッピングされているメモリブロックオフセットを参照
しない場合(ブランチ84a)、先に説明した通り、次
のクロックサイクルで、制御回路はメモリブロックオフ
セットが実際に対応するキャッシュオフセットにマッピ
ングされている(すなわち、キャッシュ充填進行中、非
デッドサイクル)か否かを再び判定する(ステップ8
2)。
【0038】受信したメモリアドレスの下位ビットが現
在マッピング中であるメモリブロックフレームの、既に
マッピングされているメモリブロックオフセットを参照
する場合(ブランチ84b)には、制御回路はCPUに
至るデータ経路が利用可能であるか否かを判定する(ス
テップ86)。そのデータ経路に結合している制御回路
はその判定をデータ経路が保持されているか否かを検査
することにより実行する。
在マッピング中であるメモリブロックフレームの、既に
マッピングされているメモリブロックオフセットを参照
する場合(ブランチ84b)には、制御回路はCPUに
至るデータ経路が利用可能であるか否かを判定する(ス
テップ86)。そのデータ経路に結合している制御回路
はその判定をデータ経路が保持されているか否かを検査
することにより実行する。
【0039】CPUに至るデータ経路が利用可能でない
場合(ブランチ86a)、先に説明した通り、次のクロ
ックサイクルで、制御回路はメモリブロックオフセット
が実際に対応するキャッシュオフセットにマッピングさ
れている(すなわち、キャッシュ充填進行中、非デッド
サイクル)か否かを判定する(ステップ82)。
場合(ブランチ86a)、先に説明した通り、次のクロ
ックサイクルで、制御回路はメモリブロックオフセット
が実際に対応するキャッシュオフセットにマッピングさ
れている(すなわち、キャッシュ充填進行中、非デッド
サイクル)か否かを判定する(ステップ82)。
【0040】CPUに至るデータ経路が利用可能である
場合(ブランチ86b)には、制御回路は読取り信号と
対応するキャッシュアドレスをキャッシュメモリへ送信
し(ステップ108)、それにより、キャッシュメモリ
にそのキャッシュ記憶場所から取り出すべきデータ語を
検索させ、CPUに戻させる。同時に、データ有効信号
もCPUへ送信し(ステップ106)、それにより、C
PUはキャッシュメモリにより供給されたデータ語を受
け入れる。
場合(ブランチ86b)には、制御回路は読取り信号と
対応するキャッシュアドレスをキャッシュメモリへ送信
し(ステップ108)、それにより、キャッシュメモリ
にそのキャッシュ記憶場所から取り出すべきデータ語を
検索させ、CPUに戻させる。同時に、データ有効信号
もCPUへ送信し(ステップ106)、それにより、C
PUはキャッシュメモリにより供給されたデータ語を受
け入れる。
【0041】メモリブロックオフセットが実際に対応す
るキャッシュオフセットにマッピングされている(すな
わち、キャッシュ充填進行中、非デッドサイクル)場合
(ブランチ82b)には、制御回路は受信したメモリア
ドレスの下位ビットにより参照されるメモリブロックオ
フセットが現在マッピング中であるメモリブロックオフ
セットであるか否かをさらに判定する(ステップ8
8)。ブロックオフセット充填レジスタキャッシュに結
合している制御回路は、メモリブロックオフセット充填
レジスタ中のメモリブロックオフセットポインタをアク
セスし、それを受信したメモリアドレスの下位ビットと
比較することにより、その判定を実行する。
るキャッシュオフセットにマッピングされている(すな
わち、キャッシュ充填進行中、非デッドサイクル)場合
(ブランチ82b)には、制御回路は受信したメモリア
ドレスの下位ビットにより参照されるメモリブロックオ
フセットが現在マッピング中であるメモリブロックオフ
セットであるか否かをさらに判定する(ステップ8
8)。ブロックオフセット充填レジスタキャッシュに結
合している制御回路は、メモリブロックオフセット充填
レジスタ中のメモリブロックオフセットポインタをアク
セスし、それを受信したメモリアドレスの下位ビットと
比較することにより、その判定を実行する。
【0042】マッピング中のメモリブロックオフセット
が受信したメモリアドレスの下位ビットにより参照され
るメモリブロックオフセットではない場合(ブランチ8
8a)、先に説明した通り、次のクロックサイクルで、
制御回路はメモリブロックオフセットが実際に対応する
キャッシュオフセットにマッピングされている(すなわ
ち、キャッシュ充填進行中、非デッドサイクル)か否か
を再び判定する。
が受信したメモリアドレスの下位ビットにより参照され
るメモリブロックオフセットではない場合(ブランチ8
8a)、先に説明した通り、次のクロックサイクルで、
制御回路はメモリブロックオフセットが実際に対応する
キャッシュオフセットにマッピングされている(すなわ
ち、キャッシュ充填進行中、非デッドサイクル)か否か
を再び判定する。
【0043】マッピング中であるメモリブロックオフセ
ットが受信したメモリアドレスの下位ビットにより参照
されるメモリブロックオフセットである場合(ブランチ
88b)には、制御回路はCPUに至るデータ経路が利
用可能であるか否かを判定する(ステップ90)。制御
回路はその判定を先に説明したのと同じ方法により実行
する。
ットが受信したメモリアドレスの下位ビットにより参照
されるメモリブロックオフセットである場合(ブランチ
88b)には、制御回路はCPUに至るデータ経路が利
用可能であるか否かを判定する(ステップ90)。制御
回路はその判定を先に説明したのと同じ方法により実行
する。
【0044】同様に、CPUに至るデータ経路が利用可
能でない場合(ブランチ90a)には、先に説明した通
り、次のサイクルで、制御回路はメモリブロックオフセ
ットが実際に対応するキャッシュオフセットにマッピン
グされている(すなわち、キャッシュ充填進行中、非デ
ッドサイクル)か否かを再び判定する(ステップ8
2)。
能でない場合(ブランチ90a)には、先に説明した通
り、次のサイクルで、制御回路はメモリブロックオフセ
ットが実際に対応するキャッシュオフセットにマッピン
グされている(すなわち、キャッシュ充填進行中、非デ
ッドサイクル)か否かを再び判定する(ステップ8
2)。
【0045】CPUに至るデータ経路が利用可能である
場合(ブランチ90b)、制御回路はデータ有効信号を
CPUへ送信し(ステップ106)、それにより、CP
Uは主メモリにより供給される次のデータ語を受け入れ
る。
場合(ブランチ90b)、制御回路はデータ有効信号を
CPUへ送信し(ステップ106)、それにより、CP
Uは主メモリにより供給される次のデータ語を受け入れ
る。
【0046】次に図3を参照すると、キャッシュメモリ
−主メモリ階層の1例に関わる本発明の制御回路の状態
及び遷移規則を表わす例としての状態図が示されてい
る。この例のキャッシュメモリ−主メモリ階層はメモリ
ブロックオフセット8つ分のメモリブロックフレームサ
イズを有し、転送速度は3CPUクロックサイクルごと
に2メモリブロックオフセットである。従って、この例
のキャッシュメモリは1回のキャッシュメモリ充填中に
3度、すなわち、3クロックサイクルごとに1度ずつデ
ッドサイクルに入る。
−主メモリ階層の1例に関わる本発明の制御回路の状態
及び遷移規則を表わす例としての状態図が示されてい
る。この例のキャッシュメモリ−主メモリ階層はメモリ
ブロックオフセット8つ分のメモリブロックフレームサ
イズを有し、転送速度は3CPUクロックサイクルごと
に2メモリブロックオフセットである。従って、この例
のキャッシュメモリは1回のキャッシュメモリ充填中に
3度、すなわち、3クロックサイクルごとに1度ずつデ
ッドサイクルに入る。
【0047】いずれのクロックサイクルの終了時にも、
この例のキャッシュメモリ−主メモリ階層の制御回路は
可能な5つの状態の中の1つをとる。可能な5つの状態
とは、「CPU待機」112、「主メモリがデータ転送
を開始するのを待機」114、「奇数のデータ語が転送
済」116、「偶数のデータ語が転送済」118及び
「主メモリがデータ転送−デッドサイクルを再開するの
を待機」120である。
この例のキャッシュメモリ−主メモリ階層の制御回路は
可能な5つの状態の中の1つをとる。可能な5つの状態
とは、「CPU待機」112、「主メモリがデータ転送
を開始するのを待機」114、「奇数のデータ語が転送
済」116、「偶数のデータ語が転送済」118及び
「主メモリがデータ転送−デッドサイクルを再開するの
を待機」120である。
【0048】当初、制御回路は「CPU待機」112の
状態にある。「CPU待機」状態112から、制御回路
は次のクロックサイクルの終了時に「CPU待機」状態
にとどまるか、あるいは「主メモリがデータ転送を開始
するのを待機」するという状態114に入る。CPUか
らメモリアドレスを受信しない場合又は受信したメモリ
アドレスがキャッシュヒットに終わった場合には、次の
クロックサイクルの間に制御回路は「CPU待機」状態
112にとどまる。CPUから受信したメモリアドレス
がキャッシュミスに終わった場合、次のクロックサイク
ルの間に制御回路は「主メモリ待機」状態114に入
る。
状態にある。「CPU待機」状態112から、制御回路
は次のクロックサイクルの終了時に「CPU待機」状態
にとどまるか、あるいは「主メモリがデータ転送を開始
するのを待機」するという状態114に入る。CPUか
らメモリアドレスを受信しない場合又は受信したメモリ
アドレスがキャッシュヒットに終わった場合には、次の
クロックサイクルの間に制御回路は「CPU待機」状態
112にとどまる。CPUから受信したメモリアドレス
がキャッシュミスに終わった場合、次のクロックサイク
ルの間に制御回路は「主メモリ待機」状態114に入
る。
【0049】「主メモリがデータ転送を開始するのを待
機」する状態114から、制御回路は次のクロックサイ
クルの終了時に「主メモリがデータ転送を開始するのを
待機」する状態にとどまるか、あるいは「奇数のデータ
語が転送済」の状態116に入る。次のクロックサイク
ルの終わりに主メモリが第1のデータ語を戻していなけ
れば、制御回路は「主メモリがデータ転送を開始するの
を待機」する状態にとどまる。主メモリが第1のデータ
語を戻せば、制御回路は次のクロックサイクルの間に、
「奇数のデータ語が転送済」の状態116に入る。以下
にさらに詳細に説明するように、制御回路は「主メモリ
がデータ転送−デッドサイクルを再開するのを待機」す
る状態120からも「奇数のデータが転送済」の状態1
16に入る。
機」する状態114から、制御回路は次のクロックサイ
クルの終了時に「主メモリがデータ転送を開始するのを
待機」する状態にとどまるか、あるいは「奇数のデータ
語が転送済」の状態116に入る。次のクロックサイク
ルの終わりに主メモリが第1のデータ語を戻していなけ
れば、制御回路は「主メモリがデータ転送を開始するの
を待機」する状態にとどまる。主メモリが第1のデータ
語を戻せば、制御回路は次のクロックサイクルの間に、
「奇数のデータ語が転送済」の状態116に入る。以下
にさらに詳細に説明するように、制御回路は「主メモリ
がデータ転送−デッドサイクルを再開するのを待機」す
る状態120からも「奇数のデータが転送済」の状態1
16に入る。
【0050】「奇数のデータ語が転送済」の状態116
から、次のクロックサイクルの終了時に、制御回路は
「偶数のデータ語が転送済」の状態118又は「CPU
待機」の状態112のいずれかに入る。主メモリから第
2、第4又は第6のデータ語が戻されたならば、次のク
ロックサイクルの間に、制御回路は「偶数のデータ語が
転送済」の状態118に入る。主メモリから第8のデー
タ語が戻された場合には、次のクロックサイクルの間
に、制御回路は「CPU待機」の状態112に入る。
から、次のクロックサイクルの終了時に、制御回路は
「偶数のデータ語が転送済」の状態118又は「CPU
待機」の状態112のいずれかに入る。主メモリから第
2、第4又は第6のデータ語が戻されたならば、次のク
ロックサイクルの間に、制御回路は「偶数のデータ語が
転送済」の状態118に入る。主メモリから第8のデー
タ語が戻された場合には、次のクロックサイクルの間
に、制御回路は「CPU待機」の状態112に入る。
【0051】この例のキャッシュメモリは1回のキャッ
シュ充填の間に3度、すなわち、3クロックサイクルご
とに1度ずつデッドサイクルに入るので、制御回路は
「偶数のデータ語が転送済」の状態118から常に「主
メモリがデータ転送−デッドサイクルを再開するのを待
機」する状態に入る。
シュ充填の間に3度、すなわち、3クロックサイクルご
とに1度ずつデッドサイクルに入るので、制御回路は
「偶数のデータ語が転送済」の状態118から常に「主
メモリがデータ転送−デッドサイクルを再開するのを待
機」する状態に入る。
【0052】この例のキャッシュメモリは次のクロック
サイクルの間に第3、第5又は第7のデータ語を戻すの
で、制御回路は「主メモリがデータ転送−デッドサイク
ルを再開するのを待機」する状態120から常に「奇数
のデータ語が転送済」の状態116に入る。
サイクルの間に第3、第5又は第7のデータ語を戻すの
で、制御回路は「主メモリがデータ転送−デッドサイク
ルを再開するのを待機」する状態120から常に「奇数
のデータ語が転送済」の状態116に入る。
【0053】制御回路が「奇数のデータ語が転送済」の
状態116、又は「偶数のデータ語が転送済」の状態1
18、又は「主メモリがデータ転送を再開するのを待
機」する状態120にある間に、次のクロックサイクル
で制御回路がCPUから新たなメモリアドレスを受信す
ると、先に説明したように、受信した新たなメモリアド
レスにより参照されるメモリブロックフレーム及びメモ
リブロックオフセットに従って、取り出すべき新たなデ
ータ語は主メモリにより供給される次のデータ語によっ
て直ちに満たされるか、あるいは後に次のデッドサイク
ルで満たされるか又は現在キャッシュ充填の完了時に満
たされる。
状態116、又は「偶数のデータ語が転送済」の状態1
18、又は「主メモリがデータ転送を再開するのを待
機」する状態120にある間に、次のクロックサイクル
で制御回路がCPUから新たなメモリアドレスを受信す
ると、先に説明したように、受信した新たなメモリアド
レスにより参照されるメモリブロックフレーム及びメモ
リブロックオフセットに従って、取り出すべき新たなデ
ータ語は主メモリにより供給される次のデータ語によっ
て直ちに満たされるか、あるいは後に次のデッドサイク
ルで満たされるか又は現在キャッシュ充填の完了時に満
たされる。
【0054】図1に戻ると、アドレスレジスタ22と、
複数の充填レジスタ24〜30と、制御回路32は周知
の集積回路のいずれかによって実現されれば良いことが
わかるであろう。レジスタや順序論理の詳細な説明につ
いては、Horowitz及びHillのTHe Ar
t of Electronics(Cambridg
e,1989年刊)、523〜541ページを参照。
複数の充填レジスタ24〜30と、制御回路32は周知
の集積回路のいずれかによって実現されれば良いことが
わかるであろう。レジスタや順序論理の詳細な説明につ
いては、Horowitz及びHillのTHe Ar
t of Electronics(Cambridg
e,1989年刊)、523〜541ページを参照。
【0055】さらに、制御回路32は、データ語が現在
マッピング中であるメモリブロックフレームに関わるマ
ッピングキャッシュフレームのキャッシュ記憶場所以外
のキャッシュ記憶場所に記憶されている場合、デッドサ
イクルの間に、キャッシュメモリにCPUにより取り出
されるべきデータ語を検索し、現在キャッシュ充填の完
了を待たずにそのデータ語をCPUに戻すように指示す
ることを任意に選択しても良い。そのようにすることに
より、制御回路32の複雑さは相当に増すのがわかるで
あろう。キャッシュ読取りミスの後に続くデータ取り出
しは同じメモリブロックフレームのメモリブロックオフ
セットに対応する記憶場所に記憶される確率が高いの
で、複雑さが増すことにより利点が制限されることにな
る。
マッピング中であるメモリブロックフレームに関わるマ
ッピングキャッシュフレームのキャッシュ記憶場所以外
のキャッシュ記憶場所に記憶されている場合、デッドサ
イクルの間に、キャッシュメモリにCPUにより取り出
されるべきデータ語を検索し、現在キャッシュ充填の完
了を待たずにそのデータ語をCPUに戻すように指示す
ることを任意に選択しても良い。そのようにすることに
より、制御回路32の複雑さは相当に増すのがわかるで
あろう。キャッシュ読取りミスの後に続くデータ取り出
しは同じメモリブロックフレームのメモリブロックオフ
セットに対応する記憶場所に記憶される確率が高いの
で、複雑さが増すことにより利点が制限されることにな
る。
【0056】本発明を好ましい実施例に関連して説明し
たが、本発明が上述の例のキャッシュメモリ−主メモリ
階層に限定されないことは当業者には認められるであろ
う。本発明のキャッシュメモリ制御装置を特許請求の範
囲の趣旨の中で、多種多様なキャッシュメモリ−主メモ
リ階層に対するキャッシュメモリ制御装置として働くよ
うに、変形及び変更を伴って実施することができる。
たが、本発明が上述の例のキャッシュメモリ−主メモリ
階層に限定されないことは当業者には認められるであろ
う。本発明のキャッシュメモリ制御装置を特許請求の範
囲の趣旨の中で、多種多様なキャッシュメモリ−主メモ
リ階層に対するキャッシュメモリ制御装置として働くよ
うに、変形及び変更を伴って実施することができる。
【図1】中央処理装置(CPU)のためのデータを取り
出す本発明のキャッシュメモリ制御装置を示すブロック
線図。
出す本発明のキャッシュメモリ制御装置を示すブロック
線図。
【図2】本発明のキャッシュメモリ制御装置の制御回路
の動作流れを示すブロック線図。
の動作流れを示すブロック線図。
【図3】キャッシュメモリ−主メモリ階層の1例に関わ
る本発明のキャッシュメモリ制御装置の制御回路の状態
図の1例。
る本発明のキャッシュメモリ制御装置の制御回路の状態
図の1例。
10 コンピュータシステム 20 キャッシュメモリ制御装置 22 アドレスレジスタ 24 メモリブロックフレーム充填レジスタ 26 メモリブロックオフセット充填レジスタ 30 有効ブロックオフセット充填レジスタ 32 制御回路 40 中央処理装置(CPU) 50 キャッシュメモリ 60 主メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レヌカンザン・ラマン アメリカ合衆国 94088 カリフォルニア 州・サニーヴェイル・ナンバー29・ヴイセ ンテ ドライブ・1229 (72)発明者 ジョセフ・ペトリノ アメリカ合衆国 94306 カリフォルニア 州・パロ アルト・レッドウッド サーク ル・3730
Claims (2)
- 【請求項1】 コンピュータシステムの中央処理装置
(CPU)へのデータをそのキャッシュ及び主メモリ階
層から、CPUアイドル時間をさらに短縮するように取
り出す方法において、 前記CPUにより取り出される第1のデータ語を記憶し
ている前記主メモリの第1の記憶場所を参照する第1の
メモリアドレスを前記CPUから受信する過程と;その
後に続いて前記キャッシュ及び主メモリ階層から検索さ
れて前記CPUに戻されていて、前記CPUにより取り
出すべき第2のデータ語が記憶されていた前記主メモリ
の第2の記憶場所を参照する第2のメモリアドレスを前
記CPUから先に受信したことに起因して生じた第1の
キャッシュ読取りミスによって開始された第1回目のキ
ャッシュメモリ充填が進行中であるか否かを判定する過
程と;前記第1のデータ語をいかにして取り出し、いか
にして前記CPUに戻すかを確定し、前記第1回目のキ
ャッシュメモリ充填が進行中であると判定された場合、
前記第1回目のキャッシュメモリ充填を前記第1のデー
タ語をいかにして取り出し、いかにして前記CPUに戻
すかの確定に因子化する過程と;それに従って適切な信
号を前記CPUと、前記キャッシュメモリと、前記主メ
モリとへ送信し、その結果、前記第1のデータ語を前記
キャッシュ及び主メモリ階層から取り出して前記CPU
に戻すことを特徴とするCPUへのデータを取り出す方
法。 - 【請求項2】 コンピュータシステムの中央処理装置
(CPU)のためのデータをそのキャッシュ及び主メモ
リ階層から、CPUアイドル時間をさらに短縮するよう
に取り出すキャッシュメモリ制御装置において、 前記CPUに結合し、前記CPUにより取り出される第
1のデータ語を記憶している前記主メモリの第1の記憶
場所を指示する第1のメモリアドレスを前記CPUから
受信するアドレスレジスタ手段と;前記アドレスレジス
タ手段、前記CPU、前記キャッシュメモリ及び前記主
メモリに結合し、第1回目のキャッシュメモリ充填が進
行中であるか否かを判定し、前記第1のデータ語をいか
にして取り出し、いかにして前記CPUに戻すかを確定
し、前記第1回目のキャッシュメモリ充填が進行中であ
ると判定された場合には、前記第1回目のキャッシュメ
モリ充填を前記第1のデータ語をいかにして取り出し、
いかにして前記CPUに戻すかの確定に因子化し、それ
に従って適切な信号を前記CPUと、前記キャッシュメ
モリと、前記主メモリとへ送信し、その結果、前記第1
のデータ語を前記キャッシュ及び主メモリ階層から取り
出して前記CPUに戻させる制御回路手段とを具備し、 前記CPUは前記キャッシュメモリと、前記主メモリと
に結合しており、前記第1のキャッシュメモリ充填は、
その後に続いて前記キャッシュ及び主メモリ階層から検
索されて前記CPUに戻されていて、前記CPUにより
取り出すべき第2のデータ語が記憶されていた前記主メ
モリの第2の記憶場所を指示する第2のメモリアドレス
を前記CPUから先に受信したことに起因して生じた第
1のキャッシュ読取りミスによって開始されるキャッシ
ュメモリ制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/779,388 US5386526A (en) | 1991-10-18 | 1991-10-18 | Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill |
US779388 | 1991-10-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06236321A true JPH06236321A (ja) | 1994-08-23 |
Family
ID=25116286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4304487A Pending JPH06236321A (ja) | 1991-10-18 | 1992-10-19 | Cpuへのデータを取り出す方法及びキャッシュメモリ制御装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5386526A (ja) |
EP (1) | EP0543487B1 (ja) |
JP (1) | JPH06236321A (ja) |
KR (1) | KR0153539B1 (ja) |
DE (1) | DE69229213T2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845310A (en) * | 1993-12-15 | 1998-12-01 | Hewlett-Packard Co. | System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses |
DE69530720T2 (de) * | 1994-03-09 | 2003-11-27 | Sun Microsystems, Inc. | Verzögertes Cachespeicherschreiben eines Speicherungsbefehls |
US5897654A (en) * | 1995-02-10 | 1999-04-27 | International Business Machines Corporation | Method and system for efficiently fetching from cache during a cache fill operation |
US6076150A (en) * | 1995-08-10 | 2000-06-13 | Lsi Logic Corporation | Cache controller with improved instruction and data forwarding during refill operation |
US5860150A (en) * | 1995-10-06 | 1999-01-12 | International Business Machines Corporation | Instruction pre-fetching of a cache line within a processor |
US5727220A (en) * | 1995-11-29 | 1998-03-10 | International Business Machines Corporation | Method and system for caching and referencing cached document pages utilizing a presentation data stream |
US5781916A (en) * | 1996-03-25 | 1998-07-14 | Motorola, Inc. | Cache control circuitry and method therefor |
US6308241B1 (en) * | 1997-12-22 | 2001-10-23 | U.S. Philips Corporation | On-chip cache file register for minimizing CPU idle cycles during cache refills |
US8417913B2 (en) * | 2003-11-13 | 2013-04-09 | International Business Machines Corporation | Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages |
US8631198B2 (en) | 2010-08-06 | 2014-01-14 | Seagate Technology Llc | Dynamic cache reduction utilizing voltage warning mechanism |
US8850109B2 (en) * | 2011-12-22 | 2014-09-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Content addressable memory data clustering block architecture |
CN102831078B (zh) * | 2012-08-03 | 2015-08-26 | 中国人民解放军国防科学技术大学 | 一种cache中提前返回访存数据的方法 |
CN110889147B (zh) * | 2019-11-14 | 2022-02-08 | 中国人民解放军国防科技大学 | 一种利用填充缓存抵御Cache边信道攻击的方法 |
US11074183B2 (en) * | 2019-12-28 | 2021-07-27 | Wolley Inc. | Apparatus and method of read leveling for storage class memory |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4691277A (en) * | 1984-10-24 | 1987-09-01 | International Business Machines Corp. | Small instruction cache using branch target table to effect instruction prefetch |
US4912631A (en) * | 1987-12-16 | 1990-03-27 | Intel Corporation | Burst mode cache with wrap-around fill |
US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
US4994962A (en) * | 1988-10-28 | 1991-02-19 | Apollo Computer Inc. | Variable length cache fill |
US5233702A (en) * | 1989-08-07 | 1993-08-03 | International Business Machines Corporation | Cache miss facility with stored sequences for data fetching |
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
US5073851A (en) * | 1990-02-21 | 1991-12-17 | Apple Computer, Inc. | Apparatus and method for improved caching in a computer system |
US5210845A (en) * | 1990-11-28 | 1993-05-11 | Intel Corporation | Controller for two-way set associative cache |
US5247643A (en) * | 1991-01-08 | 1993-09-21 | Ast Research, Inc. | Memory control circuit for optimizing copy back/line fill operation in a copy back cache system |
-
1991
- 1991-10-18 US US07/779,388 patent/US5386526A/en not_active Expired - Lifetime
-
1992
- 1992-09-22 EP EP92308623A patent/EP0543487B1/en not_active Expired - Lifetime
- 1992-09-22 DE DE69229213T patent/DE69229213T2/de not_active Expired - Fee Related
- 1992-10-15 KR KR1019920018955A patent/KR0153539B1/ko not_active IP Right Cessation
- 1992-10-19 JP JP4304487A patent/JPH06236321A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
KR930008622A (ko) | 1993-05-21 |
EP0543487A1 (en) | 1993-05-26 |
EP0543487B1 (en) | 1999-05-19 |
DE69229213D1 (de) | 1999-06-24 |
US5386526A (en) | 1995-01-31 |
DE69229213T2 (de) | 1999-12-23 |
KR0153539B1 (ko) | 1998-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100278328B1 (ko) | 캐시 미스 버퍼 | |
US6185660B1 (en) | Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss | |
KR100274327B1 (ko) | 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 | |
JPH07506921A (ja) | コンピュータ・システムにおける主記憶装置のアクセス時間とキャッシュ・メモリのサイズを最小限にするためのキャッシュへの先取り | |
US7594100B2 (en) | Efficient store queue architecture | |
JPH06236321A (ja) | Cpuへのデータを取り出す方法及びキャッシュメモリ制御装置 | |
KR20040033029A (ko) | 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 | |
JPH07325761A (ja) | 仮想記憶システムに使用するための装置 | |
JP3763579B2 (ja) | 命令読出を先に予測することにより、読出ミス待ち時間を低減するための装置および方法 | |
US6363460B1 (en) | Memory paging control method | |
US20110022802A1 (en) | Controlling data accesses to hierarchical data stores to retain access order | |
US5987570A (en) | Performing overlapping burst memory accesses and interleaved memory accesses on cache misses | |
US7111127B2 (en) | System for supporting unlimited consecutive data stores into a cache memory | |
US7007137B2 (en) | Method and architecture capable of accessing data and instructions using store and forward | |
JP2001513933A (ja) | キャッシュ再充填中のcpuアイドルサイクルを最小にする追加のレジスタ | |
US7543113B2 (en) | Cache memory system and method capable of adaptively accommodating various memory line sizes | |
US20050021912A1 (en) | Line cache controller with lookahead | |
US6374344B1 (en) | Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts | |
US7085887B2 (en) | Processor and processor method of operation | |
TWI402674B (zh) | 使用擷取叢發提供資訊至一快取模組之裝置及方法 | |
JPH0520192A (ja) | キヤツシユメモリのストア方式 | |
JPS5818710B2 (ja) | 記憶システム | |
JP2001229074A (ja) | メモリ制御装置と情報処理装置及びメモリ制御チップ | |
JPH05250258A (ja) | キャッシュ制御方式 | |
JP3189282B2 (ja) | メモリ予測アクセス装置 |