JPS59502157A - データプロセッサ及びその回復方法 - Google Patents

データプロセッサ及びその回復方法

Info

Publication number
JPS59502157A
JPS59502157A JP50352983A JP50352983A JPS59502157A JP S59502157 A JPS59502157 A JP S59502157A JP 50352983 A JP50352983 A JP 50352983A JP 50352983 A JP50352983 A JP 50352983A JP S59502157 A JPS59502157 A JP S59502157A
Authority
JP
Japan
Prior art keywords
state
instruction
address
information
control means
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
JP50352983A
Other languages
English (en)
Other versions
JPH0355851B2 (ja
Inventor
マクグレガ−・ダグラス・ビ−
モイヤ−・ウイリアム・シ−
ミルズ・マ−ビン・エ−・ジユニア
ゾロノウスキイ・ジヨン・イ−
Original Assignee
モトロ−ラ・インコ−ポレ−テツド
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 モトロ−ラ・インコ−ポレ−テツド filed Critical モトロ−ラ・インコ−ポレ−テツド
Priority claimed from PCT/US1983/001624 external-priority patent/WO1984002407A1/en
Publication of JPS59502157A publication Critical patent/JPS59502157A/ja
Publication of JPH0355851B2 publication Critical patent/JPH0355851B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

【発明の詳細な説明】 技術的分野 不発明はデータプロセッサに関するものであシ、特に記憶された状態情報を用い て中断された命令の実行を再開できるデータプロセッサに関する。
背 景 板 術 デジタルデータ処理システムは典型的な場合には特徴的な論理アドレス空間を有 するデータプロセッサ、物理アドレス空間内で@接にアクセスできる限られた容 量の一部メモリ、1つ又は複数の周辺制御装置の援助がある場合にのみアクセス でさるはるかに大きい容量の二次メモリ、および多数の通例の入力/出力テバイ スのうちの任意のデバイスを含む。特に大きな論理アドレス空間を有するデータ プロセッサを含むシステムにおいては、ユーザは彼の応用例かきわめてタイム・ クリティカル(timgcritical) であるので同等量の比較的高価な 一部メモリを備えることが正当化されるという決定を下してもよい。
しかし、ユーザはそれよシもしばしばはるかに大きな容量の比軟的安価な二次メ モリを備えるためにこれらの資金を使い、−次および二次メモリ間の彼のプログ ラム/データのスワツピング部分がプロセッサによって必要とされた場合にそれ らの部分に伴う時ト]的ネオI」を受け入れる。一般に、スワッヒング飢作の効 率は才北のあるプログラマがアフリケーションプログラムを一連の相互に関係は めるが%る程度自律的なオーバレイに賢明に区分化することにかかつている。そ のような経験のあるプログラマを発見又は開発するという問題をるる程度解決し 犬さな区分化されたプログラムを完敗させるのに不来が力・る費用をある程反少 なくするために、各アフリケーションプログラムが対応する物理アドレス空間が 現在プログラムに割当てられているか又は−次メモリに実際に存在するかに関係 なくプロセッサの全論理アドレス空間に直接的アクセスを有するように7みせか けることができるスーパバイザプログラムが開発された。そのよりな1仮想メモ リ”スーパバイザプログラムは典型的にはプログラムに割当てられた物理アドレ ス空間の部分の境界の外側で現在実行しつつあるプログラムによってアクセスを 検出するため連想メモリマツピングハードウェアに依存する。そのような’#、 DCyαults)”に応答して、プロセッサは1仮想”アクセスを認識し、も し適当な場合には必要とされるプログラムコード/データを二次メモリから一部 メモリにロードするスーパバイザプログラムの誤り取扱い部分へ分岐する前に何 らかの必要な状態(Jltαte)情報を記憶する。所望するならば、スーパバ イザはフログラムコード/データの−mk−次メモサメモリ次メモリに移動させ て社らしいコード/データのための余地を作ることかできる。代表的な場合には 次にスーパバイザプログラムは、誤り(lawtt)が起きた時にプロセッサが 実行しつつあった特定の彷令を再び実行する。どnはど多くの情報がスタックオ フ(stαck off) されなければならないかということや、プロセッサ が″誤った”命令を再冥行する屋例をするためにスーパバイザプログラムによっ て用いられる仮構(mgcAαルはm)にマシン′、′−よって異った。
一部の設計でに、プロー゛=ツサはあたかも割込みが起きたかのようにね々のユ ーザレジスタ、命令レジスタ、プログラムカウンタおよび現在の状態情報の内容 を記憶するタケでめった。スーパバイザプログラムは必要ならばプログラムカウ ンタを1バツクアツプしてプロセッサかどんな命令を実行しつつあるかを発見し 9次に誤った命令が最初に開始された場合にはできるだけプロセッサの状態に近 づけるためにレジスタおよび状態ビットを再構成しなければならなかった。プロ セッサ命令セットが比較的に規則的で予濁しうるものであるシステムにおいてさ えも、スーパバイザプログラムにかかる負担は非常に大きなものであった。更に 複雑なシステムでは、このアフローチは実施不可nしなことがしばしばあった。
ソフトウェアにかかる負担が耐えられないWiどになった時に、命令実行シーケ ンスの各ステップの光子を1マ一り”することによって’Ejff Q k行シ ーケンスを追跡するために追加のハードウェアが性別された。誤りが起きるそ、 マーク情報がレジスタおよび状態情報とともにスタックさnた。2−パバイザプ ログラムはなお誤シが起きた時にどの命令をプロセッサが実行しつつおるか全決 定し、その恢でハードウェアに対してその命令を再び実行するように命令しなけ nばならながったっ しかし、スーパバイザプログラムは″古い”マーク情報を ハードウェアに供給できた。ハードウェアが実行シーケンスの各ステップ−を進 み、その進行をいつものようにするにつれて。
追加制御回路は′現在の”マーク情報と′舌い”マーク情報とを比較するう特定 のステップが誤シが起きる前にすでに実行されたことを制御回路が決定すると、 制御回路はそのステップのWi kのみを抑制し1次に実行シーケンスが続行で きるようにする。ぴとたひ“現在の”マーク情報と“古い”マーク情報とが一致 しプロセッサが誤シの起きたステップに達したことを示すと、制御回路は実行シ ーケンスのその後のステップの実際の実行を干渉するのをやめた。この方法にょ シ、誤った命令を再び開始する負担はソフトウェアとハードウェアに分配された 。
勿論、誤った命令の再開を試みる前にその誤シの根底にある原因をはっきりとさ せることは依然としてスーパバイザプログラムのη任であった。
仮想メモリの使用を単一プロセッサシステムに制限tる仮想メモリ概念不米の制 約はない。事実1つのプロセッサが出会った誤りが並列プロセッサへの割込みを 発生させる多重プロセッサシステムが提案されている。割込みに応答して後湾の プロセッサはもう一力のプロセッサの誤りの原因となった問題をはつキシさせよ うと試みる。
一方、糾ったプロセッサにその斜υか解決されるのを待ちつつけているに丁き゛ ない。その課シかもう一方のプロセッサによってうまく解決てれると、誤ったプ ロセッサはアクセス誤シが起きたことも知らずに自らの道を進む。
誤シをはつ=bさせる仕事ヲ行うプロセッサのスーパバイザフログラムは、誤っ たプロセッサによって実行でれている命令に関する情報をグラとしないという点 に注目すべきであるつじかし、そのスーパバイザプログラムは誤った論理アドレ スの明細に対するアクセス、および誤シに出会ったプログラムのアドレス空間に ついてのある栓度の情報を持たなければならない。そのような情報は各バスサイ クルの過程の間に容易にラッチできるので。
その情報に誤りが起きた時にオリ用できる。少なくとも2つのプロセッサおよび 追加ラッチおよび割込み発生ノ・−トウエアを必要とするほかに、この仮想メモ リ技術は誤ったプロセッサをもう一方のプロセッサがその誤シを訂正するまで特 数させ、各課bi解決している間に両方のプロセッサを結ひつケル。
多室処理システムにおいてに、そのシステムの任意のプロセッサ刀・実行を待っ ている++:意のプログラムを実行できることが一般に望ましい。このことは割 込み又は時分割による匍、約の故に一時的に中断されているプログラムの再開− tzむ。いくつかのプロセッサが同じ命令セットを有する限りに2いては、その ような配列を妨けるハードウェアの制約はない。この技術か拡強されて命令の実 行過程における誤り状態によって中断されているプログラムの実行の再開を含む ようになった場合に問題が起きる。そのような中断されたプログラムの実行を適 切に再開するために、そのことを試みようとするプロセッサはそのプログラムを 最初に実行しつつあったプロセッサと同一シーケンスにある同一命令セットを実 行し々けれはならない。さもないと誤った命令が適切に完了するという保証はな い。各プロセッサのスーパバイザはそのような非互@性(1ncorrLpat ibilities’:lを検出しようと試みることはできるが、その同じスー パバイザプログラムは同時にいくつかのプロセッサについて実行中であるかもし れず、従ってプロセッサ特性に関する情報については。
メモリを基礎にした資源データベースの保全性に依存しなければならない。その ようなソフトウェア制御システムにおいては、誤ったプログラムの非互俟性プロ セッサ褥開が検出されずに行われるというかなりの危険が依然として存在する。
仮想マシン城境に2いては、データプロセッサは真のおよび存在しないシステム 資源の両方に対するユーザプログラムアクセスを支援できなければならない。一 般的に云って、仮想メモリデータプロセッサはユーザプログラムの論理アドレス 空間内におけるデータ/命令へのアクセスの大部分を支援するためにそのような システムに使用できる。しかし、そのようなプロセッサは存在しないシステム資 源へのアクセスを支援することはでさない。
従って、スーパバイザはそのような第1j用できない資源へのアクセスを阻止し 、システム内で実除にオ)」用できる互侠性のある資源を用いてアクセスをシミ ュレートするにすきなかった。次に、スーパバイザは、誤った命令に対して存在 しない針跡へのアクセスが成功したように思わせた。
発明の要約 従って2本発明の目的は十lth面に首尾よく実行さγLだ命令の部分を再実行 する必要なしに中断された命令の実行を再開できるデータプロセッサを提供する ことである。
本発明のもう1−)の目的は、同じ型の別のデータプロセッサがその命令の実行 を再開できるようにする方法“で命令の実行を中断できるデータプロセッサを提 供することである。
不発明の更にもう1つの目的は、別のプロセッサか同じ型のものでるる場合にの みその別のプロセッサによって中断さIした命令の実行を再開するデータプロセ ッサを提供することでめる。
本発明のこれらのおよびその他の目的は2例外条件の発生を条件としてデータプ ロセッサによる少なくとも1つの命令の実行を制御する命令実行制御手段、およ び例外条件が発生した時点における命令実行制御手段の状態?示す1セントの情 報を記憶する例外処理中段を有するデータプロセッサにおいて達成される。不発 明においては、命令実行制御手段によるか令のうちの所定の1つの実行に応答し て記憶された1セツトの状態情報を検索し。
所定の妥当性恢食コードを含む恢索された状態情報にのみ応答して検索された状 態情報によって示される状態に命令寅行’iii制御手段を復元する状態復元手 段をデータプロセッサは含んでいる。
1面の簡単な説明 第1図に2本発明の仮想メモリデータプロセッサを有する仮想メモリデータ処理 システムのブロック図である。
第2図に、第1図の仮想メモリデータプロセッサのブロック図である。
第3 図、h 、 第27の仮想メモリデータプロセッサの実行装置(ユニット )のブロック図である。
第4図に、第3図の実行装置(ユニット)の高セクションのブロック図である。
第5区に、第6図の実行装置(ユニット)の低セクションのブロック図でるる。
第6図に、第6図の実行装置(ユニット)のデータセクションのブロック図であ る。
第7図は、第2図の仮炉メそりデータプロセッサのフィールド翻訳装置(ユニッ ト)とそこにあるその他の傍能装置との関係を示すブロック図である。
発明の詳細な説明 第1図に示しであるのは、仮想メモリデータプロセッサ(yynp)12によ# )発行された論理アドレス(LADDR)が物理バス(PBUS) 16上の出 力に対する対応する物理アドレス(PADDR)にメモリ管理装置(ユニット)  (MMU)14によってマツプされる仮想データ処理システムである。同時に 、アクセスを制御するためにVMDP12によって与えられた裡々の論理アクセ ス制御信号(LCNTL)は、 MMU14の制御の下で震央子装置(modi fier unit) 18によって退昌に計時芒fた物理アクセス制御信号( PCNTL)に変渋される。
特定前3囲の物理アドレス(PADDR)に!巳、答して、メモリ20 にエラ ー検出および訂正回路(EDAc> 22と協細してPRUS 16上の物理ア クセス1仰4M号(pcsrL)と同期してVMDP12とデータ(DATA) を女俟する。データにエラー〃・使出さnると、EDAC22kXエラーの練カ )に応じてバスエラーを信号で知らセーるが、又はVMDP 12に対して交換 を再試行(RETRY)するように要求する。
別の物理アドレスに応答して犬芥量記付装置インタフェース24にVDMP 1 2と励煎してデータを大容量記憶装置26へ、又は犬容前記* g it 26 カーら転送する。もしエラーが転送中に起きると、インタフェース24はバスエ ラ(B BB R> 全信号で知らせるが、又は過当な場合には再試行(RET RY)を要求してもよい。
更に別の物理アドレスに応答して、直接メモリアクセス制″@装置(DMAC)  28ζVMDP12 がらデータを受けとりデータ転送オペレーションを定義 する。そのオペレーションを行うために解放されるとDMAC28は適当なP  CNT L組を用いてVMDP12に対してバスの制御を散髪するように定期的 に要求する。バスの制御が冴えられるとDMAC28はメモリ20内で、又はメ モ1720 と大容量記憶装置26との間でデータブロックを転送する。そのよ うな転送期間千にEDAC22又に大容量記憶装置インタフェース24によって エラーが検出されると、DMAC28はBERRが信号で知られたか又iHpz rRy v:信号で知らされたかによって転送を打切るか又に再試行する。
MMU14が特定の処理アドレス(LADDR)を対応する物理アドレス(PA DDR)にマツプすることができない場合にはMMU14はアクセス誤り (F AULT)を信号で知らぞる。MMU14に対するチェックとして、また同じ( DMAC28に対するチェックとして、ウォッチドッグタイマ30を銅え。
もし物理テバイスが物理アクセス側倒信号(pcptrL)に関連して適当々F #間内に物理アドレス(PADDR)に応答しなけれはバスエラー(BERR) を信号で知らせてもよい。
データアクセスバスサイクルの期間中にRETRYが要求されると、オアゲート 32および54はそれぞれVMDP12のEEERおよびHALT (停止)入 力を起動させる。VMDPバスサイクルの期間中のそのBEER入力およびHA LT入力の両方の同時起動に応答してVMDP 12は現在のバスサイクルを打 切p 、 RETRY信号が終了するとそのサイクルを再実行する。
所望するならば、VMDP12のオペレーションはHALT信号の慎重な使用に よって外部的に制御してもよい。オアゲート64を介してのHALT入力のみの 起動に応答して9VMDP 12は現在のバスサイクルの終了時に停止し、 H ALT信号の終了によってのみオペレーションを再Iする。
フロセッサ砂、倫サイクルの銅山」中のそのEERR入力のみの起動に応答して 、VMDP12は現在のバスサイクルを打切シ、状態レジスタの同容を内部に保 管し、スーパバイザ状態に入り、追跡状態がオンであればそれをオフにし、バス エラーベクトルナンバーを発生さぞる。次にVMDP12にプロセッサの現在の 内部文脈(coルtばt)を反映する情報ブロックをメモリ20 のスーパバイ ザスタック領域内にスタックし、ベクトルナンバーを用いてスーパバイサブログ ラムのエラー処理部へ分岐する。
この時点まではVMDP 12のオペレーションはモトローラ社のAfC680 00マイクロプロセッサのオペレーションと同一である。しかし、VMDP12 が3fc68000と異なる主な点は、 BEu:の剪定Cazztrtion )に応答してスタックされる情報の量である。MC68000によシスタックさ れる情報は保管された状態レジスタ、プログラムカウンタの現在の内答2通常は 現在実行中の命令の第1語である命令レジスタの同容、打切られたバスサイクル によってアクセスされつつあった論理アドレス、および打切られたバスサイクル の特性、即ち読出/書込、命令/データおよび機能コードからなる。上記の情報 に加えてVMDP 12は内部マシン状態についてはるかに多い情報をスタック するように作られている。例外ハンドラがエラー〇膚決に厄功すると、その最後 の命令はVMDP12の制御を打切られたプログラムに戻す。この命令の実行中 に、追加のスタツクされた情報は検索ブれVMDP12の適当な部分にロードさ し、バスエラーか起きた時に存在した状態を復元する。
アクセスが存在しない地這&kに対して試みられた場合のような一部の状況の下 では、スーパバイザハ蚤求されたアクセスを行うが異なる資源を第1j用するこ とを選択してもよい。誤ったアクセスか読出であれは、スーパバイザはアクセス された情報をスタックにおける適当な位置に記憶することができる。あたかも存 在しない周辺装置が実捺に比、答したように誤った命令にみえるようにするため に、スーパバイザにスタックにフラグをセットしアクセスかすでに行われたこと を示すことができる。誤った命令の実行を再開する直前にVMDP12はフラグ をチェックすることができ、もしセットされていればあだかを再開できる。従っ て、誤ったプログラムはアクセスされた資源が実際には存在しないことに気つか ない。
VMDP12の好マしいオペレーションをVMDP12’のマイクロプログラマ ブル実施例の内部編成を示す第2図を参照して下記に説明する。VMDP12の 図示されている形は下記に引用するいくつかの米国特許に詳細に記述されている モトローラ社のAfC68000に非常によく似ているので。
ひとたびVMDP12の内部アーキテクチャの一般的理解が見られたならに、V MDP12をMC68000と区別してVMDP12 が仮想メモリを支援でき るようにする独特な面に説明の重点をおくことにする。
VMDP 12.U A(C68000と同様にバイブラインマイクロプログラ ムドデータプロセッサである。バイプラインプロセッサに2いては、各命令は典 型的にμ前の命令の実行中に取aさi(fgtch)、取ItIテれた命令の翻 訳(intarprg−tation )は前の命令が終る前に通常始まる。マ イクロプログラムドデータプロセッサにおいては、各命令は命令によって定義さ れた小さいいくつかのオペレーションを行う一連のマイクロ詰合として実行され る。もし所望するならば、ユーザ命令はマイクロ命令との浪乱をさけるためにマ イクロ命令と考えてもよい。MC68000およびV、MDP12においては、 各マイクロ命令はマイクロ命令順序付けおよび& Wbコード発生を制御するマ イクロワードおよび杉、舵装置間の情報の実際の経路指定およびVMDP12  (ハ)の特殊な機能装置の起動を制御する対応するナノワードf:含む。このこ とを心に留めておいて、典型的な命令実行サイクルを下記に説明する。
各命令の実行中の適当な時に、先取F) (prefetch)マイクロ命令が 実行される。そのマイクロワード部にマイクロROM36からマイクロROM出 力(ランチ38 にロードされると1機能コードバッファ40 が論理アドレス (LiDDR)の機能コード(FC)部を出力して命令サイクルを示すことがで きるようにする。同時にナノROM42からナノROM出力ラッチ44にロード されると対応するナノワートニパス制御装誼46に対して奮令取出しバスブイク ルを行うように要釆し、実行装置48に対して次の命令の第1語のb hアドレ スをアドレスバッファ50に与えるように命令する。PRUS 16の市j御を 伸るとバス制両装置46はアドレスバッファ50が論理アドレス(LADDR) のアドレス作を出力できるようにする、その板間もなくしてバス制御装置46は 適当なデータストローブ(LCNTL信号の一部)を与えてメモリ20を起動さ せる。メモリ20が売求された情報を与えると、バス市薯j御装置46は命令レ ジスタ捕獲(JRC)52か次の命令の第1語金PRUS16炉ら入力できるよ うにする。現在の命令の実行のその後の時点において、別のマイクロ命令が実行 されて次の命令の第1蒔をIRC52から命令レジスタ(JR) 54に転送し 9次の語をメモリ20からIRC52にロードする。lR54の命令の1iif 類に応じて、IRC52の語は即値データ、オペランドのアドレス又はその後の 命令の第1語となる。命令セットおよびそのマイクロ命令シーケンスの詳細は、 1982年4月16日付でグンターらに発行された1マイクロプログラムドデー タプロセツサ用2レベル制御記恨装置”と題する米国%許i 4,325,12 1号に詳述されている。
次の命令のk 1 m l= lR54にロードされるやいなやアドレス1テコ ーダ56はその命令の一部の制御フィールドの俵号會島姑し、lR54におりる 特定の都令の原初のマイクロシーケンスにおける第1マイクロ昂令のマイクロア ドレスを決定する。同時に、違法命令テコーダ58はlR54における命令形式 の伎五を開始する。その形式が正しくなにとか決定されると、違法命令テコーダ 58は違法命令シーケンスの第1マイクロ館令のマイクロアドレスを与える。形 式エラーに応答して例外論理60はマルチプレクサ62にアドレス1テコーダ5 6によって与えられたマイクロアドレスの代シに違法命令テコーダ58によって 与えられたマイクロアドレスを使用させる。従って、現在実行中の命令の最後の マイクロ命令が実行されると、そのマイクロワード部はマルチプレクサ62が適 当なアドレスをマイクロアドレスラッテ64に与えることができるようにし、一 方そのナノワード部は命令レジスタテコーダ(IRD)66が次の命令の第1語 をlR54からロードできるようにする。選択されたマイクロアドレスがマイク ロアドレスラッテ64にロードされると、マイクロROM56 fiそ゛れぞれ のマイクロワードをマイクロROM出力ラッチ38に出力し、ナノROM 42  h対応するナノワードをナノROM出力ラッテ44に出力する。
一般的に云って、マイクロROM出力ランチロ8にロードされる各マイクロワー ドの一部分は実行される次のマイクロ命令のマイクロアドレスを指定する一方、 別の部分に代替のマイクロアドレスのうちのとnipマルテプレフサ62によっ て選択されマイクロアドレスラッチ64に入力さするρ・を決定する。一部の詰 合においては、指定された万ベレーション金達奴するために2つ以上のマイクロ シーケンスが実行さnなければならない。間接アドレス分解(γtrotμti 。rL)のようなタスクは一般に訪令内の追加制御フィールドを用いて指定てれ る。これらの追加マイクロシーケンスに対する第1マイクロ命令のマイクロアド レスはlR54における制御・清報を用いてアドレス発デコーダ68 によって 展開(develop)される。よシ簡単な形の命令においては、第1マイクロ シーケンスは代表的な配合には企らかの準備タスクを行い2次にマルチプレクサ 62がアドレス発デコーダ68のアドレス6部分によって展開されるような実際 のオペレーションを行うマイクロシーケンスのマイクロアドレスを選択できるよ うにする。よシ複雑な形の命令においては、第1マイクロシーケンスは第1準備 タスクを行い9次にマルチプレクサ62がアドレス発デコーダ68のアドレス部 分によって展開されるような次の準備マイクロシーケンスのマイクロアドレスを 選択できるようにする。この追加準備タスクが行われると2次に第2マイクロシ ーケンスはマルチプレクサ62がアドレス発テコーダ68のアドレス3部分によ ってihされるような笑顔のオペレーションを行うマイクロシーケンスのマイク ロアドレスを赤択でさるようにする。いずれの賜金にも、谷命令の最後のマイク ロシーケンスの最後のマイクロ詰合にマルチプレクサ62がアドレス1デコーダ 56によって展開されるような次の命令の第1マイクロ館令のマイクロアドレス に8択でさるようにする。この方法によって各命令の実行は過当なシーケンスの マイクロ命令を通じて進行する。マイクロアドレスシーケンス辿択徹罷のよにi 先金な説明は。
1982年7月27日付でトレテンニツタらに発行された。
マイクロプログラムドデータプロセッサ用命令しジスタシーケンステコーダと題 する米国特許第4,342,078号に述べられている。
マイクロワードとは対照的に、ナノROM出力“ラッテ44にロードされるナノ ワードは、レジスタti a (高) 70およびレジスタ制御(低2よひテー ク)72に河して制御をおよは丁ことによって実行装置48門のいくつかのレジ スタ内への、そしてもし必要ならばそれらのレジスタ間におけるオペランドの経 路指定を間接的に制御する。一部の状況の下では、ナノワードにフィールド翻訳 装&74がIRD66の命令から特定のビットフィールドを抽出して実行装置4 8に対して入力できるようにする。ナノワードはまたAU制@76およびALU 制御78に制御をおよぼすことによって実行装置48内の有効アドレス計算およ び実際のオペランド計算を間接的に制御する。適当な状況の下でにナノワードは ALU制御78が実行装置48による谷オペランド計其のに末生じる条件コード を状態レジスタSRにLL憶できるようにする。ALU %l 御78の更に詳 しい説明は、1982年1月19日付でグンターらに発行された“テークプロセ ッサ用ALUおよび条件コード制御装置”と題する本国へ許t)64 p 31 2 t 034号に述べられている。
第3図から判るように、VMDP12の実行装置48にMC68000の実行装 置と同様にそnぞれアドレスおよびデータバス80および82のそれぞれのセグ メントに選択的に接続できる高セクション48A、低セクシヨン48Bおよびデ ータセクション48Cを含む。実行装置48は米自特許第4,296,469号 に記述されているMc68oooの実行装置ときわめてよく似ているので、共通 の做nt装置についてはごく簡卑に説明するたけにしておいて、その後にVDM P12が仮想メモリを支援できるようにする新たな紮子についてよシ詳しく説明 することにする。
第4図に示すように、褐セクション48Aは62ビツトアドレスオペランドの最 上位16ビツトを記憶するための1セツト9つの高アドレスレジスタAOH−A 7’H,62ビツトテータオベランドの最上位16 ビットを記憶するための1 セツト8つの高データレジスタnon−n7g、 −=aアドレスレジスタAT H,一時高テデーレジスタDTH,7)”レスおよびデータバス80および82 の高セクションに与えらrL fc 7rベランドについて算術計算を行うため の演算装置KAUH+ 16ビツトオベランドについて32 ビットオペレーシ ョンを可能にするだめの符号連帳回路84.およびプログラムカウンタPCHお よびアドレス出力バッファAOBHの最下位16ビツトから王として構成される 。第5区に示tように、低セクション48Bは32 ビットアドレスオペランド の最下位16 ビットと記憶するための1セツト9つの但、アドレスレジスタA OL−A7’L、アドレスおよびデータバス80および82.り低セクションに 与えられたオペランドに関する算術計算を行うための演算装置低AUL、多Qレ ジスタ移ゴ′オペレーションに用いられる優先順位エンコーダレジスタPER, およびプログラムカウンタPCLおよびアドレス出力バッファAOBLの最下位 16ビツトから主として整反される。第5図は1だフィールド鈴訳装≦740F TU レジスタ部とアドレスおよびデータバス80および82の低セツションと の関係を示す。第6図に示ず工うに、データセクション4bcas2ヒツトデー タオペランドの最下位16 ビットでもよい16 ビットオペランドを記憶する ための1セツト8つの低データレジスタDOL−D7L、16ビツトオペランド マークを発生さイるデコータ゛レジスタDCR,アドレスおよびデータバス80 および82のデータセクションに与えられるオペランドに関する算術および論理 演算を行うための演算およびmN&置装LU、 ALUバッファレジスタALU E、マルチワードシフトス−ベレーション用のALU拡張レジスタ、および多重 化テーク入力および出力バッファDEINおよびDOE〃・ら王として栴厘さf Lる。
これlでのところはyyDP12を、+fC68000と共通なハードウェア% 徴の点から説明してきた。VMDP 12はまたMC68000に?や似た方法 でエラー条件に比、答する。MMU14は誤シ(FAULT)信号全発生妊ぜて アドレスエラーを信号で知らせるか、その他の両辺装置回路はBERR信号金量 してバスエラーを報資する。いずれの場合にも。
VMDP12はオアケート32ヲ介してBEER信号を受信する。EEI?A  信号に応答してバス制伽;装飯46はエラーを例外敵影6Dに知らせ1次に誤シ バスサイクルを規則正しく?・了させる。次に例外論理60はマルチ7レクサ6 2にバスエラー例外ハンドラマイクロシーケンスのマイクロアドレスを与えてマ イクロアドレスラッチ64に入れさせる。この時点において、 MC68000 は例外論理60によって寿えられたマイクロアドレスをマイクロアドレスラッテ 64にロードするだけでめシ、制御は例外ハンドラマイクロシーケンスに移って 下記の情報をスタックアウトCztack oat ) する。
syB特殊システム状態語バス AOBIIアクセスアドレス高 、401)Lアクセスアドレス低 IRD 命令レジスタデコード SR状態レジスタ PCII プログラムカラyり冒 PCL プログラムカウンタ低 このすH報に辷常りユエラーの原因を法定するのに十分でろる炉、この1官報V ユエラ−〃・解決さIした後に現在の状態が復元でもるようにするには不十分で める。征って。
ntnp 12 rtx 9j+外ハンドラマイクロシーケンスのマイクロアド レスをロードするhすに、そのQEO状忠、に関する追加情@全す部に休止する 。このことを達成するために。
VMDP12は必安な状態悄戦を捕獲するためいくつかの追加レジスタを有して おシ、いくつ〃゛、の追加アクセス経路が一部の現存のレジスタに与えられる。
ψりえに、第2図に示アように、VMDP12は誤りが起きた時にマイクロアド レスをマイクロアドレスラッチに記憶するタメマイクロアドレス鈍鑓ラッチ86 ケ有する。フィールド翻訳装置74同には第7図に示すように特殊状態語白部( syz)レジスタ887Ji’v=えらγしてい1下記を保管する;PR(例外 −理60から)トラツン%%ifj外ラッチTR(vlj外−理6Dから)トラ ップトレース例外ラッテTP(SR刀−ラ))レースベンゾインクラッテLP  ループモードラッテ(新しいビット)EX (ALUから)みえないX状態ビッ トARx (PER刀)ら)優先順位エンコーダ出力レジスタセレクタ TI’N (例外舖址60から)トラップベクトルナンバーラッチ 更に2MC68000においては R/W 院出/書込(R汐)および FC誤ったアクセスに対する檄nにコードのみを&盲したフィールド翻訳装置7 4内の特殊状態語バス(5SFB )レジスタ90は今匹は下記を保管する。
IF ナノROMビットNIRC(IRCへの命令取出し)DF ナノROMビ ットNDBI (DBINへのデータ取出し)72M 読出−変更一薔込サイク ル HB ナノROMビットNlOH(DOBからの、又はDE INへの高バイト 転送) BY バイト/ワード転送 ひとたびこの追加状態情報がラッテされると、VMDP12は例外−理60によ って与えられたマイクロアドレスをマイクロアドレスラッチ64にロードし2例 外ノーントラマイクロシーケンスの実行を開始する。VMDP12の例外ハンド ラマイクロシーケンスにおいて最初のマイクロ命令は実行装置48におけるアド レス計算および出力経路をクリtfしなければならないので、スタックアドレス は安全に計算されMMU14に与えられる。従って、火打装置48にμいくつか の追加レジスタが備えられていて現在あるアドレス、データおよび制御情報を記 憶し、第4図に示しである高セクション48Aには6つの仮想アドレス出力およ びAOBBにおけるアドレスの捕獲を促進し、第5図に示しである低セクション 48Bには6つの仮想アドレス一時世レジスタVAT1L −VAT5L が儒 えられていてJULの出力および、40 BLにおけるアドレスの捕獲を可能に し、第6図に示しであるデータセクション48Cには2つの仮想データ一時レジ スタVDT1−VDTか備えられていてfBl、’t;=情報をFTUに配付し データをDOEに記憶する。火打装置48をクリアした恢に、偽外/・ンドラは スタックアドレスを計算し、下記の情報をスタックする。
SR状態レジスタ PCB プログラムカウンタ高 PCL プログラムカウンタ低 VORスタックフレーム形式およびベクトルオフセットsyB %殊システム状 態語ノくス AOEHアクセスアドレス高 AOBL アクセスアドレス低 DOB データ出カバソファ DIRデータ入カパツファ JRC命令レジスタ捕獲 MAL マイクロアドレス捕獲ラッチ ALUB ALUBの内容 FTU フィールド翻訳装置レジスタ ATE アドレス−特高 ALU ALU出力ラッチ ATL アドレス一時低 AUM AUラッテ高 AUL AUラッチ低 DCRLテコータラッテ PEAL PER出力レジスタ ss;p’r特殊状態語内部 JR命令レジスタ DTHチルター特高 DTL チータ一時低 IRD 命令レジスタテコード ALUE ALUEレジスタ 次K fq 外ハンドラマイクロシーケンスにスーパバイザプログラム中のエラ ー回後ルーチンの方向に向かう。スタックされた状態情報を用いてスーパバイサ ブログラムは誤シの原因を決定でき、もし適当ならば問題の確定(7i、)を試 みることができる。例えは、対応するp9J理アドレスを持たないkr、5にア ドレスへのアクセスは、プログラム/データのプログラムを大容量記憶装置26 からメモリ20 にロードすることを要求するに丁き゛ないことがある。勿論そ の他の処理を誤ったプログラムの再開前に行ってもよい。
CP酊fさjしたプログラムへ?till伜を戻すために、 AfC6800( 1およびVMDP12の両方のスーパバイザプログラムは例外からの復帰(RT E)命令を貴行する。MC68(100において探この命令は、その例外が詰合 視界で起きた種類のものでめった一合にの与芙有される。促って、この命令に対 するマイクロシーケンスはスタックから状ガレジスタSR2よびプログラムカウ ンタpcn −pcL−7揶びロードし。
次にそのアドレスがプログラムカウンタにあZ命令に制御を送り得る次はでるる 。VMDP12においてにこの命令はでた命令の実行申に典型面に匙きるアクセ ス誤りコ1らのtit’IQにも用いられる。促って、このマイクロシーケンス のf77勘のマイクロ命令はスタックからVOR語を取出しスタックフレーム形 式を決定する。短い形式力上示されると、マイクロシーケンスは#(1’680 00におけるように進行する。他方、長い形式か示されると、いくつ〃・の他の 語がヌタツク〃ユら取出芒rして全フレームがメモリにおいて使用できることを 保証する。フレーム形式が短くも長くもないと、VMDP 12はスタックフレ ームが同違っているか、又は互ム性のない型のプロセッサによって発生させられ たものと仮定して、制御ラスタツクフレーム形式エラー例外ハンドラマイクロシ ーケンスに送る。この段階において別の誤シが発生してスタックフレームの一部 カメモリ20から偶然にスワップさrしたことを示すと、同じアクセス誤シ処理 手続がスタックの残りを検索するのに用いらrしる。
状態情報をスタックするマイクロシーケンスの期間中に、マイクロアドレス捕獲 ラッテ86に含1れるマイクロアドレスは第7図に示すようにBCバスの−hを 介してFT(Jに結合憾れる。同時に、ψ正妥邑性使食装置(seυvalid ator) 92 rl、VMDP12円に言まれるマイクロコードのバージョ ンを独特の方法で識別するコード% Bcババス第1−用馬1巳な部分にh7加 (imprtpp) する。この組合せ話はその佐実行装置48のデータセクシ ョン48CのDOBに転送てCデータバッファ94ヲ介してメモリ20に出力さ nる。命令継続マイクロシーケンスの妥当性恢歪段階のhに、 MAL語にスタ ック〃・ら取出され、貴行装置48のデータセクションABCにおけるIRC5 2とDEINの両方にロード畑れる。MALはDBINからFTUに転送され、 BCバスに矛S合される。次に改正妥当注検倉装置92はMALのバージョンナ ンバー愉’ 分(!: F’4 WJバージョンナンバーとを比軟する。それら のバージョンナンバーか同じでなければ、改正妥活性検丘装置92はブランチ制 御装置9乙に信号を出して市11懺をスタックフルー人形式例外ハンドラマイク ロシーケンスに転送する。でもなけれは改正妥轟性検査鋲直92はマイクロシー ケンスがMALのマイクロアドレス都会をアドレス4ランチ98 にロードでき るようにするにすぎない。
ひとたびスタックフレームが妥邑であることか決定されると、マイクロシーケン スはクリティカル段階に入シ。
この段階においてはいかなる誤シも二1糾りと考えられ。
VMDP12は外部的にリセットされるまで処理をやめる。
この段階のiM]に、スタックの情報の残りに取出さfて。
もとの位置又はいくつ〃・の一時レジスタに貴びロード烙γしる。例えば、マイ クロアドレス捕獲ラッテ86 によって梱酋されたマイクロアドレスランチ64 の内容はアドレス4ランチ98にロードされる。し〃\し、厳恢のスタックアク セスの恢にのみ、JUII−AULおよびSRの内容が一時レジスタから復元さ 扛る。この詰合1絖マイクロシーケンスの最後のマイクロ命令f AOBE、  AOBL、 FTUおよU DOBの内容を復元し、バスか1.伽装D’、 4 6に信号を出してSFJ’B90にある情報を用いて誤ったバスサイクルを再ト し、マルチプレクサ62に対してアドレス4ランチ98のマイクロアドレスラッ テするように要求する。
好lしい形においては、5SWB 90の再実行ピッ) RRを伏iすることに よって命令貼絵マイクロシーケンスの最後のマイクロ命令によって与えられる再 開信号に応答する。スーパバイザかスタックにおけるRB ヒツトをセットして ないと、バス制御装置46は5SIr/B90内のその他の情報の制御 次にそのサイクルか首尾よく完了した時を9ii外輪理60に信号で知らせる。
他方,スーパバイザがRRビビッをセットすると,バス制御装置46はバスサイ クルを再実行ぜずに,サイクルが完了したことを例外論理60に信号で知らせる に丁きない。サイクル完了信号に応答して。
ν:」外,Qu60Uマルテフレクサかアドレス4ラツチのマイクロアドレスを マイクロアドレスラッテ64に出力できるようにする。次に誤った命令ばあたか も誤りが起さなかった刀−のようにVMDP12の餉体を再開する。
VMPD12はまた。M(?68000と違2て埃在災行〒のユーザプログラム がスーパバイザ状態で実行やであるという賢覚をつくシ出すことかでさる。この ことに、状態レジスタに> IQるスーパバイザ/ユーザピット全アクセスする すべての命令t % 独命令にすることによって行われる。
従って、スーパバイ−!7′/ユーブビットを変更又は読出す試みがユーザプロ グラムによって行われると、制御ハ必ず自動的にスーパバイザに戻る。次にスー パバイザはSRの適当に変更されたイメージを準備しそれをユーザプログラムに 逗子ことかでさる。次に、具のSRから絶縁されているユーザプログラムにそれ がスーパバイザでめるかのように思わせることができる。真のスーパバイザの叉 飲をうけてこの5.「Φスーパバイザはその他のニーサブログラムの実行を制御 できる。ユーザプログラムから真の、および存在しない資源へのアクセスを1釦 するこの能力は、兵のユーザであれ、ル似スーパバイザであれ。
ユーザがVMDP12を用いて仮想マシン壊境をつくシ出すことができるように する。
F”lに;:、 3 国:際調頁報吉

Claims (1)

  1. 【特許請求の範囲】 10例外条件の発生を条件としてテータプロセツケによる少なくとも1つの命令 の実行を?1iiI御する命令実行制御手段と。 批記命令笑行市()91手段に結合され、前記例外条件の時点における前扼命令 央行制御手段の状態を示す1セツトの情報を記憶する例外処理手しとを含むデー タプロセッサにおいて。 前記命令実行制御手段に結合され、前記命令のうちの所定の1つの前記命令実行 制御手段の実行に応答して前記状態↑合軸のに憶された1セツトを検索し、所定 の妥当性検査コードを含む前記の枝素された状態情報にのみ応答して前記の検索 された状態情報によって示される状態に前記命令実行制御手段を復元する状態復 元手段を、具えるデータプロセッサ。 2゜例外条件の発生を条件として少なくとも1つの命令のテータプロセツ、すに よる実行を制御する命令実行制御手段と。 前記命令実行制御手段に結合され、前記例外条件が発生した時点における前記命 令実行制御手段の状態を示す情報を記憶し、前記例外条件が解決された後に前記 の記憶された状態情報を検索し、妥当性検量信号に応答して前記の@累でnた状 態情報を用いて前記命令実行制御手段の状態を復元する例外処理手段と。 MiJ記例外処理手段に結合され、所定の妥当性検査コードを前記例外処理手段 に与えて前記状態情報の一部として記憶し、前記妥当性検査コードを含む前記の 検素された状態情報にのみ応答して前記妥当性検査信号を与える妥当性検査信号 と、を含むデータプロセッサ。 6、例外条件が発生した時点におけるデータプロセッサの状態を示す情報を記憶 するステップと。 所定の妥当性検査コードを前記状態情報の一部として記憶するステップと。 前記例外条件が解決された後に前記の記憶された状態情報を検索するステップと 。 前記妥当性検表コードを含む前記の検索された状態情報のみに応答して前記の検 索された状態情報によって示される状態に前MCデータプロセッサの状態を復元 するステップとを含む。 データプロセッサによる命令の実行中に発生する例外条件から回復する方法。
JP50352983A 1982-12-07 1983-10-17 データプロセッサ及びその回復方法 Granted JPS59502157A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US1983/001624 WO1984002407A1 (en) 1982-12-07 1983-10-17 Data processor version validation
US447600 1989-12-08

Publications (2)

Publication Number Publication Date
JPS59502157A true JPS59502157A (ja) 1984-12-27
JPH0355851B2 JPH0355851B2 (ja) 1991-08-26

Family

ID=22175501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50352983A Granted JPS59502157A (ja) 1982-12-07 1983-10-17 データプロセッサ及びその回復方法

Country Status (1)

Country Link
JP (1) JPS59502157A (ja)

Also Published As

Publication number Publication date
JPH0355851B2 (ja) 1991-08-26

Similar Documents

Publication Publication Date Title
JPS59502159A (ja) 仮想マシンデ−タプロセツサ
US4635193A (en) Data processor having selective breakpoint capability with minimal overhead
US4493035A (en) Data processor version validation
JPS59502158A (ja) 仮想メモリデータプロセッサ及びそのアクセス誤り回復方法
US5003458A (en) Suspended instruction restart processing system based on a checkpoint microprogram address
US4841439A (en) Method for restarting execution interrupted due to page fault in a data processing system
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
JPH07141176A (ja) コマンドリトライ制御方式
JPS59502157A (ja) データプロセッサ及びその回復方法
JPS6329292B2 (ja)
JPS58154043A (ja) 情報処理装置
JPH0192843A (ja) データ処理装置
JPH0147818B2 (ja)
JPS58106641A (ja) パイプライン命令実行制御方式
JP2840926B2 (ja) マイクロコンピュータおよびマイクロコンピュータのデータ自動バックアップ装置
CA1223079A (en) Data processor having selective breakpoint capability with minimal overhead
JPH03103924A (ja) データ処理装置
JPS58166454A (ja) デ−タ処理装置
JPH04181331A (ja) 命令リトライ方式
JPS6368928A (ja) プログラムストアシステム
JPH0677234B2 (ja) 情報処理装置
JPS59220844A (ja) 命令再実行制御方式
JPS62282338A (ja) デ−タ処理装置における移送命令の再試行方式
JPS5810248A (ja) 状態履歴記憶方式