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

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

Info

Publication number
JPH0778738B2
JPH0778738B2 JP3096093A JP9609391A JPH0778738B2 JP H0778738 B2 JPH0778738 B2 JP H0778738B2 JP 3096093 A JP3096093 A JP 3096093A JP 9609391 A JP9609391 A JP 9609391A JP H0778738 B2 JPH0778738 B2 JP H0778738B2
Authority
JP
Japan
Prior art keywords
instructions
instruction
group
tag
receiving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3096093A
Other languages
English (en)
Other versions
JPH04232532A (ja
Inventor
リチャード・ジェームス・エイケメヤ
スタマティス・バシリアディス
バソロメウ・ブラナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
およびディジタルデータプロセッサに係り、特に2つ以
上の命令を並列に実行できるディジタルコンピュータお
よびデータプロセッサに関する。
【0002】
【従来の技術】命令シーケンスを受け、これを一度に1
命令ずつ実行するコンピュータは従来から知られてい
る。これらのコンピュータにより実行される命令は単一
値の対象に対して動作し、従って“スカラ”と呼ばれて
いる。
【0003】このような従来のスカラコンピュータの動
作速度は、回路技術やコンピュータ機構,およびコンピ
ュータアーキテクチュアの進歩により、その限界まで改
善されている。しかしながら、競合マシンが新たに開発
されるにつけ、従来のスカラマシンには新たな加速機構
が要求されている。
【0004】ユニプロセッサの計算速度を加速する最近
の機構は、非常に簡単な命令の制限されたセットを用い
る低減命令セットアーキテクチュアに見られる。他の加
速機構としては、複雑なマルチオペランド命令の最小セ
ットに基づく複雑な命令セットアーキテクチュアが知ら
れている。これらの方法のいずれかを既存スカラコンピ
ュータに適用するには、命令セットおよびマシンアーキ
テクチュアを基本的に変更する必要がある。このような
広範囲な変更は費用,時間がかかり、またマシンの信頼
性と有効性が初期の段階で減少するという問題がある。
【0005】命令セットの低減と共に実現される利点の
幾つかをスカラマシンに適用しようとする試みの中で、
いわゆる“スーパスカラ”コンピュータが開発されてい
る。これらのマシンは、これらが単一スカラ命令のシー
ケンスを含む命令ストリームから一度に1つ以上の命令
を実行するように構成することにより性能が増加する本
質的にスカラマシンである。これらのマシンは、通常
は、スカラ命令のシーケンスの2つ以上の命令が並列に
実行できるか否かを命令実行時に判定している。この判
定は、命令のオペレーションコードに、また命令間に存
在するデータ依存性に基づいてなされる。オペレーショ
ンコードとは、命令に必要な計算ハードウェアを意味す
る。一般に、同じハードウェア(ハードウェア依存性)
または同じオペランド(データ依存性)を利用する2つ
以上の命令を同時に実行することは可能ではない。これ
らのハードウェア依存性およびデータ依存性は、幾つか
の命令の組合せの並列実行を阻害するものである。これ
らの場合には、影響される命令はシリアルに実行され
る。これは、当然スーパスカラマシンの性能を低減させ
るものである。
【0006】スーパスカラコンピュータには、これを小
形にすることが望ましいという問題点がある。この場
合、具体的な時間量が、どの命令が並列に実行できるか
を命令実行時に判定する際に消費される。この時間は、
他のマシン動作と重ねることにより容易にマスクするこ
とはできない。このような問題は、命令セットアーキテ
クチュアの複雑さが増すにつれ一層著しくなる。更に、
並列実行の判定は同じ命令が実行される毎に反復されな
ければならない。
【0007】既存スカラコンピュータの有用な寿命時間
を延長する際には、加速実行の全ての手段が不可欠であ
る。しかしながら、低減された命令セットアーキテクチ
ュアや複雑な命令セットアーキテクチュア、またはスー
パスカラ法による加速は、既存スカラマシンを考慮する
には潜在的には非常にコスト高であり、決定が多過ぎ
る。このようなコンピュータの実行速度を、命令セット
の変更やマシンアーキテクチュアの変更、または命令実
行に必要な時間の拡張を要求することなしに既存命令セ
ットにおける並列または同時的な命令の実行により加速
することが好適である。
【0008】
【課題を解決するための手段】米国特許出願第519,
384号明細書においては、スカラブル複合命令セット
マシン(SCISM)アーキテクチュアが提案されてお
り、これによれば、命令レベルの並列性は、命令実行以
前の時点でスカラ命令のシーケンスを解析して並列実行
が可能なシーケンスの既存命令の隣接グループ分けによ
り形成される複合命令を発生することにより達成され
る。タグの形態の関連する制御情報が、複合命令がどこ
で始まるかを示すと共に、複合命令に取り込まれる既存
命令の数を示す命令ストリームに付加される。なお、用
語“複合化(compounding)”は、命令のシ
ーケンスに含まれる命令のグループ分けに係り、このグ
ループ分けはグループ分けされた命令の同時または並列
実行を目的とするものである。少なくとも、複合化は同
時実行のための2つの命令の“対化(pairin
g)”により満足される。複合化された命令は、これら
がスカラ実行のために与えられた形態から変更されない
ことが好適である。以下に説明するように、複合化され
た命令は、複合化タグ命令、即ち並列実行のための命令
のグループ分けを示す、グループ分けされた命令に付加
されたビットにより伴われる。
【0009】複数の命令を並列に実行する手段を備える
ディジタルコンピュータシステムにおいて、本発明の特
に好適な実施例は、命令の発生および実行前に命令を複
合化するメモリアーキテクチュアに基づいて与えられ
る。このようなメモリは、コンピュータのCPU(中央
処理ユニット)に命令を与える階層的メモリ構造の要素
をなしている。通常、このような構造は、頻繁にアクセ
スされる命令を含む高速キャッシュ記憶装置、これに接
続された低速主メモリまたは一次記憶装置、および低速
大容量補助記憶装置を備えている。
【0010】また通常は、キャッシュおよび主記憶装置
は、実行のために直接参照できる命令を有している。補
助記憶装置の命令に対するアクセスは、主メモリと補助
記憶装置の間に接続された入出力(I/O)アダプタを
通してなされる。
【0011】階層的記憶構成を有するスカラコンピュー
タにおいて、本発明は、二次記憶装置から、実行のため
の命令のシーケンスに与える入出力インタフェースと、
前記命令のシーケンスに応じて、並列に実行されてよい
シーケンスの命令を示す複合タグ情報を発生する命令複
合機構と、前記入出力インタフェース並びに前記命令複
合機構に接続されて複合タグ情報を有する命令シーケン
スを記憶する主記憶装置とを備える組合せ装置を提供す
る。
【0012】主メモリは、知られているように、実行の
ための参照のためにCPUに直ちにアクセスできるデー
タおよび命令を記憶するものである。適切に設計された
階層的記憶システム自身に主メモリを使用する目的は、
スカラコンピュータの全体にわたる性能を改善すること
にある。本発明においては、主メモリに命令が記憶され
ている限りは、主メモリに複合タグ情報を記憶すること
によりこの情報を繰り返し使用することが可能になる。
更に、主メモリ内の命令は、一旦キャッシュに与えられ
ると、一度以上使用するのに十分な時間キャッシュ内に
残る。
【0013】
【実施例】図1は本発明により構成されたディジタルコ
ンピュータシステムまたはディジタルデータ処理システ
ムの要部の1実施例を示す図である。このコンピュータ
システムは2つ以上の命令を並列に実行することができ
る。また、このコンピュータシステムは、I/Oバスを
介して補助または二次記憶装置がコンピュータに接続さ
れる階層構成の記憶システムを備えている。コンピュー
タは、メモリバスに接続されるアダプタを通してI/O
バスとインタフェースする。主メモリおよび高速キャッ
シュは、メモリバスに接続される。
【0014】上記階層性によりコンピュータシステムの
計算要素は、主メモリおよびキャッシュの内容に直接ア
クセスまたは参照することが通常可能になり、一方アダ
プタは補助記憶装置へのアクセスを与える。現在のコン
ピュータ演算をサポートするためにアクセスまたは参照
されなければならない命令とデータは、メモリ内に保持
される。これらの命令およびデータは、不要になると、
アダプタを介して補助メモリに戻され、一方新たな命令
とデータが主メモリに記憶される。キャッシュは、CP
Uによる高速アクセスをサポートし、また現在使用され
ておりまたはCPUにより次に使用される可能性の大き
な命令とデータを記憶するために使用される。このよう
な階層記憶構造はDeitel’s OPERATIN
G 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アダプタは、例え
ば、IBMコーポレーションから得られるモデル309
0コンピュータシステムのチャネル化された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から取り出され、キャッシュ1
2に与えられなければならない。これは“キャッシュミ
ス”と呼ばれることがある。このようなミスが生じたと
きは、要求された命令のアドレスが主メモリ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に対して得られる情
報により決定される。これらの点は米国特許出願第51
9,382号明細書および第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,1
9bを通して主メモリ10に供給される。図4が示すよ
うに、複合化ユニットは時間を要求されるものに付加し
て補助記憶装置からテキストセグメントを取り出し、こ
れを主メモリ10に入力する。しかしながら、付加され
る時間は要求される全時間に比べて小さく、またCPU
に対して非同期である。 図4において、各々のセグメ
ントiはディスクドライブなどの補助記憶装置からペー
ジバッファ18aまたは18bの1つに転送される。時
間セグメントbi の各々はページバッファから主メモリ
10へ、テキストセグメントを転送するのに必要な時間
を示す。このようにして、テキストセグメントiは、ど
のテキストセグメントi+1がバッファの他方に転送さ
れるかに従って、時間ai 内でページバッファ18aま
たは18bの1つに転送される。複合化がないと、セグ
メントiはページバッファから時間bi 内で転送され、
そこでセグメントiは一般に主メモリに記憶される。図
4に示すように、この時間はバッファ18aまたは18
bの一方にページを取り出すのに必要な時間よりかなり
短い。本発明を実施する場合、ページバッファの1つの
テキストセグメントに対して複合化ユニット11の動作
が行われるのに必要な時間プラス複合バッファ19aま
たは19bで費やされる時間は、複合化時間ci により
表わされる。ここで、図4において、時間bi はページ
バッファから複合化ユニット11へテキストセグメント
iを転送するのに必要なものである。次に、複合化時間
i が与えられ、一方テキストセグメント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)に
示したように、命令を含むページに対してページブロッ
クをなして主メモリに記憶される。これらの主メモリ1
0に記憶されたタグ付き命令は、必要に応じて、“ミ
ス”が生じたときにキャッシュ12に転送される。その
後、キャッシュ12のタグ付き命令は命令取出し送出ユ
ニット16により取り出される。タグ付き命令が取出し
送出ユニット16により受信されると、それらのタグ付
きフィールドが検討され、それらが並列に処理され得る
か否かが判定され、またそれらのオペレーションコード
フィールドが検討され、使用する機能ユニットのどれが
それらの処理に最も適しているかが判定される。タグフ
ィールドが、2つ以上の命令が並列処理に適しているこ
とを示すときは、それらの命令はそれらのオペレーショ
ンコードフィールドの符号化に従って機能ユニットの適
切なものに送出される。次に、このような命令は、それ
らのそれぞれの機能ユニットにより互いに同時に処理さ
れる。
【0033】並列処理に適さない命令が生じたときは、
これはそのオペレーションコードにより決定されるよう
に適切な機能ユニットに送られ、その際選択された機能
ユニットにより単独でそれ自身により処理される。
【0034】複数の命令が常に並列に処理されている最
も完全な場合には、コンピュータシステムの命令実行速
度は、Nを並列に処理されているグループの命令の数と
すると、命令が一度に1つ実行される場合のN倍にな
る。
【0035】図5(A)のタグ付き命令ストリームは、
もしどこで命令が始まるかを示す既知の基準点が存在す
るときは、命令複合化ユニットによる処理が容易になさ
れる。このような基準点は、命令境界が生じる場所につ
いての正確な知識を与える。多くのコンピュータシステ
ムにおいては、命令境界はコンパイル時間においてコン
パイラによってのみ、また命令が取り出されるときCP
Uによってのみ特に知られる。境界基準点は、特殊な境
界基準方式が採用されないときはコンパイル時間と命令
取出しの間で未知である。このような方式は、図5
(B)に命令境界ビットBにより示してある。図5
(B)に示したように、境界ビットはコンパイル時にコ
ンパイラにより命令ストリーム内に配置され、複合化の
直前に命令アラインメントの基準を与える。一般に、
“スカラブル複合命令セットマシンアーキテクチュア”
および“命令レベル並列プロセッサ用汎用複合化装置”
と題する前記特許出願では、命令境界が不定のテキスト
流との複合化についての検討がなされている。テキスト
流が命令のみを含み、全ての命令が同じ長さの場合のよ
うに命令境界がテキスト流から決定し得る場合は、境界
の定義は不要なことは勿論である。
【0036】図6の命令複合化ユニットの説明 図6は本発明による命令複合化ユニットの実施例の内部
構成を詳細に示す図である。この命令複合化ユニット2
0は、図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複合可能性信号M4
5と、命令5および6が並列に処理され得るか否かを示
す第2複合可能性信号M56を発生する。第4複合解析
器25は、命令6および7が並列に処理され得るか否か
を示す第1複合可能性信号M67と、命令7および8が
並列に処理され得るか否かを示す第2複合可能性信号M
78を発生する。
【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信号になり、論理3
1の出力は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に対するTA
G2値を考慮したものである。行3の場合に対しては、
TAG2は0の値を持たなくてはならない。これは、こ
の場合、M01が0の値を持ち、M12がNOT回路5
5により反転されて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
に供給され、それに記憶される。タグ付き命令が必要と
されるときは、それらは読み出され、またはキャッシュ
12に転送される。取出し送出制御ユニット60は、必
要に応じてキャッシュ12からタグ付き命令を取り出
し、複数の機能命令処理ユニット61,62,63およ
び64の適切な1つまたはそれ以上によるそれらの処理
に対して配列する。取出し送出ユニット60は、取り出
された命令のタグフィールドおよびオペレーションコー
ドフィールドを検討する。タグフィールドが、2つの連
続する命令が並列に処理されることを示すときは、取出
し送出ユニット60は、それらをそれらのオペレーショ
ンコードにより決定されるように機能ユニット61〜6
4の適切なものに割り当て、またそれらは選択された機
能ユニットにより並列に処理される。タグフィールド
が、特定の命令が単独で非並列的に処理されるべきこと
を示すときは、取出し送出ユニッ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中のデータはまた主メモリ
10に送出される。データキャッシュ66は既知のもの
であり、また主メモリ10に対するその動作は既知の方
法で行われる。
【0067】図11は、図10のコンピュータシステム
により処理される複合またはタグ付命令シーケンスの例
を示す図である。図11の例は、次のシーケンスの次の
命令、即ちLoad,Add,Compare,Bra
nch on Condition and Stor
eで構成される。これらは、それぞれ命令I1〜I5と
して識別される。これらの命令に対するタグビットは、
それぞれ1,1,0,1および0である。図10に示し
たマシンの構成ため、Load命令はそれ自身により単
独で処理される。AddおよびCompare命令は複
合命令として扱われ、互いに並列に処理される。Bra
nch and store命令も複合命令として扱わ
れ、互いに並列に処理される。
【0068】図12の表は更に、図11の命令の各々に
対する情報を与える。図12のR/M列は、第1オペラ
ンドを含む汎用レジスタ65の特定のものを識別するた
めに通常使用される各々の命令の第1フィールドの内容
を示している。R/Mフィールドが条件コードマスクを
含むBranch on condition命令の場
合は、例外である。図12のR/X列は、汎用レジスタ
65の第2のものを識別するために通常使用される各々
の命令の第2フィールドの内容を示している。このよう
なレジスタは第2オペランドを収容してもよく、または
アドレスインデックス値(X)を収容してもよい。図1
2のB列は、基本アドレス値を収容する汎用レジスタ6
5の特定のものを識別する各々の第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 compare
命令の処理について考えると、これらの命令は取出し送
出制御ユニット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)の計算を開始し、同時に前回のCo
mpare命令から得られた条件コードを条件コードマ
スクMと比較する。条件コード値がマスクコード値と同
じのときは、必要な分岐条件が得られ、その際分岐ユニ
ット61により計算された分岐アドレスは制御ユニット
60の命令カウンタにロードされる。この命令カウンタ
は、複合命令キャッシュ12からの命令の取り出しを制
御する。一方、条件が満足されないときは(即ち、前回
の命令により設定された条件コードは8の値を有さな
い。)、如何なる分岐も取られず、また制御ユニット6
0の命令カウンタには如何なるアドレスも供給されな
い。
【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 データキャッシュ
フロントページの続き (72)発明者 スタマティス・バシリアディス アメリカ合衆国 ニューヨーク州 ベスタ ル ベスタルロード 717 (72)発明者 バソロメウ・ブラナ アメリカ合衆国 ニューヨーク州 ニワー ク バレイ ダントン ドライブ(番地な し) (56)参考文献 特開 平2−130635(JP,A) 特開 昭53−108254(JP,A)

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】複数の命令を並列に実行する手段を有する
    ディジタル・コンピュータ・システムにおいて、 被処理命令のグループを与える入出力インタフェース
    と、 複数の連続する命令を受ける複数命令の命令レジスタ
    と、各々が命令レジスタ内の特定対の相並ぶ命令を解析
    すると共に、前記対の2つの命令が並列に処理され得る
    か否かを示す複合可能性信号を発生する複数の規則ベー
    ス命令解析機構と、前記複合可能性信号に応答して前記
    命令レジスタ中の各々の命令に対して複数のタグフィー
    ルドからなる個別タグフィールドを発生するタグ発生機
    構と、 前記入出力インタフェース並びに前記命令複合化機構に
    接続されて、前記複合化タグ情報を有する前記命令のグ
    ループを記憶する主記憶装置とを備えるディジタル・コ
    ンピュータ・システム。
  2. 【請求項2】特定の命令処理構成を有し、また各々の命
    令解析機構は、当該コンピュータシステムに対して使用
    される特定の命令処理構成における並列実行に対してど
    のタイプの命令がコンパティブルであるかを定める規則
    を実現する論理回路を備えており、この論理回路は解析
    機構に対して複合可能性信号を発生する請求項1記載の
    ディジタル・コンピュータ・システム。
  3. 【請求項3】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    共に記憶する記憶機構と、 互いに並列に動作する複数の機能命令処理ユニットと、 前記記憶機構に結合され、この記憶機構に記憶された命
    令を、それらのタグフィールドが命令が並列に処理され
    得ることを示すとき各々の機能命令処理ユニットに供給
    する命令発生機構と、 を備えるディジタル・コンピュータ・システム。
  4. 【請求項4】前記記憶機構は、前記命令を含む情報のブ
    ロックを記憶する主メモリと、この主メモリに接続され
    ると共に前記命令発生機構に接続されたキャッシュ記憶
    機構とを備える請求項3記載のディジタル・コンピュー
    タ・システム。
  5. 【請求項5】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    と共に記憶し、前記複合化タグフィールドを前記命令グ
    ループの命令に付加するのに十分なワードサイズを有す
    る主メモリを有する記憶機構とを備えるディジタル・コ
    ンピュータ・システム。
  6. 【請求項6】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    と共に記憶し、前記命令グループを記憶する主メモリと
    前記複合化タグフィールドを記憶するタグメモリとを有
    する記憶機構とを備えるディジタル・コンピュータ・シ
    ステム。
  7. 【請求項7】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    と共に記憶し、前記複合化タグフィールドのためのタグ
    テーブルと複数の前記命令グループを記憶する個別セク
    ションとを備える主メモリを有する、記憶機構とを備え
    るディジタル・コンピュータ・システム。
  8. 【請求項8】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    と共に記憶し、前記命令グループを記憶する第1セクシ
    ョンと前記複合化タグフィールドを記憶する第2セクシ
    ョンとを有するページセクションを備える主メモリを有
    する、記憶機構とを備えるディジタル・コンピュータ・
    システム。
  9. 【請求項9】2つ以上の命令を並列処理可能なディジタ
    ル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    と共に記憶する記憶機構とを備え、 前記命令グループは命令のページであるディジタル・コ
    ンピュータ・システム。
  10. 【請求項10】2つ以上の命令を並列処理可能なディジ
    タル・コンピュータ・システムにおいて、 被処理命令シーケンス中の命令グループを受信する手段
    と、 この受信する手段に接続され、前記命令のグループを受
    信すると共に前記命令のグループのどの命令が並列処理
    され得るかを示す複合化タグフィールドを前記命令のグ
    ループに関係づける命令複合化機構と、 前記命令複合化機構に結合され、前記命令のグループと
    前記関係づけられた複合化タグフィールドとを受信する
    と共に記憶する記憶機構と、 前記記憶機構に接続され、複数の命令を取り出し、また
    前記複合化タグフィールドに応じて複数の命令を並列に
    実行する命令実行手段と、 を備えるディジタル・コンピュータ・システム。
  11. 【請求項11】前記命令実行手段は、前記命令複合化機
    構と非同期的に動作する請求項10記載のディジタル・
    コンピュータ・システム。
  12. 【請求項12】同時に複数の命令を実行できるディジタ
    ル・コンピュータ・システムにおいて、 所定グループの実行命令を記憶するメモリ機構と、 このメモリ機構に接続され、同時に実行されるべき所定
    の命令グループにおける命令を識別する複合化タグ情報
    を発生する命令複合化ユニットと、 前記メモリ機構に設けられると共に前記命令複合化ユニ
    ットに接続され、複合化タグ情報を記憶する複合化タグ
    情報記憶手段と、 前記メモリ機構に接続され、複合化タグ情報に応じて単
    独でまたは同時に命令を実行する命令実行手段とを備
    え、 前記命令複合化ユニットは、前記命令実行手段と非同期
    であるディジタル・コンピュータ・システム。
  13. 【請求項13】前記複合化タグ情報記憶手段は、タグメ
    モリである請求項12記載のディジタル・コンピュータ
    ・システム。
  14. 【請求項14】前記複合タグ情報記憶手段は、タグテー
    ブルである請求項12記載のディジタル・コンピュータ
    ・システム。
  15. 【請求項15】前記複合タグ情報記憶手段は、前記所定
    命令グループに付加されたメモリ機構空間を備える請求
    項12記載のディジタル・コンピュータ・システム。
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 JPH04232532A (ja) 1992-08-20
JPH0778738B2 true 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
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
JP2642529B2 (ja) * 1991-04-30 1997-08-20 株式会社東芝 並列プロセッサーの命令分配処理装置
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
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
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
WO1993019416A1 (en) * 1992-03-25 1993-09-30 Zilog, Inc. Fast instruction decoding in a pipeline processor
JP3730252B2 (ja) 1992-03-31 2005-12-21 トランスメタ コーポレイション レジスタ名称変更方法及び名称変更システム
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
JP3637920B2 (ja) 1992-05-01 2005-04-13 セイコーエプソン株式会社 スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
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
JPH08501167A (ja) * 1992-09-22 1996-02-06 シーメンス アクチエンゲゼルシヤフト 並列コンピュータシステムにおけるアプリケーションプログラムの処理方法
EP0663083B1 (en) * 1992-09-29 2000-12-20 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
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
DE69320991T2 (de) 1992-12-31 1999-01-28 Seiko Epson Corp System und verfahren zur änderung der namen von registern
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
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
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
US5819059A (en) * 1995-04-12 1998-10-06 Advanced Micro Devices, Inc. Predecode unit adapted for variable byte-length instruction set processors and method of operating the same
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
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
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
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
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
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching 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
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
US5887161A (en) * 1997-03-31 1999-03-23 International Business Machines Corporation Issuing instructions in a processor supporting out-of-order execution
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
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
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
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
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
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
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
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
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
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
EP1102165A1 (en) * 1999-11-15 2001-05-23 Texas Instruments Incorporated Microprocessor with execution packet spanning two or more fetch packets
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
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
US7475223B2 (en) * 2005-02-03 2009-01-06 International Business Machines Corporation Fetch-side instruction dispatch group formation
US7269715B2 (en) * 2005-02-03 2007-09-11 International Business Machines Corporation Instruction grouping history on fetch-side 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 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Способ совместного арифметического и помехоустойчивого кодирования и декодирования

Family Cites Families (9)

* 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
JPS53108254A (en) * 1977-03-02 1978-09-20 Nec Corp Information 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
JPH0769824B2 (ja) * 1988-11-11 1995-07-31 株式会社日立製作所 複数命令同時処理方式

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0778738B2 (ja) ディジタル・コンピュータ・システム
EP0496928B1 (en) Compounding preprocessor for cache
US5475853A (en) Cache store of instruction pairs with tags to indicate parallel execution
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
US6542985B1 (en) Event counter
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
JP3663317B2 (ja) コンピュータ・システム
EP0565705B1 (en) Out of order job processing method and apparatus
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
EP0518420A2 (en) Computer system for concurrent processing of multiple out-of-order instructions
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
CA2107305A1 (en) Method and system for nonsequential instruction dispatch and execution in a superscalar processor system
US5809324A (en) Multiple instruction dispatch system for pipelined microprocessor without branch breaks
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
US5278840A (en) Apparatus and method for data induced condition signalling
EP0187713B1 (en) System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US5506974A (en) Method and means for concatenating multiple instructions
EP0365186A2 (en) Apparatus for enhanced tagged data processing in a generalized computer execution unit
EP0992892B1 (en) Compound memory access instructions
EP0992893B1 (en) Verifying instruction parallelism
EP0297890B1 (en) Apparatus and method for data induced condition signaling
CA2040637C (en) Compounding preprocessor for cache
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
Richardson The Fred VHDL Model

Legal Events

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