JPH10500517A - 障害を有するマイクロコードを訂正するためのデータ処理装置および方法 - Google Patents

障害を有するマイクロコードを訂正するためのデータ処理装置および方法

Info

Publication number
JPH10500517A
JPH10500517A JP9509734A JP50973497A JPH10500517A JP H10500517 A JPH10500517 A JP H10500517A JP 9509734 A JP9509734 A JP 9509734A JP 50973497 A JP50973497 A JP 50973497A JP H10500517 A JPH10500517 A JP H10500517A
Authority
JP
Japan
Prior art keywords
microcode
microinstruction
address
control storage
data processing
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
JP9509734A
Other languages
English (en)
Other versions
JP3118002B2 (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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)

Abstract

(57)【要約】 本発明は、マイクロプログラム可能なプロセッサ1と、マイクロ命令を記憶するためのランダム・アクセス制御記憶および読取専用制御記憶4、5とを含むデータ処理装置に関する。ランダム・アクセス制御記憶および読取専用制御記憶4、5は、並列にマイクロ命令を出力するようになされる。マイクロ命令には、読取専用制御記憶5に記憶された別のマイクロ命令(ADD W2,W1)が障害を有することを示すフラグ・マイクロ命令(REPmark1)が含まれる。マルチプレクサ8が、プロセッサ1にランダム・アタセス制御記憶または読取専用制御記憶を選択的に結合する。マイクロ命令を観察する手段10が、ランダム・アクセス制御記憶から出力されるマイクロ命令を観察する。観察する手段は、フラグ・マイクロ命令が検出された場合に信号を発行する。これに応答して、マイクロ命令の実行を禁止する手段10が、プロセッサ1による障害を有するマイクロ命令の実行を禁止する。

Description

【発明の詳細な説明】 障害を有するマイクロコードを訂正するためのデータ処理装置および方法 本発明は、データ処理装置、マイクロコードを記憶するための方法および障害 を有するマイクロコードを訂正するための方法に関する。 マイクロプロセッサまたはプロセッサ全般のプログラミングに使用されるプロ グラミング言語を、一般にアセンブラ言語またはアセンブリ言語と称する。個々 のアセンブラ命令を、マクロ命令と称し、各マクロ命令は、通常は複数のマイク ロ命令からなる。マイクロ命令は、マイクロプロセッサまたはプロセッサが実行 できる基本命令または原始的な命令である。マクロ命令は、マイクロ命令より高 水準の言語であり、通常は、実行の完了に複数の状態を必要とする。特定のマイ クロプロセッサまたはプロセッサに応じて、特定のマクロ命令を実施するのに必 要なマイクロ命令が変化する。 マイクロプロセッサ・システムまたはプロセッサ・システムは、基本的に3つ のメイン・モジュールすなわち、マイクロ制御論理モジュール、制御メモリ論理 モジュールおよびデータ経路モジュールからなる。重要な2つの主要な機能区域 は、マイクロ制御論理モジュールと制御メモリ論理モジュールである。データ経 路モジュールは、システムを介するデー タの操作の責任を負う。マイクロ命令は、制御メモリに記憶され、全体としてシ ステム・ファームウェアまたはプロセッサ・ファームウェアと呼ばれる。各マイ クロ命令は、複数のフィールドからなり、このフィールドには、プロセッサ制御 フラグおよびマイクロ命令の命令コードと共に使用されて、次に実行される順次 マイクロ命令を決定するフィールドが含まれる。他の主要なフィールドは、デー タ経路の制御に使用される。マクロ命令の命令コードは、マイクロ制御論理によ って読み取られ、これによって次に実行されるマイクロルーチンが決定される。 高速プロセッサでは、制御メモリが、通常はバイポーラROMおよびPROM から構成され、特定のROMを交換することによって、マクロ命令セット全体を 変更できる。通常のプロセッサでは、ROMが、オンチップ制御記憶(制御メモ リ)の実施に広範囲に使用される。オフチップ制御記憶と比較すると、このアプ ローチでは、クリティカル・パスでのチップ交差がなくなり、非常に大きいデー タ幅が提供されるが、この両方が、システムの高速性能に非常に重要である。R OMが選択されるのは、スタティック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つの機能部分すなわち、システムの主制御記憶R OM内の障害を有するマイクロ命令に対応する作動可能コードを検出するための 検出回路と、置換マイクロ命令の記憶域として使用されるプログラム可能アレイ が含まれる。この検出回路は、論理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に入力される場合、禁止論理回路1 1は、プロセッサ1に、プロセッサ1のパイプライン内の次のマイクロ命令を実 行させないか、少なともパイプライン内の次のマイクロ命令の結果を出力させな い。禁止論理回路11の入力信号は、デコーダ10によって供給される。 データ処理装置には、さらに、制御記憶アドレス・レジスタ(CSAR)12 が含まれる。ハードワイヤードでないマクロ命令が、プロセッサ1によって実行 される場合には、そのマクロ命令をマイクロ命令のシーケンスに変換する必要が ある。このようなシーケンスは、CS−RAM4とCS−ROM5に記憶される 。マクロ命令実行の第1ステップは、この特定のマクロ命令に属するマイクロ命 令のシーケンスのアドレスを識別することである。一般に実践されているように 、これは、すべてのマイクロコード・シーケンスの入口アドレスを記憶する参照 テーブルによって達成される。実行される特定のマクロ命令に属するマイクロコ ード・シーケンスの入口アドレスは、CSAR12に記憶される。ここで検討す る好ましい実施例では、CSAR12は16ビット幅である。最初の2ビットに よって、制御記憶すなわちCS−RAM4およびCS−ROM5または主記憶の うちのどれに、実行されるマイクロコード・シーケンスが記憶されるかが指定さ れる(ビット0およびビット1)。CSAR12のビット位置2ないし15によ って、CS−RAM4およびCS−ROM5ならびに主記憶に共通のアドレス空 間が定義される。 マイクロコード・シーケンスの入口アドレスが、CSAR 12に記憶される場合、これは、CSAR12が、CS−RAM4、CS−RO M5および主記憶の同等のアドレス位置を指すことを意味する。したがって、ビ ット位置0および1のみによって、CSAR12に記憶されたアドレスが曖昧で なくなる。 ポインタ13は、CS−RAM4内のアドレスを指し、ポインタ14は、CS −ROM5内の同等のアドレスを指す。ポインタ13および14は、CSAR1 2のビット位置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 W 2,W5; TSUB W1,W1である。マクロ命令Xを実行するために、CS−ROM5内の マイクロ命令のシーケンスの入口アドレスが、データ処理装置の参照テーブルで 識別される。 ここで検討する場合では、シーケンスSの入口アドレスは、シーケンスSの最 初のマイクロ命令MVI W2,0のアドレスである。この入口アドレスの完全なアドレ スの最初の2つのビット位置は、シーケンスSがCS−ROM5に記憶されるの で、0、1である。マイクロ命令MVI W2,0のアドレスのビット位 置2ないし15から、この命令のCS−ROM5内の記憶アドレスが示される。 マクロ命令Xを実行するために、シーケンスSの最初のマイクロ命令の完全なア ドレスが、CSAR12に記憶される。 その後、シーケンスSの最初のマイクロ命令MVI W2,0が、マルチプレクサ8を 介してプロセッサ1へ、CS−ROM5の出力7で出力される。その後のクロッ ク・サイクルで、シーケンスSの後続マイクロ命令MVI W1,1,ADD W2,W1; SUB W 2,W5; TSUB W1,W1も出力される。 ここで検討する例では、マイクロ命令ADD W2,W1が無効であると仮定する。そ の結果、マクロ命令Xを正しく実行するために、障害を有するマイクロ命令ADD W2,W1の実行は防止される。 これを達成するために、特殊なマイタロ命令REPがCS−RAM4に記憶され る。データ処理装置のマイクロ命令の通常のセットに追加されるこのマイクロ命 令は、CS−ROM5に障害を有するマイクロ命令があることを示すフラグを立 てるように働く。フラグ・マイクロ命令REPは、CS−RAM4内で、障害を有 するマイクロ命令ADD W2,W1のCS−ROM5でのアドレスと同一のアドレスを 有する。 入口アドレスがCSAR12に記憶された後に、CSAR12内のアドレスは 、マイクロ命令の出力ごとにインクリメントされる。次に出力されるマイクロ命 令は、インクリメントされたアドレスを有するマイクロ命令である。CSAR1 2は、CS−RAM4とCS−ROM5を指すので、マイクロ命令は、出力6と 出力7に並列に出力される。ここで検討する場合では、CS−ROM5だけがマ ルチプレクサ8を介してプロセッサ1に結合される。したがって、CS−RAM 4の出力6に出力されるマイクロ命令は、実行されない。CSAR12に記憶さ れたアドレスが、入口アドレスに対して2つインクリメントされる時には、障害 を有するマイクロ命令ADD 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,W1およびADD W2,W1からなる。CSAR12に修理アドレスが記憶さ れると、CSAR12に記憶される最初の2つのビット位置も00から01に変 化するので、CS−RAM4が、マルチプレクサ8を介してプロセッサ1に結合 される。CSAR12に修理アドレスを記憶することによって、ポインタ13が 、修理コードの最初の命令SUB W2,W6を指し、ポインタ14が、CS−ROM5 の同等のアドレスを指すよ うになる。これは、第3図に示された情況である。 その後のシステム・サイクルでは、修理コードが、プロセッサ1に出力され、 プロセッサ1によって実行される。修理コードの実行中は、CSAR12の最初 の2つのビット位置が変化したので、デコーダ10が非活動状態になる。修理コ ードの最後で、マイクロ命令B mark2およびmark2 addressが、CS−RAM4か ら出力される。これによって、データ処理装置の制御に、修理コードの終了が伝 えられる。さらに、これによって、マイクロ命令のシーケンスSでの障害を有す るマイクロコード命令ADD W2,W1の次のアドレスが伝えられる。この場合、次の マイクロ命令は、sub W2,W5である。このマイクロ命令は、シーケンスSの一部 を形成するので、やはりデータ処理装置の動作状態を変更しなければならない。 すなわち、B mark2に属するマイクロ命令SUB W2,W5のアドレスが、CSAR12 に記憶される。これは、CSAR12に記憶されるアドレスの先頭の最初の2つ のビット位置も、0、1から0、0に変更されることを暗示する。その結果、デ ータ処理装置は、障害を有するマイクロ命令の出現の前の動作モードに戻る。 ここで検討した好ましい実施例では、CS−RAM4とCS−ROM5が、同 等のアドレス空間と同一の記憶容量を有する。しかし、CS−RAM4より大き いアドレス空間を有するCS−ROMを使用することも可能である。このような CS−ROMは、論理的には、CS−RAM4のアドレス空 間に対応する複数のアドレス空間に区分される。この場合、CSAR12に記憶 されるアドレスの先頭ビットも、そのようなCS−ROMの論理区画のどれにマ イクロ命令が記憶されるかを指定するものにしなければならない。CS−ROM を4つの同等のアドレス空間に区分する場合、CSAR12の最初の3ビットを 使って、特定のマイクロ命令が、主記憶、CS−RAM4またはCS−ROMの 特定の区画のうちのどれに記憶されるかを示す必要がある。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 コスター、ラルフ ドイツ国ホルツガーリンゲン、リヒテンシ ュタインシュトラーセ 12 (72)発明者 メルテイン、クリステイアン ドイツ国ベーブリンゲン、ニュルテインガ ー シュトラーセ 75 (72)発明者 タスト、ハンス ウエルナー ドイツ国ヴァイル イン シェーンブー ク、ハルトマンシュトラーセ 66

Claims (1)

  1. 【特許請求の範囲】 1.マイクロプログラム可能なプロセッサ(1)と、 マイクロ命令を並列に出力するようになされた、前記マイクロ命令を記憶する ための、ランダム・アクセス制御記憶および読取専用制御記憶(4、5)とを含 み、 前記ランダム・アクセス制御記憶に記憶される前記マイクロ命令が、フラグ・ マイクロ命令(REPmark1)を含み、前記フラグ・マイクロ命令が、論理的に前記 フラグ・マイクロ命令に割り当てられる、前記読取専用制御記憶に記憶される別 のマイクロ命令(ADD W2,W1)が障害を有することを示すことを特徴とし、 前記ランダム・アクセス制御記憶または前記読取専用制御記憶を前記プロセッ サに選択的に結合するためのマルチプレクサ(8)と、 前記読取専用制御記憶が前記マルチプレクサを介して前記プロセッサに結合さ れる時に、前記ランダム・アクセス制御記憶から出力されるマイクロ命令を観察 するための手段(9、10)とを含み、 前記観察するための手段が、前記ランダム・アクセス制御記憶から出力される 前記フラグ・マイクロ命令の検出を伝える信号を送るようになされていることを 特徴とし、 さらに、前記観察するための手段による前記フラグ・マイクロ命令の検出の信 号送出に応答して、前記フラグ・マイク ロ命令に論理的に割り当てられた前記マイクロ命令の実行を禁止するための手段 (11)を含む データ処理装置。 2.前記ランダム・アクセス制御記憶および前記読取専用制御記憶が、同一のア ドレス空間を有することを特徴とする、請求項1に記載のデータ処理装置。 3.前記読取専用制御記憶が、ランダム・アクセス制御記憶のアドレス空間に対 応するアドレス空間に論理的に区分され、前記対応するアドレス空間のそれぞれ が、同一のサイズを有することを特徴とする、請求項1に記載のデータ処理装置 。 4.さらに、マイクロ命令に属するマイクロコード・シーケンスのアドレスを記 憶するための制御記憶アドレス・レジスタ(CSAR 12)を含み、前記アドレスが 、前記マイクロコード・シーケンスが前記読取専用制御記憶または前記ランダム ・アクセス制御記憶に記憶されるかどうかを指定することを特徴とする、請求項 1または2に記載のデータ処理装置。 5.前記ランダム・アタセス制御記憶に記憶される前記マイクロコードが、さら に、前記障害を有するマイクロ命令の修理マイクロコードのアドレスを指定する ための前記フラグ・マイクロ命令に属する修理アドレス(mark1 addr.)を含む ことを特徴とする、請求項1、2または3のいずれか一項に記載のデータ処理装 置。 6.前記修理アドレスが、修理マイクロコードの前記アドレスへのオフセットを 指定することを特徴とする、請求項5に 記載のデータ処理装置。 7.前記修理アドレスが、前記観察するための手段による前記フラグ・マイクロ 命令の検出の信号送出に応答して、前記制御記憶アドレス・レジスタに記憶され ることを特徴とする、請求項4、5または6のいずれか一項に記載のデータ処理 装置。 8.前記読取専用制御記憶および前記ランダム・アクセス制御記憶が、前記プロ セッサと共に同一チップ上に集積されることを特徴とする、前の請求項のいずれ か一項に記載のデータ処理装置。 9.前の請求項のいずれか一項によるデータ処理装置を含む、パーソナル・コン ピュータまたはメインフレーム・コンピュータなどのコンピュータ・システム。 10.マイクロプログラム可能なプロセッサ(1)用のマイクロコードを記憶す る方法であって、 a)読取専用制御記憶(5)に第1マイクロコードを記憶するステップと、 b)ランダム・アクセス制御記憶(4)に第2マイクロコードを記憶するステ ップと、 ba)前記第1マイクロコードが障害を有するマイクロ命令(ADD W2,W1) を含む場合に、 baa)前記第1マイクロコードが前記障害を有するマイクロ命令を含むこ とを示すフラグ・マイクロ命令(REPmarkl)を前記第2マイクロコードに記憶す るステップと、 bab)前記障害を有するマイクロ命令用の修理マイクロコードのアドレス を指定するため、前記フラグ・マイクロ命令に属する修理アドレス(mark1 addr .)を記憶するステップと を含む方法。 11.さらに、正しいマイクロコードに属する前記第1マイクロコード内のアド レス(mark2 addr.)を指定するため、修理コードに属するジャンプ・アドレス (B mark2; mark addr.)を記憶するステップを含む、請求項10に記載の方法 。 12.a)前記読取専用制御記憶および前記ランダム・アクセス制御記憶から並 列に前記第1マイクロコードおよび前記第2マイクロコードを出力するステップ と、 b)前記第1マイクロコードまたは前記第2マイクロコードを選択的に前記プ ロセッサに割り当てるステップと、 c)前記第1マイクロコードが前記プロセッサに割り当てられる場合に、 ca)前記ランダム・アクセス制御記憶から出力される前記第2マイクロコ ードを観察するステップと、 cb)前記フラグ・マイクロ命令の検出に応答して、前記プロセッサによる 前記障害を有するマイクロ命令の実行を禁止するステップと を含む、請求項10または11の方法に従って記憶された障害を有するマイク ロコードを訂正する方法。 13.さらに、前記修理アドレスにジャンプするステップと、 前記修理マイクロコードを出力するステップとを含む、請求項12の方法。 14.さらに、前記ジャンプ・アドレスにジャンプするステップを含む、請求項 13の方法。
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 true JPH10500517A (ja) 1998-01-13
JP3118002B2 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 (13)

* 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
US12360765B2 (en) 2023-10-20 2025-07-15 Qualcomm Incorporated Processing unit employing micro-operations (micro-ops) random access memory (RAM) as main program memory

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
JP3118002B2 (ja) 2000-12-18
US5870601A (en) 1999-02-09
WO1997008618A1 (en) 1997-03-06

Similar Documents

Publication Publication Date Title
CN103123597B (zh) 微处理器及其所适用的测试方法
CN100489801C (zh) 纠正软错误的固件机制
EP0173515B1 (en) Error recovery system in a data processor having a control storage
US4635193A (en) Data processor having selective breakpoint capability with minimal overhead
US6877089B2 (en) Branch prediction apparatus and process for restoring replaced branch history for use in future branch predictions for an executing program
US5537559A (en) Exception handling circuit and method
US4181940A (en) Multiprocessor for providing fault isolation test upon itself
JPH0581014A (ja) マイクロコード訂正のためのオンチツプ制御ストア用プログラム可能アレイ
JPH10500517A (ja) 障害を有するマイクロコードを訂正するためのデータ処理装置および方法
US4377845A (en) Optional machine inhibition for feature malfunction
JPH05225067A (ja) 重要メモリ情報保護装置
US7613950B2 (en) Detecting floating point hardware failures
US5404499A (en) Semi-automatic program execution error detection
US7451270B1 (en) System and method for detecting and correcting errors in a control system
CA1223079A (en) Data processor having selective breakpoint capability with minimal overhead
JPH05158808A (ja) マイクロプログラム制御装置
JPH10187202A (ja) マイクロプロセッサ制御装置
JP2786215B2 (ja) 再開処理制御方式
CN101930391B (zh) 微处理器及其所适用的测试方法
JPH0135369B2 (ja)
JPS6083149A (ja) コンピユ−タ
JPS6146535A (ja) 擬似エラ−設定制御方式
JPH038029A (ja) マイクロプログラム制御装置
JPH04109340A (ja) 擬似障害発生回路
JPS608962A (ja) 記憶情報一時障害検出方式

Legal Events

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