JP2002041283A - サブパイプライン変換構造、及びバイナリの互換性を持たせる方法 - Google Patents

サブパイプライン変換構造、及びバイナリの互換性を持たせる方法

Info

Publication number
JP2002041283A
JP2002041283A JP2001193066A JP2001193066A JP2002041283A JP 2002041283 A JP2002041283 A JP 2002041283A JP 2001193066 A JP2001193066 A JP 2001193066A JP 2001193066 A JP2001193066 A JP 2001193066A JP 2002041283 A JP2002041283 A JP 2002041283A
Authority
JP
Japan
Prior art keywords
architecture
migrant
execution
base
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001193066A
Other languages
English (en)
Inventor
Donald E Steiss
イー、ステイス ドナルド
Jr Laurence Ray Simar
レイ シマー、ジュニア ローレンス
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2002041283A publication Critical patent/JP2002041283A/ja
Pending 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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/3822Parallel decoding, e.g. parallel decode units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 異なる世代のDSP間にバイナリ互換性をも
たせる。 【解決手段】 現世代及び将来の世代の間のDSPの間
のバイナリの互換性を持たせるサブパイプライン変換の
実施例を開示した。取出しパケットがメモリ(「命令メ
モリ」)から取出されたとき、取出しパケット全体に
は、この取出しパケットに対する要請が命令メモリに対
して出された時点に於ける実行モード(「実行モー
ド」)に従って動作モード(ベース命令セット又はマイ
グラント命令セット)が割当てられる。命令メモリから
の取出しパケットが実行パケットにパーズされ、両方の
実行モード(ベース及びマイグラント)が共有するデー
タ通路(「共有のデータ通路」)にある(ディスパッチ
された)実行ユニットによって分類される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は全般的に命令セッ
ト・アーキテクチャ、更に具体的に言えば、VLIWに
於けるサブパイプライン及びパイプライン形命令実行に
関する。
【0002】
【従来の技術及び課題】従来、VLIW(非常に長い命
令ワード)プロセッサは次の属性群によって定義されて
いる。即ち、各々の命令で多数の独立の動作(operatio
n)を特定する能力である(MultiOp命令)。V
LIWアーキテクチャはホリゾンタル・マシンであり、
各々のワイドな命令ワード又はMultiOpは幾つか
の動作又はOpで構成されている。MultiOp内の
全てのOpは同じ実行スケジュールで発せられる。プロ
グラムは動作に対して特定の単位以外の待ち時間を想定
し、実際、こういう想定が成立するときにだけ正確であ
る。スタティックのコンパイル時間動作スケジュール
は、動作の待ち時間及び資源が利用出来るかどうかを考
慮に入れることが必要である。この為、ハードウエア
が、機能ユニットの数及び動作の待ち時間に関してプロ
グラムに組込まれた想定に対して正確に一致することが
必要になる。多数のパイプライン形動作がサイクル毎に
出されるにもかかわらず、インターロック・ハードウエ
アは全くない。
【0003】こういう形式のアーキテクチャの本来の魅
力は、比較的簡単で低廉な制御ハードウエアを用いて、
大量の命令レベルの並行性(ILP)を開発することが
出来ることである。サイクル毎に6つ又は更に多くの動
作を出すことが出来る多数のVLIW製品[4、5、
3]が組立てられたが、こういうレベルのILPでスー
パスカラー製品を構成することが可能であるとは実証さ
れていない[18、2、14、8、7、6]。更に、利
用し得るハードウエア資源及び正確な動作の待ち時間の
コンパイラへの完全な公開が、高度に最適化したスケジ
ュールを可能にする。
【0004】こういう性質そのものから、VLIWプロ
セッサは製品としては関心が限られているという考えが
生まれてきた。ハードウエアに関してプログラムに組込
まれた厳格な仮定は、異なる技術を用いて異なる時点に
組立てられ、その為に異なる待ち時間を持つプロセッサ
の間でのオブジェクト・コードの互換性を妨げるものと
見なされている。1個のプロセッサで考えても、コンパ
イラが、コンパイル時間に固定された待ち時間をスケジ
ュールする必要があることは、キャッシュ・ヒット又は
ミスが起こるかどうかによって、その待ち時間が大幅に
変化することがあるロードのような動作では問題であ
る。この後に述べた問題の為、VLIW製品は、どんな
ものにしてもインターロック・ハードウエアがないとい
う理想に固執することは稀である。この代わりに、VL
IWアーキテクチャを構成するとき、ロードが予想より
も長くかかるとき、プロセッサのインターロック及びス
トールは普通である。
【0005】従来の考えでは、ダイナミック・スケジュ
ールはVLIWプロセッサには適用出来ないとするもの
であった。VLIWプロセッサでダイナミック・スケジ
ュールをどう実施するかを理解することに向かう第1歩
は、従来のVLIWプロセッサと、VLIWアーキテク
チャの概念の違いを認識することである。VLIWプロ
セッサは、特定の資源群(機能ユニット、バス等)と、
種々の動作が実行されるときの特定の実行の待ち時間と
によって定められる。VLIWプロセッサに対するプロ
グラムが、将にこういう資源及び待ち時間を想定してコ
ンパイルされ、スケジュールされる場合、何ら特別の制
御論理を用いずに、命令レベルの並行性を保って、この
プロセッサで実行することが出来る。逆に、特別の制御
論理を持たないVLIWプロセッサは、正しい資源及び
待ち時間の想定を用いてコンパイルされたプログラムだ
けを正しく実行することが出来る。従来VLIWプロセ
ッサは何ら特別の制御論理を持たずに組立てられてお
り、この為、VLIWプロセッサは必ずこういう形で設
計しなければならないという結論になっていた。
【0006】VLIWの異なる見方は、アーキテクチャ
として、即ち、そのアーキテクチャの為に書かれたプロ
グラム類と、このアーキテクチャのプロセッサ構成群と
の間の契約上のインターフェースとして見るものであ
る。普通の見方は、この契約が、命令フォーマット並び
に命令を構成するビットの解釈に関するとするものであ
る。しかし、契約はそれ以上に進み、この出願で何より
も重要なのは、契約のそういう面である。第1に、その
MultiOp能力を通じて、VLIWアーキテクチャ
は、互いに独立であることが保証された(従って、発行
側のハードウエアによって何ら検査をせずに、同時に発
行することが出来る)1連の動作を特定する。
【0007】第2に、動作の待ち時間に関する断定によ
り、動作の間の依存性を正しく理解しようとすれば、プ
ログラムをどのように解釈するかをアーキテクチャが特
定する。順序形アーキテクチャの場合、大抵の待ち時間
は、1サイクルであるとプログラマによって想定されて
いる。従って、ある動作に対する入力オペランドは、そ
のプログラマには、問題の動作より前に発せられた(そ
して大抵の場合には完了した)全ての動作によって決定
されると思われることになる。ある命令(遅延スロット
を持つブランチ)は単位以外の待ち時間を持つような、
例えばSPARCのような或る順序形アーキテクチャが
あるので、そういうことが言える。
【0008】VLIWアーキテクチャに対するプログラ
ムの場合、動作が単位以外の待ち時間を持つと、或る動
作に対する入力オペランドは、問題の動作より前に発せ
られた全ての動作によって決定されない。問題になるの
は、問題の動作が発せられる前に完了していると想定さ
れている動作である。先に発せられているが、まだ完了
していると想定されていない動作は、問題の動作に対し
て流れの依存性を課すことがない。
【0009】1つの命令の中にある全ての動作が、次の
命令が発せられる前に完了していると想定することによ
って、プログラムのセマンティクスが正しく理解される
場合、プログラムは単位と想定される待ち時間(UA
L)を持っている。少なくとも1つの動作が単位以外と
想定する、1より大きい待ち時間Lを持つ場合、プログ
ラムは単位以外と想定する待ち時間(NUAL)を持
つ、即ち、正確に次の(L−1)個の命令が、この動作
が完了する前に発せされていると理解される場合、プロ
グラムのセマンティクスが正しく理解される。アーキテ
クチャは、それが実行すると想定されているプログラム
の種類がUAL(NUAL)であれば、UAL(NUA
L)である。この明細書では、NUALプログラムとい
う言葉と、待ち時間を認識するプログラムという言葉と
を交換できるものとして使う。
【0010】VLIW(非常に長い命令ワード)プロセ
ッサは、比較的簡単な制御論理を用いて、1サイクル当
たり多数の動作を発することが出来る為に、命令レベル
の並行性を達成する魅力的な方法として見られている。
VLIWアーキテクチャは、設計の簡単さ並びに高い発
行速度という利点を提供するが、VLIW及びその他の
新しいILPアーキテクチャを使うことに対する主な障
害は、それらが既存のソフトウエア・ベースと互換性が
ないことである。異なるハードウエアの待ち時間及び色
々なレベルの並行性を持つプロセッサの間での、VLI
Wアーキテクチャに於けるオブジェクト・コードの互換
性が欠けることが、それらを汎用計算パラダイムとして
採用することに対する重要な限界である。即ち、インス
トールされるバイナリのソフトウエア・ベースを、一群
の世代に互って組立てることが出来ない。この問題の経
済的な意味は非常に大きく、VLIWアーキテクチャが
成功する為には、効率のよい解決策が必要である。この
問題に対する2種類の解決策、即ち、ハードウエア方式
とソフトウエア方式が文献に報告されている。こういう
方式は、互換性を持たせることが出来るが、それもハー
ドウエアが複雑になるという犠牲を払ってのことであ
り、そうするとサイクル時間に影響を及ぼす惧れがあ
る。典型的なソフトウエア方式は、オブジェクト・ファ
イルからVLIWプログラムをスタティックにコンパイ
ルし直すことである。この方式は、多数の実行可能なも
のを生ずるが、これは商業的なコピーの保護及びシステ
ム管理の点で難点を生ずる。例えば、第1世代の機械が
各々の機能ユニットに対する或る待ち時間を持ち、第2
世代のVLIW機械は同じ機能ユニットに対して異なる
待ち時間を持つ場合、異なる動作の間の流れの依存性の
為に、古いVLIWスケジュールは第2世代の機械で正
しく実行されると保証することが出来ない。第2世代の
機械が追加の機能ユニットを持つ場合、同じ種類の問題
が生ずる。待ち時間が同じままであっても、この新しい
機械に対してスケジュールされたコードは、スケジュー
ラがこの追加の乗算器を活用しようとして、動作を動か
している為に、古い機械では正しく実行されない。この
スケジュールを古い機械に適応させるような簡単な方法
はない。これは、世代間の下位非互換性の場合である。
この場合、異なる世代の機械がバイナリを共有する場
合、互換性の為には、スケジュールを調節する機構又は
世代毎に異なるバイナリ群が必要である。IBMはDA
ISY(ダイナミカリ・アーキテクテッド・インストラ
クション・セット・フロム・ヨークタウン)と呼ばれる
ILP機械用のハードウエアの特長を述べている。DA
ISYは特に既存のアーキテクチャを模倣することを意
図しており、こうして古いアーキテクチャ(オペレーテ
ィング・システム核コードを含む)に対する全ての既存
のソフトウエアは、VLIWアーキテクチャ上で変更な
しに運用される。コードの新しいフラグメントが初めて
実行される度に、固定メモリの中にあるバーチャル・マ
シン・モニタ(ソフトウエア)により、コードがVLI
Wプリミティブに変換され、並行化され、主メモリの
内、古いアーキテクチャには見えない一部分に保管され
る。同じフラグメントがこの後で実行されるときは、
(捨てるとき以外は)変換を必要としない。このハード
ウエア方式の制約は、スケジュールの範囲が、ランタイ
ムに見られるOpの窓に制限されており、その為、利用
し得るILPが、コンパイラによって開発出来るものよ
りも比較的少ないことである。こういう方式により、サ
イクル時間の伸びが起こることがあるが、これはその為
に多くの人が、将来の世代の機械として、VLIWパラ
ダイムをスーパスカラーに優ると考える現象である。
【0011】命令セット・アーキテクチャは、プログラ
マが観察することが出来るレベルでのコンピュータ・ア
ーキテクチャの記述である。コンピュータ・アーキテク
チャのプログラマ・モデルも同じような言葉である。露
出パイプライン・アーキテクチャでは、命令のパイプラ
イン形実行に関連する遅延が、命令セット・アーキテク
チャで見ることが出来、それを利用して、計算の帯域幅
を改善することが出来る。
【0012】互換性の問題を解決するこの他の方式は、
ソフトウエアを新しい機械のアーキテクチャに移動させ
ることを含む。こういうアプリケーションでは、模倣し
ようとする元の古いアーキテクチャ又はプロセッサの元
からの命令セット・アーキテクチャが、ベース・アーキ
テクチャと呼ばれる。古いアーキテクチャを模倣するV
LIW、又はそのプロセッサで支援される所定のプロセ
ッサのベース・アーキテクチャ以外の任意の命令セット
・アーキテクチャが、マイグラント・アーキテクチャと
呼ばれる。
【0013】現世代及び将来の世代の露出パイプライン
VLIW DSPの間のコードの互換性が、この発明で
考えられている互換性の一例である。例えば、TI C
6000 DSP及びTI 64ビットC6000 D
SP拡張形は、現在及び将来のアーキテクチャである。
TI64ビットC6000 DSPアーキテクチャは、
一層高い動作周波数にする為に、ISAビジブル・パイ
プラインの変更及びその他のアーキテクチャとしての特
長を持っている。こういう変更は、バイナリの互換性の
為の必要条件に折り合いを付けるものであり、この発明
では、これから述べるように強力なコード・マイグラン
ト通路が構成される。
【0014】
【課題を解決する為の手段及び作用】現世代及び将来の
世代のDSPの間にバイナリの互換性を持たせるサブパ
イプライン変換の実施例を開示する。メモリから取出し
パケットを検索したとき、この取出しパケットに対する
要請が命令メモリに対して為された時点に於ける実行モ
ードに従って、この取出しパケット全体に動作モード
(ベース命令セット又はマイグラント命令セット)が割
当てられる。命令メモリからの取出しパケットが両方の
実行モード(ベース及びマイグラント)が共有するデー
タ通路で(ディスパッチされる)実行ユニットによって
実行パケットにパーズされると共に分類される。この場
合、取出しパケットのシンタックス及び実行ユニットの
符号がマイグラント及びベース・アーキテクチャの間で
異なっているから、2つの実行モードは別々の制御論理
を持っている。ディスパッチ・データ通路からの命令
は、復号される命令の親の取出しパケットを拘束する実
行モードに応じて、ベース・アーキテクチャ復号論理又
はマイグラント・アーキテクチャ復号論理の何れかによ
って復号される。マイグラント及びベース復号パイプラ
インによって処理されたコードが機械ワードを発生し、
この機械ワードが、レジスタ・ファイル及び実行ハード
ウエア機能ユニットを制御する。これらの機械ワードは
マルチプレクサを使って選択される。マルチプレクサか
らの最終的な機械ワードの選択は、この機械ワードを発
生した取出しパケットを拘束する動作モード及びサブパ
イプライン実行の為の順序論理によって左右される。選
択された機械ワードが大域レジスタ・ファイルを制御
し、この大域レジスタ・ファイルが全てのハードウエア
実行ユニットに対するオペランドを供給すると共に、全
てのハードウエア実行ユニットの結果を受容れる。
【0015】
【実施例】サブパイプライン形実行は、マイグラント露
出パイプライン・アーキテクチャからのコードを実行す
る為のハードウエア効率のよい方法である。この方法で
は、ベース・アーキテクチャに、所望のマイグラント・
アーキテクチャの命令の待ち時間の一定の倍数(これを
Sとする)を設計する。マイグラント及びベース・アー
キテクチャの間のこの関係を用いて、マイグラント命令
の発行を(S−1)クロック・サイクルだけ遅延させる
ことにより、マイグラント・アーキテクチャからのコー
ドをベース・アーキテクチャで実行することが出来る。
パイプライン実行モードを設ける他に、少ないオーバヘ
ッドで、ベース及びマイグラント命令セットの間で変更
する設備を設ける。
【0016】図1に示すコードが与えられた場合、ベー
ス・アーキテクチャは、全ての命令に対し、下記の表に
示すように、マイグラント・アーキテクチャの命令の待
ち時間の4倍にする。
【0017】
【表1】
【0018】コードは、図2に示すように、ベース・ア
ーキテクチャでスケジュールし直すことが出来る。図示
のように、ベース及びマイグラント・コードの間の待ち
時間の差を埋め合わせるのに必要なNOPの為、パイプ
ライン実行モードで運用されるコードは、ベース・アー
キテクチャ命令セットの性能の一部分を超えない。性能
条件及びコードのその他の特性に応じて、マイグラント
・アーキテクチャからのコードの性能を高める為に、自
動化した2つの解決策を利用出来る。第1に、マイグラ
ント・アーキテクチャからのコードは、ベース・アーキ
テクチャで書かれたライブラリを用いて、リンクし直す
ことが出来、第2に、オフラインのバイナリ変換方式に
よって、マイグラント・アーキテクチャ・コードをベー
ス・アーキテクチャ・コードに変換することが出来る。
【0019】ベース・ライブラリを持つマイグラント・
コードの場合、パイプライン形の場合に比べた性能の利
得は、ベース・ライブラリで費やす実行時間及びベース
ISAに於けるライブラリ・ルーチンの性能に比例す
る。ライブラリで費やす時間は、アプリケーションによ
って大きく変るが、32ビットC6000DSP命令セ
ットでは、アプリケーションの実行時間の50%より多
くが、ライブラリにあることが稀ではない。
【0020】オフライン・バイナリ変換は、マイグラン
ト・アーキテクチャからバイナリ・コードを取込み、コ
ードを逆に組立て、それをベース・アーキテクチャに変
換する。この変換過程は幾つかの方法で実施することが
出来る。サブパイプライン実行モードを使うことによ
り、変換が簡単になる。困難と認識されるか或いは変換
出来ない場合、サブパイプライン・モードで実行する。
こうすると、オフライン変換を増分的に展開することが
出来る。困難という思いが時間に互って変るにつれて、
サブパイプライン・モードで実行されるコードの割合が
変化する。
【0021】前に「従来の技術及び課題」で述べたIB
M及びHP及びノース・キャロライナ州立大学の何世代
かのVLIWプロセッサの間の互換性を支援する解決策
によって、マイグラント・アーキテクチャを支援するこ
とが出来るVLIWベース・アーキテクチャが得られる
が、こういう解決策はDSPにとっては適切な解決策で
はない。特に、IBM及びNCSUの研究で述べられて
いるダイナミック変換方式は、実時間のDSPアプリケ
ーションに必要なラン時間の予測可能性が得られない。
HPの研究に述べられている方法は、複雑であるが、決
定論的なラン時間を持つが、発行遅延命令バッファ、遅
延レジスタ・ファイル及びコピーバック・ユニットによ
るかなりのハードウエア・コストがかかる。
【0022】CISCをスーパスカラーRISCに変換
することに関係する研究も発表されている。この同じ研
究の最近の版は、ベース・アーキテクチャで運用される
マイグラント・アーキテクチャのソフトウエア・シミュ
レーションと結合したスタティック変換を用いている。
この発明では、マイグラント・アーキテクチャのソフト
ウエア・シミュレーションの全ての機能がサブパイプラ
イン・モードでのハードウエアの実行に置き換えられ
る。
【0023】図3は、この発明の好ましい実施例による
サブパイプラン変換実施例を示す。この発明では、メモ
リからコードを取出す。命令メモリは、直接アドレスR
AM又はキャッシュで構成することが出来る。命令メモ
リ内のコードは、プログラムには、マイグラント命令セ
ット又はベース命令セット内にあるように見える。或る
構成では、命令メモリ内のコードは、後の命令の処理を
容易にする為に、予め復号することが出来る。メモリか
ら同時に検索された命令のグループが取出しパケットと
呼ばれる。取出しパケットには、この取出しパケットに
対する要請が命令メモリに出された時点に於ける実行モ
ードに従って動作モード(ベース命令セット又はマイグ
ラント命令セット)が割当てられる。これによって、モ
ードの速やかな切換えが出来る。
【0024】命令メモリからの取出しパケットが実行パ
ケットにパーズされ、両方の実行モード(ベース及びマ
イグラント)が共有するデータ通路にある(ディスパッ
チされた)実行ユニットによって分類される。取出しパ
ケットのシンタックス及び実行ユニットの符号が、この
場合はマイグラント及びベース・アーキテクチャの間で
異なっている為、2つの実行モードは別々の制御論理を
持っている。
【0025】ディスパッチ・データ通路からの命令が、
復号される命令の親の取出しパケットを拘束する実行モ
ードに応じて、ベース・アーキテクチャ復号論理によ
り、又はマイグラント・アーキテクチャ復号論理によっ
て復号される。露出パイプラインVLIW命令セットの
場合、ベース及びマイグラント・アーキテクチャに対す
る復号論理は、主にopコードを、実行ハードウエア機
能ユニットで特定された命令を実行するのに必要な制御
信号に変換する。マイグラント及びベース命令セットの
待ち時間についてこの発明で定めた関係(ベース動作は
マイグラント動作の待ち時間の2倍)並びにこういう命
令セットの露出パイプライン特性の為、パイプラインの
深さ、命令の等級づけ及び命令の依存性の知識を必要と
するような命令復号方式を必要としない。この結果、命
令復号論理のハードウエアが減少すると共に複雑さが少
なくなる。
【0026】マイグラント及びベース復号パイプライン
で処理されたコードが、レジスタ・ファイル及び実行ハ
ードウエア機能ユニットを制御する機械ワードを発生す
る。これらの機械ワードはマルチプレクサを用いて選択
されるが、このマルチプレクサは第3のno op命令
をも選択することが出来る。3つの可能性の中からの最
終的な機械ワードの選択が、機械言語を発生した取出し
パケットを拘束する動作モード及びサブパイプライン形
実行の為の順序論理によって左右される。
【0027】この発明の第1の好ましい実施例では、選
択された機械ワードが、全てのハードウエア実行ユニッ
トに対するオペランドを供給すると共に全てのハードウ
エア実行ユニットの結果を受容れる大域レジスタ・ファ
イルを制御する。ハードウエア・パイプラインの2クロ
ック・サイクル後、選択された機械ワードが、局部実行
ハードウエア機能ユニット又は隣りのハードウエア実行
機能ユニットの何れかに対するオペランドを供給する局
部レジスタ・ファイルを制御する。最後に、選択された
機械ワードが、オペランドに対する機能を評価して結果
を発生する種々の形式の実行ハードウエアを制御する。
【0028】以上の説明に関し、更に以下の項目を開示
する。 (1) VLIWアーキテクチャのベース・アーキテク
チャとマイグラント・アーキテクチャの間のバイナリの
互換性を持たせるサブパイプライン変換構造に於て、ベ
ース・アーキテクチャ及びマイグラント・アーキテクチ
ャで構成されていて、ベース実行モード及びマイグラン
ト実行モードを持つVLIWアーキテクチャと、メモリ
から検索され、前記取出しパケットに対する要請が前記
メモリに対して為された時点に於ける実行モードに依存
する動作モードを持つ取出しパケットと、前記ベース・
アーキテクチャ・モード及びマイグラント・アーキテク
チャ・モードの取出しパケットを実行パケットにパーズ
すると共に、そのベース実行パケットを実行ハードウエ
アの適当なベース・アーキテクチャ復号にディスパッチ
する、前記ベース・アーキテクチャ及びマイグラント・
アーキテクチャの両方が共有のデータ通路と、マイグラ
ント実行モードを持つ実行パケット命令をマイグラント
・アーキテクチャ復号にディスパッチするマイグラント
・アーキテクチャ制御回路と、実行パケット命令を実行
ユニットで実行すると共に、ベース・アーキテクチャ復
号及びマイグラント・アーキテクチャ復号を持ってい
て、実行の前に、前記ベース・アーキテクチャ命令及び
前記マイグラント・アーキテクチャ命令を夫々復号され
る命令の取出しパッチの実行モードに依存して復号する
実行ハードウエアと、少なくとも2つの入力及び1つの
機械ワード出力を持っていて、一方の入力が前記マイグ
ラント・アーキテクチャ復号の出力であり、他方の入力
が前記ベース・アーキテクチャ復号の出力であり、前記
取出しパケットの動作モードに依存して選択するマルチ
プレクサと、前記実行ハードウエアのユニットを制御す
る機械ワードとを含むサブパイプライン変換構造。
【0029】(2) 第1項に記載のサブパイプライン
変換構造に於て、更に、前記マルチプレクサに対する第
3の入力を含み、前記第3の入力はno op命令であ
るサブパイプライン変換構造。 (3) 第1項に記載のサブパイプライン変換構造に於
て、前記機械ワードが大域レジスタ・ファイルを制御
し、前記大域レジスタ・ファイルは全てのハードウエア
の実行ユニットに対するオペランドを供給すると共に、
全てのハードウエア実行ユニットの結果を受容れるサブ
パイプライン変換構造。 (4) 第3項に記載のサブパイプライン変換構造に於
て、前記機械ワードが、前記機械ワードが前記大域レジ
スタ・ファイルを制御した後に、局部実行ハードウエア
機能ユニット又は隣りのハードウエア実行機能ユニット
の何れかにオペランドを供給する局部レジスタ・ファイ
ルを制御するサブパイプライン変換構造。 (5) 第4項に記載のサブパイプライン変換構造に於
て、前記機械ワードが、オペランドに対する機能を評価
する種々の形式の実行ハードウエアを制御して、前記機
械ワードが前記局部レジスタ・ファイルを制御した後
に、前記ハードウエア実行ユニットの結果を発生するサ
ブパイプライン変換構造。 (6) 第1項に記載のサブパイプライン変換構造に於
て、前記ベース及びマイグラント・アーキテクチャ復号
ユニットがopコードを、実行ハードウエアの機能ユニ
ットで特定された命令を実行するのに必要な制御信号に
変換するサブパイプライン変換構造。 (7) 第1項に記載のサブパイプライン変換構造に於
て、更に前記マイグラント・アーキテクチャ制御回路
が、マイグラント・アーキテクチャ内の命令のセマンテ
ィクスを保護する為のno op命令を発するサブパイ
プライン変換構造。
【0030】(8) VLIWアーキテクチャのベース
・アーキテクチャ及びマイグラント・アーキテクチャの
間のバイナリの互換性を持たせる方法に於て、VLIW
アーキテクチャのベース・アーキテクチャ及びマイグラ
ント・アーキテクチャで夫々ベース実行モード及びマイ
グラント実行モードを実行し、メモリから検索した取出
しパケットを用意し、前記取出しパケットは、前記取出
しパケットに対する要請がメモリに為された時点に於け
る実行モードに依存する動作モードを持っており、前記
ベース・アーキテクチャ・モード及びマイグラント・ア
ーキテクチャ・モードの取出しパケットを実行パケット
にパーズすると共に、そのベース実行パケットをベース
及びマイグラント・アーキテクチャの両方に共有のデー
タ通路で、実行ハードウエアの適当なベース・アーキテ
クチャ復号にディスパッチし、マイグラント実行モード
を持つ実行パケット命令をマイグラント・アーキテクチ
ャ制御回路にあるマイグラント・アーキテクチャ復号に
ディスパッチし、実行パケット命令を実行ハードウエア
の実行ユニットで実行し、前記実行ハードウエアは、ベ
ース・アーキテクチャ復号及びマイグラント・アーキテ
クチャ復号を持っていて、実行する前に、復号される命
令の取出しパケットの実行モードに依存して夫々前記ベ
ース・アーキテクチャ命令及び前記マイグラント・アー
キテクチャ命令を復号し、前記取出しパケットの動作モ
ードに依存して、1つの機械ワード出力を持つマルチプ
レクサで、前記マイグラント・アーキテクチャ復号の出
力及び前記ベース・アーキテクチャ復号の出力の間で選
択し、前記機械ワードを用いて前記実行ハードウエアの
ユニットを制御する工程を含む方法。
【0031】(9) 第8項に記載の方法に於て、更
に、前記マイグラント・アーキテクチャ復号の出力、前
記ベース・アーキテクチャ復号の出力及びno op命
令の間で選択することを含む方法。 (10) 第8項に記載の方法に於て、更に、前記機械
ワードを用いてレジスタを制御する工程を含む方法。 (11) 第8項に記載の方法に於て、更に前記機械ワ
ードを用いて大域レジスタ・ファイルを制御する工程を
含み、前記大域レジスタ・ファイルは全てのハードウエ
ア実行ユニットに対するオペランドを供給すると共に全
てのハードウエア実行ユニットの結果を受容れる方法。 (12) 第11項に記載の方法に於て、更に、前記大
域レジスタ・ファイルを制御する工程の後、局部実行ハ
ードウエア機能ユニット又は隣りのハードウエア実行ユ
ニットの何れかにオペランドを供給する局部レジスタ・
ファイルを制御する工程を含む方法。 (13) 第12項に記載の方法に於て、更に、オペラ
ンドに対する機能を評価する種々の形式の実行ハードウ
エアを制御して、前記局部レジスタ・ファイルを制御し
た工程の後に、前記ハードウエア実行ユニットの結果を
発生する方法。 (14) 第8項に記載の方法に於て、更に、opコー
ドを、ベース及びマイグラント・アーキテクチャ復号ユ
ニット内の実行ハードウエア機能ユニットで特定された
命令を実行するのに必要な制御命令に変換する工程を含
む方法。 (15) 第8項に記載の方法に於て、更に、マイグラ
ント・アーキテクチャにある命令のセマンティクスを保
護する為に前記マイグラント・アーキテクチャ制御回路
からno op命令を発する工程を含む方法。
【0032】(16) 現世代及び将来の世代の間のD
SPの間のバイナリの互換性を持たせるサブパイプライ
ン変換の実施例を開示した。取出しパケットがメモリ
(「命令メモリ」)から取出されたとき、取出しパケッ
ト全体には、この取出しパケットに対する要請が命令メ
モリに対して出された時点に於ける実行モード(「実行
モード」)に従って動作モード(ベース命令セット又は
マイグラント命令セット)が割当てられる。命令メモリ
からの取出しパケットが実行パケットにパーズされ、両
方の実行モード(ベース及びマイグラント)が共有する
データ通路(「共有のデータ通路」)にある(ディスパ
ッチされた)実行ユニットによって分類される。取出し
パケットのシンタックス及び実行ユニットの符号がこの
場合はマイグラント及びベース・アーキテクチャの間で
異なるので、2つの実行モードは別々の制御論理(「ベ
ース・アーキテクチャ制御」、「マイグラント・アーキ
テクチャ制御」)を持っている。ディスパッチ・データ
通路からの命令が、復号される命令の親の取出しパケッ
トを拘束する実行モードに応じて、ベース・アーキテク
チャ復号論理又はマイグラント・アーキテクチャ復号論
理の何れかによって復号される。マイグラント及びベー
ス復号パイプラインによって処理されたコードが、レジ
スタ・ファイル及び実行ハードウエア機能ユニットを制
御する機械ワード(「機械ワード」)を発生する。これ
らの機械ワードがマルチプレクサを用いて選択される。
マルチプレクサからの最終的な機械ワードの選択は、こ
の機械ワードを発生した取出しパケットを拘束する動作
モード及びサブパイプライン実行の為の順序論理(「サ
ブパイプライン制御」)によって左右される。選択され
た機械ワードが大域レジスタ・ファイルを制御し、この
大域レジスタ・ファイルが全てのハードウエア実行ユニ
ットに対するオペランドを供給すると共に全てのハード
ウエア実行ユニットの結果を受容れる。
【図面の簡単な説明】
【図1】ベース・アーキテクチャの命令の待ち時間の1
/4の命令待ち時間を持つサブパイプライン実行マイグ
ラント・アーキテクチャのマイグラント・コードの一
例。
【図2】ベース・アーキテクチャ・コードに変換した
後、サブパイプライン実行モードで運用されるマイグラ
ント・コードのスケジュールのやり直しを例示してお
り、変換の効率の悪さを示す。
【図3】この発明の好ましい実施例によるサブパイプラ
イン変換の実施例を示すブロック図。
【符号の説明】
1 サブパイプライン変換構造
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B013 AA20 DD04 5B033 AA11 AA13 AA14 BA02

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 VLIWアーキテクチャのベース・アー
    キテクチャとマイグラント・アーキテクチャの間のバイ
    ナリの互換性を持たせるサブパイプライン変換構造に於
    て、 ベース・アーキテクチャ及びマイグラント・アーキテク
    チャで構成されていて、ベース実行モード及びマイグラ
    ント実行モードを持つVLIWアーキテクチャと、 メモリから検索され、前記取出しパケットに対する要請
    が前記メモリに対して為された時点に於ける実行モード
    に依存する動作モードを持つ取出しパケットと、 前記ベース・アーキテクチャ・モード及びマイグラント
    ・アーキテクチャ・モードの取出しパケットを実行パケ
    ットにパーズすると共に、そのベース実行パケットを実
    行ハードウエアの適当なベース・アーキテクチャ復号に
    ディスパッチする、前記ベース・アーキテクチャ及びマ
    イグラント・アーキテクチャの両方が共有のデータ通路
    と、 マイグラント実行モードを持つ実行パケット命令をマイ
    グラント・アーキテクチャ復号にディスパッチするマイ
    グラント・アーキテクチャ制御回路と、 実行パケット命令を実行ユニットで実行すると共に、ベ
    ース・アーキテクチャ復号及びマイグラント・アーキテ
    クチャ復号を持っていて、実行の前に、前記ベース・ア
    ーキテクチャ命令及び前記マイグラント・アーキテクチ
    ャ命令を夫々復号される命令の取出しパッチの実行モー
    ドに依存して復号する実行ハードウエアと、 少なくとも2つの入力及び1つの機械ワード出力を持っ
    ていて、一方の入力が前記マイグラント・アーキテクチ
    ャ復号の出力であり、他方の入力が前記ベース・アーキ
    テクチャ復号の出力であり、前記取出しパケットの動作
    モードに依存して選択するマルチプレクサと、 前記実行ハードウエアのユニットを制御する機械ワード
    とを含むサブパイプライン変換構造。
  2. 【請求項2】 VLIWアーキテクチャのベース・アー
    キテクチャ及びマイグラント・アーキテクチャの間のバ
    イナリの互換性を持たせる方法に於て、 VLIWアーキテクチャのベース・アーキテクチャ及び
    マイグラント・アーキテクチャで夫々ベース実行モード
    及びマイグラント実行モードを実行し、 メモリから検索した取出しパケットを用意し、前記取出
    しパケットは、前記取出しパケットに対する要請がメモ
    リに為された時点に於ける実行モードに依存する動作モ
    ードを持っており、 前記ベース・アーキテクチャ・モード及びマイグラント
    ・アーキテクチャ・モードの取出しパケットを実行パケ
    ットにパーズすると共に、そのベース実行パケットをベ
    ース及びマイグラント・アーキテクチャの両方に共有の
    データ通路で、実行ハードウエアの適当なベース・アー
    キテクチャ復号にディスパッチし、 マイグラント実行モードを持つ実行パケット命令をマイ
    グラント・アーキテクチャ制御回路にあるマイグラント
    ・アーキテクチャ復号にディスパッチし、 実行パケット命令を実行ハードウエアの実行ユニットで
    実行し、前記実行ハードウエアは、ベース・アーキテク
    チャ復号及びマイグラント・アーキテクチャ復号を持っ
    ていて、実行する前に、復号される命令の取出しパケッ
    トの実行モードに依存して夫々前記ベース・アーキテク
    チャ命令及び前記マイグラント・アーキテクチャ命令を
    復号し、 前記取出しパケットの動作モードに依存して、1つの機
    械ワード出力を持つマルチプレクサで、前記マイグラン
    ト・アーキテクチャ復号の出力及び前記ベース・アーキ
    テクチャ復号の出力の間で選択し、 前記機械ワードを用いて前記実行ハードウエアのユニッ
    トを制御する工程を含む方法。
JP2001193066A 2000-06-26 2001-06-26 サブパイプライン変換構造、及びバイナリの互換性を持たせる方法 Pending JP2002041283A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/603,226 US6895494B1 (en) 2000-06-26 2000-06-26 Sub-pipelined and pipelined execution in a VLIW
US603226 2003-06-25

Publications (1)

Publication Number Publication Date
JP2002041283A true JP2002041283A (ja) 2002-02-08

Family

ID=24414550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001193066A Pending JP2002041283A (ja) 2000-06-26 2001-06-26 サブパイプライン変換構造、及びバイナリの互換性を持たせる方法

Country Status (5)

Country Link
US (1) US6895494B1 (ja)
EP (1) EP1168159A1 (ja)
JP (1) JP2002041283A (ja)
CN (1) CN1175348C (ja)
TW (1) TW518516B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292586B2 (en) * 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
GB2411990B (en) * 2003-05-02 2005-11-09 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
GB2435116B (en) * 2006-02-10 2010-04-07 Imagination Tech Ltd Selecting between instruction sets in a microprocessors
US9612840B2 (en) 2014-03-28 2017-04-04 Intel Corporation Method and apparatus for implementing a dynamic out-of-order processor pipeline

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884057A (en) 1994-01-11 1999-03-16 Exponential Technology, Inc. Temporal re-alignment of a floating point pipeline to an integer pipeline for emulation of a load-operate architecture on a load/store processor
US6496922B1 (en) 1994-10-31 2002-12-17 Sun Microsystems, Inc. Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
JP3547139B2 (ja) * 1995-03-17 2004-07-28 株式会社 日立製作所 プロセッサ
US5774686A (en) * 1995-06-07 1998-06-30 Intel Corporation Method and apparatus for providing two system architectures in a processor
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6615338B1 (en) * 1998-12-03 2003-09-02 Sun Microsystems, Inc. Clustered architecture in a VLIW processor
EP1050799A1 (en) 1999-05-03 2000-11-08 STMicroelectronics S.A. Execution of a computer program
EP1050796A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics S.A. A decode unit and method of decoding
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor

Also Published As

Publication number Publication date
CN1175348C (zh) 2004-11-10
EP1168159A1 (en) 2002-01-02
US6895494B1 (en) 2005-05-17
CN1365047A (zh) 2002-08-21
TW518516B (en) 2003-01-21

Similar Documents

Publication Publication Date Title
CN108027769B (zh) 使用寄存器访问指令发起指令块执行
CN108027767B (zh) 寄存器读取/写入排序
US5699536A (en) Computer processing system employing dynamic instruction formatting
CN108027770B (zh) 用于数据流isa的密集读取编码
Mei et al. Design methodology for a tightly coupled VLIW/reconfigurable matrix architecture: A case study
US8650554B2 (en) Single thread performance in an in-order multi-threaded processor
CN108027773B (zh) 存储器访问指令顺序编码的生成和使用
US20170083320A1 (en) Predicated read instructions
US8413086B2 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
JPH04307625A (ja) ループ最適化方法及び装置
KR20140126195A (ko) 배치 쓰레드 처리 기반의 프로세서, 그 프로세서를 이용한 배치 쓰레드 처리 방법 및 배치 쓰레드 처리를 위한 코드 생성 장치
EP1444571B1 (en) Hidden job start preparation in an instruction-parallel processor system
US7000091B2 (en) System and method for independent branching in systems with plural processing elements
CN108027735B (zh) 用于操作处理器的装置、方法和计算机可读存储介质
JP2002041283A (ja) サブパイプライン変換構造、及びバイナリの互換性を持たせる方法
Huang et al. ASIA: Automatic synthesis of instruction-set architectures
Jääskeläinen et al. Reducing context switch overhead with compiler-assisted threading
US20050132170A1 (en) Multi-issue processor
Shipnes et al. A modular approach to Motorola PowerPC compilers.
Conte et al. Properties of rescheduling size invariance for dynamic rescheduling-based VLIW cross-generation compatibility
Ryan et al. Software Re-Engineering
JP3743155B2 (ja) パイプライン制御型計算機
JP2861234B2 (ja) 命令処理装置
Dean Software thread integration and synthesis for real-time applications
Lipasti Compilation Support