JPH04232532A - ディジタル・コンピュータ・システム - Google Patents

ディジタル・コンピュータ・システム

Info

Publication number
JPH04232532A
JPH04232532A JP9196093A JP9609391A JPH04232532A JP H04232532 A JPH04232532 A JP H04232532A JP 9196093 A JP9196093 A JP 9196093A JP 9609391 A JP9609391 A JP 9609391A JP H04232532 A JPH04232532 A JP H04232532A
Authority
JP
Japan
Prior art keywords
instruction
instructions
tag
computer system
digital computer
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
JP9196093A
Other languages
English (en)
Other versions
JPH0778738B2 (ja
Inventor
Richard J Eickemeyer
リチャード・ジェームス・エイケメヤ
Stamatis Vassiliadis
スタマティス・バシリアディス
Bartholomew Blaner
バソロメウ・ブラナ
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 JPH04232532A publication Critical patent/JPH04232532A/ja
Publication of JPH0778738B2 publication Critical patent/JPH0778738B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
およびディジタルデータプロセッサに係り、特に2つ以
上の命令を並列に実行できるディジタルコンピュータお
よびデータプロセッサに関する。
【0002】
【従来の技術】命令シーケンスを受け、これを一度に1
命令ずつ実行するコンピュータは従来から知られている
。これらのコンピュータにより実行される命令は単一値
の対象に対して動作し、従って“スカラ”と呼ばれてい
る。
【0003】このような従来のスカラコンピュータの動
作速度は、回路技術やコンピュータ機構,およびコンピ
ュータアーキテクチュアの進歩により、その限界まで改
善されている。しかしながら、競合マシンが新たに開発
されるにつけ、従来のスカラマシンには新たな加速機構
が要求されている。
【0004】ユニプロセッサの計算速度を加速する最近
の機構は、非常に簡単な命令の制限されたセットを用い
る低減命令セットアーキテクチュアに見られる。他の加
速機構としては、複雑なマルチオペランド命令の最小セ
ットに基づく複雑な命令セットアーキテクチュアが知ら
れている。これらの方法のいずれかを既存スカラコンピ
ュータに適用するには、命令セットおよびマシンアーキ
テクチュアを基本的に変更する必要がある。このような
広範囲な変更は費用,時間がかかり、またマシンの信頼
性と有効性が初期の段階で減少するという問題がある。
【0005】命令セットの低減と共に実現される利点の
幾つかをスカラマシンに適用しようとする試みの中で、
いわゆる“スーパスカラ”コンピュータが開発されてい
る。これらのマシンは、これらが単一スカラ命令のシー
ケンスを含む命令ストリームから一度に1つ以上の命令
を実行するように構成することにより性能が増加する本
質的にスカラマシンである。これらのマシンは、通常は
、スカラ命令のシーケンスの2つ以上の命令が並列に実
行できるか否かを命令実行時に判定している。この判定
は、命令のオペレーションコードに、また命令間に存在
するデータ依存性に基づいてなされる。オペレーション
コードとは、命令に必要な計算ハードウェアを意味する
。一般に、同じハードウェア(ハードウェア依存性)ま
たは同じオペランド(データ依存性)を利用する2つ以
上の命令を同時に実行することは可能ではない。これら
のハードウェア依存性およびデータ依存性は、幾つかの
命令の組合せの並列実行を阻害するものである。これら
の場合には、影響される命令はシリアルに実行される。 これは、当然スーパスカラマシンの性能を低減させるも
のである。
【0006】スーパスカラコンピュータには、これを小
形にすることが望ましいという問題点がある。この場合
、具体的な時間量が、どの命令が並列に実行できるかを
命令実行時に判定する際に消費される。この時間は、他
のマシン動作と重ねることにより容易にマスクすること
はできない。このような問題は、命令セットアーキテク
チュアの複雑さが増すにつれ一層著しくなる。更に、並
列実行の判定は同じ命令が実行される毎に反復されなけ
ればならない。
【0007】既存スカラコンピュータの有用な寿命時間
を延長する際には、加速実行の全ての手段が不可欠であ
る。しかしながら、低減された命令セットアーキテクチ
ュアや複雑な命令セットアーキテクチュア、またはスー
パスカラ法による加速は、既存スカラマシンを考慮する
には潜在的には非常にコスト高であり、決定が多過ぎる
。このようなコンピュータの実行速度を、命令セットの
変更やマシンアーキテクチュアの変更、または命令実行
に必要な時間の拡張を要求することなしに既存命令セッ
トにおける並列または同時的な命令の実行により加速す
ることが好適である。
【0008】
【課題を解決するための手段】米国特許出願第519,
384号明細書においては、スカラブル複合命令セット
マシン(SCISM)アーキテクチュアが提案されてお
り、これによれば、命令レベルの並列性は、命令実行以
前の時点でスカラ命令のシーケンスを解析して並列実行
が可能なシーケンスの既存命令の隣接グループ分けによ
り形成される複合命令を発生することにより達成される
。タグの形態の関連する制御情報が、複合命令がどこで
始まるかを示すと共に、複合命令に取り込まれる既存命
令の数を示す命令ストリームに付加される。なお、用語
“複合化(compounding)”は、命令のシー
ケンスに含まれる命令のグループ分けに係り、このグル
ープ分けはグループ分けされた命令の同時または並列実
行を目的とするものである。少なくとも、複合化は同時
実行のための2つの命令の“対化(pairing)”
により満足される。複合化された命令は、これらがスカ
ラ実行のために与えられた形態から変更されないことが
好適である。以下に説明するように、複合化された命令
は、複合化タグ命令、即ち並列実行のための命令のグル
ープ分けを示す、グループ分けされた命令に付加された
ビットにより伴われる。
【0009】複数の命令を並列に実行する手段を備える
ディジタルコンピュータシステムにおいて、本発明の特
に好適な実施例は、命令の発生および実行前に命令を複
合化するメモリアーキテクチュアに基づいて与えられる
。このようなメモリは、コンピュータのCPU(中央処
理ユニット)に命令を与える階層的メモリ構造の要素を
なしている。通常、このような構造は、頻繁にアクセス
される命令を含む高速キャッシュ記憶装置、これに接続
された低速主メモリまたは一次記憶装置、および低速大
容量補助記憶装置を備えている。
【0010】また通常は、キャッシュおよび主記憶装置
は、実行のために直接参照できる命令を有している。補
助記憶装置の命令に対するアクセスは、主メモリと補助
記憶装置の間に接続された入出力(I/O)アダプタを
通してなされる。
【0011】階層的記憶構成を有するスカラコンピュー
タにおいて、本発明は、二次記憶装置から、実行のため
の命令のシーケンスに与える入出力インタフェースと、
前記命令のシーケンスに応じて、並列に実行されてよい
シーケンスの命令を示す複合タグ情報を発生する命令複
合機構と、前記入出力インタフェース並びに前記命令複
合機構に接続されて複合タグ情報を有する命令シーケン
スを記憶する主記憶装置とを備える組合せ装置を提供す
る。
【0012】主メモリは、知られているように、実行の
ための参照のためにCPUに直ちにアクセスできるデー
タおよび命令を記憶するものである。適切に設計された
階層的記憶システム自身に主メモリを使用する目的は、
スカラコンピュータの全体にわたる性能を改善すること
にある。本発明においては、主メモリに命令が記憶され
ている限りは、主メモリに複合タグ情報を記憶すること
によりこの情報を繰り返し使用することが可能になる。 更に、主メモリ内の命令は、一旦キャッシュに与えられ
ると、一度以上使用するのに十分な時間キャッシュ内に
残る。
【0013】
【実施例】図1は本発明により構成されたディジタルコ
ンピュータシステムまたはディジタルデータ処理システ
ムの要部の1実施例を示す図である。このコンピュータ
システムは2つ以上の命令を並列に実行することができ
る。また、このコンピュータシステムは、I/Oバスを
介して補助または二次記憶装置がコンピュータに接続さ
れる階層構成の記憶システムを備えている。コンピュー
タは、メモリバスに接続されるアダプタを通してI/O
バスとインタフェースする。主メモリおよび高速キャッ
シュは、メモリバスに接続される。
【0014】上記階層性によりコンピュータシステムの
計算要素は、主メモリおよびキャッシュの内容に直接ア
クセスまたは参照することが通常可能になり、一方アダ
プタは補助記憶装置へのアクセスを与える。現在のコン
ピュータ演算をサポートするためにアクセスまたは参照
されなければならない命令とデータは、メモリ内に保持
される。これらの命令およびデータは、不要になると、
アダプタを介して補助メモリに戻され、一方新たな命令
とデータが主メモリに記憶される。キャッシュは、CP
Uによる高速アクセスをサポートし、また現在使用され
ておりまたはCPUにより次に使用される可能性の大き
な命令とデータを記憶するために使用される。このよう
な階層記憶構造はDeitel’s  OPERATI
NG  SYSTEMS,1990年,第2版,第7章
に詳細に説明されている。
【0015】ここで図1を参照すると、階層的に構成さ
れたメモリ構造を有するディジタルコンピュータシステ
ムの要部の1実施例が本発明に従って説明されている。 このコンピュータシステムは2つ以上の命令を並列に処
理することができる。またこのコンピュータシステムは
、処理されるべきデータと命令を記憶する第1記憶機構
を備えている。この記憶機構は、主メモリ10として与
えられる。主メモリ10は、アドレスを有するメモリバ
ス9,コマンドバス9aおよびテキストバス9bに接続
されている。主メモリ10は、命令とデータをメモリバ
スを経てI/Oアダプタ8と交換する。I/Oアダプタ
8は、メモリバス9およびI/Oバス7に接続される。 なお、1つ以上の補助記憶装置(図示せず)が、I/O
バス7に結合されるものとする。アダプタ8は、プログ
ラム情報を補助記憶装置に記憶し、またこのプログラム
情報を同じ記憶装置から得ることにより、I/Oバス7
を経てデータを転送する。更にこのアダプタ8は、命令
とデータを、バス9を経て主メモリに与え、またそれら
を主メモリから受けることにより、メモリバス9上のプ
ログラムデータを主メモリ10と交換する。更にこのア
ダプタ8は、異なる速度とフォーマットを有するバス7
と9の間で命令とデータをバッファする。最後に、この
アダプタ8は、エラーをチェック機能を有している。参
照番号8により示されるI/Oアダプタは、例えば、I
BMコーポレーションから得られるモデル3090コン
ピュータシステムのチャネル化されたI/Oサブシステ
ムに見られる。
【0016】主メモリ10は比較的大容量で中速度の記
憶機構であり、これはメモリバス9を介して低容量高速
キャッシュに接続されている。このキャッシュは、複合
命令キャッシュ12として与えられる。
【0017】図1のコンピュータシステムは更に、アダ
プタ8から命令を受けると共に、これらの命令と、これ
らの命令のいずれが並列に処理可能かを示すタグフィー
ルドの形態の複合タグ情報に関係づける命令複合化機構
11を備えている。この命令複合化機構は、命令複合化
ユニット11により示される。この複合化ユニット11
は入力命令を解析してどの命令が並列に処理され得るか
を判定する。更に、命令複合化ユニット11は、解析さ
れた命令に対して、どの命令が互いに並列処理可能か、
不可能かを示すタグフィールドの形態の複合化タグ情報
を発生する。
【0018】図1において、命令は、アダプタ8,命令
複合化ユニット11,および主メモリ10を介して補助
記憶装置から計算システムに与えられる。主メモリ10
は解析された命令およびそれらの関連するタグフィール
ドを受け、記憶する。主メモリ10は、次に解析された
命令およびそれらの関連するタグフィールドを複合命令
キャッシュ12に与える。キャッシュ12は主メモリ1
0より小さな容量と大きな速度を持ち、主メモリ10へ
のアクセスの頻度を減らすことによりコンピュータシス
テムの性能率を改善するために一般に使用される種類の
ものである。
【0019】図1のコンピュータシステムは、更に複数
の機能命令処理ユニットを備えている。これらの機能命
令処理ユニットは、機能ユニット13,14,15など
により表わされる。これらの機能ユニット13〜15は
同時的に互いに動作し、また各々はそれ自身で1種以上
のマシンレベル命令を処理することができる。使用され
得る機能ユニットとしては、例えば、算術・論理ユニッ
ト(ALU)およびアドレス発生形ALU,米国特許出
願第504,910号明細書に示されたタイプのデータ
依存性解消ALU,分岐命令処理ユニット,データシフ
トユニット,浮動小数点処理ユニットなどがある。ある
コンピュータシステムは、上記のような機能ユニットの
あるものの2つ以上を備える。例えば、あるコンピュー
タシステムは、2つ以上の汎用ALUを備えている。更
に、あるコンピュータシステムは、異なるタイプの機能
ユニットの各々および全てを備えることができる。機能
ユニットの特定の構成は、考慮される特定のコンピュー
タシステムの性質に依存する。
【0020】図1のコンピュータシステムは、複合命令
キャッシュ12に結合されて、このキャッシュに記憶さ
れた隣接命令を、命令タグフィールドが上記命令が並列
に処理されてよいことを示すとき、機能命令処理ユニッ
ト13〜15のそれぞれに供給する命令取出し送出機構
を備えている。この機構は、命令取出送出ユニット16
により表わされる。この命令取出し・送出ユニット16
は、キャッシュ12から命令を取り出し、それらのタグ
フィールドおよびオペレーションコードフィールドを検
討し、このような検討に基づいて命令を機能ユニット1
3〜15の適切なものに送出する。所望の命令が複合命
令キャッシュ12中にあるときは、適切なアドレスがキ
ャッシュ12に送られ、これから所望の命令を取り出す
。これは“キャッシュヒット”と呼ばれることがある。 要求された命令がキャッシュ12中にないときは、この
命令は主メモリ10から取り出され、キャッシュ12に
与えられなければならない。これは“キャッシュミス”
と呼ばれることがある。このようなミスが生じたときは
、要求された命令のアドレスが主メモリ10に供給され
なければならない。これに応じて、主メモリ10は、要
求された命令を含む命令ラインについて、これらの命令
のタグフィールドと共に、転送または読出しを開始する
【0021】キャッシュミスにより主メモリ10に対し
て参照がなされ、要求された命令がメモリ10に含まれ
るか否かを判定する。ここで、命令は一般に“ページ”
と呼ばれるブロックをなして主メモリに記憶され、また
計算システムのメモリ・管理ファシリティ(図示せず)
は、要求された命令から、これを含むページが主メモリ
にあるか否かを判定することができる。ページが主メモ
リ中にあるときは、命令を含むラインは主メモリ10か
ら読み出され、キャッシュ12に転送される。しかし、
要求された命令を含むページが主メモリ10にないとき
は、“ページフォールト”が発生し、ミスページが補助
記憶装置から“取り出され”、主メモリ10に記憶され
ることを要求する。ページが取り出されると、ミスペー
ジの識別情報がアダプタ8に送られ、アダプタはその信
号を検索し、次にメモリバス9を経て主メモリ10に記
憶させる。
【0022】本発明においては、主メモリ10の記憶装
置から取り出されたページは、命令複合化ユニット11
の入力に転送され、このユニットはこれらの入力命令を
解析し、各々の命令毎に適切なタグフィールドを発生す
る。その後、これらのタグと命令は主メモリ10に送ら
れ、そこに記憶され、必要に応じて複合命令キャッシュ
12への引き続く記憶に供される。
【0023】図1において命令複合化ユニット11は、
アダプタ8と主メモリ10の間に接続されるものとして
示されたが、このユニットはメモリバス9上の個別の要
素であってもよく、または主メモリ10に入力で接続さ
れてもよいものとする。
【0024】主メモリ10への複合命令の記憶は一連の
方法で実施することができ、それらのいくつかを図2(
A)〜(D)に示す。これらの図の例においては、8バ
イト幅のテキストバス9bと、タグ情報用の臨時のライ
ンが仮定される。一般に、主メモリ10と複合命令キャ
ッシュ12の間の基本メモリ転送には64バイトキャッ
シュラインが用いられ、命令テキストの2バイト毎に1
タグビットが与えられるものとする。図2(A)〜(D
)の例の各々には1キャッシュラインが示してある。一
般に、タグビット数は複合化されるべき命令の最大数お
よび命令複合化ユニット11に対して得られる情報によ
り決定される。これらの点は米国特許出願第519,3
82号明細書および第504,910号明細書に示され
ている。
【0025】制御の観点からのタグ記憶を実現する最も
簡単な例が図2(A)に示されている。複合化が2つの
命令に限定されているとすると、命令テキストの2バイ
ト毎に最小1ビットタグが要求される。従って、図2(
A)のメモリに記憶された命令ラインに対して毎64ビ
ットは(即ち毎8バイト)4ビットの複合化タグ情報を
要求する。図2(A)に示したように、この情報の記憶
には64ビットから68ビットまでのワードサイズの拡
張が含まれる。他のオプションとしてのタグビットがあ
れば、拡張ワードのサイズは更に増加される。
【0026】図2(B)には、得られるメモリ技術に対
して更にコンパティブルな第2の方法が示してある。図
2(B)において、個別のテキストとタグメモリが命令
および関係する複合化タグ情報の記憶により与えられる
。図2(B)においては、タグメモリはテキストメモリ
に対して並列に動作する。図2(B)のメモリ構造にお
いては、メモリバス8上にタグバスを形成してテキスト
およびタグメモリの並列動作を与える臨時のタグライン
のセットに対する要件が暗黙に与えられている。これは
図2(A)の拡張ワード法に対して幾つかの利点を有し
ている。先ず、タグメモリは主メモリ中のワードの一部
のみをカバーすることができる。演算システムはデータ
ページに対してのみ(命令ページに対向するように)メ
モリのある部分を使用し、タグはこれらの部分にわたっ
て必ずしも必要ではない。データページと命令ページと
の区別は、ハードウェアで判定することができ、あるい
はソフトウェアおよびあるページがデータのみを含むこ
とを示すタグメモリに対するコマンドにより行うことが
でき、従ってメモリページアドレスがこれらのページに
対するタグメモリアドレスにマップされることを要求し
ない。第2の利点は、タグメモリが予定通り除去されて
より低コストのシステムを生成できることにある。これ
はコンピュータのファミリで可能な性能範囲を広げるも
のである。2方向以上の複合化に対して要求されるよう
に、より多くのタグビットが必要とされるときは、新し
いタグメモリが、主メモリ設計の変化を要求することな
しに図2(B)のタグメモリに置き代えられる。更に、
各々のメモリはそれ自身のエラー訂正を与えることがで
きる。
【0027】図2(A)〜(D)に関して、複合化タグ
は、複合化ユニットにより生成されると、複合化タグは
、命令ストリーム中に織り込まれるか、そのセクション
に付加されるか、それと並列に維持されるかについてメ
モリ中に命令ストリームを伴うことが主張される。
【0028】タグの記憶を実現する他の方法が図2(C
)および図2(D)に示される。図2(C)において、
主メモリの第1のセクションはタグテーブルおよび命令
テキストページの第2の記憶装置を含んでいる。この例
においては、演算システムのサポートはメモリのテーブ
ル部分およびタグページを有する対メモリページを留保
することが要求される。図2(D)において、各々のペ
ージの一部はタグのために留保される。これはコンパイ
ラにおいてページ構成に対する能力を要求する。例えば
、64バイトのキャッシュラインが与えられると、コン
パイラは命令のために60バイトを使用し、タグのため
に4バイトを使用することになる。図2(D)において
、タグは、CPUにより要求されると命令キャッシュに
おいて命令バイトと対になされる。
【0029】図1のコンピュータシステムの意味は、命
令複合化ユニット11が、バスアダプタ8の一部を形成
することができることにある。このようにして、任意の
ページがI/Oシステムの形態にもたらされると、この
ページはユニット11において暗黙の複合化プロセスに
課され、またメモリバス9上を主メモリ10に移動され
る。この点から、図2(A)によるページ構造は、テキ
ストバス9bが68ビット幅であり、主メモリが図2(
A)に示したもののようなページを記憶するために構成
され、制御されることを意味すると仮定される。勿論、
複合命令キャッシュ12は図2(A)に示したように拡
張ワードを含むラインを受けるように構成され、制御さ
れる。
【0030】ページフォールトに際しては、ページはア
ダプタ8内のページバッファにロードされ、また以下に
説明するように命令複合化ユニット11に与えられる。 図3において、2つのページバッファ18a,18bは
ページのシーケンスを命令複合化ユニット11に送出し
、このユニットは複合化タグ情報をページ命令に付加す
ることにより複合化動作を行う。複合化ユニットにより
処理されるページは、複合ページバッファ19a,19
bを通して主メモリ10に供給される。図4が示すよう
に、複合化ユニットは時間を要求されるものに付加して
補助記憶装置からテキストセグメントを取り出し、これ
を主メモリ10に入力する。しかしながら、付加される
時間は要求される全時間に比べて小さく、またCPUに
対して非同期である。  図4において、各々のセグメ
ントiはディスクドライブなどの補助記憶装置からペー
ジバッファ18aまたは18bの1つに転送される。時
間セグメントbi の各々はページバッファから主メモ
リ10へ、テキストセグメントを転送するのに必要な時
間を示す。このようにして、テキストセグメントiは、
どのテキストセグメントi+1がバッファの他方に転送
されるかに従って、時間ai 内でページバッファ18
aまたは18bの1つに転送される。複合化がないと、
セグメントiはページバッファから時間bi 内で転送
され、そこでセグメントiは一般に主メモリに記憶され
る。図4に示すように、この時間はバッファ18aまた
は18bの一方にページを取り出すのに必要な時間より
かなり短い。本発明を実施する場合、ページバッファの
1つのテキストセグメントに対して複合化ユニット11
の動作が行われるのに必要な時間プラス複合バッファ1
9aまたは19bで費やされる時間は、複合化時間ci
 により表わされる。ここで、図4において、時間bi
 はページバッファから複合化ユニット11へテキスト
セグメントiを転送するのに必要なものである。次に、
複合化時間ci が与えられ、一方テキストセグメント
iが複合化ユニット11のプロセスに課される。図4に
示すように、時間bi とci の和は時間ai 以下
である。スカラマシンは命令実行時間において、命令が
並列に実行され得るか否かを判定しなければならないこ
とが想定される。この判定は命令の実行においてディス
クリートなステップであり、従ってスーパスカラマシン
における実行時間に実質的に付加するものである。一方
、図4に示すように、図1のコンピュータシステムにお
ける複合化は、コンピュータ動作を行うのに要求される
時間を有意には延長しないものである。従って,命令複
合化ユニット11は、命令実行ユニットに配置された複
合化器より一層高い性能を提供する。
【0031】図3および図4は、主メモリにおける複合
化の2つの主要な利点を示す図である。先ず、複合化は
非同期ページフォールトプロセスを完了する時間を延長
することなしに、そのプロセスの一部にすることができ
る。第2に、ページなどの命令テキストの大きなブロッ
クの複合化は、より最適な複合化をもたらすことができ
る複合化に対するより大きな検討の範囲を提供する。こ
の結果、図1に示したもののようなイン・メモリ命令複
合化ユニットは、CPUが複合化された命令を常に実行
し、また複合化が命令テキストのより小さなセクション
に対して同期的に行われるときより一層最適化できるこ
とから、性能の利点を与えることになる。
【0032】ここで、図5(A)を参照して命令複合化
ユニットの動作について先ず説明する。図5(A)は、
複合化またはタグを付された命令が図1の命令複合化ユ
ニット11の出力に現われたときの、これらの命令の流
れの要部を示す図である。図示のように、各々の命令は
、命令複合化ユニット11によりそれに付加されたタグ
フィールドを有する。タグ付き命令は、図5(A)に示
したように、命令を含むページに対してページブロック
をなして主メモリに記憶される。これらの主メモリ10
に記憶されたタグ付き命令は、必要に応じて、“ミス”
が生じたときにキャッシュ12に転送される。その後、
キャッシュ12のタグ付き命令は命令取出し送出ユニッ
ト16により取り出される。タグ付き命令が取出し送出
ユニット16により受信されると、それらのタグ付きフ
ィールドが検討され、それらが並列に処理され得るか否
かが判定され、またそれらのオペレーションコードフィ
ールドが検討され、使用する機能ユニットのどれがそれ
らの処理に最も適しているかが判定される。タグフィー
ルドが、2つ以上の命令が並列処理に適していることを
示すときは、それらの命令はそれらのオペレーションコ
ードフィールドの符号化に従って機能ユニットの適切な
ものに送出される。次に、このような命令は、それらの
それぞれの機能ユニットにより互いに同時に処理される
【0033】並列処理に適さない命令が生じたときは、
これはそのオペレーションコードにより決定されるよう
に適切な機能ユニットに送られ、その際選択された機能
ユニットにより単独でそれ自身により処理される。
【0034】複数の命令が常に並列に処理されている最
も完全な場合には、コンピュータシステムの命令実行速
度は、Nを並列に処理されているグループの命令の数と
すると、命令が一度に1つ実行される場合のN倍になる
【0035】図5(A)のタグ付き命令ストリームは、
もしどこで命令が始まるかを示す既知の基準点が存在す
るときは、命令複合化ユニットによる処理が容易になさ
れる。このような基準点は、命令境界が生じる場所につ
いての正確な知識を与える。多くのコンピュータシステ
ムにおいては、命令境界はコンパイル時間においてコン
パイラによってのみ、また命令が取り出されるときCP
Uによってのみ特に知られる。境界基準点は、特殊な境
界基準方式が採用されないときはコンパイル時間と命令
取出しの間で未知である。このような方式は、図5(B
)に命令境界ビットBにより示してある。図5(B)に
示したように、境界ビットはコンパイル時にコンパイラ
により命令ストリーム内に配置され、複合化の直前に命
令アラインメントの基準を与える。一般に、“スカラブ
ル複合命令セットマシンアーキテクチュア”および“命
令レベル並列プロセッサ用汎用複合化装置”と題する前
記特許出願では、命令境界が不定のテキスト流との複合
化についての検討がなされている。テキスト流が命令の
みを含み、全ての命令が同じ長さの場合のように命令境
界がテキスト流から決定し得る場合は、境界の定義は不
要なことは勿論である。
【0036】図6の命令複合化ユニットの説明図6は本
発明による命令複合化ユニットの実施例の内部構成を詳
細に示す図である。この命令複合化ユニット20は、図
1の命令複合化ユニット11として使用するのに適して
いる。図6の命令複合化ユニット20は、ある時点で最
大2つの命令が並列に処理される場合に対して設計され
ている。しかし、これは本発明を対状複合化にのみ限定
することを意味するものではない。この例においては、
1ビットタグフィールドが使用される。タグビット値“
1”は命令が“第1命令”であることを意味している。 タグビット値“0”は、命令が“第2”命令であり、先
行する第1命令と並列に実行されることを意味する。タ
グビット値1を持つ命令は、次の命令に対するタグビッ
ト値に依存して、それ自身によるかまたは同時にそして
このような次の命令と並列に、のいずれかにより実行さ
れる。
【0037】タグビット値1を持つ命令とタグビット値
0を持つ命令との各々の対化により並列実行のための複
合命令が形成され、即ちこのような対をなす命令が互い
に並列に処理される。2つの続く命令に対するタグビッ
トがそれぞれ1の値を有するときは、これらの命令の第
1は非並列的にそれ自身により実行される。最悪の場合
には、シーケンス中の命令の全てはタグビット値1を有
する。この最悪の場合には、命令の全ては非並列的に一
度に1つずつ実行されることになる。
【0038】命令複合化ユニット20に対する入力にお
いて、命令アラインメントユニットは複合化されるべき
命令ストリームをI/Oアダプタから受信する。この命
令ストリームは図5(B)に示すように境界ビットBを
有する。この場合、命令アラインメントは、単に境界ビ
ットを検出し、命令オペレーションコードを復号する問
題になる。既知のように、IBMシステム/370命令
セットにおいては、オペレーションコードはバイトまた
はハーフワードでの命令長を与えるビットを有している
。従って、境界ビットBが命令に対して識別されている
と、次の命令は境界ビットからバイトまたはハーフワー
ドの数を計数することにより一意に識別することができ
る。命令アラインメントは本発明の特徴ではなく、命令
境界は境界ビットの使用を含む既知の方法により識別さ
れる。
【0039】図6の命令複合化ユニット20は、アダプ
タのページバッファ18a,18bから複数の逐次命令
を受ける複数命令命令レジスタ21を備えている。命令
複合化ユニット20は更に複数の規則ベース命令解析機
能を備えている。各々のこのような命令解析機構は、命
令レジスタ21の異なる対の並列命令を解析し、その対
の2つの命令が並列処理可能か否かを示す複合可能性信
号を発生する。図6においては複数の複合解析ユニット
22〜25が示してある。これらの複合解析ユニット2
2〜25の各々は、丁度言及した命令解析機構の2つを
備えている。このようにして、これらの解析ユニット2
2〜25の各々は複合可能性信号の2つを発生する。例
えば,第1の複合解析ユニット22は、命令0および1
が並列に処理され得るか否かを示す第1の複合可能性信
号を発生する。複合解析ユニット20は更に、命令1お
よび2が並列に処理され得るか否かを示す第2の複合可
能性信号M12を発生する。
【0040】同様にして、第2複合解析ユニット23は
、命令2および3が並列に処理され得るか否かを示す第
1複合可能性信号M23と、命令3および4が並列に処
理され得るか否かを示す第2複合可能性信号M34を発
生する。第3複合解析器24は、命令4および5が並列
に処理され得るか否かを示す第1複合可能性信号M45
と、命令5および6が並列に処理され得るか否かを示す
第2複合可能性信号M56を発生する。第4複合解析器
25は、命令6および7が並列に処理され得るか否かを
示す第1複合可能性信号M67と、命令7および8が並
列に処理され得るか否かを示す第2複合可能性信号M7
8を発生する。
【0041】命令複合化ユニット20は更に、解析ユニ
ット22〜25の出力に生じる複合可能性信号に応じて
、命令レジスタ21内の各々の命令に対して個別タグフ
ィールドを発生するタグ発生機構26を備えている。 これらのタグフィールドT0,T1,T2・・・は、命
令自身の場合と同様にタグ付き命令レジスタ27に供給
され、後者の命令は入力命令レジスタ21から得られる
。このようにして、複合化ユニット出力レジスタ27に
は、命令0に対してタグフィールドT0、命令1に対し
てタグフィールドT1などが与えられる。
【0042】本実施例においては、各々のタグフィール
ドT0,T1,T2・・・は単一2進ビットから構成さ
れる。タグビット値“1(one)”は、それが付加さ
れる直ぐ次の命令が“第1”命令であることを示す。タ
グビット値“0(zero)”は、直ぐ次の命令が“第
2”命令であることを示す。0のタグビット値を有する
命令が続く1のタグビット値を有する命令は、これらの
2つの命令が互いに並列に実行されることを示す。複合
化ユニット出力レジスタ27のタグ付き命令は、図3の
複合バッファ19aまたは19bの一方または他方を介
して図1の主メモリ10の入力に供給される。複合命令
は、主メモリ10に記憶される。
【0043】ここで図7を参照すると、図6の複合解析
ユニット22に使用する内部構成が詳細に示してある。 その他の複合解析ユニット23〜25も、類似の構成を
有している。図7に示したように、複合解析器22は命
令0のオペレーションコードおよび命令1のオペレーシ
ョンコードを検討し、これらの2つのオペレーションコ
ードが並列実行に対してコンパティブルであるかを決定
する命令コンパティビリティ論理30を備える。この論
理30は、オペレーションコードのどの対が並列実行に
対してコンパティブルかを選択する所定の規則に従って
構成される。即ち、論理30は、当該コンパイラシステ
ムに使用される特定のハードウェア構成において、どの
タイプの命令が並列実行に対してコンパティブルである
かを定める規則を実現する論理回路を備えている。命令
0および2に対するオペレーションコードがコンパティ
ブルのときは、論理30はその出力に2進1レベル信号
を発生する。それらがコンパティブルでないときは、論
理30はその出力ライン上に2進0値を発生する。
【0044】複合解析器22は更に、命令1および2の
オペレーションコードを検討し、それらが並列実行に対
してコンパティブルであるか否かを決定する第2命令コ
ンパティビリティ論理31を備える。論理31は論理3
0に使用するものと同じ所定に規則に従って論理30と
同様に構成されて、オペレーションコードのどの対が命
令1および2の場合に対する並列実行のためにコンパテ
ィブルであるかを選択する。このようにして、論理31
は、どのタイプの命令が並列実行に対してコンパティブ
ルであるかを定め、論理30で使用したものと同じの規
則を実現する論理回路を備えている。命令1および2に
対するオペレーションコードがコンパティブルのときは
、論理31は2進1レベル信号を発生する。さもなけれ
ば、それは2進0レベル出力を発生する。
【0045】複合解析器22は更に、命令0および1の
R1およびR2フィールドにより指示される汎用レジス
タの使用時に生じる対立(conflict)を検出す
る第1レジスタ依存性論理32を備える。これらの汎用
レジスタを以下で詳細に説明する。特に、依存性論理3
2は、第2命令(命令1)が先行命令(命令0)の実行
により得られる結果を使用することを必要とするデータ
依存性状態の発生を検出するように構成される。この場
合、第2命令は依存性解消ハードウェアにより実行され
、従って第1命令と並列に実行され得るか、第2命令の
実行は先行命令の実行完了を待たなければならず、従っ
て先行命令と並列に実行され得ないかのいずれかである
。(この種の幾つかのデータ依存性を解消する方法は、
以下で説明する。)命令0および1の並列実行を防止す
るレジスタ依存性が存在しないときは、論理32の出力
ラインは2進1の値が与えられる。依存性があるときは
、それは2進0の値が与えられる。
【0046】複合解析器22は更に、命令1および2の
R1およびR2フィールドにより指示される汎用レジス
タの使用時の対立を検出する第2レジスタ依存性論理3
3を備える。この論理33は既に示した論理32と同じ
構成のものであり、レジスタ依存性が存在しないかこの
レジスタ依存性がデータ依存性解消ハードウェアにより
実行可能なときは2進1レベル出力を、そもなければ2
進0レベル出力を発生する。
【0047】命令コンパティビリティ論理30およびレ
ジスタ依存性論理32からの出力ラインは、AND回路
34の2つの入力に接続される。AND回路34の出力
ラインは、問題の2つのオペレーションコードがコンパ
ティブルであり、レジスタ依存性が存在しないときは2
進1値を有する。AND回路34の出力ライン上のこの
2進1値は、問題の2つの命令がコンパティブル、即ち
並列に実行可能であることを示す。一方、AND回路3
4の出力ラインが0の2進値を持つときは、2つの命令
は複合可能ではない。このようにして、AND回路34
の出力ライン上には、命令0および1が並列に処理され
得るか否かを示す第1複合可能性信号M01が発生され
る。
【0048】第2コンパティビリティ論理31および第
2依存性論理33からの出力ラインは、AND回路35
の2つの入力に接続される。AND回路35はその出力
ライン上に第2複合可能性信号M12を発生し、この信
号は、問題の2つのオペレーションコード(命令1およ
び2に対応するオペレーションコード)がコンパティブ
ルであり、また命令1および2に対するレジスタ依存性
が存在しないかまたはデータ依存性解消ハードウェアに
より実行できるレジスタ依存性が存在しないときは、2
進1の値を有するものである。さもなければ、AND回
路35の出力ラインは2進0の値を有する。AND回路
35からの出力ラインはタグ発生器26の第2入力に連
なっている。
【0049】図6に示したその他の複合解析器23〜2
5は、第1複合解析器に対して図7に示したものと同じ
内部構成をなしている。
【0050】ここで、図8を参照すると、複合解析器2
2および初めの3つのタグ、TAG0,TAG1,およ
びTAG2を生成するために使用されるタグ発生器26
の要部を実現するために使用できる論理回路の一例を示
す図である。図5(A)および図5(B)の例に対して
、カテゴリAおよびカテゴリBとして指示される命令の
2つのカテゴリが存在すると仮定される。これらの命令
のカテゴリを複合化する規則は次のように仮定される。 (1)Aは常にAと複合化することができる。 (2)AはBと決して複合化することはできない。 (3)BはBと決して複合化することはできない。 (4)Bは常にBと複合化することができる。 (5)規則(4)は規則(1)に優先する。 これらの規則は命令の発生順序に敏感である。更に、こ
れらの規則は、これらが観察されたとき、何らかのイン
タロックが存在する場合に、このようなインタロックは
データ依存性解消ハードウェアにより常に実行可能であ
ることをこれらの規則が暗黙に示すためにレジスタ依存
性に対する問題は存在しないように、与えられるものと
する。換言すれば、図8の例に対して、図7のレジスタ
依存性論理32および33は必要ではないと仮定される
。このような場合、AND回路34および35も必要と
されず、論理30の出力はM01信号になり、論理31
の出力はM12信号になる。
【0051】これらの仮定に対して、図8は、命令コン
パティビリティ論理30および図7の命令コンパティビ
リティ論理31に対して使用される内部論理回路を示す
図である。図8を参照すると、命令コンパティビリティ
論理30は、デコーダ40,41,AND回路42,4
3,およびOR回路44を備えている。第2命令コンパ
ティビリティ論理31は、デコーダ41,45,AND
回路46,47,およびOR回路48を備えている。中
間のデコーダ41は、両論理30,31により共有され
る。
【0052】第1論理30は、命令0および1のオペレ
ーションコードOP0およびOP1を検討して、並列実
行に対するそれらのコンパティビリティを決定する。こ
れは上記の規則(1)〜(4)に従ってなされる。デコ
ーダ40は、第1命令のオペレーションコードを検討し
、カテゴリAのオペレーションコードのときはデコーダ
40のA出力ラインは1レベルに設定される。OP0が
カテゴリBのオペレーションコードのときは、デコーダ
40のB出力ラインは1レベルに設定される。OP0が
カテゴリAまたはカテゴリBのいずれにも属さないとき
は、デコーダ40の両出力は2進0レベルにある。第2
デコーダ41は、第2オペレーションコードOP1に対
して同様の復号処理を行う。
【0053】AND回路42は上記規則(1)を実現す
るOP0がカテゴリAのオペレーションコードであり、
OP1もカテゴリAのオペレーションコードであるとき
は、AND回路42は1レベル出力を発生する。さもな
ければ、AND回路42の出力は2進0レベルである。 AND回路43は上記規則(4)を実現する。第1オペ
レーションコードがカテゴリBのオペレーションコード
であり、第2オペレーションコードがカテゴリAのオペ
レーションコードのときは、AND回路43は1レベル
出力を発生する。さもなければ、それは0レベル出力を
発生する。AND回路42またはAND回路43のいず
れかが1レベル出力を発生すると、これはOR回路44
の出力を1レベルに駆動し、その場合複合可能性信号M
01は1の値を有することになる。この1の値は、第1
および第2命令(命令0および1)が並列実行に対して
コンパティブルであることを示すものである。
【0054】デコーダ40および41によりオペレーシ
ョンコードカテゴリの他の何らかの組合せが検出される
と、AND回路42および43の出力は0レベルのまま
であり、また複合可能性信号M01は0の非複合可能性
表示値を有することになる。このようにして、上記規則
(2)および(3)により示される組合せの発生はAN
D回路42,43を満足せず、M01は0レベルのまま
になる。カテゴリAおよびBの他にオペレーションコー
ドの他のカテゴリが存在すると、命令ストリーム中での
それらの発生はデコーダ40および42の出力を活性化
しない。従って、それらは同様に0値のM01複合可能
性信号をもたらす。
【0055】第2命令コンパティビリティ論理31は、
第2および第3命令(命令1および2)に対して同様の
オペレーションコード解析を行う。第2オペレーション
コードOP1がカテゴリAのオペレーションコードであ
り、第3オペレーションコードOP2がカテゴリAのオ
ペレーションコードのときは、規則(1)によりAND
回路46は1レベルの出力を発生し、また第2複合可能
性信号M12が複合可能性表示2進1レベルに駆動され
る。一方、OP1がカテゴリBのオペレーションコード
であり、OP2がカテゴリAのオペレーションコードの
ときは、規則(4)によりAND回路47が活性化され
て第2複合可能性信号M12に対して2進1レベルを発
生する。規則(1)および(4)で定められたもの以外
の任意のオペレーションコードの組合せに対して、M1
2信号は0の値を有する。
【0056】M01およびM12複合可能性信号は、タ
グ発生器26に供給される。図8は、タグ発生器26で
用いられてM01およびM12複合可能性信号に応答し
てTAG0,1,および2に対して所望のタグビット値
を発生することができる論理回路を示している。タグビ
ット値1は、関連する命令が並列実行に対して“第1”
命令であることを示している。タグビット値0は、関係
する命令が並列実行に対して“第2”命令であることを
示している。対をなす唯一の命令は、0のタグビット値
を有する。1のタグビット値を持つ他の命令を伴う1の
タグビット値を持つ命令は、それ自身により単独で、次
の命令と並列ではなく実行される。
【0057】図9の第1行の場合、3つの全てのタグビ
ットは1の値を有する。これは、命令0および1の各々
が単独で非並列的に実行されることを意味する。図9の
第2行の場合、TAG0は要求された1の値を持ち、T
AG1は要求された0の値を持つことから、命令0およ
び1は並列に実行される。図9の第3行の場合、命令0
は単独で実行されるが、命令1および2は互いに並列に
実行される。第4行に対しては、命令0および1は互い
に並列に実行される。
【0058】TAG2が1の2進値を持つ場合、その関
係する命令2のステータスはTAG3に対する2進値に
依存する。TAG3が0の2進値を持つときは、命令2
および3が並列に実行される。一方、TAG3が1の2
進値を持つときは、命令2が単独で非並列的に実行され
る。タグ発生器26に対して実現される論理は、0の2
進値を持つ2つの連続するタグビットの発生を許容しな
いことがわかる。
【0059】図9の検討から、図8に示したタグ発生器
26の要部により実現される必要のある論理が明らかに
なる。図9に示されるように、TAG0は常に1の2進
値を有する。これは、1の一定2進値をTAG0出力ラ
インを構成するタグ発生器出力ライン50に与えること
により実現される。図9の検討から、TAG1に対する
ビット値は常にM01複合可能性信号のビット値の逆で
あることが明らかになる。この結果は、TAG1に対す
る出力ライン51を、入力がM01信号ラインに接続さ
れるNOT回路52の出力に接続することにより実現さ
れる。
【0060】TAG2の出力ライン53上の2進レベル
は、OR回路54およびNOT回路53により決定され
る。OR回路54の1入力は、M01ラインに接続され
る。M01が1の値を持つときは、TAG2は値1を持
つ。これは、図9の第2および第4行のTAG2値に注
目したものである。OR回路54の他の入力は、NOT
回路44によりM12信号ラインに接続される。M12
が0の2進値を持つときは、この値はNOT55により
反転されてOR54の第2入力に2進1の値を供給する
。これにより、TAG2の出力ライン53は2進1の値
を持つようになる。これは、図9の行1に対するTAG
2値を考慮したものである。行3の場合に対しては、T
AG2は0の値を持たなくてはならない。これは、この
場合、M01が0の値を持ち、M12がNOT回路55
により反転されてOR回路54の第2入力において0を
発生する1の値を有することから発生する。
【0061】図9の論理においては、M01およびM1
2の各々が1の2進値を持つ行4の場合に対する優先規
則が暗黙に仮定される。この行4の場合は、BAAの命
令カテゴリシーケンスにより発生可能である。これは、
図9に示したように101のタグシーケンスにより、ま
たは110のタグシーケンスにより実現することができ
る。本実施例においては、規則5が次に続き、図9に示
した101シーケンスが選択される。換言すれば、BA
対化がAA対化に対して優先されることになる。
【0062】M01およびM12に対する1,1パター
ンも、AAAのオペレーションコードシーケンスにより
生成可能である。この場合、図9の101タグシーケン
スが再び選択される。これは、101タグシーケンスが
TAG2に対して1の値を与え、従って潜在的に命令2
が、これが命令3とコンパティブルのときは命令3と複
合されることを可能にすることから、より良好である。
【0063】図14の実施例の説明 図10を参照すると、本発明の複合タグを用いてマシン
レベルコンピュータ命令の並列処理を与えるためにコン
ピュータシステムが如何に構成できるかの方法を詳細に
示す例が与えられている。図10で使用される命令複合
化ユニット20は、図6に示したタイプであると仮定さ
れ、従ってそれは、各々の命令に1ビットタグフィール
ドを付加する。これらのタグフィールドは、命令のどの
対が並列に処理され得るかを識別するために使用される
。これらのタグ付き命令を含むページは主メモリ10に
供給され、それに記憶される。タグ付き命令が必要とさ
れるときは、それらは読み出され、またはキャッシュ1
2に転送される。取出し送出制御ユニット60は、必要
に応じてキャッシュ12からタグ付き命令を取り出し、
複数の機能命令処理ユニット61,62,63および6
4の適切な1つまたはそれ以上によるそれらの処理に対
して配列する。取出し送出ユニット60は、取り出され
た命令のタグフィールドおよびオペレーションコードフ
ィールドを検討する。タグフィールドが、2つの連続す
る命令が並列に処理されることを示すときは、取出し送
出ユニット60は、それらをそれらのオペレーションコ
ードにより決定されるように機能ユニット61〜64の
適切なものに割り当て、またそれらは選択された機能ユ
ニットにより並列に処理される。タグフィールドが、特
定の命令が単独で非並列的に処理されるべきことを示す
ときは、取出し送出ユニッ60は、それを、そのオペレ
ーションコードにより決定されるように、またそれがそ
れ自身により処理または実行されるように、特定の機能
ユニットにそれを割り当てる。
【0064】第1機能ユニット61は、分岐形命令を処
理する分岐命令処理ユニットである。第2機能ユニット
62は、オペランドを記憶装置に、またはそれから転送
する命令に対して記憶アドレスを計算するために使用さ
れる3入力アドレス発生算術論理ユニット(ALU)で
ある。第3機能ユニット63は、数学的・論理的演算を
実施するために使用される汎用算術論理ユニット(AL
U)である。本実施例における第4機能ユニット64は
、上記引用の米国特許出願第505,910号明細書に
示された種類のデータ依存性解消ALUである。この依
存性解消ALU64は、単一マシンサイクルで2つの算
術論理演算を行うことができる3入力ALUである。
【0065】図10のコンピュータシステムの実施例は
更に、マシンレベル命令の幾つかを実行する際に使用す
る1組の汎用レジスタ65を備えている。通常は、これ
らの汎用レジスタ65は、データオペランドおよびアド
レスオペランドを一時記憶するために使用され、または
カウンタとして、または他のデータ処理のために使用さ
れる。通常のコンピュータシステムでは、16個のこの
ような汎用レジスタが設けられる。本実施例においては
、汎用レジスタ65は、2つ以上のレジスタが同時にア
クセスできるマルチポート形のものとされる。
【0066】図10のコンピュータシステムは更に、上
位記憶ユニット10から得られるデータオペランドを記
憶する高速データキャッシュ記憶機構66を備えている
。キャッシュ記憶機構66中のデータはまた主メモリ1
0に送出される。データキャッシュ66は既知のもので
あり、また主メモリ10に対するその動作は既知の方法
で行われる。
【0067】図11は、図10のコンピュータシステム
により処理される複合またはタグ付命令シーケンスの例
を示す図である。図11の例は、次のシーケンスの次の
命令、即ちLoad,Add,Compare,Bra
nch  on  Condition  and  
Storeで構成される。これらは、それぞれ命令I1
〜I5として識別される。これらの命令に対するタグビ
ットは、それぞれ1,1,0,1および0である。図1
0に示したマシンの構成ため、Load命令はそれ自身
により単独で処理される。AddおよびCompare
命令は複合命令として扱われ、互いに並列に処理される
。Branch  and  store命令も複合命
令として扱われ、互いに並列に処理される。
【0068】図12の表は更に、図11の命令の各々に
対する情報を与える。図12のR/M列は、第1オペラ
ンドを含む汎用レジスタ65の特定のものを識別するた
めに通常使用される各々の命令の第1フィールドの内容
を示している。R/Mフィールドが条件コードマスクを
含むBranch  on  condition命令
の場合は、例外である。図12のR/X列は、汎用レジ
スタ65の第2のものを識別するために通常使用される
各々の命令の第2フィールドの内容を示している。この
ようなレジスタは第2オペランドを収容してもよく、ま
たはアドレスインデックス値(X)を収容してもよい。 図12のB列は、基本アドレス値を収容する汎用レジス
タ65の特定のものを識別する各々の第3の可能なフィ
ールドの内容を示している。B列の0は、Bフィールド
の欠如またはBフィールドの対応するアドレス要素の欠
如を示している。図12のDフィールドは、アドレス発
生のために使用されるとき、アドレス変位値を含む各々
の命令の他のフィールドの内容を示している。D列の0
はまた、問題の特定の命令の対応するフィールドの欠如
あるいは0のアドレス変位値を示している。
【0069】ここで、図11のLoad命令の処理につ
いて考えると、取出し送出制御ユニット60は、このL
oad命令に対するタグビットおよび次のAdd命令か
ら、Load命令がそれ自身により単独で処理されるべ
きであることを判定する。このLoad命令により行わ
れる作用は、記憶装置、この場合はデータキャッシュ6
6からオペランドを取り出し、さらにこのようなオペラ
ンドをR2汎用レジスタに記憶させることにある。この
オペランドが取り出される記憶装置のアドレスは、レジ
スタXがインデックス値,レジスタBの基本値,および
変位値Dを加算することにより決定される。取出し送出
制御ユニット60は、このアドレス発生動作をアドレス
発生ALU62に割り当てる。この場合は、ALU62
は、レジスタXのアドレスインデックス値(本例では0
の値)、汎用レジスタR7に収容された基本アドレス値
、および命令自身に含まれる変位アドレス値(本例にお
いては0の値)を共に加算する。ALU62の出力に現
れる記憶アドレスの得られた計算値は、データキャッシ
ュ66のアドレス入力に供給されて所望のオペランドに
アクセスする。このアクセスされたオペランドはレジス
タセット65のR2汎用レジスタにロードされる。
【0070】ここで、Add  and  compa
re命令の処理について考えると、これらの命令は取出
し送出制御ユニット60により取り出される。制御ユニ
ット60は、これらの2つの命令に対する複合タグを検
討し、それらが並列実行可能であることを知る。図12
に示したように、Compare命令は、R3が比較可
能になる前にAdd命令を完了させなければならないの
で、Add命令に対して明瞭なデータ依存性を有する。 しかし、この依存性はデータ依存性解消ALU64によ
り処理することができる。従って、これらの2つの命令
は図10の構成において並列に処理することができる。 特に、制御ユニット60はAdd命令の処理をALU6
3に割り当て、さらにCompare命令の処理を依存
性解消ALU64に割り当てる。
【0071】ALU63は、R2汎用レジスタの内容を
R3汎用レジスタの内容に加算し、さらに加算結果をR
3汎用レジスタに再び記憶させる。同時に、依存性解消
ALU64は次の数学的演算、 R3+R2−R4 を実施する。この演算の結果に対する条件コードは、分
岐ユニット61に配置された条件コードレジスタに送ら
れる。データ依存性は、実際にはALU64がR3+R
2の和を計算し、次にこの和をR4と比較して条件コー
ドを決定するので、解消される。このようにして、AL
U64はAdd命令を行っているALU63からの結果
を待機する必要がないことになる。この特定の場合にお
いては、ALU64により計算され、ALU64の出力
に現れる数値結果は、汎用レジスタ65に戻されない。 この場合、ALU64は条件コードを単に設定するだけ
である。
【0072】ここで、図11に示したBranch命令
およびStore命令の処理について考えると、これら
の命令は取出し送出制御ユニット60により複合命令キ
ャッシュ12から取り出される。制御ユニット60は、
これらの命令に対するタグビットから、それらが互いに
並列に処理可能であることを判定する。更に制御ユニッ
ト60は、2つの命令のオペレーションコードから、B
ranch命令が分岐ユニット61により処理されるべ
きであり、またStore命令がアドレス発生ALU6
2により処理されるべきであることを判定する。この判
定に従って、Branch命令のマスクフィールドMお
よび変位フィールドDは、分岐ユニット61に供給され
る。同様に、このBranch命令に対するレジスタX
のアドレスインデックス値およびレジスタBのアドレス
基本値が汎用レジスタ65から得られ、分岐ユニット6
1に供給される。本例においては、X値は0であり、基
本値はR7汎用レジスタから得られる。変位値Dは20
の16進値を持ち、一方マスクフィールドMは、8のマ
スク位置の値を有する。
【0073】分岐ユニット61は潜在的分岐アドレス(
0+R7+20)の計算を開始し、同時に前回のCom
pare命令から得られた条件コードを条件コードマス
クMと比較する。条件コード値がマスクコード値と同じ
のときは、必要な分岐条件が得られ、その際分岐ユニッ
ト61により計算された分岐アドレスは制御ユニット6
0の命令カウンタにロードされる。この命令カウンタは
、複合命令キャッシュ12からの命令の取り出しを制御
する。一方、条件が満足されないときは(即ち、前回の
命令により設定された条件コードは8の値を有さない。 )、如何なる分岐も取られず、また制御ユニット60の
命令カウンタには如何なるアドレスも供給されない。
【0074】分岐ユニット61は、Branch命令に
対するその処理作用を実施してビジーであると同時に、
アドレス発生ALU62は、Store命令に対するア
ドレス計算(0+R7+0)を行ってビジーである。A
LU62により計算されたアドレスは、データキャッシ
ュ66に供給される。分岐ユニット61により分岐が取
られないときは、Store命令が動作してR3汎用レ
ジスタのオペランドを、データキャッシュ66のALU
62により計算されたアドレスに記憶する。一方、分岐
条件が得られ、分岐が取られたときは、R3汎用レジス
タの内容はデータキャッシュ66には記憶されない。
【0075】図11の上記命令シーケンスは、例示のみ
を意図したものである。図10のコンピュータシステム
の実施例は、他の各種の命令シーケンスを同様に処理す
ることができる。しかし、図11の例は命令のどの対が
互いに並列に処理され得るかを判定する際の複合命令タ
グの効用を明らかに示すものである。
【0076】1のタグビット値を有する命令と0のタグ
ビット値を有する続く命令との各々の対化は、並列実行
のための複合命令を形成し、即ちこのような対における
命令は互いに並列に処理可能である。2つの続く命令に
対するタグビットがそれぞれ1の値を持つときは、これ
らの命令の第1のものはそれ自身により非並列的に実行
される。最悪な場合には、シーケンス中の命令の全ては
1のタグビット値を有することになる。この最悪の場合
には、命令のすべては一度に1つずつ非並列的に実行さ
れる。
【0077】本発明の好適な実施例に関連して上記に示
したハードウェアの例は、小さな範囲にわたって複合す
るものである。この点で、隣接命令の各々に対が解析さ
れてどの対が並列に実行され得るかを判定している。実
際、メモリ複合化は2つ以上のメモリにわたって多くの
複合化を検討し、採用のグループ分けを選択する可能性
を提供する。
【0078】上記の例においては更に、命令がどこで始
まるかについての知識を仮定する複合方法を用いている
。一般的な場合は、命令境界は、上記のようにコンパイ
ラにより、または実行前の命令復号化により識別するこ
とができる。
【0079】最後に、命令複合化ユニットは、特にI/
Oアダプタとメモリバスの間に配置されるものとして示
されている。この例は、メモリ複合化ユニットが動作し
得るメモリ内の他の位置を排除することを意味するもの
ではない。例えば、それはI/Oアダプタ内に吸収させ
ることができ、メモリバス9上の個別ユニットとして(
この位置では、それは主メモリ10または複合メモリキ
ャッシュ12のいずれかで複合化することができる)動
作することができ、またはそれは主メモリバス9を介し
てアクセスできない専用メモリポートを通して主メモリ
にのみ装着されたユニットで構成することができる。
【図面の簡単な説明】
【図1】本発明に従って構成されたディジタル・コンピ
ュータ・システムの要部の実施例を示す図である。
【図2】主メモリに複合タグ情報を記憶する実現法を示
す図である。
【図3】図1のコンピュータ・システムにおけるI/O
アダプタと主メモリの間のデータストリーム構造の詳細
を示す図である。
【図4】図3のデータストリーム構造における命令の転
送のためのタイミング図である。
【図5】命令に係る複合タグまたはタグフィールドを有
する命令ストリームの長さ、および命令に係る命令境界
フィールドを有する命令ストリームの長さを示す図であ
る。
【図6】図1のコンピュータシステムに使用可能な命令
複合化ユニットの実施例の内部構成の詳細を示す図であ
る。
【図7】図3の複合解析ユニットの各々に対する内部構
成を詳細に示す図である。
【図8】命令ストリームの初めの3つの命令に対する複
合タグを発生する図6の複合解析器およびタグ発生器を
実現するために使用される論理回路を例示する図である
【図9】図8の例の動作を説明する際に使用する表を示
す図である。
【図10】ディジタル・コンピュータ・システムの要部
である多重機能命令処理ユニットにより複合命令が並列
に処理される方法を説明するために用いられる実施例を
示す図である。
【図11】図10のコンピュータシステムにより処理さ
れる特定の命令シーケンスの一例を示す図である。
【図12】図10のコンピュータシステムによる図11
の命令シーケンスの処理を説明する際に使用する表を示
す図である。
【符号の説明】
1  I/Oバス 8  アダプタ 9(9a,9b)  メモリバス 10  主メモリ 11,20  メモリ複合化ユニット 12  複合メモリキャッシュ 13,14,15  機能ユニット 16  命令取出し送出ユニット 22〜25  複合解析器 26  タグ発生器 30,31  命令コンパティビリティ論理32,33
  レジスタ依存性論理 40,41,45  デコーダ 60  取出し送出制御ユニット 61  分岐ユニット 62  アドレス発生ALU 64  依存性解消ALU 65  汎用レジスタ 66  データキャッシュ

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】複数の命令を並列に実行する手段を有する
    ディジタル・コンピュータ・システムにおいて、被処理
    命令のグループを与える入出力インタフェースと、前記
    命令のグループに応じて並列に実行してよい前記命令グ
    ループの命令を示す複合化タグ情報を発生する命令複合
    化機構と、前記入出力インタフェース並びに前記命令複
    合化機構に接続されて、前記複合化タグ情報を有する前
    記命令のグループを記憶する主記憶装置とを備えるディ
    ジタル・コンピュータ・システム。
  2. 【請求項2】複合化タグ情報は複数のタグフィールドか
    らなり、各々のタグフィールドは命令複合化機構により
    解析されたそれぞれの命令に関連する請求項1記載のデ
    ィジタル・コンピュータ・システム。
  3. 【請求項3】互いに並列に動作する複数の機能命令処理
    ユニットを備えて、前記複合化タグ情報が、これらの機
    能ユニットに2つ以上の命令を発生するに際して使用さ
    れる請求項1記載のディジタル・コンピュータ・システ
    ム。
  4. 【請求項4】前記命令複合化機構は、複数の連続する命
    令を受ける複数命令の命令レジスタと、各々が命令レジ
    スタ内の特定対の相並ぶ命令を解析すると共に、前記対
    の2つの命令が並列に処理され得るか否かを示す複合可
    能性信号を発生する複数の規則ベース命令解析機構と、
    前記複合可能性信号に応答して前記命令レジスタ中の各
    々の命令に対して個別タグフィールドを発生するタグ発
    生機構とを備える請求項2記載のディジタル・コンピュ
    ータ・システム。
  5. 【請求項5】特定の命令処理構成を有し、また各々の命
    令解析機構は、当該コンピュータシステムに対して使用
    される特定の命令処理構成における並列実行に対してど
    のタイプの命令がコンパティブルであるかを定める規則
    を実現する論理回路を備えており、この論理回路は解析
    機構に対して複合可能性信号を発生する請求項4記載の
    ディジタル・コンピュータ・システム。
  6. 【請求項6】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、被処理命令シー
    ケンス中の命令グループを受信する手段と、この受信す
    る手段に接続され、前記命令のグループを受信すると共
    に前記命令のグループのどの命令が並列処理され得るか
    を示す複合化タグフィールドを前記命令のグループに関
    係づける命令複合化機構と、前記命令複合化機構に結合
    され、前記命令のグループと前記関係づけられた複合化
    タグフィールドとを受信する共に記憶する記憶機構とを
    備えるディジタル・コンピュータ・システム。
  7. 【請求項7】互いに並列に動作する複数の機能命令処理
    ユニットと、前記記憶機構に結合され、この記憶機構に
    記憶された命令を、それらのタグフィールドが命令が並
    列に処理され得ることを示すとき各々の機能命令処理ユ
    ニットに供給する命令発生機構とを更に備える請求項6
    記載のディジタル・コンピュータ・システム。
  8. 【請求項8】前記記憶機構は、前記命令を含む情報のブ
    ロックを記憶する主メモリと、この主メモリに接続され
    ると共に前記命令発生機構に接続されたキャッシュ記憶
    機構とを備える請求項7記載のディジタル・コンピュー
    タ・システム。
  9. 【請求項9】前記記憶機構は、複合化タグフィールドを
    前記命令グループの命令に付加するのに十分なワードサ
    イズを有する主メモリを備える請求項6記載のディジタ
    ル・コンピュータ・システム。
  10. 【請求項10】前記記憶機構は、命令グループを記憶す
    る主メモリと、複合化タグを記憶するタグメモリとを備
    える請求項6記載のディジタル・コンピュータ・システ
    ム。
  11. 【請求項11】前記記憶機構は主メモリを備え、この主
    メモリは、複合化タグフィールドのためのタグテーブル
    と、複数の命令グループを記憶する個別セクションとを
    有する請求項6記載のディジタル・コンピュータ・シス
    テム。
  12. 【請求項12】前記記憶機構は主メモリを備え、この主
    メモリは、命令グループを記憶する第1セクションと複
    合タグフィールドを記憶する第2セクションとを有する
    ページセクションを備える請求項6記載のディジタル・
    コンピュータ・システム。
  13. 【請求項13】前記命令グループは命令のページである
    請求項6記載のディジタル・コンピュータ・システム。
  14. 【請求項14】前記記憶機構に接続され、複数の命令を
    取り出し、また複合化タグフィールドに応じて複数の命
    令を並列に実行する命令実行手段を更に備える請求項6
    記載のディジタル・コンピュータ・システム。
  15. 【請求項15】前記命令実行手段は、前記命令複合化機
    構と非同期的に動作する請求項14記載のディジタル・
    コンピュータ・システム。
  16. 【請求項16】同時に複数の命令を実行できるディジタ
    ル・コンピュータ・システムにおいて、所定グループの
    実行命令を記憶するメモリ機構と、このメモリ機構に接
    続され、同時に実行されるべき所定の命令グループにお
    ける命令を識別する複合化タグ情報を発生する命令複合
    化ユニットと、前記メモリ機構に設けられると共に前記
    命令複合化ユニットに接続され、複合化タグ情報を記憶
    する複合化タグ情報記憶手段と、前記メモリ機構に接続
    され、複合化タグ情報に応じて単独でまたは同時に命令
    を実行する命令実行手段とを備えるディジタル・コンピ
    ュータ・システム。
  17. 【請求項17】前記命令複合化ユニットは、前記命令実
    行手段と非同期である請求項16記載のディジタル・コ
    ンピュータ・システム。
  18. 【請求項18】前記複合化タグ情報記憶手段は、タグメ
    モリである請求項16記載のディジタル・コンピュータ
    ・システム。
  19. 【請求項19】前記複合タグ情報記憶手段は、タグテー
    ブルである請求項16記載のディジタル・コンピュータ
    ・システム。
  20. 【請求項20】前記複合タグ情報記憶手段は、前記所定
    命令グループに付加されたメモリ機構空間を備える請求
    項16記載のディジタル・コンピュータ・システム。
JP3096093A 1990-06-06 1991-04-03 ディジタル・コンピュータ・システム Expired - Fee Related JPH0778738B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54346490A 1990-06-26 1990-06-26
US543464 1990-06-26

Publications (2)

Publication Number Publication Date
JPH04232532A true JPH04232532A (ja) 1992-08-20
JPH0778738B2 JPH0778738B2 (ja) 1995-08-23

Family

ID=24168174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3096093A Expired - Fee Related JPH0778738B2 (ja) 1990-06-06 1991-04-03 ディジタル・コンピュータ・システム

Country Status (10)

Country Link
US (2) US5355460A (ja)
EP (1) EP0463296A2 (ja)
JP (1) JPH0778738B2 (ja)
BR (1) BR9102128A (ja)
CA (1) CA2038264C (ja)
CZ (1) CZ280269B6 (ja)
HU (1) HUT57920A (ja)
PL (1) PL165585B1 (ja)
RU (1) RU2109333C1 (ja)
SK (1) SK93491A3 (ja)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69129569T2 (de) * 1990-09-05 1999-02-04 Philips Electronics N.V., Eindhoven Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
JP2642529B2 (ja) * 1991-04-30 1997-08-20 株式会社東芝 並列プロセッサーの命令分配処理装置
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5961629A (en) * 1991-07-08 1999-10-05 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
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
DE69326066T2 (de) * 1992-03-25 2000-03-30 Zilog, Inc. Schnelle befehlsdekodierung in einem pipeline-prozessor
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
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (en) 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
US5416913A (en) * 1992-07-27 1995-05-16 Intel Corporation Method and apparatus for dependency checking in a multi-pipelined microprocessor
US5590348A (en) * 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5671431A (en) * 1992-09-22 1997-09-23 Siemens Aktiengesellschaft Method for processing user program on a parallel computer system by inserting a tag during compiling
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
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
WO1994016384A1 (en) 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
JP3182591B2 (ja) * 1993-01-20 2001-07-03 株式会社日立製作所 マイクロプロセッサ
US6154828A (en) * 1993-06-03 2000-11-28 Compaq Computer Corporation Method and apparatus for employing a cycle bit parallel executing instructions
US5504914A (en) * 1993-06-23 1996-04-02 National Science Council Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
DE69424370T2 (de) * 1993-11-05 2001-02-15 Intergraph Corp., Huntsville Befehlscachespeicher mit Kreuzschienenschalter
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5819059A (en) * 1995-04-12 1998-10-06 Advanced Micro Devices, Inc. Predecode unit adapted for variable byte-length instruction set processors and method of operating the same
US5931941A (en) * 1995-04-28 1999-08-03 Lsi Logic Corporation Interface for a modularized computational unit to a CPU
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5826089A (en) * 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
US5958042A (en) * 1996-06-11 1999-09-28 Sun Microsystems, Inc. Grouping logic circuit in a pipelined superscalar processor
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US5845099A (en) * 1996-06-28 1998-12-01 Intel Corporation Length detecting unit for parallel processing of variable sequential instructions
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5724422A (en) * 1996-08-05 1998-03-03 Industrial Technology Research Institute Encrypting and decrypting instruction boundaries of instructions in a superscalar data processing system
US5941980A (en) * 1996-08-05 1999-08-24 Industrial Technology Research Institute Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system
US5852727A (en) * 1997-03-10 1998-12-22 Advanced Micro Devices, Inc. Instruction scanning unit for locating instructions via parallel scanning of start and end byte information
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system
US6098167A (en) * 1997-03-31 2000-08-01 International Business Machines Corporation Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US5870582A (en) * 1997-03-31 1999-02-09 International Business Machines Corporation Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US5805849A (en) * 1997-03-31 1998-09-08 International Business Machines Corporation Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
US5887161A (en) * 1997-03-31 1999-03-23 International Business Machines Corporation Issuing instructions in a processor supporting out-of-order execution
US5875336A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Method and system for translating a non-native bytecode to a set of codes native to a processor within a computer system
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching instructions in a processor supporting out-of-order execution
US5940602A (en) * 1997-06-11 1999-08-17 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
US5922065A (en) * 1997-10-13 1999-07-13 Institute For The Development Of Emerging Architectures, L.L.C. Processor utilizing a template field for encoding instruction sequences in a wide-word format
US6134649A (en) * 1997-11-17 2000-10-17 Advanced Micro Devices, Inc. Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction
US6167506A (en) 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6118940A (en) * 1997-11-25 2000-09-12 International Business Machines Corp. Method and apparatus for benchmarking byte code sequences
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6061786A (en) * 1998-04-23 2000-05-09 Advanced Micro Devices, Inc. Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US6175908B1 (en) 1998-04-30 2001-01-16 Advanced Micro Devices, Inc. Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6658552B1 (en) * 1998-10-23 2003-12-02 Micron Technology, Inc. Processing system with separate general purpose execution unit and data string manipulation unit
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
JP2000284970A (ja) * 1999-03-29 2000-10-13 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
US6711670B1 (en) * 1999-10-14 2004-03-23 Hewlett-Packard Development Company, L.P. System and method for detecting data hazards within an instruction group of a compiled computer program
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
US7039790B1 (en) 1999-11-15 2006-05-02 Texas Instruments Incorporated Very long instruction word microprocessor with execution packet spanning two or more fetch packets with pre-dispatch instruction selection from two latches according to instruction bit
EP1102165A1 (en) * 1999-11-15 2001-05-23 Texas Instruments Incorporated Microprocessor with execution packet spanning two or more fetch packets
US6618801B1 (en) * 2000-02-02 2003-09-09 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing two architectures in a chip using bundles that contain microinstructions and template information
DE10043003A1 (de) * 2000-09-01 2002-03-14 Infineon Technologies Ag Programmgesteuerte Einheit
EP1197847A3 (en) 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
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
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
JP3564445B2 (ja) * 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
US7395408B2 (en) * 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements
US7917734B2 (en) 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
US7269715B2 (en) * 2005-02-03 2007-09-11 International Business Machines Corporation Instruction grouping history on fetch-side dispatch group formation
US7475223B2 (en) * 2005-02-03 2009-01-06 International Business Machines Corporation Fetch-side instruction dispatch group formation
US7664765B2 (en) * 2005-07-12 2010-02-16 Cipherflux, Llc Method for accelerating the computational speed of a computer algorithm
US7562206B2 (en) * 2005-12-30 2009-07-14 Intel Corporation Multilevel scheme for dynamically and statically predicting instruction resource utilization to generate execution cluster partitions
JP2007272353A (ja) * 2006-03-30 2007-10-18 Nec Electronics Corp プロセッサ装置及び複合条件処理方法
GR1006531B (el) * 2008-08-04 2009-09-10 Διαμορφωση εντυπου πολλαπλων επιλογων αναγνωσιμου με ηλεκτρονικο μεσο και συστημα και μεθοδος για την ερμηνεια κατ' ελαχιστον μιας επιλογης του χρηστη
US9354888B2 (en) * 2012-03-28 2016-05-31 International Business Machines Corporation Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching
US9348596B2 (en) * 2013-06-28 2016-05-24 International Business Machines Corporation Forming instruction groups based on decode time instruction optimization
RU2620731C1 (ru) * 2016-07-20 2017-05-29 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Способ совместного арифметического и помехоустойчивого кодирования и декодирования

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor
JPH02130635A (ja) * 1988-11-11 1990-05-18 Hitachi Ltd 複数命令同時処理方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
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
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information processor
JPH02130635A (ja) * 1988-11-11 1990-05-18 Hitachi Ltd 複数命令同時処理方式

Also Published As

Publication number Publication date
CA2038264C (en) 1995-06-27
US5459844A (en) 1995-10-17
PL165585B1 (pl) 1995-01-31
SK93491A3 (en) 1995-09-13
CZ280269B6 (cs) 1995-12-13
RU2109333C1 (ru) 1998-04-20
JPH0778738B2 (ja) 1995-08-23
HUT57920A (en) 1991-12-30
HU911101D0 (en) 1991-10-28
US5355460A (en) 1994-10-11
CZ93491A3 (en) 1995-07-12
EP0463296A2 (en) 1992-01-02
BR9102128A (pt) 1991-12-24
EP0463296A3 (ja) 1994-03-23
PL289724A1 (en) 1992-04-21

Similar Documents

Publication Publication Date Title
JPH04232532A (ja) ディジタル・コンピュータ・システム
US5295249A (en) Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
US6542985B1 (en) Event counter
EP0405489B1 (en) Resource conflict detection method and apparatus included in a pipelined processing unit
US6105129A (en) 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
US7219185B2 (en) Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
US5475853A (en) Cache store of instruction pairs with tags to indicate parallel execution
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
JP3547482B2 (ja) 情報処理装置
US7028170B2 (en) Processing architecture having a compare capability
US5008812A (en) Context switching method and apparatus for use in a vector processing system
US6295600B1 (en) Thread switch on blocked load or store using instruction thread field
CN1158597C (zh) 超标量或超长指令字计算机中选择下一指令的方法与装置
US20050289299A1 (en) Digital data processing apparatus having multi-level register file
EP0394624B1 (en) Multiple sequence processor system
US20130024725A1 (en) Out of order millicode control operation
US6023751A (en) Computer system and method for evaluating predicates and Boolean expressions
US6209081B1 (en) Method and system for nonsequential instruction dispatch and execution in a superscalar processor system
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
US5278840A (en) Apparatus and method for data induced condition signalling
Kitahara et al. The GMICRO/300 32-bit microprocessor
EP0297890B1 (en) Apparatus and method for data induced condition signaling
US5729729A (en) System for fast trap generation by creation of possible trap masks from early trap indicators and selecting one mask using late trap indicators
CA2040637C (en) Compounding preprocessor for cache

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees