(57)【特許請求の範囲】
【請求項１】
命令解読を行う命令解読手段と、命令供給を制御する命令供給制御手段と、データを保持するレジスタ群と、命令を格納する命令メモリと、上記命令解読手段によって解読された命令に従って、上記レジスタ群からデータを読み出し、このデータを使用して演算を実行する複数の演算回路とを有し、複数命令を同時に実行する命令と、同時実行でない一命令実行命令を実行する命令とを受け付ける情報処理制御装置において、
上記命令供給制御手段は、単位命令ビットフィールド中の同時実行でない複数の一命令実行命令を配置していることを示すビット及び該一命令実行命令の総数を示すビットに基づいて、上記命令メモリから上記命令解読手段への上記単位命令の供給を制御する、
ことを特徴とする情報処理制御装置。
【請求項２】
請求項１記載の情報処理制御装置において、
上記命令供給制御手段は上記命令メモリ上のアドレスを表す第１のカウンタを有しており、
命令ビットフィールド上での命令の番号を表す第２のカウンタを有し、上記第１のカウンタによるアドレス指定を、上記同時実行できない一命令実行命令の配置されている総数を示すビットに応じて制御するプログラムカウンタ制御手段を備えた、
ことを特徴とする情報処理制御装置。
【請求項３】
請求項２記載の情報処理制御装置において、
上記命令供給制御手段は、上記第1のカウンタと、クロックサイクル毎に該第1のカウンタの値を増加させた値を出力するインクリメント回路と、上記第1のカウンタが保持する値、または上記インクリメント回路の出力する値のいずれか一方を選択して出力するセレクタとを有して構成され、
上記プログラムカウンタ制御手段は、上記同時実行できない一命令実行命令の配置されている総数を示すビットの値を、上記第1のカウンタの動作と同じタイミングで計数し、該計数が終了するまでの間、上記第1のカウンタの値が上記セレクタから選択されて出力されるよう、上記セレクタを制御する信号を出力する、
ことを特徴とする情報処理制御装置。
【請求項４】
請求項２記載の情報処理制御装置において、
分岐命令発行時の命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値と、分岐命令解読後、実際に分岐先の命令が解読されるまでの間に存在する遅延スロットにおける命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値から、上記命令供給制御手段によるアドレスを制御し、分岐アドレスを動的に設定する分岐アドレス補正手段を備えた、
ことを特徴とする情報処理制御装置。
【請求項５】
請求項２記載の情報処理制御装置において、
割り込み発生時に上記命令メモリ上のアドレスを表すプログラムカウンタ値と、単位命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避手段を備えた、
ことを特徴とする情報処理制御装置。
【請求項６】
請求項２記載の情報処理制御装置において、
同時実行でない一命令実行命令をビット圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示す識別子を、上記命令のコードに備えた、
ことを特徴とする情報処理制御装置。
【請求項７】
請求項２記載の情報処理制御装置において、
上記プログラムカウンタ制御手段は、上記命令解読手段により同時実行できない複数の一命令実行命令が検出されたときに、命令メモリへのアクセスを禁止する命令メモリ制御手段を備えた、
ことを特徴とする情報処理制御装置。
【請求項８】
請求項２記載の情報処理制御装置において、
分岐命令解読時に、分岐先の命令が同時実行でない複数の一命令実行命令かどうかを示す情報と、上記命令ビットフィールド上での処理順を示す値を一時的に保持するデータ保持手段を備え、
上記プログラムカウンタ制御装置は、分岐先で上記データ保持手段に保持された命令の実行順番号を読み出してそれぞれの命令に応じた処理を行うことを特徴とする情報処理制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムをデコードしながらレジスタあるいはメモリに格納されたデータ間の演算を行うプロセッサ（情報処理制御装置）に関し、特に、プログラムのコードサイズを削減し、命令メモリの面積を削減することを支援するプロセッサに関するものである。
【０００２】
【従来の技術】
図８に一般的な情報処理制御装置としてのプロセッサの構成を示す。プロセッサとは、３７０で示される、命令解読を行う命令解読装置と、３７２で示される、命令供給を制御する命令供給制御装置と、３７４で示される、命令を格納する命令メモリと、３７７で示されるデータを保持するレジスタ群と、３７９で示される、複数の演算器とを備える情報処理制御装置のことである。
【０００３】
上記プロセッサでは命令３７５を命令解読装置３７０が解読し、解読した内容に基づき、命令解読装置３７０が、命令供給制御装置３７２を制御線３７１を用いて制御し、レジスタ群３７７を制御線３７６を用いて制御し、さらに、演算器３７９を制御線３７８を用いて制御する。
【０００４】
演算器３７９は信号線３８０からレジスタ群３７７のデータを取り込んで演算し、レジスタ群３７７は演算器３７９から信号線３８１を介して出力データを取り込む。
また、上記命令供給制御装置３７２は制御線３７３を用いて命令メモリ３７４を制御する。命令解読装置３７０は命令メモリ３７４から出力される命令３７５を解読する。
【０００５】
一般的に画像処理ＬＳＩや音声処理ＬＳＩに内蔵されているプロセッサでは演算性能をあげるために、複数の命令を同時実行できる命令と、同時実行できない一命令実行命令を実行する命令を備える構成になっているものが多い。
【０００６】
図９に従来使用していた命令ビットフィールドの概要図を示す。１０１は複数命令を同時実行するための命令ビットフィールドを示し、１０２は同時実行でない一命令実行命令を実行するための命令ビットフィールドを示す。各命令ビットフィールドにおいて、１０３は命令ビットフィールドが同時実行の複数命令を含むか、同時実行でない一命令実行命令を含むかを示すビットである。１０４，１０５は命令ビットフィールド１０１における同時実行可能な複数命令を示す。１０６は命令ビットフィールド１０２における同時実行でない一命令実行命令を示す。
【０００７】
さらに従来のプロセッサでは、これらの命令を実現するために、図８に示した命令供給制御装置３７２として、図１１に示すような構成を有する命令供給制御装置を備えていた。図１１は命令供給制御装置３７２の詳細な構成の一例を示すブロック図であり、１５０はプログラムカウンタを保持するラッチであり、該ラッチ１５０から出力されるプログラムカウンタを示す信号線１５１をインクリメント回路１５２でインクリメントすることにより、クロックサイクル毎に、プログラムカウンタを保持するラッチ１５０をインクリメントし、さらに、命令フェッチプログラムカウンタを示す信号線１５３もインクリメントする。従来のプロセッサでは命令供給制御装置３７２から出力される前記信号線１５３（３７３）により命令メモリ３７４から命令解読装置３７０への命令供給の制御を行っていた。
【０００８】
また、従来技術として、例えば、特開平９−８４００４号公報に示されるように、同時実行でない一命令実行命令を二命令配置した命令ビットフィールドを持つようなプロセッサも存在する。図１０にこのような命令ビットフィールドの概要図を示す。１１１は複数命令を同時実行するための命令ビットフィールドを示し、１１２は同時実行でない一命令実行命令を実行するための命令ビットフィールドを示し、１１３は同時実行でない一命令実行命令を圧縮して得られた、同時実行でない２つの一命令実行命令を含む命令ビットフィールドを示す。各命令ビットフィールドにおいて、１１４，１１５は２ビットの組み合わせで、命令ビットフィールドが同時実行可能な複数命令を含むか、同時実行でない単一の一命令実行命令を含むか、同時実行でない２つの命令を含むかを示すビットである。
また、１１６，１１７は同時実行可能な複数命令を示し、１１８，１１９，１２０は同時実行でない一命令実行命令を示す。
【０００９】
命令ビットフィールドを以上のように定義して、複数命令を同時実行できる命令を備えることで、図９に示した命令を備える情報処理装置に比べて命令を圧縮処理することで同時実行できない一命令実行の命令を実行する場合の命令ビットフィールドの無駄を削減することができるが、このような構成では、単位命令ビットフィールドに２つの命令しか圧縮配置できないため、効果的な命令コードの削減を行うことができず、命令メモリの効果的な面積の低減を行うことができないという問題点があった。
【００１０】
さらに、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置することにより、コードの削減を図ったとしても、図１１に示すような構成の命令供給制御装置では、一命令実行命令を２つのパッケージに圧縮しているために、命令がダブルカウントされてしまい、命令メモリ上のアドレスと命令フェッチプログラムカウンタ１５３の値とがずれてしまうため、命令供給が正しく実現されないという問題点があった。
【００１１】
さらに、図９に示したような従来の構成では、命令ビットフィールド上に同時実行でない複数の命令が配置されているわけではないので、常に命令メモリへアクセスする必要があり、メモリにおける消費電力が増大するという問題点があった。
【００１２】
【発明が解決しようとする課題】
従来の情報処理制御装置は以上のように構成されており、同時実行でない一命令実行の命令を実行する場合は、命令メモリの面積が増大するという問題点や、常に命令メモリへアクセスする必要から、メモリにおける消費電力が増大する、という問題点があった。
【００１３】
本発明は以上のような問題点を解消するためになされたもので、命令コードの削減、ひいては命令メモリの面積削減、及び命令メモリに対する正しい命令供給制御を行うことができる情報処理制御装置を提供することを目的とする。
また、メモリにおける消費電力の低減を実現することのできる情報処理制御装置を提供することを目的としている。
【００１４】
【課題を解決するための手段】
本発明の請求項１記載の情報処理制御装置は、命令解読を行う命令解読手段と、命令供給を制御する命令供給制御手段と、データを保持するレジスタ群と、命令を格納する命令メモリと、上記命令解読手段によって解読された命令に従って、上記レジスタ群からデータを読み出し、このデータを使用して演算を実行する複数の演算回路とを有し、複数命令を同時に実行する命令と、同時実行でない一命令実行命令を実行する命令とを受け付ける情報処理制御装置において、上記命令供給制御手段が、単位命令ビットフィールド中の同時実行でない複数の一命令実行命令を配置していることを示すビット及び該一命令実行命令の総数を示すビットに基づいて、上記命令メモリから上記命令解読手段への上記単位命令の供給を制御するものである。
【００１５】
また、本発明の請求項２にかかる情報処理制御装置は、請求項１記載の情報処理制御装置において、上記命令供給制御手段は上記命令メモリ上のアドレスを表す第１のカウンタを有しており、命令ビットフィールド上での命令の番号を表す第２のカウンタを有し、上記第１のカウンタによるアドレス指定を、上記同時実行できない一命令実行命令の配置されている総数を示すビットに応じて制御するプログラムカウンタ制御手段を備えたものである。
【００１６】
また、本発明の請求項３にかかる情報処理制御装置は、請求項２記載の情報処理制御装置において、上記命令供給制御手段は、上記第1のカウンタと、クロックサイクル毎に該第1のカウンタの値を増加させた値を出力するインクリメント回路と、上記第1のカウンタが保持する値、または上記インクリメント回路の出力する値のいずれか一方を選択して出力するセレクタとを有して構成され、上記プログラムカウンタ制御手段は、上記同時実行できない一命令実行命令の配置されている総数を示すビットの値を、上記第1のカウンタの動作と同じタイミングで計数し、該計数が終了するまでの間、上記第1のカウンタの値が上記セレクタから選択されて出力されるよう、上記セレクタを制御する信号を出力するものである。
【００１７】
また、本発明の請求項４にかかる情報処理制御装置は、請求項２記載の情報処理制御装置において、分岐命令発行時の命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値と、分岐命令解読後、実際に分岐先の命令が解読されるまでの間に存在する遅延スロットにおける命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値から、上記命令供給制御手段によるアドレスを制御し、分岐アドレスを動的に設定する分岐アドレス補正手段を備えたものである。
【００１８】
また、本発明の請求項５にかかる情報処理制御装置は、請求項２記載の情報処理制御装置において、割り込み発生時に上記命令メモリ上のアドレスを表すプログラムカウンタ値と、単位命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避手段を備えたものである。
【００１９】
また、本発明の請求項６にかかる情報処理制御装置は、請求項２記載の情報処理制御装置において、同時実行でない一命令実行命令をビット圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示す識別子を、上記命令のコードに備えたものである。
【００２０】
また、本発明の請求項７にかかる情報処理制御装置は、請求項２記載の情報処理制御装置において、上記プログラムカウンタ制御手段は、上記命令解読手段により同時実行できない複数の一命令実行命令が検出されたときに、命令メモリへのアクセスを禁止する命令メモリ制御手段を備えたものである。
【００２１】
また、本発明の請求項８にかかる情報処理制御装置は、請求項２記載の情報処理制御装置において、分岐命令解読時に、分岐先の命令が同時実行でない複数の一命令実行命令かどうかを示す情報と、上記命令ビットフィールド上での処理順を示す値を一時的に保持するデータ保持手段を備え、上記プログラムカウンタ制御装置は、分岐先で上記データ保持手段に保持された命令の実行順番号を読み出してそれぞれの命令に応じた処理を行うものである。
【００２２】
【発明の実施の形態】
（実施の形態１）
以下、本発明の実施の形態１にかかる情報処理制御装置について図面を参照しながら説明する。図１は本実施の形態１による情報処理制御装置の命令ビットフィールドを示す概要図である。１３１は複数命令を同時実行するための命令ビットフィールドを示し、１３２は同時実行でない一命令実行命令を実行するための命令ビットフィールドを示し、１３３は同時実行でない複数の一命令実行命令を含む命令ビットフィールドを示す。さらに各命令ビットフィールドにおいて、１３４、１３５は命令ビットフィールドが同時実行可能な複数命令を含むか、同時実行でない一命令実行命令を含むか、同時実行でない複数の一命令実行命令を含むかを示すビットである。
【００２３】
また、上記命令ビットフィールド１３１において１３６、１３７は、同時実行可能な複数命令を示す。上記命令ビットフィールド１３２において１３８は、同時実行でない一命令実行命令を示す。さらに、上記命令ビットフィールド１３３において、１３９は命令ビットフィールドに含まれている同時実行でない複数の一命令実行命令の総数を示し、１４０、１４１、１４２は同時実行でない複数の一命令実行命令を示す。
【００２４】
図２（ａ）は本発明の実施の形態１にかかる情報処理制御装置の構成を示すブロック図である。図において、図８と同一符号は同一、または相当部分を示し、２９０は命令解読装置３７０の解読結果に応じて命令供給制御装置４００の動作を制御する命令供給制御コマンド２９１を出力するプログラムカウンタ（PC）制御装置である。その他の構成については、図８と同等である。
【００２５】
図２（ｂ）は上記情報処理制御装置を構成する命令供給制御装置４００、及びプログラムカウンタ制御装置２９０の詳細な構成を示すブロック図である。図において、１６０は命令メモリ上のアドレスを表すプログラムカウンタを示し、１７０は同時実行でない複数の一命令実行命令が実行されているか否かを表すビットを示すラッチ、１７１は現在、命令ビットフィールド上での命令の番号を表すラッチカウンタである。１７７は命令解読装置３７０から送られてくる信号線であり、今解読している命令が同時実行でない一命令実行命令かどうかを示す信号である。１７８は命令解読装置３７０から送られてくる信号線であり、今解読している命令が、同時実行でない一命令実行命令の含まれる総数を示す。これら信号線１７７、１７８の信号は、今実行されている命令が同時実行でない複数の一命令実行命令であり、しかも、命令ビットフィールド上で最初に実行される命令である場合のみ、ラッチ１７０とカウンタ１７１に初期値として設定される。
【００２６】
カウンタ値を保持するラッチカウンタ１７１から出力されるカウンタ値を示す信号線１７２を、デクリメント回路１７３でデクリメントすることにより、クロックサイクル毎にラッチを保持するラッチカウンタ１７１をデクリメントし、さらにラッチカウンタ１７１に入力される信号線１７４もデクリメントする。
【００２７】
１７６は命令供給制御装置４００を制御する制御回路であり、ラッチ１７０からの出力信号１８０とラッチカウンタ１７１からの出力信号１７９とから、命令供給制御装置４００の動作を制御するための制御線信号１７５（２９１）を生成する。プログラムカウンタ値を保持するラッチ（プログラムカウンタ）１６０から出力されるプログラムカウンタ値を示す信号線１６１は、インクリメント回路１６２でインクリメントされ、クロックサイクル毎にプログラムカウンタ１６０をインクリメントするか、以前の値をそのまま保持するかが、制御する制御線１７５の信号がセレクタ１６４を制御することにより決まるように構成されている。
【００２８】
例えば、信号線１７７に同時実行できない複数の一命令実行命令が入力されたことを意味する値が入力され、かつ、信号線１７８に同時実効できない一命令実行命令の総数「３」が入力された場合、このとき命令供給制御装置４００のセレクタ１６４には、該セレクタ１６４がプログラムカウンタ１６０の値を保持するよう制御する信号が制御信号１７５を介して供給され、デクリメント回路１７３によってラッチカウンタ１７１の値が「０」となるまでの期間その状態を継続する。プログラムカウンタ１６０とラッチカウンタ１７１、およびデクリメント回路１７３は同一のクロックにて動作しているため、３クロック分の期間はプログラムカウンタ１６０の値は同じ値が保持されて出力されることになる。
また、命令フェッチプログラムカウンタを示す信号線１６３も同様に制御線１７５の信号によってその値が決まるようになる。
【００２９】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図１２を参照しつつ説明する。
まず、処理が開始されると、ステップＳ１２００において、命令解読装置３７０にて命令が解読され、解読した命令が同時実行できない複数の一命令実行命令が含まれているか否かを判定する。
【００３０】
上記ステップＳ１２００において、解読した命令が同時実行できない複数の一命令実行命令が含まれていないと判定された場合、ステップＳ１２０２に進んで、命令供給制御装置４００はプログラムカウンタの値を１つ増加させた値を出力する。
【００３１】
一方、上記ステップＳ１２００において、解読した命令が同時実行できない複数の一命令実行命令が含まれていると判定された場合には、ステップＳ１２０１に進んで、プログラムカウンタ制御装置２９０を構成するラッチカウンタ１７１の値が０であるか否かを調べ、この値が０となるまで処理を繰り返す。この結果、ラッチカウンタ１７１の値が０となるまでのクロック期間、命令供給制御装置４００からは同じ値（命令フェッチ）が出力されることになる。
【００３２】
そして、上記ステップＳ１２０１において、ラッチカウンタ１７１の値が０となったことが判定されると、ステップＳ１２０２に進んで、命令供給制御装置４００から、プログラムカウンタ１６０の値が１つ増加させた値が出力される。
【００３３】
このように本実施の形態１によれば、単位命令ビットフィールドに同時実行不可能な複数の一命令実行命令を配置するとともに、同時実行不可能な複数の一命令実行命令１４０〜１４２の総数を示すビット１３９を設け、命令解読装置３７０においてビット１３９を検出してプログラムカウンタ制御装置２９０によって命令供給制御装置４００のカウント値を制御するようにしたので、命令メモリ３７４上のアドレスと命令フェッチプログラムカウンタ１６３との値が一致するようになり、同時実行できない一命令実行命令をより多くに圧縮して命令コードを削減できるとともに、命令供給を正しく実行して回路の正常動作を実現することができる。
【００３４】
（実施の形態２）
次の本発明の実施の形態２にかかる情報処理制御装置について説明する。図３（ａ）は本実施の形態２にかかる情報処理制御装置の構成を示すブロック図であり、図２と同一符号は同一、または相当部分を示し、図において、４０１は分岐アドレス補正装置であり、プログラムカウンタ制御装置２９０の出力信号、及び命令解読装置３７０の出力信号（オフセット値）４０２を受けて、命令供給制御装置４００ａに補正分岐アドレス２０３を出力する。
【００３５】
また、図３（ｂ）は上記情報処理制御装置を構成する命令供給制御装置４００ａの詳細な構成を示すブロック図である。上記分岐アドレス補正回路４０１は、加算器２００，分岐アドレス制御回路２０２，分岐アドレス制御回路コントロール回路２１８とを主な要素として構成されている。
【００３６】
命令ビットフォーマット中に同時実行でない複数の一命令実行命令を含む構成にすると分岐命令に起因する遅延スロット（分岐命令が解読されて実際に分岐処理が行われるまでの期間に続けて入力された命令）にあたる命令が含まれるような場合、命令アセンブラが分岐先を正しく計算するにはアセンブラが複雑になり、分岐を実現できない可能性もある。
【００３７】
上記分岐アドレス制御回路２０２は、分岐命令の状態と分岐における遅延スロットの命令の状態、すなわち、圧縮の有無やアドレス情報から、分岐先アドレスを動的に制御する分岐アドレス制御回路であり、この回路により正確に分岐を実現することが可能となる。
【００３８】
また、分岐アドレス制御回路コントロール回路２１８において、２１０は分岐命令が同時実行でない一命令実行命令かどうかを示すラッチであり、２１１は分岐命令が同時実行でない一命令実行命令において命令ビットフォーマット上での何番目に処理される命令かを示すラッチである。２１４は分岐の遅延命令が同時実行でない一命令実行命令かどうかを示すラッチであり、２１５は分岐の遅延命令が同時実行でない一命令実行命令において命令ビットフォーマット上での何番目に処理される命令かを示すラッチである。
【００３９】
２１２、２１３、２１６、２１７は上記ラッチ２１０、２１１、２１４、２１５から出力される信号であり、制御回路２１８ａに入力される。制御回路２１８ａは分岐命令の状態と分岐の遅延命令の状態とから、制御線信号２２０を生成し、該信号２２０によって分岐アドレス制御回路２０２を制御するように構成されている。２０３は分岐アドレス制御回路２０２から生成された分岐アドレスを示す信号線である。またラッチ１６０から出力されるプログラムカウンタの値を示す信号線１６１は、インクリメント回路１６２でインクリメントされ、クロックサイクル毎にプログラムカウンタ１６０をインクリメントするか、以前の値をそのまま保持するか、もしくは、分岐先アドレスを取り込むかが、セレクタ２３０、１６４の動作状態によって決まるように構成されている。１６５はプログラムカウンタを保持するラッチ１６０への入力信号である。上記インクリメント回路１６２からの出力信号１６３は加算器２００でオフセット４０２と加算され、加算された出力信号２０１は分岐アドレス制御回路２０２に入力される。また、命令フェッチプログラムカウンタ値２３１は、分岐アドレスを表す信号線２０３と、インクリメント回路１６２の出力信号線１６３とをセレクタ２３０で切り替えることにより決まる。
【００４０】
さらに命令供給制御装置４００ａにおいては、インクリメント回路１６２の出力と、分岐アドレス補正装置４０１の出力とのいずれか一方を選択して出力するセレクタ２３０が付加された点が、図２で示した命令供給制御装置４００と異なる。また、セレクタ２３０は、命令解読装置３７０の出力信号３７１ａによって制御され、その出力端には、セレクタ１６４の入力が接続されている。
【００４１】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図１３を参照しつつ説明する。
処理がスタートすると、ステップＳ１３００において、命令解読装置３７０において分岐があるか否かが判定され、分岐がない場合にはステップＳ１２００に進み、図１２で説明したフロー処理を行う。
【００４２】
一方、上記ステップＳ１３００において、分岐があると判定された場合にはステップＳ１３０１に進んで、分岐アドレス補正装置４０１を構成する分岐アドレス制御回路コントロール回路２１８の出力に基づき、制御回路２１８ａによって、分岐命令と分岐の遅延命令の関係から、分岐先アドレスの補正の必要の有無が判定され、補正の必要がない場合には、ステップＳ１３０２に進んで、分岐アドレス制御回路２０２は、プログラムカウンタの値にオフセット値を加算した値を出力し、セレクタ２３０によってこの分岐アドレス２０３が選択されて、最終的に命令フェッチとして出力される。
【００４３】
一方、上記ステップＳ１３０１において、分岐先アドレスの補正が必要であると判定された場合には、ステップＳ１３０３に進んで、分岐アドレス制御回路２０２は、プログラムカウンタの値にオフセット値を加算した値に、さらに分岐命令、及び遅延スロットに応じた補正値を加算して出力し、セレクタ２３０によってこの分岐アドレス２０３が選択されて命令フェッチとして出力される。
【００４４】
このように本実施の形態２にかかる情報処理制御装置によれば、分岐アドレス補正装置４０１を設け、分岐命令と遅延スロットとの関係から、分岐先アドレスを補正するようにしたので、命令メモリ３７４上のアドレスと命令フェッチプログラムカウンタ２３１の値とが一致するようになり、分岐命令が含まれている場合においても、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減できるとともに、命令供給を正しく実行して回路の正常動作を実現することができる。
【００４５】
（実施の形態３）
次に本発明の実施の形態３にかかる情報処理制御装置について説明する。図４（ａ）は本実施の形態３にかかる情報処理制御装置の構成を示すブロック図であり、図において、図３と同一符号は同一、または相当部分を示し、４０３は、割り込み発生時に、命令メモリ３７４上のアドレスを表すプログラムカウンタ値と、命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避装置である。
【００４６】
また、図４（ｂ）は、上記情報処理制御装置を構成する命令供給制御装置４００ｂ、及びプログラムカウンタ制御装置２９０の詳細な構成を示すブロック図である。図において、割り込み発生時にはプログラムカウンタ１６０の値をラッチ２８０に退避させ、さらに、同時実行でない一命令実行命令かどうかを示すラッチ１７０の値をラッチ２８１に退避させ、命令ビットフィールド上の命令番号を表すカウンタ２５１をラッチ２８２に退避させるように構成されている。
【００４７】
さらに、割り込みからの復元時には、割り込み時に退避したラッチ２８０の値をプログラムカウンタ１６０の値のメモリ上のアドレスとして設定し、また、ラッチ２８１の値を、分岐命令が同時実行でない一命令実行命令かどうかを示すラッチ１７０に設定し、さらに、ラッチ２８２の値を命令ビットフィールド上の命令番号を表すカウンタ２５１に設定する。以上のような構成によって、割り込み時および割り込みから復元時に前記設定を行うことで、命令メモリ３７４上のアドレスと命令フェッチプログラムカウンタ２３１の値とを一致させて、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減する場合に、命令供給を正しく実行して回路の正常動作を実現することができる。
【００４８】
また、ラッチ１６０から出力されるプログラムカウンタを示す信号線１６１はインクリメント回路１６２でインクリメントされ、プログラムカウンタ１６０がクロックサイクル毎にプログラムカウンタ１６０をインクリメントした値を取り込むか、以前の値をそのまま取り込むか、割り込み発生時における割り込みコントローラ４０４から供給される分岐アドレス２７０（データ線A）を取り込むか、割り込みからの復元のために、ラッチ２８０で退避されている値を取り込むかは、セレクタ２３０ａ、セレクタ１６４を用いて選択されるように構成されている。
【００４９】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図１４を参照しつつ説明する。
まず、処理が開始されると、ステップＳ１４００において、割り込みコントローラにより割り込みが検出されなかった場合には、ステップＳ１２００に進み、図１２で示した手順と同じ手順で処理が行われる。
【００５０】
一方、割り込みコントローラにより割り込みが検出された場合には、ステップＳ１４０１に進み、割り込みコントローラ４０４は制御線Ｂの信号により、資源退避装置４０３に対して、データ線Ｂで示される、命令供給制御装置４００ｂを構成するプログラムカウンタ１６０の値をラッチ２８０に退避させる指示と、データ線Ｄで示される、ラッチ２８１，２８２にそれぞれラッチ１７０の値とカウンタ２５１の値を退避させるべき指示を出す。
【００５１】
次いで、ステップＳ１４０２において、割り込みルーチンが実行されると、続いてステップＳ１４０３において、命令解読装置３７０は、ステップＳ１４０１において、制御線Ｃで示される信号によって資源退避装置４０３に対して、ラッチ２８０〜２８２に退避させた値をそれぞれ、プログラムカウンタ１６０，ラッチ１７０，カウンタ２５１にデータ線Ｃ，Ｅによって復元するように指示が行われる。
【００５２】
このように本実施の形態３によれば、資源退避装置４０３を設け、割り込みコントローラ４０４により割り込みが検出された場合には、命令メモリ３７４上のアドレスを表すプログラムカウンタ値と、命令ビットフィールド上での命令の番号を表すカウンタ値とを資源退避装置４０３に退避させ、割り込み処理終了後に資源退避装置４０３に退避させた値をそれぞれ元に戻すようにしたから、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減する場合に、割り込み処理が発生しても処理復帰を確実に行うことができる。
【００５３】
（実施の形態４）
次に本発明の実施の形態４にかかる情報処理制御装置について説明する。図５は本実施の形態４にかかる情報処理制御装置において、同時実行でない一命令実行命令を圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示すdirectiveを持つ命令アセンブラを備える場合のデータの様子を示す。
【００５４】
図において、３００、３０１は圧縮させないことを指定するdirectiveを示す。命令コード内にdirective３００、３０１で囲まれたコードを命令アセンブラが検出すると、命令アセンブラはその間の命令に対してビット圧縮を行わない。即ち、命令コードを作成する際に、directiveで囲われた部分を作ることで、その間、命令ビットフィールド上に同時実行でない複数の一命令実行命令が存在しないという設定ができる。
このように本実施の形態４によれば、圧縮に不向きな命令に対してdirectiveにてコードを囲むようにしたので、圧縮に不向きなコマンドを保護することができる。
【００５５】
（実施の形態５）
次に本発明の実施の形態５にかかる情報処理制御装置について説明する。命令ビットフィールド上に同時実行でない複数の一命令実行命令を含む命令を実行している場合、実際には、命令メモリへのアクセスを一度行うことにより、複数の命令を取り込むことができ、このような場合には命令を実行するたびに命令メモリへアクセスすることは事実上不要である。本実施の形態５では、かかる場合のメモリへの不要なアクセスを低減して消費電力の低減を図ったものである。
【００５６】
すなわち、図６（ａ）は本実施の形態５にかかる情報処理制御装置の構成を示すブロック図であり、図２と同一符号は同一、または相当部分を示し、１７６制御回路は、ラッチ１７０の出力信号１８０と、カウンタ１７１の出力信号１７９から、命令メモリ３７４へのアクセスを止める制御信号（制御線）３４０と、バッファ３４６へのデータの取り込みを止める制御信号３４１とを生成する。
【００５７】
３４２はアクセス判定回路であり、命令メモリ３７４へのアクセスを止める制御信号３４０を受け取ると、命令メモリ３７４への制御線３４３を用いて、命令メモリ３７４へのアクセスを止める。３４５は命令メモリ３７４からの出力データを表す。
【００５８】
また、バッファ３４６は、データの取り込みを止める制御信号３４１を受け取ると命令メモリ３７４からのデータの取り込みを止める。これにより、命令ビットフィールド上に同時実行でない複数の一命令実行命令を含む命令を一旦取り込むと、同時実行でない複数の一命令実行命令が命令解読装置３７０で全て解読されるまで、バッファ３４６からの出力データ３４７は保持され、命令解読が正しく行われることになる。
【００５９】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図１５を参照しつつ説明する。
まず、処理が開始されると、ステップＳ１５００においは通常メモリ３７４へのアクセスが許可されている状態となっており、プログラムカウンタ制御装置２９０は、メモリアクセス判定装置３４２にアクセスを可能にすることを示す制御信号３４０を送って、メモリ３７４へのアクセスを許可し、また、バッファ３４６に対してデータの取り込みを許可することを示す制御信号３４１を送信することで、メモリ３７４からのデータの取り込みを許可して通常の処理を行い、処理が終了すると、ステップＳ１５０１に進む。
【００６０】
次いで、ステップＳ１５０１において命令解読装置３７０は、同時実行できない複数の一命令実行命令を含んでいるか否かを判定し、同時実行不可能な複数の一命令実行命令が含まれていない場合、ステップＳ１５０４に進んでプログラムカウンタ１６０の値を１つ増加させる。一方、ステップＳ１５０１において、命令解読装置３７０は、同時実行できない複数の一命令実行命令を含んでいるか否かを判定し、同時実行不可能な複数の一命令実行命令が含まれていると判定された場合には、ステップＳ１５０２に進んで、プログラムカウンタ制御装置２９０は、メモリアクセス判定装置３４２にアクセスを可能にしないことを示す制御信号３４０を送って、メモリ３７４へのアクセスを禁止し、また、バッファ３４６に対してデータの取り込みを許可しないことを示す制御信号３４１を送信することで、メモリ３７４からのデータの取り込みを禁止する。
【００６１】
そしてステップＳ１５０３に進んで、プログラムカウンタ制御装置２９０を構成するカウンタ１７１の値が０となるまで、ステップＳ１５０２の状態を維持する。
そして、ステップＳ１５０３において、カウンタの値が０となったことが判定されると、ステップＳ１５０４に進んで、プログラムカウンタ１６０の値を１つ増加させる。
【００６２】
このように本実施の形態５によれば、プログラムカウンタ制御装置２９０において、同時実行できない複数の一命令実行命令が検出された場合に、メモリアクセス判定手段３４２に対してメモリ３７４へのアクセスを禁止する制御信号３４０を、及びバッファ３４６に対して、メモリ３７４からのデータの取り込みを禁止する制御信号３４１を出力するようにしたから、すでに読み出されたデータに対する無駄なアクセスを低減でき、ひいてはメモリの消費電力を削減することができる。
【００６３】
（実施の形態６）
次に本発明の実施の形態６にかかる情報処理制御装置について説明する。図７は、実施の形態６にかかる情報処理制御装置の構成を示すブロック図であり、図において、図２と同一符号は同一、または相当部分を示し、５００は命令解読装置３７０で分岐命令が解読された場合、分岐先の命令が同時実行でない、複数の一命令実行命令かどうかという情報と、命令ビットフィールド上での処理順を示す値を一時的に保持するラッチである。
【００６４】
以下、動作について説明する。
以上のような構成を有する実施の形態６の情報処理制御装置では、命令ビットフィールドとして、分岐命令の中に、分岐先のオフセットと、分岐先が命令ビットフィールド上で同時実行でない複数の一命令実行命令を含む命令に分岐するかどうかという情報と、前記命令において分岐先における命令のビットフィールド上で何番目に実行されるかという情報と、を含むことで、分岐後において、どの命令を順番に実行するかということを任意に決定することができる。
【００６５】
すなわち、命令解読装置３７０に、分岐命令が入ってきた場合、前記情報から命令供給制御回路４００（図２参照）に対し、分岐先に分岐した時点で、ラッチ５００からの値（ラッチカウンタ値）を設定して命令供給を正しく制御する。
【００６６】
さらに、分岐命令発行時に分岐先が命令ビットフィールド上で同時実行でない複数の一命令実行命令を含む命令に分岐するかどうかという情報と、前記命令において分岐先における命令メモリの何番目に実行されるかという情報とを、ラッチ５００に退避させておいた上で、分岐命令を実行する。次いで、命令解読装置３７０にて分岐先の命令を解読する際に、プログラムカウンタ制御装置２９０は上記ラッチ５００より情報を読み出して、複数の一命令実行命令を含むかどうかを示す信号と、命令ビットフィールド上での処理順番を示す値を、それぞれラッチ１７０，カウンタ１７１に設定する。
これらのことを行うことにより、同時実行できない複数の一命令実行命令のうちのいずれの命令にも任意に分岐することが可能となる。
【００６７】
このように本実施の形態６によれば、同時実行できない複数の一命令実行命令がある場合に、複数の一命令実行命令を含むかどうかを示す信号と、命令ビットフィールド上での処理順番を示す値とをラッチ５００に記憶させておき、分岐先でその順番に従った処理を行われるように、該命令の順番を、プログラムカウンタ制御装置２９０によって上記ラッチ５００より読み出すようにしたので、命令の処理の、分岐の自由度の向上を図ることができる。
【００６８】
なお、上記各実施の形態では、単位命令ビットフィールドに３つの命令を配置したものを例として示したが、単位命令ビットフィールドに配置される複数の命令の数は、これに限られるものではないことは言うまでもない。
【００６９】
【発明の効果】
以上のように、本発明の請求項１にかかる情報処理制御装置によれば、命令解読を行う命令解読手段と、命令供給を制御する命令供給制御手段と、データを保持するレジスタ群と、命令を格納する命令メモリと、上記命令解読手段によって解読された命令に従って、上記レジスタ群からデータを読み出し、このデータを使用して演算を実行する複数の演算回路とを有し、複数命令を同時に実行する命令と、同時実行でない一命令実行命令を実行する命令とを受け付ける情報処理制御装置において、上記命令供給制御手段が、単位命令ビットフィールド中の同時実行でない複数の一命令実行命令を配置していることを示すビット及び該一命令実行命令の総数を示すビットに基づいて、上記命令メモリから上記命令解読手段への上記単位命令の供給を制御する、ものとしたので、より命令コードを圧縮することができ、ひいてはメモリ面積を削減することができるという効果がある。
【００７０】
また、本発明の請求項２にかかる情報処理制御装置によれば、請求項１記載の情報処理制御装置において、上記命令供給制御手段は上記命令メモリ上のアドレスを表す第１のカウンタを有しており、命令ビットフィールド上での命令の番号を表す第２のカウンタを有し、上記第１のカウンタによるアドレス指定を、上記同時実行できない一命令実行命令の配置されている総数を示すビットに応じて制御するプログラムカウンタ制御手段を備えた、ものとしたので、複数の命令コードを圧縮しても、命令メモリ上でのアドレスと命令フェッチプログラムカウンタの値との同期をとることができるという効果が得られる。
【００７１】
また、本発明の請求項３にかかる情報処理制御装置によれば、請求項２記載の情報処理制御装置において、上記命令供給制御手段は、上記第1のカウンタと、クロックサイクル毎に該第1のカウンタの値を増加させた値を出力するインクリメント回路と、上記第1のカウンタが保持する値、または、上記インクリメント回路の出力する値のいずれか一方を選択して出力するセレクタとを有して構成され、上記プログラムカウンタ制御手段は、上記同時実行できない一命令実行命令の配置されている総数を示すビットの値を、上記第1のカウンタの動作と同じタイミングで計数し、該計数が終了するまでの間、上記第1のカウンタの値が上記セレクタから選択されて出力されるよう、上記セレクタを制御する信号を出力するものとしたので、複数の命令コードを圧縮しても、命令メモリ上でのアドレスと命令フェッチプログラムカウンタの値との同期をとることができるという効果が得られる。
【００７２】
また、本発明の請求項４にかかる情報処理制御装置によれば、請求項２記載の情報処理制御装置において、分岐命令発行時の命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値と、分岐命令解読後、実際に分岐先の命令が解読されるまでの間に存在する遅延スロットにおける命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値から、上記命令供給制御手段によるアドレスを制御し、分岐アドレスを動的に設定する分岐アドレス補正手段を備えたものとしたので、分岐命令が含まれている場合においても、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減できるとともに、命令供給を正しく実行して回路の正常動作を実現することができるという効果が得られる。
【００７３】
また、本発明の請求項５にかかる情報処理制御装置によれば、請求項２記載の情報処理制御装置において、割り込み発生時に上記命令メモリ上のアドレスを表すプログラムカウンタ値と、単位命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避手段を備えたものとしたので、割り込み処理が発生しても、処理復帰を確実に行うことができるという効果が得られる。
【００７４】
また、本発明の請求項６にかかる情報処理制御装置によれば、請求項２記載の情報処理制御装置において、同時実行でない一命令実行命令をビット圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示す識別子を、上記命令のコードに備えたので、圧縮に不向きなコマンドを保護することができるという効果が得られる。
【００７５】
また、本発明の請求項７にかかる情報処理制御装置によれば、請求項２記載の情報処理制御装置において、上記プログラムカウンタ制御手段は、上記命令解読手段により同時実行できない複数の一命令実行命令が検出されたときに、命令メモリへのアクセスを禁止する命令メモリ制御手段を備えたものとしたので、すでに読み出されたデータに対する無駄なアクセスを低減でき、ひいてはメモリの消費電力を削減することができるという効果が得られる。
【００７６】
また、本発明の請求項８にかかる情報処理制御装置によれば、請求項２記載の情報処理制御装置において、分岐命令解読時に、分岐先の命令が同時実行でない複数の一命令実行命令かどうかを示す情報と、上記命令ビットフィールド上での処理順を示す値を一時的に保持するデータ保持手段を備え、上記プログラムカウンタ制御装置は、分岐先で上記データ保持手段に保持された命令の実行順番号を読み出してそれぞれの命令に応じた処理を行うようにしたので、圧縮された命令を任意の分岐先にて任意のタイミングで実行することが可能となり、処理の分岐の自由度の向上を図ることができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の情報処理制御装置であるプロセッサにおける命令ビットフィールドの概要を示す図である。
【図２】本発明の実施の形態１にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図３】本発明の実施の形態２にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図４】本発明の実施の形態３にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図５】本発明の実施の形態４にかかる情報処理制御装置であるプロセッサにおいて、directiveによる命令圧縮禁止指定を説明するためのデータフォーマットを示す図である。
【図６】本発明の実施の形態５にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図７】本発明の実施の形態６にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する情報処理制御装置の詳細な構成を示す図である。
【図８】一般的な従来の情報処理制御装置であるプロセッサの構成を示す図である。
【図９】従来のプロセッサにおける命令ビットフィールドの概要を示す図である。
【図１０】従来の他のプロセッサにおける命令ビットフィールドの概要を示す図である。
【図１１】従来のプロセッサを構成する命令供給制御装置の詳細な構成の一例を示す図である。
【図１２】上記実施の形態１にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【図１３】上記実施の形態２にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【図１４】上記実施の形態３にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【図１５】上記実施の形態５にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【符号の説明】
１３１〜１３３  命令ビットフィールド
１３４，１３５  組み合わせで、命令ビットフィールドが同時実行可能な複数命令を含むか、同時実行でない一命令実行命令を含むか、同時実行でない複数の一命令実行命令を含むかを示すビット
１３６〜１３８  命令
１３９  命令ビットフィールドに含まれている同時実行でない複数の一命令実行命令の総数を示すビット
１４０〜１４２  命令（圧縮された）
１６０  プログラムカウンタを保持するラッチ
１６１  プログラムカウンタを示す信号線
１６２  インクリメント回路(+1)
１６３  命令フェッチプログラムカウンタを示す信号線
１６４  セレクタ
１６５  プログラムカウンタを保持するラッチへの入力を示す信号線
１７０  ラッチ
１７１  ラッチカウンタ
１７２  カウンタを示す信号線
１７３  デクリメント回路(-1)
１７４  カウンタを保持するラッチへの入力を示す信号線
１７５  制御線
１７６  制御回路（命令メモリ制御手段）
１７７，１７８  命令解読装置から入力される信号線
１７９  出力信号
１８０  ラッチ１７０から出力される信号線
１８１  プログラムカウンタ制御回路
２００  加算器
２０１  加算器から出力される信号線
２０２  分岐アドレス制御回路
２０３  分岐アドレス制御回路から出力される信号線
２１０，２１１  ラッチ
２１２，２１３  ラッチから出力される信号線
２１４，２１５  ラッチ
２１６，２１７  ラッチから出力される信号線
２１８  分岐アドレス制御回路コントロール回路
２１８ａ  制御回路
２２０  制御線信号
２３０  セレクタ
２３１  命令フェッチプログラムカウンタを示す信号線
２５１  カウンタを保持するラッチ
２７０  割り込みでの分岐アドレス
２８０〜２８２  ラッチ
２９０  プログラムカウンタ（ＰＣ）制御装置
３００，３０１  directive
３４０，３４１  制御線
３４２  メモリアクセス判定装置
３４３  制御線
３４５  データ線
３４６  バッファ
３４７  データ線
３７０  命令解読装置
３７４  命令メモリ
３７７  レジスタ群
３７９  演算器
４００，４００ａ，４００ｂ  命令供給制御装置
４０１  分岐アドレス補正装置
４０２  オフセット値
４０３  資源退避装置
４０４  割り込みコントローラ
５００  ラッチ
【図１】
0003814548.tif 000002
【図２】
0003814548.tif 000003
【図３】
0003814548.tif 000004
【図４】
0003814548.tif 000005
【図５】
0003814548.tif 000006
【図６】
0003814548.tif 000007
【図７】
0003814548.tif 000008
【図８】
0003814548.tif 000009
【図９】
0003814548.tif 000010
【図１０】
0003814548.tif 000011
【図１１】
0003814548.tif 000012
【図１２】
0003814548.tif 000013
【図１３】
0003814548.tif 000014
【図１４】
0003814548.tif 000015
【図１５】
0003814548.tif 000016