JP3585940B2 - 計算機 - Google Patents
計算機 Download PDFInfo
- Publication number
- JP3585940B2 JP3585940B2 JP12879393A JP12879393A JP3585940B2 JP 3585940 B2 JP3585940 B2 JP 3585940B2 JP 12879393 A JP12879393 A JP 12879393A JP 12879393 A JP12879393 A JP 12879393A JP 3585940 B2 JP3585940 B2 JP 3585940B2
- Authority
- JP
- Japan
- Prior art keywords
- program error
- instruction
- signal
- program
- error detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】
この発明は、複数の命令フィールドから構成される命令語を実行する計算機に係り、特に予め定められた複数のプログラムエラーを検出するプログラムエラー検出回路を備えた計算機に関する。
【0002】
【従来の技術】
一般に計算機においては、定義されていない命令等、実行することのできない命令を処理しようとした場合、これをプログラムエラーとして検出し、割り込み処理を行うようになっている。この検出は、プログラムエラー検出回路と称されるハードウェアで行われる。
【0003】
特にVLIW(Very Long Instruction Word)型並列処理方式(VLIW方式)のアーキテクチャを適用した計算機(以下、VLIW方式の計算機と称する)は、他の順次実行方式の計算機に比べ、プログラムエラーをハードウェアで検出するケースが多い。
【0004】
VLIW方式の命令語の構造例を図4に示す。この図4の例では、1命令語はフィールドF1〜F4の4つのフィールドに分割され、各フィールドF1〜F4に命令I1〜I4が設定される。基本的には、この4個の命令I1〜I4が同時に処理される。
【0005】
さて、図4に示した構造の命令語を適用したVLIW方式の計算機では、ハードウェア量の削減とハードウェアの使用率向上を目的として、図5に示すように、各フィールドF1〜F4内で指定できる命令が限定されることが多い。
【0006】
この図5の例では、フィールドF1は、加減算命令、データセット命令およびLD(ロード)命令だけが指定でき、フィールドF2は、加減算命令、データセット命令およびシフト命令だけが指定できる。また、フィールドF3は、加減算命令、データセット命令およびST(ストア)命令だけが指定でき、フィールドF4は、加減算命令、データセット命令および分岐命令だけが指定できる。
【0007】
プログラムエラー検出回路は、このような各フィールド内で指定できる命令の限定(制約)を考慮して作成されたもので、その構成は複雑である。
ところが、VLIW方式の計算機のハードウェア量を追加し、各フィールド内で指定できる命令の制約を少なくした上位機種を作る場合には、それに対応して、複雑なプログラムエラー検出回路も新たに作り直す(設計し直す)必要がある。また、ハードウェアの機能変更により、互換性も無くなる。更に、上位機種では、下位機器種のソフトウェアを開発できなくなる。
【0008】
【発明が解決しようとする課題】
上記したように従来の計算機では、ハードウェアの仕様変更によりプログラムエラーとなるケースが変わった場合、複雑なプログラムエラー検出回路を新たに作り直さなければならず、また、ハードウェアの互換性も無くなる等の問題があった。
【0009】
この発明は上記事情を考慮してなされたものでその目的は、計算機の仕様変更によりプログラムエラーを検出するケースが変わった場合に、仕様変更前と同一構成のプログラムエラー検出回路を使用しても、仕様変更のためにプログラムエラーの検出が不要となった要因でプログラムエラー割り込みが発生することを防止でき、計算機の仕様変更に無関係にプログラムエラー検出回路の共通化が図れ、且つハードウェアの互換性を維持できる計算機を提供することにある。
【0010】
【課題を解決するための手段】
この発明は、複数の命令フィールドから構成される命令語の群を格納したメモリを備えた計算機において、上記メモリから読み出された命令語の各命令フィールド毎に当該命令フィールドで指定できないと予め定められている命令が存在した場合にプログラムエラーを検出し、上記各命令フィールド毎で且つ上記予め定められている命令毎のプログラムエラー検出に応じた固有のエラー信号を出力するプログラムエラー検出回路と、このプログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータを保持するレジスタと、上記計算機のシステム立ち上げ時に上記レジスタに、上記プログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータを設定するデータ設定手段と、上記プログラムエラー検出回路から上記プログラムエラー検出に応じて出力されたエラー信号を上記レジスタが保持しているデータに基づいて有効化又は無効化し、有効化した場合に制御信号を出力するプログラムエラー割り込み禁止回路と、このプログラムエラー割り込み禁止回路から上記制御信号が出力された場合に当該制御信号に基づいてプログラムエラー割り込み信号を出力するプログラムエラー割り込み処理装置とを備えたことを特徴とする。
【0012】
【作用】
上記の構成において、上記計算機のシステム立ち上げ時には、上記レジスタに、プログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータが設定される。プログラムエラー検出回路は、メモリから読み出された命令語の各命令フィールド毎に当該命令フィールドで指定できないと予め定められている命令が存在した場合にプログラムエラーを検出する。プログラムエラー検出回路は、上記各命令フィールド毎で且つ上記予め定められている命令毎のプログラムエラー検出に応じた固有のエラー信号を出力する。
【0013】
プログラムエラー割り込み禁止回路は、プログラムエラー検出回路からプログラムエラー検出に応じて出力されたエラー信号を上記レジスタが保持しているデータに基づいて有効化又は無効化する。プログラムエラー割り込み禁止回路は、プログラムエラー検出回路から出力されたエラー信号を有効化した場合に限り制御信号を出力する。この制御信号に基づいて、プログラムエラー割り込み処理装置からプログラム割り込み信号が出力される。言い換えれば、メモリから読み出された命令語のある命令フィールドに、プログラムエラー検出回路によってプログラムエラーとして検出すべき命令が存在したために、当該プログラムエラー検出回路から対応するエラー信号が出力されたとしても、当該エラー信号を無効化するならば、当該プログラムエラーの検出に起因するプログラムエラー割り込みを禁止できる。
【0014】
このように上記の構成においては、計算機の仕様変更前と同一構成のプログラムエラー検出回路を使用したために、たとえ計算機の仕様変更により検出が不要となったプログラムエラー(プログラムエラー要因)が検出されて対応するエラー検出信号が出力されたとしても、計算機のシステム立ち上げ時に上記レジスタに設定されたデータの指定によって、当該検出が不要となったプログラムエラー要因に対応するエラー検出信号を無効化するならば、当該プログラムエラー要因によるプログラムエラー割り込みを禁止することができ、プログラムエラー検出回路の共通化が図れる。
【0015】
【実施例】
図1はこの発明を適用するVLIW方式の計算機の一実施例を示す要部ブロック構成図である。なお、この図1の計算機は、図4に示す構造の命令語を用いているものとする。
【0016】
図1において、1は命令語群からなる各種プログラム、データ等が格納されるメモリである。メモリ1の所定番地には、システム立ち上げ時に実行されて後述するレジスタ5にデータをセットするための特定のデータセット命令Mが格納されている。この特定データセット命令Mは、ブートプログラムに含まれている。このブートプログラムは、実機ではROMに格納されているが、ここでは説明の簡略化のために、メモリ1に格納されているものとする。
【0017】
2はメモリ制御装置である。このメモリ制御装置2は、分岐要求が無い限り、メモリアドレスをインクリメントしながらメモリ1から順番に命令語を取り出す。またメモリ制御装置2は、分岐要求があった場合には、後述する命令アドレス生成装置15から与えられる分岐アドレス(分岐先アドレス)で示されるメモリ1のメモリ番地から命令語の取り出しを開始する。
【0018】
3はメモリ1から供給される命令語を、各フィールドF1〜F4毎にデコードする命令デコード装置、4はプログラムエラー検出回路である。
プログラムエラー検出回路4は、命令デコード装置3から出力されるフィールドF1〜F4毎のデコード信号31〜34をもとに、予め定められたプログラムエラーを検出するハードウェアである。
【0019】
本実施例におけるプログラムエラー検出回路4は、命令語の各フィールドF1〜F4内で指定できる命令の制約が、図5に示したようになっていることを前提として開発されたものであり、12種類のプログラムエラーを検出するようになっている。したがってプログラムエラー検出回路4から出力されるプログラムエラー検出信号には、プログラムエラー検出信号E0 〜E11の12種類ある。この信号E0 〜E11と、フィールドF1〜F4で指定されるプログラムエラーとなる命令との対応関係を図2に示す。
【0020】
図2に示すように、信号E0 は命令語のフィールドF1でシフト命令が指定されたプログラムエラー、信号E1 は同フィールドF1でST(ストア)命令が指定されたプログラムエラー、信号E2 は同フィールドF1で分岐命令が指定されたプログラムエラーを、それぞれ示す。
【0021】
次に、信号E3 は命令語のフィールドF2でST命令が指定されたプログラムエラー、信号E4 は同フィールドF2で分岐命令が指定されたプログラムエラー、信号E5 は同フィールドF2でLD(ロード)命令が指定されたプログラムエラーを、それぞれ示す。
【0022】
次に、信号E6 は命令語のフィールドF3で分岐命令が指定されたプログラムエラー、信号E7 は同フィールドF3でLD命令が指定されたプログラムエラー、信号E8 は同フィールドF3でシフト命令が指定されたプログラムエラーを、それぞれ示す。
【0023】
次に、信号E9 は命令語のフィールドF4でLD命令が指定されたプログラムエラー、信号E10は同フィールドF4でシフト命令が指定されたプログラムエラー、信号E11は同フィールドF4でST命令が指定されたプログラムエラーを、それぞれ示す。
【0024】
5は12ビットのレジスタである。このレジスタ5は、上記プログラムエラー検出信号E0 〜E11に起因するプログラムエラー割り込みを禁止するためのビット0〜11の禁止ビットを保持する。レジスタ5の各ビット0〜11は、上記特定のデータセット命令Mによりセット/リセットが可能となっている。
【0025】
6はレジスタ5へのデータセットを許可(イネーブル)するための制御信号である。この制御信号6は、データセット命令Mを命令デコード装置3がデコードした場合に真となる。
【0026】
7はレジスタ5にセットするデータを命令デコード装置3から供給するためのデータ線である。このデータ線7を通したデータ供給は、上記特定のデータセット命令Mを命令デコード装置3がデコードした場合に行われる。
【0027】
8−0〜8−11 はレジスタ5の各ビット(禁止ビット)0〜11の状態を反転するためのインバータ、9はインバータ8−0〜8−11 の出力状態に応じて、プログラムエラー検出回路4からのプログラムエラー検出信号E0 〜E11を無効化するためのプログラムエラー割り込み禁止回路である。このプログラムエラー割り込み禁止回路9は、12個のANDゲート9−0〜9−11 から構成される。ANDゲート9−i(i=0〜11)は、プログラムエラー検出回路4からのプログラムエラー検出信号Ei とインバータ8−iの出力信号とを入力し、インバータ8−iの出力信号が“0”のとき、プログラムエラー検出信号Ei の出力を禁止する。
【0028】
10はANDゲート9−0〜9−11 の出力の論理和をとるORゲートである。このORゲート10の出力信号は、プログラムエラー検出を示す制御信号11として用いられる。
【0029】
12はORゲート10からのプログラムエラー検出を示す制御信号11およびプログラムエラー以外のエラーを示す制御信号13を受けて、割り込みが起きたことを示す割り込み信号14を生成する割り込み処理装置、15は命令アドレス生成装置である。命令アドレス生成装置15は、割り込み処理装置12からの割り込み信号14と命令デコード装置3からの制御信号16から、メモリ制御装置2へ分岐要求と分岐アドレスを出力する。この制御信号16は、分岐命令を命令デコード装置3がデコードした場合に真となる。
【0030】
次に、図1の構成の動作を説明する。
まず、メモリ1に格納されている特定のデータセット命令Mを実行する。このデータセット命令Mは、ブートプログラム中に含まれており、システム立ち上げ時に1回実行されるものとする。本実施例で適用されるデータセット命令Mの命令形式を図3に示す。
【0031】
ここでは、データセット命令Mはビット0〜31の32ビットで構成されており、ビット0〜7の8ビットがデータセットを指定するOP(オペレーション)コード、ビット20〜31の12ビットがレジスタ5にセットされるデータ(以下、マスクデータと称する)である。なお、データセット先(レジスタ5)を指定するデスティネーション指定フィールドは省略されている。
【0032】
さて、システム立ち上げ時に、メモリ1から図3に示す形式の特定のデータセット命令Mを含むVLIW方式の命令語がメモリ制御装置2により取り出されて命令デコード装置3に供給され、同装置3によりデコードされたものとする。この場合、命令デコード装置3は、データセット命令Mに応じて制御信号6を真にすると同時に、データ線7上に、データセット命令Mのビット20〜31に設定されている12ビットのマスク(MASK)データを出力する。
【0033】
制御信号6は、レジスタ5のラッチイネーブル信号(EN)となり、これにより命令デコード装置3からデータ線7を介してレジスタ5に供給された12ビットのマスクデータが、同レジスタ5にセットされる。このレジスタ5にセットされた12ビットのマスクデータ、即ちレジスタ5のビット0〜11の各ビット(禁止ビット)は、“1”でプログラムエラー検出信号E0 〜E11に起因するプログラムエラー割り込みの禁止を指定する。
【0034】
その後、システムが立ち上がり、やがて、プログラムエラー検出回路4の検出対象となるプログラムエラーを起こす命令を含む図4に示す構造の命令語がメモリ制御装置2によりメモリ1から取り出されて、命令デコード装置3に供給されたものとする。
【0035】
命令デコード装置3は、メモリ制御装置2から供給された命令語を、各フィールドF1〜F4毎にデコードし、そのデコード結果であるデコード信号31〜34を出力する。
【0036】
プログラムエラー検出回路4は、この命令デコード装置3からの各フィールドF1〜F4毎のデコード信号31〜34を受けて、各フィールドF1〜F4毎に予め定められたプログラムエラーの検出を行う。即ちプログラムエラー検出回路4は、例えばフィールドF1であれば、デコード信号31が、シフト命令、ST命令、または分岐命令を示しているか否かを検出する。そしてプログラムエラー検出回路4は、デコード信号31がシフト命令を示しているならば、プログラムエラー検出信号E0 を真(“1”)にし、同じくST命令を示しているならばプログラムエラー検出信号E1 を真(“1”)にし、同じく分岐命令を示しているならばプログラムエラー検出信号E2 を真(“1”)にする(図2参照)。
【0037】
これに対し、デコード信号31が、フィールドF1での指定が許されている加減算命令、データセット命令またはLD命令を示しているならば、プログラムエラー検出回路4は、プログラムエラー検出信号E0 〜E2 のいずれも真にしない。
【0038】
プログラムエラー検出回路4からのプログラムエラー検出信号E0 〜E11は、プログラムエラー割り込み禁止回路9中の対応するANDゲート9−0〜9−11 の一方の入力に供給される。このANDゲート9−0〜9−11 の他方の入力には、インバータ8−0〜8−11 の出力が供給される。このインバータ8−0〜8−11 の出力は、レジスタ5のビット(禁止ビット)0〜11の論理状態を反転したものである。
【0039】
ANDゲート9−i(i=0〜11)は、インバータ8−iの出力が“1”の場合、即ちレジスタ5のビットiがプログラムエラー割り込み許可を示す“0”のリセット状態の場合には、プログラムエラー検出信号Ei をそのまま出力する。これに対し、インバータ8−iの出力が“0”の場合、即ちレジスタ5のビットiがプログラムエラー割り込み禁止を示す“1”のセット状態の場合には、ANDゲート9−iはプログラムエラー検出信号Ei の出力を禁止する。
【0040】
したがって、たとえプログラムエラー検出回路4にて、プログラムエラー検出信号Ei 出力の対象となるプログラムエラーが検出されて、同信号Ei が真にされても、レジスタ5のビット(禁止ビット)iがセットされているならば、同信号Ei はANDゲート9−iにより強制的に偽にされる。これは、プログラムエラー検出回路4を作り直して、プログラムエラー検出信号Ei 出力の対象となるプログラムエラーの検出機能をなくしたのと等価である。
【0041】
この場合、プログラムエラー検出信号Ei 以外のプログラムエラー検出信号が全て真でないならば、ANDゲート9−0〜9−11 の出力は全て“0”(偽)となるため、ORゲート10の出力である制御信号11も“0”(偽)となり、プログラムエラー検出に従う割り込み処理装置12からの割り込み信号14の出力は禁止される。
【0042】
以上のことから、図1に示す計算機のハードウェア仕様が変更されて、例えば命令語のフィールドF1に対応してシフタが追加され、同フィールドF1内で指定できる命令として、図5に示す加減算命令とデータセット命令とLD命令の他に、シフト命令が新たに追加された場合には、レジスタ5に次のようなマスクデータをセットすることにより、プログラムエラー検出回路4を作り直さななくても、このシフト命令をフィールドF1で指定したためにプログラムエラー割り込みが発生することを防止できる。
【0043】
即ち、フィールドF1でシフト命令を指定した場合、プログラムエラー検出回路4では(ハードウェア仕様の変更に合わせて作り直しがなされていないものとすると)、前記したようにプログラムエラー検出信号E0 が真とされる。したがって、このプログラムエラー検出信号E0 に従うプログラムエラー割り込みを禁止するためには、レジスタ5のビット0を“1”にセットすればよい。
【0044】
また、レジスタ5のビット0を“1”にセットするには、データセット命令Mのビット20〜31に、先頭ビット(ビット20に対応するビット)が“1”の12ビットマスクデータを設定しておき、即ちビットパターンが“1××……××”(×は“1”または“0”)の12ビットマスクデータを持つデータセット命令Mを用意しておき、同命令Mをシステム立ち上げ時に実行すればよい。
【0045】
一方、プログラムエラー検出回路4により検出されたエラー、即ち論理状態が真とされたプログラムエラー検出信号Ei に対応したレジスタ5のビットiがリセットされている場合には、ANDゲート9−iは、そのプログラムエラー検出信号Ei をそのまま出力する。この場合、ORゲート10の出力である制御信号11は“1”(真)となる。
【0046】
割り込み処理装置12は、プログラムエラー検出を示す制御信号11が“1”の場合、割り込みを検出し、割り込み信号14により命令アドレス生成装置15に対して割り込み発生を通知する。これを受けて命令アドレス生成装置15は、メモリ制御装置2に対して分岐要求と分岐アドレス(プログラムエラーの割り込みハンドラのアドレス)を出力する。
【0047】
メモリ制御装置2は、プログラムエラーの割り込みハンドラに置かれた命令をメモリ1から取り出して命令デコード装置3に供給する。このようにして、プログラムエラー割り込み処理が行われる。
【0048】
以上の説明から明らかなように、図1の構成の計算機では、プログラムエラー検出回路4で検出される12種類のプログラムエラー要因に対応したプログラムエラー検出信号E0 〜E11のうち、特定のプログラムエラー要因の検出によって真とされるプログラムエラー検出信号だけを、システム立ち上げ時に実行される特定データセット命令M中のマスク(MASK)データによりレジスタ5を通してマスクすることで、プログラムエラー割り込みの許可/禁止を制御することができる。
【0049】
したがって、図1の計算機のハードウェア量を追加し、命令語の各フィールドF1〜F4内で指定できる命令の制約が少なくなった上位機種を作る場合に、プログラムエラー検出回路4を作り直さなくても、データセット命令Mのマスクデータを変えるだけで、検出が不要となったプログラムエラーによってプログラムエラー割り込みが発生する不都合を防止することができる。
【0050】
また、前記実施例では、プログラムエラー割り込み禁止回路9に対してプログラムエラー要因別にプログラムエラー割り込みの許可/禁止を指定するレジスタ5を、データセット命令Mにより操作する場合について説明したが、これに限るものではない。例えば、レジスタ5に代えてDIPスイッチを用い、利用者の操作によりマスクデータをセットするようにしても構わない。この場合、誤操作を招く虞はあるものの、その計算機のハードウェア仕様が変わったときだけ操作すればよい。
また、命令語の構造や、各フィールド毎の命令の制約は、前記実施例に限定されるものでないことは勿論である。
【0051】
【発明の効果】
以上詳述したようにこの発明によれば、プログラムエラー検出回路により検出される各プログラムエラー要因別に、その要因によるプログラムエラー割り込みを、例えばシステム立ち上げ時の指定により許可/禁止する構成としたので、この要因別の指定により、計算機の仕様変更のために検出不要となったプログラムエラー要因によるプログラムエラー割り込みの発生を禁止することができる。
【0052】
このため、計算機の仕様変更によりプログラムエラー検出回路での検出対象となっている複数のプログラムエラー要因の一部が検出が不要となったとしても、そのプログラムエラー検出回路をそのまま使用することができ、プログラムエラー検出回路の共通化を図ることができ、且つハードウェアの互換性も維持することができる。
【図面の簡単な説明】
【図1】この発明を適用するVLIW方式の計算機の一実施例を示す要部ブロック構成図。
【図2】図1中のプログラムエラー検出回路4の機能を、命令語の各フィールドで指定されるプログラムエラーとなる命令と各プログラムエラー検出信号との対応関係により説明するための図。
【図3】図1中のレジスタ5にマスクデータをセットするための特定データセット命令Mの形式を示す図。
【図4】VLIW方式の命令語の構造例を示す図。
【図5】図4に示す命令語の各フィールド内で指定できる命令の一例を示す図。
【符号の説明】
1…メモリ、2…メモリ制御装置,3…命令デコード装置、4…プログラムエラー検出回路、5…レジスタ(プログラムエラー割り込み禁止指定手段、禁止ビット保持手段)、9…プログラムエラー割り込み禁止回路、9−0〜9−11 …ANDゲート、10…ORゲート、12…割り込み処理装置、15…命令アドレス生成装置、M…データセット命令(プログラムエラー割り込み禁止指定手段)、E0 〜E11…プログラムエラー検出信号。
【産業上の利用分野】
この発明は、複数の命令フィールドから構成される命令語を実行する計算機に係り、特に予め定められた複数のプログラムエラーを検出するプログラムエラー検出回路を備えた計算機に関する。
【0002】
【従来の技術】
一般に計算機においては、定義されていない命令等、実行することのできない命令を処理しようとした場合、これをプログラムエラーとして検出し、割り込み処理を行うようになっている。この検出は、プログラムエラー検出回路と称されるハードウェアで行われる。
【0003】
特にVLIW(Very Long Instruction Word)型並列処理方式(VLIW方式)のアーキテクチャを適用した計算機(以下、VLIW方式の計算機と称する)は、他の順次実行方式の計算機に比べ、プログラムエラーをハードウェアで検出するケースが多い。
【0004】
VLIW方式の命令語の構造例を図4に示す。この図4の例では、1命令語はフィールドF1〜F4の4つのフィールドに分割され、各フィールドF1〜F4に命令I1〜I4が設定される。基本的には、この4個の命令I1〜I4が同時に処理される。
【0005】
さて、図4に示した構造の命令語を適用したVLIW方式の計算機では、ハードウェア量の削減とハードウェアの使用率向上を目的として、図5に示すように、各フィールドF1〜F4内で指定できる命令が限定されることが多い。
【0006】
この図5の例では、フィールドF1は、加減算命令、データセット命令およびLD(ロード)命令だけが指定でき、フィールドF2は、加減算命令、データセット命令およびシフト命令だけが指定できる。また、フィールドF3は、加減算命令、データセット命令およびST(ストア)命令だけが指定でき、フィールドF4は、加減算命令、データセット命令および分岐命令だけが指定できる。
【0007】
プログラムエラー検出回路は、このような各フィールド内で指定できる命令の限定(制約)を考慮して作成されたもので、その構成は複雑である。
ところが、VLIW方式の計算機のハードウェア量を追加し、各フィールド内で指定できる命令の制約を少なくした上位機種を作る場合には、それに対応して、複雑なプログラムエラー検出回路も新たに作り直す(設計し直す)必要がある。また、ハードウェアの機能変更により、互換性も無くなる。更に、上位機種では、下位機器種のソフトウェアを開発できなくなる。
【0008】
【発明が解決しようとする課題】
上記したように従来の計算機では、ハードウェアの仕様変更によりプログラムエラーとなるケースが変わった場合、複雑なプログラムエラー検出回路を新たに作り直さなければならず、また、ハードウェアの互換性も無くなる等の問題があった。
【0009】
この発明は上記事情を考慮してなされたものでその目的は、計算機の仕様変更によりプログラムエラーを検出するケースが変わった場合に、仕様変更前と同一構成のプログラムエラー検出回路を使用しても、仕様変更のためにプログラムエラーの検出が不要となった要因でプログラムエラー割り込みが発生することを防止でき、計算機の仕様変更に無関係にプログラムエラー検出回路の共通化が図れ、且つハードウェアの互換性を維持できる計算機を提供することにある。
【0010】
【課題を解決するための手段】
この発明は、複数の命令フィールドから構成される命令語の群を格納したメモリを備えた計算機において、上記メモリから読み出された命令語の各命令フィールド毎に当該命令フィールドで指定できないと予め定められている命令が存在した場合にプログラムエラーを検出し、上記各命令フィールド毎で且つ上記予め定められている命令毎のプログラムエラー検出に応じた固有のエラー信号を出力するプログラムエラー検出回路と、このプログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータを保持するレジスタと、上記計算機のシステム立ち上げ時に上記レジスタに、上記プログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータを設定するデータ設定手段と、上記プログラムエラー検出回路から上記プログラムエラー検出に応じて出力されたエラー信号を上記レジスタが保持しているデータに基づいて有効化又は無効化し、有効化した場合に制御信号を出力するプログラムエラー割り込み禁止回路と、このプログラムエラー割り込み禁止回路から上記制御信号が出力された場合に当該制御信号に基づいてプログラムエラー割り込み信号を出力するプログラムエラー割り込み処理装置とを備えたことを特徴とする。
【0012】
【作用】
上記の構成において、上記計算機のシステム立ち上げ時には、上記レジスタに、プログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータが設定される。プログラムエラー検出回路は、メモリから読み出された命令語の各命令フィールド毎に当該命令フィールドで指定できないと予め定められている命令が存在した場合にプログラムエラーを検出する。プログラムエラー検出回路は、上記各命令フィールド毎で且つ上記予め定められている命令毎のプログラムエラー検出に応じた固有のエラー信号を出力する。
【0013】
プログラムエラー割り込み禁止回路は、プログラムエラー検出回路からプログラムエラー検出に応じて出力されたエラー信号を上記レジスタが保持しているデータに基づいて有効化又は無効化する。プログラムエラー割り込み禁止回路は、プログラムエラー検出回路から出力されたエラー信号を有効化した場合に限り制御信号を出力する。この制御信号に基づいて、プログラムエラー割り込み処理装置からプログラム割り込み信号が出力される。言い換えれば、メモリから読み出された命令語のある命令フィールドに、プログラムエラー検出回路によってプログラムエラーとして検出すべき命令が存在したために、当該プログラムエラー検出回路から対応するエラー信号が出力されたとしても、当該エラー信号を無効化するならば、当該プログラムエラーの検出に起因するプログラムエラー割り込みを禁止できる。
【0014】
このように上記の構成においては、計算機の仕様変更前と同一構成のプログラムエラー検出回路を使用したために、たとえ計算機の仕様変更により検出が不要となったプログラムエラー(プログラムエラー要因)が検出されて対応するエラー検出信号が出力されたとしても、計算機のシステム立ち上げ時に上記レジスタに設定されたデータの指定によって、当該検出が不要となったプログラムエラー要因に対応するエラー検出信号を無効化するならば、当該プログラムエラー要因によるプログラムエラー割り込みを禁止することができ、プログラムエラー検出回路の共通化が図れる。
【0015】
【実施例】
図1はこの発明を適用するVLIW方式の計算機の一実施例を示す要部ブロック構成図である。なお、この図1の計算機は、図4に示す構造の命令語を用いているものとする。
【0016】
図1において、1は命令語群からなる各種プログラム、データ等が格納されるメモリである。メモリ1の所定番地には、システム立ち上げ時に実行されて後述するレジスタ5にデータをセットするための特定のデータセット命令Mが格納されている。この特定データセット命令Mは、ブートプログラムに含まれている。このブートプログラムは、実機ではROMに格納されているが、ここでは説明の簡略化のために、メモリ1に格納されているものとする。
【0017】
2はメモリ制御装置である。このメモリ制御装置2は、分岐要求が無い限り、メモリアドレスをインクリメントしながらメモリ1から順番に命令語を取り出す。またメモリ制御装置2は、分岐要求があった場合には、後述する命令アドレス生成装置15から与えられる分岐アドレス(分岐先アドレス)で示されるメモリ1のメモリ番地から命令語の取り出しを開始する。
【0018】
3はメモリ1から供給される命令語を、各フィールドF1〜F4毎にデコードする命令デコード装置、4はプログラムエラー検出回路である。
プログラムエラー検出回路4は、命令デコード装置3から出力されるフィールドF1〜F4毎のデコード信号31〜34をもとに、予め定められたプログラムエラーを検出するハードウェアである。
【0019】
本実施例におけるプログラムエラー検出回路4は、命令語の各フィールドF1〜F4内で指定できる命令の制約が、図5に示したようになっていることを前提として開発されたものであり、12種類のプログラムエラーを検出するようになっている。したがってプログラムエラー検出回路4から出力されるプログラムエラー検出信号には、プログラムエラー検出信号E0 〜E11の12種類ある。この信号E0 〜E11と、フィールドF1〜F4で指定されるプログラムエラーとなる命令との対応関係を図2に示す。
【0020】
図2に示すように、信号E0 は命令語のフィールドF1でシフト命令が指定されたプログラムエラー、信号E1 は同フィールドF1でST(ストア)命令が指定されたプログラムエラー、信号E2 は同フィールドF1で分岐命令が指定されたプログラムエラーを、それぞれ示す。
【0021】
次に、信号E3 は命令語のフィールドF2でST命令が指定されたプログラムエラー、信号E4 は同フィールドF2で分岐命令が指定されたプログラムエラー、信号E5 は同フィールドF2でLD(ロード)命令が指定されたプログラムエラーを、それぞれ示す。
【0022】
次に、信号E6 は命令語のフィールドF3で分岐命令が指定されたプログラムエラー、信号E7 は同フィールドF3でLD命令が指定されたプログラムエラー、信号E8 は同フィールドF3でシフト命令が指定されたプログラムエラーを、それぞれ示す。
【0023】
次に、信号E9 は命令語のフィールドF4でLD命令が指定されたプログラムエラー、信号E10は同フィールドF4でシフト命令が指定されたプログラムエラー、信号E11は同フィールドF4でST命令が指定されたプログラムエラーを、それぞれ示す。
【0024】
5は12ビットのレジスタである。このレジスタ5は、上記プログラムエラー検出信号E0 〜E11に起因するプログラムエラー割り込みを禁止するためのビット0〜11の禁止ビットを保持する。レジスタ5の各ビット0〜11は、上記特定のデータセット命令Mによりセット/リセットが可能となっている。
【0025】
6はレジスタ5へのデータセットを許可(イネーブル)するための制御信号である。この制御信号6は、データセット命令Mを命令デコード装置3がデコードした場合に真となる。
【0026】
7はレジスタ5にセットするデータを命令デコード装置3から供給するためのデータ線である。このデータ線7を通したデータ供給は、上記特定のデータセット命令Mを命令デコード装置3がデコードした場合に行われる。
【0027】
8−0〜8−11 はレジスタ5の各ビット(禁止ビット)0〜11の状態を反転するためのインバータ、9はインバータ8−0〜8−11 の出力状態に応じて、プログラムエラー検出回路4からのプログラムエラー検出信号E0 〜E11を無効化するためのプログラムエラー割り込み禁止回路である。このプログラムエラー割り込み禁止回路9は、12個のANDゲート9−0〜9−11 から構成される。ANDゲート9−i(i=0〜11)は、プログラムエラー検出回路4からのプログラムエラー検出信号Ei とインバータ8−iの出力信号とを入力し、インバータ8−iの出力信号が“0”のとき、プログラムエラー検出信号Ei の出力を禁止する。
【0028】
10はANDゲート9−0〜9−11 の出力の論理和をとるORゲートである。このORゲート10の出力信号は、プログラムエラー検出を示す制御信号11として用いられる。
【0029】
12はORゲート10からのプログラムエラー検出を示す制御信号11およびプログラムエラー以外のエラーを示す制御信号13を受けて、割り込みが起きたことを示す割り込み信号14を生成する割り込み処理装置、15は命令アドレス生成装置である。命令アドレス生成装置15は、割り込み処理装置12からの割り込み信号14と命令デコード装置3からの制御信号16から、メモリ制御装置2へ分岐要求と分岐アドレスを出力する。この制御信号16は、分岐命令を命令デコード装置3がデコードした場合に真となる。
【0030】
次に、図1の構成の動作を説明する。
まず、メモリ1に格納されている特定のデータセット命令Mを実行する。このデータセット命令Mは、ブートプログラム中に含まれており、システム立ち上げ時に1回実行されるものとする。本実施例で適用されるデータセット命令Mの命令形式を図3に示す。
【0031】
ここでは、データセット命令Mはビット0〜31の32ビットで構成されており、ビット0〜7の8ビットがデータセットを指定するOP(オペレーション)コード、ビット20〜31の12ビットがレジスタ5にセットされるデータ(以下、マスクデータと称する)である。なお、データセット先(レジスタ5)を指定するデスティネーション指定フィールドは省略されている。
【0032】
さて、システム立ち上げ時に、メモリ1から図3に示す形式の特定のデータセット命令Mを含むVLIW方式の命令語がメモリ制御装置2により取り出されて命令デコード装置3に供給され、同装置3によりデコードされたものとする。この場合、命令デコード装置3は、データセット命令Mに応じて制御信号6を真にすると同時に、データ線7上に、データセット命令Mのビット20〜31に設定されている12ビットのマスク(MASK)データを出力する。
【0033】
制御信号6は、レジスタ5のラッチイネーブル信号(EN)となり、これにより命令デコード装置3からデータ線7を介してレジスタ5に供給された12ビットのマスクデータが、同レジスタ5にセットされる。このレジスタ5にセットされた12ビットのマスクデータ、即ちレジスタ5のビット0〜11の各ビット(禁止ビット)は、“1”でプログラムエラー検出信号E0 〜E11に起因するプログラムエラー割り込みの禁止を指定する。
【0034】
その後、システムが立ち上がり、やがて、プログラムエラー検出回路4の検出対象となるプログラムエラーを起こす命令を含む図4に示す構造の命令語がメモリ制御装置2によりメモリ1から取り出されて、命令デコード装置3に供給されたものとする。
【0035】
命令デコード装置3は、メモリ制御装置2から供給された命令語を、各フィールドF1〜F4毎にデコードし、そのデコード結果であるデコード信号31〜34を出力する。
【0036】
プログラムエラー検出回路4は、この命令デコード装置3からの各フィールドF1〜F4毎のデコード信号31〜34を受けて、各フィールドF1〜F4毎に予め定められたプログラムエラーの検出を行う。即ちプログラムエラー検出回路4は、例えばフィールドF1であれば、デコード信号31が、シフト命令、ST命令、または分岐命令を示しているか否かを検出する。そしてプログラムエラー検出回路4は、デコード信号31がシフト命令を示しているならば、プログラムエラー検出信号E0 を真(“1”)にし、同じくST命令を示しているならばプログラムエラー検出信号E1 を真(“1”)にし、同じく分岐命令を示しているならばプログラムエラー検出信号E2 を真(“1”)にする(図2参照)。
【0037】
これに対し、デコード信号31が、フィールドF1での指定が許されている加減算命令、データセット命令またはLD命令を示しているならば、プログラムエラー検出回路4は、プログラムエラー検出信号E0 〜E2 のいずれも真にしない。
【0038】
プログラムエラー検出回路4からのプログラムエラー検出信号E0 〜E11は、プログラムエラー割り込み禁止回路9中の対応するANDゲート9−0〜9−11 の一方の入力に供給される。このANDゲート9−0〜9−11 の他方の入力には、インバータ8−0〜8−11 の出力が供給される。このインバータ8−0〜8−11 の出力は、レジスタ5のビット(禁止ビット)0〜11の論理状態を反転したものである。
【0039】
ANDゲート9−i(i=0〜11)は、インバータ8−iの出力が“1”の場合、即ちレジスタ5のビットiがプログラムエラー割り込み許可を示す“0”のリセット状態の場合には、プログラムエラー検出信号Ei をそのまま出力する。これに対し、インバータ8−iの出力が“0”の場合、即ちレジスタ5のビットiがプログラムエラー割り込み禁止を示す“1”のセット状態の場合には、ANDゲート9−iはプログラムエラー検出信号Ei の出力を禁止する。
【0040】
したがって、たとえプログラムエラー検出回路4にて、プログラムエラー検出信号Ei 出力の対象となるプログラムエラーが検出されて、同信号Ei が真にされても、レジスタ5のビット(禁止ビット)iがセットされているならば、同信号Ei はANDゲート9−iにより強制的に偽にされる。これは、プログラムエラー検出回路4を作り直して、プログラムエラー検出信号Ei 出力の対象となるプログラムエラーの検出機能をなくしたのと等価である。
【0041】
この場合、プログラムエラー検出信号Ei 以外のプログラムエラー検出信号が全て真でないならば、ANDゲート9−0〜9−11 の出力は全て“0”(偽)となるため、ORゲート10の出力である制御信号11も“0”(偽)となり、プログラムエラー検出に従う割り込み処理装置12からの割り込み信号14の出力は禁止される。
【0042】
以上のことから、図1に示す計算機のハードウェア仕様が変更されて、例えば命令語のフィールドF1に対応してシフタが追加され、同フィールドF1内で指定できる命令として、図5に示す加減算命令とデータセット命令とLD命令の他に、シフト命令が新たに追加された場合には、レジスタ5に次のようなマスクデータをセットすることにより、プログラムエラー検出回路4を作り直さななくても、このシフト命令をフィールドF1で指定したためにプログラムエラー割り込みが発生することを防止できる。
【0043】
即ち、フィールドF1でシフト命令を指定した場合、プログラムエラー検出回路4では(ハードウェア仕様の変更に合わせて作り直しがなされていないものとすると)、前記したようにプログラムエラー検出信号E0 が真とされる。したがって、このプログラムエラー検出信号E0 に従うプログラムエラー割り込みを禁止するためには、レジスタ5のビット0を“1”にセットすればよい。
【0044】
また、レジスタ5のビット0を“1”にセットするには、データセット命令Mのビット20〜31に、先頭ビット(ビット20に対応するビット)が“1”の12ビットマスクデータを設定しておき、即ちビットパターンが“1××……××”(×は“1”または“0”)の12ビットマスクデータを持つデータセット命令Mを用意しておき、同命令Mをシステム立ち上げ時に実行すればよい。
【0045】
一方、プログラムエラー検出回路4により検出されたエラー、即ち論理状態が真とされたプログラムエラー検出信号Ei に対応したレジスタ5のビットiがリセットされている場合には、ANDゲート9−iは、そのプログラムエラー検出信号Ei をそのまま出力する。この場合、ORゲート10の出力である制御信号11は“1”(真)となる。
【0046】
割り込み処理装置12は、プログラムエラー検出を示す制御信号11が“1”の場合、割り込みを検出し、割り込み信号14により命令アドレス生成装置15に対して割り込み発生を通知する。これを受けて命令アドレス生成装置15は、メモリ制御装置2に対して分岐要求と分岐アドレス(プログラムエラーの割り込みハンドラのアドレス)を出力する。
【0047】
メモリ制御装置2は、プログラムエラーの割り込みハンドラに置かれた命令をメモリ1から取り出して命令デコード装置3に供給する。このようにして、プログラムエラー割り込み処理が行われる。
【0048】
以上の説明から明らかなように、図1の構成の計算機では、プログラムエラー検出回路4で検出される12種類のプログラムエラー要因に対応したプログラムエラー検出信号E0 〜E11のうち、特定のプログラムエラー要因の検出によって真とされるプログラムエラー検出信号だけを、システム立ち上げ時に実行される特定データセット命令M中のマスク(MASK)データによりレジスタ5を通してマスクすることで、プログラムエラー割り込みの許可/禁止を制御することができる。
【0049】
したがって、図1の計算機のハードウェア量を追加し、命令語の各フィールドF1〜F4内で指定できる命令の制約が少なくなった上位機種を作る場合に、プログラムエラー検出回路4を作り直さなくても、データセット命令Mのマスクデータを変えるだけで、検出が不要となったプログラムエラーによってプログラムエラー割り込みが発生する不都合を防止することができる。
【0050】
また、前記実施例では、プログラムエラー割り込み禁止回路9に対してプログラムエラー要因別にプログラムエラー割り込みの許可/禁止を指定するレジスタ5を、データセット命令Mにより操作する場合について説明したが、これに限るものではない。例えば、レジスタ5に代えてDIPスイッチを用い、利用者の操作によりマスクデータをセットするようにしても構わない。この場合、誤操作を招く虞はあるものの、その計算機のハードウェア仕様が変わったときだけ操作すればよい。
また、命令語の構造や、各フィールド毎の命令の制約は、前記実施例に限定されるものでないことは勿論である。
【0051】
【発明の効果】
以上詳述したようにこの発明によれば、プログラムエラー検出回路により検出される各プログラムエラー要因別に、その要因によるプログラムエラー割り込みを、例えばシステム立ち上げ時の指定により許可/禁止する構成としたので、この要因別の指定により、計算機の仕様変更のために検出不要となったプログラムエラー要因によるプログラムエラー割り込みの発生を禁止することができる。
【0052】
このため、計算機の仕様変更によりプログラムエラー検出回路での検出対象となっている複数のプログラムエラー要因の一部が検出が不要となったとしても、そのプログラムエラー検出回路をそのまま使用することができ、プログラムエラー検出回路の共通化を図ることができ、且つハードウェアの互換性も維持することができる。
【図面の簡単な説明】
【図1】この発明を適用するVLIW方式の計算機の一実施例を示す要部ブロック構成図。
【図2】図1中のプログラムエラー検出回路4の機能を、命令語の各フィールドで指定されるプログラムエラーとなる命令と各プログラムエラー検出信号との対応関係により説明するための図。
【図3】図1中のレジスタ5にマスクデータをセットするための特定データセット命令Mの形式を示す図。
【図4】VLIW方式の命令語の構造例を示す図。
【図5】図4に示す命令語の各フィールド内で指定できる命令の一例を示す図。
【符号の説明】
1…メモリ、2…メモリ制御装置,3…命令デコード装置、4…プログラムエラー検出回路、5…レジスタ(プログラムエラー割り込み禁止指定手段、禁止ビット保持手段)、9…プログラムエラー割り込み禁止回路、9−0〜9−11 …ANDゲート、10…ORゲート、12…割り込み処理装置、15…命令アドレス生成装置、M…データセット命令(プログラムエラー割り込み禁止指定手段)、E0 〜E11…プログラムエラー検出信号。
Claims (1)
- 複数の命令フィールドから構成される命令語の群を格納したメモリを備えた計算機において、
前記メモリから読み出された命令語の前記各命令フィールド毎に当該命令フィールドで指定できないと予め定められている命令が存在した場合にプログラムエラーを検出し、前記各命令フィールド毎で且つ前記予め定められている命令毎のプログラムエラー検出に応じた固有のエラー信号を出力するプログラムエラー検出回路と、
前記プログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータを保持するレジスタと、
前記計算機のシステム立ち上げ時に前記レジスタに、前記プログラムエラー検出回路から出力可能なエラー信号毎に、そのエラー信号を有効化又は無効化するためのデータを設定するデータ設定手段と、
前記プログラムエラー検出回路から前記プログラムエラー検出に応じて出力されたエラー信号を前記レジスタが保持しているデータに基づいて有効化又は無効化し、有効化した場合に制御信号を出力するプログラムエラー割り込み禁止回路と、
前記プログラムエラー割り込み禁止回路から前記制御信号が出力された場合に当該制御信号に基づいてプログラムエラー割り込み信号を出力するプログラムエラー割り込み処理装置と
を具備したことを特徴とする計算機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12879393A JP3585940B2 (ja) | 1993-05-31 | 1993-05-31 | 計算機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12879393A JP3585940B2 (ja) | 1993-05-31 | 1993-05-31 | 計算機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06337793A JPH06337793A (ja) | 1994-12-06 |
JP3585940B2 true JP3585940B2 (ja) | 2004-11-10 |
Family
ID=14993591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12879393A Expired - Fee Related JP3585940B2 (ja) | 1993-05-31 | 1993-05-31 | 計算機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3585940B2 (ja) |
-
1993
- 1993-05-31 JP JP12879393A patent/JP3585940B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06337793A (ja) | 1994-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI655643B (zh) | 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作 | |
US5305460A (en) | Data processor | |
US8789169B2 (en) | Microcomputer having a protection function in a register | |
JPS61204758A (ja) | コ・プロセツサ制御方式 | |
KR20190020036A (ko) | 레지스터 복구 분기 명령 | |
CN111771188A (zh) | 带链接分支指令的分支目标变体 | |
JP3585940B2 (ja) | 計算機 | |
KR100206350B1 (ko) | 중앙처리장치 | |
US6233675B1 (en) | Facility to allow fast execution of and, or, and test instructions | |
JPH05216721A (ja) | 電子計算機 | |
JP2006309454A (ja) | プログラム制御方法及びプロセッサ | |
KR100525537B1 (ko) | 인터럽트를 이용한 응용 프로그램의 에러검출장치 및 방법. | |
JPS6074059A (ja) | 記憶装置アクセス制御方式 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JP2607319B2 (ja) | プログラマブルコントローラ | |
TW201734821A (zh) | 暫存器存取控制 | |
JPH01134627A (ja) | マイクロプロセサの命令拡張方式 | |
JPH02132524A (ja) | 情報処理装置 | |
JP2870405B2 (ja) | 情報処理装置 | |
JP2987281B2 (ja) | プロセッサ | |
JPS60193046A (ja) | 命令例外検出方式 | |
JP2782471B2 (ja) | データ転送のリトライ制御方式 | |
JP4564025B2 (ja) | 情報処理装置における割り込み処理方法 | |
JPS60105043A (ja) | 情報処理方式 | |
JPH0424836A (ja) | マイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040803 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040805 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070813 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080813 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |