JP3348367B2 - 多重アクセス方法および多重アクセスキャッシュメモリ装置 - Google Patents
多重アクセス方法および多重アクセスキャッシュメモリ装置Info
- Publication number
- JP3348367B2 JP3348367B2 JP31841495A JP31841495A JP3348367B2 JP 3348367 B2 JP3348367 B2 JP 3348367B2 JP 31841495 A JP31841495 A JP 31841495A JP 31841495 A JP31841495 A JP 31841495A JP 3348367 B2 JP3348367 B2 JP 3348367B2
- Authority
- JP
- Japan
- Prior art keywords
- access
- data
- access request
- cache
- multiple access
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
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)
Description
らなる情報処理装置において、データアレイとタグアレ
イとの組を複数そなえた記憶階層に対して行なわれる多
重アクセス方法に関し、さらに言えば、情報処理装置に
おいてデータ読出を高速に行なうべく、プロセッサと記
憶装置との間に設けられるキャッシュメモリ装置に適用
される技術に関し、特に、多重アクセスを可能にした、
多重アクセス方法および多重アクセスキャッシュメモリ
装置に関する。
ッシュメモリに対して、複数のアクセス(多重アクセ
ス)を同時に可能にするためには、多くのハードウェア
量を必要としている。例えば、特開昭64−23354
号公報に開示されている技術では、キャッシュメモリ
(バッファ記憶装置)そのものを複数そなえており、キ
ャッシュメモリ間で共有している内容に対して書込要求
があった場合、その内容を共有する全てのキャッシュメ
モリに書込を行なっている。この技術の他にも種々のプ
ロトコルが知られている。これらの技術では、いずれ
も、キャッシュメモリそのものを複数そなえているた
め、ハードウェア量が極めて大きくなっている。
ている技術では、キャッシュメモリをマルチポートのメ
モリにより構成することで多重アクセスを可能にしてい
る。この技術でも、ゲート数が多く、ハードウェア量は
極めて大きい。また、このメモリが高速動作にあまり適
していないという課題もある。特開平4−199242
号公報では、各ウェイに含まれているアドレスアレイの
みを多重化したキャッシュメモリ装置も開示されてい
る。このキャッシュメモリ装置では、図29(a),
(b)に示すように、2つのアドレスアレイ(タグアレ
イ)100A,100Bがそなえられている。これらの
アドレスアレイ100A,100Bの内容は、一方のア
レイの内容の写しであり、全く同一のものである。
アティブ方式のものが示されており、アドレスアレイ1
00A,100Bはウェイ毎に分割されている。また、
図30に示すように、データアレイ102もウェイ毎に
読出/書込できるように分割されており、これらのデー
タアレイ102は、2つのアドレスアレイ100A,1
00Bによって共有されている。
1ステップとして、図29(a),(b)に示すよう
に、2つのアクセスA,Bが同時に受け付けると、各ア
クセスA,Bに付された実アドレスの一部によりアドレ
スアレイ100A,100Bをそれぞれ索引し、その索
引結果が得られた場合、その索引結果(実アドレス)と
各アクセスA,Bとともに送られてきた実アドレスと
を、それぞれ比較器101A,101Bにより比較し、
各アクセスA,Bの対象となるデータの存在するレベル
(記憶階層,ウェイ)を決定する。
果得られたレベル(ウェイ)が同一でなければ、第2ス
テップとして、図30に示すように、異なるレベル(ウ
ェイ)のデータアレイ102に存在するデータ(DAT
A1,DATA3)に対して多重アクセスを行なってい
る。しかし、このようなキャッシュメモリ装置でも、ア
ドレスアレイ100A,100Bを多重化するためにハ
ードウェア量は大きなものになる。また、レベル(ウェ
イ)を決定してからでないとデータアレイに対するアク
セスを行なえない、つまり、アドレスアレイ100A,
100Bのアクセスとデータアレイ102(図30参
照)のアクセスとを同時に行なうことができず、多重ア
クセス処理を高速化できないという課題が存在する。
ッシュメモリに対する多重アクセスを可能にするための
従来の手法では、ハードウェア量の増大を招くほか、多
重アクセス処理を高速化できないという課題があった。
本発明は、このような課題に鑑み創案されたもので、ハ
ードウェア量の増加を抑え、且つ、出来るだけ処理の高
速化をはかりながら、多重アクセスを可能にした、多重
アクセス方法および多重アクセスキャッシュメモリ装置
を提供することを目的とする。
ック図で、この図1に示すように、本発明の多重アクセ
スキャッシュメモリ装置1は、キャッシュ機構2,入力
ポート3,切替機構4および切替機構制御部5を有して
構成されている。ここで、キャッシュ機構2は、アクセ
ス対象データを保持するデータアレイ2aと、このデー
タアレイ2aに保持されているデータを特定するための
タグ情報を保持するタグアレイ2bとの組2Aを複数そ
なえて構成されている。
入力ポート3により、複数のアクセス要求を同時に受け
付けることができるようになっている。切替機構4は、
複数の入力ポート3とキャッシュ機構4との間に介設さ
れ、各入力ポート3からアクセス要求に伴って入力され
るアクセス対象データ指定情報(アドレスやその他の識
別子等)を、キャッシュ機構2において組2A毎にそな
えられたデータアレイ2aとタグアレイ2bとの組に対
し、選択的に切り替えて供給するためのものである。
により2以上のアクセス要求を受け付けた場合、複数の
組2Aを相互に重なり合わない2以上の部分集合に分割
し、各アクセス要求に伴うアクセス対象データ指定情報
を、それぞれ、各部分集合に供給して各アクセス要求に
応じたアクセスを並列的に実行するように切替機構4の
切替状態を制御するものである(請求項21,1)。
のアクセス要求を受け付けた場合、切替機構制御部5
が、当該単一のアクセス要求に伴うアクセス対象データ
指定情報を全ての組2Aに供給して当該単一のアクセス
要求に応じたアクセスを実行するように切替機構4の切
替状態を制御する(請求項22,2)。このとき、キャ
ッシュ機構2をセットアソシアティブ方式によって動作
するものとし、各組2Aをウェイとして取り扱ってもよ
い(請求項23,3)。
集合において実行した結果、アクセス対象データが当該
部分集合に保持されていないことが判明したアクセス要
求については、切替機構制御部5が、当該アクセス要求
に伴うアクセス対象データ指定情報を、当該部分集合に
含まれない組2Aに供給して当該アクセス要求に応じた
アクセスを実行するように切替機構4の切替状態を制御
する(請求項24,4)。
各部分集合において実行した後、当該アクセス要求のア
クセス対象データが当該部分集合に保持されているか否
かが判明する前に、切替機構制御部5が、当該アクセス
要求に伴うアクセス対象データ指定情報を、当該部分集
合に含まれない組2Aに供給して当該アクセス要求に応
じたアクセスを実行するように切替機構4の切替状態を
制御するように構成してもよい(請求項25,5)。
全ての組2Aにおけるデータアレイ2aのいずれにも保
持されていないことが判明した時点で、当該アクセス要
求はキャッシュ機構2に対してミスヒットしたものと判
定し、当該アクセス要求に伴うアクセス対象データ指定
情報に基づいて記憶装置から該当するデータを読み出し
てキャッシュ機構2に書き込むように制御するキャッシ
ュ機構制御部をそなえておく(請求項26,6)。
2Aに格納されているデータに対する最終アクセス時刻
を参照し、最も古いデータを保持している組2Aに、ミ
スヒット判定に伴って記憶装置から読み出されたデータ
を書き込むように制御するようにしてもよい(請求項2
7,7)。キャッシュ機構2の各組2Aに対して、アク
セス要求元情報に応じたデータ格納優先度を予め設定・
付与するための優先度付与機能をそなえてもよい(請求
項28,8)。
ヒット判定されたアクセス要求のアクセス要求元情報に
ついて優先度付与機能により各組2Aに対し予め設定さ
れたデータ格納優先度を参照し、そのデータ格納優先度
の高い組2Aに、ミスヒット判定に伴って記憶装置から
読み出されたデータを優先的に書き込むように制御する
(請求項29,9)。データ格納優先度の高い組2Aに
データを書き込むための空きが無い場合、キャッシュ機
構制御部が、データ格納優先度に関係無く空きのある他
の組2Aに前記データを書き込むように制御する(請求
項30,10)。また、全組2Aにデータを書き込むた
めの空きが無い場合、キャッシュ機構制御部が、データ
格納優先度の高い組2Aに前記データを書き込むように
制御する(請求項31,11)。さらに、キャッシュ機
構制御部が、各組2Aに格納されているデータに対する
最終アクセス時刻を参照し、データ格納優先度の高い組
2Aに最新のデータが格納されている場合には、最も古
いデータを保持している組2Aに前記データを書き込む
ように制御してもよい(請求項32,12)。
めの空きが無い場合、キャッシュ機構制御部が、各組2
Aに格納されているデータに対する最終アクセス時刻を
参照し、最も古いデータを保持している組2Aに前記デ
ータを書き込むように制御してもよい(請求項33,1
3)。一方、切替機構制御部5が、複数の入力ポート3
により受け付けられたアクセス要求のアクセス要求元情
報について、優先度付与機能により各組2Aに対し予め
設定されたデータ格納優先度を参照し、そのデータ格納
優先度の高い組2Aを含む部分集合に、当該アクセス要
求に伴うアクセス対象データ指定情報を優先的に供給し
て当該アクセス要求に応じたアクセスを実行するように
切替機構4の切替状態を制御するように構成してもよい
(請求項34,14)。
付与する際に用いられるアクセス要求元情報としては、
以下のようなものが用いられる。 キャッシュ機構2に対するアクセスを行なう少なくと
も1つのプロセッサにより実行されるプロセス毎に設定
されるプロセス識別子(請求項35,15)。 キャッシュ機構2に対するアクセスを行なう少なくと
も1つのプロセッサにより処理されるスレッド毎に設定
されるスレッド識別子(請求項36,16)。
なうプロセッサが複数存在する場合に、各プロセッサを
特定する情報(プロセッサ番号等;請求項37,1
7)。 アクセス要求に伴うアクセス対象データ指定情報とし
てのアドレス(請求項38,18)。また、前述のごと
く、切替機構制御部5により、データ格納優先度に応じ
て切替機構4の切替状態を制御する場合(請求項34,
14)、キャッシュ機構2の所定組2Aに格納されてい
るデータを、キャッシュ機構2の他の組2Aに移動させ
る移動指示機能をそなえてもよい(請求項39,1
9)。
2bの写しである複写タグアレイを有してなるスヌープ
機構をそなえ、各アクセス要求に応じたアクセスを各部
分集合において実行した結果、アクセス対象データが当
該部分集合に保持されていないことが判明したアクセス
要求については、スヌープ機構が、当該アクセス要求に
伴うアクセス対象データ指定情報を、当該部分集合に含
まれない組2Aに供給し、その組2Aの複写タグアレイ
に保持されるタグ情報と前記アクセス対象データ指定情
報とに基づいて、当該アクセス要求のアクセス対象デー
タを保持している組2Aが存在するか否かを判定し、該
当する組2Aが存在する場合にはその組2Aを特定する
ように構成してもよい(請求項40,20)。
明による、キャッシュ機構2に対する多重アクセス方法
の基本原理と多重アクセスキャッシュメモリ装置1の基
本的動作とについて簡単に説明する。なお、図2〜図1
8に示す例では、キャッシュ機構2が、セットアソシア
ティブ方式によって動作し、4つのウェイ(組)2A−
1〜2A−4からなり、各ウェイ2A−1〜2A−4
に、アクセス対象データを保持するデータアレイ2a
と、このデータアレイ2aに保持されているデータを特
定するためのタグ情報を保持するタグアレイ2bとの組
をそなえて構成されているものとする(請求項3,2
3)。
グループに分割し、異なるグループに対して異なるアク
セスを許し、同一のグループ内のウェイは単一のアクセ
スに対して応じるものである。例えば図2(a),
(b)に示すように、キャッシュ機構2に対する2つの
アクセスA,Bを同時に要求された場合、後述するごと
くヒット率が高くなるよう考慮しながら、ウェイ2A−
1〜2A−4を、ウェイ2A−1および2A−2のグル
ープ(部分集合)とウェイ2A−3および2A−4のグ
ループ(部分集合)とに分割する。
4の切替状態を制御し、各アクセスA,Bに伴うアクセ
ス対象データ指定情報(例えばアドレス)を、それぞれ
図2(a),(b)に示すように、各グループに供給し
てアクセスA,Bを並列的に実行する(請求項1,2
1)。図3に示すように、単一のアクセス要求(アクセ
スA)しか存在しない場合には、切替機構制御部5によ
り切替機構4の切替状態を制御することによりアクセス
Aに伴うアクセス対象データ指定情報を全てのウェイ2
A−1〜2A−4に供給し、全てのウェイ2A−1〜2
A−4を用いてアクセスAを実行する(請求項2,2
2)。
よび切替機構制御部5の機能によって、アクセスAをウ
ェイ2A−1〜2A−3のグループで実行すると同時
に、アクセスBをウェイ2A−4で実行し、アクセスA
についてはウェイ2A−2でヒット(アクセス対象デー
タがウェイ2A−2のデータアレイ2aに保持されてい
る場合)し、アクセスBについてはウェイ2A−4でミ
スヒット(アクセス対象データがウェイ2A−4のデー
タアレイ2aに保持されていない場合)したものとす
る。この場合、アクセスAは、ウェイ2A−2でヒット
したことにより、その処理を終了する一方、アクセスB
は、ウェイ2A−4でミスヒットであったため、その処
理を継続する。
前述した切替機構4および切替機構制御部5の機能によ
って、アクセスBをウェイ2A−4以外のウェイ2A−
1,2A−2のグループで実行する(請求項4,2
4)。図5に示す例では、同時に、他のアクセスCを受
け付けおり、このアクセスCをウェイ2A−3,2A−
4のグループで実行している。このとき、アクセスBは
ウェイ2A−1でヒットしたので、その処理を終了す
る。
A−4でミスヒットしたため、その処理を継続し、図6
に示すように、前述した切替機構4および切替機構制御
部5の機能によって、アクセスCをウェイ2A−3,2
A−4以外のウェイ2A−1,2A−2のグループで実
行する。このアクセスCは、ウェイ2A−3,2A−4
でもミスヒットしたため、キャッシュ機構2における全
ウェイ2A−1〜2A−4でミスヒットしたことにな
り、キャッシュ機構2に対してミスヒットしたものと判
定される。この場合、記憶装置(主記憶等のメモリ)に
対するアクセス要求を行ない、そのアクセスCに伴うア
クセス対象データ指定情報に基づいて記憶装置から該当
するデータを読み出してキャッシュ機構2に書き込む
(請求項6,26)。
スヒットが確定した後に、残りのウェイに対してのみア
クセスを行なうことにより、トラフィック率を下げるこ
とができるが、ミスヒットが確定する前に、他のウェイ
に対してアクセスを先出しして高速処理を行なうことも
できる(請求項5,25)。なお、キャッシュ機構2に
記憶装置からのデータを、各ウェイ2A−1〜2A−4
のうち最も古いデータを保持しているウェイに書き込む
ことにより、アクセス対象になる可能性の高い新しいデ
ータを保持し続けることができる〔LRU(Least Rece
ntly Used)の採用;請求項7,27〕。
先度に従って、キャッシュ機構2の各ウェイ2A−1〜
2A−4に対する書込/読出アクセスを行なうことによ
り、ヒット率(特に、初回のアクセスに対するヒット
率)を向上させることもできる(請求項8,28)。デ
ータ格納優先度に従って、データ格納を行なう場合の例
を図7〜図14に示す。ここに示す例では、アクセスC
がミスヒットであったため、主記憶等の記憶装置からの
応答が有り、これをウェイ2A−1〜2A−4のうちの
いずれかに格納する必要が生じているものとする。ま
た、アクセスCについては、優先度付与機能によりウェ
イ2A−3へデータを優先的に格納するようにデータ格
納優先度が付与・設定されているものとする。
A−1〜2A−4に対しアクセスして、アクセスCにつ
いて優先されるべきウェイ2A−3に空きがあるか否か
を調べる。この過程は、全てのウェイ2A−1〜2A−
4に対して一度に行なっても分割して行なってもよい。
図7に示すように優先すべきウェイ2A−3に空きがあ
った場合、図8に示すように、記憶装置からのデータを
ウェイ2A−3に格納する(請求項9,29)。なお、
ウェイ2A−3のデータアレイ2aにおいてデータを格
納すべきエントリを指定するためのアドレスは、先に与
えることもできるし、格納すべきウェイを決定した後に
与えることもできる。
イ2A−3に空きが無い場合には、図10に示すように
他の空いているウェイ2A−1に対してデータの格納を
行なう(請求項10,30)。このとき、全てのウェイ
2A−1〜2A−4にデータを書き込むための空きが無
い場合、LRU方式を採用し、最も古いデータを保持し
ているウェイにデータを書き込めば、アクセス対象にな
る可能性の高い新しいデータを保持し続けることができ
る(請求項13,33)。
A−1〜2A−4に対して空きが無い場合には、図12
に示すように、優先ウェイ2A−3にデータを上書きし
て格納する(請求項11,31)。さらに、図13に示
すように全てのウェイ2A−1〜2A−4に対して空き
が無く、且つ、優先ウェイ2A−3に格納されているデ
ータが最新のものである場合には、最新のデータに対し
ては今後直ちにアクセスする可能性が高いので、図14
に示すように、LRU方式を組み合わせ、優先ウェイ2
A−3に対するデータ書込を行なわず、最も古いデータ
を保持している他のウェイ2A−4にデータを格納す
る。これにより、最新のデータを保持し続けることがで
きる(請求項12,32)。
いられるアクセス要求元情報の例を図15〜図18に示
す。前述したように、初回のアクセスに対するヒット率
を向上させるために、格納されるウェイ2A−1〜2A
−4に対して優先度付けを行なうが、その際、図15に
示すように、明示的にプロセス番号(プロセス識別子;
図中のプロセスA〜C)を指示することによりウェイ2
A−1〜2A−4に対する優先度設定を行なったり(請
求項15,35)、図16に示すように、明示的にスレ
ッド番号(スレッド識別子;図中のスレッドA〜C)を
指示することによりウェイ2A−1〜2A−4に対する
優先度設定を行なったりする(請求項16,36)。
合には、図17に示すように、プロセッサ番号(図中の
プロセッサA〜C)を指示することによりウェイ2A−
1〜2A−4に対する優先度設定を行なったりすること
もできる(請求項17,37)。さらに、プロセス番号
等が明示されていない場合には、図18に示すように、
プロセスA〜C毎にワーキングエリアを指定する上限ポ
インタA〜C/下限ポインタA〜Cを設けておき、アク
セス対象データのアドレスと上限ポインタA〜C/下限
ポインタA〜Cの指示アドレスとに基づいて、そのアド
レスが、キャッシュ機構2のアドレス空間中のどのアド
レス領域にあるかに従ってプロセス番号等を推定して、
優先ウェイ2A−1〜2A−4に対するデータ格納優先
度を決めることもできる(請求項18,38)。
び下限ポインタAによりプロセスAのワーキングエリア
が指定され、これらの上限ポインタAおよび下限ポイン
タAの指示値の間に存在するアドレスに対してアクセス
が行なわれた場合には、そのアクセスは、プロセスAに
よるものと推定する。また、図18に示す例では、プロ
セスBのワーキングエリアとプロセスCのワーキングエ
リアとが重複しているが、このような場合、上限ポイン
タBおよび上限ポインタCの指示値の間に存在するアド
レスに対してアクセスが行なわれた場合には、そのアク
セスは、プロセスBによるものと推定する。上限ポイン
タCおよび下限ポインタBの指示値の間に存在するアド
レスに対してアクセスが行なわれた場合には、そのアク
セスは、プロセスB,Cのどちらとしても取り扱うこと
が可能であると判断する。さらに、下限ポインタBおよ
び下限ポインタCの指示値の間に存在するアドレスに対
してアクセスが行なわれた場合には、そのアクセスは、
プロセスCによるものと推定する。
て、できるだけ重複しないように、各ウェイ2A−1〜
2A−4に対す優先度設定を行なう。なお、ここでは、
アドレスに基づいてプロセスを推定しているが、プロセ
ス番号,スレッド番号,プロセッサ番号等を推定し、前
述と同様に優先度設定を行なうようにしてもよい。一
方、前述したようにデータ格納優先度に応じたアクセス
を行なう場合、あるウェイ(組)に格納されているデー
タを、そのデータに対してアクセスを行なう可能性の高
いプロセス,スレッド,プロセッサ等のアクセス要求元
情報について高いデータ格納優先度を設定されているウ
ェイ(組)に移動させることにより、初回のアクセスの
ヒット率をより向上させることができる(請求項19,
39)。
ったアクセスについては、スヌープ機構における複写タ
グアレイを用いてアクセス対象データの存在を判定する
ことにより、通常のアクセスとミスヒットしたアクセス
についてのスヌープ処理とを並列的に行なうことができ
る(請求項20,40)。なお、図2〜図18にて説明
した例では、キャッシュ機構2が4ウェイのセットアソ
シアティブ方式で動作するものとし、2つのアクセスが
同時に要求される場合について説明しているが、本発明
は、これらに限定されるものではない。
施の形態を説明する。 (a)第1実施形態の説明 図19は本発明の第1実施形態を適用されるシステムの
全体構成を示すブロック図であり、この図19に示すよ
うに、第1実施形態の多重アクセスキャッシュメモリ装
置10は、例えばスーパスカラ方式のプロセッサ11に
対して用いられている。
パイプライン12A,12Bが独立に2つ設けられてお
り、それぞれが独立のアドレスを同時にアクセスする能
力を有している。これらの2つのパイプライン12A,
12Bはいずれもデータをアクセスするために設けられ
ているが、データのすれ違いを回避すべく同一データに
対するアクセスは一度に1つのみを行なうためのチェッ
クがプロセッサ11にて行なわれている。これに相当し
ないアクセス、つまり、異なるデータに対する2つのア
クセスは同時に要求できるようになっている。
するためのユニット13を別に有しており、この命令フ
ェッチユニット13は、多重アクセスキャッシュメモリ
装置10ではなく、独立した命令キャッシュメモリ装置
14に接続されている。さらに、プロセッサ11は、多
重アクセスキャッシュメモリ装置10および命令キャッ
シュメモリ装置14を介し主記憶(記憶装置)15に接
続されている。そして、プロセッサ11は、各キャッシ
ュメモリ装置10,14に対してアクセスし、そのアク
セス対象のデータが各キャッシュメモリ装置10,14
に保持されている場合には、各キャッシュメモリ装置1
0,14に対して書込/読出等の処理を行なうようにな
っている。一方、そのアクセス対象のデータが各キャッ
シュメモリ装置10,14に保持されていない場合に
は、各キャッシュメモリ装置10,14が、主記憶15
に対するアクセスを行ない、プロセッサ11のアクセス
対象データを読み出すようになっている。
ながら実行するということはしないため、データのすれ
違いがあっても問題としない。なお、命令書き替えを行
なった場合には、全てのキャッシュメモリ装置10,1
4をフラッシュすることにより(即ち、必要なデータを
全てキャッシュメモリ装置10,14から主記憶15に
書き戻し、エントリを無効にすることにより)、データ
の一貫性が保持されるようになっている。
しての多重アクセスキャッシュメモリ装置10の全体構
成を示すブロック図であり、この図20に示すように、
第1実施形態の多重アクセスキャッシュメモリ装置10
は、図22にて詳述するごとくウェイ40−1〜40−
4の集合を含むウェイ部21と、後述するような各種機
能を有しウェイ部21の動作を制御する制御部22とを
有して構成されるほか、アドレス入力ポート23A,2
3B,データ入出力ポート24A,24B,制御線入出
力ポート25A,25B,アドレス出力ポート26,デ
ータ入出力ポート27および制御線入出力ポート28を
有している。
B,データ入出力ポート24A,24B,制御線入出力
ポート25A,25Bは、図19に示したプロセッサ1
1に接続され、このプロセッサ11からキャッシュメモ
リ装置10に対するアクセスの受付を行なうためのもの
で、2つのアクセスを同時に受け付けることができるよ
うに各ポートは2つずつそなえられている。
25Aおよび23B〜25Bにて受け付けられるアクセ
スを、それぞれアクセスAおよびアクセスBとして表現
する場合がある。また、図20や図22中、アクセス
A,Bに対応するポートや端子等に対応する部分には、
それぞれ、符号“A”,“B”が付されている。アドレ
ス出力ポート26,データ入出力ポート27および制御
線入出力ポート28は、図19に示した主記憶15に接
続され、主記憶15に対するアクセスを行なうためのも
のである。なお、図20中、主記憶15に接続されるポ
ートには符号“E”が付されている。
A,30B,データ入出力端子31A,31B,タグ出
力端子32,モードビット端子33およびコントロール
端子34が設けられている。そして、アドレス入力端子
30A,30Bおよびタグ出力端子32は、それぞれア
ドレス入力ポート23A,23Bおよびアドレス出力ポ
ート26に直接的に接続されている。
ッシュ機構40)内のデータを主記憶15に書き戻す際
に、その書き戻し先のアドレスを、アドレス出力ポート
26を通じて主記憶15へ出力するほか、ウェイ部21
(キャッシュ機構40)でミスヒット判定された場合
に、ミスヒットとなったアクセスについての対象データ
を主記憶15から読み出すべくその対象データを指定す
るアドレスを、アドレス出力ポート26を通じて主記憶
15へ出力するためのものである。このタグ出力端子3
2からの出力は、前述のようなアドレスを出力しない場
合には、ハイインピーダンスになっている。
入出力ポート24Aと主記憶15に対するデータ入出力
ポート27とに、自由に切り替えられる双方向スイッチ
29Aを介して接続されている。同様に、データ入出力
端子31Bは、データ入出力ポート24Bと主記憶15
に対するデータ入出力ポート27とに、自由に切り替え
られる双方向スイッチ29Bを介して接続されている。
なお、双方向スイッチ29A,29Bは、例えば図21
に示すように、3つの双方向素子29aを、三角形の各
辺上に配置するような形で接続することにより構成され
ている。
8,モードビット端子33およびコントロール端子34
は、制御部22に接続されている。この制御部22は、
制御線入出力ポート25A,25Bを通じてプロセッサ
11との間でアクセスA,Bについての制御情報をやり
取りするとともに、制御線入出力ポート28を通じて主
記憶15との間でこの主記憶15に対するアクセスにつ
いての制御情報をやり取りするようになっている。
間でコントロール端子34を介して各種制御信号をやり
取りすることによりウェイ部21(図22にて後述する
キャッシュ機構40,クロスバスイッチ41〜43等)
の状態を制御する機能を有するほか、図22にて後述す
るごとく、モードビット情報(後述するVALID,D
IRTY,TIME等)を、各ウェイ40−1〜40−
4のデータアレイ40aにモードビット端子33を介し
て書き込んだり、そのデータアレイ40aからモードビ
ット端子33を介して読み出したりする機能を有してい
る。
構制御部221およびキャッシュ機構制御部222とし
て機能するほか、優先度付与機能223および移動指示
機能224も有している。切替機構制御部221は、図
22にて後述するクロスバスイッチ41〜43の切替状
態を制御するもので、その制御動作の詳細については後
述する。
て後述するキャッシュ機構40に対するアクセス(書込
/読出)を制御する機能のほか、キャッシュ機構40に
保持されているデータがプロセッサ11からのアクセス
により書き替えられた場合にそのデータの主記憶15へ
の書き戻しを制御する機能や、キャッシュ機構40でミ
スヒットしたアクセスについて主記憶15に対するアク
セスを実行して該当するデータを読み出しキャッシュ機
構40に書き込むように制御する機能などを有してい
る。
40の各ウェイ40−1〜40−4に対して、アクセス
要求元情報(プロセス番号,スレッド番号等)に応じた
データ格納優先度を予め設定・付与するためのものであ
る。切替機構制御部221およびキャッシュ機構制御部
222は、この優先度付与機能223により設定・付与
されたデータ格納優先度と後述する比較器40cによる
比較結果(ヒット/ミスヒット判定)とに従って制御動
作を行なうようになっている。
を受けると、キャッシュ機構40の所定ウェイに格納さ
れているデータを、キャッシュ機構40の他のウェイに
移動させるように指示をウェイ部21へ出力するための
ものである。さて、ウェイ部21は、図22に示すごと
く、キャッシュ機構40とクロスバスイッチ(切替機
構)41〜43とを有して構成されている。
ィブ方式によって動作する4ウェイ(組)40−1〜4
0−4を有している。各ウェイ40−1〜40−4に
は、アクセス対象データを保持するデータアレイ40a
と、このデータアレイ40aに保持されているデータを
特定するためのタグ情報を保持するタグアレイ40bと
の組がそなえられるほか、比較器40cがそなえられて
いる。この比較器40cは、後述するごとく、タグアレ
イ40bに保持されるタグ情報と、アドレス入力端子3
0Aまたは30Bからのアドレス(つまりアドレス入力
ポート23Aまたは23Bで受け付けたアクセス要求に
伴うアクセス対象データ指定情報)の一部とを比較する
ものである。
0Bからクロスバスイッチ41を介して各ウェイ40−
1〜40−4に入力されたアドレスの下位ビット(第1
ビット列)は、データアレイ40aおよびタグアレイ4
0bに与えられ、特定のエントリを指定するために用い
られる一方、同アドレスの上位ビット(第2ビット列)
は比較器40cに与えられる。
いる場合、タグアレイ40bにおいて、そのデータが保
持されているデータアレイ40aのアドレス(第1ビッ
ト列)と同じアドレスに、そのデータを指定するアドレ
スの上位ビット(第2ビット列)がタグ情報として保持
されている。従って、比較器40cにより、アクセス対
象データ指定情報として入力されたアドレスの上位ビッ
トと、そのアドレスの下位ビットによりタグアレイ40
bから読み出されたタグ情報とを比較することで、その
アドレスに対応する目的データがデータアレイ40aに
保持されているか否かを判定することができるようにな
っている。
て入力されたアドレスの上位ビットとタグアレイ40b
からのタグ情報とが一致した場合には、そのアドレスに
対応する目的データがデータアレイ40aに保持されて
いると判定(ヒット判定)される一方、一致していない
場合には、そのアドレスに対応する目的データがデータ
アレイ40aに保持されていないと判定(ミスヒット判
定)されるようになっている。
とともにモードビットが含まれており、そのモードビッ
トには、VALIDビット,DIRTYビットおよびT
IMEがある。これらのモードビットは、図20にて前
述した通り、制御部22によりモードビット端子33を
介して書込・更新されるようになっている。ここで、初
期化時には、VALIDビットを全て“0”にセットす
ることにより、当該データアレイ40aの全てのエント
リを無効化する。また、DIRTYビットは、過去にデ
ータに対する書込が行なわれたがその書込後のデータを
主記憶15に書き戻していないため、エントリを無効化
する際には、そのデータを主記憶15に書き戻す必要で
ある場合に“1”にセットされるものである。TIME
は、そのデータアレイ40aに格納されているデータに
対して最後にアクセスのあった時刻(最終アクセス時
刻)を示すもので、データアレイ40aに対するアクセ
スが行なわれる度に制御部22により更新される。
ュ機構40に対してアドレス入力端子30A,30B
(アドレス入力ポート23A,23B)からアクセス要
求に伴って入力されたアドレス(アクセス対象データ指
定情報)を各ウェイ40−1〜40−4のデータアレイ
40aおよびタグアレイ40bの組に対し選択的に切り
替えて供給するためのものである。
力端子30Aからのアドレスをウェイ40−1〜40−
4にそれぞれ供給するための切替ポイント41A−1〜
41A−4と、アドレス入力端子30Bからのアドレス
をウェイ40−1〜40−4にそれぞれ供給するための
切替ポイント41B−1〜41B−4とにより構成され
ており、制御部22における切替機構制御部221によ
り、各切替ポイント41A−1〜41A−4および41
B−1〜41B−4がオン/オフ駆動されることで、ク
ロスバスイッチ41の切替状態が制御されるようになっ
ている。
出力ポート24A,24Bまたは27から入力されたデ
ータを、各ウェイ40−1〜40−4のキャッシュ機構
40のデータアレイ40bに対し選択的に切り替えて供
給する一方、4つのウェイ40−1〜40−4における
データアレイ40bのいずれか一つに保持されているデ
ータを、データ入出力ポート24A,24Bまたは27
へ選択的に切り替えて出力するためのものである。ま
た、クロスバスイッチ42は、制御部22の移動指示機
能224から、キャッシュ機構40に格納されているデ
ータの移動が指示された場合に、移動元のウェイから移
動先のウェイへとデータを出力するための機能を果たす
ものでもある。
力端子31A(データ入出力ポート24Aまたは27)
とウェイ40−1〜40−4のデータアレイ40aとを
接続するための切替ポイント42A−1〜42A−4
と、データ入出力端子31B(データ入出力ポート24
Bまたは27)とウェイ40−1〜40−4のデータア
レイ40aとを接続するための切替ポイント42B−1
〜42B−4とにより構成され、やはり、制御部22に
おける切替機構制御部221により、各切替ポイント4
2A−1〜42A−4および42B−1〜42B−4が
オン/オフ駆動されることで、クロスバスイッチ42の
切替状態が制御されるようになっている。
ス入力端子30A,30Bから入力され各ウェイ40−
1〜40−4に供給されたアドレス、または、各ウェイ
40−1〜40−4においてタグアレイ40bから読み
出されたアドレスを、アドレス出力ポート26へ選択的
に切り替えて出力するためのものである。このクロスバ
スイッチ43は、ウェイ40−1〜40−4へのアドレ
ス線またはウェイ40−1〜40−4のタグアレイ40
bとタグ出力端子32(アドレス出力ポート26)とを
接続するための切替ポイント43−1〜43−4とによ
り構成されており、やはり、制御部22における切替機
構制御部221により、各切替ポイント43−1〜43
−4がオン/オフ駆動されることで、クロスバスイッチ
43の切替状態が制御されるようになっている。
ャッシュ機構40内のデータを主記憶15に書き戻す際
には、その書き戻し先のアドレスが、タグアレイ40b
からアドレス出力ポート26を通じて主記憶15へ出力
されるほか、キャッシュ機構40でミスヒット判定され
たアクセスについての対象データを主記憶15から読み
出すべく、その対象データを指定するアドレスが、アド
レス出力ポート26を通じて主記憶15へ出力されるよ
うになっている。
子33と各データアレイ40aとの接続状態、および、
コントロール端子34と各部(キャッシュ機構40やク
ロスバスイッチ41〜43)との接続状態の図示は省略
されている。次に、上述のごとく構成された第1実施形
態の多重アクセスキャッシュメモリ装置10の動作(制
御部22における切替機構制御部221,キャッシュ機
構制御部222の制御動作等を含む)について説明す
る。
入出力ポート25A,25Bを通じて様々な指示を受け
取る。プロセッサ11は、メモリアクセスを実行する前
に、例えばプロセスやスレッドの切り替え等が行なわれ
る度に、そのプロセスやスレッドの番号(識別子)を用
いて優先すべきウェイを決定しプロセッサ11側のレジ
スタ(図示せず)に予め設定しておく。
ジスタから優先ウェイに関する値が読み出されて制御線
入出力ポート25Aまたは25Bを通じて制御部22に
送られる。これによって、制御部22の優先度付与機能
223は、そのアクセスAまたはBについて、優先すべ
きウェイを決定することができる。また、ハードウェア
量の増加を避けるために、アクセスAは必ずウェイα
(40−1)により優先的に取り扱うとともにアクセス
ポートBは必ずウェイγ(40−3)で優先的に取り扱
う等の決定を行なえるようにしてもよい。なお、以下の
説明において、ウェイ40−1〜40−4をそれぞれウ
ェイα,β,γ,δとして表記する場合がある。
データの流れを予測できる場合には、ポート23A,2
4A,25Aにて受け付けられるアクセスAとポート2
3B,24B,25Bにて受け付けられるアクセスBと
をどのように分割されたウェイグループ(部分集合)に
より実行するかの情報を、全て決定することができる場
合がある。このような場合には、以下に示すようなウェ
イα〜δの動的な分割を行なわず、制御線による静的な
指示を用いてアクセスすべきウェイを決定する。
てデータの存在するウェイの予想が全く立たない場合も
ある。このような場合には、その情報が制御線によって
制御線入出力ポート25A,25Bを通じて制御部22
に送られ、この制御部22の切替機構制御部221によ
ってクロスバスイッチ41の切替状態を制御すること
で、多重アクセスキャッシュメモリ装置10を、毎回、
単一のアクセスのみを許すように動作させる(図3参
照)。
されるべきウェイが決定されるか、または、ウェイの動
的な決定は必要無いかどうかが判断される。ついで、単
一のアクセス要求があった場合の、本実施形態の多重ア
クセスキャッシュメモリ装置10の動作を説明する。
今、アドレス入力ポート23Aに、アクセス要求(アク
セスA)に伴うアドレスが入力されたものとする。この
場合には、切替機構制御部221により、クロスバスイ
ッチ41の切替ポイント41A−1,41A−2,41
A−3,41A−4がオン駆動されて、アクセスAに伴
うアドレス(アクセス対象データ指定情報)をウェイ
α,β,γ,δに供給する。
γ,δにおいて、前述した通り、データアレイ40aお
よび,タグアレイ40bがアクセスされ、比較器40c
によるタグの比較が行なわれる。その比較の結果、タグ
が一致した場合には、そのエントリは目的データを含む
はずであるが、同時に、データアレイ40aのモードビ
ットにおけるVALIDビットもチェックされ、その値
が“1”である時のみ、そのエントリを有効として扱
う。ウェイα,β,γ,δのうちに上記条件を満たすも
のが存在すれば、これをヒットとして扱う。
替機構制御部221によりクロスバスイッチ42の切替
ポイント42A−1〜42A−4のうちの該当するもの
をオン駆動し、データアレイ40aの当該エントリから
データを読み出して、そのデータを、データ入出力端子
31A,双方向スイッチ29Aおよびデータ入出力ポー
ト24Aを通じてプロセッサ11に送り返す。同時に、
制御部22により、データアレイ40aのモードビット
に含まれるTIMEに現在時刻が最終アクセス時刻とし
て書き込まれる。
は、切替機構制御部221によりクロスバスイッチ42
の切替ポイント42A−1〜42A−4のうちの該当す
るものをオン駆動し、プロセッサ11からデータ入出力
ポート24A,双方向スイッチ29Aおよびデータ入出
力端子31Aを通じて入力されたデータが、当該エント
リに対して書き込まれる。同時に、前述と同様、制御部
22により、データアレイ40aのモードビットに含ま
れるTIMEに現在時刻が最終アクセス時刻として書き
込まれるほか、DIRTYビットにエントリの内容が変
更されたことを示す“1”が設定される。
イγ(40−3)でアクセスアドレスがヒットしている
とすれば、クロスバスイッチ42の切替ポイント42A
−3をオン駆動してデータの供給を行なうほか、ウェイ
α(40−1)でアクセスアドレスがヒットしていると
すれば、クロスバスイッチ42の切替ポイント42B−
1をオン駆動してデータの供給を行なう。
の全てが上記条件を満たさない場合には、ミスヒットと
して扱う。アクセスAについてミスヒット判定された場
合には、アクセスAの対象データを主記憶15から読み
出してキャッシュ機構40に格納すべく、まず、各ウェ
イα〜δのデータアレイ40aにおけるモードビットの
VALIDビットおよびTIMEが、制御部22により
参照される。
いない場合には、各ウェイα〜δにおけるVALIDビ
ットを参照し、“0”のものが存在すれば、そのエント
リは空であるので、そのエントリに、主記憶15から読
み出したデータを格納することが決定される。これに対
し、全てのVALIDビットが“1”であれば、各ウェ
イα〜δにおけるTIME(最終アクセス時刻)の比較
が行なわれ、その中で最も古いTIMEをもつウェイが
データ格納先として決定される。
場合には、まずVALIDビットを参照し、そのビット
が“0”であれば、そのエントリに、主記憶15から読
み出したデータを格納することが決定される(図7,図
8参照)。優先ウェイのVALIDビットが“1”であ
り、他のウェイのVALIDビットに“0”のものが存
在すれば、そのVALIDビット“0”のエントリにデ
ータを格納することが決定される(図9,図10参
照)。全てのVALIDビットが“1”である場合に
は、最も古いTIMEをもつウェイに格納することが決
定される(図13,図14参照)。それ以外の場合に
は、優先ウェイに対して格納することが決定される(図
11,図12参照)。
データを格納すべきウェイが決定されると、制御部22
により、そのウェイのエントリにおけるVALIDビッ
トおよびDIRTYビットを参照し、両方のビットが
“1”である場合には、そのエントリのデータを主記憶
15に対して書き戻すべく、クロスバスイッチ43を経
由してタグ出力端子32から書き戻しアドレス(タグア
レイ40bのタグ情報)を送出する。
は、リードアドレスを主記憶15に送出し、読み出され
たデータを、格納先として決定されたウェイにおけるデ
ータアレイ40aに格納し、VALIDビットに“1”
を、DIRTYビットに“0”を書き込む。そして、タ
グアレイ40bには、主記憶15に対してアクセスした
アドレスの上位ビット(第2ビット列)をタグ情報とし
て書き込む。データアレイ40aに格納されたデータ
は、プロセッサ11にも送られる。
は、プロセッサ11からの書込データを、格納先として
決定されたウェイにおけるデータアレイ40aの対象ア
ドレスに格納し、VALIDビットに“1”を、DIR
TYビットに“1”を書き込む。そして、この場合も、
タグアレイ40bに、主記憶15に対してアクセスした
アドレスの上位ビット(第2ビット列)をタグ情報とし
て書き込む。
らのデータを格納すべきウェイを決定してから、アクセ
スが完了するまでの間は、格納先として決定されたウェ
イのみが使用されており、他のウェイは使用可能である
ことに注意すべきである。例えば、図23に示すよう
に、単一リードアクセスAに対して全てのウェイα〜δ
が使用された後(期間T0〜T1)、このアクセスAが
ミスヒットと判定され、格納先としてウェイβが決定さ
れ、このウェイβについてのモードビットに、VALI
D=1およびDIRTY=1が設定されているものとす
る。この場合、エントリの書き戻しを行なう期間(T1
〜T2)と、主記憶15からアクセスすべき内容をリー
ドする期間(T2〜T3)は、ウェイβ以外のウェイ
α,γ,δは空き状態にある。
るウェイα,γ,δにおいて、他のアクセスを受け付け
ることもできる。この期間に、他の単一アクセスBを受
け付けた場合には、空き状態のウェイα,γ,δを使用
する。アクセスBについてこれらのウェイα,γ,δの
中に有効なエントリをもつものがあれば、ヒットとして
処理することができる。アクセスBについて有効なエン
トリが存在しなかった場合には、前のアクセスAが終了
し、ウェイβが空きとなった時点で、ウェイβに対して
アクセスする。そして、アクセスBについてウェイβに
有効なエントリが存在する場合には、ヒットとして処理
するが、無効であった場合には、上記と同様のミスヒッ
トの処理を行なう。
3A,24A,25Aとポート23B,24B,25B
とで同時に受け付けられた場合の動作について説明す
る。アクセスA,Bのどちらか一方でも、優先ウェイの
指定を受けていない場合には、一方のアクセスを待機さ
せ、一つずつアクセスを行なう。この場合の動作は前述
した単一アクセスの場合と全く同じである。
ェイの指定を受けている場合にも、一方のアクセスを待
機させ一つずつアクセスを行なう。さらに、アクセス
A,Bの優先ウェイが一致しなかった場合でも、前記の
ミスヒット期間などで使用中のウェイと優先ウェイが重
なった場合には、そのアクセスは待機させられる。そう
でなければ、アクセスA,Bの同時アクセスが行なわれ
る。
δの割当手法としては様々のものが考えられるが、その
一例を図24に示す。この図24は、アクセスA,Bに
ついて予め設定された優先ウェイ(α〜δ)と、その優
先ウェイに対応して実際に各ウェイα〜δで実行される
アクセス(AまたはB)との具体例が示されている。た
だし、使用中のウェイに対してはアクセスは実行されな
い。
ントリに有効なデータを見つけた場合には、ヒットとし
て扱う一方、そうでなければ、他のウェイにもアクセス
を行なう。このとき、初回のアクセスと、残りのウェイ
に対するアクセスとが重なり合う場合は、初回のアクセ
スを優先させる処理を行なう。
げるために、本実施形態では、図20にて前述した制御
部22の移動指示機能224を用いて、キャッシュ機構
40内において、データが格納されているウェイを移動
させることもできる。プロセッサ11から制御線を介し
て移動の指示を伴ったアクセスが行なわれた場合には、
制御部22の移動指示機能224により、例えば次のよ
うな動作〜を行なう。
には他のウェイから移動先のウェイに転送を行ない、他
のウェイのエントリを無効とする。移動先のウェイが有
効でDIRTYの場合には、主記憶15へのデータ書き
戻し処理を行なった後にデータを転送する。 目的データが移動先のウェイにあった場合には、特別
な動作を行なわない。
動先のウェイに格納を行なう。移動先のウェイが有効で
DIRTYの場合には、主記憶15へのデータ書き戻し
処理を行なった後に、主記憶15からのデータのフェッ
チおよびライトを行なう。移動指示機能224による動
作としてはこれらの〜に限定されるものではなく、
種々動作が考えられる。
他の手法として、アクセスの行なわれたアドレスを基に
領域を設定する手法がある。この手法では、領域毎に優
先すべきウェイを設定する。即ち、領域の上限を示すレ
ジスタ(上限ポインタ)と下限を示すレジスタ(下限ポ
インタ)とに値を設定し、このレジスタとアクセスの行
なわれたアドレスとの比較を行なう。その比較の結果
が、上限と下限との間のアドレスにアクセスが行なわれ
たことを示していた場合、優先すべきウェイが決定され
る(図18参照)。
ば、キャッシュ機構40におけるウェイα〜δの集合を
互いに重なり合わないグループに分割し、そのグループ
に含まれる各ウェイに対して単一のアクセスを実行し
て、各グループ毎に異なるアクセスを同時並列的に実行
することにより、異なるアクセスのアクセス期間を互い
に重なり合わせることができる。
トアソシアティブ方式のキャッシュメモリ装置と比べ
て、ハードウェア量の増加を抑えつつ、処理の高速化を
はかりながら、多重アクセスを行なうことが可能であ
る。特に、高並列アーキテクチャにおける数プロセッサ
程度のクラスタ共有のキャッシュメモリとしての用途は
非常に大きい。
なえたスーパスカラ方式のプロセッサやVLIW(Very
Long Instruction Word:超長形式命令ワード)方式の
プロセッサの内部キャッシュメモリとしても有望であ
る。さらに、キャッシュミスヒットに対する待ち時間
(latency)の隠蔽として、マルチスレッドアーキテクチ
ャを利用したスレッド切替を行なうことも非常に有利に
なる。
い場合には、全てのウェイα〜δを用いてそのアクセス
を実行することで、従来と同様の処理が可能になるほ
か、グループ毎にミスヒットが確定した後に、ミスヒッ
トしたウェイ以外の他のウェイに対してのみ継続的にア
クセスを行なうことにより、トラフィック率を下げるこ
とができる。なお、ミスヒットが確定する前に、他のウ
ェイに対してアクセスを先出してもよく、この場合、処
理をより高速化することができる。
各ウェイα〜δのうち最も古いデータを保持しているウ
ェイに、キャッシュ機構40でのミスヒットが確定し主
記憶15から読み出したデータを書き込むことにより、
アクセス対象になる可能性の高い新しいデータを保持し
続けることができる。また、予め設定・付与されたデー
タ格納優先度に従って、キャッシュ機構40の各ウェイ
α〜δに対する書込/読出アクセスを行なうことによ
り、初回のアクセスに対するヒット率が大幅に向上し、
キャッシュ機構40に対する多重アクセスを高速化する
ことができる。
ータを、そのデータに対してアクセスを行なう可能性の
高いプロセス,スレッド等について高いデータ格納優先
度を設定されているウェイに移動させることにより、初
回のアクセスのヒット率のさらなる向上を実現でき、多
重アクセスの高速化に大きく寄与する。なお、上述した
第1実施形態では、キャッシュ機構40が4ウェイのセ
ットアソシアティブ方式で動作するものとし、最大2つ
のアクセスを同時に受け付けることができる場合につい
て説明しているが、本発明は、これらに限定されるもの
ではない。
ッサを1台のみそなえたシステムに本発明を適用した場
合について説明しているが、本発明は、これに限定され
るものではなく、複数台のプロセッサにより多重アクセ
スキャッシュメモリ装置10を共用する場合にも同様に
適用される。この場合、優先ウェイを決定するための要
素(アクセス要求元情報)として、各プロセッサを特定
する情報(プロセッサ番号,プロセッサ識別子)を用い
てもよい。
全体構成を示すブロック図であり、この図25に示すよ
うに、第2実施形態の多重アクセスキャッシュメモリ装
置50は、プロセッサ51−1〜51−4毎に設けられ
たローカルキャッシュメモリ(以下、L−キャッシュと
いう)52−1〜52−4と、親キャッシュメモリ53
との間にそなえられている。
タ55がそなえられ、これらのクラスタ55が親キャッ
シュメモリ53および主記憶54を共用しており、各ク
ラスタ55は、親キャッシュメモリ53を通じて、主記
憶54のデータに対するアクセスを行なえるようになっ
ている。また、各クラスタ55は、前述したように、例
えば4台のプロセッサ51−1〜51−4と、各プロセ
ッサ51−1〜51−4に対応して設けられたL−キャ
ッシュ52−1〜52−4と、L−キャッシュ52−1
〜52−4を介してプロセッサ51−1〜51−4によ
り共用される多重アクセスキャッシュメモリ装置50と
から構成されており、各プロセッサ51−1〜51−4
は、L−キャッシュ52−1〜52−4および多重アク
セスキャッシュメモリ装置50を通じて、親キャッシュ
メモリ53や主記憶54のデータに対するアクセスを行
なえるようになっている。
−4はライトスルー方式で動作しており、各プロセッサ
51−1〜51−4からの書込処理が各L−キャッシュ
52−1〜52−4に対して行なわれた場合には、その
書込処理は、多重アクセスキャッシュメモリ装置50に
保持されるデータにも必ず反映される。また、ここで
は、アクセス対象データを指定する情報として、アドレ
スの他に空間識別子を用いる。この空間識別子およびア
ドレスを用いて動的アドレス変換を行なう。この動的ア
ドレス変換によって仮想アドレスは実アドレスに変換さ
れる。L−キャッシュ52−1〜52−4は、仮想アド
レスキャッシュメモリであり、空間識別子を含めてキャ
ッシュする。本実施形態の多重アクセスキャッシュメモ
リ装置50は、実アドレスキャッシュメモリであり、図
27にて後述するごとく、動的アドレス変換を行なうた
めの機構(DAT:Dynamic Address Translator)80
dをそなえている。
シュ間での共有を行なうには、ライトワンス方式,シナ
プス方式等の諸方式を採用すればよい。本実施形態で
は、制御の複雑さを避けるため、キャッシュ間での共有
を許さない構成をとっている。即ち、モードビットとし
て、第1実施形態で前述したものと同様の、VALID
ビット,DIRTYビット等を有している。
ミスヒットが発生すると、多重アクセスキャッシュメモ
リ装置50は、ミスヒットとなったデータのアドレスを
親キャッシュメモリ(記憶装置)53に通知する。その
アドレスに対応するエントリが親キャッシュメモリ53
に存在すれば、親キャッシュメモリ53はその内容を多
重アクセスキャッシュメモリ装置50に返す。また、親
キャッシュメモリ53は、他のクラスタ55に属する多
重アクセスキャッシュメモリ装置50に対してもそのア
ドレスを通知する。
応するエントリが、他の多重アクセスキャッシュメモリ
装置50に存在する場合には、その内容をミスヒットが
発生した多重アクセスキャッシュメモリ装置50に転送
する。その転送内容は、親キャッシュメモリ53の返す
内容に優先する。また、そのエントリを無効とする処理
を行ない、L−キャッシュ52−1〜52−4の該当エ
ントリを無効化する。
セスキャッシュメモリ装置50にも有効なエントリが存
在しなければ、親キャッシュメモリ53は、ミスヒット
として扱い、ミスヒットとなったデータについて主記憶
54へのアクセスを行なうことになる。また、第2実施
形態の多重アクセスキャッシュメモリ装置50は、図2
6および図27に示すように、上記の通知アドレスに対
応するエントリを検出するためのスヌープ(snoop)機構
62をそなえて構成されている。
多重アクセスキャッシュメモリ装置50の全体構成を示
すブロック図であり、この図26に示すように、第2実
施形態の多重アクセスキャッシュメモリ装置50も第1
実施形態のものとほぼ同様に構成されているが、第2実
施形態では、最大4つのアクセス要求を受け付けること
が可能な構成になっているほか、スヌープ機構62が新
たに追加されている。
置50は、図27にて詳述するごとくウェイ80−1〜
80−4の集合を含むウェイ部60と、第1実施形態の
制御部22と同様の機能のほかスヌープ機構62を制御
するための機能を有する制御部61と、後述する機能を
有するスヌープ機構62とを有して構成されるほか、ア
ドレス入力ポート63A〜63D,データ入出力ポート
64A〜64D,制御線入出力ポート65A〜65D,
アドレス入出力ポート66,データ入出力ポート67お
よび制御線入出力ポート68を有している。
D,データ入出力ポート64A〜64D,制御線入出力
ポート65A〜65Dは、図25に示したプロセッサ5
1−1〜51−4にL−キャッシュ52−1〜52−4
を介して接続され、各プロセッサ51−1〜51−4か
らキャッシュメモリ装置50に対するアクセスの受付を
行なうためのもので、4つのアクセスを同時に受け付け
ることができるように各ポートは4つずつそなえられて
いる。
ポート67および制御線入出力ポート68は、図25に
示した親キャッシュメモリ53(第1実施形態の主記憶
15に対応するもの)に接続され、親キャッシュメモリ
53に対するアクセスを行なうためのものである。な
お、図26中、親キャッシュメモリ53に接続されるポ
ートには符号“E”が付されている。
A〜70D,データ入出力端子71A〜71D,タグ出
力端子72,モードビット端子73,コントロール端子
74およびスヌープアドレス入力端子75が設けられて
いる。そして、アドレス入力端子70A〜70Dは、そ
れぞれアドレス入力ポート63A〜63Dに直接的に接
続されるとともに、タグ出力端子72およびスヌープア
ドレス入力端子75はアドレス入出力ポート66に直接
的に接続されている。
出力端子32と全く同様に機能するのに加えて、アクセ
ス済の部分集合に含まれないウェイに対するヒット/ミ
スヒット判定を行なうためのアドレスを出力する。各デ
ータ入出力端子71A〜71Dは、各データ入出力ポー
ト64A〜64Dとデータ入出力ポート67とに、図2
1に示すものと同様構成の双方向スイッチ69A〜69
Dを介して接続されている。
アドレス入出力ポート66からのアドレスまたはタグ出
力端子72からのアドレスをスヌープ機構62に入力す
るためのものである。制御線入出力ポート65A〜65
D,68,モードビット端子73およびコントロール端
子74は制御部61に接続されている。この制御部61
は、ウェイ部60との間でコントロール端子74を介し
て各種制御信号をやり取りすることによりウェイ部60
やスヌープ機構62の状態を制御する機能を有するほ
か、第1実施形態と同様に、モードビット情報(VAL
ID,DIRTY,TIME等)を、各ウェイ80−1
〜80−4のデータアレイ80aにモードビット端子7
3を介して書き込んだり、そのデータアレイ80aから
モードビット端子83を介して読み出したりする機能を
有している。
を制御するための機能を除けば、基本的には、第1実施
形態の制御部22と同様の機能、即ち、前述した切替機
構制御部221,キャッシュ機構制御部222としての
機能や、優先度付与機能223および移動指示機能22
4を有している。さて、第2実施形態のウェイ部60
も、図27に示すごとく、第1実施形態のウェイ部21
とほぼ同様、キャッシュ機構80とクロスバスイッチ
(切替機構)81〜83とを有して構成されている。
ィブ方式によって動作する4ウェイ(組)80−1〜8
0−4を有している。各ウェイ80−1〜80−4に
は、データアレイ80aとタグアレイ80bとの組がそ
なえられるほか、第1実施形態の比較器40cと同様の
機能を果たす比較器80cと、前述したような動的アド
レス変換を行なう動的アドレス変換機構(以下、DAT
と略記)80dとがそなえられている。
アレイ80bおよび比較器80cにより実現される機能
は、第1実施形態のデータアレイ40a,タグアレイ4
0bおよび比較器40cにより実現される機能とほぼ同
様であるので、ここではその詳細な説明は省略する。た
だし、第2実施例のタグアレイ80bには、アドレス入
力の上位ビットをDAT80dによりアドレス変換され
たものが格納されるほか、第2実施形態の比較器80c
は、アドレス入力の上位ビットをDAT80dによりア
ドレス変換した結果と、タグアレイ80bからのタグ情
報とを比較するように構成されている。
80に対してアドレス入力端子70A〜70D(アドレ
ス入力ポート63A〜63D)からアクセス要求に伴っ
て入力されたアドレスおよび空間識別子(アクセス対象
データ指定情報)を各ウェイ80−1〜80−4のデー
タアレイ80aおよびタグアレイ80bの組に対し選択
的に切り替えて供給するためのものである。
力端子70Aからのアドレス(空間識別子を含む)をウ
ェイ80−1〜80−4にそれぞれ供給するための切替
ポイント81A−1〜81A−4と、アドレス入力端子
70Bからのアドレスをウェイ80−1〜80−4にそ
れぞれ供給するための切替ポイント81B−1〜81B
−4と、アドレス入力端子70Cからのアドレスをウェ
イ80−1〜80−4にそれぞれ供給するための切替ポ
イント81C−1〜81C−4と、アドレス入力端子7
0Dからのアドレスをウェイ80−1〜80−4にそれ
ぞれ供給するための切替ポイント81D−1〜81D−
4とにより構成されている。そして、制御部61によ
り、各切替ポイント81A−1〜81A−4,81B−
1〜81B−4,81C−1〜81C−4,81D−1
〜81D−4がオン/オフ駆動されることで、クロスバ
スイッチ81の切替状態が制御されるようになってい
る。
出力ポート64A〜64Dまたは67から入力されたデ
ータを、各ウェイ80−1〜80−4のキャッシュ機構
80のデータアレイ80bに対し選択的に切り替えて供
給する一方、4つのウェイ80−1〜80−4における
データアレイ80bのいずれか一つに保持されているデ
ータを、データ入出力ポート64A,64Bまたは67
へ選択的に切り替えて出力するためのものである。
イッチ81とほぼ同様に、切替ポイント82A−1〜8
2A−4,82B−1〜82B−4,82C−1〜82
C−4,82D−1〜82D−4により構成されてい
る。そして、制御部61により、各切替ポイント82A
−1〜82A−4,82B−1〜82B−4,82C−
1〜82C−4,82D−1〜82D−4がオン/オフ
駆動されることで、クロスバスイッチ82の切替状態が
制御されるようになっている。
ス入力端子70A〜70Dから入力され各ウェイ80−
1〜80−4に供給された下位アドレスとDAT80d
によって変換された上位アドレス、または、各ウェイ8
0−1〜80−4においてタグアレイ80bから読み出
されたアドレスを、アドレス出力ポート66またはスヌ
ープアドレス入力端子75へ選択的に切り替えて出力す
るためのものである。
−1〜80−4への下位アドレス線およびDAT80d
からの上位アドレス線とタグ出力端子72とを接続する
か、ウェイ80−1〜80−4のタグアレイ80bとタ
グ出力端子72とを接続するかの切替を行なう切替ポイ
ント83−1〜83−4により構成されており、やは
り、制御部61により、各切替ポイント83−1〜83
−4がオン/オフ駆動されることで、クロスバスイッチ
83の切替状態が制御されるようになっている。
たスヌープ機構62は、ウェイ80−1〜80−4毎
に、複写タグアレイ62aおよび比較器62bを有して
構成されている。各複写タグアレイ62aは、アドレス
入力端子70A〜70Dから入力され各タグアレイ80
bと全く同一のタグ情報(複写)を保持するもので、各
タグアレイ80bにタグ情報を格納する際に、同時に、
そのアドレスの下位ビットにより指定されるエントリ
に、そのアドレスの上位ビットをDAT80dによって
アドレス変換したものをタグ情報として書き込まれるよ
うになっている。また、各複写タグアレイ62aは、ス
ヌープ動作時とアクセス済の部分集合に含まれないウェ
イに対するヒット/ミスヒット判定時とには、スヌープ
アドレス入力端子75を通じて入力されたアドレスの一
部(下位ビット)により指定されるタグ情報を比較器6
2bへ出力するようになっている。
分集合に含まれないウェイに対するヒット/ミスヒット
判定時には、アクセス元のウェイにおけるDAT80d
を比較器80cと共用しており、ミスヒットとなったア
クセスの指定アドレスの上位ビットをDAT80dによ
りアドレス変換した結果をクロスバスイッチ83,タグ
出力端子72,スヌープアドレス入力端子75を通じて
得て、その変換結果と複写タグアレイ62aからのタグ
情報とを比較するものである。
機能について説明する。このスヌープ機構62は、本
来、親キャッシュメモリ53から通知される、他の多重
アクセスキャッシュメモリ装置50のミスヒットアドレ
スを受けて、その多重アクセスキャッシュメモリ装置5
0にそのアドレスに該当するエントリが存在するか否か
を判定するものであるが(スヌープ動作)、その他に
も、各アクセス要求に応じたアクセスを各分割グループ
において実行した結果、アクセス対象データがその分割
グループに保持されていないことが判明した場合、即
ち、初回のアクセスやそれに続くアクセスでミスヒット
となった場合にも動作する(スヌープ動作が優先され
る)。
となったデータについてのアドレス(空間識別子を含
む)をDAT80dによってアドレス変換したものを受
け取り、ミスヒットとなったウェイ以外のウェイにおけ
る比較器62bに供給し、この比較器62bにより、複
写タグアレイ62aに保持されるタグ情報と供給された
アドレスの上位ビットとを比較することで、ミスヒット
となったアクセス対象データを保持しているウェイが存
在するか否かを判定する。
ェイが存在する場合にはそのウェイを特定する。スヌー
プ機構62の比較器62bによる比較結果およびウェイ
の特定結果は、図示しない信号線等を介して制御部61
に転送されるようになっており、スヌープ機構62から
の情報に基づいて制御部61は、キャッシュ機構80に
おけるデータの書込/読出制御を行なうようになってい
る。
子73と各データアレイ80aとの接続状態、および、
コントロール端子74と各部(キャッシュ機構80,ク
ロスバスイッチ81〜83,スヌープ機構62)との接
続状態の図示は省略されている。次に、上述のごとく構
成された第2実施形態の多重アクセスキャッシュメモリ
装置50の動作を、図31を参照しながら説明する。
1からライトアクセスが有ったとする。この場合、第1
実施形態で述べたように、単一アクセスであるため、ウ
ェイα〜δを全て使用する。このアクセス(T1〜T
2)がミスヒットし、格納すべきウェイがδになったも
のとする。ここでは、説明を簡単にすべく、ウェイδの
該当エントリは空であったものとする(VALID=
0)。
装置50は、ミスヒットアドレスを親キャッシュメモリ
53に通知し、親キャッシュメモリ53は、他の多重ア
クセスキャッシュメモリ装置50にもそのミスヒットア
ドレスを通知しなければならない。やがて、システム内
の全ての多重アクセスキャッシュメモリ装置50から応
答が有り、ウェイδの該当エントリに対してのライトを
終了することができるが、それまで(時刻T6まで)ウ
ェイδを使用することはできない。
0に該当するエントリが存在した場合には、前述したよ
うに、データのキャッシュ間共用を許さない構成を採っ
ているため、多重アクセスキャッシュ装置50およびL
−キャッシュ52−1〜52−4おける該当エントリの
無効化が行なわれる。また、この間のデータのすれ違い
を避けるため、時刻T6までに同一下位アドレスをもつ
アクセス要求があった場合には、そのアクセス要求は、
それ以後に遅延されることになる。なお、図31に示す
ように、時刻T1には、親キャッシュメモリ53からの
スヌープ要求が有り、該当するエントリは存在しなかっ
たものとする。該当エントリが存在する場合には、多重
アクセスキャッシュメモリ装置50およびL−キャッシ
ュ52−1〜52−4でそのエントリの無効化処理が行
なわれる。
セッサ51−3とからアクセスがあり、それぞれの優先
ウェイがα,βであるとする。この場合、ウェイαおよ
びγでプロセッサ51−2によるアクセスが行なわれ、
ウェイβでプロセッサ51−3によるアクセスが行なわ
れることになった。時刻T3には、プロセッサ51−4
から、優先ウェイの無いアクセスがあったとする。第1
実施形態で述べたように、このようなアクセスに対して
は使用可能な全てのウェイを割り当てることになる。こ
のため、ミスヒット中であるプロセッサ51−3のアク
セスには使用可能なウェイが存在しないことになった
(初回アクセスの優先事項)。
スをスヌープ機構62に与えて、データの存在するウェ
イを決定することになる。時刻T3〜T4の間に、プロ
セッサ51−4からのアクセスはウェイγのヒットによ
り終了し、プロセッサ51−3のアクセスするデータが
スヌープ機構62によりウェイαに存在することが明ら
かとなった。
サ51−3のアクセスがウェイαに対して行なわれ、必
ずヒットして終了する。なお、スヌープ機構62を利用
したウェイ決定要求と親キャッシュメモリ53からのス
ヌープ要求とが同時に起こった場合には、親キャッシュ
メモリ53からのスヌープ要求が優先され、ウェイ決定
は行なわれない。
態の多重アクセスキャッシュメモリ装置50の他の動作
について、図28を参照しながら説明する。図28中、
上部に記載された数値はサイクル数を示している。ここ
では、説明を簡単すべく、図28に示すように、多重ア
クセスキャッシュメモリ装置50にアクセスするプロセ
ッサ51−1〜51−4についての優先ウェイとして、
それぞれ、ウェイ80−1〜80−4を割り当てるもの
とする。
なり、単一のアクセスがあった場合でも、複数のアクセ
スが要求された場合でも、特別な指示が無い限り、それ
ぞれのアクセスは単一のウェイを使用して実行されるも
のとする。さらに、この第2実施形態の他の動作が有利
であるのは、パイプラインのステップとウェイ80−1
〜80−4のアクセス時間とを比較すると、パイプライ
ンのステップの方が短い場合である。ウェイ80−1〜
80−4のアクセス時間はパイプラインの4ステップ分
とする。
優先ウェイが指定されている場合、特に指示が無い限
り、次の〜の動作を行なう。 優先ウェイのみにアクセスする(該ウェイが使用不可
能な場合は遅延する)。 ミスヒットした場合にはスヌープ機構62を利用して
ウェイを決定する。
て使用中である場合には、使用可能となるまでアクセス
を遅延する。 ウェイが決定されると、そのウェイが空き次第、該ウ
ェイにアクセスする。これは、一例を示したのみであ
り、上記項目で他のウェイにアクセスを行なう等、種
々の動作が考えられる。
トラフィック率を下げ、多重アクセスを容易化できると
いう効果がある。そして、図28に示す例では、第1サ
イクルにプロセッサ51−1からアクセスがあったた
め、ウェイ80−1が使用されている。また、第2サイ
クルには、プロセッサ51−3からアクセスがあったた
め、ウェイ80−3が使用されている。さらに、第4サ
イクルにはプロセッサ51−2,51−4からアクセス
があったため、ウェイ51−2,51−4が使用されて
いる。
−4に関しては、キャッシュ機構80の各ウェイ80−
1,80−3,80−4でヒットしたため、それぞれ、
第5サイクル,第6サイクル,第8サイクルで処理を終
了している。これに対し、プロセッサ51−2は、キャ
ッシュ機構80のウェイ80−2で有効なエントリを見
つけることができなかったので、第8サイクルから、ス
ヌープ機構62を利用して、ウェイ80−2以外の他の
ウェイ80−1,80−3,80−4に有効なエントリ
が存在しないかどうかをチェックしている。
了していない第10サイクルには、プロセッサ51−1
からアクセスがあり、これが制御線によりできるだけ多
くのウェイを使用することを指示して来たために、ウェ
イ80−1〜80−4の全てを使用してそのアクセスが
実行されている。そして、第12サイクルにおいて、ス
ヌープ機構62により、プロセッサ51−2からのアク
セスについてのウェイが特定され、プロセッサ51−2
の要求するエントリがウェイ80−3に存在することが
確定しているが、第12サイクルの時点では、ウェイ8
0−3が前述した通りプロセッサ51−1によって使用
されているために、ウェイ80−3へのアクセスは第1
4サイクルまで遅延されている。
ば、前述した第1実施形態と同様の作用効果を得ること
ができるほか、タグアレイ80bと同一内容をもつ複写
タグアレイ62aをスヌープ機構62にそなえてタグア
レイを多重化することによって、初回のアクセスでミス
ヒットした場合、スヌープ機構62において、多重化さ
れた複写タグアレイ62aを用い、そのアクセスの目的
エントリを含むウェイが存在するか否かを判定して、存
在する場合にはどのウェイであるかを特定するというス
ヌープ処理を、通常のアクセスと並行して実行すること
ができる。従って、多重アクセスをより高速に行なうこ
とが可能になる。
では、キャッシュ機構40が4ウェイのセットアソシア
ティブ方式で動作するものとし、最大4つのアクセスを
同時に受け付けることができる場合について説明してい
るが、本発明は、これらに限定されるものではない。ま
た、上述した第2実施形態では、優先ウェイをプロセッ
サ51−1〜51−4毎に割り当てているが、優先ウェ
イの設定手法は、これに限定されるものではなく、第1
実施形態で説明した通り、スレッド番号,プロセス番
号,アドレス等に基づいて優先ウェイを設定してもよ
い。
セス方法および多重アクセスキャッシュメモリ装置によ
れば、2つ以上の組(データアレイとタグアレイの組)
を2つ以上の部分集合に分割し、各部分集合において各
アクセスを並列的に実行することができるので、ハード
ウェア量の増加を抑え、且つ、出来るだけ処理の高速化
をはかりながら、多重アクセスを行なうことが可能にな
る。特に、高並列アーキテクチャにおける数プロセッサ
程度のクラスタ共有のキャッシュメモリとしての用途は
非常に大きい。
なえたスーパスカラ方式のプロセッサやVLIW方式の
プロセッサの内部キャッシュメモリとしても有望であ
る。さらに、キャッシュミスヒットに対する待ち時間の
隠蔽として、マルチスレッドアーキテクチャを利用した
スレッド切替を行なう際にも非常に有利になる(請求項
1〜40)。
は、全ての組を用いてそのアクセスを実行することで、
従来と同様の処理を行なうことができる(請求項2,2
2)。部分集合毎にミスヒットが確定した後に、ミスヒ
ットした組以外の他の組に対してのみ継続的にアクセス
を行なうことにより、トラフィック率を下げることがで
きるほか(請求項4,24)、ミスヒットが確定する前
に、他の組に対してアクセスを先出しすることにより、
処理の高速化を実現することもできる(請求項5,2
5)。
憶装置から読み出したデータを、各組のうち最も古いデ
ータを保持しているものに書き込むことにより、アクセ
ス対象になる可能性の高い新しいデータを保持し続ける
ことができる(請求項7,27)。また、予め設定・付
与されたデータ格納優先度に従って、キャッシュ機構の
各組に対する書込/読出アクセスを行なうことにより、
初回のアクセスに対するヒット率が大幅に向上し、キャ
ッシュ機構に対する多重アクセスの高速化を実現するこ
とができる(請求項8〜18,28〜38)。
を、そのデータに対してアクセスを行なう可能性の高い
プロセス,スレッド,プロセッサ等(アクセス要求元情
報)について高いデータ格納優先度を設定されている組
に移動させることにより、初回のアクセスのヒット率を
より向上でき、多重アクセスの高速化に大きく寄与する
ことになる(請求項19,39)。
でミスヒットしたアクセスについてのスヌープ処理とを
並列的に行なうことにより、多重アクセスをより高速に
行なうことが可能になる(請求項20,40)。
示す原理ブロック図である。
クセス方法の基本原理を説明するための図である。
作を説明するための図である。
ける本発明の動作を説明するための図である。
ける本発明の動作を説明するための図である。
ける本発明の動作を説明するための図である。
納手順を説明するための図である。
納手順を説明するための図である。
納手順を説明するための図である。
格納手順を説明するための図である。
格納手順を説明するための図である。
格納手順を説明するための図である。
格納手順を説明するための図である。
格納手順を説明するための図である。
ためのアクセス要求元情報(プロセス識別子)を説明す
るための図である。
ためのアクセス要求元情報(スレッド識別子)を説明す
るための図である。
ためのアクセス要求元情報(プロセッサ番号)を説明す
るための図である。
ためのアクセス要求元情報(アドレス)を説明するため
の図である。
の全体構成を示すブロック図である。
キャッシュメモリ装置の全体構成を示すブロック図であ
る。
機構および切替機構)の構成を示すブロック図である。
ングチャートである。
イ、および、実際に各ウェイで実行されるアクセスの具
体例を示す図である。
の全体構成を示すブロック図である。
キャッシュメモリ装置の全体構成を示すブロック図であ
る。
機構,切替機構およびスヌープ機構)の構成を示すブロ
ック図である。
ングチャートである。
現するための従来のキャッシュメモリ装置のタグアレイ
(アドレスアレイ)を示す図である。
シュメモリ装置のデータアレイを示す図である。
ングチャートである。
2A−1〜42A−4,42B−1〜42B−4,43
−1〜43−4 切替ポイント 50 多重アクセスキャッシュメモリ装置 51−1〜51−4 プロセッサ 52−1〜52−4 ローカルキャッシュメモリ(L−
キャッシュ) 53 親キャッシュメモリ(記憶装置) 54 主記憶 55 クラスタ 60 ウェイ部 61 制御部 62 スヌープ機構 62a 複写タグアレイ 62b 比較器 63A〜63D アドレス入力ポート 64A〜64D データ入出力ポート 65A〜65D 制御線入出力ポート 66 アドレス入出力ポート 67 データ入出力ポート 68 制御線入出力 69A〜69D 双方向スイッチ 70A〜70D アドレス入力端子 71A〜71D データ入出力端子 72 タグ出力端子 73 モードビット端子 74 コントロール端子 75 スヌープアドレス入力端子 80 キャッシュ機構 80−1〜80−4 ウェイ(組) 80a データアレイ 80b タグアレイ 80c 比較器 80d 動的アドレス変換機構(DAT) 81〜83 クロスバスイッチ(切替機構) 81A−1〜81A−4,81B−1〜81B−4,8
1C−1〜81C−4,81D−1〜81D−4,82
A−1〜82A−4,82B−1〜82B−4,82C
−1〜82C−4,82D−1〜82D−4,83−1
〜83−4 切替ポイント
Claims (40)
- 【請求項1】 アクセス対象データを保持するデータア
レイと該データアレイのデータを特定するタグ情報を保
持するタグアレイとの組を複数そなえた記憶階層に対す
る多重アクセス方法であって、 複数のアクセス要求を受け付けた場合、該複数の組を相
互に重なり合わない複数の部分集合に分割し、各アクセ
ス要求に伴うアクセス対象データ指定情報を、それぞ
れ、前記の各部分集合に供給して各アクセス要求に応じ
たアクセスを実行することを特徴とする、多重アクセス
方法。 - 【請求項2】 単一のアクセス要求を受け付けた場合に
は、当該単一のアクセス要求に伴うアクセス対象データ
指定情報を該複数の組の全てに供給して当該単一のアク
セス要求に応じたアクセスを実行することを特徴とす
る、請求項1記載の多重アクセス方法。 - 【請求項3】 該記憶階層をセットアソシアティブ方式
によって動作するキャッシュ機構とし、前記の各組をウ
ェイとして取り扱うことを特徴とする、請求項1または
請求項2に記載の多重アクセス方法。 - 【請求項4】 各アクセス要求に応じたアクセスを各部
分集合において実行した結果、アクセス対象データが当
該部分集合に保持されていないことが判明したアクセス
要求については、 当該アクセス要求に伴うアクセス対象データ指定情報
を、当該部分集合に含まれない組に供給して当該アクセ
ス要求に応じたアクセスを実行することを特徴とする、
請求項1〜請求項3のいずれかに記載の多重アクセス方
法。 - 【請求項5】 各アクセス要求に応じたアクセスを各部
分集合において実行した後、当該アクセス要求のアクセ
ス対象データが当該部分集合に該データアレイに保持さ
れているか否かが判明する前に、 当該アクセス要求に伴うアクセス対象データ指定情報
を、当該部分集合に含まれない組に供給して当該アクセ
ス要求に応じたアクセスを実行することを特徴とする、
請求項1〜請求項3のいずれかに記載の多重アクセス方
法。 - 【請求項6】 当該アクセス要求のアクセス対象データ
が該複数の組の全てにおける該データアレイのいずれに
も保持されていないことが判明した時点で、当該アクセ
ス要求は該記憶階層に対してミスヒットしたものと判定
し、当該アクセス要求に伴うアクセス対象データ指定情
報に基づいて記憶装置から該当するデータを読み出して
該記憶階層に書き込むことを特徴とする、請求項4また
は請求項5に記載の多重アクセス方法。 - 【請求項7】 前記の各組に格納されているデータに対
する最終アクセス時刻を参照し、最も古いデータを保持
している組に、ミスヒット判定に伴って該記憶装置から
読み出されたデータを書き込むことを特徴とする、請求
項6記載の多重アクセス方法。 - 【請求項8】 該記憶階層の各組に対して、アクセス要
求元情報に応じたデータ格納優先度を予め設定・付与し
ておくことを特徴とする、請求項6記載の多重アクセス
方法。 - 【請求項9】 ミスヒット判定されたアクセス要求のア
クセス要求元情報について各組に対し予め設定されたデ
ータ格納優先度を参照し、そのデータ格納優先度の高い
組に、ミスヒット判定に伴って該記憶装置から読み出さ
れたデータを優先的に書き込むことを特徴とする、請求
項8記載の多重アクセス方法。 - 【請求項10】 前記データ格納優先度の高い組にデー
タを書き込むための空きが無い場合、前記データ格納優
先度に関係無く空きのある他の組に前記データを書き込
むことを特徴とする、請求項9記載の多重アクセス方
法。 - 【請求項11】 該複数の組の全てにデータを書き込む
ための空きが無い場合、前記データ格納優先度の高い組
に前記データを書き込むことを特徴とする、請求項10
記載の多重アクセス方法。 - 【請求項12】 前記の各組に格納されているデータに
対する最終アクセス時刻を参照し、前記データ格納優先
度の高い組に最新のデータが格納されている場合には、
最も古いデータを保持している組に前記データを書き込
むことを特徴とする、請求項11記載の多重アクセス方
法。 - 【請求項13】 該複数の組の全てにデータを書き込む
ための空きが無い場合、前記の各組に格納されているデ
ータに対する最終アクセス時刻を参照し、最も古いデー
タを保持している組に前記データを書き込むように制御
することを特徴とする、請求項10記載の多重アクセス
方法。 - 【請求項14】 受け付けたアクセス要求のアクセス要
求元情報について各組に対し予め設定されたデータ格納
優先度を参照し、そのデータ格納優先度の高い組を含む
部分集合に、当該アクセス要求に伴うアクセス対象デー
タ指定情報を優先的に供給して当該アクセス要求に応じ
たアクセスを実行することを特徴とする、請求項8〜請
求項13のいずれかに記載の多重アクセス方法。 - 【請求項15】 該記憶階層に対するアクセスを行なう
少なくとも1つのプロセッサにより実行されるプロセス
毎にプロセス識別子が設定され、該プロセス識別子が前
記アクセス要求元情報として用いられることを特徴とす
る、請求項8〜請求項14のいずれかに記載の多重アク
セス方法。 - 【請求項16】 該記憶階層に対するアクセスを行なう
少なくとも1つのプロセッサにより処理されるスレッド
毎にスレッド識別子が設定され、該スレッド識別子が前
記アクセス要求元情報として用いられることを特徴とす
る、請求項8〜請求項14のいずれかに記載の多重アク
セス方法。 - 【請求項17】 該記憶階層に対するアクセスを行なう
プロセッサが複数存在する場合に、各プロセッサを特定
する情報が前記アクセス要求元情報として用いられるこ
とを特徴とする、請求項8〜請求項14のいずれかに記
載の多重アクセス方法。 - 【請求項18】 アクセス要求に伴うアクセス対象デー
タ指定情報としてのアドレスが前記アクセス要求元情報
として用いられることを特徴とする、請求項8〜請求項
14のいずれかに記載の多重アクセス方法。 - 【請求項19】 該記憶階層の所定の組に格納されてい
るデータを、該記憶階層の他の組に移動させることを特
徴とする、請求項14記載の多重アクセス方法。 - 【請求項20】 該複数の組の全てにおける該タグアレ
イの写しである複写タグアレイをそなえ、 各アクセス要求に応じたアクセスを各部分集合において
実行した結果、アクセス対象データが当該部分集合に保
持されていないことが判明したアクセス要求について
は、 当該部分集合に含まれない組についての該複写タグアレ
イに保持されるタグ情報と当該アクセス要求に伴うアク
セス対象データ指定情報とに基づいて、当該アクセス要
求のアクセス対象データを保持している組が存在するか
否かを判定し、該当する組が存在する場合にはその組を
特定することを特徴とする、請求項1〜請求項3のいず
れかに記載の多重アクセス方法。 - 【請求項21】 複数の記憶階層からなる情報処理装置
において、アクセス対象データを保持するデータアレイ
と該データアレイのデータを特定するタグ情報を保持す
るタグアレイとの組を複数そなえて構成されるキャッシ
ュ機構と、 複数のアクセス要求を同時に受け付けるための複数の入
力ポートと、 該複数の入力ポートと該キャッシュ機構との間に介設さ
れ、各入力ポートから前記アクセス要求に伴って入力さ
れるアクセス対象データ指定情報を、該キャッシュ機構
において該データアレイと該タグアレイとの組に対し、
選択的に切り替えて供給するための切替機構と、 該複数の入力ポートにより2以上のアクセス要求を受け
付けた場合、該複数の組を相互に重なり合わない2以上
の部分集合に分割し、各アクセス要求に伴うアクセス対
象データ指定情報を、それぞれ、前記の各部分集合に供
給して各アクセス要求に応じたアクセスを並列的に実行
するように該切替機構の切替状態を制御する切替機構制
御部とをそなえたことを特徴とする、多重アクセスキャ
ッシュメモリ装置。 - 【請求項22】 該複数の入力ポートのうちの1つによ
り単一のアクセス要求を受け付けた場合、該切替機構制
御部が、当該単一のアクセス要求に伴うアクセス対象デ
ータ指定情報を該複数の組の全てに供給して当該単一の
アクセス要求に応じたアクセスを実行するように該切替
機構の切替状態を制御することを特徴とする、請求項2
1記載の多重アクセスキャッシュメモリ装置。 - 【請求項23】 該キャッシュ機構をセットアソシアテ
ィブ方式によって動作するものとし、前記の各組をウェ
イとして取り扱うことを特徴とする、請求項21または
請求項22に記載の多重アクセスキャッシュメモリ装
置。 - 【請求項24】 各アクセス要求に応じたアクセスを各
部分集合において実行した結果、アクセス対象データが
当該部分集合に保持されていないことが判明したアクセ
ス要求については、 該切替機構制御部が、当該アクセス要求に伴うアクセス
対象データ指定情報を、当該部分集合に含まれない組に
供給して当該アクセス要求に応じたアクセスを実行する
ように該切替機構の切替状態を制御することを特徴とす
る、請求項21〜請求項23のいずれかに記載の多重ア
クセスキャッシュメモリ装置。 - 【請求項25】 各アクセス要求に応じたアクセスを各
部分集合において実行した後、当該アクセス要求のアク
セス対象データが当該部分集合に保持されているか否か
が判明する前に、 該切替機構制御部が、当該アクセス要求に伴うアクセス
対象データ指定情報を、当該部分集合に含まれない組に
供給して当該アクセス要求に応じたアクセスを実行する
ように該切替機構の切替状態を制御することを特徴とす
る、請求項21〜請求項23のいずれかに記載の多重ア
クセスキャッシュメモリ装置。 - 【請求項26】 当該アクセス要求のアクセス対象デー
タが該複数の組の全てにおける該データアレイのいずれ
にも保持されていないことが判明した時点で、当該アク
セス要求は該キャッシュ機構に対してミスヒットしたも
のと判定し、当該アクセス要求に伴うアクセス対象デー
タ指定情報に基づいて記憶装置から該当するデータを読
み出して該キャッシュ機構に書き込むように制御するキ
ャッシュ機構制御部をそなえたことを特徴とする、請求
項24または請求項25に記載の多重アクセスキャッシ
ュメモリ装置。 - 【請求項27】 該キャッシュ機構制御部が、前記の各
組に格納されているデータに対する最終アクセス時刻を
参照し、最も古いデータを保持している組に、ミスヒッ
ト判定に伴って該記憶装置から読み出されたデータを書
き込むように制御することを特徴とする、請求項26記
載の多重アクセスキャッシュメモリ装置。 - 【請求項28】 該キャッシュ機構の各組に対して、ア
クセス要求元情報に応じたデータ格納優先度を予め設定
・付与するための優先度付与機能をそなえたことを特徴
とする、請求項26記載の多重アクセスキャッシュメモ
リ装置。 - 【請求項29】 該キャッシュ機構制御部が、ミスヒッ
ト判定されたアクセス要求のアクセス要求元情報につい
て該優先度付与機能により各組に対し予め設定されたデ
ータ格納優先度を参照し、そのデータ格納優先度の高い
組に、ミスヒット判定に伴って該記憶装置から読み出さ
れたデータを優先的に書き込むように制御することを特
徴とする、請求項28記載の多重アクセスキャッシュメ
モリ装置。 - 【請求項30】 前記データ格納優先度の高い組にデー
タを書き込むための空きが無い場合、該キャッシュ機構
制御部が、前記データ格納優先度に関係無く空きのある
他の組に前記データを書き込むように制御することを特
徴とする、請求項29記載の多重アクセスキャッシュメ
モリ装置。 - 【請求項31】 該複数の組の全てにデータを書き込む
ための空きが無い場合、該キャッシュ機構制御部が、前
記データ格納優先度の高い組に前記データを書き込むよ
うに制御することを特徴とする、請求項30記載の多重
アクセスキャッシュメモリ装置。 - 【請求項32】 該キャッシュ機構制御部が、前記の各
組に格納されているデータに対する最終アクセス時刻を
参照し、前記データ格納優先度の高い組に最新のデータ
が格納されている場合には、最も古いデータを保持して
いる組に前記データを書き込むように制御することを特
徴とする、請求項31記載の多重アクセスキャッシュメ
モリ装置。 - 【請求項33】 該複数の組の全てにデータを書き込む
ための空きが無い場合、該キャッシュ機構制御部が、前
記の各組に格納されているデータに対する最終アクセス
時刻を参照し、最も古いデータを保持している組に前記
データを書き込むように制御することを特徴とする、請
求項30記載の多重アクセスキャッシュメモリ装置。 - 【請求項34】 該切替機構制御部が、該複数の入力ポ
ートにより受け付けられたアクセス要求のアクセス要求
元情報について、該優先度付与機能により各組に対し予
め設定されたデータ格納優先度を参照し、そのデータ格
納優先度の高い組を含む部分集合に、当該アクセス要求
に伴うアクセス対象データ指定情報を優先的に供給して
当該アクセス要求に応じたアクセスを実行するように該
切替機構の切替状態を制御することを特徴とする、請求
項28〜請求項33のいずれかに記載の多重アクセスキ
ャッシュメモリ装置。 - 【請求項35】 該キャッシュ機構に対するアクセスを
行なう少なくとも1つのプロセッサにより実行されるプ
ロセス毎にプロセス識別子が設定され、該プロセス識別
子が前記アクセス要求元情報として用いられることを特
徴とする、請求項28〜請求項34のいずれかに記載の
多重アクセスキャッシュメモリ装置。 - 【請求項36】 該キャッシュ機構に対するアクセスを
行なう少なくとも1つのプロセッサにより処理されるス
レッド毎にスレッド識別子が設定され、該スレッド識別
子が前記アクセス要求元情報として用いられることを特
徴とする、請求項28〜請求項34のいずれかに記載の
多重アクセスキャッシュメモリ装置。 - 【請求項37】 該キャッシュ機構に対するアクセスを
行なうプロセッサが複数存在する場合に、各プロセッサ
を特定する情報が前記アクセス要求元情報として用いら
れることを特徴とする、請求項28〜請求項34のいず
れかに記載の多重アクセスキャッシュメモリ装置。 - 【請求項38】 アクセス要求に伴うアクセス対象デー
タ指定情報としてのアドレスが前記アクセス要求元情報
として用いられることを特徴とする、請求項28〜請求
項34のいずれかに記載の多重アクセスキャッシュメモ
リ装置。 - 【請求項39】 該キャッシュ機構の所定の組に格納さ
れているデータを、該キャッシュ機構の他の組に移動さ
せる移動指示機能をそなえたことを特徴とする、請求項
34記載の多重アクセスキャッシュメモリ装置。 - 【請求項40】 該複数の組の全てにおける該タグアレ
イの写しである複写タグアレイを有してなるスヌープ機
構をそなえ、 各アクセス要求に応じたアクセスを各部分集合において
実行した結果、アクセス対象データが当該部分集合に保
持されていないことが判明したアクセス要求について
は、 該スヌープ機構が、当該アクセス要求に伴うアクセス対
象データ指定情報を、当該部分集合に含まれない組に供
給し、その組の該複写タグアレイに保持されるタグ情報
と前記アクセス対象データ指定情報とに基づいて、当該
アクセス要求のアクセス対象データを保持している組が
存在するか否かを判定し、該当する組が存在する場合に
はその組を特定することを特徴とする、請求項21〜請
求項23のいずれかに記載の多重アクセスキャッシュメ
モリ装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31841495A JP3348367B2 (ja) | 1995-12-06 | 1995-12-06 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
| US08/662,010 US6038647A (en) | 1995-12-06 | 1996-06-12 | Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP31841495A JP3348367B2 (ja) | 1995-12-06 | 1995-12-06 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09160828A JPH09160828A (ja) | 1997-06-20 |
| JP3348367B2 true JP3348367B2 (ja) | 2002-11-20 |
Family
ID=18098891
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP31841495A Expired - Fee Related JP3348367B2 (ja) | 1995-12-06 | 1995-12-06 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6038647A (ja) |
| JP (1) | JP3348367B2 (ja) |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6317819B1 (en) * | 1996-01-11 | 2001-11-13 | Steven G. Morton | Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction |
| US5920890A (en) * | 1996-11-14 | 1999-07-06 | Motorola, Inc. | Distributed tag cache memory system and method for storing data in the same |
| EP0856798B1 (en) * | 1997-01-30 | 2004-09-29 | STMicroelectronics Limited | A cache system |
| GB9701960D0 (en) * | 1997-01-30 | 1997-03-19 | Sgs Thomson Microelectronics | A cache system |
| US6161166A (en) * | 1997-11-10 | 2000-12-12 | International Business Machines Corporation | Instruction cache for multithreaded processor |
| US6253301B1 (en) | 1998-04-16 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for a dedicated physically indexed copy of the data cache tag arrays |
| US6253285B1 (en) | 1998-04-16 | 2001-06-26 | Compaq Computer Corporation | Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing |
| US6269425B1 (en) * | 1998-08-20 | 2001-07-31 | International Business Machines Corporation | Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system |
| US6542991B1 (en) * | 1999-05-11 | 2003-04-01 | Sun Microsystems, Inc. | Multiple-thread processor with single-thread interface shared among threads |
| US6507862B1 (en) * | 1999-05-11 | 2003-01-14 | Sun Microsystems, Inc. | Switching method in a multi-threaded processor |
| JP3512678B2 (ja) | 1999-05-27 | 2004-03-31 | 富士通株式会社 | キャッシュメモリ制御装置および計算機システム |
| US6446165B1 (en) | 1999-07-30 | 2002-09-03 | International Business Machines Corporation | Address dependent caching behavior within a data processing system having HSA (hashed storage architecture) |
| US6516404B1 (en) | 1999-07-30 | 2003-02-04 | International Business Machines Corporation | Data processing system having hashed architected processor facilities |
| US6823471B1 (en) | 1999-07-30 | 2004-11-23 | International Business Machines Corporation | Method for providing high availability within a data processing system via a reconfigurable hashed storage subsystem |
| US6658556B1 (en) * | 1999-07-30 | 2003-12-02 | International Business Machines Corporation | Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction |
| US6449691B1 (en) | 1999-07-30 | 2002-09-10 | International Business Machines Corporation | Asymmetrical cache properties within a hashed storage subsystem |
| US6470442B1 (en) | 1999-07-30 | 2002-10-22 | International Business Machines Corporation | Processor assigning data to hardware partition based on selectable hash of data address |
| US6598118B1 (en) | 1999-07-30 | 2003-07-22 | International Business Machines Corporation | Data processing system with HSA (hashed storage architecture) |
| EP1113368A3 (en) * | 1999-12-27 | 2001-09-26 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit with cache |
| US6606684B1 (en) * | 2000-03-31 | 2003-08-12 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
| US6832378B1 (en) * | 2000-06-20 | 2004-12-14 | International Business Machines Corporation | Parallel software processing system |
| US6745293B2 (en) | 2000-08-21 | 2004-06-01 | Texas Instruments Incorporated | Level 2 smartcache architecture supporting simultaneous multiprocessor accesses |
| EP1215581A1 (en) * | 2000-12-15 | 2002-06-19 | Texas Instruments Incorporated | Cache memory access system and method |
| US6665775B1 (en) * | 2000-09-22 | 2003-12-16 | Intel Corporation | Cache dynamically configured for simultaneous accesses by multiple computing engines |
| JP4022040B2 (ja) * | 2000-10-05 | 2007-12-12 | 松下電器産業株式会社 | 半導体デバイス |
| US6604174B1 (en) * | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
| US20020083265A1 (en) | 2000-12-26 | 2002-06-27 | Brough Farrell Lynn | Methods for increasing cache capacity |
| US6801208B2 (en) | 2000-12-27 | 2004-10-05 | Intel Corporation | System and method for cache sharing |
| US20020108021A1 (en) * | 2001-02-08 | 2002-08-08 | Syed Moinul I. | High performance cache and method for operating same |
| JP3620473B2 (ja) * | 2001-06-14 | 2005-02-16 | 日本電気株式会社 | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 |
| US6789168B2 (en) * | 2001-07-13 | 2004-09-07 | Micron Technology, Inc. | Embedded DRAM cache |
| US7822679B1 (en) * | 2001-10-29 | 2010-10-26 | Visa U.S.A. Inc. | Method and system for conducting a commercial transaction between a buyer and a seller |
| US20030191885A1 (en) * | 2002-04-09 | 2003-10-09 | Chandra Thimmanagari | On-chip cache redundancy technique |
| EP1684180A4 (en) | 2003-11-12 | 2008-10-29 | Matsushita Electric Industrial Co Ltd | CACHE MEMORY AND CONTROL PROCEDURE THEREFOR |
| JP4753549B2 (ja) | 2004-05-31 | 2011-08-24 | パナソニック株式会社 | キャッシュメモリおよびシステム |
| US7558920B2 (en) * | 2004-06-30 | 2009-07-07 | Intel Corporation | Apparatus and method for partitioning a shared cache of a chip multi-processor |
| US20060114820A1 (en) * | 2004-11-26 | 2006-06-01 | Agfa Inc. | System and method for caching and fetching data |
| EP1862906A4 (en) * | 2005-03-22 | 2009-01-07 | Panasonic Corp | METHOD AND DEVICE FOR INTERMEDIATE MEMORY CONTROL |
| JP2008542945A (ja) * | 2005-06-09 | 2008-11-27 | エヌエックスピー ビー ヴィ | マルチポートキャッシュメモリのアーキテクチャ |
| WO2008035417A1 (fr) * | 2006-09-21 | 2008-03-27 | Mitsubishi Electric Corporation | Dispositif d'exécution d'accès, mémoire cache, dispositif de stockage de données, et dispositif d'accès de lecture |
| US20110258372A1 (en) * | 2009-07-29 | 2011-10-20 | Panasonic Corporation | Memory device, host device, and memory system |
| JP5434646B2 (ja) * | 2010-02-10 | 2014-03-05 | 富士通株式会社 | 情報処理装置 |
| US9268697B2 (en) * | 2012-12-29 | 2016-02-23 | Intel Corporation | Snoop filter having centralized translation circuitry and shadow tag array |
| US9805001B2 (en) * | 2016-02-05 | 2017-10-31 | Google Inc. | Matrix processing apparatus |
| US11200551B2 (en) * | 2016-06-23 | 2021-12-14 | Mastercard Payment Services Denmark A/S | System for facilitating real-time transactions |
| US10565121B2 (en) * | 2016-12-16 | 2020-02-18 | Alibaba Group Holding Limited | Method and apparatus for reducing read/write contention to a cache |
| JP6979777B2 (ja) * | 2017-03-22 | 2021-12-15 | キヤノン株式会社 | インターフェース装置およびその制御方法 |
| US11106589B2 (en) * | 2019-06-26 | 2021-08-31 | X-Drive Technology, Inc. | Cache control in a parallel processing system |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6423354A (en) * | 1987-07-20 | 1989-01-26 | Fujitsu Ltd | Duplex buffer memory control system |
| JPH01280860A (ja) * | 1988-05-06 | 1989-11-13 | Hitachi Ltd | マルチポートキヤツシユメモリを有するマルチプロセツサシステム |
| US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
| US5091851A (en) * | 1989-07-19 | 1992-02-25 | Hewlett-Packard Company | Fast multiple-word accesses from a multi-way set-associative cache memory |
| JP2822588B2 (ja) * | 1990-04-30 | 1998-11-11 | 日本電気株式会社 | キャッシュメモリ装置 |
| JPH04117540A (ja) * | 1990-09-07 | 1992-04-17 | Hitachi Ltd | データ処理装置およびデータ処理システム |
| US5483645A (en) * | 1990-10-26 | 1996-01-09 | Advanced Micro Devices, Inc. | Cache access system for multiple requestors providing independent access to the cache arrays |
| JPH04199242A (ja) * | 1990-11-26 | 1992-07-20 | Nec Corp | キャッシュ記憶装置 |
| JPH0756815A (ja) * | 1993-07-28 | 1995-03-03 | Internatl Business Mach Corp <Ibm> | キャッシュ動作方法及びキャッシュ |
| GB2292822A (en) * | 1994-08-31 | 1996-03-06 | Hewlett Packard Co | Partitioned cache memory |
| US5640534A (en) * | 1994-10-05 | 1997-06-17 | International Business Machines Corporation | Method and system for concurrent access in a data cache array utilizing multiple match line selection paths |
| US5581729A (en) * | 1995-03-31 | 1996-12-03 | Sun Microsystems, Inc. | Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system |
-
1995
- 1995-12-06 JP JP31841495A patent/JP3348367B2/ja not_active Expired - Fee Related
-
1996
- 1996-06-12 US US08/662,010 patent/US6038647A/en not_active Expired - Lifetime
Non-Patent Citations (2)
| Title |
|---|
| Agarwal A.et al.,Column−Associative Caches:A Technique for Reducing the Miss Rate of Direct−Mapped Caches,Proc.20th Ann.Int’l Symp.Computer Architecture,米国,IEEE/ACM,1993年,p.179−190 |
| Kessler R.e.et al.,Inexpensive Implimentations of Set−associativity,Proc.16th Ann.Int’l Symp.Computer Architecture,米国,IEEE/ACM,1989年,p.131−139 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH09160828A (ja) | 1997-06-20 |
| US6038647A (en) | 2000-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3348367B2 (ja) | 多重アクセス方法および多重アクセスキャッシュメモリ装置 | |
| US6640287B2 (en) | Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests | |
| US6675265B2 (en) | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants | |
| US5692152A (en) | Master-slave cache system with de-coupled data and tag pipelines and loop-back | |
| US6925537B2 (en) | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants | |
| KR100274327B1 (ko) | 캐시가 일관된 다중 처리기 컴퓨터 시스템에서 다중 미결동작을 제공하기 위한 장치 및 그 방법 | |
| US5029070A (en) | Coherent cache structures and methods | |
| US5119485A (en) | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation | |
| EP0856798B1 (en) | A cache system | |
| US5845324A (en) | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access | |
| US4980816A (en) | Translation look-aside buffer control system with multiple prioritized buffers | |
| US5247648A (en) | Maintaining data coherency between a central cache, an I/O cache and a memory | |
| US6631447B1 (en) | Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed | |
| US6263404B1 (en) | Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system | |
| US5692149A (en) | Block replacement method in cache only memory architecture multiprocessor | |
| EP0062165A2 (en) | Multiprocessors including private and shared caches | |
| US20080034162A1 (en) | Cache system | |
| JPH0561770A (ja) | データ処理システムのコヒーレンス手段 | |
| JPS6255187B2 (ja) | ||
| US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
| JPH0415736A (ja) | キャッシュメモリ装置 | |
| JPH0347540B2 (ja) | ||
| EP0796465A1 (en) | Scalar data cache for a vector processor | |
| US20040215882A1 (en) | Cache predictor for simultaneous multi-threaded processor system supporting multiple translations | |
| US5551000A (en) | I/O cache with dual tag arrays |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020806 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080913 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080913 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090913 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090913 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100913 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100913 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110913 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120913 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120913 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130913 Year of fee payment: 11 |
|
| LAPS | Cancellation because of no payment of annual fees |