JPH0799498B2 - 誤りのあるマイクロ命令を訂正する装置 - Google Patents

誤りのあるマイクロ命令を訂正する装置

Info

Publication number
JPH0799498B2
JPH0799498B2 JP3151513A JP15151391A JPH0799498B2 JP H0799498 B2 JPH0799498 B2 JP H0799498B2 JP 3151513 A JP3151513 A JP 3151513A JP 15151391 A JP15151391 A JP 15151391A JP H0799498 B2 JPH0799498 B2 JP H0799498B2
Authority
JP
Japan
Prior art keywords
circuit
microinstruction
programmable
error
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP3151513A
Other languages
English (en)
Other versions
JPH0581014A (ja
Inventor
ヒュー・フーバート・チャオ
ジュン・ハーン・チャン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0581014A publication Critical patent/JPH0581014A/ja
Publication of JPH0799498B2 publication Critical patent/JPH0799498B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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/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
    • 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/3017Runtime instruction translation, e.g. macros
    • 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)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロセッサ命令の実行
に関連した誤りの検出のための回路構成に関し、特に無
効なマイクロコード・シーケンスを有する命令に関連し
た誤りの検出および訂正のための小形のプログラム可能
アレイに関する。
【0002】
【従来の技術】マイクロプロセッサあるいは一般にプロ
セッサをプログラムするために使用されるプログラミン
グ言語は、通常アセンブラ言語あるいはアセンブリ言語
と呼ばれる。個々のアセンブラ命令はマクロ命令として
参照され、各マクロ命令は通常複数のマイクロ命令から
なっている。マイクロ命令は、マクロプロセッサあるい
はプロセッサが実行しうる基本命令である。マクロ命令
は、マイクロ命令より高レベルの言語であり、典型的に
は実行を完結するのにいくつかの状態を必要とする。特
定のマイクロプロセッサあるいはプロセッサに応じて、
特定のマクロ命令の実行に必要とされるマイクロ命令は
変化する。
【0003】マイクロプロセッサあるいはプロセッサ・
システムは、基本的には3つの主要モジュール、即ち、
マイクロ制御論理モジュール、制御メモリ論理モジュー
ルおよびデータ経路モジュールからなっている。問題と
なる2つの主要機能領域は、マイクロ制御論理モジュー
ルと制御メモリー論理モジュールである。データ経路モ
ジュールは、システムを介するデータの操作をつかさど
る。マイクロ命令は、制御メモリーに記憶され、纏めて
システム即ちプロセッサのファームウエアと呼ばれる。
各マイクロ命令は、実行されるべき次の順次マイクロ命
令を決定するためにプロセッサ制御フラッグおよびマク
ロ命令の命令コードと関連して使用される1つのフィー
ルドを含む複数のフィールドからなっている。他の主フ
ィールドは、データ経路を制御するために使用される。
マクロ命令の命令コードは、マイクロ制御ロジックによ
り読出されて、次に実行すべきマイクロルーチンを決定
する。
【0004】高速プロセッサにおいては、制御メモリー
は通常バイポーラROMおよびPROMから構成され、
特定のROMを置換することにより、マクロ命令セット
全体を変更することができる。従来のプロセッサにおい
ては、ROMはオンチップ制御ストア(制御メモリー)
を実現するために広く使用される。オフチップ制御スト
アと比較すると、この方法はクリティカルパスにおける
チップ交差を無くし、かつ非常に大きなデータ幅を提供
し、その両者はシステムの高速性能に対して非常に重要
である。ROMは、スタティックRAMよりも約10倍
優れた密度を持つ故に選定される。しかし、ROMは、
製造中のマスク・レベルでのみプログラムすることがで
き、これはシステムの開発段階における主な短所とな
る。単純なマイクロコード誤りが、多くの時間にわたる
全てのシステム開発努力の妨げとなり得る。従って、R
OMに対してプログラムし直す必要なしに命令の検出お
よび訂正を行えることが望ましい。
【0005】Satoの米国特許第4,644,539
号は、制御メモリーに生じる障害あるいは誤りを処理す
るための種々の回路構成について論述している。正しく
ない命令に関連する誤りの検出および訂正のためのこの
ような回路構成の1つは、誤り検出回路、誤り訂正回路
および複数のマイクロ命令をロードされた制御メモリー
を含む。誤り検出回路は、制御メモリーから読み出され
た各マイクロ命令の誤りを検出するためのものであり、
誤り訂正回路は正しいマイクロ命令を得るために誤りを
訂正するためのものである。このような構成により、た
とえ誤り検出回路により誤りが検出されない時でも、各
マイクロ命令は常に制御ストアから誤り検出回路および
誤り訂正回路の両者を通るように送出される。従って、
機械サイクルの増加は避けられない。
【0006】別の従来の回路構成においては、誤り検出
のみが、誤り検出回路を用いて制御メモリーから読出さ
れた各マイクロ命令毎に常に行われる。誤り訂正回路
は、誤り検出回路により誤りが検出された時にのみ作動
される。このような構成の故に、誤り訂正回路は、制御
ストアの誤りのある部分がアクセスされる毎に各マイク
ロ命令の誤りを訂正する。従って、誤りのある部分から
読出される各マイクロ命令の処理には長い時間がかか
る。このため、制御ストアにハードウエアの誤りが生じ
ると、マイクロ命令の実行の平均時間が長くなる。
【0007】上記の両方の従来技術の回路構成は、誤り
の発生と同時に誤りの検出のみでなく誤りの訂正をも実
施する。誤り訂正を可能にするため、各マイクロ命令は
誤り訂正コードにより形成されねばならない。誤り検出
のみなら1つ以上のパリティ・ビットを付加することに
より簡単に可能であるが、このような誤り訂正コード
は、当技術分野において周知のようにパリティ・ビット
(単数又は複数の)の数より大きい数の余分な冗長ビッ
トを必要とする。このため、誤りコードの使用は、制御
ストアのビット容量の増加をもたらす。更に、上記の従
来技術の回路構成はいずれもプログラミングの間違いか
ら結果として生じるマイクロコード誤りを訂正すること
ができない。
【0008】マイクロコードにおける誤りを訂正するた
めの1例はChang等(IBM Tech.Dis.Bul.31.11,1989年4
月発行)に開示されており、これはプログラム可能な命
令検出回路を使用する。命令の実行に関連する誤りが存
在するときは、検出回路はその命令コードを認識するよ
うにプログラムすることができ、この命令は実行されな
い命令として取扱うことができる。ソフトウエアによる
エミュレーションは、命令を実行し問題を迂回するよう
に書くことができる。しかし、このシステムは、改訂さ
れたマイクロコードの正しさを検証することができな
い。
【0009】特開昭58−16349号公報は、誤りの
ない命令による障害のある命令の代替を容易にするメモ
リー拡張代替システムを開示している。この公報におい
ては、システムの実現は、命令の特定の演算コードの検
出ではなく、マイクロ命令の特定のアドレスの検出に基
づく。特定のアドレスが検出されると、誤りのないマイ
クロ命令を有するメモリー領域を指示する代替アドレス
が与えられる。マイクロ命令がシステムにより無効化さ
れるとき、タイミングをとる目的のためのノー・オペレ
ーション・サイクルを挿入しなければならない。このノ
ー・オペレーションの状態は、命令の実行の間に生じる
ことがあり、これがシステムの設計およびデバッグを更
に困難にすることがあり得る。
【0010】特開昭58−16350号公報もまた、メ
モリー拡張代替システムを開示している。同公報におい
て、障害を持つマイクロ命令の特定のアドレスが一致装
置により検出されると、代替命令が与えられる。基本的
には、n個のマイクロアドレスを訂正するために、検出
回路がn個のマイクロアドレスに対する置換アドレスを
検出して生成する。しかし、n個のマイクロ命令の取扱
いが可能なシステムを実現することが容易となるに過ぎ
ず、この場合nは検出回路の大きさおよび性能に対する
制限の故に小さな数に限定される。
【0011】特開昭59−85545号公報は、システ
ムROMの内容に対する訂正および処理システムを開示
している。同公報において開示されたシステムは、シス
テム・プログラムを含むシステムROMにおける誤りの
バイパスを含む技術を提供するが、マイクロコードを含
む制御ストアROMにおける誤りのバイパスは含まな
い。
【0012】
【発明の概要】本発明は、マイクロプログラムされたプ
ロセッサの制御ストアに含まれる誤りのあるマイクロコ
ードを訂正するための装置に関するものである。本装置
は、制御ストアに含まれる少なくとも1つの誤りのある
予め定めたマクロ命令を検出するためのプログラム可能
な検出回路と、予め定めたマクロ命令の検出に応答して
前記プログラム可能な検出回路により直接アドレス可能
な第1のプログラム可能アレイとを含む。この第1のプ
ログラム可能アレイは、少なくとも1つの前記誤りのあ
るマイクロ命令と置き換えられる少なくとも1つの誤り
のないマイクロ命令を含む。本装置は更に、マイクロプ
ログラムされたプロセッサのマイクロシーケンサにより
アドレス指定可能な第2のプログラム可能なアレイを含
む。この第2のプログラム可能なアレイは、予め定めた
マクロ命令の一連のマイクロ命令と必要に応じて置き換
えられる少なくとも1つの誤りのないマイクロ命令を含
む。更に、本装置は、特定のマイクロ命令が主制御スト
アROM、第1のプログラム可能アレイ、あるいは第2
のプログラム可能アレイのいずれから取り出されるべき
かを決定するマルチプレクサ回路、およびこのマルチプ
レクサを制御するためのマルチプレクサ選択論理回路を
使用する。このマルチプレクサ選択論理回路は、プログ
ラム可能検出回路から検出信号を、またマイクロシーケ
ンサから次のアドレス信号を受取る。
【0013】本装置のプログラム可能検出回路は、誤り
のある命令の実行により生じる諸問題を回避するため、
中央処理装置チップを、既に存在する命令復号ロジック
に対して追加したものである。基本的には、検出回路を
用いて、誤りのあるマイクロコード・シーケンスを持つ
マクロ命令にたいする命令コードを検出する。このよう
な命令コードの検出と同時に、置換マイクロシーケンス
の最初のマイクロ命令が、ロード可能な制御ストアRA
Mである第1のプログラム可能なアレイから取り出され
る。第2のプログラム可能なアレイは、必要に応じて、
マイクロコード・シーケンスの残りのマイクロ命令を格
納するために使用できる第2のロード可能なRAMであ
る。別のRAMに最初の命令を置くことにより、検出回
路は語線を介して記憶ロケーションを直接アドレス指定
することができる。改訂された部分は、主制御ストアR
OM内の残りのマイクロコードと連結されて命令が完結
する。
【0014】マイクロコード訂正装置は、短いマイクロ
コード・シーケンス、長いマイクロコード・シーケンス
の開始点での誤りおよびマイクロコード・シーケンスの
終了点でのスパースな誤りの有効な訂正を行う。本発明
は、可変長であり得る命令の特定の命令コードを検出す
ることにより多数の誤りの訂正を行う。本発明は、1つ
のVLSIチップにおいて実現可能であり、このため、
余分な電力消費およびプロセッサ・ボード上の面積をほ
とんど要さない。更に、本発明は、通常の命令復号との
並行処理においてマイクロ命令の検出および訂正を行う
ので、プロセッサのサイクル時間に影響しない。
【0015】
【実施例】本発明の装置は、マイクロプログラムされた
プロセッサの制御ストアに含まれる誤りのあるマイクロ
コードを訂正するものであり、マイクロプログラムされ
たプロセッサを既存の命令復号ロジックおよびマイクロ
制御ロジックに対して追加したものである。本装置は、
正しくないマイクロコード命令あるいは命令シーケンス
を持つ命令あるいはマクロ命令に対する命令コードを検
出するために使用される。このような命令コードが検出
されると、この命令の最初の制御ワードが小型のロード
可能な制御ストアRAMの関連するエントリ点から取り
出される。正しくないマイクロコード・シーケンスの最
初の部分は、RAMに記憶されたシーケンス中の最後の
マイクロコード誤りまでを含む、改訂されたマイクロコ
ードで置き換えられる。この改訂された部分は、ROM
内の残りのマイクロコードと連結されて命令を完結す
る。この検出プロセスは、命令の復号と並行して生じる
ので、サイクル時間にいかなる影響も与えない。
【0016】図1は、マイクロコードあるいはマイクロ
命令の訂正のための本発明の装置を備えたマイクロプロ
グラムされたプロセッサのアーキテクチャを示すブロッ
ク図を示す。マイクロプログラム化プロセッサは、3つ
の主な機能要素、即ち、マイクロ制御ロジック・モジュ
ール、制御メモリー・モジュール、およびデータ経路モ
ジュールよりなる。本発明の例示目的のためには、デー
タ経路モジュールおよびこれが提供する諸機能の詳細な
説明を含む必要はないが、マイクロ制御ロジック・モジ
ュールと制御メモリー・モジュール間の相互の関係の詳
細な説明は、本発明の小形のプログラム可能アレイの種
々の機能を例示するのに役立つ。
【0017】プログラマが入力する命令であるマクロ命
令の通常の実行においては、命令は即時記憶のため命令
入力レジスタ100に記憶される。特定のマクロ命令の
命令コードは、命令の残りのフィールドから分離され、
他の命令ならびに命令コードを復号する命令デコーダ2
00へ送られる。この命令デコーダ200は、特定のマ
クロ命令を実行するために用いられるマイクロ命令シー
ケンスの開始アドレスを生成する論理回路である。マイ
クロ命令シーケンスの開始アドレスは、マイクロシーケ
ンスの最初のマイクロ命令のアドレスである。基本的に
は、このアドレスは、特定の情報あるいは使用されるべ
きデータのメモリーにおける単なる物理的ロケーション
である。復号された物理的アドレスは、次にマイクロシ
ーケンサ300へ送られる。マイクロシーケンサ300
は、特定のマイクロシーケンスの実行を制御するマイク
ロ制御ロジックの部分である。基本的には、マイクロシ
ーケンサ300は、マイクロ命令が実行される順序をつ
かさどる。ついで、マイクロシーケンサ300からの開
始アドレスは、制御ストアROM400へ送られる。こ
の制御ストアROM400は、プロセッサ・システムの
マイクロコード即ちファームウエアの全てを含んでい
る。プロセッサにおいて高い速度を達成するために、制
御ストアは典型的にROM技術を用いて実現される。最
初のマイクロ命令である制御ストアROM400の出力
は、マルチプレクサ500を介してマイクロ命令レジス
タ600へ送られ、ここでマイクロ命令はマイクロプロ
セッサ(図示せず)の実行ユニット700の制御のため
使用されるまで記憶される。マルチプレクサ500の使
用の詳細な説明を次に行う。
【0018】特定のマイクロシーケンスにおける次のマ
イクロ命令のマイクロアドレスである次アドレス信号即
ちNEXTADDRESSが各マイクロ命令の一部とし
て含まれる。このNEXTADDRESSは、マイクロ
命令レジスタ600から出力され、マイクロシーケンサ
300に対して、またマルチプレクサ500の動作を制
御するために使用されるマルチプレクサ選択論理回路8
00に対してフィードバックされる。通常の動作では、
即ちこのサイクル内で例外ケースが検出されない場合に
は、マイクロシーケンサ300は再びマイクロシーケン
スにおける次のマイクロ命令のアドレスを制御ストアR
OM400へ送り、ここで指定されたマイクロ命令が取
り出され、マルチプレクサ500を介してマイクロ命令
レジスタ600へ送られる。これは、特定のマクロ命令
に対するマイクロシーケンスが終わるまで継続する反復
ループ・タイプのプロセスである。
【0019】マクロ命令の命令コードが特定のマイクロ
命令における既知の誤りあるいはマイクロシーケンス全
体における誤りに対応するとき、プログラム可能検出回
路900はこの特定の命令コードの存在を検出し、誤り
検出信号Detect Not(DETN)をマルチプ
レクサ選択論理回路800に与える。更に、プログラム
可能検出回路900は、制御ストアROM400に記憶
された誤りのあるマイクロ命令と置き換えられるべきマ
イクロ命令を選択するための、第1の小型のロード可能
RAMアレイ410に対する語線デコーダとして使用さ
れる。ロード可能RAMは、マイクロシステムの入出力
装置からロードすることができるRAMであり、スタテ
ィックRAM(SRAM)、ダイナミックRAM(DR
AM)あるいは電気的消去可能PROM(EEPRO
M)を含む種々の手法で実現することができる。基本的
には、第1のロード可能RAM410は、新しいマイク
ロシーケンスの最初のマイクロ命令を含む。この新しい
マイクロ命令は、第1のローだ可能RAM410から取
り出され、マルチプレクサ500を介してマイクロ命令
レジスタ600へ送られる。プログラム可能検出回路9
00が誤り検出信号DETNをマルチプレクサ選択回路
800へ送るので、第1のロード可能RAM410の内
容は、通常全てのマイクロコードを含む制御ストアRO
M400のに対立するものとして使用される。この検出
および訂正プロセスは、命令の復号と並列して行われる
ので、プロセッサあるいはマイクロプロセッサのサイク
ル時間に影響を与えない。
【0020】マイクロ命令レジスタ600から出力され
たこの新しいマイクロ命令のNEXTADDRESS
は、マイクロシーケンサ300へ入力される。マイクロ
シーケンサ300は、本システムのマイクロ制御ロジッ
クの一部であり、実行されるべき次のマイクロ命令の制
御ストア・アドレスを選択することをつかさどる。マイ
クロシーケンサ300は、基本的には、そのときのマク
ロ命令、プロセッサの状態および前のマクロ命令を含む
幾つかの要因に基づいてマイクロ命令が実行される順序
を決定する状態マシンである。これらの要因に基づい
て、マイクロシーケンサ300は制御ストアROM40
0あるいは第2のロード可能RAM420と対応するア
ドレスを出力する。もし前のマイクロ命令が第2のロー
ド可能RAM420と対応するNEXTADDRESS
を持つなら、マイクロシーケンサは第2のロード可能R
AM内のロケーションと対応するマイクロアドレスを出
力する。この第2のロード可能RAM420は、新しい
マイクロシーケンスの残りのマイクロ命令が格納される
場所である。従って、新しいマイクロシーケンスにおけ
る次のマイクロ命令は第2のロード可能RAMから取り
出されることになる。この場合も、マルチプレクサ選択
論理回路800がこの特定の記憶装置の選択をつかさど
る。第2のロード可能RAM420からのマイクロ命令
のこのような取り出しおよび使用のプロセスは、制御ス
トアROM400に格納された元のマイクロシーケンス
の最後のマイクロコード誤りに達するまで継続する。第
2のロード可能RAM420におけるこの最後のマイク
ロ命令のNEXTADDRESSは、元の制御ストアR
OM400を再び指示する。この最後のマイクロ命令が
元の制御ストアROM400を指示するので、マイクロ
コードの改訂された部分は、制御ストアROM400内
の残りのマイクロコードと連結されて特定のマクロ命令
を完結する。
【0021】マルチプレクサ500は、どの記憶装置即
ち制御ストアROM400、第1のロード可能RAM4
10および第2のロード可能RAM420のいづれから
マイクロ命令あるいはマイクロシーケンスが取り出され
るかを決定するために使用される。記憶装置の3つの選
択肢があるので、3対1のマルチプレクサが用いられ
る。マルチプレクサ500に対する選択信号は、マルチ
プレクサ選択回路800により与えられる。このマルチ
プレクサ選択回路800は、2つの入力、即ちDete
ct Not信号DETNおよびマイクロ命令レジスタ
6002より与えられるNEXTADDRESS信号に
基く選択信号に対して特定の値を出力する。基本的に
は、マルチプレクサ500の選択ロジックは下記の如く
要約することができる。即ち、もしマイクロ制御ロジッ
クがマイクロシーケンスの最初のサイクルにあり信号D
ETNが論理値1に等しければ、この特定の命令コード
に対するマイクロシーケンスが誤りを含まないことを示
し、従って制御ストアROM400が選択される。もし
マイクロ制御ロジックがマイクロシーケンスの最初のサ
イクルにあり信号DETNが論理値0に等しければ、1
つの誤りあるいは複数の誤りを含むマイクロシーケンス
を示し、従って第1のロード可能RAM410が選択さ
れる。もしNEXTADDRESSが第2のロード可能
RAM420における記憶ロケーションを指示するな
ら、第2のロード可能RAM420が選択される。最後
に、もし上記状態のいずれもが存在しなければ、制御ス
トアROM400が選択される。
【0022】先に述べたように、プログラム可能検出回
路900は、誤り又は障害を含むマイクロコード・シー
ケンスと対応するマクロ命令の適法な即ち有効な命令コ
ードを検出するために使用される。例示のために、In
tel 8080マイクロプロセッサのMOVマクロ命
令が、プログラム可能検出回路に対して使用される。I
ntel 8080のMOVマクロ命令は、8ビット長
であり、3つのフィールドを含む。即ち、2つのビット
(ビット7および6)からなる命令コード・フィール
ド、3つのビット(ビット5、4、3)からなるアドレ
ス・レジスタ・フィールド、および3つのビット(ビッ
ト2、1、0)からなるアドレス・コード・フィールド
である。本発明においては、プログラム可能検出回路9
00は、特定の命令コードを検出するように設計され、
このため、マクロ命令の命令コード・フィールドが第1
の関心事となる。機械語においては、MOV A,Dマ
クロ命令は下記により示される。即ち、 MOV A,D 01 010 111 (1) 式(1)の最も左側の2つのビットは、MOVマクロ命
令の命令コードである。前に述べたように、プログラム
可能検出回路900は、その対応するマイクロコード・
シーケンスに誤りを持つ命令コードを検出するために使
用される。説明のため、MOV命令に対するマイクロシ
ーケンスが誤りを含み、プログラム可能検出回路900
がこの命令コードを検出して、プロセッサを別のロケー
ション、即ち図1に示す第1のロード可能RAM410
あるいは第2のロード可能RAM420に含まれる有効
なマイクロコード・シーケンスへ向けなおすものと仮定
する。
【0023】次に、図2には本発明のプログラム可能検
出回路900の概略図が示される。式(1)で与えられ
る命令の最上位ビット即ちビット7は、第1の真ビット
線902および第2の補ビット線904を介してプログ
ラム可能検出回路900へ送られる。第1の真ビット線
902および第1の補ビット線904はともに、2重ト
ランジスタおよびヒューズ回路906へ延びている。第
1の真ビット線902は、第1のNMOSトランジスタ
908のゲートに接続されている。このNMOSトラン
ジスタ908のドレーン端子は、ヒューズ910を介し
て第1の語線912に接続され、ソース端子は直接接地
されている。ビット7はほぼDC0ボルトに対応する論
理値0であるため、第1のNMOSトランジスタ908
は遮断領域で動作し、このため語線912をほぼDC5
ボルト、即ち論理値1のレベルに保持する。このこと
は、ヒューズ910がそのままであり、真ビット線90
2および第1の語線912間に回路を完成することを意
味する。
【0024】本発明のプログラム可能検出回路900
が、点線ブロック907に含まれるNOR回路により示
されるごときNORゲート・アレイ形態で実現される。
このため、このNORゲート・アレイの出力を受け取る
語線は、特定の命令コードに関連する誤りが存在しなけ
れば、論理値レベル0になる。
【0025】本例においては、検出されるべき命令コー
ドは01であり、今までのところ第1の語線912は論
理値1のレベルにある。このため、第1の語線912は
誤り条件を示すレベルにセットされる。しかし、前述の
如く、ビット7はまた第1の補ビット線904を介して
プログラム可能検出回路900へ送られる。第1の補ビ
ット線904は、インバータ914と接続され、このイ
ンバータは入力する信号の論理値を反転する。
【0026】本例においては、ビット7は論理値レベル
が0であるが、インバータ914を通った後は論理値レ
ベルが1となり、第2のNMOSトランジスタ916の
ゲート端子に送られるのはこの反転信号である。この第
2のNMOSトランジスタ916のドレーン端子は、ヒ
ューズ918を経て第1の語線912と接続され、ソー
ス端子は直接接地されている。この第2のNMOSトラ
ンジスタ916のゲートにおけるほぼDC5ボルトに対
応する論理値1のレベルによって、トランジスタ916
は導通領域で動作し、語線912をほぼ0ボルトまで引
き下げる。プログラム可能検出回路900が01の命令
コードを検出することが要求されるため、語線912を
論理値レベル1即ちほぼDC5ボルトの保持することが
必要である。従って、第2のNMOSトランジスタ91
6が語線912を引き下げることを阻止するために、ヒ
ューズ918が切れて開回路を生じなければならない。
ヒューズ918が開路すると、NMOSトランジスタ9
08が語線912をハイ・レベルに維持するため、語線
912は論理値レベル1を維持する。
【0027】式(1)において与えられる命令の第2の
ビット、即ちビット6は、第2の真ビット線920およ
び第2の補ビット線922を介してプログラム可能検出
回路900へ送られる。第2の真ビット線920は、第
3のNMOSトランジスタ924のゲート端子に接続さ
れている。このNMOSトランジスタ924のドレーン
端子はヒューズ926を介して第1の語線912に接続
され、ソース端子は前のように直接接地されている。ビ
ット6は論理値レベル1にあるため、第3のNMOSト
ランジスタ924は導通状態にあり、このため、語線9
12を論理値0のレベルにする。語線912が論理値1
レベルにあることが望ましいため、ヒューズ926は開
回路になって語線912がダウン状態になるのを阻止す
るように溶断されなければならない。第2の補ビット線
922は第2のインバータ928に接続され、これも入
力する信号の論理値レベルを反転させる。本例において
は、ビット6が論理値1のレベルにあるが、第2のイン
バータ928を通った後は論理値0レベルにあり、この
新しい値が第4のNMOSトランジスタ930のゲート
端子に送られる。この第4のNMOSトランジスタ93
0のソース端子は、ヒューズ932を介して第1の語線
912に接続され、ソース端子は接地される。このゲー
トにおける値は論理値0であるため、この第4のNMO
Sトランジスタ930は遮断領域内で作動し、これによ
り語線912を略々5ボルト即ち論理値1に保持する。
【0028】ヒューズ918およびヒューズ926を溶
断することにより、プログラム可能検出回路100は命
令コード01の存在を検出するようにプログラムされ
る。命令コード01の存在は2つの事象を生起させる。
生起する第1の事象は、論理値1レベルにあり且つ図1
に示されるように第1のロード可能RAM410にも接
続された前記語線912が用いられて誤り状態にあるマ
イクロ命令と置き換えられるべきマイクロ命令を選択す
ることである。基本的には、この語線912は、第1の
ロード可能RAM410におけるハードワイヤード・ア
ドレス指定可能点である。生起する第2の事象は、図1
に示されるように、語線上の論理値レベルがNORゲー
ト934を介してマルチプレクサ選択回路800へ送ら
れることである。1つの語線のみの場合は、NORゲー
ト934は不要であるが、システムが複数の語線を用い
て構成される場合は何らかの論理値選択回路が必要にな
る。
【0029】図2に示すように、各命令ビット回線が1
つの真ビット線および1つの補ビット線からなる複数の
命令ビット線を設けることができる。命令ビット線の数
は、2ビット長から32ビット長まで変化しうる特定の
命令コードのビット数により決定される。個々の命令ビ
ット線は各々複数の語線に対する2重トランジスタおよ
びヒューズ回路の1つに接続されている。各2重回路は
同じものであり、同一構成要素には同一番号がダッシュ
を付して示されている。語線の数は、検出されるべき個
々の命令コードの数によって決まる。例えば、唯1つの
命令コードのみが前記の事例における如く検出される必
要があるならば、1つの語線912のみが必要となる
が、2ビットの命令コードの場合は、4つの異なる命令
コードがあり得るため、4つの全ての対応するマクロ命
令について誤りを生じる可能性がある。3つまでのマク
ロ命令を訂正する必要がある場合、3つの語線が必要で
ある。前に述べたように、2つ以上の語線が必要な場
合、個々の論理回路が必要になる。本実施例において
は、論理NORゲート934を用いる。論理NORゲー
ト934は、全ての五千ガロン理値レベル0にあると
き、予め定めた命令コードを検出しないことを示す論理
値1を出力するだけである。いずれかの語線が論理値レ
ベル1にあると、NORゲート934は図1に示すマル
チプレクサ選択論理回路800に対して値0のDETN
信号を出力する。
【0030】本発明に使用されるプログラム可能検出回
路を実現するために多くの異なる方法を使用することが
できる。本実施例においては、NORゲート・アレイの
形態を用いたが、XORまたはNANDゲートの形態を
用いて実現することもできる。NORゲートの形態は、
実際のNORゲートの使用を意味するものではなく、図
2に示す2重NMOSトランジスタおよびヒューズ形態
の使用を意味する。基本的には、この形態は、NORロ
ジックの実現を可能にし、多重形態からの任意のビット
が論理値1なら、ゲートの出力は論理値0になり、さも
なければ、出力は論理値1になる。図2に示すごときプ
ログラム可能NORアレイは、VLSIで実現するのに
最も適する。アレイにおけるプログラム可能NORゲー
トは、レーザあるいは電気的プログラム可能ヒューズに
より実現することができる。プログラム以前は、NOR
ゲートからの出力は常に全てのアドレスに対してローと
なる。プログラムされると、適当なヒューズが溶断され
て、与えられた命令コードの対して出力がハイに切り替
えられる。アレイ内の各NORゲートは、異なる命令コ
ードに応答するようにプログラムすることができる。こ
れらのNORゲートの出力はDETN信号を生じるよう
に一緒にNORされる。アドレス操作により検出および
実行が可能な命令コードの最大数は、アレイに内のNO
Rゲート数に等しい。
【0031】本発明についてはその望ましい実施態様に
関して詳細に示したが、当業者には、本発明の趣旨およ
び範囲から逸脱することなく形態および細部における他
の変更が可能であることを理解すべきである。本発明は
頭書の特許請求の範囲によってのみ限定されるべきもの
である。
【図面の簡単な説明】
【図1】マイクロコード訂正をするための、ROMに対
する小形のプログラム可能アレイと共に実現されたマイ
クロプログラムされたプロセッサのアーキテクチャを示
すブロック図である。
【図2】マイクロコード訂正のためROMに対する小形
のプログラム可能アレイにより使用されるプログラム可
能検出回路の構成を示す概略回路図である。
【符号の説明】
100 命令入力レジスタ 200 命令デコーダ 300 マイクロシーケンサ 400 制御ストアROM 410 第1のロード可能RAM 420 第2のロード可能RAM 500 マルチプレクサ 600 マイクロ命令レジスタ 700 実行ユニット 800 マルチプレクサ選択論理回路 900 プログラム可能検出回路 902 第1の真のビット線 904 第1の相補ビット線 906 2重トランジスタおよびヒューズ回路 908 第1のNMOSトランジスタ 910 ヒューズ 912 第1の語線 914 インバータ 916 第2のNMOSトランジスタ 918 ヒューズ 920 第2の真のビット線 922 第2の相補ビット線 924 第3のNMOSトランジスタ 926 ヒューズ 928 第2のインバータ 930 第4のNMOSトランジスタ 932 ヒューズ 934 NORゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジュン・ハーン・チャン アメリカ合衆国95070、カリフォルニア州 サラトガ、グラスゴウ・コート 13275 番地 (56)参考文献 特開 昭51−121230(JP,A) 特開 昭64−54533(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 マクロ命令を受け取るレジスタと、マク
    ロ命令に関連したマイクロ命令を貯蔵し出力する制御ス
    トア・メモリと、次に実行されるべきマイクロ命令をア
    ドレス指定するために次アドレス信号を発生するマイク
    ロシーケンサとを有するマイクロプロセッサシステムに
    おいて前記制御ストア・メモリ内に含まれる誤りのある
    マイクロ命令を訂正するための装置であって、 前記レジスタに結合され、誤りのあるマイクロ命令を有
    することが予めわかっているマクロ命令を検出するよう
    にプログラムされており、前記マクロ命令の検出に応答
    してデコーダ信号と検出信号を出力するプログラム可能
    な検出回路と、 第1の無誤りのマイクロ命令を貯蔵するようにプログラ
    ムされ、前記デコーダ信号の受信に応答して前記第1の
    無誤りマイクロ命令を処理のために出力する第1のプロ
    グラム可能なメモリ・アレイと、 前記制御ストアに貯蔵された前記誤りのあるマイクロ命
    令に対応する無誤りのマイクロ命令を貯蔵するようにプ
    ログラムされ、前記次アドレス信号の受信に応答して無
    誤りのマイクロ命令を出力する第2のプログラム可能な
    メモリ・アレイと、 前記制御ストア・メモリ、前記第1のプログラム可能な
    メモリ・アレイ及び前記第2のプログラム可能なメモリ
    ・アレイの1つから出力を選択するマルチプレクサ回路
    と、 前記プログラム可能な検出回路からの検出信号及び前記
    マイクロシーケンサからの次アドレスに応答して前記マ
    ルチプレクサ回路を制御するマルチプレクサ選択論理回
    路とよりなり、 前記プログラム可能な検出回路は、 前記マクロ命令の1ビットを前記プログラム可能な検出
    回路にそれぞれ供給する複数の命令線と、 所定の論理状態に応じて複数のワード線の1つに論理レ
    ベル電圧を転送するよう前記命令ビット線に接続された
    転送回路と、 前記複数のワード線に接続され前記ワード線の各々上の
    論理レベル電圧に応じて前記検出信号を論理的に計算
    し、該検出信号を前記マルチプレクサ選択論理回路に転
    送する論理回路とを含む、 誤りのあるマイクロ命令を訂正する装置。
JP3151513A 1990-08-02 1991-06-24 誤りのあるマイクロ命令を訂正する装置 Expired - Lifetime JPH0799498B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/561,630 US5212693A (en) 1990-08-02 1990-08-02 Small programmable array to the on-chip control store for microcode correction
US561630 1990-08-02

Publications (2)

Publication Number Publication Date
JPH0581014A JPH0581014A (ja) 1993-04-02
JPH0799498B2 true JPH0799498B2 (ja) 1995-10-25

Family

ID=24242767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3151513A Expired - Lifetime JPH0799498B2 (ja) 1990-08-02 1991-06-24 誤りのあるマイクロ命令を訂正する装置

Country Status (3)

Country Link
US (1) US5212693A (ja)
EP (1) EP0469239A3 (ja)
JP (1) JPH0799498B2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2665593A1 (fr) * 1990-08-03 1992-02-07 Alcatel Radiotelephone Circuit integre comprenant une cellule standard, une cellule d'application et une cellule de test.
JP2594695B2 (ja) * 1990-10-01 1997-03-26 日本電気株式会社 制御メモリ誤り訂正機構
EP0649091A1 (en) * 1993-10-13 1995-04-19 International Business Machines Corporation Correction and modification of microprocessor chip operations
US5581720A (en) * 1994-04-15 1996-12-03 David Sarnoff Research Center, Inc. Apparatus and method for updating information in a microcode instruction
US5694346A (en) * 1995-01-18 1997-12-02 International Business Machines Corporation Integrated circuit including fully testable small scale read only memory constructed of level sensitive scan device shift register latches
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
US6009500A (en) * 1995-06-07 1999-12-28 Compaq Computer Corporation Replacement of erroneous firmware in a redundant non-volatile memory system
US5867701A (en) * 1995-06-12 1999-02-02 Intel Corporation System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
WO1997008618A1 (en) * 1995-08-29 1997-03-06 International Business Machines Corporation Data processing apparatus and method for correcting faulty microcode
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5907708A (en) * 1996-06-03 1999-05-25 Sun Microsystems, Inc. System and method for facilitating avoidance of an exception of a predetermined type in a digital computer system by providing fix-up code for an instruction in response to detection of an exception condition resulting from execution thereof
US5933629A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for detecting microbranches early
US5983337A (en) * 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction
US6256775B1 (en) * 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6260157B1 (en) * 1999-02-16 2001-07-10 Kurt Schurecht Patching of a read only memory
US6560665B1 (en) * 1999-05-14 2003-05-06 Xilinx Inc. Embedding firmware for a microprocessor with configuration data for a field programmable gate array
US6631520B1 (en) * 1999-05-14 2003-10-07 Xilinx, Inc. Method and apparatus for changing execution code for a microcontroller on an FPGA interface device
JP3705022B2 (ja) * 1999-07-09 2005-10-12 株式会社日立製作所 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US6643800B1 (en) * 2000-02-02 2003-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for testing microarchitectural features by using tests written in microcode
US7831807B1 (en) * 2002-06-20 2010-11-09 Unisys Corporation System and method for expanding the instruction set of an instruction processor
US7243206B2 (en) * 2003-04-14 2007-07-10 Arm Limited Method and apparatus for using a RAM memory block to remap ROM access requests
US7249252B2 (en) * 2004-06-16 2007-07-24 Intel Corporation Method of replacing initialization code in a control store with main code after execution of the initialization code has completed
US7716528B2 (en) * 2004-09-07 2010-05-11 Broadcom Corporation Method and system for configurable trigger logic for hardware bug workaround in integrated circuits
US7761773B2 (en) * 2005-06-30 2010-07-20 Sigmatel, Inc. Semiconductor device including a unique identifier and error correction 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
US20090031103A1 (en) * 2007-07-24 2009-01-29 Via Technologies Mechanism for implementing a microcode patch during fabrication
US20090031110A1 (en) 2007-07-24 2009-01-29 Via Technologies Microcode patch expansion mechanism
US20090031121A1 (en) 2007-07-24 2009-01-29 Via Technologies Apparatus and method for real-time microcode patch
US20090031090A1 (en) 2007-07-24 2009-01-29 Via Technologies Apparatus and method for fast one-to-many microcode patch
US20090031109A1 (en) 2007-07-24 2009-01-29 Via Technologies Apparatus and method for fast microcode patch from memory
US20090031108A1 (en) * 2007-07-24 2009-01-29 Via Technologies Configurable fuse mechanism for implementing microcode patches
US7921346B2 (en) * 2008-10-31 2011-04-05 International Business Machines Corporation Verification of array built-in self-test (ABIST) design-for-test/design-for-diagnostics (DFT/DFD)
CN101930391B (zh) * 2009-08-07 2013-03-27 威盛电子股份有限公司 微处理器及其所适用的测试方法
US20150242213A1 (en) * 2014-02-23 2015-08-27 Qualcomm Incorporated System and method for modification of coded instructions in read-only memory using one-time programmable memory
JPWO2016151774A1 (ja) * 2015-03-24 2018-01-11 富士通株式会社 情報処理装置、情報処理システムおよび情報処理装置の制御プログラム
US10437659B2 (en) * 2017-03-03 2019-10-08 Silicon Laboratories, Inc. Built-in context error variables
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 (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6015968B2 (ja) * 1975-04-17 1985-04-23 日本電気株式会社 制御記憶装置
US4231089A (en) * 1978-12-15 1980-10-28 Digital Equipment Corporation Data processing system with apparatus for correcting microinstruction errors
JPS5816349A (ja) * 1981-07-22 1983-01-31 Toshiba Corp メモリ拡張代替方式
JPS5816350A (ja) * 1981-07-22 1983-01-31 Toshiba Corp メモリ拡張代替方式
US4471472A (en) * 1982-02-05 1984-09-11 Advanced Micro Devices, Inc. Semiconductor memory utilizing an improved redundant circuitry configuration
US4480199A (en) * 1982-03-19 1984-10-30 Fairchild Camera & Instrument Corp. Identification of repaired integrated circuits
JPS5985545A (ja) * 1982-11-09 1984-05-17 Fujitsu Ltd システムrom内容修正処理方式
JPS59214952A (ja) * 1983-05-20 1984-12-04 Nec Corp 障害処理方式
JPH0666120B2 (ja) * 1983-11-09 1994-08-24 株式会社東芝 半導体記憶装置の冗長部
EP0198935A1 (de) * 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
JPS6454533A (en) * 1987-08-26 1989-03-02 Nippon Electric Eng Processor
US4926319A (en) * 1988-08-19 1990-05-15 Motorola Inc. Integrated circuit timer with multiple channels and dedicated service processor

Also Published As

Publication number Publication date
EP0469239A2 (en) 1992-02-05
US5212693A (en) 1993-05-18
JPH0581014A (ja) 1993-04-02
EP0469239A3 (en) 1992-11-19

Similar Documents

Publication Publication Date Title
JPH0799498B2 (ja) 誤りのあるマイクロ命令を訂正する装置
CN103123597B (zh) 微处理器及其所适用的测试方法
EP0554917B1 (en) Digital signal processing system having two instruction memories accessed by a processor under control of host
EP0092646B1 (en) Method and apparatus of program patching in a data processing system
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
KR900002604B1 (ko) 제어기억장치를 갖는 정보처리장치내의 에러회복 장치 및 방법.
US4710866A (en) Method and apparatus for validating prefetched instruction
EP1324190B1 (en) Data processing system having a read-modify-write unit
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
US3898443A (en) Memory fault correction system
US5870601A (en) Data processing apparatus and method for correcting faulty microcode in a ROM device via a flag microinstruction in a RAM device including corrected microcode
US4757445A (en) Method and apparatus for validating prefetched instruction
US20050071723A1 (en) Adaptive runtime repairable entry register file
JPS5938677B2 (ja) 制御ワ−ド転送制御装置
US6311298B1 (en) Mechanism to simplify built-in self test of a control store unit
US7526689B1 (en) Testing address lines of a memory controller
EP0155275B1 (en) Prefetch validation
JP2007157143A (ja) 処理配列、メモリカード装置、並びに処理配列の動作方法及び製造方法
US6954889B2 (en) Circuit for modifying stored data
JPS5883397A (ja) メモリ内容チエツク制御方式
JPH06187140A (ja) 処理装置
JP2531112B2 (ja) 情報処理装置
CN101930390A (zh) 微处理器及其所适用的操作方法
JPH04277847A (ja) メモリ装置
JPS6083149A (ja) コンピユ−タ