JP3118002B2 - 障害を有するマイクロ命令を訂正するためのデータ処理装置 - Google Patents

障害を有するマイクロ命令を訂正するためのデータ処理装置

Info

Publication number
JP3118002B2
JP3118002B2 JP09509734A JP50973497A JP3118002B2 JP 3118002 B2 JP3118002 B2 JP 3118002B2 JP 09509734 A JP09509734 A JP 09509734A JP 50973497 A JP50973497 A JP 50973497A JP 3118002 B2 JP3118002 B2 JP 3118002B2
Authority
JP
Japan
Prior art keywords
microinstruction
address
random access
processor
access control
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 - Fee Related
Application number
JP09509734A
Other languages
English (en)
Other versions
JPH10500517A (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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH10500517A publication Critical patent/JPH10500517A/ja
Application granted granted Critical
Publication of JP3118002B2 publication Critical patent/JP3118002B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【発明の詳細な説明】 本発明は、障害を有するマイクロ命令を訂正するため
のデータ処理装置に関する。
マイクロプロセッサまたはプロセッサ全般のプログラ
ミングに使用されるプログラミング言語を、一般にアセ
ンブラ言語またはアセンブリ言語と称する。個々のアセ
ンブラ命令を、マクロ命令と称し、各マクロ命令は、通
常は複数のマイクロ命令からなる。マイクロ命令は、マ
イクロプロセッサまたはプロセッサが実行できる基本命
令または原始的な命令である。マクロ命令は、マイクロ
命令より高水準の言語であり、通常は、実行の完了に複
数の状態を必要とする。特定のマイクロプロセッサまた
はプロセッサに応じて、特定のマクロ命令を実施するの
に必要なマイクロ命令が変化する。
マイクロプロセッサ・システムまたはプロセッサ・シ
ステムは、基本的に3つのメイン・モジュールすなわ
ち、マイクロ制御論理モジュール、制御メモリ論理モジ
ュールおよびデータ経路モジュールからなる。重要な2
つの主要な機能区域は、マイクロ制御論理モジュールと
制御メモリ論理モジュールである。データ経路モジュー
ルは、システムを介するデータの操作の責任を負う。マ
イクロ命令は、制御メモリに記憶され、全体としてシス
テム・ファームウェアまたはプロセッサ・ファームウェ
アと呼ばれる。各マイクロ命令は、複数のフィールドか
らなり、このフィールドには、プロセッサ制御フラグお
よびマイクロ命令の命令コードと共に使用されて、次に
実行される順次マイクロ命令を決定するフィールドが含
まれる。他の主要なフィールドは、データ経路の制御に
使用される。マクロ命令の命令コードは、マイクロ制御
論理によって読み取られ、これによって次に実行される
マイクロルーチンが決定される。
高速プロセッサでは、制御メモリが、通常はバイポー
ラROMおよびPROMから構成され、特定のROMを交換するこ
とによって、マクロ命令セット全体を変更できる。通常
のプロセッサでは、ROMが、オンチップ制御記憶(制御
メモリ)の実施に広範囲に使用される。オフチップ制御
記憶と比較すると、このアプローチでは、クリティカル
・パスでのチップ交差がなくなり、非常に大きいデータ
幅が提供されるが、この両方が、システムの高速性能に
非常に重要である。ROMが選択されるのは、スタティッ
クRAMの約10倍の密度を有するからである。しかし、ROM
は、製造中にマスク・レベルでプログラミングすること
しかできず、これが、システム開発段階での主な短所と
なる。簡単なマイクロコードの誤りでも、かなりの時間
にわたってシステム開発作業全体が阻止される可能性が
ある。したがって、ROMの再プログラミングを必要とせ
ずに、命令を検出し、訂正することが望ましい。
米国特許第4644539号明細書には、制御メモリ内で発
生する障害または誤りを処理するための以前の通常の回
路配置の変形が記載されている。不正命令に関連する誤
りの検出と訂正のためのこのような回路配置の1つに、
複数のマイクロ命令をロードされた制御メモリと共に、
誤り検出回路と誤り訂正回路が含まれる。誤り検出回路
は、制御メモリから読み出される各マイクロ命令の誤り
を検出するためのものであり、誤り訂正回路は、正しい
マイクロ命令を得るために誤りを訂正するためのもので
ある。この構造を用いると、各マイクロ命令は、誤りが
誤り検出回路によって検出されない時であっても、必ず
制御メモリから誤り検出回路と誤り訂正回路の両方を通
して送られる。したがって、マシン・サイクルの増加は
避けられない。
もう1つの従来の回路配置では、通常は、制御メモリ
から読み出されるマイクロ命令のそれぞれについて、誤
り検出回路の使用によって、誤り検出だけが実行され
る。誤り訂正回路は、誤り検出回路によって誤りが検出
された時だけ動作する。この構造を用いると、上で述べ
た回路配置と比較してマシン・サイクルを短縮すること
ができる。しかし、誤り訂正回路は、制御メモリの誤り
を有する部分がアクセスされるたびに各マイクロ命令の
誤りを訂正する。したがって、誤りを有する部分から読
み取られる各マイクロ命令の処理には長い時間を要す
る。このため、制御メモリでハードウェア・エラーが発
生した時には、マイクロ命令実行の平均時間が長くな
る。
上で述べた従来技術回路配置の両方が、誤りが発生し
た際には、誤り検出だけでなく、誤り訂正も実行する。
誤り訂正を可能にするために、各マイクロ命令は、誤り
訂正用コードによって形成されなければならない。誤り
検出だけであれば、1つまたは複数のパリティ・ビット
の追加によって簡単に可能になるが、このような誤り訂
正用コードは、当技術分野で周知のとおり、パリティ・
ビットよりビット数の多い、余分な冗長ビットを必要と
する。したがって、誤り訂正用コードの使用は、制御メ
モリのビット容量の増大をもたらす。さらに、上述の従
来技術回路配置のどちらもが、プログラミングの失敗か
ら生じたマイクロコードの誤りを訂正できない。
マイクロコードの誤りを訂正するための実施態様の1
つが、チャン(Chang)他、IBM TDB,31,11(1989年4
月)に開示されているが、これは、プログラム可能命令
検出回路を使用するものである。命令の実装に関連する
誤りが存在する時、この検出回路を、そのオペ・コード
を認識するようにプログラミングでき、その命令を、非
実装命令として扱うことができる。ソフトウェア・エミ
ュレーションを記述して、その命令を実行し、問題を迂
回することができる。しかし、このシステムでは、改訂
されたマイクロコードの正しさを検証できない。
特開昭58−16349号公報には、障害を有する命令を誤
りのない命令に置換するのを簡単にするためのメモリ拡
張代替方式が開示されている。この公報では、システム
の実施態様が、命令の特定の作動可能コードの検出では
なく、マイクロ命令の特定のアドレスの検出に基づく。
特定のアドレスを検出した時に、誤りのないマイクロ命
令を有するメモリの区域を指す代替アドレスが供給され
る。このシステムによってマイクロ命令を無効化する時
には、タイミング目的のノーオペレーション・サイクル
を挿入しなければならない。このノーオペレーション状
態は、命令の実行の途中で発生する可能性があり、この
ため、システムの設計とデバッグがより困難になる可能
性がある。
特開昭58−16350号公報にも、メモリ拡張代替方式が
開示されている。この特許では、障害を有するマイクロ
命令の特定のアドレスが一致手段によって検出される時
に、代替命令が供給される。基本的に、n個のマイクロ
命令を訂正するには、検出回路が、n個のマイクロアド
レスについて代替アドレスを検出し、生成する。しか
し、検出回路のサイズと性能に対する制約が原因で、小
さい数に制限されるnについて、n個のマイクロ命令を
処理できるシステムを実施することしか実行できない。
特開昭59−85545号公報に、システムROMの内容に関す
る訂正および処理のシステムが開示されている。この公
報で開示されたシステムは、システム・プログラムを含
むシステムROM内の誤りを迂回することを含む技法を提
供するが、マイクロコードを含む制御記憶ROMの誤りは
迂回されない。
欧州公開特許第0469239号明細書から、マイクロプロ
グラム式プロセッサの制御記憶に含まれる、障害を有す
るマイクロコードを訂正するための装置が既知である。
この装置には、2つの機能部分すなわち、システムの主
制御記憶ROM内の障害を有するマイクロ命令に対応する
作動可能コードを検出するための検出回路と、置換マイ
クロ命令の記憶域として使用されるプログラム可能アレ
イが含まれる。この検出回路は、論理NOR回路として動
作する回路であり、誤りまたは障害を含むマイクロコー
ド・シーケンスに対応するマイクロ命令の有効な作動可
能コードを検出するのに使用される。プログラム可能ア
レイは、障害を有するマイクロコードと置換される誤り
のないマイクロコードを含む2つのロード可能RAMから
なる。検出と訂正は、命令復号と並列に発生し、その結
果、システムのサイクル・タイムに対する影響は全くな
い。
欧州公開特許第0397414号明細書には、複数のマイク
ロ命令を記憶するメモリを含む制御装置が開示されてい
る。修正情報生成器が、修正情報を生成する。修正ユニ
ットは、メモリからマイクロ命令のうちの1つを受け取
り、修正情報生成器から修正情報を受け取る。修正ユニ
ットは、修正情報を用いて、マイクロ命令のうちの1つ
の少なくとも一部を修正する。
欧州特許第0178670号明細書に、制御記憶メモリ読取
エラー回復の方法および装置が開示されている。命令読
取エラーの検出と回復は、命令をもう一度メモリから読
み取った後の命令の再試行の妨げになるシステムの状態
の変更を行う前に、誤りの検出時に命令実行を中止でき
るようにすることによって、命令読取エラー検出と並列
に未検査の命令を実行できるようにすることによって達
成される。次命令の読取は、実行と並列に有効性を検査
される現命令の実行中に開始されるので、この発明は、
現命令を再読取した後に現命令を再実行することによっ
て現命令を再試行する前の、次命令の放棄を提供する。
現命令を再実行している間に、次命令の再読取を開始
し、その結果、次命令は、現命令の再実行に続く実行の
ために使用可能になる。
欧州公開特許第0419174号明細書から、マイクロプロ
グラム制御に基づくデータ処理装置が既知である。この
データ処理装置には、マイクロ命令を記憶するマイクロ
命令メモリと、パイプライン処理によってマイクロ命令
のうちの選択された1つを実行し、演算結果を出力する
マイクロ命令実行ユニットが含まれる。マイクロ命令に
は、特定のマイクロ命令が含まれる。データ処理装置に
は、所定の事象が発生した時に特定のマイクロ命令を実
行し、その結果、パラメータが、直前のパイプライン処
理で使用されたパラメータに対応する訂正されたパラメ
ータに変更されるようにするマイクロ命令実行ユニット
を有する訂正部も含まれる。マイクロ命令実行ユニット
は、所定の事象が発生した時に動作を停止し、訂正され
たパラメータを使用することによってもう一度その動作
を開始する。
本発明の目的は、障害を有するマイクロ命令を訂正す
るための、改良されたデータ処理装置を提供することで
ある。
本発明の基本的な問題は、独立請求項に記載の特徴に
よって解決される。
本発明によって、マイクロ命令の記憶のためにROMを
より広範囲で利用できるようになる。ROMの密度は、RAM
よりはるかに高いので、これは有利である。この長所
は、マイクロコードの記憶を行うROMが、マイクロプロ
セッサと同一のチップに集積される時に、特に重要であ
る。
ROMに記憶されるマイクロコードが障害を有する場
合、訂正されたマイクロコードのために別のROMを製造
する必要はなく、障害を有するマイクロコードの影響を
受けるマイクロコード・シーケンス全体をRAMに記憶す
る必要もない。これを行うと、処理速度に悪影響が及ぶ
はずである。
この場合、本発明は、RAMアドレス空間に切り替える
ことによって、ROMに記憶された障害を有するマイクロ
命令を迂回することを提案する。RAM内には、修理コー
ドが記憶され、これが、ROMの障害を有するマイクロ命
令と置換されるように働く。修理コードの実行の後、シ
ステムの制御は、ROMアドレス空間に戻る。
RAMの使用法が修理コードの記憶に制限されないこと
が、特に有利である。RAMは、正常なマイクロ命令、特
に、ROMに記憶されたマイクロ命令より使用頻度の低い
マイクロ命令にも使用できる。これは、マイクロコード
命令セットに命令を1つだけ追加することによって本発
明を実現できるからである。追加されるマイクロ命令
は、障害を有するマイクロ命令の出現を示すフラグを立
てるための命令である。システムがRAMモードで動作し
ている場合、すなわち、障害を有するマイクロ命令が出
現しない正常動作モードで、マイクロ命令がRAMからプ
ロセッサに出力される場合には、このフラグ・マイクロ
命令は、単に無視され、NOP(ノー・オペレーション)
と解釈される。
さらに、障害を有するマイクロコードの訂正を実現す
るための追加のハードウェア出費が最小になるので、本
発明は有利である。IBM社のS/390コンピュータ・システ
ムなどの従来技術のコンピュータ・システムと比較し
て、本発明を実現するためには、1つの追加レジスタと
復号器だけが必要である。
本発明は、障害を有するマイクロコードがROM内にあ
る場合に、大きなコスト削減をもたらす。純粋にマイク
ロコードによる訂正のゆえに、訂正されたマイクロコー
ドを記憶したROMの製造は時代遅れになる。また、障害
を有するマイクロコードが、顧客側でのコンピュータ・
システムの誤動作によって検出されるだけの場合には、
コストの大きい現地返却は不要である。この場合、問題
は、単にフラグ・マイクロ命令と修理コードを追加され
た新しいマイクロ命令のセットをRAMにロードすること
によって修正できる。
本発明は、障害を有するマイクロコードの訂正以外の
別の目的に使用することもできる。コンピュータ・シス
テムのアーキテクチャが機能強化される場合、これは、
マイクロコードを変更しなければならないことを意味す
る。このマイクロコードの変更も、本発明の教示によっ
て実現できる。この場合、変更されるマイクロ命令は、
「障害を有する」とみなされ、RAMにロードされる「修
理コード」によって置換される。この「修理コード」
が、アーキテクチャの変更に起因して変更されたマイク
ロコードを表す。
以下で、下記の図面を参照して本発明の好ましい実施
例を詳細に説明する。
第1図は、データ処理装置の概略図である。
第2図は、第1の動作状態であるデータ処理装置を示
す図である。
第3図は、第2の動作状態である第1図のデータ処理
装置を示す図である。
第1図に示されたデータ処理装置は、マイクロプログ
ラム可能なプロセッサ1を有する。プロセッサ1は、入
力レジスタ2と出力レジスタ3を有する。このデータ処
理装置には、さらに、ランダム・アクセス制御記憶(CS
−RAM)4と、読取専用制御記憶(CS−ROM)5が含まれ
る。これらの制御記憶は、マイクロプログラム可能なプ
ロセッサ1のためのマイクロコードを記憶するように働
く。
好ましい実施例では、CS−RAM4とCS−ROM5が、プロセ
ッサ1と共に同一チップに集積される。これは、マイク
ロコードへのアクセス時間を最小にするために、制御記
憶をプロセッサ1の近くに置くためである。CS−RAM4と
CS−ROM5の記憶空間が、すべてのマイクロコードには不
十分な場合、マイクロコードの一部を、データ処理シス
テムの主記憶に記憶することができる。従来技術から、
マイクロコードのうち、頻繁には使用されない部分を主
記憶に記憶することが有利であることが既知である。こ
れは、主記憶へのアクセスのすべてが、50マシン・サイ
クル程度のデータ処理装置の性能ペナルティをもたらす
からである。主記憶は、第1図には示されていない。
CS−RAM4の出力6とCS−ROM5の出力7は、マルチプレ
クサ8に接続される。マルチプレクサ8は、その出力を
プロセッサ1の入力レジスタ2に接続される。マルチプ
レクサ8は、CS−RAM4またはCS−ROM5を選択的にプロセ
ッサ1に結合する。
CS−RAM4の出力6は、デコーダ10のレジスタ9にも接
続される。デコーダ10の出力は、プロセッサ1に接続さ
れる。プロセッサ1には、禁止論理回路11が含まれる。
信号が禁止論理回路11に入力される場合、禁止論理回路
11は、プロセッサ1に、プロセッサ1のパイプライン内
の次のマイクロ命令を実行させないか、少なともパイプ
ライン内の次のマイクロ命令の結果を出力させない。禁
止論理回路11の入力信号は、デコーダ10によって供給さ
れる。
データ処理装置には、さらに、制御記憶アドレス・レ
ジスタ(CSAR)12が含まれる。ハードワイヤードでない
マクロ命令が、プロセッサ1によって実行される場合に
は、そのマクロ命令をマイクロ命令のシーケンスに変換
する必要がある。このようなシーケンスは、CS−RAM4と
CS−ROM5に記憶される。マクロ命令実行の第1ステップ
は、この特定のマクロ命令に属するマイクロ命令のシー
ケンスのアドレスを識別することである。一般に実践さ
れているように、これは、すべてのマイクロコード・シ
ーケンスの入口アドレスを記憶する参照テーブルによっ
て達成される。実行される特定のマクロ命令に属するマ
イクロコード・シーケンスの入口アドレスは、CSAR12に
記憶される。ここで検討する好ましい実施例では、CSAR
12は16ビット幅である。最初の2ビットによって、制御
記憶すなわちCS−RAM4およびCS−ROM5または主記憶のう
ちのどれに、実行されるマイクロコード・シーケンスが
記憶されるかが指定される(ビット0およびビット
1)。CSAR12のビット位置2ないし15によって、CS−RA
M4およびCS−ROM5ならびに主記憶に共通のアドレス空間
が定義される。
マイクロコード・シーケンスの入口アドレスが、CSAR
12に記憶される場合、これは、CSAR12が、CS−RAM4、CS
−ROM5および主記憶の同等のアドレス位置を指すことを
意味する。したがって、ビット位置0および1のみによ
って、CSAR12に記憶されたアドレスが曖昧でなくなる。
ポインタ13は、CS−RAM4内のアドレスを指し、ポイン
タ14は、CS−ROM5内の同等のアドレスを指す。ポインタ
13および14は、CSAR12のビット位置2ないし15によって
定義される。CSAR12は、制御線15を介してマルチプレク
サ8に接続され、制御線16を介してデコーダ10に接続さ
れる。
CSAR12の最初の2ビットが01の場合、これは、データ
処理装置が、マイクロ命令のシーケンスがCS−RAM4から
出力される動作状態であることを意味する。この場合、
CS−RAM4の出力6は、マルチプレクサ8を介してプロセ
ッサ1に結合される。この場合、CS−RAM4から出力され
るマイクロ命令の流れを観察するように働くデコーダ10
は、活動状態でない。デコーダ10の活動化と非活動化を
制御するため、デコーダ10は、論理的に制御線16を介し
てCSAR12に結合される。CSAR12の最初の2ビットが00の
場合、制御線16に、デコーダ10を非活動化する信号が送
られる。この場合、デコーダ10は、プロセッサ1内での
マイクロ命令の実行の禁止を引き起こすことができな
い。
CSAR12の最初の2ビットが00の場合、これは、実行さ
れるマクロ命令に属するマイクロ命令のシーケンスが、
CS−ROM5に記憶されることを意味する。この場合、制御
線15には、マルチプレクサ8の制御のための制御信号が
送られ、その結果、CS−ROM5の出力7がプロセッサ1に
結合される。CS−ROM5がプロセッサ1に結合される時に
は、制御線16によって伝えられる制御信号によってデコ
ーダ10が活動化される。やはり、これは、CSAR12に記憶
された最初の2ビットが01であることによって引き起こ
される。
第2図は、第1の動作状態にある第1図のデータ処理
装置を示す図である。データ処理装置の初期状態は、命
令シーケンスでのマクロ命令Xの出現である。マクロ命
令Xは、CS−ROM5に記憶されるマイクロ命令のシーケン
スSからなる。このマイクロ命令のシーケンスは、MVI
W2,0;MVI W1,1;ADD W2,W1;SUB W2,W5;TSUB W1,W1であ
る。マクロ命令Xを実行するために、CS−ROM5内のマイ
クロ命令のシーケンスの入口アドレスが、データ処理装
置の参照テーブルで識別される。
ここで検討する場合では、シーケンスSの入口アドレ
スは、シーケンスSの最初のマイクロ命令MVI W2,0のア
ドレスである。この入口アドレスの完全なアドレスの最
初の2つのビット位置は、シーケンスSがCS−ROM5に記
憶されるので、0、1である。マイクロ命令WVI W2,0の
アドレスのビット位置2ないし15から、この命令のCS−
ROM5内の記憶アドレスが示される。マクロ命令Xを実行
するために、シーケンスSの最初のマイクロ命令の完全
なアドレスが、CSAR12に記憶される。
その後、シーケンスSの最初のマイクロ命令MVI W2,0
が、マルチプレクサ8を介してプロセッサ1へ、CS−RO
M5の出力7で出力される。その後のクロック・サイクル
で、シーケンスSの後続マイクロ命令MVI W1,1;ADD W2,
W1;SUB W2,W5;TSUB W1,W1も出力される。
ここで検討する例では、マイクロ命令ADD W2,W1が無
効であると仮定する。その結果、マクロ命令Xを正しく
実行するために、障害を有するマイクロ命令ADD W2,W1
の実行は防止される。
これを達成するために、特殊なマイクロ命令REPがCS
−RAM4に記憶される。データ処理装置のマイクロ命令の
通常のセットに追加されるこのマイクロ命令は、CS−RO
M5に障害を有するマイクロ命令があることを示すフラグ
を立てるように働く。フラグ・マイクロ命令REPは、CS
−RAM4内で、障害を有するマイクロ命令ADD W2,W1のCS
−ROM5でのアドレスと同一のアドレスを有する。
入口アドレスがCSAR12に記憶された後に、CSAR12内の
アドレスは、マイクロ命令の出力ごとにインクリメント
される。次に出力されるマイクロ命令は、インクリメン
トされたアドレスを有するマイクロ命令である。CSAR12
は、CS−RAM4とCS−ROM5を指すので、マイクロ命令は、
出力6と出力7に並列に出力される。ここで検討する場
合では、CS−ROM5だけがマルチプレクサ8を介してプロ
セッサ1に結合される。したがって、CS−RAM4の出力6
に出力されるマイクロ命令は、実行されない。CSAR12に
記憶されたアドレスが、入口アドレスに対して2つイン
クリメントされる時には、障害を有するマイクロ命令AD
D W2,W1が、CS−ROM5の出力7に出力される。これと並
行して、フラグ・マイクロ命令REPmark1が、CS−RAM4の
出力6に出力される。
フラグ・マイクロ命令REPmark1は、レジスタ9に記憶
されるが、障害を有するマイクロ命令ADD W2,W1は、入
力レジスタ2に記憶される。次のクロック・サイクル
に、デコーダ10が、フラグ・マイクロ命令REPmark1を復
号する。このフラグ・マイクロ命令の復号の結果とし
て、マイクロ命令REPmark1が通常のマイクロ命令ではな
く、そのフラグ・マイクロ命令と並列にCS−ROM5から出
力された障害を有するマイクロ命令、この場合にはADD
W2,W1があることを示す特殊な命令であることが明らか
になる。この場合に限って、デコーダは、フラグ・マイ
クロ命令の検出を知らせる信号を送る。デコーダ10がCS
−RAM4から受け取る他のマイクロ命令は、デコーダ10に
よる応答を引き起こさない。
障害を有するマイクロ命令ADD W2,W1の出現は、デコ
ーダ10からプロセッサ1に伝えられる。これに応答し
て、禁止論理回路11が、プロセッサ1による障害を有す
るマイクロ命令ADD W2,W1の実行を禁止する。障害を有
するマイクロ命令ADD W2,W1の結果が、すでに計算され
ている場合には、禁止論理回路11は、出力レジスタ3へ
の結果の記憶だけを禁止する。
CSAR12に記憶されたアドレスがその後にインクリメン
トされた後に、ポインタ13は、mark1 addressを指して
おり、ポインタ14は、sub W2,W5を指している。これ
は、第2図に示された動作状態である。コマンドmark1
addressは、フラグ・マイクロ命令REPmark1に属する修
理アドレスを指定するコマンドである。mark1 address
に含まれるアドレスによって、障害を有するマイクロ命
令ADD W2,W1の修理マイクロコードのアドレスが指定さ
れる。
次のクロック・サイクルに、修理アドレスがCSAR12に
記憶され、その結果、ポインタ13が、障害を有するマイ
クロ命令ADD W2,W1と置換される修理コードの最初の命
令を指すようになる。この場合、修理コードは、2つの
マイクロ命令SUB W2,W6およびADD W2,W1からなる。CSAR
12に修理アドレスが記憶されると、CSAR12に記憶される
最初の2つのビット位置も00から01に変化するので、CS
−RAM4が、マルチプレクサ8を介してプロセッサ1に結
合される。CSAR12に修理アドレスを記憶することによっ
て、ポインタ13が、修理コードの最初の命令SUB W2,W6
を指し、ポインタ14が、CS−ROM5の同等のアドレスを指
すようになる。これは、第3図に示された情況である。
その後のシステム・サイクルでは、修理コードが、プ
ロセッサ1に出力され、プロセッサ1によって実行され
る。修理コードの実行中は、CSAR12の最初の2つのビッ
ト位置が変化したので、デコーダ10が非活動状態にな
る。修理コードの最後で、マイクロ命令B mark2およびm
ark2 addressが、CS−RAM4から出力される。これによっ
て、データ処理装置の制御に、修理コードの終了が伝え
られる。さらに、これによって、マイクロ命令のシーケ
ンスSでの障害を有するマイクロコード命令ADD W2,W1
の次のアドレスが伝えられる。この場合、次のマイクロ
命令は、sub W2,W5である。このマイクロ命令は、シー
ケンスSの一部を形成するので、やはりデータ処理装置
の動作状態を変更しなければならない。すなわち、B ma
rk2に属するマイクロ命令SUB W2,W5のアドレスが、CSAR
12に記憶される。これは、CSAR12に記憶されるアドレス
の先頭の最初の2つのビット位置も、0、1から0、0
に変更されることを暗示する。その結果、データ処理装
置は、障害を有するマイクロ命令の出現の前の動作モー
ドに戻る。
ここで検討した好ましい実施例では、CS−RAM4とCS−
ROM5が、同等のアドレス空間と同一の記憶容量を有す
る。しかし、CS−RAM4より大きいアドレス空間を有する
CS−ROMを使用することも可能である。このようなCS−R
OMは、論理的には、CS−RAM4のアドレス空間に対応する
複数のアドレス空間に区分される。この場合、CSAR12に
記憶されるアドレスの先頭ビットも、そのようなCS−RO
Mの論理区画のどれにマイクロ命令が記憶されるかを指
定するものにしなければならない。CS−ROMを4つの同
等のアドレス空間に区分する場合、CSAR12の最初の3ビ
ットを使って、特定のマイクロ命令が、主記憶、CS−RA
M4またはCS−ROMの特定の区画のうちのどれに記憶され
るかを示す必要がある。
フロントページの続き (72)発明者 コスター、ラルフ ドイツ国ホルツガーリンゲン、リヒテン シュタインシュトラーセ 12 (72)発明者 メルテイン、クリステイアン ドイツ国ベーブリンゲン、ニュルテイン ガー シュトラーセ 75 (72)発明者 タスト、ハンス ウエルナー ドイツ国ヴァイル イン シェーンブー ク、ハルトマンシュトラーセ 66 (56)参考文献 特開 昭60−171537(JP,A) 特開 昭53−2946(JP,A) 特開 昭50−116144(JP,A) 特開 昭58−43038(JP,A) 特開 昭64−109433(JP,A) 特開 昭54−66046(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/22 380 G06F 9/22 370

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】障害を有するマイクロ命令を訂正するため
    のデータ処理装置であって、マイクロプログラム可能な
    プロセッサ(1)と、 マイクロ命令を並列に出力するようになされた、前記マ
    イクロ命令を記憶するための、ランダム・アクセス制御
    記憶(4)および読取専用制御記憶(5)とを備え、 前記ランダム・アクセス制御記憶内に記憶される前記マ
    イクロ命令が、フラグ・マイクロ命令(REPmark1)を含
    み、前記フラグ・マイクロ命令が、論理的に前記フラグ
    ・マイクロ命令に割り当てられる、前記読取専用制御記
    憶内に記憶される別のマイクロ命令(ADD W2,W1)が障
    害を有することを示すように構成され、 前記ランダム・アクセス制御記憶または前記読取専用制
    御記憶の出力を前記プロセッサに選択的に結合するため
    のマルチプレクサ(8)と、 前記ランダム・アクセス制御記憶に結合され、前記ラン
    ダム・アクセス制御記憶から出力されるマイクロ命令を
    受け取るためのレジスタ手段(9)と、 前記レジスタ手段に結合されたデコーダ手段(10)とを
    備え、 前記読取専用制御記憶が前記マルチプレクサを介して前
    記プロセッサに結合される場合に、前記デコーダ手段
    が、前記レジスタ手段を介して前記ランダム・アクセス
    制御記憶から出力される前記フラグ・マイクロ命令をデ
    コードすることに応答して、前記フラグ・マイクロ命令
    の検出を伝えるための制御信号を発生するように構成さ
    れ、 前記デコーダ手段からの前記制御信号に応答して、前記
    フラグ・マイクロ命令に論理的に割り当てられた前記別
    のマイクロ命令の、前記プロセッサによる実行を禁止す
    るための手段(11)と、 マクロ命令に属するマイクロコード・シーケンスのアド
    レスを記憶するための制御記憶アドレス・レジスタ(CS
    AR 12)とを備え、 前記アドレスが、前記マイクロコード・シーケンスが前
    記読取専用制御記憶または前記ランダム・アクセス制御
    記憶のどちらに記憶されるかを指定し、 前記ランダム・アクセス制御記憶内に記憶される前記マ
    イクロコードが、前記障害を有するマイクロ命令用の修
    理マイクロコードのアドレスを指定するための前記フラ
    グ・マイクロ命令に属する修理アドレス(mark1 add
    r.)を含み、 前記修理アドレスが、前記デコーダ手段からの前記制御
    信号に応答して、前記制御記憶アドレス・レジスタ内に
    記憶されることを特徴とする、 前記データ処理装置。
  2. 【請求項2】前記ランダム・アクセス制御記憶および前
    記読取専用制御記憶が、同一のアドレス空間を有するこ
    とを特徴とする、請求項1記載のデータ処理装置。
  3. 【請求項3】前記読取専用制御記憶が、ランダム・アク
    セス制御記憶のアドレス空間に対応する複数のアドレス
    空間に論理的に区分され、前記対応する複数のアドレス
    空間の各々が、同一のサイズを有することを特徴とす
    る、請求項1記載のデータ処理装置。
  4. 【請求項4】前記修理アドレスが、修理マイクロコード
    の前記アドレスへのオフセットを指定することを特徴と
    する、請求項1記載のデータ処理装置。
  5. 【請求項5】前記読取専用制御記憶および前記ランダム
    ・アクセス制御記憶が、前記プロセッサと共に同一チッ
    プ上に集積されることを特徴とする、請求項1記載のデ
    ータ処理装置。
JP09509734A 1995-08-29 1995-08-29 障害を有するマイクロ命令を訂正するためのデータ処理装置 Expired - Fee Related JP3118002B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP1995/003394 WO1997008618A1 (en) 1995-08-29 1995-08-29 Data processing apparatus and method for correcting faulty microcode

Publications (2)

Publication Number Publication Date
JPH10500517A JPH10500517A (ja) 1998-01-13
JP3118002B2 true JP3118002B2 (ja) 2000-12-18

Family

ID=8166088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09509734A Expired - Fee Related JP3118002B2 (ja) 1995-08-29 1995-08-29 障害を有するマイクロ命令を訂正するためのデータ処理装置

Country Status (3)

Country Link
US (1) US5870601A (ja)
JP (1) JP3118002B2 (ja)
WO (1) WO1997008618A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3356007B2 (ja) * 1997-06-27 2002-12-09 日本電気株式会社 グラフィックスlsi
TW400469B (en) * 1997-07-08 2000-08-01 Winbond Electronics Corp Device capable of fixing programs in embedded microprocessor
US6357665B1 (en) * 1998-01-22 2002-03-19 Mondex International Limited Configuration of IC card
US6457119B1 (en) * 1999-07-23 2002-09-24 Intel Corporation Processor instruction pipeline with error detection scheme
US6601184B1 (en) 2000-03-14 2003-07-29 Novell, Inc. System crash network access
GB2384582A (en) * 2002-01-28 2003-07-30 Ericsson Telefon Ab L M Software correction
US7051231B2 (en) * 2002-08-05 2006-05-23 Faraday Technology Corp. Microprocessor system architecture to correct built-in ROM code
US7562263B1 (en) * 2005-09-14 2009-07-14 Unisys Corporation System and method for detecting and recovering from errors in a control store of an electronic data processing system
GB2437989B (en) * 2006-05-09 2009-09-09 Micron Technology Inc Method, apparatus, and system for providing initial state random access memory
US7827390B2 (en) * 2007-04-10 2010-11-02 Via Technologies, Inc. Microprocessor with private microcode RAM
US20100180104A1 (en) * 2009-01-15 2010-07-15 Via Technologies, Inc. Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor
US20120226890A1 (en) * 2011-02-24 2012-09-06 The University Of Tokyo Accelerator and data processing method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3934227A (en) * 1973-12-05 1976-01-20 Digital Computer Controls, Inc. Memory correction system
US4897813A (en) * 1988-02-19 1990-01-30 Unisys Corporation Partially programmable read-only memory system
US4905200A (en) * 1988-08-29 1990-02-27 Ford Motor Company Apparatus and method for correcting microcomputer software errors
US5212693A (en) * 1990-08-02 1993-05-18 Ibm Corporation Small programmable array to the on-chip control store for microcode correction
JP2806075B2 (ja) * 1991-06-06 1998-09-30 日本電気株式会社 マイクロコンピュータ
JP3563768B2 (ja) * 1994-05-31 2004-09-08 株式会社ルネサステクノロジ Romプログラム変更装置
US5561760A (en) * 1994-09-22 1996-10-01 International Business Machines Corporation System for localizing field replaceable unit failures employing automated isolation procedures and weighted fault probability encoding

Also Published As

Publication number Publication date
US5870601A (en) 1999-02-09
WO1997008618A1 (en) 1997-03-06
JPH10500517A (ja) 1998-01-13

Similar Documents

Publication Publication Date Title
US6049672A (en) Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure
US5212693A (en) Small programmable array to the on-chip control store for microcode correction
US5537559A (en) Exception handling circuit and method
EP0173515B1 (en) Error recovery system in a data processor having a control storage
JP3706542B2 (ja) 処理コアの使用を動的に更新する方法および装置
US5950012A (en) Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
CN100489801C (zh) 纠正软错误的固件机制
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
US4181940A (en) Multiprocessor for providing fault isolation test upon itself
US8281223B2 (en) Detection of fuse re-growth in a microprocessor
JP3118002B2 (ja) 障害を有するマイクロ命令を訂正するためのデータ処理装置
EP0372751B1 (en) Pipelined data-processing apparatus
US5987585A (en) One-chip microprocessor with error detection on the chip
JPH05225067A (ja) 重要メモリ情報保護装置
US6189093B1 (en) System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US5898867A (en) Hierarchical memory system for microcode and means for correcting errors in the microcode
Szurman et al. Run-Time Reconfigurable Fault Tolerant Architecture for Soft-Core Processor NEO430
US5243601A (en) Apparatus and method for detecting a runaway firmware control unit
US7451270B1 (en) System and method for detecting and correcting errors in a control system
US6662296B1 (en) Method and system for testing millicode branch points
JP3171615B2 (ja) データ転送のリトライ制御方式
CA1223079A (en) Data processor having selective breakpoint capability with minimal overhead
CN115482875A (zh) 存储器安全接口配置
JP2786215B2 (ja) 再開処理制御方式
JPH0392950A (ja) マイクロプログラム制御装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees