JPH056706B2 - - Google Patents

Info

Publication number
JPH056706B2
JPH056706B2 JP56162691A JP16269181A JPH056706B2 JP H056706 B2 JPH056706 B2 JP H056706B2 JP 56162691 A JP56162691 A JP 56162691A JP 16269181 A JP16269181 A JP 16269181A JP H056706 B2 JPH056706 B2 JP H056706B2
Authority
JP
Japan
Prior art keywords
address
data
access
bus
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP56162691A
Other languages
English (en)
Other versions
JPS5864689A (ja
Inventor
Tadaaki Bando
Yasushi Fukunaga
Yoshinari Hiraoka
Hidekazu Matsumoto
Tetsuya Kawakami
Takeshi Kato
Toshuki Ide
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP56162691A priority Critical patent/JPS5864689A/ja
Publication of JPS5864689A publication Critical patent/JPS5864689A/ja
Publication of JPH056706B2 publication Critical patent/JPH056706B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses

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)
  • Memory System (AREA)

Description

【発明の詳細な説明】
本発明は仮想記憶方式のデータ処理装置に関
し、特に、複数のプロセツサに共通に使用される
アドレス変換装置を、主記憶装置(以下主メモリ
と略称する)に接続されたメモリコントローラに
設けたデータ処理装置に関する。 従来のこの種データ処理装置では、アドレス変
換装置が共通に使用されるために、多数のプロセ
ツサが付加された場合に、アドレス変換装置がス
ループツトのネツクになつていた。 本発明の目的は、このアドレス変換装置を含む
メモリアクセスコントローラを高速に動作させる
ことが可能なこの種データ処理装置を提供するに
ある。 本発明の特徴は、アドレス変換装置を有するメ
モリコントローラにおいて、プロセツサから送出
された仮想アドレスをラツチする第1のレジスタ
と、アドレス変換された物理アドレスを保持し、
主メモリに起動を行う際のアドレスとして使用さ
れる第2のレジスタを有し、プロセツサから送出
された仮想アドレスを第1のレジスタにセツトす
ることと、第1のレジスタの内容をアドレス変換
して第2のレジスタにセツトすることと、第2の
レジスタの内容をアドレスとして主メモリに起動
をかけることを順次、並行して行うようにしてい
ることである。 以下、本発明の一実施例を図面を参照して詳細
に説明する。 第1図は本発明が適用されるデータ処理装置の
全体構成の一例を示す図である。 第1図において、10はプログラムおよびデー
タを格納する主メモリで、メモリバス11、メモ
リコントローラ(MUC)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
〜57をそれぞれどのプロセツサあるいはメモリ
コントローラが使用するかを決めるのに必要な起
動バス占有要求線51、データバス占有要求線5
2、応答バス占有要求線53とインタロツク信号
線54を含んでおり、時分割で使用される。 各バス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フリツプフロツプ
66がセツトされ、インタロツク信号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の場合を見ると、(イ)のメモリリー
ド起動と、(ロ)のアドレス変換とプロテクシヨン
のチエツク′と、(ハ)の共通バスからのリード起
動受信を並行して行つている。ここで、(ハ)の
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、仮想アドレスの一部(VPA)113、
物理アドレスの一部(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にあり、メモリ
アクセス可能なことを示している。 このように、ページング中である状態を付加し
ているのは、ページングを行つているエリアを
FCP22からのページングアクセス以外のアク
セスができないようにするためである。 本システムでは、仮想アドレスから物理アドレ
スへのアドレス変換を、MCU12で、各プロセ
ツサに共通に行なわせているので、FCP22に
よりページングを行なつているアクセスであつて
も、同じアドレス変換装置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)は、この様にSKEY
116との比較によるライトプロテクトエラーの
チエツクに使う他、ECP22からのページング
アクセスか否かの情報や、命令読出してあるか否
かの情報を含んでおり、これらのプロテクトチエ
ツクにも使用する。 次に、変換過程を、第12図のフロチヤートを
参照して順次説明する。 メモリアクセスの種類は大きく次の2つに分け
られる。すなわち、 (1) 一般のプロセツサによるメモリアクセス (2) ECP22によるページング時のメモリアク
セス の2つである。この(1),(2)のアクセスの区別は、
アクセスキーAKEY上にあり、信号線140を
経由してアドレス変換コントローラ125に伝え
られる。 まず、一般的な(1)の場合のメモリアクセスのア
ドレス変換やアクセスの許可の判定について説明
する。 あるプロセツサ(JOBP40又はIOP30)か
ら出力された仮想アドレスは、共通バス50を経
由してMCU12内の共通バス受信用レジスタ7
1内の仮想アドレスレジスタ120にセツトされ
る。この仮想アドレスレジスタ120にセツトさ
れた仮想アドレスは、セグメントアドレス(SA)
121及びページアドレス(PA)122の一部
分122−2をアドレスとしてまずTLB110
をアクセスする。これにより読み出されたTLB
110のエントリのVビツト111およびCビツ
ト112は、アドレス変換コントローラ125に
伝えられ、そのパターンにより、その後の処理が
次の〜のように3つに分かれる。 これは、第12図のフローチヤートのステツプ
(F05)に相当している。 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とTLB110
の仮想アドレスの一部分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のページ内アドレス部12
3とTLB110上の物理アドレスの一部114
を連結して物理アドレスをセレクタ128を介し
アクセスレジスタ72上に作成し、その物理アド
レスをメモリアドレスバス152に送り、主メモ
リ10をアクセスするためメモリコントローラ7
7よりメモリ起動信号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ヒツト信号141がチエツクさ
れる(F30)。TLBヒツトを示していれば、アク
セスレジスタ72上で作成された物理アドレスで
主メモリ10をアクセスする(F40)。 TLBヒツト信号が出ていない場合は、メモリ
10の変換テーブル130を読み出す(F10)。 Vビツト=1,Cビツト112=0の時 TLBヒツト信号141がチエツクされる
(F215)。 TLBヒツト信号141が出ている時は、禁止
区域をアクセスしていることになるので、FCP
22にエラーを知らせる(F220)。 次に、TLBミスの場合の、主メモリ10上の
変換テーブル130を読み出す時の処理を説明す
る。 変換テーブル130は、テーブルに必要なメモ
リ容量を減らすため、アドレス変換に必要な情報
を有するページテーブル132と、そのページテ
ーブル132の先頭アドレスを保持するセグメン
トテーブル131から成る。TLBミス時には、
まずセグメントテーブルの先頭アドレスを保持す
るレジスタ126(STOR)の内容と、仮想アド
レスレジスタ120のセグメントアドレス(SA)
121をアダー127が加算して物理アドレスを
作り、それでセグメントテーブル131の該当す
る位置の内容をリードデータバス155上に読み
出して来る。このデータには、ページテーブル1
32の先頭アドレスが保持されており、この値
と、仮想アドレスレジスタ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からのメモリアクセスの場合は、TLB
110に登録してアクセスを行う(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)をコンパレータ1
60−Iで一致チエツクを行い、またその内容
をパリテイチエツカー161−Iでチエツクす
る。そしてコンパレータ160−Iが一致を示
し、パリテイエラーが発生してなく、かつ有効
ビツトレジスタ84−Iが有効であることを示
しているならば、ゲート169−Iを介してキ
ヤツシユヒツト信号170−Iが命令キヤツシ
ユコントローラ162−Iに出され、命令キヤ
ツシユコントローラ162−Iは、仮想アドレ
スのビツト(18−29)でアクセスされたキヤツ
シユデータ部81−Iの内容を、リードデータ
バス94−Iに乗せると共に、Iユニツト43
に対して終了信号93−Iを返す。 キヤツシユミスの場合は、命令キヤツシユコ
ントローラ162−Iは、起動バス占有要求5
1を出す。 占有要求51が許可されたら、ゲート85−
Iを開き、起動バス55に仮想アドレス
(VA)、アクセスの種類(FUNC)、アクセス
キー(AKEY)を転送する。なお、このアク
セスキー(AKEY)には命令読み出しである
ことを付加する。 セツト信号172−Iにより、仮アドレスの
ビツト(0〜17)をデイレクトリイ82−I、
無効化デイレクトリイ83−Iへ書き込み、有
効ビツトレジスタ84−Iをセツトする。本処
理をこの時点で行う理由は後で述べる。 MCU12からデータバス56を介して、リ
ードデータ(RD)が、また応答バス57を介
して終了信号とリターンコード(アクセス中に
発生したエラー及びページフオールトの情報)
(RC)が送られてきたらレジスタ86−2にラ
ツチする。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)をレジスタ88−Iにセ
ツトする。 そして無効化が必要な場合は、レジスタ88
−Iのアドレスで該当の有効ビツト84−Iを
クリアする。このため無効化判定回路165−
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の前半で有効ビツトレジスタ8
4−Iをクリアし無効化している。一方、キヤツ
シユミスとなつたリードアクセスは、タイムスロ
ツト2で起動バス55にアドレスを転送している
ので、主メモリ10へのアクセスの順番として
は、タイムスロツト1で起動バス55を転送中の
ライトアクセスより後で、タイムスロツト3で起
動バス55を転送中のライトアクセスより前とな
る。従つて、キヤツシユと主メモリ10のデータ
の一致を保つためには、ライトアクセスが無効化
デイレクトリイ83−Iをチエツクするタイムス
ロツト2と4の間で、キヤツシユミスを起こした
リードアクセスのアドレスを無効化デイレクトリ
イ83−Iに書込まなければならないし、またチ
エツクの結果、有効ビツトレジスタ84−Iを無
効化するタイムスロツト3と5の間で、有効ビツ
トレジスタ84−Iをセツトする必要がある。こ
れらの制御が必要な理由は、主メモリ10の複数
のメモリアクセスを同時に処理しているからであ
る。 なお本構成例では、アドレス情報を2ケ所、す
なわちデイレクトリイ82−Iと無効化デイレク
トリイ83−Iに持つているため、無効化デイレ
クトリイ83−Iの方しか上記の制約を受けない
が、デイレクトリイを1ケ所に持つ場合は、当然
上記の制約を受ける。 次にデータキヤツシユ42について説明する。
第17図はデータキヤツシユ42の構成例を示し
た図であり、無効化処理の回路180−Dは命令
キヤツシユ41と同じであるため省略してある。
尚第13図と第17図で、サフイツクスが違うだ
けのものは相当物である。第13図の命令キヤツ
シユではサフイツクスにI、第17図のデータキ
ヤツシユではサフイツクスにDを使用している。
命令キヤツシユ41との大きな違いは、ライトア
クセスをサポートしなければならない点であり、
このライトアクセス時間を短縮するために共通バ
ス送出用のバツフア89−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を出す。 両方の占有要求が許可されたら、ゲート85
−Dを開き起動バス55に仮想アドレス
(VA)、アクセスの種類(FUNC)、アクセク
キー(AKEY)を転送し、データバス56に
はライトデータを転送する。 MCU12から応答バス57を通して終了信
号とリターンコードが送られてきたらレジスタ
86−Dにラツチする。そしてリターンコード
をチエツクし、エラーやページフオールトを起
こしてない時には共通バス送出用バツフア89
−Dからそのアクセスを取り除き、処理を終了
する。一方、第14図Bに示した(ア)の条
件、すなわちHard Errorが発生しかつリトラ
イオーバしてない時には、リトライを行うため
のステージに飛ぶ。 上記以外の場合には、共通バス送出用バツフ
ア89−Dのアドレスで有効ビツトレジスタ2
4−Dをクリアすると共に、Eユニツト44に
対してエラー、ページフオールトの発生を報告
する。有効ビツトレジスタ84−Dをクリアす
る理由は、例えばプロテクシヨンエラーの場合
は、書込んではならないキヤツシユデータ部8
1−Dのデータに対して、既にのステージで
書込みを行つているためである。 尚データキヤツシユ42から主メモリ10にラ
イト起動したアドレスも起動バス55からデータ
キヤツシユのレジスタ87−D(無効化処理の回
路180−Dに含まれている)にセツトされる
が、それに対しては、自分自身が出したものであ
るからデータキヤツシユコントローラ162−D
より無効化処理の回路180−Dに対して信号1
73−Dを送り無効化を行なわない様に制御す
る。命令キヤツシユ41はライトアクセスは行な
わないので、この信号173−Dに相当するもの
はない。 以上詳細に説明したように、本発明によれば、
高スループツトのアドレス変換装置を有するメモ
リコントローラを提供でき、これによりアドレス
変換装置を共有するマルチプロセツサ構成のボト
ルネツクを解消したデータ処理装置が提供でき
る。
【図面の簡単な説明】
第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……メモリアクセス
コントローラ、50……共通バス、75……アド
レス変換装置。

Claims (1)

  1. 【特許請求の範囲】 1 複数のプロセツサに共通に使用されるアドレ
    ス変換装置を主記憶装置に接続されたメモリコン
    トローラに設けた仮想記憶方式のデータ処理装置
    において、上記メモリコントローラは、各プロセ
    ツサから転送された仮想アドレスをラツチする第
    1のレジスタと、アドレス変換された物理アドレ
    スをセツトする第2のレジスタを有し、上記第1
    のレジスタに仮想アドレスをラツチするステージ
    と、第1のレジスタの内容をアドレス変換して第
    2のレジスタにセツトするステージと、第2のレ
    ジスタの内容をアドレスとして主記憶装置に起動
    をかけるステージに分割し、上記3つのステージ
    を並列にパイプライン処理によつて処理すること
    を特徴とするデータ処理装置。 2 複数のプロセツサとメモリコントローラは共
    通バスで接続され、上記各プロセツサは上記主記
    憶装置に対してメモリアクセスを行う場合、上記
    仮想アドレスを転送するサイクルと、読み出した
    データを受け取るサイクルのみ上記共通バスを使
    用するようにした特許請求の範囲第1項記載のデ
    ータ処理装置。
JP56162691A 1981-10-14 1981-10-14 デ−タ処理装置 Granted JPS5864689A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56162691A JPS5864689A (ja) 1981-10-14 1981-10-14 デ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56162691A JPS5864689A (ja) 1981-10-14 1981-10-14 デ−タ処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP4027794A Division JPH0715667B2 (ja) 1992-02-14 1992-02-14 データ処理装置

Publications (2)

Publication Number Publication Date
JPS5864689A JPS5864689A (ja) 1983-04-18
JPH056706B2 true JPH056706B2 (ja) 1993-01-27

Family

ID=15759463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56162691A Granted JPS5864689A (ja) 1981-10-14 1981-10-14 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPS5864689A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59178700A (ja) * 1983-03-29 1984-10-09 Shimadzu Corp デ−タ処理装置
JPH0793220A (ja) * 1993-09-20 1995-04-07 Agency Of Ind Science & Technol 仮想記憶管理方式

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5644178A (en) * 1979-09-17 1981-04-23 Hitachi Ltd Buffer memory control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5644178A (en) * 1979-09-17 1981-04-23 Hitachi Ltd Buffer memory control system

Also Published As

Publication number Publication date
JPS5864689A (ja) 1983-04-18

Similar Documents

Publication Publication Date Title
US4481573A (en) Shared virtual address translation unit for a multiprocessor system
US4924466A (en) Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
JP4119380B2 (ja) マルチプロセッサシステム
JPH0345407B2 (ja)
JPH041374B2 (ja)
EP0474450A2 (en) Processor system with improved memory transfer means
JP3590075B2 (ja) 仮想記憶方式のデータ処理装置及び方法
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US5161219A (en) Computer system with input/output cache
US20030014697A1 (en) System and method for dynamically moving checksums to different memory locations
JPH0567976B2 (ja)
JPH04237349A (ja) キャッシュメモリシステムおよびキャッシュメモリコントローラ
JP2829115B2 (ja) ファイル共用方法
JP3814521B2 (ja) データ処理方法および装置
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
JPS6113261B2 (ja)
JPH056706B2 (ja)
JP2813182B2 (ja) マルチプロセッサコンピュータ複合装置
JPS63253448A (ja) マルチ計算機装置
JPS6138504B2 (ja)
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
JPH0715667B2 (ja) データ処理装置
JPS5864690A (ja) キヤツシユメモリ制御方法
US6928524B2 (en) Data processing system with naked cache line write operations