JPH0551937B2 - - Google Patents
Info
- Publication number
- JPH0551937B2 JPH0551937B2 JP62307551A JP30755187A JPH0551937B2 JP H0551937 B2 JPH0551937 B2 JP H0551937B2 JP 62307551 A JP62307551 A JP 62307551A JP 30755187 A JP30755187 A JP 30755187A JP H0551937 B2 JPH0551937 B2 JP H0551937B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- logical
- physical
- data
- tag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data 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
〔産業上の利用分野〕
本発明は、データ処理システムの論理キヤツシ
ユメモリに係り、特に多数の演算処理装置が1つ
の主記憶装置を共有するマルチプロセツサシステ
ムに好適な論理キヤツシユメモリに関する。 〔従来の技術〕 最近の計算機システムでは、多数のユーザが、
1つの計算機を共用し、かつ1ユーザにおいても
多数のプロセスを同時実行させる形態が一般化し
ている。この様な形態に応じて、1つの演算ユニ
ツトが、多数のプロセスを時分割に実行するシス
テムに代わつて、多数の演算ユニツトが、1つの
主記憶を共有し、各プロセス毎に演算ユニツトが
割当てられるマルチプロセツサシステムが計算機
システムの主流となりつつある。 この構成に基づくマルチプロセツサシステムで
は、各演算ユニツトが共通のバスを用いてメモリ
アクセスを行なうため、何らかの対策がないとバ
スの競合が発生し、各演算ユニツトが十分な性能
を発揮できないという問題がある。この問題点
は、各演算ユニツト毎にローカルなキヤツシユメ
モリを設ける事によつて解決されている。キヤツ
シユメモリは小容量のメモリであり、主メモリの
内容の一部を保持していて、そのアクセス時間は
一般に主メモリの5〜10分の1程度である。演算
ユニツトが要求するデータがキヤツシユメモリ内
に存在すれば(これをキヤツシユヒツトという)、
短時間でメモリアクセスが終了し、この場合は共
有メモリへのアクセスは行われない。又、キヤツ
シユメモリ内に要求するデータが存在しない場合
(これをキヤツシユミスヒツトという)、共有メモ
リからローカルなキヤツシユメモリに、一定サイ
ズのブロツクデータが転送され、要求元の演算ユ
ニツトにデータが供給される。このようなキヤツ
シユメモリを設けると、一般にメモリアクセスの
局所性から、小容量のキヤツシユメモリでもかな
り高いキヤツシユヒツト率が得られ、従つてほと
んどのメモリアクセスが演算ユニツトとキヤツシ
ユメモリとの間で終了し、共有バスへのアクセス
を大幅に削減する事が可能となる。即ち、多数の
プロセツサを共有バスに接続した場合でも、バス
が競合する頻度が小さく、プロセツサの台数効果
を十分生かすことが可能となる。 又、マルチプロセツサシステムにおいて、多重
仮想記憶方式を実現することも重要な課題であ
る。多重仮想記憶方式は、特開昭60−79446号に
示されているように、各プロセス毎に0番地から
始まる論理アドレス空間を割当てる方式である。
論理アドレス空間には、主メモリ上の物理的な位
置を示す物理アドレス空間よりも、大きなサイズ
が割当てられる。このため、各プロセスの論理ア
ドレス空間は、主メモリ上と2次記憶上に割当て
られ、必要なデータのみが主メモリ上に置かれ
る。要求するデータが主メモリ上に存在しない場
合、主メモリ上のデータの一部が2次記憶上に掃
き出され(以下、スワツプアウトと称す)、必要
なデータが2次記憶から主メモリ上にロードされ
る(以下スワツプインと称す)。この機構により、
各プロセスは主メモリと2次記憶を一つのアドレ
ス空間としてアクセス可能となる。これを実現す
るために、論理アドレス空間と物理アドレス空間
は、ページと呼ばれる一定サイズのブロツクデー
タとして管理され、主メモリと2次記憶間のスワ
ツプイン、スワツプアウトは、このページ単位で
行なわれる。論理アドレスページと、物理アドレ
スページの対応付けは、ページテーブルにより管
理される。演算ユニツトがメモリアクセスを行な
う場合、その論理アドレスによつてページテーブ
ルが検索され、物理アドレスに変換される。多重
仮想記憶では、このページテーブルが各プロセス
毎に設けられ、プロセススイツチの場合は、参照
されるページテーブルもスイツチされる。これに
より、各プロセス毎に0番地からの論理アドレス
空間を割当てる事が可能となる。又、ページテー
ブルは主メモリ上に置かれるため、メモリアクセ
スの度に、主メモリ上のページテーブルを参照し
た場合、メモリアクセスのオーバヘツドが大き
い。このため、最近変換された論理アドレスペー
ジと物理アドレスページの組は、TLB
(Translation look−aside Buffer)と呼ばれる
バツフアメモリに記録され、そしてTLBがヒツ
トすれば、主メモリ上のページテーブルをアクセ
スすることなく高速にアドレス変換を実現でき
る。 以上でマルチプロセツサシステムの概要を述べ
た。次にこのようなシステムにおけるキヤツシユ
メモリについて説明する。キヤツシユメモリのア
クセス手段としては、TLBでアドレス変換する
前に論理アドレスでキヤツシユメモリをアクセス
する論理キヤツシユメモリと、TLBでアドレス
変換した後、物理アドレスでキヤツシユメモリを
アクセスする物理キヤツシユメモリの2方式があ
る。物理キヤツシユメモリでは、メモリアクセス
毎にTLBによるアドレス変換が必要となり、こ
れはメモリアクセス時間の増大を招く。これに対
し、論理キヤツシユメモリでは、キヤツシユメモ
リがヒツトしている限り、TLBによるアドレス
変換の必要はなく、キヤツシユメモリヒツトに伴
う共有メモリからのブロツク転送時にだけアドレ
ス変換を行なえば良い。このため、メモリアクセ
ス時間を大幅に短縮する事が可能となる。更に
は、演算ユニツトでは、メモリスループツト向上
のためキヤツシユメモリを命令用とデータ用に分
割する場合が多い。この構成に於いては、物理キ
ヤツシユメモリを採用した場合、命令用とデータ
用にそれぞれTLBを設ける必要がある。これに
対し、論理キヤツシユメモリでは、命令用キヤツ
シユとデータ用キヤツシユでTLBを共有する事
ができハード量の削減が可能となる。一方、論理
キヤツシユメモリを採用した場合、多数のプロセ
ツサによつて共有されるバスを、論理アドレスバ
スとする構成(以下、論理共有バスと称す)と、
物理アドレスバスとする構成(以下、物理共有バ
スと称す)が考えられる。論理共有バス構成で
は、アドレス変換装置は共有メモリ側に設けら
れ、各演算ユニツトにより共有される。一方、物
理共有バス構成では、アドレス変換装置は各演算
ユニツト毎に設けられる。このように論理共有バ
ス構成では、TLBを共有できるためハード量を
削減できる利点がある。しかし、バスに接続され
るプロセツサ台数が増加した場合、ページテーブ
ルの変更に伴うTLBへのアクセスが集中し、こ
れがシステムのボトルネツクとなる可能性があ
る。又、ページのスワツプイン,スワツプアウト
に伴うI/Oプロセツサからの主メモリアクセス
は、物理アドレスで行なわれる。このため、論理
共有バス構成では、I/Oプロセツサからの物理
アドレスを論理アドレスに変換するための変換テ
ーブルが必要となる。 以上に述べた理由により、マルチプロセツサシ
ステムのメモリシステムとしては、論理キヤツシ
ユメモリでかつ物理共有バスの構成が適すると考
えられている。 キヤツシユメモリに関するもう1つの問題は、
各キヤツシユメモリ内容の一致保証である。即
ち、各プロセツサ毎にローカルなキヤツシユメモ
リを有するマルチプロセツサシステムにおいては
分散されたキヤツシユメモリに関して、データの
一致を保証することが重要な課題となる。例えば
共有メモリ上のあるデータが、AとBの演算ユニ
ツトのローカルキヤツシユに共有されている場合
を考える。演算ユニツトAが共有されているデー
タを更新し、更新した事実を演算ユニツトBのキ
ヤツシユメモリに報告しなかつた場合、演算ユニ
ツトBがそのデータに対してアクセスすると、自
ユニツト内のキヤツシユメモリがヒツトし、更新
される前の誤つたデータが読込まれる。この問題
を解決するためには、各演算ユニツトは、データ
を更新した時にはこの事実を他の演算ユニツト全
てに報告しなければならない。各演算ユニツトは
共有バスをモニタする手段を有し、データ更新の
報告を検出して、各キヤツシユメモリの一致保証
を管理する必要がある。 このキヤツシユメモリ一致保証のプロトコル
は、キヤツシユメモリのライトアクセス処理方式
によつて異なる。キヤツシユメモリのライトアク
セス処理方式には、ストアスルー方式とストアス
ワツプ方式がある。ストアスルー方式とは、演算
ユニツトからのライトアクセスが発生する毎に、
キヤツシユメモリ及び主メモリの内容を更新する
方式である。このため、キヤツシユメモリと主メ
モリの内容は常に一致している。一方、ストアス
ワツプ方式では、ライトアクセスがキヤツシユメ
モリにヒツトすれば、キヤツシユメモリ内データ
の更新だけで処理を終了する。そして変更された
データを含むブロツクをキヤツシユメモリから追
い出す時に、始めて主メモリの更新が行なわれ
る。このため、キヤツシユメモリと主メモリの内
容が常に一致しているとは限らない。 各ライトアクセス処理方式における、キヤツシ
ユメモリの一致保証プロトコルの例を以下に示
す。まず、ストアスルー方式では、キヤツシユメ
モリと主メモリが常に一致している事から、1つ
のプロセツサからの主メモリへの書込みは、他の
全てのプロセツサに報告される。各プロセツサ
は、共有バス上のトランザクシヨンをモニタし、
主メモリへの書込みを検出すると、そのアドレス
に対応するデータが、ローカルキヤツシユ内に存
在するかどうかをチエツクする。対応するデータ
が存在すれば、それを含むブロツクを無効化す
る。一方、ストアスワツプ方式におけるキヤツシ
ユメモリの一致保証プロトコルは、ストアスルー
方式に比較すると複雑になる。種々の一致保証プ
ロトコルが提案されているが、ここではその一例
を示す。 キヤツシユメモリ内のブロツクには、以下の3
状態がありうる。すなわち (1) Shared…主メモリの内容と一致しており且
つ、複数のキヤツシユメモリに共有されてい
る。 (2) Exclusive…主メモリの内容と一致しており
且つ、唯一のキヤツシユメモリ内に存在する。 (3) Owned…主メモリの内容と一致しておらず
且つ、唯一のキヤツシユメモリ内に存在する。 次に、演算ユニツトが各状態のブロツクにアク
セスする場合の処理を簡単に述べる。 (i) リードヒツト ブロツクの状態に関わらず、データを読出す。 () リードミスヒツト 共有メモリにブロツク転送を要求する。この
時、他のキヤツシユメモリに転送中のブロツクが
存在するかどうか検査し、存在すればSharedブ
ロツクとして、又、存在しなければExclusiveブ
ロツクとして、自キヤツシユメモリ内に書込む。
その後、中断していたリードアクセスを再開す
る。 (iii) ライトヒツト Sharedブロツクに対する書込みでは、当該キ
ヤツシユメモリに書込むとともに、他のキヤツシ
ユメモリに共有バスを通じてデータの変更を報告
する。その後、ブロツクの状態はOwnedとなる。
又、Exclusive,Ownedブロツクに対する書込み
では、他のキヤツシユメモリに報告する義務はな
い。 (iv) ライトミスヒツト 共有メモリにブロツク転送を要求する。この時
間のキヤツシユメモリに転送中のブロツクが存在
するかどうか検査し、存在すればSharedブロツ
クとして、又、存在しなければExclusiveブロツ
クとして、自キヤツシユメモリ内に書込む。その
後、中断していたライトアクセスを再開する。 以上のストアスワツプ方式における一致保証プ
ロトコルでは、各演算ユニツトは共有バス上のト
ランザクシヨンをチエツクするモニタを有してい
て、以下のような処理を行う。 (i) 共有バス上にブロツク転送トランザクシヨン
を検出した場合。 対応するブロツクが自キヤツシユメモリ内に
存在し、且つブロツクの状態がOwnedであつ
た場合、共有バス上のブロツク転送要求をアボ
ートし、自キヤツシユ内のOwnedブロツクを
共有メモリへライトバツクして当該ブロツクを
Exclusiveとする。その後中断されていたブロ
ツク転送要求が再開される。又、対応するブロ
ツクの状態がSharedあるいはExclusiveであつ
た場合、共有バスを通じて、該当ブロツクが自
キヤツシユメモリ内に存在することを報告す
る。その後ブロツクの状態はSharedとなる。 (ii) 共有バス上にデータ変更報告を検出した場
合。 対応するブロツクが自キヤツシユメモリ内に
存在すれば、そのブロツクを無効化する。 以下のプロトコルにより、ストアスワツプ方式
を採用した場合のキヤツシユメモリの一致が保証
できる。このキヤツシユメモリ一致保証は、マル
チプロセツサシステムに限らず、ユニプロセツサ
システムに於いても必要である。すなわち、物理
バス上に演算ユニツトとI/Oプロセツサが接続
される場合には、演算ユニツトの有するキヤツシ
ユメモリに関して一致保証が必要となる。 〔発明が解決しようとする問題点〕 以上、マルチプロセツサシステムに適する構成
としては、論理キヤツシユメモリで且つ、物理共
有バスが有効であることを述べ、又、分散キヤツ
シユメモリの一致保証について述べた。しかしな
がら、上記従来技術に於いてはいくつかの問題点
がある。 まず、単一のプロセツサの場合でも発生する問
題点を示す。多重仮想記憶方式を採用する計算機
システムに於いては、各プロセス毎に0番地から
始まる論理アドレス空間が割当てられるため、同
一の論理アドレスが異なる物理データを参照する
場合がある。このため、従来の論理キヤツシユ方
式では、実行中のプロセスが他のプロセスの同一
論理アドレスのデータをアクセスしないように、
プロセススイツチの度に、論理キヤツシユ内容を
全てパージする処理を行つていた。このため、タ
スクスイツチが頻繁に発生すると、キヤツシユメ
モリの効果が減少するという問題があつた。更に
は、ストアスワツプ方式のキヤツシユメモリを採
用した場合には、キヤツシユメモリのパージ処理
に先立つて、変更されたデータを含むブロツクを
全て主メモリにコピーバツクする必要があつた。
この問題は、特開昭60−97446に示される様に、
論理キヤツシユメモリの比較アドレスに、プロセ
ス識別子を含める事によつて解決できる。すなわ
ち、論理キヤツシユメモリを検索する時に、論理
アドレスだけでなくプロセツサ識別子も含めて比
較を行なう方法である。本方式によれば、タスク
スイツチ毎にキヤツシユメモリの内容をパージす
る必要はなくなる。 ところが、本方式を採用した場合、新たな問題
が発生する。すなわち、“Address Synonym”
の問題である。これは、各プロセスがデータを共
有する場合に起こり得る。プロセス間でデータを
共有する場合には、各プロセスのページテーブル
の管理のもとに、異なる論理アドレスページが、
共有の物理アドレスページにマツピングされる。
このため、論理アドレスで検索されるキヤツシユ
メモリ内には、異なるエントリー位置に、同一の
データが存在し得る。このような状況において、
あるプロセスが共有データを変更した場合、他の
プロセスの共有データは変更されないままキヤツ
シユメモリ内に残つてしまい、他のプロセスが共
有データをアクセスすると、変更される前の誤つ
たデータがキヤツシユメモリから供給される事に
なる。従来この“Address Synonym”の問題に
対処する手段としては、文献コンピユーテイング
サーベイ(Computing Surveys)Vol.14,No.3,
September 1982のpp510−511に論じられてい
る。これは、物理アドレスページを論理アドレス
ページに逆変換するテーブルを有する方法であ
る。逆変換テーブルは、論理キヤツシユ内に存在
するデータの物理アドレスページに対して、それ
にマツピングされている全ての論理アドレスペー
ジを保持するテーブルである。この方式に於いて
は、あるプロセスが共有データを変更した場合、
その論理アドレスはTLBによつて物理アドレス
に変換された後、その物理アドレスによつて逆変
換テーブルがアクセスされる。その結果、他のプ
ロセスの共有データが論理キヤツシユ内に存在し
ていれば、そのデータに対して更新、あるいは無
効化が行なわれる。しかしこの従来技術では、物
理アドレスを論理アドレスに逆変換するテーブル
が必要となり、ハード量が増加し、また逆変換テ
ーブルの管理が複雑になる等の問題があつた。 又、他の解決手段は、特開昭61−246850に論じ
られている。これは、論理キヤツシユメモリに格
納されるアドレス情報として、論理アドレス情報
を記憶する第1のデイレクトリと、実アドレス情
報及び、論理アドレス情報の一部を記憶する第2
のデイレクトリを持つ。論理アドレス情報と、実
アドレス情報は、各デイレクトリの異なるカラム
アドレスに登録され、両者の関係は、第2のデイ
レクトリに記憶されるリンク情報に基づいて決定
される。該方式(以下リンクビツト方式と呼ぶ)
を、第10図を用いて、簡単に説明する。90
1,902は、それぞれ、論理アドレス,物理ア
ドレスがセツトされるレジスタであり、アドレス
変換ユニツト900は、論理アドレスのbit0−19
を、物理アドレスのbit0−19に変換する。キヤツ
シユメモリは、論理アドレス情報を記憶する論理
デイレクトリ903と、データを記憶するデータ
部904、及び、物理アドレス情報を記憶する物
理デイレクトリ905から成る。論理デイレクト
リ903には、データ部904に格納されるデー
タに対応した論理アドレスのタグ部(bit0−17)
910(LAR)と、有効ビツト911(V)が登録
される。この例では、論理デイレクトリ903,
データ部904は、論理アドレス901のbit18
−31をカラムアドレスとする。一方、物理デイレ
クトリ905には、データに対応した物理アドレ
スのタグ部(bit0−17)912(PAR)と、有
効ビツト914(V)及び、該物理アドレスタグに対
応する論理アドレスタグが登録されている論理デ
イレクトリのカラムアドレス913(以下、リン
クビツトLNKと称す)が登録される。この例で
は、物理デイレクトリ905は、物理アドレス9
02のbit18−31をカラムアドレスとする。従つ
て、論理アドレスタグ910と、これに対応する
物理アドレスタグ912は、各デイレクトリの同
一カラムに登録されるとは限らない。該リンクビ
ツト方式を採ることにより、“Address
Synonym”の問題は、以下の様にして解決され
る。すなわち、プロセス間で共有されるデータが
キヤツシユ内に存在し、一方の論理アドレスに対
してプロセツサから書込要求が発生した場合、ま
ず、論理デイレクトリ903がアクセスされ、該
当するエントリにデータが書込まれる。更に、論
理アドレス901は、アドレス変換ユニツト90
0により、物理アドレス902に変換される。次
に物理アドレス902により物理デイレクトリ9
05をアクセスし、ヒツトしたカラムのリンク情
報913より、該物理アドレスに対応するデータ
部904のカラムアドレスが生成され、該当カラ
ムに対して、書込みあるいは無効化が行なわれ
る。以上の動作により共有データの一致が保証さ
れる。このリンクビツト方式については、特開昭
53−25457にも論じられている。 しかし、この従来技術では、複数のプロセスに
よつてデータが共有される場合、物理デイレクト
リの1つのエントリに複数のリンク情報が必要と
なり、管理が複雑になる等の問題があつた。 次にマルチプロセツサシステムの場合に生じる
問題点を示す。それは分散されたキヤツシユメモ
リの一致を保証するために、物理アドレスを論理
アドレスに変換する機能が必要となる事である。
前述した様に、分散キヤツシユメモリの一致を保
証するためには、各プロセツサ毎に共有バスをモ
ニタする機能が必要となる。モニタの機能は既に
説明したが、バス上のトランザクシヨンを検出し
て自キヤツシユメモリ内を検索し、該当ブロツク
が存在すればそれを無効化したり、あるいは共有
バス上のトランザクシヨンをアボートして、コピ
ーバツクの処理を実施しなければならない。とこ
ろが、論理キヤツシユで物理共有バスの構成で
は、共有バス上のトランザクシヨンは物理アドレ
スで行なわれるため、モニターは共有バス上のア
ドレスを取り込み、一旦論理アドレスに変換した
後、論理キヤツシユを検索しなければならない。
このため、物理アドレスを論理アドレスに変換す
るための逆変換テーブルが必要となり、ハード量
の増加及び逆変換テーブルの管理が複雑になる等
の問題があつた。 一方、前述のリンクビツト方式を採用すれば、
逆変換テーブルは不要となる。すなわち、第10
図において、共有バス上の物理アドレスが、モニ
タによつて、物理アドレスレジスタ902に取り
込まれる。次に、該物理アドレスによつて、物理
デイレクトリ905がアクセスされ、該当するエ
ントリが存在すれば、リンク情報913から、対
応するデータ及び論理デイレクトリのカラムアド
レスが生成され、無効化が行なわれる。しかし、
前述した様に、複数のプロセスがデータを共有す
る場合は、複数のリンク情報が必要となり、管理
が複雑になる問題があつた。 本発明の目的は、大容量のキヤツシユメモリに
おける“Address Synonym”の問題と、複数の
プロセツサに分散された論理キヤツシユメモリの
一致保証とをキヤツシユメモリの連想数を増やす
ことなく可能とした論理キヤツシユメモリを有す
るマルチプロセツサシステムの提供とその論理キ
ヤツシユメモリのアクセス方法を提供することに
ある。 〔問題点を解決するための手段〕 上記目的を達成するため、本発明では、マルチ
プロセツサシステムにおけるキヤツシユメモリの
タグ部を、キヤツシユに保持されるデータに対応
する論理アドレスタグから成る論理デイレクトリ
と、該データに対応する物理アドレスタグから成
る物理デイレクトリによつて構成し、対応する論
理アドレスタグと物理アドレスタグを同一のエン
トリーに登録するようにした。更に、物理デイレ
クトリはマルチポートメモリとし、同時に複数の
データを読み出すことを可能とする。また、タグ
の一致を検出する比較器として、論理アドレス用
比較器と、複数の物理アドレス用比較器とを設け
る。そして、プロセツサからの論理アドレスによ
るアクセスでは、アドレス変換に依存する部分も
含むカラムアドレスにより、論理デイレクトリを
アクセスし、対応するデータの有無を検出する。
一方、バスモニタからの物理アドレスによるアク
セスでは、物理アドレスのアドレス変換に依存し
ない部分をカラムアドレスとして、物理デイレク
トリから複数の情報を読み出し、その読み出し出
力である物理アドレスタグとアクセスアドレスで
ある物理アドレスの上位部であるタグ部を比較
し、対応するデータの有無を検出する。これによ
りプロセツサに対しては、論理キヤツシユメモリ
として働き、物理共有バスのモニタに対しては、
物理キヤツシユメモリとして動作する。 本構成では、アドレス変換に依存する部分をキ
ヤツシユのインデツクスアドレスとして使用可能
であり、キヤツシユ容量が増大しても連想数は増
大しない。大容量のキヤツシユメモリに有効な構
成である。 〔作用〕 キヤツシユメモリの作用を、ストアスワツプ方
式の場合について説明する。異なる論理アドレス
ページが同一の物理アドレスページを共有し、か
つ両ブロツクがキヤツシユメモリ内に存在してい
る状況について考える。この場合、両ブロツクの
状態はSharedとなつている。演算ユニツトから
一方のブロツクに対して書込みが発生すると、該
当ブロツクに書込まれるとともに、ブロツクの状
態はOwnedとなる。更にSharedデータに対する
書込であるため、本アクセスの論理アドレスは
TLBによつて物理アドレスに変換された後、共
有バス上に出力されて、無効化要求が発効され
る。バスモニタは、この無効化要求を検出し、取
り込んだ、物理アドレスによつてキヤツシユメモ
リを検索し、書込みの対象とならなかつたブロツ
ク(状態がSharedのまま)を物理アドレスタグ
の比較器により検出し、これを無効化する。以上
の機能によつて、物理アドレスを論理アドレスに
変換する逆変換テーブル無しで“Address
Synonym”の問題を解決する事が可能となる。 また、同じストアスワツプ方式を用いたマルチ
プロセツサシステムの場合、共有バスモニタが共
有バス上の無効化要求を検出すると、その物理ア
ドレスを取り込み、物理アドレスでキヤツシユメ
モリをアクセスする。この時、物理アドレスタグ
の比較器による比較の結果一致するブロツクが存
在すればこれを無効化する。又、共有バス上のブ
ロツク転送要求を検出すると、その物理アドレス
を取り込む。そして物理アドレスでキヤツシユメ
モリを検索し、一致するブロツクが検出され、か
つ、ブロツクの状態がOwnedであれば、共有バ
ス上のブロツク転送要求をアボートし、該当する
ブロツクを主メモリにコピーバツクする。又、一
致するブロツクが検出され、かつそのブロツクの
状態が、Exclusive又はSharedであれば、ヒツト
した事を共有バスを通じて報告する。以上の機能
により、逆変換テーブル無しで、分散キヤツシユ
メモリの一致を保証することが可能となる。 〔実施例〕 以下、本発明の第1の実施例を図面を用いて詳
細に説明する。第2図は本発明が適用されるデー
タ処理装置の一例を示している。同図において共
有バス300は接続された演算ユニツト100,
200,300は主メモリ401を共有してお
り、メモリ制御装置400は、主メモリ401の
アクセス制御及び複数の演算ユニツトに対しての
データの供給を行う。フアイルコントロールプロ
セツサ500は固定デイスク501内に蓄積され
た任意のフアイルを、高速に主メモリ401へ転
送する。入出力プロセツサ600は外部の入出力
装置とのデータ転送を行なう。共有バス300は
バスコントローラ700によつて管理される。 演算ユニツト100(他も同様)の内部の命令
フエツチユニツト(I)101は、プログラムの
実行に必要な命令を主メモリ401からフエツチ
する機能を持つ。フエツチされた命令は、命令実
行ユニツト(E)102に転送される。命令実行
ユニツト102では、命令の意味を解釈し、必要
なデータをフエツチした後、演算を実行する。命
令用キヤツシユメモリ103は、主メモリ401
内の命令をコピーして、高速なバツフアメモリに
蓄えている。命令フエツチユニツト101が論理
アドレスで命令キヤツシユ103にアクセスした
場合、要求する命令が命令キヤツシユ内に存在す
れば、短時間で要求命令がフエツチされる。又、
データ用キヤツシユメモリ104は、主メモリ4
01内のデータをコピーして、高速なバツフアメ
モリに蓄えている。命令実行ユニツト102が論
理アドレスでデータキヤツシユ104をアクセス
した場合、要求データがデータキヤツシユ104
内に存在すれば、短時間でデータがフエツチされ
る。命令キヤツシユ103あるいはデータキヤツ
シユ104に要求される命令あるいは、データが
存在しない場合、論理アドレスはアドレス変換装
置105に転送される。アドレス変換装置105
は、論理アドレスを物理アドレスに変換した後、
共有バス300を通して、メモリ制御装置400
にデータ転送を要求する。主メモリ401から転
送されて来たデータは、一旦命令キヤツシユ10
3あるいは、データキヤツシユ104に書込まれ
た後、命令ユニツト101あるいは命令実行ユニ
ツト102に供される。 次に、第3図を用いて共有バス300の構成を
説明する。共有バス300は、各演算ユニツトに
よつて共有されるバスとしてのハンドシエイク制
御バス303,アクセスバス301及びデータバ
ス302を有する。本実施例では、アドレスバス
301を29ビツト、データバス302を64ビツト
とする。又、各演算ユニツトによるバスの競合を
避けるために、各演算ユニツトからバスコントロ
ーラ700に対してバス占有要求線305が設け
られ、バスコントローラ700からは、各演算ユ
ニツトに対してバス使用許可線304が個別に設
けられる。又、第4図に示す様に、共有バス30
0にはスプリツト方式が採用されている。すなわ
ち、ある演算ユニツトがAブロツクの転送要求を
発効し、主メモリ制御装置400からAブロツク
のデータが転送されて来るまでの空き時間を、他
の演算ユニツトが使用可能となつている。このス
プリツト方式を実現するため、主メモリ制御装置
400においても、バス占有要求線305とバス
使用許可線304が設けられている。このように
演算ユニツト及び主メモリ制御装置からのバス占
有要求線は、バスコントローラ700に接続さ
れ、バスコントローラ700は、優先順位に従つ
て、各ユニツトにバス使用許可信号を発行する。 次に表1を用いて、バス占有要求線305およ
びバス使用許可線304の具体的な信号名と、そ
の意味について説明する。バス占有要求線305
としては、BUSREQ信号とCPYBKREQ信号が
ある。
ユメモリに係り、特に多数の演算処理装置が1つ
の主記憶装置を共有するマルチプロセツサシステ
ムに好適な論理キヤツシユメモリに関する。 〔従来の技術〕 最近の計算機システムでは、多数のユーザが、
1つの計算機を共用し、かつ1ユーザにおいても
多数のプロセスを同時実行させる形態が一般化し
ている。この様な形態に応じて、1つの演算ユニ
ツトが、多数のプロセスを時分割に実行するシス
テムに代わつて、多数の演算ユニツトが、1つの
主記憶を共有し、各プロセス毎に演算ユニツトが
割当てられるマルチプロセツサシステムが計算機
システムの主流となりつつある。 この構成に基づくマルチプロセツサシステムで
は、各演算ユニツトが共通のバスを用いてメモリ
アクセスを行なうため、何らかの対策がないとバ
スの競合が発生し、各演算ユニツトが十分な性能
を発揮できないという問題がある。この問題点
は、各演算ユニツト毎にローカルなキヤツシユメ
モリを設ける事によつて解決されている。キヤツ
シユメモリは小容量のメモリであり、主メモリの
内容の一部を保持していて、そのアクセス時間は
一般に主メモリの5〜10分の1程度である。演算
ユニツトが要求するデータがキヤツシユメモリ内
に存在すれば(これをキヤツシユヒツトという)、
短時間でメモリアクセスが終了し、この場合は共
有メモリへのアクセスは行われない。又、キヤツ
シユメモリ内に要求するデータが存在しない場合
(これをキヤツシユミスヒツトという)、共有メモ
リからローカルなキヤツシユメモリに、一定サイ
ズのブロツクデータが転送され、要求元の演算ユ
ニツトにデータが供給される。このようなキヤツ
シユメモリを設けると、一般にメモリアクセスの
局所性から、小容量のキヤツシユメモリでもかな
り高いキヤツシユヒツト率が得られ、従つてほと
んどのメモリアクセスが演算ユニツトとキヤツシ
ユメモリとの間で終了し、共有バスへのアクセス
を大幅に削減する事が可能となる。即ち、多数の
プロセツサを共有バスに接続した場合でも、バス
が競合する頻度が小さく、プロセツサの台数効果
を十分生かすことが可能となる。 又、マルチプロセツサシステムにおいて、多重
仮想記憶方式を実現することも重要な課題であ
る。多重仮想記憶方式は、特開昭60−79446号に
示されているように、各プロセス毎に0番地から
始まる論理アドレス空間を割当てる方式である。
論理アドレス空間には、主メモリ上の物理的な位
置を示す物理アドレス空間よりも、大きなサイズ
が割当てられる。このため、各プロセスの論理ア
ドレス空間は、主メモリ上と2次記憶上に割当て
られ、必要なデータのみが主メモリ上に置かれ
る。要求するデータが主メモリ上に存在しない場
合、主メモリ上のデータの一部が2次記憶上に掃
き出され(以下、スワツプアウトと称す)、必要
なデータが2次記憶から主メモリ上にロードされ
る(以下スワツプインと称す)。この機構により、
各プロセスは主メモリと2次記憶を一つのアドレ
ス空間としてアクセス可能となる。これを実現す
るために、論理アドレス空間と物理アドレス空間
は、ページと呼ばれる一定サイズのブロツクデー
タとして管理され、主メモリと2次記憶間のスワ
ツプイン、スワツプアウトは、このページ単位で
行なわれる。論理アドレスページと、物理アドレ
スページの対応付けは、ページテーブルにより管
理される。演算ユニツトがメモリアクセスを行な
う場合、その論理アドレスによつてページテーブ
ルが検索され、物理アドレスに変換される。多重
仮想記憶では、このページテーブルが各プロセス
毎に設けられ、プロセススイツチの場合は、参照
されるページテーブルもスイツチされる。これに
より、各プロセス毎に0番地からの論理アドレス
空間を割当てる事が可能となる。又、ページテー
ブルは主メモリ上に置かれるため、メモリアクセ
スの度に、主メモリ上のページテーブルを参照し
た場合、メモリアクセスのオーバヘツドが大き
い。このため、最近変換された論理アドレスペー
ジと物理アドレスページの組は、TLB
(Translation look−aside Buffer)と呼ばれる
バツフアメモリに記録され、そしてTLBがヒツ
トすれば、主メモリ上のページテーブルをアクセ
スすることなく高速にアドレス変換を実現でき
る。 以上でマルチプロセツサシステムの概要を述べ
た。次にこのようなシステムにおけるキヤツシユ
メモリについて説明する。キヤツシユメモリのア
クセス手段としては、TLBでアドレス変換する
前に論理アドレスでキヤツシユメモリをアクセス
する論理キヤツシユメモリと、TLBでアドレス
変換した後、物理アドレスでキヤツシユメモリを
アクセスする物理キヤツシユメモリの2方式があ
る。物理キヤツシユメモリでは、メモリアクセス
毎にTLBによるアドレス変換が必要となり、こ
れはメモリアクセス時間の増大を招く。これに対
し、論理キヤツシユメモリでは、キヤツシユメモ
リがヒツトしている限り、TLBによるアドレス
変換の必要はなく、キヤツシユメモリヒツトに伴
う共有メモリからのブロツク転送時にだけアドレ
ス変換を行なえば良い。このため、メモリアクセ
ス時間を大幅に短縮する事が可能となる。更に
は、演算ユニツトでは、メモリスループツト向上
のためキヤツシユメモリを命令用とデータ用に分
割する場合が多い。この構成に於いては、物理キ
ヤツシユメモリを採用した場合、命令用とデータ
用にそれぞれTLBを設ける必要がある。これに
対し、論理キヤツシユメモリでは、命令用キヤツ
シユとデータ用キヤツシユでTLBを共有する事
ができハード量の削減が可能となる。一方、論理
キヤツシユメモリを採用した場合、多数のプロセ
ツサによつて共有されるバスを、論理アドレスバ
スとする構成(以下、論理共有バスと称す)と、
物理アドレスバスとする構成(以下、物理共有バ
スと称す)が考えられる。論理共有バス構成で
は、アドレス変換装置は共有メモリ側に設けら
れ、各演算ユニツトにより共有される。一方、物
理共有バス構成では、アドレス変換装置は各演算
ユニツト毎に設けられる。このように論理共有バ
ス構成では、TLBを共有できるためハード量を
削減できる利点がある。しかし、バスに接続され
るプロセツサ台数が増加した場合、ページテーブ
ルの変更に伴うTLBへのアクセスが集中し、こ
れがシステムのボトルネツクとなる可能性があ
る。又、ページのスワツプイン,スワツプアウト
に伴うI/Oプロセツサからの主メモリアクセス
は、物理アドレスで行なわれる。このため、論理
共有バス構成では、I/Oプロセツサからの物理
アドレスを論理アドレスに変換するための変換テ
ーブルが必要となる。 以上に述べた理由により、マルチプロセツサシ
ステムのメモリシステムとしては、論理キヤツシ
ユメモリでかつ物理共有バスの構成が適すると考
えられている。 キヤツシユメモリに関するもう1つの問題は、
各キヤツシユメモリ内容の一致保証である。即
ち、各プロセツサ毎にローカルなキヤツシユメモ
リを有するマルチプロセツサシステムにおいては
分散されたキヤツシユメモリに関して、データの
一致を保証することが重要な課題となる。例えば
共有メモリ上のあるデータが、AとBの演算ユニ
ツトのローカルキヤツシユに共有されている場合
を考える。演算ユニツトAが共有されているデー
タを更新し、更新した事実を演算ユニツトBのキ
ヤツシユメモリに報告しなかつた場合、演算ユニ
ツトBがそのデータに対してアクセスすると、自
ユニツト内のキヤツシユメモリがヒツトし、更新
される前の誤つたデータが読込まれる。この問題
を解決するためには、各演算ユニツトは、データ
を更新した時にはこの事実を他の演算ユニツト全
てに報告しなければならない。各演算ユニツトは
共有バスをモニタする手段を有し、データ更新の
報告を検出して、各キヤツシユメモリの一致保証
を管理する必要がある。 このキヤツシユメモリ一致保証のプロトコル
は、キヤツシユメモリのライトアクセス処理方式
によつて異なる。キヤツシユメモリのライトアク
セス処理方式には、ストアスルー方式とストアス
ワツプ方式がある。ストアスルー方式とは、演算
ユニツトからのライトアクセスが発生する毎に、
キヤツシユメモリ及び主メモリの内容を更新する
方式である。このため、キヤツシユメモリと主メ
モリの内容は常に一致している。一方、ストアス
ワツプ方式では、ライトアクセスがキヤツシユメ
モリにヒツトすれば、キヤツシユメモリ内データ
の更新だけで処理を終了する。そして変更された
データを含むブロツクをキヤツシユメモリから追
い出す時に、始めて主メモリの更新が行なわれ
る。このため、キヤツシユメモリと主メモリの内
容が常に一致しているとは限らない。 各ライトアクセス処理方式における、キヤツシ
ユメモリの一致保証プロトコルの例を以下に示
す。まず、ストアスルー方式では、キヤツシユメ
モリと主メモリが常に一致している事から、1つ
のプロセツサからの主メモリへの書込みは、他の
全てのプロセツサに報告される。各プロセツサ
は、共有バス上のトランザクシヨンをモニタし、
主メモリへの書込みを検出すると、そのアドレス
に対応するデータが、ローカルキヤツシユ内に存
在するかどうかをチエツクする。対応するデータ
が存在すれば、それを含むブロツクを無効化す
る。一方、ストアスワツプ方式におけるキヤツシ
ユメモリの一致保証プロトコルは、ストアスルー
方式に比較すると複雑になる。種々の一致保証プ
ロトコルが提案されているが、ここではその一例
を示す。 キヤツシユメモリ内のブロツクには、以下の3
状態がありうる。すなわち (1) Shared…主メモリの内容と一致しており且
つ、複数のキヤツシユメモリに共有されてい
る。 (2) Exclusive…主メモリの内容と一致しており
且つ、唯一のキヤツシユメモリ内に存在する。 (3) Owned…主メモリの内容と一致しておらず
且つ、唯一のキヤツシユメモリ内に存在する。 次に、演算ユニツトが各状態のブロツクにアク
セスする場合の処理を簡単に述べる。 (i) リードヒツト ブロツクの状態に関わらず、データを読出す。 () リードミスヒツト 共有メモリにブロツク転送を要求する。この
時、他のキヤツシユメモリに転送中のブロツクが
存在するかどうか検査し、存在すればSharedブ
ロツクとして、又、存在しなければExclusiveブ
ロツクとして、自キヤツシユメモリ内に書込む。
その後、中断していたリードアクセスを再開す
る。 (iii) ライトヒツト Sharedブロツクに対する書込みでは、当該キ
ヤツシユメモリに書込むとともに、他のキヤツシ
ユメモリに共有バスを通じてデータの変更を報告
する。その後、ブロツクの状態はOwnedとなる。
又、Exclusive,Ownedブロツクに対する書込み
では、他のキヤツシユメモリに報告する義務はな
い。 (iv) ライトミスヒツト 共有メモリにブロツク転送を要求する。この時
間のキヤツシユメモリに転送中のブロツクが存在
するかどうか検査し、存在すればSharedブロツ
クとして、又、存在しなければExclusiveブロツ
クとして、自キヤツシユメモリ内に書込む。その
後、中断していたライトアクセスを再開する。 以上のストアスワツプ方式における一致保証プ
ロトコルでは、各演算ユニツトは共有バス上のト
ランザクシヨンをチエツクするモニタを有してい
て、以下のような処理を行う。 (i) 共有バス上にブロツク転送トランザクシヨン
を検出した場合。 対応するブロツクが自キヤツシユメモリ内に
存在し、且つブロツクの状態がOwnedであつ
た場合、共有バス上のブロツク転送要求をアボ
ートし、自キヤツシユ内のOwnedブロツクを
共有メモリへライトバツクして当該ブロツクを
Exclusiveとする。その後中断されていたブロ
ツク転送要求が再開される。又、対応するブロ
ツクの状態がSharedあるいはExclusiveであつ
た場合、共有バスを通じて、該当ブロツクが自
キヤツシユメモリ内に存在することを報告す
る。その後ブロツクの状態はSharedとなる。 (ii) 共有バス上にデータ変更報告を検出した場
合。 対応するブロツクが自キヤツシユメモリ内に
存在すれば、そのブロツクを無効化する。 以下のプロトコルにより、ストアスワツプ方式
を採用した場合のキヤツシユメモリの一致が保証
できる。このキヤツシユメモリ一致保証は、マル
チプロセツサシステムに限らず、ユニプロセツサ
システムに於いても必要である。すなわち、物理
バス上に演算ユニツトとI/Oプロセツサが接続
される場合には、演算ユニツトの有するキヤツシ
ユメモリに関して一致保証が必要となる。 〔発明が解決しようとする問題点〕 以上、マルチプロセツサシステムに適する構成
としては、論理キヤツシユメモリで且つ、物理共
有バスが有効であることを述べ、又、分散キヤツ
シユメモリの一致保証について述べた。しかしな
がら、上記従来技術に於いてはいくつかの問題点
がある。 まず、単一のプロセツサの場合でも発生する問
題点を示す。多重仮想記憶方式を採用する計算機
システムに於いては、各プロセス毎に0番地から
始まる論理アドレス空間が割当てられるため、同
一の論理アドレスが異なる物理データを参照する
場合がある。このため、従来の論理キヤツシユ方
式では、実行中のプロセスが他のプロセスの同一
論理アドレスのデータをアクセスしないように、
プロセススイツチの度に、論理キヤツシユ内容を
全てパージする処理を行つていた。このため、タ
スクスイツチが頻繁に発生すると、キヤツシユメ
モリの効果が減少するという問題があつた。更に
は、ストアスワツプ方式のキヤツシユメモリを採
用した場合には、キヤツシユメモリのパージ処理
に先立つて、変更されたデータを含むブロツクを
全て主メモリにコピーバツクする必要があつた。
この問題は、特開昭60−97446に示される様に、
論理キヤツシユメモリの比較アドレスに、プロセ
ス識別子を含める事によつて解決できる。すなわ
ち、論理キヤツシユメモリを検索する時に、論理
アドレスだけでなくプロセツサ識別子も含めて比
較を行なう方法である。本方式によれば、タスク
スイツチ毎にキヤツシユメモリの内容をパージす
る必要はなくなる。 ところが、本方式を採用した場合、新たな問題
が発生する。すなわち、“Address Synonym”
の問題である。これは、各プロセスがデータを共
有する場合に起こり得る。プロセス間でデータを
共有する場合には、各プロセスのページテーブル
の管理のもとに、異なる論理アドレスページが、
共有の物理アドレスページにマツピングされる。
このため、論理アドレスで検索されるキヤツシユ
メモリ内には、異なるエントリー位置に、同一の
データが存在し得る。このような状況において、
あるプロセスが共有データを変更した場合、他の
プロセスの共有データは変更されないままキヤツ
シユメモリ内に残つてしまい、他のプロセスが共
有データをアクセスすると、変更される前の誤つ
たデータがキヤツシユメモリから供給される事に
なる。従来この“Address Synonym”の問題に
対処する手段としては、文献コンピユーテイング
サーベイ(Computing Surveys)Vol.14,No.3,
September 1982のpp510−511に論じられてい
る。これは、物理アドレスページを論理アドレス
ページに逆変換するテーブルを有する方法であ
る。逆変換テーブルは、論理キヤツシユ内に存在
するデータの物理アドレスページに対して、それ
にマツピングされている全ての論理アドレスペー
ジを保持するテーブルである。この方式に於いて
は、あるプロセスが共有データを変更した場合、
その論理アドレスはTLBによつて物理アドレス
に変換された後、その物理アドレスによつて逆変
換テーブルがアクセスされる。その結果、他のプ
ロセスの共有データが論理キヤツシユ内に存在し
ていれば、そのデータに対して更新、あるいは無
効化が行なわれる。しかしこの従来技術では、物
理アドレスを論理アドレスに逆変換するテーブル
が必要となり、ハード量が増加し、また逆変換テ
ーブルの管理が複雑になる等の問題があつた。 又、他の解決手段は、特開昭61−246850に論じ
られている。これは、論理キヤツシユメモリに格
納されるアドレス情報として、論理アドレス情報
を記憶する第1のデイレクトリと、実アドレス情
報及び、論理アドレス情報の一部を記憶する第2
のデイレクトリを持つ。論理アドレス情報と、実
アドレス情報は、各デイレクトリの異なるカラム
アドレスに登録され、両者の関係は、第2のデイ
レクトリに記憶されるリンク情報に基づいて決定
される。該方式(以下リンクビツト方式と呼ぶ)
を、第10図を用いて、簡単に説明する。90
1,902は、それぞれ、論理アドレス,物理ア
ドレスがセツトされるレジスタであり、アドレス
変換ユニツト900は、論理アドレスのbit0−19
を、物理アドレスのbit0−19に変換する。キヤツ
シユメモリは、論理アドレス情報を記憶する論理
デイレクトリ903と、データを記憶するデータ
部904、及び、物理アドレス情報を記憶する物
理デイレクトリ905から成る。論理デイレクト
リ903には、データ部904に格納されるデー
タに対応した論理アドレスのタグ部(bit0−17)
910(LAR)と、有効ビツト911(V)が登録
される。この例では、論理デイレクトリ903,
データ部904は、論理アドレス901のbit18
−31をカラムアドレスとする。一方、物理デイレ
クトリ905には、データに対応した物理アドレ
スのタグ部(bit0−17)912(PAR)と、有
効ビツト914(V)及び、該物理アドレスタグに対
応する論理アドレスタグが登録されている論理デ
イレクトリのカラムアドレス913(以下、リン
クビツトLNKと称す)が登録される。この例で
は、物理デイレクトリ905は、物理アドレス9
02のbit18−31をカラムアドレスとする。従つ
て、論理アドレスタグ910と、これに対応する
物理アドレスタグ912は、各デイレクトリの同
一カラムに登録されるとは限らない。該リンクビ
ツト方式を採ることにより、“Address
Synonym”の問題は、以下の様にして解決され
る。すなわち、プロセス間で共有されるデータが
キヤツシユ内に存在し、一方の論理アドレスに対
してプロセツサから書込要求が発生した場合、ま
ず、論理デイレクトリ903がアクセスされ、該
当するエントリにデータが書込まれる。更に、論
理アドレス901は、アドレス変換ユニツト90
0により、物理アドレス902に変換される。次
に物理アドレス902により物理デイレクトリ9
05をアクセスし、ヒツトしたカラムのリンク情
報913より、該物理アドレスに対応するデータ
部904のカラムアドレスが生成され、該当カラ
ムに対して、書込みあるいは無効化が行なわれ
る。以上の動作により共有データの一致が保証さ
れる。このリンクビツト方式については、特開昭
53−25457にも論じられている。 しかし、この従来技術では、複数のプロセスに
よつてデータが共有される場合、物理デイレクト
リの1つのエントリに複数のリンク情報が必要と
なり、管理が複雑になる等の問題があつた。 次にマルチプロセツサシステムの場合に生じる
問題点を示す。それは分散されたキヤツシユメモ
リの一致を保証するために、物理アドレスを論理
アドレスに変換する機能が必要となる事である。
前述した様に、分散キヤツシユメモリの一致を保
証するためには、各プロセツサ毎に共有バスをモ
ニタする機能が必要となる。モニタの機能は既に
説明したが、バス上のトランザクシヨンを検出し
て自キヤツシユメモリ内を検索し、該当ブロツク
が存在すればそれを無効化したり、あるいは共有
バス上のトランザクシヨンをアボートして、コピ
ーバツクの処理を実施しなければならない。とこ
ろが、論理キヤツシユで物理共有バスの構成で
は、共有バス上のトランザクシヨンは物理アドレ
スで行なわれるため、モニターは共有バス上のア
ドレスを取り込み、一旦論理アドレスに変換した
後、論理キヤツシユを検索しなければならない。
このため、物理アドレスを論理アドレスに変換す
るための逆変換テーブルが必要となり、ハード量
の増加及び逆変換テーブルの管理が複雑になる等
の問題があつた。 一方、前述のリンクビツト方式を採用すれば、
逆変換テーブルは不要となる。すなわち、第10
図において、共有バス上の物理アドレスが、モニ
タによつて、物理アドレスレジスタ902に取り
込まれる。次に、該物理アドレスによつて、物理
デイレクトリ905がアクセスされ、該当するエ
ントリが存在すれば、リンク情報913から、対
応するデータ及び論理デイレクトリのカラムアド
レスが生成され、無効化が行なわれる。しかし、
前述した様に、複数のプロセスがデータを共有す
る場合は、複数のリンク情報が必要となり、管理
が複雑になる問題があつた。 本発明の目的は、大容量のキヤツシユメモリに
おける“Address Synonym”の問題と、複数の
プロセツサに分散された論理キヤツシユメモリの
一致保証とをキヤツシユメモリの連想数を増やす
ことなく可能とした論理キヤツシユメモリを有す
るマルチプロセツサシステムの提供とその論理キ
ヤツシユメモリのアクセス方法を提供することに
ある。 〔問題点を解決するための手段〕 上記目的を達成するため、本発明では、マルチ
プロセツサシステムにおけるキヤツシユメモリの
タグ部を、キヤツシユに保持されるデータに対応
する論理アドレスタグから成る論理デイレクトリ
と、該データに対応する物理アドレスタグから成
る物理デイレクトリによつて構成し、対応する論
理アドレスタグと物理アドレスタグを同一のエン
トリーに登録するようにした。更に、物理デイレ
クトリはマルチポートメモリとし、同時に複数の
データを読み出すことを可能とする。また、タグ
の一致を検出する比較器として、論理アドレス用
比較器と、複数の物理アドレス用比較器とを設け
る。そして、プロセツサからの論理アドレスによ
るアクセスでは、アドレス変換に依存する部分も
含むカラムアドレスにより、論理デイレクトリを
アクセスし、対応するデータの有無を検出する。
一方、バスモニタからの物理アドレスによるアク
セスでは、物理アドレスのアドレス変換に依存し
ない部分をカラムアドレスとして、物理デイレク
トリから複数の情報を読み出し、その読み出し出
力である物理アドレスタグとアクセスアドレスで
ある物理アドレスの上位部であるタグ部を比較
し、対応するデータの有無を検出する。これによ
りプロセツサに対しては、論理キヤツシユメモリ
として働き、物理共有バスのモニタに対しては、
物理キヤツシユメモリとして動作する。 本構成では、アドレス変換に依存する部分をキ
ヤツシユのインデツクスアドレスとして使用可能
であり、キヤツシユ容量が増大しても連想数は増
大しない。大容量のキヤツシユメモリに有効な構
成である。 〔作用〕 キヤツシユメモリの作用を、ストアスワツプ方
式の場合について説明する。異なる論理アドレス
ページが同一の物理アドレスページを共有し、か
つ両ブロツクがキヤツシユメモリ内に存在してい
る状況について考える。この場合、両ブロツクの
状態はSharedとなつている。演算ユニツトから
一方のブロツクに対して書込みが発生すると、該
当ブロツクに書込まれるとともに、ブロツクの状
態はOwnedとなる。更にSharedデータに対する
書込であるため、本アクセスの論理アドレスは
TLBによつて物理アドレスに変換された後、共
有バス上に出力されて、無効化要求が発効され
る。バスモニタは、この無効化要求を検出し、取
り込んだ、物理アドレスによつてキヤツシユメモ
リを検索し、書込みの対象とならなかつたブロツ
ク(状態がSharedのまま)を物理アドレスタグ
の比較器により検出し、これを無効化する。以上
の機能によつて、物理アドレスを論理アドレスに
変換する逆変換テーブル無しで“Address
Synonym”の問題を解決する事が可能となる。 また、同じストアスワツプ方式を用いたマルチ
プロセツサシステムの場合、共有バスモニタが共
有バス上の無効化要求を検出すると、その物理ア
ドレスを取り込み、物理アドレスでキヤツシユメ
モリをアクセスする。この時、物理アドレスタグ
の比較器による比較の結果一致するブロツクが存
在すればこれを無効化する。又、共有バス上のブ
ロツク転送要求を検出すると、その物理アドレス
を取り込む。そして物理アドレスでキヤツシユメ
モリを検索し、一致するブロツクが検出され、か
つ、ブロツクの状態がOwnedであれば、共有バ
ス上のブロツク転送要求をアボートし、該当する
ブロツクを主メモリにコピーバツクする。又、一
致するブロツクが検出され、かつそのブロツクの
状態が、Exclusive又はSharedであれば、ヒツト
した事を共有バスを通じて報告する。以上の機能
により、逆変換テーブル無しで、分散キヤツシユ
メモリの一致を保証することが可能となる。 〔実施例〕 以下、本発明の第1の実施例を図面を用いて詳
細に説明する。第2図は本発明が適用されるデー
タ処理装置の一例を示している。同図において共
有バス300は接続された演算ユニツト100,
200,300は主メモリ401を共有してお
り、メモリ制御装置400は、主メモリ401の
アクセス制御及び複数の演算ユニツトに対しての
データの供給を行う。フアイルコントロールプロ
セツサ500は固定デイスク501内に蓄積され
た任意のフアイルを、高速に主メモリ401へ転
送する。入出力プロセツサ600は外部の入出力
装置とのデータ転送を行なう。共有バス300は
バスコントローラ700によつて管理される。 演算ユニツト100(他も同様)の内部の命令
フエツチユニツト(I)101は、プログラムの
実行に必要な命令を主メモリ401からフエツチ
する機能を持つ。フエツチされた命令は、命令実
行ユニツト(E)102に転送される。命令実行
ユニツト102では、命令の意味を解釈し、必要
なデータをフエツチした後、演算を実行する。命
令用キヤツシユメモリ103は、主メモリ401
内の命令をコピーして、高速なバツフアメモリに
蓄えている。命令フエツチユニツト101が論理
アドレスで命令キヤツシユ103にアクセスした
場合、要求する命令が命令キヤツシユ内に存在す
れば、短時間で要求命令がフエツチされる。又、
データ用キヤツシユメモリ104は、主メモリ4
01内のデータをコピーして、高速なバツフアメ
モリに蓄えている。命令実行ユニツト102が論
理アドレスでデータキヤツシユ104をアクセス
した場合、要求データがデータキヤツシユ104
内に存在すれば、短時間でデータがフエツチされ
る。命令キヤツシユ103あるいはデータキヤツ
シユ104に要求される命令あるいは、データが
存在しない場合、論理アドレスはアドレス変換装
置105に転送される。アドレス変換装置105
は、論理アドレスを物理アドレスに変換した後、
共有バス300を通して、メモリ制御装置400
にデータ転送を要求する。主メモリ401から転
送されて来たデータは、一旦命令キヤツシユ10
3あるいは、データキヤツシユ104に書込まれ
た後、命令ユニツト101あるいは命令実行ユニ
ツト102に供される。 次に、第3図を用いて共有バス300の構成を
説明する。共有バス300は、各演算ユニツトに
よつて共有されるバスとしてのハンドシエイク制
御バス303,アクセスバス301及びデータバ
ス302を有する。本実施例では、アドレスバス
301を29ビツト、データバス302を64ビツト
とする。又、各演算ユニツトによるバスの競合を
避けるために、各演算ユニツトからバスコントロ
ーラ700に対してバス占有要求線305が設け
られ、バスコントローラ700からは、各演算ユ
ニツトに対してバス使用許可線304が個別に設
けられる。又、第4図に示す様に、共有バス30
0にはスプリツト方式が採用されている。すなわ
ち、ある演算ユニツトがAブロツクの転送要求を
発効し、主メモリ制御装置400からAブロツク
のデータが転送されて来るまでの空き時間を、他
の演算ユニツトが使用可能となつている。このス
プリツト方式を実現するため、主メモリ制御装置
400においても、バス占有要求線305とバス
使用許可線304が設けられている。このように
演算ユニツト及び主メモリ制御装置からのバス占
有要求線は、バスコントローラ700に接続さ
れ、バスコントローラ700は、優先順位に従つ
て、各ユニツトにバス使用許可信号を発行する。 次に表1を用いて、バス占有要求線305およ
びバス使用許可線304の具体的な信号名と、そ
の意味について説明する。バス占有要求線305
としては、BUSREQ信号とCPYBKREQ信号が
ある。
【表】
(1) BUSREQ信号
各演算ユニツトのキヤツシユコントローラ、あ
るいは主メモリ制御装置からのバス占有要求であ
り、個別の信号線として、バスコントローラに接
続される。本信号が発効される条件としては、演
算ユニツトにおいてキヤツシユメモリのミスヒツ
トに伴うブロツク転送要求を行なう場合、あるい
はキヤツシユミスヒツトで且つリプレースすべき
ブロツクがOwned状態の時に必要となるコピー
バツク要求を行なう場合、あるいはShared状態
のブロツクに書込みを行つた時に必要となるデー
タ変更報告(以下ブロードキヤストと称す)を行
なう場合がある。又、主メモリ制御装置に於いて
は、要求されたブロツクを要求元に転送する場合
に、本信号が発効される。 (2) CPYBKREQ信号 各演算ユニツトの共有バスモニタからのバス占
有要求であり、バス構成でバスコントローラに接
続される。本信号が発効される条件としては、演
算ユニツトにおいて、バスモニタが共有バス上の
ブロツク転送要求を検出して自キヤツシユメモリ
内を検索した結果、該当ブロツクが存在し且つそ
のブロツクの状態がOwnedであつた場合に発効
される。本信号は、BUSREQ信号よりも優先度
が高く、バスの使用が許可されると、該当ブロツ
クを主メモリにコピーバツクする。 次に、バス使用許可信号としては、
BUSACK,CPYBKACK,BUSBSYがある。 (3) BUSACK バスコントローラからの、各演算ユニツトのキ
ヤツシユコントローラ及び主メモリ制御装置に対
するバス使用許可信号であり、各ユニツトに対し
て個別に接続される。本信号が発効される条件と
しては、共有バスが使用されておらず、且つ、
BUSREQ要求があれば、最も優先度の高いユニ
ツトに対して発効される。 (4) CPYBKACK バスコントローラからの、各演算ユニツトのバ
スモニタに対するバス使用許可信号であり、各モ
ニタに対してバス構成で接続される。本信号が発
効される条件としては、共有バスが使用されてお
らず、且つCPYBKREQ要求があれば発効され
る。 (5) BUSBSY 各演算ユニツトのキヤツシユコントローラ,バ
スモニタ、及び主メモリ制御装置からのバス使用
中を示す信号であり、バス構成でバスコントロー
ラに接続される。本信号が発効される条件として
は、各ユニツトが共有バスを使用中である場合に
発効される。更に、主メモリ制御装置において、
ブロツク転送要求、あるいはコピーバツク要求を
受付けるバツフアが詰つている場合にも発効され
る。本信号が発効されている間は、BUSACK信
号、及びCPYBKACK信号などのバス使用許可
信号は発効されない。 次に、表2を用いて、ハンドシエイク制御バス
の具体的な信号名と、その意味を説明する。
るいは主メモリ制御装置からのバス占有要求であ
り、個別の信号線として、バスコントローラに接
続される。本信号が発効される条件としては、演
算ユニツトにおいてキヤツシユメモリのミスヒツ
トに伴うブロツク転送要求を行なう場合、あるい
はキヤツシユミスヒツトで且つリプレースすべき
ブロツクがOwned状態の時に必要となるコピー
バツク要求を行なう場合、あるいはShared状態
のブロツクに書込みを行つた時に必要となるデー
タ変更報告(以下ブロードキヤストと称す)を行
なう場合がある。又、主メモリ制御装置に於いて
は、要求されたブロツクを要求元に転送する場合
に、本信号が発効される。 (2) CPYBKREQ信号 各演算ユニツトの共有バスモニタからのバス占
有要求であり、バス構成でバスコントローラに接
続される。本信号が発効される条件としては、演
算ユニツトにおいて、バスモニタが共有バス上の
ブロツク転送要求を検出して自キヤツシユメモリ
内を検索した結果、該当ブロツクが存在し且つそ
のブロツクの状態がOwnedであつた場合に発効
される。本信号は、BUSREQ信号よりも優先度
が高く、バスの使用が許可されると、該当ブロツ
クを主メモリにコピーバツクする。 次に、バス使用許可信号としては、
BUSACK,CPYBKACK,BUSBSYがある。 (3) BUSACK バスコントローラからの、各演算ユニツトのキ
ヤツシユコントローラ及び主メモリ制御装置に対
するバス使用許可信号であり、各ユニツトに対し
て個別に接続される。本信号が発効される条件と
しては、共有バスが使用されておらず、且つ、
BUSREQ要求があれば、最も優先度の高いユニ
ツトに対して発効される。 (4) CPYBKACK バスコントローラからの、各演算ユニツトのバ
スモニタに対するバス使用許可信号であり、各モ
ニタに対してバス構成で接続される。本信号が発
効される条件としては、共有バスが使用されてお
らず、且つCPYBKREQ要求があれば発効され
る。 (5) BUSBSY 各演算ユニツトのキヤツシユコントローラ,バ
スモニタ、及び主メモリ制御装置からのバス使用
中を示す信号であり、バス構成でバスコントロー
ラに接続される。本信号が発効される条件として
は、各ユニツトが共有バスを使用中である場合に
発効される。更に、主メモリ制御装置において、
ブロツク転送要求、あるいはコピーバツク要求を
受付けるバツフアが詰つている場合にも発効され
る。本信号が発効されている間は、BUSACK信
号、及びCPYBKACK信号などのバス使用許可
信号は発効されない。 次に、表2を用いて、ハンドシエイク制御バス
の具体的な信号名と、その意味を説明する。
【表】
以上の実施例から明らかなように、多重仮想記
憶方式を採用し、且つ論理アドレスで検索される
キヤツシユメモリを有し、また物理アドレスの共
有バス構成を採る単一プロセツサシステムにおい
て、異なる論理アドレスが同一の物理データを共
有する場合に問題となる“Address Synonym”
の問題に関し、物理アドレスを論理アドレスに変
換する逆変換テーブルを設けることなく解決で
き、又、物理アドレスタグと論理アドレスタグを
関連づけるリンク情報の管理を行なうことなく解
決できる。更に、多重仮想記憶方式を採用し、各
プロセツサごとに論理アドレスで検索されるキヤ
ツシユメモリを有し、且つ物理アドレスの共有バ
ス構成を採るマルチプロセツサシステムにおい
て、キヤツシユメモリの一致保証を、逆変換テー
ブルを設けることなく実現でき、又、リンク情報
の管理を行なうことなく実現できることから、ハ
ード量を削減と、逆変換テーブル、あるいは、リ
ンク情報を管理するための複雑さを解消できる効
果がある。
憶方式を採用し、且つ論理アドレスで検索される
キヤツシユメモリを有し、また物理アドレスの共
有バス構成を採る単一プロセツサシステムにおい
て、異なる論理アドレスが同一の物理データを共
有する場合に問題となる“Address Synonym”
の問題に関し、物理アドレスを論理アドレスに変
換する逆変換テーブルを設けることなく解決で
き、又、物理アドレスタグと論理アドレスタグを
関連づけるリンク情報の管理を行なうことなく解
決できる。更に、多重仮想記憶方式を採用し、各
プロセツサごとに論理アドレスで検索されるキヤ
ツシユメモリを有し、且つ物理アドレスの共有バ
ス構成を採るマルチプロセツサシステムにおい
て、キヤツシユメモリの一致保証を、逆変換テー
ブルを設けることなく実現でき、又、リンク情報
の管理を行なうことなく実現できることから、ハ
ード量を削減と、逆変換テーブル、あるいは、リ
ンク情報を管理するための複雑さを解消できる効
果がある。
第1図は本発明の第1の実施例を示す図、第2
図はマルチプロセツサシステムの全体構成を示す
図、第3図は共有バスの構成を示す図、第4図は
共有バスのスプリツト方式の説明図、第5図はブ
ロードキヤストのバスオペレーシヨンを示すタイ
ムチヤート、第6図はブロツク転送起動のバスオ
ペレーシヨンを示すタイムチヤート、第7図はブ
ロツク転送起動をアボートするバスオペレーシヨ
ンを示すタイムチヤート、第8図はブロツク転送
のバスオペレーシヨンを示すタイムチヤート、第
9図はコピーバツクのバスオペレーシヨンを示す
タイムチヤートである。第10図は、リンクビツ
ト方式を採るキヤツシユメモリ構成図、第11図
は、本発明の第2の実施例を示す図、第12図
は、リードアクセス時の処理を示すフローチヤー
ト、第13図は、ライトアクセス時の処理を示す
フローチヤート、第14図は、ブロードキヤスト
検出時の処理を示すフローチヤート、第15図
は、ブロツク転送起動検出時の処理を示すフロー
チヤートである。 800……論理アドレスレジスタ、810……
物理アドレスレジスタ、830……識別子レジス
タ、850……論理アドレスタグ部、860……
物理アドレスタグ部、861……ステータス部、
870……データ部、880〜882……比較
器、891……セレクタ、900……データキヤ
ツシユコントローラ、910……バスモニタ。
図はマルチプロセツサシステムの全体構成を示す
図、第3図は共有バスの構成を示す図、第4図は
共有バスのスプリツト方式の説明図、第5図はブ
ロードキヤストのバスオペレーシヨンを示すタイ
ムチヤート、第6図はブロツク転送起動のバスオ
ペレーシヨンを示すタイムチヤート、第7図はブ
ロツク転送起動をアボートするバスオペレーシヨ
ンを示すタイムチヤート、第8図はブロツク転送
のバスオペレーシヨンを示すタイムチヤート、第
9図はコピーバツクのバスオペレーシヨンを示す
タイムチヤートである。第10図は、リンクビツ
ト方式を採るキヤツシユメモリ構成図、第11図
は、本発明の第2の実施例を示す図、第12図
は、リードアクセス時の処理を示すフローチヤー
ト、第13図は、ライトアクセス時の処理を示す
フローチヤート、第14図は、ブロードキヤスト
検出時の処理を示すフローチヤート、第15図
は、ブロツク転送起動検出時の処理を示すフロー
チヤートである。 800……論理アドレスレジスタ、810……
物理アドレスレジスタ、830……識別子レジス
タ、850……論理アドレスタグ部、860……
物理アドレスタグ部、861……ステータス部、
870……データ部、880〜882……比較
器、891……セレクタ、900……データキヤ
ツシユコントローラ、910……バスモニタ。
Claims (1)
- 【特許請求の範囲】 1 共有バスを介して主メモリに接続された複数
のプロセツサと、前記主メモリのデータの一部を
格納し、前記複数のプロセツサの1つから論理ア
ドレスでアクセスされる論理キヤツシユメモリを
有するマルチプロセツサシステムにおいて、 前記論理キヤツシユメモリは、 前記主メモリのデータの一部を記憶するデータ
記憶手段と、 前記1つのプロセツサから受信した論理アドレ
スを前記主メモリの物理アドレスに変換するアド
レス変換手段と、 アクセスされるデータの論理アドレスであつ
て、論理タグ部を含みアドレス変換に依存する論
理アドレス上位部とアドレス変換に依存しない論
理アドレス下位部からなる論理アドレスを記憶す
る論理アドレス記憶手段と、 チエツクされるべきデータの物理アドレスであ
つて、物理タグ部を含みアドレス変換に依存する
物理アドレス上位部とアドレス変換に依存しない
物理アドレス下位部からなる物理アドレスを記憶
する物理アドレス記憶手段と、 前記データ記憶手段に記憶されたデータに対応
する論理アドレスの論理タグを保持し、前記論理
アドレス記憶手段から受信した論理タグ部以外の
論理アドレス上位部及び論理アドレス下位部によ
つて前記論理アドレスの論理タグが選択される第
1のテーブルと、 前記データ記憶手段に記憶されたデータに対応
する物理アドレスの物理タグを保持し、前記物理
アドレス記憶手段から受信した物理アドレス下位
部によつて前記物理アドレスの物理タグが選択さ
れるものであつて、並列にアクセスされる複数の
第2のテーブルと、 選択された前記第1のテーブル中の論理タグ
と、前記論理アドレス記憶手段中の論理タグ部を
比較することにより、アクセスされたデータが前
記データ記憶手段に記憶されているか否かを判定
する第1の判定手段と、 選択された前記各第2のテーブル中の物理タグ
と、前記物理アドレス記憶手段中の物理タグ部を
並列に比較することにより、チエツクされるべき
データが前記データ記憶手段に記憶されているか
否かを判定する第2の判定手段を、 有することを特徴とするマルチプロセツサシステ
ム。 2 特許請求の範囲第1項において、 前記第1のテーブルは、格納されたデータの属
するプロセスの識別子を保持しており、 前記第1の判定手段は、前記プロセツサから識
別子及び論理アドレスによるアクセスが行なわれ
た場合、選択された前記第1のテーブル中の論理
タグと、前記論理アドレス記憶手段中の論理タグ
部を比較し、且つ、前記第1のテーブル中のプロ
セスの識別子と、前記プロセツサからアクセスの
された識別子を比較することにより、アクセスさ
れたデータが前記データ記憶手段に記憶されてい
るか否かを判定することを特徴とするマルチプロ
セツサシステム。 3 特許請求の範囲第1項において、 前記第2の判定手段は、前記第2のテーブルか
ら並列に選択された複数の物理タグと前記物理ア
ドレス記憶手段中の物理タグ部を比較する複数の
比較器と、前記複数の比較器の出力を数ビツトの
信号に変換するエンコーダを有し、前記エンコー
ダの出力は前記物理アドレス記憶手段に記憶され
たアドレス変換に依存しない物理アドレス下位部
にマージされデータの読み出しアドレスとなるこ
とを特徴とするマルチプロセツサシステム。 4 特許請求の範囲第3項において、 前記エンコーダからの変換出力は、前記物理ア
ドレス記憶手段に記憶されたアドレス変換に依存
しない物理アドレス下位部にマージされ、前記第
1のテーブルの論理タグの選択に用いられること
を特徴とするマルチプロセツサシステム。 5 共有バスを介して主メモリに接続された複数
のプロセツサと、前記主メモリのデータの一部を
格納し、前記複数のプロセツサの1つから論理ア
ドレスでアクセスされる論理キヤツシユメモリを
有するマルチプロセツサシステムであつて、 論理タグ部を含みアドレス変換に依存する論理
アドレス上位部とアドレス変換に依存しない論理
アドレス下位部からなる論理アドレスによるアク
セスが行なわれると、 そのアクセスアドレスの前記論理タグ部以外の
論理アドレス上位部と論理アドレス下位部によ
り、格納されたデータに対応する論理アドレスの
論理タグを保持する第1のテーブルから対応する
論理アドレスの論理タグを選択し、 この選択した論理タグと、前記アクセスアドレ
スである論理アドレスの論理タグ部を比較し、 この比較結果に基づいて前記アクセスアドレス
に対応するデータの有無を判定し、 かつ、物理タグ部を含みアドレス変換に依存す
る物理アドレス上位部とアドレス変換に依存しな
い物理アドレス下位部からなる物理アドレスによ
るアクセスが行なわれると、 そのアクセスアドレスの前記物理アドレス下位
部により、格納されたデータに対応する物理アド
レスの物理タグを保持し並列にアクセスされる複
数の第2のテーブルから対応する物理アドレスの
物理タグを選択し、 この選択した物理タグと前記アクセスアドレス
である物理アドレスの物理タグ部を並列に比較
し、 この比較結果に基づいて前記アクセスアドレス
に対応するデータの有無を判定することを特徴と
するマルチプロセツサシステムにおける論理キヤ
ツシユメモリのアクセス方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62307551A JPH0221342A (ja) | 1987-02-27 | 1987-12-07 | マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 |
| US08/440,692 US5623626A (en) | 1987-02-27 | 1995-05-15 | Logical cache memory for multi-processor system |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62-42962 | 1987-02-27 | ||
| JP4296287 | 1987-02-27 | ||
| JP62307551A JPH0221342A (ja) | 1987-02-27 | 1987-12-07 | マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0221342A JPH0221342A (ja) | 1990-01-24 |
| JPH0551937B2 true JPH0551937B2 (ja) | 1993-08-04 |
Family
ID=12650657
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62307551A Granted JPH0221342A (ja) | 1987-02-27 | 1987-12-07 | マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5623626A (ja) |
| JP (1) | JPH0221342A (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4220728C2 (de) * | 1991-06-25 | 1997-09-04 | Aisin Takaoka Ltd | Innenbelüftete Scheibenbremse |
| US6446164B1 (en) * | 1991-06-27 | 2002-09-03 | Integrated Device Technology, Inc. | Test mode accessing of an internal cache memory |
| JPH07287668A (ja) * | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
| SE515718C2 (sv) * | 1994-10-17 | 2001-10-01 | Ericsson Telefon Ab L M | System och förfarande för behandling av minnesdata samt kommunikationssystem |
| KR100230454B1 (ko) | 1997-05-28 | 1999-11-15 | 윤종용 | 다중처리 시스템의 캐시메모리 검사방법 |
| KR100231707B1 (ko) * | 1997-08-04 | 2000-01-15 | 정선종 | 통신 장비의 디엠에이 처리 방법 및 그 장치 |
| US6298411B1 (en) | 1999-01-05 | 2001-10-02 | Compaq Computer Corporation | Method and apparatus to share instruction images in a virtual cache |
| US6598128B1 (en) * | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
| US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
| US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US7509391B1 (en) * | 1999-11-23 | 2009-03-24 | Texas Instruments Incorporated | Unified memory management system for multi processor heterogeneous architecture |
Family Cites Families (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3761881A (en) * | 1971-06-30 | 1973-09-25 | Ibm | Translation storage scheme for virtual memory system |
| JPS5072542A (ja) * | 1973-10-30 | 1975-06-16 | ||
| JPS5325457A (en) * | 1976-08-20 | 1978-03-09 | Nippon Steel Corp | Continuous flow rate measuring met hod |
| US4453230A (en) * | 1977-12-29 | 1984-06-05 | Tokyo Shibaura Electric Co., Ltd. | Address conversion system |
| US4467414A (en) * | 1980-08-22 | 1984-08-21 | Nippon Electric Co., Ltd. | Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories |
| JPS57117170A (en) * | 1981-01-10 | 1982-07-21 | Nec Corp | Processing system for buffer memory coincidence |
| JPS58501602A (ja) * | 1981-09-18 | 1983-09-22 | クリスチャン ロプシング エ−・エス | マルチプロセッサ・コンピュ−タシステム |
| JPS58150188A (ja) * | 1982-03-01 | 1983-09-06 | Nec Corp | 磁気バブル素子の製造方法 |
| US4633387A (en) * | 1983-02-25 | 1986-12-30 | International Business Machines Corporation | Load balancing in a multiunit system |
| US4602368A (en) * | 1983-04-15 | 1986-07-22 | Honeywell Information Systems Inc. | Dual validity bit arrays |
| US4727482A (en) * | 1983-08-30 | 1988-02-23 | Amdahl Corporation | Apparatus for enhancing searches of data tables |
| US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
| JPS6079446A (ja) * | 1983-10-06 | 1985-05-07 | Hitachi Ltd | 多重仮想記憶デ−タ処理装置 |
| US4622631B1 (en) * | 1983-12-30 | 1996-04-09 | Recognition Int Inc | Data processing system having a data coherence solution |
| US4740889A (en) * | 1984-06-26 | 1988-04-26 | Motorola, Inc. | Cache disable for a data processor |
| US4991081A (en) * | 1984-10-31 | 1991-02-05 | Texas Instruments Incorporated | Cache memory addressable by both physical and virtual addresses |
| JPS61246850A (ja) * | 1985-04-24 | 1986-11-04 | Hitachi Ltd | バツフア記憶制御方式 |
| US4763244A (en) * | 1986-01-15 | 1988-08-09 | Motorola, Inc. | Paged memory management unit capable of selectively supporting multiple address spaces |
| US4843542A (en) * | 1986-11-12 | 1989-06-27 | Xerox Corporation | Virtual memory cache for use in multi-processing systems |
| US4797817A (en) * | 1986-12-10 | 1989-01-10 | Ncr Corporation | Single cycle store operations in a virtual memory |
-
1987
- 1987-12-07 JP JP62307551A patent/JPH0221342A/ja active Granted
-
1995
- 1995-05-15 US US08/440,692 patent/US5623626A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US5623626A (en) | 1997-04-22 |
| JPH0221342A (ja) | 1990-01-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6631447B1 (en) | Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed | |
| US5058006A (en) | Method and apparatus for filtering invalidate requests | |
| US6038647A (en) | Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device | |
| US6105113A (en) | System and method for maintaining translation look-aside buffer (TLB) consistency | |
| US6263403B1 (en) | Method and apparatus for linking translation lookaside buffer purge operations to cache coherency transactions | |
| US6751720B2 (en) | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy | |
| JP3533355B2 (ja) | キャッシュ・メモリ・システム | |
| US5155824A (en) | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address | |
| US4394731A (en) | Cache storage line shareability control for a multiprocessor system | |
| US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
| EP0139407B1 (en) | Data select match | |
| JPH04227552A (ja) | ストアスルーキャッシュ管理システム | |
| JPH03142644A (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
| JPS6135584B2 (ja) | ||
| US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
| JPH0997214A (ja) | 補助プロセッサのためのアドレス変換を含む情報処理システム | |
| US5623626A (en) | Logical cache memory for multi-processor system | |
| KR102482516B1 (ko) | 메모리 어드레스 변환 | |
| US5479629A (en) | Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address | |
| EP0468804A2 (en) | Hierarchical memory control system | |
| JPH04230549A (ja) | 多重レベル・キャッシュ | |
| JPH0816474A (ja) | マルチプロセッサシステム | |
| GB2307319A (en) | Dual-directory virtual cache | |
| JPH055137B2 (ja) | ||
| JPH086852A (ja) | キャッシュ制御方法 |