JP3880056B2 - 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ - Google Patents

複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ Download PDF

Info

Publication number
JP3880056B2
JP3880056B2 JP2004010369A JP2004010369A JP3880056B2 JP 3880056 B2 JP3880056 B2 JP 3880056B2 JP 2004010369 A JP2004010369 A JP 2004010369A JP 2004010369 A JP2004010369 A JP 2004010369A JP 3880056 B2 JP3880056 B2 JP 3880056B2
Authority
JP
Japan
Prior art keywords
register
integer
boolean
instruction
floating point
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 - Lifetime
Application number
JP2004010369A
Other languages
English (en)
Other versions
JP2004185638A (ja
Inventor
サンジブ ガルグ,
デレク ジェイ レンツ,
レ トロン グエン,
ショ ロン チェン,
Original Assignee
トランスメタ コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24919957&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3880056(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by トランスメタ コーポレイション filed Critical トランスメタ コーポレイション
Publication of JP2004185638A publication Critical patent/JP2004185638A/ja
Application granted granted Critical
Publication of JP3880056B2 publication Critical patent/JP3880056B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

本発明は一般的にはマイクロプロセッサに関し、さらに具体的には、複数の対称レジスタ・セットを備えたRISCマイクロプロセッサに関する。
以下に列挙した米国特許出願は本件特許出願と同時に米国特許出願され、係属中のものであるが、これらの米国特許出願に開示されており、かつそれぞれに対応して出願された日本での特許出願に開示されている事項は、その出願番号を本明細書で引用することにより本明細書の一部を構成するものとする。
1.発明の名称「高性能RISCマイクロプロセッサ・アーキテクチャ」(High−Performance RISC Microprocessor Architecture)SMOS−7984MFC/GBR,米国特許出願第07/727,006号、1991年7月8日出願、発明者Le T.Nguyen他、およびこれに対応する特願平5−502150(特表平6−501122号公報)。
2.発明の名称「拡張可能RISCマイクロプロセッサ・アーキテクチヤ」(Extensible RISC Microprocessor Architecture)SMOS−7985MCF/GBR,米国特許出願第07/727,058号、1991年7月8日出願、発明者Le T.Nguyen他、およびこれに対応する特願平5−502153(特表平6−501124号公報)。
3.「アーキテクチャ上の依存関係を隔離したRISCマイクロプロセッサ・アーキテクチャ」(RISC Microprocessor Architecture with Isolated Architectura Dependencies)SMOS−7987MCF/GBR/RCC,米題特許出願第07/726,744号、1991年7月8日出願、発明者Le T.Nguyen他、およびこれに対応する特願平5−502152(特表平6−502034号公報)。
4.発明の名称「高速トラップと例外状態をインプリメントしたRISCマイクロプロセッサ・アーキテクチャ」(RISC Microprocessor Architecture Impiementing FaSt Trap and Exception State)SMOS−7989MCF/GBR/WSW,米国特許出願第07/726,942号、1991年7月8日出願、発明者Le T.Nguyen他、およびこれに対応する特願平5−502154(特表平6−502035号公報)。
5.発明の名称「シングル・チップ・ページ・プリンタ・コントローラ」(Single Chip Page Printer Controller)SMOS−7991MCF/GBR/HKW,米国特許出願第07/726,929号、1991年7月8日出願、発明者Derek J.Lentz他、およびこれに対応する特願平5−502149(特表平6−501586号公報)。
6.発明の名称「複数の異種マイクロプロセッサをサポートすることのできるマイクロプロセッサ・アーキテクチャ」(Microprocessor Architecture Capable of Supporting Multiple Heterogeneous Processors)SC/SERIES No.07/726,893、1991年7月8日出願、発明者Derek J.Lentz他、およびこれに対応する特願平5−502151(特表平6−501123号公報)。
なお、本明細書の記述は本件出願の優先権の基礎たる米国特許出願07/726, 773号の明細書の記載に基づくものであって、当該米国特許出願の番号を参照することによって当該米国特許出願の明細書の記載内容が本明細書の一部分を構成するものとする。
マイクロプロセッサをベースとするコンピュータ・システムは、主メモリ記憶装置および補助永続記憶装置の通常の補強に加えて、1つまたは2つ以上の汎用データ・レジスタ、1つまたは2つ以上のアドレス・レジスタ、および1つまたは2つ以上のステータス(状況)フラグをも備えているのが代表的である。従来のシステムには、整数データを格納しておくための整数レジスタと浮動小数点データを格納しておくための浮動小数点レジスタを備えているものもある。ステータス・フラグは、最近に実行されたオペレーションの結果としてのある種の条件を示すために使用されているのが代表的である。一般的には、ステータス・フラグとしては、前のオペレーションにおいて、キャリー(桁上げ)が生じたか否か、負数が生じたか否か、および/またはゼロが生じたか否かを示すものがある。
これらのフラグは、プログラム制御のフロー(流れ)内の条件付きブランチ(分岐)の結果を判定する際に役立っている。例えば、1番目の数を2番目の数と比較し、これらの2つの数が等しいことを条件として、あるサブルーチンヘブランチしたい場合には、マイクロプロセッサは他方から一方を減算し、該当する条件フラグをセットまたはクリアすることによって2つの数を比較することができる。減算の結果の数値はストアしておく必要はない。そのあと、ゼロ・フラグのステータスを条件として、条件付きブランチ命令を実行させることができる。この方式は簡単に実現できるが、柔軟性と威力に欠けている。いったん比較が行われると、該当のフラグに基づく条件付きブランチを行う前に、それ以後の数値その他のオペレーションを行うことができない。もし行うと、比較の結果得た条件フラグ値を途中に置かれた命令が重ね書きするので、正しくないブランチが行われることになる。この方式は、上に示した単純な等価比較例とは異なり、もっと複雑なブランチ・テストを行うことが望ましい場合には、さらに複雑になる。
例えば、1番目の数が2番目の数より大で、3番目の数が4番目の数より小で、5番目の数が6番目の数と等しい、という条件が満たされたときだけ、プログラムをサブルーチンにブランチさせる場合を考えてみる。この場合、従来のマイクロプロセッサでは、条件付きブランチが途中に大量に配置された長い比較の列を実行する必要がある。比較とブランチがシリアルになったこの方式の特に望ましくない特徴は、命令がパイプライン化したどのマイクロプロセッサにも観察されている。
パイプライン方式マイクロプロセッサでは、どの時点においても2つ以上の命令が実行されており、複数の命令がどの瞬時においても異なる実行ステージに置かれている。これにより、スループットが大幅に向上している。代表的なパイプライン方式マイクロプロセッサでは、パイプライン・ステージは、(a)命令のフェッチ、(b)命令のデコード、(c)命令のオペランドの取得、(d)命令の実行、(e)結果のストアからなっている。問題が起こるのは、条件付きブランチ命令がフェッチされるときである。そのようなケースとして、オペランドをまだパイプラインに残っているオペレーションから得るものとする場合に、オペランドがまだ計算されていないので、条件付きブランチの条件がまだテストできない場合がある。この結果、「パイプライン停止」(pipeline stall)が起こり、プロセッサの速度が大幅に低下することになる。
従来のマイクロプロセッサ・ベースのシステムのもう1つの欠点は、いかなるデータ・タイプ(データ型)であっても、レジスタ・セットが1つしか備わっていないことである。従来のアーキテクチャでは、どのデータ・タイプにおいても、レジスタの個数を増やすことが望ましいために、どのタイプのレジスタ・セットの場合であっても、そのセットを大きくすることだけが解決策であった。この結果、アドレス指定上の問題、アクセス衝突という問題、および対称上の問題が起こり得る。
同じように注目すべきことは、従来のアーキテクチャでは、どのレジスタ・セットの場合も、数値データ・タイプが1つに限定されていることである。種々の従来システムでは、汎用レジスタに格納できるのは、数値データかアドレス「データ」のどちらかである。しかし、本明細書で用いている「データ」の用語にはアドレスは含まれていない。そのようにした意図を理解しやすくするために、2つの従来システムを参照して説明する。インテル8085マイクロプロセッサは、数値データの2バイトか1個の2バイト・アドレスのどちらかを格納するために使用できるレジスタ・ペア" HL" を備えている。本発明による改善はこの問題を対象にしていない。もう1つはインテル80486マイクロプロセッサであり、これは整数データ型の汎用レジスタ・セットと浮動小数点レジスタ・セットを備えているが、各セットはそれぞれのデータ・タイプが限定されており、少なくとも算術論理演算ユニットが直接にレジスタを使用することを目的としている。
このことは、マイクロプロセッサが両方のデータ・タイプJ係わりがないオペレーション(演算)を実行するときは、使用可能なチップ・エリアなどの、マイクロプロセッサの資源を無駄に消費することになる。例えば、ユーザ・アプリケーションは専ら整数型オペレーションと係わりがあることが多く、浮動小数点型オペレーションを実行することはまったくない。この種のユーザ・アプリケーションが浮動小数点レジスタを備えた従来のマイクロプロセッサ(80486など)で実行されるときは、これらの浮動小数点レジスタはその全実行期間中遊んだままになっている。従来のマイクロプロセッサのレジスタ・セット・アーキテクチャのもう1つの問題は、ユーザ・アプリケーションとオペレーティング・システム・カーネルのようにアクセス特権レベルが高いエンティティとの間でコンテキスト・スイッチングまたはステート・スイッチングを行うときに観察されている。マイクロプロセッサ内の制御がコンテキスト、モード、またはステートをスイッチするとき、制御が渡されたオペレーティング・システム・カーネル(kernel)または他のエンティティは、ユーザ・アプリケーションがオペレーションに使用したのと同じデータについてオペレーションしないのが普通である。従って、データ・レジスタには、制御を受け取った新しいエンティティには無用なデータ値が格納されるが、その値はユーザ・アプリケーションに制御が返されるまで残しておかなければならないのが普通である。カーネルは、一般的には、独自に使用するレジスタをもっていなければならないが、どのレジスタが現在ユーザ・アプリケーションによって使用中であるかをカーネルに知らせる方法がない。自身のデータ用にスペースを確保するためには、カーネルはスワップ・アウトするか、さもなければ、レジスタのあらかじめ定めたサブセットの内容をストアしなければならない。この結果、特に、カーネルが制御を繰返し要求し、制御を保持している期間が短時間の場合には、オーバヘッドとして負担すべき処理時間の損失が膨大なものとなる。
上記に関連して注目すべきことは、従来のマイクロプロセッサでは、「大規模な」コンテキスト・スイッチを行う必要があるとき、マイクロプロセッサが一般的に大多数の処理サイクルを含めて、さらに大量の処理資源を拡張し、全データとステート情報をセーブしてからスイッチを行う必要があったことである。コンテキストをスイッチ・バックするときは、システムを以前の状態に復元するために、パフォーマンスを犠牲にするという代価を払わなければならなかった。例えば、マイクロプロセッサが2つのユーザ・アプリケーションを実行する場合、各アプリケーションが各データ・タイプのレジスタの完全な補強を必要とし、しかも条件設定オペレーションや数値計算の種々のステージに置かれていると、一方のユーザ・アプリケーションから他方ヘスイッチするたびに、スワッピングを行うか、さもなければシステム内のすべてのデータ・レジスタとステート・フラグの内容をセーブしておく必要がある。この結果、オペレーションに伴うオーバヘッドが大量に発生することは明らかであり、特に、レジスタをセーブしておく必要のある主記憶装置や補助記憶装置がマイクロプロセッサ自体よりも著しく低速の場合には、大幅な性能低下をもたらすことになる。
以上の事実から明らかになったことは、複合条件(complex condition)を構成する各種条件を途中に条件付きブランチを介在させないで計算することを可能にする、改良型マイクロプロセッサ・アーキテクチャを開発することが望ましいことである。さらに、明らかになったことは、多数の単純な条件を並列に計算できるようにすることが望ましく、そうすれば、マイクロプロセッサのスループットが向上することである。
また、明らかになったことは、どのデータ・タイプの場合も、レジスタ・セットを複数にすることが望ましいことである。
さらに、望ましいことは、使用可能な整数レジスタが必要とする整数データ量を最適に格納するのに不十分であった場合に、マイクロプロセッサの浮動小数点レジスタを整数レジスタとして使用できるようにすることである。特に、明らかになったことは、このようなタイプ変更をユーザ・アプリケーションには完全に見えない(transparent)ようにすることが望ましいことである。
また、非常に望ましいことは、ユーザ・レジスタのサブセットを使用するのではなく、カーネルが使用するために予約した専用レジスタ・サブセットを備えたマイクロプロセッサを開発し、この新しいレジスタ・セットを、これらのレジスタによって代用されたレジスタ・サブセットと全く同じようにアドレス指定できるようにすることであり、そうすれば、カーネルがユーザ・アプリケーションと同じレジスタ・アドレス指定方式を使用できることである。さらに明らかになったことは、マイクロプロセッサの資源を最大限に利用するためには、2つのレジスタ・サブセット間の切替えをマイクロプロセッサのオーバヘッドとなるサイクルを必要としないで行うことが望ましい。
もう1つ明らかになったことは、「大規模な」コンテキスト・スイッチを最小のオーバヘッドで行えるようにするマイクロプロセッサ・アーキテクチャにすることが望ましいことである。これに関連して望ましいことは、各タイプのレジスタ・セットのバンクを複数にすることを可能にするアーキテクチャにすることであり、そうすれば、2つまたはそれ以上のユーザ・アプリケーションをマルチタスキング環境で、あるいはその他の「同時実行」モードで、稼働させることができ、各ユーザ・アプリケーションは少なくともレジスタの1バンク全体に独占的にアクセスできることである。また、明らかになったことは、レジスタ・アドレス指定方式を、レジスタ・バンク間ではなく、ユーザ・アプリケーション間で同じにすることが望ましく、そうすれば、ユーザ・アプリケーションを可能な限り単純化することができ、また、レジスタ・バンク間の切替えをハードウェアでサポートしたシステムにすれば、ユーザ・アプリケーションは現在使用中のレジスタ・バンクがどれであるかを意識しないで済み、また他のレジスタ・バンクや他のユーザ・アプリケーションの存在さえも意識しないで済むことである。
本発明の上記およびその他の利点は、添付図面を参照して詳述する本発明の説明および請求の範囲から理解されるはずである。
本発明によるレジスタ・ファイル・システムは、整数レジスタの第1サブセットと第2サブセットおよびシャドウ・サブセット(shadow sabset)を含む整数レジスタ・セット、整数レジスタまたは浮動小数点レジスタとして個別的に使用できるタイプ変更可能(re−typable)なレジスタ・セットおよび個別的にアドレス可能なブール・レジスタのセットを備えている。
本発明は整数機能ユニット(integer functional unit)と浮動小数点機能ユニット(floating point functional unit)を備え、これらのユニットは整数レジスタ・セットをアクセスする整数命令を実行し、複数のモードで動作する。どのモードにおいても、命令は、整数レジスタの第1サブセットヘの通常アクセス権が許可されている。第1モードでは、命令は、第2サブセットヘの通常アクセス権が許可されている。しかし、第2モードでは、第2サブセットヘのをアクセスを試みる命令には、第2サブセットではなく、シャドウ・サブセットをアクセスする許可が与えられる。これは、命令には見えない(transparent)形で行われる。従って、どのモードで実行されるかを意識しないでルーチンを書くことができ、システム・ルーチン(これは第2モードで実行される)は、少なくとも第2サブセットを見かけ上自由に使用することができるので、第2サブセットの内容(第1モードで実行されているユーザ・プロセスが使用中の場合がある)をセーブするときに生じるオーバヘッドを負担しないで済む。
本発明によれば、さらに複数の整数レジスタ・セットが用意されている。これらのレジスタ・セットは、命令中のフィールドで指定されるようにして、個別的にアドレス指定が可能である。レジスタ・セットは読取りポートと書込みポートを含んでおり、これらはマルチプレクサによってアクセスされる。この場合、マルチプレクサはレジスタ・セットの内容、つまり、命令中のフィールドの指定によって制御される。
これらの整数レジスタ・セットの1つは、浮動小数点レジスタ・セットとしても使用可能である。本発明の1実施例では、このセットは倍精度浮動小数点データを収容するために64ビット幅になっているが、下位の32ビットだけが整数命令によって使用される。
本発明によれば、ブール演算を実行するための機能ユニットが備わっており、さらに、ブール演算の結果を保持しておくためのブール・レジスタ・セットが用意されているので、専用の固定ロケーション・ステータス・フラグが不要になっている。整数機能ユニットと浮動小数点機能ユニットは数値比較命令を実行し、これらの命令は比較の結果を収めておくブール・レジスタをそれぞれ指定している。ブール機能ユニットはブール組合せ命令(Boolean combinational instraction)を実行し、そのソースと宛先はブール・レジスタ・セットの中の指定されたレジスタになっている。従って、本発明によれば、複合(complex)ブール機能の1つの結果だけで条件付きブランチを実行できるので、複合ブール機能の基本的部分間に条件付きブランチを介在させる必要がなく、データ・プロセッサにおけるパイプライン混乱(pipeline disruption)を最小にすることができる。
最後に、システムには複数の同種レジスタ・バンクが設けられている。バンクはどのプロセスまたはルーチンにも割り振ることができるので、ルーチン内の命令はどのバンクで実行されるかを指定しないで済むようになっている。
1. レジスタ・ファイル
図1は、本発明によるRISC(縮小命令セット計算)の命令実行ユニット(IEU)10の基本構成要素を示す図である。IEU10はレジスタ・ファイル12と実行エンジン14を備えている。レジスタ・ファイル12は1つまたは2つ以上のレジスタ・バンク16−0〜16−nを含んでいる。明らかなように、各レジスタ・バンク16は他のレジスタ・バンク16のすべてと同一構造になっている。従って、以下では、レジスタ・バンク16−0だけを説明することにする。レジスタ・バンクはレジスタ・セットA18、レジスタ・セットFB20、およびレジスタ・セットC22を含んでいる。
一般的には、CISC(複合命令セット計算)命令をCISCプロセッサが実行するには、従来のレジスタ・ファイルを使用すれば十分であるのに対し、本発明によるRISCマイクロプロセッサは、RISC命令を実行する際に使用するのに最適に構成されたレジスタ・ファイルを備えたことを特徴としている。レジスタ・ファイルを特別に適応したものにすると、マイクロプロセッサのIEUの実行エンジン(execution engine)は、資源利用効率とロー・スループット(raw throughput)の面で性能を向上させることができる。一般的考え方はレジスタ・セットをRISC命令に合わせてチューン(調整)することであるが、実施例によっては、アーキテクチャのどのレジスタ・セットでも対象とすることができる。
A. レジスタ・セットA
レジスタ・セットA18は整数レジスタ24(RA[31:0])を含んでおり、その各々は整数値のデータを収めるように適応化されている。1実施例によれば、各整数レジスタ24は32ビット幅になっている。RA[]整数レジスタ24は複数の第1整数レジスタ26(RA[23:0])と複数の第2整数レジスタ28(RA[31:24])から構成されている。RA[]整数レジスタ24は各々が同一構成になっており、整数レジスタ・セット24内の固有アドレス(unique address)による場合でも、各々が同じ方法でアドレス可能になっている。例えば、第1整数レジスタ30(RA[0])は整数レジスタ24内のゼロ・オフセットにアドレス指定することが可能である。
RA[0]は常に値がゼロになっている。これは、ユーザ・アプリケーションや他のプログラムは他の定数値よりも定数値ゼロを使用することが多いことが観察されてきたためである。従って、クリア、比較その他の目的のために、ゼロがいつでも即時に使用できるようになっていることが望ましい。特定の値に関係なく、任意のレジスタに一定の配線(hard−wired)した値を入れておくと得られるもう1つの利点は、その任意のレジスタを、結果をセーブしておく必要のない命令の宛先として使用できることである。
また、このことは、固定レジスタ(fixed register)はデータに依存する遅延の原因となることがないことも意味する。データ依存関係が起こるのは、「スレーブ」命令がそのオペランドの1つまたは2つ以上のために、「マスタ」命令の結果を必要とするときである。パイプライン方式プロセッサでは、これはパイプラインを停止(stall)させる原因となる。例えば、マスタ命令は、コード列の中にスレーブ命令よりも早く現れる場合であっても、実行時間が著しく長くなることがある。このことから容易に理解されるように、スレーブの「インクリメントとストア」命令がマスタの「4倍ワード整数除算」命令の結果データに基づいて実行される場合は、スレーブ命令がフェッチされ、デコードされたあと、マスタ命令が実行を終えるまで、多数のクロック・サイクルの間、実行を待たされることになる。しかし、状況によっては、マスタ命令の数値結果は必要とされず、マスタ命令は条件コード・フラグをセットするといった、他の目的に実行される場合もある。マスタ命令の宛先がRA[0]ならば、数値結果は事実上破棄されることになる。IEU10のデータ依存関係チェッカ(図示せず)は、マスタ命令の最終結果、つまり、ゼロはすでに分かっているので、スレーブ命令を遅延させる原因とはならない。
レジスタ・セットA18はシャドウ・レジスタ・セット32(RT[31:24])も備えている。各シャドウ・レジスタは整数値を保持することができ、1実施例では、32ビット幅にもなっている。各シャドウ・レジスタは、各整数レジスタがアドレス指定できるのと同じように、オフセットとしてアドレス指定することができる。
最後に、レジスタ・セットAはIEUモード整数スイッチ(mode integer switch)34を備えている。このスイッチ34は、他の同種の要素と同じように、対応する論理的機能がレジスタ・セット内に用意されている限り、物理的にスイッチとして実現する必要はない。IEUモード整数スイッチ34はライン36を介して整数レジスタの第1サブセット26に接続され、ライン38を介して整数レジスタの第2サブセット28に、ライン40を介してシャドウ・レジスタ32に接続されている。レジスタ・セットA18へのアクセスはすべてライン42上のIEUモード整数スイッチ34を通して行われる。第1サブセットRA[23:0]内のレジスタを読み書きするためのアクセス要求はIEUモード整数スイッチ34を通して自動的に渡される。しかし、第1サブセットRA[23:0]の外側のオフセットを使用した整数レジスタヘのアクセスは、実行エンジン14の動作モードに応じて第2サブセットRA[31:24]に向けられるか、シャドウ・レジスタRT[31:24]に向けられる。
IEUモード整数スイッチ34は実行エンジン14内のモード制御ユニット44の制御を受けて動作する。モード制御ユニット44はIEU10に関する該当ステートまたはモードF情報を、ライン46経由でIEUモード整数スイッチ34へ送る。実行エンジンがカーネル(kernel)・モードヘの移行といったコンテキスト・スイッチを実行すると、モード制御ユニット44はIEUモード整数スイッチ34を次のように制御する。つまり、第2サブセットRA[31:24]への要求は、整数セット内で要求した同じオフセットを使用してシャドウRT[31:24]ヘリダイレクト(re−directed)される。従って、オペレーティング・システム・カーネルやそのとき実行中の他のエンティティは、見かけ上は第2サブセットRA[31:24]をアクセスすることができるので、第2サブセットRA[31:24]の内容を主メモリにスワップ・アウトしたり、第2サブセットRA[31:24] をスタック上にプッシュしたりするとき生じるオーバヘッドがなくなり、また他の従来のレジスタ格納手法を使用しないで済むことができる。
実行エンジン14が通常ユーザ・モードに戻って、制御が当初に実行中のユーザ・アプリケーションに渡されると、モード制御ユニット44は、アクセスが再び第2サブセットRA[31:24]に向けられるようにIEUモード整数スイッチ34を制御する。一実施例では、モード制御ユニット44は、IEU10における割込み許可の現在の状態に応じて動作するようになっている。また、一実施例では、実行エンジン14はプロセッサ・ステータス・レジスタ(PSR)(図示せず)を備えており、このレジスタは、割込みが許可されているか、禁止されているかを示した1ビット・フラグ(PSR[7] )をもっている。従って、IEUモード整数スイッチ34とPSR内の割込み許可フラグとは、ライン46で結合するだけでよい。割込みが禁止されている間は、IEU10は整数RA[23:0]へのアクセス権を保持しているので、ユーザ・アプリケーションの各種データの分析を行うことができる。これにより、デバッグ、エラー報告、またはシステム・パフォーマンス分析を向上させることができる。
B. レジスタ・セットFB
タイプ変更可能な(re−typable)レジスタ・セットFB20とは、浮動小数点レジスタ48(RF[31:0])および/または整数レジスタ50(RB[31:0])を含んでいるものと考えてよい。いずれかのデータ・タイプの場合も、一方が他方を除外することを意味しないときは、本明細書では、RFB[]という用語を用いることにする。一実施例では、浮動小数点レジスタRF[]は、整数レジスタRB[]と同じ物理的シリコン・スペースを占めている。また、一実施例では、浮動小数点レジスタRF[]は64ビット幅に、整数レジスタRB[]は32ビット幅になっている。このことから理解されるように、倍精度浮動小数点数が必要でなければ、レジスタ・セットRFB[]を32ビット幅の構成にすると、各浮動小数点レジスタの余分の32ビット用に必要になるシリコンの面積を節約できるという利点がある。
レジスタ・セットRFB[]中の個々のレジスタの各々は、浮動小数点値と整数値のいずれかを保持することができる。レジスタ・セットRFB[]には、オプションとして、浮動小数点値が整数値であるものとして、あるいは整数値が浮動小数点値であるものとして、誤ってアクセスされるのを防止するハードウェアを設けることが可能である。しかし、一実施例では、レジスタ・セットRFB[]を単純化するために、個々のレジスタが誤った使い方をされるのを防止することは、ソフトウェア設計者に任すようにしている。従って、実行エンジン14は、レジスタ・セットRFB[]までのオフセットを指定して、ライン52上にアクセス要求を出すだけであり、あるオフセットに置かれたレジスタが浮動小数点レジスタとして使用されるものか、整数レジスタとして使用されるものかは指定しない。実行エンジン14内では、各種エンティティはレジスタ・セットRFB[]に用意されている64ビット全部を使用することも、例えば、整数演算や単精度浮動小数点演算において、下位32ビットだけを使用することもできる。
最初のレジスタRFB[0]51は、RB[0]が32ビット整数のゼロ(0000hex )となり、RF[0]が64ビット浮動小数点のゼロ(00000000hex )となる形式で、定数値のゼロを格納する。このようにすると、RA[0]に対して上述したのと同じ利点が得られる。
C. レジスタ・セットC
レジスタ・セットC22は、複数のブール・レジスタ(RC[31:0])から構成されている。RC[]は「条件ステータス・レジスタ」(CSR)とも呼ばれている。ブール・レジスタはいずれも構造とアドレス指定方式が同じになっている。ただし、各レジスタはRC[]内の固有アドレスまたはオフセットに個別的にアドレスすることが可能である。
一実施例では、レジスタ・セットCはさらに「旧条件ステータス・レジスタ」(PCSR)60を含んでおり、レジスタ・セットCはCSRセレクタ・ユニット62も備えている。このユニットはモード制御ユニット44に応答して、CSR54とPCSR60を交互に選択する。この実施例では、CSRは割込みが許可されているとき使用され、PCSRは割込みが禁止されているとき使用される。CSRとPCSRは他の点ではすべて同じである。また、この実施例では、割込み禁止とセットされると、CSRセレクタ・ユニット62はCSRの内容をプッシュしてPCSRに入れ、PCSRの旧内容に重ね書きする。割込みが再び許可されると、CSRセレクタ・ユニット62はPCSRの内容をポップしてCSRに戻す。他の実施例では、RA[31:24]およびRT[31:24]で行われるのと同じように、CSRとPCSRの間でアクセスを交互に行うことが望ましい場合がある。いずれの場合も、PCSRは常に32ビット「特殊レジスタ」として使用することが可能である。
ブール・レジスタは、従来公知のマイクロプロセッサにおけるブール・レジスタと異なり、いずれも専用条件フラグになっていない。つまり、CSR54は、専用キャリー・フラグも、専用マイナス・フラグも、比較が一致したことまたは減算結果がゼロであることを示す専用フラグも含んでいない。その代わりに、どのブール・レジスタも任意のブール・オペレーションのブール結果の宛先となることができる。他のレジスタ・セットの場合と同じように、最初のブール・レジスタ58(RC[0])は常に値ゼロが入るので、RA[0]で上述したのと同じ利点が得られる。好適実施例では、各ブール・レジスタは1ビット幅で、1つのブール値を示すようになっている。
II. 実行エンジン
実行エンジン14は1つまたは2つ以上の整数機能ユニット66、1つまたは2つ以上の浮動小数点機能ユニット68、および1つまたは2つ以上のブール機能ユニット70を備えている。これらの機能ユニットは、以下に説明するように命令を実行する。バス72、73、75はIEU10の種々エレメントを結んでおり、それぞれはデータ経路、アドレス経路、および制御経路を表しているものとする。
A. 命令の形式
図9は、実行エンジン14に実行させることができる整数命令の形式(フォーマット)を示す一例である。理解されるように、すべての命令が図示の形式に厳密に従う必要はなく、データ処理システムには命令フェッチャとデコード(図示せず)が含まれており、これらは形式の異なる命令を処理するように構成されている。図9には、理解を容易にするために、1つの例だけが示されている。本明細書全体を通して、符号[]は命令の各ビットを示すために用いられている。I[31:30]は、実行エンジン14の将来の実装に備えて予約されている。I[29:26]は特定の命令の命令クラスを示している。表1は、本発明によって実行される命令の各種クラスを示すものである。
Figure 0003880056
本発明で特に重要な命令クラスは、クラス0−3のレジスタ間命令とクラス13のブール・オペレーションである。他のクラスの命令もレジスタ・ファイル12を処理するが、これらのクラスを詳しく説明しなくても、本発明を十分に理解できると思われるので、説明を省略する。
I[25]はB0と名付けられ、これは宛先レジスタがレジスタ・セットAにあるか、レジスタ・セットBにあるかを示している。I[24:22]は、ある命令クラス内でどの特定機能を実行すべきかを指定した命令コード(opcode)である。例えば、レジスタ間命令クラス内では、命令コードは「加算」を指定することができる。I[21]は、命令の実行時に使用すべきアドレス指定モード(addressing mode)、つまり、レジスタ・ソースのアドレス指定または即値ソース(immediate source)のアドレス指定を指定している。I[20:16]は、宛先レジスタをB0で指定したレジスタ・セット内のオフセットとして指定している。I[15]はB1と名付けられ、これは第1オペランドがレジスタ・セットAから得られるか、またはレジスタ・セットBから得られるかを示している。I[14:10]は、第1オペランドを得るときのレジスタがどれだけオフセットしているかを指定している。I[9 :8]は命令コードI[24:22]の延長部分であり、機能の選択を指定している。I[7:6]は予備である。I[5]はB2と名付けられ、命令の第2オペランドがレジスタ・セシトAから得られるか、またはレジスタ・セットBから得られるかを指定している。最後に、I[4:0]は、第2オペランドを得るときのレジスタがどれだけオフセットしているかを指定している。
図1に示すように、整数機能ユニット66と浮動小数点機能ユニット68はそれぞれ整数比較命令と浮動小数点比較命令を実行する機能を備えている。比較命令の命令形式は図9に示されているものとほぼ同じであるが、各フィールドは多少異なる名前を付けて区別しておくと便利である。I[20:16]は結果をストアしておくべき宛先レジスタを指定しているが、アドレス指定モード・フィールドI[21]はレジスタ・セットAとBとの間の選択を行わない。その代わりにアドレス指定モード・フィールドは比較の第2ソースがレジスタに入っているか、即値データ(immediate data)であるかを示している。比較はブール型命令であるので、宛先レジスタは常にレジスタ・セットCに置かれている。他のフィールドの働きは図9に示されている。整数および浮動小数点機能ユニットでブール・オペレーションを実行するとき、命令コードと機能選択フィールドは2オペランドを比較する際にどのブール条件をテストするかを指定している。整数および浮動小数点機能ユニットは数値比較に関するIEEE標準を完全にサポートしている。
IEU10はロード/ストア・マシン(load/store machine)である。つまり、あるレジスタの内容がメモリにストアされるか、またはメモリから読み出されるとき、どのメモリ・ロケーションをストアまたはロードのソースまたは宛先とするかを判断するためにアドレス計算をしなければならない。そのような場合には、宛先レジスタ・フィールドI[20:16]はロードまたはストアの宛先またはソースとなるレジスタを指定している。ソース・レジスタ1フィールドI[14:10]は、メモリ・ロケーションのベース・アドレスを収めているレジスタがセットAのものか、あるいはセットBのものかを指定している。一実施例では、ソース・レジスタ2フィールドI[4:0]はインデックスまたはベースからのオフセットを収めているレジスタがセットAのものか、またはセットBのものかを指定している。ロード/ストア・アドレスはベースにインデックスを加えると求まる。別のモードでは、I[7:0] はインデックスとしてベースに加えるべき即値データを収めている。
B. 命令実行ユニットとレジスタ・セットのオペレーション
この分野に精通したものならば理解されるように、整数機能ユニット66、浮動小数点機能ユニット68、およびブール機能ユニット70は、実行しようとする現命令の命令クラス・フィールド、命令コード・フィールド、および機能選択フィールドの内容に応じて動作する。
1. 整数オペレーション
例えば、命令クラス、命令コード、および機能選択が整数レジスタ間加算を実行することを示しているときは、整数機能ユニットはそれを受けて指示されたオペレーションを実行するのに対し、浮動小数点機能ユニットとブール機能ユニットはそれを受けてもそのオペレーションを実行しない。しかし、本件特許出願と同時に出願された係属中の米国特許出願(冒頭に列挙)から理解されるように、浮動小数点機能ユニット68は、浮動小数点と整数の両方のオペレーションを実行する機能を備えている。また、これらの機能ユニットはいずれも2つ以上の命令を同時に実行する構成になっている。
整数機能ユニット66は整数演算機能だけを備えている。整数演算を行うには、一般的に、第1ソース、第2ソース、および宛先が必要になる。どの整数型命令も、実行すべき特定のオペレーションを1つまたは2つ以上のソース・オペランドで指定し、整数オペレーションの結果を特定の宛先にストアすることを指定する。ロード/ストア・オペレーションで使用されるアドレス計算のような、ある種の命令では、ソースはベースおよびインデックスとして使用される。整数機能ユニット66は第1バスに接続され、このバスを介して整数機能ユニット66はスイッチングとマルチプレクシング制御(SMC)ユニットA74およびSMCユニットB76に接続されている。整数機能ユニット66によって実行される各整数型命令はそのソースと宛先がレジスタ・セットAに置かれているか、レジスタ・セットBに置かれているかを指定する。
以下では、IEU10が整数型レジスタ間加算を実行する命令を機能フェッチ・ユニット(図示せず)から受け取った場合を想定して説明する。各種実施例において、この命令はレジスタ・バンクを指定することができ、各ソースと宛先ごとに別のバンクを指定することもできる。一実施例では、命令I[]は長さが32ビットまでに制限されているので、どのレジスタ・バンク16−0〜16−nが命令に関係しているかを示す標識は収められない。その代わりに、バンク・セレクタ・ユニット78がどのレジスタ・バンクが現在アクティブであるかを制御する。一実施例では、バンク・セレクタ・ユニット78は、IEU10内のステータス・ワード(図示せず)中の1または2つ以上のバンク選択ビットに応答して動作する。
整数型加算命令を実行するために、整数機能ユニット66は第1および第2ソース・レジスタのI[14:10]およびI[4:0] 内のID(識別)に応動する。整数機能ユニット66は第1および第2ソース・レジスタのIDをそれぞれポートS1およびS2から出力し、SMCユニットA74とSMCユニットB76に接続された整数機能ユニット・バス72上に送出する。一実施例では、SMCユニットAとBはそれぞれ命令I[]からB0−2を受け取るように接続されている。一実施例では、それぞれのBnに入っているゼロはレジスタ・セットAを示し、1はレジスタ・セットBを示している。ロード/ストア・オペレーション時には、整数と浮動小数点機能ユニット66および68のソース・ポートは、それぞれ、ベース・ポートBおよびインデックス・ポートIとして使用される。
指示されたレジスタ・セットから第1および第2オペランドをバス72上に得ると、下述するように、整数機能ユニット66はこれらのオペランドについて指示されたオペレーションを実行し、その結果をポートDから出力し、整数機能ユニット・バス72上に送出する。SMCユニットAとBはB0に応答して、その結果を該当するレジスタ・セットAまたはBあてに送る。
SMCユニットBはさらに命令クラス、命令コード、および機能選択に応答し、オペランドを浮動小数点レジスタRF[]から読み取るか、整数レジスタRB[]から読み取るか(あるいは結果をそのどちらにストアするか)を制御する。上述したように、一実施例では、レジスタRF[]は64ビット幅にできるのに対し、レジスタRB[]はわずか32ビット幅である。従って、SMCユニットBはレジスタ・セットRFB[]にワードを書くか、またはダブル・ワードを書くかを制御する。SMCユニットAには、バス42上のデータ転送の幅を制御する手段を設ける必要はない。
バス42上のすべてのデータは32ビット幅であるが、レジスタ・セットAには他の種類の複雑さが存在する。IEU10は実行エンジン14のモード制御ユニット44の制御に応答し、バス42上のデータをバス42経由でバス36、バス38またはバス40に接続するかどうか、およびその逆に接続するかどうかを制御する。
IEUモード整数スイッチ34はさらにI[20:16]、I[14:10]、およびI[4:0]に応答する。指示されたある宛先またはソースがRA[23:0]にあれば、IEUモード整数スイッチ34は自動的にデータをライン42と36との間に結合する。しかし、レジスタRA[31:24]に対しては、IEUモード整数スイッチ24はライン42上のデータがライン38またはライン40に接続されているかどうか、およびその逆に接続されているかどうかを判断する。割込みが許可されているときは、IEUモード整数スイッチ34はSMCユニットAを整数レジスタRA[31:24]の第2サブセット28に接続する。割込みが禁止されているときは、IEUモード整数スイッチ34はSMCユニットAをシャドウ・レジスタRT[31:24]に接続する。従って、整数機能ユニット66内で実行される命令は、RA[31:24]をアドレス指定すべきか、またはRT[31:24]をアドレス指定すべきかを意識する必要はない。このことから理解されるように、SMCユニットAは、それが整数機能ユニット66によってアクセスされるか、または浮動小数点機能ユニット68によってアクセスされるかに関係なく、同じように動作できるいう利点がある。
2. 浮動小数点オペレーション
浮動小数点機能ユニット68は、命令のクラス、命令コード、および機能選択フィールドを受けて動作し、浮動小数点オペレーションを実行する。S1、S2、およびDポートは整数機能ユニット66で上述したように動作する。SMCユニットBは、バス52経由で浮動小数点レジスタRF[]からの浮動小数点オペランドに応答し、そして数値浮動小数点結果を浮動小数点レジスタRF[]に書き込む。
3. ブール・オペレーション
SMCユニットC80は命令I[]の命令クラス、命令コード、および機能選択フィールドを受けて動作する。SMCユニットCは、比較オペレーションが数値機能ユニット66または68の一方によって実行されたことを検出すると、SMCユニットCはその比較を実行した機能ユニットのDポートにおいて示されたブール・レジスタにバス56を介してブール・オペレーション結果を書き込む。
ブール機能ユニット70は、整数および浮動小数点機能ユニット66と68とは異なり、比較命令を実行しない。その代わりに、ブール機能ユニット70は、ブール・レジスタ内容のビット単位の論理的組合せを、表2に列挙されたブール機能に従って実行するのに使用されるだけである。
Figure 0003880056
複数の同種ブール・レジスタを用意し、その各々が個別的にブール・オペレーションの宛先としてアドレス指定できるようにすると得られる本発明の利点について、表3〜5を参照して説明する。表3は、条件付きブランチを複合(complex)ブール機能に基づいて実行するコード・セグメントの例を示すものである。複合ブール機能は論理和(OR)がとられる3つの部分からなっている。最初の部分はさらに2つの部分からなり、これらは論理積(AND)がとられる。
Figure 0003880056
表4は、従来マイクロプロセッサが表3の機能を実行するときの1つの類似方法を疑似アセンブリ形式で示すものである。表4のコードは、表3のコードを処理する少なくとも通常インテリジェント機能をもつコンパイラによって生成されるものとして書かれている。つまり、コンパイラは、3部分のいずれかが真であると、表3の2行目から4行目に表されている条件が渡されることを認識する。
Figure 0003880056
表3の1行目の割当ては表4の1行目の「即値ロード」ステートメントによって実行される。表3の2行目に表されている複合ブール条件の最初の部分は表の4の2行目〜5行目のステートメントで表される。RA[2]がRA[3] に等しいかどうかをテストするには、表4の2行目の比較ステートメントは、どのようにコーディングしたかに応じて、RA[3] からRA[2]を減算することあるいはその逆を実行し、減算の結果をストアする場合とストアしない場合がある。比較ステートメントによって実行される重要な機能は、ゼロ、マイナス、およびキャリー・フラグがその結果に応じてセットまたはクリアされることである。
表4の3行目の条件付きブランチ・ステートメントは、RA[2]がRA[3]と等しくなかったことを条件として、コードの後続部分ヘブランチする。2つが等しくないと、ゼロ・フラグがクリアされるので、2番目のサブ部分を実行する必要がない。表4の3行目に条件付きブランチ・ステートメントが存在するので、2行目の比較結果が分かるまでは、表4の後続ステートメントのフェッチ、デコードおよび実行が禁止されるために、パイプライン停止(pipeline stall)が起こることになる。最初の部分(TEST1)の最初のサブ部分が渡されると、表4の4行目の第2サブ部分はRA[4]をRA[5]と比較するので、この場合も、該当ステータス・フラグがセットまたはクリアされることになる。
RA[2]がRA[3]と等しく、RA[4]がRA[5]より大きければ、複合ブール機能の中の残りの2部分(TEST2とTEST3)をテストする必要がなく、表4の5行目のステートメントは条件付きでラベルDO_IFヘブランチし、表4の" IF" の内側のオペレーションが実行される。しかし、テストの最初の部分が失敗すると、" IF”と”ELSE”部分のどちらを実行させるかを判定するために追加の処理が必要になる。
ブール機能の第2部分は表4の6行目でRA[6]をRA[7]と比較するものであり、この場合も、該当ステータス・フラグがセットまたはクリアされる。「より小さい」の条件がステータス・フラグによって指示されていると、複合ブール機能が渡され、その実行は即時にDO_IFラベルヘブランチすることができる。従来の各種マイクロプロセッサでは、「より小さい」条件はマイナス・フラグを検査することでテストすることが可能になっている。RA[7] がRA[6]より小でなかったときは、テストの第3部分を実行する必要がある。表4の8行目のステートメントはRA[8] をRA[9]と比較する。この比較が失敗したときは、”ELSE”コードを実行させる必要がある。そうでなければ、実行は表4の10行目の”IF”コードヘフォールスルー(fall through)するだけであり、そのあと”ELSE”コードの前後で別のジャンプが行われることになる。表4の3、5、7および9行目の条件付きブランチはそれぞれが別々のパイプライン停止を引き起こすので、この複合ブール機能を処理するために必要な処理時間が大幅に増加することになる。
本発明のブール・レジスタ・セットCを採用するとスループットが大幅に向上することは、表5を特に参照すれば容易に理解されるはずである。
Figure 0003880056
特に表5の2行目〜5行目に示すように、ブール・レジスタ・セットCを使用すると、マイクロプロセッサは、途中にブランチを介在しないで3つのテスト部分を連続して実行することができる。各ブール比較は2つのオペランド、宛先、およびテストすべきブール条件を指定している。例えば、表5の2行目の比較はRA[2]の内容をRA[3]の内容と比較し、その内容が等しいかをテストし、比較結果のブール値をRC[11]にストアしている。表5に示すように、ブール機能の各比較はそれぞれの中間結果を別々のブール・レジスタにストアしている。冒頭に列挙した関連特許出願から理解されるように、IEU10はこれらの比較を2つ以上同時に実行する機能を備えている。
表5の2行目〜3行目の最初の2つの比較が完了すると、2つの各中間結果の論理積(AND)が表3の6行目に示すようにとられる。その後、テストの最初の部分の結果がRC[15]に格納される。ブール機能の第2と第3サブ部分の結果の論理和(OR)が表5の7行目に示すようにとられる。理解されるように、データ依存関係がないので、6行目のAND(論理積)と7行目のOR(論理和)は並列に実行することができる。最後に、これら2つのオペレーションの結果の論理和が表5の8行目に示すようにとられる。
表から理解されるように、表3の複合ブール機能全体が真であるか、偽であるかを示すブール値がRC[17]に収められる。その後、表5の9行目に示すように、単純条件付きブランチを実行することが可能である。表5に示すモードでは、ブール・レジスタRC[17]がクリアで、複合機能が失敗したことを示していると、”ELSE”コードヘブランチする。コードの残余部分は、表4に示すようなブール・レジスタがない場合と同じにすることができる。
ブール機能ユニット70は他の機能ユニットと同じように、命令クラス、命令コード、および機能選択フィールドに応動する。従って、この場合も、表5から理解されるように、整数機能ユニットおよび/または浮動小数点機能ユニットは、1行目〜5行目と13行目の命令を実行し、ブール機能ユニット70は6行目〜8行目のブール・ビット単位結合命令(Boolean bitwise combination instruction)を実行する。9 行目〜12行目の制御フローとブランチ命令はIEU10のエレメント(第1図には示されていない)によって実行される。
III.データ経路
図2〜図7は、それぞれ、IEUの浮動小数点、整数、およびブール演算部分内のデータ経路を示す詳細図である。
A. 浮動小数点部分のデータ経路
図2に示すように、レジスタ・セットFB20はマルチポート・レジスタ・セットである。一実施例では、レジスタ・セットFB20は2つの書込みポートWFB0−1と5つの読取りポートRDFB0−4をもっている。図1の浮動小数点機能ユニット68は図3のALU2102、FALU104、MULT106、およびNULL108から構成されている。レジスタ・セット20とエレメント102〜108を除く図2、図3のすべてのエレメントは図1のSMCユニットB76を構成している。
外部双方向データ・バスEX_DATA[]はデータを浮動小数点ロード/ストア・ユニット122へ送る。即値浮動小数点データ・バスLFD_IMED[]は「即値ロード」命令からのデータを送る。他の即値浮動小数点データは「即値加算」命令で必要となるものと同じバスRFF1_IMEDおよびRFF2_IMED上を送られる。データは「特殊レジスタ移動」命令を受けると、バスEX_SR_DT[]上にも送られる。データは図5に示す整数部分からバス114と120上を送られてくることもある。
浮動小数点レジスタ・セットの2つの書込みポートWFB0とWFB1は、それぞれ書込みマルチプレクサ110−0と110−1に結合されている。書込みマルチプレクサ110は図5の整数部分のALU0またはSHF0;FALU;MULT;ALU2;EX_SR_DT[]またはLDF_IMED[];およびEX_DATA[]からデータを受け取る。当業者なら理解されるように、各ポートからどの入力が選択されるかは制御信号(図示せず)から判断され、入力データをどのレジスタに書くかはアドレス信号(図示せず)から判断される。マルチプレクサの制御とアドレス指定は公知であるので、ここでは、マルチプレクサまたはレジスタ・セットに関する詳しい説明は省略する。
浮動小数点レジスタ・セットの5つの読取りポートRDFB0〜RDFB4は、それぞれ読取りマルチプレクサ112−0〜112−4に結合されている。読取りマルチプレクサは、それぞれ、即値ロード・バイパス・バス126上のEX_SR_DT[]またはLDF_IMED[];外部ロード・データをレジスタ・セットFBをスキップさせる外部ロード・データ・バィパス・バス127;非乗算整数オペレーションを実行するALU2102の出力;非乗算浮動小数点オペレーションを実行するFALU104;乗算オペレーションを実行するMULT106;それぞれ非乗算整数オペレーションとシフト・オペレーションを実行する図5の整数部分のALU0140またはSHF0144からもデータを受け取る。読取りマルチプレクサ112−1と112−3はそれぞれRFF1_IMED[]とRFF2_IMED[]からもデータを受げ取る。
浮動小数点部分内の各算術演算型ユニット102〜106は、第1および第2ソース・マルチプレクサS1とS2のそれぞれのセットから2つの入力を受け取る。各ユニットALU2、FALUおよびMULTの最初のソースは読取りマルチプレクサ112−0または112−2の出力から得られ、2番目のソースは読取りマルチプレクサ112−1または112−3の出力から得られる。FALUとMULTのソースはバス114経由で図5の整数部分からも得られる。
ALU2、FALU、およびMULTの結果は書込みマルチプレクサ110へ送り返されて浮動小数点レジスタRF[]にストアされ、読取りマルチプレクサ112へも送り返されて以後のオペレーションのオペランドとして再使用される。FALUは浮動小数点比較オペレーションのブール結果を示す信号FALU_BDをも出力する。FALU_BDはFALUの内部ゼロ・フラグと符号フラグから直接に計算される。
空白(null)バイト・テスタNULL108は、あるモードにあるとき、ALU2の第1ソース・マルチプレクサからのオペランドについて空白バイト・テスト操作を行う。NULL108は、32ビットの最初のソース・オペランドに値がゼロのバイトが含まれているかどうかを示したブール信号NULLB_BDを出力する。
読取りマルチプレクサ112−0、112−1および112−4の出力はバス118経由で(図5の)整数部分へ送られる。読取りマルチプレクサ112−4の出力は、STDT_FP[]ストア・データとして浮動小数点ロード/ストア・ユニット122へも送られる。
図7はS1とS2マルチプレクサのコントロールを示す詳細図である。図示のように、一実施例では、各S1マルチプレクサは命令I[]のビットB1を受けて動作し、各S2マルチプレクサは命令I[]のビットB2を受けて動作する。S1とS2マルチプレクサは各種機能ユニット用のソースを選択する。ソースはレジスタ・ファイルのどちらかから得ることができ、これは命令自体のB1とB2ビットによって制御される。さらに、各レジスタ・ファイルは2つの読取りポートを備え、そこからソースを得ることもできるが、その制御は図示していないハードウェアで行われる。
B. 整数部分のデータ経路
図4に示すように、レジスタ・セットA18もマルチポートになっている。一実施例では、レジスタ・セットA18は2つの書込みポートWA0−1と5つの読取りポートRDA0−4を備えている。図1の整数機能ユニット66は、図5のALU0140、ALU1142、SHF0144、およびNULL146から構成されている。レジスタ・セットA18およびエレメント140−146を除く図4、図5のすべてのエレメントは図1のSMCユニットA74を構成している。
外部データ・バスEX_DATA[]はデータを整数ロード/ストア・ユニット152へ送る。バスLDI_IMED[]上の即値整数データは「即値ロード」命令を受けて送られる。他の即値整数データは「即値加算」などの非即値ロード命令を受けてバスRFA1_IMEDとRFA2_IMED上を送出される。データは「特殊レジスタ移動」命令を受けてバスEX_SR_DT[]上にも送出される。データはバス116と118経由で浮動小数点部分(図3に図示)から送られてくる場合もある。
整数レジスタ・セットの2つの書込みポートWA0とWA1はそれぞれ書込みマルチプレクサ148−0と148−1に結合されている。書込みマルチプレクサ148は、(図3の)浮動小数点部分のFALUまたはMULT;ALU0;ALU1;SHF0;EX_SR_DT[]またはLDI_IMED[];およびEX_DATA[]からデータを受け取る。
整数レジスタ・セットの5つの読取りポートRDA0〜RDA4はそれぞれ読取りマルチプレクサ150−0〜150−4に結合されている。各読取りマルチプレクサは即値ロード・バイパス・バス160上のEX_SR_DT[]またはLDI_IMED[];外部ロード・データがレジスタ・セットAをスキップすることを可能にするロード外部データ・バイパス・バス154;ALU0;ALU1;SHF0;および(図3の)浮動小数点部分のFALUまたはMULTからもデータを受け取る。読取りマルチプレクサ150−1と150−3はそれぞれRFA1_IMED[]とRFA2_IMED[]からもデータを受け取る。
整数部分内の各算術演算型ユニット140−144は第1および第2ソース・マルチプレクサS1とS2のそれぞれのセットから2つの入力を受け取る。ALU0の第1ソースは読取りマルチプレクサ150−2の出力、または32ビット幅の定数ゼロ(0000hex )、または浮動小数点読取りマルチプレクサ112−4のいずれかから得られる。ALU0の第2のソースは読取りマルチプレクサ150−3または浮動小数点読取りマルチプレクサ112−1のいずれかから得られる。ALU1の第1ソースは読取りマルチプレクサ150−0またはIF_PC[]のいずれかから得られる。IF_PC[]は、IEUが命令を順序外(out-of-order)の順序で実行できる機能を備えているために、命令フェッチ・ユニット(図示せず)が必要とするリターン・アドレスを計算する際に使用される。ALU1の第2ソースは読取りマルチプレクサ150−1またはCF_OFFSET[]のいずれかから得られる。CF_OFFSET[]は、同じく順序外で実行できるために、CALL命令のリターン・アドレスを計算する際に使用される。
シフタSHF0144の第1ソースは、浮動小数点読取りマルチプレクサ112−0または112−4またはいずれかの整数読取りマルチプレクサ150から得られる。SHF0の第2ソースは、浮動小数点読取りマルチプレクサ112−0または112−4または整数読取りマルチプレクサ150−0、150−2、または150−4から得られる。SHF0は第3の入力をシフト量(shift amount−SA)マルチプレクサから得る。第3の入力はどれだけシフトさせるかを制御するもので、SAマルチプレクサによって浮動小数点読取りマルチプレクサ112−1、整数読取りマルチプレクサ150−1または150−3または5ビット幅定数32(111112 または311 0 )から取得される。シフタSHF0はサイズ・マルチプレクサ(S)から第4の入力を要求する。第4の入力はどれだけのデータをシフトさせるかを制御するもので、Sマルチプレクサによって読取りマルチプレクサ150−1、読取りマルチプレクサ150−3、または5ビット幅定数16(100002 または161 0 )から取得される。
ALU0、ALU1、およびSHF0の結果は書込みマルチプレクサ148へ送り返されて整数レジスタRA[]にストアされ、および読取りマルチプレクサ150へも送り返されて以後の演算のオペランドとして再使用される。ALU0またはSHF0のいずれかの出力はバス120を経由して図3の浮動小数点部分へ送られる。ALU0およびALU1は、それぞれ、整数比較オペレーションのブール結果を示した信号ALU0_BDおよびALU1_BDをも出力する。ALU0_BDとALU1_BDはそれぞれの機能ユニットのゼロ・フラグと符号フラグから直接に計算される。ALU0は信号EX_TADR[]およびEX_VM_ADRをも出力する。EX−TADR[]は絶対ブランチ命令に対する生成されたターゲット・アドレスであり、ターゲット命令をフェッチするためにIFU(図示せず)へ送られる。EX_VM_ADR[]は、メモリからロードし、メモリヘストアするとき使用される仮想メモリであり、アドレス変換のためにVMU(図示せず)へ送られる。
空白バイト・テスタNULL146は、第1ソース・マルチプレクサからのオペランドについて空白バイト・テスト操作を行う。一実施例では、このオペランドはALU1から得られる。NULL146は、32ビットの第1ソース・オペランドに値がゼロのバイトが含まれているかどうかを示したブール信号NULLA_BDを出力する。
読取りマルチプレクサ150−0および150−1の出力はバス114を経由して(図3の)浮動小数点部分へ送られる。また、読取りマルチプレクサ150−4の出力は、STDT−INT[]ストアデータとして整数ロード/ストア・ユニット152ヘ送られる。
制御ビットPSR[7]はレジスタ・セットA18へ送られる。図1において、モード制御ユニット44からライン46上をIEUモード整数スイッチ34へ送られるのは、この信号である。IEUモード整数スイッチは図4に示すようにレジスタ・セットA18の内部に置かれている。
図8はS1およびS2マルチプレクサのコントロールの詳細を示した図である。
C.ブール部分のデータ経路
図6に示すように、レジスタ・セットC22もマルチポートを備えている。一実施例では、レジスタ・セットC22は2つの書込みポートWC0−1と5つの読取りポートRDC0−4を備えている。レジスタ・セットC22とブール組合せユニット(Boolean combinational unit)70を除く図6のすべてのエレメントは図1のSMCユニットC80を構成している。
ブール・レジスタ・セットの2つの書込みポートWC0およびWC1は、それぞれ、書込みマルチプレクサ170−0および170−1に結合されている。書込みマルチプレクサ170はブール組合せオペレーションのブール結果を示しているブール組合せユニット70の出力;整数比較のブール結果を示している図5の整数部分からのALU0_BD;浮動小数点比較のブール結果を示している図3の浮動小数点部分からのFALU_BD;ALU1における比較命令の結果を示しているALU1からのALULBD−Pまたは整数部分における空白バイトを示しているNULL146からのNULLA−BD;およびALU2における比較オペレーションの結果を示しているALU2からのALU2_BD−Pまたは浮動小数点部分における比較オペレーションの結果を示しているNULL108からのNULLB_BDからデータを受け取る。あるひとつのモードでは、ALU0_BD、ALU1_BD、ALU2_BD、およびFALU_BD信号はデータ経路から受け取られないで、PSR内のゼロ・フラグ、マイナス・フラグ、キャリー・フラグ、その他の条件フラグに応じて計算される。一実施モードでは、どの瞬時においても最大8命令までがIEUで実行できるので、IEUは最大8個のPSRを維持している。
ブール・レジスタ・セットCはバスEX_SR_DT[]にも結合されて、「特殊レジスタ移動」命令で使用される。CSRは、1つの32ビット・レジスタであるかのように全体として読み書きされる。この結果、ある種の重大なシステム・エラーが起こったときや、ある種の大規模なコンテキスト・スイッチングを行ったとき、必要に応じて、マシン・ステート情報を高速にセーブし復元することができる。
ブール・レジスタ・セットの4つの読取りポートRDC0〜RDC3はそれぞれ読取りマルチプレクサ172−0〜170−3に結合されている。読取りマルチプレクサ172は書込みマルチプレクサ170が受け取るのと同じセットの入力を受け取る。ブール組合せユニット70は、読取りマルチプレクサ170−0と170−1から入力を受け取る。読取りマルチプレクサ172−2およびB172−3は、それぞれ、信号BLBP_CPORTおよびBLBP_DPORTを出力する。BLBP_CPORTはIEUで条件付きブランチ命令の基礎として使用される。BLBP_DPORTは「ブールによる加算」命令で使用され、AまたはBセットの中の整数レジスタを、Cセットの中のレジスタの内容に応じて、ゼロか1(先行ゼロ付き)にセットする。読取りポートRDC4は現時点では未使用であり、IEUのブール演算機能を将来強化する場合に備えて予約されている。
IV. 結論
本発明の特徴および利点を、本発明の特定実施例を参照して種々説明してきたが、本発明は上述した実施例に限定されるものではない、本発明の範囲は請求の範囲に明確化されている通りである。
本発明のマイクロプロセッサの命令実行ユニットを示すブロック図であり、レジスタ・ファイルの要素を示している。 図1に示した命令実行ユットの浮動小数点部分を示す簡略ブロック図である。 図1に示した命令実行ユットの浮動小数点部分を示す簡略ブロック図である。 図1に示した命令実行ユットの整数部分を示す簡略ブロック図である。 図1に示した命令実行ユットの整数部分を示す簡略ブロック図である。 図1に示した命令実行ユットのブール部分を示す簡略ブロック図である。 浮動小数点および整数部分を示す詳細図であり、レジスタ・セット間の選択手段を示している。 浮動小数点および整数部分を示す詳細図であり、レジスタ・セット間の選択手段を示している。 図1に示した命令実行ユニットによって実行可能なマイクロプロセッサ命令ワード例のフィールドを示す図である。
符号の説明
10…命令実行ユニット、12…レジスタ・ファイル、14…実行エンジン、16−0〜16−n…レジスタ・バンク、18…レジスタ・セットA、20…レジスタ・セットFB、22…レジスタ・セットC、44…モード制御ユニット、62…CSRセレクタ・ユニット、66…整数機能ユニット、68…浮動小数点機能ユニット、70…ブール機能ユニット、74…スイッチングとマルチプレクシング制御ユニットA、76…スイッチングとマルチプレクシング制御ユニットB、78…バンク・セレクタ・ユニット、80…スイッチングとマルチプレクシング制御ユニットC

Claims (2)

  1. i)整数命令を実行するための整数実行手段であって、各整数命令は1つまたは2つ以上の整数値オペランドに対して整数オペレーションを実行して、整数値結果を生成するようにした整数実行手段と、
    ii)浮動小数点命令を実行するための浮動小数点実行手段であって、各浮動小数点命令は1つまたは2つ以上の浮動小数点値オペランドに対して浮動小数点オペレーションを実行して、浮動小数点値結果を生成するようにした浮動小数点実行手段と、
    ここで、各命令は1つまたは2つ以上のオペランドを取り 出すべき1つまたは2つ以上のソースを指定し、さらに、その結果をストアすべき宛先を指定しており、また整数オペレーションは整数値のベースまたは整数値のインデックスを指定し
    iii)複数の第1レジスタを有し、整数値と浮動小数点値を保持するための第1レジスタ・セット手段、及び複数の第2レジスタを有し、整数値を保持するための第2レジスタ・セット手段を含んでいるレジスタ・バンクと、
    iv)第1レジスタ・セット手段及び第2レジスタ・セット手段と双方の実行手段とに結合されたアクセス手段であって、
    )整数実行手段のための整数値オペランドを命令によって指示された通りにいずれか1つの第1レジスタまたは第2レジスタから取り出し、および
    )整数値結果を整数実行手段から命令によって指示された通りにいずれか1つの第1レジスタまたは第2レジスタにストアするように動作し、
    3)浮動小数点実行手段のための浮動小数点値オペランドを、命令によって指示された通りにいずれか1つの第1レジスタから取り出し、および
    4)浮動小数点値結果を浮動小数点実行手段から、命令によって指示された通りにいずれか1つの第1レジスタにストアするように動作する
    アクセス手段と
    を備えたことを特徴とする装置。
  2. 請求項記載の装置において、
    ブール組合せ命令を実行するためのブール実行手段であって、各ブール組合せ命令は1つまたは2つ以上のブール値オペランドに対してブール組合せオペレーションを実行して、ブール値結果を生成するようにしたブール実行手段をさらに備え、
    前記レジスタ・バンクは、複数の第3レジスタをもち、ブール値を保持するための第3レジスタ・セット手段をさらに備え、
    前記アクセス手段は、さらに、
    )ブール実行手段のためのブール値オペランドをブール組合せ命令によって指示された通りに、いずれか1つの第3レジスタから取り出し、および
    )ブール実行手段からのブール値結果をブール組合せ命令によって指示された通りに、いずれか1つの第3レジスタにストアするように動作する
    ことを特徴とする装置。
JP2004010369A 1991-07-08 2004-01-19 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ Expired - Lifetime JP3880056B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/726,773 US5493687A (en) 1991-07-08 1991-07-08 RISC microprocessor architecture implementing multiple typed register sets

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP50240393A Division JP3607701B2 (ja) 1991-07-08 1992-07-08 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ

Publications (2)

Publication Number Publication Date
JP2004185638A JP2004185638A (ja) 2004-07-02
JP3880056B2 true JP3880056B2 (ja) 2007-02-14

Family

ID=24919957

Family Applications (3)

Application Number Title Priority Date Filing Date
JP50240393A Expired - Lifetime JP3607701B2 (ja) 1991-07-08 1992-07-08 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
JP2004010368A Expired - Lifetime JP3864160B2 (ja) 1991-07-08 2004-01-19 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
JP2004010369A Expired - Lifetime JP3880056B2 (ja) 1991-07-08 2004-01-19 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP50240393A Expired - Lifetime JP3607701B2 (ja) 1991-07-08 1992-07-08 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
JP2004010368A Expired - Lifetime JP3864160B2 (ja) 1991-07-08 2004-01-19 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ

Country Status (7)

Country Link
US (10) US5493687A (ja)
EP (2) EP0547216B1 (ja)
JP (3) JP3607701B2 (ja)
KR (1) KR100294964B1 (ja)
AT (1) ATE185205T1 (ja)
DE (1) DE69230057T2 (ja)
WO (1) WO1993001543A1 (ja)

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5371684A (en) * 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
EP0636256B1 (en) * 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
DE69308548T2 (de) * 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
US5640582A (en) * 1992-05-21 1997-06-17 Intel Corporation Register stacking in a computer system
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
DE69330889T2 (de) * 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
GB2286265B (en) * 1994-01-26 1998-02-18 Advanced Risc Mach Ltd selectable processing registers
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5805927A (en) * 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5664159A (en) * 1994-03-08 1997-09-02 Exponential Technology, Inc. Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register
US5734874A (en) * 1994-04-29 1998-03-31 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
BR9509845A (pt) 1994-12-02 1997-12-30 Intel Corp Microprocessador com operação de compactação de elementos de operação compósitos
US6081880A (en) * 1995-03-09 2000-06-27 Lsi Logic Corporation Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file
US5713035A (en) * 1995-03-31 1998-01-27 International Business Machines Corporation Linking program access register number with millicode operand access
US5966529A (en) * 1995-05-15 1999-10-12 Zsp Corporation Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution
US5812871A (en) * 1995-06-30 1998-09-22 Motorola Inc. Data processing system and a method of optimizing an operation of the data processing system
JP3512272B2 (ja) * 1995-08-09 2004-03-29 株式会社日立製作所 比較演算装置およびグラフィック演算システム
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US5900025A (en) * 1995-09-12 1999-05-04 Zsp Corporation Processor having a hierarchical control register file and methods for operating the same
US5857096A (en) * 1995-12-19 1999-01-05 Intel Corporation Microarchitecture for implementing an instruction to clear the tags of a stack reference register file
US6792523B1 (en) 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US5940859A (en) 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US5835748A (en) * 1995-12-19 1998-11-10 Intel Corporation Method for executing different sets of instructions that cause a processor to perform different data type operations on different physical registers files that logically appear to software as a single aliased register file
US5852726A (en) * 1995-12-19 1998-12-22 Intel Corporation Method and apparatus for executing two types of instructions that specify registers of a shared logical register file in a stack and a non-stack referenced manner
US5701508A (en) * 1995-12-19 1997-12-23 Intel Corporation Executing different instructions that cause different data type operations to be performed on single logical register file
US5860000A (en) * 1996-01-31 1999-01-12 Hitachi Micro Systems, Inc. Floating point unit pipeline synchronized with processor pipeline
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5838984A (en) * 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US5948097A (en) * 1996-08-29 1999-09-07 Intel Corporation Method and apparatus for changing privilege levels in a computer system without use of a call gate
US5774694A (en) * 1996-09-25 1998-06-30 Intel Corporation Method and apparatus for emulating status flag
US6052753A (en) * 1997-01-21 2000-04-18 Alliedsignal Inc. Fault tolerant data bus
US5949994A (en) * 1997-02-12 1999-09-07 The Dow Chemical Company Dedicated context-cycling computer with timed context
US5809327A (en) * 1997-03-27 1998-09-15 Atmel Corporation Eight-bit microcontroller having a risc architecture
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
US6128728A (en) 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US5978901A (en) * 1997-08-21 1999-11-02 Advanced Micro Devices, Inc. Floating point and multimedia unit with data type reclassification capability
KR100492985B1 (ko) * 1997-08-27 2005-08-25 삼성전자주식회사 마이크로콘트롤러또는마이크로프로세서의워킹레지스터블락및워킹레지스터블락제어방법
US6961846B1 (en) * 1997-09-12 2005-11-01 Infineon Technologies North America Corp. Data processing unit, microprocessor, and method for performing an instruction
US6298431B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Banked shadowed register file
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6308261B1 (en) * 1998-01-30 2001-10-23 Hewlett-Packard Company Computer system having an instruction for probing memory latency
US6105129A (en) * 1998-02-18 2000-08-15 Advanced Micro Devices, Inc. Converting register data from a first format type to a second format type if a second type instruction consumes data produced by a first type instruction
US20010049780A1 (en) * 1998-03-27 2001-12-06 Shreekant Thakkar Method and apparatus for performing integer operations in response to a result of a floating point operation
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
US6282633B1 (en) * 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
US7206877B1 (en) 1998-12-22 2007-04-17 Honeywell International Inc. Fault tolerant data communication network
US6327650B1 (en) * 1999-02-12 2001-12-04 Vsli Technology, Inc. Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
US6668316B1 (en) 1999-02-17 2003-12-23 Elbrus International Limited Method and apparatus for conflict-free execution of integer and floating-point operations with a common register file
US6745318B1 (en) * 1999-08-18 2004-06-01 Sanjay Mansingh Method and apparatus of configurable processing
US6457118B1 (en) * 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
US6766440B1 (en) * 2000-02-18 2004-07-20 Texas Instruments Incorporated Microprocessor with conditional cross path stall to minimize CPU cycle time length
US6665790B1 (en) * 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
US7028170B2 (en) * 2000-03-08 2006-04-11 Sun Microsystems, Inc. Processing architecture having a compare capability
AU2001243463A1 (en) 2000-03-10 2001-09-24 Arc International Plc Memory interface and method of interfacing between functional entities
US7162615B1 (en) * 2000-06-12 2007-01-09 Mips Technologies, Inc. Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6757807B1 (en) * 2000-08-18 2004-06-29 Sun Microsystems, Inc. Explicitly clustered register file and execution unit architecture
US6718429B1 (en) * 2000-08-22 2004-04-06 Antevista Gmbh Configurable register file with multi-range shift register support
US7620832B2 (en) * 2000-09-20 2009-11-17 Mips Technologies, Inc. Method and apparatus for masking a microprocessor execution signature
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7162621B2 (en) 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7237097B2 (en) * 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US6666383B2 (en) 2001-05-31 2003-12-23 Koninklijke Philips Electronics N.V. Selective access to multiple registers having a common name
US7318145B1 (en) 2001-06-01 2008-01-08 Mips Technologies, Inc. Random slip generator
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
DE10149332A1 (de) 2001-10-06 2003-04-30 Bosch Gmbh Robert Verfahren zur Übertragung von Daten von wenigstens einem Sensor zu einem Steuergerät
US7552261B2 (en) * 2001-10-12 2009-06-23 Mips Technologies, Inc. Configurable prioritization of core generated interrupts
US7487339B2 (en) * 2001-10-12 2009-02-03 Mips Technologies, Inc. Method and apparatus for binding shadow registers to vectored interrupts
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors
WO2004051449A2 (en) * 2002-12-04 2004-06-17 Koninklijke Philips Electronics N.V. Register file gating to reduce microprocessor power dissipation
US7673118B2 (en) * 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7024544B2 (en) * 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7163305B2 (en) * 2003-06-25 2007-01-16 Gemtron Corporation Illuminated shelf
TWI259398B (en) * 2004-02-04 2006-08-01 Sunplus Technology Co Ltd Device and method using operation mode in processor to switch register
US7613950B2 (en) * 2004-02-27 2009-11-03 Hewlett-Packard Development Company, L.P. Detecting floating point hardware failures
WO2005114441A2 (en) * 2004-05-19 2005-12-01 Arc International (Uk) Limited Microprocessor architecture
TWI318359B (en) * 2005-04-13 2009-12-11 Ind Tech Res Inst Unified single-core & multi-mode processor and its program execution method
US7461307B2 (en) * 2005-05-06 2008-12-02 Lsi Corporation System and method for improving transition delay fault coverage in delay fault tests through use of an enhanced scan flip-flop
US8041930B2 (en) * 2005-05-11 2011-10-18 Arm Limited Data processing apparatus and method for controlling thread access of register sets when selectively operating in secure and non-secure domains
US8212823B2 (en) * 2005-09-28 2012-07-03 Synopsys, Inc. Systems and methods for accelerating sub-pixel interpolation in video processing applications
DE102005050382B4 (de) * 2005-10-20 2012-08-09 Infineon Technologies Ag Prozessor zum Prüfen einer Bedingung für eine bedingte Ausführung eines Programmbefehls
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
US20080126743A1 (en) * 2006-07-18 2008-05-29 Via Technologies, Inc. Reducing Stalls in a Processor Pipeline
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US8999337B2 (en) * 2007-06-11 2015-04-07 Abbvie Biotechnology Ltd. Methods for treating juvenile idiopathic arthritis by inhibition of TNFα
US8117424B2 (en) 2007-09-21 2012-02-14 Siemens Industry, Inc. Systems, devices, and/or methods for managing programmable logic controller processing
US7877582B2 (en) * 2008-01-31 2011-01-25 International Business Machines Corporation Multi-addressable register file
US7849294B2 (en) 2008-01-31 2010-12-07 International Business Machines Corporation Sharing data in internal and memory representations with dynamic data-driven conversion
KR101700405B1 (ko) 2010-03-22 2017-01-26 삼성전자주식회사 레지스터, 프로세서 및 프로세서 제어 방법
US8707013B2 (en) * 2010-07-13 2014-04-22 Texas Instruments Incorporated On-demand predicate registers
US8539206B2 (en) * 2010-09-24 2013-09-17 Intel Corporation Method and apparatus for universal logical operations utilizing value indexing
US20120173851A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation Mechanism for maintaining dynamic register-level memory-mode flags in a virtual machine system
US9727336B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers
US9411585B2 (en) 2011-09-16 2016-08-09 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9778877B1 (en) * 2011-11-02 2017-10-03 Rambus Inc. High capacity, high performance memory system
CN104126169B (zh) * 2011-12-22 2018-11-09 英特尔公司 用于在两个向量寄存器的相应打包数据元素之间执行绝对差计算的系统、装置和方法
US9323529B2 (en) 2012-07-18 2016-04-26 International Business Machines Corporation Reducing register read ports for register pairs
US9298459B2 (en) * 2012-07-18 2016-03-29 International Business Machines Corporation Managing register pairing
US9323532B2 (en) 2012-07-18 2016-04-26 International Business Machines Corporation Predicting register pairs
US9477476B2 (en) * 2012-11-27 2016-10-25 Qualcomm Incorporated Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US10228941B2 (en) 2013-06-28 2019-03-12 Intel Corporation Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register
US10698688B2 (en) 2015-06-24 2020-06-30 International Business Machines Corporation Efficient quantization of compare results
US10620952B2 (en) 2015-06-24 2020-04-14 International Business Machines Corporation Conversion of boolean conditions
US10705841B2 (en) 2015-06-24 2020-07-07 International Business Machines Corporation Instruction to perform a logical operation on conditions and to quantize the Boolean result of that operation
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
CN112269596B (zh) * 2020-10-19 2023-11-28 童先娥 一种指令处理方法及处理器

Family Cites Families (230)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3346851A (en) 1964-07-08 1967-10-10 Control Data Corp Simultaneous multiprocessing computer system
US3718912A (en) * 1970-12-22 1973-02-27 Ibm Instruction execution unit
US3789365A (en) * 1971-06-03 1974-01-29 Bunker Ramo Processor interrupt system
US3771138A (en) 1971-08-31 1973-11-06 Ibm Apparatus and method for serializing instructions from two independent instruction streams
US3913074A (en) 1973-12-18 1975-10-14 Honeywell Inf Systems Search processing apparatus
US4034349A (en) 1976-01-29 1977-07-05 Sperry Rand Corporation Apparatus for processing interrupts in microprocessing systems
US4128880A (en) 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4212076A (en) * 1976-09-24 1980-07-08 Giddings & Lewis, Inc. Digital computer structure providing arithmetic and boolean logic operations, the latter controlling the former
US4315314A (en) * 1977-12-30 1982-02-09 Rca Corporation Priority vectored interrupt having means to supply branch address directly
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4228495A (en) 1978-12-19 1980-10-14 Allen-Bradley Company Multiprocessor numerical control system
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4296470A (en) 1979-06-21 1981-10-20 International Business Machines Corp. Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system
EP0021843A1 (en) * 1979-07-03 1981-01-07 Metal Closures Limited Improvements in easy-opening ends for cans and the like
JPS5616248A (en) 1979-07-17 1981-02-17 Matsushita Electric Ind Co Ltd Processing system for interruption
JPS6028015B2 (ja) 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
US4434461A (en) * 1980-09-15 1984-02-28 Motorola, Inc. Microprocessor with duplicate registers for processing interrupts
JPS5757345A (en) 1980-09-24 1982-04-06 Toshiba Corp Data controller
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
JPS57204125A (en) 1981-06-10 1982-12-14 Hitachi Ltd Electron-ray drawing device
US4482950A (en) 1981-09-24 1984-11-13 Dshkhunian Valery Single-chip microcomputer
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
JPS58151655A (ja) * 1982-03-03 1983-09-08 Fujitsu Ltd 情報処理装置
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4500963A (en) * 1982-11-29 1985-02-19 The United States Of America As Represented By The Secretary Of The Army Automatic layout program for hybrid microcircuits (HYPAR)
US4597054A (en) 1982-12-02 1986-06-24 Ncr Corporation Arbiter circuit and method
US4594655A (en) 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
GB8329509D0 (en) 1983-11-04 1983-12-07 Inmos Ltd Computer
JPS60120439A (ja) * 1983-12-05 1985-06-27 Nec Corp 演算処理装置
JPS60144830A (ja) 1984-01-05 1985-07-31 Nec Corp 情報処理装置
US4561051A (en) 1984-02-10 1985-12-24 Prime Computer, Inc. Memory access method and apparatus in multiple processor systems
JPS60225943A (ja) 1984-04-25 1985-11-11 Hitachi Ltd 例外割込み処理方式
US4648045A (en) * 1984-05-23 1987-03-03 The Board Of Trustees Of The Leland Standford Jr. University High speed memory and processor system for raster display
JPS6140650A (ja) 1984-08-02 1986-02-26 Nec Corp マイクロコンピユ−タ
US4991081A (en) * 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4775927A (en) 1984-10-31 1988-10-04 International Business Machines Corporation Processor including fetch operation for branch instruction with control tag
JPH0652784B2 (ja) 1984-12-07 1994-07-06 富士通株式会社 ゲートアレイ集積回路装置及びその製造方法
US4829467A (en) 1984-12-21 1989-05-09 Canon Kabushiki Kaisha Memory controller including a priority order determination circuit
US5255384A (en) 1985-02-22 1993-10-19 Intergraph Corporation Memory address translation system having modifiable and non-modifiable translation mechanisms
US4714994A (en) 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
JPH0762823B2 (ja) 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置
US4613941A (en) 1985-07-02 1986-09-23 The United States Of America As Represented By The Secretary Of The Army Routing method in computer aided customization of a two level automated universal array
US4945479A (en) 1985-07-31 1990-07-31 Unisys Corporation Tightly coupled scientific processing system
US4777588A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
US4719569A (en) * 1985-10-11 1988-01-12 Sun Microsystems, Inc. Arbitrator for allocating access to data processing resources
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
JPS62152043A (ja) 1985-12-26 1987-07-07 Nec Corp 命令コ−ドアクセス制御方式
EP0239081B1 (en) 1986-03-26 1995-09-06 Hitachi, Ltd. Pipelined data processor capable of decoding and executing plural instructions in parallel
JP2545789B2 (ja) 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
JP2684362B2 (ja) 1986-06-18 1997-12-03 株式会社日立製作所 可変長データの記憶方式
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
JPS6324428A (ja) * 1986-07-17 1988-02-01 Mitsubishi Electric Corp キヤツシユメモリ
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
JPS6393041A (ja) 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
US4841453A (en) 1986-11-10 1989-06-20 Ibm Corporation Multidirectional scan and print capability
JPH0793358B2 (ja) 1986-11-10 1995-10-09 日本電気株式会社 ブロック配置処理方式
JPS63131230A (ja) 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
JPH0810430B2 (ja) 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
EP0272198A3 (en) 1986-12-15 1991-10-16 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5283903A (en) * 1986-12-25 1994-02-01 Nec Corporation Priority selector
US5226170A (en) 1987-02-24 1993-07-06 Digital Equipment Corporation Interface between processor and special instruction processor in digital data processing system
US5179689A (en) 1987-03-13 1993-01-12 Texas Instruments Incorporated Dataprocessing device with instruction cache
US4833599A (en) 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US4858116A (en) 1987-05-01 1989-08-15 Digital Equipment Corporation Method and apparatus for managing multiple lock indicators in a multiprocessor computer system
US4811296A (en) 1987-05-15 1989-03-07 Analog Devices, Inc. Multi-port register file with flow-through of data
JPH07113903B2 (ja) * 1987-06-26 1995-12-06 株式会社日立製作所 キャッシュ記憶制御方式
US4992938A (en) * 1987-07-01 1991-02-12 International Business Machines Corporation Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers
US5134561A (en) 1987-07-20 1992-07-28 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US4901233A (en) * 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5150309A (en) 1987-08-04 1992-09-22 Texas Instruments Incorporated Comprehensive logic circuit layout system
US4980817A (en) 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
EP0312764A3 (en) 1987-10-19 1991-04-10 International Business Machines Corporation A data processor having multiple execution units for processing plural classes of instructions in parallel
US5089951A (en) * 1987-11-05 1992-02-18 Kabushiki Kaisha Toshiba Microcomputer incorporating memory
US5197136A (en) * 1987-11-12 1993-03-23 Matsushita Electric Industrial Co., Ltd. Processing system for branch instruction
US4823201A (en) * 1987-11-16 1989-04-18 Technology, Inc. 64 Processor for expanding a compressed video signal
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
JP2513765B2 (ja) 1988-02-03 1996-07-03 富士通株式会社 パイプライン処理における条件分岐制御方式
US4926323A (en) 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor
JPH01228865A (ja) 1988-03-09 1989-09-12 Minolta Camera Co Ltd プリンタ制御装置
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
US5003462A (en) * 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US4897810A (en) * 1988-06-13 1990-01-30 Advanced Micro Devices, Inc. Asynchronous interrupt status bit circuit
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US5261057A (en) 1988-06-30 1993-11-09 Wang Laboratories, Inc. I/O bus to system interface
JP2761506B2 (ja) 1988-07-08 1998-06-04 株式会社日立製作所 主記憶制御装置
US5032985A (en) 1988-07-21 1991-07-16 International Business Machines Corporation Multiprocessor system with memory fetch buffer invoked during cross-interrogation
US5148536A (en) 1988-07-25 1992-09-15 Digital Equipment Corporation Pipeline having an integral cache which processes cache misses and loads data in parallel
US5291615A (en) * 1988-08-11 1994-03-01 Kabushiki Kaisha Toshiba Instruction pipeline microprocessor
JPH0673105B2 (ja) 1988-08-11 1994-09-14 株式会社東芝 命令パイプライン方式のマイクロプロセッサ
US4974155A (en) 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
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
US5167035A (en) 1988-09-08 1992-11-24 Digital Equipment Corporation Transferring messages between nodes in a network
DE68927218T2 (de) 1988-10-18 1997-02-06 Hewlett Packard Co Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
JPH02118757A (ja) 1988-10-28 1990-05-07 Nec Corp データ処理システム
JP2810068B2 (ja) 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
JPH0769811B2 (ja) 1988-12-21 1995-07-31 松下電器産業株式会社 データ処理装置
US5148533A (en) 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5125092A (en) 1989-01-09 1992-06-23 International Business Machines Corporation Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes
JP2736092B2 (ja) 1989-01-10 1998-04-02 株式会社東芝 バッファ装置
US5127091A (en) 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5067069A (en) 1989-02-03 1991-11-19 Digital Equipment Corporation Control of multiple functional units with parallel operation in a microcoded execution unit
US5125083A (en) 1989-02-03 1992-06-23 Digital Equipment Corporation Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
US4985825A (en) * 1989-02-03 1991-01-15 Digital Equipment Corporation System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
US5222223A (en) 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
US5167026A (en) 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142633A (en) 1989-02-03 1992-08-25 Digital Equipment Corporation Preprocessing implied specifiers in a pipelined processor
US5142634A (en) 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5133074A (en) 1989-02-08 1992-07-21 Acer Incorporated Deadlock resolution with cache snooping
US5226166A (en) 1989-02-10 1993-07-06 Mitsubishi Denki K.K. Parallel operation processor with second command unit
US5293500A (en) * 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
JPH0769825B2 (ja) 1989-02-10 1995-07-31 三菱電機株式会社 並列処理装置
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5119485A (en) 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5072364A (en) 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
US5136697A (en) 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5129067A (en) 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
JPH0335324A (ja) 1989-06-30 1991-02-15 Sharp Corp マイクロコンピュータ
EP0407911B1 (en) * 1989-07-07 1998-12-09 Hitachi, Ltd. Parallel processing apparatus and parallel processing method
JPH07120284B2 (ja) 1989-09-04 1995-12-20 三菱電機株式会社 データ処理装置
US5303382A (en) * 1989-09-21 1994-04-12 Digital Equipment Corporation Arbiter with programmable dynamic request prioritization
US5179530A (en) * 1989-11-03 1993-01-12 Zoran Corporation Architecture for integrated concurrent vector signal processor
US5226125A (en) 1989-11-17 1993-07-06 Keith Balmer Switch matrix having integrated crosspoint logic and method of operation
DE68928980T2 (de) 1989-11-17 1999-08-19 Texas Instruments Inc Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
JPH03186928A (ja) * 1989-12-16 1991-08-14 Mitsubishi Electric Corp データ処理装置
US5179673A (en) * 1989-12-18 1993-01-12 Digital Equipment Corporation Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline
US5197130A (en) 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5251306A (en) 1990-01-16 1993-10-05 Advanced Micro Devices, Inc. Apparatus for controlling execution of a program in a computing device
JPH061463B2 (ja) 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US5222240A (en) 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5185872A (en) * 1990-02-28 1993-02-09 Intel Corporation System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy
US5120083A (en) 1990-03-19 1992-06-09 Henkels & Mccoy, Inc. Expansion joint for conduit for cables
JP2818249B2 (ja) 1990-03-30 1998-10-30 株式会社東芝 電子計算機
IT1247640B (it) * 1990-04-26 1994-12-28 St Microelectronics Srl Operazioni booleane tra due qualsiasi bit di due qualsiasi registri
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
US5214763A (en) 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
EP0457403B1 (en) 1990-05-18 1998-01-21 Koninklijke Philips Electronics N.V. Multilevel instruction cache and method for using said cache
US5249286A (en) 1990-05-29 1993-09-28 National Semiconductor Corporation Selectively locking memory locations within a microprocessor's on-chip cache
EP0535107B1 (en) 1990-06-11 1999-12-08 Cray Research, Inc. Method for optimizing instruction scheduling
CA2038264C (en) 1990-06-26 1995-06-27 Richard James Eickemeyer In-memory preprocessor for a scalable compound instruction set machine processor
US5155843A (en) 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system
CA2045773A1 (en) 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
EP0468831B1 (en) 1990-06-29 1997-10-15 Digital Equipment Corporation Bus protocol for write-back cache processor
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
US5197132A (en) * 1990-06-29 1993-03-23 Digital Equipment Corporation Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery
US5222244A (en) 1990-12-20 1993-06-22 Intel Corporation Method of modifying a microinstruction with operands specified by an instruction held in an alias register
USH1291H (en) * 1990-12-20 1994-02-01 Hinton Glenn J Microprocessor in which multiple instructions are executed in one clock cycle by providing separate machine bus access to a register file for different types of instructions
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
US5261071A (en) 1991-03-21 1993-11-09 Control Data System, Inc. Dual pipe cache memory with out-of-order issue capability
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5488729A (en) 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5355457A (en) 1991-05-21 1994-10-11 Motorola, Inc. Data processor for performing simultaneous instruction retirement and backtracking
US5630157A (en) 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
US5278963A (en) * 1991-06-21 1994-01-11 International Business Machines Corporation Pretranslation of virtual addresses prior to page crossing
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
EP1526446A3 (en) 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
JP3316851B2 (ja) 1991-07-08 2002-08-19 セイコーエプソン株式会社 シングル・チップ・ページ・プリンタ・コントローラ
US5440752A (en) 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
ATE188786T1 (de) 1991-07-08 2000-01-15 Seiko Epson Corp Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus
US5961629A (en) 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5826055A (en) 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5345569A (en) 1991-09-20 1994-09-06 Advanced Micro Devices, Inc. Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
GB2260628A (en) 1991-10-11 1993-04-21 Intel Corp Line buffer for cache memory
JPH0820949B2 (ja) * 1991-11-26 1996-03-04 松下電器産業株式会社 情報処理装置
US5285527A (en) * 1991-12-11 1994-02-08 Northern Telecom Limited Predictive historical cache memory
JPH05197544A (ja) 1992-01-20 1993-08-06 Pfu Ltd データ処理装置
US5617554A (en) 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5398330A (en) * 1992-03-05 1995-03-14 Seiko Epson Corporation Register file backup queue
WO1993019424A1 (en) 1992-03-18 1993-09-30 Seiko Epson Corporation System and method for supporting a multiple width memory subsystem
EP0636256B1 (en) 1992-03-31 1997-06-04 Seiko Epson Corporation Superscalar risc processor instruction scheduling
US5371684A (en) 1992-03-31 1994-12-06 Seiko Epson Corporation Semiconductor floor plan for a register renaming circuit
DE69308548T2 (de) 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
US5442756A (en) * 1992-07-31 1995-08-15 Intel Corporation Branch prediction and resolution apparatus for a superscalar computer processor
US5619668A (en) * 1992-08-10 1997-04-08 Intel Corporation Apparatus for register bypassing in a microprocessor
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5524225A (en) 1992-12-18 1996-06-04 Advanced Micro Devices Inc. Cache system and method for providing software controlled writeback
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5604912A (en) 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
US5627984A (en) 1993-03-31 1997-05-06 Intel Corporation Apparatus and method for entry allocation for a buffer resource utilizing an internal two cycle pipeline
US5577217A (en) 1993-05-14 1996-11-19 Intel Corporation Method and apparatus for a branch target buffer with shared branch pattern tables for associated branch predictions
KR100310581B1 (ko) 1993-05-14 2001-12-17 피터 엔. 데트킨 분기목표버퍼의추측기록메카니즘
JPH0728695A (ja) 1993-07-08 1995-01-31 Nec Corp メモリコントローラ
US5613132A (en) * 1993-09-30 1997-03-18 Intel Corporation Integer and floating point register alias table within processor device
US5446912A (en) 1993-09-30 1995-08-29 Intel Corporation Partial width stalls within register alias table
US5630149A (en) 1993-10-18 1997-05-13 Cyrix Corporation Pipelined processor with register renaming hardware to accommodate multiple size registers
DE69429061T2 (de) 1993-10-29 2002-07-18 Advanced Micro Devices Inc Superskalarmikroprozessoren
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
JP3218524B2 (ja) 1993-12-22 2001-10-15 村田機械株式会社 ワークホルダーのはみ出し検出装置
US5574935A (en) 1993-12-29 1996-11-12 Intel Corporation Superscalar processor with a multi-port reorder buffer
US5630075A (en) 1993-12-30 1997-05-13 Intel Corporation Write combining buffer for sequentially addressed partial line operations originating from a single instruction
US5619664A (en) * 1994-01-04 1997-04-08 Intel Corporation Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms
US5627985A (en) 1994-01-04 1997-05-06 Intel Corporation Speculative and committed resource files in an out-of-order processor
US5604877A (en) * 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for resolving return from subroutine instructions in a computer processor
US5452426A (en) 1994-01-04 1995-09-19 Intel Corporation Coordinating speculative and committed state register source data and immediate source data in a processor
US5577200A (en) 1994-02-28 1996-11-19 Intel Corporation Method and apparatus for loading and storing misaligned data on an out-of-order execution computer system
US5608885A (en) * 1994-03-01 1997-03-04 Intel Corporation Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions
US5630083A (en) 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5564056A (en) * 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
US5586278A (en) 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US5625788A (en) 1994-03-01 1997-04-29 Intel Corporation Microprocessor with novel instruction for signaling event occurrence and for providing event handling information in response thereto
US5623628A (en) 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5394351A (en) * 1994-03-11 1995-02-28 Nexgen, Inc. Optimized binary adder and comparator having an implicit constant for an input
US5574927A (en) 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5490280A (en) * 1994-03-31 1996-02-06 Intel Corporation Apparatus and method for entry allocation for a resource buffer
US5615126A (en) * 1994-08-24 1997-03-25 Lsi Logic Corporation High-speed internal interconnection technique for integrated circuits that reduces the number of signal lines through multiplexing
BR9509845A (pt) 1994-12-02 1997-12-30 Intel Corp Microprocessador com operação de compactação de elementos de operação compósitos
US5819101A (en) 1994-12-02 1998-10-06 Intel Corporation Method for packing a plurality of packed data elements in response to a pack instruction
US5666494A (en) 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5778210A (en) 1996-01-11 1998-07-07 Intel Corporation Method and apparatus for recovering the state of a speculatively scheduled operation in a processor which cannot be executed at the speculated time
US5832205A (en) 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US5838936A (en) * 1997-03-10 1998-11-17 Emulex Corporation Elastic bus interface data buffer
US6418529B1 (en) 1998-03-31 2002-07-09 Intel Corporation Apparatus and method for performing intra-add operation
US7897110B2 (en) 2005-12-20 2011-03-01 Asml Netherlands B.V. System and method for detecting at least one contamination species in a lithographic apparatus
US7685401B2 (en) 2006-12-27 2010-03-23 Intel Corporation Guest to host address translation for devices to access memory in a partitioned system

Also Published As

Publication number Publication date
EP0911724A3 (en) 2000-01-12
US20100106942A1 (en) 2010-04-29
US20030115440A1 (en) 2003-06-19
EP0547216B1 (en) 1999-09-29
US20070113047A1 (en) 2007-05-17
US5493687A (en) 1996-02-20
US5682546A (en) 1997-10-28
JP3607701B2 (ja) 2005-01-05
US6044449A (en) 2000-03-28
EP0911724A2 (en) 1999-04-28
ATE185205T1 (de) 1999-10-15
US5560035A (en) 1996-09-24
JP3864160B2 (ja) 2006-12-27
JP2004185638A (ja) 2004-07-02
US5838986A (en) 1998-11-17
EP0547216A1 (en) 1993-06-23
US20010034823A1 (en) 2001-10-25
DE69230057D1 (de) 1999-11-04
DE69230057T2 (de) 2000-03-09
US7685402B2 (en) 2010-03-23
KR930702717A (ko) 1993-09-09
US7941636B2 (en) 2011-05-10
JP2004185637A (ja) 2004-07-02
US6249856B1 (en) 2001-06-19
WO1993001543A1 (en) 1993-01-21
KR100294964B1 (ko) 2001-09-17
US7555631B2 (en) 2009-06-30

Similar Documents

Publication Publication Date Title
JP3880056B2 (ja) 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
EP0679991B1 (en) Data processor for variable width operands
US5640524A (en) Method and apparatus for chaining vector instructions
EP0368332B1 (en) Pipeline data processor
EP0871108B1 (en) Backward-compatible computer architecture with extended word size and address space
US5926646A (en) Context-dependent memory-mapped registers for transparent expansion of a register file
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
US6088781A (en) Stride instruction for fetching data separated by a stride amount
US6145075A (en) Apparatus and method for executing a single-cycle exchange instruction to exchange contents of two locations in a register file
US5941984A (en) Data processing device
US6035388A (en) Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units
US6725355B1 (en) Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks
EP1050800A1 (en) A pipelined execution unit
US6704855B1 (en) Method and apparatus for reducing encoding needs and ports to shared resources in a processor
JPH06501805A (ja) 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
JP3102399B2 (ja) データ処理装置及び方法
WO2001082059A2 (en) Method and apparatus to improve context switch times in a computing system
JPH1165923A (ja) 演算処理装置およびメモリアクセス方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050601

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051108

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20060104

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20060329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060724

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061106

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6