JPH10275080A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH10275080A
JPH10275080A JP10048481A JP4848198A JPH10275080A JP H10275080 A JPH10275080 A JP H10275080A JP 10048481 A JP10048481 A JP 10048481A JP 4848198 A JP4848198 A JP 4848198A JP H10275080 A JPH10275080 A JP H10275080A
Authority
JP
Japan
Prior art keywords
memory
data
bit
register
instructions
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
JP10048481A
Other languages
English (en)
Other versions
JPH10275080A5 (ja
Inventor
Laurence R Simar
アール.シマー ローレンス
Richard H Scales
エイチ.スケールズ リチャード
Natarajan Seshan
セスハン ナタラジャン
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 JPH10275080A publication Critical patent/JPH10275080A/ja
Publication of JPH10275080A5 publication Critical patent/JPH10275080A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7857Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using interleaved memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Feedback Control In General (AREA)
  • Vehicle Body Suspensions (AREA)
  • Telephonic Communication Services (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

(57)【要約】 【課題】 データ収集または出力、機能および計算集中
型の演算の間でのプロセッサ資源に対する衝突を減ら
す、改良されたデータ処理装置、システムおよび方法を
提供する。 【解決手段】 マイクロプロセッサは、並列データ操作
を実行することができる第1のセットの機能ユニット
と、複数のデータ操作を実行することができる第2のセ
ットの機能ユニットと、第1および第2の機能ユニット
を接続するデータ相互接続経路とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置、
電子処理および制御システムとこれらの製造方法および
動作方法とに関する。
【0002】
【従来の技術および発明が解決しようとする課題】マイ
クロプロセッサ・デバイスは、Gary W.Boon
eに発行され、テキサス インスツルメンツ インコー
ポレイテッドに譲渡されている米国特許第3,757,
306号に示されているような、MOS/LSI技術に
よって製造された単一の半導体集積回路または「チッ
プ」に普通は含まれているディジタル・プロセッサ用の
中央処理ユニットすなわちCPUである。Booneの
特許はシングル・チップ8ビットCPUを示し、このC
PUは並列のALUとデータおよびアドレス用レジスタ
と命令レジスタと制御デコーダとを含み、すべてがノイ
マン型アーキテクチャを使って相互接続されており、デ
ータ、アドレスおよび命令に対する双方向性の並列バス
を採用している。Gray W.BooneおよびMi
chael J.Cochranに発行され、テキサス
インスツルメンツ インコーポレイテッドに譲渡され
ている米国特許第4,074,351号は、シングル・
チップの「マイクロコンピュータ」タイプのデバイスを
示しており、そのデバイスは4ビットの並列ALUとそ
の制御回路とを含み、それと一緒にプログラム記憶用の
オンチップROMとデータ記憶用のオンチップRAMと
を備え、ハーバード・アーキテクチャで作られている。
マイクロプロセッサという用語は、普通は、プログラム
およびデータ記憶用に外部メモリを採用しているデバイ
スを指し、一方、マイクロコンピュータという用語は、
プログラムおよびデータ記憶用のオンチップのROMお
よびRAMを備えているデバイスを指す。本発明の説明
で、「マイクロコンピュータ」という用語は両方のタイ
プのデバイスを含むために使われ、「マイクロプロセッ
サ」という用語は、主として、オンチップROMを備え
ていないマイクロコンピュータを指すために使われる。
この分野の技術ではその用語はしばしば同じ意味に使わ
れるので、この説明でこれらの用語を取り混ぜて使うこ
とは本発明の特徴に関する制限事項とはみなされるべき
でないことを理解されたい。
【0003】現代のマイクロコンピュータは、2つの一
般的なクラス、すなわち、汎用マイクロプロセッサと特
殊目的のマイクロコンピュータ/マイクロプロセッサと
に分類することができる。モトローラ社によって製造さ
れているM68020などの汎用マイクロプロセッサ
は、広い範囲の任意のタスクを実行するためにユーザに
よってプログラム可能であるように設計されており、し
たがって、それらはパーソナル・コンピュータなどの装
置の中央処理ユニットとしてよく使われる。そのような
汎用マイクロプロセッサは広い範囲の算術演算および論
理機能に対して優れた性能を備えているが、もちろん、
そのような機能の任意の特定の1つに対して特別に設計
されているわけではなく、また、それに適応されている
わけではない。これと対照的に、特殊目的のマイクロコ
ンピュータは、ユーザがそのマイクロコンピュータを使
うことを意図している特殊な所定の算術演算および論理
機能に対する性能を改善するために設計されている。そ
のマイクロコンピュータの主要な機能を知ることによっ
て、設計者は特殊目的のマイクロコンピュータによる特
殊機能の性能が、汎用マイクロプロセッサによる同じ機
能の性能より大幅に高くなるように、そのユーザによっ
て作られるプログラムとは無関係に、そのマイクロコン
ピュータを作ることができる。
【0004】大幅に改善された速度で特殊目的のマイク
ロコンピュータによって実行することができるそのよう
な機能の1つは、ディジタル信号処理であり、さらに詳
しく言えば、ディジタル・フィルタの実装のためにおよ
び高速フーリエ変換を実行するために必要な計算であ
る。そのような計算は、整数の乗算と複数ビットのシフ
トと乗算および加算などの大量の繰返し演算になるの
で、これらの繰返し機能に対して特別に適応された特殊
目的のマイクロコンピュータを作ることができる。その
ような特殊目的のマイクロコンピュータはテキサス イ
ンスツルメンツ インコーポレイテッドに譲渡されてい
る米国特許第4,577,282号で記述されており、
この特許は引用によって本明細書の記載に援用する。こ
れらの計算用のマイクロコンピュータの特殊な設計の結
果、汎用マイクロプロセッサに比べて性能が十分改善さ
れることになり、そのような特殊目的のマイクロコンピ
ュータを音声および画像処理などのリアルタイムのアプ
リケーションで使うことができる。
【0005】ディジタル信号処理のアプリケーション
は、その計算集中的な性質のために、メモリ・アクセス
動作も集中的に行われる。したがって、ディジタル信号
処理機能を実行する際のマイクロコンピュータの総合性
能は、単位時間当りに実行される特殊計算の数によって
決定されるだけでなく、マイクロコンピュータがシステ
ム・メモリからデータを呼び出し、データをシステム・
メモリに記憶することができる速度によっても決定され
る。前記の米国特許第4,577,282号に記述され
ているような従来の特殊目的のマイクロコンピュータ
は、データ・メモリに対するアクセスをプログラム・メ
モリのアクセスとは独立にかつ同時に行うことができる
ように、ハーバード・アーキテクチャの修正版を利用し
ていた。もちろん、そのようなアーキテクチャは性能を
さらに改善するために設けられていた。
【0006】技術および市場の要求が高まることによっ
て、処理デバイスとアプリケーション・システムと動作
および製造の方法とにおける構造的な改善およびプロセ
スの改善がさらに望まれるようになっている。
【0007】本発明の目的には、データ収集または出
力、機能および計算集中型の演算の間でのプロセッサ資
源に対する衝突を減らす、改良されたデータ処理装置、
システムおよび方法を提供することと、高サンプル・レ
ートのディジタル信号処理のアプリケーションにおいて
プロセッサの管理オーバヘッドを減らす、改善されたデ
ータ処理装置、システムおよび方法を提供することと、
割込み処理およびサブルーチン呼出しおよびサブルーチ
ンからの戻りを能率的に行うための改良されたデータ処
理装置、システムおよび方法を提供することと、遠隔通
信、制御システムおよび他のアプリケーションにおけ
る、プロセッサのバンド幅を増加させる改良されたデー
タ処理装置、システムおよび方法を提供することなどが
ある。
【0008】
【課題を解決するための手段】一般に、本発明の1つの
形式は、改良された「非常に長い命令ワード」(VLI
W)の電子プロセッサを含む改良されたデータ処理装置
である。
【0009】一般に、本発明のもう1つの形式は、変換
のプロセスによってアナログ入力に対応するディジタル
信号を作り出すための、変換が完了したときに割込み信
号を作り出すためのアナログ/ディジタル変換器を含む
信号処理装置のシステムである。そのアナログ/ディジ
タル変換器に接続されているメモリおよびプロセッサを
備えているディジタル処理回路は、その割込み信号に応
答してディジタル信号をメモリに入れる。そのプロセッ
サは、レジスタ・セットと少なくとも1つの乗算器と少
なくとも1つの演算論理ユニットとを含む。
【0010】マイクロプロセッサは、並列データ演算を
実行できる第1のセットの機能ユニットと、並列データ
演算を実行できる第2のセットの機能ユニットと、第1
および第2の機能ユニットを接続するデータ接続パスと
を含む。データ処理システムは、第1の複数の命令を同
時にフェッチするフェッチ回路と、第2の複数の命令を
同時に実行することができる回路とを含み、第2の複数
の命令は第1の複数の命令より少ないか等しい。データ
処理システムは、第1の複数の命令を同時にフェッチす
るフェッチ回路と、第2の複数の命令を同時に条件付き
で実行することができる回路とを含み、第2の複数の命
令は第1の複数の命令より少ないか等しい。
【0011】本発明の他の装置、システムおよび方法の
形式も開示され、この中で特許が請求される。本発明の
他の目的が開示され、さらに他の目的はここに開示され
ていることから明らかとなる。
【0012】本発明の革新的な特徴であると信じられる
特性が、添付の請求項に記述されている。他の特徴およ
びその利点のほか、本発明の好適な実施形態が、以下に
続く詳細な説明を付属の図面を参照しながら読むことに
よって最もよく理解される。
【0013】
【発明の実施の形態】各種の図で対応している数値およ
び他のシンボルは対応している部分を指す。ただし、コ
ンテキストが違ったものを指している場合を除く。
【0014】図1を参照すると、現在好まれているマイ
クロプロセッサ11の高レベルの機能的ブロック図が示
されている。
【0015】図1は、ディジタル信号プロセッサ(DS
P)のブロック図を示す。DSPは、図1の右の中央部
分に示されているCPU1に基づいている。DSPデバ
イス11にはプログラム・メモリ2が付属しており、そ
れはプログラム・キャッシュとして使うことができる。
また、デバイス11は、サイズの変化するおよび/また
は種類の異なるデータ・メモリ3も備えることができ
る。ダイレクト・メモリ・アクセス(DMA)コントロ
ーラ4a,パワー・ダウン・ロジック5および外部メモ
リ・インターフェース(EMIF)46などのペリフェ
ラル4は、CPUに付属していることが好ましく、ま
た、シリアル・ポート6bやホスト・ポート6aなどの
ペリフェラル6は、オプションとして利用できる。
【0016】DSPは、32ビットのバイト・アドレス
可能なアドレス空間を備えている。内部(オンチップ)
メモリは、別々のデータ空間3およびプログラム空間2
に編成されている。オフチップ・メモリが使われると
き、これらの2つの空間は外部メモリ・インターフェー
ス(EMIF)46を経由して単一のメモリ空間に統一
されることが好ましい。
【0017】DSPは、データ・メモリ3にアクセスす
るための2つの内部ポート3a,3bを備えており、2
つの内部ポート3a,3bは32ビットのデータおよび
32ビットのバイト・アドレスをそれぞれ備えている。
DSPは,プログラム・メモリ2にアクセスするための
単一のポート2aを有し、ポート2aは、256ビット
幅の命令フェッチおよび30ビットのワード(4バイ
ト)アドレスを備え、32ビットのバイト・アドレスに
等価である。
【0018】次のペリフェラル・モジュール、すなわ
ち、シリアル・ポートと、タイマーと、同期型および非
同期型SRAMおよび同期型DRAMをサポートする外
部メモリ・インターフェース(EMIF)と、2チャネ
ルの自動ブート・ローディングのダイレクト・メモリ・
アクセス(DMA)コントローラと、ホスト・ポート
と、CPUアクティビティ、ペリフェラル・アクティビ
ティおよびPLLアクティビティを停止させて消費電力
を削減することができるパワー・ダウン・ロジックと
が、DSP上に提供される。
【0019】図1をさらに詳しく参照すると、CPU
は、プログラム・フェッチ・ユニット7aと、命令ディ
スパッチ・ユニット7bと、命令デコード・ユニット7
cと、2つのデータ・パス8a,8b(それぞれ4つの
機能ユニット. L1,. S1,. M1および. D1また
は. L2,. S2,. M2および. D2を備えている)
と、32個の32ビット・レジスタ9と、制御レジスタ
10aと、制御ロジック10aと、テスト10c,エミ
ュレーション10dおよび割込み10eのロジックとを
含む。
【0020】プログラム・フェッチ7a、命令ディスパ
ッチ7bおよび命令デコード7cの各ユニットは、プロ
グラム・メモリ2から8個までの32ビット命令をサイ
クルごとに機能ユニットに配送することができる。処理
は2つのデータ・パス(8a,8b)のそれぞれにおい
て発生する。各データ・パス8は,4つの機能ユニット
(. L,. S,. Mおよび. D)と、16個の32ビッ
ト・レジスタを含む1つのレジスタ・ファイル9aまた
は9bとを備える。各機能ユニットは、32ビットの命
令によって制御される。データ・パスについては後でさ
らに詳細に説明される。制御レジスタ・ファイル10a
は、各種のプロセッサ動作のコンフィギュレーションを
行うとともに制御するための手段を提供する。命令がど
のようにフェッチされ、ディスパッチされ、デコードさ
れ、データ・パスで実行されるかは、パイプライン動作
に関連して後で説明される。
【0021】図2は、CPU1のデータ・パスを示す。
このパスは、2つの汎用レジスタ・ファイル(9aおよ
び9b)と、8つの機能ユニット(. L1,. L2,.
S1,. S2,. M1,. M2,. D1および. D2)
と、2つのメモリからのロード・パス(LD1およびL
D2)と、2つのメモリへの格納パス(ST1およびS
T2)と、2つのレジスタ・ファイル相互接続パス(1
Xおよび2X)とから構成される。
【0022】データ・パスには、2つの汎用レジスタ・
ファイル(9aおよび9b)がある。これらのファイル
はそれぞれ、16個の32ビット・レジスタ(ファイル
Aに対してはA0〜A15、ファイルBに対してはB0
〜B15とラベルが付けられている)を含む。汎用レジ
スタは、データ用に、データ・アドレス・ポインタ用
に、または条件レジスタとして使うことができる。
【0023】データ・パスの8つの機能ユニットは、4
個の2つのグループ(12a1〜12a4および12b
1〜12b4)に分けることができ、それぞれが各レジ
スタ・ファイルに対して実質的に同じである。機能ユニ
ットについては、以下の表1に説明されている。
【0024】
【表1】
【0025】CPU1のほとんどのデータ信号線は32
ビットのオペランドをサポートし、また、いくつかはロ
ング(40ビット)オペランドをサポートする。各機能
ユニットは、汎用レジスタ・ファイルへのそれ自身の3
2ビット書込みポートを備える。名前が“1”で終わっ
ているすべてのユニット(たとえば、. L1)はレジス
タ・ファイルAに書き込み、また、“2”で終わってい
るすべてのユニットはレジスタ・ファイルBに書き込
む。図2で示されているように、各機能ユニットは、ソ
ース・オペランドsrc1,src2用の2つの32ビ
ット読出しポートを備える。4つのユニット(. L
1,. L2,.S1,. S2)は、40ビット長の読出
し用の8ビット入力と、40ビット長の書込み用の余分
な8ビット幅のポートを備える。各ユニットはそれ自身
の32ビット書込みポートを備えているので、8個のユ
ニットはすべてパラレルにサイクルごとに使うことがで
きる。
【0026】図2に示されているように、各汎用レジス
タ・ファイルは、1Xおよび2Xパスによって反対側の
レジスタ・ファイルの機能ユニットに接続されている。
これらのパスによって、各側からの. S,. Mおよび.
Lユニットはいずれのファイルからのオペランドにもア
クセスすることができる。
【0027】4つのユニット(. M1,. M2,. S
1,. S2)は、同じ側のレジスタ・ファイル(“1”
で終わっているユニットにはA、“2”で終わっている
ユニットにはB)、またはクロス・パス(1Xおよび2
X)を経由する反対側のファイルのいずれかで選択でき
る1つの32ビット入力マルチプレクサを備える。. L
1および. L2ユニット上の32ビット入力は両方と
も、クロス・パスを経由してマルチプレクサ(“mu
x”)によって選択できる。
【0028】メモリからレジスタ・ファイルへデータを
ロードするための2つの32ビット・パスがある。1つ
はレジスタ・ファイルAに対するパス(LD1)であ
り、もう1つはレジスタ・ファイルBに対するパス(L
D2)である。また、レジスタの値を各レジスタ・ファ
イルからメモリへ格納するための2つの32ビット・パ
スST1,ST2もある。その格納パスは. Lおよび.
Sのロング読出し経路と共有される。
【0029】図2に示されているように、. Dユニット
から出てくるデータ・アドレス・パス(DA1およびD
A2)によって、1つのレジスタ・ファイルから発生さ
れるデータ・アドレスが他のレジスタ・ファイルからの
ロードおよびストアをサポートすることができる。
【0030】図2に示されているように、1つのユニッ
ト(. S2)は制御レジスタ・ファイルとの間で読出し
および書込みができる。表2は制御レジスタ・ファイル
に含まれている制御レジスタをリストしており、それぞ
れ簡単に説明されている。制御レジスタについては後で
もっと詳しく説明される。各制御レジスタはMVC命令
によってアクセスされる。MVC命令については後の説
明を参照されたい。
【0031】
【表2】
【0032】図3はアドレッシング・モード・レジスタ
(AMR)を示す。8個のレジスタ(A4〜A7、B4
〜B7)はサーキュラ・アドレッシングを実行すること
ができる。これらのレジスタのそれぞれに対して、AM
Rはアドレッシング・モードを規定する。各レジスタに
対する2ビットのフィールドは、アドレス修飾モードを
選択するために使われる。それはリニア(デフォルト)
またはサーキュラ・モードである。サーキュラ・アドレ
ッシングでは、そのフィールドは、どのBK(ブロック
・サイズ)フィールドがサーキュラ・バッファのために
使われるかをも規定する。さらに、そのバッファは、ブ
ロック・サイズに等しいバイト境界に整列されていなけ
ればならない。モード選択フィールド符号化が表3に示
されている。
【0033】
【表3】
【0034】ブロック・サイズ・フィールドBK0,B
K1はサーキュラ・アドレッシングのためのブロック・
サイズを規定する。BK0およびBK1の5つのビット
はその幅を規定する。ブロック・サイズの幅を計算する
ための式は次の通りである。
【0035】 ブロック・サイズ(バイト単位)=2(N+1) ここで、NはBK1またはBK0の中の値である。
【0036】表4は、32のすべての可能性に対するブ
ロック・サイズ計算を示す。
【0037】
【表4】
【0038】図4に示されている制御ステータス・レジ
スタ(CSR)は制御ビットおよびステータス・ビット
を含む。CSRのビット・フィールドの機能が表5に示
されている。
【0039】
【表5】
【0040】図5に示されている汎用入力レジスタ(I
N)は32個の汎用入力信号をサポートし、一方、図6
に示されている汎用出力レジスタ(OUT)は32個の
汎用出力信号をサポートする。これらの信号の機能につ
いては後で説明される。
【0041】下の表6は、ここで使われる各種のシンボ
ルを説明する。
【0042】
【表6】
【0043】
【表7】
【0044】表7および表8は、命令および機能ユニッ
ト間のマッピングを定義する。
【0045】
【表8】
【0046】
【表9】
【0047】
【表10】
【0048】汎用レジスタ・ファイルは32ビットおよ
び40ビットのデータをサポートする。32ビットのデ
ータは単一のレジスタに含まれる。40ビットのデータ
は2つのレジスタにまたがって含まれる。データの32
個のLSBは偶数番号のレジスタに格納され、8個のL
SBはその次のレジスタ(それは常に奇数番号のレジス
タである)に格納される。表9に示されているように、
40ビットのデータに対して16個の有効なレジスタ・
ペアがある。アセンブリ言語の構文においては、レジス
タ・ペアはレジスタ名の間にコロンを付けることによっ
て示される。奇数番号のレジスタが最初に指定される。
【0049】
【表11】
【0050】図7は、40ビットのデータに対するレジ
スタ記憶方式を示す。ロング入力を必要とする演算は、
奇数レジスタの24個のMSBを無視する。ロング結果
を発生する演算は、奇数レジスタの24個のMSBを
“0”で埋める。偶数レジスタはオペコードでエンコー
ドされている。
【0051】DSPのオペコード・マップが図8Aおよ
び図8Bに示されている。そのフィールドの構文および
値の説明については、表6および後で説明される命令の
記述を参照されたい。
【0052】すべての命令は条件付きとすることができ
る。その条件は、テストされるレジスタを指定している
3ビットのフィールド(creg)と、ゼロか非ゼロか
をテストすることを規定している1ビット・フィールド
(z)とによって制御される。すべてのオペコードの4
つのMSBはcregおよびzである。レジスタはすべ
ての命令に対してE1パイプライン・ステージの最初で
テストされる。パイプラインについては後で説明され
る。z=1の場合、そのテストは“0”に等しいことに
対するテストである。z=0の場合、そのテストは
“0”でないことに対するテストである。条件レジスタ
・フィールド(creg)=0およびz=0の場合は、
命令が無条件に実行されるようにするために常に真とし
て扱われる。cregレジスタのフィールドは、表10
に示されているようにエンコードされている。
【0053】
【表12】
【0054】条件付きの命令は、その条件レジスタを囲
んでいる“[ ]”によって表される。次の実行パケッ
トは2つのADD命令を並列に含む。第1のADDは、
B0が非ゼロの条件付きである。第2のADDは、B0
がゼロの条件付きである。“!”はその条件の「否定」
を示す。 [B0] ADD . L1 A1,A2,A3 || [!B0] ADD . L2 B1,B2,B3
【0055】上記の命令は相互に排他的である。これ
は、1つだけが実行されることを意味する。
【0056】それらが並列にスケジュールされていた場
合、相互に排他的な命令は、後で説明されるすべてのリ
ソース制約条件に従わなければならない。
【0057】相互に排他的な命令が後で説明されるよう
なリソースを共有する場合、それらは1つだけが実行を
終えることになる場合であっても、並列にはスケジュー
ルする(同じ実行パケットの中に置かれる)ことはでき
ない。
【0058】命令の実行は遅延スロットの単位で定義す
ることができる。表11は、命令のタイプと、各タイプ
の命令が所有する遅延スロットの数と、それが使う実行
フェーズとを示す。遅延スロットは、ソース・オペラン
ドが読み出されたのちに結果が読み出されるために利用
できるようになる前にかかる余分のサイクルの数であ
る。単独サイクルのタイプの命令(たとえばADD)の
場合、ソース・オペランドがサイクルiにおいて読み出
された場合、その結果はサイクルi+1において読み出
すことができる。乗算命令(MPY)の場合、ソース・
オペランドがサイクルiにおいて読み出された場合、そ
の結果はサイクルI+2において読み出すことができ
る。
【0059】
【表13】
【0060】命令は常に8個が同時にフェッチされる。
これはフェッチ・パケットを構成する。1つのフェッチ
・パケットの基本フォーマットが図9に示されている。
フェッチ・パケットの実行グループピングは、pビット
すなわち各命令のビット0によって指定される。フェッ
チ・パケットは8ワードに揃えられている。
【0061】pビットは命令の並列実行を制御する。p
ビットは左から右へ(低いアドレスから高いアドレスへ
向かって)走査される。命令iのpビットが“1”であ
った場合、命令i+1が命令iと並列に(同じサイクル
で)実行される。命令iのpビットが“0”であった場
合、命令i+1は命令iの後のサイクルにおいて実行さ
れる。並列に実行されるすべての命令が実行パケットを
構成する。実行パケットは8個までの命令を含むことが
できる。1つの実行パケットのすべての命令はユニーク
な機能ユニットを使わなければならない。
【0062】実行パケットは8ワードの境界にまたがる
ことはできない。したがって、1つのフェッチ・パケッ
トの最後のpビットは常に“0”に設定され、各フェッ
チ・パケットは新しい実行パケットを開始させる。次の
例は、pビットのシーケンスの命令をサイクルごとの実
行ストリームへ変換する様子を示している。フェッチ・
パケットに対して3種類のpビット・パターンがある。
これらの3つのpビット・パターンは、結果として、8
個の命令に対する次の実行シーケンス、すなわち、完全
にシリアルに、完全に並列に、または部分的にシリアル
になる。これら3つの実行シーケンスについては以下に
完全に説明される。
【0063】図10Aに示されているこの完全にシリア
ルのpビット・パターンの結果、次の実行シーケンスと
なる。
【0064】
【表14】
【0065】8個の命令は順次実行される。 3.7.2
【0066】図10Bに示されているこの完全に並列の
pビット・パターンの結果、次の実行シーケンスとな
る。
【0067】
【表15】
【0068】8個の命令がすべて並列に実行される。
【0069】図10Cに示されているこの部分的にシリ
アルのpビット・パターンの結果、次の実行シーケンス
となる。
【0070】
【表16】
【0071】||の文字は、1つの命令がその前の命令
と並列に実行されるべきであることを意味する。前の部
分的にシリアルの例において、そのコードは次のように
表される。
【0072】実行パケットの途中への分岐が発生した場
合、それより低いアドレスにある命令はすべて無視され
る。部分的にシリアルの例において、命令Dを含むアド
レスに対する分岐が発生した場合、DとEだけが実行さ
れる。命令Cは同じ実行パケットにあるが、それは無視
される。命令A,Bも、それらが前の実行パケットにあ
るので、無視される。
【0073】同じ実行パケットの2つの命令が同じリソ
ースを使うことはできない。また、どの命令も同じサイ
クルの間に同じレジスタに書き込むことはできない。次
に、命令が使うことができるそれぞれのリソースについ
て説明する。
【0074】同じ機能ユニットを使っている2つの命令
は、同じ実行パケットの中で発行することはできない。
次の実行パケットは無効である。 ADD .S1 A0,A1,A2;\ .S1が両方の命令に対して || SHR .S1 A3,15,A4;/使われている。 次の実行パケットは有効である。 ADD .L1 A0,A1,A2;\2つの異なる機能ユニットが || SHR .S1 A3,15,A4;/使われている。
【0075】クロス・パス(1Xおよび2X):1つの
実行パケットについてデータ・パス当り1つのユニット
(. S,. Lまたは. Mのいずれか)がクロス・パス
(1Xおよび2X)を経由してその反対側のレジスタ・
ファイルからソース・オペランドを読むことができる。
たとえば、. S1は1Xクロス・パスを使ってAのレジ
スタ・ファイルから両方のオペランドを読むことがで
き、あるいはBのレジスタ・ファイルから1つのオペラ
ンドを読むことができる。これは、そのユニット名の次
のXによって示されている。
【0076】レジスタ・ファイル間で同じXクロス・パ
スを使っている2つの命令は、同じ実行パケットで発行
することはできない。というのは、AからBへの1つの
パスおよびBからAへの1つのパスがあるだけだからで
ある。次の実行パケットは無効である。 ADD .L1X A0,B1,A1;\1Xのクロス・パスが両方の命令に || MPY . MIX A4,B4,A5;/対して使われている。 次の実行パケットは有効である。 ADD .L1X A0,B1,A1;\命令が1Xおよび2Xの || MPY . M2X A4,B4,B2;/クロス・パスを使う (オペコード・マップで示されているように)命令フィ
ールドの中のxビットがセットされている場合、そのオ
ペランドはデスティネーションの反対側のレジスタ・フ
ァイルから入ってくる。
【0077】ロードおよびストアは、他のレジスタ・フ
ァイルとの間でロードまたはストアを行っている間、1
つのレジスタ・ファイルからのアドレス・ポインタを使
うことができる。同じレジスタ・ファイルからの1つの
アドレス・ポインタを使って2つのロードおよび/また
はストアを同じ実行パケット内で発行することはできな
い。次の実行パケットは無効である。 LDW . D1 *A0,A1;\同じレジスタ・ファイルからの || LDW . D1 *A2,B2;/アドレス・レジスタ 次の実行パケットは有効である。 LDW . D1 *A0,A1;\異なるレジスタ・ファイルからの || LDW . D2 *B0,B2;/アドレス・レジスタ 同じレジスタ・ファイルとの間でロードおよびストアを
行っている2つのロード/またはストアを同じ実行パケ
ットで発行することはできない。次の実行パケットは無
効である。 LDW .D1 *A4,A5;\同じレジスタ・ファイルとの間で || STW . D2 A6, *B4;/ロードおよびストア 次の実行パケットは有効である。 LDW .D1 *A4,B5;\異なるレジスタ・ファイルとの間での || STW . D2 A6, *B4;/ロードおよびストア
【0078】1サイクル当りに1つのロング結果だけを
レジスタ・ファイルの各サイドにおいて書き込むことが
できる。. Sおよび. Lユニットはロング・ソース・オ
ペランドおよびロング結果に対する書込みレジスタ・ポ
ートを共有するので、1つの実行パケットで1サイド当
り1つだけを発行することができる。 次の実行パケットは無効である。 ADD .L1 A5: A4, A1, A3: A2 ;\ Aレジスタ・ファイ ル上で || SHL . S1 A8, A9, A7: A6 ;/の2つのロング書込 み 次の実行パケットは有効である。 ADD .L1 A5: A4, A1, A3: A2 ;\各レジスタ・ファイル に対 || SHL . S2 B8, B9, B7: B6 ;/する1つのロング書 込み . Lおよび. Sのユニットはストア・ポートとそれぞれ
のロング読出しポートを共有するので、ロング値を読み
出す操作をストアとして同じ実行パケットの.Lおよび
/または. Sユニット上で発行することはできない。次
の実行パケットは無効である。 ADD . L1 A5: A4, A1, A3: A2 ; \ロング読出し操作 || STW .D1 A8, *A9 ;/およびストア 次の実行パケットは有効である。 ADD . L1 A4, A1, A3: A2 ; \ストアを伴う || STW .D1 A8, *A9 ;/ロング読出しなし 同じサイクルにおいて同じレジスタの5回以上の読出し
は起こり得ない。条件付きレジスタはこのカウントには
含まれていない。次のコード・シーケンスは無効であ
る。 MPY . M1 A1, A1, A4 ;レジスタA1の5回の読出し || ADD . L1 A1, A1, A5 || SUB . D1 A1, A2, A3 一方、次のコードは有効である。 MPY . M1 A1, A1, A4 ;A1の4回だけの読出し ||[A1] ADD . L1 A0, A1, A5 || SUB . D1 A1, A2, A3
【0079】同じレジスタに書き込まれる異なるラテン
シーでの命令が異なるサイクルにおいて発行された場
合、同じサイクルでの同じレジスタへの複数の書込みが
起こり得る。たとえば、サイクルiにおいてMPYが発
行され、その次にサイクルi+1においてADDが発行
される場合、同じレジスタに書き込むことはできない。
というのは、両方の命令が結果をサイクルi+1におい
て書き込むことになるからである。したがって、次のコ
ード・シーケンスは無効である。 MPY . M1 A0, A1, A2 ADD . L1 A4, A5, A2
【0080】表12は異なる複数の書込みの衝突を示
す。たとえば、実行パケットL1のADDおよびSUB
は同じレジスタに書き込む。この衝突は容易に検出でき
る。
【0081】パケットL2のMPYおよびパケットL3
のADDは両方とも同時にB2に書き込む可能性があ
る。しかし、分岐命令によってL2の後の実行パケット
がL3以外のものとなれば、これは衝突とはならない。
したがって、L2およびL3における潜在的な衝突はア
センブラによっては検出されない可能性がある。L4の
中の命令は書込みの衝突を起こさない。というのは、そ
れらは相互に排他的であるからである。これと対照的
に、L5の中の命令は相互に排他的であるかどうかは明
確でないので、アセンブラは衝突を判定することはでき
ない。パイプラインがコマンドを受け取って同じレジス
タに複数の書込みを実行した場合、その結果は未定義と
なる。
【0082】
【表17】
【0083】アドレッシング・モードは、リニア、BK
0を使ったサーキュラ、およびBK1を使ったサーキュ
ラである。そのモードは、アドレッシング・モード・レ
ジスタ(AMR)によって指定される。
【0084】8個のレジスタはサーキュラ・アドレッシ
ングを実行することができる。A4〜A7は. D1ユニ
ットによって使われ、B4〜B7は. D2ユニットによ
って使われる。他のユニットはサーキュラ・アドレッシ
ング・モードを実行することができない。これらのレジ
スタに対して、AMRはそのアドレッシング・モードを
指定する。
【0085】LD( B)(H)(W) 、ST( B)(H)(W)
、ADDA( B)(H)(W) 、およびSUBA( B)(H)
(W) 命令はすべて、AMRを使って、どのタイプのア
ドレス計算がこれらのレジスタに対して実行されるかを
決定する。すべてのレジスタはリニア・モード・アドレ
ッシングを実行することができる。
【0086】LD/ST命令: リニア・モードは、o
ffsetR/cstオペランドをワード、ハーフ・ワ
ードまたはバイト・アクセスに対して2,1または0だ
け左へ単純にシフトしてから、baseRに対する加算
または減算(指定された動作によって変わる)を実行す
る。
【0087】ADDA/SUBA命令: リニア・モー
ドは、src1/cstオペランドをワード、ハーフ・
ワードまたはバイト・アクセスに対して2,1または0
だけ左へ単純にシフトしてから、baseRに対する加
算または減算(指定された動作によって変わる)を実行
する。
【0088】AMRの中のBK0およびBK1フィール
ドはサーキュラ・アドレッシングに対するブロック・サ
イズを指定する。
【0089】LD/ST命令: offsetR/cs
tをLDW、LDHまたはLDBに対して2,1または
0だけ左へシフトした後、ビットNとビットN+1との
間でキャリー/ボローが禁止された状態で加算または減
算が実行される。baseRのビットN+1〜31は不
変である。他のすべてのキャリー/ボローは通常のよう
に伝播する。したがって、offsetR/cstがサ
ーキュラ・バッファ・サイズより大きい場合、2(N+
1)が指定され、そのアドレスはサーキュラ・バッファ
の外側になる。AMRの中のサーキュラ・バッファ・サ
イズはスケールされない。たとえば、4のサイズは4バ
イトであり、(type)の4倍のサイズではない。し
たがって、8ワードの配列についてサーキュラ・アドレ
ッシングを実行するには、32のサイズが指定される
か、N=4とする必要がある。表13は、BK0=4
で、レジスタA4がサーキュラ・モードにおいて実行さ
れるLDWを示す。したがって、バッファ・サイズは、
32バイト、16ハーフ・ワードまたは8ワードであ
る。この例の場合のAMRに置かれる値は、00040
001hである。
【0090】
【表18】
【0091】ADDA/SUBA命令: src1/c
stをADDAW、ADDAHまたはADDABに対し
て2,1または0だけ左へシフトした後、ビットNとビ
ットN+1との間でキャリー/ボローが禁止された状態
で加算または減算が実行される。src2のビットN+
1〜31は不変である。他のすべてのキャリー/ボロー
は通常のように伝播する。したがって、src1がサー
キュラ・バッファのサイズより大きい場合、2(N+
1)が指定され、そのアドレスはサーキュラ・バッファ
の外側になる。AMRの中のサーキュラ・バッファ・サ
イズはスケールされない。たとえば、4のサイズは4バ
イトであり、(type)の4倍のサイズではない。し
たがって、8ワードの配列についてサーキュラ・アドレ
ッシングを実行するには、32のサイズが指定される
か、あるいは、N=4とする必要がある。表14は、B
K0=4で、レジスタA4がサーキュラ・モードにおい
て実行されるADDAHを示している。したがって、バ
ッファ・サイズは、32バイト、16ハーフ・ワードま
たは8ワードである。この例の場合のAMRの中に置か
れる値は、00040001hである。
【0092】
【表19】
【0093】次に、DSP11に対する命令セットにつ
いての詳細情報を提供する。各命令は次の情報を提示す
る。 ‐ アセンブラの構文 ‐ 機能的ユニット ‐ オペランド ‐ オペコード ‐ 記述 ‐ 実行 ‐ 命令タイプ ‐ 遅延スロット数 ‐ 例題
【0094】構文 EXAMPLE(. unit)sr
c, これは、ADD命令に対して構文がどのようになるかを
示す。 ADD(. unit)src1,src2,dst OR ADDU(. unit)src1,src2,dst OR ADD(. unit)src2,src1,dst unit=. L1,. L2,. S1,. D1,. D2 srcおよびdstは、ソースおよびデスティネーショ
ンをそれぞれ示す。(. unit)は、その命令がどの
機能ユニットに対してマップされるかを示す(. L
1,. L2,. S1,. S2,. M1,. M2,. D1
または. D2)。テーブルが、オペコード・マップ・フ
ィールド、その命令がマップされるユニット、オペラン
ド、およびオペコードを示す各命令に対して提供され
る。
【0095】オペコード・マップは、各命令を構成する
各種のビット・フィールドに分解される。
【0096】2つ以上の機能ユニットにおいて実行でき
る所定の命令がある。表100は、ADD命令に対して
これが文書化される方法を示す。この命令には、3つの
オペコード・マップ・フィールドすなわちsrc1、s
rc2およびdstがある。第7行において、そのオペ
ランドのタイプは、src1、src2およびdstの
それぞれに対してcst5、longおよびlongで
ある。これらのフィールドの順序は、cst5+lon
g3longであることを意味する。ここで、「+」は
ADDによって実行される演算を表す。この演算は、.
L1または. L2について行うことができる(というの
は、. L1および. L2はそのユニットのカラムの中で
指定されているからである)。各オペランドの前にある
「s」は、src1(scst5)、src2(slo
ng)およびdst(slong)がすべて符号付きの
値であることを意味する。
【0097】第3行において、src1、src2およ
びdstはそれぞれ、int、intおよびlongで
ある。各オペランドの前にある「u」は、すべてのオペ
ランドが符号なしであることを意味する。「x」で始ま
るオペランドは、デスティネーション・レジスタ・ファ
イルとは異なるレジスタ・ファイルから読み出すことが
できる。そのオペランドは、その命令フィールドの中の
xビットがセットされている場合(オペコード・マップ
の中で示されている)、デスティネーションの反対側の
レジスタ・ファイルから入ってくる。
【0098】このDSPパイプラインには、性能を改善
し、コストを下げ、プログラミングを簡単にするいくつ
かの主要な特徴がある。それらは、パイプラインの増加
によって、プログラム・フェッチ、データ・アクセスお
よび乗算演算における従来のアーキテクチャ的ボトルネ
ックを解消していることと、パイプラインの制御がパイ
プラインのインターロックをなくすることによって単純
化されていることと、パイプラインはサイクルごとに8
個の並列命令をディスパッチできることと、並列の命令
は同じパイプライン・フェーズを通って同時に進行する
ことと、シーケンシャルな命令は相対的なパイプライン
・フェーズ差が同じ状態で進行することと、同じパイプ
ライン・フェーズの間にCPU境界においてロードおよ
びストア・アドレスが現われ、メモリへの書込み後の読
出しの衝突をなくしていることとである。
【0099】複数段のメモリ・パイプラインがデータ・
アクセスおよびプログラム・フェッチの両方に対して提
供されている。これによって、オンチップおよびオフチ
ップの両方において高速の同期型のメモリを使うことが
でき、他の命令との並列な分岐によって無限にネスト可
能なゼロ・オーバヘッド・ルーピングが可能となる。
【0100】パイプラインの実行サイクルにおける内部
インターロックがないので、新しい実行パケットはCP
Uサイクルごとに実行に入る。したがって、特定の入力
データでの特定のアルゴリズムに対するCPUサイクル
の数が固定されている。プログラム実行時にメモリ・ス
トールがなかった場合、CPUサイクルの数は、プログ
ラムが実行するためのクロック・サイクルの数に等し
い。
【0101】性能が発揮できないのはメモリ・サブシス
テムまたは割込みによるストールの場合だけである。メ
モリ・ストールの理由はメモリ・アーキテクチャによっ
て決定される。スピードに対してプログラムをどのよう
に最適化するかを完全に理解するためには、プログラム
・フェッチ、データ・ストアおよびプログラムが実行す
るデータ・ロード要求のシーケンスと、それらがCPU
をどのようにストールできるかとが理解される必要があ
る。
【0102】機能的な観点からのパイプライン動作はC
PUサイクルに基づいている。CPUサイクルは、特定
の実行パケットが特定のパイプライン・ステージにある
期間である。CPUサイクルの境界は常にクロック・サ
イクル境界において発生するが、メモリ・ストールによ
ってCPUサイクルが複数のクロック・サイクルにわた
って延びる可能性がある。CPUサイクル境界における
マシン状態を理解するためには、パイプラインの実行フ
ェーズ(E1〜E5)について注目するだけでよい。パ
イプラインのフェーズが、図11に示されており、表1
5で説明されている。
【0103】
【表20】
【0104】
【表21】
【0105】命令のパイプライン動作は、表16に示さ
れている7つのタイプに分類することができる。各命令
のタイプに対する遅延スロットが、第2のカラムにリス
トされている。
【0106】
【表22】
【0107】命令の実行は遅延スロットの単位で定義す
ることができる(表16)。遅延スロットは、その命令
からの結果が利用できない命令の第1の実行フェーズ
(E1)の後で発生するCPUサイクルである。たとえ
ば、乗算命令は1遅延スロットを有し、これはその乗算
命令からの結果を他の命令が使えるまでに1CPUサイ
クルかかることを意味する。
【0108】単独サイクル命令はパイプラインのE1フ
ェーズの間に実行する。オペランドが読み出され、演算
が実行され、結果がレジスタに書き込まれる動作がすべ
て、E1の間に行われる。これらの命令には、遅延スロ
ットはない。
【0109】乗算命令はパイプラインのE2フェーズの
間にその演算を完了する。E1フェーズにおいては、オ
ペランドが読み出され、乗算が開始される。E2フェー
ズにおいて、乗算が終了し、その結果がデスティネーシ
ョン(dst)レジスタに書き込まれる。乗算命令は1
遅延スロットである。
【0110】ロード命令は2つの結果を有する。:メモ
リからロードされるデータおよびアドレス・ポインタ・
修正。
【0111】データ・ロードはパイプラインのE5フェ
ーズの間にその動作を完了する。E1フェーズにおい
て、データのアドレスが計算される。E2フェーズにお
いて、そのデータ・アドレスがデータ・メモリに送られ
る。E3フェーズにおいて、メモリの読出しが行われ
る。E4ステージにおいて、データがCPUコア境界に
おいて受信される。最後に、E5フェーズにおいて、デ
ータがレジスタにロードされる。データはE5まではレ
ジスタに書き込まれないので、これらの命令は4遅延ス
ロットを有する。ポインタの結果はE1のレジスタに書
き込まれるので、そのアドレス修飾に関連した遅延スロ
ットはない。
【0112】ストア命令はパイプラインのE3フェーズ
の間にその動作を完了する。E1フェーズにおいては、
データのアドレスが計算される。E2フェーズにおい
て、そのデータ・アドレスがデータ・メモリへ送られ
る。E3フェーズにおいて、メモリの書込みが実行され
る。アドレス修飾はパイプラインのE1ステージにおい
て行われる。ストアはパイプラインのE3フェーズにお
いてその実行を完了するが、それらには遅延スロットが
なく、次の規則に従う(i=サイクル): ‐ ストアの前にロードが実行されると、古い値がロー
ドされてからその新しい値がストアされる。 i LDW i+1 STW ‐ ロードの前にストアが実行されると、新しい値がス
トアされ、その新しい値がロードされる。 i STW i+1 LDW ‐ 命令が並列に実行されるとき、古い値がロードさ
れ、新しい値がストアされる。 i STW i+1 || LDW
【0113】分岐命令はパイプラインのE1フェーズの
間に実行され、その分岐命令の5遅延スロット/CPU
サイクルの後にパイプラインの初期E1フェーズに入
る。図12は分岐命令フェーズを示す。図13はクロッ
ク・サイクルおよびフェッチ・パケットに基づいたパイ
プラインの動作を示す。図13において、分岐がフェッ
チ・パケットnにある場合、その分岐のE1フェーズは
n+6のPGフェーズである。サイクル7において、n
はE1フェーズにあり、n+6はPGフェーズにある。
分岐ターゲットはサイクル7においてPGにあるので、
それはサイクル13まではE1には到達しない。したが
って、分岐は、実行するのに6サイクルかかる、すなわ
ち、5つの遅延スロットを有する。
【0114】図14において、フェーズ・パケットnは
3つの実行パケットを含み、その後に6つのフェッチ・
パケット(n+1〜n+6)が続いていて、それぞれが
1つずつの実行パケット(8個の並列命令を含む)を伴
っているように示されている。最初のフェッチ・パケッ
ト(n)はサイクル1〜サイクル4の間にプログラム・
フェッチ・フェーズを通る。これらのサイクルの間、プ
ログラム・フェッチ・フェーズは次のフェッチ・パケッ
トのそれぞれに対して開始される。
【0115】プログラム・ディスパッチ(DP)フェー
ズであるサイクル5において、CPUは、pビットを走
査し、フェッチ・パケットnに3つの実行パケット(k
〜k+2)があることを検出する。これによって、パイ
プラインが強制的にストールし、DPフェーズが実行パ
ケットk+1および実行パケットk+2をサイクル6お
よびサイクル7において開始することができる。実行パ
ケットk+2がDCフェーズ(サイクル8)へ移行でき
る用意ができると、パイプライン・ストールが解放され
る。
【0116】フェッチ・パケットn+1〜n+4はすべ
てストールされていたので、CPUはフェッチ・パケッ
トnにおいて3つの実行パケット(k〜k+2)のそれ
ぞれに対するDPフェーズを実行するための時間がある
ことになる。また、フェッチ・パケットn+5もサイク
ル6およびサイクル7においてストールされていたの
で、パイプライン・ストールがサイクル8において解放
されるまでPGフェーズに入ることは許されなかった。
パイプラインは、フェッチ・パケットn+5,n+6に
示されているように、複数の実行を含む別のフェッチ・
パケットまで継続する。
【0117】CPUは、14の割込みが利用できる。こ
れらは、リセット、ノンマスカブル割込み(NMI)お
よび割込み4〜割込み15である。これらの割込みは、
CPU境界におけるRESET、NMIおよびINT4
〜INT15信号に応答する。いくつかの実施形態の場
合、これらの信号は、そのデバイス上のピンに直接接続
することができ、オン・チップ・ペリフェラルに接続す
ることができ、またはチップ上で永久に不活性となるよ
うに接続されることによってディスエーブルすることが
できる。一般に、RESETおよびNMIはそのデバイ
スのピンに直接接続される。
【0118】これらの割込みの優先順位が表17に示さ
れている。割込みピン上でローからハイへの繊維が発生
すると、割込みにフラグ・レジスタ(IFR)にその割
込みのペンディング・ステータスがセットされる。その
割込みが正しくイネーブルされていた場合、CPUはそ
の割込みの処理を開始し、プログラムの流れを割込みサ
ービス・ルーチンへ切り換える。
【0119】
【表23】
【0120】CPUはリセットの処理を防止することが
できない。RESETがローからハイへ遷移すると、リ
セットの処理が開始される。他の割込みと違って、RE
SET信号はロー・アクティブであるように名付けられ
ている。RESET信号がローであった場合、CPUの
すべての処理が停止され、すべてのレジスタがそれぞれ
のリセット値へ戻る。
【0121】ノンマスカブル割込み(NMI)は2番目
に高い優先度の割込みである。2つの条件はNMIが割
込み処理を発生するのを防止する。すなわち、CPUは
分岐の遅延スロットにあり、その分岐が取られるか取ら
れないかと、割込みイネーブル・レジスタ(IER)の
イネーブル・ビット(NMIE)が“0”であることで
ある。NMIEはリセット時にクリアされてプロセッサ
の初期化を防ぎ、NMI処理時に別のNMIによってN
MIの割込みが再度掛かるのを防止する。NMIはNM
IEをセットすることによって、またはB NRP命令
の実行を完了することによって、再度イネーブルされ
る。
【0122】NMIEが“0”の場合、INT4〜IN
T15はディスエーブルされる。NMIの処理時に、戻
りポインタ(それは前のプログラムの実行を継続する)
が、NMI戻りポインタ・レジスタ(NRP)に格納さ
れる。したがって、B NRP命令は、NMIをサービ
スした後、前のプログラムへ戻る。表18は、NMIか
らの戻りがどのように行われるかを示す。
【0123】
【表24】
【0124】次の条件によって、INT4〜INT15
が割込み処理を発生するのを防止することができる。そ
の条件は、CPUが分岐の遅延スロットに存在するコー
ドを処理していて、「偽」条件により実行を完了しない
条件付き分岐を含むこと、割込みイネーブル・レジスタ
(IER)が“0”であること、IERの対応する割込
みイネーブル(IE)ビットが“0”であること、また
は、制御ステータス・レジスタ(CSR)の割込みイネ
ーブル・ビット(GIE)が“0”であることである。
【0125】割込み処理中に、以前のプログラム実行を
継続する戻りポインタが、割込み戻り・ポインタ・レジ
スタ(IRP)に格納される。したがって、B IRP
命令は、その割込みをサービスした後、プログラム・フ
ローへ戻る。表19は、マス可能割込みからの戻りがど
のように行われるかを示す。
【0126】
【表25】
【0127】IACKおよびINUM信号は、割込みが
発生したときに、デバイス11の外のハードウェアに対
してアラートを発する。IACK信号は、CPUが割込
みの処理を開始したことを示す。INUMx信号(IN
UM0〜INUM3)は、処理されている割込みの番号
(IFRにおけるビット位置)を示す。
【0128】表20はデバイス上の7つの割込み制御レ
ジスタを示す。
【0129】
【表26】
【0130】IFRおよびISRはレジスタ・アドレス
を共有する。IFRは読み出されることができ、ISR
は書き込まれることができる。他のレジスタはユニーク
・アドレスを有する。
【0131】グローバル割込みイネーブル(GIE)
は、ビットの値を制御することによってマスク可能な割
込みをイネーブルまたはディスエーブルすることを可能
にする。GIEは制御ステータス・レジスタ(CSR)
のビット0である。
【0132】GIE=1の場合、マスク可能割込みをイ
ネーブルし、それらが処理されるようにする。
【0133】GIE=0の場合、マスク可能な割込みを
ディスエーブルし、それらが処理されないようにする。
【0134】CSRのビット1は、PGIE、すなわ
ち、前のGIEである。マスク可能な割込みの処理時
に、PGIEにはGIEがロードされ、GIEはクリア
される。GIEビットはマスク可能な割込みの間にクリ
アされて、そのデバイスのステートがセーブされる前に
別のマスク可能な割込みが発生してもよいようにする。
割込みからの戻り時に、BIRP命令を介して、PGI
E値がGIE(CSRの中の)へコピーされて戻され、
前と変わらない値になる。PGIEの目的は、割込みが
既に検出されて処理を待っている間、GIEを適切にク
リアできるようにすることである。
【0135】CPUが割込みの処理を開始するとする。
割込みが処理され始めるのとちょうど同じように、GI
Eは、MVC命令によってCSRのビット0に対して
“0”を書き込むことによって、クリアされる。GIE
は、PGIEへコピーされる前にMVC命令によってク
リアされる。割込みからの戻り時に、PGIEはGIE
へコピーされて戻され、結果として、GIEがそのコー
ドによって指令されたようにクリアされる。
【0136】表21は割込みをディスエーブルする方法
を示し、表22は割込みをイネーブルする方法を示す。
【0137】
【表27】
【0138】
【表28】
【0139】割込みは、割込みイネーブル・レジスタ
(IER)の対応するビットがセットされている場合に
のみ、割込み処理をトリガすることができる。リセット
に対応するビット0には書き込むことができず、常に
“1”として読まれる。RESET割込みは常にイネー
ブルされている。RESETはディスエーブルすること
ができない。ビットIE4〜IE15には“1”または
“0”を書き込むことができ、それぞれ関連付けられて
いる割込みをイネーブルまたはディスエーブルすること
ができる。IERは図15に示されている。
【0140】NMIEがクリアされている場合、ノンリ
セット割込みをすべてディスエーブルし、NMIの割込
みが禁止される。NMIイネーブル(NMIE)は
“0”の書込みによっては影響されないが、“1”の書
込みによってセットされる。NMIEはリセット時に
“0”に初期化されて、イネーブルされるまでプロセッ
サの初期化のすべての割込みを防止する。リセット後
に、NMIEをセットしてNMIをイネーブルし、IN
T15〜INT4がGIEおよび適切なIEビットによ
ってイネーブルされるようにしなければならない。NM
IEを手動でクリアすることはできない。NMIEはN
MIの発生によってクリアされる。クリアされた場合、
NMIEは、B NRP命令を完了することによっての
み、または、NMIEに対する“1”の書込みによって
のみ、セットされる。
【0141】割込みフラグ・レジスタ(IFR)(図1
6参照)はINT4〜INT15およびNMIのステー
タスを含む。表23は、その割込みフラグおよびそれら
が対応する割込みをリストする。割込みのステータスを
チェックしたい場合、MVC命令を使ってIFRを読み
出す。
【0142】
【表29】
【0143】割込みセット・レジスタ(ISR)および
割込みクリア・レジスタ(ICR)(図17および図1
8参照)によってIFRの割込みを手動でセットまたは
クリアすることができる。ISRのIS4〜IS15に
“1”を書き込むことによって、対応する割込みフラグ
がセットされる。同様に、ICRのビットに“1”を書
き込むことによって、対応する割込みフラグがクリアさ
れる。ISRまたはICRのいずれかの任意のビットに
“0”を書き込んでも影響はない。入ってくる割込みに
は優先順位があり、ICRへの書込みに優先する。リセ
ットまたはNMIをセットまたはクリアすることはでき
ない。ISRまたはICRへの書込み(MVC命令によ
る)は、実効的に、1つの遅延スロットを持つ。という
のは、ISRまたはICRへの書込みの後、2サイクル
まではIFRに結果を(MVC命令によって)読み込む
ことはできないからである。
【0144】割込みサービス・フェッチ・パッケージ
(ISFP)は、割込みをサービスするために使われる
フェッチ・パケットである。ISFPの8個の命令が不
十分であった場合、そのプログラムは追加の割込みサー
ビスのためにこのブロックから分岐して抜け出さなけれ
ばならない。その分岐の遅延スロットがISFPに存在
していなかった場合、実行は次のフェッチ・パケットの
中の実行パケットから継続される。
【0145】割込みサービス・テーブル(IST)は1
6個の隣接したISFPであり、ほとんどがIFRの1
つの割込みに対応している。ISTは256ワード境界
(32フェッチ・パケット×8ワード/フェッチ・パケ
ット)に整列されていなければならない。16個の割込
みだけが定義されているが、ISTの中の空間は将来の
可能な32個までの拡張に対して予約されている。IS
Tは、プログラム・フェッチによってアクセスできるメ
モリに存在する。
【0146】ISTの内容およびアドレスが表24に示
されている。各フェッチ・パケットは8個の32ビット
命令ワード(すなわち、32バイト)を含むので、下記
の表の各アドレスは、その1つ下から32バイトだけイ
ンクリメントされる。
【0147】
【表30】
【0148】RESETフェッチ・パケットは“0”の
アドレスに置かれていなければならないが、割込みサー
ビス・テーブルの残りのものは、それが256ワード境
界上で始まる限り、プログラム・メモリのどの場所にあ
ってもよい。割込みサービス・テーブルの場所は割込み
サービス・テーブル・ベース(ISTB)によって決定
される。図19はテーブルの場所に対するISTBの関
係を示す。ISTBは、割込みサービス・テーブル・ポ
インタ(ISTP)レジスタの上位ビット・フィールド
に含まれる。このレジスタは、割込みサービス・テーブ
ルをポイントするために使われるだけでなく、割込みイ
ネーブル・レジスタにイネーブルされる最高優先度のペ
ンディングの割込みを決定するためにも使うことができ
る。
【0149】図19はISTPのビット・フィールドを
示す。表25はISTPのビット・フィールドを記述
し、それらの使われ方を説明する。表24は、ISTの
各ISFPのアドレスを示している割込みサービス・テ
ーブルである。ISTPは割込み処理のための分岐ター
ゲットとして使われる。また、それは、割込みがディス
エーブルされて、割込みフラグがセットされていてIE
ビットがセットされている最高優先度の割込みのISF
Pのロケーションをポイントするためにも使うことがで
きる。
【0150】
【表31】
【0151】IFRおよびIERをポールして手動で割
込みを検出し、その後、表26の下部に示されているよ
うにISTPに保持されている値に分岐させるようにす
ることができる。
【0152】
【表32】
【0153】割込みサービスの完了後に、IRPまたは
NRPレジスタに対する分岐(BIRPまたはB NR
P命令をそれぞれ使って)は、以前のプログラム・フロ
ーを継続する。IRPは、マスク可能割込みのために実
行されなかったプログラム・フローの第1の実行パケッ
トの32ビット・アドレスを含む。このレジスタに値を
書き込むことはできるが、それ以降の割込み処理によっ
てその値が書き換えられる可能性がある。IRPとは独
立のNRPが必要である。というのは、NMIはマスク
可能割込みを中断することができるからである。図20
はIRPを示し、図21はNRPを示す。
【0154】図22は割込みm(INTm)の処理を示
す。次に、この図およびINTmの処理について説明す
る。
【0155】INTm(IFm)に対するフラグは、C
PU境界上のINTm信号のローからハイへの遷移によ
ってIFRでセットされる。これらの遷移はクロック・
サイクルごとのベースで検出され、CPUサイクルを延
長する可能性のあるメモリ・ストールによっては影響さ
れない。図22において、IFmはCPUサイクル5の
間にセットされる。MVC命令を使って(CPUサイク
ル3の間に)実行パケットn+3のICRのビットmに
“1”を書き込むことにより、ビットIFmをクリアし
ようとすることができる。しかし、この場合、割込み検
出論理による自動的な書込みが優先し、IFmはセット
されたままである。
【0156】図22は、INTmが最高優先度のペンデ
ィング割込みであり、GIEおよびNMIEによって必
要に応じてイネーブルされると仮定している。そうでな
い場合、IFmは、ICRのビットmに“1”を書き込
むことによってそれがクリアされるかINTmの処理が
発生するときのいずれかまで、セットされたままになっ
ている。
【0157】図22のCPUサイクル4において、処理
する必要のある割込みが検出される。この処理されるべ
き割込みに対して、次の条件は、同じクロック・サイク
ルにおいて有効でなければならず、クロック・サイクル
ごとに評価されなければならない。 ‐ IFmはCPUサイクル5の間にセットされる(こ
の決定は、割込みロジックによってCPUサイクル4で
行われる)。 ‐ IERの対応するビットがセットされる(IEm=
1)。 ‐ すべてのマスク可能割込みに対して、GIE=1で
ある。 ‐ すべての非リセット割込みに対して、NMIE=1
である。 ‐ すべての非リセット割込みに対して、前の5つの実
行パケット(n〜n+4)は分岐を含んでいない(分岐
が取られない場合であっても)。
【0158】割込みを検出することはできるが、分岐の
遅延スロットの間には取られない。ペンディングの分岐
が完了すると直ぐにペンディングの割込みがあれば取ら
れる。
【0159】図22のCPUサイクル5〜 CPUサイ
クル11の間に、次の割込み処理が発生する。 ‐ それ以降の非リセット割込みの割込み処理がディス
エーブルされる。 ‐ 次の実行パケット(n+5からの)が廃棄される。
1つの実行パケットが特定のパイプライン・ステージの
間に廃棄された場合、それはCPUステートを変更しな
い。また、廃棄によって命令が将来のパイプライン・ス
テージにおいて強制的に廃棄される。 ‐ 廃棄された最初の実行パケット(n+5)のアドレ
スがNMIの場合にはNRPにロードされ、他のすべて
の割込みの場合はIRPにロードされる。 ‐ ISTP(INTmに対するISFPに対するポイ
ンタ)に保持されているアドレスに対する分岐が、サイ
クル6の間にパイプラインのE1フェーズの中に強制的
に入れられる。 ‐ サイクル6の間に、IACKがアサートされ、適切
なINUM信号がアサートされてどの割込みが発生され
たかを示す。 ‐ IFmはサイクル7の間にクリアされる。 ‐ NMIを除くすべての割込みに対して、PGIEが
GIEの値にセットされ、その後GIEがクリアされ
る。 ‐ NMIの場合、NMIEがクリアされる。 ‐ リセットの場合、CPUレジスタはそれぞれのリセ
ット値へ戻される。ISTPのISTBが強制的に
“0”にされ、したがって、実行がアドレス0から開始
される。
【0160】次の動作は割込み処理には影響しない。 ‐ 分岐: 分岐と割込み処理とは同時には発生しな
い。というのは、分岐の遅延スロットの間は割込みはデ
ィスエーブルされているからである。それは、その分岐
が行われなかった場合でも、ディスエーブルされてい
る。 ‐ コードの並列性: フェッチ・パケットのシリアル
またはパラレル・エンコーディングはパイプラインのE
5ステージを通じてDCには影響しないので、割込みと
の衝突は存在しない。
【0161】次の動作は割込み処理に影響する。 ‐ マルチサイクルNOP: マルチサイクルNOP
(IDLEを含む)は割り込まれたときに他の命令と同
じ動作をする。ただし、マルチサイクルNOPの第1サ
イクル以外のどれかのサイクルが割込みによって廃棄さ
れるときを除く。次に、パイプライン内の次の実行パケ
ットのアドレスがNRPまたはIRPにセーブされる。
これは、割り込まれたIDLE命令またはマルチサイク
ルNOPへ戻ることを防止する。 ‐ メモリ・ストール: メモリ・ストールはCPUサ
イクルを延長することによって割込み処理を遅延させ
る。CPUサイクルは、割込み処理が発生したかどうか
にかかわらず、メモリ・ストールの間、延長されること
になる。
【0162】割込み処理における性能: ‐ オーバヘッド: すべてのCPU割込みに対するオ
ーバヘッドは7サイクルである。これは図22から分か
る。この図では、CPUサイクル5〜 CPUサイクル
11の間にE1パイプライン・フェーズに新しい命令は
入ってきていない。 ‐ ラテンシー: 割込みラテンシーは11サイクルで
ある。図22において、割込みはサイクル1においてア
クティブであるが、サービス・コードの実行はサイクル
12までは開始されない。 ‐ 頻度: ロジックは、優先順位を有する割込みが入
って来ている状態で、サイクル7において割込みをクリ
アする。したがって、割込みは1サイクルおきに認識さ
れる。また、ローからハイへの遷移が必要であるので、
割込みは1サイクルおきにだけ発生することができる。
しかし、割込み処理の頻度は、割込みサービスに対して
必要な時間および処理中に割込みを再イネーブルするこ
とによってネストされた割込みを許すかどうかによっ
て、変わる。
【0163】表27および表28は単独割当てプログラ
ミング法を示す。単独割り当てが使われるとき、ペンデ
ィングの結果を保有するレジスタは読まれない。表27
において、ADDがLDW(および遅延スロットの余分
のNOPサイクル)と並列になっていた場合、そのコー
ドは単独割り当てに従うことになる。というのは、LD
Wからの書込みはまだペンディングにはなっていないか
らである。
【0164】予測できない動作を回避するために、割り
込まれる可能性のあるコードでは単独割り当てを採用し
なければならない。割込みが発生した場合、割込み処理
の開始の前にE1に入っているすべての命令は実行を完
了することが許される(E5まで)。他のすべての命令
は廃棄され、割込みからの戻り時に再度フェッチされ
る。割込みからの戻りから入ってきた命令は、その割込
み処理の前の命令からの遅延スロットを経験しない。し
たがって、遅延スロット付きの命令は実際よりも少ない
遅延スロットを持つように現われる可能性がある。たと
えば、表27においてLDWとADDとの間に割込みが
発生した場合、ADDはLDWによってロードされたA
1の新しい値を読むことになる。
【0165】
【表33】
【0166】
【表34】
【0167】トラップは、それがソフトウェア制御下で
入る以外は、割込みと同様に動作する。トラップへの入
口では、割込みはディスエーブルされる。表29および
表30はトラップの呼出しおよび戻りコード・シーケン
スをそれぞれ示す。この方法によって、複数のネストさ
れた割込みが可能となる。トラップ条件(TC)は条件
レジスタA1〜A2または条件レジスタB0〜B2の任
意の1つとすることができる。
【0168】トラップ・ハンドラはB0およびB1の値
をセーブしなければならない。というのは、このコード
例においては、B0は前のGIEを保持し、B1は戻り
アドレスを含むからである。TRAPハンドラがディス
プレースメントを使っている分岐に対する21ビット・
オフセット以内にあった場合、そのシーケンスは8サイ
クルではなく6サイクル縮められる可能性があることに
留意されたい。
【0169】
【表35】
【0170】
【表36】
【0171】一般に、割込みサービス・ルーチンに入る
とき、割込みはディスエーブルされる。その例外はノン
マスカブル割込みである。というのは、ノンマスカブル
割込みは第2レベルの割込みを許すからである。発生し
た割込みがNMIである場合、それは最初のNMIの処
理が完了した後まで別のNMIによって割り込まれな
い。しかし、NMIは他のどの割込みも中断することが
できる。
【0172】1つの割込みサービス・ルーチンが別の
(特にそれより高い優先度の)割込みによって割り込ま
れるようにしたいときがあり得る。デフォールトでは、
プロセッサは割込みのソースがNMIでない限り、割込
みサービス・ルーチンがさらに割り込まれることを許さ
ないが、ソフトウェアの制御下で割込みのネスティング
を可能にすることができる。そのプロセスは、元のIR
P(またはNRP)およびIERをメモリまたはレジス
タ(使用されていないレジスタか、後続の割込みによっ
て使われる場合にセーブされているレジスタのいずれ
か)にセーブするステップと、CSRをセーブすること
とともにISRが侵入されたときに必要であれば割込み
イネーブルの新しいセットをセットアップするステップ
とを含む。次に、GIEビットをセットし、割込みサー
ビス・ルーチンの内部で割込みを再度イネーブルするこ
とができる。
【0173】本発明の現在好ましいマイクロプロセッサ
11は32ビットの固定小数点ディジタル信号プロセッ
サ(DSP)11であり、それはVLIW CPUコア
に基づいている。そのCPUコアは、2つのレジスタ・
ファイルを使って並列に動作する8個の機能ユニットを
備え、2つのレジスタ・ファイルのそれぞれが16個の
32ビット・レジスタを含む。デバイス11はクロック
・サイクルごとに8個までの命令を実行し、200MH
zのクロック・レートにおいて1,600Mipsの性
能を達成する。プログラムの並列性はコンパイル時にコ
ンパイラによって定義される。というのは、実行時にハ
ードウェアによって行われるデータ依存のチェックはな
いからである。1メガビットのオンチップRAMはデー
タ用およびプログラム用メモリに分割されている。プロ
グラム・メモリの256ビット幅の部分はキャッシュ・
メモリとして構成することができ、そのように構成され
たとき、それは1サイクルごとに8個の32ビット命令
をフェッチする。外部メモリ・インターフェース(EM
IF)はSBSRAMおよびSDRAMなどの各種の同
期型および非同期型メモリをサポートする。EMIFは
ホールド/ホールド・アクノレッジ・プロトコルを使っ
てホストの制御下で外部バスを解放することができる。
さらに、ホスト・プロセッサは別の16ビットのホスト
・ポート・インターフェースを経由してプロセッサのデ
ータ・メモリに直接アクセスすることができる。パワー
アップに続いて、DSPは、チップ上で利用できる2つ
のDMAチャネルの1つを使って8、16または32ビ
ットの外部ROMからDSPをブートすることができ
る。図23はプロセッサ11の高レベルの機能図を示
す。
【0174】本発明の「非常に長い命令ワード」(VL
IW)CPUは、256ビット幅の命令を使ってクロッ
ク・サイクルごとに8つの機能ユニットに対して8個ま
での32ビット命令を供給する。VLIWアーキテクチ
ャの機能は8個のユニットが実行準備未完了の場合、8
個のすべてのユニットに命令が供給されなくてもよいよ
うに制御する。すべての32ビット命令の第1ビット
は、前の命令と同じ実行パケットに次の命令が所属して
いるか、あるいはそれが次の実行パケットの一部として
次のクロックにおいて実行されるべきかどうかを判定す
る。フェッチ・パケットは常に256ビット幅である
が、実行パケットは、図24に交番シェーディングによ
って示されているように、サイズを変えることができ
る。この可変長の実行パケットは、そのCPUを他のV
LIWアーキテクチャと区別する主要なメモリ節約機能
である。
【0175】このCPUは二組の機能ユニットを特徴と
している。各機能ユニットは4個のユニットと1つのレ
ジスタ・ファイルとを含む。この2つのレジスタ・ファ
イルはそれぞれ16個の32ビット・レジスタを含み、
合計で32個の汎用レジスタがあることになる。図24
に示されているように、二組の機能ユニットは、2つの
レジスタ・ファイルとともにCPUのサイドAおよびサ
イドBを構成する。CPUの各サイドにある4つの機能
ユニットは、そのサイドに属する16個のレジスタを自
由に共有することができる。さらに、各サイドは、他の
サイドのすべてのレジスタに接続されている単独のデー
タ・バスを特徴とする。それによって、二組の機能ユニ
ットが反対側のレジスタ・ファイルからデータを相互に
交換することができる。CPUのレジスタ・ファイルと
同じサイドにある機能ユニットによるレジスタ・アクセ
スは、すべてのユニットに対して一つのクロック・サイ
クルでサービスされ、CPUにまたがるレジスタ・ファ
イルを使うレジスタ・アクセスは、1サイクル当たり1
つの読出しおよび1つの書込み用だけである。
【0176】このCPUの別の主な特徴はロード/スト
ア・アーキテクチャであり、そのアーキテクチャにおい
てはすべての命令がレジスタ(メモリ内のデータに対し
てではなく)に作用する。二組のデータ・アドレッシン
グ・ユニット(. D1および. D2)はレジスタ・ファ
イルとメモリとの間のすべてのデータ転送を排他的に担
当する。. Dユニットによってドライブされるデータ・
アドレスによって、1つのレジスタ・ファイルから発生
されたデータ・アドレスが他のレジスタ・ファイルに作
用するデータ・ロードおよびデータ・ストアにおいて使
われるようにすることができる。CPUは、5または1
5ビット・オフセット付きのリニアまたはサーキュラ・
アドレッシング・モードのいずれかを使って、各種の間
接アドレッシング・モードをサポートする。すべての命
令は条件付きであり、ほとんどが32個のレジスタのう
ちの任意の1つにアクセスすることができる。しかし、
いくつかのレジスタは、特定のアドレッシングをサポー
トするために、あるいは条件付き命令に対する条件を保
持するために、専用に使われる(その条件が自動的に
「真」でない場合)。2つの. M機能ユニットは乗算器
に専用になっている。2つの. Sおよび. Lの機能ユニ
ットは一般的な算術演算、論理演算および分岐機能を実
行し、その結果はクロック・サイクルごとのレートで得
られる。しかし、ラテンシーは複数ステージ実行パイプ
ラインのために1サイクル〜5サイクルの間で変化する
可能性がある。
【0177】VLIWの処理フローは、256ビット幅
の命令フェッチ・パケット(IFP)が内部プログラム
・メモリ(キャッシュとしても構成することができる)
からフェッチされたときに開始される。個々の機能ユニ
ットに対して向けられる32ビットの命令は、命令フェ
ッチ・パケットの中の各命令の最下位ビット1にある第
1ビットによって一緒に「リンク」される。同時実行
(合計で8個まで)のために「チェイン」される命令は
「実行パケット」を構成する。命令のLSBに“0”が
1つあると、チェインが破られ、それに続く命令が実効
的に次の実行パケットに置かれる。実行パケットがフェ
ッチ・パケット境界(256ビット幅)を横切る場合、
コンパイラはそれを次のフェッチ・パケットに置き、一
方、現在のフェッチ・パケットの残りの部分にはNOP
命令が埋められる。1つのフェッチ・パケットでの実行
パケットの数は“1”から“8”まで変化する可能性が
ある。実行パケットはクロック・サイクル当たりに1つ
のレートでそれぞれの機能ユニットに対してディスパッ
チされ(図「24????」参照)、また、次の256
ビットのフェッチ・パケットは、現在のフェッチ・パケ
ットからの実行パケットがすべてディスパッチされるま
では、フェッチされない。デコードされた後、その命令
は、すべてのクロック・サイクルにおいて8個の命令の
最大実行レートですべてのアクティブな機能ユニットを
同時にドライブする。ほとんどの結果は32ビットのレ
ジスタに格納されるが、それらはバイトまたはハーフ・
ワードとしてメモリにも格納することができ、実効的に
すべてのストアおよびロードをバイト・アドレス可能に
することによって、所要メモリを大幅に節約することが
できる。
【0178】図23の信号のピン機能は次の通りであ
る。
【0179】
【表37】
【0180】このCPUは,2つの汎用レジスタ・ファ
イルA,Bを特徴とするロード/ストア・アーキテクチ
ャに基づいたレジスタを備えている。すべてのデータ操
作命令は、レジスタに存在しているデータについて働
く。そのデータは、別のロードおよびストア命令を使っ
てレジスタとメモリとの間で転送される。汎用レジスタ
・ファイルは32ビット幅であり、それぞれが16個の
レジスタを含む。サイドAのレジスタはサイドAの4個
の機能ユニットに対する複数のパスを有し、サイドBの
レジスタはサイドBの機能ユニットに対する複数のデー
タ・パスを有する。データの共有を可能にする反対側の
レジスタ・ファイル/機能ユニットとの間に一つのクロ
ス・パスがあるが、最適のデータ・スループットのため
に、サイドAの機能ユニットは主としてサイドAのレジ
スタにあるデータに作用し、そしてサイドBのユニット
はサイドBのデータに作用するべきである。すべての汎
用レジスタは、レジスタをペアにグループ化することに
よって、40ビットのデータに作用する命令で使うこと
ができる。ほとんどのレジスタをほとんどの命令で使う
ことができるが、いくつかは、以下に示されるように、
特定の使用法もある。
【0181】汎用レジスタ・ファイルA,Bの他に、C
PUは一組の制御レジスタを有し、それらは割込み、プ
ログラム・キャッシュ操作、パワーダウン・モード、デ
ータ・サチュレーション、リニア/サーキュラおよびエ
ンディアン・アドレッシング・モードの設定、プログラ
ム・カウンタのアクセス、汎用I/Oの実行およびプロ
グラム・メモリへの書込みを制御するために使われる。
【0182】
【表38】
【0183】
【表39】
【0184】
【表40】
【0185】
【表41】
【0186】
【表42】
【0187】図25はDSPのメモリ・マップを示す。
そのメモリはバイト・アドレス可能であり、また、その
合計のアドレス範囲は4Gバイト(32ビットの内部ア
ドレスに対応する)である。メモリ・マップは内部プロ
グラム・メモリ、内部データ・メモリおよび3個の外部
メモリ空間および内部ペリフェラルの空間に分割されて
いる。内部メモリのセクションはホスト・ポート・イン
ターフェース(HPI)によってアクセスされ得る。
【0188】内部メモリは、512Kビットのオンチッ
プ・プログラム/キャッシュ・メモリと、512Kビッ
トのオンチップ・データ・メモリとから構成されてい
る。プログラム・メモリはキャッシュまたはプログラム
として構成可能であり、2Kの256ビットのフェッチ
・パケットに編成されている。DSPはすべての命令を
一度に1つのフェッチ・パケットでフェッチする。その
パケットは、CPUサイクル当たり8個の32ビット命
令の最大レートで、あるいは1サイクル当たり1命令の
最小のレートで、処理される。内部データ・メモリはC
PUによってバイト・アドレス可能であり(読出しも書
込みも)、バイト、ハーフ・ワードおよびフル・ワード
の転送をサポートする。
【0189】CPUまたはDMAによるすべての外部デ
ータ・アクセスは外部メモリ・インターフェース(EM
IF)を通過する。外部メモリは、3つの空間すなわち
CE0、CE1およびCE2に分割されている。それぞ
れが、対応する空間との間のデータ・アクセス時にアサ
ートされる専用のチップ・イネーブル信号を備えてい
る。各外部空間は、非同期メモリにアクセスするときに
読出し/書込み・サイクルの形状を決定するための別の
内部ペリフェラル・バス・レジスタを割り当てている。
【0190】非同期メモリの他に、CE0およびCE2
空間も、他のタイプのメモリに対してインターフェース
することができる。SBSRAMまたはSDRAMのメ
モリは、リセット時に信号グループCE0_TYPEお
よびCE2_TYPE(ピンDC2〜ピンDC5)上の
信号レベルを制御することによって、それらの2つの空
間に割り当てられ得る。
【0191】外部メモリ空間CE1は非同期メモリに対
してだけインターフェースすることができる。しかし、
CE0およびCE2空間は常に32ビット幅であるが、
CE1メモリ空間は、信号グループCE1_WIDTH
(ピンDC6〜ピンDC7)上の信号レベルを制御する
ことによって、8または16ビットの幅に構成すること
もできる。EMIFは読出しサイクル時にバイトおよび
ハーフ・ワードをワード中に自動的にパックする。これ
は8または16ビットのEPROMからブートするとき
によく使われる機能である。CE1メモリ空間はROM
にインターフェースするために使うことができる。とい
うのは、ROMサイクルは非同期SRAM読出しサイク
ルと似ているからである。
【0192】CE1空間は8または16ビット幅のメモ
リからの読出しが可能な唯一の外部メモリ空間である
が、任意の外部メモリ空間からの読出しサイクルは32
ビット幅の外部メモリからバイトまたはハーフ・バイト
のサイズのデータをアクセスできることに留意された
い。EMIFデータ書込みサイクルは、バイト選択のた
めのBE_制御信号を使って、外部メモリに対してもバ
イト、ハーフ・ワードまたはワードを転送できる。デー
タ読出しサイクルは常に4バイトすべてをラッチし(4
つのBE_がすべてアクティブになる)、次に、 その
データ・サイズが32ビットより小さい場合は、CPU
は適切なバイトを内部的に抽出する。プログラム・メモ
リ・コントローラまたはDMAによって要求されたEM
IFの書込みは常に(データ・メモリ・コントローラに
よって発せられる8、16または32ビットの転送とは
反対に)32ビット幅であることに留意されたい。
【0193】リセット時のピンDC1(MAP_BOO
T信号グループ)の状態は、内部プログラムRAMが外
部メモリ空間CE0,CE1の前後にメモリ・マップに
置かれるかどうかを決定する。選定されたメモリ・マッ
プ・モードのタイプは、普通は、デバイス・パワーアッ
プに続いて使われるスタートアップ手順によって変わる
(このデータ・シートの「リセット後のスタートアッ
プ」のセクション参照)。
【0194】LENDIANコンフィギュレーション・
ピンは、個々のバイト・アドレスがワード内部で増加す
る順序を判定する(1つのワードの下位バイトは、ビッ
ト0〜ビット7または32ビット・ワードのうちのビッ
ト24〜ビット31を表すことができる)。類似の方法
で、LENDIANピンはワード中のハーフ・ワードの
順序も決定する。LENDIANピンは外部メモリ・ア
クセス以外に内部データ・メモリにも影響する。
【0195】DSP上のペリフェラルは、メモリ・マッ
プド制御レジスタを経由してアクセスされ制御される。
1つの実施形態は2個のペリフェラルを含み、それらは
拡張メモリ・インターフェース(EMIF)および2チ
ャネルのダイレクト・メモリ・アクセス・コントローラ
(DMA)である。DMAチャネルの1つであるDMA
0は、ブートロード・スタートアップ手順の間にプロセ
ッサによって使用され、リセット後の内部プログラム・
メモリを初期化する。
【0196】
【表43】
【0197】
【表44】
【0198】
【表45】
【0199】512Kビットの内部データ・メモリは、
CPUからもホスト・ポート・インターフェース(HP
I)を介してもアクセスされ得る。CPUは、8つのカ
ラムに編成された64Kバイトとして内部データ・メモ
リを見る。各カラムは1バイト幅で高さが16K行であ
る。HPIは同じメモリを4つのカラムにわたってアド
レスし、それぞれが1ハーフ・ワード幅であり16K行
の高さ(合計32Kハーフ・ワード)である。CPUと
違って、HPIは内部データをリトル・エンディアン
(Endian)モードでアドレスする機能を備えてい
るだけであり、その場合、個々のハーフ・ワードのアド
レスはフル・ワードのアドレスと同じ方向に成長する。
アドレッシングの例については図26を参照されたい。
【0200】最大のメモリ・アクセス性能を視覚化する
ために、DSPの内部データ・メモリを4つのブロック
に編成することができる。各ブロックは2バイト幅で1
6K行の高さである。図27および図28に示されてい
るように、データはCPUによってバイト・アドレス可
能であり、そのアドレスは左から右へブロックにまたが
って増加する(この例はリトル・エンディアン・アドレ
ッシング・モードを使っている)。CPUの両側が同じ
CPUサイクルの間にデータを同時にアクセスするため
には、サイドAのデータのバイトはサイドBのデータ・
バイトと同じメモリ・ブロックには存在することはでき
ない。図27に示されているように、1ワードのデータ
がサイドAのレジスタにロードされるのと同時に、別の
ワードがサイドBのレジスタからストアされる。しか
し、図28の2つのアクセス(両方とも8ビット幅)は
2サイクル掛かる。というのは、両方のバイトが内部デ
ータ・メモリの同じブロックに存在するからである。
【0201】デバイス・リセットはRESET_ピンの
信号の立下りエッジの直後から始まる。リセット時に、
プロセッサのすべての機能ブロックは既知の状態に初期
化される。それはすべてのCPUおよび内部ペリフェラ
ル・バス・レジスタと同様に行われる。外部メモリ・イ
ンターフェース出力信号(HOLDAを除く)およびす
べてのホスト・ポート・インターフェース出力信号は、
RESET_の立下りエッジの直後にトライステート状
態になる。それらは、RESET_信号がハイ・レベル
に戻るまで、トライステートのままになっている。
【0202】HPIFアドレス・ピンのほとんどはデバ
イス・リセット中に特別の機能を持つ。それらは図29
に示されているようなデバイス・コンフィギュレーショ
ン・ピンとなる。最下位ビットHPIFアドレス・ピン
はメモリ・マップ・セレクト・ピンとなる(それはま
た、将来の改訂版においてはブートDMA転送ソース・
アドレスを選択することになる)。そのピンに対するロ
ーまたはハイ状態の選択は、普通は、リセット後のプロ
セッサ・スタートアップ・モード(ピンDC13〜DC
11)によって変わる。
【0203】DSPがRESET_信号のアサートが解
除された直後から動作を開始できるための2つの方法が
ある。信号DC11の状態(リセット時の)が、そのデ
バイスが外部アドレス0hから直接のプログラム実行を
開始するか、最初に内部DMAチャネル0を使って外部
のEPROMから内部プログラム・メモリにブート・ロ
ードした後、内部アドレス0hからプログラム実行を開
始するかどうかを決定する。
【0204】図30に示されているように、RESET
時のDC(13〜11)の000bの値によって、DS
Pは、アドレス0h(リセット・サービス・フェッチ・
パケットのロケーション)から始まるメモリから直接に
プログラム実行を開始する。使用されているMAP_B
OOTモードによって、アドレス0hはチップの内部ま
たは外部に入ることになる。代表的なMAP_BOOT
モード0(リセット時にピンDC1ロー)が、リセット
時にホストによって正しく初期化された32ビットの外
部のEPROMまたはSRAMから実行を開始するため
に使われる。メモリ・マップ1・モードはいくつかのD
SPによって直接に実行を開始するために使われること
はほとんどない。というのは、DSP自身による以外に
内部プログラム・メモリを初期化するメカニズムがない
からである(いくつかの実施形態はDMAチャネルの1
つを経由して内部プログラム・メモリにアクセスするた
めの機能を備えた、強化されたホスト・ポート・インタ
ーフェースを含むことができる)。
【0205】図31に示されているように、リセット時
のDC(13〜11)の001bの値によってDSP
DAMチャネル0が、0hから始まる内部プログラム・
メモリに外部メモリ空間CE1からデータのブロックを
転送する。ブート・ブロックのサイズはリセット時のD
C(10〜8)の状態(図29参照)によって決定され
る。メモリ・マップのアドレス0hにある内部プログラ
ム・メモリ・ロケーションはMAP_BOOTモード1
(リセット時にピンDC1がハイ)に対応する。DSP
は、ブート・ロード・スタートアップに対してはMAP
_BOOTモードをサポートすることができない。DM
A転送の完了時に、プロセッサは内部プログラム・メモ
リ・アドレス0hからリセット・サービス・フェッチ・
パケットの実行を開始する。普通、リセット・パケット
は他の内部サービス・フェッチ・パケット(ISFP)
を飛び越してアプリケーション・ブートローダ・プログ
ラムへジャンプする分岐命令を含む。次に、ブートロー
ダは、アプリケーションによって初期化されたデータで
内部データ・メモリにロードする可能性が高く、外部メ
モリ空間CE0またはCE2の中のいくつかのロケーシ
ョンに対して別のプログラム・ブロックをロードした
後、メイン・プログラム・ループへ分岐する。
【0206】割込みを自動的に処理することができる前
に、それに対応すビットが割込みイネーブル・レジスタ
(IER)にセットされていなければならず、また、グ
ローバル割込みイネーブル・ビット(GIE)が制御ス
テータス・レジスタ(CSR)に同様にセットされなけ
ればならない。割込み処理時に、プロセッサは現在のプ
ログラムの実行を停止し、次の命令のアドレスを割込み
リターン・ポインタ(IRP)で実行するようにスケジ
ュールされる。ノンマスカブル割込み(NMI)の場
合、戻りアドレスはNRPレジスタにセーブされる。次
に、プログラム実行は、割込みサービス・テーブルの1
6のあらかじめ割り当てられた隣接したロケーションの
1つに対してリダイレクトされる(ISTベースがリセ
ットに続くアドレス0hに対してISTベースが割り当
てられているが、ISTPレジスタのISTBフィール
ドを変更することによって1Kバイトのアドレス境界上
の任意の場所にリロケートすることができる)。ISF
Pは8個の命令から構成されており、そのうちの1つ
は、IRPアドレスに対する分岐(割込みからの戻りの
ために)であるか、割込みサービス・ルーチン(IS
R)がISFPより大きい場合には、追加のコードに対
する分岐でなければならない(図32参照)。他の割込
みに属するISFPに侵入するのを防ぐために、その分
岐はISFPの終了前に少なくとも5サイクルにおいて
実行されなければならない。これは、その分岐5非並列
命令をISFPの終わりの前に置くことによって、また
は、その分岐をNOP5命令による分岐に従うことによ
って、実行することができる。
【0207】GIEビットがディスエーブルされている
状態で、GIEがイネーブルされていた場合、ライン中
の次の割込みのISFPをポイントしているアドレスを
含むISTPレジスタをポールすることによって、最高
優先度のアクティブ割込みを依然としてソフトウェアで
識別することができる。すべてのアクティブ割込みは、
割込みフラグ・レジスタ(IFR)をポーリングするこ
とによっても識別することができる。割込みセットおよ
びクリア・レジスタ(ISRおよびICR)を使って、
ソフトウェアで手動に割込みをセット/クリアすること
ができる。
【0208】自動割込み処理の間に、IFRビットがク
リアされ、アクティブ割込みが4つのINUMピン上に
エンコードされる。これはIACKパルスの先頭におい
て行われる(データ・シートのタイミング・セクション
参照)。同時に、GIEビットがCSRのPGIEフィ
ールドへコピーされ、GIEビットがNMI以外のすべ
ての割込みに対してクリアされる。GIEビットはB
IRPまたはB NRP命令を経由して、(E1フェー
ズの終りにおいて)割込みからの戻り時に再度イネーブ
ルされる。
【0209】DSPは外部の発振器を使ってオンチップ
PLL(フェーズ・ロック・ループ)回路をドライブ
し、その回路がすべての内部および外部クロックを発生
する。PLLは、普通は、外部発振器の周波数を4倍ま
たは2倍にして、その結果のクロックをCLKOUT1
出力ピンに供給する。CLKOUT1の内部バージョン
がプロセッサによって命令サイクル・クロックとして使
われる。このデバイスのほとんどのタイミング・パラメ
ータは、CLKOUT1クロックに、詳しくはその立上
りエッジに、相対的に定義される。CLKOUT2は、
その半分の周波数でCLKOUT1から導かれる別の出
力クロックである。それは、主として、SDRAMなど
のいくつかの同期メモリをクロックするために使われ
る。
【0210】×2および×4のモードの他に、このクロ
ック回路は×1のモードでも動作することができる。そ
の場合、入力クロック周波数はCLKOUT1出力クロ
ック周波数と同じである。乗算の係数を選定する際に考
慮すべき要因は、ボード・レベル・ノイズおよびクロッ
ク・ジッターなどである。×4のモードはボード・ノイ
ズが最小になり、×2のモードではジッターが減少す
る。クロック・モードは、図33に示されているよう
に、2つのCLKMODEピンによって制御される。
【0211】PLLが出力周波数に同期するために必要
な時間は、CLKINおよびCLKOUT1の周波数に
依存し、普通は10マイクロ秒の範囲にある。正確な時
間についてはPLLのコンポーネント選択表を参照され
たい。同期時間はリセット信号の持続時間に影響し、リ
セットはPLLが適切な出力周波数に同期するのに十分
な長さの時間アサートされていなければならない。
【0212】PLLFREQピンは、PLLが同期する
と期待されるCLKOUT1の周波数の範囲を示す。P
LLはまた、2個のバイパス・キャパシタ(PLLVと
PLLGとの間)、外部ローパス・フィルタ・コンポー
ネント(R1、C1、C2)およびEMIフィルタ)を
必要とする(図33参照。R1、C1、C2およびフィ
ルタの値はCLKINおよびCLKOUT1の周波数に
よって変わる。PLL外部コンポーネントおよびEMI
フィルタに対する正しい値を選定するには、PLLコン
ポーネント選択表31を参照されたい。
【0213】
【表46】
【0214】CMOSロジックの動作電力のほとんど
は、回路が1つの論理状態から別の論理状態へスイッチ
する間に消費される。チップのロジックの或る部分また
はすべてがスイッチするのを防止することによって、大
幅な電力節約が実現され、図34に示されているように
データまたは動作コンテキストを失わずに実現される。
パワー・ダウン・モードidle1およびidle2の
ブロックは、そのロジックの選択されたブロックの境界
において内部クロック入力をブロックし、実効的にそれ
らがスイッチングしないようにする。idle1はCP
Uをシャット・ダウンし、idle2モードはCPUお
よびオンチップ・ペリフェラルの両方をシャット・ダウ
ンする。追加の電力節約がパワーダウン・モードidl
e3において得られる。その場合、オンチップ・クロッ
ク・ツリー全体(複数のバッファを含む)が、クロック
PLLであるクロック源において「切り離される」(図
34参照)。
【0215】
【表47】
【0216】パワー・ダウン・モードは、制御ステータ
ス・レジスタ(CSR)のPWRDフィールド中のビッ
ト0〜2を設定することによってトリガされる。Idl
e3モードはデバイス・リセットによってのみ打ち切る
ことができ、一方、Idle1およびIdle2モード
は、PWRDフィールドのビット3,4によって指令さ
れるように、イネーブルされた割込みまたは任意の割込
み(イネーブルされたまたはされていない)によっても
終了することができる。CSRに書き込むとき、PRW
Dフィールドのすべてのビットを同時にセットしなけれ
ばならない。2つ以上の論理“1”がPRWDフィール
ドのビット0〜2に書き込まれたとき、そのうちの最上
位のイネーブル・ビットがそのパワー・ダウン・モード
を決定する。
【0217】
【表48】
【0218】
【表49】
【0219】図35は上記CLKINタイミングを示
す。
【0220】
【表50】
【0221】図36は上記CLKOUT1タイミングを
示す。
【0222】
【表51】
【0223】図37は上記CLKOUT2タイミングを
示す。
【0224】外部メモリ・インターフェース(EMI
F)は、チップの外部にあるデータのアクセスを担当す
る。図23に示されているように、EMIFは、3つの
機能ブロック、すなわち、データ・メモリ・コントロー
ラ、プログラム/キャッシュ・コントローラまたはDM
Aコントローラのうちの1つから外部データ・アクセス
に対する要求を受け取ることができる。EMIFの動作
は、内部ペリフェラル・バスによってアクセスされるメ
モリ・マップされた制御レジスタを経由して構成するこ
とができる。すべてのEMIFプログラムまたはデータ
のアクセスは、共通の23ビット・アドレス・バスおよ
び32ビット・データ・バスを使用する。
【0225】メモリ・マップには3つの空間がある。そ
の各々が、3つのチップ・イネーブル、すなわち、CE
2_、CE1_およびCE0_の1つによって表されて
いる。プロセッサが3つのメモリ・マップ外部空間2,
1,0のどれかに対して読出しまたは書込みを行うと、
これらのチップ・イネーブルのうちの1つがアサートさ
れなければならない。バイト・イネーブル制御信号、す
なわち、BE3_〜BE0_は、データ・メモリ・コン
トローラによって要求されたEMIF書込みサイクルの
間に、個々のバイト、ハーフ・ワードまたはワードを選
択する。すべてのプログラムおよびDMA要求のサイク
ルは、データ・メモリ・コントローラ読出しサイクルと
同じように、32ビット幅であり、結果として、4個の
すべてのBE_信号はアクティブになる。データ・メモ
リ・コントローラ書込みサイクルは、個々のBE_を使
ってバイトまたはハーフ・ワード・データにアクセスし
て、アクティブなバイトを選択する。各ワード中のバイ
トのアドレッシングは、LENDIANピンによって高
いビットまたは低いビットの方向への順序に設定され
る。
【0226】CE_空間0,2は異なるタイプのメモリ
をサポートするためにプログラムすることができるが、
CE_空間1は、パワー・アップ時にシステムをブート
するために普通に使われるROMなどの非同期メモリ・
サイクルだけに制限される。ROM読出しサイクルは制
御信号の観点からCE0_およびCE2_非同期メモリ
・サイクルに同じであるが、CE_1サイクルは、RO
Mが8または16ビット幅の場合、バイトをワード中に
パックする柔軟性を備える。外部ROMサイズは、リセ
ット時にピンDC7,6によってエンコードされると期
待される。
【0227】CE_空間0,2に割り当てられたタイプ
のメモリは、リセット時にDCピンを経由しても符号化
される。ピンDC3,2はCE0_空間に対するメモリ
のタイプを指定し、一方、ピン5,4は空間CE2_の
ためのメモリのタイプを指定する。サポートされている
メモリのタイプは、非同期メモリ、同期バーストSRA
M(SBSRAM)および同期DRAM(SDRAM)
を含む。外部制御サイクルを使ってEMIFグローバル
制御レジスタの適切なビットをセットすることによっ
て、CE_空間0およびCE_空間2をドライブするこ
とができる。外部制御サイクルは、それらが低速I/O
デバイスに本来的な長い応答時間を収容するために個々
のバス・サイクルを伸張するためにリクエスト/レディ
のハンドシェーキングを使用する点で、メモリ・サイク
ルとは異なっている。EMIFは上記メモリ・サイクル
のそれぞれに対して別々の制御信号のセットを提供する
(図23参照)。
【0228】EMIF HOLDおよびHOLDA信号
は、ホストとDSPとの間でEMIFバスの所有権を調
停するために使われる。図38はEMIF信号を示す。
【0229】非同期メモリ読出しサイクルは、AXOE
_制御信号を使ってメモリ・デバイスをイネーブルし
て、そのデータをデータ・バス上に置く。EMIF制御
レジスタは、読出しサイクルの形状と各アドレスが有効
である時間とを定義する。図39の読出しサイクルの形
状は、EMIF CE外部空間タイミング・レジスタ
(外部空間CE0,CE1,CE3を定義する3つのレ
ジスタのうちの1つ)の1サイクル・セットアップ、1
サイクル・ストローブ幅および1サイクル・ホールド・
フィールドに対応する最も高速の可能な非同期読出しで
ある。
【0230】非同期メモリ書込みサイクルは、AXWE
_制御信号を使ってメモリ・デバイスにデータをラッチ
する。AXWE_信号の形は、EMIF外部タイミング
・レジスタのフィールドを設定することによってプログ
ラムされる。図40のサイクルは、1サイクル・セット
アップ、1サイクル・ストローブ幅および1サイクル・
ホールド・タイム(最高速の書込み)に対応する。非同
期メモリAXOE_およびAXWE_制御信号は外部制
御サイクルの間にも使われる。
【0231】
【表52】
【0232】図39は上記非同期メモリ読出しサイクル
・タイミングを示し、図40は非同期メモリ書込みサイ
クル・タイミングを示す。
【0233】CE空間タイミング・レジスタは、AXW
E_およびAXOE_制御信号の形状および持続時間を
決定する3つのフィールドを含む。図39および図40
に示されている例は、CE空間タイミング・レジスタの
セットアップ、ストローブおよびホールド・フィールド
にプログラムされた“1”の値に対応する(最小の許容
値)。各読出しおよび書込みは、プログラム可能でない
1サイクル内部アドレス・ラッチ・タイムも含む。AX
OE_信号が連続した読出しサイクルの間に入ってこな
い場合であっても、セットアップ、ストローブおよびホ
ールドの値の組み合わされた結果によって、各読出しの
総合の長さが決定される。
【0234】
【表53】
【0235】CE_空間0およびCE_空間2の任意の
外部メモリ・アクセスは、EMIFグローバル制御レジ
スタの適切なビットをセットすることによって、外部コ
ントローラ・サイクルに変換され得る。外部コントロー
ラ・サイクルはすべて、AXOE_およびAXWE_制
御信号を使ってデータ転送の方向を指定する。読出しお
よび書込みの両方に対して、DSPは、XREQ_制御
信号をローにドライブして読出しまたは書込みサイクル
の開始を知らせる。外部デバイスがデータ転送に対して
準備ができていた場合、それはただちにAXRDY信号
をハイにドライブする。AXRDYは、外部デバイスが
転送データに対して準備ができている限り、ハイに保た
れる。外部デバイスが転送の準備ができていないとき、
それはただちにAXRDY信号をローにドライブして、
それがふたたびレディになるまで現在のバス・サイクル
をストールする必要がある。外部コントローラ・タイミ
ング波形については図6および図7を参照されたい。
【0236】
【表54】
【0237】図41は外部コントローラ読出しサイクル
・タイミングを示し、図42は外部コントローラ書込み
サイクル・タイミングを示す。図43および図44は、
DSPとSBSRAMとの間の読出しおよび書込みサイ
クルのデータ転送を示す。SBSRAMインターフェー
スは4個の専用のSBSRAM制御信号から構成されて
いる。アドレス・ストローブSSADS_は、バースト
転送の最初のアドレスをSBSRAMデバイスにラッチ
するために使われる。書込みサイクルの場合、それはデ
ータが転送されている限り連続的にアサートされてい
る。読出しサイクルの場合、SSADS_信号はバース
ト転送の最初のワードに対してだけアサートされ、アド
レスがシーケンスを壊すたびごとにアサートされる。バ
ースト・サイズ(1〜4読出し)はアドレスの下位2ビ
ット(EA1およびEA0)によって決定される。読出
しアドレスがSBSRAMにラッチされると、DSPは
アドレス・アドバンス信号をアサートし、所望のアドレ
スがシーケンスの次のアドレスである限りそれをローに
保つ。SSOE_信号によって、SBSRAMデバイス
はデータをバス上に置き、また、SSWE_によって、
SBSRAMがデータを受け取ることができる。
【0238】
【表55】
【0239】図43はSBSRAM読出しサイクル・タ
イミングを示し、図44はSBSRAM書込みサイクル
・タイミングを示す。
【0240】DSPの場合、SDRAMサイクルは非バ
ースト動作に限定されている。読出しおよび書込みサイ
クルは両方とも、SDRAMデバイスに対して順次送ら
れる3つのコマンドから構成されている(図45および
図46参照)。各コマンドは、CE_、SDA10、D
SRAS_、SDCAS_およびSDWE_制御ライン
上の信号レベルの異なる組合せによってエンコードされ
る。最初に、ACTVコマンドが2つのSDRAM内部
バンクのうちの1つを活性化する。READまたはWR
ITEコマンドはDSPとSDRAMメモリとの間での
データ転送を指令する。最後に、DCABコマンドはS
DRAMの両方のバンク(バンクA,B)を非活性化す
る。SDRAMはCLKOUT2クロックを使ってデー
タを転送し、コマンドをラッチする。読出しサイクルの
場合、データは、SDCAS_の立上りエッジに続く正
確に2個のCLKOUT2サイクルだけSDRAMによ
ってバス上にドライブされる。この読出しLATENC
Yは、SDRAM初期化時にDSPによってSDRAM
にプログラムされる。
【0241】BE_制御信号は、SDRAMサイクルの
間は、他のタイプのメモリの場合とは異なる動作をす
る。各BE_信号は、対応するSDRAM DQM入力
に接続されている必要がある。読出しの場合、SDQM
制御は出力イネーブルとなり、書込みの場合、それらは
書込みマスキング(SDRAMのバースト動作に関連付
けられている)の機能を仮定する。
【0242】図47は、リセットに続くSDRAMに対
して送られる初期化コマンドを示す。最初に、SDRA
Mの両方のバンクがDCABコマンドによって非活性化
される。次に、8個のリフレッシュ・サイクルが発行さ
れ、次に、MRS(モード・レジスタ・セット)コマン
ドが発行される。このコマンドは、適切なEMIFレジ
スタに格納されている値に従ってSDRAMの内部の制
御レジスタを初期化する。MRSコマンドの間、SDR
AM初期化データが、実際に、データ・バスの代わりに
アドレス・バス上に出力される。
【0243】SDRAMデバイスは定期的にリフレッシ
ュされなければならない。アドレス・ピンの1つEA1
0がリフレッシュ動作に関係しているので、それは、リ
フレッシュ中にアクティブになっている可能性のある他
のメモリ・サイクルと干渉しないようにするために、S
DA10としてSDRAMインターフェースの排他的使
用のために複製される。図48は非同期メモリ読出しシ
ーケンスの途中でのSDRAMリフレッシュ・サイクル
を示す。一つのリフレッシュ・サイクルの間に、2つの
コマンドがSDRAMに対して発行される。第1のコマ
ンドはSDRAMバンクを非活性化し(DCAB)、第
2のコマンドはCASビフォアRASリフレッシュを実
行する。DCABコマンドによるアドレス・ピンEA1
0の使用にかかわらず、非同期メモリ読出しサイクルは
複製ピンSDA10を経由して中断されずに進行してい
ることは、図から明らかである。
【0244】
【表56】
【0245】図45はSDRAM読出しサイクル・タイ
ミングを示し、図46はSDRAM書込みサイクル・タ
イミングを示す。図47はSDRAM初期化サイクル・
タイミングを示し、図48はSDRAMリフレッシュ・
サイクル・タイミングを示す。
【0246】外部割込みイベントは、INTx信号のハ
イ・パルスによってトリガされる。CLKOUT1の1
つの立上りエッジにおいてINTxがローであると認識
され、かつ、次のCLFOUT1の立上りエッジにおい
てINTxがハイであると認識された場合、外部割込み
が検出される。早くも3サイクル後に、IACK信号は
4本のINUM信号線上に符号化されたアクティブな割
込みの番号を伴って1サイクルの間パルスを発生するこ
とができる。IACKおよびINUM信号は、外部割込
みにしてだけでなく、任意の割込み処理の開始を示す。
INUM識別番号は、IFR(割込みフラグ・レジス
タ)内の処理される割込みの相対的ビット位置を反映し
ている。また、IACKパルスの1つ前のサイクルにお
いて、実行ステージに達していなかったすべての命令
(分岐遅延スロットを除く)が廃棄され、実行ステージ
に最も近い破棄された命令のアドレスが適当な割込み戻
りポインタ(IRPまたはNRP)にセーブされる。既
に実行を開始していた命令は、割込みサービス・フェッ
チ・パケットがフェッチされてデコードされている間
に、残りの実行ステージを完了する。7つのフェッチ/
デコード・サイクルの間に、プロセッサは新しい命令の
処理を開始しない(したがって、7サイクルの割込みオ
ーバヘッド)。割込みサービス・フェッチ・パケット
は、IACKに続く7番目のサイクルにおいて実行を開
始する(図49参照)。
【0247】
【表57】
【0248】RESET_信号はCLKOUT1のすべ
ての立上りエッジにおいてサンプルされる。それがアク
ティブ(ロー)であると検出された場合、すべてのホス
ト・ポート・インターフェース出力信号の他、HOLD
Aを除くすべてのEMIF出力信号が、次のCLKOU
T1の立上りエッジにおいてトライステートにされる。
リセットのアサートが解かれた後、そのトライステート
化された信号は1クロック・サイクル以内にDSPによ
ってふたたびドライブされる(図50参照)。
【0249】普通、PLLは、デバイス・パワーアップ
に続く数マイクロ秒以内に、指定された出力周波数にロ
ック・アップする。実際の時間は、選定されたPLL動
作モードおよびCLKIN/CLKOUT1周波数範囲
によって変わる。
【0250】HOLD/HOLDAロジックはRESE
T信号の状態によっては影響されないことに留意された
い。
【0251】
【表58】
【0252】
【表59】
【0253】HOLD/HOLDAサイクルは、ホスト
によって使われ、ホスト・プロセッサが直接にシステム
・リソースをアクセスするためにシステムからDSPを
電気的に切り離す。図51に示されているように、HO
LD/HOLDAサイクルはEMIF(HOLDAを除
く)およびHPIにおけるすべての出力信号をトライス
テートにする。バスを要求するために、ホスト・プロセ
ッサはHOLD信号をハイにドライブする。DSPがレ
ディのとき、それは、EMIFおよびHPIバスをトラ
イステートにするとともにHOLDA信号をアサートし
て、バスがドライブされなくなっていることをホストに
通知することによって、応答する。HOLDおよびHO
LDA制御信号が両方ともハイである限り、ホストはバ
スを使うための許可を得ている。HOLDA信号がアサ
ートされなくなると、DSPはHOLDA信号をローに
することによって応答し、その時点でDSPはEMIF
およびHPI出力のドライブを回復する。
【0254】HOLD/HOLDAロジックはRESE
T_信号の状態によっては影響されないことに留意され
たい。
【0255】
【表60】
【0256】図52および図53は、図54に示されて
いる16ビットのホスト・ポートを経由する読出しおよ
び書込みサイクルを示す。DSP rev A HPI
は内部データ・メモリに対するホスト・アクセスを提供
する。データ転送が進行する前に、ホストはデータ・メ
モリ・コントローラから許可を得なければならない。デ
ータ・メモリ・コントローラは、応答するのに少し時間
が掛かる可能性がある。それはCPUまたはDMAから
のアクセスに対する同様な要求によって変わる。データ
・メモリに対するアクセスを要求するために、ホストは
HREQ制御信号をアサートする。DMCがホストに対
してアクセスを許可する準備ができているとき、それは
HACK信号をハイにドライブする。その時点で、ホス
トはDSP内部データ・メモリの所有権を得る。データ
転送が完了すると、ホストはHREQ信号のアサートを
解除する。DSPがHREQ信号の状態の変化をセンス
した後、それはHACK信号をローの状態に戻し、内部
データ・メモリの制御をふたたび得る。ハンドシェーク
信号HREQ,HACKのタイミングはCLKOUT1
の立上りエッジに対して相対的に規定されるが、残りの
ホスト・ポート・タイミング・パラメータはCLKOU
T1クロック・サイクルで規定される。
【0257】
【表61】
【0258】データ・メモリ・システムが図55に示さ
れている。データ・メモリ・システムは、4つのバンク
に分割されている64Kバイトのメモリとデータ・メモ
リ・コントローラとを含む。CPUは、8ビット・バイ
ト、16ビット・ハーフ・ワードおよび32ビット・ワ
ードの長さでデータ・メモリをアクセスすることができ
る。データ・メモリ・システムは1つのサイクル中に2
つのメモリ・アクセスをサポートする。これらのアクセ
スは、CPUのLD1またはLD2およびST1または
ST2のデータ・パスからのロードおよびストアの組合
せであることができる。同様に、内部および外部メモリ
の同時アクセスはデータ・メモリ・システムによってサ
ポートされる。また、データ・メモリ・システムはDM
Aおよび外部ホストのアクセスもサポートする。DMA
およびホスト・ポートの動作はこの本の中の他の章にお
いて説明されている。
【0259】データ・メモリは、16ビット幅のメモリ
の4つのバンクに編成されている。このインターリーブ
されたメモリ構成は2つの同時メモリ・アクセスの1つ
の方法を提供する。1サイクル中で発生する2つの異な
る内部メモリ・バンクに対する2つの同時アクセスは、
最高のアクセス・スピードを提供する。同じ内部メモリ
・バンクに対する2つの同時アクセスは、CPUを1サ
イクルの間ストールし、2サイクル中で2つのアクセス
を提供する。同じ内部メモリ・バンクに対する同時のロ
ードおよびストアのために、そのロードはストアの前に
サービスされる。
【0260】2つの同時アクセスが同じメモリ・バンク
に対して行われるとき、メモリ・バンク衝突が発生す
る。メモリ・バンク衝突が発生すると、データ・メモリ
・コントローラは、CPUをストールさせ、そのアクセ
スを直列化し、各アクセスを別々に実行しなければなら
ない。2つの同時アクセスが衝突するかどうかは、各ア
クセスのサイズおよび各アクセスのアドレスによって変
わる。図56は、CPUデータ・パス(LD1/ST1
およびLD2/ST2)が同じサイクル内で内部データ
・メモリをアクセスしようとした場合に衝突するアクセ
スの異なる組合せを示す。1つのデータ・パスのみがア
クセスを行う場合、バンク衝突は発生しない。2つの同
時アクセスが発生した場合でも、1つが内部データ・メ
モリに対して、もう1つが外部メモリに対して発生した
場合は、バンク衝突は発生しないが、データ・メモリ・
コントローラは外部アクセスが完了するまでCPUをス
トールさせる。
【0261】データのエンディアン性 バイト・アドレス可能なマイクロプロセッサにはデータ
の順序に対する次の2つの標準が存在する。 ‐ リトル・エンディアン ‐ ビッグ・エンディアン ワードおよびハーフ・ワード・データがメモリにある時
のバイトの順序は、リトル・エンディアンおよびビッグ
・エンディアン・データに対して同じである。 リトル・エンディアン ‐ リトル・エンディアンのバイト順序は、アドレスが
「xxxx xx00」であるバイトをワードの最下位
位置(リトル・エンド)に置く。 ‐ リトル・エンディアン・データは最下位バイトのバ
イト・アドレスによってアドレスされる。
【0262】ビッグ・エンディアン ‐ ビッグ・エンディアンのバイト順序は、アドレスが
「xxxx xx00」であるバイトをワードの最上位
位置(ビッグ・エンド)に置く。 ‐ ビッグ・エンディアン・データは最上位バイトのバ
イト・アドレスによってアドレスされる。
【0263】DSPは、他のプロセッサと共有される互
換性のあるデータ空間を持つために、ビッグ・エンディ
アンまたはリトル・エンディアン・データのいずれにで
もアクセスすることができる。制御ステータス・レジス
タ(CSR)のENビットがDSPのデータ・エンディ
アン性を決定する。制御ステータス・レジスタのENビ
ットは、CPUリセット時にデータ・エンディアン性を
設定する信号の値をラッチする。ENビットは読出し専
用であり、CPUの外部でロードまたはストアされるデ
ータには影響しない。CPUは、データを適切なデータ
信号線上に置き、ENビットによって指定されているC
PUの外部のビッグ・エンディアンまたはリトル・エン
ディアン・データ・アクセスのいずれに対しても適切な
バイト・ストローブ信号を活性化する。
【0264】表32は、メモリ内のデータ・ワードのど
のビットがビッグまたはリトル・エンディアン・データ
からのすべての可能なデータ・ロードに対してデスティ
ネーション・レジスタのどのビットにロードされるかを
示す。メモリ内のデータは、第1行のLDW命令からの
レジスタ結果にあるのと同じデータであると仮定され
る。
【0265】
【表62】
【0266】表33は、レジスタのどのビットがビッグ
およびリトル・エンディアン・データからのすべての可
能なデータ・ストアに対するデスティネーション・メモ
リ・ワードのどのビットに格納されるかを示す。ソース
・レジスタのデータは、第1行のSTW命令からのメモ
リ結果にあるのと同じデータであると仮定される。
【0267】
【表63】
【0268】ペリフェラル・バスDSPは、そのデバイ
ス上のメモリ・マップド・ペリフェラルとの間でデータ
を転送するペリフェラル・バスも制御する。これらのペ
リフェラルとしては、DMA、外部メモリ・インターフ
ェースおよびホスト・ポートがある。ペリフェラル・バ
スを通じてアクセスされるアドレスは、これらのペリフ
ェラルを構成するために使われる。ペリフェラル・バス
のアクセスはワード幅だけが可能であり、CPUのデー
タ・パスB上で実行されなければならない。
【0269】DSPプログラム・メモリ・システムは、
64Kバイトのメモリとメモリ/キャッシュ・コントロ
ーラとを含む。プログラム・メモリは、64Kバイトの
内部プログラム・メモリまたはダイレクト・マップド・
プログラム・キャッシュとして動作することができる。
プログラム・メモリ・システムが動作する4つのモード
がある。それらは、プログラム・メモリ・モード、キャ
ッシュ・イネーブル・モード、キャッシュ凍結モードお
よびキャッシュ・バイパス・モードである。
【0270】図57はCPU用の制御ステータス・レジ
スタ(CSR)を示す。プログラム・メモリが動作する
モードは、CSRのプログラム・キャッシュ制御(PC
C)フィールド(ビット5〜7)によって決定される。
【0271】表34は、TMS320C6201プログ
ラム・メモリ・システムによってどのPCC値がサポー
トされているかを示す。
【0272】
【表64】
【0273】CSRのPCCフィールドが000bの値
を含むとき、プログラム・メモリは有効なプログラム・
メモリ空間としてマップされる。プログラム・メモリ・
マップを構成するアドレスは、そのデバイス上のMAP
_BOOTピンの値によって変わる可能性がある。表3
5は、そのマップ・モード値に従ったプログラム・メモ
リ・モードでのオンチップ・プログラム・メモリ用のメ
モリ・アドレス空間を示す。
【0274】
【表65】
【0275】DMAは、プログラム・メモリのアドレス
された空間の中にデータを書き込むことができる。DM
Aは、プログラム・メモリ・モードでは内部プログラム
・メモリから読み出すことはできない。
【0276】リセット時に、プログラム・メモリ・シス
テムはプログラム・メモリ・モードになっている。これ
によって、DMAが内部プログラム・メモリにコードを
ブートロードすることができる。コードのブートロード
の詳細については、DMAの章を参照されたい。
【0277】プログラム・メモリ・モードにおいて、S
TP命令の実行によって行われるプログラムの格納は、
アドレスされたメモリ・ロケーションに対して適切な値
をストアする。
【0278】CSRのPCCフィールドがキャッシュ・
モード値を含むとき、プログラム・メモリは外部プログ
ラム・データをキャッシュするために使われる。そのメ
モリは、有効なメモリ空間ではなくなり、直接アドレス
することはできない。したがって、DMAはどのキャッ
シュ・モードにおいても内部プログラム・メモリに読み
書きすることはできない。TMS320C6201プロ
グラム・キャッシュに実装されているキャッシュ方式
は、外部プログラム・メモリ・アドレスのキャッシュ・
メモリ・アドレスへの直接マッピングである。これは、
任意の外部アドレスが1つだけのキャッシュ・ロケーシ
ョンにマップし、64Kバイトだけ離れているアドレス
が同じキャッシュ・ロケーションにマップすることを意
味する。プログラム・キャッシュは256ビットのフレ
ームに編成されている。したがって、各フレームは1つ
のフェッチ・パケットを保持する。キャッシュは204
8個のフェッチ・パケットを記憶する。
【0279】任意のキャッシュ・モードにおける外部メ
モリへのプログラムの格納は、最初に、ターゲット・ア
ドレスに直接マップされているキャッシュ・フレームの
データをキャッシュする。これは、キャッシュ内のデー
タ・コヒーレンシーを確保するために行われる。次に、
そのデータは、アドレスされたロケーションにある外部
メモリに書き込まれる。そのアドレスがふたたびアクセ
スされたとき、キャッシュ・ミスが発生して、その記憶
されたデータが外部メモリからロードされるようにな
る。
【0280】CSRのPCCフィールドが値010bを
含むとき、プログラム・メモリはキャッシュとしてイネ
ーブルされている。プログラム・メモリ・モードからキ
ャッシュ・イネーブル・モードへの変化時に、プログラ
ム・キャッシュはフラッシュされる。キャッシュをフラ
ッシュするためにDSPによってサポートされる唯一の
方法は、プログラム・メモリ・モードからキャッシュ・
イネーブル・モードへ変更することである。キャッシュ
・イネーブル・モードにおいては、アドレスの初期プロ
グラム・フェッチによってキャッシュ・ミスが発生する
ことになる。キャッシュ・ミスにおいて、データは、外
部プログラム・メモリからロードされ、内部キャッシュ
・メモリに格納され、次にCPUによって実行される。
キャッシュされたアドレスからのそれ以降の読出しは、
キャッシュ・ヒットを発生し、そのデータは内部キャッ
シュ・メモリからロードされる。
【0281】CSRのPCCフィールドが値011bを
含むとき、プログラム・キャッシュは凍結されている。
キャッシュが凍結されている間、キャッシュはその現在
の状態を保持している。凍結されたキャッシュに対する
プログラム読出しは、イネーブルされたキャッシュに対
する読出しと同じであるが、キャッシュ・ミスにおいて
外部メモリ・インターフェースから読まれたデータはキ
ャッシュには格納されない。同じアドレスからのそれ以
降の読出しもキャッシュ・ミスを発生し、そのデータは
ふたたび外部メモリからフェッチされる。キャッシュ凍
結モードは重要なプログラム・データがキャッシュに上
書きされないことを確保するために使われるが、最適コ
ード性能より劣ることになる可能性がある。
【0282】CSRのPCCフィールドが値101bを
含むとき、プログラム・キャッシュはバイパスされる。
キャッシュがバイパスされるとき、プログラム読出しは
外部メモリからデータをフェッチする。そのデータはキ
ャッシュ・メモリには格納されない。キャッシュ凍結と
同様に、キャッシュ・バイパスにおいてはキャッシュは
その状態を保持している。このモードは、外部プログラ
ム・データがフェッチされることを確保するために有用
である。プログラム・フェッチはすべて、それらがキャ
ッシュ・ヒットを発生するかどうかにかかわらず、外部
メモリから行われるので、性能は最適ではなくなる。
【0283】外部メモリ・インターフェース(EMI
F)によってDSPを複数のタイプの外部メモリにイン
ターフェースすることが可能である。それらは、同期型
デバイス−このインターフェースは各種のセットアッ
プ、ホールドおよびストローブ幅に適応するようにプロ
グラム可能であると、同期型バーストSRAM(SBS
RAM)−SBSRAMは一旦バーストが開始されると
ゼロ・ウエイト・ステート外部アクセスをサポートする
と、同期型DRAM(SDRAM)と、低価格のブート
ROMメモリ(フラッシュ、EEPROM、EPROM
およびPROM)をサポートするための8ビットおよび
16ビット幅のメモリ読出し機能とである。
【0284】EMIFのその他の機能は、外部メモリの
共有制御用の要求機能と、I/Oデバイスおよび外部メ
モリ・コントローラに対する外部的に制御されたI/O
タイミングとである。
【0285】これらのタイプのアクセスのすべてにおい
て、EMIFは書込みのための8ビット、16ビットお
よび32ビットのアドレス可能性をサポートする。すべ
ての読出しは32ビット転送として実行される。
【0286】EMIFはアクセスのための3種類の要求
を受け取ることができる。その3種類の要求は下記の順
序で優先順位が付けられている。 1)CPUデータ・アクセス 2)CPUプログラム・フェッチ 3)DMAデータ・アクセス
【0287】別のアクセスをサービスするために利用で
きるとき、EMIFは最高優先度の要求タイプにサービ
スする。たとえば、CPUが外部データおよびプログラ
ム・フェッチを要求しているのを止めるまで、DMA要
求はサービスされない。
【0288】図58は、すべてのインターフェースに共
通である外部メモリ信号の図を示す。表37は、示され
た各信号について説明する。表36は、3つの各外部メ
モリ空間(0〜2)によってサポートされるインターフ
ェースを示す。空間0および空間2は各種のインターフ
ェースに使うことが意図されている。空間1は低価格の
ROMメモリなどの非同期メモリに使うことが意図され
ている。
【0289】図58は外部メモリ・インターフェース
(EMIF)のブロック図を示す。
【0290】
【表66】
【0291】
【表67】
【0292】
【表68】
【0293】
【表69】
【0294】DSPはバイ・エンディアン・マシンであ
る。LENDIAN入力ピンは、ハイの場合にリトル・
エンディアンを、ローの場合にビッグ・エンディアンを
選択する。LENDIANは内部データ・メモリおよび
外部インターフェースのエンディアンの両方に影響す
る。内部プログラム・メモリ・アクセスは常に幅が32
ビットより大きいので、エンディアン性は影響しない。
また、すべての外部読出しアクセスは32ビット・アク
セスなので、エンディアン性は読出しアクセスには影響
しない。代わりに、CPUまたはDMAは、アドレス、
アクセス・タイプおよびエンディアン性に依存して必要
とする32ビットの部分を単純に選択する。これと対照
的に、書込みの場合、エンディアン性は、どのBE信号
がアクティブ・ローになるか、外部データ(ED)のど
のビット位置にどの値を入れるかに影響する。図59お
よび図60は、BEおよび外部データ(ED)に及ぼす
アドレスおよびエンディアン性の効果を示す。
【0295】表38は外部メモリ・インターフェース
(EMIF)制御レジスタをリストする。これらのレジ
スタは、32ビット幅であり、CPUからの32ビット
・アクセスによってアクセスされることが期待されてい
る。
【0296】
【表70】
【0297】図61は、SRAM(非同期型)またはフ
ラッシュEEPROMなどの非同期デバイスに付加され
ているEMIFを示す。表39はその非同期インターフ
ェースに対するEMIF信号を説明する。他のROMイ
ンターフェースは、AXWE信号に対する接続なないこ
とを除いて、同様に働く。そのインターフェースは、非
同期型のメモリ・タイプでだけ動作する空間CE1に接
続されているように示されている。空間0または空間2
のいずれかが使われた場合、CE0_TYPEおよびC
E2_TYPE信号が、非同期メモリを示す00bに設
定される。リセット時にはCE1_WIDTH=10b
であり、32ビット幅のデバイスを示す。
【0298】
【表71】
【0299】各メモリ空間レジスタは、外部メモリ空間
のそれぞれに特有のコンフィギュレーション・パラメー
タを設定する。詳しく言えば、このレジスタ内のビット
・フィールドは表40に示されており、図62は信号の
セットアップ、ホールドおよびストローブ幅を各種の外
部ragesに対して設定する。
【0300】空間0および空間2の制御レジスタに対す
るリセット値は、ホールド・タイムのない場合は00で
ある。非同期SRAMSには、一般に、セットアップ・
タイムはない。そのリセット値は空間1の制御レジスタ
に対して11であり、ROMメモリに対する最大のホー
ルド・タイムを提供する。空間1は、ブート・ロード・
コードを自動的にロードするために、DMAによって使
われる。
【0301】
【表72】
【0302】このセットアップおよびホールド・タイム
は、次のフレーミング信号に対して適用される。 ‐ 書込みに対する有効なED ‐ 読出しに対するハイ・インピーダンスのED ‐ EA ‐ CE0/1/2 ‐ BE[3:0] ‐ 非活性ストローブ。非活性ストローブは、読出しの
場合はAXWE、書込みの場合はAXOEである。
【0303】ストローブ・タイムは、連続的な読出しサ
イクルにおいてアクティブ・ストローブおよびアドレス
幅に対して適用される。アクティブ・ストローブは、読
出しの場合はAXOE、書込みの場合はAXWEであ
る。
【0304】図63は非同期書込みのバス・タイミング
を示す。表41は、示されたパラメータを説明する。S
ETUP、STROBEおよびHOLDフィールドはそ
れぞれ、0011b、010bおよび01bであると仮
定される。これらの値はそれぞれ、4、3および2のC
LKOUT1サイクルのセットアップ、ストローブおよ
びホールド幅であることを示す。図63は単一の書込み
の場合を示す。複数の書込みは、連続するストローブの
期間の間にホールド・タイムの後にセットアップ・タイ
ムが入る図の繰返しとして現われる。
【0305】
【表73】
【0306】図64は3つの連続読出しを示す。表41
は、示されているパラメータを説明する。ここでも、S
ETUP、STROBEおよびHOLDフィールドはそ
れぞれ、0011b、010bおよび01bであると仮
定されている。書込みとは対照的に、同じ空間に対する
連続的な非同期読出しは非活性ストローブの期間にはな
らない。これらの値はそれぞれ、4、3および2のCL
KOUT1サイクルのセットアップ、ストローブおよび
ホールドの幅となる。このタイミングによって連続読出
しアクセスを速くすることができる。しかし、空間境界
にまたがるアクセスの遷移がある場合、連続的な書込み
サイクルの場合とちょうど同じように、連続的な読出し
の間にホールドおよびセットアップ時間の干渉が発生す
る。
【0307】空間1を使っているとき、外部インターフ
ェースの幅は読出しアクセスに対して構成可能である。
この機能によって、オンチップ・プログラム・メモリに
ブート・ロードされるコードなどのスタティックな値の
永久記憶のために安価な8ビット幅メモリを使うことが
できる。書込みアクセスはこの機能によっては影響され
ず、上位の24ビットは8ビット幅メモリには書き込ま
れない。また、EAの左シフトは発生しない。
【0308】図65は8ビット幅メモリ用の読出しアク
セスを示す。普通、EA[22:0]は32ビット・ア
ドレスを含む。8ビット幅メモリの場合、論理アドレス
は、“2”だけ左シフトされ、EA上でドライブされ
る。4つの連続した読出しアクセスは、EA[1:0]
が00bから01b、10b、11bと順番にインクリ
メントされて完了する。そのデータは、次に、アセンブ
ルされて32ビット値を形成し、その後、さらに使うた
めにCPUまたはDMAに対して提示される。
【0309】空間1を使っているとき、外部インターフ
ェースの幅は読出しアクセスに対して構成可能である。
この機能によって、オンチップ・プログラム・メモリに
ブート・ロードされるコードなどのスタティックな値の
永久記憶のために安価な16ビット幅メモリを使うこと
ができる。書込みアクセスはこの機能によっては影響さ
れず、上位16ビットは16ビット幅メモリには書き込
まれない。また、EAの左シフトも発生しない。
【0310】図66は16ビット幅メモリ用の読出しア
クセスを示す。論理アドレスは、“1”だけ左シフトさ
れて、EA上でドライブされる。2つの連続したアクセ
スは、EA[0]を“0”から“1”へインクリメント
して完了する。そのデータはアセンブルされて32ビッ
ト・ワードを形成し、その後、さらに使うためにCPU
またはDMAに対して提示される。
【0311】図67はSBSRAMに接続されたEMI
Fを示す。表42はSBSRAMインターフェースに特
有のEMIF信号を説明する。SBSRAMは、空間0
に対してインターフェースされるように示されている。
したがって、リセット時には、TYPE0=10bであ
る。SBSRAMインターフェースは、Micron
(MT58LC32K32)およびNEC(μPD43
1232L)によって製造されているSBSRAMで動
作するように設計されている。他のメーカーのデバイス
も同様に、このインターフェースによって動作すること
ができる。これらのメーカーからのデータ・シートがそ
の他のタイミング情報を提供する。
【0312】初期スタートアップ時の後、SBSRAM
へのアクセスは単一サイクル、0ウエイト・ステートと
なる。最初のアクセスの場合、アドレスが不連続に変化
した場合またはメモリの読出しサイクルと書込みサイク
ルとの切替えが生じた場合、初期スタートアップ・ペナ
ルティは、CPUアクセスの場合においてCPUに対し
てウエイト・ステートを発生する。
【0313】
【表74】
【0314】図68はSDRAMに接続されたEMIF
を示す。表43はSDRAMインターフェースに特有の
EMIF信号を説明する。SDRAMは空間2にインタ
ーフェースされているように示されている。したがっ
て、TYPE2=11bである。このインターフェース
は、TMS626xxx、TMSC627xxxおよび
TMS664xxx(データ・シート番号SMOS18
2C、SMOS688およびSMOS685)などのT
IのSDRAMで動作するように設計されている。この
インターフェースの機能を強化して、SDRAMのバー
スト機能および他の機能を組み込むことができる。その
現在の形式においては、SDRAMインターフェースは
各CPUアクセスに対して16サイクルだけCPUをス
トールさせる。
【0315】
【表75】
【0316】2つのEMIF制御レジスタがSDRAM
インターフェースに影響する。 ‐ EMIF SDRAM制御レジスタ。 ‐ EMIF SDRAMリフレッシュ周期レジスタ。
【0317】図69および表44はSDRAM制御レジ
スタのフィールドを説明する。ビット11:0はSDR
AMデバイスに対する内部のモード・レジスタの等価な
ビットに対応する。ビット19:12は、SDRAMの
速度、CLKOUT2に関連するタイミング・パラメー
タを設定する。予約済みの名前のフィールドおよび値は
このインターフェースの将来の改訂版における追加機能
を提供することになる。
【0318】
【表76】
【0319】EMIF SDRAMリフレッシュ周期レ
ジスタのフィールドが図70に示されており、それは2
段の12ビット・リフレッシュ・カウンタをドライブす
る。SDRAM周期レジスタへの書込み時には、PER
IOD1およびPERIOD0に書き込まれた値がSD
RAMリフレッシュ・カウンタにロードされる。このカ
ウンタはCLKOUT2のレートでデクリメントを開始
する。このカウンタの4つのLSBが“0”になると、
カウンタは8個のMSBの値をデクリメントする。低位
のカウンタには、PERIOD0が同時に再ロードされ
る。リフレッシュ・カウンタの8個のMSBが“0”に
達すると、それらにはPERIOD1が再ロードされ
る。SDRAMインターフェースが初期化されていた場
合、リフレッシュ・サイクルが発生すべきであるときを
示す値がそのカウンタに再ロードされる。初期化が発生
したかどうかにかかわらず、MSBの再ロードによっ
て、CPUに対するXSDINT信号(それはINT1
0にマップされている)が発生される。したがって、こ
のカウンタは汎用のタイマとして再使用することがで
き、その周期は(PERIOD1+1)×(PERIO
D0+1)・CLKOUT2サイクルとなる。
【0320】図71は外部制御インターフェースのブロ
ック図を示す。表45はそのインターフェースに特有の
信号を説明する。外部制御の読出しおよび書込みタイミ
ング図についてはデータ・シートをチェックされたい。
【0321】
【表77】
【0322】外部メモリ・インターフェース(EMI
F)グローバル制御レジスタ図72および表46はEM
IF制御レジスタのフィールドの使用法を説明する。こ
の外部I/Oインターフェースは、EMIFグローバル
制御レジスタのXCE0およびXCE2フィールドがそ
れぞれ設定されるときに、空間0および空間2に対して
使われる。
【0323】
【表78】
【0324】ホールド動作 HOLDおよびHOLDA信号は、外部デバイスが値を
EMIF信号上にドライブする場合のハンドシェークを
提供する。外部デバイスがHOLDをアクティブ・ハイ
にアサートした後、それは、DSPがHOLDA信号を
アクティブ・ハイにアサートするまでの時間待たなけれ
ばならない。この信号はCLKOUT1およびCLKO
UT2以外のすべてのEMIF信号がトライステートに
されたことを示す。EMIFは、そのバスにインターフ
ェースされた他のデバイスにフローティング制御入力が
印加されるのを防ぐために、EMIF上の残りの信号
(プルアップされなければならない信号)を提供しなけ
ればならない。外部デバイスがHOLDをインアクティ
ブ・ローにデ・アサートしてその要求を放棄したとき、
それは、DSPがHOLDAを前のインアクティブ・ロ
ーにデ・アサートするまで待たなければならない。
【0325】ホスト・ポートは16ビット幅のアクセス
・ポートであり、それを通じて、ホスト(外部)プロセ
ッサが内部データ・メモリに対して読出しおよび書込み
を行うことができる。このホスト・ポートは、非同期イ
ンターフェースとして動作し、ハンドシェーク信号を使
ってデータ転送を同期化する。
【0326】図73は、ホストに対するおよび内部デー
タ・メモリに対するホスト・ポートのインターフェース
を示す。表47はホスト・ポート用の外部信号を説明す
る。
【0327】
【表79】
【0328】内部データ・メモリに対するホスト・アク
セス ホスト・ポートを通じての内部データ・メモリに対する
ホスト・プロセッサのアクセスは、次の2つの動作から
構成される。 1)ホストは、HREQ/HACK信号による要求/ア
クノレッジのハンドシェークを実行することによって、
ホスト・ポートについての制御権を獲得しなければなら
ない。 2)アクセスが許可されたとき、ホストは内部データ・
メモリに対する読出しおよび書込み動作を実行すること
ができる。
【0329】内部メモリ・アドレスに対するホスト・ポ
ート・アドレスのマッピングは前に説明されている。
【0330】ホスト要求/アクノレッジのハンドシェー
ク図74は、ホストがホスト・ポートに対してアクセス
権を得るためのハンドシェーク動作を示す。表48は、
その関連付けられたタイミング・パラメータを示す。
【0331】
【表80】
【0332】サイクル3〜10‐ホストのアサート要
求:ホストはHREQ(ホスト要求)入力をアサートす
ることによってアクセスを要求する。その要求はサイク
ル4またはサイクル5においてホスト・ポート・コント
ローラによって認識される。
【0333】ホストの受信アクノレッジ:DMAあるい
はCPUのいずれも内部データ・メモリに対してアクセ
スを実行していないと仮定して、ホスト・ポート・コン
トローラは、ホストがHACK信号を7サイクル後(t
d(REQH‐HACKH))にアサートすることによ
ってホスト・ポートに対するアクセスを持つことを通知
する。CPUまたはDMAのいずれかが内部メモリにア
クセスしている場合、すべてのペンディング・アクセス
が完了するまで、また、新しいアクセスが到着していな
いようになるまで、HACKは遅延される。内部メモリ
に対するインターフェースがパイプライン型であるの
で、これは、DMAまたはCPUが3つの連続したCP
Uサイクルの間どのアクセスも実行できないことを意味
する。
【0334】サイクル11〜i+2‐ホスト・アクセ
ス:アクノレッジを受信してからその要求を解放するま
での間、ホストは内部データRAMに対する読出しおよ
び書込みサイクルを実行することができる(tacce
ss)。この時間の周期についての上限はない。また、
この間、CPUの動作は凍結される。また、DMAも、
それが内部データ・メモリにアクセスしようとしてそれ
を開始していた場合も、凍結される。
【0335】サイクルi+3〜i+9‐ホスト解放要
求:サイクルi+2の間に、ホストはHREQをデ・ア
サートすることによってその要求を解放する。ホスト・
ポート・コントローラはそのイベントをサイクルi+3
またはサイクルi+4において認識する。
【0336】ホストが受信したデ・アサートされたアク
ノレッジ:7サイクル後(td(HREQL‐HACK
L))、アクノレッジはホスト・ポート・コントローラ
によってデ・アサートされる。
【0337】HREQの変化からHACKの変化までの
遅延のために、連続要求の最小間隔(HREQがアサー
トされている)は7サイクルである。
【0338】ホストのデータ・アクセス 図75は読出しおよび書込み動作に対するホスト・ポー
ト信号の図を示す。この図はホスト・ポート読出しの後
にホスト・ポート書込みが続く様子を示す。読出しおよ
び書込み動作の両方に対して、次の制約が存在する。 ‐ HREADおよびHWRITEストローブは最低8
クロック・サイクルの間アクティブ・ローでなければな
らない。 ‐ HREADまたはHWRITEストローブの立上り
からその次のHREADまたはHWRIRE立下りまで
の間に少なくとも4クロック・サイクルなければならな
い。 ‐ HADDRは読出しおよび書込みアクセスのそれぞ
れに対して2クロック・サイクルだけHREADおよび
HWRITEストローブを組み立てなければならない。 ‐ 2つの連続したHWRITEまたはHWRITEス
トローブの立下りの間に少なくとも12クロック・サイ
クルなければならない。したがって、アクセスの最大レ
ートは12クロック・サイクルごとに1つである。
【0339】ホスト・ポートは、HREADの立上りエ
ッジの後、3クロック・サイクルだけバスをハイ・イン
ピーダンスに戻す。ホストは、HWRITEの立下りの
2サイクル前に、HDATA上に値が書き込まれるよう
にセットアップしなければならない。
【0340】ホストは、HWRITEをアクティブ・ロ
ーにアサートすることによって書込みを開始する。
【0341】ホストは、HWRITEが立ち上るまでH
DATA上の値を保持していなければならない。
【0342】リセットの考察 リセットが発生すると、ホスト・ポート・コントローラ
はリセットされる。したがって、リセット後、要求/ア
クノレッジのハンドシェークは、転送が開始できる前
に、再度発生しなければならない。
【0343】DMAの概要 オンチップ・ダイレクト・メモリ・アクセス(DMA)
コントローラの2つのチャネルは、CPUの動作と干渉
することなしに、メモリ・マップの任意のロケーション
に対して読出しまたは書込みを行うことができる。これ
によって、CPUに対するスループットを下げずに低速
の外部メモリおよびペリフェラルにインターフェースす
ることができる。DMAコントローラは、それ自身のア
ドレス・ジェネレータ、ソースおよびデスティネーショ
ン・レジスタと、転送カウンタとを含む。DMAは、ア
ドレスおよびデータ用のそれ自身のバスを備える。これ
によって、メモリとペリフェラルとの間でのデータ転送
がCPUと衝突しないようにしている。DMA動作は、
3個のDSPモジュール(図76参照)のうちの任意の
ものとの間で32ビット・ワードの転送を行う。 ‐ 内部データ・メモリ ‐ 転送のデスティネーションとしてのキャッシュとし
て構成されていない内部プログラム・メモリ(プログラ
ム・メモリへの書込みだけがサポートされる) ‐ EMIF
【0344】DMAコントローラのこの改訂によって、
すべての内部プログラム・メモリ、すべての内部データ
・メモリおよびEMIFにマップされたすべてのデバイ
スにアクセスすることができる。1つの例外はDMAで
あり、DMAはプログラム・メモリを転送のソースとし
て使うことができない。また、それは、キャッシュまた
はメモリマップ型のオンチップ・ペリフェラル・レジス
タとして構成されたメモリにはアクセスすることはでき
ない。
【0345】DMAコントローラには次の特徴がある。 ‐ 2つの独立チャネル ‐ ソースおよびデスティネーション・アドレスは、同
じモジュール内または異なるモジュール内にあってよ
い。これらのアドレスは、独立にプログラム可能であ
り、一定のまま、インクリメントまたはデクリメントを
各転送ごとに行うことができる。 ‐ 転送カウントはプログラム可能である。転送カウン
トが完了すると、DMAは割込みをCPUに送るように
イネーブルすることができる。
【0346】DMAの動作 DMAは、それがアクセスするすべてのモジュールに対
して最低優先度を有する。内部データ・メモリおよび内
部プログラム・メモリに対しては、自分がアクセスした
いメモリに対して転送が起動されていなくなるまで、待
たなければならない。内部メモリに対するDMAのアク
セスはサイクル・スティーリングを実行する。したがっ
て、内部メモリのそれ以降のCPUアクセスがDMAア
クセスによって妨害されることはない。しかし、マルチ
サイクルDMAアクセスが進行中である間にCPUがE
MIFにアクセスする場合、CPUはそのアクセスが完
了するまで待つことになる。
【0347】DMA制御レジスタは、DMAの動作を制
御するために、正しくプログラムされる必要がある。各
DMAチャネルは、表49に示されているような独立の
レジスタ・セットを備えている。
【0348】これらのレジスタは、2ビット幅であり、
CPUからの32ビット・アクセスを経由してアクセス
されることが期待されている。Cを使う場合、これは、
これらのレジスタに対するポインタがint型にキャス
トされなければならないことを意味する。このDMAの
将来バージョンでのソフトウェアの互換性のために、そ
の予約済みのフィールドに書き込むときはリセット値を
書かなければならない。
【0349】
【表81】
【0350】DMAの停止、プログラミングおよび開始 DMAチャネル制御レジスタは、関連付けられたチャネ
ルに対するDMA動作のコンフィギュレーションを行
う。図77および表50はそのレジスタのビット・フィ
ールドを説明する。DMAのコンフィギュレーションを
行うには、DMAチャネルが停止されなければならな
い。START=00bに設定することによって、この
状態を強制的に作ることができる。代わりに、この状態
は、STAT=00bを待つことによって確認すること
ができる。停止したとき、DMAチャネル・ソース・ア
ドレス、デスティネーション・アドレスおよび転送カウ
ンタをそれぞれの所望の値にプログラムする。次に、動
作を開始させるためのSTART=11bを含めた適当
な値をDMAチャネル制御レジスタに書き込む。
【0351】DMAチャネルでのデータの転送 DMAはワード転送を行うのみである。DMAソースお
よびデスティネーション・レジスタの2つのLSBに書
き込まれた非0ビットは、自動的に“0”に設定され
る。また、32ビット転送だけがイネーブルされるの
で、DMAはLENDIAN入力信号によって設定され
るエンディアン性によっては影響されない。
【0352】図78に示されているDMAチャネル転送
カウンタは、DMAチャネルが終了するためのデータ転
送の数を設定する。各転送の書込み部分の完了時に、カ
ウンタは自動的にデクリメントされる。
【0353】
【表82】
【0354】DMAがデータを読み書きするソースおよ
びデスティネーションの設定 DMAチャネル・ソース・アドレス・レジスタ(図7
9)およびデスティネーション・アドレス・レジスタ
(図80)は、DMAがデータを読み出すソースとDM
Aがデータを書き込むデスティネーションとをそれぞれ
決定する。DMAを開始する前にこれらのレジスタにそ
れぞれの所望の値をプログラムしなければならない。D
MAチャネル制御レジスタのSRC DIRおよびDS
T DIRフィールドを設定することによってそれらの
アドレスがインクリメントされるかデクリメントされる
か保持されるかを選択することができる。
【0355】これらのレジスタに関して次のことに注意
する必要がある。 ‐ ビット1:0が“0”。ワードに整列されたデータ
を意味する。 ‐ ビット30:26が“0”。内部プログラム・メモ
リとともに26ビットEMIFバイト・アドレス空間を
カバーするために。 ‐ ビット31が、内部データ・メモリを選択するため
に“1”にセットされ、外部メモリまたはオンチップ・
プログラム・メモリを選択するために“0”にセットさ
れ得る。ビット25:2が26ビット境界を超えてイン
クリメントまたはデクリメントされた場合でも、キャリ
ーがビット31へリップルすることはないことに注意。 ‐ DMAの将来の改訂版とのソフトウェア互換性のた
めに、アドレスが26ビット境界を超えてインクリメン
トまたはデクリメントしないことを確保することのほ
か、予約済みのフィールドに“0”を書き込まなければ
ならない。
【0356】DMAの割込み DMAチャネル制御レジスタのTCINTビットがイネ
ーブルされている場合、最後の転送の書込み部分の完了
後にカウンタが“0”に達すると、CPUに対して割込
みが発生される。チャネル0およびチャネル1に対する
DMA割込みDMAINT0,DMINT1はそれぞ
れ、CPUの割込みINT8,INT9にマップされ
る。
【0357】ブート・ロードの動作 DMAブート動作によって、空間1にマップされた8、
16または32ビットのメモリに格納されたプログラム
で内部プログラム・メモリをロードすることができる。
その転送が発生している間に、CPUは内部的にリセッ
ト状態に保たれる。その転送が完了した後、CPUは、
解放され、アドレス0から実行を開始する。
【0358】リセット時にMAP_BOOT、BOOT
_SRCおよびBOOT_CNT入力ピンを適切な値に
設定することによって、DMAが自動的に内部プログラ
ム・メモリをブート・ロードできるようにすることがで
きる。CE1_WIDTHピンは、空間1にマップされ
たメモリの幅を選択する。これらのピンは、ホスト・ポ
ートのHAピンと共有される。リセット時にこれらのピ
ンを適切な値にドライブしなければならない。
【0359】内部メモリをブート・ロードするためのD
MAのコンフィギュレーション 次のように設定することによって、DMAチャネル0を
通じてDMAが内部プログラム・メモリをブート・ロー
ドするように構成することができる。 ‐ 入力ピンMAP_BOOT=1に設定する。これは
内部プログラム・メモリをアドレス0にマップする。D
SPメモリ・マップについての詳細はその特定のデバイ
ス用のデータ・シートを参照されたい。 ‐ 表51に示されているように入力ピンBOOT_S
RC[2:0]=001bに設定する。DMAブート・
ロード動作をイネーブルする。BOOT_SRC[2:
0]=000bの場合、DMAはブート・ロードしない
ようにディスエーブルされ、CPUはアドレス0から実
行を開始する。BOOT_SRC[2:0]の他の値は
すべて無効である。
【0360】
【表83】
【0361】ブート・ロードするワードの数の選択 ブート・ロードするワードの数がブート転送カウント
(BOOT_CNT[2:0])入力ピンによって設定
される。ブート・ロードするワードの数は、表52に示
されているように、次のようになる。 2(BOOT_CNT+8)
【0362】
【表84】
【0363】非同期メモリ幅の選択 ブート・メモリのソースは、常に、外部CE1空間であ
るように構成される。CE1空間は、幅が8、16また
は32ビットの非同期メモリを含むことが期待されてい
る。その幅はCE1_WIDTH[1:0]入力ピンを
経由して選択される(表53)。
【0364】
【表85】
【0365】パワー・ダウン制御 DSPは3つのパワー・ダウン・モードすなわち、Id
le1、Idle2およびIdle3をサポートする。
この3つのパワー・ダウン・モードを開始するには、図
81に示されているように、制御ステータス・レジスタ
(CSR)のPWRDフィールドの下位3ビットを使
う。これらのビットの1つを設定することによって、そ
のビットに対応するパワー・ダウン・モードが開始され
る。これらのPWRDビットの2つ以上がセットされた
場合、上位ビットによって選択されるパワー・ダウン・
モードがイネーブルされる。
【0366】パワー・ダウン・モードにあるとき、DS
Pは、RESET、イネーブルされている割込みまたは
任意の割込みによって再活性化することができる。制御
ステータス・レジスタのPWRDフィールドのビット3
またはビット4が呼び覚まし条件を設定する。ビット3
およびビット4がセットされている場合、そのデバイス
は、イネーブルされた割込みによってパワー・ダウン状
態から呼び覚まされる。
【0367】パワー・ダウン・モード・ビット(0、1
または2)および呼び覚ましビット(3または4)は、
正しいパワー・ダウン動作を確保するために同じMVC
命令によってセットされなければならない。
【0368】パワー・ダウン・モード 3つのパワー・ダウン・モードの任意のモードに対し
て、CPUの内容は維持される。これによって、パワー
・ダウン・モードが終了したときに動作を継続すること
ができる。パワー・ダウン状態がイネーブル割込みによ
って終了される場合、DSPは、呼び覚ましにおける割
込みサービス・ルーチンに入り、そこからパワー・ダウ
ン命令の後の命令へ戻る。パワー・ダウン状態がディス
エーブルされた割込みによって終了させられる場合、D
SPはパワー・ダウン命令の後の命令から(呼び覚まし
時)動作を開始する。
【0369】Idle1モード CSRのPWRDフィールドのビット0に“1”を書き
込むことによって、DSPがIdle1モードに置かれ
る。このモードにおいては、すべてのCPU活動が停止
される。システム・クロックおよびペリフェラルは動作
し続け、CLKOUTピンはアクティブのままになって
いる。したがって、ペリフェラルは、割込みを発生する
ことによって、CPUをそのパワー・ダウン状態から呼
び覚ますことができる。
【0370】Idle2モード CSRのPWRDフィールドのビット1に“1”を書き
込むことによって、DSPはIdle2モードに置かれ
る。Idle2モードにおいては、CPUおよびオンチ
ップ・ペリフェラルは停止される。オンチップ・ペリフ
ェラルが停止されるので、DSPを呼び覚ますための割
込みを発生させるためにそのペリフェラルを使うことは
できない。外部割込みまたはRESETだけがDSPを
Idle2モードに呼び覚ますことができる。
【0371】Idle3モード CSRのPWRDフィールドのビット2に“1”を書き
込むことによって、DSPはIdle3モードに置かれ
る。Idle3モードにおいては、CPU、オンチップ
・ペリフェラルおよびPLLは不活性状態になる。Id
le3はDSPの完全シャットダウンのために使われ
る。Idle3モードから脱出させるには、そのデバイ
スをリセットしなければならない。
【0372】表54は本発明のDSPの代表的な応用の
いくつかをリストしている。これらのDSPは、従来の
信号処理の問題に適応可能な方法を提供する。また、そ
れらは、複数の動作を同時に実行する必要がしばしばあ
る複雑なアプリケーションもサポートする。
【0373】
【表86】
【0374】1600MIPS(million in
structions per second)までの
性能および超高効率Cコンパイラの性能によって、本発
明のディジタル信号プロセッサ(DSP)は、システム
設計者がそれぞれの製品を差別化するための無限の可能
性を提供する。高性能と使い易さと程よい価格とによっ
て、多チャネル、多機能の次のようなアプリケーション
に対する最適なソリューションがこのDSPによって提
供される。 ‐ プールされたモデム ‐ 無線基地局 ‐ リモート・アクセス・サービス(RAS) ‐ ディジタル加入者ループ(DSL)システム ‐ ケーブル・モデム ‐ 多チャネル電話システム。
【0375】また、これは次のような刺激的な新しいア
プリケーションに対する最適ソリュションでもある。 ‐ 顔および手/指紋の認識を備えたパーソナル化され
たホーム・セキュリティ ‐ GPSナビゲーションによる究極の航法制御および
事故防止 ‐ リモート医療診断。
【0376】そのデバイスは固定小数点DSPである。
これらのデバイスは、先進のVLIWアーキテクチャを
採用するための業界における最初のDSPであることを
特徴とする。そのアーキテクチャによって、命令レベル
の並列性の増加を通じて高性能を達成するために先進の
VLIWを使う最初の棚卸しのDSPとなる。従来のV
LIWアーキテクチャは、並列に実行する複数の実行ユ
ニットから構成され、単一クロック・サイクルの間に複
数の命令を実行する。並列性は、極端に高い性能を得る
ためのキーであり、これらの次世代のDSPが従来のス
ーパ・スケーラ設計の性能を十分に超えるものとなるた
めのキーである。このDSPは高度に決定論的なアーキ
テクチャであり、命令がフェッチされ、実行されまたは
格納される方法およびタイミングについての制限事項が
ほとんどない。このアーキテクチャ的な柔軟性によっ
て、そのコンパイラの飛躍的な効率レベルが達成されて
いる。先進の機能として次のようなものがある。 ‐ 命令パッキング ‐ 条件付き分岐 ‐ 可変幅命令 ‐ プリフェッチされた分岐。
【0377】これらのすべての機能によって、VLIW
マシンの歴史的な実装に関連する従来の問題が解消され
る。
【0378】200MHzにおいて、デバイスは5ns
のサイクル・タイムで動作し、8個までの32ビット命
令を1サイクルごとに実行する。このデバイスのコアC
PUは32個の32ビット・ワード長の32個の汎用レ
ジスタおよび次の8個の機能ユニットから構成される。 ‐ 2つの乗算器 ‐ 6個のALU。 DSPの特徴としては次のようなものがある。 ‐ 2個の乗算器と6個の算術演算ユニットとを含む8
個の機能ユニットを備えた先進のVLIW CPU。
【0379】代表的なDSPの10倍に達する性能を得
るために、1サイクル当り8個までの命令を実行する。
【0380】短い開発時間の間に高度に効率的なRIS
Cの様なコードを開発することができる。 ‐ 命令パッキング 直列または並列に実行される8個の命令に対して等価的
なコード・サイズを与える。コード・サイズ、プログラ
ム・フェッチおよび消費電力を削減する。 ‐ 100%条件付き命令 費用の掛かる分岐を削減する。より高い性能を維持する
ために並列性を増加する。 ‐ 高度に独立の機能ユニット上でプログラムされたよ
うにコードが実行する。DSPベンチマーク・スイート
上の業界で最も効率の良いCコンパイラ。高速開発時間
のための業界最初のアセンブリ・オプティマイザ。 ‐ 8/16/32ビット・データ・サポート、各種ア
プリケーションに対する効率の良いメモリ・サポートを
提供する。 ‐ ボコーダおよび他の計算集中型のアプリケーション
用のより高い精度を提供する40ビットの算術演算オプ
ション。 ‐ サチュレーションと正規化とが主要な算術演算のた
めのサポートを提供する。 ‐ ビット・フィールド操作と命令抽出、セット、クリ
アおよびビット・カウントが、制御およびデータ操作ア
プリケーションに見出される共通の動作をサポートす
る。各種のメモリおよびペリフェラル・オプションが利
用できる。 ‐ 高速アルゴリズム実行のための大容量オンチップR
AM ‐ 32ビットの外部メモリ・インターフェースが、広
範囲の外部メモリ要求および最大のシステム性能を実現
するためのSDRAM、SBSRAM、SRAMをサポ
ートする。 ‐ ホストがオンチップ・メモリにアクセスするための
16ビットのホスト・ポート。 ‐ CPU割込みを最小化して外部メモリ/ペリフェラ
ルに効率的にアクセスするためのブート・ローディング
機能付きの2つのダイレクト・メモリ・アクセス(DM
A)チャネル。 ‐ 遠隔通信の幹線および/または効率的なプロセッサ
間通信に対する単純化されたインターフェース用の2つ
の機能強化されたバッファ付きシリアル・ポート(EB
SP)。 ‐ アルゴリズムを簡単に実装できる2つの32ビット
・タイマ。
【0381】プロセッサ11に対する改善によって可能
となった処理の構成およびコンポーネント回路を含んで
いる創造的なシステムが、次に説明される。汎用ディジ
タル信号処理アプリケーションに対して、これらのシス
テムは、畳み込み、相関、ヒルベルト変換、高速フーリ
エ変換、適応型フィルタリング、ウィンドウィングおよ
び波形発生を有利に実行する。あるケースにおいて上記
汎用アルゴリズムを伴う他のアプリケーションとして
は、音声メール、音声ボコーディング、音声認識、話者
検証、音声強化、音声合成およびテキストから音声への
変換システムなどがある。
【0382】本発明による計装は、本発明が適切に利用
されるアプリケーションに対して、改善されたスペクト
ラム・アナライザ、ファクンション・ジェネレータ、パ
ターン・マッチング・システム、地震処理システム、過
渡解析システム、ディジタル・フィルタおよびフェーズ
・ロック・ループを提供する。
【0383】本発明による自動車の制御およびシステム
は、エンジン制御、振動解析、アンチスキッド・ブレー
キング制御、適応ライド制御、音声コマンドおよび自動
車のトランスミッション制御を適切に提供する。
【0384】海軍、空軍および陸軍の分野においては、
グローバル・ポジショニング・システム、プロセッサに
よってサポートされたナビゲーション・システム、レー
ダ追跡システム、プラットホーム安定化システム、ミサ
イル誘導システム、安全な通信システム、レーダ処理お
よび他の処理システムを提供するために、本発明に従っ
て提供され改善された創造的なシステムがある。
【0385】本発明によるさらに他のシステムとして
は、コンピュータのディスク・ドライブ・モータ・コン
トローラ、プリンタ、プロッタ、光ディスク・コントロ
ーラ、サーボ機構制御システム、ロボット制御システム
・レーザ・プリンタの制御およびモータの制御などが一
般的に含まれている。これらの制御システムのいくつか
は工業的環境、たとえば、ロボットのコントローラ、自
動組み立て装置および検査機器、産業用ドライブ、数値
制御装置、コンピュータ化されたパワー・ツール、セキ
ュリティ・アクセス・システムおよび電力線モニタなど
において適用される。
【0386】ここで開示された内容および原理に従って
考えられる遠隔通信の発明としては、エコー・キャンセ
ラ、ADPCMトランスコーダ、ディジタルPBX、回
線リピータ、チャネル・マルチプレクサ、モデム、適応
イコライザ、DTMFエンコーダおよびDTMFデコー
ダ、データ暗号化装置、ディジタル・ラジオ、セルラ電
話、セルラ電話の基地局、ファックス・マシン、ラウド
スピーカ電話、ディジタル音声補間(DSI)システ
ム、パケット交換システム、ビデオ会議システムおよび
スペクトル拡散通信システムなどがある。
【0387】グラフィック画像の分野においては、ここ
に開示された原理、デバイスおよびシステムに基づいた
さらに他の発明としては、光学式文字認識装置、三次元
回転装置、ロボット・ビジョン・システム、画像転送お
よび圧縮装置、パターン認識システム、画像強化装置、
類似型の処理システム、ワークステーションおよびアニ
メーション・システムおよびディジタル・マッピング・
システムなどがある。
【0388】本発明に従ってさらに考えられる医学分野
での発明としては、補聴器、患者監視装置、超音波機
器、診断ツール、自動化された人工器官および生命維持
監視装置、などがある。本発明による消費者製品として
は、スタジオおよびテレビジョン局において使われるハ
イ・デフィニション・テレビジョン受像機、および送信
機器などのハイ・デフィニション・テレビジョン・シス
テムがある。さらに消費者用の発明としては、ミュージ
ック・シンセサイザ、ソリッド・ステートの応答マシ
ン、レーダ検出器、パワー・ツールおよび玩具およびゲ
ームなどがある。
【0389】ここで考えられている本発明のシステムの
側面は、システム・アーキテクチャ、システム性能、シ
ステム信頼性および経済性の改善の利点を提供すること
が強調される。
【0390】たとえば、図82において、本発明による
創造的な産業用プロセスおよび保護制御システム300
は、特定の工業環境にとって重要な物理的変数を検出す
るための工業用センサ301,303を含む。センサ3
01,303からの信号は図1の信号プロセッサ・デバ
イス11に提供される。インターフェース305は、レ
ジスタ・ロケーションA,B,C,D,E,F,G,H
とドライバ(図示せず)とを含む。レジスタ・ロケーシ
ョンは、ドライバおよび各回線307を経由して、モー
タ311によってドライブされた工業用プロセス装置
と、リレー313によって制御されたリレー動作装置
と、ソレノイド・バルブ315などの各種のバルブとに
接続される。
【0391】工業用プロセスおよび保護制御環境におい
ては、各種エンジニアリングおよび経済的な諸事項が、
相互に関連した目的で作用する。工業用プロセスの速度
すなわちスループットを高める必要がある場合、センサ
301,303によって検出されるようなリアル・タイ
ムで発生している比較的急速な変化の意味を解釈するた
めに、デバイス11の処理機能について重い負荷が課さ
れる。一方、センサ301,303によって検出される
実世界の状態に応答する必要のある制御機能も迅速に得
られなければならない。有利なことに、複数の機能ユニ
ットの追加によって、デバイス11におけるデマンドの
衝突を解決することができる。その際、デバイス11が
単一の半導体チップとして製造されているとき、追加の
コストは無視できる程度である。この方法で、工業的処
理速度、保護制御の迅速性および制御の精度がかなり向
上される。
【0392】図83において、発明の自動車321は、
車輪および車軸が取り付けられているシャーシ323
と、エンジン325と、サスペンション327と、ブレ
ーキ329とを含む。自動車のボディー331は、シャ
ーシ323に相対的なサスペンションが有利に提供され
る客室を定義する。
【0393】アクティブ・サスペンション335はスプ
リングおよび吸収材のサスペンション技法を強化し、ビ
ットA,B,C,D,E,F,G,H,I,J,K,
L,M,Nに対するロケーションを備えているインター
フェース341を経由して制御される。プロセッサ34
3は、図1に開示されているタイプの計算ユニットを利
用し、データ・バス351Dおよびプログラム・データ
・バス・361Dに接続されている少なくとも1つのA
LUを含む。サスペンション335、エンジン動作およ
びアンチスキッド・ブレーキングの機能をそれぞれ監視
するセンサ371,373,375を含む多くのセンサ
がある。
【0394】エンジン制御システム381はインターフ
ェース341のいくつかのロケーションに接続されてい
る。また、アンチスキッド・ブレーキング制御システム
383はインターフェース341の他のビットに接続さ
れている。自動車の信頼性、安全性、乗客の快適性およ
び経済性についての多くの考慮事項が、従来の自動車シ
ステムに重い要求を課している。
【0395】図83の発明においては、自動車321
は、本発明の極端に柔軟性のある並列性および制御の利
点のお陰で、これらの分野のすべてにおいて改善されて
いる。
【0396】図2および図3のシステムおよびここに記
述されている他のシステムにおいて利用されているデバ
イス11などのデバイスは、デバイスの性能向上の問題
に対処するだけでなく、ユーザの総合のシステム性能お
よびコストを決定する工業システムの問題も解決する。
【0397】好適な実施形態のデバイス11は、命令を
5ナノ秒で実行し、半導体メーカーにおけるこれからの
改善によってより高い命令の速度も可能となる。オンチ
ップ・プログラム・メモリは、RAMベースであり、安
価な外部メモリからプログラムのブート・ローディング
ができるようになっている。他のバージョンは、さらに
コストを削減するために、適切にROMベースになって
いる。。
【0398】図84の発明のディジタル制御型モータ・
システム400は、図1のデバイス11を備えているデ
ィジタル・コントローラ401を含む。ディジタル・コ
ントローラ401は、出力u(n)を0次ホールド回路
ZOH403に供給する。ZOH403は、工業機械、
家庭用器具、軍用機器または他のアプリケーション・シ
ステム環境におけるDCサーボモータ405に制御出力
u(t)を供給する。モータ405とディスク・ドライ
ブ406との接続が図84に示されている。
【0399】入力u(t)に対するサーボモータ405
の動作応答が、y(t)で示されている。センサ407
は、モータ出力y(t)に対するトランスデューサであ
り、サンプルされてディジタル化された出力y(n)を
サブトラクタ411に供給するサンプラ409に出力を
提供する。また、サンプラ409は、割込み信号線IN
T‐を経由してディジタル・コントローラ401に信号
を送る。人間または自動化された監視制御からの基準入
力r(n)は、ループを閉じるためのさらに1つの入力
として外部的に供給される。デバイス11は、図82に
示されているように、サーボモータ以外に、他の要素の
処理および制御用の高いループ・バンド幅および複数の
機能をコントローラ401に付与する。
【0400】図85において、多変数ステート・コント
ローラ421が、デバイス11のプロセッサを利用して
先進アルゴリズムを実行する。ステート・コントローラ
421は、基準入力r(n)を受け取り、出力u(n)
をモータ423に供給する。複数の電気的変数(位置x
1、速度x2、電流x3およびトルクx4)がステート
・コントローラ421に対して返される。4つの変数x
1〜x4の任意の1つまたはそれ以上(たとえば、線形
の組合せでの)が、各種の動作目的に対して適切に制御
される。このシステムは、速度制御またはトルク制御の
アプリケーションを動作させることができ、ステッパー
・モータおよび可逆モータを回転させる。
【0401】図86において、モータ431の動作が、
サンプラ433によって検出されサンプルされる。デバ
イス11を含むプロセッサ435は、サンプラ433に
よって割込み駆動される。ユニット433によって求め
られた速度情報は、図1での接続において説明されてい
るような改良されたプロセッサ435へ戻される。図1
のプログラム・メモリのソフトウェアは、評価アルゴリ
ズム・プロセス437として実行される。プロセス43
7は、速度、位置および電流の情報をプロセッサ435
のステート・コントローラ・プロセス439に提供す
る。ディジタル出力u(n)がステート・コントローラ
439から出力として0次ホールド回路441に供給さ
れ、0次ホールド回路441はモータ431をドライブ
する。
【0402】モータは、好適には、ブロック431のコ
ア、コイルおよびロータに関連付けられたソリッド・ス
テート電子スイッチ付きブラッシュレスDCモータであ
る。図84〜図86のシステムは、シャフト・エンコー
ダと、光学的およびホール効果・ロータ位置センシング
と、巻き線からの位置のバックemf(逆起電力)セン
シングとを収容する。
【0403】図87において、ロボット制御システム4
51は、ロボット・アーム455の端にモータ駆動の把
握メカニズム453を備える。ロボット・アーム455
は、回転軸457.1,457.2,457.3,45
7.4を持つ構造を備える。センサと高速応答を正確に
制御できるモータとが、関節点459.1,459.
2,459.3,459.4でアーム455上に置かれ
る。
【0404】ロボット・アーム・メカニズム455の正
確な位置決めおよび利用のために、多くのそのようなモ
ータおよびセンサが用意されていることが望ましい。し
かし、センサおよびモータの数が多いと、全体としてシ
ステム上におよびコントローラ461上にデマンドの衝
突が発生する。コントローラ461は、図1のデバイス
11を含めることおよびシステム451の割込み駆動ア
ーキテクチャによって、これらのシステム要求を解決す
る。コントローラ461はI/Oインターフェース46
3と相互に通信し、I/Oインターフェース463はロ
ボット・アーム455に対して並列論理ユニット41に
よるビット操作のほかにアナログからディジタルへの変
換およびディジタルからアナログへの変換を提供する。
インターフェース463は、ナビゲーヨン・モータ46
7とロボット・アーム455および把握メカニズム45
3に関連付けられたセンサとからの位置および圧力の応
答を受け取る。インターフェース463はまた、サーボ
増幅器465を通じて制御コマンドをロボット・アーム
455の各モータ467に供給する。
【0405】コントローラ461は、メモリ467をス
タティックRAM(SRAM)およびプログラム可能な
読出し専用メモリ(PROM)と関連付けている。
【0406】比較的低速のペリフェラル469はコント
ローラ471と関連付けられ、それらはコントローラ4
61のページ境界センシティブ・ウエイト・ステート機
能によって効率的に管理される。また、コントローラ4
61は、安全制御装置475に対して応答するシステム
・マネージャCPU473によって供給されるより高い
レベルのコマンドにも応答する。システム・マネージャ
473はI/OおよびRS232ドライバ475を経由
してコントローラ461と通信する。
【0407】本発明によるディジタル制御システムは、
以前には得られなかった制御の精度、速度および経済性
の性能上の利点を可能にする。別の例としては、ディス
ク・ドライブがスピンドル・モータ・ユニットによって
高速で回転する情報記憶ディスクがある。アクチュエー
タと呼ばれる追加のコントロールが、読出しおよび書込
みヘッド要素を情報記憶ディスクに対して相対的に位置
合わせする。
【0408】好適な実施形態では、システム処理および
診断動作のほかにアクチュエータ・コントロールおよび
スピンドル・モータ・コントロールに対してシングル・
チップのソリューションを提供することもできる。コン
トローラ461に過剰な負荷を掛けずに高度な機能が提
供される。機械的な共鳴を打ち消すために、ディジタル
・ノッチ・フィルタをコントローラ461に実装するこ
とができる。ステート・エスティメータは速度および電
流を評価できる。カルマン・フィルタによってセンサ・
ノイズが減少する。適応制御によって温度変動および機
械的変動が補償される。また、デバイス11は、スピン
ドル・モータ速度制御用のオンチップPWMパルス幅変
調出力も提供する。テープ・ドライブ、プリンタ、プロ
ッタおよび光ディスク・システムにおける類似の機能が
容易に提供される。発明のディジタル・コントロール
は、より高い速度、より精密な速度制御および一般的に
I/O技術におけるより速いデータ・アクセスをほどよ
いコストで提供し、現代の技術水準を進歩させる。
【0409】ミサイル誘導システムにおいては、本発明
の強化された動作機能はミサイル・システムのより正確
な誘導を提供し、それによって、動作目的を達成するの
に必要な高価なミサイルの数を減らす。さらに、等価な
性能をより少ないプロセッサ・チップによって得ること
ができ、したがって、重量が減少し、機能の拡張および
ペイロードの向上が可能となる。
【0410】図88において、本発明による衛星遠隔通
信は、遅延時間が250ミリ秒である衛星送信パスによ
って通信している第1のステーション501,503を
備える。遠隔端の電話機505および近端の電話機50
7がそれぞれ、ハイブリッド509,511によって地
上局501,503に接続されている。ハイブリッド5
09,511は、それぞれの地上局501,503に対
して相対的に8ミリ秒遅れている。したがって、遠隔端
の電話機505と近端の電話機507との間に満足でき
る遠隔通信を提供するためには、エコーの打ち消しが必
要である。さらに、多数の電話通話回路を一度にサービ
スするための機能が必要である。これによって、遠隔通
信機器に極端な処理負荷が課される。
【0411】図89において、好適な実施形態のエコー
・キャンセラ515が、その通信回路の伝送を改善する
ために511などの各ハイブリッドと関連付けられてい
る。デバイス11は、エコー・キャンセリング・アルゴ
リズムを高速に実行するだけではなく、チップ当りのよ
り多くの衛星通信回路を経済的にサービスする。
【0412】別のシステム実施形態は、改良されたモデ
ムである。図90において、モデム送信機としてプログ
ラムされたデバイス11の動作のプロセス・ダイアグラ
ムは、スクランブリング・ステップ525を含み、その
後にエンコーディング・ステップ527が続く。エンコ
ーディング・ステップ527は、直交ディジタル信号I
[nTb ]およびQ[nTb ]を補間プロシージャ52
9,531にそれぞれ提供する。ディジタル変調器の計
算533,535は、その補間された直交信号を三角関
数のコサインおよびサインの値をそれぞれ提供するメモ
リからの監視されている定数と掛け合わせる。次に、そ
の変調された信号は集計ステップ537で集計される。
デバイス11に接続されたD/A変換器は、ステップ5
39で、その変調された信号をディジタルからアナログ
の形式へ変換する。次に、ファクタG1によるゲイン・
コントロールが、モデム送信において実行され、DAA
に送られる。
【0413】図91において、別のデバイス11を使っ
ているモデム受信機が、DAAからのアナログ通信信号
を受信する。アナログ/ディジタル変換器(A/D)5
21は、デバイス11を採用しているディジタル信号プ
ロセッサのためにその情報をディジタル化する。高速の
ディジタル変換は、従来のプロセッサの入力処理に重い
負荷を課している。有利なことに、DSP11は、A/
D521などのディジタイジング要素からの割込みを極
端に効率的にサービスすることができ、同時にモデム・
アルゴリズムを実行するための強力なディジタル信号処
理計算機能を備えている。デバイス11の出力は、出力
D[nT]を供給する汎用の同期型・非同期型受信機・
送信機(USART)523に供給される。
【0414】図92において、図91のシステムによる
モデム受信のプロセス・ダイアグラムは、サンプリング
周波数fsでアナログからディジタルへの変換を行うた
めの信号s(t)を供給すDAAからの受信時に、ファ
クタG2による自動ゲイン・コントロールを含む。その
ディジタル化された信号は、s[nTs]であり、ディ
ジタル・フィルタリング・ステップBPF1,BPF2
の次に個々に自動化されたゲイン・コントロールが続く
ように実装されている第1および第2のバンドパス・フ
ィルタを含むディジタル処理に対して供給される。復調
アルゴリズムは、2つの復調された信号I' [nTs]
およびQ' [nTs]を発生する。キャリア復元のため
に使われるこれらの2つの信号I' およびQ' が復調ア
ルゴリズムに戻される。また、I' およびQ' は、決定
アルゴリズムにも供給され、クロック復元に応答して演
算される。決定アルゴリズムの次に、デコーディング・
プロセス551が続く。デコーディング・プロセス55
1の次にデ・スクランブリング・アルゴリズム555が
続き、それによって、入力信号d[nt]を復元するた
めにPLU41によって集中的なビット操作が行われ
る。
【0415】図92に示されているように、モデム・受
信アルゴリズムの多数のステップが、集中的な数値計算
機能により単一ディジタル信号プロセッサ・デバイス1
1によって有利に実現される。
【0416】図93において、デバイス11を組み込ん
でいる計算装置561が、インターフェース565を経
由してホスト・コンピュータ563と共同動作してい
る。大容量の外部メモリ567がインターフェース56
9によってコンピュータ561に対してインターフェー
スされる。コンピュータ561はペリフェラル・ラッチ
571,573を経由して二方向パルス・コード変調型
(PCM)通信を有利にサポートする。ラッチ571
は、外部装置577のPCM通信を受信するための並列
変換器575にシリアルに結合されている。コンピュー
タ561は、ラッチ573およびパラレル/シリアル変
換ユニット579を経由して通信し、シリアルPCMデ
ータ・ストリームを外部装置577に供給する。
【0417】図94において、ビデオ画像システム60
1は,ROM603およびRAM605によってサポー
トされているデバイス11を含む。データ収集センサ6
07.1〜607.nが変換器609に入力を供給し、
変換器609は大量のディジタル・データをデバイス1
1に供給する。図94は、ALU、レジスタ・アキュム
レータ、乗算器アレイおよびレジスタを強調表示し、ア
ドレッシング・ユニットを含む。コントロール要素61
5は、一般に、図1のデコーダおよびパイプライン・コ
ントローラを表す。オンチップI/Oペリフェラル(図
示せず)がバス617と通信し、非常に多くの高品質の
出力をビデオ・ディスプレイ・ユニット619に供給す
る。監視入力および出力I/O621もデバイス11に
設けられている。
【0418】デバイス11における先進のアドレッシン
グ機能のお陰で、コントロール615は、その出力をレ
ジスタからアドレッシング回路に直接に転送するための
コマンドで動作することができ、その転送の間、任意の
メモリ・ロケーションをバイパスする。メモリ・マッピ
ングのため、図1の計算用コア・レジスタのペアが有利
にアクセスされて、それらの図のレジスタに対する矢印
の方向とは無関係に、データ・パスを経由してそれらの
間のメモリ・バイパス転送を行う。デバイス11の乗算
機能がアドレッシング機能で利用されるので、その回路
は電子的メモリ605に配列を設定し、その中で、その
配列は少なくとも三次元でメモリにアクセス可能なエン
トリーを含む。ビデオ・ディスプレイ619はデバイス
11による多次元配列処理からの結果の出力を表示す
る。もちろん、メモリ605は多次元になっているか、
それ自身が多次元である必要がないことは理解されるべ
きであるが、そのアドレッシングはデバイス11によっ
て迅速に行われ、複数の配列次元をそれぞれ表している
変数によってその情報に直接アクセスできるかのように
オン・デマンドでアクセスできる。たとえば、アドレス
次元A1,A2,A3を備えている三次元の立体配列
は、式N2 ×A3+N×A2+A1に従って適切にアド
レスすることができる。二次元の配列においては、図1
のレジスタからのインデックス・カウントに従った単純
な繰返し加算がアドレッシングの目的に対して十分であ
る。しかし、三次元およびそれより高い次元を扱うため
には、そのプロセスは乗算器の積の機能を導入すること
によってかなり促進される。
【0419】図95および図96は、本発明によるビデ
オ処理システムの機能指向の図およびハードウェア・ブ
ロック指向の図をそれぞれ示す。これらの発明のシステ
ムに対するアプリケーションは、新しいワークステーシ
ョン、コンピュータ・インターフェース、テレビジョン
製品およびハイ・デフィニション・テレビジョン(HD
TV)製品を提供する。
【0420】図95において、ホスト・コンピュータ6
31はデバイス11によってデータ入力を数多くの処理
に対して提供する。ビデオ・ピクセル処理演算633の
次にメモリ制御演算635が続く。ビデオ・ディスプレ
イ用のCRT制御機能637は、数値処理639、ピク
セル処理633およびメモリ制御635によって調整さ
れる。メモリ制御635の動作からの出力は、フレーム
・バッファ・メモリ641に供給されたのち、シフト・
レジスタ643に供給される。フレーム・バッファ・メ
モリおよびシフト・レジスタ641,643は、テキサ
ス インスツルメンツのデバイスTMS4161によっ
て適切に実装される。他のシフト・レジスタ645は、
シフト・レジスタ643からのビデオ情報をカラー・パ
レット647に供給する。カラー・パレット647は、
CRTコントロール637によって制御されるディスプ
レイ649をドライブする。カラー・パレット647に
はTMS34070が適している。
【0421】図96において、ホスト631は、DSP
マイクロプロセッサ653として動作する第1のデバイ
ス11に信号を供給する。DSP653は、PROM、
EPROMおよびSRAMスタティック・メモリを含む
メモリ651によってサポートされる。制御、アドレス
およびデータ情報が、DSP653とGSP(グラフィ
ックス信号プロセッサ)655として動作する第2のデ
バイス11との間の二方向通信経路によって供給され
る。GSP655はカラー・パレット647およびディ
スプレイ・インターフェース657の両方をドライブす
る。インターフェース657はカラー・パレット647
によってさらにドライブされる。ディスプレイCRT6
59はディスプレイ・インターフェース657によって
ドライブされる。一般の図96に示すデバイス11およ
びシステムは必要な機能に適したクロック・レートで動
作することを理解すべきである。デバイス11は、特定
のアプリケーションのために必要な処理速度をサポート
するために、サブミクロンのデバイスとして製造され
る。処理パワーを増加するためのハイ・デフィニション
・テレビジョン装置の要求は、より高いクロック速度を
使うことによるだけでなく、ここに開示された回路の構
造的改良によっても満たされることは考えられる。
【0422】図97において、本発明による自動音声認
識システムはマイクロホン701を備え、その出力がサ
ンプル・ホールド(S/H)回路703によってサンプ
ルされ、その後、A/D回路705によってディジタル
に変換される。割込み駆動高速フーリエ変換プロセッサ
707は、デバイス11を利用して、マイクロホン70
1からのサンプルされた時間領域の入力をその音声の周
波数スペクトルを表すディジタル出力に変換する。プロ
セッサ707は、前述したように、ゼロ・オーバヘッド
割込みコンテキスト・スイッチング機能、条件付き命令
およびメモリ・アドレス空間にマップされた補助アドレ
ス・レジスタによって部分的に非常に効率が高い。
【0423】プロセッサ707は、もう1つのデバイス
11を組み込んだ音声認識DSP709に各スペクトル
を提供する。音声認識用DSP709は、現在知られて
いるまたはその後開発される音声認識アルゴリズムを適
宜実行する。たとえば、テンプレート・マッチング・ア
ルゴリズムにおいては、乗算、加算および最大値または
最小値の決定を含む多数の計算が実行される。デバイス
11は、その並列機能アーキテクチャによって、そのよ
うなアルゴリズムを迅速に実行するのに理想的に適して
いる。認識用DSP709は出力をシステム・バス71
1に供給する。ROM713およびRAM715は、認
識用DSP709により提供されるページ境界上のソフ
トウェア待ち状態のために、システムを効率的にサポー
トする。音声認識用DSP709に応答する音声シンセ
サイザ717からの出力は、ラウドスピーカまたは他の
適切なトランスデューザ71gに供給される。
【0424】システムI/O721は、プリンタ、テー
プ、ハード・ディスクなどのドキュメント作成装置72
3にダウンロードする。ビデオ陰極線管(CRT)ディ
スプレイ725は、図95および図96での接続で説明
されたように、バス711から供給される。キーボード
727は、ときどき与えられる人間の監視入力をバス7
11に提供する。音声認識の工業用および他のプロセス
制御アプリケーションにおいて、さらにもう1つのデバ
イス11を備えた制御インターフェース729がバス7
11に接続され、ビット操作および図82〜図87の原
理および説明に従ってモータ、バルブおよび他のサーボ
機構要素731に出力を提供する。
【0425】音声認識ベースのディジタル・フィルタ補
聴器では、認識用DSP709からの変換された音声
は、D/A変換器735によってディジタルからアナロ
グの形式に変換され、ラウドスピーカ737を通じて出
力される。また、同じブロック701,703,70
5,707,709,735,737のチェインも、音
声認識ベースのイコライゼーション、フィルタリングお
よびバンド幅圧縮に対して遠隔通信において適用でき
る。
【0426】先進の音声処理システムでは、辞書アクセ
ス・プロセッサ739は、音声認識用DSP709の出
力から得られる音素要素についてシンボリック操作を実
行し、適切な辞書アクセス・アルゴリズムに従って綴
り、ワードおよび文章を作成する。
【0427】トップ・ダウン・プロセッサ741は、あ
る場合において音響入力に含まれた情報を音声のあいま
いさの分解能が上回るという原理に基づいたトップ・ダ
ウン処理のアルゴリズムを実行する。それに従って、光
センサ743および圧力センサ745などの非音響セン
サが入力システム747に供給され、次に、入力システ
ム747はパターン認識プロセッサ749を割込み駆動
する。プロセッサ749はシステム・バス711に直接
供給し、音声認識、パターン認識および人工機能アプリ
ケーションを強化するためにトップ・ダウン・プロセッ
サ741にもアクセスする。
【0428】デバイス11は、図97の音声認識装置の
あらゆるレベル、たとえば、ブロック707,709,
717,721,725,729,739,741,7
47,749における処理の機能を実質的に強化する。
【0429】図98は、機密通信用の暗号付きボコーダ
・モデム・システムを示す。電話機771は、電話回線
773を介して機密モードで通信する。DSPマイクロ
コンピュータ773は、シリアル・データをブロック7
75に提供するために電話機771に接続される。ブロ
ック775は、ボコーダをディジタル化する機能をセク
ション777において実行し、ブロック781で暗号化
処理を実行する。ブロック779,783におけるモデ
ム・アルゴリズム処理について、図80および図82に
関連して説明される。ブロック783は、A/D、D/
Aユニット785との間でシリアル・データの受け渡し
を行う。ユニット785はアナログ通信をDAA787
に提供する。図1のデバイス11の実質的に強化された
処理機能によってブロック775で必要なチップの数を
減らすことができ、したがって、図98による装置にお
けるコスト削減が可能となる。いくつかの実施形態にお
いては、より進んだ暗号化手順がデバイス11の際立っ
た処理パワーによって容易に実行される。これに従っ
て、図98において、デバイス11は、各機能ブロック
の機能を強化するために、または、より少数のチップで
同等程度の機能を提供して総合製品コストを下げるため
に使われる。
【0430】テキサス インスツルメンツの3つのDS
Pは、TMS 320C1xユーザーズ・ガイド,TM
S 320C2xユーザーズ・ガイドおよび第3世代T
MS320ユーザーズ・ガイドで説明されており、それ
らのすべてを引用によって本明細書の記載に援用する。
また、共通譲渡の米国特許第4,577,282号およ
び第4,713,748号も引用によって本明細書の記
載に援用する。
【0431】本発明は例示した実施形態を参照すること
によって説明されてきたが、この説明は限定の意味で解
釈されることを意図していない。本発明の他の実施形態
のほかに、この例示した実施形態の各種の変更版が当業
者にはこの説明に対する参照によって明らかとなる。し
たがって、添付の請求項が、本発明の範囲内に入るその
ような変更または実施形態をカバーすることが考えられ
る。
【0432】<注意> (C)著作権保有1997年テキサス インスツルメン
ツ インコーポレイテッド。本特許ドキュメントの開示
の一部は著作権保護の対象となる資料を含む。この著作
権の所有者は、特許庁の特許ファイルまたは記録に現わ
れるとき、本特許開示について誰かがファクシミリ複写
することには反対しないが、それ以外の場合には何によ
らず著作権によって保護されている。 <関連出願に対する相互参照>本出願は共願のS.N.
___(TI‐22106),S.N.___(TI‐
22109),S.N.___(TI‐23604),
S.N.___(TI‐24333),S.N.___
(TI‐24334),S.N.___(TI‐243
35),S.N.___(TI‐24942),S.
N.___(TI‐24956),S.N.___(T
I‐25248),S.N.___(TI‐2530
9)およびS.N.___(TI‐25310)に関連
しており、これらはすべて同時に出願され、引用によっ
て本明細書の記載に援用する。
【図面の簡単な説明】
【図1】ディジタル信号プロセッサのブロック図を示
す。
【図2】CPUデータ・パスを示す。
【図3】アドレッシング・モード・レジスタ(AMR)
を示す。
【図4】制御およびステータス・ビットを含んでいる制
御ステータス・レジスタ(CSR)を示す。
【図5】32の汎用入力信号をサポートする汎用入力レ
ジスタ(IN)を示す。
【図6】32の汎用出力信号をサポートする汎用出力レ
ジスタ(OUT)を示す。
【図7】40ビットのデータのためのレジスタ記憶方式
を示す。
【図8】DSPのオペコード・マップを示す。
【図9】フェッチ・パケットの基本フォーマットを示
す。
【図10】Aは完全にシリアルのp個のビットを示す。
Bは完全にパラレルのp個のビットを示す。Cは部分的
にシリアルのp個のビットを示す。
【図11】パイプラインのフェーズを示す。
【図12】分岐命令フェーズを示す。
【図13】クロック・サイクルおよびフェッチ・パケッ
トに基づいたパイプラインの動作を示す。
【図14】フェッチ・パケットnを示し、そのパケット
は3つの実行パケットを含み、その次に6つのフェッチ
・パケット(n+1〜n+6)が続いて示され、各パケ
ットは1つの実行パケット(8個のパラレル命令を含
む)を示す。
【図15】割込みイネーブル・レジスタ(IER)を示
す。
【図16】INT4〜INT15およびNMIのステー
タスを含む割込みフラグ・レジスタ(IFR)を示す。
【図17】IFRの中の割込みを手動でセットまたはク
リアすることができる割込みセット・レジスタ(IS
R)を示す。
【図18】IFRの中の割込みを手動でセットまたはク
リアすることができる割込みクリア・レジスタ(IC
R)を示す。
【図19】テーブル・ロケーションに対するISTBの
関係を示す。
【図20】割込みの戻り点(IRP)を示す。
【図21】NMIの戻り点(NRP)を示す。
【図22】割込みm(INTm)の処理を示す。
【図23】プロセッサ11の高レベルの機能図を示す。
【図24】交番のシェーディングによって示されている
ようなサイズを変化することができる実行パケットを示
す。
【図25】DSPのメモリ・マップを示す。
【図26】アドレッシングの例を示す。
【図27】データがCPUによってバイト単位でアドレ
ス可能であり、アドレスはブロックを通して左から右へ
増加しているデータを示す。
【図28】データがCPUによってバイト単位でアドレ
ス可能であり、アドレスはブロックを通して左から右へ
増加しているデータを示す。
【図29】デバイス・コンフィギュレーション・ピンを
示す。
【図30】RESET時のDC(13‐11)の000
bの値を示す。
【図31】RESET時のDC(31‐11)の001
bの値を示す。
【図32】割込みサービス・テーブルと割込みサービス
・フェッチ・パケットとの関係を示す。
【図33】クロック・モードが2つのCLKMODEピ
ンによって制御されることを示す。
【図34】チップ論理のいくつかまたはすべてをスイッ
チしないように防止することによってデータまたは演算
のコンテキストを失わずに大幅な電力節約が実現できる
ことを示す。
【図35】CLKINのタイミングを示す。
【図36】CLKOUT1のタイミングを示す。
【図37】CLKOUT2のタイミングを示す。
【図38】EMIF信号を示す。
【図39】非同期のメモリ読出しサイクルのタイミング
を示す。
【図40】非同期のメモリ書込みサイクルのタイミング
を示す。
【図41】外部コントローラの読出しサイクルのタイミ
ングを示す。
【図42】外部コントローラの書込みサイクルのタイミ
ングを示す。
【図43】SBSRAMの読出しサイクルのタイミング
を示す。
【図44】SBSRAMの書込みサイクルのタイミング
を示す。
【図45】SDRAMの読出しサイクルのタイミングを
示す。
【図46】SDRAMの書込みサイクルのタイミングを
示す。
【図47】SDRAMの初期化サイクルのタイミングを
示す。
【図48】SDRAMのリフレッシュ・サイクルのタイ
ミングを示す。
【図49】割込みサービスのフェッチ・パケットの実行
開始を示す。
【図50】1クロック・サイクルの間にDSPによって
再度ドライブされるトライステートの信号を示す。
【図51】EMIF(HOLDA以外)およびHPIに
おけるHOLD/HOLDAサイクルのトライステート
のすべての出力信号を示す。
【図52】16ビットのホスト・ポートを経由する読出
しサイクルおよび書込みサイクルを示す。
【図53】16ビットのホスト・ポートを経由する読出
しサイクルおよび書込みサイクルを示す。
【図54】図52および図53の中で使われている16
ビットのホスト・ポートを示す。
【図55】DSPのデータ・メモリ・システムを示す。
【図56】衝突しているアクセスの各種の組合せを示
す。
【図57】CPUに対する制御ステータス・レジスタ
(CSR)を示す。
【図58】外部メモリ・インターフェース(EMIF)
のブロック図を示す。
【図59】BEおよび外部データ(ED)におけるアド
レスおよびエンディアン性の影響を示す。
【図60】BEおよび外部データ(ED)におけるアド
レスおよびエンディアン性の影響を示す。
【図61】非同期デバイスに対して付加されているEM
IFを示す。
【図62】信号のセットアップ、ホールドおよびストロ
ーブの時間幅を示す。
【図63】非同期書込みのバス・タイミングを示す。
【図64】3つの連続した読出しを示す
【図65】8ビット幅のメモリに対する読出しアクセス
を示す。
【図66】16ビット幅のメモリへの読出しアクセスを
示す。
【図67】SBSRAMに接続されているEMIFを示
す。
【図68】SDRAMに接続されているEMIFを示
す。
【図69】SDRAM制御レジスタの中のフィールドを
示す。
【図70】EMIF SDRAMのリフレッシュ周期レ
ジスタの中のフィールドを示す。
【図71】外部制御インターフェースのブロック図を示
す。
【図72】EMIF制御レジスタの中のフィールドの使
用法を示す。
【図73】ホストに対する、そして内部データ・メモリ
に対するホスト・ポートのインターフェースを示す。
【図74】ホストがホスト・ポートに対するアクセスを
得るためのハンドシェーク動作を示す。
【図75】読出しおよび書込みの動作のためのホスト・
ポート信号の図を示す。
【図76】3つのDSPモジュールのどれかとの間の3
2ビット・ワードの転送から構成されているDMA動作
を示す。
【図77】そのレジスタの中のビット・フィールドを示
す。
【図78】DMAチャネルに対するデータ転送が完了す
るためのデータの数をセットで示す。
【図79】DMAチャネル・ソース・アドレス・レジス
タを示す。
【図80】デスティネーション・アドレス・レジスタを
示す。
【図81】3つのパワー・ダウン・モードの起動および
制御ステータス・レジスタ(CSR)の中のPWRDフ
ィールドの3つの下位ビットの使用法を示す。
【図82】改良された工業用プロセスおよび保護制御シ
ステムのブロック図である。
【図83】改良された自動車システムの部分的に画かれ
ている部分ブロックの電気的な図である。
【図84】改良されたモータ制御システムの電気的ブロ
ック図である。
【図85】別の改良されたモータ制御システムの電気的
ブロック図である。
【図86】さらに別の改良されたモータ制御システムの
電気的ブロック図である。
【図87】改良されたロボット制御システムの電気的ブ
ロック図である。
【図88】改良された衛星遠隔通信システムの電気的ブ
ロック図である。
【図89】図88のシステムに対する改良されたエコー
・キャンセリング・システムの電気的ブロック図であ
る。
【図90】改良されたモデム送信機の電気的ブロック図
である。
【図91】図90の改良されたモデム送信機に対するハ
ードウェア・ブロックまたはプロセス・ブロックを等し
く表している電気的ブロック図である。
【図92】改良されたモデム受信機に対するハードウェ
ア・ブロックまたはプロセス・ブロックを等しく表して
いる電気的ブロック図である。
【図93】PCM(パルス符号変調)通信のために接続
されたホスト・コンピュータおよびディジタル信号プロ
セッサを含む改良されたシステムの電気的ブロック図で
ある。
【図94】多次元のアレイ処理を備えた改良されたビデ
オ画像システムの電気的ブロック図である。
【図95】改良されたグラフィックス、画像およびビデ
オ処理のためのハードウェア・ブロックまたはプロセス
・ブロックを等しく表す電気的ブロック図である。
【図96】改良されたグラフィックス、画像およびビデ
オ処理用のシステムの電気的ブロック図である。
【図97】改良された自動音声認識システムの電気的ブ
ロック図である。
【図98】暗号化を備えた改良されたボコーダ・モデム
・システムの電気的ブロック図である。
【符号の説明】
11 マイクロプロセッサ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G05B 7/02 G05B 7/02 A (72)発明者 ナタラジャン セスハン アメリカ合衆国 テキサス州ヒュースト ン,エラ リー レーン 9550,アパート メント ナンバー 408

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 並列データ操作を実行することができる
    第1のセットの機能ユニットと、 並列データ操作を実行することができる第2のセットの
    機能ユニットと、前記第1および第2の機能ユニットを
    接続するデータ相互接続経路と、を含むマイクロプロセ
    ッサ。
  2. 【請求項2】 前記各機能ユニットが一組のレジスタ・
    ファイルを含む、請求項1記載のマイクロプロセッサ。
  3. 【請求項3】 前記データ相互接続経路が前記レジスタ
    ・ファイルの組を接続する、請求項2記載のマイクロプ
    ロセッサ。
  4. 【請求項4】 前記第2および第1の機能ユニットを接
    続する第2のデータ相互接続経路をさらに含む、請求項
    1記載のマイクロプロセッサ。
  5. 【請求項5】 前記各機能ユニットが乗算器を含む、請
    求項1記載のマイクロプロセッサ。
  6. 【請求項6】 前記各機能ユニットが、選択された論理
    および算術演算を実行することができる論理ユニットを
    含む、請求項1記載のマイクロプロセッサ。
  7. 【請求項7】 前記各機能ユニットが、選択された論
    理、算術演算およびシフト操作を実行できる論理ユニッ
    トを含む、請求項1記載のマイクロプロセッサ。
  8. 【請求項8】 前記各機能ユニットが、選択された算術
    演算およびデータ操作を実行することができる論理ユニ
    ットを含む、請求項1記載のマイクロプロセッサ。
  9. 【請求項9】 電話回線に接続するためのアナログ/デ
    ィジタル変換器またはディジタル/アナログ変換器と、 前記変換器に接続された、変調または復調を実行するマ
    イクロプロセッサを含むプロセッサ回路とを具備し、 前記マイクロプロセッサが、 並列データ操作を実行することができる第1のセットの
    機能ユニットと、 並列データ操作を実行することができる第2のセットの
    機能ユニットと、前記第1の機能ユニットと前記第2の
    機能ユニットとの間のデータ相互接続経路とを含む、モ
    デム。
  10. 【請求項10】 シャーシ、車軸および車輪と、 前記車軸の少なくとも1つに結合されたブレーキング・
    システムと、 乗客快適性を規定する自動車ボディと、 前記自動車ボディおよび前記シャーシに関連するサスペ
    ンション・システムと、 前記車軸の少なくとも1つに運動パワーを供給するエン
    ジンと、 電気的ビットによって定義された命令に応答する電子自
    動車制御システムであって、少なくとも前記ブレーキン
    グ・システム、前記サスペンション・システムまたは前
    記エンジンに結合された電子自動車制御システムと、 データ処理回路であって、 並列データ操作を実行することができる第1のセットの
    機能ユニットと、 並列データ操作を実行することができる第2のセットの
    機能ユニットと、 前記第1の機能ユニットと前記第2の機能ユニットとの
    間のデータ相互接続経路とを含むデータ処理回路と、 前記電子自動車制御システムに選択されたビットを供給
    して前記ブレーキング・システム、前記サスペンション
    ・システムまたは前記エンジンのうちの少なくとも1つ
    における変化を生じさせるインターフェースと、を含む
    自動車。
  11. 【請求項11】 プロセス制御システムであって、 前記プロセスの状態に応答するセンサと、 電子指令に対して応答して前記プロセスの少なくとも1
    つのパラメータを変更するために動作するプロセス制御
    要素と、 前記センサおよび前記プロセス制御要素に接続されたデ
    ータ処理回路とを含み、該データ処理回路が、 並列データ操作を実行することができる第1のセットの
    機能ユニットと、 並列データ操作を実行することができる第2のセットの
    機能ユニットと、 前記第1の機能ユニットと前記第2の機能ユニットとの
    間のデータ相互接続経路と、 前記プロセス制御要素に選択された電子指令を供給する
    インターフェースとを含む、プロセス制御システム。
  12. 【請求項12】 データ処理システムであって、 第1の複数の命令を同時にフェッチするフェッチ回路
    と、 第2の複数の命令を同時に実行することができる回路と
    を含み、 前記第2の複数の命令が前記第1の複数の命令より少な
    いか等しい、データ処理システム。
  13. 【請求項13】 データ処理システムであって、 第1の複数の命令を同時にフェッチするフェッチ回路
    と、 第2の複数の命令を条件付きで実行することができる回
    路とを含み、 前記第2の複数の命令は前記第1の複数の命令より少な
    いか等しい、データ処理装置。
JP10048481A 1997-01-24 1998-01-23 マイクロプロセッサ Pending JPH10275080A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US036482 1993-03-24
US3648297P 1997-01-24 1997-01-24

Publications (2)

Publication Number Publication Date
JPH10275080A true JPH10275080A (ja) 1998-10-13
JPH10275080A5 JPH10275080A5 (ja) 2005-08-11

Family

ID=21888834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10048481A Pending JPH10275080A (ja) 1997-01-24 1998-01-23 マイクロプロセッサ

Country Status (3)

Country Link
US (1) US6182203B1 (ja)
EP (1) EP0858039A3 (ja)
JP (1) JPH10275080A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009514726A (ja) * 2005-11-04 2009-04-09 ボーズ・コーポレーション 安全なアクティブサスペンションシステム

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69430018T2 (de) * 1993-11-05 2002-11-21 Intergraph Corp., Huntsville Befehlscachespeicher mit assoziativem Kreuzschienenschalter
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
US6560493B1 (en) * 1999-02-26 2003-05-06 Massachusetts Institute Of Technology Architecture for distributed control of actuator and sensor arrays
US6539467B1 (en) * 1999-11-15 2003-03-25 Texas Instruments Incorporated Microprocessor with non-aligned memory access
US6742083B1 (en) 1999-12-14 2004-05-25 Genesis Microchip Inc. Method and apparatus for multi-part processing of program code by a single processor
US6738884B1 (en) 1999-12-14 2004-05-18 Genesis Microchip Inc. Method and apparatus for processing data with semaphores
US6728853B1 (en) * 1999-12-14 2004-04-27 Genesis Microchip Inc. Method of processing data utilizing queue entry
US6920543B1 (en) * 1999-12-14 2005-07-19 Genesis Microchip, Inc. Method and apparatus for performing distributed processing of program code
US6775757B1 (en) 1999-12-14 2004-08-10 Genesis Microchip Inc. Multi-component processor
US6629187B1 (en) * 2000-02-18 2003-09-30 Texas Instruments Incorporated Cache memory controlled by system address properties
US6574724B1 (en) * 2000-02-18 2003-06-03 Texas Instruments Incorporated Microprocessor with non-aligned scaled and unscaled addressing
US6453405B1 (en) * 2000-02-18 2002-09-17 Texas Instruments Incorporated Microprocessor with non-aligned circular addressing
US20120089499A1 (en) * 2000-06-29 2012-04-12 Balthaser Online, Inc. Methods, systems, and processes for the design and creation of rich-media applications via the internet
DE10030980A1 (de) * 2000-06-30 2002-01-10 Bosch Gmbh Robert Verfahren zur Steuerung des Programmablaufs in einem Mikrocontroller
US7162426B1 (en) * 2000-10-02 2007-01-09 Xybernaut Corporation Computer motherboard architecture with integrated DSP for continuous and command and control speech processing
US7007156B2 (en) * 2000-12-28 2006-02-28 Intel Corporation Multiple coprocessor architecture to process a plurality of subtasks in parallel
WO2002054160A1 (en) * 2001-01-02 2002-07-11 Iscon Ltd. Integration assisting system and method
US6826704B1 (en) * 2001-03-08 2004-11-30 Advanced Micro Devices, Inc. Microprocessor employing a performance throttling mechanism for power management
US7602847B1 (en) 2001-03-27 2009-10-13 Vixs Systems, Inc. Device and method for compression of a video stream
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US20070053428A1 (en) * 2001-03-30 2007-03-08 Vixs Systems, Inc. Managed degradation of a video stream
US6820194B1 (en) * 2001-04-10 2004-11-16 Mindspeed Technologies, Inc. Method for reducing power when fetching instructions in a processor and related apparatus
US6959348B1 (en) * 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
US7675972B1 (en) 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US20030039226A1 (en) * 2001-08-24 2003-02-27 Kwak Joseph A. Physical layer automatic repeat request (ARQ)
US7596127B1 (en) 2001-10-31 2009-09-29 Vixs Systems, Inc. System for allocating data in a communications system and method thereof
US7139330B1 (en) 2001-10-31 2006-11-21 Vixs Systems, Inc. System for signal mixing and method thereof
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7165180B1 (en) 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
DE10206865C1 (de) * 2002-02-18 2003-05-15 Daimler Chrysler Ag Reaktionszeit-Beschränkung eines Software-Prozesses
US7315934B2 (en) * 2002-03-06 2008-01-01 Matsushita Electric Industrial Co., Ltd. Data processor and program for processing a data matrix
US7200735B2 (en) * 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
US7310679B1 (en) 2002-04-29 2007-12-18 Vixs Systems Inc. Method and system for transmitting video content while preventing other transmissions in a contention-based network
US7120253B2 (en) * 2002-05-02 2006-10-10 Vixs Systems, Inc. Method and system for protecting video data
US20030236963A1 (en) * 2002-06-25 2003-12-25 Mike Ryken Method for fetching word instruction in a word-based processor and circuit to perform the same
KR100450680B1 (ko) * 2002-07-29 2004-10-01 삼성전자주식회사 버스 대역폭을 증가시키기 위한 메모리 컨트롤러, 이를이용한 데이터 전송방법 및 이를 구비하는 컴퓨터 시스템
US7408989B2 (en) * 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7606305B1 (en) 2003-02-24 2009-10-20 Vixs Systems, Inc. Method and system for transcoding video data
US7327784B2 (en) * 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7130350B1 (en) 2003-02-28 2006-10-31 Vixs Systems, Inc. Method and system for encoding and decoding data in a video stream
US7739105B2 (en) * 2003-06-13 2010-06-15 Vixs Systems, Inc. System and method for processing audio frames
US7873110B2 (en) * 2003-06-17 2011-01-18 Broadcom Corporation MPEG smart video transport processor with different transport packet handling
US7668396B2 (en) * 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
US7453882B2 (en) * 2003-11-03 2008-11-18 Sun Microsystems, Inc. Apparatus and method for asynchronously controlling data transfers across long wires
US7047345B2 (en) * 2004-02-05 2006-05-16 Hewlett-Packard Development Company, L.P. Logic configured for complimenting data on a bus when threshold exceeded
US7406598B2 (en) * 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
US7139905B2 (en) * 2004-04-29 2006-11-21 Microsoft Corporation Dynamic endian switching
US7519802B2 (en) * 2004-05-05 2009-04-14 Hewlett-Packard Development Company, L.P. System and method for configuring a computer system
US8514944B2 (en) * 2004-06-18 2013-08-20 Broadcom Corporation Reducing motion compensation memory bandwidth through memory utilization
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US7685354B1 (en) * 2004-06-30 2010-03-23 Sun Microsystems, Inc. Multiple-core processor with flexible mapping of processor cores to cache banks
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US7421048B2 (en) * 2005-01-20 2008-09-02 Vixs Systems, Inc. System and method for multimedia delivery in a wireless environment
US7609766B2 (en) * 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
US8949920B2 (en) * 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system
US7400869B2 (en) * 2005-03-22 2008-07-15 Vixs Systems Inc. System and method for adaptive DC offset compensation in wireless transmissions
US7707485B2 (en) 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
DE102005063499B4 (de) * 2005-10-06 2014-05-22 Infineon Technologies Ag Compiliervorrichtung und Verfahren zum Compilieren
DE102005048029B4 (de) 2005-10-06 2009-03-12 Infineon Technologies Ag Compiliervorrichtung und Verfahren zum Compilieren
US20070112826A1 (en) * 2005-11-10 2007-05-17 Vixs Systems, Inc. Multimedia transcoding based on remaining storage capacity
US8131995B2 (en) * 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
US7669001B1 (en) * 2006-08-31 2010-02-23 Qlogic, Corporation Method and system for using application specific integrated circuits
WO2008091556A1 (en) * 2007-01-24 2008-07-31 Powerwave Technologies, Inc. Adaptive echo cancellation for an on-frequency rf repeater using a weighted power spectrum
US20090017910A1 (en) * 2007-06-22 2009-01-15 Broadcom Corporation Position and motion tracking of an object
US20090197641A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Computing device with handheld and extended computing units
US8254319B2 (en) * 2007-01-31 2012-08-28 Broadcom Corporation Wireless programmable logic device
US20090011832A1 (en) * 2007-01-31 2009-01-08 Broadcom Corporation Mobile communication device with game application for display on a remote monitor and methods for use therewith
US8116294B2 (en) * 2007-01-31 2012-02-14 Broadcom Corporation RF bus controller
US8238275B2 (en) * 2007-01-31 2012-08-07 Broadcom Corporation IC with MMW transceiver communications
US8204075B2 (en) * 2007-01-31 2012-06-19 Broadcom Corporation Inter-device wireless communication for intra-device communications
US8289944B2 (en) * 2007-01-31 2012-10-16 Broadcom Corporation Apparatus for configuration of wireless operation
US8125950B2 (en) * 2007-01-31 2012-02-28 Broadcom Corporation Apparatus for wirelessly managing resources
US8280303B2 (en) * 2007-01-31 2012-10-02 Broadcom Corporation Distributed digital signal processor
US8223736B2 (en) * 2007-01-31 2012-07-17 Broadcom Corporation Apparatus for managing frequency use
US8200156B2 (en) * 2007-01-31 2012-06-12 Broadcom Corporation Apparatus for allocation of wireless resources
US20080320293A1 (en) * 2007-01-31 2008-12-25 Broadcom Corporation Configurable processing core
US9486703B2 (en) * 2007-01-31 2016-11-08 Broadcom Corporation Mobile communication device with game application for use in conjunction with a remote mobile communication device and methods for use therewith
US8239650B2 (en) * 2007-01-31 2012-08-07 Broadcom Corporation Wirelessly configurable memory device addressing
US8121541B2 (en) * 2007-01-31 2012-02-21 Broadcom Corporation Integrated circuit with intra-chip and extra-chip RF communication
US8438322B2 (en) * 2007-01-31 2013-05-07 Broadcom Corporation Processing module with millimeter wave transceiver interconnection
US7996660B2 (en) 2007-08-13 2011-08-09 Texas Instruments Incorporated Software controlled CPU pipeline protection
CN101470600B (zh) * 2007-12-27 2011-08-24 华为技术有限公司 一种超长指令字处理的方法和装置
US8717974B2 (en) * 2008-02-06 2014-05-06 Broadcom Corporation Handheld computing unit coordination of femtocell AP functions
US8064952B2 (en) * 2008-02-06 2011-11-22 Broadcom Corporation A/V control for a computing device with handheld and extended computing units
US20090198798A1 (en) * 2008-02-06 2009-08-06 Broadcom Corporation Handheld computing unit back-up system
US8117370B2 (en) * 2008-02-06 2012-02-14 Broadcom Corporation IC for handheld computing unit of a computing device
US8195928B2 (en) * 2008-02-06 2012-06-05 Broadcom Corporation Handheld computing unit with merged mode
US8175646B2 (en) * 2008-02-06 2012-05-08 Broadcom Corporation Networking of multiple mode handheld computing unit
US8430750B2 (en) * 2008-05-22 2013-04-30 Broadcom Corporation Video gaming device with image identification
GB2462860B (en) * 2008-08-22 2012-05-16 Advanced Risc Mach Ltd Apparatus and method for communicating between a central processing unit and a graphics processing unit
US9870220B2 (en) * 2008-12-05 2018-01-16 Advanced Micro Devices, Inc. Memory flash apparatus and method for providing device upgrades over a standard interface
US8239847B2 (en) * 2009-03-18 2012-08-07 Microsoft Corporation General distributed reduction for data parallel computing
US20110072238A1 (en) * 2009-09-20 2011-03-24 Mimar Tibet Method for variable length opcode mapping in a VLIW processor
TWI432953B (zh) 2010-12-09 2014-04-01 Ind Tech Res Inst 具電源管理之超長指令處理器以及其電源管理裝置與方法
US8824295B2 (en) * 2011-12-30 2014-09-02 Qualcomm Technologies, Inc. Link between chips using virtual channels and credit based flow control
JP5831316B2 (ja) * 2012-03-19 2015-12-09 富士通株式会社 並列処理装置
US20140089645A1 (en) * 2012-09-27 2014-03-27 Texas Instruments Incorporated Processor with execution unit interoperation
KR20150002319A (ko) * 2013-06-28 2015-01-07 삼성전자주식회사 비대칭형 클러스터 구조의 프로세서
US9772850B2 (en) 2014-11-14 2017-09-26 Intel Corporation Morton coordinate adjustment processors, methods, systems, and instructions
US20160139924A1 (en) * 2014-11-14 2016-05-19 Intel Corporation Machine Level Instructions to Compute a 4D Z-Curve Index from 4D Coordinates
US20160139921A1 (en) * 2014-11-14 2016-05-19 Intel Corporation Vector instruction to compute coordiante of next point in a z-order curve
US9772848B2 (en) 2014-11-14 2017-09-26 Intel Corporation Three-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9772849B2 (en) 2014-11-14 2017-09-26 Intel Corporation Four-dimensional morton coordinate conversion processors, methods, systems, and instructions
US20160139919A1 (en) * 2014-11-14 2016-05-19 Intel Corporation Machine Level Instructions to Compute a 3D Z-Curve Index from 3D Coordinates
US10761850B2 (en) * 2017-12-28 2020-09-01 Texas Instruments Incorporated Look up table with data element promotion
US11556477B2 (en) * 2018-06-15 2023-01-17 Arteris, Inc. System and method for configurable cache IP with flushable address range
US10558573B1 (en) 2018-09-11 2020-02-11 Cavium, Llc Methods and systems for distributing memory requests
GB202015208D0 (en) * 2020-09-25 2020-11-11 Myrtle Software Ltd Efficient circuit for sampling

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム
US5361367A (en) * 1991-06-10 1994-11-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5423051A (en) * 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US5848286A (en) * 1994-03-29 1998-12-08 Cray Research, Inc. Vector word shift by vo shift count in vector supercomputer processor
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US5848288A (en) 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5895501A (en) * 1996-09-03 1999-04-20 Cray Research, Inc. Virtual memory system for vector based computer systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009514726A (ja) * 2005-11-04 2009-04-09 ボーズ・コーポレーション 安全なアクティブサスペンションシステム

Also Published As

Publication number Publication date
US6182203B1 (en) 2001-01-30
EP0858039A3 (en) 2005-01-26
EP0858039A2 (en) 1998-08-12

Similar Documents

Publication Publication Date Title
JPH10275080A (ja) マイクロプロセッサ
US6505290B1 (en) Method and apparatus for interfacing a processor to a coprocessor
JP2834837B2 (ja) プログラマブルコントローラ
US5923893A (en) Method and apparatus for interfacing a processor to a coprocessor
JP3774538B2 (ja) パーソナルコンピュータ回路、コンピュータシステム、及びその動作方法
US6179489B1 (en) Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
KR100308618B1 (ko) 단일 칩 상의 마이크로프로세서-코프로세서 시스템을 구비한 파이프라인 데이터 처리 시스템 및 호스트 마이크로프로세서와 코프로세서 사이의 인터페이스 방법
US5822779A (en) Microprocessor-based data processing apparatus that commences a next overlapping cycle when a ready signal is detected not to be active
JP2001092662A (ja) プロセッサコア及びこれを用いたプロセッサ
WO2000033188A2 (en) Efficient handling of a large register file for context switching and function calls and returns
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US5983338A (en) Method and apparatus for interfacing a processor to a coprocessor for communicating register write information
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JPH07175666A (ja) データプロセッサおよびその割込み要求処理方法
WO2003042819A1 (en) Method and apparatus for interfacing a processor to a coprocessor
JPH0359749A (ja) バスコントローラ
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
Gallas et al. Embedded Pentium (R) processor system design for Windows CE
Leibson et al. Configurable processors: a new era in chip design
US6327648B1 (en) Multiprocessor system for digital signal processing
JPH10222367A (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US20020199081A1 (en) Data processing system and control method
Lübbers et al. Communication and Synchronization in Multithreaded Reconfigurable Computing Systems.
JP4227789B2 (ja) 集積回路装置およびデータ処理システム
JP3562215B2 (ja) マイクロコンピュータ及び電子機器

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050124

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060420

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060425

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060926