JP4285803B2 - 周辺装置と外部インタフェースとを具備したディジタル信号処理装置 - Google Patents

周辺装置と外部インタフェースとを具備したディジタル信号処理装置 Download PDF

Info

Publication number
JP4285803B2
JP4285803B2 JP22849198A JP22849198A JP4285803B2 JP 4285803 B2 JP4285803 B2 JP 4285803B2 JP 22849198 A JP22849198 A JP 22849198A JP 22849198 A JP22849198 A JP 22849198A JP 4285803 B2 JP4285803 B2 JP 4285803B2
Authority
JP
Japan
Prior art keywords
data
bit
cpu
dma
register
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.)
Expired - Lifetime
Application number
JP22849198A
Other languages
English (en)
Other versions
JPH11167547A (ja
Inventor
エイチ.ヌグイエン タイ
エイ.ティ.ジョーンズ ジェイソン
ジー.ブラドリイ ジョナサン
セスハン ナタラジャン
アール.クエイ ジェフリー
エル.ウィリアムズ ケネス
ジェイ.ムーディ マイケル
アール.シマー ローレンス
エイチ.スケイルズ リチャード
Original Assignee
テキサス インスツルメンツ インコーポレイテツド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/055,011 external-priority patent/US6167466A/en
Priority claimed from US09/054,833 external-priority patent/US6145027A/en
Application filed by テキサス インスツルメンツ インコーポレイテツド filed Critical テキサス インスツルメンツ インコーポレイテツド
Publication of JPH11167547A publication Critical patent/JPH11167547A/ja
Application granted granted Critical
Publication of JP4285803B2 publication Critical patent/JP4285803B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Description

【0001】
【関連明細書との相互参照】
本発明は、本件と同時に受け付けられた係属の明細書シリアル番号09/012,813(TI処理番号T−25311)に関連し、それは此処に明示することにより参照されている。
【0002】
【発明の属する技術分野】
本発明はマイクロプロセッサに関わり、詳細にはオンチップ周辺装置と種々の外部インタフェースポートとを含むマイクロプロセッサ集積回路に関する。
【0003】
【従来の技術】
マイクロプロセッサの設計者は種々のマイクロプロセッサの性能改善のために、クロック速度の増加、並列処理の追加といった努力を休み無く行っている。随意アクセスメモリ(RAM)の大規模なブロックがマイクロプロセッサ内に含まれているが、これはデータ格納およびプログラム格納用であってメモリアクセス時間を短縮している。直接メモリアクセス(DMA)回路がしばしば具備されており、マイクロプロセッサに接続されている周辺装置とマイクロプロセッサに接続されているメモリとの間のデータ転送を行っている。DMA回路の初期化およびDMA転送操作の監視をマイクロプロセッサ上で動作するソフトウェアで行っている。DMA回路は独立に制御される1つまたは複数のチャンネルを具備している。6チャンネルDMA制御装置の詳細な説明が米国特許第5,305,446号、リーチ(Leach )その他に付与の中で、特に図10,11,12aおよび12bを参照して行われており、これは此処にあげることで参照されている。
【0004】
【発明が解決しようとする課題】
本発明の目的は指定されたDMA転送操作に対してマイクロプロセッサ上で動作するソフトウェアに要求される初期化および監視の量を削減することである。
【0005】
本発明の別の目的は読み取りおよび書き込み転送を種々の転送速度で出来るようにすることである。
【0006】
新型マイクロプロセッサの開発サイクル時間を短縮するために、種々の機能ブロック、例えば中央処理装置、メモリ回路、および周辺回路が容易に再使用出来るコア回路として設計されている。マイクロプロセッサが更に複雑になるに従って、ますます周辺回路がCPUと共に単一集積回路上に配置されるようになる。周辺回路から、外部発信元から、またその他のマイクロプロセッサ内の発信元から発せられる割り込み要求信号の数が、選択採用された事前設計CPUコア上で利用出来る割り込み入力の数を超える可能性がある。
【0007】
本発明の1つの目的は事前設計コアCPU上での入力信号の不足を解消するための方法を提供することである。
【0008】
全システムチップ総数およびコストを削減するために、種々の型式の入力/出力装置がマイクロプロセッサ集積回路内に含まれている。シリアルポートはマイクロプロセッサに共通に含まれる入力/出力装置の1つのクラスの例である。
【0009】
本発明の1つの目的はマイクロプロセッサ集積回路用のオンチップ周辺装置および外部インタフェースの動作並びに制御を改善することである。
【0010】
【課題を解決するための手段】
一般的に言って、本発明の1つの形式はデータ処理装置であって、これは命令を実行するための中央処理装置(CPU)、中央処理装置に接続されそのCPUで実行される命令を格納するためのメモリ回路、およびこのCPUに接続され、各々が異なるパラメータセットを有する二重位相フレームでデータの転送および受信を行うように動作可能なシリアルポートインタフェースとを含む。
【0011】
本発明の別の形式はデータ処理装置であって、これは命令を実行するための中央処理装置(CPU)、前記中央処理装置に接続されたメモリ制御装置、および前記メモリ制御装置に接続されたメモリ回路とを含む。このデータ処理装置は更に、前記メモリ制御装置に接続された外部メモリインタフェース回路を含む。このデータ処理装置は更に、前記直接メモリアクセス制御装置に接続されたホストポートインタフェースを含む。このデータ処理装置は更に、前記メモリ制御装置に接続された周辺バス制御装置、および前記周辺バス制御装置に接続された外部メモリインタフェース制御装置を含む。データ処理装置は更に少なくとも1つの外部信号を含むことが可能で、これは前記中央処理装置のリセットアドレスに配置されるメモリ型式を定義するためのものである。このデータ処理装置は更に少なくとも1つの外部信号を含むことが可能で、これは前記メモリ回路のサイズ及び位置を認識するためのものである。このデータ処理装置は更に、前記周辺バス制御装置に接続されたプログラム可能タイマを含むことも可能である。このデータ処理装置は更に前記中央処理装置にクロック信号を供給するためのプログラム可能フェイズロックループ回路を含むことも可能である。このデータ処理装置は更にパワーダウン回路を含み、これは前記装置の予め選択された部分にクロック信号が到達することをプログラム可能なように防止するためのものである。
【0012】
本発明の別の形式はデータ処理装置であって、中央処理装置に接続されたプログラムメモリ回路内に格納されたソフトウェア命令を実行するように動作可能な中央処理装置と、処理装置で処理されるべきデータを格納するように動作可能なメモリ回路と、読み取りアドレス回路と書き込みアドレス回路とを有し、メモリ回路との間でデータを転送するように動作可能な直接メモリアクセス(DMA)制御装置とを含み、このDMA制御装置は更に中央処理装置に割り込みを行うように動作可能なDMA割り込み回路を有する。この装置は更に、データをメモリ回路との間で転送するように動作可能なアドレス生成回路を有する周辺装置を含むことが可能である。この装置は更に補助チャンネル制御回路を含むことが可能であり、これは周辺装置が第一データワードをメモリ回路に対してその周辺装置のアドレス生成回路を用いて転送させ、また中央処理装置へDMA回路のDMA割り込み回路を用いて割り込みさせるように動作可能である。
【0013】
データ処理装置が提供されており、これは命令を実行するための中央処理装置(CPU)を含む。このCPUは固定数の割り込み入力端子を有する。このデータ処理装置はまた多数の割り込み要求信号線を有し、ここで割り込み要求信号線の数は割り込み入力端子の数よりも少ない。また好適に割り込み選択器が具備されていて、これは割り込み要求信号の部分集合を選択し、選択された部分集合を割り込み入力端子に接続するように動作可能である。
【0014】
本発明の別の特徴として、DMA制御装置はプログラム可能読み取りアドレス回路とプログラム可能書き込みアドレス回路とを有する。
【0015】
本発明の別の実施例はスプリットチャンネル操作を実行するための回路を有し、これは発信元アドレスからのデータをスプリット宛先アドレスに転送するように動作可能であり、またスプリット発信元アドレスからのデータを宛先アドレスに同時に受信するように動作可能である。
【0016】
本発明の別の実施例はグローバルデータレジスタを含み、これはDMA制御装置が後続の転送操作の異なる機能に対して使用することが出来る。
【0017】
本発明の別の実施例は浮動FIFOバッファを含み、これは選択された発信元バスと選択された宛先バスとの間に接続することが出来る。
【0018】
本発明のその他の装置、システムおよび方法形式もまた開示されており此処に特許請求されている。本発明のその他の目的が開示されており、また更に別の目的は此処に開示された内容から明らかであろう。
【0019】
本発明のその他の特徴および特長は添付図を参照して以下の詳細な説明を参照することにより明らかとなろう。
【0020】
【発明の実施の形態】
図1Aマイクロプロセッサ1のブロック図であり、これは本発明の1つの実施例を含む。マイクロプロセッサ1はVLIWディジタル信号処理装置(”DSP”)である。簡単にするために、図1Aは本発明の実施例の理解に関連するマイクロプロセッサ1の一部のみを示す。DSPの一般的構成の詳細は良く知られており、何処で探すことが出来るであろう。例えば米国特許第5,072,418号、フレデリック・ボータウド(Frederic Boutaud)その他に付与、がDSPを詳細に記述しており、これは本明細書でも参照されている。米国特許第5,329,471号、ギャレイ・スボボダ(Gary Swoboda)その他に付与、がDSPの試験およびエミュレート方法を詳細に記述しており、これは本明細書でも参照されている。本発明の実施例に関連するマイクロプロセッサ1の詳細部分が以下に十分詳細に説明されており、マイクロプロセッサ技術分野で通常の技量を有する者が本発明を実施しかつ使用出来るようにしている。
【0021】
マイクロプロセッサ1の中には中央処理装置(CPU)10,データメモリ22,プログラムメモリ23,周辺機器60および直接メモリアクセス(DMA)61を具備した外部メモリインタフェース(EMIF)が示されている。CPU10は更に命令フェッチ/復号ユニット10a−c、算術演算とロード/ストアユニットD1、掛け算器M1、ALU/シフトユニットS1、算術論理ユニット(”ALU”)L1,データの読み取りおよびデータの書き込みが行われる共有多重ポートレジスタファイル20aを含む複数の実行ユニットを有する。復号された命令は命令フェッチ/復号ユニット10a−cから機能ユニットD1,M1,S1およびL1に対して図示されていない種々の制御線の組を介して提供される。データはレジスタファイル20aとロード/ストアユニットD1との間は第一のバス32aの組を介して、掛け算器M1との間は第二のバス34aの組を介して、ALU/シフトユニットS1との間は第三のバス36aの組を介して、そしてALU L1との間は第四のバス38aの組を介して提供される。データはメモリ22とロード/ストアユニットD1相互間で第五のバス40aの組を介して提供される。上記の全データ経路はレジスタファイル20bおよび実行ユニットD2,M2,S2,およびL2で二重化されていることに注意されたい。命令はフェッチユニット10aにより命令メモリ23からバス41の組を介してフェッチされる。エミュレーションユニット50は集積回路1の内部動作へのアクセスを提供し、これは外部試験システム51で制御可能である。
【0022】
メモリ22およびメモリ23は図1の中で集積回路マイクロプロセッサ1、その範囲は箱42で表されている、の一部として示されていることに注意されたい。メモリ22−23をマイクロプロセッサ1集積回路42の外部に置くことも、またその一部を集積回路42の上に残し、一部を集積回路42の外部に置くことも可能である。また、別の数の実行ユニットを使用することも可能である。
【0023】
マイクロプロセッサ1がデータ処理システムの中に組み込まれている場合、追加メモリまたは周辺装置が図1に図示されるようにマイクロプロセッサ1に接続されるはずである。例として、随意アクセスメモリ(RAM)70、読み取り専用メモリ(ROM)71およびディスク72が外部バス73経由で接続されているように示されている。バス73は外部メモリインタフェース(EMIF)に接続されており、これはマイクロプロセッサ42内の機能ブロック61の一部である。直接メモリアクセス(DMA)制御装置もまたブロック61内部に含まれている。DMA制御装置は一般的にデータをメモリとマイクロプロセッサ1内部の周辺装置との間、およびメモリとマイクロプロセッサ1外部の周辺装置との間で移動させるように使用される。データはブロック61からプログラムメモリ23にバス43経由で転送出来る;データはデータメモリ22との間でバス44経由で転送出来る。その他の型式の周辺装置、例えばタイマ82、がホストポートバス80経由で接続されている。バスインタフェースがブロック60内部にホストポートバス80用に含まれている。
【0024】
本発明の見地から有益ないくつかのシステム例が、米国特許第5,072,418号に記載されており、これは本明細書でも参照されており特に米国特許5,072,418号の図2−18が参考になる。性能を改善したりまたは価格を下げるために本発明の特徴を取り入れたマイクロプロセッサを用いて米国特許5,072,418号に記載されているシステムを更に改善することが出来る。この様なシステムは、工業プロセス制御、自動車システム、電動機制御、ロボット制御システム、衛星遠距離通信システム、エコー除去システム、モデム、ビデオ画像システム、音声認識システム、暗号を具備したボコーダ・モデムシステム等が含まれるが、これらに限定されるわけではない。
【0025】
図1Aのマイクロプロセッサの種々の構造的特徴の説明が係属の明細書シリアル番号09/012,813(TI管理番号T−25311)に提示されている。図1Aのマイクロプロセッサに対する完全な命令セットの説明がまたこの係属の明細書に提示されている。
【0026】
本発明の1つの特徴によれば、ブロック61内のDMA制御装置を用いてデータのブロックを外部発信源から内部プログラムメモリ23へ、リセット信号76に応じて転送できる。このデータのブロックは初期プログラムを含み、これはマイクロプロセッサ1で実行することが可能でありおそらくはブートストラップローダである。ブートストラップローダーはマイクロプロセッサ1用の大規模プログラムをロードするために使用される。いずれの場合も、マイクロプロセッサ1はマイクロプロセッサ内のブートPROMまたはROMを必要とすることなく動作状態となる。これは好都合であるが、それはPROM/ROMが比較的大きく典型的にはブート用にしか使用されないためである。従ってブートPROM/ROMの必要性を取り除くことで節約されたマイクロプロセッサ1内の空間を更に有用な機能のために効果的に使用したり、または低価格装置を制作するためにマイクロプロセッサ1の寸法を小さくすることが出来る。
【0027】
構成回路74は構造パラメータをインタフェースピン75を介してブロック61に提供しDMA制御装置を初期化するために使用される。これに代わる実施例として、構成回路81が構造パラメータをバス80上でインタフェースピン84を介してブロック61に提供しDMA制御装置を初期化するために使用される。ブロック77は”OR”機能を提供し回路74または81からの構造パラメータがブロック61へ送られるようにしている。
【0028】
図1Bおよび1Cは図1Aのマイクロプロセッサの更に詳細なブロック図である。多重チャンネルシリアルポート120が周辺バス110に接続されている。
【0029】
多重チャンネルシリアルポート120が周辺バス110に接続されている。その生成方法ならびに特長を図4を参照して更に詳細に説明する。
【0030】
2つのDMA制御装置がブロック61内に、2つの別々のDMAチャンネル、DMA0 140およびDMA1 141用に具備されている。本発明においては、本発明の特徴に基づいてDMA0 100のみがブートローディングを提供するように構成されているが、これは本発明の制限条件と考えられるべきではない。DMA制御装置140および141は周辺機器バス110によるプログラム制御を受けるように構成されており、これはデータバス40b経由でCPU10に接続されている。DMA0 140は図1A内のROM71の様な外部発信元からプログラムメモリ23またはデータメモリ22にデータを転送するように動作出来る。
【0031】
本発明の1つの特徴として、DMA0 140はリセット信号76がオン状態からオフ状態に遷移した際にブートロードを実行するように初期化される。この初期化の詳細は後ほど説明する。この初期化ステップの後、DMA0 140はメモリ転送要求を開始する。外部メモリインタフェース(EMIF)103はバス142経由DMA0 140からのメモリ要求に応答し、バス73上のデータ源からのデータにアクセスする。データワードがEMIF103で準備された後、DMA0 140はこのデータワードをプログラムメモリ制御装置104に転送し、これはそのデータワードをプログラムメモリ23の中にバス106経由でDMA0 140で指定されたアドレスに書き込む。このブートロード処理手順の間、CPU_Reset_信号79はオン状態にDMA0 140によって保持され、CPU10によっていかなる命令処理も実行されないようにしている。
【0032】
本発明の特徴として、割り込み選択器160がいくつかの割り込み入力信号161(a−f)の中から好適に選択し、選択された割り込み信号をCPU10に対して割り込み信号INT(4−15)経由で提供する。
【0033】
図2は図1Aのマイクロプロセッサの実行ユニット並びにレジスタファイルのブロック図であって、種々の機能ブロックを接続するバスの更に詳細な図を示す。此の図の中で特に断りが無い限り全てのデータバスは32ビット幅である。バス40aはアドレスバスDA1を有し、これはmux200aで駆動される。これによりロード/ストアユニットD1 12aまたはD2 12bのいずれかで生成されたアドレスをレジスタファイル20aにロードまたはストアするためのアドレスを提供することが可能となる。データバスLD1はアドレスバスDA1で指定されたメモリ22内のアドレスからデータをロードユニットD1 12a内のレジスタにロードする。ユニットD1 12aは提供されたデータをレジスタファイル20aの中にストアする前に処理する。同様にデータバスST1はレジスタファイル20aからのデータをメモリ22にストアする。ロード/ストアユニットD1 12aは下記の演算を実行する:32ビット加算、減算、線形および円形アドレス計算。ロード/ストアユニットD2 12bはD1 12aと同様に演算を行い、mux200bの支援の下アドレスの選択を行う。
【0034】
ALUユニットL1 18aは下記の型式の演算を実行する:32/40ビット算術演算および比較演算;32ビットの最上位ビット計数;32および40ビット用の計数の正規化;および論理演算。ALU L1 18aは32ビット発信元被演算子用入力src1と第二32ビット発信元被演算子用入力src2とを有する。入力msb_srcは8ビット値であって40ビット発信元被演算子を形成するために使用される。ALU L1 18aは32ビット宛先被演算子用の出力dstを有する。出力msb_dstは8ビット値であって、40ビット宛先被演算子を形成するために使用される。レジスタファイル20a内の2つの32ビットレジスタは40ビット被演算子を保持するために連結される。Mux211は入力src1に、32ビット被演算子がレジスタファイル20aからバス38a経由で、またはレジスタファイル20bからバス210経由で得られるように接続されている。Mux212は入力src2に、32ビット被演算子がレジスタファイル20aからバス38a経由で、またはレジスタファイル20bからバス210経由で得られるように接続されている。ALUユニットL2 18bはユニットL1 18aと同様に演算を行う。
【0035】
ALU/シフトユニットS1 16aは下記の型式の演算を実行する:32ビット算術演算;32/40ビットシフトおよび32ビットビット単位演算;32ビット論理演算;分岐;及び定数発生。ALU S1 16aは32ビット発信元被演算子用入力src1と32ビット発信元被演算子用入力src2とを有する。入力msb_dstは8ビット値であって40ビット発信元被演算子を形成するために使用される。ALU L1 16aは32ビット宛先被演算子用の出力dstを有する。出力msb_dstは8ビット値であって、40ビット宛先被演算子を形成するために使用される。Mux213は入力src2に、32ビット被演算子がレジスタファイル20aからバス38a経由で、またはレジスタファイル20bからバス210経由で得られるように接続されている。ALUユニットL2 16bはユニットL1 16aと同様に演算を行うが、更に制御レジスタファイル102との間でレジスタ転送を行える。
【0036】
掛け算器M1 14aは16掛ける16の掛け算を実行する。掛け算器M1 14aは32ビット発信元被演算子用入力src1と、32ビット発信元被演算子用入力src2とを有する。掛け算器M1 14aは32ビット宛先被演算子用出力dstを有する。Mux214は入力src2に、32ビット被演算子がレジスタファイル20aからバス34a経由で、またはレジスタファイル20bからバス210経由で得られるように接続されている。掛け算器M2 14bは掛け算器M1 14aと同様に演算を行う。
【0037】
図3Aおよび図3Bは図1Aのマイクロプロセッサ用の2つのメモリマップを示す。このメモリはバイト単位でアドレス指定が可能であり、その全アドレス範囲は4Gバイト(32ビット内部アドレスに相当する)である。メモリマップは内部プログラムメモリ23,内部データメモリ22および3つの外部メモリ空間と内部周辺機器空間に分割されている。内部メモリの区間はホストポートインタフェース(HPI)60でアクセス可能である。
【0038】
内部メモリは512kバイトのオンチッププログラム/キャッシュメモリ23と512kバイトのオンチップデータメモリ22とで構成される。キャッシュまたはプログラムとして構成可能なプログラムメモリは256ビット命令フェッチパケットの2kの中に構成されている。CPU10は1つのフェッチパケットの全ての命令を一度にフェッチする。パケットは最大8つの32ビット命令をCPUサイクル毎に、または最小1命令を1サイクル毎に処理する。バイトデータメモリはCPUによってバイト単位でアドレス指定が可能であり(読み取りと同様書き込みも)、バイト単位、二分の一ワード単位およびワード単位での転送を支援する。
【0039】
CPU10またはDMA100による全ての外部データアクセスは、外部メモリインタフェース(EMIF)103を通る(図1c参照)。外部メモリは3つの空間−CE0,CE1およびCE2に分割されている。各々はチップ可能化信号を有し、これは対応する空間との間で相互にデータアクセスが行われている間オンとなる。各々の外部空間には別々の内部周辺バスレジスタが割り当てられていて、これは非同期メモリにアクセスする際に、読み取り/書き込みサイクルの形状を決定する。
【0040】
非同期メモリに加えて、CE0およびCE2空間はまたその他の型式のメモリとインタフェースする事ができる。SBSRAMまたはSDRAMメモリをこれら2つの空間に割り当てることができるが、それはリセット76中に信号グループCE0_TYPEおよびCE2_TYPE(ピンDC2−DC5)上の信号レベルを制御する事で実施される。
【0041】
外部メモリ空間CE1は非同期メモリに対してのみインタフェースすることが出来る。しかしながら空間CE0およびCE2が常に32ビット幅であるのに対して、CE1メモリ空間は信号グループCE1_WIDTHピン上の信号レベルを制御することにより8または16ビットに構成することも出来る。EMIFは読み取りサイクルの間に自動的にバイトおよび二分の一ワードをワード単位にパックする、この機能は典型的に8−または16−ビットEPROMからブートする際に使用される。このCE1メモリ空間はROMインタフェース用に使用できるが、それはROMサイクルが非同期SRAM読み取りサイクルに類似しているためである。CE1空間は8−ビットまたは16−ビット幅の読み取りサイクルのみを許している外部メモリ空間であるので、全ての外部メモリ空間からの読み取りサイクルは32ビット幅外部メモリからのバイトまたは二分の一ワードサイズデータとしてアクセス出来ることに注意されたい。EMIFデータ書き込みサイクルはバイト、二分の一ワードまたはワード単位で同様に外部メモリに転送可能であり、これはバイト選択用BE_制御信号を用いて行われる。データ読み取りサイクルは常に全4バイトをラッチし(4つ全てのBEがアクティブ)、続いてCPUはもしもデータサイズが32ビット未満の場合は適切なバイトを内部的に抽出する。プログラムメモリ制御装置104またはDMA100/101で要求されたEMIF書き込みは常に32ビット幅であって、これはデータメモリ制御装置105で開始された8−、16−、または32ビット転送とは異なっている。
【0042】
キャッシュ
概要
図4に示されるように、プログラムメモリ制御装置は:
内部プログラムメモリに対してCPU及びDMA要求と、必要な調停とを実行する、
外部メモリインタフェース(EMIF)を通して、外部メモリにCPU要求を実行する、
キャッシュとして構成されている場合に内部プログラムメモリを管理する。
【0043】
内部プログラムメモリ
内部プログラムメモリは64kバイトのRAMを含む。このメモリは2kの256ビットフェッチパケットを含むことが出来て、これは16k32ビット命令と等価である。CPUプログラムメモリ制御装置を通して内部プログラムメモリに対して単一サイクルで256ビット幅のスループットを有する。
【0044】
【表1】
Figure 0004285803
【0045】
内部プログラムメモリは表1に示されるように、CPU制御並びに状態レジスタ内のプログラムキャッシュ制御(PCC)フィールド(ビット7−−5)で選択された4つのモードで使用することが出来る。これらのモードとは:
1)写像:選択されたメモリマップに応じて、プログラムメモリはいずれかのアドレスに配置される:
マップ1内の00000000−0000FFFF
マップ0内の01400000−0140FFFF
どの様にメモリ写像を選択するかに際してブート構成、リセット、およびメモリマップを参照する。このモードに於いて、プログラムは内部メモリアドレス範囲に対してそのアドレスのフェッチパケットをフェッチする。いずれのキャッシュモードに於いても、このアドレス範囲へのCPUアクセスは全てNOPを含むフェッチパケットを戻す。写像モードはリセット時の内部プログラムメモリのデフォルト状態である。
2)可能:キャッシュ可能モードに於いて、あるアドレスに対しての最初のプログラムフェッチはキャッシュ不成功を引き起こす。キャッシュ不成功に際して、フェッチパケットは外部メモリインタフェース(EMIF)からロードされ、同時に内部キャッシュメモリ−32ビット命令の中に格納される。フェッチパケット内の8つ全ての命令が受信されると、これはCPUへ送られて実行される。この期間中CPUはそっくりそのまま停止されている。待ち状態を被る回数は外部メモリの型式、そのメモリ状態、およびDMAまたはCPUデータアクセスの様なその他の要求とEMIFとのぶつかり合いに依存する。キャッシュされたアドレスからのその後の全ての読み取りは、キャッシュヒットとなりそのフェッチパケットは待ち状態を受けずにCPUに送られる。プログラムメモリモードからキャッシュ可能モードへの変更に際して、プログラムキャッシュはフラッシュされる。このモード変遷のみがキャッシュをフラッシュする唯一の手段である。
3)凍結:キャッシュ凍結期間中、キャッシュはその現在の状態を保持する。凍結されたキャッシュへのプログラム読み取りは、可能化されたキャッシュへの読み取りと同一であるが、キャッシュ不成功時に外部メモリインタフェースから行われるデータ読み取りがキャッシュの中に格納されない点が異なる。その同一アドレスからの後続の読み取りもまたキャッシュ不成功となり、そのデータは再び外部メモリからフェッチされる。キャッシュ凍結は重要なプログラムデータがキャッシュの中に上書きされることを防止する。
4)バイパス:キャッシュがバイパスされると、全てのプログラム読み取りは外部メモリからデータをフェッチする事になる。このデータはキャッシュメモリの中には格納されない。キャッシュ凍結と同様、キャッシュバイパスではキャッシュはその状態を保持する。このモードは必ず外部プログラムデータがフェッチされることを保証する。
【0046】
キャッシュ構造
キャッシュの構造は直接写像される。64kバイトキャッシュは21kフェッチパケット、従って2kフレームを含む。(キャッシュ用語の中でブロックまたはラインという用語がフレームと同じ意味で使用される。)キャッシュまたはフレームサイズの幅は256ビットである。キャッシュ内の各フレームは1フェッチパケットである。
【0047】
CPUアドレスのキャッシュ使用例
図2−3はキャッシュがCPUからフェッチパケットアドレスを使用する方法を示す:
5ビットフェッチパケットアラインメント:アドレスの下位5ビットはゼロと見なされるが、これは全てのプログラムフェッチ要求がフェッチパケット境界(8ワードまたは32バイト)上に並んでいるためである。
11ビットタグブロックオフセット:キャッシュは直接写像されるために、任意の外部アドレスは唯1つの2kフレームに写像する。64kバイトアドレスの偶数倍である任意の2つのフェッチパケットは写像マップを同一フレームに分離する。従ってCPUアドレスのビット15:5は11ビットブロックオフセットを生成し、これは任意の個別のフェッチパケットをどの2kフレームに写像するかを決定する。
10ビットタグ:キャッシュは最大外部アドレス空間を64Mバイト(00000000から03FFFFFFF)と仮定している。従ってビット25:16はタグに対応し、これは外部メモリ空間内でのフェッチパケットの元の位置を決定する。このキャッシュは別の2kx11タグRAMを有し、これは全てのタグを有している。このRAMは10ビットタグに加えてキャッシュフラッシュの中で使用される有効ビットを含む。
【0048】
キャッシュフラッシュ
タグRAM内で検出された有効ビットはキャッシュフレームの内容が有効データであるか否かを示す。キャッシュフラッシュ中にこれらの有効ビットは消去されていずれのキャッシュフレームも有効データを持たないことが示される。キャッシュフラッシュはキャッシュが写像モードからキャッシュ可能モードに遷移する際にのみ生じる。
【0049】
フレーム置換
キャッシュ不成功が検出されるのは、CPUで要求されたフェッチパケットアドレスのブロックオフセットに対応するタグがフェッチパケットアドレスのビット25:16に対応しない時か、またはそのロケーションの有効ビットが消去された場合である。可能化状態の場合は、キャッシュはフェッチパケットを対応するフレームの中にロードし、有効ビットをセットし、タグを要求されたアドレスのビット25:16にセットし、そして全ての8命令が利用できるようになった後にこのフェッチパケットをCPUに送り出す。
【0050】
プログラムメモリへのDMAアクセス
DMAは写像モードが構成されている際に内部プログラムメモリに対して読み取り及び書き込みを行うことが出来る。CPUとDMAとの間の優先順位はDMAチャンネル要求のPRIビットで指定される。もしもDMAが高位の優先順位を与えられている場合(PRI=1)、CPUはDMAがその全ての要求を完了するまで待たされる。CPUに優先順位がある場合は、DMAアクセスはCPUが要求を停止するまで延期される。キャッシュモードでは、DMA書き込みはプログラムメモリ制御装置により無視される。キャッシュモードでは、読み取りは不定値で戻される。キャッシュモードではDMA読み取り並びに書き込みの両方に対して、DMAはその要求が完了したことの通知を受ける。リセットされるとプログラムメモリシステムは写像モードとなる。この機能によりDMAがブートロードコードを内部プログラムメモリの中に入れることが可能になる。ブートロードコードの更に詳細な情報に関しては、ブート構成、リセット、メモリマップを参照されたい。
【0051】
データ
概要
図4に示されるように、データメモリ制御装置は下記を接続する:
CPUと直接メモリアクセス制御装置(DMA)とを内部データメモリに接続し必要な調停を行う。
CPUを外部メモリインタフェース(EMIF)に接続する。
CPUを周辺機器バス制御装置を通してオンチップ周辺機器に接続する。
【0052】
周辺機器バス制御装置はオンチップ周辺機器に対する、CPUとDMAとの間の調停を実施する。
【0053】
データメモリアクセス
データメモリ制御装置は内部メモリに対する全ての要求と、同様に全てのCPUデータ要求に対するサービスを行う。図6はデータの流れ方向と同時にモジュール間のマスタ(要求側)とスレーブ(資源側)との関係を示す:
下記に対するCPU要求データ読み取りおよび書き込み:
1.内部データメモリ。
2.周辺機器バス制御装置を通してオンチップ周辺機器。
3.EMIF。
内部データメモリに対するDMA要求読み取り及び書き込み。
CPUは要求をデータメモリ制御装置に対して2つのアドレスバス(DA1およびDA2)を通して送る。格納データはCPUデータ格納バス(ST1およびST2)を通して送信される。ロードデータはCPUロードバス(LD1およびLD2)を通して受信される。CPUデータ要求は内部データメモリ、内部周辺機器空間のいずれかのアドレスに基づいて、周辺機器バス制御装置、または外部メモリインタフェースを通して写像される。データメモリ制御装置はまた、DMAを内部データメモリに接続し、オンチップデータRAMに関してCPU/DMA調停を実施する。
【0054】
内部データメモリ構成
アドレス80000000から8000FFFFに配置されている内部データRAMの64kバイトは16ビット半ワードで構成された8kブロックからなる4ブロックとして構成される。これらのブロックは各々のブロックが後続の半ワードを含む16ビットデータ上のインタリーブの中に構成される。このインタリーブにより2つのデータポートとDMAが近隣の16ビットデータの読み取りを資源の競合をすることなく行うことが出来る。
【0055】
【表2】
Figure 0004285803
【0056】
データ整列
CPUおよびDMAは共に8ビットバイト、16ビット半ワード、および32ビットワードの読み取り並びに書き込みが出来る。データメモリ制御装置は2つのCPUの間で、各々の16ビットブロックに基づいて独立に調停を行う。下記のデータ配列制約が存在する:
ワード:ワードは偶数4バイト境界(ワード境界)上に整列されている。ワードは常に最下位の2ビットが0のバイトアドレスで開始される。ワードアクセスは2つの隣接した16ビット幅ブロックを必要とする。
半ワード:半ワードは偶数の2バイト境界(半ワード境界)上に整列されている。半ワードは常に最下位ビットが0であるバイトアドレスから開始される。
半ワードは単一16ビット幅ブロックを必要とする。
バイト:バイトアドレスに関しては整列上の制約は存在しない。16ビット幅ブロックに対して調停は実施されるが、そのブロックはバイト幅アクセスをサポートするために依然としてバイト可能状態を有する。しかしながら、バイトアクセスはバイトアドレス写像を行うために全部で16ブロックを必要とする。
【0057】
内部メモリに対する二重化CPUアクセス
(CPUクロックはCPU入力クロック(CLKOUT1)の1つの周期を参照する。(装置入力クロックでは無い。)CPUサイクルは1つのCPU処理パイプライン位相を参照している。実行パケット内の全ての命令は1つのCPUサイクル内の1つのパイプライン位相を通して進行する。しかしながら、CPUサイクルはメモリ区切りによって複数のCPUクロックに拡張される。CPUサイクルの複数のCPUクロックへの拡張は、待ち状態として知られている。)
【0058】
インタリーブされたメモリ構成により、2つのCPUが同時にメモリアクセスを行える。1つのCPUサイクルの中で、2つの異なる内部メモリブロックへ同時に2つのアクセスが待ち状態無しで発生する。同一の内部メモリブロックへの2つの同時アクセスは1つのCPUクロックに対して全CPUパイプラインを区切り、2つのアクセスを2つのCPUクロックの中に提供する。これらの規則はアクセスがロードであるか格納であるかにかかわらず適用される。同一の実行パケットからのロードおよび格納は、同一CPUサイクル中にデータメモリ制御装置で監視される。将来または過去のCPUサイクルからのロードおよび格納は、現在のサイクルでのデータメモリアクセスに対して待ちを生じることは無い。従って、内部データメモリアクセスは同一の16ビット幅ブロックへ同一フェッチパケットアクセス内の命令の間で競合が生じた場合にのみ待ち状態を発生させる。この状態は内部メモリ競合と呼ばれる。此処でデータメモリ制御装置はCPUをべつの追加のCPUクロックに切り出し、アクセスを順に並べ、各々のアクセスを別々に実行する。2つのアクセスの優先順位を付ける際に、全てのロードが全ての格納アクセスより前に生じる。もしも両方のアクセスが共にロードであるかまたは共に格納の場合、DA1からのアクセスがDA2からのアクセスよりも前に行われる。表3はCPUが2つのデータアクセス(DA1およびDA2上で)を行った際に、どの様なアクセス条件が内部メモリ競合を与えるかを示している。
【0059】
【表3】
Figure 0004285803
【0060】
内部メモリへのDMAアクセス
もしも内部メモリへのDMAアクセスが全てのCPUアクセスで使用されているものと同一の16ビットバンクを要求しない場合は、このDMA操作はバックグラウンドで行われる。表3はDMAとCPUとの競合を判別するために使用される。ひとつの軸がDMAアクセスを表し、もう一方が1つのCPUデータポートからのCPUアクセスを表すと仮定している。続いて、この分析をもう一つのデータポートに対しても実施する。もしも両方の比較で競合が生じない場合は、CPU/DMA内部メモリ競合が存在しないことになる。ここで、CPUアクセスおよびDMAアクセスは互いにバックグラウンドで行われる。もしも比較の結果競合が生じる場合は、CPU/DMA内部メモリ競合が存在する。この場合、後ほど説明するように優先順位がDMAチャンネルのPRIビットから解読される。もしもDMAチャンネルがCPUよりも高い優先順位として構成されている場合は(PRI=1)、全てのCPUアクセスはDMAアクセスが完了するまで延期され、全てのCPUは1CPUクロックの間待ち状態を被る。もしも両方のCPUポートとDMAとが同一メモリブロックにアクセスする場合、待ち状態の数は2に増える。もしもCPUで要求されているブロックに対してDMAが複数の連続した要求を持っている場合、このCPUは必要なブロックに対する全てのDMAアクセスが完了するまで待機させられる。この反対に、もしもCPUがより高い優先順位にある場合は(PRI=0)、両方のCPUデータポートがそのブロックへのアクセスを終了するまでDMAアクセスは延期される。
【0061】
データエンディアン性
バイトアドレス指定可能マイクロプロセッサ内のデータ順列方法に2つの基準が存在する:
小エンディアン
大エンディアン、である。
【0062】
CPUおよびDMAはプログラム可能なエンディアン性をサポートしている。このエンディアン性は装置のLENDIAN (小エンディアン)ピンで選択される。LENDIAN=1 およびLENDIAN=0 はそれぞれ小エンディアンおよび大エンディアンを選択する。この選択はCPUおよびDMAの両方に適用される。メモリ内に存在するワードおよび半ワードデータ内のバイト順列方法は小エンディアンおよび大エンディアンデータと同一である。表4はメモリ内のデータワードのどのビットが宛先レジスタのどのビットの中にロードされるかを、全ての考えられる大または小エンディアンデータからのCPUデータロードに対して示している。メモリ内のデータは第1列内のLDW命令から結果としてレジスタの中に入れられたものと同一データと仮定している。表5はレジスタのどのビットが宛先メモリワードのどのビットの中にストアされるかを、大および小エンディアンデータからの全ての考えられるCPUデータストアに対して示している。発信元レジスタ内のデータは、第一列内のSTW命令から結果としてメモリの中に入れられたものと同一データと仮定している。
【0063】
【表4】
Figure 0004285803
【0064】
【表5】
Figure 0004285803
【0065】
周辺機器バス
此処に説明されている周辺機器はCPUおよびDMAにより制御レジスタのアクセスを通して制御されている。CPUおよびDMAはこれらのレジスタに周辺機器データバスを通してアクセスする。DMAは周辺機器バス制御装置に直接アクセスするのに対し、CPUはデータメモリ制御装置を通してアクセスする。
【0066】
バイトおよび半ワードアクセス
周辺機器バス制御装置は全ての周辺機器バスアクセスをワードアクセスに変換する。しかしながら、読み取りアクセスに際してはCPUおよびDMAは両者ともワードの正しい部分を抽出し、バイト並びに半ワードアクセスを適切に実施することが出来る。しかしながらどのバイトが読みとられるかに係わらず、周辺機器制御レジスタ読み込みによる副次的な影響は生じる。これとは反対に、バイトまたは半ワード書き込みはCPUおよびDMAは正しい値のみを可能化されたバイトの中に提供するように実行される。正しいことが保証されている値が表5に示されている。従って未定義の結果は可能化されていないバイトに書き込まれるはずである。もしも使用者が可能化されていないバイト内の値に関心を持たない場合はこれは許容出来る。そうでない場合は、周辺機器レジスタにワードアクセスを用いてアクセスすべきである。
【0067】
【表6】
Figure 0004285803
【0068】
CPU待ち状態
CPUからの独立した周辺機器バス制御装置アクセスは4つのCPU待ち状態を生じる。これらの待ち状態はパイプラインレジスタがCPUと周辺機器との間のオンチップ上の距離を横切る経路を遮断し、また同様に調停時間を確保できるようにするために挿入されている。連続したアクセスでは、最初のアクセスのみが3つのCPU待ち状態を必要とするが、これは周辺機器バス制御装置へのデータメモリ制御装置のインタフェースのパイプライン化された性質のためである。
【0069】
CPU/DMA調停
図4に示されるように、周辺機器バス制御装置はCPUおよびDMAの機能に関してこれらの間の調停を実施する。内部データアクセスと同様、DMA内のPRIビットがCPUとDMA間の優先順位を決定する。もしもCPUの間で競合が生じると(データメモリ制御装置経由で)優先順位の低い方は優先順位の高い方が周辺機器バス制御装置に対する全てのアクセスを完了するまで待機させられる。周辺機器バスはあたかも単一資源であるかのように調停されるので、優先順位の低い資源は優先順位の高い方がアクセスしているものだけではなく全ての周辺機器に対するアクセスを阻止される。
【0070】
図4を参照すると、これはDMA制御装置143のブロック図であってマイクロプロセッサ1のメモリ写像されたモジュールと相互接続されている。直接メモリアクセス(DMA)制御装置143はメモリマップ内のポイント間でCPUの仲介を受けずにデータ転送を行う。DMAはデータの移動を内部メモリ、内部周辺機器、または外部装置相互の間で、CPU動作のバックグラウンドの中で行うことが出来る。DMAは4つの独立したプログラム可能チャンネルを有し、DMA動作に関して4つの異なる環境を用意できる。各々のDMAチャンネルは異なる大きさ:8ビットバイト、16ビット半ワード、または32ビットワードのデータ要素を転送するように独立に構成することが出来る。これに加えて第五番目(オプション)チャンネルは、例えばホストポートインタフェースの様なアドレス生成能力を具備した周辺機器からのサービス要求に対応出来るようにしている。DMA動作を説明するに当たっていくつか重要な用語がある:
【0071】
読み取り転送:DMAはメモリ内の発信元位置からデータ要素を読み取る。
【0072】
書き込み転送:DMAは読み取り転送の間に読み取られたデータ要素をメモリ内の宛先位置に書き込む。
【0073】
要素転送:単一データ要素に対する読み取りおよび書き込み転送の組み合わせ。
【0074】
フレーム転送:各DMAチャンネルはフレーム毎に独立してプログラム可能な要素数を有する。フレーム転送が完了するとDMAは単一フレーム内の全ての要素を移動する。
【0075】
ブロック転送:各DMAチャンネルはまたブロック毎に独立してプログラム可能なフレーム数を有する。ブロック転送が完了するとDMAは移動するようにプログラムされた全てのフレームを移動する。
【0076】
DMA143は下記の機能を有し、その各々を以下の段落で説明する:
1)バックグラウンド動作:DMAはCPUとは独立に動作する。
2)高スループット:要素はCPUクロック速度で転送される。
3)4チャンネル:DMAは4つの独立したブロック転送の内容を追跡できる。
4)補助チャンネル:このチャンネルはホストポート150の様なアドレス生成能力を具備した周辺機器がCPUメモリ空間の中へ要求を行えるようにしている。
5)スプリット動作:単一のチャンネルを使用して周辺機器に対する受信並びに送信転送の両方を、コストを追加することなく2つのDMAチャンネルの如く効果的に実施することが出来る。
6)多重フレーム転送:各々のブロック転送は固定されたプログラム可能な大きさの多重フレームで構成することが出来る。
7)プログラム可能優先順位:各々のチャンネルはCPUのメモリ写像された資源に対して、独立にプログラム可能な優先順位を有する。
8)プログラム可能アドレス生成:各チャンネルの発信元ならびに宛先アドレスレジスタは、それぞれ各読み取りおよび書き込み転送に際してメモリを通して構成可能な指標を持つことが出来る。アドレスは一定に保持されるか、増加更新、減数更新されるか、またはプログラム可能な値によって調整される。このプログラム可能な値はフレームの最後の転送に対してと、先の転送に対してと異なる指標を持つことが出来る。
9)全アドレス32ビットアドレス範囲:DMAはメモリマップ内の任意のポイントにアクセスできる(図3A−3B参照):
a)オンチップデータメモリ。
b)オンチッププログラムメモリ、これはキャッシュとして利用されるよりもむしろメモリ空間内に写像される場合である。
c)オンチップ周辺機器。
d)外部メモリインタフェース(EMIF)。
e)プログラム可能幅転送:各々のチャンネルは8ビットバイト、16ビット半ワード、または32ビットワードのいずれかを転送するように独立に構成することが出来る。
f)自動初期化:ひとたびブロック転送が完了すると、DMAチャンネルは自動的に自分自身を初期化して次のブロック転送に備える。
g)事象同期:各々の読み取り、書き込み、またはフレーム転送は選択された事象によって開始される。
h)割り込み発生:各々のフレーム転送が完了するか、または全ブロック転送また同様に種々のエラー条件に応じて、各DMAチャンネルは割り込みをCPUに送る。
【0077】
DMA143はいくつかのメモリ写像された制御レジスタにより制御並びに構成される。表7および表8はDMA制御レジスタがCPU10のメモリ空間に中に写像される様子を示している。これらのレジスタはDMAグローバル制御およびデータレジスタと、同様に各チャンネル用の多数の独立した制御レジスタを含む。このDMAグローバルデータレジスタはチャンネルで選択された種々の機能に対して使用可能であり、これは表9に記述されている。図7はDMAグローバルデータレジスタを図示する。
【0078】
【表7】
Figure 0004285803
【0079】
【表8】
Figure 0004285803
【0080】
【表9】
Figure 0004285803
【0081】
DMAチャンネル制御レジスタが図8および図9に図示されている。DMAチャンネル一次(図8)および二次制御レジスタ(図9)はビットフィールドを含み、これは各々個別のDMAチャンネルを独立して制御する。これらのフィールドはそれぞれ表10および表11に説明されている。
【0082】
【表10】
Figure 0004285803
【表11】
Figure 0004285803
【0083】
【表12】
Figure 0004285803
【0084】
再び図3A−3Bを参照すると、メモリマップに関してDMを使用する際の特徴が詳細に説明されている。要求は4つの資源の1つに送られる:
1)外部メモリインタフェース
2)内部プログラムRAM
3)内部周辺機器バス
4)内部データRAM
【0085】
発信元および宛先はブロック転送の最初に計算される。従って、発信元アドレスはブロック転送を通してこれら4つの空間の同じ1つを指すものと仮定される。この制約はまた宛先アドレスにも適用される。
【0086】
各々のDMAチャンネルは直接CPUアクセスを通しての手動、または自動初期化のいずれかにより、独立に開始されるはずである。加えて、各DMAチャンネルは直接CPUアクセスを通して独立に停止または中断される。
【0087】
手動開始動作:特定のチャンネルに対してDMA動作を開始するために、一度全てのその他のDMA制御レジスタにはそれらの必要な値が書き込まれる、DMA制御レジスタはその必要な値としてSTART=01b が書き込まれなければならない。この値を既に開始されているDMAチャンネルに書き込んでも何の影響も生じない。
【0088】
中断動作:一度開始された後は、DMAチャンネルはSTART=10b を書き込むことで中断される。中断時には、全ての書き込み転送と読み取り転送要求が完了している要素の転送を完了する。また、もしもDMAチャンネルが全て必要な読み取り同期を有する場合は、完了するためにもう一つの要素の追加要素転送が許可される。中断されると、STATUS上の値は10b である。
【0089】
停止動作:DMAはまたSTART=00b を書き込むことで停止される。此処で、DMAは直ちに停止し、読み取り転送を完了した事で内部的に保持している全てのデータを廃棄する。DMAチャンネルの実際の状態はDMAチャンネル制御レジスタ内のSTART フィールドを読み取ることで監視出来る。DMA転送が完了すると、自動初期化が可能状態であればDMAチャンネルは停止状態に戻りSTATUS=00bとなる。
【0090】
次に自動初期化を説明する。DMAはブロック転送が完了した後自動的に自身を再初期化することが出来る。いくつかのDMA制御チャンネルは再ロードレジスタを通して次のブロック転送に備えて事前ロードされることが可能である。選択されたDMAグローバルデータレジスタは再ロードレジスタのように動作する。この機能を用いてDMAチャンネルのいくつかのパラメータを次のブロック転送に先だって都合よくセット出来る。自動初期化は次の事が出来る:
【0091】
連続動作:連続動作はCPUに対して長いゆっくりとした時間を与え、この間にDMAを再構築して後続の転送に備えることが出来る。通常、CPUは現在のブロック転送中の最後の書き込み転送が完了して次のブロック転送の最初の読み取り同期化を行う前に、直ちにDMAを再初期化しようとする。一般的に再ロードレジスタによって、これらの値を次のブロック転送に備えて現在のブロック転送が開始した後、いつでも再初期化することが可能である。
【0092】
繰り返し動作:連続動作の1つの特別な事例として、ブロック転送が完了した後DMAが先のブロック転送を繰り返す場合がある。この場合、CPUは各々のブロック転送用に再ロードレジスタに新たな値を事前ロードすることは無い。その代わりに、第一ブロック転送に際してロードするだけである。
【0093】
自動初期化可能化:DMAチャンネル制御レジスタ内に、START=11b を書き込むことにより、自動初期化が可能となる。この場合、ブロック転送が完了した後、DMAチャンネルは再開始され、選択されたDMAチャンネルレジスタに再ロードされる。もしも中断後の再開始の場合は、このSTART は自動初期化を可能とするために01b を再書き込みされなければならない。
【0094】
次にDMAチャンネル再ロードレジスタの装置を説明する。自動初期化に関して、後続のブロック転送は同様であると仮定する。従って、再ロード値はブロック転送中に修正されたこれらのレジスタ:転送カウンタおよびアドレスレジスタ、に対してのみ選択可能である。従って、DMAチャンネル転送カウンタ、また同様にDMAチャンネル発信元および宛先レジスタは関連する再ロードレジスタを有し、これはDMAチャンネル一次制御レジスタ(表10)内の関連するRELOADフィールドとして選択されたものとして有する。この再ロードレジスタは個別のDMAグローバルデータレジスタ内に格納される。
【0095】
自動初期化モード中に発信元または宛先アドレスレジスタを再ロードしないことが可能であることに注意されたい。この機能によりブロック転送中に変化しないレジスタの値を保持することが出来る。従って、DMAグローバルデータレジスタはブロック転送中に一定であった値に専用である必要はない。単一チャンネルが複数のチャンネルレジスタに対して同一の値を使用できる。例えば、スプリットモードに於いて、発信元および宛先アドレスは同じはずである。同様に、多重チャンネルは同一再ロード値を使用するはずである。例えば、2つのチャンネルは同一の転送計数再ロード値を有するはずである。
【0096】
ブロック転送が完了すると、これらのレジスタは関連する再ロードレジスタで再ロードされる。DMAチャンネル転送カウンタレジスタの場合、再ロードは全ブロック転送の終了直後では無く、各々のフレーム転送の終了後に発生することに注意されたい。DMAチャンネル転送カウンタへの再ロード値は、自動初期化が可能化された時ではなく、多重フレーム転送が構築された際にいつでも必要である。
【0097】
先に説明したように、DMAは読み取り転送を書き込み転送が行われる前に実施し、この機能を容易にするために必要なバッファリングを提供出来る。これを支援するために、ブロックおよびフレーム終了時に必要な再ロードは、DMAチャンネルの読み取り(発信元)および書き込み(宛先)部分とは独立に発生する。同様に、スプリットチャンネル動作の場合は後ほど説明するように、発信元および宛先アドレスは独立に再ロードされるが、これは関連する要素転送送信または受信がそれぞれブロック転送を完了した時点で行われる。
【0098】
DMAチャンネル転送カウンタ再ロードは、使用者により現在のブロック転送の最後のフレームが完了した後に続いて再書き込みされる。そうしないと、新たな再ロード値が現在のブロック転送の後続のフレーム境界に影響を与えてしまう。しかしながら、もしもフレームサイズが現行および次回ブロック転送で同じ場合は、この制約は問題とはならない。DMAチャンネル転送カウンタの完全な説明を次の段落で行う。
【0099】
図10はDMAチャンネル転送カウンタを図示する。DMAチャンネル転送カウンタは転送されるフレーム毎にフレームの数および要素の数を表すビットフィールドを含む。図11はDMAグローバルデータレジスタが転送カウンタ用の再ロード値として使用できるかを示している。
【0100】
FRAME COUNT:この符号無し16ビット値はブロック転送内の全フレーム数を設定する。従ってもしもブロック転送が単一フレームを含む場合、この値はデフォルトの1に設定されなければならない。ブロック転送当たりの最大フレーム数は65535である。このカウンタはフレーム転送の最後の読み取り転送が完了した時点で減数更新される。最後のフレームが転送されると、全カウンタにDMAチャンネル一次制御レジスタ内のCNT RELOADフィールドで選択されたDMAグローバルデータレジスタが再ロードされる。FRAME COUNTへの初期値0および1は同一の結果をもたらし、単一のフレームが転送されることに注意されたい。
【0101】
ELEMENT COUNT:この符号無し16ビット値はフレーム当たりの要素数を設定する。このカウンタは各要素の読み取り転送の後に減数更新される。フレーム転送毎の要素の最大数は65535である。各フレーム内の最後の要素に達すると、ELEMENT COUNTはDMAチャンネル一次制御レジスタ内のCNT RELOADフィールドで選択されたDMAグローバルデータレジスタの最下位16ビットが再ロードされる。この再ロードは自動初期化モードからは影響されない。ブロック転送が開始される前に、このカウンタ及び選択されたDMAグローバルデータレジスタには同一の最下位16ビットがロードされなければならない、これは最初および残りのフレームがフレーム毎に同一数の要素を確実に持つようにするためである。また複数フレーム転送に於いて、再ロード値が指定されなければならず、これは自動初期化が可能化された時に行われるのでは無い。もしも要素計数が0に初期化されると、動作は定義されない。
【0102】
次に同期について説明する。同期を取ることによりDMA転送のトリガをかけることが、内部周辺機器または外部ピンからの割り込みの様な事象により行える。各々のチャンネルに対して3種類の同期が可能である:
1)読み取り同期:各々の読み取り転送は実行する前に選択された事象が発生するまで待機する。
2)書き込み同期:各々の書き込み転送は実行する前に選択された事象が発生するまで待機する。
3)フレーム同期:各々のフレーム転送は実行する前に選択された事象が発生するまで待機する。
【0103】
同期事象の選択:事象はDMAチャンネル一次制御レジスタ内のRSYNC及びWSYNCフィールドで選択される。(図8)もしもこのレジスタ内でFS=1の場合は、RSYNCで選択された事象は全フレームを可能状態とする。31事象まで可能である。もしもこれらのフィールドの値が00000bに設定されると同期は不要である。この場合、読み取り、書き込みまたはフレーム転送は資源がそのチャンネルで使用できる状態になると直ちに行われる。これらのフィールド内の値と事象との間の関連が表12に示されている。
【0104】
【表13】
Figure 0004285803
【0105】
注:表12の中で、MCSPは多重チャンネルシリアルポート120を指しており、これは後ほど説明する。
【0106】
DMAチャンネル二次制御レジスタ(表11)は読み取りおよび書き込み同期事象用にSTATおよびCLRフィールドを含む。
【0107】
DMA同期事象のラッチ:選択された事象の非動作から動作状態への遷移が各々のDMAチャンネルでラッチされる。この遷移が生じると関連するSTATフィールドがDMAチャンネル二次制御レジスタ内に設定される。もしも同期が選択されていない場合はSTATビットの読み取りは常に1であることに注意されたい。また、単一の事象で複数の動作にトリガを掛けることが出来ることにも注意されたい。
【0108】
使用者による事象の消去並びに設定:ブロック転送が開始される前に懸案中の事象を消去する事により、DMAチャンネルは強制的に次の事象を待たされる。これとは反対に、ブロック転送が開始される前に事象を設定することにより、第一要素転送に必要な同期事象を強制的に実施することが出来る。事象(従って関連するSTATビット)はそれぞれ対応するCLRまたはSTAT事象に1を書き込むことにより消去または設定される。これらのビットにゼロを書き込んでも何の影響も無いことに注意されたい。また、CLRビットの読み取りは常に0であって関連の格納場所を持たない。設定または消去用に別々のビットが用意されていて、別の部分を設定することなく或るビットを消去したり、またその反対が出来るようにしている。使用者が手動で行う事象は同時に自動で行われる全ての事象よりも高い優先順位を持つことに注意されたい。
【0109】
次に自動事象消去を説明する。各々の同期事象に対してラッチされたSTATは、その事象に関連した動作が完了した時点でのみ消去される。事象の消去は可能な限り速やかに行われ、同期事象間の最小時間を短くしている。この機能は事象が認識される処理量を効果的に増大させる。同期の各種類の詳細な説明を以下に行う:
【0110】
読み取り同期条件の消去:読み取り同期用にラッチされた条件は、DMAが関連する読み取り転送要求を完了した時点で消去される。
【0111】
書き込み同期条件の消去:書き込み同期用にラッチされた条件は、DMAが関連する書き込み転送要求を完了した時点で消去される。
【0112】
フレーム同期条件の消去:フレーム同期はDMAが新たなフレーム内で最初の読み取り転送要求を完了した時点でRSYNC STATフィールドを消去する。
【0113】
続いてアドレス生成を説明する。各々のチャンネルに対して、DMAは各読み取り転送および書き込み転送用にアドレス計算を実行する。DMAは種々のデータ構造を生成できる。例えば、DMAは第n番目の要素を貫く配列を横切ることが出来る。また、別々の発信元から入力された1つのフレーム内で種々の要素を効率的に取り扱い、また各々の発信元からのデータを互いにグループとして纏めるようにプログラムすることが出来る。
【0114】
図12および図13はDMAチャンネル発信元アドレスと宛先アドレスレジスタを図示し、これらはそれぞれ次の読み取り転送および書き込み転送用アドレスを保持している。
【0115】
図8に示されるように、SRC DIRおよびDST DIRフィールドはそれぞれDMAチャンネル発信元および宛先アドレスレジスタを増加更新、減数更新したり、または影響を与えないように指標の設定を行える。デフォルトとして、これらの値は00bに設定されて、増加更新または減数更新が行われないようになっている。もしも増加更新または減数更新が可能状態となっていると、アドレス調整量はバイト単位の要素サイズとなる。例えば、もしも発信元アドレスが増加更新に設定され、また16ビット半ワードが転送されるとすると、このアドレスは各々の読み取り転送の後2つづつ増加更新される。
【0116】
DMAチャンネル指標レジスタによるアドレス調整:表10に示されるように、SRC DIRおよびDST DIRフィールドは、図14に図示されるように独立に別々のDMAグローバルデータレジスタを選択してアドレス調整量を決定することが出来る。別々のDMAグローバルデータレジスタがDMAチャンネル一次制御レジスタ内のINDEXフィールド経由で選択される。基本アドレス調整とは異なり、このモードはその要素転送が現行フレーム内で最後であるか否かに応じて異なる調整量を選ぶことを可能としている。通常調整値(ELEMENT INDEX)は選択されたDMAグローバルデータレジスタの最下位16ビットの中に含まれている。フレームの最後に対する調整値(FRAME INDEX)はDMAグローバルデータレジスタの最上位16ビットで決定される。これらのフィールドは共に16ビット値を含む。従って、指標量は−32768から32767の範囲を取りうる。
【0117】
これらのフィールドは以下のようにアドレス調整を行う:
1)ELEMENT INDEX:1つのフレームの最後の転送を除く全てに対し、ELEMENT INDEXは、DMAチャンネル発信元または宛先アドレスレジスタに対して、それぞれ各々の読み取りまたは書き込み転送の後にSRC DIRまたはDST DIRフィールドで選択されたように加算される量を決定する。
2)FRAME INDEX:もしも読み取りまたは書き込み転送がフレームの最後の場合、FRAME INDEX(そしてELEMENT INDEXでは無い)フィールドがアドレス調整用に使用される。これは単一フレームでも多重フレーム転送でも生じる。
【0118】
要素サイズ、整列、およびエンディアン:DMAチャンネル制御レジスタ内のESIZEフィールドを用いて、使用者はDMAが8ビットバイト、16ビット半ワード、または32ビットワードを各々の転送時に転送するように構成できる。以下のレジスタおよびビットフィールドは適切な整列値を用いてロードされなければならない:
1)DMAチャンネル発信元および宛先アドレスレジスタおよび全ての関連する再ロードレジスタ。
2)ELEMENT INDEX
3)FRAME INDEX
【0119】
ワード転送の場合、これらのレジスタは4の倍数の値を含まねばならず、これによってワードアドレスの上に整列される。半ワード転送の場合はこれらは2の倍数でなければならず、これによって半ワードアドレスの上に整列される。もしも整列されていない値がロードされた場合は、動作は定義されない。バイト転送に関しては整列に関する制約は存在しない。プログラムメモリに対する全てのアクセスは32ビット幅でなければならない。また、32ビットレジスタ内の個別の8ビットまたは16ビットフィールドにアクセスを試みる場合はそのエンディアンを意識する必要がある。例えば、小エンディアンの場合00bで終了するアドレスがLSバイトを選択する一方で、大エンディアンでは11bがLSバイトを選択する。
【0120】
次にフレーム指標を用いてアドレスを再ロードする例を説明する。自動初期化に際して、FRAME指標を転送する単一フレームブロックを再ロードレジスタの代わりに用いて次のアドレスを再計算することが出来る。例えば、10バイトが固定の外部アドレスからこれに代わる位置(1バイトスキップ)に移動される単一フレーム転送を考える:
SRC DIR=00b,固定発信元アドレス。
DST DIR=11b,プログラム可能指標値
ELEMENT INDEX=10b,2バイト宛先飛び越し量
FRAME INDEX=9x2=18=10010b,−18バイト分の位置を訂正して宛先を同一場所から再開始する。
【0121】
次に大規模の単一ブロックの転送例を説明する。ELEMENT COUNTとFRAME COUNTを共に用いて65535より大きなサイズの単一フレームブロック転送を効率的に行える。ここで、要素計数とフレーム計数の積を取って大規模で効果的な要素計数を形成できる。下記が実行されなければならない:
1)もしもアドレスがプログラム可能値(DIR=11b)を用いて調整されるように設定されている場合は、もしもアドレス調整がDMAグローバルデータレジスタで決定される場合は、FRAME INDEXはELEMENT INDEXに等しく無ければならない。これは発信元並びに宛先アドレスの両方に適用できる。もしもアドレスがプログラム可能値で調整されるように設定されていない場合は、この制約は適用されない、何故ならばデフォルトによって同一アドレス調整が要素およびフレーム境界に対して生じるからである。
2)フレーム同期は不能化されなければならない(DMAチャンネル一次制御レジスタ内でFS=0である)。これは大規模ブロックの中間部での同期要求を防止する。
3)第一フレーム内の要素数はEiである。後続のフレーム内の要素数は((F−1)xEr)である。有効要素計数は((F−1)xEr)+Eiである。ここで:
F=FRAME COUNTの初期値
Er=ELEMENT COUNT再ロード値
Ei=ELEMENT COUNTの初期値
【0122】
従って、128K+1要素を転送するには、F=5,Er=32K,そしてEi=1に設定すれば良い。
【0123】
格納の例を次に説明する。メモリ内の通常の位置に配置されているフレームの転送を行う(すなわち、第一フレームの第一転送に続いて、第二フレームの第一転送を行う):
1)ELEMENT INDEXをFxSに設定する。
2)FRAME INDEXを−(((E−1)xF)−1)xSに設定する、ここで
E=ELEMENT COUNT(フレーム当たりの要素数)および同様にELEMENT COUNT RELOADの初期値、
F=FRAME COUNT(フレームの総数)の初期値、
S=バイトで表した要素のサイズ、である。
【0124】
各々4つの半ワード要素(E=4,S=2)の3フレーム(F=3)の転送を考える。従って、ELEMENT INDEX=3x2=6、またFRAME INDEX=−(((4−1)x3)−1)x2=−16である。発信元アドレスは変更されず、宛先が0x80000000から開始されて増加更新されるものと仮定する。
【0125】
表13および表14はこの例に於いてこの格納作業が如何にして行われるかを示している。
【0126】
【表14】
Figure 0004285803
【0127】
【表15】
Figure 0004285803
【0128】
次にスプリットチャンネル動作の説明を行う。スプリットチャンネル動作は単一のDMAチャンネルが2つのチャンネルに対して、固定アドレスを有する外部または内部周辺機器から入力(受信)および出力(送信)ストリームの両方のサービスを行う能力を提供することを可能とする。
【0129】
図15はスプリットアドレス用に使用されるDMAグローバルデータレジスタを図示する。DMAチャンネル一次制御レジスタ内のSPLITフィールドで選択されたDMAグローバルデータレジスタはスプリット転送でアクセスされるべき周辺機器のアドレスを決定する:
【0130】
スプリット発信元アドレス:このアドレスはプロセッサー1への入力ストリームの発信元である。選択されたDMAグローバル制御レジスタはこのスプリット発信元アドレスを含む。
【0131】
スプリット宛先アドレス:このアドレスはプロセッサー1からの出力データストリーム用の宛先である。スプリット宛先アドレスはスプリット発信元アドレスよりも1ワードアドレス(4バイトアドレス)大きいと想定している。
【0132】
最下位3ビットが0に固定されていることに注意されたい。最下位2ビットはワードアドレスを強制的に整列させるためにゼロに固定されている。三番目の最下位ビットが0であるのは、スプリット発信元アドレスが偶数ワード境界上にあると想定しているからである。従ってスプリット宛先アドレスは奇数ワード境界上にあると想定している。これらの関係は転送の幅に関係なく保持される。内部周辺機器はこの協約に従う。外部周辺機器に関して、設計アドレスの復号は好適にこの協約に固執している。
【0133】
次にスプリットDMA動作を説明する。スプリット動作は送信要素転送と受信要素転送とで構成される。順番にこれらの各々は読み取りおよび書き込み転送から構成される:
1)送信要素転送
a)送信読み取り転送:データはDMAチャンネル発信元アドレスから読み取られる。発信元アドレスは続いて構成通りに調整される。この事象は同期が取られていない。
b)送信書き込み転送:送信読み取り転送からのデータがスプリット宛先アドレスに書き込まれる。この事象はWSYNCフィールドで示されるように同期が取られる。次に転送計数が減数更新される。DMAチャンネルは内部的に係属の受信転送の数に追従する。
2)受信要素転送
a)受信読み取り転送:データはスプリット発信元アドレスから読み取られる。この事象はRSYNCフィールドで示されるように同期が取られる。
b)受信書き込み転送:受信読み取り転送からのデータが宛先アドレスに書き込まれる。宛先アドレスは続いて構成通りに調整される。この事象は同期が取られていない。
【0134】
チャンネル毎には単一の要素計数およびフレーム計数しか存在していないので、ELEMENT COUNTおよびFRAME COUNTは受信および送信データの両方に対して同一である。スプリット動作を適切に働かせるために、RSYNCおよびWSYNCフィールドの両方を同期事象に設定しなければならない。また、フレーム同期はスプリットモードでは無効状態にしておかなければならない。
【0135】
全ての転送に関して上記の順序が維持される。しかしながら、送信転送は実行する前に全ての過去の受信要素転送が完了するのを待つ必要はない。従って、送信ストリームに関しては受信ストリームより先に行うことが可能である。DMAチャンネル転送カウンタは、関連する送信転送が完了した後に減数更新(または再初期化)される。しかしながら、発信元アドレスレジスタの再初期化は全ての送信要素転送が完了した後に行われる。この形態は送信転送が受信転送より8以上先に進んでいない場合に適用される。この場合、送信要素転送は中止されるがこれはおそらく同期事象が欠落することが原因である。受信または送信要素転送が他に対して7以下の場合、DMAチャンネルはこの情報を内部状態として保持する。
【0136】
次に資源調停と優先順位設定について説明する。優先順位は互いに競合する要求者のなかでどれが複数の要求の中から1つの資源を支配するかを決定する。これらの要求者には下記が含まれる:
1)DMAチャンネル
2)CPUプログラムおよびデータアクセス。
【0137】
資源には下記が含まれる:
1)内部データメモリの各インタリーブを含む内部データメモリ。
2)周辺機器バスを通してアクセスされる内部周辺機器レジスタ。
3)内部プログラムメモリ
4)外部メモリインタフェース(EMIF)
【0138】
2つの優先順位機能がプログラム可能である:
1)DMA対CPU優先順位:各々のDMAチャンネルは、関連するDMAチャンネル制御レジスタ内のPRIビットを設定することにより独立に高い優先順位モードと出来る。DMAグローバル制御レジスタ内のAUXPRIは補助チャンネルに対して同一の機能を設定できる。高優先順位モードの場合、関連するチャンネルの要求は高優先順位状態を示す信号と共に適切な資源に送られる。これら全てのフィールドのディフォルトを0とする事で、高優先順位モードを無効とする。各々の資源はこの信号を自身の優先順位処理手順の中で用いて競合を避けることが出来る。この信号をどの様に利用するかは個別の資源の説明書を参照されたい。
2)DMAチャンネル間の優先順位:DMAは固定の優先順位処理手順を有しており、チャンネル0の優先順位が最も高く、チャンネル3の優先順位が最も低い。補助チャンネルに対してはこの階層の中の任意の優先順位が与えられる。
【0139】
図16はDMAグローバル制御レジスタを図示しており、これはチャンネル間の優先順位を規定している。DMAグローバル制御レジスタ内のフィールドは全てのDMAチャンネルに影響を与え、これらは表15に記述されている。このレジスタ内のフィールドは以下の副セクションの中で参照される。
【0140】
【表16】
Figure 0004285803
【0141】
DMAチャンネル間の優先順位は、2つまたはそれ以上のチャンネルが転送実行準備が出来ているときに、どのDMAチャンネルが読み取りまたは書き込み転送を最初に実施するかを決定する。
【0142】
補助チャンネルの優先順位はDMAグローバル制御レジスタ内のCH PRIフィールドをプログラミングすることで構築出来る。デフォルトとして、CH PRI=0000bでリセットされる。これは補助チャンネルを最高位優先順位に設定し、続いてチャンネル0、チャンネル1、チャンネル2と続き、チャンネル3が最低位の優先順位となる。
【0143】
チャンネル間の調停は各CPUクロック毎に読み取りおよび書き込み転送に対して独立して行われる。いかなる種類であっても同期を待機しているプロセスにある全てのチャンネルはDMAの制御を失い、最低優先順位チャンネルとなる。一度同期が受信されると、そのチャンネルは最低優先順位チャンネルからDMAの制御を再取得する。この規則はスプリットモード転送の送信および受信ポートに対して独立に適用される。送信ポーションは受信ポーションよりもより高い優先順位を有する。
【0144】
もしも複数のDMAチャンネルとCPUとがひとつの資源を争っている場合は、どのDMAチャンネルが優先順位を持っているかの調停が論理的に最初に行われる。次に最高位のDMAチャンネルとCPUとの間の調停が行われる。通常、もしもチャンネルの優先順位がCPUよりも低い場合は、全てのより低い優先順位のチャンネルもまたCPUよりも低い優先順位となるはずである。同様に、もしもチャンネルがCPUよりも高い優先順位を持っている場合は、全てのより高い優先順位のチャンネルはCPUよりも高い優先順位となるはずである。このDMA対CPUの調停は各々の個別の資源によって決定される。より詳しい説明はそれらの資源の説明書を参照されたい。PRIフィールドはそのチャンネルが中断または停止されたときにのみ修正されることに注意されたい。
【0145】
最高位の優先順位のチャンネルが、一度必要な読み取り同期を受信すると、低位の優先順位のチャンネルからDMAの制御を獲得する。スイッチングチャンネルに於いて、現行のチャンネルは要求された読み取りからの全てのデータが完了するのを許可する。続いてDMAはどのより高い優先順位のチャンネルがDMA制御装置読み取り動作の制御を獲得するかを決定する。そのチャンネルは続いてその読み取り動作を開始する。同時に、先行のチャンネルからの書き込み転送の完了が許可される。
【0146】
もしも複数のDMAチャンネルが読み取り並びに書き込みに関して同一の資源を争っている場合は、より高い優先順位のチャンネルが勝つ。例えばチャンネル0がEMIFから読み取りを行おうとし、またチャンネル1がEMIFに書き込もうとしている場合、チャンネル0の読み取りが最初に行われる。もしも1つのチャンネルが同一の資源に対して読み取り並びに書き込みの両方を要求している場合、書き込みが最初に行われる。
【0147】
次にDMAチャンネル条件決定方法を説明する。DMAチャンネル動作に関して、使用者に重大なマイルストンまたは起きそうな問題を通知するためにいくつかの条件が利用できる。これらの事象(CONDビットフィールドで示される)はDMAチャンネル二次制御レジスタ内に保持される。
【0148】
このレジスタはまたこれらの事象を有効化して、DMAがCPUのチャンネルxに対して対応する割り込み有効(IE)ビットフィールドを通して割り込みトリガをかける方法をも提供している。もしもCONDビットおよびその対応するIEビットが設定されると、その条件が有効化されて関連するDMAチャンネルからCPUへの割り込み信号の状態を変化させる。もしもDMAチャンネルx制御レジスタ内のTCINTビットが設定されると、全ての有効化された条件の論理ORを取ってDMA_INTx信号が形成される。それ以外の場合はDMA_INTx信号は無効である。この論理図が図17に示されている。割り込み選択器で選択されてDMA_INTが低状態から高状態に変化すると割り込み条件が生成されてCPUでラッチされる。
【0149】
DMAチャンネル二次制御レジスタ内のSX COND,WDROP,およびRDROPビットは警告条件として取り扱われる。もしもこれらの条件が有効化されて稼働している場合、これらはTCINTビットの値に関係なくDMAチャンネルを運転状態から中断状態に移行する。
【0150】
もしもCONDビットのIEビットが設定されると、そのCONDビットは使用者が0を書き込むことによってのみ消去される。それ以外の場合はCONDビットは以下の章で示されるように自動的に消去される。使用者が1をCONDビットに書き込んでも無効である。従って手動でその条件を強制的に作ることは出来ない。
【0151】
このレジスタ内のほとんどの値はリセットで消去される。1つの例外はブロック完了事象(BLOCK IE)に対する割り込み有効であって、これはリセット時に設定される。従って、デフォルトとしてブロック転送完了条件のみがCPU割り込みに作用できる唯一の条件である。その他の条件は関連するIEビットを設定することで有効化出来る。
【0152】
表16はDMAチャンネル二次制御レジスタ内の各々の条件を記述している。システムアプリケーションに応じて、これらの条件はエラーを提示する。注意事項として、最終フレーム条件は再ロードレジスタ値を自動初期化用に変更するように使用できる。フレーム指標および要素計数再ロードは全てのフレームに使用される。従ってブロック転送に於いて最終フレーム転送を除く全てが完了するのを待ってこれらの値を変更する。それ以外の場合は、現行(次回分では無く)ブロック転送が影響される。
【0153】
【表17】
Figure 0004285803
【0154】
図18はデータバスと内部保持レジスタを含むDMA制御装置の内部データ移動経路を示す。
【0155】
各DMAチャンネルは独立して4つの発信元および宛先の1つを選択することが出来る:
1)EMIF 103
2)内部プログラムメモリ23
3)内部データメモリ22
4)内部周辺機器バス110
【0156】
従って、読み取りおよび書き込みバスが各々のインタフェースからDMA制御装置に用意されている。
【0157】
補助チャンネルはまた読み取りおよび書き込みバスを有する。しかしながら補助チャンネルはDMAに対してアドレス生成を提供するので、そのバスの名称規約は異なっている。例えば、補助チャンネルからDMAを通してのデータ書き込みは補助書き込みバスを通して実行される。同様に、補助チャンネルからDMAを通してのデータ読み取りは補助読み取りバスを通して実行される。
【0158】
本発明の1つの特徴は9段DMA FIFO300保持経路であって、これは内部プログラムおよびデータメモリ、同様に外部同期DRAM(SDRAM)または同期バーストSRAM(SBSRAM)を含む高性能メモリへのバーストを容易にするために具備されている。チャンネルの保持レジスタ310a,310b,310cまたは310dと組み合わされて、これは効果的に11段FIFOとなる。
【0159】
実際にはFIFOには3つの構成部品が存在している:
1)アドレスFIFO320は読み取りアドレスの2つの最下位ビットおよび読み取り進行サイクル時のend _of_frame およびend _of_block 状態を格納する。
2)36ビット幅データFIFO300は、32ビット読み取りデータワードを読み取り確認のためにアドレスFIFOから送られるデータと共に格納する。
3)2段の中間段310a−310dはアドレス段から送られるデータをデータFIFOに行く前に格納するが、読み取りデータ待ち時間には2サイクルの肯定確認が必要だからである。
【0160】
10個の読み取り進行(adv)サイクル中に、全ての書き込みadvの読み取り肯定確認(ack)が始まる。これらのackの開始によりアドレスFIFO320からのデータが取り除かれ、これらをデータFIFO300内に読み取りデータと共に配置する。従ってデータ項目はこれらの段を通って分配される。計数論理回路340が存在し、これは各々の段に格納されている項目数を追跡している。
【0161】
どの瞬間にも唯1つのチャンネルのみがFIFOを制御している。1つのチャンネルがFIFOの制御権を得るには下記の条件が全て適用されなければならない:
1)そのチャンネルは有効状態の読み取りまたは書き込み同期を有していないこと。スプリットモードは読み取りおよび書き込み同期を必要とするため、FIFOはスプリットモード中のチャンネルでは使用されない。もしもフレーム同期のみが有効な場合はFIFOはそのチャンネルで使用されることに注意されたい。
2)チャンネルが動作中であること。
3)FIFOがその他全てのチャンネルからのデータを受け付けていないこと。
4)このチャンネルが上記3つの条件を満たすものの中で最も高い優先順位のチャンネルであること。
【0162】
第3番目の制限は”head-of-line”ブロッキングを最小化する。Head-of -line ブロッキングはDMAがその第一要求を行う前に一連の低位優先順位に対するより高い優先順位の待ちを要求する際に生じる。その後より高位の優先順位のチャンネルはその要求をその保持レジスタを通して完了する。保持レジスタはDMA制御装置を通した場合ほど高い処理量は実現しない。ギャップの中で低位優先順位のチャンネルは読み取り転送を開始することは無いが、その書き込み転送を完了することによってFIFOをフラッシュすることが出来る。より高位の優先順位のチャンネルは未だFIFOの制御に入っていないので、そのアクセスの中でギャップが生じ、そこではより低位の優先順位のチャンネルがその転送をFIFOから流す。FIFOが消去されて、もしも高位優先順位チャンネルが停止されていなければ、これはFIFOの制御を獲得する。
【0163】
DMA FIFOは2つの目的を有する:
1)性能向上
2)調停待ち時間の減少
【0164】
性能向上:FIFOは書き込み転送に先立って読み取り転送を可能とする。この特徴により要素転送の最後に利用可能な転送帯域幅での変更に対する罰則を最小と出来る。従ってDMAは予想転送の読み取りおよび書き込み部分に於いて別々のウィンドウを利用することが出来る。もしも要求を行っているDMAチャンネルがそのFIFOを用いている場合は、その資源はCPUクロックサイクル速度で読み取りまたは書き込みアクセスを持続することが出来る。しかしながら、第一アクセスを実行する際にはいくらかの待ち時間が生じるはずである。資源とDMA制御装置との間のハンドシェイキングにより、後続の要求と受信された読み取り転送データの待ち時間の速度が制御される。
【0165】
読み取りおよび書き込みアクセスをCPUクロック速度で持続するために、FIFOは満杯にすることは出来ない。FIFOが満杯になるのを避けるために、読み込み要求が最後に空になったFIFO位置にデータを入れる前にデータがFIFOから書き出され始めなければならない。周辺機器ハンドシェイク動作から、我々は11ワードのFIFO段が必要と判断した。従って、どの時点でもDMAは書き込み転送の完了を待っている11個までの読み取り転送待ち行列をFIFOの中に持っている。
【0166】
CPUに対する調停待ち時間の減少:個別の資源に対する任意の懸案要求から読み取りデータを捕獲する。例えば、DMAがデータをパイプライン化されているSDRAMまたはSBSRAMの様な外部メモリから内部データメモリにデータを読みとる場合を考える。CPUには要求を行うDMAチャンネルよりも高位の優先順位が与えられており、EMIFの競合プログラムフェッチを行うと仮定する。また、同時にこのCPUは内部メモリの全てのバンクにアクセスし、DMAを排除していると仮定する。この場合、FIFOは懸案DMAアクセスを完了しプログラムフェッチを進めることを可能とする。DMAがパイプライン化された要求構造をしているため、どの時点でもDMAはそのデータが未だ到着していない11個までの懸案読み取り転送要求を持つことが可能である。11個の要求が未処理となると、DMAは後続の読み取り転送要求を中止する。
【0167】
各々のチャンネルは専用の内部保持レジスタを有する。もしもDMAチャンネルが内部FIFOではなくむしろその保持レジスタを通してデータを転送しているとすると、読み取り転送はその結果として行われる。一度読み取り転送要求が開始されると、次の読み取り転送は読み取りデータが保持レジスタ内に到着するまで開始されない。DMA制御装置がスプリットモードであるか否かによって追加の制約が適用される:
1)スプリットモード:2つのレジスタがスプリットモード用の別々の送信および受信データストリーム保持レジスタとして働く。送信および受信読み取り転送のいずれに対しても、関連する書き込み転送要求が完了するまで次の読み取り転送要求は出されない。
2) 非スプリットモード:しかしながら、スプリットモードで無い場合は、データが到着すると次の読み取り転送は関連する書き込み転送が完了するのを待たずに行われる。しかしながら、2つの保持レジスタしか無いので、読み取り転送は書き込み転送の1つだけ前に居る。
【0168】
説明した構造を使用して、DMAは単一サイクル処理量で要素転送を実行することが可能であるが、それは読み取り転送および書き込み転送に対して別々の資源にアクセスし、またこれらの資源の両方が単一サイクル処理量を有する場合である。ひとつの例は単一サイクル外部SBSRAMから内部データメモリに、別のチャンネルまたはCPUから競合を受けることなく行われる非同期ブロック転送であろう。DMA性能は下記で制限される:
【0169】
1)それが要求する資源の処理量および待ち時間。
2)読み取り、書き込み、またはフレーム同期に対する待ち。
3)他のDMAチャンネルとの資源に対する競合。
【0170】
再び図4を参照して、DMA動作完了ピン、DMAC(0−3)を次に説明する。DMA動作完了ピンは各々のチャンネル(DMAC0−DMAC3)に対して事象を発生する外部論理回路へのフィードバック方法を提供する。DMAチャンネル二次制御レジスタ内のDMAC ENビットフィールドで決定されるように、このピンはRSYNC STST,WSYNC STAT,BLOCK COND,またはFRAME CONDの状態を反映することが可能であり、または高または低汎用目的出力として取り扱われる。もしもDMACがRSYNC STATまたはWSYNC STATを反映している場合、外部的に一度同期事象が認識されるとDMACは低から高状態へ遷移する。その同一事象のサービスが終わると(その状態ビットが消去されることで示されるように)、DMACは高から低状態へ遷移する。チップから送り出される前にDMAC信号はCLKOUT2(CPUクロック速度の1/2)で同期される。これらの信号の有効期間は最低2 CLKOUT2周期幅が保証されている。また、たとえ同期前であってもパルスは1CPUクロック周期幅だけなので、最小2CLKOUT周期の有効高パルスがDMACピンに出現する。
【0171】
再び図1Aを参照すると、デバッグ中にテストシステム51内のエミュレータを用いて、CPUを実行パケット境界上で停止させて、単一ステップ動作、ベンチマークテスト、プロフィール抽出、またはその他のデバッグ用途で使用する。使用者はこの時にDMAが一時中断をするかまたは実行継続するかの構成を行うことが出来る。この機能はDMA一時制御レジスタ内のEMODビットを0または1にそれぞれ設定することで実施される。もしも一時中断の場合は、STATUSフィールドがそのチャンネルの一時中断状態を反映する。補助チャンネルはエミュレーション停止中も実行を継続する。米国特許第_____(明細書TI−24946)にはマイクロプロセッサ1のエミュレーションが完全に詳細に説明されており、此処に記述することで参照されている。
【0172】
HPI
概要
図4に示されているように、ホストポートインタフェース(HPI)はパラレルポートであって、これを通してホストプロセッサはCPUのメモリ空間に直接アクセスを行える。ホスト装置はインタフェースのマスタなので、そのアクセスの容易さを増加させる。ホストおよびCPUは情報を内部または外部メモリを経由して交換できる。加えて、ホストはメモリ写像された周辺機器に対して直接アクセスを有する。CPUのメモリ空間への接続性はDMA制御装置を通して提供される。CPUにアクセス不能な専用アドレス並びにデータレジスタはHPIをDMA補助チャンネルに接続し、これは続いてHPIをCPUのメモリ空間に接続する。インタフェースを構成するために、HPIおよびCPUはHPI制御レジスタ(HPIC)にアクセス出来る。ホストはホストアドレスレジスタ(HPIA)およびホストデータレジスタ(HPID)また同様にHPICに外部データ並びにインタフェース制御信号(図19)を用いてアクセスすることが出来る。
【0173】
図19はHPIへのホストインタフェースの簡略図を示す。このHPIは経済的な16ビット外部インタフェースに自動的に後続の16ビット転送を結合して、CPUに対して32ビットデータを提供する。ホスト装置がデータをHPIDを通して転送するとき、DMA補助チャンネルはCPUのアドレス空間にアクセスする。HPIは高速back-to-backホストアクセスを支援する。メモリ写像された資源に対する競合が無い場合は、HPIは4CPUクロック毎に1つの16ビット値を転送することが出来る。従ってDMA補助チャンネルは8CPUクロック毎に1つの32ビットアクセスを実行できる。
【0174】
外部HPIインタフェースは16ビットHPIデータバスおよびインタフェースを構成しかつ制御する制御信号から構成されている。このインタフェースは種々のホスト装置を極わずかの論理回路の追加または全く必要とせずに接続することが出来る。
【0175】
16ビットデータバス(HD0−−HD15)は情報をホストと交換する。チップアーキテクチャが32ビットワード構造であるため、ホストとの全ての転送は2つの連続する16ビット半ワードから成っている。ホストデータ(HPID)書き込みアクセスに際して、HBE−1:0バイトは選択を可能とし、このバイトは32ビットワードでかき込まれる必要がある。HPIA,HPICアクセス、同様にHPID読みとりアクセスは32ビットアクセスとして実行され、バイト有効化は使用されない。専用のHHWILピンは第一または第二半ワードが転送されているか否かを指示する。内部制御レジスタビットは、第一または第二半ワードが1つのワードの上位半ワードの中に設定されたか否かを判定する。ホストは実行中のHPIアクセスの第一半ワード/第二半ワード(HHWIL低/高)の順序を壊してはならない。
【0176】
2つのデータストローブ(HDS1−およびHDS2−)、読みとり/書き込み選択(HR/W−)、およびアドレスストローブ(HAS−)はHPIが種々の工業標準に基づくホスト装置と、極僅かの論理回路を追加するかまたは全く追加する必要なく、インタフェースを取れるようにしている。HPIはホストとマルチプレクスされているかまたは専用のアドレス/データバス、1データストローブおよび読みとり/書き込みストローブ、または読みとりおよび書き込み用の2つの別々のストローブと容易にインタフェースを取ることができる。
【0177】
HCNTL1:0制御入力は、どのHPIレジスタがアクセスされているかを示す。これらの入力を用いて、ホストはHPIA(これはCPUメモリ空間内のポインタとして働く),HPIC,またはHPIDへのアクセスを指定できる。これらの入力はHHWILと共に、ホストアドレスバスビットまたはこれらのビットの機能によって共通に駆動される。HPICに書き込むことにより、ホストはCPUに割り込みを欠けることが可能であり、一方CPUはホストへの割り込み出力HINT−を能動化することができる。
【0178】
ホストはHPIDに、HPIAのオプションの自動アドレス更新でアクセスする事が出来る。この機能により順番に並んでいるワード位置への読みとりまたは書き込みが容易になる。加えて、自動更新HPID読みとりは自動更新されたアクセスでのデータの事前フェッチを行うので、後続のホスト読みとり要求での待ち時間が減少される。HPI準備完了ピン(HRDY−)はホスト待ち状態の挿入を可能とする。待ち状態は、HPI経由でアクセスされたメモリマップ内の点への待ち時間と、同様にホストアクセスの速度とによっては必要である。ホストアクセスの速度によっては、先のHPID書き込みアクセスまたは事前フェッチされたHPID読みとりアクセスが完了する前にホストがホストポートへアクセスを試みようとした際に準備中状態を強制する場合もある。この場合、HPIはHRDY−経由でホストを切り離す。HRDY−は自動的に(ソフトウェアのハンドシェイクは不要)ホストアクセス速度をDMA補助チャンネルからのデータ配信速度に調整するための簡便な方法を提供する。HRDY−ピンの特長を利用できないハードウェアシステムの場合、HPIC内のHRDYビットがソフトウェアハンドシェイクを使用するのと同じように利用できる。
【0179】
HPI信号説明
外部HPIインタフェース信号は種々の型式のホスト装置に対してフレキシブルなインタフェースを実現する。表17はHPIピンとそれらの機能を表示している。この章の残りの部分でピンを詳細に説明する。
【0180】
【表18】
Figure 0004285803
【0181】
データバス:HD15:0
HD15:0はパラレル双方向3状態データバスである。HDはHPI読みとりアクセスを実行していない場合は高インピーダンスに置かれている。
【0182】
アクセス制御選択:HCNTL1:0
HCNTL1:0はどの内部HPIレジスタが使用中であるかを示す。これら2つのピンの状態はHPIアドレス(HPIA)、HPIデータ(HPID)、またはHPI制御(HPIC)レジスタへのアクセスを選択する。HPIAレジスタはHPIメモリ内へのポインタとして働き、HPICは転送に関する制御並びに状態ビットを含み、またHPIDは転送される実データを含む。加えて、HPIDレジスタはオプションの自動アドレス更新でアクセス出来る。表18はHCNTL0/1ビット機能を説明している。
【0183】
【表19】
Figure 0004285803
【0184】
半ワード識別選択:HHWIL
転送の第一または第二半ワードを識別する(最上位または最下位ではない・・・これはHPICレジスタ内のHWOBビットで指定されており、この章で後ほど説明する。)HHWILは第一半ワードに対しては低、また第二半ワードに対しては高状態を取る。
【0185】
バイト有効:HBE−1:0
HPID書き込みに際して、HBE−1:0の値は32ビットワードのどの部分が書き込まれるべきかを示す。HBE−1:0の値はHPIAまたはHPICアクセスまたはHPID読み取りに際して重要ではない。HPID書き込みに際し、HBE0−は半ワード中の最下位バイトを有効とし、HBE1−は半ワード中の最上位バイトを有効とする。表19は有効な組み合わせを示す。バイト書き込みに対して、半ワードアクセスのいずれか(両方ではない)の1つのHBE−のみが活性低状態に有効化される。半ワードデータ書き込みに対して、両方のHBE−が半ワードアクセスのいずれか(両方ではない)内で活性低状態に保持されなければならない。ワードアクセスに対して、両方の半ワードアクセス内で両方のHBE−が活性低状態に保持されなければならない。それ以外の組み合わせは無効である。バイト有効およびCPUのエンディアン性(LENDIANピン経由で選択される)は、アクセスで示された論理アドレスを決定する。
【0186】
【表20】
Figure 0004285803
【0187】
読み取り/書き込み選択:HR/W−
HR/W−はホスト読み取り書き込み選択入力である。ホストはHPIを読みとるためにはHR/Wを高状態に駆動し、HPIに書き込むためには低状態に駆動しなければならない。読み取り/書き込み選択出力または読み取りまたは書き込みストローブのいずれかを具備していないホストはこの機能のためにアドレスラインを使用できる。
【0188】
準備完了:HRDY−
活性低の場合、HRDY−はHPIが転送を実行する準備が完了していることを示す。不活性高の場合、HRDY−はHPIが先のHPID書き込みまたはHPID読み取り事前フェッチアクセスの現行読み取りアクセスの内部部分を完了させるために使用中であることを示す。HCS−はHRDYを有効化する;すなわちHCS−が低の場合HRDYは常に低である。
【0189】
ストローブ:HCS−,HDS1−,HDS2−
CS−,HDS1−,HDS2−は下記のいずれかによってホストとの接続を可能とする:
読み取り/書き込み選択を具備した単一ストローブ出力。
別々の読み取りおよび書き込みストローブ出力。この場合、読み取りまたは書き込み選択は読み取りおよび書き込み選択に対して異なるアドレスを使用して実施できる。
【0190】
図20はHCS−,HDS1−,およびH052入力の等価回路を示す。一緒に使用することにより、HCS−,HDS1−,およびHDS2−は活性低内部HSTRB−信号を生成する。HSTRB−はHCS−が活性低でHDS1−およびHDS2−のいずれか(両方では無い)が活性低の場合にのみ、活性低となることに注意されたい。HSTRB−の立ち下がり(HAS−が非活性高状態に固定されたとき)は、HCNTL1:0,HHWIL,HR/W−,およびHBR−1:0をサンプリングする。従って、最後に落ちたHDS1−,HDS2−,またはHCS−がサンプリング時間を制御する。HCS−はHPIの有効入力として働き、アクセス中は低状態でなければならない。しかしながら、HSTRB−信号がアクセス間の実際の境界を決定するため、HCS−はHDS1−およびHDS2−の両方が共に非活性高または活性低となるまで、後続のアクセスの間低状態に留まっているはずである。
【0191】
別々の読み取りおよび書き込みストローブを具備したホストは、これらのストローブをHDS1−またはHDS2−のいずれかに接続する。単一データストローブを具備したホストは、使用されていないピンを高状態としてそのストローブをHDS1−またはHDS2−のいずれかに接続する。HDSの接続に係わらず、HR/W−は転送の方向を決定するために要求される。HDS1−及びHDS2−は内部的に排他論理NORが取られているので、高状態の真データストローブを具備したホストは、その他のHDS入力を低状態に接続してそのストローブをHDS入力の1つに接続することが出来る。
【0192】
HSTRB−は3つの目的で使用される:
1.読み取りに際して、その立ち下がりは全てのアクセス型式に対してHPI読み取りアクセスを開始する。
2.書き込みに際して、その立ち上がりは全てのアクセス型式に対してHPI書き込みアクセスを開始する。
3.HPI制御入力をラッチする立ち下がりは下記を含む:HHWIL,HR/W−,HBE01:0,HCNTL1:0。HAS−もまた制御入力のラッチに影響を与える;以下の説明を参照。
【0193】
加えて、HCS−はHRDY出力のゲート制御を行う。別の言葉で言えば、HCS−が活性低の場合にのみ、準備中状態は非活性高状態で駆動されたHRDY−ピンで示される。
【0194】
アドレスストローブ入力:HAS−
HAS−はHCNTL1:0,HBE−1:0,HR/W−,及びHHWILをアクセスサイクルの初期の段階で取り除くことが出来るので、バス状態をアドレスからデータ情報に切り替えるのに更に多くの時間が捻出できる。この特徴により、マルチプレクスアドレス及びデータ型バスへのインタフェースが容易になる。この型のシステムに於いて、ALE信号がしばしば提供され、これは通常HAS−に接続された信号である。
【0195】
マルチプレクスアドレスおよびデータバスを具備したホストはHASをそれらのALEピンまたは等価のものに接続する。次にHHWIL,HCNTL0/1,およびHR/W−はHAS−の立ち下がりでラッチされる。使用時にはHAS−はHCS−,HDS1−またはHDS2−の遅いものよりも先んじる必要がある。別々のアドレスおよびデータバスを具備したホストはHASを高状態に接続できる。この場合、HHWIL,HCNTL0/1,およびHR/Wは、HASが非活性(高状態)に留まっている間に、HDS1−,HDS2−,またはHCS−の一番最後ものの立ち下がりでラッチされる。
【0196】
ホストへの割り込み:HINT−
ホスト割り込み出力である。HPIC内のHINT−ビットで制御される。チップがリセット中は高状態で駆動される。この信号は後ほど更に詳しく説明する。
【0197】
HPIバスアクセス
図21および図22はそれぞれHAS−が使用されていない場合と、使用されている場合のHPIアクセスタイミングを示す。HSTRB−は図20に記述されている、内部的に生成されたストローブを表す。HADは典型的にホストアドレスラインで駆動される制御信号を表す:HCNTL1:0,HR/W−,HHWIL,およびHBE−1:0。HCNTL1:0およびHR/Wは両方の半ワードアクセスに対して同一の値を持たなければならない。HHWILは第一半ワード転送に対しては低、また第二に対しては高でなければならないことを示すために別々に示されている。もしもHASが使用されていない場合は(図21に示されるように高状態に固定)、HSTRB−の立ち下がりでこれらの信号がラッチされる。図22に示されるようにHASが使用されている場合は、HASの立ち下がりでこれらの値がラッチされる。この場合、HASの立ち下がりはHSTRBの立ち下がりよりも先行しなければならない。読み取りに際して、HSTRB−の立ち下がりよりも少し遅れてデータは有効となる。もしも有効データがHPID内に未だ存在していない場合は、このデータはHRDY−の立ち上がりで設定され、HSTRBの立ち上がりまで保持される。書き込みに際して、ホストはHSTRB−の立ち上がりに関連してデータを設定しなければならない。
【0198】
HPIレジスタ
表20はHPIがホスト装置とCPUとの間の通信で使用する3つのレジスタを纏めたものである。HPIDは現行のアクセスが読み取りの場合、HPIメモリから読みとられたデータ、または現行のアクセスが書き込みの場合、HPIメモリへ書き込まれる予定のデータを含む。現行のアクセスが発生するアドレスをHPIメモリ内に含む。このアドレスは30ビットワードのアドレスであるため、最後の2ビットはHPIA書き込みによっては影響されず、常に0として読み込まれる。
【0199】
【表21】
Figure 0004285803
【0200】
HPI制御レジスタ(HPIC)
通常、HPIC(図19Aおよび表21参照)は構成ビットを設定しインタフェースを初期化するようにアクセスされた第一レジスタである。従って、HPICは同一の高および低半ワード内容を具備した32ビットレジスタとして構成される。ホスト書き込みに際して、両方の半ワードは同一で無ければならない。低側半ワードおよび高側半ワードは実際は同一の格納位置であることに注意されたい。読み取り専用に予約された値には格納場所は割り当てられていない。低側半ワードへのCPU書き込みのみがHPIC値とHPI動作に影響を与える。通常、HPICは構成ビットを設定しインタフェースを初期化するようにアクセスされた第一レジスタである。従って、HPICは同一の高および低半ワード内容を具備した32ビットレジスタとして構成される。
【0201】
【表22】
Figure 0004285803
【0202】
HRDYおよびFETCHを使用したソフトウェアハンドシェイク
先に説明したように、HRDY−ピンはホストに対してHPIDアクセスが完了していないことを示すことが出来る。例えば、現行HPIDアクセスは先行するHPIDアクセス書き込みが完了するか、または先行するHPID事前フェッチ読み取りが完了するのを待たされる。また、現行のHPID読み取りアクセスはその要求したデータが到着するのを待たされる。しかしながら、HPIC内のHRDYおよびFETCHビットはソフトウェアハンドシェイクを可能とし、これはハードウェア準備完了制御が必要とされないシステム内でHPI接続を可能とする。全ての事前フェッチされたデータはHPIレジスタが書き込まれるかまたは、次のHPI読み取りの後か、いずれかが先に来るまで保持される。FETCHおよびHRDYビットは下記に示すように読み取り転送を実行するように使用される:
1.ホストがHRDYビットを設定するためにポーリングする。
2.ホストが希望するHPIA値を書き込む。このステップはもしもHPIAが既にその希望する値に設定されている場合は飛ばされる。
3.ホストが1をFETCHビットに書き込む。
4.ホストがHRDYビットを設定するためにポーリングする。
5.ホストがHPID読み取り動作を実行する。この場合、HPIは既に準備完了状態(HRDYビット=1)にある。
−もしもこれが後更新を具備した読み取りで有った場合、4へ。
−同一位置からの読み取りの場合、3へ。
−異なるアドレスからの読み取りの場合、2へ。
【0203】
HRDYビットは単独で下記のように書き込み動作に使用できる:
1.ホストがHRDYビットを設定するためにポーリングする。
2.ホストが希望するHPIA値を書き込む。このステップはもしもHPIAが既にその希望する値に設定されている場合は飛ばされる。
3.ホストはHPID書き込み動作を実行する。
−別の書き込み動作の場合、1へ。
【0204】
DSPINTおよびHINT機能動作
ホストおよびCPUはHPICレジスタ内のビットを用いて互いに割り込みをかけることが出来る。この副章はこの処理工程に関する更に詳しい情報を提供する。
【0205】
ホスト装置がCPUに割り込みをかけるためにDSPINTを使用する
ホストはCPUにHPIC内のDSPINTビットへ書き込むことで割り込みをかけることが出来る。DSPINTビットは内部DSPINT信号に直結されている。DSPINT=0の時にDSPINT=1を書き込むことにより、ホストはDSPINT信号に0から1の遷移を引き起こすことが出来る。割り込み選択器を用いて適切に選択されると、この遷移はCPUによって割り込み条件として検出される。CPUはDSPINT=1を書き込むことによってDSPINTビットを消去することが出来る。ホストまたはCPUのどちらかがHPICにDSPINT=0を書き込んだとしても、DSPINTビットにも信号にも影響を与えない。
【0206】
CPUがホストに割り込みをかけるためにHINT−を使用する
CPUはHPIC内のHINTビットに書き込むことにより、活性低割り込み条件をHINT−信号上に送ることが出来る。HINTビットは反転されてHINTピンに直結される。CPUはHINT=1を書き込むことによりHINT活性低を送ることが出来る。ホストはDSPINT=1を書き込むことによりHINT−を非活性高状態に消去することが出来る。ホストまたはCPUのどちらかがHPICにHINT=0を書き込んだとしても、HINTビットにもHINT信号にも影響を与えない。このビットはホストインタフェース側で2度読み取られ、もしもCPUが2つの読み取り動作の間にこれらのビットの一方または両方を変更した場合、ホストによる第一及び第二半ワードの読み取りは異なるデータを表す。
【0207】
ホストアクセス順序
ホストはHPIへのアクセスを、最初にHPIC、続いてHPIAを初期化することで開始し、次にHPIDにデータを書き込んだり、そこからデータを読み取ったりする。HPIDの読み取りまたは書き込みは内部サイクルを開始し、これは希望するデータをHPIDとDMA補助チャンネルとの間で転送する。任意のHPIレジスタへのホストアクセスは、HPIバス上で2度の半ワードアクセスを要求する:第一はHHWIL低で、そして第二はHHWIL高で行われる。典型的にホストは第一半ワード/第二半ワード(HHWIL低/高)の順番は壊さない。もしもこの順番が不適切に壊されると、データが失われたり、予期しない動作が結果として生じる可能性がある。第一半ワードアクセスは先行のHPI要求が完了するまで待たなければならない。先行要求にはHPID書き込みおよび事前フェッチHPID読み取りが含まれる。従ってHPIはHPIがこの要求を開始できるまでHRDY−高状態を主張しない。第二半ワードアクセスは常にHRDY−活性低で行われるが、それは先行する全てのアクセスが第一半ワードアクセスまでに完了してしまうからである。
【0208】
HPICおよびHPIAのホスト初期化(この章の図の中の全ての数値は16進数である)
データにアクセスする前に、ホストは最初にHPIC,特にHWOBビットを初期化し、続いてHPIAを初期化しなければならない(HWOBがHPIAアクセスに影響を与えるため、この順序でなければならない。)HWOBを初期化した後、ホストはHPIAに正しい半ワード整列で書き込むことが出来る。表22および表23は、それぞれHWOB=1およびHWOB=0に対する初期化順序を図示している。この例に於いて、HPIAは80001234h に設定される。これらの全てのアクセスに於いて、HPIC内のHRDYビットが設定されることに注意されたい(ビット19および3)。
【0209】
【表23】
Figure 0004285803
【0210】
【表24】
Figure 0004285803
【0211】
自動更新を伴わないHPID読み取りアクセス
此処で先に説明したようにHPIが初期化されると仮定すると、ホストは自動更新を行わずにそのアドレスに読み取りアクセスを行おうとする。ホストはアドレス80001234h のワードの読み取りを欲しており、その位置のワードの値が789ABCDEh であると仮定する。表24および表25は、それぞれHWOB=1およびHWOB=0に対するこのアクセスを図示している。第一半ワードアクセスに際し、HPIは全ての先行の要求が完了するまで待つ。この時間の間、HRDY−は非活性高状態にに保持される。従ってHPIは読み取り要求をDMA補助チャンネルに送る。もしも先行の要求のし掛かりが無い場合は、これはHSTRB−の立ち下がりで生じる。HRDY−はDMA補助チャンネルが要求されたデータをHPIDの中にロードするまで高状態に留まる。全ての補助チャンネル読み取りはワード読み取りであるため、第二読み取りアクセスの初めに、そのデータは既にHPID内に存在している。従って第二半ワードHPID読み取りは決して準備中条件に遭遇することはなく、HRDY−は低状態に留まっている。HPIがワード読み取りのみを行うので、バイト有効は重要でないことに注意されたい。
【0212】
【表25】
Figure 0004285803
【0213】
【表26】
Figure 0004285803
【0214】
自動更新を具備したHPID読み取りアクセス
自動更新機能の結果、効率的な順番のホストアクセスが実現できる。HPID読み取りおよび書き込みアクセスの両方に対して、これはホストが更新されたアドレスをHPIAの中にロードする手間を省く。読み取りアクセスに関して、次のアドレスで指定されたデータのフェッチが現行の読み取りが完了した後に直ちに開始される。後続の読み取りの間の間隔は通常事前フェッチデータであるので、次のアクセスへの待ち時間は削減される。全ての事前フェッチデータは、いずれかのHPIレジスタが書き込まれるかまたは次のHPI読み取りの後か、いずれにせよ先に行われるものが終わるまで残っている。事前フェッチはまたホストがFETCH=1をHPICに書き込んだ後にも起こすことが出来る。もしも次のHPIアクセスがHPID読み取りの場合、データの再フェッチは行われず、事前フェッチされたデータがホストへ送られる。それ以外の場合は、HPIは事前フェッチが完了するまで未だ待たなければならない。
【0215】
表26は自動更新を備えた読み取りアクセスを示す。第一半ワードアクセスが完了した後(第一HSTRB−の立ち上がりで)、アドレスは次のワードまたは80001238h に更新される。その位置のデータは87654321h であると仮定する。このデータは事前フェッチされHPIDの中にロードされる。事前フェッチはHSTRB−の立ち上がりで第二半ワード読み取りに対して開始される。
【0216】
【表27】
Figure 0004285803
【0217】
【表28】
Figure 0004285803
【0218】
自動更新有りのホストデータ書き込み
HPIへの書き込みアクセス中に、HPIDの第一半ワード部分(HEOBで選択されるように下位半ワードまたは上位半ワード)は、ホストからやってくるデータで上書きされ、第一HBE−1:0はHHWILピンが低状態の間にラッチされる。HPIDの第二半ワード部分はホストからやってくるデータで上書きされ、第二HBE−1:0対はHHWILピンが高状態の間にラッチされる。この書き込みアクセスの最後に(HSTRB−の第二立ち上がりで)、HPIDは32ビットワードとしてHPIAで指定されたアドレスに4つの関連するバイト有効と共に転送される。
【0219】
表28および表29はそれぞれ、HWOB=1およびHWOB=0の場合のHPID書き込みアクセスを図示する。ホストは5566h を場所80001234h の下位16ビットに書き込み、この場所は既にHPIAで指定されている。この場所は値0で始まると仮定されている。HPIは全ての先行する転送がHRDY−を不活性高状態に設定することで完了するまでホストを保持する。また、一度第一半ワードが準備完了状態となると、第二半ワードは決して準備中状態にはならない。もしもHPID内で待ち状態の処理待ちの書き込みが無い場合は、書き込みアクセスは通常は準備中状態を経ずに進行される。HBE−1:0は下位16ビットを転送する場合にのみ有効であることに注意されたい。
【0220】
【表29】
Figure 0004285803
【0221】
【表30】
Figure 0004285803
【0222】
自動更新有りのHPID書き込みアクセス
表30および表31はそれぞれHWOB=1およびHWOB=0に対する、自動更新有りのホスト書き込みデータを図示する。これらの例は5.4.4,と同じであるが、HCNTL1:0の値と続けてアドレス80001238のワードの上位バイトに33を書き込む点が異なっている。更新はHSTRB−の立ち上がりで次のHPID書き込みアクセスに際して行われる。もしも次のアクセスがHPIDまたはHPICアクセス、またはHPID読み取りの場合、自動更新は行われない。
【0223】
【表31】
Figure 0004285803
【0224】
【表32】
Figure 0004285803
【0225】
単一半ワードサイクル
通常動作時、全ての転送は2つの半ワードアクセスで構成されなければならない。しかしながら、高速動作に対しては使用者は単一半ワードアクセスを実行することも可能である。これらはいくつかの場合には有用である:
HPIC:表22に於いて全HPICには第一書き込みの後に正しく書き込まれていることに注意されたい。HPICに書き込む際に、ホストはHHWILに注意を払う必要もないし、また両方の半ワードに対して2つの連続した書き込みを行う必要も無い。同様に、ホストはHPICを一度だけ読みとるように選択することも可能である、何故ならば2つの半ワードとも同一の値を含んでいるためである。
HPIA:表22に於いて、HHWILおよびHWOBで自動的に選択されたHPIAアクセスの部分は各半ワードアクセスの後に更新されることに注意されたい。従ってHPIAの上位または下位16ビットのみを変更するためには、ホストは修正変更したいと欲している半ワードをHHWILとHWOBとの組み合わせを通して選択する必要があるだけである。同様に、ホストはHPIAの希望する半ワードのみを読みとるように選択することも可能である。
HPID読み取りアクセス:読み取りアクセスは実際第一半ワードアクセスでトリガを掛けられる(HHWILが低状態)。従って、もしも読み取りに際してホストは第一半ワードのみに関心がある(HWOBで選択された下位または上位半ワード)、これは第二アドレスを要求する必要が無い。しかしながら、事前フェッチは第二半ワードが読みとられない限り生じない。第一半ワードの後続の読み取り(HHWIL低)または新たな値のHPIAへの書き込みは、全ての事前フェッチに勝る。一方、第二半ワードのみの読み取り(FFWIL高)は認められず、結果として未定義の動作となる。
書き込みアクセス:書き込みアクセスは第二半ワードアクセス(FFWILが高状態)でトリガを掛けられる。従って、もしもホストが後続の書き込みアクセス中に、HHWIL高(および関連するバイト有効)で選択されたHPIDの一部を変更したいだけの場合は、単一サイクルのみを開始する必要があるだけである。この技術は一義的にメモり充填に使用される。これを行うために、ホストは第一アクセスの両方の半ワードにHBE1:0=00を書き込む。後続の書き込みアクセスに際して、ホストは第一書き込みアクセスで行ったのと同様に、HHWILで選択されたHPIDの部分に同一の値を確実に書き込む。この場合、ホストは全ての書き込みアクセスに際して自動更新書き込み(HCNTL1;0=01)を実行する。
【0226】
リセット中のHPIメモリのアクセス
HPIはチップがリセット中は使用できない。しかしながら、ブートモードによってはホストがCPUのメモリ空間(アクセスする前に外部メモリを構成するためにEMIF構成レジスタを含む)に書き込むことを可能とする。装置はリセット状態ではないが、CPU自体はブートが完了するまでリセット状態にある。更に詳しくは後のブートロードの称
参照されたい。
【0227】
EMIF
概要
外部メモリインタフェース(EMIF)は下記を含むいくつかの外部装置に対して接続要素不要のインタフェースを支援する:
CPU速度の1倍および1/2倍で実行される同期バーストSRAM(SBSRAM)。
CPU速度の1/2倍で実行される同期DRAM(SDRAM)。
非同期SRAM,ROM,およびFIFOを含む非同期装置。EMIFはこれらのインタフェースに対して高度にプログラム可能なタイミングを提供する。
【0228】
外部メモリインタフェース(EMIF)は図4に示すように4つの要求発信者からの外部バスの要求にサービスを行う:
CPUプログラムフェッチにサービスを行うオンチッププログラムメモリ制御装置(PMC)。
CPUデータフェッチにサービスを行う、オンチップデータメモリ制御装置(DMC)。
オンチップDMA制御装置。
外部共有メモリ装置。
【0229】
もしも複数の要求が同時に到着したとすると、EMIFはこれらの優先順位付けを行い、必要なサイクルを実行しなければならない。EMIFのブロック図が図23に示されている。表32はEMIF信号を記述している。
【0230】
【表33】
Figure 0004285803
【0231】
EMIFのリセット
装置上の/RESETピンを使用するハードウェアリセットは強制的に全てのレジスタ値をそれらのリセット値とする。リセット中、全ての出力はそれらの無効レベルに駆動されるが、クロック出力(SDCLK,SSCLK,CLKOUT1およびCLKOUT2)は例外であって、これらはその信号を使用している外部論理回路が同期を取れるように連続して駆動される。
【0232】
EMIFレジスタ
EMIFの制御それを支援しているメモリインタフェースはEMIF内のメモリ写像されたレジスタの組を通して維持される。任意のEMIFレジスタへの書き込みは、そのレジスタを使用している全ての仕掛かり中のEMIFアクセスが完了するまで完了しない。このメモリ写像されたレジスタが表33に示されている。
【0233】
【表34】
Figure 0004285803
【0234】
EMIFグローバル制御レジスタ
EMIFグローバル制御レジスタ(図24および表34)は全てのCE空間に共通なパラメータを構成する。
【0235】
【表35】
Figure 0004285803
【0236】
6.2.2 CE空間制御レジスタ
4つのCE空間制御レジスタ(図25および表35)はEMIFでサポートされている4つのCE空間に対応している。MTYPEフィールドは対応するCE空間に対するメモリ型式を識別する。もしもMTYPEがSDRAMまたはSBSRAMを選択している場合は、レジスタ内の残りのフィールドは適用されない。もしも非同期型が選択された場合(ROMまたは非同期)、残りのフィールドはアドレスの整形およびその空間へアクセスするための制御信号とを指定する。CE空間制御レジスタの修正変更はCE空間が無効となるまで生じない。
【0237】
【表36】
Figure 0004285803
【0238】
SDRAM制御レジスタ
SDRAM制御レジスタは全てのCE空間用のSDRAMパラメータを制御し、これはそれが関連するCE空間制御レジスタ(図25)のMTYPEフィールド内のSDRAMメモリ型式を指定する。SDRAM制御レジスタは全てのSDRAM空間を制御するので、各々の空間は同一のリフレッシュおよびページ特性を備えたSDRAMを含まなければならない。
【0239】
【表37】
Figure 0004285803
【0240】
SDRAMタイミングレジスタ
SDRAMリフレッシュ周期レジスタ(図27および表37)はSDRAMのリフレッシュRERIODをCLKOUT2サイクル(CPUクロック速度の1/2倍)で制御する。オプションとして、このリフレッシュ周期はCPUへの割り込みを送ることが出来る。従って、このカウンタはSDRAMがそのシステムで使用されない場合は、汎用タイマとして使用される。COUNTER値はCPUで読み取ることが出来る。カウンタがゼロに達すると、これはRERIODで自動的に再ロードされ、割り込みがCPUに送られる。
【0241】
【表38】
Figure 0004285803
【0242】
SDRAMインタフェース
EMIFは16Mビット、2バンクおよび64Mビット、4バンクSDRAMをサポートし、システム設計者に高速かつ高密度メモリに対するインタフェースを提供する。以下の章はEMIF SDRAMインタフェースを説明している。EMIFは表38に示されるSDRAM命令を支援する。16Mビットおよび64MビットSDRAMインタフェースが図28および図29に示されている。
【0243】
表40はピン接続とSDRAM動作に特定された関連の信号を説明している。表39はEMIF経由で構成することが可能な全てのSDRAMを示す。
【0244】
【表39】
Figure 0004285803
図28および図29に於いて、CE0,CE2およびCE3はSDRAMで使用可能である。従って、n=0,n=2またはn=3である。またCLKOUT2はSDCLKと同一のタイミングなので、SDRAMの複数のCE空間が使用されかつ追加のドライブ機能が必要なシステムで使用出来る。
【0245】
【表40】
Figure 0004285803
【0246】
【表41】
Figure 0004285803
【0247】
SDRAM初期化
EMIFはいずれかのCE空間がSDRAM用に構成される場合は、SDRAMを初期化するために必要な機能を実行する。SDRAM初期化はEMIF SDRAM制御レジスタ内のINITに1を書き込むことで要求される。初期化の事象の実際の手順は下記の通りである:
1.SDRAMとして構成された全てのCE空間に対してDCAB命令を実行する。
2.3つのリフレッシュ命令を実行する。
3.SDRAMとして構成された全てのCE空間に対してMRS命令を実行する。
【0248】
DCABサイクルは、/HOLD入力が有効でない(ホスト要求)場合は、リセット後直ちに実行される。もしも/HOLDが有効の場合、DCAB命令はそのホールド条件が取り除かれるまで実行されない。この場合、外部の要求者はSDRAM初期化を実行しその制御を行うまで、SDRAMバンクのいずれに対してもアクセスを試みてはならない。
【0249】
ページ境界監視
SDRAMはページメモリ型なので、EMIF SDRAM制御装置はSDRAMの有効行を監視して行の境界がアクセス中にまたがらないようにしている。この監視を行うために、EMIFは開かれているページのアドレスを格納し、そのアドレスを後続のSDRAMバンクのアクセスに備えて比較を実行する。この格納および比較は各々のCE空間に対して独立して実施される。
【0250】
比較されるアドレスビットの数は、RMIF SDRAM制御レジスタのSDWIDフィールド内にプログラムされたページサイズの関数である。もしもSDRAM制御フィールド内のSDWID=0の場合は、EMIFはSDRAMとして構成されたCE空間が4つの8ビット幅SDRAMを有すると予測し、これらのページサイズは512である。従って比較される論理バイトアドレスビットは26:11である。もしもSDWID=1の場合は、EMIFはSDRAMのCE空間が2つの16ビット幅SDRAMを有すると予測し、このページサイズは256である。従って比較される論理バイトアドレスビットは23:10である。
【0251】
もしもアクセス中にページ境界をまたがると、EMIFはDCAB命令を実行し新たな行アクセスを開始する。また、アクセスの方向の変更(読み取りから書き込みまたは書き込みから読み取り)はページ欠落を引き起こす。現行のアクセスを単に終了するだけでは、有効SDRAM行を強制的に閉じさせる条件とはならないことに注意されたい。EMIFは先を見越してこの有効行を閉じる必要が生じるまで開いたまま残している。この機能により無効化/再有効化のオーバーヘッドが減り、インタフェースをメモリアクセスのアドレス場所指定に全面的に利用できる。
【0252】
リフレッシュ
SDRAM制御レジスタ内のRFENビット(表36)はEMIFのSDRAMリフレッシュモードを選択する。RFENフィールド内の値が0であると、全てのEMIFリフレッシュを無効とする、使用者はリフレッシュが外部装置内で行われることを保証しなければならない。RFENフィールド内の値が1の場合は、以下に説明するようにEMIFがSDRAMのリフレッシュを実行出来るように有効化する。
【0253】
リフレッシュ命令(REFR)は、CE空間制御レジスタ(図25)のMTYPEフィールドを具備したSDRAMを使用するように選択された全てのCE空間に対して全ての/CE信号を有効とする。REFRは自動的にDCAB命令に先立って行われる。これはSDRAMを具備した全てのCE空間が動作していないことを保証する。DCAB命令に続いて、EMIFは”先行”リフレッシュの実行を開始し、これをその他のSDRAMアクセスが仕掛かり中で無ければEMIF SDRAM制御レジスタ内のPERIOD値で定義された速度で行う。
【0254】
SDRAMインタフェースは送られてきたリフレッシュ要求の数を監視しそれらを実行する。EMIF SDRAM制御ブロックの中で小さな2ビットカウンタがリフレッシュ要求の未処理件数を監視する。このカウンタはリフレッシュ要求を受ける毎に増加更新し、リフレッシュサイクルが実行される毎に減数更新する。このカウンタは値が11または00で飽和する。リセット時にはこのカウンタは自動的に11にセットされ、アクセスが開始される前にいくつかのリフレッシュが必ず行えるようにしている。
【0255】
図30に示されているように、EMIF SDRAM制御装置はSDRAMリフレッシュ要求の優先順位付けを、ENIF要求者からそこに送られたその他のデータアクセス要求との間で行う。下記の規則に従う:
カウンタの値が11の場合はページ情報レジスタを無効とし、制御装置に現行SDRAMページを強制的に閉じさせる。値が11であることは緊急リフレッシュ条件を示している。従って、EMIF SDRAM制御装置は3つのREFR命令を実行し、これによってDCAB命令に続いて現行アクセスの残りを処理する前にカウンタを00まで減数更新する。もしもSDRAMが複数のCE空間内に存在する場合は、DCABリフレッシュ手順がSDRAMを含む全ての空間内で発生する。
SDRAMインタフェースのアイドリング時間中に、EMIFからの仕掛かり中の要求が1つも無い場合は、このSDRAMインタフェースはカウンタ値がゼロで無い限りREFR命令を実行する。この機能により、後に行われる実際のSDRAMアクセス中に緊急リフレッシュが行われる可能性が減少する。もしもSDRAMが複数のCE空間内に存在する場合、このリフレッシュは全てのインタフェースが無効ページ情報を具備してアイドリング中の場合にのみ発生することに注意されたい。
【0256】
EMIF SDRAMインタフェースはCAS−先行−RASリフレッシュサイクルをSDRAMに対して実行する。SDRAM製造者の中にはこれを自動リフレッシュと呼ぶ者も居る。REFR命令の前に、DCAB命令が全てのCE空間に対して実行され、全ての動作中のバンクが確実に閉じられるようにSDRAMに指示する。ページ情報はREFR命令の前後で常に無効である;従ってリフレッシュサイクルは常にページを欠落させる。非動作サイクルがリフレッシュ命令の前に必要なことを注意されたい。
【0257】
モードレジスタセット
図31に示さるように、EMIFはDACB命令と続いてMRS命令を、EMIF SDRAM制御レジスタのINITフィールドがセットされると必ず自動的に実行する。INITは装置がリセットされるか、または使用者が書き込むことでセット出来る。DCABおよびREFR命令と同様に、MRS命令はSDRAMとして構成されている全てのCE空間に対してMTYPEフィールドを通して保持するように実行される。MRSサイクルに続いて、INITビットは自分自身で消去して複数のMRSサイクルが発生することを防止している。続いてバスの制御をEMIFに戻す前にその元の値に戻さなければならない。これに代わる方法として、使用者がEMIFグローバル制御レジスタ内のHOLDおよびHOLDAビットをポーリングして、外部保持の完了を検出すると、EMIF SDRAM制御レジスタ内のINITビットを設定することによってEMIFを再初期化することが出来る。
【0258】
EMIFは常にモードレジスタ値として0x0030をMRS命令中に使用する。表41はモードレジスタビット、EMIFピン、およびそのモードレジスタ値の間の写像を示す。
【0259】
表42はこのモードレジスタ値で選択されたSDRAM構成を示す。
【0260】
【表42】
Figure 0004285803
【0261】
【表43】
Figure 0004285803
【0262】
アドレスシフト
同一のEMIFピンが行および列アドレスをアドレス指定するため、EMIFインタフェースは行および列アドレス選択の中でアドレスを適切にシフトする。表43はバイトアドレスのビット間の翻訳とそれらが行および列アドレスとしてEAピン上に現れる様子を示している。SDRAMはアドレス入力を制御と同様にアドレスとしても使用する。この考察の中で下記の項目が全体像を明らかにする:
SDRAMのバンク選択ビット(16MビットSDTAM上のEA11;64MビットSDRAM上のEA13,EA12)に対応するアドレスラインがSDRAM制御装置により内部的にラッチされる。これによりバンク選択がREADおよびWRT命令中に確実に正しく保持される。従って、EMIFはこれらの値を行および列アドレスの両方で示されるように維持する。
EMIFはバンク選択(SDA10)以下のアドレスビットを、/RASが有効低で無い限り強制的に低とし、アクセスのページの終了時点のDCAB命令中に高状態とする。これによりREADまたはWRT命令に続いて発生する自動事前チャージを防止することが出来る。
【0263】
【表44】
Figure 0004285803
【0264】
5つのSDRAMタイミングパラメータがEMIFをSDRAM速度制限から解除する。これらのパラメータの3つはEMIF SDRAM制御レジスタ経由でプログラム可能である;残りの2つは表44に示されるように一定値と仮定される。3つのプログラム可能値はSDRAMのEMIF制御がこれらの最小タイミング要求に従うことを保証する。個別のSDRAMに対して適切なパラメータに関してはSDRAMデータシートを参照されたい。
【0265】
【表45】
Figure 0004285803
【0266】
図32に示されるように、SDRAM無効化(DCAB)はハードウェアリセット後、またはEMIF SDRAM制御レジスタ内のINIT=1の時に実行される。このサイクルはまたページ境界を閉じる際に、REFR,MRSの前にSDRAMによっても要求される。DCAB命令中に、SDA10は高状態に駆動されて全てのSDRAMバンクが無効状態になることを保証する。
【0267】
SDRAM読み取り
図33に示されるように、SDRAM読み取り中に選択されたバンクがACTV命令中の行アドレスで有効化される。この例では4つの読み取り命令が4つの異なる列アドレスに対して実行される。EMIFは3つのCAS待ち時間と1つのバースト長とを使用する。3サイクルの待ち時間により、データは対応する列アドレスの3サイクル後に現れる。最後の列アクセスに続いて、DCABサイクルがそのバンクを無効とするために実行される。1つのアイドリングサイクルが最後の読み取り命令とDCAB命令との間に挿入されていて、SDRAMタイミング要求に合わせている。データの転送はDCAB命令中およびその前に完了していることに注意されたい。もしも新たなアクセスが仕掛かり中で無い場合は、DCAB命令はページ情報が無効となる時点まで実行されない。列アクセスおよびDCAB命令中のEA[13:11]の値は、ACTV命令中にラッチされた値である。
【0268】
SDRAM書き込み
図34に示されるように、全てのSDRAM書き込みは1バースト長である。バンクはACTV命令中の列アドレスで有効化される。書き込みに際しては待ち時間が無いので、データはその列アドレスと同一サイクルで出力される。無効バイトへの書き込みは適切なDQM入力経由で無効化される;この機能はバイトおよび半ワード書き込みに有効である。最後の書き込み命令に続いて、1アイドリングサイクルが挿入されてSDRAMタイミング要求に整合させる。続いてそのバンクはDCAB命令によって無効化され、メモリインタフェースは新たなページアクセスを開始することが出来る。もしも仕掛かり中の新たなアクセスが存在しない場合は、DCAB命令はページ情報が無効となる(章6.3.2参照)時まで実行されない。列アクセスおよびDEAC命令の間EA[13:11]上の値は、ACTV命令中にラッチされた値である。
【0269】
SBRAMインタフェース
図35に示されるように、EMIFは工業規格同期バーストSRAMに直接インタフェースを取る。このメモリインタフェースは高速メモリインタフェースをSDRAMのいくつかの制限を受けることなく可能とする。最も注目すべき点は、SBSRAMはSRAM装置であるので同一方向への随意アクセスが単一サイクルで行える事である。SBSRAMインタフェースはCPUクロック速度またはこの1/2の速度のいずれかで動作する。この選択はEMIFグローバル制御レジスタ内のSSCRTビットの設定に基づいて行われる。
【0270】
表45の4つのSBSRAM制御ピンは現行動作を決定するSSCLKの立ち上がりでSBSRAMによりにラッチされる。これらの信号はSBSRAM用のチップ選択ラインが低状態の場合にのみ有効である。/AD信号はSBSRAM装置が、アドレスを十分早く提供することの出来ない制御装置とインタフェースするためにアドレスを内部的に生成出来るようにするために使用される。EMIFはアドレスを要求される速度で生成できるからこの信号を使用する必要は無い。
【0271】
【表46】
Figure 0004285803
【0272】
SBSRAMアクセス最適化
SBSRAMはその構造上表には現れない、これは読み取りデータがアドレス及び制御情報に続いていることを意味する。結果として、EMIFはいくつかのサイクルを読み取りと書き込み命令の間に挿入し、ED[31:0]バス上で競合が生じないようにしている。EMIFはこのやり直しの損失を最小に維持する。バス上で向きを変更する際に最初に2サイクルの損失が存在する。一般的に規則は次の通りである;バーストシーケンスの最初のアクセスは2サイクル開始損失を被る。
【0273】
SBSRAM読み取り
図36はSBSRAMの16ワード読み取りを示す。アクセス毎に新たなアドレスがSBSRAMストローブされ、これらは/SSADSストローブ低で指示される。最初のアクセスは2サイクルの初期開始損失を必要とする;その後全てのアクセスが単一SSCLKサイクルで生じる。
【0274】
SBSRAM書き込み
図37はSBSRAMの6ワード書き込みを示す。アクセス毎に新たなアドレスがSBSRAMの中にストローブされる。最初のアクセスは2サイクルの初期開始損失を必要とする;その後全てのアクセスは単一SSCLKサイクルで行うことが出来る。
【0275】
非同期インタフェース
非同期インタフェースは使用者に構成可能メモリサイクル型式を提供し、種々のメモリおよび周辺機器型式とインタフェースを取るために使用される;SRAM,EPROM,FLASH,同様にFPGAおよびASIC設計を含む。
【0276】
表46は非同期インタフェースピンを示す。
【0277】
図38は標準SRAMへのインタフェースを示す。図39はFIFOとのインタフェースを示す。図40、図41、および図42は8−、16−、および32ビットROMへのインタフェースを示す。ROMはどのCE空間ともインタフェースされるが、これはしばしばCE1空間で使用されるがそれはこの空間が32ビット未満の幅に対して構成されているためである。
【0278】
【表47】
Figure 0004285803
【0279】
ROMモード
EMIFはEMIF CE空間制御レジスタ内のMTYPEフィールドで選択された8−および16−ビット幅ROMアクセスモードをサポートする。これらの狭い幅のメモリ空間からデータを読みとる際に、EMIFは複数の読み取りを32ビット幅値の中に詰め込む。このモードは第一に8−ビットおよび16−ビットROM装置へのワードアクセスを意図している。従って、下記の制約が適用される:
読み取り動作は、アクセスサイズまたはメモリ幅に関係なく常に32ビット読み取りである。
アドレスは狭いメモリに対する正しいアドレスを提供するために適切にシフトアップされる。シフト量は16ビットROMに対しては1、また8ビットROMに対しては2である。従って、高アドレスビットはシフトアウトされ、/CE空間が全EAバスに広がる場合はアクセスは取りまとめられる。表47は全ての可能な非同期メモリ幅に対するCE1空間へのアクセス中に、どのアドレスビットがEAバス上に存在するかを示す。
EMIFは常に下位アドレスを最初に読み取り、これらを最下位バイトに詰め込み、後続のアクセスを高位順位のバイトの中に詰め込む。
【0280】
従って、ROM内で期待される詰め込みフォーマットは、LENDIANビットの値に関係なく常に小エンディアンである。
【0281】
【表48】
Figure 0004285803
【0282】
8ビットROM
8ビットROMモードに於いて、アドレスは2つだけ左シフトされバイト幅ROMへアクセスするためにEA上にバイトアドレスを生成する。EMIFは常に4つの後続バイトをワードアクセス内の4バイト(バイトアドレス=4N)境界の上に整列させる。バイトは下記のアドレス順序でフェッチされる:4N,4N+1,4N+2,4N+3。バイトは下記の小エンディアン順序で最上位バイトから最下位バイトへ、32ビットワードの中へ詰め込まれる:4N+3,4N+2,4N+1,4N。
【0283】
16ビットROM
16ビットROMモードに於いて、アドレスは1つ左シフトされ16ビット幅ROMへアクセスするためにEA上に半ワードアドレスを生成する。EMIFは常に2つの半ワードをワードアクセス内の4バイト(バイトアドレス=4N)境界の上に整列させる。半ワードは下記のアドレス順序でフェッチされる:4N,4N+2。半ワードは下記の小エンディアン順序で最上位半ワードから最下位半ワードへ、32ビットワードの中へ詰め込まれる:4N+2,4N。
【0284】
プログラム可能ASRAMパラメータ
EMIFは常に非同期アクセスを整形するために高位のプログラム性を可能とする。これを許容するプログラム可能パラメータは:
セットアップ:メモリサイクルの始まり(/CE低、アドレス有効)と読み取りまたは書き込みストローブの有効化の間の時間。
ストローブ:有効化と読み取り(/ARE)またはストローブ(/AWE)の無効化との間の時間。
ホールド:読み取りまたは書き込みストローブの無効化とこのサイクルの終わり(これはアドレス変更または/CE信号の無効化のいずれか)との間の時間。
折り返し時間:装置出力(読み取りデータ)の無効化とメモリ装置の中へのデータ駆動(書き込みデータ)の間の時間。
【0285】
これらのパラメータは、EMIF CE空間制御レジスタ(図25)内のフィールド経由でCPUクロックサイクルの形でプログラム可能である。個別のセットアップ、ストローブ、およびホールドストローブパラメータは読み取りおよび書き込みアクセスに対して有効である。SETUP、HOLD、およびSTROBEフィールドは実際のサイクル計数を表すが、これとは対照的にSDRAMパラメータはサイクル計数−1である。SETUPおよびSTROBEフィールドは最小計数1を有する。SETUPおよびSTROBEに対して、計数0は計数1として取り扱われる。HOLDは0サイクルにセットされる。しかしながらTAフィールドはサイクル計数−1に指定される。図43はこれらのパラメータの使用方法を図示する。
【0286】
非同期読み取り
図43は3つの非同期読み取りを図示する。第一番目はCE0読み取りで、setup/strobe/hold が2/4/1にセットされている。第二番目は同じであるが外部無効準備完了のためストローブ幅が追加されている。第三番目はCE1読み取りであって、setup/strobe/hold が4/5/3にセットされている。1つの非同期読み取りは下記のように進行する:
セットアップ周期の開始時点で
−/CEが有効低となる。
−/AOEが有効低となる。
−/BE[3:0]が有効となる。
−EAが有効となる。
ストローブ周期の開始時点で
−/AREが有効低に引き下げられる。
ホールド周期の開始時点で
−/AREが無効高に引き上げられる。
−データはCLKOUT1の立ち上がりでホールド周期の開始(ストローブ周期の終わり)と同時に、/AREの低から高への遷移の直前にサンプリングされる。
ホールド周期の終了時点で
−/CEは無効となるが、これは別の読み取りアクセスが同一/CE空間に対して次のサイクルで予定されていない限りに於いて行われる。
−/AOEは無効となるが、これは別の読み取りアクセスが同一/CE空間に対して次のサイクルで予定されていない限りに於いて行われる。
【0287】
非同期書き込み
図43内の第一アクセス、CE0空間書き込み、は3/6/3のsetup/strobe/hold を具備した非同期書き込みを図示している。1つの非同期書き込みは下記のように進行する。
セットアップ周期の開始時点で
−/CEが有効低となる。
−/BE[3:0]が有効となる。
−EAが有効となる。
−EDが有効となる。
ストローブ周期の開始時点で
−/AWEが無効低になる。
ホールド周期の開始時点で
−/AWEが無効高になる。
−データはCLKOUT1の立ち上がりでホールド周期の開始(ストローブ周期の終わり)と同時に、/AWEの低から高への遷移の直前にサンプリングされる。
ホールド周期の終了時点で
−EDが三状態となるが、これは別の書き込みアクセスが同一/CE空間に対して次のサイクルで予定されていない場合にのみ行われる。
−/CEは無効となるが、これは別の書き込みアクセスが同一/CE空間に対して次のサイクルで予定されていない場合にらみ行われる。
−もしも次のアクセスが読み取りの場合、折り返し時間のサイクルがAOEが有効となる前に挿入される。
【0288】
折り返し時間
図43はプログラム可能折り返し時間パラメータの使用方法を図示する。バスの競合を避けるためにEMIFはプログラム可能折り返し時間サイクルを2つの状況で挿入する:
1.別のCE空間への任意のアクセス(非同期であるか否かに関わらず)が続く非同期CE空間への読み取りアクセスの間。図43に於いて、これは第二CE0読み取りとCE1読み取りとの間に生じる。この例において、折り返し時間は2サイクルで、EMIF CE0空間制御レジスタ内のTA=1でセットされる。
2.同一CE空間への書き込みアクセスが続く、非同期CE空間への読み取りアクセスの間。1サイクルの一定の折り返し時間が、同一CE空間への読み取りが続く、書き込みの間に挿入される。これは図43の中でCE0書き込みと第一CE0読み取りとの間に示されている。1サイクルの一定の折り返し時間が、同一要求者から異なるCE空間への2つの連続したアクセスの間に挿入される。この折り返しサイクルは2つのCE空間内のメモリ型式には無関係に生じる。挿入される折り返し時間サイクルの数はTA+1で、EMIF CE空間制御レジスタ内で定義される。折り返し時間周期の間、影響されるCE空間の/CEおよび/AOEは無効となって、依然としてバスを駆動しているその空間内の装置を遮断する。これらのサイクルは後続のアクセスとの間の時間がTA+1サイクル未満の場合にのみ挿入される。
【0289】
準備完了入力
図43内の第二CE0空間読み取りは読み取り動作を図示している。プログラム可能整形に加えて、/ARDY入力を無効化することによってストローブ周期の中に特別サイクルを挿入する事が出来る。準備完了動作は下記のように働く:
準備完了は3つのCLKOUT1サイクルを取ってバス上に反応を引き起こす。もしも/ARDYがCLKOUT1サイクルの間低状態である場合は、ストローブ周期は/ARDYを認識する変化の後に完全に3つのCLKOUT1サイクル分延長される。
各々のCLKOUT1の変化に対して、サンプリング周期が開始された後その準備完了は無効低状態であり、ストローブ幅は1クロック分延長される。
【0290】
図43に於いて、第二読み取りは2サイクルの無効/ARDYのため2クロック分延長される。
【0291】
/ARDYの効果で遅延が生じるため、セットアップおよびストローブ時間が非常に小さい場合は注意が必要である。例えば、ストローブ周期が1の場合、/ARDYはセットアップ周期が終了する2サイクル前にサンプリングされる。この場合もしもセットアップ周期が2の場合は、/ARDYはアクセスが開始されるのと同一の変化エッジでサンプリングされる。
【0292】
ホールドインタフェース
EMIFは外部バスに対するホールド要求に応答する。ホールドハンドシェイクにより外部装置とEMIFが外部バスを共有出来るようになる。このハンドシェイク機構は2つの信号を使用する:
1./HOLD非同期ホールド要求入力。外部装置はこのピンを低状態に駆動してバスアクセス要求を行う。ホールドは有効動作中にEMIFが受信することの出来る最高優先順位要求である。ホールドが要求されると、EMIFは可能な限り早い時点でバスの駆動を中止するが、これは必然的に現行アクセスの完了、装置無効化、およびSDRAMバンク無効化を伴う。外部装置はバスを駆動したいと望むのであれば/HOLDを低状態に駆動し続けなければならない。/HOLD入力は内部的にCPUクロックに同期されている。
2./HOLDA:ホールド肯定確認出力。EMIFはその信号出力を高インピーダンス状態にした後、この信号を有効低状態とする。次に外部装置はそのバスを要求通りに駆動する。EMIFは全ての出力を高インピーダンス状態にするが、クロック出力は除く:CLKOUT1,CLKOUT2,SDCLKおよびSSCLK。
【0293】
外部装置がバスを独立して駆動しようと試みないことを保証する機構は存在しない。設計者はシステムレベル、例えばリフレッシュの様に実行される必要のある問題を意識する必要がある。ホスト要求の間、EMIF内のリフレッシュカウンタはリフレッシュ要求を記録し続ける、しかしながら/HOLD入力を無効高レベルに戻すことで、バス制御がEMIFに許可して戻されるまでリフレッシュサイクルは実行されない。使用者はEMIFグローバル制御レジスタ内のNOHOLDビットを設定することにより外部ホールドを防止する。
【0294】
優先順位
表48はEMIFが複数の仕掛かり中要求の場合に使用する優先順位手順を図示する。この優先順位手順は、DMA制御装置を通して要求を発しているDMAが高順位の場合は変更される。 このモードはDMAチャンネル一次制御レジスタ内のPRIビットをセットする事によりDMA内にセットされる。
【0295】
一度要求者(この事例ではリフレッシュ制御装置もまた1つの要求者と考えられることに注意)の優先順位付けがなされかつ選択されると、新たな要求はその選択された要求者が要求を行うことを中止するかまたは後続のより高い優先順位の要求が発生するまで認識されない。この場合、先の要求者が発した全ての要求は、新たな要求者がその要求を行う前に完了することが許されている。
【0296】
もしもEMIFグローバル制御レジスタ(図24)の調停ビットがセットされている場合(RBTR8=1)、一度要求者がEMIFの制御を得ると、それは要求者がEMIFを必要とする限り、またはより高い優先順位の要求者がEMIFを要求するまでの間に8ワード要求が発生するまでその制御を維持する。より高い優先順位の要求者がEMIFを必要とする場合、現行の制御装置が制御を放棄するかまたは8ワード要求が完了するまで、それは制御を得ることは出来ない。もしも長堤ビットがセットされていない場合は(RBTR8=0)、要求者はEMIFの制御をそれがEMIFを必要とする限り、またはより高い優先順位の要求者がEMIFを要求するまで維持する。現行の制御装置は、発生している要求の数に関係なく、より高い優先順位の要求者で割り込みをかけられる。
【0297】
【表49】
Figure 0004285803
【0298】
クロック出力有効
EMI放射を減少させるために、EMIFはCLKOUT2,CLKOUT1,SSCLKおよびSDCLKを無効化(高状態に保持)することが出来る。この機能はEMIF SDRAM制御レジスタ内のCLK2EN,CLK1EN,SSCEN、およびSDCENビットを経由して実行される。
【0299】
電源断操作
電源断2に於いてリフレッシュが有効化される。SSCLK,CLKOUT1,CLKOUT2は高状態に保持される。電源断3に於いて、EMIFはあたかもそれがリセット状態にいるかの様に動作する。
【0300】
エミュレーション停止動作
EMIFはエミュレーション停止中も動作を継続する。EMIFを通してのエミュレータアクセスは、EMIF状態を変更し一度停止が中止されることによる開始時損失の影響を受ける。
【0301】
ブート
概要
装置を適切に初期化するために、装置は種々のブート構成を提供している。これらの構成は装置が初期化に備えてリセットされた後にマイクロプロセッサ1が同様な動作を実行するかを決定する。外部入力ピンでセットされるこれらのブート構成は下記を決定する:
その装置が選択するメモリマップ。このメモリマップはアドレス0に内部または外部メモリが写像されているか否かを決定する。
アドレス0に於ける外部メモリの型式、(外部メモリがアドレス0に写像されている場合)。
アドレス0のメモリをCPUが実行を許可される前に初期化するために使用されるブートプロセス。
【0302】
装置リセット
外部装置リセット76は有効低RESET信号である。RESET−が有効低の間その装置はリセット状態に保持される。この周期の間その装置は予め記述されたリセット状態に初期化される。全ての三状態可能出力は三状態に設定される。その他の全ての出力は関連する章で記述された状態に戻される。リセット許可は装置CLKIN同様にCPUクロックでラッチされる。従ってリセットはCLKIN同様にCPUクロック(CLKOUT1)サイクルに関して最小低時間を有する。装置をリセットするための詳細なタイミング要求はデータシートの中に記述されている。RESETの立ち上がりでプロセッサが予め定められたブート構成で開始される。
【0303】
ブート構成
外部ピンBOOTMODE[4:0]はその部分のブート構成を決定する。BOOTMODE[4:0]の値はRESET−の立ち上がりでラッチされる。これらのピンは適切にセットアップされて有効となっていて、この立ち上がりを掴む必要がある。個部とのタイミング要求に関してはデータシートを参照されたい。このブート構成は下記を決定する(表49):
装置メモリマップ。
リセット位置、アドレス0に於けるメモリの型式。
リセット時にどのブートロードプロセスが初期化されたか。
【0304】
【表50】
Figure 0004285803
【0305】
メモリマップ
2つのメモリマップ、MAP0およびMAP1(表50)が存在する。これらの違いは、MAP0はアドレス0に写像された外部メモリを有し、MAP1はアドレス0に写像された内部メモリを有する点である。内部周辺機器用に割り当てられた空間はその目的のために予約された空間を表すことに注意されたい。予約されている全メモリ空間が割り当てられているわけでは無い。ここに於ける周辺機器ならびに内部機器に関する説明を参照されたい。
【0306】
【表51】
Figure 0004285803
【0307】
アドレスリセットアドレスに於けるメモリ
表49に示されるように、ブート構成はプロセッサ動作用のリセットアドレス、アドレス0に配置されたメモリの型式を決定する。BOOTMODEピンがMAP1を選択するとき、このメモリは内部メモリである。装置モードがMAP0にあるとき、メモリは外部メモリである。外部メモリが選択されているとき、BOOTMODEはまたリセットアドレスに於けるメモリの型式を決定する。効果的に、これらのオプションは適切なEMIF制御レジスタに代わりとなるリセット値を提供する。
【0308】
ブートプロセス
ブートプロセスもまたBOOTMODEピンにより、表50に示されるように決定される。3つの型のブートプロセスが可能である:
1.非ブートプロセス:CPUは単にアドレス0に配置されているメモリから起動を開始する。SDRAMの場合、CPUはSDRAM初期化が完了するまで保持される。
2.ROMブートプロセス:ROMブートプロセスに於いて、CE空間1の始まりに配置されているメモリはアドレス0にDMAによってコピーされる。ブートプロセスは装置が外部リセットから解放された時に始まるが、この転送はCPUが内部的にリセットに保持されている間に生じる。コピーされるメモリの量は32ビットの16Kワードである。このプロセスはまたROMの幅を選択することも出来る。この場合、EMIFは後続の8ビットバイトまたは16ビット半ワードを自動的に集めて移動される32ビット命令ワードとすることが出来る。これらの値は小エンディアン形式で外部メモリ、典型的にはROM装置の中に格納されることが期待される。
この転送は自動的にチャンネル0で行われる。DMAチャンネルは同期されていない32ビットの16Kワードの単一フレームブロック転送をCE空間1の始まりからアドレス0へ実行するようにセットアップされている。MAP0が選択されている場合、EMIFは全てのDMA要求を何らかの代替リセット値で構成されるまで延期する。SDRAMの場合、EMIFはSDRAMが初期化されるまで転送を延期する。CE空間1の位置は選択されたメモリマップに依存する。
DMA_INT0遷移が有効となって、ブロック転送の完了を示す場合、CPUはリセットから解除されてアドレス0からの始動が許可される。DMA_INT0条件はCPUが未だリセット状態にいるため、CPUによってラッチされないことに注意されたい。また、DMA_INT0はROMブートプロセスが選択されている場合、CPUを内部リセットから覚醒させるだけである。この条件の後、DMAチャンネル0二次制御レジスタ内のBLOCK CONDはセットされた状態で維持される。これは使用者が後続のDMA_INT0遷移をCPUおよびDMAに対して受信出来るようにするために消去されなければならない。
3.HPIブートプロセス:HPIブートプロセスに於いて、CPUはリセット状態に保持され、一方で残りの装置はリセットから覚醒される。この周期の間、外部ホストはHPIを通して必要に応じてCPUのメモリ空間を初期化する、これには外部メモリ構成レジスタが含まれる。一度外部メモリが要求通りに構成されると、ホストは初期化を完了する必要のある外部区分にアクセスする。ひとたびホストが全ての必要な初期化を通過すると、これは1をHPI制御レジスタ(HPIC)内のDSPINTビットに書き込む。この書き込みはDSPINT信号上に有効な遷移を引き起こす。この遷移は続いて、ブート構成論理を起動しCPUをそのリセット状態から解放する。次にCPUはアドレス0からの起動を開始する。DSPINT条件は、CPUが未だリセット状態にあるためCPUによってラッチされない。また、DSPINTはHPIブートプロセスが選択されている場合、CPUを内部リセット状態から覚醒させるだけである。
【0309】
MCSP
次に図44を参照すると、これはMCSP120のブロック図であり、本発明の発明的特徴および優れた機能を詳細に説明する。略語の説明は付録Aを参照されたい。
【0310】
複数チャンネルシリアルポート(MCSP)はテキサスインスツルメント社から市販されているTMS320C2x,および’C5x,ディジタル信号処理装置の中に見られる既知のシリアルポートインタフェースを改善したものである。このシリアルポートの詳細な説明は米国特許連番08/489,014号(明細書TI−19942)の中に提供されており、これはここに挙げることで参照されている。既存品と同様にMCSPは下記の機能を提供する:
1.完全二重化通信
2.連続データストリームを可能とする二重バッファデータレジスタ。
3.受信および送信に対する独立したフレーム化およびクロック。
4.工業標準コード、アナログインタフェースチップ(AIC)、
およびその他のシリアル接続されたA/DおよびD/A装置への直接インタフェース。
5.外部シフトクロック生成または内部プログラム可能周波数シフトクロック。
これに加えて、MCSPは下記の機能を有する:
1.下記への直接インタフェース:
T1/E1フレーム生成器
MVIPおよびST−BUS適合装置
IOM−2適合装置
AC97適合装置。必要な複数位相フレーム同期機能が具備されている。
IIS適合装置
SPI装置
2.128チャンネルまでの複数チャンネル送信および受信。
3.LSBまたはMSBを最初に転送するように8ビットデータに圧縮伸張する8−、12−、16−、20−、24−、または32−ビットμ−LawおよびA−Lawを含む広範なデータサイズの選択
4.フレーム同期とデータクロックの両方用のプログラム可能極性
5.高いプログラム可能性の内部クロックおよびフレーム生成。
【0311】
MCSP120は図44に示すようにデータ経路と制御経路とを含む。表51に記載されている7つの外部ピン121a−121gは制御並びにデータ経路を外部装置に接続する。データはMCSPにインタフェースしている装置に送信に関してはデータ送信(DX)ピン、また受信に関してはデータ受信(DR)ピンを経由して通信される。クロックおよびフレーム同期の形式の制御情報はCLKX,CLKR,ESX,およびFSR経由で通信される。プロセッサ1はMCSPに内部周辺機器バス110経由でアクセス可能な32ビット幅制御レジスタ経由で通信する。CPU10またはDMA100/101は受信されたデータをデータ受信レジスタ(DRR)から受信し、送信されるデータをデータ送信レジスタ(DXR)に書き込む。DXRに書き込まれたデータはDXに送信シフトレジスタ(XSR)経由でシフトアウトされる。同様にDRピン上の受信データはRSRの中にシフトされRBRの中にコピーされる。続いてRBRはDRRにコピーされ、これはCPUまたはDMAで読むことが出来る。これにより内部データの移動と外部データ通信とが同時に行える。CPU10にアクセス可能な残りのレジスタは、MCSPの制御機構を構成する。これらのレジスタは表52に示されている。制御ブロックは内部クロック生成、フレーム同期信号生成、およびそれらの制御、並びに複数チャンネル選択から構成される。この制御ブロックは重要な事象の通知をCPUおよびDMAに、表53に示される4つの信号経由して送る。
【0312】
【表52】
Figure 0004285803
【0313】
【表53】
Figure 0004285803
【0314】
【表54】
Figure 0004285803
【0315】
シリアルポートはそれぞれ図45および図46に示されるように、32ビットシリアルポート制御レジスタ(SPCR)およびピン制御レジスタ経由で構成される。SPCRおよびPCRはMCSP状態情報を含み、また希望する動作に構成出来るビットを含む。各々のビットフィールドの動作を後の章で説明する。
【0316】
表54および表55は、それぞれSPCRおよびPCRの各ビットフィールドを説明している。
【0317】
【表55】
Figure 0004285803
【0318】
【表56】
Figure 0004285803
【0319】
図47および図48に示されている受信および送信制御レジスタ(RCRおよびXCR)はそれぞれ受信および送信動作の種々のパラメータを構成する。各ビットフィールドの動作を後章で説明する。表56はRCRおよびXCRの各ビットフィールドを記述している。
【0320】
【表57】
Figure 0004285803
【0321】
図44に示されるように、受信動作は3重バッファ化され送信動作は2重バッファ化されている。DR上に到着する受信データはRSRの中にシフトされる。ひとたび全ワード(8−、12−、16−、20−、24−、または32ビット)が受信されると、RSRは常に受信バッファレジスタ、RBRにコピーされる。RBRは次に、DRRがCPUまたはDMAで使用中で無い限りDRRにコピーされる。
【0322】
送信データはCPUまたはDMAでDXRに書き込まれる。もしもXSR内にデータが存在しない場合は、DXR内の値がXSRにコピーされる。それ以外の場合は、DXR内のデータの最後のビットがDXにシフトアウトされた後、DXRはXSRにコピーされる。送信フレーム同期の後、XSRは送信データをDX上にシフトアウトし始める。
【0323】
シリアルポート送信機および受信機はシリアル制御レジスタ内のRRST−およびXRST−ビットで独立にリセットされる。もしもRRST−=XRST−=0の場合、全シリアルポートはリセット状態となる。装置リセット76はまたシリアルポートをリセット状態とする。装置リセット76が取り除かれると、RRST−=XRST−=0,全シリアルポートをリセット状態に保持する。表57はシリアルポートが受信機/送信機リセット(XRST−=RRST−=0)および装置リセット76によってリセットされた際のMCSOピンの状態を示す。
【0324】
【表58】
Figure 0004285803
【0325】
MCSPがリセットの場合下記が生じる:
1)状態機械がその初期状態にリセットされる。この初期状態はカウンタと状態ビットのリセットを含む。受信状態ビットRFULL,RRDY,およびRSYNCERRを含む。送信状態ビットはXEMPTY−,XRDY,およびXSYBCERRを含む。(R/X)SYNCERRもまた使用者によってゼロに消去される。
2)シリアルポートの対応する部分(送信機/受信機)の活動が停止する。FS(R/X)はそれらが出力の場合無効状態に駆動され、もしもそれらが入力として構成されている場合(FS(R/X)M=0の時)高インピーダンス状態(高インピーダンス状態)に設定される。CLK(R/X)はその極性ビットの値,CLK(R/X)P,にセットされるが、それは内部サンプリング速度生成器で駆動されるかまたはもしも送信および受信クロックがMCSPへの入力として取り扱われる場合に高インピーダンス状態(高インピーダンス状態)に置かれている場合である。最終的にD(R/X)ピンは、送信機そして/または受信機そして/または装置がリセットされている時高インピーダンス状態にある。1つの例外は内部サンプリング速度生成クロック、CLKG,であってこれはシリアルポートのリセット状態に関係なく構成されている通りに実行される。フレーム速度発生器からのフレーム同期信号FSGは無効状態(フレーム同期極性ビット、FS(R/X)P上の値と同じ)に駆動され、リセット中にFS(R/X)M=1の場合FSR/FSXを容易にする。
3)装置リセット76のためにMCSPがリセットの場合は、全てのシリアルポートピンはhi−Z状態に駆動される。そのシリアルポートがそのリセット状態に留まっているが、装置はそうで無い場合、DRおよびDXピンは後の章で説明するように汎用目的I/Oとして使用される。
【0326】
シリアルポート初期化手順は下記のステップを含む:
1)SPCR内のXRST−=RRST−=0にセットする。
2)シリアルポートがリセット状態(XRST−=RRST−=0)の時、表52に記述されたMCSP構成レジスタのみ(そしてデータレジスタは含まず)をプログラムする。
3)2ビットクロックだけ待つ。これは適切な同期が内部的に行われることを保証する。
4)シリアルポートを有効化するためにXRST−=RRST−=1をセットする。この時にSPCRに書き込まれた値はリセットビットのみが1に変更され、残りのビットフィールドは上記ステップ2と同一の値に残される。
【0327】
これとは別に、いずれかの書き込み(上記ステップ1および4)に於いて、送信機および受信機は希望するビットのみを修正変更する事で別々にリセットにセットしたり解除することが出来る。XRST−またはRRST−の有効低状態周期の必要な長さは、最低2ビットクロック(CLKR/CLKX)幅であることに注意されたい。
【0328】
注:(a)シリアルポート構成レジスタSPCR,PCR,RCR,XCR,およびSRGR内の固有のビットフィールドは、シリアルポートの影響部分がリセット状態の時に使用者によってのみ修正変更されるべきである。(b)データレジスタDXRはCPUまたはDMAによって、送信機がリセット状態でないとき(XRST−=1)にのみ修正変更出来る。(c)複数チャンネル選択レジスタMCR,XCER,およびRCERはこれらが複数チャンネル選択内の現行ブロックで使用されていない限り、いつでも修正変更することが出来る;複数チャンネルモードの事例の詳細は第0章を参照されたい。
【0329】
例えば、制御レジスタ内の下記の値は受信機が運転中に送信機をリセットしかつ構成する:
【表59】
Figure 0004285803
【0330】
準備完了状態はRRDYおよびXRDYで示される。RRDYおよびXRDYはそれぞれMCSP受信機および送信機の準備完了状態を示す。シリアルポートの書き込みおよび読み取りはRRDYおよびXRDYにポーリングを行うことによって、またはDMAへの事象(REVTおよびXEVT)を使用することによりまたはそれらを生成するCPUに割り込み(RINTおよびXINT)を掛けることによって同期を取られる。DRRの読み取りおよびDXRへの書き込みはRRDYおよびXRDYに影響する。
【0331】
受信準備完了状態は下記を含む:REVT,RINT,およびRRDY;RRDY=1はRBR内容がDRRにコピーされそのデータがCPUまたはDMAに対して準備完了であることを示す。一度そのデータがCPUまたはDMAのいずれかによって読みとられると、RRDYは0に消去される。また、装置リセットまたはシリアルポート受信機リセット(RRST−=0)に於いて、RRDYは0に消去され、受信データが存在せずまたDRR内にロードされていないことを示す。RRDYはDMAへのMCSP受信事象(REVT)を直接駆動する。また、CPUへのMCSP受信割り込み(RINT)はSPCR内でRINTM=1の場合、RRDYで駆動される。
【0332】
送信準備完了状態は下記を含む:XEVT,XINT,およびXRDY:XRDY=1はDXR内容がXSRにコピーされ、DXRが新しいデータワードでロードされる準備が完了したことを示す。受信機がリセットから非リセットへ遷移する時(XRST−が0から1へ遷移する)XRDYはまた0から1へ遷移し、DXRが新たなデータへの準備が完了したことを示す。一度新たなデータがCPUまたはDMAによりロードされると、XRDYは0に消去される。しかしながら、一度このデータがDXRからXSRへコピーされると、XRDYは再び0から1へ遷移する。そこで再びCPUまたはDMAは、XSRが未だDX上にシフトアウトされていないが、DXRに書き込むことが出来る。XRDYはDMAへの送信同期事象(XEVT)を直接駆動する。また、CPUへの送信割り込み(XINT)もまた、SPCR内でXINTM=00bの場合XRDYで駆動される。
【0333】
CPU割り込み:は(R/X)INTで要求される。受信割り込み(RINT)および送信割り込み(XINT)はCPUにシリアルポート状態の変化を信号通知する。これらの割り込みの構成に4つの選択肢が存在する。これらはSPCR内の受信/送信割り込みモードビットフィールド、(R/X)INTMで設定される。
1)(R/X)INTM=00b。SPCR内の(R/X)RDYビットを追跡することにより、全てのシリアルワードに割り込みが掛けられる。RRDYおよびXRDYビットは先に説明した。
2)(R/X)INTM=01b。1つのフレームの中で16チャンネルブロック境界(複数チャンネル選択モードに於いて)を横切った後毎に割り込みを行う。その他のシリアル転送の場合、この設定は適用されず、従って割り込みは発生しない。このことは後ほど詳細に説明される。
3)(R/X)INTM=10b。フレーム同期パルスを検出すると割り込みを行う。これはたとえ送信機/受信機がリセット中であっても割り込みを発生する。これは入力されるフレーム同期パルスをCPUクロックに同期させ、それをCPUへ(R/X)INT経由で送ることにより実行される。これは後ほど詳細に説明される。
4)(R/X)INTM=11b。フレーム同期エラー時の割り込み。
【0334】
もしもその他の割り込みモードが選択されている場合は(R/X)SYNCERRが読み込まれてこの条件を検出することに注意されたい。同期エラーは後ほど更に詳細に説明される。
【0335】
図49はMCSPクロックとフレーム同期信号の典型的な動作を示す。シリアルクロックCLKR,とCLKXはそれぞれ受信および送信用のビット間の境界を定める。同様に、フレーム同期信号FSRおよびFSXはシリアルワードの始まりを定める。MCSPはデータフレーム同期用の種々のパラメータの構成を可能とする。これは受信と送信に関して独立して行うことが出来て、以下の選択肢を含む:
1)FSR,FSX,CLKX,およびCLKRの極性は独立にプログラムされる。
2)単一または二重位相フレームの選択。
3)各々の位相に対してワードの個数はプログラム可能である。
4)各位相に対してワード毎のビット数はプログラム可能である。
後続のフレーム同期はシリアルデータストリームを再スタートするかまたは無視される。
5)フレーム同期から第一データビットまでのデータビット遅延は0−、1−、または2−ビット遅延と出来る。
6)右または左行揃え、同様に符号拡張またはゼロ充填を受信データに対して選択できる。
【0336】
フレームおよびクロック動作を次に説明する。受信および送信フレーム同期パルスはサンプル速度発生器(後ほど説明する)によって内部的に生成されるか、または外部信号発生源により駆動する事ができる。これはPCR内のモードビット、FS(R/X)Mをプログラムする事により実現できる。FSRはまたSRGR(後ほど説明する)内のGSYNCビットにより影響される。同様に受信および送信クロックはPCR内のモードビットCLK(R/X)Mをプログラムすることにより入力または出力として選択できる。
【0337】
FSRおよびFSXが入力の時(FSXM=FSRM=0,外部フレーム同期パルス)、MCSPはそれぞれ内部クロックの立ち下がり、CLKR_int,およびCLKX_int(図79)でこれらを検出する。DRピンに到着する受信データはまたCLKR_intの立ち下がりでサンプリングされる。これらの内部クロック信号は外部信号発信源からCLK(R/X)ピン経由で駆動されるかまたは内部的にMCSPに対するサンプル速度発生器クロック(CLKG)によって駆動されるかのいずれかであることに注意されたい。
【0338】
FSRおよびFSXが出力の場合、これらはサンプル速度発生器で駆動されることを意味し、これらは内部クロック、CLK(R/X)_intの立ち上がりで生成される(それらの有効状態に遷移する)。同様にDXピン上のデータはCLKX_intの立ち上がりで出力される。
【0339】
FSRP,FSXP,CLKRP,およびCLKXPは図55に示すように外部FSR,FSX,CLKR,およびCLKX信号の相対的な極性を構成する。内部的にシリアルポートに対する全てのフレーム同期信号(FSR_int,FSX_int)は有効高状態である。もしもシリアルポートが外部フレーム同期に対して構成されていて(FSR/FSXはMCSPへの入力)、FSRP=FSXP=1の場合、外部の有効低状態フレーム同期信号は受信機(FSR_int)および送信機(FSX_int)へ送られる前に反転される。同様に、内部同期(FSR/FSXは出力ピンでGSYNC=0)が選択されている場合、内部有効高同期信号は、もしも極性ビットFS(R/X)P=1であるとFS(R/X)ピンに送られる前に反転される。図79はこの反転をXORゲートを用いて示している。
【0340】
送信側では、送信クロック極性ビット、CLKXPは送信データをシフトしクロックアウトするために使用される信号変化方向をセットする。データは常にCLKX_intの立ち上がりで送信されることに注意されたい。もしもCLKXP=1で外部クロックが選択されている場合(CLKXM=0でCLKXが入力)、CLKX上の入力クロックでトリガを掛けられた外部立ち下がり信号変化が、送信機に送られる前に立ち上がりトリガクロックに反転される。もしもCLKXP=1で内部クロックが選択されている場合(CLKXM=1でCLKXが出力ピン)、内部(立ち上がりトリガ)クロック、CLKX_int、はCLKXピンに送り出される前に反転される。
【0341】
同様に、送信機側での構成は受信機側が立ち上がりクロックでクロックされた(送信機により)データを確実にサンプリングできるようになされる。受信クロック極性ビット、CLKRPは受信されたデータをサンプリングするために使用される信号変化方向を設定する。受信データは常にCLKR_intの立ち下がりでサンプリングされることに注意されたい。従って、もしもCLKRP=1で外部クロックが選択されている場合(CLKRM=0でCLKRは入力ピン)、CLKR上の入力クロックでトリガを掛けられた外部立ち上がり信号変化が、受信機に送られる前に立ち下がりトリガクロックに反転される。もしもCLKRP=1で内部クロックが選択されている場合(CLKRM=1)、内部立ち下がりトリガクロックはCLKRピンに送り出される前に立ち上がりに反転される。
【0342】
同一クロック(内部または外部)を用いて受信機および送信機にクロックを掛けているシステムでは、CLKRP=CLKXPであることに注意されたい。受信機は送信機と反対の信号変化方向を使用しており、この信号変化の周りで有効なデータのセットアップおよび保持が行われることを保証している。図50はデータが立ち上がり信号変化を使用した外部シリアル装置でクロックをかけられる様子を示し、これは同一クロックの立ち下がりによりMCSP受信機でサンプリングされたものである。
【0343】
次にフレーム同期を説明する。フレーム同期はMCSP上の転送の始まりを示すために使用される。フレーム同期に続くデータストリームは2つの位相、位相1および位相2を有する。1つのデータストリーム内の位相の数は、RCRおよびXCR内の位相ビット(R/X)PHASEで選択できる。フレーム毎のワード数およびワード毎のビット数はそれぞれ(R/X)FRLEN(1/2)および(R/X)WDLEN(1/2)経由で各々の位相に対して独立に選択することが出来る。図51はフレームの例を示し、ここで第一位相は各々12ビットの2ワードからなり、各々8ビットの3ワードの第二位相が続いている。フレーム内の全ビットストリームは連続していることに注意されたい。ワード間にも位相間にも間隙は存在しない。
【0344】
表58は受信/送信制御レジスタ(RCR/XCR)内のビットフィールドを示し、これは受信機および送信機の両方に関して各位相に対するワード/フレームおよびビット/ワードの数を制御する。フレーム毎のワードの最大数は128、およびワード毎のビット数は8−、12−、16−、20−、24−または32−ビットである。
【0345】
【表60】
Figure 0004285803
【0346】
次にフレーム長、(R/X)FRLEN(1/2)を表59を参照して説明する。フレーム長はフレーム毎に転送されるシリアルワードの数(−、12−、16−、20−、24−または32−ビット)として定義出来る。これはフレーム同期信号毎のワードまたは論理タイムスロットまたはチャンネル数に相当する。(R/X)CR内の7ビット(R/X)FRLEN(1/2)フィールドは、表59に示すようにフレーム毎に最大128ワードまでサポートする。(R/X)PHASE=0は単一位相データフレームを表し、また(R/X)PHASE=1はデータストリームに関して二重位相を選択する。単一位相フレームに対して、FRLEN2は無関係である。使用者はプログラムをする際にフレーム長をw引く1とすることに注意が必要である、ここでwはフレーム毎のワード数を表す。図51の例に於いて、(R/X)FRLEN1=1または0000001bおよびR/X)FRLEN2=2または0000010bである。
【0347】
【表61】
Figure 0004285803
【0348】
次にワード長(R/X)WDLEN(1/2)を説明する。受信/送信制御レジスタ内の8ビット(R/X)WDLEN(1/2)フィールドは、ワード長をワード毎のビット数で、表58に示すようにフレームの各位相に対して受信機および送信機用に定義している。表60はこれらのフィールドの値がどのように個別のビット単位のワード長を選択するかを示している。例として図51では、(R/X)WDLEN1=001b,および(R/X)WDLEN2=000bである。もしも(R/X)PHASE=0で単一位相フレームを示している場合は、(R/X)WDLEN2はMCSPでは使用されずその値は無用である。
【0349】
【表62】
Figure 0004285803
【0350】
次にフレーム長およびワード長を使用したデータ充填を説明する。フレーム長およびワード長は効果的にデータを充填するために操作する事が出来る。例えば、図52に示すように4つの8ビットワードが単一フレームの中で転送される状況を考える。この場合:
(R/X)FRLEN1=0000011b,4ワードフレーム
(R/X)PHASE=0,単一位相フレーム
(R/X)FRLEN2=X
(R/X)WDLEN1=000b,8ビットワード
【0351】
この場合、4つの8ビットデータ要素がCPUまたはDMAによってMCSP相互間で転送される。従って、DRRの4つの読み取りおよびDXRの4つの書き込みが各フレームに対して必要である。
【0352】
図52の例はまた図53に示される1つの32ビットデータワードから成る単一位相フレームのデータストリームとして取り扱われることも可能である。
この場合:
(R/X)FRLEN1=0b,1ワードフレーム
(R/X)PHASE=0,単一位相フレーム
(R/X)FRLEN2=X
(R/X)WDLEN1=101b,32ビットワード
【0353】
この場合、1つの32ビットデータワードがCPUまたはDMAによってMCSP相互間で転送される。従って、DRRの1つの読み取りおよびDXRの1つの書き込みが各フレームに対して必要である。これは結果として先の場合に比較して転送回数がたった四分の一となる。この操作はシリアルデータ移送に要求されるバス時間の割合を減少させる。
【0354】
次にデータ遅延(R/X)DATDLYを説明する。フレームの開始はフレーム同期が有効であると認められた第一クロックサイクルで定義される。フレームの開始に対して、実際のデータ受信または送信の開始を必要に応じて遅延することが出来る。この遅延はデータ遅延と呼ばれる。RDATDLYおよびXDATDLYはそれぞれ受信および送信に対するデータ遅延を指定する。プログラム可能なデータ遅延の範囲はゼロから2ビットクロック((R/X)DATDLY=00b−10b)であり、表56に記述されまた図54に示される通りである。典型的には1ビット遅延が1サイクル有効フレーム同期パルスに続くデータとして選択される。
【0355】
通常、フレーム同期パルスがシリアルクロックCLK(R/X)_int(先に説明済み)の信号変化に対して検出またはサンプリングされる。従って、後続のサイクルまたはその後(データ遅延値に応じて)、データが受信または送信される。しかしながら、データ遅延がゼロビットの場合、そのデータは同一シリアルクロックサイクル上で受信そして/または送信用に準備完了でなければならない。受信に関して、この問題は受信データが有効高状態FSR_intが検出されるCLKR_intの第一立ち下がりでサンプリングされるので解決される。しかしながら、データ送信はフレーム同期を生成するCLKX_intの立ち上がり変化で開始されなければならない。従って第一データビットはXSR従ってDXの中に存在すると考えられる。次に送信機は、有効高状態に変化するフレーム同期、FSX_intを非同期的に検出し、直ちに第一ビットがDXピン上に送信されるように駆動を開始する。
【0356】
別の共通モードは2つのデータ遅延である。この構成はシリアルポートが異なる型式のT1フレーム化装置に対してインタフェースを取ることを可能とし、ここでデータストリームはフレーム化ビットで先導される。2ビットのデータ遅延を具備した(フレーム化ビットは1ビット遅延の後に現れ、データは2ビット遅延の後に現れる)この様なストリームを受信する間に、シリアルポートは本質的にフレーム化ビットをデータストリームから図55に示すように廃棄する。送信に際して、第一転送ビットを遅延し、シリアルポートは空白周期(高インピーダンス周期)をフレーム化ビットが存在すべき場所に本質的に挿入する。ここでフレーム化装置はそれ自身のフレーム化ビットまたは別の装置で生成されたフレーム化ビットを挿入すると期待されている。
【0357】
次に複数移送フレーム例を説明する。図56は二重移送フレーム機能を使用するAudio Codec’97(AC97)企画の例を示す。第一位相は単一の16ビットワードで構成される。第二位相は12の20ビットワードで構成される。位相は下記のように構成される:
(R/X)PHASE=1b,二重位相フレーム
(R/X)FRLEN1=0b,位相1でフレーム当り1ワード
(R/X)WDLEN1=010b,位相1でワード当り16ビット
(R/X)FRLEN2=0001011b,位相2でフレーム当り12ワード
(R/X)WDLEN2=011b,位相2でワード当り20ビット
CLK(R/X)P=0、CLKR_intの立ち下がりでサンプリングされた受信データ;CLKX_intの立ち上がりでクロックされた送信データ。
FS(R/X)P=0,有効高フレーム同期信号
(R/X)DATDLY=01b,1ビットクロックのデータ遅延
【0358】
図56はAC97に近いフレーム同期のタイミングを示す。最初にフレーム同期パルス自身が第一ワードと重複していることを注意されたい。MCSP動作に際して、フレーム同期信号の無効から有効への遷移は実際にフレーム同期を示している。この理由により、フレーム同期は高状態で任意の数のビットクロックである。フレーム同期が認識された後にのみフレーム同期は無効となり、また次にフレーム同期が認識されると再び有効となる。
【0359】
また図57に1ビットデータ遅延が存在することに注意されたい。データ遅延に関係なく送信は間隙無しに生じることを注意されたい。位相2内の先行(最終)ワードの最終ビットの直ぐ後ろに、次のデータフレームの位相1内の第一ワードの第一データビットが続く。
【0360】
次にMCSP標準動作モードを説明する。動作のモードに応じて、パケットまたは転送の間にシリアルポート無効の周期を置くことが出来る。この場合、受信および送信フレーム同期パルスはシリアルワード転送毎に生じる。MCSPがリセット状態では無く、希望する動作用に構成されている場合、シリアル転送は(R/X)OHASE=0を(R/X)FRLEN1の中にプログラムされたワードの必要数を具備した単一位相フレーム用にプログラムする事で開始出来る。ワード数は1から128((R/X)FRLEN1=0x0から0x7F)間での範囲を取ることが出来る。要求されるシリアルワード長は(R/X)CR内の(R/X)WDLEN1フィールド内に設定される。転送に際して二重位相が必要とされる場合は、RPHASE=1,(R/X)FRLEN(1/2)は1から128ワードを表す0x0から0x7Fの間の任意の値に設定出来る。
【0361】
図58は1つの8ビットワードを含む単一位相データの例を示す。転送は1データビット遅延で構成されているのでDXおよびDRピン上のデータはFS(R/X)が有効になって1ビットクロック後に利用できる。この章の全ての残りと同様にこれは以下の仮定を行っている:
(R/X)FRLEN1=0b,フレーム当り1ワード
(R/X)PHASE=0,単一位相フレーム
(R/X)FRLEN2=X,無効
(R/X)WDLEN1=000b,8ビットワード
CLK(R/X)P=0、受信データは立ち下がり変化でクロック;送信データは立ち上がり変化でクロック。
FS(R/X)P=0,有効高フレーム同期信号
(R/X)DATDLY=01b,1ビットデータ遅延
【0362】
図59シリアル受信の例を示す。一度フレーム同期(FSR_int)の有効高状態への遷移を受信すると、それは受信機のCLKR_intの第一立ち下がり変化で検出される。次にDRピン上のデータはRDATDLYで設定された適切なデータ遅延の後、受信シフトレジスタ(RSR)の中にシフトされる。RSRの内容は次にRBRにシフトされる。RRDYはRBRからDRRへのコピーが行われる度に有効化されて、受信データレジスタ(DRR)がCPUまたはDMAで読みとられるデータの準備が完了したことを示す。RRDYはDRRがCPUまたはDMAで読みとられると無効化される。
【0363】
図60はシリアル転送の例を示す。一度送信フレーム同期が生じると、送信シフトレジスタ、XSR内の値はXDATDLYで設定された適切なデータ遅延の後にシフトアウトされてDXピン上に駆動される。XRDYはDXRからXSRへのコピーの度に有効化されて、データ送信レジスタ(DXR)に送信される次のデータが書き込まれたことを示す。XRDYはDXRがCPUまたはDMAで書き込まれると無効化される。
【0364】
図61は最大充填周波数でのMCSP動作を示す。1つのフレーム内のワードの総数は、単一位相または二重位相に関わらずシリアル転送パケットと呼ばれる。パケット周波数はフレーム同期信号間の周期で決定される:
【数1】
Figure 0004285803
【0365】
パケット周波数はビットクロック内のフレーム同期信号間の距離を減らすことにより増加させることが出来る(パケット当たりのビット数でのみ制限される)。パケット送信周波数が増加されると、隣接する転送に対するデータパケット間の無効周期がゼロに減少される。フレーム同期間の最小間隔はパケット毎に転送されるビット数である。この距離はまた最大パケット周波数を定める:
【数2】
Figure 0004285803
【0366】
最大パケット周波数に於いて、後続パケット内のデータビットはビット間に無効状態を具備することなく連続的に送信される。もしも図示されるように1ビットデータ遅延が存在する場合、フレーム同期パルスは先行パケット内で送信された最後のビットと重複する。
【0367】
効果的に、これはデータの連続したストリームを可能とし、従ってフレーム同期パルスは本質的に冗長となる。従って理論的に、複数パケット転送を開始するには最初のフレーム同期パルスのみが必要である。MCSPはシリアルポートの動作をこの方法で、後続のフレーム同期パルスを無視することでサポートする。データは各クロック毎に受信機の中にクロックで送り込まれるかまたは送信機からクロックで送り出される。(R/X)CR内のフレーム無視ビット、(R/X)FIGをプログラムして、後続のフレーム同期パルスを希望するフレーム長またはワード数に達するまで無視するように出来る。これは後ほど説明する。
【0368】
次にフレーム同期無視モードを説明する。MCSPは送信および受信フレーム同期パルスを無視するように構成する事が出来る。(R/X)CR内の(R/X)FIGビットを、フレーム同期パルスを無視しないようにゼロにまたは、フレーム同期パルスを無視するように1にセットするようにプログラムすることが可能である。この様にして使用者は(R/X)FIGビットをデータを充填するかまたは予想しないフレーム同期パルスを無視するように使用することが出来る。以下の段落でデータ充填を説明する;また予期しないフレーム同期パルスに対するMCSP動作をその次の段落で説明する。
【0369】
次にフレーム同期無視ビットを使用したデータ充填を説明する。ワード長およびフレーム長を変更して32ビットシリアルワード転送を模擬する1つの方法を図52を参照して説明されている、従ってより少ないバス帯域幅しか必要としない。この例はフレーム当たり複数のワードが存在する場合に適用される。次に図62に示される最大パケット周波数で動作するMCSPの事例を考える。ここで各々のフレームは単一8ビットワードのみを有する。このストリームは各8ビットワードに対して1つの読み取りおよび1つの書き込みを行う。図63はこのストリームを32ビットワードの連続したストリームとして取り扱うように構成されたMCSPを示す。この例で最初のものを除く後続フレームを無視するように(R/X)FIGは1に設定されている。ここでは、32ビット毎に1つの読み取りおよび1つの書き込み転送のみが必要とされる。この構成は効果的に必要とされるバス帯域幅を四分の一に削減する。
【0370】
次にフレーム同期無視および予期しないフレーム同期パルスを説明する。先の章ではデータをパックし効果的にバス帯域幅を使用するためにどのようにフレーム無視ビットが使用できるかを説明している。(R/X)FIGビットはまた予期しないフレーム同期パルスを無視するためにも使用できる。予期しないフレーム同期パルスとはそれらが期待されていない時に生じるものである。従ってプログラムされたデータ遅延((R/X)DATDLY)より1つまたは複数ビットクロックより前に生じる全てのフレーム同期パルスは予期していないと見なされる。フレーム無視ビットを1に設定することにより、シリアルポートがこれらの予期しないフレーム同期信号を無視するように出来る。
【0371】
受信に際して、もしも無視しない場合は(RFIG=0)、予期されていないFSRパルスは新たに入力されデータを選んでRSRの内容を廃棄する。従って、もしもRFIG=0の場合は予期していないフレーム同期パルスは現行データ転送を破棄して、SPCR内のRSYNCERRを1にセットし、新たなデータワードの転送を開始する。これは後ほど更に詳細に説明する。RFIG=1の時受信は予期しないフレーム同期パルスを無視して継続される。
【0372】
もしも(R/X)FIGがゼロにセットされると、これらのフレーム同期パルスは無視されない。送信に際して、もしも無視しない場合は(XFIG=0)、予期しないFSXパルスは現在の送信を破棄し、その結果1つのデータパケットが失われ、SPCR内のXSYNCERRを1にセットし、新たなデータワードの送信を開始する。これは後ほど更に詳細に説明する。XFIG=1の場合、予期しないフレーム同期信号を無視して正常送信が継続される。
【0373】
図64は(R/X)FIG=0の時にワードBが予期しないフレーム同期パルスで割り込みを掛けられる例を示す。受信の事例では、Bの受信は破棄され(Bは失われる)新たなデータワード(この例ではC)が適切なデータ遅延の後に受信される。この状態は受信同期エラーであり、従ってRSYNCERRフィールドがセットされる。しかしながら、送信に関してはBの送信が破棄され同一データ(B)が適切なデータ遅延の後再送信される。この状態は送信同期エラーであり、従ってXSYNCERRフィールドがセットされる。同期エラーについては後ほど説明する。これとは対照的に図65は予期しないフレーム同期信号が(R/X)FIG=1をセットすることで無視されている場合のMCSP動作を示す。ここで、ワードBの転送は予期しないフレーム同期では影響されない。
【0374】
次にシリアルポート除外条件を説明する。下記に示すように、システムエラーを構成する5つのシリアルポート事象が存在する:
1)受信オーバーラン(RFULL=1)。これはRBRが満杯となり先にDRR内に受信されたデータがCPUまたはDMAによって未だ読みとられていない(RRDY=1)時に発生する。RBRの内容はDRRが読みとられるまでDRRには転送されない。
2)予期しない受信フレーム同期(RSYNCERR=1)。これは受信中に、RFIG=1で予期しないフレーム同期パルスが発生したときに生じる。予期しないフレーム同期パルスはRDATDLY引く1、またはそれ以上のビットクロック分だけ次の関連するワードの先頭ビットより早く発生したものとして定義される。これは現行データ受信を破棄し再スタートを促す。もしも新たなデータのRSRからRBRへのコピーが最後にRBRからDRRへのコピーの後になされると、このRBR内の新たなデータは失われる。これは受信が再スタートされるためにRBRからDRRへのコピーが行われないためである。
3)送信データ上書き。ここで使用者はデータをDXRの中にそれがXSRへコピーされる前に上書きする。それ以前にDXR内にあったデータはDXへ転送されることは無いが、それは決してXSRにコピーされないからである。
4)送信空(XEMPTY−=0)。もしも新たなフレーム同期信号が新たなデータがDXRの中にロードされる前に到着すると、DXR内の旧データが再び送られることになる。これはDXRに新たなデータがロードされるまで、新たなフレーム同期信号がFSXピンに到着する度に継続される。
5)予期しない送信フレーム同期(XSYNCERR=1)。これは送信中に、XFIG=0で予期しないフレーム同期パルスが発生した際に生じうる。再び、予期しないフレーム同期パルスはXDATDLY引く1、またはそれ以上のビットクロック分だけ次の関連するワードの先頭ビットより早く発生したものとして定義される。これは現行データ送信を破棄し現行転送の再スタートを促す。もしも最後にDXRからXSRへのコピーされてから新たなデータがDXRに書き込まれると、XSR内の現行値は失われる。それ以外の場合、前回値が再送信される。
【0375】
これらの事象は以下の段落で更に詳細に説明される。
【0376】
次にオーバーランでの受信、RFULLを説明する。SPCR内のRFULL=1は受信機がオーバーラン状態と成っていることを示す。オーバーランは次の場合に生じる:RBRが満杯、そしてDRRが最後にRBRからDRRへの転送が行われてから読みとられていない(RRDY=1)。
【0377】
この状態の間、DRピン上への全ての新たなデータは更にRSRの中へシフトされる。一度1つの完全なワードがRSRの中にシフトされて、RFULL=1となると、受信機は停止しDRRが読みとられるまで待機し、RBRからDRRへの転送を実行しない。この時にDRピン上に到着する全てのデータは失われる。このデータが喪失される理由は、シリアルワードを完全に受信した際に、RRDY=0の時にのみRSRからDRRへの転送のトリガが掛けられるためである。リセットから受信部分が動作を開始した後、最小3ワードがRFULLがセットされる前に受信されなければならないことに注意されたい。これは、最初のワードの前にRBRからDRRへの転送が存在しないためである。
【0378】
下記の事象のいずれか1つがRFULLビットを0に消去し、後続の転送が適切に読みとられるようにする:1)DRRの読み取り;2)受信機(RRST−=0)または装置のリセット。別のフレーム同期が受信機を再スタートするために必要である。
【0379】
図66は受信オーバーラン状態を示す。シリアルワードAはシリアルワードBの受信が完了する前に準備完了になっていないので、BがDRRに転送されることは無い。従ってBが受信された後RFULLがセットされる。DRRが最終的に読みとられた時
値Aは未だDRRの中にある。DRRの読み取りはシリアルワードCが転送された後に生じるので、CがRSRの中にシフトされることは無い。
【0380】
図67はRFULLがセットされた事例を示すが、オーバーラン状態は次のシリアルワードの前にDRRの内容を読みとることにより回避されている。これはデータBのRBRからDRRへのコピーが次のシリアルワードがRSRからRBRへ転送される前に確実に生じるようにしている。
【0381】
次に予期しない受信フレーム同期、RSYNCERRを説明する。図68は受信機が全ての入力フレーム同期パルスを処理する際に使用する判断樹を示す。この図は受信機が開始されたと仮定している、RRST−=1。予期しないフレーム同期パルスは外部発信源または内部サンプリング速度発生器から発生される。4つの事例のいずれか1つが発生しうる:
事例1:受信オーバーラン中のFSR_intパルス。図66中のワードCの転送がこれの1つの例である。このフレーム同期パルスは無視され受信機は停止状態のままである。
事例2:RFIG=1を具備した予期しないFSR_intパルス。この事例は図65を参照して説明された。ここで受信同期パルスは無視されて受信は継続される。
事例3:正常シリアルポート受信。受信が進まない理由として3つの考えられる原因があることに注意されたい:
1)このFSRがRRST−=1の後最初。
2)このFSRがDRRが読みとられ、RFULLを消去した後最初。
3)シリアルポートが内部パケットの合間の中にある。従って最大パケット周波数に於いて、フレーム同期は関連するワードの第一ビットの前にRDATDLYビットクロックで受信することが出来る。これに代わる方法として、1つの予期しないフレーム同期パルスは、先行ワードの最後のビットがDRピン上で受信する前のRDATDLY引く1ビットクロックの時点またはその前に生じる時に検出することが出来る。
【0382】
この場合、これらは予期しないフレーム同期パルスでは無いので受信は正常に継続する。
4)事例4:RFIG=0を具備した予期しない受信フレーム同期(予期しないフレームは無視されない)。この事例は最大パケット周波数に対して図24に示されている。図69は内部パケットの合間を具備したシリアルポートの正常動作中のこの事例を示す。両方の事例に於いて、SPCR内のRSYNCERRビットがセットされる。RSYNCERRは受信機がリセットされるかまたは使用者がSPCR内のこのビットに0を書き込むことによってのみ消去出来る。もしもSPCR内のRINTM=11bの場合、RSYNCERRは受信割り込み(RINT)をCPUに駆動することに注意されたい。
【0383】
次にデータ上書き送信を説明する。図70はDXR内のデータが送信される前に上書きされると何が発生するかを示している。最初プログラマがDXRにデータCをロードする。後続のDXRへの書き込みでCがXSRにコピーされる前にDで上書きされる。従ってCがDX上に送信されることは無い。CPUはデータの上書きを回避することが出来るが、それはDXRに書き込む前にXRDYをポーリングするか、またはXRDY(XINTM=00b)でトリガされるようにプログラムされたXINTを待つことによって行われる。DMAはXEVTの書き込み同期データ転送で上書きを回避することが出来る。
【0384】
XEMPTY−は送信機がアンダーフローを経験したか否かを示す。下記の条件のいずれかによりXEMPTY−が有効(XEMPTY−=0)となる:
1)送信中のアンダーフロー。最後にDXRからXSRへのコピーが行われてからDXRにロードされない、またXSR内のデータワードの全てのビットがDX上にシフトアウトされてしまっている。
2)送信機がリセットされ(XRST−=0または装置がリセット)そして再スタートされる。
【0385】
XEMPTY−=0の時、送信機は停止し次のフレーム同期までDXを高インピーダンス状態に設定する。XEMPTY−はDXRがCPUまたはDMAのいずれかでロードされた後、無効化される(XEMPTY−=1)。もしもDXRがアンダーフローのために停止した後再ロードされると、この装置は送信を再開する。内部フレーム生成の場合は、DXRからXSRへのコピーで作られる単一FSX_intを再生成する(XCR内でFSXM=1、またSRGR内でFSGM=0)。それ以外の場合は、送信機は次のフレーム同期まで待つ。
【0386】
図71は送信アンダーフロー状態を示す。Bを送信した後、プログラマは後続の同期の前にDXRを再ロードすることに失敗する。従って、Bは再びDX上に送信される。図72はほっておけば送信アンダーフロー状態が起こる直前にDXRへの書き込みが行われる事例を示す。Bが送信された後、Cが次のフレーム同期パルスが発生する前にDXRに書き込まれ、それによってCが成功裏にDX上に送信され、従って送信空状態が避けられる。
【0387】
次に予期しない送信フレーム同期、XSYNCERRを説明する。図73は送信機が全ての入力される同期信号を処理する際に使用する判断樹を示す。この図は送信機が開始された時点を仮定している、XRST−=1。3つの事例のいずれか1つが生じうる:
事例1:XFIG=1を具備した予期しないFSX_intパルス。この事例は図65を参照して説明される。
事例2:正常シリアルポート送信は先に説明した。送信が進行しない理由として2つ考えられることに注意されたい:
1)XRST−=1の後FSX_intパルスが最初に生じる。
2)シリアルポートが内部パケットの合間の中にある。従って、もしも最大パケット周波数で動作する場合、フレーム同期は関連するワードの第一ビットの前にXDATDLYビットクロックで受信できる。
事例3:XFIG=0を具備した予期しない送信フレーム同期。
【0388】
最大パケット周波数に於ける、XFIG=0を具備した後続のフレーム同期の事例が図64に示されている。図74は内部パケットの合間を具備したシリアルポートの正常動作の事例を示す。両方の事例で、SPCR内のXSYNCERRビットがセットされる。XSYNCERRは送信機リセットまたは使用者がSPCR内のこのビットに0を書き込むことによってのみ消去出来る。もしもSPCR内でXINTM=11bの場合、XSYNCERRはCPUに対して受信割り込み(XINT)を駆動する。更に、SPCR内のXSYNCERRビットが読み取り/書き込みビットであることに注意されたい。従ってそこへ1を書き込むことはエラー状態を設定することである。通常は0を書き込むことが期待される。
【0389】
次に受信データの行揃えおよび符号延長、RJUSTを説明する。SPCR内のRJUSTはRBR内のデータがDRR内で右揃えかまたは左揃え(MSBに関して)であるかを選択する。右揃えが選択された場合、RJUSTは更にそのデータが符号延長されるかまたはゼロが充填されるかを選択する。表61は12ビット受信データ値0xABCに対するRJUSTの種々のモードの結果を示す。
【0390】
【表63】
Figure 0004285803
【0391】
次にμ−LAW/A−LAW圧縮伸張ハードウェア,(R/X)COMPANDを説明する。圧縮伸張(圧縮:COMpressおよび伸張:exPAND)ハードウェアはμ−lawまたはA−law形式のいずれにおいてもデータの圧縮および伸張が可能である。米国および日本で採用されている圧縮伸張規格はμ−lawである。欧州圧縮伸張規格はA−lawと呼ばれている。μ−lawおよびA−law、logPCMに対する仕様はCCITT G.711勧告の一部である。A−lawおよびμ−lawはそれぞれ13ビットと14ビットの可変範囲を許している。この範囲外の任意の値は正の最大値または負の最大値にセットされる。
【0392】
μ−lawおよびA−law形式はこのデータを8ビット符号ワードに符号化する。従って圧縮伸張されたデータは常に8ビット幅であるため、固有の(R/X)WDLEN(1/2)は0にセットされなければならず、8ビット幅シリアルデータストリームを示す。フレームのいずれの位相も8ビットワード幅を持たない場合、圧縮伸張はその部分(送信または受信)および位相に対して自動的に無効化される。
【0393】
圧縮伸張が使用されると、送信データは特定の圧縮伸張法則に従って符号化され、受信データは2の補数形式で復号される。圧縮伸張が有効化されて、(R/X)CR内の固有の(R/X)COMPAND設定で希望する形式が選択される、これは表56に示される通りである。圧縮は図75に示すように、データをDXRからXSRへ、またRBRからDRRへコピーする処理過程の中で発生する。
【0394】
送信データを圧縮するためには、それは16ビット左揃えデータ、すなわちLAW16でなければならない。値は圧縮伸張法に応じて13−または14−ビットのいずれかである。これは図76に示されている。
【0395】
受信に際して、RBR内の8ビットの圧縮データは左揃えの16ビットデータ、LAW16に伸張される。これは更にSPCR内のRJUSTフィールドを表62に示すようにプログラムすることにより、32ビットデータに行揃えすることが出来る。
【0396】
【表64】
Figure 0004285803
【0397】
もしもMCSPが使用されない場合は、圧縮伸張ハードウェアは内部データの圧縮伸張に使用出来る。これは次のように使用できる:
a)線形形式を固有のμ−lawまたはA−law形式に変換する。
b)μ−lawまたはA−law形式を線形形式に変換する。
c)線形データを送信し、このデータを圧縮および再伸張して圧縮伸張の量子化効果を観察する。これはXCOMPANDおよびCOMPANDの両方が同一圧縮伸張形式を有効とする場合にのみ有用である。
【0398】
図77はMCSPが内部データを圧縮伸張することの出来る2つの方法を示す。
1)シリアルポートの送信および受信部分の両方がリセットされた時、DRRおよびDXRは圧縮伸張論理回路を通して内部的に接続される。DXRからの値はXCOMPANDでの選択に従って圧縮され、RCOMPANDの選択に従って伸張される。データは書き込まれた後4CPUクロック内で利用できる。この方法の特長はその速度にある。欠点はフローを制御するためにCPUおよびDMAで利用できる同期が存在しない点である。
2)MCSPはRCOMPANDおよびXCOMPANDで好適に有効化された圧縮伸張によってディジタルループバックモードの中で有効化される。受信および送信割込(RINTM=0の時RINTまたXINTM=0の時XINT)または同期事象(REVTおよびXEVT)はそれぞれCPUまたはDMAがこれらの変換の同期を取れるようにしている。ここで、この圧縮伸張の時間は選択されているシリアルビット速度に依存する。
【0399】
通常MCSP上の全ての転送はMSBを最初に送信および受信される。しかしながら、8ビットデータプロトコルによっては(これは圧縮伸張されたデータを使用しない)LSBを最初に転送するように要求するものがある。(R/X)CR内で(R/X)COMPAND=01bに設定することで、8ビットワードのビット順序がシリアルポートに送られる前に反転される(LSB先頭)。圧縮伸張と同様、この機能は固有の(R/X)WDLEN(1/2)が0にセットされて、8ビットワードがシリアルに転送されることを示している場合にのみ有効である。もしもいずれの位相も8ビットワード長を持たない場合、このLSB先頭の順序はこの部分(送信または受信)および位相に対して自動的に無効とされる。
【0400】
次にプログラム可能クロックおよびフレーム化を説明する。MCSPは受信機および送信機の両方に対して、クロック化およびフレーム化を選択するためのいくつかの手段を有する。クロック化およびフレーム化は両部分にサンプリング速度発生器によって送ることが出来る。両部分は外部クロック化そして/またはフレーム化を独立して選択できる。図38はクロックおよびフレーム選択回路のブロック図を示す。この論理回路で有効化される機能を下記の段落で説明する。
【0401】
サンプリング速度発生器は3段クロック分周器を含み、図79に示すようにプログラム可能データクロック(CLKG)およびフレーム化信号(FSG)を可能とする。CLKGおよびFSGはMCSP内部信号であって、受信そして/または送信クロック化(CLKR/X)およびフレーム化(FSR/X)を駆動するようにプログラムする事が出来る。サンプリング速度発生器は内部クロック発信源から駆動されるようにも、また外部クロック発信源から導かれた内部クロックで駆動されるようにもプログラムすることが出来る。この3つの段は下記の計算を行う:
1)クロック分周(CLKGDV):データビットクロック当たりの入力クロック数。
2)フレーム周期分周(FPER):データビットクロック内のフレーム周期。
3)フレーム幅計数(FWID):データビットクロック内の有効フレームパルスの幅。
【0402】
加えて、フレームパルス検出およびクロック同期モジュールは入力フレームパルスのクロック分周の同期を可能とする。
【0403】
図80および表63に示されるサンプリング速度発生器レジスタ(SRGR)はサンプリング速度発生器の種々の機能の動作を制御する。以下の章はその動作がどのようにしてSRGRビットフィールドを用いて構成できるかを説明している。
【0404】
【表65】
Figure 0004285803
【0405】
次にデータクロック生成を説明する。受信/送信クロックモードが1にセットされると(CLK(R/X)M=1)、データクロック(CLK(R/X))は内部サンプリング速度発生器出力クロック,CLKGで駆動される。種々のデータビットクロックを受信機および送信機に対して独立して選択できる。これらの選択肢は下記を含む:
1)サンプリング速度発生器への入力クロックはCPUクロックまたは専用外部クロック入力(CLKS)のいずれかが可能である。
2)サンプリング速度発生器への入力クロック(CPUクロックまたは外部クロックCLKS)信号発生源はCLKGを駆動するために、プログラム可能な値(CLKGDV)で分周することが出来る。
【0406】
SRGR内のCLKSMビットはCPUクロック(CLKSM=1)または外部クロック入力(CLKSM=0)、CLKSのいずれかをサンプリング速度発生器入力クロックとして選択する。任意の分周周期がサンプリング速度発生器で計算されて分周され、この入力クロック選択によってタイミングが取られる。
【0407】
CLK GDVフィールドはサンプリング速度発生器データビットクロック速度を決定する。第一分周器段は入力クロックからシリアルデータビットクロックを生成する。この分周器段は1つのカウンタを使用し、これはCLKGDVを事前ロードされており、それは分周比率値を含む。この段の出力はデータビットクロックであって、これはサンプリング速度発生器出力、CLKGに出力され、第二および第三分周器段への入力として作用する。
【0408】
CLKGはサンプリング速度発生器入力クロックの1/(CLKGDV+1)に等しい周波数を有する。従ってサンプリング発生器入力クロック周波数は1−256の値で分周される。CLKGDVが奇数または0に等しい時、CLKG衝撃係数は50%である。CLKGDVが偶数値、2pで奇数分周を表しているとき、高状態期間はp+1サイクル、そして低状態期間はpサイクルである。
【0409】
ビットクロック極性はCLKSPで決定される。外部クロック(CLKS)が、CLKSM=0を選択することで、サンプリング速度発生器クロック分周器を駆動するために選択される。この場合、SRGR内のCLKSPビットはCLKSの変化方向を選択し、これに基づいてサンプリング速度発生器データビットクロック(CLKG)およびフレーム同期信号(FSG)が発生される。外部クロックの立ち下がり(CLKSP=0)または立ち上がり(CLKSP=1)のいずれかがデータビット速度クロックおよびFSG上の遷移を引き起こすことが出来る。
【0410】
次にビットクロックおよびフレーム同期を説明する。CLKSがサンプリング速度発生器を駆動するように選択されている場合(CLKSM=0),GSYNCを使用してCLKSに対するCLKGのタイミングを構成することが出来る。GSYNC=1はMCSPとそれと通信している外部装置とが、CLKSを同一位相の関係を保ちながら分周することを保証する。もしもGSYNC=0の場合は、この機能は無効化されて、従ってCLKGは自由に動作し再同期されることは無い。もしもGSYNC=1の場合は、FSR上の有効遷移がCLKGの再同期およびFSGの生成にトリガを掛ける。同期の後、CLKGは常に高状態で開始する。また、FSRはCLKGを発生するCLKSの同一信号変化で検出される。外部FSRが用意されているが、FSGはGSYNC=1の時内部受信フレーム同期を駆動することが出来る。GSYNC=1の時、FPERはフレーム周期が外部フレーム同期パルスの到着で決定されるために無視されることに注意されたい。
【0411】
図81および図82はCLKSおよびFSRの種々の極性でのこの動作を示す。これら図では次のように仮定している:1つのCLKG幅のFSGに対してFWID=0。FPERは次の外部フレーム同期パルスの到着で決定されるのでプログラムされていないことに注意されたい。図はCLKGが最初に同期状態にあってGSYNC=1の場合と、同様にフレーム同期と同期状態に無くてGSYNC=1の時に何が発生するかを示している。
【0412】
GSYNC=1の時、送信機は下記の条件が満たされれば受信機と同期して動作することが可能である:
1)FSXがサンプリング速度発生器フレーム同期FSGで駆動されるようにプログラムされている(SRGM内でFSGM=1、かつXCR内でFSXM=1)。もしも入力FRSがそのタイミングを有する場合、これはCLKGの立ち下がりでサンプリングする事が可能であり、XCR内のFSXM=0と設定してFSRをFSXに外部的に接続することにより代替として使用することが出来る。
2)サンプリング速度発生器クロックが送信および受信ビットクロックを駆動しなければならない(SPCR内のCLK(R/X)M=1)。従ってCLK(R/X)ピンはその他の駆動信号発信源で駆動されてはならない。
【0413】
次にディジタルループバックモード、DLBを説明する。SPCR内のDLB=1を設定することによりディジタルループバックモードが有効となる。DLBモード中、DR,FSR,およびCLKRはそれぞれ図78に示すようにマルチプレクサを通してDX,FSX,CLKXに内部的に接続されている。DLBモードは単一のDSP装置でシリアルポート符号を試験することが出来る。図79はディジタルループバックモード中の受信機制御入力のマルチプレクスを示す。
【0414】
次に受信クロック選択、DLB,CLKRMを説明する。表64はPCR内のディジタルループバックビット(DLB)およびCLKRMビットがどの様にして受信機クロックを選択するかを示している。ディジタルループバックモード(DLB=1)に於いて、送信機クロックが受信機を駆動する。CLKRMはCLKRピンが入力であるか出力であるかを決定する。
【0415】
【表66】
Figure 0004285803
【0416】
次に送信クロック選択、CLKXMを説明する。表65はどの様にして2つの送信クロック発信元の1つが選択できるかを示している。
【0417】
【表67】
Figure 0004285803
【0418】
次にフレーム同期信号生成を説明する。データビットクロック化と同様、データフレーム同期もまた全てのデータ遅延に関して、受信機および送信機に対して独立にプログラム可能である。プログラミング選択肢には下記が含まれる:
1)プログラム可能な同期パルス間の周期と、サンプリング速度発生器レジスタ(SRGR)を用いたプログラム可能有効幅とを具備したフレームパルス。
2)送信部はDXRからXSRへのコピーにより生成される、自身のフレーム同期信号にトリガを掛ける。
3)受信および送信部は共にそれぞれFSRおよびFSXピン上の外部フレーム同期を独立して選択する。
【0419】
フレーム周期はFPERで決定される。サンプリング速度発生器内の第二分周器段は12ビットカウンタであって、これは生成されたデータクロックを0から4095まで計数する。このカウンタの値がひとたびプログラムされたフレーム周期(FPER)と一致すると、フレームカウンタはリセットされFSGが生成される。次に計数工程が再度開始される。従って、FPER+1の値が1から4096データビットのフレーム長を決定する。GSYNC=1の時、FPERは無視される値となる。図83は16CLKG周期(FPER=15または00001111b)のフレームを示す。
【0420】
フレーム幅はFWIDで決定される。FWIDフィールドはフレーム同期パルスの有効幅を制御する。フレーム周期(FPER)を追跡しているカウンタがFWID内にプログラムされている値に達すると、フレームパルスは無効となる。従って、FWID+1の値が1から256データビットクロックの範囲の有効フレームパルス幅を決定する。図83は有効幅2CLKG周期(FWID=1)を具備したフレームを示す。
【0421】
受信フレーム同期選択はDLB,FSRM,およびGSYNCで決定される。表66は受信フレーム同期信号を提供する種々の発信元の選択方法を示す。ディジタルループバックモード(DLB=1)に於いて、送信フレーム同期信号が受信フレーム同期信号として使用され、DRがDXに内部的に接続されている。
【0422】
【表68】
Figure 0004285803
【0423】
送信フレーム同期信号選択はFSXMおよびFSGMで決定される。表67は送信フレーム同期パルスの発信元がどの様にして選択できるかを示す。3つの選択は:
1)外部フレーム同期入力。
2)サンプリング速度発生器フレーム同期信号、FSG。
3)DXRからXSRへのコピーが行われたことを示す信号。
【0424】
【表69】
Figure 0004285803
【0425】
フレーム同期の検出を容易にするために、受信および送信CPU割り込み(RINTおよびXINT)はSPCR内のRINTM=XINTM=10bをセットすることでフレーム同期を検出するようにプログラムされる。その他の型のシリアルポート割り込みとは異なり、このモードはシリアルポートの関連する部分がリセット中でも動作できる(例えば受信機かリセット中にRINTを有効化させて)。この場合、FS(R/X)MおよびFS(R/X)Pは依然固有の発信元およびフレーム同期の極性を選択する。従ってシリアルポートがリセット状態にあったとしても、これらの信号はCPUクロックに同期され、続いてCPUにRINTおよびXINTの形式で送られるが、これはそれらがシリアルポートの受信および送信部に送り込まれた時点で行われる。従って新たなフレーム同期パルスを検出することが可能で、その後CPUはそのシリアルポートを安全にリセットから解除する事が出来る。
【0426】
次にMCSP構成の種々の例を説明する。図84は二重速度ST−バスであるMitel ST−バスと等価のMCSP構成を示す。この動作は最大パケット周波数で実行されることに注意されたい。種々の制御ビットが下記の様にセットされる:
a)サンプリング速度発生器で内部的に生成されたCLK(R/X)M=1,CLK(R/X)_int
b)GSYNC=1,CLKGをFSR上の外部フレーム同期信号入力で同期する。またFSRは最小パルス幅を形成するために内部的に生成されることを注意されたい。
c)CLKSM=1,外部クロック(CLKS)がサンプリング速度発生器を駆動する。
d)CLKSP=0,CLKSの立ち下がりでCLKG従ってCLK(R/X)_intを生成する。
e)CLKGDV=1,受信クロック(CLKRとして示されている)はCLKS周波数の半分である。
f)FS(R/X)P=1,有効低フレーム同期パルス。
g)(R/X)FRLEN1=11111b,フレーム当たり32ワード
h)(R/X)WDLEN1=0,8ビットワード
i)(R/X)PHASE=0,単一位相フレーム、従って(R/X)FRLEN2=X。
j)(R/X)DATDLY=0,データ遅延無し。
【0427】
図85は単一速度ST−BUSを図示する。この例は下記を除きST−BUSの例と同じである:
a)CLKGDV=0,CLKは分周を行うことなく(単一速度クロック)CLK(R/X)_intを駆動する。
b)CLKSP=1,CLKSの立ち上がりで内部クロックCLKG,CLK(R/X)_intを生成する。
【0428】
CLKSの立ち上がりを使用して外部FSRを検出する。この外部フレーム同期パルスは内部MCSPクロックの再同期および内部で使用するフレーム同期を生成するために使用される。内部フレーム同期は、内部クロックの立ち下がりで検出されるように十分な幅となるように生成される。
【0429】
図86は二重速度クロック例を図示する。この例は下記を除きST−BUS例と同じである:
a)GSYNC=0,CLKSがCLKGを駆動する。CLKGは自由に実行され、FSRで再同期されることは無い。
b)FS(R/X)M=0,フレーム同期は外部的に生成される。フレーム化パルスは検出に備えて十分広い。
c)FS(R/X)P=0,有効高入力フレーム同期信号。
d)(R/X)DATDLY=1,1ビットのデータ遅延。
e)CLKSP=1,CLKSの立ち上がりでCLKG従ってCLK(R/X)が生成される。
【0430】
次に複数チャンネル選択動作を説明する。複数チャンネルはMCSPを先に説明したように単一位相フレームで構成することにより、送信機および受信機に対して独立に選択出来る。フレーム当たりのワード数は(R/X)FRLEN1で表され、選択出来るチャンネル数を表す。
【0431】
各々のフレームは時間分割マルチプレクス(TDM)データストリームを表す。時間分割マルチプレクスデータストリームを使用する際に、CPUはそれらのいくつかを処理する必要があるだけである。従って、メモリ並びにバスの帯域幅を節約するために、複数チャンネル選択は送信および受信用の特定チャンネルを独立して有効化する事が可能である。最大128チャンネルビットストリームの中で最大32チャンネルを任意の指定された時刻に有効化することが可能であるが、動的手法(後ほど説明する)では128チャンネルの任意の組み合わせを処理することが可能である。
【0432】
もしも受信チャンネルが無効の場合は、下記の結果となる:
1)ワードの最後のビットを受信してもRRDYは1にセットされない。
2)ワードの最後のビットを受信した時点でRBRがDRRにコピーされない。従ってRRDYは有効状態にはセットされない。このことはこのワードに対して割り込みまたは同期事象が生成されないことを意味する。
【0433】
もしも送信チャンネルが無効の場合は、下記の結果となる:
1)DXが高インピーダンス状態である。
2)関連するワードのシリアル送信の終了時点でDXRからXSRへの転送が自動的にはトリガされない。
3)XEMPTY−およびXRDYは同様に、関連するシリアルワードの送信の終了時点で影響されない。
【0434】
有効化された送信チャンネルはそのマスクされているかまたは送信されたデータを持つことが出来る。マスクされている場合は、送信チャンネルが有効であってもDXピンが強制的に高インピーダンスとされる。
【0435】
下記の制御レジスタが複数チャンネル動作で使用される:
複数チャンネル制御(MCR)レジスタ。
送信チャンネル有効(XCER)レジスタ。
受信チャンネル有効(XCER)レジスタ。
【0436】
これらのレジスタを使用しての複数チャンネル動作の制御を以下の章で説明する。
【0437】
MCRが図87に示され、表68に説明されている。
【0438】
【表70】
Figure 0004285803
【0439】
複数チャンネルモードが受信および送信に対してそれぞれ独立に有効化出来るが、これはMCR内でRMCM=1およびXMCMを非ゼロの値に設定して行われる。
【0440】
利用可能な128チャンネルの中から全部で32個を指定された任意の時点で有効化出来る。この128チャンネルは8ブロック(0から7)を含み、各々のブロックは16個の連続したチャンネルを有する。更に、偶数番号のブロック0,2,4,および6はパーティションAに属し、奇数番号のブロック1,3,5,および7はパーティションBに属する。
【0441】
有効化されるチャンネル数は、フレームが任意のグループのチャンネルを有効化する過程で更新出来る。この機能はそのフレーム内の任意の時刻で16個の連続したチャンネルの2つのブロック(1つは奇数番号、そしてもう一つは偶数番号)を制御する交互のピンポン手法を用いて実施できる。従って1つのブロックはパーティションAにそしてもう一方はパーティションBに属する。
【0442】
8つの16チャンネルブロックの中から任意の2つを選択して、全部で32チャンネルを有効化出来る。このブロックは図88に示されるようにこのフレーム内の16チャンネル境界上に配置されている。MCR内の(R/X)PABLKおよび(R/X)PBBLKフィールドがそれぞれパーティションAおよびBの中で選択されるブロックを決定する。この有効化は送信および受信に対して独立して実行される。
【0443】
送信データマスク化は送信用に有効化されたチャンネルがそのDXピンを送信周期の間に高インピーダンス状態にセットする事を可能とする。対称な送信および受信がソフトウェア的に利益があるシステムに於いて、この機能は送信チャンネルを共有シリアルバス上で無効化することを可能とする。同様の機能は受信には不要であるが、それは複数受信がシリアルバス接続を生じさせないからである。
【0444】
以下は種々のXMCM値に対する送信中の複数のチャンネル動作の説明である:
XMCM=00b:シリアルポートはXFRLEN1内にプログラムされたワード数分のデータをDXピンを経由して送信する。従って、DXは駆動され、マスクされることは無い。
XMCM=01b:要求されたチャンネルまたは送信の必要があるワードのみがXP(A/B)BLKおよびXCER経由で選択される。
【0445】
従ってこれらの選択されたワードのみがDXRに書き込まれ、最終的に送信される。言葉を変えれば、もしもXINTM=00bの場合、これはXINTがDXRからXSRへのコピーの度に生成されることを意味し、生成されたXINTの数はXCER経由で選択されたチャンネル数に等しい(XFRLEN1に等しくは無い)。
XMCM=10b:この場合、全てのチャンネルが有効化されており、これはデータフレーム内の全てのワード(XFRLEN1)がDXRに書き込まれ、そしてDXRからXSRへのコピーがそれらを受信した時に発生する。しかしながら、DXはXP(A/B)BLKおよびXCER経由で選択されたチャンネルのみを駆動し、それ以外の場合は高インピーダンス状態に設定する。この場合、もしもXINTM=00b,の場合DXRからXSRへのコピーの度に発生される割り込みの数は、そのフレーム内のワード数(XFRLEN1)に等しいはずである。
XMCM=11b:このモードは基本的にXMCM=01bおよび10bの場合の組み合わせであって、対称送信および受信動作が実現できる。全てのチャンネルが無効化されているので、DRおよびDXは高インピーダンス状態である。受信の際は、RP(A/B)BLKおよびRCER経由で選択されたチャンネルに対してのみ、RBRからDRRへのコピーが生じる。もしもRINTがRBRからDRRへのコピー毎に生成される場合は、RCERの中で選択されたチャンネル数と同じ回数生じることになる(RFRLEN1の中にプログラムされた数とは異なる)。送信に際して、対称性を保つために受信で使用されたのと同じブロックが使用され、従ってXP(A/B)BLKは無視される。DXRがロードされ、DXRからXSRへのコピーがRP(A/B)BLK経由で有効化された全てのチャンネルに対して生じる。しかしながら、DXはXCER経由で選択されたチャンネルに対してのみ駆動される。XCER内で有効化されたチャンネルはRCER内で選択されたものの部分集合またはそれと同一とすることが出来る。従って、もしもXINTM=00b,の場合CPUへの送信割込はRCER(XCERでは無い)の中で選択されたチャンネルの数と同じ回数発生されることになる。
【0446】
図89A−Dは、上記の全てのモードに対するMCSPピン上の動作を下記の条件で示している:
a)(R/X)PHASE=0,有効化された複数チャンネル選択に対する単一位相フレーム
b)FRLEN1=011b,4ワードフレーム。
c)WDLEN1=任意の有効シリアルワード長。
図89A−89Dに於いて、矢印は種々の事象が生じる場所を単に例として示している。可能な場合はいつでも、これらの事象が発生し得る時間枠が存在する。
【0447】
受信チャンネル有効(RCER)および送信チャンネル有効(XCER)レジスタはそれぞれ、受信および送信用の任意の32チャンネルを有効化するために使用される。32チャンネルの中で、16チャンネルはパーティションAの中のブロックに属し、別の16個はパーティションBの中のブロックに属する。これらは図90および図91に示されており、表69の中に示されている(R/X)CEAおよび(R/X)CEBレジスタフィールドは、それぞれパーティションAおよびBの16チャンネル幅ブロック内のチャンネルを有効化する。MCR内の(R/X)PABLKおよび(R/X)PBBLKフィールドは、どの16チャンネルブロックが選択されるかを選択する。
【0448】
【表71】
Figure 0004285803
【0449】
チャンネル選択は変更される。複数チャンネル選択機能を使用して、32チャンネルの固定グループが有効化される、そしてこの割り当ての変更が要求されるまでCPUの介入を受けることなく有効状態を継続する。任意の数のグループ、またはフレーム内の全てのワード/チャンネルにアクセスする事が可能であり、これはブロック割り込みの終了に応答してフレーム処理の途中でブロック割り当てレジスタを更新して行われる。
【0450】
しかしながら、選択を変更する際には現在選択されているブロックに影響を与えないように注意しなければならない。現在選択されているブロックはMCR内のRCBLKおよびXCBLKフィールドを通して、それぞれ受信および送信用に読みとることが可能である。関連するチャンネル有効レジスタは、現行ブロックを指示するために固有の(R/X)P(A/B)BLKレジスタで選択されている場合は変更出来ない。同様にMCR内の(R/X)PABLKおよび(R/X)PBBLKフィールドは、現在選択されているブロックを指し示しているかまたは指し示すように変更されている途中では修正変更出来ない。もしもチャンネルの総数が16またはそれ未満の場合、現行のパーティションが常に指し示されていることに注意されたい。この場合、シリアルポートのリセットのみが有効化を変更出来る。
【0451】
割り込みの更新が提供されている。複数チャンネル動作中に16チャンネルブロック境界の終点で、CPUへの受信割り込み(RINT)または送信割込(XINT)が、SPCR内のRINTM=01bまたはXINTM=01bの場合それぞれ生成される。この割り込みは新たなパーティションを横切ったことを示す。次に現在のパーティションがチェックされAそして/またはBパーティション内のブロックの選択が、それらが現在のブロックを指し示していない場合は変更される。これらの割り込みは2CPUクロック長の有効高状態パルスである。もしも(R/X)MCM=0の時、RINTM=XINTM=01bであると(非複数チャンネル動作)、これはいかなる割り込みも生成しない。
【0452】
次にクロック停止モード、CLKSTPを説明する。クロック停止モードはSPITMプロトコルとの互換性を提供する。クロック停止モードは単一位相フレーム構成で機能する。SPCR内のクロック停止モードビットフィールド(CLKSTP)は表70に示す4つの考えられるタイミング変異の1つを使用して、転送の間にシリアルクロックを停止することが出来る。
【0453】
SPI型のインタフェースを使用するとき、フレーム同期は別のシリアルポートモードの動作とは少し異なるかたちで生じる。これらの型のインタフェースに於いて、フレーム化は本質的にクロックが存在するかまたは存在しないかによって実行され、含まれているその他の信号はスレーブ有効信号であって、これは単純にスレーブ装置(クロックを出力しない装置)上のシリアルデータ出力ドライバを有効化するように作用する。装置の中にはスレーブ有効化を持たないものもある。スレーブ有効化を具備していたりまたは具備していない装置とインタフェースを取るために、これに代わるフレーム化手法が使用される。MCSPがSPIモードで動作するように構成されている場合、送信機および受信機は共にマスタとしてまたはスレーブとして動作する。
【0454】
MCSPがマスタ装置の時、FSXは出力としてセットされ(DXRのロードで生成される)、FSRと必要であればスレーブ装置上の有効入力に接続される。MCSPは内部的に連続クロックを生成し、転送が完了した時点で外部インタフェースへのクロックをゲートを介して遮断する。この場合、受信クロックは内部の連続的に実行されている部分から提供されるので、受信機および送信機は両方とも内部的にはクロックが停止しないかの様に動作する。
【0455】
MCSPがスレーブ装置の時、内部シリアルポート論理回路はデータビット毎の内部クロックパルスと丁度同じ数のみを用いて転送を実行する。もしもマスタ装置がスレーブ有効信号を提供する場合は、それはFSX/FSRに接続され、その非同期形式で使用される。FSXは従って、DXピンへのデータの初期駆動のみを制御する。もしもマスタ装置がスレーブ有効を提供しない場合は、外部FSR/FSXピンは有効動作(FSX/FSR極性制御ビットで定義されるように)レベルに接続され、データはDXRにロードされると直ちにDXピンに駆動される。入力クロックとマスタからのフレーム同期はCPUクロックに同期されて、リセットを可能とする。送信されるべき第一データはDX上で利用可能であるが、これはSPIクロックを検出した後にのみ有効化される。
【0456】
クロック停止モードの中で、送信機および受信機の両方に対して、クロックの停止はそのクロックが外部的に生成されるか内部的に生成されるかに応じて、異なる方法で処理される。クロックが外部的に生成される場合、クロックを生成している外部装置は送信されたワードの間で適切にクロックを保持する。シリアルポートクロックが内部的に生成される場合、このクロックは連続して発生されており、転送が完了した時に外部インタフェースに対して単純にゲートで遮断される。この場合、転送は外部自由実行クロックの場合と同じやり方で実行される。
【0457】
CLKSTPは、表70および図92に示されるように、特定のSPIインタフェースに対して適切なクロック手法を選択する。SPCR内のCLKSTPビットフィールドは下記の1つを選択する:
1)クロック停止モードが有効であるか否か。
2)クロック停止モード中、停止時にクロックが高状態かまたは低状態か。
3)クロック停止モード中、第一クロック変化が第一データビットの開始時点で生じるかまたは第一データビットの途中で生じるか。
【0458】
【表72】
Figure 0004285803
【0459】
2つの条件がシリアルポートピン(CLKX,FSX,DX,CLKR,FSR,およびDR)をシリアルポートピンとしてではなく汎用目的I/Oとして使用する事を可能とする:
1)シリアルポートの関連部分(送信機または受信機)がリセット中;SPCR内の(R/X)RST−=0、そして
2)シリアルポートの関連部分に対して汎用目的I/Oが有効化されている。
【0460】
図56に示すピン制御レジスタは、MCSPピンの各々を汎用目的入力または出力として構成するビットを有する。表71はどの様にしてこれが実現できるかを示す。FS(R/X)の場合、FS(R/X)M=0はピンを入力として構成し、FS(R/X)M=1はそのピンを出力として構成する。出力として構成された場合、FS(R/X)上に駆動される値は、FS(R/X)P内に格納されていた値である。もしも入力として構成された場合は、FS(R/X)Pは読み取り専用ビットとなり、これはその信号の状態を反映している。CLK(R/X)MおよびCLK(R/X)PはCLK(R/X)と同様に働く。送信機が汎用目的I/Oとして選択されると、PCR内のDX_STATビットの値がDX上に駆動される。DRは常に入力であり、その値はPCR内のDR_STATビット内に保持される。CLKSを汎用目的入力として構成するために、送信機および受信機は共にリセット状態で、かつ(R/X)IOEN=1でなければならないが、これはそれがMCSPに対して常に入力でありまた送信および受信動作の両方を反映するためである。
【0461】
【表73】
Figure 0004285803
【0462】
タイマ
概要
この装置は2つの32ビット汎用目的タイマを有し、これは下記用途で使用される:
時間事象
計数事象
パルス発生
CPU割り込み
DMAへ同期事象送信
【0463】
このタイマは2つの信号通知モードを有し、内部または外部発信元からクロックされることが出来る。このタイマはI−/O(TIM)を有しこれは入力クロック、出力クロックとして、または汎用目的I−/Oピンとして機能する。
【0464】
例えば内部クロックで、タイマは外部A/D変換器に信号を送って変換を開始させたり、またはDMA制御装置にトリガを与えてデータ転送を開始させることが出来る。例えば外部クロックで、タイマは外部事象を計数し、指定された事象数の後にCPUに割り込みを掛けることが出来る。図93はこのタイマのブロック図を示す。
【0465】
タイマレジスタ
表72はタイマ動作を構成する3つのレジスタを説明している。
【0466】
【表74】
Figure 0004285803
【0467】
タイマ制御レジスタ
図94はタイマ制御レジスタを示す。表73はこのレジスタ内のビットフィールドを説明している。
【0468】
【表75】
Figure 0004285803
【0469】
タイマ周期レジスタ
タイマ周期レジスタ(図95)は計数するタイマ入力クロックサイクルの数を含む。この数はTSTATの周波数を制御する。
【0470】
タイマカウンタレジスタ
タイマカウンタレジスタ(図96)は計数が有効化されると何時でも更新する。タイマ周期レジスタ内の値に達すると、これは次のCPUクロックのタイマ入力クロックへの各サイクルで0にリセットする。
【0471】
タイマリセットおよび計数の有効化:GOおよびHLD−
表74はGOおよびHLD−がどの様にしてタイマ動作の基本機能を有効とするかを示す。
【0472】
【表76】
Figure 0004285803
【0473】
タイマの初期化
タイマを構成するには3つの基本ステップが要求される:
1.もしもタイマが現在ホールドされていない場合は、タイマをホールドする。装置をリセットした後はタイマは既にホールド状態であることに注意。
2.希望する値をタイマ周期レジスタに書き込む。
3.タイマ制御レジスタのGOおよびHLDビットを1にセットしてタイマを開始し、同時に希望する値をタイマ制御レジスタに書き込む。
【0474】
タイマ計数
タイマカウンタはCPUクロック速度で運転される。しかしながら、計数は1つのCPUクロックからタイマ計数有効化発信元の1つの次のクロックへの低状態から高状態への遷移で有効化される。この遷移は図93に示される信号変化検出回路で検出される。有効遷移が検出される度に、1つのCPUクロック幅クロック有効化パルスが生成される。使用者に対して、これはカウンタがあたかも計数有効化発信元でクロックされているかのように見える。従ってこの計数有効化発信元をクロック発信元と呼ぶ。
【0475】
タイマ周期レジスタに等しい値に達すると、タイマはゼロにリセットされる。このリセットはタイマカウンタとタイマ周期とが一致した後の次のCPUクロック上で発生する。従ってカウンタはゼロからNまで計数する。周期が2でCPUクロックの四分の一がタイマクロック発信元(CLKSRC=1)として選択された場合を考える。一度開始されるとタイマは以下の順序で計数する:0,0,0,0,1,1,1,1,2,0,0,0,1,1,1,1,2,0,0,0....カウンタは0から2の間で計数するが、周期は12(=3*4)CPUクロックサイクルでは無くて、8(=2*4)CPUクロックサイクルであることに注意されたい。従って計数周期はTIMER PERIOD+1ではなくTIMER PERIODである。
【0476】
タイマクロック発信元選択:CLKSRC
タイマ入力クロックの低状態から高状態への遷移がタイマカウンタを更新させる。タイマ入力クロックを駆動するために3つの発信元が利用出来る:
1.TIMピン上の入力値。この信号は非同期外部入力によって引き起こされる準安定状態を防止するために同期が取られる。
2.CPUクロックの四分の一
3.DATOUT値。
【0477】
表75はタイマ制御レジスタ内のCLKSRC,FUNC,およびI−/Oビットフィールドが選択されてどの一つがタイマ入力クロックを駆動するかを示している。
【0478】
【表77】
Figure 0004285803
【0479】
TIMピン機能
表75はまたTIMピンの使用方法を示す。TIMピンの値は常にタイマ制御レジスタ内のDATINビット内に捕捉されている。図93に示されるように、DATINの発信元は常に同期化器を通されており、TIMが入力ピンの場合の準安定化を回避するようにしている。またINVはTIMがタイマピン(FUNC=1)として構成されているときにのみ使用される。
【0480】
タイマパルス生成
2つの基本パルス生成モードとはそれぞれ図97および図98に示されるように、パルスモードとクロックモードである。タイマグローバル制御レジスタのC/P−ビットでモードを選択する事が出来る。パルスモードでは、タイマ制御レジスタ内のPWIDでパルス幅を1または2入力クロック周期のいずれかにセット出来る。この機能の目的はTSTATがTIM出力を駆動する場合に、最小パルス幅を提供する事である。TSTATはこのピンをTIMがタイマピン(FUNC=1)として使用されているときに駆動し、CPUクロックの四分の一がクロック発信元(CLKSRC=0)である。従って、TIMパルス幅は4または8CPUクロック幅である。表76はパルスおよびクロックモードでの種々のTSTATタイミングパラメータの詳細式である。
【0481】
【表78】
Figure 0004285803
【0482】
制御レジスタ内の境界条件
境界条件にはタイマ動作に影響を与えるものが有る:
1.ゼロタイマ周期レジスタおよびカウンタレジスタ。装置がリセットされた後でタイマが計数を開始する前に、TSTATは0に保持される。GO=1にセットしてタイマを始動した後、周期およびカウンタレジスタがゼロの時、タイマの動作は選択されたC/Pモードに依存する。パルスモードでは、それが保持されているか否かに関わらずTSTAT=1である。クロックモードでは、タイマが保持されている時(HLD−=0)、TSTATはその以前の値を保ち、HLD=1の時、TSTATは(1/2CPUクロック周波数)の周波数で留められる。
2.カウンタオーバーフロー。カウンタレジスタが周期レジスタの値より大きな値にセットされると、カウンタはその最大値(FFFFFFFFh )に達し、0に戻って継続する。
3.有効タイマのレジスタへの書き込み。周辺機器バスオーバーライドレジスタからの書き込みでカウンタレジスタが更新され、新たな状態で制御レジスタが更新される。
4.パルスモードでの小さなタイマ周期値。パルスモードで周期が小さいと、TSTATを高状態に留めることに注意されたい。この条件はTIMER PERIOD £ PWID+1 の時に生じる。
【0483】
タイマ割り込み
TSTAT信号は直接CPU割り込みと同様にDMA同期事象を駆動する。割り込みの周波数はTSTATの周波数と同じである。TSTAT上の低状態から高状態への遷移は、タイマカウンタが周期レジスタと等しくなる時に常に発生する。
【0484】
エミュレーション動作
デバッグ中にエミュレータを使用して、CPUを実行パケット境界上に停止させて、単独ステップ送り、ベンチマーク、プログラムファイリング、またはその他のデバッグ用途に使える。エミュレーション停止中に、CPUクロック四分の一がクロック源として選択されているとき(CLKSRC=1)タイマは停止する。ここでカウンタはこの様なサイクル中にCPUがエミュレーション停止によって停止されない場合にのみ有効化される。従って、単一ステップ動作中に計数が再有効化される。もしもCLKSRC=0の場合、タイマはプログラムに従って計数を継続する。
【0485】
Intsel
概要
マイクロプロセッサ1の周辺機器セットは複数チャンネルシリアルポート(MCSP)120、タイマ131および132、DMAチャンネル140および141、そしてホストポート150を含む。この周辺機器のセットは、外部メモリインタフェース(EMIF)103および外部割り込み信号INT(4−7)と共に、16割り込み発信元を生成する。しかしながらCPU10は使用可能な12の割り込みスロットを有する。本発明の1つの特徴によれば、割り込み選択器回路160は好適に16割り込み発信元の内のどの12個が使用されるかを選択する。割り込み選択器160はまた、CPU10が効果的に外部割り込み入力の極性を変更出来るようにする。
【0486】
利用可能な割り込み発信元
表77は利用可能な割り込みを示す。この表は先に説明したDMA同期事象と2つの点が異なる事を除いて類似していることに注意されたい。1つの相違はMCSPが割り込みとDMA同期事象を別々に生成する点である。第二の相違はDSPINTが取り除かれて4ビット符号化を可能としている点である。
【0487】
【表79】
Figure 0004285803
【0488】
外部割り込み信号タイミング
INT4−INT7およびNMIは専用外部割り込み発信元である。加えて、MCSPからのフレーム同期受信信号(FSR)およびフレーム同期送信信号(FSX)をRINTおよびXINT信号を直接駆動するようにプログラムすることが可能である。これらの信号は同期が取られているので、これらはDMAまたはCPUのいずれかに送られる前に2つのレジスタを通過される。図99は1例としてINT4を使用した外部割り込み信号のタイミングを示す。この図はまた2つの同期フリップフロップを通る外部割り込み用遅延をも示す。この遅延は2CPUクロック(CLKOUT1)サイクルで有ることに注意されたい。しかしながら、もしもINT4入力がCLKOUT1の立ち上がり変化に対してセットアップおよびホールド時間中に遷移する場合は、この遅延は3CLKOUT1サイクルまで延びる。一度同期が取られると、関連する割り込みフラグ(IF4)がセットされる前に3CLKOUT1サイクル遅延が追加される。
【0489】
割り込みは有効内部割り込み肯定確認(IACK)信号で示されるように、最も早い場合で1CLKOUT1サイクル後に起きるように予定出来る。割り込みは適切に有効化されない場合は、延期したりまたは禁止する事が出来る。この場合、IACKもまた延期される。IACKに関して、CPUはINUM信号をセットしてどの割り込みが行われたかを示す。外部的に、IACKピンパルスは2CLKOUT2サイクル幅に拡張されCLKOUT2に同期される。またINUMピン信号はこの外部IACKをセットアップおよびホールドの1つのCLKOUT2サイクルとフレーム化し、4CLKOUT2サイクル幅とする。図の中でINUMおよびIACKはCLKOUT2の立ち上がりで無効ではあるが、内部回路はこの遷移を捕らえて、希望する波形をIACKおよびINUMピン上に発生することが出来る。
【0490】
割り込み
表78は割り込み選択器レジスタを示し、これは制御レジスタに含まれている。割り込みマルチプレクサレジスタは表77の割り込み発信元と4から15(INT4−INT15)のCPU割り込みとの間の写像を決定する。外部割り込み極性レジスタは外部割り込みの極性をセットする。
【0491】
【表80】
Figure 0004285803
【0492】
外部割り込み極性レジスタ
外部割り込み極性レジスタ(図100)は4つの外部割り込み(EXT_INT4−EXT_INT7)の極性を変更することを可能とする。通常、割り込み発信元の低状態から高状態への遷移が割り込みとして認識される。このレジスタ内の関連するXIPビットを1にセットすることで、外部割り込み発信元を反転して、効果的にCPUが外部割り込みの高状態から低状態への遷移を検出できるように出来る。もしも関連するXIPが0に消去されると、非反転外部割り込みが通されて、CPUは低状態から高状態への遷移を割り込みの信号通知として認識する。
【0493】
割り込みマルチプレクサレジスタ
割り込みマルチプレクサレジスタ内のINTSELフィールド(図101および102)は、割り込み発信元を個別の割り込みの中へ写像させる。INTSEL4−INTSEL15は表79に示すようにCPU割り込みINT4−INT15に対応する。INTSELフィールドを表78内の希望する割り込み選択番号の値にセットすることにより、任意の割り込み発信元を任意のCPU割り込みに写像できる。表79はまた割り込み発信元からCPU割り込みへのデフォルト写像を示す。
【0494】
【表81】
Figure 0004285803
【0495】
割り込み選択器の構成
割り込み選択器レジスタはリセットの後、初期化中に割り込みを有効化する前に構成されなければならない。一度レジスタがセットされると、使用者は少しの遅延の後、割り込みフラグレジスタを消去してこの構成によって引き起こされる全ての疑似的な遷移を取り除かねばならない。割り込み選択器は別の時間中にも構成出来るが、修正変更されたフィールドの影響を受ける割り込みに対して擬似的な割り込み条件がCPUによって検出される可能性がある。
【0496】
電源断モードおよびエミュレーション
割り込み選択器は状態機械を含んでいないので、電源断またはエミュレーション停止中に異常な動作は行わない。レジスタ値はいずれ場合も保存される。
【0497】
クロック
概要
外部発振器がオンチップPLL(位相ロックループ)回路を駆動し、これが全ての内部および外部クロックを生成する。このPLLは外部発振器周波数を4倍し、その結果生成されたクロックをCLKOUT1出力ピンに供給する。CLKOUT1の内部版はプロセッサによって命令サイクルクロックとして使用される。この装置のほとんどのタイミングパラメータはCLKOUT1クロックに関連して定義され、特にその立ち上がり変化が使用される。CLKOUT2は別の出力クロックで、CLKOUT1からその半分の周波数でEMIF内に誘導される。2つのその他のクロック信号がPLL出力から誘導される−SSCLKとSDCLK(これもまたEMIF内)である。これらは外部SBSRAMおよびSDRAM同期メモリにクロックを送るために使用される。
【0498】
4倍モードに加えて、このクロック回路は1倍モードで動作することも可能であり、その場合入力クロック周波数はCLKOUT1出力周波数と同じである。倍率計数を選択する際に考慮すべき要因には、基板レベルでの雑音およびクロックのジッタが含まれる。4倍モードは基板雑音を最小とし、一方1倍モードは内部クロックジッタを減少させる。クロックモードは以下の図103に示されるように2つのCLKMPDEピンで制御される。
【0499】
PLLが出力周波数に同期するために必要な時間は、CLKINおよびCLKOUT1周波数に依存し、典型的には数十マイクロ秒程度である。同期時間はリセット信号の存続時間に影響し、その間リセット状態はPLLが適切な出力周波数に同期出来るように十分長く保たれる必要がある。
【0500】
3つのPLLFREQピンが、PLLが同期対象とするCLKOUT1周波数範囲を識別する。PLLはまた2つのバイパスキャパシタを必要とし(PLLVとPLLGとの間)、外部低域フィルタ構成部品(R1,C1,C2)とEMIフィルタである。R1,C1,C2の値、およびフィルタはCLKINとCLKOUT1周波数に依存する。
【0501】
Pdown
概要
CMOS論理回路の動作電力のほとんどは、回路が1つの論理状態から別の論理状態にスイッチングする際に消費される。チップの論理回路の一部または全てがスイッチングすることを防止することにより、データまたは動作状況を喪失することなくかなりの電力節約が実現できる。
【0502】
電源断モードPd1はCPUの境界で内部クロック入力を遮断し、その論理回路のほとんどがスイッチングすることを防止する。Pd1は効果的にCPUを運転停止する。別の電力節約は電源断モードPd2で実現され、ここで全てのオンチップ構造(複数のバッファを含む)がPLLの出力(図104参照)で”停止”される。
【0503】
PD3は全内部クロック系統を運転停止し(PD2同様)、また外部クロック発信元(CLKIN)がPLLに達するのを遮断する。Pd3からの復帰はPd2からの復帰よりも時間がかかるが、それはPLLが電源投入後と丁度同じように再ロックされる必要が有るためである。
【0504】
Pd2およびPd3は1倍および4倍の両方のPLLクロックモードで全チップを運転停止させる。Pd2およびPd3信号は両方ともPD_ピンに通知してこれら2つの電源断モードが外部から認識できるようにしている。この章に書かれている電源断モードに加えて、IDLE命令は複数のNOPを実行することでより低いCPU電力消費を提供する。IDLE命令は割り込みにサービスする場合にのみ終了される。
【0505】
電源断モードおよびそれらの復帰方法は制御状態レジスタ内のビット10−14(CSR PWRDフィールド)を設定してプログラムされる(図105参照)。Pd2およびPd3モードは装置リセットでのみ廃棄される、一方Pd1モードはまた有効化された割り込み、またはCSRのビット13および14で指示された任意の割り込み(有効化されていようがいまいが)によって終了出来る(割り込みは信号変化で駆動される)。CSRに書き込みを行うとき、PWRDフィールドの全てのビットは同じ時間にセットされなければならない。予約されたフィールド(CSRのビット15)に書き込む際には、論理0が使用されなければならない。表80参照。
【0506】
【表82】
Figure 0004285803
【0507】
トリガ、復帰および効果
表81に示されるように、電源断モードPd1は電源断を引き起こす命令(CSR内のアイドリングビットをセットすることにより)の3−4命令後に実行される。下記の命令フロー参照:
INSTR1(MVK) 電源断モードはこの命令でセットされる
INSTR2 CPUが電源断を開始するように電源断論理回路に通知する。
INSTR3 電源断信号がCPUそして/または周辺機器に送られる
INSTR4 CPUが内部電源断信号を受信する
INSTR5 CPUがINSTR5またはINSTR6の前に実行を一次中止する
INSTR6 CPUがINSTR5またはINSTR6で実行を再開する
INSTR7 正常プログラム実行がここで再開される
【0508】
Pd1からの復帰は有効化された割り込み、または任意の割り込み(有効であるか否かに関わらず)でトリガが掛けられる。第一番目の場合は論理1を制御状態レジスタのビット13(PWRDフィールド)に書き込むことで選択され、また第二番目の場合は論理1をCSRのビット14に書き込むことで選択される。もしもPd1が非有効化割り込みで終了された場合は、プログラムの実行は電源断を引き起こした命令(CSR内のアイドリングビットをセットすることにより)に続く4番目または5番目に戻る。有効化された割り込みでの復帰は、プログラムの実行は電源断を引き起こした命令(CSRレジスタGIEおよびIERレジスタNMIEビットもまたISFPを実行するためにセットされなければならない)に続く4番目または5番目に戻る前に、対応する割り込みサービスフェッチパケットを最初に実行する。
【0509】
【表83】
Figure 0004285803
【0510】
データ処理装置1を製造するに当たっては、種々の量の不純物質を半導体基板の中に注入し、その不純物を基板内の選択された深さに拡散させてトランジスタ素子を形成する複数のステップを含む。不純物の配置を制御するためにマスクが形成される。導電物質および絶縁物質の複数の層が蒸着されて種々の素子を相互接続させるためにエッチングされる。これらのステップはクリーンルームの環境で実施される。
【0511】
データ処理装置の製造コストの大きな部分に試験が含まれる。ウェーハー形状の段階で、個別の素子は運転状態にバイアスされて基本動作機能の探針試験が行われる。次にウェーハーが個別のダイスに分割され、これは裸のダイまたはパッケージとして販売される。パッケージに入れられた後、処理された部品は運転状態にバイアスされて動作機能の試験が行われる。
【0512】
本発明の新奇な特徴を示す別の実施例はその他の機能回路を含み、これは此処に説明した機能回路と込み合わされて、組み合わされた機能の全ゲート数を削減している。当業者にはゲート最小化技術は知られているので、その様な実施例の詳細は此処では説明しない。
【0513】
本発明の新奇な特徴は、事前設計コアを用いて集積回路を設計する際に別の型式の単一セットにも効果的に適用出来る。例えば、複数の状態信号を選択して限られた数の状態入力に供給する事ができる。
【0514】
此処に使用されているように、用語”供給される”、”接続される”および”接続”は電気的な接続を意味し、追加構成要素が電気的接続経路の中に入れられる場合を含む。
【0515】
本発明を図示された実施例を参照して説明してきたが、この説明は制限的に解釈されることを意図してはいない。本発明のその他の種々の実施例がこの説明を参照する事により当業者には明らかであろう。従って添付の特許請求の範囲は、実施例のこの様な修正変更はいずれも本発明の真の範囲および精神をカバーすることを意図している。
【0516】
本発明の新奇な特徴は、事前設計コアを用いて集積回路を設計する際に別の型式の単一セットにも効果的に適用出来る。例えば、複数の状態信号を選択して限られた数の状態入力に供給する事ができる。
【0517】
【表84】
Figure 0004285803
【0518】
【表85】
Figure 0004285803

【図面の簡単な説明】
【図1A】図1Aは本発明の1つの実施例を含むマイクロプロセッサのブロック図。
【図1B】図1Aのマイクロプロセッサの更に詳細なブロック図。
【図1C】図1Aのマイクロプロセッサの更に詳細なブロック図。
【図2】図2は図1Aのマイクロプロセッサの実行ユニットとレジスタファイルのブロック図。
【図3A】図1Aのマイクロプロセッサで使用されるメモリマップの1つを図示する。
【図3B】図1Aのマイクロプロセッサで使用されるメモリマップの1つを図示する。
【図4】図4は図1Aのマイクロプロセッサの簡略化されたブロック図。
【図5】図5はキャッシュがCPUからのフェッチパケットアドレスを使用する方法を示す。
【図6】図6はデータの流れの方向と、同様にDMAとその他のマイクロプロセッサモジュールとの間のマスタ(要求側)とスレーブ(資源)の関係を示す。
【図7】図7はDMAグローバルデータレジスタを図示する。
【図8】図8はDMAチャンネル一次制御レジスタを図示する。
【図9】図9はDMAチャンネル二次制御レジスタを図示する。
【図10】図10はDMAチャンネル転送計数器を図示する。
【図11】図11はDMAグローバルデータレジスタを示す。
【図12】図12はDMAチャンネル発信元アドレスレジスタを図示する。
【図13】図13は宛先アドレスレジスタを図示する。
【図14】図14はDMAグローバルデータレジスタを図示する。
【図15】図15はスプリットアドレス用に使用されるDMAグローバルデータレジスタを図示する。
【図16】図16はチャンネル間の優先順位を指定するDMAグローバル制御レジスタを図示する。
【図17】図17はDMA_INTx信号を形成する全ての可能化された条件のロジックを図示する。
【図18】図18はデータバスおよび内部保持レジスタを含むDMA制御装置の内部データ移動経路を示す。
【図19】図19はHPIへのホストインタフェースの簡略化されたブロック図を示す。
【図19A】図19AはHPICレジスタ図を図示する。
【図20】図20はHCS−,HDS1−,およびH052−入力の等価回路を示す。
【図21】図21はHAS−が使用されていない場合のHPIアクセスタイミングを示す。
【図22】図22はHAS−が使用されている場合のHPIアクセスタイミングを示す。
【図23】図23はいくつかのI/O信号と信号経路とを具備したEMIFの簡略化されたブロック図を示す。
【図24】図24はEMIFグローバル制御レジスタを示す。
【図25】図25はEMIFで支持された(4)CE空間制御レジスタを示す。
【図26】図26はEMIF SDRAM制御レジスタを図示する。
【図27】図27はSDRAMリフレッシュ周期レジスタを示す。
【図28】図28は16MビットSDRAMインタフェースを示す。
【図29】図29は64MビットSDRAMインタフェースを示す。
【図30】図30はSDRAMリフレッシュタイミングを示す。
【図31】図31はSDRAMモードレジスタの組を表す。
【図32】図32はDRAM不活性化を表す。
【図33】図33はCAS呼び出し3、バースト長1、読み取りを具備したSDRAMを表す。
【図34】図34はバースト長1,書き込みSDRAMを表す。
【図35】図35は工業標準同期バーストSRAM(SBSRAM)に対するEMIFインタフェースを示す。
【図36】図36はSBSRAMの16ワード読み取りを示す。
【図37】図37はSBSRAMの6ワード書き込みを示す。
【図38】図38は標準SRAMに対するEMIFインタフェースを示す。
【図39】図39はFIFOに対するEMIFインタフェースを示す。
【図40】図40は8ビットROMに対するEMIFインタフェースを示す。
【図41】図41は16ビットROMに対するEMIFインタフェースを示す。
【図42】図42は32ビットROMに対するEMIFインタフェースを示す。
【図43】図43は3つの非同期タイミングを図示する。
【図44】図44は多チャンネルシリアルポート(MCSP)のブロック図である。
【図45】図45はシリアルポート制御レジスタ(SPCR)を示す。
【図46】図46はPin制御レジスタを示す。
【図47】図47は受信制御レジスタを示す。
【図48】図48は送信制御レジスタを示す。
【図49】図49はMCSPクロックとフレーム同期信号の典型的な動作を示す。
【図50】図50はデータが外部シリアル装置によってクロックを取られる様子を示しており、これはクロックの立ち上がりを用いて行われ、これはMCSP受信機により同一クロックの立ち下がりと共にサンプリングされる。
【図51】図51はフレームの1例を示し、ここで第一位相は各々12ビットの2ワードから構成され、そして各々8ビットの3ワードの第二位相が続く。
【図52】図52は4つの8ビットワードが単一位相フレームの中で送信される状態を示す。
【図53】図53は1つの32ビットワードで構成される単一位相フレームのデータストリームを図示する。
【図54】図54はプログラム可能データ遅延の範囲がゼロから2ビットクロック((R/X)DATDLY=00b−10b))であることを示す。
【図55】図55はシリアルポートがデータストリームからフレームビットを本質的に除去する様を示す。
【図56】図56はAudio Codec’97(AC97)標準の1例を示す。
【図57】図57は1ビットデータ遅延を示す。
【図58】図58は1つの8ビットワードで構成される単一位相データフレームの例を示す。
【図59】図59はシリアル受信の例を示す。
【図60】図60はシリアル送信の例を示す。
【図61】図61は最大パケット周波数に於けるMCSP動作を示す。
【図62】図62は8ビットデータを具備した最大パケット周波数に於けるMCSP動作を示す。
【図63】図63はこのストリームを32ビットワードの連続ストリームとして取り扱う様に構成されたMCSPを示す。
【図64】図64はワードBが(R/X)FIG=0の時に予期せぬフレーム同期パルスで割り込まれた例を示す。
【図65】図65はフレーム同期が無視された際のMCSP動作を示す。
【図66】図66は受信オーバーラン状態を示す。
【図67】図67はRFULLがセットされた場合を示す。
【図68】図68は受信機が全ての入力フレーム同期パルスを取り扱う際に使用する判定機を示す。
【図69】図69は内部パケットの合間でのシリアルポートの通常動作を示す。
【図70】図70はDXR内のデータが送信される前に過剰書き込みされた際に何が生じるかを表す。
【図71】図71はアンダーフロー状態での送信を表す。
【図72】図72はそのままでは発生するはずのアンダーフロー状態送信の直前にDXRへ書き込まれる場合を示す。
【図73】図73は送信機が全ての入力フレーム同期信号を取り扱うために使用する判定機を示す。
【図74】図74は内部パケットの合間で行われるシリアルポートの通常動作の事例を示す。
【図75】図75はDXRからXSRまたRBRからDRRへのデータコピー処理の間に生じる圧縮を示す。
【図76】図76は圧縮されるべきデータ送信を示し、左揃え16ビットデータがコンパンディング法則に応じて13または14ビットの値となる。
【図77】図77はMCSPが内部データをコンパンド出来る2つの方法を示す。
【図78】図78はクロックおよびフレーム発生用回路を表す。
【図79】図79はサンプル速度発生用回路を表す。
【図80】図80はサンプル速度発生レジスタ(SRGR)を示す。
【図81】図81はCLKSの種々の極性での動作を示す。
【図82】図82はFSRの種々の極性での動作を示す。
【図83】図83は16CLKG周期のフレームを示す。
【図84】図84はMitel STバスと互換のMCSP構造を示す。
【図85】図85は単一速度ST−BUSを図示する。
【図86】図86は二重速度クロック例を図示する。
【図87】図87は多重チャンネル制御レジスタ(MCR)を図示する。
【図88】図88はフレーム内の16チャンネル境界上で、パーティションAおよびB内にブロックが割り当てられる様子を図示する。
【図89A】図89Aは異なるモードに対するMCSP上の活動を示す。
【図89B】図89Bは異なるモードに対するMCSP上の活動を示す。
【図89C】図89Cは異なるモードに対するMCSP上の活動を示す。
【図89D】図89Dは異なるモードに対するMCSP上の活動を示す。
【図90】図90は受信チャンネル可能化レジスタ(RCER)を図示する。
【図91】図91は送信チャンネル可能化レジスタ(XCRE)を図示する。
【図92】図92はCLKSTPが個別のSPIインタフェースに対して適切なクロック方法を選択する様子を示す。
【図93】図93はタイマのブロック図を示す。
【図94】図94はタイマ制御レジスタを示す。
【図95】図95はタイマ周期レジスタを図示する。
【図96】図96はタイマ計数器レジスタ更新を示す。
【図97】図97はパルスモードでのタイマ動作を示す。
【図98】図98はクロックモードでのタイマ動作を示す。
【図99】図99は外部割り込み信号のタイミングを示す。
【図100】図100は外部割り込み極性レジスタを示す。
【図101】図101は割り込みマルチプレクサ低レジスタ内のINTSELフィールドを示す。
【図102】図102はまた割り込みマルチプレクサ高レジスタ内のINTSELフィールドを示す。
【図103】図103はクロックPLLブロック図である。
【図104】図104はパワーダウンロジックの簡略化されたブロック図を示す。
【図105】図105は制御状態レジスタのフィールド(CSR PWRDフィールド)内のパワーダウンビット(10−14)の設定を示す。
【符号の説明】
1 マイクロプロセッサ
10 CPU
20 レジスタ
22 データメモリ
23 プログラムメモリ
32,34,36,38 バス
42 集積回路
60 周辺機器
61 その他の周辺機器
70 随意アクセスメモリ
71 読み取り専用メモリ
72 ディスク
73 外部バス
80 ホストポートバス
82 タイマ(周辺機器の1例)
102 制御レジスタファイル

Claims (3)

  1. 命令を実行するための中央処理装置(CPU)と
    CPUに接続され、CPUで実行される命令を格納するためのメモリ回路と
    CPUに接続され、各位相が異なる組のパラメータを有する二重位相フレームでデータの送信および受信を行うように動作可能であり、そして各々の位相に対して異なる数のワードを選択するように動作可能なシリアルポートインタフェース回路と、
    を含むデータ処理装置であって、
    シリアルポートインタフェース回路が、
    データ送信出力と、
    データ送信出力に接続され、複数のビットを有する送信データワードをCPUから受信するように動作可能なデータ送信レジスタと、
    複数のデータチャンネルが利用可能となるように、シリアルデータストリームが、データ送信レジスタからデータ送信ポートを経由して時間分割マルチプレクス方式で送信されるように動作可能であるフレーム同期生成回路および制御回路と、
    送信データワードの各々のビットが複数のデータチャンネルから選択されたチャンネルに割り当てられるように、その中を送信データワードが送信される複数のデータチャンネルの一部を選択するよう動作可能な複数チャンネル制御レジスタと、
    データ送信ポートに接続され、送信データワードの1つのビットまたは複数のビットの送信を無効化するように動作可能な送信チャンネル有効化レジスタと、
    データ受信ポートと、
    データ受信ポートに接続されたサンプリング速度クロック生成回路と、
    外部クロック信号を受信するためにサンプリング速度生成回路に接続された外部クロック入力と、
    外部フレーム同期信号を受信するためにサンプリング速度生成回路に接続されたフレーム同期信号入力と、
    サンプリング速度生成回路に接続され、CPUで実行される別の選択された命令に応答してサンプリング速度生成回路を制御するためのサンプリング速度生成レジスタと、
    を含み、
    サンプリング速度生成回路が、フレーム同期信号入力に接続されたフレームパルス検出回路を含み、
    サンプリング速度生成回路が、サンプリング速度生成レジスタ内の制御ビットが第一状態の時に、フレームパルス検出回路に応答してサンプリング速度生成回路を外部フレーム同期信号に再同期させ、サンプリング速度生成レジスタ内の制御ビットが第二状態の時に、自由実行させるように、動作可能である、
    データ処理装置。
  2. 請求項記載のデータ処理装置であって
    サンプリング速度生成回路が更に
    外部クロック入力に接続されデータビットクロック出力を有するクロック分周回路を含み、CPUで実行される別の選択された命令に応答して、第一周波数を有する外部クロック信号を第二周波数を有するデータビットクロックに変換するように動作可能である、
    前記データ処理装置。
  3. 請求項記載のデータ処理装置であって
    サンプリング速度生成回路が更にマルチプレクサ回路の第一入力に接続された内部クロック入力を含み
    外部クロック入力がマルチプレクサの第二入力に接続され、マルチプレクサの出力がクロック分周回路に接続されており
    マルチプレクサがCPUで実行される別の選択された命令に応答する、前記データ処理装置。
JP22849198A 1997-07-08 1998-07-08 周辺装置と外部インタフェースとを具備したディジタル信号処理装置 Expired - Lifetime JP4285803B2 (ja)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
US053081 1993-04-26
US5191197P 1997-07-08 1997-07-08
US5207397P 1997-07-09 1997-07-09
US5308197P 1997-07-09 1997-07-09
US5307697P 1997-07-09 1997-07-09
US5482898A 1998-04-03 1998-04-03
US052073 1998-04-03
US09/055,011 US6167466A (en) 1997-07-09 1998-04-03 Multi-channel serial port with programmable features
US054828 1998-04-03
US053076 1998-04-03
US09/054,833 US6145027A (en) 1997-07-09 1998-04-03 DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
US054833 1998-04-03
US051911 1998-04-03
US055011 1998-04-03

Publications (2)

Publication Number Publication Date
JPH11167547A JPH11167547A (ja) 1999-06-22
JP4285803B2 true JP4285803B2 (ja) 2009-06-24

Family

ID=27568060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22849198A Expired - Lifetime JP4285803B2 (ja) 1997-07-08 1998-07-08 周辺装置と外部インタフェースとを具備したディジタル信号処理装置

Country Status (3)

Country Link
EP (1) EP0901081B1 (ja)
JP (1) JP4285803B2 (ja)
DE (1) DE69841596D1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089344B1 (en) * 2000-06-09 2006-08-08 Motorola, Inc. Integrated processor platform supporting wireless handheld multi-media devices
JP2002175265A (ja) * 2000-09-27 2002-06-21 Texas Instruments Inc 直接メモリ・アクセス・コントローラを有するディジタル信号プロセッサにおける複数の構成素子間での信号群交換装置および方法
ATE266882T1 (de) * 2000-09-27 2004-05-15 Texas Instruments Inc Gerät und verfahren zur signalgruppenübertragung zwischen einrichtungen zur digitalen signalverarbeitung
EP1333380A1 (en) 2002-01-30 2003-08-06 STMicroelectronics Limited DMA access generator
US20060090016A1 (en) * 2004-10-27 2006-04-27 Edirisooriya Samantha J Mechanism to pull data into a processor cache
US10031864B2 (en) 2013-03-15 2018-07-24 Seagate Technology Llc Integrated circuit
DE102017008186B4 (de) * 2017-08-31 2022-12-15 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Master eines Bussystems
CN109902042B (zh) * 2019-01-30 2023-07-25 湖北三江航天红峰控制有限公司 一种实现dsp与zynq之间高速数据传输的方法及系统
CN111078614B (zh) * 2019-12-19 2023-05-09 成都理工大学工程技术学院 一种基于fpga的功能模块
CN113760813B (zh) * 2021-08-30 2024-05-24 凯迈(洛阳)电子有限公司 一种数字信号处理器启动控制的方法
CN114780029B (zh) * 2022-04-12 2023-05-09 荣耀终端有限公司 器件识别方法和相关装置
CN115033519B (zh) * 2022-06-30 2023-07-25 中国科学院长春光学精密机械与物理研究所 长时间工作的探测器spi寄存器的预防打翻方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118856A (ja) * 1986-11-06 1988-05-23 Nec Corp シリアル・バス・インタフエ−ス回路
US4780814A (en) * 1987-02-09 1988-10-25 Intel Corporation Global serial channel for microcontroller
JPH07129486A (ja) * 1993-10-29 1995-05-19 Mitsubishi Electric Corp シリアル通信回路

Also Published As

Publication number Publication date
EP0901081B1 (en) 2010-04-07
JPH11167547A (ja) 1999-06-22
DE69841596D1 (de) 2010-05-20
EP0901081A3 (en) 2000-05-17
EP0901081A2 (en) 1999-03-10

Similar Documents

Publication Publication Date Title
US6145027A (en) DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
US6167466A (en) Multi-channel serial port with programmable features
US5930523A (en) Microcomputer having multiple bus structure coupling CPU to other processing elements
JP3739797B2 (ja) 縮小命令セット・コンピューター・マイクロプロセッサーの構造
US5642489A (en) Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management
JP5231612B2 (ja) バス上のメモリプリフェッチコマンドを送信するための方法および装置
US7502896B2 (en) System and method for maintaining the integrity of data transfers in shared memory configurations
JP4285803B2 (ja) 周辺装置と外部インタフェースとを具備したディジタル信号処理装置
KR100344132B1 (ko) 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법
JP2003502728A (ja) プロセッサおよびコプロセッサを含むコンピュータ・システム
JPH11296389A (ja) プロセッサでマルチタスキングを管理するコンテキスト・コントロ―ラ
US6892266B2 (en) Multicore DSP device having coupled subsystem memory buses for global DMA access
JPH0877098A (ja) 制御されたバーストメモリアクセスを備えたデータプロセッサおよびその方法
EP1207457A1 (en) External bus arbitration technique for multicore DSP device
JP2009037639A (ja) ストリーミングidメソッドによるdmac発行メカニズム
JPH051504B2 (ja)
JP2636074B2 (ja) マイクロプロセッサ
JPH11327922A (ja) プロセッサでマルチタスキングを管理するコンテキスト・コントロ―ラ
JPH02280232A (ja) 命令キュー制御回路
JPH0973428A (ja) 演算装置
JP2002259323A (ja) マイクロコンピュータ
JPH02306357A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080801

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081224

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090324

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term