JP3644892B2 - 複数組の命令組を実行するためのデータ処理装置 - Google Patents

複数組の命令組を実行するためのデータ処理装置 Download PDF

Info

Publication number
JP3644892B2
JP3644892B2 JP2001013796A JP2001013796A JP3644892B2 JP 3644892 B2 JP3644892 B2 JP 3644892B2 JP 2001013796 A JP2001013796 A JP 2001013796A JP 2001013796 A JP2001013796 A JP 2001013796A JP 3644892 B2 JP3644892 B2 JP 3644892B2
Authority
JP
Japan
Prior art keywords
instruction
iss
word
instruction word
bit
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 - Fee Related
Application number
JP2001013796A
Other languages
English (en)
Other versions
JP2002229776A (ja
Inventor
民晟 高
景哲 梁
念慈 桂
Original Assignee
智原科技股▲ふん▼有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 智原科技股▲ふん▼有限公司 filed Critical 智原科技股▲ふん▼有限公司
Priority to JP2001013796A priority Critical patent/JP3644892B2/ja
Publication of JP2002229776A publication Critical patent/JP2002229776A/ja
Application granted granted Critical
Publication of JP3644892B2 publication Critical patent/JP3644892B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ処理装置に関するものである。より詳細には、本発明は、複数組の命令組を実行するためのデータ処理装置に関するものである。
【0002】
【従来の技術および発明が解決しようとする課題】
データ処理装置は、通常、所定命令組からなるプログラム命令ワードを実行するためのプロセッサコアを備えている。プロセッサコアの他にも、データ処理装置は、実行可能なプログラム命令ワードを格納するためのデータメモリと、次なる命令ワードについてのメモリ内のアドレスを指し示すためのプログラムカウンタレジスタと、を備えている。しかしながら、このタイプのデータ処理装置は、1組の命令組しか実行することができない。データ処理装置が、2組以上の命令組を実行可能であって動作可能なものであれば、ずっと便利でありずっと有効である。
【0003】
図1は、“Interoperability with multipul instruction sets” と題する米国特許明細書第6,021,265号に開示されている、2組の命令組を実行し得るよう構成された、従来のデータ処理装置の構造を示すブロック図である。
【0004】
図1に示すように、この従来のデータ処理装置のプロセッサコア10は、レジスタバンク30と、ブース掛算器40と、バレルシフタ50と、32ビットの算術的論理ユニット(ALU)60と、書込データレジスタ70と、を備えている。
【0005】
データ処理装置内の他の構成要素は、第1の命令デコーダ&論理制御器100と、第2の命令デコーダ&論理制御器110と、プログラムカウンタコントローラ140と、プログラムカウンタ(PC)130と、掛算器90と、読込データレジスタ120と、命令パイプライン80と、メモリシステム20と、である。
【0006】
従来のデータ処理装置においては、双方の命令組に対してそれぞれ個別の命令デコーダ&論理制御器を必要としていた。つまり、第1の命令デコーダ&論理制御器100が、第1組の命令組をなすプログラム命令ワードを解読し、第2の命令デコーダ&論理制御器110が、第2組の命令組をなすプログラム命令ワードを解読する。第1組の命令組をなすプログラム命令ワードは、通常、32ビットであり、第2組の命令組をなすプログラム命令ワードは、通常、16ビットである。したがって、プログラム制作者は、32ビットの命令組からなるより有効な命令組を使用することもできるし、また、16ビットの命令組からなるより有効な命令組を使用してメモリを節約することもできる。
【0007】
当面の命令ワードを解読するのにどちらの命令デコーダを使用するかを制御するために、制御手段を設ける必要がある。この制御は、プログラムカウンタコントローラ140によって行われる。プログラムカウンタコントローラ140は、プログラムカウンタ130内の最も重要なビットまたは最も重要でないビットのいずれかをセットまたはリセットする。これにより、掛算器90が制御されて、第1の命令デコーダ&論理制御器100と第2の命令デコーダ&論理制御器110との間の選択が行われる。
【0008】
そのようなアーキテクチャーを有した従来技術においては、命令組のタイプを、リアルタイムで決定することができる。つまり、2組の命令組を互いに混在させることができ、2組の命令組を個別に取り扱う必要がない。しかしながら、この構成のためには、命令デコーダ&論理制御器が、2つ必要である。そのため、プロセッサコア10の消費電力が多くなってしまうとともに、チップサイズが大きくなってしまう。このことは、消費電力が少なくかつ小型化されたプロセッサを開発しようとするトレンドにとっては、受け入れられないものである。
【0009】
2組の命令組を実行し得るよう構成された、他の従来のデータ処理装置は、
“Multipul instructions set mapping” と題する米国特許明細書第5,568,646号に開示されている。このアーキテクチャーであると、当面のプログラム命令ワードの解読にどちらの命令デコーダを使用するかを制御するために、制御手段を設ける必要はない。つまり、プログラムカウンタ内の最も重要なビットまたは最も重要でないビットのいずれかをセットまたはリセットする必要がない。
【0010】
パイプラインタイプのプロセッサにおいては、取込ステージ(パイプラインステージ)と解読ステージと実行ステージとの3つのステージが存在する。この特許文献は、データ処理時に解読ステージを利用し得るような構成をもたらす。解読サイクル時においては、マッピングステップと制御信号生成ステップとが行われる。互いに異なる命令組は、まず最初にマッピングされ、主要命令組へと翻訳される。主要命令組は、その後の実行ステージにおいて実行されることとなる。
【0011】
しかしながら、解読ステージ時に命令組をマッピングする必要がある。そのため、解読ステージに要する時間が多くなってしまう。このことは、高周波数構成を実現できないことを意味している。加えて、ヒット速度が95%である場合においては、電力消費がかなり大きなものとなってしまう。これらのことは、現在のトレンドには合致しない。
【0012】
【課題を解決するための手段】
したがって、本発明の目的は、余分な電力消費を要することなくまたクロック周波数を遅くすることなく複数組の命令組を実行し得るようなデータ処理装置を提供することである。
【0013】
本発明によるデータ処理装置は、複数の命令組の複数の命令ワードを格納するためのメモリと;複数の命令ワードのうちの主要命令ワードを実行するためのプロセッサコアと;メモリ内に格納されている次なる命令ワードを指し示すためのプログラムカウンタレジスタ(PC)と;ISビットと命令ワードタイプとを含むデータを格納するための複数のデータレジスタと;プロセッサコアの状態を格納するためのものであるとともに、複数の命令組のうちの当面の命令組を指し示すための命令組セレクタ(ISS)を有しているプロセッサ状態レジスタと;複数の命令組の少なくとも1つを主要命令ワードへと翻訳して出力するためのプレデコーダと;主要命令ワードを格納するするとともに、取り込んだ命令のTAG情報とバリッド情報とISS情報とを保持するための命令取込器と;主要命令ワードを解読するためのものであるとともに、解読した主要命令ワードをプロセッサコアによって実行し得るよう、解読した主要命令ワードをプロセッサコアに提供するようになっているデコーダと;ISSに応じてPCの値を変更しこれにより様々な主要命令ワードの長さを揃えるよう機能するプログラムカウンタコントローラと;プレデコーダとメモリとの間のインターフェースをなすバスと;を具備している。
【0014】
プロセッサコアは、主要命令組Aからの命令ワードを実行し、実行結果と命令組のタイプ(IS)とを、データレジスタ(R0〜R14)内にまたはプログラムカウンタ内に、格納する。プログラム状態レジスタ(PSR)は、各命令の実行後に、状況ビット、状態ビット、および、モードビットを保持する。プレデコーダは、命令組セレクタPSR(ISS)に応じて命令ワードを処理する。デコーダは、命令取込器から送られてくる命令組Aの命令ワードを解読する。このデータ処理装置においては、プロセッサコアは、命令組Aというただ1種類の命令組モードしか有していないけれども、プロセッサコアは、プレデコーダおよびISSによって、他の命令組に属するプログラム命令ワードを実行することができる。
【0015】
命令組の切換が起こるときには、1つまたは複数の命令ワードが、複数のデータレジスタのうちの第31〜1ビット内のブランチアドレスを特定することとなる。ブランチ命令は、複数のレジスタの中の第31〜1ビットをプログラムカウンタ内にコピーする。プログラムカウンタのうちの最も重要でないビットは、常にゼロにセットされる。同時に、ブランチ命令は、複数のレジスタの中の最も重要でないビットを、PSR内のISSへとコピーする。ブランチ命令の実行後には、プログラムカウンタは、新たな命令組の第1命令(最初の命令)を指し示すこととなり、ISSは、新たな命令組モードを表すこととなる。プログラムカウンタによってアドレッシングされた新たな命令ワードがプレデコーダ内に入力されたときには、新たな命令ワードの解読方式は、新たなISS値に応じて決定される。ISSがBという命令組の命令ワードを表している場合には、プレデコーダは、入力されてきた命令ワードを、命令組Bとして観測し、Bサブデコーダを使用して、その命令ワードを命令組Aに属する命令ワードとして解読する。その後、プレデコーダは、命令取込器に対して、命令組Aの命令ワードを出力する。命令取込器は、プレデコーダからの出力をデータ部分内に取り込み、取り込んだ命令のTAGビットとバリッドビットとISSビットとを更新する。従来技術とは異なり、命令取込器のヒットは、V(バリッドビット)が1に等しく、PCのタグビットがTAG部分内のタグビットに等しく、かつ、PSR(ISS)がTAG(ISS)に等しいことを意味している。加えて、デコーダおよびプログラムコアは、常に、命令組Aに属する命令ワードを取り扱うだけで良い。
【0016】
上述の一般的な説明と後述の詳細な説明との双方は、例示のためのものであって、本発明を説明することを意図したものであることは、理解されるであろう。
【0017】
【発明の実施の形態】
添付図面は、本発明のさらなる理解をもたらすためのものであって、この明細書の一部をなし、この明細書内に組み込まれる。添付図面は、本発明のいくつかの実施形態を例示しており、説明を読むに際して参照することによって、本発明の原理の理解に有用である。
【0018】
以下、本発明の好ましい実施形態について、詳細に説明する。本発明の好ましい実施形態は、添付図面に例示されている。可能である限りにおいて、複数の図面にわたって同一のまたは同様の部材については、同じ参照符号が使用されている。
【0019】
図2には、複数組の命令組を実行するためのデータ処理装置のブロック図が示されている。
【0020】
本発明によるデータ処理装置は、複数組の命令組を実行することができる。本発明によるデータ処理装置は、プロセッサコア200と、メモリ210と、プログラムカウンタレジスタ(PC)220と、複数のデータレジスタR0〜R14と、プロセッサ状態レジスタ(PSR)250と、プレデコーダ270と、命令取込器(Icache)280と、デコーダ290と、プログラムカウンタコントローラ225と、バス215と、を備えている。
【0021】
メモリ210は、複数の命令ワード(例えば、A命令ワードまたはB命令ワード)またはデータを格納するために使用される。プログラムカウンタレジスタ(PC)220は、メモリ210内に格納された次なる命令ワードをアドレッシングする(アドレスを指示する)ために使用される。データレジスタ(R0〜R14)230は、データまたは命令の結果を格納するために使用される。データレジスタには、2つのビット部分が存在する。特定のブランチ命令が実行されるときには、1つまたは複数のビット部分は、命令組選択ビット(IS)240として観測され、他のビット部分は、ターゲットアドレス(TA)245として観測される。ISビットは、PSR(プロセッサ状態レジスタ)に対して格納されることとなり、TAビットは、PC(プログラムカウンタ)に対して格納されることとなる。
【0022】
プロセッサ状態レジスタ(PSR)250は、プロセッサコア200の状態を格納するために使用される。プロセッサ状態レジスタ250は、現在の命令組を示すための命令組セレクタ(ISS)260をなす1つまたは複数のビットを有している。PSR(ISS)は、R0〜R14の中の1つまたは複数のISビットに従った特定のブランチ命令によって、セットすることができる。
【0023】
プレデコーダ270は、1つまたは複数の命令組を主要命令ワードへと翻訳するための1つまたは複数のサブデコーダ272を含有している。主要命令ワードは、デコーダ290を経由してプロセッサコア200によって実行されるために使用される。この実施形態においては、プロセッサコア200は、主要命令ワードのみを実行することによって単に実現することができる。しかしながら、本発明によるデータ処理装置は、プレデコーダ270によって複数の命令組を実行することができる。理解を容易とするために、以下、主要命令ワードを、『A』命令ワードと称し、その他の命令ワードを、例えば、『B』や『C』等と称することにする。サブデコーダ272は、PSR(ISS)260のビットによって制御される。プレデコーダ270の出力は、A命令ワードである。
【0024】
デコーダ290は、A命令ワードを解読するために使用される。プロセッサコア200は、デコーダ290によって解読されたA命令ワードを実行するために使用される。プログラムカウンタコントローラ225は、ISS260に応じて、プログラムカウンタ値(PC値)を修正して、様々な命令組の長さに適合させる。バス215は、プレデコーダ270とメモリ210との間のインターフェースである。
【0025】
図3は、本発明の好ましい実施形態における命令ワード実行フローを示すフローチャートである。この場合、プロセッサに対して、2つの命令組が適用されている。
【0026】
まず最初に、ステップ320において、複数組の命令組がメモリ内に格納される。例えば、メモリは、A命令ワードとB命令ワードとを同時に格納する。A命令ワードは、X個のビットであり、B命令ワードは、Y個のビットである。各命令ワードは、それぞれ個別のメモリアドレスに位置する。プロセッサコアが命令ワードを実行するときには、プログラムカウンタは、常に、次なる命令ワードが位置している次なるメモリアドレスを指し示す。言い換えれば、プロセッサコアは、ステップ320において、プログラムカウンタを使用することによって次なる命令ワードを要求する。XとYとが等しくない場合には、PC値は、命令取込器内において関連するA命令ワードアドレスへと翻訳される必要がある。
【0027】
命令取込器は、A命令ワードだけを格納する。本質的に、XとYとが等しくない場合には、命令取込器内におけるB命令ワードのアドレスは、メモリアドレスとは相違する。例えば、メモリ内に格納されるB命令ワードは、(0,2,4,6)である。命令取込器内に格納されるときには、B命令ワードのアドレスは、(0,4,8,C)へと変化することとなる。命令取込器コントローラは、B命令ワードのアドレスを命令取込器内における適正なアドレスへと翻訳する必要がある。
【0028】
次なるステップ330においては、バリッドビット(Vビット)が1に等しい場合には、TAG部分のタグビットがPCのタグビットに等しいものとされ、TAG(ISS)がPSR(ISS)に等しいものとされる。このことは、要求された命令ワードがDATA部分に取り込まれ、取り込まれた命令ワードのタイプが、要求された命令ワードのタイプに一致していることを意味している。ステップ380においては、命令取込器は、取り込まれたA命令ワードを直接的に出力することができる。
【0029】
命令取込器のTAG部分内のTAGビットは、m個のビットからなる命令ワードアドレスである。PC内のN個のビットは、TAG部分内にアドレッシングすることができ、PCのタグビットが、TAG部分内のタグビットと比較されることとなる。PCのタグビットがTAG部分内のタグビットに等しい場合には、このことは、取り込まれた命令ワードアドレスが、PCに等しいことを意味する。タグビットが正当であるかどうかを判断するために、Vビットは、命令取込器が可能状態であればインバリッドにセットされ、命令ワードが取り込まれているときには、バリッドにセットされる。上述のTAG(ISS)は、取り込まれた命令ワードのタイプを意味している。命令が取り込まれたときには、ライン全体の命令タイプが記憶される。
【0030】
デコーダは、要求された命令ワードを解読する。ステップ390においては、プロセッサコアが、命令を実行し、実行結果を、R0〜R14内に、または、プログラムカウンタ内に、格納する。ブランチ命令の場合には、プログラムカウンタの内容は、実行フローを制御するために、変更する必要はない。
【0031】
命令取込器が間違っているときすなわちTAG(ISS)がPRS(ISS)と等しくないときには、要求された命令ワードが、命令取込器内に取り込まれなかったこと、または、ライン全体の命令が、要求された命令ワードのタイプに一致していないこと、を意味している。これが起こった場合には、命令取込器は、ステップ340に示すように、PC値を使用してバスを要求する。バスは、メモリアドレスを使用して、メモリを要求し、ステップ350においてメモリが要求ラインを返信してくるのを待ち受ける。命令ワードがプレデコーダに入力されると、プレデコーダは、1つのサブデコーダを選択して、入力されてきた命令ワードをPSR(ISS)に応じて翻訳させ、ステップ360において、適切なA命令ワードを命令取込器に対して出力する。ステップ370においては、プレデコーダからの出力が、命令取込器内に格納される。命令取込器は、VビットとTAGとをセットし、最初のPSR(ISS)をTAG(ISS)に記憶させ、プレデコーダからの出力をデータ部分に格納する。その後、命令ワードが、通常通り、実行される。
【0032】
各命令の実行後においては、プロセッサ状態レジスタが、状況、状態、モード、および、ISSフラグを保持するために、更新される。プログラムカウンタは、ステップ395において、次なる命令ワードを指し示すように変更(更新)される。
【0033】
図4は、本発明の好ましい実施形態における命令組の切換操作を示すフローチャートである。
【0034】
命令組の切換は、ソフトウェアによって、特に、特定のブランチ命令によって、制御される。命令組の切換時には、ステップ400に示すように、1つまたは複数の命令ワードが、R0〜R14のターゲットアドレス部分内のブランチアドレスを特定し、IS部分内の命令組ビットを特定する。
【0035】
ステップ410においては、ブランチ命令が特定され、特定されたブランチ命令は、ステップ420において、R0〜R14のターミナルアドレス(TA)部分をプログラムカウンタ内にコピーする。他のビットが、ゼロにセットされる。同時に、特定されたブランチ命令は、R0〜R14のIS部分を、PSR内のISSに対してコピーする。
【0036】
特定されたブランチ命令の終了後には、プログラムカウンタは、新たな命令組の第1命令をアドレッシングし、PSR(ISS)は、新たな命令組のモードを表すこととなる。
【0037】
上述の図3におけるステップ330においては、命令取込器がヒットされTAG(ISS)がPSR(ISS)に等しいかどうかを確認した。さらに詳細な説明のために、命令取込器内の操作を示している図5(a)および図5(b)を参照する。図5(a)においては、命令取込器内における従来の操作が示されている。この場合には、PSR(ISS)を併用することなく、比較操作が行われる。アドレス510は、プログラムカウンタ(PC)内に格納されていて、命令取込器に対して適用される。アドレスのうちのM個のビットは、TAG部分の1つの入力を選択し、アドレス510のうちのN個のビットは、命令取込器のTAG部分のタグビットと比較される。TAG部分内のバリッドビットは、選択された入力がバリッドであるかまたはインバリッドであるかのいずれかを表している。TAG部分内のISSビットは、入力の命令タイプを表している。図3におけるステップ330は、Vビットが『バリッド』であり、TAG部分のISSビットがPSRのISSビットに等しく、アドレスのN個のビットが命令取込器のTAG部分内のタグビットに等しいか、どうかによって完了する。
【0038】
図5(b)においては、本発明の好ましい実施形態における命令取込器内の操作が示されている。この場合には、PSR(ISS)が、比較操作に際して導入される。アドレス510は、PC内に格納されていて、命令取込器に対して適用される。アドレスのうちのN個のビットは、命令取込器520のTAG部分内に格納されているタグビットと比較される。これは、アドレス510のm個のビットによって示されている。TAG部分内のVビットは、入力がバリッドであるかまたはインバリッドであるかのいずれかを表している。PSR(ISS)が、導入されて、TAG(ISS)と比較される。図3に示すように『命令取込器がヒットしているかどうかを判定する』ステップ330は、以下のようにして、“AND”アルゴリズムによって決定される。つまり、1.N個のビットが命令取込器のTAG部分内のタグビットに等しいかどうか、2.Vビットが『バリッド』を示しているかどうか、3.PSR(ISS)がTAG(ISS)に等しいかどうか、のすべてを満たすことによって決定される。TAG(ISS)とは、TAG内におけるISSビットのことであり、PSR(ISS)とは、PSR内におけるISSビットのことである。互いに異なるビット数の複数の命令ワードが混在している場合には、例えば、16ビットの命令ワードと32ビットの命令ワードとが混在している場合には、アドレス510内の1つ以上のビットが、命令ワードの前半または後半を明瞭化するために導入される。例えば、図5(b)に示すように、第3ビットが、比較操作のために導入され、指示されたレジスタ内のTAGに対してN個のビットが等しいかどうかを決定するというアルゴリズムが、指示されたレジスタ内のTAGに対してN+1個のビットが等しいかどうかを決定するというアルゴリズムに、変更される。
【0039】
図2に示すように、プレデコーダ270は、1つまたは複数の命令組を上述の『A』命令ワードといったような主要命令ワードへと翻訳するために、1つまたは複数のサブデコーダ272を備えている。図6(a)および図6(b)を参照して、さらに詳細に説明する。図6(a)は、様々な命令ワードを処理するための従来のアーキテクチャーを示している。データバスBIU610からの1ラインあたりに4つの命令があるという例が示されている。スイッチ620によって選択されることにより、4つの命令ワードのうちの1つが、命令取込器のメモリ630に対して適用される。命令ワードを実行するために、命令ワードの1つは、デコーダによる解読ステップへと伝達される。伝達された命令ワードは、ます最初に、マッピングされ、その後、解読される。マッピングと解読との後に、命令ワードは、プロセッサコアに対して適用され、実行される。本発明の好ましい実施形態においては、図6(b)に示すように、スイッチ620による選択の後に、選択された命令ワードは、プレデコーダ650とスイッチ660とに同時に適用される。命令ワードが、主要命令ワードではないB命令ワードであった場合には、プレデコーダ650が、B命令ワードを、例えばA命令ワードといったような主要命令ワードへと翻訳することとなる。プレデコーダによって処理された命令ワードが、スイッチ660に対して適用される。そして、PSRからのISSに応じて選択することにより、命令ワードは、命令取込器のメモリ670へと伝達される。
【0040】
図7(a)および図7(b)は、データバスからAとBとの命令ワードが混在して送られてくる場合を示している。まず最初に、図7(a)においては、命令取込器は、PC=0とすることをBIUに要求し、BIUは、4つの命令ワードを有したライン710を応答する。タイプの順序は、“ABBA”である。TAG(ISS)は、常に、最初の命令ワードのタイプを記憶し、命令取込器は、ライン全体を、最初の命令ワードのタイプによって処理する。例えば、図示の実施形態においては、PC=0における命令ワードのタイプがAであることにより、TAG(ISS)は、『A』となる。命令取込器メモリ内のデータ部分は、『A』命令タイプによって充填される。タイプの順序は、“AAAA”となる。
【0041】
nサイクル後には、BIUラインは、命令取込器に対して書き込まれており、変更されている。CPUは、PC=4およびPSR(ISS)=Bとして動作する。しかしながら、この時点では、TAG(ISS)=Aである。このことは、命令取込器が間違っていることを意味している。この場合、命令取込器は、PC=4とすることをBIUに要求し、BIUは、“ABBA”という命令タイプ順序を有したラインを応答するである。図7(b)に示すように、PC=8の場合には、B命令ワードをプレデコーダによって処理した後には、TAG(ISS)=Bとなり、命令取込器メモリ内のデータ部分は、『B』によって充填され、命令タイプ順序は、“BBBB”となる。この時点で、TAG(ISS)は、データバスBIUのライン710がBタイプであることを記憶する。TAG(ISS)は、PSR(ISS)に等しい。このことは、命令取込器がヒットすることを意味している。命令ワードタイプの順序にかかわらず、命令取込器は、常に、正確な命令タイプを判断することができ解読することができる。実際には、異なるタイプの命令が1つのライン中に混在することは、稀である。
【0042】
本発明によるデータ処理装置は、従来のデータ処理装置と比較して、いくつもの利点を有している。1つの利点は、本発明によるデータ処理装置であると、複数の命令組からの命令ワードを実行できることである。1つの命令組や2つの命令組に制限されるものではない。これにより、プログラム制作者は、プログラムを制作に際して極度に大きな利便性を得ることができる。有効性の大きな命令が要求されたときには、より有効性の大きな命令組が使用される。メモリが高価である場合には、メモリを少ししか使用しないような命令組が使用される。
【0043】
他の利点は、電力消費が小さいことである。従来の装置においては、すべての命令組が、それぞれ個別の専用の命令デコーダおよび論理コントローラを必要とする。専用の命令デコーダが、命令が取り込まれるたびごとに起動されることにより、これは高価であり、電力消費に関して無駄が多い。しかしながら、本発明においては、プレデコーダは、第1命令ワードが取り込まれたときにしか起動されない。平均すれば、命令取込器のヒット率は、約95%である。このことは、本発明におけるプレデコーダが、100個の命令ワードを取り込むに際して5回起動される必要があるだけであることを意味している。
【0044】
加えて、CPUアーキテクチャーは、他の命令組の実施に際して変更する必要がない。変更する必要があるのは、バスインターフェースとプレデコーダだけである。このことも、また、本発明のコストをさらに有利なものとする。
【0045】
本発明の範囲および精神を逸脱することなく本発明の構成に様々な修正や変更を加え得ることは、当業者には明瞭であろう。そのため、本発明は、請求範囲およびその均等物内に属するような修正や変更をもカバーするものである。
【図面の簡単な説明】
【図1】 2組の命令組を実行し得るよう構成された、従来のデータ処理装置の構造を示すブロック図である。
【図2】 複数組の命令組を実行し得る本発明のデータ処理装置の好ましい実施形態を示すブロック図である。
【図3】 本発明の好ましい実施形態による命令ワード実行フローを示すフローチャートである。
【図4】 本発明の好ましい実施形態における命令組の切換フローを示すフローチャートである。
【図5】 命令取込器内のTAG部分について、従来技術と本発明とを比較して示す図である。
【図6】 命令取込器内のDATA部分について、従来技術と本発明とを比較して示す図である。
【図7】 A命令ワードとB命令ワードとが同じメモリラインを占めている場合における、命令取込器のTAG部分とDATA部分との振舞いを説明するための図である。
【符号の説明】
200 プロセッサコア
210 メモリ
215 バス
220 プログラムカウンタレジスタ(PC)
225 プログラムカウンタコントローラ
240 命令組選択ビット(IS)
245 ターゲットアドレス(TA)
250 プロセッサ状態レジスタ(PSR)
260 命令組セレクタ(ISS)
270 プレデコーダ
272 サブデコーダ
280 命令取込器
290 デコーダ
R0〜R14 データレジスタ

Claims (8)

  1. 複数組の命令組を実行するためのデータ処理装置であって、
    前記複数の命令組の複数の命令ワードを格納するためのメモリと;
    前記複数の命令ワードのうちの主要命令ワードを実行するためのプロセッサコアと;
    前記メモリ内に格納されている次なる命令ワードを指し示すためのプログラムカウンタレジスタ(以下、必要に応じ『PC』と略記する)と;
    前記複数の命令ワードのデータを格納するための複数のデータレジスタと;
    前記プロセッサコアの状態を格納するためのものであるとともに、前記複数の命令組のうちの当面の命令組を指し示すための命令組セレクタ(以下、必要に応じ『ISS』と略記する)を有しているプロセッサ状態レジスタと;
    前記複数の命令組の少なくとも1つを主要命令ワードへと翻訳して出力するため、前記ISSに応じて制御される複数のサブデコーダを含有したプレデコーダと;
    前記主要命令ワードを格納するための命令取込器と;
    前記主要命令ワードを解読するためのものであるとともに、解読した主要命令ワードを前記プロセッサコアによって実行し得るよう、解読した主要命令ワードを前記プロセッサコアに提供するようになっているデコーダと;
    前記ISSに応じて前記PCの値を変更しこれにより様々な前記主要命令ワードの命令ワードの長さを適合させるプログラムカウンタコントローラと;
    前記プレデコーダと前記メモリとの間のインターフェースをなすバスと;
    を具備し、
    前記データレジスタの各々には、2つのビット部分が設けられており、
    少なくとも一方のビット部分は、命令組選択ビット(以下、必要に応じ『IS』と略記する)として観測され、
    他方のビット部分は、ターゲットアドレス(以下、必要に応じ『TA』と略記する)として観測され
    前記ISSは前記ISに従ってセットされることを特徴とする装置。
  2. 請求項1記載の装置において、
    前記ターゲットアドレスは、前記命令組の開始アドレスとされることを特徴とする装置。
  3. 請求項1記載の装置において、
    前記ISSは、前記データレジスタ内の前記ISに従って特定のブランチ命令によってセットされることを特徴とする装置。
  4. 請求項1記載の装置において、
    前記プレデコーダは、前記命令組の少なくとも1つを前記主要命令ワードへと翻訳するための少なくとも1つのサブデコーダを有していることを特徴とする装置。
  5. 請求項1記載の装置において、
    前記サブデコーダの切換が、前記ISSに応じて制御されるようになっており、
    前記プレデコーダからの出力が、前記主要命令ワードとされるようになっていることを特徴とする装置。
  6. 請求項1記載の装置において、
    前記主要命令ワードのビット幅が、他の命令ワードと等しくなく、
    前記命令取込器は、認識用のビットを追加して、前記PCの値を、適切な主要命令ワードを指し示すように変換するようになっていることを特徴とする装置。
  7. 請求項1記載の装置において、
    前記ISSが、少なくとも1つのビットを有していることを特徴とする装置。
  8. 請求項7記載の装置において、
    前記ISSが、特定のブランチ命令により、前記データレジスタの1つ以上の前記ISに従ってセットされるようになっていることを特徴とする装置。
JP2001013796A 2001-01-22 2001-01-22 複数組の命令組を実行するためのデータ処理装置 Expired - Fee Related JP3644892B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001013796A JP3644892B2 (ja) 2001-01-22 2001-01-22 複数組の命令組を実行するためのデータ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001013796A JP3644892B2 (ja) 2001-01-22 2001-01-22 複数組の命令組を実行するためのデータ処理装置

Publications (2)

Publication Number Publication Date
JP2002229776A JP2002229776A (ja) 2002-08-16
JP3644892B2 true JP3644892B2 (ja) 2005-05-11

Family

ID=18880592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001013796A Expired - Fee Related JP3644892B2 (ja) 2001-01-22 2001-01-22 複数組の命令組を実行するためのデータ処理装置

Country Status (1)

Country Link
JP (1) JP3644892B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US7676659B2 (en) * 2007-04-04 2010-03-09 Qualcomm Incorporated System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding
GB2551548B (en) * 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction

Also Published As

Publication number Publication date
JP2002229776A (ja) 2002-08-16

Similar Documents

Publication Publication Date Title
US20020004897A1 (en) Data processing apparatus for executing multiple instruction sets
JP3683230B2 (ja) データ処理装置、命令セット切換方法、データ処理アーキテクチャおよびデータ処理装置作動方法
US4586130A (en) Central processing unit for a digital computer
JP3794917B2 (ja) 分岐予測を迅速に特定するための命令キャッシュ内のバイト範囲に関連する分岐セレクタ
TWI520059B (zh) 運用別名定址法來實現可變長度的指令編碼之方法及數位處理器裝置
US6189090B1 (en) Digital signal processor with variable width instructions
US5394558A (en) Data processor having an execution unit controlled by an instruction decoder and a microprogram ROM
KR100875377B1 (ko) 처리 시스템에서 스택 팝 및 푸쉬 동작들을 수행하는 장치 및 방법
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
US6499100B1 (en) Enhanced instruction decoding
US6687808B2 (en) Data processor using indirect register addressing
JPH1196004A (ja) データプロセッサにおける条件分岐実行を制御するための方法および装置
US20060095746A1 (en) Branch predictor, processor and branch prediction method
JP2006527420A (ja) データアクセスプログラム命令のコード化
US10437598B2 (en) Method and apparatus for selecting among a plurality of instruction sets to a microprocessor
JP3644892B2 (ja) 複数組の命令組を実行するためのデータ処理装置
US4893235A (en) Central processing unit for a digital computer
JPH1091430A (ja) 命令解読装置
KR970012141A (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
US5187782A (en) Data processing system
KR100407452B1 (ko) 다중명령집합을 실행하기 위한 데이터처리장치
TW552556B (en) Data processing apparatus for executing multiple instruction sets
JP2583506B2 (ja) データ処理装置
US20020144087A1 (en) Architecture of method for fetching microprocessor's instructions
JP2689914B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040506

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040629

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041005

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20041111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041217

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: 20050118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050201

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: 20110210

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees