(57)【特許請求の範囲】
【請求項１】
動作制御入力を有する複数のオペレーティングブロックと、
命令入力を有し、かつ、制御器へ接続された制御出力を有する前記制御器にして、前記制御器がその入力に受信された命令を解釈し、その結果、前記オペレーティングブロックの動作制御信号をその出力に発生するように適応され、前記制御器が、情報を入力から出力へ転送するため、その出力をその入力へ接続するように適応される前記制御器と
を有し、
前記制御器は、少なくとも１つの命令がオペレーション部分とオペランド部分で形成されている１つの命令セットを解釈するように配列された命令インタプリタを含み、オペランド部分が前記動作制御信号の値を表していることを特徴とするプロセッサ。
【請求項２】
前記制御器は、バッファ論理回路（ＢＵＦ−０，．．．，ＢＵＦ−６）を含み、入力から前記回路への情報の転送が連続時間位相で行われ、かつ、前記回路から出力への情報の転送が単一時間位相で行われるように、前記接続が前記回路により行われることを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記制御器は、復号論理回路を含み、前記接続が前記回路により行われることを特徴とする請求項１に記載のプロセッサ。
【請求項４】
請求項１から請求項３までのいずれか１項に記載のプロセッサを有することを特徴とする半導体集積回路。
【請求項５】
請求項１から請求項３までのいずれか１項に記載の少なくとも１つのプロセッサを有することを特徴とする処理装置。
【請求項６】
動作コードを有するコンピュータ命令を受信し、
動作コードが主要命令セットの中からの命令を示すか、または、拡張された命令セットを示す制御コードであるかを決定することを含み、
動作コードが命令を示すならば、示されたその命令を実行し、
動作コードが制御コードであるならば、動作コードに関連したオペランドから、拡張された命令セットからの命令が実行されなければならないとの表示を得て、表示された命令を実行する命令処理方法であって、
前記命令処理方法は、制御器を有するプロセッサにより実行されるとともに、少なくとも１つの命令がオペレーション部分とオペランド部分で形成されている１つの命令セットを解釈することを含み、オペランド部分が前記動作制御信号の値を表していることを特徴とする命令処理方法。
【請求項７】
前記決定動作は、
動作コードが第一拡張された命令セットを示す第一制御コードであるか、または、第二拡張された命令セットを示す第二制御コードであるかを決定することからなり、
さらに、動作コードが第一制御コードあるならば、第一拡張された命令セットからの命令を実行し、動作コードが第二制御コードであるならば、第二拡張された命令セットからの命令を実行することからなっていることを特徴とする請求項６に記載の命令処理方法。
【請求項８】
前記命令処理方法は、制御器とオペレーティングブロックを有するプロセッサにより実行され、さらに、制御コードに関連したオペランドを制御器からオペレーティングブロックへ送ることを含み、オペランド自体は内部制御信号であることを特徴とする請求項６に記載の命令処理方法。
【請求項９】
前記命令処理方法は、制御器とオペレーティングブロックを有するプロセッサにより実行され、さらに、オペランドを制御器の複数のバッファへ連続時間位相で転送し、オペランドを複数のバッファからオペレーティングブロックへ単一時間位相で転送することを含んでいることを特徴とする請求項６に記載の命令処理方法。
【請求項１０】
前記命令処理方法は、命令を受信する入力と出力とを有する制御器を備えたブロックにより実行され、さらに、動作コードが制御コードあることの決定に応答して、入力を出力へ接続することを含んでいることを特徴とする請求項６に記載の命令処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する分野】
この発明は、内部制御命令を備えたコンピュータのプロセッサに関し、詳細には、ユーザの選択にしたがって適応できるプロセッサおよびそれを有する半導体集積回路、処理装置ならびに命令処理方法に関するものである。
【０００２】
【従来技術】
プロセッサのアーキテクチャに関する参考書は、例えば、エル．シミニエラおよびエイ・バセレンツアノ著、「高度マイクロプロセッサ  アーキテクチャ」、アディソン・ウェスレイ、１９８７年、であり、この書には、ＣＩＳＣ（コンプレツクス  インストラクション  セット）およびＲＩＳＣ（リデュースド  インストラクション  セット）構成などの慣習的および先端的アーキテクチャが、示されている。
【０００３】
実際に、プロセッサの演算能力を高めるために、実行される二つの相対するコースがあり、第一のコースは、非常に強力であるが、実行が遅い複数の複合命令（ＣＩＳＣ）をプロセッサに持たせていることから構成しており、第二のコースは、強力ではないが、実行が速い幾つかの簡単な命令（ＲＩＳＣ）を持たせていることから構成している。
【０００４】
【発明が解決しようとする課題】
明快な解決策は、プロセッサのユーザに対し、各命令を最も便利な折衷（実行速度と命令の複雑性との）にすることである。しかし、これは、徹底的に実行することができず、その結果、多様なプロセッサが、異なるタイプのアプリケーションのために市場に提供されている。
【０００５】
【課題を解決するための手段】
この発明の実施態様は、ユーザにより容易に拡張され、およびまたは専用化される一組の命令をプロセッサに持たせることにより、概要説明した問題を解決している。
【０００６】
この実施態様のプロセッサは、オペランド部分がプロセッサの動作を制御する制御信号を表している、少なくとも１つの制御命令を備えている。この点で、この命令セットの拡張はシミュレートされる。
【０００７】
したがって、この発明によるプロセッサの制御器は、このような内部動作制御信号を解釈することなく送るように、上記の命令を受けると、その出力をその入力へ接続することができる。
【０００８】
他の面から、この発明の他の実施態様は、集積回路と、プロセッサが有利に内蔵される処理装置とを意図している。
【０００９】
【発明の実施の形態】
図１を考察すると、従来技術のプロセッサが、動作制御入力ＣＯを有するオペレーティングブロックの複数のＨＰＤ、現在のアドレス出力ＣＡと現在のデータ入力／出力ＣＤ、および命令入力２と前記制御入力ＣＯへ接続された制御出力とを有する制御器ＵＣから構成しており、制御バスＢＣ、データバスＢＤ、およびアドレスバスＢＡが、一般にすべて双方向にプロセッサ内に配置されている。これらの内部バスは対応する外部バスへ接続されており、制御バスＢＣは制御器ＵＣへ接続され、データバスＢＤは命令入力２と現在データ入力／出力のＣＤとへ接続され、アドレスバスＢＡは現在アドレス出力ＣＡへ接続されている。
【００１０】
オペレーティングプロセッサの複数のＨＰＤには、例えば、累算器ＡＣＣ、プログラムカウントレジスタＰＣ、数個の作業レジスタ（その中の二つＲＥＧ１とＲＥＧ２が示されている）、算術論理演算器ＡＬＵ、およびタイミング器ＴＩＭがある。これらのオペレーティングブロックは、それぞれ、１つ以上の動作制御入力（まとめてＣＯで表されている）を備えており、それらが行う動作により、データ入力／出力ＣＤおよびまたはアドレス入力ＣＡへ接続されている。
【００１１】
制御器ＵＣの基本任務は、その入力２に受信された命令を解釈し、オペレーティングブロックに対し適切な内部動作制御信号をその出力ＣＯに発生することである。制御バスＢＣの任務とバスにより伝搬された外部制御信号により送られた意味は、この発明には関係なく、文献から周知であるので、ここではこれ以上考察されない。
【００１２】
図２に関し、図１のブロックの命令セットは、例えば、命令ＡＤＤ、ＬＯＡＤ、ＩＮＣ−ＡＣＣ、ＪＭＰ−ＲＥＬ、ＪＭＰ−ＡＢＳ、およびそれ以上の多くの命令からなっている。これらの命令は、以降に説明するように、オペランドを必要としない命令ＩＮＣ−ＡＣＣを除いて、一定長さのオペレーション部分Ｓ１−例えば、命令コードＯＰＣの１バイト（８ビット）−および変動長さのオペランド部分Ｓ２−例えば、１，２，３データＤＡＴまたはアドレスＡＤＲバイト、または総称オペランドＯＰ−で形成されている。
【００１３】
命令は次の意味を伝える。
ＡＤＤ・・・第一オペランドＯＰ１に対応するレジスタの内容と第二オペランドＯＰ２の内容を一緒に加え、その結果を累算器レジスタに置く。
ＬＯＡＤ・・・オペランドＡＤＲに対応するアドレスにより識別されたメモリの内容を累算器レジスタへロードする。
ＩＮＣ−ＡＣＣ・・・累算器レジスタの内容を増加する。
ＪＭＰ−ＲＥＬ・・・アドレスにより識別されたメモリワード内に含まれた、プログラムカウントレジスタＰＣの内容とオペランドＤＡＴの合計である命令を実行するため飛び越す。
ＪＭＰ−ＡＢＳ・・・オペランドＡＤＲに対応するアドレスにより識別されたメモリワード内に含まれた命令を実行するため飛び越す。
【００１４】
この発明のプロセッサにおいて、図２にＣＮＴＲで表示され、オペレーション部分Ｓ１とオペランド部分Ｓ２の形で形成された少なくとも１つの命令があり、そこには、図２の７バイトに相当するオペランド部分が、プロセッサの内部（および、あるとしても外部）動作制御信号を表す。
【００１５】
命令ＣＮＴＲにより、すべての新しい動作は、新しい動作を実行する制御信号の値に対応するオペランドデータにより、実行される（オペレーティングブロックと複数のＨＰＤ内の接続とにより可能になり）。例えば、命令ＣＮＴＲにより、レジスタＲＥＧ１とＲＥＧ２は、メモリから同時にロードされる。命令ＣＮＴＲを受け取るステップは、他の命令のステップより、明らかに時間がかかるが（図２の実施例において、６バイトが、せいぜい４バイトの代わりに受け入れなければならない）、命令の解釈活動がほとんど完全に不在であることにより補償される。
【００１６】
このようにして、各ユーザは、ユーザの特有のアプリケーションを必要とするとき、特定の命令を標準の命令セットへ加えることができるようになる。
【００１７】
この拡張は、標準命令の実行の効率を犠牲にせず、プロセッサ命令インタプリタの回路の複雑さも無く、達成される。
【００１８】
多様な実行可能なコースに関し、オペランド部分がすべての（代表的）内部プロセッサ動作制御信号を表すコースが、最も単純に実行される。
【００１９】
この場合、プログラム実行の流れの制御が、プログラマの効果を減じるならば、プログラムカウントレジスタＰＣへの制御信号を除いて、オペランド部分がプロセッサ動作のすべての内部制御信号を表すようにすることは、より便利であり、そうすれば、レジスタＰＣは制御器ＵＣにより従来通りに管理される。
【００２０】
あるいは、多数の命令が送られ、その各オペランド部分は、離散した数セットの（代表的）内部プロセッサ動作制御信号を表し、したがって、制御命令の長さは非常に減少される。これのセットは分離されているか、または部分的に相互に交差する。
【００２１】
図３に関し、制御器ＵＣは、他の従来のプロセッサ内の有限状態マシンであってもよく、制御器ＵＣの入力２へ接続された第一入力を有する近似状態論理回路ＳＳＬ、回路ＳＳＬの出力へ接続された入力と回路ＳＳＬの第二入力へ接続された出力とを有する状態メモリＳＳＭ、および、制御器ＵＣの入力２へ接続された第一入力とメモリＳＳＭの出力へ接続された第二入力とを有する出力論理回路ＯＬを有することができ、メモリＳＳＭはクロック信号の入力ＣＬＫも有する。
【００２２】
回路ＯＬの出力は、制御器ＵＣの出力ＯＣへ直接に接続されているか、または、図３に示されたラッチング機構を経て接続されている。ラッチング機構は、回路ＯＬの出力へ接続された第一入力を有し、かつ、回路ＯＬの個々の出力へ接続された選択入力ＳＥＬ２を有するマルチプレクサＭＵＸ２、マルチプレクサＭＵＸ２の出力へ接続された入力と、出力ＣＯとマルチプレクサＭＵＸ２の第二入力の両方へ接続された出力を有する出力メモリＯＭから構成している。メモリＯＭは、クロック信号の入力ＣＬＫも有する。
あるいは、制御器はマイクロプログラムされる。
【００２３】
この発明のプロセッサにおいて、回路部（ＤＥＣ，ＢＵＦ−０・・・ＢＵＦ−６，ＭＵＸ１）が、情報が入力から出力へ送られるように、出力ＣＯから入力２へ接続する制御器ＵＣに加えられる。
【００２４】
一般に、出力ＣＯの数（図３の実施例において５６）は、入力２の数（図３の実施例において８）よりはるかに大きいので、制御器ＵＣがバッファ論理回路ＢＵＦ−６・・・ＢＵＦ−６を有するように構成されている。したがって、入力２から回路ＢＵＦへの情報の転送が連続的時間位相で行われ、回路ＢＵＦから出力ＣＯへの情報の転送が１つの時間位相において行われるように、入力２と出力ＣＯとの接続が、この回路により設定されている。
【００２５】
制御命令ＣＮＴＲの長さを短くするため、制御信号の符号化が考えられる。例えば、計算器ＡＬＵが８種類の異なる算術／論理動作を行うことができ、かつ、使用可能な８個の動作制御入力を有するならば、命令ＣＮＴＲ内に符号化された三つのビットは、十分である。この場合、制御器ＵＣは、復号論理回路（図３の実施例から省略されている）を必要とし、入力２と出力ＣＯはこの回路により接続されている。
【００２６】
言うまでもないが、制御器ＵＣは、制御命令ＣＮＴＲとその他の命令との間を識別することができなければならない。そのために、制御器は、少なくともその中の１つがオペレーション部分と動作制御信号の値を表すオペランド部分とで形成されている命令セットを解釈するために配列された命令インタプリタ（ＳＳＬ，ＳＳＭ，ＯＬ）を有する。
【００２７】
図３の実施態様において、８個の入力２は、７個のバッファＢＵＦ−０，ＢＵＦ−１，ＢＵＦ−２，ＢＵＦ−３，ＢＵＦ−５，ＢＵＦ−６へ平行に接続されており、バッファＢＵＦの出力は、マルチプレクサＭＵＸ１の５６個の第一入力され、マルチプレクサＭＵＸ１の第二入力は、回路ＯＬの出力へ接続され、このマルチプレクサの１つの選択入力ＳＥＬ１は、回路ＯＬの個々の出力へ接続され、マルチプレクサＭＵＸ１の出力は、マルチプレクサＭＵＸ２の第一入力へ接続され、バッファＢＵＦもまた、クロック信号の入力ＣＬＫ（簡潔のため図３から省略）と、復号器ＤＥＣへそれぞれ接続された起動入力とを有する。
【００２８】
復号器ＤＥＣは、回路ＯＬの個々の出力へ接続された三つの入力を有し、８個の出力の中の１つは、使用されておらず、図３から省略されている。回路ＯＬは、プログラムカウントレジスタＰＣへの増加制御信号ＩＮＣ−ＰＣの個々の分離された出力を備えていることを付記しておく。
【００２９】
制御器ＵＣの動作は、図４の状態変移図によりさらに明確に説明される。
始動時点において、制御器は状態ＳＴ００にある。
【００３０】
命令ＣＮＴＲを受けると、制御器は状態ＳＴ１０へ進み、ＳＥＬ１は「０」にセットされ、ＳＥＬ２は「０」にセットされ、ＤＥＣは「０００」にセットされ、ＩＮＣ−ＰＣは、活動状態にセットされ、メモリはここでアドレスされる。
【００３１】
クロックパルスを受けると、制御器は状態ＳＴ１１へ進み、ＳＥＬ１とＳＥＬ２およびＤＥＣは、安定状態のままであり、ＩＮＣ−ＰＣは非活動状態であり、最初のバイトはここでバッファＢＵＦ−０へ格納される。
【００３２】
クロックパルスを受けると、制御器ＵＣは、状態ＳＴ１０へ進み、ＳＥＬ１は「０」にセットされ、ＳＥＬ２は「０」にセットされ、ＤＥＣは「００１」にセットされ、ＩＮＣ−ＰＣは活動状態へセットされ、メモリはここでアドレスされる。
【００３３】
状態ＳＴ１０，ＳＴ１１は、すべてのバッファＢＵＦがデータをロードされるまで反復され、その後、制御器は状態ＳＴ１２へ進み、ＳＥＬ１は「０」にセットされ、ＳＥＬ２は「１」にセットされ、ＩＮＣ−ＰＣは活動状態にセットされ、制御信号はここで、出力ＣＯへ送られ、準備がメモリからの次の命令を受けるために行われる。
【００３４】
クロックパルスを受けると、制御器は最初の状態ＳＴ００へ戻り、ＳＥＬ２は「０」にセットされ、ＩＮＣ−ＰＣは非活動状態にセットされ、次に、丁度受け取った命令のオペレーティングコードＯＰＣが復号される。
【００３５】
クロックパルスを受け、復号化動作の結果にしたがい、制御器は状態ＳＴ１１または状態ＳＴ２０へ進む。
【００３６】
通常の命令が受け取られると、制御器は状態ＳＴ２０へ進み、ＳＥＬ１は「１」にセットされ、ＳＥＬ２は「０」にセットされ、ＩＮＣ−ＰＣは活動状態にセットされ、メモリがここでアドレスされる。
【００３７】
クロックパルスを受けると、制御器は状態ＳＴ２１へ進み、ＳＥＬ１とＳＥＬ２は安定状態のままであり、ＩＮＣ−ＰＣは非活動状態にセットされ、オペランドの第一バイトがここで受け取られる。
【００３８】
クロックパルスを受けると、制御器は状態ＳＴ２０へ進み、ＳＥＬ１は「１」にセットされ、ＳＥＬ２は「０」にセットされ、ＩＮＣ−ＰＣは活動状態にセットされ、メモリはここでアドレスされる。
【００３９】
状態ＳＴ２０とＳＴ２１は、命令が完全に受け取られるまで、反復され、これに続いて、制御器は状態ＳＴ２２へ進み、ＳＥＬ１は「１」にセットされ、ＳＥＬ２は「１」にセットされ、ＩＮＣ−ＰＣは活動状態にセットされ、このようにして、制御信号が出力ＣＯへ送られ、準備がメモリからの次の命令を受けるために行われる。
【００４０】
クロックパルスを受けると、制御器は最初の状態ＳＴ００へ戻り、ＳＥＬ２は「０」にセットされ、ＩＮＣ−ＰＣは非活動状態にセットされ、次に、丁度受け取った命令のオペレーティングコードＯＰＣが復号される。
【００４１】
上記流れは、プロセッサの動作を通じてそれ自身繰り返す。
【００４２】
このプロセッサは、半導体集積回路、または単一あるいは多数のタイプの処理装置に有利に接続されることが分かるだろう。
【００４３】
前述の説明から、この発明の特定の実施態様が、例証のために説明されているが、多様な変形が、この発明の精神と範囲から逸脱することなく、行われることが分かるだろう。したがって、この発明は、添付請求の範囲によることを除いては、限定されない。
【図面の簡単な説明】
【図１】  従来技術のプロセッサの構成図の概要を示している。
【図２】  この発明によるプロセッサの一組の命令の部分図である。
【図３】  この発明によるプロセッサ内の制御器の構成図である。
【図４】  図３の制御器の状態変移図の概要を示している。
【符号の説明】
ＰＣ  プログラムカウントレジスタ、ＵＣ  制御器、ＳＳＬ  近似状態論理回路、
ＳＳＭ  状態メモリ、ＯＬ  出力論理回路、ＣＬＫ  クロック信号入力、ＣＯ  制御器の出力、ＭＵＸ１  マルチプレクサ、ＭＵＸ２  マルチプレクサ、ＳＥＬ１  ＭＵＸ１の選択入力、ＳＥＬ２  ＭＵＸ２の選択入力、ＯＭ  出力メモリ、ＣＮＴＲ  制御命令、ＢＵＦ  バッファ論理回路、ＤＥＣ  デコーダ。
【図１】
0003851008.tif 000002
【図２】
0003851008.tif 000003
【図３】
0003851008.tif 000004
【図４】
0003851008.tif 000005