JPS62143149A - 計算機システムのメモリ管理ユニット - Google Patents

計算機システムのメモリ管理ユニット

Info

Publication number
JPS62143149A
JPS62143149A JP60283007A JP28300785A JPS62143149A JP S62143149 A JPS62143149 A JP S62143149A JP 60283007 A JP60283007 A JP 60283007A JP 28300785 A JP28300785 A JP 28300785A JP S62143149 A JPS62143149 A JP S62143149A
Authority
JP
Japan
Prior art keywords
error
bus
instruction
address
stage
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
JP60283007A
Other languages
English (en)
Other versions
JPH0622001B2 (ja
Inventor
Michio Morioka
道雄 森岡
Tadaaki Bando
忠秋 坂東
Yoshihiro Miyazaki
義弘 宮崎
Masayuki Tanji
雅行 丹治
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 Ltd
Original Assignee
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 Ltd filed Critical Hitachi Ltd
Priority to JP60283007A priority Critical patent/JPH0622001B2/ja
Publication of JPS62143149A publication Critical patent/JPS62143149A/ja
Publication of JPH0622001B2 publication Critical patent/JPH0622001B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、マイクロプロセッサを用いた仮想メモリ管理
方式を採用する情報処理システムのメモリ管理ユニット
に係り、特にアドレス計算と演算実行をパイプライン処
理する演算処理装置において、ページフォルトによる命
令の中断を再開する処理に好適なメモリ管理ユニットに
関する6【発明の背景〕 最近の情報処理装置では、仮想メモリ管理方式が一般化
しつつある。これは、演算処理装置に割当てられた広大
な論理アドレス空間をページ単位に分割し、ハードディ
スク等の大容量の外部メモリに保持し、実行に必要なペ
ージのみを、オンデマンドに主メモリ上にロードして、
処理する方式である。これにより、仮想的に大容量の主
メモリを実現できる。論理アドレスから主メモリ上の物
理アドレスへの変換は、メモリ管理ユニットにより実行
されるが、論理アドレスに対応する情報が主メモリ上に
ロードされていない場合には、メモリ管理ユニットは、
ページフォルトエラーとしてこれを検出し、演算処理装
置に報告する。演算処理装置は、ページフォルトエラー
報告を受けると、現在実行中の命令を中断し、システム
モードに移行して、オペレーションシステムの例外処理
ルーチンを起動することにより、必要なページを外部メ
モリから主メモリ上ヘロードする。ページのローディン
グが終了すれば、中断していた命令を再開するが、この
命令再開の方式としては、次の2つがある。
(イ)再実行方式 (ロ)継続実行方式 再実行方式とは、中断していた命令をデコードの段階か
ら改ためて再実行する方式であり、継続実行方式とは、
命令が中断した時の状統を再現し、中断した時点から継
続して再開する方式である。
アドレシングモードとして、ブリデクリメント。
ポストインクリメント等のモードを有するシステムでは
、オペランドフェッチ時にページフォルトが発生した時
点で、既にアドレスレジスタ等の内部状態が更新されて
いる場合がある。これらの内部状態を命令実行航の状態
に修復して、再実行するには、かなり複雑な制御を必要
とする。従って、退避情報が膨大になるという欠点はあ
るが、制御の簡単化のため継続実行方式を採用している
計算機が多い。
一方、演算処理の高速化のため、パイプライン方式が常
套手段となっているが、以下多段パイプライン計算機で
継続実行方式を採用する場合を考察する0例として、第
10図に示す様な、命令フェッチステージ1と、デコー
ド及び計算を行なうデコードアンドアドレス計算ステー
ジ2と、演算実行ステート3から成る3段のパイプライ
ン構成を考える。実効アドレスを唯一っしか持たない命
令セットから成るアーキテクチャでは、アドレス計算を
1回しか必要としないので、図示する様に。
各ステージ1,2.3で実行される命令C1゜C2,C
3は、それぞれ独立となる。従って、演算実行ステージ
3.でページフォルトが検出された場合、命令C3の情
報、すなわち演算実行ステージ3の内部状態だけを退避
しておけば、ページ転送後に、中断していた命令C3を
継続実行することができる。この時、命令C1,C2に
関しては。
再度、テキストを保持しているメモリからフェッチする
これに対して、最近の計算機で一般に採用されている2
つの実行アドレスを持つ命令セットアーキテクチャでは
、例えば、 MOVE  EAI EA2 の様な、実効アドレスE A 1の示す情報を実効アド
レスEA2が示す番地に格納するという命令が存在する
この命令を、市記のパイプライン構成で効率良く実行す
るには、まずデコードアンドアドレス計算ステージ2で
、FAIの実効アドレスを算出し、演算実行ステージ3
に引渡す。演算実行ステージ3は、実効アドレスFAI
に従って、オペランドのフェッチを開始するが、これと
並行して、デコードアンドアドレス計算ステージ2は、
第2の実効アドレスEA2の算出を行なう。従って、第
11図に示すように、前記MOVE命令8は、デコード
アンドアドレス計算ステージ2及ば演算実行ステージ3
の両方のステージにまたがった形で実行される。この時
、演算実行ステージ2でページフォルトが発生すると、
前記MOVE命令を連続実行するためには、デコードア
ンドアドレス計算ステージ2の内部状態と、演算実行ス
テージ3の内部状態を退避する必要がある。
一方、仮想メモリ管理方式を取る計算機では、むだな例
外処理を避けるため、命令のブリフェッチ時に発生した
エラー、例えばページフォルト。
アクセス プロテクト、ハードウェア故障等(以下、バ
スエラーと称す)に対しては、即座に対応せず、何らか
の報告手段をバスエラーを起した命令に付加することに
より、命令デコード時にエラー検出して、例外処理を行
なう方式が一般的である。このことを考慮して、前述の
パイプライン構成を考えた場合、1つの命令が演算実行
ステージ3とデコードアンドアドレス計算ステージ2に
またがっている時に、2つのバスエラーが同時に発生す
る場合がある。例としては、演算実行ステージ3では、
オペランドフェッチ中にページフォルトエラーが発生し
、デコードアンドアドレス計算ステージ3では、アドレ
ス計算に必要なディスプレースメント等の情報を命令フ
ェッチステージ1から受は取った時に、付属しているエ
ラー報告手段より、バスエラーを検出した場合である。
これに対する処理としては、まず、デコードアン1〜ア
ドレス3.f算ステージ2の内部情報(これはバスエラ
ーの原因を示す詳細情報も含む)と、演算実行ステージ
3の内部情報を退避し、演算実行ステージ3でのページ
フォルトに対する処理を行った後、退避情報を回復し、
デコードアンドアドレス計算ステージ2でバスエラーが
発生している状態を再現して、命令を継続実行する。次
に、演算実行ステージ3は、デコードアンドアドレス計
算ステージ2からバスエラー報告を受け、デコードアン
ドアドレス計算ステージ2と演算実行ステージ3の内部
状フルを退避し、オペレーションシステムのバスエラー
ハンドラにより、エラー詳細情報から原因を検索し、対
応した処理を行なう。
以上に説明した様に、命令がデコードアンドアドレス計
算ステージ2と演算実行ステージ3とにまたがっている
ときに1両ステージ2,3でエラー検出した場合、デコ
ードアンドアドレス計算ステージで検出されたエラーの
詳細情報を退避回復する必要がある。
小規模な集積回路、あるいはゲートアレイ等により構成
された情報処理システムにおいては、バスエラー詳細情
報をすべて、演算処理装置に取り込むことにより、命令
ブリフェッチ中にバスエラーが発生すれば、その詳細情
報を命令に付加する方法を採用している。この方法によ
れば、エラーを起した命令には、常にエラー原因を示す
詳細情報が付加されているため、前述した、デコートア
ンドアドレス計算ステージ2で検出さ九たエラーに関す
る詳細情報の退避回復が容易に実現できる。
これに対し、最近の傾向としては、プロセス技術、リソ
グラフ技術の高度化に伴なう素子の高集積化により、信
号遅延の原因となっていた素子の負荷容量、あるいはチ
ップ間の信号伝搬遅延等の物理的な制約を削減する方向
にある。これにより、1チツプ上に実現される論理規模
は増大しつつあるが、その副作用として、ピンネックの
問題が大きな制約となっている。特に、V L S I
技術に基づくマイクロプロセッサの分野では、ピンネッ
クは重要な課題であり、様々な対策を講じてピン使用効
率の向上が図られている。このようなシステムでは、バ
スエラーが発生した場合、メモリ管理装置が、その詳細
情報をフリーズし、演算処理装置には、エラーが発生し
た事実のみが報告される。
バスエラー報告を受けた演算処理装置は、それがオペラ
ンドフェッチ中のバスエラーであれば、即座に例外処理
を実行するが、命令フェッチであれば、命令自体に付加
されているエラーフラグをセットすることにより、命令
実行時のエラー処理を実現している。例外処理では、外
部レジスタに対するアクセス手段により、メモリ管理装
置内にフリーズされている詳細情報を読出すことにより
バスエラーの原因を検出している。この処理方式によれ
ば、演算処理装置に、バスエラーを報告するのに必要な
信号線が節約でき、ピン使用効率は向上する。
しかし、ナショナルセミコンダクター社のN51608
2メモリ管理ユニツトのデータシートにあるように、バ
スエラーの詳細情報をフリーズするレジスタを、唯一し
か持たないメモリ管理装置を。
アドレス計算と演算の実行をパイプライン化している演
算処理装置に適用した場合、次のような問題が生ずる。
すなわち、前記した様に、1つの命令がアドレス計算ス
テージと演算実行ステージにまたがって実行されている
時に、両ステージで同時にバスエラーが検出された時、
すなわち命令ブリフェッチ時のバスエラーとオペランド
フェッチ時のバスエラーが、同時に検出された時に、命
令ブリフェッチ時のバスエラーに関する詳細情報は、4
ペランドフ工ツチ時のバスエラーが発生した時点で破壊
されてしまうため、このような場合には命令途中からの
継続実行ができないという問題点があった。
〔発明の目的〕
本発明は上記した従来技術の問題点に鑑みなされたもの
で、デコードアンドアドレス計算ステージと演算実行ス
テージをパイプライン処理している演算処理装置に対し
て、ページフォルトにより中断された命令を、途中から
再実行することを可能する情報処理システムのメモリ管
理ユニッ1−を提供することを目的としている。
〔発明の概要〕
本発明の情報処理システムのメモリ管理ユニットは、実
行すべき命令を記憶媒体から取込む命令フエッジ手段と
、上記命令の解読と必要な情報の記憶媒体内のアドレス
を算出するデコードアンドアドレス手段と、上記命令に
従って必要な情報を取込んで処理する演算実行手段等を
有し、上記命令フエツジ手段とデコードアンドアドレス
手段と演算実行手段をパイプライン処理する演算処理装
置と、上記記憶媒体へのアクセスを管理するメモリ管理
ユニットとを僅えた情報処理システ11に適用されるも
のであり、次の事項を特徴としている。
即ち、メモリ管理ユニットは、上記演算処理装置の構成
要素のうち記憶媒体にアクセスする機能を有する演算実
行手段等の各手段が、記憶媒体へのアクセスに失敗した
とき、失敗原因等の詳細を含むエラー情報を保持する保
持手段を上記各手段毎に備え、かつ上記保持手段に保持
されたエラー情報を、退避・回復する退避・回復手段を
備えていることを特徴としている。
〔発明の実施例〕
以下、添付の図面に示す実施例により、更に詳細に本発
明について説明する。
第2図は本発明が適用される情報処理システムのシステ
ム構成を示すブロック図である。演算処理装置10は、
システム全体を管理するプロセス、あるいは、ユーザー
が登録したプロセスのテキストを解釈実行する装置であ
る。メモリ管理ユニット11は、論理アドレスを物理ア
ドレスに変換するアドレス変換ユニットとキャッシュメ
モリとストアバッファとを、有し、仮想メモリ管理方式
をサポートするとともに、メモリに対するアクセスの高
速化、蓄積データの保護機能、あるいは主メモリ13お
よび工/○空間とのインターフェイス機能を持つ。主メ
モリ13は、27bit幅の物理アドレスにより割付け
られ、プロセスのテキストあるいはデータを保持してい
る。4ウ工イインタリーブ方式の採用により、高スルー
プツトを実現している。I10アダプター12は、I1
0バス上の論理空間をメインメモリの物理空間に割当て
るアドレス変換テーブルとシステムの立上げに必要な情
報を有し、I10空間上のバスマスタからの要求に対し
、アービトレーションとアドレス変換を行なう。これに
より、I10バス上のバスマスタは、ダイナミックに主
メモリ1.3を使用できる。ファイルコン1−ロールプ
ロセッサ14は、大容量の2次記憶装置15とメインメ
モリ1;3間のバーストなデータ転送を制御する。演算
処理装置10とメモリ管理ユニット11間は、32b 
i tの論理アドレスバス16とライトデータバス17
とリードデータバス18で接続され、メモリ管理ユニッ
ト11と主メモリ13間も、同様に物理アドレスバス1
9とライトデータバス20とリードデータバス21で接
続されている。メモリ管理ユニット11とI10アダプ
タ12間は、情報転送バス22.23で接続されている
。また、図中、24.25,26は工/○空間の共通バ
スであり、それぞれアドレス、リードデータ、ライトデ
ータの転送を担当する。工/○空間バスには、たとえば
グラフィックプロセッサ及びセグメントバッファ、更に
はプロセッサ間の共有データを保持するグローバルメモ
リ等が接続される。
第3図は、第2図に示した演算処理袋「tloの内部構
成の概略を示すブロック図であり、第4図は演算処理装
置10の詳細を示すブロック図である。第3図に示す様
に、演算処理装置10は、高速処理を実現するためパイ
プライン方式を採用しており、ステージとしては、命令
フエツチステ−ジ140、デコードアンドアドレス計算
ステージ141、演算実行ステージ142に分割され、
3段のパイプライン構成を取る。
次に、第4図を用いて、命令フェッチステージとデコー
ドアンドアドレスステージと演算実行ステージの各動作
について説明する。
命令フェッチステニジでは、ブリフェッチ用のプログラ
ムカウンタ(図中、FPCと示す)116に保持されて
いるアドレスを、論理アドレスバス16を通してメモリ
管理ユニットに送出することにより、命令のプリフェッ
チを行なう。フェッチされた命令は、リードデータバス
18を通して、命令バッファ(図中、IBRと示す)1
01に格納される。命令バッファ101は、16バイト
の容量を有し、且つ4バイトデータ毎にエラーフラグ(
図中、Eと示す)102を持つにのエラーフラグ102
は、対応する情報をアクセスしている時に、ハードウェ
アの故障、ページフォルト、アクセスプロテクトエラー
等に起因する何らかのエラーが発生した場合バスエラー
信号131によってセットされる。
デコードアンドアドレス計算ステージは、デコード部と
アドレス計算部からなり、デコード部は命令バッファ1
01から受取った命令をデコーダ103で解読し、アド
レス計算部への制御信号を信号線128へ出力し、同時
に演算実行ステージで実行すべきマイクロプログラムの
トップアドレスを生成して信号線129へ出力する。又
、受取った命令のエラーフラグ102が立っていた場合
命令ブリフェッチ時エラーを示す信号を信号線126に
より演算実行ステージに通知する。一方、アドレス計算
部では、デコーダ103からの制御信号を信号線128
を介して受けると、アドレス計算部のコントローラ10
4が起動され、レジスタファイル(図中、IRFと示す
)113と算術機能演算器(図中IALtJと示す)1
12とを算術機能演算器112を制御して、必要なオペ
ランドデータのアドレスを算出し、メモリアクセスレジ
スタ(図中、MARと示す)115にセットする。又、
アドレス計算に必要な情報、たとえば、ディスプレース
メント等が必要となった場合は、信号線133を通して
、命令バッファ101よりフェッチする。この時、ディ
スプレースメント情報に付加されているエラーフラグ1
02がセットされていれば、エラー報告信号を信号線1
26により演算実行ステージへ通知する。演算実行ステ
ージでは、デコーダ103からのマイクロプログラムの
トップアドレスを信号線129を介して受け、更にアド
レス計算ステージからの起動信号を信号線130を介し
て受けると、演算実行ステージのコントローラ105は
、レジスタファイル(図中、ERFと示す)111と算
術機能演算器(図中、EALUと示す)110を制御し
て、レジスタ間転送や、その他の処理を行なう。その他
の処理としては1例えば、オペランドアドレスを保持し
ているメモリアクセスレジスタ115の内容をアドレス
バス16を通して外部記憶管理装置に送出する事により
、リードデータバスを通してオペランドバッファレジス
タ (図中、○BRと示す)107にオペランドをフェ
ッチしたり、又演算結果をメモリライトレジスタ(図中
、MWRと示す)114にセットし、ライトデータバス
17を介して外部記憶装置へ書込む等の処理が挙げられ
る。オペランドフェッチ時あるいは演算結果の格納時に
、外部記憶管理装置にエラーが発生し、演算実行ステー
ジに対して信号線132(第5図参照)を介してバスエ
ラー信号が入力された場合、又は、フェッチ済の命令に
エラーがあった事をデコーダステージが検知し、演算実
行ステージに通知があった場合、マイクロプログラムに
よりアドレス計算部のレジスタファイル113の内部レ
ジスタ、演算実行ステージのレジスタファイル111の
内部レジスタをシステムスタックに退逃し、オペレーシ
ョンシステムのバスエラー処理ルーチンを起動する。
次に、第5図を用いて、メモリ管理ユニツlへの詳細を
説明する。第5図に示す様に、アドレス変換部201は
、演算処理装置10が対象とする4ギガバイトの論理空
間を、4キロバイトのページ単位に分割し、128メガ
バイトの実メモリ空間にマツピングするハードウェアを
有し、オンデマンドな仮想記憶管理方式をサポートして
いる。又、アドレス変換部201は、64エントリーの
トランスレーションルックアサイドバッファをff1f
えることにより、アドレスバス16からの論理アドレス
を高速に物理アドレスに変換し、アドレスバス212に
出力する。ページファルトあるいはページ弔位のメモリ
保護機能によるプロテクトエラーが発生した場合は、エ
ラー信号がバス21]とバスエラー情報バス207を介
してバスエラーディテクター200に入力される。キャ
ッシュメモリ部203は、高速な演算処理装置と、アク
セス速度の遅い大容量の主メモリ13の間の緩衝装置と
して、高速なアクセスが可能なスタティックRAMを使
用し、主メモリ13の情報の一部を保持することにより
、平均メモリアクセスタイムの大幅な削減を実現してい
る。但し、ストアスル一方式の採用により、ライトアク
セスに対しては、緩衝機能を持たない。このため、スト
アバッファ202を設け、ライトアクセスをFIFOの
概念に基づきバッファリングすることにより、ライトア
クセスの高速化を図っている。主メモリ13とのインタ
フェース部206は、キャッシュメモリ203からのブ
ロック転送要求と、ステアバッファ202からの書込要
求を受け1両要求をアービトレイドするとともに、イン
ターリーブされた主メモリ13へのリード・ライトアク
セスを管理する。バスエラーは、主メモリ13の故障あ
るいは未実装をタイムアウト監視するとともに、主メモ
リ13でのダブルビットエラーはバス210をチェック
することより検出され、かつバスパリティエラーはライ
トバス20とリードバス21をチェックすることにより
検出される。上記バスエラーが検出されると、信号線2
08によりバスエラー情報バス207を通して、バスエ
ラーディテクター200に通知される。
I10バスとのインタフェイス部204は、演算処理装
置10から、I10バス空間上へのアクセス、たとえば
グローバルメモリへのアクセスやグラフィックプロセッ
サ用のセグメントバッファに対するアクセス、ファイル
コントロールプロセッサへのコマンドブロック転送等の
アクセスを受付け、I10アダプタ12への送出バス2
2と受取りバス23を通じて、I10アダプタ12へ情
報を転送する。アクセスが終了し、I10アダプタ12
から応答があれば、演算処理装置10ヘアクセス終了通
知を行なう。I10重量子クセス中に何らかのエラーが
発生した場合、E10空間インタフェイス204はこれ
を検出し、エラー信号線209によりバスエラーディテ
クター200へ通知する。
L) M Aアクセスのインタフェイス205は、I1
0空間上のDMA装置からI10アダプタ12を通して
、バースト的なデータ転送が要求されたとき、これを受
付け、演算処理装置10からメモリ管理ユニット内バス
213を獲得し、キャッシュメモリ203とストアバッ
ファ202とを介して、主メモリ13へのアクセスを実
行する。
本発明の対象となるエラーディテクター200は、アド
レス変換部20]、主メモリインクフェイス206.I
10パスインタフェイス204からのバスエラー情報を
収集している。これらの情報からバスエラーを検出する
と、応答を待っている演算処理装置10へ、信号線13
1,132により通知する。ここで、信号線131は、
命令フェッチ時にバスエラーが発生したことを示す信号
を伝送し、かつ信号線132は演算実行ステージによる
オペランドフェッチあるいは演算結果の格納時にエラー
が発生したことを示す信号を伝送する。
第6図は、以上に述べた要素から成るメモリ管理ユニッ
ト11が演算処理装置10からアクセス要求を受けた場
合の処理内容を示すフローチャートである。図示する様
に、演算処理装置10からアクセス要求があると、ステ
ップ300において論理アドレスが物理アドレスに変換
される。次に。
ステップ301において、ページフォルト及びメモリプ
ロテクトエラーのエラーチェックを行なう。
上記、ステップ300,301の処理は、アドレス変換
部201で行なわれ、エラーが検出された場合には、バ
スエラーディテクター200に報告される(ライン32
3)。エラーが検出されない場合には、ステップ302
において、キャシュメモリ部203とストアバッファ2
02とI10用のインターフェイス部204が受は付は
可能か否かをチェックし、全てが受は付は可能となるま
で待つ。受は付は可能となれば、ステップ303におい
て、アクセスの対象空間を識別し、I10バス空間に対
するアクセスの場合にはステップ305へ進み、メモリ
管理ユニット11内のレジスタに対するアクセスの場合
にはステップ319へ進み、主メモリ′、3に対するア
クセスの場合にはステップ304へ進む。I10空間に
対するアクセスの場合、ステップ305において、リー
ドアクセスかライトアクセスかを識別し、ステップ30
6゜308において、それぞれに対するアクセス処理を
行なう。次に、ステップ307,309において、■/
○空間アクセス時のエラーをチェックし、バスエラーを
検出した場合には、バスエラーディテクター200へエ
ラー報告を行なう(ライン324、 325)  。
次に、主メモリ13上の空間に対するアクセスの場合、
ステップ304においてリード・ライトアクセスの識別
を行ない、リードアクセスならばステップ315へ進み
、ライトアクセスならばステップ310へ進む。リード
アクセス時には、スイング310においてキャッシュメ
モリがヒツトしたかどうかチェックし、ヒツトしていれ
ば、スイング311においてデータを演算処理装置へ転
送して終了する。又、キャッシュメモリミスヒツト時に
は、ステップ312において必要なブロックを32バイ
ト単位で、主メモリ13からキャッシュメモリ部203
へ転送するこの時、主メモリ13のタイムアウトエラー
、ダブルビットエラー、データ転送時のバスパリティ−
エラーをチェックし、エラーを検知すればバスエラーデ
ィテクターへ報告しくライン326)、エラーがなけれ
ば、ステップ314において演算処理装置へデータを転
送してアクセスを終了する。又、主メモリ空間に対する
ライトアクセスの場合は、ステップ315においてキャ
ッシュメモリのヒツト・ミスヒツトをチェックし、ヒツ
トすれば、ステップ316においてキャッシュメモリ部
203に書込むとともに、ストアバッファ202へも書
込む。ミスヒツトすれば、ステップ317でキャッシュ
メモリ部203には書込まず、ストアバッファ2o2の
みに書込んで、アクセスを終了する。
メモリ管理ユニット11内のレジスタに対するアクセス
の場合(328)は、ステップ319において、リード
ライトを識別した後、ステップ320.321でそれぞ
れの処理を行ない、アクセスは終了する。
以上に説明した様に、演算処理装置i’410の外部に
おけるバスエラーは、全てメモリ管理ユニット11内の
バスエラーディテクター200に報告される。第1図は
、バスエラーディテクター200の一具体例であり、同
図を用いてバスエラーディテクター200における処理
を詳細に説明する。
第1図において、命令ステージ用のエラーレジスタ20
05は、演算処理装置10の命令フェッチステージから
のアクセス時に発生したバスエラーの詳細情報をフリー
ズするレジスタである。実行ステージ用のエラーレジス
タ2006は、演算実行ステージからのアクセス時に発
生したバスエラー詳細情報をフリーズするレジスタであ
る。また、第1図において、207はバスエラーの詳細
情報を転送するためのバスエラー情報バスであり、21
4はメモリ管理ユニット11内の物理アト、・スバスで
あり、215,216はそれぞれライトデータバスとリ
ードデータバスである。又、セレクタ2001、200
2は、バスエラー詳細情報からエラーレジスタ2001
.2002へのレジュームデータを選択するレジスタで
ある。セレクタ2024は、命令ステージ用のエラーレ
ジスタ2005と実行ステージ用のエラーレジスタ20
06の出力を選択するものである。
セレクタ2007は、リードデータバス216七へ、エ
ラーレジスタの情報をのせるためのセレクタである。デ
コーダ2021は、演算処理装置1oからのメモリ管理
ユニット11内のレジスタに対するアクセス時に、アド
レスバス214上の情報から、エラーレジスタ2005
.2006に対するアクセスを検出するためのデコーダ
である6エラーレジスタコントローラ2000は、エラ
ーレジスタ2006.2007へのバスエラー詳細情報
のセット及びエラーレジスタのセーブ・レジュームを制
御する。信号線2008 。
2009は、現在アクセスしている要求元が、命令フェ
ッチステージか、あるいは、演算実行ステージかを示す
アドレス変換部201からのバスエラー報告201.0
.あるいはI10バス空間インタフェイスからのバスエ
ラー報告2011、あるいは主メモリインタフェイスか
らのバスエラー報告2012があると、エラーレジスタ
コントローラ2000は、信号線2015により、セレ
クタ2002.2001を操作して、バスエラー詳細情
報2022.2023を選択するとともに、アクセス要
求元を示す信号2008.2009とレジスタセット信
号2016により、アクセス要求元に応じて、命令ステ
ージ用のエラーレジスタ2005あるいは実行ステージ
用のエラーレジスタ2006に、バスエラー詳細情報を
セットする。そして、命令フェッチステージへのバスエ
ラー報告信号は信号線131・ を介して、また演算実
行ステージへのバスエラー報告信号は信号線132を介
して演算処理装置10へ入力され、バスエラーの発生が
通知される。
次に、演算処理装置10がエラーレジスタ2005 。
2006に対してアクセスする場合の処理について説明
する。演算処理装置10が、メモリ管理ユニット11内
のエラーレジスタ2005.2006に対してアクセス
した場合、アドレス変換部201により。
レジスタアクセス要求信号2013とリードライトを指
定するリード・ライト指示信号2014が起動され。
それと同時に物理アドレスバス214上にエラーレジス
タの識別信号がオンバスされる。バスエラーディテクタ
ー200は、物理アドレスバス214上の識別信号をデ
コーダ2021によりチェックして。
命令ステージ用のエラーレジスタ2005又は実行ステ
ージ用のエラーレジスタ2006に対するアクセスであ
ることを検知すると、リード・ライト指示信号2014
に従って9次の処理を実行する。リードアクセスの場合
には、デコーダ2021の出力からアクセス対象が命令
ステージ用のエラーレジスタ2005か実行ステージ用
のエラーレジスタ2006かを識別し、信号2025に
よってセレクタ2024を操作して対象レジスタを選択
するとともに、信号2018によってセレクタ2007
を操作して、リードデータバス216上に対象レジスタ
の内容をオンバスする。
ライトアクセスの場合には、信号2015によってセレ
クタ2001.2002を操作して、ライトデータバス
215上のデータを選択し、レジスタセット信号201
7、2026により、命令ステージ用のスラーレジスタ
2005及び実行ステージ用のエラーレジスタ2006
に、ライトデータバス215上の情報をセットする。
これまでに示した演算処理袋[10、及びバスエラーデ
ィテクター200を含むメモリ管理ユニット11より成
るシステムにおいて、オペランドフェッチ時のバスエラ
ーと、命令フェッチ時のバスエラーの実行待報告が重な
った場合の処理を示すフローチャートを第7図に示す。
第7図に示すフローチャートは、特に、仮想記憶管理方
式の採用により、頻繁に発生すると考えられるページフ
ォルトエラーの場合を例に取っている。次に、第7図に
示すフローチャートに従って説明する。
第7図において、ユーザモードで応用プログラム400
を実行している際中に、演算処理装置10に対して、メ
モリ管理ユニット11からオペランドフェッチ中のバス
エラー報告及びアドレス計算ステージから、命令フェッ
チ中のバスエラー報告403が同時に発生した場合、演
算処理装置10は、まずオペランドフェッチ中のバスエ
ラーに対する処理を行なう。すなわち、例外処理用マイ
クロプログラム401が起動されて、以下の処理が実行
される。
(ステップ405) ステータレジスタの内容をコピーした後、ステータスレ
ジスタを操作して状態をシステムモードに変更。
(ステップ406) バスエラー処理用の例外ベクタの値を決定。
(ステップ407) アドレス計算ステージ、及び演算実行ステージの内部レ
ジスタをシステムスタックへ退′aa(ステップ408
) 例外ベクタよりオペレーションシステムのバスエラー例
外処理ルーチンのスタートアドレスを獲得し、バスエラ
ー例外処理ルーチン402を起動。
以上の処理で、システムスタック上にスタックフレーム
が生成される。起動されたオペレーションシステムのバ
スエラー例外処理ルーチン402では、以下の処理が実
行される。
(ステップ417) メモリ管理ユニット内のレジスタに対するアクセス手段
により、実行ステージエラーレジスタの内容及び、命令
ステージエラーレジスタの内容をフェッチし、バスエラ
ー原因を判定。
(ステップ418) 命令ステージエラーレジスタの内容及び、汎用レジスタ
群をシステムスタックへセーブ。
(ステップ419) 必要なページを2次メモリから、主メモリへD M A
転送。
(ステップ42o) システムスタックから命令ステージ用のエラーレジスタ
の内容及び汎用レジスタ群を回復し。
実行ステージ用のエラーレジスタをクリアする。
次に、オペレーションシステムのバスエラー例外処理ル
ーチン402の末尾には、専用のリターン命令が置かれ
ており、このリターン命令によって、例外処理用マイク
ロプログラム401が起動させる。
例外処理用マイクロプログラムでは、次の処理が実行さ
れる。
(ステップ409) スタックフレームの内容を、アドレス計算ステージ、演
算実行ステージの内部レジスタに回復する。
ステップ409の終了後に、中断している応用プログラ
ム400が、例外処理が発生した時点から継続実行され
る。すなわち、演算実行ステージによるオペランドフェ
ッチが成功する。この時点では、アドレス計算ステージ
で検出された命令フェッチ時のバスエラー報告404も
再現されており、これに対して演算実行ステージは即座
に例外処理用マイクロプログラム401を実行する。ス
テップ411から414までの処理は、ステップ405
から408までの処理と等しく、オペレーションシステ
ムのバスエラー例外処理ルーチン402ヘジヤンブする
。バスエラー例外処理ルーチン402では、次の様な処
理が実行される。
(ステップ421) メモリ管理ユニット内のレジスタに対するアクセス手段
により、実行ステージエラーレジスタの内容及び、命令
ステージエラーレジスタの内容をフェッチし、バスエラ
ー原因を判定。
(ステップ422) 汎用レジスタ群をシステムスタックへセーブ。
(ステップ423) 必要なページを2次メモリから主メモリへDMA転送。
(ステップ424) システムスタックから、汎用レジスタ群を回復  ・し
、実行ステージ用のエラーレジスタ、及び命令ステージ
用のエラーレジスタの内容をクリア。
以上の処理が終了すると、専用のリターン命令を実行す
ることにより、例外処理用マイクロプログラムへもどり
、次の処理を行なう。
(ステップ415) アドレス計算ステージと、実行ステージの内部レジスタ
を回復する。
次の、中断していた応用プログラム400が再開され、
通常動作に戻る。
次に、本発明の他の実施例について説明する。
前述の第1の実施例は、演算処理装置10を唯一しか持
たない情報処理システムに関するものであったが1本発
明は、以下に述べる実施例の様に。
演算処理装置を複数個持つマルチプロセッサシステムに
も適用できる。
第8図は、2つの演算処理装置10a、10bを持つシ
ステムに適用できるメモリ管理ユニット11の具体側を
示すブロック図である。演算処理装置10a、1.Ob
は、どちらもアドレス計算ステージと演算実行ステージ
とパイプライン化することにより高速演算を可能として
いる。又、おのおの4ギガバイトの広大な論理アドレス
空間を持つ。アドレス変換部201aは、演算処理装置
10aの送出する論理アドレスを物理アドレスに変換す
るとともに、ページフォルトエラー及びアシクセスプロ
テクトエラーを検出し、バスエラー情報バス207を通
じてバスエラーディテクター200へ通知する。アドレ
ス変換部201bは、演算処理装置10bに対して前記
アドレス変換部20.1 aと同様の処理を行なう。バ
スエラー情報バス207と物理アドレスバス214とラ
イトデータバス215、リードデータバス216は、メ
モリ管理ユニット11内の内部バスである。バスアービ
ター230は、2つの演算処理装置からのデータアクセ
ス要求を受付、バスの使用権を割り当てる。キャッシュ
メモリ部203、ストアバッファ202、主メモリ13
とのインタフェイス部206、工/○バスとのインタフ
ェイス部204、D M Aアクセスのインタフェイス
部205の各機能は、前述の実施例で述べた各機能と全
く同様である。バスエラーディテクター200は、アド
レス変換部201a、201b及び主メモリ13とのイ
ンタフェイス部206及びI10パスインタフェイス部
204からのバスエラー情報を収集している。これらの
情報からバスエラーを検出すると、エラーの詳細情報を
フリーズするとともに、バスエラー信号線250,25
1,252,253により、アクセスの要求元へバスエ
ラー発生を通知する。ここで、信号線250は演算処理
装置10a内の命令フェッチステージによるアクセス時
にバスエラーが起った事を示し、信号線251は同演算
処理装置10 FI内の演算実行ステージによるアクセ
ス時にバスエラーが起った事を示す。
又、信号線252は、演算処理装置10b内の命令フェ
ッチステージによるアクセス時にバスエラーが起った事
を示し、信号線は、同演算処理装置10b内の演算実行
ステージによるアクセス時にバスエラーが発生した事を
示す。
次に、バスエラーディテクター200の内部構成を第9
図を用いて説明する。
命令ステージ用のエラーレジスタ2005 a 、 2
005 bは、それぞれ演算処理装置10a、10bの
命令フェッチステージからのアクセス時に発生したバス
エラーの詳細情報をフリーズするレジスタである。実行
ステージ用のエラーレジスタ2006a。
2006 bは、それぞれ演算処理装置10a、10b
の演算実行ステージからのアクセス時に発生したバスエ
ラーの詳細情報をフリーズするレジスタである。207
はバスエラー情報バス、214はメモリ管理ユニット内
の物理アドレスバス、215゜216はそれぞれライト
データバスとリードデータバスである。デコーダ202
1は、物理アドレスバスに乗せられたレジスタ識別信号
より、バスエラーディテクター200内の4つのエラー
レジスタに対するアクセスを検出する。エラーレジスタ
コントローラ2000は、エラーレジスタへのバスエラ
ー詳細情報のセット及び、エラーレジスタのセーブ・レ
ジュームをコントロールする。信号[2075。
2076、2077、2078は、アクセス要求元が、
それぞれ演算処理装置10aの演算実行ステージ、及び
命令フェッチステージ、演算処理装置10bの演算実行
ステージ及び命令フェッチステージであることを示す信
号を伝送する。
アドレス変換部201a、201bからのバスエラー報
告2010、あるいは、I10バス空間インタフェイス
からのバスエラー報告2017、あるいは主メモリ13
用のインタフェイス部204からのバスエラー報告20
12があると、エラーレジスタコントローラ2000は
、48号線2067によりセレクタ2001 a 、 
2001 b 、 2002 a 、 2002 bを
操作して、バスエラー情報バス213の内容を選択する
とともに、アクセス要求元を示す信号線2075.20
76゜2077、2078とレジスタセット4g号を伝
送する48号線2068により、アクセス要求元に対応
したエラーレジスタに、バスエラーの詳細情報をセット
する。
そして、信号線L31a、131b、132a。
132bのいずれかをアサートすることにより、アクセ
ス要求元に対して、バスエラーが発生した事を報告する
次に、演算処理装置10a、10bが、メモリ管理ユニ
ット11内のエラーレジスタにアクセスする場合の処理
を示す。レジスタアクセス要求信号2013が起動され
、かつ物理アドレスバス214上にオンバスされたレジ
スタ識別信号をデコーダ2012でチェックし、いずれ
かのエラーフリーズレジスタに対するアクセスであるこ
とが認識される。
エラーレジスタコントローラ2000は、アクセスの種
類をリード・ライト指示信号2014に従って以下の制
御を行なう。リードアクセスの場合デコーダ2021の
出力信号2079に従って、信号2073.2074に
より、セレクタ2024.2007を操作し、アクセス
対象のエラーレジスタの内容をリードデータバス216
にオンバスする。又、ライトアクセス時には、信号線2
067により、セレクタ2001 a 、 2001 
b 。
2002a 、 2002bを操作しライトデータバス
215上のデータを選択するとともに、デコーダ202
1の出力信号2079に従って、各エラーレジスタに対
するセット信号20fi9.2070.2071.20
72により、対象のレジスタにライトデータバス215
上のデータをセットする。
以上に述べた機能を持つモメモリ管理ユニット11によ
り、パイプライン化された複数の演算処理装置からなる
マルチプロセッサシステムにおいて、ページフォールト
等による命令実行の中断を再開する場合、命令の途中か
ら継続して実行することが可能となる。
〔発明の効果〕
本発明によれば、アドレス計算と、演算の実行をパイプ
ライン化している演算処理装置に対して、簡単なハード
ウェア及び少数のエラー報告信号により、ページフォル
トエラーで中断していた命令を、途中から継続実行する
事が可能となる。
【図面の簡単な説明】
第1図は本発明を適用したメモリ管理ユニット内にバス
エラーディテクターの具体例を示すブロック図、第2図
は本発明が適用される情報処理システムのシステム構成
の一例を示すブロック図、第3図は第2@に示した演算
処理装置の構成を示すブロック図、第4図は第2図に示
した演算処理装置の詳細を示すブロック図、第5図は第
2図に示すメモリ管理ユニットの具体例を示すブロック
図、第6図は第5図に示したメモリ管理ユニットにおけ
る処理を示すフローチャート、第7図はメモIJ ’!
?理ユニットにおいてオペランドフェッチ時のバスエラ
ーと命令フェッチ時のバスエラーの実行待報告が重なっ
た場合の処理を示すフローチャート、第8図はメモリ管
理ユニットの他の具体例を示すブロック図、第9図は本
発明を適用したメモリ管理ユニット内の他の具体例を示
すブロック図、第10図はパイプライン計算機において
実行アドレスが唯一の命令を実行した場合の各ステージ
の状態を示す説明図、第11図はパイプライン計算機に
おいて実行アドレスが2つ以上ある命令を実行した場合
の状態を示す説明図である。 10.10a、10b・・・演算処理装置、】1・・・
メモリ管理ユニット、12・・・■/○アダプタ、13
・・・主メモリ、14・・・ファイルコン1へロールプ
ロセッサ、12・・・2次記憶装置、ICl−・・命令
バッファ(IBR)、102・・・エラーフラグ(E)
、103・・・デコーダ、104,105・・・コント
ローラ、107・・・オペランドバッファレジスタ(O
RR)、110・・・算述機能演算器(EALU) 、
1.11・・・レジスタファイル(ERF)、112・
・・算術機能演算器(IALU) 、113・・・レジ
スタファイル(IRF)、11.4・・・メモリライト
レジスタ(MWR)、115・・・メモリアクセスレジ
スタ(MAR) 、116・・・プログラムカウンタ(
FPC>、200・・・バスエラーディテクター、20
1゜201a、201b・−アドレス変換部、202−
・・ストアバッファ、20H3・キャシュメモリ部、2
04.205,206・・・インターフェイス部、40
0・・・応用プログラム、401・・例外処理用マイク
ロプログラム、402・・・バスエラー例外処理ルーチ
ン、 2000・・・バスエラーレジスタコントローラ
、2001.2001 a 、 2001 b 、 2
002a 、 2002b 。 2005、2005Q、 2005b 、 2006.
2006a 、 2006b 。 2007・・・セレクタ、2021・・・デコーダ。

Claims (1)

  1. 【特許請求の範囲】 1、実行すべき命令を記憶媒体から取込む命令フエツジ
    手段と、上記命令の解読と必要な情報の記憶媒体内のア
    ドレスを算出するデコードアンドアドレス手段と、上記
    命令に従つて必要な情報を取込んで処理する演算実行手
    段等を有し、上記命令フエツジ手段とデコードアンドア
    ドレス手段と演算実行手段をパイプライン処理する演算
    処理装置と、 上記記憶媒体へのアクセスを管理するメモリ管理ユニッ
    トとを備えた情報処理システムにおいて、 上記メモリ管理ユニットは、上記演算処理装置の構成要
    素のうち記憶媒体にアクセスする機能を有する各手段が
    、記憶媒体へのアクセスに失敗したとき、失敗原因等の
    詳細を含むエラー情報を保持する保持手段を上記各手段
    毎に備え、かつ上記保持手段に保持されたエラー情報を
    、退避・回復する退避・回復手段を備えていることを特
    徴とする情報処理システムのメモリ管理ユニット。
JP60283007A 1985-12-18 1985-12-18 計算機システムのメモリ管理ユニット Expired - Lifetime JPH0622001B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60283007A JPH0622001B2 (ja) 1985-12-18 1985-12-18 計算機システムのメモリ管理ユニット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60283007A JPH0622001B2 (ja) 1985-12-18 1985-12-18 計算機システムのメモリ管理ユニット

Publications (2)

Publication Number Publication Date
JPS62143149A true JPS62143149A (ja) 1987-06-26
JPH0622001B2 JPH0622001B2 (ja) 1994-03-23

Family

ID=17660017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60283007A Expired - Lifetime JPH0622001B2 (ja) 1985-12-18 1985-12-18 計算機システムのメモリ管理ユニット

Country Status (1)

Country Link
JP (1) JPH0622001B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987585A (en) * 1993-02-16 1999-11-16 Mitsubishi Denki Kabushiki Kaisha One-chip microprocessor with error detection on the chip

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57100680A (en) * 1980-12-15 1982-06-22 Hitachi Ltd Page fault processing system
JPS57161942A (en) * 1981-03-31 1982-10-05 Hitachi Ltd Operand check system for instruction
JPS5958550A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 命令フエツチトラツプ制御方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57100680A (en) * 1980-12-15 1982-06-22 Hitachi Ltd Page fault processing system
JPS57161942A (en) * 1981-03-31 1982-10-05 Hitachi Ltd Operand check system for instruction
JPS5958550A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd 命令フエツチトラツプ制御方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987585A (en) * 1993-02-16 1999-11-16 Mitsubishi Denki Kabushiki Kaisha One-chip microprocessor with error detection on the chip

Also Published As

Publication number Publication date
JPH0622001B2 (ja) 1994-03-23

Similar Documents

Publication Publication Date Title
CN106575218B (zh) 持久性存储屏障处理器、方法、系统和指令
EP0516126B1 (en) Fault tolerant multiprocessor computer system
US5317726A (en) Multiple-processor computer system with asynchronous execution of identical code streams
US5193175A (en) Fault-tolerant computer with three independently clocked processors asynchronously executing identical code that are synchronized upon each voted access to two memory modules
US7100096B2 (en) Special encoding of known bad data
US4995041A (en) Write back buffer with error correcting capabilities
JP4045062B2 (ja) ロード命令を実行する方法、プロセッサ、およびシステム
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
US7865769B2 (en) In situ register state error recovery and restart mechanism
JPH0752399B2 (ja) 記憶システム
US9560117B2 (en) Low latency cluster computing
US5596735A (en) Circuit and method for addressing segment descriptor tables
CN104798059B (zh) 在检查点外部处理写入数据的多个计算机系统
JPH11316680A (ja) デ―タ処理システムにおいてレジスタを保存し且つ回復するシステム及び方法
US5771247A (en) Low latency error reporting for high performance bus
US20220413870A1 (en) Technology For Optimizing Memory-To-Register Operations
CN111190774A (zh) 一种多核处理器可配置双模冗余结构
JPH07141176A (ja) コマンドリトライ制御方式
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
JPH0245845A (ja) データ処理システム
JPS62143149A (ja) 計算機システムのメモリ管理ユニット
US5673391A (en) Hardware retry trap for millicoded processor
JPS59172044A (ja) 命令制御方式
JPH0628251A (ja) 耐故障マルチプロセッサ・コンピュータ・システム
EP0476262B1 (en) Error handling in a VLSI central processor unit employing a pipelined address and execution module

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term