JP2000267851A - デジタルシステムおよびその動作方法 - Google Patents

デジタルシステムおよびその動作方法

Info

Publication number
JP2000267851A
JP2000267851A JP2000063769A JP2000063769A JP2000267851A JP 2000267851 A JP2000267851 A JP 2000267851A JP 2000063769 A JP2000063769 A JP 2000063769A JP 2000063769 A JP2000063769 A JP 2000063769A JP 2000267851 A JP2000267851 A JP 2000267851A
Authority
JP
Japan
Prior art keywords
instruction
memory
address
data
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
JP2000063769A
Other languages
English (en)
Inventor
Gilbert Laurenti
ラウレンティ ジルベルト
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
Priority claimed from EP99400555A external-priority patent/EP0992887B1/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2000267851A publication Critical patent/JP2000267851A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 デジタル信号プロセッサなどのプロセッサの
性能を改善することにある。 【解決手段】 高コード密度と平易プログラミングを与
える、可変命令長を持つプログラム可能なデジタル信号
プロセッサ(DSP)である、プロセッサ(100)が
設けられている。アーキテクチャーおよび命令組は、D
SPアルゴリズムの実行の高効率化や低消費電力に適
し、例えば無線電話など、純制御タスクにも最適化され
ている。命令(1003)が復号化され、アドレスフィ
ールド(1003a)に従ってデータ項目にアクセスす
る。別の命令(1002)が復号化され、命令修飾語
(1002b)による異なる方法データアドレスフィー
ルド(1002a)に従ってデータ項目にアクセスす
る。その命令修飾語は、修飾命令(1002)と完全に
並行して実行される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、デジタルマイクロ
プロセッサに係り、さらに詳細には、デジタルマイクロ
プロセッサ用の命令組に関する。
【0002】
【従来の技術】マイクロプロセッサは、ソフトウエアを
実行するために大きな命令処理能力を必要とする汎用プ
ロセッサであり、特別のソフトウエアアプリケーション
によって広範囲の処理を行うことができる。マイクロプ
ロセッサ用の命令組は、主メモリ、I/O、またはレジ
スタなど様々な記憶ロケーションからデータにアクセス
するための異なる命令を含んでいる。
【0003】
【発明が解決しようとする課題】多くの型のプロセッサ
が知られている。そのほんの一例としてマイクロプロセ
ッサがある。例えば、デジタル信号プロセッサ(DS
P)は、特に、移動体処理装置などの特有の装置に対し
て広く使用されている。DSPは、典型的には、それが
関連している装置の性能を最適化するように構成(アー
キテクチャ)されている。この性能を得るために、DS
Pは、さらに専用の実行ユニットや命令組を採用してい
る。特に、それに限られるわけではないが、移動体通信
装置などの用途においては、電力消費をできるだけ低く
維持しながら、DSPの性能を常に向上させることが望
ましい。
【0004】
【課題を解決するための手段】本発明の特定のそして好
適な観点は、これに付随している特許請求の範囲の独立
および従属の請求項に説明されている。従属の請求項か
ら得られる特徴の組み合わせは、単に請求項に明確に述
べられている通りではなく、適切なものとして独立の請
求項の特徴と組み合わせることができる。本発明は、例
えばデジタル信号プロセッサ等、プロセッサの性能を向
上させるためのものであるが、これに限定されるもので
はない。本発明の1つの観点により、高いコード密度と
簡易なプログラミングを与える、可変命令長を持つプロ
グラム可能なデジタル信号プロセッサ(DSP)である
プロセッサが提供される。アーキテクチャーおよび命令
組は、DSPアルゴリズムの実行の高効率化や低消費電
力に適し、例えば無線電話など、純制御タスクにも最適
化されている。プロセッサは、命令メモリから取り込ま
れる命令を復号化するように動作可能な命令バッファユ
ニットを含んでいる。その命令は、多数の命令フォーマ
ットを持つ。データアドレス発生ユニットは、第1の命
令に応答して、第1のオペランドの第1のアドレスを計
算するように動作可能である。命令バッファメモリは、
さらに、第1の命令の復号化が第2の命令によって修飾
されるように、上記命令バッファユニットが、第1の命
令を復号化している間に、組み合わせ方法で命令シーケ
ンスから第2の命令を復号化するように動作可能になっ
ている。プロセッサは、第1のアドレスに応答して、第
1のオペランドを取り出すための手段と、第1のオペラ
ンドを取り扱うための手段と、命令バッファユニットに
よって復号化されるべき命令流内の命令を同定する、命
令アドレスを与えるための手段を有する。
【0005】本発明の別の観点によれば、データアドレ
ス発生ユニットは、第2の命令に応答して、第1のアド
レスの代わりに第2のオペランドの第2のアドレスを計
算するように動作可能である。本発明の別の観点によれ
ば、第1のオペランドの第1のアドレスは、メモリアド
レス空間内にあって、第2のオペランドの第2のアドレ
スは、メモリマップレジスタである。本発明の別の観点
によれば、第1オペランドの第1アドレスは、メモリア
ドレス空間内にあって、第2オペランドの第2アドレス
は、周辺装置レジスタである。本発明の別の観点によれ
ば、デジタルシステムを動作させる方法が与えられる。
複数個の命令が、プロセッサコアの命令パイプラインに
おいて実行される。それらの命令は、プログラムカウン
タに応答してプロセッサコアと関連付けられた命令メモ
リから取り込まれる。命令シーケンスは、多数の命令フ
ォーマットを有する命令組から選択される。命令シーケ
ンスから第1の命令が復号化される。第1の命令は複数
個の命令フォーマットから選択される第1のフォーマッ
トを有する。第1のデータ項目が、第1の命令を復号化
する段階に応答して、第1の方法で取り扱われる。その
後、命令シーケンスからの第2の命令が復号化される。
この場合、第2の命令は上記第1の命令と同一である。
しかし、第2の命令を復号化する段階が第3の命令を復
号化する段階によって修飾されるように、第2の命令を
復号化する段階との組み合わせ方法で、修飾子命令が復
号化される。第2のデータ項目は、第2の命令と修飾子
命令を復号化する段階の組み合わせ方法に応答して、第
1のデータ項目を取り扱う段階とは異なる方法で取り扱
われる。
【0006】
【発明の実施の形態】本発明は、例えば特殊用途向け集
積回路(ASIC)内に実現されるディジタル信号プロ
セッサ(DSP)に特に用いられるが、他の種類のプロ
セッサにも用いられる。本発明によるプロセッサの一例
の基本的構成について以下に説明する。プロセッサ10
0は、可変命令長(8ビットから48ビット)のプログ
ラマブル固定小数点DSPコアであって、コード密度が
高くプログラミングが容易である。構成および命令集合
は、電力消費を低くし、かつ、無線電話や専用の制御タ
スク用のようなDSPアルゴリズムの実行の効率を高め
るように、最適化されている。プロセッサ100は、エ
ミュレーションおよびコード・デバッグの機能を含む。
【0007】図1は、本発明の一実施の形態によるディ
ジタル装置10の概略図である。ディジタル装置は、プ
ロセッサ100とプロセッサ・バックプレーン20とを
含む。本発明の特定の例では、ディジタル装置は、特殊
用途向け集積回路(ASIC)で実現されたディジタル
信号プロセッサ装置10である。簡単のために、図1
は、本発明の実施の形態を理解するのに必要なマイクロ
プロセッサ100のそれらの部分だけを示す。DSPの
一般的な構造の詳細は良く知られているので、別の文献
を参照していただきたい。例えば、Frederick Boutaud
らに発行された米国特許第5,072,418号はDS
Pについて詳細に説明しているので、ここに援用する。
Gary Swoboda らに発行された米国特許第5,329,
471号はDSPを試験しエミュレートする方法につい
て詳細に説明しているので、ここに援用する。マイクロ
プロセッサ技術の当業者が本発明を製作し使用すること
ができるように、本発明の一実施の形態に関するマイク
ロプロセッサ100の一部の詳細について以下に説明す
る。
【0008】本発明の態様の恩恵を被ることのできるい
くつかの例示の装置は、ここに援用した米国特許第5,
072,418号に、特に米国特許第5,072,41
8号の図2から図18を参照して述べられている。性能
を向上させコストを削減する本発明の態様を組み込んだ
マイクロプロセッサを用いれば、米国特許第5,07
2,418号に述べられた装置を更に改善することがで
きる。かかる装置は、これらに限定されるわけではない
が、工業的プロセス制御,自動車システム,モータ制
御,ロボット制御装置,衛星通信システム,エコー消去
装置,モデム,ビデオ映像装置,音声認識装置,暗号化
されたボコーダ・モデム装置などを含む。図1のマイク
ロプロセッサの種々の構造の特徴の説明および命令の完
全な集合の説明は、本出願人に譲渡された出願番号第0
9/410,977号(TI−28433)に述べられ
ているので、これをここに援用する。
【0009】図1に示すように、プロセッサ100は、
プロセッサ・コア102と、プロセッサ・コア102を
プロセッサ・コア102の外部にあるメモリ・ユニット
とインターフェースするメモリ・インターフェース・ユ
ニット104とを有する中央処理装置(CPU)を形成
する。プロセッサ・バックプレーン20は、プロセッサ
のメモリ管理ユニット104が接続されたバックプレー
ン・バス22を含む。バックプレーン・バス22には、
命令メモリ24,周辺装置26および外部インターフェ
ース28も接続されている。理解されるように、他の例
では、異なる構成および/または異なる技術を用いて本
発明を実現することができる。例えば、プロセッサ10
0は、プロセッサ・バックプレーン20をそこから分離
して、第1の集積回路を形成してもよい。例えば、プロ
セッサ100は、バックプレーン・バス22と周辺およ
び外部インターフェースとを支援するバックプレーン2
0から離してその上に取り付けたDSPであってもよ
い。例えば、プロセッサ100は、DSPではなくマイ
クロプロセッサでもよいし、また、ASIC技術以外の
技術で実現してもよい。このプロセッサまたはこのプロ
セッサを含むプロセッサを1つ以上の集積回路に実現し
てもよい。
【0010】図2は、プロセッサ・コア102の一実施
の形態の基本構造を示す。図示するように、プロセッサ
・コア102のこの実施の形態は、4つの要素、すなわ
ち、命令バッファ・ユニット(Iユニット)106と3
つの実行ユニットとを含む。実行ユニットは、プログラ
ム・フロー・ユニット(Pユニット)108と、アドレ
ス・データ・フロー・ユニット(Aユニット)110
と、命令バッファ・ユニット(Iユニット)106から
復号された命令を実行するとともにプログラム・フロー
を制御し監視するデータ計算ユニット(Dユニット)1
12とである。
【0011】図3は、プロセッサ・コア102のPユニ
ット108,Aユニット110およびDユニット112
をもっと詳細に示す図であり、また、プロセッサ・コア
102の種々の要素を接続するバス構造を示す。Pユニ
ット108は、例えば、ループ制御回路と、GoTo/
分岐制御回路と、反復カウンタ・レジスタや割込みマス
ク,フラグまたはベクトル・レジスタのようなプログラ
ム・フローを制御し監視する種々のレジスタとを含む。
Pユニット108は、汎用データ書込みバス(EB,F
B)130,132と、データ読取りバス(CB,D
B)134,136と、アドレス定数バス(KAB)1
42とに結合されている。また、Pユニット108は、
CSR,ACBおよびRGDとラベルされた種々のバス
を介してAユニット110およびDユニット112内の
サブユニットに結合されている。
【0012】図3に示すように、この実施の形態では、
Aユニット110はレジスタ・ファイル30とデータ・
アドレス生成サブユニット(DAGEN)32と算術・
論理演算ユニット(ALU)34とを含む。Aユニット
・レジスタ・ファイル30は種々のレジスタを含む。例
えば、16ビット・ポインタ・レジスタ(AR0〜AR
7)と、データ・フローおよびアドレス生成にも用いら
れるデータ・レジスタ(DR0〜DR3)とである。ま
た、レジスタ・ファイルは、16ビット循環バッファ・
レジスタと7ビットのデータ・ページ・レジスタとを含
む。汎用バス(EB,FB,CB,DB)130,13
2,134,136の他に、データ定数バス140およ
びアドレス定数バス142もAユニット・レジスタ・フ
ァイル30に結合されている。Aユニット・レジスタ・
ファイル30は、それぞれ逆方向に動作する一方向バス
144,146を介してAユニットDAGENユニット
32に結合されている。DAGENユニット32は、例
えば処理エンジン100内のアドレス生成を制御し監視
する16ビット・X/Yレジスタと係数/スタック・ポ
インタ・レジスタとを含む。
【0013】Aユニット110は、加算,減算およびA
ND,OR,XOR論理演算子のようなALUに一般に
関連する機能とともにシフタ機能を含むALU34も含
む。ALU34は、汎用バス(EB,DB)130,1
36および命令定数データ・バス(KDB)140にも
結合されている。AユニットALUは、PDAバスを介
してPユニット108に結合されて、Pユニット108
レジスタ・ファイルからレジスタ定数を受ける。ALU
34は、バスRGA,RGBを介してAユニット・レジ
スタ・ファイル30にも結合されて、アドレスおよびデ
ータ・レジスタの内容を受けるとともに、バスRGDを
介してレジスタ・ファイル30のアドレスおよびデータ
・レジスタの内容を転送する。
【0014】本発明の例示の実施の形態によれば、Dユ
ニット112は、Dユニット・レジスタ・ファイル36
と、DユニットALU38と、Dユニット・シフタ40
と、2つの乗算および累算ユニット(MAC1,MAC
2)42,44とを含む。Dユニット・レジスタ・ファ
イル36とDユニットALU38とDユニット・シフタ
40とはバス(EB,FB,CB,DB,KDB)13
0,132,134,136,140に結合され、ま
た、MACユニット42,44はバス(CB,DB,K
DB)134,136,140とデータ読取りバス(B
B)144とに結合されている。Dユニット・レジスタ
・ファイル36は、40ビット累算器(AC0〜AC
3)と16ビット遷移レジスタとを含む。Dユニット1
12は、40ビット累算器の他に、発信元レジスタまた
は宛先レジスタとしてAユニット110の16ビット・
ポインタおよびデータ・レジスタも用いる。Dユニット
・レジスタ・ファイル36は、累積器書込みバス(AC
W0,ACW1)146,148を介してDユニットA
LU38とMAC1 42とMAC2 44とからデー
タを受け、また、累積器書込みバス(ACW1)148
を介してDユニット・シフタ40からデータを受ける。
データは、Dユニット・レジスタ・ファイル累積器から
累積器読取りバス(ACR0,ACR1)150,15
2を介してDユニットALU38,Dユニット・シフタ
40,MAC1 42およびMAC2 44に読み取ら
れる。DユニットALU38およびDユニット・シフタ
40は、EFC,DRB,DR2およびACBとラベル
された種々のバスを介してAユニット108のサブユニ
ットにも結合されている。
【0015】図4を参照すると、32語の命令バッファ
待ち行列(IBQ)502を含む本発明による命令バッ
ファ・ユニット106が示されている。IBQ502
は、8ビット・バイト506に論理的に分割された32
×16ビットのレジスタ504を含む。命令は、32ビ
ットのプログラム・バス(PB)122を介してIBQ
502に到着する。命令は、ローカル書込みプログラム
・カウンタ(LWPC)532によって指し示される位
置に32ビット・サイクルで取り出される。LWPC5
32は、Pユニット108にあるレジスタに含まれてい
る。Pユニット108も、ローカル読取りプログラム・
カウンタ(LRPC)536レジスタと、書込みプログ
ラム・カウンタ(WPC)530レジスタと、読取りプ
ログラム・カウンタ(RPC)534レジスタとを含
む。LRPC536は、命令デコーダ512,514に
ロードされるべき次の命令のIBQ502内の位置を指
し示す。すなわち、LRPC536は、デコーダ51
2,514に現在ディスパッチされている命令のIBQ
502内の位置を指し示す。WPCは、プログラム・メ
モリにおけるパイプライン用の次の4バイトの命令コー
ドの開始アドレスを指し示す。IBQに取り出す度に、
プログラム・メモリからの次の4バイトが命令境界に関
わらず取り出される。RPC534は、デコーダ512
/514に現在ディスパッチされている命令のプログラ
ム・メモリのアドレスを指し示す。
【0016】この実施の形態では、命令は、48ビット
語で形成され、マルチプレクサ520,521を介して
48ビットのバス516により命令デコーダ512,5
14にロードされる。当業者には明らかなように、命令
は48ビット以外で構成された語に形成されてもよく、
本発明は上述した特定の実施の形態に限定されるもので
はない。
【0017】現在好ましいとされる48ビット語サイズ
に対して、バス516は、並列に実行される任意の1命
令サイクル中に最大2命令(デコーダ当たり1命令)を
ロードすることができる。命令の組合せは、48ビット
のバスに適合する任意の書式(8,16,24,32,
40および48ビット)の組合せでよい。1サイクル中
に1命令だけをロードする場合は、デコーダ2 514
よりデコーダ1 512の方を優先してロードする。次
に、各命令が、それらを実行するとともに、命令または
操作が実行されるべきデータをアクセスするために、各
機能ユニットに送られる。命令デコーダに渡される前
に、命令はバイト境界上で整列される。整列は、その復
号中に前の命令に対して得られた書式に基づいて行われ
る。バイト境界との命令の整列に関連する多重化はマル
チプレクサ520,521で行われる。
【0018】2つの命令の一方が並列イネーブル・ビッ
トを持つ場合は、2つの命令を並列に入れることができ
る。かかる種類の並列方式を支援するハードウエアを並
列イネーブル機構と呼ぶ。同様に、2つの命令が両方と
も間接モードで単一データ・メモリ・アクセス(Sme
mまたはdbl(lmem))を行う場合は、2つの命
令を並列に入れることができる。かかる種類の並列方式
を支援するハードウエアをソフト二重機構と呼ぶ。
【0019】プロセッサ・コア102は7段階のパイプ
ラインにより命令を実行する。その各段階について、表
1と図5を参照して以下に説明する。どこ(Aユニット
かDユニット)で実行するかに関わらず、7段階のパイ
プラインによりプロセッサ命令を実行する。本発明の一
態様によれば、プログラム・コード・サイズを小さくす
るために、CコンパイラはAユニットでの実行のために
できるだけ多くの命令をディスパッチするので、Dユニ
ットは、電力を節約するために電源を切られてもよい。
このため、Aユニットは、メモリ・オペランドで実行さ
れる基本的動作を支援する必要がある。
【0020】
【表1】
【0021】パイプラインの第1段階は、事前取出し
(P0)段階202であり、この段階中では、メモリ・
インターフェース104のアドレス・バス(PAB)1
18上にアドレスを表明することによって、次のプログ
ラム・メモリ位置がアドレスされる。次の段階の取出し
(P1)段階204では、プログラム・メモリが読み取
られ、メモリ・インターフェース・ユニット104から
PBバス122を介してIユニット106が満たされ
る。事前取出しおよび取出し段階は、他のパイプライン
段階から切り離されており、事前取出しおよび取出し段
階中はパイプラインに割り込んで、連続したプログラム
・フローを中断するとともに、プログラム・メモリ内の
別の命令(例えば、分岐命令)を指し示すことができ
る。
【0022】次に、第3段階の復号(P2)段階206
では、命令バッファ内の次の命令がデコーダ512/5
14にディスパッチされ、命令が復号されるとともにそ
の命令を実行する実行ユニット(例えば、Pユニット1
08,Aユニット110またはDユニット112)にデ
ィスパッチされる。復号段階206は、命令の種類を示
す第1の部分と命令の書式を示す第2の部分と命令用の
アドレス指定モードを示す第3の部分とを含む命令の少
なくとも一部を復号することを含む。次の段階はアドレ
ス(P3)段階208であり、そこでは、命令で用いら
れるべきデータのアドレスが計算されるか、命令がプロ
グラムの分岐またはジャンプを必要とする場合は新しい
プログラム・アドレスが計算される。各計算はAユニッ
ト110またはPユニット108でそれぞれ行う。
【0023】アクセス(P4)段階210では、読取り
オペランドのアドレスが生成され、また、そのアドレス
がYmem間接アドレス指定モードでDAGEN Yオ
ペレータで生成されているメモリ・オペランドが、間接
的にアドレスされたYメモリ(Ymem)から読み取ら
れる。パイプラインの次の段階は、そのアドレスがXm
em間接アドレス指定モードでDAGEN X内でまた
は係数アドレス・モードでDAGEN Cオペレータで
生成されているメモリ・オペランドが読み取られる読取
り(P5)段階212である。命令の結果が書き込まれ
るべきメモリ位置のアドレスが生成される。
【0024】最後は、Aユニット110またはDユニッ
ト112のいずれかで命令が実行される実行(P6)段
階214である。次に、その結果がデータ・レジスタす
なわち累算器に記憶されるか、読取り/変更/書込み命
令用のメモリに書き込まれる。更に、シフト操作が、実
行段階中に累算器でデータについて行われる。プロセッ
サ100のパイプラインは保護されている。これによ
り、NOP命令が待ち時間の要求を満たすために挿入さ
れる必要がなくなるので、Cコンパイラ性能が大幅に向
上する。また、これにより、前の生成プロセッサから後
の生成プロセッサへのコード変換が非常に容易になる。
【0025】プロセッサ100で用いられるパイプライ
ン保護の基本的規則は、次の通りである。実行中の読取
りアクセスが終了する前に書込みアクセスが開始され、
かつ、両方のアクセスが同じ資源を共用する場合は、追
加のサイクルが挿入されて、書込みを完了させ、更新さ
れたオペランドで次の命令を実行することができるよう
にするが、エミュレーションについては、単一ステップ
・コード実行がフリーランニング・コード実行と全く同
様に行われなければならない。
【0026】パイプライン・プロセッサの動作の基本的
原理について、図5を参照して以下に説明する。図5か
ら分かるように、第1の命令302では、連続するパイ
プライン段階が時間T1〜T7の間に実行される。各時間
は、プロセッサ・マシン・クロックの1クロック・サイ
クルである。第2の命令304は、時間T2にパイプラ
インに入ることができる。なぜなら、前の命令はすでに
次のパイプライン段階に移っているからである。命令3
(306)では、事前取出し段階202が時間T3に起
こる。図5から分かるように、第7段階のパイプライン
では、7命令全部を同時に処理することができる。7つ
の命令302〜314全部に対して、図5は、時間T7
で処理中であるそれらすべてを示す。このような構造
は、命令の処理に並列形式を付加する。
【0027】図6に示すように、本発明のこの実施の形
態は、24ビットのアドレス・バス118および32ビ
ットの双方向データ・バス120を介して外部プログラ
ム記憶ユニット150に結合されているメモリ・インタ
ーフェース・ユニット104を含む。また、メモリ・イ
ンターフェース・ユニット104は、24ビットのアド
レス・バス114および双方向の16ビットのデータ・
バス116を介してデータ記憶ユニット151に結合さ
れている。メモリ・インターフェース・ユニット104
は、32ビットのプログラム読取りバス(PB)122
を介してマシン・プロセッサ・コア102のIユニット
106にも結合されている。Pユニット108,Aユニ
ット110およびDユニット112は、データ読取りお
よびデータ書込みバスとこれに対応するアドレスバスと
を介してメモリ・インターフェース・ユニット104に
結合されている。Pユニット108はプログラム・アド
レス・バス128に更に結合されている。
【0028】より詳しく述べると、Pユニット108
は、24ビットのプログラム・アドレス・バス128と
2つの16ビットのデータ書込みバス(EB,FB)1
30,132と2つの16ビットのデータ読取りバス
(CB,DB)134,136とを介してメモリ・イン
ターフェース・ユニット104に結合されている。Aユ
ニット110は、2つの24ビットのデータ書込みアド
レス・バス(EAB,FAB)160,162と2つの
16ビットのデータ書込みバス(EB,FB)130,
132と3つのデータ読取りアドレス・バス(BAB,
CAB,DAB)164,166,168と2つの16
ビットのデータ読取りバス(CB,DB)134,13
6とを介してメモリ・インターフェース・ユニット10
4に結合されている。Dユニット112は、2つのデー
タ書込みバス(EB,FB)130,132と3つのデ
ータ読取りバス(BB,CB,DB)144,134,
136とを介してメモリ・インターフェース・ユニット
104に結合されている。
【0029】図6は、124でIユニット106からP
ユニット108への命令の受け渡し、例えば分岐命令を
送ることを表す。また、図6は、126および128で
Iユニット106からAユニット110およびDユニッ
ト112へのデータの受け渡しを表す。
【0030】図7に示すように、プロセッサ100は統
一プログラム/データ空間の周りに組織化されている。
プログラム・ポインタは、内部では24ビットであっ
て、バイトアドレス指定機能を持つが、プログラムの取
出しが常に32ビット境界で行われるので22ビットの
アドレスだけがメモリに送られる。しかし、例えばソフ
トウエア開発のためのエミュレーション中は、ハードウ
エア区切り点を実現するために全24ビットのアドレス
が与えられる。データ・ポインタは7ビットの主データ
・ページで拡張された16ビットであり、語アドレス指
定機能を有する。
【0031】ソフトウエアは最大3主データ・ページを
次のように定義する。 ・MDP 直接アクセス 間接アクセス CDP ・MDP05 − 間接アクセス AR[0〜5] ・MDP67 − 間接アクセス AR[6〜7] スタックは、維持されて、主データ・ページ0に常駐す
る。CPUメモリ・マップ・レジスタは全てのページか
ら見える。プロセッサ100の種々の態様を表2に要約
する。
【0032】
【表2】
【0033】本発明の観点によれば、図4を参照して説
明されたように、プロセッサ100は、同一の実行サイ
クル内で並列に2つの命令を実行可能にさせる。並列方
式には2つの型がある。 1)単一命令内の「組込み」並列方式: 幾つかの命令
が、2つの異なる演算を並列に実行する。2つの演算を
分離するため、「カンマ」が使用される。この型の並列
方式は、「黙示」並列方式とも呼ばれる。 例: Repeat(CSR),CSR += #4; この命
令は、繰返し単一処理を起動し、並行して、Aユニット
ALUにおいて、CSR内容が4だけ増分される。これ
は単一プロセッサ命令である。 2)2つの命令間の「ユーザ定義」並列方式: 2つの
命令の1つに並列イネーブルビットを設定することによ
って、2つの命令が、ユーザ、Cコンパイラまたはアッ
センブラ最適化装置によって並列に処理される。セパレ
ータ「||」は、プロセッサによって並行して実行され
るべき2つの命令を分離するために使用される。 例: AC1=(*AR1−)**AR2+);この第1の命
令は、Dユニットにおいて乗算を実行する。 ||DR1=DR1^AR2 この第2の命令は、AユニットALUにおいて論理演算
を実行する。黙示並列方式は、ユーザ定義並列方式と組
み合わせることができる。2つのプロセッサ命令の境界
を決めるため、括弧セパレータが使用される。 例: (AC2=*AR3+*AC1, ;これは第1の命令である。 DR3=(*AR3+)) ;並列方式を含む。 ||AR1=#5 ;これは第2の命令である。
【0034】図3を再度参照する。Aユニットのデータ
アドレス発生ユニット(DAGEN)の主機能は、デー
タメモリオペランドのアドレスを計算することにある。
プロセッサ100は3つのデータメモリアドレス指定モ
ードを有する。 1)直接、間接、または絶対選択(Smen、dbl
(Lmen))で単一データメモリアドレス指定。 2)間接アドレス(Xmem、Ymem)で複合データ
メモリアドレス指定 3)係数データメモリアドレス指定(coeff) Aユニットのデータアドレス発生ユニットの第2の使用
法は、プロセッサCPUレジスタ内でビットを取り扱う
ために使用されるビット位置アドレスを発生することで
ある。この場合、メモリオペランドはアクセスされな
い。この型のアドレス指定は、(直接、間接)レジスタ
ビットアドレス指定(Baddr、(Baddr)対)
として表わされる。プロセッサCPUレジスタは、メモ
リマップ化されている。従って、Aユニットのデータア
ドレス発生ユニットの第3の使用法は、これらのCPU
レジスタのデータメモリアドレスを計算することであ
る。この型のアドレス指定は、(直接、間接、絶対)M
MRアドレス指定として表わされる。Aユニットのデー
タアドレス発生ユニットの第4の使用法は、I/Oメモ
リオペランド(周辺レジスタまたはASICドメインハ
ードウエア)のアドレスを計算することである。この型
のアドレス指定は、(直接、間接、絶対)単一I/Oメ
モリアドレス指定として表わされる。Aユニットのデー
タアドレス発生ユニットの最後の使用法は、データメモ
リスタックオペランドのアドレスを計算することであ
る。この型のアドレス指定は、単一スタックアドレス指
定および複合スタックアドレス指定として表わされる。
先に説明されたように、プロセッサコアCPUレジスタ
は、8M語メモリ空間にあるメモリマップ化レジスタ
(MMR)である。プロセッサ100の命令組は、デー
タメモリアクセスを実行する命令を介して、いかなるレ
ジスタにもアクセスするための効率的手段を提供する。
メモリマップ化レジスタ(MMR)は、語アドレス0h
と05Fh間のそれぞれの主データページの始めに存在
する。従って、MMRはローカルデータページ0(DP
=0h)の部分のみを占有する。プロセッサ100の様
々なMMRが、表3に示されている。
【0035】
【表3a】
【0036】
【表3b】 以下、単一データメモリオペランドアドレス指定の様々
な観点について、さらに詳細に説明する。単一データメ
モリオペランドアドレス指定は、次のアッセンブラニー
モニック:Smen、dbl(Lmen)を使用してい
る。直接、間接および絶対アドレス指定が、単一データ
メモリオペランドを有する命令において使用される。ア
クセスデータの型によって、単一データメモリアドレス
指定は、表4の如く命令内に示される。
【0037】
【表4】 以下の例において、例1および2は、それぞれ、累算
器、データまたはアドレスレジスタにおいて、バイトを
ロードする命令および語をロードする命令を表わす。例
3は、累算器レジスタに長語をロードする命令を示して
いる。最後の例は、長語メモリオペランドから抽出され
た2つの16ビット値を持つ2つの隣接するデータまた
はアドレスレジスタ(DAx)をロードする命令であ
る。 例: 1)dst=low_byte(Bmem) 2)dst=Smem 3)ACx=dbl(Lmem) 4)pair(DAx)=Lmem
【0038】図8は、単一データメモリオペランド命令
フォーマットを示している。単一データメモリオペラン
ド命令は、データメモリアドレスを発生させるため、デ
ータアドレス発生ユニット(DAGEN)によって使用
される8ビットサブフィールド800を組み込んでいる
命令フォーマットを有する。単一データメモリオペラン
ド命令の語メモリオペランドおよびバイトメモリオペラ
ンド(表5を参照)は、プロセッサ100において以下
のバスを介してアクセスされる。 − 読出しメモリオペランド用のDBバス − Dユニットシフター内で予備的シフトが発生しない
ときの書込みメモリオペランド用のDBバス − Dユニットシフター内で予備的シフトが発生すると
きの書込みメモリオペランド用のFBバス
【0039】
【表5】 長語メモリオペランドは、プロセッサ100において以
下のバスを介してアクセスされる。 − 読出しメモリオペランド用の(最上位語−MSW
用)CBおよび(最下位語−LSW用)DB − 書込みメモリオペランド(MSW用)FBおよび
(LSW用)EB
【0040】図9は、命令のアドレス指定フィールドに
おける7ビット正オフセット直接メモリアドレス900
のアドレスフィールドを示している。直接メモリアドレ
ス指定(dma)モードは、ローカルデータページポイ
ンタ(DP)レジスタまたはデータスタックポインタ
(DP)レジスタのいずれか一方に関連して、直接メモ
リアクセスを許可する。相対アドレス指定の型は、CP
L状態ビットによって制御される。CPL=0のとき、
直接メモリアドレス指定は、DPに関連している。CP
L=1のときは、直接メモリアドレス指定は、SPに関
連している。表6に示される如く、23ビット語アドレ
スの計算は、アクセスされたメモリオペランドの型に依
存しない。バイト、語または長語メモリアクセスに対し
て、(dmaと呼ばれる)7ビット正オフセットは、D
PまたはSPの16ビットに加えられる。その16ビッ
ト加算結果は、以下の1つに結び付けられる。 1.CPL=0の場合、7ビット主データページポイン
タMDP 2.CPL=1の場合、0にクリアされた7ビットフィ
ールド(スタックは、主データページ0において実施さ
れる必要がある)
【0041】
【表6】 7ビット正オフセットdmaは、[0、127]区間内
に配列され、命令のアドレス指定フィールドにおいて7
ビットフィールド900内に符号化される(図9を参
照)。その結果、dmaモードは、128語DPまたは
SPフレームに含まれるバイト、語または長語へのアク
セスを許可する。間接メモリアドレス指定モードは、8
個のアドレスレジスタAR[0−7]の内容または係数
データポインタCDPの内容から、データメモリオペラ
ンドのアドレス計算を許可する。そのようなメモリアク
セスが実行されるときはいつでも、選択されたポインタ
レジスタが、アドレス発生の前後に修正される。事前修
正子は、メモリオペランドアドレスを発生する前に、レ
ジスタの内容を修正する。事後修正子は、メモリオペラ
ンドアドレスを発生した後に、レジスタの内容を修正す
る。ポインタレジスタに与えられる修正子組は、ARM
S状態ビットに依存する。ARMS=0のとき、DSP
集約装置の効率的な実行を可能にさせる1組の修正子
が、間接メモリアクセスに対して利用できる。ARMS
=1のときは、制御コードの符号サイズを最適化させる
1組の修正子が、間接メモリアクセスに対して利用でき
る。この修正子組は、「制御モード」修正子と呼ばれ
る。
【0042】選択されたポインタレジスタに適用される
修正子は、循環バッファをデータメモリに実装するた
め、循環管理機構によって制御される。その循環管理機
構は、以下の手段によって制御される。 − 状態レジスタST2。各ポインタレジスタが循環ま
たは直列モードで構成される。 − 3個の16ビットバッファサイズレジスタBK0
3、BK47、およびBKC。実装するための循環バッ
ファのサイズが決定される。 − 5個の16ビットバッファオフセットレジスタBO
F01、BOF23、BOF45、BOF67およびB
OFC。循環バッファ開始アドレスをいかなる制約に対
しても開放する。循環アドレス指定が駆動されようとさ
れまいと、すべての場合において、23ビット発生アド
レスは、16ビット選択ポインタ(ARxまたはCD
P)に関連して事前修正を行うことによって計算され
る。この16ビットの結果は、以下の如く、7ビット主
データページポインタの1つと結び付けられる。 1.間接メモリアドレス指定が、AR0、AR1、AR
2、AR3、AR4またはAR5アドレスレジスタで行
われるとき、MDP05。 2.間接メモリアドレス指定が、AR6またはAR7で
行われるとき、MDP67。 3.間接メモリアドレス指定が、CDPで行われると
き、MDP。 *abs16(#k)および*(#k)として示され
る、2つの絶対メモリアドレス指定モードが、プロセッ
サ上に存在する(表7を参照)。第1の絶対アドレス指
定モードは、MDP基準アドレス指定である。すなわ
ち、語アドレスを表わす16ビット定数は、7ビット主
データページポインタMDPと結び付けられ、23ビッ
ト語メモリアドレスを発生する。このアドレスは、命令
によって、その命令に付加された2バイト拡張によって
与えられる。第2の絶対アドレス指定モードは、23ビ
ット語アドレスを表わしている定数で、全体で8M語の
データメモリのアドレス指定を許可する。このアドレス
は、命令によって、その命令に付加された3バイト拡張
によって与えられる(この3バイト拡張の最上位ビット
は切り捨てれれる)。これらのアドレス指定モードを使
用する命令は、並列方式することはできない。
【0043】
【表7】 (Xmem、Ymem)によって示される間接複合デー
タメモリアドレス指定モードは、8AR[0−7]アド
レスレジスタを介して、2つのメモリアクセスを許可す
る。このアドレス指定モードは、2つの16ビットメモ
リアクセスを行う命令を実行するとき、または2つの命
令を並行して実行するときに使用される。前者の場合、
2つのデータメモリオペランドが、XmemおよびYm
emキーワードを持つ命令内に示されている。後者の場
合、各命令は、間接単一データメモリアドレス(Sme
m、dbl(Lmem))を使用する必要がある。第1
の命令のデータメモリオペランドは、Xmemオペラン
ドとして取り扱われ、第2の命令のデータメモリオペラ
ンドは、Ymemオペランドとして取り扱われる。これ
らの型の複合アクセスは、「ソフトウエア」間接複合ア
クセスとして示される。
【0044】以下の例1は、2つの16ビットメモリオ
ペランドを付加し、その結果を指定された累算器レジス
タに記憶する命令を表わしている。例2は、上記ルール
が考慮される場合並列に処理される2つの単一データメ
モリアドレス指定命令を示している。 例: 1.ACx=(Xmem<<#16)+(Ymem<<
#16) 2.dst=Smem||dst=src and Sme
m Xmemオペランドは、読出しメモリオペランド用のD
Bバスおよび書込みメモリオペランド用のEBバスを介
してアクセスされる。Ymemオペランドは、読出しメ
モリオペランド用のCBバスおよび書込みメモリオペラ
ンド用のFBバスを介してアクセスされる。間接複合デ
ータメモリアドレス指定モードは、間接単一データメモ
リアドレス指定モード(前記参照)と同一の特性を有す
る。ARxアドレスレジスタによる間接メモリアドレス
指定アクセスは、MDP05およびMDP67によって
選択された主データページ内で実行される。ARxアド
レスレジスタによる間接メモリアドレス指定アクセス
は、バッファオフセットレジスタBOFx、バッファサ
イズレジスタBKxx、およびポインタ構成レジスタS
T2が適切に初期化されるとき(前記参照)、循環メモ
リバッファをアドレス指定できる。しかし、ARMS状
態ビットは、間接複合データメモリアドレス指定モード
に利用可能な修正子組を構成しない。
【0045】(Coeff)によって示される、係数デ
ータメモリアドレス指定は、係数データポインタレジス
タCDPを介するメモリ読出しアクセスを許可する。こ
のモードは、間接単一データメモリアドレス指定モード
と同一の特性を有する。CDPポインタレジスタによる
間接メモリアドレス指定アクセスは、MDPレジスタに
よって選択された主データページ内で実行される。CD
Pアドレスレジスタによる間接メモリアドレス指定アク
セスは、循環メモリバッファをアドレス指定できる。メ
モリオペランドにアクセスするための係数メモリアドレ
ス指定モードを使用する命令は、主としてサイクル毎に
3つのメモリオペランドで演算を実行する。これらのオ
ペランドの2つ、Xmem、Ymemは、間接複合デー
タメモリアドレス指定モードでアクセスされる。第3の
オペランドは、係数データメモリアドレス指定モードデ
ータでアクセスされる。このモードは、「coeff」
キーワードをもつ命令内に示されている。
【0046】次の命令例は、このアドレス構成を説明し
ている。1サイクルにおいて、Dユニット複合MACオ
ペレータで2つの乗算が並行して行われる。間接複合デ
ータメモリアドレス指定は2つの別のデータ(Xme
m、Ymem)にアクセスするが、1つのメモリオペラ
ンドが、両方の乗算器(coeff)に共通になってい
る。 ACx=sat40(rnd(uns(Xmem)*
ns(coeff))), sat40(rnd(uns(Ymem)*uns(c
oeff))) coeffオペランドは、BBバスを介してアクセスさ
れる。1サイクル中に(上記の例のように)3つの読出
しメモリオペランドにアクセスするために、coeff
オペランドは、XmemおよびYmemオペランドとは
異なるメモリバンクに配置されるべきである。
【0047】プロセッサCPUコアは、データアドレス
発生ユニット(DAGEN)の特徴を利点とし、CPU
レジスタ内にビットをアドレス指定するための効率的な
手段を与える。この場合、メモリアクセスは実行されな
い。直接および間接レジスタビットアドレス指定モード
が、プロセッサコアCPUアドレス、データおよび累算
器レジスタ上でビット操作を実行する命令において使用
される。レジスタビットアドレス指定は、「Badd
r」キーワードで命令内に示されている。以下の例に示
された5つのビット操作命令は、このアドレス指定モー
ドを使用する。最後の命令例は、2つの連続ビットが
「src」レジスタ内で試験されている間に、単一のレ
ジスタビットアドレスをDAGENによって発生させる
ようにする。 − TCx=bit(src、Baddr) − cbit(src、Baddr) − bit(src、Baddr)=#0 − bit(src、Baddr)=#1 − bit(src、pair(Baddr)) プロセッサ100内のメモリマップ化レジスタのアクセ
ス方法について、さらに詳細に説明する。表3に関連し
て前に説明されたように、プロセッサCPUレジスタ
は、アドレス0hと05Fhとの間の各64K主データ
ページの始めに、メモリマップ化される。このことは、
どのような単一データメモリアドレス指定モード(Sm
em、dbl(Lmem))もプロセッサMMRレジス
タにアクセスするために使用され得ることを意味する。
【0048】直接データメモリアドレス指定(dma)
が使用される。この場合、ユーザは、プロセッサがアプ
リケーションモード(CPL状態ビットが0に設定され
ている)にあって、ローカルデータページポインタレジ
スタが0にリセットされていることを保証する必要があ
る。その後、ユーザはMMRレジスタ記号を使用し、こ
れらのレジスタにアクセスするためアッセンブラに、単
一データメモリオペランド命令のdmaフィールドを定
義させる。 例: 1. DP=#0 ;DPを0に設定 2. .DP0 ;DP値0を示すように向けら れたアッセンブラ 3. bit(ST1、#CPL)=#0 ;CPLを0に設定する。 4. AC1=uns(@AC0_L) ;AC0_L MMRレジスタ をアドレスにdmaアクセス を行う 間接データメモリアドレス指定が使用される。この場
合、ユーザは、使用されるポインタレジスタが選択され
たMMRレジスタを指定するように適切に初期化される
ことを保証する必要がある。
【0049】これらのMMRレジスタのアドレスは、表
3に与えられる。ARMS、FAMILY状態ビットお
よびST2、BOFxx、BKxx、MDPxx、およ
びDRxレジスタが、間接単一データメモリアクセス
(Smem、dbl(Lmem))に対して初期化され
るべきである。 例: 1.AR1=#AC0_L ;AC0_Lを指すようにAR1を初期化 する。 2.AC1=uns(*AR1) ;AC0_L MMRレジスタのアドレス に間接アクセスを行う。 絶対データメモリアドレス指定が使用される。この場
合、MMRレジスタ(表3を参照)のアドレスが、選択
されたMMRにアクセスするために使用される。 例: AC1=*(#AC0_L) ;AC0_L MMRレジ
スタのアドレスに絶対アクセスを行う。 第1の構成は、MMRアクセスを行う前に、ユーザにロ
ーカルデータページポインタおよびCPLをリセットさ
せるという不利益を持つ。第3の構成は、2バイト拡張
語で単一データメモリオペランド命令を拡張するという
不利益がある。
【0050】図10は、図8および図9を参照して、上
述したように、本発明の1つの観点に係る、命令修飾子
を付加することによって、一般的なメモリアクセス命令
の動作を修正するための手段を表わしている。可変長命
令列1000−1004は、プロセッサ100によって
実行されるプログラムを表わしている。命令1002
は、本発明の1つの観点に係る命令修飾子1002bと
関連付けられた一般的なメモリアクセス命令である。好
適には、改善されたMMRアドレス指定モードが与えら
れ、これは、直接メモリアドレス(dma)アクセスを
行う命令と並行して、mmap()として示された、命
令修飾子を使用する。mmap()命令修飾子1002
bは、前に説明したように、黙示並列方式を用いている
関連のメモリアクセス命令1002と関連する組み合わ
せ方法で、命令ユニット106において復号化される。
mmap()修飾子は、並列化された命令の実行に対
し、以下のことが生ずるように、DAGENユニットを
構成する。 − CPLは、0にマスクされる。 − DPは、0にマスクされる。 − MDPは、0にマスクされる。 例: AC1=@(AC0_L)||mmap() ;AC0_Lレジスタへ のMMRアクセスを行う 。これらのセッティングは、MMRレジスタに対応す
る、アドレスフィールド1002aを用いている8M語
のデータメモリの128個の第1語へのアクセスを可能
にさせる。命令1003は、アドレスフィールド100
3aに同一の内容を持ち、命令1002と同一の命令で
ある。しかし、命令1003は、命令修飾子命令と関連
付けられていないので、命令1003は、前に論じたア
ドレスモードの1つにおいて、アドレスフィールド10
03を用いてデータメモリ151からデータ値にアクセ
スする。
【0051】好適には、mmap()命令修飾子を用い
ることによって、プロセッサ100は、命令パイプライ
ンの復号化段階中にバルクメモリに対してアクセスが行
われるのではなく、むしろMMRに対してアクセスが行
われることを決める。従って、メモリに接続されたバス
は、修飾された命令のアクセスサイクル中に、他の手段
によって使用されるように開放される。MMRがアクセ
スされようとしていることを判定するために、アドレス
復号化が行われなければならない場合には、必要としな
いメモリバスは、別の用途に対して開放されない。この
実施例において前に説明されたMMRアドレス指定モー
ドのすべてに対し、幾つかの保証が課せられる。メモリ
に記憶する前にシフト動作を行う命令およびバイトを、
ロードする、すなわち記憶する命令は、MMRにアクセ
スできない(表8を参照)。代替の実施例においては、
これらの保証は取り除かれる。
【表8】
【0052】I/Oメモリアドレス指定モードについて
説明する。前に説明されたように、周辺レジスタまたは
ASICドメインハードウエアは、64K語I/Oメモ
リ空間においてメモリマップ化される。効率的なDAG
ENユニットオペレータは、このメモリ空間にアドレス
するために使用される。再び図1および図6を参照す
る。単一データメモリオペランド(Smem)を有する
すべての命令は、DABおよびEABバスを介してメモ
リ管理ユニット104を経由して、周辺機器26にアク
セスするために使用される。好適には、本発明の1つの
観点によれば、改善されたI/O空間アドレス指定モー
ドが設けられる。このモードでは、直接メモリアドレス
(dma)アクセスを行う命令と並行して、readp
ort()またはwriteport()として示され
る命令修飾子が使用される。これらの命令修飾子は、単
一データメモリオペランド命令と並行して使用され、再
度メモリアクセスをデータ空間からI/O空間に向け
る。readport()修飾子が使用されると、命令
のすべてのSmem読出しオペランドが再度I/O空間
に向けられる。以下の第1の例は、語データメモリ読出
しアクセスを示している。第2の例は、語I/Oメモリ
読出しアクセスを示している。 1)dst=Smem 2)dst=Smem||readport()
【0053】この実施例において、この修飾子をSme
m書込みオペランドを持つ命令に与えることは、非合法
である。writeport()修飾子が使用される
と、命令のすべてのSmem書込みオペランドが再度I
/O空間に向けられる。以下の第1の例は、語データメ
モリ読出しアクセスを示している。第2の例は、語I/
Oメモリ書込みアクセスを示している。 3)Smem=dst 4)Smem=dst||writeport() この実施例において、この修飾子をSmem読出しオペ
ランドを持つ命令に与えることは、非合法である。
【0054】前に説明されたように、単一データメモリ
アドレス指定は、直接データメモリアドレス指定(dm
a)であり得る。並列化されたreadport()/
writeport()によって修正される場合、この
データメモリアドレス指定モードは、直接I/Oメモリ
アドレス指定モードになる。命令のアドレス指定フィー
ルド内で符号化される7ビット正オフセットdmaは、
9ビット周辺機器データページポインタPDPと結び付
けられている。結果としての16ビット語アドレスは、
I/O空間にアドレスするために使用される。このアド
レス指定モードは、I/Oメモリ空間内に128語周辺
機器データページを形成させる。データページ開始アド
レスは、128ビット語境界に整列させられる。また、
512語周辺機器データページは、I/Oメモリ空間内
に形成される。バイトオペランド読出しおよび書込みが
この機構を介して取り扱われ、CPL状態ビットがこの
アドレス指定モードに影響を与えないことに留意するこ
とが重要である。
【0055】前に説明されたように、単一データメモリ
アドレス指定は、間接データメモリアドレス指定で有り
得る。並列化されたreadport()/write
port()によって修正される場合、このデータメモ
リアドレス指定モードは、間接I/Oメモリアドレス指
定モードになる。アドレス発生ユニットによって発生さ
れる間接データメモリアドレスは、I/O空間にアドレ
スするために使用される。周辺空間は、64K語空間に
保証されるので、DAGENユニットは、16ビット語
アドレスのみを計算する。MDPxxとの結びつきは生
じない。この場合、ユーザはそのアドレス指定に対して
使用されるポインタレジスタARxおよびCDPが、選
択されたI/Oメモリロケーションを指すように適切に
初期化されることを保証する必要がある。これらのアク
セスのいずれに対しても、ARMS、FAMILY状態
ビット、およびST2、BOFxx、BKxx、および
DRxレジスタが、間接単一データメモリアクセスに対
して初期化されるべきである。バイトオペランド読出し
および書込みがこの機構を介して取り扱われ、MDPx
xレジスタ内容が、このアドレス指定モードに影響を与
えないことに留意することが重要である。
【0056】I/Oメモリ空間は、絶対I/Oアドレス
指定モード(表9を参照)でもアドレスされ得る。単一
データメモリアドレス指定Smemオペランド命令は、
このモードを使用して、I/Oメモリの全64K語にア
ドレスする。16ビット語アドレスは、命令に付加され
た2バイト拡張を介してその命令によって与えられる定
数である。I/Oメモリオペランドにアクセスするため
にこれらのアドレス指定モードを使用する命令は、並行
処理されない。
【表9】 この実施例においては、幾つかの制限が、前に説明され
たI/Oメモリアドレス指定モードに課せられる。メモ
リに記憶する前にシフト動作を行う命令は、I/Oメモ
リ空間ロケーションにアクセスできない(表10を参
照)。
【表10】
【0057】ポート修飾子は、ビット操作命令とも関連
している。周辺機器を単一命令から設定/クリアするこ
とができるので、I/O空間にセマフォ(semaph
ore)を実装できる。プロセッサ100の命令組は、
初期設定によってメモリを指定する、原始的な試験およ
び設定命令を与える。readport()バイト修飾
子を並列に実行することによって、試験および設定がI
/O空間で実行される。CPUコア102は、LOCK
信号を出す。この信号は、プロセッサ100の読出しス
ロットとプロセッサ100の書込みスロット間における
外部信号(semaphore)アクセスを防止する。
readport()修飾子の場合、メモリロックの代
わりに、バス22上に周辺機器ロックが発生する。2つ
の異なる(または同一の)アドレスを読出しおよび書き
込む複合命令は、readport()またはwrit
eport()によって修飾される。これは、例えば、
周辺機器からメモリへ1組の変数を移動させるための効
率的方法を与える。単一複合命令および単一繰返し命令
を用いて、データブロックを、一時レジスタを使用する
ことなくメモリとI/O空間の間で移動させることがで
きる。これは、コンテキスト交換、周辺機器の初期化な
どに有用である。Ymem=Xmemを実行する複合命
令がreadport()修飾子で並行処理される場合
には、周辺機器読出しおよびメモリ書込みがなされる。
逆に、複合命令がwriteport()修飾子で並行
処理される場合には、メモリ読出しおよび周辺機器書込
みがなされる。
【0058】割り込みまたは他の命令流の不連続性に応
答して、コンテキストセーブを実行するプロセスは、メ
モリマップ修飾子を用いて最適化され得る。CPUレジ
スタは、表11に示された命令を用いてセーブされ、リ
ストアされる。
【表11】 しかし、CPUレジスタおよび周辺機器レジスタは、メ
モリマップ化されているので、表12に示された命令
は、好適には、これらのレジスタをスタックからおよび
スタックに転送するために使用される。
【表12】
【0059】図11は、図1のマイクロプロセッサにお
けるアドレス発生を示しているブロック図である。レジ
スタファイル30は、ユーザスタックポインタ902お
よびシステムスタックポインタ904を含む、マイクロ
プロセッサ100用の様々なレジスタを保持している。
ポインタポスト修正回路網1102は、バス1110を
介してレジスタファイルに接続され、選択された量だけ
選択されたレジスタを増分または減分させるよう動作可
能である。修正されたレジスタ値は、バス1111を介
してオペランドアドレス計算回路網1104に与えられ
る。オペランドアドレス計算回路網1104は、前に説
明したように、例えばスタックポインタ関連アドレスを
スタックポインタに加算することによって、実行されて
いる命令のアドレス指定モードに応答して、選択された
レジスタ値を修正するように動作可能である。その後、
適切な修正アドレス値が、アドレスレジスタ回路網11
06に記憶され、メモリをアクセスするためにアドレス
バス1108に与えられる。アドレスバス1108は、
図6のアドレスバス160、162、164、166ま
たは168のいずれかのバスを表わしている。Aユニッ
トは、16ビット動作および8ビットロード/記憶を支
えている。ほとんどのアドレス計算は、有効な修正子の
おかげでDAGENによって実行される。すべてのポイ
ンタレジスタおよび関連のオフセットレジスタは、16
ビットレジスタとして実装される。16ビットアドレス
は、主データページと結び付けられ、24ビットメモリ
アドレスを構築する。
【0060】図12は、図11のアドレス回路網の一部
分のさらに詳細なブロック図である。アドレス発生は、
論理および算術演算(逆キャリー伝播で、またはそれ無
しにマスキング、加算および減算)を行うことによって
得られる。オペランドの選択は、レジスタファイル内で
行われる。アドレス発生は2段階で行われる。すなわ
ち、レジスタ修正が修正回路網1102で実行され、オ
フセット計算が計算回路網1104で実行される。直接
および絶対アドレス指定は、レジスタ修正を使用しない
(これらの場合には、レジスタ修正結果が無視され
る)。レジスタ修正は、表13に示された信号によって
制御される。一方、オフセット修正は表14に示された
信号によって制御される。
【表13】
【表14】 X、Yおよび係数パスは、非常に類似している。しか
し、そのパスは、限定された組の修正子(事前修正では
ない)で間接アドレス指定を支えるだけなので、係数パ
スは非常に簡潔である。
【0061】さらに図12を参照すると、オペランドア
ドレス計算回路網1104は、レジスタ値を事前増分/
減分するための加算器/減算器ユニット1200を含
む。MUX1202は、バス1111を経由する修正レ
ジスタ値を加算器1200の第1入力に与える。また、
MUX1202は、命令からのオフセット値も加算器1
200の第1入力に与える。マスク装置1204は、加
算器1200の第2入力に接続されており、レジスタフ
ァイルからレジスタの1つを選択できる。計算されたア
ドレスは、検出回路網1206においてMMRを指すか
どうか判定するために審査され、その後バス1112を
介してアドレスレジスタに送られる。本発明の1つの観
点によれば、mmap信号1210は、mmap()修
飾子が復号化され、MMRアドレス指定を可能にさせる
ためにゲート1211に送られるとき使用される。さら
に図12を参照すると、修正回路網1102は、バス1
110を介してレジスタファイル30からレジスタ値を
受け取る。そのレジスタ値は、加算器/減算器1210
によって増分または減分されるか、マスク装置回路網1
212によってマスクされ、その後加算器/減算器12
14によって増分または減分される。マルチプレクサ1
216および1218は、レジスタファイルを更新し、
アドレス計算回路網1104に送るため、修正値をパス
1111にルート付けする。
【0062】図13は、プロセッサ100を包含してい
る集積回路の概略構成を示している。図示の如く、その
集積回路は、表面取付け用の複数個の接点を含んでい
る。しかし、その集積回路は、例えばゼロ挿入力ソケッ
トに取付けるためその回路の下面に設けた複数個のピン
を、または事実適切であればどのような構成でも含み得
る。図14は、一体化されたキーボード12と表示装置
14を持つ携帯電話などの、移動通信装置に、そのよう
な集積回路の一例を実装した模範的な例を示している。
図14に示される如く、プロセッサ100を有するデジ
タルシステム10は、適切にはキーボードアダプタ(図
示せず)を介してキーボード12に接続され、適切には
表示装置アダプタ(図示せず)を介して表示装置14に
接続され、さらに無線周波数(RF)回路網16に接続
されている。そのRF回路網16は、アンテナ18に接
続されている。データ処理装置100の製造は、様々な
量の不純物を半導体基板に注入すること、不純物を基板
内の選択された深さまで拡散させてトランジスタ装置を
形成する段階など、多数の段階を含む。不純物の位置を
制御するためマスクが形成される。導電材料と絶縁材料
の多数の層を堆積させ、エッチングして様々なデバイス
を相互接続する。これらのステップは、クリーンルーム
環境で行われる。データ処理装置の製造コストの大部分
は、試験関係である。ウエーハ状態で、個々のデバイス
を或る動作状態にバイアスして、基本的な動作機能性を
試験する。次に、ウエーハを個々のダイに分割して、ダ
イのままで、またはパッケージ化して販売する。パッケ
ージ化した後、完成品を動作状態までバイアスして、動
作機能性を試験する。
【0063】本発明の新規な観点の代替実施例において
は、ここに開示した回路を組み合わせた別の回路を含
み、機能を組み合わせることによりゲートの総数が削減
される。ゲートを最小化する技術は既知であるので、そ
のような実施例の詳細については、ここでは説明を省略
する。ここで説明したプロセッサは、プログラム可能な
デジタル信号処理プロセッサ(DSP)であって、コー
ド密度が高くプログラミングが容易である。構造と命令
集合は、無線電話用や制御専用として、電力消費を少な
くし、DSPアルゴリズムの実行の効率を高めるよう最
適化されている。プロセッサは、命令バッファユニット
と、命令バッファユニットが復号化した命令を実行する
データ計算ユニットを含む。命令は、暗黙の並列方式か
またはユーザが定義した並列方式に従って、並列に実行
することができる。従って、命令修飾子は命令動作と相
互作用し、修飾された命令の動作を修正する。プロセッ
サ100は、並列方式および可変長命令の利点を有し、
周辺機器レジスタまたはCPUメモリマップ化レジスタ
を効率的に取り扱う。命令組は、メモリマップ化レジス
タとしてコアレジスタおよび外部レジスタ(ASICド
メインハードウエアの周辺機器)をアクセスするための
3個のメモリ命令修飾子を与える。プロセッサ100は
特別なメモリマップ化レジスタまたは周辺機器レジスタ
命令を持たないが、その代わりに8ビット修飾子命令が
一般的なメモリ命令と並列に実行される。全メモリ命令
組は、専用のハードウエア手段を取り扱うために利用可
能であるので、これはユーザに対して用途専用ハードウ
エアとの極めて有力なインタフェースを与える。
【0064】好適には、メモリマップ化修飾子mmap
()は、メモリの代わりに、メモリマップ化レジスタが
アクセスされるように、メモリアクセス命令の動作を変
更することができる。同様に、読出しポート修飾子re
adport()、または書込みポート修飾子writ
eport()は、メモリの代わりに、周辺機器がアク
セスされるように、メモリアクセス命令の動作を変更す
ることができる。プロセッサ100のコアレジスタは、
待ち状態なしにメモリマップ化レジスタとしてアクセス
される。ローカルページ0は、データページレジスタの
内容と関係なく選択される。mmap()修飾子は、直
接メモリアクセスに対して有効であるだけである。メモ
リマップ化レジスタもまた、mmap()修飾子なし
に、ページ0を設定することによって、または間接アド
レス指定によってアクセスされ得る。一般的なメモリ命
令が長語命令dbl(Lmem)として定義される場合
には、一対のレジスタがサイクル毎にアクセスされる。
これは、32ビット累算器の高および低語をパックする
ことになる。この場合、アドレスは常に最上位語を指し
ている。スタックへのダブルプッシュは、並列mmap
()修飾子を介してサポートされる。複合アクセスおよ
びバイトアクセスは、サポートされない。
【0065】I/O装置は、ポート修飾子readpo
rt()、writeport()で修飾される一般的
なメモリアクセス命令を用いてアクセスされる。I/O
区間(64K語)が選択される。そのアクセスは、少な
くとも2サイクルを必要とする。カスタムハードウエア
または構成によっては、余分なスロットを必要とする。
単一の語およびバイトアクセスのみがサポートされる。
この制限は、アクセス修飾構成ではなく、プロセッサ1
00内でルート構築されるバスから駆動される。従っ
て、他の実施例は、異なる制限を持つ。直接メモリアク
セス命令が、コンパイラモードビット(CPL)に関わ
らず、readport()またはwriteport
()タグによって修飾されるとき、周辺機器データペー
ジPDP[15−8]がメモリデータページDP[15
−0]の代わりに選択される。この構成は、メモリ変数
および周辺機器インタフェース化を独立に取り扱う際に
柔軟性を与える。周辺機器フレームは、常に128語境
界に整列させられる。別の実施例では、データメモリま
たは命令メモリのメモリアドレスと重ならないメモリア
ドレスを持つ、1組のメモリマップ化レジスタを持ち得
る。例えば、データの型を特定すること、実行サイトす
なわち実行手段を選択すること、または状態報告の型を
決めることなど、異なる方法で一般的な命令に影響を与
える、他の型の命令修飾子が実現され得る。別の実施例
では、命令修飾子によって修正され得る他のアドレス指
定モードを持ち得る。独立のI/O空間に周辺機器を実
装することで、データメモリアドレス指定空間および周
辺機器データ空間の両方が最大になる。プロセッサ10
0の場合、専用のハードウエアをマップ化するために6
4K語が与えられる。他の実施例では、異なる大きさの
アドレス空間を与えても良い。
【0066】周辺機器またはCPUメモリマップ化命令
を取り扱うために専用の命令を必要としないので、一般
的な命令の符号化効率が改善される。周辺機器ビット操
作が一時的なCPUデータレジスタまたはポインタを要
求することなく、単一の命令から実行されるのデータア
ドレスアプリケーション符号が最適化される。スタック
周辺機器手段にプッシュすることが必要なとき、コンテ
キストセーブが最適化される。アドレス範囲の代わりに
命令修飾子から周辺機器アクセスを復号化することで、
スピードパスが取り除かれる。システムとの高レベルの
インタフェース化を含んでいる応用に対して、コードサ
イズが改善される。システムとの高レベルのインタフェ
ース化を含んでいる応用に対して、電力消費が改善され
る。効率的な周辺機器の取り扱いの面で、割込み待ち時
間/間接費が改善される。その概念は、異なるクラスの
周辺機器をサポートするために拡張され得る。待ち状態
が、修飾子opコードにより動的に調整される。ここで
使用されたように、「印加され」「接続され」および
「接続」の用語は、電気的に接続されていることを意味
し、電気接続経路内に付加的な素子が存在するような場
合も含んでいる。
【0067】本発明は、図示の実施例を参照して説明さ
れたが、この説明は限定的な意味に解釈されるべきでは
ない。この説明を参照して、本発明の様々な他の実施例
は当業者にとって明らかであろう。従って、特許請求の
範囲は、本発明の真の範囲および精神内に入る、実施例
のいかなる変形をも含むものである。
【0068】本出願は、1999年3月8日にヨーロッ
パに出願された出願番号第99400555.1号(T
I−27763EU)および1998年10月6日にヨ
ーロッパに出願された出願番号第98402455.4
号(TI−28433EU)に対する優先権を主張す
る。以下の説明に関して、さらに以下の項を開示する。 (1)命令バスから得られる命令シーケンスを実行する
ように動作可能なマイクロプロセッサを備えているデジ
タルシステムであって、上記マイクロプロセッサが、命
令シーケンスの第1の命令を復号化するように動作可能
な命令バッファユニットと、該第1の命令に応答して、
第1のオペランドの第1のアドレスを計算するように動
作可能なデータアドレス発生ユニットと、第1のアドレ
スに応答して、第1のオペランドを取り出すための手段
と、第1のオペランドを取り扱うための手段と、命令バ
ッファユニットによって復号化されるべき命令流内の命
令を同定する、命令アドレスを与えるための手段を備
え、第1の命令の復号化が第2の命令によって修飾され
るように、上記命令バッファユニットが、第1の命令を
復号化している間、組み合わせ方法で命令シーケンスか
ら第2の命令を復号化するように動作可能であることを
特徴とするデジタルシステム。 (2)第1項に記載のデジタルシステムにおいて、上記
データアドレス発生ユニットは、第2の命令に応答し
て、第1のアドレスの代わりに第2のオペランドの第2
のアドレスを計算するように動作可能であることを特徴
とするデジタルシステム。 (3)第1項記載のデジタルシステムにおいて、第1の
オペランドの第1のアドレスが、メモリアドレス空間内
にあって、第2のオペランドの第2のアドレスが、メモ
リマップレジスタにあることを特徴とするデジタルシス
テム。 (4)第1項記載のデジタルシステムにおいて、第1の
オペランドの第1のアドレスが、メモリアドレス空間内
にあって、第2のオペランドの第2のアドレスが、周辺
装置レジスタにあることを特徴とするデジタルシステ
ム。 (5)セルラー式電話である第1項記載のデジタルシス
テムにおいて、さらに、キーボードアダプタを介してプ
ロセッサに接続された一体型キーボードと、ディスプレ
イアダプタを介してプロセッサに接続されたディスプレ
イと、プロセッサに接続された無線周波数(RF)回路
網と、該RF回路網に接続されたアンテナを有すること
を特徴とするデジタルシステム。
【0069】(6)デジタルシステムの動作方法であっ
て、上記方法は、プロセッサコアの命令パイプライン内
の命令シーケンスを実行する段階を備え、上記命令は、
プログラムカウンタに応答してプロセッサコアと関連付
けられた命令メモリから取り込まれ、上記命令シーケン
スは、複数個の命令フォーマットを有する命令組から選
択され、さらに、命令シーケンスから第1の命令を復号
化する段階を備え、第1の命令は複数個の命令フォーマ
ットから選択される第1のフォーマットを有し、上記方
法はさらに、上記第1の命令を復号化する段階に応答し
て、第1の方法で第1のデータ項目を操作する段階と、
上記命令シーケンスから第2の命令を復号化する段階を
備え、上記第2の命令は上記第1の命令と同一であり、
上記方法はさらに、第2の命令を復号化する段階が第3
の命令を復号化する方法によって修飾されるように、第
2の命令を復号化する段階と結合された方法で修飾子命
令を復号化する段階と、第2のデータ項目が第1のデー
タ項目とは異なる方法で操作されるように、第2の命令
と第3の命令を復号化する段階の組み合わせ方法に応答
して、第2のデータ項目を操作する段階を備えているこ
とを特徴とするデジタルシステムの動作方法。 (7)第6項記載の方法において、第1の方法で操作す
る段階が、データメモリ回路から第1のデータ項目にア
クセスし、異なる方法で操作する段階が、オペランドの
第1のアドレスが、メモリアドレス空間内にあって、第
2のオペランドの第2のアドレスが、メモリマップ化レ
ジスタにあることを特徴とするデジタルシステムの動作
方法。 (8)第6項記載の方法において、第1の方法で操作す
る段階が、データメモリ回路から第1のデータ項目にア
クセスし、異なる方法で操作する段階が、マイクロプロ
セッサに接続された周辺装置にあるレジスタ回路から第
2のデータ項目にアクセスすることを特徴とするデジタ
ルシステムの動作方法。
【0070】(9)高コード密度と平易プログラミング
を与える、可変命令長を持つプログラム可能なデジタル
信号プロセッサ(DSP)である、プロセッサ100が
設けられている。アーキテクチャーおよび命令組は、D
SPアルゴリズムの実行の高効率化や低消費電力に適
し、例えば無線電話など、純制御タスクにも最適になっ
ている。命令1003が復号化され、アドレスフィール
ド1003aに従ってデータ項目にアクセスする。別の
命令1002が復号化され、命令修飾語1002bによ
る異なる方法データアドレスフィールド1002aに従
ってデータ項目にアクセスする。その命令修飾語は、修
飾命令1002と完全に並行して実行される。
【図面の簡単な説明】
【図1】本発明の一実施例に係るプロセッサの概略ブロ
ック図である。
【図2】図1のプロセッサのコアの概略ブロック図であ
る。
【図3】プロセッサコアの様々な実行ユニットをさらに
詳細に示している概略ブロック図である。
【図4】プロセッサの命令デコーダおよび命令バッファ
キューの概略図である。
【図5】プロセッサのパイプラインの動作を説明するた
めの、プロセッサのコアの概略説明図である。
【図6】メモリを相互接続しているメモリ管理ユニット
を表わしているプロセッサのブロック図である。
【図7】プロセッサのプログラムとデータメモリ空間の
統一構造を示している図である。
【図8】単一のデータメモリオペランド命令フォーマッ
トを示している図である。
【図9】命令のアドレス指定フィールドにおける7ビッ
ト正オフセットdmaアドレスに対するアドレスフィー
ルドを示している図である。
【図10】一般的なメモリアクセス命令の動作を修正す
るための手段を説明する図である。
【図11】マイクロプロセッサにおけるアドレス発生を
説明しているブロック図である。
【図12】図11のアドレス発生回路網の部分をさらに
詳細に示しているブロック図である。
【図13】プロセッサを含んでいる集積回路の概略説明
図である。
【図14】図1のプロセッサを含んでいる通信装置の概
略説明図である。
【符号の説明】
10 デジタル信号プロセッサ 100 プロセッサ 102 プロセッサコア 104 メモリ管理ユニット(メモリインタフェースユ
ニット) 20 プロセッサバックプレーン 22 バックプレーンバス 24 命令キャッシュメモリ 26 周辺機器 28 外部インタフェース

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令バスから得られる命令シーケンスを
    実行するように動作可能なマイクロプロセッサを備えて
    いるデジタルシステムであって、上記マイクロプロセッ
    サが、 命令シーケンスの第1の命令を復号化するように動作可
    能な命令バッファユニットと、 該第1の命令に応答して、第1のオペランドの第1のア
    ドレスを計算するように動作可能なデータアドレス発生
    ユニットと、 第1のアドレスに応答して、第1のオペランドを取り出
    すための手段と、 第1のオペランドを取り扱うための手段と、 命令バッファユニットによって復号化されるべき命令流
    内の命令を同定する、命令アドレスを与えるための手段
    を備え、 第1の命令の復号化が第2の命令によって修飾されるよ
    うに、上記命令バッファユニットが、第1の命令を復号
    化している間、組み合わせ方法で命令シーケンスから第
    2の命令を復号化するように動作可能であることを特徴
    とするデジタルシステム。
  2. 【請求項2】 デジタルシステムの動作方法であって、
    上記方法は、 プロセッサコアの命令パイプライン内の命令シーケンス
    を実行する段階を備え、上記命令は、プログラムカウン
    タに応答してプロセッサコアと関連付けられた命令メモ
    リから取り込まれ、上記命令シーケンスは、複数個の命
    令フォーマットを有する命令組から選択され、さらに、 命令シーケンスから第1の命令を復号化する段階を備
    え、第1の命令は複数個の命令フォーマットから選択さ
    れる第1のフォーマットを有し、上記方法はさらに、 上記第1の命令を復号化する段階に応答して、第1の方
    法で第1のデータ項目を操作する段階と、 上記命令シーケンスから第2の命令を復号化する段階を
    備え、上記第2の命令は上記第1の命令と同一であり、
    上記方法はさらに、 第2の命令を復号化する段階が第3の命令を復号化する
    方法によって修飾されるように、第2の命令を復号化す
    る段階と組み合わされた方法で修飾子命令を復号化する
    段階と、 第2のデータ項目が第1のデータ項目とは異なる方法で
    操作されるように、第2の命令と第3の命令を復号化す
    る段階の組み合わせ方法に応答して、第2のデータ項目
    を操作する段階を備えていることを特徴とするデジタル
    システム。
JP2000063769A 1999-03-08 2000-03-08 デジタルシステムおよびその動作方法 Pending JP2000267851A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99400555A EP0992887B1 (en) 1998-10-06 1999-03-08 Memory access using byte qualifiers
EP99400555.1 1999-03-08

Publications (1)

Publication Number Publication Date
JP2000267851A true JP2000267851A (ja) 2000-09-29

Family

ID=8241907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000063769A Pending JP2000267851A (ja) 1999-03-08 2000-03-08 デジタルシステムおよびその動作方法

Country Status (1)

Country Link
JP (1) JP2000267851A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100582378B1 (ko) * 2003-02-24 2006-05-22 인터내셔널 비지네스 머신즈 코포레이션 마이크로프로세서의 전력 소비를 감소시키는 방법 및 머신코드 구축기

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100582378B1 (ko) * 2003-02-24 2006-05-22 인터내셔널 비지네스 머신즈 코포레이션 마이크로프로세서의 전력 소비를 감소시키는 방법 및 머신코드 구축기

Similar Documents

Publication Publication Date Title
US6810475B1 (en) Processor with pipeline conflict resolution using distributed arbitration and shadow registers
EP0992906B1 (en) Apparatus and method for software breakpoint in a delay slot
US6507921B1 (en) Trace fifo management
US6363470B1 (en) Circular buffer management
EP0927393B1 (en) Digital signal processing integrated circuit architecture
US6990570B2 (en) Processor with a computer repeat instruction
US6826679B1 (en) Processor with pointer tracking to eliminate redundant memory fetches
JP2000276351A (ja) ローカル命令ルーピングを有するプロセッサ
EP3340037A1 (en) A data processing apparatus and method for controlling vector memory accesses
US6502152B1 (en) Dual interrupt vector mapping
JP2004005603A (ja) 繰返しブロック命令を入れ子ループに沿ってゼロ・サイクル・オーバヘッドで実行する方法及び装置
JP2000259408A (ja) 遅延スロットにおけるソフトウェアブレークポイント
US7143268B2 (en) Circuit and method for instruction compression and dispersal in wide-issue processors
WO2018115807A1 (en) Vector generating instruction
EP0992897B1 (en) Stack pointer management
KR19980018065A (ko) 스칼라/벡터 연산이 조합된 단일 명령 복수 데이터 처리
US6499098B1 (en) Processor with instruction qualifiers to control MMU operation
JP4355410B2 (ja) 線形ベクトル計算
JP2000267851A (ja) デジタルシステムおよびその動作方法
US7028164B2 (en) Instruction fetch apparatus for wide issue processors and method of operation
JP2000200212A (ja) 巡回バッファ管理
CA2366160A1 (en) System and method for executing variable latency load operations in a data processor
EP0992888B1 (en) Method and apparatus for iterative instruction execution
EP0992902A2 (en) Dual interrupt vector mapping
JP2000284966A (ja) スタック・ポインタ管理