(57)【特許請求の範囲】
【請求項１】
アプリケーションレベルの転送命令およびビットシーケンス命令を行うオペランド属性付命令と、各種演算・ＯＳレベルのデータ転送・各種ハードウェア制御を行うマイクロ命令である汎用命令とより成る統合命令コード体系を備え、
該オペランド属性付命令および一部の汎用命令により記述されるアプリケーションプログラムと、前記汎用命令により記述されるＯＳプログラムを格納するプログラム格納手段と、
該プログラム格納手段に格納されているアプリケーションプログラムまたはＯＳプログラムから順次フェッチした命令に対して、分岐制御手段により分岐制御を行うことで、該プログラム格納手段をアドレス制御して実行させる１階層のプログラム実行制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記プログラム格納手段は、更に、ハードウェアで１クロックで処理できない命令に対応して、該命令を実行させる為のアルゴリズムを組んだマクロ関数を格納し、
前記アプリケーションプログラムは、対応するマクロ関数の識別情報を有する専用の拡張絶対無条件分岐命令を備え、
前記プログラム実行制御手段は、該拡張絶対無条件分岐命令に応じて動作モードをアプリケーション実行モードからＯＳ実行モードへ移すと共に、該拡張絶対無条件分岐命令の識別情報に基づいて実行すべき命令に対応するマクロ関数を起動することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記ＯＳプログラムはアプリケーションプログラムにおける分岐処理用の専用の関数を備え、前記アプリケーションプログラムは、該関数を起動するための専用の拡張絶対無条件分岐命令を備え、前記プログラム実行制御手段は、該拡張絶対無条件分岐命令に応じて、動作モードをアプリケーション実行モードからＯＳ実行モードへ移すと共に前記ＯＳプログラムが備える分岐処理用の専用の関数を起動することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記専用の関数は、サブルーチンをコールする関数、サブルーチン終了を制御する関数であり、ＯＳ実行モードからアプリケーション実行モードに復帰する為の専用の復帰命令と、サブルーチンを番号管理する為のエントリーテーブルと、アプリケーション実行モードに復帰するときの戻り番地を退避／復帰させる手段と、を更に備えることを特徴とする請求項３記載の情報処理装置。
【請求項５】
プログラム開発用ツールで作成したアプリケーションプログラムのオブジェクトを前記プログラム格納手段に格納する際に該アプリケーションプログラムのオブジェクトを前記オペランド属性付命令および一部の汎用命令に変換して前記プログラム格納手段に格納させるマシン語生成手段を更に有し、
前記ＯＳプログラム及びマクロ関数は、専用のＯＳ開発ツールにより、前記汎用命令として生成されて前記プログラム格納手段に格納され、
前記マシン語生成手段は、ＯＳ専用のハードウェア資源を制御する命令は生成できないことを特徴とする請求項１記載の情報処理装置。
【請求項６】
アプリケーションレベルの転送命令およびビットシーケンス命令を行うオペランド属性付命令と、各種演算・ＯＳレベルのデータ転送・各種ハードウェア制御を行うマイクロ命令である汎用命令とより成る統合命令コード体系を備え、
該オペランド属性付命令および一部の汎用命令により記述されるアプリケーションプログラムと、前記汎用命令により記述されるＯＳプログラムを格納するプログラム格納手段と、
該プログラム格納手段に格納されているアプリケーションプログラムまたはＯＳプログラムから順次フェッチした命令に対して、分岐制御手段により分岐制御を行うことで、該プログラム格納手段をアドレス制御して命令を順次読出し実行させる１階層のプログラム実行制御手段と、
該プログラム実行制御手段で読出した命令が前記オペランド属性付命令である場合は該命令をマイクロプログラム制御方式で解釈／実行するマイクロプログラム制御処理手段と、
を有することを特徴とする情報処理装置。
【請求項７】
前記マイクロプログラム中の命令であるマイクロ命令レベルのデータ転送命令中にモード切替用ビットを設け、該モード切替用ビットの値に応じてアプリケーションレベルのデータ転送モードと前記マイクロ命令レベルのデータ転送モードとを切替えることを特徴とする請求項６記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置に関する。
【０００２】
【従来の技術】
情報処理装置は、一般的に、その多くがマイクロプログラム制御方式を採用している。これは、命令（マシン語）より一段下位のレベルのマイクロ命令（命令のレベルで指定する動作より簡単な基本的な動作を指定するもの）を用いて、命令で規定されている機能を実現する為の制御信号を作り出すものである。マイクロ命令は、通常、それぞれの機種に応じて決められた長さのbit 長をもち、data系のregister類等の機能ブロックとその接続関係に対応して幾つかのフィールドが定義されている。
【０００３】
図１１は、従来のマイクロプログラム制御方式による情報処理装置の構成の一例を示すブロック図であり、同図には一例としてＰＬＣ（プログラマブル・コントローラ）の構成図を示す。尚、プログラマブル・コントローラは通常ＰＣと略すが、後述するＰＣ（プログラムカウンタ）と混同するので、ここではＰＬＣというものとする。
【０００４】
同図に示すＰＬＣは、アプリケーションプログラムメモリ５０１、データメモリ５０２、マイクロ（μ）プログラムメモリ５０３、デコーダ５０４、ＰＬＲ（パイプラインレジスタ）５０５、命令フェッチ制御回路５１０、μ−ＳＱＣ（μシーケンサ）５２０、演算実行部５３０、及びデータメモリ転送制御回路５４０等より構成される。
【０００５】
アプリケーションプログラムメモリ５０１は、アプリケーションプログラムを格納するメモリである。このアプリケーションプログラムは、主にユーザ側で後述する開発ツール（プログラミングツール）を用いて設計されたラダー図等のプログラムが、ＰＬＣ側の変換／逆変換機能によってそのＰＬＣで用いられる形式に変換されたものである。尚、逆変換機能は、ＰＬＣ側で得たＲＡＳデータ等を開発ツール（モニタ装置）に送信する際、及びＰＬＣ側に格納されたプログラムを開発ツールに読み込む際等に用いられる。
【０００６】
データメモリ５０２は、アプリケーションプログラム及びＯＳ（オペレーティングシステム）において使用する各種データを格納する外部データメモリであり、例えば制御対象機器の稼働状況を示すセンサ計測値やデータ等を一時的に記憶するＲＡＭ等である。
【０００７】
マイクロ（μ）プログラムメモリ５０３は、μ−ＯＳプログラムを格納すると共にアプリケーションプログラムの命令のインタプリタを格納するメモリである。ここでμ−ＯＳプログラムについて説明しておく。ＰＬＣ内には、メーカー側で予め作成して格納しておくシステムプログラムが存在するが、このシステムプログラムがマイクロ命令レベルの命令群として格納されているものをここではμ−ＯＳプログラムと呼ぶ。
【０００８】
デコーダ５０４は、マイクロ（μ）プログラムメモリ５０３から出力されるμ命令をデコードし、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種Ｈ／Ｗ（ハードウェア）の制御信号を生成し、これをＰＬＲ５０５及びデータメモリ転送制御回路５４０内のＰＬＲ５４５に出力する。
【０００９】
ＰＬＲ（パイプラインレジスタ）５０５は、デコーダ５０４から出力される各種制御信号をパイプライン方式で記憶し、各種Ｈ／Ｗブロックにこれら制御信号を接続するレジスタであり、フェッチ動作（命令レジスタへの命令格納）と命令実行動作のパイプライン動作を可能にするものである。
【００１０】
命令フェッチ制御回路５１０は、アプリケーションプログラムの命令フェッチ動作を制御する回路であり、命令レジスタ５１１、ＰＣ（プログラムカウンタ）５１２、ＰＣスタック５１３、及びプログラムメモリ転送制御回路５１４より構成される。
【００１１】
命令レジスタ５１１は、上記プログラムメモリ５０１に格納されているアプリケーションプログラムを１命令ずつフェッチし出力するレジスタである。ＰＣ５１２は、次に実行すべき（あるいは実行中の）命令が記憶されているプログラムメモリ５０１のアドレスを保持し１命令実行毎に＋１インクリメントするカウンタである。ＰＣスタック５１３は、例えばサブルーチンコール時にＰＣ５１２の格納内容を一時退避させ、リターン時に退避データをＰＣ５１２に復帰させるためのスタックである。プログラムメモリ転送制御回路５１４は、後述するμ−ＯＳ（マイクロオペレーティングシステム）プログラムの制御下のもとに、上記プログラムメモリ５０１のアクセス制御及びＰＣ５１２／ＰＣスタック５１３の動作を制御する回路である。
【００１２】
μ−ＳＱＣ（マイクロシーケンサ）５２０は、マイクロプログラムの実行制御（マイクロプログラムメモリのアドレス制御）を行う回路であり、デコーダ５２１、μ−ＰＣ（マイクロプログラムカウンタ）５２２、アダー５２３、μ−ＰＣスタック５２４、及びＭＰＸ（マルチプレクサ）５２５より構成される。
【００１３】
デコーダ５２１は、命令フェッチ制御回路５１０内の命令レジスタ５１１から出力される１命令をデコードし、この１命令を解釈実行する処理（以後、“インタプリタ”という）が格納されているμプログラムメモリ５０３のアドレス（以後、“ＭＡＰアドレス”という）を生成／出力する。
【００１４】
μ−ＰＣ５２２は、μプログラムメモリ５０３に格納されているプログラムを順次実行していく為のＰＣ（アドレスレジスタ）であり、アダー５２３とペアで使用することにより“＋１”インクリメントするカウンタを構成する。
【００１５】
μ−ＰＣスタック５２４は、マイクロプログラムの実行処理において、サブルーチンコール時にμ−ＰＣ５２２を一時退避させ、リターン時にμ−ＰＣ５２２を復帰する為のスタックである。
【００１６】
ＭＰＸ５２５は、μプログラムメモリ５０３のアドレスを選択するマルチプレクサであり、デコーダ５２１から出力される“ＭＡＰアドレス”、μ−ＰＣ５２２からの出力（アダー５２３で＋１加算された順序アドレス）、μ−ＰＣスタック５２４から出力されるサブルーチンリターンアドレス、及び上記ＰＬＲ５０５から出力されるマイクロプログラムの分岐アドレス（ＪＭＰ、ＣＡＬＬ）の中から、選択的にμプログラムメモリ５０３（及びアダー５２３にも）へ出力する。
【００１７】
演算実行部５３０は、キャッシュレジスタ間、及びＩＭＭデータ（後述する“直接数値”）とレジスタ間の各種演算及び各種データ変換を実行する機能ブロックであり、キャッシュレジスタ５３１、各種演算器・データ変換器５３２、及びＭＰＸ５３３より構成される。
【００１８】
キャッシュレジスタ５３１は、各種演算・データ変換で使用するデータを記憶したり、各種Ｈ／Ｗ（ハードウェア）レジスタ・外部メモリとのデータ転送に使用されるデータを格納するレジスタである。
【００１９】
各種演算器・データ変換器５３２は、アプリケーションプログラム及びμ−ＯＳプログラムの指示に従って、各種算術／論理演算、シフト、ＢＤＣ／ＤＢＣ等の演算・データ変換処理を行う。
【００２０】
ＭＰＸ５３３は、各種演算器・データ変換器５３２による演算結果出力とデータメモリ５０２から読み出したデータ（リードデータ）とを、選択的にキャッシュレジスタ５３１に出力する。
【００２１】
データメモリ転送制御回路５４０は、アプリケーションプログラム及びμ−ＯＳプログラムにおいて、データメモリ５０２をアクセスするときの制御を行う回路であり、アドレス生成デコード５４１、ＭＰＸ５４２、ＭＡＲ５４３、デコーダ５４４、及びＰＬＲ５４５より構成される。
【００２２】
アドレス生成デコード５４１は、命令フェッチ制御回路５１０の命令レジスタ５１１から出力されるアドレスオペランドに基づいて、不図示の記憶域に記憶されているオペランドデータ型より、アプリケーションプログラムからのデータメモリアクセス時のアドレスを生成する。
【００２３】
ＭＰＸ５４２は、μ−ＯＳプログラムがデータメモリ５０２をアクセスするアドレス（キャッシュレジスタ５３１の出力Ａ）と、アプリケーションプログラムからのデータメモリ５０２アクセス時のアドレス（アドレス生成デコード５４１の出力）を入力して、両者から選択して、ＭＡＲ５４３及びデコーダ５４４へ出力する。
【００２４】
ＭＡＲ（メモリアドレスレジスタ）５４３は、ＭＰＸ５４２から出力されるμ−ＯＳプログラムまたはアプリケーションプログラムからのデータメモリ５０２アクセス時のアドレスを記憶するレジスタである。尚、アプリケーションプログラムからのアドレス格納タイミングは、ＰＬＲ５０５への各種制御信号の格納タイミングと同時である。
【００２５】
デコーダ５４４は、上記ＭＰＸ５４２の出力を入力し、データメモリ５０２のアクセス選択信号ＣＳを生成／出力する。
ＰＬＲ５４５は、デコーダ５４４の出力（アクセス選択信号ＣＳ）とデコーダ５０４の出力（各種データメモリ転送制御信号）を、各々パイプライン方式で記憶し、これらの出力信号をデータメモリ５０２に接続するためのレジスタである。ＰＬＲ５４５は、フェッチ動作（命令レジスタへの命令格納）と転送実行動作のパイプライン動作を可能にする。
【００２６】
上記構成の従来の情報処理装置（ＰＬＣ）の動作の概要について、以下に説明する。尚、図１１にはＰＬＣの全ての構成を示しているわけではなく、また同図に示す構成ブロック間の全ての配線を示しているものでもない。
▲１▼システムリセットが解除後に、μ−ＰＣ５２２が“０”となって、μ−ＳＱＣ（マイクロシーケンサ）５２０の制御下のもとに、μプログラムメモリ５０３上のμ−ＯＳプログラムが実行されて、プロセッサ全体のＨ／Ｗ（ハードウェア）初期化が行われる。これよりアプリケーションプログラムを実行できる環境が構築され（ＰＣ５１２の初期値セット等）、システムスタートコマンド待ち状態となる。
▲２▼μ−ＯＳプログラムは、システムスタートコマンドを認識すると、命令フェッチ制御回路５１０にアプリケーションプログラムの実行を許可する。この時、μ−ＳＱＣ５２０は、デコーダ５２１からのアプリケーションプログラム待ち状態となる。
▲３▼命令フェッチ制御回路５１０は、アプリケーションプログラムメモリ５０１から、ＰＣ５１２が指示するアドレスの命令コードをフェッチし、命令レジスタ５１１に格納する。そして、ＰＣ５１２を自動的にインクリメントして、上記メモリ５０１から次の命令コードのフェッチを行う処理を繰り返す。
▲４▼命令レジスタ５１１より出力される命令コードは、μ−ＳＱＣ５２０のデコーダ５２１でデコードされる。これより、その命令をインタプリト実行するμプログラムメモリ上に処理アドレスが生成される。デコーダ５２１から出力されるアドレス情報は、ＭＰＸ５２５により選択出力されて、μプログラムメモリ５０３のアドレスバスに入力する。これより、μプログラムメモリ５０３から、上記命令コードに対応するμ命令が、デコーダ５０４に出力される。デコーダ５０４は、上記μ命令をデコードし、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種Ｈ／Ｗの制御信号を生成する。そして、ＰＬＲ５０５にこれら各種演算及び転送の制御指令がセットされ、各種Ｈ／Ｗブロックに指令が渡る。
▲５▼転送命令の場合は、このとき同時に、データメモリ転送制御回路５４０内のＭＡＲ５４３にデータメモリ５０２のアドレスがセットされるようになっている。また、同時に、μ−ＳＱＣ５２０の制御下のもとに、μプログラムメモリ５０３から次のμ命令の読み出しが始まる。
【００２７】
演算命令の場合は、演算実行部５３０が所定の演算を実行し、キャッシュメモリに演算結果が格納される。同時に、次のμ命令を読み出してデコーダ５０４でデコードしてＰＬＲ５０５に取り込む処理が始まる。
【００２８】
アプリケーションプログラムの分岐制御は、μ−ＯＳから命令フェッチ制御回路５１０のＰＣ５１２及びＰＣスタック５１３をレジスタアクセスすることにより行われる。
【００２９】
ところで、ここで、アプリケーションプログラムの１命令に対応するμ命令の処理が、１クロックで終る場合もあれば、複数クロックかかる場合もある。この時の、命令フェッチ制御回路５１０内の命令レジスタ５１１への命令コードの取込み、ＰＬＲ５０５へのＨ／Ｗ制御指令のセット、及び演算実行部５３０、データメモリ転送制御回路５４０の動作（キャッシュレジスタ５３１またはデータメモリ５０２へのライト動作等）のタイミングを図１２に示す。
【００３０】
図１２（ａ）は１クロックで終る場合の動作タイミング、図１２（ｂ）は複数クロックかかる場合の動作タイミングを示す。
図１２（ｂ）に示すように、複数クロック掛かる命令の一例として、例えば（＋  Ａ  Ｂ）の演算を行う場合、アプリケーションプログラムの命令コード“ＡＤＤ  Ｂ”に対応するμプログラムの命令コードは“ＬＤ  Ａ”“ＡＤＤ”となり、２クロック掛かる。
【００３１】
尚、図１１では特に図示していないが、ＰＬＲ５０５においてあるアプリケーションプログラム命令に対応する処理が完了するときに、命令フェッチ制御回路５１０に対して命令レジスタ５１１の書き換え許可（マップ許可）が与えられるようになっており、これを図１２（ａ）、（ｂ）において＠で示している。
【００３２】
次に、従来のプログラム開発環境について説明する。
図１３は、従来のプログラムの開発ルートを説明する為の図である。
アプリケーションプログラムの開発は、主にユーザ側において、図１３（ａ）に示すアプリケーションプログラムの開発ツール５５０上でプログラマ等がプログラムを作成すると（例えばプログラミングツール上でラダー回路図等を作成すると）、そのオブジェクトが生成されて、アプリケーションプログラムメモリ５０１に格納される。このとき、メモリ５０１に格納されるアプリケーションプログラムの命令コードは、例えば図１４に示す形式となっている。これについては後に説明する。
【００３３】
一方、μプログラムの開発は、主にＰＬＣメーカー側において、図１３（ｂ）に示すシステム設計者専用のμプログラム開発ツール５６０により、システム設計者がμ−ＯＳとインタプリタをプログラミング開発すると、これらのオブジェクトが生成されて、μプログラムメモリ５０３に格納される。このとき、メモリ５０３に格納されるμ−ＯＳとインタプリタの命令コードは、例えば図１５に示す形式となっている。これについては後に説明する。尚、μ−ＯＳは各種Ｈ／Ｗ制御やアプリケーションプログラムの実行管理を行うものであり、インタプリタはアプリケーションプログラムの解釈実行を行う為のものである。
【００３４】
図１４は、従来のアプリケーションプログラムの命令コード（マシン語）の一例を示す図である。
同図において、命令コードは、基本部（３２ビット）と拡張部（３２ビット）とにより構成される。基本部は、命令種別を示すオペコード、当該命令の命令形態が基本部のみか基本部＋拡張部であるかを示す拡張ビット、データ種別及びサイズを示すデータ型、データが存在する位置及びデータのアクセス方法（間接アクセス）を示すデータ記憶域（これらをまとめてオペランド種別という）、及びアドレスまたは数値を示すオペランド（１６ビット）から構成される。
【００３５】
オペコードとしては、例えば、ＡＤＤ、ＳＵＢ、ＭＬＴ、ＢＤＣ、ＤＢＣ、ＬＤ、ＳＴ等がある。データ型としては、例えば、ビット型、ビット反転型、１語整数型、２語整数型、実数型等がある。データ記憶域には、式（または前回の演算結果値）、定数、メモリ、インデックス、メモリ間接、パラメータ等が格納される。
【００３６】
オペランドは、アドレスの場合、基本部のみのときには１６ビットアドレス、基本部＋拡張部のときには３２ビットアドレスとなる。一方、数値の場合、基本部のみのときには１６ビット直接数値、基本部＋拡張部のときには３２ビット直接数値となる。アドレスまたは数値のオペランドが１６ビットを越えた場合に、基本部＋拡張部の命令形態となる。このとき、基本部の拡張ビットは‘１’になっている。命令フェッチ制御回路５１０は、基本部の拡張ビットが‘１’であるときには、基本部と拡張部がそろった時点でこの命令コードを命令レジスタ５１１へ書込む。
【００３７】
図１５は、従来のマイクロプログラムの命令コード（マイクロ命令）の一例を示す図である。
同図に示すように、マイクロプログラムの命令コードは、μ−ＳＱＣの分岐制御、各種演算・データ転送制御、及び各種Ｈ／Ｗ制御の３つのフィールドで構成される。マイクロ命令は、通常、それぞれの機種に応じて決められた長さのビット長をもつが、一般に１ステップが約８０〜１００ビット程度の命令ビット長になっている。
【００３８】
分岐制御のフィールドは、μプログラムの命令実行順序制御（ＭＡＰ、ＣＯＮＴ、ＪＭＰ、ＣＡＬＬ、ＲＥＴ等）を行うＢＯＰ（ブランチオペレーション）、条件分岐のときの条件選択（Ｓ、Ｚ、ＣＹ、ＯＶＦ等）を行うＴＣ（テストコンディション）、ＪＭＰ、ＣＡＬＬ時のμプログラムの分岐アドレスを示すＢＲＡ（ブランチアドレス）からなる。尚、ＭＡＰは次のアプリ命令を選択させる命令であり、ＣＯＮＴは次アドレスを選択させる命令である。
【００３９】
演算・データ転送制御のフィールドは、１６ビット／３２ビット、符号の有無等を示すＭＤ（演算モード）、演算／データ変換機能の指定（ＡＤＤ、ＳＵＢ、ＭＬＴ、ＢＤＣ、ＤＢＣ等）を行うＡＦＣ（演算ファンクション）、演算時のソース／ディスティネーションレジスタ指定を行う演算ソース／ディスティネーションレジスタ（ＲＳ１、ＲＳ２、ＲＤ）、直接数値間演算時の数値データであるＩＭＭ（直接数値）、各種データ転送制御（ＲＤ、ＷＴ、転送データサイズ等）、演算／転送に必要な各種データパス上のＭＰＸの選択指令を行う各種データパス経路選択からなる。
【００４０】
各種Ｈ／Ｗ制御のフィールドは、各種周辺Ｈ／Ｗの制御に使用されるものであり、例えば各種フラグのセット／リセット等に使用される。
【００４１】
【発明が解決しようとする課題】
上述した従来のマイクロプログラム制御方式を用いる情報処理装置（ＰＬＣ等）においては、２階層のプログラム制御（アプリケーションプログラムメモリの制御とμプログラムメモリの制御）を行うことにより、アプリケーションプログラムの実行とμ−ＯＳによる各種システム制御を行っていた。アプリケーションプログラムを実行する際には、その命令を逐一μプログラムのインタプリタにより解釈実行していた。
【００４２】
このように従来のマイクロプログラム処理方式を用いた情報処理装置（ＰＬＣ等）では、上記のような２階層のプログラム実行制御の処理系が必要である為、以下の問題が生じる。
（１）Ｈ／Ｗ（ハードウェア）量が多くなってしまい、システムのダウンサイジング化が困難である。特に、マイクロプログラムメモリは、制御命令ビット数にもよるが、高速で大規模なメモリが必要となってしまう。例えば図１１に示したＰＬＣの場合には、例えば、(8K〜32K)×(80〜100bit)で２０ns程度の高速で大規模なメモリが必要となっていた為、これを仮に高速ＥＰＲＯＭで構成するとＩＣ１１個程が必要であった。また、上記の様にアプリケーションプログラムメモリ制御処理系とμプログラムメモリ制御処理系の２系統（２階層）の回路があることもＨ／Ｗ（ハードウェア）量が多くなる一因となっている。
（２）上記の様にマイクロプログラムメモリのメモリ容量が大規模となり、マイクロプログラムメモリをＬＳＩの中に入れることができない為に、マイクロプログラムメモリを外部ＲＯＭ等で実現すると、ＲＯＭのアクセスタイムがネックとなり、システムクロック周波数を上げることができないという問題があった。
（３）更に、マイクロプログラムメモリを構成する高速ＥＰＲＯＭは高価であり、これを多数使用すると当然コスト高となってしまう。更に、上記２系統（２階層）のメモリアドレス管理機構が必要であることも、コスト高の原因となっていた。
【００４３】
本発明の課題は、システムのダウンサイジングを可能にし、システムクロック周波数を上げることができ、コストダウン／低消費電力化を実現できる情報処理装置を提供することである。
【００４４】
【課題を解決するための手段】
本発明による第１の情報処理装置は、アプリケーションレベルの転送命令およびビットシーケンス命令を行うオペランド属性付命令と、各種演算・ＯＳレベルのデータ転送・各種ハードウェア制御を行うマイクロ命令である汎用命令とより成る統合命令コード体系を備え、該オペランド属性付命令および一部の汎用命令により記述されるアプリケーションプログラムと、前記汎用命令により記述されるＯＳプログラムを格納するプログラム格納手段と、
該プログラム格納手段に格納されているアプリケーションプログラムまたはＯＳプログラムから順次フェッチした命令に対して、分岐制御手段により分岐制御を行うことで、該プログラム格納手段をアドレス制御して実行させる１階層のプログラム実行制御手段と、を有する。
【００４５】
上記第１の情報処理装置によれば、統合命令コード体系の命令により記述されたアプリケーションプログラムとＯＳプログラムをプログラム格納手段に共存して格納し、プログラム実行制御手段によりこのプログラム格納手段をアドレス制御することでプログラム実行できるようにしたので、従来のようなマイクロプログラム制御処理系を加えた２階層のプログラム実行制御処理系は必要なく、上記プログラム実行制御手段による１階層の処理系によりプログラムを実行することができる。このように従来のマイクロプログラム制御処理系に係わるハードウェアを削除したことにより、システムのダウンサイジングを可能にし、システムクロック周波数を上げることができ、コストダウン／低消費電力化を実現できる。
【００４６】
本発明による第２の情報処理装置は、アプリケーションレベルの転送命令およびビットシーケンス命令を行うオペランド属性付命令と、各種演算・ＯＳレベルのデータ転送・各種ハードウェア制御を行うマイクロ命令である汎用命令とより成る統合命令コード体系を備え、該オペランド属性付命令および一部の汎用命令により記述されるアプリケーションプログラムと、前記汎用命令により記述されるＯＳプログラムを格納するプログラム格納手段と、該プログラム格納手段に格納されているアプリケーションプログラムまたはＯＳプログラムから順次フェッチした命令に対して、分岐制御手段により分岐制御を行うことで、該プログラム格納手段をアドレス制御して命令を順次読出し実行させる１階層のプログラム実行制御手段と、該プログラム実行制御手段で読出した命令が前記オペランド属性付命令である場合のみ該命令をマイクロプログラム制御方式で解釈／実行するマイクロプログラム制御処理手段と、を有する。
【００４７】
上記第２の情報処理装置によれば、上記第１の情報処理装置と略同様に、システムのダウンサイジングを可能にし、システムクロック周波数を上げることができ、コストダウン／低消費電力化を実現でき、更にシステムのトータルの高速化を実現できる。
【００４８】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。
図１は、本発明の一実施形態（第１の実施例）の情報処理装置の構成を示すブロック図であり、ここでは一例としてＰＬＣ（プログラマブルコントローラ）の構成を示す。
【００４９】
同図に示すＰＬＣは、アプリケーション／ＯＳプログラムメモリ１、デコーダ２、ＰＬＲ３、デ−タメモリ４、命令フェッチ制御回路１０、演算実行部２０、及びデータメモリ転送制御回路３０等より構成される。
【００５０】
同図に示すＰＬＣの構成を図１１に示す従来のＰＬＣの構成と概略的に比較すると、従来のＰＬＣに存在したμ−ＳＱＣ５２０、μプログラムメモリ５０３は、本実施形態のＰＬＣには存在しない。また、本実施形態のＰＬＣの命令フェッチ制御回路１０には分岐制御を行う機能が追加されている。本実施形態のＰＬＣは、概略的には、この分岐制御を行う機能と、後述する統合命令コード体系により各命令が記述されているアプリケーションプログラム、システム組込みマクロ関数、及びＯＳプログラム（いずれも後述するアプリケーション／ＯＳプログラムメモリ１に共存して格納されている）とにより、μ−ＳＱＣ５２０、μプログラムメモリ５０３を削除できるようにしたものである。詳細については、以下に、順次、説明していくものとする。
【００５１】
まず、図１に示すＰＬＣの各構成について、詳細に説明する。
アプリケーション／ＯＳプログラムメモリ１は、ＯＳプログラム、システム組込みマクロ関数、及びアプリケーションプログラムが共存して格納されるメモリ（ＲＡＭ／ＲＯＭ）である。詳細は、後に図３を参照して説明するが、これら各プログラム（または関数）は、上記統合命令コード体系に属するオペランド属性付命令または汎用命令により記述されている。
【００５２】
デコーダ２は、命令フェッチ制御回路１０内の命令レジスタ１１から出力されるオペランド属性付命令または汎用命令（これらについては後に図２を参照して詳述する）をデコードして、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種Ｈ／Ｗの制御信号を生成し、これをＰＬＲ３に出力する。
【００５３】
尚、後述するように、オペランド属性付命令は、アプリケーションレベルの転送命令であるので、デコーダ２をこの単純な転送命令に対応する転送制御信号を生成する仕様にすれば、従来のようなμプログラムメモリのインタプリタによる解釈／実行は必要なく、命令レジスタ１１からの出力を直接デコーダ２に入力して処理させることができる。
【００５４】
ＰＬＲ（パイプラインレジスタ）３は、デコーダ２から出力される各種制御信号をパイプラインして記憶し、各種Ｈ／Ｗブロックにこれら制御信号を接続するレジスタであり、フェッチ動作（命令レジスタへの命令格納）と命令実行動作のパイプライン動作を可能にするものである。
【００５５】
データメモリ４は、従来例のデータメモリ５０２と略同様であるので、ここでは特に説明しない。
命令フェッチ制御回路１０は、命令レジスタ１１、ＰＣ（プログラムカウンタ）１２、ＰＣスタック１３、プログラムメモリ転送制御回路１４、及び分岐制御回路１５より構成される。
【００５６】
命令レジスタ１１は、上記プログラムメモリ１より順次フェッチされるＯＳプログラム、またはシステム組込みマクロ関数、あるいはアプリケーションプログラムの１命令を、一時記憶して、デコーダ２、分岐制御回路１５、アドレス生成デコーダ３１に出力するレジスタである。ＰＣ１２は、分岐制御回路１５の制御に応じて、次に実行すべき（あるいは実行中の）命令が記憶されているプログラムメモリ１のアドレスを保持する。ＰＣスタック１３は、例えば後述するマクロ関数コール時にＰＣ１２の格納内容を一時退避させるスタックである。プログラムメモリ転送制御回路１４については特に説明しない。
【００５７】
分岐制御回路１５は、アプリケーションプログラム、ＯＳプログラム中のＪＭＰ、ＣＡＬＬ、ＲＥＴ命令等によって発生するＰＣ１２及びＰＣスタック１３の制御を、ＯＳプログラムを介在させることなく直接行う為の機能を有する。分岐制御回路１５の構成／動作については、後に詳細に説明する。
【００５８】
上記図１に示す構成のＰＬＣの動作概要について、以下に説明する。
（１）まず、最初に、システムリセット後（立ち上げ時）は、命令フェッチ制御回路１０内のＰＣ１２は‘０’となっており、これよりアプリケーション／ＯＳプログラムメモリ１のアドレス‘０’番地に格納されている命令（図２に示すＯＳプログラムの先頭命令）がフェッチされて命令レジスタ１１に一時記憶される。そして、このフェッチされた命令は、命令レジスタ１１からデコーダ２に出力され、デコーダ２においてデコードされて、演算器・データ変換器・データ転送制御部・フェッチ制御回路部及び各種Ｈ／Ｗ（ハードウェア）の制御信号が生成される。そして、この制御信号がＰＬＲ３を介して出力されて各種Ｈ／Ｗの制御（演算・転送等）が行われる。このようにして、順次、ＯＳプログラムの命令をフェッチして実行していくことにより、プロセッサ全体のＨ／Ｗ初期化とアプリケーションプログラムの実行環境が構築される。そして、システムのスタートコマンド待ち状態となる。
【００５９】
ＯＳプログラムの命令コードは、全て、汎用命令である。汎用命令は、基本的にはＲＩＳＣ化してあり、１クロックで処理できる。また演算実行部２０においても各種関数を１クロックで処理できる。
（２）上記のように、ＯＳプログラムによりシステムの初期化が行われた後、システムコマンドが認識されると、アプリケーションプログラムの実行に移る。すなわち、まず、アプリケーション／ＯＳプログラムメモリ１内のアプリケーションプログラムが格納されている記憶領域の先頭番地が、ＰＣ１２にセットされる。そして、このＰＣ１２にセットされたアドレスの命令から順次フェッチし実行していく。アプリケーションプログラムの命令コードは、オペランド属性付命令または汎用命令である。但し、アプリケーションプログラムの汎用命令は、ＯＳプログラムのように全ての汎用命令を用いることはできず、“汎用命令の一部”を用いることができる（特に、ＯＳプログラム専用のＨ／Ｗ資源を直接アクセスする命令は、後述するアプリケーションプログラム開発環境では生成できないようになっている）。
【００６０】
アプリケーションプログラムの各命令の処理動作については、後に詳しく説明する。
図２は、アプリケーション／ＯＳプログラムメモリ１の格納内容とプログラム開発環境を説明する為の図である。
【００６１】
同図に示すように、アプリケーション／ＯＳプログラムメモリ４０には、ＯＳプログラム４１、システム組込みマクロ関数４２、及びアプリケーションプログラム４３が共存して格納される。
【００６２】
上述してあるように、ＰＬＣでは、一般的に、メーカー側でシステムプログラムを作成する。本実施形態においても、ＯＳプログラム４１及びシステム組込みマクロ関数４２を、主にメーカー側で作成してアプリケーション／ＯＳプログラムメモリ４０に格納する。すなわち、同図に示すシステム設計者専用の開発ツール５３によって、システム設計者によってＯＳプログラム、システム組込みマクロ関数が開発され、そのオブジェクトが汎用命令の形式で生成され、アプリケーション／ＯＳプログラムメモリ４０に格納される。ＯＳプログラムは、各種Ｈ／Ｗ制御、アプリケーションプログラムの実行管理を行う。システム組込みマクロ関数は、詳しくは後述するが、アプリケーションプログラムの命令において、Ｈ／Ｗで１クロックで実行できない命令に対応して、この命令を実行させる為のアルゴリズムを組んだＯＳレベルの汎用命令列である（よって、以下、ＯＳマクロ関数とも言う）。
【００６３】
尚、システム設計者専用の開発ツール５３では、オペランド属性付命令を生成することもできる。これは、例えば、システム開発時に、システム設計者がオペランド属性付命令のマシン語も生成して、これをアプリケーションプログラム４３の領域に格納して、デバック確認を行う等するためである。これより、アプリケーションプログラムからはＯＳプログラム専用のＨ／Ｗ資源を直接アクセスできないようにインタロックがとれることが可能になり、システムの安全が確保できる。
【００６４】
一方、主にユーザー側において、プログラミングツール等を用いてラダー図等でプログラムが設計され、そのオブジェクトが生成されると、このオブジェクトがＰＬＣ内のマシン語生成機能５２によって変換／逆変換処理されてオペランド属性付命令または汎用命令に変換され、アプリケーション／ＯＳプログラムメモリ４０に格納される。尚、図１には特に図示していないが、ＰＬＣ内には開発ツールインタフェースプロセッサが備えられており、このプロセッサによって上記変換／逆変換処理が実行される。
【００６５】
図３（ａ）、（ｂ）は、上記オペランド属性付命令と汎用命令の命令コード体系の一例を示す図である。
図３（ａ）には、オペランド属性付命令６０の命令コード体系の一例を示してある。
【００６６】
同図において、オペランド属性付命令６０は、基本部と拡張部より成る。基本部は、ＭＳＢビット６１、オペコード６２、拡張ビット６３、データ型６４、データ記憶域６５、及びオペランド６６より成る。ＭＳＢビット６１は、オペランド属性付命令と汎用命令とを区別するためのビットであり、例えば‘１’の場合はオペランド属性付命令、‘０’の場合は汎用命令であるものと認識される。オペコード６２は命令種別を示す。拡張ビット６３は拡張部の有／無を示す。データ型６４はデータ種別及びサイズを示す。データ記憶域６５はデータが存在する位置及びデータのアクセス方法を示す。オペランド６６はアドレスまたは数値を示す。拡張部については、ＭＳＢビット６７を除いて、従来の図１４に示す命令コードにおける拡張部と略同様である。ＭＳＢビット６７はＭＳＢビット６１と同じくオペランド属性付命令と汎用命令とを区別するためのビットである。
【００６７】
オペランド属性付命令６０は、その命令コード体系は従来の図１４に示すアプリケーションの命令コードと略同様であるが、オペコード６２で取り扱う命令種別の数がかなり少なくて済む。例えば従来では１２８種類であったものが３２種類で済むようになっている。これは、例えばＡにＢを加算する処理を例にすると、従来は“ＬＤ Ａ”→“ＡＤＤ Ｂ”であったものが、本実施形態では“ＬＤ  Ａ”（オペランド属性付命令）→“ＬＤ Ｂ”（オペランド属性付命令）→“ＡＤＤ”（汎用命令）というように命令をＲＩＳＣ化し１クロックで処理できるようにすると共に、演算処理等をオペランドを伴わない汎用命令（ＡＤＤ等の演算命令）で実現しているからである。これによって、オペランド属性付命令で扱う命令種別を、転送命令及びコントローラで高速演算が要求されるビットシーケンス命令（ビットリード、ビットアンド、ビットオア、ビットノット等）のみにとどめられるので、命令種別が非常に少なくて済む。
【００６８】
図３（ｂ）には、汎用命令７０の命令コード体系の一例を示してある。
汎用命令は、マイクロ命令のようにハードウェアを直接制御できるレベルの命令であるが、従来の図１５に示すマイクロプログラムの命令コードが水平型で８０〜１００ビット程度であったのに対し、垂直型３２ビット構造をとっている。
【００６９】
同図に示す汎用命令７０は、ＭＳＢビット７１、命令種別７２、及びオペランド部７３より成る。
ＭＳＢビット７１は、上記オペランド属性付命令６０のＭＳＢビット６１と同じく、当該命令コードがオペランド属性付命令であるか汎用命令であるかを示すビットであり、同図に示す例では汎用命令を示すビットは‘０’である。
【００７０】
命令種別７２には、演算命令、ｉＭＭ演算、転送命令、分岐命令等があり、同図には各命令種別毎のオペランド部７３の構成例を示してある。演算命令の場合にはオペランド部７３は演算種別、モード、ＲＳ１、ＲＳ２、ＲＤより構成される。同様に、オペランド部７３は、ｉＭＭ演算の場合には演算種別、モード、ＲＤ、直接数値より構成され、転送命令の場合には転送制御、パス経路選択、ＲＳ１／ＲＤ、Ｉ／Ｏレジスタアドレスより構成され、分岐命令の場合には分岐制御、条件選択、分岐アドレスより構成される。尚、汎用命令７０の命令種別７２に転送命令が存在するのは、ＯＳプログラムにおいて用いるからであり、アプリケーションプログラムの場合には、上述してある通り、転送命令はオペランド属性付命令により実現する。また、分岐命令も、アプリケーションプログラムの場合とＯＳプログラムの場合とで内容的に異なる場合がある。例えば、アプリケーションプログラムにおけるＪＭＰ命令は相対分岐であるがＯＳプログラムにおけるＪＭＰ命令は絶対分岐である。これは、アプリケーションプログラムを、プログラムメモリ１上をプログラム単位で移動可能としている為である。
【００７１】
本実施形態の分岐命令においては、上記絶対分岐、相対分岐のほかに、拡張絶対無条件分岐命令を備えている。以下、分岐処理に関して、図４、図５を参照して説明する。
【００７２】
図４は、図１の分岐制御回路１５の構成の一例を示す概略ブロック図である。同図において、分岐制御回路１５は、命令デコーダ８１、加算器８２、ＭＰＸ（マルチプレクサ）８３、NOREG ８４、PCCHGRG ８５、NEXT PC レジスタ８６、アプリ実行モード制御ＦＦ（フリップフロップ）８７、及びＭＰＸ（マルチプレクサ）８８等より構成される。
【００７３】
命令デコーダ８１は、命令レジスタ１１より出力される１命令をデコードして、各種制御信号の生成／出力や、後述する相対分岐アドレス、絶対分岐アドレス、マクロ番号またはサブルーチン番号等を生成／出力する。
【００７４】
命令デコーダ８１によるデコード処理について図５を参照して説明する。
図５は、命令デコーダによる命令のデコード論理を示す一覧表である。
同図には汎用命令についてのみ示してあるが、オペランド属性付命令の場合にはＰＣ１２を１インクリメントする制御信号を出力する。
【００７５】
同図において、命令レジスタ１１より出力される命令が、“演算命令”、“ｉＭＭ演算命令”、“転送命令”のいずれかの汎用命令である場合には、命令デコーダ８１はＰＣ１２を＋１インクリメントする制御信号を出力する。
【００７６】
“分岐命令”である場合には、その分岐命令の種類に応じた処理が行われる。分岐命令は、基本分岐命令と拡張絶対（無条件）分岐命令とに大別され、更に基本分岐命令は絶対分岐命令と相対分岐命令とに分けられる。
【００７７】
絶対分岐命令には、無条件命令と条件付命令とがある。
無条件命令には、具体例としてＪＭＰ、ＣＡＬＬ、ＲＥＴ等の命令がある。
ＪＭＰ命令の場合、命令デコーダ８１は、命令コード中に含まれる分岐アドレス（図３（ｂ）参照）をＭＰＸ８３に出力して（図４に“絶対分岐アドレス”と記す）、これをＭＰＸ８３より選択出力させ、ＰＣ１２にセットさせる。
【００７８】
ＣＡＬＬ命令の場合には、ＪＭＰ命令の場合と同様に分岐アドレスをＰＣ１２にセットさせると共に、そのときＰＣ１２にセットされていたデータをＰＣスタック１３に退避させる。そして、ＲＥＴ命令によって、ＰＣスタック１３に退避させたデータをＰＣ１２に戻す。
【００７９】
条件付命令の場合は、（特に説明しない）条件が成立するときには上記無条件命令と同じである。条件不成立のときはＰＣ１２を＋１インクリメントする。
相対分岐命令には、無条件ＪＭＰ命令と条件付ＪＭＰ命令がある。
【００８０】
無条件ＪＭＰ命令の場合、命令デコーダ８１は当該命令コードに含まれる分岐アドレスを加算器８２に出力する（図４に“相対分岐アドレス”と記してある）。そして、加算器８２によって、現在ＰＣ１２にセットされているアドレスがこの相対分岐アドレスに加算されて、加算結果がＭＰＸ８３に出力され、ＭＰＸ８３より選択出力されてＰＣ１２にセットされる。
【００８１】
条件付ＪＭＰ命令の場合は、条件成立のときには上記無条件ＪＭＰ命令と同じである。条件不成立のときはＰＣ１２を＋１インクリメントする。
拡張絶対（無条件）分岐命令は、拡張絶対無条件ＪＭＰ命令と拡張絶対無条件ＣＡＬＬ命令とに分けられる。
【００８２】
拡張絶対（無条件）分岐命令については、後に図６、図７、図８を参照して詳細に説明するが、ここでは概略的に説明しておく。尚、命令デコーダ８１は、デコード結果に応じて各種制御信号を出力して、命令フェッチ制御回路１０内の他の構成要素を制御する。
【００８３】
拡張絶対無条件ＪＭＰ命令である場合、命令デコーダ８１は、当該命令中に含まれる分岐アドレス（絶対分岐アドレス）のデータをＭＰＸ８３に出力し、ＰＣ１２にセットさせる。また、当該命令中に含まれるマクロ番号またはサブルーチン番号のデータを、ＮＯＲＥＧ（ナンバーレジスタ）８４に一時記憶させる。また、戻り番地をNEXT PCレジスタ８６に退避させる。更に、アプリ実行モード制御ＦＦ８７を制御して、そのＡＰＬフラグビット（アプリケーション実行中であるかＯＳ実行中であるかを示すフラグであり、ここでは‘０’のときＯＳ実行中、‘１’のときアプリケーション実行中を示すものとする）を‘０’にする。これより、処理はＯＳに移される。ＯＳ側では、上記ＮＯＲＥＧ８４を参照することによって、起動すべきマクロ番号またはサブルーチン番号を知ることができる。尚、マクロ番号は、後述するＯＳマクロ関数を起動するときに用いられる。
【００８４】
拡張絶対無条件ＣＡＬＬ命令である場合、命令デコーダ８１は、上記拡張絶対無条件ＪＭＰ命令の場合と略同様の処理を行うが、戻り番地は、NEXT PCレジスタ８６に退避させるのではなく、ＰＣスタック１３に退避させる。
【００８５】
以下、図６〜図８を参照して、拡張絶対無条件分岐命令を用いる処理の具体例について説明する。拡張絶対無条件分岐命令は、アプリケーションでのみ使用する分岐命令の一種であり、以下に説明するように種々の専用命令がある。
【００８６】
図６は、拡張絶対無条件分岐命令を用いてＯＳマクロ関数を起動する処理を説明するための図である。
アプリケーションプログラムの１命令が、Ｈ／Ｗにおいて１クロックで処理できない場合がある。このような場合に対して、本実施形態のＰＬＣでは、図２に示すようにアプリケーション／ＯＳプログラムメモリ１内にシステム組込みマクロ関数４２（ＯＳマクロ関数）を登録しておく。
【００８７】
ＯＳマクロ関数は、アプリケーションプログラムの１命令に対応するＨ／Ｗ処理を行わせる為の連続する複数の命令群である。そして、このＯＳマクロ関数を起動する為に拡張絶対無条件分岐命令を用いており、この命令によって指定されるＯＳマクロ関数の先頭番地が、ＰＣ１２にセットされることになる。これについて、以下に詳細に説明する。
【００８８】
図６（ａ）には、このようなマクロ関数起動用の拡張絶対無条件分岐命令であるマクロコール命令の一例を示してある。同図において、マクロコール命令９０は、基本部と拡張部より成り、基本部はＭＳＢビット９１、分岐命令の種類として“ＣＡＬＬまたはＪＭＰ”９２、ＯＳ起動関数種別として“マクロコール”９３、及びマクロ番号９４の各フィールドより成る。拡張部は、ＭＳＢビット９５と、当該命令によって起動すべきＯＳマクロ関数の先頭番地を示す絶対分岐アドレス９６（１９ビット）とより成る。各ＯＳマクロ関数の命令群の最後には専用の復帰命令であるＲＥＴ命令（ＡＰＬビット付きＲＥＴ命令）が備えられおり、このＲＥＴ命令によってアプリケーションプログラムの実行モードに復帰する。同図に示すＲＥＴ命令１００は、ＭＳＢビット１０１、分岐命令１０２、ＲＥＴ命令であることを示すＲＥＴ１０３、及びアプリ実行モード制御フラグをＯＳ実行モードからアプリ実行モードへ戻す制御を行わせる為のＡＰＬビット１０４より成る。
【００８９】
図６（ｂ）は、マクロコール命令による処理の一例を示すフローチャートである。同図において、ステップＳ１、Ｓ２の処理は、オペランド属性付命令の実行の一例であり、特に説明しない。
【００９０】
ステップＳ１、Ｓ２の処理を実行後、ステップＳ３でマクロコール命令（例えば“ＣＡＬＬ  ＭＡＣ  Ｘ‘１０’；Ｘ‘１０’はマクロ番号）が分岐制御回路１５内の命令デコーダ８１でデコードされることにより、上述した各種制御処理が行われ、ＯＳプログラム（システム組込みマクロ関数）の処理へと移行する。
【００９１】
すなわち、▲１▼戻り番地（同図ではアプリケーションプログラムにおいてステップＳ３のマクロコール命令の次の命令であるステップＳ８の“ＳＴ  Ｃ”命令のメモリ格納アドレス）をＰＣスタック１３に退避させる。
【００９２】
▲２▼起動すべきマクロ関数のマクロ番号（Ｘ‘１０’）を、ＮＯＲＥＧ８４にセットする。
▲３▼アプリ実行モード制御ＦＦ８７のＡＰＬフラグを‘０’（ＯＳ実行中であることを示す）にする。
【００９３】
▲４▼起動すべきマクロ関数の先頭番地（マクロコール命令９０の絶対分岐アドレス９６）を、ＭＰＸ８３より選択出力させ、ＰＣ１２にセットさせる。
上述したようにして、マクロ番号（Ｘ‘１０’）のマクロ関数の処理を開始する。上述してあるように、マクロ関数は複数の命令より成り、各命令を順次フェッチして実行していく。同図に示すステップＳ４〜ステップＳ６の処理は、本発明の出願人が扱っているＰＬＣ装置における処理を一例として示しているので、ここでは特に詳細には説明しないが、ステップＳ４でスタック内のパラメータＡ，Ｂを取り出し、ステップＳ５でＭＡＣ  Ｘ‘１０’のデータ処理を実行し、ステップＳ６で演算結果を演算結果レジスタにセットする。
【００９４】
そして、最後に、ＲＥＴ命令によりアプリケーションプログラムへと復帰する。これは、分岐制御回路１５内の命令デコーダ８１がＲＥＴ命令をデコードすることにより、まず、ＡＰＬビット１０４に応じてアプリ実行モード制御ＦＦ８７を制御してＡＰＬフラグを‘１’（アプリ実行中であることを示す）にする。次に、ＰＣスタック１３に退避させてあった戻り番地をＰＣ１２にセットさせる。これにより、アプリケーションプログラムのステップＳ８の“ＳＴ  Ｃ”命令の実行へと移行していく。
【００９５】
図７は、本実施形態の情報処理装置におけるサブルーチン処理を説明する為の図である。
本実施形態の情報処理装置（ＰＬＣ）におけるサブルーチン処理は、サブルーチンコール及びサブルーチンエンド処理を、拡張絶対無条件分岐命令（ＳＵＢコール命令、ＳＵＢエンド命令）によって、予めＯＳプログラム中に備えてあるサブルーチンコール関数、サブルーチンエンド関数を起動することにより行う。
【００９６】
図７（ａ）は、サブルーチン処理の為の拡張絶対無条件分岐命令（ＳＵＢコール命令、ＳＵＢエンド命令）の一例を示す図である。
同図において、拡張絶対無条件分岐命令１１０は、基本部と拡張部とより成る。基本部は、ＭＳＢビット１１１、分岐命令として“ＪＭＰ”１１２、ＯＳ起動関数種別として“ＳＵＢコールまたはＳＵＢエンド”１１３、及びＳＵＢ番号１１４より成る。拡張部は、ＭＳＢビット１１５及び絶対分岐アドレス１１６（１９ビット）より成る。また、サブルーチン処理では、後述する図７（ｂ）におけるステップＳ１５、Ｓ１６の処理を、Ｉ／Ｏ制御レジスタ転送命令によって行う。図７（ａ）にはＩ／Ｏ制御レジスタ転送命令の一例も示してある。同図に示すＩ／Ｏ制御レジスタ転送命令１２０は、図３（ｂ）に示す〔転送命令〕の一形態であり、ＭＳＢビット１２１、転送命令１２２、転送制御として“Ｉ／Ｏ転送”１２３、パス経路選択１２４、“ＲＳ１”１２５、及びＩ／Ｏレジスタアドレス１２６より成る。
【００９７】
図７（ｂ）は、サブルーチン処理の一例を示すフローチャートである。
同図において、ステップＳ１１、Ｓ１２の処理は、オペランド属性付命令の実行の一例であり、特に説明しない。
【００９８】
ステップＳ１１、Ｓ１２の処理の後、ステップＳ１３においてＳＵＢコール命令“Ｘ‘２０’”（Ｘ‘２０’はＳＵＢ番号）が命令デコーダ８１に入力されると、命令デコーダ８１によって当該命令がデコードされて上述した各種制御処理が行われ、ＯＳプログラム（サブルーチンコール関数）の処理へと移行する。
【００９９】
すなわち、▲１▼戻り番地（同図ではアプリケーションプログラムにおいてステップＳ１３のＳＵＢコール命令の次の命令であるステップＳ２１の“ＳＴ  Ｃ”命令のメモリ格納アドレス）を、“ＮＥＸＴ  ＰＣレジスタ”８６に退避させる。
【０１００】
▲２▼起動すべきサブルーチンコール関数のＳＵＢ番号（Ｘ‘２０’）を、ＮＯＲＥＧ８４にセットする。
▲３▼アプリ実行モード制御ＦＦ８７のＡＰＬフラグを‘０’（ＯＳ実行中であることを示す）にする。
【０１０１】
▲４▼起動すべきサブルーチンコール関数の先頭番地（拡張絶対無条件分岐命令１１０の絶対分岐アドレス１１６）を、ＭＰＸ８３より選択出力させ、ＰＣ１２にセットさせる。
【０１０２】
上述したようにして、ＳＵＢ番号（Ｘ‘２０’）のサブルーチンコール関数によるＳＵＢコール処理を開始する。
まず、上記の様に“ＮＥＸＴ  ＰＣレジスタ”８６に退避させた戻り番地をＯＳ作業領域に退避して、パラメータポインタを更新する（ステップＳ１４）。次に、ＮＯＲＥＧ８４よりＳＵＢ番号（Ｘ‘２０’）を求め、これより不図示のサブルーチンエントリーテーブルによりＳＵＢ番号（Ｘ‘２０’）のサブルーチンプログラムの格納アドレス（アプリケーション／ＯＳプログラムメモリ１内のアプリケーションプログラム４３においてＳＵＢ番号（Ｘ‘２０’）のサブルーチンプログラムが格納されている記憶領域の先頭番地）を求める。
【０１０３】
そして、求めたアドレスを上記Ｉ／Ｏ制御レジスタ転送命令１２０によりＰＣＣＨＧＲＧ８５にセットする（ステップＳ１５）。ＰＣＣＨＧＲＧ８５は、ＯＳプログラムからアプリケーションプログラムに復帰するときに、ＯＳ側で復帰先のアプリケーションのアドレスをセットする為のレジスタである。
【０１０４】
最後に、ＰＣチェンジ命令によりＰＣＣＨＧＲＧ８５に記憶された上記アドレスがＰＣ１２にセットされると共に、ＡＰＬフラグが‘１’（アプリケーション実行中であることを示す）に切換えられる（ステップＳ１６）。ＰＣチェンジ命令は、実際には、上記Ｉ／Ｏ制御レジスタ転送命令１２０によって、あるＩ／Ｏ制御レジスタへのライト動作を行うことにより実行される。
【０１０５】
上述したように、ＯＳプログラムによって、実行すべきサブルーチンプログラムの開始アドレスが求められ、この開始アドレスがＰＣ１２にセットされ、実行権がアプリケーションに戻されることにより、“Ｘ‘２０’”のサブルーチン処理が開始される（ステップＳ１７）。
【０１０６】
そして、サブルーチンプログラム命令が順次フェッチされ実行されていく。サブルーチンプログラムの最後の命令は、サブルーチンエンド命令（拡張絶対無条件分岐命令１１０）となっており、このＳＵＢエンド命令によって上記ＯＳプログラム中に備えられているサブルーチンエンド関数を起動することにより（ステップＳ１８）、すなわち起動すべきサブルーチンエンド関数の先頭番地（拡張絶対無条件分岐命令１１０の絶対分岐アドレス１１６）を、ＭＰＸ８３より選択出力させ、ＰＣ１２にセットさせると共に、ＡＰＬフラグを‘０’（ＯＳ実行中であることを示す）に切換えることにより、サブルーチンプログラムの終了処理（ＳＵＢエンド処理）が実行される。
【０１０７】
ＳＵＢエンド処理では、まず、上記ステップＳ１４の処理で更新したパラメータポインタを復帰させると共に、同じく上記ステップＳ１４の処理でＯＳ領域のスタックへ退避させてあった戻り番地を、Ｉ／Ｏ制御レジスタ転送命令１２０によりＰＣＣＨＧＲＧ８５にセットする（ステップＳ１９）。そして、上記“ＰＣチェンジ命令”によりＰＣＣＨＧＲＧ８５に記憶された上記戻り番地をＰＣ１２にセットすると共に、ＡＰＬフラグを‘１’（アプリケーション実行中であることを示す）に切換える（ステップＳ２０）。これより、アプリケーションプログラムにおいて上記ステップＳ１３のサブルーチンコール命令の次の命令（ＳＴ  Ｃ）から順次実行されていくことになる（ステップＳ２１）。
【０１０８】
尚、ＡＰＬフラグが‘０’（ＯＳ実行モード）のときには、アプリケーションレベルの割込みはマスクされるようになっている。また、このＡＰＬフラグは、デバッグにおいても利用される。
【０１０９】
図８は、本実施形態の情報処理装置におけるプログラム終了処理を説明する為の図である。
あるアプリケーションプログラムの実行完了の際には、専用の拡張絶対無条件分岐命令（プログラムエンド命令）を用いて、予めＯＳプログラム中に備えてあるプログラムエンド関数を起動して、プログラム終了処理を行う。
【０１１０】
図８（ａ）に、上記プログラムエンド命令の一例を示す。
同図において、プログラムエンド命令１３０は、基本部と拡張部とより成る。基本部は、ＭＳＢビット１３１、分岐命令として“ＪＭＰ”１３２、ＯＳ起動関数種別として“ＰＥＮＤ”１３３、及びプログラム番号１３４より成る。拡張部は、ＭＳＢビット１３５及び絶対分岐アドレス１３６（１９ビット）より成る。
【０１１１】
図８（ｂ）は、プログラムエンド処理の一例を示すフローチャートである。
同図に示すように、あるアプリケーションプログラムが、ステップＳ３１の“ＳＴ  Ｃ”命令の実行を以て処理を完了する場合、当該プログラムの最後に付加されているＰＥＮＤ命令を実行することにより（ステップＳ３２）、ＯＳ実行モードに移り、ＯＳプログラムによるＰＥＮＤ処理が実行される。
【０１１２】
ＰＬＣ装置においては複数のアプリケーションプログラムを順次実行していく制御処理もある。ＯＳプログラムにおけるＰＥＮＤ処理は、まず各種タスクスケジューラ処理を実行し（ステップＳ３３）、次に実行すべき他のアプリケーションプログラムがある場合にはその先頭番地をＰＣＣＨＧＲＧ８５にセットし（ステップＳ３４）、ＰＣチェンジ命令により他のアプリケーションプログラムの処理に移る（ステップＳ３５）。
【０１１３】
上記ステップＳ３３の各種タスクスケジューラ処理については特に詳細には説明しないが、割込み処理でのＰＥＮＤ命令の場合、同レベルの他のタスク要求があるときには要求ＰＧポインタを抽出し、同レベルの他のタスク要求がないときにはディスパッチ処理を行う。一方、ディフォルトレベルのＰＥＮＤ命令の場合には、次のタスク番号を決定し、プログラムポインタを抽出する。
【０１１４】
上述したように、本発明の第１の実施例の情報処理装置では、従来、アプリケーションプログラムの命令コード体系とμプログラムの命令コード体系であったものを、アプリケーションレベルの転送命令より成るオペランド属性付命令と、Ｈ／Ｗを直接制御できる汎用命令とより成る単一の統合命令コード体系にしている。そして、従来、アプリケーションプログラム実行制御回路と大規模なμプログラム制御回路（μプログラムメモリ５０３、μ−ＳＱＣ５２０等）より成る２階層のプログラム実行制御の処理系であったものを、大規模なμプログラム制御回路を削除して、アプリケーション／ＯＳプログラムメモリ１を制御する１階層のプログラム実行制御の処理系で構成している。
【０１１５】
アプリケーションプログラムの実行において、オペランド属性付命令は、その殆どがＬＤ、ＳＴ等の単純な転送命令であるので、この命令に対してデコーダ２で生成すべき制御信号はほとんど所定の単純なものであり、これより容易にデコーダ２をオペランド属性付命令に対応する仕様とすることができる。これより、オペランド属性付命令の実行においても、μプログラム制御回路によるインタプリタを必要とせず、直接、デコーダ２でデコードできる。
【０１１６】
また、アプリケーションプログラムは、Ｈ／Ｗで１クロックで処理できない命令の場合や、割込処理（サブルーチン実行処理）を行う場合等に対して、各々の専用の拡張絶対無条件分岐命令を備えている。そして、図６、図７、図８等で説明したように、この各専用の命令に応じて分岐制御回路１５が制御動作を行うことで、ＯＳマクロ関数やサブルーチン関数等が起動されて、上記各処理が実行される。
【０１１７】
このように構成することにより、第１の実施例の情報処理装置では大規模なμプログラム制御回路を削除できるので、実際のＨ／Ｗ量を大幅に減少させることができる。事実上、図１におけるアプリケーション／ＯＳプログラムメモリ１とデータメモリ４を除いた全ての構成要素を、ＬＳＩの中に入れることが可能となっている。
【０１１８】
これより、従来ではμプログラム制御処理系のＨ／Ｗが大きく（特にμプログラムメモリ５０３に外部メモリ（ＲＯＭ）を使用せざると得ない為）、システムのダウンダイジング化が困難、ＲＯＭのアクセスタイムがネックとなりシステムクロック周波数を上げることが困難、高価なＲＯＭを多く使用するのでコスト高となる等の問題があったが、第１の実施例では上記のように大規模なμプログラム制御処理系のＨ／Ｗを削除できたので（特に外部メモリを使用しなくて済むので）、これらの問題を解決できる。すなわち、システムのダウンサイジング化を実現でき、システムクロック周波数を上げることができ、プログラムメモリとデータメモリを除いた全ての回路を１チップＬＳＩの中に組込むことが可能となる。このように第１の実施例の情報処理装置では、コストダウン、ダウンサイジング化、高速化、低消費電力化等の様々な効果が得られる。
【０１１９】
次に、図９、図１０を参照して、第２の実施例について説明する。
上述した図１の構成の情報処理装置では、従来のμプログラム制御処理系のＨ／Ｗを完全に削除している為、図６で説明したようにアプリケーションプログラムの１命令（オペランド属性付命令）がＨ／Ｗにおいて１クロックで処理できない場合には、マクロコール命令によりＯＳマクロ関数をＣＡＬＬすることにより対応していた。
【０１２０】
しかしながら、実際上、上記マクロコール命令の使用頻度がかなり高いものとなる場合が多い為、分岐制御回路１５による上記ＣＡＬＬ制御処理が頻繁に起こると、その処理時間がネックとなって、結果としてシステムの高速化を充分に果たせなかった。
【０１２１】
そこで、第２の実施例では、図９に示すようにμプログラム制御回路２２０を設け、オペランド属性付命令の場合のみμプログラム制御方式で処理を行うようにしている。
【０１２２】
図９は、第２の実施例による情報処理装置の構成を示すブロック図であり、図１の場合と同様に一例としてＰＬＣ（プログラマブルコントローラ）の構成を示している。
【０１２３】
同図において、第２の実施例によるＰＬＣは、アプリケーション／ＯＳプログラムメモリ２０１、セレクトデコーダ２０２、ＰＬＲ２０３、データメモリ２０４、命令フェッチ制御回路２１０、μプログラム制御回路２２０、演算実行部２３０、及びデータメモリ転送制御回路２４０等を有する。
【０１２４】
アプリケーション／ＯＳプログラムメモリ２０１、ＰＬＲ２０３、データメモリ２０４、演算実行部２３０、及びデータメモリ転送制御回路２４０については、図１に示すものと略同様であるので、ここでは特に説明しない。
【０１２５】
μプログラム制御回路２２０は、プリデコーダ２２１、μ−ＳＱＣ２２２、μプログラムメモリ２２３、デコーダ２２４、及びＰＬＲ２２５より成る。
プリデコーダ２２１は、命令レジスタから命令が出力される毎に、当該命令がオペランド属性付命令であるか否かを識別し、識別結果に応じた選択信号をセレクトデコーダ２０２に対して出力する。セレクトデコーダ２０２は、基本的にセレクタとデコーダより構成され、命令レジスタ２１１の出力とμプログラムメモリ２２３の出力をセレクタに入力して、プリデコーダ２２１より出力される選択信号に応じていずれか一方の入力をデコーダに選択出力して、デコード処理するものである。
【０１２６】
μプログラムメモリ２２３は、オペランド属性付命令を解釈実行するインタプリタ（μ命令）を格納しているメモリである。μプログラムメモリ２２３より出力されるμ命令は、１３ビット（ＢＲＡ：９ビット）の分岐制御フィールドと３１ビットの演算・転送制御フィールドより成る合計４４ビットのフィールド構成である。１３ビット（ＢＲＡ：９ビット）の分岐制御フィールドはデコーダ２２４に出力され、３１ビットの演算・転送制御フィールドはセレクトデコーダ２０２へ出力される。このように、セレクトデコーダ２０２に入力されるμ命令のフィールド構成を、図３に示す汎用命令（垂直３２ビット構造）と（ＭＳＢビット７１が無い点を除けば）略同様にすることにより、セレクトデコーダ２０２をほとんど「セレクタ＋“図１のデコーダ２”」の形で実現することができる。
【０１２７】
デコーダ２２４、及びＰＬＲ２２５は、図１１の従来例においてＰＬＲ５０５がμ−ＳＱＣ５２０に対して出力していたμ−ＳＱＣにおける分岐制御の為の制御信号等を生成してμ−ＳＱＣ２２２に出力するための構成である。
【０１２８】
図９に示すように、第２の実施例では、第１の実施例の構成に対してμプログラム制御回路２２０を追加しているが、実際のＨ／Ｗ量は、従来の構成より極めて少なくて済む。第２の実施例においても、第１の実施例と同様に、図９におけるアプリケーション／ＯＳプログラムメモリ２０１とデータメモリ２０４を除いた全ての構成要素を、ＬＳＩの中に入れることが、事実上可能となっている。
【０１２９】
これは、特にμプログラムメモリ２２３が、オペランド属性付命令を解釈実行するインタプリタのみを格納しており、またオペランド属性付命令は命令種別が少ないので、必要なメモリ容量が非常に少なくて済むからである。μプログラムメモリ２２３の容量は、例えば（５１２ｗ×４４bit ）で済む。更に、μ−ＳＱＣ２２２は、メモリアドレスビットが９ビットで済む。
【０１３０】
これより、従来ではμプログラムメモリとして大規模なメモリが必要となる為に、外部メモリを使用していた（ＥＰＲＯＭで構成するとＩＣ１１個）が、第２の実施例では極小規模（事実上ＬＳＩの中に入れることが出来る規模）のメモリで済み、第１の実施例と比較しても実際のＨ／Ｗ量の増加は極僅かである。
【０１３１】
よって、従来、システムのダウンダイジング化が困難、ＲＯＭのアクセスタイムがネックとなりシステムクロック周波数を上げることが困難、高価なＲＯＭを多く使用するのでコスト高となる等の問題があったが、第２の実施例においても第１の実施例と略同様にこれらの問題を解決でき、更に上記のように特にＯＳマクロ関数による処理の頻度が高い場合には、第１の実施例に比べて更にシステムの高速化を実現することができる。
【０１３２】
図１０は、μ転送命令における転送モード切替えを説明する為の図である。
上述してあるように、転送命令には、アプリケーションレベル（オペランド属性付命令）の転送命令とμ命令レベルの転送命令（μ転送命令という）とがあり、当該情報処理装置内には（特に図示していないが）アプリケーションレベルの転送命令では制御できないＨ／Ｗ資源（レジスタ等）が存在する。
【０１３３】
ここでは、μ転送命令中にＯＳＥＮビット（オペランド属性付命令による転送モードを使用するかμ命令による転送モードを使用するかを選択させる為のビット）を備えることにより、例えばμプログラム中でメモリ間接アクセスする場合等に容易に転送モード切替えを実現できるようにする方法について説明する。
【０１３４】
尚、当該μ転送命令における転送モード切替えは、図９に示す第２の実施例の情報処理装置を前提にしている。
図１０（ａ）は、μ転送命令のフィールド構成の一例を示す図である。
【０１３５】
同図に示すように、μ転送命令２５０のフィールド構成は、基本的には図３に示す〔転送命令〕と略同様であるが、ＭＳＢビットは無く、ＯＳＥＮビットが追加されている。すなわち、μ転送命令２５０は、転送命令２５１、ＯＳＥＮビット２５２、転送制御２５３、パス経路選択２５４、ＲＳ１／ＲＤ２５５、及びＩＯレジスタアドレス２５６より構成される。
【０１３６】
ここでは、オペランド属性付命令の転送命令が１６ビット転送、μ転送命令は３２ビット転送であるものとして、以下に、μ転送命令における転送モード切替えの具体的な一例について説明する。
【０１３７】
図１０（ｂ）において、アプリケーションプログラム実行中に図１０（ｃ）に示すメモリ２６０の１００番地を間接アクセスするためのオペランド属性付命令を実行する場合（ステップＳ４１）、このオペランド属性付命令がμプログラムメモリ２２３でインタプリタされて成るμプログラム処理は、まず１００番地に格納されているデータ（２００番地を示すデータ）をリードして不図示のＭＡＲ（中間アドレスレジスタ）にセットする（ステップＳ４２）。このとき、ＯＳＥＮビット２５２は‘０’になっておりμ命令の転送モードを使用するので、上記データ転送は３２ビット転送で行う。そして、次のμ転送命令では、ＭＡＲにセットされたデータより２００番地に格納されているデータ（５０）を読み出して、これを不図示のレジスタ“Ｒ１０”にセットする（ステップＳ４３）。このとき、ＯＳＥＮビット２５２は‘１’になっておりオペランド属性付命令の転送モードを使用するので、データ転送は１６ビット転送になる。このように、ＯＳＥＮビットを用いることにより、容易に１６ビット転送／３２ビット転送の切替えが行えて所望の処理を行わせることができる。
【０１３８】
尚、上記実施形態では、ＰＬＣを例にして説明したが、これに限るものではなく、他の情報処理装置にも適用できる。
【０１３９】
【発明の効果】
以上、詳細に説明したように、本発明の情報処理装置は、オペランド属性付命令と汎用命令とより成る統合命令コード体系によるアプリケーションプログラム、システム組込み関数及びＯＳプログラムをプログラムメモリに格納し、このプログラムメモリのアドレス（ＰＣ）制御（例えば各種専用命令に応じたシステム組込み関数やＯＳプログラムに備えられている専用の関数を起動／復帰制御等）を行う１階層のプログラム実行制御処理系より構成される。
【０１４０】
従来のマイクロプログラム制御方式では、命令体系が通常の命令とその一段下のレベルのマイクロ命令とに分かれ、プログラムメモリに格納されている命令の順次読み出し制御を行うプログラム実行制御処理系統と、この命令を解釈／実行するためにμプログラムメモリに格納されているマイクロ命令の順次読み出し制御を行うμプログラム実行制御処理系統とより成る２階層のプログラム実行制御処理系であったが、本発明の情報処理装置では上記μマイクロプログラム実行制御処理系のハードウェアを削除でき、１階層のプログラム実行制御処理系により実現できる。
【０１４１】
これによって、システムのダウンサイジングを可能にし、システムクロック周波数を上げることができ、コストダウン／低消費電力化を実現できる。特に従来μプログラムメモリに必要とされる記憶容量が非常に大きい為に外部メモリとして構成していた情報処理装置であった場合には、これを１チップ（ＬＳＩ）の中に入れることが出来るようになるので上記効果は非常に顕著なものとなる。
【０１４２】
あるいは、使用頻度が高く命令種別が少ない上記オペランド属性付命令のみをマイクロプログラム制御方式で処理する構成にすることにより、上記効果に加えて更にシステム全体の高速化を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態による情報処理装置の構成を示すブロック図である。
【図２】アプリケーション／ＯＳプログラムメモリの格納内容とプログラム開発環境を説明する為の図である。
【図３】オペランド属性付命令と汎用命令の命令コード体系の一例を示す図であり、（ａ）はオペランド属性付命令、（ｂ）は汎用命令の命令コード体系の一例を示す。
【図４】図１の分岐制御回路の構成の一例を示す概略ブロック図である。
【図５】命令デコーダによる命令のデコード論理を示す一覧表である。
【図６】拡張絶対無条件分岐命令を用いてＯＳマクロ関数を起動する処理を説明するための図である。
【図７】本実施形態の情報処理装置におけるサブルーチン処理を説明する為の図である。
【図８】本実施形態の情報処理装置におけるプログラム終了処理を説明する為の図である。
【図９】第２の実施例による情報処理装置の構成を示すブロック図である。
【図１０】μ転送命令における転送モード切替えを説明する為の図である。
【図１１】従来のマイクロプログラム処理方式による情報処理装置の構成の一例を示すブロック図である。
【図１２】（ａ）は１クロックで終る場合の動作タイミング、（ｂ）は複数クロックかかる場合の動作タイミングを示す図である。
【図１３】従来のプログラムの開発ルートを説明する為の図である。
【図１４】従来のアプリケーションプログラムの命令コード（マシン語）の一例を示す図である。
【図１５】従来のマイクロプログラムの命令コードの一例を示す図である。
【符号の説明】
１  アプリケーション／ＯＳプログラムメモリ
２  デコーダ
３  ＰＬＲ
４  データメモリ
１０  命令フェッチ制御回路
１１  命令レジスタ
１２  ＰＣ（プログラムカウンタ）
１３  ＰＣスタック
１４  プログラムメモリ転送制御回路
１５  分岐制御回路
２０  演算実行部
２１  キャッシュレジスタ
２２  各種演算器／データ変換器
２３  ＭＰＸ
３０  データメモリ転送制御回路
３１  アドレス生成デコーダ
３２  ＭＰＸ
３３  ＭＡＲ
３４  デコーダ
３５  ＰＬＲ
４０  プログラムメモリ
４１  ＯＳプログラム
４２  システム組込みマクロ関数
４３  アプリケーションプログラム
５１  開発ツール
５２  マシン語生成機能
５３  開発ツール（システム設計者専用）
６０  オペランド属性付命令
６１  ＭＳＢビット
６２  オペコード
６３  拡張ビット
６４  データ型
６５  データ記憶域
６６  オペランド
７０  汎用命令
７１  ＭＳＢビット
７２  命令種別
７３  オペランド部
８１  命令デコーダ
８２  加算器
８３  ＭＰＸ
８４  ＮＯＲＥＧ
８５  ＰＣＣＨＧＲＧ
８６  ＮＥＸＴ  ＰＣレジスタ
８７  アプリ実行モード制御フリップフロップ
８８  ＭＰＸ
９０  マクロコール命令
９１  ＭＳＢビット
９２  ＣＡＬＬ／ＪＭＰ（ＯＳ起動関数種別）
９３  マクロコール
９４  マクロ番号
９５  ＭＳＢビット
９６  絶対分岐アドレス
１００  ＲＥＴ命令
１０１  ＭＳＢビット
１０２  分岐命令
１０３  ＲＥＴ（命令種別）
１０４  ＡＰＬビット
１１０  拡張絶対無条件分岐命令（サブルーチンコール命令／サブルーチンエンド命令）
１１１  ＭＳＢビット
１１２  ＪＭＰ（分岐命令）
１１３  ＳＵＢコール／ＳＵＢエンド（ＯＳ起動関数種別）
１１４  ＳＵＢ番号
１１５  ＭＳＢビット
１１６  絶対分岐アドレス
１２０  Ｉ／Ｏ制御レジスタ転送命令
１２１  ＭＳＢビット
１２２  転送命令
１２３  Ｉ／Ｏ転送（転送制御）
１２４  パス経路選択
１２５  ＲＳ１
１２６  Ｉ／Ｏレジスタアドレス
１３０  プログラムエンド命令
１３１  ＭＳＢビット
１３２  ＪＭＰ（分岐命令）
１３３  ＰＥＮＤ（ＯＳ起動関数種別）
１３４  プログラム番号
２０１  アプリケーション／ＯＳプログラムメモリ
２０２  デコーダ
２０３  ＰＬＲ
２０４  データメモリ
２１０  命令フェッチ制御回路
２１１  命令レジスタ
２１２  ＰＣ（プログラムカウンタ）
２１３  ＰＣスタック
２１４  プログラムメモリ転送制御回路
２１５  分岐制御回路
２２０  μプログラム制御回路
２２１  プリデコーダ
２２２  μ−ＳＱＣ
２２３  μプログラムメモリ
２２４  デコーダ
２２５  ＰＬＲ
２３０  演算実行部
２３１  キャッシュレジスタ
２３２  各種演算器／データ変換器
２３３  ＭＰＸ
２４０  データメモリ転送制御回路
２４１  アドレス生成デコーダ
２４２  ＭＰＸ
２４３  ＭＡＲ
２４４  デコーダ
２４５  ＰＬＲ
【図１】
0003716604.tif 000002
【図２】
0003716604.tif 000003
【図３】
0003716604.tif 000004
【図４】
0003716604.tif 000005
【図５】
0003716604.tif 000006
【図６】
0003716604.tif 000007
【図７】
0003716604.tif 000008
【図８】
0003716604.tif 000009
【図９】
0003716604.tif 000010
【図１０】
0003716604.tif 000011
【図１１】
0003716604.tif 000012
【図１２】
0003716604.tif 000013
【図１３】
0003716604.tif 000014
【図１４】
0003716604.tif 000015
【図１５】
0003716604.tif 000016