JP3716635B2 - 情報処理装置、及びその割込み制御方法 - Google Patents
情報処理装置、及びその割込み制御方法 Download PDFInfo
- Publication number
- JP3716635B2 JP3716635B2 JP24868498A JP24868498A JP3716635B2 JP 3716635 B2 JP3716635 B2 JP 3716635B2 JP 24868498 A JP24868498 A JP 24868498A JP 24868498 A JP24868498 A JP 24868498A JP 3716635 B2 JP3716635 B2 JP 3716635B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- interrupt
- program
- application program
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Programmable Controllers (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、情報処理装置、及びその割込み制御方法に関する。
【0002】
【従来の技術】
情報処理装置は、一般的に、その多くがマイクロプログラム制御方式を採用している。これは、命令(マシン語)より一段下位のレベルのマイクロ命令(命令のレベルで指定する動作より簡単な基本的な動作を指定するもの)を用いて、命令で規定されている機能を実現する為の制御信号を作り出すものである。マイクロ命令は、通常、それぞれの機種に応じて決められた長さのbit 長をもち、data系のregister類等の機能ブロックとその接続関係に対応して幾つかのフィールドが定義されている。
【0003】
図12は、従来のマイクロプログラム制御方式による情報処理装置の構成の一例を示すブロック図であり、同図には一例としてPLC(プログラマブル・コントローラ)の構成図を示す。尚、プログラマブル・コントローラは通常PCと略すが、後述するPC(プログラムカウンタ)と混同するので、以後PLCというものとする。
【0004】
同図に示すPLCは、アプリケーションプログラムメモリ501、データメモリ502、マイクロ(μ)プログラムメモリ503、デコーダ504、PLR(パイプラインレジスタ)505、命令フェッチ制御回路510、μ−SQC(μシーケンサ)520、演算実行部530、及びデータメモリ転送制御回路540等より構成される。
【0005】
アプリケーションプログラムメモリ501は、アプリケーションプログラムを格納するメモリである。このアプリケーションプログラムは、主にユーザ側において後述する開発ツール(プログラミングツール)を用いて設計されたプログラム(ラダー図等)が、PLC側の変換/逆変換機能によってそのPLCで実行可能な形式に変換されたものである。尚、逆変換機能は、PLC側で得たRASデータ等を開発ツール側に送信する際、及びPLC側に格納されたプログラムを開発ツールが読み出す際等に用いられる。
【0006】
データメモリ502は、アプリケーションプログラム及びOS(オペレーティングシステム)において使用する各種データを格納する外部データメモリであり、例えば制御対象機器の稼働状況を示すセンサ計測値やデータ等を一時的に記憶するRAM等である。
【0007】
マイクロ(μ)プログラムメモリ503は、μ−OSプログラムを格納すると共にアプリケーションプログラムの命令のインタプリタを格納するメモリである。ここでμ−OSプログラムについて説明しておく。PLC内には、メーカー側で予め作成して格納しておくシステムプログラムが存在するが、このシステムプログラムがマイクロ命令レベルの命令群として格納されているものをここではμ−OSプログラムと呼ぶ。
【0008】
デコーダ504は、マイクロ(μ)プログラムメモリ503から出力されるμ命令をデコードし、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種H/W(ハードウェア)の制御信号を生成し、これをPLR505及びデータメモリ転送制御回路540内のPLR545に出力する。
【0009】
PLR(パイプラインレジスタ)505は、デコーダ504から出力される各種制御信号をパイプライン方式で記憶し、各種H/Wブロックにこれら制御信号を接続するレジスタであり、フェッチ動作(命令レジスタへの命令格納)と命令実行動作のパイプライン動作を可能にするものである。
【0010】
命令フェッチ制御回路510は、アプリケーションプログラムの命令フェッチ動作を制御する回路であり、命令レジスタ511、PC(プログラムカウンタ)512、PCスタック513、及びプログラムメモリ転送制御回路514より構成される。
【0011】
命令レジスタ511は、上記プログラムメモリ501に格納されているアプリケーションプログラムを1命令ずつフェッチし出力するレジスタである。PC512は、次に実行すべき(あるいは実行中の)命令が記憶されているプログラムメモリ501のアドレスを保持し1命令実行毎に+1インクリメントするカウンタである。PCスタック513は、例えばサブルーチンコール時にPC512の格納内容を一時退避させ、リターン時に退避データをPC512に復帰させるためのスタックである。プログラムメモリ転送制御回路514は、後述するμ−OS(マイクロオペレーティングシステム)プログラムの制御下のもとに、上記プログラムメモリ501のアクセス制御及びPC512/PCスタック513の動作を制御する回路である。
【0012】
μ−SQC(マイクロシーケンサ)520は、マイクロプログラムの実行制御(マイクロプログラムメモリのアドレス制御)を行う回路であり、デコーダ521、μ−PC(マイクロプログラムカウンタ)522、アダー523、μ−PCスタック524、MPX(マルチプレクサ)525、及び割込み制御回路526より構成される。
【0013】
デコーダ521は、命令フェッチ制御回路510内の命令レジスタ511から出力される命令をデコードし、この命令を解釈実行する処理(以後、“インタプリタ”という)が格納されているμプログラムメモリ503のアドレス(以後、“MAPアドレス”という)を生成/出力する。
【0014】
μ−PC522は、μプログラムメモリ503に格納されているプログラムを順次実行していく為のPC(アドレスレジスタ)であり、アダー523とペアで使用することにより“+1”インクリメントするカウンタを構成する。
【0015】
μ−PCスタック524は、マイクロプログラムの実行処理において、サブルーチンコール時にμ−PC522を一時退避させ、リターン時にμ−PC522を復帰する為のスタックである。
【0016】
MPX525は、μプログラムメモリ503のアドレスを選択するマルチプレクサであり、デコーダ521から出力される“MAPアドレス”、μ−PC522からの出力(アダー523で+1加算された順序アドレス)、μ−PCスタック524から出力されるサブルーチンリターンアドレス、及び上記PLR505から出力されるマイクロプログラムの分岐アドレス(JMP、CALL)の中から、選択的にμプログラムメモリ503(及びアダー523にも)へ出力する。
【0017】
割込み制御回路526は、後述するアプリケーションレベルの割込み要因(デバッグ要因、タスク割込み、コマンド割込み)と、OSレベルの割込み要因(ハードウェア故障等の割込み)により、それぞれの割込み処理のアドレス生成や、OSの割込み処理へ移行する為の(MPX525に対する)アドレス強制選択制御等を行う。割込み制御回路526によって行われる割込み制御方法については、後に図17を参照して説明する。
【0018】
演算実行部530は、キャッシュレジスタ間、及びIMMデータ(後述する“直接数値”)とレジスタ間の各種演算及び各種データ変換を実行する機能ブロックであり、キャッシュレジスタ531、各種演算器・データ変換器532、及びMPX533より構成される。
【0019】
キャッシュレジスタ531は、各種演算・データ変換で使用するデータを記憶したり、各種H/W(ハードウェア)レジスタ・外部メモリとのデータ転送に使用されるデータを格納するレジスタである。
【0020】
各種演算器・データ変換器532は、アプリケーションプログラム及びμ−OSプログラムの指示に従って、各種算術/論理演算、シフト、BDC/DBC等の演算・データ変換処理を行う。
【0021】
MPX533は、各種演算器・データ変換器532による演算結果出力とデータメモリ502から読み出したデータ(リードデータ)とを、選択的にキャッシュレジスタ531に出力する。
【0022】
データメモリ転送制御回路540は、アプリケーションプログラム及びμ−OSプログラムにおいて、データメモリ502をアクセスするときの制御を行う回路であり、アドレス生成デコード541、MPX542、MAR543、デコーダ544、及びPLR545より構成される。
【0023】
アドレス生成デコード541は、命令フェッチ制御回路510の命令レジスタ511から出力されるアドレスオペランドに基づいて、不図示の記憶域に記憶されているオペランドデータ型より、アプリケーションプログラムからのデータメモリアクセス時のアドレスを生成する。
【0024】
MPX542は、μ−OSプログラムがデータメモリ502をアクセスするアドレス(キャッシュレジスタ531の出力A)と、アプリケーションプログラムからのデータメモリ502アクセス時のアドレス(アドレス生成デコード541の出力)を入力して、両者から選択して、MAR543及びデコーダ544へ出力する。
【0025】
MAR(メモリアドレスレジスタ)543は、MPX542から出力されるμ−OSプログラムまたはアプリケーションプログラムからのデータメモリ502アクセス時のアドレスを記憶するレジスタである。尚、アプリケーションプログラムからのアドレス格納タイミングは、PLR505への各種制御信号の格納タイミングと同時である。
【0026】
デコーダ544は、上記MPX542の出力を入力し、データメモリ502のアクセス選択信号CSを生成/出力する。
PLR545は、デコーダ544の出力(アクセス選択信号CS)とデコーダ504の出力(各種データメモリ転送制御信号)を、各々パイプライン方式で記憶し、これらの出力信号をデータメモリ502に接続するためのレジスタである。PLR545は、フェッチ動作(命令レジスタへの命令格納)と転送実行動作のパイプライン動作を可能にする。
【0027】
上記構成の従来の情報処理装置(PLC)の動作の概要について、以下に説明する。尚、図12にはPLCの全ての構成を示しているわけではなく、また同図に示す構成ブロック間の全ての配線を示しているものでもない。
【0028】
▲1▼まず、システムリセット解除後に、μ−PC522が“0”となって、μ−SQC(マイクロシーケンサ)520の制御下のもとに、μプログラムメモリ503上のμ−OSプログラムが実行されて、プロセッサ全体のH/W(ハードウェア)初期化が行われる。これよりアプリケーションプログラムを実行できる環境が構築され(PC512の初期値セット等)、システムスタートコマンド待ち状態となる。
【0029】
▲2▼μ−OSプログラムは、システムスタートコマンドを認識すると、命令フェッチ制御回路510にアプリケーションプログラムの実行を許可する。この時、μ−SQC520は、デコーダ521からのアプリケーションプログラム待ち状態となる。
【0030】
▲3▼命令フェッチ制御回路510は、アプリケーションプログラムメモリ501から、PC512が指示するアドレスの命令コードをフェッチし、命令レジスタ511に格納する。そして、PC512を自動的にインクリメントして、上記メモリ501から次の命令コードのフェッチを行う処理を繰り返す。
【0031】
▲4▼命令レジスタ511より出力される命令コードは、μ−SQC520のデコーダ521でデコードされる。これより、その命令をインタプリト実行するμプログラムメモリ上に処理アドレスが生成される。デコーダ521から出力されるアドレス情報は、MPX525により選択出力されて、μプログラムメモリ503のアドレスバスに入力する。これより、μプログラムメモリ503から、上記命令コードに対応するμ命令が、デコーダ504に出力される。デコーダ504は、上記μ命令をデコードし、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種H/Wの制御信号を生成する。そして、PLR505にこれら各種演算及び転送の制御指令がセットされ、各種H/Wブロックに指令が渡る。
【0032】
▲5▼転送命令の場合は、このとき同時に、データメモリ転送制御回路540内のMAR543にデータメモリ502のアドレスがセットされるようになっている。また、同時に、μ−SQC520の制御下のもとに、μプログラムメモリ503から次のμ命令の読み出しが始まる。
【0033】
演算命令の場合は、演算実行部530が所定の演算を実行し、キャッシュメモリに演算結果が格納される。同時に、次のμ命令を読み出してデコーダ504でデコードしてPLR505に取り込む処理が始まる。
【0034】
アプリケーションプログラムの分岐制御は、μ−OSから命令フェッチ制御回路510のPC512及びPCスタック513をレジスタアクセスすることにより行われる。
【0035】
ところで、ここで、アプリケーションプログラムの1命令に対応するμ命令の処理が、1クロックで終る場合もあれば、複数クロックかかる場合もある。この時の、命令フェッチ制御回路510内の命令レジスタ511への命令コードの取込み、PLR505へのH/W制御指令のセット、及び演算実行部530、データメモリ転送制御回路540の動作(キャッシュレジスタ531またはデータメモリ502へのライト動作等)のタイミングを図13に示す。
【0036】
図13(a)は1クロックで終る場合の動作タイミング、図13(b)は複数クロックかかる場合の動作タイミングを示す。
図13(b)に示すように、複数クロック掛かる命令の一例として、例えば(+ A B)の演算を行う場合、アプリケーションプログラムの命令コード“ADD B”に対応するμプログラムの命令コードは“LD B”“ADD”となり、2クロック掛かる。
【0037】
尚、図12では特に図示していないが、PLR505においてあるアプリケーションプログラム命令に対応する処理が完了するときに、命令フェッチ制御回路510に対して命令レジスタ511の書き換え許可(マップ許可)が与えられるようになっており、これを図13(a)、(b)において@で示している。
【0038】
次に、従来のプログラム開発環境について説明する。
図14は、従来のプログラムの開発ルートを説明する為の図である。
アプリケーションプログラムの開発は、主にユーザ側において、図14(a)に示すアプリケーションプログラムの開発ツール550上でプログラマ等がプログラムを作成すると(例えばプログラミングツール上でラダー回路図等を作成すると)、そのオブジェクトが生成されて、アプリケーションプログラムメモリ501に格納される。このとき、メモリ501に格納されるアプリケーションプログラムの命令コードは、例えば図15に示す形式となっている。これについては後に説明する。
【0039】
一方、μプログラムの開発は、主にPLCメーカー側において、図14(b)に示すシステム設計者専用のμプログラム開発ツール560により、システム設計者がμ−OSとインタプリタをプログラミング開発すると、これらのオブジェクトが生成されて、μプログラムメモリ503に格納される。このとき、メモリ503に格納されるμ−OSとインタプリタの命令コードは、例えば図16に示す形式となっている。これについては後に説明する。尚、μ−OSは各種H/W制御やアプリケーションプログラムの実行管理を行うものであり、インタプリタはアプリケーションプログラムの解釈実行を行う為のものである。
【0040】
図15は、従来のアプリケーションプログラムの命令コード(マシン語)の一例を示す図である。
同図において、命令コードは、基本部(32ビット)と拡張部(32ビット)とにより構成される。基本部は、命令種別を示すオペコード、当該命令の命令形態が基本部のみか基本部+拡張部であるかを示す拡張ビット、データ種別及びサイズを示すデータ型、データが存在する位置及びデータのアクセス方法(間接アクセス)を示すデータ記憶域(これらをまとめてオペランド種別という)、及びアドレスまたは数値を示すオペランド(16ビット)から構成される。
【0041】
オペコードとしては、例えば、ADD、SUB、MLT、BDC、DBC、LD、ST等がある。データ型としては、例えば、ビット型、ビット反転型、1語整数型、2語整数型、実数型等がある。データ記憶域には、式(または前回の演算結果値)、定数、メモリ、インデックス、メモリ間接、パラメータ等が格納される。
【0042】
オペランドは、アドレスの場合、基本部のみのときには16ビットアドレス、基本部+拡張部のときには32ビットアドレスとなる。一方、数値の場合、基本部のみのときには16ビット直接数値、基本部+拡張部のときには32ビット直接数値となる。アドレスまたは数値のオペランドが16ビットを越えた場合に、基本部+拡張部の命令形態となる。このとき、基本部の拡張ビットは‘1’になっている。命令フェッチ制御回路510は、基本部の拡張ビットが‘1’であるときには、基本部と拡張部がそろった時点でこの命令コードを命令レジスタ511へ書込む。
【0043】
図16は、従来のマイクロプログラムの命令コード(マイクロ命令)の一例を示す図である。
同図に示すように、マイクロプログラムの命令コードは、μ−SQCの分岐制御、各種演算・データ転送制御、及び各種H/W制御の3つのフィールドで構成される。マイクロ命令は、通常、それぞれの機種に応じて決められた長さのビット長をもつが、一般に1ステップが約80〜100ビット程度の命令ビット長になっている。
【0044】
分岐制御のフィールドは、μプログラムの命令実行順序制御(MAP、CONT、JMP、CALL、RET等)を行うBOP(ブランチオペレーション)、条件分岐のときの条件選択(S、Z、CY、OVF等)を行うTC(テストコンディション)、JMP、CALL時のμプログラムの分岐アドレスを示すBRA(ブランチアドレス)からなる。尚、MAPは次のアプリ命令を選択させる命令であり、CONTは次アドレスを選択させる命令である。
【0045】
演算・データ転送制御のフィールドは、16ビット/32ビット、符号の有無等を示すMD(演算モード)、演算/データ変換機能の指定(ADD、SUB、MLT、BDC、DBC等)を行うAFC(演算ファンクション)、演算時のソース/ディスティネーションレジスタ指定を行う演算ソース/ディスティネーションレジスタ(RS1、RS2、RD)、直接数値間演算時の数値データであるIMM(直接数値)、各種データ転送制御(RD、WT、転送データサイズ等)、演算/転送に必要な各種データパス上のMPXの選択指令を行う各種データパス経路選択からなる。
【0046】
各種H/W制御のフィールドは、各種周辺H/Wの制御に使用されるものであり、例えば各種フラグのセット/リセット等に使用される。
図17は、割込み処理を説明する為の図である。
【0047】
アプリケーションプログラムの実行中にプログラムの上位レベル実行割込み(タスク割込み)が発生した場合、アプリケーションプログラムのステップ実行等のデバック処理を行う場合、またはシステムコマンドによるアプリケーションプログラムの実行停止指令を受けた場合等に、μ−SQC520内の割込み制御回路526はアプリケーションプログラムレベルの割込み要因を生成する。
【0048】
例えば、図17(a)において▲1▼、▲2▼、▲3▼で示すアプリケーションプログラムの1命令(M1、M2、M3)実行完了後のタイミングで、割込み制御処理へ移行する。このタイミングは、図17(b)に示す例では、上記1命令(M1、M2、M3)が解釈/実行されるμプログラムのインタプリタ処理において、次のアプリケーションプログラム1命令へのMAP許可(“@”で示す)のところである。例えば命令M1に対応するμプログラムμ1、μ2、μ3 の場合には、最後のμプログラムであるμ3 のところにMAP許可(“@”)があり、このとき上記割込み要因が生成されていれば、μ−SQC520内のMPX(マルチプレクサ)525によって、μプログラムメモリ503に格納されているアプリケーションレベルの割込み処理プログラム(これはμ−OS)の先頭アドレスが指定される。これによって、μ−OSによる割込み制御処理へと移行する。
【0049】
ここで、一般に、アプリケーションレベルの割込み処理としては、以下の(1)〜(3)がある。
(1)アプリケーションプログラムのタスク割込み(定周期割込みタスク、イベント割込みタスク等)制御処理
(2)アプリケーションプログラムの各種デバック制御処理
・ステップ実行割込み
・条件一致(PC一致、実行データ転送時のデータ一致等)停止割込み
・条件一致データ収集割込み
(3)システムコマンド制御処理(アプリケーションプログラムの強制停止コマンド割込み等)
割込み制御回路526には、各割込みの要因情報が備えられており、発生した割込みに応じた割込み要因情報を不図示のレジスタ等にセットし、上記μ−OS内のアプリケーション割込み制御処理に移行するようにMPX525の出力(μプログラムメモリ503のアドレス)を制御する。これよりμ−OSの割込み制御処理においては、上記セットされた割込み要因情報を読み出すことにより、所定の割込み制御処理を実行する。例えば、図17(c)に示すように、読み出した割込み要因情報に基づいて割込み要因を判定し、判定結果に応じた処理に移行する。“タスク割込み”と判定した場合にはタスク割込み制御を行い、別のアプリケーションプログラム処理へと移行する。“デバック処理割込み”と判定した場合には各種デバック処理(ステップなど)を行い、OS処理またはアプリケーション処理へと移行する。“ストップコマンド割込み”と判定した場合にはアプリケーションプログラム停止処理を行いOSのシステムコマンド待ち処理へと移行する。
【0050】
また、割込み制御回路526においては、H/W(ハードウェア)故障等の重故障が発生した場合に対して、各種重故障要因情報が管理されており、OSレベルでの割込み制御が行われる。すなわち、例えば図17(a)、(b)を例にすると、アプリケーションプログラムの1命令(M1)をインタプリタ実行途中であっても(μ2実行中であっても)、次のμ3実行前にすぐに(つまり1命令実行完了せずに)、μ−OSの重故障処理へと移行する。つまり、アプリケーションプログラムの1命令完了を示す上記μプログラム処理のMAP許可(@)のポイントであるかどうかに係わらず、μプログラム処理のいかなる所においても割込み処理が実行に移される。
【0051】
【発明が解決しようとする課題】
上述した従来の情報処理装置では、アプリケーションプログラムをμプログラムメモリ内のインタプリタにより解釈実行している為、アプリケーションプログラムメモリの制御とμプログラムメモリの制御とを行う所謂2階層のプログラム実行制御処理系となっていた。
【0052】
これに対して、本発明の出願人は、先出願(特願平10−74765号)において、オペランド属性付命令と汎用命令とより成る統合命令コード体系を用意し、1階層のプログラム実行制御処理系を実現することにより、小型化、高速処理、低コスト等の効果が得られる情報処理装置を提案している。
【0053】
ここで、情報処理装置においては、多くの場合割込み処理は必要なものとなっており、上記1階層のプログラム実行制御処理系の環境下で実現できる割込み制御方法が要望されている。
【0054】
本発明の課題は、アプリケーションプログラムとOSプログラムの両方を同一の実行制御回路により動作させる1階層のプログラム実行制御処理系の環境下において、アプリケーションレベルの割込みとOSレベルの割込みを独立に制御することができる情報処理装置、及びその割込み制御方法を提供することである。
【0055】
【課題を解決するための手段】
本発明による情報処理装置は、アプリケーションレベルの転送命令であるオペランド属性付命令と、ハードウェアを直接制御できるレベルの命令である汎用命令とより成る統合命令コード体系に従って生成されたアプリケーションプログラムとOSプログラムの命令群を格納する命令格納手段と、該命令格納手段をアドレス制御して前記アプリケーションプログラムまたはOSプログラムの命令を順次フェッチして、分岐制御手段により分岐制御を行うことで命令を実行させる1階層のプログラム実行制御手段と、該1階層のプログラム実行制御手段により実行制御されるプログラムのレベルまたは処理内容あるいは構造に応じて各々定められている所定の条件が満たされるとき割込み有効とする割込み制御手段とを有する。
【0056】
例えば、アプリケーションレベルの割込み制御またはアプリケーションプログラムのデバッグを行う場合、前記割込み制御手段は、前記アプリケーションプログラムが文脈をもつ関数構造の場合には、少なくとも前記1階層のプログラム実行制御手段により読み出された命令が文脈の切れ目を示す命令であることを条件として割込み有効/無効を制御する。
【0057】
また、例えば、アプリケーションレベルの割込み制御またはアプリケーションプログラムのデバッグを行う場合、前記割込み制御手段は、前記アプリケーションプログラムが文脈をもたない構造の場合には、少なくとも前記1階層のプログラム実行制御手段により読み出された命令に割込み有効を示すビットが付加されていることを条件として割込み有効/無効を制御する。
【0058】
あるいは、例えば、OSプログラムをデバッグする場合は、前記割込み制御手段は、割込み要因発生時に実行中の命令の処理完了を以て割込み有効とする。
また、例えば、前記割込み制御手段は、致命的故障によって発生した割込み要因は無条件で割込み有効とする。
【0059】
更に、前記致命的故障による割込み発生時に実行中の命令と該命令の前に実行された命令及び次に実行される命令を示す情報を保持する保持手段を更に備え、該保持手段に保持された情報に基づいて前記致命的故障の発生原因を解析させる。
【0060】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本発明の一実施形態の情報処理装置の構成を示すブロック図であり、ここでは一例としてPLC(プログラマブルコントローラ)の構成を示す。
【0061】
尚、図1にはPLCの全ての構成を示しているわけではなく、また同図に示す構成ブロック間の全ての配線を示しているものでもない。
同図に示すPLCは、アプリケーション/OSプログラムメモリ1、デコーダ2、PLR3、デ−タメモリ4、命令フェッチ制御回路10、演算実行部20、及びデータメモリ転送制御回路30等より構成される。
【0062】
同図に示すPLCの構成を図12に示す従来のPLCの構成と概略的に比較すると、従来のPLCに存在したμ−SQC520、μプログラムメモリ503は、本実施形態のPLCには存在しない。本実施形態のPLCの命令フェッチ制御回路10には分岐制御を行う機能と、割込み制御を行う機能が追加されている。分岐制御を行う機能については、上記先出願(特願平10−74765号)で述べているので、ここでは特に説明しないが、概略的には、この分岐制御を行う機能と、後述する統合命令コード体系により各命令が記述されているアプリケーションプログラム、システム組込みマクロ関数、及びOSプログラムとにより(いずれも後述するアプリケーション/OSプログラムメモリ1に共存して格納されている)、1階層のプログラム制御の処理系を実現している。
【0063】
まず、図1に示すPLCの各構成について、詳細に説明する。
アプリケーション/OSプログラムメモリ1は、OSプログラム、システム組込みマクロ関数、及びアプリケーションプログラムが共存して格納されるメモリ(RAM/ROM)である。これら各プログラム(または関数)は、統合命令コード体系に属するオペランド属性付命令または汎用命令により記述されている。
【0064】
デコーダ2は、命令フェッチ制御回路10内の命令レジスタ11から出力されるオペランド属性付命令または汎用命令(これらについては後に図3を参照して詳述する)をデコードして、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種H/Wの制御信号を生成し、これをPLR3に出力する。
【0065】
尚、オペランド属性付命令は、アプリケーションレベルの単純な転送命令であるので、デコーダ2をこの単純な転送命令に対応して転送制御信号を生成する仕様することは容易である。よって、オペランド属性付命令に関しても、命令レジスタ11からの出力を直接デコーダ2に入力して処理させることができる。
【0066】
PLR(パイプラインレジスタ)3は、デコーダ2から出力される各種制御信号をパイプラインして記憶し、各種H/Wブロックにこれら制御信号を接続するレジスタであり、フェッチ動作(命令レジスタへの命令格納)と命令実行動作のパイプライン動作を可能にするものである。データメモリ4は、従来例のデータメモリ502と略同様であるので、ここでは特に説明しない。
【0067】
命令フェッチ制御回路10は、命令レジスタ11、PC(プログラムカウンタ)12、PCスタック13、プログラムメモリ転送制御回路14、分岐制御回路15、及び割込み制御回路16より構成される。
【0068】
命令レジスタ11は、上記プログラムメモリ1に格納されているOSプログラム、またはシステム組込みマクロ関数、あるいはアプリケーションプログラムの命令を1命令ずつ順次フェッチして、デコーダ2、分岐制御回路15、アドレス生成デコーダ31に出力するレジスタである。PC12は、分岐制御回路15の制御に応じて、次に実行すべき(あるいは実行中の)命令が記憶されているプログラムメモリ1内のアドレスを保持する。PCスタック13は、PC12の格納内容を一時退避させるスタックである。プログラムメモリ転送制御回路14については特に説明しない。
【0069】
分岐制御回路15は、アプリケーションプログラム、OSプログラム中のJMP、CALL、RET命令等によって発生するPC12及びPCスタック13の制御を、OSプログラムを介在させることなく直接行えるようにする為の機能を有する。分岐制御回路15の詳細な構成/動作については、上記先出願(特願平10−74765号)で述べているので、ここでは特に説明しない。
【0070】
割込み制御回路16は、詳しくは後に説明するが、アプリケーションレベルの割込み要因(デバック要因、タスク割込み、コマンド割込み)、またはOSレベルの割込み要因(ハードウェア故障等の割込み)に対応して、それぞれの割込み処理のアドレス生成と割込み処理へ移行する為のアドレス強制選択制御を行う回路である。
【0071】
演算実行部20は、キャッシュレジスタ21、各種演算器・データ変換器22、及びMPX23より構成される。データメモリ転送制御回路30は、アドレス生成デコード31、MPX32、MAR33、デコーダ34、及びPLR35より構成される。演算実行部20、データメモリ転送制御回路30は、従来の演算実行部530、データメモリ転送制御回路540と略同様であるので、説明は省略する。
【0072】
上記図1に示す構成のPLCの動作概要について、以下に説明する。
(1)まず、最初に、システムリセット後(立ち上げ時)は、命令フェッチ制御回路10内のPC12は‘0’となっており、これよりアプリケーション/OSプログラムメモリ1のアドレス‘0’番地に格納されている命令(図2に示すOSプログラムの先頭命令)から順次フェッチされて命令レジスタ11に一時記憶される。そして、このフェッチされた命令は、命令レジスタ11からデコーダ2に出力され、デコーダ2においてデコードされて、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種H/W(ハードウェア)の制御信号が生成される。そして、この制御信号がPLR3を介して出力されて各種H/Wの制御(演算・転送等)が行われる。このようにして、順次、OSプログラムの命令をフェッチして実行していくことにより、プロセッサ全体のH/W初期化とアプリケーションプログラムの実行環境が構築される。そして、システムのスタートコマンド待ち状態となる。
【0073】
OSプログラムの命令コードは、全て、汎用命令である。汎用命令は、基本的にはRISC化してあり、1クロックで処理できる。また演算実行部20においても各種関数を1クロックで処理できる。
(2)上記のように、OSプログラムによりシステムの初期化が行われた後、システムコマンドが認識されると、アプリケーションプログラムの実行に移る。すなわち、まず、アプリケーション/OSプログラムメモリ1内のアプリケーションプログラムが格納されている記憶領域の先頭番地が、PC12にセットされる。そして、このPC12にセットされたアドレスの命令から順次フェッチし実行していく。アプリケーションプログラムの命令コードは、オペランド属性付命令または汎用命令である。但し、アプリケーションプログラムの汎用命令は、OSプログラムのように全ての汎用命令を用いることはできず、“汎用命令の一部”を用いることができる(特に、OSプログラム専用のH/W資源を直接アクセスする命令は、後述するアプリケーションプログラム開発環境では生成できないようになっている)。
【0074】
図2は、アプリケーション/OSプログラムメモリ1の格納内容とプログラム開発環境を説明する為の図である。
同図に示すように、アプリケーション/OSプログラムメモリ40には、OSプログラム41、システム組込みマクロ関数42、及びアプリケーションプログラム43が共存して格納される。
【0075】
ここで、PLCでは、一般的に、メーカー側でシステムプログラムを作成し装置に組込んでおく。本実施形態においても、OSプログラム41及びシステム組込みマクロ関数42は、主にメーカー側で作成してアプリケーション/OSプログラムメモリ40に格納する。すなわち、同図に示すシステム設計者専用の開発ツール53を用いて、システム設計者が、OSプログラム、システム組込みマクロ関数より成るシステムプログラムを開発すると、そのオブジェクトが汎用命令の形式で生成され、アプリケーション/OSプログラムメモリ40に格納される。OSプログラムは、各種H/W制御、アプリケーションプログラムの実行管理を行う。システム組込みマクロ関数は、アプリケーションプログラムの命令において、H/Wで1クロックで実行できない命令に対応して、この命令を実行させる為のアルゴリズムを組んだOSレベルの汎用命令列である。尚、システム設計者専用の開発ツール53では、オペランド属性付命令を生成することもできる。これは、例えば、システム開発時に、システム設計者がオペランド属性付命令のマシン語も生成して、これをアプリケーションプログラム43の領域に格納して、デバック確認を行うためである。
【0076】
一方、主にユーザー側において、プログラミングツール等を用いてラダー図等でプログラムが設計され、そのオブジェクトが生成されると、このオブジェクトがPLC内のマシン語生成機能52によって変換/逆変換処理されてオペランド属性付命令または汎用命令に変換され、これがアプリケーション/OSプログラムメモリ40に格納される。マシン語生成機能52には、詳しくは後述するが、図4(a)、(b)に示すアプリケーションレベル割込み制御ビット(割込み有効/無効ビット)を自動生成する機能もある。尚、図1には特に図示していないが、PLC内には開発ツールインタフェースプロセッサが備えられており、このプロセッサによって上記変換/逆変換処理が実行される。
【0077】
図3(a)、(b)は、上記オペランド属性付命令と汎用命令の命令コード体系の一例を示す図であり、本実施形態において後に説明する「アプリケーションプログラムに文脈を持つ場合」に対応する命令コード体系である(尚、図3の命令コード体系は、上記先出願のものと略同様であるとも言える)。
【0078】
図3(a)は、オペランド属性付命令60の命令コード体系の一例を示す。
同図において、オペランド属性付命令60は、基本部と拡張部より成る。基本部は、MSBビット61、オペコード62、拡張ビット63、データ型64、データ記憶域65、及びオペランド66より成る。MSBビット61は、オペランド属性付命令と汎用命令とを区別するためのビットであり、例えば‘1’の場合はオペランド属性付命令、‘0’の場合は汎用命令であるものと認識される。オペコード62は命令種別を示す。拡張ビット63は拡張部の有/無を示す。データ型64はデータ種別及びサイズを示す。データ記憶域65はデータが存在する位置及びデータのアクセス方法を示す。オペランド66はアドレスまたは数値を示す。拡張部については、MSBビット67を除いて、図15に示す従来の命令コードにおける拡張部と略同様である。MSBビット67は、MSBビット61と同じく、オペランド属性付命令と汎用命令とを区別するためのビットである。
【0079】
図3(b)は、汎用命令70の命令コード体系の一例を示す。
汎用命令は、マイクロ命令のようにハードウェアを直接制御できるレベルの命令である。図16に示す従来のマイクロプログラムの命令コードが水平型で80〜100ビット程度であったのに対し、本実施形態の汎用命令は垂直型32ビット構造をとっている。
【0080】
同図に示す汎用命令70は、MSBビット71、命令種別72、及びオペランド部73より成る。
MSBビット71は、上記オペランド属性付命令60のMSBビット61と同じく、当該命令コードがオペランド属性付命令であるか汎用命令であるかを示すビットであり、同図に示す例では汎用命令を示すビットは‘0’である。
【0081】
命令種別72には、演算命令、iMM演算、転送命令、分岐命令等があり、同図には各命令種別毎のオペランド部73の構成例を示してある。演算命令の場合にはオペランド部73は演算種別、モード、RS1、RS2、RDより構成される。同様に、オペランド部73は、iMM演算の場合には演算種別、モード、RD、直接数値より構成され、転送命令の場合には転送制御、パス経路選択、RS1/RD、I/Oレジスタアドレスより構成され、分岐命令の場合には分岐制御、条件選択、分岐アドレスより構成される。
【0082】
図4(a)、(b)は、後に説明する「アプリケーションプログラムに文脈を持たない場合」に対応する命令コード体系の一例を示している。
図4(a)において、オペランド属性付命令80は、基本部と拡張部より成る。基本部は、MSBビット81、オペコード82、拡張ビット83、データ型84、データ記憶域85、オペランド86、及び割込み有効/無効ビット89より成る。
【0083】
割込み有効/無効ビット89以外は上述したオペランド属性付命令60と略同様であるので、説明は省略する。
図4(b)において、汎用命令90は、MSBビット91、命令種別92、オペランド部93、及び割込み有効/無効ビット94より成る。これも同様に、割込み有効/無効ビット94以外は、上述した汎用命令70と略同様であるので、説明は省略する。
【0084】
上記割込み有効/無効ビット89、94は、図2のマシン語生成機能52によりマシン語命令を生成(変換)する際に予め定められた所定のルールに従って付加されるものであり、ここでは、ビット‘1’のとき“割込み有効”、‘ビット0’のとき“割込み無効”を示すものとする。割込み有効/無効ビット89、94を用いる動作については、後に詳述するが、これは上記の様に「アプリケーションプログラムに文脈を持たない場合」に用いられるものである。
【0085】
図5は、図1における割込み制御回路16の構成の一例を示す図である。
同図には、アプリケーションプログラムに文脈を持つ場合に対応する構成を示すが、文脈を持たない場合も“)”判定部111を除いて略同様の構成となる。これについては後に説明する。
【0086】
図5において、フリップフロップ(FF)101-1〜101-nは、“デバック条件割込み”、“デバックSTEP割込み”以外の割込み要因(タスク割込み等)により発生する各割込み要求信号(割込1発生〜割込N発生)を各々入力して、割込み処理終了時に送られてくる割込解除信号(割込1解除〜割込N解除)を入力するまで、これを保持/出力する。尚、“デバック条件割込み”、“デバックSTEP割込み”に関しては、後に図7を参照して説明する。
【0087】
INT割込み要因レジスタ102は、“デバック条件割込み”信号、“デバックSTEP割込み”信号、及びフリップフロップ(FF)101-1〜101-nの各々の出力を入力して一時的に記憶するレジスタ群(またはマルチプレクサ)である。
【0088】
“デバック条件割込み”、“デバックSTEP割込み”信号、及び各フリップフロップ(FF)101-1〜101-nの出力は、ORゲート103に入力される。これより、ORゲート103からは、いずれかの割込み発生時に、割込み要求信号がANDゲート104に出力される。
【0089】
ANDゲート104は、上記割込み要求信号が発生し、且つ後述する文脈の切れ目の条件生成回路10より出力される3つの信号が全て‘1’のときに、iNT信号をORゲート105に出力する。ORゲート105は、iNT信号と上述した以外の他の割込み要因によって発生する割込み信号を入力して、PCの書換指令(PCWT信号)を出力する。尚、特に図示していないが、このPCWT信号によって、PC12の格納アドレスが割込みベクタアドレス(OSによるアプリケーションレベル割込み処理の先頭番地)に書き換えられる構成となっている。また、このとき、次に実行すべきアプリケーションプログラム命令の実行アドレスは、PC12から不図示の退避アドレスレジスタに退避され、割込み処理からの復帰時に再びPC12に書き戻される(これらはOS処理により行われる)。また、上記OSによるアプリケーションレベル割込み処理に移行した後は、上記INT割込み要因レジスタ102の記憶内容を読み出すことにより、OS側で割込み要因を認識できるので、この割込み要因に応じた所定の割込み処理を実行できる。
【0090】
上記文脈の切れ目の条件生成回路110より出力される3つの信号について、以下に説明する。
まず、命令有無フラグ格納部112には、iRG106に有効な命令をフェッチ完了したときに、フラグ‘1’(命令有りを示す)がセットされる。このフラグの値が、ANDゲート104、113の入力となる。
【0091】
ANDゲート113には、この入力と共に上記PCの書換指令信号(PCWT信号)が反転入力している。これより、ANDゲート113の出力は、PCの書き換え動作が起こるとき(PCWT=‘1’)、または命令有無フラグ格納部112に命令有無フラグ‘0’がセットされているとき(例えば未だ命令の読み出し途中等でiRG106に次の命令がセット完了していないとき)、‘0’出力となる。デコーダ107は、ANDゲート104の出力が‘0’のとき、強制的にNOP命令を出力するようになっている。
【0092】
PLR(パイプラインレジスタ)108は、少なくとも、デコーダ107から出力される信号中にMAP許可を示す信号が存在するときにANDゲート104にMAP信号‘1’を出力する機能を有する。すなわち、今実行するμプログラム処理が、アプリケーションプログラムの切れ目に位置する場合、すなわち従来技術で説明したMAP許可(@)のポイントにある場合に、MAP信号‘1’を出力する。
【0093】
“)”判定部111は、iRG106にセットされた命令(次命令)が文脈の切れ目を示す命令(例えば“)”)であるか否か判定し、そうである場合はANDゲート104に‘1’出力する。これについて、以下に、図6を参照して詳細に説明する。
【0094】
図6は、アプリケーションプログラムに文脈を持つ場合のアプリケーションレベル割込みポイントを説明する為の図であり、同図(a)、(b)には文脈を持つプログラム記述方式の一例としてファンクションブロック図(FB図)表現、関数表現を挙げてその割込みポイントを示し、同図(c)にはこれらをマシン語命令に変換(例えば図2で説明したマシン語生成機能により変換)したときの割込みポイントを示す。尚、上記ファンクションブロック図(FB図)表現、関数表現や、後述するニーモニック言語は、PLC(プログラマブルコントローラ)の分野で提供されているプログラム記述方式であり、これら以外にもラダー図等が一般的に知られている。よって、これら各種プログラム記述方式については、特に説明しないが、文脈を持つ場合に対応するのがFB図、関数表現等であり、後述する文脈を持たない場合に対応するのがニーモニック言語等である。
【0095】
尚、同図において、A、B、C、D、Eは、それぞれ、演算に用いられるデータ(あるいはデータが記憶されている記憶素子)を意味する。また、マシン語命令中にある“M”は、不図示のスタックレジスタを意味するものとする。
【0096】
図6(a)は、アプリケーションプログラムをファンクションブロック図表現で記述した例であり、AにBを加算し(A+B)、CからDを減算し(C−D)、これらの積{(A+B)×(C−D)}を求めた結果をEとする処理を表している。
【0097】
図6(b)には、上記図6(a)と同じ処理内容を、関数表現で記述した例を示している。
図6(a)、(b)においては、文脈の切れ目を示すポイントを▲1▼、▲2▼、▲3▼で示している。同じポイントは同じ番号で示している。例えば、図6(a)で▲1▼で示すポイントと、図6(b)で▲1▼で示すポイントは、同じポイントである。そして、例えば図6(b)に示すような関数表現による記述方式では、文脈の切れ目を示すポイントは各閉じ括弧“)”の位置である。これより、図5の“)”判定部111において“)”を検出することは、文脈の切れ目を示すポイント▲1▼、▲2▼、▲3▼を検出することを意味することになる。そして“)”判定部111は、“)”を検出する毎に‘1’出力し、このとき割込要求信号が発生していればiNT信号が出力されることになる(但し、現在実行中の処理が完了するまでは(MAP信号‘1’となるまでは)出力されない)。
【0098】
これは、換言すれば、“)”判定部111によって、文脈の切れ目を示すポイント(アプリケーションレベルの割込みポイント)にきたことが検出される毎に(“)”の1つ前の命令の処理完了を以て)アプリケーションレベルの割込み許可状態となり、このときに割込み要因が発生していれば、割込み処理が開始されることになる。
【0099】
更に詳細に説明するならば、例えば図2の開発ツール51上で上記図6(b)に示す関数表現によるアプリケーションプログラムの記述が行われ、そのオブジェクトが生成されて本実施形態による情報処理装置(PLC等)に転送されると、情報処理装置内のマシン語生成機能52によって例えば図6(c)左側に示すようなマシン語命令に変換される。例えば、図6(b)に示す加算の関数表現(+AB)は、マシン語生成機能52によって、図6(c)左側に示すマシン語命令「LD A M」、「LD B M」、「ADD」、「LD “)”」に変換され、アプリケーション/OSプログラムメモリ1に格納される。すなわち、本実施形態による情報処理装置のマシン語生成機能52は、文脈の切れ目を示す部分“)”に対してマシン語命令「LD “)”」を生成する機能を有する。尚、図6(c)右側には各マシン語命令に応じて演算実行部20で実行される処理内容を示してある。
【0100】
そして、このプログラム実行時には、このマシン語命令が、順次、命令レジスタ11にフェッチされ実行されていき、マシン語命令「ADD」に対応する処理がデコーダ2及びPLR3により実行完了し且つ次命令である「LD “)”」が命令レジスタ11にフェッチ完了する状態になったとき、(“)”判定部111が次命令“)”を判定することを以て)文脈の切れ目の条件生成回路110からの3つの出力が全て‘1’になり、アプリケーションレベルの割込み許可状態となる。そして、このとき割込要求信号が発生していれば、ANDゲート104からiNT信号が出力されるので、割込み処理へと移行することになる。逆に言えば、文脈の切れ目まで処理が行われるまでは割込み要求があっても割込み許可されない。
【0101】
尚、図6(c)左側に示す例においては、「SUB」と「LD “)”」の間、「MLT」と「LD “)”」の間においてもアプリケーションレベルの割込み許可状態となる。また、尚、「LD “)”」は、“)”判定部111での判定用に追加されているマシン語命令であるので、その処理内容は“NOP”(無処理)となるようにされている。
【0102】
上述したように、本実施形態による情報処理装置では、アプリケーションプログラムに文脈を持つ場合、当該アプリケーションプログラムのオブジェクトが開発ツール51等からダウンロードしマシン語生成機能52によりマシン語命令を生成する際に、マシン語生成機能52は文脈の切れ目を示す命令(LD “)”)等も生成する。そして、プログラム実行時には、この命令(LD “)”)を利用して、割込み許可/不許可を制御する。
【0103】
次に、上述してあるように、特にPLCにおいては、アプリケーションレベルの割込み処理には、タスク割込みの他に、各種デバック制御処理がある。デバック制御処理の割込みには、“デバック条件割込み”、“デバックSTEP割込み”等があり、これらは図5においてはORゲート103に入力する。
【0104】
尚、ここで、“デバック条件割込み”は、アプリケーションプログラムのPC一致、実行アドレス一致、実行データ判定等の条件において発生するものであり、アプリケーションプログラムの実行を停止させたり、条件成立時にアプリケーションプログラムが使用する所定のデータメモリのデータを収集する為等に使用される。尚、この“デバック条件割込み”が受け付けられると、その制御は、当該割込みによって起動されるOSの条件一致割込み処理(特に説明しない)により行われる。
【0105】
また、“デバックSTEP割込み”は、アプリケーションプログラムのSTEP単位(例えば、図6の例では、加算、減算、乗算という関数実行の単位)が完了した時点で発生する割込みであり、STEP単位でデバックを行う必要がある場合等に用いられる。尚、この“デバックSTEP割込み”が受け付けられると、その制御は、当該割込みによって起動されるOSのSTEP割込み処理(特に説明しない)により行われる。
【0106】
以下、図7を参照して、これらデバック割込み信号の生成回路について説明する。
図7は、アプリケーションに文脈を持つ場合の各種デバック割込み信号の生成回路の構成の一例を示す図である。
【0107】
同図において、デバック条件成立判定回路121は、上述したアプリケーションプログラムのPC一致、実行アドレス一致、実行データ判定等の条件が成立するか否かを判定し、成立した場合に‘1’出力する回路である。
【0108】
フリップフロップ(FF)122は、デバック条件成立判定回路121においてデバック条件成立が判定され‘1’出力されると、OSからの条件割込み解除指令があるまで、このデバック条件成立状態を保持するJ/Kフリップフロップである。FF122の保持/出力は、ANDゲート124の一方の入力となる。
【0109】
デバッグコマンドレジスタ123は、“デバック条件割込み許可”信号、“デバッグSTEP割込み許可”信号を入力して、これを一時保持/出力するレジスタ群である。“デバック条件割込み許可”信号の保持/出力は、ANDゲート124の他方の入力となる。
【0110】
これより、ANDゲート124は、デバック条件成立状態で且つデバック条件割込み許可がでたとき、デバック条件割込み信号を、図5のORゲート103へ出力する。
【0111】
次に、“デバックSTEP割込み”信号の生成について、以下に説明する。
まず、命令有無フラグ131、ANDゲート132、iRG133、デコーダ134、“)”判定部135、及びPLR136については、図5において説明した文脈の切れ目の条件生成回路110に係わる構成と略同様であるので、ここでは詳しくは説明しない。尚、これら131〜136の構成は、図5の106〜113の構成をそのまま利用するものであってもよいし、新たに設けるものであってもよい。
【0112】
図7において、有効命令実行フラグ格納部137は、iRG133に有効な次命令のフェッチが完了しているとき(すなわち命令有無フラグ格納部131の出力が‘1’のとき)であって且つPC書換指令(PCWT)が発生していないとき‘1’となるフラグ(有効命令実行フラグ)を格納している。尚、有効命令実行フラグ=‘1’は、次のクロックサイクルでPLR3(136)によって有効な命令の実行がなされることを意味する。PLR136からは、マシン語の1命令に対応する処理の実行完了時に上記MAP信号‘1’が出力される。これより、ANDゲート138は、現在のクロックサイクルでPLR3によるマシン語の1命令の処理が完了することが示され(MAP信号)且つ次のクロックサイクルでPLR3によって有効命令が実行されることが示されたとき(有効命令実行フラグ)、‘1’出力する。ANDゲート138の‘1’出力は、ORゲート139、140を介してANDゲート125の一方の入力となる。このときANDゲート125の他方の入力であるデバックSTEP割込み許可信号が‘1’(割込み許可)である場合、ANDゲート125からデバックSTEP割込み信号が出力され、図5のORゲート103に入力する。その後は、図5に示す回路によって、所定の条件下で、PC書換指令(PCWT)が発生することになる。
【0113】
尚、ここで、ANDゲート141とFF142は、ANDゲート138の出力が‘1’となった後にその次の命令がフェッチ未完であっても(iRG133に次の命令をセット完了するまでの間)ANDゲート138の‘1’出力状態を保持する為の構成であり、これよりANDゲート125への入力を継続して‘1’にしておくことができる。詳細には、ANDゲート138の出力が‘1’で命令有無フラグが‘0’のときANDゲート141の出力が‘1’となり、FF142は、これを保持/出力(Q)する。そして、その後は、ANDゲート143からFF142のK入力端子に‘1’入力されるまで、すなわちiRG133にフェッチ完了した命令が文脈の切れ目を示す命令(上記「LD “)”」等)であることを“)”判定部135が判定するまで、FF142は‘1’を保持/出力(Q)する。
【0114】
また、尚、ANDゲート144とFF145は、アプリケーションプログラムのSTEP実行が完了し、次命令(上記「LD “)”」等)がフェッチされ、STEP完了によるiNT信号が生成されたことを記憶保持する回路である。上記FF122、FF145は、OSが所定のデバッグ処理(OSの条件割込み処理、STEP割込み処理)を完了したときにOSから出される解除指令によりリセットされる。
【0115】
本実施形態の情報処理装置では、デバッグ処理時には上述したようにして“デバック条件割込み許可”信号、“デバッグSTEP割込み許可”信号を生成して割込み処理に移行し、OSプログラム内のデバッグ処理プログラムを起動する。
【0116】
次に、アプリケーションプログラムが文脈を持たない場合について図8を参照して説明する。
図8(a)にはアプリケーションプログラムが文脈を持たない場合の一例としてニーモニック表現によるプログラム記述例を示し、これに応じて生成されるマシン語とその処理内容例を図8(b)に示す。
【0117】
例えば、図8(a)に示すようなニーモニック表現による命令列(「LD A」、「ADD B」、「SUB C」、「MLT D」、「ST E」)によるプログラムを、図2の開発ツール51上で作成し、そのオブジェクトを本実施例の情報処理装置にダウンロードすると、マシン語生成機能52によって図8(b)に示すように上記命令列に対応するマシン語命令が生成される。その際、本実施例の情報処理装置内のマシン語生成機能52は、予め決められた所定のルールに従って割込み許可/不許可を示す割込み有効/無効ビットを自動生成して各マシン語命令に付加する。例えば同図に示すように、割込み許可を示すべきポイントにあるマシン語命令に割込み有効ビット‘1’を付加する。尚、他のマシン語命令に、割込み無効を示すビット‘0’を付加するようにしてもよい。
【0118】
上記所定のルールは、例えば、上記5つの命令の各々に対応するマシン語命令を生成する際、1つの命令に対して複数のマシン語命令が生成された場合(例えば「ADD B」は、「LD B M」と「ADD」の2つのマシン語命令に変換されている)、最初のマシン語命令に対してのみ割込み有効ビット‘1’を付加するというルールである。尚、1つの命令に対して1つのマシン語命令が生成される場合は(例えば「ST E M」)、そのまま割込み有効ビット‘1’を付加する。但し、命令列の最も最初の命令(「LD A」)に対しては割込み有効ビットは付加しない。
【0119】
ここで、本実施例のアプリケーションプログラムが文脈を持たない場合における割込み制御回路の構成は、特に図示しないが、図5に示した文脈を持つ場合の回路構成と比べ、1つを除いて略同様である。すなわち、文脈を持たない場合の割込み制御回路は、図5に示す割込み制御回路において、“)”判定部111の代わりに上記割込み有効ビットの判定部を設けて成る構成である。
【0120】
そして、プログラム実行時には、上記マシン語命令が、順次、命令レジスタ11にフェッチされ実行されていき、例えば、実行状況が「LD A M」と「LD B M」の間にあるとき、すなわち「LD A M」に対応する処理がデコーダ2及びPLR3により実行完了し且つ次命令である「LD B M」が命令レジスタ11にフェッチされている状態であるとき、本実施例におけるアプリケーションレベルの割込みポイントとなる。このとき、上記判定部111の代わりに設けられた割込み有効ビットの判定部(不図示)は、命令レジスタ11にフェッチされた次命令「LD B M」に付加されている割込み有効ビット‘1’を検出して、ANDゲート104に‘1’出力する。あとは、図5の場合と略同様に、命令有無フラグ格納部112に格納されているフラグが‘1’で且つPLR108よりMAP信号‘1’が出力されるとき割込み許可状態となり、ORゲート103より割込要求信号が発生していれば、ANDゲート104よりiNT信号が出力され、所定の割込み処理へと移行する。
【0121】
アプリケーションプログラムが文脈を持たない場合の“デバック条件割込み”、“デバッグSTEP割込み”に対応する回路構成についても、同様に、図7における“)”判定部135の代わりに上記割込み有効ビットの判定部を設けること以外は、図7の構成と略同様である。
【0122】
上述したように、アプリケーションプログラムが文脈を持たない場合は、アプリケーションプログラムをマシン語命令に変換する処理部であるマシン語生成機能52に、予め決められた所定のルールに基づいて割込み許可を示す割込み有効ビットを自動生成する機能を持たせることにより、アプリケーションプログラムが文脈を持つ場合と比べ1つを除いて略同様の回路構成で、割込み制御処理を実現できるようになる。
【0123】
尚、上述した例では、アプリケーションプログラムの開発ツール51からプログラムをダウンロードしマシン語生成機能52によってマシン語を生成する際に所定のルールに従って割込み有効ビットを付加するようにしているが、これに限るものではない。システム設計者用の開発ツール53からオペランド属性付命令及び汎用命令に付加される割込み有効ビットを自由に書き換えできるようにすることも可能である。これによって、情報処理装置内のマシン語生成機能52が未だ開発されていない段階においても、マシン語と割込み制御回路のH/W(ハードウェア)検証が行える。
【0124】
次に、図9を参照して、OSプログラムのデバッグの為のデバッグモニタ割込みの制御例について説明する。
図9は、OSプログラムのデバッグモニタ割込制御回路の一例を示す図である。
【0125】
同図において、デバック条件成立判定回路151は、PC一致、実行アドレス一致、実行データ判定等の条件が成立するか否かを判定し、成立した場合に‘1’出力する回路である。
【0126】
フリップフロップ(FF)152は、デバック条件成立判定回路151より出力されるデバック条件成立状態‘1’を、条件割込み解除指令があるまで保持するJ/Kフリップフロップである。FF152の保持/出力は、ANDゲート154の一方の入力となる。
【0127】
デバッグコマンドレジスタ153は、OSデバッグ用の“デバックモニタ条件停止割込み許可”信号、“デバッグモニタSTEP割込み許可”信号を入力して、これを一時保持/出力するレジスタ群である。“デバックモニタ条件停止割込み許可”信号の保持/出力は、ANDゲート154の他方の入力となる。
【0128】
これより、ANDゲート154は、デバック条件成立状態で且つOSのデバックモニタ条件停止割込み許可がでたとき、デバックモニタ条件割込み信号を、ANDゲート156へ出力する。
【0129】
ANDゲート156の他方の入力には、PLR166から出力されるMAP信号が入る。尚、ここで、命令有無フラグ格納部161、ANDゲート162、iRG163、デコーダ164、有効命令実行フラグ格納部165、及びPLR166の構成は、有効命令実行フラグ格納部165、及びPLR166の出力先が異なることを除けば、図7の命令有無フラグ格納部131、ANDゲート132、iRG133、デコーダ134、有効命令実行フラグ格納部137、及びPLR136の構成と略同様である。また、“)”判定部135等は、単に、本実施例のOSプログラムのデバッグには関係ないので、示していないだけである。
【0130】
上記のように、ANDゲート156にはデバックモニタ条件割込み信号とMAP信号が入り、両方とも‘1’であるとき‘1’出力する。すなわち、デバックモニタ条件割込み信号が発生しても、現在あるマシン語1命令に対応してPLR3(166)で実行している処理が完了するまでは、OSレベルの割込み信号は生成されない。尚、本実施例はOSプログラムを対象しているので、上記マシン語1命令は汎用命令である。
【0131】
ORゲート157(多入力ORゲート)には、上記ANDゲート156の出力と、後述するデバッグモニタSTEP割込み信号及び当該STEP割込み信号の保持/出力が入力する。ORゲート157の出力は、Dフリップフロップ(FF)158とANDゲート159とにより構成される微分回路によって、1クロックパルス幅のOSレベル割込み信号(DMiNT)にされて、ANDゲート159から出力される。
【0132】
このOSレベル割込み信号(DMiNT)は、ORゲート160において、他の割込み要因(iNT信号や、その他の割込み要因)及び分岐制御回路15等で用いられるPCCHG命令(詳しくは、上記先出願に記載)等とORされる。そして、ORゲート160からPC書換指令(PCWT)が出力され、OSプログラムによるOSレベル割込み処理ルーチン(特に説明しない)へと移行していく。
【0133】
一方、上記デバッグモニタSTEP割込み信号は、ANDゲート155に入力する3つの信号が全て‘1’のとき生成される。すなわち、デバッグモニタSTEP割込み許可信号‘1’、現在実行中の処理が1命令実行完了のポイントであるときPLR166より出力されるMAP信号‘1’、及びiRG163に有効な次命令がフェッチ完了したとき‘1’に切替えられる(但しPC書換指令(PCWT)が発生していないことが条件)有効命令実行フラグ格納部165内の有効命令実行フラグ=‘1’であるとき、ANDゲート155によりデバッグモニタSTEP割込み信号‘1’が生成/出力される。ANDゲート155の出力は、ORゲート157を介して上記微分回路(FF158及びANDゲート159)に入力され、この微分回路により1クロックパルス幅のOSレベル割込み信号(DMiNT)が生成/出力される。一方で、ANDゲート155の出力は、JKフリップフロップ(FF)167により保持/出力される。これより、当該FF167のK端子にPCCHG命令が入力されるまで(すなわちデバッグモニタ処理から被デバッグ処理へ移行するときまで)、ORゲート157の出力は(その後ANDゲートの出力が‘0’になっても)継続して‘1’のままとなる。
【0134】
尚、ANDゲート154出力の“デバッグモニタ条件割込み信号”及びFF167で保持/出力される“デバッグモニタSTEP割込み信号”は、各々、デバッグモニタ割込み要因レジスタ168に入力して一時記憶される。これらは、後のOSデバッグモニタ処理における割込み要因解析の為に用いられる(データバスを介して読み出される)。
【0135】
上述したように、OSプログラムのデバッグの為のOSレベル割込み制御においては、基本的には、現在実行中のマシン語命令の処理が完了すれば割込み処理への移行を許されることになる(STEP割込みでは、更に、有効命令実行フラグが‘1’であること、すなわち次命令のフェッチ完了し且つ他割込要因等によるPC書換指令が発生していないことが条件となる)。
【0136】
次に、情報処理装置に致命的故障(重故障)が発生した場合に対応する割込み信号(TRAP)の生成回路について、以下に図10を参照して説明する。
図10は、上記TRAP割込み信号生成回路の構成の一例を示す図である。
【0137】
同図において、JKフリップフロップ171−1〜171−nは、各々、重故障要因を示す割込み信号(重故障1〜重故障N)を入力して、ORゲート172及び重故障割込み要因レジスタ176へ保持/出力する。ORゲート172の出力は、Dフリップフロップ173及びANDゲート174より構成される微分回路に入力し、この微分回路によって1クロックパルス幅の重故障割込み信号(TRAP)が生成/出力される。ORゲート175には、このTRAP信号以外に、上記iNT、DMiNT信号や、その他の割込み要因により生じる信号が入力され、いずれかの割込み信号が発生したときPC書換指令(PCWT)が出力される。
【0138】
一方で、重故障割込み要因レジスタ176に入力された割込み信号(重故障1〜重故障N)は、ここに一時記憶され、後に起動されるOS重故障割込み処理プログラムにおける要因解析処理に用いられる。
【0139】
上述したように、重故障割込みは、最優先で処理すべき割込みであるので、上記アプリケーションレベル、OSレベルの割込み制御のように割込み有効ポイント(“)”や割込有効ビット)や1命令の処理完了を示すMAP信号が出力されるまで待たされるという様な制限はなく、直ちにPC書換指令が出される。また、本実施例では、上記微分回路を設けたことにより、OSの重故障処理プログラムの介在なしに、多重の重故障割込みが発生しないようにできる。
【0140】
尚、OSプログラム(上記OS重故障割込み処理プログラム)は、故障復旧できると判断した場合は、JKフリップフロップ171−1〜171−nのK入力端子に対してエラーリセット信号を送る。
【0141】
次に、上記のように起動されるOS重故障割込み処理プログラム側で重故障発生の原因を解析できるようにする構成を図11に示す。
図11は、重故障発生の原因解析に用いられる構成の一例である。
【0142】
同図において、EPC181は、PC12より出力されるフェッチアドレス(次に命令レジスタ11にフェッチさせる命令のメモリ1における格納アドレス)を一時記憶するレジスタ等である。EPC181に一時記憶されたアドレスデータは、次のクロックサイクルでCPC182にシフトされ、EPC181には新たなフェッチアドレスが記憶される。このとき、同時に、CPC182に記憶されていたアドレスデータは、PPC183にシフトされる。このように、CPC182には1クロック前のフェッチアドレスが記憶され、PPC183には2クロック前のフェッチアドレスが記憶される。換言すれば、CPC182には現在PLR3で実行中の命令の格納アドレスが記憶され、EPC181には次に実行させる命令(命令レジスタ11にフェッチされる命令)の格納アドレスが記憶され、PPC183には前回実行された命令の格納アドレスが記憶される。
【0143】
iEPC184、iCPC185、iPPC186は、それぞれ、上記図10の回路により重故障割込み信号(TRAP)が発生したときに、EPC181、CPC182、PPC183に記憶されているアドレスデータを退避させる為の退避レジスタである。
【0144】
これによって、重故障割込み信号(TRAP)に応じて起動されるOS重故障割込み処理プログラム側で、iEPC184、iCPC185、iPPC186に退避されたデータを読み出すことにより、どの命令で重故障が発生したか、またはどのプログラムの命令が原因となって重故障が発生したのかを解析できるようになる。
【0145】
尚、上述した各実施形態の説明では、アプリケーションプログラムのタスク割込み制御処理、アプリケーションプログラムの各種デバック制御処理、OSプログラムのデバッグ処理、または重故障割込み処理等、各処理機能別に分けて説明しているので、便宜上、図7、図9、図10に示す回路を、各々、「デバック割込み信号の生成回路」、「OSプログラムのデバッグモニタ割込制御回路」、「TRAP割込み信号生成回路」と名付けて説明しているが、これらは全て図1に示す命令フェッチ制御回路10内の割込み制御回路16に含まれるものであってもよい。また、上述してあるように、図7、図9、図10に示す回路は、互いに、または図5に示す回路を共有する回路構成要素を持つものであってもよい。
【0146】
尚、上記実施形態では、PLCを例にして説明したが、これに限るものではなく、他の情報処理装置にも適用できる。
また、本発明の割込み制御方式は、上記先出願(特願平10−74765号)において第2の実施例として説明した構成に対しても適用できる。
【0147】
【発明の効果】
以上、詳細に説明したように、本発明の情報処理装置、及びその割込み処理方法によれば、オペランド属性付命令と汎用命令とより成る統合命令コード体系を用意し、1階層のプログラム実行制御処理系を実現することにより、小型化、高速処理、低コスト等の効果が得られる情報処理装置において(アプリケーションプログラムとOSプログラムの両方を同一の実行制御回路により動作させる環境下において)、アプリケーションレベルの割込みとOSレベルの割込みを独立に制御することができる。
【0148】
また、更に、重故障割込み制御において、TRAP割込み時の現実行PC、前回実行PC、次回実行PCの各々の退避レジスタを備え、OSプログラム側で読み出すことができるようにしたことにより、プログラムのどこで異常が起こったのか、またはプログラムのどこが原因となって異常が起こったのかを解析することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態による情報処理装置の構成を示すブロック図である。
【図2】アプリケーション/OSプログラムメモリの格納内容とプログラム開発環境を説明する為の図である。
【図3】「アプリケーションプログラムに文脈を持つ場合」に対応する命令コード体系の一例を示す図であり、(a)はオペランド属性付命令、(b)は汎用命令の命令コード体系の一例を示す。
【図4】「アプリケーションプログラムに文脈を持たない場合」に対応する命令コード体系の一例を示す図である。
【図5】図1における割込み制御回路の構成の一例を示す図である。
【図6】アプリケーションプログラムに文脈を持つ場合のアプリケーションレベル割込みポイントを説明する為の図である。
【図7】アプリケーションに文脈を持つ場合の各種デバック割込み信号の生成回路の構成の一例を示す図である。
【図8】(a)はアプリケーションプログラムが文脈を持たない場合の一例としてニーモニック表現によるプログラム記述例を示し、(b)はこれに応じて生成されるマシン語とその処理内容例を示す。
【図9】OSプログラムのデバッグモニタ割込制御回路の一例を示す図である。
【図10】TRAP割込み信号生成回路の構成の一例を示す図である。
【図11】重故障発生の原因解析に用いられる構成の一例である。
【図12】従来のマイクロプログラム処理方式による情報処理装置の構成の一例を示すブロック図である。
【図13】(a)は1クロックで終る場合の動作タイミング、(b)は複数クロックかかる場合の動作タイミングを示す図である。
【図14】従来のプログラムの開発ルートを説明する為の図である。
【図15】従来のアプリケーションプログラムの命令コード(マシン語)の一例を示す図である。
【図16】従来のマイクロプログラムの命令コードの一例を示す図である。
【図17】割込み処理を説明する為の図である。
【符号の説明】
1 アプリケーション/OSプログラムメモリ
2 デコーダ
3 PLR
4 データメモリ
10 命令フェッチ制御回路
11 命令レジスタ
12 PC(プログラムカウンタ)
13 PCスタック
14 プログラムメモリ転送制御回路
15 分岐制御回路
16 割込み制御回路
20 演算実行部
21 キャッシュレジスタ
22 各種演算器/データ変換器
23 MPX
30 データメモリ転送制御回路
31 アドレス生成デコーダ
32 MPX
33 MAR
34 デコーダ
35 PLR
40 プログラムメモリ
41 OSプログラム
42 システム組込みマクロ関数
43 アプリケーションプログラム
51 開発ツール
52 マシン語生成機能
53 開発ツール(システム設計者専用)
60 オペランド属性付命令(文脈を持つ場合)
61 MSBビット
62 オペコード
63 拡張ビット
64 データ型
65 データ記憶域
66 オペランド
70 汎用命令(文脈を持つ場合)
71 MSBビット
72 命令種別
73 オペランド部
80 オペランド属性付命令(文脈を持たない場合)
81 MSBビット
82 オペコード
83 拡張ビット
84 データ型
85 データ記憶域
86 オペランド
87 割込み有効/無効ビット
90 汎用命令(文脈を持たない場合)
91 MSBビット
92 命令種別
93 オペランド部
94 割込み有効/無効ビット
101−1〜101−n フリップフロップ(FF)
102 iNT割込み要因レジスタ
103 ORゲート
104 ANDゲート
105 ORゲート
106 iRG
107 デコーダ
108 パイプラインレジスタ(PLR)
110 文脈の切れ目の条件生成回路
111 “)”判定部
112 命令有無フラグ格納部
113 ORゲート
121 デバッグ条件成立判定回路
122 FF
123 デバッグコマンドレジスタ
124、125 ANDゲート
131 命令有無フラグ格納部
132 ANDゲート
133 iRG
134 デコーダ
135 “)”判定部
136 PLR
137 有効命令実行フラグ格納部
138 ANDゲート
139、140 ORゲート
141 ANDゲート
142、145 FF(JKフリップフロップ)
143、144 ANDゲート
151 デバッグ条件成立判定回路
152、167 JKフリップフロップ(FF)
153 デバッグコマンドレジスタ
154、155、156、159 ANDゲート
157 ORゲート
158 Dフリップフロップ(FF)
160 (多入力)ORゲート
161 命令有無フラグ格納部
162 ANDゲート
163 iRG
164 デコーダ
165 有効命令実行フラグ格納部
166 PLR
168 デバッグモニタ割込み要因レジスタ
171−1〜171−n JKフリップフロップ(FF)
172 ORゲート
173 Dフリップフロップ(FF)
174 ANDゲート
175 ORゲート
176 重故障割込み要因レジスタ
181 EPC
182 CPC
183 PPC
184 iEPC
185 iCPC
186 iPPC
Claims (10)
- アプリケーションレベルの転送命令であるオペランド属性付命令と、ハードウェアを直接制御できるレベルの命令である汎用命令とより成る統合命令コード体系に従って生成されたアプリケーションプログラムとOSプログラムの命令群を格納する命令格納手段と、
該命令格納手段をアドレス制御して前記アプリケーションプログラムまたはOSプログラムの命令を読み出し/実行させる1階層のプログラム実行制御手段と、
該1階層のプログラム実行制御手段により実行制御されるプログラムのレベルまたは処理内容あるいは構造に応じて各々定められている所定の条件が満たされるとき割込み有効とする割込み制御手段と、
を有し、アプリケーションレベルの割込み制御またはアプリケーションプログラムのデバッグを行う場合、前記割込み制御手段は、前記アプリケーションプログラムが文脈をもつ関数構造の場合には、少なくとも前記1階層のプログラム実行制御手段により読み出された命令が文脈の切れ目を示す命令であることを条件として割込み有効/無効を制御することを特徴とする情報処理装置。 - 前記アプリケーションプログラムのデバッグにおいてSTEP割込み制御を行う場合、前記割込み制御手段は、現在実行されている命令が実行完了しても次の命令がフェッチ完了していないとき前記命令の実行完了状態を保持しておき、フェッチ完了した次の命令が文脈の切れ目を示す命令であるときSTEP割込処理へ移行すると共に前記実行完了状態をクリアすることを特徴とする請求項1記載の情報処理装置。
- アプリケーションレベルの転送命令であるオペランド属性付命令と、ハードウェアを直接制御できるレベルの命令である汎用命令とより成る統合命令コード体系に従って生成されたアプリケーションプログラムとOSプログラムの命令群を格納する命令格納手段と、
該命令格納手段をアドレス制御して前記アプリケーションプログラムまたはOSプログラムの命令を順次フェッチして、分岐制御手段により分岐制御を行うことで命令を実行させる1階層のプログラム実行制御手段と、
該1階層のプログラム実行制御手段により実行制御されるプログラムのレベルまたは処理内容あるいは構造に応じて各々定められている所定の条件が満たされるとき割込み有効とする割込み制御手段と、
を有することを特徴とする情報処理装置。 - アプリケーションレベルの割込み制御またはアプリケーションプログラムのデバッグを行う場合、前記割込み制御手段は、前記アプリケーションプログラムが文脈をもたない構造の場合には、少なくとも前記1階層のプログラム実行制御手段により読み出された命令に割込み有効を示すビットが付加されていることを条件として割込み有効/無効を制御することを特徴とする請求項3記載の情報処理装置。
- 前記割込み有効を示すビットは、作成されたアプリケーションプログラムを前記オペランド属性付命令または汎用命令より成る命令群に変換する際に、予め定められた所定のルールに従って所定の命令に付加されることを特徴とする請求項4記載の情報処理装置。
- 前記割込み有効を示すビットは、外部の装置から有効/無効切替えを行えることを特徴とする請求項4記載の情報処理装置。
- OSプログラムをデバッグする場合は、前記割込み制御手段は、割込み要因発生時に実行中の命令の処理完了を以て割込み有効とすることを特徴とする請求項3記載の情報処理装置。
- 前記割込み制御手段は、致命的故障によって発生した割込み要因は無条件で割込み有効とすることを特徴とする請求項3記載の情報処理装置。
- 前記致命的故障による割込み発生時に実行中の命令と該命令の前に実行された命令及び次に実行される命令を示す情報を保持する保持手段を更に備え、該保持手段に保持された情報に基づいて前記致命的故障の発生原因を解析させることを特徴とする請求項8の情報処理装置。
- 1階層のプログラム実行制御回路によって、アプリケーションレベルの転送命令であるオペランド属性付命令またはハードウェアを直接制御できるレベルの命令である汎用命令よりなるアプリケーションプログラムまたはOSプログラムを実行制御する情報処理装置における割込み制御方法であって、
前記オペランド属性付命令または汎用命令を1命令ずつ読み出し、少なくとも該読み出した命令が文脈の切れ目を示す命令ではないときには割込み要求が発生しても割込みを許可しないことを特徴とする割込み制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24868498A JP3716635B2 (ja) | 1998-09-02 | 1998-09-02 | 情報処理装置、及びその割込み制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP24868498A JP3716635B2 (ja) | 1998-09-02 | 1998-09-02 | 情報処理装置、及びその割込み制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000076065A JP2000076065A (ja) | 2000-03-14 |
| JP3716635B2 true JP3716635B2 (ja) | 2005-11-16 |
Family
ID=17181804
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP24868498A Expired - Lifetime JP3716635B2 (ja) | 1998-09-02 | 1998-09-02 | 情報処理装置、及びその割込み制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3716635B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9164697B2 (en) * | 2013-06-24 | 2015-10-20 | Samsung Electronics Co., Ltd. | Method and architecture for highly scalable data storage |
-
1998
- 1998-09-02 JP JP24868498A patent/JP3716635B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000076065A (ja) | 2000-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5430862A (en) | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution | |
| JP2834837B2 (ja) | プログラマブルコントローラ | |
| US6591378B1 (en) | Debug controller in a data processor and method therefor | |
| JP2005317023A (ja) | データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法 | |
| US5321821A (en) | System for processing parameters in instructions of different format to execute the instructions using same microinstructions | |
| US20080201564A1 (en) | Data processor | |
| US4945511A (en) | Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions | |
| JPH03158928A (ja) | データ処理装置 | |
| US7620802B2 (en) | Instruction execution device, debugging method, debugging device, and debugging program | |
| US5850551A (en) | Compiler and processor for processing loops at high speed | |
| US7203819B2 (en) | Program processing device | |
| JPH07120284B2 (ja) | データ処理装置 | |
| JP3716604B2 (ja) | 情報処理装置 | |
| JP2817786B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
| JP3716635B2 (ja) | 情報処理装置、及びその割込み制御方法 | |
| US8438549B1 (en) | Data processing with microcode designed with source coding | |
| US5212779A (en) | System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction | |
| US5361338A (en) | Pipelined system for decomposing instruction into two decoding parts and either concurrently generating two operands addresses of merging decomposing decoding codes based upon the second operand | |
| US20090319994A1 (en) | System for debugging computer program | |
| US5745723A (en) | Data processing system capable of execution of plural instructions in parallel | |
| US5269008A (en) | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer | |
| US7886133B2 (en) | Information processing apparatus and method for accelerating information processing | |
| JP2002163126A (ja) | デバッグ用cpuに内蔵のイベント検出回路、イベント検出方法および外部周辺回路 | |
| EP0591753A2 (en) | A data processor and a debugging apparatus using it | |
| JP2532560B2 (ja) | 高機能な例外処理を行うデ―タ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040218 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041214 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050419 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050620 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050719 |
|
| 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: 20050809 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050822 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080909 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090909 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090909 Year of fee payment: 4 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090909 Year of fee payment: 4 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090909 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100909 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110909 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110909 Year of fee payment: 6 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110909 Year of fee payment: 6 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110909 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120909 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120909 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130909 Year of fee payment: 8 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |