(57)【特許請求の範囲】
【請求項１】
命令を実行するための中央処理装置（ＣＰＵ）と、
ＣＰＵに接続され、ＣＰＵで実行される命令を格納するためのメモリ回路と、
ＣＰＵに接続され、各位相が異なる組のパラメータを有する二重位相フレームでデータの送信および受信を行うように動作可能であり、そして各々の位相に対して異なる数のワードを選択するように動作可能なシリアルポートインタフェース回路と、
を含むデータ処理装置であって、
シリアルポートインタフェース回路が、
データ送信出力と、
データ送信出力に接続され、複数のビットを有する送信データワードをＣＰＵから受信するように動作可能なデータ送信レジスタと、
複数のデータチャンネルが利用可能となるように、シリアルデータストリームが、データ送信レジスタからデータ送信ポートを経由して時間分割マルチプレクス方式で送信されるように動作可能であるフレーム同期生成回路および制御回路と、
送信データワードの各々のビットが複数のデータチャンネルから選択されたチャンネルに割り当てられるように、その中を送信データワードが送信される複数のデータチャンネルの一部を選択するよう動作可能な複数チャンネル制御レジスタと、
データ送信ポートに接続され、送信データワードの１つのビットまたは複数のビットの送信を無効化するように動作可能な送信チャンネル有効化レジスタと、
データ受信ポートと、
データ受信ポートに接続されたサンプリング速度クロック生成回路と、
外部クロック信号を受信するためにサンプリング速度生成回路に接続された外部クロック入力と、
外部フレーム同期信号を受信するためにサンプリング速度生成回路に接続されたフレーム同期信号入力と、
サンプリング速度生成回路に接続され、ＣＰＵで実行される別の選択された命令に応答してサンプリング速度生成回路を制御するためのサンプリング速度生成レジスタと、
を含み、
サンプリング速度生成回路が、フレーム同期信号入力に接続されたフレームパルス検出回路を含み、
サンプリング速度生成回路が、サンプリング速度生成レジスタ内の制御ビットが第一状態の時に、フレームパルス検出回路に応答してサンプリング速度生成回路を外部フレーム同期信号に再同期させ、サンプリング速度生成レジスタ内の制御ビットが第二状態の時に、自由実行させるように、動作可能である、
データ処理装置。
【請求項２】
請求項１記載のデータ処理装置であって、
サンプリング速度生成回路が更に、
外部クロック入力に接続され、データビットクロック出力を有するクロック分周回路を含み、ＣＰＵで実行される別の選択された命令に応答して、第一周波数を有する外部クロック信号を、第二周波数を有するデータビットクロックに変換するように動作可能である、
前記データ処理装置。
【請求項３】
請求項２記載のデータ処理装置であって、
サンプリング速度生成回路が更に、マルチプレクサ回路の第一入力に接続された内部クロック入力を含み、
外部クロック入力がマルチプレクサの第二入力に接続され、マルチプレクサの出力がクロック分周回路に接続されており、
マルチプレクサがＣＰＵで実行される別の選択された命令に応答する、前記データ処理装置。
【発明の詳細な説明】
【０００１】
【関連明細書との相互参照】
本発明は、本件と同時に受け付けられた係属の明細書シリアル番号０９／０１２，８１３（ＴＩ処理番号Ｔ−２５３１１）に関連し、それは此処に明示することにより参照されている。
【０００２】
【発明の属する技術分野】
本発明はマイクロプロセッサに関わり、詳細にはオンチップ周辺装置と種々の外部インタフェースポートとを含むマイクロプロセッサ集積回路に関する。
【０００３】
【従来の技術】
マイクロプロセッサの設計者は種々のマイクロプロセッサの性能改善のために、クロック速度の増加、並列処理の追加といった努力を休み無く行っている。随意アクセスメモリ（ＲＡＭ）の大規模なブロックがマイクロプロセッサ内に含まれているが、これはデータ格納およびプログラム格納用であってメモリアクセス時間を短縮している。直接メモリアクセス（ＤＭＡ）回路がしばしば具備されており、マイクロプロセッサに接続されている周辺装置とマイクロプロセッサに接続されているメモリとの間のデータ転送を行っている。ＤＭＡ回路の初期化およびＤＭＡ転送操作の監視をマイクロプロセッサ上で動作するソフトウェアで行っている。ＤＭＡ回路は独立に制御される１つまたは複数のチャンネルを具備している。６チャンネルＤＭＡ制御装置の詳細な説明が米国特許第５，３０５，４４６号、リーチ（Leach ）その他に付与の中で、特に図１０，１１，１２ａおよび１２ｂを参照して行われており、これは此処にあげることで参照されている。
【０００４】
【発明が解決しようとする課題】
本発明の目的は指定されたＤＭＡ転送操作に対してマイクロプロセッサ上で動作するソフトウェアに要求される初期化および監視の量を削減することである。
【０００５】
本発明の別の目的は読み取りおよび書き込み転送を種々の転送速度で出来るようにすることである。
【０００６】
新型マイクロプロセッサの開発サイクル時間を短縮するために、種々の機能ブロック、例えば中央処理装置、メモリ回路、および周辺回路が容易に再使用出来るコア回路として設計されている。マイクロプロセッサが更に複雑になるに従って、ますます周辺回路がＣＰＵと共に単一集積回路上に配置されるようになる。周辺回路から、外部発信元から、またその他のマイクロプロセッサ内の発信元から発せられる割り込み要求信号の数が、選択採用された事前設計ＣＰＵコア上で利用出来る割り込み入力の数を超える可能性がある。
【０００７】
本発明の１つの目的は事前設計コアＣＰＵ上での入力信号の不足を解消するための方法を提供することである。
【０００８】
全システムチップ総数およびコストを削減するために、種々の型式の入力／出力装置がマイクロプロセッサ集積回路内に含まれている。シリアルポートはマイクロプロセッサに共通に含まれる入力／出力装置の１つのクラスの例である。
【０００９】
本発明の１つの目的はマイクロプロセッサ集積回路用のオンチップ周辺装置および外部インタフェースの動作並びに制御を改善することである。
【００１０】
【課題を解決するための手段】
一般的に言って、本発明の１つの形式はデータ処理装置であって、これは命令を実行するための中央処理装置（ＣＰＵ）、中央処理装置に接続されそのＣＰＵで実行される命令を格納するためのメモリ回路、およびこのＣＰＵに接続され、各々が異なるパラメータセットを有する二重位相フレームでデータの転送および受信を行うように動作可能なシリアルポートインタフェースとを含む。
【００１１】
本発明の別の形式はデータ処理装置であって、これは命令を実行するための中央処理装置（ＣＰＵ）、前記中央処理装置に接続されたメモリ制御装置、および前記メモリ制御装置に接続されたメモリ回路とを含む。このデータ処理装置は更に、前記メモリ制御装置に接続された外部メモリインタフェース回路を含む。このデータ処理装置は更に、前記直接メモリアクセス制御装置に接続されたホストポートインタフェースを含む。このデータ処理装置は更に、前記メモリ制御装置に接続された周辺バス制御装置、および前記周辺バス制御装置に接続された外部メモリインタフェース制御装置を含む。データ処理装置は更に少なくとも１つの外部信号を含むことが可能で、これは前記中央処理装置のリセットアドレスに配置されるメモリ型式を定義するためのものである。このデータ処理装置は更に少なくとも１つの外部信号を含むことが可能で、これは前記メモリ回路のサイズ及び位置を認識するためのものである。このデータ処理装置は更に、前記周辺バス制御装置に接続されたプログラム可能タイマを含むことも可能である。このデータ処理装置は更に前記中央処理装置にクロック信号を供給するためのプログラム可能フェイズロックループ回路を含むことも可能である。このデータ処理装置は更にパワーダウン回路を含み、これは前記装置の予め選択された部分にクロック信号が到達することをプログラム可能なように防止するためのものである。
【００１２】
本発明の別の形式はデータ処理装置であって、中央処理装置に接続されたプログラムメモリ回路内に格納されたソフトウェア命令を実行するように動作可能な中央処理装置と、処理装置で処理されるべきデータを格納するように動作可能なメモリ回路と、読み取りアドレス回路と書き込みアドレス回路とを有し、メモリ回路との間でデータを転送するように動作可能な直接メモリアクセス（ＤＭＡ）制御装置とを含み、このＤＭＡ制御装置は更に中央処理装置に割り込みを行うように動作可能なＤＭＡ割り込み回路を有する。この装置は更に、データをメモリ回路との間で転送するように動作可能なアドレス生成回路を有する周辺装置を含むことが可能である。この装置は更に補助チャンネル制御回路を含むことが可能であり、これは周辺装置が第一データワードをメモリ回路に対してその周辺装置のアドレス生成回路を用いて転送させ、また中央処理装置へＤＭＡ回路のＤＭＡ割り込み回路を用いて割り込みさせるように動作可能である。
【００１３】
データ処理装置が提供されており、これは命令を実行するための中央処理装置（ＣＰＵ）を含む。このＣＰＵは固定数の割り込み入力端子を有する。このデータ処理装置はまた多数の割り込み要求信号線を有し、ここで割り込み要求信号線の数は割り込み入力端子の数よりも少ない。また好適に割り込み選択器が具備されていて、これは割り込み要求信号の部分集合を選択し、選択された部分集合を割り込み入力端子に接続するように動作可能である。
【００１４】
本発明の別の特徴として、ＤＭＡ制御装置はプログラム可能読み取りアドレス回路とプログラム可能書き込みアドレス回路とを有する。
【００１５】
本発明の別の実施例はスプリットチャンネル操作を実行するための回路を有し、これは発信元アドレスからのデータをスプリット宛先アドレスに転送するように動作可能であり、またスプリット発信元アドレスからのデータを宛先アドレスに同時に受信するように動作可能である。
【００１６】
本発明の別の実施例はグローバルデータレジスタを含み、これはＤＭＡ制御装置が後続の転送操作の異なる機能に対して使用することが出来る。
【００１７】
本発明の別の実施例は浮動ＦＩＦＯバッファを含み、これは選択された発信元バスと選択された宛先バスとの間に接続することが出来る。
【００１８】
本発明のその他の装置、システムおよび方法形式もまた開示されており此処に特許請求されている。本発明のその他の目的が開示されており、また更に別の目的は此処に開示された内容から明らかであろう。
【００１９】
本発明のその他の特徴および特長は添付図を参照して以下の詳細な説明を参照することにより明らかとなろう。
【００２０】
【発明の実施の形態】
図１Ａマイクロプロセッサ１のブロック図であり、これは本発明の１つの実施例を含む。マイクロプロセッサ１はＶＬＩＷディジタル信号処理装置（”ＤＳＰ”）である。簡単にするために、図１Ａは本発明の実施例の理解に関連するマイクロプロセッサ１の一部のみを示す。ＤＳＰの一般的構成の詳細は良く知られており、何処で探すことが出来るであろう。例えば米国特許第５，０７２，４１８号、フレデリック・ボータウド（Frederic Boutaud）その他に付与、がＤＳＰを詳細に記述しており、これは本明細書でも参照されている。米国特許第５，３２９，４７１号、ギャレイ・スボボダ（Gary Swoboda）その他に付与、がＤＳＰの試験およびエミュレート方法を詳細に記述しており、これは本明細書でも参照されている。本発明の実施例に関連するマイクロプロセッサ１の詳細部分が以下に十分詳細に説明されており、マイクロプロセッサ技術分野で通常の技量を有する者が本発明を実施しかつ使用出来るようにしている。
【００２１】
マイクロプロセッサ１の中には中央処理装置（ＣＰＵ）１０，データメモリ２２，プログラムメモリ２３，周辺機器６０および直接メモリアクセス（ＤＭＡ）６１を具備した外部メモリインタフェース（ＥＭＩＦ）が示されている。ＣＰＵ１０は更に命令フェッチ／復号ユニット１０ａ−ｃ、算術演算とロード／ストアユニットＤ１、掛け算器Ｍ１、ＡＬＵ／シフトユニットＳ１、算術論理ユニット（”ＡＬＵ”）Ｌ１，データの読み取りおよびデータの書き込みが行われる共有多重ポートレジスタファイル２０ａを含む複数の実行ユニットを有する。復号された命令は命令フェッチ／復号ユニット１０ａ−ｃから機能ユニットＤ１，Ｍ１，Ｓ１およびＬ１に対して図示されていない種々の制御線の組を介して提供される。データはレジスタファイル２０ａとロード／ストアユニットＤ１との間は第一のバス３２ａの組を介して、掛け算器Ｍ１との間は第二のバス３４ａの組を介して、ＡＬＵ／シフトユニットＳ１との間は第三のバス３６ａの組を介して、そしてＡＬＵ  Ｌ１との間は第四のバス３８ａの組を介して提供される。データはメモリ２２とロード／ストアユニットＤ１相互間で第五のバス４０ａの組を介して提供される。上記の全データ経路はレジスタファイル２０ｂおよび実行ユニットＤ２，Ｍ２，Ｓ２，およびＬ２で二重化されていることに注意されたい。命令はフェッチユニット１０ａにより命令メモリ２３からバス４１の組を介してフェッチされる。エミュレーションユニット５０は集積回路１の内部動作へのアクセスを提供し、これは外部試験システム５１で制御可能である。
【００２２】
メモリ２２およびメモリ２３は図１の中で集積回路マイクロプロセッサ１、その範囲は箱４２で表されている、の一部として示されていることに注意されたい。メモリ２２−２３をマイクロプロセッサ１集積回路４２の外部に置くことも、またその一部を集積回路４２の上に残し、一部を集積回路４２の外部に置くことも可能である。また、別の数の実行ユニットを使用することも可能である。
【００２３】
マイクロプロセッサ１がデータ処理システムの中に組み込まれている場合、追加メモリまたは周辺装置が図１に図示されるようにマイクロプロセッサ１に接続されるはずである。例として、随意アクセスメモリ（ＲＡＭ）７０、読み取り専用メモリ（ＲＯＭ）７１およびディスク７２が外部バス７３経由で接続されているように示されている。バス７３は外部メモリインタフェース（ＥＭＩＦ）に接続されており、これはマイクロプロセッサ４２内の機能ブロック６１の一部である。直接メモリアクセス（ＤＭＡ）制御装置もまたブロック６１内部に含まれている。ＤＭＡ制御装置は一般的にデータをメモリとマイクロプロセッサ１内部の周辺装置との間、およびメモリとマイクロプロセッサ１外部の周辺装置との間で移動させるように使用される。データはブロック６１からプログラムメモリ２３にバス４３経由で転送出来る；データはデータメモリ２２との間でバス４４経由で転送出来る。その他の型式の周辺装置、例えばタイマ８２、がホストポートバス８０経由で接続されている。バスインタフェースがブロック６０内部にホストポートバス８０用に含まれている。
【００２４】
本発明の見地から有益ないくつかのシステム例が、米国特許第５，０７２，４１８号に記載されており、これは本明細書でも参照されており特に米国特許５，０７２，４１８号の図２−１８が参考になる。性能を改善したりまたは価格を下げるために本発明の特徴を取り入れたマイクロプロセッサを用いて米国特許５，０７２，４１８号に記載されているシステムを更に改善することが出来る。この様なシステムは、工業プロセス制御、自動車システム、電動機制御、ロボット制御システム、衛星遠距離通信システム、エコー除去システム、モデム、ビデオ画像システム、音声認識システム、暗号を具備したボコーダ・モデムシステム等が含まれるが、これらに限定されるわけではない。
【００２５】
図１Ａのマイクロプロセッサの種々の構造的特徴の説明が係属の明細書シリアル番号０９／０１２，８１３（ＴＩ管理番号Ｔ−２５３１１）に提示されている。図１Ａのマイクロプロセッサに対する完全な命令セットの説明がまたこの係属の明細書に提示されている。
【００２６】
本発明の１つの特徴によれば、ブロック６１内のＤＭＡ制御装置を用いてデータのブロックを外部発信源から内部プログラムメモリ２３へ、リセット信号７６に応じて転送できる。このデータのブロックは初期プログラムを含み、これはマイクロプロセッサ１で実行することが可能でありおそらくはブートストラップローダである。ブートストラップローダーはマイクロプロセッサ１用の大規模プログラムをロードするために使用される。いずれの場合も、マイクロプロセッサ１はマイクロプロセッサ内のブートＰＲＯＭまたはＲＯＭを必要とすることなく動作状態となる。これは好都合であるが、それはＰＲＯＭ／ＲＯＭが比較的大きく典型的にはブート用にしか使用されないためである。従ってブートＰＲＯＭ／ＲＯＭの必要性を取り除くことで節約されたマイクロプロセッサ１内の空間を更に有用な機能のために効果的に使用したり、または低価格装置を制作するためにマイクロプロセッサ１の寸法を小さくすることが出来る。
【００２７】
構成回路７４は構造パラメータをインタフェースピン７５を介してブロック６１に提供しＤＭＡ制御装置を初期化するために使用される。これに代わる実施例として、構成回路８１が構造パラメータをバス８０上でインタフェースピン８４を介してブロック６１に提供しＤＭＡ制御装置を初期化するために使用される。ブロック７７は”ＯＲ”機能を提供し回路７４または８１からの構造パラメータがブロック６１へ送られるようにしている。
【００２８】
図１Ｂおよび１Ｃは図１Ａのマイクロプロセッサの更に詳細なブロック図である。多重チャンネルシリアルポート１２０が周辺バス１１０に接続されている。
【００２９】
多重チャンネルシリアルポート１２０が周辺バス１１０に接続されている。その生成方法ならびに特長を図４を参照して更に詳細に説明する。
【００３０】
２つのＤＭＡ制御装置がブロック６１内に、２つの別々のＤＭＡチャンネル、ＤＭＡ０  １４０およびＤＭＡ１  １４１用に具備されている。本発明においては、本発明の特徴に基づいてＤＭＡ０  １００のみがブートローディングを提供するように構成されているが、これは本発明の制限条件と考えられるべきではない。ＤＭＡ制御装置１４０および１４１は周辺機器バス１１０によるプログラム制御を受けるように構成されており、これはデータバス４０ｂ経由でＣＰＵ１０に接続されている。ＤＭＡ０  １４０は図１Ａ内のＲＯＭ７１の様な外部発信元からプログラムメモリ２３またはデータメモリ２２にデータを転送するように動作出来る。
【００３１】
本発明の１つの特徴として、ＤＭＡ０  １４０はリセット信号７６がオン状態からオフ状態に遷移した際にブートロードを実行するように初期化される。この初期化の詳細は後ほど説明する。この初期化ステップの後、ＤＭＡ０  １４０はメモリ転送要求を開始する。外部メモリインタフェース（ＥＭＩＦ）１０３はバス１４２経由ＤＭＡ０  １４０からのメモリ要求に応答し、バス７３上のデータ源からのデータにアクセスする。データワードがＥＭＩＦ１０３で準備された後、ＤＭＡ０  １４０はこのデータワードをプログラムメモリ制御装置１０４に転送し、これはそのデータワードをプログラムメモリ２３の中にバス１０６経由でＤＭＡ０  １４０で指定されたアドレスに書き込む。このブートロード処理手順の間、ＣＰＵ＿Ｒｅｓｅｔ＿信号７９はオン状態にＤＭＡ０  １４０によって保持され、ＣＰＵ１０によっていかなる命令処理も実行されないようにしている。
【００３２】
本発明の特徴として、割り込み選択器１６０がいくつかの割り込み入力信号１６１（ａ−ｆ）の中から好適に選択し、選択された割り込み信号をＣＰＵ１０に対して割り込み信号ＩＮＴ（４−１５）経由で提供する。
【００３３】
図２は図１Ａのマイクロプロセッサの実行ユニット並びにレジスタファイルのブロック図であって、種々の機能ブロックを接続するバスの更に詳細な図を示す。此の図の中で特に断りが無い限り全てのデータバスは３２ビット幅である。バス４０ａはアドレスバスＤＡ１を有し、これはｍｕｘ２００ａで駆動される。これによりロード／ストアユニットＤ１  １２ａまたはＤ２  １２ｂのいずれかで生成されたアドレスをレジスタファイル２０ａにロードまたはストアするためのアドレスを提供することが可能となる。データバスＬＤ１はアドレスバスＤＡ１で指定されたメモリ２２内のアドレスからデータをロードユニットＤ１  １２ａ内のレジスタにロードする。ユニットＤ１  １２ａは提供されたデータをレジスタファイル２０ａの中にストアする前に処理する。同様にデータバスＳＴ１はレジスタファイル２０ａからのデータをメモリ２２にストアする。ロード／ストアユニットＤ１  １２ａは下記の演算を実行する：３２ビット加算、減算、線形および円形アドレス計算。ロード／ストアユニットＤ２  １２ｂはＤ１  １２ａと同様に演算を行い、ｍｕｘ２００ｂの支援の下アドレスの選択を行う。
【００３４】
ＡＬＵユニットＬ１  １８ａは下記の型式の演算を実行する：３２／４０ビット算術演算および比較演算；３２ビットの最上位ビット計数；３２および４０ビット用の計数の正規化；および論理演算。ＡＬＵ  Ｌ１  １８ａは３２ビット発信元被演算子用入力ｓｒｃ１と第二３２ビット発信元被演算子用入力ｓｒｃ２とを有する。入力ｍｓｂ＿ｓｒｃは８ビット値であって４０ビット発信元被演算子を形成するために使用される。ＡＬＵ  Ｌ１  １８ａは３２ビット宛先被演算子用の出力ｄｓｔを有する。出力ｍｓｂ＿ｄｓｔは８ビット値であって、４０ビット宛先被演算子を形成するために使用される。レジスタファイル２０ａ内の２つの３２ビットレジスタは４０ビット被演算子を保持するために連結される。Ｍｕｘ２１１は入力ｓｒｃ１に、３２ビット被演算子がレジスタファイル２０ａからバス３８ａ経由で、またはレジスタファイル２０ｂからバス２１０経由で得られるように接続されている。Ｍｕｘ２１２は入力ｓｒｃ２に、３２ビット被演算子がレジスタファイル２０ａからバス３８ａ経由で、またはレジスタファイル２０ｂからバス２１０経由で得られるように接続されている。ＡＬＵユニットＬ２  １８ｂはユニットＬ１  １８ａと同様に演算を行う。
【００３５】
ＡＬＵ／シフトユニットＳ１  １６ａは下記の型式の演算を実行する：３２ビット算術演算；３２／４０ビットシフトおよび３２ビットビット単位演算；３２ビット論理演算；分岐；及び定数発生。ＡＬＵ  Ｓ１  １６ａは３２ビット発信元被演算子用入力ｓｒｃ１と３２ビット発信元被演算子用入力ｓｒｃ２とを有する。入力ｍｓｂ＿ｄｓｔは８ビット値であって４０ビット発信元被演算子を形成するために使用される。ＡＬＵ  Ｌ１  １６ａは３２ビット宛先被演算子用の出力ｄｓｔを有する。出力ｍｓｂ＿ｄｓｔは８ビット値であって、４０ビット宛先被演算子を形成するために使用される。Ｍｕｘ２１３は入力ｓｒｃ２に、３２ビット被演算子がレジスタファイル２０ａからバス３８ａ経由で、またはレジスタファイル２０ｂからバス２１０経由で得られるように接続されている。ＡＬＵユニットＬ２  １６ｂはユニットＬ１  １６ａと同様に演算を行うが、更に制御レジスタファイル１０２との間でレジスタ転送を行える。
【００３６】
掛け算器Ｍ１  １４ａは１６掛ける１６の掛け算を実行する。掛け算器Ｍ１  １４ａは３２ビット発信元被演算子用入力ｓｒｃ１と、３２ビット発信元被演算子用入力ｓｒｃ２とを有する。掛け算器Ｍ１  １４ａは３２ビット宛先被演算子用出力ｄｓｔを有する。Ｍｕｘ２１４は入力ｓｒｃ２に、３２ビット被演算子がレジスタファイル２０ａからバス３４ａ経由で、またはレジスタファイル２０ｂからバス２１０経由で得られるように接続されている。掛け算器Ｍ２  １４ｂは掛け算器Ｍ１  １４ａと同様に演算を行う。
【００３７】
図３Ａおよび図３Ｂは図１Ａのマイクロプロセッサ用の２つのメモリマップを示す。このメモリはバイト単位でアドレス指定が可能であり、その全アドレス範囲は４Ｇバイト（３２ビット内部アドレスに相当する）である。メモリマップは内部プログラムメモリ２３，内部データメモリ２２および３つの外部メモリ空間と内部周辺機器空間に分割されている。内部メモリの区間はホストポートインタフェース（ＨＰＩ）６０でアクセス可能である。
【００３８】
内部メモリは５１２ｋバイトのオンチッププログラム／キャッシュメモリ２３と５１２ｋバイトのオンチップデータメモリ２２とで構成される。キャッシュまたはプログラムとして構成可能なプログラムメモリは２５６ビット命令フェッチパケットの２ｋの中に構成されている。ＣＰＵ１０は１つのフェッチパケットの全ての命令を一度にフェッチする。パケットは最大８つの３２ビット命令をＣＰＵサイクル毎に、または最小１命令を１サイクル毎に処理する。バイトデータメモリはＣＰＵによってバイト単位でアドレス指定が可能であり（読み取りと同様書き込みも）、バイト単位、二分の一ワード単位およびワード単位での転送を支援する。
【００３９】
ＣＰＵ１０またはＤＭＡ１００による全ての外部データアクセスは、外部メモリインタフェース（ＥＭＩＦ）１０３を通る（図１ｃ参照）。外部メモリは３つの空間−ＣＥ０，ＣＥ１およびＣＥ２に分割されている。各々はチップ可能化信号を有し、これは対応する空間との間で相互にデータアクセスが行われている間オンとなる。各々の外部空間には別々の内部周辺バスレジスタが割り当てられていて、これは非同期メモリにアクセスする際に、読み取り／書き込みサイクルの形状を決定する。
【００４０】
非同期メモリに加えて、ＣＥ０およびＣＥ２空間はまたその他の型式のメモリとインタフェースする事ができる。ＳＢＳＲＡＭまたはＳＤＲＡＭメモリをこれら２つの空間に割り当てることができるが、それはリセット７６中に信号グループＣＥ０＿ＴＹＰＥおよびＣＥ２＿ＴＹＰＥ（ピンＤＣ２−ＤＣ５）上の信号レベルを制御する事で実施される。
【００４１】
外部メモリ空間ＣＥ１は非同期メモリに対してのみインタフェースすることが出来る。しかしながら空間ＣＥ０およびＣＥ２が常に３２ビット幅であるのに対して、ＣＥ１メモリ空間は信号グループＣＥ１＿ＷＩＤＴＨピン上の信号レベルを制御することにより８または１６ビットに構成することも出来る。ＥＭＩＦは読み取りサイクルの間に自動的にバイトおよび二分の一ワードをワード単位にパックする、この機能は典型的に８−または１６−ビットＥＰＲＯＭからブートする際に使用される。このＣＥ１メモリ空間はＲＯＭインタフェース用に使用できるが、それはＲＯＭサイクルが非同期ＳＲＡＭ読み取りサイクルに類似しているためである。ＣＥ１空間は８−ビットまたは１６−ビット幅の読み取りサイクルのみを許している外部メモリ空間であるので、全ての外部メモリ空間からの読み取りサイクルは３２ビット幅外部メモリからのバイトまたは二分の一ワードサイズデータとしてアクセス出来ることに注意されたい。ＥＭＩＦデータ書き込みサイクルはバイト、二分の一ワードまたはワード単位で同様に外部メモリに転送可能であり、これはバイト選択用ＢＥ＿制御信号を用いて行われる。データ読み取りサイクルは常に全４バイトをラッチし（４つ全てのＢＥがアクティブ）、続いてＣＰＵはもしもデータサイズが３２ビット未満の場合は適切なバイトを内部的に抽出する。プログラムメモリ制御装置１０４またはＤＭＡ１００／１０１で要求されたＥＭＩＦ書き込みは常に３２ビット幅であって、これはデータメモリ制御装置１０５で開始された８−、１６−、または３２ビット転送とは異なっている。
【００４２】
キャッシュ
概要
図４に示されるように、プログラムメモリ制御装置は：
内部プログラムメモリに対してＣＰＵ及びＤＭＡ要求と、必要な調停とを実行する、
外部メモリインタフェース（ＥＭＩＦ）を通して、外部メモリにＣＰＵ要求を実行する、
キャッシュとして構成されている場合に内部プログラムメモリを管理する。
【００４３】
内部プログラムメモリ
内部プログラムメモリは６４ｋバイトのＲＡＭを含む。このメモリは２ｋの２５６ビットフェッチパケットを含むことが出来て、これは１６ｋ３２ビット命令と等価である。ＣＰＵプログラムメモリ制御装置を通して内部プログラムメモリに対して単一サイクルで２５６ビット幅のスループットを有する。
【００４４】
【表１】
0004285803.tif 000002
【００４５】
内部プログラムメモリは表１に示されるように、ＣＰＵ制御並びに状態レジスタ内のプログラムキャッシュ制御（ＰＣＣ）フィールド（ビット７−−５）で選択された４つのモードで使用することが出来る。これらのモードとは：
１）写像：選択されたメモリマップに応じて、プログラムメモリはいずれかのアドレスに配置される：
マップ１内の００００００００−００００ＦＦＦＦ
マップ０内の０１４０００００−０１４０ＦＦＦＦ
どの様にメモリ写像を選択するかに際してブート構成、リセット、およびメモリマップを参照する。このモードに於いて、プログラムは内部メモリアドレス範囲に対してそのアドレスのフェッチパケットをフェッチする。いずれのキャッシュモードに於いても、このアドレス範囲へのＣＰＵアクセスは全てＮＯＰを含むフェッチパケットを戻す。写像モードはリセット時の内部プログラムメモリのデフォルト状態である。
２）可能：キャッシュ可能モードに於いて、あるアドレスに対しての最初のプログラムフェッチはキャッシュ不成功を引き起こす。キャッシュ不成功に際して、フェッチパケットは外部メモリインタフェース（ＥＭＩＦ）からロードされ、同時に内部キャッシュメモリ−３２ビット命令の中に格納される。フェッチパケット内の８つ全ての命令が受信されると、これはＣＰＵへ送られて実行される。この期間中ＣＰＵはそっくりそのまま停止されている。待ち状態を被る回数は外部メモリの型式、そのメモリ状態、およびＤＭＡまたはＣＰＵデータアクセスの様なその他の要求とＥＭＩＦとのぶつかり合いに依存する。キャッシュされたアドレスからのその後の全ての読み取りは、キャッシュヒットとなりそのフェッチパケットは待ち状態を受けずにＣＰＵに送られる。プログラムメモリモードからキャッシュ可能モードへの変更に際して、プログラムキャッシュはフラッシュされる。このモード変遷のみがキャッシュをフラッシュする唯一の手段である。
３）凍結：キャッシュ凍結期間中、キャッシュはその現在の状態を保持する。凍結されたキャッシュへのプログラム読み取りは、可能化されたキャッシュへの読み取りと同一であるが、キャッシュ不成功時に外部メモリインタフェースから行われるデータ読み取りがキャッシュの中に格納されない点が異なる。その同一アドレスからの後続の読み取りもまたキャッシュ不成功となり、そのデータは再び外部メモリからフェッチされる。キャッシュ凍結は重要なプログラムデータがキャッシュの中に上書きされることを防止する。
４）バイパス：キャッシュがバイパスされると、全てのプログラム読み取りは外部メモリからデータをフェッチする事になる。このデータはキャッシュメモリの中には格納されない。キャッシュ凍結と同様、キャッシュバイパスではキャッシュはその状態を保持する。このモードは必ず外部プログラムデータがフェッチされることを保証する。
【００４６】
キャッシュ構造
キャッシュの構造は直接写像される。６４ｋバイトキャッシュは２１ｋフェッチパケット、従って２ｋフレームを含む。（キャッシュ用語の中でブロックまたはラインという用語がフレームと同じ意味で使用される。）キャッシュまたはフレームサイズの幅は２５６ビットである。キャッシュ内の各フレームは１フェッチパケットである。
【００４７】
ＣＰＵアドレスのキャッシュ使用例
図２−３はキャッシュがＣＰＵからフェッチパケットアドレスを使用する方法を示す：
５ビットフェッチパケットアラインメント：アドレスの下位５ビットはゼロと見なされるが、これは全てのプログラムフェッチ要求がフェッチパケット境界（８ワードまたは３２バイト）上に並んでいるためである。
１１ビットタグブロックオフセット：キャッシュは直接写像されるために、任意の外部アドレスは唯１つの２ｋフレームに写像する。６４ｋバイトアドレスの偶数倍である任意の２つのフェッチパケットは写像マップを同一フレームに分離する。従ってＣＰＵアドレスのビット１５：５は１１ビットブロックオフセットを生成し、これは任意の個別のフェッチパケットをどの２ｋフレームに写像するかを決定する。
１０ビットタグ：キャッシュは最大外部アドレス空間を６４Ｍバイト（００００００００から０３ＦＦＦＦＦＦＦ）と仮定している。従ってビット２５：１６はタグに対応し、これは外部メモリ空間内でのフェッチパケットの元の位置を決定する。このキャッシュは別の２ｋｘ１１タグＲＡＭを有し、これは全てのタグを有している。このＲＡＭは１０ビットタグに加えてキャッシュフラッシュの中で使用される有効ビットを含む。
【００４８】
キャッシュフラッシュ
タグＲＡＭ内で検出された有効ビットはキャッシュフレームの内容が有効データであるか否かを示す。キャッシュフラッシュ中にこれらの有効ビットは消去されていずれのキャッシュフレームも有効データを持たないことが示される。キャッシュフラッシュはキャッシュが写像モードからキャッシュ可能モードに遷移する際にのみ生じる。
【００４９】
フレーム置換
キャッシュ不成功が検出されるのは、ＣＰＵで要求されたフェッチパケットアドレスのブロックオフセットに対応するタグがフェッチパケットアドレスのビット２５：１６に対応しない時か、またはそのロケーションの有効ビットが消去された場合である。可能化状態の場合は、キャッシュはフェッチパケットを対応するフレームの中にロードし、有効ビットをセットし、タグを要求されたアドレスのビット２５：１６にセットし、そして全ての８命令が利用できるようになった後にこのフェッチパケットをＣＰＵに送り出す。
【００５０】
プログラムメモリへのＤＭＡアクセス
ＤＭＡは写像モードが構成されている際に内部プログラムメモリに対して読み取り及び書き込みを行うことが出来る。ＣＰＵとＤＭＡとの間の優先順位はＤＭＡチャンネル要求のＰＲＩビットで指定される。もしもＤＭＡが高位の優先順位を与えられている場合（ＰＲＩ＝１）、ＣＰＵはＤＭＡがその全ての要求を完了するまで待たされる。ＣＰＵに優先順位がある場合は、ＤＭＡアクセスはＣＰＵが要求を停止するまで延期される。キャッシュモードでは、ＤＭＡ書き込みはプログラムメモリ制御装置により無視される。キャッシュモードでは、読み取りは不定値で戻される。キャッシュモードではＤＭＡ読み取り並びに書き込みの両方に対して、ＤＭＡはその要求が完了したことの通知を受ける。リセットされるとプログラムメモリシステムは写像モードとなる。この機能によりＤＭＡがブートロードコードを内部プログラムメモリの中に入れることが可能になる。ブートロードコードの更に詳細な情報に関しては、ブート構成、リセット、メモリマップを参照されたい。
【００５１】
データ
概要
図４に示されるように、データメモリ制御装置は下記を接続する：
ＣＰＵと直接メモリアクセス制御装置（ＤＭＡ）とを内部データメモリに接続し必要な調停を行う。
ＣＰＵを外部メモリインタフェース（ＥＭＩＦ）に接続する。
ＣＰＵを周辺機器バス制御装置を通してオンチップ周辺機器に接続する。
【００５２】
周辺機器バス制御装置はオンチップ周辺機器に対する、ＣＰＵとＤＭＡとの間の調停を実施する。
【００５３】
データメモリアクセス
データメモリ制御装置は内部メモリに対する全ての要求と、同様に全てのＣＰＵデータ要求に対するサービスを行う。図６はデータの流れ方向と同時にモジュール間のマスタ（要求側）とスレーブ（資源側）との関係を示す：
下記に対するＣＰＵ要求データ読み取りおよび書き込み：
１．内部データメモリ。
２．周辺機器バス制御装置を通してオンチップ周辺機器。
３．ＥＭＩＦ。
内部データメモリに対するＤＭＡ要求読み取り及び書き込み。
ＣＰＵは要求をデータメモリ制御装置に対して２つのアドレスバス（ＤＡ１およびＤＡ２）を通して送る。格納データはＣＰＵデータ格納バス（ＳＴ１およびＳＴ２）を通して送信される。ロードデータはＣＰＵロードバス（ＬＤ１およびＬＤ２）を通して受信される。ＣＰＵデータ要求は内部データメモリ、内部周辺機器空間のいずれかのアドレスに基づいて、周辺機器バス制御装置、または外部メモリインタフェースを通して写像される。データメモリ制御装置はまた、ＤＭＡを内部データメモリに接続し、オンチップデータＲＡＭに関してＣＰＵ／ＤＭＡ調停を実施する。
【００５４】
内部データメモリ構成
アドレス80000000から8000FFFFに配置されている内部データＲＡＭの６４ｋバイトは１６ビット半ワードで構成された８ｋブロックからなる４ブロックとして構成される。これらのブロックは各々のブロックが後続の半ワードを含む１６ビットデータ上のインタリーブの中に構成される。このインタリーブにより２つのデータポートとＤＭＡが近隣の１６ビットデータの読み取りを資源の競合をすることなく行うことが出来る。
【００５５】
【表２】
0004285803.tif 000003
【００５６】
データ整列
ＣＰＵおよびＤＭＡは共に８ビットバイト、１６ビット半ワード、および３２ビットワードの読み取り並びに書き込みが出来る。データメモリ制御装置は２つのＣＰＵの間で、各々の１６ビットブロックに基づいて独立に調停を行う。下記のデータ配列制約が存在する：
ワード：ワードは偶数４バイト境界（ワード境界）上に整列されている。ワードは常に最下位の２ビットが０のバイトアドレスで開始される。ワードアクセスは２つの隣接した１６ビット幅ブロックを必要とする。
半ワード：半ワードは偶数の２バイト境界（半ワード境界）上に整列されている。半ワードは常に最下位ビットが０であるバイトアドレスから開始される。
半ワードは単一１６ビット幅ブロックを必要とする。
バイト：バイトアドレスに関しては整列上の制約は存在しない。１６ビット幅ブロックに対して調停は実施されるが、そのブロックはバイト幅アクセスをサポートするために依然としてバイト可能状態を有する。しかしながら、バイトアクセスはバイトアドレス写像を行うために全部で１６ブロックを必要とする。
【００５７】
内部メモリに対する二重化ＣＰＵアクセス
（ＣＰＵクロックはＣＰＵ入力クロック（ＣＬＫＯＵＴ１）の１つの周期を参照する。（装置入力クロックでは無い。）ＣＰＵサイクルは１つのＣＰＵ処理パイプライン位相を参照している。実行パケット内の全ての命令は１つのＣＰＵサイクル内の１つのパイプライン位相を通して進行する。しかしながら、ＣＰＵサイクルはメモリ区切りによって複数のＣＰＵクロックに拡張される。ＣＰＵサイクルの複数のＣＰＵクロックへの拡張は、待ち状態として知られている。）
【００５８】
インタリーブされたメモリ構成により、２つのＣＰＵが同時にメモリアクセスを行える。１つのＣＰＵサイクルの中で、２つの異なる内部メモリブロックへ同時に２つのアクセスが待ち状態無しで発生する。同一の内部メモリブロックへの２つの同時アクセスは１つのＣＰＵクロックに対して全ＣＰＵパイプラインを区切り、２つのアクセスを２つのＣＰＵクロックの中に提供する。これらの規則はアクセスがロードであるか格納であるかにかかわらず適用される。同一の実行パケットからのロードおよび格納は、同一ＣＰＵサイクル中にデータメモリ制御装置で監視される。将来または過去のＣＰＵサイクルからのロードおよび格納は、現在のサイクルでのデータメモリアクセスに対して待ちを生じることは無い。従って、内部データメモリアクセスは同一の１６ビット幅ブロックへ同一フェッチパケットアクセス内の命令の間で競合が生じた場合にのみ待ち状態を発生させる。この状態は内部メモリ競合と呼ばれる。此処でデータメモリ制御装置はＣＰＵをべつの追加のＣＰＵクロックに切り出し、アクセスを順に並べ、各々のアクセスを別々に実行する。２つのアクセスの優先順位を付ける際に、全てのロードが全ての格納アクセスより前に生じる。もしも両方のアクセスが共にロードであるかまたは共に格納の場合、ＤＡ１からのアクセスがＤＡ２からのアクセスよりも前に行われる。表３はＣＰＵが２つのデータアクセス（ＤＡ１およびＤＡ２上で）を行った際に、どの様なアクセス条件が内部メモリ競合を与えるかを示している。
【００５９】
【表３】
0004285803.tif 000004
【００６０】
内部メモリへのＤＭＡアクセス
もしも内部メモリへのＤＭＡアクセスが全てのＣＰＵアクセスで使用されているものと同一の１６ビットバンクを要求しない場合は、このＤＭＡ操作はバックグラウンドで行われる。表３はＤＭＡとＣＰＵとの競合を判別するために使用される。ひとつの軸がＤＭＡアクセスを表し、もう一方が１つのＣＰＵデータポートからのＣＰＵアクセスを表すと仮定している。続いて、この分析をもう一つのデータポートに対しても実施する。もしも両方の比較で競合が生じない場合は、ＣＰＵ／ＤＭＡ内部メモリ競合が存在しないことになる。ここで、ＣＰＵアクセスおよびＤＭＡアクセスは互いにバックグラウンドで行われる。もしも比較の結果競合が生じる場合は、ＣＰＵ／ＤＭＡ内部メモリ競合が存在する。この場合、後ほど説明するように優先順位がＤＭＡチャンネルのＰＲＩビットから解読される。もしもＤＭＡチャンネルがＣＰＵよりも高い優先順位として構成されている場合は（ＰＲＩ＝１）、全てのＣＰＵアクセスはＤＭＡアクセスが完了するまで延期され、全てのＣＰＵは１ＣＰＵクロックの間待ち状態を被る。もしも両方のＣＰＵポートとＤＭＡとが同一メモリブロックにアクセスする場合、待ち状態の数は２に増える。もしもＣＰＵで要求されているブロックに対してＤＭＡが複数の連続した要求を持っている場合、このＣＰＵは必要なブロックに対する全てのＤＭＡアクセスが完了するまで待機させられる。この反対に、もしもＣＰＵがより高い優先順位にある場合は（ＰＲＩ＝０）、両方のＣＰＵデータポートがそのブロックへのアクセスを終了するまでＤＭＡアクセスは延期される。
【００６１】
データエンディアン性
バイトアドレス指定可能マイクロプロセッサ内のデータ順列方法に２つの基準が存在する：
小エンディアン
大エンディアン、である。
【００６２】
ＣＰＵおよびＤＭＡはプログラム可能なエンディアン性をサポートしている。このエンディアン性は装置のLENDIAN （小エンディアン）ピンで選択される。LENDIAN=1 およびLENDIAN=0 はそれぞれ小エンディアンおよび大エンディアンを選択する。この選択はＣＰＵおよびＤＭＡの両方に適用される。メモリ内に存在するワードおよび半ワードデータ内のバイト順列方法は小エンディアンおよび大エンディアンデータと同一である。表４はメモリ内のデータワードのどのビットが宛先レジスタのどのビットの中にロードされるかを、全ての考えられる大または小エンディアンデータからのＣＰＵデータロードに対して示している。メモリ内のデータは第１列内のＬＤＷ命令から結果としてレジスタの中に入れられたものと同一データと仮定している。表５はレジスタのどのビットが宛先メモリワードのどのビットの中にストアされるかを、大および小エンディアンデータからの全ての考えられるＣＰＵデータストアに対して示している。発信元レジスタ内のデータは、第一列内のＳＴＷ命令から結果としてメモリの中に入れられたものと同一データと仮定している。
【００６３】
【表４】
0004285803.tif 000005
【００６４】
【表５】
0004285803.tif 000006
【００６５】
周辺機器バス
此処に説明されている周辺機器はＣＰＵおよびＤＭＡにより制御レジスタのアクセスを通して制御されている。ＣＰＵおよびＤＭＡはこれらのレジスタに周辺機器データバスを通してアクセスする。ＤＭＡは周辺機器バス制御装置に直接アクセスするのに対し、ＣＰＵはデータメモリ制御装置を通してアクセスする。
【００６６】
バイトおよび半ワードアクセス
周辺機器バス制御装置は全ての周辺機器バスアクセスをワードアクセスに変換する。しかしながら、読み取りアクセスに際してはＣＰＵおよびＤＭＡは両者ともワードの正しい部分を抽出し、バイト並びに半ワードアクセスを適切に実施することが出来る。しかしながらどのバイトが読みとられるかに係わらず、周辺機器制御レジスタ読み込みによる副次的な影響は生じる。これとは反対に、バイトまたは半ワード書き込みはＣＰＵおよびＤＭＡは正しい値のみを可能化されたバイトの中に提供するように実行される。正しいことが保証されている値が表５に示されている。従って未定義の結果は可能化されていないバイトに書き込まれるはずである。もしも使用者が可能化されていないバイト内の値に関心を持たない場合はこれは許容出来る。そうでない場合は、周辺機器レジスタにワードアクセスを用いてアクセスすべきである。
【００６７】
【表６】
0004285803.tif 000007
【００６８】
ＣＰＵ待ち状態
ＣＰＵからの独立した周辺機器バス制御装置アクセスは４つのＣＰＵ待ち状態を生じる。これらの待ち状態はパイプラインレジスタがＣＰＵと周辺機器との間のオンチップ上の距離を横切る経路を遮断し、また同様に調停時間を確保できるようにするために挿入されている。連続したアクセスでは、最初のアクセスのみが３つのＣＰＵ待ち状態を必要とするが、これは周辺機器バス制御装置へのデータメモリ制御装置のインタフェースのパイプライン化された性質のためである。
【００６９】
ＣＰＵ／ＤＭＡ調停
図４に示されるように、周辺機器バス制御装置はＣＰＵおよびＤＭＡの機能に関してこれらの間の調停を実施する。内部データアクセスと同様、ＤＭＡ内のＰＲＩビットがＣＰＵとＤＭＡ間の優先順位を決定する。もしもＣＰＵの間で競合が生じると（データメモリ制御装置経由で）優先順位の低い方は優先順位の高い方が周辺機器バス制御装置に対する全てのアクセスを完了するまで待機させられる。周辺機器バスはあたかも単一資源であるかのように調停されるので、優先順位の低い資源は優先順位の高い方がアクセスしているものだけではなく全ての周辺機器に対するアクセスを阻止される。
【００７０】
図４を参照すると、これはＤＭＡ制御装置１４３のブロック図であってマイクロプロセッサ１のメモリ写像されたモジュールと相互接続されている。直接メモリアクセス（ＤＭＡ）制御装置１４３はメモリマップ内のポイント間でＣＰＵの仲介を受けずにデータ転送を行う。ＤＭＡはデータの移動を内部メモリ、内部周辺機器、または外部装置相互の間で、ＣＰＵ動作のバックグラウンドの中で行うことが出来る。ＤＭＡは４つの独立したプログラム可能チャンネルを有し、ＤＭＡ動作に関して４つの異なる環境を用意できる。各々のＤＭＡチャンネルは異なる大きさ：８ビットバイト、１６ビット半ワード、または３２ビットワードのデータ要素を転送するように独立に構成することが出来る。これに加えて第五番目（オプション）チャンネルは、例えばホストポートインタフェースの様なアドレス生成能力を具備した周辺機器からのサービス要求に対応出来るようにしている。ＤＭＡ動作を説明するに当たっていくつか重要な用語がある：
【００７１】
読み取り転送：ＤＭＡはメモリ内の発信元位置からデータ要素を読み取る。
【００７２】
書き込み転送：ＤＭＡは読み取り転送の間に読み取られたデータ要素をメモリ内の宛先位置に書き込む。
【００７３】
要素転送：単一データ要素に対する読み取りおよび書き込み転送の組み合わせ。
【００７４】
フレーム転送：各ＤＭＡチャンネルはフレーム毎に独立してプログラム可能な要素数を有する。フレーム転送が完了するとＤＭＡは単一フレーム内の全ての要素を移動する。
【００７５】
ブロック転送：各ＤＭＡチャンネルはまたブロック毎に独立してプログラム可能なフレーム数を有する。ブロック転送が完了するとＤＭＡは移動するようにプログラムされた全てのフレームを移動する。
【００７６】
ＤＭＡ１４３は下記の機能を有し、その各々を以下の段落で説明する：
１）バックグラウンド動作：ＤＭＡはＣＰＵとは独立に動作する。
２）高スループット：要素はＣＰＵクロック速度で転送される。
３）４チャンネル：ＤＭＡは４つの独立したブロック転送の内容を追跡できる。
４）補助チャンネル：このチャンネルはホストポート１５０の様なアドレス生成能力を具備した周辺機器がＣＰＵメモリ空間の中へ要求を行えるようにしている。
５）スプリット動作：単一のチャンネルを使用して周辺機器に対する受信並びに送信転送の両方を、コストを追加することなく２つのＤＭＡチャンネルの如く効果的に実施することが出来る。
６）多重フレーム転送：各々のブロック転送は固定されたプログラム可能な大きさの多重フレームで構成することが出来る。
７）プログラム可能優先順位：各々のチャンネルはＣＰＵのメモリ写像された資源に対して、独立にプログラム可能な優先順位を有する。
８）プログラム可能アドレス生成：各チャンネルの発信元ならびに宛先アドレスレジスタは、それぞれ各読み取りおよび書き込み転送に際してメモリを通して構成可能な指標を持つことが出来る。アドレスは一定に保持されるか、増加更新、減数更新されるか、またはプログラム可能な値によって調整される。このプログラム可能な値はフレームの最後の転送に対してと、先の転送に対してと異なる指標を持つことが出来る。
９）全アドレス３２ビットアドレス範囲：ＤＭＡはメモリマップ内の任意のポイントにアクセスできる（図３Ａ−３Ｂ参照）：
ａ）オンチップデータメモリ。
ｂ）オンチッププログラムメモリ、これはキャッシュとして利用されるよりもむしろメモリ空間内に写像される場合である。
ｃ）オンチップ周辺機器。
ｄ）外部メモリインタフェース（ＥＭＩＦ）。
ｅ）プログラム可能幅転送：各々のチャンネルは８ビットバイト、１６ビット半ワード、または３２ビットワードのいずれかを転送するように独立に構成することが出来る。
ｆ）自動初期化：ひとたびブロック転送が完了すると、ＤＭＡチャンネルは自動的に自分自身を初期化して次のブロック転送に備える。
ｇ）事象同期：各々の読み取り、書き込み、またはフレーム転送は選択された事象によって開始される。
ｈ）割り込み発生：各々のフレーム転送が完了するか、または全ブロック転送また同様に種々のエラー条件に応じて、各ＤＭＡチャンネルは割り込みをＣＰＵに送る。
【００７７】
ＤＭＡ１４３はいくつかのメモリ写像された制御レジスタにより制御並びに構成される。表７および表８はＤＭＡ制御レジスタがＣＰＵ１０のメモリ空間に中に写像される様子を示している。これらのレジスタはＤＭＡグローバル制御およびデータレジスタと、同様に各チャンネル用の多数の独立した制御レジスタを含む。このＤＭＡグローバルデータレジスタはチャンネルで選択された種々の機能に対して使用可能であり、これは表９に記述されている。図７はＤＭＡグローバルデータレジスタを図示する。
【００７８】
【表７】
0004285803.tif 000008
【００７９】
【表８】
0004285803.tif 000009
【００８０】
【表９】
0004285803.tif 000010
【００８１】
ＤＭＡチャンネル制御レジスタが図８および図９に図示されている。ＤＭＡチャンネル一次（図８）および二次制御レジスタ（図９）はビットフィールドを含み、これは各々個別のＤＭＡチャンネルを独立して制御する。これらのフィールドはそれぞれ表１０および表１１に説明されている。
【００８２】
【表１０】
0004285803.tif 000011
【表１１】
0004285803.tif 000012
【００８３】
【表１２】
0004285803.tif 000013
【００８４】
再び図３Ａ−３Ｂを参照すると、メモリマップに関してＤＭを使用する際の特徴が詳細に説明されている。要求は４つの資源の１つに送られる：
１）外部メモリインタフェース
２）内部プログラムＲＡＭ
３）内部周辺機器バス
４）内部データＲＡＭ
【００８５】
発信元および宛先はブロック転送の最初に計算される。従って、発信元アドレスはブロック転送を通してこれら４つの空間の同じ１つを指すものと仮定される。この制約はまた宛先アドレスにも適用される。
【００８６】
各々のＤＭＡチャンネルは直接ＣＰＵアクセスを通しての手動、または自動初期化のいずれかにより、独立に開始されるはずである。加えて、各ＤＭＡチャンネルは直接ＣＰＵアクセスを通して独立に停止または中断される。
【００８７】
手動開始動作：特定のチャンネルに対してＤＭＡ動作を開始するために、一度全てのその他のＤＭＡ制御レジスタにはそれらの必要な値が書き込まれる、ＤＭＡ制御レジスタはその必要な値としてSTART=01b が書き込まれなければならない。この値を既に開始されているＤＭＡチャンネルに書き込んでも何の影響も生じない。
【００８８】
中断動作：一度開始された後は、ＤＭＡチャンネルはSTART=10b を書き込むことで中断される。中断時には、全ての書き込み転送と読み取り転送要求が完了している要素の転送を完了する。また、もしもＤＭＡチャンネルが全て必要な読み取り同期を有する場合は、完了するためにもう一つの要素の追加要素転送が許可される。中断されると、STATUS上の値は10b である。
【００８９】
停止動作：ＤＭＡはまたSTART=00b を書き込むことで停止される。此処で、ＤＭＡは直ちに停止し、読み取り転送を完了した事で内部的に保持している全てのデータを廃棄する。ＤＭＡチャンネルの実際の状態はＤＭＡチャンネル制御レジスタ内のSTART フィールドを読み取ることで監視出来る。ＤＭＡ転送が完了すると、自動初期化が可能状態であればＤＭＡチャンネルは停止状態に戻りSTATUS=00bとなる。
【００９０】
次に自動初期化を説明する。ＤＭＡはブロック転送が完了した後自動的に自身を再初期化することが出来る。いくつかのＤＭＡ制御チャンネルは再ロードレジスタを通して次のブロック転送に備えて事前ロードされることが可能である。選択されたＤＭＡグローバルデータレジスタは再ロードレジスタのように動作する。この機能を用いてＤＭＡチャンネルのいくつかのパラメータを次のブロック転送に先だって都合よくセット出来る。自動初期化は次の事が出来る：
【００９１】
連続動作：連続動作はＣＰＵに対して長いゆっくりとした時間を与え、この間にＤＭＡを再構築して後続の転送に備えることが出来る。通常、ＣＰＵは現在のブロック転送中の最後の書き込み転送が完了して次のブロック転送の最初の読み取り同期化を行う前に、直ちにＤＭＡを再初期化しようとする。一般的に再ロードレジスタによって、これらの値を次のブロック転送に備えて現在のブロック転送が開始した後、いつでも再初期化することが可能である。
【００９２】
繰り返し動作：連続動作の１つの特別な事例として、ブロック転送が完了した後ＤＭＡが先のブロック転送を繰り返す場合がある。この場合、ＣＰＵは各々のブロック転送用に再ロードレジスタに新たな値を事前ロードすることは無い。その代わりに、第一ブロック転送に際してロードするだけである。
【００９３】
自動初期化可能化：ＤＭＡチャンネル制御レジスタ内に、START=11b を書き込むことにより、自動初期化が可能となる。この場合、ブロック転送が完了した後、ＤＭＡチャンネルは再開始され、選択されたＤＭＡチャンネルレジスタに再ロードされる。もしも中断後の再開始の場合は、このSTART は自動初期化を可能とするために01b を再書き込みされなければならない。
【００９４】
次にＤＭＡチャンネル再ロードレジスタの装置を説明する。自動初期化に関して、後続のブロック転送は同様であると仮定する。従って、再ロード値はブロック転送中に修正されたこれらのレジスタ：転送カウンタおよびアドレスレジスタ、に対してのみ選択可能である。従って、ＤＭＡチャンネル転送カウンタ、また同様にＤＭＡチャンネル発信元および宛先レジスタは関連する再ロードレジスタを有し、これはＤＭＡチャンネル一次制御レジスタ（表１０）内の関連するRELOADフィールドとして選択されたものとして有する。この再ロードレジスタは個別のＤＭＡグローバルデータレジスタ内に格納される。
【００９５】
自動初期化モード中に発信元または宛先アドレスレジスタを再ロードしないことが可能であることに注意されたい。この機能によりブロック転送中に変化しないレジスタの値を保持することが出来る。従って、ＤＭＡグローバルデータレジスタはブロック転送中に一定であった値に専用である必要はない。単一チャンネルが複数のチャンネルレジスタに対して同一の値を使用できる。例えば、スプリットモードに於いて、発信元および宛先アドレスは同じはずである。同様に、多重チャンネルは同一再ロード値を使用するはずである。例えば、２つのチャンネルは同一の転送計数再ロード値を有するはずである。
【００９６】
ブロック転送が完了すると、これらのレジスタは関連する再ロードレジスタで再ロードされる。ＤＭＡチャンネル転送カウンタレジスタの場合、再ロードは全ブロック転送の終了直後では無く、各々のフレーム転送の終了後に発生することに注意されたい。ＤＭＡチャンネル転送カウンタへの再ロード値は、自動初期化が可能化された時ではなく、多重フレーム転送が構築された際にいつでも必要である。
【００９７】
先に説明したように、ＤＭＡは読み取り転送を書き込み転送が行われる前に実施し、この機能を容易にするために必要なバッファリングを提供出来る。これを支援するために、ブロックおよびフレーム終了時に必要な再ロードは、ＤＭＡチャンネルの読み取り（発信元）および書き込み（宛先）部分とは独立に発生する。同様に、スプリットチャンネル動作の場合は後ほど説明するように、発信元および宛先アドレスは独立に再ロードされるが、これは関連する要素転送送信または受信がそれぞれブロック転送を完了した時点で行われる。
【００９８】
ＤＭＡチャンネル転送カウンタ再ロードは、使用者により現在のブロック転送の最後のフレームが完了した後に続いて再書き込みされる。そうしないと、新たな再ロード値が現在のブロック転送の後続のフレーム境界に影響を与えてしまう。しかしながら、もしもフレームサイズが現行および次回ブロック転送で同じ場合は、この制約は問題とはならない。ＤＭＡチャンネル転送カウンタの完全な説明を次の段落で行う。
【００９９】
図１０はＤＭＡチャンネル転送カウンタを図示する。ＤＭＡチャンネル転送カウンタは転送されるフレーム毎にフレームの数および要素の数を表すビットフィールドを含む。図１１はＤＭＡグローバルデータレジスタが転送カウンタ用の再ロード値として使用できるかを示している。
【０１００】
ＦＲＡＭＥ  ＣＯＵＮＴ：この符号無し１６ビット値はブロック転送内の全フレーム数を設定する。従ってもしもブロック転送が単一フレームを含む場合、この値はデフォルトの１に設定されなければならない。ブロック転送当たりの最大フレーム数は６５５３５である。このカウンタはフレーム転送の最後の読み取り転送が完了した時点で減数更新される。最後のフレームが転送されると、全カウンタにＤＭＡチャンネル一次制御レジスタ内のＣＮＴ  ＲＥＬＯＡＤフィールドで選択されたＤＭＡグローバルデータレジスタが再ロードされる。ＦＲＡＭＥ  ＣＯＵＮＴへの初期値０および１は同一の結果をもたらし、単一のフレームが転送されることに注意されたい。
【０１０１】
ＥＬＥＭＥＮＴ  ＣＯＵＮＴ：この符号無し１６ビット値はフレーム当たりの要素数を設定する。このカウンタは各要素の読み取り転送の後に減数更新される。フレーム転送毎の要素の最大数は６５５３５である。各フレーム内の最後の要素に達すると、ＥＬＥＭＥＮＴ  ＣＯＵＮＴはＤＭＡチャンネル一次制御レジスタ内のＣＮＴ  ＲＥＬＯＡＤフィールドで選択されたＤＭＡグローバルデータレジスタの最下位１６ビットが再ロードされる。この再ロードは自動初期化モードからは影響されない。ブロック転送が開始される前に、このカウンタ及び選択されたＤＭＡグローバルデータレジスタには同一の最下位１６ビットがロードされなければならない、これは最初および残りのフレームがフレーム毎に同一数の要素を確実に持つようにするためである。また複数フレーム転送に於いて、再ロード値が指定されなければならず、これは自動初期化が可能化された時に行われるのでは無い。もしも要素計数が０に初期化されると、動作は定義されない。
【０１０２】
次に同期について説明する。同期を取ることによりＤＭＡ転送のトリガをかけることが、内部周辺機器または外部ピンからの割り込みの様な事象により行える。各々のチャンネルに対して３種類の同期が可能である：
１）読み取り同期：各々の読み取り転送は実行する前に選択された事象が発生するまで待機する。
２）書き込み同期：各々の書き込み転送は実行する前に選択された事象が発生するまで待機する。
３）フレーム同期：各々のフレーム転送は実行する前に選択された事象が発生するまで待機する。
【０１０３】
同期事象の選択：事象はＤＭＡチャンネル一次制御レジスタ内のＲＳＹＮＣ及びＷＳＹＮＣフィールドで選択される。（図８）もしもこのレジスタ内でＦＳ＝１の場合は、ＲＳＹＮＣで選択された事象は全フレームを可能状態とする。３１事象まで可能である。もしもこれらのフィールドの値が０００００ｂに設定されると同期は不要である。この場合、読み取り、書き込みまたはフレーム転送は資源がそのチャンネルで使用できる状態になると直ちに行われる。これらのフィールド内の値と事象との間の関連が表１２に示されている。
【０１０４】
【表１３】
0004285803.tif 000014
【０１０５】
注：表１２の中で、ＭＣＳＰは多重チャンネルシリアルポート１２０を指しており、これは後ほど説明する。
【０１０６】
ＤＭＡチャンネル二次制御レジスタ（表１１）は読み取りおよび書き込み同期事象用にＳＴＡＴおよびＣＬＲフィールドを含む。
【０１０７】
ＤＭＡ同期事象のラッチ：選択された事象の非動作から動作状態への遷移が各々のＤＭＡチャンネルでラッチされる。この遷移が生じると関連するＳＴＡＴフィールドがＤＭＡチャンネル二次制御レジスタ内に設定される。もしも同期が選択されていない場合はＳＴＡＴビットの読み取りは常に１であることに注意されたい。また、単一の事象で複数の動作にトリガを掛けることが出来ることにも注意されたい。
【０１０８】
使用者による事象の消去並びに設定：ブロック転送が開始される前に懸案中の事象を消去する事により、ＤＭＡチャンネルは強制的に次の事象を待たされる。これとは反対に、ブロック転送が開始される前に事象を設定することにより、第一要素転送に必要な同期事象を強制的に実施することが出来る。事象（従って関連するＳＴＡＴビット）はそれぞれ対応するＣＬＲまたはＳＴＡＴ事象に１を書き込むことにより消去または設定される。これらのビットにゼロを書き込んでも何の影響も無いことに注意されたい。また、ＣＬＲビットの読み取りは常に０であって関連の格納場所を持たない。設定または消去用に別々のビットが用意されていて、別の部分を設定することなく或るビットを消去したり、またその反対が出来るようにしている。使用者が手動で行う事象は同時に自動で行われる全ての事象よりも高い優先順位を持つことに注意されたい。
【０１０９】
次に自動事象消去を説明する。各々の同期事象に対してラッチされたＳＴＡＴは、その事象に関連した動作が完了した時点でのみ消去される。事象の消去は可能な限り速やかに行われ、同期事象間の最小時間を短くしている。この機能は事象が認識される処理量を効果的に増大させる。同期の各種類の詳細な説明を以下に行う：
【０１１０】
読み取り同期条件の消去：読み取り同期用にラッチされた条件は、ＤＭＡが関連する読み取り転送要求を完了した時点で消去される。
【０１１１】
書き込み同期条件の消去：書き込み同期用にラッチされた条件は、ＤＭＡが関連する書き込み転送要求を完了した時点で消去される。
【０１１２】
フレーム同期条件の消去：フレーム同期はＤＭＡが新たなフレーム内で最初の読み取り転送要求を完了した時点でＲＳＹＮＣ  ＳＴＡＴフィールドを消去する。
【０１１３】
続いてアドレス生成を説明する。各々のチャンネルに対して、ＤＭＡは各読み取り転送および書き込み転送用にアドレス計算を実行する。ＤＭＡは種々のデータ構造を生成できる。例えば、ＤＭＡは第ｎ番目の要素を貫く配列を横切ることが出来る。また、別々の発信元から入力された１つのフレーム内で種々の要素を効率的に取り扱い、また各々の発信元からのデータを互いにグループとして纏めるようにプログラムすることが出来る。
【０１１４】
図１２および図１３はＤＭＡチャンネル発信元アドレスと宛先アドレスレジスタを図示し、これらはそれぞれ次の読み取り転送および書き込み転送用アドレスを保持している。
【０１１５】
図８に示されるように、ＳＲＣ  ＤＩＲおよびＤＳＴ  ＤＩＲフィールドはそれぞれＤＭＡチャンネル発信元および宛先アドレスレジスタを増加更新、減数更新したり、または影響を与えないように指標の設定を行える。デフォルトとして、これらの値は００ｂに設定されて、増加更新または減数更新が行われないようになっている。もしも増加更新または減数更新が可能状態となっていると、アドレス調整量はバイト単位の要素サイズとなる。例えば、もしも発信元アドレスが増加更新に設定され、また１６ビット半ワードが転送されるとすると、このアドレスは各々の読み取り転送の後２つづつ増加更新される。
【０１１６】
ＤＭＡチャンネル指標レジスタによるアドレス調整：表１０に示されるように、ＳＲＣ  ＤＩＲおよびＤＳＴ  ＤＩＲフィールドは、図１４に図示されるように独立に別々のＤＭＡグローバルデータレジスタを選択してアドレス調整量を決定することが出来る。別々のＤＭＡグローバルデータレジスタがＤＭＡチャンネル一次制御レジスタ内のＩＮＤＥＸフィールド経由で選択される。基本アドレス調整とは異なり、このモードはその要素転送が現行フレーム内で最後であるか否かに応じて異なる調整量を選ぶことを可能としている。通常調整値（ＥＬＥＭＥＮＴ  ＩＮＤＥＸ）は選択されたＤＭＡグローバルデータレジスタの最下位１６ビットの中に含まれている。フレームの最後に対する調整値（ＦＲＡＭＥ  ＩＮＤＥＸ）はＤＭＡグローバルデータレジスタの最上位１６ビットで決定される。これらのフィールドは共に１６ビット値を含む。従って、指標量は−３２７６８から３２７６７の範囲を取りうる。
【０１１７】
これらのフィールドは以下のようにアドレス調整を行う：
１）ＥＬＥＭＥＮＴ  ＩＮＤＥＸ：１つのフレームの最後の転送を除く全てに対し、ＥＬＥＭＥＮＴ  ＩＮＤＥＸは、ＤＭＡチャンネル発信元または宛先アドレスレジスタに対して、それぞれ各々の読み取りまたは書き込み転送の後にＳＲＣ  ＤＩＲまたはＤＳＴ  ＤＩＲフィールドで選択されたように加算される量を決定する。
２）ＦＲＡＭＥ  ＩＮＤＥＸ：もしも読み取りまたは書き込み転送がフレームの最後の場合、ＦＲＡＭＥ  ＩＮＤＥＸ（そしてＥＬＥＭＥＮＴ  ＩＮＤＥＸでは無い）フィールドがアドレス調整用に使用される。これは単一フレームでも多重フレーム転送でも生じる。
【０１１８】
要素サイズ、整列、およびエンディアン：ＤＭＡチャンネル制御レジスタ内のＥＳＩＺＥフィールドを用いて、使用者はＤＭＡが８ビットバイト、１６ビット半ワード、または３２ビットワードを各々の転送時に転送するように構成できる。以下のレジスタおよびビットフィールドは適切な整列値を用いてロードされなければならない：
１）ＤＭＡチャンネル発信元および宛先アドレスレジスタおよび全ての関連する再ロードレジスタ。
２）ＥＬＥＭＥＮＴ  ＩＮＤＥＸ
３）ＦＲＡＭＥ  ＩＮＤＥＸ
【０１１９】
ワード転送の場合、これらのレジスタは４の倍数の値を含まねばならず、これによってワードアドレスの上に整列される。半ワード転送の場合はこれらは２の倍数でなければならず、これによって半ワードアドレスの上に整列される。もしも整列されていない値がロードされた場合は、動作は定義されない。バイト転送に関しては整列に関する制約は存在しない。プログラムメモリに対する全てのアクセスは３２ビット幅でなければならない。また、３２ビットレジスタ内の個別の８ビットまたは１６ビットフィールドにアクセスを試みる場合はそのエンディアンを意識する必要がある。例えば、小エンディアンの場合００ｂで終了するアドレスがＬＳバイトを選択する一方で、大エンディアンでは１１ｂがＬＳバイトを選択する。
【０１２０】
次にフレーム指標を用いてアドレスを再ロードする例を説明する。自動初期化に際して、ＦＲＡＭＥ指標を転送する単一フレームブロックを再ロードレジスタの代わりに用いて次のアドレスを再計算することが出来る。例えば、１０バイトが固定の外部アドレスからこれに代わる位置（１バイトスキップ）に移動される単一フレーム転送を考える：
ＳＲＣ  ＤＩＲ＝００ｂ，固定発信元アドレス。
ＤＳＴ  ＤＩＲ＝１１ｂ，プログラム可能指標値
ＥＬＥＭＥＮＴ  ＩＮＤＥＸ＝１０ｂ，２バイト宛先飛び越し量
ＦＲＡＭＥ  ＩＮＤＥＸ＝９ｘ２＝１８＝１００１０ｂ，−１８バイト分の位置を訂正して宛先を同一場所から再開始する。
【０１２１】
次に大規模の単一ブロックの転送例を説明する。ＥＬＥＭＥＮＴ  ＣＯＵＮＴとＦＲＡＭＥ  ＣＯＵＮＴを共に用いて６５５３５より大きなサイズの単一フレームブロック転送を効率的に行える。ここで、要素計数とフレーム計数の積を取って大規模で効果的な要素計数を形成できる。下記が実行されなければならない：
１）もしもアドレスがプログラム可能値（ＤＩＲ＝１１ｂ）を用いて調整されるように設定されている場合は、もしもアドレス調整がＤＭＡグローバルデータレジスタで決定される場合は、ＦＲＡＭＥ  ＩＮＤＥＸはＥＬＥＭＥＮＴ  ＩＮＤＥＸに等しく無ければならない。これは発信元並びに宛先アドレスの両方に適用できる。もしもアドレスがプログラム可能値で調整されるように設定されていない場合は、この制約は適用されない、何故ならばデフォルトによって同一アドレス調整が要素およびフレーム境界に対して生じるからである。
２）フレーム同期は不能化されなければならない（ＤＭＡチャンネル一次制御レジスタ内でＦＳ＝０である）。これは大規模ブロックの中間部での同期要求を防止する。
３）第一フレーム内の要素数はＥｉである。後続のフレーム内の要素数は（（Ｆ−１）ｘＥｒ）である。有効要素計数は（（Ｆ−１）ｘＥｒ）＋Ｅｉである。ここで：
Ｆ＝ＦＲＡＭＥ  ＣＯＵＮＴの初期値
Ｅｒ＝ＥＬＥＭＥＮＴ  ＣＯＵＮＴ再ロード値
Ｅｉ＝ＥＬＥＭＥＮＴ  ＣＯＵＮＴの初期値
【０１２２】
従って、１２８Ｋ＋１要素を転送するには、Ｆ＝５，Ｅｒ＝３２Ｋ，そしてＥｉ＝１に設定すれば良い。
【０１２３】
格納の例を次に説明する。メモリ内の通常の位置に配置されているフレームの転送を行う（すなわち、第一フレームの第一転送に続いて、第二フレームの第一転送を行う）：
１）ＥＬＥＭＥＮＴ  ＩＮＤＥＸをＦｘＳに設定する。
２）ＦＲＡＭＥ  ＩＮＤＥＸを−（（（Ｅ−１）ｘＦ）−１）ｘＳに設定する、ここで
Ｅ＝ＥＬＥＭＥＮＴ  ＣＯＵＮＴ（フレーム当たりの要素数）および同様にＥＬＥＭＥＮＴ  ＣＯＵＮＴ  ＲＥＬＯＡＤの初期値、
Ｆ＝ＦＲＡＭＥ  ＣＯＵＮＴ（フレームの総数）の初期値、
Ｓ＝バイトで表した要素のサイズ、である。
【０１２４】
各々４つの半ワード要素（Ｅ＝４，Ｓ＝２）の３フレーム（Ｆ＝３）の転送を考える。従って、ＥＬＥＭＥＮＴ  ＩＮＤＥＸ＝３ｘ２＝６、またＦＲＡＭＥ  ＩＮＤＥＸ＝−（（（４−１）ｘ３）−１）ｘ２＝−１６である。発信元アドレスは変更されず、宛先が0x80000000から開始されて増加更新されるものと仮定する。
【０１２５】
表１３および表１４はこの例に於いてこの格納作業が如何にして行われるかを示している。
【０１２６】
【表１４】
0004285803.tif 000015
【０１２７】
【表１５】
0004285803.tif 000016
【０１２８】
次にスプリットチャンネル動作の説明を行う。スプリットチャンネル動作は単一のＤＭＡチャンネルが２つのチャンネルに対して、固定アドレスを有する外部または内部周辺機器から入力（受信）および出力（送信）ストリームの両方のサービスを行う能力を提供することを可能とする。
【０１２９】
図１５はスプリットアドレス用に使用されるＤＭＡグローバルデータレジスタを図示する。ＤＭＡチャンネル一次制御レジスタ内のＳＰＬＩＴフィールドで選択されたＤＭＡグローバルデータレジスタはスプリット転送でアクセスされるべき周辺機器のアドレスを決定する：
【０１３０】
スプリット発信元アドレス：このアドレスはプロセッサー１への入力ストリームの発信元である。選択されたＤＭＡグローバル制御レジスタはこのスプリット発信元アドレスを含む。
【０１３１】
スプリット宛先アドレス：このアドレスはプロセッサー１からの出力データストリーム用の宛先である。スプリット宛先アドレスはスプリット発信元アドレスよりも１ワードアドレス（４バイトアドレス）大きいと想定している。
【０１３２】
最下位３ビットが０に固定されていることに注意されたい。最下位２ビットはワードアドレスを強制的に整列させるためにゼロに固定されている。三番目の最下位ビットが０であるのは、スプリット発信元アドレスが偶数ワード境界上にあると想定しているからである。従ってスプリット宛先アドレスは奇数ワード境界上にあると想定している。これらの関係は転送の幅に関係なく保持される。内部周辺機器はこの協約に従う。外部周辺機器に関して、設計アドレスの復号は好適にこの協約に固執している。
【０１３３】
次にスプリットＤＭＡ動作を説明する。スプリット動作は送信要素転送と受信要素転送とで構成される。順番にこれらの各々は読み取りおよび書き込み転送から構成される：
１）送信要素転送
ａ）送信読み取り転送：データはＤＭＡチャンネル発信元アドレスから読み取られる。発信元アドレスは続いて構成通りに調整される。この事象は同期が取られていない。
ｂ）送信書き込み転送：送信読み取り転送からのデータがスプリット宛先アドレスに書き込まれる。この事象はＷＳＹＮＣフィールドで示されるように同期が取られる。次に転送計数が減数更新される。ＤＭＡチャンネルは内部的に係属の受信転送の数に追従する。
２）受信要素転送
ａ）受信読み取り転送：データはスプリット発信元アドレスから読み取られる。この事象はＲＳＹＮＣフィールドで示されるように同期が取られる。
ｂ）受信書き込み転送：受信読み取り転送からのデータが宛先アドレスに書き込まれる。宛先アドレスは続いて構成通りに調整される。この事象は同期が取られていない。
【０１３４】
チャンネル毎には単一の要素計数およびフレーム計数しか存在していないので、ＥＬＥＭＥＮＴ  ＣＯＵＮＴおよびＦＲＡＭＥ  ＣＯＵＮＴは受信および送信データの両方に対して同一である。スプリット動作を適切に働かせるために、ＲＳＹＮＣおよびＷＳＹＮＣフィールドの両方を同期事象に設定しなければならない。また、フレーム同期はスプリットモードでは無効状態にしておかなければならない。
【０１３５】
全ての転送に関して上記の順序が維持される。しかしながら、送信転送は実行する前に全ての過去の受信要素転送が完了するのを待つ必要はない。従って、送信ストリームに関しては受信ストリームより先に行うことが可能である。ＤＭＡチャンネル転送カウンタは、関連する送信転送が完了した後に減数更新（または再初期化）される。しかしながら、発信元アドレスレジスタの再初期化は全ての送信要素転送が完了した後に行われる。この形態は送信転送が受信転送より８以上先に進んでいない場合に適用される。この場合、送信要素転送は中止されるがこれはおそらく同期事象が欠落することが原因である。受信または送信要素転送が他に対して７以下の場合、ＤＭＡチャンネルはこの情報を内部状態として保持する。
【０１３６】
次に資源調停と優先順位設定について説明する。優先順位は互いに競合する要求者のなかでどれが複数の要求の中から１つの資源を支配するかを決定する。これらの要求者には下記が含まれる：
１）ＤＭＡチャンネル
２）ＣＰＵプログラムおよびデータアクセス。
【０１３７】
資源には下記が含まれる：
１）内部データメモリの各インタリーブを含む内部データメモリ。
２）周辺機器バスを通してアクセスされる内部周辺機器レジスタ。
３）内部プログラムメモリ
４）外部メモリインタフェース（ＥＭＩＦ）
【０１３８】
２つの優先順位機能がプログラム可能である：
１）ＤＭＡ対ＣＰＵ優先順位：各々のＤＭＡチャンネルは、関連するＤＭＡチャンネル制御レジスタ内のＰＲＩビットを設定することにより独立に高い優先順位モードと出来る。ＤＭＡグローバル制御レジスタ内のＡＵＸＰＲＩは補助チャンネルに対して同一の機能を設定できる。高優先順位モードの場合、関連するチャンネルの要求は高優先順位状態を示す信号と共に適切な資源に送られる。これら全てのフィールドのディフォルトを０とする事で、高優先順位モードを無効とする。各々の資源はこの信号を自身の優先順位処理手順の中で用いて競合を避けることが出来る。この信号をどの様に利用するかは個別の資源の説明書を参照されたい。
２）ＤＭＡチャンネル間の優先順位：ＤＭＡは固定の優先順位処理手順を有しており、チャンネル０の優先順位が最も高く、チャンネル３の優先順位が最も低い。補助チャンネルに対してはこの階層の中の任意の優先順位が与えられる。
【０１３９】
図１６はＤＭＡグローバル制御レジスタを図示しており、これはチャンネル間の優先順位を規定している。ＤＭＡグローバル制御レジスタ内のフィールドは全てのＤＭＡチャンネルに影響を与え、これらは表１５に記述されている。このレジスタ内のフィールドは以下の副セクションの中で参照される。
【０１４０】
【表１６】
0004285803.tif 000017
【０１４１】
ＤＭＡチャンネル間の優先順位は、２つまたはそれ以上のチャンネルが転送実行準備が出来ているときに、どのＤＭＡチャンネルが読み取りまたは書き込み転送を最初に実施するかを決定する。
【０１４２】
補助チャンネルの優先順位はＤＭＡグローバル制御レジスタ内のＣＨ  ＰＲＩフィールドをプログラミングすることで構築出来る。デフォルトとして、ＣＨ  ＰＲＩ＝００００ｂでリセットされる。これは補助チャンネルを最高位優先順位に設定し、続いてチャンネル０、チャンネル１、チャンネル２と続き、チャンネル３が最低位の優先順位となる。
【０１４３】
チャンネル間の調停は各ＣＰＵクロック毎に読み取りおよび書き込み転送に対して独立して行われる。いかなる種類であっても同期を待機しているプロセスにある全てのチャンネルはＤＭＡの制御を失い、最低優先順位チャンネルとなる。一度同期が受信されると、そのチャンネルは最低優先順位チャンネルからＤＭＡの制御を再取得する。この規則はスプリットモード転送の送信および受信ポートに対して独立に適用される。送信ポーションは受信ポーションよりもより高い優先順位を有する。
【０１４４】
もしも複数のＤＭＡチャンネルとＣＰＵとがひとつの資源を争っている場合は、どのＤＭＡチャンネルが優先順位を持っているかの調停が論理的に最初に行われる。次に最高位のＤＭＡチャンネルとＣＰＵとの間の調停が行われる。通常、もしもチャンネルの優先順位がＣＰＵよりも低い場合は、全てのより低い優先順位のチャンネルもまたＣＰＵよりも低い優先順位となるはずである。同様に、もしもチャンネルがＣＰＵよりも高い優先順位を持っている場合は、全てのより高い優先順位のチャンネルはＣＰＵよりも高い優先順位となるはずである。このＤＭＡ対ＣＰＵの調停は各々の個別の資源によって決定される。より詳しい説明はそれらの資源の説明書を参照されたい。ＰＲＩフィールドはそのチャンネルが中断または停止されたときにのみ修正されることに注意されたい。
【０１４５】
最高位の優先順位のチャンネルが、一度必要な読み取り同期を受信すると、低位の優先順位のチャンネルからＤＭＡの制御を獲得する。スイッチングチャンネルに於いて、現行のチャンネルは要求された読み取りからの全てのデータが完了するのを許可する。続いてＤＭＡはどのより高い優先順位のチャンネルがＤＭＡ制御装置読み取り動作の制御を獲得するかを決定する。そのチャンネルは続いてその読み取り動作を開始する。同時に、先行のチャンネルからの書き込み転送の完了が許可される。
【０１４６】
もしも複数のＤＭＡチャンネルが読み取り並びに書き込みに関して同一の資源を争っている場合は、より高い優先順位のチャンネルが勝つ。例えばチャンネル０がＥＭＩＦから読み取りを行おうとし、またチャンネル１がＥＭＩＦに書き込もうとしている場合、チャンネル０の読み取りが最初に行われる。もしも１つのチャンネルが同一の資源に対して読み取り並びに書き込みの両方を要求している場合、書き込みが最初に行われる。
【０１４７】
次にＤＭＡチャンネル条件決定方法を説明する。ＤＭＡチャンネル動作に関して、使用者に重大なマイルストンまたは起きそうな問題を通知するためにいくつかの条件が利用できる。これらの事象（ＣＯＮＤビットフィールドで示される）はＤＭＡチャンネル二次制御レジスタ内に保持される。
【０１４８】
このレジスタはまたこれらの事象を有効化して、ＤＭＡがＣＰＵのチャンネルｘに対して対応する割り込み有効（ＩＥ）ビットフィールドを通して割り込みトリガをかける方法をも提供している。もしもＣＯＮＤビットおよびその対応するＩＥビットが設定されると、その条件が有効化されて関連するＤＭＡチャンネルからＣＰＵへの割り込み信号の状態を変化させる。もしもＤＭＡチャンネルｘ制御レジスタ内のＴＣＩＮＴビットが設定されると、全ての有効化された条件の論理ＯＲを取ってＤＭＡ＿ＩＮＴｘ信号が形成される。それ以外の場合はＤＭＡ＿ＩＮＴｘ信号は無効である。この論理図が図１７に示されている。割り込み選択器で選択されてＤＭＡ＿ＩＮＴが低状態から高状態に変化すると割り込み条件が生成されてＣＰＵでラッチされる。
【０１４９】
ＤＭＡチャンネル二次制御レジスタ内のＳＸ  ＣＯＮＤ，ＷＤＲＯＰ，およびＲＤＲＯＰビットは警告条件として取り扱われる。もしもこれらの条件が有効化されて稼働している場合、これらはＴＣＩＮＴビットの値に関係なくＤＭＡチャンネルを運転状態から中断状態に移行する。
【０１５０】
もしもＣＯＮＤビットのＩＥビットが設定されると、そのＣＯＮＤビットは使用者が０を書き込むことによってのみ消去される。それ以外の場合はＣＯＮＤビットは以下の章で示されるように自動的に消去される。使用者が１をＣＯＮＤビットに書き込んでも無効である。従って手動でその条件を強制的に作ることは出来ない。
【０１５１】
このレジスタ内のほとんどの値はリセットで消去される。１つの例外はブロック完了事象（ＢＬＯＣＫ  ＩＥ）に対する割り込み有効であって、これはリセット時に設定される。従って、デフォルトとしてブロック転送完了条件のみがＣＰＵ割り込みに作用できる唯一の条件である。その他の条件は関連するＩＥビットを設定することで有効化出来る。
【０１５２】
表１６はＤＭＡチャンネル二次制御レジスタ内の各々の条件を記述している。システムアプリケーションに応じて、これらの条件はエラーを提示する。注意事項として、最終フレーム条件は再ロードレジスタ値を自動初期化用に変更するように使用できる。フレーム指標および要素計数再ロードは全てのフレームに使用される。従ってブロック転送に於いて最終フレーム転送を除く全てが完了するのを待ってこれらの値を変更する。それ以外の場合は、現行（次回分では無く）ブロック転送が影響される。
【０１５３】
【表１７】
0004285803.tif 000018
【０１５４】
図１８はデータバスと内部保持レジスタを含むＤＭＡ制御装置の内部データ移動経路を示す。
【０１５５】
各ＤＭＡチャンネルは独立して４つの発信元および宛先の１つを選択することが出来る：
１）ＥＭＩＦ  １０３
２）内部プログラムメモリ２３
３）内部データメモリ２２
４）内部周辺機器バス１１０
【０１５６】
従って、読み取りおよび書き込みバスが各々のインタフェースからＤＭＡ制御装置に用意されている。
【０１５７】
補助チャンネルはまた読み取りおよび書き込みバスを有する。しかしながら補助チャンネルはＤＭＡに対してアドレス生成を提供するので、そのバスの名称規約は異なっている。例えば、補助チャンネルからＤＭＡを通してのデータ書き込みは補助書き込みバスを通して実行される。同様に、補助チャンネルからＤＭＡを通してのデータ読み取りは補助読み取りバスを通して実行される。
【０１５８】
本発明の１つの特徴は９段ＤＭＡ  ＦＩＦＯ３００保持経路であって、これは内部プログラムおよびデータメモリ、同様に外部同期ＤＲＡＭ（ＳＤＲＡＭ）または同期バーストＳＲＡＭ（ＳＢＳＲＡＭ）を含む高性能メモリへのバーストを容易にするために具備されている。チャンネルの保持レジスタ３１０ａ，３１０ｂ，３１０ｃまたは３１０ｄと組み合わされて、これは効果的に１１段ＦＩＦＯとなる。
【０１５９】
実際にはＦＩＦＯには３つの構成部品が存在している：
１）アドレスＦＩＦＯ３２０は読み取りアドレスの２つの最下位ビットおよび読み取り進行サイクル時のend ＿of＿frame およびend ＿of＿block 状態を格納する。
２）３６ビット幅データＦＩＦＯ３００は、３２ビット読み取りデータワードを読み取り確認のためにアドレスＦＩＦＯから送られるデータと共に格納する。
３）２段の中間段３１０ａ−３１０ｄはアドレス段から送られるデータをデータＦＩＦＯに行く前に格納するが、読み取りデータ待ち時間には２サイクルの肯定確認が必要だからである。
【０１６０】
１０個の読み取り進行（ａｄｖ）サイクル中に、全ての書き込みａｄｖの読み取り肯定確認（ａｃｋ）が始まる。これらのａｃｋの開始によりアドレスＦＩＦＯ３２０からのデータが取り除かれ、これらをデータＦＩＦＯ３００内に読み取りデータと共に配置する。従ってデータ項目はこれらの段を通って分配される。計数論理回路３４０が存在し、これは各々の段に格納されている項目数を追跡している。
【０１６１】
どの瞬間にも唯１つのチャンネルのみがＦＩＦＯを制御している。１つのチャンネルがＦＩＦＯの制御権を得るには下記の条件が全て適用されなければならない：
１）そのチャンネルは有効状態の読み取りまたは書き込み同期を有していないこと。スプリットモードは読み取りおよび書き込み同期を必要とするため、ＦＩＦＯはスプリットモード中のチャンネルでは使用されない。もしもフレーム同期のみが有効な場合はＦＩＦＯはそのチャンネルで使用されることに注意されたい。
２）チャンネルが動作中であること。
３）ＦＩＦＯがその他全てのチャンネルからのデータを受け付けていないこと。
４）このチャンネルが上記３つの条件を満たすものの中で最も高い優先順位のチャンネルであること。
【０１６２】
第３番目の制限は”head-of-line”ブロッキングを最小化する。Head-of -line ブロッキングはＤＭＡがその第一要求を行う前に一連の低位優先順位に対するより高い優先順位の待ちを要求する際に生じる。その後より高位の優先順位のチャンネルはその要求をその保持レジスタを通して完了する。保持レジスタはＤＭＡ制御装置を通した場合ほど高い処理量は実現しない。ギャップの中で低位優先順位のチャンネルは読み取り転送を開始することは無いが、その書き込み転送を完了することによってＦＩＦＯをフラッシュすることが出来る。より高位の優先順位のチャンネルは未だＦＩＦＯの制御に入っていないので、そのアクセスの中でギャップが生じ、そこではより低位の優先順位のチャンネルがその転送をＦＩＦＯから流す。ＦＩＦＯが消去されて、もしも高位優先順位チャンネルが停止されていなければ、これはＦＩＦＯの制御を獲得する。
【０１６３】
ＤＭＡ  ＦＩＦＯは２つの目的を有する：
１）性能向上
２）調停待ち時間の減少
【０１６４】
性能向上：ＦＩＦＯは書き込み転送に先立って読み取り転送を可能とする。この特徴により要素転送の最後に利用可能な転送帯域幅での変更に対する罰則を最小と出来る。従ってＤＭＡは予想転送の読み取りおよび書き込み部分に於いて別々のウィンドウを利用することが出来る。もしも要求を行っているＤＭＡチャンネルがそのＦＩＦＯを用いている場合は、その資源はＣＰＵクロックサイクル速度で読み取りまたは書き込みアクセスを持続することが出来る。しかしながら、第一アクセスを実行する際にはいくらかの待ち時間が生じるはずである。資源とＤＭＡ制御装置との間のハンドシェイキングにより、後続の要求と受信された読み取り転送データの待ち時間の速度が制御される。
【０１６５】
読み取りおよび書き込みアクセスをＣＰＵクロック速度で持続するために、ＦＩＦＯは満杯にすることは出来ない。ＦＩＦＯが満杯になるのを避けるために、読み込み要求が最後に空になったＦＩＦＯ位置にデータを入れる前にデータがＦＩＦＯから書き出され始めなければならない。周辺機器ハンドシェイク動作から、我々は１１ワードのＦＩＦＯ段が必要と判断した。従って、どの時点でもＤＭＡは書き込み転送の完了を待っている１１個までの読み取り転送待ち行列をＦＩＦＯの中に持っている。
【０１６６】
ＣＰＵに対する調停待ち時間の減少：個別の資源に対する任意の懸案要求から読み取りデータを捕獲する。例えば、ＤＭＡがデータをパイプライン化されているＳＤＲＡＭまたはＳＢＳＲＡＭの様な外部メモリから内部データメモリにデータを読みとる場合を考える。ＣＰＵには要求を行うＤＭＡチャンネルよりも高位の優先順位が与えられており、ＥＭＩＦの競合プログラムフェッチを行うと仮定する。また、同時にこのＣＰＵは内部メモリの全てのバンクにアクセスし、ＤＭＡを排除していると仮定する。この場合、ＦＩＦＯは懸案ＤＭＡアクセスを完了しプログラムフェッチを進めることを可能とする。ＤＭＡがパイプライン化された要求構造をしているため、どの時点でもＤＭＡはそのデータが未だ到着していない１１個までの懸案読み取り転送要求を持つことが可能である。１１個の要求が未処理となると、ＤＭＡは後続の読み取り転送要求を中止する。
【０１６７】
各々のチャンネルは専用の内部保持レジスタを有する。もしもＤＭＡチャンネルが内部ＦＩＦＯではなくむしろその保持レジスタを通してデータを転送しているとすると、読み取り転送はその結果として行われる。一度読み取り転送要求が開始されると、次の読み取り転送は読み取りデータが保持レジスタ内に到着するまで開始されない。ＤＭＡ制御装置がスプリットモードであるか否かによって追加の制約が適用される：
１）スプリットモード：２つのレジスタがスプリットモード用の別々の送信および受信データストリーム保持レジスタとして働く。送信および受信読み取り転送のいずれに対しても、関連する書き込み転送要求が完了するまで次の読み取り転送要求は出されない。
２) 非スプリットモード：しかしながら、スプリットモードで無い場合は、データが到着すると次の読み取り転送は関連する書き込み転送が完了するのを待たずに行われる。しかしながら、２つの保持レジスタしか無いので、読み取り転送は書き込み転送の１つだけ前に居る。
【０１６８】
説明した構造を使用して、ＤＭＡは単一サイクル処理量で要素転送を実行することが可能であるが、それは読み取り転送および書き込み転送に対して別々の資源にアクセスし、またこれらの資源の両方が単一サイクル処理量を有する場合である。ひとつの例は単一サイクル外部ＳＢＳＲＡＭから内部データメモリに、別のチャンネルまたはＣＰＵから競合を受けることなく行われる非同期ブロック転送であろう。ＤＭＡ性能は下記で制限される：
【０１６９】
１）それが要求する資源の処理量および待ち時間。
２）読み取り、書き込み、またはフレーム同期に対する待ち。
３）他のＤＭＡチャンネルとの資源に対する競合。
【０１７０】
再び図４を参照して、ＤＭＡ動作完了ピン、ＤＭＡＣ（０−３）を次に説明する。ＤＭＡ動作完了ピンは各々のチャンネル（ＤＭＡＣ０−ＤＭＡＣ３）に対して事象を発生する外部論理回路へのフィードバック方法を提供する。ＤＭＡチャンネル二次制御レジスタ内のＤＭＡＣ  ＥＮビットフィールドで決定されるように、このピンはＲＳＹＮＣ  ＳＴＳＴ，ＷＳＹＮＣ  ＳＴＡＴ，ＢＬＯＣＫ  ＣＯＮＤ，またはＦＲＡＭＥ  ＣＯＮＤの状態を反映することが可能であり、または高または低汎用目的出力として取り扱われる。もしもＤＭＡＣがＲＳＹＮＣ  ＳＴＡＴまたはＷＳＹＮＣ  ＳＴＡＴを反映している場合、外部的に一度同期事象が認識されるとＤＭＡＣは低から高状態へ遷移する。その同一事象のサービスが終わると（その状態ビットが消去されることで示されるように）、ＤＭＡＣは高から低状態へ遷移する。チップから送り出される前にＤＭＡＣ信号はＣＬＫＯＵＴ２（ＣＰＵクロック速度の１／２）で同期される。これらの信号の有効期間は最低２  ＣＬＫＯＵＴ２周期幅が保証されている。また、たとえ同期前であってもパルスは１ＣＰＵクロック周期幅だけなので、最小２ＣＬＫＯＵＴ周期の有効高パルスがＤＭＡＣピンに出現する。
【０１７１】
再び図１Ａを参照すると、デバッグ中にテストシステム５１内のエミュレータを用いて、ＣＰＵを実行パケット境界上で停止させて、単一ステップ動作、ベンチマークテスト、プロフィール抽出、またはその他のデバッグ用途で使用する。使用者はこの時にＤＭＡが一時中断をするかまたは実行継続するかの構成を行うことが出来る。この機能はＤＭＡ一時制御レジスタ内のＥＭＯＤビットを０または１にそれぞれ設定することで実施される。もしも一時中断の場合は、ＳＴＡＴＵＳフィールドがそのチャンネルの一時中断状態を反映する。補助チャンネルはエミュレーション停止中も実行を継続する。米国特許第＿＿＿＿＿（明細書ＴＩ−２４９４６）にはマイクロプロセッサ１のエミュレーションが完全に詳細に説明されており、此処に記述することで参照されている。
【０１７２】
ＨＰＩ
概要
図４に示されているように、ホストポートインタフェース（ＨＰＩ）はパラレルポートであって、これを通してホストプロセッサはＣＰＵのメモリ空間に直接アクセスを行える。ホスト装置はインタフェースのマスタなので、そのアクセスの容易さを増加させる。ホストおよびＣＰＵは情報を内部または外部メモリを経由して交換できる。加えて、ホストはメモリ写像された周辺機器に対して直接アクセスを有する。ＣＰＵのメモリ空間への接続性はＤＭＡ制御装置を通して提供される。ＣＰＵにアクセス不能な専用アドレス並びにデータレジスタはＨＰＩをＤＭＡ補助チャンネルに接続し、これは続いてＨＰＩをＣＰＵのメモリ空間に接続する。インタフェースを構成するために、ＨＰＩおよびＣＰＵはＨＰＩ制御レジスタ（ＨＰＩＣ）にアクセス出来る。ホストはホストアドレスレジスタ（ＨＰＩＡ）およびホストデータレジスタ（ＨＰＩＤ）また同様にＨＰＩＣに外部データ並びにインタフェース制御信号（図１９）を用いてアクセスすることが出来る。
【０１７３】
図１９はＨＰＩへのホストインタフェースの簡略図を示す。このＨＰＩは経済的な１６ビット外部インタフェースに自動的に後続の１６ビット転送を結合して、ＣＰＵに対して３２ビットデータを提供する。ホスト装置がデータをＨＰＩＤを通して転送するとき、ＤＭＡ補助チャンネルはＣＰＵのアドレス空間にアクセスする。ＨＰＩは高速back-to-backホストアクセスを支援する。メモリ写像された資源に対する競合が無い場合は、ＨＰＩは４ＣＰＵクロック毎に１つの１６ビット値を転送することが出来る。従ってＤＭＡ補助チャンネルは８ＣＰＵクロック毎に１つの３２ビットアクセスを実行できる。
【０１７４】
外部ＨＰＩインタフェースは１６ビットＨＰＩデータバスおよびインタフェースを構成しかつ制御する制御信号から構成されている。このインタフェースは種々のホスト装置を極わずかの論理回路の追加または全く必要とせずに接続することが出来る。
【０１７５】
１６ビットデータバス（ＨＤ０−−ＨＤ１５）は情報をホストと交換する。チップアーキテクチャが３２ビットワード構造であるため、ホストとの全ての転送は２つの連続する１６ビット半ワードから成っている。ホストデータ（ＨＰＩＤ）書き込みアクセスに際して、ＨＢＥ−１：０バイトは選択を可能とし、このバイトは３２ビットワードでかき込まれる必要がある。ＨＰＩＡ，ＨＰＩＣアクセス、同様にＨＰＩＤ読みとりアクセスは３２ビットアクセスとして実行され、バイト有効化は使用されない。専用のＨＨＷＩＬピンは第一または第二半ワードが転送されているか否かを指示する。内部制御レジスタビットは、第一または第二半ワードが１つのワードの上位半ワードの中に設定されたか否かを判定する。ホストは実行中のＨＰＩアクセスの第一半ワード／第二半ワード（ＨＨＷＩＬ低／高）の順序を壊してはならない。
【０１７６】
２つのデータストローブ（ＨＤＳ１−およびＨＤＳ２−）、読みとり／書き込み選択（ＨＲ／Ｗ−）、およびアドレスストローブ（ＨＡＳ−）はＨＰＩが種々の工業標準に基づくホスト装置と、極僅かの論理回路を追加するかまたは全く追加する必要なく、インタフェースを取れるようにしている。ＨＰＩはホストとマルチプレクスされているかまたは専用のアドレス／データバス、１データストローブおよび読みとり／書き込みストローブ、または読みとりおよび書き込み用の２つの別々のストローブと容易にインタフェースを取ることができる。
【０１７７】
ＨＣＮＴＬ１：０制御入力は、どのＨＰＩレジスタがアクセスされているかを示す。これらの入力を用いて、ホストはＨＰＩＡ（これはＣＰＵメモリ空間内のポインタとして働く），ＨＰＩＣ，またはＨＰＩＤへのアクセスを指定できる。これらの入力はＨＨＷＩＬと共に、ホストアドレスバスビットまたはこれらのビットの機能によって共通に駆動される。ＨＰＩＣに書き込むことにより、ホストはＣＰＵに割り込みを欠けることが可能であり、一方ＣＰＵはホストへの割り込み出力ＨＩＮＴ−を能動化することができる。
【０１７８】
ホストはＨＰＩＤに、ＨＰＩＡのオプションの自動アドレス更新でアクセスする事が出来る。この機能により順番に並んでいるワード位置への読みとりまたは書き込みが容易になる。加えて、自動更新ＨＰＩＤ読みとりは自動更新されたアクセスでのデータの事前フェッチを行うので、後続のホスト読みとり要求での待ち時間が減少される。ＨＰＩ準備完了ピン（ＨＲＤＹ−）はホスト待ち状態の挿入を可能とする。待ち状態は、ＨＰＩ経由でアクセスされたメモリマップ内の点への待ち時間と、同様にホストアクセスの速度とによっては必要である。ホストアクセスの速度によっては、先のＨＰＩＤ書き込みアクセスまたは事前フェッチされたＨＰＩＤ読みとりアクセスが完了する前にホストがホストポートへアクセスを試みようとした際に準備中状態を強制する場合もある。この場合、ＨＰＩはＨＲＤＹ−経由でホストを切り離す。ＨＲＤＹ−は自動的に（ソフトウェアのハンドシェイクは不要）ホストアクセス速度をＤＭＡ補助チャンネルからのデータ配信速度に調整するための簡便な方法を提供する。ＨＲＤＹ−ピンの特長を利用できないハードウェアシステムの場合、ＨＰＩＣ内のＨＲＤＹビットがソフトウェアハンドシェイクを使用するのと同じように利用できる。
【０１７９】
ＨＰＩ信号説明
外部ＨＰＩインタフェース信号は種々の型式のホスト装置に対してフレキシブルなインタフェースを実現する。表１７はＨＰＩピンとそれらの機能を表示している。この章の残りの部分でピンを詳細に説明する。
【０１８０】
【表１８】
0004285803.tif 000019
【０１８１】
データバス：ＨＤ１５：０
ＨＤ１５：０はパラレル双方向３状態データバスである。ＨＤはＨＰＩ読みとりアクセスを実行していない場合は高インピーダンスに置かれている。
【０１８２】
アクセス制御選択：ＨＣＮＴＬ１：０
ＨＣＮＴＬ１：０はどの内部ＨＰＩレジスタが使用中であるかを示す。これら２つのピンの状態はＨＰＩアドレス（ＨＰＩＡ）、ＨＰＩデータ（ＨＰＩＤ）、またはＨＰＩ制御（ＨＰＩＣ）レジスタへのアクセスを選択する。ＨＰＩＡレジスタはＨＰＩメモリ内へのポインタとして働き、ＨＰＩＣは転送に関する制御並びに状態ビットを含み、またＨＰＩＤは転送される実データを含む。加えて、ＨＰＩＤレジスタはオプションの自動アドレス更新でアクセス出来る。表１８はＨＣＮＴＬ０／１ビット機能を説明している。
【０１８３】
【表１９】
0004285803.tif 000020
【０１８４】
半ワード識別選択：ＨＨＷＩＬ
転送の第一または第二半ワードを識別する（最上位または最下位ではない・・・これはＨＰＩＣレジスタ内のＨＷＯＢビットで指定されており、この章で後ほど説明する。）ＨＨＷＩＬは第一半ワードに対しては低、また第二半ワードに対しては高状態を取る。
【０１８５】
バイト有効：ＨＢＥ−１：０
ＨＰＩＤ書き込みに際して、ＨＢＥ−１：０の値は３２ビットワードのどの部分が書き込まれるべきかを示す。ＨＢＥ−１：０の値はＨＰＩＡまたはＨＰＩＣアクセスまたはＨＰＩＤ読み取りに際して重要ではない。ＨＰＩＤ書き込みに際し、ＨＢＥ０−は半ワード中の最下位バイトを有効とし、ＨＢＥ１−は半ワード中の最上位バイトを有効とする。表１９は有効な組み合わせを示す。バイト書き込みに対して、半ワードアクセスのいずれか（両方ではない）の１つのＨＢＥ−のみが活性低状態に有効化される。半ワードデータ書き込みに対して、両方のＨＢＥ−が半ワードアクセスのいずれか（両方ではない）内で活性低状態に保持されなければならない。ワードアクセスに対して、両方の半ワードアクセス内で両方のＨＢＥ−が活性低状態に保持されなければならない。それ以外の組み合わせは無効である。バイト有効およびＣＰＵのエンディアン性（ＬＥＮＤＩＡＮピン経由で選択される）は、アクセスで示された論理アドレスを決定する。
【０１８６】
【表２０】
0004285803.tif 000021
【０１８７】
読み取り／書き込み選択：ＨＲ／Ｗ−
ＨＲ／Ｗ−はホスト読み取り書き込み選択入力である。ホストはＨＰＩを読みとるためにはＨＲ／Ｗを高状態に駆動し、ＨＰＩに書き込むためには低状態に駆動しなければならない。読み取り／書き込み選択出力または読み取りまたは書き込みストローブのいずれかを具備していないホストはこの機能のためにアドレスラインを使用できる。
【０１８８】
準備完了：ＨＲＤＹ−
活性低の場合、ＨＲＤＹ−はＨＰＩが転送を実行する準備が完了していることを示す。不活性高の場合、ＨＲＤＹ−はＨＰＩが先のＨＰＩＤ書き込みまたはＨＰＩＤ読み取り事前フェッチアクセスの現行読み取りアクセスの内部部分を完了させるために使用中であることを示す。ＨＣＳ−はＨＲＤＹを有効化する；すなわちＨＣＳ−が低の場合ＨＲＤＹは常に低である。
【０１８９】
ストローブ：ＨＣＳ−，ＨＤＳ１−，ＨＤＳ２−
ＣＳ−，ＨＤＳ１−，ＨＤＳ２−は下記のいずれかによってホストとの接続を可能とする：
読み取り／書き込み選択を具備した単一ストローブ出力。
別々の読み取りおよび書き込みストローブ出力。この場合、読み取りまたは書き込み選択は読み取りおよび書き込み選択に対して異なるアドレスを使用して実施できる。
【０１９０】
図２０はＨＣＳ−，ＨＤＳ１−，およびＨ０５２入力の等価回路を示す。一緒に使用することにより、ＨＣＳ−，ＨＤＳ１−，およびＨＤＳ２−は活性低内部ＨＳＴＲＢ−信号を生成する。ＨＳＴＲＢ−はＨＣＳ−が活性低でＨＤＳ１−およびＨＤＳ２−のいずれか（両方では無い）が活性低の場合にのみ、活性低となることに注意されたい。ＨＳＴＲＢ−の立ち下がり（ＨＡＳ−が非活性高状態に固定されたとき）は、ＨＣＮＴＬ１：０，ＨＨＷＩＬ，ＨＲ／Ｗ−，およびＨＢＲ−１：０をサンプリングする。従って、最後に落ちたＨＤＳ１−，ＨＤＳ２−，またはＨＣＳ−がサンプリング時間を制御する。ＨＣＳ−はＨＰＩの有効入力として働き、アクセス中は低状態でなければならない。しかしながら、ＨＳＴＲＢ−信号がアクセス間の実際の境界を決定するため、ＨＣＳ−はＨＤＳ１−およびＨＤＳ２−の両方が共に非活性高または活性低となるまで、後続のアクセスの間低状態に留まっているはずである。
【０１９１】
別々の読み取りおよび書き込みストローブを具備したホストは、これらのストローブをＨＤＳ１−またはＨＤＳ２−のいずれかに接続する。単一データストローブを具備したホストは、使用されていないピンを高状態としてそのストローブをＨＤＳ１−またはＨＤＳ２−のいずれかに接続する。ＨＤＳの接続に係わらず、ＨＲ／Ｗ−は転送の方向を決定するために要求される。ＨＤＳ１−及びＨＤＳ２−は内部的に排他論理ＮＯＲが取られているので、高状態の真データストローブを具備したホストは、その他のＨＤＳ入力を低状態に接続してそのストローブをＨＤＳ入力の１つに接続することが出来る。
【０１９２】
ＨＳＴＲＢ−は３つの目的で使用される：
１．読み取りに際して、その立ち下がりは全てのアクセス型式に対してＨＰＩ読み取りアクセスを開始する。
２．書き込みに際して、その立ち上がりは全てのアクセス型式に対してＨＰＩ書き込みアクセスを開始する。
３．ＨＰＩ制御入力をラッチする立ち下がりは下記を含む：ＨＨＷＩＬ，ＨＲ／Ｗ−，ＨＢＥ０１：０，ＨＣＮＴＬ１：０。ＨＡＳ−もまた制御入力のラッチに影響を与える；以下の説明を参照。
【０１９３】
加えて、ＨＣＳ−はＨＲＤＹ出力のゲート制御を行う。別の言葉で言えば、ＨＣＳ−が活性低の場合にのみ、準備中状態は非活性高状態で駆動されたＨＲＤＹ−ピンで示される。
【０１９４】
アドレスストローブ入力：ＨＡＳ−
ＨＡＳ−はＨＣＮＴＬ１：０，ＨＢＥ−１：０，ＨＲ／Ｗ−，及びＨＨＷＩＬをアクセスサイクルの初期の段階で取り除くことが出来るので、バス状態をアドレスからデータ情報に切り替えるのに更に多くの時間が捻出できる。この特徴により、マルチプレクスアドレス及びデータ型バスへのインタフェースが容易になる。この型のシステムに於いて、ＡＬＥ信号がしばしば提供され、これは通常ＨＡＳ−に接続された信号である。
【０１９５】
マルチプレクスアドレスおよびデータバスを具備したホストはＨＡＳをそれらのＡＬＥピンまたは等価のものに接続する。次にＨＨＷＩＬ，ＨＣＮＴＬ０／１，およびＨＲ／Ｗ−はＨＡＳ−の立ち下がりでラッチされる。使用時にはＨＡＳ−はＨＣＳ−，ＨＤＳ１−またはＨＤＳ２−の遅いものよりも先んじる必要がある。別々のアドレスおよびデータバスを具備したホストはＨＡＳを高状態に接続できる。この場合、ＨＨＷＩＬ，ＨＣＮＴＬ０／１，およびＨＲ／Ｗは、ＨＡＳが非活性（高状態）に留まっている間に、ＨＤＳ１−，ＨＤＳ２−，またはＨＣＳ−の一番最後ものの立ち下がりでラッチされる。
【０１９６】
ホストへの割り込み：ＨＩＮＴ−
ホスト割り込み出力である。ＨＰＩＣ内のＨＩＮＴ−ビットで制御される。チップがリセット中は高状態で駆動される。この信号は後ほど更に詳しく説明する。
【０１９７】
ＨＰＩバスアクセス
図２１および図２２はそれぞれＨＡＳ−が使用されていない場合と、使用されている場合のＨＰＩアクセスタイミングを示す。ＨＳＴＲＢ−は図２０に記述されている、内部的に生成されたストローブを表す。ＨＡＤは典型的にホストアドレスラインで駆動される制御信号を表す：ＨＣＮＴＬ１：０，ＨＲ／Ｗ−，ＨＨＷＩＬ，およびＨＢＥ−１：０。ＨＣＮＴＬ１：０およびＨＲ／Ｗは両方の半ワードアクセスに対して同一の値を持たなければならない。ＨＨＷＩＬは第一半ワード転送に対しては低、また第二に対しては高でなければならないことを示すために別々に示されている。もしもＨＡＳが使用されていない場合は（図２１に示されるように高状態に固定）、ＨＳＴＲＢ−の立ち下がりでこれらの信号がラッチされる。図２２に示されるようにＨＡＳが使用されている場合は、ＨＡＳの立ち下がりでこれらの値がラッチされる。この場合、ＨＡＳの立ち下がりはＨＳＴＲＢの立ち下がりよりも先行しなければならない。読み取りに際して、ＨＳＴＲＢ−の立ち下がりよりも少し遅れてデータは有効となる。もしも有効データがＨＰＩＤ内に未だ存在していない場合は、このデータはＨＲＤＹ−の立ち上がりで設定され、ＨＳＴＲＢの立ち上がりまで保持される。書き込みに際して、ホストはＨＳＴＲＢ−の立ち上がりに関連してデータを設定しなければならない。
【０１９８】
ＨＰＩレジスタ
表２０はＨＰＩがホスト装置とＣＰＵとの間の通信で使用する３つのレジスタを纏めたものである。ＨＰＩＤは現行のアクセスが読み取りの場合、ＨＰＩメモリから読みとられたデータ、または現行のアクセスが書き込みの場合、ＨＰＩメモリへ書き込まれる予定のデータを含む。現行のアクセスが発生するアドレスをＨＰＩメモリ内に含む。このアドレスは３０ビットワードのアドレスであるため、最後の２ビットはＨＰＩＡ書き込みによっては影響されず、常に０として読み込まれる。
【０１９９】
【表２１】
0004285803.tif 000022
【０２００】
ＨＰＩ制御レジスタ（ＨＰＩＣ）
通常、ＨＰＩＣ（図１９Ａおよび表２１参照）は構成ビットを設定しインタフェースを初期化するようにアクセスされた第一レジスタである。従って、ＨＰＩＣは同一の高および低半ワード内容を具備した３２ビットレジスタとして構成される。ホスト書き込みに際して、両方の半ワードは同一で無ければならない。低側半ワードおよび高側半ワードは実際は同一の格納位置であることに注意されたい。読み取り専用に予約された値には格納場所は割り当てられていない。低側半ワードへのＣＰＵ書き込みのみがＨＰＩＣ値とＨＰＩ動作に影響を与える。通常、ＨＰＩＣは構成ビットを設定しインタフェースを初期化するようにアクセスされた第一レジスタである。従って、ＨＰＩＣは同一の高および低半ワード内容を具備した３２ビットレジスタとして構成される。
【０２０１】
【表２２】
0004285803.tif 000023
【０２０２】
ＨＲＤＹおよびＦＥＴＣＨを使用したソフトウェアハンドシェイク
先に説明したように、ＨＲＤＹ−ピンはホストに対してＨＰＩＤアクセスが完了していないことを示すことが出来る。例えば、現行ＨＰＩＤアクセスは先行するＨＰＩＤアクセス書き込みが完了するか、または先行するＨＰＩＤ事前フェッチ読み取りが完了するのを待たされる。また、現行のＨＰＩＤ読み取りアクセスはその要求したデータが到着するのを待たされる。しかしながら、ＨＰＩＣ内のＨＲＤＹおよびＦＥＴＣＨビットはソフトウェアハンドシェイクを可能とし、これはハードウェア準備完了制御が必要とされないシステム内でＨＰＩ接続を可能とする。全ての事前フェッチされたデータはＨＰＩレジスタが書き込まれるかまたは、次のＨＰＩ読み取りの後か、いずれかが先に来るまで保持される。ＦＥＴＣＨおよびＨＲＤＹビットは下記に示すように読み取り転送を実行するように使用される：
１．ホストがＨＲＤＹビットを設定するためにポーリングする。
２．ホストが希望するＨＰＩＡ値を書き込む。このステップはもしもＨＰＩＡが既にその希望する値に設定されている場合は飛ばされる。
３．ホストが１をＦＥＴＣＨビットに書き込む。
４．ホストがＨＲＤＹビットを設定するためにポーリングする。
５．ホストがＨＰＩＤ読み取り動作を実行する。この場合、ＨＰＩは既に準備完了状態（ＨＲＤＹビット＝１）にある。
−もしもこれが後更新を具備した読み取りで有った場合、４へ。
−同一位置からの読み取りの場合、３へ。
−異なるアドレスからの読み取りの場合、２へ。
【０２０３】
ＨＲＤＹビットは単独で下記のように書き込み動作に使用できる：
１．ホストがＨＲＤＹビットを設定するためにポーリングする。
２．ホストが希望するＨＰＩＡ値を書き込む。このステップはもしもＨＰＩＡが既にその希望する値に設定されている場合は飛ばされる。
３．ホストはＨＰＩＤ書き込み動作を実行する。
−別の書き込み動作の場合、１へ。
【０２０４】
ＤＳＰＩＮＴおよびＨＩＮＴ機能動作
ホストおよびＣＰＵはＨＰＩＣレジスタ内のビットを用いて互いに割り込みをかけることが出来る。この副章はこの処理工程に関する更に詳しい情報を提供する。
【０２０５】
ホスト装置がＣＰＵに割り込みをかけるためにＤＳＰＩＮＴを使用する
ホストはＣＰＵにＨＰＩＣ内のＤＳＰＩＮＴビットへ書き込むことで割り込みをかけることが出来る。ＤＳＰＩＮＴビットは内部ＤＳＰＩＮＴ信号に直結されている。ＤＳＰＩＮＴ＝０の時にＤＳＰＩＮＴ＝１を書き込むことにより、ホストはＤＳＰＩＮＴ信号に０から１の遷移を引き起こすことが出来る。割り込み選択器を用いて適切に選択されると、この遷移はＣＰＵによって割り込み条件として検出される。ＣＰＵはＤＳＰＩＮＴ＝１を書き込むことによってＤＳＰＩＮＴビットを消去することが出来る。ホストまたはＣＰＵのどちらかがＨＰＩＣにＤＳＰＩＮＴ＝０を書き込んだとしても、ＤＳＰＩＮＴビットにも信号にも影響を与えない。
【０２０６】
ＣＰＵがホストに割り込みをかけるためにＨＩＮＴ−を使用する
ＣＰＵはＨＰＩＣ内のＨＩＮＴビットに書き込むことにより、活性低割り込み条件をＨＩＮＴ−信号上に送ることが出来る。ＨＩＮＴビットは反転されてＨＩＮＴピンに直結される。ＣＰＵはＨＩＮＴ＝１を書き込むことによりＨＩＮＴ活性低を送ることが出来る。ホストはＤＳＰＩＮＴ＝１を書き込むことによりＨＩＮＴ−を非活性高状態に消去することが出来る。ホストまたはＣＰＵのどちらかがＨＰＩＣにＨＩＮＴ＝０を書き込んだとしても、ＨＩＮＴビットにもＨＩＮＴ信号にも影響を与えない。このビットはホストインタフェース側で２度読み取られ、もしもＣＰＵが２つの読み取り動作の間にこれらのビットの一方または両方を変更した場合、ホストによる第一及び第二半ワードの読み取りは異なるデータを表す。
【０２０７】
ホストアクセス順序
ホストはＨＰＩへのアクセスを、最初にＨＰＩＣ、続いてＨＰＩＡを初期化することで開始し、次にＨＰＩＤにデータを書き込んだり、そこからデータを読み取ったりする。ＨＰＩＤの読み取りまたは書き込みは内部サイクルを開始し、これは希望するデータをＨＰＩＤとＤＭＡ補助チャンネルとの間で転送する。任意のＨＰＩレジスタへのホストアクセスは、ＨＰＩバス上で２度の半ワードアクセスを要求する：第一はＨＨＷＩＬ低で、そして第二はＨＨＷＩＬ高で行われる。典型的にホストは第一半ワード／第二半ワード（ＨＨＷＩＬ低／高）の順番は壊さない。もしもこの順番が不適切に壊されると、データが失われたり、予期しない動作が結果として生じる可能性がある。第一半ワードアクセスは先行のＨＰＩ要求が完了するまで待たなければならない。先行要求にはＨＰＩＤ書き込みおよび事前フェッチＨＰＩＤ読み取りが含まれる。従ってＨＰＩはＨＰＩがこの要求を開始できるまでＨＲＤＹ−高状態を主張しない。第二半ワードアクセスは常にＨＲＤＹ−活性低で行われるが、それは先行する全てのアクセスが第一半ワードアクセスまでに完了してしまうからである。
【０２０８】
ＨＰＩＣおよびＨＰＩＡのホスト初期化（この章の図の中の全ての数値は１６進数である）
データにアクセスする前に、ホストは最初にＨＰＩＣ，特にＨＷＯＢビットを初期化し、続いてＨＰＩＡを初期化しなければならない（ＨＷＯＢがＨＰＩＡアクセスに影響を与えるため、この順序でなければならない。）ＨＷＯＢを初期化した後、ホストはＨＰＩＡに正しい半ワード整列で書き込むことが出来る。表２２および表２３は、それぞれＨＷＯＢ＝１およびＨＷＯＢ＝０に対する初期化順序を図示している。この例に於いて、ＨＰＩＡは80001234h に設定される。これらの全てのアクセスに於いて、ＨＰＩＣ内のＨＲＤＹビットが設定されることに注意されたい（ビット１９および３）。
【０２０９】
【表２３】
0004285803.tif 000024
【０２１０】
【表２４】
0004285803.tif 000025
【０２１１】
自動更新を伴わないＨＰＩＤ読み取りアクセス
此処で先に説明したようにＨＰＩが初期化されると仮定すると、ホストは自動更新を行わずにそのアドレスに読み取りアクセスを行おうとする。ホストはアドレス80001234h のワードの読み取りを欲しており、その位置のワードの値が789ABCDEh であると仮定する。表２４および表２５は、それぞれＨＷＯＢ＝１およびＨＷＯＢ＝０に対するこのアクセスを図示している。第一半ワードアクセスに際し、ＨＰＩは全ての先行の要求が完了するまで待つ。この時間の間、ＨＲＤＹ−は非活性高状態にに保持される。従ってＨＰＩは読み取り要求をＤＭＡ補助チャンネルに送る。もしも先行の要求のし掛かりが無い場合は、これはＨＳＴＲＢ−の立ち下がりで生じる。ＨＲＤＹ−はＤＭＡ補助チャンネルが要求されたデータをＨＰＩＤの中にロードするまで高状態に留まる。全ての補助チャンネル読み取りはワード読み取りであるため、第二読み取りアクセスの初めに、そのデータは既にＨＰＩＤ内に存在している。従って第二半ワードＨＰＩＤ読み取りは決して準備中条件に遭遇することはなく、ＨＲＤＹ−は低状態に留まっている。ＨＰＩがワード読み取りのみを行うので、バイト有効は重要でないことに注意されたい。
【０２１２】
【表２５】
0004285803.tif 000026
【０２１３】
【表２６】
0004285803.tif 000027
【０２１４】
自動更新を具備したＨＰＩＤ読み取りアクセス
自動更新機能の結果、効率的な順番のホストアクセスが実現できる。ＨＰＩＤ読み取りおよび書き込みアクセスの両方に対して、これはホストが更新されたアドレスをＨＰＩＡの中にロードする手間を省く。読み取りアクセスに関して、次のアドレスで指定されたデータのフェッチが現行の読み取りが完了した後に直ちに開始される。後続の読み取りの間の間隔は通常事前フェッチデータであるので、次のアクセスへの待ち時間は削減される。全ての事前フェッチデータは、いずれかのＨＰＩレジスタが書き込まれるかまたは次のＨＰＩ読み取りの後か、いずれにせよ先に行われるものが終わるまで残っている。事前フェッチはまたホストがＦＥＴＣＨ＝１をＨＰＩＣに書き込んだ後にも起こすことが出来る。もしも次のＨＰＩアクセスがＨＰＩＤ読み取りの場合、データの再フェッチは行われず、事前フェッチされたデータがホストへ送られる。それ以外の場合は、ＨＰＩは事前フェッチが完了するまで未だ待たなければならない。
【０２１５】
表２６は自動更新を備えた読み取りアクセスを示す。第一半ワードアクセスが完了した後（第一ＨＳＴＲＢ−の立ち上がりで）、アドレスは次のワードまたは80001238h に更新される。その位置のデータは87654321h であると仮定する。このデータは事前フェッチされＨＰＩＤの中にロードされる。事前フェッチはＨＳＴＲＢ−の立ち上がりで第二半ワード読み取りに対して開始される。
【０２１６】
【表２７】
0004285803.tif 000028
【０２１７】
【表２８】
0004285803.tif 000029
【０２１８】
自動更新有りのホストデータ書き込み
ＨＰＩへの書き込みアクセス中に、ＨＰＩＤの第一半ワード部分（ＨＥＯＢで選択されるように下位半ワードまたは上位半ワード）は、ホストからやってくるデータで上書きされ、第一ＨＢＥ−１：０はＨＨＷＩＬピンが低状態の間にラッチされる。ＨＰＩＤの第二半ワード部分はホストからやってくるデータで上書きされ、第二ＨＢＥ−１：０対はＨＨＷＩＬピンが高状態の間にラッチされる。この書き込みアクセスの最後に（ＨＳＴＲＢ−の第二立ち上がりで）、ＨＰＩＤは３２ビットワードとしてＨＰＩＡで指定されたアドレスに４つの関連するバイト有効と共に転送される。
【０２１９】
表２８および表２９はそれぞれ、ＨＷＯＢ＝１およびＨＷＯＢ＝０の場合のＨＰＩＤ書き込みアクセスを図示する。ホストは5566h を場所80001234h の下位１６ビットに書き込み、この場所は既にＨＰＩＡで指定されている。この場所は値０で始まると仮定されている。ＨＰＩは全ての先行する転送がＨＲＤＹ−を不活性高状態に設定することで完了するまでホストを保持する。また、一度第一半ワードが準備完了状態となると、第二半ワードは決して準備中状態にはならない。もしもＨＰＩＤ内で待ち状態の処理待ちの書き込みが無い場合は、書き込みアクセスは通常は準備中状態を経ずに進行される。ＨＢＥ−１：０は下位１６ビットを転送する場合にのみ有効であることに注意されたい。
【０２２０】
【表２９】
0004285803.tif 000030
【０２２１】
【表３０】
0004285803.tif 000031
【０２２２】
自動更新有りのＨＰＩＤ書き込みアクセス
表３０および表３１はそれぞれＨＷＯＢ＝１およびＨＷＯＢ＝０に対する、自動更新有りのホスト書き込みデータを図示する。これらの例は5.4.4,と同じであるが、ＨＣＮＴＬ１：０の値と続けてアドレス80001238のワードの上位バイトに３３を書き込む点が異なっている。更新はＨＳＴＲＢ−の立ち上がりで次のＨＰＩＤ書き込みアクセスに際して行われる。もしも次のアクセスがＨＰＩＤまたはＨＰＩＣアクセス、またはＨＰＩＤ読み取りの場合、自動更新は行われない。
【０２２３】
【表３１】
0004285803.tif 000032
【０２２４】
【表３２】
0004285803.tif 000033
【０２２５】
単一半ワードサイクル
通常動作時、全ての転送は２つの半ワードアクセスで構成されなければならない。しかしながら、高速動作に対しては使用者は単一半ワードアクセスを実行することも可能である。これらはいくつかの場合には有用である：
ＨＰＩＣ：表２２に於いて全ＨＰＩＣには第一書き込みの後に正しく書き込まれていることに注意されたい。ＨＰＩＣに書き込む際に、ホストはＨＨＷＩＬに注意を払う必要もないし、また両方の半ワードに対して２つの連続した書き込みを行う必要も無い。同様に、ホストはＨＰＩＣを一度だけ読みとるように選択することも可能である、何故ならば２つの半ワードとも同一の値を含んでいるためである。
ＨＰＩＡ：表２２に於いて、ＨＨＷＩＬおよびＨＷＯＢで自動的に選択されたＨＰＩＡアクセスの部分は各半ワードアクセスの後に更新されることに注意されたい。従ってＨＰＩＡの上位または下位１６ビットのみを変更するためには、ホストは修正変更したいと欲している半ワードをＨＨＷＩＬとＨＷＯＢとの組み合わせを通して選択する必要があるだけである。同様に、ホストはＨＰＩＡの希望する半ワードのみを読みとるように選択することも可能である。
ＨＰＩＤ読み取りアクセス：読み取りアクセスは実際第一半ワードアクセスでトリガを掛けられる（ＨＨＷＩＬが低状態）。従って、もしも読み取りに際してホストは第一半ワードのみに関心がある（ＨＷＯＢで選択された下位または上位半ワード）、これは第二アドレスを要求する必要が無い。しかしながら、事前フェッチは第二半ワードが読みとられない限り生じない。第一半ワードの後続の読み取り（ＨＨＷＩＬ低）または新たな値のＨＰＩＡへの書き込みは、全ての事前フェッチに勝る。一方、第二半ワードのみの読み取り（ＦＦＷＩＬ高）は認められず、結果として未定義の動作となる。
書き込みアクセス：書き込みアクセスは第二半ワードアクセス（ＦＦＷＩＬが高状態）でトリガを掛けられる。従って、もしもホストが後続の書き込みアクセス中に、ＨＨＷＩＬ高（および関連するバイト有効）で選択されたＨＰＩＤの一部を変更したいだけの場合は、単一サイクルのみを開始する必要があるだけである。この技術は一義的にメモり充填に使用される。これを行うために、ホストは第一アクセスの両方の半ワードにＨＢＥ１：０＝００を書き込む。後続の書き込みアクセスに際して、ホストは第一書き込みアクセスで行ったのと同様に、ＨＨＷＩＬで選択されたＨＰＩＤの部分に同一の値を確実に書き込む。この場合、ホストは全ての書き込みアクセスに際して自動更新書き込み（ＨＣＮＴＬ１；０＝０１）を実行する。
【０２２６】
リセット中のＨＰＩメモリのアクセス
ＨＰＩはチップがリセット中は使用できない。しかしながら、ブートモードによってはホストがＣＰＵのメモリ空間（アクセスする前に外部メモリを構成するためにＥＭＩＦ構成レジスタを含む）に書き込むことを可能とする。装置はリセット状態ではないが、ＣＰＵ自体はブートが完了するまでリセット状態にある。更に詳しくは後のブートロードの称
参照されたい。
【０２２７】
ＥＭＩＦ
概要
外部メモリインタフェース（ＥＭＩＦ）は下記を含むいくつかの外部装置に対して接続要素不要のインタフェースを支援する：
ＣＰＵ速度の１倍および１／２倍で実行される同期バーストＳＲＡＭ（ＳＢＳＲＡＭ）。
ＣＰＵ速度の１／２倍で実行される同期ＤＲＡＭ（ＳＤＲＡＭ）。
非同期ＳＲＡＭ，ＲＯＭ，およびＦＩＦＯを含む非同期装置。ＥＭＩＦはこれらのインタフェースに対して高度にプログラム可能なタイミングを提供する。
【０２２８】
外部メモリインタフェース（ＥＭＩＦ）は図４に示すように４つの要求発信者からの外部バスの要求にサービスを行う：
ＣＰＵプログラムフェッチにサービスを行うオンチッププログラムメモリ制御装置（ＰＭＣ）。
ＣＰＵデータフェッチにサービスを行う、オンチップデータメモリ制御装置（ＤＭＣ）。
オンチップＤＭＡ制御装置。
外部共有メモリ装置。
【０２２９】
もしも複数の要求が同時に到着したとすると、ＥＭＩＦはこれらの優先順位付けを行い、必要なサイクルを実行しなければならない。ＥＭＩＦのブロック図が図２３に示されている。表３２はＥＭＩＦ信号を記述している。
【０２３０】
【表３３】
0004285803.tif 000034
【０２３１】
ＥＭＩＦのリセット
装置上の／ＲＥＳＥＴピンを使用するハードウェアリセットは強制的に全てのレジスタ値をそれらのリセット値とする。リセット中、全ての出力はそれらの無効レベルに駆動されるが、クロック出力（ＳＤＣＬＫ，ＳＳＣＬＫ，ＣＬＫＯＵＴ１およびＣＬＫＯＵＴ２）は例外であって、これらはその信号を使用している外部論理回路が同期を取れるように連続して駆動される。
【０２３２】
ＥＭＩＦレジスタ
ＥＭＩＦの制御それを支援しているメモリインタフェースはＥＭＩＦ内のメモリ写像されたレジスタの組を通して維持される。任意のＥＭＩＦレジスタへの書き込みは、そのレジスタを使用している全ての仕掛かり中のＥＭＩＦアクセスが完了するまで完了しない。このメモリ写像されたレジスタが表３３に示されている。
【０２３３】
【表３４】
0004285803.tif 000035
【０２３４】
ＥＭＩＦグローバル制御レジスタ
ＥＭＩＦグローバル制御レジスタ（図２４および表３４）は全てのＣＥ空間に共通なパラメータを構成する。
【０２３５】
【表３５】
0004285803.tif 000036
【０２３６】
６．２．２  ＣＥ空間制御レジスタ
４つのＣＥ空間制御レジスタ（図２５および表３５）はＥＭＩＦでサポートされている４つのＣＥ空間に対応している。ＭＴＹＰＥフィールドは対応するＣＥ空間に対するメモリ型式を識別する。もしもＭＴＹＰＥがＳＤＲＡＭまたはＳＢＳＲＡＭを選択している場合は、レジスタ内の残りのフィールドは適用されない。もしも非同期型が選択された場合（ＲＯＭまたは非同期）、残りのフィールドはアドレスの整形およびその空間へアクセスするための制御信号とを指定する。ＣＥ空間制御レジスタの修正変更はＣＥ空間が無効となるまで生じない。
【０２３７】
【表３６】
0004285803.tif 000037
【０２３８】
ＳＤＲＡＭ制御レジスタ
ＳＤＲＡＭ制御レジスタは全てのＣＥ空間用のＳＤＲＡＭパラメータを制御し、これはそれが関連するＣＥ空間制御レジスタ（図２５）のＭＴＹＰＥフィールド内のＳＤＲＡＭメモリ型式を指定する。ＳＤＲＡＭ制御レジスタは全てのＳＤＲＡＭ空間を制御するので、各々の空間は同一のリフレッシュおよびページ特性を備えたＳＤＲＡＭを含まなければならない。
【０２３９】
【表３７】
0004285803.tif 000038
【０２４０】
ＳＤＲＡＭタイミングレジスタ
ＳＤＲＡＭリフレッシュ周期レジスタ（図２７および表３７）はＳＤＲＡＭのリフレッシュＲＥＲＩＯＤをＣＬＫＯＵＴ２サイクル（ＣＰＵクロック速度の１／２倍）で制御する。オプションとして、このリフレッシュ周期はＣＰＵへの割り込みを送ることが出来る。従って、このカウンタはＳＤＲＡＭがそのシステムで使用されない場合は、汎用タイマとして使用される。ＣＯＵＮＴＥＲ値はＣＰＵで読み取ることが出来る。カウンタがゼロに達すると、これはＲＥＲＩＯＤで自動的に再ロードされ、割り込みがＣＰＵに送られる。
【０２４１】
【表３８】
0004285803.tif 000039
【０２４２】
ＳＤＲＡＭインタフェース
ＥＭＩＦは１６Ｍビット、２バンクおよび６４Ｍビット、４バンクＳＤＲＡＭをサポートし、システム設計者に高速かつ高密度メモリに対するインタフェースを提供する。以下の章はＥＭＩＦ  ＳＤＲＡＭインタフェースを説明している。ＥＭＩＦは表３８に示されるＳＤＲＡＭ命令を支援する。１６Ｍビットおよび６４ＭビットＳＤＲＡＭインタフェースが図２８および図２９に示されている。
【０２４３】
表４０はピン接続とＳＤＲＡＭ動作に特定された関連の信号を説明している。表３９はＥＭＩＦ経由で構成することが可能な全てのＳＤＲＡＭを示す。
【０２４４】
【表３９】
0004285803.tif 000040
図２８および図２９に於いて、ＣＥ０，ＣＥ２およびＣＥ３はＳＤＲＡＭで使用可能である。従って、ｎ＝０，ｎ＝２またはｎ＝３である。またＣＬＫＯＵＴ２はＳＤＣＬＫと同一のタイミングなので、ＳＤＲＡＭの複数のＣＥ空間が使用されかつ追加のドライブ機能が必要なシステムで使用出来る。
【０２４５】
【表４０】
0004285803.tif 000041
【０２４６】
【表４１】
0004285803.tif 000042
【０２４７】
ＳＤＲＡＭ初期化
ＥＭＩＦはいずれかのＣＥ空間がＳＤＲＡＭ用に構成される場合は、ＳＤＲＡＭを初期化するために必要な機能を実行する。ＳＤＲＡＭ初期化はＥＭＩＦ  ＳＤＲＡＭ制御レジスタ内のＩＮＩＴに１を書き込むことで要求される。初期化の事象の実際の手順は下記の通りである：
１．ＳＤＲＡＭとして構成された全てのＣＥ空間に対してＤＣＡＢ命令を実行する。
２．３つのリフレッシュ命令を実行する。
３．ＳＤＲＡＭとして構成された全てのＣＥ空間に対してＭＲＳ命令を実行する。
【０２４８】
ＤＣＡＢサイクルは、／ＨＯＬＤ入力が有効でない（ホスト要求）場合は、リセット後直ちに実行される。もしも／ＨＯＬＤが有効の場合、ＤＣＡＢ命令はそのホールド条件が取り除かれるまで実行されない。この場合、外部の要求者はＳＤＲＡＭ初期化を実行しその制御を行うまで、ＳＤＲＡＭバンクのいずれに対してもアクセスを試みてはならない。
【０２４９】
ページ境界監視
ＳＤＲＡＭはページメモリ型なので、ＥＭＩＦ  ＳＤＲＡＭ制御装置はＳＤＲＡＭの有効行を監視して行の境界がアクセス中にまたがらないようにしている。この監視を行うために、ＥＭＩＦは開かれているページのアドレスを格納し、そのアドレスを後続のＳＤＲＡＭバンクのアクセスに備えて比較を実行する。この格納および比較は各々のＣＥ空間に対して独立して実施される。
【０２５０】
比較されるアドレスビットの数は、ＲＭＩＦ  ＳＤＲＡＭ制御レジスタのＳＤＷＩＤフィールド内にプログラムされたページサイズの関数である。もしもＳＤＲＡＭ制御フィールド内のＳＤＷＩＤ＝０の場合は、ＥＭＩＦはＳＤＲＡＭとして構成されたＣＥ空間が４つの８ビット幅ＳＤＲＡＭを有すると予測し、これらのページサイズは５１２である。従って比較される論理バイトアドレスビットは２６：１１である。もしもＳＤＷＩＤ＝１の場合は、ＥＭＩＦはＳＤＲＡＭのＣＥ空間が２つの１６ビット幅ＳＤＲＡＭを有すると予測し、このページサイズは２５６である。従って比較される論理バイトアドレスビットは２３：１０である。
【０２５１】
もしもアクセス中にページ境界をまたがると、ＥＭＩＦはＤＣＡＢ命令を実行し新たな行アクセスを開始する。また、アクセスの方向の変更（読み取りから書き込みまたは書き込みから読み取り）はページ欠落を引き起こす。現行のアクセスを単に終了するだけでは、有効ＳＤＲＡＭ行を強制的に閉じさせる条件とはならないことに注意されたい。ＥＭＩＦは先を見越してこの有効行を閉じる必要が生じるまで開いたまま残している。この機能により無効化／再有効化のオーバーヘッドが減り、インタフェースをメモリアクセスのアドレス場所指定に全面的に利用できる。
【０２５２】
リフレッシュ
ＳＤＲＡＭ制御レジスタ内のＲＦＥＮビット（表３６）はＥＭＩＦのＳＤＲＡＭリフレッシュモードを選択する。ＲＦＥＮフィールド内の値が０であると、全てのＥＭＩＦリフレッシュを無効とする、使用者はリフレッシュが外部装置内で行われることを保証しなければならない。ＲＦＥＮフィールド内の値が１の場合は、以下に説明するようにＥＭＩＦがＳＤＲＡＭのリフレッシュを実行出来るように有効化する。
【０２５３】
リフレッシュ命令（ＲＥＦＲ）は、ＣＥ空間制御レジスタ（図２５）のＭＴＹＰＥフィールドを具備したＳＤＲＡＭを使用するように選択された全てのＣＥ空間に対して全ての／ＣＥ信号を有効とする。ＲＥＦＲは自動的にＤＣＡＢ命令に先立って行われる。これはＳＤＲＡＭを具備した全てのＣＥ空間が動作していないことを保証する。ＤＣＡＢ命令に続いて、ＥＭＩＦは”先行”リフレッシュの実行を開始し、これをその他のＳＤＲＡＭアクセスが仕掛かり中で無ければＥＭＩＦ  ＳＤＲＡＭ制御レジスタ内のＰＥＲＩＯＤ値で定義された速度で行う。
【０２５４】
ＳＤＲＡＭインタフェースは送られてきたリフレッシュ要求の数を監視しそれらを実行する。ＥＭＩＦ  ＳＤＲＡＭ制御ブロックの中で小さな２ビットカウンタがリフレッシュ要求の未処理件数を監視する。このカウンタはリフレッシュ要求を受ける毎に増加更新し、リフレッシュサイクルが実行される毎に減数更新する。このカウンタは値が１１または００で飽和する。リセット時にはこのカウンタは自動的に１１にセットされ、アクセスが開始される前にいくつかのリフレッシュが必ず行えるようにしている。
【０２５５】
図３０に示されているように、ＥＭＩＦ  ＳＤＲＡＭ制御装置はＳＤＲＡＭリフレッシュ要求の優先順位付けを、ＥＮＩＦ要求者からそこに送られたその他のデータアクセス要求との間で行う。下記の規則に従う：
カウンタの値が１１の場合はページ情報レジスタを無効とし、制御装置に現行ＳＤＲＡＭページを強制的に閉じさせる。値が１１であることは緊急リフレッシュ条件を示している。従って、ＥＭＩＦ  ＳＤＲＡＭ制御装置は３つのＲＥＦＲ命令を実行し、これによってＤＣＡＢ命令に続いて現行アクセスの残りを処理する前にカウンタを００まで減数更新する。もしもＳＤＲＡＭが複数のＣＥ空間内に存在する場合は、ＤＣＡＢリフレッシュ手順がＳＤＲＡＭを含む全ての空間内で発生する。
ＳＤＲＡＭインタフェースのアイドリング時間中に、ＥＭＩＦからの仕掛かり中の要求が１つも無い場合は、このＳＤＲＡＭインタフェースはカウンタ値がゼロで無い限りＲＥＦＲ命令を実行する。この機能により、後に行われる実際のＳＤＲＡＭアクセス中に緊急リフレッシュが行われる可能性が減少する。もしもＳＤＲＡＭが複数のＣＥ空間内に存在する場合、このリフレッシュは全てのインタフェースが無効ページ情報を具備してアイドリング中の場合にのみ発生することに注意されたい。
【０２５６】
ＥＭＩＦ  ＳＤＲＡＭインタフェースはＣＡＳ−先行−ＲＡＳリフレッシュサイクルをＳＤＲＡＭに対して実行する。ＳＤＲＡＭ製造者の中にはこれを自動リフレッシュと呼ぶ者も居る。ＲＥＦＲ命令の前に、ＤＣＡＢ命令が全てのＣＥ空間に対して実行され、全ての動作中のバンクが確実に閉じられるようにＳＤＲＡＭに指示する。ページ情報はＲＥＦＲ命令の前後で常に無効である；従ってリフレッシュサイクルは常にページを欠落させる。非動作サイクルがリフレッシュ命令の前に必要なことを注意されたい。
【０２５７】
モードレジスタセット
図３１に示さるように、ＥＭＩＦはＤＡＣＢ命令と続いてＭＲＳ命令を、ＥＭＩＦ  ＳＤＲＡＭ制御レジスタのＩＮＩＴフィールドがセットされると必ず自動的に実行する。ＩＮＩＴは装置がリセットされるか、または使用者が書き込むことでセット出来る。ＤＣＡＢおよびＲＥＦＲ命令と同様に、ＭＲＳ命令はＳＤＲＡＭとして構成されている全てのＣＥ空間に対してＭＴＹＰＥフィールドを通して保持するように実行される。ＭＲＳサイクルに続いて、ＩＮＩＴビットは自分自身で消去して複数のＭＲＳサイクルが発生することを防止している。続いてバスの制御をＥＭＩＦに戻す前にその元の値に戻さなければならない。これに代わる方法として、使用者がＥＭＩＦグローバル制御レジスタ内のＨＯＬＤおよびＨＯＬＤＡビットをポーリングして、外部保持の完了を検出すると、ＥＭＩＦ  ＳＤＲＡＭ制御レジスタ内のＩＮＩＴビットを設定することによってＥＭＩＦを再初期化することが出来る。
【０２５８】
ＥＭＩＦは常にモードレジスタ値として0x0030をＭＲＳ命令中に使用する。表４１はモードレジスタビット、ＥＭＩＦピン、およびそのモードレジスタ値の間の写像を示す。
【０２５９】
表４２はこのモードレジスタ値で選択されたＳＤＲＡＭ構成を示す。
【０２６０】
【表４２】
0004285803.tif 000043
【０２６１】
【表４３】
0004285803.tif 000044
【０２６２】
アドレスシフト
同一のＥＭＩＦピンが行および列アドレスをアドレス指定するため、ＥＭＩＦインタフェースは行および列アドレス選択の中でアドレスを適切にシフトする。表４３はバイトアドレスのビット間の翻訳とそれらが行および列アドレスとしてＥＡピン上に現れる様子を示している。ＳＤＲＡＭはアドレス入力を制御と同様にアドレスとしても使用する。この考察の中で下記の項目が全体像を明らかにする：
ＳＤＲＡＭのバンク選択ビット（１６ＭビットＳＤＴＡＭ上のＥＡ１１；６４ＭビットＳＤＲＡＭ上のＥＡ１３，ＥＡ１２）に対応するアドレスラインがＳＤＲＡＭ制御装置により内部的にラッチされる。これによりバンク選択がＲＥＡＤおよびＷＲＴ命令中に確実に正しく保持される。従って、ＥＭＩＦはこれらの値を行および列アドレスの両方で示されるように維持する。
ＥＭＩＦはバンク選択（ＳＤＡ１０）以下のアドレスビットを、／ＲＡＳが有効低で無い限り強制的に低とし、アクセスのページの終了時点のＤＣＡＢ命令中に高状態とする。これによりＲＥＡＤまたはＷＲＴ命令に続いて発生する自動事前チャージを防止することが出来る。
【０２６３】
【表４４】
0004285803.tif 000045
【０２６４】
５つのＳＤＲＡＭタイミングパラメータがＥＭＩＦをＳＤＲＡＭ速度制限から解除する。これらのパラメータの３つはＥＭＩＦ  ＳＤＲＡＭ制御レジスタ経由でプログラム可能である；残りの２つは表４４に示されるように一定値と仮定される。３つのプログラム可能値はＳＤＲＡＭのＥＭＩＦ制御がこれらの最小タイミング要求に従うことを保証する。個別のＳＤＲＡＭに対して適切なパラメータに関してはＳＤＲＡＭデータシートを参照されたい。
【０２６５】
【表４５】
0004285803.tif 000046
【０２６６】
図３２に示されるように、ＳＤＲＡＭ無効化（ＤＣＡＢ）はハードウェアリセット後、またはＥＭＩＦ  ＳＤＲＡＭ制御レジスタ内のＩＮＩＴ＝１の時に実行される。このサイクルはまたページ境界を閉じる際に、ＲＥＦＲ，ＭＲＳの前にＳＤＲＡＭによっても要求される。ＤＣＡＢ命令中に、ＳＤＡ１０は高状態に駆動されて全てのＳＤＲＡＭバンクが無効状態になることを保証する。
【０２６７】
ＳＤＲＡＭ読み取り
図３３に示されるように、ＳＤＲＡＭ読み取り中に選択されたバンクがＡＣＴＶ命令中の行アドレスで有効化される。この例では４つの読み取り命令が４つの異なる列アドレスに対して実行される。ＥＭＩＦは３つのＣＡＳ待ち時間と１つのバースト長とを使用する。３サイクルの待ち時間により、データは対応する列アドレスの３サイクル後に現れる。最後の列アクセスに続いて、ＤＣＡＢサイクルがそのバンクを無効とするために実行される。１つのアイドリングサイクルが最後の読み取り命令とＤＣＡＢ命令との間に挿入されていて、ＳＤＲＡＭタイミング要求に合わせている。データの転送はＤＣＡＢ命令中およびその前に完了していることに注意されたい。もしも新たなアクセスが仕掛かり中で無い場合は、ＤＣＡＢ命令はページ情報が無効となる時点まで実行されない。列アクセスおよびＤＣＡＢ命令中のＥＡ［１３：１１］の値は、ＡＣＴＶ命令中にラッチされた値である。
【０２６８】
ＳＤＲＡＭ書き込み
図３４に示されるように、全てのＳＤＲＡＭ書き込みは１バースト長である。バンクはＡＣＴＶ命令中の列アドレスで有効化される。書き込みに際しては待ち時間が無いので、データはその列アドレスと同一サイクルで出力される。無効バイトへの書き込みは適切なＤＱＭ入力経由で無効化される；この機能はバイトおよび半ワード書き込みに有効である。最後の書き込み命令に続いて、１アイドリングサイクルが挿入されてＳＤＲＡＭタイミング要求に整合させる。続いてそのバンクはＤＣＡＢ命令によって無効化され、メモリインタフェースは新たなページアクセスを開始することが出来る。もしも仕掛かり中の新たなアクセスが存在しない場合は、ＤＣＡＢ命令はページ情報が無効となる（章６．３．２参照）時まで実行されない。列アクセスおよびＤＥＡＣ命令の間ＥＡ［１３：１１］上の値は、ＡＣＴＶ命令中にラッチされた値である。
【０２６９】
ＳＢＲＡＭインタフェース
図３５に示されるように、ＥＭＩＦは工業規格同期バーストＳＲＡＭに直接インタフェースを取る。このメモリインタフェースは高速メモリインタフェースをＳＤＲＡＭのいくつかの制限を受けることなく可能とする。最も注目すべき点は、ＳＢＳＲＡＭはＳＲＡＭ装置であるので同一方向への随意アクセスが単一サイクルで行える事である。ＳＢＳＲＡＭインタフェースはＣＰＵクロック速度またはこの１／２の速度のいずれかで動作する。この選択はＥＭＩＦグローバル制御レジスタ内のＳＳＣＲＴビットの設定に基づいて行われる。
【０２７０】
表４５の４つのＳＢＳＲＡＭ制御ピンは現行動作を決定するＳＳＣＬＫの立ち上がりでＳＢＳＲＡＭによりにラッチされる。これらの信号はＳＢＳＲＡＭ用のチップ選択ラインが低状態の場合にのみ有効である。／ＡＤ信号はＳＢＳＲＡＭ装置が、アドレスを十分早く提供することの出来ない制御装置とインタフェースするためにアドレスを内部的に生成出来るようにするために使用される。ＥＭＩＦはアドレスを要求される速度で生成できるからこの信号を使用する必要は無い。
【０２７１】
【表４６】
0004285803.tif 000047
【０２７２】
ＳＢＳＲＡＭアクセス最適化
ＳＢＳＲＡＭはその構造上表には現れない、これは読み取りデータがアドレス及び制御情報に続いていることを意味する。結果として、ＥＭＩＦはいくつかのサイクルを読み取りと書き込み命令の間に挿入し、ＥＤ［３１：０］バス上で競合が生じないようにしている。ＥＭＩＦはこのやり直しの損失を最小に維持する。バス上で向きを変更する際に最初に２サイクルの損失が存在する。一般的に規則は次の通りである；バーストシーケンスの最初のアクセスは２サイクル開始損失を被る。
【０２７３】
ＳＢＳＲＡＭ読み取り
図３６はＳＢＳＲＡＭの１６ワード読み取りを示す。アクセス毎に新たなアドレスがＳＢＳＲＡＭストローブされ、これらは／ＳＳＡＤＳストローブ低で指示される。最初のアクセスは２サイクルの初期開始損失を必要とする；その後全てのアクセスが単一ＳＳＣＬＫサイクルで生じる。
【０２７４】
ＳＢＳＲＡＭ書き込み
図３７はＳＢＳＲＡＭの６ワード書き込みを示す。アクセス毎に新たなアドレスがＳＢＳＲＡＭの中にストローブされる。最初のアクセスは２サイクルの初期開始損失を必要とする；その後全てのアクセスは単一ＳＳＣＬＫサイクルで行うことが出来る。
【０２７５】
非同期インタフェース
非同期インタフェースは使用者に構成可能メモリサイクル型式を提供し、種々のメモリおよび周辺機器型式とインタフェースを取るために使用される；ＳＲＡＭ，ＥＰＲＯＭ，ＦＬＡＳＨ，同様にＦＰＧＡおよびＡＳＩＣ設計を含む。
【０２７６】
表４６は非同期インタフェースピンを示す。
【０２７７】
図３８は標準ＳＲＡＭへのインタフェースを示す。図３９はＦＩＦＯとのインタフェースを示す。図４０、図４１、および図４２は８−、１６−、および３２ビットＲＯＭへのインタフェースを示す。ＲＯＭはどのＣＥ空間ともインタフェースされるが、これはしばしばＣＥ１空間で使用されるがそれはこの空間が３２ビット未満の幅に対して構成されているためである。
【０２７８】
【表４７】
0004285803.tif 000048
【０２７９】
ＲＯＭモード
ＥＭＩＦはＥＭＩＦ  ＣＥ空間制御レジスタ内のＭＴＹＰＥフィールドで選択された８−および１６−ビット幅ＲＯＭアクセスモードをサポートする。これらの狭い幅のメモリ空間からデータを読みとる際に、ＥＭＩＦは複数の読み取りを３２ビット幅値の中に詰め込む。このモードは第一に８−ビットおよび１６−ビットＲＯＭ装置へのワードアクセスを意図している。従って、下記の制約が適用される：
読み取り動作は、アクセスサイズまたはメモリ幅に関係なく常に３２ビット読み取りである。
アドレスは狭いメモリに対する正しいアドレスを提供するために適切にシフトアップされる。シフト量は１６ビットＲＯＭに対しては１、また８ビットＲＯＭに対しては２である。従って、高アドレスビットはシフトアウトされ、／ＣＥ空間が全ＥＡバスに広がる場合はアクセスは取りまとめられる。表４７は全ての可能な非同期メモリ幅に対するＣＥ１空間へのアクセス中に、どのアドレスビットがＥＡバス上に存在するかを示す。
ＥＭＩＦは常に下位アドレスを最初に読み取り、これらを最下位バイトに詰め込み、後続のアクセスを高位順位のバイトの中に詰め込む。
【０２８０】
従って、ＲＯＭ内で期待される詰め込みフォーマットは、ＬＥＮＤＩＡＮビットの値に関係なく常に小エンディアンである。
【０２８１】
【表４８】
0004285803.tif 000049
【０２８２】
８ビットＲＯＭ
８ビットＲＯＭモードに於いて、アドレスは２つだけ左シフトされバイト幅ＲＯＭへアクセスするためにＥＡ上にバイトアドレスを生成する。ＥＭＩＦは常に４つの後続バイトをワードアクセス内の４バイト（バイトアドレス＝４Ｎ）境界の上に整列させる。バイトは下記のアドレス順序でフェッチされる：４Ｎ，４Ｎ＋１，４Ｎ＋２，４Ｎ＋３。バイトは下記の小エンディアン順序で最上位バイトから最下位バイトへ、３２ビットワードの中へ詰め込まれる：４Ｎ＋３，４Ｎ＋２，４Ｎ＋１，４Ｎ。
【０２８３】
１６ビットＲＯＭ
１６ビットＲＯＭモードに於いて、アドレスは１つ左シフトされ１６ビット幅ＲＯＭへアクセスするためにＥＡ上に半ワードアドレスを生成する。ＥＭＩＦは常に２つの半ワードをワードアクセス内の４バイト（バイトアドレス＝４Ｎ）境界の上に整列させる。半ワードは下記のアドレス順序でフェッチされる：４Ｎ，４Ｎ＋２。半ワードは下記の小エンディアン順序で最上位半ワードから最下位半ワードへ、３２ビットワードの中へ詰め込まれる：４Ｎ＋２，４Ｎ。
【０２８４】
プログラム可能ＡＳＲＡＭパラメータ
ＥＭＩＦは常に非同期アクセスを整形するために高位のプログラム性を可能とする。これを許容するプログラム可能パラメータは：
セットアップ：メモリサイクルの始まり（／ＣＥ低、アドレス有効）と読み取りまたは書き込みストローブの有効化の間の時間。
ストローブ：有効化と読み取り（／ＡＲＥ）またはストローブ（／ＡＷＥ）の無効化との間の時間。
ホールド：読み取りまたは書き込みストローブの無効化とこのサイクルの終わり（これはアドレス変更または／ＣＥ信号の無効化のいずれか）との間の時間。
折り返し時間：装置出力（読み取りデータ）の無効化とメモリ装置の中へのデータ駆動（書き込みデータ）の間の時間。
【０２８５】
これらのパラメータは、ＥＭＩＦ  ＣＥ空間制御レジスタ（図２５）内のフィールド経由でＣＰＵクロックサイクルの形でプログラム可能である。個別のセットアップ、ストローブ、およびホールドストローブパラメータは読み取りおよび書き込みアクセスに対して有効である。ＳＥＴＵＰ、ＨＯＬＤ、およびＳＴＲＯＢＥフィールドは実際のサイクル計数を表すが、これとは対照的にＳＤＲＡＭパラメータはサイクル計数−１である。ＳＥＴＵＰおよびＳＴＲＯＢＥフィールドは最小計数１を有する。ＳＥＴＵＰおよびＳＴＲＯＢＥに対して、計数０は計数１として取り扱われる。ＨＯＬＤは０サイクルにセットされる。しかしながらＴＡフィールドはサイクル計数−１に指定される。図４３はこれらのパラメータの使用方法を図示する。
【０２８６】
非同期読み取り
図４３は３つの非同期読み取りを図示する。第一番目はＣＥ０読み取りで、setup/strobe/hold が２／４／１にセットされている。第二番目は同じであるが外部無効準備完了のためストローブ幅が追加されている。第三番目はＣＥ１読み取りであって、setup/strobe/hold が４／５／３にセットされている。１つの非同期読み取りは下記のように進行する：
セットアップ周期の開始時点で
−／ＣＥが有効低となる。
−／ＡＯＥが有効低となる。
−／ＢＥ［３：０］が有効となる。
−ＥＡが有効となる。
ストローブ周期の開始時点で
−／ＡＲＥが有効低に引き下げられる。
ホールド周期の開始時点で
−／ＡＲＥが無効高に引き上げられる。
−データはＣＬＫＯＵＴ１の立ち上がりでホールド周期の開始（ストローブ周期の終わり）と同時に、／ＡＲＥの低から高への遷移の直前にサンプリングされる。
ホールド周期の終了時点で
−／ＣＥは無効となるが、これは別の読み取りアクセスが同一／ＣＥ空間に対して次のサイクルで予定されていない限りに於いて行われる。
−／ＡＯＥは無効となるが、これは別の読み取りアクセスが同一／ＣＥ空間に対して次のサイクルで予定されていない限りに於いて行われる。
【０２８７】
非同期書き込み
図４３内の第一アクセス、ＣＥ０空間書き込み、は３／６／３のsetup/strobe/hold を具備した非同期書き込みを図示している。１つの非同期書き込みは下記のように進行する。
セットアップ周期の開始時点で
−／ＣＥが有効低となる。
−／ＢＥ［３：０］が有効となる。
−ＥＡが有効となる。
−ＥＤが有効となる。
ストローブ周期の開始時点で
−／ＡＷＥが無効低になる。
ホールド周期の開始時点で
−／ＡＷＥが無効高になる。
−データはＣＬＫＯＵＴ１の立ち上がりでホールド周期の開始（ストローブ周期の終わり）と同時に、／ＡＷＥの低から高への遷移の直前にサンプリングされる。
ホールド周期の終了時点で
−ＥＤが三状態となるが、これは別の書き込みアクセスが同一／ＣＥ空間に対して次のサイクルで予定されていない場合にのみ行われる。
−／ＣＥは無効となるが、これは別の書き込みアクセスが同一／ＣＥ空間に対して次のサイクルで予定されていない場合にらみ行われる。
−もしも次のアクセスが読み取りの場合、折り返し時間のサイクルがＡＯＥが有効となる前に挿入される。
【０２８８】
折り返し時間
図４３はプログラム可能折り返し時間パラメータの使用方法を図示する。バスの競合を避けるためにＥＭＩＦはプログラム可能折り返し時間サイクルを２つの状況で挿入する：
１．別のＣＥ空間への任意のアクセス（非同期であるか否かに関わらず）が続く非同期ＣＥ空間への読み取りアクセスの間。図４３に於いて、これは第二ＣＥ０読み取りとＣＥ１読み取りとの間に生じる。この例において、折り返し時間は２サイクルで、ＥＭＩＦ  ＣＥ０空間制御レジスタ内のＴＡ＝１でセットされる。
２．同一ＣＥ空間への書き込みアクセスが続く、非同期ＣＥ空間への読み取りアクセスの間。１サイクルの一定の折り返し時間が、同一ＣＥ空間への読み取りが続く、書き込みの間に挿入される。これは図４３の中でＣＥ０書き込みと第一ＣＥ０読み取りとの間に示されている。１サイクルの一定の折り返し時間が、同一要求者から異なるＣＥ空間への２つの連続したアクセスの間に挿入される。この折り返しサイクルは２つのＣＥ空間内のメモリ型式には無関係に生じる。挿入される折り返し時間サイクルの数はＴＡ＋１で、ＥＭＩＦ  ＣＥ空間制御レジスタ内で定義される。折り返し時間周期の間、影響されるＣＥ空間の／ＣＥおよび／ＡＯＥは無効となって、依然としてバスを駆動しているその空間内の装置を遮断する。これらのサイクルは後続のアクセスとの間の時間がＴＡ＋１サイクル未満の場合にのみ挿入される。
【０２８９】
準備完了入力
図４３内の第二ＣＥ０空間読み取りは読み取り動作を図示している。プログラム可能整形に加えて、／ＡＲＤＹ入力を無効化することによってストローブ周期の中に特別サイクルを挿入する事が出来る。準備完了動作は下記のように働く：
準備完了は３つのＣＬＫＯＵＴ１サイクルを取ってバス上に反応を引き起こす。もしも／ＡＲＤＹがＣＬＫＯＵＴ１サイクルの間低状態である場合は、ストローブ周期は／ＡＲＤＹを認識する変化の後に完全に３つのＣＬＫＯＵＴ１サイクル分延長される。
各々のＣＬＫＯＵＴ１の変化に対して、サンプリング周期が開始された後その準備完了は無効低状態であり、ストローブ幅は１クロック分延長される。
【０２９０】
図４３に於いて、第二読み取りは２サイクルの無効／ＡＲＤＹのため２クロック分延長される。
【０２９１】
／ＡＲＤＹの効果で遅延が生じるため、セットアップおよびストローブ時間が非常に小さい場合は注意が必要である。例えば、ストローブ周期が１の場合、／ＡＲＤＹはセットアップ周期が終了する２サイクル前にサンプリングされる。この場合もしもセットアップ周期が２の場合は、／ＡＲＤＹはアクセスが開始されるのと同一の変化エッジでサンプリングされる。
【０２９２】
ホールドインタフェース
ＥＭＩＦは外部バスに対するホールド要求に応答する。ホールドハンドシェイクにより外部装置とＥＭＩＦが外部バスを共有出来るようになる。このハンドシェイク機構は２つの信号を使用する：
１．／ＨＯＬＤ非同期ホールド要求入力。外部装置はこのピンを低状態に駆動してバスアクセス要求を行う。ホールドは有効動作中にＥＭＩＦが受信することの出来る最高優先順位要求である。ホールドが要求されると、ＥＭＩＦは可能な限り早い時点でバスの駆動を中止するが、これは必然的に現行アクセスの完了、装置無効化、およびＳＤＲＡＭバンク無効化を伴う。外部装置はバスを駆動したいと望むのであれば／ＨＯＬＤを低状態に駆動し続けなければならない。／ＨＯＬＤ入力は内部的にＣＰＵクロックに同期されている。
２．／ＨＯＬＤＡ：ホールド肯定確認出力。ＥＭＩＦはその信号出力を高インピーダンス状態にした後、この信号を有効低状態とする。次に外部装置はそのバスを要求通りに駆動する。ＥＭＩＦは全ての出力を高インピーダンス状態にするが、クロック出力は除く：ＣＬＫＯＵＴ１，ＣＬＫＯＵＴ２，ＳＤＣＬＫおよびＳＳＣＬＫ。
【０２９３】
外部装置がバスを独立して駆動しようと試みないことを保証する機構は存在しない。設計者はシステムレベル、例えばリフレッシュの様に実行される必要のある問題を意識する必要がある。ホスト要求の間、ＥＭＩＦ内のリフレッシュカウンタはリフレッシュ要求を記録し続ける、しかしながら／ＨＯＬＤ入力を無効高レベルに戻すことで、バス制御がＥＭＩＦに許可して戻されるまでリフレッシュサイクルは実行されない。使用者はＥＭＩＦグローバル制御レジスタ内のＮＯＨＯＬＤビットを設定することにより外部ホールドを防止する。
【０２９４】
優先順位
表４８はＥＭＩＦが複数の仕掛かり中要求の場合に使用する優先順位手順を図示する。この優先順位手順は、ＤＭＡ制御装置を通して要求を発しているＤＭＡが高順位の場合は変更される。  このモードはＤＭＡチャンネル一次制御レジスタ内のＰＲＩビットをセットする事によりＤＭＡ内にセットされる。
【０２９５】
一度要求者（この事例ではリフレッシュ制御装置もまた１つの要求者と考えられることに注意）の優先順位付けがなされかつ選択されると、新たな要求はその選択された要求者が要求を行うことを中止するかまたは後続のより高い優先順位の要求が発生するまで認識されない。この場合、先の要求者が発した全ての要求は、新たな要求者がその要求を行う前に完了することが許されている。
【０２９６】
もしもＥＭＩＦグローバル制御レジスタ（図２４）の調停ビットがセットされている場合（ＲＢＴＲ８＝１）、一度要求者がＥＭＩＦの制御を得ると、それは要求者がＥＭＩＦを必要とする限り、またはより高い優先順位の要求者がＥＭＩＦを要求するまでの間に８ワード要求が発生するまでその制御を維持する。より高い優先順位の要求者がＥＭＩＦを必要とする場合、現行の制御装置が制御を放棄するかまたは８ワード要求が完了するまで、それは制御を得ることは出来ない。もしも長堤ビットがセットされていない場合は（ＲＢＴＲ８＝０）、要求者はＥＭＩＦの制御をそれがＥＭＩＦを必要とする限り、またはより高い優先順位の要求者がＥＭＩＦを要求するまで維持する。現行の制御装置は、発生している要求の数に関係なく、より高い優先順位の要求者で割り込みをかけられる。
【０２９７】
【表４９】
0004285803.tif 000050
【０２９８】
クロック出力有効
ＥＭＩ放射を減少させるために、ＥＭＩＦはＣＬＫＯＵＴ２，ＣＬＫＯＵＴ１，ＳＳＣＬＫおよびＳＤＣＬＫを無効化（高状態に保持）することが出来る。この機能はＥＭＩＦ  ＳＤＲＡＭ制御レジスタ内のＣＬＫ２ＥＮ，ＣＬＫ１ＥＮ，ＳＳＣＥＮ、およびＳＤＣＥＮビットを経由して実行される。
【０２９９】
電源断操作
電源断２に於いてリフレッシュが有効化される。ＳＳＣＬＫ，ＣＬＫＯＵＴ１，ＣＬＫＯＵＴ２は高状態に保持される。電源断３に於いて、ＥＭＩＦはあたかもそれがリセット状態にいるかの様に動作する。
【０３００】
エミュレーション停止動作
ＥＭＩＦはエミュレーション停止中も動作を継続する。ＥＭＩＦを通してのエミュレータアクセスは、ＥＭＩＦ状態を変更し一度停止が中止されることによる開始時損失の影響を受ける。
【０３０１】
ブート
概要
装置を適切に初期化するために、装置は種々のブート構成を提供している。これらの構成は装置が初期化に備えてリセットされた後にマイクロプロセッサ１が同様な動作を実行するかを決定する。外部入力ピンでセットされるこれらのブート構成は下記を決定する：
その装置が選択するメモリマップ。このメモリマップはアドレス０に内部または外部メモリが写像されているか否かを決定する。
アドレス０に於ける外部メモリの型式、（外部メモリがアドレス０に写像されている場合）。
アドレス０のメモリをＣＰＵが実行を許可される前に初期化するために使用されるブートプロセス。
【０３０２】
装置リセット
外部装置リセット７６は有効低ＲＥＳＥＴ信号である。ＲＥＳＥＴ−が有効低の間その装置はリセット状態に保持される。この周期の間その装置は予め記述されたリセット状態に初期化される。全ての三状態可能出力は三状態に設定される。その他の全ての出力は関連する章で記述された状態に戻される。リセット許可は装置ＣＬＫＩＮ同様にＣＰＵクロックでラッチされる。従ってリセットはＣＬＫＩＮ同様にＣＰＵクロック（ＣＬＫＯＵＴ１）サイクルに関して最小低時間を有する。装置をリセットするための詳細なタイミング要求はデータシートの中に記述されている。ＲＥＳＥＴの立ち上がりでプロセッサが予め定められたブート構成で開始される。
【０３０３】
ブート構成
外部ピンＢＯＯＴＭＯＤＥ［４：０］はその部分のブート構成を決定する。ＢＯＯＴＭＯＤＥ［４：０］の値はＲＥＳＥＴ−の立ち上がりでラッチされる。これらのピンは適切にセットアップされて有効となっていて、この立ち上がりを掴む必要がある。個部とのタイミング要求に関してはデータシートを参照されたい。このブート構成は下記を決定する（表４９）：
装置メモリマップ。
リセット位置、アドレス０に於けるメモリの型式。
リセット時にどのブートロードプロセスが初期化されたか。
【０３０４】
【表５０】
0004285803.tif 000051
【０３０５】
メモリマップ
２つのメモリマップ、ＭＡＰ０およびＭＡＰ１（表５０）が存在する。これらの違いは、ＭＡＰ０はアドレス０に写像された外部メモリを有し、ＭＡＰ１はアドレス０に写像された内部メモリを有する点である。内部周辺機器用に割り当てられた空間はその目的のために予約された空間を表すことに注意されたい。予約されている全メモリ空間が割り当てられているわけでは無い。ここに於ける周辺機器ならびに内部機器に関する説明を参照されたい。
【０３０６】
【表５１】
0004285803.tif 000052
【０３０７】
アドレスリセットアドレスに於けるメモリ
表４９に示されるように、ブート構成はプロセッサ動作用のリセットアドレス、アドレス０に配置されたメモリの型式を決定する。ＢＯＯＴＭＯＤＥピンがＭＡＰ１を選択するとき、このメモリは内部メモリである。装置モードがＭＡＰ０にあるとき、メモリは外部メモリである。外部メモリが選択されているとき、ＢＯＯＴＭＯＤＥはまたリセットアドレスに於けるメモリの型式を決定する。効果的に、これらのオプションは適切なＥＭＩＦ制御レジスタに代わりとなるリセット値を提供する。
【０３０８】
ブートプロセス
ブートプロセスもまたＢＯＯＴＭＯＤＥピンにより、表５０に示されるように決定される。３つの型のブートプロセスが可能である：
１．非ブートプロセス：ＣＰＵは単にアドレス０に配置されているメモリから起動を開始する。ＳＤＲＡＭの場合、ＣＰＵはＳＤＲＡＭ初期化が完了するまで保持される。
２．ＲＯＭブートプロセス：ＲＯＭブートプロセスに於いて、ＣＥ空間１の始まりに配置されているメモリはアドレス０にＤＭＡによってコピーされる。ブートプロセスは装置が外部リセットから解放された時に始まるが、この転送はＣＰＵが内部的にリセットに保持されている間に生じる。コピーされるメモリの量は３２ビットの１６Ｋワードである。このプロセスはまたＲＯＭの幅を選択することも出来る。この場合、ＥＭＩＦは後続の８ビットバイトまたは１６ビット半ワードを自動的に集めて移動される３２ビット命令ワードとすることが出来る。これらの値は小エンディアン形式で外部メモリ、典型的にはＲＯＭ装置の中に格納されることが期待される。
この転送は自動的にチャンネル０で行われる。ＤＭＡチャンネルは同期されていない３２ビットの１６Ｋワードの単一フレームブロック転送をＣＥ空間１の始まりからアドレス０へ実行するようにセットアップされている。ＭＡＰ０が選択されている場合、ＥＭＩＦは全てのＤＭＡ要求を何らかの代替リセット値で構成されるまで延期する。ＳＤＲＡＭの場合、ＥＭＩＦはＳＤＲＡＭが初期化されるまで転送を延期する。ＣＥ空間１の位置は選択されたメモリマップに依存する。
ＤＭＡ＿ＩＮＴ０遷移が有効となって、ブロック転送の完了を示す場合、ＣＰＵはリセットから解除されてアドレス０からの始動が許可される。ＤＭＡ＿ＩＮＴ０条件はＣＰＵが未だリセット状態にいるため、ＣＰＵによってラッチされないことに注意されたい。また、ＤＭＡ＿ＩＮＴ０はＲＯＭブートプロセスが選択されている場合、ＣＰＵを内部リセットから覚醒させるだけである。この条件の後、ＤＭＡチャンネル０二次制御レジスタ内のＢＬＯＣＫ  ＣＯＮＤはセットされた状態で維持される。これは使用者が後続のＤＭＡ＿ＩＮＴ０遷移をＣＰＵおよびＤＭＡに対して受信出来るようにするために消去されなければならない。
３．ＨＰＩブートプロセス：ＨＰＩブートプロセスに於いて、ＣＰＵはリセット状態に保持され、一方で残りの装置はリセットから覚醒される。この周期の間、外部ホストはＨＰＩを通して必要に応じてＣＰＵのメモリ空間を初期化する、これには外部メモリ構成レジスタが含まれる。一度外部メモリが要求通りに構成されると、ホストは初期化を完了する必要のある外部区分にアクセスする。ひとたびホストが全ての必要な初期化を通過すると、これは１をＨＰＩ制御レジスタ（ＨＰＩＣ）内のＤＳＰＩＮＴビットに書き込む。この書き込みはＤＳＰＩＮＴ信号上に有効な遷移を引き起こす。この遷移は続いて、ブート構成論理を起動しＣＰＵをそのリセット状態から解放する。次にＣＰＵはアドレス０からの起動を開始する。ＤＳＰＩＮＴ条件は、ＣＰＵが未だリセット状態にあるためＣＰＵによってラッチされない。また、ＤＳＰＩＮＴはＨＰＩブートプロセスが選択されている場合、ＣＰＵを内部リセット状態から覚醒させるだけである。
【０３０９】
ＭＣＳＰ
次に図４４を参照すると、これはＭＣＳＰ１２０のブロック図であり、本発明の発明的特徴および優れた機能を詳細に説明する。略語の説明は付録Ａを参照されたい。
【０３１０】
複数チャンネルシリアルポート（ＭＣＳＰ）はテキサスインスツルメント社から市販されているＴＭＳ３２０Ｃ２ｘ，および’Ｃ５ｘ，ディジタル信号処理装置の中に見られる既知のシリアルポートインタフェースを改善したものである。このシリアルポートの詳細な説明は米国特許連番０８／４８９，０１４号（明細書ＴＩ−１９９４２）の中に提供されており、これはここに挙げることで参照されている。既存品と同様にＭＣＳＰは下記の機能を提供する：
１．完全二重化通信
２．連続データストリームを可能とする二重バッファデータレジスタ。
３．受信および送信に対する独立したフレーム化およびクロック。
４．工業標準コード、アナログインタフェースチップ（ＡＩＣ）、
およびその他のシリアル接続されたＡ／ＤおよびＤ／Ａ装置への直接インタフェース。
５．外部シフトクロック生成または内部プログラム可能周波数シフトクロック。
これに加えて、ＭＣＳＰは下記の機能を有する：
１．下記への直接インタフェース：
Ｔ１／Ｅ１フレーム生成器
ＭＶＩＰおよびＳＴ−ＢＵＳ適合装置
ＩＯＭ−２適合装置
ＡＣ９７適合装置。必要な複数位相フレーム同期機能が具備されている。
ＩＩＳ適合装置
ＳＰＩ装置
２．１２８チャンネルまでの複数チャンネル送信および受信。
３．ＬＳＢまたはＭＳＢを最初に転送するように８ビットデータに圧縮伸張する８−、１２−、１６−、２０−、２４−、または３２−ビットμ−ＬａｗおよびＡ−Ｌａｗを含む広範なデータサイズの選択
４．フレーム同期とデータクロックの両方用のプログラム可能極性
５．高いプログラム可能性の内部クロックおよびフレーム生成。
【０３１１】
ＭＣＳＰ１２０は図４４に示すようにデータ経路と制御経路とを含む。表５１に記載されている７つの外部ピン１２１ａ−１２１ｇは制御並びにデータ経路を外部装置に接続する。データはＭＣＳＰにインタフェースしている装置に送信に関してはデータ送信（ＤＸ）ピン、また受信に関してはデータ受信（ＤＲ）ピンを経由して通信される。クロックおよびフレーム同期の形式の制御情報はＣＬＫＸ，ＣＬＫＲ，ＥＳＸ，およびＦＳＲ経由で通信される。プロセッサ１はＭＣＳＰに内部周辺機器バス１１０経由でアクセス可能な３２ビット幅制御レジスタ経由で通信する。ＣＰＵ１０またはＤＭＡ１００／１０１は受信されたデータをデータ受信レジスタ（ＤＲＲ）から受信し、送信されるデータをデータ送信レジスタ（ＤＸＲ）に書き込む。ＤＸＲに書き込まれたデータはＤＸに送信シフトレジスタ（ＸＳＲ）経由でシフトアウトされる。同様にＤＲピン上の受信データはＲＳＲの中にシフトされＲＢＲの中にコピーされる。続いてＲＢＲはＤＲＲにコピーされ、これはＣＰＵまたはＤＭＡで読むことが出来る。これにより内部データの移動と外部データ通信とが同時に行える。ＣＰＵ１０にアクセス可能な残りのレジスタは、ＭＣＳＰの制御機構を構成する。これらのレジスタは表５２に示されている。制御ブロックは内部クロック生成、フレーム同期信号生成、およびそれらの制御、並びに複数チャンネル選択から構成される。この制御ブロックは重要な事象の通知をＣＰＵおよびＤＭＡに、表５３に示される４つの信号経由して送る。
【０３１２】
【表５２】
0004285803.tif 000053
【０３１３】
【表５３】
0004285803.tif 000054
【０３１４】
【表５４】
0004285803.tif 000055
【０３１５】
シリアルポートはそれぞれ図４５および図４６に示されるように、３２ビットシリアルポート制御レジスタ（ＳＰＣＲ）およびピン制御レジスタ経由で構成される。ＳＰＣＲおよびＰＣＲはＭＣＳＰ状態情報を含み、また希望する動作に構成出来るビットを含む。各々のビットフィールドの動作を後の章で説明する。
【０３１６】
表５４および表５５は、それぞれＳＰＣＲおよびＰＣＲの各ビットフィールドを説明している。
【０３１７】
【表５５】
0004285803.tif 000056
【０３１８】
【表５６】
0004285803.tif 000057
【０３１９】
図４７および図４８に示されている受信および送信制御レジスタ（ＲＣＲおよびＸＣＲ）はそれぞれ受信および送信動作の種々のパラメータを構成する。各ビットフィールドの動作を後章で説明する。表５６はＲＣＲおよびＸＣＲの各ビットフィールドを記述している。
【０３２０】
【表５７】
0004285803.tif 000058
【０３２１】
図４４に示されるように、受信動作は３重バッファ化され送信動作は２重バッファ化されている。ＤＲ上に到着する受信データはＲＳＲの中にシフトされる。ひとたび全ワード（８−、１２−、１６−、２０−、２４−、または３２ビット）が受信されると、ＲＳＲは常に受信バッファレジスタ、ＲＢＲにコピーされる。ＲＢＲは次に、ＤＲＲがＣＰＵまたはＤＭＡで使用中で無い限りＤＲＲにコピーされる。
【０３２２】
送信データはＣＰＵまたはＤＭＡでＤＸＲに書き込まれる。もしもＸＳＲ内にデータが存在しない場合は、ＤＸＲ内の値がＸＳＲにコピーされる。それ以外の場合は、ＤＸＲ内のデータの最後のビットがＤＸにシフトアウトされた後、ＤＸＲはＸＳＲにコピーされる。送信フレーム同期の後、ＸＳＲは送信データをＤＸ上にシフトアウトし始める。
【０３２３】
シリアルポート送信機および受信機はシリアル制御レジスタ内のＲＲＳＴ−およびＸＲＳＴ−ビットで独立にリセットされる。もしもＲＲＳＴ−＝ＸＲＳＴ−＝０の場合、全シリアルポートはリセット状態となる。装置リセット７６はまたシリアルポートをリセット状態とする。装置リセット７６が取り除かれると、ＲＲＳＴ−＝ＸＲＳＴ−＝０，全シリアルポートをリセット状態に保持する。表５７はシリアルポートが受信機／送信機リセット（ＸＲＳＴ−＝ＲＲＳＴ−＝０）および装置リセット７６によってリセットされた際のＭＣＳＯピンの状態を示す。
【０３２４】
【表５８】
0004285803.tif 000059
【０３２５】
ＭＣＳＰがリセットの場合下記が生じる：
１）状態機械がその初期状態にリセットされる。この初期状態はカウンタと状態ビットのリセットを含む。受信状態ビットＲＦＵＬＬ，ＲＲＤＹ，およびＲＳＹＮＣＥＲＲを含む。送信状態ビットはＸＥＭＰＴＹ−，ＸＲＤＹ，およびＸＳＹＢＣＥＲＲを含む。（Ｒ／Ｘ）ＳＹＮＣＥＲＲもまた使用者によってゼロに消去される。
２）シリアルポートの対応する部分（送信機／受信機）の活動が停止する。ＦＳ（Ｒ／Ｘ）はそれらが出力の場合無効状態に駆動され、もしもそれらが入力として構成されている場合（ＦＳ（Ｒ／Ｘ）Ｍ＝０の時）高インピーダンス状態（高インピーダンス状態）に設定される。ＣＬＫ（Ｒ／Ｘ）はその極性ビットの値，ＣＬＫ（Ｒ／Ｘ）Ｐ，にセットされるが、それは内部サンプリング速度生成器で駆動されるかまたはもしも送信および受信クロックがＭＣＳＰへの入力として取り扱われる場合に高インピーダンス状態（高インピーダンス状態）に置かれている場合である。最終的にＤ（Ｒ／Ｘ）ピンは、送信機そして／または受信機そして／または装置がリセットされている時高インピーダンス状態にある。１つの例外は内部サンプリング速度生成クロック、ＣＬＫＧ，であってこれはシリアルポートのリセット状態に関係なく構成されている通りに実行される。フレーム速度発生器からのフレーム同期信号ＦＳＧは無効状態（フレーム同期極性ビット、ＦＳ（Ｒ／Ｘ）Ｐ上の値と同じ）に駆動され、リセット中にＦＳ（Ｒ／Ｘ）Ｍ＝１の場合ＦＳＲ／ＦＳＸを容易にする。
３）装置リセット７６のためにＭＣＳＰがリセットの場合は、全てのシリアルポートピンはｈｉ−Ｚ状態に駆動される。そのシリアルポートがそのリセット状態に留まっているが、装置はそうで無い場合、ＤＲおよびＤＸピンは後の章で説明するように汎用目的Ｉ／Ｏとして使用される。
【０３２６】
シリアルポート初期化手順は下記のステップを含む：
１）ＳＰＣＲ内のＸＲＳＴ−＝ＲＲＳＴ−＝０にセットする。
２）シリアルポートがリセット状態（ＸＲＳＴ−＝ＲＲＳＴ−＝０）の時、表５２に記述されたＭＣＳＰ構成レジスタのみ（そしてデータレジスタは含まず）をプログラムする。
３）２ビットクロックだけ待つ。これは適切な同期が内部的に行われることを保証する。
４）シリアルポートを有効化するためにＸＲＳＴ−＝ＲＲＳＴ−＝１をセットする。この時にＳＰＣＲに書き込まれた値はリセットビットのみが１に変更され、残りのビットフィールドは上記ステップ２と同一の値に残される。
【０３２７】
これとは別に、いずれかの書き込み（上記ステップ１および４）に於いて、送信機および受信機は希望するビットのみを修正変更する事で別々にリセットにセットしたり解除することが出来る。ＸＲＳＴ−またはＲＲＳＴ−の有効低状態周期の必要な長さは、最低２ビットクロック（ＣＬＫＲ／ＣＬＫＸ）幅であることに注意されたい。
【０３２８】
注：（ａ）シリアルポート構成レジスタＳＰＣＲ，ＰＣＲ，ＲＣＲ，ＸＣＲ，およびＳＲＧＲ内の固有のビットフィールドは、シリアルポートの影響部分がリセット状態の時に使用者によってのみ修正変更されるべきである。（ｂ）データレジスタＤＸＲはＣＰＵまたはＤＭＡによって、送信機がリセット状態でないとき（ＸＲＳＴ−＝１）にのみ修正変更出来る。（ｃ）複数チャンネル選択レジスタＭＣＲ，ＸＣＥＲ，およびＲＣＥＲはこれらが複数チャンネル選択内の現行ブロックで使用されていない限り、いつでも修正変更することが出来る；複数チャンネルモードの事例の詳細は第０章を参照されたい。
【０３２９】
例えば、制御レジスタ内の下記の値は受信機が運転中に送信機をリセットしかつ構成する：
【表５９】
0004285803.tif 000060
【０３３０】
準備完了状態はＲＲＤＹおよびＸＲＤＹで示される。ＲＲＤＹおよびＸＲＤＹはそれぞれＭＣＳＰ受信機および送信機の準備完了状態を示す。シリアルポートの書き込みおよび読み取りはＲＲＤＹおよびＸＲＤＹにポーリングを行うことによって、またはＤＭＡへの事象（ＲＥＶＴおよびＸＥＶＴ）を使用することによりまたはそれらを生成するＣＰＵに割り込み（ＲＩＮＴおよびＸＩＮＴ）を掛けることによって同期を取られる。ＤＲＲの読み取りおよびＤＸＲへの書き込みはＲＲＤＹおよびＸＲＤＹに影響する。
【０３３１】
受信準備完了状態は下記を含む：ＲＥＶＴ，ＲＩＮＴ，およびＲＲＤＹ；ＲＲＤＹ＝１はＲＢＲ内容がＤＲＲにコピーされそのデータがＣＰＵまたはＤＭＡに対して準備完了であることを示す。一度そのデータがＣＰＵまたはＤＭＡのいずれかによって読みとられると、ＲＲＤＹは０に消去される。また、装置リセットまたはシリアルポート受信機リセット（ＲＲＳＴ−＝０）に於いて、ＲＲＤＹは０に消去され、受信データが存在せずまたＤＲＲ内にロードされていないことを示す。ＲＲＤＹはＤＭＡへのＭＣＳＰ受信事象（ＲＥＶＴ）を直接駆動する。また、ＣＰＵへのＭＣＳＰ受信割り込み（ＲＩＮＴ）はＳＰＣＲ内でＲＩＮＴＭ＝１の場合、ＲＲＤＹで駆動される。
【０３３２】
送信準備完了状態は下記を含む：ＸＥＶＴ，ＸＩＮＴ，およびＸＲＤＹ：ＸＲＤＹ＝１はＤＸＲ内容がＸＳＲにコピーされ、ＤＸＲが新しいデータワードでロードされる準備が完了したことを示す。受信機がリセットから非リセットへ遷移する時（ＸＲＳＴ−が０から１へ遷移する）ＸＲＤＹはまた０から１へ遷移し、ＤＸＲが新たなデータへの準備が完了したことを示す。一度新たなデータがＣＰＵまたはＤＭＡによりロードされると、ＸＲＤＹは０に消去される。しかしながら、一度このデータがＤＸＲからＸＳＲへコピーされると、ＸＲＤＹは再び０から１へ遷移する。そこで再びＣＰＵまたはＤＭＡは、ＸＳＲが未だＤＸ上にシフトアウトされていないが、ＤＸＲに書き込むことが出来る。ＸＲＤＹはＤＭＡへの送信同期事象（ＸＥＶＴ）を直接駆動する。また、ＣＰＵへの送信割り込み（ＸＩＮＴ）もまた、ＳＰＣＲ内でＸＩＮＴＭ＝００ｂの場合ＸＲＤＹで駆動される。
【０３３３】
ＣＰＵ割り込み：は（Ｒ／Ｘ）ＩＮＴで要求される。受信割り込み（ＲＩＮＴ）および送信割り込み（ＸＩＮＴ）はＣＰＵにシリアルポート状態の変化を信号通知する。これらの割り込みの構成に４つの選択肢が存在する。これらはＳＰＣＲ内の受信／送信割り込みモードビットフィールド、（Ｒ／Ｘ）ＩＮＴＭで設定される。
１）（Ｒ／Ｘ）ＩＮＴＭ＝００ｂ。ＳＰＣＲ内の（Ｒ／Ｘ）ＲＤＹビットを追跡することにより、全てのシリアルワードに割り込みが掛けられる。ＲＲＤＹおよびＸＲＤＹビットは先に説明した。
２）（Ｒ／Ｘ）ＩＮＴＭ＝０１ｂ。１つのフレームの中で１６チャンネルブロック境界（複数チャンネル選択モードに於いて）を横切った後毎に割り込みを行う。その他のシリアル転送の場合、この設定は適用されず、従って割り込みは発生しない。このことは後ほど詳細に説明される。
３）（Ｒ／Ｘ）ＩＮＴＭ＝１０ｂ。フレーム同期パルスを検出すると割り込みを行う。これはたとえ送信機／受信機がリセット中であっても割り込みを発生する。これは入力されるフレーム同期パルスをＣＰＵクロックに同期させ、それをＣＰＵへ（Ｒ／Ｘ）ＩＮＴ経由で送ることにより実行される。これは後ほど詳細に説明される。
４）（Ｒ／Ｘ）ＩＮＴＭ＝１１ｂ。フレーム同期エラー時の割り込み。
【０３３４】
もしもその他の割り込みモードが選択されている場合は（Ｒ／Ｘ）ＳＹＮＣＥＲＲが読み込まれてこの条件を検出することに注意されたい。同期エラーは後ほど更に詳細に説明される。
【０３３５】
図４９はＭＣＳＰクロックとフレーム同期信号の典型的な動作を示す。シリアルクロックＣＬＫＲ，とＣＬＫＸはそれぞれ受信および送信用のビット間の境界を定める。同様に、フレーム同期信号ＦＳＲおよびＦＳＸはシリアルワードの始まりを定める。ＭＣＳＰはデータフレーム同期用の種々のパラメータの構成を可能とする。これは受信と送信に関して独立して行うことが出来て、以下の選択肢を含む：
１）ＦＳＲ，ＦＳＸ，ＣＬＫＸ，およびＣＬＫＲの極性は独立にプログラムされる。
２）単一または二重位相フレームの選択。
３）各々の位相に対してワードの個数はプログラム可能である。
４）各位相に対してワード毎のビット数はプログラム可能である。
後続のフレーム同期はシリアルデータストリームを再スタートするかまたは無視される。
５）フレーム同期から第一データビットまでのデータビット遅延は０−、１−、または２−ビット遅延と出来る。
６）右または左行揃え、同様に符号拡張またはゼロ充填を受信データに対して選択できる。
【０３３６】
フレームおよびクロック動作を次に説明する。受信および送信フレーム同期パルスはサンプル速度発生器（後ほど説明する）によって内部的に生成されるか、または外部信号発生源により駆動する事ができる。これはＰＣＲ内のモードビット、ＦＳ（Ｒ／Ｘ）Ｍをプログラムする事により実現できる。ＦＳＲはまたＳＲＧＲ（後ほど説明する）内のＧＳＹＮＣビットにより影響される。同様に受信および送信クロックはＰＣＲ内のモードビットＣＬＫ（Ｒ／Ｘ）Ｍをプログラムすることにより入力または出力として選択できる。
【０３３７】
ＦＳＲおよびＦＳＸが入力の時（ＦＳＸＭ＝ＦＳＲＭ＝０，外部フレーム同期パルス）、ＭＣＳＰはそれぞれ内部クロックの立ち下がり、ＣＬＫＲ＿ｉｎｔ，およびＣＬＫＸ＿ｉｎｔ（図７９）でこれらを検出する。ＤＲピンに到着する受信データはまたＣＬＫＲ＿ｉｎｔの立ち下がりでサンプリングされる。これらの内部クロック信号は外部信号発信源からＣＬＫ（Ｒ／Ｘ）ピン経由で駆動されるかまたは内部的にＭＣＳＰに対するサンプル速度発生器クロック（ＣＬＫＧ）によって駆動されるかのいずれかであることに注意されたい。
【０３３８】
ＦＳＲおよびＦＳＸが出力の場合、これらはサンプル速度発生器で駆動されることを意味し、これらは内部クロック、ＣＬＫ（Ｒ／Ｘ）＿ｉｎｔの立ち上がりで生成される（それらの有効状態に遷移する）。同様にＤＸピン上のデータはＣＬＫＸ＿ｉｎｔの立ち上がりで出力される。
【０３３９】
ＦＳＲＰ，ＦＳＸＰ，ＣＬＫＲＰ，およびＣＬＫＸＰは図５５に示すように外部ＦＳＲ，ＦＳＸ，ＣＬＫＲ，およびＣＬＫＸ信号の相対的な極性を構成する。内部的にシリアルポートに対する全てのフレーム同期信号（ＦＳＲ＿ｉｎｔ，ＦＳＸ＿ｉｎｔ）は有効高状態である。もしもシリアルポートが外部フレーム同期に対して構成されていて（ＦＳＲ／ＦＳＸはＭＣＳＰへの入力）、ＦＳＲＰ＝ＦＳＸＰ＝１の場合、外部の有効低状態フレーム同期信号は受信機（ＦＳＲ＿ｉｎｔ）および送信機（ＦＳＸ＿ｉｎｔ）へ送られる前に反転される。同様に、内部同期（ＦＳＲ／ＦＳＸは出力ピンでＧＳＹＮＣ＝０）が選択されている場合、内部有効高同期信号は、もしも極性ビットＦＳ（Ｒ／Ｘ）Ｐ＝１であるとＦＳ（Ｒ／Ｘ）ピンに送られる前に反転される。図７９はこの反転をＸＯＲゲートを用いて示している。
【０３４０】
送信側では、送信クロック極性ビット、ＣＬＫＸＰは送信データをシフトしクロックアウトするために使用される信号変化方向をセットする。データは常にＣＬＫＸ＿ｉｎｔの立ち上がりで送信されることに注意されたい。もしもＣＬＫＸＰ＝１で外部クロックが選択されている場合（ＣＬＫＸＭ＝０でＣＬＫＸが入力）、ＣＬＫＸ上の入力クロックでトリガを掛けられた外部立ち下がり信号変化が、送信機に送られる前に立ち上がりトリガクロックに反転される。もしもＣＬＫＸＰ＝１で内部クロックが選択されている場合（ＣＬＫＸＭ＝１でＣＬＫＸが出力ピン）、内部（立ち上がりトリガ）クロック、ＣＬＫＸ＿ｉｎｔ、はＣＬＫＸピンに送り出される前に反転される。
【０３４１】
同様に、送信機側での構成は受信機側が立ち上がりクロックでクロックされた（送信機により）データを確実にサンプリングできるようになされる。受信クロック極性ビット、ＣＬＫＲＰは受信されたデータをサンプリングするために使用される信号変化方向を設定する。受信データは常にＣＬＫＲ＿ｉｎｔの立ち下がりでサンプリングされることに注意されたい。従って、もしもＣＬＫＲＰ＝１で外部クロックが選択されている場合（ＣＬＫＲＭ＝０でＣＬＫＲは入力ピン）、ＣＬＫＲ上の入力クロックでトリガを掛けられた外部立ち上がり信号変化が、受信機に送られる前に立ち下がりトリガクロックに反転される。もしもＣＬＫＲＰ＝１で内部クロックが選択されている場合（ＣＬＫＲＭ＝１）、内部立ち下がりトリガクロックはＣＬＫＲピンに送り出される前に立ち上がりに反転される。
【０３４２】
同一クロック（内部または外部）を用いて受信機および送信機にクロックを掛けているシステムでは、ＣＬＫＲＰ＝ＣＬＫＸＰであることに注意されたい。受信機は送信機と反対の信号変化方向を使用しており、この信号変化の周りで有効なデータのセットアップおよび保持が行われることを保証している。図５０はデータが立ち上がり信号変化を使用した外部シリアル装置でクロックをかけられる様子を示し、これは同一クロックの立ち下がりによりＭＣＳＰ受信機でサンプリングされたものである。
【０３４３】
次にフレーム同期を説明する。フレーム同期はＭＣＳＰ上の転送の始まりを示すために使用される。フレーム同期に続くデータストリームは２つの位相、位相１および位相２を有する。１つのデータストリーム内の位相の数は、ＲＣＲおよびＸＣＲ内の位相ビット（Ｒ／Ｘ）ＰＨＡＳＥで選択できる。フレーム毎のワード数およびワード毎のビット数はそれぞれ（Ｒ／Ｘ）ＦＲＬＥＮ（１／２）および（Ｒ／Ｘ）ＷＤＬＥＮ（１／２）経由で各々の位相に対して独立に選択することが出来る。図５１はフレームの例を示し、ここで第一位相は各々１２ビットの２ワードからなり、各々８ビットの３ワードの第二位相が続いている。フレーム内の全ビットストリームは連続していることに注意されたい。ワード間にも位相間にも間隙は存在しない。
【０３４４】
表５８は受信／送信制御レジスタ（ＲＣＲ／ＸＣＲ）内のビットフィールドを示し、これは受信機および送信機の両方に関して各位相に対するワード／フレームおよびビット／ワードの数を制御する。フレーム毎のワードの最大数は１２８、およびワード毎のビット数は８−、１２−、１６−、２０−、２４−または３２−ビットである。
【０３４５】
【表６０】
0004285803.tif 000061
【０３４６】
次にフレーム長、（Ｒ／Ｘ）ＦＲＬＥＮ（１／２）を表５９を参照して説明する。フレーム長はフレーム毎に転送されるシリアルワードの数（−、１２−、１６−、２０−、２４−または３２−ビット）として定義出来る。これはフレーム同期信号毎のワードまたは論理タイムスロットまたはチャンネル数に相当する。（Ｒ／Ｘ）ＣＲ内の７ビット（Ｒ／Ｘ）ＦＲＬＥＮ（１／２）フィールドは、表５９に示すようにフレーム毎に最大１２８ワードまでサポートする。（Ｒ／Ｘ）ＰＨＡＳＥ＝０は単一位相データフレームを表し、また（Ｒ／Ｘ）ＰＨＡＳＥ＝１はデータストリームに関して二重位相を選択する。単一位相フレームに対して、ＦＲＬＥＮ２は無関係である。使用者はプログラムをする際にフレーム長をｗ引く１とすることに注意が必要である、ここでｗはフレーム毎のワード数を表す。図５１の例に於いて、（Ｒ／Ｘ）ＦＲＬＥＮ１＝１または００００００１ｂおよびＲ／Ｘ）ＦＲＬＥＮ２＝２または０００００１０ｂである。
【０３４７】
【表６１】
0004285803.tif 000062
【０３４８】
次にワード長（Ｒ／Ｘ）ＷＤＬＥＮ（１／２）を説明する。受信／送信制御レジスタ内の８ビット（Ｒ／Ｘ）ＷＤＬＥＮ（１／２）フィールドは、ワード長をワード毎のビット数で、表５８に示すようにフレームの各位相に対して受信機および送信機用に定義している。表６０はこれらのフィールドの値がどのように個別のビット単位のワード長を選択するかを示している。例として図５１では、（Ｒ／Ｘ）ＷＤＬＥＮ１＝００１ｂ，および（Ｒ／Ｘ）ＷＤＬＥＮ２＝０００ｂである。もしも（Ｒ／Ｘ）ＰＨＡＳＥ＝０で単一位相フレームを示している場合は、（Ｒ／Ｘ）ＷＤＬＥＮ２はＭＣＳＰでは使用されずその値は無用である。
【０３４９】
【表６２】
0004285803.tif 000063
【０３５０】
次にフレーム長およびワード長を使用したデータ充填を説明する。フレーム長およびワード長は効果的にデータを充填するために操作する事が出来る。例えば、図５２に示すように４つの８ビットワードが単一フレームの中で転送される状況を考える。この場合：
（Ｒ／Ｘ）ＦＲＬＥＮ１＝０００００１１ｂ，４ワードフレーム
（Ｒ／Ｘ）ＰＨＡＳＥ＝０，単一位相フレーム
（Ｒ／Ｘ）ＦＲＬＥＮ２＝Ｘ
（Ｒ／Ｘ）ＷＤＬＥＮ１＝０００ｂ，８ビットワード
【０３５１】
この場合、４つの８ビットデータ要素がＣＰＵまたはＤＭＡによってＭＣＳＰ相互間で転送される。従って、ＤＲＲの４つの読み取りおよびＤＸＲの４つの書き込みが各フレームに対して必要である。
【０３５２】
図５２の例はまた図５３に示される１つの３２ビットデータワードから成る単一位相フレームのデータストリームとして取り扱われることも可能である。
この場合：
（Ｒ／Ｘ）ＦＲＬＥＮ１＝０ｂ，１ワードフレーム
（Ｒ／Ｘ）ＰＨＡＳＥ＝０，単一位相フレーム
（Ｒ／Ｘ）ＦＲＬＥＮ２＝Ｘ
（Ｒ／Ｘ）ＷＤＬＥＮ１＝１０１ｂ，３２ビットワード
【０３５３】
この場合、１つの３２ビットデータワードがＣＰＵまたはＤＭＡによってＭＣＳＰ相互間で転送される。従って、ＤＲＲの１つの読み取りおよびＤＸＲの１つの書き込みが各フレームに対して必要である。これは結果として先の場合に比較して転送回数がたった四分の一となる。この操作はシリアルデータ移送に要求されるバス時間の割合を減少させる。
【０３５４】
次にデータ遅延（Ｒ／Ｘ）ＤＡＴＤＬＹを説明する。フレームの開始はフレーム同期が有効であると認められた第一クロックサイクルで定義される。フレームの開始に対して、実際のデータ受信または送信の開始を必要に応じて遅延することが出来る。この遅延はデータ遅延と呼ばれる。ＲＤＡＴＤＬＹおよびＸＤＡＴＤＬＹはそれぞれ受信および送信に対するデータ遅延を指定する。プログラム可能なデータ遅延の範囲はゼロから２ビットクロック（（Ｒ／Ｘ）ＤＡＴＤＬＹ＝００ｂ−１０ｂ）であり、表５６に記述されまた図５４に示される通りである。典型的には１ビット遅延が１サイクル有効フレーム同期パルスに続くデータとして選択される。
【０３５５】
通常、フレーム同期パルスがシリアルクロックＣＬＫ（Ｒ／Ｘ）＿ｉｎｔ（先に説明済み）の信号変化に対して検出またはサンプリングされる。従って、後続のサイクルまたはその後（データ遅延値に応じて）、データが受信または送信される。しかしながら、データ遅延がゼロビットの場合、そのデータは同一シリアルクロックサイクル上で受信そして／または送信用に準備完了でなければならない。受信に関して、この問題は受信データが有効高状態ＦＳＲ＿ｉｎｔが検出されるＣＬＫＲ＿ｉｎｔの第一立ち下がりでサンプリングされるので解決される。しかしながら、データ送信はフレーム同期を生成するＣＬＫＸ＿ｉｎｔの立ち上がり変化で開始されなければならない。従って第一データビットはＸＳＲ従ってＤＸの中に存在すると考えられる。次に送信機は、有効高状態に変化するフレーム同期、ＦＳＸ＿ｉｎｔを非同期的に検出し、直ちに第一ビットがＤＸピン上に送信されるように駆動を開始する。
【０３５６】
別の共通モードは２つのデータ遅延である。この構成はシリアルポートが異なる型式のＴ１フレーム化装置に対してインタフェースを取ることを可能とし、ここでデータストリームはフレーム化ビットで先導される。２ビットのデータ遅延を具備した（フレーム化ビットは１ビット遅延の後に現れ、データは２ビット遅延の後に現れる）この様なストリームを受信する間に、シリアルポートは本質的にフレーム化ビットをデータストリームから図５５に示すように廃棄する。送信に際して、第一転送ビットを遅延し、シリアルポートは空白周期（高インピーダンス周期）をフレーム化ビットが存在すべき場所に本質的に挿入する。ここでフレーム化装置はそれ自身のフレーム化ビットまたは別の装置で生成されたフレーム化ビットを挿入すると期待されている。
【０３５７】
次に複数移送フレーム例を説明する。図５６は二重移送フレーム機能を使用するＡｕｄｉｏ  Ｃｏｄｅｃ’９７（ＡＣ９７）企画の例を示す。第一位相は単一の１６ビットワードで構成される。第二位相は１２の２０ビットワードで構成される。位相は下記のように構成される：
（Ｒ／Ｘ）ＰＨＡＳＥ＝１ｂ，二重位相フレーム
（Ｒ／Ｘ）ＦＲＬＥＮ１＝０ｂ，位相１でフレーム当り１ワード
（Ｒ／Ｘ）ＷＤＬＥＮ１＝０１０ｂ，位相１でワード当り１６ビット
（Ｒ／Ｘ）ＦＲＬＥＮ２＝０００１０１１ｂ，位相２でフレーム当り１２ワード
（Ｒ／Ｘ）ＷＤＬＥＮ２＝０１１ｂ，位相２でワード当り２０ビット
ＣＬＫ（Ｒ／Ｘ）Ｐ＝０、ＣＬＫＲ＿ｉｎｔの立ち下がりでサンプリングされた受信データ；ＣＬＫＸ＿ｉｎｔの立ち上がりでクロックされた送信データ。
ＦＳ（Ｒ／Ｘ）Ｐ＝０，有効高フレーム同期信号
（Ｒ／Ｘ）ＤＡＴＤＬＹ＝０１ｂ，１ビットクロックのデータ遅延
【０３５８】
図５６はＡＣ９７に近いフレーム同期のタイミングを示す。最初にフレーム同期パルス自身が第一ワードと重複していることを注意されたい。ＭＣＳＰ動作に際して、フレーム同期信号の無効から有効への遷移は実際にフレーム同期を示している。この理由により、フレーム同期は高状態で任意の数のビットクロックである。フレーム同期が認識された後にのみフレーム同期は無効となり、また次にフレーム同期が認識されると再び有効となる。
【０３５９】
また図５７に１ビットデータ遅延が存在することに注意されたい。データ遅延に関係なく送信は間隙無しに生じることを注意されたい。位相２内の先行（最終）ワードの最終ビットの直ぐ後ろに、次のデータフレームの位相１内の第一ワードの第一データビットが続く。
【０３６０】
次にＭＣＳＰ標準動作モードを説明する。動作のモードに応じて、パケットまたは転送の間にシリアルポート無効の周期を置くことが出来る。この場合、受信および送信フレーム同期パルスはシリアルワード転送毎に生じる。ＭＣＳＰがリセット状態では無く、希望する動作用に構成されている場合、シリアル転送は（Ｒ／Ｘ）ＯＨＡＳＥ＝０を（Ｒ／Ｘ）ＦＲＬＥＮ１の中にプログラムされたワードの必要数を具備した単一位相フレーム用にプログラムする事で開始出来る。ワード数は１から１２８（（Ｒ／Ｘ）ＦＲＬＥＮ１＝０ｘ０から０ｘ７Ｆ）間での範囲を取ることが出来る。要求されるシリアルワード長は（Ｒ／Ｘ）ＣＲ内の（Ｒ／Ｘ）ＷＤＬＥＮ１フィールド内に設定される。転送に際して二重位相が必要とされる場合は、ＲＰＨＡＳＥ＝１，（Ｒ／Ｘ）ＦＲＬＥＮ（１／２）は１から１２８ワードを表す０ｘ０から０ｘ７Ｆの間の任意の値に設定出来る。
【０３６１】
図５８は１つの８ビットワードを含む単一位相データの例を示す。転送は１データビット遅延で構成されているのでＤＸおよびＤＲピン上のデータはＦＳ（Ｒ／Ｘ）が有効になって１ビットクロック後に利用できる。この章の全ての残りと同様にこれは以下の仮定を行っている：
（Ｒ／Ｘ）ＦＲＬＥＮ１＝０ｂ，フレーム当り１ワード
（Ｒ／Ｘ）ＰＨＡＳＥ＝０，単一位相フレーム
（Ｒ／Ｘ）ＦＲＬＥＮ２＝Ｘ，無効
（Ｒ／Ｘ）ＷＤＬＥＮ１＝０００ｂ，８ビットワード
ＣＬＫ（Ｒ／Ｘ）Ｐ＝０、受信データは立ち下がり変化でクロック；送信データは立ち上がり変化でクロック。
ＦＳ（Ｒ／Ｘ）Ｐ＝０，有効高フレーム同期信号
（Ｒ／Ｘ）ＤＡＴＤＬＹ＝０１ｂ，１ビットデータ遅延
【０３６２】
図５９シリアル受信の例を示す。一度フレーム同期（ＦＳＲ＿ｉｎｔ）の有効高状態への遷移を受信すると、それは受信機のＣＬＫＲ＿ｉｎｔの第一立ち下がり変化で検出される。次にＤＲピン上のデータはＲＤＡＴＤＬＹで設定された適切なデータ遅延の後、受信シフトレジスタ（ＲＳＲ）の中にシフトされる。ＲＳＲの内容は次にＲＢＲにシフトされる。ＲＲＤＹはＲＢＲからＤＲＲへのコピーが行われる度に有効化されて、受信データレジスタ（ＤＲＲ）がＣＰＵまたはＤＭＡで読みとられるデータの準備が完了したことを示す。ＲＲＤＹはＤＲＲがＣＰＵまたはＤＭＡで読みとられると無効化される。
【０３６３】
図６０はシリアル転送の例を示す。一度送信フレーム同期が生じると、送信シフトレジスタ、ＸＳＲ内の値はＸＤＡＴＤＬＹで設定された適切なデータ遅延の後にシフトアウトされてＤＸピン上に駆動される。ＸＲＤＹはＤＸＲからＸＳＲへのコピーの度に有効化されて、データ送信レジスタ（ＤＸＲ）に送信される次のデータが書き込まれたことを示す。ＸＲＤＹはＤＸＲがＣＰＵまたはＤＭＡで書き込まれると無効化される。
【０３６４】
図６１は最大充填周波数でのＭＣＳＰ動作を示す。１つのフレーム内のワードの総数は、単一位相または二重位相に関わらずシリアル転送パケットと呼ばれる。パケット周波数はフレーム同期信号間の周期で決定される：
【数１】
0004285803.tif 000064
【０３６５】
パケット周波数はビットクロック内のフレーム同期信号間の距離を減らすことにより増加させることが出来る（パケット当たりのビット数でのみ制限される）。パケット送信周波数が増加されると、隣接する転送に対するデータパケット間の無効周期がゼロに減少される。フレーム同期間の最小間隔はパケット毎に転送されるビット数である。この距離はまた最大パケット周波数を定める：
【数２】
0004285803.tif 000065
【０３６６】
最大パケット周波数に於いて、後続パケット内のデータビットはビット間に無効状態を具備することなく連続的に送信される。もしも図示されるように１ビットデータ遅延が存在する場合、フレーム同期パルスは先行パケット内で送信された最後のビットと重複する。
【０３６７】
効果的に、これはデータの連続したストリームを可能とし、従ってフレーム同期パルスは本質的に冗長となる。従って理論的に、複数パケット転送を開始するには最初のフレーム同期パルスのみが必要である。ＭＣＳＰはシリアルポートの動作をこの方法で、後続のフレーム同期パルスを無視することでサポートする。データは各クロック毎に受信機の中にクロックで送り込まれるかまたは送信機からクロックで送り出される。（Ｒ／Ｘ）ＣＲ内のフレーム無視ビット、（Ｒ／Ｘ）ＦＩＧをプログラムして、後続のフレーム同期パルスを希望するフレーム長またはワード数に達するまで無視するように出来る。これは後ほど説明する。
【０３６８】
次にフレーム同期無視モードを説明する。ＭＣＳＰは送信および受信フレーム同期パルスを無視するように構成する事が出来る。（Ｒ／Ｘ）ＣＲ内の（Ｒ／Ｘ）ＦＩＧビットを、フレーム同期パルスを無視しないようにゼロにまたは、フレーム同期パルスを無視するように１にセットするようにプログラムすることが可能である。この様にして使用者は（Ｒ／Ｘ）ＦＩＧビットをデータを充填するかまたは予想しないフレーム同期パルスを無視するように使用することが出来る。以下の段落でデータ充填を説明する；また予期しないフレーム同期パルスに対するＭＣＳＰ動作をその次の段落で説明する。
【０３６９】
次にフレーム同期無視ビットを使用したデータ充填を説明する。ワード長およびフレーム長を変更して３２ビットシリアルワード転送を模擬する１つの方法を図５２を参照して説明されている、従ってより少ないバス帯域幅しか必要としない。この例はフレーム当たり複数のワードが存在する場合に適用される。次に図６２に示される最大パケット周波数で動作するＭＣＳＰの事例を考える。ここで各々のフレームは単一８ビットワードのみを有する。このストリームは各８ビットワードに対して１つの読み取りおよび１つの書き込みを行う。図６３はこのストリームを３２ビットワードの連続したストリームとして取り扱うように構成されたＭＣＳＰを示す。この例で最初のものを除く後続フレームを無視するように（Ｒ／Ｘ）ＦＩＧは１に設定されている。ここでは、３２ビット毎に１つの読み取りおよび１つの書き込み転送のみが必要とされる。この構成は効果的に必要とされるバス帯域幅を四分の一に削減する。
【０３７０】
次にフレーム同期無視および予期しないフレーム同期パルスを説明する。先の章ではデータをパックし効果的にバス帯域幅を使用するためにどのようにフレーム無視ビットが使用できるかを説明している。（Ｒ／Ｘ）ＦＩＧビットはまた予期しないフレーム同期パルスを無視するためにも使用できる。予期しないフレーム同期パルスとはそれらが期待されていない時に生じるものである。従ってプログラムされたデータ遅延（（Ｒ／Ｘ）ＤＡＴＤＬＹ）より１つまたは複数ビットクロックより前に生じる全てのフレーム同期パルスは予期していないと見なされる。フレーム無視ビットを１に設定することにより、シリアルポートがこれらの予期しないフレーム同期信号を無視するように出来る。
【０３７１】
受信に際して、もしも無視しない場合は（ＲＦＩＧ＝０）、予期されていないＦＳＲパルスは新たに入力されデータを選んでＲＳＲの内容を廃棄する。従って、もしもＲＦＩＧ＝０の場合は予期していないフレーム同期パルスは現行データ転送を破棄して、ＳＰＣＲ内のＲＳＹＮＣＥＲＲを１にセットし、新たなデータワードの転送を開始する。これは後ほど更に詳細に説明する。ＲＦＩＧ＝１の時受信は予期しないフレーム同期パルスを無視して継続される。
【０３７２】
もしも（Ｒ／Ｘ）ＦＩＧがゼロにセットされると、これらのフレーム同期パルスは無視されない。送信に際して、もしも無視しない場合は（ＸＦＩＧ＝０）、予期しないＦＳＸパルスは現在の送信を破棄し、その結果１つのデータパケットが失われ、ＳＰＣＲ内のＸＳＹＮＣＥＲＲを１にセットし、新たなデータワードの送信を開始する。これは後ほど更に詳細に説明する。ＸＦＩＧ＝１の場合、予期しないフレーム同期信号を無視して正常送信が継続される。
【０３７３】
図６４は（Ｒ／Ｘ）ＦＩＧ＝０の時にワードＢが予期しないフレーム同期パルスで割り込みを掛けられる例を示す。受信の事例では、Ｂの受信は破棄され（Ｂは失われる）新たなデータワード（この例ではＣ）が適切なデータ遅延の後に受信される。この状態は受信同期エラーであり、従ってＲＳＹＮＣＥＲＲフィールドがセットされる。しかしながら、送信に関してはＢの送信が破棄され同一データ（Ｂ）が適切なデータ遅延の後再送信される。この状態は送信同期エラーであり、従ってＸＳＹＮＣＥＲＲフィールドがセットされる。同期エラーについては後ほど説明する。これとは対照的に図６５は予期しないフレーム同期信号が（Ｒ／Ｘ）ＦＩＧ＝１をセットすることで無視されている場合のＭＣＳＰ動作を示す。ここで、ワードＢの転送は予期しないフレーム同期では影響されない。
【０３７４】
次にシリアルポート除外条件を説明する。下記に示すように、システムエラーを構成する５つのシリアルポート事象が存在する：
１）受信オーバーラン（ＲＦＵＬＬ＝１）。これはＲＢＲが満杯となり先にＤＲＲ内に受信されたデータがＣＰＵまたはＤＭＡによって未だ読みとられていない（ＲＲＤＹ＝１）時に発生する。ＲＢＲの内容はＤＲＲが読みとられるまでＤＲＲには転送されない。
２）予期しない受信フレーム同期（ＲＳＹＮＣＥＲＲ＝１）。これは受信中に、ＲＦＩＧ＝１で予期しないフレーム同期パルスが発生したときに生じる。予期しないフレーム同期パルスはＲＤＡＴＤＬＹ引く１、またはそれ以上のビットクロック分だけ次の関連するワードの先頭ビットより早く発生したものとして定義される。これは現行データ受信を破棄し再スタートを促す。もしも新たなデータのＲＳＲからＲＢＲへのコピーが最後にＲＢＲからＤＲＲへのコピーの後になされると、このＲＢＲ内の新たなデータは失われる。これは受信が再スタートされるためにＲＢＲからＤＲＲへのコピーが行われないためである。
３）送信データ上書き。ここで使用者はデータをＤＸＲの中にそれがＸＳＲへコピーされる前に上書きする。それ以前にＤＸＲ内にあったデータはＤＸへ転送されることは無いが、それは決してＸＳＲにコピーされないからである。
４）送信空（ＸＥＭＰＴＹ−＝０）。もしも新たなフレーム同期信号が新たなデータがＤＸＲの中にロードされる前に到着すると、ＤＸＲ内の旧データが再び送られることになる。これはＤＸＲに新たなデータがロードされるまで、新たなフレーム同期信号がＦＳＸピンに到着する度に継続される。
５）予期しない送信フレーム同期（ＸＳＹＮＣＥＲＲ＝１）。これは送信中に、ＸＦＩＧ＝０で予期しないフレーム同期パルスが発生した際に生じうる。再び、予期しないフレーム同期パルスはＸＤＡＴＤＬＹ引く１、またはそれ以上のビットクロック分だけ次の関連するワードの先頭ビットより早く発生したものとして定義される。これは現行データ送信を破棄し現行転送の再スタートを促す。もしも最後にＤＸＲからＸＳＲへのコピーされてから新たなデータがＤＸＲに書き込まれると、ＸＳＲ内の現行値は失われる。それ以外の場合、前回値が再送信される。
【０３７５】
これらの事象は以下の段落で更に詳細に説明される。
【０３７６】
次にオーバーランでの受信、ＲＦＵＬＬを説明する。ＳＰＣＲ内のＲＦＵＬＬ＝１は受信機がオーバーラン状態と成っていることを示す。オーバーランは次の場合に生じる：ＲＢＲが満杯、そしてＤＲＲが最後にＲＢＲからＤＲＲへの転送が行われてから読みとられていない（ＲＲＤＹ＝１）。
【０３７７】
この状態の間、ＤＲピン上への全ての新たなデータは更にＲＳＲの中へシフトされる。一度１つの完全なワードがＲＳＲの中にシフトされて、ＲＦＵＬＬ＝１となると、受信機は停止しＤＲＲが読みとられるまで待機し、ＲＢＲからＤＲＲへの転送を実行しない。この時にＤＲピン上に到着する全てのデータは失われる。このデータが喪失される理由は、シリアルワードを完全に受信した際に、ＲＲＤＹ＝０の時にのみＲＳＲからＤＲＲへの転送のトリガが掛けられるためである。リセットから受信部分が動作を開始した後、最小３ワードがＲＦＵＬＬがセットされる前に受信されなければならないことに注意されたい。これは、最初のワードの前にＲＢＲからＤＲＲへの転送が存在しないためである。
【０３７８】
下記の事象のいずれか１つがＲＦＵＬＬビットを０に消去し、後続の転送が適切に読みとられるようにする：１）ＤＲＲの読み取り；２）受信機（ＲＲＳＴ−＝０）または装置のリセット。別のフレーム同期が受信機を再スタートするために必要である。
【０３７９】
図６６は受信オーバーラン状態を示す。シリアルワードＡはシリアルワードＢの受信が完了する前に準備完了になっていないので、ＢがＤＲＲに転送されることは無い。従ってＢが受信された後ＲＦＵＬＬがセットされる。ＤＲＲが最終的に読みとられた時
値Ａは未だＤＲＲの中にある。ＤＲＲの読み取りはシリアルワードＣが転送された後に生じるので、ＣがＲＳＲの中にシフトされることは無い。
【０３８０】
図６７はＲＦＵＬＬがセットされた事例を示すが、オーバーラン状態は次のシリアルワードの前にＤＲＲの内容を読みとることにより回避されている。これはデータＢのＲＢＲからＤＲＲへのコピーが次のシリアルワードがＲＳＲからＲＢＲへ転送される前に確実に生じるようにしている。
【０３８１】
次に予期しない受信フレーム同期、ＲＳＹＮＣＥＲＲを説明する。図６８は受信機が全ての入力フレーム同期パルスを処理する際に使用する判断樹を示す。この図は受信機が開始されたと仮定している、ＲＲＳＴ−＝１。予期しないフレーム同期パルスは外部発信源または内部サンプリング速度発生器から発生される。４つの事例のいずれか１つが発生しうる：
事例１：受信オーバーラン中のＦＳＲ＿ｉｎｔパルス。図６６中のワードＣの転送がこれの１つの例である。このフレーム同期パルスは無視され受信機は停止状態のままである。
事例２：ＲＦＩＧ＝１を具備した予期しないＦＳＲ＿ｉｎｔパルス。この事例は図６５を参照して説明された。ここで受信同期パルスは無視されて受信は継続される。
事例３：正常シリアルポート受信。受信が進まない理由として３つの考えられる原因があることに注意されたい：
１）このＦＳＲがＲＲＳＴ−＝１の後最初。
２）このＦＳＲがＤＲＲが読みとられ、ＲＦＵＬＬを消去した後最初。
３）シリアルポートが内部パケットの合間の中にある。従って最大パケット周波数に於いて、フレーム同期は関連するワードの第一ビットの前にＲＤＡＴＤＬＹビットクロックで受信することが出来る。これに代わる方法として、１つの予期しないフレーム同期パルスは、先行ワードの最後のビットがＤＲピン上で受信する前のＲＤＡＴＤＬＹ引く１ビットクロックの時点またはその前に生じる時に検出することが出来る。
【０３８２】
この場合、これらは予期しないフレーム同期パルスでは無いので受信は正常に継続する。
４）事例４：ＲＦＩＧ＝０を具備した予期しない受信フレーム同期（予期しないフレームは無視されない）。この事例は最大パケット周波数に対して図２４に示されている。図６９は内部パケットの合間を具備したシリアルポートの正常動作中のこの事例を示す。両方の事例に於いて、ＳＰＣＲ内のＲＳＹＮＣＥＲＲビットがセットされる。ＲＳＹＮＣＥＲＲは受信機がリセットされるかまたは使用者がＳＰＣＲ内のこのビットに０を書き込むことによってのみ消去出来る。もしもＳＰＣＲ内のＲＩＮＴＭ＝１１ｂの場合、ＲＳＹＮＣＥＲＲは受信割り込み（ＲＩＮＴ）をＣＰＵに駆動することに注意されたい。
【０３８３】
次にデータ上書き送信を説明する。図７０はＤＸＲ内のデータが送信される前に上書きされると何が発生するかを示している。最初プログラマがＤＸＲにデータＣをロードする。後続のＤＸＲへの書き込みでＣがＸＳＲにコピーされる前にＤで上書きされる。従ってＣがＤＸ上に送信されることは無い。ＣＰＵはデータの上書きを回避することが出来るが、それはＤＸＲに書き込む前にＸＲＤＹをポーリングするか、またはＸＲＤＹ（ＸＩＮＴＭ＝００ｂ）でトリガされるようにプログラムされたＸＩＮＴを待つことによって行われる。ＤＭＡはＸＥＶＴの書き込み同期データ転送で上書きを回避することが出来る。
【０３８４】
ＸＥＭＰＴＹ−は送信機がアンダーフローを経験したか否かを示す。下記の条件のいずれかによりＸＥＭＰＴＹ−が有効（ＸＥＭＰＴＹ−＝０）となる：
１）送信中のアンダーフロー。最後にＤＸＲからＸＳＲへのコピーが行われてからＤＸＲにロードされない、またＸＳＲ内のデータワードの全てのビットがＤＸ上にシフトアウトされてしまっている。
２）送信機がリセットされ（ＸＲＳＴ−＝０または装置がリセット）そして再スタートされる。
【０３８５】
ＸＥＭＰＴＹ−＝０の時、送信機は停止し次のフレーム同期までＤＸを高インピーダンス状態に設定する。ＸＥＭＰＴＹ−はＤＸＲがＣＰＵまたはＤＭＡのいずれかでロードされた後、無効化される（ＸＥＭＰＴＹ−＝１）。もしもＤＸＲがアンダーフローのために停止した後再ロードされると、この装置は送信を再開する。内部フレーム生成の場合は、ＤＸＲからＸＳＲへのコピーで作られる単一ＦＳＸ＿ｉｎｔを再生成する（ＸＣＲ内でＦＳＸＭ＝１、またＳＲＧＲ内でＦＳＧＭ＝０）。それ以外の場合は、送信機は次のフレーム同期まで待つ。
【０３８６】
図７１は送信アンダーフロー状態を示す。Ｂを送信した後、プログラマは後続の同期の前にＤＸＲを再ロードすることに失敗する。従って、Ｂは再びＤＸ上に送信される。図７２はほっておけば送信アンダーフロー状態が起こる直前にＤＸＲへの書き込みが行われる事例を示す。Ｂが送信された後、Ｃが次のフレーム同期パルスが発生する前にＤＸＲに書き込まれ、それによってＣが成功裏にＤＸ上に送信され、従って送信空状態が避けられる。
【０３８７】
次に予期しない送信フレーム同期、ＸＳＹＮＣＥＲＲを説明する。図７３は送信機が全ての入力される同期信号を処理する際に使用する判断樹を示す。この図は送信機が開始された時点を仮定している、ＸＲＳＴ−＝１。３つの事例のいずれか１つが生じうる：
事例１：ＸＦＩＧ＝１を具備した予期しないＦＳＸ＿ｉｎｔパルス。この事例は図６５を参照して説明される。
事例２：正常シリアルポート送信は先に説明した。送信が進行しない理由として２つ考えられることに注意されたい：
１）ＸＲＳＴ−＝１の後ＦＳＸ＿ｉｎｔパルスが最初に生じる。
２）シリアルポートが内部パケットの合間の中にある。従って、もしも最大パケット周波数で動作する場合、フレーム同期は関連するワードの第一ビットの前にＸＤＡＴＤＬＹビットクロックで受信できる。
事例３：ＸＦＩＧ＝０を具備した予期しない送信フレーム同期。
【０３８８】
最大パケット周波数に於ける、ＸＦＩＧ＝０を具備した後続のフレーム同期の事例が図６４に示されている。図７４は内部パケットの合間を具備したシリアルポートの正常動作の事例を示す。両方の事例で、ＳＰＣＲ内のＸＳＹＮＣＥＲＲビットがセットされる。ＸＳＹＮＣＥＲＲは送信機リセットまたは使用者がＳＰＣＲ内のこのビットに０を書き込むことによってのみ消去出来る。もしもＳＰＣＲ内でＸＩＮＴＭ＝１１ｂの場合、ＸＳＹＮＣＥＲＲはＣＰＵに対して受信割り込み（ＸＩＮＴ）を駆動する。更に、ＳＰＣＲ内のＸＳＹＮＣＥＲＲビットが読み取り／書き込みビットであることに注意されたい。従ってそこへ１を書き込むことはエラー状態を設定することである。通常は０を書き込むことが期待される。
【０３８９】
次に受信データの行揃えおよび符号延長、ＲＪＵＳＴを説明する。ＳＰＣＲ内のＲＪＵＳＴはＲＢＲ内のデータがＤＲＲ内で右揃えかまたは左揃え（ＭＳＢに関して）であるかを選択する。右揃えが選択された場合、ＲＪＵＳＴは更にそのデータが符号延長されるかまたはゼロが充填されるかを選択する。表６１は１２ビット受信データ値０ｘＡＢＣに対するＲＪＵＳＴの種々のモードの結果を示す。
【０３９０】
【表６３】
0004285803.tif 000066
【０３９１】
次にμ−ＬＡＷ／Ａ−ＬＡＷ圧縮伸張ハードウェア，（Ｒ／Ｘ）ＣＯＭＰＡＮＤを説明する。圧縮伸張（圧縮：COMpressおよび伸張：exPAND）ハードウェアはμ−ｌａｗまたはＡ−ｌａｗ形式のいずれにおいてもデータの圧縮および伸張が可能である。米国および日本で採用されている圧縮伸張規格はμ−ｌａｗである。欧州圧縮伸張規格はＡ−ｌａｗと呼ばれている。μ−ｌａｗおよびＡ−ｌａｗ、ｌｏｇＰＣＭに対する仕様はＣＣＩＴＴ  Ｇ．７１１勧告の一部である。Ａ−ｌａｗおよびμ−ｌａｗはそれぞれ１３ビットと１４ビットの可変範囲を許している。この範囲外の任意の値は正の最大値または負の最大値にセットされる。
【０３９２】
μ−ｌａｗおよびＡ−ｌａｗ形式はこのデータを８ビット符号ワードに符号化する。従って圧縮伸張されたデータは常に８ビット幅であるため、固有の（Ｒ／Ｘ）ＷＤＬＥＮ（１／２）は０にセットされなければならず、８ビット幅シリアルデータストリームを示す。フレームのいずれの位相も８ビットワード幅を持たない場合、圧縮伸張はその部分（送信または受信）および位相に対して自動的に無効化される。
【０３９３】
圧縮伸張が使用されると、送信データは特定の圧縮伸張法則に従って符号化され、受信データは２の補数形式で復号される。圧縮伸張が有効化されて、（Ｒ／Ｘ）ＣＲ内の固有の（Ｒ／Ｘ）ＣＯＭＰＡＮＤ設定で希望する形式が選択される、これは表５６に示される通りである。圧縮は図７５に示すように、データをＤＸＲからＸＳＲへ、またＲＢＲからＤＲＲへコピーする処理過程の中で発生する。
【０３９４】
送信データを圧縮するためには、それは１６ビット左揃えデータ、すなわちＬＡＷ１６でなければならない。値は圧縮伸張法に応じて１３−または１４−ビットのいずれかである。これは図７６に示されている。
【０３９５】
受信に際して、ＲＢＲ内の８ビットの圧縮データは左揃えの１６ビットデータ、ＬＡＷ１６に伸張される。これは更にＳＰＣＲ内のＲＪＵＳＴフィールドを表６２に示すようにプログラムすることにより、３２ビットデータに行揃えすることが出来る。
【０３９６】
【表６４】
0004285803.tif 000067
【０３９７】
もしもＭＣＳＰが使用されない場合は、圧縮伸張ハードウェアは内部データの圧縮伸張に使用出来る。これは次のように使用できる：
ａ）線形形式を固有のμ−ｌａｗまたはＡ−ｌａｗ形式に変換する。
ｂ）μ−ｌａｗまたはＡ−ｌａｗ形式を線形形式に変換する。
ｃ）線形データを送信し、このデータを圧縮および再伸張して圧縮伸張の量子化効果を観察する。これはＸＣＯＭＰＡＮＤおよびＣＯＭＰＡＮＤの両方が同一圧縮伸張形式を有効とする場合にのみ有用である。
【０３９８】
図７７はＭＣＳＰが内部データを圧縮伸張することの出来る２つの方法を示す。
１）シリアルポートの送信および受信部分の両方がリセットされた時、ＤＲＲおよびＤＸＲは圧縮伸張論理回路を通して内部的に接続される。ＤＸＲからの値はＸＣＯＭＰＡＮＤでの選択に従って圧縮され、ＲＣＯＭＰＡＮＤの選択に従って伸張される。データは書き込まれた後４ＣＰＵクロック内で利用できる。この方法の特長はその速度にある。欠点はフローを制御するためにＣＰＵおよびＤＭＡで利用できる同期が存在しない点である。
２）ＭＣＳＰはＲＣＯＭＰＡＮＤおよびＸＣＯＭＰＡＮＤで好適に有効化された圧縮伸張によってディジタルループバックモードの中で有効化される。受信および送信割込（ＲＩＮＴＭ＝０の時ＲＩＮＴまたＸＩＮＴＭ＝０の時ＸＩＮＴ）または同期事象（ＲＥＶＴおよびＸＥＶＴ）はそれぞれＣＰＵまたはＤＭＡがこれらの変換の同期を取れるようにしている。ここで、この圧縮伸張の時間は選択されているシリアルビット速度に依存する。
【０３９９】
通常ＭＣＳＰ上の全ての転送はＭＳＢを最初に送信および受信される。しかしながら、８ビットデータプロトコルによっては（これは圧縮伸張されたデータを使用しない）ＬＳＢを最初に転送するように要求するものがある。（Ｒ／Ｘ）ＣＲ内で（Ｒ／Ｘ）ＣＯＭＰＡＮＤ＝０１ｂに設定することで、８ビットワードのビット順序がシリアルポートに送られる前に反転される（ＬＳＢ先頭）。圧縮伸張と同様、この機能は固有の（Ｒ／Ｘ）ＷＤＬＥＮ（１／２）が０にセットされて、８ビットワードがシリアルに転送されることを示している場合にのみ有効である。もしもいずれの位相も８ビットワード長を持たない場合、このＬＳＢ先頭の順序はこの部分（送信または受信）および位相に対して自動的に無効とされる。
【０４００】
次にプログラム可能クロックおよびフレーム化を説明する。ＭＣＳＰは受信機および送信機の両方に対して、クロック化およびフレーム化を選択するためのいくつかの手段を有する。クロック化およびフレーム化は両部分にサンプリング速度発生器によって送ることが出来る。両部分は外部クロック化そして／またはフレーム化を独立して選択できる。図３８はクロックおよびフレーム選択回路のブロック図を示す。この論理回路で有効化される機能を下記の段落で説明する。
【０４０１】
サンプリング速度発生器は３段クロック分周器を含み、図７９に示すようにプログラム可能データクロック（ＣＬＫＧ）およびフレーム化信号（ＦＳＧ）を可能とする。ＣＬＫＧおよびＦＳＧはＭＣＳＰ内部信号であって、受信そして／または送信クロック化（ＣＬＫＲ／Ｘ）およびフレーム化（ＦＳＲ／Ｘ）を駆動するようにプログラムする事が出来る。サンプリング速度発生器は内部クロック発信源から駆動されるようにも、また外部クロック発信源から導かれた内部クロックで駆動されるようにもプログラムすることが出来る。この３つの段は下記の計算を行う：
１）クロック分周（ＣＬＫＧＤＶ）：データビットクロック当たりの入力クロック数。
２）フレーム周期分周（ＦＰＥＲ）：データビットクロック内のフレーム周期。
３）フレーム幅計数（ＦＷＩＤ）：データビットクロック内の有効フレームパルスの幅。
【０４０２】
加えて、フレームパルス検出およびクロック同期モジュールは入力フレームパルスのクロック分周の同期を可能とする。
【０４０３】
図８０および表６３に示されるサンプリング速度発生器レジスタ（ＳＲＧＲ）はサンプリング速度発生器の種々の機能の動作を制御する。以下の章はその動作がどのようにしてＳＲＧＲビットフィールドを用いて構成できるかを説明している。
【０４０４】
【表６５】
0004285803.tif 000068
【０４０５】
次にデータクロック生成を説明する。受信／送信クロックモードが１にセットされると（ＣＬＫ（Ｒ／Ｘ）Ｍ＝１）、データクロック（ＣＬＫ（Ｒ／Ｘ））は内部サンプリング速度発生器出力クロック，ＣＬＫＧで駆動される。種々のデータビットクロックを受信機および送信機に対して独立して選択できる。これらの選択肢は下記を含む：
１）サンプリング速度発生器への入力クロックはＣＰＵクロックまたは専用外部クロック入力（ＣＬＫＳ）のいずれかが可能である。
２）サンプリング速度発生器への入力クロック（ＣＰＵクロックまたは外部クロックＣＬＫＳ）信号発生源はＣＬＫＧを駆動するために、プログラム可能な値（ＣＬＫＧＤＶ）で分周することが出来る。
【０４０６】
ＳＲＧＲ内のＣＬＫＳＭビットはＣＰＵクロック（ＣＬＫＳＭ＝１）または外部クロック入力（ＣＬＫＳＭ＝０）、ＣＬＫＳのいずれかをサンプリング速度発生器入力クロックとして選択する。任意の分周周期がサンプリング速度発生器で計算されて分周され、この入力クロック選択によってタイミングが取られる。
【０４０７】
ＣＬＫ  ＧＤＶフィールドはサンプリング速度発生器データビットクロック速度を決定する。第一分周器段は入力クロックからシリアルデータビットクロックを生成する。この分周器段は１つのカウンタを使用し、これはＣＬＫＧＤＶを事前ロードされており、それは分周比率値を含む。この段の出力はデータビットクロックであって、これはサンプリング速度発生器出力、ＣＬＫＧに出力され、第二および第三分周器段への入力として作用する。
【０４０８】
ＣＬＫＧはサンプリング速度発生器入力クロックの１／（ＣＬＫＧＤＶ＋１）に等しい周波数を有する。従ってサンプリング発生器入力クロック周波数は１−２５６の値で分周される。ＣＬＫＧＤＶが奇数または０に等しい時、ＣＬＫＧ衝撃係数は５０％である。ＣＬＫＧＤＶが偶数値、２ｐで奇数分周を表しているとき、高状態期間はｐ＋１サイクル、そして低状態期間はｐサイクルである。
【０４０９】
ビットクロック極性はＣＬＫＳＰで決定される。外部クロック（ＣＬＫＳ）が、ＣＬＫＳＭ＝０を選択することで、サンプリング速度発生器クロック分周器を駆動するために選択される。この場合、ＳＲＧＲ内のＣＬＫＳＰビットはＣＬＫＳの変化方向を選択し、これに基づいてサンプリング速度発生器データビットクロック（ＣＬＫＧ）およびフレーム同期信号（ＦＳＧ）が発生される。外部クロックの立ち下がり（ＣＬＫＳＰ＝０）または立ち上がり（ＣＬＫＳＰ＝１）のいずれかがデータビット速度クロックおよびＦＳＧ上の遷移を引き起こすことが出来る。
【０４１０】
次にビットクロックおよびフレーム同期を説明する。ＣＬＫＳがサンプリング速度発生器を駆動するように選択されている場合（ＣＬＫＳＭ＝０），ＧＳＹＮＣを使用してＣＬＫＳに対するＣＬＫＧのタイミングを構成することが出来る。ＧＳＹＮＣ＝１はＭＣＳＰとそれと通信している外部装置とが、ＣＬＫＳを同一位相の関係を保ちながら分周することを保証する。もしもＧＳＹＮＣ＝０の場合は、この機能は無効化されて、従ってＣＬＫＧは自由に動作し再同期されることは無い。もしもＧＳＹＮＣ＝１の場合は、ＦＳＲ上の有効遷移がＣＬＫＧの再同期およびＦＳＧの生成にトリガを掛ける。同期の後、ＣＬＫＧは常に高状態で開始する。また、ＦＳＲはＣＬＫＧを発生するＣＬＫＳの同一信号変化で検出される。外部ＦＳＲが用意されているが、ＦＳＧはＧＳＹＮＣ＝１の時内部受信フレーム同期を駆動することが出来る。ＧＳＹＮＣ＝１の時、ＦＰＥＲはフレーム周期が外部フレーム同期パルスの到着で決定されるために無視されることに注意されたい。
【０４１１】
図８１および図８２はＣＬＫＳおよびＦＳＲの種々の極性でのこの動作を示す。これら図では次のように仮定している：１つのＣＬＫＧ幅のＦＳＧに対してＦＷＩＤ＝０。ＦＰＥＲは次の外部フレーム同期パルスの到着で決定されるのでプログラムされていないことに注意されたい。図はＣＬＫＧが最初に同期状態にあってＧＳＹＮＣ＝１の場合と、同様にフレーム同期と同期状態に無くてＧＳＹＮＣ＝１の時に何が発生するかを示している。
【０４１２】
ＧＳＹＮＣ＝１の時、送信機は下記の条件が満たされれば受信機と同期して動作することが可能である：
１）ＦＳＸがサンプリング速度発生器フレーム同期ＦＳＧで駆動されるようにプログラムされている（ＳＲＧＭ内でＦＳＧＭ＝１、かつＸＣＲ内でＦＳＸＭ＝１）。もしも入力ＦＲＳがそのタイミングを有する場合、これはＣＬＫＧの立ち下がりでサンプリングする事が可能であり、ＸＣＲ内のＦＳＸＭ＝０と設定してＦＳＲをＦＳＸに外部的に接続することにより代替として使用することが出来る。
２）サンプリング速度発生器クロックが送信および受信ビットクロックを駆動しなければならない（ＳＰＣＲ内のＣＬＫ（Ｒ／Ｘ）Ｍ＝１）。従ってＣＬＫ（Ｒ／Ｘ）ピンはその他の駆動信号発信源で駆動されてはならない。
【０４１３】
次にディジタルループバックモード、ＤＬＢを説明する。ＳＰＣＲ内のＤＬＢ＝１を設定することによりディジタルループバックモードが有効となる。ＤＬＢモード中、ＤＲ，ＦＳＲ，およびＣＬＫＲはそれぞれ図７８に示すようにマルチプレクサを通してＤＸ，ＦＳＸ，ＣＬＫＸに内部的に接続されている。ＤＬＢモードは単一のＤＳＰ装置でシリアルポート符号を試験することが出来る。図７９はディジタルループバックモード中の受信機制御入力のマルチプレクスを示す。
【０４１４】
次に受信クロック選択、ＤＬＢ，ＣＬＫＲＭを説明する。表６４はＰＣＲ内のディジタルループバックビット（ＤＬＢ）およびＣＬＫＲＭビットがどの様にして受信機クロックを選択するかを示している。ディジタルループバックモード（ＤＬＢ＝１）に於いて、送信機クロックが受信機を駆動する。ＣＬＫＲＭはＣＬＫＲピンが入力であるか出力であるかを決定する。
【０４１５】
【表６６】
0004285803.tif 000069
【０４１６】
次に送信クロック選択、ＣＬＫＸＭを説明する。表６５はどの様にして２つの送信クロック発信元の１つが選択できるかを示している。
【０４１７】
【表６７】
0004285803.tif 000070
【０４１８】
次にフレーム同期信号生成を説明する。データビットクロック化と同様、データフレーム同期もまた全てのデータ遅延に関して、受信機および送信機に対して独立にプログラム可能である。プログラミング選択肢には下記が含まれる：
１）プログラム可能な同期パルス間の周期と、サンプリング速度発生器レジスタ（ＳＲＧＲ）を用いたプログラム可能有効幅とを具備したフレームパルス。
２）送信部はＤＸＲからＸＳＲへのコピーにより生成される、自身のフレーム同期信号にトリガを掛ける。
３）受信および送信部は共にそれぞれＦＳＲおよびＦＳＸピン上の外部フレーム同期を独立して選択する。
【０４１９】
フレーム周期はＦＰＥＲで決定される。サンプリング速度発生器内の第二分周器段は１２ビットカウンタであって、これは生成されたデータクロックを０から４０９５まで計数する。このカウンタの値がひとたびプログラムされたフレーム周期（ＦＰＥＲ）と一致すると、フレームカウンタはリセットされＦＳＧが生成される。次に計数工程が再度開始される。従って、ＦＰＥＲ＋１の値が１から４０９６データビットのフレーム長を決定する。ＧＳＹＮＣ＝１の時、ＦＰＥＲは無視される値となる。図８３は１６ＣＬＫＧ周期（ＦＰＥＲ＝１５または００００１１１１ｂ）のフレームを示す。
【０４２０】
フレーム幅はＦＷＩＤで決定される。ＦＷＩＤフィールドはフレーム同期パルスの有効幅を制御する。フレーム周期（ＦＰＥＲ）を追跡しているカウンタがＦＷＩＤ内にプログラムされている値に達すると、フレームパルスは無効となる。従って、ＦＷＩＤ＋１の値が１から２５６データビットクロックの範囲の有効フレームパルス幅を決定する。図８３は有効幅２ＣＬＫＧ周期（ＦＷＩＤ＝１）を具備したフレームを示す。
【０４２１】
受信フレーム同期選択はＤＬＢ，ＦＳＲＭ，およびＧＳＹＮＣで決定される。表６６は受信フレーム同期信号を提供する種々の発信元の選択方法を示す。ディジタルループバックモード（ＤＬＢ＝１）に於いて、送信フレーム同期信号が受信フレーム同期信号として使用され、ＤＲがＤＸに内部的に接続されている。
【０４２２】
【表６８】
0004285803.tif 000071
【０４２３】
送信フレーム同期信号選択はＦＳＸＭおよびＦＳＧＭで決定される。表６７は送信フレーム同期パルスの発信元がどの様にして選択できるかを示す。３つの選択は：
１）外部フレーム同期入力。
２）サンプリング速度発生器フレーム同期信号、ＦＳＧ。
３）ＤＸＲからＸＳＲへのコピーが行われたことを示す信号。
【０４２４】
【表６９】
0004285803.tif 000072
【０４２５】
フレーム同期の検出を容易にするために、受信および送信ＣＰＵ割り込み（ＲＩＮＴおよびＸＩＮＴ）はＳＰＣＲ内のＲＩＮＴＭ＝ＸＩＮＴＭ＝１０ｂをセットすることでフレーム同期を検出するようにプログラムされる。その他の型のシリアルポート割り込みとは異なり、このモードはシリアルポートの関連する部分がリセット中でも動作できる（例えば受信機かリセット中にＲＩＮＴを有効化させて）。この場合、ＦＳ（Ｒ／Ｘ）ＭおよびＦＳ（Ｒ／Ｘ）Ｐは依然固有の発信元およびフレーム同期の極性を選択する。従ってシリアルポートがリセット状態にあったとしても、これらの信号はＣＰＵクロックに同期され、続いてＣＰＵにＲＩＮＴおよびＸＩＮＴの形式で送られるが、これはそれらがシリアルポートの受信および送信部に送り込まれた時点で行われる。従って新たなフレーム同期パルスを検出することが可能で、その後ＣＰＵはそのシリアルポートを安全にリセットから解除する事が出来る。
【０４２６】
次にＭＣＳＰ構成の種々の例を説明する。図８４は二重速度ＳＴ−バスであるＭｉｔｅｌ  ＳＴ−バスと等価のＭＣＳＰ構成を示す。この動作は最大パケット周波数で実行されることに注意されたい。種々の制御ビットが下記の様にセットされる：
ａ）サンプリング速度発生器で内部的に生成されたＣＬＫ（Ｒ／Ｘ）Ｍ＝１，ＣＬＫ（Ｒ／Ｘ）＿ｉｎｔ
ｂ）ＧＳＹＮＣ＝１，ＣＬＫＧをＦＳＲ上の外部フレーム同期信号入力で同期する。またＦＳＲは最小パルス幅を形成するために内部的に生成されることを注意されたい。
ｃ）ＣＬＫＳＭ＝１，外部クロック（ＣＬＫＳ）がサンプリング速度発生器を駆動する。
ｄ）ＣＬＫＳＰ＝０，ＣＬＫＳの立ち下がりでＣＬＫＧ従ってＣＬＫ（Ｒ／Ｘ）＿ｉｎｔを生成する。
ｅ）ＣＬＫＧＤＶ＝１，受信クロック（ＣＬＫＲとして示されている）はＣＬＫＳ周波数の半分である。
ｆ）ＦＳ（Ｒ／Ｘ）Ｐ＝１，有効低フレーム同期パルス。
ｇ）（Ｒ／Ｘ）ＦＲＬＥＮ１＝11111b，フレーム当たり３２ワード
ｈ）（Ｒ／Ｘ）ＷＤＬＥＮ１＝０，８ビットワード
ｉ）（Ｒ／Ｘ）ＰＨＡＳＥ＝０，単一位相フレーム、従って（Ｒ／Ｘ）ＦＲＬＥＮ２＝Ｘ。
ｊ）（Ｒ／Ｘ）ＤＡＴＤＬＹ＝０，データ遅延無し。
【０４２７】
図８５は単一速度ＳＴ−ＢＵＳを図示する。この例は下記を除きＳＴ−ＢＵＳの例と同じである：
ａ）ＣＬＫＧＤＶ＝０，ＣＬＫは分周を行うことなく（単一速度クロック）ＣＬＫ（Ｒ／Ｘ）＿ｉｎｔを駆動する。
ｂ）ＣＬＫＳＰ＝１，ＣＬＫＳの立ち上がりで内部クロックＣＬＫＧ，ＣＬＫ（Ｒ／Ｘ）＿ｉｎｔを生成する。
【０４２８】
ＣＬＫＳの立ち上がりを使用して外部ＦＳＲを検出する。この外部フレーム同期パルスは内部ＭＣＳＰクロックの再同期および内部で使用するフレーム同期を生成するために使用される。内部フレーム同期は、内部クロックの立ち下がりで検出されるように十分な幅となるように生成される。
【０４２９】
図８６は二重速度クロック例を図示する。この例は下記を除きＳＴ−ＢＵＳ例と同じである：
ａ）ＧＳＹＮＣ＝０，ＣＬＫＳがＣＬＫＧを駆動する。ＣＬＫＧは自由に実行され、ＦＳＲで再同期されることは無い。
ｂ）ＦＳ（Ｒ／Ｘ）Ｍ＝０，フレーム同期は外部的に生成される。フレーム化パルスは検出に備えて十分広い。
ｃ）ＦＳ（Ｒ／Ｘ）Ｐ＝０，有効高入力フレーム同期信号。
ｄ）（Ｒ／Ｘ）ＤＡＴＤＬＹ＝１，１ビットのデータ遅延。
ｅ）ＣＬＫＳＰ＝１，ＣＬＫＳの立ち上がりでＣＬＫＧ従ってＣＬＫ（Ｒ／Ｘ）が生成される。
【０４３０】
次に複数チャンネル選択動作を説明する。複数チャンネルはＭＣＳＰを先に説明したように単一位相フレームで構成することにより、送信機および受信機に対して独立に選択出来る。フレーム当たりのワード数は（Ｒ／Ｘ）ＦＲＬＥＮ１で表され、選択出来るチャンネル数を表す。
【０４３１】
各々のフレームは時間分割マルチプレクス（ＴＤＭ）データストリームを表す。時間分割マルチプレクスデータストリームを使用する際に、ＣＰＵはそれらのいくつかを処理する必要があるだけである。従って、メモリ並びにバスの帯域幅を節約するために、複数チャンネル選択は送信および受信用の特定チャンネルを独立して有効化する事が可能である。最大１２８チャンネルビットストリームの中で最大３２チャンネルを任意の指定された時刻に有効化することが可能であるが、動的手法（後ほど説明する）では１２８チャンネルの任意の組み合わせを処理することが可能である。
【０４３２】
もしも受信チャンネルが無効の場合は、下記の結果となる：
１）ワードの最後のビットを受信してもＲＲＤＹは１にセットされない。
２）ワードの最後のビットを受信した時点でＲＢＲがＤＲＲにコピーされない。従ってＲＲＤＹは有効状態にはセットされない。このことはこのワードに対して割り込みまたは同期事象が生成されないことを意味する。
【０４３３】
もしも送信チャンネルが無効の場合は、下記の結果となる：
１）ＤＸが高インピーダンス状態である。
２）関連するワードのシリアル送信の終了時点でＤＸＲからＸＳＲへの転送が自動的にはトリガされない。
３）ＸＥＭＰＴＹ−およびＸＲＤＹは同様に、関連するシリアルワードの送信の終了時点で影響されない。
【０４３４】
有効化された送信チャンネルはそのマスクされているかまたは送信されたデータを持つことが出来る。マスクされている場合は、送信チャンネルが有効であってもＤＸピンが強制的に高インピーダンスとされる。
【０４３５】
下記の制御レジスタが複数チャンネル動作で使用される：
複数チャンネル制御（ＭＣＲ）レジスタ。
送信チャンネル有効（ＸＣＥＲ）レジスタ。
受信チャンネル有効（ＸＣＥＲ）レジスタ。
【０４３６】
これらのレジスタを使用しての複数チャンネル動作の制御を以下の章で説明する。
【０４３７】
ＭＣＲが図８７に示され、表６８に説明されている。
【０４３８】
【表７０】
0004285803.tif 000073
【０４３９】
複数チャンネルモードが受信および送信に対してそれぞれ独立に有効化出来るが、これはＭＣＲ内でＲＭＣＭ＝１およびＸＭＣＭを非ゼロの値に設定して行われる。
【０４４０】
利用可能な１２８チャンネルの中から全部で３２個を指定された任意の時点で有効化出来る。この１２８チャンネルは８ブロック（０から７）を含み、各々のブロックは１６個の連続したチャンネルを有する。更に、偶数番号のブロック０，２，４，および６はパーティションＡに属し、奇数番号のブロック１，３，５，および７はパーティションＢに属する。
【０４４１】
有効化されるチャンネル数は、フレームが任意のグループのチャンネルを有効化する過程で更新出来る。この機能はそのフレーム内の任意の時刻で１６個の連続したチャンネルの２つのブロック（１つは奇数番号、そしてもう一つは偶数番号）を制御する交互のピンポン手法を用いて実施できる。従って１つのブロックはパーティションＡにそしてもう一方はパーティションＢに属する。
【０４４２】
８つの１６チャンネルブロックの中から任意の２つを選択して、全部で３２チャンネルを有効化出来る。このブロックは図８８に示されるようにこのフレーム内の１６チャンネル境界上に配置されている。ＭＣＲ内の（Ｒ／Ｘ）ＰＡＢＬＫおよび（Ｒ／Ｘ）ＰＢＢＬＫフィールドがそれぞれパーティションＡおよびＢの中で選択されるブロックを決定する。この有効化は送信および受信に対して独立して実行される。
【０４４３】
送信データマスク化は送信用に有効化されたチャンネルがそのＤＸピンを送信周期の間に高インピーダンス状態にセットする事を可能とする。対称な送信および受信がソフトウェア的に利益があるシステムに於いて、この機能は送信チャンネルを共有シリアルバス上で無効化することを可能とする。同様の機能は受信には不要であるが、それは複数受信がシリアルバス接続を生じさせないからである。
【０４４４】
以下は種々のＸＭＣＭ値に対する送信中の複数のチャンネル動作の説明である：
ＸＭＣＭ＝００ｂ：シリアルポートはＸＦＲＬＥＮ１内にプログラムされたワード数分のデータをＤＸピンを経由して送信する。従って、ＤＸは駆動され、マスクされることは無い。
ＸＭＣＭ＝０１ｂ：要求されたチャンネルまたは送信の必要があるワードのみがＸＰ（Ａ／Ｂ）ＢＬＫおよびＸＣＥＲ経由で選択される。
【０４４５】
従ってこれらの選択されたワードのみがＤＸＲに書き込まれ、最終的に送信される。言葉を変えれば、もしもＸＩＮＴＭ＝００ｂの場合、これはＸＩＮＴがＤＸＲからＸＳＲへのコピーの度に生成されることを意味し、生成されたＸＩＮＴの数はＸＣＥＲ経由で選択されたチャンネル数に等しい（ＸＦＲＬＥＮ１に等しくは無い）。
ＸＭＣＭ＝１０ｂ：この場合、全てのチャンネルが有効化されており、これはデータフレーム内の全てのワード（ＸＦＲＬＥＮ１）がＤＸＲに書き込まれ、そしてＤＸＲからＸＳＲへのコピーがそれらを受信した時に発生する。しかしながら、ＤＸはＸＰ（Ａ／Ｂ）ＢＬＫおよびＸＣＥＲ経由で選択されたチャンネルのみを駆動し、それ以外の場合は高インピーダンス状態に設定する。この場合、もしもＸＩＮＴＭ＝００ｂ，の場合ＤＸＲからＸＳＲへのコピーの度に発生される割り込みの数は、そのフレーム内のワード数（ＸＦＲＬＥＮ１）に等しいはずである。
ＸＭＣＭ＝１１ｂ：このモードは基本的にＸＭＣＭ＝０１ｂおよび１０ｂの場合の組み合わせであって、対称送信および受信動作が実現できる。全てのチャンネルが無効化されているので、ＤＲおよびＤＸは高インピーダンス状態である。受信の際は、ＲＰ（Ａ／Ｂ）ＢＬＫおよびＲＣＥＲ経由で選択されたチャンネルに対してのみ、ＲＢＲからＤＲＲへのコピーが生じる。もしもＲＩＮＴがＲＢＲからＤＲＲへのコピー毎に生成される場合は、ＲＣＥＲの中で選択されたチャンネル数と同じ回数生じることになる（ＲＦＲＬＥＮ１の中にプログラムされた数とは異なる）。送信に際して、対称性を保つために受信で使用されたのと同じブロックが使用され、従ってＸＰ（Ａ／Ｂ）ＢＬＫは無視される。ＤＸＲがロードされ、ＤＸＲからＸＳＲへのコピーがＲＰ（Ａ／Ｂ）ＢＬＫ経由で有効化された全てのチャンネルに対して生じる。しかしながら、ＤＸはＸＣＥＲ経由で選択されたチャンネルに対してのみ駆動される。ＸＣＥＲ内で有効化されたチャンネルはＲＣＥＲ内で選択されたものの部分集合またはそれと同一とすることが出来る。従って、もしもＸＩＮＴＭ＝００ｂ，の場合ＣＰＵへの送信割込はＲＣＥＲ（ＸＣＥＲでは無い）の中で選択されたチャンネルの数と同じ回数発生されることになる。
【０４４６】
図８９Ａ−Ｄは、上記の全てのモードに対するＭＣＳＰピン上の動作を下記の条件で示している：
ａ）（Ｒ／Ｘ）ＰＨＡＳＥ＝０，有効化された複数チャンネル選択に対する単一位相フレーム
ｂ）ＦＲＬＥＮ１＝０１１ｂ，４ワードフレーム。
ｃ）ＷＤＬＥＮ１＝任意の有効シリアルワード長。
図８９Ａ−８９Ｄに於いて、矢印は種々の事象が生じる場所を単に例として示している。可能な場合はいつでも、これらの事象が発生し得る時間枠が存在する。
【０４４７】
受信チャンネル有効（ＲＣＥＲ）および送信チャンネル有効（ＸＣＥＲ）レジスタはそれぞれ、受信および送信用の任意の３２チャンネルを有効化するために使用される。３２チャンネルの中で、１６チャンネルはパーティションＡの中のブロックに属し、別の１６個はパーティションＢの中のブロックに属する。これらは図９０および図９１に示されており、表６９の中に示されている（Ｒ／Ｘ）ＣＥＡおよび（Ｒ／Ｘ）ＣＥＢレジスタフィールドは、それぞれパーティションＡおよびＢの１６チャンネル幅ブロック内のチャンネルを有効化する。ＭＣＲ内の（Ｒ／Ｘ）ＰＡＢＬＫおよび（Ｒ／Ｘ）ＰＢＢＬＫフィールドは、どの１６チャンネルブロックが選択されるかを選択する。
【０４４８】
【表７１】
0004285803.tif 000074
【０４４９】
チャンネル選択は変更される。複数チャンネル選択機能を使用して、３２チャンネルの固定グループが有効化される、そしてこの割り当ての変更が要求されるまでＣＰＵの介入を受けることなく有効状態を継続する。任意の数のグループ、またはフレーム内の全てのワード／チャンネルにアクセスする事が可能であり、これはブロック割り込みの終了に応答してフレーム処理の途中でブロック割り当てレジスタを更新して行われる。
【０４５０】
しかしながら、選択を変更する際には現在選択されているブロックに影響を与えないように注意しなければならない。現在選択されているブロックはＭＣＲ内のＲＣＢＬＫおよびＸＣＢＬＫフィールドを通して、それぞれ受信および送信用に読みとることが可能である。関連するチャンネル有効レジスタは、現行ブロックを指示するために固有の（Ｒ／Ｘ）Ｐ（Ａ／Ｂ）ＢＬＫレジスタで選択されている場合は変更出来ない。同様にＭＣＲ内の（Ｒ／Ｘ）ＰＡＢＬＫおよび（Ｒ／Ｘ）ＰＢＢＬＫフィールドは、現在選択されているブロックを指し示しているかまたは指し示すように変更されている途中では修正変更出来ない。もしもチャンネルの総数が１６またはそれ未満の場合、現行のパーティションが常に指し示されていることに注意されたい。この場合、シリアルポートのリセットのみが有効化を変更出来る。
【０４５１】
割り込みの更新が提供されている。複数チャンネル動作中に１６チャンネルブロック境界の終点で、ＣＰＵへの受信割り込み（ＲＩＮＴ）または送信割込（ＸＩＮＴ）が、ＳＰＣＲ内のＲＩＮＴＭ＝０１ｂまたはＸＩＮＴＭ＝０１ｂの場合それぞれ生成される。この割り込みは新たなパーティションを横切ったことを示す。次に現在のパーティションがチェックされＡそして／またはＢパーティション内のブロックの選択が、それらが現在のブロックを指し示していない場合は変更される。これらの割り込みは２ＣＰＵクロック長の有効高状態パルスである。もしも（Ｒ／Ｘ）ＭＣＭ＝０の時、ＲＩＮＴＭ＝ＸＩＮＴＭ＝０１ｂであると（非複数チャンネル動作）、これはいかなる割り込みも生成しない。
【０４５２】
次にクロック停止モード、ＣＬＫＳＴＰを説明する。クロック停止モードはＳＰＩTMプロトコルとの互換性を提供する。クロック停止モードは単一位相フレーム構成で機能する。ＳＰＣＲ内のクロック停止モードビットフィールド（ＣＬＫＳＴＰ）は表７０に示す４つの考えられるタイミング変異の１つを使用して、転送の間にシリアルクロックを停止することが出来る。
【０４５３】
ＳＰＩ型のインタフェースを使用するとき、フレーム同期は別のシリアルポートモードの動作とは少し異なるかたちで生じる。これらの型のインタフェースに於いて、フレーム化は本質的にクロックが存在するかまたは存在しないかによって実行され、含まれているその他の信号はスレーブ有効信号であって、これは単純にスレーブ装置（クロックを出力しない装置）上のシリアルデータ出力ドライバを有効化するように作用する。装置の中にはスレーブ有効化を持たないものもある。スレーブ有効化を具備していたりまたは具備していない装置とインタフェースを取るために、これに代わるフレーム化手法が使用される。ＭＣＳＰがＳＰＩモードで動作するように構成されている場合、送信機および受信機は共にマスタとしてまたはスレーブとして動作する。
【０４５４】
ＭＣＳＰがマスタ装置の時、ＦＳＸは出力としてセットされ（ＤＸＲのロードで生成される）、ＦＳＲと必要であればスレーブ装置上の有効入力に接続される。ＭＣＳＰは内部的に連続クロックを生成し、転送が完了した時点で外部インタフェースへのクロックをゲートを介して遮断する。この場合、受信クロックは内部の連続的に実行されている部分から提供されるので、受信機および送信機は両方とも内部的にはクロックが停止しないかの様に動作する。
【０４５５】
ＭＣＳＰがスレーブ装置の時、内部シリアルポート論理回路はデータビット毎の内部クロックパルスと丁度同じ数のみを用いて転送を実行する。もしもマスタ装置がスレーブ有効信号を提供する場合は、それはＦＳＸ／ＦＳＲに接続され、その非同期形式で使用される。ＦＳＸは従って、ＤＸピンへのデータの初期駆動のみを制御する。もしもマスタ装置がスレーブ有効を提供しない場合は、外部ＦＳＲ／ＦＳＸピンは有効動作（ＦＳＸ／ＦＳＲ極性制御ビットで定義されるように）レベルに接続され、データはＤＸＲにロードされると直ちにＤＸピンに駆動される。入力クロックとマスタからのフレーム同期はＣＰＵクロックに同期されて、リセットを可能とする。送信されるべき第一データはＤＸ上で利用可能であるが、これはＳＰＩクロックを検出した後にのみ有効化される。
【０４５６】
クロック停止モードの中で、送信機および受信機の両方に対して、クロックの停止はそのクロックが外部的に生成されるか内部的に生成されるかに応じて、異なる方法で処理される。クロックが外部的に生成される場合、クロックを生成している外部装置は送信されたワードの間で適切にクロックを保持する。シリアルポートクロックが内部的に生成される場合、このクロックは連続して発生されており、転送が完了した時に外部インタフェースに対して単純にゲートで遮断される。この場合、転送は外部自由実行クロックの場合と同じやり方で実行される。
【０４５７】
ＣＬＫＳＴＰは、表７０および図９２に示されるように、特定のＳＰＩインタフェースに対して適切なクロック手法を選択する。ＳＰＣＲ内のＣＬＫＳＴＰビットフィールドは下記の１つを選択する：
１）クロック停止モードが有効であるか否か。
２）クロック停止モード中、停止時にクロックが高状態かまたは低状態か。
３）クロック停止モード中、第一クロック変化が第一データビットの開始時点で生じるかまたは第一データビットの途中で生じるか。
【０４５８】
【表７２】
0004285803.tif 000075
【０４５９】
２つの条件がシリアルポートピン（ＣＬＫＸ，ＦＳＸ，ＤＸ，ＣＬＫＲ，ＦＳＲ，およびＤＲ）をシリアルポートピンとしてではなく汎用目的Ｉ／Ｏとして使用する事を可能とする：
１）シリアルポートの関連部分（送信機または受信機）がリセット中；ＳＰＣＲ内の（Ｒ／Ｘ）ＲＳＴ−＝０、そして
２）シリアルポートの関連部分に対して汎用目的Ｉ／Ｏが有効化されている。
【０４６０】
図５６に示すピン制御レジスタは、ＭＣＳＰピンの各々を汎用目的入力または出力として構成するビットを有する。表７１はどの様にしてこれが実現できるかを示す。ＦＳ（Ｒ／Ｘ）の場合、ＦＳ（Ｒ／Ｘ）Ｍ＝０はピンを入力として構成し、ＦＳ（Ｒ／Ｘ）Ｍ＝１はそのピンを出力として構成する。出力として構成された場合、ＦＳ（Ｒ／Ｘ）上に駆動される値は、ＦＳ（Ｒ／Ｘ）Ｐ内に格納されていた値である。もしも入力として構成された場合は、ＦＳ（Ｒ／Ｘ）Ｐは読み取り専用ビットとなり、これはその信号の状態を反映している。ＣＬＫ（Ｒ／Ｘ）ＭおよびＣＬＫ（Ｒ／Ｘ）ＰはＣＬＫ（Ｒ／Ｘ）と同様に働く。送信機が汎用目的Ｉ／Ｏとして選択されると、ＰＣＲ内のＤＸ＿ＳＴＡＴビットの値がＤＸ上に駆動される。ＤＲは常に入力であり、その値はＰＣＲ内のＤＲ＿ＳＴＡＴビット内に保持される。ＣＬＫＳを汎用目的入力として構成するために、送信機および受信機は共にリセット状態で、かつ（Ｒ／Ｘ）ＩＯＥＮ＝１でなければならないが、これはそれがＭＣＳＰに対して常に入力でありまた送信および受信動作の両方を反映するためである。
【０４６１】
【表７３】
0004285803.tif 000076
【０４６２】
タイマ
概要
この装置は２つの３２ビット汎用目的タイマを有し、これは下記用途で使用される：
時間事象
計数事象
パルス発生
ＣＰＵ割り込み
ＤＭＡへ同期事象送信
【０４６３】
このタイマは２つの信号通知モードを有し、内部または外部発信元からクロックされることが出来る。このタイマはＩ−／Ｏ（ＴＩＭ）を有しこれは入力クロック、出力クロックとして、または汎用目的Ｉ−／Ｏピンとして機能する。
【０４６４】
例えば内部クロックで、タイマは外部Ａ／Ｄ変換器に信号を送って変換を開始させたり、またはＤＭＡ制御装置にトリガを与えてデータ転送を開始させることが出来る。例えば外部クロックで、タイマは外部事象を計数し、指定された事象数の後にＣＰＵに割り込みを掛けることが出来る。図９３はこのタイマのブロック図を示す。
【０４６５】
タイマレジスタ
表７２はタイマ動作を構成する３つのレジスタを説明している。
【０４６６】
【表７４】
0004285803.tif 000077
【０４６７】
タイマ制御レジスタ
図９４はタイマ制御レジスタを示す。表７３はこのレジスタ内のビットフィールドを説明している。
【０４６８】
【表７５】
0004285803.tif 000078
【０４６９】
タイマ周期レジスタ
タイマ周期レジスタ（図９５）は計数するタイマ入力クロックサイクルの数を含む。この数はＴＳＴＡＴの周波数を制御する。
【０４７０】
タイマカウンタレジスタ
タイマカウンタレジスタ（図９６）は計数が有効化されると何時でも更新する。タイマ周期レジスタ内の値に達すると、これは次のＣＰＵクロックのタイマ入力クロックへの各サイクルで０にリセットする。
【０４７１】
タイマリセットおよび計数の有効化：ＧＯおよびＨＬＤ−
表７４はＧＯおよびＨＬＤ−がどの様にしてタイマ動作の基本機能を有効とするかを示す。
【０４７２】
【表７６】
0004285803.tif 000079
【０４７３】
タイマの初期化
タイマを構成するには３つの基本ステップが要求される：
１．もしもタイマが現在ホールドされていない場合は、タイマをホールドする。装置をリセットした後はタイマは既にホールド状態であることに注意。
２．希望する値をタイマ周期レジスタに書き込む。
３．タイマ制御レジスタのＧＯおよびＨＬＤビットを１にセットしてタイマを開始し、同時に希望する値をタイマ制御レジスタに書き込む。
【０４７４】
タイマ計数
タイマカウンタはＣＰＵクロック速度で運転される。しかしながら、計数は１つのＣＰＵクロックからタイマ計数有効化発信元の１つの次のクロックへの低状態から高状態への遷移で有効化される。この遷移は図９３に示される信号変化検出回路で検出される。有効遷移が検出される度に、１つのＣＰＵクロック幅クロック有効化パルスが生成される。使用者に対して、これはカウンタがあたかも計数有効化発信元でクロックされているかのように見える。従ってこの計数有効化発信元をクロック発信元と呼ぶ。
【０４７５】
タイマ周期レジスタに等しい値に達すると、タイマはゼロにリセットされる。このリセットはタイマカウンタとタイマ周期とが一致した後の次のＣＰＵクロック上で発生する。従ってカウンタはゼロからＮまで計数する。周期が２でＣＰＵクロックの四分の一がタイマクロック発信元（ＣＬＫＳＲＣ＝１）として選択された場合を考える。一度開始されるとタイマは以下の順序で計数する：０，０，０，０，１，１，１，１，２，０，０，０，１，１，１，１，２，０，０，０．．．．カウンタは０から２の間で計数するが、周期は１２（＝３＊４）ＣＰＵクロックサイクルでは無くて、８（＝２＊４）ＣＰＵクロックサイクルであることに注意されたい。従って計数周期はTIMER PERIOD+1ではなくTIMER PERIODである。
【０４７６】
タイマクロック発信元選択：ＣＬＫＳＲＣ
タイマ入力クロックの低状態から高状態への遷移がタイマカウンタを更新させる。タイマ入力クロックを駆動するために３つの発信元が利用出来る：
１．ＴＩＭピン上の入力値。この信号は非同期外部入力によって引き起こされる準安定状態を防止するために同期が取られる。
２．ＣＰＵクロックの四分の一
３．ＤＡＴＯＵＴ値。
【０４７７】
表７５はタイマ制御レジスタ内のＣＬＫＳＲＣ，ＦＵＮＣ，およびＩ−／Ｏビットフィールドが選択されてどの一つがタイマ入力クロックを駆動するかを示している。
【０４７８】
【表７７】
0004285803.tif 000080
【０４７９】
ＴＩＭピン機能
表７５はまたＴＩＭピンの使用方法を示す。ＴＩＭピンの値は常にタイマ制御レジスタ内のＤＡＴＩＮビット内に捕捉されている。図９３に示されるように、ＤＡＴＩＮの発信元は常に同期化器を通されており、ＴＩＭが入力ピンの場合の準安定化を回避するようにしている。またＩＮＶはＴＩＭがタイマピン（ＦＵＮＣ＝１）として構成されているときにのみ使用される。
【０４８０】
タイマパルス生成
２つの基本パルス生成モードとはそれぞれ図９７および図９８に示されるように、パルスモードとクロックモードである。タイマグローバル制御レジスタのＣ／Ｐ−ビットでモードを選択する事が出来る。パルスモードでは、タイマ制御レジスタ内のＰＷＩＤでパルス幅を１または２入力クロック周期のいずれかにセット出来る。この機能の目的はＴＳＴＡＴがＴＩＭ出力を駆動する場合に、最小パルス幅を提供する事である。ＴＳＴＡＴはこのピンをＴＩＭがタイマピン（ＦＵＮＣ＝１）として使用されているときに駆動し、ＣＰＵクロックの四分の一がクロック発信元（ＣＬＫＳＲＣ＝０）である。従って、ＴＩＭパルス幅は４または８ＣＰＵクロック幅である。表７６はパルスおよびクロックモードでの種々のＴＳＴＡＴタイミングパラメータの詳細式である。
【０４８１】
【表７８】
0004285803.tif 000081
【０４８２】
制御レジスタ内の境界条件
境界条件にはタイマ動作に影響を与えるものが有る：
１．ゼロタイマ周期レジスタおよびカウンタレジスタ。装置がリセットされた後でタイマが計数を開始する前に、ＴＳＴＡＴは０に保持される。ＧＯ＝１にセットしてタイマを始動した後、周期およびカウンタレジスタがゼロの時、タイマの動作は選択されたＣ／Ｐモードに依存する。パルスモードでは、それが保持されているか否かに関わらずＴＳＴＡＴ＝１である。クロックモードでは、タイマが保持されている時（ＨＬＤ−＝０）、ＴＳＴＡＴはその以前の値を保ち、ＨＬＤ＝１の時、ＴＳＴＡＴは（１／２ＣＰＵクロック周波数）の周波数で留められる。
２．カウンタオーバーフロー。カウンタレジスタが周期レジスタの値より大きな値にセットされると、カウンタはその最大値（FFFFFFFFh ）に達し、０に戻って継続する。
３．有効タイマのレジスタへの書き込み。周辺機器バスオーバーライドレジスタからの書き込みでカウンタレジスタが更新され、新たな状態で制御レジスタが更新される。
４．パルスモードでの小さなタイマ周期値。パルスモードで周期が小さいと、ＴＳＴＡＴを高状態に留めることに注意されたい。この条件はTIMER PERIOD  £ PWID+1 の時に生じる。
【０４８３】
タイマ割り込み
ＴＳＴＡＴ信号は直接ＣＰＵ割り込みと同様にＤＭＡ同期事象を駆動する。割り込みの周波数はＴＳＴＡＴの周波数と同じである。ＴＳＴＡＴ上の低状態から高状態への遷移は、タイマカウンタが周期レジスタと等しくなる時に常に発生する。
【０４８４】
エミュレーション動作
デバッグ中にエミュレータを使用して、ＣＰＵを実行パケット境界上に停止させて、単独ステップ送り、ベンチマーク、プログラムファイリング、またはその他のデバッグ用途に使える。エミュレーション停止中に、ＣＰＵクロック四分の一がクロック源として選択されているとき（ＣＬＫＳＲＣ＝１）タイマは停止する。ここでカウンタはこの様なサイクル中にＣＰＵがエミュレーション停止によって停止されない場合にのみ有効化される。従って、単一ステップ動作中に計数が再有効化される。もしもＣＬＫＳＲＣ＝０の場合、タイマはプログラムに従って計数を継続する。
【０４８５】
Intsel
概要
マイクロプロセッサ１の周辺機器セットは複数チャンネルシリアルポート（ＭＣＳＰ）１２０、タイマ１３１および１３２、ＤＭＡチャンネル１４０および１４１、そしてホストポート１５０を含む。この周辺機器のセットは、外部メモリインタフェース（ＥＭＩＦ）１０３および外部割り込み信号ＩＮＴ（４−７）と共に、１６割り込み発信元を生成する。しかしながらＣＰＵ１０は使用可能な１２の割り込みスロットを有する。本発明の１つの特徴によれば、割り込み選択器回路１６０は好適に１６割り込み発信元の内のどの１２個が使用されるかを選択する。割り込み選択器１６０はまた、ＣＰＵ１０が効果的に外部割り込み入力の極性を変更出来るようにする。
【０４８６】
利用可能な割り込み発信元
表７７は利用可能な割り込みを示す。この表は先に説明したＤＭＡ同期事象と２つの点が異なる事を除いて類似していることに注意されたい。１つの相違はＭＣＳＰが割り込みとＤＭＡ同期事象を別々に生成する点である。第二の相違はＤＳＰＩＮＴが取り除かれて４ビット符号化を可能としている点である。
【０４８７】
【表７９】
0004285803.tif 000082
【０４８８】
外部割り込み信号タイミング
ＩＮＴ４−ＩＮＴ７およびＮＭＩは専用外部割り込み発信元である。加えて、ＭＣＳＰからのフレーム同期受信信号（ＦＳＲ）およびフレーム同期送信信号（ＦＳＸ）をＲＩＮＴおよびＸＩＮＴ信号を直接駆動するようにプログラムすることが可能である。これらの信号は同期が取られているので、これらはＤＭＡまたはＣＰＵのいずれかに送られる前に２つのレジスタを通過される。図９９は１例としてＩＮＴ４を使用した外部割り込み信号のタイミングを示す。この図はまた２つの同期フリップフロップを通る外部割り込み用遅延をも示す。この遅延は２ＣＰＵクロック（ＣＬＫＯＵＴ１）サイクルで有ることに注意されたい。しかしながら、もしもＩＮＴ４入力がＣＬＫＯＵＴ１の立ち上がり変化に対してセットアップおよびホールド時間中に遷移する場合は、この遅延は３ＣＬＫＯＵＴ１サイクルまで延びる。一度同期が取られると、関連する割り込みフラグ（ＩＦ４）がセットされる前に３ＣＬＫＯＵＴ１サイクル遅延が追加される。
【０４８９】
割り込みは有効内部割り込み肯定確認（ＩＡＣＫ）信号で示されるように、最も早い場合で１ＣＬＫＯＵＴ１サイクル後に起きるように予定出来る。割り込みは適切に有効化されない場合は、延期したりまたは禁止する事が出来る。この場合、ＩＡＣＫもまた延期される。ＩＡＣＫに関して、ＣＰＵはＩＮＵＭ信号をセットしてどの割り込みが行われたかを示す。外部的に、ＩＡＣＫピンパルスは２ＣＬＫＯＵＴ２サイクル幅に拡張されＣＬＫＯＵＴ２に同期される。またＩＮＵＭピン信号はこの外部ＩＡＣＫをセットアップおよびホールドの１つのＣＬＫＯＵＴ２サイクルとフレーム化し、４ＣＬＫＯＵＴ２サイクル幅とする。図の中でＩＮＵＭおよびＩＡＣＫはＣＬＫＯＵＴ２の立ち上がりで無効ではあるが、内部回路はこの遷移を捕らえて、希望する波形をＩＡＣＫおよびＩＮＵＭピン上に発生することが出来る。
【０４９０】
割り込み
表７８は割り込み選択器レジスタを示し、これは制御レジスタに含まれている。割り込みマルチプレクサレジスタは表７７の割り込み発信元と４から１５（ＩＮＴ４−ＩＮＴ１５）のＣＰＵ割り込みとの間の写像を決定する。外部割り込み極性レジスタは外部割り込みの極性をセットする。
【０４９１】
【表８０】
0004285803.tif 000083
【０４９２】
外部割り込み極性レジスタ
外部割り込み極性レジスタ（図１００）は４つの外部割り込み（ＥＸＴ＿ＩＮＴ４−ＥＸＴ＿ＩＮＴ７）の極性を変更することを可能とする。通常、割り込み発信元の低状態から高状態への遷移が割り込みとして認識される。このレジスタ内の関連するＸＩＰビットを１にセットすることで、外部割り込み発信元を反転して、効果的にＣＰＵが外部割り込みの高状態から低状態への遷移を検出できるように出来る。もしも関連するＸＩＰが０に消去されると、非反転外部割り込みが通されて、ＣＰＵは低状態から高状態への遷移を割り込みの信号通知として認識する。
【０４９３】
割り込みマルチプレクサレジスタ
割り込みマルチプレクサレジスタ内のＩＮＴＳＥＬフィールド（図１０１および１０２）は、割り込み発信元を個別の割り込みの中へ写像させる。ＩＮＴＳＥＬ４−ＩＮＴＳＥＬ１５は表７９に示すようにＣＰＵ割り込みＩＮＴ４−ＩＮＴ１５に対応する。ＩＮＴＳＥＬフィールドを表７８内の希望する割り込み選択番号の値にセットすることにより、任意の割り込み発信元を任意のＣＰＵ割り込みに写像できる。表７９はまた割り込み発信元からＣＰＵ割り込みへのデフォルト写像を示す。
【０４９４】
【表８１】
0004285803.tif 000084
【０４９５】
割り込み選択器の構成
割り込み選択器レジスタはリセットの後、初期化中に割り込みを有効化する前に構成されなければならない。一度レジスタがセットされると、使用者は少しの遅延の後、割り込みフラグレジスタを消去してこの構成によって引き起こされる全ての疑似的な遷移を取り除かねばならない。割り込み選択器は別の時間中にも構成出来るが、修正変更されたフィールドの影響を受ける割り込みに対して擬似的な割り込み条件がＣＰＵによって検出される可能性がある。
【０４９６】
電源断モードおよびエミュレーション
割り込み選択器は状態機械を含んでいないので、電源断またはエミュレーション停止中に異常な動作は行わない。レジスタ値はいずれ場合も保存される。
【０４９７】
クロック
概要
外部発振器がオンチップＰＬＬ（位相ロックループ）回路を駆動し、これが全ての内部および外部クロックを生成する。このＰＬＬは外部発振器周波数を４倍し、その結果生成されたクロックをＣＬＫＯＵＴ１出力ピンに供給する。ＣＬＫＯＵＴ１の内部版はプロセッサによって命令サイクルクロックとして使用される。この装置のほとんどのタイミングパラメータはＣＬＫＯＵＴ１クロックに関連して定義され、特にその立ち上がり変化が使用される。ＣＬＫＯＵＴ２は別の出力クロックで、ＣＬＫＯＵＴ１からその半分の周波数でＥＭＩＦ内に誘導される。２つのその他のクロック信号がＰＬＬ出力から誘導される−ＳＳＣＬＫとＳＤＣＬＫ（これもまたＥＭＩＦ内）である。これらは外部ＳＢＳＲＡＭおよびＳＤＲＡＭ同期メモリにクロックを送るために使用される。
【０４９８】
４倍モードに加えて、このクロック回路は１倍モードで動作することも可能であり、その場合入力クロック周波数はＣＬＫＯＵＴ１出力周波数と同じである。倍率計数を選択する際に考慮すべき要因には、基板レベルでの雑音およびクロックのジッタが含まれる。４倍モードは基板雑音を最小とし、一方１倍モードは内部クロックジッタを減少させる。クロックモードは以下の図１０３に示されるように２つのＣＬＫＭＰＤＥピンで制御される。
【０４９９】
ＰＬＬが出力周波数に同期するために必要な時間は、ＣＬＫＩＮおよびＣＬＫＯＵＴ１周波数に依存し、典型的には数十マイクロ秒程度である。同期時間はリセット信号の存続時間に影響し、その間リセット状態はＰＬＬが適切な出力周波数に同期出来るように十分長く保たれる必要がある。
【０５００】
３つのＰＬＬＦＲＥＱピンが、ＰＬＬが同期対象とするＣＬＫＯＵＴ１周波数範囲を識別する。ＰＬＬはまた２つのバイパスキャパシタを必要とし（ＰＬＬＶとＰＬＬＧとの間）、外部低域フィルタ構成部品（Ｒ１，Ｃ１，Ｃ２）とＥＭＩフィルタである。Ｒ１，Ｃ１，Ｃ２の値、およびフィルタはＣＬＫＩＮとＣＬＫＯＵＴ１周波数に依存する。
【０５０１】
Ｐｄｏｗｎ
概要
ＣＭＯＳ論理回路の動作電力のほとんどは、回路が１つの論理状態から別の論理状態にスイッチングする際に消費される。チップの論理回路の一部または全てがスイッチングすることを防止することにより、データまたは動作状況を喪失することなくかなりの電力節約が実現できる。
【０５０２】
電源断モードＰｄ１はＣＰＵの境界で内部クロック入力を遮断し、その論理回路のほとんどがスイッチングすることを防止する。Ｐｄ１は効果的にＣＰＵを運転停止する。別の電力節約は電源断モードＰｄ２で実現され、ここで全てのオンチップ構造（複数のバッファを含む）がＰＬＬの出力（図１０４参照）で”停止”される。
【０５０３】
ＰＤ３は全内部クロック系統を運転停止し（ＰＤ２同様）、また外部クロック発信元（ＣＬＫＩＮ）がＰＬＬに達するのを遮断する。Ｐｄ３からの復帰はＰｄ２からの復帰よりも時間がかかるが、それはＰＬＬが電源投入後と丁度同じように再ロックされる必要が有るためである。
【０５０４】
Ｐｄ２およびＰｄ３は１倍および４倍の両方のＰＬＬクロックモードで全チップを運転停止させる。Ｐｄ２およびＰｄ３信号は両方ともＰＤ＿ピンに通知してこれら２つの電源断モードが外部から認識できるようにしている。この章に書かれている電源断モードに加えて、ＩＤＬＥ命令は複数のＮＯＰを実行することでより低いＣＰＵ電力消費を提供する。ＩＤＬＥ命令は割り込みにサービスする場合にのみ終了される。
【０５０５】
電源断モードおよびそれらの復帰方法は制御状態レジスタ内のビット１０−１４（ＣＳＲ  ＰＷＲＤフィールド）を設定してプログラムされる（図１０５参照）。Ｐｄ２およびＰｄ３モードは装置リセットでのみ廃棄される、一方Ｐｄ１モードはまた有効化された割り込み、またはＣＳＲのビット１３および１４で指示された任意の割り込み（有効化されていようがいまいが）によって終了出来る（割り込みは信号変化で駆動される）。ＣＳＲに書き込みを行うとき、ＰＷＲＤフィールドの全てのビットは同じ時間にセットされなければならない。予約されたフィールド（ＣＳＲのビット１５）に書き込む際には、論理０が使用されなければならない。表８０参照。
【０５０６】
【表８２】
0004285803.tif 000085
【０５０７】
トリガ、復帰および効果
表８１に示されるように、電源断モードＰｄ１は電源断を引き起こす命令（ＣＳＲ内のアイドリングビットをセットすることにより）の３−４命令後に実行される。下記の命令フロー参照：
ＩＮＳＴＲ１（ＭＶＫ）  電源断モードはこの命令でセットされる
ＩＮＳＴＲ２            ＣＰＵが電源断を開始するように電源断論理回路に通知する。
ＩＮＳＴＲ３            電源断信号がＣＰＵそして／または周辺機器に送られる
ＩＮＳＴＲ４            ＣＰＵが内部電源断信号を受信する
ＩＮＳＴＲ５            ＣＰＵがＩＮＳＴＲ５またはＩＮＳＴＲ６の前に実行を一次中止する
ＩＮＳＴＲ６            ＣＰＵがＩＮＳＴＲ５またはＩＮＳＴＲ６で実行を再開する
ＩＮＳＴＲ７            正常プログラム実行がここで再開される
【０５０８】
Ｐｄ１からの復帰は有効化された割り込み、または任意の割り込み（有効であるか否かに関わらず）でトリガが掛けられる。第一番目の場合は論理１を制御状態レジスタのビット１３（ＰＷＲＤフィールド）に書き込むことで選択され、また第二番目の場合は論理１をＣＳＲのビット１４に書き込むことで選択される。もしもＰｄ１が非有効化割り込みで終了された場合は、プログラムの実行は電源断を引き起こした命令（ＣＳＲ内のアイドリングビットをセットすることにより）に続く４番目または５番目に戻る。有効化された割り込みでの復帰は、プログラムの実行は電源断を引き起こした命令（ＣＳＲレジスタＧＩＥおよびＩＥＲレジスタＮＭＩＥビットもまたＩＳＦＰを実行するためにセットされなければならない）に続く４番目または５番目に戻る前に、対応する割り込みサービスフェッチパケットを最初に実行する。
【０５０９】
【表８３】
0004285803.tif 000086
【０５１０】
データ処理装置１を製造するに当たっては、種々の量の不純物質を半導体基板の中に注入し、その不純物を基板内の選択された深さに拡散させてトランジスタ素子を形成する複数のステップを含む。不純物の配置を制御するためにマスクが形成される。導電物質および絶縁物質の複数の層が蒸着されて種々の素子を相互接続させるためにエッチングされる。これらのステップはクリーンルームの環境で実施される。
【０５１１】
データ処理装置の製造コストの大きな部分に試験が含まれる。ウェーハー形状の段階で、個別の素子は運転状態にバイアスされて基本動作機能の探針試験が行われる。次にウェーハーが個別のダイスに分割され、これは裸のダイまたはパッケージとして販売される。パッケージに入れられた後、処理された部品は運転状態にバイアスされて動作機能の試験が行われる。
【０５１２】
本発明の新奇な特徴を示す別の実施例はその他の機能回路を含み、これは此処に説明した機能回路と込み合わされて、組み合わされた機能の全ゲート数を削減している。当業者にはゲート最小化技術は知られているので、その様な実施例の詳細は此処では説明しない。
【０５１３】
本発明の新奇な特徴は、事前設計コアを用いて集積回路を設計する際に別の型式の単一セットにも効果的に適用出来る。例えば、複数の状態信号を選択して限られた数の状態入力に供給する事ができる。
【０５１４】
此処に使用されているように、用語”供給される”、”接続される”および”接続”は電気的な接続を意味し、追加構成要素が電気的接続経路の中に入れられる場合を含む。
【０５１５】
本発明を図示された実施例を参照して説明してきたが、この説明は制限的に解釈されることを意図してはいない。本発明のその他の種々の実施例がこの説明を参照する事により当業者には明らかであろう。従って添付の特許請求の範囲は、実施例のこの様な修正変更はいずれも本発明の真の範囲および精神をカバーすることを意図している。
【０５１６】
本発明の新奇な特徴は、事前設計コアを用いて集積回路を設計する際に別の型式の単一セットにも効果的に適用出来る。例えば、複数の状態信号を選択して限られた数の状態入力に供給する事ができる。
【０５１７】
【表８４】
0004285803.tif 000087
【０５１８】
【表８５】
0004285803.tif 000088
【図面の簡単な説明】
【図１Ａ】図１Ａは本発明の１つの実施例を含むマイクロプロセッサのブロック図。
【図１Ｂ】図１Ａのマイクロプロセッサの更に詳細なブロック図。
【図１Ｃ】図１Ａのマイクロプロセッサの更に詳細なブロック図。
【図２】図２は図１Ａのマイクロプロセッサの実行ユニットとレジスタファイルのブロック図。
【図３Ａ】図１Ａのマイクロプロセッサで使用されるメモリマップの１つを図示する。
【図３Ｂ】図１Ａのマイクロプロセッサで使用されるメモリマップの１つを図示する。
【図４】図４は図１Ａのマイクロプロセッサの簡略化されたブロック図。
【図５】図５はキャッシュがＣＰＵからのフェッチパケットアドレスを使用する方法を示す。
【図６】図６はデータの流れの方向と、同様にＤＭＡとその他のマイクロプロセッサモジュールとの間のマスタ（要求側）とスレーブ（資源）の関係を示す。
【図７】図７はＤＭＡグローバルデータレジスタを図示する。
【図８】図８はＤＭＡチャンネル一次制御レジスタを図示する。
【図９】図９はＤＭＡチャンネル二次制御レジスタを図示する。
【図１０】図１０はＤＭＡチャンネル転送計数器を図示する。
【図１１】図１１はＤＭＡグローバルデータレジスタを示す。
【図１２】図１２はＤＭＡチャンネル発信元アドレスレジスタを図示する。
【図１３】図１３は宛先アドレスレジスタを図示する。
【図１４】図１４はＤＭＡグローバルデータレジスタを図示する。
【図１５】図１５はスプリットアドレス用に使用されるＤＭＡグローバルデータレジスタを図示する。
【図１６】図１６はチャンネル間の優先順位を指定するＤＭＡグローバル制御レジスタを図示する。
【図１７】図１７はＤＭＡ＿ＩＮＴｘ信号を形成する全ての可能化された条件のロジックを図示する。
【図１８】図１８はデータバスおよび内部保持レジスタを含むＤＭＡ制御装置の内部データ移動経路を示す。
【図１９】図１９はＨＰＩへのホストインタフェースの簡略化されたブロック図を示す。
【図１９Ａ】図１９ＡはＨＰＩＣレジスタ図を図示する。
【図２０】図２０はＨＣＳ−，ＨＤＳ１−，およびＨ０５２−入力の等価回路を示す。
【図２１】図２１はＨＡＳ−が使用されていない場合のＨＰＩアクセスタイミングを示す。
【図２２】図２２はＨＡＳ−が使用されている場合のＨＰＩアクセスタイミングを示す。
【図２３】図２３はいくつかのＩ／Ｏ信号と信号経路とを具備したＥＭＩＦの簡略化されたブロック図を示す。
【図２４】図２４はＥＭＩＦグローバル制御レジスタを示す。
【図２５】図２５はＥＭＩＦで支持された（４）ＣＥ空間制御レジスタを示す。
【図２６】図２６はＥＭＩＦ  ＳＤＲＡＭ制御レジスタを図示する。
【図２７】図２７はＳＤＲＡＭリフレッシュ周期レジスタを示す。
【図２８】図２８は１６ＭビットＳＤＲＡＭインタフェースを示す。
【図２９】図２９は６４ＭビットＳＤＲＡＭインタフェースを示す。
【図３０】図３０はＳＤＲＡＭリフレッシュタイミングを示す。
【図３１】図３１はＳＤＲＡＭモードレジスタの組を表す。
【図３２】図３２はＤＲＡＭ不活性化を表す。
【図３３】図３３はＣＡＳ呼び出し３、バースト長１、読み取りを具備したＳＤＲＡＭを表す。
【図３４】図３４はバースト長１，書き込みＳＤＲＡＭを表す。
【図３５】図３５は工業標準同期バーストＳＲＡＭ（ＳＢＳＲＡＭ）に対するＥＭＩＦインタフェースを示す。
【図３６】図３６はＳＢＳＲＡＭの１６ワード読み取りを示す。
【図３７】図３７はＳＢＳＲＡＭの６ワード書き込みを示す。
【図３８】図３８は標準ＳＲＡＭに対するＥＭＩＦインタフェースを示す。
【図３９】図３９はＦＩＦＯに対するＥＭＩＦインタフェースを示す。
【図４０】図４０は８ビットＲＯＭに対するＥＭＩＦインタフェースを示す。
【図４１】図４１は１６ビットＲＯＭに対するＥＭＩＦインタフェースを示す。
【図４２】図４２は３２ビットＲＯＭに対するＥＭＩＦインタフェースを示す。
【図４３】図４３は３つの非同期タイミングを図示する。
【図４４】図４４は多チャンネルシリアルポート（ＭＣＳＰ）のブロック図である。
【図４５】図４５はシリアルポート制御レジスタ（ＳＰＣＲ）を示す。
【図４６】図４６はＰｉｎ制御レジスタを示す。
【図４７】図４７は受信制御レジスタを示す。
【図４８】図４８は送信制御レジスタを示す。
【図４９】図４９はＭＣＳＰクロックとフレーム同期信号の典型的な動作を示す。
【図５０】図５０はデータが外部シリアル装置によってクロックを取られる様子を示しており、これはクロックの立ち上がりを用いて行われ、これはＭＣＳＰ受信機により同一クロックの立ち下がりと共にサンプリングされる。
【図５１】図５１はフレームの１例を示し、ここで第一位相は各々１２ビットの２ワードから構成され、そして各々８ビットの３ワードの第二位相が続く。
【図５２】図５２は４つの８ビットワードが単一位相フレームの中で送信される状態を示す。
【図５３】図５３は１つの３２ビットワードで構成される単一位相フレームのデータストリームを図示する。
【図５４】図５４はプログラム可能データ遅延の範囲がゼロから２ビットクロック（（Ｒ／Ｘ）ＤＡＴＤＬＹ＝００ｂ−１０ｂ））であることを示す。
【図５５】図５５はシリアルポートがデータストリームからフレームビットを本質的に除去する様を示す。
【図５６】図５６はＡｕｄｉｏ  Ｃｏｄｅｃ’９７（ＡＣ９７）標準の１例を示す。
【図５７】図５７は１ビットデータ遅延を示す。
【図５８】図５８は１つの８ビットワードで構成される単一位相データフレームの例を示す。
【図５９】図５９はシリアル受信の例を示す。
【図６０】図６０はシリアル送信の例を示す。
【図６１】図６１は最大パケット周波数に於けるＭＣＳＰ動作を示す。
【図６２】図６２は８ビットデータを具備した最大パケット周波数に於けるＭＣＳＰ動作を示す。
【図６３】図６３はこのストリームを３２ビットワードの連続ストリームとして取り扱う様に構成されたＭＣＳＰを示す。
【図６４】図６４はワードＢが（Ｒ／Ｘ）ＦＩＧ＝０の時に予期せぬフレーム同期パルスで割り込まれた例を示す。
【図６５】図６５はフレーム同期が無視された際のＭＣＳＰ動作を示す。
【図６６】図６６は受信オーバーラン状態を示す。
【図６７】図６７はＲＦＵＬＬがセットされた場合を示す。
【図６８】図６８は受信機が全ての入力フレーム同期パルスを取り扱う際に使用する判定機を示す。
【図６９】図６９は内部パケットの合間でのシリアルポートの通常動作を示す。
【図７０】図７０はＤＸＲ内のデータが送信される前に過剰書き込みされた際に何が生じるかを表す。
【図７１】図７１はアンダーフロー状態での送信を表す。
【図７２】図７２はそのままでは発生するはずのアンダーフロー状態送信の直前にＤＸＲへ書き込まれる場合を示す。
【図７３】図７３は送信機が全ての入力フレーム同期信号を取り扱うために使用する判定機を示す。
【図７４】図７４は内部パケットの合間で行われるシリアルポートの通常動作の事例を示す。
【図７５】図７５はＤＸＲからＸＳＲまたＲＢＲからＤＲＲへのデータコピー処理の間に生じる圧縮を示す。
【図７６】図７６は圧縮されるべきデータ送信を示し、左揃え１６ビットデータがコンパンディング法則に応じて１３または１４ビットの値となる。
【図７７】図７７はＭＣＳＰが内部データをコンパンド出来る２つの方法を示す。
【図７８】図７８はクロックおよびフレーム発生用回路を表す。
【図７９】図７９はサンプル速度発生用回路を表す。
【図８０】図８０はサンプル速度発生レジスタ（ＳＲＧＲ）を示す。
【図８１】図８１はＣＬＫＳの種々の極性での動作を示す。
【図８２】図８２はＦＳＲの種々の極性での動作を示す。
【図８３】図８３は１６ＣＬＫＧ周期のフレームを示す。
【図８４】図８４はＭｉｔｅｌ  ＳＴバスと互換のＭＣＳＰ構造を示す。
【図８５】図８５は単一速度ＳＴ−ＢＵＳを図示する。
【図８６】図８６は二重速度クロック例を図示する。
【図８７】図８７は多重チャンネル制御レジスタ（ＭＣＲ）を図示する。
【図８８】図８８はフレーム内の１６チャンネル境界上で、パーティションＡおよびＢ内にブロックが割り当てられる様子を図示する。
【図８９Ａ】図８９Ａは異なるモードに対するＭＣＳＰ上の活動を示す。
【図８９Ｂ】図８９Ｂは異なるモードに対するＭＣＳＰ上の活動を示す。
【図８９Ｃ】図８９Ｃは異なるモードに対するＭＣＳＰ上の活動を示す。
【図８９Ｄ】図８９Ｄは異なるモードに対するＭＣＳＰ上の活動を示す。
【図９０】図９０は受信チャンネル可能化レジスタ（ＲＣＥＲ）を図示する。
【図９１】図９１は送信チャンネル可能化レジスタ（ＸＣＲＥ）を図示する。
【図９２】図９２はＣＬＫＳＴＰが個別のＳＰＩインタフェースに対して適切なクロック方法を選択する様子を示す。
【図９３】図９３はタイマのブロック図を示す。
【図９４】図９４はタイマ制御レジスタを示す。
【図９５】図９５はタイマ周期レジスタを図示する。
【図９６】図９６はタイマ計数器レジスタ更新を示す。
【図９７】図９７はパルスモードでのタイマ動作を示す。
【図９８】図９８はクロックモードでのタイマ動作を示す。
【図９９】図９９は外部割り込み信号のタイミングを示す。
【図１００】図１００は外部割り込み極性レジスタを示す。
【図１０１】図１０１は割り込みマルチプレクサ低レジスタ内のＩＮＴＳＥＬフィールドを示す。
【図１０２】図１０２はまた割り込みマルチプレクサ高レジスタ内のＩＮＴＳＥＬフィールドを示す。
【図１０３】図１０３はクロックＰＬＬブロック図である。
【図１０４】図１０４はパワーダウンロジックの簡略化されたブロック図を示す。
【図１０５】図１０５は制御状態レジスタのフィールド（ＣＳＲ  ＰＷＲＤフィールド）内のパワーダウンビット（１０−１４）の設定を示す。
【符号の説明】
１  マイクロプロセッサ
１０  ＣＰＵ
２０  レジスタ
２２  データメモリ
２３  プログラムメモリ
３２，３４，３６，３８  バス
４２  集積回路
６０  周辺機器
６１  その他の周辺機器
７０  随意アクセスメモリ
７１  読み取り専用メモリ
７２  ディスク
７３  外部バス
８０  ホストポートバス
８２  タイマ（周辺機器の１例）
１０２  制御レジスタファイル
【図１Ａ】
0004285803.tif 000089
【図１Ｂ】
0004285803.tif 000090
【図１Ｃ】
0004285803.tif 000091
【図２】
0004285803.tif 000092
【図３Ａ】
0004285803.tif 000093
【図３Ｂ】
0004285803.tif 000094
【図４】
0004285803.tif 000095
【図５】
0004285803.tif 000096
【図６】
0004285803.tif 000097
【図７】
0004285803.tif 000098
【図８】
0004285803.tif 000099
【図９】
0004285803.tif 000100
【図１０】
0004285803.tif 000101
【図１１】
0004285803.tif 000102
【図１２】
0004285803.tif 000103
【図１３】
0004285803.tif 000104
【図１４】
0004285803.tif 000105
【図１５】
0004285803.tif 000106
【図１６】
0004285803.tif 000107
【図１７】
0004285803.tif 000108
【図１８】
0004285803.tif 000109
【図１９】
0004285803.tif 000110
【図１９Ａ】
0004285803.tif 000111
【図２０】
0004285803.tif 000112
【図２１】
0004285803.tif 000113
【図２２】
0004285803.tif 000114
【図２３】
0004285803.tif 000115
【図２４】
0004285803.tif 000116
【図２５】
0004285803.tif 000117
【図２６】
0004285803.tif 000118
【図２７】
0004285803.tif 000119
【図２８】
0004285803.tif 000120
【図２９】
0004285803.tif 000121
【図３０】
0004285803.tif 000122
【図３１】
0004285803.tif 000123
【図３２】
0004285803.tif 000124
【図３３】
0004285803.tif 000125
【図３４】
0004285803.tif 000126
【図３５】
0004285803.tif 000127
【図３６】
0004285803.tif 000128
【図３７】
0004285803.tif 000129
【図３８】
0004285803.tif 000130
【図３９】
0004285803.tif 000131
【図４０】
0004285803.tif 000132
【図４１】
0004285803.tif 000133
【図４２】
0004285803.tif 000134
【図４３】
0004285803.tif 000135
【図４４】
0004285803.tif 000136
【図４５】
0004285803.tif 000137
【図４６】
0004285803.tif 000138
【図４７】
0004285803.tif 000139
【図４８】
0004285803.tif 000140
【図４９】
0004285803.tif 000141
【図５０】
0004285803.tif 000142
【図５１】
0004285803.tif 000143
【図５２】
0004285803.tif 000144
【図５３】
0004285803.tif 000145
【図５４】
0004285803.tif 000146
【図５５】
0004285803.tif 000147
【図５６】
0004285803.tif 000148
【図５７】
0004285803.tif 000149
【図５８】
0004285803.tif 000150
【図５９】
0004285803.tif 000151
【図６０】
0004285803.tif 000152
【図６１】
0004285803.tif 000153
【図６２】
0004285803.tif 000154
【図６３】
0004285803.tif 000155
【図６４】
0004285803.tif 000156
【図６５】
0004285803.tif 000157
【図６６】
0004285803.tif 000158
【図６７】
0004285803.tif 000159
【図６８】
0004285803.tif 000160
【図６９】
0004285803.tif 000161
【図７０】
0004285803.tif 000162
【図７１】
0004285803.tif 000163
【図７２】
0004285803.tif 000164
【図７３】
0004285803.tif 000165
【図７４】
0004285803.tif 000166
【図７５】
0004285803.tif 000167
【図７６】
0004285803.tif 000168
【図７７】
0004285803.tif 000169
【図７８】
0004285803.tif 000170
【図７９】
0004285803.tif 000171
【図８０】
0004285803.tif 000172
【図８１】
0004285803.tif 000173
【図８２】
0004285803.tif 000174
【図８３】
0004285803.tif 000175
【図８４】
0004285803.tif 000176
【図８５】
0004285803.tif 000177
【図８６】
0004285803.tif 000178
【図８７】
0004285803.tif 000179
【図８８】
0004285803.tif 000180
【図８９Ａ】
0004285803.tif 000181
【図８９Ｂ】
0004285803.tif 000182
【図８９Ｃ】
0004285803.tif 000183
【図８９Ｄ】
0004285803.tif 000184
【図９０】
0004285803.tif 000185
【図９１】
0004285803.tif 000186
【図９２】
0004285803.tif 000187
【図９３】
0004285803.tif 000188
【図９４】
0004285803.tif 000189
【図９５】
0004285803.tif 000190
【図９６】
0004285803.tif 000191
【図９７】
0004285803.tif 000192
【図９８】
0004285803.tif 000193
【図９９】
0004285803.tif 000194
【図１００】
0004285803.tif 000195
【図１０１】
0004285803.tif 000196
【図１０２】
0004285803.tif 000197
【図１０３】
0004285803.tif 000198
【図１０４】
0004285803.tif 000199
【図１０５】
0004285803.tif 000200