(57)【特許請求の範囲】
【請求項１】
第１命令セットの命令を実行する第１プロセッサと、
第１命令セットとは異なる第２命令セットの命令を実行する第２プロセッサとを有するデータ処理装置であって、
前記第１プロセッサが前記第１命令セットの中の所定命令を実行したとき、前記第２プロセッサが前記第２命令セットの命令を実行し、
前記データ処理装置は、前記第２命令セットの命令へ分岐後、引き続き実行される前記第２命令セットの命令の動作と前記第２命令セットの命令実行後に復帰する前記第１命令セットの命令の動作に関連性があるかを調べる回路をさらに有し、関連性がない場合に前記第２命令セットの命令の完了を待たずに復帰先の前記第１命令セットの命令を並列に実行可能であることを特徴とするデータ処理装置。
【請求項２】
前記第１命令セットの命令は可変長であり、前記第２命令セットの命令は固定長であることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第２命令セットは、３次元画像処理のための命令を有することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記第１命令セットの命令と前記第２命令セットの命令は共に固定長であることを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記第１命令セットの命令の語長は、前記第２命令セットの命令の語長より短いことを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
演算器を有し、第１命令群を格納する第１記憶部から命令を読み出して実行する第１データ処理部と、
並列動作可能な複数の演算器を有し、同時に実行可能な命令を１命令として実行する第２データ処理部と、
前記第２データ処理部が実行する命令群を格納する第２記憶部とを具備するデータ処理装置であって、
前記第１データ処理部が読み出した命令が所定の命令であるとき、前記第２データ処理部で実行する命令を前記第２記憶部から読み出し、
前記データ処理装置は、前記第２命令セットの命令へ分岐後、引き続き実行される前記第２命令セットの命令の動作と前記第２命令セットの命令実行後に復帰する前記第１命令セットの命令の動作に関連性があるかを調べる回路をさらに有し、関連性がない場合に前記第２命令セットの命令の完了を待たずに復帰先の前記第１命令セットの命令を並列に実行可能であることを特徴とするデータ処理装置。
【請求項７】
ＲＩＳＣ命令を実行するＲＩＳＣコアと、
ＶＬＩＷ命令を格納するＶＬＩＷテーブルと、
ＶＬＩＷ命令を実行するＶＬＩＷコアと、
前記ＲＩＳＣコアと前記ＶＬＩＷコアとの動作切り替えを制御するＶＬＩＷ起動判定ユニットとを有するマイクロプロセッサであって、
前記ＲＩＳＣコアがＲＩＳＣ命令のうちサブルーチンコール若しくは分岐命令を実行したとき、分岐先アドレスで前記ＶＬＩＷテーブルからＶＬＩＷ命令を読み出し、前記ＶＬＩＷ起動判定ユニットが前記ＲＩＳＣコアから前記ＶＬＩＷコアへ動作を移し、前記ＶＬＩＷテーブルからＶＬＩＷ命令の完了コードが読み出されるまで前記ＶＬＩＷコアが動作し、
前記マイクロプロセッサは、ＶＬＩＷ命令へ分岐後、引き続き実行されるＶＬＩＷ命令の動作とＶＬＩＷ命令実行後に復帰するＲＩＳＣ命令の動作に関連性があるかを調べる回路をさらに有し、関連性がない場合にＶＬＩＷ命令の完了を待たずに復帰先のＲＩＳＣ命令を並列に実行可能なマイクロプロセッサ。
【請求項８】
ＲＩＳＣ命令を実行するＲＩＳＣコアと、
ＶＬＩＷ命令を格納するＶＬＩＷテーブルと、
ＶＬＩＷ命令を実行するＶＬＩＷコアと、
前記ＲＩＳＣコアと前記ＶＬＩＷコアとの動作切り替えを制御するＶＬＩＷ起動判定ユニットとを有するマイクロプロセッサであって、
前記ＲＩＳＣコアがＲＩＳＣ命令のうちサブルーチンコール若しくは分岐命令を実行したとき、分岐先アドレスで前記ＶＬＩＷテーブルからＶＬＩＷ命令を読み出し、前記ＶＬＩＷ起動判定ユニットが前記ＲＩＳＣコアから前記ＶＬＩＷコアへ動作を移し、前記ＶＬＩＷテーブルからＶＬＩＷ命令の完了コードが読み出されるまで前記ＶＬＩＷコアが動作し、
ＶＬＩＷ命令実行禁止時にはＶＬＩＷ命令と同等の動作を行うＲＩＳＣ命令列に分岐するとともに、ＶＬＩＷコアの動作を停止させるマイクロプロセッサ。
【請求項９】
前記ＶＬＩＷテーブルは、不揮発性メモリに内蔵されることを特徴とする請求項７又は８に記載のマイクロプロセッサ。
【請求項１０】
前記不揮発性メモリは、マスクＲＯＭ、フラッシュメモリ、強誘電体メモリのうちのいずれか１つであることを特徴とする請求項９に記載のマイクロプロセッサ。
【請求項１１】
前記ＶＬＩＷテーブルは、揮発性メモリに内蔵されることを特徴とする請求項７又は８に記載のマイクロプロセッサ。
【請求項１２】
前記揮発性メモリは、ＳＲＡＭ或いはＤＲＡＭのうちのいずれか一つであることを特徴とする請求項１１に記載のマイクロプロセッサ。
【請求項１３】
前記ＶＬＩＷテーブルは、前記ＲＩＳＣコアのプロセッサで書き換え可能なメモリに内蔵されることを特徴とする請求項７又は８に記載のマイクロプロセッサ。
【請求項１４】
第１命令セットと前記第１命令セットとは異なる第２命令セットを実行可能なマイクロプロセッサであって、
前記マイクロプロセッサは、命令キャッシュと、テーブルと、実行部とを具備し、
前記命令キャッシュは、前記第１命令セットに含まれる命令を出力し、前記テーブルは、前記第２命令セットに含まれる命令を出力し、
前記マイクロプロセッサが前記第１命令セットに含まれる命令に基づいて動作する場合は、前記実行部は、前記命令キャッシュから出力される命令を実行し、
前記マイクロプロセッサが前記第２命令セットに含まれる命令に基づいて動作する場合は、前記実行部は、前記テーブルから供給される命令を実行し、
前記第１命令セットは、前記実行部が実行する命令の供給元を前記命令キャッシュからテーブルに変更する命令を含むことを特徴とするマイクロプロセッサ。
【請求項１５】
前記第１命令セットに含まれる命令のビット長は、前記第２命令セットに含まれる命令のビット長より長いことを特徴とする請求項１４に記載のマイクロプロセッサ。
【請求項１６】
前記マイクロプロセッサは、命令アドレスを保持するための命令フェッチユニットを更に具備し、
前記命令キャッシュは、前記命令フェッチユニットから命令アドレスを受けて、前記実行部に前記命令アドレスに対応する命令を出力することを特徴とする請求項１４又は１５に記載のマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサやマイクロコンピュータ等のデータ処理装置に係わり、特にソフトウエアの互換を維持して高速性能を達成するデータ処理装置に適用して有効な技術に関する。
【０００２】
【従来の技術】
マイクロプロセッサのアーキテクチャにはさまざまなものが存在する。例えばＣＩＳＣ（Ｃｏｍｐｌｅｘｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）型マイクロプロセッサ、  ＲＩＳＣ（Ｒｅｄｉｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）型マイクロプロセッサ、Ｖ  ＬＩＷ（Ｖｅｒｙ  Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）（又はＬＩＷ（Ｌｏｎｇ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｗｏｒｄ）型マイクロプロセッサなどが挙げられる。
【０００３】
ＣＩＳＣ型マイクロプロセッサは、例えば８ビット或いは１６ビットを最小命令長単位とし、最小命令長単位の整数倍長の可変長の命令フォーマットで命令体系（命令セット）を構成している。最大命令長は４８ビット長、６４ビット長、８０ビット長等である。命令セットを構成する命令数が多く、１命令が複数の処理を行い、また命令語長が可変である、マイクロプログラム制御等のため、ハードウエア量が多く高速性能を追及するには難点のあるアーキテクチャであるとされていた。ＣＩＳＣ型マイクロプロセッサの例としては、モトローラ社の６８０Ｘ０，インテル社の８０Ｘ８６等がある。
【０００４】
高速性能を追及する一つの解として、ＲＩＳＣ型マイクロプロセッサが出てきた。ＲＩＳＣ型マイクロプロセッサは、１６ビット長、３２ビット長或いは６４ビット長等の固定長の命令フォーマットで、１命令は単純な処理を行い、比較的少ない命令数で命令体系を構成している。命令が単純であるため、マイクロプロセッサの制御部のハードウエア量もＣＩＳＣ型のマイクロプロセッサと比較して少なく、またパイプライン処理にも適しており、高速性能が比較的出しやすいアーキテクチャである。なお、１６ビット長命令と３２ビット長命令が混在した命令フォーマットで命令体系を構成したものもある。ＲＩＳＣプロセッサの例としては、ＳＰＡＲＣ、ＭＩＰＳ社のＲ３０００等がある。
【０００５】
最近、高速化のため、動作周波数を向上させる方法以外に同時に動作させる演算ユニットの数を増やす方法が取られてきている。この複数の演算ユニットを同時に実行する方式は、スーパスカラ方式と呼ばれている。しかし、スーパスカラ方式で、複数の命令が同時に実行可能かどうかを調べる、すなわち命令依存性を調べる機能が必要となり回路規模が増大する傾向にある。
【０００６】
これに対して固定長ではあるが長い命令長の命令フォーマットで命令体系を構成するプロセッサとして、ＶＬＩＷ型プロセッサが存在する。ＶＬＩＷプロセッサでは１２８ビット以上の長い命令を使って複数の演算器が同時に動作する。  ＶＬＩＷ型プロセッサではコンパイル時にあらかじめ命令の依存性をチェックし同時に実行出来る命令をまとめて１命令とする。ＶＬＩＷ型プロセッサでは実行時に改めて命令の依存性をチェックする必要がないため、ＲＩＳＣ型マイクロプロセッサのスーパースカラ方式に比べて回路規模は少なくなる。  なお、ＶＬＩＷ型プロセッサの例としては、マルチフロー・コンピュータ社のＴｒａｃｅ  ｃｅ／３００等がある。
【０００７】
一方、ＲＩＳＣ型のアーキテクチャの採用等により動作周波数の向上や同時に実行する命令数の増加で、マイクロプロセッサの性能が向上してきた。そのため、従来専用ハードウエアや専用コントローラを使用して行っていた、動画像の圧縮／伸長（ＭＰＥＧデコーダ／エンコーダ）や三次元グラフィック処理をソフトウエアで行うことが考えらている。
【０００８】
ＭＰＥＧデコーダ／エンコーダや三次元グラフィック処理等の同一処理の繰り返しで多量のデータを扱ういわゆるマルチメデイア用途の処理にはＶＬＩＷ型マイクロプロセッサが適しているとされてきている。
【０００９】
【発明が解決しようとする課題】
一方、従来のマイクロプロセッサ或いはＣＰＵ（中央処理装置）はＣＩＳＣ型又はＲＩＳＣ型で、それぞれのソフトウエア資産の蓄積がある。ＣＩＳＣ型、ＲＩＳＣ型、ＶＬＩＷ型のマイクロプロセッサは、それぞれ命令セット、命令フォーマット、アドレッシングモード、プログラミングモデル等は異なり、ソフトウエアの互換性はない。
マイクロプロセッサは、同一アーキテクチャ（命令体系を含む。）では性能向上に限界が出てくる。そこで、アーキテクチャ変更を要求されるが、これまで築き上げてきたソフトウエア資産の継承が問題となる。
【００１０】
本発明の目的は、従来のソフトウエアと互換性を維持しながら、新しいアーキテクチャ（命令体系）のソフトウエアを実行する高性能なプロセッサを実現することである。
【００１１】
本発明の別の目的は、プロセッサ内部の資源たとえば演算ユニットなどの共有化又は共用化によるハードウエアの増加を抑えて高速性能を実現することである。
【００１２】
さらに、本発明の別の目的は、プロセッサ間の動作制御方式による高速化と低消費電力化の双方を実現することである。
【００１３】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１４】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１５】
データ処理装置は、第１の命令セットの命令を実行する第１のプロセッサと、第１の命令セットとは異なる第２の命令セットの命令を実行する第２のプロセッサとを有し、前記第１のプロセッサが前記第１の命令セットの中の所定命令を実行したとき、前記第２のプロセッサが前記第２の命令セットの命令を実行する。
記憶装置に記憶されるプログラムを実行するデータ処理装置は、第１の命令セットの命令によって構成されるプログラムと、第１の命令セットと異なる第２の命令セットの命令によって構成されるプログラムとを前記データ処理装置のアドレス空間に配置する。
【００１６】
前記第１の命令セットの命令は可変長であり、前記第２の命令セットの命令は固定長にする。前記第１の命令セットの命令の最大語長は、前記第２の命令の語長より長い場合がある。前記第１の命令セットの命令の最大語長は、前記第２の命令の語長より短い場合がある。
【００１７】
前記第１の命令セットの命令と前記第２の命令セットの命令は共に固定長である場合がある。前記第１の命令セットの命令の語長は、前記第２の命令の語長より短い場合がある。
【００１８】
データ処理装置は、演算器を有し、第１の命令群を格納する第１の記憶部から命令を読み出して実行する第１のデータ処理部と、並列動作可能な複数の演算器を有し、同時に実行可能な命令を１命令として実行する第２のデータ処理部と、前記第２のデータ処理部が実行する命令群を格納する第２の記憶部とを具備し、前記第１のデータ処理部が読み出した命令が所定の命令であるとき、前記第２のデータ処理部で実行する命令を前記第２の記憶部から読み出す。
【００１９】
マイクロプロセッサは、ＲＩＳＣ命令を実行するＲＩＳＣコアと、ＶＬＩＷ命令を格納するＶＬＩＷテーブルと、ＶＬＩＷ命令を実行するＶＬＩＷコアと、前記ＲＩＳＣコアとＶＬＩＷコアとの動作切り替えを制御するＶＬＩＷ起動判定ユニットとを有し、前記ＲＩＳＣコアがＲＩＳＣ命令のうちサブルーチンコール若しくは分岐命令を実行したとき、分岐先アドレスで前記ＶＬＩＷテーブルからＶＬＩＷ命令を読み出し、前記ＶＬＩＷ起動判定ユニットが前記ＲＩＳＣコアから前記ＶＬＩＷコアへ動作を移し、前記ＶＬＩＷテーブルからＶＬＩＷ命令の完了コードが読み出されるまでＶＬＩＷコアが動作する。
【００２０】
前記マイクロプロセッサは、さらに分岐先アドレスをアドレス変換するＴＬＢを有し、前記ＶＬＩＷテーブルから読み出されるＶＬＩＷ命令を拡張するための信号をアドレス変換の際にＴＬＢから同時に読み出せる。
【００２１】
前記マイクロプロセッサは、さらにＶＬＩＷ命令へ分岐後、引き続き実行されるＶＬＩＷ命令の動作とＶＬＩＷ命令実行後に復帰するＲＩＳＣ命令の動作に関連性があるかを調べる回路を有し、関連性がない場合にＶＬＩＷ命令の完了を待たずに復帰先のＲＩＳＣ命令を並列に実行可能である。
【００２２】
前記マイクロプロセッサにおいて、ＶＬＩＷ命令の実行を禁止したり、実行を制御するレジスタをプロセッサ内部に有し、ＶＬＩＷ命令実行禁止時にはＶＬＩＷ命令と同等の動作を行うＲＩＳＣ命令列に分岐することで、ＶＬＩＷコアの動作を停止させ低消費電力化を図る機能を有する。
【００２３】
前記ＶＬＩＷテーブルを不揮発性メモリに内蔵する。  前記不揮発性メモリは、マスクＲＯＭ、フラッシュメモリ、強誘電体メモリのうちのいづれか１つであるのが望ましい。
前記ＶＬＩＷテーブルを揮発性メモリに内蔵する。前記ＶＬＩＷテーブルを揮発性メモリは、ＳＲＡＭ或いはＤＲＡＭのうちのいづれかであるのが望ましい。
【００２４】
前記ＶＬＩＷテーブルをＲＩＳＣコアのプロセッサで書き換え可能なメモリに内蔵するのが望ましい。
【００２５】
【発明の実施の形態】
図１には本発明の実施形態に係るマイクロプロセッサ１００のブロック図が示される。マイクロプロセッサ１００は、ＲＩＳＣ命令の処理を実行するＲＩＳＣコア部１０６、ＶＬＩＷ命令の処理を実行するＶＬＩＷコア部１４０及びデータキャッシュ１２９から構成される。
【００２６】
ＲＩＳＣコア部１０６は、命令フェッチユニット１０１、命令キャッシュ１０７、  ＲＩＳＣデコードユニット１１４、浮動小数点ユニット１１８、整数演算ユニット１１９、ロード／ストアユニット１２７から構成される。
【００２７】
ＶＬＩＷコア部１４０は、ＶＬＩＷ起動判定ユニット１０４、ＶＬＩＷテーブル１１３、ＶＬＩＷデコードユニット１１５、Ｎ個の演算ユニット１２０、ＶＬＩＷロード／ストアユニット１３１から構成される。
【００２８】
命令フェッチユニット１０１が命令アドレスバス１０５に実行する命令のアドレスを出力する。ＲＩＳＣ命令実行時には命令アドレスバス１０５のアドレスに対応する命令が命令キャッシュ１０７から命令バス１０８に読み出され、ＲＩＳＣデコードユニット１１４においてＲＩＳＣ命令のデコードを行う。なお、命令キャッシュ１０７に該当する命令が存在しない（キャッシュミス）ときは、アドレスバス１３４とデータバス１３５を用いてバスコントローラ（図示せず）を介してマイクロプロセッサ外部のメモリから命令が読み出される。  ＲＩＳＣデコードユニット１１４でのデコードの結果はＲＩＳＣ演算ユニット制御信号１１７を通して浮動小数点ユニット１１８や整数演算ユニット１１９などの制御が行われる。図１ではＶＬＩＷコアの演算ユニット１４０とＲＩＳＣコアの演算ユニット１０６をお互いに共有している状態を示しているため、演算ユニット１２０へのアクセスが発生することもある。
【００２９】
さらに命令がメモリアクセス命令であった場合はロード／ストアユニット１２７へアクセスが発生し、アドレスバス１２６からデータキャッシュ１２９にアクセスが起こり、データバス１２８、ＲＩＳＣ用データバス１２１を通してデータが整数演算ユニット１１９と浮動小数点ユニット１１８のレジスタに格納される。データキャッシュ１２９に該当するデータがない（キャッシュミス）とき、バスコントローラを介して、アドレスバス１３９とデータバス１３８を用いて、マイクロプロセッサ外部のメモリをアクセスする。
【００３０】
ＲＩＳＣ命令の実行中にＶＬＩＷ命令の実行を行うための分岐命令（ＲＩＳＣ命令の一部）が発生した場合、ＲＩＳＣデコードユニット１１４からＶＬＩＷ分岐命令デコード信号１４２を通して命令フェッチユニット１０１へ分岐発生を知らせる。信号分岐先アドレスは分岐先アドレス用バス１３６を通して伝えられる。レジスタファイル内のレジスタに分岐先アドレスが格納されている場合は分岐先アドレス用バス１４１を通して整数演算ユニット１１９などからＲＩＳＣデコードユニット１１４へアドレスが転送される。ＶＬＩＷ命令はＲＩＳＣコアのメモリ空間の特定のアドレス空間に割り付けられており、そのアドレス空間をアクセスすることでＶＬＩＷテーブル１１３に格納されているＶＬＩＷ命令をアクセスすることが可能となる。これによって、ＶＬＩＷテーブル１１３からのＶＬＩＷ命令の読み出し及び書き換えを行うことができる。
【００３１】
ＶＬＩＷ分岐命令デコード信号１４２を通して分岐の発生を受けた命令フェッチユニット１０１はＶＬＩＷ命令分岐信号１０３を通してＶＬＩＷ起動判定ユニット１０４へＶＬＩＷ命令への分岐が発生したことを知らせる。ＶＬＩＷ起動判定ユニット１０４はＶＬＩＷ命令を起動する条件を判定し、ＲＩＳＣコア制御信号１０９を通しＲＩＳＣデコードユニット１１４へ命令アドレスバス１０５のアドレスで読み出した命令の実行を中止させる。ＲＩＳＣデコードユニット１１４内又はＶＬＩＷデコードユニット１１５内のレジスタで指定された場合は、消費電力低減のためＲＩＳＣコア１０６全体或いは一部のクロックを停止することができる。なお、ＶＬＩＷ命令を実行しない場合も、同様にＶＬＩＷコア全体或いは一部のクロックを停止することができる。
【００３２】
ＶＬＩＷテーブル１１３から命令アドレス命令アドレスバス１０５のアドレスを用いＶＬＩＷ命令バス１１２へＶＬＩＷ命令が読み出される。ＶＬＩＷデコードユニット１１５はＶＬＩＷ命令バス１１２のＶＬＩＷ命令をＶＬＩＷ起動判定ユニット１０４からＶＬＩＷ命令デコード起動信号１１１を通して送られてくる起動条件をもとにデコードし、ＶＬＩＷ演算ユニット制御信号１１６を通してＶＬＩＷ演算ユニット１２０またはＲＩＳＣコア部１０６の整数演算ユニット１１９や浮動小数点ユニット１１８のそれぞれの制御を並列に行う。ＶＬＩＷ演算ユニット１２０とは整数演算ユニット、浮動小数点演算ユニット、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ：例えば積和演算）等の演算ユニットである。図１には各演算ユニットが個別にレジスタファイルを持つローカルレジスタファイル型のプロセッサの例が示される。各演算ユニット間のデータのやりとりは演算器間データバス１２３を通して行われる。ＶＬＩＷ命令にメモリアクセス命令が含まれていた場合、ＶＬＩＷロード／ストアユニット１３１がデータキャッシュ１２９に対しアドレスバス１２５とデータバス１３０、ＶＬＩＷ用データバス１２４を用いてアクセスが発生する。
【００３３】
ＶＬＩＷ命令が連続して続く場合は命令アドレスバス１０５を通してＶＬＩＷ起動判定ユニット１０４内に保持されているアドレス情報を使い命令アドレスバス１３２のアドレスとＶＬＩＷテーブル制御信号１３３を通してＶＬＩＷテーブル１１３からＶＬＩＷ命令が読み出される。読み出されたＶＬＩＷ命令が最後の命令であることを示す完了コードを含んでいる場合ＶＬＩＷデコードユニット１１５がＶＬＩＷ命令実行状態信号１１０を通してＶＬＩＷ起動判定ユニット１０４にＶＬＩＷ命令列の完了を知らせる。ＶＬＩＷ命令実行状態信号１１０にはＶＬＩＷ命令の完了の他に割り込み、例外等のＶＬＩＷ命令実行に影響を与える情報も出力される。ＶＬＩＷ起動判定ユニット１０４はＶＬＩＷ命令列の完了を受けてＶＬＩＷ命令完了信号１０２とＲＩＳＣコア制御信号１０９を通しＶＬＩＷ命令の完了を命令フェッチユニット１０１とＲＩＳＣデコードユニット１１４へ伝え、ＲＩＳＣ命令に復帰する。
【００３４】
すなわち、ＲＩＳＣ命令の実行にはＲＩＳＣコア１０６を用い、ＶＬＩＷ命令の実行にはＶＬＩＷコア１４０を用いる。ＶＬＩＷコア１４０の実行では新規にＲＩＳＣ命令に追加したＶＬＩＷ命令への分岐命令もしくは特定のアドレスへの分岐をトリガとし、ＶＬＩＷ命令起動判定ユニット１０４がマイクロプロセッサ内部に保持するＶＬＩＷテーブル１１３から順次ＶＬＩＷ命令をＶＬＩＷデコーダ１１５へ読み出す。ＶＬＩＷ命令実行後、処理をＲＩＳＣ命令列に復帰する。つまりＶＬＩＷ命令の実行をサブルーチン化しＶＬＩＷテーブル１１３に格納することにより高速動作が必要な処理をＶＬＩＷ命令で実行することが可能となる。サブルーチン化することによりＶＬＩＷ回路を有しないマイクロプロセッサであっても、分岐先にＶＬＩＷ命令と同等の動作をするＲＩＳＣ命令列を配置することで互換性の維持が可能である。
【００３５】
また低消費電力動作が必要であり、かつＶＬＩＷ命令を使うような高速な動作が必要でない場合には内蔵制御レジスタの状態により、ＶＬＩＷコア１４０の動作を停止し、ＲＩＳＣコア１０６のみで動作を行うことも可能である。逆にＲＩＳＣコア１０６の動作が必要でない場合にはＲＩＳＣコア１０６の動作を停止し、ＶＬＩＷコア１４０のみで動作することも可能である。
【００３６】
さらに、ＲＩＳＣ命令の実行中にＶＬＩＷコア１４０の演算器（レジスタファイルを含む）を使用でき、ＶＬＩＷ命令実行中にＲＩＳＣコア１０６の演算器（レジスタファイル）を使用できるので、資源の共用が可能になり半導体集積回路のチップ面積低減が可能になる。
【００３７】
ＶＬＩＷ起動判定ユニット１０４は、ＶＬＩＷ命令実行中に実行中のＶＬＩＷ命令がＶＬＩＷ命令実行完了後に復帰する先のＲＩＳＣ命令と依存性がないかを制御信号１３７を通して得られるデコード結果をもとに判定し、依存性がない場合にＶＬＩＷ命令完了信号１０２とＲＩＳＣコア制御信号１０９を通してＲＩＳＣ命令とＶＬＩＷ命令の並列実行の制御の選択が可能である。
【００３８】
ＶＬＩＷテーブル１１３にはマスクＲＯＭ、ＥＰＲＯＭ（電気的書き込み紫外線消去の不揮発性メモリ）、ＥＥＰＲＯＭ（電気的消去／書き込み可能な不揮発性メモリ）、フラッシュメモリ（フラッシュＥＥＰＲＯＭ）、ＦＲＡＭ（強誘電体メモリ）等の不揮発性メモリと、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＲＡＭ（スタテイックＲＡＭ）等の揮発性メモリとが使用される。書き換え可能なメモリ、例えばＥＥＰＲＯＭ、フラッシュメモリ、ＦＲＡＭ、ＤＲＡＭ、ＳＲＡＭ等を用いた場合、  ＶＬＩＷテーブルデータバス１２２を通してシステムに応じたＶＬＩＷテーブルを設定することが可能である。これによって、  ＶＬＩＷ動作中に動的にＶＬＩＷテーブルをシステムに最適な構成にすることができる。またＶＬＩＷ起動判定ユニット１０４内にあるレジスタへのアクセスにもこのＶＬＩＷテーブルデータバス１２２が用いられる。ＳＲＡＭを用いると他のメモリを使用する場合に比べて書き込み及び読み出しが高速にできる。ＤＲＡＭはメモリ素子が１個のトランジスタで構成され、ＳＲＡＭはメモリ素子が４個又は６個のトランジスタで構成されるため、ＤＲＡＭを用いることでＶＬＩＷテーブルをＳＲＡＭを用いるより小さくできる。
図２には図１に係るマイクロプロセッサの変形例が示される。図２では  ＲＩＳＣコア１０６とＶＬＩＷコア１４０のレジスタを共通に持つグローバルレジスタ型のマイクロプロセッサが示される。図１のマイクロプロセッサ１００と同一の部分には同一の記号が用いられている。
【００３９】
図５には、ＶＬＩＷ分岐命令によりＶＬＩＷ命令がＲＩＳＣ命令と並列に実行する場合のタイミングチャートとＶＬＩＷ命令のコード割付の例が示されている。
【００４０】
ＶＬＩＷ分岐命令はＲＩＳＣ命令の１つで、ＲＩＳＣ命令１、２、３と同様にＲＩＳＣコア１０６でパイプライン処理で実行される。記号５０１、５０４、５０６、５０７はそのパイプラインステージを示している。Ｉは命令フェッチ、Ｄは命令デコード、Ｅは実行、Ｍはメモリアクセス、Ｗは書き込みのステージを表す。また、ＶＬＩＷ命令１、２、３は、ＶＬＩＷコア１４０でパイプライン処理で実行される。記号５０２、５０３、５０５はそのパイプラインステージを示している。パイプラインのＶＩ、ＶＤ、ＶＥ、ＶＭ、ＶＷはそれぞれＶＬＩＷ用の命令フェッチ、命令デコード、実行、メモリアクセス、書き込みのステージを表す。
【００４１】
ＶＬＩＷ分岐命令からＶＬＩＷ命令１へ３サイクル後に分岐するとしたらＶＬＩＷ命令１のパイプライン５０２がサイクル４から開始する。ＶＬＩＷ命令２以降のＶＬＩＷ命令がＶＬＩＷ命令実行後の復帰先のＲＩＳＣ命令と依存性がない場合、ＶＬＩＷ命令２の実行５０３とＲＩＳＣ命令１の実行５０４を並列に行うことが可能である。ＶＬＩＷ命令３の実行５０５とＲＩＳＣ命令２の実行５０６も並列に動作でき、ＶＬＩＷ命令が完了すると、ＶＬＩＷ命令用のパイプラインは消え、ＲＩＳＣ命令３の実行５０７が行われる。
【００４２】
ＶＩステージでＶＬＩＷテーブルから読み出されるＶＬＩＷ命令のコード割付の例を図５の下に示す。ＶＬＩＷ命令には複数の演算器を制御するためのコードが１命令に埋めこまれている。このＶＬＩＷ命令の命令長は１２８ビット或いは２５６ビットの固定長である。記号５０８はＶＬＩＷ演算器１を制御するためのフィールド、５０９はＶＬＩＷ演算器２を制御するためのフィールド、５１０は整数演算器を制御するためのフィールド、５１１は浮動小数点演算器を制御するためのフィールド、５１２はＶＬＩＷ命令の完了やその他の情報を格納するためのフィールドなどから構成されている。５０８、５０９、５１０、５１１、５１２の各々のフィールドは３２ビット長で、５１３のオペコード、５１４のディスプレースメント、５１５のソースレジスタ１、５５１６のソースレジスタ２、５１７のデスティネーションレジスタなどの割付が行われている。この命令コードをＶＬＩＷデコーダがデコードし各演算器を制御する。
【００４３】
本発明の実施形態では、命令セットの異なるプロセッサ間の動作を切り替える方法として、プロセッサを切り替えるための分岐命令若しくは特定アドレス空間への分岐をトリガとして用いている。第１のプロセッサと第２のプロセッサの間で動作を切り替える場合、第１のプロセッサ若しくは第２のプロセッサのどちらかのプロセッサが全体の実行を制御するマスタプロセッサとなり、もう一つがスレーブプロセッサとなる。マスタプロセッサは常に片方のプロセッサに固定であるわけでなく、動的にどちらのプロセッサでもマスタプロセッサになることは可能である。
【００４４】
マスタプロセッサからスレーブプロセッサへ動作が移った後、スレーブプロセッサの動作が復帰後のマスタープロセッサの動作に影響を与えない場合、スレーブプロセッサもしくはマスタプロセッサが依存性を判断することで並列に２つのプロセッサを動作させることが可能である。
【００４５】
図６には、本発明を利用したシステムの全体図が示される。６０１は１枚或いは複数枚のプリント基板上に構成されたシステムで、このシステムにディスプレイ６１１、ＣＤ−ＲＯＭ６１２、ビデオカメラ６１５、ＬＣＤ６１８、キーボードやプリンタ等の周辺デバイス６２０等が接続される。システム６０１はプロセッサ６０２、プログラム等を格納するＲＯＭ６０８、データやプログラムを格納するＳＲＡＭ６０９、ＤＲＡＭ６１４及びＳＤＲＡＭ６１４、表示用画像データ等を格納する３次元グラフィック用フレームバッファ６１０、ＣＤ−ＲＯＭを制御するＣＤ−ＲＯＭデコーダ６１３、ビデオカメラを制御するビデオコントローラ６１６、液晶表示装置（ＬＣＤ）を制御するＬＣＤコントローラ６１９、キーボードやプリンタ等の周辺デバイス６２０を制御する周辺デバイスコントローラ６２１等がシステムバス６０７に接続されて構成されている。
【００４６】
プロセッサ６０２は、第１の命令セットを持つプロセッサ１（６０３）と、第２の命令セットを持つプロセッサ２（６０５）から構成されており、制御信号６０６によりプロセッサ１がプロセッサ２を、制御信号６０４によりプロセッサ２がプロセッサ１を制御する。プロセッサ６０２は３次元グラッフィクス、ＭＰＥＧのエンコード／デコードを高速に処理することができるので、従来のような専用のハードウエア回路が必要なく、プリント基板上に実装する半導体チップの個数を削減でき、プリント基板の枚数の削減或いはプリント基板自身の大きさを小さくできる。
【００４７】
図７には、図６のプロセッサ６０２を一つの半導体集積回路装置で構成した（ワンチップに内蔵した）場合のブロック図が示されている。プロセッサ７０１は、半導体集積回路製造技術用いて単結晶シリコンのような１個の半導体基板に形成される。この半導体基板はレジンモールド技術を用いていわゆるプラスチックパッケージに封止される。このワンチップには、ＲＯＭ６０８やＲＡＭ６０９などのメモリが含まれることもある。
【００４８】
ワンチップのプロセッサ７０１は、第１の命令セットを持つプロセッサ１（７０８）と、第２の命令セットを持つプロセッサ２（７１１）、データキャッシュ７１２、周辺装置、クロックパルス発生回路（ＣＰＧ）７１４、入出力回路（Ｉ／Ｏ）７１５等から構成される。
【００４９】
プロセッサ１（７０８）とプロセッサ２（７１１）の組み合わせには１６ビット固定長命令のＲＩＳＣプロセッサと６４ビット固定長命令のＶＬＩＷプロセッサの組み合わせや、３２ビット固定長命令のＲＩＳＣプロセッサと１２８ビット固定長命令のＶＬＩＷプロセッサの組み合わせや、６４ビット固定長命令のＲＩＳＣプロセッサと２５６ビット固定長命令のＶＬＩＷプロセッサ等がある。この組み合わせではプロセッサ１とプロセッサ２を逆にすることも可能である。図７ではプロセッサ１（７０８）がＲＩＳＣプロセッサ（図１のＲＩＳＣコア１０６）、プロセッサ２（７１１）がＶＬＩＷプロセッサ（図１のＶＬＩＷコア１４０）である場合が示される。
【００５０】
プロセッサ１（７０８）は命令フェッチユニット１０１、命令キャッシュ１０７、ＲＩＳＣデコードユニット１１４、１つまたは複数の演算ユニット７０４、ＲＩＳＣロード／ストアユニット１２７から構成され、内部バス７０２により接続されている。命令フェッチユニット１０１が命令キャッシュ１０７から命令を読み出し、その読み出した命令をＲＩＳＣデコードユニット１１４で解析し、演算ユニット７０４が動作し、メモリアクセスが必要な場合はロード／ストアユニット１２７が起動する。演算ユニット７０４には乗算ユニット、整数演算ユニット、浮動小数点ユニット、除算ユニット、ＤＳＰなどの演算ユニットが置かれる。また同一の演算ユニットを複数個持つ場合もある。命令キャッシュへの命令の読み込みはバス７０９を用いて、バスコントロールユニット７１２から行われる。ＲＩＳＣロード／ストアユニット１２７はバス７０５を用いてデータキャッシュ１２９にアクセスを行う。データキャッシュ１２９へのデータの取り込みはバスコントロールユニット７１２からバス７０７を用いて行われる。
【００５１】
プロセッサ２（７１１）はＶＬＩＷ起動判定ユニット１０４、ＶＬＩＷテーブル１１３、ＶＬＩＷデコードユニット１１５、１つまたは複数の演算ユニット７０４、ＶＬＩＷロードストアユニット１３１から構成され、内部バス７０２により接続されている。ＶＬＩＷ起動判定ユニット１０４からＶＬＩＷ命令の起動がかかると、ＶＬＩＷテーブル１１３よりＶＬＩＷ命令が読み出され、ＶＬＩＷデコードユニット１１５で命令を解析し演算ユニット７０４が動作し、メモリアクセスが必要な場合はロード／ストアユニット１３１が起動する。ＶＬＩＷテーブル１１３にはマスクＲＯＭやフラッシュメモリなどの不揮発性メモリ又はＳＲＡＭやＤＲＡＭなどの揮発性メモリが使用される。ＶＬＩＷテーブルはチップ外に存在することもあり、その場合にはバスコントロールユニットを通して外部からＶＬＩＷ命令の読み出しが行なわれる。演算ユニット７０４には乗算ユニット、整数演算ユニット、浮動小数点ユニット、除算ユニット、ＤＤＳＰなどの演算ユニットが置かれる。また同一の演算ユニットを複数個持つ場合もある。ＶＬＩＷロード／ストアユニット１３１はバス７０６を用いてデータキャッシュ１２９にアクセスを行う。
【００５２】
バスコントロールユニット７１２はバス７１３を用いてＩ／Ｏ７１５にアクセスを行う。  Ｉ／Ｏ７１５はアドレス信号７１７、データ信号７１６を用いてチップの外とのデータのやりとりを行う。バス７１３には周辺モジュール７１０等が接続されることもある。また内部のクロックはＣＰＧ７１４によって発生される。
【００５３】
プロセッサ１（７０８）とプロセッサ２（７１１）とのあいだのインターフェイスは制御信号線（又はバス）７０３を用いて行われる。
【００５４】
図７のようにプロセッサ１とプロセッサ２をワンチップ化することにより、データキャッシュを共有できるためデータの一致制御が行いやすくなる。またプロセッサ間の信号がチップの外に出ないためセキュリティが強化される。さらにプロセッサ間の通信の高速化と情報量が削減できるため、低コスト化と高速化が図れる。
【００５５】
図８には本発明に係る他の実施形態であるマイクロコンピュータ８００のブロック図が示される。マイクロコンピュータ８００は半導体製造プロセス技術用いてシリコンのような１つの半導体基板上に形成される。この半導体基板はレジンモールド技術を用いていわゆるプラスチックパッケージに封止される。
【００５６】
マイクロコンピュータ８００は、第１のプロセッサ８０１、第２のプロセッサ８０２、第１のメモリ８０３、第２のメモリ８０４、プロセッサ切り替え回路８０５、アドレスバス８０６、データバス８０７、及びバス制御ユニット８０８を有する。
【００５７】
第１のプロセッサ８０１はＲＩＳＣ型プロセッサで、１６ビット固定長命令を実行するプロセッサである。第２のプロセッサ８０２はＶＬＩＷ型のプロセッサで、６４ビット長命令を実行するプロセッサである。第１のプロセッサ８０１と第２のプロセッサ８０２との命令体系（命令セット、命令フォーマット或いはプログラミングモデル等）は異なる。第１のメモリ８０３には第１のプロセッサ８０１が実行する命令（プログラム）が格納される。第２のメモリ８０４には第２のプロセッサ８０２が実行される命令（プログラム）が格納される。第１のメモリ８０３及び第２のメモリ８０４は不揮発性のメモリ又は揮発性のメモリで構成される。第１のメモリ８０３と第２のメモリ８０４を書き替え可能なメモリで構成することにより、半導体供給者だけでなく、半導体の使用者がプログラムすことが可能になる。すなわち、第１の命令セットを用いたプログラムと第２の命令セットを用いたプログラムとの両方が使用者によってすることができる。不揮発性のメモリ、揮発性のメモリ及び書き替え可能なメモリには、図１のマイクロプロセッサのＶＬＩＷテーブル１１３で使用されるものと同様である。
【００５８】
図９のメモリマップに示すように第１のプロセッサのプログラムと第２のプロセッサのプログラムは、第１のプロセッサ８０１或いは第２のプロセッサ８０２のアドレス空間上にある。第１のメモリ８０３には第１のプロセッサのプログラムの一部或いは全てが格納される。また、第２のメモリ８０４には第２のプロセッサのプログラムの一部或いは全てが格納される。
【００５９】
プロセッサ切り替え回路８０５は、第１のプロセッサ８０１或いは第２のプロセッサ８０２のアドレスが入力され、第１のメモリ８０３と第２のメモリ８０４のどちらをアクセスするのかを判定する。第１のプロセッサ８０１が第１のメモリ８０３をアクセスする場合は、アドレス信号と制御信号８１２をプロセッサ切り替え回路８０５に入力する。プロセッサ切り替え回路８０５は第１のメモリ８０３のアクセスに必要なアドレス信号や制御信号８０８を出力する。また、第２のプロセッサ８０２に先読みされた命令の動作の中止や低消費電力化のためのクロック停止のための制御信号８１０を出力する。一方、第２のプロセッサ８０２が第２のメモリ８０４をアクセスする場合は、アドレス信号と制御信号８１３をプロセッサ切り替え回路８０５に入力する。プロセッサ切り替え回路８０５は第２のメモリのアクセスに必要なアドレス信号や制御信号を信号線８０９に出力する。また、第１のプロセッサ８０１に先読みされた命令の動作の中止や低消費電力化のためのクロック停止のための制御信号８１１を出力する。プロセッサ切り替え回路８０５によって、第１のプロセッサと第２のプロセッサが排他的に動作する。
【００６０】
第１のプロセッサ８０１は第１のプロッセッサのプログラムを実行し、そのプログラムの中の分岐命令等で第２のプロセッサのプログラム領域を示すアドレスを出力することによって、第２のプロセッサで第２のプロセッサのプログラムを実行できる。また、第２のプロセッサは第２のプロセッサのプログラムの中の分岐命令等で第１のプロセッサのプログラム領域を示すアドレスを出力することによって、第１のプロセッサのプログラムに戻ることができる。
【００６１】
なお、プロセッサ切り替え回路８０５内には制御レジスタがあり、このレジスタを書き替えることにより図９に示したメモリマップは変更することができる。前記制御レジスタで、第１のプロセッサのプログラム領域、第２のプロセッサのプログラム領域、データ領域のそれぞれの始まりアドレスと終わりのアドレス等を指定できる。
【００６２】
これによって、命令体系の異なるプログラムが１つのマイクロコンピュータで実行でき、第１のプロセッサのプログラムが従来から蓄積されたソフウトウエアであっても、新しいアーキテクチャのプログラムが第２のプロセッサで実行できるので、ソフトウエアの互換性が維持できる。
【００６３】
また、動作しないプロセッサのクロックを停止させることで、低消費電力化を実現できる。
【００６４】
第１のプロセッサ８０１と第２のプロセッサ８０２の命令長は比較的短いため、命令デコーダ等の制御部や演算部を小さくできるので、第１のメモリ８０３又は第２のメモリ８０４の容量を大きくすることができる。なお、プロセッサの面積が大きくても良い場合は、命令長は長くしてもよい。
【００６５】
本発明の実施の形態により、命令セットの異なるプロセッサ間の動作を特定の命令で切り替えることが可能となるため、互換性を維持しながら異なる命令セットを有するプロセッサへの拡張が可能となる。
【００６６】
またプロセッサ間で演算ユニットなどの資源を共有化できるため、低コスト化につながる。
【００６７】
異なる命令セットを持つプロセッサをワンチップに内蔵した場合には、プロセッサ間通信の高速化と、内部情報がチップ外部に出力されないことによるセキュリティ強化が図れる。
【００６８】
動作中に高速な処理が必要でなくなったとき１つのプロセッサの動作を完全に止め、別のプロセッサで止めたプロセッサと同機能の処理をさせることにより低消費電力化が図れる。
【００６９】
これによって、（１）ソフトウエアは従来と完全互換性を保ったまま１ＧＩＰＳ（Ｇｉｇａ  Ｉｎｓｔｒｕｃｔｉｏｎｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）、最大１０ＧＯＰＳ（Ｇｉｇａ  Ｏｐｅｒａｔｉｏｎ  ｓ  Ｐｅｒ  Ｓｅｃｏｎｄ）の高性能を実現できる。（２）既存のソフトウエアのままでミドルウエア部分の性能を１桁向上できる。（３）新しいアプリケーションもこれまでの命令セットのままで作成できる。（４）全てのアプリケーションをソフトウエアで実現できる。
【００７０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることはいうまでもない。例えば、図１のマイクロプロセッサでは、ＲＩＳＣコアの演算器とＶＬＩＷコアの演算器とは双方で共用できたが、図２のマイクロプロセッサのように独立させてもよい。図２ではロード／ストアユニット２０４ＲＩＳＣコアとＶＬＩＷコアとの共有にした場合をしたが、ロード／ストアユニットは図１のように２つ持っても構わない。第１のプロセッサをＲＩＳＣ型プロセッサ、第２のプロセッサをＶＬＩＷ型プロセッサで構成したが、命令セットの異なる２つのプロセッサで構成することができる。すなわち、ＲＩＳＣ型とＲＩＳＣ型、ＲＩＳＣ型とＣＩＳＣ型、ＣＩＳＣ型とＣＩＳＣ型、ＣＩＳＣ型とＶＬＩＷ型、ＶＬＩＷ型とＶＬＩＷ型等のプロセッサを用いても良い。また、ＲＩＳＣプロセッサとＶＬＩＷプロセッサとの命令長を１６ビットと６４ビット、３２ビットと１２８ビット、６４ビットと２５６ビットとの例を示す。
【００７１】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００７２】
すなわち、従来のソフトウエアを実行する第１のプロセッサと、新しいアーキテクチャのソフトウエアを実行する第２のプロセッサとを有し、第１のプロセッサが第２のプロセッサに起動をかけることができるので、従来のソフトウエアと互換性を維持しながら、新しいアーキテクチャ（命令体系）のソフトウエアを実行する高性能なプロセッサを実現することができる。
【００７３】
２つのプロセッサ内部の資源たとえば演算ユニットなどを共有化することにより、ハードウエアの増加を抑えて高速性能を実現することができる。
【００７４】
２つのプロセッサを並列に動作させる場合と、間欠動作させる２つの制御方式が可能であるため、高速化と低消費電力化の双方を実現することができる。
【図面の簡単な説明】
【図１】本発明の一つの実施形態に係るマイクロプロセッサのブロック図。
【図２】図１に係るマイクロプロセッサの変形例のブロック図。
【図３】図１及び図２のマイクロプロセッサのＶＬＩＷ起動論理に関する詳細図。
【図４】図１及び図２のマイクロプロセッサにＴＬＢを用い場合のＶＬＩＷ起動論理に関する詳細図。
【図５】ＶＬＩＷ命令実行時のパイプラインの構成と命令コードの例。
【図６】本発明に係るマイクロプロセッサを利用したシステムの全体図。
【図７】ワンチップのプロセッサのブロック図。
【図８】本発明に係る他の実施形態であるマイクロコンピュータのブロック図。
【図９】図８のマイクロコンピュータのメモリマップ。
【符号の説明】
１００  マイクロプロセッサ
１０１  命令フェッチユニット
１０２  ＶＬＩＷ命令完了信号
１０３  ＶＬＩＷ命令分岐信号
１０４  ＶＬＩＷ起動判定ユニット
１０５、１３２  命令アドレスバス
１０６  ＲＩＳＣコア
１０７  命令キャッシュ
１０８  命令バス
１０９  ＲＩＳＣコア制御信号
１１０  ＶＬＩＷ命令実行状態信号
１１１  ＶＬＩＷ命令デコード起動信号
１１２  ＶＬＩＷ命令バス
１１３  ＶＬＩＷテーブル
１１４  ＲＩＳＣ命令デコードユニット
１１５  ＶＬＩＷ命令デコードユニット
１１６  ＶＬＩＷ演算ユニット制御信号
１１７  ＲＩＳＣ演算ユニット制御信号
１１８  浮動小数点演算ユニット
１１９  整数演算ユニット
１２０  ＶＬＩＷ演算ユニット
１２１  ＲＩＳＣ用データバス
１２２  ＶＬＩＷテーブルデータバス
１２３  演算器間データバス
１２４  ＶＬＩＷ用データバス
１２５、１２６  アドレスバス
１２７  ＲＩＳＣロード／ストアユニット
１２８、１３０  データバス
１２９  データキャッシュ
１３１  ＶＬＩＷロード／ストアユニット
１３３  ＶＬＩＷテーブル制御信号
１３４、１３９  アドレスバス
１３５、１３８  データバス
１３６、１４１  分岐先アドレス用バス
１３７  制御信号
１４０  ＶＬＩＷコア
１４２  ＶＬＩＷ分岐命令デコード信号
２００  マイクロプロセッサ
２０１  レジスタファイル
２０２  演算ユニットとレジスタファイル間のバス
２０３  レジスタファイルとロードストアユニット間のバス
２０４  ロード／ストアユニット
２０５  データバス
２０６  アドレスバス
３０１  加算器
３０２  ＶＬＩＷコア用プログラムカウンタ
３０３  セレクタ
３０４  アドレスラッチ
３０５  データラッチ
３０６  ＶＬＩＷテーブル格納メモリ
３０７  テーブル制御回路
３０８  ＶＬＩＷコア制御レジスタ
３０９  デコーダ
３１０  ＶＬＩＷ起動判定回路
３１１  調停回路
３１２  起動回路
３１３  マルチプレクサ
３１４  ＶＬＩＷ演算ユニット制御回路
３１５  ＶＬＩＷ分岐条件判定回路
３１６  ＲＩＳＣコア用プログラムカウンタ
３１７  加算器
４０１  アドレス変換バッファ（ＴＬＢ）
４０２  ＶＬＩＷ起動補助情報信号
４０３  命令アドレス（物理アドレス）
５０１  ＶＬＩＷ分岐命令のパイプライン
５０２  ＶＬＩＷ命令１
５０３  ＶＬＩＷ命令２
５０４  ＲＩＳＣ命令１
５０５  ＶＬＩＷ命令３
５０６  ＲＩＳＣ命令２
５０７  ＲＩＳＣ命令３
５０８  ＶＬＩＷ演算器１制御フィールド
５０９  ＶＬＩＷ演算器２制御フィールド
５１０  整数演算器制御フィールド
５１１  浮動小数点演算器制御フィールド
５１２  ＶＬＩＷ命令完了コード
５１３  オペコード
５１４  ディスプレースメント
５１５  ソースレジスタ１
５１６  ソースレジスタ２
５１７  ディスティネーションレジスタ
６０１  システム
６０２  プロセッサ
６０３  プロセッサ１
６０４  プロセッサ２からプロセッサ１の制御信号
６０５  プロセッサ２
６０６  プロセッサ１からプロセッサ２の制御信号
６０７  システムバス
６０８  ＲＯＭ
６０９  ＲＡＭ
６１０  ３次元グラッフィクス用フレームバッファ
６１１  ディスプレイ
６１２  ＣＤ−ＲＯＭ
６１３  ＣＤ−ＲＯＭデコーダ
６１４  ＤＲＡＭ
６１５  ビデオカメラ
６１６  ビデオコントローラ
６１７  ＳＤＲＡＭ
６１８  ＬＣＤ
６１９  ＬＣＤコントローラ
６２０  キーボードやプリンタなど周辺デバイス
６２１  周辺デバイスコントローラ
７０１  プロセッサ
７０２  内部バス
７０３  プロセッサ１とプロセッサ２の間の制御信号
７０４  演算ユニット（整数演算、浮動小数点演算、乗除算、ＤＳＰなど）
７０５  プロセッサ１とデータキャッシュ間のバス
７０６  プロセッサ２とデータキャッシュ間のバス
７０７  データキャッシュとバスコントロールユニット間のバス
７０８  プロセッサ１（ＲＩＳＣプロセッサ）
７０９  命令キャッシュとバスコントロールユニット間のバス
７１０  周辺モジュール
７１１  プロセッサ２（ＶＬＩＷプロセッサ）
７１２  バスコントールユニット
７１３  バスコントロールユニットとＩ／Ｏ間のバス
７１４  クロックパルス発生回路（ＣＰＧ）
７１５  入出力回路（Ｉ／Ｏ）
７１６  データ信号線
７１７  アドレス信号線
８００  マイクロコンピュータ
８０１  第１のプロセッサ
８０２  第２のプロセッサ
８０３  第１のメモリ
８０４  第２のメモリ
８０５  プロセッサ切り替え回路
８０６  アドレスバス
８０７  データバス
８０８  バス制御ユニット。
【図１】
0003623840.tif 000002
【図２】
0003623840.tif 000003
【図３】
0003623840.tif 000004
【図４】
0003623840.tif 000005
【図５】
0003623840.tif 000006
【図６】
0003623840.tif 000007
【図７】
0003623840.tif 000008
【図８】
0003623840.tif 000009
【図９】
0003623840.tif 000010