JPH0581014A - マイクロコード訂正のためのオンチツプ制御ストア用プログラム可能アレイ - Google Patents
マイクロコード訂正のためのオンチツプ制御ストア用プログラム可能アレイInfo
- Publication number
- JPH0581014A JPH0581014A JP3151513A JP15151391A JPH0581014A JP H0581014 A JPH0581014 A JP H0581014A JP 3151513 A JP3151513 A JP 3151513A JP 15151391 A JP15151391 A JP 15151391A JP H0581014 A JPH0581014 A JP H0581014A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- programmable
- microinstruction
- logic
- instruction
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address 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)
Abstract
(57)【要約】
【目的】 マイクロプログラムされたプロセッサの制御
ストアに含まれる誤りのあるマイクロコードを訂正する
装置を提供する。 【構成】 システムの主制御ストアROM(400)に
おける誤りのあるマイクロ命令に対応する命令コードを
検出する検出回路(900)と、代替マイクロ命令のた
めの記憶域として使用されるプログラム可能アレイとを
含む。検出回路(900)は、論理NOR回路として作
動する回路であり、誤りを含むマイクロコード・シーケ
ンスと対応するマクロ命令の有効な命令コードを検出す
るため使用される。プログラム可能アレイは、誤りのあ
るマイクロコードを置換する誤りのないマイクロコード
を含む2つのロード可能RAM(410、420)から
なる。検出および訂正は、システムのサイクル時間に対
して影響しないように命令の復号と並行して生起する。
ストアに含まれる誤りのあるマイクロコードを訂正する
装置を提供する。 【構成】 システムの主制御ストアROM(400)に
おける誤りのあるマイクロ命令に対応する命令コードを
検出する検出回路(900)と、代替マイクロ命令のた
めの記憶域として使用されるプログラム可能アレイとを
含む。検出回路(900)は、論理NOR回路として作
動する回路であり、誤りを含むマイクロコード・シーケ
ンスと対応するマクロ命令の有効な命令コードを検出す
るため使用される。プログラム可能アレイは、誤りのあ
るマイクロコードを置換する誤りのないマイクロコード
を含む2つのロード可能RAM(410、420)から
なる。検出および訂正は、システムのサイクル時間に対
して影響しないように命令の復号と並行して生起する。
Description
【0001】
【産業上の利用分野】本発明は、プロセッサ命令の実現
と関連する、誤りの検出のための回路構成に関し、特に
不当なマイクロコード・シーケンスを有する命令と関連
する、誤りの検出および訂正のための小形のプログラム
可能アレイに関する。
と関連する、誤りの検出のための回路構成に関し、特に
不当なマイクロコード・シーケンスを有する命令と関連
する、誤りの検出および訂正のための小形のプログラム
可能アレイに関する。
【0002】
【従来の技術】マイクロプロセッサあるいは一般にプロ
セッサをプログラムするため使用されるプログラミング
言語は、通常アセンブラ語あるいはアセンブリ言語と呼
ばれる。個々のアセンブラ命令はマクロ命令として参照
され、各マクロ命令は通常複数のマイクロ命令からなっ
ている。マイクロ命令は、マイクロプロセッサあるいは
プロセッサが実行し得る基本即ちプリミティブ命令であ
る。このマクロ命令は、マイクロ命令より高レベルの言
語であり、典型的には実行を完了するため幾つかの状態
を必要とする。特定のマイクロプロセッサあるいはプロ
セッサに応じて、特定のマクロ命令の実現に必要とされ
るマイクロ命令は変化する。
セッサをプログラムするため使用されるプログラミング
言語は、通常アセンブラ語あるいはアセンブリ言語と呼
ばれる。個々のアセンブラ命令はマクロ命令として参照
され、各マクロ命令は通常複数のマイクロ命令からなっ
ている。マイクロ命令は、マイクロプロセッサあるいは
プロセッサが実行し得る基本即ちプリミティブ命令であ
る。このマクロ命令は、マイクロ命令より高レベルの言
語であり、典型的には実行を完了するため幾つかの状態
を必要とする。特定のマイクロプロセッサあるいはプロ
セッサに応じて、特定のマクロ命令の実現に必要とされ
るマイクロ命令は変化する。
【0003】マイクロプロセッサあるいはプロセッサ・
システムは、基本的には3つの主要モジュール、即ち、
マイクロ制御論理モジュール、制御メモリー論理モジュ
ールおよびデータ経路モジュールからなっている。問題
となる2つの主要機能領域は、マイクロ制御論理モジュ
ールと制御メモリー論理モジュールである。データ経路
モジュールは、システムを介するデータの操作に責任が
ある。マイクロ命令は、制御メモリーに記憶され、纏め
てシステム即ちプロセッサのファームウエアと呼ばれ
る。各マイクロ命令は、実行されるべき次の順次マイク
ロ命令を決定するためにプロセッサ制御フラッグおよび
マクロ命令の命令コードと関連して使用される1つのフ
ィールドを含む複数のフィールドからなっている。他の
主フィールドは、データ経路を制御するため使用され
る。マクロ命令の命令コードは、マイクロ制御ロジック
により読出されて、次に実行するのはどのマイクロルー
チンかを決定する。
システムは、基本的には3つの主要モジュール、即ち、
マイクロ制御論理モジュール、制御メモリー論理モジュ
ールおよびデータ経路モジュールからなっている。問題
となる2つの主要機能領域は、マイクロ制御論理モジュ
ールと制御メモリー論理モジュールである。データ経路
モジュールは、システムを介するデータの操作に責任が
ある。マイクロ命令は、制御メモリーに記憶され、纏め
てシステム即ちプロセッサのファームウエアと呼ばれ
る。各マイクロ命令は、実行されるべき次の順次マイク
ロ命令を決定するためにプロセッサ制御フラッグおよび
マクロ命令の命令コードと関連して使用される1つのフ
ィールドを含む複数のフィールドからなっている。他の
主フィールドは、データ経路を制御するため使用され
る。マクロ命令の命令コードは、マイクロ制御ロジック
により読出されて、次に実行するのはどのマイクロルー
チンかを決定する。
【0004】高速プロセッサにおいては、制御メモリー
は通常バイポーラROMおよびPROMから構成され、
特定のROMを置換することにより、マクロ命令セット
全体を変更することができる。従来のプロセッサにおい
ては、ROMはオンチップ制御ストア(制御メモリー)
を実現するために広く使用される。オフチップ制御スト
アと比較すると、この方法はクリティカルパスにおける
チップ交差を無くし、かつ非常に大きなデータ幅を提供
し、その両者はシステムの高速性能に対して非常に重要
である。ROMは、スタティックRAMよりも約10倍
優れた密度を持つ故に選定される。しかし、ROMは、
製造中マスク・レベルでプログラムすることができるの
みであり、これはシステムの開発段階における主な短所
となる。単純なマイクロコードの誤りが、多くの時間に
わたる全てのシステム開発努力の妨げとなり得る。従っ
て、ROMに対してプログラムし直す必要なしに命令の
検出および訂正を行うことが望ましい。
は通常バイポーラROMおよびPROMから構成され、
特定のROMを置換することにより、マクロ命令セット
全体を変更することができる。従来のプロセッサにおい
ては、ROMはオンチップ制御ストア(制御メモリー)
を実現するために広く使用される。オフチップ制御スト
アと比較すると、この方法はクリティカルパスにおける
チップ交差を無くし、かつ非常に大きなデータ幅を提供
し、その両者はシステムの高速性能に対して非常に重要
である。ROMは、スタティックRAMよりも約10倍
優れた密度を持つ故に選定される。しかし、ROMは、
製造中マスク・レベルでプログラムすることができるの
みであり、これはシステムの開発段階における主な短所
となる。単純なマイクロコードの誤りが、多くの時間に
わたる全てのシステム開発努力の妨げとなり得る。従っ
て、ROMに対してプログラムし直す必要なしに命令の
検出および訂正を行うことが望ましい。
【0005】Satoの米国特許第4,644,539
号は、制御メモリーに生じる障害あるいは誤りを処理す
るための種々の早期の周知の回路構成について論述して
いる。不正な命令と関連する誤りの検出および訂正のた
めのこのような回路構成の1つは、複数のマイクロ命令
をロードされた制御メモリーと共に、誤り検出回路およ
び誤り訂正回路を含む。誤り検出回路は、制御メモリー
から読出された各マイクロ命令の誤りを検出するための
ものであり、誤り訂正回路は正しいマイクロ命令を得る
ために誤りを訂正するためのものである。このような構
成により、例え誤り検出回路により誤りが検出されない
時でも、各マイクロ命令は常に制御メモリーから誤り検
出回路および誤り訂正回路の両者を通るように送出され
る。従って、機械サイクルの増加は避けられない。
号は、制御メモリーに生じる障害あるいは誤りを処理す
るための種々の早期の周知の回路構成について論述して
いる。不正な命令と関連する誤りの検出および訂正のた
めのこのような回路構成の1つは、複数のマイクロ命令
をロードされた制御メモリーと共に、誤り検出回路およ
び誤り訂正回路を含む。誤り検出回路は、制御メモリー
から読出された各マイクロ命令の誤りを検出するための
ものであり、誤り訂正回路は正しいマイクロ命令を得る
ために誤りを訂正するためのものである。このような構
成により、例え誤り検出回路により誤りが検出されない
時でも、各マイクロ命令は常に制御メモリーから誤り検
出回路および誤り訂正回路の両者を通るように送出され
る。従って、機械サイクルの増加は避けられない。
【0006】別の従来の回路構成においては、誤り検出
のみが、誤り検出回路を用いて制御メモリーから読出さ
れた各マイクロ命令毎に常に行われる。誤り訂正回路
は、誤り検出回路により誤りが検出される時にのみ作動
される。このような構成の故に、上記の回路構成と比較
して機械サイクルを短縮することが可能である。しか
し、誤り訂正回路は、制御メモリーの誤りのある部分が
アクセスされる毎に各マイクロ命令の誤りを訂正する。
従って、誤りのある部分から読出される各マイクロ命令
の処理には長い時間がかかる。このため、制御メモリー
にハードウエアの誤りが生じると、マイクロ命令の実行
の平均時間が長くなる。
のみが、誤り検出回路を用いて制御メモリーから読出さ
れた各マイクロ命令毎に常に行われる。誤り訂正回路
は、誤り検出回路により誤りが検出される時にのみ作動
される。このような構成の故に、上記の回路構成と比較
して機械サイクルを短縮することが可能である。しか
し、誤り訂正回路は、制御メモリーの誤りのある部分が
アクセスされる毎に各マイクロ命令の誤りを訂正する。
従って、誤りのある部分から読出される各マイクロ命令
の処理には長い時間がかかる。このため、制御メモリー
にハードウエアの誤りが生じると、マイクロ命令の実行
の平均時間が長くなる。
【0007】上記の両方の従来技術の回路構成は、誤り
の発生と同時に誤りの検出のみでなく誤りの訂正をも実
施する。誤り訂正を可能にするため、各マイクロ命令は
誤り訂正コードにより形成されねばならない。誤り検出
のみなら1つ以上のパリティ・ビットを付加することに
より簡単に可能であるが、このような誤り訂正コード
は、当技術において周知のようにパリティ・ビット(複
数または単数の)より数が大きい余分な冗長ビットを必
要とする。このため、誤り訂正コードの使用は、制御メ
モリーのビット容量の増加をもたらす結果となる。更
に、上記の従来技術の回路構成はいずれもプログラミン
グの間違いから結果として生じるマイクロコード誤りを
訂正することができない。
の発生と同時に誤りの検出のみでなく誤りの訂正をも実
施する。誤り訂正を可能にするため、各マイクロ命令は
誤り訂正コードにより形成されねばならない。誤り検出
のみなら1つ以上のパリティ・ビットを付加することに
より簡単に可能であるが、このような誤り訂正コード
は、当技術において周知のようにパリティ・ビット(複
数または単数の)より数が大きい余分な冗長ビットを必
要とする。このため、誤り訂正コードの使用は、制御メ
モリーのビット容量の増加をもたらす結果となる。更
に、上記の従来技術の回路構成はいずれもプログラミン
グの間違いから結果として生じるマイクロコード誤りを
訂正することができない。
【0008】マイクロコードにおける誤りを訂正するた
めの1つの実施例はChang等(IBM Tech.
Dis.Bal.31,11、1989年4月発行)に
より開示されており、これはプログラム可能な命令検出
回路を使用する。命令の実現と関連する誤りが存在する
時は、検出回路はその命令コードを認識するようにプロ
グラムすることができ、この命令は実現されない命令と
して取扱うことができる。ソフトウエアによるエミュレ
ーションは、命令を実行し問題を迂回するように書くこ
とができる。しかし、このシステムは、改訂されたマイ
クロコードの正しさを検証することができない。
めの1つの実施例はChang等(IBM Tech.
Dis.Bal.31,11、1989年4月発行)に
より開示されており、これはプログラム可能な命令検出
回路を使用する。命令の実現と関連する誤りが存在する
時は、検出回路はその命令コードを認識するようにプロ
グラムすることができ、この命令は実現されない命令と
して取扱うことができる。ソフトウエアによるエミュレ
ーションは、命令を実行し問題を迂回するように書くこ
とができる。しかし、このシステムは、改訂されたマイ
クロコードの正しさを検証することができない。
【0009】日本国特許第58−16349号は、誤り
のない命令による障害のある命令の代替を容易にするメ
モリー拡張代替システムを開示している。この特許にお
いては、システムの実現は、命令の特定の演算コードの
検出ではなく、マイクロ命令の特定アドレスの検出に基
く。特定のアドレスが検出されると、誤りのないマイク
ロ命令を有するメモリーの領域を指示する代替アドレス
が与えられる。マイクロ命令がシステムにより無効化さ
れる時、タイミングを取る目的のためのノーオペレーシ
ョン・サイクルを挿入しなければならない。このノーオ
ペレーション状態は、命令の実行の間に生じ得、これが
システムの設計およびデバッグを更に困難にすることが
あり得る。
のない命令による障害のある命令の代替を容易にするメ
モリー拡張代替システムを開示している。この特許にお
いては、システムの実現は、命令の特定の演算コードの
検出ではなく、マイクロ命令の特定アドレスの検出に基
く。特定のアドレスが検出されると、誤りのないマイク
ロ命令を有するメモリーの領域を指示する代替アドレス
が与えられる。マイクロ命令がシステムにより無効化さ
れる時、タイミングを取る目的のためのノーオペレーシ
ョン・サイクルを挿入しなければならない。このノーオ
ペレーション状態は、命令の実行の間に生じ得、これが
システムの設計およびデバッグを更に困難にすることが
あり得る。
【0010】日本国特許第58−16350号もまた、
メモリー拡張代替システムを開示している。同特許にお
いては、障害を持つマイクロ命令の特定アドレスが一致
装置により検出されると、代替命令が与えられる。基本
的には、n個のマイクロ命令を訂正するために、検出回
路がn個のマイクロアドレスに対する置換アドレスを検
出して生成する。しかし、n個のマイクロ命令の取扱い
が可能なシステムを実現することが容易となるに過ぎ
ず、この場合nは検出回路の大きさおよび性能に対する
制限の故に小さな数に限定される。
メモリー拡張代替システムを開示している。同特許にお
いては、障害を持つマイクロ命令の特定アドレスが一致
装置により検出されると、代替命令が与えられる。基本
的には、n個のマイクロ命令を訂正するために、検出回
路がn個のマイクロアドレスに対する置換アドレスを検
出して生成する。しかし、n個のマイクロ命令の取扱い
が可能なシステムを実現することが容易となるに過ぎ
ず、この場合nは検出回路の大きさおよび性能に対する
制限の故に小さな数に限定される。
【0011】日本国特許第59−85545号は、シス
テムROMの内容に対する訂正および処理システムを開
示している。同特許においては、開示されたシステム
は、システム・プログラムを含むシステムROMにおけ
る誤りのバイパスを含む技術を提供するが、マイクロコ
ードを含む制御ストアROMにおける誤りのバイパスは
含まない。
テムROMの内容に対する訂正および処理システムを開
示している。同特許においては、開示されたシステム
は、システム・プログラムを含むシステムROMにおけ
る誤りのバイパスを含む技術を提供するが、マイクロコ
ードを含む制御ストアROMにおける誤りのバイパスは
含まない。
【0012】
【発明の概要】本発明は、マイクロプログラムされたプ
ロセッサの制御ストアに含まれる障害マイクロコードを
訂正するための装置に関するものである。本装置は、制
御ストアに含まれ、少なくとも1つの障害を有する予め
定めたマクロ命令を検出するためのプログラム可能な検
出回路と、予め定めたマクロ命令の検出に応答して前記
プログラム可能な検出回路により直接アドレス指定可能
な第1のプログラム可能アレイとを含む。この第1のプ
ログラム可能アレイは、少なくとも1つの前記障害マイ
クロ命令を置換する少なくとも1つの誤りのないマイク
ロ命令を含む。本装置は更に、マイクロプログラムされ
たプロセッサのマイクロシーケンサによりアドレス指定
可能な第2のプログラム可能なアレイを含む。この第2
のプログラム可能アレイは、予め定めたマクロ命令の一
連のマイクロ命令を必要に応じて置換する少なくとも1
つの誤りのないマイクロ命令を含む。更に、本装置は、
特定のマイクロ命令が主制御ストアROM、第1のプロ
グラム可能アレイ、あるいは第2のプログラム可能アレ
イのいずれから取出されるべきかを決定するマルチプレ
クサ回路、およびこのマルチプレクサを制御するための
マルチプレクサ選択論理回路を使用する。このマルチプ
レクサ選択論理回路は、プログラム可能検出回路から検
出信号を、またマイクロシーケンサから次のアドレス信
号を受取る。
ロセッサの制御ストアに含まれる障害マイクロコードを
訂正するための装置に関するものである。本装置は、制
御ストアに含まれ、少なくとも1つの障害を有する予め
定めたマクロ命令を検出するためのプログラム可能な検
出回路と、予め定めたマクロ命令の検出に応答して前記
プログラム可能な検出回路により直接アドレス指定可能
な第1のプログラム可能アレイとを含む。この第1のプ
ログラム可能アレイは、少なくとも1つの前記障害マイ
クロ命令を置換する少なくとも1つの誤りのないマイク
ロ命令を含む。本装置は更に、マイクロプログラムされ
たプロセッサのマイクロシーケンサによりアドレス指定
可能な第2のプログラム可能なアレイを含む。この第2
のプログラム可能アレイは、予め定めたマクロ命令の一
連のマイクロ命令を必要に応じて置換する少なくとも1
つの誤りのないマイクロ命令を含む。更に、本装置は、
特定のマイクロ命令が主制御ストアROM、第1のプロ
グラム可能アレイ、あるいは第2のプログラム可能アレ
イのいずれから取出されるべきかを決定するマルチプレ
クサ回路、およびこのマルチプレクサを制御するための
マルチプレクサ選択論理回路を使用する。このマルチプ
レクサ選択論理回路は、プログラム可能検出回路から検
出信号を、またマイクロシーケンサから次のアドレス信
号を受取る。
【0013】本装置のプログラム可能検出回路は、命令
誤りの実現により生じる諸問題を回避するため中央処理
装置チップの既に存在する命令復号ロジックに対して追
加される。基本的には、検出回路を用いて誤りのあるマ
イクロコード・シーケンスを持つマクロ命令に対する命
令コードを検出する。このような命令コードの検出と同
時に、置換マイクロシーケンスの最初のマイクロ命令
が、ロード可能な制御ストアRAMである第1のプログ
ラム可能なアレイから取出される。第2のプログラム可
能なアレイは、必要に応じて、マイクロコード・シーケ
ンスの残りのマイクロ命令を格納するために使用できる
第2のロード可能なRAMである。別のRAMに最初の
命令を置くことにより、検出回路は語線を介して記憶場
所を直接アドレス指定することができる。改訂された部
分は、命令を完了するために主制御ストアROMにおけ
る残りのマイクロコードと連結することができる。
誤りの実現により生じる諸問題を回避するため中央処理
装置チップの既に存在する命令復号ロジックに対して追
加される。基本的には、検出回路を用いて誤りのあるマ
イクロコード・シーケンスを持つマクロ命令に対する命
令コードを検出する。このような命令コードの検出と同
時に、置換マイクロシーケンスの最初のマイクロ命令
が、ロード可能な制御ストアRAMである第1のプログ
ラム可能なアレイから取出される。第2のプログラム可
能なアレイは、必要に応じて、マイクロコード・シーケ
ンスの残りのマイクロ命令を格納するために使用できる
第2のロード可能なRAMである。別のRAMに最初の
命令を置くことにより、検出回路は語線を介して記憶場
所を直接アドレス指定することができる。改訂された部
分は、命令を完了するために主制御ストアROMにおけ
る残りのマイクロコードと連結することができる。
【0014】マイクロコード訂正装置は、短いマイクロ
コード・シーケンス、長いマイクロコード・シーケンス
の初めの誤りおよびマイクロコード・シーケンスの終り
のスパースな誤りの有効な訂正を行う。本発明は、可変
長であり得る命令の特定の命令コードを検出することに
より多数の誤りの訂正を行う。本発明は、1つのVLS
Iチップにおいて実現可能であり、このため、余分な電
力消費およびプロセッサ・ボード上の面積をほとんど要
さない。更に、本発明は、通常の命令復号との並行処理
においてマイクロ命令の検出および訂正を行うので、プ
ロセッサのサイクル時間に影響しない。
コード・シーケンス、長いマイクロコード・シーケンス
の初めの誤りおよびマイクロコード・シーケンスの終り
のスパースな誤りの有効な訂正を行う。本発明は、可変
長であり得る命令の特定の命令コードを検出することに
より多数の誤りの訂正を行う。本発明は、1つのVLS
Iチップにおいて実現可能であり、このため、余分な電
力消費およびプロセッサ・ボード上の面積をほとんど要
さない。更に、本発明は、通常の命令復号との並行処理
においてマイクロ命令の検出および訂正を行うので、プ
ロセッサのサイクル時間に影響しない。
【0015】
【実施例】マイクロプログラムされたプロセッサの制御
ストアに含まれる誤りのあるマイクロコードを訂正する
ための本発明の装置は、マイクロプログラムされたプロ
セッサの既にある命令復号ロジックおよびマイクロ制御
ロジックに対する追加である。本装置は、正しくないマ
イクロコード命令あるいは命令のシーケンスを持つ命令
あるいはマクロ命令に対する命令コードを検出するため
に使用される。このような命令コードが検出されると、
この命令の最初の制御ワードが小形のロード可能な制御
ストアRAMの関連するエントリ点から取出される。正
しくないマイクロコード・シーケンスの最初の部分は、
シーケンス中の最後のマイクロコード誤りまでを含むR
AMに記憶された改訂されたマイクロコードにより置換
される。この改訂された部分は、命令を完了するためR
OMにおける残りのマイクロコードと連結することがで
きる。この検出プロセスは、サイクル時間に如何なる影
響も与えないように命令の復号と並行して生じる。
ストアに含まれる誤りのあるマイクロコードを訂正する
ための本発明の装置は、マイクロプログラムされたプロ
セッサの既にある命令復号ロジックおよびマイクロ制御
ロジックに対する追加である。本装置は、正しくないマ
イクロコード命令あるいは命令のシーケンスを持つ命令
あるいはマクロ命令に対する命令コードを検出するため
に使用される。このような命令コードが検出されると、
この命令の最初の制御ワードが小形のロード可能な制御
ストアRAMの関連するエントリ点から取出される。正
しくないマイクロコード・シーケンスの最初の部分は、
シーケンス中の最後のマイクロコード誤りまでを含むR
AMに記憶された改訂されたマイクロコードにより置換
される。この改訂された部分は、命令を完了するためR
OMにおける残りのマイクロコードと連結することがで
きる。この検出プロセスは、サイクル時間に如何なる影
響も与えないように命令の復号と並行して生じる。
【0016】図1においては、マイクロコードあるいは
マイクロ命令の訂正のための本発明の装置を備えたマイ
クロプログラムされたプロセッサのアーキテクチャを示
すブロック図が示される。基本的マイクロプログラム化
プロセッサは、3つの主な機能要素、即ちマイクロ制御
ロジック・モジュール、制御メモリー・モジュールおよ
びデータ経路モジュールを含む。本発明の例示目的のた
めには、データ経路モジュールおよびこれが供する諸機
能の詳細な説明を含む必要はないが、マイクロ制御ロジ
ック・モジュールと制御メモリー・モジュール間の相互
の関係の詳細な記述は、本発明の小形のプログラム可能
アレイの種々の機能を例示するのに役立つ。
マイクロ命令の訂正のための本発明の装置を備えたマイ
クロプログラムされたプロセッサのアーキテクチャを示
すブロック図が示される。基本的マイクロプログラム化
プロセッサは、3つの主な機能要素、即ちマイクロ制御
ロジック・モジュール、制御メモリー・モジュールおよ
びデータ経路モジュールを含む。本発明の例示目的のた
めには、データ経路モジュールおよびこれが供する諸機
能の詳細な説明を含む必要はないが、マイクロ制御ロジ
ック・モジュールと制御メモリー・モジュール間の相互
の関係の詳細な記述は、本発明の小形のプログラム可能
アレイの種々の機能を例示するのに役立つ。
【0017】プログラマが入力する命令であるマクロ命
令の通常の実行においては、命令は即時記憶のため命令
入力レジスタ100に記憶される。特定のマクロ命令の
命令コードは、命令の残りのフィールドから分離され、
他の命令ならびに命令コードを復号する命令デコーダ2
00へ送られる。この命令デコーダ200は、特定のマ
クロ命令を実現するため用いられるマイクロ命令シーケ
ンスの開始アドレスを生成する論理回路である。マイク
ロ命令シーケンスの開始アドレスは、マイクロシーケン
スの最初のマイクロ命令のアドレスである。基本的に
は、このアドレスは、特定の情報あるいは使用されるべ
きデータのメモリーにおける単なる物理的場所である。
この復号された開始アドレスは、次にマイクロシーケン
サ300へ送られる。マイクロシーケンサ300は、特
定のマイクロシーケンスの実行を制御するマイクロ制御
ロジックの部分である。基本的には、マイクロシーケン
サ300は、マイクロ命令が実行される順序をつかさど
る。次いで、マイクロシーケンサ300からの開始アド
レスは、制御ストアROM400へ送られる。この制御
ストアROM400は、プロセッサ・システムのマイク
ロコード即ちファームウエアの全てを含んでいる。プロ
セッサにおいて高い速度を達成するために、制御ストア
は典型的にROM技術を用いて実現される。最初のマイ
クロ命令である制御ストアROM400の出力は、マル
チプレクサ500を介してマイクロ命令レジスタ600
へ送られ、ここでマイクロ命令はマイクロプロセッサ
(図示せず)の実行ユニット700の制御のため使用さ
れるまで記憶される。マルチプレクサ500の使用の詳
細な説明を次に行う。
令の通常の実行においては、命令は即時記憶のため命令
入力レジスタ100に記憶される。特定のマクロ命令の
命令コードは、命令の残りのフィールドから分離され、
他の命令ならびに命令コードを復号する命令デコーダ2
00へ送られる。この命令デコーダ200は、特定のマ
クロ命令を実現するため用いられるマイクロ命令シーケ
ンスの開始アドレスを生成する論理回路である。マイク
ロ命令シーケンスの開始アドレスは、マイクロシーケン
スの最初のマイクロ命令のアドレスである。基本的に
は、このアドレスは、特定の情報あるいは使用されるべ
きデータのメモリーにおける単なる物理的場所である。
この復号された開始アドレスは、次にマイクロシーケン
サ300へ送られる。マイクロシーケンサ300は、特
定のマイクロシーケンスの実行を制御するマイクロ制御
ロジックの部分である。基本的には、マイクロシーケン
サ300は、マイクロ命令が実行される順序をつかさど
る。次いで、マイクロシーケンサ300からの開始アド
レスは、制御ストアROM400へ送られる。この制御
ストアROM400は、プロセッサ・システムのマイク
ロコード即ちファームウエアの全てを含んでいる。プロ
セッサにおいて高い速度を達成するために、制御ストア
は典型的にROM技術を用いて実現される。最初のマイ
クロ命令である制御ストアROM400の出力は、マル
チプレクサ500を介してマイクロ命令レジスタ600
へ送られ、ここでマイクロ命令はマイクロプロセッサ
(図示せず)の実行ユニット700の制御のため使用さ
れるまで記憶される。マルチプレクサ500の使用の詳
細な説明を次に行う。
【0018】各マイクロ命令の一部として含まれるの
は、特定のマイクロシーケンスにおける次のマイクロ命
令のマイクロアドレスである次のアドレス信号即ちNE
XTADDRESSである。このNEXTADDRES
Sは、マイクロ命令レジスタ600から出力され、マイ
クロシーケンサ300に対し、またマルチプレクサ50
0の動作を制御するために使用されるマルチプレクサ選
択論理回路800に対してフィードバックされる。通常
の動作、即ちこのサイクル内で例外ケースが検出されな
い動作においては、マイクロシーケンサ300は再びマ
イクロシーケンスにおける次のマイクロ命令のアドレス
を制御ストアROM400へ送り、ここで指定されたマ
イクロ命令が取出され、マルチプレクサ500を介して
マイクロ命令レジスタ600へ送られる。これは、特定
のマクロ命令に対するマイクロシーケンスが終わるまで
継続する反復ループ・タイプのプロセスである。
は、特定のマイクロシーケンスにおける次のマイクロ命
令のマイクロアドレスである次のアドレス信号即ちNE
XTADDRESSである。このNEXTADDRES
Sは、マイクロ命令レジスタ600から出力され、マイ
クロシーケンサ300に対し、またマルチプレクサ50
0の動作を制御するために使用されるマルチプレクサ選
択論理回路800に対してフィードバックされる。通常
の動作、即ちこのサイクル内で例外ケースが検出されな
い動作においては、マイクロシーケンサ300は再びマ
イクロシーケンスにおける次のマイクロ命令のアドレス
を制御ストアROM400へ送り、ここで指定されたマ
イクロ命令が取出され、マルチプレクサ500を介して
マイクロ命令レジスタ600へ送られる。これは、特定
のマクロ命令に対するマイクロシーケンスが終わるまで
継続する反復ループ・タイプのプロセスである。
【0019】マクロ命令の命令コードが特定のマイクロ
命令における既知の誤りあるいはマイクロシーケンス全
体における誤りと対応する時、プログラム可能検出回路
900はこの特定の命令コードの存在を検出し、誤り検
出信号Detect Not(DETN)をマルチプレ
クサ選択論理回路800へ与える。更に、プログラム可
能検出回路900は、制御ストアROM400に記憶さ
れた誤りのあるマイクロ命令を置換することになるマイ
クロ命令を選択するため、第1の小形のロード可能RA
Mアレイ410に対する語線デコーダとして使用され
る。ロード可能RAMは、マイクロシステムの入出力装
置からロードすることができるRAMであり、スタティ
ックRAM(SRAM)、ダイナミックRAM(DRA
M)あるいは電気的消去可能PROM(EEPROM)
を含む種々の手法において実現することができる。基本
的には、第1のロード可能RAM410は、新しいマイ
クロシーケンスの最初のマイクロ命令を含む。この新し
いマイクロ命令は、第1のロード可能RAM410から
取出され、マルチプレクサ500を介してマイクロ命令
レジスタ600へ送られる。第1のロード可能RAM4
10の内容は、通常全てのマイクロコードを含む制御ス
トアROM400の内容と対照的に使用されるが、これ
はプログラム可能検出回路900が誤り検出信号DET
Nをマルチプレクサ選択論理回路800へ送るためであ
る。この検出および訂正プロセスは、プロセッサあるい
はマイクロプロセッサのサイクル時間に対して影響を与
えないように命令の復号と並行して生じることに注意す
べきである。
命令における既知の誤りあるいはマイクロシーケンス全
体における誤りと対応する時、プログラム可能検出回路
900はこの特定の命令コードの存在を検出し、誤り検
出信号Detect Not(DETN)をマルチプレ
クサ選択論理回路800へ与える。更に、プログラム可
能検出回路900は、制御ストアROM400に記憶さ
れた誤りのあるマイクロ命令を置換することになるマイ
クロ命令を選択するため、第1の小形のロード可能RA
Mアレイ410に対する語線デコーダとして使用され
る。ロード可能RAMは、マイクロシステムの入出力装
置からロードすることができるRAMであり、スタティ
ックRAM(SRAM)、ダイナミックRAM(DRA
M)あるいは電気的消去可能PROM(EEPROM)
を含む種々の手法において実現することができる。基本
的には、第1のロード可能RAM410は、新しいマイ
クロシーケンスの最初のマイクロ命令を含む。この新し
いマイクロ命令は、第1のロード可能RAM410から
取出され、マルチプレクサ500を介してマイクロ命令
レジスタ600へ送られる。第1のロード可能RAM4
10の内容は、通常全てのマイクロコードを含む制御ス
トアROM400の内容と対照的に使用されるが、これ
はプログラム可能検出回路900が誤り検出信号DET
Nをマルチプレクサ選択論理回路800へ送るためであ
る。この検出および訂正プロセスは、プロセッサあるい
はマイクロプロセッサのサイクル時間に対して影響を与
えないように命令の復号と並行して生じることに注意す
べきである。
【0020】マイクロ命令レジスタ600から出力され
たこの新しいマイクロ命令のNEXTADDRESS
は、マイクロシーケンサ300へ入力される。マイクロ
シーケンサ300は、本システムのマイクロ制御ロジッ
クの一部であり、実行されるべき次のマイクロ命令の制
御メモリー・アドレスを選択することをつかさどる。マ
イクロシーケンサ300は、基本的には、その時のマク
ロ命令、プロセッサの状態および前のマイクロ命令を含
む幾つかの要因に基いてマイクロ命令が実行される順序
を決定する状態マシンである。これらの要因に基いて、
マイクロシーケンサ300は制御ストアROM400あ
るいは第2のロード可能RAM420と対応するアドレ
スを出力する。もし前のマイクロ命令が第2のロード可
能RAM420と対応するNEXTADDRESSを持
つならば、マイクロシーケンサは第2のロード可能RA
M420における場所と対応するマイクロアドレスを出
力する。この第2のロード可能RAM420は、新しい
マイクロシーケンスの残りのマイクロ命令が格納される
場所である。従って、新しいマイクロシーケンスにおけ
る次のマイクロ命令は第2のロード可能RAM420か
ら取出されることになる。再び、マルチプレクサ選択論
理回路800がこの特定の記憶装置の選択をつかさど
る。第2のロード可能RAM420からのマイクロ命令
のこのような取出および使用のプロセスは、制御ストア
ROM400に格納された元のマイクロシーケンスの最
後のマイクロコード誤りに達するまで継続する。第2の
ロード可能RAM420におけるこの最後のマイクロ命
令のNEXTADDRESSは、元の制御ストアROM
400を再び指示する。この最後のマイクロ命令が元の
制御ストアROM400を指示するので、マイクロコー
ドの改訂された部分は、特定のマクロ命令を完成するた
め制御ストアROM400における残りのマイクロコー
ドと連結することができる。
たこの新しいマイクロ命令のNEXTADDRESS
は、マイクロシーケンサ300へ入力される。マイクロ
シーケンサ300は、本システムのマイクロ制御ロジッ
クの一部であり、実行されるべき次のマイクロ命令の制
御メモリー・アドレスを選択することをつかさどる。マ
イクロシーケンサ300は、基本的には、その時のマク
ロ命令、プロセッサの状態および前のマイクロ命令を含
む幾つかの要因に基いてマイクロ命令が実行される順序
を決定する状態マシンである。これらの要因に基いて、
マイクロシーケンサ300は制御ストアROM400あ
るいは第2のロード可能RAM420と対応するアドレ
スを出力する。もし前のマイクロ命令が第2のロード可
能RAM420と対応するNEXTADDRESSを持
つならば、マイクロシーケンサは第2のロード可能RA
M420における場所と対応するマイクロアドレスを出
力する。この第2のロード可能RAM420は、新しい
マイクロシーケンスの残りのマイクロ命令が格納される
場所である。従って、新しいマイクロシーケンスにおけ
る次のマイクロ命令は第2のロード可能RAM420か
ら取出されることになる。再び、マルチプレクサ選択論
理回路800がこの特定の記憶装置の選択をつかさど
る。第2のロード可能RAM420からのマイクロ命令
のこのような取出および使用のプロセスは、制御ストア
ROM400に格納された元のマイクロシーケンスの最
後のマイクロコード誤りに達するまで継続する。第2の
ロード可能RAM420におけるこの最後のマイクロ命
令のNEXTADDRESSは、元の制御ストアROM
400を再び指示する。この最後のマイクロ命令が元の
制御ストアROM400を指示するので、マイクロコー
ドの改訂された部分は、特定のマクロ命令を完成するた
め制御ストアROM400における残りのマイクロコー
ドと連結することができる。
【0021】マルチプレクサ500は、どの記憶装置即
ち制御ストアROM400、第1のロード可能RAM4
10あるいは第2のロード可能RAM420からマイク
ロ命令あるいはマイクロシーケンスが取出されるかを決
定するため使用される。記憶装置の3つの選択肢がある
ので、3対1のマルチプレクサが用いられる。マルチプ
レクサ500に対する選択信号は、マルチプレクサ選択
論理回路800により与えられる。このマルチプレクサ
選択論理回路800は、2つの入力、即ちDetect
Not信号DETNおよびマイクロ命令レジスタ60
0により与えられるNEXTADDRESS信号に基く
選択信号に対して特定の値を出力する。基本的には、マ
ルチプレクサ500の選択ロジックは下記の如く要約す
ることができる。即ち、もしマイクロ制御ロジックがマ
イクロシーケンスの最初のサイクルにあり信号DETN
が論理値1に等しければ、この特定の命令コードに対す
るマイクロシーケンスが誤りを含まないことを示し、従
って制御ストアROM400が選択される。もしマイク
ロ制御ロジックがマイクロシーケンスの最初のサイクル
にあり信号DETNが論理値0に等しければ、1つの誤
りあるいは複数の誤りを含むマイクロシーケンスを示
し、従って第1のロード可能RAM410が選択され
る。もしNEXTADDRESSアドレスが第2のロー
ド可能RAM420における記憶場所を指示するなら
ば、第2のロード可能RAM420が選択される。最後
に、もし上記の状態のいずれも存在しなければ、制御ス
トアROM400が選択される。
ち制御ストアROM400、第1のロード可能RAM4
10あるいは第2のロード可能RAM420からマイク
ロ命令あるいはマイクロシーケンスが取出されるかを決
定するため使用される。記憶装置の3つの選択肢がある
ので、3対1のマルチプレクサが用いられる。マルチプ
レクサ500に対する選択信号は、マルチプレクサ選択
論理回路800により与えられる。このマルチプレクサ
選択論理回路800は、2つの入力、即ちDetect
Not信号DETNおよびマイクロ命令レジスタ60
0により与えられるNEXTADDRESS信号に基く
選択信号に対して特定の値を出力する。基本的には、マ
ルチプレクサ500の選択ロジックは下記の如く要約す
ることができる。即ち、もしマイクロ制御ロジックがマ
イクロシーケンスの最初のサイクルにあり信号DETN
が論理値1に等しければ、この特定の命令コードに対す
るマイクロシーケンスが誤りを含まないことを示し、従
って制御ストアROM400が選択される。もしマイク
ロ制御ロジックがマイクロシーケンスの最初のサイクル
にあり信号DETNが論理値0に等しければ、1つの誤
りあるいは複数の誤りを含むマイクロシーケンスを示
し、従って第1のロード可能RAM410が選択され
る。もしNEXTADDRESSアドレスが第2のロー
ド可能RAM420における記憶場所を指示するなら
ば、第2のロード可能RAM420が選択される。最後
に、もし上記の状態のいずれも存在しなければ、制御ス
トアROM400が選択される。
【0022】先に述べたように、プログラム可能検出回
路900は、誤りまたは障害を含むマイクロコード・シ
ーケンスと対応するマクロ命令の適法即ち有効な命令コ
ードを検出するため使用される。例示の目的のため、I
ntel8080マイクロプロセッサのMOVマクロ命
令が、プログラム可能検出回路900が作動する方法の
事例において使用される。Intel8080のMOV
マクロ命令は、長さが8ビットであり、3つの個々のフ
ィールドからなっている。即ち、2つのビット(ビット
7および6)からなる命令コード・フィールド、3つの
ビット(ビット5、4、3)からなる宛て先レジスタ・
フィールド、および3つのビット(ビット2、1、0)
からなる宛て先コード・フィールドである。本発明にお
いては、プログラム可能検出回路900は、特定の命令
コードを検出するように設計され、このため、マクロ命
令の命令コード・フィールドが下記の事例における第1
の関心事となる。機械語においては、MOV A,Dマ
クロ命令は下記により示される。即ち、 MOV A,D 01 010 111 (1) 式1の最も左側の2つのビットは、MOVマクロ命令の
命令コードである。前に述べたように、プログラム可能
検出回路900は、その対応するマイクロコード・シー
ケンスに誤りを持つ命令コードを検出するため使用さ
れ、このため、本例の目的のためには、MOV命令に対
するマイクロシーケンスが誤りを含み、プログラム可能
検出回路900がこの命令コードを検出して、プロセッ
サを別の場所、即ち、図1に示される第1のロード可能
RAM410あるいは第2のロード可能RAM420に
含まれる即ち格納された有効なマイクロコード・シーケ
ンスへ向け直すことを仮定する。
路900は、誤りまたは障害を含むマイクロコード・シ
ーケンスと対応するマクロ命令の適法即ち有効な命令コ
ードを検出するため使用される。例示の目的のため、I
ntel8080マイクロプロセッサのMOVマクロ命
令が、プログラム可能検出回路900が作動する方法の
事例において使用される。Intel8080のMOV
マクロ命令は、長さが8ビットであり、3つの個々のフ
ィールドからなっている。即ち、2つのビット(ビット
7および6)からなる命令コード・フィールド、3つの
ビット(ビット5、4、3)からなる宛て先レジスタ・
フィールド、および3つのビット(ビット2、1、0)
からなる宛て先コード・フィールドである。本発明にお
いては、プログラム可能検出回路900は、特定の命令
コードを検出するように設計され、このため、マクロ命
令の命令コード・フィールドが下記の事例における第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および第1の相補ビット線904を介してプログ
ラム可能検出回路900へ送られる。第1の真のビット
線902および第1の相補ビット線904は共に、2重
トランジスタおよびヒューズ回路906へ伸びている。
第1の真のビット線902は、第1のNMOSトランジ
スタ908のゲートと接続されている。このNMOSト
ランジスタ908のドレーン端子は、ヒューズ910を
介して第1の語線912に接続され、ソース端子は直接
接地されている。ビット7は略々ゼロボルトDCと対応
する論理値0であるため、第1のNMOSトランジスタ
908は遮断領域で作動し、このため語線912を略々
5ボルトDC、即ち論理値1のレベルに保持する。この
ことは、ヒューズ910がそのままであり、真のビット
線902および第1の語線912間に回路を完成するこ
とを示唆する。
出回路900の概略図が示される。式1で与えられる命
令の最上位ビット即ちビット7は、第1の真のビット線
902および第1の相補ビット線904を介してプログ
ラム可能検出回路900へ送られる。第1の真のビット
線902および第1の相補ビット線904は共に、2重
トランジスタおよびヒューズ回路906へ伸びている。
第1の真のビット線902は、第1のNMOSトランジ
スタ908のゲートと接続されている。このNMOSト
ランジスタ908のドレーン端子は、ヒューズ910を
介して第1の語線912に接続され、ソース端子は直接
接地されている。ビット7は略々ゼロボルトDCと対応
する論理値0であるため、第1のNMOSトランジスタ
908は遮断領域で作動し、このため語線912を略々
5ボルトDC、即ち論理値1のレベルに保持する。この
ことは、ヒューズ910がそのままであり、真のビット
線902および第1の語線912間に回路を完成するこ
とを示唆する。
【0024】本発明のプログラム可能検出回路900
が、点線ブロック907に含まれるNOR回路により示
される如きNORゲート・アレイ形態を用いて実現され
たことに注意すべきであり、このため、このNORゲー
ト・アレイの出力を受取る語線は、特定の命令コードと
関連する誤りが存在しなければ、論理値レベル0にな
る。
が、点線ブロック907に含まれるNOR回路により示
される如きNORゲート・アレイ形態を用いて実現され
たことに注意すべきであり、このため、このNORゲー
ト・アレイの出力を受取る語線は、特定の命令コードと
関連する誤りが存在しなければ、論理値レベル0にな
る。
【0025】本例においては、検出されるべき命令コー
ドは01であり、今までの所第1の語線912は論理値
1のレベルにある。このため、第1の語線912は、誤
り条件を示すレベルにセットされる。しかし、前述の如
く、ビット7はまた第1の相補ビット線904を介して
プログラム可能検出回路900へ送られている。第1の
相補ビット線904は、インバータ914と接続され、
このインバータは入力する信号の論理値を反転する。
ドは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のゲートにおける略々5ボルトDCと対
応する論理値1のレベルによって、トランジスタ916
は、導通領域で作動し、語線912を略々0ボルトまで
引張る。プログラム可能検出回路900が01の命令コ
ードを検出することが要求されるため、語線912を論
理値レベル1即ち略々5ボルトに保持することが必要で
ある。従って、第2のNMOSトランジスタ916が語
線912を引下げることを阻止するために、ヒューズ9
18が切れて開回路を生じなければならない。ヒューズ
918が開路すると、NMOSトランジスタ908が語
線912をハイ・レベルに維持するため、語線912は
論理値レベル1を維持する。
が0であるが、インバータ914を通った後は論理値レ
ベルが1となり、第2のNMOSトランジスタ916の
ゲート端子に送られるのはこの反転信号である。この第
2のNMOSトランジスタ916のドレーン端子は、ヒ
ューズ918を経て第1の語線912と接続され、ソー
ス端子は直接接地されている。この第2のNMOSトラ
ンジスタ916のゲートにおける略々5ボルトDCと対
応する論理値1のレベルによって、トランジスタ916
は、導通領域で作動し、語線912を略々0ボルトまで
引張る。プログラム可能検出回路900が01の命令コ
ードを検出することが要求されるため、語線912を論
理値レベル1即ち略々5ボルトに保持することが必要で
ある。従って、第2のNMOSトランジスタ916が語
線912を引下げることを阻止するために、ヒューズ9
18が切れて開回路を生じなければならない。ヒューズ
918が開路すると、NMOSトランジスタ908が語
線912をハイ・レベルに維持するため、語線912は
論理値レベル1を維持する。
【0027】式1において与えられる命令の第2のビッ
ト、即ちビット6は、第2の真のビット線920および
第2の相補ビット線922を介してプログラム可能検出
回路900へ送られる。第2の真のビット線920は、
第3のNMOSトランジスタ924のゲート端子に接続
されている。このNMOSトランジスタ924のドレー
ン端子はまた、ヒューズ926を介して第1の語線91
2に接続され、ソース端子は前のように直接接地されて
いる。ビット6は論理値レベル1にあるため、第3のN
MOSトランジスタ924は導通状態にあり、このた
め、語線912を論理値0のレベルにさせる。語線91
2が論理値1レベルにあることが望ましいため、ヒュー
ズ926は開回路になって語線912がダウン状態にな
ることを阻止するように溶断されねばならない。第2の
相補ビット線922は第2のインバータ928と接続さ
れ、これも入力する信号の論理値レベルを反転させる。
本例においては、ビット6が論理値1のレベルにある
が、第2のインバータ928を通った後は論理値0レベ
ルにあり、この新しい値が第4のNMOSトランジスタ
930のゲート端子に送られる。この第4のNMOSト
ランジスタ930のソース端子は、ヒューズ932を介
して第1の語線912と接続され、ソース端子は接地さ
れる。このゲートにおける値は論理値0であるため、こ
の第4のNMOSトランジスタ930は遮断領域内で作
動し、これにより語線912を略々5ボルト即ち論理値
1に保持する。
ト、即ちビット6は、第2の真のビット線920および
第2の相補ビット線922を介してプログラム可能検出
回路900へ送られる。第2の真のビット線920は、
第3のNMOSトランジスタ924のゲート端子に接続
されている。このNMOSトランジスタ924のドレー
ン端子はまた、ヒューズ926を介して第1の語線91
2に接続され、ソース端子は前のように直接接地されて
いる。ビット6は論理値レベル1にあるため、第3のN
MOSトランジスタ924は導通状態にあり、このた
め、語線912を論理値0のレベルにさせる。語線91
2が論理値1レベルにあることが望ましいため、ヒュー
ズ926は開回路になって語線912がダウン状態にな
ることを阻止するように溶断されねばならない。第2の
相補ビット線922は第2のインバータ928と接続さ
れ、これも入力する信号の論理値レベルを反転させる。
本例においては、ビット6が論理値1のレベルにある
が、第2のインバータ928を通った後は論理値0レベ
ルにあり、この新しい値が第4のNMOSトランジスタ
930のゲート端子に送られる。この第4のNMOSト
ランジスタ930のソース端子は、ヒューズ932を介
して第1の語線912と接続され、ソース端子は接地さ
れる。このゲートにおける値は論理値0であるため、こ
の第4のNMOSトランジスタ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ゲート93
4は不要となるが、もしシステムが複数の語線を用いて
実現されるならば、ある種の論理値選択回路が必要とな
る。
断することにより、プログラム可能検出回路100は命
令コード01の存在を検出するようにプログラムされ
る。命令コード01の存在は、2つの事象を生起させ
る。生起する第1の事象は、論理値1レベルにありかつ
図1に示されるように第1のロード可能RAM410と
も接続される前記語線912が用いられて誤り状態にあ
るマイクロ命令を置換するマイクロ命令を選択すること
である。基本的には、この語線912は、第1のロード
可能RAM410におけるハードワイヤドアドレス指定
可能点である。生起する第2の事象は、図1に示される
ように、語線上の論理値レベルがNORゲート934を
介してマルチプレクサ選択論理回路800へ送られるこ
とである。1つの語線のみの場合は、NORゲート93
4は不要となるが、もしシステムが複数の語線を用いて
実現されるならば、ある種の論理値選択回路が必要とな
る。
【0029】図2に示されるように、各命令ビット回線
が1つの真のビット線および1つの相補ビット線からな
っている複数の命令ビット線を設けることができる。命
令ビット線の数は、長さが2ビットから32ビットまで
変化し得る特定の命令コードのビット数により決定され
る。個々の命令ビット線は各々、複数の語線に対する2
重トランジスタおよびヒューズ回路の1つと接続されて
いる。各2重回路は、同じ構成要素の要素番号における
プライム表記で示される如く同じものである。語線の数
は、検出される必要がある個々の命令コードの数によっ
て決定される。例えば、もし唯1つの命令コードのみが
前記の事例における如く検出される必要があるならば、
1つの語線912のみが必要となるが、2ビットの命令
コードの場合は、4つの異なる命令コードがあり得るた
め、4つの全ての対応するマクロ命令について誤りを生
じる可能性がある。3つまでのマクロ命令を訂正できる
ことを必要とするものとすれば、3つの語線が必要とな
る。前に述べたように、もし1つ以上の語線が必要とさ
れるならば、個々の論理回路が必要とされる。本実施例
においては、論理NORゲート934が使用された。論
理NORゲート934は、全ての語線が論理値レベル0
にある時、予め定めた命令コードを検出しないことを示
す論理値1を出力するのみである。もし任意の語線が論
理値レベル1にあるならば、NORゲート934は、図
1に示されたマルチプレクサ選択論理回路800に対し
て値が0のDETN信号を出力することになる。
が1つの真のビット線および1つの相補ビット線からな
っている複数の命令ビット線を設けることができる。命
令ビット線の数は、長さが2ビットから32ビットまで
変化し得る特定の命令コードのビット数により決定され
る。個々の命令ビット線は各々、複数の語線に対する2
重トランジスタおよびヒューズ回路の1つと接続されて
いる。各2重回路は、同じ構成要素の要素番号における
プライム表記で示される如く同じものである。語線の数
は、検出される必要がある個々の命令コードの数によっ
て決定される。例えば、もし唯1つの命令コードのみが
前記の事例における如く検出される必要があるならば、
1つの語線912のみが必要となるが、2ビットの命令
コードの場合は、4つの異なる命令コードがあり得るた
め、4つの全ての対応するマクロ命令について誤りを生
じる可能性がある。3つまでのマクロ命令を訂正できる
ことを必要とするものとすれば、3つの語線が必要とな
る。前に述べたように、もし1つ以上の語線が必要とさ
れるならば、個々の論理回路が必要とされる。本実施例
においては、論理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ゲートは、異なる命令コードに応
答するようにプログラムすることができる。これらのN
ORゲート出力はDETN信号を生じるように一緒にN
ORされる。アドレス操作により検出及び実行が可能な
命令コードの最大数は、アレイにおけるNORゲート数
に等しい。
路を実現するために多くの異なる方法を使用することが
できる。本実施例においては、NORゲート・アレイ形
態が用いられたが、XORまたはNANDゲート形態を
用いて実現することも可能である。NORゲート形態
は、実際のNORゲートの使用を意味するものではな
く、図2に示される2重NMOSトランジスタおよびヒ
ューズ形態の使用を意味する。基本的には、この形態
は、NORロジックの実現を可能にし、これは多重形態
からの任意のビットが論理値1ならば、ゲートの出力は
論理値0となり、さもなければ、出力は論理値1とな
る。図2に示される如きプログラム可能NORアレイ
は、VLSIにおける実現に最も適するものである。ア
レイにおけるプログラム可能NORゲートは、レーザあ
るいは電気的プログラム可能ヒューズにより実現するこ
とができる。プログラム以前は、NORゲートからの出
力は常に全てのアドレスに対してローとなる。プログラ
ムされると、適当なヒューズが溶断されて、与えられた
命令コードに対して出力がハイの値へ切換えられる。ア
レイにおける各NORゲートは、異なる命令コードに応
答するようにプログラムすることができる。これらのN
ORゲート出力はDETN信号を生じるように一緒にN
ORされる。アドレス操作により検出及び実行が可能な
命令コードの最大数は、アレイにおけるNORゲート数
に等しい。
【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 番地
Claims (28)
- 【請求項1】 マイクロプログラムされたプロセッサの
制御ストアに含まれる誤りのあるマイクロコードを訂正
するための装置において、 (a)前記制御ストアに含まれる、誤りのあるマイクロ
命令を少なくとも1つ有する予め定めたマクロ命令を検
出するプログラム可能検出回路と、 (b)前記予め定めたマクロ命令の検出に応答して前記
プログラム可能検出回路により直接アドレス指定可能な
第1のプログラム可能アレイとを設け、該第1のプログ
ラム可能アレイが前記少なくとも1つの誤りのあるマイ
クロ命令を置換するための少なくとも1つの誤りのない
マイクロ命令を含むことを特徴とする装置。 - 【請求項2】 前記予め定めたマクロ命令の検出に応答
して前記予め定めたマクロ命令の一連のマイクロ命令に
おける1つ以上の誤りのあるマイクロ命令を置換するた
めの、少なくとも1つの誤りのないマイクロ命令を含
む、第2のプログラム可能アレイを更に設けることを特
徴とする請求項1記載の装置。 - 【請求項3】 (a)次のアドレス信号を前記第2のプ
ログラム可能アレイへ出力するマイクロシーケンサと、 (b)入力として接続された前記マイクロプログラムさ
れたプロセッサの主制御ストアROMと、前記第1のプ
ログラム可能アレイと、前記第2のプログラム可能アレ
イの内の1つから出力を選択するマルチプレクサ回路
と、 (c)前記プログラム可能検出回路からの検出信号およ
び前記マイクロシーケンサからの次のアドレス信号に応
答して、前記マルチプレクサ回路を制御するマルチプレ
クサ選択論理回路とを更に設けることを特徴とする請求
項2記載の装置。 - 【請求項4】 前記プログラム可能検出回路が、 (a)複数の命令ビット線を設け、該複数のビット線が
それぞれ前記予め定めたマクロ命令の1つのビットを前
記プログラム可能検出回路へ与え、 (b)前記複数の命令ビット線と接続された複数の2重
トランジスタおよびヒューズ回路を設け、該複数の2重
トランジスタおよびヒューズ回路が、予め定めた論理方
式に基いて複数の語線の1つに対して論理レベル電圧を
転送し、 (c)前記複数の語線と接続された論理デバイスを設
け、該論理デバイスは、前記複数の語線の各々における
論理レベル電圧に基いて前記検出信号を論理的に計算
し、該検出信号を前記マルチプレクサ選択論理回路へ送
ることを特徴とする請求項3記載の装置。 - 【請求項5】 前記複数の命令ビット線が、 (a)前記予め定めたマクロ命令の1つのビットを前記
プログラム可能検出回路へ送る真の命令ビット線と、 (b)前記予め定めたマクロ命令の1つのビットの相補
的論理値を前記プログラム可能検出回路へ送る相補的命
令ビット線とを含むことを特徴とする請求項4記載の装
置。 - 【請求項6】 前記相補的命令ビット線が論理的インバ
ータ回路を含むことを特徴とする請求項5記載の装置。 - 【請求項7】 前記複数の2重トランジスタおよびヒュ
ーズ回路がそれぞれ、 (a)第1の端子において前記真の命令ビット線と接続
され、第2の端子において前記複数の語線の内の1つと
接続され、かつ第3の端子においてグラウンドと接続さ
れた第1のトランジスタと、 (b)第1の端子において前記相補的命令ビット線と接
続され、第2の端子において前記複数の語線の内の1つ
と接続され、かつ第3の端子においてグラウンドと接続
された第2のトランジスタと、を含むことを特徴とする
請求項6記載の装置。 - 【請求項8】 前記複数の2重トランジスタおよびヒュ
ーズ回路がそれぞれ更に、前記第1のトランジスタの前
記第2の端子および前記語線間に接続された第1のヒュ
ーズと、前記第2のトランジスタの前記第2の端子およ
び前記語線間に接続された第2のヒューズとを含むこと
を特徴とする請求項7記載の装置。 - 【請求項9】 前記第1および第2のヒューズが、該第
1および第2のトランジスタおよび前記複数の語線間に
開回路を生じるように、少なくとも1つの誤りのあるマ
イクロ命令を有する前記予め定めたマクロ命令の検出に
応答して、選択的に溶断されることを特徴とする請求項
8記載の装置。 - 【請求項10】 前記第1および第2のヒューズが、レ
ーザ・プログラム可能ヒューズであることを特徴とする
請求項9記載の装置。 - 【請求項11】 前記第1および第2のヒューズが、電
気的プログラム可能ヒューズであることを特徴とする請
求項9記載の装置。 - 【請求項12】 選択的に溶断されるヒューズを備えた
前記2重トランジスタおよびヒューズ回路が、前記予め
定めたマクロ命令に応答して作動するよう構成されるこ
とを特徴とする請求項9記載の装置。 - 【請求項13】 前記第1および第2のトランジスタが
NMOS型トランジスタであり、該NMOS型トランジ
スタが、論理値1が前記第1の端子に入力される時導通
モードで、また論理値0が前記第1の端子に入力される
時遮断モードで作動するよう構成されることを特徴とす
る請求項12記載の装置。 - 【請求項14】 前記複数の語線が論理ゲートに接続さ
れ、該論理ゲートは、前記複数の語線における論理値を
論理的に比較して、前記検出信号を前記マルチプレクサ
選択論理回路に対して出力することを特徴とする請求項
13記載の装置。 - 【請求項15】 前記論理ゲートがNORゲートである
ことを特徴とする請求項14記載の装置。 - 【請求項16】 前記複数の語線の少なくとも1つが前
記第1のプログラム可能アレイと接続され、前記複数の
語線の少なくとも1つが前記少なくとも1つの誤りのな
いマイクロ命令を選択することを特徴とする請求項13
記載の装置。 - 【請求項17】 前記第1のプログラム可能アレイが、
前記少なくとも1つの誤りのあるマイクロ命令を置換す
るための、前記少なくとも1つの誤りのないマイクロ命
令の第1のマイクロ命令を含む、第1のロード可能なR
AMであることを特徴とする請求項13記載の装置。 - 【請求項18】 前記第1のロード可能なRAMがダイ
ナミックRAMを用いて構成されることを特徴とする請
求項17記載の装置。 - 【請求項19】 前記第1のロード可能なRAMがスタ
ティックRAMを用いて構成されることを特徴とする請
求項17記載の装置。 - 【請求項20】 前記第1のロード可能なRAMが電気
的に消去可能なPROMを用いて実現されることを特徴
とする請求項17記載の装置。 - 【請求項21】 前記第2のプログラム可能アレイが、
前記予め定めたマクロ命令の前記一連のマイクロ命令を
置換するための、前記少なくとも1つの誤りのないマイ
クロ命令を含む、第2のロード可能RAMであることを
特徴とする請求項13記載の装置。 - 【請求項22】 前記第2のロード可能RAMが、スタ
ティックRAMを用いて構成されることを特徴とする請
求項21記載の装置。 - 【請求項23】 前記第2のロード可能RAMが、電気
的に消去可能なPROMを用いて構成されることを特徴
とする請求項21記載の装置。 - 【請求項24】 前記第2のロード可能RAMが、ダイ
ナミックRAMを用いて構成されることを特徴とする請
求項21記載の装置。 - 【請求項25】 マイクロプログラムされたプロセッサ
の制御ストアに含まれる誤りのあるマイクロコードを訂
正する方法において、 (a)前記制御ストアに含まれる、少なくとも1つの誤
りのあるマイクロ命令を有する予め定めたマクロ命令を
検出し、 (b)前記少なくとも1つの誤りのあるマイクロ命令を
第1のプログラム可能アレイに記憶された少なくとも1
つの誤りのないマイクロ命令で置換するステップを含む
ことを特徴とする方法。 - 【請求項26】 一連の誤りのあるマイクロ命令を第2
のプログラム可能アレイに記憶された少なくとも1つの
誤りのないマイクロ命令で置換するステップを更に含む
ことを特徴とする請求項25記載の方法。 - 【請求項27】 前記検出ステップが、 (a)前記予め定めたマクロ命令に応答して論理ゲート
として作動するように複数の2重トランジスタおよびヒ
ューズ回路を選択的にプログラミングし、 (b)前記複数の2重トランジスタおよびヒューズ回路
の出力に応答して前記第1のプログラム可能アレイを直
接アドレス指定するステップを含むことを特徴とする請
求項26記載の方法。 - 【請求項28】 前記検出ステップが、 前記複数の2重トランジスタおよびヒューズ回路の出
力、および前記少なくとも1つの誤りのないマイクロ命
令からの次のアドレス信号に応答して、前記第2のプロ
グラム可能アレイをアドレス指定することを含むことを
特徴とする請求項27記載の方法。
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 true JPH0581014A (ja) | 1993-04-02 |
| JPH0799498B2 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) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016151774A1 (ja) * | 2015-03-24 | 2016-09-29 | 富士通株式会社 | 情報処理装置、情報処理システムおよび情報処理装置の制御プログラム |
Families Citing this family (37)
| 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 |
| 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 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS51121230A (en) * | 1975-04-17 | 1976-10-23 | Nec Corp | A control memory system |
| JPS6454533A (en) * | 1987-08-26 | 1989-03-02 | Nippon Electric Eng | Processor |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US4926319A (en) * | 1988-08-19 | 1990-05-15 | Motorola Inc. | Integrated circuit timer with multiple channels and dedicated service processor |
-
1990
- 1990-08-02 US US07/561,630 patent/US5212693A/en not_active Expired - Fee Related
-
1991
- 1991-04-13 EP EP19910105935 patent/EP0469239A3/en not_active Ceased
- 1991-06-24 JP JP3151513A patent/JPH0799498B2/ja not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS51121230A (en) * | 1975-04-17 | 1976-10-23 | Nec Corp | A control memory system |
| JPS6454533A (en) * | 1987-08-26 | 1989-03-02 | Nippon Electric Eng | Processor |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016151774A1 (ja) * | 2015-03-24 | 2016-09-29 | 富士通株式会社 | 情報処理装置、情報処理システムおよび情報処理装置の制御プログラム |
| JPWO2016151774A1 (ja) * | 2015-03-24 | 2018-01-11 | 富士通株式会社 | 情報処理装置、情報処理システムおよび情報処理装置の制御プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0469239A2 (en) | 1992-02-05 |
| US5212693A (en) | 1993-05-18 |
| JPH0799498B2 (ja) | 1995-10-25 |
| EP0469239A3 (en) | 1992-11-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0581014A (ja) | マイクロコード訂正のためのオンチツプ制御ストア用プログラム可能アレイ | |
| CN103123597B (zh) | 微处理器及其所适用的测试方法 | |
| US4542453A (en) | Program patching in microcomputer | |
| KR100198382B1 (ko) | 멀티-부팅 기능을 갖는 컴퓨터 장치 | |
| 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 | |
| US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
| US5938774A (en) | Apparatus for repairing faulty program segments in embedded microprocessor systems | |
| US20100229062A1 (en) | Detection and correction of fuse re-growth in a microprocessor | |
| JP3118002B2 (ja) | 障害を有するマイクロ命令を訂正するためのデータ処理装置 | |
| US4422141A (en) | Microprocessor architecture for improved chip testability | |
| US5261116A (en) | Programmable, expandable controller with flexible I/O | |
| KR100186847B1 (ko) | 서로 분리되어 제공되는 데이타 버스와 명령어 페치 버스를 가지는 데이타 처리기 | |
| US20050071723A1 (en) | Adaptive runtime repairable entry register file | |
| KR940011040B1 (ko) | 마이크로컴퓨터 | |
| US5179716A (en) | Programmable expandable controller with flexible I/O | |
| US7526689B1 (en) | Testing address lines of a memory controller | |
| JPH04255000A (ja) | 処理素子およびこの種の処理素子をプログラムする方法 | |
| JP3190945B2 (ja) | マイクロプログラム制御回路 | |
| JPH06187140A (ja) | 処理装置 | |
| JPS5883397A (ja) | メモリ内容チエツク制御方式 | |
| CN101930390A (zh) | 微处理器及其所适用的操作方法 | |
| CN101794249A (zh) | 微处理器及初始化微处理器的方法 | |
| JPH04373022A (ja) | マイクロプログラム制御回路 | |
| JPH04209035A (ja) | 疑似障害発生回路 | |
| JPS6145336A (ja) | デ−タ処理装置 |