JP3598589B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP3598589B2 JP3598589B2 JP16173895A JP16173895A JP3598589B2 JP 3598589 B2 JP3598589 B2 JP 3598589B2 JP 16173895 A JP16173895 A JP 16173895A JP 16173895 A JP16173895 A JP 16173895A JP 3598589 B2 JP3598589 B2 JP 3598589B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- cache memory
- stored
- storage
- information
- 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
Links
- 230000015654 memory Effects 0.000 claims description 162
- 238000012545 processing Methods 0.000 claims description 68
- 230000006870 function Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000010365 information processing Effects 0.000 description 5
- 241000761456 Nops Species 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 108010020615 nociceptin receptor Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【産業上の利用分野】
本発明は、パーソナルコンピュータなどの情報処理装置に使われる、プロセッサ、コプロセッサ、及びそれらを用いた拡張ボード等に関する。
【0002】
【従来の技術】
プロセッサのアーキテクチャ動向として、縮小命令セットコンピュータ(Reduced Instruction sets computer、以下、RISCという)が主流になりつつある。複雑な命令を持たないという特徴のほかに、命令長を一定にするという特徴も持つ。命令が単純なため、処理が高速に行えることと、命令長が一定なため、一回のメモリアクセスで命令を読み込むことができることなどにより、高速処理が可能になっている。
【0003】
RISCプロセッサの処理性能をさらに向上させる手段として、現在はスーパースカラー方式が主流となっている。スーパースカラー方式は、プロセッサ内部にある複数の演算ユニットのスケジューリングをハードウェアによって、実行時に動的に行うものである。この方法は、従来のソフトウェア資産をそのまま利用できるという長所がある反面、スケジューリングのためのハードウェアが必要であるうえ、実行時にスケジューリングを行うため、スケジューリングに使用できる情報が少なく、あまり高い並列性を引き出せないという短所がある。
【0004】
一方、スーパースカラー方式よりも高い性能を達成することを目的した方式として、ベリーロングインストラクションワード(Very Long Instruction Word、以下、VLIWという)方式がある。これは、プロセッサ内部にある複数の演算ユニットのスケジューリングをコンパイル時にソフトウェアによって静的に行い、並列実行可能な命令群を一つの命令にまとめておき、プロセッサのプログラム実行時に一つにまとめた命令を一度に読み込み、実行する方式である。VLIW方式では、スケジューリングのためのハードウェアが不要である上、スケジューリング時に多くの情報を使用できるため、並列性を引き出しやすい、などの長所がある。しかし、VLIW方式では、複数の命令をひとまとめにするため、命令長が大きくなるという問題点が発生する。
【0005】
スーパースカラー方式とVLIW方式については、「次世代マイクロプロセッサ」、日経エレクトロニクス、p67〜p150、1995.1.30(no.627)日経BP社に紹介されている。
一般にプログラムには、並列性の高い部分と並列性の低い部分が存在する。それぞれについて、簡単な例を図1、図2を用いて説明する。これらの図において、各行は一つの処理を表している。例えば、図1の1行目の処理800aは、変数X0の内容に1を加算して、その結果を、変数Y0に代入することを示している。これらの処理は、通常上から1行ずつ逐次的に実行されるものである。
【0006】
図1は、並列性の高い部分の例である。この部分では、それぞれの処理が互いに独立しているため、各処理を並列に実行することが可能である。例えば、2行目の処理800bが使用する変数X1の値は、1行目の処理800aを実行する前に決まっているため、1行目の処理800aと2行目の処理800bは、並列に実行することが可能である。
【0007】
一方、図2は並列性の低いプログラムの例である。この部分では、各処理に必要な値が、直前の処理により算出されるため、直前の処理が終了するまで、次の処理を行うことができない。例えば、2行目の処理810bが使用する変数X1の値は、1行目の処理810aを実行した後にならないと求まらないため、1行目の処理810aが終了する前に、2行目の処理810bを、実行することは、通常は不可能である。
【0008】
図3、図4には、図1、2のプログラムを、4つの処理を同時に実行可能なVLIW方式の命令(以下、VLIW命令という)に変換した例を示す。これらの図では、横1列が一つのVLIW命令に相当している。これらは、時間とともに上から下へと実行されるものとする。図3は並列性の高い処理(図1)を変換したものである。この部分では、1命令で4つの処理を同時に実行することにより、単一の処理ユニットしか持たない従来のプロセッサに対して、4倍の性能を実現することができる。
【0009】
一方、図4は並列性の低い処理(図2)を変換したものである。この場合には、同時に1つの処理しか実行できないため、4つの処理を同時に実行可能なVLIW方式を採用したプロセッサ(以下、VLIWプロセッサという)でも、単一の処理ユニットしか持たないプロセッサと同じ性能しか、達成できない。しかも、実行すべき処理が存在しない部分でも命令長を一定にする必要から、処理が存在しないことを示す無処理命令(以下、No Operationを略してNOPという)を挿入する必要があるため、命令のサイズは、処理の内容に比べて大きくなる。
【0010】
一般的なプログラムをVLIWプロセッサで実行しようとすると、NOPの割合はかなり高いものとなる。そのため、VLIWプロセッサを使用する情報処理装置(以下、VLIWシステムという)の主記憶、あるいはVLIWプロセッサ内部の命令用キャッシュメモリ(以下、キャッシュメモリという)の多くをNOPが占め、無駄になったり、あるいはキャッシュメモリ容量が大きくなったりするので、VLIWプロセッサの性能が期待ほど上がらなかったり、VLIWシステムの高価格化やVLIWプロセッサのチップ肥大化、高価格化を招くという課題が生じている。
【0011】
VLIWプロセッサのこの課題に関しては、「実行遅延に基づく再構成VLIW型計算機の基本構成」情報処理学会研究報告、計算機アーキテクチャ、No.89−13、87〜93ページ、1991.7.19、情報処理学会に記載されている。
【0012】
VLIWシステムの主記憶については、NOPを主記憶上に置かないことにより、有効活用が可能である。主記憶上で、NOPを削除することで、メモリ容量を節約している例としては、「ア ブリュー アーキテクチュア フォー ア トレース スケジューリング コンパイラ」アイイーイーイー、トランザクション オン コンピューターズ、37巻、8号、967〜979ページ、8月 1988(「A VLIW Architecture for a TraceScheduling Compiler」IEEE,TRANSACTION ON COMPUTERS,VOL37,No8,pp967〜979、AUGUST 1988」 )に、簡単な説明がある。
【0013】
また、VLIWプロセッサ内部のキャッシュメモリの容量を減らすために、命令を圧縮して記憶し、キャッシュから読み出した後に伸長する方式がある。
これについては、「フィリップス ホープス トウ ディスプレース ディーエスピーズ ウィズ ブリュー」マイクロプロセッサリポート、12〜15ページ、1994.12.5、米国マイクロデザインリソーシイズ社発行(「Philips Hopes to Displace DSPs with VLIW」「MICROPROCESSOR REPORT」pp12〜15、December 5、1994、Micro Design Resources)に簡単な説明がある。
【0014】
【発明が解決しようとする課題】
主記憶上でNOPを削除する方式では、VLIWプロセッサ内部のキャッシュメモリの容量は変わらないので、プロセッサの低価格化、あるいは高性能化はできなくなる。
また、プロセッサ内のキャッシュメモリに命令を格納する際に圧縮し、読み出す際に、伸長して実行する方式では、一般的に命令の実行パイプライン中に伸長処理のステージが挿入されてステージが深くなってしまい、分岐時の損失が大きくなってしまうという問題が発生する。
【0015】
すなわち、プロセッサチップ内部の配線遅延の影響なども考慮すると、命令の伸長処理で1〜2サイクル消費されてしまうため、命令の実行パイプラインのステージが、1〜2段延びてしまう。命令が、順序良く実行されている場合には、このことは問題とならないことが多いが、分岐命令などによって、命令の実行順序が変化した場合には、何も命令を実行できない期間が生じてしまう。一般に、この期間は、実行パイプラインが深いほど長くなる。
【0016】
さらに、VLIWプロセッサのように、複数の命令を並列に実行するプロセッサでは、このことはより大きな問題となる。仮に、何も命令を実行できない期間が2サイクルあったと仮定すると、単一命令しか実行できない従来のプロセッサでは、最悪のケースでも2つの処理が実行できないだけである。しかし、4命令を同時に実行可能なVLIWプロセッサでは、最悪のケースでは8つの処理が実行できないことになる。並列に実行可能な処理の数が多くなるにつれて、この損失は大きくなる。
さらに、キャッシュメモリが小さくなる代わりに、命令を伸長するハードウェアが必要となるという問題もある。
【0017】
従って、本発明の目的は、低価格で、高速処理可能なVLIWプロセッサを提供することである。
本発明の具体的な目的は、キャッシュメモリの使用効率を向上することでキャッシュメモリの容量を減らしてチップサイズを小さくした低価格なVLIWプロセッサを提供することである。
また、本発明の目的は、VLIWプロセッサに適したキャッシュメモリの構成方法を提供することである。
さらに、本発明の他の目的は、上記VLIWプロセッサにおいて、パイプラインを深くすることがなく、高速処理可能なVLIWプロセッサを提供することである。
【0018】
【課題を解決するための手段】
上記目的を解決するために、本発明のプロセッサは、単一のプログラムカウンタによって処理の実行順序を制御される、並列に動作可能な複数個の処理ユニットと、前記複数個の処理ユニットが実行する命令を格納するための、前記処理ユニット各々に対応した複数のキャッシュメモリと、前記複数のキャッシュメモリに格納されている命令のアドレス情報を格納するタグメモリと、前記単一のプログラムカウンタが示すアドレスによって指定される命令を、外部から読み込む場合には、該命令を前記複数の処理ユニットのいずれかに対応した複数個の命令フィールドに分割し、それぞれを、前記の各処理ユニットに対応したキャッシュメモリに格納する格納制御回路とを備えたものである。
【0019】
【作用】
本発明によれば、キャッシュメモリの容量を減らした場合でも、キャッシュメモリから読み出した命令は伸長処理を行うことなく実行されるので、命令の実行パイプラインを短くすることができ、分岐命令実行時の損失を小さくすることができる。
また、NOPの発生頻度を処理ユニットごとに異ならせ、また、NOPをキャッシュメモリ内に記憶しない。したがって、キャッシュメモリの容量を、NOP以外の命令の発生頻度に応じて設定することができるので、キャッシュメモリの使用効率を上げることができる。この結果、同一のチップ面積で、更に高い処理性能を達成することが可能となる。
【0020】
【実施例】
本発明によるプロセッサの構成を、図5〜9を用いて説明する。
【0021】
図5は、プロセッサ1の構成例とそれを使用する情報処理装置の主記憶5の接続例を示すブロック図である。5はプロセッサ1が実行する命令や実行に必要なデータを格納するための主記憶であり、プロセッサ1の外部にある。プロセッサ1と主記憶5の接続バスは、32ビット幅とする。10a〜10dは、プロセッサ1の主要部分をなすクラスタであり、それぞれ命令を格納するための命令キャッシュメモリ(以下、キャッシュメモリという)100、演算などの処理を実行する処理ユニット110、処理ユニット110が実行する命令を選択するためのセレクタ120から構成される。各クラスタにある、それぞれの構成要素は、キャッシュメモリ100a(クラスタAにあるキャッシュメモリ)のように、a〜dの添字を付けて表す。本実施例では、同時に4つの命令を実行可能なVLIWプロセッサを想定しており、クラスタはA〜Dの4つである。
【0022】
20はキャッシュ制御回路であり、実行する命令がキャッシュメモリ100a〜100dに格納されているかどうかを判定するヒット判定回路220、主記憶5から命令を読み込みキャッシュメモリ100a〜100dに格納するフィル制御回路210、キャッシュメモリ100a〜100dに格納されている命令に関連した情報を格納しておくタグメモリ200などから構成されている。
【0023】
40は、プロセッサ1全体の動作を制御するグローバルコントローラで、内部にはプログラムカウンタ30がある。プログラムカウンタ30は、次に実行する命令のキャッシュメモリ上でのバイトアドレスを指しているポインタであり、命令を実行するごとに更新される。キャッシュメモリ100上の命令に対するアクセスには、プログラムカウンタ30の値がそのまま使用される。
グローバルコントローラ40と、フィル制御回路210は、内部にシーケンサを持ち、シーケンサの制御によって動作する。
【0024】
図6は、VLIW命令の構成を示す図である。
【0025】
700は、並列処理のスケジューリングが行われた時点のVLIW命令でクラスタ10a〜10dに1対1に対応する4つの命令フィールド701から構成されている。命令フィールドN(N≧0)−a〜dはそれぞれ、処理ユニット10a〜10dにて使用される命令フィールドである。本実施例では1フィールドの大きさは32ビット(4バイト)とする。710は、NOPに相当する命令フィールドを削除して圧縮された命令列が主記憶5に格納されている様子を示す。
【0026】
702は、各命令内の命令フィールドがNOPであるかどうかを示すフラグの集合でありマスク情報という。マスク情報702は各VLIW命令毎に設けられ、それぞれ4つのクラスタに対応する4ビット構成となっている。これは実行時にNOPを再び挿入できるようにするためのものである。なお、クラスタAに対応する命令フィールドN−aはNOPであっても削除しない。これについては後述する。720は上記のVLIW命令がプロセッサ1内のキャッシュに読み込まれた様子を示すもので、詳細については後述する。
【0027】
図7は、プログラムカウンタ30の構成例を示す図であって、ビット幅を24ビットとし、さらに、3つのフィールドに分割している。この図において、300aはキャッシュメモリのヒット判定の際に、後述するタグメモリ200中のアドレスタグ情報201と比較されるアドレスタグ部、300bはタグメモリ200およびキャッシュメモリ100のエントリーを選択するためのエントリー選択部、300cは各エントリー内における命令のオフセットを示す値であり、本実施例では、それぞれ、13ビット、6ビット、3ビットの幅を持っている。なお、本実施例では、命令フィールドのサイズは32ビットに固定されており、必ず4バイト境界に整列されているため、プログラムカウンタ30の、下位2ビットは常に0である。
【0028】
図8は、クラスタa〜d内のキャッシュメモリ100a〜100dの構成、容量を示す図である。クラスタAのキャッシュメモリ100aの容量を4kバイト、クラスタB〜Dのキャッシュメモリ100b〜dの容量をそれぞれ2kバイトとしている。キャッシュメモリ100aは2ウエイ・セットアソシアティブ方式、キャッシュメモリ100b〜dは1ウエイ・セットアソシアティブ方式を採用しており、各セットの容量は、全て等しく2kバイトである。
【0029】
キャッシュメモリ100a〜100d各々のラインサイズは、命令フィールド8つ分の大きさ(4バイト×8=32バイト)に等しい。キャッシュ100a〜100dは同じ64エントリー(2kバイト/32バイト)からなり、各エントリーを共通のエントリーアドレスで指定する。本実施例では、キャッシュメモリを、アドレス512、読み書きデータ幅4バイトとして構成する。これは、読み書きデータ幅をラインサイズに合わせた32バイトとした場合に、命令読み出し時に8to1のセレクタが必要になることや消費電力が増大するので、これを避けるためである。
【0030】
図9は、クラスタ10a〜10dにて共通に使用されるタグメモリ200の構成例を示す図である。クラスタAと対応させた2ウェイ構成となっている。タグメモリ200には、64個のエントリーがあり、各エントリーは、プログラムカウンタ30のアドレスタグ部300aと比較するための13ビットのアドレスタグ情報201と、主記憶5に格納されているマスク情報702に相当するマスク情報202を格納する領域とをそれぞれ2ウェイ分持つ。また、キャッシュ内容の更新には、リースト リーセントリィ ユーズド(Least Recently Used、以下、LRUという)アルゴリズムを使用し、そのために必要なエントリー当たり1ビットのLRU情報203も持つ。
【0031】
マスク情報202は、図6にて説明したマスク情報702が8VLIW命令分格納されたものである。図9において、inst0〜inst7は読み込んだ8つのVLIW命令中のいずれであるかを示し、各々のmsk(x)は、クラスタxに対応したマスク情報である。ここで、xはA〜Dのいずれかである。クラスタAに対応したマスク情報(202a)は、msk(A)であり、そのセット全体が有効か否かを示す情報も兼ねている。1ならば、そのセットは有効であり、0ならば無効である。
【0032】
図11は、タグメモリ200および、ヒット判定回路220の構成を示した図である。
図12はクラスタAの構成例を示す図である。セレクタ120aは、2ウェイ構成となっているキャッシュメモリ100a−0、100a−1が出力する2つのデータの中から必要な命令を選択するためのものである。
図13はクラスタB〜Dの構成例を示す図である。セレクタ120bは、1ウェイ構成となっているキャッシュメモリ100bから、読み出されたデータとNOPに相当する命令フィールドを対応するマスク情報に従って選択するためのものである。
図14は、図12に示すセレクタ120aが出力を選択する際の規則を示すものである。
図15は、図13に示すセレクタ120bが出力を選択する際の規則を示すものである。
【0033】
以下、プロセッサ1の動作説明に先立ち、コンパイラによるVLIW命令の作成について説明する。
一般に、コンパイラは、命令列を生成する際に、それ自身の持つハードウェア資源の割り当て規則に従って各処理ユニットに処理を割り当てる。本実施例では、コンパイラがVLIW命令を生成する際に、プログラムの中で並列度が少ない部分については、クラスタAの処理ユニット110aに対して処理を優先的に割り当てるようにハードウェア資源の割り当て規則を持つ。さらに、並列度が高い部分では、各処理ユニット110に対してできるだけ均等に処理を割り当てて、高い処理性能を達成できるようにスケジューリングを行う。
【0034】
この結果、図6の700に示すように、クラスタAは、他のクラスタと比較して、有効な処理が存在する確率が高くなり、逆に、NOPの存在する確率が低くなる。このようにすることで、並列度に応じて、命令コードサイズ、処理性能を適切な値にすることが可能である。
【0035】
次に、コンパイラは、図6の710に示すように、NOPを削除して命令の量を圧縮する。同時に圧縮した命令を伸長するために必要なマスク情報702を作成する。
マスク情報702の0は、対応する命令フィールド701がNOPであることを、1はNOP以外であることを示す。ただし、クラスタAについては、命令フィールドの種類にかかわらず(NOPであっても)、マスク情報のクラスタA対応部分は常に1に固定する。前述したように、VLIW命令は4つの命令フィールドからなるため、マスク情報702は4ビットで構成される。
【0036】
また、本発明では、主記憶5の中ではNOPを削除しているために、プロセッサ1のプログラムカウンタ30の値が示すキャッシュメモリ100上のアドレスと、主記憶5の中の、命令が格納されているアドレスとは並びが異なる。そのために、主記憶に対してアクセスする際にはアドレスの変換を行う。
【0037】
これは、一般にプロセッサが仮想記憶を実現する際に用いるページテーブルとTLBと呼ぶアドレス変換バッファによるアドレス変換機構と同じ技術で実現できる。本発明では、コンパイラは、ページテーブルに相当するアドレス変換テーブルをコンパイル時に主記憶上5に作成する。これらは、NOPを削除する前の命令列700と、NOPを削除した命令列710の関係から作成できる。
【0038】
なお、アドレス変換バッファは、図示していないが、後述するように、フィル制御回路210内に構成している。また、電源オン時には初期化(0クリア)を行っておく。
【0039】
上述のように、コンパイラによって、クラスタAに有効な命令フィールドが存在する確率が高くなっているため、本実施例では、これに対応するため、クラスタA10aのキャッシュメモリ100aの容量を、他のクラスタのキャッシュメモリ100b〜100dの容量と比較して大きくしている。具体的にはキャッシュメモリ100aの連想度を他のキャッシュメモリ100b〜100dの2倍にしている。
【0040】
続いて、プロセッサ1が命令を実行する過程を図を用いて説明する。図10は、キャッシュメモリの全体動作フローの概略を示す図である。
【0041】
プロセッサ1がプログラムを実行する際には、まず、グローバルコントローラ40がプログラムカウンタ30の値を参照して、処理の実行に必要な命令を得るためにキャッシュメモリ100に対してアクセスを行う。この場合、まず初めに、ヒット判定回路220が、タグメモリ200をアクセスして、キャッシュメモリ100に必要な命令が入っているかどうかの判定、すなわち、キャッシュメモリのヒット判定を行う(ステップ900、ステップ910)。
【0042】
この結果、キャッシュメモリがヒットしていたならば、ヒット判定回路220はタグメモリ200内の対応するエントリの、LRU情報203を更新する(ステップ960)。グローバルコントローラ40はヒットしたセットから命令を読み出し、各処理ユニットへ命令を供給する(ステップ970)。各処理ユニットはヒット信号400により、キャッシュメモリ100がヒットしたことを知り実行を開始する。
【0043】
ここで、キャッシュのヒット判定(900、910)の手順を、図11〜15を用いて説明する。
上述したように、プロセッサ1がプログラムを実行する際には、まず、グローバルコントローラ40は、プログラムカウンタ30中のエントリー選択部300bの値を用いて、タグメモリ200中の64エントリーの中から一つのエントリーを選択し、格納されたアドレスタグ情報201、マスク情報202、LRU情報203を読み出す。タグメモリ200は、2ウエイ構成なので、アドレスタグ情報201、マスク情報202は2セット分の情報が読み出される。同時に、グローバルコントローラ40は、キャッシュメモリ100の同じエントリーに対してもアクセスする。
【0044】
次に、ヒット判定回路220はタグメモリ200から読み出されたアドレスタグ情報201と、プログラムカウンタ30中のアドレスタグ部300aをセット毎に比較し、一致するかどうかを調べる。なお、比較する幅に相当した数(本実施例では13個)の、EX−NORゲート2200の出力がすべて1であったら一致したことになる。
【0045】
同時に、セレクタ2210は、プログラムカウンタ30中のオフセット300cを用いて、セット毎に読み出された8VLIW命令分のマスク情報202(inst0〜inst7)から該当するVLIW命令のマスク情報202を選択する。上記比較結果と、選択したマスク情報202内のマスク情報202aがいずれも1であったら、ANDゲート2201によって、そのセットはヒットとしたことになり、hit(set0)400aまたは400bは1になる。
【0046】
2つのセットのうちのどちらかがヒットしていれば、ORゲート2204によってキャッシュはヒットとなる。なお、どのセットがヒットしているかという情報は、hit(set0)400aによって、クラスタAに伝えられる。また、キャッシュがヒットした場合、ヒットしたセットのマスク情報202b〜dは、hit(set0)400aによって有効になり、410b〜dによって、クラスタB〜Dへ伝えられる。
【0047】
キャッシュメモリ100a〜100dには、プログラムカウンタ30中のエントリー選択部300bとオフセット300cを足し合わせた9ビットの値が与えられる。クラスタAでは、2つのセットから同時に命令フィールドが読み出される。セレクタ120aは、いずれのセットがヒットしたかを示すhit(set0)400aに従っていずれかを選択する。選択規則は図14に示すとおりである。
【0048】
キャッシュメモリ100b〜100dは、一つのセットから読み出された命令フィールドと、NOPに相当する処理コードが、セレクタ120b〜120dに与えられる。セレクタ120b〜120dは、上記有効になったマスク情報410b〜dに従って動作する。選択規則は図15に示すとおりである。NOPに相当する処理コードは、あらかじめ決まっているため、結線論理によって実現することが可能である。
【0049】
これまで述べたように、キャッシュメモリ100b〜100dから読み出された命令は、セレクタ120b〜120dを1段通過するだけで処理ユニットに与えられる。従って、必要な処理クロック数も少なく、パイプラインも短くすることができる。
【0050】
次にキャッシュメモリがミスヒットした場合の動作を説明する。
キャッシュメモリがミスヒットしたならば、ヒット判定回路220から、ヒット信号400cにより、ミスヒットしたことがフィル制御回路210へ伝えられ、フィル制御回路210が動作を開始する。この時に、キャッシュメモリ100a〜100dにはプログラムカウンタ30のエントリー選択部300bとオフセット300cの値が与えられ、内容が読み出されるが、同時にヒット信号400cにより、ミスヒットしたことが伝えられるので、処理ユニット110a〜110dは停止状態となり、問題は生じない。
【0051】
次に、フィル制御回路210は、代わりのVLIW命令と対応するマスク情報を主記憶5から読み出し、それぞれキャッシュメモリ100a〜100dとタグメモリ200の該当エントリに格納する。以下、この動作について説明する。
まず、キャッシュメモリ中の該当エントリーに新しい命令を格納できるだけの空き領域があるか否かを調べる。タグメモリ200内の該当エントリーについて、いずれかのセットのinst0msk〜inst7mskのマスク情報msk(A)をすべて調べ、すべて0ならば該当エントリーの該当セットは空いていることになる。空き領域がなければ、フィル制御回路210は該当エントリー中のいくつかのセットを無効にして空き領域を作る。この作業を、キャッシュの無効化と呼ぶ。
【0052】
無効化をする際には、フィル制御回路210は、まず、どのセットを無効化するかを選択し(ステップ920)、その後で、そのエントリーを無効化する(ステップ930)。無効化の方法は後述する。
空き領域があったら、あるいは無効化により空き領域を作ったら、フィル制御回路210は、経路454を経由してタグメモリ200にアドレスタグ情報201などを格納して、新しいエントリーを作成し(ステップ940)、その後、ステップ950において、フィル制御回路210は、32ビット幅のバスに合わせて、8命令分のマスク情報702を同時に読み出す。フィル制御回路210は読み込んだマスク情報702を、タグメモリ200とフィル制御回路210自身に格納する。つぎに、8命令分のマスク情報に合わせてVLIW命令701も8命令分を続けて読み出す。
【0053】
フィル制御回路210は、VLIW命令701を読み込む際に、順次、マスク情報702を解析して、該当するキャッシュメモリへの書き込み信号を発行する。主記憶5からの命令供給経路の幅は、命令フィールドの大きさと等しく32ビットであるため、書き込む対象となるキャッシュメモリの指定は、キャッシュメモリ100a〜100dの個別の書き込み信号を制御するだけで実現可能である。
【0054】
2つのセットともに空いていた場合あるいは、2つのセットを無効化した空けた場合に、いずれのセットに命令を格納するかはあらかじめ決めておくものとする。
また、前述のように、NOP命令はあらかじめプロセッサ内にその処理コードを持っており、改めてNOP命令を格納することはしない。従って、各VLIW命令中にNOP命令に相当する命令フィールドがあれば、フィル制御回路210は、マスク情報に従って、キャッシュメモリへの書き込みを行わない。
この結果、8つのVLIW命令はそれぞれの各命令フィールドごとに、対応するクラスタ内のキャッシュメモリに最大8つ格納される。
【0055】
また、本発明では、前述のように、主記憶5の中の命令列710ではNOPを削除しているために、プログラムカウンタ30の値が示すキャッシュメモリ上のアドレスと、主記憶5の中の、命令が格納されているアドレスとは並びが異なる。そのために、フィル制御回路210中のアドレス変換バッファと、主記憶5上のアドレス変換テーブルを用いてアドレスの変換を行いつつ、アクセスする。
【0056】
フィル制御回路210は、これらの機構を用いて、プログラムカウンタ30の値のアドレス変換を行い、経路450を介して、主記憶5から変換後のアドレスが示す命令を読み出し、キャッシュメモリ100に格納する。なお、450には、変換後のアドレスの他に主記憶の制御信号も含まれる。以後の処理は、ヒット時の処理と同じである。
なお、以上の処理のうち、いくつかは、並行して行ったり、順序を入れ替えることが可能である。例えば、LRU情報の更新(ステップ960)と命令の供給(ステップ970)は、同時に実行することが可能である。
【0057】
次に、上述した無効化するセットの選択方法について説明する。無効化するセットの選択(920)は、LRU情報203を用いて行われる。これは、いずれのセットが最近使われたかを示すものである。ヒット判定回路220は、セット0が最近使用されたならば「0」、セット1が最近使用されたならば「1」を格納する。すなわち、セットAのヒット信号400aの値を、キャッシュヒット時に、該当エントリーのLRU情報203へ書き込む。
【0058】
具体的な無効化の手順としては、まず、フィル制御回路210は、該当エントリーのLRU情報203が示すアクセス履歴が古い方のキャッシュメモリのセットに、新しい命令を入れることができるかどうかを調べる。「新しい命令のマスク情報」と「LRU情報203が示すアクセス履歴が古い方の命令のマスク情報を反転したもの」の各ビットごとの論理積が全て0になれば、新しい命令を入れることができる。そして、LRU情報203が示すアクセス履歴が古い方のセットを無効化する。無効化はタグメモリ200の該当エントリー、該当セットのマスク情報すなわち、inst0〜inst7のmsk(A)202aを0にすればよい。
【0059】
調べた結果、新しい命令を入れることができない場合には、LRU情報203が示すアクセス履歴が新しい方のセットについても同じことを調べる。入れることができればLRU情報203が示すアクセス履歴が新しい方のセットを無効化する。どちらのセットを無効化しても、新しい命令を入れられない場合には、両方のセットを無効化する。
【0060】
無効化は、フィル制御回路210が、タグメモリ200中の選択されたセットのマスク情報のうち、inst0mask〜inst7maskのクラスタAに対応するmsk(A)202aを全て0に設定することで行われる。もし、いずれか一つのセットしか無効にしない場合は、その後ですぐ新しい命令を読み込みマスク情報を設定し直すので、かならずしも0に設定する必要はない。なお、電源オン時には、マスク情報202の初期化(0クリア)を行い、あらかじめ無効化を行っておく。
【0061】
また、上述の説明では、処理ユニット110aに有効な命令が集中するように構成、制御しているが、もちろん、これに限定されるものではない。
また、本実施例ではキャッシュメモリ100aの容量を他のキャッシュメモリの2倍としたが、これに限るものではなく、特定の処理ユニットへの命令の集中比率に合わせて構成すればよい。
【0062】
【発明の効果】
以上述べたように、本発明によれば、コンパイラによって、特定のクラスタにNOP以外の命令が優先的に割り当てられ、さらに、それを利用してキャッシュメモリの容量をクラスタ毎に変えていることから、キャッシュメモリの利用効率が向上する。その結果、同一の性能を実現するために必要なキャッシュメモリの容量を小さくすることが可能となり、低価格化に効果がある。
【0063】
また、キャッシュメモリから読み出された命令は、処理ユニットに入るまでの通過する回路を少なくする事ができるので、命令パイプラインを短くすることができる。したがって、分岐命令実行時の損失を小さくすることができ、高速化が可能になる。
また、キャッシュメモリが小さくなることで、各演算ユニットの近くにキャッシュメモリを配置できるため、配線のための領域を小さくできる。動作速度の向上にも効果がある。
したがって、低価格で高速処理可能なVLIWプロセッサが実現できる。
【図面の簡単な説明】
【図1】並列性の高い処理部分の一例である
【図2】並列性の低い処理部分の一例である
【図3】図1に対応したVLIW命令の一例である。
【図4】図2に対応したVLIW命令の一例である。
【図5】本発明における、キャッシュメモリ周辺の構成例である。
【図6】本発明における命令圧縮例である。
【図7】本発明における、プログラムカウンタの一例である。
【図8】キャッシュメモリの構成例を示す図である。
【図9】キャッシュメモリのタグ部分の構成例を示す図である。
【図10】キャッシュメモリの動作フロー(全体)を示す図である。
【図11】タグメモリ、およびヒット判定回路の構成例を示す図である。
【図12】クラスタAのキャッシュメモリの構成例を示す図である。
【図13】クラスタB−Dのキャッシュメモリの構成例を示す図である。
【図14】クラスタAのセレクタ用制御信号の例を示した表である。
【図15】クラスタB−Dのセレクタ用制御信号の例を示した表である。
【符号の説明】
1:プロセッサ、 5:主記憶、 10a〜10d:クラスタA〜クラスタD、20:キャッシュ制御回路、 30:プログラムカウンタ、 40:グローバルコントローラ、100a−0、100a−1:クラスタAのキャッシュメモリのセット0、セット1、 100b〜100d:クラスタB〜クラスタDのキャッシュメモリ、 110a〜110d:クラスタA〜クラスタDの処理ユニット、120a〜120d:クラスタA〜クラスタDのセレクタ、 200:タグメモリ、201:アドレスタグ情報、 202a〜202d:クラスタA〜クラスタDに対応したマスク情報、 203:LRU情報、 210:フィル制御回路、220:ヒット判定回路、 300a:アドレスタグ部、 300b:エントリー選択部、 400c:ヒット信号、 410a〜410d:クラスタA〜クラスタDに対するセレクタ制御信号、 450:主記憶に対するアドレスおよび制御信号、 451:マスク情報のリードパス、 452:タグメモリのリードパス、453:フィルアドレス指定パスおよび書き込み制御信号、 454:タグメモリの更新パス、 800a〜800b:並列に実行できる処理の例、 810a〜810b:並列に実行できない処理の例、700:元の命令列、 701:命令フィールド、 702:マスク情報、 710:主記憶上の命令列、 720:キャッシュ上の命令列、 2202:セレクタ制御信号生成部。
Claims (10)
- プロセッサであって、
処理の実行順序を制御するプログラムカウンタを有するコントローラと、
並列に動作可能な複数の処理ユニットと、
前記複数個の処理ユニットのそれぞれに対応した命令フィールドを格納するキャッシュメモリを個別に備えた複数のキャッシュメモリであって、ある処理ユニットに対応した命令フィールドを格納する一のキャッシュメモリは複数組の記憶領域を有するものであり、前記ある処理ユニットとは別の処理ユニットに対応した命令フィールドを格納する他のキャッシュメモリは一組の記憶領域を有するものである、複数のキャッシュメモリと、
前記処理ユニットと前記キャッシュメモリとを接続するセレクタと、
前記一のキャッシュメモリ中の複数組の記憶領域のうちの第1の記憶領域と前記他のキャッシュメモリの記憶領域で構成される第1のセットと、前記一のキャッシュメモリ中の複数組の記憶領域のうちの第2の記憶領域と他のキャッシュメモリの記憶領域で構成される第2のセットにそれぞれ格納されている命令のアドレス情報と前記命令のマスク情報とを格納するタグメモリと、
前記タグメモリに格納されたアドレス情報と前記プログラムカウンタに格納されたアドレス情報部とを比較するヒット判定回路とを有し、
前記ヒット判定回路が前記タグメモリから読み出されたアドレス情報と、前記プログラムカウンタ中のアドレス情報部をセット毎に比較した結果、前記プログラムカウンタに格納されたアクセス先アドレスが前記タグメモリに格納されたアドレスと一致した場合、前記キャッシュメモリは、前記一致したアドレスを含むセットの該当するアドレスに対応する命令を前記セレクタに供給するものであり、前記セレクタは前記マスク情報を参照して、前記他のキャッシュメモリから供給された命令フィールドを前記処理ユニットへ出力するか否かを選択するものであることを特徴とするプロセッサ。 - 請求項1記載のプロセッサであって、
格納制御回路をさらに有し、
前記プログラムカウンタに格納されたアクセス先アドレスが前記タグメモリに格納されたアドレスと一致しなかった場合、
前記格納制御回路は、前記プログラムカウンタが示すアドレスによって指定される命令を、外部に接続された主記憶装置から読み込み、該命令を前記複数の処理ユニットのいずれかに対応した複数個の命令フィールドに分割し、それぞれを、前記の各処理ユニットに対応したキャッシュメモリに格納することを特徴とするプロセッサ。 - 前記複数のキャッシュメモリのうちの一のキャッシュメモリの容量は、他のキャッシュメモリとは異なる容量を備えてなる請求項1記載のプロセッサ。
- 前記複数のキャッシュメモリのうちの一のキャッシュメモリの容量は、他のキャッシュメモリのN倍(Nは2以上の自然数)の容量を備えてなる請求項1または請求項3記載のプロセッサ。
- 前記Nは2であることを特徴とする請求項4記載のプロセッサ。
- 前記格納制御回路は、
前記命令を読み込む際に、当該命令が含む命令フィールドが前記複数個の処理ユニットのいずれに対応するかを示す格納情報を読み込み、
当該命令に対応するアドレス情報に関連づけて、前記格納情報をタグメモリに格納し、
前記格納情報に従って、前記命令が含む命令フィールドをそれが実行されるべき処理ユニットに対応するキャッシュメモリに格納制御してなる請求項2に記載のプロセッサ。 - 前記キャッシュメモリの各々の容量は、それ自身に格納されうるNOP以外の命令の存在確率に応じたものであることを特徴とする請求項1、3、4のいずれか一記載のプロセッサ。
- 前記一のキャッシュメモリは、それ自身に格納されうるNOP以外の命令の存在確率に応じた記憶領域数を持つことを特徴とする請求項1ないし請求項6いずれか一記載のプロセッサ。
- 前記格納情報は、前記命令に、キャッシュメモリに格納されない命令フィールドが含まれることを指定する領域を備え、
前記格納制御回路は、前記格納情報が前記キャッシュメモリへの格納を指定する命令フィールドを格納制御してなる請求項6に記載のプロセッサ。 - 前記処理ユニットは、前記キャッシュメモリに格納されていない命令フィールドを実行する機能を備え、
前記格納情報あるいはマスク情報は、前記キャッシュメモリに格納されていない命令フィールドについては、キャッシュメモリに格納されていない命令フィールドであることを指定する領域を備え、
前記格納情報が、前記処理ユニットが実行する命令フィールドがキャッシュメモリに格納されていないことを示す場合には、前記セレクタは、前記キャッシュメモリに格納されていない命令フィールドを前記処理ユニットに出力するものである請求項1または請求項2のいずれか一記載のプロセッサ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16173895A JP3598589B2 (ja) | 1995-06-28 | 1995-06-28 | プロセッサ |
US08/667,670 US5893143A (en) | 1995-06-28 | 1996-06-21 | Parallel processing unit with cache memories storing NO-OP mask bits for instructions |
KR1019960023753A KR100248440B1 (ko) | 1995-06-28 | 1996-06-26 | 프로세서 |
TW085107767A TW299421B (ja) | 1995-06-28 | 1996-06-27 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16173895A JP3598589B2 (ja) | 1995-06-28 | 1995-06-28 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0916471A JPH0916471A (ja) | 1997-01-17 |
JP3598589B2 true JP3598589B2 (ja) | 2004-12-08 |
Family
ID=15740952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16173895A Expired - Fee Related JP3598589B2 (ja) | 1995-06-28 | 1995-06-28 | プロセッサ |
Country Status (4)
Country | Link |
---|---|
US (1) | US5893143A (ja) |
JP (1) | JP3598589B2 (ja) |
KR (1) | KR100248440B1 (ja) |
TW (1) | TW299421B (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835941A (en) * | 1995-11-17 | 1998-11-10 | Micron Technology Inc. | Internally cached static random access memory architecture |
JPH1185512A (ja) * | 1997-09-03 | 1999-03-30 | Fujitsu Ltd | 命令圧縮格納および命令復元機能を有するデータ処理装置 |
JP2000305781A (ja) * | 1999-04-21 | 2000-11-02 | Mitsubishi Electric Corp | Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体 |
GB2366643B (en) | 2000-05-25 | 2002-05-01 | Siroyan Ltd | Methods of compressing instructions for processors |
US6581131B2 (en) * | 2001-01-09 | 2003-06-17 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficient cache mapping of compressed VLIW instructions |
US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
US7140019B2 (en) * | 2002-06-28 | 2006-11-21 | Motorola, Inc. | Scheduler of program instructions for streaming vector processor having interconnected functional units |
US7415601B2 (en) * | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
EP1378824A1 (en) * | 2002-07-02 | 2004-01-07 | STMicroelectronics S.r.l. | A method for executing programs on multiple processors and corresponding processor system |
US7636837B2 (en) * | 2003-05-28 | 2009-12-22 | Fujitsu Limited | Apparatus and method for controlling instructions at time of failure of branch prediction |
US7111154B2 (en) * | 2003-06-25 | 2006-09-19 | Intel Corporation | Method and apparatus for NOP folding |
KR100703357B1 (ko) * | 2003-08-16 | 2007-04-03 | 삼성전자주식회사 | 보조제어부를 구비하는 휴대용 단말기의 캐시메모리구현장치 및 방법 |
US7290122B2 (en) * | 2003-08-29 | 2007-10-30 | Motorola, Inc. | Dataflow graph compression for power reduction in a vector processor |
JP2005196729A (ja) * | 2003-12-10 | 2005-07-21 | Renesas Technology Corp | コンパイラおよび命令コード出力装置 |
GB2415269B (en) * | 2004-06-15 | 2007-07-25 | Advanced Risc Mach Ltd | Program instruction decompression and compression techniques |
TWI320636B (en) * | 2005-11-10 | 2010-02-11 | Realtek Semiconductor Corp | Method for compressing instruction code |
US7484077B2 (en) | 2005-11-10 | 2009-01-27 | Realtek Semiconductor Corp. | Skipping unnecessary instruction by multiplex selector using next instruction offset stride signal generated from instructions comparison results |
US8069335B2 (en) * | 2005-11-15 | 2011-11-29 | Nxp B.V. | Processing system and method for executing instructions |
DE102007001042B4 (de) * | 2006-01-03 | 2017-08-24 | Realtek Semiconductor Corp. | Vorrichtung und Verfahren zum Entfernen nicht benötigter Anweisungen, Computer und Verfahren Zur Kompression von Anweisungscodes |
KR100648014B1 (ko) * | 2006-06-05 | 2006-11-23 | (주)엠씨티코리아 | 평판형 디스플레이패널 검사용 프로브장치의 pcb 접속용지그 |
KR100875836B1 (ko) * | 2007-03-23 | 2008-12-24 | 삼성전자주식회사 | 병렬 처리 vliw 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법 |
JP4864840B2 (ja) | 2007-08-31 | 2012-02-01 | 株式会社東芝 | マイクロプロセッサ |
US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
US9201652B2 (en) | 2011-05-03 | 2015-12-01 | Qualcomm Incorporated | Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy |
US10120692B2 (en) | 2011-07-28 | 2018-11-06 | Qualcomm Incorporated | Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form |
KR102210997B1 (ko) * | 2014-03-12 | 2021-02-02 | 삼성전자주식회사 | Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치 |
US10833704B1 (en) * | 2018-12-12 | 2020-11-10 | Xilinx, Inc. | Low-density parity check decoder using encoded no-operation instructions |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4833599A (en) * | 1987-04-20 | 1989-05-23 | Multiflow Computer, Inc. | Hierarchical priority branch handling for parallel execution in a parallel processor |
US5051885A (en) * | 1988-10-07 | 1991-09-24 | Hewlett-Packard Company | Data processing system for concurrent dispatch of instructions to multiple functional units |
JPH05158795A (ja) * | 1991-12-06 | 1993-06-25 | Nec Corp | キャッシュメモリシステム |
US5465342A (en) * | 1992-12-22 | 1995-11-07 | International Business Machines Corporation | Dynamically adaptive set associativity for cache memories |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
US5510934A (en) * | 1993-12-15 | 1996-04-23 | Silicon Graphics, Inc. | Memory system including local and global caches for storing floating point and integer data |
US5603047A (en) * | 1995-10-06 | 1997-02-11 | Lsi Logic Corporation | Superscalar microprocessor architecture |
-
1995
- 1995-06-28 JP JP16173895A patent/JP3598589B2/ja not_active Expired - Fee Related
-
1996
- 1996-06-21 US US08/667,670 patent/US5893143A/en not_active Expired - Lifetime
- 1996-06-26 KR KR1019960023753A patent/KR100248440B1/ko not_active IP Right Cessation
- 1996-06-27 TW TW085107767A patent/TW299421B/zh active
Also Published As
Publication number | Publication date |
---|---|
US5893143A (en) | 1999-04-06 |
JPH0916471A (ja) | 1997-01-17 |
TW299421B (ja) | 1997-03-01 |
KR970002618A (ko) | 1997-01-28 |
KR100248440B1 (ko) | 2000-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3598589B2 (ja) | プロセッサ | |
EP0052194B1 (en) | Paging data processing apparatus | |
US4701844A (en) | Dual cache for independent prefetch and execution units | |
US6904511B2 (en) | Method and apparatus for register file port reduction in a multithreaded processor | |
Calder et al. | Predictive sequential associative cache | |
JP2625277B2 (ja) | メモリアクセス装置 | |
US5018061A (en) | Microprocessor with on-chip cache memory with lower power consumption | |
CN104657110B (zh) | 具有固定数量的可变长度指令的指令高速缓存器 | |
US4897787A (en) | Data processing system | |
US5187793A (en) | Processor with hierarchal memory and using meta-instructions for software control of loading, unloading and execution of machine instructions stored in the cache | |
JPH02190930A (ja) | ソフトウエア命令実行装置 | |
KR19980032100A (ko) | 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드 | |
US5835949A (en) | Method of identifying and self-modifying code | |
JPS6159554A (ja) | キャッシュメモリを有するデータ処理装置 | |
JP3841810B2 (ja) | データプロセッサ | |
CN117421259A (zh) | 用飞行中预取服务于cpu需求请求 | |
US6687808B2 (en) | Data processor using indirect register addressing | |
EP1269323A2 (en) | Multi-tiered memory bank having different data buffer sizes with a programmable bank select | |
US6647464B2 (en) | System and method utilizing speculative cache access for improved performance | |
US20060095746A1 (en) | Branch predictor, processor and branch prediction method | |
US6892280B2 (en) | Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system | |
JPH08504044A (ja) | マイクロコード・キャッシュ・システム及び方法 | |
US6119220A (en) | Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions | |
Berenbaum et al. | Architectural Innovations in the CRISP Microprocessor. | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040413 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040706 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040806 |
|
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: 20040824 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040906 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080924 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090924 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |