JP2000200212A - 巡回バッファ管理 - Google Patents

巡回バッファ管理

Info

Publication number
JP2000200212A
JP2000200212A JP11321528A JP32152899A JP2000200212A JP 2000200212 A JP2000200212 A JP 2000200212A JP 11321528 A JP11321528 A JP 11321528A JP 32152899 A JP32152899 A JP 32152899A JP 2000200212 A JP2000200212 A JP 2000200212A
Authority
JP
Japan
Prior art keywords
buffer
address
register
circular
offset
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
JP11321528A
Other languages
English (en)
Inventor
Gilbert Laurenti
ラウレンティ ジルベルト
Karim Djafarian
ドジャファリアン カリム
Herve Catan
カタン ヘルベ
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 US09/411,187 external-priority patent/US6363470B1/en
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2000200212A publication Critical patent/JP2000200212A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 巡回バッファの効率的な制御が可能な巡回バ
ッファ管理を提供する。 【解決手段】 巡回バッファをサポートするデータ管理
装置は、仮想バッファインデックスを保持するアドレス
記憶装置ARxとオフセットアドレスを保持するオフセ
ット記憶装置BOFxxとを含む。巡回バッファ管理論
理802は、アドレス記憶装置内に保持された仮想バッ
ファインデックスに変更子を適用して、変更された仮想
バッファインデックスを引き出し、オフセット記憶装置
内に保持されたバッフオフセットを変更された仮想バッ
ファインデックスに適用して、巡回バッファをアドレス
指定するための物理アドレスを引き出すように作動す
る。仮想アドレス指定は巡回バッファ管理用のバッファ
インデックスに利用される。1つ以上の巡回バッファは
互いにおよび/またはメモリ内の他のデータに隣接配置
される。バッファインデックスは巡回バッファ用ポイン
タを形成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、巡回バッファと巡
回バッファの管理と巡回バッファ管理を行う処理エンジ
ンとに関する。
【0002】
【従来の技術】メモリの巡回アドレス指定は、たとえば
ビタビ,バックトラッキング,デインターリービングおよ
びボコーダ計算を含むプロセスのような多くの異なるタ
イプのプロセスを実現するためのプロセッサ設計に有用
である。
【0003】ランダムアクセスメモリ内に巡回バッファ
を実現することが提案されており、巡回バッファは所定
のメモリ境界に揃えられた規定バッファサイズ(BK)
で定義される。たとえば、0であるアドレスの最下位N
ビットで表されるメモリ境界においてサイズRの巡回バ
ッファを揃えることが提案されている。次に、境界に対
して0のインデックスで巡回バッファが開始される。こ
こで、Nは、2N>Rとなるような最小値である。たと
えば、巡回バッファは64ワード境界上で揃えることが
できる。巡回バッファマネジャーは、物理メモリスペー
スへのポインタを使用して巡回バッファへのアクセスを
制御する。巡回バッファをメモリ境界上で揃える必要条
件は、スペースの非効率的使用を意味することがある。
たとえば、38ワードバッファを64ワード境界上で揃
えなければならなず、かつ、複数の巡回バッファがメモ
リ内に保持される場合には、メモリは急速にフラグメン
ト化され、26ワードが隣接巡回バッファ間で使用され
ない。また、あるプログラミング言語の下で巡回バッフ
ァの効率的な制御を行うためには、いかなるアライメン
ト制約も好ましくない。
【0004】
【発明が解決しようとする課題】したがって、本発明の
目的は、従来技術の欠点のない巡回バッファ管理を提供
することにある。
【0005】
【課題を解決するための手段】本発明の第1の態様によ
れば、巡回バッファをサポートするデータ処理装置が提
供される。この装置は、仮想バッファインデックスを保
持するアドレス記憶装置と、オフセットアドレスを保持
するオフセット記憶装置と、バッファサイズを保持する
バッファサイズ記憶装置とを含んでいる。巡回バッファ
管理論理は、アドレス記憶装置内に保持された仮想バッ
ファインデックスに変更子を適用して、変更された仮想
バッファインデックスを引き出すとともに、オフセット
記憶装置内に保持されたバッファオフセットを変更され
た仮想バッファインデックスに適用して、巡回バッファ
をアドレス指定する物理アドレスを引き出すように作動
するよう構成されている。
【0006】バッファインデックスへの仮想アドレス指
定を巡回バッファ管理に利用することにより、より多く
の巡回バッファの1つを互いにまたはメモリ内の他のデ
ータに隣接配置できるようにし、メモリのフラグメンテ
ーションを回避することによって、メモリ資源を効率的
に使用することができる。バッファインデックスは巡回
バッファ用のポインタを形成する。変更子は、ユーザが
定義したり、バッファサイズのようなパラメータに応答
して自動的に発生することができる。
【0007】また、仮想アドレス指定を使用することに
より、巡回バッファをメモリ境界に揃える装置に対して
設計された既存のソフトウェアとのコンパチビリティも
与えられる。仮想アドレス変更は、予め存在するソフト
ウェアに対してトランスペアレントである。
【0008】また、仮想アドレス指定を使用することに
より、メモリアライメント制約をサポートしないたとえ
ば「C」プログラミング言語のようなプログラミング言
語を使用する巡回バッファの実現が容易になる。
【0009】バッファオフセットは、オフセットレジス
タ内に保持することができるバッファ開始アドレスを定
義することができる。次に、変更された仮想バッファイ
ンデックスにこれを加算して物理巡回バッファアドレス
を引き出すことができる。オリジナルおよび変更された
仮想バッファアドレスは、アドレスレジスタ内に保持す
ることができる。
【0010】アドレス記憶装置は、アドレスレジスタの
所定数の下位ビットによって形成することができる。変
更された仮想バッファインデックスは、アドレスレジス
タの所定数の下位ビット内に保持することもできる。ア
ドレスレジスタ内の高位ビット(典型的には、アドレス
レジスタの残り)はバッファ開始アドレスを定義するこ
とができ、したがって、アドレスレジスタ内の高位およ
び下位ビットの組合せが物理アドレスを定義する。
【0011】オフセットレジスタ内に保持することがで
きるバッファオフセットをアドレスレジスタ内の物理ア
ドレスに加算して巡回バッファをアドレス指定する物理
アドレスを定義することができる。この装置は、巡回バ
ッファを保持するランダムアクセスメモリを含むことが
できる。
【0012】メモリ内に巡回バッファを実現する代わり
に、本発明の一実施例は、ビットアレイの操作を提供す
ることができ、それはメモリまたは1つ以上のプロセッ
サレジスタ内に保持することができる。
【0013】アドレスレジスタに対して巡回バッファモ
ードを選択的に設定するために、ポインタ構成レジスタ
を設けることができる。巡回バッファモードの設定を動
的にオーバライトするために、例外モード限定記号を設
けることができる。限定記号は、動的に使用されて、ア
ドレス記憶装置が巡回または線形アドレス指定モードで
作動できるかどうかを定義することができる。
【0014】巡回バッファアドレス計算機構では、第1
および第2の加算/減算計算からの桁上げ信号が、巡回
バッファアドレスの計算用の加算/減算演算の一方の結
果の選択を決定する符号値の計算に使用される。桁上げ
信号をこのように使用することにより、初期マスキング
ステップの必要性が回避され、その結果、装置の速度パ
スが改善される。
【0015】この装置は、デジタル信号プロセッサ(D
SP)を提供するデジタル信号処理装置の形とすること
ができ、1つ以上の集積回路内に実現することができ
る。ランダムアクセスメモリは、集積回路の内部または
外部とすることができる。
【0016】本発明の一実施例は電気通信装置に応用さ
れ、ここでは、巡回バッファ機能はたとえばビタビ,バ
ックトラッキング,デインターリービングおよびボコー
ダ計算を含むプロセスに特に利用される。
【0017】本発明の他の態様によれば、データ処理装
置内で巡回バッファアドレス指定を管理する方法が提供
される。この方法は、仮想バッファインデックスを引き
出すステップと、仮想バッファインデックスを変更して
変更された仮想バッファインデックスを引き出すステッ
プと、バッファオフセットを変更された仮想バッファイ
ンデックスに加算して巡回バッファアドレスを引き出す
ステップと、を含んでいる。
【0018】
【発明の実施の形態】本発明は、たとえば特定用途集積
回路(ASIC)で実現されるデジタル信号プロセッサ
(DSP)に特に応用されるが、他の形式の処理エンジ
ンにも応用される。
【0019】図1は、本発明の一実施例を有するマイク
ロプロセッサ10のブロック図である。マイクロプロセ
ッサ10は、デジタル信号プロセッサ(DSP)であ
る。分かり易くするために、図1は、マイクロプロセッ
サ10の本発明の一実施例を理解するのに関係のある部
分のみを示す。DSPの一般的構造の詳細は、よく知ら
れており、他で容易に確かめることができる。たとえ
ば、フレデリック・ブートウドらの米国特許第5,07
2,418号には、DSPが詳細に記載されており、本
開示の一部としてここに援用する。ギャリー・スオボダ
らの米国特許第5,329,471号には、DSPのテ
ストおよびエミュレート方法が詳細に記載されており、
本開示の一部としてここに援用する。マイクロプロセッ
サの分野の当業者であれば本発明を製造し使用できるよ
うに、マイクロプロセッサ10の本発明の一実施例に関
連する部分の詳細が、以下に十分詳しく説明される。
【0020】本発明の態様から利益を得ることができる
いくつかのシステムの例が、本開示の一部としてここに
援用される米国特許第5,072,418号に、特に米
国特許第5,072,418号の図2〜図18に記載さ
れている。性能を改善するかコストを低減する本発明の
一態様を組み入れたマイクロプロセッサを使用して、米
国特許第5,072,418号に記載されたシステムを
さらに改善することができる。そのようなシステムは、
限定はしないが、産業プロセスコントロール,自動車シ
ステム,モータコントロール,ロボットコントロールシ
ステム,衛星電気通信システム,エコーキャンセリング
システム,モデム,ビデオイメージングシステム,音声
認識システムおよび暗号付ボコーダ−モデムシステムな
どを含む。
【0021】図1のマイクロプロセッサのさまざまなア
ーキテクチュア上の特徴および完全な命令セットの説明
が、同じ譲受人による特許出願第98402455.4
号(TI−28433)に記載されており、本開示の一
部としてここに援用する。
【0022】次に、本発明によるプロセッサの一例の基
本的アーキテクチュアについて説明する。図1は、本発
明の一つの典型的な実施例を形成するプロセッサ10の
全体略図である。プロセッサ10は、処理エンジン10
0とプロセッサバックプレーン20とを含んでいる。本
実施例では、プロセッサは、特定用途集積回路(ASI
C)に実現されたデジタル信号プロセッサ10である。
【0023】図1に示すように、処理エンジン100
は、処理コア102と処理コア102を処理コア102
の外部のメモリユニットとインターフェイスさせるメモ
リインターフェイスすなわち管理ユニット104とを有
する中央処理装置(CPU)を形成する。
【0024】プロセッサバックプレーン20は、バック
プレーンバス22を含み、それには処理エンジンのメモ
リ管理ユニット104が接続されている。バックプレー
ンバス22には、命令キャッシュメモリ24,周辺装置
26および外部インターフェイス28も接続されてい
る。
【0025】他の実施例では、異なる構成および/また
は異なる技術を使用して本発明を実現できることが分か
るであろう。たとえば、処理エンジン100はプロセッ
サ10を形成することができ、プロセッサバックプレー
ン20はそこから分離されている。処理エンジン100
は、たとえば、バックプレーンバス22,周辺装置およ
び外部インターフェイスを支持するバックプレーン20
から独立してその上に搭載されたDSPであり得る。処
理エンジン100は、たとえば、DSPではなくマイク
ロプロセッサとすることができ、ASIC技術以外の技
術で実現することができる。処理エンジンまたは処理エ
ンジンを含むプロセッサは1つ以上の集積回路に実現す
ることができる。
【0026】図2は、処理コア102の一実施例の基本
構造を示す。図から分かるように、処理コア102は、
4つの要素、すなわち、命令バッファユニット(Iユニ
ット)106と3つの実行ユニットとを含んでいる。実
行ユニットは、プログラムフローユニット(Pユニッ
ト)108と、アドレスデータフローユニット(Aユニ
ット)110と、命令バッファユニット(Iユニット)
106から復号された命令を実行しプログラムフローを
制御かつ監視するデータ計算ユニット(Dユニット)1
12とである。
【0027】図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内のサブユニ
ットに結合されている。
【0028】図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内のアドレス発生を制御し監視する係数
およびスタックポインタレジスタとを含んでいる。
【0029】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にも
結合されている。
【0030】図から分かるように、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のサブユニットに
も結合されている。
【0031】図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に現在ディスパッチされている
命令のプログラムメモリ内のアドレスを指示する。
【0032】命令は、48ビットワードに形成され、マ
ルチプレクサ520,521を介して48ビットバス5
16によって命令デコーダ512,514にロードされ
る。当業者ならば、命令は48ビット以外のワードに形
成することができること、また、本発明は前記した特定
の実施例に限定されるものではないことが、分かるであ
ろう。
【0033】バス516は、任意の1命令サイクル中
に、デコーダ当たり1つずつ、最大2つの命令をロード
することができる。命令の組合せは、48ビットバスの
両端間にわたって適合する8,16,24,32,40
および48ビットのフォーマットの任意の組合せとする
ことができる。1サイクル中に1命令しかロードできな
い場合には、デコーダ1,512がデコーダ2,514
に優先してロードされる。次に、各命令は、それらを実
行するために、また、命令または演算が実行されるべき
データにアクセスするために、各機能ユニットに転送さ
れる。命令デコーダに通される前に、命令はバイト境界
上でアラインされる。アライメントは、その復号中に前
の命令に対して引き出されたフォーマットに基づいて行
われる。バイト境界を有する命令のアライメントに関連
する多重化は、マルチプレクサ520,521で実行さ
れる。
【0034】プロセッサコア102は7ステージパイプ
ラインを介して命令を実行し、その各ステージは図5を
参照して説明される。
【0035】パイプラインの第1ステージは、PRE−
FETCH(P0)ステージ202であり、このステー
ジ中に、メモリインターフェイスまたはメモリ管理ユニ
ット104のアドレスバス(PAB)118上にアドレ
スを表明することによって次のプログラムメモリ位置が
アドレス指定される。
【0036】次のステージ、FETCH(P1)ステー
ジ204では、プログラムメモリが読み出され、Iユニ
ット106がメモリ管理ユニット104からPBバス1
22を介して充填される。
【0037】パイプラインはPRE−FETCHおよび
FETCHステージ中に割り込まれて逐次プログラムフ
ローを中断してプログラムメモリ内の他の命令、たとえ
ば分岐命令を指示することができる点で、PRE−FE
TCHおよびFETCHステージは残りのパイプライン
ステージから独立している。
【0038】次に、命令バッファ内の次の命令が、第3
ステージDECODE(P2)206でデコーダ512
または複数のデコーダ514にディスパッチされ、そこ
で、命令は、復号されて、その命令を実行する実行ユニ
ット、たとえばPユニット108,Aユニット110ま
たはDユニット112にディスパッチされる。復号ステ
ージ206は、命令のクラスを示す第1の部分と命令の
フォーマットを示す第2の部分と命令に対するアドレス
指定モードを示す第3の部分とを含む命令の少なくとも
一部を復号することを含んでいる。
【0039】次のステージはADDRESS(P3)ス
テージ208であり、そこでは、命令内で使用されるデ
ータのアドレスが計算されるか、命令がプログラム分岐
すなわちジャンプを必要とする場合には新しいプログラ
ムアドレスが計算される。各計算は、Aユニット110
またはPユニット108でそれぞれ行われる。
【0040】ACCESS(P4)ステージ210で
は、リードオペランドのアドレスが出力されたのち、X
mem間接アドレス指定モードを有するDAGEN X
演算子でアドレスが発生されているメモリオペランド
が、間接アドレス指定されたXメモリ(Xmem)から
読み出される。
【0041】パイプラインの次のステージはREAD
(P5)ステージ212であり、そこでは、Ymem間
接アドレス指定モードを有するDAGEN Y演算子内
または係数アドレスモードを有するDAGEN C演算
子内でアドレスが発生されているメモリオペランドが、
読み出される。命令の結果が書き込まれるメモリ位置の
アドレスが出力される。
【0042】デュアルアクセスの場合には、リードオペ
ランドをYパスで発生し、ライトオペランドをXパスで
発生することもできる。
【0043】最後に、命令がAユニット110内または
Dユニット112内で実行される実行EXEC(P6)
ステージ214がある。次に、結果がデータレジスタま
たは累算器に格納されるか、リード/モディファイ/ラ
イト用またはストア命令用のメモリに書き込まれる。さ
らに、シフト演算がEXECステージ中に累算器内のデ
ータになされる。
【0044】次に、パイプラインプロセッサの動作の基
本的原理について図6を参照して説明する。図6から分
かるように、第1の命令302に対して、連続パイプラ
インステージが期間T1〜T7にわたって行われる。各期
間はプロセッサマシンクロックに対するクロックサイク
ルである。前の命令が次のパイプラインステージに移行
しているため、第2の命令304が期間T2でパイプラ
インに入ることができる。第3の命令306に対して、
PRE−FETCHステージ202が期間T3で行われ
る。図6から分かるように、7ステージパイプラインに
対して、合計7つの命令を同時に処理することができ
る。7つの命令302〜314の全てに対して、図6は
期間T7でそれら全てが処理中であることを示してい
る。このような構造は命令の処理に一形式の並列性を付
加する。
【0045】図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に結合されている。
【0046】より詳細には、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に結合されている。
【0047】図7は、たとえば分岐命令を転送する、I
ユニット106からPユニット108への命令の通過を
参照符号124で表示している。さらに、図7は、Iユ
ニット106からAユニット110およびDユニット1
12へのデータの通過を参照符号126,128でそれ
ぞれ表示している。
【0048】本発明のこの実施例では、処理エンジン1
00はいくつかのフォーマットでマシン命令に応答す
る。さまざまなフォーマットのこのような命令の例を以
下に示す。
【0049】8ビット命令:○○○○ ○○○○ これは、8ビット命令、たとえばメモリマップ修飾子
(MMAP())またはリードポート修飾子(readpor
t())を表す。このような修飾子は単に8ビット操作符
号(○○○○ ○○○○)を含むのみである。このよう
な場合、並列性はインプリシットである。
【0050】16ビット命令:○○○○ ○○○E FS
SS FDDD これは、16ビット命令、たとえばデスティネーション
レジスタの内容(たとえば、dst)がそのレジスタの
前の内容(dst)とソースレジスタの内容(src)
との和となる命令、すなわち、
【数1】 の一例を表わす。
【0051】このような命令は、1ビットパラレルイネ
ーブルフィールド(E)と4ビットソースレジスタ識別
子(FSSS)と4ビットデスティネーションレジスタ
識別子(FDDD)とを有する7ビット操作符号(○○
○○ ○○○)である。
【0052】16ビット命令:○○○○ FDDD PP
PM MMMI これは、たとえばデスティネーションレジスタの内容
(たとえば、dst)がメモリ位置の内容(Smem)
となる、すなわち、
【数2】 16ビット命令のもう1つの例である。
【0053】このような命令は、4ビット操作符号(○
○○○)と4ビットデスティネーションレジスタ識別子
(FDDD)と3ビットポインタアドレス(PPP)と
4ビットアドレス変更子(M MMM)と直接/間接ア
ドレスインジケータ(I)とを含んでいる。
【0054】24ビット命令:○○○○ ○○○E LL
LL LLLL oCCC CCCC これは、24ビット命令、たとえば条件分岐命令および
条件が満たされる場合のオフセット(L8)を表す、す
なわち、
【数3】 の一例を表わす。
【0055】このような命令は、1ビットパラレルイネ
ーブルフィールド(E)と8ビット分岐オフセット(L
LLL LLLL)と1ビット操作符号拡張(o)と7
ビット条件フィールド(CCC CCCC)とを有する
7ビット操作符号(○○○○○○○)を含んでいる。
【0056】24ビット命令:○○○○ ○○○○ PP
PM MMMI SSDD ooU% これは、24ビット命令のもう1つの例、たとえば累算
器の内容(ACy)がもう1つの累算器の内容(ACx
およびメモリ位置の内容(随意丸めがある)の二乗の和
を丸めた結果となり、データレジスタの内容(DR3)
が随意メモリ位置の内容となる単一メモリオペランド命
令、すなわち、
【数4】 のもう1つの例である。
【0057】このような命令は、8ビット操作符号(○
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
2ビットソース累算器識別子(SS)と2ビットデステ
ィネーション累算器識別子(DD)と2ビット操作符号
拡張(oo)と更新条件フィールド(u)と1ビット丸
めオプションフィールド(%)とを含んでいる。
【0058】32ビット命令:○○○○ ○○○○ PP
PM MMMI KKKK KKKKKKKK KKKK これは、32ビット命令、たとえばメモリ位置(Sme
m)の一定値(K16)との符号比較に応じてテストレ
ジスタの内容(TC1)が1または0に設定される命
令、すなわち、
【数5】 の一例である。
【0059】このような命令は、8ビット操作符号(○
○○○ ○○○○)と3ビットポインタアドレス(PP
P)と4ビットアドレス変更子(M MMM)と1ビッ
ト直接/間接アドレスインジケータフィールド(I)と
16ビット定数フィールド(KKKK KKKK KKK
K KKKK)とを含んでいる。
【0060】以下の説明では、巡回バッファ管理につい
て特に説明する。巡回バッファは、たとえば、ビタビ,
バックトラッキング,デインターリービングおよびボコ
ーダ計算に応用される。このような計算は、たとえば電
気通信システムで必要とされる。
【0061】巡回バッファは、従来システムでは、バッ
ファが固定メモリ境界上で揃えられて実現されている。
たとえば、サイズRの巡回バッファを0であるアドレス
の最下位Nビットで表されるメモリ境界で揃えることが
提案されている。巡回バッファは、次に、境界に対して
0のインデックスで開始される。ここで、Nは2N>R
である最小値である。たとえば、巡回バッファは64ワ
ード境界上で揃えることができる。その結果、巡回バッ
ファはメモリスペースを完全には占有しないため、シス
テムメモリは急速にフラグメント化されおよび/または
非効率的に使用される。これを図8に示し、各々がNワ
ードを含む第1,第2および第3の巡回バッファCB
1,CB2,CB3がKワードメモリ境界上に配列され
ている。ここで、K>Nである。非使用メモリUMは巡
回バッファ間に残されることが容易に分かるであろう。
本発明は、メモリのこの非効率的使用を解決しようとす
るものである。
【0062】図9は、本発明を理解するのに適切な図1
のプロセッサの態様の略ブロック図である。本発明を理
解するのに適切でない図1のプロセッサの態様は、当業
者ならば従来の方法で実現することができ、分かりやす
くするために図9には図示されていない。
【0063】本発明の一実施例では、巡回バッファは、
任意の特定の固定メモリ境界に揃える必要がなく、メモ
リ境界からオフセットして配置することができる。本発
明の一実施例では、これは、巡回バッファを固定メモリ
境界に配置させる必要がある従来の装置とのコンパチビ
リティを維持しながら達成することができる。このこと
は、巡回バッファ管理が従来のソフトウェアアプリケー
ションに対してトランスペアレントでなければならない
ことを意味する。したがって、巡回バッファリアライメ
ント用のハードウェアサポートが提供される。
【0064】図9は巡回バッファ管理ユニット802を
示し、それは前記したDAGENユニットの一部を形成
することができる。巡回バッファ管理に使用されるさま
ざまなレジスタも図示されている。これらには、ポイン
タ構成レジスタ(ST2)と、アドレスレジスタARx
(AR0〜AR7)と、係数データポインタ(CDP)
と、インデックス/オフセットレジスタDR0,DR1
と、バッファオフセットレジスタBOFxxと、バッフ
ァサイズレジスタBKxxとが含まれる。巡回バッファ
管理ユニット802は、さまざまなレジスタ内に格納さ
れた値に応答して巡回バッファのアドレス指定を管理す
る。巡回バッファ管理ユニットによって利用されるさま
ざまなデータアイテムは本例ではレジスタ内に格納され
るが、これらのデータアイテムの少なくともいくつか恐
らくは全てをランダムアクセスメモリ内に構成されたレ
ジスタ内に保持できることが分かるであろう。
【0065】ポインタ構成レジスタST2は、関連する
アドレスレジスタが巡回アドレス指定モードまたは線形
アドレス指定モードで作動できるかどうかを表す限定記
号を含んでいる。レジスタを設けることにより、巡回バ
ッファまたは線形操作が現在利用されているかどうかを
各命令に対して指定する必要が回避される。ポインタ構
成レジスタST2内の適当なビットは、巡回アドレス指
定モードに入るときにセットすることができ、巡回アド
レス指定モードが終止するときにリセットすることがで
きる。しかしながら、巡回バッファに対してこれが既に
セットされている線形バッファに対するポインタ構成レ
ジスタST2用の限定記号を再定義する必要を回避する
ために、ポインタ構成レジスタの状態を無視する例外を
設けることができる。したがって、巡回バッファモード
の設定を動的にオーバライドするための例外モード限定
記号を設けることができる。限定記号は、アドレス記憶
装置が巡回または線形アドレス指定モードで作動できる
かどうかを定義するのに動的に使用することもできる。
【0066】インデックス/オフセットレジスタDR
0,DR1は、8つのアドレスレジスタARxにインデ
ックスを与える。これは、1つのアドレスレジスタ(A
R0)しか与えられていない従来の処理エンジンにたと
えられる。インデックスは、ユーザ定義定数の形または
1ワードアクセスに対する±1もしくは2ワードアクセ
スに対する±2の形で与えることもできる。
【0067】バッファオフセットレジスタはアドレスレ
ジスタ用の限定記号として作用し、その結果、本発明の
一実施例において提供されるオフセットの知識がなくて
も従来のソフトウェアによってアドレスレジスタにアク
セスできる。下記の表1から分かるように、バッファオ
フセットレジスタBOFxxおよびバッファサイズレジ
スタBKxはアドレスレジスタ間で共有される。たとえ
ば、表1に示すように、バッファオフセットレジスタB
OF0はアドレスレジスタAR0,AR1間で共有さ
れ、BOF23はアドレスレジスタAR2,AR3間で
共有され、以下同様である。バッファサイズレジスタは
巡回バッファのサイズを定義する。やはり表1から分か
るように、バッファサイズレジスタが共有される。たと
えば、バッファサイズレジスタBK03はアドレスレジ
スタAR0,AR1,AR2,AR3間で共有される。
【0068】
【表1】
【0069】巡回バッファサイズは、アドレスレジスタ
ポインタに関連するバッファサイズレジスタによって定
義される。前記した例では、3つのバッファサイズがサ
ポートされる(別の例では、別のバッファサイズをサポ
ートできる)。したがって、バッファサイズレジスタ
は、アドレスレジスタの第1のグループ,アドレスレジ
スタの第2のグループおよび係数データポインタレジス
タの巡回アドレス指定パラメータをそれぞれ提供するこ
とができる。2つの連続するアドレスレジスタが同じバ
ッファオフセットレジスタを共有することができる。し
かしながら、各ポインタがポインタ構成レジスタ(ST
2)内にそれ自体の巡回/線形構成ビットを有してい
る。巡回アドレス指定は、関連するST2構成ビットが
セットされるか巡回バイト限定記号と並列にメモリ命令
が実行される場合しか行われない。2つの操作基本モー
ドが考えられる。
【0070】第1のモードでは、アドレスレジスタは、
Kビット境界に一致する開始アドレスを有する仮想バッ
ファを指示する。仮想バッファ開始アドレスは、ARx
ハイフィールド(フィールド幅はバッファサイズによっ
て定義される)およびARxローフィールドクリアによ
って定義される。アドレス計算が変更子に従って仮想ア
ドレスに行われる。関連するバッファオフセットレジス
タBOFxx内に格納されたバッファアドレスオフセッ
トを仮想アドレスに加算することによって、仮想から物
理へのアドレス変換が行われる。オフセットは、巡回変
更が選択されている場合にしか加算されない。
【0071】第2のモードでは、バッファ開始アドレス
がBOFxxレジスタ内に格納される。インデックス
が、ARxレジスタ内に格納され変更子に従って計算さ
れる。関連するBOFxxレジスタ内に格納されている
バッファ開始アドレスへインデックスを加算することに
よって、仮想から物理へのアドレス変換が行われる。バ
ッファ開始アドレスは、巡回変更が選択されている場合
にしか加算されない。
【0072】図10は巡回バッファアドレス発生の略図
である。これはAユニットDAGEN32内で行われ
る。ここで、BKxxレジスタからのバッファサイズお
よびたとえばDR0/DR1レジスタからのインデック
ス値に基づいて、符号付計算702が行われる。第1お
よび第2の加算/減算演算704,706からの全ての
桁上げ出力が符号計算702に供給される。これによ
り、後述するように第1または第2の加算/減算演算7
04,706からの出力を取り込むかどうかを符号計算
が決定することができる。桁上げ出力を使用することに
より、(本来なら図10に示すステージの前に必要であ
る)初期マスキングステップを省くことができる。
【0073】ARxレジスタからのポインタおよびたと
えばDR0/DR1レジスタからのインデックス値に基
づいて、第1の加算/減算演算704が行われる。第1
のインクリメント/デクリメント操作704の出力およ
びBKxxレジスタからのバッファサイズに基づいて、
第2の加算/減算演算706が行われる。符号計算70
2の出力は、第1および第2の加算/減算演算704,
706の出力のモジュロ選択を制御するのに使用され
る。したがって、第1および第2の加算/減算計算から
の桁上げ信号は、符号値を計算して巡回バッファアドレ
ス計算用の加算/減算演算の一方の結果の選択を決定す
るのに使用される。
【0074】次に、符号付き計算702の制御の下でモ
ジュロ選択708からの出力およびARxレジスタから
のポインタに基づいて、マスキング操作710が行われ
る。マスク操作からの前後変更がレジスタファイルに戻
される。マスク操作の出力は選択操作712によっても
使用される。そこでは、選択は、直接メモリアクセスオ
フセット(dma)値からなされる。選択は、スタック
ポインタ/データページポインタ(SP/DP)値とB
OFxxレジスタからのバッファオフセットとの間でも
行われる714。選択操作712,714の出力は、7
16において論理積がとられて信号をメモリアドレスバ
スインターフェイスに供給する。
【0075】巡回アドレス指定は、間接シングルデータ
メモリアクセス(Smem,dbl(Lmem))、間
接レジスタビットアクセス(Baddr)、または、ソ
フトウェア間接デュアルデータメモリアクセスおよび係
数データメモリアドレス指定(coeff)を含む間接
デュアルデータメモリアクセス(Xmem,Ymem)
に使用することができる。
【0076】ARxアドレスレジスタおよびCDPアド
レスレジスタは、巡回バッファ内でポインタとして使用
される。巡回メモリバッファ開始アドレスは、いかなる
アライメント制約にも束縛されない。図11を参照して
説明するように、アライメント制約のある従来の巡回バ
ッファ管理機構とのコンパチビリティが保証される。
【0077】図11の例では、アドレスレジスタAR0
およびオフセットレジスタBOF01は巡回バッファを
アドレス指定するために使用される。もう1つのレジス
タBK03はバッファサイズを保持するために使用され
る。アドレスレジスタAR0に対して巡回アドレス指定
変更モードをセットするために、ポインタ構成レジスタ
ST2内の1ビットが1にセットされる。
【0078】DAGENユニットは、データメモリアド
レス指定用の23ビットワードアドレスポインタを組み
立てるのにメインデータページポインタレジスタを使用
する。レジスタビットアドレス指定の場合には、メイン
データページポインタとの連接は生じない。
【0079】8つのアドレスレジスタARxおよび係数
データポインタCDPの各々は、これらのポインタレジ
スタで行われる間接アドレス指定を介して線形または巡
回変更されるように、独立に構成することができる。こ
の構成は、ST2状態ビットレジスタをセットすること
によって達成される。表1は、ARxおよびCDPレジ
スタの巡回変更を構成するST2,BOFxxおよびB
Kxxレジスタのさまざまな状態を示している。
【0080】上述したように、巡回バッファサイズはバ
ッファサイズレジスタによって定義される。表1に示す
例では、16ビットバッファサイズレジスタ(BK0,
BK7およびBKC)がサポートされる。巡回バッファ
開始アドレスは、対応するARxアドレスレジスタまた
はCDP係数データポインタレジスタと組み合わされた
バッファオフセットレジスタによって定義される。表1
に示す例では、5つの16ビットバッファオフセットレ
ジスタ(BOF01,BOF23,BOF45,BOF
67およびBOFC)がサポートされる。表1には、巡
回アドレス指定が行われるときにどのバッファオフセッ
トレジスタが使用されるかも示されている。
【0081】表1に示す3つのバッファサイズレジスタ
BKxおよび3つのアドレス発生器を設けることによっ
て、3つのオペランド命令をサポートすることができ
る。
【0082】次に、図11を参照して、巡回バッファア
ドレス指定ユニットの論理によって適用されるアドレス
指定について説明する。
【0083】仮想バッファのアドレス境界がバッファサ
イズレジスタBKxx810(図11では、レジスタB
K03)内のバッファサイズ値によって定義される。巡
回バッファ管理ユニットが、バッファサイズ値812に
よって表される仮想バッファアドレス境界内にバッファ
インデックスを維持する。
【0084】仮想バッファアドレスの頂部はアドレス0
Hであり、仮想バッファアドレスの底部はバッファサイ
ズレジスタBKxx810の内容によって定義される。
BKxxレジスタ内の最初の“1”(たとえば、ビット
N)の位置により、ARxレジスタ(図11では、レジ
スタAR0)からの仮想バッファ内に仮想バッファイン
デックスを組み立てることができる。次に、仮想バッフ
ァインデックスがビットNまでのARxレジスタの最下
位ビットによって定義され、図11の816に示すよう
に、残りの高位ビットはゼロとして取り出される(すな
わち、ビットN+1〜15がゼロとして取り出され
る)。
【0085】巡回バッファ管理ユニット800はこのイ
ンデックスに算術演算818を行い、それのより、仮想
バッファインデックス対この仮想バッファの頂部および
底部の値に従ってBKxxレジスタ内容の加算または減
算が行われて、変更された(すなわち、新しい)仮想バ
ッファインデックス820が形成される。
【0086】次に、変更された仮想バッファインデック
ス820およびARxレジスタ814の古い内容のハイ
(15−N)ビットから、変更された(すなわち、新し
い)ARx820レジスタ値が組み立てられる。
【0087】選択された間接アドレス指定モードに従っ
て、DAGENによって出力されるアドレス830は、
下記のいずれかから生じる23ビットワードアドレスと
なる。BOFxxレジスタ824の16ビット加算82
6およびポインタレジスタの前変更を必要とするアドレ
ス指定モードに対するARxレジスタ822の新しい内
容、または、BOFxxレジスタ824の16ビット加
算およびポインタレジスタの後変更を必要とするアドレ
ス指定モードに対するARxレジスタ814の古い内
容、いずれの場合も、その後に対応する7ビットメイン
データページポインタレジスタMDPxx828(図1
1では、MDP05)の連接が続く。この連接はレジス
タビットアドレス指定が行われるときには生じないこと
を留意願いたい。
【0088】巡回バッファ管理ユニットによって行われ
る巡回アドレス指定は、ポインタレジスタの前変更によ
りARxレジスタがステップ値だけ変更されることがあ
る(たとえば、*+ARx(#K16)アドレス指定モ
ード)ことを考慮して、表2で説明するアルゴリズムで
さらに表される。
【0089】
【表2】
【0090】巡回バッファ管理の実現を図12にフロー
図でさらに示す。
【0091】ステップS1では、ST2ポインタ構成レ
ジスタの適当なビットが初期化されて、選択されたポイ
ンタに対する巡回アクティビティがセットされる。
【0092】ステップS2では、適当なMDPxxメイ
ンデータページポインタが初期化されて、巡回バッファ
が実現される64Kページを選択する。
【0093】ステップS3では、適当なBOFxxバッ
ファオフセットレジスタが巡回バッファの開始アドレス
に初期化される。
【0094】ステップS4では、適当なARxレジスタ
が巡回バッファ内のインデックスとして初期化される。
【0095】MDPxx,BOFxxおよびARxレジ
スタの初期化は、選択されたポインタレジスタ上でいか
なるポインタ変更も生じないうちに23ビットアドレス
MDPxx&(BOFx+ARx)が巡回バッファ内を
指示するように行われる。
【0096】ステップS5では、DR0およびDR1ス
テップレジスタはバッファサイズBKxx以下となるよ
うに初期化される。これを達成するための符号列を表3
に示す。
【0097】
【表3】
【0098】状態ビットが1にセットされたメモリ境界
に基づいてアドレス指定とのコンパチビリティを提供す
る別のモードでは、巡回バッファサイズレジスタBK0
3がビットAR[0〜7]と関連づけられ、BK47レ
ジスタアクセスがディスエーブルされる。この場合に
は、ステップは図13に示すものとなる。
【0099】ステップS11では、ST2ポインタ構成
レジスタの適当なビットが初期化されて、選択されたポ
インタに対する巡回アクティビティがセットされる。
【0100】ステップS12では、適当なMDPxxメ
インデータページポインタが初期化されて、巡回バッフ
ァが実現される64Kページを選択する。アドレストラ
ンスレータ出力符号は、メインデータページが0である
と推定する。
【0101】ステップS13では、適当なBOFxxバ
ッファオフセットレジスタがある値(たとえば、0また
はユーザが与える値)に初期化される。アドレストラン
スレータ出力符号は、全てのBOFxxレジスタが0に
セットされているものと推定する。
【0102】ステップS14では、適当なARxレジス
タが任意の巡回アドレス指定を使用する前に初期化され
る。選択されたレジスタは巡回バッファ内を指示しなけ
ればならない。
【0103】ステップS15では、アドレスレジスタお
よびDR1ステップレジスタはバッファサイズBKxx
以下となるように初期化される。これを達成するための
符号列の例を表4に示す。
【0104】
【表4】
【0105】BOF01レジスタはユーザによって供給
されるオフセットで初期化されることが分かるであろ
う。これにより、巡回バッファとメモリ境界との間のア
ライメントが解消される。したがって、巡回バッファの
柔軟性のある位置決めが可能となる。
【0106】上記説明では、特に特定のメモリ境界に巡
回バッファを配置する必要性を回避する状況において、
メモリ内のワードをアドレス指定して巡回バッファを提
供することについて説明してきた。しかしながら、本発
明は、メモリ内の巡回バッファのアドレス指定に限定さ
れるものではない。本発明の一実施例は、メモリ内であ
れ1つ以上のプロセッサレジスタ内であれ、ビットアレ
イのアドレス指定を行うのに利用することもできる。こ
の場合、ビットアレイは巡回バッファとして有効に管理
される。たとえば、ビット操作命令は、レジスタ内のビ
ットを指示するアドレスレジスタARxをアクセスする
ことができ、指示されたアドレスはXビット毎にレジス
タ周りをステップするように変更することができる。
【0107】図14は、図1のプロセッサ10を内蔵す
る集積回路40の略図である。集積回路は特定用途集積
回路(ASIC)技術を使用して実現することができ
る。図から分かるように、集積回路は複数の表面実装用
のコンタクト42を含んでいる。しかしながら、集積回
路は、他の構成、たとえばゼロ挿入力ソケット内に搭載
するための回路下面上の複数のピンまたは他の任意適切
な構成を含むことができる。
【0108】たとえば図15の集積回路に内蔵されるプ
ロセッサ10のような処理エンジンの1つの応用は、電
気通信装置、たとえば移動体ワイヤレス電気通信装置で
ある。図16はこのような電気通信装置の一例を示す。
図16に示す特定の例では、電気通信装置は、キーパッ
ドまたはキーボード12とディスプレイ14のような一
体型ユーザ入力装置を有する移動体電話機11である。
ディスプレイは、たとえば液晶ディスプレイやTFTデ
ィスプレイのような適切な技術を使用して実現すること
ができる。プロセッサ10はキーパッド12に接続され
ており、そこで、適切なキーボードアダプタ(不図示)
を介してディスプレイ14に接続され、そこで、適切な
ディスプレイアダプタ(不図示)を介して電気通信装置
インターフェイスすなわちトランシーバ16、たとえば
無線周波数(RF)回路を含むワイヤレス電気通信装置
インターフェイスに接続されている。無線周波数回路
は、プロセッサ10を含む集積回路40に内蔵してもそ
こから離してもよい。RF回路16はアンテナ18に接
続されている。
【0109】仮想バッファインデックスを保持するアド
レス記憶装置およびオフセットアドレスを保持するオフ
セット記憶装置を含む巡回バッファをサポートするデー
タ処理装置について説明してきた。巡回バッファ管理論
理は、アドレス記憶装置内に保持された仮想バッファイ
ンデックスに変更子を適用して、変更された仮想バッフ
ァインデックスを引き出し、オフセット記憶装置内に保
持されたバッフオフセットを変更された仮想バッファイ
ンデックスに適用して、巡回バッファをアドレス指定す
るための物理アドレスを引き出すように作動するよう構
成され、メモリ内または1つ以上のプロセッサレジスタ
内に設けることができ、かつ、ワードアドレス,バイト
アドレスまたはビットアドレスに関連することができ
る。
【0110】ここで使用した「印加される」、「接続さ
れる」および「接続」という用語は、電気接続経路内に
付加要素がある場合も含めて電気的に接続されることを
意味する。
【0111】実施例について本発明を説明してきたが、
本明細書に制約的な意味合いはない。当業者には、本明
細書を読めば本発明の他のさまざまな実施例が自明であ
ろう。したがって、発明の真の精神および範囲内に入る
実施例のこのような修正は全て添付した特許請求の範囲
に入るものとする。
【0112】本出願は1998年10月6日に欧州で出
願されたS.N.98402464.6(TI−276
91EU)および1998年10月6日に欧州で出願さ
れたS.N.98402455.4(TI−28433
EU)に優先権を請求するものである。
【図面の簡単な説明】
【図1】本発明の実施例に従ったプロセッサの略ブロッ
ク図である。
【図2】図1のプロセッサのコアの略図である。
【図3】図1のプロセッサのコアのさまざまな実行ユニ
ットのより詳細な略ブロック図である。
【図4】図1のプロセッサの命令バッファキューおよび
命令デコーダコントローラの略図である。
【図5】図1のプロセッサのパイプラインフェーズの表
現である。
【図6】図1のプロセッサにおけるパイプラインの動作
例の線図である。
【図7】図1のプロセッサのパイプラインの動作を説明
するためのプロセッサのコアの略表現である。
【図8】従来技術による巡回バッファメモリアライメン
トを示す図である。
【図9】本発明の実施例による巡回バッファ管理に関連
するプロセッサの態様を示す図である。
【図10】本発明の実施例による巡回バッファアドレス
指定を示す図である。
【図11】本発明の実施例による巡回バッファアメモリ
アライメントを示す図である。
【図12】本発明の実施例による巡回バッファ管理のス
テップを示すフロー図である。
【図13】本発明の実施例による巡回バッファ管理のス
テップを示す他のフロー図である。
【図14】図1のプロセッサを内蔵する集積回路の略図
である。
【図15】図1のプロセッサを内蔵する電気通信装置の
略図である。
【符号の説明】
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 マルチプレクサ 530 ライトプログラムカウンタ 532 ローカルライトプログラムカウンタ 534 リードプログラムカウンタ 536 ローカルリードプログラムカウンタ 800,802 巡回バッファ管理ユニット 810 バッファサイズレジスタ 814,822 アドレスレジスタ 820 変更したアドレスレジスタ 824 バッファオフセットレジスタ 828 メインデータページレジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カリム ドジャファリアン フランス国,ベンセ,バティメント ビー 1,レス トスカネス,ボウレバルド ド ゥ ラ レイネ ジーン 453 (72)発明者 ヘルベ カタン フランス国,セント ロウレント デュ バル,コルニシェ ファホネストク,1050

Claims (18)

    【特許請求の範囲】
  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記
    載の装置。
  10. 【請求項10】 前記アドレス記憶装置が巡回または線
    形アドレス指定モードで作動できるかどうかを動的に定
    義するために、前記装置がメモリ基準命令とともに例外
    モード限定記号を実行するように作動することができ
    る、請求項9記載の装置。
  11. 【請求項11】 巡回バッファアドレス計算機構をさら
    に含み、 第1および第2の加算/減算計算からの桁上げ信号が巡
    回バッファアドレスを計算する前記加算/減算演算の一
    方の結果の選択を決定する符号値の計算に使用される、
    請求項1記載の装置。
  12. 【請求項12】 キーボードアダプタを介して前記プロ
    セッサに接続された一体型キーボードと、 ディスプレイアダプタを介して前記プロセッサに接続さ
    れたディスプレイと、 前記プロセッサに接続された無線周波(RF)回路と、 該RF回路に接続されたアンテナと、 をさらに含む、請求項1記載のデジタルシステム。
  13. 【請求項13】 データ処理装置内で巡回バッファアド
    レス指定を管理する方法であって、 仮想バッファインデックスを引き出すステップと、 前記仮想バッファインデックスを変更して、変更された
    仮想バッファインデックスを引き出すステップと、 バッファオフセットを前記変更された仮想バッファイン
    デックスに加算して、巡回バッファアドレスを引き出す
    ステップと、 を含む、方法。
  14. 【請求項14】 巡回バッファがビットアレイである、
    請求項13記載の方法。
  15. 【請求項15】 ポインタ構成レジスタ内のアドレスレ
    ジスタ用の限定記号を設定することによって巡回バッフ
    ァモードを設定するステップをさらに含む、請求項13
    記載の方法。
  16. 【請求項16】 前記アドレスレジスタに対する前記巡
    回バッファモードを選択的にオーバライドするステップ
    をさらに含む、請求項15記載の方法。
  17. 【請求項17】 前記アドレス記憶装置が巡回または線
    形アドレス指定モードで作動できるかどうかを動的に定
    義するステップを含む、請求項13記載の方法。
  18. 【請求項18】 第1および第2の加算/減算計算から
    の桁上げ信号が巡回バッファアドレスを計算する前記加
    算/減算演算の一方の結果を選択する信号値の計算に使
    用される、請求項13記載の方法。
JP11321528A 1998-10-06 1999-10-06 巡回バッファ管理 Pending JP2000200212A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP98402464A EP0992880A1 (en) 1998-10-06 1998-10-06 Circular buffer management
EP98402464.6 1998-10-06
US09/411,187 US6363470B1 (en) 1998-10-06 1999-10-01 Circular buffer management

Publications (1)

Publication Number Publication Date
JP2000200212A true JP2000200212A (ja) 2000-07-18

Family

ID=26151725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11321528A Pending JP2000200212A (ja) 1998-10-06 1999-10-06 巡回バッファ管理

Country Status (2)

Country Link
EP (1) EP0992880A1 (ja)
JP (1) JP2000200212A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217382A (ja) * 2007-03-05 2008-09-18 Renesas Technology Corp データ処理装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873810B2 (en) 2004-10-01 2011-01-18 Mips Technologies, Inc. Microprocessor instruction using address index values to enable access of a virtual buffer in circular fashion
US7315937B2 (en) 2004-10-01 2008-01-01 Mips Technologies, Inc. Microprocessor instructions for efficient bit stream extractions
WO2006073512A1 (en) * 2005-08-11 2006-07-13 Mips Technologies, Inc. Microprocessor instruction to enable access of a virtual buffer in circular fashion
US8201031B2 (en) * 2008-08-21 2012-06-12 Telefonaktiebolaget L M Ericsson (Publ) System and method for removing PDCCH detection errors in a telecommunications network
CN102681822B (zh) * 2011-03-17 2016-06-15 中兴通讯股份有限公司 一种处理器地址缓冲管理的实现装置及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253922A (ja) * 1994-03-14 1995-10-03 Texas Instr Japan Ltd アドレス生成回路
US5790443A (en) * 1994-06-01 1998-08-04 S3 Incorporated Mixed-modulo address generation using shadow segment registers
US5699530A (en) * 1995-10-03 1997-12-16 Intel Corporation Circular RAM-based first-in/first-out buffer employing interleaved storage locations and cross pointers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217382A (ja) * 2007-03-05 2008-09-18 Renesas Technology Corp データ処理装置

Also Published As

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

Similar Documents

Publication Publication Date Title
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
EP0992906B1 (en) Apparatus and method for software breakpoint in a delay slot
US6507921B1 (en) Trace fifo management
KR19980018072A (ko) 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리
EP2261815A2 (en) Multithread processor with efficient processing for convergence device applications
JP2000276351A (ja) ローカル命令ルーピングを有するプロセッサ
US6826679B1 (en) Processor with pointer tracking to eliminate redundant memory fetches
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
US6502152B1 (en) Dual interrupt vector mapping
EP1143333B1 (en) Microprocessor for supporting reduction of program codes in size
US20070139424A1 (en) DSP System With Multi-Tier Accelerator Architecture and Method for Operating The Same
JP2000200212A (ja) 巡回バッファ管理
EP0992896A1 (en) Pipeline protection
JP2000259408A (ja) 遅延スロットにおけるソフトウェアブレークポイント
JP4355410B2 (ja) 線形ベクトル計算
US6681319B1 (en) Dual access instruction and compound memory access instruction with compatible address fields
EP1625492A1 (en) Methods and apparatus for instruction alignment
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
EP0992897A2 (en) Stack pointer management
EP0992889A1 (en) Interrupt processing during iterative instruction execution
EP0992887B1 (en) Memory access using byte qualifiers
EP0992888B1 (en) Method and apparatus for iterative instruction execution
EP0992892A1 (en) Compound memory access instructions