JPS6113261B2 - - Google Patents
Info
- Publication number
- JPS6113261B2 JPS6113261B2 JP56156193A JP15619381A JPS6113261B2 JP S6113261 B2 JPS6113261 B2 JP S6113261B2 JP 56156193 A JP56156193 A JP 56156193A JP 15619381 A JP15619381 A JP 15619381A JP S6113261 B2 JPS6113261 B2 JP S6113261B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- address
- processor
- cache
- 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
Links
- 238000012545 processing Methods 0.000 claims description 49
- 238000013519 translation Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 description 30
- 230000004913 activation Effects 0.000 description 28
- 230000004044 response Effects 0.000 description 27
- 238000006243 chemical reaction Methods 0.000 description 23
- 238000012546 transfer Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000010926 purge Methods 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
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)
- Multi Processors (AREA)
Description
本発明は複数のプロセツサが1つの主記憶装置
(以下主メモリと略称する)を共用するデータ処
理装置に関する。 ここで、複数のプロセツサのうち、少なくとも
1つは、命令を実行するために仮想アドレスでメ
モリアクセスを行うプロセツサであり、ここで
は、このプロセツサをジヨブプロセツサと称して
いる。 また、少なくとも1つは、補助記憶装置とも称
される外部記憶装置(以下外部メモリと略称す
る)との入出力を行うために、仮想アドレスでメ
モリアクセスを行うプロセツサであり、ここで
は、このプロセツサをフアイルプロセツサと称し
ている。 また、ジヨブプロセツサには、仮想アドレスで
メモリアクセスされるキヤツシユメモリが設けら
れている。 更に、本発明におけるデータ処理装置は、各プ
ロセツサから共通に使用され、仮想アドレスを物
理アドレスに変換するアドレス変換装置を有する
ものである。 本発明は、このようなデータ処理装置におい
て、フアイルプロセツサが主メモリの内容を書き
換え(ページのロールイン、ロールアウト)時
に、アドレス変換テーブルを更新するために生ず
る問題、即ち、キヤツシユメモリが主メモリのコ
ピーであるという従来の考え方がくずれることか
ら生ずる問題を解決するようにしたデータ処理装
置に関する。 まず、本発明の背景を詳細に説明する。 1つの主メモリを複数のプロセツサが共用する
データ処理装置は、一般にマルチプロセツサシス
テムと称されている。 従来のマルチプロセツサシステムでは、一般
に、シングルコンピユータのコスト/パーフオー
マンスを圧迫しない形で、マルチシステム構成を
可能としてきた。そのため、プロセツサ台数が、
2台程度では、最高な構成であつたが、プロセツ
サ台数が更に増加すると、相互の干渉が大きくな
り、ハードウエア構成が大きくなりすぎるという
問題があつた。 マルチプロセツサシステムにおいて、解決しな
ければならない問題の1つに仮想記憶方式があ
る。仮想記憶方式は、良く知られているが、これ
は、主メモリと外部メモリとを見掛け上、一体の
ものとみなし、プロセツサから要求された情報が
主メモリ内になく、外部メモリにある場合には、
主メモリの比較的使われていない一部分の情報を
外部メモリに転送し、要求された情報を外部メモ
リから主メモリへ転送するのを自動的にシステム
が行うものである。 主メモリの情報を外部メモリに転送することを
ロールアウト、逆に、外部メモリの情報を主メモ
リへ転送することをロールインと称している。 このような、ロールイン、ロールアウトの制御
を実施する為、一般には、主メモリと外部メモリ
とは、それぞれページと称される1つの単位に分
割されて使用されている。 各ページに対応して、そのページが現在主メモ
リ上にあるかどうか、またある場合は、それに対
応する主メモリの物理アドレス(実アドレスとも
称されている)がいくらであるかの情報が、変換
テーブル上に置かれている。 プロセツサからのメモリアクセス時のアドレス
は、仮想アドレスで与えられ、その上位アドレス
部で変換テーブルが索引され、物理アドレスへの
変換が行なわれる。 このような、変換テーブルは、仮想アドレスの
ページ数分だけ必要となり、必要なメモリ容量が
大きくなり、そのため、容量の削減を図ろうとし
て変換テーブルをセグメントテーブルと、ページ
テーブルのような2レベルのアドレス変換を実施
するものが多い。 変換テーブルは、上記したように、メモリ容量
を多く必要とするので、一般には、主メモリ上に
置かれている。そのため、プロセツサからのメモ
リアクセスがある毎に、主メモリの変換テーブル
をチエツクしていたのでは、1つのメモリアクセ
ス要求に対して必ず3回以上のメモリアクセスが
発生し、オーバーヘツドが無視できない。 そこで、仮想記憶方式をとるプロセツサには、
TLBと称される高速バツフアを設けているもの
が多く、この高速バツフアには最近使用された仮
想アドレスに対応した物理アドレスが記憶されて
いる。 これによれば、プロセツサからのメモリアクセ
スが発生すると、まず、TLBの中に、対応する
アドレスがないかどうかがチエツクされ、存在す
る場合には、アドレス変換のための、変換テーブ
ルのメモリアクセスが必要でなく、アドレス変換
のオーバーヘツドは少なくてアクセス可能とな
る。このような、TLBを含んだアドレス変換装
置は、従来は、プロセツサ毎におかれ、プロセツ
サ内の制御装置の手助けを借りて仮想制御方式を
実現していた。 一方、性能を上げるためには、キヤツシユメモ
リと呼ばれる高速メモリを各プロセツサに設ける
ことが一般的になつている。このキヤツシユメモ
リは、主メモリの一部の写しで、通常、主メモリ
よりも5〜10倍高速なものとして設計されてい
る。 プロセツサからのメモリアクセスは、まずキヤ
ツシユに該当するものがあるか否かのチエツクを
行い、あれば、その内容を返送し、なければ主メ
モリをアクセスすることになる。 ところで、仮想記憶方式で、キヤツシユメモリ
を有する場合には、従来、プロセツサから見て
TLB、キヤツシユメモリ、主メモリの順で接続
されていた。これは、キヤツシユメモリは、実記
憶である主メモリの写しであるという考え方に基
づくもので、キヤツシユメモリのアクセスは、物
理アドレスに変換してから行なわなければならな
かつた。 このような、従来方式には、次のような問題点
がある。 第1の問題点は、実効的なメモリアクセス時間
が長くなることである。 この理由は、プロセツサからキヤツシユメモリ
をアクセスする場合に、必ずTLBを通らなけれ
ばならないからである。すなわち、プロセツサか
らの仮想アドレスを、TLBにより物理アドレス
に変換してからキヤツシユメモリをアクセスする
ことになるからである。 第2の問題点は、TLBが全プロセツサに必要
なため、プロセツサの数が増えた場合、それにつ
れてハードウエア物量が大きくなるばかりでな
く、TLBのずれを修正しなければならず、これ
が複雑になつていることである。 TLBのずれの修正は、あるプロセツサが、ペ
ージをスワツプした時に、変換システム、TLB
のエントリーを更新するが、当該プロセツサのみ
でなく、他のプロセツサにもその旨を連絡して、
該当部分をクリヤしなければならない。 これは、一般にTLB Purge(Translation
Lookaside Buffer Purge)と称され、マルチプ
ロセツサを構成する場合の1つの重要なポイント
となつている。 第3の問題点は、一般のジヨブプロセツサはメ
モリをアクセスする場合、仮想アドレスを用いる
が、入出力プロセツサは、TLBを持たないた
め、物理アドレスでアクセスすることから生ずる
もので、両者で、アドレスの受け渡しをする際に
変換が必要となるためにオーバーヘツドが増加す
ることである。 第4の問題点は、第2の問題点と類似している
が、マルチプロセツサでなくても、高度なパイプ
ライン制御をするプロセツサでは命令をアクセス
するユニツトとオペランドをアクセスするユニツ
トは別々で、各々にキヤツシユメモリを持ち、高
速化を図ることが行なわれるが、この際にも、従
来方式では、TLBを各ユニツトに持たなければ
ならなくなり、ハードウエア量が増大するという
ことである。 このような問題点を解決するために、キヤツシ
ユメモリを仮想アドレスでアクセスし、ビツトし
ない場合のみアドレス変換を行うたり方が、特開
昭49−53339号公報の中に示されている。これに
よればキヤツシユメモリをアクセスする場合に毎
回アドレス変換を行う必要がなくなつて、高速化
を図ることが可能となる。 しかしながら、この公報には、本方式は次の欠
点があるために、採用できないことを指摘してい
る。それは、 (1) 2つの異なつた仮想アドレスが同一の物理ア
ドレスを参照する場合、うまくゆかない。これ
はある仮想アドレスの内容を書き変えた時に同
一の物理アドレスを示す別の仮想アドレスで指
定されるキヤツシユメモリの内容が書き変つて
いなければならないためである。 (2) ページあるいはセグメントテーブルの内容を
書き変える場合に、キヤツシユの無効化をする
ためのスキヤンが必要である。 (3) ストレージキーは物理アドレスに対応してい
るために、プロテクシヨンチエツクが不可能と
なる。 の3点である。 特開昭56−38649号公報にも、同様に、キヤツ
シユメモリを仮想アドレスでアクセスする方法が
示されているが、上記の問題点の解決法は触れら
れていない。 また、特開昭55−142476号公報には、アドレス
変換装置を複数のプロセツサで共有する方式が示
されている。これによれば、複数のプロセツサで
共有するために、マルチプロセツサ構成時に、経
済性を実現できるというものであるが、ここに
は、キヤツシユメモリは示されていない。 本発明は、複数のプロセツサがあり、その中の
少なくともひとつのプロセツサが、仮想アドレス
でアクセスするキヤツシユメモリを持ち、アドレ
ス変換装置は全プロセツサで共有する構成に適用
されるものである。 このような構成の目的は、アドレス変換装置に
要するハード量を削減した上で、実効メモリアク
セス時間の短縮がはかることにある。 他の目的は、TBL間の一致化制御のような複
雑な処理が不要な方式を提供することである。 他の目的は、入出力プロセツサなどからも仮想
アドレスでメモリをアクセスできる方式を提供
し、アドレスの一元管理を目指するものである。 他の目的は、パイプライン制御を行う複数のユ
ニツトから成る計算機において、高速かつ経済的
な、メモリ制御方式を実現することである。 しかしながらこの方式の最大の問題点は、特開
昭49−53339にも指摘されているように、主メモ
リのページあるいはセグメントテーブルを書換え
た場合に、キヤツシユメモリには、これが伝わら
ず、キヤツシユメモリの内容が主メモリの状態を
正しく反映しなくなることである。 本発明の目的は、この問題点を解決したデータ
処理装置を提供することである。 次に、前述した特開昭49−53339号公報に指摘
されている問題点について、本発明でどう解決し
ているかの考え方を説明する。 まず第1の問題である2つの仮想アドレスが同
一の物理アドレスを示すことができないというこ
とであるが、このようなニーズは多重仮想記憶の
場合に必要であるが、多重仮想記憶が必要となる
第1の要因は、アドレスを指定するビツト長が24
ビツト程度と小さく仮想空間が224=16Mega程度
でサイズが不十分である場合に必要となつたもの
で、232=4Giga,248=256Teraもの大きな仮想空
間をサポートできれば、多重仮想記憶のニーズは
少ない。また共面のサブルーチンや、データを異
なる仮想アドレスでアクセスすることは、エリヤ
管理も複雑となるために、良い方法とは言えな
い。従つて、全てのプログラム、データはユニー
クなアドレスを割付けられる単一仮想記憶の場合
は、これは問題点とはならない。 次に第2の問題は、キヤツシユを仮想アドレス
でアクセスする場合の本質的なことであるが、こ
れを少し詳細に説明する。アドレス変換テーブル
を更新するのは、(i)あるプログラム実行中にミツ
シングページフオールトが発生し、必要なページ
をロールインする場合、あるいは、空エリヤを作
るためにあるページをロールアウトする場合と、
(ii)プログラムを生成して、ある仮想アドレスに割
付ける、あるいは削除する場合である。このよう
な場合に、キヤツシユメモリには、既にロールア
ウトして主メモリにはないデータが残つていた
り、新しいプログラムが生成されたのに、以前の
プログラムがキヤツシユメモリに残つていたりす
ることになる。これに対して、キヤツシユには、
既にロールアウトされた情報が残つているという
点は、キヤツシユメモリは、外部メモリも加えた
空間でのキヤツシと考えれば良く、既にロールア
ウトされた情報を読出せても不都合は生じない。 逆に主メモリのサイズが、キヤツシユの容量分
だけ増える訳で、本方式の利点と言うこともでき
る。主メモリに書込もうとした時には、ストアス
ルー方式のキヤツシユメモリでは、書込毎に毎回
キヤツシユと主メモリの両方を更新するために、
毎回アドレス変換装置を通り、ここで該ページが
主メモリ上にあるか否かチエツクされる。従つて
ロールアウトされたページを使いながら実行して
いるプログラムは、読出しで、キヤツシユがヒツ
トしている限り続行し、キヤツシユミスか、ある
いは、主メモリ書込が起つた時に、ページフオー
ルトが発生することになる。ここでアドレス変換
装置に於けるチエツクとは、ページの状態には(a)
主メモリ上に存在する、(b)ページング中、(c)主メ
モリ上に存在しないの3つの状態があり、一般の
プロセツサは、(a)の時のみアクセスが可能で、外
部メモリとの転送を行うフアイルプロセツサは(b)
の時にもアクセスが可能であり、この規則に合つ
ているか否かのチエツクである。 ページフオールトが発生した場合には、キヤツ
シユメモリ内の該当するブロツクは無効化される
ため、以後はキヤツシユでヒツトしない。尚、リ
ードアクセス時にページフオールトが発生した場
合には、該ブロツクをキヤツシユに書込まないよ
うに制御する。 次に、今まで実行していたプログラムが完了し
て、同一の仮想アドレスに新たにプログラムが生
成される場合には、外部メモリから転送されるの
が普通であるが、この場合、外部メモリからの転
送中に、キヤツシユを無効化する手段を設けるこ
とによつて解決される。具体的には、外部メモリ
からの主メモリへの転送は、仮想アドレスで行
い、このアドレスをキヤツシユメモリは監視して
おいて、もしもキヤツシユメモリ内に該当するブ
ロツクがあれば無効化を行うものである。 次に第3のプロテクトの問題であるが、プロテ
クトは、物理アドレスよりも、仮想アドレスの方
が、プログラム毎にユニークなストレージキイを
割当てることが可能であり、良い方法であると考
えられる。但し書込みは、必ずアドレス変換装置
を通るために書込みプロテクトは必ずチエツクさ
れる。書込みプロテクトエラーが検出された時に
は、キヤツシユメモリの対応するブロツクは無効
化され、キヤツシユメモリに書込んだデータが使
用されないようにする。実行プロテクトは、メモ
リの読出しのために、キヤツシユ内に該当するも
のがあれば、ここで返送しアドレス変換装置を経
由しないために工夫が必要である。本発明では、
キヤツシユメモリを命令キヤツシユとデータキヤ
ツシユに分離した例を示しているが、この例で
は、実行プロテクトエラーが発生した場合にはキ
ヤツシユメモリに入れないように制御している。 以上で、本発明の、従来問題点とされていた項
目に対する解決法が理解できたと思われるが、本
発明はマルチプロセツサに於ける問題点をも同様
な方法で解決している。従来のマルチプロセツサ
構成で、アドレス変換テーブルを書き換えた場合
には、他のプロセツサに対して指令を送つて他の
プロセツサが所有するTLBの無効化(TLB
Purge)を行つていた。これによつて、以前のプ
ログラムがキヤツシユメモリに残つていても
TLBを無効化することによつて、該当するキヤ
ツシユメモリは使用しないようにできたわけであ
る。本発明が適用されるマルチプロセツサに於て
は、あるプロセツサがアドレス変換テーブルを書
換えた時に他のプロセツサのキヤツシユメモリ
が、主メモリと一致しなくなる点が問題である
が、前述のように、外部メモリからの転送を仮想
アドレスで行い、キヤツシユメモリでは、この仮
想アドレスを監視しておいて、該当するブロツク
がキヤツシユメモリ内にあれば、無効化を行うこ
とによつて解決している。 以下、本発明の一実施例を図面を参照して詳細
に説明する。 第1図は本発明が適用されるデータ処理装置の
全体構成の一例を示す図である。 第1図において、10はプログラムおよびデー
タを格納する主メモリで、メモリバス11、メモ
リコントローラ(MCU)12を介して共通バス
50に接続されている。 20は、主メモリ10に格納されるべきプログ
ラムおよびデータを格納する外部メモリで、外部
メモリバス21、フアイルプロセツサ(FCP)
22を介して共通バス50に接続されている。3
0は入出力プロセツサ(IOP)であり、図示しな
い各種入出力装置とのデータ転送の制御を行う。 40はジヨブプロセツサ(JOBP)であり、こ
こでは1つだけを示しているが、プログラム(命
令)の実行を行う。 ジヨブプロセツサ40は、命令キヤツシユ4
1、データキヤツシユ42、Iユニツト43およ
びEユニツトにより構成され、命令キヤツシユ4
1とIユニツト43はバス45で接続され、デー
タキヤツシユ42とEユニツト44はバス46で
接続され、Iユニツト43とEユニツト44はバ
ス47で接続されている。 このように、フアイルプロセツサ22、入出力
プロセツサ30およびジヨブプロセツサ40は、
いずれも共通バス50に接続され、メモリコント
ローラ12を介して主メモリ10をアクセス可能
になつている。 ジヨブプロセツサ4は、Iユニツト43とEユ
ニツト44でパイプライン処理をするもので、前
記の如くそれぞれのユニツトに対して命令キヤツ
シユ41とデータキヤツシユ44を有する。 尚プログラム(命令)が扱うデータはオペラン
ドとも呼ばれ、このデータキヤツシユのことをオ
ペランドキヤツシユと呼ぶ場合がある。 次に実行すべき命令語をIユニツト43がアク
セスする場合、まず、命令キヤツシユ41上にそ
の命令語が存在するか否かチエツクされ、存在す
る場合には、そのデータが命令語としてバス45
を介してIユニツト43へ送られる。存在しない
場合は、命令語の仮想アドレスを共通バス50を
介してメモリコントローラ12へ送出する。 メモリコントローラ12では、仮想アドレスを
物理アドレスに変換してメモリバス11を介して
主メモリ10をアクセスする。得られたデータ
(命令)は、共通バス50を介して、命令キヤツ
シユ41へ送られ、さらにバス45を介してIユ
ニツト43へ送られ、Iユニツト43で処理され
ると同時に、命令キヤツシユ41へ貯わえられ
る。 Iユニツト43では、この得られた命令を解読
し、Eユニツト44に対して「何を為すべきか」
を指示する。Eユニツト44は、この指令に基づ
き、必要なデータを内部のレジスタやデータキヤ
ツシユ42から(データキヤツシユ42上にない
場合は、命令キヤツシユと同様に主メモリ10か
ら)集め、演算処理し、その結果を内部のレジス
タか主メモリ10に格納する。後者の主メモリ1
0に結果を格納する際には、該当する位置のデー
タが既にデータキヤツシユ42内に取込まれてい
るならば、そのデータも更新する。 次に共通バス50の構成例について説明する。
共通バス50は第2図に示す様に、実際に情報を
転送するのに使用される起動バス55、データバ
ス56、応答バス57と、これらのバス55〜5
7をそれぞれどのプロセツサあるいはメモリコン
トローラが使用するかを決めるのに必要な起動バ
ス占有要求線51、データバス占有要求線52、
応答バス占有要求線53とインタロツク信号線5
4を含んでおり、時分割で使用される。 各バス55〜57の情報の中味は次の通りであ
る。 (1) 起動バス55 (a) アドレス (b) アクセスの種類(例えばリードアクセスで
あるか/ライトアクセスであるか、また何バ
イトアクセスするか、等) (c) アクセスキー(MCU12で行うプロテク
シヨンチエツクに使用する。) (2) データバス56 (a) ライトデータ (b) リードデータ (3) 応答バス57 (a) 終了信号 (b) リターンコード(アクセス中に、発生した
エラー及びページフオールトの情報) などである。 これらのバス55〜57が、どの様に使用され
るかを第3図で示す。 この図で示される様に、 (i) aのリード要求とbのリード応答 (ii) aのリード要求とdのライト応答 (iii) cのライト要求とdのライト応答 の3つの組み合せの転送が、同一のタイムスロツ
トで同時に可能となる。 次にバス55〜57の使用の様子を第4図で示
す。この図では、タイムスロツト0でJOBP40
がMCU12にメモリリード起動をかけ、それに
対するリードデータがタイムスロツトNとN+1
で返されて来ており、またタイムスロツト1で
IOP30がMCU12にメモリライト起動をか
け、それに対する応答がタイムスロツトN+2で
返されている。この様に共通バス50では、起動
と応答を分離した、いわゆるスプリツト転送を行
う。また、主メモリ10は複数のメモリアクセス
を処理出来る構成となつている。 以上、述べてきたバス55〜57の転送を行う
に当つて、その前に占有制御を行う必要がある。
これは転送を希望するプロセツサやメモリコント
ローラが、転送の1タイムスロツト前に、転送に
使用するバスに対する占有要求51〜53を出
し、これに対して優先順位を付けて転送を許可す
ることによつて行う。この優先順位の付け方は、
色々な方法が考えられるが、ここではその詳細に
ついては省略する。ただし、応答による占有要求
は、起動による占有要求より優先レベルを上げ
る。というのは、起動による占有要求によつて応
答が返せない事態になると、メモリコントローラ
上で起動の処理が詰まつてしまい、デツドロツク
状態となるからである。例えば、本実施例の場
合、第3図に示すbのデータリード応答と、cの
データライト起動による占有要求が競合した場合
には前者が優先される。 以上の占有制御の様子を簡略化して第5図に示
している。タイムスロツト0ではJOBP40と
IOP30がリード起動をしようとして、各々が起
動バス占有要求51を出している。この内、
JOBP40の方がIOP30より優先レベルが高い
ものとすると、タイムスロツト1でJOBP40は
起動バス55を使用してリードの起動を行い、同
時に占有要求を止める。一方、IOP30は占有が
許可されなかつたので、タイムスロツト1でも起
動バス占有要求51を出したままとする。このス
ロツト1では、JOBP40からの占有要求がなく
なるので、タイムスロツト2でIOP30はリード
起動が可能となる。 この様なシステムにおいて各プロセツサが、他
のプロセツサからのアクセスを排除して、すなわ
ちインタロツクして主メモリ10をアクセスする
場合には、起動バス55を他のプロセツサに使用
させない様にする。というのは、起動バス55を
占有することで、他のプロセツサから今後発生す
る起動を排除し、また既に主メモリ10内で処理
中のメモリ起動に対しては、データバス56、応
答バス57を使用して応答を返すことを可能にす
るためである。もし、これらの応答が返せない
と、メモリコントローラ12上で起動の処理が詰
まつてしまい、デツドロツク状態になつてしまう
からである。 次に、この起動バス55の占有方法の一例を説
明する。メモリコントローラ12をインタロツク
してアクセスしようとするプロセツサは、第6図
に示す様に起動バス占有要求51が受付けられ、
起動バス55に情報を転送するタイムスロツト
で、起動バス55を占有していることを示すイン
タロツク信号54を出す。そして、この信号によ
り他のプロセツサからの起動バス占有要求51が
受付けられない様に制御する。これは例えば第7
図の回路によつて実現される。この図では、各占
有要求51〜53の優先判定回路61は各プロセ
ツサごとに分散して持ち、インタロツク信号線5
4はオープン・コレクタの信号線としている。ま
ず、インタロツクの信号54が出てない場合は、
各占有要求51〜53を優先判定回路61でチエ
ツクし、自分の出した起動バス占有要求51の優
先度が一番高い場合には、アンドゲート62、オ
アゲート63を通して起動バス55の占有許可信
号64が出る。従つて、このプロセツサは次のタ
イムスロツトで、起動バス55に対して情報の転
送が可能である。また、この際プロセツサからイ
ンタロツク要求信号65が出されていると、アン
ドゲート68を介してJ−Kフリツプフロツプ6
6がセツトされ、インタロツク信号54が出力さ
れる。このインタロツク信号54は、インタロツ
ク解除信号67が出されるまで出力されており、
この間このプロセツサは起動バス55を占有した
ままとなる。次に、他のプロセツサからインタロ
ツク信号54が出されている場合には、アンドゲ
ート62で優先判定回路61の出力が禁止される
ので、起動バス占有許可信号64が出ないため、
起動バス55が使用できず、従つてメモリ起動も
出来ない。 次にMCU12について説明する。 MCU12は、通常のメモリアクセスの処理の
他、仮想アドレスから物理アドレスへのアドレス
交換や、プロテクシヨンのチエツクを行う。 また、各プロセツサ間で共通に使用され、高い
スループツトが要求されるため、リード処理とラ
イト処理は、第8図A,Bに示すように、いくつ
かのステージ〜又は′〜′に分かれてお
り、複数個のアクセスを第8図Cに示すようにオ
ーバラツプさせて処理出来るようになつている。 第9図は、MCU12の構成の一例を示したも
のであるが、第8図A,Bに示した各処理ステー
ジでは次のような動作を行う。 (A):リード処理ステージの動作 共通バス50からリード起動受信 起動バス55上の仮想アドレス(VA)、アク
セスの種類(FUN)、アクセスキー
(AKEY)を共通バス受信用レジスタ71に
取込む。 アドレス変換とプロテクシヨンチエツク アドレス変換装置75より、仮想アドレス
(VA)で示されるページが、主メモリ10に
あるか否かの判定を行い、ある場合には物理
アドレス(PA)に変換する。ない場合は、
いわゆるページフオールトとなる。 また、この時プロテクシヨンチエツク回路
76で、そのアクセスが許可されているもの
か否かの判定を行う。 このアドレス変換装置75とプロテクシヨ
ンチエツク回路76については、後で詳細に
述べる。 これらのプロテクシヨンチエツクの結果
と、ページフオールト情報は、他のエラー情
報と共にリターンコード(RC)として、ア
クセスの種類(FUNC)や物理アドレス
(PA)と共にアクセスレジスタ72にセツト
される。 メモリリード起動 アクセスレジスタ72にあるアクセスにエラ
ーやページフオールトが発生していない場合
には、メモリコントローラ77が、アクセス
レジスタ72上の物理アドレス(PA)で、
主メモリ10にメモリ起動151をかけ、主
メモリ10がその起動を受取つたら、アクセ
スの種類(FUNC)とリターンコード
(RC)を一時記憶レジスタ73へ移す。 また、アクセスレジスタ72にあるアクセ
スが、既にエラーやページフオールトの発生
を示している場合は、メモリ起動をせず、前
記の情報を一時記憶レジスタ73へ移す。 リードデータ受信とデータ、応答バス占有
要求 主メモリ10からメモリバス11を介して
リードデータ154を受取ると共に、アクセ
スの種類(FUNC)とリターンコード
(RC)を共通バス送出用レジスタ74へ移
す。 一方、共通バス50に対してはデータバス
占有要求52と応答バス占有要求53を出力
する。 リードデータ、応答バス転送 の占有要求52,53が受付けられたら、
リードデータ154をバス155を介してデ
ータバス56に転送し、また、終了信号とリ
ターンコード(RC)をバス156を介して
応答バス57に転送し、それぞれアクセス元
のプロセツサに返す。 (B):ライト処理ステージの動作 ′ 共通バス50からライト起動受信 起動バス55上の仮想アドレス(VA)、アク
セスの種類(FUNC)、アクセスキー
(AKEY)及びデータバス56上のライトデ
ータ(WD)を共通バス受信用レジスタ71
に取込む。 ′ アドレス変換とプロテクシヨンチエツク ライトデータを(WD)をアクセスレジスタ
72にセツトすることを除いて、リード処理
ステージAのと同じ動作をする。 ′ メモリライト起動 ライトデータ(WD)153を主メモリ10
に転送することを除いて、リード処理ステー
ジAのと同じである。 応答バス占有要求 アクセスの種類(FUNC)とリターンコード
(RC)を共通バス送出用レジスタ74へ移
す。一方、共通バス50に対しては、応答バ
ス占有要求53を出力する。 ′ 応答バス転送 ′の占有要求53が受付けられたら、終了
信号とリターンコード(RC)をバス156
を介して応答バス57に転送し、アクセス元
のプロセツサに返す。 以上の様に、リードとライトの処理は各ステー
ジに分けられており、異なるアクセスの処理の異
なる番号のステージは、第8図Cに示す様に並行
して処理可能である。この図では、共通バス50
からイ4Byteリード起動、ロ4Byteライト起動、
ハ16Byteリード起動を、それぞれタイムスロツ
ト0,1,2で受取つて処理している。そしてタ
イムスロツト2の場合を見ると、イのメモリリー
ド起動3と、ロのアドレス変換とプロテクシヨン
のチエツク2′と、ハの共通バスからのリード起
動受信1を並行して行つている。ここで、ハの
16Byteリードはイの4Byteリードに比べて、〜
のステージを4回繰り返しているが、これは
4Byteを単位としたメモリインタリーブを行つて
いるためである。以下、これについて説明する。 第10図は主メモリ10の構成の一例を示した
図であり、メモリボード(MB)14(14a〜
14d)は4Byteのデータ幅で構成され、各メモ
リボード14a,14b,14c,14dは
4Byte単位に付加されたアドレスの下位2bitが
00,01,10,11であるデータを持つている。そし
て16Byteのデータは、4Byteずつのメモリボード
14a,14b,14c,14d上にあるため、
16Byteリードではメモリボード14で競合をお
こすこと無く、第8図Cの様に連続してメモリボ
ードを起動し、リードデータを続み出して来るこ
とが可能となる。この様な16Byteリードは、主
にキヤツシユミス時にキヤツシユメモリへデータ
を送るブロツク転送に使用される。 Iユニツト43やEユニツト44が命令キヤツ
シユ41やデータキヤツシユ42をアクセスする
場合は、16Byteよりもつと小さな単位(この例
では4Byteとする)で行うので、この16Byteリー
ド時にはIユニツト43やEユニツト44が必要
とした4Byteのデータが残りのデータより早く渡
される様に制御し、アクセス時間を短縮する。そ
してこのためには、第10図Bのごとくアドレス
に応じて、MCU12から起動をかけるメモリボ
ード14の順番を変更すれば良い。 次に、アドレス変換とプロテクシヨンチエツク
について詳細に説明する。 第11図は、第9図のアドレス変換装置75を
中心として更に詳細に示した構成図であり、第1
2図は、アドレス変換の動作フローを示したもの
である。 仮想アドレスから物理アドレスへの変換テーブ
ル130は、そのメモリ容量が大きいので、主メ
モリ10の一部に置かれている。しかし、メモリ
アクセスが発生するたびに、仮想アドレスを物理
アドレスに変換するために、主メモリ10をアク
セスしていてはオーバーヘツドが大きくなるた
め、最近アクセスしたアドレス変換情報を格納し
ておくTLB110がMCU12に設けられてい
る。 TLB110には、アドレス変換テーブル13
0の内、最近使用されたページの内容が格納され
ており、高速にアドレス変換が行なえるようにな
つている。TLB110における各ページの内容
は、有効ビツト(V)111、コネクト(C)ビ
ツト112、仮想アドレスの一部(VAP)11
3、物理アドレスの一部(PPA)114、実行
プロテクシヨンビツト(EP)115およびスト
レージキー(SKEY)116からなつている。V
ビツト111とCビツト112は、該当ページの
現在の状態を示し、Vビツト111が「0」の場
合は、TLB110の該当ページの内容が有効な
データでない(無効)ことを示す。 Vビツト111とCビツト112が共に「1」
の場合は、該当ページが、現在主メモリ10と外
部メモリ20との間で転送されていること、すな
わち、ページング中であることを示し、Vビツト
111が「1」で、Cビツト112が「0」の場
合は、該当ページが主メモリ10にあり、メモリ
アクセス可能なことを示している。 このように、ページング中である状態を付加し
ているのは、ページングを行つているエリアを
ECP22からのページングアクセス以外のアク
セスができないようにするためである。 本システムでは、仮想アドレスから物理アドレ
スへのアドレス変換を、MCU12で、各プロセ
ツサに共通に行なわせているので、ECP22に
よりページングを行なつているアクセスであつて
も、同じアドレス変換装置75を経由することに
なり、そのページング中のエリアを他のプロセツ
サがアクセスすることを許可すると、データの破
壊や喪失につながる。従つて、上記した如く、V
ビツト111とCビツト112が共に「1」を示
している場合には、FCP22からのページング
アクセスのみ許可することにより、上記の不都合
を解決しているのである。 次に仮想アドレスの一部(VPA)113は、
TLB110でアドレス変換を行う際に、該当す
る仮想アドレス(VA)の変換対がTLB110に
登録されているか否かをチエツクするためのもの
であり、また、物理アドレスの一部(PPA)1
14はTLB110の変換対があつた時に、物理
アドレス(PA)を作成するためのものである。 仮想アドレス(VAは)、セグメントアドレス
(SA)121、ページアドレス(PA)122、
ページ内アドレス(DISP)123からなり、上
記の物理アドレスの一部(PPA)114は、ペ
ージ内アドレス(DISP)123と連なつて物理
アドレス(PA)を作る。 実行プロテクシヨンビツト115(EP)は、
データに対し誤まつて命令読出し、実行すること
を防ぐためのものであり、プロテクシヨンチエツ
ク回路76でこのビツトが「1」のエリアに対し
て命令読出しすると実行プロテクトエラーとな
る。従つて本構成例の様に、JOBP40で命令キ
ヤツシユ41とデータキヤツシユ42が分れてい
る場合には、命令キヤツシユ41からのこのエリ
アに対するアクセスは、全て実行プロテクトエラ
ーとなる。 ストレージキー(SKEY)116は、ライトプ
ロテクシヨンを行うためのもので、要求元プロセ
ツサから転送されてきたアクセスキー(AKEY)
と共にプロテクシヨンチエツク回路76により、
ライトアクセスが許可されるか、禁止されるかを
調べられ、後者の場合はライトプロテクトエラー
となる。 アクセスキー(AKEY)は、この様にSKEY1
16との比較によるライトプロテクトエラーのチ
エツクに使う他、ECP22からのページングア
クセスか否かの情報や、命令読出しであるか否か
の情報を含んでおり、これらのプロテクトチエツ
クにも使用する。 次に、変換過程を、第12図のフローチヤート
を参照して順次説明する。 メモリアクセスの種類は大きく次の2つに分け
られる。すなわち、 (1) 一般のプロセツサによるメモリアクセス (2) ECP22によるページング時のメモリアク
セス の2つである。この(1),(2)のアクセスの区別は、
アクセスキーAKEY上にあり、信号線140を経
由してアドレス変換コントローラ125に伝えら
れる。 まず、一般的な(1)の場合のメモリアクセスのア
ドレス変換やアクセスの許可の判定について説明
する。 あるプロセツサ(JOBP40又はIOP30)か
ら出力された仮想アドレスは、共通バス50を経
由してMCU12内の共通バス受信用レジスタ7
1内の仮想アドレスレジスタ120にセツトされ
る。この仮想アドレスレジスタ120にセツトさ
れた仮想アドレスは、セグメントアドレス
(SE)121及びページアドレス(PA)122
の一部分120−2をアドレスとしてまずTLB
110をアクセスする。これにより読み出された
TLB110のエントリのVビツト111および
Cビツト112は、アドレス変換コントローラ1
25に伝えられ、そのパターンにより、その後の
処理が次の〜のように3つに分かれる。 これは、第12図のフローのステツプ(FO
5)に相当している。 Vビツト111=0,Cビツト112=0の
時。 これは、第12図で、「0,0」と表示して
ところであり、前述した如く、TLB110の
該当ページ(エントリ)は無効であり、主メモ
リ10上の変換テーブル130を読み出す。
(F10)この時、すなわち、TLBミス時の詳
細な動作は後述する。 Vビツト111=1,Cビツト112=1の
時。 第12図で「1,1」の時であるが、この
時、仮想アドレスの一部分120−1とTLB
110の仮想アドレスの一部分VPA113を
コンパレータ124で比較した結果、一致し、
TLBヒツト信号141が出力されていれば
(F205)、該当ページは現在ページング中で
あることを示しているので、そのメモリアクセ
スを禁止し、アドレス変換コントローラ125
よりミツシングページフオールト信号142を
出力する。(F45) TLBヒツト信号141が出力されていない
時は、TLBミスであるのでと同様に、主メ
モリ10上の変換テーブル130を読み出す。
(F10) Vビツト111=1,Cビツト112=0の
時。 第12図で、「1,0」の時であるが、ま
ず、TLBヒツト信号141がチエツクされ、
(F30)出力されていない時は、プロテクシ
ヨンチエツク回路76からのプロテクトエラー
信号143をチエツクし、エラーが発生してい
なければ、仮想アドレスレジスタ120のペー
ジ内アドレス部123とTLB110上の物理
アドレスの一部114を連結して物理アドレス
をセレクタ128を介しアクセスレジスタ72
上に作成し、その物理アドレスをメモリアドレ
スバス152に送り、主メモリ10をアクセス
するためメモリコントローラ77よりメモリ起
動信号151を出力する。(F40) 次に(2)のFCP22によるページング時のメモ
リアクセスについて説明する。 FCP22より出力された仮想アドレスは、共
通バス50を経由してMCU12内の仮想アドレ
スレジスタ120にセツトされる。 この場合も、まずTLB110をアクセスし、
アクセスしたTLB110のエントリのVビツト
111及びCビツト112のパターンにより、先
程と同様にその後の処理が3つに分かれる。 Vビツト111=0,Cビツト112=0の
時。 主メモリ10の変換テーブル130の読み出
しを行う。(F10) Vビツト111=1,Cビツト112=1の
時。 この時、TLBヒツト信号114がチエツク
される。(F30)TLBヒツトを示していれ
ば、アクセスレジスタ72上で作成された物理
アドレスで主メモリ10をアクセスする。(F
40) TLBヒツト信号が出ていない場合は、主メ
モリ10の変換テーブル130を読み出す。
(F10) Vビツト=1,Cビツト112=0の時 TLBヒツト信号141がチエツクされる。
(F215) TLBヒツト信号141が出ている時は、禁
止区域をアクセスしていることになるので、
FCP22にエラーを知らせる。(F220) 次に、TLBミスの場合の、主メモリ10上の
変換テーブル130を読み出す時の処理を説明す
る。 変換テーブル130は、テーブルに必要なメモ
リ容量を減らすため、アドレス変換に必要な情報
を有するページテーブル132と、そのページテ
ーブル132の先頭アドレスを保持するセグメン
トテーブル131から成る。TLBミス時には、
まずセグメントテーブルの先頭アドレスを保持す
るレジスタ126(STOR)の内容と、仮想アド
レスレジスタ120のセグメントアドレス
(SA)121をアダー127で加算して物理アド
レスを作り、それでセグメントテーブル131の
該当する位置の内容をリードデータバス155上
に読み出して来る。このデータには、ページテー
ブル132の先頭アドレスが保持されており、こ
の値と、仮想アドレスレジスタ120のページア
ドレス(PA)122をアダー127で加算して
アドレスを作り、ページテーブル132から変換
に必要な情報を読み出す。(F10) このページテーブル132には、Mビツトの
他、TLB110内の、Vビツト111と仮想ア
ドレスの一部113(VPA)を除く情報を含ん
でおり、このMビツトとCビツトがリードデータ
バス155の一部155−1を介してアドレス変
換コントローラ125に入力され、これらのビツ
トパターンにより次の様な処理を取る。 Mビツト=0,Cビツト0の時 該当ベージは主メモリ10上に無く、外部メ
モリ20上にあることを示しており、このペー
ジのアクセス要求に対してはミツシングページ
フオールト信号142を出して、該当プロセツ
サにページフオールトを知らせる。(F45) Mビツト=0,Cビツト=1の時 該当ビツトは現在ページング中であることを
示しているので、FCP22以外のメモリアク
セスに対してはそのメモリアクセスを禁止し、
ミツシングページフオールト信号142を出
す。(F45)FCP22からのメモリアクセス
の場合は、TLB110に登録してアクセスを
行う。(F20) Mビツト=1,Cビツト=0の時 読み出されたリードデータの一部155−2
と仮想アドレスの一部120−1、及びVビツ
ト「1」がTLB110に登録され、(F20)
V,Cビツトのチエツクルーチンに戻る。 以上述べたように、アドレス変換装置75は、
各プロセツサからの仮想アドレスによるメモリア
クセスに対し、仮想アドレスから物理アドレスへ
のアドレス変換を集中して実施することが可能で
アドレス変換の制御が単純となる。 また、FCP22からのアクセスと、他のプロ
セツサからのアクセスとの制御方式を変更するこ
とにより、ページング中のページに対する他のプ
ロセツサからのアクセスを禁止することが可能
で、データの保全が可能となる。 次に、ミツシングページフオールト時の動作に
ついて説明する。 ページフオールト信号を要求元プロセツサが受
取つた時には、その時に実行していたタスクを中
断し、要求したアドレスを含むページを主メモリ
10にロードするために、FCP22に起動をか
ける。FCP22はこの起動を受けて、該当ペー
ジを読み出し、これが完了すると終了割込みを発
生する。この時には必要なページは主メモリ10
上にロールインされているために、前記中断され
たタスクを再開する。このタスクが中断されてい
る間、当該プロセツサは他のタスクを実行する。 次に命令キヤツシユ41とデータキヤツシユ4
2について説明する。第13図は命令キヤツシユ
41の構成例を示した図である。主メモリ10か
らコピーして来たデータがキヤツシユデータ部8
1−I上にあり、そのデータのアドレスがデイレ
クトリイ82−Iと無効化デイレクトリイ83−
Iにあり、またこれらが有効か否かを示す情報が
有効ビツトレジスタ84−Iにある。デイレクト
リイ82−Iと無効化デイレクトリイ83−Iの
内容は同じであり、性能を高めるため分けてあ
る。前者はIユニツト43がアクセスしたデータ
がキヤツシユデータ部81−Iにあるか否かのチ
エツクに使用し、後者は他のプロセツサが主メモ
リ10に書込んだデータがキヤツシユデータ部8
1−Iに取込まれている場合に、既にそのデータ
は古くなつているので無効化しなければならない
(これを無効化処理と呼ぶ)が、そのためのチエ
ツクに使用する。 次に、この命令キヤツシユ41の動作について
説明する。なお、命令キヤツシユ41はデータキ
ヤツシユ42とは異なり、ライトアクセスは処理
しない。 第14図はリードアクセスのキヤツシユミス時
のフロー、第15図は無効化処理のフローを示し
ている。 (1) リードアクセス(第14図参照) Iユニツト43から起動信号91−Iが来
たら、仮想アドレス92−Iの一部、ここで
はビツト18−27でデイレクトリイ82−
Iと有効ビツトレジスタ84−Iの内容を読
み出し、デイレクトリイ82−Iの内容と仮
想アドレス92−Iのビツト0−17をコン
パレータ160−Iで一致チエツクを行い、
またその内容をパリテイチエツカー161−
Iでチエツクする。そしてコンパレータ16
0−Iが一致を示し、パリテイエラーが発生
してなく、かつ有効ビツトレジスタ84−I
が有効であることを示しているならば、ゲー
ト169−Iを介してキヤツシユヒツト信号
170−Iが命令キヤツシユコントローラ1
62−Iに出され、命令キヤツシユコントロ
ーラ162−Iは、仮想アドレスのビツト1
8−29でアクセスされたキヤツシユデータ
部81−Iの内容を、リードデータバス94
−Iに乗せると共に、Iユニツト43に対し
て終了信号93−Iを返す。 キヤツシユミスの場合は、命令キヤツシユ
コントローラ162−Iは、起動バス占有要
求51を出す。 占有要求51が許可されたら、ゲート85
−Iを開き、起動バス55に仮想アドレス
(VA)、アクセスの種類(FUNC)、アクセス
キー(AKEY)を転送する。なお、このアク
セスキー(AKEY)には命令読み出しである
ことを付加する。 セツト信号172−Iにより、仮想アドレ
スのビツト0〜17をデイレクトリイ82−
I、無効化デイレクトリイ83−Iへ書き込
み、有効ビツトレジスタ84−Iをセツトす
る。本処理をこの時点で行う理由は後で述べ
る。 MCU12からデータバス56を介して、
リードデータ(RD)が、また応答バス57
を介して終了信号とリターンコード(アクセ
ス中に発生したエラー及びページフオールト
の情報)(RC)が送られてきたらレジスタ8
6−Iにラツチする。MCU12の説明でも
述べたように、最初に送られて来たデータ
は、Iユニツト43がアクセスしたデータで
あるので、リターンコード(RC)が次の(1)
〜(3)の状態を示している時(第14図Bに示
す条件イ成立時、)は、Iユニツト43に終
了信号93−Iとリードデータ94−Iとリ
ターンコード95−Iを返す。 (1) No Error(エラーが発生してない時) (2) Page Fault(ページフオールトが発生
した時、) (3) Soft Error(ソフトによるエラー、例え
ばプロテクシヨンエラーが発生した時) また、Hard Error(ハードが原因のエラ
ー)の場合は、再度主メモリ10をアクセス
することによつて、救える場合が多いので、
リトライを行う。この為、上記の信号を返さ
ないが、リトライ回数が規定回数を越えた場
合、すなわち、リトライオーバーの場合に
は、エラー報告を行うために、上記の信号を
返す。そして、主メモリ10から読み出して
来たリードデータをキヤツシユデータ部81
−Iに書き込む。 ,, MCU12から送られてくる残り
のリードデータをキヤツシユデータ部81−
Iに書込む。のステージで既にIユニツト
43に対しては終了信号93−Iを戻してあ
るので、この間、Iユニツト43は別な動作
が可能である。の段階ではこれに加えて、
〜のステージでエラーやページフオール
トが発生したかをチエツクし、発生してない
場合には命令キヤツシユ41の動作を止め
る。 エラーやページフオールトが発生している
場合には、のステージでセツトした有効ビ
ツトレジスタ84−Iに対し、命令キヤツシ
ユコントローラ162−Iより有効ビツトク
リア信号171−Iを出して、クリアしキヤ
ツシユデータ部81−Iの該当データを使用
出来ない様にする。また、のステージで
Hard Errorを起こし且つリトライオーバし
てない場合には(第14図Bに示す条件ア成
立)、リトライを行うためのステージに飛
ぶ。 以上がリードアクセスの処理手順であるが、先
程述べた様にキヤツシユ(命令、データキヤツシ
ユ共)では、いわゆる無効化処理が必要となる。
以下、その手順を説明する。 (2) 無効化処理(第15図参照) 起動バス55転送中の仮想アドレス
(VA)とアクセスの種類(FUNC)を毎回レ
ジスタ87に取込む。 上記仮想アドレスのビツト18−27で無
効化デイレクトリイ83−Iの内容を読出
し、無効化する必要があるか否かを無効化判
定回路165−Iでチエツクすると共に、そ
のアドレスのビツト18−27をレジスタ8
8−Iにセツトする。 そして無効化が必要な場合は、レジスタ8
8−Iのアドレスで該当の有効ビツト84−
Iをクリアする。このため無効化判定回路1
65−Iから有効ビツトクリア信号171−
Iを出す。 次に無効化が必要な場合を詳細に説明する。
まず、無効化起動バス55から取んだアクセス
の種類(FUNC)がライトアクセスを示し、そ
れが他方からのものである時行う。そして、次
に示す条件のいずれかを満した時に無効化を行
う。 (a) レジスタ87−Iのアドレスのビツト18
−27で無効化デイレクトリイ83−Iを読
出し、その内容とアドレスのビツト0−17
をコンパレータ163−Iで比較し、一致し
た時。 (b) 無効化デイレクトリイ83−Iを読出した
際に、パリテイチエツカ164−Iでパリテ
イエラーが検出された時。 (c) 無効化デイレクトリイ83−IをJOBP4
内で使用している時。(にチエツクが出来
ないため) 以上無効化処理について述べたが、次に(1)の
リードアクセスのステージでデイレクトリイ
82−I、無効化デイレクトリイ83−Iへア
ドレスを書込み、有効ビツトレジスタ84−I
をセツトしなければならない理由を明らかにす
る。 第16図はリードアクセスがキヤツシユミス
になり、主メモリ10をリードに行く場合と主
メモリ10に対して他からライトアクセスが行
われた場合のキヤツシユの無効化処理が競合し
た時に、各部分がどの様に使用されるかをタイ
ムチヤートで示している。無効化処理について
は斜線で示してあり、それぞれタイムスロツト
1と3で起動バス55、データバス56を転送
中のライトアクセスに対して、タイムスロツト
2と4で無効化デイレクトリイ83−Iのチエ
ツクを行い、タイムスロツト3と5の前半で有
効ビツトレジスタ84−Iをクリアし無効化し
ている。一方、キヤツシユミスとなつたリード
アクセスは、タイムスロツト2で起動バス55
にアドレスを転送しているので、主メモリ10
へのアクセスの順番としては、タイムスロツト
1で起動バス55を転送中のライトアクセスよ
り後で、タイムスロツト3で起動バス55を転
送中のライトアクセスより前となる。従つてキ
ヤツシユと主メモリ10のデータの一致を保つ
ためには、ライトアクセスが無効化デイレクト
リイ83−Iをチエツクするタイムスロツト2
と4の間で、キヤツシユミスを起こしたリード
アクセスのアドレスを無効化デイレクトリイ8
3−Iに書込まなければならないし、またチエ
ツクの結果、有効ビツトレジスタ84−Iを無
効化するタイムスロツト3と5の間で、有効ビ
ツトレジスタ84−Iをセツトする必要があ
る。これらの制御が必要な理由は、主メモリ1
0で複数のメモリアクセスを同時に処理してい
るからである。 なお本構成例では、アドレス情報を2ケ所、
すなわちデイレクトリイ82−Iと無効化デイ
レクトリイ83−Iに持つているため、無効化
デイレクトリイ83−Iの方しか上記の制約を
受けないが、デイレクトリイを1ケ所に持つ場
合は、当然上記の制約を受ける。 次にデータキヤツシユ42について説明す
る。第17図はデータキヤツシユ42の構成例
を示した図であり、無効化処理の回路180−
Dは命令キヤツシユ41と同じであるため省略
してある。尚第13図と第17図で、サフイツ
クスが違うだけのものは相当物である。第13
図の命令キヤツシユではサフイツクスにI、第
17図のデータキヤツシユではサフイツクスに
Dを使用している。命令キヤツシユ41との大
きな違いは、ライトアクセスをサポートしなけ
ればならない点であり、このライトアクセス時
間を短縮するために共通バス送出用バツフア8
9−Dを設け、ライト時には仮想アドレス92
−D、ライトデータ95−D、制御情報96−
Dをこのバツフア89−Dにセツトしただけ
で、終了信号93−DをEユニツト44に返
し、Eユニツト44が次の処理を出来る様に制
御している。 次に、このデータキヤツシユ42の動作につ
いて説明する。但し、リードアクセスの処理は
命令キヤツシユ41と同じであるので省略す
る。 (3) ライトアクセス(第18図参照)。 Eユニツト44から起動信号91−Dが来
たら、仮想アドレス92−D、ライトデータ
95−D、制御情報96−D(アクセスの種
類、アクセスキー等)を共通バス送出用バツ
フア89−Dにセツトし、Eユニツト44に
対して終了信号93−Dを返す。この際、デ
イレクトリイ82−Dと有効ビツトレジスタ
84−Dをチエツクしキヤツシユヒツト(信
号170−Dが出てる)ならば、キヤツシユ
データ部81の仮想アドレスのビツト18−
27で示される位置にデータを書込む。 データキヤツシユコントローラ162−D
より起動バス占有要求51、データバス占有
要求52を出す。 両方の占有要求が許可されたら、ゲート8
5−Dを開き起動バス55に仮想アドレス
(VA)、アクセスの種類(FUNC)、アクセス
キー(AKEY)を転送し、データバス56に
はライトデータを転送する。 MCU12から応答バス57を通して終了
信号とリターンコードが送られてきたらレジ
スタ86−Dにラツチする。そしてリターン
コードをチエツクし、エラーやページフオー
ルトを起こしてない時には共通バス送出用バ
ツフア89−Dからそのアクセスを取り除
き、処理を終了する。一方、第14図Bに示
したアの条件、すなわちHard Errorが発生
しかつリトライオーバしてない時には、リト
ライを行うためのステージに飛ぶ。 上記以外の場合には、共通バス送出用バツ
フア89−Dのアドレスで有効ビツトレジス
タ84−Dをクリアすると共に、Eユニツト
44に対してエラー、ページフオールトの発
生を報告する。有効ビツトレジスタ84−D
をクリアする理由は、例えばプロテクシヨン
エラーの場合は、書込んではならないキヤツ
シユデータ部81−Dのデータに対して、既
にのステージで書込みを行つているためで
ある。 尚データキヤツシユ42から主メモリ10に
ライト起動したアドレスも起動バス55からデ
ータキヤツシユのレジスタ87−D(無効化処
理の回路180−Dに含まれている)にセツト
されるが、それに対しては、自分自身が出した
ものであるからデータキヤツシユコントローラ
162−Dより無効化処理の回路180−Dに
対して信号173−Dを送り無効化を行なわな
い様に制御する。命令キヤツシユ41はライト
アクセスは行なわないので、この信号173−
Dに相当するものはない。 以上詳細に説明したように、本発明によれば、
複数のプロセツサがあり、その中の少なくとも1
つのプロセツサは仮想アドレスでアクセスするキ
ヤツシユメモリを持ち、アドレス変換装置を全プ
ロセツサで共有する構成のデータ処理装置が実現
できる。
(以下主メモリと略称する)を共用するデータ処
理装置に関する。 ここで、複数のプロセツサのうち、少なくとも
1つは、命令を実行するために仮想アドレスでメ
モリアクセスを行うプロセツサであり、ここで
は、このプロセツサをジヨブプロセツサと称して
いる。 また、少なくとも1つは、補助記憶装置とも称
される外部記憶装置(以下外部メモリと略称す
る)との入出力を行うために、仮想アドレスでメ
モリアクセスを行うプロセツサであり、ここで
は、このプロセツサをフアイルプロセツサと称し
ている。 また、ジヨブプロセツサには、仮想アドレスで
メモリアクセスされるキヤツシユメモリが設けら
れている。 更に、本発明におけるデータ処理装置は、各プ
ロセツサから共通に使用され、仮想アドレスを物
理アドレスに変換するアドレス変換装置を有する
ものである。 本発明は、このようなデータ処理装置におい
て、フアイルプロセツサが主メモリの内容を書き
換え(ページのロールイン、ロールアウト)時
に、アドレス変換テーブルを更新するために生ず
る問題、即ち、キヤツシユメモリが主メモリのコ
ピーであるという従来の考え方がくずれることか
ら生ずる問題を解決するようにしたデータ処理装
置に関する。 まず、本発明の背景を詳細に説明する。 1つの主メモリを複数のプロセツサが共用する
データ処理装置は、一般にマルチプロセツサシス
テムと称されている。 従来のマルチプロセツサシステムでは、一般
に、シングルコンピユータのコスト/パーフオー
マンスを圧迫しない形で、マルチシステム構成を
可能としてきた。そのため、プロセツサ台数が、
2台程度では、最高な構成であつたが、プロセツ
サ台数が更に増加すると、相互の干渉が大きくな
り、ハードウエア構成が大きくなりすぎるという
問題があつた。 マルチプロセツサシステムにおいて、解決しな
ければならない問題の1つに仮想記憶方式があ
る。仮想記憶方式は、良く知られているが、これ
は、主メモリと外部メモリとを見掛け上、一体の
ものとみなし、プロセツサから要求された情報が
主メモリ内になく、外部メモリにある場合には、
主メモリの比較的使われていない一部分の情報を
外部メモリに転送し、要求された情報を外部メモ
リから主メモリへ転送するのを自動的にシステム
が行うものである。 主メモリの情報を外部メモリに転送することを
ロールアウト、逆に、外部メモリの情報を主メモ
リへ転送することをロールインと称している。 このような、ロールイン、ロールアウトの制御
を実施する為、一般には、主メモリと外部メモリ
とは、それぞれページと称される1つの単位に分
割されて使用されている。 各ページに対応して、そのページが現在主メモ
リ上にあるかどうか、またある場合は、それに対
応する主メモリの物理アドレス(実アドレスとも
称されている)がいくらであるかの情報が、変換
テーブル上に置かれている。 プロセツサからのメモリアクセス時のアドレス
は、仮想アドレスで与えられ、その上位アドレス
部で変換テーブルが索引され、物理アドレスへの
変換が行なわれる。 このような、変換テーブルは、仮想アドレスの
ページ数分だけ必要となり、必要なメモリ容量が
大きくなり、そのため、容量の削減を図ろうとし
て変換テーブルをセグメントテーブルと、ページ
テーブルのような2レベルのアドレス変換を実施
するものが多い。 変換テーブルは、上記したように、メモリ容量
を多く必要とするので、一般には、主メモリ上に
置かれている。そのため、プロセツサからのメモ
リアクセスがある毎に、主メモリの変換テーブル
をチエツクしていたのでは、1つのメモリアクセ
ス要求に対して必ず3回以上のメモリアクセスが
発生し、オーバーヘツドが無視できない。 そこで、仮想記憶方式をとるプロセツサには、
TLBと称される高速バツフアを設けているもの
が多く、この高速バツフアには最近使用された仮
想アドレスに対応した物理アドレスが記憶されて
いる。 これによれば、プロセツサからのメモリアクセ
スが発生すると、まず、TLBの中に、対応する
アドレスがないかどうかがチエツクされ、存在す
る場合には、アドレス変換のための、変換テーブ
ルのメモリアクセスが必要でなく、アドレス変換
のオーバーヘツドは少なくてアクセス可能とな
る。このような、TLBを含んだアドレス変換装
置は、従来は、プロセツサ毎におかれ、プロセツ
サ内の制御装置の手助けを借りて仮想制御方式を
実現していた。 一方、性能を上げるためには、キヤツシユメモ
リと呼ばれる高速メモリを各プロセツサに設ける
ことが一般的になつている。このキヤツシユメモ
リは、主メモリの一部の写しで、通常、主メモリ
よりも5〜10倍高速なものとして設計されてい
る。 プロセツサからのメモリアクセスは、まずキヤ
ツシユに該当するものがあるか否かのチエツクを
行い、あれば、その内容を返送し、なければ主メ
モリをアクセスすることになる。 ところで、仮想記憶方式で、キヤツシユメモリ
を有する場合には、従来、プロセツサから見て
TLB、キヤツシユメモリ、主メモリの順で接続
されていた。これは、キヤツシユメモリは、実記
憶である主メモリの写しであるという考え方に基
づくもので、キヤツシユメモリのアクセスは、物
理アドレスに変換してから行なわなければならな
かつた。 このような、従来方式には、次のような問題点
がある。 第1の問題点は、実効的なメモリアクセス時間
が長くなることである。 この理由は、プロセツサからキヤツシユメモリ
をアクセスする場合に、必ずTLBを通らなけれ
ばならないからである。すなわち、プロセツサか
らの仮想アドレスを、TLBにより物理アドレス
に変換してからキヤツシユメモリをアクセスする
ことになるからである。 第2の問題点は、TLBが全プロセツサに必要
なため、プロセツサの数が増えた場合、それにつ
れてハードウエア物量が大きくなるばかりでな
く、TLBのずれを修正しなければならず、これ
が複雑になつていることである。 TLBのずれの修正は、あるプロセツサが、ペ
ージをスワツプした時に、変換システム、TLB
のエントリーを更新するが、当該プロセツサのみ
でなく、他のプロセツサにもその旨を連絡して、
該当部分をクリヤしなければならない。 これは、一般にTLB Purge(Translation
Lookaside Buffer Purge)と称され、マルチプ
ロセツサを構成する場合の1つの重要なポイント
となつている。 第3の問題点は、一般のジヨブプロセツサはメ
モリをアクセスする場合、仮想アドレスを用いる
が、入出力プロセツサは、TLBを持たないた
め、物理アドレスでアクセスすることから生ずる
もので、両者で、アドレスの受け渡しをする際に
変換が必要となるためにオーバーヘツドが増加す
ることである。 第4の問題点は、第2の問題点と類似している
が、マルチプロセツサでなくても、高度なパイプ
ライン制御をするプロセツサでは命令をアクセス
するユニツトとオペランドをアクセスするユニツ
トは別々で、各々にキヤツシユメモリを持ち、高
速化を図ることが行なわれるが、この際にも、従
来方式では、TLBを各ユニツトに持たなければ
ならなくなり、ハードウエア量が増大するという
ことである。 このような問題点を解決するために、キヤツシ
ユメモリを仮想アドレスでアクセスし、ビツトし
ない場合のみアドレス変換を行うたり方が、特開
昭49−53339号公報の中に示されている。これに
よればキヤツシユメモリをアクセスする場合に毎
回アドレス変換を行う必要がなくなつて、高速化
を図ることが可能となる。 しかしながら、この公報には、本方式は次の欠
点があるために、採用できないことを指摘してい
る。それは、 (1) 2つの異なつた仮想アドレスが同一の物理ア
ドレスを参照する場合、うまくゆかない。これ
はある仮想アドレスの内容を書き変えた時に同
一の物理アドレスを示す別の仮想アドレスで指
定されるキヤツシユメモリの内容が書き変つて
いなければならないためである。 (2) ページあるいはセグメントテーブルの内容を
書き変える場合に、キヤツシユの無効化をする
ためのスキヤンが必要である。 (3) ストレージキーは物理アドレスに対応してい
るために、プロテクシヨンチエツクが不可能と
なる。 の3点である。 特開昭56−38649号公報にも、同様に、キヤツ
シユメモリを仮想アドレスでアクセスする方法が
示されているが、上記の問題点の解決法は触れら
れていない。 また、特開昭55−142476号公報には、アドレス
変換装置を複数のプロセツサで共有する方式が示
されている。これによれば、複数のプロセツサで
共有するために、マルチプロセツサ構成時に、経
済性を実現できるというものであるが、ここに
は、キヤツシユメモリは示されていない。 本発明は、複数のプロセツサがあり、その中の
少なくともひとつのプロセツサが、仮想アドレス
でアクセスするキヤツシユメモリを持ち、アドレ
ス変換装置は全プロセツサで共有する構成に適用
されるものである。 このような構成の目的は、アドレス変換装置に
要するハード量を削減した上で、実効メモリアク
セス時間の短縮がはかることにある。 他の目的は、TBL間の一致化制御のような複
雑な処理が不要な方式を提供することである。 他の目的は、入出力プロセツサなどからも仮想
アドレスでメモリをアクセスできる方式を提供
し、アドレスの一元管理を目指するものである。 他の目的は、パイプライン制御を行う複数のユ
ニツトから成る計算機において、高速かつ経済的
な、メモリ制御方式を実現することである。 しかしながらこの方式の最大の問題点は、特開
昭49−53339にも指摘されているように、主メモ
リのページあるいはセグメントテーブルを書換え
た場合に、キヤツシユメモリには、これが伝わら
ず、キヤツシユメモリの内容が主メモリの状態を
正しく反映しなくなることである。 本発明の目的は、この問題点を解決したデータ
処理装置を提供することである。 次に、前述した特開昭49−53339号公報に指摘
されている問題点について、本発明でどう解決し
ているかの考え方を説明する。 まず第1の問題である2つの仮想アドレスが同
一の物理アドレスを示すことができないというこ
とであるが、このようなニーズは多重仮想記憶の
場合に必要であるが、多重仮想記憶が必要となる
第1の要因は、アドレスを指定するビツト長が24
ビツト程度と小さく仮想空間が224=16Mega程度
でサイズが不十分である場合に必要となつたもの
で、232=4Giga,248=256Teraもの大きな仮想空
間をサポートできれば、多重仮想記憶のニーズは
少ない。また共面のサブルーチンや、データを異
なる仮想アドレスでアクセスすることは、エリヤ
管理も複雑となるために、良い方法とは言えな
い。従つて、全てのプログラム、データはユニー
クなアドレスを割付けられる単一仮想記憶の場合
は、これは問題点とはならない。 次に第2の問題は、キヤツシユを仮想アドレス
でアクセスする場合の本質的なことであるが、こ
れを少し詳細に説明する。アドレス変換テーブル
を更新するのは、(i)あるプログラム実行中にミツ
シングページフオールトが発生し、必要なページ
をロールインする場合、あるいは、空エリヤを作
るためにあるページをロールアウトする場合と、
(ii)プログラムを生成して、ある仮想アドレスに割
付ける、あるいは削除する場合である。このよう
な場合に、キヤツシユメモリには、既にロールア
ウトして主メモリにはないデータが残つていた
り、新しいプログラムが生成されたのに、以前の
プログラムがキヤツシユメモリに残つていたりす
ることになる。これに対して、キヤツシユには、
既にロールアウトされた情報が残つているという
点は、キヤツシユメモリは、外部メモリも加えた
空間でのキヤツシと考えれば良く、既にロールア
ウトされた情報を読出せても不都合は生じない。 逆に主メモリのサイズが、キヤツシユの容量分
だけ増える訳で、本方式の利点と言うこともでき
る。主メモリに書込もうとした時には、ストアス
ルー方式のキヤツシユメモリでは、書込毎に毎回
キヤツシユと主メモリの両方を更新するために、
毎回アドレス変換装置を通り、ここで該ページが
主メモリ上にあるか否かチエツクされる。従つて
ロールアウトされたページを使いながら実行して
いるプログラムは、読出しで、キヤツシユがヒツ
トしている限り続行し、キヤツシユミスか、ある
いは、主メモリ書込が起つた時に、ページフオー
ルトが発生することになる。ここでアドレス変換
装置に於けるチエツクとは、ページの状態には(a)
主メモリ上に存在する、(b)ページング中、(c)主メ
モリ上に存在しないの3つの状態があり、一般の
プロセツサは、(a)の時のみアクセスが可能で、外
部メモリとの転送を行うフアイルプロセツサは(b)
の時にもアクセスが可能であり、この規則に合つ
ているか否かのチエツクである。 ページフオールトが発生した場合には、キヤツ
シユメモリ内の該当するブロツクは無効化される
ため、以後はキヤツシユでヒツトしない。尚、リ
ードアクセス時にページフオールトが発生した場
合には、該ブロツクをキヤツシユに書込まないよ
うに制御する。 次に、今まで実行していたプログラムが完了し
て、同一の仮想アドレスに新たにプログラムが生
成される場合には、外部メモリから転送されるの
が普通であるが、この場合、外部メモリからの転
送中に、キヤツシユを無効化する手段を設けるこ
とによつて解決される。具体的には、外部メモリ
からの主メモリへの転送は、仮想アドレスで行
い、このアドレスをキヤツシユメモリは監視して
おいて、もしもキヤツシユメモリ内に該当するブ
ロツクがあれば無効化を行うものである。 次に第3のプロテクトの問題であるが、プロテ
クトは、物理アドレスよりも、仮想アドレスの方
が、プログラム毎にユニークなストレージキイを
割当てることが可能であり、良い方法であると考
えられる。但し書込みは、必ずアドレス変換装置
を通るために書込みプロテクトは必ずチエツクさ
れる。書込みプロテクトエラーが検出された時に
は、キヤツシユメモリの対応するブロツクは無効
化され、キヤツシユメモリに書込んだデータが使
用されないようにする。実行プロテクトは、メモ
リの読出しのために、キヤツシユ内に該当するも
のがあれば、ここで返送しアドレス変換装置を経
由しないために工夫が必要である。本発明では、
キヤツシユメモリを命令キヤツシユとデータキヤ
ツシユに分離した例を示しているが、この例で
は、実行プロテクトエラーが発生した場合にはキ
ヤツシユメモリに入れないように制御している。 以上で、本発明の、従来問題点とされていた項
目に対する解決法が理解できたと思われるが、本
発明はマルチプロセツサに於ける問題点をも同様
な方法で解決している。従来のマルチプロセツサ
構成で、アドレス変換テーブルを書き換えた場合
には、他のプロセツサに対して指令を送つて他の
プロセツサが所有するTLBの無効化(TLB
Purge)を行つていた。これによつて、以前のプ
ログラムがキヤツシユメモリに残つていても
TLBを無効化することによつて、該当するキヤ
ツシユメモリは使用しないようにできたわけであ
る。本発明が適用されるマルチプロセツサに於て
は、あるプロセツサがアドレス変換テーブルを書
換えた時に他のプロセツサのキヤツシユメモリ
が、主メモリと一致しなくなる点が問題である
が、前述のように、外部メモリからの転送を仮想
アドレスで行い、キヤツシユメモリでは、この仮
想アドレスを監視しておいて、該当するブロツク
がキヤツシユメモリ内にあれば、無効化を行うこ
とによつて解決している。 以下、本発明の一実施例を図面を参照して詳細
に説明する。 第1図は本発明が適用されるデータ処理装置の
全体構成の一例を示す図である。 第1図において、10はプログラムおよびデー
タを格納する主メモリで、メモリバス11、メモ
リコントローラ(MCU)12を介して共通バス
50に接続されている。 20は、主メモリ10に格納されるべきプログ
ラムおよびデータを格納する外部メモリで、外部
メモリバス21、フアイルプロセツサ(FCP)
22を介して共通バス50に接続されている。3
0は入出力プロセツサ(IOP)であり、図示しな
い各種入出力装置とのデータ転送の制御を行う。 40はジヨブプロセツサ(JOBP)であり、こ
こでは1つだけを示しているが、プログラム(命
令)の実行を行う。 ジヨブプロセツサ40は、命令キヤツシユ4
1、データキヤツシユ42、Iユニツト43およ
びEユニツトにより構成され、命令キヤツシユ4
1とIユニツト43はバス45で接続され、デー
タキヤツシユ42とEユニツト44はバス46で
接続され、Iユニツト43とEユニツト44はバ
ス47で接続されている。 このように、フアイルプロセツサ22、入出力
プロセツサ30およびジヨブプロセツサ40は、
いずれも共通バス50に接続され、メモリコント
ローラ12を介して主メモリ10をアクセス可能
になつている。 ジヨブプロセツサ4は、Iユニツト43とEユ
ニツト44でパイプライン処理をするもので、前
記の如くそれぞれのユニツトに対して命令キヤツ
シユ41とデータキヤツシユ44を有する。 尚プログラム(命令)が扱うデータはオペラン
ドとも呼ばれ、このデータキヤツシユのことをオ
ペランドキヤツシユと呼ぶ場合がある。 次に実行すべき命令語をIユニツト43がアク
セスする場合、まず、命令キヤツシユ41上にそ
の命令語が存在するか否かチエツクされ、存在す
る場合には、そのデータが命令語としてバス45
を介してIユニツト43へ送られる。存在しない
場合は、命令語の仮想アドレスを共通バス50を
介してメモリコントローラ12へ送出する。 メモリコントローラ12では、仮想アドレスを
物理アドレスに変換してメモリバス11を介して
主メモリ10をアクセスする。得られたデータ
(命令)は、共通バス50を介して、命令キヤツ
シユ41へ送られ、さらにバス45を介してIユ
ニツト43へ送られ、Iユニツト43で処理され
ると同時に、命令キヤツシユ41へ貯わえられ
る。 Iユニツト43では、この得られた命令を解読
し、Eユニツト44に対して「何を為すべきか」
を指示する。Eユニツト44は、この指令に基づ
き、必要なデータを内部のレジスタやデータキヤ
ツシユ42から(データキヤツシユ42上にない
場合は、命令キヤツシユと同様に主メモリ10か
ら)集め、演算処理し、その結果を内部のレジス
タか主メモリ10に格納する。後者の主メモリ1
0に結果を格納する際には、該当する位置のデー
タが既にデータキヤツシユ42内に取込まれてい
るならば、そのデータも更新する。 次に共通バス50の構成例について説明する。
共通バス50は第2図に示す様に、実際に情報を
転送するのに使用される起動バス55、データバ
ス56、応答バス57と、これらのバス55〜5
7をそれぞれどのプロセツサあるいはメモリコン
トローラが使用するかを決めるのに必要な起動バ
ス占有要求線51、データバス占有要求線52、
応答バス占有要求線53とインタロツク信号線5
4を含んでおり、時分割で使用される。 各バス55〜57の情報の中味は次の通りであ
る。 (1) 起動バス55 (a) アドレス (b) アクセスの種類(例えばリードアクセスで
あるか/ライトアクセスであるか、また何バ
イトアクセスするか、等) (c) アクセスキー(MCU12で行うプロテク
シヨンチエツクに使用する。) (2) データバス56 (a) ライトデータ (b) リードデータ (3) 応答バス57 (a) 終了信号 (b) リターンコード(アクセス中に、発生した
エラー及びページフオールトの情報) などである。 これらのバス55〜57が、どの様に使用され
るかを第3図で示す。 この図で示される様に、 (i) aのリード要求とbのリード応答 (ii) aのリード要求とdのライト応答 (iii) cのライト要求とdのライト応答 の3つの組み合せの転送が、同一のタイムスロツ
トで同時に可能となる。 次にバス55〜57の使用の様子を第4図で示
す。この図では、タイムスロツト0でJOBP40
がMCU12にメモリリード起動をかけ、それに
対するリードデータがタイムスロツトNとN+1
で返されて来ており、またタイムスロツト1で
IOP30がMCU12にメモリライト起動をか
け、それに対する応答がタイムスロツトN+2で
返されている。この様に共通バス50では、起動
と応答を分離した、いわゆるスプリツト転送を行
う。また、主メモリ10は複数のメモリアクセス
を処理出来る構成となつている。 以上、述べてきたバス55〜57の転送を行う
に当つて、その前に占有制御を行う必要がある。
これは転送を希望するプロセツサやメモリコント
ローラが、転送の1タイムスロツト前に、転送に
使用するバスに対する占有要求51〜53を出
し、これに対して優先順位を付けて転送を許可す
ることによつて行う。この優先順位の付け方は、
色々な方法が考えられるが、ここではその詳細に
ついては省略する。ただし、応答による占有要求
は、起動による占有要求より優先レベルを上げ
る。というのは、起動による占有要求によつて応
答が返せない事態になると、メモリコントローラ
上で起動の処理が詰まつてしまい、デツドロツク
状態となるからである。例えば、本実施例の場
合、第3図に示すbのデータリード応答と、cの
データライト起動による占有要求が競合した場合
には前者が優先される。 以上の占有制御の様子を簡略化して第5図に示
している。タイムスロツト0ではJOBP40と
IOP30がリード起動をしようとして、各々が起
動バス占有要求51を出している。この内、
JOBP40の方がIOP30より優先レベルが高い
ものとすると、タイムスロツト1でJOBP40は
起動バス55を使用してリードの起動を行い、同
時に占有要求を止める。一方、IOP30は占有が
許可されなかつたので、タイムスロツト1でも起
動バス占有要求51を出したままとする。このス
ロツト1では、JOBP40からの占有要求がなく
なるので、タイムスロツト2でIOP30はリード
起動が可能となる。 この様なシステムにおいて各プロセツサが、他
のプロセツサからのアクセスを排除して、すなわ
ちインタロツクして主メモリ10をアクセスする
場合には、起動バス55を他のプロセツサに使用
させない様にする。というのは、起動バス55を
占有することで、他のプロセツサから今後発生す
る起動を排除し、また既に主メモリ10内で処理
中のメモリ起動に対しては、データバス56、応
答バス57を使用して応答を返すことを可能にす
るためである。もし、これらの応答が返せない
と、メモリコントローラ12上で起動の処理が詰
まつてしまい、デツドロツク状態になつてしまう
からである。 次に、この起動バス55の占有方法の一例を説
明する。メモリコントローラ12をインタロツク
してアクセスしようとするプロセツサは、第6図
に示す様に起動バス占有要求51が受付けられ、
起動バス55に情報を転送するタイムスロツト
で、起動バス55を占有していることを示すイン
タロツク信号54を出す。そして、この信号によ
り他のプロセツサからの起動バス占有要求51が
受付けられない様に制御する。これは例えば第7
図の回路によつて実現される。この図では、各占
有要求51〜53の優先判定回路61は各プロセ
ツサごとに分散して持ち、インタロツク信号線5
4はオープン・コレクタの信号線としている。ま
ず、インタロツクの信号54が出てない場合は、
各占有要求51〜53を優先判定回路61でチエ
ツクし、自分の出した起動バス占有要求51の優
先度が一番高い場合には、アンドゲート62、オ
アゲート63を通して起動バス55の占有許可信
号64が出る。従つて、このプロセツサは次のタ
イムスロツトで、起動バス55に対して情報の転
送が可能である。また、この際プロセツサからイ
ンタロツク要求信号65が出されていると、アン
ドゲート68を介してJ−Kフリツプフロツプ6
6がセツトされ、インタロツク信号54が出力さ
れる。このインタロツク信号54は、インタロツ
ク解除信号67が出されるまで出力されており、
この間このプロセツサは起動バス55を占有した
ままとなる。次に、他のプロセツサからインタロ
ツク信号54が出されている場合には、アンドゲ
ート62で優先判定回路61の出力が禁止される
ので、起動バス占有許可信号64が出ないため、
起動バス55が使用できず、従つてメモリ起動も
出来ない。 次にMCU12について説明する。 MCU12は、通常のメモリアクセスの処理の
他、仮想アドレスから物理アドレスへのアドレス
交換や、プロテクシヨンのチエツクを行う。 また、各プロセツサ間で共通に使用され、高い
スループツトが要求されるため、リード処理とラ
イト処理は、第8図A,Bに示すように、いくつ
かのステージ〜又は′〜′に分かれてお
り、複数個のアクセスを第8図Cに示すようにオ
ーバラツプさせて処理出来るようになつている。 第9図は、MCU12の構成の一例を示したも
のであるが、第8図A,Bに示した各処理ステー
ジでは次のような動作を行う。 (A):リード処理ステージの動作 共通バス50からリード起動受信 起動バス55上の仮想アドレス(VA)、アク
セスの種類(FUN)、アクセスキー
(AKEY)を共通バス受信用レジスタ71に
取込む。 アドレス変換とプロテクシヨンチエツク アドレス変換装置75より、仮想アドレス
(VA)で示されるページが、主メモリ10に
あるか否かの判定を行い、ある場合には物理
アドレス(PA)に変換する。ない場合は、
いわゆるページフオールトとなる。 また、この時プロテクシヨンチエツク回路
76で、そのアクセスが許可されているもの
か否かの判定を行う。 このアドレス変換装置75とプロテクシヨ
ンチエツク回路76については、後で詳細に
述べる。 これらのプロテクシヨンチエツクの結果
と、ページフオールト情報は、他のエラー情
報と共にリターンコード(RC)として、ア
クセスの種類(FUNC)や物理アドレス
(PA)と共にアクセスレジスタ72にセツト
される。 メモリリード起動 アクセスレジスタ72にあるアクセスにエラ
ーやページフオールトが発生していない場合
には、メモリコントローラ77が、アクセス
レジスタ72上の物理アドレス(PA)で、
主メモリ10にメモリ起動151をかけ、主
メモリ10がその起動を受取つたら、アクセ
スの種類(FUNC)とリターンコード
(RC)を一時記憶レジスタ73へ移す。 また、アクセスレジスタ72にあるアクセ
スが、既にエラーやページフオールトの発生
を示している場合は、メモリ起動をせず、前
記の情報を一時記憶レジスタ73へ移す。 リードデータ受信とデータ、応答バス占有
要求 主メモリ10からメモリバス11を介して
リードデータ154を受取ると共に、アクセ
スの種類(FUNC)とリターンコード
(RC)を共通バス送出用レジスタ74へ移
す。 一方、共通バス50に対してはデータバス
占有要求52と応答バス占有要求53を出力
する。 リードデータ、応答バス転送 の占有要求52,53が受付けられたら、
リードデータ154をバス155を介してデ
ータバス56に転送し、また、終了信号とリ
ターンコード(RC)をバス156を介して
応答バス57に転送し、それぞれアクセス元
のプロセツサに返す。 (B):ライト処理ステージの動作 ′ 共通バス50からライト起動受信 起動バス55上の仮想アドレス(VA)、アク
セスの種類(FUNC)、アクセスキー
(AKEY)及びデータバス56上のライトデ
ータ(WD)を共通バス受信用レジスタ71
に取込む。 ′ アドレス変換とプロテクシヨンチエツク ライトデータを(WD)をアクセスレジスタ
72にセツトすることを除いて、リード処理
ステージAのと同じ動作をする。 ′ メモリライト起動 ライトデータ(WD)153を主メモリ10
に転送することを除いて、リード処理ステー
ジAのと同じである。 応答バス占有要求 アクセスの種類(FUNC)とリターンコード
(RC)を共通バス送出用レジスタ74へ移
す。一方、共通バス50に対しては、応答バ
ス占有要求53を出力する。 ′ 応答バス転送 ′の占有要求53が受付けられたら、終了
信号とリターンコード(RC)をバス156
を介して応答バス57に転送し、アクセス元
のプロセツサに返す。 以上の様に、リードとライトの処理は各ステー
ジに分けられており、異なるアクセスの処理の異
なる番号のステージは、第8図Cに示す様に並行
して処理可能である。この図では、共通バス50
からイ4Byteリード起動、ロ4Byteライト起動、
ハ16Byteリード起動を、それぞれタイムスロツ
ト0,1,2で受取つて処理している。そしてタ
イムスロツト2の場合を見ると、イのメモリリー
ド起動3と、ロのアドレス変換とプロテクシヨン
のチエツク2′と、ハの共通バスからのリード起
動受信1を並行して行つている。ここで、ハの
16Byteリードはイの4Byteリードに比べて、〜
のステージを4回繰り返しているが、これは
4Byteを単位としたメモリインタリーブを行つて
いるためである。以下、これについて説明する。 第10図は主メモリ10の構成の一例を示した
図であり、メモリボード(MB)14(14a〜
14d)は4Byteのデータ幅で構成され、各メモ
リボード14a,14b,14c,14dは
4Byte単位に付加されたアドレスの下位2bitが
00,01,10,11であるデータを持つている。そし
て16Byteのデータは、4Byteずつのメモリボード
14a,14b,14c,14d上にあるため、
16Byteリードではメモリボード14で競合をお
こすこと無く、第8図Cの様に連続してメモリボ
ードを起動し、リードデータを続み出して来るこ
とが可能となる。この様な16Byteリードは、主
にキヤツシユミス時にキヤツシユメモリへデータ
を送るブロツク転送に使用される。 Iユニツト43やEユニツト44が命令キヤツ
シユ41やデータキヤツシユ42をアクセスする
場合は、16Byteよりもつと小さな単位(この例
では4Byteとする)で行うので、この16Byteリー
ド時にはIユニツト43やEユニツト44が必要
とした4Byteのデータが残りのデータより早く渡
される様に制御し、アクセス時間を短縮する。そ
してこのためには、第10図Bのごとくアドレス
に応じて、MCU12から起動をかけるメモリボ
ード14の順番を変更すれば良い。 次に、アドレス変換とプロテクシヨンチエツク
について詳細に説明する。 第11図は、第9図のアドレス変換装置75を
中心として更に詳細に示した構成図であり、第1
2図は、アドレス変換の動作フローを示したもの
である。 仮想アドレスから物理アドレスへの変換テーブ
ル130は、そのメモリ容量が大きいので、主メ
モリ10の一部に置かれている。しかし、メモリ
アクセスが発生するたびに、仮想アドレスを物理
アドレスに変換するために、主メモリ10をアク
セスしていてはオーバーヘツドが大きくなるた
め、最近アクセスしたアドレス変換情報を格納し
ておくTLB110がMCU12に設けられてい
る。 TLB110には、アドレス変換テーブル13
0の内、最近使用されたページの内容が格納され
ており、高速にアドレス変換が行なえるようにな
つている。TLB110における各ページの内容
は、有効ビツト(V)111、コネクト(C)ビ
ツト112、仮想アドレスの一部(VAP)11
3、物理アドレスの一部(PPA)114、実行
プロテクシヨンビツト(EP)115およびスト
レージキー(SKEY)116からなつている。V
ビツト111とCビツト112は、該当ページの
現在の状態を示し、Vビツト111が「0」の場
合は、TLB110の該当ページの内容が有効な
データでない(無効)ことを示す。 Vビツト111とCビツト112が共に「1」
の場合は、該当ページが、現在主メモリ10と外
部メモリ20との間で転送されていること、すな
わち、ページング中であることを示し、Vビツト
111が「1」で、Cビツト112が「0」の場
合は、該当ページが主メモリ10にあり、メモリ
アクセス可能なことを示している。 このように、ページング中である状態を付加し
ているのは、ページングを行つているエリアを
ECP22からのページングアクセス以外のアク
セスができないようにするためである。 本システムでは、仮想アドレスから物理アドレ
スへのアドレス変換を、MCU12で、各プロセ
ツサに共通に行なわせているので、ECP22に
よりページングを行なつているアクセスであつて
も、同じアドレス変換装置75を経由することに
なり、そのページング中のエリアを他のプロセツ
サがアクセスすることを許可すると、データの破
壊や喪失につながる。従つて、上記した如く、V
ビツト111とCビツト112が共に「1」を示
している場合には、FCP22からのページング
アクセスのみ許可することにより、上記の不都合
を解決しているのである。 次に仮想アドレスの一部(VPA)113は、
TLB110でアドレス変換を行う際に、該当す
る仮想アドレス(VA)の変換対がTLB110に
登録されているか否かをチエツクするためのもの
であり、また、物理アドレスの一部(PPA)1
14はTLB110の変換対があつた時に、物理
アドレス(PA)を作成するためのものである。 仮想アドレス(VAは)、セグメントアドレス
(SA)121、ページアドレス(PA)122、
ページ内アドレス(DISP)123からなり、上
記の物理アドレスの一部(PPA)114は、ペ
ージ内アドレス(DISP)123と連なつて物理
アドレス(PA)を作る。 実行プロテクシヨンビツト115(EP)は、
データに対し誤まつて命令読出し、実行すること
を防ぐためのものであり、プロテクシヨンチエツ
ク回路76でこのビツトが「1」のエリアに対し
て命令読出しすると実行プロテクトエラーとな
る。従つて本構成例の様に、JOBP40で命令キ
ヤツシユ41とデータキヤツシユ42が分れてい
る場合には、命令キヤツシユ41からのこのエリ
アに対するアクセスは、全て実行プロテクトエラ
ーとなる。 ストレージキー(SKEY)116は、ライトプ
ロテクシヨンを行うためのもので、要求元プロセ
ツサから転送されてきたアクセスキー(AKEY)
と共にプロテクシヨンチエツク回路76により、
ライトアクセスが許可されるか、禁止されるかを
調べられ、後者の場合はライトプロテクトエラー
となる。 アクセスキー(AKEY)は、この様にSKEY1
16との比較によるライトプロテクトエラーのチ
エツクに使う他、ECP22からのページングア
クセスか否かの情報や、命令読出しであるか否か
の情報を含んでおり、これらのプロテクトチエツ
クにも使用する。 次に、変換過程を、第12図のフローチヤート
を参照して順次説明する。 メモリアクセスの種類は大きく次の2つに分け
られる。すなわち、 (1) 一般のプロセツサによるメモリアクセス (2) ECP22によるページング時のメモリアク
セス の2つである。この(1),(2)のアクセスの区別は、
アクセスキーAKEY上にあり、信号線140を経
由してアドレス変換コントローラ125に伝えら
れる。 まず、一般的な(1)の場合のメモリアクセスのア
ドレス変換やアクセスの許可の判定について説明
する。 あるプロセツサ(JOBP40又はIOP30)か
ら出力された仮想アドレスは、共通バス50を経
由してMCU12内の共通バス受信用レジスタ7
1内の仮想アドレスレジスタ120にセツトされ
る。この仮想アドレスレジスタ120にセツトさ
れた仮想アドレスは、セグメントアドレス
(SE)121及びページアドレス(PA)122
の一部分120−2をアドレスとしてまずTLB
110をアクセスする。これにより読み出された
TLB110のエントリのVビツト111および
Cビツト112は、アドレス変換コントローラ1
25に伝えられ、そのパターンにより、その後の
処理が次の〜のように3つに分かれる。 これは、第12図のフローのステツプ(FO
5)に相当している。 Vビツト111=0,Cビツト112=0の
時。 これは、第12図で、「0,0」と表示して
ところであり、前述した如く、TLB110の
該当ページ(エントリ)は無効であり、主メモ
リ10上の変換テーブル130を読み出す。
(F10)この時、すなわち、TLBミス時の詳
細な動作は後述する。 Vビツト111=1,Cビツト112=1の
時。 第12図で「1,1」の時であるが、この
時、仮想アドレスの一部分120−1とTLB
110の仮想アドレスの一部分VPA113を
コンパレータ124で比較した結果、一致し、
TLBヒツト信号141が出力されていれば
(F205)、該当ページは現在ページング中で
あることを示しているので、そのメモリアクセ
スを禁止し、アドレス変換コントローラ125
よりミツシングページフオールト信号142を
出力する。(F45) TLBヒツト信号141が出力されていない
時は、TLBミスであるのでと同様に、主メ
モリ10上の変換テーブル130を読み出す。
(F10) Vビツト111=1,Cビツト112=0の
時。 第12図で、「1,0」の時であるが、ま
ず、TLBヒツト信号141がチエツクされ、
(F30)出力されていない時は、プロテクシ
ヨンチエツク回路76からのプロテクトエラー
信号143をチエツクし、エラーが発生してい
なければ、仮想アドレスレジスタ120のペー
ジ内アドレス部123とTLB110上の物理
アドレスの一部114を連結して物理アドレス
をセレクタ128を介しアクセスレジスタ72
上に作成し、その物理アドレスをメモリアドレ
スバス152に送り、主メモリ10をアクセス
するためメモリコントローラ77よりメモリ起
動信号151を出力する。(F40) 次に(2)のFCP22によるページング時のメモ
リアクセスについて説明する。 FCP22より出力された仮想アドレスは、共
通バス50を経由してMCU12内の仮想アドレ
スレジスタ120にセツトされる。 この場合も、まずTLB110をアクセスし、
アクセスしたTLB110のエントリのVビツト
111及びCビツト112のパターンにより、先
程と同様にその後の処理が3つに分かれる。 Vビツト111=0,Cビツト112=0の
時。 主メモリ10の変換テーブル130の読み出
しを行う。(F10) Vビツト111=1,Cビツト112=1の
時。 この時、TLBヒツト信号114がチエツク
される。(F30)TLBヒツトを示していれ
ば、アクセスレジスタ72上で作成された物理
アドレスで主メモリ10をアクセスする。(F
40) TLBヒツト信号が出ていない場合は、主メ
モリ10の変換テーブル130を読み出す。
(F10) Vビツト=1,Cビツト112=0の時 TLBヒツト信号141がチエツクされる。
(F215) TLBヒツト信号141が出ている時は、禁
止区域をアクセスしていることになるので、
FCP22にエラーを知らせる。(F220) 次に、TLBミスの場合の、主メモリ10上の
変換テーブル130を読み出す時の処理を説明す
る。 変換テーブル130は、テーブルに必要なメモ
リ容量を減らすため、アドレス変換に必要な情報
を有するページテーブル132と、そのページテ
ーブル132の先頭アドレスを保持するセグメン
トテーブル131から成る。TLBミス時には、
まずセグメントテーブルの先頭アドレスを保持す
るレジスタ126(STOR)の内容と、仮想アド
レスレジスタ120のセグメントアドレス
(SA)121をアダー127で加算して物理アド
レスを作り、それでセグメントテーブル131の
該当する位置の内容をリードデータバス155上
に読み出して来る。このデータには、ページテー
ブル132の先頭アドレスが保持されており、こ
の値と、仮想アドレスレジスタ120のページア
ドレス(PA)122をアダー127で加算して
アドレスを作り、ページテーブル132から変換
に必要な情報を読み出す。(F10) このページテーブル132には、Mビツトの
他、TLB110内の、Vビツト111と仮想ア
ドレスの一部113(VPA)を除く情報を含ん
でおり、このMビツトとCビツトがリードデータ
バス155の一部155−1を介してアドレス変
換コントローラ125に入力され、これらのビツ
トパターンにより次の様な処理を取る。 Mビツト=0,Cビツト0の時 該当ベージは主メモリ10上に無く、外部メ
モリ20上にあることを示しており、このペー
ジのアクセス要求に対してはミツシングページ
フオールト信号142を出して、該当プロセツ
サにページフオールトを知らせる。(F45) Mビツト=0,Cビツト=1の時 該当ビツトは現在ページング中であることを
示しているので、FCP22以外のメモリアク
セスに対してはそのメモリアクセスを禁止し、
ミツシングページフオールト信号142を出
す。(F45)FCP22からのメモリアクセス
の場合は、TLB110に登録してアクセスを
行う。(F20) Mビツト=1,Cビツト=0の時 読み出されたリードデータの一部155−2
と仮想アドレスの一部120−1、及びVビツ
ト「1」がTLB110に登録され、(F20)
V,Cビツトのチエツクルーチンに戻る。 以上述べたように、アドレス変換装置75は、
各プロセツサからの仮想アドレスによるメモリア
クセスに対し、仮想アドレスから物理アドレスへ
のアドレス変換を集中して実施することが可能で
アドレス変換の制御が単純となる。 また、FCP22からのアクセスと、他のプロ
セツサからのアクセスとの制御方式を変更するこ
とにより、ページング中のページに対する他のプ
ロセツサからのアクセスを禁止することが可能
で、データの保全が可能となる。 次に、ミツシングページフオールト時の動作に
ついて説明する。 ページフオールト信号を要求元プロセツサが受
取つた時には、その時に実行していたタスクを中
断し、要求したアドレスを含むページを主メモリ
10にロードするために、FCP22に起動をか
ける。FCP22はこの起動を受けて、該当ペー
ジを読み出し、これが完了すると終了割込みを発
生する。この時には必要なページは主メモリ10
上にロールインされているために、前記中断され
たタスクを再開する。このタスクが中断されてい
る間、当該プロセツサは他のタスクを実行する。 次に命令キヤツシユ41とデータキヤツシユ4
2について説明する。第13図は命令キヤツシユ
41の構成例を示した図である。主メモリ10か
らコピーして来たデータがキヤツシユデータ部8
1−I上にあり、そのデータのアドレスがデイレ
クトリイ82−Iと無効化デイレクトリイ83−
Iにあり、またこれらが有効か否かを示す情報が
有効ビツトレジスタ84−Iにある。デイレクト
リイ82−Iと無効化デイレクトリイ83−Iの
内容は同じであり、性能を高めるため分けてあ
る。前者はIユニツト43がアクセスしたデータ
がキヤツシユデータ部81−Iにあるか否かのチ
エツクに使用し、後者は他のプロセツサが主メモ
リ10に書込んだデータがキヤツシユデータ部8
1−Iに取込まれている場合に、既にそのデータ
は古くなつているので無効化しなければならない
(これを無効化処理と呼ぶ)が、そのためのチエ
ツクに使用する。 次に、この命令キヤツシユ41の動作について
説明する。なお、命令キヤツシユ41はデータキ
ヤツシユ42とは異なり、ライトアクセスは処理
しない。 第14図はリードアクセスのキヤツシユミス時
のフロー、第15図は無効化処理のフローを示し
ている。 (1) リードアクセス(第14図参照) Iユニツト43から起動信号91−Iが来
たら、仮想アドレス92−Iの一部、ここで
はビツト18−27でデイレクトリイ82−
Iと有効ビツトレジスタ84−Iの内容を読
み出し、デイレクトリイ82−Iの内容と仮
想アドレス92−Iのビツト0−17をコン
パレータ160−Iで一致チエツクを行い、
またその内容をパリテイチエツカー161−
Iでチエツクする。そしてコンパレータ16
0−Iが一致を示し、パリテイエラーが発生
してなく、かつ有効ビツトレジスタ84−I
が有効であることを示しているならば、ゲー
ト169−Iを介してキヤツシユヒツト信号
170−Iが命令キヤツシユコントローラ1
62−Iに出され、命令キヤツシユコントロ
ーラ162−Iは、仮想アドレスのビツト1
8−29でアクセスされたキヤツシユデータ
部81−Iの内容を、リードデータバス94
−Iに乗せると共に、Iユニツト43に対し
て終了信号93−Iを返す。 キヤツシユミスの場合は、命令キヤツシユ
コントローラ162−Iは、起動バス占有要
求51を出す。 占有要求51が許可されたら、ゲート85
−Iを開き、起動バス55に仮想アドレス
(VA)、アクセスの種類(FUNC)、アクセス
キー(AKEY)を転送する。なお、このアク
セスキー(AKEY)には命令読み出しである
ことを付加する。 セツト信号172−Iにより、仮想アドレ
スのビツト0〜17をデイレクトリイ82−
I、無効化デイレクトリイ83−Iへ書き込
み、有効ビツトレジスタ84−Iをセツトす
る。本処理をこの時点で行う理由は後で述べ
る。 MCU12からデータバス56を介して、
リードデータ(RD)が、また応答バス57
を介して終了信号とリターンコード(アクセ
ス中に発生したエラー及びページフオールト
の情報)(RC)が送られてきたらレジスタ8
6−Iにラツチする。MCU12の説明でも
述べたように、最初に送られて来たデータ
は、Iユニツト43がアクセスしたデータで
あるので、リターンコード(RC)が次の(1)
〜(3)の状態を示している時(第14図Bに示
す条件イ成立時、)は、Iユニツト43に終
了信号93−Iとリードデータ94−Iとリ
ターンコード95−Iを返す。 (1) No Error(エラーが発生してない時) (2) Page Fault(ページフオールトが発生
した時、) (3) Soft Error(ソフトによるエラー、例え
ばプロテクシヨンエラーが発生した時) また、Hard Error(ハードが原因のエラ
ー)の場合は、再度主メモリ10をアクセス
することによつて、救える場合が多いので、
リトライを行う。この為、上記の信号を返さ
ないが、リトライ回数が規定回数を越えた場
合、すなわち、リトライオーバーの場合に
は、エラー報告を行うために、上記の信号を
返す。そして、主メモリ10から読み出して
来たリードデータをキヤツシユデータ部81
−Iに書き込む。 ,, MCU12から送られてくる残り
のリードデータをキヤツシユデータ部81−
Iに書込む。のステージで既にIユニツト
43に対しては終了信号93−Iを戻してあ
るので、この間、Iユニツト43は別な動作
が可能である。の段階ではこれに加えて、
〜のステージでエラーやページフオール
トが発生したかをチエツクし、発生してない
場合には命令キヤツシユ41の動作を止め
る。 エラーやページフオールトが発生している
場合には、のステージでセツトした有効ビ
ツトレジスタ84−Iに対し、命令キヤツシ
ユコントローラ162−Iより有効ビツトク
リア信号171−Iを出して、クリアしキヤ
ツシユデータ部81−Iの該当データを使用
出来ない様にする。また、のステージで
Hard Errorを起こし且つリトライオーバし
てない場合には(第14図Bに示す条件ア成
立)、リトライを行うためのステージに飛
ぶ。 以上がリードアクセスの処理手順であるが、先
程述べた様にキヤツシユ(命令、データキヤツシ
ユ共)では、いわゆる無効化処理が必要となる。
以下、その手順を説明する。 (2) 無効化処理(第15図参照) 起動バス55転送中の仮想アドレス
(VA)とアクセスの種類(FUNC)を毎回レ
ジスタ87に取込む。 上記仮想アドレスのビツト18−27で無
効化デイレクトリイ83−Iの内容を読出
し、無効化する必要があるか否かを無効化判
定回路165−Iでチエツクすると共に、そ
のアドレスのビツト18−27をレジスタ8
8−Iにセツトする。 そして無効化が必要な場合は、レジスタ8
8−Iのアドレスで該当の有効ビツト84−
Iをクリアする。このため無効化判定回路1
65−Iから有効ビツトクリア信号171−
Iを出す。 次に無効化が必要な場合を詳細に説明する。
まず、無効化起動バス55から取んだアクセス
の種類(FUNC)がライトアクセスを示し、そ
れが他方からのものである時行う。そして、次
に示す条件のいずれかを満した時に無効化を行
う。 (a) レジスタ87−Iのアドレスのビツト18
−27で無効化デイレクトリイ83−Iを読
出し、その内容とアドレスのビツト0−17
をコンパレータ163−Iで比較し、一致し
た時。 (b) 無効化デイレクトリイ83−Iを読出した
際に、パリテイチエツカ164−Iでパリテ
イエラーが検出された時。 (c) 無効化デイレクトリイ83−IをJOBP4
内で使用している時。(にチエツクが出来
ないため) 以上無効化処理について述べたが、次に(1)の
リードアクセスのステージでデイレクトリイ
82−I、無効化デイレクトリイ83−Iへア
ドレスを書込み、有効ビツトレジスタ84−I
をセツトしなければならない理由を明らかにす
る。 第16図はリードアクセスがキヤツシユミス
になり、主メモリ10をリードに行く場合と主
メモリ10に対して他からライトアクセスが行
われた場合のキヤツシユの無効化処理が競合し
た時に、各部分がどの様に使用されるかをタイ
ムチヤートで示している。無効化処理について
は斜線で示してあり、それぞれタイムスロツト
1と3で起動バス55、データバス56を転送
中のライトアクセスに対して、タイムスロツト
2と4で無効化デイレクトリイ83−Iのチエ
ツクを行い、タイムスロツト3と5の前半で有
効ビツトレジスタ84−Iをクリアし無効化し
ている。一方、キヤツシユミスとなつたリード
アクセスは、タイムスロツト2で起動バス55
にアドレスを転送しているので、主メモリ10
へのアクセスの順番としては、タイムスロツト
1で起動バス55を転送中のライトアクセスよ
り後で、タイムスロツト3で起動バス55を転
送中のライトアクセスより前となる。従つてキ
ヤツシユと主メモリ10のデータの一致を保つ
ためには、ライトアクセスが無効化デイレクト
リイ83−Iをチエツクするタイムスロツト2
と4の間で、キヤツシユミスを起こしたリード
アクセスのアドレスを無効化デイレクトリイ8
3−Iに書込まなければならないし、またチエ
ツクの結果、有効ビツトレジスタ84−Iを無
効化するタイムスロツト3と5の間で、有効ビ
ツトレジスタ84−Iをセツトする必要があ
る。これらの制御が必要な理由は、主メモリ1
0で複数のメモリアクセスを同時に処理してい
るからである。 なお本構成例では、アドレス情報を2ケ所、
すなわちデイレクトリイ82−Iと無効化デイ
レクトリイ83−Iに持つているため、無効化
デイレクトリイ83−Iの方しか上記の制約を
受けないが、デイレクトリイを1ケ所に持つ場
合は、当然上記の制約を受ける。 次にデータキヤツシユ42について説明す
る。第17図はデータキヤツシユ42の構成例
を示した図であり、無効化処理の回路180−
Dは命令キヤツシユ41と同じであるため省略
してある。尚第13図と第17図で、サフイツ
クスが違うだけのものは相当物である。第13
図の命令キヤツシユではサフイツクスにI、第
17図のデータキヤツシユではサフイツクスに
Dを使用している。命令キヤツシユ41との大
きな違いは、ライトアクセスをサポートしなけ
ればならない点であり、このライトアクセス時
間を短縮するために共通バス送出用バツフア8
9−Dを設け、ライト時には仮想アドレス92
−D、ライトデータ95−D、制御情報96−
Dをこのバツフア89−Dにセツトしただけ
で、終了信号93−DをEユニツト44に返
し、Eユニツト44が次の処理を出来る様に制
御している。 次に、このデータキヤツシユ42の動作につ
いて説明する。但し、リードアクセスの処理は
命令キヤツシユ41と同じであるので省略す
る。 (3) ライトアクセス(第18図参照)。 Eユニツト44から起動信号91−Dが来
たら、仮想アドレス92−D、ライトデータ
95−D、制御情報96−D(アクセスの種
類、アクセスキー等)を共通バス送出用バツ
フア89−Dにセツトし、Eユニツト44に
対して終了信号93−Dを返す。この際、デ
イレクトリイ82−Dと有効ビツトレジスタ
84−Dをチエツクしキヤツシユヒツト(信
号170−Dが出てる)ならば、キヤツシユ
データ部81の仮想アドレスのビツト18−
27で示される位置にデータを書込む。 データキヤツシユコントローラ162−D
より起動バス占有要求51、データバス占有
要求52を出す。 両方の占有要求が許可されたら、ゲート8
5−Dを開き起動バス55に仮想アドレス
(VA)、アクセスの種類(FUNC)、アクセス
キー(AKEY)を転送し、データバス56に
はライトデータを転送する。 MCU12から応答バス57を通して終了
信号とリターンコードが送られてきたらレジ
スタ86−Dにラツチする。そしてリターン
コードをチエツクし、エラーやページフオー
ルトを起こしてない時には共通バス送出用バ
ツフア89−Dからそのアクセスを取り除
き、処理を終了する。一方、第14図Bに示
したアの条件、すなわちHard Errorが発生
しかつリトライオーバしてない時には、リト
ライを行うためのステージに飛ぶ。 上記以外の場合には、共通バス送出用バツ
フア89−Dのアドレスで有効ビツトレジス
タ84−Dをクリアすると共に、Eユニツト
44に対してエラー、ページフオールトの発
生を報告する。有効ビツトレジスタ84−D
をクリアする理由は、例えばプロテクシヨン
エラーの場合は、書込んではならないキヤツ
シユデータ部81−Dのデータに対して、既
にのステージで書込みを行つているためで
ある。 尚データキヤツシユ42から主メモリ10に
ライト起動したアドレスも起動バス55からデ
ータキヤツシユのレジスタ87−D(無効化処
理の回路180−Dに含まれている)にセツト
されるが、それに対しては、自分自身が出した
ものであるからデータキヤツシユコントローラ
162−Dより無効化処理の回路180−Dに
対して信号173−Dを送り無効化を行なわな
い様に制御する。命令キヤツシユ41はライト
アクセスは行なわないので、この信号173−
Dに相当するものはない。 以上詳細に説明したように、本発明によれば、
複数のプロセツサがあり、その中の少なくとも1
つのプロセツサは仮想アドレスでアクセスするキ
ヤツシユメモリを持ち、アドレス変換装置を全プ
ロセツサで共有する構成のデータ処理装置が実現
できる。
第1図は、本発明が適用されるデータ処理装置
の全体構成を示した図、第2図は第1図の共通バ
スの構成例を示した図、第3図はアクセスごとに
共通バスのどの部分を使用するかを示した図、第
4図は共通バスの使用例を示す図、第5図は共通
バスの占有制御の様子を示した図、第6図はイン
タロツク信号が出ている時の共通バスの占有制御
の様子を示した図、第7図は占有制御回路の構成
例を示した図、第8図A〜CはMCUでの処理フ
ローの例及びMCUで複数のアクセスをオーバラ
ツプさせて処理していることを示した図、第9図
はMCUの構成例を示した図、第10図A,Bは
メモリボードの構成例及び16Byteリード時のデ
ータ返送の順番を示した図、第11図はTLBに
よるアドレス変換装置を示した図、第12図はア
ドレス変換のフローを示した図、第13図は命令
キヤツシユの構成例を示した図、第14図はキヤ
ツシユへのリードアクセス時の処理フローの説明
図、第15図はキヤツシユ無効化の処理フローの
説明図、第16図はキヤツシユ各部分の使用タイ
ミングの例を示した図、第17図はデータキヤツ
シユの構成例を示した図、第18図はライトアク
セスの処理フローの説明図である。 10……主記憶装置、12……メモリアクセス
コントローラ、20……外部記憶装置、22……
フアイルプロセツサ、30……入出力プロセツ
サ、40……ジヨブプロセツサ、41……命令キ
ヤツシユ、42……データキヤツシユ、43……
Iユニツト、44……Eユニツト、50……共通
バス、75……アドレス変換装置。
の全体構成を示した図、第2図は第1図の共通バ
スの構成例を示した図、第3図はアクセスごとに
共通バスのどの部分を使用するかを示した図、第
4図は共通バスの使用例を示す図、第5図は共通
バスの占有制御の様子を示した図、第6図はイン
タロツク信号が出ている時の共通バスの占有制御
の様子を示した図、第7図は占有制御回路の構成
例を示した図、第8図A〜CはMCUでの処理フ
ローの例及びMCUで複数のアクセスをオーバラ
ツプさせて処理していることを示した図、第9図
はMCUの構成例を示した図、第10図A,Bは
メモリボードの構成例及び16Byteリード時のデ
ータ返送の順番を示した図、第11図はTLBに
よるアドレス変換装置を示した図、第12図はア
ドレス変換のフローを示した図、第13図は命令
キヤツシユの構成例を示した図、第14図はキヤ
ツシユへのリードアクセス時の処理フローの説明
図、第15図はキヤツシユ無効化の処理フローの
説明図、第16図はキヤツシユ各部分の使用タイ
ミングの例を示した図、第17図はデータキヤツ
シユの構成例を示した図、第18図はライトアク
セスの処理フローの説明図である。 10……主記憶装置、12……メモリアクセス
コントローラ、20……外部記憶装置、22……
フアイルプロセツサ、30……入出力プロセツ
サ、40……ジヨブプロセツサ、41……命令キ
ヤツシユ、42……データキヤツシユ、43……
Iユニツト、44……Eユニツト、50……共通
バス、75……アドレス変換装置。
Claims (1)
- 【特許請求の範囲】 1 プログラムおよびデータを格納する主記憶装
置と、主記憶装置に格納されるべきプログラムお
よびデータを格納する外部記憶装置と、命令を実
行するために主記憶装置に対して仮想アドレスで
メモリアクセスを行う少なくとも1つのジヨブプ
ロセツサと、主記憶装置と外部記憶装置間でのプ
ログラムおよびデータの入出力を行うために主記
憶装置に対して仮想アドレスでメモリアクセスを
行うフアイルプロセツサと、該主記憶装置に接続
されるものであつて、各プロセツサから共通に使
用され、仮想アドレスを物理アドレスに変換する
アドレス変換装置を含むメモリアクセスコントロ
ーラを有し、該ジヨブプロセツサは、仮想アドレ
スでアクセスされるキヤツシユメモリを有し、該
キヤツシユメモリは、該フアイルプロセツサが主
記憶装置への書き込みを行う場合の仮想アドレス
を受取り、この仮想アドレスに対応するデータブ
ロツクを保持している場合、当該データブロツク
を使用できないようにする無効化処理手段を含む
データ処理装置。 2 キヤツシユメモリは、主記憶装置の一部のコ
ピーを保持するデータ部と、該データ部に格納さ
れた主記憶装置上の仮想アドレスを保持するデイ
レクトリイ部と、該仮想アドレスが有効か否かを
表示する有効表示部と、フアイルプロセツサから
送られてくる仮想アドレスをラツチするラツチレ
ジスタと、該ラツチレジスタにラツチされた仮想
アドレスと該デイレクトリイ部に保持された仮想
アドレスを比較する比較手段を有し、比較結果に
応じて該有効表示部をクリアするようにしている
特許請求の範囲第1項記載のデータ処理装置。 3 アドレス変換装置は、仮想アドレスに対応す
る物理アドレスが主記憶装置上にあるか否かを判
定し、この判定結果をアクセス要求を出したプロ
セツサに連絡する手段を有する特許請求の範囲第
1項記載のデータ処理装置。 4 ジヨブプロセツサ、フアイルプロセツサ、メ
モリアクセスコントローラは共通バスに接続され
ている特許請求の範囲第1項記載のデータ処理装
置。 5 キヤツシユメモリは、共通バスに接続され、
共通バス上の仮想アドレスを受取るようになつて
いる特許請求の範囲第4項記載のデータ処理装
置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56156193A JPS5858666A (ja) | 1981-10-02 | 1981-10-02 | デ−タ処理装置 |
US06/320,934 US4481573A (en) | 1980-11-17 | 1981-11-13 | Shared virtual address translation unit for a multiprocessor system |
EP81109719A EP0052370B1 (en) | 1980-11-17 | 1981-11-16 | A virtual storage data processing system |
DE8181109719T DE3176512D1 (en) | 1980-11-17 | 1981-11-16 | A virtual storage data processing system |
CA000390161A CA1173567A (en) | 1980-11-17 | 1981-11-16 | Shared virtual address translation unit for a multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP56156193A JPS5858666A (ja) | 1981-10-02 | 1981-10-02 | デ−タ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5858666A JPS5858666A (ja) | 1983-04-07 |
JPS6113261B2 true JPS6113261B2 (ja) | 1986-04-12 |
Family
ID=15622400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56156193A Granted JPS5858666A (ja) | 1980-11-17 | 1981-10-02 | デ−タ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5858666A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0260471B2 (ja) * | 1982-12-25 | 1990-12-17 | Maeda Metal Ind |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
JPH01280860A (ja) * | 1988-05-06 | 1989-11-13 | Hitachi Ltd | マルチポートキヤツシユメモリを有するマルチプロセツサシステム |
US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
-
1981
- 1981-10-02 JP JP56156193A patent/JPS5858666A/ja active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0260471B2 (ja) * | 1982-12-25 | 1990-12-17 | Maeda Metal Ind |
Also Published As
Publication number | Publication date |
---|---|
JPS5858666A (ja) | 1983-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4481573A (en) | Shared virtual address translation unit for a multiprocessor system | |
US6449699B2 (en) | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems | |
US6625698B2 (en) | Method and apparatus for controlling memory storage locks based on cache line ownership | |
JP3067112B2 (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
US4924466A (en) | Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system | |
EP1399823B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
US7774645B1 (en) | Techniques for mirroring data within a shared virtual memory system | |
JP4119380B2 (ja) | マルチプロセッサシステム | |
JPH0576060B2 (ja) | ||
US20040068620A1 (en) | Directory structure permitting efficient write-backs in a shared memory computer system | |
EP0480858A2 (en) | Hardware primary directory lock | |
JP2007533014A (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
JP2829115B2 (ja) | ファイル共用方法 | |
JP3814521B2 (ja) | データ処理方法および装置 | |
JPS6113261B2 (ja) | ||
JPS63253448A (ja) | マルチ計算機装置 | |
JPS6138504B2 (ja) | ||
JPH055137B2 (ja) | ||
JPH056706B2 (ja) | ||
JPS5864690A (ja) | キヤツシユメモリ制御方法 | |
JPH03230238A (ja) | キャッシュメモリ制御方式 | |
JPH0444140A (ja) | 仮想メモリ制御方法 | |
JPH0715667B2 (ja) | データ処理装置 | |
JPS63247852A (ja) | キヤツシユメモリ制御方法 | |
JPH0581120A (ja) | データ処理装置 |