(57)【特許請求の範囲】
【請求項１】
複数組の命令組を実行するためのデータ処理装置であって、
前記複数の命令組の複数の命令ワードを格納するためのメモリと；
前記複数の命令ワードのうちの主要命令ワードを実行するためのプロセッサコアと；
前記メモリ内に格納されている次なる命令ワードを指し示すためのプログラムカウンタレジスタ（以下、必要に応じ『ＰＣ』と略記する）と；
前記複数の命令ワードのデータを格納するための複数のデータレジスタと；
前記プロセッサコアの状態を格納するためのものであるとともに、前記複数の命令組のうちの当面の命令組を指し示すための命令組セレクタ（以下、必要に応じ『ＩＳＳ』と略記する）を有しているプロセッサ状態レジスタと；
前記複数の命令組の少なくとも１つを主要命令ワードへと翻訳して出力するため、前記ＩＳＳに応じて制御される複数のサブデコーダを含有したプレデコーダと；
前記主要命令ワードを格納するための命令取込器と；
前記主要命令ワードを解読するためのものであるとともに、解読した主要命令ワードを前記プロセッサコアによって実行し得るよう、解読した主要命令ワードを前記プロセッサコアに提供するようになっているデコーダと；
前記ＩＳＳに応じて前記ＰＣの値を変更しこれにより様々な前記主要命令ワードの命令ワードの長さを適合させるプログラムカウンタコントローラと；
前記プレデコーダと前記メモリとの間のインターフェースをなすバスと；
を具備し、
前記データレジスタの各々には、２つのビット部分が設けられており、
少なくとも一方のビット部分は、命令組選択ビット（以下、必要に応じ『ＩＳ』と略記する）として観測され、
他方のビット部分は、ターゲットアドレス（以下、必要に応じ『ＴＡ』と略記する）として観測され、
前記ＩＳＳは前記ＩＳに従ってセットされることを特徴とする装置。
【請求項２】
請求項１記載の装置において、
前記ターゲットアドレスは、前記命令組の開始アドレスとされることを特徴とする装置。
【請求項３】
請求項１記載の装置において、
前記ＩＳＳは、前記データレジスタ内の前記ＩＳに従って特定のブランチ命令によってセットされることを特徴とする装置。
【請求項４】
請求項１記載の装置において、
前記プレデコーダは、前記命令組の少なくとも１つを前記主要命令ワードへと翻訳するための少なくとも１つのサブデコーダを有していることを特徴とする装置。
【請求項５】
請求項１記載の装置において、
前記サブデコーダの切換が、前記ＩＳＳに応じて制御されるようになっており、
前記プレデコーダからの出力が、前記主要命令ワードとされるようになっていることを特徴とする装置。
【請求項６】
請求項１記載の装置において、
前記主要命令ワードのビット幅が、他の命令ワードと等しくなく、
前記命令取込器は、認識用のビットを追加して、前記ＰＣの値を、適切な主要命令ワードを指し示すように変換するようになっていることを特徴とする装置。
【請求項７】
請求項１記載の装置において、
前記ＩＳＳが、少なくとも１つのビットを有していることを特徴とする装置。
【請求項８】
請求項７記載の装置において、
前記ＩＳＳが、特定のブランチ命令により、前記データレジスタの１つ以上の前記ＩＳに従ってセットされるようになっていることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置に関するものである。より詳細には、本発明は、複数組の命令組を実行するためのデータ処理装置に関するものである。
【０００２】
【従来の技術および発明が解決しようとする課題】
データ処理装置は、通常、所定命令組からなるプログラム命令ワードを実行するためのプロセッサコアを備えている。プロセッサコアの他にも、データ処理装置は、実行可能なプログラム命令ワードを格納するためのデータメモリと、次なる命令ワードについてのメモリ内のアドレスを指し示すためのプログラムカウンタレジスタと、を備えている。しかしながら、このタイプのデータ処理装置は、１組の命令組しか実行することができない。データ処理装置が、２組以上の命令組を実行可能であって動作可能なものであれば、ずっと便利でありずっと有効である。
【０００３】
図１は、“Interoperability with multipul instruction sets” と題する米国特許明細書第６，０２１，２６５号に開示されている、２組の命令組を実行し得るよう構成された、従来のデータ処理装置の構造を示すブロック図である。
【０００４】
図１に示すように、この従来のデータ処理装置のプロセッサコア１０は、レジスタバンク３０と、ブース掛算器４０と、バレルシフタ５０と、３２ビットの算術的論理ユニット（ＡＬＵ）６０と、書込データレジスタ７０と、を備えている。
【０００５】
データ処理装置内の他の構成要素は、第１の命令デコーダ＆論理制御器１００と、第２の命令デコーダ＆論理制御器１１０と、プログラムカウンタコントローラ１４０と、プログラムカウンタ（ＰＣ）１３０と、掛算器９０と、読込データレジスタ１２０と、命令パイプライン８０と、メモリシステム２０と、である。
【０００６】
従来のデータ処理装置においては、双方の命令組に対してそれぞれ個別の命令デコーダ＆論理制御器を必要としていた。つまり、第１の命令デコーダ＆論理制御器１００が、第１組の命令組をなすプログラム命令ワードを解読し、第２の命令デコーダ＆論理制御器１１０が、第２組の命令組をなすプログラム命令ワードを解読する。第１組の命令組をなすプログラム命令ワードは、通常、３２ビットであり、第２組の命令組をなすプログラム命令ワードは、通常、１６ビットである。したがって、プログラム制作者は、３２ビットの命令組からなるより有効な命令組を使用することもできるし、また、１６ビットの命令組からなるより有効な命令組を使用してメモリを節約することもできる。
【０００７】
当面の命令ワードを解読するのにどちらの命令デコーダを使用するかを制御するために、制御手段を設ける必要がある。この制御は、プログラムカウンタコントローラ１４０によって行われる。プログラムカウンタコントローラ１４０は、プログラムカウンタ１３０内の最も重要なビットまたは最も重要でないビットのいずれかをセットまたはリセットする。これにより、掛算器９０が制御されて、第１の命令デコーダ＆論理制御器１００と第２の命令デコーダ＆論理制御器１１０との間の選択が行われる。
【０００８】
そのようなアーキテクチャーを有した従来技術においては、命令組のタイプを、リアルタイムで決定することができる。つまり、２組の命令組を互いに混在させることができ、２組の命令組を個別に取り扱う必要がない。しかしながら、この構成のためには、命令デコーダ＆論理制御器が、２つ必要である。そのため、プロセッサコア１０の消費電力が多くなってしまうとともに、チップサイズが大きくなってしまう。このことは、消費電力が少なくかつ小型化されたプロセッサを開発しようとするトレンドにとっては、受け入れられないものである。
【０００９】
２組の命令組を実行し得るよう構成された、他の従来のデータ処理装置は、
“Multipul instructions set mapping” と題する米国特許明細書第５，５６８，６４６号に開示されている。このアーキテクチャーであると、当面のプログラム命令ワードの解読にどちらの命令デコーダを使用するかを制御するために、制御手段を設ける必要はない。つまり、プログラムカウンタ内の最も重要なビットまたは最も重要でないビットのいずれかをセットまたはリセットする必要がない。
【００１０】
パイプラインタイプのプロセッサにおいては、取込ステージ（パイプラインステージ）と解読ステージと実行ステージとの３つのステージが存在する。この特許文献は、データ処理時に解読ステージを利用し得るような構成をもたらす。解読サイクル時においては、マッピングステップと制御信号生成ステップとが行われる。互いに異なる命令組は、まず最初にマッピングされ、主要命令組へと翻訳される。主要命令組は、その後の実行ステージにおいて実行されることとなる。
【００１１】
しかしながら、解読ステージ時に命令組をマッピングする必要がある。そのため、解読ステージに要する時間が多くなってしまう。このことは、高周波数構成を実現できないことを意味している。加えて、ヒット速度が９５％である場合においては、電力消費がかなり大きなものとなってしまう。これらのことは、現在のトレンドには合致しない。
【００１２】
【課題を解決するための手段】
したがって、本発明の目的は、余分な電力消費を要することなくまたクロック周波数を遅くすることなく複数組の命令組を実行し得るようなデータ処理装置を提供することである。
【００１３】
本発明によるデータ処理装置は、複数の命令組の複数の命令ワードを格納するためのメモリと；複数の命令ワードのうちの主要命令ワードを実行するためのプロセッサコアと；メモリ内に格納されている次なる命令ワードを指し示すためのプログラムカウンタレジスタ（ＰＣ）と；ＩＳビットと命令ワードタイプとを含むデータを格納するための複数のデータレジスタと；プロセッサコアの状態を格納するためのものであるとともに、複数の命令組のうちの当面の命令組を指し示すための命令組セレクタ（ＩＳＳ）を有しているプロセッサ状態レジスタと；複数の命令組の少なくとも１つを主要命令ワードへと翻訳して出力するためのプレデコーダと；主要命令ワードを格納するするとともに、取り込んだ命令のＴＡＧ情報とバリッド情報とＩＳＳ情報とを保持するための命令取込器と；主要命令ワードを解読するためのものであるとともに、解読した主要命令ワードをプロセッサコアによって実行し得るよう、解読した主要命令ワードをプロセッサコアに提供するようになっているデコーダと；ＩＳＳに応じてＰＣの値を変更しこれにより様々な主要命令ワードの長さを揃えるよう機能するプログラムカウンタコントローラと；プレデコーダとメモリとの間のインターフェースをなすバスと；を具備している。
【００１４】
プロセッサコアは、主要命令組Ａからの命令ワードを実行し、実行結果と命令組のタイプ（ＩＳ）とを、データレジスタ（Ｒ０〜Ｒ１４）内にまたはプログラムカウンタ内に、格納する。プログラム状態レジスタ（ＰＳＲ）は、各命令の実行後に、状況ビット、状態ビット、および、モードビットを保持する。プレデコーダは、命令組セレクタＰＳＲ（ＩＳＳ）に応じて命令ワードを処理する。デコーダは、命令取込器から送られてくる命令組Ａの命令ワードを解読する。このデータ処理装置においては、プロセッサコアは、命令組Ａというただ１種類の命令組モードしか有していないけれども、プロセッサコアは、プレデコーダおよびＩＳＳによって、他の命令組に属するプログラム命令ワードを実行することができる。
【００１５】
命令組の切換が起こるときには、１つまたは複数の命令ワードが、複数のデータレジスタのうちの第３１〜１ビット内のブランチアドレスを特定することとなる。ブランチ命令は、複数のレジスタの中の第３１〜１ビットをプログラムカウンタ内にコピーする。プログラムカウンタのうちの最も重要でないビットは、常にゼロにセットされる。同時に、ブランチ命令は、複数のレジスタの中の最も重要でないビットを、ＰＳＲ内のＩＳＳへとコピーする。ブランチ命令の実行後には、プログラムカウンタは、新たな命令組の第１命令（最初の命令）を指し示すこととなり、ＩＳＳは、新たな命令組モードを表すこととなる。プログラムカウンタによってアドレッシングされた新たな命令ワードがプレデコーダ内に入力されたときには、新たな命令ワードの解読方式は、新たなＩＳＳ値に応じて決定される。ＩＳＳがＢという命令組の命令ワードを表している場合には、プレデコーダは、入力されてきた命令ワードを、命令組Ｂとして観測し、Ｂサブデコーダを使用して、その命令ワードを命令組Ａに属する命令ワードとして解読する。その後、プレデコーダは、命令取込器に対して、命令組Ａの命令ワードを出力する。命令取込器は、プレデコーダからの出力をデータ部分内に取り込み、取り込んだ命令のＴＡＧビットとバリッドビットとＩＳＳビットとを更新する。従来技術とは異なり、命令取込器のヒットは、Ｖ（バリッドビット）が１に等しく、ＰＣのタグビットがＴＡＧ部分内のタグビットに等しく、かつ、ＰＳＲ（ＩＳＳ）がＴＡＧ（ＩＳＳ）に等しいことを意味している。加えて、デコーダおよびプログラムコアは、常に、命令組Ａに属する命令ワードを取り扱うだけで良い。
【００１６】
上述の一般的な説明と後述の詳細な説明との双方は、例示のためのものであって、本発明を説明することを意図したものであることは、理解されるであろう。
【００１７】
【発明の実施の形態】
添付図面は、本発明のさらなる理解をもたらすためのものであって、この明細書の一部をなし、この明細書内に組み込まれる。添付図面は、本発明のいくつかの実施形態を例示しており、説明を読むに際して参照することによって、本発明の原理の理解に有用である。
【００１８】
以下、本発明の好ましい実施形態について、詳細に説明する。本発明の好ましい実施形態は、添付図面に例示されている。可能である限りにおいて、複数の図面にわたって同一のまたは同様の部材については、同じ参照符号が使用されている。
【００１９】
図２には、複数組の命令組を実行するためのデータ処理装置のブロック図が示されている。
【００２０】
本発明によるデータ処理装置は、複数組の命令組を実行することができる。本発明によるデータ処理装置は、プロセッサコア２００と、メモリ２１０と、プログラムカウンタレジスタ（ＰＣ）２２０と、複数のデータレジスタＲ０〜Ｒ１４と、プロセッサ状態レジスタ（ＰＳＲ）２５０と、プレデコーダ２７０と、命令取込器（Icache）２８０と、デコーダ２９０と、プログラムカウンタコントローラ２２５と、バス２１５と、を備えている。
【００２１】
メモリ２１０は、複数の命令ワード（例えば、Ａ命令ワードまたはＢ命令ワード）またはデータを格納するために使用される。プログラムカウンタレジスタ（ＰＣ）２２０は、メモリ２１０内に格納された次なる命令ワードをアドレッシングする（アドレスを指示する）ために使用される。データレジスタ（Ｒ０〜Ｒ１４）２３０は、データまたは命令の結果を格納するために使用される。データレジスタには、２つのビット部分が存在する。特定のブランチ命令が実行されるときには、１つまたは複数のビット部分は、命令組選択ビット（ＩＳ）２４０として観測され、他のビット部分は、ターゲットアドレス（ＴＡ）２４５として観測される。ＩＳビットは、ＰＳＲ（プロセッサ状態レジスタ）に対して格納されることとなり、ＴＡビットは、ＰＣ（プログラムカウンタ）に対して格納されることとなる。
【００２２】
プロセッサ状態レジスタ（ＰＳＲ）２５０は、プロセッサコア２００の状態を格納するために使用される。プロセッサ状態レジスタ２５０は、現在の命令組を示すための命令組セレクタ（ＩＳＳ）２６０をなす１つまたは複数のビットを有している。ＰＳＲ（ＩＳＳ）は、Ｒ０〜Ｒ１４の中の１つまたは複数のＩＳビットに従った特定のブランチ命令によって、セットすることができる。
【００２３】
プレデコーダ２７０は、１つまたは複数の命令組を主要命令ワードへと翻訳するための１つまたは複数のサブデコーダ２７２を含有している。主要命令ワードは、デコーダ２９０を経由してプロセッサコア２００によって実行されるために使用される。この実施形態においては、プロセッサコア２００は、主要命令ワードのみを実行することによって単に実現することができる。しかしながら、本発明によるデータ処理装置は、プレデコーダ２７０によって複数の命令組を実行することができる。理解を容易とするために、以下、主要命令ワードを、『Ａ』命令ワードと称し、その他の命令ワードを、例えば、『Ｂ』や『Ｃ』等と称することにする。サブデコーダ２７２は、ＰＳＲ（ＩＳＳ）２６０のビットによって制御される。プレデコーダ２７０の出力は、Ａ命令ワードである。
【００２４】
デコーダ２９０は、Ａ命令ワードを解読するために使用される。プロセッサコア２００は、デコーダ２９０によって解読されたＡ命令ワードを実行するために使用される。プログラムカウンタコントローラ２２５は、ＩＳＳ２６０に応じて、プログラムカウンタ値（ＰＣ値）を修正して、様々な命令組の長さに適合させる。バス２１５は、プレデコーダ２７０とメモリ２１０との間のインターフェースである。
【００２５】
図３は、本発明の好ましい実施形態における命令ワード実行フローを示すフローチャートである。この場合、プロセッサに対して、２つの命令組が適用されている。
【００２６】
まず最初に、ステップ３２０において、複数組の命令組がメモリ内に格納される。例えば、メモリは、Ａ命令ワードとＢ命令ワードとを同時に格納する。Ａ命令ワードは、Ｘ個のビットであり、Ｂ命令ワードは、Ｙ個のビットである。各命令ワードは、それぞれ個別のメモリアドレスに位置する。プロセッサコアが命令ワードを実行するときには、プログラムカウンタは、常に、次なる命令ワードが位置している次なるメモリアドレスを指し示す。言い換えれば、プロセッサコアは、ステップ３２０において、プログラムカウンタを使用することによって次なる命令ワードを要求する。ＸとＹとが等しくない場合には、ＰＣ値は、命令取込器内において関連するＡ命令ワードアドレスへと翻訳される必要がある。
【００２７】
命令取込器は、Ａ命令ワードだけを格納する。本質的に、ＸとＹとが等しくない場合には、命令取込器内におけるＢ命令ワードのアドレスは、メモリアドレスとは相違する。例えば、メモリ内に格納されるＢ命令ワードは、（０，２，４，６）である。命令取込器内に格納されるときには、Ｂ命令ワードのアドレスは、（０，４，８，Ｃ）へと変化することとなる。命令取込器コントローラは、Ｂ命令ワードのアドレスを命令取込器内における適正なアドレスへと翻訳する必要がある。
【００２８】
次なるステップ３３０においては、バリッドビット（Ｖビット）が１に等しい場合には、ＴＡＧ部分のタグビットがＰＣのタグビットに等しいものとされ、ＴＡＧ（ＩＳＳ）がＰＳＲ（ＩＳＳ）に等しいものとされる。このことは、要求された命令ワードがＤＡＴＡ部分に取り込まれ、取り込まれた命令ワードのタイプが、要求された命令ワードのタイプに一致していることを意味している。ステップ３８０においては、命令取込器は、取り込まれたＡ命令ワードを直接的に出力することができる。
【００２９】
命令取込器のＴＡＧ部分内のＴＡＧビットは、ｍ個のビットからなる命令ワードアドレスである。ＰＣ内のＮ個のビットは、ＴＡＧ部分内にアドレッシングすることができ、ＰＣのタグビットが、ＴＡＧ部分内のタグビットと比較されることとなる。ＰＣのタグビットがＴＡＧ部分内のタグビットに等しい場合には、このことは、取り込まれた命令ワードアドレスが、ＰＣに等しいことを意味する。タグビットが正当であるかどうかを判断するために、Ｖビットは、命令取込器が可能状態であればインバリッドにセットされ、命令ワードが取り込まれているときには、バリッドにセットされる。上述のＴＡＧ（ＩＳＳ）は、取り込まれた命令ワードのタイプを意味している。命令が取り込まれたときには、ライン全体の命令タイプが記憶される。
【００３０】
デコーダは、要求された命令ワードを解読する。ステップ３９０においては、プロセッサコアが、命令を実行し、実行結果を、Ｒ０〜Ｒ１４内に、または、プログラムカウンタ内に、格納する。ブランチ命令の場合には、プログラムカウンタの内容は、実行フローを制御するために、変更する必要はない。
【００３１】
命令取込器が間違っているときすなわちＴＡＧ（ＩＳＳ）がＰＲＳ（ＩＳＳ）と等しくないときには、要求された命令ワードが、命令取込器内に取り込まれなかったこと、または、ライン全体の命令が、要求された命令ワードのタイプに一致していないこと、を意味している。これが起こった場合には、命令取込器は、ステップ３４０に示すように、ＰＣ値を使用してバスを要求する。バスは、メモリアドレスを使用して、メモリを要求し、ステップ３５０においてメモリが要求ラインを返信してくるのを待ち受ける。命令ワードがプレデコーダに入力されると、プレデコーダは、１つのサブデコーダを選択して、入力されてきた命令ワードをＰＳＲ（ＩＳＳ）に応じて翻訳させ、ステップ３６０において、適切なＡ命令ワードを命令取込器に対して出力する。ステップ３７０においては、プレデコーダからの出力が、命令取込器内に格納される。命令取込器は、ＶビットとＴＡＧとをセットし、最初のＰＳＲ（ＩＳＳ）をＴＡＧ（ＩＳＳ）に記憶させ、プレデコーダからの出力をデータ部分に格納する。その後、命令ワードが、通常通り、実行される。
【００３２】
各命令の実行後においては、プロセッサ状態レジスタが、状況、状態、モード、および、ＩＳＳフラグを保持するために、更新される。プログラムカウンタは、ステップ３９５において、次なる命令ワードを指し示すように変更（更新）される。
【００３３】
図４は、本発明の好ましい実施形態における命令組の切換操作を示すフローチャートである。
【００３４】
命令組の切換は、ソフトウェアによって、特に、特定のブランチ命令によって、制御される。命令組の切換時には、ステップ４００に示すように、１つまたは複数の命令ワードが、Ｒ０〜Ｒ１４のターゲットアドレス部分内のブランチアドレスを特定し、ＩＳ部分内の命令組ビットを特定する。
【００３５】
ステップ４１０においては、ブランチ命令が特定され、特定されたブランチ命令は、ステップ４２０において、Ｒ０〜Ｒ１４のターミナルアドレス（ＴＡ）部分をプログラムカウンタ内にコピーする。他のビットが、ゼロにセットされる。同時に、特定されたブランチ命令は、Ｒ０〜Ｒ１４のＩＳ部分を、ＰＳＲ内のＩＳＳに対してコピーする。
【００３６】
特定されたブランチ命令の終了後には、プログラムカウンタは、新たな命令組の第１命令をアドレッシングし、ＰＳＲ（ＩＳＳ）は、新たな命令組のモードを表すこととなる。
【００３７】
上述の図３におけるステップ３３０においては、命令取込器がヒットされＴＡＧ（ＩＳＳ）がＰＳＲ（ＩＳＳ）に等しいかどうかを確認した。さらに詳細な説明のために、命令取込器内の操作を示している図５（ａ）および図５（ｂ）を参照する。図５（ａ）においては、命令取込器内における従来の操作が示されている。この場合には、ＰＳＲ（ＩＳＳ）を併用することなく、比較操作が行われる。アドレス５１０は、プログラムカウンタ（ＰＣ）内に格納されていて、命令取込器に対して適用される。アドレスのうちのＭ個のビットは、ＴＡＧ部分の１つの入力を選択し、アドレス５１０のうちのＮ個のビットは、命令取込器のＴＡＧ部分のタグビットと比較される。ＴＡＧ部分内のバリッドビットは、選択された入力がバリッドであるかまたはインバリッドであるかのいずれかを表している。ＴＡＧ部分内のＩＳＳビットは、入力の命令タイプを表している。図３におけるステップ３３０は、Ｖビットが『バリッド』であり、ＴＡＧ部分のＩＳＳビットがＰＳＲのＩＳＳビットに等しく、アドレスのＮ個のビットが命令取込器のＴＡＧ部分内のタグビットに等しいか、どうかによって完了する。
【００３８】
図５（ｂ）においては、本発明の好ましい実施形態における命令取込器内の操作が示されている。この場合には、ＰＳＲ（ＩＳＳ）が、比較操作に際して導入される。アドレス５１０は、ＰＣ内に格納されていて、命令取込器に対して適用される。アドレスのうちのＮ個のビットは、命令取込器５２０のＴＡＧ部分内に格納されているタグビットと比較される。これは、アドレス５１０のｍ個のビットによって示されている。ＴＡＧ部分内のＶビットは、入力がバリッドであるかまたはインバリッドであるかのいずれかを表している。ＰＳＲ（ＩＳＳ）が、導入されて、ＴＡＧ（ＩＳＳ）と比較される。図３に示すように『命令取込器がヒットしているかどうかを判定する』ステップ３３０は、以下のようにして、“ＡＮＤ”アルゴリズムによって決定される。つまり、１．Ｎ個のビットが命令取込器のＴＡＧ部分内のタグビットに等しいかどうか、２．Ｖビットが『バリッド』を示しているかどうか、３．ＰＳＲ（ＩＳＳ）がＴＡＧ（ＩＳＳ）に等しいかどうか、のすべてを満たすことによって決定される。ＴＡＧ（ＩＳＳ）とは、ＴＡＧ内におけるＩＳＳビットのことであり、ＰＳＲ（ＩＳＳ）とは、ＰＳＲ内におけるＩＳＳビットのことである。互いに異なるビット数の複数の命令ワードが混在している場合には、例えば、１６ビットの命令ワードと３２ビットの命令ワードとが混在している場合には、アドレス５１０内の１つ以上のビットが、命令ワードの前半または後半を明瞭化するために導入される。例えば、図５（ｂ）に示すように、第３ビットが、比較操作のために導入され、指示されたレジスタ内のＴＡＧに対してＮ個のビットが等しいかどうかを決定するというアルゴリズムが、指示されたレジスタ内のＴＡＧに対してＮ＋１個のビットが等しいかどうかを決定するというアルゴリズムに、変更される。
【００３９】
図２に示すように、プレデコーダ２７０は、１つまたは複数の命令組を上述の『Ａ』命令ワードといったような主要命令ワードへと翻訳するために、１つまたは複数のサブデコーダ２７２を備えている。図６（ａ）および図６（ｂ）を参照して、さらに詳細に説明する。図６（ａ）は、様々な命令ワードを処理するための従来のアーキテクチャーを示している。データバスＢＩＵ６１０からの１ラインあたりに４つの命令があるという例が示されている。スイッチ６２０によって選択されることにより、４つの命令ワードのうちの１つが、命令取込器のメモリ６３０に対して適用される。命令ワードを実行するために、命令ワードの１つは、デコーダによる解読ステップへと伝達される。伝達された命令ワードは、ます最初に、マッピングされ、その後、解読される。マッピングと解読との後に、命令ワードは、プロセッサコアに対して適用され、実行される。本発明の好ましい実施形態においては、図６（ｂ）に示すように、スイッチ６２０による選択の後に、選択された命令ワードは、プレデコーダ６５０とスイッチ６６０とに同時に適用される。命令ワードが、主要命令ワードではないＢ命令ワードであった場合には、プレデコーダ６５０が、Ｂ命令ワードを、例えばＡ命令ワードといったような主要命令ワードへと翻訳することとなる。プレデコーダによって処理された命令ワードが、スイッチ６６０に対して適用される。そして、ＰＳＲからのＩＳＳに応じて選択することにより、命令ワードは、命令取込器のメモリ６７０へと伝達される。
【００４０】
図７（ａ）および図７（ｂ）は、データバスからＡとＢとの命令ワードが混在して送られてくる場合を示している。まず最初に、図７（ａ）においては、命令取込器は、ＰＣ＝０とすることをＢＩＵに要求し、ＢＩＵは、４つの命令ワードを有したライン７１０を応答する。タイプの順序は、“ＡＢＢＡ”である。ＴＡＧ（ＩＳＳ）は、常に、最初の命令ワードのタイプを記憶し、命令取込器は、ライン全体を、最初の命令ワードのタイプによって処理する。例えば、図示の実施形態においては、ＰＣ＝０における命令ワードのタイプがＡであることにより、ＴＡＧ（ＩＳＳ）は、『Ａ』となる。命令取込器メモリ内のデータ部分は、『Ａ』命令タイプによって充填される。タイプの順序は、“ＡＡＡＡ”となる。
【００４１】
ｎサイクル後には、ＢＩＵラインは、命令取込器に対して書き込まれており、変更されている。ＣＰＵは、ＰＣ＝４およびＰＳＲ（ＩＳＳ）＝Ｂとして動作する。しかしながら、この時点では、ＴＡＧ（ＩＳＳ）＝Ａである。このことは、命令取込器が間違っていることを意味している。この場合、命令取込器は、ＰＣ＝４とすることをＢＩＵに要求し、ＢＩＵは、“ＡＢＢＡ”という命令タイプ順序を有したラインを応答するである。図７（ｂ）に示すように、ＰＣ＝８の場合には、Ｂ命令ワードをプレデコーダによって処理した後には、ＴＡＧ（ＩＳＳ）＝Ｂとなり、命令取込器メモリ内のデータ部分は、『Ｂ』によって充填され、命令タイプ順序は、“ＢＢＢＢ”となる。この時点で、ＴＡＧ（ＩＳＳ）は、データバスＢＩＵのライン７１０がＢタイプであることを記憶する。ＴＡＧ（ＩＳＳ）は、ＰＳＲ（ＩＳＳ）に等しい。このことは、命令取込器がヒットすることを意味している。命令ワードタイプの順序にかかわらず、命令取込器は、常に、正確な命令タイプを判断することができ解読することができる。実際には、異なるタイプの命令が１つのライン中に混在することは、稀である。
【００４２】
本発明によるデータ処理装置は、従来のデータ処理装置と比較して、いくつもの利点を有している。１つの利点は、本発明によるデータ処理装置であると、複数の命令組からの命令ワードを実行できることである。１つの命令組や２つの命令組に制限されるものではない。これにより、プログラム制作者は、プログラムを制作に際して極度に大きな利便性を得ることができる。有効性の大きな命令が要求されたときには、より有効性の大きな命令組が使用される。メモリが高価である場合には、メモリを少ししか使用しないような命令組が使用される。
【００４３】
他の利点は、電力消費が小さいことである。従来の装置においては、すべての命令組が、それぞれ個別の専用の命令デコーダおよび論理コントローラを必要とする。専用の命令デコーダが、命令が取り込まれるたびごとに起動されることにより、これは高価であり、電力消費に関して無駄が多い。しかしながら、本発明においては、プレデコーダは、第１命令ワードが取り込まれたときにしか起動されない。平均すれば、命令取込器のヒット率は、約９５％である。このことは、本発明におけるプレデコーダが、１００個の命令ワードを取り込むに際して５回起動される必要があるだけであることを意味している。
【００４４】
加えて、ＣＰＵアーキテクチャーは、他の命令組の実施に際して変更する必要がない。変更する必要があるのは、バスインターフェースとプレデコーダだけである。このことも、また、本発明のコストをさらに有利なものとする。
【００４５】
本発明の範囲および精神を逸脱することなく本発明の構成に様々な修正や変更を加え得ることは、当業者には明瞭であろう。そのため、本発明は、請求範囲およびその均等物内に属するような修正や変更をもカバーするものである。
【図面の簡単な説明】
【図１】  ２組の命令組を実行し得るよう構成された、従来のデータ処理装置の構造を示すブロック図である。
【図２】  複数組の命令組を実行し得る本発明のデータ処理装置の好ましい実施形態を示すブロック図である。
【図３】  本発明の好ましい実施形態による命令ワード実行フローを示すフローチャートである。
【図４】  本発明の好ましい実施形態における命令組の切換フローを示すフローチャートである。
【図５】  命令取込器内のＴＡＧ部分について、従来技術と本発明とを比較して示す図である。
【図６】  命令取込器内のＤＡＴＡ部分について、従来技術と本発明とを比較して示す図である。
【図７】  Ａ命令ワードとＢ命令ワードとが同じメモリラインを占めている場合における、命令取込器のＴＡＧ部分とＤＡＴＡ部分との振舞いを説明するための図である。
【符号の説明】
２００  プロセッサコア
２１０  メモリ
２１５  バス
２２０  プログラムカウンタレジスタ（ＰＣ）
２２５  プログラムカウンタコントローラ
２４０  命令組選択ビット（ＩＳ）
２４５  ターゲットアドレス（ＴＡ）
２５０  プロセッサ状態レジスタ（ＰＳＲ）
２６０  命令組セレクタ（ＩＳＳ）
２７０  プレデコーダ
２７２  サブデコーダ
２８０  命令取込器
２９０  デコーダ
Ｒ０〜Ｒ１４  データレジスタ
【図１】
0003644892.tif 000002
【図２】
0003644892.tif 000003
【図３】
0003644892.tif 000004
【図４】
0003644892.tif 000005
【図５】
0003644892.tif 000006
【図６】
0003644892.tif 000007
【図７】
0003644892.tif 000008