JP3706633B2 - 命令キャッシュを備えたプロセッサ - Google Patents

命令キャッシュを備えたプロセッサ Download PDF

Info

Publication number
JP3706633B2
JP3706633B2 JP54069597A JP54069597A JP3706633B2 JP 3706633 B2 JP3706633 B2 JP 3706633B2 JP 54069597 A JP54069597 A JP 54069597A JP 54069597 A JP54069597 A JP 54069597A JP 3706633 B2 JP3706633 B2 JP 3706633B2
Authority
JP
Japan
Prior art keywords
instruction
output
bit
bits
word
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
JP54069597A
Other languages
English (en)
Other versions
JPH11509663A (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
Priority claimed from US08/649,732 external-priority patent/US5862398A/en
Priority claimed from US08/648,333 external-priority patent/US6131152A/en
Application filed by トリメディア テクノロジーズ インコーポ レイテッド filed Critical トリメディア テクノロジーズ インコーポ レイテッド
Publication of JPH11509663A publication Critical patent/JPH11509663A/ja
Application granted granted Critical
Publication of JP3706633B2 publication Critical patent/JP3706633B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

(技術分野)
本発明は、命令キャッシュを備えるコンピュータプロセッサ及びこのようなコンピュータプロセッサに対する命令を作成する方法に関する。
本発明は、特にVLIW(Very Long Instruction Word)プロセッサと、このようなプロセッサに対する命令書式及びこのような命令書式を処理するための方法及び装置とに関する。
(背景技術)
VLIWプロセッサは、複数の供給スロットを含む命令ワードを持つ。これらプロセッサは複数の機能ユニットも含む。各機能ユニットは、既定の形の動作のセットを実行するためである。各機能ユニットがパイプライン法(pipe-lined manner)で各マシンサイクルにおける命令を始めるRISCと似ている。各供給スロットはそれぞれの動作を維持するためである。同一の命令ワードにおけるすべての命令が前記プロセッサの1サイクルにおいて前記機能ユニットを並列に始めるべきである。故に、このVLIWは良好な類似を実行する。
従って、典型的にVLIWマシーンにおける命令は、複数の動作を含む。汎用のマシーンに関し、各動作は個々の命令で呼ばれる。しかしながら、このVLIWマシーンにおいて各命令は動作又は無動作(dummy operations)からなる。
汎用プロセッサのように、VLIWプロセッサは、例えば、このプロセッサ上で実行するための命令ストリームを記憶するためのディスクドライブのようなメモリ装置を使用するVLIWプロセッサは、汎用プロセッサのように、前記プロセッサに対し高帯域幅アクセスを可能にする命令ストリームの部分を記憶するためのキャッシュも使用することができる。
前記VLIWプロセッサにおけるこの命令は、プログラマ又はこれら動作からのコンパイラによって構築される。従って、前記VLIWプロセッサでのスケジューリングは、ソフトウェアでの制御である。
前記VLIWプロセッサは、以下のようなベクトルプロセッサ及びスーパースカラプロセッサのような並列プロセッサの他の形と比較される。ベクトルプロセッサは、同時に複数のデータアイテム上で実行される単一の動作を持つ。スーパースカラプロセッサは、VLIWプロセッサのように良好な類似を実行するがVLIWプロセッサとは異なり、このスーパースカラプロセッサは、ハードウェア動作をスケジュールする。
長い命令ワードにより、前記VLIWプロセッサは、キャッシュ使用に関する問題を深刻にする。大きなコードサイズは特にキャッシュ誤り、即ち命令を必要とする位置がキャッシュに無いことを引き起こす。大きなコードサイズは、より高いメインメモリ帯域幅にコードを前記メインメモリから前記キャッシュに移すことを必要にもする。
このアプリケーションに対する技術背景に関する更なる情報は、本特許出願の発明者によって、共に審査中の特許出願に見ることができ、参考文献によってここで及び後述する先行文献中に加えられる同様の出願(出願人参照番号PHA23122)で指定され、これらは、参照によってここに加えられる。
−US Application Ser.No.998,090,filed December 29,1992(PHA21,777)、これは、良好な類似を実施するためのVLIWプロセッサアーキテクチャを示し、
−US Application Ser.No.142,648,filed October 25,1993(PHA1205)、これは、ガードビットの使用を示し及び、
−US Application Ser.No.366,958,filed December 30,1994(PHA21,032)、これは、VLIWアーキテクチャで使用するためのレジスタファイルを示す。
(発明の開示)
本発明は、キャッシュレイアウトを簡単にすることを目的とする。
本発明のもう一つの目的は、シャッフルされるビットストリームを製造する方法を提供し、当該ビットストリームが簡単にされたキャッシュレイアウトを可能にする。
本発明は、請求項1で述べられるようなコンピュータプロセッサを提供する。これは、メインメモリ及び前記処理ユニットそれぞれへの接続の必要性を満たすために、入力バス及び出力バスを別々にレイアウトすることを可能にする。従って、キャッシュレイアウトを簡単にするシャッフルされたビットストリームが使用される。このキャッシュは、シャッフルされた命令ストリームを記憶し、記憶手段からバスへとビットをマルチプレックスするので、これらビットはデシャッフル(deshuffled)される。多数のラインは、前記記憶手段から前記バスへ読み取られ、これらラインは互いに交差しない。
本発明は、請求項5で述べられるような方法にも関する。コンパイル及びリンクされる目的モジュールは、コンパイラ及び/又はリンカで製造され、コードは、第2目的モジュールを製造するためにこのコンパイル及びリンクされたソフトウェアをスウィズル(swizzle)するために受信される。この第2目的モジュールは、キャッシュ構造の出力バスワイヤが交差しない当該キャッシュ構造を使用するキャッシュメモリから読み取られることに関しデスウィズル(deswizzle)するのに適する。
(発明を実施するための最良の形態)
第1A図は、本発明によるプロセッサの一般的な構成を示す。本発明によるマイクロプロセッサは、CPU102、命令キャッシュ103及びデータキャッシュ105を含む。このCPU102は高帯域幅のバスでこれらキャッシュと接続される。前記マイクロプロセッサは、命令ストリームが記憶されるメモリ104も含む。
前記命令キャッシュ103は、512ビットのダブルワードを持つように構成される。前記ワードにおける個々のバイトはアドレス可能であるが、前記ビットはアドレス不可能である。各バイトは8ビット長である。好ましくは、このダブルワードは1クロックサイクルで一つのワードをアクセス可能にする。
命令ストリームは、圧縮された書式で命令として記憶される。この圧縮された書式は、前記メモリ104と前記キャッシュ103との両方で使用される。
第1B図は、本発明によるVLIWプロセッサの詳細を示す。このプロセッサは、マルチポートレジスタファイル150、多数の機能ユニット151,152,153,…、及び命令供給レジスタ154を含む。このマルチポートレジスタファイル150は、これら機能ユニットからの結果と、これら機能ユニットに対するオペランドとを記憶する。前記命令供給レジスタ154は、開始すべき動作を1クロックサイクルで行わせるため、複数の供給スロットをこれら機能ユニット151,152,153,…に対し並列に含む。伸張ユニット155は、前記命令キャッシュ103からの圧縮された命令を前記命令供給レジスタ154で使用可能な形式に変換する。
圧縮された命令は、前記供給スロットが当該圧縮された命令で使用すべきことを特定する書式領域を含む。検索効率上、書式ビットは、この書式ビットが関係する命令に先行する命令に記憶される。これは、命令検索のハイプライニングを可能にする。N個の供給スロットマシーンに対し2*Nの書式ビットが存在し、2ビットのN個の集合として構成される場合、各集合は供給スロットに対応する。1つの集合でのビットは、対応する供給スロットが用いられるべきか及び動作長が当該供給スロットに対する動作によって前記命令に占められるかを特定する。
第2A図ないし第2E図は命令キャッシュの占める可能性ある位置を示す。
第3図は、どのようにソースコードがロード可能な圧縮された目的モジュールとなるかの概略図を示す。始めに、このソースコード801は、目的モジュール803の第1のセットを作るために、コンパイラ802によってコンパイラされなければならない。これらモジュールは、目的モジュールの第2の形を作るために、リンカ804でリンクされる。この後、このモジュールは、ロード可能なモジュール807を生むために806で圧縮及びシャッフルされる。
いかなる標準コンパイラ又はリンカも使用することができる。目的モジュールIIは、多くの標準データ構造を含む。これらは、ヘッダ、グローバル&ローカル記号テーブル、再配置情報に対する参照テーブル、セクションテーブル及びデバッグ情報を含み、この幾つかは、圧縮及びシャッフリングモジュール807で使用される。前記目的モジュールIIは、テキスト区分を含み処理すべき命令が存在する区分と前記テキストから生じる前記ソースファイルのトラックを保つソース区分とを有する。
前記圧縮及びシャッフリングモジュールの高レベルフローチャートを第4図に示す。901において、目的モジュールIIが読み込まれる。902において、前記テキスト区分が処理される。903において、残りのセクションが処理される。904において、前記ヘッダが更新される。905において、前記目的モジュールが出力される。
第5図は、ボックス902を展開したものである。1001において、参照テーブル、すなわち再配置情報が集められる。1002において、分岐ターゲットは圧縮されるべきではないので、これらは収集される。1003において、ソフトウェアは、ソース区分に多くのファイルが存在するかを確認するために調べる。存在する場合、1004において、次のファイルに対応する部分が検索され、次に1005において、前記部分が圧縮される。1006において、前記ソース区分におけるファイル情報が更新される。1007において、前記ローカル記号テーブルが更新される。
前記ソース区分にもはやファイルが存在しない場合、前記グローバル記号テーブルが1008で更新される。次に1009において、前記テキスト区分におけるアドレス参照が更新される。次に1010において、256ビットのシャッフリングが生じる。このようなシャッフリングに対するモチベーションは、以下で述べる。
ボックス1005において、始めに、圧縮すべき命令が多数存在するかを判断する。存在する場合、次の命令が検索される。その後、前記命令における各動作は圧縮され、分散テーブルが更新される。圧縮及びシャッフリングの結果として使用されるこの分散テーブルは新しいデータ構造であり、この構造は以下に説明される。次に命令における動作と後続する命令の書式ビットとの全てが結合される。次いで現在の命令がアドレスを含むならば、前記参照テーブルにおける再配置情報は更新されなければならない。さらに前記テキスト区分におけるアドレス参照を更新するのに必要とされる情報が集められる。また、圧縮された命令は、出力ビットストリングの端に添付される。更に命令が存する場合には、ボックス1005における上述の処理は反復される。これ以上の命令がない場合、制御はボックス1106に戻る。
前記分散テーブルは、本発明の圧縮及びシャッフリングの結果として使用され、以下に説明される。
この参照テーブルは、命令ストリームによって用いられるアドレスの位置のリストと、これら位置で表にされる実際のアドレスの対応するリストとを含む。前記コードが圧縮され場合及び前記コードがロードされる場合、前記アドレスは更新されなければならない。従って、この参照テーブルは、この更新を許可するための回数だけ使用される。
しかしながら、前記コードが圧縮及びシャッフルされる場合、前記アドレスの実際のビットは、互いに分離され、再順序化される。それ故、この分散テーブルは、前記参照テーブルにおける各々のアドレスに対し表にされる。ここでイーチビット(EACH BIT)は置かれている。好ましい実施例において、前記テーブルは、ビット領域の幅、前記ソーステキストにおける前記アドレスの対応する記号からのオフセット、宛先テキストにある前記アドレスにおいて対応する記号から対応するオフセットを表にする。
目的モジュールIIIは、前記プロセッサ上で実行するためにロードされ、この分散テーブルは、前記ビットがデシャッフルされる前でさえ、更新すべき参照テーブルで表にされる前記アドレスを可能にする。
前記VLIWプロセッサが上記に述べたように圧縮された命令を処理するために、これら命令は伸張されるべきである。伸張後、これら命令は、好ましい実施例の場合において、Nは5であるN個の供給スロットを持つ命令レジスタを満たすだろう。第8図は、伸張処理の概略図である。命令はメモリ1201、すなわちメインメモリ104又は命令キャッシュ105のどちらかから来る。次にこれら命令は、1203で伸張される前に1202でデシャッフルされなければならず、これらは以下で説明される。1203で伸張した後、これら命令は、前記CPU1204に進む。
BIT SWIZZLING
命令が例えば512ビットダブルワードのように長いところでは、キャッシュ構造は複雑となる。前記チップのレイアウトを簡単にするために前記命令のビットをスウィズルすることが利点となる。ここで、これらワードスウィズル及びシャッフルは、同じことを意味するのに用いる。以下は、スウィズルリングビットに対するアルゴリズムである。
Figure 0003706633
ここでi,j及びkは整数指数を示し、word_shuffledは、シャッフルされたワードのビットを記憶するための行列であり、word_unshuffledは、シャッフルされないワードのビットを記憶するための行列である。
このやり方において、ビットが前記“word_shuffled”に書かれた記号は、前記ビットが前記配列“word_unshuffled”から読み取られる記号の3ビットの論理ローテーションである。(nビットの論理ローテーションにおいて、前記記号のビットはnビットによって、より有効な位置へと移され、当該記号のn個の最大有効ビットは、n個の最小有効位置に置かれる。)n=3ビットローテーションの特定の選択は、以下に記載された場合に対し選択される。前記キャッシュからビットを読み取る空間的順序は、8(=2n=3)個の異なるメモリバンクからのビットの周期的なインターリーブである。
CHCHE STRUCTURE
第6A図は、VLIW命令の効果的処理に有効なキャッシュ構造の入力に関する機能を示す。このキャッシュは、それぞれ2kバイトである16個のバンク601−616を含む。これらバンクは入力バス617を割り当てる。前記キャッシュは2つのスタックに分割される。左側にあるスタックは、“low”と呼ばれ、右側にあるスタックは、“high”と呼ばれる。
このキャッシュは、一度に一つのバンクにのみ、この時一度に4バイトだけしか入力できない。アドレッシングは、前記バンクのどの4バイトが満たされるかを決める。前記キャッシュにおいて記憶すべき512ビットワード各々に対し、4バイトが各バンクに記憶される。各バンクの割り当てられた部分は、既定のワードのロードに対する各バンクの対応する部分を示すことを説明する。これら割り当てられた部分は説明だけである。いかなる既定のワードも前記バンクの対応する部分のどんなセットにもロードされる。
上記アルゴリズムに従ってスウィズルする後、このスウィズルされたワードのシーケンシャル4バイト部分は、以下のような順序608,616,606,614,604,612,602,610,607,615,613,603,611,601,609でバンクにロードされる。このスウィズルされたワードの4バイト部分のロード順序は、前記バンクを表しているボックス内にローマ数字で示されている。
第6B図は、前記スウィズルされたワードが前記キャッシュから読み出される方法を示す。第6B図は、前記低いスタックのバンクの割り当てられる位置のみを示す。このスタックの高い部分はアナログである。割り当てられる部分601a−608a各々は32ビットを持つ。これらビットは、すなわち次のような順序608a−ビット0,607a−ビット0,…,601a−ビット0;608a−ビット1,607a−ビット1,…,601a−ビット1;…;608a−ビット31,607a−ビット31,…,601a−ビット31で示される接続を使用する出力バス上にロードされ、バス256ローと呼ばれる。これらの接続を使用することで、前記ワードは自動的にこの適切なビット順序へとデスウィズルされる。
ワイヤの束620,621,…,622は、全体で前記出力バス256ロー(output bus low)を形成する。これらワイヤは、交差することなく前記キャッシュを通りこれらを前記出力へ結ぶ。
出力に関して前記キャッシュは、第7図と類似している。前記ビットは、制御ユニット704の制御下のスタックロー(stack low)701及びスタックハイ(stack high)702から、当該ビットが上記で特定される出力順序にあることを保証するシフトネットワーク703を通って読み出される。この方法において、前記512ビットワードの全体の出力は、束620,621,…622とアナログワイヤとが交差すること無く保証される。
本発明は、ビットが事前にシャッフルされる命令ストリームのビットそれぞれを記憶するための手段とこれらビットがデシャッフルされるようにビットを前記記憶手段からバスへとマルチプレックスする手段とを有するコンピュータプロセッサにおける使用に対する命令キャッシュを提供する。前記マルチプレックス手段は、前記記憶手段から前記バスへと通じる多数のラインを有し、当該ラインは互いに交差しない。好ましくは、この命令ストリームは、ダブルワード書式であり、前記キャッシュは、前記ダブルワード書式から第1のワードを記憶するための第1のスタックと当該ダブルワード書式から第2のワードを記憶するための第2のスタックを有する。
好ましくは、前記スタックはバンクに構成され、出力バイトの各ビットに対し一つのバンクが前記出力バスに存在する。マルチプレックス手段は、出力バイトを作るために各バンクから1ビット移すよう作用する。
好ましくは、前記キャッシュはn個の命令を記憶するためであり、ここでnは整変数であり、各バンクは前記n個の命令の各々からそれぞれのビットを少なくとも1つ含む。各バンクは、出力ワードの各バイトに対してRAM列を含む。これらRAM列はm個の集合に構成され、ここでmは前記出力ワードに多数のバイトを示す整数であり、それぞれの集合は前記出力ワードの各ビットに対してそれぞれRAM列を含み、1つの集合における2つのRAM列は、同じバンクには存在しない。前記マルチプレックス手段は、m列のマルチプレックスを有し、各列マルチプレックスは、ビットを前記それぞれの集合における各RAM列から前記出力ワードへマルチプレックスするように作用する。
実施例において、前記命令キャッシュは、8個のバンクからなる第1及び第2キャッシュを有し、各バンクは1ビット64RAMセルの8個のRAM列を有し、前記RAM列は、8個のRAM列の集合に構成され、前記第1スタックはダブルワード出力の低位ビットを記憶するためであり、前記第2スタックは当該ダブルワード出力の高位ビットを記憶するためである。前記マルチプレックス手段は、ビットを各それぞれの集合における各RAM列から前記出力ワードへマルチプレックスするように作用する。
好ましくは、前記キャッシュは第1及び第2バスを有し、前記第1バスは出力ワードの低位バイトを出力するためであり、前記第2バスは出力ワードの高位バイトを出力するためである。前記ビットのシャッフルの結果、前記第1及び第2バスのラインは交差することなく前記プロセッサの同じ面に置かれる。
前記コンピュータプロセッサに対する命令ストリームを形成するために、コンピュータ記憶媒体に記憶されたコンピュータソフトウェアは、
−コンパイラ及び/又はリンカで製造されるコンパイル及びリンクされる目的モジュールであり、コンピュータ記憶媒体で記憶される当該目的モジュールを受信するためのコード及び、
−第2目的モジュールは、キャッシュ構造の出力バスワイヤが交差しない当該キャッシュ構造を使用するキャッシュメモリから読むことに対しスウィズルされることに適する当該第2目的モジュールを製造ために前記コンパイル及びリンクされるソフトウェアをスウィズルするためコード、
を有するスウィズルされた命令を生成するために具備される。
好ましくは、コンピュータ記憶媒体に記憶され、スウィズルするためのコードは、これらビットから前記命令に関するシャッフルされた命令のビットの位置を記憶するための分散テーブルを生成する。
この方法において、本発明はビットストリームがコンピュータプロセッサ上で実行するための命令の部分を少なくとも含むコンピュータ記憶媒体に記憶され、多数のビットを含む部分をコンピュータ記憶媒体に記憶されるビットストリームを提供し、当該ビットはシャッフルされた順序であり、このシャッフルされた順序は、前記コンピュータプロセッサのシャッフルされたチップレイアウトを可能にする。前記命令は例として512ビットを有する。
【図面の簡単な説明】
第1A図は、本発明の圧縮された命令書式を使用するためのプロセッサを示す。
第1B図は、第1A図のプロセッサのCPUの詳細を示す。
第2A図から第2E図は、キャッシュに命令の可能な位置を示す。
第3図は、本発明に従うコードのコンピレーション及びリンクを説明する。
第4図は、圧縮及びシャッフリングモジュールのフローチャートである。
第5図は、第4図のボックス902を展開したものである。
第6A図は、入力における命令キャッシュ103の機能を示す概略図である。
第6B図は、出力における命令キャッシュ103の一部の機能を示す概略図である。
第7図は、出力における命令キャッシュ104の機能を示す概略図である。
第8図は、伸張処理を説明する。

Claims (22)

  1. 入力バスは命令キャッシュに記憶するための命令のビットを受信し、出力バスは前記命令の前記ビットを出力するためのラインのセットを並列して有し、前記ラインのセット上の前記命令の前記ビットの空間出力順序は、前記入力バスを介して前記ビットを受信する入力順序とは異なり、前記入力バス及び前記出力バスを持つ前記命令キャッシュと前記命令のビットを受信するための前記出力バスに結合される命令入力を備える処理ユニットとを有するコンピュータプロセッサ。
  2. 前記命令キャッシュが記憶のバンクのセットを有し、前記命令はビットのワードを有し、前記入力バスは、一度に一つのバンクにそれぞれのビットを入力するためであり、前記出力バスがバンクのセットのバンクからの命令のワードから連続するビットをライン上に出力するそれぞれの前記ラインは、互いに交叉することなくキャッシュバンクを通過することを特徴とする請求項1に記載のコンピュータプロセッサ。
  3. 前記命令は多数の出力バイトを有し、連続する出力のバイトのビットは、ラインが空間的に連続するラインへ出力され、出力バイトの各ビットは異なるバンクによって出力されることを特徴とする請求項2に記載のコンピュータプロセッサ。
  4. 各バンクは、各出力バイトに対するRAM列を有し、前記RAM列はm個の集合で構成され、mは出力ワードにおいて多数のバイトを表す整数であり、同一バンクにおいて1つの集合に2つの列は存在しないことを特徴とする請求項3に記載のコンピュータプロセッサ。
  5. 請求項1から4の何れか1項に記載のコンピュータプロセッサのための命令を製造する方法であり、当該方法は、コンパイラ及び/又はリンカで製造されるコンパイル及びリンクされる目的モジュールを受信すること及び、前記第2目的モジュールの前記ビットは、当該ビットが前記コンパイル及びリンクされる目的モジュールに現れる順序で連続的に並列なラインのセットに現れるので、前記命令キャッシュに書き込むための第2目的モジュールを製造するために当該コンパイル及びリンクされる目的モジュールをシャッフルすることのステップを有することを特徴とする方法。
  6. バンクの前記セットにおける多数のバンクは2つの性質があり、前記コンパイル及びリンクされる目的モジュールにおけるそれぞれの第1のビットアドレスを持つ当該コンパイル及びリンクされる目的モジュールからの各ビットは、前記シャッフルステップにおいて、前記第2の目的モジュールにおけるそれぞれの第2のビットアドレスで置かれ、当該それぞれの第2のビットアドレスは前記性質に対応する多数のビット位置による前記それぞれの第1ビットアドレスの論理ローテーションであることを特徴とする請求項5に記載の方法。
  7. 前記第2目的モジュールを命令記憶部に書き込むステップを有することを特徴とする請求項5又は6に記載の方法。
  8. 前記命令記憶部がメインメモリ及びキャッシュメモリを有し、バンクの前記セットは当該キャッシュメモリに含まれることを特徴とする請求項5,6又は7に記載の方法。
  9. 請求項5から8の何れか1項に記載の方法を実行するためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  10. コンピュータプロセッサに使用する命令キャッシュにおいて、
    命令ストリームの夫々のビットを記憶する手段を有し、これらの各ビットは予めシャッフルされているものであり、
    前記記憶手段よりのビットをバス上に多重化してビットをデシャッフルする多重化手段を有し、この多重化手段は前記記憶手段よりバスに至る多数のラインを有してなり、これらの各ラインは互いに交叉しないようにしたことを特徴とする命令キャッシュ。
  11. 命令ストリームがダブルワード・フォルマットであり、
    さらに命令キャッシュが、ダブルワード・フォルマットよりの第1の各ワードを記憶する第1スタックと、ダブルワード・フォルマットよりの第2の各ワードを記憶する第2スタックとを具えてなる請求項10に記載の命令キャッシュ。
  12. 第1及び第2スタックがバンクに構成されている請求項11に記載の命令キャッシュ。
  13. 出力バス上の出力バイトの各ビットに対し1つのバンクが具えられている請求項12に記載の命令キャッシュ。
  14. 多重手段は出力バイトの創造のため各バンクより1ビットづつ転送するように作動する請求項13に記載の命令キャッシュ。
  15. キャッシュはn個の命令を記憶し、ここにおいてnは可変整数であり、又各バンクは各命令よりの少なくとも1つの対応ビットを保有することを特徴とする請求項12に記載の命令キャッシュ。
  16. 1つの出力ワードの各バイトに対しRAM列を各バンクが有している請求項15に記載の命令キャッシュ。
  17. RAM列はm群に構成され、ここにおいて、mは出力ワード中のバイトの数を表わす整数であり、又それぞれの群は出力ワードの各ビットに対応するRAM列を有しており、同じバンクの1つの群内の2つのRAM列は同じバンクには存しないようにした請求項14に記載の命令キャッシュ。
  18. 前記多重手段は、m個の列マルチプレクサを有し、各列マルチプレクサは、対応の群の各RAM列よりのビットを出力ワードになる如く多重化する如く動作する請求項17に記載の命令キャッシュ。
  19. それぞれが8バンクの第1及び第2スタックを有し、各バンクは1ビット64RAMセルの8RAM列を有し、これらのRAM列は、8個のRAM列に構成され、第1スタックはダブルワード出力の低位のビットを記憶するものであり、第2スタックはダブルワード出力の高位のビットを記憶するものであり、さらに前記多重手段は各対応群内の各RAM列よりのビットを多重化して出力ワードとする請求項10に記載の命令キャッシュ。
  20. ビットが次のアルゴリズムでシャッフルされることを特徴とする請求項19に記載の命令キャッシュ。
    Figure 0003706633
  21. 第1バス及び第2バスを有し、第1バスは出力ワードの低位のビットを出力するものであり、第2バスは、出力ワードの高位のビットを出力するものである請求項10に記載の命令キャッシュ。
  22. ビットをシャフリングすることによって第1及び第2バスの各ラインを互いに交叉することなく、プロセッサの同一平面上に設けることができるようにした請求項21に記載の命令キャッシュ。
JP54069597A 1996-05-15 1997-05-14 命令キャッシュを備えたプロセッサ Expired - Fee Related JP3706633B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US08/648,333 1996-05-15
US08/649,732 US5862398A (en) 1996-05-15 1996-05-15 Compiler generating swizzled instructions usable in a simplified cache layout
US08/648,333 US6131152A (en) 1996-05-15 1996-05-15 Planar cache layout and instruction stream therefor
US08/649,732 1996-05-15
PCT/IB1997/000552 WO1997043715A2 (en) 1996-05-15 1997-05-14 Processor with an instruction cache

Publications (2)

Publication Number Publication Date
JPH11509663A JPH11509663A (ja) 1999-08-24
JP3706633B2 true JP3706633B2 (ja) 2005-10-12

Family

ID=27095356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54069597A Expired - Fee Related JP3706633B2 (ja) 1996-05-15 1997-05-14 命令キャッシュを備えたプロセッサ

Country Status (5)

Country Link
EP (1) EP0846291B1 (ja)
JP (1) JP3706633B2 (ja)
CN (1) CN1145099C (ja)
DE (1) DE69723804T2 (ja)
WO (1) WO1997043715A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000070446A2 (en) * 1999-05-13 2000-11-23 Arc International U.S. Holdings Inc. Method and apparatus for loose register encoding within a pipelined processor
GB0400660D0 (en) * 2004-01-13 2004-02-11 Koninkl Philips Electronics Nv Method and related device for use in decoding executable code
US7296120B2 (en) * 2004-11-18 2007-11-13 International Business Machines Corporation Mechanism that provides efficient multi-word load atomicity

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
JP2810068B2 (ja) * 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
WO1994010630A1 (en) * 1992-11-05 1994-05-11 The Commonwealth Of Australia Data formatter
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism

Also Published As

Publication number Publication date
WO1997043715A3 (en) 1998-01-22
JPH11509663A (ja) 1999-08-24
EP0846291B1 (en) 2003-07-30
CN1145099C (zh) 2004-04-07
WO1997043715A2 (en) 1997-11-20
CN1197519A (zh) 1998-10-28
DE69723804T2 (de) 2004-05-27
DE69723804D1 (de) 2003-09-04
EP0846291A2 (en) 1998-06-10

Similar Documents

Publication Publication Date Title
US6131152A (en) Planar cache layout and instruction stream therefor
US6343356B1 (en) Methods and apparatus for dynamic instruction controlled reconfiguration register file with extended precision
US5930508A (en) Method for storing and decoding instructions for a microprocessor having a plurality of function units
KR100991984B1 (ko) 레지스터와 메모리 사이에 데이터를 이동시키는 데이터처리장치 및 방법
JP3771968B2 (ja) コンピュータ及びコンピュータ動作方法
JP3138209B2 (ja) マトリックス転置方法
US7257695B2 (en) Register file regions for a processing system
US7017028B2 (en) Apparatus and method for updating pointers for indirect and parallel register access
JPH08314718A (ja) データストリング生成方法、コンピュータ動作方法、コンピュータシステムによるマトリックス乗算方法、及びコンピュータ
JPH08328849A (ja) コンピュータ及びコンピュータ動作方法
US9400652B1 (en) Methods and apparatus for address translation functions
JP4584673B2 (ja) データ処理システム内部のテーブル検索操作
US20070079305A1 (en) Alignment of variable length program instructions within a data processing apparatus
US20040015931A1 (en) Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
US20040078554A1 (en) Digital signal processor with cascaded SIMD organization
US20030221089A1 (en) Microprocessor data manipulation matrix module
US20060149938A1 (en) Determining a register file region based at least in part on a value in an index register
JP3750821B2 (ja) 圧縮された命令フォーマットを処理するvliwプロセッサ
JP3706633B2 (ja) 命令キャッシュを備えたプロセッサ
JPS61214029A (ja) 命令先取りバツフア
JP3424430B2 (ja) プロセッサ
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
EP1050818A1 (en) Computer memory access
NO156025B (no) Databehandlingssystem.
JPH07134677A (ja) レジスタライト方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040727

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041027

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050518

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050801

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090805

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090805

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100805

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100805

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110805

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110805

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120805

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130805

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees