JP2000276351A - ローカル命令ルーピングを有するプロセッサ - Google Patents

ローカル命令ルーピングを有するプロセッサ

Info

Publication number
JP2000276351A
JP2000276351A JP11321533A JP32153399A JP2000276351A JP 2000276351 A JP2000276351 A JP 2000276351A JP 11321533 A JP11321533 A JP 11321533A JP 32153399 A JP32153399 A JP 32153399A JP 2000276351 A JP2000276351 A JP 2000276351A
Authority
JP
Japan
Prior art keywords
instruction
processing engine
instructions
buffer
unit
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
JP11321533A
Other languages
English (en)
Inventor
Gilbert Laurenti
ローランティ ジルベール
Eric Ponsot
ポンソ エリク
Karim Djafarian
ドジャファリアン カリム
Marc Couvrat
クブラ マルク
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 JP2000276351A publication Critical patent/JP2000276351A/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/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter

Abstract

(57)【要約】 【課題】 デジタル信号プロセッサ等の処理エンジンの
性能を改善する。 【解決手段】 処理エンジンは、ディスパッチされるマ
シン読出し可能命令を実行する実行ユニットと、実行ユ
ニットにディスパッチする前に、転送された複数のマシ
ン読出し可能命令を一時的に格納する命令バッファ50
2とを含む。実行ユニットは、第1のマシン読出し可能
命令に応答して、最初および最終命令を含むマシン読出
し可能命令ブロックの反復実行を開始する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、処理エンジンに関
し、特に、限定はしないが、プログラムフローを繰り返
すように構成可能な処理エンジンに関する。
【0002】
【従来の技術】多数の命令実行ユニットを使用してマイ
クロプロセッサ内で命令の並列処理を行うことが知られ
ている。このような並列処理を行うための多くの異なる
アーキテクチュアが知られている。並列処理により全体
処理速度が高められる。典型的には、多数の命令は、並
列に実行バッファに与えられたのち、並列に復号されて
実行ユニットにディスパッチされる。マイクロプロセッ
サは、ソフトウェアを実行するために高い命令スループ
ットを必要とする汎用処理エンジンであり、それは、含
まれる特定のソフトウェアアプリケーションに応じて広
範な処理必要条件を有することがある。さらに、並列性
をサポートするために、並列処理の命令のスケジュール
を制御するための複雑なオペレーティングシステムが必
要とされている。
【0003】多くの異なるタイプの処理エンジンが知ら
れており、マイクロプロセッサはその一例にすぎない。
たとえば、デジタル信号プロセッサ(DSP)が、特に
特定用途に対して広く使用されている。DSPは、典型
的には、関連するアプリケーションの性能を最適化する
ように構成されており、それを達成するためにより特殊
化された実行ユニットおよび命令セットを利用してい
る。
【0004】DSPやマイクロプロセッサでは、プログ
ラムメモリに格納されたマシン読出し可能命令が、演算
や関数を実施するためにプロセッサによって逐次実行さ
れる。マシン読出し可能命令のシーケンスは「プログラ
ム」と呼ばれる。プログラム命令は典型的には逐次実行
されるが、ある命令はプログラムシーケンスを中断さ
せ、プログラムフローに対して1命令ブロックを繰り返
すことができる。このような命令のブロックの繰返しは
「ルーピング」として知られており、命令のブロックは
「ループ」として知られている。
【0005】ループを実行するときは、繰り返される命
令をフェッチするために、たとえばプログラムメモリへ
のメモリアクセスを実行しなければならない。典型的に
は、プログラムメモリのようなメモリはオフチップとさ
れ、メモリアクセスは著しいプロセッササイクルオーバ
ヘッドを表す。そのため、特にプログラムループが頻繁
に利用されるアプリケーションでは、節電および低消費
電力高速処理に反するものとなる。
【0006】
【発明が解決しようとする課題】本発明は、限定はしな
いがたとえばデジタル信号プロセッサのような処理エン
ジンの性能の改善に向けられている。
【0007】
【課題を解決するための手段】本発明の第1の態様によ
れば、実行ユニットにディスパッチされるマシン読出し
可能命令を実行する実行ユニットを含む処理エンジンが
提供される。処理エンジンは、実行ユニットへディスパ
ッチされる前に命令バッファに転送されている複数のマ
シン読出し可能命令を一時的に格納する命令バッファも
含んでいる。実行ユニットは、第1のマシン読出し可能
命令に応答して、命令バッファ内に配置することができ
る1ブロックのマシン読出し可能命令の反復実行を開始
する。そのブロックのマシン読出し可能命令は、最初お
よび最終命令の両方を含んでいる。
【0008】本発明の第2の態様によれば、命令バッフ
ァ内に複数の命令を一時的に格納するステップを含む処
理エンジンの動作方法が提供される。この方法は、前記
複数の命令のうちの1ブロックの命令を繰り返し実行す
るステップをさらに含んでいる。
【0009】本発明の第1および第2の態様による好ま
しい実施例の利点は、全ての命令が既に命令バッファ内
にロードされているため、プログラムメモリやキャッシ
ュメモリにアクセスする必要なく1ブロックの命令を繰
り返し実行できることである。したがって、繰返しブロ
ックを含む命令が実行されるたびにプログラムメモリか
らフェッチされる従来のシステムに比べて、命令ブロッ
クの実行に必要なプロセッササイクル数が減少され、し
たがって、消費電力が低減される。
【0010】好ましくは、第1の命令は、命令ブロック
の最終命令と最初の命令との相対位置を示すオフセット
を含んでいる。このことは、繰り返される命令ブロック
の境界が処理エンジンに示されるという利点をもたら
す。さらに、オフセットをチェックして、最終命令が命
令バッファ内に配置されることを保証することができ
る。ふさわしくは、このチェックは、処理エンジンに対
する命令コードのコンパイル又はアセンブリ中に実施す
ることができる。有利なことに、絶対アドレッシングよ
りも少ないコードを使用する相対アドレッシングをオフ
セットに対して使用することができる。
【0011】好ましい実施例では、処理エンジンは、複
数のパイプラインステージを有する命令パイプラインを
含んでいる。これらの命令パイプラインステージの少な
くとも1つは命令フェッチステージであり、その間に、
命令コードは、命令境界に無関係に4バイトでプログラ
ムメモリからフェッチされて、命令バッファに転送され
る。有利なことに、フェッチステージは、命令で満杯の
命令バッファに対しては禁止することができる。随意
に、命令ブロックに対する最終命令をプログラムメモリ
から命令バッファにフェッチングしたのちのフェッチス
テージを禁止することができる。したがって、一度命令
バッファが満杯になったらまたは命令ブロックに対する
最終命令が命令バッファに取り出されたら、プログラム
メモリから命令をフェッチするのにそれ以上のプロセッ
ササイクルは使用されず、これらのサイクルを実行する
電力も使用されない。
【0012】典型的には、処理エンジンは、現在ディス
パッチされている命令の命令バッファ内の位置およびプ
ログラムメモリから転送される次の命令を書き込む位置
をそれぞれ指示するローカルリードプログラムカウンタ
およびローカルライトプログラムカウンタの両方を含ん
でいる。ローカルリードプログラムカウンタとローカル
ライトプログラムカウンタとの間の差を監視することが
でき、その差が所定値たとえば命令バッファのサイズに
等しくなったら、前記命令バッファへの命令の転送すな
わちフェッチステージを禁止することができる。随意
に、命令バッファサイズよりも小さいローカルリードプ
ログラムカウンタとローカルライトプログラムカウンタ
との間の差に対して、プログラムメモリからの命令の転
送の禁止を開始することができる。このような構成によ
り、マージンが命令バッファの境界に提供され、命令の
フェッチパケットまたはディスパッチパケットの境界を
越えることがある任意の命令を考慮する。
【0013】処理エンジンは、第2の命令に応答して、
第1の命令によって開始された繰返し実行の反復カウン
トを格納する。このようにして、バッファ命令の反復数
を設定することができる。一般的に、反復カウントは、
命令ブロックの各パスについてデクリメントされる。し
かしながら、カウントステップは必ずしも1に等しくは
なく、状況に応じて適切な整数値とすることができる。
【0014】処理エンジンは、一般的に、命令の本体の
最終反復に応答して命令フェッチステージを再開するよ
うに作動することができる。典型的には、フェッチステ
ージの再開は、前記最終反復に対する最初の命令のディ
スパッチに応答する。
【0015】本発明の好ましい態様では、上述した処理
エンジンを含むデータ処理システムおよびオペレータ命
令に従って最初の命令および/または最終命令を命令バ
ッファの各境界に揃えるように作動するアセンブラまた
はコンパイラを含むコンピュータが提供される。このよ
うなアライメントにより命令バッファの頂部および底部
境界と正確に揃えられて、全ての命令バッファがブロッ
クによって使用されることができるため、ブロックサイ
ズが最適化される。アセンブラやコンパイラは、プログ
ラムコード内へ操作符号をなんら挿入せずに前記アライ
メントを行う。
【0016】本発明の好ましい実施例によれば、ループ
中にメモリアクセスが必要ではないため、繰返しループ
を実行するのに少ない処理サイクルですむ。ローカルル
ープ中にキャッシュメモリにアクセスする必要がないた
め、命令バッファの前に命令キャッシュを有する処理エ
ンジンの場合でもそうである。処理エンジン外部のメモ
リにアクセスする必要がないため、大型メモリ(典型的
には、2K)内のコードをアクセスするための大型バス
(アドレス/データバス)の対応する切り替えがなく、
そのようなアクセスは典型的には処理エンジン内のロー
カルフェッチよりも余計に電力を消費する。したがっ
て、処理エンジンによる消費電力の対応する低減が達成
される。したがって、本発明の実施例は、ワイヤレス通
信装置のようなポータブル装置に使用するのに特に適し
ている。典型的には、このようなワイヤレス通信装置
は、液晶ディスプレイやTFTディスプレイのようなデ
ィスプレイと通信装置にデータを入力するキーパッドや
キーボードとを含むユーザインターフェイスを含んでい
る。さらに、ワイヤレス通信装置は、無線電話網などと
のワイヤレス通信用のアンテナも含んでいる。
【0017】
【発明の実施の形態】本発明は、たとえば特定用途集積
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
【0018】図1は、本発明の一実施例を有するマイク
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
【0019】本発明の態様から利益を得ることができる
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
【0020】図1のマイクロプロセッサのさまざまなア
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第98402455.4
号(TI−28433)に記載されており、本開示の一
部としてここに援用する。
【0021】次に、本発明によるプロセッサの一例の基
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
【0022】図1に示すように、処理エンジン100
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
【0023】プロセッサバックプレーン20は、バック
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
【0024】他の実施例では、異なる構成および/また
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
【0025】図2は、処理コア102の一実施例の基本
構造を示す。図から分かるように、処理コア102は、
4つの要素、すなわち、命令バッファユニット(Iユニ
ット)106と3つの実行ユニットとを含んでいる。実
行ユニットは、プログラムフローユニット(Pユニッ
ト)108と、アドレスデータフローユニット(Aユニ
ット)110と、命令バッファユニット(Iユニット)
106から復号された命令を実行しプログラムフローを
制御かつ監視するデータ計算ユニット(Dユニット)1
12とである。
【0026】図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内のサブユニ
ットに結合されている。
【0027】図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内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
【0028】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にも
結合されている。
【0029】図から分かるように、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のサブユニットに
も結合されている。
【0030】図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に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
【0031】命令は、48ビットワードに形成され、マ
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
【0032】バス516は、任意の1命令サイクル中
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
【0033】プロセッサコア102は7ステージパイプ
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
【0034】パイプラインの第1ステージは、PRE−
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
【0035】次のステージ、FETCH(P1)ステー
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
【0036】パイプラインはPRE−FETCHおよび
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
【0037】次に、命令バッファ内の次の命令が、第3
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
【0038】次のステージはADDRESS(P3)ス
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
【0039】ACCESS(P4)ステージ210で
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
【0040】パイプラインの次のステージはREAD
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
【0041】デュアルアクセスの場合には、リードオペ
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
【0042】最後に、命令がAユニット110内または
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
【0043】次に、パイプラインプロセッサの動作の基
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
【0044】図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に結合されている。
【0045】より詳細には、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に結合されている。
【0046】図7は、たとえば分岐命令を転送する、I
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
【0047】本発明の好ましい実施例によれば、処理エ
ンジンは、全てが命令バッファキュー502内に含まれ
る命令セットの反復ルーピングを提供するローカル繰返
し命令に応答するように構成されている。ローカル繰返
し命令は、16ビット命令であり、op−codeと並
列イネーブルビットとオフセット(6ビット)とを含ん
でいる。
【0048】op−codeは、命令をローカル命令と
して定義し、処理エンジンにオフセットおよびop−c
ode拡張を予期するよう促す。上述した実施例では、
オフセットは55の最大値を有する。しかしながら、そ
れは、ループサイズが55バイトに限定されることを意
味するものではない。事実、このオフセットはブロック
繰返し終りアドレスと開始アドレスとの間の差を示し、
開始アドレスは第1の命令または命令対のアドレスであ
り、終りアドレスは最終命令または一対の命令の最終命
令のアドレスである。したがって、最大ループサイズ
は、(55+「最終命令のサイズ」)とすることがで
き、それは61バイト以下である。別の実施例では、オ
フセットおよびループサイズは、たとえば、異なるサイ
ズの命令バッファキューに従って大きくまたは小さくす
ることができる。
【0049】図4を参照すると、IBQ502は、64
バイト長であり、32×16ビットワードに構成され
る。命令は、一度に2ワード、IBQ502にフェッチ
される。さらに、命令デコーダコントローラは、パイプ
ラインの各デコードステージに対して6プログラムコー
ドバイトまでのパケットを命令デコーダ512,514
に読み込む。ループの開始および終りすなわち最初およ
び最終命令は、IBQ502にフェッチされるプログラ
ムコードの4バイトパケット内の任意のバイト境界に来
ることができる。したがって、開始(最初)および終り
(最終)命令は、IBQ502の頂部および底部と必ず
しも終端が同じではない。たとえば、ローカルループ命
令が4プログラムコードのパケットの境界にわたって2
バイトに跨がる場合には、4プログラムコードのパケッ
トは共に、ローカルループ繰返しの実行のためにIBQ
502内に保持されていなければならない。それを配慮
するために、ローカルループ命令オフセットは最大55
バイトとされる。
【0050】ローカルループ命令がデコードされると
き、ローカルループの開始アドレスすなわちローカルル
ープ命令アドレス後のアドレスは、たとえばPユニット
108に配置されるブロック繰返し開始アドレス0(R
SA0)レジスタに格納される。ループの最初のパスの
後で、リードプログラムカウンタ(RPC)は、そのル
ープに再入するためのRSA0の内容でロードされる。
ローカルループの最終命令の位置がオフセットを使用し
て計算され、たとえば、やはりPユニット108に配置
することができるブロック繰返し終りアドレス0(RE
0)レジスタに格納される。2つの繰返し開始アドレ
スレジスタおよび2つの繰返し終りアドレスレジスタ
(RSA0550,RSA1551,REA0,REA1
が入れ子型ループに提供される。2よりも大きい入れ子
レベルについては、先行する開始/終りアドレスがスタ
ックレジスタにプッシュされる。
【0051】ローカルループの最初の反復中に、ループ
の本体に対するプログラムコードは、IBQ502にロ
ードされ、通常どおり実行される。しかしながら、後続
反復については最後の反復までフェッチは生ぜず、最後
の反復中にフェッチが再開される。
【0052】図8を参照すると、好ましい実施例に対す
るローカルループ命令フローが説明されている。最初の
パイプラインスロット602のDECODEステージに
示すブロックリピートカウント(BRC0/BRC1)
をローカルループの反復数で初期化することによってロ
ーカルループ繰返しが設定され、その後、次のスロット
604においてローカルループ命令(RPTL)自体が
デコードされる。BRC0(またはBRC1)がゼロで
なければ、ループの最終命令の各繰返しについてBRC
0/BRC1がデクリメントされる。当業者ならば、最
大反復値を定義しカウンタをゼロに初期化することによ
ってローカルループ繰返しを随意に設定できることが分
かるであろう。次に、ループの最終命令の各繰返しに対
してカウンタがインクリメントされ得る。デクリメント
またはインクリメントは1以外のステップとすることが
できる。スロット602,604中に、プログラムカウ
ンタは4バイトだけ増加して値「PC」となり、2つの
さらなる命令ワードがIBQ502にフェッチされて、
スロット602,604当たり2つの命令ワードがIB
Q502にフェッチされる。スロット602では、IB
Q502で利用できるワード504の数は2であり、図
8にラベル“Count”として示す。LRPC536
およびLWPC532は現在ディスパッチされている命
令およびIBQ502に次の命令を書き込む位置をそれ
ぞれ指示するため、IBQ502で利用できるワードの
数はLRPC536とLWPC532との間の差で与え
られる。本実施例の目的のために、BRC0/BRC1
を初期化する命令はたとえば1ワード16ビット命令で
あり、かつ、BRC0/BRC1=DAxは並列性を含
まないため、スロット602の第1および第2の命令デ
コーダ512,514には16ビット初期化命令しかデ
ィスパッチされない。
【0053】次のスロット604に対して、WPCは4
だけ増加して値「PC」となり、さらに2×16ビット
命令ワード504がIBQ502にフェッチされる。B
RC0/BRC1を初期化する1ワード命令しか前のス
ロット602中にディスパッチされていないため、IB
Q502で利用できる命令ワード504の数は3とな
る。
【0054】ローカルループの最初の反復は、スロット
606で開始され、そこで命令L0,L1の最初の並列対
がデコーダ512,514にディスパッチされる。IB
Q502で利用できる命令ワード504の数は4とな
る。それは、本実施例ではローカルループ命令が16ビ
ット命令にすぎないので前のスロット604中に1つの
ワード504しかデコーダ512にディスパッチされて
いないためである。
【0055】ローカルループの実行を最適化するため
に、命令は可能なかぎり並列処理される。本例では、ル
ープの本体を含む全ての命令が並列処理されるものとす
る。その結果、ループ本体の最初のパス中に2つの非使
用スロット610,612が生じるが、残りの反復に対
して高速が得られる。
【0056】さらに、本例では、命令L0,L1は並列処
理することができかつ合計48ビットを含むため、各デ
コードステージについて3つの命令ワード504がデコ
ーダ512,514にディスパッチされる。繰返しブロ
ックの開始、サイクル606に対して、2つの命令
0,L1がデコーダにディスパッチされ、LRPC53
6とLWPC532との間の差は4である。サイクル6
08では、さらに2つの命令ワードがIBQにフェッチ
されるが、3つのワードがディスパッチされる。
【0057】次に、LRPC536はIBQ502に沿
って3つのワードを次の取出し位置に移し、LWPC5
32はIBQ502に沿って2つのワードを次の取出し
位置に移す。したがって、LWPC532とLRPC5
36との間の差は、次のスロット608に対して1だけ
減少されて、3となる。ここでも、次の2つの命令
2,L3は並列処理することができて合計48ビットを
含み、LWPC532はIBQ502に沿って3つのワ
ードを移して次のスロット610に備えるものとする。
プログラムプリフェッチは、1スロット、ここではスロ
ット608だけ停止され、したがって、このスロットに
対してIBQ502には命令ワードがロードされない。
したがって、スロット610に対して、LRPC536
およびLWPC532は同じIBQ502アドレスを指
示し、Count=0である。IBQ502にディスパ
ッチするのに利用できるビットはないため、スロット6
10はデコーディングに対する非使用スロットである。
しかしながら、スロット610中に2つの命令ワードが
IBQ502にフェッチされて、LWPC532をIB
Qに沿って2ワードだけ移す。そのため、スロット61
2に対して2つの命令ワードが利用できる。しかしなが
ら、次の2つの命令L4,L5が48ビットを含む並列命
令であれば、スロット612のディスパッチはなく、さ
らなる非使用スロットがある。
【0058】スロット614に対しては、IBQ502
で利用できる合計4つの命令ワード504があり、48
ビットを含む命令L4,L5がデコーダ512,514に
ディスパッチされる。スロット614中に、さらなる2
つの命令ワード504がIBQ502にフェッチされ
る。WPCは2×命令ワード504の16パケットだけ
増加されており、したがって、IBQ502は満杯とな
り、ループ本体全部がフェッチされている。したがっ
て、スロット614のプリフェッチから生じるさらなる
2つのワード504がIBQ502内にフェッチされる
が、スロット616に対するWPCカウントはプリフェ
ッチに対してPC+1に留まることが分かるであろう。
【0059】スロット616に対して、ループの本体は
IBQ502内にフェッチされており、IBQには利用
できる32ワードがある。これはIBQ502の最大サ
イズであり、したがって、ループのさらなる繰返しを形
成する先のさらなるスロット618,620に対して、
フェッチはスイッチオフされる。
【0060】ループの最後の反復に対して、IBQ50
2を満杯にしてキュー内のギャップを回避するために、
スロット626でフェッチはスイッチオンし戻される。
【0061】したがって、ループの本体に対して、最初
および最後の反復を除けばパイプラインフェッチフェー
ズはない。したがって、プログラムメモリアクセスはな
い。より少ないプログラムメモリアクセスが実行される
ため、従来のループに比べてループ中の消費電力が低減
される。
【0062】もう1つの好ましい実施例では、ローカル
ループに対するブロックサイズを最大とするために、処
理エンジンはIBQ502内の命令ワードを揃えるよう
に構成される。命令ワードを揃えることによって、ロー
カルループに対する開始および終り命令をIBQ502
の各境界にできるだけ近く配置するように作動すること
ができる。
【0063】処理エンジンは、ローカルループに対する
ブロックサイズを最大とするようにIBQ502内の命
令のアライメントを構成するアセンブラを含むことがで
きる。
【0064】図9は、一体型キーボード12およびディ
スプレイ14を有する移動体電話のような移動体通信装
置における本発明の態様を具現するデジタルシステムの
一例を示す。集積回路40にパッケージされた本発明の
態様を具現するデジタル信号プロセッサを有するデジタ
ルシステム10は、キーボード12に接続されており、
そこで適切なキーボードアダプタ(不図示)を介してデ
ィスプレイ14に接続され、そこで適切なディスプレイ
アダプタ(不図示)を介して無線周波数(RF)回路1
6に接続されている。RF回路16は、アンテナ18に
接続されている。集積回路40は、複数の表面実装用コ
ンタクトを含んでいる。しかしながら、集積回路は、他
の構成、たとえば回路の下面上の複数のピンがゼロ挿入
力ソケット内に実装される構成やその他任意の適切な構
成とすることができる。
【0065】当業者ならば、この明細書を読めば本発明
の範囲内でさまざまな修正が自明であろう。たとえば、
ループの本体を含む命令は、完全な48ビット並列命令
である必要はなく、並列命令である必要さえ全くない。
さらに、ループは、全てのIBQを取り上げる必要はな
く、上述したものよりも小さくすることができる。さら
に、プログラムメモリはメモリキャッシュを含むことが
できる。
【0066】明白にまたは暗黙的に開示された新しいあ
らゆる特徴もしくは特徴の組合せ、特許請求の範囲に関
連するか否か、または、本発明が取り組む問題のいずれ
かもしくは全てを緩和するか否かにかわらず、そのあら
ゆる一般化した結果が本発明の範囲に含まれるものとす
る。
【0067】ここで使用した「加えられる」、「接続さ
れる」および「接続」という用語は、電気接続経路内に
付加要素がある場合も含めて、電気的に接続されること
を意味する。
【0068】本発明を実施例について説明してきたが、
本明細書に制約的な意味合いはない。当業者ならば、本
明細書を読めば発明の他のさまざまな実施例が自明であ
ろう。したがって、添付した特許請求の範囲には発明の
真の範囲および精神に入る実施例のこのようなあらゆる
修正が含まれるものとする。
【0069】本出願は1998年10月6日に欧州で出
願されたS.N.98402462.0(TI−276
84EU)および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 マイクロプロセッサ 20 プロセッサバックプレーン 22 バックプレーンバス 24 命令キャッシュメモリ 26 周辺装置 28 外部インターフェイス 30 レジスタファイル 32 データアドレス発生サブユニット 34,970 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 ローカルリードプログラムカウンタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カリム ドジャファリアン フランス国,バンス,バチマン ビー1, レ トスカヌ,ブールバール ド ラ レ イヌ ジャンヌ 453 (72)発明者 マルク クブラ フランス国,サン ローラン ドュ バー ル,アブニュ デ プラトー フルーリ, 1697

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 処理エンジンを含むデジタルシステムで
    あって、 処理エンジンが、 ディスパッチされるマシン読出し可能命令を実行する実
    行ユニットと、 該実行ユニットにディスパッチする前に、転送される複
    数のマシン読出し可能命令を一時的に格納する命令バッ
    ファと、を含み、 前記実行ユニットが、第1のマシン読出し可能命令に応
    答して、前記命令バッファに常駐するマシン読出し可能
    命令の1ブロックの反復実行を開始し、 前記ブロックが、最初の命令および最終命令を含む、 デジタルシステム。
  2. 【請求項2】 前記第1の命令が、前記最初の命令の前
    記バァッファ内の位置に対する前記最終命令の前記バァ
    ッファ内の位置を示すオフセットを含む、請求項1記載
    の処理エンジン。
  3. 【請求項3】 複数のパイプラインステージを有する命
    令パイプラインをさらに含み、 該命令パイプラインが、プログラムメモリから命令コー
    ドをフェッチして前記命令バッファに転送する命令フェ
    ッチステージを提供する、 請求項2記載の処理エンジン。
  4. 【請求項4】 前記プログラムメモリから前記命令バッ
    ファへの前記最終命令のフェッチングに続いて前記命令
    フェッチステージを禁止するように作動する、請求項3
    記載の処理エンジン。
  5. 【請求項5】 満杯である前記命令バッファに対する前
    記命令フェッチステージを禁止するように作動する、請
    求項4記載の処理エンジン。
  6. 【請求項6】 前記プログラムメモリからの命令コード
    を書き込む前記命令バッファ内の位置を指示するローカ
    ルライトプログラムカウンタと、 現在ディスパッチされている命令に対応する前記命令バ
    ッファ内の位置を指示するローカルリードプログラムカ
    ウンタとをさらに含み、 前記処理エンジンが、前記命令バッファへの命令コード
    の転送を禁止するのに等しい前記ローカルライトプログ
    ラムカウンタおよび前記ローカルリードプログラムカウ
    ンタの所定の分離に応答する、 請求項5記載の処理エンジン。
  7. 【請求項7】 前記所定の分離が、前記命令バッファの
    サイズに等しい、請求項6記載の処理エンジン。
  8. 【請求項8】 第2の命令に応答して、前記最初の命令
    によって開始される繰り返し実行の反復カウントを格納
    する、請求項7記載の処理エンジン。
  9. 【請求項9】 前記命令のブロックのパスに対して前記
    反復カウントをデクリメントするように作動する、請求
    項8記載の処理エンジン。
  10. 【請求項10】 前記命令のブロックの最後の反復に応
    答して前記命令コードフェッチステージを再開するよう
    に作動する、請求項9記載の処理エンジン。
  11. 【請求項11】 前記最終反復に対する前記最初の命令
    のディスパッチに応答して前記命令コードフェッチステ
    ージを再開するように作動する、請求項10記載の処理
    エンジン。
  12. 【請求項12】 処理エンジンの動作方法であって、 命令バッファに複数の命令を格納するステップと、 前記複数の命令の命令ブロックを繰り返し実行するステ
    ップと、 を含む、方法。
  13. 【請求項13】 プログラムメモリから命令コードをフ
    ェッチして前記命令バッファ内に転送し前記複数の命令
    を形成するステップをさらに含む、請求項12記載の方
    法。
  14. 【請求項14】 前記命令ブロックへの最終命令のフェ
    ッチングに続いて命令コードのフェッチングを禁止する
    ステップをさらに含む、請求項13記載の方法。
  15. 【請求項15】 満杯である前記命令バッファに転送す
    る命令コードのフェッチングを禁止するステップをさら
    に含む、請求項14記載の方法。
  16. 【請求項16】 命令が実行される前記命令バッファ内
    の第1の位置およびプログラムメモリから転送された命
    令を書き込む前記命令バッファ内の第2の位置を監視す
    るステップと、 所定値に等しい前記第1の位置と第2の位置との間の差
    に対する前記フェッチングを禁止するステップと、 をさらに含む、請求項15記載の方法。
  17. 【請求項17】 前記所定値が、命令バッファサイズで
    ある、請求項16記載の方法。
  18. 【請求項18】 前記ブロックの前記繰返し実行に対す
    る反復カウントを格納するステップをさらに含む、請求
    項17記載の方法。
  19. 【請求項19】 前記命令ブロックのパスに対して前記
    反復カウントをデクリメントするステップをさらに含
    む、請求項18記載の方法。
  20. 【請求項20】 前記命令の本体の最後の繰返しに対す
    る前記フェッチングを再開するステップをさらに含む、
    請求項19記載の方法。
  21. 【請求項21】 前記命令ブロックに対する最初および
    /または最終命令を前記命令バッファの各境界と揃える
    ステップをさらに含む、請求項20記載の方法。
  22. 【請求項22】 前記命令ブロックを形成する前記命令
    をコンパイリングまたはアセンブリングして、前記命令
    ブロックに対する最初および/または最終命令を前記命
    令バッファの各境界と揃えるステップをさらに含む、請
    求項21記載の方法。
  23. 【請求項23】 セルラー電話機である請求項1記載の
    デジタルシステムであって、 キーボードアダプタを介して前記プロセッサに接続され
    た一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
    れたディスプレイと、 前記プロセッサに接続された無線周波数(RF)回路
    と、 RF回路に接続されたアンテナと、 を含む、デジタルシステム。
JP11321533A 1998-10-06 1999-10-06 ローカル命令ルーピングを有するプロセッサ Pending JP2000276351A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP98402462A EP0992894A1 (en) 1998-10-06 1998-10-06 Apparatus and method for loop execution
EP98402462.0 1998-10-06

Publications (1)

Publication Number Publication Date
JP2000276351A true JP2000276351A (ja) 2000-10-06

Family

ID=8235519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11321533A Pending JP2000276351A (ja) 1998-10-06 1999-10-06 ローカル命令ルーピングを有するプロセッサ

Country Status (2)

Country Link
EP (1) EP0992894A1 (ja)
JP (1) JP2000276351A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236226A (ja) * 2000-01-14 2001-08-31 Texas Instr Inc <Ti> マイクロプロセッサ
JP2009527808A (ja) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー マイクロループコンピュータ命令
KR20210039358A (ko) * 2020-08-27 2021-04-09 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 순환 명령의 처리 방법, 장치, 기기와 저장매체
US11048511B2 (en) 2017-11-13 2021-06-29 Nec Corporation Data processing device data processing method and recording medium

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6950929B2 (en) * 2001-05-24 2005-09-27 Samsung Electronics Co., Ltd. Loop instruction processing using loop buffer in a data processing device having a coprocessor
US8370671B2 (en) 2009-12-02 2013-02-05 International Business Machines Corporation Saving power by powering down an instruction fetch array based on capacity history of instruction buffer
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
CN104298488B (zh) 2014-09-29 2018-02-23 上海兆芯集成电路有限公司 循环预测器指导的循环缓冲器
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US9940136B2 (en) * 2015-06-26 2018-04-10 Microsoft Technology Licensing, Llc Reuse of decoded instructions
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US11755484B2 (en) 2015-06-26 2023-09-12 Microsoft Technology Licensing, Llc Instruction block allocation
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10346168B2 (en) * 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US10776115B2 (en) 2015-09-19 2020-09-15 Microsoft Technology Licensing, Llc Debug support for block-based processor
US10095519B2 (en) 2015-09-19 2018-10-09 Microsoft Technology Licensing, Llc Instruction block address register

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4991088A (en) * 1988-11-30 1991-02-05 Vlsi Technology, Inc. Method for optimizing utilization of a cache memory
JPH04293124A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd データ処理プロセッサ
FR2693572B1 (fr) * 1992-07-13 1994-09-30 Texas Instruments France Système de traitement de données comportant un dispositif amélioré de traitement des boucles de programme.
US5452457A (en) * 1993-01-29 1995-09-19 International Business Machines Corporation Program construct and methods/systems for optimizing assembled code for execution
US5590358A (en) * 1994-09-16 1996-12-31 Philips Electronics North America Corporation Processor with word-aligned branch target in a byte-oriented instruction set
JPH0991136A (ja) * 1995-09-25 1997-04-04 Toshiba Corp 信号処理装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236226A (ja) * 2000-01-14 2001-08-31 Texas Instr Inc <Ti> マイクロプロセッサ
JP2009527808A (ja) * 2006-02-16 2009-07-30 ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー マイクロループコンピュータ命令
US11048511B2 (en) 2017-11-13 2021-06-29 Nec Corporation Data processing device data processing method and recording medium
KR20210039358A (ko) * 2020-08-27 2021-04-09 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 순환 명령의 처리 방법, 장치, 기기와 저장매체
JP2021103577A (ja) * 2020-08-27 2021-07-15 北京百度網訊科技有限公司 循環命令の処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム
US11340903B2 (en) 2020-08-27 2022-05-24 Beijing Baidu Netcom Science Technology Co., Ltd. Processing method, device, equipment and storage medium of loop instruction
KR102483299B1 (ko) 2020-08-27 2022-12-29 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 순환 명령의 처리 방법, 장치, 기기와 저장매체
JP7241121B2 (ja) 2020-08-27 2023-03-16 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 循環命令の処理方法、電子機器、コンピュータ可読記憶媒体及びコンピュータプログラム

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2000276351A (ja) ローカル命令ルーピングを有するプロセッサ
US6363470B1 (en) Circular buffer management
US6810475B1 (en) Processor with pipeline conflict resolution using distributed arbitration and shadow registers
US6990570B2 (en) Processor with a computer repeat instruction
US6795930B1 (en) Microprocessor with selected partitions disabled during block repeat
US6516408B1 (en) Various length software breakpoint in a delay slot
EP0992907A2 (en) Trace fifo management
US6826679B1 (en) Processor with pointer tracking to eliminate redundant memory fetches
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
US6502152B1 (en) Dual interrupt vector mapping
US20030074543A1 (en) A processor with apparatus for verifying instruction parallelism
JP2000305779A (ja) パイプライン保護
JP2000259408A (ja) 遅延スロットにおけるソフトウェアブレークポイント
EP1360582A2 (en) Apparatus and method for effecting changes in program control flow
US6681319B1 (en) Dual access instruction and compound memory access instruction with compatible address fields
JP2002229779A (ja) 情報処理装置
US6598151B1 (en) Stack Pointer Management
EP0992889A1 (en) Interrupt processing during iterative instruction execution
JP2000200212A (ja) 巡回バッファ管理
EP0992892B1 (en) Compound memory access instructions
US6499098B1 (en) Processor with instruction qualifiers to control MMU operation
JP2000148474A (ja) 計算した繰返し命令を有するプロセッサ
JP2000322408A (ja) 線形ベクトル計算
EP0992881A1 (en) A processor
JP2000215059A (ja) 命令並列性検証装置付きプロセッサ