JPH0371354A - メモリ・アクセス要求処理方法及び装置 - Google Patents

メモリ・アクセス要求処理方法及び装置

Info

Publication number
JPH0371354A
JPH0371354A JP2205331A JP20533190A JPH0371354A JP H0371354 A JPH0371354 A JP H0371354A JP 2205331 A JP2205331 A JP 2205331A JP 20533190 A JP20533190 A JP 20533190A JP H0371354 A JPH0371354 A JP H0371354A
Authority
JP
Japan
Prior art keywords
row
memory
cache memory
data values
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.)
Granted
Application number
JP2205331A
Other languages
English (en)
Other versions
JPH0561663B2 (ja
Inventor
Philip G Emma
フイリツプ・ジヨージ・エマ
Joshua W Knight
ジヨシユー・ウイルソン・ナイト
James H Pomerene
ジエームズ・ハーバート・ポマーリーン
Thomas R Puzak
トーマス・ロバーツ・プザツク
Rudolph N Rechtschaffen
ルドルフ・ナザーン・レチユツチヤフエーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0371354A publication Critical patent/JPH0371354A/ja
Publication of JPH0561663B2 publication Critical patent/JPH0561663B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、一般に、データ処理システムにおけるキャッ
シュメモリに関するものであり、とりわけ、主メモリか
らキャッシュメモリへのデータ及び命令の転送に関する
内容及びシーケンスを最適化する、記憶されている指令
の利用に関するものである。
B、従来技術 高性能プロセッサでは、多年にわたり一律化コンポーネ
ントによる総合システム設計としてキャッシュメモリシ
ステムを利用してきた。一般に、キャッシュメモリのア
クセス時間は、主記憶装置に比べてはるかに高速である
。例えば、キャッシュメモリは、連係するプロセッサに
近接して配置された比較的少数の高速データ記憶素子を
利用することができるが、主記憶装置は、多数の記憶素
子を利用し、かつ、プロセッサからある程度の距離をあ
けて配置されるのが普通である。キャッシュメモリシス
テムは、比較的短い時間間隔において用いられるのに適
した比較的小規模のデータ集合に迅速にアクセスするこ
とによって、主記憶装置のアクセス時間に関する制限を
克服するように設計されてきた。
これらキャッシュメモリシステムは、データ処理システ
ムにおいて経験的に判明した2つの特性を利用するよう
に設計されてきた。該特性のうち第1の特性は、参照の
空間的局所性として知られるものである。この特性は、
比較的短い時間間隔の間に、比較的わずかな値だけ異な
る主記憶装置内でのアドレスを備えたデータまたは命令
にアクセスするプログラムの傾向に関するものである。
換言すると、この特性によって、特定の目的ワードまた
はデータがプロセッサによって用いられる場合、主メモ
リのアドレス空間内においてすぐ隣接したデータが目的
データの利用と時間的に接近して用いられる確立が高い
状態に保たれるということである。
第2の特性は、参照の時間的局所性として知られるもの
である。この特性は、短い時間間隔の間に、同じデータ
または命令にアクセスするプログラムの傾向に関するも
のである。特定の目的データがプロセッサによってアク
セスされる場合、所定の時間間隔にこの目的データへの
アクセスが、繰り返されることになりやすい。これら2
つの特性を組み合わせることよって、キャッシュメモリ
の利用に関する基本ルールが得られる。キャッシュメモ
リには、最新の利用データに、このデータに隣接したメ
モリアドレスの内容を加えたものが含まれるのが望まし
い。
主メモリからキャッシュメモリへの転送は、単一の目的
ワードではなく、多重データワードを含むセグメントを
取出すことによって、さらに効率がよくなる。ある限界
までは、取り出すセグメントが大きくなるほど、キャッ
シュメモリに対する次の参照のうまくいく確立が高くな
る。セグメントとしてデータを取り出す方法には、必要
時にキャッシュメモリ内のデータを見つけ出す確立を高
める利点があるが、同時に、主メモリからキャッシュメ
モリへ転送されるデータの総量も大幅に増加することに
なる。このデータ量は、適正に管理しなければ、該シス
テムに遅延を付加する原因となる可能性がある。セグメ
ントが大きくなると、主メモリからキャッシュメモリへ
の転送を完了するのに必要な時間が延長される。転送時
間の延長は、プロセッサがセグメントの終端にアクセス
できるまでの遅延が増すことを意味する。また、主メモ
リとキャッシュメモリ間における後続の転送の開始も遅
延する可能性がある。
上記に加え、アクセスの要求時に、キャッシュメモリ内
でほとんどのデータが得られることを保証するため、さ
らに精密な方法が開発された。例えば、米国特許第4.
435.759号明細書は、命令のアドレスと命令によ
って、発生するキャッシュオペランド行シスのアドレス
とを連関させるハードウェアモニタに関するものである
。パイプラインデータ処理システムにこの方法を用いる
ことによって、モニタシステムは、同じ命令の次の実行
時に、どの行にアクセスすることになりそつかを見越し
、判定することが可能に?jる。米国特許第4゜441
.155号明細書は、ミス率の低下に焦点を会わせた、
合同(congruence)クラスのアクティビティ
をより均一にすることによってキャッシュメモリのミス
数を減らす手段に関するものである。米国特許第4,4
63,424号は、キャッシュメモリを再分して、同時
に実行される処理に適正なサイズのセクシ譚ンを割当て
ることにより、キャッシュメモリのミス率を低下させる
手段に関するものである。
キャッシュメモリの利用を管理するための別の方法には
、キャッシュメモリへのデータ及び命令の記憶を制限し
、情報の一部が、キャッシュメモリへ記憶せず、プロセ
ッサからメモリへ、あるいは、メモリからプロセッサへ
直接送られるようにすることが必要とされる。キャッシ
ュメモリの状況及び観測された書込みアクティビティを
利用して、メモリからキャッシュメモリへのデータ送り
を選択的に禁止することができる。米国特許第4゜42
9.383号明細書は、キャッシュメモリの状況及び最
新のメモリ参照に基づいて、キャッシュメモリへのデー
タ記憶を制限する方法に関するものである。メモリの階
層は、メモリに対する一連のアクセス要求をモニタし、
所定の事象が生じると、これを表示することによって制
御される。例えば、直接アクセス記憶装置(DASD)
(すなわち、ディスクドライブ)からの記憶が参照され
た最後の部分について修正されていない場合、この部分
の内容をキャッシュメモリに送ることができる。
このタイプの一連の要求におけるデータへのアクセスは
、データ送りを減少させることになりがちである。米国
特許第4.4133.420号明細書は、タスク識別子
に基づいて、キャッシュメモリシステム内で置換すべき
データ行を選択する方法、及び、キャッシュメモリから
早期に行を除去する方法に関するものである。米国特許
第4.189,770号明細書は、命令ミス時に、キャ
ッシュメモリの行の順次部分を命令バッファ(I−バッ
ファ)へ送る手段について教示するものである。
上記引用特許は、データまたは命令の全セグメントがキ
ャッシュメモリに記憶される、または、キャッシュメモ
リから排除される時を決めるための判定基準を利用して
いる。キャッシュメモリのミスに応答して全セグメント
を取り出すよつに決定すると、キャッシュメモリのアク
ティビティは、それがないためにキャッシュメモリのミ
スを生じることになったデータの転送に必要とされる時
間を超えてしまう可能性がある。この延長されたキャッ
シュメモリのアクティビティによって、キャッシュメモ
リシステムの潜在的性能が低下する可能性がある。メモ
リからキャッシュメモリへの隣接したデータ転送によっ
て生じる付加遅延は、参照の空間的及び時間的局所性を
活かすキャッシュメモリの利用によって得られる性能向
上を部分的に無効にする可能性がある。
システムの性能を高める1つの方法は、メモリからキャ
ッシュメモリへの行転送の進行中に、例えば、行バッフ
ァ(ラインバッファ)から行へ確実にアクセスできるよ
うにすることである。これによって、全セグメントの転
送が完了する前に、プロセッサに利用し得るセグメント
の始端でデータ転送が行なわれることになる。米国特許
第4,370.710号明細書は、主メモリからのデー
タ転送を待つ間、キャッシュメモリがロックされず、そ
れに対して行なわれる要求の流れに応え続ける、キャッ
シュメモリ編成に関するものである。
該システムの場合、転送されるデータには、ミスを生じ
させたデータ及びその周辺のデータブロックが含まれる
。データブロックは、主メモリに記憶されるのと同じ順
番で転送され、転送されたブロックの一部に対するアク
セスが、ブロック転送が完了するまでに、プロセッサに
よって行なわれる。しかし、ミスを生じた目的データの
すぐ後に参照されるデータが、メモリ内において転送さ
れるセグメントの終端近く、または、終端に位置する場
合には、このシステムで性能が向上することはない。こ
のデータは、行バッファのデータにアクセスする能力に
関係なく、遅延することになる。
C1発明が解決しようとする課題 従来、キャッシュメモリは、データまたは命令の全てが
転送され、記憶されるシーケンスを決定するための一定
の方法を用いてきた。シーケンスは、目的データに対す
るメモリ内でのデータの位置によってのみ決まるのが普
通である。全てのミスが同じように取り扱われる。最適
性能を得るため、キャッシュメモリ管理システムは、コ
ンピュータプログラムにおける反復挙動を利用するのが
望ましい。セグメントの実行毎に、プログラムのセグメ
ントによって行なわれるメモリアクセスのパターンが反
復される。さらに、該システムは、異なるプログラムセ
グメントがメモリアクセスの異なるパターンを備えてい
る可能性があることを認識しなければならない。最後に
、該システムは、全てのプログラムセグメントが参照の
空間的局所性を示すわけではかいことを認識すべきであ
る、これらのプログラムについては、行の一部しか利用
されないので、完全な行の転送による便益が得られない
00課題を解決するための手段 本発明は、メタ・ミス・ファシリティを備えたキャッシ
ュメモリシステムにおいて具現化される。
メタ・ミスファシリティは、キャッシュメモリのミス応
答とそのミスを生じさせた命令を連関させることによっ
て、メモリ及びキャッシュメモリの管理を最適化するの
に役立つものである。キャッシュメモリのミスが処理さ
れている間、くスを生じた目的データを含んでいた行に
対する参照がモニタされる。この情報は、このために予
約されたテーブルに記憶される。このテーブルは、この
ために予約された1組のアレイ、レジスタ、または、局
部記憶装置によって実現することができる。テーブルの
各項目は、 ミスを生じさせた命令によって識別される
。これらの命令が再度実施される場合には、命令に関す
るテーブル項目にアクセスすることによって、プロセッ
サに、データ要素のリスト、及び、任意選択により、主
メモリからキャッシュメモリへのデータ転送の望ましい
順序が与えられる。
転送される行内でデータの適正な順序づけを行なう以外
に、本発明によるメタ・ミス・ファシリティは、例えば
、その行内のデータは、ミスを生じさせた命令に続く命
令によって参照されることはないので、その行をキャッ
シュメモリに入力すべきではないといった判定を行なつ
ための基準を規定することができる。メタ・ミス・ファ
シリティは、また、ある行がキャッシュメモリからのア
クセスを受けていないことを検出すると、その行のデー
タの限定されたサブセットを行バッファへ転送可能にす
る。この構成の場合、プロセッサは、主メモリから実際
に用いられるデータだけを転送する。この戦略は、不必
要な行置換を回避し、スラッシングを減少させるのに役
立つ。
E、実施例 以下には、本発明による典型的なメタ・ミス・ファシリ
ティについて説明を行なう。
キャッシュメモリシステムは、IBM社製のS/370
プロセツサのような最新式の本体コンピュータに用いら
れるのが普通である。このタイプのシステムの場合、デ
ータは、主メモリに記憶される。プロセッサは、データ
に対する要求をキャッシュメモリに送る。キャッシュメ
モリにこれらの要求の目的データが納められていれば、
主メモリを巻き込まずとも、要求が満たされることにな
る。しかし、要求の目的データがキャッシュメモリに常
駐していなければ、キャッシュメモリのミスが生じるこ
とになる。キャッシュメモリのミスは、主メモリから目
的ワードを要求することによって解消される。目的ワー
ドを含む固定サイズのセグメントが、プログラムにおけ
る参照の空間的局所性を利用すべく、行バッファを介し
てキャッシュメモリに転送される。
本発明は、行内のデータが主メモリから与えられるシー
ケンスを変更して、該データにアクセスするプログラム
によってそれらが用いられる順序と一致させるように、
メモリコントローラが命令を受けるシステムにおいて具
現化される。メモリコントローラによってメモリに与え
られる情報は、キャッシュメモリのミスを生じさせるそ
れぞれのプログラム命令に適応するようになっている。
これら同じ命令によって生じるキャッシュメモリのミス
が後続する場合に体験する可能性のある遅延を減らすた
め、再順序づけが行なわれる。
再順序づけに加え、さらに、プログラムがその行の全て
を利用するわけではないということが分かっている場合
、メモリから部分的な行伝送が行なえるようにするのも
望ましい。もう1つの望ましい特徴は、キャッシュメモ
リへ転送する必要はないが、行バッファにだけは送るの
が望ましい目的データを区別するファシリティである。
短命なミスと称されるタイプのキャッシュメモリのミス
に応答してこれらの特徴が両方とも利用される。
メモリから行が検索される場合に(キャッシュメモリの
ミスに続いて)、この説明で用いられるような短命な(
ephemeral )ミスが生じ、メモリから行が検
索される間に、もとのミスを生じさせた同じ命令によっ
て、異なる行のデータにキャッシュメモリのミスが生じ
ることになる。
本発明によるシステムは、キャッシュメモリのミスに続
いて、メモリからアクセスされるデータの再順序づけを
行なう命令コマンドを発生することによって、これらの
目的を適えるものである。
キャッシュメモリのミスを生じる各プログラム命令毎に
、将来の再順序づけ指令が生成される。再順序づけ指令
によって示されたシーケンスでデータにアクセスするこ
とによって、システムの性能が向上する場合、その指令
(コマンド)は記憶され、それぞれの命令によってキャ
ッシュメモリのミスが生じる毎に、後続する検索が施さ
れる。プロセッサのアクセスパターンから導き出される
経験的データによって、メモリからデータ検索を行なう
シーケンスの最適化が可能になる。本発明は、また、ア
クセスされた行におけるデータの一部しか含んでいない
シーケンスの検索を行なう方法、及び、行を部分的にし
か検索しないことが望ましい場合に、これを判定する基
準を提供する。
指令の再順序づけ、部分的行検索、及び、キャッシュメ
モリを選択的にバイパスする指令を利用することによっ
て、キャッシュメモリシステムを含むデータ処理システ
ムの性能が向上する。これらの技法によって、最初に利
用するデータが、確実にメモリから最初に取り出される
ことになる。
さらに、これらの技法は、主メモリからキャッシュメモ
リへ転送されるデータの総量を減少させるのに役立つ。
第2図は、プロセッサ10、キャッシュメモリ20、行
バツフア301  メモリコントローラ401及び、主
メモリ 50を含む典型的な先行技術によるシステムの
ブロック図である。プロセッサ10は、ワードのアドレ
スをキャッシュメモリ20に送り込むことによって、キ
ャッシュメモリ20からデータのワード(例えば、32
ビツトのデジタル値)を要求する。このワードは、下記
において目的ワードと称することにする。キャッシュメ
モリ20に、目的ワードが常駐するマルチワードセグメ
ントまたは行のデータが含まれている場合、主メモリ5
0からデータを取り出さなくても、要求を満たすことが
できる。しかし、目的語が存在しなければ、キャッシュ
メモリのミスが生じる。
キャッシュメモリ20は、ミスの生じたワードのアドレ
スをコントローラ40に送る。このアドレスに応答し、
コントローラ40は、メモリ50に対し目的ワードを含
むダブルワード(例えば、64ビツト)を行バツフア3
0に送るように命じる。
次に、行バツフア30は、プロセッサ10が目的ワード
を利用できるようにする。
目的ワードが主メモリ50から行バツフア30へ転送さ
れる際、例示のシステムは、目的ワードの常駐する行の
データのうち残りのデータを1度にダブルワード1つず
つメモリ50から転送することによって、参照の空間的
局所性を利用しようとする。従って、キャッシュメモリ
のミスが生じると、プロセッサは、それが要求したデー
タ値と、目的ワードが常駐する行を構成する追加データ
値を加えたものを受信する。行サイズは、固定されてい
るのが普通である。
下記の例において、1行のデータには128バイトが含
まれており、128バイトの境界で境界合せが施されて
いる。数行は、16のダブルワード(DWで表わす)か
ら成り、各DWには、8バイトが含まれており、各DW
は、aバイトの境界で始まる。従って、プロセッサ10
が目的ワードにアクセスしようとして、キャッシュメモ
リのミスが生じると、メモリ50は、目的ワードに31
の付加ワードを加えたものを含む行を戻す。該技術の熟
練者であれば、このシステムを容易に拡張して、他のキ
ャッシュメモリの行サイズ及びワードサイズにすること
ができる。
下記シーケンスは、メモリ50からキャッシュメモリ2
0への全ての転送について、先行技術のキャッシュメモ
リシステムによって利用されるシーケンスの特色をよく
表わしたものである。該シーケンスにおいて、目的アド
レスは、最初に戻されるDWである。その行における残
りのDWは、DWのアドレスを増す順序で戻され、行バ
ツフア30に入力される。目的DWがその行に最低アド
レスを有していない場合、そのアドレスが目的DWより
も低いDWが、最高アドレスを備えたDWに後続する(
例えば、t3.14.15.011.2・・・)。この
シーケンスは、 ′省略時”シーケンスと呼ばれる。
行バツフア30の内容が、行転送の完了後、キャッシュ
メモリ20に納められる。行の転送中に、プロセッサ1
0は、転送された個々のDWに対し行バツフア30から
アクセスすることができる。
行転送が完了すると、行バッファの内容がそっくりキャ
ッシュメモリに記憶されることになる。
第1図は、本発明の実施例を含む改良形データ処理シス
テムのブロック図である。第1図に示すシステムにキャ
ッシュメモリのミスが生じると、プロセッサ10は、メ
モリ50から再検索される行の再順序づけに備えて、あ
らかじめ指令が記憶されているか否かを判定する。その
命令に関して再順序づけ指令が見つからなければ、主メ
モリ50からのデータ検索は省略時シーケンスが行なわ
れる。いずれにせよ、再順序づけ指令アセンブリ(RC
A)80は、データがメモリ50から行バツフア30へ
転送される間、行バッファに記憶されるワード及びプロ
セッサ10によって行Aわれるキャッシュメモリへのア
クセスをモニタする。
RCA80は、行の転送時に、その行におけるどのDW
が用いられるかを確認する。RCA60は、また、1の
DWが用いられるシーケンスを確認する。このモニタ結
果が、目的行におけるワードにアクセスするのに望まし
い順序を表わす再順序づけ指令である。プロセッサによ
って要求された時、バッファ内にその行の少なくとも1
つのワードでもない場合に限り、この指令が再順序づけ
指令テーブル(RCT)70に記憶される。
キャッシュメモリのミスの発生時に、そのミスを生じさ
せた命令に対応する再順序づけ指令が見つかると、RC
T70は、行バツフア30及びメモリ50に対し、主メ
モリ50からDWを送り出すのに望ましいシーケンスを
規定した情報を提供する。伝送前に、メモリ50による
DWの適正な再順序づけを確保するため、メモリコント
ローラ40にはシーケンスコントローラ90が追加され
る。行バツフア30用のシーケンスコントローラ90は
、メモリ50からの再順序づけされたDWの受信を調整
する。
第3図には、行バツフア30及びRCA60内で制御装
置を利用して再順序づけ指令を発生させることができる
方法が、さらに詳細に示されている。この実施は、プロ
セッサ10が、キャッシュメモリ20に対して行なうア
クセスと並行して行バツフア30にアクセスできるとい
う仮定に立つものである。
行バツフア30は、それぞれのフィールド32a−pに
DWO〜15を収容している。DWに関するデータは、
メモリ50から読み込まれる際、適合するフィールドに
入力される(例えば、行内で最低のアドレスを有するD
Wは、DW32aに納められ、最高のアドレスを有する
DWは、DW32pに納められる)。D W 32 a
−pは、DW32a−pの状況及びアクセスの経過に関
連した情報を供給する、それぞれの有効ピッ)34a〜
p及びそれぞれの参照ピッ) 38 a−’−’lを備
えている。
まず、キャッシュメモリのミスが生じると、全ての有効
ビット34a−1)及び参照ビット36a〜pが、セッ
トされて、ダブルワードDWO−DW15が無効であり
、参照されていないことが示される。DWO〜DW15
が主メモリ50から行バツフア30にロードされると、
それぞれの有効ピッ)34a〜34pがセットされて、
有効データであることが示される。それぞれのDW32
 a〜pが初めてプロセッサ10のアクセスを受けると
、参照ピッ) 38 a−1がセットされ、参照データ
であることが示される。
キャッシュメモリのミスが生じると、まず、目的DWが
メモリ50から行バツフア30に転送される。次に、こ
のDWに関する有効ビットがセットされ、有効とされる
。行バツフア30が各1M次DWを受信する毎に、その
それぞれの有効ビットがセットされる。
データがメモリ50から行バツフア30に転送されるに
つれて、RCA60は、再順序づけ指令をアセンブルし
ていく。RCA60は、RCA制御HW62.  行バ
ツフア30内における位置に関して、参照DWの時間順
のリストを保持しているメモリ64、再順序づけ指令に
おけるDWの数のカウントを保持しているレジスタ66
、及びプロセッサ10が行の転送時に与えられるデータ
値を待っている場合に限りセットされる遅延標識68か
ら構成される。
キャッシュメモリのミスが最初に生じる時、メモリ64
には、1つの項目、すなわち、行バッファにおける目的
DWの位置に対するポインタが含まれている。DWカウ
ントレジスタ66の値は、!であり、遅延標識68は、
 リセットされる。
目的DWが行バッファに転送されると、プロセッサ10
は、目的ワードにアクセスし、次に、そのアクティビテ
ィを再開する。ミスを生じさせたアクセス要求に後続す
るアクセス要求のタイミングによって、再順序づけ指令
の内容に影響するいくつかの異なる作用が生じる可能性
がある。
第4図は、プロセッサ10がDWの要求を行なう毎にた
どるステップを要約したフローチャートであり、結果と
して、再順序づけ指令が発生する。
最初のステップ410においてプロセッサ10がアクセ
スしているDWが、現在メモリ50から行バツフア30
へ転送中の行に含まれているか否かの判定が行なわれる
ある行が転送中であり、プロセッサ10によってアクセ
スされているDWがその行に含まれている場合、下記の
3つのステップの1つが行なわれる、 ステップ412で、アクセスされているDWが行バツフ
ア30に含まれており、有効であって(すでにメモリ5
0から転送されている)、参照されている(メモリ50
から行バツフア30への転送以降、プロセッサ10によ
ってすでにアクセスされている)場合、そのDWは、プ
ロセッサ10に送られる(ステップ414)。この場合
、有効ビット34、参照ビット36、リスト64、カウ
ント66、または、遅延標識68には、変更がない。
ステップ416 において、アクセスされているDWが
行バツフア30に含まれており、有効(メモリ50から
行バツフア30へすでに転送されている)及び非参照(
まだプロセッサ10によってアクセスされていない)と
表示されている場合には、ステップ418が実行される
。ステップ418において、DWがプロセッサ10に送
られ、参照ビット36が参照値にセットされ、行内にお
けるDW32の位置を指定する4ビツトの表示がリスト
64に加えられ、カウント値が1だけ増加する。有効ビ
ット34及び遅延標識68は、このアクセスの影響を受
けない。
ステップ416において、行バツフア30内のアクセス
されているDWが、無効(まだメモリ50から行バツフ
ア30に転送されていない)と表示されている場合、D
Wは、この時点においてプロセッサ10に送ることはで
きない。この場合、ステップ420が実行されて、遅延
標識がセットされる。次に、プロセッサ10は、目的D
Wが行バツフア30に書き込まれるまで、ステップ41
6及び420のループを繰返す。これが行なわれると、
ステップ416からステップ418に分岐して、前述の
処理が実施される。ステップ414に分岐して、DWが
プロセッサ10に送られることにより、転送が完了する
メモリ 50から行バツフア30への行転送が終了する
と、ステップ421から始まる、第4A図に示すアクシ
ロンが開始される。ステップ421において、RCA制
御装置62は、遅延標!1168をチエツクする。ステ
ップ422で、遅延標識68がセットされていなければ
、ステップ424において、アセンブルされた再順序づ
け指令が廃棄される。この場合、遅延標識68は、プロ
セッサ10によって参照された各DWが、要求時に利用
可能であったことを明らかにする。プロセッサのデータ
アクセスのどれにも遅延がなかったので、それ以上再順
序づけを行なっても便益は得られない。
しかし、ステップ422において、遅延標Ta68がセ
ットされている場合には、ステップ426において、ア
センブルされた再順序づけ指令がRCTに記憶される。
この指令は、キャッシュメモリのミスを生じさせた命令
の再発時に、RCTから自動的に検索される。プロセッ
サがデータを待つことによって費やす時間が短縮される
ので、メモリ50から行バツフア30に転送されるDW
の再順序づけを行なうことによって、プロセッサの性能
が向上する。非参照DWは、そのシーケンスにおいて時
間的に後の位置へ転送するか、そのシーケンスから完全
に除去することが望ましい場合もある。これは、例えば
、命令の最初の実行時に、非参照DWがメモリ50から
転送される場合に行なわれる。行転送の完了後に行なわ
れるDWの参照を引続きモニタするのは望ましくない、
というのも、これらのDWの全ては、プロセッサ10に
よる参照時に、キャッシュメモリで得られるためであり
、従って、それ以上再順序づけをしても便益を得ること
ができない。
ステップ410において、所定の命令の実施によるキャ
ッシュメモリのミスのため、ある行が現在転送されてお
り、プロセッサ10によってアクセスされるDWがその
行に含まれていなければ、キャッシュメモリ20から目
的ワードを検索しようとする。目的DWが、キャッシュ
メモリ20に含まれていなければ、キャッシュメモリの
新しいミスが生じたことになる。
ステップ410において、行バツフア30に目的DWが
含まれていなければ、ステップ428で、短命なミスが
生じたか否かの評価が行なわれる。
短命なミスが生じるのは、所定の命令によって要求され
るメモリアクセスに応答して、ある行がメモリ50から
行バツフア30へ現在転送中である場合と、キャッシュ
メモリのミスが、同じ命令であるが、異なる行のワード
について生じる場合である。
ステップ428において、これらの条件に合致すると、
ステップ432において、前のミスに対する再順序づけ
指令が、再順序づけ指令テーブルの項目(RCTE)と
してRCT70に記憶される、RCT及びRCTEの構
造については、第5A図及び第5B図に関連して後述す
る。
第4図を参照すると、ステップ428で短命なミスが生
じた場合、ステップ432で、短命標識80がオンにな
る。行バツフア30で現在アセンブル中の行が、現在の
キャッシュメモリのミスを生じさせたものと同じ命令を
満たすので、ライン30の行から生成された再順序づけ
指令が、現在のキャッシュメモリのミスに対して用いら
れる。
この同じRCTE72が、この命令によって生じる現在
及び将来のキャッシュメモリのミスに用いられることに
なり、利用される順番にメモリ50から行バツフア30
へDWの転送が行なわれる。
この命令が実施される毎に短命なミスが生じ、それぞれ
異なる行のデータが参照される。実際に参照されたDW
だけが行バッファに転送され、行バッファの内容は、キ
ャッシュメモリ20に転送されない。
このデータに関する全てのアクセスは、行バツフア30
によって行なわれる。ただし、これらの行内のアクセス
を受けるDWに関する相対位置及びシーケンスは、一定
のままである。真に短命なミスに応答してアクセスされ
るデータ行について、キャッシュメモリ内の参照が行な
われないので、RCAに記録されているDWだけがアク
セスされる。
この情報は、記録されたDWだけに短命なミスが生じる
場合、メモリの通信量を減らすのに利用できる。
短命なミスは、目的データに対するキャッシュメモリ内
での参照が行なわれない場合に限って生じるので、性能
向上の見地からすると特殊なケースである。参照の時間
的及び空間的局所性のため、データは近い将来において
用いられることになる可能性があるので、データは、メ
モリ50からキャッシュメモリ30へ転送されるのが普
通である。
経験的に、特定の命令の実行時にプロセッサ10が参照
する行が、同じ命令の次の実行前または実行時に再度参
照されることはないということが分っている場合、キャ
ッシュメモリ20にその行を記憶しても、便益は期待で
きない。本発明は、あまり有害な影響を及ぼすことなく
、キャッシュメモリ20へ転送されるデータの量を減少
させることが可能である。
ステップ428において、短命なミスが生じなかったと
判定されると、ステップ430が実行されて、そのDW
を含む行が行バツフア30へ転送され、新しいRCTE
72が発生する。ステップ414.424.42B、ま
たは、432が完了すると、プロセッサ10は、ステッ
プ400で、もう1つの命令を実行し、さらにデータ要
求を開始することができる。
第5A図を参照すると、RCT70の構造が詳細に示さ
れている。このRCTは、Kが2Nに等しいとした場合
、K個の項目(RCTE)を備えている。RCT70の
各RCTEは、RCTEを発生する動機となった、キャ
ッシュメモリのミスを生じさせたNビットのアドレスの
命令から生成されたハツシュ関数によってアドレス指定
される。
各RCTEには、ハツシュ関数に用いられなかったNビ
ットの命令アドレスのビットを保持する、(M−N)ビ
ットアドレスフィールド74が含まれている。キャッシ
ュメモリのミスに出くわすと、選択されたNビットの命
令アドレスを用いて、RCTがアドレス指定される。次
に、アドレス指定された項目のアドレスフィールドが、
残りの(M−N)ビットの命令アドレスと比較される。
これらが等しければ、アドレス指定された項目は、その
ミスを生じさせた命令に対するものである。さもなけれ
ば、そうではない。
その項目がミスを生じさせた命令に対するものでなけれ
ば、その命令に応答して発生する場合、新しいRCTE
が既存の項目にオーバーライドされることになる。
第5B図に示す指令フィールド76には、実際の再順序
づけ情報が含まれている。短命標識80は、上述のよう
に、短命ミスを繰返し生じさせる命令の表示に用いられ
る。DWカウント82によって、RCTEのアセンブル
中に実際に参照されたDWの数が示される。残りの16
の指示フィールド84a〜84pは、適正な時間順に、
命令の実行時に参照される各DWに関する行内の位置を
示す。本発明のこの実施例の場合、指示フィールド84
a〜84pは、行内におけるそれぞれ異なるダブルワー
ドを表わす4ビツト値である。
RCTE72における最後のフィールドは、有効ビット
78である。該システムを最初に使用する時、各RCT
E毎に有効ビットはオフになる。
RCTEが記憶されるにつれて、新しい各RCTE毎に
有効ビットがオンになる。
第8図には、再順序づけ指令がある場合とない場合の両
方において、メモリ50からDWの検索を行なう方法に
ついて説明したフローチャートである。ステップ500
にわけるプロセッサ10によるデータアクセス要求の後
、ステップ510が実行される。ステップ510では、
目的データがキャッシュメモリ20に納められているか
否かの判定が行なわれる。納められていれば、ステップ
512において、そのデータはキャッシュメモリ20か
ら戻される。納められなければ、その要求を満たすのに
用いることが可能なRCTEが存在するか否かの評価が
行なわれる。
キャッシュメモリのミスを生じさせた命令に関連する有
効なRCTE72がなければ、ステップ516において
、メモリ50は条件に従い、省略時シーケンスを用いて
、行内のDWを戻す。この場合、RCA60を用いて、
再順序づけ指令を発生すべきか否かの判定が行なわれる
。最初に、目的データ値を含むDWが戻され、これに、
順次より高いアドレスを備えたDWが後続する。これら
に、目的データ値のアドレスより低いアドレスを備えた
DW(あるとすれば)が、やはり昇順に後続する。第4
図に示すように、DWの参照がモニタされ、再順序づけ
指令の設定に必要な判定基準が満たされるか否かの判定
が行なわれる。ステップ514において、キャッシュメ
モリのミスを生じさせた命令に関連する有効なRCTE
が存在する場合、ステップ524が実行される。このス
テップにおいて、メモリコントローラ40は、RCTE
の制御を受けるDW(すなわち、バッファ30に対する
行の転送時に参照されたDW)の数であるDWのカウン
ト82をまず求めることによって、再順序づけ指令を受
諾し、解釈する。DW指示子84a−pのこの数は、メ
モリコントローラ40によって、適合する時間的シーケ
ンスでRCTEの指令フィールドから送り出される。
指示子84a−1の伝送後、メモリコントローラ40は
、ステップ526において、短命標m80を評価し、現
在のキャッシュメモリのミスが短命なミスか否かの判定
を行なう。ミスが短命の場合、メモリコントローラ40
は、その伝送を終了し、制御は、ステップ500に戻さ
れる。また、行バツフア30は、短命ミスの場合、RC
TEにアクセスし、同様に、DWの参照後における伝送
の終了に備える。
ステップ526において、現在のキャッシュメモリのミ
スが短命でないと判定される場合、ステップ528が実
行される。ステップ528において、メモリコントロー
ラ40は、短命なミスの場合に限り、4ビツト指示子8
6の表示された数を時間順に伝送する。しかしながら、
非短命ミスの場合、行内の残りのDWの全てが、やはり
伝送される。このステップは、キャッシュメモリの行の
フルサイズ(及び参照の時間的及び空間的局所性)を利
用する。RCTE72の制御下でロードされたDWがス
キップされる場合を除き、残りのDWは省略時シーケン
スで転送される。このシーケンスには、目的アドレス(
もしあれば)を超える最小アドレスで始まる漸増アドレ
スが含まれている。
最大のアドレスに続いて、目的アドレス(もしあれば)
未満のアドレスが昇順で送り出される。
再順序づけ指令が用いられている場合でも参照及び遅延
に関して、行アクティビティのモニターが自動的に行な
われる。ステップ530において、行転送の終了時に、
RCA80は、遅延に出くわしたか否かの判定を行なう
。RCTEを利用して、キャッシュメモリのミスに応え
、ステップ530において遅延に出くわしていないとい
うことになれば、ステップ532が実行され、この命令
について新しいRCTEは生成されない。ステップ53
0の実行によって、とのRCTEを利用して遅延が生じ
たということが示されるまで、以前のRCTEは保持さ
れる。この場合、遅延標識がセットされていることが分
ると、このミスの処理中に発生したRCTEが、RCT
における前のRCTEに取って代る。この手順は、第4
A図に関連して既述のものと同じである。
当該技術の熟練者には明らかなように、上述の実施例は
、再順序づけの概念を利用した本発明について可能性の
ある数多くのバリエージ譚ンの1つにすぎない。以上の
説明は、単一プロセッサ構成に焦点を合わせたものであ
るが、キャッシュメモリシステムは、マルチプロセッサ
構成に拡張して用いられるし、本発明をこうしたシステ
ムに利用することも可能である。
第7図には、本発明の実施例を含む2つのプロセッサ構
成が示されている。単一プロセッサシステムとマルチプ
ロセッサシステムの両方に共通した項目は、第2図の場
合と同じ第7図の参照番号で識別される。プロセッサ1
0a及び10bは、共用主メモリ501  メモリコン
トローラ40、シーケンスコントローラ90、及び、共
用RCT70を備えた多重処理環境において動作する。
各プロセッサ(10a、10b)は、それぞれのキャッ
シュメモリ(20a、20b)、行バッファ(30a1
30b)、 及び、 RCA(80a160b)を備え
ている。
プロセッサ10a及び10bのそれぞれは、上述の単一
プロセッサ10と同様に動作する。キャッシュメモリの
ミスの後、主メモリ50からそれぞれの行バツフア30
aまたは30bにデータが転送され、そこからそれぞれ
のキャッシュメモリ20aまたは20bに転送される。
それぞれのRCAEIOa及び60bは、ミスの処理に
つれてRCTEを発生する。行転送中に、戻されるデー
タの順序づけによって生じる遅延に出くわすと、それぞ
れのRCTEがRCT70に記憶される。同じ命令の後
続の実行時に、シーケンス制御装置90及びメモリコン
トローラ40が行バツフア30a及び30bにデータを
転送するシーケンスが、RCTE72の利用によって変
更されることになる。
マルチプロセッサの実現には、単一プロセッサのバージ
ロンには見受けられない追加ケイパビリティが含まれる
。最初に、キャッシュメモリ20aに目的データがない
と判定されると、キャッシュメモリ20aは、メモリコ
ントローラ40に対しそのデータにアクセスする要求を
出す。メモリコントローラ40は、要求されたデータ項
目を含むデータ行のコピーを得るのに必要な処置をとる
そのデータがキャッシュメモリ20内に存在する場合、
主記憶装置へのアクセスを行なわずに、直接キャッシュ
・キャッシュバス22によって転送することができる。
2つのプロセッサ10a及び10bが共通のRCTを用
いることによって、それぞれのプロセッサが他のプロセ
ッサによって発生したRCTEを利用できるようになる
。従って、各プロセッサは、RCTEを利用できないキ
ャッシュメモリでの最初のミスの数が減少するという体
験をすることになる。
この例は、2プロセツサシステムに関連して示されてい
るが、当該技術の熟練者であれば、該システムを拡張し
、簡単により多くのプロセッサを含むようにすることが
できる。
第2の代替実施例には、上述のものと同様の単一プロセ
ッサ構成が含まれる。本発明の既述の実施例では、指示
子84a〜84pは、それぞれ、ある行におけるDWの
アドレスを表わした4ビツト値であった。これらの4ビ
ツト値によって、その行の始端に対して各ダブルワード
を指定することができる。データアレイの行がキャッシ
ュメモリの行の境界と一列に並ぶ場合(例えば、本発明
の本実施例において、アレイの行サイズが、32ワード
で均等に分割できる場合)、このアプローチはうまくい
く。この場合、このミスを生じさせる命令を実行する毎
に、目的行内における同じ絶対位置のDWにアクセスし
ようとする。本発明のこの実施例について十分な便益を
得るには、ユーザは、アレイサイズを制限して、それら
とキャッシュメモリの行サイズとの整合がとれるように
すべきである。
メモリを最も有効に利用するため、アレイサイズにこの
制限を課すのは望ましくない場合もあり得る。しかし、
アレイの行のサイズが異なっていて、キャッシュメモリ
の行の境界と一列に揃わない場合には、そのキャッシュ
メモリのミスを生じさせる目的DWが、キャッシュメモ
リに転送される行内のどの位110〜15にでも生じる
可能性があり、指示子84a〜84pは、行バッファへ
ワードを転送するのに望ましい順序を指示することがで
きない。この場合、その行における絶対ワードアドレス
としてではなく、キャッシュメモリのミスを生じさせた
DWのアドレスと相対的なりWの参照シーケンスを指定
するのが望ましい。そのミスを生じさせたDWは、その
行の始端と終端との間のどこにでも位置する可能性があ
るので、これらの相対位置標識は、−15と+15の間
で変動する値をとることができる。この範囲の値は、5
ビツトで表わすことができる。従って、本発明のこの代
替実施例では、指示子84a〜84pは5ビツトの値に
なる。
上記に加え、本発明のこの実施例において用いられるシ
ーケンス制御装置90には、符号拡張した2の補数バー
ジロンによる5ビツトの相対アドレスを目的DWに加え
て、その行における他のDWに対するアドレスを生成す
る加算器(図示せず)が含まれている。
相対アドレスを用いると、目的DWを含んでいる行の前
の行または目的行の後の行に位置するDWが、RCTE
72に指定の相対アドレスによって指示される可能性が
ある。いずれの場合にも、目的行の外部に位置するDW
は、RCTHのリストにないように扱われる。この場合
、これらのデータ値が参照されると、第2のキャッシュ
メモリのミスが生じ、別個に処理されることになる。5
ビツトの相対アドレスを用いることによって、RCT7
0のサイズが比較的わずかしか増さない(RCTE当り
2バイト)4ビツトのアドレスに比べてプレキシビリテ
ィが大きくなる。
相対位置によるDWアドレスの指定は、短命なミスの処
理時に、とりわけ、便利である。短命なミスの生じやす
いデータ構造の一例として、各ブロックに次の制御ブロ
ックに対するポインタが含まれている制御ブロックの連
係リストがある。固定ブロック構造の場合、このポイン
タは、アクセスされるとミスを生じさせる該ブロック内
におけるワードのアドレスに対し一定量だけずらして離
された位置につく。このワードには、例えば、所望のブ
ロックにアクセスすると、これを表示するテスト値を含
むことができる。RCT70を利用して、非短命ミスに
対する同じメモリアドレスに位置するデータの最適な順
序づけが行なわれる。
短命なミスの場合、命令の実行毎に、異なるメモリアド
レスにアクセスする。
本発明の第3の実施例の場合、RCTEにおける指示フ
ィールドに84の数は(第5B図参照)、1行内のDW
の数より少ないある数、例えば、8に制限することがで
きる。
RCTE72のサイズを縮小することによって、いくつ
かの利点を実現することができる。再順序づけ指令の複
雑さが緩和され、プロセッサ10とメモリ50の間にお
ける指令の通信量が減少する。
さらに、RCT60のメモリにおける占有領域が減少す
る。
本発明のこの実施例は、第1の実施例のように、4ビツ
トの絶対アドレスと共に用いることもできるし、あるい
は、第3の実施例のように、5ビツトの相対アドレスと
共に用いることもできる。当該技術の熟練者には明らか
なように、RCTEのサイズが、1行内における全ての
DWを収容できるものであるか、あるいは、その何分の
1かの数のDWL、か収容できないものであるかに関係
なく、4ビツトアドレスと5ビツトアドレスのいずれを
利用すべきかの判定基準は、同じである。
本発明の第4の実施例の場合、上述の装置のよりいっそ
うの簡略化を伴うことになる。この実施例の場合、RC
TE指令フ指令フィールア項目76図参照)は、1f3
ビツトのベクトルに置き換えられる。このベクトルのビ
ットがセットされて、その行内のそれぞれのDWが行転
送時に参照されるか否かが示される。
このビットベクトルによって伝えられる唯一の再順序づ
け情報は、あるDWが行転送中に参照されたか否かとい
うことである。参照される順序でDWを転送する代りに
、この実施例の場合、ピッドベクトルで表わされる、優
先順位がDWに付与される。これらのDWは、全て、参
照されないDWより先に転送される。2つのグループ内
で(参照グループ及び非参照グループ)、DWは省略時
シーケンスに従って転送される。本発明の第1の実施例
の場合と同様、キャッシュメモリの行サイズと整合しな
いアレイサイズが用いられると、ビットベクトルによっ
て伝達される情報は、どんな場合であれ、行バッファへ
ワードを送り込むのに望ましい優先順位を繁栄すること
ができない。
本実施例の利点は、主として、資源の利用が比較的簡単
で、効率がよいという点にある。RCTE72のサイズ
は、6バイトだけ縮小され、RCT70全体としてのサ
イズも、これに従って縮小される。この実施例に用いら
れるシーケンス制御装置90は、より簡単に実現するこ
とができる。
本発明の第5の実施例の場合、RCTは完全に排除する
ことができる。この実施例では、DWの参照シーケンス
を設定する代替方法が用いられる。
アクヤスのモニタを行ない、再順序づけ指令における参
照データを集めるのではなく、本発明のこの実施例では
、現在実行中の命令に後続する命令に先立って走査を行
ない、現在主メモリ50からロード中の行におけるデー
タにアクセスするか否かを判定する、プロセッサ10と
一体になったファシリティ(図示せず)が用いられる。
この実施例は、現在の命令の実行中に入力される命令を
プロセッサが解読する。パイプラインプロセッサシステ
ムに用いるのに特に適している。
このタイプのシステムの場合、分岐経過テーブルに関連
して後続の命令を得ることにより、シーケンス制御装置
90に適用されるデータ参照が、プログラムによってデ
ータ値の用いられる順序を確実に反映するようにできる
本発明のこの実施例の場合、プロセッサ10によって命
令が読み取られる毎に、参照データを再生することがで
きるので、RCT70は任意選択である。ただし、この
実施例は、既述の他の実施例はどプロセッサの効率を大
きく高めることはできない。これは、要求されるDWの
正しいシーケンスに関して、プロセッサが、時宜を得た
やり方でメモリコントローラに命令することができない
ためである。この走査アプローチは、メモリシステムの
タイミングパラメータにかなり依存しており、従って、
この案を利用する場合、プロセッサはデータを待つ遅延
を経験することになる可能性がある。
以上の実施例のどれでも、最初のキャッシュメモリのミ
スが処理されている間に、第2のキャッシュメモリのミ
スに応じる能力を付加することによって、改良すること
ができる。この能力を実現するため、待ち行列ファシリ
ティとメモリコントローラ40及び行バツフア30を連
係させることが可能である。キャッシュメモリのミスに
続く、DWの行の転送時に、キャッシュメモリ20にな
いもう1つの行からのDWにアクセスしようとする命令
を実行することができる。こうして試みられるアクセス
は、もとのキャッシュメモリのミスに関する行転送時間
内に、データに対して行なわれる最初のアクセス要求と
なる可能性がある。
この場合、第2の行に対するアクセスを扱えるようにな
る前に、最初の行がキャッシュメモリへ送り込まれてい
る間、プロセッサは遅延に見舞われる。最初の行の転送
を中断して、第2のキャッシュメモリのミスに取り組む
ことによって、性能を向上させることができる。第2の
行転送の完了後、最初の行転送を完了させることができ
る。この特徴を実現するには、後続のミスを扱う間、最
初の行転送の進行状態は、ブツシュダウンスタックに記
憶しておくのが望ましい。
ネストされたミス、すなわち、ミス内のミスの取扱いに
は、RCTE内のもう1つの標識が用いられる。この標
識は、ネストされたミスとの最初の遭遇時に、RCAに
よってセットされ、さらに、RCTEが利用される毎に
用いられる。メモリコントローラは、プロセッサに対し
非同期動作をし、参照DWが与えられてから、この標識
によるキューを受け、進行中のミスを表わすデータがス
タックに重ねられるようにして、切迫したもう1つのミ
スを取扱えるようにするのが望ましい。
このタイプのアクティビティは、例えば、第2のミスの
完了時に、スタックがポツプされ、最初のミスが完了す
る点を除けば、メモリコントローラによる短命なよスの
取扱いと全くよく似ている。
RCAによって発生する情報は、第2のミスが生じる前
にアクセスされる行の一部を識別し、メモリコントロー
ラが、第2のミスの処理を促進するのに必要な第1のミ
スの一部だけを送り出すことができるようにする。
第8図には、典型的なスタックが示されている。
本発明のこの実施例に用いられるスタックは、シーケン
ス制御装置90の専用メモリに記憶される。
スタックの各項目は、不完全な行、及び、中断時におけ
る行転送の進行を識別する。第8図に示すスタックには
、スタック項目104a及び104bが含まれている。
各スタック項目には、現在読取り中の行における次のD
Wのアドレスに対するポインタ(例えば、106a)、
部分的に充填された行バッファが納められている。キャ
ッシュメモリ20における行のアドレスを識別するため
の牽引(例えば、108a)が含まれている。
本発明のこの実施例の場合、RCTEに指示されている
DWの全てが、第2のミスの発生時には処理されている
ものと仮定している。従って、スタック102は、最初
のミスについてのRCTHに対するポインタを保持する
必要はない。継続する最初のミスに関するDWは、省略
時シーケンスによって処理される。
第2図を参照すると、第2のミスの発生時に、シーケン
ス制御装置90は、部分的に充填された現在の行バッフ
ァを無効の行として記憶するように、キャッシュメモリ
20に対して信号を送る。
次に、制御装置90は、読み取るべき次のデータ値のア
ドレスとキャッシュメモリ内の行に対するポインタを結
びつけることによって、スタック項目を生成する。この
スタック項目は、スタック102に重ねられ、有効と表
示される。
第2のミスは、前述のやり方で処理される。ミスに対す
る処理が完了すると、有効な項目かどうかについて、ス
タック102が検査される。この場合、最初の部分的ミ
スに関する項目が見つかる。
部分的行バッファがキャッシュメモリ20から検索され
ている間に、この項目に含まれている次のDXのアドレ
スが主メモリ50に送られる。アクセスされるワードの
アドレスは、行内におけるその位置を示しており、再構
成される行バッファにおける項目の有効ビットは、どれ
がさらにアクセスすべきDWであるかを示す。これらの
DWは、省略時シーケンスで主メモリからアクセスされ
る。
行バッファが完全に充填されると、その有効ビットがセ
ットされ、キャッシュメモリに記憶される。
既述の本発明の対するもう1つの改良は、RCTの修正
であり、命令アドレスを関連させるものである。Nビッ
トのハツシュ関数を利用してRCTの項目にアドレス指
定する場合、データアクセスの一部は、異なる命令に関
して、たまたまハツシュテーブルにおける同じアドレス
を発生することになるデータの検索を行なつことができ
る。前述のように、ハツシュ演算が行なわれると、検索
を受けたRCTEのアドレスフィールドが、現在処理中
のキャッシュメモリのミスを発生した命令アドレスの(
M−N)の残りのビットと比較される。これらの値が異
なっていれば、その項目は、アドレス指定された命令に
関するものではなく、新しいRCTEが既存の項目に対
しオーバーライドされることになる。共通のハツシュ値
を有する2つの命令を交互に実行するプログラムの実行
中には、RCTEを用いることはできない。その代り、
命令ループの実行時に、絶えず置換される可能性がある
。この問題は、バッファコンフリクトと呼ばれる。
バッファコンフリクトの問題に対する解決法は、RCT
を関連させることである。すなわち、ハツシュ関数によ
って戻される可能性のある各アドレス値毎に、2つ以上
の独立したRCTEを備えることである。目的ワードに
対する参照の結果、ハツシュ関数によって戻されるアド
レスを占有しているが、不適合なRCTEが見つかると
、そのアドレスを有する多重RCTEの1つが、新しい
目的ワードにアクセスする命令に適合した項目に置き換
えられることになる。
ハツシュ関数のアドレス値毎に多重RCTEを用いるこ
とによって、新たな関心事、すなわち、RCTEの置換
戦略が生じることになる。例えば、RCTEは存在しな
いが、参照命令に関連したハツシュ関数のアドレス値に
対するRCTEは、両方とも位置を占めている命令に参
照する場合、RCTEを置換すべきか否かの判定をしな
ければならない。少なくとも最近用いられている戦略は
、この問題を解決する有効な手段である。この戦略によ
れば、少なくとも最近アクセスされたRCTEが新しい
項目によってオーバーライドされることになる。RCT
Eの相対的状況は、RCTEに状況フィールドを加え、
当該技術の熟練者には既知のいくつかのエイジング関数
のうち任意のものを用いることによって維持することが
可能である。
キャッシュメモリに読み取られる値の順序に調整を加え
て、プロセッサの性能を向上させる、キャッシュメモリ
システムのためのメタ・ミス・ファシリティについて説
明を行なった。さらに、いくつかの明確に示された例に
おいて、主メモリから読み取られる値は、行バッファか
ら直接アクセスされ、キャッシュメモリには記憶されな
い。
10発明の効果 本発明によれば、主メモリと行バッファの間でのデータ
値の転送が最適化される。
【図面の簡単な説明】
第1図は、本発明の実施例を含むキャッシュメモリシス
テムのブロック図である。 第2図は、先行技術によるキャッシュメモリシステムの
ブロック図である。 第3図は、第2図に示すキャッシュメモリシステムに用
いられる行バッファと再順序づけ指令アセンブリ制御1
iftとの関係を表わした図である。 第4図及び第4A図は、第2図に示すキャッシュメモリ
システムに対する再順序づけ指令を発生する典型的な方
法を示すフローチャートである。 第5A図及び第5B図は、第2図に示すキャッシュメモ
リシステムに用いるのに適した再順序づけ指令テーブル
に関する典型的なフォーマットの詳細を示す、データ構
造図である。 第6図は、第5A図及び第5B図に示す再順序づけ指令
を用いて、キャッシュメモリの転送を行なう典型的な方
法を示すフローチャートである。 第7図は、第2図に示すキャッシュメモリシステムをマ
ルチプロセッサ構成に利用したデータ処理システムのブ
ロック図である。 第8図は、本発明の詳細な説明するのに有効なデータ構
造図である。 プロセッサ、20・・・キャッシュメモリ、行バッファ
) メモリコントローラ、 主メモリ、 再順序づけ指令アセンブリ(RCA)、再順序づけ指令
テーブル(RCT)、 シーケンスコントローラ。

Claims (1)

  1. 【特許請求の範囲】 (1)プロセッサ、キャッシュメモリ、及び、主メモリ
    を備えるコンピュータシステムにおいて、要求されるデ
    ータ値が主メモリに常駐している場合、命令を実行する
    プロセッサによって発生される、キャッシュメモリに見
    つからないデータ値に対するメモリアクセス要求に応え
    る方法であって、 (a)メモリアクセス要求に応答して、第1のシーケン
    スに従い、要求されたデータ値を含むN個のデータ値か
    ら成る行の要素を主メモリからキャッシュメモリに転送
    するステップと、 (b)プロセッサによって前記行のデータ値が要求され
    る順序をモニタして、第2のシーケンスを決めるステッ
    プと、 (c)命令の後続の実行に応答して、第2のシーケンス
    に従い、データ値から成る行の要素を主メモリからキャ
    ッシュメモリに転送するステップと、 から構成される方法。 (2)キャッシュメモリに行バッファと記憶素子が含ま
    れていることと、 ステップ(a)に、 前記第1のシーケンスに従い、N個のデータ値から成る
    行の要素を行バッファに転送するステップと、 前記行バッファから前記記憶素子にN個のデータ値を転
    送するステップと、 が含まれることと、 ステップ(b)に、 N個のデータ値から成る前記行の要素が前記行バッファ
    に転送されている間に、N個のデータ値から成る前記行
    のデータ値に対するアクセス要求をモニターするステッ
    プと、 前記アクセス要求のうちのどれが、データ値の要求時に
    、行バッファで得られないデータ値に関するものである
    かを識別するステップと、 前記識別に応答して、待機状態にするステップと、 が含まれることと、 ステップ(c)に、 待機状態にされた場合に限り、第2のシーケンスに従っ
    て、N個のデータ値から成る前記行の要素を主メモリか
    ら行バッファに転送するステップが含まれることを特徴
    とする、 請求項1に記載の方法。 (3)ステップ(b)に、 N個のデータ値の行が主メモリからキャッシュメモリに
    転送されている間に、前記N個のデータ値のうちのどれ
    がプロセッサによって要求されるかを識別するステップ
    と、 識別されたデータ値を表わす標識を前記第2のシーケン
    スとして記録するステップと、 が含まれることを特徴とする、 請求項1に記載の方法。 (4)(d)前記識別された命令の先行する実行に応答
    して、データ値の第1の行が、前記主メモリから前記キ
    ャッシュメモリに転送されている間に、データ値の第2
    の行のデータ値に対する要求を開始する命令の識別を行
    なうステップと、 (e)前記識別された命令の後続の実行に応答して、前
    記行バッファから前記記憶素子へのデータ値の転送を禁
    止するステップと、 がさらに含まれていることを特徴とする、請求項2に記
    載の方法。 (5)ステップ(b)が、キャッシュメモリに見つから
    ない目的データ値に対する要求を開始する各命令のそれ
    ぞれについて指令項目をテーブルに記憶するステップを
    含んでいることと、前記指令項目のそれぞれには、それ
    ぞれの目的データ値を含むデータ値の行のデータ値を検
    索するための望ましいシーケンスを表わす、それぞれの
    命令に関する前記第2のケーシンスが含まれていること
    を特徴とする、請求項1に記載の方法。 (6)主メモリからキャッシュメモリにメモリワードを
    転送するための望ましいシーケンスを表わす指令のテー
    ブルが、セット・アソシアティブであることを特徴とす
    る。請求項5に記載の方法。 (7)(d)キャッシュメモリに見つからず、主メモリ
    から転送中の現在行に含まれていないデータ値に対する
    第2のメモリアクセス要求を検出するステップと、 (e)主メモリから行バッファへの前記現在行の転送を
    中断するステップと、 (f)ステップ(a)、(b)、及び(c)に従って、
    キャッシュメモリに見つからないデータ値に対する、前
    記第2のメモリアクセス要求に応えるステップと、 (g)主メモリから行バッファへの現在行の転送を完了
    させるステップと、 がさらに含まれることを特徴とする、請求項1に記載の
    方法。 (8)要求されるデータ値が、主メモリに常駐する場合
    、キャッシュメモリに見つからない目的データ値に対す
    る多重メモリアクセス要求に応える方法であって、 (a)目的データ値に対する多重メモリ要求のうち第1
    の要求に応答し、第1のシーケンスに従って、目的デー
    タ値を含むデータ値の行を主メモリからキャッシュメモ
    リへ転送するステップと、(b)前記キャッシュメモリ
    が受信するデータ値要求をモニターし、前記行における
    データ値のサブセットが前記キャッシュメモリによって
    要求される順番を表す第2のシーケンスを定めるステッ
    プと、 (c)第2のシーケンスに従って該行におけるデータ値
    のサブセットを転送し、さらに、目的データ値に対する
    前記多重要求のうち後続の要求に応答し、該行の残りの
    データ値を所定のシーケンスで転送するステップと、 から構成される方法。 (3)プロセッサと、複数行のデータ値を有する主メモ
    リと、行バッファを備えたキャッシュメモリを含むコン
    ピュータシステムにおいて、それぞれ、複数の異なる時
    点に前記プロセッサによって実行される単一の命令に応
    答して、複数のメモリアクセス要求が発生する場合、そ
    れぞれ異なる複数のデータ値行にあるデータ値に対する
    複数のメモリアクセス要求に応える方法であって、 (a)前記単一の命令のそれぞれの実行に応答し、前記
    主メモリから前記キャッシュメモリの行バッファへ前記
    複数行の1つにおけるデータ値を転送するステップと、 (b)前記1つの行におけるデータ値が前記主メモリか
    ら前記行バッファへ転送される間に、前記複数の行のも
    う1つにおけるデータ値にアクセスする前記単一の命令
    のもう1つの実行が検出されると、標識をセットするス
    テップと、 (c)前記標識がセットされるのに応答し、前記行バッ
    ファから前記キャッシュメモリへのデータ転送を禁止す
    るステップと、 から構成される。 (10)プロセッサと、複数の行のデータ値を有する主
    メモリと、行バッファを備えたキャッシュメモリを含む
    コンピュータシステムにおいて、目的データ値が主メモ
    リに常駐している場合、キャッシュメモリに見つからな
    い目的データ値に対する、前記プロセッサで実行する第
    1の命令によって開始されるメモリアクセス要求に応え
    る方法であって、 (a)メモリアクセス要求に応答し、主メモリから行バ
    ッファに目的データ値を転送するステップと、 (b)前記目的データ値と同じ行におけるデータ値に対
    する潜在的メモリアクセス要求に関する、第1の命令に
    続く第2の命令を調べて、前記主メモリから前記行バッ
    ファに転送する前記行における次のデータ値を決めるス
    テップと、 (c)目的データ値の後、次のデータ値としてステップ
    (b)で決定された次のデータ値を主メモリから行バッ
    ファに転送するステップと、 から構成される方法。 (11)キャッシュメモリに見つからない主メモリの行
    の中のデータ値に対するメモリアクセス要求に応える方
    法であって、 (a)メモリアクセス要求のうち第1の要求に応答し、
    第1のシーケンスに従って該データ値の行を主メモリか
    ら行バッファへ転送するステップと、 (b)前記メモリアクセス要求をモニタして、前記行に
    おけるどのデータ値が要求されているかを判断するステ
    ップと、 (c)データ値が後続のメモリアクセス要求に対して主
    メモリから行バッファへ転送される第2のシーケンスを
    規定し、前記メモリアクセス要求によつて要求される該
    行におけるデータ値が、このような要求のなされない前
    記行におけるデータ値より先に転送されるようにするス
    テップと、 から構成される方法。 (12)プロセッサ、キャッシュメモリ、及び、主メモ
    リを含むコンピュータシステムにおいて、要求されるデ
    ータ値が主メモリに常駐している場合、キャッシュメモ
    リに見つからないデータ値に対し、命令を実行するプロ
    セッサによって発生されるメモリアクセス要求に応える
    ための装置であって、メモリアクセス要求に応答し、第
    1のシーケンスに従って、要求されたデータ値を含むN
    個のデータ値から成る行の要素を主メモリからキャッシ
    ュメモリへ転送する手段と、 プロセッサによって前記行におけるデータ値が要求され
    る順番をモニタし、第2のシーケンスを規定する手段と
    、 命令の後続する実行に応答し、主メモリからキャッシュ
    メモリに、第2のシーケンスに従ってデータ値から成る
    行の要素を転送する手段と、から構成される装置。 (13)プロセッサ、複数行のデータ値を有する主メモ
    リ、及び、行バッファを備えたキャッシュメモリを含む
    コンピュータシステムにおいて、それぞれ、複数の異な
    る時点に前記プロセッサによって実行される単一の命令
    に応答して、複数のメモリアクセス要求が発生する場合
    、それぞれ異なる複数のデータ値行にあるデータ値に対
    する複数のメモリアクセスに応えるための装置であって
    、前記単一の命令のそれぞれの実行に応答し、前記主メ
    モリから前記キャッシュメモリの行バッファに前記複数
    行の1つにおけるデータ値を転送する手段と、 前記1つの行におけるデータ値が前記主メモリから前記
    行バッファへ転送される間に、前記複数の行のもう1つ
    におけるデータ値にアクセスする前記単一の命令のもう
    1つの実行が検出されると、標識をセットする手段と、 前記標識がセットされるのに応答し、前記行バッファか
    ら前記キャッシュメモリへのデータ転送を禁止する手段
    と、 から構成される装置。
JP2205331A 1989-08-07 1990-08-03 メモリ・アクセス要求処理方法及び装置 Granted JPH0371354A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US390587 1989-08-07
US07/390,587 US5233702A (en) 1989-08-07 1989-08-07 Cache miss facility with stored sequences for data fetching

Publications (2)

Publication Number Publication Date
JPH0371354A true JPH0371354A (ja) 1991-03-27
JPH0561663B2 JPH0561663B2 (ja) 1993-09-06

Family

ID=23543075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2205331A Granted JPH0371354A (ja) 1989-08-07 1990-08-03 メモリ・アクセス要求処理方法及び装置

Country Status (4)

Country Link
US (1) US5233702A (ja)
EP (1) EP0412247B1 (ja)
JP (1) JPH0371354A (ja)
DE (1) DE69023568T2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2641819B2 (ja) * 1990-11-05 1997-08-20 三菱電機株式会社 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
US5829030A (en) * 1990-11-05 1998-10-27 Mitsubishi Denki Kabushiki Kaisha System for performing cache flush transactions from interconnected processor modules to paired memory modules
US5625793A (en) * 1991-04-15 1997-04-29 International Business Machines Corporation Automatic cache bypass for instructions exhibiting poor cache hit ratio
SE469402B (sv) * 1991-05-02 1993-06-28 Swedish Inst Of Computer Scien Foerfarande foer att haemta data till ett cache-minne
GB2260628A (en) * 1991-10-11 1993-04-21 Intel Corp Line buffer for cache memory
US5386526A (en) * 1991-10-18 1995-01-31 Sun Microsystems, Inc. Cache memory controller and method for reducing CPU idle time by fetching data during a cache fill
US5495591A (en) * 1992-06-30 1996-02-27 Bull Hn Information Systems Inc. Method and system for cache miss prediction based on previous cache access requests
US5471602A (en) * 1992-07-31 1995-11-28 Hewlett-Packard Company System and method of scoreboarding individual cache line segments
US5404484A (en) * 1992-09-16 1995-04-04 Hewlett-Packard Company Cache system for reducing memory latency times
US5603008A (en) * 1992-09-30 1997-02-11 Amdahl Corporation Computer system having cache memories with independently validated keys in the TLB
JPH06180669A (ja) * 1992-12-14 1994-06-28 Nec Niigata Ltd キャッシュシステム
EP0624844A2 (en) * 1993-05-11 1994-11-17 International Business Machines Corporation Fully integrated cache architecture
US5640531A (en) * 1993-06-22 1997-06-17 Unisys Corporation Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
JP3261239B2 (ja) * 1993-07-27 2002-02-25 富士通株式会社 データ転送の一括化処理方法
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
US5761450A (en) * 1994-02-24 1998-06-02 Intel Corporation Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications
TW233354B (en) * 1994-03-04 1994-11-01 Motorola Inc Data processor with memory cache and method of operation
US5787465A (en) * 1994-07-01 1998-07-28 Digital Equipment Corporation Destination indexed miss status holding registers
US5721956A (en) * 1995-05-15 1998-02-24 Lucent Technologies Inc. Method and apparatus for selective buffering of pages to provide continuous media data to multiple users
US5765190A (en) * 1996-04-12 1998-06-09 Motorola Inc. Cache memory in a data processing system
US5915262A (en) * 1996-07-22 1999-06-22 Advanced Micro Devices, Inc. Cache system and method using tagged cache lines for matching cache strategy to I/O application
US5857213A (en) * 1996-12-06 1999-01-05 International Business Machines Corporation Method for extraction of a variable length record from fixed length sectors on a disk drive and for reblocking remaining records in a disk track
US6000011A (en) * 1996-12-09 1999-12-07 International Business Machines Corporation Multi-entry fully associative transition cache
US6035424A (en) * 1996-12-09 2000-03-07 International Business Machines Corporation Method and apparatus for tracking processing of a command
US5909566A (en) * 1996-12-31 1999-06-01 Texas Instruments Incorporated Microprocessor circuits, systems, and methods for speculatively executing an instruction using its most recently used data while concurrently prefetching data for the instruction
US6185660B1 (en) * 1997-09-23 2001-02-06 Hewlett-Packard Company Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
US6263404B1 (en) 1997-11-21 2001-07-17 International Business Machines Corporation Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system
AU2001288358A1 (en) * 2000-08-25 2002-03-13 Scott R. Hayes Heuristic automated method for ideal bufferpool tuning in a computer database
US6892279B2 (en) 2000-11-30 2005-05-10 Mosaid Technologies Incorporated Method and apparatus for accelerating retrieval of data from a memory system with cache by reducing latency
US6587920B2 (en) 2000-11-30 2003-07-01 Mosaid Technologies Incorporated Method and apparatus for reducing latency in a memory system
US20110314226A1 (en) * 2010-06-16 2011-12-22 Byungcheol Cho Semiconductor storage device based cache manager
US10061706B2 (en) * 2015-07-27 2018-08-28 Datrium, Inc. System and method for eviction and replacement in large content-addressable flash caches

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4429363A (en) * 1981-10-15 1984-01-31 International Business Machines Corporation Method and apparatus for managing data movements from a backing store to a caching buffer store
US4689765A (en) * 1983-01-28 1987-08-25 Digital Equipment Corporation Groups of tag signals for data store in multi-plane set of buffers
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
US4845664A (en) * 1986-09-15 1989-07-04 International Business Machines Corp. On-chip bit reordering structure
US4933837A (en) * 1986-12-01 1990-06-12 Advanced Micro Devices, Inc. Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
JPH07113903B2 (ja) * 1987-06-26 1995-12-06 株式会社日立製作所 キャッシュ記憶制御方式
US4882642A (en) * 1987-07-02 1989-11-21 International Business Machines Corporation Sequentially processing data in a cached data storage system
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor

Also Published As

Publication number Publication date
EP0412247B1 (en) 1995-11-15
JPH0561663B2 (ja) 1993-09-06
DE69023568T2 (de) 1996-06-13
EP0412247A2 (en) 1991-02-13
DE69023568D1 (de) 1995-12-21
EP0412247A3 (en) 1991-09-25
US5233702A (en) 1993-08-03

Similar Documents

Publication Publication Date Title
JPH0371354A (ja) メモリ・アクセス要求処理方法及び装置
KR920005852B1 (ko) 데이타 처리 시스템에 있어서 합성 디스크립터를 제공하는 장치 및 방법
EP0284663B1 (en) Method of handling disk sector errors in dasd cache
EP0097790B1 (en) Apparatus for controlling storage access in a multilevel storage system
EP1710693B1 (en) Apparatus and method for supporting execution of prefetch threads
US6996821B1 (en) Data processing systems and method for batching tasks of the same type in an instruction cache
US20170308468A1 (en) Performance-driven cache line memory access
US7237067B2 (en) Managing a multi-way associative cache
US20050091456A1 (en) Determining an arrangement of data in a memory for cache efficiency
JPS6143742B2 (ja)
KR20040033029A (ko) 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치
US6665746B1 (en) System and method for prioritized context switching for streaming data memory transfers
US6473845B1 (en) System and method for dynamically updating memory address mappings
KR100618248B1 (ko) 실행 엔진으로부터 다중 데이터 소스까지 다중 로드 및 기억 요구를 지원하는 장치 및 방법
US7290119B2 (en) Memory accelerator with two instruction set fetch path to prefetch second set while executing first set of number of instructions in access delay to instruction cycle ratio
EP0834119B1 (en) Apparatus and method for reducing read miss latency
US20080010393A1 (en) Adaptive thread id cache mechanism for autonomic performance tuning
JPH10269132A (ja) メモリ管理の方法およびシステム
US7543113B2 (en) Cache memory system and method capable of adaptively accommodating various memory line sizes
JP6488962B2 (ja) キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
JPH0756755A (ja) プロセッサの制御方法
JP2004303239A (ja) 複数の未処理データ要求を処理する方法
JP3221409B2 (ja) キャッシュ制御システム及びその読出し方法並びにその制御プログラムを記録した記録媒体
JPH06149673A (ja) キャッシュ制御方式
JPS61220047A (ja) メモリ制御方式