JPH0715667B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0715667B2 JPH0715667B2 JP4027794A JP2779492A JPH0715667B2 JP H0715667 B2 JPH0715667 B2 JP H0715667B2 JP 4027794 A JP4027794 A JP 4027794A JP 2779492 A JP2779492 A JP 2779492A JP H0715667 B2 JPH0715667 B2 JP H0715667B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- access
- address
- bus
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【0001】
【産業上の利用分野】本発明は仮想記憶方式のデータ処
理装置に関し、特に、アドレス変換装置を命令解読用の
データが入るインストラクションキャッシュメモリと、
実行用データの入るデータキャッシュで共用するデータ
処理装置に関する。
理装置に関し、特に、アドレス変換装置を命令解読用の
データが入るインストラクションキャッシュメモリと、
実行用データの入るデータキャッシュで共用するデータ
処理装置に関する。
【0002】
【従来の技術】従来この種のデータ処理装置では、アド
レス変換したあとキャッシュメモリをアクセスするよう
にしていたため、アドレス変換用のハードウェアがイン
ストラクションキャッシュ用とデータキャッシュ用の2
種必要であった。
レス変換したあとキャッシュメモリをアクセスするよう
にしていたため、アドレス変換用のハードウェアがイン
ストラクションキャッシュ用とデータキャッシュ用の2
種必要であった。
【0003】
【発明が解決しようとする課題】本発明の目的は、この
アドレス変換装置をインストラクションキャッシュデー
タキャッシュ参照の後アクセスするようにすることで、
良好なデータ処理装置を提供することにある。
アドレス変換装置をインストラクションキャッシュデー
タキャッシュ参照の後アクセスするようにすることで、
良好なデータ処理装置を提供することにある。
【0004】
【課題を解決するための手段】本発明は、命令読出しを
行うためのIユニットと、命令読出しと並行してオペラ
ンド読出しを行うためのEユニットを有するパイプライ
ン処理型のプロセッサと、命令及びオペランドを記憶す
るための主記憶装置から成るデータ処理装置において、
該Iユニットに接続され、該Iユニットから命令アクセ
スのために出力する仮想アドレスを受取り、該仮想アド
レスに対応するデータが存在するか否かチェックし、存
在すればそのデータを該Iユニットに送出する命令キャ
ッシュメモリと、該Eユニットに接続され、該Eユニッ
トからオペランドアクセスのために出力する仮想アドレ
スを受取り、該仮想アドレスに対応するデータが存在す
るか否かチェックし、存在すればそのデータを該Eユニ
ットに送出するオペランドキャッシュメモリと、該命令
キャッシュメモリと該オペランドキャッシュメモリ及び
主記憶装置に接続され、該命令キャッシュメモリまたは
該オペランドキャッシュメモリに該仮想アドレスに対応
するデータが無い場合に、該仮想アドレスを実アドレス
に変換して、該主記憶装置に送出するためのアドレス変
換装置を有することを特徴とする。
行うためのIユニットと、命令読出しと並行してオペラ
ンド読出しを行うためのEユニットを有するパイプライ
ン処理型のプロセッサと、命令及びオペランドを記憶す
るための主記憶装置から成るデータ処理装置において、
該Iユニットに接続され、該Iユニットから命令アクセ
スのために出力する仮想アドレスを受取り、該仮想アド
レスに対応するデータが存在するか否かチェックし、存
在すればそのデータを該Iユニットに送出する命令キャ
ッシュメモリと、該Eユニットに接続され、該Eユニッ
トからオペランドアクセスのために出力する仮想アドレ
スを受取り、該仮想アドレスに対応するデータが存在す
るか否かチェックし、存在すればそのデータを該Eユニ
ットに送出するオペランドキャッシュメモリと、該命令
キャッシュメモリと該オペランドキャッシュメモリ及び
主記憶装置に接続され、該命令キャッシュメモリまたは
該オペランドキャッシュメモリに該仮想アドレスに対応
するデータが無い場合に、該仮想アドレスを実アドレス
に変換して、該主記憶装置に送出するためのアドレス変
換装置を有することを特徴とする。
【0005】
【作用】本発明は、キャッシュを論理アドレスで参照で
きるようにすることで、キャッシュ参照後、ミスしたア
ドレスのみアドレス変換が必要なようにすることで、ア
ドレス変換装置の使用頻度をおとし、かつインストラク
ション用キャッシュとデータ用キャッシュで共通にアク
セスできるアドレス変換回路を設けたことにある。
きるようにすることで、キャッシュ参照後、ミスしたア
ドレスのみアドレス変換が必要なようにすることで、ア
ドレス変換装置の使用頻度をおとし、かつインストラク
ション用キャッシュとデータ用キャッシュで共通にアク
セスできるアドレス変換回路を設けたことにある。
【0006】
【実施例】以下、本発明の一実施例を図面を参照して詳
細に説明する。
細に説明する。
【0007】図1は本発明が適用されるデータ処理装置
の全体構成の一例を示す図である。図1において、10
はプログラムおよびデータを格納する主メモリで、メモ
リバス11,メモリコントローラ(MCU)12を介し
て共通バス50に接続されている。
の全体構成の一例を示す図である。図1において、10
はプログラムおよびデータを格納する主メモリで、メモ
リバス11,メモリコントローラ(MCU)12を介し
て共通バス50に接続されている。
【0008】20は、主メモリ10に格納されるベきプ
ログラムおよびデータを格納する外部メモリで、外部メ
モリバス21,ファィルプロセッサ(FCP)22を介
して共通バス50に接続されている。30は入出力プロ
セッサ(IOP)であり、図示しない各種入出力装置と
のデータ転送の制御を行う。
ログラムおよびデータを格納する外部メモリで、外部メ
モリバス21,ファィルプロセッサ(FCP)22を介
して共通バス50に接続されている。30は入出力プロ
セッサ(IOP)であり、図示しない各種入出力装置と
のデータ転送の制御を行う。
【0009】40はジョブプロセッサ(JOBP)であ
り、ここでは1つだけを示しているが、プログラム(命
令)の実行を行う。
り、ここでは1つだけを示しているが、プログラム(命
令)の実行を行う。
【0010】ジョブプロセッサ40は、命令キャッシュ
41,データキャッシュ42,Iユニット43およびE
ユニットにより構成され、命令キャッシュ41とIユニ
ット43はバス45で接続され、データキャッシュ42
とEユニット44はバス46で接続され、Iユニット4
3とEユニット44はバス47で接続されている。
41,データキャッシュ42,Iユニット43およびE
ユニットにより構成され、命令キャッシュ41とIユニ
ット43はバス45で接続され、データキャッシュ42
とEユニット44はバス46で接続され、Iユニット4
3とEユニット44はバス47で接続されている。
【0011】このように、ファィルプロセッサ22,入
出力プロセッサ30およびジョブプロセッサ40は、い
ずれも共通バス50に接続され、メモリコントローラ1
2を介して主メモリ10をアクセス可能になっている。
出力プロセッサ30およびジョブプロセッサ40は、い
ずれも共通バス50に接続され、メモリコントローラ1
2を介して主メモリ10をアクセス可能になっている。
【0012】ジョブプロセッサ4は、Iユニット43と
Eユニット44でパイプライン処理をするもので、前述
の如くそれぞれのユニットに対して命令キャッシュ41
とデータキャッシュ44を有する。
Eユニット44でパイプライン処理をするもので、前述
の如くそれぞれのユニットに対して命令キャッシュ41
とデータキャッシュ44を有する。
【0013】尚プログラム(命令)が扱うデータはオペ
ランドとも呼ばれ、このデータキャッシュのことをオペ
ランドキャッシュと呼ぶ場合がある。
ランドとも呼ばれ、このデータキャッシュのことをオペ
ランドキャッシュと呼ぶ場合がある。
【0014】次に実行すべき命令語をIユニット43が
アクセスする場合、まず、命令キャッシュ41上にその
命令語が存在するか否かチェックされ、存在する場合に
は、そのデータが命令語としてバス45を介してIユニ
ット43へ送られる。存在しない場合は、命令語の仮想
アドレスを共通バス50を介してメモリコントローラ1
2へ送出する。
アクセスする場合、まず、命令キャッシュ41上にその
命令語が存在するか否かチェックされ、存在する場合に
は、そのデータが命令語としてバス45を介してIユニ
ット43へ送られる。存在しない場合は、命令語の仮想
アドレスを共通バス50を介してメモリコントローラ1
2へ送出する。
【0015】メモリコントローラ12では、仮想アドレ
スを物理アドレスに変換してメモリバス11を介して主
メモリ10をアクセスする。得られたデータ(命令)
は、共通バス50を介して、命令キャッシュ41へ送ら
れ、さらにバス45を介してIユニット43へ送られ、
Iユニット43で処理されると同時に、命令キャッシュ
41へ貯わえられる。
スを物理アドレスに変換してメモリバス11を介して主
メモリ10をアクセスする。得られたデータ(命令)
は、共通バス50を介して、命令キャッシュ41へ送ら
れ、さらにバス45を介してIユニット43へ送られ、
Iユニット43で処理されると同時に、命令キャッシュ
41へ貯わえられる。
【0016】Iユニット43では、この得られた命令を
解読し、Eユニット44に対して「何を為すべきか」を
指示する。Eユニット44は、この指令に基づき、必要
なデータを内部のレジスタやデータキャッシュ42から
(データキャッシュ42上にない場合は、命令キャッシ
ュと同様に主メモリ10から)集め、演算処理し、その
結果を内部のレジスタか主メモリ10に格納する。後者
の主メモリ10に結果を格納する際には、該当する位置
のデータが既にデータキャッシュ42内に取込まれてい
るならば、そのデータも更新する。
解読し、Eユニット44に対して「何を為すべきか」を
指示する。Eユニット44は、この指令に基づき、必要
なデータを内部のレジスタやデータキャッシュ42から
(データキャッシュ42上にない場合は、命令キャッシ
ュと同様に主メモリ10から)集め、演算処理し、その
結果を内部のレジスタか主メモリ10に格納する。後者
の主メモリ10に結果を格納する際には、該当する位置
のデータが既にデータキャッシュ42内に取込まれてい
るならば、そのデータも更新する。
【0017】次に共通バス50の構成例について説明す
る。共通バス50は図2に示す様に、実際に情報を転送
するのに使用される起動バス55,データバス56,応
答バス57と、これらのバス55〜57をそれぞれどの
プロセッサあるいはメモリコントローラが使用するかを
決めるのに必要な起動バス占有要求線51,データバス
占有要求線52,応答バス占有要求線53とインタロッ
ク信号線54を含んでおり、時分割で使用される。
る。共通バス50は図2に示す様に、実際に情報を転送
するのに使用される起動バス55,データバス56,応
答バス57と、これらのバス55〜57をそれぞれどの
プロセッサあるいはメモリコントローラが使用するかを
決めるのに必要な起動バス占有要求線51,データバス
占有要求線52,応答バス占有要求線53とインタロッ
ク信号線54を含んでおり、時分割で使用される。
【0018】各バス55〜57の情報の中味は次の通り
である。
である。
【0019】(1)起動バス (a)アドレス (b)アクセスの種類(例えばリードアクセスであるか/
ライトアクセスであるか、または何バイトアクセスする
か等) (c)アクセスキー(MCU12で行うプロテクションチ
ェックに使用する。) (2)データバス56 (a)ライトデータ (b)リードデータ (3)応答バス57 (a)終了信号 (b)リターンコード(アクセス中に、発生したエラー及
びページフォールトの情報) などである。
ライトアクセスであるか、または何バイトアクセスする
か等) (c)アクセスキー(MCU12で行うプロテクションチ
ェックに使用する。) (2)データバス56 (a)ライトデータ (b)リードデータ (3)応答バス57 (a)終了信号 (b)リターンコード(アクセス中に、発生したエラー及
びページフォールトの情報) などである。
【0020】これらのバス55〜57が、どの様に使用
されるかを図3で示す。
されるかを図3で示す。
【0021】この図で示される様に、 (i) aのリード要求とbのリード応答 (ii) aのリード要求とdのライト応答 (iii) cのライト要求とdのライト応答 の3つの組み合わせの転送が、同一のタイムスロットで
同時に可能となる。
同時に可能となる。
【0022】次にバス55〜57の使用の様子を図4で
示す。この図では、タイムスロット0でJOBP40がMCU
12にメモリリード起動をかけ、それに対するリードデ
ータがタイムスロットNとN+1で返されて来ており、
またタイムスロット1でIOP30がMCU12にメモ
リライト起動をかけ、それに対する応答がタイムスロッ
トN+2で返されている。この様に共通バス50では、
起動と応答を分離した、いわゆるスプリット転送を行
う。また、主メモリ10は複数のメモリアクセスを処理
出来る構成となっている。
示す。この図では、タイムスロット0でJOBP40がMCU
12にメモリリード起動をかけ、それに対するリードデ
ータがタイムスロットNとN+1で返されて来ており、
またタイムスロット1でIOP30がMCU12にメモ
リライト起動をかけ、それに対する応答がタイムスロッ
トN+2で返されている。この様に共通バス50では、
起動と応答を分離した、いわゆるスプリット転送を行
う。また、主メモリ10は複数のメモリアクセスを処理
出来る構成となっている。
【0023】以上、述べてきたバス55〜57の転送を
行うに当って、その前に占有制御を行う必要がある。こ
れは転送を希望するプロセッサやメモリコントローラ
が、転送の1タイムスロット前に、転送に使用するバス
に対する占有要求51〜53を出し、これに対して優先
順位を付けて転送を許可することによって行う。この優
先順位の付け方は、色々な方法が考えられるが、ここで
はその詳細については省略する。ただし、応答による占
有要求は、起動による占有要求より優先レベルを上げ
る。というのは、起動による占有要求によって応答が返
せない事態になると、メモリコントローラ上で起動の処
理が詰まってしまい、デッドロック状態となるからであ
る。例えば、本実施例の場合、図3に示すbのデータリ
ード応答と、cのデータライト起動による占有要求が競
合した場合には前者が優先される。
行うに当って、その前に占有制御を行う必要がある。こ
れは転送を希望するプロセッサやメモリコントローラ
が、転送の1タイムスロット前に、転送に使用するバス
に対する占有要求51〜53を出し、これに対して優先
順位を付けて転送を許可することによって行う。この優
先順位の付け方は、色々な方法が考えられるが、ここで
はその詳細については省略する。ただし、応答による占
有要求は、起動による占有要求より優先レベルを上げ
る。というのは、起動による占有要求によって応答が返
せない事態になると、メモリコントローラ上で起動の処
理が詰まってしまい、デッドロック状態となるからであ
る。例えば、本実施例の場合、図3に示すbのデータリ
ード応答と、cのデータライト起動による占有要求が競
合した場合には前者が優先される。
【0024】以上の占有制御の様子を簡略化して図5に
示している。タイムスロット0ではJOBP40とIOP30
がリード起動をしようとして、各々が起動バス占有要求
51を出している。この内、JOBP40の方がIOP30よ
り、優先レベルが高いものとすると、タイムスロット1
でJOBP40は起動バス55を使用してリードの起動を行
い、同時に占有要求を止める。一方、IOP30は占有
が許可されなかったので、タイムスロット1でも起動バ
ス占有要求51を出したままとする。このスロット1で
は、JOBP40から占有要求がなくなるので、タイムスロッ
ト2でIOP30はリード起動が可能となる。
示している。タイムスロット0ではJOBP40とIOP30
がリード起動をしようとして、各々が起動バス占有要求
51を出している。この内、JOBP40の方がIOP30よ
り、優先レベルが高いものとすると、タイムスロット1
でJOBP40は起動バス55を使用してリードの起動を行
い、同時に占有要求を止める。一方、IOP30は占有
が許可されなかったので、タイムスロット1でも起動バ
ス占有要求51を出したままとする。このスロット1で
は、JOBP40から占有要求がなくなるので、タイムスロッ
ト2でIOP30はリード起動が可能となる。
【0025】この様なシステムにおいて各プロセッサ
が、他のプロセッサからのアクセスを排除して、すなわ
ちインタロックして主メモリ10をアクセスする場合に
は、起動バス55を他のプロセッサに使用させない様に
する。というのは、起動バス55を占有することで、他
のプロセッサから今後発生する起動を排除し、また既に
主メモリ10内で処理中のメモリ起動に対しては、デー
タバス56,応答バス57を使用して応答を返すことを
可能にするためである。もし、これらの応答が返せない
と、メモリコントローラ12上で起動の処理が詰まって
しまい、デッドロック状態になってしまうからである。
が、他のプロセッサからのアクセスを排除して、すなわ
ちインタロックして主メモリ10をアクセスする場合に
は、起動バス55を他のプロセッサに使用させない様に
する。というのは、起動バス55を占有することで、他
のプロセッサから今後発生する起動を排除し、また既に
主メモリ10内で処理中のメモリ起動に対しては、デー
タバス56,応答バス57を使用して応答を返すことを
可能にするためである。もし、これらの応答が返せない
と、メモリコントローラ12上で起動の処理が詰まって
しまい、デッドロック状態になってしまうからである。
【0026】次に、この起動バス55の占有方法の一例
を説明する。メモリコントローラ12をインタロックし
てフクセスしようとするプロセッサは、図6に示す様に
起動バス占有要求51が受付けられ、起動バス55に情
報を転送するタイムスロットで、起動バス55を占有し
ていることを示すインタロック信号54を出す。そし
て、この信号により他のプロセッサからの起動バス占有
要求51が受付けられない様に制御する。これは例えば
図7の回路によって実現される。この図では、各占有要
求51〜53の優先判定回路61は各プロセッサごとに
分散して持ち、インタロック信号線54はオープン・コ
レクタの信号線としている。まず、インタロックの信号
54が出てない場合は、各占有要求51〜53を優先判
定回路61でチェックし、自分の出した起動バス占有要
求51の優先度が一番高い場合には、アンドゲート6
2,オアゲート63を通して起動バス55の占有許可信
号64が出る。従って、このプロセッサは次のタイムス
ロットで、起動バス55に対して情報の転送が可能であ
る。また、この際プロセッサからインタロック要求信号
65が出されていると、アンドゲート68を介してJ−
Kフリップフロップ66がセットされ、インタロック信
号54が出力される。このインタロック信号54は、イ
ンタロック解除信号67が出されるまで、出力されてお
り、この間このプロセッサは起動バス55を占有したま
まとなる。次に、他のプロセッサからインタロック信号
54が出されている場合には、アンドゲート62で優先
判定回路61の出力が禁止されるので、起動バス占有許
可信号64が出ないため、起動バス55が使用できず、
従ってメモリ起動も出来ない。
を説明する。メモリコントローラ12をインタロックし
てフクセスしようとするプロセッサは、図6に示す様に
起動バス占有要求51が受付けられ、起動バス55に情
報を転送するタイムスロットで、起動バス55を占有し
ていることを示すインタロック信号54を出す。そし
て、この信号により他のプロセッサからの起動バス占有
要求51が受付けられない様に制御する。これは例えば
図7の回路によって実現される。この図では、各占有要
求51〜53の優先判定回路61は各プロセッサごとに
分散して持ち、インタロック信号線54はオープン・コ
レクタの信号線としている。まず、インタロックの信号
54が出てない場合は、各占有要求51〜53を優先判
定回路61でチェックし、自分の出した起動バス占有要
求51の優先度が一番高い場合には、アンドゲート6
2,オアゲート63を通して起動バス55の占有許可信
号64が出る。従って、このプロセッサは次のタイムス
ロットで、起動バス55に対して情報の転送が可能であ
る。また、この際プロセッサからインタロック要求信号
65が出されていると、アンドゲート68を介してJ−
Kフリップフロップ66がセットされ、インタロック信
号54が出力される。このインタロック信号54は、イ
ンタロック解除信号67が出されるまで、出力されてお
り、この間このプロセッサは起動バス55を占有したま
まとなる。次に、他のプロセッサからインタロック信号
54が出されている場合には、アンドゲート62で優先
判定回路61の出力が禁止されるので、起動バス占有許
可信号64が出ないため、起動バス55が使用できず、
従ってメモリ起動も出来ない。
【0027】次にMCU12について説明する。
【0028】MCU12は、通常のメモリアクセスの処
理の他、仮想アドレスから物理アドレスへのアドレス変
換や、プロテクションのチェックを行う。
理の他、仮想アドレスから物理アドレスへのアドレス変
換や、プロテクションのチェックを行う。
【0029】また、各プロセッサ間で共通に使用され、
高いスループットが要求されるため、リード処理とライ
ト処理は、図8(A),(B)に示すように、いくつかの
ステージ〜又は′〜′に分かれており、複数個
のアクセスを図8(C)に示すようにオーバラップさせ
て処理出来るようになっている。
高いスループットが要求されるため、リード処理とライ
ト処理は、図8(A),(B)に示すように、いくつかの
ステージ〜又は′〜′に分かれており、複数個
のアクセスを図8(C)に示すようにオーバラップさせ
て処理出来るようになっている。
【0030】図9は、MCU12の構成の一例を示した
ものであるが、図8(A),(B)に示した各処理ステー
ジでは次のような動作を行う。
ものであるが、図8(A),(B)に示した各処理ステー
ジでは次のような動作を行う。
【0031】(A):リード処理ステージの動作 共通バス50からリード起動受信 起動バス55上の仮想アドレス(VA),アクセスの種
類(FUN),アクセスキー(AKEY)を共通バス受
信用レジスタ71に取込む。
類(FUN),アクセスキー(AKEY)を共通バス受
信用レジスタ71に取込む。
【0032】 アドレス変換とプロテクションチェッ
ク アドレス変換装置75により、仮想アドレス(VA)で
示されるページが、主メモリ10にあるか否かに判定を
行い、ある場合には物理アドレス(PA)に変換する。
ない場合は、いわゆるページフォールトとなる。
ク アドレス変換装置75により、仮想アドレス(VA)で
示されるページが、主メモリ10にあるか否かに判定を
行い、ある場合には物理アドレス(PA)に変換する。
ない場合は、いわゆるページフォールトとなる。
【0033】また、この時プロテクションチェック回路
76で、そのアクセスが許可されているものか否かの判
定を行う。
76で、そのアクセスが許可されているものか否かの判
定を行う。
【0034】このアドレス変換装置75とプロテクショ
ンチェック回路76については、後で詳細に述べる。
ンチェック回路76については、後で詳細に述べる。
【0035】これらのプロテクションチェックの結果
と、ページフォールト情報は、他のエラー情報と共にリ
ターンコード(RC)として、アクセスの種類(FUN
C)や物理アドレス(PA)と共にアクセスレジスタ7
2にセットされる。
と、ページフォールト情報は、他のエラー情報と共にリ
ターンコード(RC)として、アクセスの種類(FUN
C)や物理アドレス(PA)と共にアクセスレジスタ7
2にセットされる。
【0036】 メモリー起動 アクセスレジスタ72にあるアクセスにエラーやページ
フォールドが発生していない場合には、メモリコントロ
ーラ77が、アクセスレジスタ72上の物理アドレス
(PA)で、主メモリ10にメモリ起動151をかけ、
主メモリ10がその起動を受取ったら、アクセスの種類
(FUNC)とリターンコード(RC)を一時記憶レジ
スタ73へ移す。
フォールドが発生していない場合には、メモリコントロ
ーラ77が、アクセスレジスタ72上の物理アドレス
(PA)で、主メモリ10にメモリ起動151をかけ、
主メモリ10がその起動を受取ったら、アクセスの種類
(FUNC)とリターンコード(RC)を一時記憶レジ
スタ73へ移す。
【0037】また、アクセスレジスタ72にあるアクセ
スが、既にエラーやページフォールトの発生を示してい
る場合には、メモリ起動をせず、前記の情報を一時記憶
レジスタ73へ移す。
スが、既にエラーやページフォールトの発生を示してい
る場合には、メモリ起動をせず、前記の情報を一時記憶
レジスタ73へ移す。
【0038】 リードデータ受信とデータ,応答バス
占有要求 主メモリ10からメモリバス11を介してリードデータ
154を受取ると共に、アクセスの種類(FUNC)と
リターンコード(RC)を共通バス送出用レジスタ74
へ移す。
占有要求 主メモリ10からメモリバス11を介してリードデータ
154を受取ると共に、アクセスの種類(FUNC)と
リターンコード(RC)を共通バス送出用レジスタ74
へ移す。
【0039】一方、共通バス50に対してはデータバス
占有要求52と応答バス占有要求53を出力する。
占有要求52と応答バス占有要求53を出力する。
【0040】 リードデータ,応答バス転送 の占有要求52,53が受付けられたら、リードデー
タ(154)をバス155を介してデータバス56に転
送し、また、終了信号とリターンコード(RC)をバス
156を介して応答バス57に転送し、それぞれアクセ
ス元のプロセッサに返す。
タ(154)をバス155を介してデータバス56に転
送し、また、終了信号とリターンコード(RC)をバス
156を介して応答バス57に転送し、それぞれアクセ
ス元のプロセッサに返す。
【0041】(B):ライト処理ステージの動作 ′ 共通バス50からライト起動受信 起動バス55上の仮想アドレス(VA),アクセスの種
類(FUNC),アクセスキー(AKEY)及びデータ
バス56上のライトデータ(WD)を共通バス受信用レ
ジスタ71に取込む。
類(FUNC),アクセスキー(AKEY)及びデータ
バス56上のライトデータ(WD)を共通バス受信用レ
ジスタ71に取込む。
【0042】′ アドレス変換とプロテクションチェ
ック ライトデータ(WD)をアクセスレジスタ72にセット
することを除いて、リード処理ステージ(A)のと同
じ動作をする。
ック ライトデータ(WD)をアクセスレジスタ72にセット
することを除いて、リード処理ステージ(A)のと同
じ動作をする。
【0043】′ メモリライト起動 ライトデータ(WD)153を主メモリ10に転送する
ことを除いて、リード処理ステージ(A)のと同じで
ある。
ことを除いて、リード処理ステージ(A)のと同じで
ある。
【0044】′ 応答バス占有要求 アクセスの種類(FUNC)とリターンコード(RC)
を共通バス送出用レジスタ74へ移す。一方、共通バス
50に対しては、応答バス占有要求53を出力する。
を共通バス送出用レジスタ74へ移す。一方、共通バス
50に対しては、応答バス占有要求53を出力する。
【0045】′ 応答バス転送 ′の占有要求53が受付けられたら、終了信号とリタ
ーンコード(RC)をバス156を介して応答バス57
に転送し、アクセス元のプロセッサに返す。
ーンコード(RC)をバス156を介して応答バス57
に転送し、アクセス元のプロセッサに返す。
【0046】以上の様に、リードとライトの処理は各ス
テージに分けられており、異なるアクセスの処理の異な
る番号のステージは、図8(C)に示す様に並行して処
理可能である。この図では、共通バス50から(イ)4
Byteリード起動、(ロ)4Byteライト起動、(ハ)16
Byteリード起動を、それぞれタイムスロット0,1,2
で受取って処理している。そしてタイムスロット2の場
合を見ると、(イ)のメモリリード起動と、(ロ)の
アドレス変換とプロテクションのチェック′と、
(ハ)の共通バスからのリード起動受信を並行して行
っている。ここで、(ハ)の16Byteリードは(イ)の
4Byteリードに比べて、〜のステージを4回繰り返
しているが、これは4Byteを単位としたメモリインタリ
ープを行っているためである。以下、これについて説明
する。
テージに分けられており、異なるアクセスの処理の異な
る番号のステージは、図8(C)に示す様に並行して処
理可能である。この図では、共通バス50から(イ)4
Byteリード起動、(ロ)4Byteライト起動、(ハ)16
Byteリード起動を、それぞれタイムスロット0,1,2
で受取って処理している。そしてタイムスロット2の場
合を見ると、(イ)のメモリリード起動と、(ロ)の
アドレス変換とプロテクションのチェック′と、
(ハ)の共通バスからのリード起動受信を並行して行
っている。ここで、(ハ)の16Byteリードは(イ)の
4Byteリードに比べて、〜のステージを4回繰り返
しているが、これは4Byteを単位としたメモリインタリ
ープを行っているためである。以下、これについて説明
する。
【0047】図10は主メモリ10の構成の一例を示し
た図であり、メモリポード(MB)14(14a〜14
d)は4Byteのデータ幅で構成され、各メモリポード1
4a,14b,14c,14dは4Byte単位に付加され
たアドレスの下位2bit が00,01,10,11であ
るデータを持っている。そして16Byteのデータは、4
Byteずつのデータがメモリポード14a,14b,14
c,14d上にあるため、16Byteリードではメモリポ
ード14で競合をおこすこと無く、図8(C)の様に連続
してメモリポードを起動し、リードデータを読み出して
来ることが可能となる。この様な16Byteリードは、主
にキャッシュミス時にキャッシュメモリへデータを送る
ブロック転送に使用される。
た図であり、メモリポード(MB)14(14a〜14
d)は4Byteのデータ幅で構成され、各メモリポード1
4a,14b,14c,14dは4Byte単位に付加され
たアドレスの下位2bit が00,01,10,11であ
るデータを持っている。そして16Byteのデータは、4
Byteずつのデータがメモリポード14a,14b,14
c,14d上にあるため、16Byteリードではメモリポ
ード14で競合をおこすこと無く、図8(C)の様に連続
してメモリポードを起動し、リードデータを読み出して
来ることが可能となる。この様な16Byteリードは、主
にキャッシュミス時にキャッシュメモリへデータを送る
ブロック転送に使用される。
【0048】Iユニット43やEユニット44が命令キ
ャッシュ41やデータキャッシュ42をアクセスする場
合は、16Byteよりもっと小さな単位(この例では4By
teとする。)で行うので、この16Byteリード時にはI
ユニット43やEユニット44が必要とした4Byteのデ
ータが残りのデータより早く渡される様に制御し、アク
セス時間を短縮する。そしてこのためには、図10
(B)のごとくアドレスに応じて、MCU12から起動
をかけるメモリポード14の順番を変更すれば良い。
ャッシュ41やデータキャッシュ42をアクセスする場
合は、16Byteよりもっと小さな単位(この例では4By
teとする。)で行うので、この16Byteリード時にはI
ユニット43やEユニット44が必要とした4Byteのデ
ータが残りのデータより早く渡される様に制御し、アク
セス時間を短縮する。そしてこのためには、図10
(B)のごとくアドレスに応じて、MCU12から起動
をかけるメモリポード14の順番を変更すれば良い。
【0049】次に、アドレス変換とプロテクションチェ
ックについて詳細に説明する。
ックについて詳細に説明する。
【0050】図11は、図9のアドレス変換装置75を
中心として更に詳細に示した構成図であり、図12は、
アドレス変換の動作フローを示したものである。
中心として更に詳細に示した構成図であり、図12は、
アドレス変換の動作フローを示したものである。
【0051】仮想アドレスから物理アドレスへの変換テ
ーブル130は、そのメモリ容量が大きいので、主メモ
リ10の一部に置かれている。しかし、メモリアクセス
が発生するたびに、仮想アドレスを物理アドレス変換す
るために、主メモリ10をアクセスしていてはオーバー
ヘッドが大きくなるため、最近アクセスしたアドレス変
換情報を格納しておくTLB110がMCU12に設けられて
いる。
ーブル130は、そのメモリ容量が大きいので、主メモ
リ10の一部に置かれている。しかし、メモリアクセス
が発生するたびに、仮想アドレスを物理アドレス変換す
るために、主メモリ10をアクセスしていてはオーバー
ヘッドが大きくなるため、最近アクセスしたアドレス変
換情報を格納しておくTLB110がMCU12に設けられて
いる。
【0052】TLB110には、アドレス変換テーブル
130の内、最近使用されたページの内容が格納されて
おり、高速にアドレス変換が行なえるようになってい
る。TLB110における各ページの内容は、有効ビット(V)
111,コネクタ(C)ビット112,仮想アドレスの一
部(VPA)113,物理アドレスの一部(PPA)114,実行
プロテクションビット(EP)115およびストレージ
キー(SKEY)116からなっている。Vビット111
とCビット112は、該当ページの現在の状態を示し、
Vビット111が「0」の場合は、TLB110の該当ページ
の内容が有効なデータでない(無効)ことを示す。
130の内、最近使用されたページの内容が格納されて
おり、高速にアドレス変換が行なえるようになってい
る。TLB110における各ページの内容は、有効ビット(V)
111,コネクタ(C)ビット112,仮想アドレスの一
部(VPA)113,物理アドレスの一部(PPA)114,実行
プロテクションビット(EP)115およびストレージ
キー(SKEY)116からなっている。Vビット111
とCビット112は、該当ページの現在の状態を示し、
Vビット111が「0」の場合は、TLB110の該当ページ
の内容が有効なデータでない(無効)ことを示す。
【0053】Vビット111とCビット112が共に
「1」の場合は、該当ページが、現在主メモリ10と外
部メモリ20との間で転送されていること、すなわち、
ページング中であることを示し、Vビット111が
「1」で、Cビット112が「0」の場合は、該当ペー
ジが主メモリ10にあり、メモリアクセス可能なことを
示している。
「1」の場合は、該当ページが、現在主メモリ10と外
部メモリ20との間で転送されていること、すなわち、
ページング中であることを示し、Vビット111が
「1」で、Cビット112が「0」の場合は、該当ペー
ジが主メモリ10にあり、メモリアクセス可能なことを
示している。
【0054】このように、ページング中である状態を付
加しているのは、ページングを行っているエリアをFC
P22からのページングアクセス以外のアクセスができ
ないようにするためである。
加しているのは、ページングを行っているエリアをFC
P22からのページングアクセス以外のアクセスができ
ないようにするためである。
【0055】本システムでは、仮想アドレスから物理ア
ドレスへのアドレス変換を、MCU12で、各プロセッサに
共通に行わせているので、FCP22によりページング
を行っているアクセスであっても、同じアドレス変換装
置75を経由することになり、そのページング中のエリ
アを他のプロセッサがアクセスすることを許可すると、
データの破壊や喪失につながる。従って、上記した如
く、Vビット111とCビット112が共に「1」を示
している場合には、FCP22からのページングアクセ
スのみ許可することにより、上記の不都合を解決してい
るのである。
ドレスへのアドレス変換を、MCU12で、各プロセッサに
共通に行わせているので、FCP22によりページング
を行っているアクセスであっても、同じアドレス変換装
置75を経由することになり、そのページング中のエリ
アを他のプロセッサがアクセスすることを許可すると、
データの破壊や喪失につながる。従って、上記した如
く、Vビット111とCビット112が共に「1」を示
している場合には、FCP22からのページングアクセ
スのみ許可することにより、上記の不都合を解決してい
るのである。
【0056】次に仮想アドレスの一部(VPA)113
は、TLB110でアドレス変換を行う際に、該当する仮想ア
ドレス(VA)の変換対がTLB110に登録されているか否
かをチェックするためのものであり、また、物理アドレ
スの一部(PPA)114はTLB110に変換対があった時
に、物理アドレス(PA)を作成するためのものであ
る。
は、TLB110でアドレス変換を行う際に、該当する仮想ア
ドレス(VA)の変換対がTLB110に登録されているか否
かをチェックするためのものであり、また、物理アドレ
スの一部(PPA)114はTLB110に変換対があった時
に、物理アドレス(PA)を作成するためのものであ
る。
【0057】仮想アドレス(VA)は、セグメントアド
レス(SA)121,ページアドレス(PA)122,ペー
ジ内アドレス(DISP)123からなり、上記の物理ア
ドレスの一部(PPA)114は、ページ内アドレス(D
ISP)123と連なって物理アドレス(PA)を作
る。
レス(SA)121,ページアドレス(PA)122,ペー
ジ内アドレス(DISP)123からなり、上記の物理ア
ドレスの一部(PPA)114は、ページ内アドレス(D
ISP)123と連なって物理アドレス(PA)を作
る。
【0058】実行プロテクションビット115(EP)
は、データに対し誤まって命令読出し、実行することを
防ぐためのものであり、プロテクションチェック回路7
6でこのビットが「1」のエリアに対して命令読出しす
ると実行プロテクションエラーとなる。従って本構成例
の様に、JOBP40で命令キャッシュ41とデータキャッシ
ュ42が分かれている場合には、命令キャッシュ41か
らのこのエリアに対するアクセスは、全て実行プロテク
トエラーとなる。
は、データに対し誤まって命令読出し、実行することを
防ぐためのものであり、プロテクションチェック回路7
6でこのビットが「1」のエリアに対して命令読出しす
ると実行プロテクションエラーとなる。従って本構成例
の様に、JOBP40で命令キャッシュ41とデータキャッシ
ュ42が分かれている場合には、命令キャッシュ41か
らのこのエリアに対するアクセスは、全て実行プロテク
トエラーとなる。
【0059】ストレージキー(SKEY)116は、ライ
トプロテクションを行うためのもので、要求元プロセッ
サから伝送されてきたアクセスキー(AKEY)と共に
プロテクションチェック回路76により、ライトアクセ
スが許可されるか、禁止されるかを調べられ、後者の場
合はライトプロテクトエラーとなる。
トプロテクションを行うためのもので、要求元プロセッ
サから伝送されてきたアクセスキー(AKEY)と共に
プロテクションチェック回路76により、ライトアクセ
スが許可されるか、禁止されるかを調べられ、後者の場
合はライトプロテクトエラーとなる。
【0060】アクセスキー(AKEY)は、この様にSK
EY116 との比較によるライトプロテクトエラーのチェッ
クに使う他、ECP22からのページングアクセスか否
かの情報や、命令読出してあるか否かの情報を含んでお
り、これらのプロテクトチェックにも使用する。
EY116 との比較によるライトプロテクトエラーのチェッ
クに使う他、ECP22からのページングアクセスか否
かの情報や、命令読出してあるか否かの情報を含んでお
り、これらのプロテクトチェックにも使用する。
【0061】次に、変換過程を、図12のフローチャー
トを参照して順次説明する。
トを参照して順次説明する。
【0062】メモリアクセスの種類は大きく次の2つに
分けられる。すなわち、 (1)一般のプロセッサによるメモリアクセス (2)FCP22によるページング時のメモリアクセス の2つである。この(1),(2)のアクセスの区別は、ア
クセスキーAKEY上にあり、信号線140を経由して
アドレス変換コントローラ125に伝えられる。まず、
一般的な(1)の場合のメモリアクセスのアドレス変換や
アクセス許可の判定について説明する。
分けられる。すなわち、 (1)一般のプロセッサによるメモリアクセス (2)FCP22によるページング時のメモリアクセス の2つである。この(1),(2)のアクセスの区別は、ア
クセスキーAKEY上にあり、信号線140を経由して
アドレス変換コントローラ125に伝えられる。まず、
一般的な(1)の場合のメモリアクセスのアドレス変換や
アクセス許可の判定について説明する。
【0063】あるプロセッサ(JOBP40又はIOP30)
から出力された仮想アドレスは、共通バス50を経由し
てMCU12内の共通バス受信用レジスタ71内の仮想
アドレスレジスタ120にセットされる。この仮想アド
レスレジスタ120にセットされた仮想アドレスは、セ
グメントアドレス(SA)121及びページアドレス(P
A)122の一部分120−2をアドレスとしてまずTLB
110をアクセスする。これにより読み出されたTLB110の
エントリのVビット111およびCビット112は、アド
レス変換コントローラ125に伝えられ、そのパターン
により、その後の処理が次の〜のように3つに分か
れる。
から出力された仮想アドレスは、共通バス50を経由し
てMCU12内の共通バス受信用レジスタ71内の仮想
アドレスレジスタ120にセットされる。この仮想アド
レスレジスタ120にセットされた仮想アドレスは、セ
グメントアドレス(SA)121及びページアドレス(P
A)122の一部分120−2をアドレスとしてまずTLB
110をアクセスする。これにより読み出されたTLB110の
エントリのVビット111およびCビット112は、アド
レス変換コントローラ125に伝えられ、そのパターン
により、その後の処理が次の〜のように3つに分か
れる。
【0064】これは、図12のフローのステップ(F0
5)に相当している。
5)に相当している。
【0065】 Vビット111=0,Cビット112
=0の時 これは、図12で、「0,0」と表示したところであ
り、前述した如く、TLB110の該当ページ(エントリ)は
無効であり、主メモリ10上の変換テーブル130を読
み出す(F10)。
=0の時 これは、図12で、「0,0」と表示したところであ
り、前述した如く、TLB110の該当ページ(エントリ)は
無効であり、主メモリ10上の変換テーブル130を読
み出す(F10)。
【0066】この時、すなわち、TLBミス時の詳細な
動作は後述する。
動作は後述する。
【0067】 Vビット111=1,Cビット112
=1の時 図12で「1,1」の時であるが、この時、仮想アドレ
スの一部分120−1とTLB110の仮想アドレスの一部分
VPA113をコンパレータ124で比較した結果、一致し、
TLBヒット信号141が出力されていれば(F20
5)、該当ページは現在ページング中であることを示し
ているので、そのメモリアクセスを禁止し、アドレス変
換コントローラ125よりミッシングページフォールト
信号142を出力する(F45)。
=1の時 図12で「1,1」の時であるが、この時、仮想アドレ
スの一部分120−1とTLB110の仮想アドレスの一部分
VPA113をコンパレータ124で比較した結果、一致し、
TLBヒット信号141が出力されていれば(F20
5)、該当ページは現在ページング中であることを示し
ているので、そのメモリアクセスを禁止し、アドレス変
換コントローラ125よりミッシングページフォールト
信号142を出力する(F45)。
【0068】TLBヒット信号141が出力されていな
い時は、TLBミスであるのでと同様に、主メモリ1
0上の変換テーブル130を読み出す(F10)。
い時は、TLBミスであるのでと同様に、主メモリ1
0上の変換テーブル130を読み出す(F10)。
【0069】 Vビット111=1,Cビット112
=0の時 図12で、「1,0」の時であるが、まず、TLBヒッ
ト信号141がチェックされ(F30)、出力されてい
ない時は、プロテクションチェック回路76からのプロ
テクトエラー信号143をチェックし、エラーが発生し
ていなければ、仮想アドレスレジスタ120のページ内
アドレス部123とTLB110上の物理アドレスの一部11
4を連結して物理アドレスをセレクタ128を介しアク
セスレジスタ72上に作成し、その物理アドレスをメモ
リアドレスバス152に送り、主メモリ10をアクセス
するためメモリコントローラ77よりメモリ起動信号15
1を出力する(F40)。
=0の時 図12で、「1,0」の時であるが、まず、TLBヒッ
ト信号141がチェックされ(F30)、出力されてい
ない時は、プロテクションチェック回路76からのプロ
テクトエラー信号143をチェックし、エラーが発生し
ていなければ、仮想アドレスレジスタ120のページ内
アドレス部123とTLB110上の物理アドレスの一部11
4を連結して物理アドレスをセレクタ128を介しアク
セスレジスタ72上に作成し、その物理アドレスをメモ
リアドレスバス152に送り、主メモリ10をアクセス
するためメモリコントローラ77よりメモリ起動信号15
1を出力する(F40)。
【0070】次に(2)のFCP22によるページング時
のメモリアクセスについて説明する。
のメモリアクセスについて説明する。
【0071】FCP22より出力された仮想アドレス
は、共通バス50を経由してMCU12 内の仮想アドレスレ
ジスタ120にセットされる。
は、共通バス50を経由してMCU12 内の仮想アドレスレ
ジスタ120にセットされる。
【0072】この場合も、まずTLB110をアクセスし、ア
クセスしたTLB110のエントリのVビット111及びCビ
ット112のパターンにより、先程と同様にその後の処
理が3つに分かれる。
クセスしたTLB110のエントリのVビット111及びCビ
ット112のパターンにより、先程と同様にその後の処
理が3つに分かれる。
【0073】 Vビット111=0,Cビット112
=0の時 主メモリ10の変換テーブル130の読み出しを行う
(F10)。
=0の時 主メモリ10の変換テーブル130の読み出しを行う
(F10)。
【0074】 Vビット111=1,Cビット112
=1の時 この時、TLBヒット信号141がチェックされる(F
30)。TLBヒットを示していれば、アクセスレジス
タ72上に作成された物理アドレスで主メモリ10をア
クセスする(F40)。
=1の時 この時、TLBヒット信号141がチェックされる(F
30)。TLBヒットを示していれば、アクセスレジス
タ72上に作成された物理アドレスで主メモリ10をア
クセスする(F40)。
【0075】TLBヒット信号が出ていない場合は、メ
モリ10の変換テーブル130を読み出す(F10)。
モリ10の変換テーブル130を読み出す(F10)。
【0076】 Vビット=1,Cビット112=0の
時 TLBヒット信号141がチェックされる(F21
5)。
時 TLBヒット信号141がチェックされる(F21
5)。
【0077】TLBヒット信号141が出ている時は、
禁止区域をアクセスしていることになるので、FCP2
2にエラーを知らせる(F220)。
禁止区域をアクセスしていることになるので、FCP2
2にエラーを知らせる(F220)。
【0078】次に、TLBミスの場合の、主メモリ10
上の変換テーブル130を読み出す時の処理を説明す
る。
上の変換テーブル130を読み出す時の処理を説明す
る。
【0079】変換テーブル130は、テーブルに必要な
メモリ容量を減らすため、アドレス変換に必要な情報を
有するページテーブル132と、そのページテーブル1
32の先頭アドレスを保持するセグメントテーブル13
1から成る。TLBミス時には、まずセグメントテーブ
ルの先頭アドレスを保持するレジスタ126(STOR)の内容
と、仮想アドレスレジスタ120のセグメントアドレス
(SA)121をアダー127で加算して物理アドレスを
作り、それでセグメントテーブル131の該当する位置
の内容をリードデータバス155上に読み出して来る。
このデータには、ページテーブル132の先頭のアドレ
スが保持されており、この値と、仮想アドレスレジスタ
120のページアドレス(PA)122をアダー127で
加算してアドレスを作り、ページテーブル132から変
換に必要な情報を読み出す(F10)。
メモリ容量を減らすため、アドレス変換に必要な情報を
有するページテーブル132と、そのページテーブル1
32の先頭アドレスを保持するセグメントテーブル13
1から成る。TLBミス時には、まずセグメントテーブ
ルの先頭アドレスを保持するレジスタ126(STOR)の内容
と、仮想アドレスレジスタ120のセグメントアドレス
(SA)121をアダー127で加算して物理アドレスを
作り、それでセグメントテーブル131の該当する位置
の内容をリードデータバス155上に読み出して来る。
このデータには、ページテーブル132の先頭のアドレ
スが保持されており、この値と、仮想アドレスレジスタ
120のページアドレス(PA)122をアダー127で
加算してアドレスを作り、ページテーブル132から変
換に必要な情報を読み出す(F10)。
【0080】このページテーブル132には、Mビット
の他、TLB110内の、Vビット111と仮想アドレスの一
部113(VPA)を除く情報を含んでおり、このMビッ
トとCビットがリードデータバス155の一部155−
1を介してアドレス変換コントローラ125に入力さ
れ、これらのビットパターンにより次の様な処理を取
る。
の他、TLB110内の、Vビット111と仮想アドレスの一
部113(VPA)を除く情報を含んでおり、このMビッ
トとCビットがリードデータバス155の一部155−
1を介してアドレス変換コントローラ125に入力さ
れ、これらのビットパターンにより次の様な処理を取
る。
【0081】(a)Mビット=0,Cビット=0の時 該当ページは主メモリ10上に無く、外部メモリ20上
にあることを示しており、このページのアクセス要求に
対してはミッシングページフォールト信号142を出し
て、該当プロセッサにページフォールトを知らせる(F
45)。
にあることを示しており、このページのアクセス要求に
対してはミッシングページフォールト信号142を出し
て、該当プロセッサにページフォールトを知らせる(F
45)。
【0082】(b)Mビット=0,Cビット=1の時 該当ビットは現在ページング中であることを示している
ので、FCP22以外のメモリアクセスに対してはその
メモリアクセスを禁止し、ミッシングページフォールト
信号142を出す(F45)。FCP22からのメモリ
アクセスの場合は、TLB110に登録してアクセスを行う
(F20)。
ので、FCP22以外のメモリアクセスに対してはその
メモリアクセスを禁止し、ミッシングページフォールト
信号142を出す(F45)。FCP22からのメモリ
アクセスの場合は、TLB110に登録してアクセスを行う
(F20)。
【0083】(c)Mビット=1,Cビット=0の時 読み出されたリードデータの一部155−2と仮想アド
レスの一部120−1、及びVビット「1」がTLB110に
登録され(F20)、V,Cビットのチェックルーチン
に戻る。
レスの一部120−1、及びVビット「1」がTLB110に
登録され(F20)、V,Cビットのチェックルーチン
に戻る。
【0084】以上述べたように、アドレス変換装置75
は、各プロセッサからの仮想アドレスによるメモリアク
セスに対し、仮想アドレスから物理アドレスへのアドレ
ス変換を集中して実施することが可能でアドレス変換の
制御が単純となる。
は、各プロセッサからの仮想アドレスによるメモリアク
セスに対し、仮想アドレスから物理アドレスへのアドレ
ス変換を集中して実施することが可能でアドレス変換の
制御が単純となる。
【0085】また、FCP22からのアクセスと、他の
プロセッサからのアクセスとの制御方式を変更すること
により、ページング中のページに対する他のプロセッサ
からのアクセスを禁止することが可能で、データの保全
が可能となる。
プロセッサからのアクセスとの制御方式を変更すること
により、ページング中のページに対する他のプロセッサ
からのアクセスを禁止することが可能で、データの保全
が可能となる。
【0086】次に、ミッシングページフォールト時の動
作について説明する。
作について説明する。
【0087】ページフォールト信号を要求元プロセッサ
が受取った時には、その時に実行していたタスクを中断
し、要求したアドレスを含むページを主メモリ10にロ
ードするために、FCP22に起動をかける。FCP2
2はこの起動を受けて、該当ページを読み出し、これが
完了すると終了割込みを発生する。この時には必要なペ
ージは主メモリ10上にロールインされているために、
前記中断されたタスクを再開する。このタスクが中断さ
りている間、当該プロセッサは他のタスクを実行する。
が受取った時には、その時に実行していたタスクを中断
し、要求したアドレスを含むページを主メモリ10にロ
ードするために、FCP22に起動をかける。FCP2
2はこの起動を受けて、該当ページを読み出し、これが
完了すると終了割込みを発生する。この時には必要なペ
ージは主メモリ10上にロールインされているために、
前記中断されたタスクを再開する。このタスクが中断さ
りている間、当該プロセッサは他のタスクを実行する。
【0088】次に命令キャッシュ41とデータキャッシ
ュ42について説明する。図13は命令キャッシュ41
の構成例を示した図である。主メモリ10からコピーし
て来たデータがキャッシュデータ部81−I上にあり、
そのデータのアドレスがディレクトリィ82−Iと無効
化ディレクトリィ83−Iにあり、またこれらが有効か
否かを示す情報が有効ビットレジスタ84−Iにある。
ディレクトリィ82−Iと無効化ディレクトリィ83−
Iの内容は同じであり、性能を高めるため分けてある。
前者はIユニット43がアクセスしたデータがキャッシ
ュデータ部81−Iにあるか否かのチェックに使用し、
後者は他のプロセッサが主メモリ10に書込んだデータ
がキャッシュデータ部81−Iに取込まれている場合
に、既にそのデータは古くなっているので無効化しなけ
ればならない(これを無効化処理と呼ぶ)が、そのため
のチェックに使用する。
ュ42について説明する。図13は命令キャッシュ41
の構成例を示した図である。主メモリ10からコピーし
て来たデータがキャッシュデータ部81−I上にあり、
そのデータのアドレスがディレクトリィ82−Iと無効
化ディレクトリィ83−Iにあり、またこれらが有効か
否かを示す情報が有効ビットレジスタ84−Iにある。
ディレクトリィ82−Iと無効化ディレクトリィ83−
Iの内容は同じであり、性能を高めるため分けてある。
前者はIユニット43がアクセスしたデータがキャッシ
ュデータ部81−Iにあるか否かのチェックに使用し、
後者は他のプロセッサが主メモリ10に書込んだデータ
がキャッシュデータ部81−Iに取込まれている場合
に、既にそのデータは古くなっているので無効化しなけ
ればならない(これを無効化処理と呼ぶ)が、そのため
のチェックに使用する。
【0089】次に、この命令キャッシュ41の動作につ
いて説明する。なお、命令キャッシュ41はデータキャ
ッシュ42とは異なり、ライトアクセスは処理しない。
いて説明する。なお、命令キャッシュ41はデータキャ
ッシュ42とは異なり、ライトアクセスは処理しない。
【0090】図14はリードアクセスのキャッシュミス
時のフロー、図15は無効化処理のフローを示してい
る。
時のフロー、図15は無効化処理のフローを示してい
る。
【0091】(1)リードアクセス(図14参照) Iユニット43から起動信号91−Iが来たら、仮
想アドレス92−Iの一部、ここではビット(18−2
7)でディレクトリィ82−Iと有効ビットレジスタ8
4−Iの内容を読み出し、ディレクトリィ82−Iの内
容と仮想アドレス92−Iのビット(0−17)をコン
パレータ160−Iで一致チェックを行い、またその内
容をパリティチェッカー161−Iでチェックする。そ
してコンパレータ160−Iが一致を示し、パリティエ
ラーが発生してなく、かつ有効ビットレジスタ84−I
が有効であることを示しているならば、ゲート169−
Iを介してキャッシュヒット信号170−Iが命令キャ
ッシュコントローラ162−Iに出され、命令キャッシ
ュコントローラ162−Iは、仮想アドレスのビット
(18−29)でアクセスされたキャッシュデータ部8
1−Iの内容を、リードデータバス94−Iに乗せると
共に、Iユニット43に対して終了信号93−Iを返
す。
想アドレス92−Iの一部、ここではビット(18−2
7)でディレクトリィ82−Iと有効ビットレジスタ8
4−Iの内容を読み出し、ディレクトリィ82−Iの内
容と仮想アドレス92−Iのビット(0−17)をコン
パレータ160−Iで一致チェックを行い、またその内
容をパリティチェッカー161−Iでチェックする。そ
してコンパレータ160−Iが一致を示し、パリティエ
ラーが発生してなく、かつ有効ビットレジスタ84−I
が有効であることを示しているならば、ゲート169−
Iを介してキャッシュヒット信号170−Iが命令キャ
ッシュコントローラ162−Iに出され、命令キャッシ
ュコントローラ162−Iは、仮想アドレスのビット
(18−29)でアクセスされたキャッシュデータ部8
1−Iの内容を、リードデータバス94−Iに乗せると
共に、Iユニット43に対して終了信号93−Iを返
す。
【0092】 キャッシュミスの場合は、命令キャッ
シュコントローラ162−Iは、起動バス占有要求51
を出す。
シュコントローラ162−Iは、起動バス占有要求51
を出す。
【0093】 占有要求51が許可されたら、ゲート
85−Iを開き、起動バス55に仮想アドレス(V
A),アクセスの種類(FUNC),アクセスキー(A
KEY)を転送する。なお、このアクセスキー(AKE
Y)には命令読み出しであることを付加する。
85−Iを開き、起動バス55に仮想アドレス(V
A),アクセスの種類(FUNC),アクセスキー(A
KEY)を転送する。なお、このアクセスキー(AKE
Y)には命令読み出しであることを付加する。
【0094】 セット信号172−Iにより、仮想ア
ドレスのビット(0−17)をディレクトリィ82−
I,無効化ディレクトリィ83−Iへ書き込み、有効ビ
ットレジスタ84−Iをセットする。本処理をこの時点
で行う理由は後で述べる。
ドレスのビット(0−17)をディレクトリィ82−
I,無効化ディレクトリィ83−Iへ書き込み、有効ビ
ットレジスタ84−Iをセットする。本処理をこの時点
で行う理由は後で述べる。
【0095】 MCU12からデータバス56を介し
て、リードデータ(RD)が、また応答バス57を介し
て終了信号とリターンコード(アクセス中に発生したエ
ラー及びページフォールトの情報)(RC)が送られてき
たらレジスタ86−2にラッチする。MCU12の説明
でも述べたように、最初に送られて来たデータは、Iユ
ニット43がアクセスしたデータであるので、リターン
コード(RC)が次の(1)〜(3)の状態を示している時
(図14(B)に示す条件(イ)成立時、)は、Iユニ
ット43に終了信号93−Iとリードデータ94−Iと
リターンコード95−Iを返す。
て、リードデータ(RD)が、また応答バス57を介し
て終了信号とリターンコード(アクセス中に発生したエ
ラー及びページフォールトの情報)(RC)が送られてき
たらレジスタ86−2にラッチする。MCU12の説明
でも述べたように、最初に送られて来たデータは、Iユ
ニット43がアクセスしたデータであるので、リターン
コード(RC)が次の(1)〜(3)の状態を示している時
(図14(B)に示す条件(イ)成立時、)は、Iユニ
ット43に終了信号93−Iとリードデータ94−Iと
リターンコード95−Iを返す。
【0096】(1)No Error(エラーが発生していない
時、) (2)Page Fault(ページフォールトが発生した時、) (3)Soft Error(ソフトによるエラー、例えばプロテク
ションエラーが発生した時、) また、Hard Error(ハードが原因のエラー)の場合は、
再度主メモリ10をアクセスすることによって、救える
場合が多いので、リトライを行う。この為、上記の信号
を返さないが、リトライ回数が規定回数を越えた場合、
すなわち、リトライオーバーの場合には、エラー報告を
行うためには、上記の信号を返す。そして、主メモリ1
0から読み出して来たリードデータをキャッシュデータ
部81−Iに書き込む。
時、) (2)Page Fault(ページフォールトが発生した時、) (3)Soft Error(ソフトによるエラー、例えばプロテク
ションエラーが発生した時、) また、Hard Error(ハードが原因のエラー)の場合は、
再度主メモリ10をアクセスすることによって、救える
場合が多いので、リトライを行う。この為、上記の信号
を返さないが、リトライ回数が規定回数を越えた場合、
すなわち、リトライオーバーの場合には、エラー報告を
行うためには、上記の信号を返す。そして、主メモリ1
0から読み出して来たリードデータをキャッシュデータ
部81−Iに書き込む。
【0097】,, MCP12から送られてくる
残りのリードデータをキャッシュデータ部81−Iに書
込む。のステージで既にIユニット43に対しては終
了信号93−Iを戻してあるので、この間、Iユニット
43は別な動作が可能である。の段階ではこれに加え
て、〜のステージでエラーやページフォールトが発
生したかをチェックし、発生してない場合には命令キャ
ッシュ41の動作を止める。
残りのリードデータをキャッシュデータ部81−Iに書
込む。のステージで既にIユニット43に対しては終
了信号93−Iを戻してあるので、この間、Iユニット
43は別な動作が可能である。の段階ではこれに加え
て、〜のステージでエラーやページフォールトが発
生したかをチェックし、発生してない場合には命令キャ
ッシュ41の動作を止める。
【0098】 エラーやページフォールトが発生して
いる場合には、のステージセットした有効ビットレジ
スタ84−Iに対し、命令キャッシュコントローラ16
2−Iより有効ビットクリア信号171−Iを出して、
クリアしキャッシュデータ部81−Iの該当データを使
用出来ない様にする。また、のステージでHardError
を起こし且つリトライオーバしてない場合には(図14
(B)に示す条件(ア)成立)、リトライを行うため
のステージに飛ぶ。
いる場合には、のステージセットした有効ビットレジ
スタ84−Iに対し、命令キャッシュコントローラ16
2−Iより有効ビットクリア信号171−Iを出して、
クリアしキャッシュデータ部81−Iの該当データを使
用出来ない様にする。また、のステージでHardError
を起こし且つリトライオーバしてない場合には(図14
(B)に示す条件(ア)成立)、リトライを行うため
のステージに飛ぶ。
【0099】以上がリードアクセスの処理手順である
が、先程述べた様にキャッシュ(命令,データキャッシ
ュ共)では、いわゆる無効化処理が必要となる。以下、
その手順を説明する。
が、先程述べた様にキャッシュ(命令,データキャッシ
ュ共)では、いわゆる無効化処理が必要となる。以下、
その手順を説明する。
【0100】(2)無効化処理(図15参照) 起動バス55転送中の仮想アドレス(VA)とアク
セスの種類(FUNC)を毎回レジスタ87に取込む。
セスの種類(FUNC)を毎回レジスタ87に取込む。
【0101】 上記仮想アドレスのビット(18−2
7)で、無効化ディレクトリィ83−Iの内容を読出
し、無効化する必要があるか否かを無効化判定回路16
5−Iでチェックすると共に、そのアドレスのビット
(18−27)をレジスタ88−Iにセットする。
7)で、無効化ディレクトリィ83−Iの内容を読出
し、無効化する必要があるか否かを無効化判定回路16
5−Iでチェックすると共に、そのアドレスのビット
(18−27)をレジスタ88−Iにセットする。
【0102】 そして無効化が必要な場合は、レジス
タ88−Iのアドレスで該当の有効ビット84−Iをク
リアする。このため無効化判定回路165−Iから有効
ビットクリア信号171−Iを出す。
タ88−Iのアドレスで該当の有効ビット84−Iをク
リアする。このため無効化判定回路165−Iから有効
ビットクリア信号171−Iを出す。
【0103】次に無効化が必要な場合を詳細に説明す
る。また、無効化は、起動バス55から取込んだアクセ
スの種類(FUNC)がライトアクセスを示し、それが
他からのものである時行う。そして、次に示す条件のい
ずれかを満たした時に無効化を行う。
る。また、無効化は、起動バス55から取込んだアクセ
スの種類(FUNC)がライトアクセスを示し、それが
他からのものである時行う。そして、次に示す条件のい
ずれかを満たした時に無効化を行う。
【0104】(a)レジスタ87−Iのアドレスのビット
(18−27)で無効化ディレクトリィ83−Iを読出
し、その内容とアドレスのビット(0−17)をコンパ
レータ163−Iで比較し、一致した時。
(18−27)で無効化ディレクトリィ83−Iを読出
し、その内容とアドレスのビット(0−17)をコンパ
レータ163−Iで比較し、一致した時。
【0105】(b)無効化ディレクトリィ83−Iを読出
した際に、パリティチェッカ164−Iでパリティエラ
ーが検出された時。
した際に、パリティチェッカ164−Iでパリティエラ
ーが検出された時。
【0106】(c)無効化ディレクトリィ83−IをJO
BP4内で使用している時(にチェックが出来ないた
め)。
BP4内で使用している時(にチェックが出来ないた
め)。
【0107】以上無効化処理について述べたが、次に
(1)のリードアクセスのステージでディレクトリィ8
2−I,無効化ディレクトリィ83−Iへアドレスを書
込み、有効ビットレジスタ84−Iをセットしなければ
ならない理由を明らかにする。図16はリードアクセス
がキャッシュミスになり、主メモリ10をリードに行く
場合と、主メモリ10に対して他からライトアクセスが
行われた場合のキャッシュの無効化処理が競合した時
に、各部分がどの様に使用されるかをタイムチャートで
示している。無効化処理については斜線で示してあり、
それぞれタイムスロット1と3で起動バス55,データ
バス56を転送中のライトアクセスに対して、タイムス
ロット2と4で無効化ディレクトリィ83−Iのチェッ
クを行い、タイムスロット3と5の前半で有効ビットレ
ジスタ84−Iをクリアし無効化している。一方、キャ
ッシュミスとなったリードアクセスは、タイムスロット
2で起動バス55にアドレスを転送しているので、主メ
モリ10へのアクセスの順番としては、タイムスロット
1で起動バス55を転送中のライトアクセスより後で、
タイムスロット3で起動バス55を転送中のライトアク
セスより前となる。従って、キャッシュと主メモリ10
のデータの一致を保つためには、ライトアクセスが無効
化ディレクトリィ83−Iをチェックするタイムスロッ
ト2と4の間で、キャッシュを起こしたリードアクセス
のアドレスを無効化ディレクトリィ83−Iに書込まな
ければならないし、またチェックの結果、有効ビットレ
ジスタ84−Iを無効化するタイムスロット3と5の間
で、有効ビットレジスタ84−Iをセットする必要があ
る。これらの制御が必要な理由は、主メモリ10で複数
のメモリアクセスを同時に処理しているからである。
(1)のリードアクセスのステージでディレクトリィ8
2−I,無効化ディレクトリィ83−Iへアドレスを書
込み、有効ビットレジスタ84−Iをセットしなければ
ならない理由を明らかにする。図16はリードアクセス
がキャッシュミスになり、主メモリ10をリードに行く
場合と、主メモリ10に対して他からライトアクセスが
行われた場合のキャッシュの無効化処理が競合した時
に、各部分がどの様に使用されるかをタイムチャートで
示している。無効化処理については斜線で示してあり、
それぞれタイムスロット1と3で起動バス55,データ
バス56を転送中のライトアクセスに対して、タイムス
ロット2と4で無効化ディレクトリィ83−Iのチェッ
クを行い、タイムスロット3と5の前半で有効ビットレ
ジスタ84−Iをクリアし無効化している。一方、キャ
ッシュミスとなったリードアクセスは、タイムスロット
2で起動バス55にアドレスを転送しているので、主メ
モリ10へのアクセスの順番としては、タイムスロット
1で起動バス55を転送中のライトアクセスより後で、
タイムスロット3で起動バス55を転送中のライトアク
セスより前となる。従って、キャッシュと主メモリ10
のデータの一致を保つためには、ライトアクセスが無効
化ディレクトリィ83−Iをチェックするタイムスロッ
ト2と4の間で、キャッシュを起こしたリードアクセス
のアドレスを無効化ディレクトリィ83−Iに書込まな
ければならないし、またチェックの結果、有効ビットレ
ジスタ84−Iを無効化するタイムスロット3と5の間
で、有効ビットレジスタ84−Iをセットする必要があ
る。これらの制御が必要な理由は、主メモリ10で複数
のメモリアクセスを同時に処理しているからである。
【0108】なお本構成例では、アドレス情報を2ケ
所、すなわちディレクトリィ82−Iと無効化ディレク
トリィ83−Iに持っているため、無効化ディレクトリ
ィ83−Iのほうしか上記の制約を受けないが、ディレ
クトリィを1ケ所に持つ場合は、当然上記の制約を受け
る。
所、すなわちディレクトリィ82−Iと無効化ディレク
トリィ83−Iに持っているため、無効化ディレクトリ
ィ83−Iのほうしか上記の制約を受けないが、ディレ
クトリィを1ケ所に持つ場合は、当然上記の制約を受け
る。
【0109】次にデータキャッシュ42について説明す
る。図17はデータキャッシュ42の構成例を示した図
であり、無効化処理の回路180−Dは命令キャッシュ
41と同じであるため省略してある。
る。図17はデータキャッシュ42の構成例を示した図
であり、無効化処理の回路180−Dは命令キャッシュ
41と同じであるため省略してある。
【0110】尚図13と図17で、サフィックスが違う
だけのものは相当物である。図13の命令キャッシュで
はサフィックスにI、図17のデータキャッシュではサ
フィックスにDを使用している。命令キャッシュ41と
の大きな違いは、ライトアクセスをサポートしなければ
ならない点であり、このライトアクセス時間を短縮する
ために共通バス送出用のバッファ89−Dを設け、ライ
ト時には仮想アドレス92−D,ライトデータ95−
D,制御情報96−Dをこのバッファ89−Dにセット
しただけで、終了信号93−DをEユニット44に返
し、Eユニット44が次の処理を出来る様に制御してい
る。
だけのものは相当物である。図13の命令キャッシュで
はサフィックスにI、図17のデータキャッシュではサ
フィックスにDを使用している。命令キャッシュ41と
の大きな違いは、ライトアクセスをサポートしなければ
ならない点であり、このライトアクセス時間を短縮する
ために共通バス送出用のバッファ89−Dを設け、ライ
ト時には仮想アドレス92−D,ライトデータ95−
D,制御情報96−Dをこのバッファ89−Dにセット
しただけで、終了信号93−DをEユニット44に返
し、Eユニット44が次の処理を出来る様に制御してい
る。
【0111】次に、このデータキャッシュ42の動作に
ついて説明する。但し、リードアクセスの処理は命令キ
ャッシュ41と同じであるので省略する。
ついて説明する。但し、リードアクセスの処理は命令キ
ャッシュ41と同じであるので省略する。
【0112】(3)ライトアクセス(図18参照)。
【0113】 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)で示される位置にデータを書
込む。
が来たら、仮想アドレス92−D,ライトデータ95−
D,制御情報96−D(アクセスの種類,アクセスキー
等)を共通バス送出用バッファ89−Dにセットし、E
ユニット44に対して終了信号93−Dを返す。この
際、ディレクトリィ82−Dと有効ビットレジスタ84
−Dをチェックしキャッシュヒット(信号170−Dが
出てる)ならば、キャッシュデータ部81の仮想アドレ
スのビット(18−27)で示される位置にデータを書
込む。
【0114】 データキャッシュコントローラ162
−Dより起動バス占有要求51,データバス占有要求5
2を出す。
−Dより起動バス占有要求51,データバス占有要求5
2を出す。
【0115】 両方の占有要求が許可されたら、ゲー
ト85−Dを開き起動バス55に仮想アドレス(V
A),アクセスの種類(FUNC),アクセスキー(A
KEY)を転送し、データバス56にはライトデータを
転送する。
ト85−Dを開き起動バス55に仮想アドレス(V
A),アクセスの種類(FUNC),アクセスキー(A
KEY)を転送し、データバス56にはライトデータを
転送する。
【0116】 MCU12から応答バス57を通して
終了信号とリターンコードが送られてきたらレジスタ8
6−Dにラッチする。そしてリターンコードをチェック
し、エラーやページフォールトを起こしてない時には共
通バス送出用バッファ89−Dからそのアクセスを取り
除き、処理を終了する。一方、図14(B)に示した
(ア)の条件、すなわちHard Errorが発生しかつリトラ
イオーバしてない時には、リトライを行うためのステ
ージに飛ぶ。
終了信号とリターンコードが送られてきたらレジスタ8
6−Dにラッチする。そしてリターンコードをチェック
し、エラーやページフォールトを起こしてない時には共
通バス送出用バッファ89−Dからそのアクセスを取り
除き、処理を終了する。一方、図14(B)に示した
(ア)の条件、すなわちHard Errorが発生しかつリトラ
イオーバしてない時には、リトライを行うためのステ
ージに飛ぶ。
【0117】 上記以外の場合には、共通バス送出用
バッファ89−Dのアドレスで有効ビットレジスタ24
−Dをクリアすると共に、Eユニット44に対してエラ
ー,ページフォールトの発生を報告する。有効ビットレ
ジスタ84−Dをクリアする理由は、例えばプロテクシ
ョンエラーの場合は、書込んではならないキャッシュデ
ータ部81−Dのデータに対して、既にのステージで
書込みを行っているためである。
バッファ89−Dのアドレスで有効ビットレジスタ24
−Dをクリアすると共に、Eユニット44に対してエラ
ー,ページフォールトの発生を報告する。有効ビットレ
ジスタ84−Dをクリアする理由は、例えばプロテクシ
ョンエラーの場合は、書込んではならないキャッシュデ
ータ部81−Dのデータに対して、既にのステージで
書込みを行っているためである。
【0118】尚データキャッシュ42から主メモリ10
にライト起動したアドレスも起動バス55からデータキ
ャッシュのレジスタ87−D(有効化処理の回路180
−Dに含まれている)にセットされるが、それに対して
は、自分自身が出したものであるからデータキャッシュ
コントローラ162−Dより無効化処理の回路180−
Dに対して信号173−Dを送り無効化を行わない様に
制御する。命令キャッシュ41はライトアクセスは行わ
ないので、この信号173−Dに相当するものはない。
にライト起動したアドレスも起動バス55からデータキ
ャッシュのレジスタ87−D(有効化処理の回路180
−Dに含まれている)にセットされるが、それに対して
は、自分自身が出したものであるからデータキャッシュ
コントローラ162−Dより無効化処理の回路180−
Dに対して信号173−Dを送り無効化を行わない様に
制御する。命令キャッシュ41はライトアクセスは行わ
ないので、この信号173−Dに相当するものはない。
【0119】
【発明の効果】以上詳細に説明したように、本発明によ
れば、高スループットのアドレス変換装置を有するメモ
リコントローラを提供でき、これによりアドレス変換装
置を共有するマルチプロセッサ構成のボルトネットを解
消したデータ処理装置が提供できる。
れば、高スループットのアドレス変換装置を有するメモ
リコントローラを提供でき、これによりアドレス変換装
置を共有するマルチプロセッサ構成のボルトネットを解
消したデータ処理装置が提供できる。
【図1】本発明が適用されるデータ処理装置の全体構成
を示した図。
を示した図。
【図2】図1の共通バスの構成例を示した図。
【図3】アクセスごとに共通バスのどの部分を使用する
かを示した図。
かを示した図。
【図4】共通バスの使用例を示す図。
【図5】共通バスの占有制御の様子を示した図。
【図6】インタロック信号が出ている時の共通バスの占
有制御の様子を示した図。
有制御の様子を示した図。
【図7】占有制御回路の構成例を示した図。
【図8】(A)〜(C)はMCUでの処理フローの例及
びMCUで複数のアクセスをオーバラップさせて処理し
ていることを示した図。
びMCUで複数のアクセスをオーバラップさせて処理し
ていることを示した図。
【図9】MCUの構成例を示した図。
【図10】(A),(B)はメモリポードの構成例及び1
6Byteリード時のデータ返送の順番を示した図。
6Byteリード時のデータ返送の順番を示した図。
【図11】TLBによるアドレス変換装置を示した図。
【図12】アドレス変換のフローを示した図。
【図13】命令キャシュへの構成例を示した図。
【図14】キャッシュへのリードアクセス時の処理フロ
ーの説明図。
ーの説明図。
【図15】キャッシュ無効化の処理フローの説明図。
【図16】キャッシュ各部分の使用タイミングの例を示
した図。
した図。
【図17】データキャッシュの構成例を示した図。
【図18】ライトアクセスの処理フローの説明図。
10…主記憶装置、12…メモリアクセスコントロー
ラ、50…共通バス、75…アドレス変換装置。
ラ、50…共通バス、75…アドレス変換装置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 平岡 良成 茨城県日立市幸町3丁目1番1号 株式会 社 日立製作所 日立研究所内 (72)発明者 松本 秀和 茨城県日立市幸町3丁目1番1号 株式会 社 日立製作所 日立研究所内 (72)発明者 河上 哲也 茨城県日立市幸町3丁目2番1号 日立エ ンジニアリング株式会社内 (72)発明者 加藤 猛 茨城県日立市大みか町5丁目2番1号 株 式会社 日立製作所 大みか工場内 (72)発明者 井手 寿之 茨城県日立市大みか町5丁目2番1号 株 式会社 日立製作所 大みか工場内
Claims (1)
- 【請求項1】命令読出しを行うためのIユニットと、命
令読出しと並行してオペランド読出しを行うためのEユ
ニットを有するパイプライン処理型のプロセッサと、命
令及びオペランドを記憶するための主記憶装置から成る
データ処理装置において、該Iユニットに接続され、該
Iユニットから命令アクセスのために出力する仮想アド
レスを受取り、該仮想アドレスに対応するデータが存在
するか否かチェックし、存在すればそのデータを該Iユ
ニットに送出する命令キャッシュメモリと、該Eユニッ
トに接続され、該Eユニットからオペランドアクセスの
ために出力する仮想アドレスを受取り、該仮想アドレス
に対応するデータが存在するか否かチェックし、存在す
ればそのデータを該Eユニットに送出するオペランドキ
ャッシュメモリと、該命令キャッシュメモリと該オペラ
ンドキャッシュメモリ及び主記憶装置に接続され、該命
令キャッシュメモリまたは該オペランドキャッシュメモ
リに該仮想アドレスに対応するデータが無い場合に、該
仮想アドレスを実アドレスに変換して、該主記憶装置に
送出するためのアドレス変換装置を有することを特徴と
したデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4027794A JPH0715667B2 (ja) | 1992-02-14 | 1992-02-14 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4027794A JPH0715667B2 (ja) | 1992-02-14 | 1992-02-14 | データ処理装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP56162691A Division JPS5864689A (ja) | 1981-10-14 | 1981-10-14 | デ−タ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0573417A JPH0573417A (ja) | 1993-03-26 |
JPH0715667B2 true JPH0715667B2 (ja) | 1995-02-22 |
Family
ID=12230886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4027794A Expired - Lifetime JPH0715667B2 (ja) | 1992-02-14 | 1992-02-14 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0715667B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4054832B2 (ja) * | 2004-05-20 | 2008-03-05 | 松下電器産業株式会社 | 画像処理装置及びデータ処理方法 |
US8417916B2 (en) * | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
US8335906B2 (en) | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
-
1992
- 1992-02-14 JP JP4027794A patent/JPH0715667B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0573417A (ja) | 1993-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0052370B1 (en) | A virtual storage data processing system | |
US5659798A (en) | Method and system for initiating and loading DMA controller registers by using user-level programs | |
KR100848603B1 (ko) | 데이터 처리장치와 복귀상태의 저장방법 | |
JP3987577B2 (ja) | システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置 | |
JPH0619798A (ja) | セレクタの値のロードを回避する方法とシステム | |
JPH0345407B2 (ja) | ||
JPH08278886A (ja) | データ処理システムでの拡張システム管理操作のための方法およびシステム | |
JPH0147813B2 (ja) | ||
JP2005509946A (ja) | メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法 | |
JPH04242848A (ja) | 走行モード別キャッシュメモリ制御方式 | |
US5161219A (en) | Computer system with input/output cache | |
JPH06309230A (ja) | バススヌ−プ方法 | |
JPH07325760A (ja) | 情報処理システムにおける記憶制御方法および記憶制御装置 | |
JP3814521B2 (ja) | データ処理方法および装置 | |
JPH0715667B2 (ja) | データ処理装置 | |
JPH04155465A (ja) | ファイル共用方法 | |
JP2813182B2 (ja) | マルチプロセッサコンピュータ複合装置 | |
JPS5858666A (ja) | デ−タ処理装置 | |
JPS5864690A (ja) | キヤツシユメモリ制御方法 | |
JPS6138504B2 (ja) | ||
JPH056706B2 (ja) | ||
JPS6153747B2 (ja) | ||
JPH07282023A (ja) | データ転送量可変プロセッサ及びそれを用いたシステム | |
JP3039391B2 (ja) | メモリシステム | |
JPS6336012B2 (ja) |