JPH0916471A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH0916471A
JPH0916471A JP7161738A JP16173895A JPH0916471A JP H0916471 A JPH0916471 A JP H0916471A JP 7161738 A JP7161738 A JP 7161738A JP 16173895 A JP16173895 A JP 16173895A JP H0916471 A JPH0916471 A JP H0916471A
Authority
JP
Japan
Prior art keywords
instruction
cache memory
processor
cache
stored
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.)
Granted
Application number
JP7161738A
Other languages
English (en)
Other versions
JP3598589B2 (ja
Inventor
Kazuhiko Tanaka
和彦 田中
Keiji Kojima
啓二 小島
Kiyokazu Nishioka
清和 西岡
Toru Nojiri
徹 野尻
Yoshibumi Fujikawa
義文 藤川
Masao Ishiguro
正雄 石黒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP16173895A priority Critical patent/JP3598589B2/ja
Priority to US08/667,670 priority patent/US5893143A/en
Priority to KR1019960023753A priority patent/KR100248440B1/ko
Priority to TW085107767A priority patent/TW299421B/zh
Publication of JPH0916471A publication Critical patent/JPH0916471A/ja
Application granted granted Critical
Publication of JP3598589B2 publication Critical patent/JP3598589B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/0875Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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)

Abstract

(57)【要約】 【目的】本発明は、単一のプログラムカウンタによって
制御される複数の処理ユニットを持つプロセッサにおい
て、高速処理とキャッシュメモリの使用効率向上の向上
を目的とする。 【構成】各処理ユニット110a〜dごとに、独立した
キャッシュメモリ100a〜dを持ち、主記憶5からキ
ャッシュメモリへ命令を読み込む際に、各キャッシュメ
モリ100a〜dへ命令フィールドを分配する。各キャ
ッシュメモリは、共通の制御回路20によって制御され
る。また、コンパイラは、特定の処理ユニットに実行す
べき処理が集中するように、処理のスケジューリングを
行なう。これに応じて、キャッシュメモリ100a〜d
の容量を、対応処理ユニットの実行処理比率に応じて異
ならせる。 【効果】不要なコードをキャッシュメモリ上から取り除
くことができ、キャッシュの使用効率を上げることがで
きる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、パーソナルコンピュー
タなどの情報処理装置に使われる、プロセッサ、コプロ
セッサ、及びそれらを用いた拡張ボード等に関する。
【0002】
【従来の技術】プロセッサのアーキテクチャ動向とし
て、縮小命令セットコンピュータ(Reduced I
nstruction sets computer、
以下、RISCという)が主流になりつつある。複雑な
命令を持たないという特徴のほかに、命令長を一定にす
るという特徴も持つ。命令が単純なため、処理が高速に
行えることと、命令長が一定なため、一回のメモリアク
セスで命令を読み込むことができることなどにより、高
速処理が可能になっている。
【0003】RISCプロセッサの処理性能をさらに向
上させる手段として、現在はスーパースカラー方式が主
流となっている。スーパースカラー方式は、プロセッサ
内部にある複数の演算ユニットのスケジューリングをハ
ードウェアによって、実行時に動的に行うものである。
この方法は、従来のソフトウェア資産をそのまま利用で
きるという長所がある反面、スケジューリングのための
ハードウェアが必要であるうえ、実行時にスケジューリ
ングを行うため、スケジューリングに使用できる情報が
少なく、あまり高い並列性を引き出せないという短所が
ある。
【0004】一方、スーパースカラー方式よりも高い性
能を達成することを目的した方式として、ベリーロング
インストラクションワード(Very Long In
struction Word、以下、VLIWとい
う)方式がある。これは、プロセッサ内部にある複数の
演算ユニットのスケジューリングをコンパイル時にソフ
トウェアによって静的に行い、並列実行可能な命令群を
一つの命令にまとめておき、プロセッサのプログラム実
行時に一つにまとめた命令を一度に読み込み、実行する
方式である。VLIW方式では、スケジューリングのた
めのハードウェアが不要である上、スケジューリング時
に多くの情報を使用できるため、並列性を引き出しやす
い、などの長所がある。しかし、VLIW方式では、複
数の命令をひとまとめにするため、命令長が大きくなる
という問題点が発生する。
【0005】スーパースカラー方式とVLIW方式につ
いては、「次世代マイクロプロセッサ」、日経エレクト
ロニクス、p67〜p150、1995.1.30(n
o.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行目の処理81
0aを実行した後にならないと求まらないため、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システムの主記憶については、N
OPを主記憶上に置かないことにより、有効活用が可能
である。主記憶上で、NOPを削除することで、メモリ
容量を節約している例としては、「ア ブリュー アー
キテクチュア フォー アトレース スケジューリング
コンパイラ」アイイーイーイー、トランザクション
オン コンピューターズ、37巻、8号、967〜97
9ページ、8月 1988(「A VLIW Arch
itecture for a TraceSched
uling Compiler」IEEE,TRANS
ACTION ON COMPUTERS,VOL3
7,No8,pp967〜979、AUGUST 19
88」 )に、簡単な説明がある。
【0013】また、VLIWプロセッサ内部のキャッシ
ュメモリの容量を減らすために、命令を圧縮して記憶
し、キャッシュから読み出した後に伸長する方式があ
る。これについては、「フィリップス ホープス トウ
ディスプレース ディーエスピーズ ウィズ ブリュ
ー」マイクロプロセッサリポート、12〜15ページ、
1994.12.5、米国マイクロデザインリソーシイ
ズ社発行(「Philips Hopes to Di
splace DSPs with VLIW」「MI
CROPROCESSOR 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
プロセッサに適したキャッシュメモリの構成方法を提供
することである。さらに、本発明の他の目的は、上記V
LIWプロセッサにおいて、パイプラインを深くするこ
とがなく、高速処理可能な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は、NO
Pに相当する命令フィールドを削除して圧縮された命令
列が主記憶5に格納されている様子を示す。
【0026】702は、各命令内の命令フィールドがN
OPであるかどうかを示すフラグの集合でありマスク情
報という。マスク情報702は各VLIW命令毎に設け
られ、それぞれ4つのクラスタに対応する4ビット構成
となっている。これは実行時にNOPを再び挿入できる
ようにするためのものである。なお、クラスタAに対応
する命令フィールドN−aはNOPであっても削除しな
い。これについては後述する。720は上記のVLIW
命令がプロセッサ1内のキャッシュに読み込まれた様子
を示すもので、詳細については後述する。
【0027】図7は、プログラムカウンタ30の構成例
を示す図であって、ビット幅を24ビットとし、さら
に、3つのフィールドに分割している。この図におい
て、300aはキャッシュメモリのヒット判定の際に、
後述するタグメモリ200中のアドレスタグ情報201
と比較されるアドレスタグ部、300bはタグメモリ2
00およびキャッシュメモリ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バイト)に等しい。キャッシュ100
a〜100dは同じ64エントリー(2kバイト/32
バイト)からなり、各エントリーを共通のエントリーア
ドレスで指定する。本実施例では、キャッシュメモリ
を、アドレス512、読み書きデータ幅4バイトとして
構成する。これは、読み書きデータ幅をラインサイズに
合わせた32バイトとした場合に、命令読み出し時に8
to1のセレクタが必要になることや消費電力が増大す
るので、これを避けるためである。
【0030】図9は、クラスタ10a〜10dにて共通
に使用されるタグメモリ200の構成例を示す図であ
る。クラスタAと対応させた2ウェイ構成となってい
る。タグメモリ200には、64個のエントリーがあ
り、各エントリーは、プログラムカウンタ30のアドレ
スタグ部300aと比較するための13ビットのアドレ
スタグ情報201と、主記憶5に格納されているマスク
情報702に相当するマスク情報202を格納する領域
とをそれぞれ2ウェイ分持つ。また、キャッシュ内容の
更新には、リースト リーセントリィ ユーズド(Le
ast 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ウェイ構成となっているキャッシュメモリ100
a−0、100a−1が出力する2つのデータの中から
必要な命令を選択するためのものである。図13はクラ
スタB〜Dの構成例を示す図である。セレクタ120b
は、1ウェイ構成となっているキャッシュメモリ100
bから、読み出されたデータと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の中ではNO
Pを削除しているために、プロセッサ1のプログラムカ
ウンタ30の値が示すキャッシュメモリ100上のアド
レスと、主記憶5の中の、命令が格納されているアドレ
スとは並びが異なる。そのために、主記憶に対してアク
セスする際にはアドレスの変換を行う。
【0037】これは、一般にプロセッサが仮想記憶を実
現する際に用いるページテーブルとTLBと呼ぶアドレ
ス変換バッファによるアドレス変換機構と同じ技術で実
現できる。本発明では、コンパイラは、ページテーブル
に相当するアドレス変換テーブルをコンパイル時に主記
憶上5に作成する。これらは、NOPを削除する前の命
令列700と、NOPを削除した命令列710の関係か
ら作成できる。
【0038】なお、アドレス変換バッファは、図示して
いないが、後述するように、フィル制御回路210内に
構成している。また、電源オン時には初期化(0クリ
ア)を行っておく。
【0039】上述のように、コンパイラによって、クラ
スタAに有効な命令フィールドが存在する確率が高くな
っているため、本実施例では、これに対応するため、ク
ラスタA10aのキャッシュメモリ100aの容量を、
他のクラスタのキャッシュメモリ100b〜100dの
容量と比較して大きくしている。具体的にはキャッシュ
メモリ100aの連想度を他のキャッシュメモリ100
b〜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】ここで、キャッシュのヒット判定(90
0、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は、h
it(set0)400aによって有効になり、410
b〜dによって、クラスタB〜Dへ伝えられる。
【0047】キャッシュメモリ100a〜100dに
は、プログラムカウンタ30中のエントリー選択部30
0bとオフセット300cを足し合わせた9ビットの値
が与えられる。クラスタAでは、2つのセットから同時
に命令フィールドが読み出される。セレクタ120a
は、いずれのセットがヒットしたかを示すhit(se
t0)400aに従っていずれかを選択する。選択規則
は図14に示すとおりである。
【0048】キャッシュメモリ100b〜100dは、
一つのセットから読み出された命令フィールドと、NO
Pに相当する処理コードが、セレクタ120b〜120
dに与えられる。セレクタ120b〜120dは、上記
有効になったマスク情報410b〜dに従って動作す
る。選択規則は図15に示すとおりである。NOPに相
当する処理コードは、あらかじめ決まっているため、結
線論理によって実現することが可能である。
【0049】これまで述べたように、キャッシュメモリ
100b〜100dから読み出された命令は、セレクタ
120b〜120dを1段通過するだけで処理ユニット
に与えられる。従って、必要な処理クロック数も少な
く、パイプラインも短くすることができる。
【0050】次にキャッシュメモリがミスヒットした場
合の動作を説明する。キャッシュメモリがミスヒットし
たならば、ヒット判定回路220から、ヒット信号40
0cにより、ミスヒットしたことがフィル制御回路21
0へ伝えられ、フィル制御回路210が動作を開始す
る。この時に、キャッシュメモリ100a〜100dに
はプログラムカウンタ30のエントリー選択部300b
とオフセット300cの値が与えられ、内容が読み出さ
れるが、同時にヒット信号400cにより、ミスヒット
したことが伝えられるので、処理ユニット110a〜1
10dは停止状態となり、問題は生じない。
【0051】次に、フィル制御回路210は、代わりの
VLIW命令と対応するマスク情報を主記憶5から読み
出し、それぞれキャッシュメモリ100a〜100dと
タグメモリ200の該当エントリに格納する。以下、こ
の動作について説明する。まず、キャッシュメモリ中の
該当エントリーに新しい命令を格納できるだけの空き領
域があるか否かを調べる。タグメモリ200内の該当エ
ントリーについて、いずれかのセットのinst0ms
k〜inst7mskのマスク情報msk(A)をすべ
て調べ、すべて0ならば該当エントリーの該当セットは
空いていることになる。空き領域がなければ、フィル制
御回路210は該当エントリー中のいくつかのセットを
無効にして空き領域を作る。この作業を、キャッシュの
無効化と呼ぶ。
【0052】無効化をする際には、フィル制御回路21
0は、まず、どのセットを無効化するかを選択し(ステ
ップ920)、その後で、そのエントリーを無効化する
(ステップ930)。無効化の方法は後述する。空き領
域があったら、あるいは無効化により空き領域を作った
ら、フィル制御回路210は、経路454を経由してタ
グメモリ200にアドレスタグ情報201などを格納し
て、新しいエントリーを作成し(ステップ940)、そ
の後、ステップ950において、フィル制御回路210
は、32ビット幅のバスに合わせて、8命令分のマスク
情報702を同時に読み出す。フィル制御回路210は
読み込んだマスク情報702を、タグメモリ200とフ
ィル制御回路210自身に格納する。つぎに、8命令分
のマスク情報に合わせてVLIW命令701も8命令分
を続けて読み出す。
【0053】フィル制御回路210は、VLIW命令7
01を読み込む際に、順次、マスク情報702を解析し
て、該当するキャッシュメモリへの書き込み信号を発行
する。主記憶5からの命令供給経路の幅は、命令フィー
ルドの大きさと等しく32ビットであるため、書き込む
対象となるキャッシュメモリの指定は、キャッシュメモ
リ100a〜100dの個別の書き込み信号を制御する
だけで実現可能である。
【0054】2つのセットともに空いていた場合あるい
は、2つのセットを無効化した空けた場合に、いずれの
セットに命令を格納するかはあらかじめ決めておくもの
とする。また、前述のように、NOP命令はあらかじめ
プロセッサ内にその処理コードを持っており、改めてN
OP命令を格納することはしない。従って、各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】次に、上述した無効化するセットの選択方
法について説明する。無効化するセットの選択(92
0)は、LRU情報203を用いて行われる。これは、
いずれのセットが最近使われたかを示すものである。ヒ
ット判定回路220は、セット0が最近使用されたなら
ば「0」、セット1が最近使用されたならば「1」を格
納する。すなわち、セットAのヒット信号400aの値
を、キャッシュヒット時に、該当エントリーのLRU情
報203へ書き込む。
【0058】具体的な無効化の手順としては、まず、フ
ィル制御回路210は、該当エントリーのLRU情報2
03が示すアクセス履歴が古い方のキャッシュメモリの
セットに、新しい命令を入れることができるかどうかを
調べる。「新しい命令のマスク情報」と「LRU情報2
03が示すアクセス履歴が古い方の命令のマスク情報を
反転したもの」の各ビットごとの論理積が全て0になれ
ば、新しい命令を入れることができる。そして、LRU
情報203が示すアクセス履歴が古い方のセットを無効
化する。無効化はタグメモリ200の該当エントリー、
該当セットのマスク情報すなわち、inst0〜ins
t7のmsk(A)202aを0にすればよい。
【0059】調べた結果、新しい命令を入れることがで
きない場合には、LRU情報203が示すアクセス履歴
が新しい方のセットについても同じことを調べる。入れ
ることができればLRU情報203が示すアクセス履歴
が新しい方のセットを無効化する。どちらのセットを無
効化しても、新しい命令を入れられない場合には、両方
のセットを無効化する。
【0060】無効化は、フィル制御回路210が、タグ
メモリ200中の選択されたセットのマスク情報のう
ち、inst0mask〜inst7maskのクラス
タAに対応するmsk(A)202aを全て0に設定す
ることで行われる。もし、いずれか一つのセットしか無
効にしない場合は、その後ですぐ新しい命令を読み込み
マスク情報を設定し直すので、かならずしも0に設定す
る必要はない。なお、電源オン時には、マスク情報20
2の初期化(0クリア)を行い、あらかじめ無効化を行
っておく。
【0061】また、上述の説明では、処理ユニット11
0aに有効な命令が集中するように構成、制御している
が、もちろん、これに限定されるものではない。また、
本実施例ではキャッシュメモリ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〜1
00d:クラスタB〜クラスタDのキャッシュメモリ、
110a〜110d:クラスタA〜クラスタDの処理
ユニット、120a〜120d:クラスタA〜クラスタ
Dのセレクタ、 200:タグメモリ、201:アドレ
スタグ情報、 202a〜202d:クラスタA〜クラ
スタDに対応したマスク情報、 203:LRU情報、
210:フィル制御回路、220:ヒット判定回路、
300a:アドレスタグ部、 300b:エントリー
選択部、 400c:ヒット信号、 410a〜410
d:クラスタA〜クラスタDに対するセレクタ制御信
号、 450:主記憶に対するアドレスおよび制御信
号、 451:マスク情報のリードパス、 452:タ
グメモリのリードパス、453:フィルアドレス指定パ
スおよび書き込み制御信号、 454:タグメモリの更
新パス、 800a〜800b:並列に実行できる処理
の例、 810a〜810b:並列に実行できない処理
の例、700:元の命令列、 701:命令フィール
ド、 702:マスク情報、 710:主記憶上の命令
列、720:キャッシュ上の命令列、 2202:セレ
クタ制御信号生成部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 野尻 徹 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 藤川 義文 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内 (72)発明者 石黒 正雄 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】単一のプログラムカウンタによって処理の
    実行順序を制御される、並列に動作可能な複数個の処理
    ユニットと、 前記複数個の処理ユニットが実行する命令を格納するた
    めの、前記処理ユニット各々に対応した複数のキャッシ
    ュメモリと、 前記複数のキャッシュメモリに格納されている命令のア
    ドレス情報を格納するタグメモリと、 前記単一のプログラムカウンタが示すアドレスによって
    指定される命令を、外部から読み込む場合には、該命令
    を前記複数の処理ユニットのいずれかに対応した複数個
    の命令フィールドに分割し、それぞれを、前記の各処理
    ユニットに対応したキャッシュメモリに格納する格納制
    御回路とを備えてなるプロセッサ。
  2. 【請求項2】前記複数のキャッシュメモリのうちの一つ
    のキャッシュメモリの容量は、他のキャッシュメモリと
    は異なる容量を備えてなる請求項1記載のプロセッサ。
  3. 【請求項3】前記複数のキャッシュメモリのうちの一つ
    のキャッシュメモリの容量は、他のキャッシュメモリの
    N倍(Nは2以上の自然数)の容量を備えてなる請求項
    1または請求項2記載のプロセッサ。
  4. 【請求項4】前記Nは2であることを特徴とする請求項
    3記載のプロセッサ。
  5. 【請求項5】前記格納制御回路は、 前記命令を読み込む際に、当該命令が含む命令フィール
    ドが前記複数個の処理ユニットのいずれに対応するかを
    示す格納情報を読み込み、 当該命令に対応するアドレス情報に関連づけて、前記格
    納情報をタグメモリに格納し、 前記格納情報に従って、前記命令が含む命令フィールド
    をそれが実行されるべき処理ユニットに対応するキャッ
    シュメモリに格納制御してなる請求項1ないし請求項4
    いずれか一記載のプロセッサ。
  6. 【請求項6】前記キャッシュメモリの各々の容量は、そ
    れ自身に格納されうる前記命令フィールドの格納量に応
    じたものであることを特徴とする請求項1ないし請求項
    5いずれか一記載のプロセッサ。
  7. 【請求項7】前記キャッシュメモリの各々は、それ自身
    に格納されうる前記命令フィールドの格納量に応じた連
    想度を持つことを特徴とする請求項1ないし請求項6い
    ずれか一記載のプロセッサ。
  8. 【請求項8】前記格納情報は、前記命令に、キャッシュ
    メモリに格納されない命令フィールドが含まれることを
    指定する領域を備え、 前記格納制御回路は、前記格納情報が前記キャッシュメ
    モリへの格納を指定する命令フィールドを格納制御して
    なる請求項1ないし請求項7いずれか一記載のプロセッ
    サ。
  9. 【請求項9】前記処理ユニットは、前記キャッシュメモ
    リに格納されていない命令フィールドを実行する機能を
    備え、 前記格納情報は、前記キャッシュメモリに格納されてい
    ない命令フィールドについては、キャッシュメモリに格
    納されていない命令フィールドであることを指定する領
    域を備え、 前記格納情報が、前記処理ユニットが実行する命令フィ
    ールドがキャッシュメモリに格納されていないことを示
    す場合には、前記処理ユニットは、前記キャッシュメモ
    リに格納されていない命令フィールドを生成して実行し
    てなる請求項1ないし請求項8いずれか一記載のプロセ
    ッサ。
  10. 【請求項10】単一のプログラムカウンタによって処理
    の実行順序を制御される、並列に動作可能な複数個の処
    理ユニットと、前記複数個の処理ユニットに並列に命令
    を供給可能な2つ以上のキャッシュメモリを備えてなる
    プロセッサ。
  11. 【請求項11】前記2つ以上のキャッシュメモリのう
    ち、1つは他のキャッシュメモリと異なる容量を備えて
    なる請求項10記載のプロセッサ。
  12. 【請求項12】前記他のキャッシュメモリと異なる容量
    を持つキャッシュメモリは、他のキャッシュメモリのN
    倍の容量(Nは2以上の自然数)を備えてなる請求項1
    1記載のプロセッサ。
  13. 【請求項13】前記Nは2であることを特徴とする請求
    項12記載のプロセッサ。
JP16173895A 1995-06-28 1995-06-28 プロセッサ Expired - Fee Related JP3598589B2 (ja)

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 true JPH0916471A (ja) 1997-01-17
JP3598589B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196729A (ja) * 2003-12-10 2005-07-21 Renesas Technology Corp コンパイラおよび命令コード出力装置
JP2009059246A (ja) * 2007-08-31 2009-03-19 Toshiba Corp マイクロプロセッサ
JP2014513366A (ja) * 2011-05-03 2014-05-29 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
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
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
US7140019B2 (en) * 2002-06-28 2006-11-21 Motorola, Inc. Scheduler of program instructions for streaming vector processor having interconnected functional units
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
GB2415269B (en) * 2004-06-15 2007-07-25 Advanced Risc Mach Ltd Program instruction decompression and compression techniques
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
TWI320636B (en) * 2005-11-10 2010-02-11 Realtek Semiconductor Corp Method for compressing instruction code
KR20080067711A (ko) * 2005-11-15 2008-07-21 엔엑스피 비 브이 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템
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 컴퓨터를 위한 인스트럭션 명령어 압축장치 및 그 방법
US7945768B2 (en) * 2008-06-05 2011-05-17 Motorola Mobility, Inc. Method and apparatus for nested instruction looping using implicit predicates
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)

* Cited by examiner, † Cited by third party
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

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005196729A (ja) * 2003-12-10 2005-07-21 Renesas Technology Corp コンパイラおよび命令コード出力装置
JP2009059246A (ja) * 2007-08-31 2009-03-19 Toshiba Corp マイクロプロセッサ
US8131977B2 (en) 2007-08-31 2012-03-06 Kabushiki Kaisha Toshiba Microprocessor inhibiting instruction storage in cache and not decoding based on pre-analysis information to reduce power consumption
JP2014513366A (ja) * 2011-05-03 2014-05-29 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
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
JP2015228241A (ja) * 2011-05-03 2015-12-17 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
JP2016149148A (ja) * 2011-05-03 2016-08-18 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
JP2017097900A (ja) * 2011-05-03 2017-06-01 クアルコム,インコーポレイテッド メモリ階層内に組み込まれたエントロピーエンコーディングされたソフトウェアの記憶および変換のための方法および装置
US10754653B2 (en) 2011-05-03 2020-08-25 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
JP2014524097A (ja) * 2011-07-28 2014-09-18 クアルコム,インコーポレイテッド エントロピ符号化命令シーケンスの記憶および実行可能な形式への変換のための方法および装置
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

Also Published As

Publication number Publication date
JP3598589B2 (ja) 2004-12-08
KR100248440B1 (ko) 2000-03-15
US5893143A (en) 1999-04-06
KR970002618A (ko) 1997-01-28
TW299421B (ja) 1997-03-01

Similar Documents

Publication Publication Date Title
JP3598589B2 (ja) プロセッサ
US6904511B2 (en) Method and apparatus for register file port reduction in a multithreaded processor
US8122229B2 (en) Dispatch mechanism for dispatching instructions from a host processor to a co-processor
EP0052194B1 (en) Paging data processing apparatus
US5895501A (en) Virtual memory system for vector based computer systems
US8156307B2 (en) Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US20090064095A1 (en) Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8745631B2 (en) Intelligent memory device with ASCII registers
US4897787A (en) Data processing system
JPH01154261A (ja) 情報処理装置
Ebcioglu et al. An eight-issue tree-VLIW processor for dynamic binary translation
US6687808B2 (en) Data processor using indirect register addressing
US20030088636A1 (en) Multiprocessor system having distributed shared memory and instruction scheduling method used in the same system
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
US20210089305A1 (en) Instruction executing method and apparatus
Berenbaum et al. Architectural Innovations in the CRISP Microprocessor.
JPH04104350A (ja) マイクロプロセッサ
JP2005513612A (ja) 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
JPH01233537A (ja) キャッシュメモリを備えた情報処理装置
US5187782A (en) Data processing system
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
Loh Width-partitioned load value predictors
JP3424430B2 (ja) プロセッサ
JP3205092B2 (ja) 情報処理装置
TW202416131A (zh) 用於壓縮操作期間的常數偵測之設備及方法

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