JPH07500936A - 複数の書込キャッシュを含むメモリ装置 - Google Patents

複数の書込キャッシュを含むメモリ装置

Info

Publication number
JPH07500936A
JPH07500936A JP5508666A JP50866692A JPH07500936A JP H07500936 A JPH07500936 A JP H07500936A JP 5508666 A JP5508666 A JP 5508666A JP 50866692 A JP50866692 A JP 50866692A JP H07500936 A JPH07500936 A JP H07500936A
Authority
JP
Japan
Prior art keywords
memory
data
cache
cache memory
partitions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5508666A
Other languages
English (en)
Inventor
マイノ,ジェイムス・ジィー
ナデオ,スタンレー・ピィ
スネル,チャールズ・ケイ
Original Assignee
ユニシス・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ユニシス・コーポレイション filed Critical ユニシス・コーポレイション
Publication of JPH07500936A publication Critical patent/JPH07500936A/ja
Pending 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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

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

【発明の詳細な説明】 複数の書込キャッシュを含むメモリ装置発明の分野 この発明は一般に、デジタルデータプロセッサで用いるためのメモリ管理装置に 関し、特にキャッシュメモリ内のデータの検索および記憶を含むメモリシステム の効率を向上させるための技術に関する。
発明の背景 メモリ管理システムは、デジタルデータ処理システムにおける複数の要求者の、 メインメモリ内のデータおよびプログラムコードへのアクセスを制御する。多く のコンピュータシステムでは、データをフェッチするか記憶するかのいずれかで あるメモリアクセス要求はすべてキャッシュメモリを介して行なわれる。キャッ シュメモリとは、コンピュータシステム内で処理ユニットの一体的な構成要素と して実装されるメモリである。このキャッシュは、メインメモリよりもずっと小 さい。キャッシュの目的はメインメモリをエミュレートすることであるが、その アクセス時間はずっと速い。キャッシュはメインメモリよりも小さいので、いつ でもメインメモリの内容のサブセットしか含むことができない。メインメモリの どの部分がキャッシュに存在しているかを明らかにするために、キャッシュにお いてディレクトリが使用される。
先行技術は、キャッシュメモリシステムが中央処理二ニットにデータを与え、か つそこからデータを受取る能力を向上させる、多くの技術を含む。ポーター(P o「te「)ら−・の米国特許第4,208,716号は、複数のレベルに区分 されるキャッシュについて論じている。キャッシュの1つのレベルで書込要求が 行なわれている間に、他のキャッシュレベルからの1または2以上の読出動作が 行なわれてよいというものである。
ブレンザ(B+enza) ヘの米国特許第4,905.141号は、区分に分 けられ、複数個のプロセッサが各々その区分のいずれにもアクセスしてよい、キ ャッシュの使用を論じている。各プロセッサはパーティションルックアサイドテ ーブル(PLAT)を有しており、これはアドレス変換を行なってそのプロセッ サによって最も最近に参照されたキャッシュエントリの区分および合同クラス識 別子を識別する。キャッシュはPLATの中にあるデータに対し1クロックサイ クル当り1区分につき1つ、記憶またはフェッチの動作を行なうことができる。
PLATの中でリスト化されるのは、キャッシュ内のデータのサブセットのみで ある。PLATの中にないデータ値に対して参照が行なわれた場合、すべての区 分に対しグローバル要求が発せられる。
このグローバル要求は、1クロツクサイクルをすべてのキャッシュ区分に要求す るものである。
ジ−グラ−(zieglet )らへの米国特許第4,794゜521号は、同 時に複数のキャッシュのアクセスを完了させるよう働きかけることができるキャ ッシュについて論じている。キャッシュは、セクションに分割される。各セクシ ョンは1クロック当り1つのアクセスを扱うことができる。アクセスがキャッシ ュミスをもたらした場合、そのキャッシュはメモリアクセスが起こっている間に 第1のアクセスをアクセス完了保留状態にし、別のキャッシュアクセスを受入れ ることができる。各セクションは、そのような保留されたアクセスを3つまで扱 うことができる。
発明の概要 以前は、キャッシュメモリシステムは1つのクロックサイクルでキャッシュへの 複数の書込およびキャッシュからの複数の読出の機能を備えてはいなかった。こ の発明は、複数のキャッシュ書込要求および少なくとも1つのキャッシュ続出を 含む複数のソースからの要求が、1つのクロックサイクルで成し遂げられるであ ろう、キャッシュメモリを備える改良されたコンピュータシステムで実施される ものである。これらの同時にサービスされ得る要求は、適切なキャッシュまたは メモリリソースに自動的に集められる。
この発明の1つの局面に従って、キャッシュは2つの論理的に区別されるページ のグループに分割される。各ページのグループは複数のキャッシュページを含む 。各ページのグループは一意的な書込アドレスおよび書込データ信号を与えられ る。各キャッシュ書込要求はデータならびにデータか記憶されるべきキャッシュ のアドレスおよびページ番号からなる。2つのキャッシュ要求がキャッシュに同 時に書込を行なおうとした場合、それらが異なったページのグループに対して行 なわれる限りは、書込動作は双方とも成功裡に行なわれる。
中央処理モジュール(CPM)からキャッシュの続出および書込の要求を効率的 に与えるために、CPMの中にメモリユニット(M U )が設けられる。メモ リユニットにはデータキャッシュを管理する役割がある。
この発明の他の局面に従い、MUは中央処理モジュール内の複数の要求者からの メモリアクセス要求を同時に受取る。MUは2つのキャッシュメモリ書込経路と 少なくとも1つのキャッシュメモリ続出経路とを含むいくつかのリソースを割当 てる。効率のレベルを高くするために、MUはその保留されている要求の各々に よってどのリソースが要求されているのかを判断し、複数の要求が同時に扱われ るようにこれらのリソースを割当てる。
図面の簡単な説明 図1は、同時に2つの書込動作を行なう機能を備えるキャッシュシステムのブロ ック図である。
図2は、図1に示されるキャッシュシステムを制御する中央処理モジュールのブ ロック図である。
図3は、図1に示されるキャッシュを制御するメモリユニットのブロック図であ る。
詳細な説明 この発明に従う例示的なメモリ管理システムをこれより説明する。
図]は、この発明に従うキャッシュメモリシステムを示す。キャッシュメモリ2 は4096個までのデータワードを3己憶することができるセットアソシアティ ブストアインキャッシュである。キャッシュメモリ2は4つのダイレクトマツピ ングされたキャッシュページ1.0. 12. 1.、4゜および16に区分さ れ、その各々は1024ワードの容量を有する。1024ワードの各キャッシュ ページ10,12.14. および16に対して、対応するアドレスアレイ4が あり、このアドレスアレイ4はアドレス変換を行なって特定のデータ値がキャッ シュの中に局所的に記憶されているかどうかを判断する。
ダイレクトマツピングされたキャッシュとは、どの特定の絶対アドレスと関連の データもキャッシュ内の固定された場所にしか記憶され得ないというものである 。データ値の絶対アドレスにおける下位10ビツトが、データ値が記憶されるキ ャッシュページ内の場所を決定するのに用いられる。絶対アドレスの3番目から 10番目までのビットがデータ値のための合同クラスを規定する。
合同クラスは、連続的なアドレス値を有する4つのワードをアドレス指定し、こ れらのワードは参照の空間的局所性を利用するためにメインメモリからキャッシ ュヘフエッチされる。参照の空間的局所性とは、プログラムにおいて見られる傾 向であって、互いに近いアドレス値を有するメモリからフェッチされるデータを 参照するというものである。1つのメモリワードの要求に応答するワードのグル ープは、しばしば1行のメモリワードと呼ばれる。ワード番号として規定される 、10ビツトのアドレス値のうち下位2ピツトは、合同クラスアドレスによって 示されるワードの行内にある特定のデータワードの位置を規定する。
各アドレスアレイ4は256個のエントリを含み、その各々はキャッシュにおけ る別個の4ワードの行を指し、この4ワ一ド行は各合同クラスについて1行であ る。データ値かキャッシュ内で局所的に記憶されているかどうかを判断するため に、データ値の合同クラスに対応するアドレスアレイ4のエントリがアクセスさ れる。アドレスアレイエントリは、キャッシュのその部分に記憶されるデータ値 の絶対アドレスにおける上位19ビツト(ページ選択フィールドまたはPSFと 呼ばれる)を保持する。4つのアドレスアレイの1つからの選択されたエントリ におけるページ選択フィールドが、要求されるデータのアドレスにおける上位1 9ビツトと一致するならば、要求されるデータ値はキャッシュメモリ2の中に存 在するだろう。アドレスアレイエントリはまた、フラグをも含み、これらのフラ グはデータキャッシュエントリが有効であるか、およびそれ力(メインメモリ  (図示せず)からキヤ・ソシュ2に最初1こもたらされて以来変更されているか どうかを示す。所望の合同クラスおよびページ選択フィールドについて、有効な エントリがアドレスアレイ4の中に存在するならば、一致するPSFエントリを 含むアドレスアレイ4に対応するキャッシュページ10. 1.2. 1.4. または16は所望のデータ値を含む。
データ値がキャッシュ2の中に記憶される場合、データ値の絶対アドレスにおけ る合同クラスおよびワード番号が、キャッシュページ10,12.14. およ び16の1つの中にある、データ値が記憶されるべき場所を決定する。この記憶 動作は、典型的にはキャッシュ2のページの1つにおけるデータの置換えを必要 とする。4つのページ10゜12.14.または16のうちどれを用いるかを選 択するには、最も古く使用された(LRU)アルゴリズムが使用される。LRU アルゴリズムは参照の一時的局所性を利用する。これは認識されているプログラ ムの傾向であって、比較的短い時間の間隔ては同じデータ値を参照するというも のである。
ページ10. 12. 14. または16の中の、最も古くアクセスされたデ ータ値の行は、要求されるデータ値を含む4ワードの行によって置換えられるべ く選択される。4つのページ10.12,14. および16を設けることで、 キャッシュ2は、任意のデータワードを追出す必要が生じる前に、その絶対アド レスが同しキャッシュアドレスにマツピングされるデータを4つまで記憶するこ とができるようになる。これにより、データに対する満たされた要求と要求の総 数との比であるキャツシュヒツトのパーセンテージが高められる。
この発明では、キャッシュページ10,12,14.16は2つのグループ20 および22に分けられ、グループ20が10および12、グループ22が14お よび16の、2つのページからなる。2つの書込アドレスレジスタ24および2 6.2つの書込データレジスタ30および32、ならびに4つの書込イネーブル レジスタ40. 42. 44および46がある。書込イネーブルレジスタ40 ,42゜44、または46のそれぞれがセットされると、データ値がページ10 . 12. 14. または16に書込まれる。システムがページ10またはペ ージ12のいずれかに書込を行なう場合は、書込データレジスタ30に与えられ たデータがキャッシュの書込アドレスレジスタ24に与えられたアドレスに書込 まれる。同様に、システムがページ14またはページ16のいずれかに書込みを 行なう場合は、書込データレジスタ32に与えられたデータがキャッシュの書込 アドレスレジスタ26に与えられたアドレスに書込まれる。
キャッシュにデータを書込む要求が同時に2つ起こった場合、その2つの要求が 異なったページのグループ20および22に書込を行なうものである限りは、双 方の要求を1つのクロック周期でサービスすることによって性能は向上する。同 時に同じキャッシュページのグループに対する書込の要求が2つ起こった場合、 要求の一方が待合せされ、双方の要求をサービスするには2つのクロックサイク ルが必要となる。
当業者には、より多数の書込アドレスレジスタ24および26、ならびに書込デ ータレジスタ30および32を設けることができるということが理解されるであ ろう。特定的には、キャッシュメモリ内のページの数を増やすことができ、書込 アドレスレジスタと書込データレジスタとはそのキャッシュページの数に等しく なるように設定できる。
この代替的な実施例では、データ値がそれぞれ異なったページに書込まれるもの である限りは、キャッシュ書込動作を同時に行なうことが可能である。例示的実 施例では同じページのグループにあるであろうページへの同時の書込要求のため 、この変形は例示的システムよりもキャッシュの性能を向上させることができる 。しかしながら、同じページに対する同時の書込要求を検出しかつ解決するには 、例示的なページのグループが用いられる場合よりも複雑な論理が必要であるか もしれない。
本発明のこの実施例では、キャッシュメモリ2を含むメモリユニットの入力優先 論理から、キャッシュの区分のすべてに1つの続出アドレス値が与えられる。目 標データ値はその後様々な区分によって与えられる値の中から選択される。メモ リユニットと入力優先論理とを、図3を参照してこれより説明する。読出動作と 2つの書込動作とは双方とも、システムクロック信号の1つの周期において行な われてよい。この発明の例示的実施例では、読出動作はクロックサイクルにおい て、並行して行なわれる書込動作よりも後の時間に行なわれる。
例示的キャッシュメモリシステムは複数の読出動作を同時に行なうことができる ように拡張され得るということが意図されている。この拡張は、キャッシュメモ リを著しく変化させなくても行なうことができる。企図される1つの実現例では 、メモリユニットの入力優先論理が変形されて区分のグループの各々または個々 の区分の各々に別個の続出アドレス値が与えられるであろう。
キャッシュメモリシステム2は、命令実行ユニツトとメインメモリとを含むデー タ処理システムの一部である。このキャッシュメモリアーキテクチャによって得 られる利点を適切に説明するには、それを意図される環境の中に置くことが有効 である。
図2は、ユニンス(υn1Sv+) A 19処理システムなどのシステムにお いて用いられる中央処理モジュール(CP:V/I)50のブロック図を示すっ CPM50は4つの主要なサブシステム、すなわちキャッシュメモリ2を含むメ モリユニット(MU)52、実行ユニット(EU)54、参照ユニツト(RU) 56、およびニードユニット(CU)58を含む。CPM50には、クロック信 号発生器51も含まれており、これはユニット52,54.56および58の各 々に周期的クロック信号CKを与える。
MU52は、CPM50のサブシステムのすべてとメインメモリ60との間の接 続である。MU52には、すべてのメモリトラフィックを管理し、かつ参照ユニ ット56によって要求されるすべてのデータのフェッチおよび記憶動作を行なう 役割がある。M U 52は、キャッシュメモリシステム2と、以下で説明する 他のリソースとを管理する。
これらは実効的なメモリアクセス時間を低減するために記憶されたデータ値にア クセスするのに利用可能である。
参照ユニット56はMU52にジョブを与え、このジョブは、データをフェッチ せよというMUに対する要求である。加えて、EU56は記憶要求のためのアド レス値を与え、この記憶要求は記憶されるべきデータ値がEU54によって与え られる際に処理される。キャッシュ2はストアインキャッシュメモリなので、M U52はアドレス値がEU56によって与えられるとすぐに、重ね書きされるべ きデータ値をメインメモリからフェッチする。したがって、EU54がデータ値 を与える場合、それはキャッシュメモリ2の中に局所的に記憶され、追出す必要 か生じた場合のみメインメモリ60に戻される。
一般に、データ値は分散型データバッファ(DDB)92を介してMU52へ、 またはMU52から転送される。
データは、MU52、EU54およびEU56によってDDB92へ書込まれ、 またはそこから読出されてよい。このバッファは汎用レジスタファイルであって 、EU54、RU52、およびMU52の中で複写される。例示的実施例では、 RU52はDDBを用いてデータ値をキャッシュメモリ2を介してメインメモリ 60へ、またはメインメモリ60から転送するよう、MU52に命令する。
コードユニット58はM U 52にジョブを与え、このジョブはメインメモリ 60からコードをフェッチする要求である。以下に述べるように、これらの要求 はデータ要求よりも低い優先順位でMU52によって扱われる。
実行ユニット54はCL;58によって与えられた命令を評価するが、これはR U52によって与えられたフェッチ要求に応答し、MU54によって与えられた データ値を用いて行なわれる。命令を評価することによって生成されるデータは 、DDB92を介してMU54に与えられ、キャッシュメモリ2の中に記憶され る。
図3は、メモリユニット52のブロック図である。MU52は、アドレスアレイ 4、DDB92、データキャッシュページ1.0. 1.2. 14.および1 6、ならびにメインメモリ60の間てデータ転送を行なうのに用いられる、6個 のリソースを含む。これらのリソースは、アドレスアレイ経路(A経路)80、 DDB経路(B経路)82、キャッシュ続出経路(C経路)84.2つのキャッ シュ書込経路86および88(WOおよびWl)、ならびにMAU要求経路(M 経路)90である。入力優先論理(IPL)76かキャッシュおよびメインメモ リのアクセスを要求するいくつかの機能(または要求者)からの入力信号を受入 れる。これらの要求者の各々はMU52のリソースの異なった組合わせを用いる 。
IPL76はMU52のための制御要素を発行するメインジョブとして働く。M U52のリソースのすべてを個々に要求する要求者はない。したがって、I P L76はリソースのうちできる限り多くを割当てて、システムクロック信号CK の1つの周期の間に複数の要求者をサービスする。
リソースの衝突のために、IPL76が1つのクロック周期の中ですへての要求 者をサービスすることができない場合には、未処理のジョブはそれらに付随する データとともにIPLの中のキューに保持される。i PL76はこれらのジョ ブが完了されるまで、後に続くクロックサイクルの間にこれらのジョブを再発行 しようとする。
I PL76は5つの異なった要求者からリソースを要求する入力信号を受取る 。ジョブとしても知られているこれらの要求は、I P Lによって優先順位を 付けられる。要求者は(優先順に)メモリアクセスユニット(MAU)70、記 憶アドレスリスト(SAL)72、復帰および置換えキュー(RRQ)/延期参 照キュー(DRQ)74、および参照ユニット(RU)56である。SAI、7 2およびRRQ/DRQ74は、MU52内の機能である。残りの入力信号はM Uの外部の機能からI PL76によって受取られる。
優先順位は、キャッシュ2の動作における一貢性を確実にするよう設計される。
ストアインキャッシュが用いられているので、データをメインメモリ60からキ ャッシュ2に移動させるMAU70からのジョブは、データをキャッシュ2の中 に記憶する5AL72のジョブより前に起こらなければならない。
たとえば、記憶動作は以下のように起こるだろう。CU38は記憶命令を受ける とその命令をRU56に送り、このRU56は命令内のデータアドレスをメモリ アドレスに変換する。RU56は次にMU52のメモリ読出動作を要求してデー タをキャッシュ2の中に局所化し、かつ同時に、記憶動作のためのエントリをM U52の5AL72に入れる。目標メモリアドレスかキャッシュメモリ内で局所 化され、そのアドレスに記憶されるべきデータ値かDDBレンスタの中で有効な エントリとしてマークされると、5AL72の中のエントリは指定されたDDB レジスタの中のデータ値をキャッシュメモリ2の中に記憶する要求として活性化 する。
上述のように、参照ユニットはコードユニットによって与えられた各命令を処理 して複数のメモリアクセス要求を発するかもしれない。いくつかの命令から発せ られたメモリアクセス要求は、任意のある時間においてIPL76の中で保留さ れていてもよい。MU52が同時に扱うことができるどの保留されているメモリ アクセス要求も、IPL76によって同時に発行される。
DDBレジスタの値が有効になったときに、間に入る追出し動作のせいて目標メ モリアドレスがキャッシュ内で局所化されていなければ、MUはメインメモリ6 0からデータを読出す要求を発行し、書込要求を不活性エントリとして5AL7 2の中に保持する。IPL76は常に最も古い活性SALエントリを処理する。
RRQ 74 aおよびDRQ74bは、1つの入力ポートを共有してIPL7 6に信号を与える。RRQ/DRQ74の中には、RRQのジョブが常にDRQ のジョブより優先されるということを確実にするための論理が存在する。
ジョブは、データがキャッシュに記憶される前にそれをフェッチするという試み がなされた場合に、参照延期キュー74bの中に置かれる。ジョブは、データが メインメモリ60へ書込まれなければならない、またはそこからフェッチされな ければならないが、リソースが利用可能でないという場合に、復帰および置換キ ュー74aの中に置かれる。
RRQ74aのジョブとDRQ74bのジョブとによってメインメモリ60内の 同しデータ値が要求されるということか起こった場合には、RRQ74aのジョ ブ(たとえばメインメモリ60からキャッシュ2への転送)が満たされるまて、 DRQ74bのジョブ(たとえばキャッシュ2からDDB92への転送)を遅延 させ続けることが必要である。
RRQ/DRQ74のジョブは、RU56がらの現在のジョブより前に処理され る。これにより、RRQ/D RQのジョブはより以前に発行されており、その 後キュー・の中に置かれることによって遅延されているので、順序付けは確実に 正確になる。
各クロックサイクルについて、I PL76はまずMATJ70のジョブをサー ビスしようとする。残ったリソースを用いて、IPL76は次に5ALT2のジ ョブをサービスしようとする。また割当てられていないリソースがあった場合、 IPLはRRQ/DRQ74をサービスしようとし、リソースがまた制用可能で あったならば、RU56がらのジョブをサービスしようとする。IPLによって サービスされたジョブに加えて、コードユニット58からの入力信号がMAU7 0に与えられて、メインメモリ6oがらMΔUアクセス経路90を介してコード がフェッチされる。CU38からの要求は常に優先順位が最も低いので、M A  Uアクセス経路90を必要とする他の要求者(IPL76を介して制置される )からのジョブがすべて完了してしまうまでサービスされない。CU38からの 要求が最後に処理されるのは、それがCPtJにさらなる命令をもたらし、その ためさらに多くのメモリ要求か発せられる可能性が高いからである。
上述のように、MU52はいくっがの保留されている要求にその利用可能なリソ ースを割当てることによって、それらの要求を同時に処理しようとする。表Jは 要求者の各々によって与えられるジョブを完了させるのに要求されるであろうリ ソースを示す。利用可能なリソースは、アドレスアレイ探索および更新経路(A )、分散型データバッファ(DDB)書込経路(B)、データキャッシュ続出経 路(C) 、MAU要求経路(M)、ならびにデータキャッシュ書込経路(W) を含む。表1では、rUndefJという語句は、クラス値が要求者に対して規 定されていないということを意味している。
表1 要求者経路の要件 久之不 旦 上 ス 旦 MA[I A W W、8 A、B SAL A M W Undel。
RRQ/DRQ A、B、Ctfdel、 M M、CR[^、B、CB A、 B Undei注 CUの要求はIPLには与えられず、MAUに直接与えられる。CU要求は、メ インメモリにアクセスするためにM経路を使用しているIPL要求者が全くない 場合にのみ、サービスされる。
1つの要求は、要求有効ビット、2ビツト要求クラスコード、および要求される トランザクションを完了させるのに必要なすべてのデータからなる。IPL76 がある1つの要求者のジョブにリソースを割当てると、IPLは要求内の有効ビ ット、クラスコード、およびデータを割当てられたリソースへ与える。表に示さ れるように、1つの要求者は各々が異なったリソースの要求を伴う4つの異なっ たクラスの要求を発行してよい。1つのCPUクロックサイクルで複数の要求者 によって提出される要求のクラスコードに対する制約条件は全くないが、保留さ れているジョブの間で1つでもリソース要求の衝突があれば、これらのジョブの うちの1または2以上のジョブにIPLを介して遅延が生しる。
システムの動作の一例を以下に述べる。クロックサイクルの初めて、IPL76 はMAU70からのクラス1ジヨブをサービスするが、このときには第1のデー タキャッシュ書込経路WO86の使用のみが要求されている。IPL76はクラ ス2SALT2ジヨブをサービスするのに利用可能なリソースを有しているが、 このジョブは第2のデータキャッシュ書込経路W]、88のみを用いるものであ る。これらの2つのジョブかあってさえも、RRQ74aからのクラス2ジヨブ をサービスするのに利用可能なリソースかまた残っている。このジョブはMAU 要求経路90のみを使用するものである。最後に、RUからの次の保留されてい るジョブがDDB書込経路82を要求するクラス1ジヨブである場合、4つの要 求はすべて単一のクロックサイクルの中でサービスすることができる。
上述の例はこの発明の2つの特徴を示す。第1に、開示される実施例ではそれぞ れ異なったページのグループに入っていることが要求されているとはいえ、この システムは2つの別個のキャッシュ書込ジョブ、すなわちMAU70からのひと つと5ALT2からのひとつとを、単一のクロックサイクルにおいてサービスす ることができる。IPU76は図1に示され前に論じられたように、図示されて いるデュアル書込キャッシュ機能を使用する。第2に、システムは1つのクロッ クサイクルで異なったジョブを4つまでサービスすることができる。表1に示さ れるように、ジョブのいくつかの組合わせの結果、1つのクロックサイクルにお いてジョブが4つ同時に実行され得る。これらの組合わせは2つの書込と2つの 続出を含んでいてもよいし、1つの書込と3つの続出(そのうち1つはキャッシ ュ2とは対照的にメインメモリ60からの読出である)を含んでいてもよい。
この発明のさらなる特徴は、キャッシュ充填動作である。
この動作により、リソースの利用についてさらなる改善が可能となる。表1に示 されるように、RU56は通常DDB11込経路82を要求し、かつ加えてA経 路80およびC経路84が要求されてもよい。あるクロックサイクルの間に、よ り優先順位の高い要求者がB経路82またはC経路84を使用しているためにR U56からの要求が処理できず、しかしA経路80がまだ利用可能であった場合 には、キャッシュ充填ジョブが行なわれる。
このジョブのために、RU56要求はアドレスアレイ探索を行なってその要求の ためのキャッシュの局所性を決定することができる。キャッシュ充填ジョブでキ ャツシュヒツトが起こったならば、処置は全くなされず、RU要求は後に続くク ロックサイクルの間にIPLから再発行される。
しかしながら、キャッシュミスが起こった場合、メインメモリ60からキャッシ ュ2へのデータの転送を要求する要求はMU MAU要求キュー(MUQ)96 に発行され、このキュー96は、その要求をMUジョブとして記憶する。
キャッシュ充填ジョブにより、B経路82および/またはC経路84が利用可能 になるのをRU56ジヨブが待つ必要があるときに可能である場合よりも少なく とも1クロ・ツクサイクル分早く、メインメモリ60からのデータに対する要求 を発行することができるようになる。
以下の擬似コードプログラムセグメントは、IPL76によって用いられるジョ ブ割当てアルゴリズムを示す。
MAU要求が有効である場合 MAU要求を発行 利用可能なリソースのリストからMAUリソースを除く 新しいMAU要求を受入れる 上記以外の場合 新しいMAU要求を受入れる SAL要求が有効である場合 SALに要求されるリソースがすべて利用可能であれば SAL要求を発行 利用可能なリソースリストからSALリソースを除く 新しいSAL要求を受入れる それ以外であれば SAL要求を保持する 上記以外の場合 新しいSAL要求を受入れる RRQ/′DRQ要求が有効である場合RRQ/DRQに要求されるリソースが すべて利用可能であれば RRQ/D RQ要求を発行 利用可能リストからRRQ/DRQリソースを除く新しいRRQ/DRQ要求を 受入れる それ以外であれば RRQ/DRQ要求を保持する 上記以外の場合 新しいRRQ/DRQ要求を受入れる RU要求が有効である場合 RUが要求するリソースがすべて利用可能であればRU要求を発行 利用可能なリソースリストからRUリソースを除く新しいRU要求を受入れる それ以外であれば RU要求がA経路を必要とし、かつA経路が利用可能であれば キャッシュ充填動作を試みる それ以外であれば RU要求を保持する 上記以外の場合 新しいRU要求を受入れる このプログラムセグメントは入力優先論理(IPL)76の動作を表わす。明確 にするために、プロセス(よプログラムの形式で提示されているが、この発明の 例示的実施例1ではしかしながら、アルゴリズムは論理回路を用0る有限状態マ シーンとして実現される。論理回路設計技術(こおける通常の手法により、プロ グラムセグメントおよび明細書中で提示されたIPL76回路の説明から、IP L76のための適切な回路を容易に実現すること力(できるだろう。
IPL76はシステムクロ・ツク信号における1サイクルの間に実行されるべき ジョブを受け入れ、次のクロ・ツクサイクルの間にそのジョブを選択かつ発行す る。上言己のプログラムセグメントからは、MAU70がらのジョブは常に実行 されるということがわかる。5AL72、RRQ/DRQ74、およびRU56 から生じるジョブは、定められた優先順位でのみ、かつより優先順位の高いジョ ブとの衝突がない場合のみ、実行される。必要なリソースが利用可能でないため に完了させることのできないジョブはIPL76の中に保持され、このIPLは 次に続くクロックサイクルの間にそれらを処理しようとする。
当業者には、ここで説明された実施例に対し多くの変形が企図されているという こさが理解されるであろう。これらの変形は、キャッシュのサイズが異なるもの 、キャッシュページの数が異なるもの、ページのグループのサイズが異なるもの 、ページのグループの数が異なるもの、ならびに要求者の数が異なるものや利用 可能なリソースの数が異なるものを含む。この発明は例示的実施例に関して説明 されてきたが、上で略述したように後に記載する請求の範囲およびその精神の中 で変形されて実施されてもよいということが企図されている。
FIG 、 2 国際調査報告 フロントページの続き (72)発明者 ナデオ、スタンレー・ビイアメリカ合衆国、19087 ペン シルバニア州、ウニ・rン、キャムストン・コート、(72)発明者 スネル、 チャールズ・ケイアメリカ合衆国、21701 メリーランド州、フレデリック 、ティール・ループ、6605

Claims (9)

    【特許請求の範囲】
  1. 1.複数個の区分に分割されるキャッシュメモリ内のデータ値へのアクセスを管 理するための装置であって、データ値の各々はそれぞれアドレス値を存し、前記 装置は、各キャッシュメモリの区分に個別にアクセスしてキャッシュ書込動作を 行なうための手段と、 アクセスされるべき各データ値を、データ値のアドレス値に基づいて複数個のキ ャッシュメモリ区分のそれぞれにマッピングするための手段と、 前記アクセス手段に結合され、同時にa)記憶されたデータ値が前記キャッシュ メモリにおいてそれぞれ異なった区分のマッピングを有するように、前記キャッ シュメモリ区分の選択されたものに前記データ値の値を記憶し、かつb)選択さ れたキャッシュメモリ区分の1つから前記データ値の少なくとも1つをフェッチ するための手段とを含む、装置。
  2. 2.システムは、周期的なクロック信号を発生するための手段と、このクロック 信号の1周期の間に、各キャッシュメモリ区分にデータを書込み、かつ少なくと も1つのキャッシュメモリ区分からデータを読出すための手段とをさらに含む、 請求項1に記載の装置。
  3. 3.複数個の区分に分割されるキャッシュメモリ内のデータ値へのアクセスを管 理するための装置であって、各データ値は対応するアドレス値を有し、前記装置 は前記複数個のキャッシュメモリ区分の区分を複数個のキャッシュメモリ区分の グループに対応付ける手段を含み、各区分のグループは少なくとも2つのキャッ シュメモリ区分を含み、さらに 前記データ値の第1および第2のもののそれぞれのアドレス値に応答して、第1 および第2のデータ値が記憶されるべき第1および第2のキャッシュメモリ区分 のグループのそれぞれを選択するための手段と、 第1および第2のデータ値のそれぞれにおける第1および第2のアドレス値を、 第1および第2の選択されたキャッシュメモリ区分のグループのそれぞれの第1 および第2のキャッシュメモリアドレス値に変換するステップと、前記第1およ び第2のキャッシュメモリアドレス値と前記第1および第2のデータ値とを第1 および第2のキャッシュメモリ区分のグループのそれぞれにおけるキャッシュメ モリ区分の各々に与えるための手段と、選択された第1および第2のキャッシュ メモリ区分における第1および第2のキャッシュメモリアドレス値のそれぞれを 用いて前記第1および第2のデータ値を記憶することを可能にするための手段と 、 第1および第2のデータ値を第1および第2の選択されたキャッシュメモリ区分 のそれぞれの中に同時に記憶するための手段とを含む、装置。
  4. 4.周期的なクロック信号を与えるための手段と、クロック信号の1周期の間に データを各キャッシュメモリ区分のグループに書込みかつデータを各キャッシュ メモリ区分のグループから読出すための手段をさらに含む、請求項3に記載の装 置。
  5. 5.命令処理ユニットと、複数個のレジスタと、複数個の区分に分割されるキャ ッシュメモリと、メインメモリとを含むコンピュータシステムにおいてデータヘ のアクセスを制御するメモリ管理システムであって、命令処理ユニット、メイン メモリ、およびメモリ管理システムによって与えられるメモリアクセス要求を記 憶するための複数個の待合せ手段と、 命令処理ユニット、複数個のレジスタ、キャッシュメモリ、およびメインメモリ の間でデータ値を転送するための複数個のメモリユニットリソース手段と、複数 個の待合せ手段に結合され、a)メモリアクセス要求を受取り、b)複数個のメ モリユニットリソース手段のうちどれが要求の各々を満たすのに必要とされるか を判断し、c)1または2以上のメモリユニットリソース手段を同時に処理され 得る要求の選択されたものに対して割当てるための論理手段と、 選択された要求を同時に処理するための手段とを含む、メモリ管理システム。
  6. 6.キャッシュメモリは複数個の区分を含み、メモリ管理システムは前記キャッ シュメモリ区分の各々を個別のリソースとして割当てるための手段と、データ値 それぞれを前記キャッシュメモリ区分の各々に同時に記憶するための手段とをさ らに含む、請求項5に記載のメモリ管理システム。
  7. 7.同時にa)前記キャッシュメモリ区分の各々にデータを記憶し、b)前記キ ャッシュメモリ区分の少なくとも1つからデータを読出すための手段をさらに含 む、請求項5に記載のメモリ管理システム。
  8. 8.待合せ手段は、 保留されている、中央処理ユニットからのデータをキャッシュメモリ内に記憶す る要求のすべてについての順序付けられたリストを維持するための記憶アドレス リスト手段と、 保留されている、キャッシュメモリ内のデータを参照する要求のすべてについて の順序付けられたリストを維持するための参照延期キュー手段と、 メインメモリからキャッシュメモリヘ、キャッシュメモリからメインメモリヘと データを転送する要求についての順序付けられたリストを維持するための復帰お よび置換キュー手段とを含む、請求項5に記載のメモリ管理システム。
  9. 9.命令処理ユニットは、処理された命令の各々から複数のメモリアクセス要求 を発するための手段を含み、論理手段は、それぞれ異なった命令から発せられる メモリアクセス要求を同時に処理するための手段を含む、請求項5に記載のメモ リ管理システム。
JP5508666A 1991-11-04 1992-11-03 複数の書込キャッシュを含むメモリ装置 Pending JPH07500936A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US78758491A 1991-11-04 1991-11-04
US787,584 1991-11-04
PCT/US1992/009417 WO1993009497A2 (en) 1991-11-04 1992-11-03 Memory unit including a multiple write cache

Publications (1)

Publication Number Publication Date
JPH07500936A true JPH07500936A (ja) 1995-01-26

Family

ID=25141954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5508666A Pending JPH07500936A (ja) 1991-11-04 1992-11-03 複数の書込キャッシュを含むメモリ装置

Country Status (5)

Country Link
EP (1) EP0611462B1 (ja)
JP (1) JPH07500936A (ja)
KR (1) KR940703050A (ja)
DE (1) DE69224649T2 (ja)
WO (1) WO1993009497A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2292822A (en) * 1994-08-31 1996-03-06 Hewlett Packard Co Partitioned cache memory
AU7728300A (en) * 1999-11-22 2001-06-04 Ericsson Inc. Buffer memories, methods and systems for buffering having seperate buffer memories for each of a plurality of tasks
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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
US4381541A (en) * 1980-08-28 1983-04-26 Sperry Corporation Buffer memory referencing system for two data words

Also Published As

Publication number Publication date
WO1993009497A3 (en) 1993-08-05
DE69224649D1 (de) 1998-04-09
DE69224649T2 (de) 1998-06-25
EP0611462B1 (en) 1998-03-04
KR940703050A (ko) 1994-09-17
WO1993009497A2 (en) 1993-05-13
EP0611462A1 (en) 1994-08-24

Similar Documents

Publication Publication Date Title
US5778434A (en) System and method for processing multiple requests and out of order returns
US6112265A (en) System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
JP2662603B2 (ja) 無効要求を選別する方法及び装置
JP3900478B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム及び該コンピュータ・システムを操作する方法
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
US4881163A (en) Computer system architecture employing cache data line move-out queue buffer
JP3900479B2 (ja) システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム
US6523091B2 (en) Multiple variable cache replacement policy
US6704822B1 (en) Arbitration protocol for a shared data cache
JP3924203B2 (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
JP3900481B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システムを操作する方法、メモリ制御装置、メモリ・システム、該メモリ・システムを含むノード及びnumaコンピュータ・システム
JP3900480B2 (ja) 共用データのリモート割当て解除の通知を提供する不均等メモリ・アクセス(numa)データ処理システム
US7284102B2 (en) System and method of re-ordering store operations within a processor
JP3898984B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム
US20020116586A1 (en) Shared write buffer for use by multiple processor units
US20060277366A1 (en) System and method of managing cache hierarchies with adaptive mechanisms
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US6567900B1 (en) Efficient address interleaving with simultaneous multiple locality options
US10042773B2 (en) Advance cache allocator
US8566532B2 (en) Management of multipurpose command queues in a multilevel cache hierarchy
US5446844A (en) Peripheral memory interface controller as a cache for a large data processing system
US7529876B2 (en) Tag allocation method
US6240487B1 (en) Integrated cache buffers