JP3295728B2 - パイプラインキャッシュメモリの更新回路 - Google Patents

パイプラインキャッシュメモリの更新回路

Info

Publication number
JP3295728B2
JP3295728B2 JP2000001642A JP2000001642A JP3295728B2 JP 3295728 B2 JP3295728 B2 JP 3295728B2 JP 2000001642 A JP2000001642 A JP 2000001642A JP 2000001642 A JP2000001642 A JP 2000001642A JP 3295728 B2 JP3295728 B2 JP 3295728B2
Authority
JP
Japan
Prior art keywords
cache memory
thread
pipeline
block
data
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
Application number
JP2000001642A
Other languages
English (en)
Other versions
JP2001195301A (ja
Inventor
靖 日比野
和歳 鵜飼
Original Assignee
北陸先端科学技術大学院大学長
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 北陸先端科学技術大学院大学長 filed Critical 北陸先端科学技術大学院大学長
Priority to JP2000001642A priority Critical patent/JP3295728B2/ja
Publication of JP2001195301A publication Critical patent/JP2001195301A/ja
Application granted granted Critical
Publication of JP3295728B2 publication Critical patent/JP3295728B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリが
ミスヒットした際のデータブロックの更新回路に関する
もので、特にパイプライン構成のキャッシュにおける更
新回路に関するものである。
【0002】
【従来の技術】コンピュータのメモリシステムは、大容
量、高速および低価格の3つの要求を満たす必要がある
ので、総てを1種類のメモリで実現することは不可能で
ある。このため、容量と速度の異なる複数のメモリを階
層的に組合わせたメモリシステムが採用されている。
【0003】キャッシュメモリは、プロセッサと主メモ
リの速度差を埋めるためにプロセッサと主メモリの中間
に配置された高速、小容量のメモリである。プログラム
の局所性を利用して、最近利用された命令またはデータ
を格納しておき、メモリのアクセス性能を向上させる。
【0004】このため、通常のキャッシュメモリはアク
セス時間が短いことが第一であり、パイプライン構造の
採用は積極的には行なわれていない。せいぜい、アドレ
スデコードと、メモリアレイ本体との2段のパイプライ
ン構成が採用されている程度である。
【0005】しかし、マルチスレッドプロセッサなど特
殊なアーキテクチャを対象にした場合のキャッシュメモ
リは、アクセス時間ではなくスループットが問題となる
場合がある。つまり、レイテンシ(時間遅れ)は大きくて
もよいが、出来るだけ短いサイクル時間にデータを読み
上げることが重要となり、かかるプロセッサにおいては
本質的にパイプライン構造が適している。
【0006】例えば、マルチスレッド型プロセッサにお
いては、キャッシュメモリへのアクセス要求は、毎サイ
クル、異なるスレッドからの要求であり、その要求のア
クセス時間には余裕があるので、キャッシュメモリをパ
イプラインで構成することができる。
【0007】しかしながら、パイプライン構成のキャッ
シュでは、キャッシュアクセスがヒットのときは問題な
いが、ミスヒット時に、キャッシュエントリの更新(ア
ップデート)処理と、後続のスレッドからのアクセス処
理とを同時並行に行なわなければならず、主メモリアレ
イへのアクセスが競合してパイプライン動作が乱れ、ス
ループットが低下してしまうという問題点があった。
【0008】
【発明が解決しようとする課題】したがって、本発明は
キャッシュメモリにパイプライン構造を適用した場合に
生ずる上記問題点に鑑みてなされたものであり、キャッ
シュミスヒット時のキャッシュエントリの更新処理と、
後続のスレッドからのアクセス処理との競合を回避し、
パイプライン動作の乱れを防止し、スループットが低下
しないようにすることをその目的とする。
【0009】
【課題を解決するための手段】本発明は、かかる目的を
達成するよう、プロセッサと主メモリと間に配置されプ
ロセッサから要求される複数のスレッドに関して複数の
ステージでパイプライン処理を実行するようにパイプラ
イン構成されたキャッシュメモリにおいて、前記プロセ
ッサと前記キャッシュメモリとのインタフェースとなる
第1のパイプラインラッチと、パイプラインを構成する
中間ステージに配置された第2のパイプラインラッチ
と、前記主メモリと前記キャッシュメモリとのインタフ
ェースとなる外部ブロックバッファとを具備し、前記第
1のパイプラインラッチは処理すべきスレッドを識別す
るスレッド識別子とこのスレッドの状態を表示するフィ
ールドとを含み、前記第2のパイプラインラッチはこの
ステージで処理されるスレッド識別子を表示するフィー
ルドを含み、前記外部ブロックバッファは該ブロックに
対応するスレッド識別子、ブロックアドレス、およびセ
ット内ブロック番号を表示するフィールドを含み、そし
て、前記第1のパイプラインラッチの表示するスレッド
識別子と、前記外部ブロックバッファの表示するスレッ
ド識別子との一致、不一致を比較判定する比較回路とを
具備するキャッシュメモリ更新回路である。
【0010】そして、本発明においては、前記キャッシ
ュメモリはセットアソシアティブキャッシュメモリであ
ることを可能とし、前記スレッドの状態を表示するフィ
ールドには前記キャッシュメモリが該当するスレッドに
関しミスヒットの場合に休止中である旨表示されること
を可能とし、前記比較回路が一致と判定した場合に前記
プロセッサの制御により該当するスレッドに係るデータ
更新処理が実行されることを可能とする。
【0011】また、本発明においては、データ更新時に
おけるセット内ブロック番号の選択のためのランダム発
生器を具備することを可能とし、前記第1のパイプライ
ンラッチおよび第2のパイプラインラッチは読み出し要
求のあったデータのアドレスをデコードする各デコーダ
を介して次のステージに接続されていることを可能とす
る。
【0012】
【発明の実施の形態】本発明の実施の形態を以下に図面
を参照して説明する。本発明においては、キャッシュメ
モリ2のパイプラインラッチ(パイプラインステージの
情報を保持するレジスタ)20、21、22、23に、
アドレスフィールド15〜17およびデータフィールド
13と共に、スレッド識別子を格納するフィールド50
とスレッドの状態(活動中、休止中)を表示するフィー
ルド54を設ける。
【0013】かかるスレッドの状態を表示するフィール
ド54を設けるのことにより、ヒットしたスレッドかミ
スヒットのスレッドかが表示され、そのスレッドがミス
ヒットであることがわかる。そして、例えミスヒットで
あった場合でも、ミスヒットのあったスレッドの各処理
はパイプラインの各ステージにおいてそれぞれ中止され
るが、パイプライン内においてはミスヒットのあったス
レッドを含めて連続したパイプライン処理がそのまま続
行される。
【0014】一方、ミスヒットのあったスレッドについ
ては、主メモリ3から更新のためのデータを読み出して
そのスレッドの識別子と共に外部ブロックバッファ11
0に格納する。ミスヒットの更新処理は、まず、キャッ
シュ部入口に配置された比較器すなわち比較回路18に
よる比較により、データ更新のために主メモリ3から読
み出されそして外部ブロックバッファ110に格納され
たデータに係るスレッドの識別子29と、パイプライン
で連続処理されているスレッド識別子14とが比較され
る。そして、この比較の結果、双方のスレッド識別子一
致した場合のみに、処理が中止されたそのスレッド用の
パイプラインサイクル(空きサイクルという)を使用し
て他のスレッドの処理を乱すことなく連続的に更新処理
される。
【0015】すなわち、上記外部ブロックバッファ11
0には該当するアドレスが格納されているのでこのアド
レスによりアクセスし、データフィールド49に格納さ
れたデータによって先にミスヒットしたタグメモリアレ
イ31〜34の内容および対応するデータメモリアレイ
41〜44のデータブロック内容のデータ更新が行なわ
れる。
【0016】図1に示すパイプラインキャッシュ2は、
多段に構成されたアドレスデコーダ11、12とパイプ
ラインの各段毎に挿入されたパイプラインラッチ20、
21、22、23を有する。パイプラインラッチ20は
プロセッサ1とキャッシュメモリ2とのインタフェース
となり、パイプラインラッチ21、22、23はパイプ
ラインを構成する各中間ステージに配置される。
【0017】このパイプラインキャッシュはさらに、複
数のタグメモリアレイ31、32、33、34と、同じ
く複数のデータメモリアレイ41、42、43、44
と、タグ比較を行なう複数の比較器35、36と、複数
の内部読みだしブロックバッファデータフィールド6
1、62とを有し、さらに、1語幅のプロセッサバス7
と、ブロックサイズ幅の主メモリバス8と、ブロック選
択のためのランダム発生器9と、外部読みだしブロック
バッファ100、110とスレッド識別子の一致判定回
路である比較器18を含む。
【0018】また、パイプラインラッチ20、21、2
2、23、内部ブロックバッファ24および外部ブロッ
クバッファ100、110には、データフィールド1
3、46、49およびアドレスフィールド(15、1
6、17)、(26、27、28)、48、51を設け
る。それと共に、各スレッドを識別するスレッド番号す
なわちスレッド識別子(図1において例えば211、2
21、231、241、251、101、111のスレ
ッド番号により示される。)を格納するフィールド5
0、51、52、53を設け、さらに、ミスヒットの場
合に空きサイクルであることを示すフィールド54を設
ける。
【0019】データメモリアレイ41〜44の容量が増
えた場合には、デコードの階層を増やし、パイプライン
の段数を増やすことが当然考えられる。図1のスレッド
番号211、221、231、241、251は、ある
時点においてパイプラインの格ステージでこれら表示さ
れたスレッドに係る処理が平行して行われていることを
示す。なお、図1はセットアソシアティブキャッシュメ
モリの例を示すが、本発明はセットアソシアティブキャ
ッシュメモリに限定されるものではない。
【0020】図1の実施の形態においては、外部ブロッ
クバッファ110にもブロックアドレスを格納するアド
レスフィールドを設けている。このため、通常のキャッ
シュメモリのように入力(リード)要求したブロックの
アドレスを記憶しておく場所をキャッシュメモリ2内に
設ける必要がない。即ち、リード要求と共に主メモリ3
にアドレスを送り出し、該アドレスが更新データと共に
キャッシュメモリ2に戻ってくる構成を採用しているの
で、主メモリに対する応答が戻ってくるまでの間キャッ
シュメモリをウェイト状態にしてアドレスを保持してお
く必要がない。このため各スレッドに対するパイプライ
ン処理が継続して実行できる。さらにアドレスフィール
ドにはセットアソシアティブ方式の採用に対応し、セッ
ト内ブロック番号を格納するフィールドが設けられてい
る。
【0021】hit/misの判定回路であるNAND回路3
7を有し、この回路37はタグメモリアレイ31〜34
の出力側にある2つの比較器35、36の出力の否定の
ANDをとる。したがって、両方の比較器が不一致を出力
した場合にエントリが存在しない(ミス)ということに
なる。NAND回路37に接続されたラッチのフィール
ド38はこのhit/misの判定結果を記憶し、フィールド
39は両方の比較器35、36の比較結果を記憶する。
【0022】hit/misの判定結果はプロセッサ1に接続
された経路を介してプロセッサに戻される(図示せ
ず)。プロセッサ1は自分のメモリ(図示せず)に各ス
レッド識別子に対応させてこの判定結果を例えばテーブ
ル形式で記憶し、ミスの判定のあったスレッドに関して
は、空きサイクルである旨の表示と共にスレッド識別子
をキャッシュメモリ2に送り、これらはパイプラインラ
ッチ20に格納される。
【0023】プロセッサ1とキャッシュメモリ2との間
は、図2(a)に示すように、1語幅のプロセッサバス
により接続される。キャッシュメモリ2と主メモリ3と
の間は1ブロック幅の主メモリバスにより接続される。
図2(b)にプロセッサバスを7通るデータの構成を、
図2(c)に主メモリバス8を通るデータの構成を示
す。
【0024】図1の実施の形態においては、全体のパイ
プライン段数は5段とし、アドレスデコードのパイプラ
イン段数は2段、セットアソシアティブの連想度は2、
タグの比較器35、36の数は2としているが、一般に
はさらに多くのパイプライン段数とすること、あるいは
連想度を増やすことが可能である。上記セットなる用語
は、タグとデータブロックの対を要素として、連想度の
数だけ集まったものを意味する。
【0025】以下(a)ヒット時のリードオペレーショ
ン、(b)ミスヒット時のリードオペレーション、
(c)ライトオペレーション(ヒット時)および(d)
ライトオペレーション(ミスヒット時)に分けてこの実
施の態様の動作を説明する。
【0026】(a)ヒット時のリードオペレーション まず通常のリードオペレーションを説明する。プロセッ
サ1から読み出し要求を受け、パイプラインラッチ20
に格納されたアドレスは、スレッド識別子211と共に
アドレスデコーダ11、パイプラインラッチ21、アド
レスデコーダ12、パイプラインラッチ22を通り、タ
グメモリアレイ31〜34に到達する。
【0027】上記アドレスのうち下位アドレス(16、
17に格納)はアドレスデコーダ11および12におい
てそれぞれデコードされる。すなわち、本実施の形態に
おいては、図1に示すように、階層的デコードを行なう
ためおよび以下に述べる理由により、デコーダを直列的
に接続されるデコーダ11とデコーダ12とに分けてい
る。各デコーダの論理は通常のデコーダの論理と同じで
あり、n本の信号から、2n (2のn乗) の信号に分解する
ものである。すなわち、下位アドレスをデコードするデ
コーダを複数のデコーダ11、12により形成し、一方
下位フィールドを複数のメモリ小アレイ16、17に分
配し、そこでそれぞれ用のデコーダによってデコードす
るようにしたものである。
【0028】このように下位アドレスのフィールドを分
割してこれらを階層的にデコードすることにより、1)フ
ィールド長が短くなるためデコード時間が短縮され、さ
らに2)デコーダを小アレイに分散配置することにより、
配線遅延を短縮できる。
【0029】デコーダ11および12によりデコードさ
れた下位アドレスにより、タグメモリアレイ31〜34
から下位アドレスに該当するタグが読み出される。読み
出されたタグは、上位アドレスのビットと比較器35、
36で比較される。これら比較器のうちいずれかが「等
しい」と判定すればすなわちヒットであるので、パイプ
ラインラッチ23にラッチされているアドレスにより、
データメモリアレイ41〜44をアクセスする。データ
メモリアレイ41〜44はアクセスが完了すると読み出
されたデータを内部ブロックバッファ24のデータフィ
ールド61、62にラッチし、プロセッサバス7を通じ
てプロセッサ1に送信する。
【0030】以上の動作は、図3(a)に示すように、
(1)デコーダ11によるアドレスデコード1、(2)
デコーダ12によるアドレスデコード2、(3)タグ読
み出し、およびタグと上位アドレスとの比較、(4)デ
ータメモリアレイ41〜44にアクセスしデータ読み出
し、(5)プロセッサバス7を介してのプロセッサへの
データ送り出しの合計5段のパイプライン処理で行なわ
れる。このよう構成し動作させることにより、クロック
サイクル毎に新たなアドレスを受け付け、各5クロック
後に連続してキャッシュデータを得ることができる。
【0031】(b)ミスヒット時のリードオペレーショ
ン ミスヒット時のリードオペレーションを、ミスヒットの
検出、更新ブロックの選択、ダーティブロックのライト
バック、更新ブロックの読み出し、およびタグとブロッ
クの更新に分けて以下説明する。
【0032】b−1 ミスヒットの検出 まず、リードオペレーションのときにミスヒットが生じ
た場合を説明する。この場合、パイプライン処理におけ
る上記(3)のタグアクセスおよびタグと上位アドレス
との比較のステージまでは同様である。
【0033】比較器35、36の出力が共に等しくない
とされた場合、すなわちミスヒットの場合であるが、こ
の場合もヒット時と同様にメモリアクセスを行ない、読
み出したデータをタグと共に内部ブロックバッファ24
のデータフィールド61〜62にラッチする。この場合
のデータは、キャッシュアドレス(下位のアドレス)によ
って読み出されたタグとデータの対である。
【0034】タグが一致しないのでミスと判定されるだ
けで、データメモリアレイ41〜44の読み出しはミ
ス、またはヒットにかかわらずまったく同じように行わ
れる。読み出されたデータはそのままプロセッサ1にも
送られるが、プロセッサ1はスレッド識別子と共にミス
ヒットである判定結果を受信しているので送られたデー
タを破棄する。ヒット時と異なる点は、プロセッサ1に
ミスヒットであることをスレッド識別子によって伝える
ことである。
【0035】プロセッサ1は、ミスヒットとなったアク
セス要求を出したスレッドをスレッド識別子によって判
定して、該当するスレッドを空きサイクルにする。すな
わち、空きサイクルとなったスレッドはキャッシュメモ
リ2に対し空きサイクルであるという指示と共にスレッ
ド識別子を送る。この指示を受け、該当するスレッドに
ついては、パイプラインラッチ20のスレッドの状態
(活動中、休止中)を表示するフィールド54は休止中
であることを表示する。
【0036】フィールド54に空きサイクルを示す休止
中の表示がある場合、キャッシュメモリ2はこのスレッ
ドに関しては該当する各ステージにおいて実際のアクセ
ス動作(デコーダによるアドレスデコード、タグアクセ
スおよびタグと上位アドレスとの比較、メモリアレイア
クセス、データ送り出し)を行わない。プロセッサ1
は、空きサイクルのスレッド以外のスレッドからは(特
に命令キャッシュの場合)キャッシュメモリ2に毎サイ
クルアクセス要求が出される。
【0037】b−2 更新ブロックの選択 ミスヒットとなったエントリは、更新を行なう必要があ
る。更新は、休止中のスレッドによる空きサイクルを使
って行なう。
【0038】まず、更新するブロックのデータを主メモ
リ3に追い出す。この場合、更新するブロックを選択
(セット内ブロック番号)する必要がある。この選択に
おいては通常のキャッシュメモリにおける選択のよう
に、使用されずにいた時間が最も長いブロックを置き換
えるいわゆるLRU(least recently used)法を使
うことは困難である。
【0039】なぜなら、パイプラインキャッシュメモリ
では、毎サイクルすべてのステージでの動作がある。ま
た、毎サイクル、タグメモリアレイ31から34および
データメモリアレイ41から44にアクセスが行なわれ
る。従って、LRUスタックを更新するための時間をと
ることが困難であり、LRU法によっては高速なサイク
ル時間を実現することができないからである。このた
め、LRU法に代わる方法を採用する必要がある。
【0040】本実施の形態では、ランダムアルゴリズム
を採用している。ランダムアルゴリズムは比較的よい性
能を示す。すなわちブロックの選択(セット内ブロック
番号)はランダム発生器9の出力により決定する。セッ
ト内ブロック番号は、キャッシュミスのあった場合に追
い出しの選択されたブロックについて、セットを構成す
るタグとデータブロックの対に番号をつけたものであ
る。例えば、n個のセットからなる連想度2のキャッシ
ュメモリにおいては、セット内ブロック番号は0または
1で規定される。
【0041】一般に、選択されたブロック(セット内ブ
ロック番号)をAとすると、このAの決定は事前に行な
っておけばよい。すなわち、事前にランダム発生器9に
より生成しておいた値を得ればよい。ランダム発生器9
は次の要求に備えて次のランダム数を発生するよう動作
する。
【0042】なお、このブロック番号を表示するブロッ
クアドレスは、通常下位アドレスの上位ビットで指定さ
れ、下位アドレスの下位のビットはブロック内の語を選
択する。
【0043】b−3 ダーティ(dirty)ブロックのラ
イトバック 追い出しブロックを決定した後、選択された追い出しブ
ロック内のデータを実際に主メモリにライトバックする
必要がある。すなわち、ブロックがダーティである場合
(ダーティ; 書き込みが行われたキャッシュの内容と
主メモリの内容が一致しない)、追い出しブロックのデ
ータを記憶している内部ブロックバッファ24の内容を
主メモリバス8を通して、1クロックサイクルで主メモ
リ3へと送り出す。
【0044】主メモリ3への書き込みアドレスは、内部
ブロックバッファ24のアドレス記憶フィールド26、
27、28に記憶されたタグおよび下位アドレスより生
成できる。数サイクルの書き込み時間の後に、主メモリ
3への書き込み動作は完了する。
【0045】b−4 更新ブロックの読み出し キャッシュメモリのデータ更新のため、主メモリへの上
記書き込み動作の完了をまたずに、要求アドレス、スレ
ッド識別子、セット内ブロック番号の3つ組により、主
メモリに対しリードアクセス要求を行なう。要求後数サ
イクルの後に主メモリ3に対するアクセスが完了する。
【0046】主メモリから読み出されたブロックは、リ
ードアクセス要求時のアドレス、スレッド識別子、セッ
ト内ブロック番号の3つ組に、データブロックを付け加
えた4つ組として、主メモリバス8を通じて送られ、外
部ブロックバッファ110に蓄えられる。その後、図1
の左側のライン10(太線にて表示)を通じてキャッシ
ュ部入口のマルチプレクサ4まで送られ、図3(c)に
示すパイプライン処理工程を経て、最終的にデータメモ
リアレイ41〜44に書き込まれる。
【0047】b−5 タグとブロックの更新 該当するスレッド識別子の移動に対応して、図3(c)
に示すようにデコーダ11およびデコーダ12による各
処理工程(デコード1、デコード2)が行われる。その
後、まずタグメモリアレイ31〜34にアクセスし、タ
グをアドレスとセット内ブロック番号により更新する。
つぎにデータブロック内容をアドレスとセット内ブロッ
ク番号によりデータメモリアレイ41〜44の該当ブロ
ックに書き込み、エントリの更新を行なう。
【0048】この更新のための書き込みタイミングは、
同様に外部ブロックバッファ110に記憶されているス
レッド番号(111)と、パイプラインのメモリアレイ
ステージを流れているスレッド識別子のスレッド番号が
一致するときである。このとき同時に該当ブロック内の
ダーティビットをクリアする。更新の終了したこの時点
で、プロセッサ1は、ミスしたスレッドの休止状態を活
動状態へ戻す。
【0049】なお、更新の場合には5段目のステージの
動作(図示せず)は通常は「空」となりクロックのみを
進める。もし何らかのデータがプロセッサ1に送られた
場合には、プロセッサ1はそのデータは受け取らずに捨
てる。このように、データメモリアレイ41〜44の該
当ブロックへの書き込みは、休止中のスレッドの空きサ
イクルに行なうので、他の活動中スレッドのメモリアレ
イアクセスと競合することはない。
【0050】主メモリ3に対する書き込み要求にスレッ
ド識別子を付与することにより、キャッシュメモリ2か
ら主メモリ3への書き込み要求が非同期的に行なわれ、
大きなレイテンシの後にアクセスが完了するような場合
においても、パイプライン処理との同期を正確にとるこ
とができる。
【0051】また、セット内ブロック番号を付与するの
は、ミスしたブロックのデータを単純に外部ブロックバ
ッファ110を介してキャッシュメモリ2内に記憶する
方法では、複数のミスヒットの発生に対応できないから
である。
【0052】ブロックがダーティであるかクリーンであ
るかは、次に述べるライトオペレーションによる。
【0053】(c)ライトオペレーション(ヒット時) 最後にライトオペレーションについて説明する。本実施
例では、いわゆるライトバック法を採用しているが、本
発明はライトバック法に限らず、ライトスルーにも適用
できる。
【0054】ライト要求はアドレス、ライトデータおよ
びスレッド識別子と共に、アドレスデコーダ11、12
および各パイプラインラッチ20、21、22を通じ
て、タグメモリアレイ31〜34に送られる。そしてタ
グアクセスの後、比較器35、36によってタグ比較が
行なわれるところまではリードオペレーションと全く同
様である。
【0055】キャッシュメモリのデータメモリアレイ4
1〜44には、通常、ブロック毎に1ビットのダーティ
のビットフィールドが設けられている(図示せず)。い
づれかの比較器35、36の出力が「等しい」とき、す
なわちヒットの時は、ライトデータとアドレスとをデー
タメモリアレイ41〜44に送り書き込みを行なうと共
に該当ブロックのダーティビットをオンにする。
【0056】(d)ライトオペレーション(ミスヒット
時) いづれの比較器35、36の出力も「等しくない」と
き、すなわちキャッシュメモリ2に該当ブロックが存在
せずミスヒットのときは、該当ブロックの存在する主メ
モリ3のみにライト要求を出して書き込みを行なう。
【0057】この方法はいわゆるライト・ノー・アロケ
ート法として知られている。主メモリ3への書き込みは
プロセッサ1の動作と並行して行なわれるので、ライト
ミスのときは、ミスを生じたスレッドを停止する必要は
ない。ライトミスをしたブロックはキャッシュには存在
しないので、後のリードアクセス時には必ずミスヒット
となり、前述のリードオペレーションにより、キャッシ
ュメモリ2に読み込まれる。
【0058】
【発明の効果】以上説明したように、本発明によれば、
例えばマルチスレッドプロセッサなどに好適なパイプラ
イン構造を有するキャッシュメモリにおいて、例えキャ
ッシュアクセスがミスヒットの場合でも、キャッシュエ
ントリの更新処理と後続のスレッドからのアクセス処理
とを同時並行に行なうことが可能となる。そして、メモ
リアレイへのアクセスが競合してパイプライン動作が乱
れ、キャッシュメモリのスループットが低下するという
ような問題が起ることはない。
【0059】ここに記載された本発明の実施の形態は単
なる一例であり、上記キャッシュメモリ更新回路の実施
の形態は、本発明の要旨を変更しない範囲で多様に変形
することができる。
【図面の簡単な説明】
【図1】本発明のパイプラインキャッシュの更新回路を
示す図である。
【図2】パイプラインキャッシュとプロセッサおよび主
メモリとの間で伝送される信号の構成を示す図である。 (a)メモリシステムの構成、(b)パイプラインキャ
ッシュとプロセッサ間、(c)パイプラインキャッシュ
と主メモリ間
【図3】パイプラインの各ステージにおける処理内容を
示す図である。 (a)読み出し(ヒット)、(b)読み出し(ミスヒッ
ト)、(c)書き込み、または更新
【符号の説明】
1 … プロセッサ 2 … キャッシュメモリ 3 … 主メモリ 4、40、45 … マルチプレクサ 6、7、8、10 … バス 9 … ランダム発生器 11、12 … デコーダ 13、46、49 … データフィールド 14、25、29、47 … スレッド識別子(スレッ
ド番号で表示) 15、26 … 上位アドレスフィールド 16、17、27、28 … 下位アドレスフィールド 18、35、36 … 比較器 20、21、22、23 … パイプラインラッチ 24 … 内部ブロックバッファ 31、32、33、34 … タグメモリアレイ 37 … NAND回路 38 … ヒット/ミスフィールド 39 … 比較結果フィールド 41、42、43、44 … データメモリアレイ 48、58 … アドレスフィールド 50、51、52、53 … スレッド識別子格納フィ
ールド 54 … 空きサイクル表示フィールド 61、62 … データフィールド 100、110 … 外部ブロックバッファ 211、221、231、241、251、101、1
11 … スレッド番号
フロントページの続き (56)参考文献 特開 平5−100951(JP,A) 特開 平2−168341(JP,A) 特開 平2−90265(JP,A) 特開 平1−305452(JP,A) 特開 昭61−26151(JP,A) 特開 平1−222349(JP,A) 特開 昭64−41045(JP,A) 特開 昭64−1046(JP,A) 鵜飼、日比野,セルアレイ分割による パイプラインキャッシュの高周波動作の 可能性,電子情報通信学会技術研究報 告,日本,社団法人電子情報通信学会, 1999年 4月15日,第99巻第7号,p. 1−6 山崎、本多、弓場,マルチスレッドア ーキテクチャ用データキャッシュ −動 的スレッドアソシアティブ方式−の評 価,情報処理学会研究報告,日本,社団 法人電子情報処理学会,1999年 3月 5日,第99巻第21号(99−ARC− 132),p.97−102 平田、奥田、柴田、新實、柴山,マル チスレッドプロセッサおよび1チップマ ルチプロセッサのための命令キャッシュ 構成・命令フェッチ方式の,電子情報通 信学会論文誌(J81−D−1),日本, 社団法人電子情報通信学会,1998年 6 月25日,第6号,p.718−727 木村、奥畑、尾上、白川、清原、鷺 島,マルチスレッドプロセッサのデータ キャッシュ制御方式,映像情報メディア 学会誌,日本,社団法人映像情報メディ ア学会,1998年 5月20日,第52巻第5 号,p.742−749 プロセッサ・アーキテクチャの提案, 情報処理学会研究報告,日本,社団法人 情報処理学会,1996年12月12日,第96巻 第121号(96−ARCー121),p.81− 88 (58)調査した分野(Int.Cl.7,DB名) G06F 12/08 G06F 9/38 G06F 15/16 - 15/177

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサと主メモリと間に配置され、
    プロセッサから要求される複数のスレッドに関して複数
    のステージでパイプライン処理を実行するようにパイプ
    ライン構成されたキャッシュメモリにおいて、 前記プロセッサと前記キャッシュメモリとのインタフェ
    ースとなる第1のパイプラインラッチと、パイプライン
    を構成する中間ステージに配置された第2のパイプライ
    ンラッチと、前記主メモリと前記キャッシュメモリとの
    インタフェースとなる外部ブロックバッファとを具備
    し、 前記第1のパイプラインラッチは処理すべきスレッドを
    識別するスレッド識別子とこのスレッドの状態を表示す
    るフィールドとを含み、前記第2のパイプラインラッチ
    はこのステージで処理されるスレッド識別子を表示する
    フィールドを含み、前記外部ブロックバッファは該ブロ
    ックに対応するスレッド識別子、ブロックアドレス、お
    よびセット内ブロック番号を表示するフィールドを含
    み、そして、 前記第1のパイプラインラッチの表示するスレッド識別
    子と、前記外部ブロックバッファの表示するスレッド識
    別子との一致、不一致を比較判定する比較回路とを具備
    することを特徴とするキャッシュメモリ更新回路。
  2. 【請求項2】 前記キャッシュメモリはセットアソシア
    ティブキャッシュメモリであることを特徴とする請求項
    1に記載のキャッシュメモリ更新回路。
  3. 【請求項3】 前記スレッドの状態を表示するフィール
    ドには、前記キャッシュメモリが該当するスレッドに関
    しミスヒットの場合に休止中である旨表示される請求項
    1に記載のキャッシュメモリ更新回路。
  4. 【請求項4】 前記比較回路が一致と判定した場合に、
    前記プロセッサの制御により、該当するスレッドに係る
    データ更新処理が実行される請求項1に記載のキャッシ
    ュメモリ更新回路。
  5. 【請求項5】 データ更新時におけるセット内ブロック
    番号の選択のためのランダム発生器を具備することを特
    徴とする請求項2に記載のキャッシュメモリ更新回路。
  6. 【請求項6】 前記第1のパイプラインラッチおよび第
    2のパイプラインラッチは、読み出し要求のあったデー
    タのアドレスをデコードする各デコーダを介して次のス
    テージに接続されていることを特徴とする請求項1また
    は請求項2に記載のキャッシュメモリ更新回路。
JP2000001642A 2000-01-07 2000-01-07 パイプラインキャッシュメモリの更新回路 Expired - Lifetime JP3295728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000001642A JP3295728B2 (ja) 2000-01-07 2000-01-07 パイプラインキャッシュメモリの更新回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000001642A JP3295728B2 (ja) 2000-01-07 2000-01-07 パイプラインキャッシュメモリの更新回路

Publications (2)

Publication Number Publication Date
JP2001195301A JP2001195301A (ja) 2001-07-19
JP3295728B2 true JP3295728B2 (ja) 2002-06-24

Family

ID=18530845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000001642A Expired - Lifetime JP3295728B2 (ja) 2000-01-07 2000-01-07 パイプラインキャッシュメモリの更新回路

Country Status (1)

Country Link
JP (1) JP3295728B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3734032B2 (ja) 2002-07-25 2006-01-11 日本電気株式会社 情報処理装置及びそのメモリ制御方法
EP2159701A4 (en) * 2007-06-19 2011-08-10 Fujitsu Ltd CACHE MEMORY CONTROL DEVICE AND CONTROL METHOD
US9606925B2 (en) * 2015-03-26 2017-03-28 Intel Corporation Method, apparatus and system for optimizing cache memory transaction handling in a processor

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
プロセッサ・アーキテクチャの提案,情報処理学会研究報告,日本,社団法人情報処理学会,1996年12月12日,第96巻第121号(96−ARCー121),p.81−88
山崎、本多、弓場,マルチスレッドアーキテクチャ用データキャッシュ −動的スレッドアソシアティブ方式−の評価,情報処理学会研究報告,日本,社団法人電子情報処理学会,1999年 3月 5日,第99巻第21号(99−ARC−132),p.97−102
平田、奥田、柴田、新實、柴山,マルチスレッドプロセッサおよび1チップマルチプロセッサのための命令キャッシュ構成・命令フェッチ方式の,電子情報通信学会論文誌(J81−D−1),日本,社団法人電子情報通信学会,1998年 6月25日,第6号,p.718−727
木村、奥畑、尾上、白川、清原、鷺島,マルチスレッドプロセッサのデータキャッシュ制御方式,映像情報メディア学会誌,日本,社団法人映像情報メディア学会,1998年 5月20日,第52巻第5号,p.742−749
鵜飼、日比野,セルアレイ分割によるパイプラインキャッシュの高周波動作の可能性,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,1999年 4月15日,第99巻第7号,p.1−6

Also Published As

Publication number Publication date
JP2001195301A (ja) 2001-07-19

Similar Documents

Publication Publication Date Title
US5809530A (en) Method and apparatus for processing multiple cache misses using reload folding and store merging
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US6665774B2 (en) Vector and scalar data cache for a vector multiprocessor
JP2822588B2 (ja) キャッシュメモリ装置
US20100169578A1 (en) Cache tag memory
US5778407A (en) Methods and apparatus for determining operating characteristics of a memory element based on its physical location
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US6643745B1 (en) Method and apparatus for prefetching data into cache
US6023747A (en) Method and system for handling conflicts between cache operation requests in a data processing system
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
US7447845B2 (en) Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality
US6321321B1 (en) Set-associative cache-management method with parallel and single-set sequential reads
US7073026B2 (en) Microprocessor including cache memory supporting multiple accesses per cycle
US8499123B1 (en) Multi-stage pipeline for cache access
US20060036811A1 (en) Method for software controllable dynamically lockable cache line replacement system
EP0803095A1 (en) Indexing and multiplexing of interleaved cache memory arrays
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
KR980010781A (ko) 전폭 캐쉬를 가진 집적 프로세서/메모리 장치
US20050206648A1 (en) Pipeline and cache for processing data progressively
US6434665B1 (en) Cache memory store buffer
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
JPH0836491A (ja) パイプライン・ストア命令を実行する装置及びその方法
US6976130B2 (en) Cache controller unit architecture and applied method
JP2009157612A (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
US6839806B2 (en) Cache system with a cache tag memory and a cache tag buffer

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Ref document number: 3295728

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term