JPH0221342A - マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 - Google Patents
マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法Info
- Publication number
- JPH0221342A JPH0221342A JP62307551A JP30755187A JPH0221342A JP H0221342 A JPH0221342 A JP H0221342A JP 62307551 A JP62307551 A JP 62307551A JP 30755187 A JP30755187 A JP 30755187A JP H0221342 A JPH0221342 A JP H0221342A
- Authority
- JP
- Japan
- Prior art keywords
- address
- logical
- data
- bus
- cache memory
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 268
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 86
- 238000013519 translation Methods 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 50
- 230000002411 adverse Effects 0.000 abstract 1
- 238000012546 transfer Methods 0.000 description 69
- 230000000694 effects Effects 0.000 description 21
- 230000004044 response Effects 0.000 description 14
- 230000004913 activation Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 7
- 239000003999 initiator Substances 0.000 description 4
- 238000003672 processing method Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 101000764357 Homo sapiens Protein Tob1 Proteins 0.000 description 1
- 102100026881 Protein Tob1 Human genes 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- ZPUCINDJVBIVPJ-LJISPDSOSA-N ***e Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、データ処理システムの論理キャッシュメモリ
に係り、特に多数の演算処理装置が1つの主記憶装置を
共有するマルチプロセッサシステムに好適な論理キャッ
シュメモリに関する。
に係り、特に多数の演算処理装置が1つの主記憶装置を
共有するマルチプロセッサシステムに好適な論理キャッ
シュメモリに関する。
最近の計算機システムでは、多数のユーザが、1つの計
算機を共用し、かつ1ユーザにおいても多数のプロセス
を同時実行させる形態が一般化している。この様な形態
に応じて、1つの演算ユニットが、多数のプロセスを時
分割に実行するシステムに代わって、多数の演算ユニッ
トが、1つの主記憶を共有し、各プロセス毎に演算ユニ
ットが割当てられるマルチプロセッサシステムが計算機
システムの主流となりつつある。
算機を共用し、かつ1ユーザにおいても多数のプロセス
を同時実行させる形態が一般化している。この様な形態
に応じて、1つの演算ユニットが、多数のプロセスを時
分割に実行するシステムに代わって、多数の演算ユニッ
トが、1つの主記憶を共有し、各プロセス毎に演算ユニ
ットが割当てられるマルチプロセッサシステムが計算機
システムの主流となりつつある。
この構成に基づくマルチプロセッサシステムでは、各演
算ユニットが共通のバスを用いてメモリアクセスを行な
うため、何らかの対策がないとバスの競合が発生し、各
演算ユニットが十分な性能を発揮できないという問題が
ある。この問題点は、各演算ユニット毎にローカルなキ
ャッシュメモリを設ける事によって解決されている。キ
ャッシュメモリは小容量のメモリであり、主メモリの内
容の一部を保持していて、そのアクセス時間は一般に主
メモリの5〜10分の1程度である。演算ユニットが要
求するデータがキャッシュメモリ内に存在すれば(これ
をキャツシュヒツトという)、短時間でメモリアクセス
が終了し、この場合は共有メモリへのアクセスは行われ
ない。又、キャッシュメモリ内に要求するデータが存在
しない場合(これをキャッシュミスヒラI−という)、
共有メモリからローカルなキャッシュメモリに、一定す
イズのブロックデータが転送され、要求元の演算ユニッ
トにデータが供給される。このようなキャッシュメモリ
を設けると、一般にメモリアクセスの局所性から、小容
量のキャッシュメモリでもかなり高いキャツシュヒツト
率が得られ、従ってほとんどのメモリアクセスが演算ユ
ニットとキャッシュメモリとの間で終了し、共有バスへ
のアクセスを大幅に削減する事が可能となる。即ち、多
数のプロセッサを共有バスに接続した場合でも、バスが
競合する頻度が小さく、プロセッサの台数効果を十分生
かすことが可能となる。
算ユニットが共通のバスを用いてメモリアクセスを行な
うため、何らかの対策がないとバスの競合が発生し、各
演算ユニットが十分な性能を発揮できないという問題が
ある。この問題点は、各演算ユニット毎にローカルなキ
ャッシュメモリを設ける事によって解決されている。キ
ャッシュメモリは小容量のメモリであり、主メモリの内
容の一部を保持していて、そのアクセス時間は一般に主
メモリの5〜10分の1程度である。演算ユニットが要
求するデータがキャッシュメモリ内に存在すれば(これ
をキャツシュヒツトという)、短時間でメモリアクセス
が終了し、この場合は共有メモリへのアクセスは行われ
ない。又、キャッシュメモリ内に要求するデータが存在
しない場合(これをキャッシュミスヒラI−という)、
共有メモリからローカルなキャッシュメモリに、一定す
イズのブロックデータが転送され、要求元の演算ユニッ
トにデータが供給される。このようなキャッシュメモリ
を設けると、一般にメモリアクセスの局所性から、小容
量のキャッシュメモリでもかなり高いキャツシュヒツト
率が得られ、従ってほとんどのメモリアクセスが演算ユ
ニットとキャッシュメモリとの間で終了し、共有バスへ
のアクセスを大幅に削減する事が可能となる。即ち、多
数のプロセッサを共有バスに接続した場合でも、バスが
競合する頻度が小さく、プロセッサの台数効果を十分生
かすことが可能となる。
又、マルチプロセッサシステムにおいて、多重仮想記憶
方式を実現することも重要な課題である。
方式を実現することも重要な課題である。
多重仮想記憶方式は、特開昭60−79446号に示さ
れているように、各プロセス毎にO番地から始まる論理
アドレス空間を割当てる方式である。論理アドレス空間
には、主メモリ上の物理的な位置を示す物理アドレス空
間よりも、大きなサイズが割当てられる。このため、各
プロセスの論理アドレス空間は、主メモリ上と2次記憶
上に割当てられ、必要なデータのみが主メモリ上に置か
れる。要求するデータが主メモリ上に存在しない場合、
主メモリ上のデータの一部が2次記憶上に掃き出され(
以下、スワップアウトと称す)、必要なデータが2次記
憶から主メモリ上にロードされる(以下スワップインと
称す)、この機構により、各プロセスは主メモリと2次
記憶を一つのアドレス空間としてアクセス可能となる。
れているように、各プロセス毎にO番地から始まる論理
アドレス空間を割当てる方式である。論理アドレス空間
には、主メモリ上の物理的な位置を示す物理アドレス空
間よりも、大きなサイズが割当てられる。このため、各
プロセスの論理アドレス空間は、主メモリ上と2次記憶
上に割当てられ、必要なデータのみが主メモリ上に置か
れる。要求するデータが主メモリ上に存在しない場合、
主メモリ上のデータの一部が2次記憶上に掃き出され(
以下、スワップアウトと称す)、必要なデータが2次記
憶から主メモリ上にロードされる(以下スワップインと
称す)、この機構により、各プロセスは主メモリと2次
記憶を一つのアドレス空間としてアクセス可能となる。
これを実現するために、論理アドレス空間と物理アドレ
ス空間は、ページと呼ばれる一部サイズのブロックデー
タとして管理され、主メモリと2次記憶間のスワップイ
ン、スワップアウトは、このページ単位で行なわれる。
ス空間は、ページと呼ばれる一部サイズのブロックデー
タとして管理され、主メモリと2次記憶間のスワップイ
ン、スワップアウトは、このページ単位で行なわれる。
論理アドレスページと、物理アドレスページの対応付け
は、ページテーブルにより管理される。演算ユニットが
メモリアクセスを行なう場合、その論理アドレスによっ
てページテーブルが検索され、物理アドレスに変換され
る。多重仮想記憶では、このページテーブルが各プロセ
ス毎に設けられ、プロセススイッチの場合は、参照され
るページテーブルもスイッチされる。これにより、各プ
ロセス毎に0番地からの論理アドレス空間を割当てる事
が可能となる。又、ページテーブルは主メモリ上に置か
れるため、メモリアクセスの度に、主メモリ上のページ
テーブルを参照した場合、メモリアクセスのオーバヘッ
ドが大きい。このため。
は、ページテーブルにより管理される。演算ユニットが
メモリアクセスを行なう場合、その論理アドレスによっ
てページテーブルが検索され、物理アドレスに変換され
る。多重仮想記憶では、このページテーブルが各プロセ
ス毎に設けられ、プロセススイッチの場合は、参照され
るページテーブルもスイッチされる。これにより、各プ
ロセス毎に0番地からの論理アドレス空間を割当てる事
が可能となる。又、ページテーブルは主メモリ上に置か
れるため、メモリアクセスの度に、主メモリ上のページ
テーブルを参照した場合、メモリアクセスのオーバヘッ
ドが大きい。このため。
最近変換された論理アドレスページと物理アドレスペー
ジの組は、T L B (Translation 1
ook −aside Buffer)と呼ばれるバッ
ファメモリに記゛録され、そしてTLBがヒツトすれば
、主メモリ上のページテーブルをアクセスすることなく
高速にアドレス変換を実現できる。
ジの組は、T L B (Translation 1
ook −aside Buffer)と呼ばれるバッ
ファメモリに記゛録され、そしてTLBがヒツトすれば
、主メモリ上のページテーブルをアクセスすることなく
高速にアドレス変換を実現できる。
以上でマルチプロセッサシステムの概要を述べた。次に
このようなシステムにおけるキャッシュメモリについて
説明する。キャッシュメモリのアクセス手段としては、
TLBでアドレス変換する前に論理アドレスでキャッシ
ュメモリをアクセスする論理キャッシュメモリと、TL
Bでアドレス変換した後、物理アドレスでキャッシュメ
モリをアクセスする物理キャッシュメモリの2方式があ
る。物理キャッシュメモリでは、メモリアクセス毎にT
LBによるアドレス変換が必要となり、これはメモリア
クセス時間の増大を招く、これに対し、論理キャッシュ
メモリでは、キャッシュメモリがヒツトしている限り、
TLBによるアドレス変換の必要はなく、キャッシュミ
スヒツトに伴う共有メモリからのブロック転送時にだけ
アドレス変換を行なえば良い、このため、メモリアクセ
ス時間を大幅に短縮する事が可能となる。更には。
このようなシステムにおけるキャッシュメモリについて
説明する。キャッシュメモリのアクセス手段としては、
TLBでアドレス変換する前に論理アドレスでキャッシ
ュメモリをアクセスする論理キャッシュメモリと、TL
Bでアドレス変換した後、物理アドレスでキャッシュメ
モリをアクセスする物理キャッシュメモリの2方式があ
る。物理キャッシュメモリでは、メモリアクセス毎にT
LBによるアドレス変換が必要となり、これはメモリア
クセス時間の増大を招く、これに対し、論理キャッシュ
メモリでは、キャッシュメモリがヒツトしている限り、
TLBによるアドレス変換の必要はなく、キャッシュミ
スヒツトに伴う共有メモリからのブロック転送時にだけ
アドレス変換を行なえば良い、このため、メモリアクセ
ス時間を大幅に短縮する事が可能となる。更には。
演算ユニットでは、メモリスループット向上のためキャ
ッシュメモリを命令用とデータ用に分割する場合が多い
、この構成に於いては、物理キャッシュメモリを採用し
た場合、命令用とデータ用にそれぞれTLBを設ける必
要がある。これに対し、論理キャッシュメモリでは、命
令用キャッシュとデータ用キャッシュでTLBを共有す
る事ができハード量の削減が可能となる。一方、論理キ
ャッシュメモリを採用した場合、多数のプロセッサによ
って共有されるバスを、論理アドレスバスとする構成(
以下、論理共有バスと称す)と、物理アドレスバスとす
る構成(以下、論理共有バスと称す)が考えられる。論
理共有バス構成では、アドレス変換装置は共有メモリ側
に設けられ、各演算ユニットにより共有される。一方、
物理共有バス構成では、アドレス変換装置は各演算ユニ
ツ1−毎に設けられる。このように論理共有バス構成で
は、TLBを共有できるためハード量を削減できる利点
がある。しかし、バスに接続されるプロセッサ台数が増
加した場合、ページテーブルの変更に伴うTLBへのア
クセスが集中し、これがシステムのボトルネックとなる
可能性がある。又、ページのスワップイン、スワツプア
ウトに伴うI10プロセッサからの主メモリアクセスは
、物理アドレスで行なわれる。このため、論理共有バス
構成では、I10プロセッサからの物理アドレスを論理
アドレスに変換するための変換テーブルが必要となる。
ッシュメモリを命令用とデータ用に分割する場合が多い
、この構成に於いては、物理キャッシュメモリを採用し
た場合、命令用とデータ用にそれぞれTLBを設ける必
要がある。これに対し、論理キャッシュメモリでは、命
令用キャッシュとデータ用キャッシュでTLBを共有す
る事ができハード量の削減が可能となる。一方、論理キ
ャッシュメモリを採用した場合、多数のプロセッサによ
って共有されるバスを、論理アドレスバスとする構成(
以下、論理共有バスと称す)と、物理アドレスバスとす
る構成(以下、論理共有バスと称す)が考えられる。論
理共有バス構成では、アドレス変換装置は共有メモリ側
に設けられ、各演算ユニットにより共有される。一方、
物理共有バス構成では、アドレス変換装置は各演算ユニ
ツ1−毎に設けられる。このように論理共有バス構成で
は、TLBを共有できるためハード量を削減できる利点
がある。しかし、バスに接続されるプロセッサ台数が増
加した場合、ページテーブルの変更に伴うTLBへのア
クセスが集中し、これがシステムのボトルネックとなる
可能性がある。又、ページのスワップイン、スワツプア
ウトに伴うI10プロセッサからの主メモリアクセスは
、物理アドレスで行なわれる。このため、論理共有バス
構成では、I10プロセッサからの物理アドレスを論理
アドレスに変換するための変換テーブルが必要となる。
以上に述べた理由により、マルチプロセッサシステムの
メモリシステムとしては、論理キャッシュメモリでかつ
物理共有バスの構成が適すると考えられている。
メモリシステムとしては、論理キャッシュメモリでかつ
物理共有バスの構成が適すると考えられている。
キャッシュメモリに関するもう1つの問題は、各キャッ
シュメモリ内容の一致保証である。即ち、各プロセッサ
毎にローカルなキャッシュメモリを有するマルチプロセ
ッサシステムにおいては分散されたキャッシュメモリに
関して、データの一致を保証することが重要な課題とな
る。例えば共有メモリ上のあるデータが、AとBの演算
ユニットのローカルキャッシュに共有されている場合を
考える。演算ユニットAが共有されているデータを更新
し、更新した事実を演算ユニットBのキャッシュメモリ
に報告しなかった場合、演算ユニットBがそのデータに
対してアクセスすると、自ユニット内のキャッシュメモ
リがヒツトし、更新される前の誤ったデータが読込まれ
る。この問題を解決するためには、各演算ユニットは、
データを更新した時にはこの事実を他の演算ユニット全
てに報告しなければならない6各演算ユニツトは共有バ
スをモニタする手段を有し、データ更新の報告を検出し
て、各キャッシュメモリの一致保証を管理する必要があ
る。
シュメモリ内容の一致保証である。即ち、各プロセッサ
毎にローカルなキャッシュメモリを有するマルチプロセ
ッサシステムにおいては分散されたキャッシュメモリに
関して、データの一致を保証することが重要な課題とな
る。例えば共有メモリ上のあるデータが、AとBの演算
ユニットのローカルキャッシュに共有されている場合を
考える。演算ユニットAが共有されているデータを更新
し、更新した事実を演算ユニットBのキャッシュメモリ
に報告しなかった場合、演算ユニットBがそのデータに
対してアクセスすると、自ユニット内のキャッシュメモ
リがヒツトし、更新される前の誤ったデータが読込まれ
る。この問題を解決するためには、各演算ユニットは、
データを更新した時にはこの事実を他の演算ユニット全
てに報告しなければならない6各演算ユニツトは共有バ
スをモニタする手段を有し、データ更新の報告を検出し
て、各キャッシュメモリの一致保証を管理する必要があ
る。
このキャッシュメモリ一致保証のプロトコルは、キャッ
シュメモリのライトアクセス処理方式によって異なる。
シュメモリのライトアクセス処理方式によって異なる。
キャッシュメモリのライトアクセス処理方式には、スト
アスル一方式とストアスワップ方式がある。ストアスル
一方式とは、演算ユニットからのライトアクセスが発生
する毎に、キャッシュメモリ及び主メモリの内容を更新
する方式である。このため、キャッシュメモリと主メモ
リの内容は常に一致している。一方、ストアスワップ方
式では、ライトアクセスがキャッシュメモリにヒツトす
れば、キャッシュメモリ内データの更新だけで処理を終
了する。そして変更されたデータを含むブロックをキャ
ッシュメモリから追い出す時に、始めて主メモリの更新
が行なわれる。このため、キャッシュメモリと主メモリ
の内容が常に一致しているとは限らない。
アスル一方式とストアスワップ方式がある。ストアスル
一方式とは、演算ユニットからのライトアクセスが発生
する毎に、キャッシュメモリ及び主メモリの内容を更新
する方式である。このため、キャッシュメモリと主メモ
リの内容は常に一致している。一方、ストアスワップ方
式では、ライトアクセスがキャッシュメモリにヒツトす
れば、キャッシュメモリ内データの更新だけで処理を終
了する。そして変更されたデータを含むブロックをキャ
ッシュメモリから追い出す時に、始めて主メモリの更新
が行なわれる。このため、キャッシュメモリと主メモリ
の内容が常に一致しているとは限らない。
各ライトアクセス処理方式における、キャッシュメモリ
の一致保証プロトコルの例を以下に示す。
の一致保証プロトコルの例を以下に示す。
まず、ストアスル一方式では、キャッシュメモリと主メ
モリが常に一致している事から、1つのプロセッサから
の主メモリへの書込みは、他の全てのプロセッサに報告
される。各プロセッサは、共有バス上のトランザクショ
ンをモニタし、主メモリへの書込みを検出すると、その
アドレスに対応するデータが、ローカルキャッシュ内に
存在するかどうかをチエツクする。対応するデータが存
在すれば、それを含むブロックを無効化する。一方、ス
トアスワップ方式におけるキャッシュメモリの一致保証
プロトコルは、ストアスル一方式に比較すると複雑にな
る。種々の一致保証プロトコルが提案されているが、こ
こではその−例を示す。
モリが常に一致している事から、1つのプロセッサから
の主メモリへの書込みは、他の全てのプロセッサに報告
される。各プロセッサは、共有バス上のトランザクショ
ンをモニタし、主メモリへの書込みを検出すると、その
アドレスに対応するデータが、ローカルキャッシュ内に
存在するかどうかをチエツクする。対応するデータが存
在すれば、それを含むブロックを無効化する。一方、ス
トアスワップ方式におけるキャッシュメモリの一致保証
プロトコルは、ストアスル一方式に比較すると複雑にな
る。種々の一致保証プロトコルが提案されているが、こ
こではその−例を示す。
キャッシュメモリ内のブロックには、以下の3状態があ
りうる。すなわち (1) 5hared・・・主メモリの内容と一致して
おり且つ、複数のキャッシュメモリに共有されている。
りうる。すなわち (1) 5hared・・・主メモリの内容と一致して
おり且つ、複数のキャッシュメモリに共有されている。
(2) Exclusive・・・主メモリの内容と一
致しており且つ、唯一のキャッシュメモリ内に存在する
。
致しており且つ、唯一のキャッシュメモリ内に存在する
。
(3) 0tzned・・・主メモリの内容と一致して
おらず、且つ、唯一のキャッシュメモリ内に存在する。
おらず、且つ、唯一のキャッシュメモリ内に存在する。
次に、演算ユニットが各状態のブロックにアクセスする
場合の処理を簡単に述べる。
場合の処理を簡単に述べる。
(i)リードヒツト
ブロックの状態に関わらず、データを読出す。
(II)リードミスヒツト
共有メモリにブロック転送を要求する。この時、他のキ
ャッシュメモリに転送中のブロックが存在するかどうか
検査し、存在すれば5haredブロツクとして、又、
存在しなければExclusiveブロックとして、自
キャッシュメモリ内に書込む、その後、中断していたリ
ードアクセスを再開する。
ャッシュメモリに転送中のブロックが存在するかどうか
検査し、存在すれば5haredブロツクとして、又、
存在しなければExclusiveブロックとして、自
キャッシュメモリ内に書込む、その後、中断していたリ
ードアクセスを再開する。
(iti)ライトヒツト
5haredブロツクに対する書込みでは、当該キャッ
シュメモリに書込むとともに、他のキャッシュメモリに
共有バスを通じてデータの変更を報告する。その後、ブ
ロックの状態はOwnedとなる。又、Exclusi
ve 、 Ownedブロックに対する書込みでは、他
のキャッシュメモリに報告する義務はない。
シュメモリに書込むとともに、他のキャッシュメモリに
共有バスを通じてデータの変更を報告する。その後、ブ
ロックの状態はOwnedとなる。又、Exclusi
ve 、 Ownedブロックに対する書込みでは、他
のキャッシュメモリに報告する義務はない。
(iv)ライトミスヒツト
共有メモリにブロック転送を要求する。この時間のキャ
ッシュメモリに転送中のブロックが存在するかどうか検
査し、存在すれば5haredブロツクとして、又、存
在しなければExclusiveブロックとして、自キ
ャッシュメモリ内に書込む。その後、中断していたライ
トアクセスを再開する。
ッシュメモリに転送中のブロックが存在するかどうか検
査し、存在すれば5haredブロツクとして、又、存
在しなければExclusiveブロックとして、自キ
ャッシュメモリ内に書込む。その後、中断していたライ
トアクセスを再開する。
以上のストアスワップ方式における一致保証プロトコル
では、各演算ユニットは共有バス上のトランザクション
をチエツクするモニタを有していて、以下のような処理
を行う。
では、各演算ユニットは共有バス上のトランザクション
をチエツクするモニタを有していて、以下のような処理
を行う。
(i)共有バス上にブロック転送トランザクションを検
出した場合。
出した場合。
対応するブロックが自キャッシュメモリ内に存在し、且
つブロックの状態がOwnedであった場合、共有バス
上のブロック転送要求をアボートし、自キャッシュ内の
Ownedブロックを共有メモリへライトバックして当
該ブロックをExclusiveとする。その後中断さ
れていたブロック転送要求が再開される。又、対応する
ブロックの状態が5haredあるいはExclusi
veであった場合、共有バスを通じて、該当ブロックが
自キャッシュメモリ内に存在することを報告する。
つブロックの状態がOwnedであった場合、共有バス
上のブロック転送要求をアボートし、自キャッシュ内の
Ownedブロックを共有メモリへライトバックして当
該ブロックをExclusiveとする。その後中断さ
れていたブロック転送要求が再開される。又、対応する
ブロックの状態が5haredあるいはExclusi
veであった場合、共有バスを通じて、該当ブロックが
自キャッシュメモリ内に存在することを報告する。
その後ブロックの状態は5haredとなる。
(n)共有バス上にデータ変更報告を検出した場合。
対応するブロックが自キャッシュメモリ内に存在すれば
、そのブロックを無効化する。
、そのブロックを無効化する。
以下のプロトコルにより、ストアスワップ方式を採用し
た場合のキャッシュメモリの一致が保証できる。このキ
ャッシュメモリ一致保証は、マルチプロセッサシステム
に限らず、ユニプロセッサシステムに於いても必要であ
る。すなわち、物理バス上に演算ユニットとI10プロ
セッサが接続される場合には、演算ユニットの有するキ
ャッシュメモリに関して一致保証が必要となる。
た場合のキャッシュメモリの一致が保証できる。このキ
ャッシュメモリ一致保証は、マルチプロセッサシステム
に限らず、ユニプロセッサシステムに於いても必要であ
る。すなわち、物理バス上に演算ユニットとI10プロ
セッサが接続される場合には、演算ユニットの有するキ
ャッシュメモリに関して一致保証が必要となる。
以上、マルチプロセッサシステムに適する構成としては
、論理キャッシュメモリで且つ、物理共有バスが有効で
あることを述べ、又、分散キャッシュメモリの一致保証
について述べた。しかしながら、上記従来技術に於いて
はいくつかの問題点がある。
、論理キャッシュメモリで且つ、物理共有バスが有効で
あることを述べ、又、分散キャッシュメモリの一致保証
について述べた。しかしながら、上記従来技術に於いて
はいくつかの問題点がある。
まず、単一のプロセッサの場合でも発生する問題点を示
す。多重仮想記憶方式を採用する計算機システムに於い
ては、各プロセス毎に0番地から始まる論理アドレス空
間が割当てられるため、同一の論理アドレスが異なる物
理データを参照する場合がある。このため、従来の論理
キャッシュ方式では、実行中のプロセスが他のプロセス
の同−論理アドレスのデータをアクセスしないように、
プロセススイッチの度に、論理キャッシュ内容を全てパ
ージする処理を行っていた。このため、タスクスイッチ
が頻繁に発生すると、キャッシュメモリの効果が減少す
るという問題があった。更には、ストアスワップ方式の
キャッシュメモリを採用した場合には、キャッシュメモ
リのパージ処理に先立って、変更されたデータを含むブ
ロックを全て主メモリにコピーバックする必要があった
。
す。多重仮想記憶方式を採用する計算機システムに於い
ては、各プロセス毎に0番地から始まる論理アドレス空
間が割当てられるため、同一の論理アドレスが異なる物
理データを参照する場合がある。このため、従来の論理
キャッシュ方式では、実行中のプロセスが他のプロセス
の同−論理アドレスのデータをアクセスしないように、
プロセススイッチの度に、論理キャッシュ内容を全てパ
ージする処理を行っていた。このため、タスクスイッチ
が頻繁に発生すると、キャッシュメモリの効果が減少す
るという問題があった。更には、ストアスワップ方式の
キャッシュメモリを採用した場合には、キャッシュメモ
リのパージ処理に先立って、変更されたデータを含むブ
ロックを全て主メモリにコピーバックする必要があった
。
この問題は、特開昭60−79446に示される様に、
論理キャッシュメモリの比較アドレスに、プロセス識別
子を含める事によって解決できる。すなわち、論理キャ
ッシュメモリを検索する時に、論理アドレスだけでなく
プロセス識別子も含めて比較を行なう方法である1水力
式によれば、タスクスイッチ毎にキャッシュメモリの内
容をパージする必要はなくなる。
論理キャッシュメモリの比較アドレスに、プロセス識別
子を含める事によって解決できる。すなわち、論理キャ
ッシュメモリを検索する時に、論理アドレスだけでなく
プロセス識別子も含めて比較を行なう方法である1水力
式によれば、タスクスイッチ毎にキャッシュメモリの内
容をパージする必要はなくなる。
ところが、本方式を採用した場合、新たな問題が発生す
る。すなわち、”Address Synonym”の
問題である。これは、各プロセスがデータを共有する場
合に起こり得る。プロセス間でデーテを共有する場合に
は、各プロセスのページテーブルの管理のもとに、異な
る論理アドレスページが、共有の物理アドレスページに
マツピングされる。このため、論理アドレスで検索され
るキャッシュメモリ内には、異なるエントリー位置に、
同一のデータが存在し得るにのような状況において、あ
るプロセスが共有データを変更した場合、他のプロセス
の共有データは変更されないままキャッシュメモリ内に
残ってしまい、他のプロセスが共有データをアクセスす
ると、変更される前の誤ったデータがキャッシュメモリ
から供給される事になる。
る。すなわち、”Address Synonym”の
問題である。これは、各プロセスがデータを共有する場
合に起こり得る。プロセス間でデーテを共有する場合に
は、各プロセスのページテーブルの管理のもとに、異な
る論理アドレスページが、共有の物理アドレスページに
マツピングされる。このため、論理アドレスで検索され
るキャッシュメモリ内には、異なるエントリー位置に、
同一のデータが存在し得るにのような状況において、あ
るプロセスが共有データを変更した場合、他のプロセス
の共有データは変更されないままキャッシュメモリ内に
残ってしまい、他のプロセスが共有データをアクセスす
ると、変更される前の誤ったデータがキャッシュメモリ
から供給される事になる。
従来この”Address 5yno口ym”の問題に
対処する手段としては1文献コンピユーテイングサーベ
イ(Computing 5urveys) Vo Q
、 l 4 、 Na 3 。
対処する手段としては1文献コンピユーテイングサーベ
イ(Computing 5urveys) Vo Q
、 l 4 、 Na 3 。
September 1982のpp510−511に
論じられている。これは、物理アドレスページを論理ア
ドレスページに逆変換するテーブルを有する方法である
。逆変換テーブルは、論理キャッシュ内に存在するデー
タの物理アドレスページに対して、それにマツピングさ
れている全ての論理アドレスページを保持するテーブル
である。この方式に於いては、あるプロセスが共有デー
タを変更した場合、その論理アドレスはTLBによって
物理アドレスに変換された後、その物理アドレスによっ
て逆変換テーブルがアクセスされる。その結果、他のプ
ロセスの共有データが論理キャッシュ内に存在していれ
ば、そのデータに対して更新、あるいは無効化が行なわ
れる。しかしこの従来技術では、物理アドレスを論理ア
ドレスに逆変換するテーブルが必要となり、ハード量が
増加し、また逆変換テーブルの管理が複雑になる等の問
題があった。
論じられている。これは、物理アドレスページを論理ア
ドレスページに逆変換するテーブルを有する方法である
。逆変換テーブルは、論理キャッシュ内に存在するデー
タの物理アドレスページに対して、それにマツピングさ
れている全ての論理アドレスページを保持するテーブル
である。この方式に於いては、あるプロセスが共有デー
タを変更した場合、その論理アドレスはTLBによって
物理アドレスに変換された後、その物理アドレスによっ
て逆変換テーブルがアクセスされる。その結果、他のプ
ロセスの共有データが論理キャッシュ内に存在していれ
ば、そのデータに対して更新、あるいは無効化が行なわ
れる。しかしこの従来技術では、物理アドレスを論理ア
ドレスに逆変換するテーブルが必要となり、ハード量が
増加し、また逆変換テーブルの管理が複雑になる等の問
題があった。
又、他の解決手段は、特開昭61−246850に論じ
られている。これは、論理キャッシュメモリに格納され
るアドレス情報として、論理アドレス情報を記憶する第
1のディレクトリと、実アドレス情報及び、論理アドレ
ス情報の一部を記憶する第2のディレクトリを持つ。論
理アドレス情報と、実アドレス情報は、各ディレクトリ
の異なるカラムアドレスに登録され、両者の関係は、第
2のディレクトリに記憶されるリンク情報に基づいて決
定される。該方式(以下リンクビット方式と呼ぶ)を、
第10図を用いて、簡単に説明する。901゜902は
、それぞれ、論理アドレス、物理アドレスがセットされ
るレジスタであり、アドレス変換ユニット900は、論
理アドレスのbitO−19を、物理アドレスのbit
O−19に変換する。キャッシュメモリは、論理アドレ
ス情報を記憶する論理ディレクトリ903と、データを
記憶するデータ部904、及び、物理アドレス情報を記
憶する物理ディレクトリ905から成る。論理ディレク
トリ903には、データ部904に格納されるデータに
対応した論理アドレスのタグ部(bito−17)91
0 (CAR)と、有効ビット911(V)が登録され
る。この例では、論理ディレクトリ903.データ部9
04は、論理アドレス901のbit18−31をカラ
ムアドレスとする。一方、物理ディレクトリ905には
、データに対応した物理アドレスのタグ部(b i t
047)912(PAR)と、有効ビット914(V)
及び、該物理アドレスタブに対応する論理アドレスタブ
が登録されている論理ディレクトリのカラムアドレス9
13(以下、リンクビットLNKと称す)が登録される
。この例では、物理ディレクトリ905は、物理アドレ
ス902のbit18−31をカラムアドレスとする。
られている。これは、論理キャッシュメモリに格納され
るアドレス情報として、論理アドレス情報を記憶する第
1のディレクトリと、実アドレス情報及び、論理アドレ
ス情報の一部を記憶する第2のディレクトリを持つ。論
理アドレス情報と、実アドレス情報は、各ディレクトリ
の異なるカラムアドレスに登録され、両者の関係は、第
2のディレクトリに記憶されるリンク情報に基づいて決
定される。該方式(以下リンクビット方式と呼ぶ)を、
第10図を用いて、簡単に説明する。901゜902は
、それぞれ、論理アドレス、物理アドレスがセットされ
るレジスタであり、アドレス変換ユニット900は、論
理アドレスのbitO−19を、物理アドレスのbit
O−19に変換する。キャッシュメモリは、論理アドレ
ス情報を記憶する論理ディレクトリ903と、データを
記憶するデータ部904、及び、物理アドレス情報を記
憶する物理ディレクトリ905から成る。論理ディレク
トリ903には、データ部904に格納されるデータに
対応した論理アドレスのタグ部(bito−17)91
0 (CAR)と、有効ビット911(V)が登録され
る。この例では、論理ディレクトリ903.データ部9
04は、論理アドレス901のbit18−31をカラ
ムアドレスとする。一方、物理ディレクトリ905には
、データに対応した物理アドレスのタグ部(b i t
047)912(PAR)と、有効ビット914(V)
及び、該物理アドレスタブに対応する論理アドレスタブ
が登録されている論理ディレクトリのカラムアドレス9
13(以下、リンクビットLNKと称す)が登録される
。この例では、物理ディレクトリ905は、物理アドレ
ス902のbit18−31をカラムアドレスとする。
従って、論理アドレスタグ910と、これに対応する物
理アドレスタグ912は、各ディレクトリの同一カラム
に登録されるとは限らない。該リンクビット方式を採る
ことにより、”Address 5ynonyIa”の
問題は、以下の様にして解決される。すなわち。
理アドレスタグ912は、各ディレクトリの同一カラム
に登録されるとは限らない。該リンクビット方式を採る
ことにより、”Address 5ynonyIa”の
問題は、以下の様にして解決される。すなわち。
プロセス間で共有されるデータがキャッシュ内に存在し
、一方の論理アドレスに対してプロセッサから書込要求
が発生した場合、まず、論理ディレクトリ903がアク
セスされ、該当するエントリにデータが書込まれる。更
に、論理アドレス901は、アドレス変換ユニット90
0により、物理アドレス902に変換される0次に物理
アドレス902により物理ディレクトリ905をアクセ
スし、ヒツトしたカラムのリンク情報913より。
、一方の論理アドレスに対してプロセッサから書込要求
が発生した場合、まず、論理ディレクトリ903がアク
セスされ、該当するエントリにデータが書込まれる。更
に、論理アドレス901は、アドレス変換ユニット90
0により、物理アドレス902に変換される0次に物理
アドレス902により物理ディレクトリ905をアクセ
スし、ヒツトしたカラムのリンク情報913より。
該物理アドレスに対応するデータ部904のカラムアド
レスが生成され、該当カラムに対して、書込みあるいは
無効化が行なわれる0以上の動作により共有データの一
致が保証される。このリンクビット方式については、特
開昭53−25457にも論じられている。
レスが生成され、該当カラムに対して、書込みあるいは
無効化が行なわれる0以上の動作により共有データの一
致が保証される。このリンクビット方式については、特
開昭53−25457にも論じられている。
しかし、この従来技術では、w数のプロセスによってデ
ータが共有される場合、物理ディレクトリの1つのエン
トリに複数のリンク情報が必要となり、管理が複雑にな
る等の問題があった。
ータが共有される場合、物理ディレクトリの1つのエン
トリに複数のリンク情報が必要となり、管理が複雑にな
る等の問題があった。
次にマルチプロセッサシステムの場合に生じる問題点を
示す。それは分散されたキャッシュメモリの一致を保証
するために、物理アドレスを論理アドレスに変換する機
能が必要となる事である。
示す。それは分散されたキャッシュメモリの一致を保証
するために、物理アドレスを論理アドレスに変換する機
能が必要となる事である。
前述した様に、分散キャッシュメモリの一致を保証する
ためには、各プロセッサ毎に共有バスをモニタする機能
が必要となる。モニタの機能は既に説明したが、バス上
のトランザクションを検出して自キャッシュメモリ内を
検索し、該当ブロックが存在すればそれを無効化したり
、あるいは共有バス上のトランザクションをアボートし
て、コピーバックの処理を実施しなければならない。と
ころが、論理キャッシュで物理共有バスの構成では、共
有バス上のトランザクションは物理アドレスで行なわれ
るため、モニターは共有バス上のアドレスを取り込み、
−旦論理アドレスに変換した後。
ためには、各プロセッサ毎に共有バスをモニタする機能
が必要となる。モニタの機能は既に説明したが、バス上
のトランザクションを検出して自キャッシュメモリ内を
検索し、該当ブロックが存在すればそれを無効化したり
、あるいは共有バス上のトランザクションをアボートし
て、コピーバックの処理を実施しなければならない。と
ころが、論理キャッシュで物理共有バスの構成では、共
有バス上のトランザクションは物理アドレスで行なわれ
るため、モニターは共有バス上のアドレスを取り込み、
−旦論理アドレスに変換した後。
論理キャッシュを検索しなければならない。このため、
物理アドレスを論理アドレスに変換するための逆変換テ
ーブルが必要となり、ハード量の増加及び逆変換テーブ
ルの管理が複雑になる等の問題があった。
物理アドレスを論理アドレスに変換するための逆変換テ
ーブルが必要となり、ハード量の増加及び逆変換テーブ
ルの管理が複雑になる等の問題があった。
一方、前述のリンクビット方式を採用すれば、逆変換テ
ーブルは不要となる。すなわち、第10図において、共
有バス上の物理アドレスが、モニタによって、物理アド
レスレジスタ902に取り込まれる。次に、該物理アド
レスによって、物理ディレクトリ905がアクセスされ
、該当するエントリが存在すれば、リンク情報913か
ら、対応するデータ及び論理ディレクトリのカラムアド
レスが生成され、無効化が行なわれる。しかし、前述し
た様に、複数のプロセスがデータを共有する場合は、複
数のリンク情報が必要となり、管理が複雑になる問題が
あった。
ーブルは不要となる。すなわち、第10図において、共
有バス上の物理アドレスが、モニタによって、物理アド
レスレジスタ902に取り込まれる。次に、該物理アド
レスによって、物理ディレクトリ905がアクセスされ
、該当するエントリが存在すれば、リンク情報913か
ら、対応するデータ及び論理ディレクトリのカラムアド
レスが生成され、無効化が行なわれる。しかし、前述し
た様に、複数のプロセスがデータを共有する場合は、複
数のリンク情報が必要となり、管理が複雑になる問題が
あった。
本発明の第1の目的は、多重仮想記憶方式でかつ物理ア
ドレスの共有バス構成を採用した計算機システムで用い
る論理キャッシュメモリであって。
ドレスの共有バス構成を採用した計算機システムで用い
る論理キャッシュメモリであって。
異なる論理アドレスが同一の物理データを共有する場合
の“Address Synonym”の問題と、各プ
ロセッサ対応の論理キャッシュメモリの一致保証とを、
物理アドレスから論理アドレスへの変換を行う逆変換テ
ーブルを用いずに行えるようにした論理キャッシュメモ
リを提供するにある。
の“Address Synonym”の問題と、各プ
ロセッサ対応の論理キャッシュメモリの一致保証とを、
物理アドレスから論理アドレスへの変換を行う逆変換テ
ーブルを用いずに行えるようにした論理キャッシュメモ
リを提供するにある。
本発明の第2の目的は、異なる論理アドレスが、同一の
物理データを共有する場合の“AddressSyno
nym″′の問題と、複数のプロセッサに分散された論
理キャッシュメモリの一致保証とを、論理ディレクトリ
と、物理ディレクトリの対応を示すリンク情報を用いる
ことなく可能とした論理キャッシュメモリを提供するこ
とにある。
物理データを共有する場合の“AddressSyno
nym″′の問題と、複数のプロセッサに分散された論
理キャッシュメモリの一致保証とを、論理ディレクトリ
と、物理ディレクトリの対応を示すリンク情報を用いる
ことなく可能とした論理キャッシュメモリを提供するこ
とにある。
本発明の第3の目的は、大容量のキャッシュメモリにお
ける”Address Synonym”の問題と、分
散された論理キャッシュメモリの一致保証とを、キャッ
シュメモリの連想数を増すことなく可能とした論理キャ
ッシュメモリを提供することにある。
ける”Address Synonym”の問題と、分
散された論理キャッシュメモリの一致保証とを、キャッ
シュメモリの連想数を増すことなく可能とした論理キャ
ッシュメモリを提供することにある。
上記、第1.第2の目的を達成する第1の手段を以下に
示す。
示す。
キャッシュメモリは、一致検査のためのタグ部とそれに
対応したデータ部からなり、データは一部サイズのブロ
ックとして扱かわれる。一般に、容量の大きなキャッシ
ュメモリでは、アドレスの下位を、キャッシュメモリの
インデックスとして用い、一致検査すべき候補(以下、
エツト1ノー。
対応したデータ部からなり、データは一部サイズのブロ
ックとして扱かわれる。一般に、容量の大きなキャッシ
ュメモリでは、アドレスの下位を、キャッシュメモリの
インデックスとして用い、一致検査すべき候補(以下、
エツト1ノー。
称す)をしぼり込む、そしてアドレスの残りを比較用タ
グとする事によって、タグサイズの削減と、比較器の削
減を行っている。これらのことに着目することにより、
上記の目的は以下のようにして達成される。
グとする事によって、タグサイズの削減と、比較器の削
減を行っている。これらのことに着目することにより、
上記の目的は以下のようにして達成される。
すなわち、キャッシュメモリのインデクスに、アドレス
変換に依存しないページ内アドレスの一部を割当てる。
変換に依存しないページ内アドレスの一部を割当てる。
これによって、論理アドレスあるいはそれに対応する物
理アドレスのどちらでキャッシュメモリをアクセスして
も、必ず同一のエントリ位置がインデクスされる。更に
、キャッシュメモリのタグ部を、論理アドレスタグとそ
れに対応する物理アドレスタグの組によって構成し対応
する論理アドレスタグと物理アドレスタグを同一のエン
トリー位置に登録する。一方キャッシュをアクセスする
アドレスとして演算ユニットからの論理アドレスまたは
物理共有バスのモニタからの物理アドレスのいずれか一
方を選択するセレクタを設ける。更に、タグの一致を検
出する比較器として、論理アドレス用比較器と物理アド
レス用比較器とを設ける。本構成によって、演算ユニッ
トに対しては、論理キャッシュとして働き、物理共有バ
スのモニタに対しては物理キャッシュとして働くように
する。
理アドレスのどちらでキャッシュメモリをアクセスして
も、必ず同一のエントリ位置がインデクスされる。更に
、キャッシュメモリのタグ部を、論理アドレスタグとそ
れに対応する物理アドレスタグの組によって構成し対応
する論理アドレスタグと物理アドレスタグを同一のエン
トリー位置に登録する。一方キャッシュをアクセスする
アドレスとして演算ユニットからの論理アドレスまたは
物理共有バスのモニタからの物理アドレスのいずれか一
方を選択するセレクタを設ける。更に、タグの一致を検
出する比較器として、論理アドレス用比較器と物理アド
レス用比較器とを設ける。本構成によって、演算ユニッ
トに対しては、論理キャッシュとして働き、物理共有バ
スのモニタに対しては物理キャッシュとして働くように
する。
本構成は、アドレス変換に依存しないページ内アドレス
をキャッシュのインデクスアドレスとして使用するため
、キャッシュ容量の増大に伴って連想数が増大する問題
がある。しかし、制御が容易なことから、小容量のキャ
ッシュメモリに有効である。
をキャッシュのインデクスアドレスとして使用するため
、キャッシュ容量の増大に伴って連想数が増大する問題
がある。しかし、制御が容易なことから、小容量のキャ
ッシュメモリに有効である。
次に、上記第1.第2.第3の目的を達成する第2の手
段を以下に示す。
段を以下に示す。
キャッシュメモリのタグ部を、キャッシュに保持される
データに対応する論理アドレスタグから成る論理ディレ
クトリと、該データに対応する物理アドレスタグから成
る物理ディレクトリによって構成し、対応する論理アド
レスタグと物理アドレスタグを同一のエントリーに登録
する。更に、物理ディレクトリは、マルチポートメモリ
とし。
データに対応する論理アドレスタグから成る論理ディレ
クトリと、該データに対応する物理アドレスタグから成
る物理ディレクトリによって構成し、対応する論理アド
レスタグと物理アドレスタグを同一のエントリーに登録
する。更に、物理ディレクトリは、マルチポートメモリ
とし。
同時に複数のデータを読出すことを可能とする。
又、タグの一致を検出する比較器として、論理アドレス
用比較器と、複数の物理アドレス用比較器とを設ける。
用比較器と、複数の物理アドレス用比較器とを設ける。
そして、演算ユニットからの論理アドレスによるアクセ
スでは、アドレス変換に依存する部分も含むカラムアド
レスにより、論理ディレクトリをアクセスし、対応する
データの有無を検出する。一方、バスモニタからの物理
アドレスによるアクセスでは、該物理アドレスのアドレ
ス変換に依存しない部分をカラムアドレスとして。
スでは、アドレス変換に依存する部分も含むカラムアド
レスにより、論理ディレクトリをアクセスし、対応する
データの有無を検出する。一方、バスモニタからの物理
アドレスによるアクセスでは、該物理アドレスのアドレ
ス変換に依存しない部分をカラムアドレスとして。
物理ディレクトリから複数の情報を読出し、その読出し
出力と物理アドレスの上位部を比較し、対応するデータ
の有無を検出する。これにより、演算ユニットに対して
は、論理キャッシュメモリとして働き、物理共有バスの
モニタに対しては、物理キャッシュメモリとして動作す
る。
出力と物理アドレスの上位部を比較し、対応するデータ
の有無を検出する。これにより、演算ユニットに対して
は、論理キャッシュメモリとして働き、物理共有バスの
モニタに対しては、物理キャッシュメモリとして動作す
る。
本構成では、アドレス変換に依存する部分をキャッシュ
のインデクスアドレスとして使用可能であり、キャッシ
ュ容量が増大しても連想数は増大しない、すなわち、大
容量のキャッシュメモリに有効な構成である。
のインデクスアドレスとして使用可能であり、キャッシ
ュ容量が増大しても連想数は増大しない、すなわち、大
容量のキャッシュメモリに有効な構成である。
キャッシュメモリの作用を、ストアスワップ方式の場合
について説明する。異なる論理アドレスページが同一の
物理アドレスページを共有し、かつ両ブロックがキャッ
シュメモリ内に存在している状況について考える。この
場合1両ブロックの状態は5haredとなっている。
について説明する。異なる論理アドレスページが同一の
物理アドレスページを共有し、かつ両ブロックがキャッ
シュメモリ内に存在している状況について考える。この
場合1両ブロックの状態は5haredとなっている。
演算ユニットから一方のブロックに対して書込みが発生
すると、該当ブロックに書込まれるとともに、ブロック
の状態はOwned となる。更に5haredデータ
に対する書込であるため、本アクセスの論理アドレスは
TLBによって物理アドレスに変換された後、共有バス
上に出力されて、無効化要求が発効される。バスモニタ
は、この無効化要求を検出し、取り込んだ物理アドレス
によってキャッシュメモリを検索し、書込みの対象とな
らなかったブロック(状態が5haredのまま)を物
理アドレスタグの比較器により検出し、これを無効化す
る。以上の機能によつて、物理アドレスを論理アドレス
に変換する逆変換テーブル無しで”Address S
ynonym”の問題を解決する事が可能となる。
すると、該当ブロックに書込まれるとともに、ブロック
の状態はOwned となる。更に5haredデータ
に対する書込であるため、本アクセスの論理アドレスは
TLBによって物理アドレスに変換された後、共有バス
上に出力されて、無効化要求が発効される。バスモニタ
は、この無効化要求を検出し、取り込んだ物理アドレス
によってキャッシュメモリを検索し、書込みの対象とな
らなかったブロック(状態が5haredのまま)を物
理アドレスタグの比較器により検出し、これを無効化す
る。以上の機能によつて、物理アドレスを論理アドレス
に変換する逆変換テーブル無しで”Address S
ynonym”の問題を解決する事が可能となる。
また、同じストアスワップ方式を用いたマルチプロセッ
サシステムの場合、共有バスモニタが共有バス上の無効
化要求を検出すると、その物理アドレスを取り込み、物
理アドレスでキャッシュメモリをアクセスする。この時
、物理アドレスタグの比較器による比較の結果一致する
ブロックが存在すればこれを無効化する。又、共有バス
上のブロック転送要求を検出すると、その物理アドレス
を取り込む、そして物理アドレスでキャッシュメモリを
検索し、一致するブロックが検出され、かつ、ブロック
の状態がOwnedであれば、共有バス上のブロック転
送要求をアボートし、該当するブロックを主メモリにコ
ピーバックする。又、一致するブロックが検出され、か
つそのブロックの状態が、 Exclusive又は5
haredであれば、ヒツトした事を共有バスを通じて
報告する。以上の機能により、逆変換テーブル無しで、
分散キャッシュメモリの一致を保証することが可能とな
る。
サシステムの場合、共有バスモニタが共有バス上の無効
化要求を検出すると、その物理アドレスを取り込み、物
理アドレスでキャッシュメモリをアクセスする。この時
、物理アドレスタグの比較器による比較の結果一致する
ブロックが存在すればこれを無効化する。又、共有バス
上のブロック転送要求を検出すると、その物理アドレス
を取り込む、そして物理アドレスでキャッシュメモリを
検索し、一致するブロックが検出され、かつ、ブロック
の状態がOwnedであれば、共有バス上のブロック転
送要求をアボートし、該当するブロックを主メモリにコ
ピーバックする。又、一致するブロックが検出され、か
つそのブロックの状態が、 Exclusive又は5
haredであれば、ヒツトした事を共有バスを通じて
報告する。以上の機能により、逆変換テーブル無しで、
分散キャッシュメモリの一致を保証することが可能とな
る。
以下、本発明の第1の実施例を図面を用いて詳細に説明
する。第2図は本発明が適用されるデータ処理装置の一
例を示している。同図において共有バス300に接続さ
れた演算ユニット100゜200.300は主メモリ4
01を共有しており、メモリ制御袋H400は、主メモ
リ401のアクセス制御及び複数の演算ユニットに対し
てのデータの供給を行う、ファイルコントロールプロセ
ッサ500は固定ディスク501内に蓄積された任意の
ファイルを、高速に主メモリ401へ転送する。入出カ
プロセッサ600は外部の入出力装置とのデータ転送を
行なう、共有バス300はバスコントローラ700によ
って管理される。
する。第2図は本発明が適用されるデータ処理装置の一
例を示している。同図において共有バス300に接続さ
れた演算ユニット100゜200.300は主メモリ4
01を共有しており、メモリ制御袋H400は、主メモ
リ401のアクセス制御及び複数の演算ユニットに対し
てのデータの供給を行う、ファイルコントロールプロセ
ッサ500は固定ディスク501内に蓄積された任意の
ファイルを、高速に主メモリ401へ転送する。入出カ
プロセッサ600は外部の入出力装置とのデータ転送を
行なう、共有バス300はバスコントローラ700によ
って管理される。
演算ユニット100(他も同様)の内部の命令フェッチ
ユニット(I)101は、プログラムの実行に必要な命
令を主メモリ401からフェッチする機能を持つ、フェ
ッチされた命令は、命令実行ユニット(E)102に転
送される。命令実行ユニット102では、命令の意味を
解釈し、必要なデータをフェッチした後、演算を実行す
る。命令用キャッシュメモリ103は、主メモリ401
内の命令をコピーして、高速なバッファメモリに蓄えて
いる。命令フェッチユニット101が論理アドレスで命
令キャッシュ103にアクセスした場合、要求する命令
が命令キャッシュ内に存在すれば、短時間で要求命令が
フェッチされる。又、データ用キャッシュメモリ104
は、主メモリ401内のデータをコピーして、高速なバ
ッファメモリに蓄えている。命令実行ユニット102が
論理アドレスでデータキャッシュ104をアクセスした
場合、要求データがデータキャッシュ104内に存在す
れば、短時間でデータがフェッチされる。命令キャッシ
ュ103あるいはデータキャッシュ104に要求される
命令あるいは、データが存在しない場合、論理アドレス
番ニアドレス変換装置105に転送される。アドレス変
換装W105は、論理アドレスを物理アドレスに変換し
た後。
ユニット(I)101は、プログラムの実行に必要な命
令を主メモリ401からフェッチする機能を持つ、フェ
ッチされた命令は、命令実行ユニット(E)102に転
送される。命令実行ユニット102では、命令の意味を
解釈し、必要なデータをフェッチした後、演算を実行す
る。命令用キャッシュメモリ103は、主メモリ401
内の命令をコピーして、高速なバッファメモリに蓄えて
いる。命令フェッチユニット101が論理アドレスで命
令キャッシュ103にアクセスした場合、要求する命令
が命令キャッシュ内に存在すれば、短時間で要求命令が
フェッチされる。又、データ用キャッシュメモリ104
は、主メモリ401内のデータをコピーして、高速なバ
ッファメモリに蓄えている。命令実行ユニット102が
論理アドレスでデータキャッシュ104をアクセスした
場合、要求データがデータキャッシュ104内に存在す
れば、短時間でデータがフェッチされる。命令キャッシ
ュ103あるいはデータキャッシュ104に要求される
命令あるいは、データが存在しない場合、論理アドレス
番ニアドレス変換装置105に転送される。アドレス変
換装W105は、論理アドレスを物理アドレスに変換し
た後。
共有バス300を通して、メモリ制御装置1400にデ
ータ転送を要求する。主メモリ401から転送されて来
たデータは、−旦命令キャッシュ103あるいは、デー
タキャッシュ104に書込まれた後、命令ユニット10
1あるいは命令実行ユニット102に供給される。
ータ転送を要求する。主メモリ401から転送されて来
たデータは、−旦命令キャッシュ103あるいは、デー
タキャッシュ104に書込まれた後、命令ユニット10
1あるいは命令実行ユニット102に供給される。
次に、第3図を用いて共有バス300の構成を説明する
。共有バス300は、各演算ユニットによって共有され
るバスとしてのハンドシェイク制御バス303.アドレ
スバス301及びデータバス302を有する6本実施例
では、アドレスバス301を29ビツト、データバス3
02を64ビツトとする。又、各演算ユニットによるバ
スの競合を避けるために、各演算ユニットからバスコン
トローラ700に対してバス占有要求線305が設けら
れ、バスコントローラ700からは、各演算ユニットに
対してバス使用許可線304が個別に設けられる。又、
第4図に示す様に、共有バス300にはスプリット方式
が採用されている。すなわち、ある演算ユニットがAブ
ロックの転送要求を発効し、主メモリ制御装置400か
らAブロツクのデータが転送されて来るまでの空き時間
を、他の演算ユニットが使用可能となっている。このス
プリット方式を実現するため、主メモリ制御装置400
においても、バス占有要求線305とバス使用許可!3
04が設けられている。このように演算ユニット及び主
メモリ制御装置からのバス占有要求線は、バスコントロ
ーラ700に接続され、バスコントローラ700は、優
先順位に従って、各ユニットにバス使用許可信号を発行
する。
。共有バス300は、各演算ユニットによって共有され
るバスとしてのハンドシェイク制御バス303.アドレ
スバス301及びデータバス302を有する6本実施例
では、アドレスバス301を29ビツト、データバス3
02を64ビツトとする。又、各演算ユニットによるバ
スの競合を避けるために、各演算ユニットからバスコン
トローラ700に対してバス占有要求線305が設けら
れ、バスコントローラ700からは、各演算ユニットに
対してバス使用許可線304が個別に設けられる。又、
第4図に示す様に、共有バス300にはスプリット方式
が採用されている。すなわち、ある演算ユニットがAブ
ロックの転送要求を発効し、主メモリ制御装置400か
らAブロツクのデータが転送されて来るまでの空き時間
を、他の演算ユニットが使用可能となっている。このス
プリット方式を実現するため、主メモリ制御装置400
においても、バス占有要求線305とバス使用許可!3
04が設けられている。このように演算ユニット及び主
メモリ制御装置からのバス占有要求線は、バスコントロ
ーラ700に接続され、バスコントローラ700は、優
先順位に従って、各ユニットにバス使用許可信号を発行
する。
次に表1を用いて、バス占有要求線305およびバス使
用許可線304の具体的な信号名と、その意味について
説明する。バス占有要求線305としては、BUSRE
Q信号とCPYBKREQ信号がある。
用許可線304の具体的な信号名と、その意味について
説明する。バス占有要求線305としては、BUSRE
Q信号とCPYBKREQ信号がある。
表 1
(1) BUSREQ信号
各演算ユニットのキャッシュコントローラ、あるいは主
メモリ制御装置からのバス占有要求であり、個別の信号
線として、バスコントローラに接続される。本信号が発
効される条件としては、演算ユニットにおいてキャッシ
ュメモリのミスヒツトに伴うブロック転送要求を行なう
場合、あるいはキャッシュミスヒツトで且つリプレース
すべきブロックがOwned状態の時に必要となるコピ
ーバック要求を行なう場合、あるいは5hared状態
のブロックに書込みを行った時に必要となるデータ変更
報告(以下ブロードキャストと称す)を行なう場合があ
る。又、主メモリ制御装置に於いては、要求されたブロ
ックを要求元に転送する場合に。
メモリ制御装置からのバス占有要求であり、個別の信号
線として、バスコントローラに接続される。本信号が発
効される条件としては、演算ユニットにおいてキャッシ
ュメモリのミスヒツトに伴うブロック転送要求を行なう
場合、あるいはキャッシュミスヒツトで且つリプレース
すべきブロックがOwned状態の時に必要となるコピ
ーバック要求を行なう場合、あるいは5hared状態
のブロックに書込みを行った時に必要となるデータ変更
報告(以下ブロードキャストと称す)を行なう場合があ
る。又、主メモリ制御装置に於いては、要求されたブロ
ックを要求元に転送する場合に。
本信号が発効される。
(2) CPYBKIIEQ信号
各演算ユニットの共有バスモニタからのバス占有要求で
あり、バス構成でバスコントローラに接続される。本信
号が発効される条件としては、演算ユニットにおいて、
バスモニタが共有バス上のブロック転送要求を検出して
自キャッシュメモリ内を検索した結果、該当ブロックが
存在し且つそのブロックの状態がOwnedであった場
合に発効される。本信号は、BUSREQ信号よりも優
先度が高く、バスの使用が許可されると、該当ブロック
を主メモリにコピーバックする。
あり、バス構成でバスコントローラに接続される。本信
号が発効される条件としては、演算ユニットにおいて、
バスモニタが共有バス上のブロック転送要求を検出して
自キャッシュメモリ内を検索した結果、該当ブロックが
存在し且つそのブロックの状態がOwnedであった場
合に発効される。本信号は、BUSREQ信号よりも優
先度が高く、バスの使用が許可されると、該当ブロック
を主メモリにコピーバックする。
次に、バス使用許可信号としては、BUSACK 。
CPYBKACに、 BUSBSYがある。
(3) BUSACK
バスコントローラからの、各演算ユニットのキャッシュ
コントローラ及び主メモリ制御装置に対するバス使用許
可信号であり、各ユニットに対して個別に接続される0
来信号が発効される条件としては、共有バスが使用され
ておらず、且つ、BuSREQ要求があれば、最も優先
度の高いユニットに対して発効される。
コントローラ及び主メモリ制御装置に対するバス使用許
可信号であり、各ユニットに対して個別に接続される0
来信号が発効される条件としては、共有バスが使用され
ておらず、且つ、BuSREQ要求があれば、最も優先
度の高いユニットに対して発効される。
(4) CP’/BKACK
バスコントローラからの、各r寅算ユニットのバスモニ
タに対するバス使用許可信号であり、各モニタに対して
バス構成で接続される。本信号が発効される条件として
は、共有バスが使用されておらず、且つCPYBKRE
Q要求があれば発効される。
タに対するバス使用許可信号であり、各モニタに対して
バス構成で接続される。本信号が発効される条件として
は、共有バスが使用されておらず、且つCPYBKRE
Q要求があれば発効される。
(5) BUSBSY
各演算ユニットのキャッシュコントローラ、バスモニタ
、及び主メモリ制御装置からのバス使用中を示す信号で
あり、バス構成でバスコントローラに接続される。本信
号が発効される条件としては、各ユニツl−が共有バス
を使用中である場合に発効される。更に、主メモリ制御
装置において、ブロック転送要求、あるいはコピーバッ
ク要求を受付けるバッファが詰っている場合にも発効さ
れる。本信号が発効されている間は、BUSACK信号
、及びCPYBKACK信号などのバス使用許可信号は
発効されない。
、及び主メモリ制御装置からのバス使用中を示す信号で
あり、バス構成でバスコントローラに接続される。本信
号が発効される条件としては、各ユニツl−が共有バス
を使用中である場合に発効される。更に、主メモリ制御
装置において、ブロック転送要求、あるいはコピーバッ
ク要求を受付けるバッファが詰っている場合にも発効さ
れる。本信号が発効されている間は、BUSACK信号
、及びCPYBKACK信号などのバス使用許可信号は
発効されない。
次に、表2を用いて、ハンドシェイク制御バスの具体的
な信号名と、その意味を説明する6表 2 (1) BCKREQ信号、 READ信号各演算ユニ
ットのキャッシュコントローラからの、主メモリ制御装
置に対するブロック転送要求、あるいはコピーバック要
求であり、主メモリ制御装置、及び各演算ユニットのバ
スモニタにバス構成で接続される。ブロック転送要求時
には、R11!AD信号も同時に発効される。まず、B
CKREQ信号とREAD信号が同時に発効される条件
としては、キャッシュミスヒツトに伴うブロック転送時
がある。
な信号名と、その意味を説明する6表 2 (1) BCKREQ信号、 READ信号各演算ユニ
ットのキャッシュコントローラからの、主メモリ制御装
置に対するブロック転送要求、あるいはコピーバック要
求であり、主メモリ制御装置、及び各演算ユニットのバ
スモニタにバス構成で接続される。ブロック転送要求時
には、R11!AD信号も同時に発効される。まず、B
CKREQ信号とREAD信号が同時に発効される条件
としては、キャッシュミスヒツトに伴うブロック転送時
がある。
又、BCKREQ信号が発効されREAD信号が発効さ
れない条件としては、キャッシュミスヒツト時にリプレ
ースすべきブロックの状態がO%+nedであった場合
に、コピーパックを行なうため発行される。各バスモニ
タは、BCKREQ信号及び、READが発効されてい
る場合にはこれを検出し、共有バス上のアドレスを取り
込んで自キャッシュメモリ内の検索を行なおねばならな
い。
れない条件としては、キャッシュミスヒツト時にリプレ
ースすべきブロックの状態がO%+nedであった場合
に、コピーパックを行なうため発行される。各バスモニ
タは、BCKREQ信号及び、READが発効されてい
る場合にはこれを検出し、共有バス上のアドレスを取り
込んで自キャッシュメモリ内の検索を行なおねばならな
い。
(2) BCKACK信号
各演算ユニットのバスモニタ及び主メモリ制御装置から
のブロック転送要求受付応答であり、バス構成で各キャ
ッシュコントローラに接続される。
のブロック転送要求受付応答であり、バス構成で各キャ
ッシュコントローラに接続される。
本信号が発効される条件としては、主メモリ制御装置に
於いては、ブロック転送を受付けた場合であり、バスモ
ニタに於いては、共有バス上のブロック転送を検出し、
自キャッシュメモリ内の検索が終了した場合である。
於いては、ブロック転送を受付けた場合であり、バスモ
ニタに於いては、共有バス上のブロック転送を検出し、
自キャッシュメモリ内の検索が終了した場合である。
(3) BCKI(IT倍信
号演算ユニットのバスモニタからのキャツシュヒツト報
告であり、バス構成で各キャッシュコントローラに接続
される。本信号が発効される条件としては、バスモニタ
が共有バス上のブロック転送要求を検出し、自キャッシ
ュメモリ内を検索した結果、該当ブロックが存在した時
にBCKACにと同時に発効される。キャッシュコント
ローラは、本信号を受付けると、転送されてくるブロッ
クを5hared状態で自キャッシュメモリ内に書込む
必要がある。
告であり、バス構成で各キャッシュコントローラに接続
される。本信号が発効される条件としては、バスモニタ
が共有バス上のブロック転送要求を検出し、自キャッシ
ュメモリ内を検索した結果、該当ブロックが存在した時
にBCKACにと同時に発効される。キャッシュコント
ローラは、本信号を受付けると、転送されてくるブロッ
クを5hared状態で自キャッシュメモリ内に書込む
必要がある。
(4) BCKABOT信号
各演算ユニットのバスモニタからのブロック転送アポー
ト要求であり、バス構成で各キャッシュメモリに接続さ
れる6本信号が発効される条件としては、バスモニタが
共有バス上のブロック転送要求を検出し、自キャッシュ
メモリ上を検索した結果、該当ブロックが存在し、且つ
そのブロックの状態が0tznedの場合に発効される
。キャッシュコントローラは5本信号を受付けると実行
中のブロック転送要求をリトライする必要がある。
ト要求であり、バス構成で各キャッシュメモリに接続さ
れる6本信号が発効される条件としては、バスモニタが
共有バス上のブロック転送要求を検出し、自キャッシュ
メモリ上を検索した結果、該当ブロックが存在し、且つ
そのブロックの状態が0tznedの場合に発効される
。キャッシュコントローラは5本信号を受付けると実行
中のブロック転送要求をリトライする必要がある。
(5) BCAST信号
各演算ユニットのキャッシュコントローラがらのデータ
変更報告であり、バス構成で各モニタに接続される。本
信号が発効される条件としては、演算ユニットからの書
込みアクセスがキャッシュメモリにヒツトし、かつ該当
ブロックの状態が5haredの場合に発行される。各
バスモニタは、本信号を検出すると、自キャッシュメモ
リ内を検索し、該当ブロックがあれば無効化しなければ
ならない。
変更報告であり、バス構成で各モニタに接続される。本
信号が発効される条件としては、演算ユニットからの書
込みアクセスがキャッシュメモリにヒツトし、かつ該当
ブロックの状態が5haredの場合に発行される。各
バスモニタは、本信号を検出すると、自キャッシュメモ
リ内を検索し、該当ブロックがあれば無効化しなければ
ならない。
(6) BCASTACに信号
各演算ユニットのバスモニタからのブロードキャスト要
求受付応答であり、バス構成で各キャッシュメモリに接
続される。本信号は、バスモニタがブロードキャスト要
求を受付けた時に無条件に発効される。
求受付応答であり、バス構成で各キャッシュメモリに接
続される。本信号は、バスモニタがブロードキャスト要
求を受付けた時に無条件に発効される。
(7) MSACに信号
主メモリ制御装置からのデータ転送終了報告であり、各
キャッシュコントローラにバス構成で接続される。
キャッシュコントローラにバス構成で接続される。
(8) MSACPT信号
各キャッシュコントローラから、メモリ制御系に対する
データ転送受付は応答であり、バス構成で主メモリ制御
装置に接続される。
データ転送受付は応答であり、バス構成で主メモリ制御
装置に接続される。
(9) DSTROB信号
各キャッシュコントローラ、あるいは各バスモニタから
メモリにコピーバンクする場合に、データの転送が終了
した事を報告する信号であり、バス構成で主メモリ制御
装置に接続される。
メモリにコピーバンクする場合に、データの転送が終了
した事を報告する信号であり、バス構成で主メモリ制御
装置に接続される。
(10)DTACPT信号
主メモリ制御装置からの、各キャッシュコントローラ及
びバスモニタに対するコピーバックデータ受付は応答で
あり、バス構成で各ユニットに接続される。
びバスモニタに対するコピーバックデータ受付は応答で
あり、バス構成で各ユニットに接続される。
次に第5図〜第9図を用いて、共有バス上のバスオペレ
ーションと、タイミングフローを説明する。
ーションと、タイミングフローを説明する。
第5図は、ブロードキャストのバスオペレーションを示
したものである。各演算ユニットにおいて、データキャ
ッシュへの書込みが発生し、これがキャツシュヒツトで
且つ該当ブロックが5hared状態であった場合1本
バスオペレーションが起動される6まず、キャッシュコ
ントローラがバスコントローラに対してバス占有要求(
BUSREQI)を発効する。バスコントローラは、バ
スが使用中でないことをBUSBSY信号より識別し、
BUSACKI信号によって、バスの使用許可を与え
る。本バスオペレーションの例では、同時に他の演算ユ
ニットからバス占有要求(BUSREQ2)が発効され
ているが、バスコントローラの優先判定により、BUS
REQI に対して許可が与えられている。BUSRE
Q2は、BUSREQIのオペレーション中、 BUS
BSYが発効されているため、本バスオペレーションが
終了するまでバス使用許可を受けられない。キャッシュ
コントローラはバスの使用許可を受付けると、ブロード
キャストアドレスを共有バス上に乗せ、BCAST信号
を発行する。同時にBIJSBSY信号も発効する。ブ
ロードキャストを行っているユニットのバスモニタも含
め、各演算ユニットのバスモニタは、[1CAST信号
を検出し、共有バス上のアドレスを自ユニット内に取り
込むとともに、BCASTACKを発効する。ブロード
キャスト要求を発効しているキャッシュコントローラは
、全てのバスモニタの[3CASTACKが発効された
のを確認し、BCAST信号、及びBUSBSY信号を
ネゲートする。各バスモニタは、 BCAST信号のネ
ゲートを検出し、自キャッシュ内の検索及び無効化を行
なう。又、バスコントローラはBUSBSY信号のネゲ
ートを確認し、BUSREQ2のバス占有要求に対して
許可を与える。
したものである。各演算ユニットにおいて、データキャ
ッシュへの書込みが発生し、これがキャツシュヒツトで
且つ該当ブロックが5hared状態であった場合1本
バスオペレーションが起動される6まず、キャッシュコ
ントローラがバスコントローラに対してバス占有要求(
BUSREQI)を発効する。バスコントローラは、バ
スが使用中でないことをBUSBSY信号より識別し、
BUSACKI信号によって、バスの使用許可を与え
る。本バスオペレーションの例では、同時に他の演算ユ
ニットからバス占有要求(BUSREQ2)が発効され
ているが、バスコントローラの優先判定により、BUS
REQI に対して許可が与えられている。BUSRE
Q2は、BUSREQIのオペレーション中、 BUS
BSYが発効されているため、本バスオペレーションが
終了するまでバス使用許可を受けられない。キャッシュ
コントローラはバスの使用許可を受付けると、ブロード
キャストアドレスを共有バス上に乗せ、BCAST信号
を発行する。同時にBIJSBSY信号も発効する。ブ
ロードキャストを行っているユニットのバスモニタも含
め、各演算ユニットのバスモニタは、[1CAST信号
を検出し、共有バス上のアドレスを自ユニット内に取り
込むとともに、BCASTACKを発効する。ブロード
キャスト要求を発効しているキャッシュコントローラは
、全てのバスモニタの[3CASTACKが発効された
のを確認し、BCAST信号、及びBUSBSY信号を
ネゲートする。各バスモニタは、 BCAST信号のネ
ゲートを検出し、自キャッシュ内の検索及び無効化を行
なう。又、バスコントローラはBUSBSY信号のネゲ
ートを確認し、BUSREQ2のバス占有要求に対して
許可を与える。
第6図は、ブロック転送要求のバスオペレーションを示
しており、特に要求ブロックが、他の演算ユニットのキ
ャッシュメモリに共有されている場合について示してい
る。ある演算ユニットにおいて、キャッシュメモリへの
アクセスが発生し、これがミスヒラ1〜した場合に本バ
スオペレーションが起動される。まずキャッシュコント
ローラが、バスコントローラに対してバス占有要求(o
usnco)を発効し、バス使用許可(BIISACK
信号)を受ける。
しており、特に要求ブロックが、他の演算ユニットのキ
ャッシュメモリに共有されている場合について示してい
る。ある演算ユニットにおいて、キャッシュメモリへの
アクセスが発生し、これがミスヒラ1〜した場合に本バ
スオペレーションが起動される。まずキャッシュコント
ローラが、バスコントローラに対してバス占有要求(o
usnco)を発効し、バス使用許可(BIISACK
信号)を受ける。
次にキャッシュミスヒツトしたアドレスを共有バスのア
ドレスに乗せ、主メモリ制御装置に対してブロック転送
要求を発効する(IICKREQ、 READ)。
ドレスに乗せ、主メモリ制御装置に対してブロック転送
要求を発効する(IICKREQ、 READ)。
主メモリ制御装置は1本要求を受付けると、無条件にブ
ロック転送要求受付応答(BCKACに)を発効する。
ロック転送要求受付応答(BCKACに)を発効する。
又、各バスモニタは、共有バス上のブロック転送要求を
検出すると、アドレスを自ユニット内に取り込み、キャ
ッシュメモリを検索する。その結果該当ブロックが存在
し且つ該ブロックの状態が5haredあるいはExc
lusiveであれば、BCKACK信号とともにBC
K)IIT信号をアサートする。又、該ブロックの状態
がOwnedであれば、BCKABOT信号もアサート
する。本バスオペレーションでは、2組の応答信号を示
しているが、どちらもBCKABOT信号がアサートさ
れていない場合である。キャッシュコントローラは、全
てのBGKACにがアサートされた事を確認した後、B
CKREQ及びBUSBSYをネゲートする。この時、
BCKHITがアサートされていた場合は、それを記憶
しておき、ブロックデータが転送されて来た時に、5h
ared状態としてキャッシュメモリに書き込む。又、
各バスモニタは、BCKREQがネゲートされた事を確
認した後、ヒツトしたブロックを5hared状態に変
更する。
検出すると、アドレスを自ユニット内に取り込み、キャ
ッシュメモリを検索する。その結果該当ブロックが存在
し且つ該ブロックの状態が5haredあるいはExc
lusiveであれば、BCKACK信号とともにBC
K)IIT信号をアサートする。又、該ブロックの状態
がOwnedであれば、BCKABOT信号もアサート
する。本バスオペレーションでは、2組の応答信号を示
しているが、どちらもBCKABOT信号がアサートさ
れていない場合である。キャッシュコントローラは、全
てのBGKACにがアサートされた事を確認した後、B
CKREQ及びBUSBSYをネゲートする。この時、
BCKHITがアサートされていた場合は、それを記憶
しておき、ブロックデータが転送されて来た時に、5h
ared状態としてキャッシュメモリに書き込む。又、
各バスモニタは、BCKREQがネゲートされた事を確
認した後、ヒツトしたブロックを5hared状態に変
更する。
第7図は、ブロック転送要求のバスオペレーションを示
しており、特に要求ブロックが、他の演算ユニットのキ
ャッシュメモリ内でOwned状態にある場合について
示している。キャッシュコントローラは、バスコントロ
ーラに要求してバスを占有した後、キャッシュミスヒツ
トしたアドレスを共有バスのアドレスに乗せ、主メモリ
制御装置に対してブロック転送要求を発効する(BCK
REQ 。
しており、特に要求ブロックが、他の演算ユニットのキ
ャッシュメモリ内でOwned状態にある場合について
示している。キャッシュコントローラは、バスコントロ
ーラに要求してバスを占有した後、キャッシュミスヒツ
トしたアドレスを共有バスのアドレスに乗せ、主メモリ
制御装置に対してブロック転送要求を発効する(BCK
REQ 。
READ) 、主メモリ制御装置は無条件にBCKAC
Kを発効する。又は、各バスモニタは、共有バス上のア
ドレスを取り込み、自キャッシュメモリを検索する。本
例では、2組の応答信号のみしか示していないが、演算
ユニットNα2において、Owned状態のブロックが
検出されている(BCKABOT2) 、キャッシュコ
ントローラは、全てのBCKACKが7サートされた事
を確認した後、BCKREQ及びBUSBSYをネゲー
トする。この時、BCKABOTがアサートされていれ
ば、現在行なっていたブロック起動要求を、バス占有サ
イクルからリトライする。一方、 Owned状態のブ
ロックを検出したバスモニタは、BUSIISY信号を
アサートし、共有バスを使用不可とする。
Kを発効する。又は、各バスモニタは、共有バス上のア
ドレスを取り込み、自キャッシュメモリを検索する。本
例では、2組の応答信号のみしか示していないが、演算
ユニットNα2において、Owned状態のブロックが
検出されている(BCKABOT2) 、キャッシュコ
ントローラは、全てのBCKACKが7サートされた事
を確認した後、BCKREQ及びBUSBSYをネゲー
トする。この時、BCKABOTがアサートされていれ
ば、現在行なっていたブロック起動要求を、バス占有サ
イクルからリトライする。一方、 Owned状態のブ
ロックを検出したバスモニタは、BUSIISY信号を
アサートし、共有バスを使用不可とする。
その後、BCKREQがネゲートした事を確認し、Ow
nedブロックのコピーパック要求(CP’/BKRI
IEQ)を発効し、BUSBSYをネゲートする。バス
モニタによるコピーパックオペレーションは優先度が最
も高いため、アボートされたブロック転送オペレーショ
ンに連続してOwnedブロックのコピーパックオペレ
ーションが実行可能となる。これはデッドロックを解消
する手段である。又、主メモリ制御装置は、B(JAB
OT信号を検出すると、現在受付けたブロック転送要求
を無効化する。
nedブロックのコピーパック要求(CP’/BKRI
IEQ)を発効し、BUSBSYをネゲートする。バス
モニタによるコピーパックオペレーションは優先度が最
も高いため、アボートされたブロック転送オペレーショ
ンに連続してOwnedブロックのコピーパックオペレ
ーションが実行可能となる。これはデッドロックを解消
する手段である。又、主メモリ制御装置は、B(JAB
OT信号を検出すると、現在受付けたブロック転送要求
を無効化する。
第8図は、主メモリからキャッシュメモリへのブロック
転送オペレーションを示したものである。
転送オペレーションを示したものである。
本例は、ブロックサイズを32バイトとし、−回のデー
タ転送で8バイトを転送する場合を示している。主メモ
リ制御装置は、ブロック転送の用意が整うと、バスコン
トローラに対して共有バスの占有要求を発効する。バス
使用許可を受けると、BUSBSY信号をアサートし、
共有データバス上にブロックデータを乗せ、キャッシュ
コントローラに対してデータ転送終了報告(MSACに
)を発行する。
タ転送で8バイトを転送する場合を示している。主メモ
リ制御装置は、ブロック転送の用意が整うと、バスコン
トローラに対して共有バスの占有要求を発効する。バス
使用許可を受けると、BUSBSY信号をアサートし、
共有データバス上にブロックデータを乗せ、キャッシュ
コントローラに対してデータ転送終了報告(MSACに
)を発行する。
キャッシュコントローラはデータを受取ると、データ受
付応答(MSACPT)を発効する。以下同様に4回の
データ転送を行なうと、本バスオペレーションは終了す
る。
付応答(MSACPT)を発効する。以下同様に4回の
データ転送を行なうと、本バスオペレーションは終了す
る。
又、第9図は、キャッシュコントローラ、あるいはバス
モニタからのコピーパックオペレーションを示したもの
である。共有バスを占有した後、主メモリ制御装置に対
してコピーパック要求を発効する(BCKREQ、 R
EAD) 、主メモリ制御装置から、コピーパックを受
付けた報告(BCKACK)があると、コピーパックす
べきデータを共有バス上に乗せ、データ転送報告(BS
TROB信号)を発行する。主メモリ制御装置から、デ
ータ受付応答(BTACPT信号)があると、次のデー
タをバス上に乗せ起動する。
モニタからのコピーパックオペレーションを示したもの
である。共有バスを占有した後、主メモリ制御装置に対
してコピーパック要求を発効する(BCKREQ、 R
EAD) 、主メモリ制御装置から、コピーパックを受
付けた報告(BCKACK)があると、コピーパックす
べきデータを共有バス上に乗せ、データ転送報告(BS
TROB信号)を発行する。主メモリ制御装置から、デ
ータ受付応答(BTACPT信号)があると、次のデー
タをバス上に乗せ起動する。
以下同様に4回のデータ転送を行った後、本バスオペレ
ーションは終了する。
ーションは終了する。
次に、本発明の論理キャッシュメモリの一実施例を第1
図により説明する。本実施例はデータキャッシュであっ
て、キャッシュ検索時の比較用タグとして、論理アドレ
スタグ部850、論理アドレス対応の物理アドレスタグ
を保持する物理アドレスタグ部860.各ブロックの状
態を示すステータス部861、及びデータ部870から
構成される。更に論理アドレスタグ部850は、プロセ
ス識別子部(PNO)851と、論理アドレスの上位を
保持する論理タグ部(LTAG)852から成る。又、
ステータス部861は、対応するブロックが有効か無効
かを示すVビット862と、対応するブロックの状態を
示す5TAT部863から成る。5TAT部は2ビット
幅で、ブロックの状態を5hared、 Exclus
ive、 Ownedの3状態に区別する。又、主なコ
ントロールとしては、データキャッシュコン1−ローラ
(IIECCONT) 900 、及び共有バスモニタ
(MONITOR) 910がある。又、この図には示
していないがアドレス変換バッファ(TLB)842と
、アドレス変換テーブルのアクセスを制御するとアドレ
ス変換コントローラ(MCONT)も存在する。本構成
を採るキャッシュメモリの特徴は、キャッシュメモリの
インデックスとして、アドレス変換に依存しないページ
内アドレスを用いており、且つ論理アドレスタグと物理
アドレスタグとを持っているため、論理アドレスでも物
理アドレスでもキャッシュを検索できることである。
図により説明する。本実施例はデータキャッシュであっ
て、キャッシュ検索時の比較用タグとして、論理アドレ
スタグ部850、論理アドレス対応の物理アドレスタグ
を保持する物理アドレスタグ部860.各ブロックの状
態を示すステータス部861、及びデータ部870から
構成される。更に論理アドレスタグ部850は、プロセ
ス識別子部(PNO)851と、論理アドレスの上位を
保持する論理タグ部(LTAG)852から成る。又、
ステータス部861は、対応するブロックが有効か無効
かを示すVビット862と、対応するブロックの状態を
示す5TAT部863から成る。5TAT部は2ビット
幅で、ブロックの状態を5hared、 Exclus
ive、 Ownedの3状態に区別する。又、主なコ
ントロールとしては、データキャッシュコン1−ローラ
(IIECCONT) 900 、及び共有バスモニタ
(MONITOR) 910がある。又、この図には示
していないがアドレス変換バッファ(TLB)842と
、アドレス変換テーブルのアクセスを制御するとアドレ
ス変換コントローラ(MCONT)も存在する。本構成
を採るキャッシュメモリの特徴は、キャッシュメモリの
インデックスとして、アドレス変換に依存しないページ
内アドレスを用いており、且つ論理アドレスタグと物理
アドレスタグとを持っているため、論理アドレスでも物
理アドレスでもキャッシュを検索できることである。
まず、命令実行ユニットからのアクセスに対する処理を
第1図を用いて説明する。
第1図を用いて説明する。
(1)リードヒツト
命令実行ユニットからリードアクセスがあると。
プロセス識別子がレジスタ830へ、論理アドレスが、
レジスタ800にセットされる。論理アドレスタグ部8
50.ステータス部861は、論理アドレス800の内
、アドレス変換に依存しない論理インデックス部802
(LINDX)の出力がセレクタ891で選択され、
これによってアクセスされる。一方、データ部870は
、論理インデックス部802及びブロック内のアドレス
部(BA)803によってアクセスされる。このアクセ
スで読み出された論理アドレスタグ部850の出力の内
、プロセス識別子851はレジスタ830の内容と比較
器880によって比較され、一致検証が行なわれる9一
方、読み出された論理タグ部852は、レジスタ800
の論理タグ部801と比較器881によって比較され、
一致検証が行なわれる。これら2つの比較器の出力と、
ステータス部861内の有効ビット862の出力がアン
ドゲート883に入力され、要求データがキャッシュメ
モリ内に存在するかどうかが明らかとなる。この−数情
報はデータキャッシュコントローラ900に入力され、
もし一致していればデータ部870の出力がオペランド
バッファレジスタ(OB2)820にセットされる。
レジスタ800にセットされる。論理アドレスタグ部8
50.ステータス部861は、論理アドレス800の内
、アドレス変換に依存しない論理インデックス部802
(LINDX)の出力がセレクタ891で選択され、
これによってアクセスされる。一方、データ部870は
、論理インデックス部802及びブロック内のアドレス
部(BA)803によってアクセスされる。このアクセ
スで読み出された論理アドレスタグ部850の出力の内
、プロセス識別子851はレジスタ830の内容と比較
器880によって比較され、一致検証が行なわれる9一
方、読み出された論理タグ部852は、レジスタ800
の論理タグ部801と比較器881によって比較され、
一致検証が行なわれる。これら2つの比較器の出力と、
ステータス部861内の有効ビット862の出力がアン
ドゲート883に入力され、要求データがキャッシュメ
モリ内に存在するかどうかが明らかとなる。この−数情
報はデータキャッシュコントローラ900に入力され、
もし一致していればデータ部870の出力がオペランド
バッファレジスタ(OB2)820にセットされる。
(2)リードミス
キャッシュメモリの一致検証の動作は前述の場合と同様
である。一致検証の結果、もしミスヒツトであれば、レ
ジスタ800の内容がデータ論理アドレスレジスタ(E
LAR)832にセットされる。この時、同時にステー
タス部861内のブロックステータス(STAT)86
3の内容がキャッシュコントローラ900に入力され、
リプレースすべきブロックの状態がチエツクされる。そ
の結果Oνned状態であれば、コピーバックのために
、リプレースブロックの論理アドレスがコピーバックア
ドレスレジスタ(CPBKR)833にセットされる。
である。一致検証の結果、もしミスヒツトであれば、レ
ジスタ800の内容がデータ論理アドレスレジスタ(E
LAR)832にセットされる。この時、同時にステー
タス部861内のブロックステータス(STAT)86
3の内容がキャッシュコントローラ900に入力され、
リプレースすべきブロックの状態がチエツクされる。そ
の結果Oνned状態であれば、コピーバックのために
、リプレースブロックの論理アドレスがコピーバックア
ドレスレジスタ(CPBKR)833にセットされる。
いま、リプレース処理が不要な場合をまず説明すると、
データキャッシュコントローラ900は、アドレス変換
コントローラ(図示せず)に要求ブロックのアドレス変
更を要求する。アドレス変換コントローラは、セレクタ
890によりレジスタ832を選択して、TLB842
により論理アドレスを物理アドレスに変換し、物理アド
レスレジスタ(PAR)834にセットする。そして、
キャッシュコントローラ900にアドレス変換の終了を
報告する。キャッシュコントローラ900は、バス占有
要求(口LISREQ) 908をアサートし、バスを
占有した後、ブロック転送要求(BCKREQ)906
を発効する。この要求に対して、他のキャッシュメモリ
内の該当ブロックがOwnedされている事を示すアボ
ート要求(BCKABOT) 901がアサートされる
と、再度同一のブロックアドレスでバス占有からりドラ
イドする。又、アポ−1〜要求がなく、且つ該当データ
が他のキャッシュメモリ内に共有されている事を示す、
8CKHITがアサートされた場合には、これを記憶し
ておき、ブロック転送終了後にライン922及びセレク
タ893を用いて、該当ブロックの状態を5hared
とする。
データキャッシュコントローラ900は、アドレス変換
コントローラ(図示せず)に要求ブロックのアドレス変
更を要求する。アドレス変換コントローラは、セレクタ
890によりレジスタ832を選択して、TLB842
により論理アドレスを物理アドレスに変換し、物理アド
レスレジスタ(PAR)834にセットする。そして、
キャッシュコントローラ900にアドレス変換の終了を
報告する。キャッシュコントローラ900は、バス占有
要求(口LISREQ) 908をアサートし、バスを
占有した後、ブロック転送要求(BCKREQ)906
を発効する。この要求に対して、他のキャッシュメモリ
内の該当ブロックがOwnedされている事を示すアボ
ート要求(BCKABOT) 901がアサートされる
と、再度同一のブロックアドレスでバス占有からりドラ
イドする。又、アポ−1〜要求がなく、且つ該当データ
が他のキャッシュメモリ内に共有されている事を示す、
8CKHITがアサートされた場合には、これを記憶し
ておき、ブロック転送終了後にライン922及びセレク
タ893を用いて、該当ブロックの状態を5hared
とする。
BCKHITがアサートされなかった場合には、ブロッ
ク転送後、該当データの状態をExclusiveとす
る。
ク転送後、該当データの状態をExclusiveとす
る。
ブロックデータが転送されて来た場合は、−旦主メモリ
リードレジスタ841に取り込んだ後、セレクタ894
で選択してデータ部870に書き込む。この時、対応す
る物理アドレスをレジスタ833から物理アドレスタグ
部860に入力し、ブロックの転送終了後書込む。
リードレジスタ841に取り込んだ後、セレクタ894
で選択してデータ部870に書き込む。この時、対応す
る物理アドレスをレジスタ833から物理アドレスタグ
部860に入力し、ブロックの転送終了後書込む。
次に、要求データを含むブロックの転送に先立つて、リ
プレースブロックのコピーバックが必要な場合には、キ
ャッシュコントローラ900からアドレス変換コントロ
ーラにコピーバックアドレスの変換要求が発効される。
プレースブロックのコピーバックが必要な場合には、キ
ャッシュコントローラ900からアドレス変換コントロ
ーラにコピーバックアドレスの変換要求が発効される。
アドレス変換コントローラは、セレクタ890によって
、コピーバックアドレスレジスタ833を選択し、 T
LB842によって物理アドレスに変換した後、レジス
タ834にセットするとともに、キャッシュコントロー
ラ900にアドレス変換終了を報告する。キャッシュコ
ントローラ900は、共有バスを占有した後、主メモリ
制御装置に対してコピーバック要求を発効する。該要求
が受付けられると、レジスタ800のブロック内アドレ
ス803を更新しながら、データ部870内のリプレー
スブロックを主メモリライトレジスタ840を経て、主
メモリ制御装置に転送する。コピーバック処理が終了す
ると、前述と同じ手順で要求データのブロック転送を行
なう。
、コピーバックアドレスレジスタ833を選択し、 T
LB842によって物理アドレスに変換した後、レジス
タ834にセットするとともに、キャッシュコントロー
ラ900にアドレス変換終了を報告する。キャッシュコ
ントローラ900は、共有バスを占有した後、主メモリ
制御装置に対してコピーバック要求を発効する。該要求
が受付けられると、レジスタ800のブロック内アドレ
ス803を更新しながら、データ部870内のリプレー
スブロックを主メモリライトレジスタ840を経て、主
メモリ制御装置に転送する。コピーバック処理が終了す
ると、前述と同じ手順で要求データのブロック転送を行
なう。
(3)ライトヒツト
ライトアクセス時には、レジスタ830にプロセス識別
子、レジスタ800に論理アドレス、レジスタ821に
ライトデータがセットされる。そうするとまずレジスタ
830とレジスタ800の内容により、キャッシュメモ
リの一致検証を行なう。この時、当該ブロックの状態を
示す5TAT863がキャッシュコントローラ900に
入力される。
子、レジスタ800に論理アドレス、レジスタ821に
ライトデータがセットされる。そうするとまずレジスタ
830とレジスタ800の内容により、キャッシュメモ
リの一致検証を行なう。この時、当該ブロックの状態を
示す5TAT863がキャッシュコントローラ900に
入力される。
その結果、キャツシュヒツトで、且つ当該ブロックの状
態がOwned又はExclusiveであった場合は
、レジスタ821の内容をセレクタ894で選択し。
態がOwned又はExclusiveであった場合は
、レジスタ821の内容をセレクタ894で選択し。
データ部870に書込む、一方当該ブロックの状態が5
haredであれば、データ部870に書込むとともに
、レジスタ800の内容をレジスタ832にセットし、
同時にアドレス変換要求を発効する。
haredであれば、データ部870に書込むとともに
、レジスタ800の内容をレジスタ832にセットし、
同時にアドレス変換要求を発効する。
アドレス変換が終了すると、レジスタ834の内容を共
有バス上に乗せ、プロットキャストにより他のキャッシ
ュに無効化要求を発効する。
有バス上に乗せ、プロットキャストにより他のキャッシ
ュに無効化要求を発効する。
(4)ライトミスヒツト
キャッシュミスヒツトに伴うブロック転送手順は、リー
ドミスヒツト時と同様になる。ブロック転送終了後のラ
イト手順は、ライトヒツト時の処理と同様になる。
ドミスヒツト時と同様になる。ブロック転送終了後のラ
イト手順は、ライトヒツト時の処理と同様になる。
次に、共有バスのモニタ動作について第1図を用いて説
明する。
明する。
(1)ブロードキャスト検出時
バスモニタ910は、共有バスから信号914よりブロ
ードキャスト要求を検出すると、アドレスバス301か
ら物理アドレスを取り込み、レジスタ810にセットす
るとともに、信号915により応答を返す、レジスタ8
10は、アドレス変換に依存しない物理インデックス部
812と物理アドレスタグ811、及びブロック内アド
レス813から成る。セレクタ891によりレジスタ8
10の物理インデックス812を選択し、これによって
、物理アドレスタグ部860とステータス部861をア
クセスする。物理アドレスタグ部860の出力は、レジ
スタ810の物理タグ811の内容と比較器882によ
って比較され、その出力はステータス部861の有効ビ
ット862の出力とともにアンドゲート884に入力さ
れ、モニタした物理データがキャッシュメモリ内に存在
するかどうかが明らかとなる。この−数情報はバスモニ
タ910に入力され、一致していればライン921及び
セレクタ892により、該当ブロックの有効ビットがク
リアされる。
ードキャスト要求を検出すると、アドレスバス301か
ら物理アドレスを取り込み、レジスタ810にセットす
るとともに、信号915により応答を返す、レジスタ8
10は、アドレス変換に依存しない物理インデックス部
812と物理アドレスタグ811、及びブロック内アド
レス813から成る。セレクタ891によりレジスタ8
10の物理インデックス812を選択し、これによって
、物理アドレスタグ部860とステータス部861をア
クセスする。物理アドレスタグ部860の出力は、レジ
スタ810の物理タグ811の内容と比較器882によ
って比較され、その出力はステータス部861の有効ビ
ット862の出力とともにアンドゲート884に入力さ
れ、モニタした物理データがキャッシュメモリ内に存在
するかどうかが明らかとなる。この−数情報はバスモニ
タ910に入力され、一致していればライン921及び
セレクタ892により、該当ブロックの有効ビットがク
リアされる。
(2)ブロック転送起動検出時
バスモニタ910は、共有バスから信号線918よりブ
ロック転送起動を検出すると、アドレスバス301から
物理アドレスを取り込みレジスタ810にセットする。
ロック転送起動を検出すると、アドレスバス301から
物理アドレスを取り込みレジスタ810にセットする。
次にレジスタ810の物理アドレスで、キャッシュメモ
リの一致検証を行なうとともに、ブロックのステータス
情報863をキャッシュコントローラ900に取り込む
、その結果、キャツシュヒツト且つ該当ブロックの状態
が5haredかExclusiveであれば、信号線
916によりヒツトした事を、ブロック転送起動元に報
告する。その後、該当ブロックの状態を信号線923及
びセレクタ893によって5hared状態に変更する
。又、該当ブロックの状態がOwnedであった場合に
は、信号線915により実行中のブロック転送起動をア
ボートする。その後、信号線911゜912により共有
バスを占有し、レジスタ810の物理アドレスをセレク
タ895により選択してアドレスバス301に乗せ、コ
ピーバック起動を行なう、該起動が主メモリ制御装置に
受は付けられると、レジスタ810のブロック内アドレ
ス813を更新することによって、データ部870のコ
ピーバックブロックを、レジスタ840を経て共有デー
タバス302に乗せ、コピーバック処理を行なう。その
後該当ブロックの状態をExclusiveに変更する
。又、該当ブロックが存在しない場合には、BCKAC
K917 をアサートし、ブロック起動元に応答を返す
。
リの一致検証を行なうとともに、ブロックのステータス
情報863をキャッシュコントローラ900に取り込む
、その結果、キャツシュヒツト且つ該当ブロックの状態
が5haredかExclusiveであれば、信号線
916によりヒツトした事を、ブロック転送起動元に報
告する。その後、該当ブロックの状態を信号線923及
びセレクタ893によって5hared状態に変更する
。又、該当ブロックの状態がOwnedであった場合に
は、信号線915により実行中のブロック転送起動をア
ボートする。その後、信号線911゜912により共有
バスを占有し、レジスタ810の物理アドレスをセレク
タ895により選択してアドレスバス301に乗せ、コ
ピーバック起動を行なう、該起動が主メモリ制御装置に
受は付けられると、レジスタ810のブロック内アドレ
ス813を更新することによって、データ部870のコ
ピーバックブロックを、レジスタ840を経て共有デー
タバス302に乗せ、コピーバック処理を行なう。その
後該当ブロックの状態をExclusiveに変更する
。又、該当ブロックが存在しない場合には、BCKAC
K917 をアサートし、ブロック起動元に応答を返す
。
次に、本発明の第2の実施例を第11図を用いて詳細に
説明する0本実施例が適用されるデータ処理装置の構成
は、第2図に、又、共有バス300の構成は第3図に示
される。第5図〜第9図には。
説明する0本実施例が適用されるデータ処理装置の構成
は、第2図に、又、共有バス300の構成は第3図に示
される。第5図〜第9図には。
共有バス上のバスオペレーションと、タイミングフロー
が示される。各回の詳細は、第1の実施例にて説明して
あり、本実施例においても同一の構成となるため、説明
は省略する。第11図は、論理キャッシュメモリの構成
を示している。論理キャッシュメモリは、主メモリのデ
ータを一時的に保持するデータ部1300と、該データ
に対応する論理アドレス情報を保持する論理ディレクト
リ部1100及び、該データに対応する物理ディレクト
リ部1200から構成される。論理ディレクトリ部11
00は、プロセス識別子(PNO)1101と、論理ア
ドレスのビット0−17を保持する論理タグ部(LTA
G)1102と、対応するブロックが有効か無効かを示
すVビット1103゜及び対応するブロックの状態を示
す5TAT部1104から成る。S ’I’ A T部
は、2ビツト幅で、ブロックの状態を5hared、
[Exclusiva 、 Ownadの3状態に区別
する。一方、物理ディレクトリ部1200は、物理アド
レスのビット3−19を保持する物理タグ部(PTAG
)1201と、対応するブロックの有効性を示すVビッ
ト1202から成る。物理ディレクトリ部1200は、
4つのセットから成り、セレクタ1205によって選択
されたアドレス5ビツトによって並列にアクセスされる
。又、セレクタ1206によって選択されたアドレス2
ビツトによって、セットの選択が行なわれる。主な制御
系としては、キャッシュメモリへのブロック転送を制御
するデータキャッシュコントローラ(ECCONT)
1400、及び、共有バス上のトランザクションを検出
し、キャッシュの無効化等を制御する共有バスモニタ(
MONiTOR)1500がある。
が示される。各回の詳細は、第1の実施例にて説明して
あり、本実施例においても同一の構成となるため、説明
は省略する。第11図は、論理キャッシュメモリの構成
を示している。論理キャッシュメモリは、主メモリのデ
ータを一時的に保持するデータ部1300と、該データ
に対応する論理アドレス情報を保持する論理ディレクト
リ部1100及び、該データに対応する物理ディレクト
リ部1200から構成される。論理ディレクトリ部11
00は、プロセス識別子(PNO)1101と、論理ア
ドレスのビット0−17を保持する論理タグ部(LTA
G)1102と、対応するブロックが有効か無効かを示
すVビット1103゜及び対応するブロックの状態を示
す5TAT部1104から成る。S ’I’ A T部
は、2ビツト幅で、ブロックの状態を5hared、
[Exclusiva 、 Ownadの3状態に区別
する。一方、物理ディレクトリ部1200は、物理アド
レスのビット3−19を保持する物理タグ部(PTAG
)1201と、対応するブロックの有効性を示すVビッ
ト1202から成る。物理ディレクトリ部1200は、
4つのセットから成り、セレクタ1205によって選択
されたアドレス5ビツトによって並列にアクセスされる
。又、セレクタ1206によって選択されたアドレス2
ビツトによって、セットの選択が行なわれる。主な制御
系としては、キャッシュメモリへのブロック転送を制御
するデータキャッシュコントローラ(ECCONT)
1400、及び、共有バス上のトランザクションを検出
し、キャッシュの無効化等を制御する共有バスモニタ(
MONiTOR)1500がある。
次に各ディレクトリのアクセス手順を示す。論理ディレ
クトリ部1100が、論理アドレス1001によってア
クセスされる場合には、論理アドレス1001のビット
18−26がセレクタ1110により選択され、インデ
クスアドレスとなる。この内、ビット20−26は、ア
ドレス変換の対象とならない部分であり、ビット18−
19は、アドレス変換に依存して変化する部分である。
クトリ部1100が、論理アドレス1001によってア
クセスされる場合には、論理アドレス1001のビット
18−26がセレクタ1110により選択され、インデ
クスアドレスとなる。この内、ビット20−26は、ア
ドレス変換の対象とならない部分であり、ビット18−
19は、アドレス変換に依存して変化する部分である。
一方、物理ディレクトリ部1200が論理アドレスによ
ってアクセスされる場合には、論理アドレス1001の
アドレス変換に依存しないビット20−26がセレクタ
1205により選択されて、セット内インデクスアドレ
スとなる。又、アドレス変換に依存するビット18−1
9がセレクタ1206によって選択され、4ビツトの選
択に用いられる。
ってアクセスされる場合には、論理アドレス1001の
アドレス変換に依存しないビット20−26がセレクタ
1205により選択されて、セット内インデクスアドレ
スとなる。又、アドレス変換に依存するビット18−1
9がセレクタ1206によって選択され、4ビツトの選
択に用いられる。
次に、物理アドレス1005によって、物理ディレクト
リ1200がアクセスされる場合を示す。
リ1200がアクセスされる場合を示す。
物理アドレス1005の内、アドレス変換に依存しない
ピッI−20−26が、セレクタ1205によって選択
されセット内インデクスアドレスとなる。物理ディレク
トリ部1200の各セットから読出された物理タグ部1
201は、各セット毎に設けられた比較器1203によ
って物理アドレス1005のビット3−19と比較され
、該当データの有無が検出される。又、物理アドレス1
005によって論理ディレクトリ部1100がアクセス
される場合には、前記手順に従って、−旦物理ディレク
トリ部1200がアクセスされ、該当するデータが存在
すれば比較器12o3の出力が、エンコーダ1204に
よって2ビツトの情報にコード化される。該コード情報
は、物理アドレス1005のビット20−26にマージ
され、セレクタ1110によって選択された後、論理デ
ィレクトリ部1100のインデクスアドレスとなる。又
、キャッシュデータ部1300が、論理アドレス1oo
tによってアクセスされる場合は、論理アドレス1o0
1のビット18−31がセレクタ1304によって選択
されインデクスアドレスとして使用される。更に、物理
アドレス1005によってアクセスされる場合には、−
旦物理ディレクトリ部1200がアクセスされ、比較器
1203によって論理ブロックの存在が明らかとなれば
、エンコーダ1204の出力が、物理アドレス1005
のビット20−31とマージされた後、セレクタ130
4で選択されインデクスアドレスとなる。
ピッI−20−26が、セレクタ1205によって選択
されセット内インデクスアドレスとなる。物理ディレク
トリ部1200の各セットから読出された物理タグ部1
201は、各セット毎に設けられた比較器1203によ
って物理アドレス1005のビット3−19と比較され
、該当データの有無が検出される。又、物理アドレス1
005によって論理ディレクトリ部1100がアクセス
される場合には、前記手順に従って、−旦物理ディレク
トリ部1200がアクセスされ、該当するデータが存在
すれば比較器12o3の出力が、エンコーダ1204に
よって2ビツトの情報にコード化される。該コード情報
は、物理アドレス1005のビット20−26にマージ
され、セレクタ1110によって選択された後、論理デ
ィレクトリ部1100のインデクスアドレスとなる。又
、キャッシュデータ部1300が、論理アドレス1oo
tによってアクセスされる場合は、論理アドレス1o0
1のビット18−31がセレクタ1304によって選択
されインデクスアドレスとして使用される。更に、物理
アドレス1005によってアクセスされる場合には、−
旦物理ディレクトリ部1200がアクセスされ、比較器
1203によって論理ブロックの存在が明らかとなれば
、エンコーダ1204の出力が、物理アドレス1005
のビット20−31とマージされた後、セレクタ130
4で選択されインデクスアドレスとなる。
論理ディレクトリ部1100、物理ディレクトリ部12
00、及びキャッシュデータ部1300への登録は、キ
ャッシュメモリがミスヒツトした場合にのみ実施される
。この時、論理ディレクトリ部1100と、キャッシュ
データ部1300のインデクスアドレスとしては、論理
アドレスtootのビット18−31が、それぞれ、セ
レクタ1110及び1304によって選択される。物理
ディレクトリ部1200のインデクスアドレスとしては
、論理アドレス1001のビット20−26がセレクタ
1205によって選択され、セット内インデクスアドレ
スとして用いられ、論理アドレス1001のビット18
−19がセレクタ1206によって選択され、セット選
択アドレスとして用いられる。
00、及びキャッシュデータ部1300への登録は、キ
ャッシュメモリがミスヒツトした場合にのみ実施される
。この時、論理ディレクトリ部1100と、キャッシュ
データ部1300のインデクスアドレスとしては、論理
アドレスtootのビット18−31が、それぞれ、セ
レクタ1110及び1304によって選択される。物理
ディレクトリ部1200のインデクスアドレスとしては
、論理アドレス1001のビット20−26がセレクタ
1205によって選択され、セット内インデクスアドレ
スとして用いられ、論理アドレス1001のビット18
−19がセレクタ1206によって選択され、セット選
択アドレスとして用いられる。
次に、命令実行ユニットからの論理アドレスによるアク
セスに対する処理を、第11図、リードアクセス時の処
理フローを示す第12図、及びライトアクセス時の処理
フローを示す第13図に基づいて詳細に説明する。
セスに対する処理を、第11図、リードアクセス時の処
理フローを示す第12図、及びライトアクセス時の処理
フローを示す第13図に基づいて詳細に説明する。
(1) リードヒツト
命令実行ユニットからリードアクセスがあるとプロセス
識別子がレジスタ1000へ、論理アドレスがレジスタ
1001にセットされる。次に、論理ディレクトリ11
00は、論理アドレス1001の内、アドレス変換に依
存するビット18−19を含むインデクスアドレス(ビ
ット18−26)が、セレクタ1110により選択され
アクセスされる。一方キャッシュデータ部は、論理アド
レ不1001のビット18−31がセレクタ1304に
より選択されアクセスされる。論理ディレクトリより読
出された情報の内、プロセス識別子11O1はレジスタ
1000の内容と、比較器1105によって比較される
。又、論理タグ1102は、論理アドレスレジスタ10
01のビット0−17と比較器1106によって比較さ
れる。これら2つの比較器の出力と、論理ディレクトリ
の有効ピッl−1103の出力がアンドゲート1107
に入力され、要求データがキャッシュメモリ内に存在す
るかどうかが明らかとなる。この−数情報は、データキ
ャッシュコントローラ1400に入力され、もし一致し
ていればキャッシュデータ部1300の出力が、オペラ
ンドバッファレジスタ(OBR)1009にセットされ
命令実行ユニットに送られる。
識別子がレジスタ1000へ、論理アドレスがレジスタ
1001にセットされる。次に、論理ディレクトリ11
00は、論理アドレス1001の内、アドレス変換に依
存するビット18−19を含むインデクスアドレス(ビ
ット18−26)が、セレクタ1110により選択され
アクセスされる。一方キャッシュデータ部は、論理アド
レ不1001のビット18−31がセレクタ1304に
より選択されアクセスされる。論理ディレクトリより読
出された情報の内、プロセス識別子11O1はレジスタ
1000の内容と、比較器1105によって比較される
。又、論理タグ1102は、論理アドレスレジスタ10
01のビット0−17と比較器1106によって比較さ
れる。これら2つの比較器の出力と、論理ディレクトリ
の有効ピッl−1103の出力がアンドゲート1107
に入力され、要求データがキャッシュメモリ内に存在す
るかどうかが明らかとなる。この−数情報は、データキ
ャッシュコントローラ1400に入力され、もし一致し
ていればキャッシュデータ部1300の出力が、オペラ
ンドバッファレジスタ(OBR)1009にセットされ
命令実行ユニットに送られる。
(2)リードミス
キャッシュメモリの一致検証の動作は前述の場合と同様
である。一致検証の結果、もしミスヒツトであれば、レ
ジスタ1001の内容が、データ論理アドレスレジスタ
(ELAR)1602にセットされる。この時同時に論
理デイレ、クトリ1100内のブロックステータス11
04の内容がキャッシュコントローラ1400に入力さ
れ、リプレースすべきブロックの状態がチエツクされる
。その結果、0%+ned状態であれば、コピーパック
のために、リプレースブロックの論理アドレスが、コピ
ーパックアドレスレジスタ(CPBKR)1603にセ
ットされる。
である。一致検証の結果、もしミスヒツトであれば、レ
ジスタ1001の内容が、データ論理アドレスレジスタ
(ELAR)1602にセットされる。この時同時に論
理デイレ、クトリ1100内のブロックステータス11
04の内容がキャッシュコントローラ1400に入力さ
れ、リプレースすべきブロックの状態がチエツクされる
。その結果、0%+ned状態であれば、コピーパック
のために、リプレースブロックの論理アドレスが、コピ
ーパックアドレスレジスタ(CPBKR)1603にセ
ットされる。
いま、リプレース処理が不要な場合をまず説明すると、
データキャッシュコントローラ1400は、アドレス変
換コントローラ(図示せず)に要求ブロックのアドレス
変換を要求する。アドレス変換コントローラは、セレク
タ1604によりレジスタ1602を選択して、アドレ
ス変換バッファ(TLB)1600により論理アドレス
を物理アドレスに変換し、物理アドレスレジスタ(PA
R)1605にセットする。その後キャッシュコントロ
ーラ1400に、アドレス変換の終了を報告する、キャ
ッシュコントローラ1400は、バス占有要求(BUS
REQ) 1408をアサートし、バスを占有した後、
ブロック転送要求(BCKRIEQ) 1406を発効
する。この要求に対して、他のキャッシュメモリ内に該
当ブロックがO%+nedされている事を示すアボート
要求(BIJABOT) 1401がアサートされる
と、再度同一のブロックアドレスで、バス占有からリト
ライする。又、アボート要求がなく、且つ該当ブロック
が他のキャッシュメモリ内に共有されている事を示す、
BCKHiT1402がアサートされた場合には、これ
を記憶しておき、ブロック転送終了後に、該当ブロック
の状態を5haredとする。
データキャッシュコントローラ1400は、アドレス変
換コントローラ(図示せず)に要求ブロックのアドレス
変換を要求する。アドレス変換コントローラは、セレク
タ1604によりレジスタ1602を選択して、アドレ
ス変換バッファ(TLB)1600により論理アドレス
を物理アドレスに変換し、物理アドレスレジスタ(PA
R)1605にセットする。その後キャッシュコントロ
ーラ1400に、アドレス変換の終了を報告する、キャ
ッシュコントローラ1400は、バス占有要求(BUS
REQ) 1408をアサートし、バスを占有した後、
ブロック転送要求(BCKRIEQ) 1406を発効
する。この要求に対して、他のキャッシュメモリ内に該
当ブロックがO%+nedされている事を示すアボート
要求(BIJABOT) 1401がアサートされる
と、再度同一のブロックアドレスで、バス占有からリト
ライする。又、アボート要求がなく、且つ該当ブロック
が他のキャッシュメモリ内に共有されている事を示す、
BCKHiT1402がアサートされた場合には、これ
を記憶しておき、ブロック転送終了後に、該当ブロック
の状態を5haredとする。
BCKHiTがアサートされなかった場合には、ブロッ
ク転送後、該当データの状態をExclusiveとす
る。
ク転送後、該当データの状態をExclusiveとす
る。
ブロックデータが転送されてきた場合は、−旦主メモリ
リードレジスタ1302に取り込んだ後、セレクタ13
03で選択して、データ部1300に書込む、この時の
インデクスアドレスは、論理アドレスレジスタ1001
のビット18−31がセレクタ1304によって選択さ
れる。ブロック転送が終了した後、プロセス識別子10
00及び、論理アドレスレジスタ1001のビット0−
17が、それぞれ論理ディレクトリ1100の領域11
01.1102に登録される。この時のインデクスアド
レスは、セレクタ1110によって、レジスタ1001
のビット18−26が選択される。更に、物理アドレス
レジスタ1605のビット3−19が、物理ディレクト
リ1200に登録される。この時のインデクスアドレス
は、セレクタ1205により、レジスタ1001のビッ
ト20−26が選択されセット内インデクスアドレスと
なり、更にレジスタ1001のビット18−19がセレ
クタ1206によって選択され、セット選択アドレスと
なる。
リードレジスタ1302に取り込んだ後、セレクタ13
03で選択して、データ部1300に書込む、この時の
インデクスアドレスは、論理アドレスレジスタ1001
のビット18−31がセレクタ1304によって選択さ
れる。ブロック転送が終了した後、プロセス識別子10
00及び、論理アドレスレジスタ1001のビット0−
17が、それぞれ論理ディレクトリ1100の領域11
01.1102に登録される。この時のインデクスアド
レスは、セレクタ1110によって、レジスタ1001
のビット18−26が選択される。更に、物理アドレス
レジスタ1605のビット3−19が、物理ディレクト
リ1200に登録される。この時のインデクスアドレス
は、セレクタ1205により、レジスタ1001のビッ
ト20−26が選択されセット内インデクスアドレスと
なり、更にレジスタ1001のビット18−19がセレ
クタ1206によって選択され、セット選択アドレスと
なる。
次に、要求データを含むブロックの転送に先立ってリプ
レースブロックのコピーバックが必要な場合には、キャ
ッシュコントローラ1400から、アドレス変換コント
ローラにアドレス変換要求が発効される。アドレス変換
コントローラは、セレクタ1604によりコピーバック
アドレスレジスタ1603を選択し、 TLB1600
によって物理アドレスに変換した後、レジスタ1605
にセットすると共に、キャッシュコントローラにアドレ
ス変換の終了を報告する。キャッシュコントローラ14
00は、共有バスを占有した後、主メモリ制御装置に対
してコピーバック要求を発効する。該要求が受付けられ
ると、レジスタ1001のブロック内アドレス(ビット
27−29)を更新しながら、データ部1300のリプ
レースブロックを主メモリライトレジスタ1301を経
て、主メモリ制御装置に転送する。コピーバック処理が
終了すると、前述と同じ手順で要求データのブロック転
送を行なう。
レースブロックのコピーバックが必要な場合には、キャ
ッシュコントローラ1400から、アドレス変換コント
ローラにアドレス変換要求が発効される。アドレス変換
コントローラは、セレクタ1604によりコピーバック
アドレスレジスタ1603を選択し、 TLB1600
によって物理アドレスに変換した後、レジスタ1605
にセットすると共に、キャッシュコントローラにアドレ
ス変換の終了を報告する。キャッシュコントローラ14
00は、共有バスを占有した後、主メモリ制御装置に対
してコピーバック要求を発効する。該要求が受付けられ
ると、レジスタ1001のブロック内アドレス(ビット
27−29)を更新しながら、データ部1300のリプ
レースブロックを主メモリライトレジスタ1301を経
て、主メモリ制御装置に転送する。コピーバック処理が
終了すると、前述と同じ手順で要求データのブロック転
送を行なう。
(3)ライトヒツト
ライトアクセス時には、レジスタ1000にプロセス識
別子、レジスタ1001に論理アドレス、レジスタ10
10にライトデータがセットされる。
別子、レジスタ1001に論理アドレス、レジスタ10
10にライトデータがセットされる。
次に、レジスタ1000と、レジスタ1001の内容に
より、論理ディレクトリ1100がアクセスされ一致検
証が行なわれる。この時、該ブロックの状態を示す5T
ATI 104が、キャッシュコントローラ1400に
入力される。その結果、キャツシュヒツトで、且つ当該
ブロックの状態が0%1ned又はExclusive
であれば、レジスタ1001のビット18−31はイン
デクスアドレスとして、レジスタ1010の内容をセレ
クタ1303で選択しデータ部1300に書込む。この
時、ブロックの状態をOwnedとする。一方当該ブロ
ックの状態が5haredであれば、データ部1300
に書込み、ブロックステータスをOwnedに変更する
と共に、レジスタ1001の内容をレジスタ1602に
セットし、アドレス変換要求を発効する。アドレス変換
が終了すると、物理アドレスレジスタ1605の内容を
共有バス300上に乗せ、ブロードキャスト(BCAS
T)1404により自分を含めた全てのキャッシュに対
して無効化要求を発効する。
より、論理ディレクトリ1100がアクセスされ一致検
証が行なわれる。この時、該ブロックの状態を示す5T
ATI 104が、キャッシュコントローラ1400に
入力される。その結果、キャツシュヒツトで、且つ当該
ブロックの状態が0%1ned又はExclusive
であれば、レジスタ1001のビット18−31はイン
デクスアドレスとして、レジスタ1010の内容をセレ
クタ1303で選択しデータ部1300に書込む。この
時、ブロックの状態をOwnedとする。一方当該ブロ
ックの状態が5haredであれば、データ部1300
に書込み、ブロックステータスをOwnedに変更する
と共に、レジスタ1001の内容をレジスタ1602に
セットし、アドレス変換要求を発効する。アドレス変換
が終了すると、物理アドレスレジスタ1605の内容を
共有バス300上に乗せ、ブロードキャスト(BCAS
T)1404により自分を含めた全てのキャッシュに対
して無効化要求を発効する。
(4)ライトミスヒツト
キャッシュミスヒツトに伴なうブロック転送手順は、リ
ードミスヒツト時と同様である。又、ブロック転送終了
後のライト手順は、ライトヒット時の処理と同様である
。
ードミスヒツト時と同様である。又、ブロック転送終了
後のライト手順は、ライトヒット時の処理と同様である
。
次に共有バスモニタの動作について、第11図を用いて
説明する。
説明する。
(1)ブロードキャスト検出時
バスモニタ1500が、共有バス300上にブロードキ
ャストのトランザクションを検出した場合の処理が第1
4図に示されている。バスモニタ1500は、共有バス
300から信号1504よリブロードキャスト要求を検
出すると、アドレスバス301から物理アドレスを取込
み、物理アドレスレジスタ1005にセットするととも
に。
ャストのトランザクションを検出した場合の処理が第1
4図に示されている。バスモニタ1500は、共有バス
300から信号1504よリブロードキャスト要求を検
出すると、アドレスバス301から物理アドレスを取込
み、物理アドレスレジスタ1005にセットするととも
に。
BCASTACに信号1503により応答を返す6次に
物理アドレス1005の内、アドレス変換に依存しない
ビット20−26が、セレクタ1205により選択され
、物理ディレクトリ1200の4つのセットが同時にア
クセスされる。各セットより読出された物理タグ部12
01は、各セット毎に設けられた比較器1203によっ
て、レジスタ1005のビット3−19と比較される。
物理アドレス1005の内、アドレス変換に依存しない
ビット20−26が、セレクタ1205により選択され
、物理ディレクトリ1200の4つのセットが同時にア
クセスされる。各セットより読出された物理タグ部12
01は、各セット毎に設けられた比較器1203によっ
て、レジスタ1005のビット3−19と比較される。
比較器1203の出力は、物理ディレクトリ1200の
有効ビット1202とアンドされ、モニタした物理アド
レスに対応するデータがキャッシュメモリ内に存在する
かどうかが明らかとなる。一致検証の結果は、バスモニ
タ1500に入力され、一致が検出されると、バスモニ
タ1500からキャッシュコントローラ1400に割込
要求が発効される。その後、比較器1203の出力が、
エンコーダ1204によってコード化された情報と、物
理アドレスのビット20−26がマージされ、セレクタ
1110を経て、論理ディレクトリ1100のインデク
スアドレスとなり、論理ディレクトリ1100内の有効
ビット1103がクリアされる。同時に、エンコーダ1
204によってコード化された情報は、セレクタ120
6によって選択され、物理ディレクトリ1200のセッ
ト選択アドレスとして用いられ、物理ディレクトリ12
00内の有効ビット1202がクリアされる。
有効ビット1202とアンドされ、モニタした物理アド
レスに対応するデータがキャッシュメモリ内に存在する
かどうかが明らかとなる。一致検証の結果は、バスモニ
タ1500に入力され、一致が検出されると、バスモニ
タ1500からキャッシュコントローラ1400に割込
要求が発効される。その後、比較器1203の出力が、
エンコーダ1204によってコード化された情報と、物
理アドレスのビット20−26がマージされ、セレクタ
1110を経て、論理ディレクトリ1100のインデク
スアドレスとなり、論理ディレクトリ1100内の有効
ビット1103がクリアされる。同時に、エンコーダ1
204によってコード化された情報は、セレクタ120
6によって選択され、物理ディレクトリ1200のセッ
ト選択アドレスとして用いられ、物理ディレクトリ12
00内の有効ビット1202がクリアされる。
(2)ブロック転送起動検出時
バスモニタ1500が、共有バス300上にブロック転
送起動のトランザクションを検出した場合の処理は、第
15図に示される。バスモニタ1500は、共有パス3
00から、BCKREQ信号1509によりブロック転
送起動を検出すると、アドレスバス301から物理アド
レスを取込み物理アドレスレジスタ1005にセットす
る1次に。
送起動のトランザクションを検出した場合の処理は、第
15図に示される。バスモニタ1500は、共有パス3
00から、BCKREQ信号1509によりブロック転
送起動を検出すると、アドレスバス301から物理アド
レスを取込み物理アドレスレジスタ1005にセットす
る1次に。
ブロードキャスト要求検出時の処理と同様にして、物理
ディレクトリ1200をアクセスし、該当ブロックの一
致検討を行なう、一致検証の結果は。
ディレクトリ1200をアクセスし、該当ブロックの一
致検討を行なう、一致検証の結果は。
バスモニタ1500に入力され、もし、一致が検出され
ると、バスモニタ1500からキャッシュコントローラ
1400に割込要求が発効される。
ると、バスモニタ1500からキャッシュコントローラ
1400に割込要求が発効される。
そして、エンコーダ1204の出力が、物理アドレス1
0o5のビット20−26とマージされ、セレクタ11
10を経て、論理ディレクトリ1100がアクセスされ
る。論理ディレクトリ1100に保持される情報の内、
一致したブロックのステータス情報1104が読出され
バスモニタ1500に入力される。その結果、該当ブロ
ックの状態が5haredかExclusiveであれ
ば、BCKHiT信号1507゜BCKACに信号15
08が7サートされ、ヒツトした事をブロック転送起動
元に報告する。その後、該当ブロックの状態を5har
edに変更する。又該当ブロックの状態がOwnedで
あれば、 BCKABOT信号1506 、 BCKA
Cに信号1508をアサートすることにより実行中のブ
ロック転送起動を7ボートする。その後、 CPYBK
REQ1502を7サートすることにより、共有パス3
00を占有し、レジスタ1005の物理アドレスをセレ
クタ1606により選択して、アドレスバス301に乗
せ、コピーバック起動を行なう、該起動が、主メモリに
受付けられると、レジスタ1005のブロック内アドレ
ス(ビット27−29)を更新することによって、デー
タ部1300のデータをレジスタ1301を経て共有デ
ータバス302に乗せコピーバック処理を行なう、この
時のキャッシュデータ部1300のインデクスアドレス
は、エンコーダ1204の出力と。
0o5のビット20−26とマージされ、セレクタ11
10を経て、論理ディレクトリ1100がアクセスされ
る。論理ディレクトリ1100に保持される情報の内、
一致したブロックのステータス情報1104が読出され
バスモニタ1500に入力される。その結果、該当ブロ
ックの状態が5haredかExclusiveであれ
ば、BCKHiT信号1507゜BCKACに信号15
08が7サートされ、ヒツトした事をブロック転送起動
元に報告する。その後、該当ブロックの状態を5har
edに変更する。又該当ブロックの状態がOwnedで
あれば、 BCKABOT信号1506 、 BCKA
Cに信号1508をアサートすることにより実行中のブ
ロック転送起動を7ボートする。その後、 CPYBK
REQ1502を7サートすることにより、共有パス3
00を占有し、レジスタ1005の物理アドレスをセレ
クタ1606により選択して、アドレスバス301に乗
せ、コピーバック起動を行なう、該起動が、主メモリに
受付けられると、レジスタ1005のブロック内アドレ
ス(ビット27−29)を更新することによって、デー
タ部1300のデータをレジスタ1301を経て共有デ
ータバス302に乗せコピーバック処理を行なう、この
時のキャッシュデータ部1300のインデクスアドレス
は、エンコーダ1204の出力と。
物理アドレス1005のビット20−31をマージした
アドレスが用いられる。コピーバック処理が終了すると
、該当ブロックの状態をExclusiveに変更する
。
アドレスが用いられる。コピーバック処理が終了すると
、該当ブロックの状態をExclusiveに変更する
。
モニタした物理アドレス1005に該当するデータが、
キャッシュメモリ内に存在しない場合には、バスモニタ
1500は、BCKACに信号1508のみをアサート
し、ブロック転送起動元に応答を返す。
キャッシュメモリ内に存在しない場合には、バスモニタ
1500は、BCKACに信号1508のみをアサート
し、ブロック転送起動元に応答を返す。
以上の実施例から明らかなように、多重仮想記憶方式を
採用し、且つ論理アドレスで検索されるキャッシュメモ
リを有し、また物理アドレスの共有ハス構成を採る単一
プロセッサシステムにおいて、異なる論理アドレスが同
一の物理データを共有する場合に問題となる”Addr
ess Synonym” の問題に関し、物理アド
レスを論理アドレスに変換する逆変換テーブルを設ける
ことなく解決でき、又、物理アドレスタグと論理アドレ
スタグを関連づけるリンク情報の管理を行なうことなく
解決できる。更に、多重仮想記憶方式を採用し、各プロ
セッサごとに論理アドレスで検索されるキャッシュメモ
リを有し、且つ物理アドレスの共有バス構成を採るマル
チプロセッサシステムにおいて、キャッシュメモリの一
致保証を、逆変換テーブルを設けることなく実現でき、
又、リンク情報の管理を行なうことなく実現できること
から、ハード量の削減と、逆変換テーブル、あるいは、
リンク情報を管理するための複雑さを解消できる効果が
ある。
採用し、且つ論理アドレスで検索されるキャッシュメモ
リを有し、また物理アドレスの共有ハス構成を採る単一
プロセッサシステムにおいて、異なる論理アドレスが同
一の物理データを共有する場合に問題となる”Addr
ess Synonym” の問題に関し、物理アド
レスを論理アドレスに変換する逆変換テーブルを設ける
ことなく解決でき、又、物理アドレスタグと論理アドレ
スタグを関連づけるリンク情報の管理を行なうことなく
解決できる。更に、多重仮想記憶方式を採用し、各プロ
セッサごとに論理アドレスで検索されるキャッシュメモ
リを有し、且つ物理アドレスの共有バス構成を採るマル
チプロセッサシステムにおいて、キャッシュメモリの一
致保証を、逆変換テーブルを設けることなく実現でき、
又、リンク情報の管理を行なうことなく実現できること
から、ハード量の削減と、逆変換テーブル、あるいは、
リンク情報を管理するための複雑さを解消できる効果が
ある。
第1図は本発明の第1の実施例を示す図、第2図はマル
チプロセッサシステムの全体構成を示す図、第3図は共
有バスの構成を示す図、第4図は共有パスのスプリット
方式の説明図、第5図はブロードキャストのバスオペレ
ーションを示すタイムチャート、第6図はブロック転送
起動のバスオペレーションを示すタイムチャート、第7
図はブロック転送起動をアボートするバスオペレーショ
ンを示すタイムチャート、第8図はブロック転送のバス
オペレーションを示すタイムチャート、第9図はコピー
バックのバスオペレーションを示すタイムチャートであ
る。第10図は、リンクビット方式を採るキャッシュメ
モリ構成図、第11図は、本発明の第2の実施例を示す
図、第12図は、リードアクセス時の処理を示すフロー
チャート、第13図は、ライトアクセス時の処理を示す
フロチャート、第14図は、ブロードキャスト検出時の
処理を示すフローチャート、第15図は、ブロック転送
起動検出時の処理を示すフローチャートである。 800・・・論理アドレスレジスタ、810・・・物理
アドレスレジスタ、830・・・識別子レジスタ、85
0・・・論理アドレスタグ部、860・・・物理アドレ
スタグ部、861・・・ステータス部、870・・・デ
ータ部、880〜882・・・比較器、891・・・セ
レクタ、900・・・データキャッシュコントローラ、
910・・・バスモニタ。 笠Z口
チプロセッサシステムの全体構成を示す図、第3図は共
有バスの構成を示す図、第4図は共有パスのスプリット
方式の説明図、第5図はブロードキャストのバスオペレ
ーションを示すタイムチャート、第6図はブロック転送
起動のバスオペレーションを示すタイムチャート、第7
図はブロック転送起動をアボートするバスオペレーショ
ンを示すタイムチャート、第8図はブロック転送のバス
オペレーションを示すタイムチャート、第9図はコピー
バックのバスオペレーションを示すタイムチャートであ
る。第10図は、リンクビット方式を採るキャッシュメ
モリ構成図、第11図は、本発明の第2の実施例を示す
図、第12図は、リードアクセス時の処理を示すフロー
チャート、第13図は、ライトアクセス時の処理を示す
フロチャート、第14図は、ブロードキャスト検出時の
処理を示すフローチャート、第15図は、ブロック転送
起動検出時の処理を示すフローチャートである。 800・・・論理アドレスレジスタ、810・・・物理
アドレスレジスタ、830・・・識別子レジスタ、85
0・・・論理アドレスタグ部、860・・・物理アドレ
スタグ部、861・・・ステータス部、870・・・デ
ータ部、880〜882・・・比較器、891・・・セ
レクタ、900・・・データキャッシュコントローラ、
910・・・バスモニタ。 笠Z口
Claims (1)
- 【特許請求の範囲】 1、主記憶装置のデータの一部を格納し、演算処理装置
から論理アドレスによつてアクセスされる論理キャッシ
ュメモリにおいて、格納されたデータの論理アドレスの
上位部を保持する第1のテーブルと、該データの物理ア
ドレスの上位部を保持する第2のテーブルと、演算処理
装置から論理アドレスによるアクセスが行なわれた時に
そのアクセスアドレスの下位アドレスにより第1のテー
ブルを読み出してその読み出し出力と該論理アドレスの
上位部を比較し対応するデータの有無を判定する第1の
判定手段と、物理アドレスによるアクセスが行なわれた
時に、そのアクセスアドレスの下位アドレスにより該第
2のテーブルを読み出してその読み出し出力と該物理ア
ドレスの上位部を比較し対応するデータの有無を判定す
る第2の判定手段および、該論理アドレスの上位部と、
これに対応する物理アドレスの上位部をそれぞれ第1、
第2テーブルの同一エントリ位置に登録させる手段を有
することを特徴とする論理キャッシュメモリ。 2、特許請求の範囲第1項記載の第1のテーブルは、格
納されたデータの属するプロセスの識別子を保持してお
り、演算処理装置からプロセスの識別子及び論理アドレ
スによるアクセスが行なわれた時に、そのアクセスアド
レスの下位アドレスにより該第1のテーブルを読み出し
てその読み出し出力と該識別子及び論理アドレスの上位
部は比較され対応するデータの有無が判定されるように
なつている論理キャッシュメモリ。 3、主記憶装置のデータの一部を格納し、演算処理装置
から論理アドレスによつてアクセスされる論理キャッシ
ュメモリにおいて、格納されたデータに対応する論理ア
ドレスの上位部を保持する第1のテーブルと、該データ
に対応する物理アドレスの上位部を保持し、同時に複数
のアクセスが可能な第2のテーブルと、演算処理装置か
ら論理アドレスによるアクセスが行なわれた時にそのア
クセスアドレスのアドレス変換に依存する部分を含む下
位アドレスにより第1のテーブルを読み出し、その読み
出し出力と該論理アドレスの上位部を比較し対応するデ
ータの有無を判定する第1の判定手段と、物理アドレス
によるアクセスが行なわれた時に、該物理アドレスのア
ドレス変換に依存しない下位アドレスにより該第2のテ
ーブルから複数の情報を読み出して、その複数の読み出
し出力と該物理アドレスの上位部をそれぞれ比較し対応
するデータの有無を判定する第2の判定手段および、該
論理アドレスの上位部と、これに対応する物理アドレス
の上位部をそれぞれ第1、第2テーブルの同一エントリ
位置に登録させる手段を有することを特徴とする論理キ
ャッシュメモリ。 4、特許請求の範囲第3項記載の第1のテーブルは、格
納されたデータの属するプロセスの識別子を保持してお
り、演算処理装置からプロセスの識別子及び論理アドレ
スによるアクセスが行なわれた時に、そのアクセスアド
レスのアドレス変換に依存する部分を含む下位アドレス
により該第1のテーブルを読み出してその読み出し出力
と該識別子及び論理アドレスの上位部は比較され、対応
するデータの有無が判定されるようになつている論理キ
ャッシュメモリ。 5、特許請求の範囲第3項記載の第2のテーブルは、第
1のテーブルの読み出しに使用される論理アドレスのう
ち、アドレス変換に依存する部分を形成するビット数に
よつて指定可能な数の物理アドレスの上位部をセットと
して保持するようになつている論理キャッシュメモリ。 6、特許請求の範囲第3項記載の第2の判定手段は、同
時に複数個読み出された第2のテーブルからの読み出し
出力と物理アドレスの上位部を比較する複数個の比較器
を有し、該複数の比較器の出力はエンコーダによつて数
ビットの信号に変換され、物理アドレスのアドレス変換
に依存しない下位アドレスにマージされデータの読み出
しアドレスとなるようにした論理キャッシュメモリ。 7、特許請求の範囲第6項に記載のエンコーダの出力数
ビットは、物理アドレスのアドレス変換に依存しない下
位アドレスにマージされ、セレクタを介して第1のテー
ブルの読み出しインデクスアドレスになるようにした論
理キャッシュメモリ。
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 true JPH0221342A (ja) | 1990-01-24 |
JPH0551937B2 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5284230A (en) * | 1991-06-25 | 1994-02-08 | Aisin Takaoka Co., Ltd. | Ventilated disc unit for automotive brake system |
US5930833A (en) * | 1994-04-19 | 1999-07-27 | Hitachi, Ltd. | Logical cache memory storing logical and physical address information for resolving synonym problems |
JP2001147857A (ja) * | 1999-10-01 | 2001-05-29 | Hitachi Ltd | 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6446164B1 (en) * | 1991-06-27 | 2002-09-03 | Integrated Device Technology, Inc. | Test mode accessing of an internal cache memory |
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 |
US6553460B1 (en) | 1999-10-01 | 2003-04-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 |
US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
US7509391B1 (en) * | 1999-11-23 | 2009-03-24 | Texas Instruments Incorporated | Unified memory management system for multi processor heterogeneous architecture |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5072542A (ja) * | 1973-10-30 | 1975-06-16 | ||
JPS57117170A (en) * | 1981-01-10 | 1982-07-21 | Nec Corp | Processing system for buffer memory coincidence |
JPS58150188A (ja) * | 1982-03-01 | 1983-09-06 | Nec Corp | 磁気バブル素子の製造方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3761881A (en) * | 1971-06-30 | 1973-09-25 | Ibm | Translation storage scheme for virtual memory system |
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 |
DE3276916D1 (en) * | 1981-09-18 | 1987-09-10 | Rovsing As Christian | Multiprocessor computer system |
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 |
US4612612A (en) * | 1983-08-30 | 1986-09-16 | Amdahl Corporation | Virtually addressed cache |
US4727482A (en) * | 1983-08-30 | 1988-02-23 | Amdahl Corporation | Apparatus for enhancing searches of data tables |
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
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5072542A (ja) * | 1973-10-30 | 1975-06-16 | ||
JPS57117170A (en) * | 1981-01-10 | 1982-07-21 | Nec Corp | Processing system for buffer memory coincidence |
JPS58150188A (ja) * | 1982-03-01 | 1983-09-06 | Nec Corp | 磁気バブル素子の製造方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5284230A (en) * | 1991-06-25 | 1994-02-08 | Aisin Takaoka Co., Ltd. | Ventilated disc unit for automotive brake system |
US5930833A (en) * | 1994-04-19 | 1999-07-27 | Hitachi, Ltd. | Logical cache memory storing logical and physical address information for resolving synonym problems |
US6138226A (en) * | 1994-04-19 | 2000-10-24 | Hitachi Ltd. | Logical cache memory storing logical and physical address information for resolving synonym problems |
US6324634B1 (en) | 1994-04-19 | 2001-11-27 | Hitachi, Ltd. | Methods for operating logical cache memory storing logical and physical address information |
JP2001147857A (ja) * | 1999-10-01 | 2001-05-29 | Hitachi Ltd | 改善されたメモリ管理ユニット及びキャッシュメモリを有するマイクロプロセッサを用いたデータ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US5623626A (en) | 1997-04-22 |
JPH0551937B2 (ja) | 1993-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5148533A (en) | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
US6751720B2 (en) | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy | |
US4394731A (en) | Cache storage line shareability control for a multiprocessor system | |
CA1315896C (en) | Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage | |
TW591384B (en) | Method and system for speculatively invalidating lines in a cache | |
US7360054B2 (en) | Method and apparatus for direct conveyance of physical addresses from user level code to peripheral devices in virtual memory systems | |
US4484267A (en) | Cache sharing control in a multiprocessor | |
JP4531890B2 (ja) | 原子的更新処理を実行する方法 | |
KR100228940B1 (ko) | 메모리 일관성 유지 방법 | |
US5379394A (en) | Microprocessor with two groups of internal buses | |
JP2004505346A (ja) | 多重プロセッサアーキテクチャのためのキャッシュコヒーレンシシステムおよび方法 | |
US5263144A (en) | Method and apparatus for sharing data between processors in a computer system | |
EP0303661A1 (en) | CENTRAL UNIT FOR DIGITAL DATA PROCESSING SYSTEM, WITH WRITING BUFFER MANAGEMENT TECHNOLOGY. | |
JPH0221342A (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 | |
TWI664571B (zh) | 用於進行中操作的指令排序 | |
US6892283B2 (en) | High speed memory cloner with extended cache coherency protocols and responses | |
TWI230897B (en) | Method for sharing a translation lookaside buffer between CPUs | |
US5987544A (en) | System interface protocol with optional module cache | |
EP0480858A2 (en) | Hardware primary directory lock | |
JPH05181750A (ja) | アドレス変換装置および方法 | |
JP3360933B2 (ja) | 情報処理システムにおける記憶制御方法および記憶制御装置 | |
EP0428149A2 (en) | Cache controller | |
US7502917B2 (en) | High speed memory cloning facility via a lockless multiprocessor mechanism | |
JPH03163640A (ja) | マルチプロセッサシステムおよびそれに用いるキャッシュメモリ |