JPS6349843A - 縮小命令セット・コンピュ−タ - Google Patents
縮小命令セット・コンピュ−タInfo
- Publication number
- JPS6349843A JPS6349843A JP62119167A JP11916787A JPS6349843A JP S6349843 A JPS6349843 A JP S6349843A JP 62119167 A JP62119167 A JP 62119167A JP 11916787 A JP11916787 A JP 11916787A JP S6349843 A JPS6349843 A JP S6349843A
- Authority
- JP
- Japan
- Prior art keywords
- output
- instructions
- register
- registers
- instruction
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 description 13
- 238000013459 approach Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 10
- 238000007792 addition Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 101000686031 Homo sapiens Proto-oncogene tyrosine-protein kinase ROS Proteins 0.000 description 6
- 102100023347 Proto-oncogene tyrosine-protein kinase ROS Human genes 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 240000002989 Euphorbia neriifolia Species 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は一般に縮小命令セット・コンピュータ(RIS
C)に関し、より具体的には、ハードウェアをほとんど
追加せずにRISCの性能を高めることに関するもので
ある。
C)に関し、より具体的には、ハードウェアをほとんど
追加せずにRISCの性能を高めることに関するもので
ある。
RISC技術の2つの例が、次の論文に詳細に記載され
ている。(1) George Radianによるr
The 801 Minicomputer Jと(2
) Pattersonおよび5equir+によるr
RIsc I: A reducedInstruc
tion Set VLSI Computer J。
ている。(1) George Radianによるr
The 801 Minicomputer Jと(2
) Pattersonおよび5equir+によるr
RIsc I: A reducedInstruc
tion Set VLSI Computer J。
この2つの論文に対する完全な書誌的情報については、
以下でさらに十分に説明する。
以下でさらに十分に説明する。
半導体産業では、最近の開発試況が示すように、超大規
模集積回路(VLS I )でマイクロプロセッサの設
計者が選択すべき道が2つある。第1の手法は、どんど
ん複雑なマイクロプロセッサを開発することである。ソ
フトウェアからハードウェアに移される機能がより多く
なって、ハードウェアがそれだけ複雑になる。第2の手
法は、簡単な機能を実行するより速いプロセッサを開発
することである。この手法では、ソフトウェアで機能の
大部分を実現することが必要である。上記2つの論文は
2番目の手法を支持している。
模集積回路(VLS I )でマイクロプロセッサの設
計者が選択すべき道が2つある。第1の手法は、どんど
ん複雑なマイクロプロセッサを開発することである。ソ
フトウェアからハードウェアに移される機能がより多く
なって、ハードウェアがそれだけ複雑になる。第2の手
法は、簡単な機能を実行するより速いプロセッサを開発
することである。この手法では、ソフトウェアで機能の
大部分を実現することが必要である。上記2つの論文は
2番目の手法を支持している。
VLS1回路が複雑になると、設計者は高価なソフトウ
ェアの代りにより安価な手段を使用するようになる。ハ
ードウェアによる方法の方が、実行速度も速い。ソフト
ウェア機能をハードウェアで実現すると、簡潔で、効率
的で、作成しやすく、コンパイルおよびデパックしやす
い高水準言語プログラムをプログラマが開発できるよう
になる。
ェアの代りにより安価な手段を使用するようになる。ハ
ードウェアによる方法の方が、実行速度も速い。ソフト
ウェア機能をハードウェアで実現すると、簡潔で、効率
的で、作成しやすく、コンパイルおよびデパックしやす
い高水準言語プログラムをプログラマが開発できるよう
になる。
第1の手法の欠点は、複雑になるにつれて、設計時間が
長くかかり、設計エラー可能性が増大したり、実現する
うえでの選択のばばが増大することである。この種のコ
ンピュータは複雑命令セット・コンピュータ(CISC
)システムと呼ばれる。
長くかかり、設計エラー可能性が増大したり、実現する
うえでの選択のばばが増大することである。この種のコ
ンピュータは複雑命令セット・コンピュータ(CISC
)システムと呼ばれる。
第2の手法、すなわちRISCシステムに従って、シス
テム・アーキテクチャに対する独自の手法が実現された
。この設計の核心はCPUである。
テム・アーキテクチャに対する独自の手法が実現された
。この設計の核心はCPUである。
このシステム設計では、ユーザがCPUの主要機能を使
用することが可能である。その編成はCl5Cシステム
とは異なる。
用することが可能である。その編成はCl5Cシステム
とは異なる。
中型の中央演算処理装置(CPU)は一般に、CPUの
アーキテクチャをエミュレートするマイクロプロセッサ
として設計される。それには、各命令を幾つかのマイク
ロプロセッサの命令にマツプする必要がある。各CPL
I命令を実行するために必要な命令の数は、基礎となる
マイクロプロセッサの能力、CPUアーキテクチャおよ
びアプリケーションの複雑さに応じて変わる。たとえば
、IBM S/370モデル168は、S/370の
1つの命令光たり3ないし6サイクルを必要とする。
アーキテクチャをエミュレートするマイクロプロセッサ
として設計される。それには、各命令を幾つかのマイク
ロプロセッサの命令にマツプする必要がある。各CPL
I命令を実行するために必要な命令の数は、基礎となる
マイクロプロセッサの能力、CPUアーキテクチャおよ
びアプリケーションの複雑さに応じて変わる。たとえば
、IBM S/370モデル168は、S/370の
1つの命令光たり3ないし6サイクルを必要とする。
アプリケーションのタイプが異なると、命令の使用法も
違ってくる。たとえば、コンピュータ支援設計アプリケ
ーションでは浮動小数点命令を使用し、小切手処理アプ
リケーションでは10進数演算を使用する。大部分のア
プリケーションでは、最も一般的な命令が類似している
。これらの命令は、ロード、ストア、分岐、比較、整数
演算および論理シフト等の比較的簡単な機能であること
が多い。これらと同じ機能が、一般にマイクロプロセッ
サでも使用できる。
違ってくる。たとえば、コンピュータ支援設計アプリケ
ーションでは浮動小数点命令を使用し、小切手処理アプ
リケーションでは10進数演算を使用する。大部分のア
プリケーションでは、最も一般的な命令が類似している
。これらの命令は、ロード、ストア、分岐、比較、整数
演算および論理シフト等の比較的簡単な機能であること
が多い。これらと同じ機能が、一般にマイクロプロセッ
サでも使用できる。
使用可能な機能を一層活用するため、基本縮小命令セッ
ト・マシーン(PRIS〜1)システムのために設計さ
れた基本命令セットをハードウェアで直接実行すること
ができる。すべての基本命令はちょうど1マシーン・サ
イクルを要する。複雑な機能は、Cl5Cインプリメン
テーシヨンの場合と同様の「マイクロコード」で実現さ
れる。すなわち、複雑な機能が、基本命令セットを実行
するソフトウェアで実現される。
ト・マシーン(PRIS〜1)システムのために設計さ
れた基本命令セットをハードウェアで直接実行すること
ができる。すべての基本命令はちょうど1マシーン・サ
イクルを要する。複雑な機能は、Cl5Cインプリメン
テーシヨンの場合と同様の「マイクロコード」で実現さ
れる。すなわち、複雑な機能が、基本命令セットを実行
するソフトウェアで実現される。
Cl5Cインプリメンテーシヨンでは、設計者は、どの
機能が最も頻繁に使用されるかを前もって判断する。た
とえば、10進乗算機能が制御記憶装置にあり、割込み
処理プログラムが主記憶装置に入っている。命令キャッ
シュを使用する場合は、最近の使用法は、どの機能がす
ぐに使用できるかを指示する。
機能が最も頻繁に使用されるかを前もって判断する。た
とえば、10進乗算機能が制御記憶装置にあり、割込み
処理プログラムが主記憶装置に入っている。命令キャッ
シュを使用する場合は、最近の使用法は、どの機能がす
ぐに使用できるかを指示する。
この手法は、複雑な命令がマイクロプログラム化された
手頃な価格のCPUと同等の能力を最悪でも達成する。
手頃な価格のCPUと同等の能力を最悪でも達成する。
しかし、コンパイラのことを念頭に置きながら基本命令
を選ぶと、実際に必要なサイクルはずっと少なくなる。
を選ぶと、実際に必要なサイクルはずっと少なくなる。
以上に述べた情報は、RISCプロセッサのアーキテク
チャを説明するためのものである。さらに詳細な情報に
ついては、以下のような他の特許出願および特許明細書
がある。
チャを説明するためのものである。さらに詳細な情報に
ついては、以下のような他の特許出願および特許明細書
がある。
(1)米国特許第4589087号、「基本命令セット
・マシーン用の条件レジスタ・アーキテクチャ(Con
ditjon Register Architect
ure for aPrimitive In5tr
uction Set lイach:ne ン
J 。
・マシーン用の条件レジスタ・アーキテクチャ(Con
ditjon Register Architect
ure for aPrimitive In5tr
uction Set lイach:ne ン
J 。
(2)米国特許第4589065号、「1マシーン・サ
イクルで実行可能なトラップ命令を基本命令セット・コ
ンピュータ・システムで実現するなめの機構□1lec
hanis+++ for Implementing
OneMachine Cycle Executa
ble Trap In5tructionsin a
Pr1m1tive In5truction Se
t computinBSystem ) J。
イクルで実行可能なトラップ命令を基本命令セット・コ
ンピュータ・システムで実現するなめの機構□1lec
hanis+++ for Implementing
OneMachine Cycle Executa
ble Trap In5tructionsin a
Pr1m1tive In5truction Se
t computinBSystem ) J。
(3) rlマシーン・サイクルで実行可能なブラン
チ・オン・ビット:イン・エニイ・レジスタ命令を基本
命令セット・コンピュータ・システムで実現するための
機構(Mechanism forImplement
ing One Machine Cycle Exe
cutableBranch−On−Bit−In−A
ny−Register In5tructionsi
n a Pr1m1tive In5truction
Set ComputingSystem ) Jと
題する米国特許呂願第509734号。
チ・オン・ビット:イン・エニイ・レジスタ命令を基本
命令セット・コンピュータ・システムで実現するための
機構(Mechanism forImplement
ing One Machine Cycle Exe
cutableBranch−On−Bit−In−A
ny−Register In5tructionsi
n a Pr1m1tive In5truction
Set ComputingSystem ) Jと
題する米国特許呂願第509734号。
(4)米国特許第4569016号、「1マシーン・サ
イクルで実行可能なマスクおよび回転命令を基本命令セ
ット・コンピュータ・システムで実現するための機構(
Mechanism for Implementin
gOne Machine Cycle Execut
able Mask and RotateInstr
uctions in a Pr1m1tive I
n5truction SetComputingSy
stem ) J。
イクルで実行可能なマスクおよび回転命令を基本命令セ
ット・コンピュータ・システムで実現するための機構(
Mechanism for Implementin
gOne Machine Cycle Execut
able Mask and RotateInstr
uctions in a Pr1m1tive I
n5truction SetComputingSy
stem ) J。
(5) r基本命令セット・マシーン用の内部バス・
アーキテクチャ(Internal Bus Arch
itecturefor a Pr1m1tive I
n5truction Set Machine )
Jと題する米国特許出願第566925号。
アーキテクチャ(Internal Bus Arch
itecturefor a Pr1m1tive I
n5truction Set Machine )
Jと題する米国特許出願第566925号。
B、従来技術
RISCコンピュータの技術は、下記の2つの論文に記
載されている。
載されている。
(1) ACM 5IGPLAN N0TICE
S。
S。
Vol、17、No、4.1982年4月、ページ39
〜47に公表されたGeorge Radinにょるr
The 801旧nicomputer J。
〜47に公表されたGeorge Radinにょるr
The 801旧nicomputer J。
(2)1981年5月12日から14日のアーキテクチ
ャに関する第8回rEEE年次シンポジウムの会議議事
録、ページ443〜449に所載の「RISC1: A
Reduced In5truction Set
VLSIcomputerJ 。
ャに関する第8回rEEE年次シンポジウムの会議議事
録、ページ443〜449に所載の「RISC1: A
Reduced In5truction Set
VLSIcomputerJ 。
rtlscコンピュータは、命令駆動ディジタル・コン
ピュータである。この種のコンピュータはユーザの仕様
に従ってデータを処理する。ユーザの仕様は、命令クル
ープから成るプログラム中に編成される。
ピュータである。この種のコンピュータはユーザの仕様
に従ってデータを処理する。ユーザの仕様は、命令クル
ープから成るプログラム中に編成される。
プログラムはコンパイラで処理されて、オブジェクト・
デックが作成される。オブジェクト・ブックは、−組の
他のオブジェクト・デックとリンクされて、機械語によ
る実行可能モジュールが作成される。機械語は、特定の
ハードウェアが、命令として認識して実行する情報であ
る。
デックが作成される。オブジェクト・ブックは、−組の
他のオブジェクト・デックとリンクされて、機械語によ
る実行可能モジュールが作成される。機械語は、特定の
ハードウェアが、命令として認識して実行する情報であ
る。
初期のコンパイラは主として、ユーザがアプリケーショ
ンを開発するのに用いた言8を機械語に変換することに
関係していた。コンパイラがどんどん複雑になるにつれ
て、コンパイラは、プログラムを一層効率的かつ一層速
く実行できるようにするため最適化手法を使用し始めた
。最適化手法が洗練されてくるにつれて、これらの手法
は目標アーキテクチャを一層考慮に入れ始めた。
ンを開発するのに用いた言8を機械語に変換することに
関係していた。コンパイラがどんどん複雑になるにつれ
て、コンパイラは、プログラムを一層効率的かつ一層速
く実行できるようにするため最適化手法を使用し始めた
。最適化手法が洗練されてくるにつれて、これらの手法
は目標アーキテクチャを一層考慮に入れ始めた。
RISCコンピュータ以前は、コンパイラにとって常に
1つの欠点があった。マシーン・アーキテクチャが、機
械語命令を@適化するように設計されていた。RISC
マシーンの出現と共に、マシーンが設計されるとき、コ
ンパイラが考慮に入れられるようになった。RISCマ
シーンは、コンパイルされた手順で最適に動作する。コ
ンパイラで生成される命令は、ユーザが定義したオペレ
ーションを実行するため、−度に1つまたは複数ずつ順
次実行されるようになっている。
1つの欠点があった。マシーン・アーキテクチャが、機
械語命令を@適化するように設計されていた。RISC
マシーンの出現と共に、マシーンが設計されるとき、コ
ンパイラが考慮に入れられるようになった。RISCマ
シーンは、コンパイルされた手順で最適に動作する。コ
ンパイラで生成される命令は、ユーザが定義したオペレ
ーションを実行するため、−度に1つまたは複数ずつ順
次実行されるようになっている。
RISCプロセッサ内での代表的なデータ・フローは2
つの基本的実行ユニット、すなわち、算術論理演算機構
(ALU)および回転(シフト)機構から成る。出力ボ
ートを共用し、かつ−度に1つの装置を使って、命令が
順次実行される。大部分の命令は、一方の実行ユニット
だけを使用する。 一部のRISOシステムは分岐予測
能力を有する。分岐予測システムでは、分岐命令を探す
ため、命令が記憶装置から取り出され、予め復号される
。その命令が分岐命令である場合は、その分岐命令が処
理される。そうでない場合は、命令はプロセッサに送ら
れる。プロセッサが分岐命令に遭遇することはない。
つの基本的実行ユニット、すなわち、算術論理演算機構
(ALU)および回転(シフト)機構から成る。出力ボ
ートを共用し、かつ−度に1つの装置を使って、命令が
順次実行される。大部分の命令は、一方の実行ユニット
だけを使用する。 一部のRISOシステムは分岐予測
能力を有する。分岐予測システムでは、分岐命令を探す
ため、命令が記憶装置から取り出され、予め復号される
。その命令が分岐命令である場合は、その分岐命令が処
理される。そうでない場合は、命令はプロセッサに送ら
れる。プロセッサが分岐命令に遭遇することはない。
それぞれ同じ演算を同期して実行する計算装置を重複し
て具備すると高性能が実現できることが知られている。
て具備すると高性能が実現できることが知られている。
この技術は、主としてて科学技術用ベクトル処理装置で
使用され、非常に費用がかかる。そのような技術の原理
および方法は、たとえば、James E、 Thor
ntonおよびSeymour R,Crayの米国特
許第3346851号に教示されている。
使用され、非常に費用がかかる。そのような技術の原理
および方法は、たとえば、James E、 Thor
ntonおよびSeymour R,Crayの米国特
許第3346851号に教示されている。
さらに、同じ情報について同時に異なる演算を実行でき
るようにするため、作業の幾つかの機能ユニットを独立
した別個のユニットに分割できることが知られている。
るようにするため、作業の幾つかの機能ユニットを独立
した別個のユニットに分割できることが知られている。
こうすると、多くの操作を進行中の作業の検査や比較な
どの特殊演算に使えるので重要である。この作業の分割
により、他の演算の実行中に同時にこれらの特殊演算を
実行して、これらの演算を別の時間に実行することによ
りプロセッサの性能に悪影響を及ぼすことを避けること
ができる。この技術は、Giancarl。
どの特殊演算に使えるので重要である。この作業の分割
により、他の演算の実行中に同時にこれらの特殊演算を
実行して、これらの演算を別の時間に実行することによ
りプロセッサの性能に悪影響を及ぼすことを避けること
ができる。この技術は、Giancarl。
Te5seraの米国特許第3969702号に一層完
全に記載されている。また、命令バイブラインを使用し
て、命令間のタイム・オフセット中に命令を処理するこ
とができることも知られている。オフセットは、命令を
実行する機能ユニットのサイクル・タイムの整数倍であ
る。オフセットは、1回の実行につき2回記憶アクセス
を行い、各アクセスに1サイクルをこの技術は、Gen
e M、 Amdahl。
全に記載されている。また、命令バイブラインを使用し
て、命令間のタイム・オフセット中に命令を処理するこ
とができることも知られている。オフセットは、命令を
実行する機能ユニットのサイクル・タイムの整数倍であ
る。オフセットは、1回の実行につき2回記憶アクセス
を行い、各アクセスに1サイクルをこの技術は、Gen
e M、 Amdahl。
Glen D、 GrantおよびRobert M、
Maierの米国特許第3840861号に一層完全
に記載されている。
Maierの米国特許第3840861号に一層完全
に記載されている。
幾つかの命令処理手法が、従来技術のシステムで知られ
ている。しかし、RISCプロセッサ・システムの費用
/効果比の改善が必要である。
ている。しかし、RISCプロセッサ・システムの費用
/効果比の改善が必要である。
C1発明が解決しようとする問題点
したがって、本発明の目的は、RISCプロセッサのプ
ロセッサ性能を高めるための費用効果の高い手法を提供
することである。
ロセッサ性能を高めるための費用効果の高い手法を提供
することである。
本発明の他の目的は、既知のRISCコンピュータの速
度の2倍の速度で実行できる改善されたRISCコンピ
ュータを提供することである。
度の2倍の速度で実行できる改善されたRISCコンピ
ュータを提供することである。
本発明の別の目的は、チップの面積をほとんど増やさず
に、演算速度を大幅に高める新奇なRISCアーキテク
チャを提供することである。
に、演算速度を大幅に高める新奇なRISCアーキテク
チャを提供することである。
D0問題点を解決するための手段
本発明によれば、これらの目的は、命令を2つの主要な
りラスの命令に分割し、−度に2つの命令(各クラス1
つずつ)を実行する機能を特徴とする、改良されたRI
SCプロセッサを提供することによって達成される。R
ISCプロセッサは、全命令セットのうちの1つのサブ
セットをそれぞれ実行できる2つの実行ユニットに分割
される。
りラスの命令に分割し、−度に2つの命令(各クラス1
つずつ)を実行する機能を特徴とする、改良されたRI
SCプロセッサを提供することによって達成される。R
ISCプロセッサは、全命令セットのうちの1つのサブ
セットをそれぞれ実行できる2つの実行ユニットに分割
される。
全命令負荷は、それぞれ2つの実行ユニットの一方で実
行される命令クラスに分割することができる。RISC
アーキテクチャの特別の利点は、大部分の命令が1サイ
クルで実行されることである。
行される命令クラスに分割することができる。RISC
アーキテクチャの特別の利点は、大部分の命令が1サイ
クルで実行されることである。
本発明は、命令が2つの実行ユニットの各々の間で分配
できるようにするのに必要なハードウェア編成を提供す
る。実行ユニットは同時に実行する。
できるようにするのに必要なハードウェア編成を提供す
る。実行ユニットは同時に実行する。
このハードウェア編成は、命令バッファ、制御読取専用
記憶装置、制御レジスタおよび命令実行装置から成る。
記憶装置、制御レジスタおよび命令実行装置から成る。
命令実行装置は、入力および出力を有するレジスタ・フ
ァイル、ステージング・レジスタ、第1および第2の実
行ユニットおよび出力レジスタから成る。第1の実行ユ
ニットは算術論理演算機構を含み、第2の実行ユニット
は回転機構およびマスク生成機構を含む。
ァイル、ステージング・レジスタ、第1および第2の実
行ユニットおよび出力レジスタから成る。第1の実行ユ
ニットは算術論理演算機構を含み、第2の実行ユニット
は回転機構およびマスク生成機構を含む。
プロセッサ・パイプラインは、命令の復号から実行を開
始する。命令復号サイクル中に、レジスタ・ファイルが
アクセスされ、取り出されたオペランドは、2つの制御
RO3により、かつ命令情報を2組の制御レジスタにラ
ッチすることにより、命令の復号と並行してステージン
グ・レジスタにラッチされる。次に、ステージング・レ
ジスタは2つの実行ユニットの一方に内容を供給する。
始する。命令復号サイクル中に、レジスタ・ファイルが
アクセスされ、取り出されたオペランドは、2つの制御
RO3により、かつ命令情報を2組の制御レジスタにラ
ッチすることにより、命令の復号と並行してステージン
グ・レジスタにラッチされる。次に、ステージング・レ
ジスタは2つの実行ユニットの一方に内容を供給する。
実行の結果はパイプラインの保管段のレジスタ・ファイ
ルに書き込まれる。制御ROSおよび制御レジスタは、
2組に分割される。各組が一方の実行ユニットのために
働く。命令復号フェーズ中、その命令が属する特定の命
令クラスをどちらの実行ユニットが実行するかに基づい
て、特定の組の制御ROSと制御レジスタが選ばれる。
ルに書き込まれる。制御ROSおよび制御レジスタは、
2組に分割される。各組が一方の実行ユニットのために
働く。命令復号フェーズ中、その命令が属する特定の命
令クラスをどちらの実行ユニットが実行するかに基づい
て、特定の組の制御ROSと制御レジスタが選ばれる。
レジスタ・ファイルに1サイクル当たり2回アクセスで
きる場合、追加の出力ボートは必要でない。そうでない
場合は、2つの実行ユニットの並列実行をサポートする
ため、追加の複数の出力ボートと1つ−の入力ポートが
必要となる。
きる場合、追加の出力ボートは必要でない。そうでない
場合は、2つの実行ユニットの並列実行をサポートする
ため、追加の複数の出力ボートと1つ−の入力ポートが
必要となる。
作業負荷をさらに均一に分配するたの、乗算器、除算器
などの追加の演算装置および追加のALtJ1台をどち
らかの実行ユニットに付加することができる。アドレス
計算はALUから負荷解除することができ、追加の加算
器を一方の実行ユニットに付加することにより、作業負
荷の分配をさらに均等化する。命令の実行を2つの実行
ユニットの間で均一に分配するよう設計されたコンパイ
ラは、プロセッサの速度を大幅に上げるのにも役立つ。
などの追加の演算装置および追加のALtJ1台をどち
らかの実行ユニットに付加することができる。アドレス
計算はALUから負荷解除することができ、追加の加算
器を一方の実行ユニットに付加することにより、作業負
荷の分配をさらに均等化する。命令の実行を2つの実行
ユニットの間で均一に分配するよう設計されたコンパイ
ラは、プロセッサの速度を大幅に上げるのにも役立つ。
本発明は、低い費用、、設計の簡単さ、プロセッサの速
度を上げるために必要な負荷的ハードウェアの追加が最
小限で済むことを特徴とする。
度を上げるために必要な負荷的ハードウェアの追加が最
小限で済むことを特徴とする。
本発明の前記およびその他の目的、実施態様および利点
は、図面に関する本発明の好ましい実施例についての以
下の詳細な説明から一層よく理解できるはずである。
は、図面に関する本発明の好ましい実施例についての以
下の詳細な説明から一層よく理解できるはずである。
E、実施例
図面の幾つかの図において、同じ参照番号は同じ構成要
素または機能的に類似した構成要素を示す。次に図面の
第6図を参照すると、RISC順次動作プロセッサの構
成図が示されている。このプロセッサは前述のように従
来技術と見なされる。
素または機能的に類似した構成要素を示す。次に図面の
第6図を参照すると、RISC順次動作プロセッサの構
成図が示されている。このプロセッサは前述のように従
来技術と見なされる。
命令の復号フローを左側に示し、命令の実行を右側に示
しである。命令は命令バッファ10から制御読取専用記
憶装置(RO5)12を経て、制御レジスタ14に流れ
る。当業者に明らかなように、種々のオペランドを記憶
し、または取り出すべき特定の汎用レジスタのアドレス
が、命令バッファ10の種々のフィールドで指定される
。
しである。命令は命令バッファ10から制御読取専用記
憶装置(RO5)12を経て、制御レジスタ14に流れ
る。当業者に明らかなように、種々のオペランドを記憶
し、または取り出すべき特定の汎用レジスタのアドレス
が、命令バッファ10の種々のフィールドで指定される
。
基本CPUは、データがメモリから5ボ一ト式汎用レジ
スタ・ファイル16に流入するための入力ボート15を
備える。汎用レジスタ・ファイル16は、この例では、
32個の別個のレジスタを含む。当業者なら理解してい
るように、レジスタ・ファイルは種々の組み合わせのレ
ジスタおよびボートを含み、しかもこの手法に適応する
ことができる。第2の人力ボート17は、2つの実行ユ
ニットの一方からの命令の結果を含む。2つの基本的実
行ユニットは、加算、乗算、除算、回転、ロードおよび
ストアを含めてプロセッサの命令の実行を司る。第1図
では、実行ユニットは2つの機能ユニットに分割されて
いる。実行ユニットIは、ALU24を含み、一方、実
行ユニット11は回転機構26を含む。レジスタ・ファ
イル16に対する2つの人力ボート15および17は、
命令内に示された特定の命令で指定されるオペランドを
示す。大部分の命令は2つの実行ユニットの一方のみを
使用する。すなわち、2つの実行ユニットの内の一方が
実行中、他方は遊んでいる。
スタ・ファイル16に流入するための入力ボート15を
備える。汎用レジスタ・ファイル16は、この例では、
32個の別個のレジスタを含む。当業者なら理解してい
るように、レジスタ・ファイルは種々の組み合わせのレ
ジスタおよびボートを含み、しかもこの手法に適応する
ことができる。第2の人力ボート17は、2つの実行ユ
ニットの一方からの命令の結果を含む。2つの基本的実
行ユニットは、加算、乗算、除算、回転、ロードおよび
ストアを含めてプロセッサの命令の実行を司る。第1図
では、実行ユニットは2つの機能ユニットに分割されて
いる。実行ユニットIは、ALU24を含み、一方、実
行ユニット11は回転機構26を含む。レジスタ・ファ
イル16に対する2つの人力ボート15および17は、
命令内に示された特定の命令で指定されるオペランドを
示す。大部分の命令は2つの実行ユニットの一方のみを
使用する。すなわち、2つの実行ユニットの内の一方が
実行中、他方は遊んでいる。
プロセッサ・パイプラインは命令の復号がら実行を開始
する。命令復号サイクル中に、レジスタ・ファイルがア
クセスされ、取り出されたオペランドは、制御ROS1
2により、かつ命令情報を制御レジスタにラッチするこ
とにより、命令の復号と並行してステージング・レジス
タ18.2oおよび22にラッチされる。次のパイプラ
イン実行サイクルで、レジスタ18.20および22の
内容が、2つの実行ユニットの一方に供給される。
する。命令復号サイクル中に、レジスタ・ファイルがア
クセスされ、取り出されたオペランドは、制御ROS1
2により、かつ命令情報を制御レジスタにラッチするこ
とにより、命令の復号と並行してステージング・レジス
タ18.2oおよび22にラッチされる。次のパイプラ
イン実行サイクルで、レジスタ18.20および22の
内容が、2つの実行ユニットの一方に供給される。
実行の結果は出力レジスタ36にラッチされる。
次のサイクルで、レジスタ情報がバイブラインの保管段
のレジスタ・ファイル16に書き込まれる。
のレジスタ・ファイル16に書き込まれる。
命令情報は、レジスタ・ファイル16からそれぞれボー
ト19.21および23を経てステージング・レジスタ
18.20および22に流れる。
ト19.21および23を経てステージング・レジスタ
18.20および22に流れる。
ステージング・レジスタ18および20は、情報をフォ
ーマツタ32および33に送る。フォマッタは、演算ま
たは論理の実行に備えるため、0または1の埋込みを司
る。フォーマツタ32および33の内容が算術論理演算
機構(ALU)24に供給され、ALU24は2オペラ
ンド命令を実行し、結果をマルチプレクサ25に供給す
る。回転機構26は、マスク・ジェネレータ31および
マスク論理34と一緒に、(米国特許第4569016
号にさらに詳細に記載されている)1マシーン・サイク
ルで実行可能なマスクおよび回転操作を実行し、その結
果をマルチプレクサ25に供給する。マスク・ジェネレ
ータ31は、組合せ論理34に流入する回転機構26か
らの出力を制御するためのマスクの生成を司る。組合せ
論理34はステージング・レジスタ18からの出力を用
いて、組み合わせ論理34が実行する命令を制御する。
ーマツタ32および33に送る。フォマッタは、演算ま
たは論理の実行に備えるため、0または1の埋込みを司
る。フォーマツタ32および33の内容が算術論理演算
機構(ALU)24に供給され、ALU24は2オペラ
ンド命令を実行し、結果をマルチプレクサ25に供給す
る。回転機構26は、マスク・ジェネレータ31および
マスク論理34と一緒に、(米国特許第4569016
号にさらに詳細に記載されている)1マシーン・サイク
ルで実行可能なマスクおよび回転操作を実行し、その結
果をマルチプレクサ25に供給する。マスク・ジェネレ
ータ31は、組合せ論理34に流入する回転機構26か
らの出力を制御するためのマスクの生成を司る。組合せ
論理34はステージング・レジスタ18からの出力を用
いて、組み合わせ論理34が実行する命令を制御する。
たとえば、ステージング・レジスタ18からの出力が、
回転/マスク挿入(RMI)命令を指定する場合、レジ
スタ22の内容がレジスタ20のビット27ないし31
で指定された位置の数だけ左にシフトされる。シフトさ
れたデータは、マスク・ジェネレータ31の制御下でマ
スク論理34がらマルチプレクサ25に出力される。マ
スク論理34は、まず出力レジスタ36をゼロにし、次
にマスクの各ビットを検査し、それが1それとも0がを
判定する。マスク・ビットが1の場合、シフトされたデ
ータの関連ビット(0または1)が出力レジスタに入れ
られ、マスク・ビットが0の場合、出力レジスタからの
開運データ・ビットは元のままとなる。マルチプレクサ
25は、2つの実行ユニットから出力を取り出し、それ
を出力レジスタ36に記憶することを司り、出力レジス
タ36は情報をレジスタ・ファイル16の入力ボート1
7に送る。
回転/マスク挿入(RMI)命令を指定する場合、レジ
スタ22の内容がレジスタ20のビット27ないし31
で指定された位置の数だけ左にシフトされる。シフトさ
れたデータは、マスク・ジェネレータ31の制御下でマ
スク論理34がらマルチプレクサ25に出力される。マ
スク論理34は、まず出力レジスタ36をゼロにし、次
にマスクの各ビットを検査し、それが1それとも0がを
判定する。マスク・ビットが1の場合、シフトされたデ
ータの関連ビット(0または1)が出力レジスタに入れ
られ、マスク・ビットが0の場合、出力レジスタからの
開運データ・ビットは元のままとなる。マルチプレクサ
25は、2つの実行ユニットから出力を取り出し、それ
を出力レジスタ36に記憶することを司り、出力レジス
タ36は情報をレジスタ・ファイル16の入力ボート1
7に送る。
命令バッファ10、制御FLO512および制御レジス
タ14は、すべての図に共通である。レジスタ・ファイ
ル16の入力ポート15および17、出力ボート19.
21および23もすべての図に共通である。ステージン
グ・レジスタ18.2゜および22はすべての図で使用
されている。実行ユニットIはすべての図でフォーマツ
タ32および33、ALU24を含む。実行ユニット!
■はすべての図でマスク・ジェネレータ31、マスク論
理34および回転機構26を含む。
タ14は、すべての図に共通である。レジスタ・ファイ
ル16の入力ポート15および17、出力ボート19.
21および23もすべての図に共通である。ステージン
グ・レジスタ18.2゜および22はすべての図で使用
されている。実行ユニットIはすべての図でフォーマツ
タ32および33、ALU24を含む。実行ユニット!
■はすべての図でマスク・ジェネレータ31、マスク論
理34および回転機構26を含む。
本発明の第1の実施例を第1図に示す。命令の復号が左
側に示しである。命令は命令バッファ10から2つのマ
ルチプレクサ64および65を介して2つの制御ROS
40および42、さらに制御レジスタ44および46に
流れる。命令バッファ10と2つの制御ROS40およ
び42の間に2つのマルチプレクサ64および65が追
加されているため、情報を2つの実行ユニットに同時に
送ることが可能になる。命令に基づいて、制御RO8の
一方または他方から命令情報が得られる。
側に示しである。命令は命令バッファ10から2つのマ
ルチプレクサ64および65を介して2つの制御ROS
40および42、さらに制御レジスタ44および46に
流れる。命令バッファ10と2つの制御ROS40およ
び42の間に2つのマルチプレクサ64および65が追
加されているため、情報を2つの実行ユニットに同時に
送ることが可能になる。命令に基づいて、制御RO8の
一方または他方から命令情報が得られる。
命令処理は、第6図に示す5ボ一ト式レジスタ・ファイ
ルの代りに8ボ一ト式拡張レジスタ・ファイル48を有
する。追加された2つの出力ボート51および53は、
専ら実行ユニットIIが使用する。各実行ユニットは、
レジスタ・ファイル48に対する入力ポート17および
56を有する。実行ユニットIは入力ポート17を使用
し、実行ユニットIIは入力ポート56を使用する。各
実行ユニットに対して別々の出力レジスタ66および6
8が追加されているため、出力情報をそれぞれレジスタ
・ファイル入力ボート17および56に送る前に記憶す
ることが可能になる。2つの出力レジスタ66および6
8を使用と、さらに、実行ユニットの結果の出力がレジ
スタ・ファイル48に同時に供給される。
ルの代りに8ボ一ト式拡張レジスタ・ファイル48を有
する。追加された2つの出力ボート51および53は、
専ら実行ユニットIIが使用する。各実行ユニットは、
レジスタ・ファイル48に対する入力ポート17および
56を有する。実行ユニットIは入力ポート17を使用
し、実行ユニットIIは入力ポート56を使用する。各
実行ユニットに対して別々の出力レジスタ66および6
8が追加されているため、出力情報をそれぞれレジスタ
・ファイル入力ボート17および56に送る前に記憶す
ることが可能になる。2つの出力レジスタ66および6
8を使用と、さらに、実行ユニットの結果の出力がレジ
スタ・ファイル48に同時に供給される。
2つの出力ボートと1つの入力ポートがレジスタ・ファ
イル48に追加されると、レジスタ・ファイルの共用に
よってデータ保全性の問題や複雑なインターフェースが
ないままで、ALU命令と回転命令を同時に実行する能
力がプロセッサに与えられる。コンパイラ内のコード・
スケジューリング能力を用いれば、2つの並列命令のう
ちの第2の命令が第1の命令の宛先レジスタと同じ原始
レジスタを持たないように命令を分割することにより、
2つの並列命令の間のデータ依存性を最小にすることが
可能である。コンパイラはまた、回転命令またはALU
命令が連続することを避けるため、2種類の命令をスケ
ジューリングすることができる。これらのハードウェア
およびコンパイラの最適化を行った場合の、元の順次動
作プロセッサに対するプロセッサ性能比を以下に示す。
イル48に追加されると、レジスタ・ファイルの共用に
よってデータ保全性の問題や複雑なインターフェースが
ないままで、ALU命令と回転命令を同時に実行する能
力がプロセッサに与えられる。コンパイラ内のコード・
スケジューリング能力を用いれば、2つの並列命令のう
ちの第2の命令が第1の命令の宛先レジスタと同じ原始
レジスタを持たないように命令を分割することにより、
2つの並列命令の間のデータ依存性を最小にすることが
可能である。コンパイラはまた、回転命令またはALU
命令が連続することを避けるため、2種類の命令をスケ
ジューリングすることができる。これらのハードウェア
およびコンパイラの最適化を行った場合の、元の順次動
作プロセッサに対するプロセッサ性能比を以下に示す。
PP = OPP −[%ROT*CPR] + C0
NTPただし、 C0NTP =争奪ペナルティ =和(%C0HT*CPC) = (%C0NTA*CPC) + (%C0NTB*
CPC’)PP=1命令当たりのサイクル数で表したプ
ロセッサの性能 0PP=1命令当たりのサイクル数で表した元のプロセ
ッサの性能 %ROT =回転命令のパーセント CPR=1つの回転命令光たりのサイクル数 %C0NT :データ依存性および資源争奪のパーセ
ント CPC=1つの争奪光たりのサイクル・ペナルティの数 %C0NTA =ユニットIとユニット11の間のデー
タ依存性による争奪のパーセント %C0NTB =ユニットIIでの命令の連続による争
奪のパーセント ある種のシステムは分岐予測能力を有する。これらのシ
ステムは、命令を事前に取り出して、分岐命令を前処理
するための、命令キャッシュを備えている。これらのシ
ステムでは、プロセッサは決して分岐命令を実行しない
。この機能を利用すると、プロセッサはもはや分岐命令
が解決されるまで待つ必要がないので、この本発明に対
するプロセッサの性能がさらに向上する。分岐後の命令
が分岐命令の前の命令と並行して実行できる。分岐予測
能力のないシステムでは、次の命令を実行する前に分岐
命令を解決しなければならない。分岐命令との係わりあ
いからALU24を全く解放することにより、2つの実
行ユニット間の比がさらに均衡され、実行ユニットの争
奪が減り、性能が向上する。命令バッファ10からの命
令は、命令の種類に応じて直ちに2つの別々の制御RO
540および42に進み、2つの独立した実行ユニット
に対する制御信号を発生する。こうすると、第6図に示
したRO512が第1図、第2図、第3図および第4図
に示す2つのRO540および42に機能的に分割され
、両方の実行ユニットを使用する命令の重複は非常に少
なくなる。制御RO812に対する命令コード人力のみ
が重複され、制御レジスタ14については重複されない
。
NTPただし、 C0NTP =争奪ペナルティ =和(%C0HT*CPC) = (%C0NTA*CPC) + (%C0NTB*
CPC’)PP=1命令当たりのサイクル数で表したプ
ロセッサの性能 0PP=1命令当たりのサイクル数で表した元のプロセ
ッサの性能 %ROT =回転命令のパーセント CPR=1つの回転命令光たりのサイクル数 %C0NT :データ依存性および資源争奪のパーセ
ント CPC=1つの争奪光たりのサイクル・ペナルティの数 %C0NTA =ユニットIとユニット11の間のデー
タ依存性による争奪のパーセント %C0NTB =ユニットIIでの命令の連続による争
奪のパーセント ある種のシステムは分岐予測能力を有する。これらのシ
ステムは、命令を事前に取り出して、分岐命令を前処理
するための、命令キャッシュを備えている。これらのシ
ステムでは、プロセッサは決して分岐命令を実行しない
。この機能を利用すると、プロセッサはもはや分岐命令
が解決されるまで待つ必要がないので、この本発明に対
するプロセッサの性能がさらに向上する。分岐後の命令
が分岐命令の前の命令と並行して実行できる。分岐予測
能力のないシステムでは、次の命令を実行する前に分岐
命令を解決しなければならない。分岐命令との係わりあ
いからALU24を全く解放することにより、2つの実
行ユニット間の比がさらに均衡され、実行ユニットの争
奪が減り、性能が向上する。命令バッファ10からの命
令は、命令の種類に応じて直ちに2つの別々の制御RO
540および42に進み、2つの独立した実行ユニット
に対する制御信号を発生する。こうすると、第6図に示
したRO512が第1図、第2図、第3図および第4図
に示す2つのRO540および42に機能的に分割され
、両方の実行ユニットを使用する命令の重複は非常に少
なくなる。制御RO812に対する命令コード人力のみ
が重複され、制御レジスタ14については重複されない
。
復号制御用のハードウェアの量は、第1図に示す本発明
の第1の実施例と第6図に示す従来技術の間で非常に類
似している。レジスタ・ファイル48にさらに2つの出
力ボート51および53と1つの入力ボート56が必要
となる以外は、データ・フロー?よ同じままである。こ
れらの3つのボートは、データ・フローを横切って延び
る3本のバスに通じている。しかし、データ・フローの
幅は恐らく実行ユニットの幅によって制限されるはずな
ので、この3本のバスがデータ・フローの面積を増大さ
せることはない。データ依存性、資源争奪および例外条
件を処理するため、少量の制御論理を追加することが必
要である。
の第1の実施例と第6図に示す従来技術の間で非常に類
似している。レジスタ・ファイル48にさらに2つの出
力ボート51および53と1つの入力ボート56が必要
となる以外は、データ・フロー?よ同じままである。こ
れらの3つのボートは、データ・フローを横切って延び
る3本のバスに通じている。しかし、データ・フローの
幅は恐らく実行ユニットの幅によって制限されるはずな
ので、この3本のバスがデータ・フローの面積を増大さ
せることはない。データ依存性、資源争奪および例外条
件を処理するため、少量の制御論理を追加することが必
要である。
第2図は、実行ユニット11に2つの機能ユニット、す
なわち、乗算器60と除算器62を追加した以外は、第
1図の好ましい実施例と同じである。
なわち、乗算器60と除算器62を追加した以外は、第
1図の好ましい実施例と同じである。
ステージング・レジスタ50および52に流入する出力
ボート5′1および53は、乗算器60および除算器6
2に対する人力として使用され、追加のマルチプレクサ
63は、マスク論理、乗算器および除算器からの出力を
収容し、その出力を出力レジスタ68に記憶する。乗算
器60または除算器62などの機能ユニットは、第2図
に示すように、命令のパーセントが最小の実行ユニット
に集められる。このため、2つの実行ユニット間の比が
均衡し、プロセッサの性能が向上する。
ボート5′1および53は、乗算器60および除算器6
2に対する人力として使用され、追加のマルチプレクサ
63は、マスク論理、乗算器および除算器からの出力を
収容し、その出力を出力レジスタ68に記憶する。乗算
器60または除算器62などの機能ユニットは、第2図
に示すように、命令のパーセントが最小の実行ユニット
に集められる。このため、2つの実行ユニット間の比が
均衡し、プロセッサの性能が向上する。
第1図および第2図に示した第1の実施例に対する特別
な状況は以下のように要約される。
な状況は以下のように要約される。
1)2つの並列命令のうちの第2の命令が、第1の命令
の結果を必要とする。
の結果を必要とする。
2)2つの並列命令が同じ命令の部類に属する。
3)並列命令の一方が他方よりも多くのサイクルを要す
る。この場合、命令が順に実行されるように、速い実行
ユニットが遅い実行ユニットを待たねばならない。
る。この場合、命令が順に実行されるように、速い実行
ユニットが遅い実行ユニットを待たねばならない。
4) 並列命令の一方が両方の実行ユニット、すなわち
、回転および記憶を必要とする。
、回転および記憶を必要とする。
5)2つの並列命令が順序をはずれて実行されないよう
にするための論理が必要である。すなわち、2つの並列
命令は宛先レジスタが同じなので、−方を取り消さなけ
ればならない。また、並列命令の一方が例外割込みを引
き起こした場合は、例外処理が始まる前に他方の命令を
、完了または中断しなければならない。。
にするための論理が必要である。すなわち、2つの並列
命令は宛先レジスタが同じなので、−方を取り消さなけ
ればならない。また、並列命令の一方が例外割込みを引
き起こした場合は、例外処理が始まる前に他方の命令を
、完了または中断しなければならない。。
最初の状態はコンパイラによるコード・スケジューリン
グによってなくすることができる。コンパイラはまた、
争奪が最小になるように、回転命令およびALU命令を
インターリーブすることができる。RISCプロセッサ
は基本命令を有し、また複数のサイクルを必要とする命
令は非常に僅かなので、3番目と4番目の状態は頻繁に
は発生しない。それらの命令は非常にまれにしか使用さ
れない。5番目の問題として挙げた例外条件に対処する
には、従来技術の例外処理ハードウェアをわずかに増加
させなければならない。
グによってなくすることができる。コンパイラはまた、
争奪が最小になるように、回転命令およびALU命令を
インターリーブすることができる。RISCプロセッサ
は基本命令を有し、また複数のサイクルを必要とする命
令は非常に僅かなので、3番目と4番目の状態は頻繁に
は発生しない。それらの命令は非常にまれにしか使用さ
れない。5番目の問題として挙げた例外条件に対処する
には、従来技術の例外処理ハードウェアをわずかに増加
させなければならない。
第1の実施例の増加部分は、レジスタ・ファイル内の3
つの追加ボートだけである。それによって、レジスタ・
ファイルのサイズが、チップ・サイズ全体の約5ないし
8%を占める元のレジスタ・ファイル・サイズの約1/
2だけ増大する。レジスタ・ファイルは、1サイクル中
に2回のアクセスを行なうように設計することができる
。この設計を用いると、レジスタ・ファイルのサイズを
一定のままにしておくことができる。ハードウェアの増
加部分は、データ・フローの最上部にある3本の追加バ
スだけである。
つの追加ボートだけである。それによって、レジスタ・
ファイルのサイズが、チップ・サイズ全体の約5ないし
8%を占める元のレジスタ・ファイル・サイズの約1/
2だけ増大する。レジスタ・ファイルは、1サイクル中
に2回のアクセスを行なうように設計することができる
。この設計を用いると、レジスタ・ファイルのサイズを
一定のままにしておくことができる。ハードウェアの増
加部分は、データ・フローの最上部にある3本の追加バ
スだけである。
第7図は、復号サイクルでアドレス生成を行なう従来技
術の順次動作プロセッサを示す。ハードウェアは、命令
アドレス・レジスタ(IRA)70の出力が、マルチプ
レクサ84を介してレジスタ・ファイル16の出力ボー
ト19と多重化されて、加算器78に対する2つのオペ
ランド入力の一方を形成する点以外は、第6図と同じで
ある。
術の順次動作プロセッサを示す。ハードウェアは、命令
アドレス・レジスタ(IRA)70の出力が、マルチプ
レクサ84を介してレジスタ・ファイル16の出力ボー
ト19と多重化されて、加算器78に対する2つのオペ
ランド入力の一方を形成する点以外は、第6図と同じで
ある。
マルチプレクサ82は、命令バッファ10がらの情報を
レジスタ・ファイル16の出力ボートと多重化して、加
算器78に対する他方のオペランド人力を生成するため
に使用される。加算器78は、ALUの割込みなしに新
しいアドレスを計算する。
レジスタ・ファイル16の出力ボートと多重化して、加
算器78に対する他方のオペランド人力を生成するため
に使用される。加算器78は、ALUの割込みなしに新
しいアドレスを計算する。
新しいアドレスはアドレス・レジスタ86に記憶される
。
。
第3図に本発明の第2の実施例を示す。第1図および第
2図に示した第1の実施例とこの第2の実施例違いは、
第7図に示す加算器78が組み込まれていることである
。加算器78は、ステージング・レジスタ50および5
2を介して、レジスタ・ファイル48の出力ボート51
および53がらのオペランド入力を受け取る。加算器7
8はその結果をマルチプレクサ63に出力し、マルチプ
レクサ63はマスク論理34、乗算器60および除算器
62の出力を加算器78からの出力と共に多重化して、
出力レジスタ68に記憶する。追加の加算器78は、ロ
ード、ストアおよび分岐命令を高速化するためアドレス
計算を行うもので、実行ユニットの命令の比の均衡をと
るため、回転機構26と共に実行ユニット11に入れる
。実行ユニッ) IIは、回転、シフト、ロード、スト
ア、乗算、除算およびアドレス計算命令のすべての処理
な司る。実行ユニットIは、すべての算術計算と論理計
算を処理する。RISCの平均的な命令の比は、レジス
タ回転送命令54%、ロード命令20%、ストア命令1
0%および分岐命令16%から成る。
2図に示した第1の実施例とこの第2の実施例違いは、
第7図に示す加算器78が組み込まれていることである
。加算器78は、ステージング・レジスタ50および5
2を介して、レジスタ・ファイル48の出力ボート51
および53がらのオペランド入力を受け取る。加算器7
8はその結果をマルチプレクサ63に出力し、マルチプ
レクサ63はマスク論理34、乗算器60および除算器
62の出力を加算器78からの出力と共に多重化して、
出力レジスタ68に記憶する。追加の加算器78は、ロ
ード、ストアおよび分岐命令を高速化するためアドレス
計算を行うもので、実行ユニットの命令の比の均衡をと
るため、回転機構26と共に実行ユニット11に入れる
。実行ユニッ) IIは、回転、シフト、ロード、スト
ア、乗算、除算およびアドレス計算命令のすべての処理
な司る。実行ユニットIは、すべての算術計算と論理計
算を処理する。RISCの平均的な命令の比は、レジス
タ回転送命令54%、ロード命令20%、ストア命令1
0%および分岐命令16%から成る。
レジスタ間転送命令のうち5ないし10%は回転/シフ
ト命令である。算術命令と論理命令をセグメント化する
ことにより、作業負荷の一層良好な均衡が実現される。
ト命令である。算術命令と論理命令をセグメント化する
ことにより、作業負荷の一層良好な均衡が実現される。
コンパイラでコード・スケジューリングを実行してこれ
ら2種類の命令をインターリーブすると、データ依存性
および2つの実行ユニットの間で資源争奪をなくするこ
とができる。唯一の大きな性能低下は、実質的にRIS
Cプロセッサに常駐していない複数サイクルの命令によ
るものである。下に示す式は、第3図に示す第2の実施
例と第7図に示す従来技術の元の順次動作プロセッサの
プロセッサ性能比較を表す。
ら2種類の命令をインターリーブすると、データ依存性
および2つの実行ユニットの間で資源争奪をなくするこ
とができる。唯一の大きな性能低下は、実質的にRIS
Cプロセッサに常駐していない複数サイクルの命令によ
るものである。下に示す式は、第3図に示す第2の実施
例と第7図に示す従来技術の元の順次動作プロセッサの
プロセッサ性能比較を表す。
PP = 2*0PP−和(%MCI+:CPMCI)
i −C0NTPCONTP =争奪ペナルティ :和(%C0NTA*CPC) + (%C0NTBり:cpc ) + (%C0HTC*
CPC)%MCI =複数サイクル命令;のパーセン
トCPMCI =複数サイクル命令; 1個当たりの
サイクル数 %C0NTA =データ依存性による、ユニットIとユ
ニットIIの間での争奪のパー セント %C0NTB =ユニットI内での命令の連続による争
奪のパーセント %C0NTC=ユニットII内での命令の連続による争
奪のパーセント 制御セクションは、本発明の第2の実施例では、制御R
O340および42を2つの命令の部類に従って再分割
しなければならない点を除いて、本発明の第1の実施例
と同様である。追加の加算器78を除いて、ハードウェ
アの増加部分は第1の実施例と同じである。
i −C0NTPCONTP =争奪ペナルティ :和(%C0NTA*CPC) + (%C0NTBり:cpc ) + (%C0HTC*
CPC)%MCI =複数サイクル命令;のパーセン
トCPMCI =複数サイクル命令; 1個当たりの
サイクル数 %C0NTA =データ依存性による、ユニットIとユ
ニットIIの間での争奪のパー セント %C0NTB =ユニットI内での命令の連続による争
奪のパーセント %C0NTC=ユニットII内での命令の連続による争
奪のパーセント 制御セクションは、本発明の第2の実施例では、制御R
O340および42を2つの命令の部類に従って再分割
しなければならない点を除いて、本発明の第1の実施例
と同様である。追加の加算器78を除いて、ハードウェ
アの増加部分は第1の実施例と同じである。
第4図は、1サイクル当たり2回アクセスを行なうよう
に設計されたレジスタ・ファイルを有する並行動作プロ
セッサの一例である。第4図は、第1のレジスタ・ファ
イルのアクセスを制御する2つのラッチ110および1
12が追加され、2つの実行ユニットの出力レジスタ6
6および68を受け入れるためのマルチプレクサ25が
追加され、かつ元の5ポ一ト式レジスタ・ファイル16
が使用されている点以外は、第5図と同じである。
に設計されたレジスタ・ファイルを有する並行動作プロ
セッサの一例である。第4図は、第1のレジスタ・ファ
イルのアクセスを制御する2つのラッチ110および1
12が追加され、2つの実行ユニットの出力レジスタ6
6および68を受け入れるためのマルチプレクサ25が
追加され、かつ元の5ポ一ト式レジスタ・ファイル16
が使用されている点以外は、第5図と同じである。
ラッチ110および112は、ステージング・レジスタ
18および20の真上の出力ボート19および21上に
配置される。これらのラッチはクロック・サイクルの各
半分によってトリガされる。クロック・サイクルのの前
半では、出力ボート19および21は、ラッチ110お
よび112に流れる。クロック・サイクルの後半では、
出力ボート19および21はステージング・レジスタ5
0および52に流れ、出力レジスタ68はマルチプレク
サ25を経てレジスタ・ファイル16の人力ボート17
に流入する。クロック・サイクルの後半ではまた、ラッ
チ110および112はステージング・レジスタ18お
よび20に流れ、出力レジスタ66はマルチプレクサ2
5を経てレジスタ・ファイル16の人力ボート17に流
入する。このため、2つの出力ボートおよび1つの入力
ボートをさらに追加せずに、2つの実行ユニットの並列
処理が可能になる。
18および20の真上の出力ボート19および21上に
配置される。これらのラッチはクロック・サイクルの各
半分によってトリガされる。クロック・サイクルのの前
半では、出力ボート19および21は、ラッチ110お
よび112に流れる。クロック・サイクルの後半では、
出力ボート19および21はステージング・レジスタ5
0および52に流れ、出力レジスタ68はマルチプレク
サ25を経てレジスタ・ファイル16の人力ボート17
に流入する。クロック・サイクルの後半ではまた、ラッ
チ110および112はステージング・レジスタ18お
よび20に流れ、出力レジスタ66はマルチプレクサ2
5を経てレジスタ・ファイル16の人力ボート17に流
入する。このため、2つの出力ボートおよび1つの入力
ボートをさらに追加せずに、2つの実行ユニットの並列
処理が可能になる。
第5図は、本発明の第3の実施例を示す。第3の実施例
は、フォーマツタ100および102を伴う追加のLA
U70が実行ユニットIIに付加されている点以外は、
第1の実施例と同じである。
は、フォーマツタ100および102を伴う追加のLA
U70が実行ユニットIIに付加されている点以外は、
第1の実施例と同じである。
レジスタ・ファイル48の出力ボート51および53の
内容が、ステージング・レジスタ50および52に供給
され、ステージング・レジスタ50および52はフォー
マツタ100および102に流入し、フォーマツタ10
0および102はALtJ70に人力を供給する。第2
のALU70の出力は第3図および第4図の加算器78
の出力と同じ方法で多重化される。第2のALLI70
の出力はマスク論理34、乗算器60および除算器62
と共に多重化されてマルチプレクサ63に入り、マルチ
プレクサ63は出力レジスタ68に流入する。
内容が、ステージング・レジスタ50および52に供給
され、ステージング・レジスタ50および52はフォー
マツタ100および102に流入し、フォーマツタ10
0および102はALtJ70に人力を供給する。第2
のALU70の出力は第3図および第4図の加算器78
の出力と同じ方法で多重化される。第2のALLI70
の出力はマスク論理34、乗算器60および除算器62
と共に多重化されてマルチプレクサ63に入り、マルチ
プレクサ63は出力レジスタ68に流入する。
第3の実施例を第5図に示すように使って、コード・ス
ケジューリングを実行し、かつ命令負荷の均衡化を実行
するコンパイラの負担を減らすことができる。制御RO
540は元のRO512と同じである。制御FtO54
2はALU命令機能のみを有する。
ケジューリングを実行し、かつ命令負荷の均衡化を実行
するコンパイラの負担を減らすことができる。制御RO
540は元のRO512と同じである。制御FtO54
2はALU命令機能のみを有する。
この手法の欠点は、両方の実行ユニットでALU命令を
実行するために追加のALUおよび追加のRO542の
ハードウェア費用が余分にかかることである。利点はコ
ンパイラの複雑さが低減されることである。
実行するために追加のALUおよび追加のRO542の
ハードウェア費用が余分にかかることである。利点はコ
ンパイラの複雑さが低減されることである。
F3発明の詳細
な説明したようにこの発明では命令を2つのクラスに分
類し、それぞれのクラスの命令を1つずつ同時に実行す
るようにし、RISCプロセッサの性能を向上させるこ
とができる。
類し、それぞれのクラスの命令を1つずつ同時に実行す
るようにし、RISCプロセッサの性能を向上させるこ
とができる。
第1図は本発明の第1の実施例の並列動作RISCプロ
セッサのブロック・ダイヤグラムである。 第2図は、乗算器および除算器を追加した本発明の第1
の実施例の並列動作RTSCプロセッサのブロック・ダ
イヤグラムである。 第3図は本発明の第2の実施例の並列動作RISCプロ
セッサのブロック・ダイヤグラムである。 第4図は、レジスタ・ファイルが1サイクルに2回アク
セスされる本発明の第2の実施例の並列動作RISCプ
ロセッサのブロック・ダイアグラムである。 第5図は本発明の第3の実施例の並列動作RISCプロ
セッサのブロック・ダイヤグラムである。 第6図は、従来技術の順次動作RISCプロセッサのブ
ロック・ダイヤグラムである。 第7図は、アドレス生成が復号サイクルで実行される従
来技術の順次動作RISCプロセッサのブロック・ダイ
ヤグラムである。 10・・・・命令バッファ、18.20.22.50.
52・・・・ステージング・レジスタ、24・・・・A
LtJ、26・・・・回転機構、31・°・°マスク・
ジェネレータ、34・・・・組合せ機構、40.42・
・・・制御ROS、44.46・・・・制御レジスタ、
48・・・・レジスタ・ファイル、64.65・・・・
マルチプレクサ、66.68・・・・出力レジスタ。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション
セッサのブロック・ダイヤグラムである。 第2図は、乗算器および除算器を追加した本発明の第1
の実施例の並列動作RTSCプロセッサのブロック・ダ
イヤグラムである。 第3図は本発明の第2の実施例の並列動作RISCプロ
セッサのブロック・ダイヤグラムである。 第4図は、レジスタ・ファイルが1サイクルに2回アク
セスされる本発明の第2の実施例の並列動作RISCプ
ロセッサのブロック・ダイアグラムである。 第5図は本発明の第3の実施例の並列動作RISCプロ
セッサのブロック・ダイヤグラムである。 第6図は、従来技術の順次動作RISCプロセッサのブ
ロック・ダイヤグラムである。 第7図は、アドレス生成が復号サイクルで実行される従
来技術の順次動作RISCプロセッサのブロック・ダイ
ヤグラムである。 10・・・・命令バッファ、18.20.22.50.
52・・・・ステージング・レジスタ、24・・・・A
LtJ、26・・・・回転機構、31・°・°マスク・
ジェネレータ、34・・・・組合せ機構、40.42・
・・・制御ROS、44.46・・・・制御レジスタ、
48・・・・レジスタ・ファイル、64.65・・・・
マルチプレクサ、66.68・・・・出力レジスタ。 出願人 インターナショナル・ビジネス・マシーンズ
・コーポレーション
Claims (3)
- (1)命令バッファ、制御記憶および制御レジスタを有
する命令処理装置と、入力および出力を備えメモリから
のデータを受け取るように上記入力の1つを上記メモリ
がわに接続するレジスタ・ファイル、このレジスタ・フ
ァイルの出力にそれぞれ接続されたステージング・レジ
スタ、第1および第2の実行ユニットおよびこの実行ユ
ニットからの出力を受け取つて上記レジスタ・ファイル
に供給する出力レジスタを有する命令実行装置とを含み
、上記第1の実行ユニットは上記ステージング・レジス
タの2つに入力を接続させた算術論理演算ユニットを含
み、さらに上記第2の実行ユニットは上記ステージング
・レジスタの3つに入力を接続させた回転マスク発生手
段を含む縮小命令セット・コンピュータにおいて、 上記制御記憶が、上記第1および第2の実行ユニットの
それぞれに対応する第1および第2の部分領域を有し、 上記命令処理装置が、上記第1および第2の部分領域か
らの命令をそれぞれ上記第1および第2の実行ユニット
に供給するようにする経路指定手段を有し、 上記出力レジスタは第1および第2の出力レジスタから
なり、上記第1および第2の実行ユニットからの出力を
上記第1および第2の出力レジスタでそれぞれ受け取り
、 上記第1および第2の実行ユニットは上記レジスタ・フ
ァイルの出力を同時に受け取って並行して処理を行なう
ようにしたことを特徴とする縮小命令セット・コンピュ
ータ。 - (2)上記第2の実行ユニットは、上記ステージング・
レジスタの3つのうちの2つに入力を接続させた加算器
を有し、 さらに上記加算器の出力と上記回転マスク発生手段の出
力とを受け取るマルチプレクサを付加する特許請求の範
囲第(1)項記載の縮小命令セット・コンピュータ。 - (3)上記第2の実行ユニットは、上記ステージング・
レジスタの3つのうちの2つに入力を接続させた付加的
な算術論理演算ユニットを有レ、さらに上記付加的な算
術論理演算ユニットの出力と上記回転マスク発生手段の
出力とを受け取るマルチプレクサを付加する特許請求の
範囲第(1)項記載の縮小命令セット・コンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/896,156 US4766566A (en) | 1986-08-18 | 1986-08-18 | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
US896156 | 1986-08-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS6349843A true JPS6349843A (ja) | 1988-03-02 |
Family
ID=25405719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62119167A Pending JPS6349843A (ja) | 1986-08-18 | 1987-05-18 | 縮小命令セット・コンピュ−タ |
Country Status (4)
Country | Link |
---|---|
US (1) | US4766566A (ja) |
EP (1) | EP0260409B1 (ja) |
JP (1) | JPS6349843A (ja) |
DE (1) | DE3750625T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0242534A (ja) * | 1988-04-01 | 1990-02-13 | Toshiba Corp | マイクロプロセッサ |
EP0354740A2 (en) | 1988-08-09 | 1990-02-14 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
JPH03157722A (ja) * | 1989-11-15 | 1991-07-05 | Matsushita Electric Ind Co Ltd | 演算装置 |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109524A (en) * | 1985-07-02 | 1992-04-28 | Vlsi Technology, Inc. | Digital processor with a four part data register for storing data before and after data conversion and data calculations |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
JPS63253433A (ja) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | 演算処理装置 |
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 |
US4974146A (en) * | 1988-05-06 | 1990-11-27 | Science Applications International Corporation | Array processor |
JP3034873B2 (ja) * | 1988-07-01 | 2000-04-17 | 株式会社日立製作所 | 情報処理装置 |
US5202967A (en) * | 1988-08-09 | 1993-04-13 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
US5131086A (en) * | 1988-08-25 | 1992-07-14 | Edgcore Technology, Inc. | Method and system for executing pipelined three operand construct |
JP2810068B2 (ja) * | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
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 |
EP0378415A3 (en) * | 1989-01-13 | 1991-09-25 | International Business Machines Corporation | Multiple instruction dispatch mechanism |
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
US5226166A (en) * | 1989-02-10 | 1993-07-06 | Mitsubishi Denki K.K. | Parallel operation processor with second command unit |
US5179691A (en) * | 1989-04-12 | 1993-01-12 | Unisys Corporation | N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M |
EP0394624B1 (en) * | 1989-04-24 | 1997-06-18 | International Business Machines Corporation | Multiple sequence processor system |
JP2816248B2 (ja) * | 1989-11-08 | 1998-10-27 | 株式会社日立製作所 | データプロセッサ |
EP0432075B1 (en) * | 1989-11-09 | 1997-02-26 | International Business Machines Corporation | Multiprocessor with relatively atomic instructions |
FR2655169B1 (fr) * | 1989-11-30 | 1994-07-08 | Bull Sa | Processeur a plusieurs unites de traitement microprogrammees. |
US5197138A (en) * | 1989-12-26 | 1993-03-23 | Digital Equipment Corporation | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching |
US5203002A (en) * | 1989-12-27 | 1993-04-13 | Wetzel Glen F | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle |
AU629007B2 (en) * | 1989-12-29 | 1992-09-24 | Sun Microsystems, Inc. | Apparatus for accelerating store operations in a risc computer |
WO1991011765A1 (en) * | 1990-01-29 | 1991-08-08 | Teraplex, Inc. | Architecture for minimal instruction set computing system |
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 |
DE69130588T2 (de) * | 1990-05-29 | 1999-05-27 | National Semiconductor Corp., Santa Clara, Calif. | Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür |
JPH0679276B2 (ja) * | 1990-08-31 | 1994-10-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 同一従属型プロセスのスループット増大方法、プロセス生成回路、周期冗長コードジェネレータ、およびコントローラシステム |
JPH04111127A (ja) * | 1990-08-31 | 1992-04-13 | Toshiba Corp | 演算処理装置 |
JPH04184534A (ja) * | 1990-11-20 | 1992-07-01 | Fujitsu Ltd | プロセッサ |
JP2646855B2 (ja) * | 1991-01-21 | 1997-08-27 | 三菱電機株式会社 | データ処理装置 |
US5367648A (en) * | 1991-02-20 | 1994-11-22 | International Business Machines Corporation | General purpose memory access scheme using register-indirect mode |
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 |
US5522052A (en) * | 1991-07-04 | 1996-05-28 | Matsushita Electric Industrial Co. Ltd. | Pipeline processor for processing instructions having a data dependence relationship |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
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 |
CA2067576C (en) * | 1991-07-10 | 1998-04-14 | Jimmie D. Edrington | Dynamic load balancing for a multiprocessor pipeline |
EP0544083A3 (en) * | 1991-11-26 | 1994-09-14 | Ibm | Interleaved risc-type parallel processor and processing methods |
GB2263565B (en) * | 1992-01-23 | 1995-08-30 | Intel Corp | Microprocessor with apparatus for parallel execution of instructions |
SG45269A1 (en) * | 1992-02-06 | 1998-01-16 | Intel Corp | End bit markers for instruction decode |
EP0636256B1 (en) | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Superscalar risc processor instruction scheduling |
US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
US5452401A (en) | 1992-03-31 | 1995-09-19 | Seiko Epson Corporation | Selective power-down for high performance CPU/system |
US5371864A (en) * | 1992-04-09 | 1994-12-06 | International Business Machines Corporation | Apparatus for concurrent multiple instruction decode in variable length instruction set computer |
DE69308548T2 (de) | 1992-05-01 | 1997-06-12 | Seiko Epson Corp | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. |
US5590348A (en) * | 1992-07-28 | 1996-12-31 | International Business Machines Corporation | Status predictor for combined shifter-rotate/merge unit |
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 |
WO1994008287A1 (en) | 1992-09-29 | 1994-04-14 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5617549A (en) * | 1992-10-06 | 1997-04-01 | Hewlett-Packard Co | System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer |
DE69327504T2 (de) * | 1992-10-19 | 2000-08-10 | Koninklijke Philips Electronics N.V., Eindhoven | Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen |
US5452456A (en) * | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
EP1107111A3 (en) | 1992-12-31 | 2002-02-06 | Seiko Epson Corporation | System and method for register renaming |
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 |
JP3182591B2 (ja) * | 1993-01-20 | 2001-07-03 | 株式会社日立製作所 | マイクロプロセッサ |
US5485629A (en) * | 1993-01-22 | 1996-01-16 | Intel Corporation | Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines |
US5717908A (en) * | 1993-02-25 | 1998-02-10 | Intel Corporation | Pattern recognition system using a four address arithmetic logic unit |
US5825921A (en) * | 1993-03-19 | 1998-10-20 | Intel Corporation | Memory transfer apparatus and method useful within a pattern recognition system |
CA2123442A1 (en) * | 1993-09-20 | 1995-03-21 | David S. Ray | Multiple execution unit dispatch with instruction dependency |
US5440703A (en) * | 1993-09-20 | 1995-08-08 | International Business Machines Corporation | System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified |
US5535405A (en) * | 1993-12-23 | 1996-07-09 | Unisys Corporation | Microsequencer bus controller system |
NL9400607A (nl) * | 1994-04-15 | 1995-11-01 | Arcobel Graphics Bv | Dataverwerkingscircuit, vermenigvuldigingseenheid met pijplijn, ALU en schuifregistereenheid ten gebruike bij een dataverwerkingscircuit. |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
US5758116A (en) * | 1994-09-30 | 1998-05-26 | Intel Corporation | Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions |
FR2731094B1 (fr) * | 1995-02-23 | 1997-04-30 | Dufal Frederic | Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable |
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 |
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 |
US5900025A (en) * | 1995-09-12 | 1999-05-04 | Zsp Corporation | Processor having a hierarchical control register file and methods for operating the same |
US5729482A (en) * | 1995-10-31 | 1998-03-17 | Lsi Logic Corporation | Microprocessor shifter using rotation and masking operations |
US5761524A (en) * | 1996-03-15 | 1998-06-02 | Renditon, Inc. | Method and apparatus for performing and operation multiple times in response to a single instruction |
US5890009A (en) * | 1996-12-12 | 1999-03-30 | International Business Machines Corporation | VLIW architecture and method for expanding a parcel |
EP0858168A1 (en) | 1997-01-29 | 1998-08-12 | Hewlett-Packard Company | Field programmable processor array |
US5805850A (en) * | 1997-01-30 | 1998-09-08 | International Business Machines Corporation | Very long instruction word (VLIW) computer having efficient instruction code format |
US6567834B1 (en) | 1997-12-17 | 2003-05-20 | Elixent Limited | Implementation of multipliers in programmable arrays |
DE69827589T2 (de) | 1997-12-17 | 2005-11-03 | Elixent Ltd. | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen |
DE69841256D1 (de) | 1997-12-17 | 2009-12-10 | Panasonic Corp | Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten |
US6546479B1 (en) | 1998-02-10 | 2003-04-08 | Koninklijke Philips Electronics N.V. | Reduced instruction fetch latency in a system including a pipelined processor |
US7089404B1 (en) * | 1999-06-14 | 2006-08-08 | Transmeta Corporation | Method and apparatus for enhancing scheduling in an advanced microprocessor |
US7401205B1 (en) * | 1999-08-13 | 2008-07-15 | Mips Technologies, Inc. | High performance RISC instruction set digital signal processor having circular buffer and looping controls |
US6748589B1 (en) | 1999-10-20 | 2004-06-08 | Transmeta Corporation | Method for increasing the speed of speculative execution |
US6823355B1 (en) | 2000-05-31 | 2004-11-23 | International Business Machines Corporation | Synchronous replication of transactions in a distributed system |
EP1402401A4 (en) | 2001-06-15 | 2007-10-03 | Cadence Design Systems Inc | INCREASING DATA CIRCUIT MERGING CAPACITY AND REDUCING DATA CIRCUIT WIDTHS BY REBALANCING DATA CIRCULATION TOPOLOGY |
US7082517B2 (en) * | 2003-05-12 | 2006-07-25 | International Business Machines Corporation | Superscalar microprocessor having multi-pipe dispatch and execution unit |
US7107435B2 (en) * | 2003-05-27 | 2006-09-12 | International Business Machines Corporation | System and method for using hardware assist functions to process multiple arbitrary sized data elements in a register |
US7882380B2 (en) * | 2006-04-20 | 2011-02-01 | Nvidia Corporation | Work based clock management for display sub-system |
US7937606B1 (en) | 2006-05-18 | 2011-05-03 | Nvidia Corporation | Shadow unit for shadowing circuit status |
US20130086359A1 (en) * | 2011-09-29 | 2013-04-04 | Qualcomm Incorporated | Processor Hardware Pipeline Configured for Single-Instruction Address Extraction and Memory Access Operation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS513743A (ja) * | 1974-06-28 | 1976-01-13 | Hitachi Ltd | |
JPS5316260A (en) * | 1976-07-29 | 1978-02-15 | Ferag Ag | Device for pulllout from stack |
JPS56135243A (en) * | 1980-03-26 | 1981-10-22 | Hitachi Ltd | Microprogram controller |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1426749A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Micro programme data processor having parallel instruction flow streams for plural level of subinstruction sets |
JPS6028015B2 (ja) * | 1980-08-28 | 1985-07-02 | 日本電気株式会社 | 情報処理装置 |
US4393468A (en) * | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
US4569016A (en) * | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
US4589065A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system |
US4766564A (en) * | 1984-08-13 | 1988-08-23 | International Business Machines Corporation | Dual putaway/bypass busses for multiple arithmetic units |
-
1986
- 1986-08-18 US US06/896,156 patent/US4766566A/en not_active Expired - Fee Related
-
1987
- 1987-05-18 JP JP62119167A patent/JPS6349843A/ja active Pending
- 1987-07-24 DE DE3750625T patent/DE3750625T2/de not_active Expired - Fee Related
- 1987-07-24 EP EP87110751A patent/EP0260409B1/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS513743A (ja) * | 1974-06-28 | 1976-01-13 | Hitachi Ltd | |
JPS5316260A (en) * | 1976-07-29 | 1978-02-15 | Ferag Ag | Device for pulllout from stack |
JPS56135243A (en) * | 1980-03-26 | 1981-10-22 | Hitachi Ltd | Microprogram controller |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0242534A (ja) * | 1988-04-01 | 1990-02-13 | Toshiba Corp | マイクロプロセッサ |
EP0354740A2 (en) | 1988-08-09 | 1990-02-14 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
JPH03157722A (ja) * | 1989-11-15 | 1991-07-05 | Matsushita Electric Ind Co Ltd | 演算装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0260409B1 (en) | 1994-10-05 |
DE3750625T2 (de) | 1995-05-04 |
EP0260409A2 (en) | 1988-03-23 |
EP0260409A3 (en) | 1990-10-24 |
US4766566A (en) | 1988-08-23 |
DE3750625D1 (de) | 1994-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6349843A (ja) | 縮小命令セット・コンピュ−タ | |
Goodman et al. | PIPE: a VLSI decoupled architecture | |
Colwell et al. | A VLIW architecture for a trace scheduling compiler | |
Asanovic | Vector microprocessors | |
Hennessy et al. | MIPS: a VLSI processor architecture | |
Gschwind et al. | Synergistic processing in cell's multicore architecture | |
US5675777A (en) | Architecture for minimal instruction set computing system | |
JP3983857B2 (ja) | ベクトルレジスタの複数バンクを用いた単一命令複数データ処理 | |
US5675758A (en) | Processor having primary integer execution unit and supplemental integer execution unit for performing out-of-order add and move operations | |
JPH09311786A (ja) | データ処理装置 | |
JPS6014341A (ja) | 基本命令セツト計算機システムにおけるトラツプ割込み方式 | |
Uhrig et al. | A two-dimensional superscalar processor architecture | |
Hollingsworth et al. | The Clipper processor: Instruction set architecture and implementation | |
Heath | Microprocessor architectures and systems: RISC, CISC and DSP | |
KR19980018071A (ko) | 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리 | |
Ramseyer et al. | A multi-microprocessor implementation of a general purpose pipelined CPU | |
Rudd et al. | A high performance factoring machine | |
Garner | SPARC: scalable processor architecture | |
Bove Jr et al. | Media processing with field-programmable gate arrays on a microprocessor's local bus | |
Bassoy et al. | Sharf: An FPGA-based customizable processor architecture | |
Sica | Design of an edge-oriented vector accelerator based on RISC-V" V" extension | |
JP3532026B2 (ja) | 演算装置 | |
Agrawal et al. | SPARC: A scalable processor architecture | |
Yue et al. | A heterogeneous embedded mpsoc for multimedia applications | |
Bastianello et al. | A high performance single chip processing unit for parallel processing and data acquisition systems |