JPS626345A - マイクロ命令系列の実行時検査方法 - Google Patents
マイクロ命令系列の実行時検査方法Info
- Publication number
- JPS626345A JPS626345A JP61140408A JP14040886A JPS626345A JP S626345 A JPS626345 A JP S626345A JP 61140408 A JP61140408 A JP 61140408A JP 14040886 A JP14040886 A JP 14040886A JP S626345 A JPS626345 A JP S626345A
- Authority
- JP
- Japan
- Prior art keywords
- microinstruction
- sequence
- path
- identifier
- label
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3648—Debugging of software using additional hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はマイクロコード・シーケンスの実行時のエラー
の検出に関するものであシ、特にデータ処理システムに
おいてマイクロコード・シーケンス・エラーを検出し、
故障を分離するための方法および装置に関するものであ
る。
の検出に関するものであシ、特にデータ処理システムに
おいてマイクロコード・シーケンス・エラーを検出し、
故障を分離するための方法および装置に関するものであ
る。
B、従来技術
今日存在しているマイクロプログラム式の制御装置は、
自己検証的なものである。すなわち、動作のシーケンス
が適正である事が、マイクロコード・シーケンスの実行
時の所定の点で検査キーを計算することによって検査さ
れる。検査キーは、後でマイクロ命令シーケンスの適正
な実行を検証する際に使用するために、メモリに記憶さ
れている。実行時に、シーケンスの最後のマイクロ命令
で、検査キーが生成される。生成された検査キーは次い
で、記憶されている検査キーと比較され、これらが同じ
ものかどうか調べられる。同じものであれば、マイクロ
コード拳シーケンスが適正に実行されたことになる。異
なっていれば、シーケンスにエラーがあることになる。
自己検証的なものである。すなわち、動作のシーケンス
が適正である事が、マイクロコード・シーケンスの実行
時の所定の点で検査キーを計算することによって検査さ
れる。検査キーは、後でマイクロ命令シーケンスの適正
な実行を検証する際に使用するために、メモリに記憶さ
れている。実行時に、シーケンスの最後のマイクロ命令
で、検査キーが生成される。生成された検査キーは次い
で、記憶されている検査キーと比較され、これらが同じ
ものかどうか調べられる。同じものであれば、マイクロ
コード拳シーケンスが適正に実行されたことになる。異
なっていれば、シーケンスにエラーがあることになる。
C0発明が解決しようとする問題点
マイクロコードOシーケンス全体を検査しようとする際
に発生する問題のひとつは、条件付分岐命令の実行の検
査に関するものである。これが問題に々るのは当初の検
査キーを計算する際に取られた経路以外の分岐により各
分岐経路毎に異なる検査キーが生じるからである。
に発生する問題のひとつは、条件付分岐命令の実行の検
査に関するものである。これが問題に々るのは当初の検
査キーを計算する際に取られた経路以外の分岐により各
分岐経路毎に異なる検査キーが生じるからである。
本発明の目的は、自己検証的なマイクロプログラム式の
制御装置を提供することにあるが、該制御装置において
、実行経路に沿った有効な分岐が検証され、無効な分岐
が検出され、分離される。
制御装置を提供することにあるが、該制御装置において
、実行経路に沿った有効な分岐が検証され、無効な分岐
が検出され、分離される。
D2問題点を解決するだめの手段
上記の目的は、本発明によれば、コンパイル時にマーカ
ーを埋め込むことによって達成されるが、これらのマー
カーはマイクロ命令シーケンスを実行する際の許容され
た経路の組を拘束するものである。マーカーは実行時に
計算され、記憶されているマーカーと比較され、でたら
めな分岐を検出する。これはグローバル・ラベル(経路
識別子)を生成することによって達成されるものであり
、該ラベルは選定されたひとつの許容された実行経路に
沿った検査マーカーを計算する。他の実行経路(分岐)
は、上向きまたは下向きに計算を調整するスケーラ−が
埋め込まれるので、あらゆる条件付分岐経路に沿った実
行が常に同じグローバル・ラベルを生じることになる。
ーを埋め込むことによって達成されるが、これらのマー
カーはマイクロ命令シーケンスを実行する際の許容され
た経路の組を拘束するものである。マーカーは実行時に
計算され、記憶されているマーカーと比較され、でたら
めな分岐を検出する。これはグローバル・ラベル(経路
識別子)を生成することによって達成されるものであり
、該ラベルは選定されたひとつの許容された実行経路に
沿った検査マーカーを計算する。他の実行経路(分岐)
は、上向きまたは下向きに計算を調整するスケーラ−が
埋め込まれるので、あらゆる条件付分岐経路に沿った実
行が常に同じグローバル・ラベルを生じることになる。
スキップ・マイクロ命令が各スケーラ−の前に挿入され
て、非分岐実行(すなわち、選択された経路の後の実行
)中のスケーラ−の実行を阻止する。
て、非分岐実行(すなわち、選択された経路の後の実行
)中のスケーラ−の実行を阻止する。
マイクロコード・シーケンス争エラーハ各マイクロプロ
グラム経路の実行の完了時に、実行時にその経路に沿っ
て生成されたシーケンス識別子を、事前に記憶されてい
るグローバル・ラベルと比較することによって決定され
る。
グラム経路の実行の完了時に、実行時にその経路に沿っ
て生成されたシーケンス識別子を、事前に記憶されてい
るグローバル・ラベルと比較することによって決定され
る。
E、実施例
以下の略語を本明細書において使用する。
BR−分岐命令
ID −識別子
MI −マイクロ命令
CR−検査レジスタ
CB −検査ピット
SG −符号定数生成
SEQ −シーケンス
MUX −マルチプレクサ
NOP −ノー・オペレーション
AND −論理AND動作
XOR−論理排他的OR動作
REG −レジスタ
NID −ノード識別子
JID −調整識別子
PID −経路識別子
psw −7’ロクラム・ステータス・ワード
MIR−マイクロ命令レジスタ
SIR−シーケンス識別子レジスタ
PIR−経路識別子レジスタ
本発明の好ましい実施例のブロック図を、第1図に示す
。この回路では、N個の検査ビット(14)と2つの符
号化されたIDピット、BOおよびB1が、Mビットの
マイクロ命令フィールドに付属している必要がある(N
4M)。2つの符号化されたビットは次のように定義さ
れる。
。この回路では、N個の検査ビット(14)と2つの符
号化されたIDピット、BOおよびB1が、Mビットの
マイクロ命令フィールドに付属している必要がある(N
4M)。2つの符号化されたビットは次のように定義さ
れる。
BOB1 (値)
0 0 (0)−マイクロ命令(機能的)01(1)−
経路識別子(グローバル ・ラベル) 1 0 (2)−調整識別子(スケーラ−)11(S)
−経路の最後のマイクロ命 令(出口点) 第1図において、本発明はマイクロプロセッサ内で実施
されておシ、該プロセッサの要素は当分野で公知のもの
である。第1図の構造をまず説明し、次いでマイクロコ
ードの実施例を説明する。
経路識別子(グローバル ・ラベル) 1 0 (2)−調整識別子(スケーラ−)11(S)
−経路の最後のマイクロ命 令(出口点) 第1図において、本発明はマイクロプロセッサ内で実施
されておシ、該プロセッサの要素は当分野で公知のもの
である。第1図の構造をまず説明し、次いでマイクロコ
ードの実施例を説明する。
マイクロ命令レジスタは、Mビットのマイクロ命令フィ
ールド(12)、N個の検査ビットからなる検査記号フ
ィールド(14)、2つの符号化されたII)ピントか
らなるフィールドBOおよびB1を記憶する。IDビッ
トはデコーダ(16)へ送られ、該デコーダは2つのビ
ットをデコニドする。デコーダ(16)の出力は、図面
で示すように、第1図のANDおよびOR回路に接続さ
れる。
ールド(12)、N個の検査ビットからなる検査記号フ
ィールド(14)、2つの符号化されたII)ピントか
らなるフィールドBOおよびB1を記憶する。IDビッ
トはデコーダ(16)へ送られ、該デコーダは2つのビ
ットをデコニドする。デコーダ(16)の出力は、図面
で示すように、第1図のANDおよびOR回路に接続さ
れる。
マイクロ命令フィールド(12)はマイクロ命令レジス
タ(18)、マルチプレクサ(20)および経路IDレ
ジスタ(22)に接続される。デコーダの出力が経路識
別子(ピッ1−BO1B1=1.0)または調整識別子
(ビットBO1B1=1.0)を示している場合、N0
P(25)がマイクロ命令レジスタに入力される。それ
故、実際の機能的マイクロ命令だけが実行される4 「
マイクロ命令」がデコードされるか(ビットBO,B1
=0.0)、または[分岐(BR)Jがデコードされる
ときはつねに、ノードID発生器(26)がマルチプレ
クサ(20)によって付勢される。
タ(18)、マルチプレクサ(20)および経路IDレ
ジスタ(22)に接続される。デコーダの出力が経路識
別子(ピッ1−BO1B1=1.0)または調整識別子
(ビットBO1B1=1.0)を示している場合、N0
P(25)がマイクロ命令レジスタに入力される。それ
故、実際の機能的マイクロ命令だけが実行される4 「
マイクロ命令」がデコードされるか(ビットBO,B1
=0.0)、または[分岐(BR)Jがデコードされる
ときはつねに、ノードID発生器(26)がマルチプレ
クサ(20)によって付勢される。
論理排他的0R(30)はそれに対する入力に、モジュ
ロ2の加算を行って、シーケンス識別子レジスタ(28
)からのシーケンス識別子出力をもたらす。
ロ2の加算を行って、シーケンス識別子レジスタ(28
)からのシーケンス識別子出力をもたらす。
デコーダ(16)が現在のマイクロ命令を、経路識別子
である(ビットBO1B1=0.1)とデコードした場
合には、経路IDレジスタ(22)は経路識別子を記憶
する。同−性検査器2 (54)はシーケンス識別子レ
ジスタの出力(29)を、経路識別子レジスタの出力(
23)と比較し、「経路の最後のマイクロ命令」がデコ
ーダ(16)によって示されたときに(ビットBO,B
1=1.1)、エラーの表示を行うように、AND回路
(36)で論理積の取られた出力を生しる。
である(ビットBO1B1=0.1)とデコードした場
合には、経路IDレジスタ(22)は経路識別子を記憶
する。同−性検査器2 (54)はシーケンス識別子レ
ジスタの出力(29)を、経路識別子レジスタの出力(
23)と比較し、「経路の最後のマイクロ命令」がデコ
ーダ(16)によって示されたときに(ビットBO,B
1=1.1)、エラーの表示を行うように、AND回路
(36)で論理積の取られた出力を生しる。
「経路識別子」がデコードされるか(ピッ)BO1B1
=0.1)、あるいは分岐命令(BR)が示されるたび
に、検査レジスタ(68)がリセットされる。検査レジ
スタ(58)の出力はノードID発生器へ戻されて、加
算され、かつ検査記号発生器(40)へ出力される。検
査記号フィールド(14)が含んでいるピット数が、マ
イクロ命令フィールド責12)のピット数よりも少ない
場合には、検査記号発生器(40)が必要である。
=0.1)、あるいは分岐命令(BR)が示されるたび
に、検査レジスタ(68)がリセットされる。検査レジ
スタ(58)の出力はノードID発生器へ戻されて、加
算され、かつ検査記号発生器(40)へ出力される。検
査記号フィールド(14)が含んでいるピット数が、マ
イクロ命令フィールド責12)のピット数よりも少ない
場合には、検査記号発生器(40)が必要である。
同−性検査器1 (42)は現在のマイクロ命令の検査
記号フィールド(14)を、検査記号発生器出力(41
)と比較する。同−性検査器1(42)の出力はAND
回路(44)で、デコーダ出力との論理を取られ、2つ
の符号化されたビットBOおよびB1が機能的なマイク
ロ命令(ビットBO,n1=o、O)または経路の最後
のマイクロ命令(ビットBO1B1=1.1)を示して
いる場合は常に、エラー信号をもたらす。
記号フィールド(14)を、検査記号発生器出力(41
)と比較する。同−性検査器1(42)の出力はAND
回路(44)で、デコーダ出力との論理を取られ、2つ
の符号化されたビットBOおよびB1が機能的なマイク
ロ命令(ビットBO,n1=o、O)または経路の最後
のマイクロ命令(ビットBO1B1=1.1)を示して
いる場合は常に、エラー信号をもたらす。
関連した分岐なし間隔および共通な入口/出口点で、マ
イクロプログラムへマイクロプログラム経路識別子(P
ID)および調整ノード識別子(JID)を導入するこ
とによって、マイクロプログラムが所定の順序にしたが
うことを確認するととによって、ハードウェアおよびマ
イクロコードの故障による誤シが分離される。マイクロ
コード・シーケンス・エラーは各マイクロプログラム経
路の実行の完了時に、生成されたシーケンス識別子を所
定の識別子と比較することによって決定される。
イクロプログラムへマイクロプログラム経路識別子(P
ID)および調整ノード識別子(JID)を導入するこ
とによって、マイクロプログラムが所定の順序にしたが
うことを確認するととによって、ハードウェアおよびマ
イクロコードの故障による誤シが分離される。マイクロ
コード・シーケンス・エラーは各マイクロプログラム経
路の実行の完了時に、生成されたシーケンス識別子を所
定の識別子と比較することによって決定される。
特別なプリコンパイラを使用して、対応するマイクロプ
ログラム経路に対するPIDおよびJIDを、マイクロ
プログラムに挿入する事ができる。
ログラム経路に対するPIDおよびJIDを、マイクロ
プログラムに挿入する事ができる。
本明細書だおいては、マイクロプログラム・ノードを、
入口点1つと出口点1つだけを有している単一経路の分
岐なし間隔と定義する。
入口点1つと出口点1つだけを有している単一経路の分
岐なし間隔と定義する。
NIDは、次のように所定のノードのマイクロ命令(M
I)に対して数学的アルゴリズムによって生成されたこ
のノードのマイクロプログラム・ノード識別子と定義さ
れる。
I)に対して数学的アルゴリズムによって生成されたこ
のノードのマイクロプログラム・ノード識別子と定義さ
れる。
但しn個のマイクロ命令より成るノードの場合(チェッ
クサムの加算) マイクロプログラム経路識別子(PID)は、所定の経
路のノード識別子の数学的演算によって生成されたこの
経路の識別子と定義される。
クサムの加算) マイクロプログラム経路識別子(PID)は、所定の経
路のノード識別子の数学的演算によって生成されたこの
経路の識別子と定義される。
但しn個のノードよシ成る経路の場合、(モジュロ2の
加算) 2つの付加的なメモリ・ビットBOおよびB1は各マイ
クロ命令ワードに組み込まれ、識別子と通常のマイクロ
命令を区別する。識別子マスク回路(21,24)を使
用して、識別子をマスクし、これらの識別子がマイクロ
命令レジスタ(18)にロードされるのを阻止する。識
別子に対応したワードがプログラム記憶から取シ出され
るたびに、MIR(18)にノーオペレーション(NO
P)マイクロ命令(25)がロードされる。
加算) 2つの付加的なメモリ・ビットBOおよびB1は各マイ
クロ命令ワードに組み込まれ、識別子と通常のマイクロ
命令を区別する。識別子マスク回路(21,24)を使
用して、識別子をマスクし、これらの識別子がマイクロ
命令レジスタ(18)にロードされるのを阻止する。識
別子に対応したワードがプログラム記憶から取シ出され
るたびに、MIR(18)にノーオペレーション(NO
P)マイクロ命令(25)がロードされる。
マイクロコードの故障の検査は、各マイクロプログラム
経路の実行と並列的に行われる。経路に対する故障の分
離はハードウェアが生成したPIDを、同−性検査器2
(54)の所定のマイクロプログラムPIDと比較す
ることによって行われる。単一のマイクロ命令内のエラ
ー〇ピット・パターンは、間違った経路識別子を生成す
るので、検出される。
経路の実行と並列的に行われる。経路に対する故障の分
離はハードウェアが生成したPIDを、同−性検査器2
(54)の所定のマイクロプログラムPIDと比較す
ることによって行われる。単一のマイクロ命令内のエラ
ー〇ピット・パターンは、間違った経路識別子を生成す
るので、検出される。
各マイクロプログラムに対する有限個の組の経路が導か
れる。各経路の経路識別子を、その経路の入口点の最初
のマイクロ命令の直前に記憶することができる。すべて
の共通人口/出口経路が同じ経路識別子を有する事を保
証するために調整ノード識別子(JID)を経路に挿入
する。共通入口の経路は同一のノードから始まる経路と
定義され、共通出口の経路は同じノードで終了する経路
と定義される。
れる。各経路の経路識別子を、その経路の入口点の最初
のマイクロ命令の直前に記憶することができる。すべて
の共通人口/出口経路が同じ経路識別子を有する事を保
証するために調整ノード識別子(JID)を経路に挿入
する。共通入口の経路は同一のノードから始まる経路と
定義され、共通出口の経路は同じノードで終了する経路
と定義される。
経路識別子は個々のノードに対してではなく、特定の経
路のノードのシーケンスに対して計算される。ノードの
シーケンスは各ノードのそれぞれで検査するのではなく
、その経路の終端ノードで検査される。
路のノードのシーケンスに対して計算される。ノードの
シーケンスは各ノードのそれぞれで検査するのではなく
、その経路の終端ノードで検査される。
検査記号(14)も各マイクロ命令によって組み込まれ
る。この検査記号が同一性検出器1(42)において、
各マイクロ命令の実行と並列的にテストされ、付加的な
マイクロコードΦシーケンスの完全性検査が行われる。
る。この検査記号が同一性検出器1(42)において、
各マイクロ命令の実行と並列的にテストされ、付加的な
マイクロコードΦシーケンスの完全性検査が行われる。
ビットBOおよびB1のデコードに基づいた動作のシー
ケンスを、以下に説明する。
ケンスを、以下に説明する。
マイクロコード・ルーチンの開始を示す、経路識別子(
PID)のマイクロ命令に遭遇すると、ノーオペレーシ
ョン(NOP)マイクロ命令(25)がマイクロ命令レ
ジスタ(18)にロードされ、同時にマイクロ命令フィ
ールドからのPIDがPIR(22)にロードされる。
PID)のマイクロ命令に遭遇すると、ノーオペレーシ
ョン(NOP)マイクロ命令(25)がマイクロ命令レ
ジスタ(18)にロードされ、同時にマイクロ命令フィ
ールドからのPIDがPIR(22)にロードされる。
CRおよびSIRがこの時点でリセットされる。CR(
38)および5IR(28)の両者は、たとえば、最も
一般的なLSSD論理の設計に使用されているレジスタ
対(L1/L2)を包含して四も。L2ラッチのデータ
入力は、L1ラッチの出力から直接供給され、これらの
各々は異なるシステム・クロックによってクロックされ
る。レジスタ対が必要なのは、設計にフィードバック性
があるからである。
38)および5IR(28)の両者は、たとえば、最も
一般的なLSSD論理の設計に使用されているレジスタ
対(L1/L2)を包含して四も。L2ラッチのデータ
入力は、L1ラッチの出力から直接供給され、これらの
各々は異なるシステム・クロックによってクロックされ
る。レジスタ対が必要なのは、設計にフィードバック性
があるからである。
マイクロ命令フィールド責12)はMIR(18)にロ
ードされる。命令が非分岐タイプのものであれば、CR
(L2)およびマイクロ命令フィールドの内容に基づい
て生成される符号定数(27)が、CR(Ll)にロー
ドされる。これはその後CR(L2)にロードされる。
ードされる。命令が非分岐タイプのものであれば、CR
(L2)およびマイクロ命令フィールドの内容に基づい
て生成される符号定数(27)が、CR(Ll)にロー
ドされる。これはその後CR(L2)にロードされる。
ノードID発生器(26)は符号定数生成関数を有して
いる。
いる。
符号定数を生成する方法のひとつは、チェックサムの加
算(すなわち、連続したマイクロ命令の累積加算)−に
よるものである。
算(すなわち、連続したマイクロ命令の累積加算)−に
よるものである。
N’(Mの場合、Mビットのマイクロ命令をNビットの
ワードに変換するのに、検査記号発生器(40)が必要
である。出力(41)は同一性検査i1 (42)Kお
ける所定の検査ピッ)(14)と比較される。
ワードに変換するのに、検査記号発生器(40)が必要
である。出力(41)は同一性検査i1 (42)Kお
ける所定の検査ピッ)(14)と比較される。
MIR(18)のマイクロ命令が分岐タイプ(BR)と
してデコードされると、符号定数が上記と同じ態様で生
成される。しかし、その他に、CR(L2)の分岐なし
ノードの生成された符号定数は、5IR(L2)の内容
と組み合わされ、更新された分岐シーケンス符号定数を
もたらす。その結果は5IR(Ll)にロードされ、そ
の後5IR(L2)にクロックされる。cR(38)は
この動作の完了時にリセットされる。
してデコードされると、符号定数が上記と同じ態様で生
成される。しかし、その他に、CR(L2)の分岐なし
ノードの生成された符号定数は、5IR(L2)の内容
と組み合わされ、更新された分岐シーケンス符号定数を
もたらす。その結果は5IR(Ll)にロードされ、そ
の後5IR(L2)にクロックされる。cR(38)は
この動作の完了時にリセットされる。
調整識別子(JID)がデコードされると(ビットBO
1B1=1.0)、N0P(25)がMIRにロードさ
れる。マイクロ命令フィールドのJIDの5IR(L2
)の内容との排他的論理和が取られ(30)、結果は5
IR(Ll)にロードされる。次に、5IR(L2)が
5IR(Ll>によって更新される。CR(58)は通
常、この時点でリセットされるが、しかしJ I、Dが
分岐命令だけにしたがうものであると仮定した場合には
、これは必要ない。
1B1=1.0)、N0P(25)がMIRにロードさ
れる。マイクロ命令フィールドのJIDの5IR(L2
)の内容との排他的論理和が取られ(30)、結果は5
IR(Ll)にロードされる。次に、5IR(L2)が
5IR(Ll>によって更新される。CR(58)は通
常、この時点でリセットされるが、しかしJ I、Dが
分岐命令だけにしたがうものであると仮定した場合には
、これは必要ない。
経路の最後のマイクロ命令(ピッ)BQ、B1=1.1
)は、他のすべての機能的マイクロ命令(ビットBO1
B1=0.0)と同じ態様で処理される。しかし、その
他に、生成された符号定数(27)は5IR(L2)と
組み合わされ、最終ノード識別子(29)を生じる。こ
の最終結果は同−性検査器2(34)で、PIR(22
)K記憶されている所定のPID(23)と比較される
。
)は、他のすべての機能的マイクロ命令(ビットBO1
B1=0.0)と同じ態様で処理される。しかし、その
他に、生成された符号定数(27)は5IR(L2)と
組み合わされ、最終ノード識別子(29)を生じる。こ
の最終結果は同−性検査器2(34)で、PIR(22
)K記憶されている所定のPID(23)と比較される
。
割込みが行われた場合1.CR,SIRおよびPIRの
内容をPSWスタックに保管し、リターン動作時に再記
憶しなければならない。
内容をPSWスタックに保管し、リターン動作時に再記
憶しなければならない。
動作のシーケンス(まとめ)
(00)非分岐:
MIR(−一−MI
CR(Ll)〈−一−’CR(L2) 、SG 、M
rCR(L2)<−−−CR(Ll) COMPARE CR(L2)、CB (00)分岐: MIR(−−−MI CR(Ll)<−−−CR(L2)、 SG 、MIC
R(L2)<−−−CR(Ll) COMPARE CR(L2)、CB SIR(Ll)<−−−CR(L2)、SG 、5IR
(L2)SIR(L2)<−−一5IR(Ll)RES
ET CR(L1/L2) (01):MIR<−−−’NOP ’PIR(−−−
MI RESET 5IR(L1/L2)、CR(L1/L
2)(1(+) :ytrn <−一−+NoplS
IR(Ll)<−−−8IR(L2)、XOR,MIS
IR(L2)<−−−8IR(Ll)RESET CR
(L1/L2)−J I Dが分岐命令だけにした がうものと仮定 した場合には、 必要ない。
rCR(L2)<−−−CR(Ll) COMPARE CR(L2)、CB (00)分岐: MIR(−−−MI CR(Ll)<−−−CR(L2)、 SG 、MIC
R(L2)<−−−CR(Ll) COMPARE CR(L2)、CB SIR(Ll)<−−−CR(L2)、SG 、5IR
(L2)SIR(L2)<−−一5IR(Ll)RES
ET CR(L1/L2) (01):MIR<−−−’NOP ’PIR(−−−
MI RESET 5IR(L1/L2)、CR(L1/L
2)(1(+) :ytrn <−一−+NoplS
IR(Ll)<−−−8IR(L2)、XOR,MIS
IR(L2)<−−−8IR(Ll)RESET CR
(L1/L2)−J I Dが分岐命令だけにした がうものと仮定 した場合には、 必要ない。
(11):MIR(−−−MI
CR(L 1 )<−−−CR(L2 ) 、 SG
、 MICR(L2 )<−−−CR(L 1 )CO
MPARE CR(L2)、CB SIR(Ll)<−−−CR(L2)、SG 、5IR
(L2)SIR(L2)<−一−3IR(Ll)COM
PARE SIR’(L2)、PIR第2図に示した流
れ図は典型的なマイクロプログラム・セグメント(記号
ストリング)を表したものであシ、該セグメントは入口
点(IQΩ)、出口点(118)、分岐なしセグメント
(1Q2.106.110.112および116)、な
らびに分岐決定点(104,108および114)がら
なっている。各BFSはひとつまたはそれ以上の非分岐
マイクロ命令を含んでおり、分岐決定点で終了すること
もできる。分岐決定点からの矢印は許容される経路(ト
ラパーサル)を構成している。第2図の流れ図の解釈の
ひとつを、以下の記゛号的マイクロプログラム・セグメ
ントで表す。
、 MICR(L2 )<−−−CR(L 1 )CO
MPARE CR(L2)、CB SIR(Ll)<−−−CR(L2)、SG 、5IR
(L2)SIR(L2)<−一−3IR(Ll)COM
PARE SIR’(L2)、PIR第2図に示した流
れ図は典型的なマイクロプログラム・セグメント(記号
ストリング)を表したものであシ、該セグメントは入口
点(IQΩ)、出口点(118)、分岐なしセグメント
(1Q2.106.110.112および116)、な
らびに分岐決定点(104,108および114)がら
なっている。各BFSはひとつまたはそれ以上の非分岐
マイクロ命令を含んでおり、分岐決定点で終了すること
もできる。分岐決定点からの矢印は許容される経路(ト
ラパーサル)を構成している。第2図の流れ図の解釈の
ひとつを、以下の記゛号的マイクロプログラム・セグメ
ントで表す。
−一一一−ゆMl
Ml6−−−−−−−−−ゆ
ただし:
Ml = グローバル入口点M
16 : グ。−バ、出口点M4.
M7. Ml 5 = 条件付分岐マイク
ロ命令M1.M2.M!l、M4 = BFS
IM5.M6.M7 := BFS2M
8.M9 = BFS5M10.
Mjl、Ml2.Ml3 = BFS4M14.M
l5.Ml6 =BFS5゜本発明の目的は、
記号ストリング、上記の例におけるマイクロプログラム
・セグメント内の許容できないトラパーサルを横比する
方法を提供することである。この目的は、許容できるト
ラパーサルのひとつを示すグローバル・ラベルを生成し
、残シのトラパーサルをスケーリングして、任意の許容
されるトラパーサルに沿った移動が常に、同じグローバ
ル・ラベルを生じるようにすることによって達成される
。
16 : グ。−バ、出口点M4.
M7. Ml 5 = 条件付分岐マイク
ロ命令M1.M2.M!l、M4 = BFS
IM5.M6.M7 := BFS2M
8.M9 = BFS5M10.
Mjl、Ml2.Ml3 = BFS4M14.M
l5.Ml6 =BFS5゜本発明の目的は、
記号ストリング、上記の例におけるマイクロプログラム
・セグメント内の許容できないトラパーサルを横比する
方法を提供することである。この目的は、許容できるト
ラパーサルのひとつを示すグローバル・ラベルを生成し
、残シのトラパーサルをスケーリングして、任意の許容
されるトラパーサルに沿った移動が常に、同じグローバ
ル・ラベルを生じるようにすることによって達成される
。
グローバル・ラベルの生成は以下のステップがらなって
いる。
いる。
1、記号ストリングに沿った許容トラパーサルのひとつ
を選択する。
を選択する。
Z 選択されたトラパーサルの各文字記号(マイクロ命
令)に対するラベル(数値表現)を導き出す。
令)に対するラベル(数値表現)を導き出す。
五 所定の関数(チェックサム、CRCfiど)に従っ
てラベルに対して演算を行い、所定のグローバル・ラベ
ルを得る。
てラベルに対して演算を行い、所定のグローバル・ラベ
ルを得る。
所定のグローバル・ラベルを入口点に置いて、マイクロ
プログラムφセグメントの始まりを表示する。このグロ
ーバル・ラベルの再形成は、マイクロプログラムの実行
と並列的に行われる。
プログラムφセグメントの始まりを表示する。このグロ
ーバル・ラベルの再形成は、マイクロプログラムの実行
と並列的に行われる。
他のすべての許容されるトラパーサルの間で同一のグロ
ーバル・ラベルが得られるように、スケーラ−をトラバ
ースの各点に挿入して、生成されるラベルを調整する。
ーバル・ラベルが得られるように、スケーラ−をトラバ
ースの各点に挿入して、生成されるラベルを調整する。
グローバル・ラベルの生成は、出口点(最後のBFSの
最後のマイクロ命令)で終了する。この生成されたラベ
ルが所定のグローバル・ラベルカ所定のグローバル・ラ
ベルト合致しないことは、エラー状態を示す。
最後のマイクロ命令)で終了する。この生成されたラベ
ルが所定のグローバル・ラベルカ所定のグローバル・ラ
ベルト合致しないことは、エラー状態を示す。
機能的なマクロ命令、グローバル・ラベルおよびスケー
ラ−の区別は、2ビツトのタグーフィールド責B0.8
1)を各マイクロ命令に付加することによって達成され
る。
ラ−の区別は、2ビツトのタグーフィールド責B0.8
1)を各マイクロ命令に付加することによって達成され
る。
No−0p(ノーオペレーション)はグローバル・ラベ
ルまたはスケーラ−に遭遇したときに、実行される。シ
ーケンス・エラーの検査は、最後のマイクロ命令の完了
時に行われる。
ルまたはスケーラ−に遭遇したときに、実行される。シ
ーケンス・エラーの検査は、最後のマイクロ命令の完了
時に行われる。
この例においては、単純化のために、各マイクロ命令と
等価の10進数を使用して、これらの命令のラベルを表
しており、ラベルに対する演算はグローバル・ラベルを
取得するためのチェックサム法である。トラパーサルM
1ないしM6(すなわち、分岐のない経路)は上記のス
テップ1の許容経路として任意に選択される。これを以
下に示す。かっこ内の数値は、マイクロ命令に対応する
ラベルを表す。
等価の10進数を使用して、これらの命令のラベルを表
しており、ラベルに対する演算はグローバル・ラベルを
取得するためのチェックサム法である。トラパーサルM
1ないしM6(すなわち、分岐のない経路)は上記のス
テップ1の許容経路として任意に選択される。これを以
下に示す。かっこ内の数値は、マイクロ命令に対応する
ラベルを表す。
ラベル(i)
i = 1
最後にスケーラ−が生成され、マイクロプログラム・セ
グメントの適切な位置に挿入され、許容トラパーサルに
沿った移動が常に、同じグローバル・ラベルをもたらす
ようになされる。5KIPマイクロ命令(SK)は各ス
ケーラ−の前にあって、非分岐決定によるスケーラ−の
誤った実行が。
グメントの適切な位置に挿入され、許容トラパーサルに
沿った移動が常に、同じグローバル・ラベルをもたらす
ようになされる。5KIPマイクロ命令(SK)は各ス
ケーラ−の前にあって、非分岐決定によるスケーラ−の
誤った実行が。
BFSの前に行われることを防止しなければならい。最
後のマイクロプログラム拳セグメントをこれに関連した
タグと共に、以下に示す。
後のマイクロプログラム拳セグメントをこれに関連した
タグと共に、以下に示す。
ラベル タグ
ただし:
GL = グローバル自ラベル(No−Op)Mi
== マイクロ命令 5Ki= スキップ・マイクロ命令 5Ci= スケーラ−(No−Op)数種類のオプシ
ョンの機能を付加して、システム内のエラー検出および
故障分離を強化できることが、当分針の技術者には容易
に理解できよう。
== マイクロ命令 5Ki= スキップ・マイクロ命令 5Ci= スケーラ−(No−Op)数種類のオプシ
ョンの機能を付加して、システム内のエラー検出および
故障分離を強化できることが、当分針の技術者には容易
に理解できよう。
たとえば、グローバル・ラベルを生成するのに使用した
チェックサム法を、高度なエラー検出を行う、巡回冗長
検査(CRC)その他の符号定数生成法などのもつと複
雑な方法に換えることができる。
チェックサム法を、高度なエラー検出を行う、巡回冗長
検査(CRC)その他の符号定数生成法などのもつと複
雑な方法に換えることができる。
さらに、各記号(マイクロ命令)に、第1図に示す検査
記号フィールド(14)を付加することによって、故障
分離を強化することもできる。検査記号は実行点に、中
間グローバル・ラベルを与える。これは生成された中間
グローバル・ラベルと比較され、不一致があるとエラー
が示されるようになる。
記号フィールド(14)を付加することによって、故障
分離を強化することもできる。検査記号は実行点に、中
間グローバル・ラベルを与える。これは生成された中間
グローバル・ラベルと比較され、不一致があるとエラー
が示されるようになる。
各文字記号に関するエラーの検出および訂正を、 2各
文字記号に誤り訂正符号(FCC)を付加することによ
って達成できる。必要なECCビットの数は、システム
で必要とされるエラー検出および訂正の度合によって決
定される。FCCが関係しているのは付加された文字記
号だけである(すなわち、記号ストリングの他のすべて
の文字記号とは無関係である)から、したがって、FC
Cが記号ストリングに沿ったシーケンス・エラー検出ヲ
行うことはない。たとえば、周知のパリティ・チェック
は、単一ビットのエラー検出を行うが、訂正を行わない
1ビツトFCCである。2ビツトのFCC’CC−ルド
は2ビツトのエラー検出、または単一ヂットのエラー検
出と訂正のいずれかを行う。
文字記号に誤り訂正符号(FCC)を付加することによ
って達成できる。必要なECCビットの数は、システム
で必要とされるエラー検出および訂正の度合によって決
定される。FCCが関係しているのは付加された文字記
号だけである(すなわち、記号ストリングの他のすべて
の文字記号とは無関係である)から、したがって、FC
Cが記号ストリングに沿ったシーケンス・エラー検出ヲ
行うことはない。たとえば、周知のパリティ・チェック
は、単一ビットのエラー検出を行うが、訂正を行わない
1ビツトFCCである。2ビツトのFCC’CC−ルド
は2ビツトのエラー検出、または単一ヂットのエラー検
出と訂正のいずれかを行う。
F0発明の効果
本発明によれば、条件付き分岐等を有するマイクロ命令
の系列が正しく実行されているかどうかを容易に検証す
る事ができる。
の系列が正しく実行されているかどうかを容易に検証す
る事ができる。
第1図は、本発明が実施されるマイクロコード・シーケ
ンスの部分のブロック図である。 第2図は、典型的なマイクロプログラム・セグメントの
流れ図である。
ンスの部分のブロック図である。 第2図は、典型的なマイクロプログラム・セグメントの
流れ図である。
Claims (1)
- 【特許請求の範囲】 マイクロ命令の系列が正しく実行されている事を検証す
る方法であつて、 マイクロ命令の系列中の1つの選択された許容される経
路において各マイクロ命令毎にラベルを導出し、 複数の上記ラベルに所定の演算を行なう事によつて事前
に形成したグローバル・ラベルを上記マイクロ命令の系
列と共に記憶しておき、 上記マイクロ命令系列の実行時に、上記実行と並行して
、上記グローバル・ラベルを再形成し、上記マイクロ命
令系列の実行終了時に上記再形成したグローバル・ラベ
ルと上記事前に形成したグローバル・ラベルとを比較す
るステップを含むマイクロ命令系列の実行時検査方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/750,346 US4920538A (en) | 1985-06-28 | 1985-06-28 | Method of checking the execution of microcode sequences |
| US750346 | 1991-08-27 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS626345A true JPS626345A (ja) | 1987-01-13 |
| JPH0444294B2 JPH0444294B2 (ja) | 1992-07-21 |
Family
ID=25017495
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61140408A Granted JPS626345A (ja) | 1985-06-28 | 1986-06-18 | マイクロ命令系列の実行時検査方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4920538A (ja) |
| EP (1) | EP0206092A3 (ja) |
| JP (1) | JPS626345A (ja) |
| CA (1) | CA1252901A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007299081A (ja) * | 2006-04-28 | 2007-11-15 | Hitachi Ltd | 制御フロー誤り検出方法、データ処理装置、及びコンパイラ |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2986104B2 (ja) * | 1988-03-15 | 1999-12-06 | 株式会社東芝 | 情報処理装置の自己試験回路 |
| JPH01320544A (ja) * | 1988-06-22 | 1989-12-26 | Toshiba Corp | テスト容易化回路 |
| US4980888A (en) * | 1988-09-12 | 1990-12-25 | Digital Equipment Corporation | Memory testing system |
| JPH02199548A (ja) * | 1988-11-09 | 1990-08-07 | Asea Brown Boveri Ag | 電算機系で作成されるオブジエクト・プログラムの時間経過を観察する方法とこの方法を実行する観測器具 |
| US5063535A (en) * | 1988-11-16 | 1991-11-05 | Xerox Corporation | Programming conflict identification system for reproduction machines |
| JPH06105432B2 (ja) * | 1989-06-01 | 1994-12-21 | 三菱電機株式会社 | マイクロプロセッサ |
| US5222220A (en) * | 1989-11-16 | 1993-06-22 | Mehta Hemang S | Microprocessor stack built-in guards |
| EP0474297B1 (en) * | 1990-09-05 | 1998-06-10 | Koninklijke Philips Electronics N.V. | Very long instruction word machine for efficient execution of programs with conditional branches |
| EP0483437A1 (en) * | 1990-10-31 | 1992-05-06 | International Business Machines Corporation | Processing system having device for testing the correct execution of instructions |
| US5333304A (en) * | 1991-05-03 | 1994-07-26 | International Business Machines Corporation | Method and apparatus for software application evaluation utilizing compiler applications |
| US5423027A (en) * | 1991-09-27 | 1995-06-06 | Massachusetts Institute Of Technology | Tool for error detection in software using aspect specification |
| US5353419A (en) * | 1992-01-09 | 1994-10-04 | Trustees Of The University Of Pennsylvania | Memory-side driven anticipatory instruction transfer interface with processor-side instruction selection |
| JP2762829B2 (ja) * | 1992-02-06 | 1998-06-04 | 日本電気株式会社 | 電子計算機 |
| US5634022A (en) * | 1992-03-06 | 1997-05-27 | International Business Machines Corporation | Multi-media computer diagnostic system |
| TW234172B (en) * | 1994-02-08 | 1994-11-11 | Keridian Semiconductor Inc | Method and apparatus for testing the functionality of a microprocessor |
| US5687338A (en) * | 1994-03-01 | 1997-11-11 | Intel Corporation | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor |
| US5488702A (en) * | 1994-04-26 | 1996-01-30 | Unisys Corporation | Data block check sequence generation and validation in a file cache system |
| US5787304A (en) * | 1996-02-05 | 1998-07-28 | International Business Machines Corporation | Multipath I/O storage systems with multipath I/O request mechanisms |
| US5832005A (en) * | 1997-12-11 | 1998-11-03 | International Business Machines Corporation | Fault-tolerant method and means for managing access to an initial program load stored in read-only memory or the like |
| US7024661B2 (en) * | 2000-01-07 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | System and method for verifying computer program correctness and providing recoverable execution trace information |
| US7533412B2 (en) * | 2002-04-23 | 2009-05-12 | Stmicroelectronics S.A. | Processor secured against traps |
| US20050066311A1 (en) * | 2003-09-22 | 2005-03-24 | International Business Machines Corporation | Autonomic execution tracking and correction of functions |
| DE102005006832B4 (de) * | 2005-02-15 | 2007-10-04 | Infineon Technologies Ag | Schaltungsanordnung und Verfahren zur gesicherten Datenverarbeitung und deren Verwendung |
| DE102006005817B4 (de) * | 2006-02-08 | 2014-06-26 | Infineon Technologies Ag | Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder |
| DE102006062703A1 (de) * | 2006-02-08 | 2007-08-30 | Infineon Technologies Ag | Fehlererkennungsvorrichtung und Verfahren zur Fehlererkennung für einen Befehlsdecoder |
| EP1870829B1 (en) | 2006-06-23 | 2014-12-03 | Microsoft Corporation | Securing software by enforcing data flow integrity |
| DE102006057297A1 (de) * | 2006-12-05 | 2008-06-12 | Giesecke & Devrient Gmbh | Verfahren zur Überwachung des Ablaufs eines Programms |
| US20100064282A1 (en) * | 2008-09-05 | 2010-03-11 | Microsoft Corporation | Declarative testing for user interfaces |
| US8347149B2 (en) * | 2008-10-01 | 2013-01-01 | Cardiac Pacemakers, Inc. | System and method for providing fault tolerant processing in an implantable medical device |
| KR102491651B1 (ko) * | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
| EP3660715A1 (en) | 2018-11-30 | 2020-06-03 | Conax AS | Protecting sensitive data in a software program |
| US10831595B1 (en) | 2019-05-31 | 2020-11-10 | International Business Machines Corporation | Performing error detection during deterministic program execution |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS51131230A (en) * | 1975-04-25 | 1976-11-15 | Siemens Ag | Method of monitoring code signal group sequence |
| JPS5278334A (en) * | 1975-12-25 | 1977-07-01 | Fujitsu Ltd | Program sequence check system |
| JPS56152048A (en) * | 1980-04-24 | 1981-11-25 | Mitsubishi Electric Corp | Detector for sequence error of microprogram |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4153931A (en) * | 1973-06-04 | 1979-05-08 | Sigma Systems Inc. | Automatic library control apparatus |
| US4251885A (en) * | 1979-03-09 | 1981-02-17 | International Business Machines Corporation | Checking programmed controller operation |
| JPS6032217B2 (ja) * | 1979-04-02 | 1985-07-26 | 日産自動車株式会社 | 制御用コンピュ−タのフェィルセ−フ装置 |
| US4315313A (en) * | 1979-12-27 | 1982-02-09 | Ncr Corporation | Diagnostic circuitry in a data processor |
| US4430706A (en) * | 1980-10-27 | 1984-02-07 | Burroughs Corporation | Branch prediction apparatus and method for a data processing system |
| JPH0614320B2 (ja) * | 1984-10-17 | 1994-02-23 | 株式会社日立製作所 | 図式プログラム・テスト方法 |
-
1985
- 1985-06-28 US US06/750,346 patent/US4920538A/en not_active Expired - Lifetime
-
1986
- 1986-04-22 CA CA000507293A patent/CA1252901A/en not_active Expired
- 1986-06-10 EP EP86107883A patent/EP0206092A3/en not_active Withdrawn
- 1986-06-18 JP JP61140408A patent/JPS626345A/ja active Granted
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS51131230A (en) * | 1975-04-25 | 1976-11-15 | Siemens Ag | Method of monitoring code signal group sequence |
| JPS5278334A (en) * | 1975-12-25 | 1977-07-01 | Fujitsu Ltd | Program sequence check system |
| JPS56152048A (en) * | 1980-04-24 | 1981-11-25 | Mitsubishi Electric Corp | Detector for sequence error of microprogram |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007299081A (ja) * | 2006-04-28 | 2007-11-15 | Hitachi Ltd | 制御フロー誤り検出方法、データ処理装置、及びコンパイラ |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0444294B2 (ja) | 1992-07-21 |
| EP0206092A2 (en) | 1986-12-30 |
| EP0206092A3 (en) | 1989-03-08 |
| CA1252901A (en) | 1989-04-18 |
| US4920538A (en) | 1990-04-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0444294B2 (ja) | ||
| US8281223B2 (en) | Detection of fuse re-growth in a microprocessor | |
| US7152193B2 (en) | Embedded sequence checking | |
| Huang et al. | Error correction based on verification techniques | |
| US6643769B1 (en) | System and method for enabling selective execution of computer code | |
| Namjoo | Design of concurrently testable microprogrammed control units | |
| CN118611682A (zh) | 数据校验方法、装置、芯片、电子设备以及存储介质 | |
| EP0467448B1 (en) | Processing device and method of programming such a processing device | |
| JPH04248629A (ja) | 演算処理システム | |
| US20040117747A1 (en) | Method for providing cycle-by-cycle ad hoc verification in a hardware-accelerated environment | |
| CN118626151B (zh) | 指令流文件生成方法、装置、电子设备及可读介质 | |
| US12613768B2 (en) | System and method of checking integrity of an instruction decoder of a processing system | |
| US12169448B2 (en) | Device and methods for processing bit strings | |
| M'zah et al. | Deterministic microcode machine generation | |
| EP0392563A2 (en) | Microcode testing method and apparatus therefor | |
| Leveugle et al. | Optimized synthesis of dedicated controllers with concurrent checking capabilities | |
| CN116450402B (zh) | 程序流监控方法、编译方法、装置、处理器及计算机设备 | |
| US7822953B2 (en) | Protection of a program against a trap | |
| Gharehbaghi et al. | Error model free automatic design error correction of complex processors using formal methods | |
| US7533412B2 (en) | Processor secured against traps | |
| CN121773423A (zh) | 处理电路以及信息处理装置 | |
| JPS61846A (ja) | メモリ内容の正常性試験方法 | |
| JPH03286339A (ja) | シーケンサの誤り検出装置 | |
| Semerenko et al. | TESTING OF DIGITAL CIRCUITS BY CYCLIC CODES | |
| JPH05127933A (ja) | 故障検出回路 |