JP2000215059A - 命令並列性検証装置付きプロセッサ - Google Patents

命令並列性検証装置付きプロセッサ

Info

Publication number
JP2000215059A
JP2000215059A JP11321524A JP32152499A JP2000215059A JP 2000215059 A JP2000215059 A JP 2000215059A JP 11321524 A JP11321524 A JP 11321524A JP 32152499 A JP32152499 A JP 32152499A JP 2000215059 A JP2000215059 A JP 2000215059A
Authority
JP
Japan
Prior art keywords
control signal
instruction
address generation
validity
data address
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
JP11321524A
Other languages
English (en)
Inventor
Gilbert Laurenti
ラウレンティ ジルベルト
Karim Djafarian
ドジャファリアン カリム
Vincent Gillet
ジィレェト ビィセント
Icharudo Laurent
イチャルド ラウレント
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 JP2000215059A publication Critical patent/JP2000215059A/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/38Concurrent instruction execution, e.g. pipeline, 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/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/38Concurrent instruction execution, e.g. pipeline, 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, 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

Abstract

(57)【要約】 【課題】 命令並列性の有効性を検証する方法および機
構を提供する。 【解決手段】 第1および第2のデコーダは、第1およ
び第2の命令を復号して、第1および第2の制御信号を
発生する。第1および第2の制御信号は、第1および第
2のリソース制御信号と、第1および第2のアドレス発
生制御信号と、第1および第2の位置の第1および第2
の命令の有効性を示す第1および第2の有効性信号とを
それぞれ含む。第1および第2の制御信号を調停すると
ともに第1および第2の制御信号を併合して、1組の並
列性規則に従って命令実行のパワーを制御する調停およ
び併合論理が設けられる。条件付実行ユニットは、調停
および併合論理からの偽条件信号に応答して、制御信号
の効果を禁止または修正する。並列性規則によって、効
率的な命令実行が行われ、リソース競合が回避される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、処理エンジンにお
ける命令並列性の検証に関する。特に、本発明は、命令
並列性の検証を行う処理エンジンと処理エンジンにおけ
る命令並列性の検証方法とに関する。
【0002】
【従来の技術】並列命令実行を行う処理エンジンでは、
リソース競合が起こる可能性がある。リソース競合は、
レジスタ,算術演算装置,バスおよびメモリ位置などの
ような共通リソースの並列使用を必要とする2つの命令
から生じることがある。
【0003】リソース競合を回避するためには、並列命
令を有効とするある規則を確立することが望ましい。命
令を実行するためにコンパイルするとき、これらの規則
に従う必要がある。しかしながら、実行する前に命令の
並列性の有効性を検証して実行時に競合を回避すること
がさらに望ましい。
【0004】
【発明が解決しようとする課題】ロバスト性および動作
の予測性を提供することができる検証方法が必要とされ
ている。好ましくは、体系的デバッギングは、命令の考
えられる不法な組合せを考慮できなければならない。
【0005】
【課題を解決するための手段】本発明は、命令並列性の
有効性を検証する方法および機構を提供しようとするも
のである。
【0006】本発明の第1の態様によれば、命令を並列
に実行する処理エンジンが提供される。処理エンジン
は、第1の位置の(たとえば、より低いプログラムアド
レスに対する)第1の命令と第2の位置の(たとえば、
より高いプログラムアドレスに対する)第2の命令との
少なくとも2つの命令を保持する命令バッファを含んで
いる。復号論理は、第1の制御信号を発生する第1の命
令の復号および第2の制御信号を発生する第2の命令の
復号を行う。調停論理は、第1の制御信号と第2の制御
信号との間の調停を行い、1組の並列性規則に従って命
令の並列実行を制御するように作動する。
【0007】調停論理と組み合わせて第1および第2の
命令に対する第1および第2のデコーダを設けることに
より、並列性規則に従って命令を復号して処理する構造
が提供され、リソース競合を回避しながら命令を効果的
かつ効率的に復号することができる。
【0008】処理エンジンの調停論理の動作により、ロ
バストで予測可能な検証方法を実現することができる。
この調停論理は処理エンジンハードウェアの一部を形成
するため、予測可能なプログラミングモデル挙動を達成
することができる。不法な命令対の実行が試みられる場
合には、本発明の実施例の統合検証により、少なくとも
部分的に予測可能な方法で実行することができる。
【0009】第1および第2の制御信号は、第1および
第2の位置の第1および第2の命令の有効性を示す各有
効性信号をそれぞれ含むことができる。調停論理は、第
1の有効性信号と第2の有効性信号との間の調停を行う
データアドレス発生制御信号調停論理を含むことができ
る。第1および第2の制御信号は、第1および第2のデ
ータアドレス発生制御信号をそれぞれ含むこともでき
る。データアドレス発生制御信号調停論理は、1組の並
列性規則に従って第1のデータアドレス発生制御信号と
第2のデータアドレス発生制御信号との間の調停を行う
ように作動することもできる。
【0010】データアドレス発生制御信号調停論理は、
データアドレス発生制御信号調停の結果に応じてデータ
アドレス発生制御信号の効果を禁止および/または修正
するように選択的に作動する。特に、データアドレス発
生制御信号調停論理は、並列性規則に従って無効である
データアドレス発生制御信号組合せの検出に応答して偽
条件信号を発生するように作動することができる。条件
付実行ユニットは、偽条件信号に応答して、データアド
レス発生制御信号の印加を禁止および/または修正する
ことができる。
【0011】第1および第2のデータアドレス発生制御
信号から併合データアドレス発生制御信号を発生するデ
ータアドレス発生制御信号併合論理を設けることができ
る。
【0012】データアドレス発生ユニットは、第1およ
び第2および/または併合アドレス発生制御信号に応答
することができる。
【0013】第1および第2の制御信号は、第1および
第2のリソース制御信号をそれぞれ含むこともできる。
調停論理は、並列性規則に従って第1のリソース制御信
号と第2のリソース制御信号との間の調停を行うリソー
ス制御信号調停論理を含むことができる。
【0014】リソース制御信号調停論理は、リソース制
御信号調停の結果に応じてリソース制御信号の効果を禁
止および/または修正するように選択的に作動すること
ができる。特に、リソース制御信号調停論理は、並列性
規則に従って無効であるリソース制御信号組合せの検出
に応答して偽条件信号を発生するように作動することが
できる。条件付実行ユニットは、偽条件信号に応答し
て、リソース制御信号の効果を禁止および/または修正
することができる。
【0015】第1および第2のリソース制御信号から併
合リソース信号を発生するためのリソース制御信号併合
論理を設けることができる。
【0016】算術演算装置やプログラムユニットのよう
な実行ユニットは、第1および第2および/または併合
リソース制御信号に応答することができる。
【0017】リソース制御信号併合論理は、第1および
第2の命令に対する共通バスリソース(たとえば、アク
セスされるバスまたはバスアクセスの順序)へのアクセ
スを制御するように作動することができる。また、並列
性規則に従って命令の順序を修正するように作動するこ
ともできる。
【0018】処理ユニットは、たとえば、デジタル信号
プロセッサの形式とすることができる。処理エンジンは
集積回路に集積することができる。
【0019】本発明の他の態様によれば、前記任意の請
求項に従った処理エンジンを含む電気通信装置が提供さ
れる。電気通信装置は、たとえば、ユーザ入力装置,デ
ィスプレイ,ワイヤレス電気通信インターフェイスおよ
びアンテナを含むことができる。
【0020】本発明のさらに他の態様によれば、処理エ
ンジンで並列に命令を実行する方法が提供され、処理エ
ンジンは、第1の位置の(たとえば、より低いプログラ
ムアドレスに対する)第1の命令と第2の位置の(たと
えば、より高いプログラムアドレスに対する)第2の命
令との少なくとも2つの命令を保持する命令バッファを
含んでいる。この方法は、以下のステップを含んでい
る。 a)第1の命令を復号して第1の制御信号を発生するス
テップ。 b)第2の命令を復号して第2の制御信号を発生するス
テップ。 c)1組の並列性規則に従って命令の並列実行を制御す
るために第1の制御信号と第2の制御信号との間の調停
を行うステップ。
【0021】
【発明の実施の形態】本発明は、たとえば特定用途集積
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
【0022】図1は、本発明の一実施例を有するマイク
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
【0023】本発明の態様から利益を得ることができる
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
【0024】図1のマイクロプロセッサのさまざまなア
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第98402455.4
号(TI−28433)に記載されており、本開示の一
部としてここに援用する。
【0025】次に、本発明によるプロセッサの一例の基
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
【0026】図1に示すように、処理エンジン100
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
【0027】プロセッサバックプレーン20は、バック
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
【0028】他の実施例では、異なる構成および/また
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
【0029】図2は、処理コア102の一実施例の基本
構造を示す。図から分かるように、処理コア102は、
4つの要素、すなわち、命令バッファユニット(Iユニ
ット)106と3つの実行ユニットとを含んでいる。実
行ユニットは、プログラムフローユニット(Pユニッ
ト)108と、アドレスデータフローユニット(Aユニ
ット)110と、命令バッファユニット(Iユニット)
106から復号された命令を実行しプログラムフローを
制御かつ監視するデータ計算ユニット(Dユニット)1
12とである。
【0030】図3は、処理コア102のPユニット10
8,Aユニット110およびDユニット112を詳細に
示すとともに、処理コア102のさまざまな要素を接続
するバス構造を示す。Pユニット108は、たとえば、
ループ制御回路と、GoTo/分岐制御回路と、リピー
トカウンタレジスタおよび割込みマスク,フラグまたは
ベクトルレジスタのようなプログラムフローを制御し監
視するさまざまなレジスタとを含んでいる。Pユニット
108は、汎用データライトバス(EB,FB)13
0,132とデータリードバス(CB,DB)134,
136とアドレス定数バス(KAB)142とに結合さ
れている。さらに、Pユニット108は、CSR,AC
BおよびRGDとラベルされたさまざまなバスを介して
Aユニット110およびDユニット112内のサブユニ
ットに結合されている。
【0031】図3に示すように、本実施例では、Aユニ
ット110はレジスタファイル30とデータアドレス発
生サブユニット(DAGEN)32と算術および論理演
算装置(ALU)34とを含んでいる。Aユニットレジ
スタファイル30はさまざまなレジスタを含み、それら
中には、アドレス発生だけでなくデータフローにも使用
できる16ビットポインタレジスタ(AR0,...,
AR7)およびデータレジスタ(DR0,...,DR
3)がある。さらに、レジスタファイルは、16ビット
巡回バッファレジスタと7ビットデータページレジスタ
とを含んでいる。汎用バス(EB,FB,CB,DB)
130,132,134,136だけでなく、データ定
数バス140およびアドレス定数バス142がAユニッ
トレジスタファイル30に結合されている。Aユニット
レジスタファイル30は、それぞれ反対方向に作動する
1方向性バス144,146によってAユニットDAG
ENユニット32に結合されている。DAGENユニッ
ト32は、16ビットX/Yレジスタと、たとえば処理
エンジン100内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
【0032】Aユニット110は、加算,減算およびA
ND,ORおよびXOR論理演算子などのALUに典型
的に関連する機能だけでなくシフタ機能も含むALU3
4も含んでいる。ALU34は、汎用バス(EB,D
B)130,136および命令定数データバス(KD
B)140にも結合されている。AユニットALUは、
Pユニット108レジスタファイルからレジスタ内容を
受信するPDAバスによってPユニット108に結合さ
れている。ALU34は、アドレスおよびデータレジス
タ内容を受信するバスRGA,RGBとレジスタファイ
ル30のアドレスおよびデータレジスタに転送するバス
RGDとによってAユニットレジスタファイル30にも
結合されている。
【0033】図から分かるように、Dユニット112
は、Dユニットレジスタファイル36と、DユニットA
LU38と、Dユニットシフタ40と、2つの乗算およ
び累算ユニット(MAC1,MAC2)42,44とを
含んでいる。Dユニットレジスタファイル36とDユニ
ットALU38とDユニットシフタ40とは、バス(E
B,FB,CB,DB,KDB)130,132,13
4,136,140に結合され、また、MACユニット
42,44は、バス(CB,DB,KDB)134,1
36,140とデータリードバス(BB)144とに結
合されている。Dユニットレジスタファイル36は、4
0ビット累算器(AC0,...,AC3)と16ビッ
ト遷移レジスタとを含んでいる。また、Dユニット11
2は、Aユニット110の16ビットポインタおよびデ
ータレジスタをソースとして利用したり、40ビット累
算器の他にデスティネーションレジスタを利用すること
ができる。Dユニットレジスタファイル36は、累算器
ライトバス(ACW0,ACW1)146,148を介
してDユニットALU38およびMAC1&2 42,
44から、また、累算器ライトバス(ACW1)148
を介してDユニットシフタ40から、データを受信す
る。データは、累算器リードバス(ACR0,ACR
1)150,152を介してDユニットレジスタファイ
ル累算器からDユニットALU38,Dユニットシフタ
40およびMAC1&2 42,44に読み出される。
DユニットALU38とDユニットシフタ40とは、E
FC,DRB,DR2およびACBとラベルされたさま
ざまなバスを介してAユニット108のサブユニットに
も結合されている。
【0034】図4を参照すると、32ワード命令バッフ
ァキュー(IBQ)502を含む命令バッファユニット
106が示されている。IBQ502は、8ビットバイ
ト506に論理的に分割された32×16ビットレジス
タ504を含んでいる。命令は、32ビットプログラム
バス(PB)122を介してIBQ502に到来する。
命令は、ローカルライトプログラムカウンタ(LWP
C)532によって指示される位置に32ビットサイク
ルでフェッチされる。LWPC532は、Pユニット1
08に位置されたレジスタに含まれている。Pユニット
108は、ローカルリードプログラムカウンタ(LRP
C)536レジスタとライトプログラムカウンタ(WP
C)530レジスタおよびリードプログラムカウンタ
(RPC)534レジスタとをも含んでいる。LRPC
536は、命令デコーダ512,514にロードされる
次の一つまたは複数の命令のIBQ502内の位置を指
示する。すなわち、LRPC534は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指示する。WPCは、パイプラインに
対する命令コードの次の4バイトの始まりのプログラム
メモリ内のアドレスを指示する。IBQ内への各フェッ
チに対して、プログラムメモリからの次の4バイトが命
令境界とは無関係にフェッチされる。RPC534は、
デコーダ512,514に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
【0035】命令は、48ビットワードに形成され、マ
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
【0036】バス516は、任意の1命令サイクル中
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
【0037】プロセッサコア102は7ステージパイプ
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
【0038】パイプラインの第1ステージは、PRE−
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
【0039】次のステージ、FETCH(P1)ステー
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
【0040】パイプラインはPRE−FETCHおよび
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
【0041】次に、命令バッファ内の次の命令が、第3
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
【0042】次のステージはADDRESS(P3)ス
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
【0043】ACCESS(P4)ステージ210で
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
【0044】パイプラインの次のステージはREAD
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
【0045】デュアルアクセスの場合には、リードオペ
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
【0046】最後に、命令がAユニット110内または
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
【0047】次に、パイプラインプロセッサの動作の基
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
【0048】図7に示すように、本発明のこの実施例
は、24ビットアドレスバス114および双方向16ビ
ットデータバス116を介して外部メモリユニット(不
図示)に結合されるメモリ管理ユニット104を含んで
いる。さらに、メモリ管理ユニット104は24ビット
アドレスバス118および32ビット双方向データバス
120を介してプログラム格納メモリ(不図示)に結合
されている。メモリ管理ユニット104は32ビットプ
ログラムリードバス(PB)122を介してマシンプロ
セッサコア102のIユニット106にも結合されてい
る。Pユニット108,Aユニット110およびDユニ
ット112はデータリードおよびデータライトバスおよ
び対応するアドレスバスを介してメモリ管理ユニット1
04に結合されている。Pユニット108はさらにプロ
グラムアドレスバス128に結合されている。
【0049】より詳細には、Pユニット108は24ビ
ットプログラムアドレスバス128と2つの16ビット
データライトバス(EB,FB)130,132と2つ
の16ビットデータリードバス(CB,DB)134,
136とによってメモリ管理ユニット104に結合され
ている。Aユニット110は、2つの24ビットデータ
ライトアドレスバス(EAB,FAB)160,162
と2つの16ビットデータライトバス(EB,FB)1
30,132と3つのデータリードアドレスバス(BA
B,CAB,DAB)164,166,168と2つの
16ビットデータリードバス(CB,DB)134,1
36とを介してメモリ管理ユニット104に結合されて
いる。Dユニット112は、2つのデータライトバス
(EB,FB)130,132と3つのデータリードバ
ス(BB,CB,DB)144,134,136とを介
してメモリ管理ユニット104に結合されている。
【0050】図7は、たとえば分岐命令を転送する、I
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
【0051】本発明のこの実施例では、処理エンジン1
00はいくつかのフォーマットでマシン命令に応答す
る。さまざまなフォーマットのこのような命令の例を以
下に示す。
【0052】8ビット命令:○○○○ ○○○○ これは、8ビット命令、たとえばメモリマップ修飾子
(MMAP())またはリードポート修飾子(readpor
t())を表す。このような修飾子は単に8ビット操作符
号(○○○○ ○○○○)を含むのみである。このよう
な場合、並列性はインプリシットである。
【0053】16ビット命令:○○○○ ○○○E FS
SS FDDD これは、16ビット命令、たとえばデスティネーション
レジスタの内容(たとえば、dst)がそのレジスタの
前の内容(dst)とソースレジスタの内容(src)
との和となる命令、すなわち、
【0054】
【数1】
【0055】の一例を表わす。
【0056】このような命令は、1ビットパラレルイネ
ーブルフィールド(E)と4ビットソースレジスタ識別
子(FSSS)と4ビットデスティネーションレジスタ
識別子(FDDD)とを有する7ビット操作符号(○○
○○ ○○○)である。
【0057】16ビット命令:○○○○ FDDD PP
PM MMMI これは、たとえばデスティネーションレジスタの内容
(たとえば、dst)がメモリ位置の内容(Smem)
となる、すなわち、
【0058】
【数2】
【0059】16ビット命令のもう1つの例である。
【0060】このような命令は、4ビット操作符号(○
○○○)と4ビットデスティネーションレジスタ識別子
(FDDD)と3ビットポインタアドレス(PPP)と
4ビットアドレス変更子(M MMM)と直接/間接ア
ドレスインジケータ(I)とを含んでいる。
【0061】24ビット命令:○○○○ ○○○E LL
LL LLLL oCCC CCCC これは、24ビット命令、たとえば条件分岐命令および
条件が満たされる場合のオフセット(L8)を表す、す
なわち、
【0062】
【数3】
【0063】の一例を表わす。
【0064】このような命令は、1ビットパラレルイネ
ーブルフィールド(E)と8ビット分岐オフセット(L
LLL LLLL)と1ビット操作符号拡張(o)と7
ビット条件フィールド(CCC CCCC)とを有する
7ビット操作符号(○○○○○○○)を含んでいる。
【0065】24ビット命令:○○○○ ○○○○ PP
PM MMMI SSDD ooU% これは、24ビット命令のもう1つの例、たとえば累算
器の内容(ACy)がもう1つの累算器の内容(ACx
およびメモリ位置の内容(随意丸めがある)の二乗の和
を丸めた結果となり、データレジスタの内容(DR3)
が随意メモリ位置の内容となる単一メモリオペランド命
令、すなわち、
【0066】
【数4】
【0067】のもう1つの例である。
【0068】このような命令は、8ビット操作符号(○
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
2ビットソース累算器識別子(SS)と2ビットデステ
ィネーション累算器識別子(DD)と2ビット操作符号
拡張(oo)と更新条件フィールド(u)と1ビット丸
めオプションフィールド(%)とを含んでいる。
【0069】32ビット命令:○○○○ ○○○○ PP
PM MMMI KKKK KKKKKKKK KKKK これは、32ビット命令、たとえばメモリ位置(Sme
m)の一定値(K16)との符号比較に応じてテストレ
ジスタの内容(TC1)が1または0に設定される命
令、すなわち、
【0070】
【数5】
【0071】の一例である。
【0072】このような命令は、8ビット操作符号(○
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
16ビット定数フィールド(KKKK KKKK KKK
K KKKK)とを含んでいる。
【0073】ハードデュアル命令:○○○○ ○○○○
XXXM MMYY YMMM SSDD ooox ss
U% これは、「ハードデュアルアクセス命令」と呼ぶことが
できる32ビットデュアルアクセス命令、または、たと
えばプログラマによってのようにプログラムされたデュ
アル命令であるハードプログラムされたデュアルメモリ
命令である。このような命令は2つのDAGEN演算子
を必要とする。第2の命令は並列に実行することができ
る。それは、典型的には、レジスタまたは制御命令であ
る。バス競合がないかぎり、メモリスタック命令も並列
に実行することができる。このような命令の一例は次の
ようである。
【0074】
【数6】
【0075】この命令は、8ビット操作符号(○○○○
○○○○),4ビットアドレス変更子(M MMM)付
き3ビットXmemポインタアドレス(XXX),4ビ
ットアドレス変更子(M MMM)付き3ビットYme
mポインタアドレス(YYY),2ビットソースアキュ
ムレータ(ACx)識別子(SS),2ビットデスティ
ネーションアキュムレータ(ACy)識別子(DD),
3ビット操作符号拡張(ooo),ドントケアビット
(x),2ビットソースアキュムレータ識別子(s
s),1ビットオプショナルDR3更新フィールド
(U)および1ビットオプショナル丸めフィールド
(%)を含んでいる。
【0076】図8は、命令対およびソフトデュアル命令
を形成する命令の組合せを示す表である。このような命
令対では、対の第1の命令は常にメモリ操作である。第
2の命令もメモリ命令である場合、それはソフトデュア
ル命令すなわち複合命令として構成されることが分かる
であろう。
【0077】命令対の第2の位置に(すなわち、対のよ
り高いプログラムアドレスに対して)配置される命令
は、一対の命令の第1の命令と並列に命令を実施できる
かどうかを示す並列イネーブルフィールド(Eビット)
を含んでいる。並列イネーブルビットは、命令間の命令
フォーマット境界から所定のオフセットで配置される。
デコーダは、命令実行を制御するために「E」ビットに
応答するように構成される。
【0078】命令対で最初にメモリ操作をさせる理由
は、プロセッサパイプラインのアドレス復号ステージに
入るときに、デコーダは、命令のフォーマットを知ら
ず、フォーマット境界がどこであるかさえも知らないた
めである。メモリアドレス復号化は、良好な命令スルー
プットを保証するパイプラインのクリティカルステージ
の1つである。したがって、命令の正確な性質が確認さ
れる前であっても復号を開始できるようにするために
は、復号されるメモリ命令に対するアドレスビットの位
置およびサイズを確実に知る必要がある。
【0079】メモリ命令が第1の命令として命令対内に
配置されるように強制することにより生じるもう1つの
利点は、並列演算が許可されるかどうかを示すフィール
ドをメモリ命令に含める必要がないことである。そのた
め、命令セットはより効率的となり符号サイズを改善す
ることができる。
【0080】他のもう1つの利点は、命令対の第2の命
令を復号するのに必要なハードウェアは、命令対の第1
の命令を復号するためのハードウェアのサブセットであ
るしか必要としないことである。第1の命令は、命令対
の第2の命令よりも低いプログラムアドレスを有する命
令対の命令である。したがって、命令対の高いプログラ
ムアドレスを有する命令用の復号ハードウェアは、命令
対の低いプログラムアドレスを有する命令用の復号ハー
ドウェアのサブセットとすることができる。それによ
り、復号ハードウェアの実現および動作に必要なシリコ
ン面積および消費電力を低減することができる。
【0081】命令対の2つの命令を並列処理できる場合
には、それは各復号および実行ステージで行われる。し
かしながら、物理的なバスタイミング制約により、バス
転送はふらつくことがある。
【0082】図9は、デュアル命令を含むさまざまなタ
イプの命令に対するメモリアクセスが行われるパイプラ
インステージを示す。図4と同様に、図示するパイプラ
インステージは単なる説明用にすぎないことに留意すべ
きである。実際上、プリフェッチおよびフェッチステー
ジは残りのステージから独立したフローを形成する。
【0083】図9を図5と比べると、P1はフェッチス
テージ、P2は復号ステージ、P3はアドレス計算ステ
ージ、P4はアクセスステージ、P5はリードステー
ジ、P6は実行ステージを表す。Bは、Bバスを介した
レジスタからの係数リードアクセスを表す。CおよびD
は、CおよびDバスを介したメモリリードアクセスをそ
れぞれ表す。EおよびFは、EおよびFバスを介したラ
イトアクセスをそれぞれ表す。パイプライン上にバブル
(すなわち、ストール)を生じることなくリードおよび
ライトアクセスを所要サイクルで実行できるようにする
ために、復号はできるだけ早期に行われる。
【0084】図10は、デュアルメモリアクセス命令の
特定の形式を示す。それは、並列性を含んでいる2つの
併合されプログラムされた命令から有効に形成される。
図10のデュアルメモリ命令は、ソフトデュアル命令と
呼ばれ、ここでは複合命令とも呼ばれる。それは、2つ
のプログラムされたシングルメモリアクセス命令をたと
えばコンパイラやアセンブラで命令プロセッサ内で結合
して形成される。すなわち、この複合命令は、デュアル
命令のようにプログラマによってプログラムされたりプ
リプログラムされることはない。この形式の複合命令が
提供されると、両方の命令が同じサイクルで実行される
並列演算によりメモリアクセス性能を改善することがで
きる。下記の特定の例では、ソフトデュアル命令は、デ
ュアル変更子オプションを有する間接アドレッシングに
制限される。その結果、結合した命令サイズに関するサ
イズペナルティなしに並列演算により性能向上を達成す
るようにソフトデュアル命令を符号化することができ
る。
【0085】ソフトデュアル命令は5ビットタグフィー
ルド701によって限定され、図10に示すように個別
の下記の命令フィールドが構成されている。タグフィー
ルドのサイズは、特定のインプリメンテーションに関す
る制約の結果として生じる。すなわち、 − 全体符号化フォーマットは、2つのプログラムされ
た構成命令の符号化フォーマットの和よりも大きくなら
ないように制約される。 − 全体命令フォーマットサイズは8の倍数である。 − 他のシングル命令に対する操作符号のアベイラビリ
ティ。
【0086】下記のものがタグフィールド701に続
く。 − 第1の命令に対する操作符号フィールドの部分70
2。 − 第1の命令に対する間接メモリアドレス(XXXM
MM)703および第2の命令に対する間接メモリアド
レス(YYYMMM)704を含む複合アドレスフィー
ルド703/704。 − 第1の命令に対する操作符号フィールド705の残
部。 − 第1の命令に対するデータフローフィールド70
6。 − 第2の命令の操作符号に対する操作符号フィールド
707。 − 第2の命令に対するデータフローフィールド70
8。
【0087】したがって、ソフトデュアル命令に対する
結合アドレス部は、他の任意のデュアル命令に対するも
のとソフトデュアル命令内の同じ位置に保持される。そ
れにより、関連する命令タイプを知ることなくアドレス
復号を開始できる結果、高速アドレス復号の利点が得ら
れる。それを達成するために、上述したように、ソフト
デュアル命令内のビットを幾分再構成する必要があるこ
とが分かるであろう。
【0088】2つのプログラムされた命令の各々がデー
タアドレス発生(DAGEN)フィールドを含む上述し
た修正に加えて、それらを結合してソフトデュアル命令
内に結合DAGENフィールドを形成することができ
る。結合DAGENフィールドを設けることにより、ソ
フトデュアル命令の後の実行を容易にし速度を速めるこ
とができる。
【0089】図11は、2つの独立命令をソフトデュア
ル命令に変換するためのさまざまなステップを示す。2
つの独立命令721,722はステージ720に表示さ
れている。
【0090】ステージ723で示すように、最初の24
ビット命令721は、第1バイト内の8ビット操作符号
724と、次のバイト内のシングルメモリ(Smem)
アドレス725と、次のバイト内のデータフロービット
726とを含んでいる。第2の24ビット命令722
は、第1バイト内の8ビット操作符号727と、次のバ
イト内のシングルメモリアドレス728と、次のバイト
内のデータフロービット729とを含んでいる。ステー
ジ730において、8操作符号ビットはそれぞれ、各命
令の操作符号バイト724,727内で「O」とラベル
されている。シングルメモリアドレス725,728は
それぞれ、7アドレスビット「A」+間接/直接インジ
ケータビット「I」を含むように示されている。それ
は、標準メモリアクセスに対するアドレスが直接または
間接となることがあるためである。図示する例では、粒
度はバイトに基づいている。しかしながら、他の例で
は、8ビット以外に基づいた粒度を利用することができ
る。さらに、2つの命令は対称的とする必要はなく、第
1の命令は第2の命令とは異なるバイト数とすることが
できる。
【0091】ステージ735において、第1の命令の操
作符号724は2つの部分に分割される。操作符号72
4の8ビットのうち7ビットだけを考えればよい。それ
は、(たとえば、ソフトデュアル命令に対して16進法
でたとえば80〜FFの所定範囲内に全てのメモリ命令
が操作符号を有することを保証することにより)ソフト
デュアル命令の場合にそれが冗長であることを保証する
ことができるメモリコードマッピングの結果である。後
でステージ726,740および図10で分かるよう
に、最初の命令に対する操作符号は分割される。最初の
命令に対する操作符号の3ビットがソフトデュアル命令
タグ737と第1および第2の命令に対する結合アドレ
ス738との間に配置され、4ビットが結合アドレス7
38の後に配置される。
【0092】ステージ736では、ソフトデュアル命令
タグ737の挿入が示されている。これは、ソフトデュ
アル命令を表すものとしてデコーダによって解釈される
ことがあるタグである。シングルメモリフィールド72
5,728の併合も図示されている。これは全ての命令
が間接アドレスに制限されるために達成することがで
き、それにより、間接/直接フラグが不要である。間接
アドレスは、第1および第2の命令に対する3ビットベ
ースアドレスXXXまたはYYYと3ビット変更子(M
MM)とによってそれぞれ表示される。ステージ736
は第2の命令の第1のバイト位置への第1の命令に対す
るデータフローの移動を示し、第2の命令に対する操作
符号はその命令の第2のバイト位置に移動される。
【0093】その結果、図10に示すソフトデュアル命
令のフォーマットが達成される。ソフトデュアル命令対
2つのシングルメモリアクセス命令に対する符号サイズ
ペナルティがないことが分かる。2つのシングルメモリ
(Smem)命令をXmem,Ymemで置換すること
によって、「ソフトデュアル」タグ701/737を挿
入するのに十分なビットが解放される。ソフトデュアル
タグ自体により、デコーダは命令対をメモリ命令として
復号すべきことを検出することができる。命令セットマ
ッピングを使用してメモリ命令がウィンドウ80〜FF
内で符号化されることを保証することができ、それによ
って、第1の操作符号724の最上位ビット(ビット
7)をデュアルフィールド符号化を遂行するときに廃棄
することができる。
【0094】図示する例では、図11に示したさまざま
なステージは、実行する命令を準備するときに、命令プ
ロセッサ,たとえばコンパイラまたはアセンブラによっ
て実施される。命令プロセッサによって行われるステッ
プは図12にフロー図で示されている。
【0095】ステップS1において、命令プロセッサ
は、ソフトデュアル命令に結合される可能性のある2つ
の命令の存在を検出する。それを可能とするために、命
令は並列に行うことができかつデータまたはコントロー
ルフロー不整合を生じないものとする必要がある。命令
セット内の各命令は、アドレスジェネレータリソースと
命令をサポートするのに関連したメモリアクセスのタイ
プとを定義するDAGENタグ内のDAGEN変数によ
って限定される。
【0096】したがって、ステップS2において、命令
プロセッサは、DAGEN変数を解析することによって
2つのスタンドアロンメモリ命令を併合してソフトデュ
アル命令とすることの実行可能性を決定する第1のステ
ップを行う。これがチェックアウトされるものとする
と、命令プリプロセッサは、潜在的バスおよびオペレー
タ競合を解析し、第1および第2の命令の結合に潜在的
なバーがあるかどうかを立証するように作動することが
できる。
【0097】ステップS3において、命令プリプロセッ
サは、ソフトデュアル命令タグ737を適用し、図11
に示すフィールド位置だけでなく操作符号およびアドレ
ス表示も修正する。ステップS4において、命令プリプ
ロセッサによってソフトデュアル命令が出力される。
【0098】図13は、ソフトデュアル命令に対する復
号プロセスを示す略ブロック図である。図13は、命令
バッファユニット106からの48ビット命令ワード8
00の復号を示す。
【0099】図13に示すように命令ワードの左に配置
される操作符号(opcode)から、操作符号復号回
路の論理802,804は、組込みデュアルまたはソフ
トデュアル命令が復号されるべきかどうかを迅速に検出
することができる。タグ復号論理804によるソフトデ
ュアルタグの検出は、「E」ビットまたはソフトデュア
ル操作符号を選択してフォーマット論理806から命令
#2アライメントおよびリマッピング論理818に通す
ようにマルチプレクサ808を制御する。シングルアド
レッシング論理810およびデュアルアドレッシング論
理812は並列に作動して、命令の左端から常に所定の
オフセットで配置されるアドレスフィールドの復号を開
始することができる。デュアル復号論理802およびソ
フトデュアルタグフィールド復号論理804の出力は、
論理814によって結合され、マルチプレクサ816へ
の制御入力を形成する。したがって、デュアル命令が検
出されると、デュアルアドレッシング論理812の出力
はDAGENコントロールに通され、そうでなければ、
シングルアドレッシング論理810の出力がDAGEN
コントロールに通される。
【0100】上述したように、別の形式では、複合命令
は、この複合命令を形成する一対の命令の別々のDAG
EN符号を置換する結合DAGEN符号を含むことがで
きる。複合命令内のDAGENタグは結合DAGEN符
号フィールドの存在を識別することができ、デコーダは
DAGENタグに応答して結合DAGEN符号フィール
ドを復号するように構成されている。結合DAGEN符
号フィールドは結合アドレスフィールドの一部を形成す
ることができる。結合DAGENフィールドにより、実
行速度が有利になる。
【0101】命令がソフトデュアル命令であるならば、
復号を実施する前にリマッピングが必要である。したが
って、命令フィールドリマッピング論理824は、ソフ
トデュアルタグ復号論理804の出力に応答して、その
対の第1の命令に関連する情報のリマッピングを行った
後に、そのリマップされた操作情報を第1の命令用の復
号論理826に通す。同様に、命令対の第2の命令のた
めの命令アライメントおよびリマッピング論理818
が、ソフトデュアルタグ復号論理804の出力に応答し
て、第2のメモリ命令に関連する情報のリマッピングを
行った後に、その情報を第2の命令用の復号論理822
に通す。命令アライメントおよびフィールドリマッピン
グ論理818は、適切なビット16,ビット24,ビッ
ト32またはビット40の命令境界に従って第1の命令
のフォーマットに応じて第2の命令をリアラインするよ
うに作動することもできる。
【0102】図10および図13を参照すると、図13
に示す復号機構は命令バッファからの命令を復号するよ
うに構成されている。図10に示すように、復号機構
は、ソフトデュアル命令のタグフィールド内の所定のタ
グに応答して、所定のソフトデュアル命令内の複合アド
レスフィールドからの第1のメモリ命令に対する第1の
メモリアドレスおよび第2のメモリ命令に対する第2の
メモリアドレスを復号する。
【0103】並列イネーブルビット復号論理820は、
第2の命令を第1の命令と並列に復号して実行できるか
どうかを検証するように作動する。ソフトデュアル命令
は並列イネーブル(「E」)ビットを含まないため、ソ
フトデュアル命令が検出されると、この論理820はデ
ィセーブルされる。
【0104】図14は、ソフトデュアル命令にインター
フェイスするメモリバスの態様を示す略ブロック図であ
り、図15はソフトデュアル命令用のオペランドフェッ
チ制御を要約する表である。
【0105】図14は、Cバス750,Dバス752,
Eバス760およびFバス762を示し、これらのバス
は、前に参照されているが、個別に識別されてはいな
い。
【0106】ソフトデュアルフェッチコントローラ75
4は、プロセッサコア102の命令制御機能の一部を形
成する。それは、オペランドフェッチ機構756,78
2を制御して、第1のデータフローパス790に対する
XおよびYオペランド758,780と第2のデータフ
ローパス792に対するXおよびYオペランド784,
786とをCおよびDバス750,752を介してそれ
ぞれフェッチするように作動する。やはりプロセッサコ
ア102の命令制御機能の一部を形成するソフトデュア
ルライトコントローラ755は、メモリライトインター
フェイス794,796を制御して、第1のデータフロ
ーパス790および第2のデータフローパス792から
Eバス760およびFバス762へのオペランドの各書
込みを制御する。
【0107】図15を形成する表は、ソフトデュアルフ
ェッチコントローラ754およびデュアルライトコント
ローラ755によって行われるオペランドフェッチおよ
びライトコントロール操作を示す。これは、スタンドア
ロンで行われたシングルメモリ命令と比べた場合のソフ
トデュアルメモリ命令に対するオペランドフェッチフロ
ーの変化を示す。したがって、シングルメモリ命令がス
タンドアロンで実行されると、オペランドレジスタがD
バスからロードされて、メモリ要求はD要求となり、そ
れにより、2サイクルを必要とする。しかしながら、ソ
フトデュアル命令が実行されると、フェッチコントロー
ラは、Ymemパスに対するオペランドフェッチフロー
を変え、要求がC要求へ再指向されるとともに、参照符
号1500で示すようにオペランドがDバスではなくC
バスからフェッチされるようにする。有利なことに、オ
ペランド#1およびオペランド#2は同じサイクル内に
並列にフェッチされる。同じ機構がライトインターフェ
イスに適用される。たとえば、参照符号1502で示す
ように、Eバス要求をFバス要求へ再指向することがで
きる。
【0108】並列に実行される命令間の競合を回避する
ために、並列実行用の規則を持つことが必要である。本
発明の一実施例では、並列性規則を利用して、エンジン
リソースを処理するためのアクセスの競合が回避され
る。
【0109】命令は、1つ以上のソースオペランドと1
つ以上の演算子と1つ以上のデスティネーションオペラ
ンドと内部および外部バスとによって定義される。
【0110】ソースおよび/またはデスティネーション
オペランドの例は次のようである。 − A−ユニットレジスタ(ARx,DRx,STx,
(S)SP,CDP,BKxx,BOFxx,MDPx
x,DP,PDP,CSR) − D−ユニットレジスタ(ACx,TRNx) − P−ユニットコントロールレジスタ(BRCx,B
RS1,RPTC,REA,RSA,IMR,IFR,
PMST,DBIER,IVPD,IVPH) − メモリオペランド(メモリ位置またはメモリマップ
ドレジスタ) − 定数 オペランドの例を表1に示す。
【0111】
【表1】
【0112】バスの例は、メモリリードバスと、メモリ
ライトバスと、D−ユニットバスと、A−ユニットバス
と、クロスユニットバスとである。表2は、図3に詳細
に示されているバスを示す。
【0113】
【表2】
【0114】図16は、並列性制御用の規則の復号を含
む命令復号機構600を示す略ブロック図である。次
に、並列性用の規則の要約によりハードウェアを説明す
る。1組の並列性規則のより詳細な例がそれに続く。
【0115】図16は、命令バッファキュー502から
抽出される2つの命令602,604を示す。命令復号
機構は、第1および第2の命令602,604の復号お
よび命令の並列性の検証を行う。図16にデータフロー
/プログラミングフローユニット642で表されるよう
に、それは、A−ユニット110,D−ユニット112
およびP−ユニット108コントロールに与えられる信
号すなわちオペレーティングフローも発生する。
【0116】図13の命令デコーダ826,822にそ
れぞれ対応する第1および第2の命令デコーダ612,
614により、第1および第2の命令602,604の
別々の復号が可能となる。1組の制御信号が各フローに
対して2つの命令から発生される。
【0117】第1の命令デコーダ612から、1つ以上
の第1の制御信号616は、第1の命令に関連するDa
ta Adress GENerationモード(DA
GEN 1)を表示する。第2の制御信号(V)618
は、このアドレッシングモードが第1の命令位置に対し
て有効であるかどうかを示す有効性ビットである。1つ
以上の第3の信号620は、処理エンジン内部のどのバ
スとAユニットおよびDユニットALU,MAC,シフ
タおよびレジスタファイルのいずれとどの演算子とを使
用して命令を実行するかを示す。条件付命令は、621
で条件付実行ユニット634に出力される条件信号を生
じる。
【0118】第2の命令デコーダ614から、1つ以上
の第1の制御信号622は、第2の命令に関連するDA
GENモード(DAGEN 2)を表示する。第2の制
御信号(V)624は、このアドレッシングモードが第
2の命令位置に対して有効であるかどうかを示す有効性
ビットである。1つ以上の第3の信号626は、処理エ
ンジン内部のどのバスとAユニットおよびDユニットA
LU,MAC,シフタおよびレジスタファイルのいずれ
とどの演算子とを使用して命令を実行するかを示す。条
件付命令は、627において条件付実行ユニット634
に出力される条件信号を生じる。
【0119】第1および第2の命令デコーダ612,6
14からの第3の信号620,626は、並列性調停お
よび併合ユニット630に供給される。
【0120】第1および第2の命令デコーダ612,6
14からの有効性信号(V)618,624およびDA
GENモード制御信号616,622は、DAGENモ
ード調停ユニット628に供給される。
【0121】DAGENモード調停ユニット628は、
並列性規則に従ってDAGENモードコンパチビリティ
をチェックするDAGEN調停論理を含んでいる。イン
コンパチブルなDAGEN 1およびDAGEN 2モ
ードは拒絶されて、偽条件信号632を条件付実行ユニ
ット640に出力させる。条件付実行ユニットは、偽条
件信号に応答して、たとえば命令をNo Operat
ion(NOP)に修正することによって、DAGEN
モード信号の効果および2つの命令の実行を修正または
禁止する。
【0122】メモリバスへのDAGEN接続の設計の複
雑性を低減するために、実行されるDAGEN併合操作
を単純化するために、また、メモリバス競合のゆえに、
いくつかのDAGENモード組合せはサポートされない
ことがある。場合によっては、コンパイラは、全ての組
合せをサポートする必要がないように命令の順序をスワ
ップするように作動することができる。したがって、本
例では、表2に記載するように、いくつかのDAGEN
モードはサポートされない(図17)。
【0123】命令1および命令2からのインコンパチブ
ルなリソース要求は拒絶され、これらの要求はたとえば
No Operation(NOP)に修正される。こ
れは、たとえば、2つの命令が同じ演算子,A/Dユニ
ットALU,MAC,SHIFTERおよびレジスタフ
ァイルを要求する場合がそうである。2つの命令が同じ
内部バスを要求する場合には、一方の命令が他方の命令
よりもバスアクセスに対する優先権を有する。競合が発
生する場合、命令1は命令2に勝って内部バスにアクセ
スするようにされている。それにより、パイプラインの
復号ステージにおける並列性チェックの速度が増加する
ことができる。これは、パイプラインの後続ステージに
おいて他方の命令に対して衝突することなく「スムーズ
に」作動するように一方の命令が修正されるためであ
る。この種の詳細化により、デコーダステージタスク
(速度パス)を縮小することができ、同じリソースを一
部共有する命令を使用することができる。これの一例
は、最初の命令からしか状態ビットが更新されない定数
値の共有である。
【0124】2つの命令フローからのDAGENモード
制御信号616,622により図3のDAGENユニッ
ト32は正しい入力レジスタを選択し、実行する正しい
操作を選択し、正しいデスティネーションレジスタを選
択することができる。DAGENモード制御信号61
6,622は、パス636を介して直接DAGENユニ
ット32に通すか、最初にDAGENモード調停628
によって併合することができる。したがって、DAGE
N調停ユニット628は、並列性に従って信号616,
622からのパス636上のDAGEN出力信号をそこ
に与えることができ、無効DAGENモード結合が検出
される場合には、DAGEN出力信号は禁止または無効
とされる。
【0125】並列性調停ユニット630は、リソース制
御信号間の調停を行ってリソース制御信号の無効な結合
を検出するための並列性調停論理を含んでいる。たとえ
ば、並列性調停ユニットは演算子を追跡する。命令対内
で同じ演算子が2度発行される場合には、並列性調停ユ
ニットは命令対を無効にする。これは、条件付実行ユニ
ット834に偽条件信号633を出力することによって
行われる。条件付実行ユニットは、偽条件信号に応答し
て、たとえば命令によって実行される操作に対するデス
ティネーションレジスタの一方または両方の更新を禁止
することにより、リソース制御信号の効果および2つの
命令の実行を修正または禁止する。
【0126】並列性調停ユニット630は、パス638
を介してリソース制御620,626入力を出力する。
並列性調停ユニットは、随意に、リソース制御信号62
0,626を出力する前に併合および/または修正する
ことができる。したがって、たとえばリソース競合が検
出される場合には、たとえば並列性規則に従って命令の
順序を変更することにより、並列性調停ユニットは共通
バスリソースへの第1および第2の命令のアクセスの順
序を制御するように作動することができる。
【0127】並列性調停ユニット630からの638に
おけるリソース制御信号出力は、図3のA−ユニット1
10(ALU34およびA−ユニットレジスタファイル
30を含む),D−ユニット(D−ユニットALU38
とD−ユニットMAC42,44とD−ユニットシフタ
40とD−ユニットレジスタファイル36とを含む)お
よびP−ユニット108の要素に供給される。これらの
制御出力信号により、これらのさまざまな要素は、正し
い入力レジスタを選択し、実行する正しい演算を選択
し、正しいデスティネーションレジスタを選択すること
ができる。
【0128】要約すれば、並列性デコーダ機構により、
2つの対称命令デコーダパスの集団が提供され、続い
て、たとえば後述する並列性規則および関連する作動ユ
ニットへの制御信号のディスパッチに従って不法な命令
対を「スムーズに」拒絶しながら2つの命令制御信号パ
スが併合される。条件付実行ユニットは、並列性規則に
応じて命令の実行を禁止し、修正し、または、イネーブ
ルする。
【0129】並列性規則の適用を例示するために、次
に、このような一組の規則の一例について説明する。
【0130】規則0:全ての規則が考慮されれば、2つ
の命令間の並列性が許される。
【0131】規則1:並列命令の全長が48ビットを越
えず、かつ、命令#2が並列イネーブルビットをアクテ
ィブとする場合には、2つの命令を並列とすることがで
きる。
【0132】規則2:下記のアドレッシング変更子が並
列性を許さない。 −*ARn(#K) −*+ARn(#K) −*CDP(#K) −*+CDP(#K) −*ABS16(#K) −*#K −*port(#K)
【0133】規則3:メモリアクセスの結合から生じる
ソフトデュアル命令は、許されず、実行されないが、2
つの並列「NOP」命令により置換される。2進符号修
正は遂行されない。
【0134】図17は、図16の命令デコーダ612,
614とDAGEN調停および併合ユニット628,6
32とによって実現されるDAGEN並列性規則を説明
するものである。図17に示す表のシンタックスは次の
ようである。 「−」 本例ではサポートされず(別の例では恐らくサ
ポートされる)、アセンブラによって拒絶される。 「E」 並列イネーブルビットを介してサポートされ
る。 「S」 ソフトデュアル方式を介してサポートされる。 「*」 図示する例のハードウェアではサポートされな
い命令対。
【0135】アステリスクにより識別される命令対の場
合には、必要なハードウェアを単純化しおよび/または
シリコンサイズを縮小しおよび/またはコンパイラによ
って実行される前に命令反転が遂行されることがあるた
め、命令対はサポートされないことがある。他の実施例
では、これらの命令対の少なくともいくつかはハードウ
ェアによってサポートされる。
【0136】図17において、行は命令番号1に対する
DAGENモードを表し、列は命令番号2に対するDA
GENモードを表す。
【0137】図16からの有効および無効DAGENモ
ードの比較を次の例で示す。 例1: Smem=DR2//AC2=Smem これは、SmemライトとSmemリードとの結合(S
mem W//Smem R)すなわち「デュアル−W
R」(「デュアルライト/リード」)に等しい。これは
未知のDAGENモードである。したがって、命令のこ
の結合は、本実施例のハードウェアによってサポートさ
れかつDual−RW(デュアルリード/ライト)と呼
ばれる既知のDAGENモードを発生するAC=Sme
m//Smem=DR2として、構成しなければならな
い。
【0138】例2: AC1=DR2//Smem=D
R3 アドレス発生を必要とする命令が1つだけであれば、こ
の命令は第1の位置となる。したがって、この命令対は
次のように構成しなければならない。
【0139】
【数7】
【0140】命令復号機構600は、両方の命令のDA
GENクラスを追跡して、それらがソフトデュアル方式
によってサポートされるグループにかかるかどうかを確
認する。
【0141】$(DAGEN−1)および$(DAGE
N−2)がソフトデュアル方式によってサポートされる
サブセットにかかる場合には、ソフトデュアル命令のD
AGENクラスを定義するために$(DAGEN−1
2)が計算され、2つのオリジナル命令が並列に実行さ
れる。
【0142】$(DAGEN−1)または$(DAGE
N−2)がソフトデュアル方式によってサポートされる
サブセットにかからない場合には、
【0143】
【数8】
【0144】XおよびYの両方について、後修正は実行
されない。
【0145】命令対が廃棄されて強制的に偽条件とされ
ると、前記したように条件付実行ユニット634に偽条
件信号が供給される。
【0146】図18は、並列性調停ユニット630によ
って実現される演算子並列性規則をより詳細に示す。表
3のシンタックスは次のようである。 「−」 本例ではサポートされない(他の例では恐らく
サポートされる)。 「X」 並列イネーブルビットまたはソフトデュアル方
式を介してサポートされる。
【0147】任意のロードまたはストア命令を他の任意
の命令と並列に実行できることを留意すべきである。シ
フトおよびストア命令はDユニットシフタを使用する。
表3のリストは、port()限定記号規則を表す。
【0148】
【表3】
【0149】限定記号は常に第2の位置であることに留
意すべきである。
【0150】規則4:A−ユニット内の並列性規則 本実施例では、A−ユニット内に4つのタイプの操作が
あり、スワップ操作,ALU操作,ロード操作およびス
トア操作である。本実施例では、並列性は、下記の命令
対に対してA−ユニット内でサポートされる。 −Load//Swap −Load//ALU −Load//Store −Load(simple)//Load(simpl
e) −Store//Swap −Store//ALU −Store(simple)//Store/(si
mple) −ALU//Swap 3つ以上のロードがある場合には、命令対は2つの並列
NOP命令によって置換される。
【0151】規則5:D−ユニット内の並列性規則 本実施例では、D−ユニット内に5つのタイプの操作が
あり、スワップ操作,ALU/MAC/SHIFT操
作,ロード操作,ストア操作およびシフトストア操作で
ある。
【0152】本実施例では、下記の命令対に対してD−
ユニット内で並列性がサポートされる。 −Load//Swap −Load//ALUまたはMACまたはSHIFT −Load//Store −Load//Shift Store −Load(simple)//Load(simpl
e) −Store//Swap −Shift Store//Swap −Store//ALUまたはMACまたはSHIFT −Shift Store//ALUまたはMAC −Store(simple)//Store(sim
ple) −Store(simple)//Shift Sto
re −ALUまたはMACまたはSHIFT//Swap 3つ以上のロードがある場合には、命令対は2つの並列
NOP命令によって置換される。
【0153】別の実施例では、たとえば、ALU//M
AC命令,shift//ALU命令,shift//
MAC命令,MAC//Mac命令などに対してさらに
並列性をサポートすることができる。
【0154】規則6:P−ユニット内の並列性規則 P−ユニット内には3つのタイプの操作がある。コント
ロールフロー操作,ロード操作およびストア操作であ
る。各々の例を表4に示す。
【0155】
【表4】
【0156】下記命令対に対してP−ユニット内で並列
性がサポートされる。 −Control Flow操作//LOAD −Control Flow操作//Store −Load//Store −Load(simple)//Load(simpl
e) −Store(simple)//Store(sim
ple)
【0157】規則7:メモリマップアクセスはデータレ
ジスタアクセスに優先する。たとえば、
【0158】
【数9】
【0159】SmemはAC0レジスタ上のMMR(メ
モリマップトレジスタ)アクセスである。このような場
合、AC0の16ビットフィールドが命令Smem=K
16により更新され、AC0=AC0+DR3は行われ
ない。しかしながら、この命令は、適切な状態ビットを
更新する効果を有することがある。他のAC0フィール
ドは影響されない。
【0160】規則8:スタンドアロン命令が2つの同一
デスティネーションを有する場合には、第2のデスティ
ネーションに優先順位が与えられる。この例を示す。
【0161】
【数10】
【0162】規則9:2つの並列命令間にデスティネー
ション競合があれば、命令番号2が命令番号1をオーバ
ライトする。これは状態ビットについても同じである。
この例を示す。
【0163】
【数11】
【0164】次のものしか実行されない。AC1=k4
【0165】規則10:規則10は規則9の例外であ
る。命令番号1がDAGENを使用しかつ命令番号2が
A−ユニットスワップ操作であれば、デスティネーショ
ン競合があり得る。このような場合には、DAGENが
スワップ操作をオーバライトする。
【0166】規則11:2つの並列命令間で共用される
バスリソースのために定数競合がある場合には、命令番
号2の定数が命令番号1の定数をオーバライトする。こ
の例を示す。
【0167】
【数12】
【0168】また、AC1=AC1+K16は、K16
値を有するAC1=AC1+k4として行われる。
【0169】並列命令対毎に使用することができる2つ
の定数バスの周りにアーキテクチュアが配列されてい
る。これらは、DAGENx(KABバス)およびP−
ユニットによって使用されるパイプラインのアドレスフ
ェーズ内のものと、他のA−ユニット演算子およびD−
ユニット(KDBバス)によって使用されるパイプライ
ンの実行フェーズ内のものとである。
【0170】規則12:レジスタからレジスタへのムー
ブ操作は、デスティネーションがどこに位置するかに応
じてA−ユニットまたはD−ユニット(「バイパス」モ
ード)のALUを使用する。この例を示す。 D−ユニットALUを使用してAC1=DR2が行われ
る。 A−ユニットALUを使用してDR2=AC1が行われ
る。
【0171】規則13:DAGENに対する優先順位を
オーバライトする。2つのDAGEN演算子間にライト
競合があれば、次のようにオーバライト機構が実行され
る。 DAGENXがDAGENYをオーバライトする。(D
AGEN演算子X,Y間の競合) DAGENXがDAGEN係数をオーバライトする。
(DAGEN演算子Xと係数との間の競合) DAGENYがDAGEN係数をオーバライトする。
(DAGEN演算子Yと係数との間の競合)
【0172】規則14:Ymem=XmemやSmem
=K16のような命令はD−ユニット専用パスを使用す
る。
【0173】規則15:2つの命令は、一方がモノディ
スパッチ命令であれば、並列とすることができる。そう
でなければ、命令対は2つの並列NOP命令で置換され
る。
【0174】規則16:IDLE命令はいかなる命令も
並列にサポートしない。特定の規則セットについて説明
してきたが、別の実施例では、異なるタイプおよび/ま
たは組合せの並列演算にもう1つの規則セットを展開で
きることが分かるであろう。
【0175】図16の命令復号機構で利用される1組の
並列性規則の例について説明してきた。
【0176】図19は、並列性規則の実現を可能にする
命令復号方法を示すフロー図である。
【0177】ステップS21において、パイプラインス
テージからの2つの命令はそれぞれ、第1および第2の
デコーダ論理602,604(図16参照)で復号さ
れ、DAGEN有効性ビットを有する命令制御信号とD
AGENモード信号とリソース制御信号との発生が含ま
れる。
【0178】ステップS22において、DAGEN有効
性信号および/またはDAGENモード制御信号間の調
停がDAGEN調停論理628(図16参照)内で行わ
れる。並列性規則に従って不法な命令対の「スムーズ
な」拒絶を行うために、無効DAGENモード信号組合
せが検出されると、偽条件信号が条件付実行ユニット6
34に出力される。
【0179】同時に、ステップS23において、リソー
ス制御信号間の調停が並列調停論理630で行われる。
並列性規則に従って不法な命令対の「スムーズな」拒絶
を行うために、無効リソース制御信号組合せが検出され
ると、偽条件信号が条件付実行ユニット634に出力さ
れる。
【0180】ステップS24において、DAGENモー
ド制御信号が、A−ユニットDAGEN32を制御する
DAGEN調停ユニットによって636で出力される。
リソース制御信号も、P−ユニット108とA−ユニッ
ト110およびD−ユニット112と処理エンジンのバ
スアクセスとを制御する並列性調停論理630によって
638で出力される。これらの信号の効果は、DAGE
Nモード調停ユニット628または並列性調停ユニット
630からの偽条件信号に応答して条件付実行ユニット
634によって640においてさらなる制御信号出力で
修正,禁止または置換することができる。
【0181】図20は、図1のプロセッサ10を内蔵す
る集積回路40の略図である。集積回路は、特定用途集
積回路(ASIC)技術を使用して実現することができ
る。図から分かるように、集積回路は、表面実装用の複
数のコンタクト42を含んでいる。しかしながら、集積
回路は、他の構成を含むことができ、たとえば、ゼロ挿
入力ソケットに搭載するための回路の下面上の複数のピ
ンや他の任意適切な構成とすることができる。
【0182】たとえば図20の集積回路に内蔵されてい
るプロセッサ10のような処理エンジンの1つの応用
は、たとえば移動ワイヤレス電気通信装置のような電気
通信装置である。図21は、このような電気通信装置の
一例を示す。図21に示す特定の例では、電気通信装置
は、キーパッドまたはキーボード21およびディスプレ
イ14のような一体型ユーザ入力装置を有する移動体電
話機11である。ディスプレイは、たとえば液晶ディス
プレイやTFTディスプレイのような適切な技術を使用
して実現することができる。プロセッサ10はキーパッ
ド12に接続され、そこで適切なキーボードアダプタ
(不図示)を介してディスプレイ14に接続され、そこ
で適切なディスプレイアダプタ(不図示)を介して電気
通信インターフェイスまたはトランシーバ16、たとえ
ば無線周波数(RF)回路を含むワイヤレス電気通信イ
ンターフェイスに接続されている。無線周波数回路は、
プロセッサ10を含む集積回路40に内蔵してもよい
し、そこから分離してもよい。RF回路16はアンテナ
18に接続されている。
【0183】命令の並列実行用の並列性規則を提供する
処理エンジンについて説明してきた。並列実行を使用す
れば、処理エンジンによる消費電力を低減することがで
きる。並列性規則を使用すれば、命令のロバストで予測
可能な並列実行が可能となる。規則に従って命令組合せ
の範囲を制限すれば、ハードウェアを最適化して冗長性
を低減することができる。たとえば、第2の命令に対す
るデコーダは第1の命令に対するデコーダのサブセット
とすることができ、シリコン面の効率的使用および消費
電力を低減するさらなる可能性がもたらされる。並列性
規則に応答するデコーダハードウェアを提供することに
より、並列性の有効性を自動的に検証することができ、
実行時のリソース競合を回避することができる。体系的
なデバッギングも可能となる。
【0184】本発明の特定の実施例について説明してき
たが、本発明の範囲内で多くの修正/追加および/また
は置換を行うことができる。特に、特定の並列性規則セ
ットを有する特定の処理エンジンアーキテクチュアの状
況において本発明を説明してきた。本発明は他のアーキ
テクチュアおよび規則セットにも同等に応用できること
が分かるであろう。
【0185】ここで使用した「印加される」,「接続さ
れる」および「接続」という用語は、電気的接続パス内
に付加要素がある場合も含めて、電気的に接続されるこ
とを意味する。
【0186】実施例について本発明を説明してきたが、
本明細書に制約的な意味合いはない。当業者ならば、本
明細書を読めば本発明の他のさまざまな実施例が自明で
あろう。したがって、本発明の真の範囲および精神に含
まれる実施例のこのようないかなる修正も添付した特許
請求の範囲に含まれるものとする。
【0187】本出願は欧州で1998年10月6日に出
願されたS.N.98402460.4(TI−276
88EU)および欧州で1998年10月6日に出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
【図面の簡単な説明】
【図1】本発明の実施例に従ったプロセッサの略ブロッ
ク図である。
【図2】図1のプロセッサのコアの略図である。
【図3】図1のプロセッサのコアのさまざまな実行ユニ
ットのより詳細な略ブロック図である。
【図4】図1のプロセッサの命令バッファキューおよび
命令デコーダコントローラの略図である。
【図5】図1のプロセッサのパイプラインフェーズの表
現である。
【図6】図1のプロセッサにおけるパイプラインの動作
例の線図である。
【図7】図1のプロセッサのパイプラインの動作を説明
するためのプロセッサのコアの略表現である。
【図8】デュアル命令の例を示す図である。
【図9】さまざまな命令に対するバスサイクルの相対タ
イミングを示す図である。
【図10】ソフトデュアル命令の一例を示す図である。
【図11】ソフトデュアル命令の発生を示す略図であ
る。
【図12】ソフトデュアル命令の発生のフロー図であ
る。
【図13】ソフトデュアル命令を実行する構造のブロッ
ク図である。
【図14】ソフトデュアル命令操作をインターフェイス
するメモリバスを示す図である。
【図15】ソフトデュアル命令のオペランドフェッチ制
御を示す表である。
【図16】命令を復号する機構を示す略ブロック図であ
る。
【図17】並列性規則を説明する表である。
【図18】並列性規則を説明するもう1つの表である。
【図19】命令を復号する方法を示すフロー図である。
【図20】図1のプロセッサを内蔵する集積回路の略図
である。
【図21】図1のプロセッサを内蔵する電気通信装置の
略図である。
【符号の説明】
10 マイクロプロセッサ 20 プロセッサバックプレーン 22 バックプレーンバス 24 命令キャッシュメモリ 26 周辺装置 28 外部インターフェイス 30 レジスタファイル 32 データアドレス発生サブユニット 34 ALU 36 Dユニットレジスタファイル 38 DユニットALU 40 Dユニットシフタ 42,44 累算ユニット 100 処理エンジン 102 処理コア 104 インターフェイスユニット 106 命令バッファユニット 108 プログラムフローユニット 110 アドレスデータフローユニット 112 データ通信ユニット 118 アドレスバス 120 データバス 122 プログラムリードバス 128 プログラムアドレスバス 130,132 データライトバス 140 命令定数データバス 146,148 累算器ライトギス 150,152 累算器リードバス 160,162 データライトアドレスバス 600 命令復号機構 612,614,826,822 命令デコーダ 628 調停ユニット 630 並列性調停ユニット 634,640,834 条件付実行ユニット 642 データフロー/プログラミングフローユニッ
ト 750 Cバス 752 Dバス 754 ソフトデュアルフェッチコントローラ 755 ソフトデュアルライトコントローラ 756,782 オペランドフェッチ機構 760 Eバス 762 Fバス 790,792 データフローパス 794,796 メモリライトインターフェイス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カリム ドジャファリアン フランス国,ベンセ,バティメント ビー 1,レス トスカネス,ボウレバルド ド ゥ ラ レイネ ジーン 453 (72)発明者 ビィセント ジィレェト フランス国,レ ロウレト,シェマン デ モウティンス,6 (72)発明者 ラウレント イチャルド フランス国,ジュアン レ ピンス,レ ピンス ブレウス − バディメント シ ー,アヴニュー ドゥ キャネス 55

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 命令を並列に実行する処理エンジンを有
    するデジタルシステムであって、 前記処理エンジンが、 第1の位置の第1の命令と第2の位置の第2の命令との
    少なくとも2つの命令を保持する命令バッファと、 前記第1の命令を復号して第1の制御信号を発生する第
    1のデコーダと、 前記第2の命令を復号して第2の制御信号を発生する第
    2のデコーダと、 第1および第2の制御信号間の調停を行って、1組の並
    列性規則に従って前記命令の並列実行を制御する調停論
    理と、を含む、 デジタルシステム。
  2. 【請求項2】 前記第1の制御信号が、前記第1の位置
    の前記第1の命令の有効性を示す第1の有効性信号を含
    み、 前記第2の制御信号が、前記第2の位置の前記第2の命
    令の有効性を示す第2の有効性信号を含み、 前記調停論理が、前記第1および第2の有効性信号間の
    調停を行うデータアドレス発生制御信号調停論理を含
    む、 請求項1記載の処理エンジン。
  3. 【請求項3】 前記第1の制御信号が、少なくとも1つ
    の第1のデータアドレス発生制御信号を含み、 前記第2の制御信号が、少なくとも1つの第2のデータ
    アドレス発生制御信号を含み、 前記調停論理が、前記1組の並列性規則に従って前記第
    1および第2のデータアドレス発生制御信号間の調停を
    行うデータアドレス発生制御信号調停論理を含む、 請求項1記載の処理エンジン。
  4. 【請求項4】 前記第1の制御信号が、前記第1の位置
    の前記第1の命令の有効性を示す第1の有効性信号をさ
    らに含み、 前記第2の制御信号が、前記第2の位置の前記第2の命
    令の有効性を示す第2の有効性信号を含み、 前記データ発生制御信号調停論理が、前記第1および第
    2の有効性信号間を調停するようにさらに作動する、 請求項3記載の処理エンジン。
  5. 【請求項5】 前記データアドレス発生制御信号調停論
    理が、前記データアドレス発生制御信号調停の結果に応
    じて前記データアドレス発生制御信号の効果を禁止およ
    び/または修正するように選択的に作動する、請求項4
    記載の処理エンジン。
  6. 【請求項6】 条件付実行ユニットを含み、 前記データアドレス発生制御信号調停論理が、前記並列
    性規則に従って無効であるデータアドレス発生制御信号
    組合せの検出に応答して偽条件信号を発生するように作
    動し、 前記条件付実行ユニットが、前記偽条件信号に応答し
    て、前記データアドレス発生制御信号の印加を禁止およ
    び/または修正する、 請求項5記載の処理エンジン。
  7. 【請求項7】 前記第1および第2のデータアドレス発
    生制御信号から併合データアドレス発生制御信号を発生
    するデータアドレス発生制御信号併合論理を含む、請求
    項6記載の処理エンジン。
  8. 【請求項8】 前記アドレス発生制御信号に応答するデ
    ータアドレス発生ユニットを含む、請求項7記載の処理
    エンジン。
  9. 【請求項9】 前記第1の制御信号が、少なくとも1つ
    の第1のリソース制御信号を含み、 前記第2の制御信号が、少なくとも1つの第2のリソー
    ス制御信号を含み、 前記調停論理が、前記並列性規則に従って前記第1およ
    び第2のリソース制御信号間の調停を行うリソース制御
    信号調停論理を含む、 請求項4記載の処理エンジン。
  10. 【請求項10】 前記リソース制御信号調停論理が、前
    記リソース制御信号調停の結果に応じて前記リソース制
    御信号の効果を禁止および/または修正するように選択
    的に作動する、請求項9記載の処理エンジン。
  11. 【請求項11】 条件付実行ユニットを含み、 前記リソース制御信号調停論理が、前記並列性規則に従
    って無効であるリソース制御信号組合せの検出に応答し
    て偽条件信号を発生するように作動し、 前記条件付実行ユニットが、前記偽条件信号に応答し
    て、前記リソース制御信号の効果を禁止および/または
    修正する、 請求項10記載の処理エンジン。
  12. 【請求項12】 前記第1および第2のリソース制御信
    号から併合リソース信号を発生するリソース制御信号併
    合論理を含む、請求項11記載の処理エンジン。
  13. 【請求項13】 前記リソース制御信号調停論理が、前
    記並列性規則に従って命令の順序を修正するように作動
    する、請求項9記載の処理エンジン。
  14. 【請求項14】 セルラー電話機である請求項1記載の
    デジタルシステムであって、 キーボードアダプタを介して前記プロセッサに接続され
    た一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
    れたディスプレイと、 前記プロセッサに接続された無線周波(RF)回路と、 前記無線周波回路に接続されたアンテナと、 を含む、 デジタルシステム。
  15. 【請求項15】 第1の位置の第1の命令と第2の位置
    の第2の命令との少なくとも2つの命令を保持する命令
    バッファを含む処理エンジンで並列に命令を実行する方
    法であって、 a)前記第1の命令を復号し、第1の制御信号を発生す
    るステップと、 b)前記第2の命令を復号し、第2の制御信号を発生す
    るステップと、 c)前記第1および第2の制御信号間の調停を行って、
    1組の並列性規則に従って命令の並列実行を制御するス
    テップと、 を含む、方法。
  16. 【請求項16】 前記第1の制御信号が、前記第1の位
    置の前記第1の命令の有効性を示す第1の有効性信号を
    含み、 前記第2の制御信号が、前記第2の位置の前記第2の命
    令の有効性を示す第2の有効性信号を含み、 ステップc)が、前記第1および第2の有効性信号間の
    調停を行うステップを含む、 請求項15記載の方法。
  17. 【請求項17】 前記第1の制御信号が、少なくとも1
    つの第1のデータアドレス発生制御信号を含み、 前記第2の制御信号が、少なくとも1つの第2のデータ
    アドレス発生制御信号を含み、 ステップc)が、前記1組の並列性規則に従って前記第
    1および第2のデータアドレス発生制御信号間の調停を
    行うステップを含む、 請求項15記載の方法。
  18. 【請求項18】 前記第1の制御信号が、前記第1の位
    置の前記第1の命令の有効性を示す第1の有効性信号を
    さらに含み、 前記第2の制御信号が、前記第2の位置の前記第2の命
    令の有効性を示す第2の有効性信号を含み、 ステップc)が、前記第1および第2の有効性信号間の
    調停を行うステップをさらに含む、 請求項17記載の方法。
  19. 【請求項19】 ステップc)が、前記データアドレス
    発生制御信号調停の結果に応じて前記データアドレス発
    生制御信号の効果を選択的に禁止および/または修正す
    るステップをさらに含む、請求項18記載の方法。
  20. 【請求項20】ステップc)が、 前記並列性規則に従って無効であるデータアドレス発生
    制御信号組合せの検出に応答して、偽条件信号を発生す
    るステップをさらに含み、 条件付実行ユニットが、偽条件に応答して、前記データ
    アドレス発生制御信号の印加を禁止および/または修正
    する、請求項19記載の方法。
  21. 【請求項21】 前記第1および第2のデータアドレス
    発生制御信号から併合データアドレス発生制御信号を発
    生するステップをさらに含む、請求項20記載の方法。
  22. 【請求項22】 前記第1の制御信号が、少なくとも1
    つの第1のリソース制御信号を含み、 前記第2の制御信号が、少なくとも1つの第2のリソー
    ス制御信号を含み、 ステップc)が、前記並列性規則に従って前記第1およ
    び第2のリソース制御信号間の調停を行うステップを含
    む、 請求項19記載の方法。
  23. 【請求項23】 ステップc)が、前記リソース制御信
    号調停の結果に応じて前記リソース制御信号の効果を選
    択的に禁止および/または修正するステップをさらに含
    む、請求項22記載の方法。
  24. 【請求項24】 ステップc)が、前記並列性規則に従
    って無効であるリソース制御信号組合せの検出に応答し
    て、偽条件信号を発生するステップをさらに含み、 条件付実行ユニットが、前記偽条件に応答して、前記デ
    ータリソース制御信号の印加を禁止および/または修正
    する、 請求項23記載の方法。
  25. 【請求項25】 前記第1および第2のリソース制御信
    号から併合リソース信号を発生するステップをさらに含
    む、請求項24記載の方法。
JP11321524A 1998-10-06 1999-10-06 命令並列性検証装置付きプロセッサ Pending JP2000215059A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19980402460 EP0992893B1 (en) 1998-10-06 1998-10-06 Verifying instruction parallelism
EP98402460.4 1998-10-06

Publications (1)

Publication Number Publication Date
JP2000215059A true JP2000215059A (ja) 2000-08-04

Family

ID=8235517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11321524A Pending JP2000215059A (ja) 1998-10-06 1999-10-06 命令並列性検証装置付きプロセッサ

Country Status (3)

Country Link
EP (1) EP0992893B1 (ja)
JP (1) JP2000215059A (ja)
DE (1) DE69840406D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542500A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド 次命令タイプフィールド
US10594933B2 (en) 2015-12-28 2020-03-17 Hitachi Kokusai Electric Inc. Monitoring system and image processing method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739235A (zh) * 2008-11-26 2010-06-16 中国科学院微电子研究所 将32位dsp与通用risc cpu无缝混链的处理器装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0239081B1 (en) 1986-03-26 1995-09-06 Hitachi, Ltd. Pipelined data processor capable of decoding and executing plural instructions in parallel
DE69123629T2 (de) * 1990-05-04 1997-06-12 Ibm Maschinenarchitektur für skalaren Verbundbefehlssatz
JP2834289B2 (ja) * 1990-07-20 1998-12-09 株式会社日立製作所 マイクロプロセッサ
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013542500A (ja) * 2010-09-24 2013-11-21 アーム・リミテッド 次命令タイプフィールド
US9977675B2 (en) 2010-09-24 2018-05-22 Arm Limited Next-instruction-type-field
US10594933B2 (en) 2015-12-28 2020-03-17 Hitachi Kokusai Electric Inc. Monitoring system and image processing method

Also Published As

Publication number Publication date
EP0992893A1 (en) 2000-04-12
EP0992893B1 (en) 2008-12-31
DE69840406D1 (de) 2009-02-12

Similar Documents

Publication Publication Date Title
US9003422B2 (en) Microprocessor architecture having extendible logic
US6205543B1 (en) Efficient handling of a large register file for context switching
JP3842474B2 (ja) データ処理装置
US6968444B1 (en) Microprocessor employing a fixed position dispatch unit
US6959367B2 (en) System having read-modify-write unit
EP0782071A2 (en) Data processor
US6260134B1 (en) Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte
WO2000033183A9 (en) Method and structure for local stall control in a microprocessor
WO2001016715A1 (en) Branch instructions in a multithreaded parallel processing system
KR20100017744A (ko) 콤팩트 명령 세트 인코딩
US7228401B2 (en) Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
JP2000276351A (ja) ローカル命令ルーピングを有するプロセッサ
US6742110B2 (en) Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
JP2000305779A (ja) パイプライン保護
JP4502532B2 (ja) データ処理装置
EP1499956B1 (en) Method and apparatus for swapping the contents of address registers
US6681319B1 (en) Dual access instruction and compound memory access instruction with compatible address fields
JP2000215059A (ja) 命令並列性検証装置付きプロセッサ
CN111813447B (zh) 一种数据拼接指令的处理方法和处理装置
JP2000215061A (ja) 複合メモリアクセス命令
JP2000322408A (ja) 線形ベクトル計算
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
US6134650A (en) Apparatus and method for predicting a first scanned instruction as microcode instruction prior to scanning predecode data
EP1050800A1 (en) A pipelined execution unit
US11775310B2 (en) Data processing system having distrubuted registers