JP2000305779A - パイプライン保護 - Google Patents

パイプライン保護

Info

Publication number
JP2000305779A
JP2000305779A JP11321530A JP32153099A JP2000305779A JP 2000305779 A JP2000305779 A JP 2000305779A JP 11321530 A JP11321530 A JP 11321530A JP 32153099 A JP32153099 A JP 32153099A JP 2000305779 A JP2000305779 A JP 2000305779A
Authority
JP
Japan
Prior art keywords
pipeline
resource
processing engine
logic
access
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
JP11321530A
Other languages
English (en)
Inventor
Gilbert Laurenti
ローランティ ジルベール
Jean-Louis Tardieux
− ルイ タルデュー ジャン
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 JP2000305779A publication Critical patent/JP2000305779A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • 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
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 データハザードを回避するパイプライン内の
資源競合管理方法を得る。 【解決手段】 処理エンジンは、いくつかのパイプライ
ンステージ822〜828といくつかの資源およびパイ
プライン保護機構838とを含む。パイプライン保護機
構は、各被保護資源に対して、その資源に対するパイプ
ラインステージ間のアクセス競合を予測する各調停論理
886を含んでいる。各調停論理の出力は、888,8
89に接続されて、パイプラインの選択的停止を制御す
る停止制御信号を形成し、資源アクセス競合を回避す
る。資源は、たとえばレジスタまたはレジスタ内の一部
(フィールド)とすることができる。各資源に対する調
停論理を提供することにより、本発明の実施例は、潜在
的な資源アクセス競合を予測するのに必要な制御論理を
有効に分散することができ、さらにパイプラインを選択
的に停止して競合の実際の発生を回避することができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプラインプロ
セッサ設計に関し、特に、プロセッサパイプラインを競
合に対して保護することに関する。
【0002】
【従来の技術】典型的には、デジタル信号プロセッサ
(DSP)やマイクロプロセッサで見られる最新の処理
エンジンは、処理性能を改善するために、パイプライン
アーキテクチュアを利用している。パイプラインアーキ
テクチュアは、2つ以上の命令が任意の1つのステージ
のパイプライン内で異なる処理ステージにあるようにさ
まざまな命令処理ステージが逐次行われることを意味す
る。
【0003】パイプラインアーキテクチュアでは、1つ
の命令の処理がもう1つの命令の処理を開始できる前に
完了される場合に可能なよりも高速処理を行うことがで
きるが、操作の潜在的な競合に関する著しい計算量を生
じる。たとえば、第1の命令があるレジスタでの操作を
終了する前に第2の命令がそのレジスタまたはレジスタ
の一部へのアクセスを試みる状況では、資源アクセス間
で競合が生じて第2の命令が無効データを受信すること
がある。
【0004】このような潜在的な競合は、しばしば、
「データハザード」と呼ばれる。データハザードが考え
られるケースは、たとえば、次のようである。 −リードアフターライト(例:*ARx=k16が続く
ARx=ARy) −ライトアフターリード(例:mar(ARy=P16)
が続くARx=ARy) −ライトアフターライト(例:mar(ARx=P16)
が続くARx=ARy)
【0005】ハードウェアパイプライン保護のためのさ
まざまな技術が従来技術で知られている。一例は「スコ
アボーディング」と呼ばれる。スコアボーディングによ
り、各レジスタやフィールドは、テーブルやスコアボー
ドを使用してそれらの実行フェーズにより限定された未
決ライトおよびリードを有することができる。しかしな
がら、このような方法は、処理が複雑で論理オーバヘッ
ドしたがって消費電力に関して不経済となることがあ
る。特に、ポータブル応用や主電源以外から給電される
応用(たとえば、バッテリや代替電源応用)のために設
計された処理エンジンでは、このような方法は望ましく
ない。さらに、処理エンジンが大きいな命令セットおよ
び/または並列処理アーキテクチュアを有する場合に
は、スコアボーディング方法は急速に扱いにくいものと
なる。
【0006】他の方法はリード/ライト待ち行列を利用
することができる。しかしながら、このような方法は、
多様なパイプラインフィールドおよび/または資源アク
セスソースがある場合には不適切である。さらに、この
ような方法は、急速に処理が複雑になったり、論理オー
バヘッドおよび消費電力に関して不経済となることがあ
る。
【0007】もう1つの方法として、パイプライン内の
命令への資源符号化の付加を利用することができる。し
かしながら、このような方法にも前記したのと同様な欠
点が伴う。
【0008】
【発明が解決しようとする課題】したがって、上記した
従来技術の方法の欠点を伴わない、データハザードを回
避するパイプライン内での異なる資源競合管理方法が必
要とされている。
【0009】
【課題を解決するための手段】本発明の一態様によれ
ば、複数のパイプラインステージを有するプロセッサパ
イプラインと複数の資源とパイプライン保護機構とを含
む処理エンジンが提供される。パイプライン保護機構
は、各被保護資源に対して、その資源に対するパイプラ
インステージ間のアクセス競合を予測する各調停論理を
含んでいる。各調停論理の出力は、パイプラインの選択
的停止を制御する停止制御信号を形成して資源アクセス
競合を回避するように接続されている。
【0010】資源は、たとえば、レジスタまたはレジス
タの一部(たとえば、フィールド)とすることができ
る。各資源に調停論理を設けることによって、本発明の
一実施例は、潜在的な資源アクセス競合を予測するのに
必要な制御論理の分散を有効に可能として、パイプライ
ンの選択的停止を可能とし、競合が実際に生じるのを回
避することができる。この分散すなわちモジュラー方法
によって、全体論理の管理を比較的単純かつ容易に維持
することができる。また、驚くべきことに、必要な全体
論理を低減することができる。したがって、パイプライ
ン保護機構によって占有される集積回路内の面積すなわ
ちいわゆるリアルエステートは、上記した従来技術の場
合よりも少なくなる。さらに、必要な論理量の低減によ
って、有効なパイプライン保護を提供しながら消費電力
を低減することができる。
【0011】好ましくは、各資源に対する調停論理は、
パイプラインに対して決定されたジェネリック調停論理
から引き出される。ジェネリック関数は、それ自体を想
定されるすべての競合の同時発生を処理することができ
るジェネリック調停論理として集積回路に具現すること
ができる。各調停論理ブロックは、ジェネリック調停関
数を完全に具現することができるが、典型的には、異な
る特殊な形式のジェネリック調停関数しか具現しない。
ジェネリック調停関数は、各パイプラインステージ間で
発生することがあるすべての潜在的なすなわち理論的な
競合の論理的定義を与える。実際上は、当該資源は監視
されるすべてのパイプラインステージにおいてアクセス
可能ではないことがあるため、各資源に対してすべての
理論的な競合が発生することは物理的に可能ではないこ
とがある。しかしながら、各調停論理ブロックを単一の
ジェネリック関数から構成すれば、個別の資源に対する
論理の設計が単純化され、無矛盾性能および試験容易性
が得られる。
【0012】処理エンジンは、典型的には、パイプライ
ンのステージを制御するパイプライン制御論理を含んで
いる。このパイプライン制御論理は、調停論理から引き
出されるまたは出力される停止制御信号を受信するよう
に接続することができる。各調停論理の出力を併合して
パイプラインの選択的停止を制御する停止制御信号を形
成し、資源アクセス競合を回避する出力併合論理を設け
ることができる。
【0013】パイプライン保護機構は、少なくとも選択
されたパイプラインステージからアクセス情報を受信し
て各被保護資源に対するアクセス情報を引き出すように
接続されたアクセスデコーダステージを含むことができ
る。次に、被保護資源に対する調停論理は、その被保護
資源に対するアクセス情報をアクセスデコーダステージ
から受信するように接続することができる。このように
して、各被保護資源に対する調停論理は、その資源につ
いて競合チェックを行うのに必要な情報を受信すること
ができる。
【0014】デコーダステージは複数のアクセスデコー
ダを含むことができ、各アクセスデコーダが各パイプラ
インステージに関連している。各被保護資源に対してそ
の資源に対するさまざまなアクセスデコーダからのアク
セス情報を併合する入力併合論理を設けることができ
る。
【0015】アクセス情報は未決アクセスに関連するこ
とができる。また、それは現在のアクセスに関連するこ
ともできる。事実、現在のアクセスデコーディングステ
ージをパイプラインから現在のアクセス情報を受信する
ように接続して各被保護資源に対する現在のアクセス情
報を引き出すことができ、被保護資源に対する調停論理
は、未決アクセス情報だけでなく、その被保護資源に対
する現在のアクセス情報を受信するように接続される。
【0016】本発明の一実施例において、現在のアクセ
スデコーダステージはレジスタファイルに対するデコー
ダステージであり、レジスタファイルに対する論理はパ
イプライン保護機構に対して再使用され、処理エンジン
に必要な論理が節減される。
【0017】各被保護資源に別々の入力併合論理を設け
てその資源に対する調停論理と接続することができる。
【0018】処理エンジンはデジタル信号プロセッサの
形式とすることができる。または、マイクロプロセッサ
もしくはパイプラインアーキテクチュアを利用する任意
他の形式の処理エンジンとすることができる。処理エン
ジンは集積回路の形式で実現することができる。
【0019】本発明による処理エンジンに対する特定の
応用は、低消費電力および高処理性能を要するワイヤレ
ス電気通信装置、特にたとえば移動電話機などのポータ
ブル電気通信装置の形状である。
【0020】本発明の他の態様によれば、処理エンジン
内のパイプラインの保護方法が提供され、処理エンジン
は、複数のパイプラインステージを有するプロセッサパ
イプラインおよび複数の資源を含んでいる。本方法は、
各被保護資源に対して、別々に資源を調停してパイプラ
インステージ間のアクセス競合を予測し、各資源に対す
る調停結果に応じてパイプラインを選択的に停止して、
資源アクセス競合を回避するステップを含んでいる。
【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つの同じ資源へのアクセスを必要とすることがあ
ることである。第1の命令が資源たとえばレジスタまた
はレジスタの一部たとえばフィールドを変更するように
動作することができ、第2の命令が次にその資源へアク
セスする必要があることは、極めて頻繁である。第1の
命令の処理が終了しているときしか開始されない第2の
命令の処理によって独立に命令が処理されている場合に
は、競合は生じない。しかしながら、パイプラインアー
キテクチュアでは、防止策がとられない限り、第1の命
令が終了しないうちに第2の命令が資源にアクセスする
可能性がある。このような潜在的競合は、しばしば、
「データハザード」と呼ばれる。データハザードが考え
られるケースは、たとえば、次のようである。 −リードアフターライト(例:*ARx=k16が続く
ARx=ARy) −ライトアフターリード(例:mar(ARy=P16)
が続くARx=ARy) −ライトアフターライト(例:mar(ARx=P16)
が続くARx=ARy)
【0052】図8Aは、リードアフターライト(RA
W)に対するパイプライン保護アクションの一例を表
す。ステップ600は、レジスタAR1(たとえば、A
R1=AR0+K16)上で第1の命令によって実行フ
ェーズ(EXE)で行われるライトを表す。ステップ6
02は、AR1(たとえば、AC0=*AR1)上のア
ドレスフェーズ(ADR)で行われるリードを表す。パ
イプライン保護アクション(604)はアドレスフェー
ズに対する停止606のセッティングを含み、そのた
め、612においてAR1へのライトが行われるまで6
10においてリードに対するアドレスは発生されず(A
R1のリードは有効ではない)、614において新しい
AR1値が得られ、アドレスフェーズに対する停止は緩
和(除去)される。
【0053】図8Bは、リードアフターライト(RA
W)に対するパイプライン保護アクションのもう1つの
例を表す。ステップ620は、レジスタAR0(たとえ
ば、AR0=AC0+K16)上で第1の命令によって
実行フェーズ(EXE)で行われるライトを表す。ステ
ップ622は、AR0(たとえば、条件リード/メモリ
マップドレジスタ(MMR)リード)上でリードフェー
ズで行われるリードを表す。パイプライン保護アクショ
ン(624)は予測によるアクセスフェーズ(ACC)
に対する停止626のセッティングを含み、そのため、
628においてアドレスおよび要求はアクティブに維持
され、630においてAC0上でライトが行われて、ア
ドレスフェーズの停止が緩和(除去)され、623にお
いて条件/MMRの新しい値が得られる。または、アド
レスフェーズの代わりに、630においてリードフェー
ズ中に停止を挿入することができる。
【0054】図9は、ライトアフターライト(WAW)
に対するパイプライン保護アクションの一例を表す。ス
テップ640は、レジスタAR1(たとえば、AR1=
AR0+K16)上で第1の命令によって実行フェーズ
(EXE)で行われるライトを表す。ステップ642
は、AR1(たとえば、AC0=*AR1+)上でアド
レスフェーズ(ADR)で行われるライトを表す。パイ
プライン保護アクション(644)はアドレスフェーズ
に対する停止646のセッティングを含み、そのため、
650においてAR1への最初のライトが行われるまで
648においてAR1への第2のライトのためのアドレ
スは発生されず(AR1のライトは許されない)、65
2において新しいAR1値が得られ、アドレスフェーズ
に対する停止は緩和される。
【0055】図10Aは、ライトアフターリード(WA
R)に対するパイプライン保護アクションの一例を表
す。ステップ660は、レジスタAR3(たとえば、A
C2=AR3+K8)上で第1の命令によって実行フェ
ーズ(EX)で行われるリードを表す。ステップ662
は、AR3(たとえば、*AR3+DR0)上でアドレ
スフェーズ(ADR)で行われるライトを表す。パイプ
ライン保護アクション(664)はアドレスフェーズに
対する停止666のセッティングを含み、そのため、6
70においてAR3のリードが行われるまで668にお
いてAR3へのライトのためのアドレスは発生されず
(AR3のライトは許されない)、678において同じ
フェーズ中にAR3ライトが許される。リードは、AR
3の「古い」を得るため、670においてAR3のリー
ドおよびライトは同じフェーズで行うことができる。6
72において、アドレスフェーズに対する停止は緩和
(除去)される。
【0056】図10Bは、ライトアフターリード(WA
R)に対するパイプライン保護アクションのもう1つの
例を表す。ステップ680は、レジスタAR3(たとえ
ば、条件またはMMR)上で第1の命令によってリード
フェーズ(RD)で行われるリードを表す。ステップ6
82は、AR3(たとえば、*AR3+DR0)上でア
ドレスフェーズ(ADR)で行われるライトを表す。パ
イプライン保護アクション(684)はアドレスフェー
ズに対する停止686のセッティングを含み、そのた
め、690においてAR3のリードが行われるまで68
8においてAR3へのライトのためのアドレスは発生さ
れず(AR3のライトは許されない)、次にAR3への
ライトが許され、アドレスフェーズに対する停止は緩和
(除去)される。
【0057】図11は、パイプラインの考えられるすべ
ての資源アクセス競合のジェネリック調停関数の定義を
決定するために採用される方法の略図である。ジェネリ
ック調停関数は、ジェネリック関数の特別な形式として
実現することができる、各調停論理の設計を支えかつ単
純化する抽象概念である。ジェネリック調停関数が埋め
込まれる論理も処理エンジンに含めることができる。ジ
ェネリック調停関数は回路設計の終わりに回路テストを
支援することもできる。本実施例の状況において説明さ
れているが、この方法は他のプロセッサアーキテクチュ
アに使用することができる。
【0058】図11では、初期ステップ(1)において
処理エンジンの機構(700)は全体としてレジスタま
たはレジスタファイルのグループ(たとえば、702,
704,706)に分割される。本例では、プログラム
ユニットすなわち制御フロー(CW)、データユニット
(DU)およびアドレスユニット(AU)に対する3つ
のレジスタファイルが存在する。各レジスタファイルが
いくつかのレジスタN(i)(たとえば、708,71
0,712)を含んでいる。これらのレジスタは被保護
資源を形成することができる。全体レジスタを保護する
だけでなく、または保護する代わりに、レジスタ(たと
えば、714,716,718)の一部(すなわち、そ
の中のフィールド)を保護したいことがある。図11は
資源粒度のこの定義を表す。したがって、被保護資源
は、たとえばレジスタまたはレジスタ内のフィールドと
することができる。
【0059】各被保護資源に対して、ステップ2におい
て考えられる最悪資源使用の解析が引き出される。たと
えば、異なる命令が資源に対する異なる読出しおよび書
込み方法を提供する。レジスタフィールド714に関し
て図11に示すように、その資源に対してリード/ライ
ト操作を行うことができる、720に示すパイプライン
ステージは、ステージP3,P5,P6である。すなわ
ち、この資源に対する最悪資源使用はパイプラインステ
ージP3,P5,P6に関するものである。前記アクセ
スはその実行ステージに関して分類することができる。
【0060】ステップ3においてパイプライン深さ(た
とえば、ここではパイプラインステージP2,P3,P
4,P5,P6)を配慮して、5つの命令I1,I2,
I3,I4,I5について722に示す命令実行オーバ
ラップを考慮しなければならない。
【0061】すべての潜在的なデータハザードが図12
に矢符で示されており、それはパイプラインの異なるス
テージにおける潜在的な競合を示す略図である。図12
は、5つの各命令I1,I2,I3,I4,I5に対す
る図5の5つのステージP2〜P6を示す。
【0062】見つけたデータハザードの考察から、図1
3に示すようにジェネリック調停関数を引き出すことが
でき、このジェネリック調停関数は現在および未決アク
セス間の関係を定義する。次に、ジェネリック調停関数
を使用してパイプラインの選択停止を制御してデータハ
ザードを回避することができる。ジェネリック論理はパ
イプラインに対するすべての潜在的な資源アクセス競合
を表す。図12に略示した潜在的競合問題の解析から、
下記の競合を生じやすい信号が識別される。 a: 現在のリードステージP3 b: 未決(ステージP4)リードステージP6 c: 未決(ステージP4)リードステージP5 d: 現在のリードステージP5 e: 未決(ステージP5)リードステージP6 f: 現在のリードステージP6 1: 現在のライトステージP3 2: 未決(ステージP4)ライトステージP6 3: 未決(ステージP4)ライトステージP5 4: 未決(ステージP5)ライトステージP6 5: 現在のライトステージP5 6: 現在のライトステージP6
【0063】これらの信号を解釈してADR(P3)を
停止する信号stall stage4およびACC
(P4)ステージを停止する信号stall stag
e5を形成する論理を図13に示す。信号“d”および
“f”は図示されていないことが分かるであろう。しか
しながら、これらの信号は、7−ステージリードに対処
するすべての潜在的な競合が未決信号“b”および未決
信号“e”を使用する予測により解決されるために必要
とされない。したがって、これらの信号は、それに関係
するいかなる競合も既に予測できるため、図13に示す
必要がない。
【0064】したがって、一般的にジェネリック関数は
多数の可変オペランドを有し、各調停論理は低度の退化
を有する、すなわち、固定されるジェネリック関数内で
可変のいくつかのオペランドを有するジェネリック関数
の特殊な形式すなわちサブセットであることが分かるで
あろう。
【0065】一度決定されると、ジェネリック調停関数
は各調停論理ブロックの回路設計を実現するのに使用す
ることができ、それらは全てジェネリック調停関数の特
殊な形式として定義することができる。各資源に対し
て、ジェネリック調停関数により想定される競合のいく
つかは一般的に発生することができないため、個別の各
資源の調停論理に対して完全なジェネリック形式は不要
である。
【0066】想定されるすべての競合の同時発生に対す
る保護を望む場合には、ジェネリック調停関数を具現す
るジェネリック調停論理は処理エンジンに設けるだけで
よい。
【0067】ジェネリック調停関数の概念は、処理エン
ジンのハードウェア設計のソフトウェアテストステージ
においてさらに利用することができる。一般的に、パイ
プライン処理エンジンハードウェアに対するすべてのテ
ストパターンを発生することは、CPU、その命令セッ
トおよびアーキテクチュアの計算量のため膨大な作業と
なることがある。テストパターンは、予め指定した基準
に関して定義する必要がある。非常に労力を要するのは
この基準の仕様である。本設計により、従来の命令セッ
トレーテンシテーブルに関連してジェネリック関数を基
準として使用して関数テストパターン発生器を生成する
ことができる。ジェネリック関数により想定される考え
られる競合へテスト範囲を制約することができるため、
テストパターン発生器の生成が単純化される。テストパ
ターン発生器はジェネリック関数から直接続くため、ハ
ードウェア設計テストプロセスはより速いだけでなくよ
り体系的となって、良好なカバレッジを保証する。
【0068】図14は、処理エンジンに対するインター
ロックされたアーキテクチュアの略概観図である。図1
4に示すように、制御フロー800から命令を受信する
第1および第2のパイプライン820,850がある。
図2に関して、たとえば、第1のパイプラインはDユニ
ットとし、第2のパイプラインはAユニットとすること
ができた。
【0069】制御フローは、命令バッファ810および
第1および第2の命令ストリームを復号する第1および
第2のデコーダ812,814を含んでいる。並列符号
化有効性チェックが並列検証論理816において遂行さ
れ、並列コンテクストは有効であることが保証される。
デコーダ812,814からの命令は、ディスパッチコ
ントローラ808の制御下でディスパッチ論理818か
らディスパッチされる。
【0070】第1のパイプライン820において、連続
するパイプラインステージ822,824,826,8
28はローカルパイプラインコントローラ830の制御
下にある。第1のパイプライン820には、第1のロー
カルインターロックコントローラを形成する第1のロー
カルインターロック制御論理838が関連している。パ
イプラインコントローラは、関連するインターロック制
御論理からの制御信号に応答してパイプラインステージ
の選択的停止を引き起こす。それは、パイプライン82
0からの出力に応答しパイプライン820に対するレジ
スタファイル832からの出力にも応答する。レジスタ
ファイル832はレジスタファイル制御論理834およ
び個別レジスタ836を含んでいる。1つ以上の演算子
840,842を現在のアクセス操作に関してアクセス
することができる。
【0071】第2のパイプライン850において、連続
するパイプラインステージ852,854,856,8
58はローカルパイプラインコントローラ860の制御
下にある。第2のパイプライン850には、第2のロー
カルインターロックコントローラを形成する第2のロー
カルインターロック制御論理868が関連している。パ
イプラインコントローラは、関連するインターロック制
御論理からの制御信号に応答して、パイプラインステー
ジの選択的停止を引き起こす。それは、パイプライン8
50からの出力に応答して、パイプライン850に対す
るレジスタファイル862からの出力にも応答する。レ
ジスタファイル862はレジスタファイル制御論理86
4および個別レジスタ866を含んでいる。1つ以上の
演算子870,872を現在のアクセス操作に関してア
クセスすることができる。
【0072】各ローカルパイプラインコントローラ83
0,860は、任意のインターロックコントローラによ
って発生される停止を他のパイプラインコントローラに
拡げる信号875により各ローカルインターロックコン
トローラ838,868からの出力に応答することが分
かるであろう。この一般的原理は拡張可能である。した
がって、3つ以上のパイプラインが提供されると、各パ
イプラインに対するローカルパイプラインコントローラ
はすべてのローカルインターロックコントローラからの
出力に応答する。
【0073】したがって、図14において、インターロ
ック制御の自然分割はレジスタファイルに対するものと
同じである。しかしながら、そうする必要はなく、調停
関数情報位置(未決対現在アクセス)に応じてそのオリ
ジナルレジスタファイルから別のレジスタファイルに個
別インターロックコントロールを移すのが望ましいこと
もある(たとえば、838または868)。
【0074】上述したように、本実施例には、3つのレ
ジスタファイルすなわち制御フロー(CF)用とDユニ
ット(DU)用とAユニット(AU)用とがある。した
がって、3セットのローカルインターロック制御論理が
提供される。しかしながら、制御論理の物理的位置は、
未決および/または現在のアクセス情報が主として各位
置(AU,CF)に配置されるように分散される。Dユ
ニットに対して、インターロック論理は制御フローユニ
ットに移され、そこでは、制御に対する信号の最大パー
センテージが命令パイプライン内で未決である。レジス
タファイルの現在のアクセスをできるだけ多く再使用す
ることによって、論理オーバヘッドを最小限に抑えるこ
とができる。発生される停止は、パイプラインおよび関
連するローカルパイプライン制御論理を有するすべての
CPUサブユニット内に展開される。
【0075】たとえば、図14のパイプライン820に
対するインターロック制御機構の典型的な構造の略概観
図を図15に示す。この機構は図14のパイプライン8
50などの他のパイプラインに対するものと同じ構造に
できることが分かるであろう。命令パイプライン自体が
これを達成するのに使用されるため、停止構成に対する
メモリ要素(リード/ライト待ち行列)は設けられない
ことが分かるであろう。たとえば、2つの連続する命令
間のパイプラインのステージP3からステージP6への
ライトアフターライト競合は3サイクル停止を発生しな
ければならない(ステージP3において)。実際上、イ
ンターロック論理が3×1サイクル連続停止を発生する
(ステージP3において)。
【0076】図15はmハザード検出のための規則正し
い並列構造を示し、下記のものを含んでいる。 − 第1のレベルは、ベーシックデローダ882(未決
アクセスまたは現在アクセスからの)を含んでいる。こ
れらのデコーダは、レジスタファイル内のデコーダ88
0と同じであるが、未決信号に適用される。デコーダ論
理は、少なくとも選択されたパイプラインステージから
のアクセス情報に応答して、各被保護資源に対するアク
セス情報を引き出す。デコーダ882は、未決アクセス
情報を復号するように動作する。デコーダ880は、現
在アクセスを復号するように動作する。 − 第2のレベルは、保護する各レジスタに対する等価
信号(調停関数感覚で)の併合を行うステージ884を
含んでいる。それは、たとえば図13に示すような論理
を使用して、これらの信号をORゲート内でORして達
成される。現在アクセスに対するデコーダ880の出力
は、併合論理883において併合され、次に併合論理8
84に供給され、そこで、未決アクセスに対するデコー
ダ882の出力と併合される。 − 第3のレベルは、保護するレジスタと同数の調停論
理886セットによって構成されている。調停論理は、
図13に示すジェネリック調停関数からそこへの入力
(すなわち、それは図13の調停論理のサブセットを形
成する)に従って抽出され、各レジスタアクセストレー
スに与えられる(簡約化される)。レジスタアクセスト
レースは、アクセス/フェーズを指定する着信信号から
形成される。 − 第4のレベルは、たとえばORゲートを使用したす
べての調停結果の単なる併合888である。調停論理の
各セットが1と3との間の停止を発生する(ステージ
3,4,5において)。同じステージのすべての停止が
一緒に併合される。併合された出力信号は、停止制御信
号889として関連するパイプライン制御論理に与えら
れて、パイプラインの選択的停止を制御する。
【0077】停止制御信号889は、レジスタアクセス
制御論理890現在アクセス制御にも与えられる。この
アーキテクチュアでは停止ペナルティ縮減は考慮され
ず、その結果、任意の競合により適切なパイプライン停
止が生じ、それは下位ステージの凍結および次のステー
ジにおけるバブル挿入である。
【0078】調停論理は、その「論理再使用」の結果、
ハードウェアが比較的単純である。論理再使用は、調停
論理が実施例では併合論理883を介して既存のメイン
パイプライン822〜828の待ち行列からのタッピン
グを使用することを意味し(予め提案されている調停の
ための新しい待ち行列を生成するのではなく)、また、
デコーダ880からの結果を使用することも意味する。
したがって、調停論理ブロックに付加する必要のあるハ
ードウェアの量が著しく低減される。DSP集積回路と
しての実施例の特定のハードウェアインプリメンテーシ
ョンでは、すべての調停論理が総CPUエリアの2%以
下しかカバーしない。それに比べて、論理再使用を行わ
なければ、匹敵するレベルのパイプライン保護を提供す
るのに必要な論理に要するチップエリアは少なくとも数
倍大きくなり、恐らくは1桁大きくなる。
【0079】パイプライン保護機構について説明してき
たが、その規則性および一般性の結果、回りくどくなら
ずに実現およびテストが行われる。リード/ライト未決
(未決操作)の待ち行列はパイプライン自体によって処
理される。したがって、インターロック検出論理は、純
粋に組合せ的であり、インターロック機構の一部として
リード/ライト待ち行列を必要とすることがない。
【0080】図16は、図1のプロセッサ10を内蔵す
る集積回路40の略図である。集積回路は特定用途集積
回路(ASIC)技術を使用して実現することができ
る。図から分かるように、集積回路は複数の表面実装コ
ンタクト42を含んでいる。しかしながら、集積回路は
他の構成を含むことができ、たとえば回路下面上の複数
のピンがゼロ挿入力ソケット内に実装される構成や、そ
の他任意の適切な構成とすることができる。
【0081】たとえば図16のような集積回路内に内蔵
されるようなプロセッサ10などの処理エンジンの1つ
の応用は、移動ワイヤレス電気通信装置などの電気通信
装置である。図17にこのような電気通信装置の一例を
示す。図17に示す特定の例では、電気通信装置は、キ
ーボードまたはキーボード12とディスプレイ14など
の一体型ユーザ入力装置付き移動体電話機11である。
ディスプレイは、たとえば、液晶ディスプレイやTFT
ディスプレイなどの適切な技術を使用して実現すること
ができる。プロセッサ10はキーボード12に接続さ
れ、そこで、適切なキーボードアダプタ(不図示)を介
してディスプレイ14に接続され、そこで、適切なディ
スプレイアダプタ(不図示)を介して電気通信インター
フェイスすなわちトランシーバ16たとえば無線周波数
(RF)回路を含むワイヤレス電気通信インターフェイ
スに接続される。無線周波数回路は、プロセッサ10を
含む集積回路40に内蔵したり、独立したものとするこ
とができる。
【0082】特定の実施例に関して説明してきたが、発
明の範囲内で多くの変更/追加および/または置換を行
えることが分かるであろう。
【0083】ここで使用した用語「加えられる」、「接
続される」、「接続」は電気接続経路内に付加素子があ
る場合も含めて電気的に接続されることを意味する。
【0084】実施例について本発明を説明してきたが、
この明細書には制約的な意味合いはない。当業者なら
ば、この明細書を読めば本発明の他のさまざまな実施例
が自明であろう。したがって、添付した特許請求の範囲
は発明の真の範囲および精神に含まれる実施例のこのよ
うないかなる変更も包含するものとする。
【0085】本出願は1998年10月6日に欧州で出
願されたS.N.98402466.1(TI−276
81EU)および1998年10月6日に欧州で出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
【図面の簡単な説明】
【図1】本発明の実施例に従ったプロセッサの略ブロッ
ク図である。
【図2】図1のプロセッサのコアの略図である。
【図3】図1のプロセッサのコアのさまざまな実行ユニ
ットのより詳細な略ブロック図である。
【図4】図1のプロセッサの命令バッファキューおよび
命令デコーダコントローラの略図である。
【図5】図1のプロセッサのパイプラインフェーズの表
現である。
【図6】図1のプロセッサにおけるパイプラインの動作
例の線図である。
【図7】図1のプロセッサのパイプラインの動作を説明
するためのプロセッサのコアの略表現である。
【図8】図8Aはリードアフターライトハザードの一例
であり、図8Bはリードアフターライトハザードのもう
1つの例である。
【図9】ライトアフターライトハザードの例である。
【図10】図10Aライトアフターリードハザードの一
例であり、図10Bはライトアフターリードハザードの
もう1つの例である。
【図11】さまざまなパイプラインステージにおいて考
えられる競合である。
【図12】ジェネリック調停関数定義プロセスの誘導で
ある。
【図13】ジェネリック調停論理の略図である。
【図14】本発明の実施例を内蔵する処理エンジンのデ
ュアルパイプライン算術ユニットのアーキテクチュアで
ある。
【図15】本発明によるパイプライン保護論理の例の略
ブロック図である。
【図16】図1のプロセッサを内蔵する集積回路であ
る。
【図17】図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 データライトバス 134,136,144 データリードバス 140 命令定数データバス 142 アドレス定数バス 146,148 累算器ライトバス 150,152 累算器リードバス 160,162 データライトアドレスバス 502 命令バッファキュー 504 レジスタ 512,514 命令デコーダ 520,521,918,922,946,947 マ
ルチプレクサ 530 ライトプログラムカウンタ 532 ローカルライトプログラムカウンタ 534 リードプログラムカウンタ 536 ローカルリードプログラムカウンタ 700 処理エンジン機構 702,704,706,862 レジスタファイル 708,710,712,714,716,718,8
32,836,866レジスタ 808 ディスパッチコントローラ 810 命令バッファ 812,814,880,882 デコーダ 816 検証論理 820,850 パイプライン 822,824,826,828,852,854,8
56,858,884パイプラインステージ 830,860 ローカルパイプラインコントローラ 838,868 ローカルインターロック制御論理 834,864 レジスタファイル制御論理 883,884 併合論理 886 調停論理 890 レジスタアクセス制御論理

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 複数のパイプラインステージを有するプ
    ロセッサパイプラインと複数の資源とパイプライン保護
    機構とを含む処理エンジンを具備するデジタルシステム
    であって、 前記パイプライン保護機構が、 各被保護資源に対する前記パイプラインステージ間のア
    クセス競合を予測するための別々の調停論理を含み、 各調停論理の出力が、前記パイプラインのステージを選
    択的に停止させるための停止制御信号を形成するように
    接続されて資源アクセス競合を回避する、 デジタルシステム。
  2. 【請求項2】 各調停論理が、特定形式の単一のジェネ
    リック調停関数として定義することができる、請求項1
    記載の処理エンジン。
  3. 【請求項3】 前記ジェネリック調停関数が、前記処理
    エンジンのジェネリック的調停論理内に埋め込まれてい
    る、請求項2記載の処理エンジン。
  4. 【請求項4】 前記パイプラインのステージを制御する
    パイプライン制御論理を含み、 該パイプライン制御論理が、前記調停論理から出力され
    る前記停止制御信号を受信するように接続されている、 請求項3記載の処理エンジン。
  5. 【請求項5】 前記パイプライン保護機構が、各調停論
    理の出力を併合して前記パイプラインの選択的停止を制
    御する停止制御信号を形成して資源アクセス競合を回避
    する出力併合論理を含む、請求項4記載の処理エンジ
    ン。
  6. 【請求項6】 各調停論理が、前記パイプラインからア
    クセス情報を受信するように接続されている、請求項5
    記載の処理エンジン。
  7. 【請求項7】 各調停論理が、該調停論理に関連する前
    記被保護資源に関連する制御信号をさらに受信するよう
    に接続されている、請求項6記載の処理エンジン。
  8. 【請求項8】 前記パイプラインからアクセス情報を受
    信して各被保護資源に対するアクセス情報を引き出すよ
    うに接続されているデコーダステージをさらに含む、請
    求項7記載の処理エンジン。
  9. 【請求項9】 前記もう1つの制御信号が、前記デコー
    ダステージから出力される、請求項8記載の処理エンジ
    ン。
  10. 【請求項10】 前記デコーダステージが、複数のアク
    セスデコーダを含み、 各アクセスデコーダが、各パイプラインステージに関連
    しており、 前記パイプライン保護機構が、少なくとも1つの被保護
    資源に対して、前記アクセスデコーダからの前記資源に
    対するアクセス情報を併合する入力併合論理を含む、請
    求項6記載の処理エンジン。
  11. 【請求項11】 前記アクセス情報が、未決アクセスに
    関連する、請求項10記載の処理エンジン。
  12. 【請求項12】 前記パイプラインから現在のアクセス
    情報を受信して各被保護資源に対する現在のアクセス情
    報を引き出すように接続された現在アクセスデコーダス
    テージをさらに含み、 被保護資源に対する前記調停論理が、該被保護資源に対
    する現在のアクセス情報を受信するようにさらに接続さ
    れている、 請求項11記載の処理エンジン。
  13. 【請求項13】 前記現在アクセスデコーダステージ
    が、レジスタファイルに対するデコーダステージであ
    る、請求項12記載の処理エンジン。
  14. 【請求項14】 前記現在アクセス情報が、前記入力併
    合論理にも供給される、請求項13記載の処理エンジ
    ン。
  15. 【請求項15】 各被保護資源に対して該資源に対する
    各入力併合論理をさらに含む、請求項10記載の処理エ
    ンジン。
  16. 【請求項16】 複数の資源の中の少なくとも1つの資
    源が、1群のレジスタとレジスタとレジスタのフィール
    ドとレジスタのサブフィールドとからなるグループから
    選択される、請求項1記載の処理エンジン。
  17. 【請求項17】 キーボードアダプタを介して前記プロ
    セッサに接続された一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
    れたディスプレイと、前記プロセッサに接続された無線
    周波数(RF)回路と、 該RF回路に接続されたアンテナと、 をさらに含む、請求項1記載のデジタルシステム。
  18. 【請求項18】 複数のパイプラインステージを有する
    プロセッサパイプラインと複数の資源とを含む処理エン
    ジン内のパイプラインを保護する方法であって、 各被保護資源に対して、資源を別々に調停して前記パイ
    プラインステージ間のアクセス競合を予測するステップ
    と、 前記各資源に対する前記調停の結果に応じて前記パイプ
    ラインのステージを選択的に停止して資源アクセス競合
    を回避するステップと、 を含む、方法。
  19. 【請求項19】 各被保護資源に対する調停論理が、ジ
    ェネリック調停関数から引き出される、請求項18記載
    の方法。
  20. 【請求項20】 前記ジェネリック調停関数が、前記パ
    イプラインに対するすべての潜在的資源アクセス競合を
    表す、請求項19記載の方法。
  21. 【請求項21】 少なくとも選択されたパイプラインス
    テージからのアクセス情報が、各被保護資源に対するア
    クセス情報を引き出すように復号される、請求項20記
    載の方法。
  22. 【請求項22】 少なくとも1つの被保護資源に対し
    て、複数のパイプラインステージに対するアクセス情報
    が、該資源に対する調停論理による調停のために併合さ
    れる、請求項21記載の方法。
  23. 【請求項23】 前記アクセス情報が、未決アクセスに
    関連する、請求項22記載の方法。
  24. 【請求項24】 アクセス情報が、現在の資源アクセス
    に関連する、請求項23記載の方法。
  25. 【請求項25】 プロセッサのパイプラインステージ間
    の考えられる競合を定義するジェネリック関数を有する
    マルチステージプロセッサのハードウェア設計をソフト
    ウェアテストする方法であって、 命令セット・ラテンシ・テーブルとともに前記ジェネリ
    ック関数を適用してテストパターン発生器を生成するス
    テップと、 前記テストパターン発生器を適用して前記ハードウェア
    設計をテストするステップと、 を含む、方法。
JP11321530A 1998-10-06 1999-10-06 パイプライン保護 Pending JP2000305779A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP98402466.1 1998-10-06
EP98402466A EP0992896A1 (en) 1998-10-06 1998-10-06 Pipeline protection

Publications (1)

Publication Number Publication Date
JP2000305779A true JP2000305779A (ja) 2000-11-02

Family

ID=8235522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11321530A Pending JP2000305779A (ja) 1998-10-06 1999-10-06 パイプライン保護

Country Status (2)

Country Link
EP (1) EP0992896A1 (ja)
JP (1) JP2000305779A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851033B2 (en) * 2002-10-01 2005-02-01 Arm Limited Memory access prediction in a data processing apparatus

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591360B1 (en) 2000-01-18 2003-07-08 Hewlett-Packard Development Company Local stall/hazard detect in superscalar, pipelined microprocessor
US6587940B1 (en) 2000-01-18 2003-07-01 Hewlett-Packard Development Company Local stall/hazard detect in superscalar, pipelined microprocessor to avoid re-read of register file
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US7904615B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7617383B2 (en) 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7809874B2 (en) * 2006-06-21 2010-10-05 International Business Machines Corporation Method for resource sharing in a multiple pipeline environment
US7555637B2 (en) 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
US20080270751A1 (en) * 2007-04-27 2008-10-30 Technology Properties Limited System and method for processing data in a pipeline of computers
CN113488099A (zh) * 2021-06-11 2021-10-08 青岛本原微电子有限公司 Dsp寄存器访问冲突处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3373607B2 (ja) * 1993-09-01 2003-02-04 富士通株式会社 プロセッサの制御機構検証用命令列の自動生成方法及び装置
EP0779577B1 (en) * 1993-10-18 2002-05-22 VIA-Cyrix, Inc. Micoprocessor pipe control and register translation
JP3274036B2 (ja) * 1994-05-30 2002-04-15 富士通株式会社 プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6851033B2 (en) * 2002-10-01 2005-02-01 Arm Limited Memory access prediction in a data processing apparatus

Also Published As

Publication number Publication date
EP0992896A1 (en) 2000-04-12

Similar Documents

Publication Publication Date Title
US6810475B1 (en) Processor with pipeline conflict resolution using distributed arbitration and shadow registers
US6507921B1 (en) Trace fifo management
US6363475B1 (en) Apparatus and method for program level parallelism in a VLIW processor
US5430884A (en) Scalar/vector processor
US6370640B1 (en) Virtual shadow registers and virtual register windows
US5933627A (en) Thread switch on blocked load or store using instruction thread field
JP3842474B2 (ja) データ処理装置
KR19980018072A (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리
KR20080109099A (ko) 고성능 알아이에스씨 마이크로프로세서 구조
US7779240B2 (en) System and method for reducing power consumption in a data processor having a clustered architecture
JP2000276351A (ja) ローカル命令ルーピングを有するプロセッサ
JP2000305779A (ja) パイプライン保護
US20030074543A1 (en) A processor with apparatus for verifying instruction parallelism
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
JP2000259408A (ja) 遅延スロットにおけるソフトウェアブレークポイント
KR19980018065A (ko) 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리
US6119220A (en) Method of and apparatus for supplying multiple instruction strings whose addresses are discontinued by branch instructions
US5598547A (en) Vector processor having functional unit paths of differing pipeline lengths
EP1625492A1 (en) Methods and apparatus for instruction alignment
EP0992889A1 (en) Interrupt processing during iterative instruction execution
US6681319B1 (en) Dual access instruction and compound memory access instruction with compatible address fields
US20140372733A1 (en) Processor with inter-execution unit instruction issue
JP2000322408A (ja) 線形ベクトル計算
US20020087832A1 (en) Instruction fetch apparatus for wide issue processors and method of operation
JP2000276352A (ja) パイプライン保護