(57)【特許請求の範囲】
【請求項１】
入力バスは命令キャッシュに記憶するための命令のビットを受信し、出力バスは前記命令の前記ビットを出力するためのラインのセットを並列して有し、前記ラインのセット上の前記命令の前記ビットの空間出力順序は、前記入力バスを介して前記ビットを受信する入力順序とは異なり、前記入力バス及び前記出力バスを持つ前記命令キャッシュと前記命令のビットを受信するための前記出力バスに結合される命令入力を備える処理ユニットとを有するコンピュータプロセッサ。
【請求項２】
前記命令キャッシュが記憶のバンクのセットを有し、前記命令はビットのワードを有し、前記入力バスは、一度に一つのバンクにそれぞれのビットを入力するためであり、前記出力バスがバンクのセットのバンクからの命令のワードから連続するビットをライン上に出力するそれぞれの前記ラインは、互いに交叉することなくキャッシュバンクを通過することを特徴とする請求項１に記載のコンピュータプロセッサ。
【請求項３】
前記命令は多数の出力バイトを有し、連続する出力のバイトのビットは、ラインが空間的に連続するラインへ出力され、出力バイトの各ビットは異なるバンクによって出力されることを特徴とする請求項２に記載のコンピュータプロセッサ。
【請求項４】
各バンクは、各出力バイトに対するＲＡＭ列を有し、前記ＲＡＭ列はｍ個の集合で構成され、ｍは出力ワードにおいて多数のバイトを表す整数であり、同一バンクにおいて１つの集合に２つの列は存在しないことを特徴とする請求項３に記載のコンピュータプロセッサ。
【請求項５】
請求項１から４の何れか１項に記載のコンピュータプロセッサのための命令を製造する方法であり、当該方法は、コンパイラ及び／又はリンカで製造されるコンパイル及びリンクされる目的モジュールを受信すること及び、前記第２目的モジュールの前記ビットは、当該ビットが前記コンパイル及びリンクされる目的モジュールに現れる順序で連続的に並列なラインのセットに現れるので、前記命令キャッシュに書き込むための第２目的モジュールを製造するために当該コンパイル及びリンクされる目的モジュールをシャッフルすることのステップを有することを特徴とする方法。
【請求項６】
バンクの前記セットにおける多数のバンクは２つの性質があり、前記コンパイル及びリンクされる目的モジュールにおけるそれぞれの第１のビットアドレスを持つ当該コンパイル及びリンクされる目的モジュールからの各ビットは、前記シャッフルステップにおいて、前記第２の目的モジュールにおけるそれぞれの第２のビットアドレスで置かれ、当該それぞれの第２のビットアドレスは前記性質に対応する多数のビット位置による前記それぞれの第１ビットアドレスの論理ローテーションであることを特徴とする請求項５に記載の方法。
【請求項７】
前記第２目的モジュールを命令記憶部に書き込むステップを有することを特徴とする請求項５又は６に記載の方法。
【請求項８】
前記命令記憶部がメインメモリ及びキャッシュメモリを有し、バンクの前記セットは当該キャッシュメモリに含まれることを特徴とする請求項５，６又は７に記載の方法。
【請求項９】
請求項５から８の何れか１項に記載の方法を実行するためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
コンピュータプロセッサに使用する命令キャッシュにおいて、
命令ストリームの夫々のビットを記憶する手段を有し、これらの各ビットは予めシャッフルされているものであり、
前記記憶手段よりのビットをバス上に多重化してビットをデシャッフルする多重化手段を有し、この多重化手段は前記記憶手段よりバスに至る多数のラインを有してなり、これらの各ラインは互いに交叉しないようにしたことを特徴とする命令キャッシュ。
【請求項１１】
命令ストリームがダブルワード・フォルマットであり、
さらに命令キャッシュが、ダブルワード・フォルマットよりの第１の各ワードを記憶する第１スタックと、ダブルワード・フォルマットよりの第２の各ワードを記憶する第２スタックとを具えてなる請求項10に記載の命令キャッシュ。
【請求項１２】
第１及び第２スタックがバンクに構成されている請求項11に記載の命令キャッシュ。
【請求項１３】
出力バス上の出力バイトの各ビットに対し１つのバンクが具えられている請求項12に記載の命令キャッシュ。
【請求項１４】
多重手段は出力バイトの創造のため各バンクより１ビットづつ転送するように作動する請求項13に記載の命令キャッシュ。
【請求項１５】
キャッシュはｎ個の命令を記憶し、ここにおいてｎは可変整数であり、又各バンクは各命令よりの少なくとも１つの対応ビットを保有することを特徴とする請求項12に記載の命令キャッシュ。
【請求項１６】
１つの出力ワードの各バイトに対しＲＡＭ列を各バンクが有している請求項15に記載の命令キャッシュ。
【請求項１７】
ＲＡＭ列はｍ群に構成され、ここにおいて、ｍは出力ワード中のバイトの数を表わす整数であり、又それぞれの群は出力ワードの各ビットに対応するＲＡＭ列を有しており、同じバンクの１つの群内の２つのＲＡＭ列は同じバンクには存しないようにした請求項14に記載の命令キャッシュ。
【請求項１８】
前記多重手段は、ｍ個の列マルチプレクサを有し、各列マルチプレクサは、対応の群の各ＲＡＭ列よりのビットを出力ワードになる如く多重化する如く動作する請求項17に記載の命令キャッシュ。
【請求項１９】
それぞれが８バンクの第１及び第２スタックを有し、各バンクは１ビット64ＲＡＭセルの８ＲＡＭ列を有し、これらのＲＡＭ列は、８個のＲＡＭ列に構成され、第１スタックはダブルワード出力の低位のビットを記憶するものであり、第２スタックはダブルワード出力の高位のビットを記憶するものであり、さらに前記多重手段は各対応群内の各ＲＡＭ列よりのビットを多重化して出力ワードとする請求項10に記載の命令キャッシュ。
【請求項２０】
ビットが次のアルゴリズムでシャッフルされることを特徴とする請求項19に記載の命令キャッシュ。
0003706633.tif 000003
【請求項２１】
第１バス及び第２バスを有し、第１バスは出力ワードの低位のビットを出力するものであり、第２バスは、出力ワードの高位のビットを出力するものである請求項10に記載の命令キャッシュ。
【請求項２２】
ビットをシャフリングすることによって第１及び第２バスの各ラインを互いに交叉することなく、プロセッサの同一平面上に設けることができるようにした請求項21に記載の命令キャッシュ。
【発明の詳細な説明】
（技術分野）
本発明は、命令キャッシュを備えるコンピュータプロセッサ及びこのようなコンピュータプロセッサに対する命令を作成する方法に関する。
本発明は、特にＶＬＩＷ(Very Long Instruction Word)プロセッサと、このようなプロセッサに対する命令書式及びこのような命令書式を処理するための方法及び装置とに関する。
（背景技術）
ＶＬＩＷプロセッサは、複数の供給スロットを含む命令ワードを持つ。これらプロセッサは複数の機能ユニットも含む。各機能ユニットは、既定の形の動作のセットを実行するためである。各機能ユニットがパイプライン法(pipe-lined manner)で各マシンサイクルにおける命令を始めるＲＩＳＣと似ている。各供給スロットはそれぞれの動作を維持するためである。同一の命令ワードにおけるすべての命令が前記プロセッサの１サイクルにおいて前記機能ユニットを並列に始めるべきである。故に、このＶＬＩＷは良好な類似を実行する。
従って、典型的にＶＬＩＷマシーンにおける命令は、複数の動作を含む。汎用のマシーンに関し、各動作は個々の命令で呼ばれる。しかしながら、このＶＬＩＷマシーンにおいて各命令は動作又は無動作(dummy operations)からなる。
汎用プロセッサのように、ＶＬＩＷプロセッサは、例えば、このプロセッサ上で実行するための命令ストリームを記憶するためのディスクドライブのようなメモリ装置を使用するＶＬＩＷプロセッサは、汎用プロセッサのように、前記プロセッサに対し高帯域幅アクセスを可能にする命令ストリームの部分を記憶するためのキャッシュも使用することができる。
前記ＶＬＩＷプロセッサにおけるこの命令は、プログラマ又はこれら動作からのコンパイラによって構築される。従って、前記ＶＬＩＷプロセッサでのスケジューリングは、ソフトウェアでの制御である。
前記ＶＬＩＷプロセッサは、以下のようなベクトルプロセッサ及びスーパースカラプロセッサのような並列プロセッサの他の形と比較される。ベクトルプロセッサは、同時に複数のデータアイテム上で実行される単一の動作を持つ。スーパースカラプロセッサは、ＶＬＩＷプロセッサのように良好な類似を実行するがＶＬＩＷプロセッサとは異なり、このスーパースカラプロセッサは、ハードウェア動作をスケジュールする。
長い命令ワードにより、前記ＶＬＩＷプロセッサは、キャッシュ使用に関する問題を深刻にする。大きなコードサイズは特にキャッシュ誤り、即ち命令を必要とする位置がキャッシュに無いことを引き起こす。大きなコードサイズは、より高いメインメモリ帯域幅にコードを前記メインメモリから前記キャッシュに移すことを必要にもする。
このアプリケーションに対する技術背景に関する更なる情報は、本特許出願の発明者によって、共に審査中の特許出願に見ることができ、参考文献によってここで及び後述する先行文献中に加えられる同様の出願（出願人参照番号PHA23122）で指定され、これらは、参照によってここに加えられる。
−US Application Ser.No.998,090,filed December 29,1992(PHA21,777)、これは、良好な類似を実施するためのＶＬＩＷプロセッサアーキテクチャを示し、
−US Application Ser.No.142,648,filed October 25,1993(PHA1205)、これは、ガードビットの使用を示し及び、
−US Application Ser.No.366,958,filed December 30,1994(PHA21,032)、これは、ＶＬＩＷアーキテクチャで使用するためのレジスタファイルを示す。
（発明の開示）
本発明は、キャッシュレイアウトを簡単にすることを目的とする。
本発明のもう一つの目的は、シャッフルされるビットストリームを製造する方法を提供し、当該ビットストリームが簡単にされたキャッシュレイアウトを可能にする。
本発明は、請求項１で述べられるようなコンピュータプロセッサを提供する。これは、メインメモリ及び前記処理ユニットそれぞれへの接続の必要性を満たすために、入力バス及び出力バスを別々にレイアウトすることを可能にする。従って、キャッシュレイアウトを簡単にするシャッフルされたビットストリームが使用される。このキャッシュは、シャッフルされた命令ストリームを記憶し、記憶手段からバスへとビットをマルチプレックスするので、これらビットはデシャッフル(deshuffled)される。多数のラインは、前記記憶手段から前記バスへ読み取られ、これらラインは互いに交差しない。
本発明は、請求項５で述べられるような方法にも関する。コンパイル及びリンクされる目的モジュールは、コンパイラ及び／又はリンカで製造され、コードは、第２目的モジュールを製造するためにこのコンパイル及びリンクされたソフトウェアをスウィズル(swizzle)するために受信される。この第２目的モジュールは、キャッシュ構造の出力バスワイヤが交差しない当該キャッシュ構造を使用するキャッシュメモリから読み取られることに関しデスウィズル(deswizzle)するのに適する。
（発明を実施するための最良の形態）
第１Ａ図は、本発明によるプロセッサの一般的な構成を示す。本発明によるマイクロプロセッサは、ＣＰＵ１０２、命令キャッシュ１０３及びデータキャッシュ１０５を含む。このＣＰＵ１０２は高帯域幅のバスでこれらキャッシュと接続される。前記マイクロプロセッサは、命令ストリームが記憶されるメモリ１０４も含む。
前記命令キャッシュ１０３は、５１２ビットのダブルワードを持つように構成される。前記ワードにおける個々のバイトはアドレス可能であるが、前記ビットはアドレス不可能である。各バイトは８ビット長である。好ましくは、このダブルワードは１クロックサイクルで一つのワードをアクセス可能にする。
命令ストリームは、圧縮された書式で命令として記憶される。この圧縮された書式は、前記メモリ１０４と前記キャッシュ１０３との両方で使用される。
第１Ｂ図は、本発明によるＶＬＩＷプロセッサの詳細を示す。このプロセッサは、マルチポートレジスタファイル１５０、多数の機能ユニット１５１，１５２，１５３，…、及び命令供給レジスタ１５４を含む。このマルチポートレジスタファイル１５０は、これら機能ユニットからの結果と、これら機能ユニットに対するオペランドとを記憶する。前記命令供給レジスタ１５４は、開始すべき動作を１クロックサイクルで行わせるため、複数の供給スロットをこれら機能ユニット１５１，１５２，１５３，…に対し並列に含む。伸張ユニット１５５は、前記命令キャッシュ１０３からの圧縮された命令を前記命令供給レジスタ１５４で使用可能な形式に変換する。
圧縮された命令は、前記供給スロットが当該圧縮された命令で使用すべきことを特定する書式領域を含む。検索効率上、書式ビットは、この書式ビットが関係する命令に先行する命令に記憶される。これは、命令検索のハイプライニングを可能にする。Ｎ個の供給スロットマシーンに対し２*Ｎの書式ビットが存在し、２ビットのＮ個の集合として構成される場合、各集合は供給スロットに対応する。１つの集合でのビットは、対応する供給スロットが用いられるべきか及び動作長が当該供給スロットに対する動作によって前記命令に占められるかを特定する。
第２Ａ図ないし第２Ｅ図は命令キャッシュの占める可能性ある位置を示す。
第３図は、どのようにソースコードがロード可能な圧縮された目的モジュールとなるかの概略図を示す。始めに、このソースコード８０１は、目的モジュール８０３の第１のセットを作るために、コンパイラ８０２によってコンパイラされなければならない。これらモジュールは、目的モジュールの第２の形を作るために、リンカ８０４でリンクされる。この後、このモジュールは、ロード可能なモジュール８０７を生むために８０６で圧縮及びシャッフルされる。
いかなる標準コンパイラ又はリンカも使用することができる。目的モジュールIIは、多くの標準データ構造を含む。これらは、ヘッダ、グローバル＆ローカル記号テーブル、再配置情報に対する参照テーブル、セクションテーブル及びデバッグ情報を含み、この幾つかは、圧縮及びシャッフリングモジュール８０７で使用される。前記目的モジュールIIは、テキスト区分を含み処理すべき命令が存在する区分と前記テキストから生じる前記ソースファイルのトラックを保つソース区分とを有する。
前記圧縮及びシャッフリングモジュールの高レベルフローチャートを第４図に示す。９０１において、目的モジュールIIが読み込まれる。９０２において、前記テキスト区分が処理される。９０３において、残りのセクションが処理される。９０４において、前記ヘッダが更新される。９０５において、前記目的モジュールが出力される。
第５図は、ボックス９０２を展開したものである。１００１において、参照テーブル、すなわち再配置情報が集められる。１００２において、分岐ターゲットは圧縮されるべきではないので、これらは収集される。１００３において、ソフトウェアは、ソース区分に多くのファイルが存在するかを確認するために調べる。存在する場合、１００４において、次のファイルに対応する部分が検索され、次に１００５において、前記部分が圧縮される。１００６において、前記ソース区分におけるファイル情報が更新される。１００７において、前記ローカル記号テーブルが更新される。
前記ソース区分にもはやファイルが存在しない場合、前記グローバル記号テーブルが１００８で更新される。次に１００９において、前記テキスト区分におけるアドレス参照が更新される。次に１０１０において、２５６ビットのシャッフリングが生じる。このようなシャッフリングに対するモチベーションは、以下で述べる。
ボックス１００５において、始めに、圧縮すべき命令が多数存在するかを判断する。存在する場合、次の命令が検索される。その後、前記命令における各動作は圧縮され、分散テーブルが更新される。圧縮及びシャッフリングの結果として使用されるこの分散テーブルは新しいデータ構造であり、この構造は以下に説明される。次に命令における動作と後続する命令の書式ビットとの全てが結合される。次いで現在の命令がアドレスを含むならば、前記参照テーブルにおける再配置情報は更新されなければならない。さらに前記テキスト区分におけるアドレス参照を更新するのに必要とされる情報が集められる。また、圧縮された命令は、出力ビットストリングの端に添付される。更に命令が存する場合には、ボックス１００５における上述の処理は反復される。これ以上の命令がない場合、制御はボックス１１０６に戻る。
前記分散テーブルは、本発明の圧縮及びシャッフリングの結果として使用され、以下に説明される。
この参照テーブルは、命令ストリームによって用いられるアドレスの位置のリストと、これら位置で表にされる実際のアドレスの対応するリストとを含む。前記コードが圧縮され場合及び前記コードがロードされる場合、前記アドレスは更新されなければならない。従って、この参照テーブルは、この更新を許可するための回数だけ使用される。
しかしながら、前記コードが圧縮及びシャッフルされる場合、前記アドレスの実際のビットは、互いに分離され、再順序化される。それ故、この分散テーブルは、前記参照テーブルにおける各々のアドレスに対し表にされる。ここでイーチビット（EACH BIT）は置かれている。好ましい実施例において、前記テーブルは、ビット領域の幅、前記ソーステキストにおける前記アドレスの対応する記号からのオフセット、宛先テキストにある前記アドレスにおいて対応する記号から対応するオフセットを表にする。
目的モジュールIIIは、前記プロセッサ上で実行するためにロードされ、この分散テーブルは、前記ビットがデシャッフルされる前でさえ、更新すべき参照テーブルで表にされる前記アドレスを可能にする。
前記ＶＬＩＷプロセッサが上記に述べたように圧縮された命令を処理するために、これら命令は伸張されるべきである。伸張後、これら命令は、好ましい実施例の場合において、Ｎは５であるＮ個の供給スロットを持つ命令レジスタを満たすだろう。第８図は、伸張処理の概略図である。命令はメモリ１２０１、すなわちメインメモリ１０４又は命令キャッシュ１０５のどちらかから来る。次にこれら命令は、１２０３で伸張される前に１２０２でデシャッフルされなければならず、これらは以下で説明される。１２０３で伸張した後、これら命令は、前記ＣＰＵ１２０４に進む。
ＢＩＴ  ＳＷＩＺＺＬＩＮＧ
命令が例えば５１２ビットダブルワードのように長いところでは、キャッシュ構造は複雑となる。前記チップのレイアウトを簡単にするために前記命令のビットをスウィズルすることが利点となる。ここで、これらワードスウィズル及びシャッフルは、同じことを意味するのに用いる。以下は、スウィズルリングビットに対するアルゴリズムである。
0003706633.tif 000002
ここでｉ，ｊ及びｋは整数指数を示し、ｗｏｒｄ＿ｓｈｕｆｆｌｅｄは、シャッフルされたワードのビットを記憶するための行列であり、ｗｏｒｄ＿ｕｎｓｈｕｆｆｌｅｄは、シャッフルされないワードのビットを記憶するための行列である。
このやり方において、ビットが前記“ｗｏｒｄ＿ｓｈｕｆｆｌｅｄ”に書かれた記号は、前記ビットが前記配列“ｗｏｒｄ＿ｕｎｓｈｕｆｆｌｅｄ”から読み取られる記号の３ビットの論理ローテーションである。（ｎビットの論理ローテーションにおいて、前記記号のビットはｎビットによって、より有効な位置へと移され、当該記号のｎ個の最大有効ビットは、ｎ個の最小有効位置に置かれる。）ｎ＝３ビットローテーションの特定の選択は、以下に記載された場合に対し選択される。前記キャッシュからビットを読み取る空間的順序は、８（＝２ｎｎ＝３）個の異なるメモリバンクからのビットの周期的なインターリーブである。
ＣＨＣＨＥ  ＳＴＲＵＣＴＵＲＥ
第６Ａ図は、ＶＬＩＷ命令の効果的処理に有効なキャッシュ構造の入力に関する機能を示す。このキャッシュは、それぞれ２ｋバイトである１６個のバンク６０１−６１６を含む。これらバンクは入力バス６１７を割り当てる。前記キャッシュは２つのスタックに分割される。左側にあるスタックは、“ｌｏｗ”と呼ばれ、右側にあるスタックは、“ｈｉｇｈ”と呼ばれる。
このキャッシュは、一度に一つのバンクにのみ、この時一度に４バイトだけしか入力できない。アドレッシングは、前記バンクのどの４バイトが満たされるかを決める。前記キャッシュにおいて記憶すべき５１２ビットワード各々に対し、４バイトが各バンクに記憶される。各バンクの割り当てられた部分は、既定のワードのロードに対する各バンクの対応する部分を示すことを説明する。これら割り当てられた部分は説明だけである。いかなる既定のワードも前記バンクの対応する部分のどんなセットにもロードされる。
上記アルゴリズムに従ってスウィズルする後、このスウィズルされたワードのシーケンシャル４バイト部分は、以下のような順序６０８，６１６，６０６，６１４，６０４，６１２，６０２，６１０，６０７，６１５，６１３，６０３，６１１，６０１，６０９でバンクにロードされる。このスウィズルされたワードの４バイト部分のロード順序は、前記バンクを表しているボックス内にローマ数字で示されている。
第６Ｂ図は、前記スウィズルされたワードが前記キャッシュから読み出される方法を示す。第６Ｂ図は、前記低いスタックのバンクの割り当てられる位置のみを示す。このスタックの高い部分はアナログである。割り当てられる部分６０１ａ−６０８ａ各々は３２ビットを持つ。これらビットは、すなわち次のような順序６０８ａ−ビット０，６０７ａ−ビット０，…，６０１ａ−ビット０；６０８ａ−ビット１，６０７ａ−ビット１，…，６０１ａ−ビット１；…；６０８ａ−ビット３１，６０７ａ−ビット３１，…，６０１ａ−ビット３１で示される接続を使用する出力バス上にロードされ、バス２５６ローと呼ばれる。これらの接続を使用することで、前記ワードは自動的にこの適切なビット順序へとデスウィズルされる。
ワイヤの束６２０，６２１，…，６２２は、全体で前記出力バス２５６ロー(output bus low)を形成する。これらワイヤは、交差することなく前記キャッシュを通りこれらを前記出力へ結ぶ。
出力に関して前記キャッシュは、第７図と類似している。前記ビットは、制御ユニット７０４の制御下のスタックロー(stack low)７０１及びスタックハイ(stack high)７０２から、当該ビットが上記で特定される出力順序にあることを保証するシフトネットワーク７０３を通って読み出される。この方法において、前記５１２ビットワードの全体の出力は、束６２０，６２１，…６２２とアナログワイヤとが交差すること無く保証される。
本発明は、ビットが事前にシャッフルされる命令ストリームのビットそれぞれを記憶するための手段とこれらビットがデシャッフルされるようにビットを前記記憶手段からバスへとマルチプレックスする手段とを有するコンピュータプロセッサにおける使用に対する命令キャッシュを提供する。前記マルチプレックス手段は、前記記憶手段から前記バスへと通じる多数のラインを有し、当該ラインは互いに交差しない。好ましくは、この命令ストリームは、ダブルワード書式であり、前記キャッシュは、前記ダブルワード書式から第１のワードを記憶するための第１のスタックと当該ダブルワード書式から第２のワードを記憶するための第２のスタックを有する。
好ましくは、前記スタックはバンクに構成され、出力バイトの各ビットに対し一つのバンクが前記出力バスに存在する。マルチプレックス手段は、出力バイトを作るために各バンクから１ビット移すよう作用する。
好ましくは、前記キャッシュはｎ個の命令を記憶するためであり、ここでｎは整変数であり、各バンクは前記ｎ個の命令の各々からそれぞれのビットを少なくとも１つ含む。各バンクは、出力ワードの各バイトに対してＲＡＭ列を含む。これらＲＡＭ列はｍ個の集合に構成され、ここでｍは前記出力ワードに多数のバイトを示す整数であり、それぞれの集合は前記出力ワードの各ビットに対してそれぞれＲＡＭ列を含み、１つの集合における２つのＲＡＭ列は、同じバンクには存在しない。前記マルチプレックス手段は、ｍ列のマルチプレックスを有し、各列マルチプレックスは、ビットを前記それぞれの集合における各ＲＡＭ列から前記出力ワードへマルチプレックスするように作用する。
実施例において、前記命令キャッシュは、８個のバンクからなる第１及び第２キャッシュを有し、各バンクは１ビット６４ＲＡＭセルの８個のＲＡＭ列を有し、前記ＲＡＭ列は、８個のＲＡＭ列の集合に構成され、前記第１スタックはダブルワード出力の低位ビットを記憶するためであり、前記第２スタックは当該ダブルワード出力の高位ビットを記憶するためである。前記マルチプレックス手段は、ビットを各それぞれの集合における各ＲＡＭ列から前記出力ワードへマルチプレックスするように作用する。
好ましくは、前記キャッシュは第１及び第２バスを有し、前記第１バスは出力ワードの低位バイトを出力するためであり、前記第２バスは出力ワードの高位バイトを出力するためである。前記ビットのシャッフルの結果、前記第１及び第２バスのラインは交差することなく前記プロセッサの同じ面に置かれる。
前記コンピュータプロセッサに対する命令ストリームを形成するために、コンピュータ記憶媒体に記憶されたコンピュータソフトウェアは、
−コンパイラ及び／又はリンカで製造されるコンパイル及びリンクされる目的モジュールであり、コンピュータ記憶媒体で記憶される当該目的モジュールを受信するためのコード及び、
−第２目的モジュールは、キャッシュ構造の出力バスワイヤが交差しない当該キャッシュ構造を使用するキャッシュメモリから読むことに対しスウィズルされることに適する当該第２目的モジュールを製造ために前記コンパイル及びリンクされるソフトウェアをスウィズルするためコード、
を有するスウィズルされた命令を生成するために具備される。
好ましくは、コンピュータ記憶媒体に記憶され、スウィズルするためのコードは、これらビットから前記命令に関するシャッフルされた命令のビットの位置を記憶するための分散テーブルを生成する。
この方法において、本発明はビットストリームがコンピュータプロセッサ上で実行するための命令の部分を少なくとも含むコンピュータ記憶媒体に記憶され、多数のビットを含む部分をコンピュータ記憶媒体に記憶されるビットストリームを提供し、当該ビットはシャッフルされた順序であり、このシャッフルされた順序は、前記コンピュータプロセッサのシャッフルされたチップレイアウトを可能にする。前記命令は例として５１２ビットを有する。
【図面の簡単な説明】
第１Ａ図は、本発明の圧縮された命令書式を使用するためのプロセッサを示す。
第１Ｂ図は、第１Ａ図のプロセッサのＣＰＵの詳細を示す。
第２Ａ図から第２Ｅ図は、キャッシュに命令の可能な位置を示す。
第３図は、本発明に従うコードのコンピレーション及びリンクを説明する。
第４図は、圧縮及びシャッフリングモジュールのフローチャートである。
第５図は、第４図のボックス９０２を展開したものである。
第６Ａ図は、入力における命令キャッシュ１０３の機能を示す概略図である。
第６Ｂ図は、出力における命令キャッシュ１０３の一部の機能を示す概略図である。
第７図は、出力における命令キャッシュ１０４の機能を示す概略図である。
第８図は、伸張処理を説明する。
【図１Ａ】
0003706633.tif 000004
【図１Ｂ】
0003706633.tif 000005
【図２】
0003706633.tif 000006
【図３】
0003706633.tif 000007
【図４】
0003706633.tif 000008
【図５】
0003706633.tif 000009
【図６Ａ】
0003706633.tif 000010
【図６Ｂ】
0003706633.tif 000011
【図７】
0003706633.tif 000012
【図８】
0003706633.tif 000013