JPH0232424A - 命令処理装置 - Google Patents

命令処理装置

Info

Publication number
JPH0232424A
JPH0232424A JP1117617A JP11761789A JPH0232424A JP H0232424 A JPH0232424 A JP H0232424A JP 1117617 A JP1117617 A JP 1117617A JP 11761789 A JP11761789 A JP 11761789A JP H0232424 A JPH0232424 A JP H0232424A
Authority
JP
Japan
Prior art keywords
instruction
stack
instructions
execution
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP1117617A
Other languages
English (en)
Other versions
JPH0776920B2 (ja
Inventor
Daniel J Buerkle
ダニエル・ジヨセフ・バーケレ
David Jabusch John
ジヨン・デヴイド・ジヤブツシユ
Kwangpih Jen Amy
エイミイ・クワングピイ・ジエーン
Agnes Y Ngai
アグネス・イー・ナーイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0232424A publication Critical patent/JPH0232424A/ja
Publication of JPH0776920B2 publication Critical patent/JPH0776920B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

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)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明の主題はコンピュータ・システムに関し、具体的
には、マルチプロセッサ及びユニプロセッサ・データ処
理システムの命令処理装置において命令処理装置で実行
される1組の命令の実行時間を減少させる技術に関する
B、従来技術とその課題 ]ンピュータ・システムの設計及び開発において、こう
したシステムの性能が重視されつつある。
その性能はしばしば、コンピュータ・システムの命令処
理装置(IPU)内で実行される単位時間当りの命令の
数の関数である。したがって、性能を改善するには、I
PU内で実行される1組の命令の実行時間を縮小、減少
、または圧縮させなければならない。さらに、コンピュ
ータの能力に対する要求が増大し、コンピュータ設計の
開発サイクルが減少しているので、コンピュータ・シス
テムの設計者は、引き続き代替設計を探し、ある設計と
別の設計の比較検討を行なっている。望ましい設計とは
、以前の設計よりも複雑さが少なく、短い開発スケジュ
ールで完成し、以前の設計に比べて性能が増大するもの
である。従来技術のプロセッサの「パイプライン化」と
いう概念は、コンピュータの性能を増大させた。コンピ
ュータの設計者は現在、コンピュータ・システムの性能
をさらに改善するための他の創意的な技術を開発しつつ
ある。
パイプライン式プロセッサは、処理を連続的に流れさせ
て、各命令の処理時間を最小にするように設計されてい
る。これが実現可能なのは、通常のパイプライン式命令
列の実行に割込みがない場合である。パイプライン方式
への2つの主要な割込みの1つが記憶データに対する依
存性である。
処理を継続する前に記憶サブシステムからデータを要求
し、記憶媒体にアクセスし、データをプロセッサに戻す
のに時間を要する。もう1つの割込みは、分岐によって
生じるものであるが、それは本発明の主題ではない。デ
ータ依存性がすべて解決されない限り、命令は実行でき
ない。命令に対するすべてのデータ・オペランドが利用
可能な場合でさえ、次の命令に進めない。このデータ依
存性の問題を解決するための1つの方法は、順序外れ実
行と呼ばれ、未解決のデータ依存性をもつ命令をセーブ
し、データ依存性の問題が解決された後でそれを実行す
るものである。セーブされた命令及び関連するレジスタ
に後で実行するためのタグが指定される。このデータ依
存性の問題を解決するためのもう1つの方法は、データ
可用性インターロック設計と呼ばれ、必要な記憶データ
が戻されるのを待ってから実行を続行するものである。
しかし、この「データ解決時間」と呼ばれる待ち時間は
、最初にパイプラインを「充填」するときに性能を犠牲
にして支払わなければならないオーバーヘッド時間であ
る。
本発明の目的は、マルチプロセッサ及びユニプロセッサ
・データ処理システム用の改良された命令処理装置(I
PU)を提供することである。
C0課題を解決するための手段 本発明の上記及びその他の目的によれば、マルチプロセ
ッサまたはユニプロセッサ・コンピュータ・システム用
の改良されたIPUは、「データ解決時間」からある時
間増分を差し引くことにより、そこで実行される1組の
命゛令の総実行時間を圧縮する。ある期間中に、IPU
が現在N0OP命令(無演算命令)を実行中であるため
、IPUの実行装置は使用されていない。この「データ
解決時間」から時間増分を差し引くのは、、(IPUが
N0OP命令を実行しているので)実行装置が使用され
てないとき、IPUの実行装置を利用して他の命令を実
行することにより行なわれる。N00P命令とは、IP
Uによるその実行中にIPUの実行H置を使用しない命
令である。通常の命令ストリームには、いくつかのこう
したN0OP命令がある。したがって、IPUが各N0
OP命令を実行しているとき、IPUの実行装置は使用
されない。通常、命令列中で各N0OP命令の後には、
その実行中に実行装置を利用する他の非N0OP命令が
続く。したがって、コンピュータ・システムで実行され
る1組の命令の総実行時間を圧縮または減少させるため
の1つの技法は、N。
oP命令の実行中にIPUの実行装置を利用して、命令
列中の後続の非N0OP命令を実行するものである。N
0OP命令がIPUによって実行される度にこの技法を
使用する場合、IPUで実行される1組の命令の総実行
時間は、従来技術のIPUで実行されるその1組の命令
の総実行時間に比べて減少する。
本発明が適用可能なより詳しい範囲は、以下に示す詳細
な説明から明らかになるはずである。ただし、以下に示
す詳細な説明を読めば、当業者には本発明の精神及び範
囲内の様々な変更及び修正が自明になるはずなので、本
発明の好ましい実施例を示す詳細な説明と具体的な例は
例示にすぎないことを了解されたい。
D、実施例 第4図に、本発明を適用しうるユニプロセッサシステム
の例を示す。
第4図で、ユニプロセッサ・システムは、記憶制御装置
(SCL)12に接続されたL3メモリ10を含む。記
憶制御装置12はその一端が統合入出力サブシステム制
御装置14に接続され、制御装置14は統合アダプタ及
び単一カード・チャンネル16に接続されている。記憶
制御装置12の他端はI/Dキャッシュ(Ll)18に
接続される。キャッシュ18は、命令キャッシュとデー
タ・キャッシュを含み、「Ll」キャッシュともいう。
I/Dキャッシュ18は、命令装置(IU)、実行装置
(EU)、制御記憶装置(C/S)を含むブロック20
及びベクトル・プロセッサ(VP)22に接続されてい
る。ベクトル・プロセッサ22は、1983年9月9日
付の米国特許出願第530842号、r高性能並列ベク
トル・プロセッサ(旧gh Performance 
Parallel VectorProcessor 
) Jに記載されている。この記載を、引用により本明
細書に組み込む。第4図のユニプロセッサ・システムは
また、マルチシステム・チャネル通信装置24を含む。
L3メモリ10は、2枚のインテリジェント・メモリ・
カードを含む。このカードが「インテリジェント」と形
容されるのは、エラー検査/訂正、拡張エラー検査/訂
正(FCC)再生アドレス・レジスタ及びカウンタ、及
びビット予備機能という特定の機能を備えているためで
ある。L3メモリ10へのインターフェースは8バイト
幅である。
L3メモリは記憶制御装置C3CL)12に接続されて
いる。
記憶制御装置12は、L3メモリ10、入出力サブシス
テム制御装置14及びI/Dキャッシュ18に対するア
クセスを仲裁する3つのバス・アービタを含む。記憶制
御装置はさらに、データを求めてI/Dキャッシュ18
(Llキャッシュとも呼ばれる)を探索することを担当
するディレクトリを含む。データがLlキャッシュ18
にあるがそのデータが古くなっている場合、記憶制御装
置12はL1キャッシュ18内の古くなったデータを無
効にして、入出力サブシステム制御装置14がL3メモ
リ10のデータを更新できるようにする。その後、命令
/実行装置20は、L3メモリ10から更新されたデー
タを獲得しなければならない。記憶制御装置12はさら
に、入出力サブシステム制御装置14からL3メモリ1
0に入力されるデータ及び命令/実行装置20からL3
メモリ10に入力されるデータをバッファする複数のバ
ッファを含む。命令/実行装置20に関連するバッファ
は、順次動作などいくつかの形式の命令に対して、−時
に8バイトの項目を作成できる256バイトの行バッフ
ァである。この行バッファは、−杯のとき、L3メモリ
へのデータ・ブロック転送を行なう。したがって、メモ
リ動作は、多数の個別記憶動作からより少数の行転送へ
と減少する。
I/Dキャッシュ(Ll)18は、それぞれ16にバイ
ト・キャッシュである;記憶制御装置12とのインター
フェースは8バイト幅である。すなわち、記憶制御装置
12からのインページ動作は、8データ転送サイクルか
かる。データ・キャッシュ18は、「ストアスルー」型
キャッシュであり、命令/実行装置20からのデータが
L3メモリに記憶され、かつ対応する古くなったデータ
がL1キャッシュ18にない場合、そのデータはL1キ
ャッシュに入力されず記憶されない。この動作を支援す
るため、最高8個の記憶動作をバッファすることができ
るし1データ・キャッシュ18を備えた「記憶バッファ
」が設けられる。
ベクトル・プロセッサ(VP)22は、データ・キャッ
シュ18に接続されている。ベクトル・プロセッサ(V
P)22は、命令/実行装置20から記憶制御装置12
に入るデータ・フローを共用するが、その動作中は、命
令/実行装置2oによるデータの取出しのための記憶制
御装置12へのアクセスを禁止する。
統合入出力サブシステム制御装置14は、8バイト・バ
スを介して記憶制御装置12に接続されている。I10
サブシステム制御装置14は、I10サブシステム制御
装置14からのデータを記憶制御装置12と同期させる
のに使用する3つの64バイト・バッファを含む。すな
わち、命令/実行装置20と入出力サブシステム制御装
置14は異なるクロックで動作し、この2つのクロック
の同期は3つの64バイト・バッファ構造によって実現
される。
マルチシステム・チャネル通信装置24は、チャネル・
アダプタへの4ポート・チャネルであり、システムの外
部に実装されている。
第2図に、本発明を適用しうるマルチプロセッサシステ
ムの例を示す。
第2図で、L3メモリIOA/IOBの対は、バス切替
え装置(BSU)26に接続されている。
BSU26はL2キャッシュ2EiAを含む。BSU2
6は統合入出力サブシステム14、共用チャネル・プロ
セッサ28、及び3つのプロセッサに接続される。3つ
のプロセッサとは、I/Dキャッ、シュ18Aと命令/
実行装置/制御記憶装置20Aを含む第1のプロセッサ
、I/Dキキッシュ18Bと命令/実行装置/制御記憶
装置20Bを含む第2のプロセッサ、及びI/Dキャッ
シュ18Cと命令/実行装置/制御記憶装置20Gを含
む第3のプロセッサである。I/Dキャッシュ18A1
18B、18Cのそれぞれを「Ll」キャッシュと呼ぶ
。BSU26のキャッシュは、L2キャッシュ26Aと
呼び、主記憶装置10A/10BはL3メモリと呼ぶ。
BSU2Bは、3つのプロセッサ18A/2OA118
B/20B及び18G/20C,2つのL3メモリ・ボ
ートIOA/IOB、2つの共用チャネル・プロセッサ
28及び統合入出力サブシステム制御装置14に接続さ
れている。BSU26は、3つのプロセッサのそれぞれ
からL3メモリへの要求や入出力サブシステム制御装置
14または共用チャネル・プロセッサからの要求などの
処理すべき要求の優先順位を決定する回路、インターフ
ェースを動作させる回路、及びL2キャッシュ26Aに
アクセスする回路を含む。L2キャッシュ26Aは「ス
トアイン」型キャッシュであり、データを変更するため
にL2キャッシュにアクセスする動作が、L2キャッシ
ュに存在するデータをも変更しなければならないことを
意味する(この法則の唯一の例外として、その動作が入
出力サブシステム制御装置14から発する場合、及びデ
ータがL2キャッシュ26AにはなくL3メモリ10A
/10Bにしか存在しない場合、データはL2キャッシ
ュでは変更されずL3メモリでのみ変更される)。
BSU28とL3メモリIOA/IOBの間のインター
フェースは、第4図の単一8バイト・ボートの代わりに
、2つの16バイト線/ポートを含む。ただし、第1図
のメモリ10は、第2図のメモリ・カードIOA/IO
Bと同じである。第2図の2枚のメモリ・カードIOA
/IOBは並行にアクセスされる。
共用チャネル・プロセッサ28は、2つのボートを介し
てBSU26に接続されている。各ボートは8バイト・
インターフェースである。共用チャネル・プロセッサ2
8はBSU2Bから独立した周波数で動作し、BSU内
のクロックは、記憶制御装置12と第4図の統合入出力
サブシステム制御装置14の間のクロック同期と同様な
方式で共用チャネル・プロセッサ28のクロックと同期
される。 以下の諸般では、第4図を参照して第4図ノ
ユニプロセッサシステムの動作の機能的説明を行なう。
普通、命令は命令キャッシュ(LLキャッシュ)18中
に存在し、実行されるのを待つ。命令/実行装置20は
、LLキャッシュ18内に配置されたディレクトリを探
索して、典型的な命令がそこに記憶されているかどうか
を判定する。命令がL1キャッシュ18に記憶されてい
ない場合、命令/実行装置20は記憶制御装置12に対
する記憶要求を生成する。命令のアドレス、または命令
を含むキャッシュ行が、記憶制御装置12に送られる。
記憶制御装置12は、L3メモリ10に接続されたバス
へのアクセスを調停スル。
最終的には、命令/実行装置20からの要求は、L3メ
モリ10に送られる。この要求は、命令/実行装置20
へ転送するためにL3メモリの行を取り出すよう指示す
るコマンドを含む。L3メモリはその要求をラッチし、
復号し、その命令が記憶されるメモリ・カードの位置を
選択し、数サイクルの遅延後に、命令が8バイトずつL
3メモリから記憶制御装置12に送られる。命令は次い
で記憶制御装置12から命令キャッシュ(Llキャッシ
ュ)18に送られ、そこで−時的に記憶される。
命令は、命令キャッシュ18から命令/実行装置20内
の命令バッファに再び送られる。命令は、命令装置20
内の復号器によって復号される。その命令を実行するた
めにオペランドが必要な場合がよくある。オペランドは
メモリ10中にある。
命令/実行装置20が、データ・キャッシュ18中のデ
ィレクトリを探索する。データ・キャッシュ18のディ
レクトリ中でそのオペランドが見つからない場合、命令
キャッシュ・ミスに関して上記に述べた通りの方式で、
L3メモリ10にアクセスする別の記憶アクセスが命令
/実行装置20から出される。オペランドはデータ・キ
ャッシュに記憶され、命令/実行装置20はそのオペラ
ンドを求めてデータ・キャッシュ18を探索する。その
命令がマイクロコードを使用する必要がある場合、命令
/実行装置20は命令実行装置20カードに存在するマ
イクロコードを使用する。入出力動作を実行する必要が
ある場合、命令/実行装置20は、命令キャッシュ18
に存在する入出力命令を復号する。情報は、L3メモリ
10の命令実行から分離された補助部分に記憶されてい
る。この時点で、命令/実行装置20は、こうした情報
がL3メモリに記憶されていると統合入出力サブシステ
ム制御装置14に伝え、入出力サブシステム制御装置1
4のプロセッサは情報を取り出すためL3メモリ10に
アクセスする。
以下の諸般では、第2図を参照して第2図のマルチプロ
セッサシステムの動作の機能的説明を行なう。
第2図で、2OA120Bまたは20Cのうちの1つで
ある特定の命令/実行装置は、ある要求を必要とし、所
期の命令を求めて、18A、18Bまたは18Cのうち
の1つである自己のL1キャッシュを探索するものと仮
定する。さらに、所期の命令はL1キャッシュには存在
しないと仮定する。次いで、その特定の命令/実行装置
は、そこに配置されたL2キャッシュを探索するため、
BSU26へのアクセスを要求する。BSU28は、命
令/実行装置2OA120Bまたは20Cのそれぞれと
共用チャネル・プロセッサ28及び統合入出力サブシス
テム制御装置14から要求を受は取るアービタを含み、
アービタは一時にこれらの装置のうちの1つにアクセス
を許可する。特定の命令/実行装置(2OA−20Cの
うちの1つ)がL2キャッシュ26Aを探索するための
BSUへのアクセスを許可されると、その命令/実行装
置は、所期の命令を求めてBSU2e内に配置されたL
2キャッシュ26Aのディレクトリを探索する。所期の
命令がL2キャッシュで見つかると仮定する。その場合
、所期の命令が、その特定の命令/実行装置に戻される
。所期の命令がL2キャッシュ内にないことがそのディ
レクトリによって示される場合、所期の命令に対する要
求が、10AまたはIOBのうちの1つであるL3メモ
リに対して行なわれる。所期の命令がL3メモリにある
場合、それは直ちに一時に16バイトずつBSU2E3
に送られ、特定の命令/実行装置(20A−20Cの1
つ)にバイパスされ、同時にBSU28のL2キャッシ
ュ28Aに記憶される。
BSU内に存在する追加の機能は、マルチプロセッサ・
システム内の記憶の整合性に関する法則に関するもので
ある。たとえば、特定の命令/実行装置20C(rプロ
セッサ」20Cとも呼ばれる)がデータを変更したとき
、そのデータが、複合体中の他のすべての命令/実行装
置または「プロセッサJ 2OA120Bに見えるよう
にならなければならない。プロセッサ20CがそのL1
キャッシュ18Cに現在記憶されているデータを変更す
る場合、その特定のデータの探索が、BSU26のL2
キャッシュ・ディレクトリ28Aで行なわれる。
見つかった場合、そのデータはL1キャッシュ18Cで
の変更を反映するように変更される。さらに、他のプロ
セッサ2OAと20Bが、現在L2キャッシュ2BA中
に存在する変更された正しいデータを見ることができ、
そのL1キャッシュ18Aと18Bに存在する対応する
データを変更することができる。問題のプロセッサ20
Gは、他のプロセッサ2OAと20Bがその対応するデ
ータを適宜変更する機会を得るまで、そのデータに再ア
クセスできない。
第3図に、L1キャッシュ18A−18C,I装置/E
装置/制御記憶装置2OA−20G及びベクトル・プロ
セッサ22A−22Cのより単純化した構成を示す。第
3図で、L1キャッシュはそれぞれ、命令キャッシュ装
置(ICU)18−1及びデータ・キャッシュ装置(D
CU)18−2を含む。本発明の命令処理装置(IPU
)(第2図ないし第4図ではI装置/E装置/制御記憶
装置2OA−20Gと呼ぶ)は、浮動小数点装置(FP
U)20−5、制御記憶装置(C8U)20−1、命令
事前処理装置(IPPU)20−3及び実行処理装置(
EPU)20−4を含む。DCU 18−2!t、VP
ババスVPBUS)t−介しテヘクトル処理装置(VP
U)22A−22Cに接続されている。第3図の固定小
数点実行装置20−4は実行処理装置(EPU)20−
4で代表されている。ICU18−1及びDC018−
2は、浮動小数点装置(FPU)20−5に接続されて
いる。第3図の制御記憶装置(C8U)20−1は、制
御記憶装置(CS U)である。
第1図に、第3図のEPU20−4内に配置された本発
明を実施するための命令スタック(IS)を示す。
第1図で、EPU20−4は命令スタック(IS)20
−4Aを含み、l520−4Aは、命令列、すなわち、
lR30に接続されたスルタック1と2及びスタック3
から成る命令待ち行列33から1つの命令を受は取るよ
うに命令バスに接続された命令レジスタ(IR)30を
含む。スタック3からEPU20−4で実行される命令
を表す出力が生成される。スタック3中の命令は通常、
実行中のものである。しかし、またlR30のスタック
1及びスタック2から別の出力がゲートされる。
したがって、lR30のスタック1またはスタック2中
のどの命令もスタック3中の命令の代わりに実行するこ
とができる。
命令は、記憶装置から直接EPU20−4で受は取られ
、命令スタックl520−4Aにセーブされる。l52
0−4Aは、復号し実行すべき命令をセーブ(記憶)す
る命令レジスタ(IR)30を含む。必要な記憶データ
が得られるまで実行できない命令もある。RXタイプの
命令を含む命令は、オペランドと実行論理が準備できる
まで命令待ち行列(スタック1と2)にセーブ(記憶)
される。命令待ち行列は、命令事前処理速度をEPUの
実行速度と一致(緩衝)させるために使用される。lR
30は、有効ビットvを含む。有効ビットは、有効な命
令がlR30に提示されていることを示す命令バスによ
って1にセットされる。
命令待ち行列のスタック1−3はそれぞれ有効ピッ)V
l、V2及びV3も含む。を効ビットv1、V2及びV
3は、その命令がEPUによる実行を必要としているも
のであるかどうかを指示する。
第1図で、lR301命令スタツクのスタック1と2、
及び命令スタックのスタック3から個別の出力線が出て
いることに留意されたい。各出力線は実行装置(EPU
)のA−LU部分に接続されている。その結果、IRに
入れられた命令が直接実行され、スタック1中の命令が
直接実行され、スタック2中の命令が直接実行され、あ
るいはスタック3中の命令が直接実行される。
第6図に、第1図の新規な命令スタックを制御するため
の制御ラッチを示す。制御ラッチC1と02は、それが
スタック2または1を実行するのに好都合なとき、それ
ぞれスタック2及び1をアセンブラ34にゲートする。
同様に、ゲート48は、すべてのを効ビットv1、v2
及びv3がオフ(ゼロ)のとき命令レジスタlR30を
ゲートするために、スタック1.2及び3から、命令が
命令レジスタlR30から直接実行されるのでスタック
は不要なことを示す有効ビットv1、v2、V3を受は
取る。
以下の諸般では、第1図、第3図、第5図及び第6図を
参照して実行処理装置(EPU)20−4とその中に配
置された新規な命令スタックを含む、本発明の第3図の
新規な命令処理装置(IPU)の機能的説明を行なう。
第3図に示した本発明のIPUは、命令事前処理装置(
IPPU)と実行装置(EPU)から構成されている。
EPUは、命令の実行を担当する。
EPU20−4は、汎用レジスタ(GPR) 、演算論
理機構(ALU) 、CI−テート(Rotate)(
RMU)及び条件コード論理回路を含む。
命令事前処理装置は、記憶データ・オペランド要求、争
奪及びインターロックの検出、及び全体的バイブライン
制御を担当、している。
マイクロコードなしにハードウェアによって完全に処理
され実行される命令は、ハードワイヤ式命令と呼ばれる
。本発明のIPU(または「プロセッサ」)の設計に使
用されるハードワイヤ式命令用の通常のパイプライン構
造は、7つのセフシロンから構成される。
IRADFEW +−−−十一自−+−−−+−−+4++++・+−+
−−−ただし、 ■は命令取出し Rは命令コード復号及びGPR/LS読取りAは記憶ア
ドレス計算 りはTLB及びディレクトリ・アクセスFはデータ・キ
ャッシュ・アクセス Eは実行 WはGPR/LS更新である。
理想的な状態では、これらのセフシロンはそれぞれ1マ
シン・サイクルで完了する。しかし、すべてのハードワ
イヤ式命令が上記の動作のすべてを必要とするわけでは
ない。様々なハードワイヤ式命令の実行中に実際、様々
なマシン・サイクル数が消費され、様々なパイプライン
列が利用される。したがって、このプロセッサに対する
最高の「性能」を実現するには、新しいハードワイヤ式
命令の実行を、マシン・サイクルごとに(順次命令処理
モードで)開始しなければならない。「性能」の語は「
スループット」と同義である。これは、サイクル当りの
命令の数、すなわち、1マシン・サイクルで完了される
命令の数を記録することによって測定される。この測定
値は、命令のバッチまたはプログラムがプロセッサで処
理されるときに得られる平均の数であり、命令のバッチ
またはプログラムを完了するのに要するマシン・サイク
ル数の逆数である。マシン・サイクル数が小さいほど、
「性能」すなわち「スループット」は向上する。
本明細書では、N0OP命令とは、EPUからの「能動
関与」を必要としないものである。EPUの「能動関与
」という語は、EPUの加算器、桁送り器、または条件
コード論理回路あるいはそれらの組合せが関与すること
を言う。ただし、外部データを入力レジスタで受は取る
動作は、「能動関与」とは見なされない。
パイプライン式プロセッサは、処理を継続的に流れさせ
、各命令の処理時間を最小にするように設計されている
。これが実現されるのは、正常のバイブライン命令列の
実行中に割込みがない場合である。バイブライン方式へ
の2つの主要な割込みのうちの1つが記憶データ依存性
である。処理を続行する前に記憶サブシステムからデー
タを要求し、記憶媒体にアクセスし、データをプロセッ
サに戻すために時間を要する。もう1つの割込みは分岐
によって生じるものであるが、それは本発明の主題では
ない。
データ依存性がすべて解決されない限り、命令は実行で
きない。この命令に対するすべてのデータ・オペランド
が利用可能な場合でさえ、次の命令に進めない。このデ
ータ依存性の問題を解決するための1つの方法は、デー
タ可用性インターロック設計と呼ばれ、解決すべき記憶
データを待ってから、実行を続行するものである。上記
の命令待ち行列は、同じ命令バッチの期間中この記憶ア
クセス・オーバーヘッドを最小にする。この待ち行列に
より、EPUが停止されてデータ・オペランドを待って
いる間に命令事前処理を継続することが可能となる。同
時に、この設計は、命令が最初に指名されたのと同じ順
序で命令実行を維持する。
しかし、「データ解決時間」は、最初にパイプラインを
「充填」するときに支払わなければならないオーバーヘ
ッド時間である。
本発明のIPUは、「データ解決時間」 (オペランド
が記憶装置からシークされている間の待機時間)からあ
る時間増分を差し引いて、IPUの実行装置で実行され
る1組の命令の総実行時間を圧縮することにより、上記
のデータ可用性インターロック設計に改良を加えるもの
である。この差弓きは、実行装置が通常使用されてない
時にそれを使用することにより行なわれる。N0OP命
令の実行中にはIPUの実行装置は使用されず、N0o
p命令は第3図のI PPU20−3で実行される。命
令ストリーム列中の次の命令は、実行装置を使用する必
要があるが、以前のN0OP命令の実行が完了するまで
待たなければならない。本発明の改良されたIPUによ
ると、IPPUが前のN0OP命令を実行しているとき
に次の命令が実行装置を利用す、ることかできる。した
がって、次の命令の実行が、以前に予想されたより1サ
イクル早く完了する。こうして、命令ストリーム全体の
実行時間が「圧縮される」。
IPUで実行される命令ストリームの総経過実行時間を
短くする方法はいくつかある。
1、データ検索時間をカットする。
2、実行時間とデータ検索時間をオーバーラツプさせる
3、実行時間をカットする。
本発明の改良されたIPUの目的は、IPUの実行装置
で実行される1組の命令の実行時間をカットすることで
ある。
N0OP命令は、実行中に、IPUのプロセッサ論理の
大半を利用しない。したがって、N00P命令の実行中
に後続の他の命令がこのプロセッサ論理を使用できる場
合、命令ストリームの総実行時間を減らすことができる
。たとえば、No0P命令と呼ばれるある一般的な命令
のグループは、活動実行段階を必要としないもので、ロ
ード、ロード・ハーフ、ロード・アドレスの各命令がそ
れに含まれる。これらの命令は外部装置からデータを検
索し、指定されたレジスタを受は取ったデータで更新す
る。外部装置には、記憶サブシステム、アドレス処理論
理機構、またはEPU自体以外の任意の機能ユニットが
含まれる。EPUの中心(加算器、桁送り器、条件コー
ド論理回路、他のデータ処理論理回路)は、こうしたN
0OP命令の実行中には不要である。これらの命令は第
3図に示す中央演算処理装置のI PPUで実行される
性能を測定するのに使用される代表的な追跡プログラム
は、17%のロード命令、5%のロード・アドレス命令
及び2.5%のロード・ハーフ命令を含む。したがって
、追跡プログラムの命令のうち合計17+5+2.5=
24.5%が、N0OP命令である。したがって、総実
行時間の24゜5%のN0OP命令が実行されている間
中、IPUのEPUは使用されない。このEPU遊休時
間が後続の命令の実行時間と組合せ可能である場合、後
続の命令の実行を1サイクル早く開始させることができ
る。言い換えれば、IPUによって実行されるプログラ
ム中の各N0OP命令(IPUがいわゆる「スタック」
または「待ち行列」モードにある間)ごとに1マシ、ン
・サイクルが削減される。
以下の命令列を考える。
A  R2、(LOG) L  R4、LOOPCNT ARR5、Re これらの命令の最初のものはEPU中でのRX命令の実
行、第2のものはN0OP命令、第3のものはRX命令
より短い実行時間しか必要としないRR命令と見なされ
る。
従来技術の命令スタックを用いて、この命令列のタイミ
ング図を以下に示す。
A R2、(LOG) ADFEW + −−−+ −−−+ −−−+ −−−+ −−−
+ −−−+ −−一◆−−L  R4、LOOPCN
TADFW + −−−+ −−−+ −−−+ −−−+ −−−
+ −−−+ −−一◆−−ARR5、R2HEW 本発明による第1図の命令スタックを用いて、この命令
列のタイミング図を、以下に示す。
十−−−辛−−−−−−+−−一 A  R2、(LO
G)ADFEW + −−−+ −−−+ −−−+ −−−+ −−−
+ −−−+ −−−◆−−L  R4、LOOPCN
TADFW + −−−+ −−−+ −−−+ −−−+ −−−
+ −−−+ −−一中一−ARR5、R2HEW 前者のタイミング図では、マシン・サイクル6の間に、
実行装置rEJは使用されておらず(IPUは頭字語r
WJで示したGPR/LS更新を実行スる)、マシン・
サイクル7の間に、実行装置rEJは命令ARR5、R
6を実行するのに使用されている。しかし、後者のタイ
ミング図では、マシン・サイクル6の間に、実行装置r
EJは遊休であるため、後続の命令ARR5、Reを実
行するのに使用され、同時に、IPUは、頭字語rWJ
で示した前の命令、GPR/LS更新を実行している。
上記のような機能を実施するには、単一人力/複数出力
(SIMO)命令スタック(命令待ち行列)が必要であ
る。さらに、命令待ち行列中の命令のフローを制御する
ための制御回路も必要である。
第1図で、本発明のIPU20のEPU20−4内に配
置された新規な命令スタック2O−4Aが示されている
。上記のように、この新規なスタック2O−4Aは、命
令レジスタlR30及び命令待ち行列33を含む。命令
待ち行列33はスタック1ないし3を含み、通常はスタ
ック3に実行される命令が含まれている。スタック3は
、命令スタック2O−4Aから通常実行される命令を表
す出力をもつ。しかし、lR301スタツク1、及びス
タック2がそれぞれ別々の出力をもつことに留意された
い。したがって、lR30、スタック1またはスタック
2中の命令が、スタック2中の命令の代わりに実行でき
る。各出力は、汎用レジスタ(GPR)にアクセスし、
EPU中の実行論理回路及び条件コード論理回路を案内
するための局所制御信号を生成するのに使用される命令
を表す。
通常の命令スタック33は、単一人力単一出力構成をも
つ(新しい命令が入力端に入り、そのスタック中の最古
の命令が出力端から実行される)。
命令は、それらがEPUが受は取ったのと同じ順序で実
行される。第4図の単一人力複数出力式命令スタックは
、すべてのレベルが出力に利用できる意思外は、上記に
示した通常の命令スタックと同じである。−時にこれら
の出力のうちの1つだけがEPUによって使用される。
Rxタイプの命令は、オペランドとして記憶データを必
要とし、スタック33にセーブされる。RRタイプの命
令は、オペランドとして記憶データを必要とせず、Rx
タイプの命令より早く完了できる。しかし、「スタック
・モード」で動作するときは、命令の正確な実行順序を
保証するために、RX命令に続<RRタイプの命令もそ
のスタックにセーブされ、後でスタックの出力で実行さ
れる。
「スタック・モード」とは、EPUが出力信号りを介し
てスタック3の出力から命令を実行するときの状態であ
る。第1図のスタックで無効な命令しかなく、命令レジ
スタ30(スタック1、スタック2、スタック3)にR
X命令がない(すなわち、N0OP命令だけの)とき、
EPU20−4は「スタック・モード」から「非スタッ
ク・モード」に切り替わる。「非スタック・モード」の
とき、命令は、エネーブル信号Aを介してl520−4
Aの命令レジスタ(IR)から実行される。「可変スタ
ック・モード」というものがある。「可変スタック・モ
ードj中には、RRタイプの命令が、エネーブル信号B
を介してスタック1の出力(スタック2と3が共にN0
OP命令を含むとき)から、またはエネーブル信号Cを
介してスタック2の出力(スタック3がN0OP命令を
含むとき)から実行される。
IRは、バスからの命令を有効なものとして識別する有
効ビットVを含む。スタック1は有効ピッ)Vlを含み
、スタック2は有効ビットv2を含み、スタック3は有
効ビットv3を含む。有効ビットv1、v2、v3は、
関連するレジスタ/スタック中の命令が実行装置(EP
U)の使用を必要とするものであるかどうかを判定する
のに使用される。その命令がEPUの使用を必要としな
いものである(NOOP命令である)場合、有効ビット
V1、v2、v3は、第5図に示す復号論理回路41.
46.47によってオフ(0)にセットされる。その命
令がEPUの使用を必要とする(N00P命令でない)
場合、有効ビットv1、V2、V3はこの復号論理回路
によってオン(1)にセットされる。l520−4Aが
受は取った命令が、有効なハードワイヤ式命令でないと
命令バスにより判定された場合、それは無効命令であり
、その無効命令に関連する有効ビットv1、v2または
v3はオフ(0)になる。を効ビットは、第5図に示す
制御ラッチの出力に応じてセットまたはリセットされる
。非スタック・モードでは、l520−4AのIR中の
有効ビットVの値が、vl、v2またはv3に伝播でき
ない。可変スタック・モード(以下でより詳しく定義す
る)中には、命令レジスタ中の有効ビットVの値だけが
、命令待ち行列の深部に(すなわち、第5図の制御ラッ
チに応じてvl、v2またはv3まで)伝播して、その
スタックの各レベルの有効非N0OP命令を識別するこ
とができる。
第6図に、第1図のI 820−4Aの命令待ち行列中
の命令フローを制御するのに利用される制御論理回路を
示す。この制御論理回路は、2つの制御ラッチ、制御ラ
ッチC1と02を含む。各制御ラッチは、命令待ち行列
中のスタックの1つのレベルを制御する。すなわち、第
6図の制御ラッチC1は第1図の命令待ち行列のスタッ
ク2をゲートし、制御ラッチC2は命令待ち行列のスタ
ック1をゲートする。これらの制御ラッチC1と02は
、プログラム中の命令の履歴及び現在の命令状況に基づ
いてセット及びリセットされる。
第1図のアセンブラ34は、複数の入力、すなわち命令
レジスタ30の出力または命令待ち行列からのスタック
・レベル1.2または3のいずれかを受は取る。
通常の動作では、命令レジスタ30中の最初の命令が、
EPUが演算動作を実行することを必要とするRX命令
として復号されるまで、命令待ち行列は使用されない。
第6図に示す復号器53は、第5図の当該の制御論理回
路41によってRX命令の存在を検出する。これは、ス
タック1のV1ビットを有効ビットにセットする効果を
もつ。この状況の下で命令レジスタ30に関連するvビ
ットを含むラッチ40からのVビットを復号RXとAN
Dすることによって、ラッチ42がセットされる。
こうして最初のRX命令の存在が復号されると、■1ビ
ットがセットされ、命令がスタック33に入り、完全ス
タック・モードに入る。次にRX命令がスタック・レベ
ル3に到達するまで、すべての命令がスタック中を伝播
する。
以下の命令がそれぞれ検査されて、それがN。
OP命令であるかそれとも非N0OP命令か、すなわち
、EPUによる実行を必要とするRXまたはRR命令で
あるかどうかが判定される。
最初のRX命令は、スタック・レベル中をスタック3ま
で伝播し、各場合に、命令がそれぞれスタック2と3に
到達したとき、当該の有効ビットv2、v3が1にセッ
トされる。
ANDゲート48と47は、前のスタックからの命令を
検査し、以前のスタック命令がV2またはv3まで伝播
されたとき、スタック2または3中に存在する命令がN
0OPまたは非N0OP命令かどうかをラッチ43と4
4が確実に識別できるようにするためにセットされる。
最初のRX命令が検出されるまで、命令レジスタ30は
、第8図で生成される論理信号Aによってアセンブラ3
4にゲートされる。この非スタック・モートは、RR命
令及びIRレジスタ3oにロードされるN0OP命令を
含めて各命令を実行するのに利用される。最初のRX命
令が復号論理回路53によって復号され、ラッチ42に
よって識別されたとき、スタック・モードが始まる。
RX命令の存在を検出することによってスタック・モー
ドに入ると、スタック・モードが利用され、スタック・
レベル3.2または1のうちの1つがエネーブル信号B
、CまたはDの制御の下でアセンブラ34にゲートされ
る。通常、最初のRX命令が復号された後、スタック3
にある命令だけが、EPU20−4の一部としてのEP
Uプロセッサ35により実行される。すなわち、最初の
RX命令がスタック3に到達すると、スタック3中のこ
の命令に関連する有効ビットV3の検出により実行され
る。
後続の命令がスタック1.2.3を含む命令待ち行列中
を伝播するにつれて、N0OP命令が、EPU35が実
行に必要でないスタック3に最初に到達したとき、その
有効ビットv3が0にセットされる。スタック1または
2も命令レジスタ30もRX命令を含まないと第6図の
制御論理回路によって判定された場合に、次のRR命令
を含む次に高位のスタック・レベル、すなわちスタック
2または1が、第6図に示す制御論理回路によって使用
可能になる。この実施例の制御論理回路は、RX命令が
任意のスタック・レベルまたは命令レジスタ30にある
と判定された場合、スタックを完全スタック・モードに
維持する。出力Cが使用可能になるのは、スタック2の
命令が有効なRR命令で、スタック1または命令レジス
タ30がRX命令を含まないときである。スタック2の
命令もN0OP命令であることがビットv2によって判
定された場合、出力Bは第6図の回路によって使用可能
になり、スタック1がRR命令を含む場合、スタック1
をEPU35による実行のためアセンブラ34に提示す
ることが可能となる。もちろん、エネーブル信号Bが生
成されるのは、スタック1の命令に関連するv1ビット
が1にセットされて、実行を必要とする非N0OP命令
がスタック1にあり、その命令がRR命令であることを
示す場合だけである。
スタック1.2及び3のすべてがN0OP命令を含む場
合、第8図のNORゲート48は、命令レジスタ30か
らの出力がその後のすべての実行に使用される、すなわ
ち非スタック・モードで動作することを示す、エネーブ
ル信号Aを生成する。
この非スタック・モードは、次のRX命令が命令レジス
タ30で検出されるまで継続する。すなわち、実行装置
35と命令フローの速度を一致させるために通常使用さ
れる命令待ち行列33を使用せずに、非N0OP並びに
RR命令を連続してアセンブラ34に提示することがで
きる。
第6図ではさらに2つの制御ラッチ4θと50が示され
ている。これらの制御ラッチは、復号回路51と52に
も接続されている。復号器53は、生成された各命令が
RXであるか否かを判定するために命令レジスタ30に
接続されている。命令L/シスタ30が復号されて、い
つでもRX命令を含むことが判明した場合、RX命令が
レベル3に到達して実行されるまで、命令待ち行列はス
タック・モードのままとなり、あるいはスタック・モー
ドに変わる。第6図の論理回路5L52は、ラッチ49
と50の両方をリセット状態に保持して、レベル3のR
X命令が実行される前に別のRX命令を命令レジスタ3
0で受は取った場合にシステムを完全スタック・モード
に保持する。RX命令がスタック・レベル3から実行さ
れ、次の3つの連続する命令がRX命令でない場合、う
、チ49と50は、スタック・レベル1.2または3の
内容に応じてセットされる。スタック・レベル3がN0
OP命令を含むことがビットv3によって判定され、ス
タック2が有効な非N0OP命令を含むことがビットv
2によって判定された場合、ラッチ49はエネーブル信
号Cを生成する。ビットV3とv2が無効で、スタック
・レベル2と3がN00P命令を含むことを示す場合、
ANDゲート54は、スタック・レベル1がRR命令を
含むことが有効ビットv1によって判定されると、エネ
ープル信号Bを生成する。
明らかに、どのスタックも有効ビットを含まない、す?
Cb t3、vl、V2、V3=(1)場合、NORゲ
ート48は線Aを使用可能にする。
すなわち、スタック1.2及び3中の命令列に応じて、
完全スタック・モード、部分スタック・モードまたは非
スタック・モードでシステムを動作させることができる
再び第1図に戻ると、図のMUX31は、EPUプロセ
ッサ35に命令有効指示も送る。当然のことなから;こ
の命令有効指示は、アセンブラ34のためのエネーブル
信号A、B1C1Dの生成と同時に生成される。
以上の説明では、EPUはN0OP命令を実行する必要
はないと述べてきた。しかし、これらのN0OP命令は
、第1図及び第3図に示すIPPU20−3によって実
行することができる。ただし、上記のシステムは、スタ
ック・モードで動作するとき、RX命令及びRR命令を
実行すべきときにRX命令、RR命令及びN0OP命令
の順序を維持する。
E0発明の効果 単一人力複数出力(SIMO)ハードウェア命令スタッ
クを設計することにより、プロセッサ遊休時間をスタッ
ク・モードでの後続の命令の実行と組み合わせた。この
装置は、命令Nと命令工の有効な実行の間の時間を圧縮
する。ただし、Nは任意の整数で、■≧N+1である。
このスタックは、同時にそのプロセッサで異なる命令列
が一時に実行されることによって変動が導入されること
による、2つの実行動作の間のギャップを動的に調整す
ることができる。この形の圧縮は、並列決定処理が制御
論理回路により実行中のプログラムの命令の履歴に応じ
て実行されるために、ハードウェア手段によってしか効
果的に実行できない。
この装置は、EPUのプロセッサ遊休時間を減らすこと
ができる。順次実行では、確かに複雑な設計の量が制限
される。有効な動作の間の遊休時間の圧縮によりシステ
ム性能が向上する。その2つの組合せ(順次実行と有効
な動作の間の遊休時間のzX圧縮)により、システム性
能がさらに向上する。
【図面の簡単な説明】
第1図は、本発明に基づく命令処理装置の作用を説明す
る図である。 第2図は、本発明を適用しうるマルチプロセッサシステ
ムを示す図である。 第3図は、第2図のL1キャッシュ18A−18C,I
装置/E装置/制御記憶装置2OA−2001及びベク
トル・プロセッサ22A−22Cのより節単にした構成
を示す図である。 第4図は、本発明を適用しうるユニプロセッサシステム
を示す図である。 第5図は、第3図の実行処理装置(EPU)20−4の
命令スタックで使用される有効ビットを形成するための
装置を示す図である。 第6図は、第3図の実行処理装置(EPU)20−4の
制御回路を示す図である。 第1vti 20A−20C 第2[ 第5図 第4E[ 1)く°ス

Claims (1)

  1. 【特許請求の範囲】 無演算命令を含む順次的な命令ストリームを実行するパ
    イプライン式プロセッサにおける命令処理装置であって
    、 (a)上記パイプライン式プロセッサで処理される各命
    令を受取るための命令レジスタと、 (b)受取られた命令をデコードし該命令が無演算命令
    であるかどうかを判断してその結果に応じて上記受取ら
    れた命令に関連する所定のビットを制御するデコード手
    段と、 (c)多重レベルを形成するように直列的に接続されか
    つ各々が出力を有する多層のスタックレジスタと、 (d)上記多層のスタックレジスタの各出力に接続され
    、選択信号に応答して選択された命令を演算実行装置に
    供給する命令マルチプレクサと、(e)上記命令レジス
    タ及び上記多層のスタックレジスタの各レベルに接続さ
    れ、各命令に関連する上記所定ビットの状態を判断して
    上位レベルの命令が無演算命令でない場合には該上位レ
    ベルの命令を上記演算実行装置に供給し、上位レベルの
    命令が無演算命令である場合には下位レベルの命令を上
    記演算実行装置に供給するよう上記命令マルチプレクサ
    を付勢する制御手段と、 を具備して成る命令処理装置。
JP1117617A 1988-06-30 1989-05-12 命令処理装置 Expired - Lifetime JPH0776920B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US213565 1988-06-30
US07/213,565 US5031096A (en) 1988-06-30 1988-06-30 Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor

Publications (2)

Publication Number Publication Date
JPH0232424A true JPH0232424A (ja) 1990-02-02
JPH0776920B2 JPH0776920B2 (ja) 1995-08-16

Family

ID=22795594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1117617A Expired - Lifetime JPH0776920B2 (ja) 1988-06-30 1989-05-12 命令処理装置

Country Status (3)

Country Link
US (1) US5031096A (ja)
EP (1) EP0348728A3 (ja)
JP (1) JPH0776920B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327688T2 (de) * 1992-08-12 2000-09-07 Advanced Micro Devices Inc Befehlsdecoder
EP0625746A1 (de) * 1993-05-19 1994-11-23 Siemens Nixdorf Informationssysteme Aktiengesellschaft Befehlsaufbereitungseinheit für Verarbeitungsprozessoren in Datenverarbeitungsanlagen
US5519864A (en) * 1993-12-27 1996-05-21 Intel Corporation Method and apparatus for scheduling the dispatch of instructions from a reservation station
JPH07248974A (ja) * 1994-03-10 1995-09-26 Hitachi Ltd 情報処理装置
US5619408A (en) * 1995-02-10 1997-04-08 International Business Machines Corporation Method and system for recoding noneffective instructions within a data processing system
US5689674A (en) * 1995-10-31 1997-11-18 Intel Corporation Method and apparatus for binding instructions to dispatch ports of a reservation station
US5940859A (en) * 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
JP3705022B2 (ja) * 1999-07-09 2005-10-12 株式会社日立製作所 低消費電力マイクロプロセッサおよびマイクロプロセッサシステム
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
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
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
EP1378824A1 (en) 2002-07-02 2004-01-07 STMicroelectronics S.r.l. A method for executing programs on multiple processors and corresponding processor system
WO2004092950A2 (en) * 2003-04-16 2004-10-28 Koninklijke Philips Electronics N.V. Support for conditional operations in time-stationary processors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
JPS6116335A (ja) * 1984-07-02 1986-01-24 Nec Corp 情報処理装置
JPS61180370A (ja) * 1986-01-10 1986-08-13 Hitachi Ltd データ処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
JPS5466048A (en) * 1977-11-07 1979-05-28 Hitachi Ltd Information processor
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
US4608633A (en) * 1983-04-01 1986-08-26 Honeywell Information Systems Inc. Method for decreasing execution time of numeric instructions
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
JPS6116335A (ja) * 1984-07-02 1986-01-24 Nec Corp 情報処理装置
JPS61180370A (ja) * 1986-01-10 1986-08-13 Hitachi Ltd データ処理装置

Also Published As

Publication number Publication date
US5031096A (en) 1991-07-09
JPH0776920B2 (ja) 1995-08-16
EP0348728A3 (en) 1992-08-05
EP0348728A2 (en) 1990-01-03

Similar Documents

Publication Publication Date Title
US5430884A (en) Scalar/vector processor
US5418973A (en) Digital computer system with cache controller coordinating both vector and scalar operations
US5067069A (en) Control of multiple functional units with parallel operation in a microcoded execution unit
US5109495A (en) 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
US5907702A (en) Method and apparatus for decreasing thread switch latency in a multithread processor
US5293500A (en) Parallel processing method and apparatus
US4740893A (en) Method for reducing the time for switching between programs
KR100294475B1 (ko) 고성능알아이에스씨마이크로프로세서구조
US6772327B2 (en) Floating point unit pipeline synchronized with processor pipeline
US5922068A (en) Information processing system and information processing method for executing instructions in parallel
US6286095B1 (en) Computer apparatus having special instructions to force ordered load and store operations
US4755935A (en) Prefetch memory system having next-instruction buffer which stores target tracks of jumps prior to CPU access of instruction
US6279105B1 (en) Pipelined two-cycle branch target address cache
US5898866A (en) Method and apparatus for counting remaining loop instructions and pipelining the next instruction
KR100745904B1 (ko) 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로
JP2779044B2 (ja) バッファ記憶制御方法
EP0024288A2 (en) Computer system having at least two processors with shared storage
EP0150177A1 (en) Data processing system
JPH07160501A (ja) データ処理システム
JP2002268878A (ja) スレッド間優先度可変プロセッサ
JPH0232424A (ja) 命令処理装置
US5544337A (en) Vector processor having registers for control by vector resisters
NZ201809A (en) Microprocessor
JPH0776918B2 (ja) データ処理システム及び方法
US6101596A (en) Information processor for performing processing without register conflicts