JP3186798B2 - 部分的にデコードした命令キャッシュ - Google Patents

部分的にデコードした命令キャッシュ

Info

Publication number
JP3186798B2
JP3186798B2 JP22540291A JP22540291A JP3186798B2 JP 3186798 B2 JP3186798 B2 JP 3186798B2 JP 22540291 A JP22540291 A JP 22540291A JP 22540291 A JP22540291 A JP 22540291A JP 3186798 B2 JP3186798 B2 JP 3186798B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
microprocessor
partially decoded
cache
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
JP22540291A
Other languages
English (en)
Other versions
JPH0553795A (ja
Inventor
ピント ビクトール
タルムディ ラン
アブノン ドロール
ユーバル ギデオン
ベイダッチ ヤイール
ベン−メイール アモス
アルパート ドン
オズ オベッド
イントラター ギデオン
マルコ ルーベン
シャチャム アーロン
グリーンフェルド ヅビ
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.)
National Semiconductor Corp
Original Assignee
National Semiconductor Corp
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 National Semiconductor Corp filed Critical National Semiconductor Corp
Publication of JPH0553795A publication Critical patent/JPH0553795A/ja
Application granted granted Critical
Publication of JP3186798B2 publication Critical patent/JP3186798B2/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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセサアーキ
テクチャに関するものであって、更に詳細には、内部命
令キャッシュ内に格納する前に、外部メモリから検索し
た命令を部分的にデコードするマイクロプロセサに関す
るものである。部分的にデコードした命令は、複数個の
並列パイプライン型機能ユニットにより並列的又は逐次
的の何れかで実行するために内部キャッシュから検索さ
れる。
【0002】
【従来の技術】最近においては、設計の簡単化を維持し
ながら高性能を達成するためには、複雑命令セットコン
ピュータ(CISC)から減少命令セットコンピュータ
(RISC)へマイクロプロセサアーキテクチャの構成
が変化する傾向にある。CISCアーキテクチャにおい
ては、プロセサによって受取られる各マクロ命令は、内
部的に一連のマイクロ命令サブルーチンへデコードされ
ねばならない。次いで、これらのマイクロ命令サブルー
チンはマイクロプロセサによって実行される。RISC
アーキテクチャにおいては、プロセサが理解し且つ実行
することが可能な多数のマクロ命令は著しく減少され
る。更に、プロセサが理解し且つ実行することが可能な
マクロ命令は非常に基本的なものであり、従ってプロセ
サは、それらをマイクロ命令へデコードすることがない
か(そのマクロ命令はマクロ形態のまま実行される)又
はデコードされたマイクロ命令サブルーチンは極僅かの
マイクロ命令を包含するかの何れかである。
【0003】CISCアーキテクチャからRISCアー
キテクチャへの遷移は、今日マイクロプロセサに対して
広範囲に適用されているコンピュータデザインにおける
2つの基本的な開発によって駆立てられている。これら
の開発は、集積化キャッシュメモリと最適コンパイラで
ある。
【0004】キャッシュメモリは、プロセサによって最
も最近に使用された命令及びデータを保持するために、
プロセサとメインメモリとの間に位置されている小型の
高速バッファである。経験によれば、コンピュータは、
非常に一般的に、そのメモリ参照において強い局所性の
特性を示すことが知られている。即ち、参照は、最近参
照された位置(時間的局所性)か、又は最近参照された
他の位置の近くの位置(空間的局所性)の何れかに対し
てしばしば発生する傾向がある。この局所性の結果とし
て、メインメモリよりもかなり小型のキャッシュメモリ
が、プログラムのメモリ参照のかなりの部分を取扱うこ
とが可能である。キャッシュメモリは比較的小型である
ので、より大型のメインメモリに対して経済的なものよ
りも一層高速のメモリ技術によって実現することが可能
である。
【0005】メインフレームコンピュータにおいて使用
するキャッシュメモリ技術の開発の前に、プロセサのサ
イクル時間とメモリのサイクル時間との間には大きな不
均衡があった。この不均衡は、プロセサが比較的高速の
バイポーラ半導体技術から実現されており、且つメモリ
がかなり低速の磁気コア技術から実現されているという
事実から発生する結果である。ロジックとメモリとの間
の本質的な速度差は、数個のクロックサイクルに対しプ
ロセサの動作を制御するためにメモリから単一の命令を
フェッチすることを可能とする複雑な命令セットの開発
を促していた。プロセサの速度とメモリの速度との間の
不均衡は、又、32ビットマイクロプロセサの早期の出
現の特性でもあった。これらのマイクロプロセサは、各
メモリアクセスに対し4又は5個のクロックサイクルを
使用することが一般的である。
【0006】集積化キャッシュメモリの導入がない場合
には、RISCアーキテクチャは、CISCアーキテク
チャと競合するようになる可能性はない。RISCプロ
セサは、同一のタスクを実施するために、CISCプロ
セサよりもより多くの命令を実行するので、RISCプ
ロセサは、より高速で且つより高価なメモリシステムが
使用される場合においてのみ、CISCの性能と均等な
性能を与えることが可能である。集積化キャッシュメモ
リは、効率的なプロセサパイプラインによる命令の実行
のために必要な同一の時間において、RISCプロセサ
が命令をフェッチすることを可能とする。
【0007】RISCアーキテクチャの実効性を可能と
した2番目の開発は最適コンパイラである。コンパイラ
は、ハードウエアか又はソフトウエアの何れかで実現す
ることが可能であり、それは、コンピュ−タプログラム
を、プログラマによって使用されるハイレベル言語か
ら、コンピュータによって理解可能なマシン言語へ変換
するものである。
【0008】ハイレベル言語の導入の後長年の間、コン
ピュータは、未だに、かなりにおいてアッセンブリ言語
でプログラムされていた。アッセンブリ言語は、オブジ
ェクトコード又はその2進均等物よりもプログラマによ
って容易に記憶可能である原始的なニーモニックを使用
する低レベルソースコード言語である。高レベル言語プ
ログラミングの改良されたソフトウエア生産性及び変換
可能性の利点は明らかであったが、簡単なコンパイラが
非効率的なコードを発生していた。初期の世代の32ビ
ットマイクロプロセサは、アッセンブリ言語プログラミ
ング及び簡単なコンパイラに対して考慮を払い開発され
たものである。
【0009】より最近においては、コンパイラ技術にお
ける進歩がマイクロプロセサへ適用されている。最適コ
ンパイラは、多数のレジスタを効率的に割当て且つプロ
セサパイプライン資源を管理するためにプログラムを解
析することが可能である。その結果、高レベル言語プロ
グラムが、アッセンブリプログラムと同等か又はそれを
超える性能で実行することが可能である。
【0010】RISC開発における先導的なパイオニア
の多くは、コンパイラのスペシャリストであって、最適
コンパイラが、簡単で且つ規則的なアーキテクチャに対
して高度に効率的なコードを発生することが可能である
ことを証明した。
【0011】高度に集積化された単一チップマイクロプ
ロセサは、性能を改善するために、パイプライン型で且
つ並列的実行の両方を使用している。パイプライン型実
行は、マイクロプロセサが1つの命令をフェッチしてい
る間に、同時的に第二の命令をデコードし、第三の命令
に対するソースオペランドを読取り、第四の命令に対す
る結果を計算し、且つ第五の命令に対する結果を書込む
ことを同時的に行なうことが可能であることを意味して
いる。並列実行は、マイクロプロセサが、別々の機能ユ
ニットにおいて2つ又はそれ以上の独立的な命令に対す
るオペランドを同時的に開始させることが可能であるこ
とを意味している。
【0012】上述した如く、高性能マイクロプロセサを
複数個のパイプライン型機能ユニットで構成する場合の
主要なチャレンジの1つは、オンチップの形態で充分な
命令メモリを提供し且つ該機能ユニットを制御するため
に該命令メモリを効率的にアクセスすることである。マ
イクロプロセサの機能ユニットの効率的な制御に対する
条件は、デコードするのに簡単な規則的な命令フォーマ
ットを支配する。しかしながら、従来のマイクロプロセ
サアーキテクチャにおいては、メインメモリにおける命
令は硬度にコード化されており、且つメインメモリにお
ける空間の使用を効率的なものとするために可変のも
のであり、且つマイクロプロセサとメインメモリとの間
において使用可能な帯域幅は制限されている。
【0013】
【課題を解決するための手段】本発明は、マイクロプロ
セサの集積化命令キャッシュ内に配置させる前に、メイ
ンメモリから検索した命令を部分的にデコードすること
によって、機能ユニットの効率的な制御とメインメモリ
格納空間の効率的な使用という相対立する条件を解決す
るマイクロプロセサを提供している。命令キャッシュ内
への各エントリは、部分的にデコードした命令に対して
2つのスロットを有している。一方のスロットは、マイ
クロプロセサの実行パイプラインの1つ及びそのデータ
キャッシュへのポートを制御する。第二のスロットは、
第二の実行パイプライン、又はマイクロプロセサの浮動
小数点ユニットの1つ、又は制御転送命令を制御する。
命令デコードユニット、乃至はローダーは、メインメモ
リ内に格納されているそれらのコンパクトなフォーマッ
トからの命令をデコードし、且つそれらを、それらの機
能に従って、命令キャッシュエントリの2つのスロット
内へ供給する。並列実行及び複雑な命令のエミュレーシ
ョンを制御するために、命令と共に、補助情報もキャッ
シュエントリ内に供給される。各キャッシュエントリに
おける1つのビットは、そのエントリに対する2つのス
ロット内の命令が独立的であってそれらの命令が並列的
に実行可能なものであるか、又はそれらが従属的なもの
であって、それらの命令が逐次的に実行されねばならな
いものであるかを表わす。この目的のために単一ビット
を使用することは、単一キャッシュエントリのスロット
内に2つの従属的命令を格納することを可能とする。そ
うでない場合には、これらの2つの命令は別々のエント
リ内に格納されねばならず、キャッシュメモリの半分の
みがこれらの2つのエントリにおいて使用されることと
なる。
【0014】
【実施例】図1は、2つの命令を並列的に実行すること
が可能な複数個のパイプライン型機能ユニットを有する
マイクロプロセサ10のブロック図を示している。マイ
クロプロセサ10は、3つの主要な部分、即ち命令プロ
セサ12と、実行プロセサ14と、バスインターフェー
スプロセサ16とを有している。命令プロセサ12は、
3つのモジュールを有しており、即ち命令ローダー18
と、命令エミュレータ20と、命令キャッシュ22とを
有している。これらのモジュールは、バスインターフェ
ースプロセサ16を介して外部システムからの命令をロ
ードし、該命令を命令キャッシュ22内に格納し、且つ
命令の対を実行のために実行プロセサ14へ供給する。
【0015】実行プロセサ14は2つの4段パイプライ
ン型整数実行ユニット24及び26と、倍精度5段パイ
プライン型浮動小数点実行ユニット28と、1024バ
イトのデータキャッシュ30とを有している。1組の整
数レジスタ32は、2つの整数ユニット24及び26を
サービスし、同様に、1組の浮動小数点レジスタ34が
浮動小数点実行ユニット28をサービスする。
【0016】バスインターフェースプロセサ16は、バ
スインターフェースユニット36と、多数のシステムモ
ジュール38とを有している。バスインターフェースユ
ニット36は、命令プロセサ12及び実行プロセサ14
の両方によって要求されるバスアクセスを制御する。図
示した実施例においては、システムモジュール38は、
タイマ40と、直接メモリアクセス(DMA)コントロ
ーラ42と、インタラプト制御ユニット(ICU)44
と、I/Oバッファ46とを有している。
【0017】以下に詳細に説明する如く、命令ローダー
18は、メインメモリから検索した命令を部分的にデコ
ードし、且つその部分的にデコードした命令を命令キャ
ッシュ22内に配置させる。即ち、命令ローダー18
は、メインメモリ(不図示)内に格納されている命令を
命令キャッシュ22のデコードしたフォーマットへ変換
する。以下に詳細に説明する如く、命令ローダー18
は、更に、単一命令キャッシュエントリ内に対構成とさ
れる連続する命令の間に何らかの従属性が存在するか否
かをチェックする。
【0018】命令キャッシュ22は、部分的にデコード
した命令に対して512個のエントリを有している。本
発明の一側面によれば、且つ以下に詳細に説明する如
く、命令キャッシュ22内の各エントリは、マイクロプ
ロセサ10の種々の機能ユニットの効率的な制御のため
に部分的にデコードしたフォーマットで格納した1つ又
は2つの何れかの命令を有している。本発明の別の側面
によれば、命令キャッシュ22内の各エントリは、更
に、そのエントリ内に格納される2つの命令が独立的な
ものであって該命令が並列的に実行することが可能であ
るか、又はそれらの命令が従属的なものであってそれら
の命令は逐次的に実行されねばならないかを表わす補助
情報を有している。
【0019】命令エミュレータ20は、マイクロプロセ
サ10の命令セット内において定義されている特別命令
を実行する。命令ローダー18がこのような命令に遭遇
すると、それはエミュレータ20へ制御を移管する。該
エミュレータは、単一の複雑命令(以下に定義する)の
機能を実行するコア命令(以下に定義する)のシーケン
スを発生する。この点に関して、エミュレータ20はR
OM内に存在するマイクロコードを供給する。エミュレ
ータ20は、更に、例外処理及び自己テスト操作を制御
する。
【0020】2つの4段整数パイプライン24及び26
は、基本的な演算/論理操作及びデータメモリ参照を実
施する。各整数パイプライン24,26は、システムク
ロックサイクル当たり1個の割合の処理能力で命令を実
行することが可能である。
【0021】浮動小数点実行ユニット28は、単精度及
び倍精度操作を実行する3個のサブユニットを有してい
る。FPU加算器サブユニット28aは加算及び変換操
作を行ない、第二のサブユニット28bは乗算操作を行
ない、且つ第三のサブユニット28cは割算操作を行な
う。加算及び乗算操作が交互に実行される場合、浮動小
数点実行ユニット28が、システムクロックサイクル当
たり1個の命令の割合の処理能力で命令を実行すること
が可能である。
【0022】浮動小数点実行ユニット28に対するメモ
リ参照は、整数パイプライン24,26の一方によって
制御され、且つ浮動小数点操作と並列的に実行すること
が可能である。データメモリ参照は、1Kバイトのデー
タキャッシュ30を使用して実施される。データキャッ
シュ30は、しばしば使用されるデータに対して高速の
オンチップアクセスを与える。データキャッシュ30内
にデータが配置されていない場合には、オフチップ参照
が、パイプライン型システムバス48を使用して、バス
インターフェースユニット(BIU)36によって実施
される。
【0023】データキャッシュ30は、それがミスが発
生する場合に不必要にストールすることがないように、
ロードスケジュール技術を使用している。このことは、
データがメインメモリから読取られる間に、2つの実行
パイプライン24,26が、命令の処理及び付加的なメ
モリ参照の開始を継続して行なうことが可能であること
を意味している。バスインターフェースユニット36
は、命令プロセサ12か又は実行プロセサ14の何れか
からメインメモリアクセスに対する要求を受取ることが
可能である。これらの要求は、外部パイプライン型バス
48へ送給される。外部バスは、マイクロプロセサ10
の周波数の半分の周波数で動作すべくプログラムするこ
とが可能であり、このことは、マイクロプロセサ10が
全速力で一対の命令を実行する間に、比較的低い周波数
での簡単な命令インターフェースとすることを可能とし
ている。
【0024】マイクロプロセサ10の命令セットは、コ
ア部分と非コア部分とに区画されている。命令セットの
コア部分は、基本的なシステム操作に対する幾つかの特
別機能命令と共に、性能臨界的命令及びアドレス動作モ
ードから構成されている。非コア部分は、該命令セット
の残部から構成されている。性能臨界的命令及びアドレ
ス動作モードは、オペレーティングシステム(本例の場
合にはUNIX)作業負担及び種々のエンジニアリン
グ、科学的及び内蔵されているコントローラアプリケー
ションの解析及び評価に基づいて選択されている。これ
らの命令は、マイクロプロセサ10のRISCアーキテ
クチャの一部として直接的に実行される。
【0025】上述した如く、特別機能及び非コア命令
は、コア命令のシーケンスを使用するマクロ命令サブル
ーチンによって、マイクロプロセサ10においてエミュ
レートされる。即ち、マイクロプロセサ10のアーキテ
クチャの全体的な命令セットの一部であるが直接的に実
現されるRISCコアの外側に存在する命令は、命令エ
ミュレータ20の制御下において実行される。命令ロー
ダー18が非コア命令に遭遇すると、それは、その命令
を一対のコア命令へ変換するか(例えば、MOVB 1
(R0),0(R1)のような簡単な命令)、又は命令
エミュレータ20へ制御を移管する。命令エミュレータ
20は、単一の複雑命令の機能を実施するコア命令のシ
ーケンスを発生する。
【0026】図2は、命令キャッシュ22の構成を示し
ている。命令キャッシュ22は、部分的にデコードした
命令に対し512個のエントリを有する2方向セット連
想組織を使用している。このことは、各メモリアドレス
に対して、そのアドレスに位置された命令を配置させる
ことが可能な場合に命令キャッシュ22内に2つのエン
トリが存在することを意味している。これら2つのエン
トリは「セット」と呼ばれる。
【0027】図3に示した如く、各命令キャッシュエン
トリは、2つのスロット、即ちスロットA及びスロット
Bを有している。従って各エントリは、opcode
(Opc)即ち命令コード、発信元及び宛先レジスタ番
号(夫々、R1及びR2)、及び即時値(32b IM
M)に対し固定したフィールドで表わされる1つ又は2
つの部分的にデコードされた命令を有することが可能で
ある。該エントリは、更に、該エントリが、並列的に実
行することが可能な2つの連続する命令を有するか否か
を表わすビットPと該エントリがエミュレートされる複
雑命令に対するものであるかを表わすビットGを包含す
る命令実行のシーケンスを制御するために使用される補
助情報、及び次の命令のアドレスの高速な計算を可能と
する形態における命令の長さを表わす付加的情報を有し
ている。
【0028】再度図2を参照すると、命令キャッシュ2
2における各エントリと関連して、夫々、26ビットの
タグTAG0及びTAG1が設けられており、これらの
タグは、22個の最大桁ビットと、3個の最小桁ビット
と、エントリ内に格納されている命令の仮想アドレスの
ユーザ/スーパーバイザビットとをホールドする。2つ
の連続する命令がエントリにおいて対構成とされる場
合、該タグは、下位のアドレスにおける命令に対応す
る。該タグと関連して2個のビットが存在しており、そ
れらのビットは、該エントリが有効であるか否か及びそ
れがロックされているか否かを表わす。各セットに対し
て、最も最近でなく使用された(LRU)順番で次に置
換されるべきセット内のエントリを表わす付加的な単一
ビットが存在している。
【0029】命令キャッシュ22は、マイクロプロセサ
10の種々の動作モードをイネーブル又はディスエーブ
ルするために使用されるマイクロプロセサ10のコンフ
ィギュレーションレジスタの対応するビットが1である
場合に命令フェッチに対してイネーブルされ、且つ何れ
かのアドレス変換がディスエーブルされ、即ちCIビッ
トは、該命令の仮想アドレスを変換するために使用され
るレベル2ペイジテーブルエントリ(PTE)において
0である。
【0030】命令キャッシュ22がディスエーブルされ
ると、命令フェッチは、命令キャッシュ22をバイパス
し、且つ命令キャッシュ22の内容は影響を受けること
はない。該命令は、メインメモリから直接的に読取ら
れ、命令ローダー18によって部分的にデコードされて
エントリを形成し(それは、2つの部分的にデコードさ
れた命令を有する場合がある)、且つ実行のためにIL
BYPASSラインを介して、整数パイプライン2
4,26へ転送される。
【0031】図2に示した如く、命令キャッシュ22が
命令フェッチのためにイネーブルされると、プログラム
カウンタ(PC)によって供給される命令アドレスの8
個のビット、即ちビットPC(10:3)がデコードさ
れて、該命令を格納することが可能な場合に、エントリ
のセットを選択する。4つのエントリからなる該選択さ
れたセットが読取られ、且つそれと関連するタグが23
個の最大桁ビット、即ちPC(31:10)、及び該命
令の仮想アドレスの2つの最小桁ビットPC(1:0)
と比較される。該タグの内の1つがマッチ(一致)し且
つそのマッチするエントリが有効である場合には、該エ
ントリが、実行のために整数パイプライン24,26へ
転送するために選択される。そうでない場合には、以下
に説明する如く、喪失中の命令がメインメモリから直接
的に読取られ且つ部分的にデコードされる。
【0032】参照された命令が命令キャッシュ22から
喪失しており且つ該選択されたセットの内容が全てロッ
クされている場合には、該参照の取扱いは、命令キャッ
シュ22がディスエーブルされる場合に対して上述した
場合と同一である。
【0033】参照された命令が命令キャッシュ22から
喪失しており且つ選択されたセット内のエントリの少な
くとも1つがロックされていない場合には、以下の動作
が行なわれる。該エントリの内の1つが、最も最近でな
く使用された(LRU)置換アルゴリズムに従って置換
のために選択され、且つLRUポインタがアップデート
される。置換のために選択されたエントリがロックされ
ている場合には、該参照の取扱いは、命令キャッシュ2
2がディスエーブルされる場合に対して上述したものと
同一である。そうでない場合には、喪失中の命令が外部
メモリから直接的に読取られ次いで命令ローダー18に
よって部分的にデコードされてエントリを形成し(それ
は、2つの部分的にデコードされた命令を有する場合が
ある)、該命令は実行のために整数パイプライン24,
26へ転送される。この喪失中の命令を読取るためのバ
スサイクル期間中にCIINがアクティブ、即ち活性で
ない場合には、その部分的にデコードされた命令は、更
に、置換のために選択された命令キャッシュエントリ内
にも書込まれ、それと関連する有効ビットがセットさ
れ、且つコンフィギュレーションレジスタ内のロック−
命令−キャッシュビットCFG.LICが1である場合
に、該エントリはロックされる。
【0034】マイクロプロセサ10が外部メインメモリ
から喪失している命令をフェッチする動作を完了した後
に、逐次的な命令のプレフェッチ動作を継続して行な
う。爾後の逐次的な命令フェッチに対して、マイクロプ
ロセサ10は、命令キャッシュ22をサーチして、その
命令がオンチップに位置されているものか否かを決定す
る。そのサーチが成功するか又は非逐次的命令フェッチ
が発生すると、マイクロプロセサ10はプレフェッチ動
作を終了する。そうでない場合には、プレフェッチされ
た命令は、迅速的に、デコード動作及び実行のために使
用可能とされる。マイクロプロセサ10は、そうでない
場合には、オフチップデータ参照が必要とされないの
で、アイドル状態であるバスサイクル期間中においての
みプレフェッチを開始する。
【0035】命令を実行する必要性なしに、命令をフェ
ッチし且つそれを命令キャッシュ22内にロックさせる
ことが可能である。このことは、2つの命令のアドレス
がマッチするプログラムカウンタ値に対するデバッグト
ラップ(DBG)をイネーブルさせることによって達成
することが可能である。デバッグトラップは、このタイ
プの実行に対して適した動作を実施するサービスルーチ
ンである。DBGルーチンが終了すると、実行復帰(R
ETX)命令が実行されて、その例外が認識された点に
おいて命令の実行を再開する。その命令がフェッチされ
且つ、該トラップが処理される前に、命令キャッシュ3
2内に配置される。
【0036】命令キャッシュ22内にロックされている
命令が実行段階に到達し且つその命令に関するデバッグ
トラップがイネーブルされると、その命令を実行する代
わりに、プロセサはデバッグトラップサービスルーチン
へジャンプする。このサービスルーチンは、次の命令に
対するブレークポイントをセットすることが可能であ
り、従って、プロセサがこのサービスルーチンから復帰
すると、それは、次の命令を実行するのではなく、再度
デバッグトラップルーチンへ移行する。
【0037】上述したプロセスは、通常はシステムブー
トストラップの期間中に実行されるものであり、ユーザ
が命令キャッシュ22内にルーチンを格納し、それらを
ロックし、且つロックプロセス期間中にそれらを実行す
ることなしにそれらを操作のために準備させることを可
能とする。
【0038】マイクロプロセサ10のアーキテクチャ及
びそのキャッシュロック能力に関する更に詳細な説明
は、本願出願と同日付を持って出願された特許出願で、
発明者がAlpert et al.であり、発明の名
称が「マイクロプロセサのオンチップキャッシュ内のメ
モリ位置の選択的ロック(SELECTIVELY L
OCKING MEMORY LOCATIONS W
ITHIN A MICROPROCESSOR’S
ON−CHIP CACHE)」という特許出願に記載
されている。
【0039】命令キャッシュ22の内容はソフトウエア
によって又はハードウエアによって無効化させることが
可能である。命令キャッシュ22は以下の如くにソフト
ウエアによって無効化される。ロックされているエント
リを包含する全体的な命令キャッシュの内容は、コンフ
ィギュレーションレジスタのビットCFG.ICが0で
ある間に無効化される。LRU置換情報も、ビットCF
G.ICが0である間に、0へ初期化される。キャッシ
ュ無効化CINV命令は、命令キャッシュの内容全体を
無効化するために実行することが可能である。CINV
を実行することにより、そのキャッシュ全体、又はその
命令のLオプションに従ってロックされていないライン
のみの何れかを無効化させる。命令キャッシュ22の全
体は、INVIC 入力信号を活性化することによって
ハードウエアで無効化される。尚、本明細書において、
英文字記号の後にアンダーライン記号を付したものはそ
の記号の反転信号であることを表わしている。
【0040】図3は、命令キャッシュ22内に格納され
る部分的にデコードされたエントリを示した概略図であ
る。図3に示した如く、各エントリは、命令に対する2
つのスロットを有している。スロットAは、整数パイプ
ライン24及びデータキャッシュ30へのポートを制御
する。スロットBは、第二の整数パイプライン26、又
は浮動小数点ユニットの1つ又は制御転送命令を制御す
る。スロットBは、更に、データキャッシュ30へのポ
ートを制御することが可能であるが、それは、スロット
Aがデータキャッシュ30を使用していない場合におい
てのみである。上述した如く、命令ローダー18は、メ
インメモリ内のコンパクトなフォーマットからコード化
された命令を検索し、且つそれらの機能に従って、それ
らをスロットA及びB内に配置させる。
【0041】従って、本発明によれば、命令キャッシュ
22の新規な側面は、(1)キャッシュメモリ内に格納
するための部分的にデコードした命令、(2)機能に従
って命令を2つのキャッシュスロット内に配置させるこ
と、及び(3)並列的実行及び複雑命令のエミュレーシ
ョンを制御するために命令と共にキャッシュエントリ内
に補助情報を配置させることを包含している。
【0042】更に図3に示した如く、各命令キャッシュ
エントリ内のビットPは、スロットA及びB内の命令が
独立的であってそれらの命令は並列的に実行可能なもの
であるか、又はそれらが従属的なものであって逐次的に
実行されねばならないかを表わす。
【0043】並列的に実行することが可能な独立的命令
の一例は以下の如くである。 Load 4(R0),R1 ; Addcd 4,R0 一方、逐次的な実行を必要とする従属的命令の一例は以
下の如くである。 Addd R0,R1 ; Addd R1,R2 この目的のために単一のビットを使用することは、単一
のキャッシュエントリのスロット内に2つの従属的命令
を格納することを可能とし、そうでない場合には、これ
らの2つの命令は、別々のエントリ内に格納されねばな
らず、且つ命令キャッシュ22の半分のみがこれらの2
つのエントリにおいて使用されるに過ぎない。
【0044】図3は、更に、各命令キャッシュエントリ
内のビットGを示しており、そのビットは、スロットA
及びB内の命令がメインメモリからの単一の一層複雑な
命令をエミュレートするものであるか否かを表わす。例
えば、該ローダーは、単一の命令ADDD O(R
0),R1を、スロットA及びB内において以下の対の
命令へ変換し、且つ該エントリ内の逐次的及びエミュレ
ーションフラッグをセットする。 Load 0(R0),Temp ADDD Temp, R1
【0045】マイクロプロセサ10のパイプライン型組
織によれば、マイクロプロセサ10によって実行される
全ての命令は、一連のステージを介して移動する。2つ
の整数パイプライン24,26(図1)は、命令対に関
し並列的に動作することが可能である。整数ユニット2
4及び整数ユニット26は同一ではなく、整数ユニット
24において実行することが可能な命令は、整数ユニッ
ト26において実行することが可能なもののサブセット
である。
【0046】上述した如く、命令フェッチ動作は、デコ
ードした命令を命令キャッシュ22内に格納する命令ロ
ーダー18によって実施される。整数20パイプライン
は、実行のためにデコードされた命令対を受取る。
【0047】再度図3を参照すると、上述した如く、命
令対は2つのスロット、即ちスロットA及びスロットB
から構成されている。スロットAにおける命令は、整数
ユニット24に対してスケジュールされており、スロッ
トB内の命令は整数ユニット26に対してスケジュール
されている。同一の対に属する2つの命令は、整数パイ
プラインの1つのステージ(段)から次の段へ同時に前
進するが、スロットB内の命令が、以下に説明する如
く、パイプラインの命令デコードステージ(段)におい
て遅延される場合には、事情が異なる。この場合には、
整数パイプライン24内の命令は、次続のパイプライン
ステージに対して先行することが可能である。しかしな
がら、命令デコードステージがパイプラインユニット2
4及びパイプラインユニット26の両方において自由と
なるまで、新たな命令は該パイプラインにエンタするこ
とはできない。
【0048】ユニット24及びユニット26の命令は並
列的に実行されるが(ストールID−B命令の場合を除
いて)、スロットA命令は、常に、対応するスロットB
命令に対して論理的に先行し、且つ、スロットA命令が
例外のために完了することができない場合には、対応す
るスロットB命令は破棄される。
【0049】図4を参照すると、整数パイプラインユニ
ット24,26の各々は、4つのステージ、即ち命令デ
コードステージ(ID)、実行ステージ(EX)、メモ
リアクセスステージ(ME)及び結果格納ステージ(S
)を有している。
【0050】命令が、それがスケジュールされている整
数ユニットのIDステージ内に供給され、そこで、その
デコード動作が完了され且つレジスタソースオペランド
が読取られる。EXステージにおいては、マイクロプロ
セサ10の演算/論理ユニットが活性化されて、その命
令の結果を計算するか、又はロード/格納命令に対する
実効的メモリアドレスを計算する。MEステージにおい
ては、データキャッシュ30(図1)は、ロード/格納
命令によってアクセスされ、且つ例外条件がチェックさ
れる。STステージにおいては、結果がレジスタファイ
ルへ書込まれるか、又は格納命令の場合にはデータキャ
ッシュ30へ書込まれ、且つプログラムステータスレジ
スタ(PSR)フラッグがアップデートされる。このス
テージにおいて、その命令は、最早、やり直すことは不
可能である。
【0051】図4に更に示した如く、EXステージ及び
MEステージからの結果は、IDステージへフィードバ
ックさせることが可能であり、従って、1又は2サイク
ルの命令待ち時間を可能としている。
【0052】遅延が存在しない場合には、マイクロプロ
セサ10の二重実行パイプラインが、全てのクロックサ
イクルで新たな命令対を受付け(即ち、サイクル当たり
2つの命令のピークの処理能力)、且つ該パイプライン
に沿って1つのステージ下側に全てのその他の命令をス
クロールする。該二重パイプラインは、グローバルなス
トール(機能停止)メカニズムを有しており、それによ
り、危険性が検知される場合には、何れかの機能ユニッ
トが該パイプラインをストール、即ち機能停止させるこ
とが可能である。各々は、対応するステージをストール
させ、且つ更に1つのサイクルに対しそれに先行する全
てのステージをストールさせる。1つのステージがスト
ールすると、それは、別のサイクルに対しその中に現在
存在する命令を保持し、次いで正確にストールしなかっ
た場合における如く全てのステージの活動を再開始させ
る。
【0053】各命令が実行されるべきパイプラインユニ
ットは、命令がメインメモリからフェッチされる場合
に、命令ローダー18によってラン(稼動)時間におい
て決定される。命令ローダー18は、プレフェッチされ
た命令をデコードし、該命令を命令対エントリへパック
すべく試み、且つ該命令を二重パイプラインへ供給す
る。命令キャッシュ22がイネーブルされると(上述し
た如く)、キャッシュ可能な命令が命令キャッシュ22
内に格納させることが可能である。この場合において
は、命令対又は単一の命令を有するエントリも、命令キ
ャッシュ22へ送給され、且つそこにおいて単一のキャ
ッシュエントリとして格納される。命令キャッシュのヒ
ットの場合には、格納されている命令対が命令キャッシ
ュ22から検索され且つ実行のために二重パイプライン
へ供給される。
【0054】命令ローダー18は、可能な場合には何時
でも命令を対構成にパックすべく試みる。2つの命令を
1つのエントリへパックすることは、最初の命令が整数
パイプラインユニット24によって実行することが可能
であり且つ両方の命令が予め選択した最大長未満のもの
である場合においてのみ可能である。2つの命令を1つ
の対にパックすることが不可能な場合には、単一の命令
をスロットB内に配置させる。
【0055】2つの命令は、以下の全ての条件が成立す
る場合にのみ対構成とさせることが可能である。即ち、
(1)両方の命令が性能臨界的コア命令であり、(2)
最初の命令が整数パイプラインユニット24によって実
行可能であり、且つ(3)両方の命令における変位及び
即時フィールドが短いエンコーディングを使用するもの
であること(分岐命令以外の全ての命令に対する短いエ
ンコーディングは11ビットであり、且つ条件付分岐及
び分岐及びリンク命令に対しては17ビットである)。
【0056】マイクロプロセサ10命令セットの幾つか
の命令は、整数パイプラインユニット26上においての
みラン(稼動)することに制限されている。例えば、命
令キャッシュ22内の命令対はスロットAアドレスによ
ってタグがつけられているので、スロットA内に分岐命
令を入れることは有用ではない。なぜならば、対応する
スロットB命令はアクセス可能ではないからである。同
様に、単一の演算浮動小数点パイプが存在する場合に
は、2つの演算浮動小数点命令を並列的に実行すること
は不可能である。これらの命令を整数パイプラインユニ
ット26へ制限することは、性能を損傷することなし
に、二重パイプラインデータ経路構成を著しく簡単化す
ることを可能とする。
【0057】整数ユニット26は、マイクロプロセサ1
0の命令セット内の任意の命令を実行することが可能で
ある。命令ローダー18は、命令キャッシュのミスが発
生する場合に命令の対構成を開始し、その場合に、命令
を命令キューへプレフェッチ動作することを開始する。
並列的に、命令ローダー18は、命令キューから未だに
除去されていない次の命令を検査し、且つ以下のアルゴ
リズムに従ってそれをパックする試みを行なう。
【0058】ステップ1:次の命令をスロットA内にフ
ィットすべく試みる。 (a)次の命令が性能臨界的でない場合には、ステップ
5へ移行する。 (b)命令キューから次の命令を除去し且つ暫定的にそ
れをスロットA内に配置させる。 (c)その命令がスロットAに対して合法的でないか又
はその命令が11ビットで表わすことが不可能な即時/
変位フィールドを有しているか、又はその命令がクワッ
ド(四重)ワード整合型ではない場合には、ステップ4
へ移行する。 (d)そうでない場合には、ステップ2へ続行する。
【0059】ステップ2:次の命令をスロットB内へフ
ィットさせるべく試みる。 (a)次の命令が性能臨界的でないか、又は次の命令が
11ビットよりも長いコード化された即時/変位フィー
ルドを有しているか、又は次の命令が17ビットよりも
長い変位を有する分岐である場合には、ステップ4へ移
行する。 (b)そうでない場合には、命令キューから次の命令を
除去し、それをスロットB内へ配置させ、且つステップ
3へ移行する。
【0060】ステップ3:命令対エントリの構成。 この場合には、スロットA及びスロットBの両方が有効
な命令を有しており、且つ全ての対構成条件が満足され
ている。対エントリを発行し且つステップ1へ移行す
る。
【0061】ステップ4:単一命令エントリの構成。 この場合には、スロットAは対構成とすることが不可能
な命令を有している。この命令をスロットBへ移動させ
る。この命令が17ビットよりも長い即時/変位フィー
ルドを有しているか、又はそれが17ビットよりも長い
変位を有する分岐であり且つクワッド(四重)ワード整
合型ではない場合には、それをUNDefined(不
定)と置換する。該エントリを発行し且つステップ1へ
移行する。
【0062】ステップ5:非性能臨界的命令の取扱い。 命令キューから次の命令を取除き且つそれを命令エミュ
レータ20へ送給する。この命令を終了すると、ステッ
プ1へ移行する。
【0063】上述した対構成(ペアリング)アルゴリズ
ムは、2つの命令を単一の命令キャッシュエントリ内に
保持することが可能である場合には何時でも、2つの命
令をパックさせる。しかしながら、これらの命令は、従
属性のものである場合があり、その場合には、それらの
命令を並列的に実行させることはできない。このような
従属性は、実行プロセサ14によって検知される。
【0064】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図面の簡単な説明】
【図1】 本発明の概念を組込んだマイクロプロセサア
ーキテクチャを示したブロック図。
【図2】 図1のアーキテクチャにおいて使用される部
分的にデコードされた命令キャッシュの構成を示したブ
ロック図。
【図3】 図2に示した命令キャッシュに格納される部
分的にデコードされたエントリを示した概略図。
【図4】 図1に示したマイクロプロセサアーキテクチ
ャにおいて使用される整数パイプラインの構成を示した
ブロック図。
【符号の説明】
10 マイクロプロセサ 12 命令プロセサ 14 実行プロセサ 16 バスインターフェースプロセサ 18 命令ローダー 20 命令エミュレータ 22 命令キャッシュ 24,26 パイプライン型整数実行ユニット 28 浮動小数点実行ユニット 30 データキャッシュ 34 浮動小数点レジスタ 36 バスインターフェースユニット 38 システムモジュール 40 タイマ 42 DMAコントローラ 44 インタラプト制御ユニット 46 I/Oバッファ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラン タルムディ イスラエル国, ラーナナ, ハコハー ブ ストリート 42 (72)発明者 ドロール アブノン イスラエル国, ネターニャ, ラマッ ト ポレグ. ハハザビム ストリート 3 (72)発明者 ギデオン ユーバル イスラエル国, エルサレム, ホベベ イ ジオン20 (72)発明者 ヤイール ベイダッチ イスラエル国, テル アビブ, ネオ ット アフェカ, カヒラット パデュ ーバ 25/9 (72)発明者 アモス ベン−メイール イスラエル国, ラマット アビブ, ダニエル モリッツ ストリート 24 /1 (72)発明者 ドン アルパート イスラエル国, ヘルヅリア, ハナデ ィブ ストリート 62 (72)発明者 オベッド オズ イスラエル国, クファール サバ, ハバニム 3 (72)発明者 ギデオン イントラター イスラエル国, ラマット ガン, シ ャーレットストリート 46 (72)発明者 ルーベン マルコ イスラエル国, ナターニャ, ハシー バ ストリート 14/15 (72)発明者 アーロン シャチャム イスラエル国, テル−アビブ, ナー タン ハハハム ストリート 8 (72)発明者 ヅビ グリーンフェルド イスラエル国, クファール サバ, ハマアピリム ストリート 8/6 (56)参考文献 特開 昭62−235658(JP,A) 特開 平2−130635(JP,A) 特開 昭58−99868(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/38

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】エンコードされる命令がマイクロプロセサ
    外部であり且つシステムバスを介してマイクロプロセサ
    へ接続可能なメインメモリから検索され、マイクロプロ
    セサがシステムクロックサイクル当り1個を超える命令
    の割合で命令を実行するように第1及び第2の実行ユニ
    ットの各々が他方による命令の実行と並列的に命令を実
    行することによってシステムクロック信号の周期的なサ
    イクルに応答するように少なくとも第1及び第2の実行
    ユニットを具備するマイクロプロセサにおいて、 各個別的な命令キャッシュエントリが第1の部分的にデ
    コードした命令を格納する第1格納スロット及び第2の
    部分的にデコードした命令を格納する第2格納スロット
    を具備している複数個の個別的な命令キャッシュエント
    リを有している命令キャッシュ、 前記システムバスへ接続されており、前記外部メインメ
    モリからの第1及び第2のエンコードした命令を逐次的
    に検索するバスインターフェースユニット、 前記バスインターフェースユニットへ接続されており、
    前記第1のエンコードした命令を第1の部分的にデコー
    ドした命令へ及び前記第2のエンコードした命令を第2
    の部分的にデコードした命令へ逐次的に変換し、且つ前
    記命令キャッシュへ接続されていて、前記第1及び第2
    の部分的にデコードした命令を選択した命令キャッシュ
    エントリの前記第1及び第2格納スロットへ夫々逐次的
    に格納させる命令ローダー、 を有していることを特徴とするマイクロプロセサ。
  2. 【請求項2】請求項1において、前記選択した命令キャ
    ッシュエントリが、前記命令ローダーから受け取られた
    ものであり且つ前記第1のエンコードした命令及び前記
    第2のエンコードした命令の長さを表す補助情報を格納
    する補助格納空間を有していることを特徴とするマイク
    ロプロセサ。
  3. 【請求項3】請求項1において、前記第1の実行ユニッ
    トが前記選択した命令キャッシュエントリの第1格納ス
    ロットから前記第1の部分的にデコードした命令を受け
    取るべく接続されており、且つ前記第2の実行ユニット
    が、前記第1の実行ユニットによる前記第1の部分的に
    デコードした命令の受け取りと並列的に、前記選択した
    命令キャッシュエントリの第2格納スロットから前記第
    2の部分的にデコードした命令を受け取るべく接続され
    ていることを特徴とするマイクロプロセサ。
  4. 【請求項4】請求項1において、前記外部メインメモリ
    内に格納されている命令が、エンコードされたコア命令
    とエンコードされた非コア命令とを有しており、命令エ
    ミュレータが前記システムバスへ接続されており且つ前
    記第1及び第2命令ユニットの内の選択した一つによっ
    て実行するための部分的にデコードしたコア命令の対応
    するシーケンスを発生することによって前記外部メイン
    メモリから検索されたエンコードされた非コア命令に応
    答することを特徴とするマイクロプロセサ。
  5. 【請求項5】請求項1において、前記命令ローダーが、
    前記第1及び第2の部分的にデコードした命令を並列的
    に実行するように独立的なものであるか、又は前記第1
    及び第2の部分的にデコードした命令を逐次的に実行す
    るように従属的なものであるかを決定する比較メカニズ
    ムを有していることを特徴とするマイクロプロセサ。
  6. 【請求項6】請求項5において、前記選択した命令キャ
    ッシュエントリが、前記命令ローダーから受け取られた
    ものであり且つ前記第1及び第2の部分的にデコードさ
    れた命令が独立的であるか又は従属的であるかを表す補
    助情報を格納する補助格納空間を有していることを特徴
    とするマイクロプロセサ。
JP22540291A 1990-05-29 1991-05-29 部分的にデコードした命令キャッシュ Expired - Fee Related JP3186798B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52986990A 1990-05-29 1990-05-29
US529869 1990-05-29

Publications (2)

Publication Number Publication Date
JPH0553795A JPH0553795A (ja) 1993-03-05
JP3186798B2 true JP3186798B2 (ja) 2001-07-11

Family

ID=24111573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22540291A Expired - Fee Related JP3186798B2 (ja) 1990-05-29 1991-05-29 部分的にデコードした命令キャッシュ

Country Status (4)

Country Link
US (2) US5481751A (ja)
EP (1) EP0459232B1 (ja)
JP (1) JP3186798B2 (ja)
DE (1) DE69130588T2 (ja)

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2810068B2 (ja) 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
EP0650612B1 (en) * 1992-03-25 1999-08-18 Zilog Incorporated Fast instruction decoding in a pipeline processor
US5438668A (en) 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
US5974508A (en) * 1992-07-31 1999-10-26 Fujitsu Limited Cache memory system and method for automatically locking cache entries to prevent selected memory items from being replaced
EP0586057B1 (en) * 1992-08-31 2000-03-01 Sun Microsystems, Inc. Rapid instruction (pre)fetching and dispatching using prior (pre)fetch predictive annotations
JP3417984B2 (ja) * 1993-09-10 2003-06-16 株式会社日立製作所 キャッシュ競合削減コンパイル方法
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
DE69427265T2 (de) * 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
DE69427734T2 (de) 1993-10-29 2002-05-23 Advanced Micro Devices Inc Linearadressierter Mikroprozessorcachespeicher
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
DE69434669T2 (de) * 1993-10-29 2006-10-12 Advanced Micro Devices, Inc., Sunnyvale Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
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
US5974534A (en) * 1994-02-14 1999-10-26 Hewlett-Packard Company Predecoding and steering mechanism for instructions in a superscalar processor
US6006324A (en) * 1995-01-25 1999-12-21 Advanced Micro Devices, Inc. High performance superscalar alignment unit
US5878244A (en) * 1995-01-25 1999-03-02 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received
US5819057A (en) * 1995-01-25 1998-10-06 Advanced Micro Devices, Inc. Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units
US6237082B1 (en) 1995-01-25 2001-05-22 Advanced Micro Devices, Inc. Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received
US5903741A (en) * 1995-01-25 1999-05-11 Advanced Micro Devices, Inc. Method of allocating a fixed reorder buffer storage line for execution results regardless of a number of concurrently dispatched instructions
US5901302A (en) * 1995-01-25 1999-05-04 Advanced Micro Devices, Inc. Superscalar microprocessor having symmetrical, fixed issue positions each configured to execute a particular subset of instructions
US5832249A (en) * 1995-01-25 1998-11-03 Advanced Micro Devices, Inc. High performance superscalar alignment unit
US5742784A (en) * 1995-01-25 1998-04-21 International Business Machines Corporation System for reordering of instructions before placement into cache to reduce dispatch latency
US5632028A (en) * 1995-03-03 1997-05-20 Hal Computer Systems, Inc. Hardware support for fast software emulation of unimplemented instructions
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US5802588A (en) * 1995-04-12 1998-09-01 Advanced Micro Devices, Inc. Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US5822558A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte-length instructions within a superscalar microprocessor
US5887152A (en) * 1995-04-12 1999-03-23 Advanced Micro Devices, Inc. Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions
US5758114A (en) * 1995-04-12 1998-05-26 Advanced Micro Devices, Inc. High speed instruction alignment unit for aligning variable byte-length instructions according to predecode information in a superscalar microprocessor
US5835753A (en) * 1995-04-12 1998-11-10 Advanced Micro Devices, Inc. Microprocessor with dynamically extendable pipeline stages and a classifying circuit
US5822574A (en) * 1995-04-12 1998-10-13 Advanced Micro Devices, Inc. Functional unit with a pointer for mispredicted resolution, and a superscalar microprocessor employing the same
US5819059A (en) * 1995-04-12 1998-10-06 Advanced Micro Devices, Inc. Predecode unit adapted for variable byte-length instruction set processors and method of operating the same
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5832297A (en) * 1995-04-12 1998-11-03 Advanced Micro Devices, Inc. Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations
US5764946A (en) * 1995-04-12 1998-06-09 Advanced Micro Devices Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address
US5900012A (en) * 1995-05-10 1999-05-04 Advanced Micro Devices, Inc. Storage device having varying access times and a superscalar microprocessor employing the same
US5768574A (en) * 1995-06-07 1998-06-16 Advanced Micro Devices, Inc. Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor
US5680578A (en) * 1995-06-07 1997-10-21 Advanced Micro Devices, Inc. Microprocessor using an instruction field to specify expanded functionality and a computer system employing same
US5768610A (en) * 1995-06-07 1998-06-16 Advanced Micro Devices, Inc. Lookahead register value generator and a superscalar microprocessor employing same
US5875315A (en) * 1995-06-07 1999-02-23 Advanced Micro Devices, Inc. Parallel and scalable instruction scanning unit
US5761712A (en) * 1995-06-07 1998-06-02 Advanced Micro Devices Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
US5875324A (en) * 1995-06-07 1999-02-23 Advanced Micro Devices, Inc. Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock
US6604190B1 (en) 1995-06-07 2003-08-05 Advanced Micro Devices, Inc. Data address prediction structure and a method for operating the same
US5859991A (en) * 1995-06-07 1999-01-12 Advanced Micro Devices, Inc. Parallel and scalable method for identifying valid instructions and a superscalar microprocessor including an instruction scanning unit employing the method
US5822778A (en) * 1995-06-07 1998-10-13 Advanced Micro Devices, Inc. Microprocessor and method of using a segment override prefix instruction field to expand the register file
US5878255A (en) * 1995-06-07 1999-03-02 Advanced Micro Devices, Inc. Update unit for providing a delayed update to a branch prediction array
US5987561A (en) 1995-08-31 1999-11-16 Advanced Micro Devices, Inc. Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle
US5893146A (en) * 1995-08-31 1999-04-06 Advanced Micro Design, Inc. Cache structure having a reduced tag comparison to enable data transfer from said cache
US5845323A (en) * 1995-08-31 1998-12-01 Advanced Micro Devices, Inc. Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time
US5752069A (en) * 1995-08-31 1998-05-12 Advanced Micro Devices, Inc. Superscalar microprocessor employing away prediction structure
US5781789A (en) * 1995-08-31 1998-07-14 Advanced Micro Devices, Inc. Superscaler microprocessor employing a parallel mask decoder
US5826071A (en) * 1995-08-31 1998-10-20 Advanced Micro Devices, Inc. Parallel mask decoder and method for generating said mask
US5854921A (en) * 1995-08-31 1998-12-29 Advanced Micro Devices, Inc. Stride-based data address prediction structure
US5860104A (en) * 1995-08-31 1999-01-12 Advanced Micro Devices, Inc. Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5881278A (en) * 1995-10-30 1999-03-09 Advanced Micro Devices, Inc. Return address prediction system which adjusts the contents of return stack storage to enable continued prediction after a mispredicted branch
US5892936A (en) * 1995-10-30 1999-04-06 Advanced Micro Devices, Inc. Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register
US5933618A (en) * 1995-10-30 1999-08-03 Advanced Micro Devices, Inc. Speculative register storage for storing speculative results corresponding to register updated by a plurality of concurrently recorded instruction
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5787474A (en) * 1995-11-20 1998-07-28 Advanced Micro Devices, Inc. Dependency checking structure for a pair of caches which are accessed from different pipeline stages of an instruction processing pipeline
US5765035A (en) * 1995-11-20 1998-06-09 Advanced Micro Devices, Inc. Recorder buffer capable of detecting dependencies between accesses to a pair of caches
US5835744A (en) * 1995-11-20 1998-11-10 Advanced Micro Devices, Inc. Microprocessor configured to swap operands in order to minimize dependency checking logic
US5903910A (en) * 1995-11-20 1999-05-11 Advanced Micro Devices, Inc. Method for transferring data between a pair of caches configured to be accessed from different stages of an instruction processing pipeline
US5864707A (en) 1995-12-11 1999-01-26 Advanced Micro Devices, Inc. Superscalar microprocessor configured to predict return addresses from a return stack storage
US5930490A (en) * 1996-01-02 1999-07-27 Advanced Micro Devices, Inc. Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions
US5819080A (en) * 1996-01-02 1998-10-06 Advanced Micro Devices, Inc. Microprocessor using an instruction field to specify condition flags for use with branch instructions and a computer system employing the microprocessor
US5822559A (en) * 1996-01-02 1998-10-13 Advanced Micro Devices, Inc. Apparatus and method for aligning variable byte-length instructions to a plurality of issue positions
US5742791A (en) * 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
US5787266A (en) * 1996-02-20 1998-07-28 Advanced Micro Devices, Inc. Apparatus and method for accessing special registers without serialization
US5687110A (en) * 1996-02-20 1997-11-11 Advanced Micro Devices, Inc. Array having an update circuit for updating a storage location with a value stored in another storage location
US5848287A (en) 1996-02-20 1998-12-08 Advanced Micro Devices, Inc. Superscalar microprocessor including a reorder buffer which detects dependencies between accesses to a pair of caches
US5715425A (en) * 1996-02-22 1998-02-03 Sun Microsystems, Inc. Apparatus and method for prefetching data into an external cache
US5813033A (en) * 1996-03-08 1998-09-22 Advanced Micro Devices, Inc. Superscalar microprocessor including a cache configured to detect dependencies between accesses to the cache and another cache
US5790821A (en) * 1996-03-08 1998-08-04 Advanced Micro Devices, Inc. Control bit vector storage for storing control vectors corresponding to instruction operations in a microprocessor
US5838943A (en) * 1996-03-26 1998-11-17 Advanced Micro Devices, Inc. Apparatus for speculatively storing and restoring data to a cache memory
US5752259A (en) * 1996-03-26 1998-05-12 Advanced Micro Devices, Inc. Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache
US6085302A (en) * 1996-04-17 2000-07-04 Advanced Micro Devices, Inc. Microprocessor having address generation units for efficient generation of memory operation addresses
US5835968A (en) * 1996-04-17 1998-11-10 Advanced Micro Devices, Inc. Apparatus for providing memory and register operands concurrently to functional units
US6108769A (en) 1996-05-17 2000-08-22 Advanced Micro Devices, Inc. Dependency table for reducing dependency checking hardware
US5835511A (en) * 1996-05-17 1998-11-10 Advanced Micro Devices, Inc. Method and mechanism for checking integrity of byte enable signals
US5918056A (en) * 1996-05-17 1999-06-29 Advanced Micro Devices, Inc. Segmentation suspend mode for real-time interrupt support
US5748978A (en) * 1996-05-17 1998-05-05 Advanced Micro Devices, Inc. Byte queue divided into multiple subqueues for optimizing instruction selection logic
US5822560A (en) * 1996-05-23 1998-10-13 Advanced Micro Devices, Inc. Apparatus for efficient instruction execution via variable issue and variable control vectors per issue
US6006320A (en) * 1996-07-01 1999-12-21 Sun Microsystems, Inc. Processor architecture with independent OS resources
US5813045A (en) * 1996-07-24 1998-09-22 Advanced Micro Devices, Inc. Conditional early data address generation mechanism for a microprocessor
US5903740A (en) * 1996-07-24 1999-05-11 Advanced Micro Devices, Inc. Apparatus and method for retiring instructions in excess of the number of accessible write ports
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5872943A (en) * 1996-07-26 1999-02-16 Advanced Micro Devices, Inc. Apparatus for aligning instructions using predecoded shift amounts
US5872951A (en) * 1996-07-26 1999-02-16 Advanced Micro Design, Inc. Reorder buffer having a future file for storing speculative instruction execution results
US5915110A (en) * 1996-07-26 1999-06-22 Advanced Micro Devices, Inc. Branch misprediction recovery in a reorder buffer having a future file
US5900013A (en) * 1996-07-26 1999-05-04 Advanced Micro Devices, Inc. Dual comparator scheme for detecting a wrap-around condition and generating a cancel signal for removing wrap-around buffer entries
US5946468A (en) * 1996-07-26 1999-08-31 Advanced Micro Devices, Inc. Reorder buffer having an improved future file for storing speculative instruction execution results
US5822575A (en) * 1996-09-12 1998-10-13 Advanced Micro Devices, Inc. Branch prediction storage for storing branch prediction information such that a corresponding tag may be routed with the branch instruction
US5765016A (en) * 1996-09-12 1998-06-09 Advanced Micro Devices, Inc. Reorder buffer configured to store both speculative and committed register states
US5794028A (en) * 1996-10-17 1998-08-11 Advanced Micro Devices, Inc. Shared branch prediction structure
US5920710A (en) * 1996-11-18 1999-07-06 Advanced Micro Devices, Inc. Apparatus and method for modifying status bits in a reorder buffer with a large speculative state
US5870579A (en) * 1996-11-18 1999-02-09 Advanced Micro Devices, Inc. Reorder buffer including a circuit for selecting a designated mask corresponding to an instruction that results in an exception
US5954816A (en) * 1996-11-19 1999-09-21 Advanced Micro Devices, Inc. Branch selector prediction
US5995749A (en) * 1996-11-19 1999-11-30 Advanced Micro Devices, Inc. Branch prediction mechanism employing branch selectors to select a branch prediction
US5978906A (en) 1996-11-19 1999-11-02 Advanced Micro Devices, Inc. Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions
US6175906B1 (en) 1996-12-06 2001-01-16 Advanced Micro Devices, Inc. Mechanism for fast revalidation of virtual tags
US5887160A (en) * 1996-12-10 1999-03-23 Fujitsu Limited Method and apparatus for communicating integer and floating point data over a shared data path in a single instruction pipeline processor
US5881305A (en) * 1996-12-13 1999-03-09 Advanced Micro Devices, Inc. Register rename stack for a microprocessor
US5870580A (en) * 1996-12-13 1999-02-09 Advanced Micro Devices, Inc. Decoupled forwarding reorder buffer configured to allocate storage in chunks for instructions having unresolved dependencies
EP0855648A3 (en) * 1997-01-24 1999-12-22 Texas Instruments Inc. Data processing with parallel or sequential execution of program instructions
US5923862A (en) * 1997-01-28 1999-07-13 Samsung Electronics Co., Ltd. Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions
US5983321A (en) * 1997-03-12 1999-11-09 Advanced Micro Devices, Inc. Cache holding register for receiving instruction packets and for providing the instruction packets to a predecode unit and instruction cache
US5862065A (en) * 1997-02-13 1999-01-19 Advanced Micro Devices, Inc. Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer
US5768555A (en) * 1997-02-20 1998-06-16 Advanced Micro Devices, Inc. Reorder buffer employing last in buffer and last in line bits
US6141740A (en) * 1997-03-03 2000-10-31 Advanced Micro Devices, Inc. Apparatus and method for microcode patching for generating a next address
US6233672B1 (en) 1997-03-06 2001-05-15 Advanced Micro Devices, Inc. Piping rounding mode bits with floating point instructions to eliminate serialization
US5968163A (en) 1997-03-10 1999-10-19 Advanced Micro Devices, Inc. Microcode scan unit for scanning microcode instructions using predecode data
US5852727A (en) * 1997-03-10 1998-12-22 Advanced Micro Devices, Inc. Instruction scanning unit for locating instructions via parallel scanning of start and end byte information
US5850532A (en) * 1997-03-10 1998-12-15 Advanced Micro Devices, Inc. Invalid instruction scan unit for detecting invalid predecode data corresponding to instructions being fetched
US5859992A (en) * 1997-03-12 1999-01-12 Advanced Micro Devices, Inc. Instruction alignment using a dispatch list and a latch list
US5859998A (en) * 1997-03-19 1999-01-12 Advanced Micro Devices, Inc. Hierarchical microcode implementation of floating point instructions for a microprocessor
US5828873A (en) * 1997-03-19 1998-10-27 Advanced Micro Devices, Inc. Assembly queue for a floating point unit
US5887185A (en) * 1997-03-19 1999-03-23 Advanced Micro Devices, Inc. Interface for coupling a floating point unit to a reorder buffer
US5930492A (en) * 1997-03-19 1999-07-27 Advanced Micro Devices, Inc. Rapid pipeline control using a control word and a steering word
US5963723A (en) * 1997-03-26 1999-10-05 International Business Machines Corporation System for pairing dependent instructions having non-contiguous addresses during dispatch
US5987235A (en) * 1997-04-04 1999-11-16 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for fast scanning of instructions
TW384445B (en) * 1997-04-11 2000-03-11 Ibm Method for bursting processor data to or from an I/O device
US5901076A (en) * 1997-04-16 1999-05-04 Advanced Micro Designs, Inc. Ripple carry shifter in a floating point arithmetic unit of a microprocessor
US6003128A (en) * 1997-05-01 1999-12-14 Advanced Micro Devices, Inc. Number of pipeline stages and loop length related counter differential based end-loop prediction
US6122729A (en) 1997-05-13 2000-09-19 Advanced Micro Devices, Inc. Prefetch buffer which stores a pointer indicating an initial predecode position
US5845101A (en) * 1997-05-13 1998-12-01 Advanced Micro Devices, Inc. Prefetch buffer for storing instructions prior to placing the instructions in an instruction cache
US5940602A (en) * 1997-06-11 1999-08-17 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
US6009511A (en) * 1997-06-11 1999-12-28 Advanced Micro Devices, Inc. Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers
US6073230A (en) * 1997-06-11 2000-06-06 Advanced Micro Devices, Inc. Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches
US5872946A (en) * 1997-06-11 1999-02-16 Advanced Micro Devices, Inc. Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch
US5933629A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for detecting microbranches early
US5898865A (en) * 1997-06-12 1999-04-27 Advanced Micro Devices, Inc. Apparatus and method for predicting an end of loop for string instructions
US5983337A (en) * 1997-06-12 1999-11-09 Advanced Micro Devices, Inc. Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction
US5933626A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions
US6012125A (en) * 1997-06-20 2000-01-04 Advanced Micro Devices, Inc. Superscalar microprocessor including a decoded instruction cache configured to receive partially decoded instructions
US5948098A (en) * 1997-06-30 1999-09-07 Sun Microsystems, Inc. Execution unit and method for executing performance critical and non-performance critical arithmetic instructions in separate pipelines
US5978901A (en) * 1997-08-21 1999-11-02 Advanced Micro Devices, Inc. Floating point and multimedia unit with data type reclassification capability
US6101577A (en) * 1997-09-15 2000-08-08 Advanced Micro Devices, Inc. Pipelined instruction cache and branch prediction mechanism therefor
US5931943A (en) * 1997-10-21 1999-08-03 Advanced Micro Devices, Inc. Floating point NaN comparison
US6185675B1 (en) 1997-10-24 2001-02-06 Advanced Micro Devices, Inc. Basic block oriented trace cache utilizing a basic block sequence buffer to indicate program order of cached basic blocks
US6032252A (en) * 1997-10-28 2000-02-29 Advanced Micro Devices, Inc. Apparatus and method for efficient loop control in a superscalar microprocessor
US5974542A (en) * 1997-10-30 1999-10-26 Advanced Micro Devices, Inc. Branch prediction unit which approximates a larger number of branch predictions using a smaller number of branch predictions and an alternate target indication
US6230259B1 (en) 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6157996A (en) * 1997-11-13 2000-12-05 Advanced Micro Devices, Inc. Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space
US6199154B1 (en) 1997-11-17 2001-03-06 Advanced Micro Devices, Inc. Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access
US6079005A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Microprocessor including virtual address branch prediction and current page register to provide page portion of virtual and physical fetch address
US6516395B1 (en) 1997-11-20 2003-02-04 Advanced Micro Devices, Inc. System and method for controlling access to a privilege-partitioned address space with a fixed set of attributes
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6079003A (en) * 1997-11-20 2000-06-20 Advanced Micro Devices, Inc. Reverse TLB for providing branch target address in a microprocessor having a physically-tagged cache
US5974432A (en) * 1997-12-05 1999-10-26 Advanced Micro Devices, Inc. On-the-fly one-hot encoding of leading zero count
GB2332075B (en) * 1997-12-06 2002-08-07 Mitel Corp Optimized instruction storage and distribution for parallel processors architectures
US5870578A (en) * 1997-12-09 1999-02-09 Advanced Micro Devices, Inc. Workload balancing in a microprocessor for reduced instruction dispatch stalling
US6097716A (en) * 1997-12-12 2000-08-01 Lucent Technologies Inc. Rate detection for multi-rate communications
US6157986A (en) * 1997-12-16 2000-12-05 Advanced Micro Devices, Inc. Fast linear tag validation unit for use in microprocessor
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
US6016545A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Reduced size storage apparatus for storing cache-line-related data in a high frequency microprocessor
US6112018A (en) * 1997-12-18 2000-08-29 Advanced Micro Devices, Inc. Apparatus for exchanging two stack registers
US6112296A (en) * 1997-12-18 2000-08-29 Advanced Micro Devices, Inc. Floating point stack manipulation using a register map and speculative top of stack values
US6018798A (en) * 1997-12-18 2000-01-25 Advanced Micro Devices, Inc. Floating point unit using a central window for storing instructions capable of executing multiple instructions in a single clock cycle
US6175908B1 (en) 1998-04-30 2001-01-16 Advanced Micro Devices, Inc. Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US6256727B1 (en) 1998-05-12 2001-07-03 International Business Machines Corporation Method and system for fetching noncontiguous instructions in a single clock cycle
US6275924B1 (en) 1998-09-15 2001-08-14 Texas Instruments Incorporated System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time
JP3798180B2 (ja) * 1998-05-21 2006-07-19 テキサス インスツルメンツ インコーポレイテツド プロセッサにおいて命令をバッファリングする方法およびシステム
US6119223A (en) * 1998-07-31 2000-09-12 Advanced Micro Devices, Inc. Map unit having rapid misprediction recovery
US6230262B1 (en) 1998-07-31 2001-05-08 Advanced Micro Devices, Inc. Processor configured to selectively free physical registers upon retirement of instructions
US6122656A (en) * 1998-07-31 2000-09-19 Advanced Micro Devices, Inc. Processor configured to map logical register numbers to physical register numbers using virtual register numbers
US6339822B1 (en) 1998-10-02 2002-01-15 Advanced Micro Devices, Inc. Using padded instructions in a block-oriented cache
US6223254B1 (en) 1998-12-04 2001-04-24 Stmicroelectronics, Inc. Parcel cache
US6546478B1 (en) 1999-10-14 2003-04-08 Advanced Micro Devices, Inc. Line predictor entry with location pointers and control information for corresponding instructions in a cache line
US6636959B1 (en) 1999-10-14 2003-10-21 Advanced Micro Devices, Inc. Predictor miss decoder updating line predictor storing instruction fetch address and alignment information upon instruction decode termination condition
US6647490B2 (en) 1999-10-14 2003-11-11 Advanced Micro Devices, Inc. Training line predictor for branch targets
US6351802B1 (en) * 1999-12-03 2002-02-26 Intel Corporation Method and apparatus for constructing a pre-scheduled instruction cache
US6748492B1 (en) 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6877084B1 (en) 2000-08-09 2005-04-05 Advanced Micro Devices, Inc. Central processing unit (CPU) accessing an extended register set in an extended register mode
US6981132B2 (en) 2000-08-09 2005-12-27 Advanced Micro Devices, Inc. Uniform register addressing using prefix byte
US6738792B1 (en) 2001-03-09 2004-05-18 Advanced Micro Devices, Inc. Parallel mask generator
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
GB2381602B (en) * 2001-10-12 2004-04-14 Siroyan Ltd Early resolving instructions
US20030196072A1 (en) * 2002-04-11 2003-10-16 Chinnakonda Murali S. Digital signal processor architecture for high computation speed
US7266587B2 (en) 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
JP2004013602A (ja) * 2002-06-07 2004-01-15 Handotai Rikougaku Kenkyu Center:Kk データ駆動プロセッサのエミュレーションシステム
GB2393274B (en) * 2002-09-20 2006-03-15 Advanced Risc Mach Ltd Data processing system having an external instruction set and an internal instruction set
US7117290B2 (en) 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US20050138331A1 (en) * 2003-12-22 2005-06-23 Alberola Carl A. Direct memory access unit with instruction pre-decoder
US7685410B2 (en) 2007-02-13 2010-03-23 Global Foundries Inc. Redirect recovery cache that receives branch misprediction redirects and caches instructions to be dispatched in response to the redirects
US8578387B1 (en) * 2007-07-31 2013-11-05 Nvidia Corporation Dynamic load balancing of instructions for execution by heterogeneous processing engines
US9304775B1 (en) 2007-11-05 2016-04-05 Nvidia Corporation Dispatching of instructions for execution by heterogeneous processing engines
US9124233B2 (en) * 2010-08-25 2015-09-01 Vixs Systems, Inc Audio equalizer and methods for use therewith
US9430243B2 (en) * 2012-04-30 2016-08-30 Apple Inc. Optimizing register initialization operations
US9405690B2 (en) 2013-08-07 2016-08-02 Oracle International Corporation Method for storing modified instruction data in a shared cache
US10311191B2 (en) 2017-01-26 2019-06-04 Advanced Micro Devices, Inc. Memory including side-car arrays with irregular sized entries
US11100001B2 (en) 2017-05-04 2021-08-24 Sisense Ltd. Techniques for improving space utilization in a cache

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
US4646233A (en) * 1984-06-20 1987-02-24 Weatherford James R Physical cache unit for computer
US4620275A (en) * 1984-06-20 1986-10-28 Wallach Steven J Computer system
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US4933837A (en) * 1986-12-01 1990-06-12 Advanced Micro Devices, Inc. Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
JP2810068B2 (ja) * 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements

Also Published As

Publication number Publication date
EP0459232A2 (en) 1991-12-04
EP0459232A3 (en) 1992-04-15
EP0459232B1 (en) 1998-12-09
JPH0553795A (ja) 1993-03-05
US5481751A (en) 1996-01-02
US5669011A (en) 1997-09-16
DE69130588D1 (de) 1999-01-21
DE69130588T2 (de) 1999-05-27

Similar Documents

Publication Publication Date Title
JP3186798B2 (ja) 部分的にデコードした命令キャッシュ
US10055237B2 (en) Virtual machine coprocessor for accelerating software execution
US6253306B1 (en) Prefetch instruction mechanism for processor
EP0463976B1 (en) Data prefetch instruction in a reduced instruction set processor
CN111124498A (zh) 用于推测执行侧信道缓解的装置和方法
US6076158A (en) Branch prediction in high-performance processor
US5995746A (en) Byte-compare operation for high-performance processor
US5193167A (en) Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US6167509A (en) Branch performance in high speed processor
JP2678527B2 (ja) キャッシュメモリ装置
EP0463978A2 (en) Granularity hint for translation buffer in high performance processor
GB2200484A (en) Detecting and handling memory-mapped i/o by a pipelined computer
US5263153A (en) Monitoring control flow in a microprocessor
JP2004506263A (ja) 拡張レジスタモードで拡張レジスタセットにアクセスするcpu
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
KR100237987B1 (ko) 전용 레지스터의 내용 상에서 동작하는 명령을 제공함으로써 에뮬레이션 성능을 향상시키기 위한 방법 및 시스템
Case ‘Intel Reveals Pentium Implementation Details
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
JPH07120284B2 (ja) データ処理装置
US5819060A (en) Instruction swapping in dual pipeline microprocessor
US20230101512A1 (en) Shared prefetch instruction and support
Soltis et al. Itanium 2 processor microarchitecture overview
McMahan et al. 6/spl times/86: the Cyrix solution to executing/spl times/86 binaries on a high performance microprocessor
CN115858022A (zh) 集群化解码管线的可缩放切换点控制电路系统

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees