JPS5864689A - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPS5864689A
JPS5864689A JP56162691A JP16269181A JPS5864689A JP S5864689 A JPS5864689 A JP S5864689A JP 56162691 A JP56162691 A JP 56162691A JP 16269181 A JP16269181 A JP 16269181A JP S5864689 A JPS5864689 A JP S5864689A
Authority
JP
Japan
Prior art keywords
address
register
data
memory
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP56162691A
Other languages
English (en)
Other versions
JPH056706B2 (ja
Inventor
Tadaaki Bando
忠秋 坂東
Yasushi Fukunaga
泰 福永
Yoshinari Hiraoka
平岡 良成
Hidekazu Matsumoto
松本 秀和
Tetsuya Kawakami
河上 哲也
Takeshi Kato
猛 加藤
Toshiyuki 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)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は仮想記憶方式のデータ処理装置に関し、特に、
複数のプロセッサに共通に使用されるアドレス変換装置
を、主記憶装置(以下主メモリと略称する)に接続され
たメモリコントローラに設けたデータ処理装置に関する
従来のこの種データ処理装置では、アドレス変換装置が
共通に使用されるために、多数のプロセッサが付加され
た場合に、アドレス変換装置がスループットのネックに
なっていた。
本発明の目的は、このアドレス変換装置を含むメモリア
クセスコントローラを高速に動作させることが可能なこ
の種データ処理装置を提供するにある。
本発明の特徴は、アドレス変換装置を有するメモリコン
トローラにおいて、プロセッサから送出された仮想アド
レスをラッチする第1のレジスタと、アドレス変換され
た物理アドレスを保持し、主メモリに起動を行う際のア
ドレスとして使用される第2のレジスタを有し、プロセ
ッサから送出された仮想アドレス金策1のレジスタにセ
ットすることと、第1のレジスタの内容をアドレス変換
して第2のレジスタにセットすることと、第2のレジス
タの内容をアドレスとして主メモリに起動をかけること
とを順次、並行して行うようにしていることである。
以下、本発明の一実施例を図面を参照して詳細に説明す
る。
第1図は本発明が適用されるデータ処理装置の全体構成
の一例を示す図である。
第1図において、10はプログラムおよびデータを格納
する主メモリで、メモリバス11.メモリコントローラ
(MCU)12を介して共通バス50に接続されている
20は、主メモリ10に格納されるべきプログラムおよ
びデータを格納する外部メモリで、外部メモリバス21
.ファイルプロセッサ(F CI) )22を介して共
通バス50に接続されている。
30は入出カプロセッサ(IOP)であり、図示しない
各種入出力装置とのデータ転送の制御を行う。
40はジョブプロセッサ(JOBP )であり、ここで
は1つだけを示しているが、プログラム(命令)の実行
を行う。
ジョブプロセッサ40は、命令キャッシュ41゜データ
キャッシュ42.Iユニット43およヒEユニットによ
り構成され、命令キャッシュ41と1ユニツト43はバ
ス45で接続され、データキャッシュ42とEユニット
44はバス46で接続され、■ユニット43とEユニッ
ト44はバス47で接続されている。
このように、ファイルプロセッサ22.入出カプロセッ
サ30およびジョブプロセッサ40は、いずれも共通バ
ス50に接続され、メモリコントローラ12を介して主
メモリ10をアクセス可能になっている。
ジョブプロセッサ4fd、Iユニッ)43.!:Eユニ
ット44でパイプライン処理をするもので、前述の如く
それぞれのユニットに対して命令キャソ/ユ41とデー
タキャッシュ44を有する。
尚プログラム(命令)が扱うデータはオペランドとも呼
ばれ、このデータキャッシュのことをオペランドキャッ
シュと呼ぶ場合がある。
次に実行すべき命令語をIユニット43がアクセスする
場合、まず、命令キャッシュ41上にその命令語が存在
するが否がチェックされ、存在する場合には、そのデー
タが命令語としてバス45を介して■ユニット43へ送
られる。存在しない場合は、命令語の仮想アドレスを共
通バス5oを介してメモリコントローラ12へ送出する
メモリコントローラ12では、仮想アドレスを物理アド
レスに変換してメモリバスll’に介して主メモリ10
をアクセスする。得られたデータ(命令)は、共通バス
50を介して、命令キャッシュ41へ送られ、さらにバ
ス45を介して■ユニット43へ送られ、■ユニット4
3で処理されると同時に、命令キャッシュ41へ貯わえ
られる。
■ユニット43では、この得られた命令を解読し、Eユ
ニット44に対して「何を為すべきが」を指示する。E
ユニット44は、この指令に基づき、必要なデータを内
部のレジスタやデータキャッシュ42から(データキャ
ッシュ42上にない場合は、命令キャッシュと同様に主
メモリ10から)集め、・演算処理し、その結果を内部
のレジスタか主メモリ10に格納する。後者の主メモリ
10に結果を格納する際には、該当する位置のデータが
既にデータキャッシュ42内に取込まれているならば、
そのデータも更新する。
次に共通バス50の構成例について説明する。
共通バス50は第2図に示す様に、実際に情報を転送す
るのに使用される起動バス55.データバス56.応答
バス57と、これらのバス55〜57をそれぞれどのプ
ロセッサあるいはメモリコントローラが使用するかを決
めるのに必要な起動バス占有要求線51.データバス占
有要求線52゜応答バス占有要求線53とインタロック
信号線54を含んでおり、時分割で使用される。
各バス55〜57の情報の中味は次の通りである。
(1)  起動バス55 (a)  アドレス (1))アクセスの種類(例えばリードアクセスである
か/ライトアクセスであるか、またf=1バイトアクセ
スするか等) (C)  アクセスキー(MCU12で行うプロテクシ
ョンチェックに使用する。) (2)データバス56 (a)  ライトデータ (b)  リードデータ (3)応答バス57 (a)  終了信号 Φ) リターンコート責アクセス中に、発生したエラー
及びページフォールトの情報) などである。
これらのバス55〜57が、どの様に使用されるかを第
3図で示す。
この図で示される様に、 (1)aのリード要求とbのリード応答(ii)  a
のリード要求とdのライト応答GiD  cのライト要
求とdのライト応答の3つの組み合せの転送が、同一の
タイムスロットで同時に可能と力る。
次にバス55〜57の使用の様子を第4図で示す。この
図では、タイムスロット0でJOBP40がMCU12
にメモリリード起動をかけ、それに対するリードデータ
がタイムスロットNとN+1で返されて来ており、また
タイムスロット1でl0P30がMCU12にメモリラ
イト起動をかけ、それに対する応答がタイムスロッ)N
+2で返されている。この様に共通バス50では、起動
と応答を分離した。いわゆるスプリット転送を行う。ま
た、主メモリ10は複数のメモリアクセスを処理出来る
構成と々っている。
以上、述べてきたバス55〜57の転送を行うに当って
、その前に占有制御を行う必要がある。
これは転送を希望するプロセッサやメモリコントローラ
が、転送の1タイムスロツト前に、転送に使用するバス
に対する占有要求51〜53を出し、これに対して優先
順位を付けて転送を許可することによって行う。この優
先順位の付は方は、色々な方法が考えられるが、ここで
はその詳細については省略する。ただし、応答による占
有要求は、起動による占有要求より優先レベルを上げる
。というのは、起動による占有要求によって応答が返せ
ない事態になると、メモリコントローラ上で起動の処理
が詰まってしまい、デッドロック状態となるからである
。例えば、本実施例の場合、第3図に示すbのデータリ
ード応答と、Cのデータライト起動による占有要求が競
合した場合には前者が優先される。
以上の占有制御の様子を簡略化して第5図に示している
。タイムスロットOではJOBP40とl0P30がリ
ード起動をしようとして、各々が起動バス占有要求51
を出している。この内。
JOBP40の方がl0P30よシ、優先レベノし・が
高いものとすると、タイムスロット1でJOBI)40
は起動バス55を使用してリードの起動を行い、同時に
占有要求を止める。一方、l0P30は占有が許可され
なかったので、タイムスロット】でも起動バス占有要求
51を出したままとする。
このスロット1では%JOBP40からの占有要求がな
くなるので、タイムスロット2でl0P30はリード起
動が可能となる。
この様なシステムにおいて各プロセッサが、他のプロセ
ッサからのアクセスを排除して、すなわちインタロック
して主メモリ10をアクセスする場合には、起動バス5
5を他のプロセッサに使用させない様にする。というの
は、起動バス55を占有することで、他のプロセッサか
ら今後発生する起動を排除し、また既に主メモリ10内
で処理中のメモリ起動に対しては、データバス56.応
答バス57を使用して応答を返すことを可能にするため
である。もし、これらの応答が返せないと、メモリコン
トローラ12上で起動の処理が詰まってしまい、デッド
ロック状態になってしまうからである。
次に、この起動バス55の占有方法の一例を説明する。
メモリコントローラ12をインタロツクしてアクセスし
ようとするプロセッサは、第6図に示す様に起動バス占
有要求51が受付けられ、起動バス55に情報を転送す
るタイムスロットで、起動バス55を占有していること
を示すインタロック信号54を出す。そして、この信号
により他のプロセッサからの起動バス占有要求51が受
付けられない様に制御する。これは例えば第7図の回路
によって実現される。この図では、各占有要求51〜5
3の優先判定回路61は各プロセッサごとに分散して持
ち、インタロック信号線54はオープン・コレクタの信
号線としている。まず、インタロックの信号54が出て
ない場合は、各占有要求51〜53を優先判定回路61
でチェックし、自分の出した起動バス占有要求51の優
先度が一番高い場合には、アンドゲート621オアゲ−
)63ffi通して起動バス55の占有許可信号64が
出る。従って、このプロセッサは次のタイムスロットで
、起動バス55に対して情報の転送が可能である。また
、この際プロセッサからインタロック要求信号65が出
されていると、アンドゲート68を介してJ−にフリッ
プフロップ66がセットされ、インタロック信号54が
出力される。このインタロック信号54は、インタロッ
ク解除信号67が出されるまで、出方されておシ、この
間このプロセッサは起動バス55を占有し次ままとなる
。次に、他のプロセッサからインタロック信号54が出
されている場合には、アンドゲート62で優先判定回路
61の出力が禁止されるので、起動バス占有許可信号6
4が出ないため、起動バス55が使用できず、従ってメ
モリ起動も出来ない。
次にMCU12について説明する。
MCU12は5通常のメモリアクセスの処理の他、仮想
アドレスから物理アドレスへのアドレス変換や、グロテ
クションのチェックヲ行う。
また、各プロセッサ間で共通に使用され、高いスループ
ットが要求されるため、リード処理とライト処理は、第
8図囚、[F])に示すように、いくつかのステージ■
〜■又は■′〜■′に分がれており、複数個のアクセス
を第8図(0に示すようにオーバラップさせて処理出来
るようになっている。
第9図は、MCU12の構成の一例を示したものである
が、第8図■′、■に示した各処理ステージでは次のよ
うな動作を行う。
■:リード処理ステージの動作 ■ 共通バス50からリード起動受信 起動バス55上の仮想アドレス(VA)。
アクセスの種類(FUN)、アクセスキー(AKEY)
k共通バス受信用レジスタ71に取込む。
■ アドレス変換とグロテクションチェックアドレス変
換装置75によシ、仮想アドレス(VA)で示されるペ
ージが、主メモリ10にあるか否かの判定を行い、ある
場合には物理アドレス(PA)に変換する。ない場合は
、いわゆるページフォールトとなる。
また、この時プロテクションチェック回路76で、゛そ
のアクセスが許可されているものか否かの判定を行う。
このアドレス変換装置75とプロテクンヨンチェック回
路76については、後で詳細に述べる。
これらのプロテクションチェックの結果と、ページフォ
ールト情報は、他のエラー情報と共にリターンコード(
R,C)として、アクセスの種類(FUNC)や物理ア
ドレス(PA)と共にアクセスレジスタ72にセットさ
れる。
■ メモリリード起動 アクセスレジスタ72にあるアクセスにエラーやページ
フォールドが発生していない場合には、メモリコントロ
ーラ77が、アクセスレジスタ72上の物理アドレス(
PA)で、主メモリ10にメモリ起動151をかけ、主
メモリ10がその起動を受取ったら、アクセスの種類(
FUNC)とリターンコード(RC)を一時記憶レジス
タフ3へ移す。
また、アクセスレジスタ72にあるアクセスが、既にエ
ラーやページフォールトの発生を示している場合には、
メモリ起動をせず、前記の情報を一時記憶レジスタフ3
へ移す。
■ リードデータ受信とデータ、応答バス占有要求 主メモリ10からメモリバス11を介してリードデータ
154を受取ると共に、アクセスの種類(FUNC)と
リターンコート責R,C)を共通バス送出用レジスタ7
4へ移す。
一方、共通バス50に対してはデータバス占有要求52
と応答バス占有要求53を出力する。
■ リードデータ、応答バス転送 ■の占有要求52.53が受付けられたら。
リードデータ(154)全バス155を介してデータバ
ス56に転送し、また、終了信号とリターンコード(R
C)t−バス156を介して応答バス57に転送し、そ
れぞれアクセス元のプロセッサに返す。
■ニライト処理ステージの動作 ■′共通バス50からライト起動受信 起動バス55上の仮想アドレス(VA)。
アクセスの種類(FUNC)、アクセスキー<AKEY
)及びチークバス56上のライトデータ(WD)e共通
バス受信用レジスタ71に取込む。
■′ アドレス変換とプロテクションチェックライトデ
ータ(WD)’にアクセスレジスタ72にモットするこ
とを除いて、リード処理ステージ囚の■と同じ御作をす
る。
■′ メモリライト起動 ライトデータ(WD)153を主メモリ10に転送する
ことを除いて、リード処理ステージ■の■と同じである
■′応答パス占有要求 アクセスの種類(FUNC)とリターンコード(RC)
t−共通バス送出用レジスタ74へ移す。一方、共通バ
ス50に対しては、応答バス占有要求53を出力する。
■′応答バス転送 ■′の占有要求53が受付けられたら、終了信号とリタ
ーンコード(RC)t−バス156を介して応答バス5
7に転送し、アクセス元のプロセッサに返す。
以上の様に、リードとライトの処理は各ステージに分け
られており、異なるアクセスの処理の異なる番号のステ
ージは、第8図(Oに示す様に並行して処理可能である
。この図では、共通)くス50から(イ)4Bleリー
ド起動、←)4BYte ライト起動、(ハ)16 B
yte +)−ド起動を、それぞれタイムスロツ)0,
1.2で受取って処理している。そしてタイムスロット
2の場合を見ると、(イ)のメモリボ−ド起動■と、(
ロ)のアドレス変換とプロテクションのチェック■′と
、(ハ)の共通バスからのリード起動受信■を並行して
行っている。ここで、(うの16 B’/leリードは
(イ)の4BYte、リードに比ヘテ、■〜■のステー
ジを4回繰り返シテイルカ、これは4Bytet単位と
したメモリインタリーブを行っているためである。以下
、これについて説明する。
第10図は主メモリ10の構成の一例を示した図テアリ
、)モ+)ボー)”<MB)14 (148〜14d)
は4BYteのデータ幅で構成され、各メモリボード1
4a、14b、14C,14dは4Byte単位に付加
されたアドレスの下位2bitが00.01,10.1
1であるデータを持っている。そして16Byteのデ
ータは54Byteずつのデータがメモリボード14a
、14b、14C。
14d上にあるためs  1613y te リードで
はメモリボード14で競合をおこすこと無く、第8図(
0の様に連続してメモリボードを起動し、リードデータ
を読み出して来ることが可能となる。この様な16 B
yte リードは、主にキャッシュミス時にキャッシュ
メモリへデータを送るブロック転送に使用される。
■ユニット43やEユニット44が命令キャッシュ41
やデータキャッシュ42をアクセスする場合は% 16
 BYteよりもつと小さな単位(この例では4 BY
teとする。)で行うので、この16Byte リード
時には■ユニット43やEユニット44が必要とした4
 BYteのデータが残シのデータよシ早く渡される様
に制御し、アクセス時間を短縮する。そしてこのために
は、第1θ図■の巻ごとくアドレスに応じて、MCUI
2から起動をかけるメモリボード14の順番を変更すれ
ば良い。
次に、アドレス変換とプロテクションチェックについて
詳細に説明する。
第11図は、第9図のアドレス変換装置75を中心とし
て更に詳細に示した構成図であり、第12図は、アドレ
ス変換の動作フローを示したものである。
仮想アドレスから物理アドレスへの変換テーブル130
は、そのメモリ容量が大きいので、主メモリ10の一部
に置かれている。しかし、メモリアクセスが発生するた
びに、仮想アドレスを物理アドレスに変換するために、
主メモリ10をアクセスしていてはオーバーヘッドが大
きくなるため、最近アクセスしたアドレス変換情報を格
納しておくTLBIIOがMCUI2に設けられている
TLB1’IOには、アドレス変換テーブル130の内
、最近使用されたページの内容が格納されており、高速
にアドレス変換が行なえるようになっている。TLBI
 10における各ページの内容は、有効ビット(V)1
11.コネクト(C)ビット112、仮想アドレスの一
部(VPA)113゜物理−アドレスの一部(PPA)
114.実行プロテクションビット(BP)115およ
びストレージキー(5KEY)116からなっている。
Vビット111とCビット112は、該当ページの現在
の状態を示し、Vビット111が「0」の場合は、TL
BIIOの該轟ページの内容が有効なデータでない(無
効)ことを示す。
■ビット111とCビット112が共に「1」の場合は
、該当ページが、現在主メモリ10と外部メモリ20と
の間で転送されていること、すなワチ、ページング中で
あることを示し、Vビット111が「1」で、Cビット
112が「0」の場合は、該当ページが主メモリ10に
あり、メモリアクセス可能なことを示している。
このように、ページング中である状態を付加しているの
は、ページングを行っているエリアをFCP22からの
ページングアクセス以外のアクセスができないようにす
るためである。
本システムでは、仮想アドレスから物理アドレスへのア
ドレス変換’に、MCUI 2で、各プロセッサに共通
に行なわせているので、FCP22によりページングを
行なっているアクセスであっても、同じアドレス変換装
置75を経由することになり、そのページング中のエリ
アを他のプロセッサがアクセスすることを許可すると、
データの破壊や喪失につながる。従って、上記した如く
、Vビット111とCビット112が共にriJi示し
ている場合には、FCP22からのページングアクセス
のみ許可することにより、上記の不都合を解決している
のである。
次に仮想アドレスの一部(VPA)113は。
TLBI 10でアドレス変換を行う際に、該当する仮
想アドレス(VA)の変換対がTLBIIOに登録され
ているか否かをチェックするだめのものであり、また、
物理アドレスの一部(PPA)114はTLBI 10
に変換対があった時に、物理アドレス(PA)’を作成
するためのものである。
仮想アドレス(VA)は、セグメントアドレス(8A)
121.ページアドレス(PA)122゜ページ内アド
レス<DISp)12aからなり、上記の物理アドレス
の一部(PPA)114は、ページ内アドレス(DIS
P)123と連なって物理アドレス(PA)k作る。
実行グロテクションビット115(EP)は、データに
対し誤まって命令読出し、実行することを防ぐためのも
のであり、プロテクションチェック回路76でこのビッ
トが「1」のエリアに対して命令読出しすると実行プロ
テクトエラーとなる。
従って本構成例の様に、JOBP40で命令キャッシュ
41とデータキャッシュ42が分れている場合には、命
令キャッシュ41からのこのエリアに対するアクセスは
、全て実行プロテクトエラーとなる。
ストレージキー(5KEY)116は、ライトプロテク
ションを行うためのもので、要求元プロセッサから伝送
されてきたアクセスキー(AKEY )と共にプロテク
ションチェック回路76により、ライトアクセスが許可
されるか、禁止されるかを調べられ、後者の場合はライ
トプロテクトエラーとなる。
アクゼスキ−(AKEY)は、この様に5KEY116
との比較によるライトプロテクトエラーのチェックに使
う他、BCP22からのページンクアクセスか否かの情
報や、命令読出しであるか否かの情報を含んでおり、こ
れらのプロテクトチェックにも使用する。
次に、変換過程を、第12図のフローチャートを参照し
て順次説明する。
メモリアクセスの種類は大きく次の2つに分けられる。
すなわち、 (1)一般のプロセッサによるメモリアクセス(21F
 CP 22によるページング時のメモリアクセス の2つであ゛る。このtl)、+21のアクセスの区別
は、アクセスキーAKBY上にあり、信号線140を経
由してアドレス変換コントローラ125に伝えられる。
まず、一般的な(1)の場合のメモリアクセスのアドレ
ス変換やアクセスの許可の判定について説明する。
あるプロセッサ(JOBP40又はl0P30)から出
力された仮想アドレスは、共通バス50を経由してMC
U12内の共通バス受信用レジスタ71内の仮想アドレ
スレジスタ120にセットされる。この仮想アドレスレ
ジスタ120にセットされた仮想アドレスは、セグメン
トアドレス(SA)121及びページアドレス(PA)
122の一部分120−2をアドレスとしてまずTLB
IIOをアクセスする。これにより読み出されたTLB
lloのエントリのVビット111およびCビット11
2は、アドレス変換コントローラ125に伝えられ、そ
のパターンにより、その後の処理が次の■〜■のように
3つに分かれる。
これは、第12図のフローのステップ(FO5)に相当
している。
■ Vビット111=O,、Cピッ)112=O(7)
時 これは、第12図で、「0.O」と表示したところであ
り、前述した如く%TLBIIOの該当ページ(エンド
リンは無効であり、主メモリl。
上の変換テーブル130を読み出す(FIO)。
この時、すなわち、TLBミス時の詳細な動作は後述す
る。
■ vビット111=1.Cビット112=1の時 第12図で「I、IJO時であるが、この時。
仮想アドレスの一部分120−1とTLBIIOの仮想
アドレスの一部分VPAI 13’!rコンパレータ1
24で比較した結果、一致し、TI、Bヒツト信号14
1が出力されていれば(F205)、該当ページは現在
ページング中であることを示しているので、そのメモリ
アクセスを禁止し、アドレス変換コントローラ125よ
りミツ/フグページフォールト信号142を出力する(
F45)。
TLBヒツト信号141が出力されていない時は、TL
Bミスであるので■と同様に、主メモリ10上の変換テ
ーブル130を読み出す(FIO)。
■ vビット111=1. Cピッ) 112=(1)
第12図で、rl、OJの時であるが、まず、TLBヒ
ツト信号141がチェックされ、(F30)出力されて
いない時は、プロテクションチェック回路76からのプ
ロテクトエラー信号143をチェックし、・エラーが発
生していなければ、仮想アドレスレジスタ120のペー
ジ内アドレス部123とTLBI 10上の物理アドレ
スの一部114を連結して物理アドレスをセレクタ12
8を介しアクセスレジスタ72上に作成し、その物理ア
ドレスをメモリアドレスバス152に送り、主メモリ1
0をアクセスするためメモリコントローラ77よりメモ
リ起動信号151を出力する(F’40)。
次に(2)のFCP22によるページング時のメモリア
クセスについて説明する。
FCP22よシ出力された仮想アドレスは、共通バス5
0を経由してMCU12内の仮想アドレスレジスタ12
0にセットされる。
この場合も%まずTLBI 10’にアクセスし、アク
セスしたTLBI 10のエントリのVビット111及
びCビット112のノくターンにより、先程と同様にそ
の後の処理が3つに分かれる。
■ vビット111=0.Cビット112=0の時 主メモリ10の変換テーブル130の読み出しを行う(
FIO)。
■ vビット111=1.Cビット112−1の時 この時、TLBヒツト信号141がチェックされる(F
30)。TLBヒットヲ示していれば、アクセスレジス
タ72上で作成された物−環アドレスで主メモリ10を
アクセスする(F40)。
TLBヒツト信号が出ていない場合は、メモリ10の変
換テーブル130を読み出す(FIO)。
■ 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の該当する位
置の内容’t IJ−ドデータバス155上に読み出し
て来る。このデータには、ページテーブル132の先頭
アドレスが保持されており、この値と、仮想アドレスレ
ジスタ120のページアドレス(PA)122をアダー
127で加算してアドレスを作シ1ページテーブル13
2から変換に必要な情報を読み出す(FIO)。
このページテーブル132には、Mビットの他、TLB
I 10内の、Vビット111と仮想アドレスの一部1
13(VPA)を除く情報を含んでおシ、このMビット
とCビットがリードデータバス155の一部155−1
を介してアドレス変換コントローラ125に入力され、
これらのビットパターンにより次の様な処理を取る。
■ Mビット−O,Cビット=0の時 該当ページは主メモリ10上に無く、外部メモリ20上
にあることを示しており、このページのアクセス要求に
対してはミッシングページフォールト信号142を出し
て、該当プロセッサにページフォールトを知らせる(F
45)。
■ Mビット−O,Cビット=1の時 該当ビットは現在ページング中であることを示している
ので%FCP22以外のメモリアクセスに対してはその
メモリアクセスを禁止し、ミッシングページフォールト
信号142を出す(F45)。
FCP22からのメモリアクセスの場合は、T’LB1
10に登録してアクセスを行う(F20)。
■ Mビット−i、Cビット−0の時 読み出されたリードデータの一部155−2と仮想アド
レスの一部120−1.及びVビット「1」がTLBI
IOに登録され(F20)、V。
Cビットのチェックルーチンに戻る。
以上述べたように、アドレス変換装置75は、各プロセ
ッサからの仮想アドレスによるメモリアクセスに対し、
仮想アドレスから物理アドレスへのアドレス変換を集中
して実施することが可能でアドレス変換の制御が単純と
なる。
また、FCP22からのアクセスと、他のプロセッサか
らのアクセスとの制御方式を変更することにより、ペー
ジング中のページに対する他のプロセッサからのアクセ
スを禁止することが可能で、説明する。
ページフォールト信号e!求元プロセッサが受取った時
には、その時に実行していたタスクを中断し、要求した
アドレスを含むページを主メモリ  ゛10にロードす
るために、FCP22に起動をかける。PCP22はこ
の起動を受けて、該当ページを読み出し、これが完了す
ると終了割込みを発生する。この時には必要なページは
主メモリ10上にロールインされているために、前記中
断さtまたタスクを再開する。このタスクが中断されて
いる間、当該プロセッサは他のタスクを実行する。
次に命令キャッシュ41とデータキャッシュ42につい
て説明する。第13図は命令キャッシュ41の構成例を
示した図である。主メモリ10からコピーして来たデー
タがキャッシュデータ部81−I上にあり、そのデータ
のアドレスがディレクトリイ82−Iと無効化ディレク
トリイ83−Iにあシ、またこれらが有効か否かを示す
情報が有効ビットレジスタ84−■にある。ディレクト
リイ82−■と無効化ディレクトリイ83−Iの内容は
同じであり、性能を高めるだめ分けである。前者はIユ
ニット43がアクセスしたデータがキャッシュデータ部
81−■にあるか否かのチェックに使用し、後者は他の
プロセッサが主メモリ10に書込んだデータがキャッシ
ュデータ部81−Iに取込まれている場合に、既にその
データは古くなっているので無効化しなければならない
(これを無効化処理と呼ぶ)が、そのためのチェックに
使用する。
次に、この命令キャッシュ41の動作について説明する
。なお、命令キャッシュ41はデータキャッシュ42と
は異なり、ライトアクセスは処理しない。
第14図はリードアクセスのキャッシュミス時のフロー
、第15図は無効化処理のフローを示している。
(1)  リードアクセス(第14図参照)■ エユニ
ット43から起動信号91−Iが来たら、仮想アドレス
92−Hの一部、ここではビット(18−27)でディ
レクトリイ82−■と有効ピットレジスタ84−’Iの
内容を読み出し、ディレクトリイ82−Hの内容と仮想
アドレス92−■のビット(0−17>をコンパレータ
16〇−■で一致チェックを行い、またその内容ヲハリ
テイチェツカー161−Iでチェックする。そしてコン
パレータ160−Iが一致を示し、パリティエラーが発
生してなく、かつ有効ピットレジスタ84−■が有効で
あることを示しているならば、ゲート169−I’!r
介してキャツシュヒツト信号170− I カ命令キャ
ッシュコントローラ162−Iに出され、命令キャッシ
ュコントローラ162−■は、仮想アドレスのビット(
18−29)でアクセスされたキャッシュデータ部81
−Iの内容を、リードデータバス94−■に乗せると共
に、■ユニット43に対して終了信号93−I’に返す
■ キャッ/ユミスの場合は、命令キャッシュコントロ
ーラ162−Iは、°起動ノ(ス占有要求51を出す。
■ 占有要求51が許可されたら、ゲート85−15−
開き、起動バス55に仮想アドレス(VA)。
アクセスの種類(FUNC)、アクセスキー<AKEY
)を転送する。なお、このアクセスキー(AKEY)に
は命令読み出しであることを付加する。
■ セット信号172−工により、仮 アドレスのとッ
ト(O〜17)をディレクトリイ82−I。
無効化ディレクトリイ83−Iへ書き込み、有効ピット
レジスタ84−Ie上セツトる。本処理をこの時点で行
う理由は後で述べる。
■ MCU12からデータバス56を介して、リードデ
ータ・(RD)が、また応答バス57を介して終了信号
とリターンコード(アクセス中に発生したエラー及びペ
ージフォールトの情報)(RC)が送られてきたらレジ
スタ86−2にラッチする。
MCU12の説明でも述べたように、最初に送られて来
たデータは、■ユニット43がアクセスしたデータであ
るので、リターンコード(RC)が次の(1)〜(3)
の状態を示している時(第14図(5)に示す条件(イ
)成立時、)は、■ユニット43に終了信号93−Iと
リードデータ94−■とリターンコード95−Iを返す
(1)  No Error (エラーが発生してない
時)(21Page Faul寥(ページフォールトが
発生した時、) (31Sof t Error (ソフトによるエラー
、例えばプロテクションエラーが発生した時、)また、
)(ard Brror (ハードが原因のエラー)の
場合は、再度主メモリ10をアクセスすることによって
、救える場合が多いので、−リトライを行う。
この為、上記の信号を返さないが、リトライ回数が規定
回数を越えた場合、すなわち、IJ )ライオ−バーの
場合には、エラー報告を行うために、上記の信号を返す
。そして、主メモリ10から読み出して来たり−ドデー
タをキャッシュデータ部5l−rに書き込む。
■、■、■ MCU12から送られてくる残りのリード
データをキャッシュデータ部81−■に1込む。■のス
テージで既にエユニット43に対しては終了信号93−
■を戻しであるので、この間。
■ユニット43は別な動作が可能である。■の段階では
これに加えて、■〜■のステージでエラーやページフォ
ールトが発生したかをチェックし、発生してない場合に
は命令キャッシュ41の動作を止める。
■ エラーやページフォールトが発生している場合には
、■のステージでセットした有効ビットレジスタ84−
■に対し、命令キャッシュコントローラ162−Iより
有効ビットクリア信号171−Ik出して、クリアしキ
ャッンユデータ部81−■の該当データを使用出来ない
様にする。また。
■のステージでHard ErrOr’r起こし且つリ
トライオーバしてない場合には(第14図■に示す条件
(7)成立)、リトライを行うため■のステージに飛ぶ
以上がリードアクセスの処理手順であるが、先程述べた
様にキャッシュ(命令、データキャッシュ共)では、い
わゆる無効化処理が必要となる。
以下、その手順を説明する。
(2)無効化処理(第15図参照) ■ 起動バス55転送中の仮想アドレス(VA)とアク
セスの種類(FUNC)i毎回レジスタ87に取込む。
■ 上記仮想アドレスのピッ)(18−27)で、無効
化ディレクトリイ83−I、の内容を読出し、無効化す
る必要があるか否か全無効化判定回路165−Iでチェ
ックすると共に、そのアドレスのビット(18−27)
をレジスタ88−Hにセットする。
■ そして無効化が必要な場合は、レジスタ88−■の
アドレスで該当の有効ピッ)84−I’tクリアする。
このため無効化判定回路1.65− ’Iから有効ビッ
トクリア信号171−1出す。
次に無効化が必要な場合を詳細に説明する。まず、無効
化は、起動バス55から取込んだアクセスの種類(FU
NC)がライトアクセスを示し、それが他からのもので
ある時行う。そして、次に示す条件のいずれかを満たし
た時に無効化を行う。
(a)  レジスタ87−Iのアドレスのピッ)(18
−27)で無効果ディレクトソイ83−1読出し、その
内容とアドレスのビット(0−17)iコンパレータ1
63−Iで比較し、一致した時。
(b)  無効化ディレクトリイ83−I’を読出した
際に、パリティチェッカ164−Iでパリティエラーが
検出された時。
(C)  無効化ディレクトリイ83−IをJOBPJ
内で使用している時(■にチェックが出来ないため)。
以上無効化処理について述べたが1次に(1)のリード
アクセスの■ステージでディレクトソイ82−I、無効
化ディレクトリイ83−Iヘアドレスを書込み、有効ピ
ットレジスタ84−I全セットしなければならない理由
を明らかにする。
第16図はリードアクセスがキャップユミスになり、主
メモリ10をリードに行く場合と、主メモリ10に対し
て他からライトアクセスが行われた場合のキャッシュの
無効化処理が競合した時に、各部分がどの様に使用され
るかをタイムチャートで示している。無効化処理につい
ては斜線で示してあり、それぞれタイムスロット1と3
で起動バス55.データバス56を転送中のライトアク
セスに対して、タイムスロット2と4で無効化ディレク
トリイ83−■のチェックを行い、タイムスロット3と
5の前半で有効ピットレジスタ84−Iをクリアし無効
化している。一方、キャッシュミスとなったリードアク
セスは、タイムスロット2で起動バス55にアドレスを
転送しているので。
主メモリ10へのアクセスの順番としては、タイムスロ
ット1で起動バス55を転送中のライトアクセスより後
で、タイムスロット3で起動バス55を転送中のライト
アクセスより前となる。従って、キャッシュと主7モリ
10のデータの一致を保つためには、ライトアクセスが
無効化ディレクトソイ83−Ieチエツクするタイムス
ロット2と4の間で、キャッシュミスを起こしたリード
アクセスのアドレスを無効化ディレクトリイ83−Iに
書込まなければならないし、またチェックの結果、有効
ピットレジスタ84−I’i無効化するタイムスロット
3と5の間で、有効ピットレジスタ84−iセットする
必要がある。これらの制御が必要な理由は、主メモリ1
0で複数のメモリアクセスを同時に処理しているからで
ある。
なお本構成例では、アドレス情報を2ケ所、すなわちデ
ィレクトリイ82−Iと無効化ディレクトリイ83−I
に持っているため、無効化ブイレフ) IJイ83−H
の方しか上記の制約を受けないが、ディレクトリイを1
ケ所に持つ場合は、当然上記の制約を受ける。
次にデータキャッシュ42について説明する。
第17図はデータキャッシュ42の構成例を示した図で
あり、無効化処理の回路180−Dは命令キャッシュ4
1と同じであるため省略しである。
尚第13図と第17図で、サフィックスが違うだけのも
のは相当物である。第13図の命令キャッシュではサフ
ィックスに■、第17図のデータキャッシュではサフィ
ックスにDk使用している。
命令キャッシュ41との大きな違いは、ライトアクセス
をサポートしなければならない点であり、このライトア
クセス時間を短縮するために共通バス送出用のバッファ
89−D’e設け、ライト時には仮想アドレス92−D
、ライトデータ95−D。
制御情報96−Dをこのバッファ89−Dにセットした
だけで、終了信号93−DeEユニット44に返し、E
ユニット44が次の処理を出来る様に制御している。
次に、このデータキャッシュ42の動作について説明す
る。但し、リードアクセスの処理は命令キャッシュ41
と同じであるので省略する。
(3)  ライトアクセス(第18図参照)■ Eユニ
ット44から起動信号91−Dが来たら、仮想アドレス
92−D、ライトデータ95−り、制御情報96−D(
アクセスの種類、アクセスキー等)を共通バス送出用バ
ッファ89−Dにセットし、Eユニット44に対して終
了信号93−D’(r返す。この際、ディレクトリイ8
2−Dと有効ピットレジスタ84−Deチェックしキャ
ツシュヒツト(信号170−Dが出てる)ならば。
キャラツユデータ部81の仮想アドレスのビット(18
−27)で示される位置にデータを書込む。
■ データキャッシュコントローラ162−Dより起動
バス占有要求51.データノ(ス占有要求52を出す。
■ 両方の占有要求が許可されたら、ゲート85−Dt
−開き起動バス55に仮想アドレス(VA)。
アクセスの種類(FUNC)、アクセスキー(AKEY
)を転送し、データバス56にはライトデータを転送す
る。
■ MCU12から応答バス57を通して終了信号とリ
ターンコードが送られてきたらレジスタ86−Dにラッ
チする。そしてリターンコードをチェックし、エラーや
ページフォールトを起こしてない時には共通バス送出用
バッファ89−Dからそのアク、セスを取り除き、処理
を終了する。一方、第14図(5)に示したに)の条件
、すなわち1(ard Errorが発生しかつリトラ
イオーバしてない時には、リトライを行うため■のステ
ージに飛ぶ。
■ 上記以外の場合には、共通バス送出用バッファ89
−Dのアドレスで有効ピットレジスタ24−Deクリア
すると共に、Eユニット44に対してエラー、ページフ
ォールトの発生を報告する。
有効ピットレジスタ84−Illクリアする理由は。
例えばプロテクションエラーの場合は1.書込んではな
らないキャッシュデータ部81−Dのデータに対して、
既に■のステージで書込みを行っているためである。
尚データキャッシュ42から主メモリ10にうイト起動
したアドレスも起動バス55からデータキャッシュのレ
ジスタ87−DC無効化処理の回路180−Dに含まれ
ている)にセットされるが、それに対しては、自分自身
が出したものであるからデータキャッシュコントローラ
162−Dより無効化処理の回路180−Dに対して信
号173−、Dを送り無効化を行なわない様に制御する
。命令キャッシュ41はライトアクセスは行なわないの
で、この信号173−Dに相当するものはない。
以上詳細に説明したように、本発明によれば、高スルー
プツトのアドレス変換装置を有するメモリコントローラ
を提供でき、これによりアドレス変換装置を共有するマ
ルチプロセッサ構成のボトルネックを解消したデータ処
理装置が提供できる。
【図面の簡単な説明】 第1図は本発明が適用されるデータ処理装置の全体構成
を示した図、第2図は第1図の共通バスの構成例を示し
た図、第3図はアクセスごとに共通バスのどの部分を使
用するかを示した図、第4図は共通バスの使用例を示す
図、第5図は共通バスの占有制御の様子を示した図、第
6図はインタロック信号が出ている時の共通バスの占有
制御の様子を示した図、第7図は占有制御回路の構成例
を示した図、第8図(イ)〜(0はMCUでの処理フロ
ーの例及びMCUで複数のアクセスをオーバラップさせ
て処理していることを示した図、第9図はMCUの構成
例全示した図、第10図囚、(B)はメモリボードの構
成例及び16 BYte +)−ド時のデータ返送の順
番を示した図、第11図はT L Bによるアドレス変
換装置全示した図、第12図はアドレス変換のフローを
示した図、第13図は命令キャッシュの構成例を示した
図、第14図はキャッシュ−のリードアクセス時の処理
フローの説明図、第15図はキャッシュ無効化の処理フ
ローの説明図、第16図はキャッシュ各部分の使用タイ
ミングの例を示した図、第17図はデータキャッシュの
構成例を示した図、第18図はライトアクセスの処理フ
ローの説明図である。 10・・・主記憶装置、12・・・メモリアクセスコン
トローラ、50・・・共通バス、75・・・アドレス変
換装置。 ′$+  12] ギ 2 図 ネ 3 図 茶 5 図 タイムスロ・/F 4C乙   図 り4′ムスロ・ント ¥ 7 図 竿  δ 図 (c) (イ)411yttzソーF”  (Z)      
      @]二ζΣ](ロ)4EyυフィI−[3
Σ]コ医[Jコシ了n万=[(Σ]第 9 図 竿 /θ U (A) L        J 千 /θ m (8) 均テζ ノ/ t?7 第  72  図 竿 /3 図 リートアク七ス(キャソラエ3ズフ 竿 15  /D 多 /ろ 図 タイムスロ・/ト チ′二qノぐZ (3こ6)     上ピン−32】
つ        【≦ご≦1=】=コ’、l、  t
’y  図 一一走7)ワー°拳本7−リiツー1−丁一−ジイト 
   穀アト“Lス、           イ参夛 
 イ畠! コート  テ゛−タ      テーク  
、1ンq2−D                ’?
/−D                f4−ρ  
     ヲ5−jり♂I− 1−D イl        V u            
′デ°゛ 1− ( 1し− 11、− 1」 一4゛1         、−↓]ニー・″悌り−7
ゝ1°− ・ψも /りρ−D −” 、Rt) t【パ入                   −デ
′−タバ又           −−−−−−−−王
−ニー応答バ・ス :               
   ’ ””” −’−Fl−’:     ’−y
oryye。 第1頁の続き 0発 明 者 井手寿之 日立重大みか町5丁目2番1号 株式会社日立製作所犬みか工場 内 ■出 願 人 日立エンジニアリング株式会社日立市幸
町3丁目2番1号

Claims (1)

  1. 【特許請求の範囲】 1、複数のプロセッサに共通に使用されるアドレス変換
    装置を、主記憶装置に接続されたメモリコン、上ローラ
    に設けた仮想記憶方式のデータ処理装置において、該メ
    モリコントローラは、各プロセッサから転送された仮想
    アドレスをラッチする第1のレジスタと、アドレス変換
    された物理アドレスをセットする第2のレジスタを有し
    、該第1のレジスタに仮想アドレスをラッチすることと
    、第1のレジスタの内容をアドレス変換して第2のレジ
    スタにセットすることと、第2のレジスタの内容をアド
    レスとして主記憶装置に起動をかけることを順次並行し
    て行うようにしたことを特徴とするデータ処理装置。 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 true JPS5864689A (ja) 1983-04-18
JPH056706B2 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)

Cited By (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

Cited By (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 仮想記憶管理方式

Also Published As

Publication number Publication date
JPH056706B2 (ja) 1993-01-27

Similar Documents

Publication Publication Date Title
US4347565A (en) Address control system for software simulation
JPH0345407B2 (ja)
JPS59180767A (ja) 直列化装置
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US7069394B2 (en) Dynamic data routing mechanism for a high speed memory cloner
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
JPS61114353A (ja) 要求時ペ−ジングメモリを有するデジタルデ−タ処理システムのアクセス照合構成体
US6490668B2 (en) System and method for dynamically moving checksums to different memory locations
EP0480858A2 (en) Hardware primary directory lock
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
JP3814521B2 (ja) データ処理方法および装置
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
JPS5864689A (ja) デ−タ処理装置
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
JPS5864690A (ja) キヤツシユメモリ制御方法
JP2813182B2 (ja) マルチプロセッサコンピュータ複合装置
US6986011B2 (en) High speed memory cloner within a data processing system
JPS5858666A (ja) デ−タ処理装置
JPH0573417A (ja) データ処理装置
US6928524B2 (en) Data processing system with naked cache line write operations
JP2535086B2 (ja) リング削減ロジック装置
JPS5864688A (ja) デ−タ処理装置
JPS59172044A (ja) 命令制御方式
JPS6118223B2 (ja)