JPS6138504B2 - - Google Patents

Info

Publication number
JPS6138504B2
JPS6138504B2 JP56162687A JP16268781A JPS6138504B2 JP S6138504 B2 JPS6138504 B2 JP S6138504B2 JP 56162687 A JP56162687 A JP 56162687A JP 16268781 A JP16268781 A JP 16268781A JP S6138504 B2 JPS6138504 B2 JP S6138504B2
Authority
JP
Japan
Prior art keywords
memory
data
access
address
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
Application number
JP56162687A
Other languages
Japanese (ja)
Other versions
JPS5864688A (en
Inventor
Tadaaki Bando
Yasushi Fukunaga
Yoshinari Hiraoka
Hidekazu Matsumoto
Tetsuya Kawakami
Toshuki Ide
Takeshi Kato
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 JP56162687A priority Critical patent/JPS5864688A/en
Publication of JPS5864688A publication Critical patent/JPS5864688A/en
Publication of JPS6138504B2 publication Critical patent/JPS6138504B2/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明は、複数のプロセツサによつて共通して
使用される変換装置を、主記憶装置に接続された
メモリコントローラに設けた仮想記憶装置に関
し、特に、命令を実行するために仮想アドレスで
メモリアクセスを行うジヨブプロセツサが、キヤ
ツシユメモリを有するデータ処理装置に関する。 このような、アドレス変換装置を複数のプロセ
ツサが共有するものでは、アドレス変換装置を各
プロセツサが個々に持つた場合に比較してハード
量の削減が図れ、またアドレス変換装置間の情報
のずれが生じることがないために制御が簡略化で
きる。又キヤツシユメモリは個々のプロセツサに
付加される構成となる。 しかしながら、このような構成では、キヤツシ
ユメモリとアドレス変換装置の接続が通常の場合
と逆転しているために幾つかの問題点が生じる。
その問題点のひとつとして、ページフオールトが
発生した場合のキヤツシユメモリの制御がある。 仮想メモリ方式で、ページをロールアウトをす
る場合には、アドレス変換テーブルを更新する。
この時にキヤツシユメモリにロールアウトの対象
となるページを記憶している可能性があるが、こ
のためにキヤツシユメモリをスキヤンして該当す
るブロツクの無効化を行うことは、性能面で致命
的な低下をまねくことになり、現実的でない。 そこで、参照されるデータがたとえ主記憶装置
(以下主メモリと略称する)に存在しなくても、
キヤツシユメモリに存在すれば、このデータを使
うようにする。これはキヤツシユメモリを、単に
主メモリの一部コピーではなく、補助メモリを含
めた仮想メモリ全体の一部コピーと考えればよい
わけで問題は生じない。以上のような使用法で、
リード(READ)時にキヤツシユミスが発生し、
主メモリにアクセスに行つた時にページフオール
トが発生した場合のキヤツシユメモリの制御、さ
らにライト(WRITE)時にページフオールトが
発生した場合の制御を、矛盾なく行うことが本発
明の目的である。 キヤツシユメモリには、主メモリのコピーの単
位であるブロツクが有効であるか否かを示す有効
表示部がある。キヤツシユミスで主メモリにアク
セスする場合には、まず有効表示部を「1」(セ
ツト)にしてから主メモリのアクセスを行う。こ
の理由は、他のプロセツサが同じ主メモリエリヤ
に書込んだ時に、該ブロツクを以後使用できぬ様
に有効表示部を「0」(クリア)にするためであ
る。これをアクセスが完了してから有効表示部を
「1」にすると、起動をかけた後で、他のプロセ
ツサが書込んでも、正しいデータを保持している
ように間違えてしまうことになる。 以上のような制御をしなければならないため
に、READ時にページフオールトが起つた場合に
は、該当する有効表示部をクリアして、該当ブロ
ツクが使用できないようにする必要がある。ま
た、WRITE時にも該当ブロツクがキヤツシユメ
モリ内にある場合には、ページフオールト信号を
受取つて有効表示部をクリアしなければならな
い。 本発明の特徴は、以上の制御を行うコントロー
ラをキヤツシユメモリに有する点である。 以下、本発明の一実施例を図面を参照して詳細
に説明する。 第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)で示されるページが、主メモリ1
0にあるか否かの判定を行い、ある場合には
物理アドレス(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)を共通バス受信用レジスタ1に
取込む。 ′ アドレス変換とプロテクシヨンチエツク ライトデータ(WD)をアクセスレジスタ
72にセツトすることを除いて、リード処理
ステージ(A)のと同じ動作をする。 ′ メモリライト起動 ライトデータ(WD)153を主メモリ1
0に転送することを除いて、リード処理ステ
ージ(A)のと同じである。 ′ 応答バス占有要求 アクセスの種類(FUNC)とリターンコー
ド(RC)を共通バス送出用レジスタ74へ
移す。一方、共通バス50に対しては、応答
バス占有要求53を出力する。 ′ 応答バス転送 ′の占有要求53が受付けられたら、終
了信号とリターンコード(RC)をバス15
6を介して応答バス57に転送し、アクセス
元のプロセツサに返す。 以上の様に、リードとライトの処理は各ステー
ジに分けられており、異なるアクセスの処理の異
なる番号のステージは、第8図cに示す様に並行
して処理可能である。この図では、共通バス50
から(イ)4Byteリード起動、(ロ)Byteライト起動、(ハ)
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)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にあり、メモリ
アクセス可能なことを示している。 このように、ページング中である状態を付加し
ているのは、ページングを行つているエリリアを
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)は、この様にSKEY1
16との比較によるライトプロテクトエラーのチ
エツクに使う他、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
の一部分120−2をアドレスとしてまずTLB
110をアクセスする。これにより読み出された
TLB110のエントリのVビツト111および
Cビツト112は、アドレス変換コントローラ1
25に伝えられ、そのパターンにより、その後の
処理が〜のように3つに分かれる。 これは、第12図のフローのステツプ(F0
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を介してアクセスレジスタ7
2上に作成し、その物理アドレスをメモリアド
レスバス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ビツト信号141がチエツク
される。(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に入力され、これらのビツ
トパターンにより次の様な処理を取る。 a○ Mビツト=0、Cビツト=0の時 該当ページは主メモリ10上に無く、外部メ
モリ20上にあることを示しており、このペー
ジのアクセス要求に対してはミツシングページ
フオールト信号142を出して、該当プロセツ
サにページフオールトを知らせる。(F45) b○ Mビツト=0、Cビツト=1の時 該当ビツトは現在ページング中であることを
示しているので、FCP22以外のメモリアク
セスに対してはそのメモリアクセスを禁止し、
ミツシングページフオールト信号142を出
す。(F45)FCP22からのメモリアクセス
の場合は、TLB110に登録してアクセスを
行う。(F20) c○ Mビツト=1、Cビツト=0の時 読み出されたリードデータの一部155−2
と仮想アドレスの一部120−1、及びVビツ
ト「1」がTLB110に登録され、(F20)
V、Cビツトのチエツクルーチンに戻る。 以上述べたように、アドレス変換装置75は、
各プロセツサからの仮想アドレスによるメモリア
クセスに対し、仮想アドレスから物理アドレスへ
のアドレス変換を集中して実施することが可能で
アドレス変換の制御が単純となる。 また、FCP22からのアクセスと、他のプロ
セツサからのアクセスとの制御方式を変更するこ
とにより、ページング中のページに対する他のプ
ロセツサからのアクセスを禁止することが可能で
データの保全が可能となる。 次に、ミツシングページフオールト時の動作に
ついて説明する。 ページフオールト信号を要求元プロセツサが取
つた時には、その時に実行していたタスクを中断
し、要求したアドレスを含むページを主メモリ1
0にロードするために、FCP22に起動をかけ
る。FCP22はこの起動を受けて、該当ページ
を読み出し、これが完了すると終了割込みを発生
する。この時には必要なページは主メモリ10上
にロールインされているために、前記中断された
タスクを再開する。このタスクが中断されている
間、当該プロセツサは他のタスクを実行する。 次に命令キヤツシユ41とデータキヤツシユ4
2について説明する。第13図は命令キヤツシユ
41の構成例を示した図である。主メモリ10か
らコピーして来たデータがキヤツシユデータ部8
1−I上にあり、そのデータのアドレスがデイレ
クトリイ82−Iと無効化デイレクトリイ83−
Iにあり、またこれらが有効か否かを示す情報が
有効ビツトレジスタ84−Iにある。デイレクト
リイ82−Iと無効化デイレクトリイ83−Iの
内容は同じであり、性能を高めるため分けてあ
る。前者はユニツト43がアクセスしたデータ
がキヤツシユデータ部81−Iにあるか否かのチ
エツクに使用し、後者は他のプロセツサが主メモ
リ10に書込んだデータがキヤツシユデータ部8
1−Iに取込まれている場合に、既にそのデータ
は古くなつているので無効化しなければならない
(これを無効化処理と呼ぶ)が、そのためのチエ
ツクに使用する。 次に、この命令キヤツシユ41の動作について
説明する。なお、命令キヤツシユ41はデータキ
ヤツシユ42とは異なり、ライトアクセスは処理
しない。 第14図はリードアクセスのキヤツシユミス時
のフロー、第15図は無効化処理のフローを示し
ている。 (1) リードアクセス(第14図参照) Iユニツト43から起動信号91−Iが来
たら、仮想アドレス92−Iの一部、ここで
はビツト18−27でデイレクトリイ82−
と有効ビツトレジスタ84−Iの内容を読
み出し、デイレクトリイ82−Iの内容と仮
想アドレス92−Iのビツト0−17をコン
パレータ160−Iで一致チエツクを行い、
またその内容をパリテイチエツカー161−
Iでチエツクする。そしてコンパレータ16
0−Iが一致を示し、パリテイエラーが発生
してなく、かつ有効ビツトレジスタ84−Iが
有効であることを示しているならば、ゲート
169−Iを介してキヤツシユビツト信号1
70−Iが命令キヤツシユコントローラ16
2−Iに出され、命令キヤツシユコントロー
ラ162−Iは、仮想アドレスのビツト18
−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)の
リードアクセスのステージでデイレトリイ8
2−I、無効化デイレトリイ83−Iへアドレ
スを書込み、有効ビツトレジスタ84−Iをセ
ツトしなければならない理由を明らかにする。 第16図はリードアクセスがキヤツシユミス
になり、主メモリ10をリードに行く場合と、
主メモリ10に対して他からライトアクセスが
行われた場合のキヤツシユの無効化処理が競合
した時に、各部分がどの様に使用されるかをタ
イムチヤートで示している。無効化処理につい
ては斜線で示してあり、それぞれタイムスロツ
ト1と3で起動バス55、データバス56を転
送中のライトアクセスに対して、タイムスロツ
ト2と4で無効化デイレクトリイ83−Iのチ
エツクを行い、タイムスロツト3と5の前半で
有効ビツトレジスタ84−Iをクリアし無効化
している。一方、キヤツシユミスとなつたリー
ドアクセスは、タイムスロツト2で起動バス5
5にアドレスを転送しているので、主メモリ1
0へのアクセスの順番としては、タイムスロツ
ト1で起動バス55を転送中のライトアクセス
より後で、タイムスロツト3で起動バス55を
転送中のライトアクセスより前となる。従つて
キヤツシユと主メモリ10のデータの一致を保
つためには、ライトアクセスが無効化デイレク
トリイ83−Iをチエツクするタイムスロツト
2と4の間で、キヤツシユミスを起こしたリー
ドアクセスのアドレスを無効化デイレクトリイ
83−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をこのバツフア89Dにセツトしただけで、
終了信号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のアドレスで有効ビツトレジス
タ84−Dをクリアされると共に、Eユニツ
ト44に対してエラーページフオールトの発
生を報告する。有効ビツトレジスタ84−D
をクリアする理由は、例えばプロテクシヨン
エラーの場合は、書込んではならないキヤツ
シユデータ部81−Dのデータに対して、既
にのステージで書込みを行つているためで
ある。 尚、データキヤツシユ42から主メモリ1
0にライト起動したアドレスも起動バス55
からデータキヤツシユのレジスタ87−D
(無効化処理の回路180−Dに含まれてい
る)にセツトされるが、それに対しては、自
分自身が出したものであるからデータキヤツ
シユコントローラ162−Dより無効化処理
の回路180−Dに対して信号173−Dを
送り無効化を行なわない様に制御する。命令
キヤツシユ41はライトアクセスは行なわな
いので、この信号173−Dに相当するもの
はない。 以上詳細に説明したように、本発明によれば、
アドレス変換装置を共有する仮想記憶方式のデー
タ処理装置であつてジヨブプロセツサがキヤツシ
ユメモリを有するもので、リード時にキヤツシユ
ミスが発生し、主メモリにアクセスに行つた時に
ページフオールトが発生した場合のキヤツシユメ
モリの制御、さらにライト時にページフオールト
が発生した場合の制御を矛循なく行うことができ
る。
The present invention relates to a virtual storage device in which a conversion device commonly used by a plurality of processors is provided in a memory controller connected to a main storage device. The present invention relates to a data processing apparatus in which a job processor that performs the following has a cache memory. When multiple processors share an address translation device like this, the amount of hardware can be reduced compared to when each processor has its own address translation device, and information gaps between address translation devices can be reduced. Since this does not occur, control can be simplified. Also, the cache memory is added to each processor. However, in such a configuration, several problems occur because the connection between the cache memory and the address translation device is reversed from the usual case.
One of the problems is cache memory control when a page fault occurs. When rolling out pages using the virtual memory method, the address translation table is updated.
At this time, pages to be rolled out may be stored in the cache memory, but scanning the cache memory and invalidating the relevant blocks for this purpose is fatal in terms of performance. This is not realistic as it would lead to a significant decline. Therefore, even if the referenced data does not exist in the main memory (hereinafter referred to as main memory),
If it exists in cache memory, this data will be used. This does not cause any problems because the cache memory can be thought of as a partial copy of the entire virtual memory including auxiliary memory, rather than simply a partial copy of the main memory. With the above usage,
A cache error occurred when reading (READ),
An object of the present invention is to perform cache memory control when a page fault occurs when accessing main memory, and also control when a page fault occurs when writing (WRITE), without any contradiction. . The cache memory has a validity indicator that indicates whether a block, which is a unit of copying of the main memory, is valid or not. When accessing the main memory due to a cache miss, first set the valid display section to "1" (set) and then access the main memory. The reason for this is that when another processor writes to the same main memory area, the effective display section is set to ``0'' (cleared) so that the block cannot be used thereafter. If the valid display section is set to "1" after the access is completed, even if another processor writes after activation, it will be mistaken as if the correct data is being held. Because of the control described above, if a page fault occurs during READ, it is necessary to clear the relevant valid display area to make the relevant block unusable. Furthermore, if the corresponding block is still in the cache memory at the time of WRITE, it is necessary to receive a page fault signal and clear the valid display area. A feature of the present invention is that the cache memory includes a controller that performs the above control. Hereinafter, one embodiment of the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing an example of the overall configuration of a data processing device to which the present invention is applied. In FIG. 1, a main memory 10 stores programs and data, and is connected to a common bus 50 via a memory bus 11 and a memory controller (MCU) 12. 20 is an external memory for storing programs and data to be stored in the main memory 10; an external memory bus 21; a file processor (FCP);
22 to a common bus 50. 3
0 is an input/output processor (IOP), which controls data transfer with various input/output devices (not shown). A job processor (JOBP) 40, only one of which is shown here, executes programs (instructions). The job processor 40 has an instruction cache 4
1, a data cache 42, an I unit 43 and an E unit;
1 and I unit 43 are connected by bus 45, data cache 42 and E unit 44 are connected by bus 46, and I unit 43 and E unit 44 are connected by bus 47. In this way, the file processor 22, input/output processor 30, and job processor 40 are all connected to the common bus 50, and can access the main memory 10 via the memory controller 12. The job processor 4 performs pipeline processing using an I unit 43 and an E unit 44, and has an instruction cache 41 and a data cache 44 for each unit as described above. Note that the data handled by a program (instruction) is also called an operand, and this data cache is sometimes called an operand cache. When the I unit 43 accesses the instruction word to be executed next, it is first checked to see if the instruction word exists on the instruction cache 41, and if so, the data is sent as the instruction word via the bus 45. and is sent to the I unit 43. If it does not exist, the virtual address of the command is sent to the memory controller 12 via the common bus 50. The memory controller 12 converts the virtual address into a physical address and accesses the main memory 10 via the memory bus 11. The obtained data (commands) are sent to the instruction cache 41 via the common bus 50, and further sent to the I unit 43 via the bus 45, where they are processed and simultaneously sent to the instruction cache 41. Can be stored. The I unit 43 decodes this obtained command and asks the E unit 44 "what to do."
instruct. Based on this command, the E unit 44 collects the necessary data from internal registers or the data cache 42 (if it is not on the data cache 42, from the main memory 10 in the same way as the instruction cache), performs arithmetic processing, The result is stored in an internal register or main memory 10. The latter's main memory 1
When storing the result in 0, if the data at the corresponding location has already been taken into the data cache 42, that data is also updated. Next, a configuration example of the common bus 50 will be explained.
As shown in FIG. 2, the common bus 50 includes a startup bus 55, a data bus 56, a response bus 57, and these buses 55-5, which are used to actually transfer information.
A startup bus occupancy request line 51, a data bus occupancy request line 52, and a data bus occupancy request line 52 necessary for determining which processor or memory controller uses each of
Response bus occupancy request line 53 and interlock signal line 5
4 and is used on a time-sharing basis. The contents of the information on each bus 55 to 57 are as follows. (1) Startup bus 55 (a) Address (b) Type of access (for example, whether it is a read access/write access, how many bytes to access, etc.) (c) Access key (protection performed by the MCU 12) (2) Data bus 56 (a) Write data (b) Read data (3) Response bus 57 (a) End signal (b) Return code (errors and page faults that occurred during access) information) etc. FIG. 3 shows how these buses 55-57 are used. As shown in this figure, three combinations are transferred: (i) read request from a and read response from b, (ii) read request from a and write response from d, (iii) write request from c and write response from d. are possible simultaneously in the same time slot. Next, FIG. 4 shows how the buses 55 to 57 are used. In this figure, JOBP40 is set to time slot 0.
activates the memory read on the MCU 12, and the read data for it is sent to time slots N and N+1.
It has been returned in time slot 1, and in time slot 1
The IOP 30 issues a memory write start to the MCU 12, and a response is returned at time slot N+2. In this manner, the common bus 50 performs so-called split transfer in which activation and response are separated. Further, the main memory 10 is configured to be able to process multiple memory accesses. Before performing the transfer of the buses 55 to 57 described above, it is necessary to perform occupancy control.
This is done by the processor or memory controller that wishes to perform the transfer issuing occupancy requests 51 to 53 for the bus used for the transfer one time slot before the transfer, giving priority to these requests, and allowing the transfer. I'll do it. This prioritization method is
Various methods can be considered, but the details are omitted here. However, a response-based occupation request has a higher priority level than an activation-based occupation request. This is because if a response cannot be returned due to an occupancy request due to activation, the activation processing becomes stuck on the memory controller, resulting in a deadlock state. For example, in the case of this embodiment, if there is a conflict between the data read response b shown in FIG. 3 and the occupancy request caused by data write activation c shown in FIG. 3, the former is given priority. The above occupancy control is shown in a simplified manner in FIG. In time slot 0, JOBP40 and
Each of the IOPs 30 is issuing a startup bus occupancy request 51 in an attempt to start a read. Of these,
Assuming that JOBP 40 has a higher priority level than IOP 30, JOBP 40 uses the activation bus 55 to activate the read in time slot 1, and at the same time stops the occupancy request. On the other hand, since occupancy of IOP 30 was not permitted, the startup bus occupancy request 51 continues to be issued in time slot 1. Since there is no occupancy request from JOBP 40 in slot 1, IOP 30 can start reading in time slot 2. In such a system, when each processor accesses the main memory 10 by excluding access from other processors, that is, by interlocking, the startup bus 55 is prevented from being used by other processors. This is because by occupying the startup bus 55, future startups from other processors are excluded, and in response to memory startups that are already being processed in the main memory 10, the data bus 56 and response bus 57 are This is so that it can be used to return a response. If these responses cannot be returned,
This is because the startup process becomes stuck on the memory controller 12, resulting in a deadlock state. Next, an example of a method for occupying this startup bus 55 will be explained. A processor attempting to interlock and access the memory controller 12 receives a startup bus occupancy request 51 as shown in FIG.
At the time slot for transferring information to the startup bus 55, an interlock signal 54 indicating that the startup bus 55 is occupied is issued. This signal is used to control the activation bus occupancy request 51 from other processors so that it is not accepted. This is, for example, the seventh
This is realized by the circuit shown in the figure. In this figure, the priority determination circuit 61 for each occupancy request 51 to 53 is distributed for each processor, and the interlock signal line 5
4 is an open collector signal line. First, if the interlock signal 54 is not output,
A priority determination circuit 61 checks each of the occupancy requests 51 to 53, and if the activation bus occupancy request 51 issued by itself has the highest priority, an occupancy permission signal 64 for the activation bus 55 is passed through an AND gate 62 and an OR gate 63. coming out. This processor is therefore able to transfer information to the startup bus 55 in the next time slot. At this time, if the interlock request signal 65 is output from the processor, the JK flip-flop 6 is output via the AND gate 68.
6 is set and an interlock signal 54 is output. This interlock signal 54 is output until the interlock release signal 67 is issued, and during this time the processor continues to occupy the startup bus 55. Next, if the interlock signal 54 is being output from another processor, the output of the priority determination circuit 61 is prohibited by the AND gate 62, so the activation bus occupancy permission signal 64 is not output, and the activation bus 55 is It cannot be used and therefore cannot be started from memory. Next, the MCU 12 will be explained. In addition to normal memory access processing, the MCU 12 performs address translation from virtual addresses to physical addresses and protection checks. In addition, since it is commonly used between each processor and requires high throughput, the read processing and write processing are divided into several stages ~ or ~ as shown in Figure 8A and B. As shown in FIG. 8C, multiple accesses can be processed in an overlapping manner. FIG. 9 shows an example of the configuration of the MCU 12, and each processing stage shown in FIGS. 8A and 8B performs the following operations. (A): Operation of the read processing stage Receive read activation from the common bus 50 The virtual address (VA), access type (FUN), and access key (AKEY) on the activation bus 55 are taken into the common bus reception register 71. Address Translation and Protection Check The address translation device 75 converts the page indicated by the virtual address (VA) into the main memory 1.
It is determined whether the address is 0 or not, and if so, it is converted to a physical address (PA). If it does not exist, a so-called page fault occurs. At this time, the protection check circuit 76 determines whether or not the access is permitted. The address translation device 75 and protection check circuit 76 will be described in detail later. The results of these protection checks and page fault information are set in the access register 72 along with other error information as a return code (RC), access type (FUNC), and physical address (PA). Memory read activation If no error or page fault occurs in the access in the access register 72, the memory controller 77 applies memory activation 151 to the main memory 10 using the physical address (PA) on the access register 72, and When main memory 10 receives the activation, it transfers the access type (FUNC) and return code (RC) to temporary storage register 73. In addition, if the access in the access register 72 already indicates the occurrence of an error or page fault, the memory is not activated,
The above information is transferred to temporary storage register 73. Read data reception, data, response bus occupancy request Read data 154 is received from the main memory 10 via the memory bus 11, and the access type (FUNC) and return code (RC) are transferred to the common bus sending register 74. On the other hand, a data bus occupancy request 52 and a response bus occupancy request 53 are output to the common bus 50. When the read data and response bus transfer occupancy requests 52 and 53 are accepted, the read data 154 is transferred to the data bus 56 via the bus 155, and the end signal and return code (RC) are sent as a response via the bus 156. The data is transferred to the bus 57 and returned to the accessing processor. (B): Operation of write processing stage ′ Receive write activation from common bus 50 Virtual address (VA), access type (FUNC), access key (AKEY) on activation bus 55 and write data (WD) on data bus 56 ) into common bus reception register 1. ' The operation is the same as that of the read processing stage (A) except for address conversion and setting protection check write data (WD) in the access register 72. ' Start memory write Write data (WD) 153 to main memory 1
It is the same as the read processing stage (A) except that it is transferred to 0. 'Response bus occupancy request Move the access type (FUNC) and return code (RC) to the common bus transmission register 74. On the other hand, a response bus occupancy request 53 is output to the common bus 50. 'Response bus transfer' When the occupation request 53 of ' is accepted, the end signal and return code (RC) are transferred to the bus 15.
6 to the response bus 57 and returned to the accessing processor. As described above, read and write processing is divided into stages, and stages with different numbers for different access processing can be processed in parallel as shown in FIG. 8c. In this figure, the common bus 50
From (a) 4B yte read start, (b) B yte write start, (c)
16B yte read activations are received and processed in time slots 0, 1, and 2, respectively. Looking at the case of time slot 2, (a) memory read activation, (b) address translation and protection check, and (c) read activation reception from the common bus are performed in parallel. There is. Here, (c)
The 16B yte lead is ~ compared to the 4B yte lead in (A).
This stage is repeated four times, but this
This is because memory interleaving is performed in units of 4B yte . This will be explained below. FIG. 10 is a diagram showing an example of the configuration of the main memory 10, and shows a memory board (MB) 14 (14a to
14d) is configured with a data width of 4B yte , and memory boards 14a, 14b, 14c, and 14d are configured with a data width of 4B yte.
The lower 2 bits of the address added to the unit are 00, 01,
I have data that is 10, 11. and 16B yte
Since the data of 4B yte each is on the memory boards 14a, 14b, 14c, and 14d,
In the 16B yte read, it is possible to start up the memory boards in succession and read out the read data without causing any contention on the memory board 14, as shown in FIG. 8c. Such 16B yte reads are mainly used for block transfers to send data to the cache memory in the event of a cache miss. When the I unit 43 or the E unit 44 accesses the instruction cache 41 or the data cache 42, it is done in units smaller than 16B yte (in this example, 4B yte ), so when reading this 16B yte , the I unit The 4- byte data required by the E unit 43 and the E unit 44 is controlled to be delivered earlier than the rest of the data, thereby shortening the access time. To do this, the order of the memory boards 14 to be activated from the MCU 12 may be changed according to the address as shown in FIG. 10B. Next, address translation and protection checking will be explained in detail. FIG. 11 is a block diagram showing the address translation device 75 in FIG. 9 in more detail, and the first
FIG. 2 shows the operational flow of address translation. The virtual address to physical address conversion table 130 is placed in a part of the main memory 10 because its memory capacity is large. However, accessing the main memory 10 to convert a virtual address to a physical address every time a memory access occurs would result in a large overhead, so the TLB 110, which stores recently accessed address conversion information, is It is provided in MCU12. The TLB 110 contains an address translation table 13.
0, the contents of the most recently used page are stored. The contents of each page in the TLB 110 include a valid bit (V) 111, a connect (C) bit 112, and a portion of a virtual address (VPA) 11.
3. It consists of a part of the physical address (PPA) 114, an executed execution bit (EP) 115, and a storage key (SKEY) 116. V
Bit 111 and C bit 112 indicate the current state of the corresponding page, and when V bit 111 is "0", it indicates that the contents of the corresponding page in TLB 110 are not valid data (invalid). V bit 111 and C bit 112 are both “1”
In this case, it indicates that the page in question is currently being transferred between the main memory 10 and the external memory 20, that is, paging is in progress, and the V bit 111 is "1" and the C bit 112 is "1". 0'' indicates that the corresponding page is in the main memory 10 and can be accessed. In this way, the paging state is added to Elyria that is paging.
This is to prevent access other than paging access from the FCP 22. In this system, the MCU 12 performs address translation from a virtual address to a physical address in common to each processor, so the FCP 22 performs paging. Even if it is an access, it will go through the same address translation device 75, and if another processor is allowed to access the area being paged, it will lead to data destruction or loss. Therefore, as mentioned above,
When both the V bit 111 and the C bit 112 indicate "1", the above-mentioned inconvenience is solved by permitting only paging access from the FCP 22. Next, part of the virtual address (VPA) 113 is
When performing address translation in the TLB 110, it is used to check whether the translation pair of the corresponding virtual address (VA) is registered in the TLB 110.
14 is for creating a physical address (PA) when a translation pair is received in the TLB 110. Virtual address (VA) includes segment address (SA) 121, page address (PA) 122,
It consists of an intra-page address (DISP) 123, and the above-mentioned part of the physical address (PPA) 114 is concatenated with the intra-page address (DISP) 123 to form a physical address (PA). Execution protection bit 115 (EP) is
This is to prevent erroneously reading and executing an instruction with respect to data, and if the protection check circuit 76 reads an instruction to an area where this bit is "1", an execution protection error will occur. Therefore, if the instruction cache 41 and data cache 42 are separated in the JOBP 40 as in this configuration example, all accesses to this area from the instruction cache 41 will result in an execution protection error. The storage key (SKEY) 116 is for write protection and is the access key (AKEY) transferred from the requesting processor.
At the same time, the protection check circuit 76
It is checked whether write access is allowed or prohibited; in the latter case, a write protection error occurs. AKEY is SKEY1 like this
In addition to being used to check for write protect errors by comparison with ECP 22, the data contains information on whether or not paging access is from the ECP 22 and information on whether or not it is an instruction read, and is also used for these protection checks. Next, the conversion process will be sequentially explained with reference to the flowchart of FIG. Types of memory access can be broadly divided into the following two types. That is, (1) memory access by a general processor, and (2) memory access during paging by the ECP 22. The distinction between access (1) and (2) is as follows:
It is on the access key AKEY and is transmitted to the address translation controller 125 via the signal line 140. First, address conversion for memory access and determination of access permission in the general case (1) will be explained. A virtual address output from a certain processor (JOBP 40 or IOP 30) is sent to the common bus reception register 7 in the MCU 12 via the common bus 50.
1 in the virtual address register 120. The virtual address set in this virtual address register 120 includes a segment address (SA) 121 and a page address (PA) 122.
First, write TLB using part 120-2 as address.
110. read out by this
The V bit 111 and C bit 112 of the TLB 110 entry are the address translation controller 1
25, and depending on the pattern, the subsequent processing is divided into three parts as shown in ~. This is the step (F0
5). When V bit 111=0 and C bit 112=0. This is shown as "0, 0" in FIG. 12, and as described above, the corresponding page (entry) of the TLB 110 is invalid, and the conversion table 130 on the main memory 10 is read.
(F10) The detailed operation at this time, that is, when a TLB miss occurs, will be described later. When V bit 111=1 and C bit 112=1. In Fig. 12, it is "1, 1", but at this time, part of the virtual address 120-1 and TLB
As a result of comparing the partial virtual address VPA113 of 110 with the comparator 124, it is found that they match,
If the TLB hit signal 141 is output (F205), this indicates that the corresponding page is currently being paged, so the memory access is prohibited and the address translation controller 125
A missing page fault signal 142 is output. (F45) When the TLB bit signal 141 is not output, it is a TLB miss, so the conversion table 130 on the main memory 10 is read out in the same way.
(F10) When V bit 111=1 and C bit 112=0. In FIG. 12, at the time of "1, 0", the TLB bit signal 141 is checked first,
(F30) If no output has occurred, check the protect error signal 143 from the protection check circuit 76, and if no error has occurred, check the in-page address field 123 of the virtual address register 120 and the physical address on the TLB 110. The part 114 is concatenated and the physical address is sent to the access register 7 via the selector 128.
2, sends its physical address to the memory address bus 152, and outputs a memory activation signal 151 from the memory controller 77 in order to access the main memory 10. (F40) Next, memory access during paging by the FCP 22 in (2) will be explained. The virtual address output from the FCP 22 is set in the virtual address register 120 within the MCU 12 via the common bus 50. In this case as well, first access TLB110,
Depending on the pattern of the V bit 111 and C bit 112 of the accessed entry in the TLB 110, the subsequent processing is divided into three parts as before. When the V bit 111=0 and the C bit 112=0, the conversion table 130 in the main memory 10 is read. (F10) When the V bit 111=1 and the C bit 112=1 At this time, the TLB bit signal 141 is checked. (F30) If the TLB bit is indicated, the main memory 10 is accessed using the physical address created on the access register 72. (F
40) If the TLB bit signal is not output,
The conversion table 130 in the main memory 10 is read. (F10) When the V bit = 1 and the C bit 112 = 0, the TLB bit signal 141 is checked.
(F215) When the TLB bit signal 141 is output, it means that a prohibited area is being accessed.
Notify FCP22 of the error. (F220) Next, the process of reading the conversion table 130 on the main memory 10 in the case of a TLB miss will be described. The conversion table 130 consists of a page table 132 having information necessary for address conversion and a segment table 131 holding the start address of the page table 132 in order to reduce the memory capacity required for the table. When TLB misses,
First, an adder 127 adds the contents of the register 126 (STOR) that holds the start address of the segment table and the segment address (SA) 121 of the virtual address register 120 to create a physical address. The contents are read onto the read data bus 155. This data holds the start address of the page table 132, and the adder 127 adds this value to the page address (PA) 122 of the virtual address register 120 to create an address, which is then used for conversion from the page table 132. Read out information. (F10) In addition to the M bit, this page table 132 includes information in the TLB 110 excluding the V bit 111 and a part of the virtual address 113 (VPA), and these M bits and C bits are used as the read data bus. The bit pattern is input to the address conversion controller 125 through a part 155-1 of the bit pattern 155, and the following processing is performed depending on these bit patterns. a○ When M bit = 0 and C bit = 0 This indicates that the corresponding page is not on the main memory 10 but on the external memory 20, and a missing page fault signal is issued in response to an access request for this page. 142 to notify the corresponding processor of the page fault. (F45) b○ When M bit = 0 and C bit = 1 The corresponding bit indicates that paging is currently in progress, so memory access other than FCP22 is prohibited,
A missing page fault signal 142 is issued. (F45) In the case of memory access from the FCP 22, it is registered in the TLB 110 and accessed. (F20) c○ When M bit = 1, C bit = 0 Part of read data 155-2
, part of the virtual address 120-1, and the V bit "1" are registered in the TLB 110, (F20)
Return to the V and C bit check routine. As described above, the address translation device 75
For memory accesses using virtual addresses from each processor, address translation from virtual addresses to physical addresses can be performed in a concentrated manner, simplifying the control of address translation. Furthermore, by changing the control method for access from the FCP 22 and access from other processors, it is possible to prohibit access from other processors to the page being paged, making it possible to preserve data. Next, the operation at the time of a missing page fault will be explained. When the requesting processor receives a page fault signal, it interrupts the task it was currently executing and stores the page containing the requested address in main memory 1.
0, activate FCP22. In response to this activation, the FCP 22 reads the corresponding page, and when this is completed, generates an end interrupt. At this time, since the necessary pages have been rolled into the main memory 10, the interrupted task is resumed. While this task is suspended, the processor performs other tasks. Next, the instruction cache 41 and data cache 4
2 will be explained. FIG. 13 is a diagram showing an example of the structure of the instruction cache 41. The data copied from the main memory 10 is stored in the cache data section 8.
1-I, and the address of the data is on directory 82-I and invalidation directory 83-I.
I, and information indicating whether these are valid or not is in the valid bit register 84-I. The contents of the directory 82-I and the invalidation directory 83-I are the same, and are separated to improve performance. The former is used to check whether the data accessed by the unit 43 is in the cache data section 81-I, and the latter is used to check whether the data written in the main memory 10 by another processor is in the cache data section 81-I.
1-I, the data is already old and must be invalidated (this is called invalidation processing), but this is used to check for that purpose. Next, the operation of this instruction cache 41 will be explained. Note that unlike the data cache 42, the instruction cache 41 does not process write accesses. FIG. 14 shows the flow when a read access cache miss occurs, and FIG. 15 shows the flow of invalidation processing. (1) Read access (see Figure 14) When the activation signal 91-I comes from the I unit 43, part of the virtual address 92-I, here bits 18-27, is used to access the directory 82-I.
The contents of the effective bit register 84-I are read out, and a match is checked between the contents of the directory 82-I and bits 0 to 17 of the virtual address 92-I using the comparator 160-I.
Also, the contents are parity checker 161-
Check with I. and comparator 16
If 0-I indicates a match, no parity error has occurred, and valid bit register 84-I indicates valid, the cache bit signal 1 is output through gate 169-I.
70-I is the instruction cache controller 16
2-I, and the instruction cache controller 162-I issues bit 18 of the virtual address.
-29, the contents of the cache data section 81-I are transferred to the read data bus 94-I.
At the same time, a completion signal 93-I is returned to the I unit 43. In the case of a cache miss, the instruction cache controller 162-I issues an activation bus occupancy request 51. If the occupancy request 51 is approved, the gate 85
-I and transfers the virtual address (VA), access type (FUNC), and access key (AKEY) to the startup bus 55. Note that this access key (AKEY) is appended with the fact that it is for command reading. The set signal 172-I sets bits 0 to 17 of the virtual address to the directory 82-I.
I, writes to the invalidation directory 83-I, and sets the valid bit register 84-I. The reason for performing this process at this point will be described later. From the MCU 12 via the data bus 56,
The read data (RD) is also sent to the response bus 57.
When the end signal and return code (information on errors and page faults that occurred during access) (RC) are sent through register 8.
6-Latch to I. As mentioned in the explanation of the MCU 12, the first data sent is the data accessed by the I unit 43, so the return code (RC) is the following (1).
When the state shown in ~(3) is shown (when the condition (a) shown in FIG. 14B is satisfied), the end signal 93-I, read data 94-I, and return code 95-I are returned to the I unit 43. . (1) NO Error (when no error occurs) (2) Page Fault (when a page fault occurs) (3) Soft Error (when a software error such as a protection error occurs) Also, Hard In the case of an error (an error caused by hardware), it can often be saved by accessing the main memory 10 again.
Perform a retry. Therefore, the above signal is not returned, but if the number of retries exceeds the specified number, that is, in the case of retry over, the above signal is returned in order to report an error. Then, the read data read from the main memory 10 is stored in the cache data section 81.
-Write to I. ,, The remaining read data sent from the MCU 12 is stored in the cache data section 81-.
Write to I. Since the end signal 93-I has already been returned to the I unit 43 at the stage , the I unit 43 can perform other operations during this time. In addition to this, at the stage of
It is checked whether an error or page fault has occurred in the stages of . . . , and if no error or page fault has occurred, the operation of the instruction cache 41 is stopped. If an error or page fault has occurred, the instruction cache controller 162-I outputs a valid bit clear signal 171-I to the valid bit register 84-I set at stage 162-I to clear the valid bit register 84-I and clear the valid bit register 84-I. The corresponding data in the data section 81-I is made unusable. Also, on the stage of
If a Hard Error occurs and the retry is not over (condition (a) shown in FIG. 14B is met), the process jumps to the stage for retrying. The above is the read access processing procedure,
As mentioned earlier, caches (both instruction and data caches) require so-called invalidation processing. The procedure will be explained below. (2) Invalidation processing (see Figure 15) The virtual address (VA) and access type (FUNC) being transferred to the startup bus 55 are loaded into the register 87 each time. Bits 18-27 of the above virtual address are used to register the invalidation directory. The invalidation determination circuit 165-I reads out the contents of the register 83-I and checks whether or not it is necessary to invalidate it.
8-I. And if you need to disable it, register 8
The corresponding valid bit 84- at the address of 8-I
Clear I. Therefore, invalidation determination circuit 1
Valid bit clear signal 171- from 65-I
Give I. Next, cases in which invalidation is necessary will be explained in detail. First, invalidation is performed when the type of access (FUNC) taken in from the activation bus 55 indicates a write access and it is from another source. Then, invalidation is performed when any of the following conditions is met. (a) Bit 18 of address of register 87-I
-27 reads the invalidation directory 83-I and its contents and address bits 0-17
are compared by the comparator 163-I, and when they match. (b) When the parity checker 164-I detects a parity error when reading the invalidation directory 83-I. (c) Invalidate directory 83-I to JOBP4
When used indoors. (Because it is not possible to check) I have described the invalidation process above, but next, in the read access stage (1), the day retrieval 8
2-I, writes the address to the invalidation directory 83-I and explains why the valid bit register 84-I must be set. FIG. 16 shows the case where the read access results in a cache miss and the main memory 10 is read.
The time chart shows how each part is used when cache invalidation processing conflicts with another write access to the main memory 10. Invalidation processing is indicated by diagonal lines, and for write accesses during transfer of the startup bus 55 and data bus 56 in time slots 1 and 3, respectively, the invalidation directory 83-I is checked in time slots 2 and 4. In the first half of time slots 3 and 5, the valid bit register 84-I is cleared and invalidated. On the other hand, the read access that resulted in a cache miss is accessed from startup bus 5 in time slot 2.
Since the address is transferred to main memory 1
The order of access to 0 is after the write access during transfer on the activation bus 55 in time slot 1 and before the write access during transfer on the activation bus 55 in time slot 3. Therefore, in order to maintain consistency between the data in the cache and the main memory 10, the address of the read access that caused the cache miss must be invalidated between time slots 2 and 4 when the write access checks the invalidation directory 83-I. Directory 83-I must be written to and valid bit register 84-I must be set between time slots 3 and 5 to invalidate valid bit register 84-I as a result of the check. The reason why these controls are necessary is that main memory 1
This is because multiple memory accesses are being processed simultaneously at 0. In this configuration example, address information is stored in two places,
In other words, since it is stored in the directory 82-I and the invalidation directory 83-I, only the invalidation directory 83-I is subject to the above restrictions, but if you have the directory in one place, of course the above restrictions apply. subject to restrictions. Next, the data cache 42 will be explained. FIG. 17 is a diagram showing an example of the configuration of the data cache 42, in which the invalidation processing circuit 180-
D is omitted because it is the same as the instruction cache 41. It should be noted that the items in Figures 13 and 17 whose only difference is the suffix are equivalent. 13th
The instruction cache shown in the figure uses I for the suffix, and the data cache shown in FIG. 17 uses D for the suffix. The major difference from the instruction cache 41 is that it must support write access, and in order to shorten this write access time, a common bus sending buffer 8 is used.
9-D is provided, and when writing, virtual address 92 is provided.
-D, write data 95-D, control information 96-
Just by setting D to this buffer 89D,
The end signal 93-D is returned to the E unit 44, and the E
The unit 44 controls the following processing. Next, the operation of this data cache 42 will be explained. However, since the read access process is the same as that for the instruction cache 41, a description thereof will be omitted. (3) Write access (see Figure 18) When the activation signal 91-D comes from the E unit 44, the virtual address 92-D, write data 95-D, control information 96-D (access type, access key, etc.) is set in the common bus sending buffer 89-D, and an end signal 93-D is returned to the E unit 44. At this time, the directory 82-D and valid bit register 84-D are checked, and if the cache bit is present (signal 170-D is output), bit 18-D of the virtual address of the cache data section 81 is checked.
Data is written to the position indicated by 27. Data cache controller 162-D
A startup bus occupancy request 51 and a startup bus occupancy request 52 are issued. When both occupancy requests are granted, the gate 85-D is opened and the virtual address (VA), access type (FUNC), and access key (AKEY) are transferred to the startup bus 55, and the write data is transferred to the data bus 56. Forward. When the end signal and return code are sent from the MCU 12 via the response bus 57, they are latched into the register 86-D. Then, the return code is checked, and if no error or page fault has occurred, the access is removed from the common bus sending buffer 89-D, and the process is terminated. On the other hand, if the condition (a) shown in FIG. 14B is met, that is, a hard error occurs and retry is not over, the process jumps to the stage for retrying. In cases other than the above, the effective bit register 84-D is cleared with the address of the common bus sending buffer 89-D, and the occurrence of an error page fault is reported to the E unit 44. Valid bit register 84-D
The reason for clearing is that, in the case of a protection error, for example, data in the cache data section 81-D that should not be written has already been written in the stage. In addition, from the data cache 42 to the main memory 1
The address that was written to 0 and activated is also activated on the activation bus 55.
From data cache register 87-D
(included in the invalidation process circuit 180-D), but since it was issued by the data cache controller 162-D, the invalidation process circuit 180-D A signal 173-D is sent to D to control it so that it is not invalidated. Since the instruction cache 41 does not perform write access, there is no equivalent to this signal 173-D. As explained in detail above, according to the present invention,
In a virtual memory data processing device that shares an address translation device and has a cache memory in which the job processor has a cache memory, the cache memory is It is possible to control the storage memory and also control when a page fault occurs during writing without inconsistency.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明が適用されるデータ処理装置の
全体構成を示した図、第2図は第1図の共通バス
の構成例を示した図、第3図はアクセスごとに共
通バスのどの部分を使用するかを示した図、第4
図は共通バスの使用例を示す図、第5図は共通バ
スの占有制御の様子を示した図、第6図はインタ
ロツク信号が出ている時の共通バスの占有制御の
様子を示した図、第7図は占有制御回路の構成例
を示した図、第8図A1〜CCはMCUでの処理フ
ローの例及びMCUで複数のアクセスをオーバラ
ツプさせて処理していることを示した図、第9図
はMCUの構成例を示した図、第10図A,Bは
メモリボードの構成例及び16Byteリード時のデー
タ返送の順番を示した図、第11図はTLBによ
るアドレス変換装置を示した図、第12図はアド
レス変換のフローを示した図、第13図は命令キ
ヤツシユの構成例を示した図、第14図はキヤツ
シユへのリードアクセス時の処理フローの説明
図、第15図はキヤツシユ無効化の処理フローの
説明図、第16図はキヤツシユ各部分の使用タイ
ミングの例を示した図、第17図はデータキヤツ
シユの構成例を示した図、第18図はライトアク
セスの処理フローの説明図である。 10……主記憶装置、12……メモリアクセス
コントローラ、41……命令キヤツシユ、42…
…データキヤツシユ、43……Iユニツト、44
……Eユニツト、50……共通バス、75……ア
ドレス変換装置、81……キヤツシユデータ部、
82……デイレクトリイ、162……キヤツシユ
コントローラ。
FIG. 1 is a diagram showing the overall configuration of a data processing device to which the present invention is applied, FIG. 2 is a diagram showing an example of the configuration of the common bus in FIG. 1, and FIG. Diagram showing how to use parts, 4th
The figure shows an example of how the common bus is used, Figure 5 shows how the common bus is controlled for occupancy, and Figure 6 shows how the common bus is controlled when the interlock signal is output. , FIG. 7 is a diagram showing an example of the configuration of the occupancy control circuit, and FIG. 8 A1 to CC are diagrams showing an example of the processing flow in the MCU and that the MCU processes multiple accesses in an overlapping manner. Figure 9 is a diagram showing an example of the configuration of an MCU, Figures 10A and B are diagrams showing an example of the configuration of a memory board and the order of data return when reading 16B yte , and Figure 11 is an address translation device using a TLB. 12 is a diagram showing the flow of address conversion, FIG. 13 is a diagram showing an example of the structure of an instruction cache, FIG. 14 is an explanatory diagram of the processing flow when reading access to the cache, and FIG. The figure is an explanatory diagram of the processing flow of cache invalidation, Figure 16 is a diagram showing an example of the usage timing of each part of the cache, Figure 17 is a diagram showing an example of the configuration of a data cache, and Figure 18 is a diagram showing write access. FIG. 2 is an explanatory diagram of the processing flow of FIG. 10...Main storage device, 12...Memory access controller, 41...Instruction cache, 42...
...Data cache, 43...I unit, 44
... E unit, 50 ... common bus, 75 ... address translation device, 81 ... cache data section,
82... Directory, 162... Cash controller.

Claims (1)

【特許請求の範囲】 1 複数のプロセツサによつて共通して使用され
るアドレス変換装置を、主記憶装置に接続された
メモリコントローラに設けた仮想記憶方式のデー
タ処理装置であつて、命令を実行するために仮想
アドレスでメモリアクセスを行う少なくとも1つ
のジヨブプロセツサを有し、該ジヨブプロセツサ
に仮想アドレスでアクセスされるキヤツシユメモ
リを設け、該キヤツシユメモリは、仮想アドレス
に対応するデータブロツクの有効表示部を有し、
該有効表示部の内容を考慮してリードアクセス時
には、当該キヤツシユメモリ内に該当するデータ
ブロツクがあればこれを読み出して返送しなけれ
ばアドレス変換装置に仮想アドレスを送出し、ラ
イトアクセス時には当該キヤツシユメモリに該当
するデータブロツクがあれば、ここに書込むと同
時に主記憶装置への書込みも行い、なければ主記
憶装置へのみ書込むように制御するキヤツシユメ
モリコントローラを有するものにおいて、該キヤ
ツシユメモリコントローラは、主記憶装置へのリ
ードアクセス時にページフオールトが発生した時
には、該仮想アドレスに対応するデータブロツク
の有効表示部をクリアし、ライトアクセス時にペ
ージフオールトが発生した時には、該当するデー
タブロツクが当該キヤツシユメモリ内にあれば、
当該データブロツクの有効表示部をクリヤするよ
うにしたことを特徴とするデータ処理装置。 2 キヤツシユメモリコントローラは、リードア
クセス時にキヤツシユミスが発生した場合には、
主記憶装置に対してメモリ起動信号を出力すると
共に、該当ブロツクの有効表示部をセツトし、ア
ドレス変換装置からのページフオールト信号を受
信した場合、該当の有効表示部をクリアするよう
にした特許請求の範囲第1項記載のデータ処理装
置。
[Scope of Claims] 1. A virtual memory type data processing device in which an address translation device commonly used by a plurality of processors is provided in a memory controller connected to a main storage device, which executes instructions. The job processor includes at least one job processor that performs memory access using a virtual address in order to perform a memory access, and the job processor is provided with a cache memory that is accessed using a virtual address, and the cache memory includes a valid indicator of a data block corresponding to a virtual address. has
Taking into consideration the contents of the valid display area, at the time of read access, if there is a corresponding data block in the cache memory, it will be read out and sent back, otherwise a virtual address will be sent to the address conversion device, and at the time of write access, the data block will be sent to the address translation device. If there is a corresponding data block in the cache memory, the data is written to the main memory at the same time as the data is written to the cache memory. When a page fault occurs during read access to the main memory, the storage memory controller clears the valid display area of the data block corresponding to the virtual address, and when a page fault occurs during write access, it clears the valid display area of the data block corresponding to the virtual address. If the data block is in the cache memory,
A data processing device characterized in that a valid display portion of the data block is cleared. 2. If a cache error occurs during read access, the cache memory controller will
A patent that outputs a memory activation signal to the main storage device, sets the valid display area of the corresponding block, and clears the valid display area when a page fault signal is received from the address translation device. A data processing device according to claim 1.
JP56162687A 1981-10-14 1981-10-14 Data processor Granted JPS5864688A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP56162687A JPS5864688A (en) 1981-10-14 1981-10-14 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP56162687A JPS5864688A (en) 1981-10-14 1981-10-14 Data processor

Publications (2)

Publication Number Publication Date
JPS5864688A JPS5864688A (en) 1983-04-18
JPS6138504B2 true JPS6138504B2 (en) 1986-08-29

Family

ID=15759386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP56162687A Granted JPS5864688A (en) 1981-10-14 1981-10-14 Data processor

Country Status (1)

Country Link
JP (1) JPS5864688A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6054057A (en) * 1983-09-02 1985-03-28 Hitachi Ltd Cache memory control system
JPS6079446A (en) * 1983-10-06 1985-05-07 Hitachi Ltd Processor for multiple virtual storage data
JPS62202247A (en) * 1985-11-25 1987-09-05 Nec Corp Cache memory contents coincidence processing system

Also Published As

Publication number Publication date
JPS5864688A (en) 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
JP2916420B2 (en) Checkpoint processing acceleration device and data processing method
EP0077452B1 (en) Data promotion in storage subsystems
KR100204741B1 (en) Method to increase performance in a multi-level cache system by the use of forced cache misses
JP4119380B2 (en) Multiprocessor system
JPS6367686B2 (en)
JPH11502339A (en) Computer backup system that can operate with files open
JP3590075B2 (en) Virtual storage data processing apparatus and method
JPH04237349A (en) Cache memory system and cache memory controller
JP2829115B2 (en) File sharing method
JP3814521B2 (en) Data processing method and apparatus
JPS6138504B2 (en)
JPS6113261B2 (en)
JP2813182B2 (en) Multiprocessor computer multifunction device
JPH056706B2 (en)
JPS5864690A (en) Control method for cash memory
JPH0715667B2 (en) Data processing device
JPH0444140A (en) Virtual memory control method
JPH04305746A (en) Cache memory control device
EP0128353A2 (en) Error recovery of non-store-through cache
JP3130798B2 (en) Bus transfer device
JP3517884B2 (en) Data processing device
JPS63247852A (en) Cache memory control method
JP3061818B2 (en) Access monitor device for microprocessor