JP2864421B2 - 命令の多機能ユニットへの同時ディスパッチのための方法及び装置 - Google Patents

命令の多機能ユニットへの同時ディスパッチのための方法及び装置

Info

Publication number
JP2864421B2
JP2864421B2 JP1261908A JP26190889A JP2864421B2 JP 2864421 B2 JP2864421 B2 JP 2864421B2 JP 1261908 A JP1261908 A JP 1261908A JP 26190889 A JP26190889 A JP 26190889A JP 2864421 B2 JP2864421 B2 JP 2864421B2
Authority
JP
Japan
Prior art keywords
instruction
type
processor
cache
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1261908A
Other languages
English (en)
Other versions
JPH02224055A (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.)
AHORO KONPYUUTAA Inc
Original Assignee
AHORO KONPYUUTAA Inc
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 AHORO KONPYUUTAA Inc filed Critical AHORO KONPYUUTAA Inc
Publication of JPH02224055A publication Critical patent/JPH02224055A/ja
Application granted granted Critical
Publication of JP2864421B2 publication Critical patent/JP2864421B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンピュータ・プロセッサーに関する、よ
り詳細には、可変長多機能ユニット・コントロールに関
する。
〔従来の技術〕
中央処理装置(CPU)のデザインには、典型的には浮
動小数点、及び整数プロセッサー・ユニットが含まれる
ものであった。
コンピューターの命令は、いかなる命令発進サイクル
においても、歴史的に組織され、1つの機能ユニットに
のみ配布されてきた。水平的に多重プログラムされたCP
Uであれば、命令発進サイクル毎に、1つ以上の機能ユ
ニットを同時に且つ並行して操作することを可能とす
る。
多機能ユニットの同時操作を供するために、命令語の
幅は多重命令コンポーネントを処理するために増加す
る。しかしながら、全ての実行サイクルに対してビジー
となる各機能ユニットを維持するに必要な動作をプログ
ラムがほとんど含まないので、幅を拡張された命令の流
れは大半の機能ユニットに対してノーオペを含むように
なる。
命令の可変長コード化により、オペレーションなし
(no−ops)の問題は処理されますが、高性能(パイプ
ライン)構造における可変長コード化では、命令がペー
ジ境界を渡れる様になる時、ページフォールトの複雑さ
を増し、全体的な命令サイクル時間は、プログラム・カ
ウンターを前進させ、次の命令キャッシュを起動できる
様にする、現在の命令の長さの決定によって悪影響を受
けることがある。
更に、複雑さを解剖する命令の流れは、完全な命令が
ディスパッチに利用でき、そして命令パイプライン・ス
テージが読出し先行の問題を容易にするために導入され
る、という適切な決定を許容するために、追加的なパイ
プライン・ステージの導入を必要とする。この読出し先
行は、取られた分岐命令の存在下における追加的なペー
ジ・フォールトの複雑さおよび潜在性の結果として生ず
るものである。このため、可変長命令コード化の一般的
概念は、水平的に多重プログラムされた機械の効率の限
定的高揚を供するのみであり、又同様に、実際のプログ
ラムが実行され、多重機能ユニットにディスパッチされ
る時に自己制限をする傾向を持つ。
〔発明が解決しようとする課題〕
本発明の装置及び方法は、命令ストリームの可変長コ
ンポーネントへの、自然の配列抑制を利用して、多機能
ユニットへの命令の効率的な同時ディスパッチを行うも
のである。命令は、最小命令サイズ、4バイトの2つの
乗数の累剰によってのみ構成される。本方法及び装置に
従う最大長命令語は、顕著な静力学的に配置されたフィ
ールドにより構成される。分離したフィールドは、各種
の機能ユニット用の個々のデコーダ/コントローラーに
向けられる。命令のフォーマットは、整数プロセッサー
命令のみを含有する、長さが4バイトの長語命令により
構成される。第2の4語フォーマットには、2つの分離
した整数プロセッサー命令を有するフォーマットと同
様、整数及び浮動小数点ユニット命令を有するフォーマ
ットが含まれる。命令語内のフィールド当たり1ビット
により、命令の長さ及びフォーマットが示される。
機能ユニットの各々には、デコーダー/コントローラ
ーが含まれれる。最大限可能な長さの以下の命令をデイ
スパッチする時には、フィールドのいくらかが欠落する
ことがある。
各機能ユニットのデコーダー/コントローラーは、独
自にフィールドが欠落しているかどうかを測定し、そう
した場合にはこのデコーダー/コントローラーは、その
関連機能ユニットにワークをディスパッチせずに、あた
かもno−op(操作なし)が存在する様に応答する。本発
明に従う装置は、命令全体が常に単一キャッシュ・サイ
クルでアクセスできる様に、可能な最大の幅及び長さを
命令に応答する幅を有する命令キャッシュを含有する。
命令フェッチ・サイクルは、プログラム・カウンター
(PC)を、新規の通常は非連続値(転送サイクル)で充
填するものと、或いは連続サイクルで充填するものとに
分類される。連続命令フェッチ・サイクルは、同じキャ
ッシュ・ラインを以前のサイクルとして参照するもの
と、次のキャッシュ・ラインに前進するものとに分類さ
れる。
PCは、キャッシュを指標付けする上位部分と、アドレ
スされたキャッシュ・ライン内の希望の命令の適正な開
始点を同定する下位部分により構成される。PCのより上
位の部分は、各々のサイクルについて1(×4)だけ増
分するか(ビット02)、或いは新しいアドレスでロード
して不変にしておくことができる。連続実行中、現在デ
ィスパッチされている命令が、キャッシュの偶数側から
取られた長語命令である場合には、上方のPCは不変のま
まである。連続実行中、ディスパッチされている命令
が、キャッシュの奇数側からの32ビット命令であるか、
或いは4語命令である場合には、上方のPCは1(×4)
だけ増分される。上方のPCは、取られた分岐、或いは呼
び出しの結果として新規のアドレスでロードされる。目
標アドレスは、上位部分及び下位部分により構成され
る。現行サイクルが次のキャッシュ・ラインに移送もせ
ず、前進もしない場合には(新しいキャッシュ・ライン
・サイクルではない)、増分子の出力は無視され、上記
のPCは不変のままで、上記のPCは先行命令の長さを反映
するために最新化される。
現行サイクルが、次のキャッシュ・ラインに前進する
場合には、増分子の出力は上記のPCにロードされる一
方、下位のPCは0にリセットされる。
命令キャッシュには、フェッチ・ラインの潜在的に非
消耗部を捕獲する先取りバッファーが後続する。先取り
バッファーは、命令キャッシュ・マイナス最短命令フォ
ーマットの長さと同じ幅である。先取りバッファーは、
新しいキャッシュ・ライン・サイクルの間に、命令キャ
ッシュの出力からロードされる。
各々の機能ユニット・デコーダー/コントローラー
は、命令キャッシュの生の出力から直接にでも、又先取
りバッファーの出力からでも、適当するフィールドの選
択ができる様にする、マルチプレクサ・ネットワークに
接続されている。新しいキャッシュ・ライン・サイクル
の間、マルチプレクサーは1サイクルについて効率的に
先取りバッファーをバイパスして、命令キャッシュの生
の出力から適当するフィールドを選択する。
代替的に、マルチプレクサーは先取りバッファーの出
力から適当するフィールドを選択する。
この様にして、本発明に従う装置及び方法は、必要な
命令の流れを多機能ユニットに供給するためのコンパイ
ラーに課されらる抑制、及び複雑さを軽減する一方で、
多機能ユニットを有するCPUの操作における効率性を高
めるものである。
〔課題を解決するための手段〕
本発明に従う同時ディスパッチ・ユニットのブロック
・ダイアグラム50が図1に示されている。
命令データーは、命令データーの64ビットにより構成
される72ビット語、及び下記に検討され、図2に示され
ている様な8ビットのパリティーを含有する、プログラ
ムメモリー52の様なソースより受信される。ソース52に
より供給された命令は、偶数及び奇数セクション56及び
58をその中に有する命令キャッシュ54により受信され
る。命令データーのソース52からキャッシュ54への転送
は、キャッシュ・コントロール・エレメント60により抑
制される。
命令は、メモリー貯蔵ユニット、バッファー或いは模
範的キャッシュ54に記憶され、ここでは命令は、シング
ル64ビット4語命令、或いは2つの32ビット長語命令に
より構成される64ビット・メッセージを含有する。命令
キャッシュ54の奇数セクション58に記憶される命令は、
浮遊小数点プロセッサー62により直接受信される。
命令キャッシュ54の偶数部分56に記憶される命令は、
命令が偶数セクション56より、整数プロセッサー66によ
り受信される時には、命令キャッシュ54の偶数部分56、
或いは奇数部分58からの命令を、選択的に整数プロセッ
サー66及びFPプロセッサー62に供給するマルチプレクサ
ー64により受信される。奇数セクション58の命令は、先
取りレジスター70に記憶される。結果として起こる命令
は、整数プロセッサー66により、先取りレジスター70に
より受信されるので、プログラム・カウンター・レジス
ター74は、8ではなくて0だけ増分され、これにより新
しい命令の命令キャッシュ54へと転送を禁止する。
整数プロセッサー66のより詳細な概要は、同様に図1
に示されているが、ここではこの整数プロセッサーは、
リード68のシグナルにより使用可能とされる時、32ビッ
ト命令をマルチプレクサー64の出力、或いは先取りレジ
スター70の出力より受信する命令レジスター102を含
む。命令レジスター102に記憶される命令は、実行ユニ
ット100、デコード及びコントロール論理ユニット65、
及び他の論理エレメントにより受信される。以前に述べ
た命令レジスター102内の命令の結果として生じる命令
のアドレスは、デコード・プログラム・カウンター122
に記憶される。フェッチ・プログラム・カウンター104
に記憶されるアドレスは、例えば以前に検討され、下の
表に図示されている様に、命令それ自身に依存する論理
プロセスにより処理される時に、レジスター102の命令
の結果として生じる。本発明に従えば、64ビット命令
は、バイト当たり8ビットにより構成される、8バイト
のデーターに対応して、命令キャッシュ54にロードされ
る。そうであるので、PCフェッチ・レジスター74は、命
令が8のアドレス・インターバルで受信される様に、0
の論理値で最も重要性のないビット00,01,02を維持す
る。
一般的に、命令は整数プロセッサー64を通り、連続的
に命令レジスター102、フェッチ・プログラム・カウン
ター104、プログラム・カウンター・アジャスト論理120
及びデコード・プログラム・カウンター122、実行プロ
グラム・カウンター124、最後の命令プログラム・カウ
ンター126及びトラップ・プログラム・カウンター128を
経由して進む。デコード・プログラム・カウンター122
の3番目に重要でないビット02を除いて、プログラム・
カウンター122,124,126及び128は、当業者間ではトラッ
プ或いはストール(立往生)条件として知られる条件か
らの復帰という様な、他の使用のための現行、及び以前
の命令の命令ステータスを分析するため、示されてはい
ないが、整数プロセッサーの別の所で使用される情報を
提供する。
偶数長語命令が、マルチプレクサー64を経由して、リ
ード103の命令キャッシュ54から受信された場合、レジ
スター102に記憶された命令のビット31の状態は、この
命令が長語であるか長語命令であるかを示す。
ビット02の状態は、命令レジスター102からフェッチ
・プログラム・カウンター104まで維持される。プログ
ラム・カウンター・アジャスト論理102は、その見返り
としてレジスター102からの命令に応答するデコード、
及びコントロール論理65により供給される、得られた分
岐シグナル121に応答して、デコード・プログラム・カ
ウンター(DEC PC)122のビット02のみを選択的に修飾
する。次の命令が連続的に供給された命令であるか、或
いは得られた分岐の結果であるのかを示すのに役立つ、
リード102の得られた分岐シグナルは、マルチプレクサ
ー119を制御する。分岐が得られた場合には、DEC PC12
2のビット02の条件は、マルチプレクサー119経由の間維
持される。
分岐命令が得られる場合以外では、命令レジスター・
ビット31も、プログラム・カウンター・ビット02のどち
らも設定されず、つまり読み取られるべき次の命令が、
命令キャッシュ54からの隣接奇数命令であることを示す
場合には、ビット02は、デコード・プログラム・カウン
ター122内に設定され、デコードされた命令が先取りレ
ジスター70を経由して、命令キャッシュ54の奇数部分58
から来ていることを示す一方、マルチプレクサー64は、
リード68のシグナルに従って使用不能にされる。マルチ
プレクサー106を同時に終了するには、プログラム・カ
ウンター104の現行値に、アダー108により加えられ、そ
の見返りにマルチプレクサー110の選択により、フェッ
チ・プログラム・カウンター104に、変えられず復元さ
れる0の数値を選択する。リード121の分岐シグナルの
状態の決定は、そこで命令のデコーディングが知らされ
ることになる、リード101の実行ユニット100から供給さ
れる条件コードの状態と同様に、命令レジスター102か
らのシグナルの一部をデコードすることにより行われ
る。
分岐が奇数長語に直接行われる場合には、リード68の
シグナルにより使用不能にされ、リード105のジクナル
により選択される時に、命令はマルチプレクサー64を経
由して、リード107の命令キャッシュ54の奇数部分58よ
り受信される。上記で検討された様に、リード105のシ
グナルは、マルチプレクサー119の操作により維持され
る、デコード・プログラム・カウンター122のビット02
より派生する。フェッチ・プログラム・カウンター104
からマルチプレクサー119に供給されるアドレスは、命
令レジスター102により供給される命令に加えられたフ
ェッチ・プログラム・カウンター104の命令値の、アダ
ー112による追加による結果として生じる直接分岐によ
り生じる事がある。
結果として生じるアドレスは、同様にアダー112の出
力でシグナルをマルチプレクサー110を経由して、フェ
ッチ・プログラム・カウンター104の入力にパスする、
デコード及びコントロール65の制御下にあるマルチプレ
クサー114により選択され、ここで結果としての実行ク
ロック・サイクルで記憶され、前進させられる。デコー
ド及びコントロール論理65、及び実行ユニット100によ
り決定された条件に従って、間接的な分岐が得られ、こ
こで間接的分岐アドレスは、実行ユニット100の内部レ
ジスターRA(示されてはいない)より供給され、対応し
て使用可能にされるマルチプレクサー114、及び110を経
由して、フェッチ・プログラム・カウンター104にパス
される。
命令データー語90は、図3に示されているが、これは
選択的に2つの長語命令、各々32ビットの91及び92、或
いはシグナル64ビット4語93により構成される。8ビッ
ト・エラー検知パリティー語94は、簡単にするために命
令データーの後続する検討からは除去されるが、65ビッ
トの命令に付加されるか、或いは付加された。長語91、
或いは92はそれぞれ4バイトのデーター95,96,97及び98
により構成されるが、ここで最も重要なバイトは、バイ
ト0である。各々のバイト95〜98は、8ビットにより構
成されるが、ここではビット7が最も重要なビットであ
る。
この命令のフォーマットは、モトローラ68000データ
・フォーマットに対応するが、これの対応するデータ・
シートは参照により組み込まれている。
本発明に従う、CPUの同時ディスパッチ・ユニットに
よって支持される命令の長さは、64ビット4語整列命
令、或いは32ビット長語整列命令により構成される。命
令は総称的に、整数或いは浮動小数点のどちらかとして
分類される。整数命令タイプは、整数レジスター対レジ
スター、分岐、及びメモリー参照命令により構成され
る。
浮動小数点命令タイプは、浮動小数点レジスター対レ
ジスター命令により構成される。長語整列命令は、整数
命令タイプによってのみ構成される。4語整列命令フォ
ーマットは、4語命令の半分の、偶数(最も重要)長語
における整数命令、及び4語命令の半分の奇数(最も重
要でない)長語における浮動小数点命令により構成され
る。長語形式用には、フェッチされた命令は、整数プロ
セッサーに送られる。4語形式用には、偶数(最も重
要)長語命令が、整数プロセッサー66に送られる。奇数
長語命令は、浮動小数点プロセッサー62にのみ送られ
る。
命令を同時に整数プロセッサー66、及び浮動小数点プ
ロセッサー62の双方に、命令キャッシュ54の単一命令語
から転送することにより、より性能が高まり、本発明は
同時に、浮動小数点プロセッサーへの/からの、メモリ
ー参照を制御できる様に、命令キャッシュの偶数部分56
から浮動小数点プロセッサーへ、選択ビットを転送す
る。
整数プロセッサ66は、命令キャッシュ54へ4語参照を
行う。外部先取りバッファー70は、2つの整数命令が整
列4語境界に当たる場合には、奇数長語を保持するため
に使用される。命令が、命令キャッシュからフェッチさ
れるにつれて、整数プロセッサーは命令キャッシュ54を
アドレスするために使用される、29ビットPC SRCデー
タ・バスにより構成される、リード72のシグナルを経由
して、次のフェッチ・アドレスを規定する。
整数プロセッサー66に接続されたマルチプレクサー64
は、命令キャッシュ54の偶数、或いは奇数部分から、フ
ェッチ命令を選択するために独占的に使用される。奇数
部分58は、得られた分岐目標のフェッチの間においての
み選択ができる。リート68の先取りした選択シグナル
は、命令をキャッシュ54、或いは先取りレジスター70に
より選択するめに使用される。先取りレジスター70は、
先行の命令ディスパッチが4語整列32ビット命令であ
り、現行のフェッチが得られた分岐目標にもるものでな
い場合に選択される。先取り選択シグナルは同様に、キ
ャッシュ・コントロール60を含めて、メモリー管理ユニ
ットに整数プログラムが現行サイクルにおいて命令キャ
ッシュを参照しておらず、それ故に、現行フェッチに関
連するキャッシュ・ミス、或いは例外の生成を禁止する
という信号を送る。先取りレジスター、及び外部プログ
ラム・カウンターは、通常は整数プロセッサー、或いは
浮動小数点プロセッサーが、フェッチ・ストール(立ち
往生)のシグナルを送っていないという条件の下にロー
ドされる。リード2の先取りレジスタ選択シグナル、及
びマルチプレクサー64コントロールは、通常整数プロセ
ッサー66により供給される。しかしながら、命令キャッ
シュのミスの間では、キャッシュ・コントロール60を含
めて、メモリー管理ユニットが、メモリー管理ユニット
PC SRCの使用中のシグナルが確保されるという条件
で、復帰ミス命令によってこれらのコントロールを行う
責任を持つ。
以下の詳細な図面1,2,3及び4に、整数プロセッサー
・ハードウェアの必要事項が示されている。
以下の状態式が、先取りコントロール機能性を定義す
る。
FUNCTION次の_IP_PC(2):ブリーンの: BEGIN もし得られたデコード分岐ならば、 そうであれば 次の_IP_PC(2):=PCSRC(2) そうでなければ 次の_IP_PC(2):=誤り: END: FUNCTION次_もし得られた分岐なら:ブリーン: BEGIN もし得られたデコード分岐 そうであれば 次の If.taken branch:=正しい そうれなければ 次の If.taken branch:=誤り END: FUNCTION IP_PREIR_set:ブリーン: BEGIN If(−(dec.f)&−(decPC(2))&(If.taken b
ranch) そうであれば IP_PREIR_set=正しい そうでなければ IP_PREIR_set=誤り END: PROCEDURE DEC_PC割当て: BEGIN IF IP_PREIR_セットの場合 そうであれば 次の_DEC_PC:=Dec_PC+1 そうでなければ 次の_DEC_PC:=Fetch_PC: END: PROCEDURE state_transition: BEGIN もし−fetch stall&−exec stallならば そうであれば BEGIN IP_PC(2):=次の_IP_PC(2): DEC_PC:=次の_DEC_PC: If taken_branch:=次の_If taken branch: そうでなければ BIGIN IP_PC(2):=IP_PC(2): DEC_PC:=DEC_PC: If taken_branch:=If taken_branch: END: PROCEDURE 割当て_先取りフェッチ_コントロール: BEGIN もし MMU_PCSRC_Busy そうであれば BEGIN PC(2):MMU_PC(2): PREIR_set:=MMU_PREIR_set: END: そうでなければ BIGEN PC(2):=IP_PC(2): PREIR_set:=IP_PREIR_set: END: 先取り命令レジスター選択コントロールは、先取りレ
ジスター70を選択するための整数プロセッサー66によ
り、整数プロセッサー命令レジスター(示されてはいな
い)にロードされるべき次の命令として供給する。
プログラム・カウンター・ビット2は、命令キャッシ
ュの奇数長語を選択するための、整数プロセッサー66よ
りのコントロールを、整数プロセッサー命令レジスター
に提議(Vote)されるべき次の命令として供給する。先
取りレジスター・コントロールは、状態の等式で示され
る様に、上の表4のコードに表される。
整数プロセッサー66、及び浮動小数点プロセッサ62
は、それぞれデコーダー/コントローラー部分65及び63
を含有するが、ここで受信される命令語はデコードされ
る。
本発明の実施態様では、浮動小数点プロセッサー62
は、同様に図3に示してある様に、マルチプレクサー64
により供給される命令シグナルを供給する。浮動小数点
プロセッサー62は、シグナルINST31:00を命令キャッシ
ュ54の奇数部分58から受信する命令レジスター76を含有
するが、ここで浮動小数点命令は、その後浮動小数点プ
ロセッサーのデザインに従って、演算レジスター78及び
乗算レジスター80に送られる。浮動小数点命令レジスタ
ー76は、同様にマルチプレクサー64を介して、命令キャ
ッシュ54の偶数部分よりの命令シグナルINST INT 31:0
0,15,13:11を受信するが、ここで貯蔵シグナルは入力出
力(I/O)コントロール・レジスター82により受信され
る。I/Oコントロール・シグナルは、その後システム・
シグナルのコントロールのために使用される。
本発明の教示に従う、当業界の通常技術の1つによっ
て行われる他の変更形態、及び代替形態は、本発明の観
点の中に入るものと考えられ、これは以下のクレームに
よって限定されるものではない。
【図面の簡単な説明】
本発明の以上の、及び他の特徴は図面共々以下に述べる
発明の詳細な説明を読むことにより、より良く理解でき
るであろう。ここでは: 図1は、本発明の1つの実施態様に従う、中央処理装置
の命令ディスパッチ部分のブロック・ダイアグラムであ
る。 図2は、本発明の1つの実施態様に従う、命令フォーマ
ットを定義するチャートである:そして、 図3は、同様に整数プロセッサー命令ストリームよりの
シグナルを含む。命令の浮動小数点プロセッサーを経由
する流れを示すチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・マントン アメリカ合衆国01752 マサチューセッ ツ州 マールボロ、デノンコート・スト リート 112 (72)発明者 ミッシェル・カヘイヤン アメリカ合衆国02333 マサチューセッ ツ州イー・ブリッジウォーター、セダ ー・ストリート 394 (72)発明者 リチャード・ジー・バール アメリカ合衆国02139 マサチューセッ ツ州 ケンブリッジ、#3 ソデン・ス トリート 16 (72)発明者 バリー・ジェイ・フライブ アメリカ合衆国01886 マサチューセッ ツ州 ウエストフオード、パーカー・サ ークル 2 (56)参考文献 1988 IEEE INTERNATI ONAL CONFERENCE ON COMPUTER DESIGN:V ISI IN COMPUTER & PROCESSORS P307−310 THE SECOND INTERN ATIONAL CONFERENCE ON ARCHITECTUAL S UPPORT FOR PROGRAM MING LANGUAGES AND OPERATING SYSTEMS P199−204 ELECTRONICS VOL.58 No.47 1985 P43−45 (58)調査した分野(Int.Cl.6,DB名) G06F 15/16 WPI EPAT

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】第1のタイプまたは第2のタイプの各命令
    部分である第1の命令部分および第2の命令部分を備え
    る複数の命令部分の1つを有した命令語を供給するため
    の手段と、 前記命令語を受信するためのものであって、前記第1お
    よび第2の命令部分のそれぞれをストアするための2つ
    の命令キャッシュ領域を有する命令キャッシュと、 前記命令キャッシュから前記第1のタイプの命令部分を
    選択的に受信して処理するための第1プロセッサーと、 前記命令キャッシュから前記第2のタイプの命令部分を
    選択的に受信して処理するための第2プロセッサーと、 前記第1プロセッサが前記2つの命令キャッシュレジス
    タの第2の命令キャッシュ領域から前記第1のタイプの
    前記第2の命令部分を受信する時に同時に、前記2つの
    命令キャッシュレジスタの第1の命令キャッシュ領域か
    ら前記第1のタイプの第1の命令部分を受信するための
    先取りレジスターであって、前記第1プロセッサーによ
    る前記第1のタイプの前記第2の命令部分の処理の後に
    前記第1のタイプの前記第1の命令部分を前記第1プロ
    セッサーに転送する先取りレジスターと、 前記命令キャッシュ中の命令語を指示するプログラム・
    カウンター・レジスターと、 前記プログラム・カウンター・レジスターをインクリメ
    ントするための手段とを備え、 前記プログラム・カウンター・レジスターは、前記第1
    プロセッサーによる前記第1のタイプの前記第2の命令
    部分の処理の後に前記先取りレジスターが前記第1のタ
    イプの前記第1の命令部分を前記第1プロセッサーに転
    送した時は、前記インクリメントするための手段を無視
    するものである ことを特徴とする多重同時命令ディスパッチ用の装置。
  2. 【請求項2】前記2つの命令キャッシュ領域から、前記
    第1および第2のプロセッサーにそれぞれ、前記命令部
    分の前記第1のタイプと前記命令部分の前記第2のタイ
    プを選択的に供給するための手段を更に備えることを特
    徴とする請求項1の装置。
  3. 【請求項3】前記2つの命令キャッシュ領域の1つか
    ら、前記第1および第2プロセッサーの1つに、選択的
    に命令を供給するための手段を更に備えることを特徴と
    する請求項1の装置。
  4. 【請求項4】前記第1プロセッサーは、受信した第1の
    タイプの命令に応答して条件コード信号及び命令コード
    ・デコード信号を供給し、 前記選択的に命令を供給するための手段は、前記条件コ
    ード信号及び命令コード・デコード信号に応答すること
    を特徴とする請求項3の装置。
  5. 【請求項5】前記第1プロセッサーは、プログラム・カ
    ウンター信号を供給するための手段を含むパイプライン
    ・プロセッサーを備えることを特徴とする請求項4の装
    置。
  6. 【請求項6】前記プログラム・カウンター信号を供給す
    るための手段は、前記プログラム・カウンターをゼロ1
    つだけ、そして次の命令タイプの増分値および次の命令
    語の増分値を選択的にインクリメントすることを特徴と
    する請求項5の装置。
  7. 【請求項7】前記命令語は、バイト当たり8ビットの8
    バイトからなる64命令ビットを含み、 前記第1および第2のタイプの命令は、バイト当たり8
    ビットの4バイトからなり、 前記選択的に命令を供給するための手段は、各々の命令
    語バイトをアドレスするための手段を含み、 前記次の命令タイプの増分値が4であり、 前記次の命令語の増分値が8であることを特徴とする請
    求項6の装置。
  8. 【請求項8】前記命令キャッシュからの第1タイプの命
    令を受信し、そして前記命令カウンターがゼロだけイン
    クリメントされる時に、前記第1タイプの命令を前記第
    1プロセッサーに供給するための先取りレジスター手段
    を更に含むことを特徴とする請求項6の装置。
  9. 【請求項9】前記第1プロセッサーは、前記命令コード
    ・デコード信号および前記条件コード信号に応答して、
    前記プログラム・カウンター信号を供給するための手段
    に分岐信号を供給するための分岐手段を更に含み、 前記分岐信号は、次の命令タイプの前記増分値の整数倍
    である ことを特徴とする請求項8の装置。
JP1261908A 1988-10-07 1989-10-06 命令の多機能ユニットへの同時ディスパッチのための方法及び装置 Expired - Lifetime JP2864421B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/255,105 US5051885A (en) 1988-10-07 1988-10-07 Data processing system for concurrent dispatch of instructions to multiple functional units
US255105 1999-02-22

Publications (2)

Publication Number Publication Date
JPH02224055A JPH02224055A (ja) 1990-09-06
JP2864421B2 true JP2864421B2 (ja) 1999-03-03

Family

ID=22966857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1261908A Expired - Lifetime JP2864421B2 (ja) 1988-10-07 1989-10-06 命令の多機能ユニットへの同時ディスパッチのための方法及び装置

Country Status (4)

Country Link
US (1) US5051885A (ja)
EP (1) EP0363222B1 (ja)
JP (1) JP2864421B2 (ja)
DE (1) DE68927492T2 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
JP2835103B2 (ja) * 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
CA2037708C (en) * 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
DE69130588T2 (de) * 1990-05-29 1999-05-27 Nat Semiconductor Corp Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür
JP2771683B2 (ja) * 1990-07-17 1998-07-02 三菱電機株式会社 並列処理方式
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
EP0477598A2 (de) * 1990-09-26 1992-04-01 Siemens Aktiengesellschaft Befehlswerk für einen n Prozessorelemente aufweisenden Prozessor
EP0498654B1 (en) * 1991-02-08 2000-05-10 Fujitsu Limited Cache memory processing instruction data and data processor including the same
JP2925818B2 (ja) * 1991-04-05 1999-07-28 株式会社東芝 並列処理制御装置
ES2143490T3 (es) 1992-08-12 2000-05-16 Advanced Micro Devices Inc Decodificador de instrucciones.
US5617549A (en) * 1992-10-06 1997-04-01 Hewlett-Packard Co System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
US5410721A (en) * 1992-12-24 1995-04-25 Motorola, Inc. System and method for incrementing a program counter
US5721854A (en) * 1993-11-02 1998-02-24 International Business Machines Corporation Method and apparatus for dynamic conversion of computer instructions
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
US5510934A (en) * 1993-12-15 1996-04-23 Silicon Graphics, Inc. Memory system including local and global caches for storing floating point and integer data
JP3462245B2 (ja) * 1993-12-22 2003-11-05 株式会社リコー 中央演算処理装置
US5590351A (en) * 1994-01-21 1996-12-31 Advanced Micro Devices, Inc. Superscalar execution unit for sequential instruction pointer updates and segment limit checks
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5590358A (en) * 1994-09-16 1996-12-31 Philips Electronics North America Corporation Processor with word-aligned branch target in a byte-oriented instruction set
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US6006324A (en) * 1995-01-25 1999-12-21 Advanced Micro Devices, Inc. High performance superscalar alignment unit
US5867726A (en) 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5761469A (en) * 1995-08-15 1998-06-02 Sun Microsystems, Inc. Method and apparatus for optimizing signed and unsigned load processing in a pipelined processor
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
JP3535354B2 (ja) * 1997-08-27 2004-06-07 株式会社東芝 ストール検出表示装置及び方法
US6292845B1 (en) * 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US6282633B1 (en) * 1998-11-13 2001-08-28 Tensilica, Inc. High data density RISC processor
GB2352066B (en) * 1999-07-14 2003-11-05 Element 14 Ltd An instruction set for a computer
WO2001069372A2 (en) * 2000-03-10 2001-09-20 Koninklijke Philips Electronics N.V. Method for compiling a program
DE10043003A1 (de) 2000-09-01 2002-03-14 Infineon Technologies Ag Programmgesteuerte Einheit
US7328314B2 (en) * 2002-06-19 2008-02-05 Alcatel-Lucent Canada Inc. Multiprocessor computing device having shared program memory
US8086825B2 (en) * 2007-12-31 2011-12-27 Advanced Micro Devices, Inc. Processing pipeline having stage-specific thread selection and method thereof
US20090172370A1 (en) * 2007-12-31 2009-07-02 Advanced Micro Devices, Inc. Eager execution in a processing pipeline having multiple integer execution units
US7793080B2 (en) * 2007-12-31 2010-09-07 Globalfoundries Inc. Processing pipeline having parallel dispatch and method thereof
US8589950B2 (en) 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
CN103336681B (zh) * 2013-07-03 2015-11-25 同济大学 针对采用变长指令集的流水线结构处理器的取指方法
US10235232B2 (en) * 2014-02-10 2019-03-19 Via Alliance Semiconductor Co., Ltd Processor with approximate computing execution unit that includes an approximation control register having an approximation mode flag, an approximation amount, and an error threshold, where the approximation control register is writable by an instruction set instruction
KR102063856B1 (ko) * 2014-07-30 2020-01-08 모비디어스 리미티드 명령어 사전인출을 위한 방법 및 장치
US11314516B2 (en) * 2018-01-19 2022-04-26 Marvell Asia Pte, Ltd. Issuing instructions based on resource conflict constraints in microprocessor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1233270A (en) * 1985-03-18 1988-02-23 Vojin G. Oklobdzija Register selection mechanism and organization of an instruction prefetch buffer
US4926323A (en) * 1988-03-03 1990-05-15 Advanced Micro Devices, Inc. Streamlined instruction processor

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
1988 IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN:VISI IN COMPUTER & PROCESSORS P307−310
ELECTRONICS VOL.58 No.47 1985 P43−45
THE SECOND INTERNATIONAL CONFERENCE ON ARCHITECTUAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS P199−204

Also Published As

Publication number Publication date
EP0363222A3 (en) 1992-07-01
US5051885A (en) 1991-09-24
EP0363222A2 (en) 1990-04-11
EP0363222B1 (en) 1996-11-27
DE68927492T2 (de) 1997-04-03
JPH02224055A (ja) 1990-09-06
DE68927492D1 (de) 1997-01-09

Similar Documents

Publication Publication Date Title
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
EP0380859B1 (en) Method of preprocessing multiple instructions
JP3977016B2 (ja) 仮想レジスタ番号を用いて論理レジスタ番号を物理レジスタ番号にマッピングするように構成されるプロセッサ
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
JP3618822B2 (ja) 可変サイズのオペランドを利用してオペレーションを実行するプロセッサ、ならびにそれにおけるデータ処理装置およびオペランドデータを処理する方法
US5185872A (en) System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy
US6349382B1 (en) System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order
US6192465B1 (en) Using multiple decoders and a reorder queue to decode instructions out of order
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US6157994A (en) Microprocessor employing and method of using a control bit vector storage for instruction execution
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
US6728872B1 (en) Method and apparatus for verifying that instructions are pipelined in correct architectural sequence
JP2742393B2 (ja) オペレーションの処理システム及び方法
WO1985000453A1 (en) Data processing system
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
JP2847974B2 (ja) データ処理装置
JPH07120278B2 (ja) データ処理装置
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JP2682217B2 (ja) マイクロプロセッサ
US6604191B1 (en) Method and apparatus for accelerating instruction fetching for a processor
JP2742392B2 (ja) オペレーションの処理システム及び方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081218

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20091218

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20091218

Year of fee payment: 11