JPH04230557A - 直接メモリアクセス・コントローラ - Google Patents
直接メモリアクセス・コントローラInfo
- Publication number
- JPH04230557A JPH04230557A JP3219406A JP21940691A JPH04230557A JP H04230557 A JPH04230557 A JP H04230557A JP 3219406 A JP3219406 A JP 3219406A JP 21940691 A JP21940691 A JP 21940691A JP H04230557 A JPH04230557 A JP H04230557A
- Authority
- JP
- Japan
- Prior art keywords
- dmac
- data
- channel
- dmadb
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 43
- 238000012546 transfer Methods 0.000 claims description 191
- 239000000872 buffer Substances 0.000 claims description 69
- 230000004044 response Effects 0.000 claims description 22
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 101100170601 Drosophila melanogaster Tet gene Proteins 0.000 claims description 8
- VHILMKFSCRWWIJ-UHFFFAOYSA-N dimethyl acetylenedicarboxylate Chemical compound COC(=O)C#CC(=O)OC VHILMKFSCRWWIJ-UHFFFAOYSA-N 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 6
- SXHBILQYQWZSIW-UHFFFAOYSA-L disodium;4-[3,5-dimethyl-n-(4-sulfonatobutyl)anilino]butane-1-sulfonate Chemical compound [Na+].[Na+].CC1=CC(C)=CC(N(CCCCS([O-])(=O)=O)CCCCS([O-])(=O)=O)=C1 SXHBILQYQWZSIW-UHFFFAOYSA-L 0.000 claims description 6
- 230000002123 temporal effect Effects 0.000 claims description 2
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 claims 39
- 230000003750 conditioning effect Effects 0.000 claims 6
- 108091006146 Channels Proteins 0.000 description 314
- 230000006870 function Effects 0.000 description 47
- 238000000034 method Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000002360 preparation method Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 102100035589 Distal membrane-arm assembly complex protein 2 Human genes 0.000 description 8
- 101000930307 Homo sapiens Distal membrane-arm assembly complex protein 2 Proteins 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 7
- 230000014759 maintenance of location Effects 0.000 description 5
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 4
- 101150046378 RAM1 gene Proteins 0.000 description 4
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 4
- 101100087347 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFM1 gene Proteins 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 101000716068 Homo sapiens C-C chemokine receptor type 6 Proteins 0.000 description 2
- 101000795624 Homo sapiens Pre-rRNA-processing protein TSR1 homolog Proteins 0.000 description 2
- 101100100119 Homo sapiens TNFRSF10C gene Proteins 0.000 description 2
- 102100031564 Pre-rRNA-processing protein TSR1 homolog Human genes 0.000 description 2
- 101100121770 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GID8 gene Proteins 0.000 description 2
- 101100009020 Schizosaccharomyces pombe (strain 972 / ATCC 24843) dcr1 gene Proteins 0.000 description 2
- 102100040115 Tumor necrosis factor receptor superfamily member 10C Human genes 0.000 description 2
- 102100040110 Tumor necrosis factor receptor superfamily member 10D Human genes 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 1
- 101100288236 Arabidopsis thaliana KRP4 gene Proteins 0.000 description 1
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 101100433979 Bos taurus TNK2 gene Proteins 0.000 description 1
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 1
- 101000597785 Homo sapiens Tumor necrosis factor receptor superfamily member 6B Proteins 0.000 description 1
- 102100035284 Tumor necrosis factor receptor superfamily member 6B Human genes 0.000 description 1
- 101100385394 Zea mays ACK2 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- NPIJXCQZLFKBMV-YTGGZNJNSA-L pancuronium bromide Chemical compound [Br-].[Br-].C[N+]1([C@@H]2[C@@H](OC(C)=O)C[C@@H]3CC[C@H]4[C@@H]5C[C@@H]([C@@H]([C@]5(CC[C@@H]4[C@@]3(C)C2)C)OC(=O)C)[N+]2(C)CCCCC2)CCCCC1 NPIJXCQZLFKBMV-YTGGZNJNSA-L 0.000 description 1
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 1
- 238000001046 rapid expansion of supercritical solution Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、データ処理システムの
ための直接メモリアクセス(DMA)コントローラに関
する。
ための直接メモリアクセス(DMA)コントローラに関
する。
【0002】米国特許出願第07/495232号及び
第07/495810号明細書には、複数の通信ポート
と外部(ホスト)処理システムに結合されたバス間で稼
働する統合データリンク通信コントローラ(IDLC)
装置が開示されている。単一のVLSI(大規模集積)
回路チップ上にパッケージ可能で、統合サービスディジ
タル・ネットワーク(ISDN)適用業務に特に有用で
あるIDLC装置は、バスを介してホストシステム・メ
モリへのアクセスを制御するために1対の論理装置を含
んでいる。これらの論理装置は、システムバスへのアク
セスを得るためのバスマスタとしてのMIO(マスタ入
出力)装置と、MIO装置の動作を指令し、MIO装置
を介してシステムメモリへのDMAアクセスを監視する
ためのDMAC(直接メモリアクセス・コントローラ)
装置を含んでいる。本発明は、これらの以前の特許出願
に開示されたDMAC装置及びMIO装置によって形成
される装置サブセクションの改良を対象とするものであ
る。
第07/495810号明細書には、複数の通信ポート
と外部(ホスト)処理システムに結合されたバス間で稼
働する統合データリンク通信コントローラ(IDLC)
装置が開示されている。単一のVLSI(大規模集積)
回路チップ上にパッケージ可能で、統合サービスディジ
タル・ネットワーク(ISDN)適用業務に特に有用で
あるIDLC装置は、バスを介してホストシステム・メ
モリへのアクセスを制御するために1対の論理装置を含
んでいる。これらの論理装置は、システムバスへのアク
セスを得るためのバスマスタとしてのMIO(マスタ入
出力)装置と、MIO装置の動作を指令し、MIO装置
を介してシステムメモリへのDMAアクセスを監視する
ためのDMAC(直接メモリアクセス・コントローラ)
装置を含んでいる。本発明は、これらの以前の特許出願
に開示されたDMAC装置及びMIO装置によって形成
される装置サブセクションの改良を対象とするものであ
る。
【0003】
【従来の技術】IDLC装置は、通信ポート及び上記シ
ステムバスにそれぞれインタフェースする同期部及び非
同期部を備えている。上述のDMAC装置及びMIO装
置は非同期部にある。IDLC装置は、1次速度ISD
N適用業務用として、多数の通信チャネル(たとえば3
2本の全2重チャネル、それぞれ各通信方向に64kb
ps、すなわち毎秒64,000ビットの速度で動作)
にサービスを提供するように設計されている。
ステムバスにそれぞれインタフェースする同期部及び非
同期部を備えている。上述のDMAC装置及びMIO装
置は非同期部にある。IDLC装置は、1次速度ISD
N適用業務用として、多数の通信チャネル(たとえば3
2本の全2重チャネル、それぞれ各通信方向に64kb
ps、すなわち毎秒64,000ビットの速度で動作)
にサービスを提供するように設計されている。
【0004】本発明が生まれるもとになった問題は、I
DLCの機能的サブセット及び論理的サブセットとして
IDLCに関連するVLSI装置の設計中に検出された
。統合ISDNモジュール(またはIIM)と称される
この装置は、6本程度の全2重基本速度チャネル(各通
信方向で64kbps)でサービスする能力を有する基
本速度ISDN適用業務用のために主に設計された。 その意図は、IIMが通信カードの1構成要素として使
用され、IBMマイクロチャネル・アーキテクチャ(I
BM及びマイクロ・チャネルはインターナショナル・ビ
ジネス・マシーンズ・コーポレーションの商標)に従っ
て動作するバスを含めて、いくつかの異なる外部システ
ムバスに関するマスタバス制御及びDMA制御を提供す
ることにある。
DLCの機能的サブセット及び論理的サブセットとして
IDLCに関連するVLSI装置の設計中に検出された
。統合ISDNモジュール(またはIIM)と称される
この装置は、6本程度の全2重基本速度チャネル(各通
信方向で64kbps)でサービスする能力を有する基
本速度ISDN適用業務用のために主に設計された。 その意図は、IIMが通信カードの1構成要素として使
用され、IBMマイクロチャネル・アーキテクチャ(I
BM及びマイクロ・チャネルはインターナショナル・ビ
ジネス・マシーンズ・コーポレーションの商標)に従っ
て動作するバスを含めて、いくつかの異なる外部システ
ムバスに関するマスタバス制御及びDMA制御を提供す
ることにある。
【0005】この問題は、IDLC内のDMAC装置及
びMIO装置に直接対応する(ただし、32本ではなく
6本の全2重通信チャネルにサービスするように構成さ
れた)DMAC装置及びMIO装置の使用に基づくII
M用のプロトタイプ設計を考察する際に検出された。調
査したところ、この構成は、装置内のマイクロチャネル
バスの負荷及びチャネルの活動度に関する最悪ケースの
仮定の下でも何とか動作できることが明らかになった。 最悪ケースのバス負荷状況の下(最大装置数がバスに接
続され、すべての装置が最大速度でバスを調停している
と仮定)では、IIMは約200マイクロ秒(アクセス
調停開始時から)の間隔でしかバスへのアクセス権を得
られず、アクセス権を得る毎に7.8マイクロ秒間しか
バスへのアクセス権を保持できないことになる。
びMIO装置に直接対応する(ただし、32本ではなく
6本の全2重通信チャネルにサービスするように構成さ
れた)DMAC装置及びMIO装置の使用に基づくII
M用のプロトタイプ設計を考察する際に検出された。調
査したところ、この構成は、装置内のマイクロチャネル
バスの負荷及びチャネルの活動度に関する最悪ケースの
仮定の下でも何とか動作できることが明らかになった。 最悪ケースのバス負荷状況の下(最大装置数がバスに接
続され、すべての装置が最大速度でバスを調停している
と仮定)では、IIMは約200マイクロ秒(アクセス
調停開始時から)の間隔でしかバスへのアクセス権を得
られず、アクセス権を得る毎に7.8マイクロ秒間しか
バスへのアクセス権を保持できないことになる。
【0006】最悪ケースのチャネル活動度という仮定は
、IIM装置内の12本のチャネル(6本の受信チャネ
ルと6本の送信チャネル)が全部同時に、DMACから
のデータワード(32ビット)転送を要求することを想
定している。この状態が起こるのは、すべての受信チャ
ネルに割り振られた装置ローカルメモリ(FIFORA
M)内のデータワード記憶空間が同時に一杯になり、か
つすべての送信チャネルに割り振られたデータワード記
憶空間が同時に空になったときである。これらの状態の
下で、装置同期部(チャネル当たりさらに最大4バイト
のデータを有効にバッファに記憶する)内のパイプライ
ン化のためその他の潜在的ファクタを考慮すると、DM
AC及びMIOは、FIFO RAMに関する12個
のデータワードを転送するために、1本又は複数の受信
チャネル内でオーバーランエラーが、または1本または
複数の送信チャネル内でアンダーラン・エラーが発生す
る前に、500マイクロ秒の追加時間を有する。
、IIM装置内の12本のチャネル(6本の受信チャネ
ルと6本の送信チャネル)が全部同時に、DMACから
のデータワード(32ビット)転送を要求することを想
定している。この状態が起こるのは、すべての受信チャ
ネルに割り振られた装置ローカルメモリ(FIFORA
M)内のデータワード記憶空間が同時に一杯になり、か
つすべての送信チャネルに割り振られたデータワード記
憶空間が同時に空になったときである。これらの状態の
下で、装置同期部(チャネル当たりさらに最大4バイト
のデータを有効にバッファに記憶する)内のパイプライ
ン化のためその他の潜在的ファクタを考慮すると、DM
AC及びMIOは、FIFO RAMに関する12個
のデータワードを転送するために、1本又は複数の受信
チャネル内でオーバーランエラーが、または1本または
複数の送信チャネル内でアンダーラン・エラーが発生す
る前に、500マイクロ秒の追加時間を有する。
【0007】この500マイクロ秒という制限を理解す
るには、12本のチャネルがすべて64kbps(毎秒
64000ビット)という企図された最大速度で動作し
ている場合、各受信チャネルが平均で125マイクロ秒
毎に1バイトを受け取り、送信チャネルが125マイク
ロ秒毎に1バイトを送信することになることを考えると
よい。すなわち、各受信チャネル又は送信チャネルは、
500マイクロ秒毎に4バイト(同期部のパイプライン
内でチャネルが使用できるバッファ容量)を受信又は送
信することになる。したがって、受信チャネル/送信チ
ャネルがFIFO RAM内の当該のバッファを一杯
にしてから、または空にしてから、FIFO RAM
とホストメモリ間で当該の受信データを転送するまでに
、DMAC/MIOが500マイクロ秒以上かけると、
エラーが発生する。したがって、FIFO RAM内
の12個のバッファがすべて同時に転送の準備ができて
いる場合、FIFO RAMとホストメモリ間でそれ
ぞれ12ワード転送を実行するために、DMAC/MI
Oは500マイクロ秒のみ有する。ここで、前記の12
ワードの転送が、最大の負荷がかかったマイクロチャネ
ル・システムバスを介して行われる場合、DMAC/M
IOはそのバスへのアクセス権を500マイクロ秒の間
隔で15.6マイクロ秒のみを有する。(200マイク
ロ秒毎に7.8マイクロ秒間という最悪ケースのアクセ
スに基づき、500マイクロ秒間には2つの7.8マイ
クロ秒のアクセスのみ含まれることに留意されたい。)
るには、12本のチャネルがすべて64kbps(毎秒
64000ビット)という企図された最大速度で動作し
ている場合、各受信チャネルが平均で125マイクロ秒
毎に1バイトを受け取り、送信チャネルが125マイク
ロ秒毎に1バイトを送信することになることを考えると
よい。すなわち、各受信チャネル又は送信チャネルは、
500マイクロ秒毎に4バイト(同期部のパイプライン
内でチャネルが使用できるバッファ容量)を受信又は送
信することになる。したがって、受信チャネル/送信チ
ャネルがFIFO RAM内の当該のバッファを一杯
にしてから、または空にしてから、FIFO RAM
とホストメモリ間で当該の受信データを転送するまでに
、DMAC/MIOが500マイクロ秒以上かけると、
エラーが発生する。したがって、FIFO RAM内
の12個のバッファがすべて同時に転送の準備ができて
いる場合、FIFO RAMとホストメモリ間でそれ
ぞれ12ワード転送を実行するために、DMAC/MI
Oは500マイクロ秒のみ有する。ここで、前記の12
ワードの転送が、最大の負荷がかかったマイクロチャネ
ル・システムバスを介して行われる場合、DMAC/M
IOはそのバスへのアクセス権を500マイクロ秒の間
隔で15.6マイクロ秒のみを有する。(200マイク
ロ秒毎に7.8マイクロ秒間という最悪ケースのアクセ
スに基づき、500マイクロ秒間には2つの7.8マイ
クロ秒のアクセスのみ含まれることに留意されたい。)
【0008】しかしながら、IDLC用に設計されたD
MAC及びMIOは、緊密にタイム・インターロックさ
れた装置であり、1ワード転送を実行するのに約2.2
マイクロ秒を要する(DMACが必要な命令情報を準備
するのに約1.2マイクロ秒、MIOがバスにおける関
連するデータ転送を制御するのに約1.0マイクロ秒)
。したがって、7.8マイクロ秒間にせいぜい4ワード
しか転送を完了できない(1.2マイクロ秒かけて第1
の転送準備を行ってから、MIOがバスを保持し、その
最初の1マイクロ秒間のアクセス時間に第1ワードが転
送され、後の3ワードは残りの6.6マイクロ秒間に転
送できると仮定する)。
MAC及びMIOは、緊密にタイム・インターロックさ
れた装置であり、1ワード転送を実行するのに約2.2
マイクロ秒を要する(DMACが必要な命令情報を準備
するのに約1.2マイクロ秒、MIOがバスにおける関
連するデータ転送を制御するのに約1.0マイクロ秒)
。したがって、7.8マイクロ秒間にせいぜい4ワード
しか転送を完了できない(1.2マイクロ秒かけて第1
の転送準備を行ってから、MIOがバスを保持し、その
最初の1マイクロ秒間のアクセス時間に第1ワードが転
送され、後の3ワードは残りの6.6マイクロ秒間に転
送できると仮定する)。
【0009】当初のDMAC及びMIO設計では、DM
AC内で利用可能なレジスタ、準備プロセス及びデータ
転送プロセスでのそれらのレジスタの使い方、及びその
ような使い方に関するDMACとMIOの間の時間的相
互依存性のために、1本のチャネルに関する準備機能を
別のチャネルのデータ転送機能と時間的にオーバーラッ
プさせることができなかった。
AC内で利用可能なレジスタ、準備プロセス及びデータ
転送プロセスでのそれらのレジスタの使い方、及びその
ような使い方に関するDMACとMIOの間の時間的相
互依存性のために、1本のチャネルに関する準備機能を
別のチャネルのデータ転送機能と時間的にオーバーラッ
プさせることができなかった。
【0010】前述の最悪ケースの場合の時間的制約、す
なわち12本の同時に「準備された」チャネルに関して
最大の負荷がかかったマイクロチャネル・バス上で40
0マイクロ秒間に12のデータワード転送を実行するこ
との必要は、コマンド連鎖などの特殊機能が必要なとき
にはより厳しくなる。IDLCは、送信チャネルに関す
るコマンド連鎖サービスを提供するように設計されてい
る。このような動作では、DCBの取出しが迅速に処理
されないならば、前のコマンドが全部使われたことが検
出された後、それぞれの送信チャネル内での動作の連続
性を維持する(すなわち、アンダーランを避ける)ため
に、前に実行されたコマンドに連鎖したコマンドを表す
3ワードのDCB(装置制御ブロック)情報を、ホスト
メモリからローカル装置メモリ(FIFO RAM及
びDMAC RAM)に取り出さなければならない。 したがって、12本のチャネルが「レディー」の場合1
つ又は複数のコマンド連鎖DCBを取り出す必要が生じ
たならば、DMAC及びMIOは、500マイクロ秒の
間隔中に15個以上のワード転送を処理しなければなら
ない。しかしながら、コマンド連鎖要件がすべてのチャ
ネルの準備完了状態と同時に発生する確率、及びバスに
最大負荷がかかる(したがって、調停を求める競合が大
体連続し、その結果、バスを保持している各装置の使用
時間が7.8マイクロ秒に制限される)確率を考慮に入
れて、IIMの妥当に「安全な」設計目標は、12本の
レディーチャネルの処理を、400マイクロ秒のマイク
ロチャネル・バス動作周期の間に収めることであると決
定された。
なわち12本の同時に「準備された」チャネルに関して
最大の負荷がかかったマイクロチャネル・バス上で40
0マイクロ秒間に12のデータワード転送を実行するこ
との必要は、コマンド連鎖などの特殊機能が必要なとき
にはより厳しくなる。IDLCは、送信チャネルに関す
るコマンド連鎖サービスを提供するように設計されてい
る。このような動作では、DCBの取出しが迅速に処理
されないならば、前のコマンドが全部使われたことが検
出された後、それぞれの送信チャネル内での動作の連続
性を維持する(すなわち、アンダーランを避ける)ため
に、前に実行されたコマンドに連鎖したコマンドを表す
3ワードのDCB(装置制御ブロック)情報を、ホスト
メモリからローカル装置メモリ(FIFO RAM及
びDMAC RAM)に取り出さなければならない。 したがって、12本のチャネルが「レディー」の場合1
つ又は複数のコマンド連鎖DCBを取り出す必要が生じ
たならば、DMAC及びMIOは、500マイクロ秒の
間隔中に15個以上のワード転送を処理しなければなら
ない。しかしながら、コマンド連鎖要件がすべてのチャ
ネルの準備完了状態と同時に発生する確率、及びバスに
最大負荷がかかる(したがって、調停を求める競合が大
体連続し、その結果、バスを保持している各装置の使用
時間が7.8マイクロ秒に制限される)確率を考慮に入
れて、IIMの妥当に「安全な」設計目標は、12本の
レディーチャネルの処理を、400マイクロ秒のマイク
ロチャネル・バス動作周期の間に収めることであると決
定された。
【0011】
【発明が解決しようとする課題】本発明の目的は、シス
テムバスと、このシステムバスの実時間アクセス制約と
衝突する可能性のある高スループットの実時間データ転
送要件を有する複数のポート又は装置間で、効率的なチ
ャネルサービスを提供するための、改良されたマルチチ
ャネルDMAコントローラを提供することにある。
テムバスと、このシステムバスの実時間アクセス制約と
衝突する可能性のある高スループットの実時間データ転
送要件を有する複数のポート又は装置間で、効率的なチ
ャネルサービスを提供するための、改良されたマルチチ
ャネルDMAコントローラを提供することにある。
【0012】本発明の他の目的は、上記の改良されたD
MAコントローラを、多重チャネル通信コントローラ装
置の統合部として提供することにある。これに関連する
目的は、VLSIチップコスト及びDMAコントローラ
回路のサイズを厳しく制限するセルカウント制約条件の
枠内で、単一のVLSI回路チップ上にパッケージされ
た通信コントローラの統合要素として、改良されたDM
Aコントローラを提供することにある。
MAコントローラを、多重チャネル通信コントローラ装
置の統合部として提供することにある。これに関連する
目的は、VLSIチップコスト及びDMAコントローラ
回路のサイズを厳しく制限するセルカウント制約条件の
枠内で、単一のVLSI回路チップ上にパッケージされ
た通信コントローラの統合要素として、改良されたDM
Aコントローラを提供することにある。
【0013】
【課題を解決するための手段】上記その他の目的は、初
期のIDLC装置のDMAコントローラ(DMAC)装
置を、異なるチャネルに関して時間的にオーバーラップ
して動作できる2つのIIM装置、すなわちIIM
DMAC装置とIIM DMADB(直接メモリアク
セス・データバッファ装置)で置き換え、かつ後述する
目的用に修正されたMIO装置を提供することによって
達成される。
期のIDLC装置のDMAコントローラ(DMAC)装
置を、異なるチャネルに関して時間的にオーバーラップ
して動作できる2つのIIM装置、すなわちIIM
DMAC装置とIIM DMADB(直接メモリアク
セス・データバッファ装置)で置き換え、かつ後述する
目的用に修正されたMIO装置を提供することによって
達成される。
【0014】IIM DMAC装置は、IIMローカ
ルメモリ(FIFO RAM及びDMAC RAM
)とDMADB間をインターフェースし、DMADB及
び修正MIOは、緊密に調整して動作して、マイクロチ
ャネル・バスを介してホストメモリに関するデータ転送
及びDCB転送を制御する。IIM DMAC及びD
MADBは、時間的にはごく緩くしか調整されていない
ので、DMACが1本のチャネルに関する転送用の情報
を準備する間に、DMADB及びMIOは前に準備され
た転送を実行することができる。その結果、IIMは1
マイクロ秒当たり約1ワード、すなわち400マイクロ
秒の間隔の間に最悪ケースの限界である15.8マイク
ロ秒というアクセス時間中に約15ワードというバスに
関する実効転送速度を実現することができる。このよう
に、どの400マイクロ秒間隔間でも、IIMは12本
の同時に準備できているチャネルに関するデータの転送
と共に、少なくとも1つのコマンドチェーンDCB取出
しプロセスを有効に処理することができる。これは、上
記の設計目標を十分に満たすものである。
ルメモリ(FIFO RAM及びDMAC RAM
)とDMADB間をインターフェースし、DMADB及
び修正MIOは、緊密に調整して動作して、マイクロチ
ャネル・バスを介してホストメモリに関するデータ転送
及びDCB転送を制御する。IIM DMAC及びD
MADBは、時間的にはごく緩くしか調整されていない
ので、DMACが1本のチャネルに関する転送用の情報
を準備する間に、DMADB及びMIOは前に準備され
た転送を実行することができる。その結果、IIMは1
マイクロ秒当たり約1ワード、すなわち400マイクロ
秒の間隔の間に最悪ケースの限界である15.8マイク
ロ秒というアクセス時間中に約15ワードというバスに
関する実効転送速度を実現することができる。このよう
に、どの400マイクロ秒間隔間でも、IIMは12本
の同時に準備できているチャネルに関するデータの転送
と共に、少なくとも1つのコマンドチェーンDCB取出
しプロセスを有効に処理することができる。これは、上
記の設計目標を十分に満たすものである。
【0015】IIMのDMAC装置とDMADB装置は
、異なるチャネルに関して時間的にオーバーラップして
動作するので、DMAが1本のチャネルに関するデータ
転送用の制御情報を準備している間に、DMADBは他
のチャネルに関してホストシステム・メモリ間のデータ
転送を実行するように動作することができる。さらに、
これらの装置は、個別的な瞬時に情報をスワップする。 したがって、DMADBが1本のチャネルに関する「送
信」データの取出しを完了したとき、そのデータをDM
ACに渡し、かつその間に別のチャネルに関して実行さ
れるデータ転送に関する命令情報を(必要とされる転送
が受信チャネルに関するものである場合は、関連する受
信データと共に)DMACから受け取ることができる。
、異なるチャネルに関して時間的にオーバーラップして
動作するので、DMAが1本のチャネルに関するデータ
転送用の制御情報を準備している間に、DMADBは他
のチャネルに関してホストシステム・メモリ間のデータ
転送を実行するように動作することができる。さらに、
これらの装置は、個別的な瞬時に情報をスワップする。 したがって、DMADBが1本のチャネルに関する「送
信」データの取出しを完了したとき、そのデータをDM
ACに渡し、かつその間に別のチャネルに関して実行さ
れるデータ転送に関する命令情報を(必要とされる転送
が受信チャネルに関するものである場合は、関連する受
信データと共に)DMACから受け取ることができる。
【0016】またDMAC及びDMADB内の、受信デ
ータ及び送信データをバッファする働きをするレジスタ
は、各チャネルに関するバッファパイプラインを形成し
、このパイプラインは、システムバスを介して最悪ケー
スのデータ転送の完了に許される時間を有効に増加させ
る。このパイプラインは、コマンド連鎖DCB取出し動
作が必要なとき、パイプラインが切断されるので、「適
応的」に使用される。パイプラインを形成するすべての
レジスタは、このような連鎖動作中に取り出される3D
CBワードを処理するのに使用される。
ータ及び送信データをバッファする働きをするレジスタ
は、各チャネルに関するバッファパイプラインを形成し
、このパイプラインは、システムバスを介して最悪ケー
スのデータ転送の完了に許される時間を有効に増加させ
る。このパイプラインは、コマンド連鎖DCB取出し動
作が必要なとき、パイプラインが切断されるので、「適
応的」に使用される。パイプラインを形成するすべての
レジスタは、このような連鎖動作中に取り出される3D
CBワードを処理するのに使用される。
【0017】コマンド連鎖動作は比較的稀にしか起こら
ないので、連鎖動作に使用される特別の回路を設けるの
は非効率的である。したがって、コマンド連鎖中には1
本のチャネルに、また通常の通信データ転送中には時間
的にオーバーラップする複数のチャネルにサービスする
ように、DMACレジスタ及びDMADBレジスタを適
応的に機能させることによって、コスト、サイズ、及び
性能に関して追加の利益が得られる。
ないので、連鎖動作に使用される特別の回路を設けるの
は非効率的である。したがって、コマンド連鎖中には1
本のチャネルに、また通常の通信データ転送中には時間
的にオーバーラップする複数のチャネルにサービスする
ように、DMACレジスタ及びDMADBレジスタを適
応的に機能させることによって、コスト、サイズ、及び
性能に関して追加の利益が得られる。
【0018】IIMの動作における安全余裕を拡大する
働きをする他のファクタは、設計目標は64kbpsで
動作する12本のチャネルに対応できるように設定され
たが、実際のISDN適用業務では、IIMは64kb
psの4Bチャネル(受信チャネル4本と送信チャネル
4本)及び2Dチャネル(16kbpsの受信チャネル
2本と送信チャネル2本)、合計で64kbpsのチャ
ネル8本と16kbpsのチャネル4本をサポートする
ように動作することである。16kbpsで動作する4
本のチャネルは同期パイプラインを満たすまでの待ち時
間がより長いので、こうした適用業務構成(2B+D適
用業務)における12本の同期的に準備のできているチ
ャネルに関する12の転送を完了するのに許される時間
は600マイクロ秒以上であり、したがって少なくとも
3最悪ケースアクセス周期にわたり、最大で少なくとも
23.4(3×7.8)マイクロ秒のアクセス時間をマ
イクロチャネルに追加する。このような緩和された制約
では、本発明のIIMは任意の600マイクロ秒の周期
間に合計で少なくとも20ワード転送を実現することが
できる。これは、12本の準備のできたワードチャネル
と、少なくとも2つのコマンド連鎖プロセスとにサービ
スするのに十分な時間である。
働きをする他のファクタは、設計目標は64kbpsで
動作する12本のチャネルに対応できるように設定され
たが、実際のISDN適用業務では、IIMは64kb
psの4Bチャネル(受信チャネル4本と送信チャネル
4本)及び2Dチャネル(16kbpsの受信チャネル
2本と送信チャネル2本)、合計で64kbpsのチャ
ネル8本と16kbpsのチャネル4本をサポートする
ように動作することである。16kbpsで動作する4
本のチャネルは同期パイプラインを満たすまでの待ち時
間がより長いので、こうした適用業務構成(2B+D適
用業務)における12本の同期的に準備のできているチ
ャネルに関する12の転送を完了するのに許される時間
は600マイクロ秒以上であり、したがって少なくとも
3最悪ケースアクセス周期にわたり、最大で少なくとも
23.4(3×7.8)マイクロ秒のアクセス時間をマ
イクロチャネルに追加する。このような緩和された制約
では、本発明のIIMは任意の600マイクロ秒の周期
間に合計で少なくとも20ワード転送を実現することが
できる。これは、12本の準備のできたワードチャネル
と、少なくとも2つのコマンド連鎖プロセスとにサービ
スするのに十分な時間である。
【0019】性能上の追加の利点が、IIMのMIO装
置に組み込まれた「バス保持」機能によって提供される
。マイクロチャネル・アーキテクチャ規則によると、「
プリエンプト」線が非活動状態の間、及びその線が活動
状態になった後の所定の時間(約7.8マイクロ秒)の
間、装置はバス制御権を保持することができる。プリエ
ンプト線は、バスに接続された処理エンティティ及び装
置エンティティが、調停を開始するために使用する。 (これは、バスの制御権を求めて競合するプロセス、す
なわちプリエンプト線を活動状態に駆動する装置が、そ
の相対的優先順位を決め、バスの制御権を別々に受け取
るプロセスである。)以前には(IDLC装置内で)、
MIO及びDMACは、MIOがバス制御権を放棄する
時点をDMACが有効に決定できるようにタイム「イン
ターロック」されており、したがってバス制御が外部で
優先使用されなかった場合、DMACによって開始され
た転送動作が完了することになっていた。しかし、II
M内ではDMACとMIOは緊密にインターロックされ
ていないので、転送完了後にMIOがアイドル状態とな
り、DMACが別のデータ転送動作を準備している短い
期間が生ずることがある。
置に組み込まれた「バス保持」機能によって提供される
。マイクロチャネル・アーキテクチャ規則によると、「
プリエンプト」線が非活動状態の間、及びその線が活動
状態になった後の所定の時間(約7.8マイクロ秒)の
間、装置はバス制御権を保持することができる。プリエ
ンプト線は、バスに接続された処理エンティティ及び装
置エンティティが、調停を開始するために使用する。 (これは、バスの制御権を求めて競合するプロセス、す
なわちプリエンプト線を活動状態に駆動する装置が、そ
の相対的優先順位を決め、バスの制御権を別々に受け取
るプロセスである。)以前には(IDLC装置内で)、
MIO及びDMACは、MIOがバス制御権を放棄する
時点をDMACが有効に決定できるようにタイム「イン
ターロック」されており、したがってバス制御が外部で
優先使用されなかった場合、DMACによって開始され
た転送動作が完了することになっていた。しかし、II
M内ではDMACとMIOは緊密にインターロックされ
ていないので、転送完了後にMIOがアイドル状態とな
り、DMACが別のデータ転送動作を準備している短い
期間が生ずることがある。
【0020】バスを効率的に利用するようにMIOを設
計するには、MIOがアイドル状態になった後にできる
だけ早くバス制御権を放棄させることが必要である。し
かし、DMACが別の転送動作を実際に準備している短
い時間の間にMIOがこれを行った場合、MIOがバス
制御権を再調停し、それを得るまで、DMACによって
開始された動作が前へ進めないので、(すなわち、最悪
ケースのマイクロチャネル・バス負荷状態の下では、I
IM内でチャネルのオーバーラン又はアンダーラン状態
を発生させるのに十分な長い時間であるもう200マイ
クロ秒間継続できないので)性能への影響が生ずる。
計するには、MIOがアイドル状態になった後にできる
だけ早くバス制御権を放棄させることが必要である。し
かし、DMACが別の転送動作を実際に準備している短
い時間の間にMIOがこれを行った場合、MIOがバス
制御権を再調停し、それを得るまで、DMACによって
開始された動作が前へ進めないので、(すなわち、最悪
ケースのマイクロチャネル・バス負荷状態の下では、I
IM内でチャネルのオーバーラン又はアンダーラン状態
を発生させるのに十分な長い時間であるもう200マイ
クロ秒間継続できないので)性能への影響が生ずる。
【0021】したがって、現在ではMIOは、MIOが
アイドル状態になったときにバスプリエンプト線が所定
の時間の間活動状態ではなかった場合、MIOがアイド
ル状態になった時点から選択された短い「バス保持」時
間の間バス制御権を延長し(今回選択した間隔は、約0
.3マイクロ秒、すなわちMIOバス制御状態機械の4
内部マシン・サイクル)、次いでDMACから別の刺激
を受け取らなかった場合、バスを解放するように設計さ
れる。バス保持時間の終了前にDMACがMIOによる
別の活動を開始する場合、MIOは、バスの制御を調停
し、それを得たばかりである場合と同様に、制御権を保
持する(すなわち、必要なら、プリエンプト線が後で活
動状態になった後7.8マイクロ秒間、またはMIOが
0.3マイクロ秒より長い間アイドル状態になるまでの
、いずれか先に起こる方の時点まで、制御権を保持する
)。
アイドル状態になったときにバスプリエンプト線が所定
の時間の間活動状態ではなかった場合、MIOがアイド
ル状態になった時点から選択された短い「バス保持」時
間の間バス制御権を延長し(今回選択した間隔は、約0
.3マイクロ秒、すなわちMIOバス制御状態機械の4
内部マシン・サイクル)、次いでDMACから別の刺激
を受け取らなかった場合、バスを解放するように設計さ
れる。バス保持時間の終了前にDMACがMIOによる
別の活動を開始する場合、MIOは、バスの制御を調停
し、それを得たばかりである場合と同様に、制御権を保
持する(すなわち、必要なら、プリエンプト線が後で活
動状態になった後7.8マイクロ秒間、またはMIOが
0.3マイクロ秒より長い間アイドル状態になるまでの
、いずれか先に起こる方の時点まで、制御権を保持する
)。
【0022】この機能がシステム内でのバス利用に悪影
響を与えないように、MIO内のタイマが、プリエンプ
ト線の活動化の開始からタイムアウトし、ある時間経過
した後の新しいバス活動の開始を制限する。理論的には
、バスは、プリエンプト線が活動状態になった後7.8
マイクロ秒の間使用可能である。しかし、そのタイマが
4.0マイクロ秒のカウントに達した後は、MIOは、
(3命令ワードの取出しを必要とする)コマンド連鎖に
関係するDMAC要求をもはや受け入れず、タイマが6
.0マイクロ秒に達した後は、MIOは別のどんなDM
AC要求をももはや受け入れない。
響を与えないように、MIO内のタイマが、プリエンプ
ト線の活動化の開始からタイムアウトし、ある時間経過
した後の新しいバス活動の開始を制限する。理論的には
、バスは、プリエンプト線が活動状態になった後7.8
マイクロ秒の間使用可能である。しかし、そのタイマが
4.0マイクロ秒のカウントに達した後は、MIOは、
(3命令ワードの取出しを必要とする)コマンド連鎖に
関係するDMAC要求をもはや受け入れず、タイマが6
.0マイクロ秒に達した後は、MIOは別のどんなDM
AC要求をももはや受け入れない。
【0023】
【実施例】1.装置環境
図1を参照すると、IDLC(統合データリンク・コン
トローラ)装置1は、特別のバースト時分割インターフ
ェース(BTDM)4を介して、データ処理システム2
とL1(レベル1)回路3間で作動する。L1回路は、
外部インターフェース5を介して通信ポートに結合する
。本発明のIIM(統合ISDNモジュール)装置は、
IDLCのサイズ/容量が縮小されたバージョンである
。IDLCが32本の基本速度(64kbps)全2重
チャネルを支援できるように設計されている場合、II
Mはわずか6本の全2重チャネルを支援するように設計
される。ほとんどのISDN適用業務ではこの6本の全
2重チャネルは、4本の基本速度Bチャネル及び2本の
より低速のDチャネル(16kbps)から構成される
。さらにIIMは、それがL1回路及びBTDMインタ
ーフェース(これらはIDLCの外部にある)を統合し
て含むという点でIDLCとは異なる。
トローラ)装置1は、特別のバースト時分割インターフ
ェース(BTDM)4を介して、データ処理システム2
とL1(レベル1)回路3間で作動する。L1回路は、
外部インターフェース5を介して通信ポートに結合する
。本発明のIIM(統合ISDNモジュール)装置は、
IDLCのサイズ/容量が縮小されたバージョンである
。IDLCが32本の基本速度(64kbps)全2重
チャネルを支援できるように設計されている場合、II
Mはわずか6本の全2重チャネルを支援するように設計
される。ほとんどのISDN適用業務ではこの6本の全
2重チャネルは、4本の基本速度Bチャネル及び2本の
より低速のDチャネル(16kbps)から構成される
。さらにIIMは、それがL1回路及びBTDMインタ
ーフェース(これらはIDLCの外部にある)を統合し
て含むという点でIDLCとは異なる。
【0024】システム2(以後、ホストシステム)は、
プロセッサ2a、関連するRAMメモリ2b、及び関連
するバス2cを含む。IIM及びIDLCは、バス2c
を介してプロセッサ2a及びRAM2bとインターフェ
ースする。IIM装置及びIDLC装置の直接メモリア
クセス・コントローラ(DMACユニット)及びバス制
御論理回路(MIOユニット)は、直接アクセスに基づ
いてRAM2bにアクセスし、その間にバス2cのマス
タ制御を実行するように、それぞれの装置をイネーブル
する。
プロセッサ2a、関連するRAMメモリ2b、及び関連
するバス2cを含む。IIM及びIDLCは、バス2c
を介してプロセッサ2a及びRAM2bとインターフェ
ースする。IIM装置及びIDLC装置の直接メモリア
クセス・コントローラ(DMACユニット)及びバス制
御論理回路(MIOユニット)は、直接アクセスに基づ
いてRAM2bにアクセスし、その間にバス2cのマス
タ制御を実行するように、それぞれの装置をイネーブル
する。
【0025】図2はIIM装置の各部分を示す。後述す
る(本発明を実施する)DMACユニット、DMADB
ユニット、及びMIOユニットを除き、BTDMインタ
ーフェース4より上の他のすべてのユニットは、上記の
米国特許出願第07/495232号及び第07/49
5810号に記述されたIDLCの対応する名前のユニ
ットと論理的かつ機能的に同一である(ただし、IIM
ユニットはより少ない本数のチャネルにサービスするよ
うに設計されている)。
る(本発明を実施する)DMACユニット、DMADB
ユニット、及びMIOユニットを除き、BTDMインタ
ーフェース4より上の他のすべてのユニットは、上記の
米国特許出願第07/495232号及び第07/49
5810号に記述されたIDLCの対応する名前のユニ
ットと論理的かつ機能的に同一である(ただし、IIM
ユニットはより少ない本数のチャネルにサービスするよ
うに設計されている)。
【0026】図2に示すように、IIMは、同期部11
と非同期部12を備えている。これらの部間のインター
フェース13は、後述のIIM装置のいくつかの論理ユ
ニットを通して延びている。L1回路3は、IIM同期
部と、64kbpsのISDN基本速度でデータを双方
向に運ぶ最大6本の全2重ビット直列データ通信リンク
間をインターフェースする(前述のようにほとんどのI
SDN適用業務では、IIMは、4本の全2重基本速度
Bチャネル及び2本の全2重低速Dチャネルへのサービ
スを必要とする適用業務で最も一般に使用される)。し
たがって、L1回路は、IIM外部通信リンクに関する
12本の内部時分割多重チャネル、すなわちデータ受信
用の6本の受信チャネル及びデータ送信用の6本の送信
チャネルをサポートする。
と非同期部12を備えている。これらの部間のインター
フェース13は、後述のIIM装置のいくつかの論理ユ
ニットを通して延びている。L1回路3は、IIM同期
部と、64kbpsのISDN基本速度でデータを双方
向に運ぶ最大6本の全2重ビット直列データ通信リンク
間をインターフェースする(前述のようにほとんどのI
SDN適用業務では、IIMは、4本の全2重基本速度
Bチャネル及び2本の全2重低速Dチャネルへのサービ
スを必要とする適用業務で最も一般に使用される)。し
たがって、L1回路は、IIM外部通信リンクに関する
12本の内部時分割多重チャネル、すなわちデータ受信
用の6本の受信チャネル及びデータ送信用の6本の送信
チャネルをサポートする。
【0027】同期部11は、データビットをL1回路と
直列に交換し、L1回路内の内部時分割チャネルに対応
する12本の内部時分割チャネル(6本の受信チャネル
と6本の送信チャネル)をサポートする。各チャネル内
で処理されるデータに関して、同期部の論理ユニットは
、以下で検討する直列/並列(ビット/バイト)変換及
び後述の各種の処理動作を実行する。
直列に交換し、L1回路内の内部時分割チャネルに対応
する12本の内部時分割チャネル(6本の受信チャネル
と6本の送信チャネル)をサポートする。各チャネル内
で処理されるデータに関して、同期部の論理ユニットは
、以下で検討する直列/並列(ビット/バイト)変換及
び後述の各種の処理動作を実行する。
【0028】同期部11は、受信回路14と送信回路1
5とを備え、これらの回路は、上記の2件の特許出願に
記述されたBTDM(バースト時分割多重)インターフ
ェース4を介して、それぞれL1回路の受信チャネル及
び送信チャネルとインターフェースする。受信回路14
は、L1回路のそれぞれの受信チャネルに対応し、それ
らのチャネルと同期して動作する、6本の時分割多重受
信データ処理チャネルをサポートする。送信回路15は
、L1回路のそれぞれの送信チャネルに対応し、それら
のチャネルと同期して動作する、6本の送信データ処理
チャネルをサポートする。
5とを備え、これらの回路は、上記の2件の特許出願に
記述されたBTDM(バースト時分割多重)インターフ
ェース4を介して、それぞれL1回路の受信チャネル及
び送信チャネルとインターフェースする。受信回路14
は、L1回路のそれぞれの受信チャネルに対応し、それ
らのチャネルと同期して動作する、6本の時分割多重受
信データ処理チャネルをサポートする。送信回路15は
、L1回路のそれぞれの送信チャネルに対応し、それら
のチャネルと同期して動作する、6本の送信データ処理
チャネルをサポートする。
【0029】受信回路14は、活動状態の各受信チャネ
ル内でデータビットを直列に受信し、各チャネルでビッ
トを受信バイトに組み立て、それをRFM(受信FIF
O管理)ユニット17がFIFO(先入れ先出し)RA
M16に記憶する。RFMユニット17は、受信チャネ
ルに関するFIFO RAM16へのアクセスを管理
し、それらのチャネルに関して受信回路14と同期して
動作する。
ル内でデータビットを直列に受信し、各チャネルでビッ
トを受信バイトに組み立て、それをRFM(受信FIF
O管理)ユニット17がFIFO(先入れ先出し)RA
M16に記憶する。RFMユニット17は、受信チャネ
ルに関するFIFO RAM16へのアクセスを管理
し、それらのチャネルに関して受信回路14と同期して
動作する。
【0030】送信処理動作の際、TFM(送信FIFO
管理)ユニット18は、送信回路15のサービスを受け
る送信チャネルに関するFIFO RAM16へのア
クセスを管理し、それらのチャネルの時分割反復と同期
して動作する。
管理)ユニット18は、送信回路15のサービスを受け
る送信チャネルに関するFIFO RAM16へのア
クセスを管理し、それらのチャネルの時分割反復と同期
して動作する。
【0031】ユニット17及び18、及び後述のDMA
RQ(DMA要求待ち行列)ユニット23が協働して、
受信チャネル及び送信チャネルのサービスを非同期部1
2に拡大する。
RQ(DMA要求待ち行列)ユニット23が協働して、
受信チャネル及び送信チャネルのサービスを非同期部1
2に拡大する。
【0032】要約すると、受信回路14及びRFMユニ
ット17は、L1回路でサポートされる受信データビッ
ト処理チャネルに対応する6本の受信データ時分割処理
チャネルをサポートし、対応するチャネルに関するL1
の動作と時間的に同期してこれらのチャネルにサービス
する。同様に、送信回路15及びTFMユニット18は
、L1回路の送信データビット処理チャネルに対応しそ
れと同期する6本の送信データ時分割処理チャネルをサ
ポートし、対応するチャネルに関するL1の動作と同期
してこれらのチャネルにサービスする。任意のチャネル
に対する相続くサービス期間中、それぞれのチャネルに
関するユニット14、15、17、18の論理状態が、
「タイムスワップRAM」(TSR)メモリ19(同期
部11の一部)内に記憶される。各サービスされたチャ
ネルに関するTSR19に記憶された情報は、最後のサ
ービス期間の終了時における通信データ及び内部装置論
理回路の状態を含む。したがって、各チャネルへのサー
ビスは、1つのサービス期間から次のサービス期間へと
「継ぎ目なく」連続する。
ット17は、L1回路でサポートされる受信データビッ
ト処理チャネルに対応する6本の受信データ時分割処理
チャネルをサポートし、対応するチャネルに関するL1
の動作と時間的に同期してこれらのチャネルにサービス
する。同様に、送信回路15及びTFMユニット18は
、L1回路の送信データビット処理チャネルに対応しそ
れと同期する6本の送信データ時分割処理チャネルをサ
ポートし、対応するチャネルに関するL1の動作と同期
してこれらのチャネルにサービスする。任意のチャネル
に対する相続くサービス期間中、それぞれのチャネルに
関するユニット14、15、17、18の論理状態が、
「タイムスワップRAM」(TSR)メモリ19(同期
部11の一部)内に記憶される。各サービスされたチャ
ネルに関するTSR19に記憶された情報は、最後のサ
ービス期間の終了時における通信データ及び内部装置論
理回路の状態を含む。したがって、各チャネルへのサー
ビスは、1つのサービス期間から次のサービス期間へと
「継ぎ目なく」連続する。
【0033】TSRメモリ19の動作及びTSRに関す
る受信回路14、送信回路15、RFM17、TFM1
8の動作は、同期部の資源管理(RSM)ユニット20
によって監視され、ホストシステムへの報告の状況は、
同期部の割込み管理(INT)ユニット21によって収
集される。INT21によって収集された状況はTSR
19にバッファされる。
る受信回路14、送信回路15、RFM17、TFM1
8の動作は、同期部の資源管理(RSM)ユニット20
によって監視され、ホストシステムへの報告の状況は、
同期部の割込み管理(INT)ユニット21によって収
集される。INT21によって収集された状況はTSR
19にバッファされる。
【0034】非同期部は、同期部からサービスを受ける
チャネルに関して、システムバス2cを介してFIFO
RAM16とホスト・メモリ2b間でデータを転送
するように動作する。データは、チャネル当たり4バイ
トのワード群でバスを介して転送される。FIFO
RAM16は、チャネル当たり4バイトのデータを記憶
する能力を有する。メモリ2bとRAM16間の転送は
、DMARQ(DMA要求待ち行列)ユニット23から
提示された要求に応答して、直接メモリアクセス・コン
トローラ(DMAC)ユニット22によって監視される
。DMARQユニット23は、同期部のRFM17及び
TFM18から要求を受け取る。
チャネルに関して、システムバス2cを介してFIFO
RAM16とホスト・メモリ2b間でデータを転送
するように動作する。データは、チャネル当たり4バイ
トのワード群でバスを介して転送される。FIFO
RAM16は、チャネル当たり4バイトのデータを記憶
する能力を有する。メモリ2bとRAM16間の転送は
、DMARQ(DMA要求待ち行列)ユニット23から
提示された要求に応答して、直接メモリアクセス・コン
トローラ(DMAC)ユニット22によって監視される
。DMARQユニット23は、同期部のRFM17及び
TFM18から要求を受け取る。
【0035】RFM17は、受信チャネルに関して受信
データの第4バイト(当該のチャネルに割り振られたF
IFO RAM16のワード空間を満たす1バイト)
をFIFO RAM16に記憶するとき、要求をDM
ARQ23に入力する。TFMは、送信チャネルに関し
てFIFO RAM16に記憶された送信データの最
後の1バイトを取り出すと、要求をDMARQ23にセ
ットする。
データの第4バイト(当該のチャネルに割り振られたF
IFO RAM16のワード空間を満たす1バイト)
をFIFO RAM16に記憶するとき、要求をDM
ARQ23に入力する。TFMは、送信チャネルに関し
てFIFO RAM16に記憶された送信データの最
後の1バイトを取り出すと、要求をDMARQ23にセ
ットする。
【0036】FIFO RAM16とホストメモリ2
b間のデータ転送を実行するためにDMAC22が必要
とする命令は、DMAコントローラRAM(DMACR
)メモリ24に保持される。チャネルに関するFIFO
RAM16へのアクセスを管理するためにRFM1
7及びTFM18が必要とする制御情報(記憶される又
は取り出される次のデータ・バイトの位置など)は、D
MAC22の動作によってFIFO RAM16に記
憶される。データ転送に関する、バス2cへのアクセス
の調停及びバス2cの制御に関連する機能は、DMAC
22からマスタ入出力バス制御(MIO)ユニット25
に渡される制御情報に応答して、MIO25によって実
行される。
b間のデータ転送を実行するためにDMAC22が必要
とする命令は、DMAコントローラRAM(DMACR
)メモリ24に保持される。チャネルに関するFIFO
RAM16へのアクセスを管理するためにRFM1
7及びTFM18が必要とする制御情報(記憶される又
は取り出される次のデータ・バイトの位置など)は、D
MAC22の動作によってFIFO RAM16に記
憶される。データ転送に関する、バス2cへのアクセス
の調停及びバス2cの制御に関連する機能は、DMAC
22からマスタ入出力バス制御(MIO)ユニット25
に渡される制御情報に応答して、MIO25によって実
行される。
【0037】IIM内では、本発明と特に関連する追加
のDMAデータバッファ(DMADB)ユニット22A
(IDLC内にはこれに相当するものはない)が、以下
に説明する目的のために、DMAC22とMIO25間
をインターフェースする。
のDMAデータバッファ(DMADB)ユニット22A
(IDLC内にはこれに相当するものはない)が、以下
に説明する目的のために、DMAC22とMIO25間
をインターフェースする。
【0038】IIMでもIDLCでも、非同期部のスレ
ーブ入出力(SIO)ユニット26は、外部ホストプロ
セッサ2bのスレーブとして動作して、初期状態定義機
能をホストプロセッサ2aからRSM20及びTSR1
9に転送し、割込み状態情報をINT21及びTSR1
9からホストプロセッサ2bに転送する。プロセッサ2
bからRSM20及びTSR19に渡される初期状態定
義機能は、同期部のプロセスチャネル、及びそれらのチ
ャネルに関するプログラム動作を有効に活動化する働き
をする(すなわち、ディジタル化された音声及びビデオ
信号を運ぶチャネルを、HLDCなどの特殊プロトコル
形式で配列されたデータを運ぶチャネルと区別する)。 プロセッサ2bに渡される割込み状態情報によって、T
SR19は、任意のチャネルの動作がいつ正常終了又は
異常終了に達するかを決定し、適切な処置をとることが
できるようになる。SIO26とその経路及び動作は、
本発明には含まれない。
ーブ入出力(SIO)ユニット26は、外部ホストプロ
セッサ2bのスレーブとして動作して、初期状態定義機
能をホストプロセッサ2aからRSM20及びTSR1
9に転送し、割込み状態情報をINT21及びTSR1
9からホストプロセッサ2bに転送する。プロセッサ2
bからRSM20及びTSR19に渡される初期状態定
義機能は、同期部のプロセスチャネル、及びそれらのチ
ャネルに関するプログラム動作を有効に活動化する働き
をする(すなわち、ディジタル化された音声及びビデオ
信号を運ぶチャネルを、HLDCなどの特殊プロトコル
形式で配列されたデータを運ぶチャネルと区別する)。 プロセッサ2bに渡される割込み状態情報によって、T
SR19は、任意のチャネルの動作がいつ正常終了又は
異常終了に達するかを決定し、適切な処置をとることが
できるようになる。SIO26とその経路及び動作は、
本発明には含まれない。
【0039】図2の矢印28及び29は、それぞれDM
AC22及びSIO26中を流れる情報のタイプを示す
。矢印28は、通信データ、並びにDMAC22とRF
M17及びTFM18の動作を指令する命令情報が、D
MAC22(及びDMADB22AとMIO25)を介
して処理されることを示す。矢印29は、割込み状態、
初期装置情報及びチャネル状態(プログラム)情報が、
SIO26を介して伝わることを示す。
AC22及びSIO26中を流れる情報のタイプを示す
。矢印28は、通信データ、並びにDMAC22とRF
M17及びTFM18の動作を指令する命令情報が、D
MAC22(及びDMADB22AとMIO25)を介
して処理されることを示す。矢印29は、割込み状態、
初期装置情報及びチャネル状態(プログラム)情報が、
SIO26を介して伝わることを示す。
【0040】図5に示すように、FIFO RAM1
6は、6本の受信チャネルのそれぞれに専用の2つのワ
ード空間、及び6本の送信チャネルのそれぞれに関する
2つのワード空間を含む。これらの受信チャネル及び送
信チャネルは、対にされて、6本の結合した2重チャネ
ル0−5になる。各ワード空間は、最大32ビットの情
報、及び不特定数のパリティ検査ビット(通常、下位4
ビット、又はバイト当たり1検査ビット)を保持する。
6は、6本の受信チャネルのそれぞれに専用の2つのワ
ード空間、及び6本の送信チャネルのそれぞれに関する
2つのワード空間を含む。これらの受信チャネル及び送
信チャネルは、対にされて、6本の結合した2重チャネ
ル0−5になる。各ワード空間は、最大32ビットの情
報、及び不特定数のパリティ検査ビット(通常、下位4
ビット、又はバイト当たり1検査ビット)を保持する。
【0041】受信チャネルに割り振られた空間は、RD
CR1及びRDCR2と呼ばれる(RDCRは受信デー
タ制御レジスタを意味する)。送信チャネルに割り振ら
れた空間は、TDCR1及びTDCR2と呼ばれる(T
DCRは送信データ制御レジスタを意味する)。RDC
R2及びTDCR2は、それぞれのチャネルに関する(
4バイトの)受信データと(4バイトの)送信データを
記憶するために使用される。RDCR1は、ホストメモ
リの循環バッファ空間に関する現在のアドレス情報、す
なわち受信データが記憶される循環バッファ空間の次の
アドレスを表す情報を保持する。TDCR1は、FIF
O RAM内に現在何バイトの送信データが記憶され
ているかを示す情報、及び当該の送信チャネルプロセス
内でフレーム終了状態又はチェーン終了状態がいつ起こ
るかを示す情報を保持する。
CR1及びRDCR2と呼ばれる(RDCRは受信デー
タ制御レジスタを意味する)。送信チャネルに割り振ら
れた空間は、TDCR1及びTDCR2と呼ばれる(T
DCRは送信データ制御レジスタを意味する)。RDC
R2及びTDCR2は、それぞれのチャネルに関する(
4バイトの)受信データと(4バイトの)送信データを
記憶するために使用される。RDCR1は、ホストメモ
リの循環バッファ空間に関する現在のアドレス情報、す
なわち受信データが記憶される循環バッファ空間の次の
アドレスを表す情報を保持する。TDCR1は、FIF
O RAM内に現在何バイトの送信データが記憶され
ているかを示す情報、及び当該の送信チャネルプロセス
内でフレーム終了状態又はチェーン終了状態がいつ起こ
るかを示す情報を保持する。
【0042】またDMAC RAM24は、12のチ
ャネルに専用の24ワード空間、すなわち各受信チャネ
ルに2ワード空間、各送信チャネルに2ワード空間を含
む。これらの空間は、それぞれのチャネルに関するDM
AC22の動作(及び間接的にはDMADB22A及び
MIO25の動作)を規定する命令情報を記憶するため
の制御レジスタとして使用される。このような命令情報
としては、後述のホストメモリに関するいつくかのアド
レス標識がある。各受信チャネルに関連する受信データ
制御レジスタは、RDCR3及びRDCR4と呼ばれる
。各送信チャネルに関連する送信データ制御レジスタは
、TDCR3及びTDCR4と呼ばれる。以前に非活動
状態にあったチャネルが活動化された場合、DMAC2
2内の当該の制御データレジスタ空間は、最初ホストプ
ロセッサ2aによってSIOユニット26を介してロー
ドされる。送信チャネル処理に関連するコマンド連鎖動
作では、(既存の命令情報を使い果した後に)活動状態
の送信チャネルで動作を継続するための命令情報が、D
MAC22の指令下でホストメモリ2bから取り出され
、FIFO RAM16及びDMAC RAM24
内の当該の制御データレジスタTDCR1、TDCR3
、及びTDCR4に記憶される。
ャネルに専用の24ワード空間、すなわち各受信チャネ
ルに2ワード空間、各送信チャネルに2ワード空間を含
む。これらの空間は、それぞれのチャネルに関するDM
AC22の動作(及び間接的にはDMADB22A及び
MIO25の動作)を規定する命令情報を記憶するため
の制御レジスタとして使用される。このような命令情報
としては、後述のホストメモリに関するいつくかのアド
レス標識がある。各受信チャネルに関連する受信データ
制御レジスタは、RDCR3及びRDCR4と呼ばれる
。各送信チャネルに関連する送信データ制御レジスタは
、TDCR3及びTDCR4と呼ばれる。以前に非活動
状態にあったチャネルが活動化された場合、DMAC2
2内の当該の制御データレジスタ空間は、最初ホストプ
ロセッサ2aによってSIOユニット26を介してロー
ドされる。送信チャネル処理に関連するコマンド連鎖動
作では、(既存の命令情報を使い果した後に)活動状態
の送信チャネルで動作を継続するための命令情報が、D
MAC22の指令下でホストメモリ2bから取り出され
、FIFO RAM16及びDMAC RAM24
内の当該の制御データレジスタTDCR1、TDCR3
、及びTDCR4に記憶される。
【0043】同期部11で実行される、受信データ及び
送信データに関するIIM動作を、図6に示す。各チャ
ネルは、「クリア」形式又はHDLC等の標準プロトコ
ル形式でデータを処理できるようにプログラミング可能
である。クリア形式のデータ(通常、ディジタル音声及
びファクシミリなど)は「クリア」、すなわち修正なし
かつ冗長検査なしで渡される。プロトコル形式のデータ
は、修正され検査される。
送信データに関するIIM動作を、図6に示す。各チャ
ネルは、「クリア」形式又はHDLC等の標準プロトコ
ル形式でデータを処理できるようにプログラミング可能
である。クリア形式のデータ(通常、ディジタル音声及
びファクシミリなど)は「クリア」、すなわち修正なし
かつ冗長検査なしで渡される。プロトコル形式のデータ
は、修正され検査される。
【0044】プロトコル形式の受信データに関して、受
信回路14(単一のユニットとして示されているが、受
信回路14は2つの別個のユニット、すなわちビット処
理用の1ユニット、及びバイト処理用の別の1ユニット
を含む)は、冗長(埋込み)ビット及び特別のフラグ文
字を検出して捨て、ホストプロセッサにフラグの受取り
及び検出されたエラー状態を知らせるための割込み状況
条件を設定する(図6、操作40、41)。受信ユニッ
トはまた、巡回冗長検査(CRC)及びアドレス認識機
能を実行する。アドレス認識は、当該のホストシステム
による処理又は記憶を意図しないデータ、たとえばII
Mによって捨てられるデータを検出するために使用され
る(それによってホストバス及びシステムにかかる処理
の負担を低減することができる)。
信回路14(単一のユニットとして示されているが、受
信回路14は2つの別個のユニット、すなわちビット処
理用の1ユニット、及びバイト処理用の別の1ユニット
を含む)は、冗長(埋込み)ビット及び特別のフラグ文
字を検出して捨て、ホストプロセッサにフラグの受取り
及び検出されたエラー状態を知らせるための割込み状況
条件を設定する(図6、操作40、41)。受信ユニッ
トはまた、巡回冗長検査(CRC)及びアドレス認識機
能を実行する。アドレス認識は、当該のホストシステム
による処理又は記憶を意図しないデータ、たとえばII
Mによって捨てられるデータを検出するために使用され
る(それによってホストバス及びシステムにかかる処理
の負担を低減することができる)。
【0045】前記の諸操作は、各チャネルにおけるビッ
ト及びバイトの処理中に、受信回路14によって実行さ
れる。捨てられなかった受信データバイトは、RFM1
7に渡され、受信回路14によってFIFO RAM
16に記憶される(操作42)、すなわちそれぞれのチ
ャネルのRDCR2レジスタの4バイト位置のうちの選
択された1バイト位置に記憶される。RFM17は、任
意のRDCR2空間がいつ4つの受信データバイトで一
杯になるかを検出し、一杯になったとき、それぞれの受
信チャネルに関する要求をDMARQユニット23にセ
ットする(操作43)。
ト及びバイトの処理中に、受信回路14によって実行さ
れる。捨てられなかった受信データバイトは、RFM1
7に渡され、受信回路14によってFIFO RAM
16に記憶される(操作42)、すなわちそれぞれのチ
ャネルのRDCR2レジスタの4バイト位置のうちの選
択された1バイト位置に記憶される。RFM17は、任
意のRDCR2空間がいつ4つの受信データバイトで一
杯になるかを検出し、一杯になったとき、それぞれの受
信チャネルに関する要求をDMARQユニット23にセ
ットする(操作43)。
【0046】DMARQ23の要求位置は、DMAC2
2によって繰り返し走査される。活動状態の要求が見つ
かった場合、DMAC22は、DMAC22、DMAD
B22A、及びMIO25による非同期的調整活動を開
始し、受信データをFIFORAM16の関連するチャ
ネルのRDCR2空間からホストメモリ2bの選択され
たワード空間に転送させる(これは通常ホストメモリの
予め割り振られたワード空間のブロックの一部分であり
、「循環バッファ」として構成され、アクセスされる)
。このタイプの転送の調整態様は、本発明の重要な一部
分である。転送が完了されるか、又はエラー状態のため
に打ち切られると、DMARQ23から関連する要求が
(転送が完了した場合はDMADB22Aによって、又
は転送エラーのために打ち切られた場合はDMACによ
って)リセットされる。
2によって繰り返し走査される。活動状態の要求が見つ
かった場合、DMAC22は、DMAC22、DMAD
B22A、及びMIO25による非同期的調整活動を開
始し、受信データをFIFORAM16の関連するチャ
ネルのRDCR2空間からホストメモリ2bの選択され
たワード空間に転送させる(これは通常ホストメモリの
予め割り振られたワード空間のブロックの一部分であり
、「循環バッファ」として構成され、アクセスされる)
。このタイプの転送の調整態様は、本発明の重要な一部
分である。転送が完了されるか、又はエラー状態のため
に打ち切られると、DMARQ23から関連する要求が
(転送が完了した場合はDMADB22Aによって、又
は転送エラーのために打ち切られた場合はDMACによ
って)リセットされる。
【0047】送信回路15は、任意の送信チャネルにお
けるプロトコルによって形式設定されたデータに関して
逆の機能を実行する(受信回路14と同様に、送信回路
15は実際には2つのユニット、すなわちバイト処理用
の1ユニット、及びビット処理用の1ユニットを含む)
。プロトコル形式を有しない送信データはクリアで渡さ
れる。送信回路15が活動状態の送信チャネルにサービ
スしており、かつデータを処理する準備ができている場
合、TFM18は、それぞれのチャネルに割り振られた
FIFO RAM16のTDCR2空間から1バイト
又は複数バイトのデータを取り出すように促される(操
作46)。TFM18は、取り出したデータを送信回路
15に直接転送する。FIFO RAM16にアクセ
スしている間に、TFM18は、それぞれのチャネルの
TDCR2レジスタが最後の取出しによって空になった
かどうかを検出する。空になると、TFM18はそれぞ
れの送信チャネルに関する要求をDMARQ23にセッ
トする(操作46)。受信チャネルに関連する要求処理
の場合と同様に、DMARQ23をDMAC22が走査
し、DMAC22は、活動状態の要求を見つけた場合、
(DMAC22、DMADB22A、及びMIO25に
よる)非同期調整活動を開始し、1ワードの送信データ
をホストメモリ2bからFIFO RAM16のそれ
ぞれのチャネルのTDCR2空間に取り出しを開始する
。
けるプロトコルによって形式設定されたデータに関して
逆の機能を実行する(受信回路14と同様に、送信回路
15は実際には2つのユニット、すなわちバイト処理用
の1ユニット、及びビット処理用の1ユニットを含む)
。プロトコル形式を有しない送信データはクリアで渡さ
れる。送信回路15が活動状態の送信チャネルにサービ
スしており、かつデータを処理する準備ができている場
合、TFM18は、それぞれのチャネルに割り振られた
FIFO RAM16のTDCR2空間から1バイト
又は複数バイトのデータを取り出すように促される(操
作46)。TFM18は、取り出したデータを送信回路
15に直接転送する。FIFO RAM16にアクセ
スしている間に、TFM18は、それぞれのチャネルの
TDCR2レジスタが最後の取出しによって空になった
かどうかを検出する。空になると、TFM18はそれぞ
れの送信チャネルに関する要求をDMARQ23にセッ
トする(操作46)。受信チャネルに関連する要求処理
の場合と同様に、DMARQ23をDMAC22が走査
し、DMAC22は、活動状態の要求を見つけた場合、
(DMAC22、DMADB22A、及びMIO25に
よる)非同期調整活動を開始し、1ワードの送信データ
をホストメモリ2bからFIFO RAM16のそれ
ぞれのチャネルのTDCR2空間に取り出しを開始する
。
【0048】送信回路15は、プロトコルによって形式
設定されたチャネルの送信バイトを処理し、適切なとこ
ろにフラグ文字及び巡回冗長検査文字を挿入し(操作4
7)、つづいてさらに個々のビットを処理し、適切なと
きに、すなわち非フラグデータ・ビット列がフラグ記号
として現れるのを防止するために必要な場合、埋込みビ
ットを追加する(操作48)。
設定されたチャネルの送信バイトを処理し、適切なとこ
ろにフラグ文字及び巡回冗長検査文字を挿入し(操作4
7)、つづいてさらに個々のビットを処理し、適切なと
きに、すなわち非フラグデータ・ビット列がフラグ記号
として現れるのを防止するために必要な場合、埋込みビ
ットを追加する(操作48)。
【0049】後述の問題の説明に関して興味深いことに
、受信回路14及びRFM17のレジスタは、任意の瞬
間に任意の受信チャネルに関する受信データを最大4バ
イトまで保持できるバッファパイプラインを形成し、T
FM18及び送信回路15のレジスタは、任意の送信チ
ャネルの送信データに関して同様に容量4バイトのパイ
プラインを形成する。通常、任意の受信チャネルに関し
て非フラグ受信データバイトの最終ビットが受信された
場合、そのチャネルのRDCR2空間がそのときに一杯
になっていないなら、そのバイトは直ちにFIFORA
M16に転送される。RDCR2空間が一杯になってい
る場合、RFM17は、そのチャネルにオーバーラン・
エラーが課せられる前に、その空間を空にするため、当
該のチャネルの連続した4バイト受信に関連する「待ち
時間」を有する(4バイトの時間は、受信回路14及び
RFM17での3バイトのパイプラインバッファリング
、及びもう1つのバイトすなわち第4バイトのビットの
組立てを実施するための受信回路14のビット処理部の
容量を考慮に入れたものである)。
、受信回路14及びRFM17のレジスタは、任意の瞬
間に任意の受信チャネルに関する受信データを最大4バ
イトまで保持できるバッファパイプラインを形成し、T
FM18及び送信回路15のレジスタは、任意の送信チ
ャネルの送信データに関して同様に容量4バイトのパイ
プラインを形成する。通常、任意の受信チャネルに関し
て非フラグ受信データバイトの最終ビットが受信された
場合、そのチャネルのRDCR2空間がそのときに一杯
になっていないなら、そのバイトは直ちにFIFORA
M16に転送される。RDCR2空間が一杯になってい
る場合、RFM17は、そのチャネルにオーバーラン・
エラーが課せられる前に、その空間を空にするため、当
該のチャネルの連続した4バイト受信に関連する「待ち
時間」を有する(4バイトの時間は、受信回路14及び
RFM17での3バイトのパイプラインバッファリング
、及びもう1つのバイトすなわち第4バイトのビットの
組立てを実施するための受信回路14のビット処理部の
容量を考慮に入れたものである)。
【0050】同様な考慮から、送信チャネルのTDCR
2レジスタが最初に空になった時点から、TFM18は
、そのチャネルでアンダーランエラー状態が発生する前
に、そのチャネルに関して追加の4バイトを伝送するの
に必要な時間に対応する待ち時間又は遅延時間を有する
ことがわかる。
2レジスタが最初に空になった時点から、TFM18は
、そのチャネルでアンダーランエラー状態が発生する前
に、そのチャネルに関して追加の4バイトを伝送するの
に必要な時間に対応する待ち時間又は遅延時間を有する
ことがわかる。
【0051】2.問題の説明
いま提起されたバス制約の問題を図3に示し、現在の解
決法を図4に示す。図3は、従来の(IDLC)装置で
は、C1やC2などの個々のチャネルに関する(FIF
O RAM16とホストメモリ2b間の)データ転送
を準備するのに必要な動作と、その転送を実行するため
の動作が、別々に実行されることを示す。すなわち、準
備機能は単独で活動するDMAC22によって実行され
、転送に関連する機能は調整して活動するDMAC22
とMIO25によって実行される。DMAC22による
準備動作(DMAC RAM24からの命令情報の取
出し、MIO25への制御情報の転送、及び受信チャネ
ルがサービスを受けている場合はFIFO RAM1
6からの受信データの取出し)は、(約)1.2マイク
ロ秒かかる(図3の第1行)。インターロックされた調
整関係にあるDMAC22及びMIO25によるバスデ
ータ転送(MIO25によるシステムバスを介した4デ
ータバイトの転送、動作が送信チャネルに関する場合は
DMAC22によるMIO25からFIFORAM16
への送信データの転送、転送終了時のDMAC22によ
る関連するDMARQ23の要求のリセット、またエラ
ーのために動作が打ち切られた場合エラー状態の処理及
びDMAC22によるDMARQ23の要求のリセット
)は、(約)1.0マイクロ秒かかる(図3の第2行)
。 したがって、1つのチャネルに関する終了準備とデータ
転送には、データ・ワード転送毎に(約)2.2マイク
ロ秒かかる。
決法を図4に示す。図3は、従来の(IDLC)装置で
は、C1やC2などの個々のチャネルに関する(FIF
O RAM16とホストメモリ2b間の)データ転送
を準備するのに必要な動作と、その転送を実行するため
の動作が、別々に実行されることを示す。すなわち、準
備機能は単独で活動するDMAC22によって実行され
、転送に関連する機能は調整して活動するDMAC22
とMIO25によって実行される。DMAC22による
準備動作(DMAC RAM24からの命令情報の取
出し、MIO25への制御情報の転送、及び受信チャネ
ルがサービスを受けている場合はFIFO RAM1
6からの受信データの取出し)は、(約)1.2マイク
ロ秒かかる(図3の第1行)。インターロックされた調
整関係にあるDMAC22及びMIO25によるバスデ
ータ転送(MIO25によるシステムバスを介した4デ
ータバイトの転送、動作が送信チャネルに関する場合は
DMAC22によるMIO25からFIFORAM16
への送信データの転送、転送終了時のDMAC22によ
る関連するDMARQ23の要求のリセット、またエラ
ーのために動作が打ち切られた場合エラー状態の処理及
びDMAC22によるDMARQ23の要求のリセット
)は、(約)1.0マイクロ秒かかる(図3の第2行)
。 したがって、1つのチャネルに関する終了準備とデータ
転送には、データ・ワード転送毎に(約)2.2マイク
ロ秒かかる。
【0052】「最悪ケース」のIBMマイクロチャネル
・バス制約条件(最大のアダプタ数がチャネルに接続さ
れ、すべてのアダプタがそのバスに関する最大速度で動
作し、その結果、バスは常にバスアクセスに対する「プ
リエンプト」要求が保留中となり、「公平さ」上からど
のバスアダプタも、200マイクロ秒毎に1アクセスに
制限される、この可能性はかなり小さい)に関してこれ
を考察すると、DMAC22及びMIO25は任意の4
00マイクロ秒の周期に15.6(2×7.8)マイク
ロ秒の最小バスアクセス時間を期待できる。12本のチ
ャネルが同時にバス転送準備ができている場合、その周
期の始めに、従来のDMAC22及びMIO25は、理
論上、その周期内に必要とされる12ワード転送のうち
の8ワードだけ(すなわち、バスアクセスのための調停
間に最初の転送を準備し、最初の1マイクロ秒のアクセ
ス中に最初の転送を実行し、次の6.6マイクロ秒間に
さらに3つの命令の準備及び転送を実行することによっ
て、各7.8マイクロ秒のアクセス中に4ワードの転送
)実行できた。したがって、これらの最悪ケースの条件
下では、従来のユニットを使用すると、1以上の受信チ
ャネルオーバーラン・エラー又は送信チャネルアンダー
ラン・エラーを生じる。
・バス制約条件(最大のアダプタ数がチャネルに接続さ
れ、すべてのアダプタがそのバスに関する最大速度で動
作し、その結果、バスは常にバスアクセスに対する「プ
リエンプト」要求が保留中となり、「公平さ」上からど
のバスアダプタも、200マイクロ秒毎に1アクセスに
制限される、この可能性はかなり小さい)に関してこれ
を考察すると、DMAC22及びMIO25は任意の4
00マイクロ秒の周期に15.6(2×7.8)マイク
ロ秒の最小バスアクセス時間を期待できる。12本のチ
ャネルが同時にバス転送準備ができている場合、その周
期の始めに、従来のDMAC22及びMIO25は、理
論上、その周期内に必要とされる12ワード転送のうち
の8ワードだけ(すなわち、バスアクセスのための調停
間に最初の転送を準備し、最初の1マイクロ秒のアクセ
ス中に最初の転送を実行し、次の6.6マイクロ秒間に
さらに3つの命令の準備及び転送を実行することによっ
て、各7.8マイクロ秒のアクセス中に4ワードの転送
)実行できた。したがって、これらの最悪ケースの条件
下では、従来のユニットを使用すると、1以上の受信チ
ャネルオーバーラン・エラー又は送信チャネルアンダー
ラン・エラーを生じる。
【0053】12本のチャネルがすべて同時に準備がで
きる確率は小さく、また予想されるこのような発生頻度
はきわめて低いが、同じ400マイクロ秒の周期中にコ
マンド連鎖活動が必要となる確率が加わることを考慮し
、かつこれよりも低い設計目標を選択した場合にチャネ
ルのオーバーランエラー及びアンダーランエラーと再送
信プロセスを処理するためにシステムに追加される予想
負荷を評価すると、この最低限の設計目標は妥当と考え
られる。したがって、少なくとも前記の能力目標を目指
した再設計は望ましいと考えられた。
きる確率は小さく、また予想されるこのような発生頻度
はきわめて低いが、同じ400マイクロ秒の周期中にコ
マンド連鎖活動が必要となる確率が加わることを考慮し
、かつこれよりも低い設計目標を選択した場合にチャネ
ルのオーバーランエラー及びアンダーランエラーと再送
信プロセスを処理するためにシステムに追加される予想
負荷を評価すると、この最低限の設計目標は妥当と考え
られる。したがって、少なくとも前記の能力目標を目指
した再設計は望ましいと考えられた。
【0054】図4は、2マイクロチャネル・バスアクセ
ス時間内に12以上のチャネルワード転送を処理できる
IIM非同期論理回路を再設計するために、現在採用さ
れている方法を簡潔に示している。(FIFO RA
M16とホストメモリ2b間の)受信データ転送及び送
信データ転送は、異なる処理を必要とする。一連の受信
データ転送に使用される方法は、図4の最初の2行に示
されており、一連の送信データ転送に使用される方法は
、図4の最後の2行に示されている。受信転送と送信転
送が交互する混合形態の処理及びそのタイミングは、図
4の説明から容易に理解される。
ス時間内に12以上のチャネルワード転送を処理できる
IIM非同期論理回路を再設計するために、現在採用さ
れている方法を簡潔に示している。(FIFO RA
M16とホストメモリ2b間の)受信データ転送及び送
信データ転送は、異なる処理を必要とする。一連の受信
データ転送に使用される方法は、図4の最初の2行に示
されており、一連の送信データ転送に使用される方法は
、図4の最後の2行に示されている。受信転送と送信転
送が交互する混合形態の処理及びそのタイミングは、図
4の説明から容易に理解される。
【0055】連続の受信チャネル(RCV CHL)
C1−C6に関する受信データ転送では、DMAC22
は、前と同様に各転送のために命令及び受信データを準
備するように動作し、1本のチャネル(C2、C3、.
..)に関してDMACがそのように動作している間に
、機能が修正されていないMIOユニット25と協調し
て活動する新たに追加されたDMADBユニット22A
が、すでに準備のできたチャネル(C1、C2、...
)に関するデータ転送を1.0マイクロ秒間に完了する
。十分興味深いことに、DMADB/MIOの動作を待
たなければならないという時間的制約なしに、DMAC
22は、図4に示すように、各転送に必要な命令及び受
信データを同じ1.0マイクロ秒(命令を取り出すため
に0.6マイクロ秒、転送される受信データワードを取
り出すために0.4マイクロ秒)の間隔中に準備し又は
取り出すことができる。
C1−C6に関する受信データ転送では、DMAC22
は、前と同様に各転送のために命令及び受信データを準
備するように動作し、1本のチャネル(C2、C3、.
..)に関してDMACがそのように動作している間に
、機能が修正されていないMIOユニット25と協調し
て活動する新たに追加されたDMADBユニット22A
が、すでに準備のできたチャネル(C1、C2、...
)に関するデータ転送を1.0マイクロ秒間に完了する
。十分興味深いことに、DMADB/MIOの動作を待
たなければならないという時間的制約なしに、DMAC
22は、図4に示すように、各転送に必要な命令及び受
信データを同じ1.0マイクロ秒(命令を取り出すため
に0.6マイクロ秒、転送される受信データワードを取
り出すために0.4マイクロ秒)の間隔中に準備し又は
取り出すことができる。
【0056】したがって、たとえば、チャネルC2に関
する受信転送準備をする際に、DMAC22は(DMA
C RAM24から)その転送に必要な(転送される
受信データバイト数、及びそのデータが記憶されるホス
トメモリ2bの宛先アドレスを含む)制御情報、及び(
FIFO RAM16のRDCR2/C2から)転送
される受信データワードを取り出す。これが行われてい
る間に、MIO25がシステムバスに対するアクセス権
を得、かつMIO25とDMADB22Aがすでに準備
のできた受信チャネルC1に関する転送(これはC2に
関する準備が完了する時刻までに完了する)を実行して
いるものと仮定する。したがって、DMACがC2に関
する準備を完了し次第、DMAC22とDMADB22
Aは瞬時に情報を「スワップ」する。すなわち、DMA
DB22AはC2に関する準備ができたばかりの制御情
報及び受信データを受け取り、DMAC22はC1に関
する転送状態を示す状態情報を受け取る。次に、DMA
DB22A及びMIO25がC2に関する受信転送を処
理している間に、DMAC22はC3に関する転送準備
をする。図4には示されていないが、DMAC22はま
た、C3の準備をする間にC1に関するDMARQ23
の要求をリセットし、かつC1に関する状態スワップ中
に受け取ったエラー指示の処理をしている。
する受信転送準備をする際に、DMAC22は(DMA
C RAM24から)その転送に必要な(転送される
受信データバイト数、及びそのデータが記憶されるホス
トメモリ2bの宛先アドレスを含む)制御情報、及び(
FIFO RAM16のRDCR2/C2から)転送
される受信データワードを取り出す。これが行われてい
る間に、MIO25がシステムバスに対するアクセス権
を得、かつMIO25とDMADB22Aがすでに準備
のできた受信チャネルC1に関する転送(これはC2に
関する準備が完了する時刻までに完了する)を実行して
いるものと仮定する。したがって、DMACがC2に関
する準備を完了し次第、DMAC22とDMADB22
Aは瞬時に情報を「スワップ」する。すなわち、DMA
DB22AはC2に関する準備ができたばかりの制御情
報及び受信データを受け取り、DMAC22はC1に関
する転送状態を示す状態情報を受け取る。次に、DMA
DB22A及びMIO25がC2に関する受信転送を処
理している間に、DMAC22はC3に関する転送準備
をする。図4には示されていないが、DMAC22はま
た、C3の準備をする間にC1に関するDMARQ23
の要求をリセットし、かつC1に関する状態スワップ中
に受け取ったエラー指示の処理をしている。
【0057】送信データ転送の際には、DMADB22
A及びMIO25がすでに準備ができたチャネルに関す
る送信データの取出しを実行している間に、DMAC2
2は1本のチャネルに関する制御情報を準備し、次の動
作間隔中にDMAC22は送信データのFIFO R
AM16への転送を完了し、同時に他のバス転送準備を
する。したがって、たとえば1つの動作間隔50中に、
DMAC22はC3に関する送信データ転送の準備をし
、送信データ、すなわち前の間隔51中にDMADB2
2A及びMIO25によってホストメモリから取り出さ
れたデータをC1に関するFIFO RAM16に記
憶し、DMADB22AとMIO25は協調して活動し
て、間隔51中にDMAC22によって準備されたC2
に関する転送を実行する。これらの動作が完了したとき
、瞬時52に、DMAC22とDMADB22Aは情報
をスワップするが、この場合は受信データ転送に関して
両者がスワップする情報より多くの情報をスワップする
。瞬時52での「送信」スワップでは、DMAC22は
、C3に関する制御情報をDMADB22Aに渡し、D
MADB22Aから以前に渡されたC2に関する制御情
報、C2に関する送信データ転送状態(完了又はエラー
による打ち切り)、及び取り出されたC2に関する送信
データ(取り出しが成功した場合)を受け取る。したが
って、次の間隔53中で、DMAC22は、受け取った
C2に関する制御情報を使用して、FIFO RAM
16のTDCR2/C2に関する送信データの転送を完
了し、C2に関するDMARQ23の要求をリセットし
、同時にC4に関する準備活動を実行し、その間にDM
ADB/MIOはC3の送信データに関するバス転送活
動を実行する。
A及びMIO25がすでに準備ができたチャネルに関す
る送信データの取出しを実行している間に、DMAC2
2は1本のチャネルに関する制御情報を準備し、次の動
作間隔中にDMAC22は送信データのFIFO R
AM16への転送を完了し、同時に他のバス転送準備を
する。したがって、たとえば1つの動作間隔50中に、
DMAC22はC3に関する送信データ転送の準備をし
、送信データ、すなわち前の間隔51中にDMADB2
2A及びMIO25によってホストメモリから取り出さ
れたデータをC1に関するFIFO RAM16に記
憶し、DMADB22AとMIO25は協調して活動し
て、間隔51中にDMAC22によって準備されたC2
に関する転送を実行する。これらの動作が完了したとき
、瞬時52に、DMAC22とDMADB22Aは情報
をスワップするが、この場合は受信データ転送に関して
両者がスワップする情報より多くの情報をスワップする
。瞬時52での「送信」スワップでは、DMAC22は
、C3に関する制御情報をDMADB22Aに渡し、D
MADB22Aから以前に渡されたC2に関する制御情
報、C2に関する送信データ転送状態(完了又はエラー
による打ち切り)、及び取り出されたC2に関する送信
データ(取り出しが成功した場合)を受け取る。したが
って、次の間隔53中で、DMAC22は、受け取った
C2に関する制御情報を使用して、FIFO RAM
16のTDCR2/C2に関する送信データの転送を完
了し、C2に関するDMARQ23の要求をリセットし
、同時にC4に関する準備活動を実行し、その間にDM
ADB/MIOはC3の送信データに関するバス転送活
動を実行する。
【0058】3.信号の表示
以下の諸節では、DMARQ23、FIFO RAM
16、DMAC RAM24、DMAC22、DMA
DB22A、及びMIO25を含む非同期部の各種ユニ
ットの説明を行う。これらのユニット間で転送される信
号は、図面では“A_B_C”の表示法を使用して示す
。 ここで、Cは通常は信号又は機能を識別し、AとBは通
常は信号が渡される起点ユニットと宛先ユニットを識別
する。場合によっては、(図面の状況から自明と考えら
れ、他の図面での表示に関して混乱が生じそうにない場
合)、起点ユニット又は宛先ユニットの識別は省略する
ことができる。これらのカテゴリーのどれにも入らない
表示については、当該の信号を最初に参照する際に個別
に説明する。
16、DMAC RAM24、DMAC22、DMA
DB22A、及びMIO25を含む非同期部の各種ユニ
ットの説明を行う。これらのユニット間で転送される信
号は、図面では“A_B_C”の表示法を使用して示す
。 ここで、Cは通常は信号又は機能を識別し、AとBは通
常は信号が渡される起点ユニットと宛先ユニットを識別
する。場合によっては、(図面の状況から自明と考えら
れ、他の図面での表示に関して混乱が生じそうにない場
合)、起点ユニット又は宛先ユニットの識別は省略する
ことができる。これらのカテゴリーのどれにも入らない
表示については、当該の信号を最初に参照する際に個別
に説明する。
【0059】4.DMARQの説明
DMARQ(直接メモリアクセス要求待ち行列)ユニッ
ト22Aは、受信データ及び送信データ転送のためのI
IMの同期部と非同期部間の主インターフェースを構成
する。図7を参照すると、DMARQ22Aは、それぞ
れ受信チャネル及び送信チャネルに関するデータ転送要
求を処理するための、別々の部60及び61を含む。要
求はRFM17によって部60に入れられ、TFM18
によって部61に入れられる。
ト22Aは、受信データ及び送信データ転送のためのI
IMの同期部と非同期部間の主インターフェースを構成
する。図7を参照すると、DMARQ22Aは、それぞ
れ受信チャネル及び送信チャネルに関するデータ転送要
求を処理するための、別々の部60及び61を含む。要
求はRFM17によって部60に入れられ、TFM18
によって部61に入れられる。
【0060】受信待ち行列部60は、各受信チャネル毎
に1個ずつ(すなわちIIM構成内で6つ)1組の要求
待ち行列ラッチ62、このラッチ62にセット信号及び
リセット信号を送るための入力選択論理回路63、個々
の(受信チャネル)要求の状態をRFM17に同期的に
提示するための出力多重化(mux)回路64、及び個
々の要求状態をDMAC22に非同期的に提示するため
の出力多重化回路65を備えている。
に1個ずつ(すなわちIIM構成内で6つ)1組の要求
待ち行列ラッチ62、このラッチ62にセット信号及び
リセット信号を送るための入力選択論理回路63、個々
の(受信チャネル)要求の状態をRFM17に同期的に
提示するための出力多重化(mux)回路64、及び個
々の要求状態をDMAC22に非同期的に提示するため
の出力多重化回路65を備えている。
【0061】送信待ち行列部61は、各送信チャネル毎
に1個ずつの要求待ち行列ラッチ66、セット信号及び
リセット信号を個々のラッチに送るための入力選択論理
回路67、個々の(送信チャネル)要求状態をTFM1
8に同期的に指示するための出力多重化回路68、及び
個々の要求状態をDMAC22に非同期的に指示するた
めの出力多重化回路69を備えている。
に1個ずつの要求待ち行列ラッチ66、セット信号及び
リセット信号を個々のラッチに送るための入力選択論理
回路67、個々の(送信チャネル)要求状態をTFM1
8に同期的に指示するための出力多重化回路68、及び
個々の要求状態をDMAC22に非同期的に指示するた
めの出力多重化回路69を備えている。
【0062】各チャネルに対する同期サービス間隔中に
、資源管理(RSM)ユニット20(図2)は、現在サ
ービスを受けているチャネルを指定する時間スロット指
示信号RSM_TSIを発生する。これらの信号は、I
IMの同期部のすべてのユニット、及びDMARQ22
Aの入力選択論理回路と出力多重化回路に供給される。 DMARQ22A内で、RSM_TSIは、RFM17
及びTFM18によって活動化された入力設定信号が印
加されるラッチ、及びそれぞれ多重化回路64及び68
を介してRFM17及びTFM18に同期的に提示され
る要求状態を有効に指定する。
、資源管理(RSM)ユニット20(図2)は、現在サ
ービスを受けているチャネルを指定する時間スロット指
示信号RSM_TSIを発生する。これらの信号は、I
IMの同期部のすべてのユニット、及びDMARQ22
Aの入力選択論理回路と出力多重化回路に供給される。 DMARQ22A内で、RSM_TSIは、RFM17
及びTFM18によって活動化された入力設定信号が印
加されるラッチ、及びそれぞれ多重化回路64及び68
を介してRFM17及びTFM18に同期的に提示され
る要求状態を有効に指定する。
【0063】信号RFM_SETは、受信要求待ち行列
ラッチ62をセットするためのもので、RFM17によ
ってFIFO RAM16の受信データレジスタ(R
DCR2)に転送されたバイトがその受信データレジス
タを満たしたことをRFM17が検出すると、RFM1
7によって活動化される。RFM_SETは、入力選択
論理回路63により、RSM_TSIによってそのとき
指定された(受信)チャネル(すなわち、そのときRF
M17からサービスを受けているチャネル)に割り当て
られた受信要求待ち行列ラッチ62に送られる。またR
SM_TSIは、対応する受信チャネルへのサービス、
及びRFM17への現在の対応する信号指示と同期して
、多重化回路64を、ラッチ62の(セット/リセット
)状態を順次走査するように条件づける。これによって
、RFM17はそれが活動化した受信チャネルデータ転
送要求の状況を追跡することができる。
ラッチ62をセットするためのもので、RFM17によ
ってFIFO RAM16の受信データレジスタ(R
DCR2)に転送されたバイトがその受信データレジス
タを満たしたことをRFM17が検出すると、RFM1
7によって活動化される。RFM_SETは、入力選択
論理回路63により、RSM_TSIによってそのとき
指定された(受信)チャネル(すなわち、そのときRF
M17からサービスを受けているチャネル)に割り当て
られた受信要求待ち行列ラッチ62に送られる。またR
SM_TSIは、対応する受信チャネルへのサービス、
及びRFM17への現在の対応する信号指示と同期して
、多重化回路64を、ラッチ62の(セット/リセット
)状態を順次走査するように条件づける。これによって
、RFM17はそれが活動化した受信チャネルデータ転
送要求の状況を追跡することができる。
【0064】また受信要求待ち行列ラッチ62の受信チ
ャネル要求は、多重化回路65に供給される受信チャネ
ルカウント信号DMAC_RV_CNTによって、チャ
ネル番号順にDMAC22によって非同期的にポーリン
グされる。活動(セットされた)要求が検出されると、
DMAC22は当該の受信チャネルに関するサービスを
開始し、受信データをFIFO RAM16のその受
信チャネルのRDCR2レジスタからホストメモリ2b
に非同期的に転送する。ホストメモリ2bに関するデー
タ転送は、後述するようにDMADB22A及びMIO
25によって実行される。
ャネル要求は、多重化回路65に供給される受信チャネ
ルカウント信号DMAC_RV_CNTによって、チャ
ネル番号順にDMAC22によって非同期的にポーリン
グされる。活動(セットされた)要求が検出されると、
DMAC22は当該の受信チャネルに関するサービスを
開始し、受信データをFIFO RAM16のその受
信チャネルのRDCR2レジスタからホストメモリ2b
に非同期的に転送する。ホストメモリ2bに関するデー
タ転送は、後述するようにDMADB22A及びMIO
25によって実行される。
【0065】受信チャネル要求の関連動作が正しく実行
されると、DMADB22Aは入力選択論理回路63に
関してDMADB_RCV_RESET及びDMADB
_CH_NBRを同時に活動化する。DMADB_CH
_NBRは、DMADB22Aによるサービスを受けた
ばかりの受信チャネル番号を示し、DMADB_RCV
_RESETと共に、入力選択論理回路63に、リセッ
ト入力を当該の受信チャネルに割り当てられた受信要求
待ち行列ラッチ位置に送る。受信チャネル要求に関する
動作がエラーのために打ち切られた場合、FIFO
RAM16からホストメモリ2bまでの受信データ転送
経路のどこでエラーが発生したかに応じて、入力選択論
理回路63は、DMAC_RCV_RESET及びDM
AC_CH_NBRによって、又はDMADB_RCV
_RESET及びDMADB_CH_NBRによって活
動化され、当該要求をリセットし、FIFO RAM
16からの情報の読出し動作中にエラーが発生した場合
は、リセットはDMAC22によって制御されるが、シ
ステムバス又はホストメモリ2bに関するエラーが発生
した場合は、リセットはDMADB22Aによって制御
される。
されると、DMADB22Aは入力選択論理回路63に
関してDMADB_RCV_RESET及びDMADB
_CH_NBRを同時に活動化する。DMADB_CH
_NBRは、DMADB22Aによるサービスを受けた
ばかりの受信チャネル番号を示し、DMADB_RCV
_RESETと共に、入力選択論理回路63に、リセッ
ト入力を当該の受信チャネルに割り当てられた受信要求
待ち行列ラッチ位置に送る。受信チャネル要求に関する
動作がエラーのために打ち切られた場合、FIFO
RAM16からホストメモリ2bまでの受信データ転送
経路のどこでエラーが発生したかに応じて、入力選択論
理回路63は、DMAC_RCV_RESET及びDM
AC_CH_NBRによって、又はDMADB_RCV
_RESET及びDMADB_CH_NBRによって活
動化され、当該要求をリセットし、FIFO RAM
16からの情報の読出し動作中にエラーが発生した場合
は、リセットはDMAC22によって制御されるが、シ
ステムバス又はホストメモリ2bに関するエラーが発生
した場合は、リセットはDMADB22Aによって制御
される。
【0066】受信チャネル要求がリセットされた後、当
該要求の状況が次に多重化回路64を介してRFM17
に提示されると、RFM17は当該受信チャネルに関す
るその内部状態指示をリセットし、より多くの受信デー
タが当該受信チャネルのFIFO RAM16のRD
CR2空間内に記憶できるようにする(そのチャネルに
関してRDCR1に記憶された命令情報は、そのチャネ
ルが依然として活動状態であることを示す)。
該要求の状況が次に多重化回路64を介してRFM17
に提示されると、RFM17は当該受信チャネルに関す
るその内部状態指示をリセットし、より多くの受信デー
タが当該受信チャネルのFIFO RAM16のRD
CR2空間内に記憶できるようにする(そのチャネルに
関してRDCR1に記憶された命令情報は、そのチャネ
ルが依然として活動状態であることを示す)。
【0067】TFM18によるFIFO RAM16
からの送信データの同期転送によって、関連する送信チ
ャネルに割り当てられたデータレジスタ(TDCR2)
が空になった場合、TFM18は入力選択論理回路67
に関するTFM_SETを活動化する。RSM_TSI
による同時チャネル指定は、入力選択論理回路67を、
関連する送信チャネルに割り当てられた送信要求待ち行
列ラッチ66にセット入力を供給するように条件づける
。 またRSM_TSIは、その出力がTFM18にまで延
びる多重化回路68を、関連するチャネルへのサービス
と同期して送信要求待ち行列ラッチ66状態を順次走査
し、それぞれの状態指示をTFM18に循環して提示す
るように条件づける。このようにして、TFM18は、
それが活動化した送信チャネル要求状態を追跡すること
ができる。
からの送信データの同期転送によって、関連する送信チ
ャネルに割り当てられたデータレジスタ(TDCR2)
が空になった場合、TFM18は入力選択論理回路67
に関するTFM_SETを活動化する。RSM_TSI
による同時チャネル指定は、入力選択論理回路67を、
関連する送信チャネルに割り当てられた送信要求待ち行
列ラッチ66にセット入力を供給するように条件づける
。 またRSM_TSIは、その出力がTFM18にまで延
びる多重化回路68を、関連するチャネルへのサービス
と同期して送信要求待ち行列ラッチ66状態を順次走査
し、それぞれの状態指示をTFM18に循環して提示す
るように条件づける。このようにして、TFM18は、
それが活動化した送信チャネル要求状態を追跡すること
ができる。
【0068】また送信要求待ち行列ラッチ66の送信チ
ャネル要求は、DMACから多重化回路69に供給され
る送信チャネルカウント信号DMAC_TX_CNTに
よって、チャネル番号順に非同期的に走査される。活動
(セットされた)要求が検出されると、当該チャネルに
関するサービスが開始され、ホストメモリ2bからFI
FO RAM16のそのチャネルのTDCR2レジス
タに送信データを転送する。
ャネル要求は、DMACから多重化回路69に供給され
る送信チャネルカウント信号DMAC_TX_CNTに
よって、チャネル番号順に非同期的に走査される。活動
(セットされた)要求が検出されると、当該チャネルに
関するサービスが開始され、ホストメモリ2bからFI
FO RAM16のそのチャネルのTDCR2レジス
タに送信データを転送する。
【0069】送信チャネル要求に関連する動作が正しく
実行されるか、又はエラーのために打ち切られると、D
MAC22は入力選択論理回路66に関するDMAC_
XMIT_RESET及びDMAC_CH_NBRを活
動化して、入力選択論理回路66に、リセット入力を当
該送信チャネルに割り当てられた要求ラッチ位置へ送る
。送信データ(FIFO RAM16内への)最終処
理又はそれに関する打切り状態の最終処理は、DMAC
22の責任であるので、DMADB22Aは、送信要求
リセット動作には関与しない。
実行されるか、又はエラーのために打ち切られると、D
MAC22は入力選択論理回路66に関するDMAC_
XMIT_RESET及びDMAC_CH_NBRを活
動化して、入力選択論理回路66に、リセット入力を当
該送信チャネルに割り当てられた要求ラッチ位置へ送る
。送信データ(FIFO RAM16内への)最終処
理又はそれに関する打切り状態の最終処理は、DMAC
22の責任であるので、DMADB22Aは、送信要求
リセット動作には関与しない。
【0070】FIFO RAM16への送信データ転
送が成功し、関連する送信チャネル要求がリセットされ
た後、それぞれの要求状態が次に多重化回路68を介し
てTFM18に提示されると、TFM18はその内部要
求状態指示をリセットして、それぞれの送信チャネルに
関してFIFO RAM16からさらに送信データを
取り出すことができるようにする。
送が成功し、関連する送信チャネル要求がリセットされ
た後、それぞれの要求状態が次に多重化回路68を介し
てTFM18に提示されると、TFM18はその内部要
求状態指示をリセットして、それぞれの送信チャネルに
関してFIFO RAM16からさらに送信データを
取り出すことができるようにする。
【0071】5.FIFO RAM及びDMAC
RAMアクセス FIFO RAM16にアクセスするためにRFM1
7、TFM18、及びDMAC22によって使用される
信号経路を、図8に示す。RAM記憶アレイ80は、選
択回路81を介してアドレス指定入力及びデータ入力を
受け取り、FIFO_DATAバス82を介して(命令
及び送信データ)出力をRFM17、TFM18、DM
AC22、及びSIO26に提示する(SIO26から
の入力及びSIO26への出力は、本発明にとって重要
でないので図面から省略する)。またRAMアレイ80
の出力はパリティ検査回路83によって検査される。こ
のパリティ検査回路83は、パリティエラーが検出され
た場合、バス82に接続されたユニットに関するFIF
O_ERRORを活動化する。
RAMアクセス FIFO RAM16にアクセスするためにRFM1
7、TFM18、及びDMAC22によって使用される
信号経路を、図8に示す。RAM記憶アレイ80は、選
択回路81を介してアドレス指定入力及びデータ入力を
受け取り、FIFO_DATAバス82を介して(命令
及び送信データ)出力をRFM17、TFM18、DM
AC22、及びSIO26に提示する(SIO26から
の入力及びSIO26への出力は、本発明にとって重要
でないので図面から省略する)。またRAMアレイ80
の出力はパリティ検査回路83によって検査される。こ
のパリティ検査回路83は、パリティエラーが検出され
た場合、バス82に接続されたユニットに関するFIF
O_ERRORを活動化する。
【0072】状態機械論理回路84は、RAMアレイ8
0の動作及び選択回路81を介してRAMアレイ80へ
のアドレス信号及びデータ信号の提示を制御する。RF
M17、TFM18、及びDMAC22からの、RAM
アレイ80への読出しアクセス及び書込みアクセスの要
求は、要求ラッチ85によってラッチされ、状態機械論
理回路84によって順次走査され、順次サービスされる
。要求がサービスを受けるために選択されると、選択回
路81は要求元に関連するアドレス情報をRAMアレイ
80に供給するように制御される。要求が書込み(記憶
)アクセス要求である場合、状態機械論理回路84は、
データを、部分的には要求タイプによって、部分的には
要求元からサービスを受けている関連するチャネルに関
して提示されたチャネル指定情報によって決定されるア
ドレスに要求元からRAMアレイのデータ入力に供給す
るように選択回路81を制御する。
0の動作及び選択回路81を介してRAMアレイ80へ
のアドレス信号及びデータ信号の提示を制御する。RF
M17、TFM18、及びDMAC22からの、RAM
アレイ80への読出しアクセス及び書込みアクセスの要
求は、要求ラッチ85によってラッチされ、状態機械論
理回路84によって順次走査され、順次サービスされる
。要求がサービスを受けるために選択されると、選択回
路81は要求元に関連するアドレス情報をRAMアレイ
80に供給するように制御される。要求が書込み(記憶
)アクセス要求である場合、状態機械論理回路84は、
データを、部分的には要求タイプによって、部分的には
要求元からサービスを受けている関連するチャネルに関
して提示されたチャネル指定情報によって決定されるア
ドレスに要求元からRAMアレイのデータ入力に供給す
るように選択回路81を制御する。
【0073】RFM及びTFMからの要求に関連して、
チャネルスロット標識RSM_TSIは、選択回路81
によって、それぞれのチャネルに割り当てられた4ワー
ド空間に関する部分アドレスに変換される。4つの空間
のうちの1つの選択は、要求元に応じて決定される。要
求元がRFM17である場合、当該チャネルに割り当て
られた空間RDCR1及びRDCR2はサブアドレスさ
れる。要求元がTFM18である場合、それぞれの空間
TDCR1及びTDCR2はサブアドレスされる。さら
に単一ワード空間の選択及び該当する場合のワード空間
の単一バイト位置の選択は、要求タイプに応じて決定さ
れる。
チャネルスロット標識RSM_TSIは、選択回路81
によって、それぞれのチャネルに割り当てられた4ワー
ド空間に関する部分アドレスに変換される。4つの空間
のうちの1つの選択は、要求元に応じて決定される。要
求元がRFM17である場合、当該チャネルに割り当て
られた空間RDCR1及びRDCR2はサブアドレスさ
れる。要求元がTFM18である場合、それぞれの空間
TDCR1及びTDCR2はサブアドレスされる。さら
に単一ワード空間の選択及び該当する場合のワード空間
の単一バイト位置の選択は、要求タイプに応じて決定さ
れる。
【0074】RFM17からの要求が読出し/取出し動
作のためのものである場合、要求RFM_RDが活動状
態になる。RFM17は命令情報だけを読み出すので、
関連するチャネルのRDCR1空間のアドレスが選択さ
れる。RFM17からの要求が書込み/記憶アクセス要
求である場合、RFM_DATAは書き込まれる受信デ
ータを表し、RFM_WRが活動状態である。この場合
、バイト位置ポインタRFM_BPPは検査され、RF
M_DATAにおける1バイトの受信データは、ポイン
タ情報に応じて、関連するチャネルのRDCR2又はR
DCR1のバイト位置に書き込まれる。
作のためのものである場合、要求RFM_RDが活動状
態になる。RFM17は命令情報だけを読み出すので、
関連するチャネルのRDCR1空間のアドレスが選択さ
れる。RFM17からの要求が書込み/記憶アクセス要
求である場合、RFM_DATAは書き込まれる受信デ
ータを表し、RFM_WRが活動状態である。この場合
、バイト位置ポインタRFM_BPPは検査され、RF
M_DATAにおける1バイトの受信データは、ポイン
タ情報に応じて、関連するチャネルのRDCR2又はR
DCR1のバイト位置に書き込まれる。
【0075】TFM18からの要求が読出しのためのも
のである場合、TFM_RD1又はTFM_RD2は活
動状態になる。TFM_RD1が活動状態である場合、
RSM_TSIによって指定されたチャネルのTDCR
1空間はアドレスされる。TFM_RD2が活動状態で
ある場合、(連続する2メモリアクセス・サイクルで)
関連するチャネルのTDCR1及びTDCR2空間の内
容がアドレスされ、FIFO_DATAバス上に取り出
される。TFM18は、そのバスから取り出された各ワ
ードを受け取り、当該の場合、バイトを部分選択する。 TFM18からの書込み要求は、TFM_WR1によっ
て示され、その結果、TFM_DATA/TDFSWに
提示された命令情報(TDFSW)がそれぞれのチャネ
ルのTDCR1空間に書き込まれる。
のである場合、TFM_RD1又はTFM_RD2は活
動状態になる。TFM_RD1が活動状態である場合、
RSM_TSIによって指定されたチャネルのTDCR
1空間はアドレスされる。TFM_RD2が活動状態で
ある場合、(連続する2メモリアクセス・サイクルで)
関連するチャネルのTDCR1及びTDCR2空間の内
容がアドレスされ、FIFO_DATAバス上に取り出
される。TFM18は、そのバスから取り出された各ワ
ードを受け取り、当該の場合、バイトを部分選択する。 TFM18からの書込み要求は、TFM_WR1によっ
て示され、その結果、TFM_DATA/TDFSWに
提示された命令情報(TDFSW)がそれぞれのチャネ
ルのTDCR1空間に書き込まれる。
【0076】DMAC22からの要求は、DMAC_F
IFO_REQによって示され、DMAC_CH_NB
Rの現状態によって指定されるチャネル(のTDCR1
空間)にアドレスされた要求として解釈される。各要求
(読出し又は書込み、1ワード又は2ワード)に関連す
る動作は、DMAC_B_OPCODEによって規定さ
れる。書き込まれるデータワードは、DMAC_DAT
Aに提示される。要求された動作が完了すると、状態機
械論理回路84から当該要求元ユニットに肯定応答が返
される。
IFO_REQによって示され、DMAC_CH_NB
Rの現状態によって指定されるチャネル(のTDCR1
空間)にアドレスされた要求として解釈される。各要求
(読出し又は書込み、1ワード又は2ワード)に関連す
る動作は、DMAC_B_OPCODEによって規定さ
れる。書き込まれるデータワードは、DMAC_DAT
Aに提示される。要求された動作が完了すると、状態機
械論理回路84から当該要求元ユニットに肯定応答が返
される。
【0077】DMAC RAM(DMACR)24は
、それがDMAC22(及びSIO26)にだけアクセ
ス可能である点を除いて、図9に示すように、類似のア
クセス構成を有する。SIO26からの経路及びSIO
26への経路は本発明にとって重要でないので、図9に
は示されていない。DMACR記憶アレイ90の容量は
、FIFO RAMアレイ80と同じである。入力は
選択回路91を介してDMACR記憶アレイ90に供給
される。出力DMACR_DATAは、バス92を介し
てDMAC22に転送される。動作機能(読出し/書込
み)及びアドレスは、状態機械論理回路94の指令の下
で、要求ラッチ95によって指示されるDMAC22か
らの要求と関連して選択される。要求ラッチ95は、D
MAC_DMACR_REQ及びDMAC_C_OPC
ODEによってセットされる。後者は要求機能(読出し
/書込み、1ワード又は2ワード)を示す。DMACR
アレイ90からの読出し出力は、83などの別個のパリ
ティ検査回路ではなく、状態機械論理回路によってパリ
ティ検査される。というのは、DMAC22の非同期動
作は、同期ユニット(RFM、TFM)の動作ほど緊密
に時間的に制約されないからである。パリティエラー指
示は、当該の場合状態機械論理回路によって発生される
。
、それがDMAC22(及びSIO26)にだけアクセ
ス可能である点を除いて、図9に示すように、類似のア
クセス構成を有する。SIO26からの経路及びSIO
26への経路は本発明にとって重要でないので、図9に
は示されていない。DMACR記憶アレイ90の容量は
、FIFO RAMアレイ80と同じである。入力は
選択回路91を介してDMACR記憶アレイ90に供給
される。出力DMACR_DATAは、バス92を介し
てDMAC22に転送される。動作機能(読出し/書込
み)及びアドレスは、状態機械論理回路94の指令の下
で、要求ラッチ95によって指示されるDMAC22か
らの要求と関連して選択される。要求ラッチ95は、D
MAC_DMACR_REQ及びDMAC_C_OPC
ODEによってセットされる。後者は要求機能(読出し
/書込み、1ワード又は2ワード)を示す。DMACR
アレイ90からの読出し出力は、83などの別個のパリ
ティ検査回路ではなく、状態機械論理回路によってパリ
ティ検査される。というのは、DMAC22の非同期動
作は、同期ユニット(RFM、TFM)の動作ほど緊密
に時間的に制約されないからである。パリティエラー指
示は、当該の場合状態機械論理回路によって発生される
。
【0078】6.DMACブロック図
図10に示すように、DMAC22は、5つのレジスタ
100、「3−2」比較回路101、多重化/選択回路
102、及び5つの緊密に結合された状態機械103を
含む。
100、「3−2」比較回路101、多重化/選択回路
102、及び5つの緊密に結合された状態機械103を
含む。
【0079】個々のレジスタ100及び状態機械103
は、以後、図10に示す名前、すなわちRFA_NDA
レジスタ、RBCAレジスタ、RLA_TBCレジスタ
、DATA HOLDレジスタ、CURRENT
ADDRレジスタ、DMA_A状態機械、DMA_B状
態機械、DMA_C状態機械、RCV_ARB状態機械
、及びXMIT_ARB状態機械で呼ぶことにする。D
MAC22は、FIFO_DATA、DMACR_DA
TA、及びDMADB_DATAという名のバスを介し
てデータ入力を受け取る。これらのバスは、それぞれF
IFO RAM16(図8)、DMACR24(図9
)、及びDMADB22A(図11)の出力端と接続さ
れている。
は、以後、図10に示す名前、すなわちRFA_NDA
レジスタ、RBCAレジスタ、RLA_TBCレジスタ
、DATA HOLDレジスタ、CURRENT
ADDRレジスタ、DMA_A状態機械、DMA_B状
態機械、DMA_C状態機械、RCV_ARB状態機械
、及びXMIT_ARB状態機械で呼ぶことにする。D
MAC22は、FIFO_DATA、DMACR_DA
TA、及びDMADB_DATAという名のバスを介し
てデータ入力を受け取る。これらのバスは、それぞれF
IFO RAM16(図8)、DMACR24(図9
)、及びDMADB22A(図11)の出力端と接続さ
れている。
【0080】個々のレジスタ及び状態機械の機能につい
ては後述する。一般に、DMAC22はDMARQ23
の要求を処理し、関連する受信チャネル及び送信チャネ
ルに関するデータ転送を開始することに留意されたい。 このような転送準備中に、DMAC22はFIFO
RAM16及びDMACR24から関連するチャネルの
命令情報を取り出す。受信チャネルがサービスを受けて
いる場合、DMAC22はFIFO RAM16から
関連するチャネルの受信データを取り出す。送信チャネ
ルがサービスを受けており、命令情報がDCB連鎖の必
要を示す場合、DMAC22は、データ転送要求にサー
ビスする前に、ホストメモリ2bから3DCBワードの
取出しを開始する。DCBはFIFO RAM16及
びDMACR24に記憶される。
ては後述する。一般に、DMAC22はDMARQ23
の要求を処理し、関連する受信チャネル及び送信チャネ
ルに関するデータ転送を開始することに留意されたい。 このような転送準備中に、DMAC22はFIFO
RAM16及びDMACR24から関連するチャネルの
命令情報を取り出す。受信チャネルがサービスを受けて
いる場合、DMAC22はFIFO RAM16から
関連するチャネルの受信データを取り出す。送信チャネ
ルがサービスを受けており、命令情報がDCB連鎖の必
要を示す場合、DMAC22は、データ転送要求にサー
ビスする前に、ホストメモリ2bから3DCBワードの
取出しを開始する。DCBはFIFO RAM16及
びDMACR24に記憶される。
【0081】5つの状態機械103は、緊密に結合され
ている。DMA_Aは、他の4つの状態機械の動作を調
整させ、DMADB22Aに関する要求処理優先順位を
決める。DMA_B及びDMA_Cは、それぞれFIF
O RAM16及びDMACR24にインターフェー
スする。XMIT_ARB状態機械及びRCV_ARB
状態機械は、それぞれDMARQ23内の送信要求待ち
行列及び受信要求待ち行列をポーリングするように動作
する。各待ち行列の要求ビットは、以下に規定するマス
ク条件に従ってチャネル番号順にポーリングされる。活
動状態でマスクされていない要求が検出されると、DM
A_A状態機械がその要求を受け入れて当該のARB状
態機械に肯定応答するまで、ポーリングは停止される。 DMA_A状態機械は、要求を受け入れた場合、それぞ
れのチャネルカウント又は送信チャネル・カウントをそ
れぞれのARB状態機械から受け取って、それぞれのチ
ャネルに関するマスクビットをセットするので、同じ要
求ビットがそのARB状態機械によって再度選択される
ことはない。送信要求と受信要求が同時に活動状態であ
る場合、DMA_A状態機械は受信要求により高い優先
順位を与える。
ている。DMA_Aは、他の4つの状態機械の動作を調
整させ、DMADB22Aに関する要求処理優先順位を
決める。DMA_B及びDMA_Cは、それぞれFIF
O RAM16及びDMACR24にインターフェー
スする。XMIT_ARB状態機械及びRCV_ARB
状態機械は、それぞれDMARQ23内の送信要求待ち
行列及び受信要求待ち行列をポーリングするように動作
する。各待ち行列の要求ビットは、以下に規定するマス
ク条件に従ってチャネル番号順にポーリングされる。活
動状態でマスクされていない要求が検出されると、DM
A_A状態機械がその要求を受け入れて当該のARB状
態機械に肯定応答するまで、ポーリングは停止される。 DMA_A状態機械は、要求を受け入れた場合、それぞ
れのチャネルカウント又は送信チャネル・カウントをそ
れぞれのARB状態機械から受け取って、それぞれのチ
ャネルに関するマスクビットをセットするので、同じ要
求ビットがそのARB状態機械によって再度選択される
ことはない。送信要求と受信要求が同時に活動状態であ
る場合、DMA_A状態機械は受信要求により高い優先
順位を与える。
【0082】DMAC状態機械及びレジスタの使用法の
詳細は後述する。
詳細は後述する。
【0083】7.DMADBのブロック図DMADB2
2A(図11)は、アドレスレジスタDMADB_AD
DR_REG130、データレジスタDMADB_DA
TA_REG131、状態機械132、及びいくつかの
制御機能レジスタ135を備えている。レジスタ135
は、要求ビットレジスタREQ及び完了指示ビットレジ
スタDONEを備えている。これらのレジスタの出力D
MADB_REQ及びDMADB_DONE1は、DM
AC22に送られる。状態機械132は、第2の完了指
示DMADB_DONE2を発生する。これもDMAC
22に送られる。
2A(図11)は、アドレスレジスタDMADB_AD
DR_REG130、データレジスタDMADB_DA
TA_REG131、状態機械132、及びいくつかの
制御機能レジスタ135を備えている。レジスタ135
は、要求ビットレジスタREQ及び完了指示ビットレジ
スタDONEを備えている。これらのレジスタの出力D
MADB_REQ及びDMADB_DONE1は、DM
AC22に送られる。状態機械132は、第2の完了指
示DMADB_DONE2を発生する。これもDMAC
22に送られる。
【0084】DMADB22Aは、DMAC22からの
命令コード信号DMAC_DMADB_OPCODEに
よって規定される動作を実行する。この命令コードは、
状態機械132に供給され、この状態機械132によっ
て読出し信号DMAC_MIO_RD1、DMAC_M
IO_RD3及び書込み信号DMAC_MIO_WR1
に変換されて、MIO25に送られる。RD1は、MI
O25によるホストメモリに関する送信データ取出しを
引き起こすために使用される。RD3は、連鎖DCB(
3ワード)取出しを引き起こすために使用され、WR1
はホストメモリに関する受信データ記憶動作を引き起こ
すために使用される。
命令コード信号DMAC_DMADB_OPCODEに
よって規定される動作を実行する。この命令コードは、
状態機械132に供給され、この状態機械132によっ
て読出し信号DMAC_MIO_RD1、DMAC_M
IO_RD3及び書込み信号DMAC_MIO_WR1
に変換されて、MIO25に送られる。RD1は、MI
O25によるホストメモリに関する送信データ取出しを
引き起こすために使用される。RD3は、連鎖DCB(
3ワード)取出しを引き起こすために使用され、WR1
はホストメモリに関する受信データ記憶動作を引き起こ
すために使用される。
【0085】REQの要求ビットは、DMADB22A
による動作がDMAC22によって要求された場合、D
MAC22によってDMAC_DMADB_REQによ
って1にセットされ、要求された動作が完了したとき、
状態機械132によって0にリセットされる。DMAD
B_DONE1の指示は、DMADB22Aがホストメ
モリから送信データの取出しを完了したとき、セットさ
れ、DMAC22がDONE1の指示を検出したとき、
DMAC_DMADB_DRSTによってリセットされ
る。状態機械の指示DMADB_DONE2は、DMA
DB22AがDMAC22から要求された取出し動作を
完了したとき、状態機械132によって活動化される。
による動作がDMAC22によって要求された場合、D
MAC22によってDMAC_DMADB_REQによ
って1にセットされ、要求された動作が完了したとき、
状態機械132によって0にリセットされる。DMAD
B_DONE1の指示は、DMADB22Aがホストメ
モリから送信データの取出しを完了したとき、セットさ
れ、DMAC22がDONE1の指示を検出したとき、
DMAC_DMADB_DRSTによってリセットされ
る。状態機械の指示DMADB_DONE2は、DMA
DB22AがDMAC22から要求された取出し動作を
完了したとき、状態機械132によって活動化される。
【0086】アドレスレジスタ130は、アドレスバス
DMADB_ADDR1及びDMADB_ADDR2を
介してDMAC22からアドレス値を受け取り、当該ア
ドレスを、システムバス及びホストメモリに関して使用
できるように、DMAC_MIO_ADDRを介してM
IO25に転送する。DMADB_ADDR1は、DM
ACレジスタRFA_NDAの出力端に供給される(図
10)。DMADB_ADDR2は、DMACの現アド
レスレジスタCURRENT ADDR REGの
出力端に供給される(図10)。DMADB_ADDR
1は、送信データ及び受信データのMIO転送に関して
使用されるアドレスとして供給される。DMADB_A
DDR2は、後述するDCB取出し動作中に供給される
。
DMADB_ADDR1及びDMADB_ADDR2を
介してDMAC22からアドレス値を受け取り、当該ア
ドレスを、システムバス及びホストメモリに関して使用
できるように、DMAC_MIO_ADDRを介してM
IO25に転送する。DMADB_ADDR1は、DM
ACレジスタRFA_NDAの出力端に供給される(図
10)。DMADB_ADDR2は、DMACの現アド
レスレジスタCURRENT ADDR REGの
出力端に供給される(図10)。DMADB_ADDR
1は、送信データ及び受信データのMIO転送に関して
使用されるアドレスとして供給される。DMADB_A
DDR2は、後述するDCB取出し動作中に供給される
。
【0087】データレジスタ131は、MIO25から
入力MIO_DATA(送信データ及びホストメモリか
ら取り出された連鎖DCB情報)を受け取り、DMAC
22からDMAC_DMADB_DATA(ホストメモ
リ内に記憶される受信データ)を受け取る。レジスタ1
31の出力は、DMAC_MIO_DATAを介してM
IO25に転送され、バスDMADB_DATAを介し
てDMAC22に転送される。
入力MIO_DATA(送信データ及びホストメモリか
ら取り出された連鎖DCB情報)を受け取り、DMAC
22からDMAC_DMADB_DATA(ホストメモ
リ内に記憶される受信データ)を受け取る。レジスタ1
31の出力は、DMAC_MIO_DATAを介してM
IO25に転送され、バスDMADB_DATAを介し
てDMAC22に転送される。
【0088】上記のMIO25とDMADB22A間で
転送される信号は、転送元又は宛先としてDMADB2
2Aを指示しないことに留意されたい。その理由は、D
MAC22に関するMIO25の論理設計が修正されて
いず、DMADB22Aが実際にはMIO25にとって
論理的にトランスピアレントなものとして取り扱われる
からである。すなわち、DMADBレジスタ130から
DMAC_MIO_ADDRを介して提示されるアドレ
スは、MIO25にはDMAC22から直接来たように
見え、DMADBレジスタ131からDMAC_MIO
_DATAを介して転送されるデータは、MIO25に
はDMAC22から直接来るように見え、MIO25か
らMIO_DATAを介してDMAC22に提示される
データは、実際にDMADB22Aに渡され、それを通
過する。
転送される信号は、転送元又は宛先としてDMADB2
2Aを指示しないことに留意されたい。その理由は、D
MAC22に関するMIO25の論理設計が修正されて
いず、DMADB22Aが実際にはMIO25にとって
論理的にトランスピアレントなものとして取り扱われる
からである。すなわち、DMADBレジスタ130から
DMAC_MIO_ADDRを介して提示されるアドレ
スは、MIO25にはDMAC22から直接来たように
見え、DMADBレジスタ131からDMAC_MIO
_DATAを介して転送されるデータは、MIO25に
はDMAC22から直接来るように見え、MIO25か
らMIO_DATAを介してDMAC22に提示される
データは、実際にDMADB22Aに渡され、それを通
過する。
【0089】DMAC22は、状態機械132へのDM
AC_A_SWAP入力を介してアドレス情報をレジス
タ130に供給しようとする意図と、レジスタ131に
関するデータをDMAC_D_SWAPを介して供給又
は受け取ろうとする意図とを通知する。
AC_A_SWAP入力を介してアドレス情報をレジス
タ130に供給しようとする意図と、レジスタ131に
関するデータをDMAC_D_SWAPを介して供給又
は受け取ろうとする意図とを通知する。
【0090】MIO25は、信号MIO_DMAC_A
CK0、MIO_DMAC_ACK1、及びMIO_D
MAC_ACK2のそれぞれによってそれぞれDCB連
鎖転送の第1、第2、及び第3ワードの受取りを通知し
、状態機械132は、信号DMADB_ACK0、DM
ADB_ACK1、及びDMADB_ACK2のそれぞ
れによって、当該肯定応答指示をDMAC22に渡す。 MIO25は、MIO_DMAC_DONEによって送
信データ取出し又はDCB取出しの完了を通知し、状態
機械132は、DMADB_DONE2によって対応す
る完了指示をDMAC22に提示する。
CK0、MIO_DMAC_ACK1、及びMIO_D
MAC_ACK2のそれぞれによってそれぞれDCB連
鎖転送の第1、第2、及び第3ワードの受取りを通知し
、状態機械132は、信号DMADB_ACK0、DM
ADB_ACK1、及びDMADB_ACK2のそれぞ
れによって、当該肯定応答指示をDMAC22に渡す。 MIO25は、MIO_DMAC_DONEによって送
信データ取出し又はDCB取出しの完了を通知し、状態
機械132は、DMADB_DONE2によって対応す
る完了指示をDMAC22に提示する。
【0091】DMADB22Aは、受信データがMIO
25を介してホストメモリに書き込まれた後に、DMA
RQ23の受信待ち行列の要求をリセットする。またD
MADB22Aは、DMADB_MASK_RSTによ
ってDMAC22のマスクビットをリセットする。DM
ACのマスクビットは、DMAC状態機械によってその
内部で、かつDMAC状態機械間で使用されて、DMA
C22に、一度に2つのチャネルにサービスさせ、かつ
どちらか一方のチャネル要求をマスクアウトさせて、サ
ービス機能の重複が回避できるようにする。
25を介してホストメモリに書き込まれた後に、DMA
RQ23の受信待ち行列の要求をリセットする。またD
MADB22Aは、DMADB_MASK_RSTによ
ってDMAC22のマスクビットをリセットする。DM
ACのマスクビットは、DMAC状態機械によってその
内部で、かつDMAC状態機械間で使用されて、DMA
C22に、一度に2つのチャネルにサービスさせ、かつ
どちらか一方のチャネル要求をマスクアウトさせて、サ
ービス機能の重複が回避できるようにする。
【0092】このユニットに関するより詳しい情報は、
DMAC、DMADB、及びMIOの対話動作の検討、
及びDMAC状態機械論理回路の説明の際に示す。
DMAC、DMADB、及びMIOの対話動作の検討、
及びDMAC状態機械論理回路の説明の際に示す。
【0093】8.MIOブロック図
MIO25(図12)は、データレジスタ140、デー
タバス・レシーバ回路141、データバス・ドライバ回
路142、アドレスバス・ドライバ回路143、多重化
/選択回路144、2つ以上のバス制御状態機械145
、146、及び内部タイマ回路147を備えている。 バス制御状態機械145は、マイクロチャネル・バスに
インターフェースし、それを制御する。もう一方のバス
制御状態機械146は、別のバスにインターフェースし
、それを制御する。その他のバスは、本発明と関係がな
いので、それらの制御線は図示しない。
タバス・レシーバ回路141、データバス・ドライバ回
路142、アドレスバス・ドライバ回路143、多重化
/選択回路144、2つ以上のバス制御状態機械145
、146、及び内部タイマ回路147を備えている。 バス制御状態機械145は、マイクロチャネル・バスに
インターフェースし、それを制御する。もう一方のバス
制御状態機械146は、別のバスにインターフェースし
、それを制御する。その他のバスは、本発明と関係がな
いので、それらの制御線は図示しない。
【0094】データレシーバ回路141及びデータドラ
イバ回路142は、IIMが接続されているすべてのバ
スのデータ線にインターフェースするが、この場合もマ
イクロチャネル・バスへの接続だけが現在重要であると
考えられる。同様に、アドレスドライバ回路143は、
すべてのバスにインターフェースするが、現在はマイク
ロチャネルへの接続だけが重要である。マイクロチャネ
ル・バスに関するバス制御状態機械145の特定の出力
、入力、及び動作については後述する。これらの動作に
は、現在特に興味のあるバス制御状態機械145とタイ
マ147間の相互作用を伴うバス保持動作が含まれる。
イバ回路142は、IIMが接続されているすべてのバ
スのデータ線にインターフェースするが、この場合もマ
イクロチャネル・バスへの接続だけが現在重要であると
考えられる。同様に、アドレスドライバ回路143は、
すべてのバスにインターフェースするが、現在はマイク
ロチャネルへの接続だけが重要である。マイクロチャネ
ル・バスに関するバス制御状態機械145の特定の出力
、入力、及び動作については後述する。これらの動作に
は、現在特に興味のあるバス制御状態機械145とタイ
マ147間の相互作用を伴うバス保持動作が含まれる。
【0095】ホストメモリからの送信データ及び連鎖D
CB情報の取出し中に、データレシーバ回路141は、
マイクロチャネル・バス上のデータ線HOST_DAT
ABUSからデータ信号を受け取る。データは半ワード
単位(16ビット+2パリティビット)で受け取られる
。これらの半ワードは、パリティ検査回路148でパリ
ティ検査される。第1の半ワードがデータレジスタ14
0に記憶され、そのレジスタの出力端で全ワード幅(3
2ビット)バスMIO_DATA149上の線のうちの
半数に印加される。第2の半ワードは、バス149上の
線のうちの残りの半数に直接渡される。
CB情報の取出し中に、データレシーバ回路141は、
マイクロチャネル・バス上のデータ線HOST_DAT
ABUSからデータ信号を受け取る。データは半ワード
単位(16ビット+2パリティビット)で受け取られる
。これらの半ワードは、パリティ検査回路148でパリ
ティ検査される。第1の半ワードがデータレジスタ14
0に記憶され、そのレジスタの出力端で全ワード幅(3
2ビット)バスMIO_DATA149上の線のうちの
半数に印加される。第2の半ワードは、バス149上の
線のうちの残りの半数に直接渡される。
【0096】ホストメモリへの受信データの転送中に、
多重化選択回路144は、DMAC_MIO_DATA
上で受け取ったデータワードの半分ずつを交互にデータ
ドライバ回路142に供給し、データドライバ回路14
2は、対応する半ワード信号をHOST_DATABU
S上に送り出す。
多重化選択回路144は、DMAC_MIO_DATA
上で受け取ったデータワードの半分ずつを交互にデータ
ドライバ回路142に供給し、データドライバ回路14
2は、対応する半ワード信号をHOST_DATABU
S上に送り出す。
【0097】前述のデータ転送中、DMAC_MIO_
ADDRを介してDMAC22/DMADB22Aから
受け取ったアドレスは、アドレスドライバ回路143を
介してバスアドレス線BUS_ADDRに供給される。 BUS_ADDR上のアドレス信号は、ホストメモリ内
の読み出される位置、又はHOST_DATABUS上
のデータが書き込まれる位置を規定する。
ADDRを介してDMAC22/DMADB22Aから
受け取ったアドレスは、アドレスドライバ回路143を
介してバスアドレス線BUS_ADDRに供給される。 BUS_ADDR上のアドレス信号は、ホストメモリ内
の読み出される位置、又はHOST_DATABUS上
のデータが書き込まれる位置を規定する。
【0098】ホストメモリに関して実行される転送動作
は、DMAC_MIO_RD1、DMAC_MIO_R
D3、又はDMAC_MIO_WR1上の信号によって
規定される。RD1及びWR1は、それぞれホストメモ
リからの送信データの取出し、及びホストメモリへの受
信データの記憶に使用される。別個のワード転送の肯定
応答は、MIO_DMAC_ACKn(n=0,1,2
)によってDMAC22/DMADB22Aに指示され
、要求された動作に関する完了指示は、MIO_DMA
C_DONEによって指示される。パリティ検査回路1
48によってパリティエラーが検出された場合、関連す
るエラー指示がMIO_DMAC_PEを介してDMA
C22に送られる。
は、DMAC_MIO_RD1、DMAC_MIO_R
D3、又はDMAC_MIO_WR1上の信号によって
規定される。RD1及びWR1は、それぞれホストメモ
リからの送信データの取出し、及びホストメモリへの受
信データの記憶に使用される。別個のワード転送の肯定
応答は、MIO_DMAC_ACKn(n=0,1,2
)によってDMAC22/DMADB22Aに指示され
、要求された動作に関する完了指示は、MIO_DMA
C_DONEによって指示される。パリティ検査回路1
48によってパリティエラーが検出された場合、関連す
るエラー指示がMIO_DMAC_PEを介してDMA
C22に送られる。
【0099】状態機械とマイクロチャネル・バス上の特
定の線間でスワップされる制御信号は、状態機械の右側
に示されている。MIO_S0/S1上の信号は、デー
タ読出し又はデータ書込みを示す。PREEMPT線に
送り出される信号は、バスへのアクセスの調停要求を表
す。PREEMPT線から受け取った信号は、バス上の
他の装置からの調停要求を示す。バス線BURSTは、
IIMがバスを制御するときだけ活動化され、IIMに
よって活動化された場合、この線は多重アクセスサイク
ルを採用すべきことを示す。CMD線は、活動化される
と、マイクロ・チャネル・コマンド機能を示す。
定の線間でスワップされる制御信号は、状態機械の右側
に示されている。MIO_S0/S1上の信号は、デー
タ読出し又はデータ書込みを示す。PREEMPT線に
送り出される信号は、バスへのアクセスの調停要求を表
す。PREEMPT線から受け取った信号は、バス上の
他の装置からの調停要求を示す。バス線BURSTは、
IIMがバスを制御するときだけ活動化され、IIMに
よって活動化された場合、この線は多重アクセスサイク
ルを採用すべきことを示す。CMD線は、活動化される
と、マイクロ・チャネル・コマンド機能を示す。
【0100】ARBは、調停中の装置がその上でその調
停レベル(優先順位)を示すバスであり、各装置がバス
にアクセスする最高優先順位を有するかどうかを各装置
が判定できるようにする(調停中、最高優先順位を有す
る装置はARBに信号を送り続け、その間に他の装置は
それらの信号を次々に除去し、最終的には最高優先順位
の装置が、自分が唯一の生き残りであると決定する。す
なわち、その装置が現在バスを制御していることを暗示
する)。ARB_GNTは、調停サイクルを開始すべき
ことを指示するバス上の制御回路からの調停許可信号で
ある。
停レベル(優先順位)を示すバスであり、各装置がバス
にアクセスする最高優先順位を有するかどうかを各装置
が判定できるようにする(調停中、最高優先順位を有す
る装置はARBに信号を送り続け、その間に他の装置は
それらの信号を次々に除去し、最終的には最高優先順位
の装置が、自分が唯一の生き残りであると決定する。す
なわち、その装置が現在バスを制御していることを暗示
する)。ARB_GNTは、調停サイクルを開始すべき
ことを指示するバス上の制御回路からの調停許可信号で
ある。
【0101】ADLは、IIMがバス制御権を得たとき
にIIMから送られるアドレスデコード・ラッチ信号で
ある。DPARENは、バスの制御下にある装置から与
えられるデータパリティ・イネーブル指示である。CH
RDY_RTNは、転送サイクルが終了することを指示
する外部肯定応答指示である。DS16_RTNは、受
信可能なデータサイズが16ビットであることを指示す
る戻り指示である。CHCKは、バス上でエラーが発生
したことを指示する外部チャネル検査指示である。SF
DBK_RTNは、スレーブ(ホストメモリ)装置が正
しくアドレスを復号化したことを指示する選択されたフ
ィードバックの外部戻り指示である。
にIIMから送られるアドレスデコード・ラッチ信号で
ある。DPARENは、バスの制御下にある装置から与
えられるデータパリティ・イネーブル指示である。CH
RDY_RTNは、転送サイクルが終了することを指示
する外部肯定応答指示である。DS16_RTNは、受
信可能なデータサイズが16ビットであることを指示す
る戻り指示である。CHCKは、バス上でエラーが発生
したことを指示する外部チャネル検査指示である。SF
DBK_RTNは、スレーブ(ホストメモリ)装置が正
しくアドレスを復号化したことを指示する選択されたフ
ィードバックの外部戻り指示である。
【0102】マイクロチャネル・モードでは、MIO状
態機械は、レベルBバスマスタのようなマイクロチャネ
ル規約に従ってバスの利用を調停し、指令する。
態機械は、レベルBバスマスタのようなマイクロチャネ
ル規約に従ってバスの利用を調停し、指令する。
【0103】9.DMAC及びDMADBの動作次の3
節では、前述の図4よりも詳しくDMAC22とDMA
DB22Aの相互接続及び動作について説明する。その
後、MIO25のバス保持機能について説明し、DMA
C状態機械及びDMADB状態機械の詳細を示す。
節では、前述の図4よりも詳しくDMAC22とDMA
DB22Aの相互接続及び動作について説明する。その
後、MIO25のバス保持機能について説明し、DMA
C状態機械及びDMADB状態機械の詳細を示す。
【0104】9.1 DMAC、DMADBのパイプ
ラインバッファ・レジスタ 図13は、DMAC22及びDMADB22Aの重要な
レジスタ及びそれらの相互接続を示す。図11のDMA
DBブロック図で使用されているレジスタ番号は、図1
3でもそのまま使用する。DMACレジスタは、図13
では新しく採用した番号で示されている。
ラインバッファ・レジスタ 図13は、DMAC22及びDMADB22Aの重要な
レジスタ及びそれらの相互接続を示す。図11のDMA
DBブロック図で使用されているレジスタ番号は、図1
3でもそのまま使用する。DMACレジスタは、図13
では新しく採用した番号で示されている。
【0105】DMAC DATA HOLDレジス
タ160の出力(DMAC_DMADB_DATA)は
DMADB_DAT_REG131に転送可能であり、
レジスタ131の出力(DMADB_DATA)はレジ
スタ160に転送可能である。このように、FIFO
RAM16からレジスタ160に転送された受信デー
タはさらにレジスタ130に転送可能であり、そこから
レジスタ160の出力線DMAC_MIO_DATAを
介してMIO25及びホストメモリに転送可能である。 またレジスタ160は、MIO_DATAを介してホス
トメモリから送信データ及びDCB情報を受け取り、F
IFO RAM16及びDMAC RAM24に関
するDMAC22によってさらに処理を受けるために、
このような情報をDMADB_DATAを介してレジス
タ131に転送することができる。
タ160の出力(DMAC_DMADB_DATA)は
DMADB_DAT_REG131に転送可能であり、
レジスタ131の出力(DMADB_DATA)はレジ
スタ160に転送可能である。このように、FIFO
RAM16からレジスタ160に転送された受信デー
タはさらにレジスタ130に転送可能であり、そこから
レジスタ160の出力線DMAC_MIO_DATAを
介してMIO25及びホストメモリに転送可能である。 またレジスタ160は、MIO_DATAを介してホス
トメモリから送信データ及びDCB情報を受け取り、F
IFO RAM16及びDMAC RAM24に関
するDMAC22によってさらに処理を受けるために、
このような情報をDMADB_DATAを介してレジス
タ131に転送することができる。
【0106】アドレス情報は、DMAC22からDMA
DB22AのOPCODEラッチに供給される転送要求
OPCODE情報に関連して、DMACレジスタ161
(CURRENT ADDR REG)及び162
(RFA_NDA_REG)からDMADBレジスタ1
30(DMADB_ADDR_REG)に渡される。図
13にはOPCODEとラベルされた独立したエンティ
ティとして示されているが、これらのラッチは、実際に
はDMADB状態機械132内部に含まれている(図1
1)。受信データ転送に関連してDMAC22から提示
されるアドレスは、STORE WORD OPC
ODE(ワード記憶命令コード)値01、及び受信デー
タを伴い、後者はレジスタ160からレジスタ131に
渡される。送信データ取出し要求に関連してDMACか
ら提示されるアドレスは、FETCH WORD
OPCODE(ワード取出し命令コード)値00を伴う
。(3ワード)DCB取出し要求(コマンド連鎖)に関
連してDMACから提示されるアドレスは、FETCH
DCB OPCODE(DCB取出し命令コード
)値10を伴う。
DB22AのOPCODEラッチに供給される転送要求
OPCODE情報に関連して、DMACレジスタ161
(CURRENT ADDR REG)及び162
(RFA_NDA_REG)からDMADBレジスタ1
30(DMADB_ADDR_REG)に渡される。図
13にはOPCODEとラベルされた独立したエンティ
ティとして示されているが、これらのラッチは、実際に
はDMADB状態機械132内部に含まれている(図1
1)。受信データ転送に関連してDMAC22から提示
されるアドレスは、STORE WORD OPC
ODE(ワード記憶命令コード)値01、及び受信デー
タを伴い、後者はレジスタ160からレジスタ131に
渡される。送信データ取出し要求に関連してDMACか
ら提示されるアドレスは、FETCH WORD
OPCODE(ワード取出し命令コード)値00を伴う
。(3ワード)DCB取出し要求(コマンド連鎖)に関
連してDMACから提示されるアドレスは、FETCH
DCB OPCODE(DCB取出し命令コード
)値10を伴う。
【0107】ホストメモリに関する送信データ及び受信
データの転送準備中に、DMACレジスタ161は、そ
れぞれのデータワードが転送される転送元又は宛先のホ
ストメモリ内のアドレスを指定する(送信データに関す
るDMAC RAM24から、及び受信データに関す
るFIFO RAM16から取り出された)Curr
ent Address(現アドレス)機能を受け取る
。DMAC22による連鎖DCB取出し準備中に、レジ
スタ161は、(FIFO RAM16及びDMAC
RAM24に)取り出される3つのDCBワードの
うちの第1ワードのホストメモリ内のアドレスを指定す
る(DMAC RAM24から取り出された)Nex
t DCB Address(次のDCBアドレス)機
能を受け取る。
データの転送準備中に、DMACレジスタ161は、そ
れぞれのデータワードが転送される転送元又は宛先のホ
ストメモリ内のアドレスを指定する(送信データに関す
るDMAC RAM24から、及び受信データに関す
るFIFO RAM16から取り出された)Curr
ent Address(現アドレス)機能を受け取る
。DMAC22による連鎖DCB取出し準備中に、レジ
スタ161は、(FIFO RAM16及びDMAC
RAM24に)取り出される3つのDCBワードの
うちの第1ワードのホストメモリ内のアドレスを指定す
る(DMAC RAM24から取り出された)Nex
t DCB Address(次のDCBアドレス)機
能を受け取る。
【0108】レジスタ161は、アドレス値を増分する
ために使用されるカウント用レジスタである。したがっ
て、レジスタ161で最初に受け取った Curren
t Address機能及び Next DCB Ad
dress機能は、それぞれDMAC22によってレジ
スタ162に転送され(後述するように、レジスタ16
2に最初に置かれたその他のアドレス情報に関して、D
MAC22によってある種の検査動作が実行された後に
)、レジスタ161に保持された値が必要に応じて増分
又は減分されて、ホストメモリ2bの次のワード位置を
指すようになる。
ために使用されるカウント用レジスタである。したがっ
て、レジスタ161で最初に受け取った Curren
t Address機能及び Next DCB Ad
dress機能は、それぞれDMAC22によってレジ
スタ162に転送され(後述するように、レジスタ16
2に最初に置かれたその他のアドレス情報に関して、D
MAC22によってある種の検査動作が実行された後に
)、レジスタ161に保持された値が必要に応じて増分
又は減分されて、ホストメモリ2bの次のワード位置を
指すようになる。
【0109】準備中の動作が受信データ転送である場合
、レジスタ161の更新された Next Addre
ss 値が、前の Current Address
機能と置き換わって、FIFO RAM16内に局部
的に記憶される。準備中の動作が送信データ取出しであ
る場合、更新された Next Address 値が
当該の前の Current Address 機能と
置き換わって、DMAC RAM24に記憶される。 受信データ転送と送信データ転送のどちらに関しても、
レジスタ162に保持された元の Current A
ddress 機能は、それぞれのワード転送動作でホ
ストメモリ2bに関して使用されるアドレスとして、D
MADBレジスタ130に渡される。
、レジスタ161の更新された Next Addre
ss 値が、前の Current Address
機能と置き換わって、FIFO RAM16内に局部
的に記憶される。準備中の動作が送信データ取出しであ
る場合、更新された Next Address 値が
当該の前の Current Address 機能と
置き換わって、DMAC RAM24に記憶される。 受信データ転送と送信データ転送のどちらに関しても、
レジスタ162に保持された元の Current A
ddress 機能は、それぞれのワード転送動作でホ
ストメモリ2bに関して使用されるアドレスとして、D
MADBレジスタ130に渡される。
【0110】準備中の動作が送信データワード取出しで
あり(以下の節9.3の例4参照)、それぞれのチャネ
ルの制御情報が、現在連鎖が許可されない、空(ゼロ)
バイトカウントを示す場合、DMAC22はホストシス
テム・メモリ2bに関するDCB取出しの際に、DMA
DB22A及びMIO25を起動する。新しいDCBは
、それぞれ(DMACR及びFIFO RAM内の)
TDCR3、TDCR4、及びTDCR1に記憶された
情報のそれぞれに対応する3つの連続して記憶されたワ
ードからなる。これらのワードのうちの第1のワード位
置は、DMACレジスタ162のDCBアドレスで規定
される。DMAC22は、このDCBアドレスをDMA
DBレジスタ130に転送し、同時に Fetch N
ext DCB(次のDCB取出し)を意味し、DMA
DB_REQを活動状態にセットするDMADB_OP
CODE10を提示する。その時点で、DMADB22
A及びMIO25は、システムバス上の3つの連続する
ワード転送動作において、次のDCBの3ワードを取り
出すように自動的に動作する。
あり(以下の節9.3の例4参照)、それぞれのチャネ
ルの制御情報が、現在連鎖が許可されない、空(ゼロ)
バイトカウントを示す場合、DMAC22はホストシス
テム・メモリ2bに関するDCB取出しの際に、DMA
DB22A及びMIO25を起動する。新しいDCBは
、それぞれ(DMACR及びFIFO RAM内の)
TDCR3、TDCR4、及びTDCR1に記憶された
情報のそれぞれに対応する3つの連続して記憶されたワ
ードからなる。これらのワードのうちの第1のワード位
置は、DMACレジスタ162のDCBアドレスで規定
される。DMAC22は、このDCBアドレスをDMA
DBレジスタ130に転送し、同時に Fetch N
ext DCB(次のDCB取出し)を意味し、DMA
DB_REQを活動状態にセットするDMADB_OP
CODE10を提示する。その時点で、DMADB22
A及びMIO25は、システムバス上の3つの連続する
ワード転送動作において、次のDCBの3ワードを取り
出すように自動的に動作する。
【0111】連続するワードが到達すると、それらのワ
ードはDMADBデータレジスタ131にラッチされ、
DMADB22Aは当該肯定応答DMADB_ACKn
(n=0−2)をDMAC22に送る。各肯定応答が到
達すると、DMAC22は当該の新しいDCBワードを
1つ又は複数のその内部レジスタに移動する(以下の例
4、及び以下のDMA_A状態機械の説明参照)。最後
のワードがDMADB22Aレジスタ130にラッチさ
れると、DMADB22Aは完了指示DMADB_DO
NE2を送り、その要求DMADB_REQをリセット
し、新しいDCBの処理を完了するようDMAC22に
警告する(例4参照)。
ードはDMADBデータレジスタ131にラッチされ、
DMADB22Aは当該肯定応答DMADB_ACKn
(n=0−2)をDMAC22に送る。各肯定応答が到
達すると、DMAC22は当該の新しいDCBワードを
1つ又は複数のその内部レジスタに移動する(以下の例
4、及び以下のDMA_A状態機械の説明参照)。最後
のワードがDMADB22Aレジスタ130にラッチさ
れると、DMADB22Aは完了指示DMADB_DO
NE2を送り、その要求DMADB_REQをリセット
し、新しいDCBの処理を完了するようDMAC22に
警告する(例4参照)。
【0112】受信データ及び送信データの転送中、DM
AC22及びDMADB22Aは、前述のように異なる
2本のチャネルの要求に関して時間的にオーバーラップ
して動作することができる。DMAC22は、DMAC
22及びDMADB22Aが同時にサービスしているチ
ャネルを、レジスタ163及び164(図13のCUR
RENT CH NBR及びPREVIOUS
CH NBR)によって記録する。
AC22及びDMADB22Aは、前述のように異なる
2本のチャネルの要求に関して時間的にオーバーラップ
して動作することができる。DMAC22は、DMAC
22及びDMADB22Aが同時にサービスしているチ
ャネルを、レジスタ163及び164(図13のCUR
RENT CH NBR及びPREVIOUS
CH NBR)によって記録する。
【0113】前述のように、DMAC22のRCV_A
RB状態機械及びXMIT_ARB状態機械は、それぞ
れ受信カウンタ機能RV_CNT及び送信カウンタ機能
TX_CNTを使用してポーリング順序を指令すること
により、それぞれDMARQ23の受信及び送信要求待
ち行列で、DMARQ要求を順次ポーリングする。活動
状態の要求が検出された場合、その要求はサービスを受
けるべくスケジュールされ、その要求の再問合せを防止
するためにマスクがセットされる。受信カウンタ及び送
信カウンタは、それぞれ図13の165及び166に示
されている。活動状態の要求の初回検出時のカウンタの
状態は、(RFM17又はTFM18によって)要求が
セットされた受信チャネル又は送信チャネルの番号に対
応する。そのカウント状態は、現チャネルバッファ・レ
ジスタ163(CURRENTCH NBR)内に置
かれ、サービスを受けるべく今選択されたチャネルを示
す。DMAC22がチャネル要求に関して前に取られた
処置をDMADB22A上で待っている場合、その前の
要求に関連するチャネル番号がレジスタ163からレジ
スタ164に転送される。
RB状態機械及びXMIT_ARB状態機械は、それぞ
れ受信カウンタ機能RV_CNT及び送信カウンタ機能
TX_CNTを使用してポーリング順序を指令すること
により、それぞれDMARQ23の受信及び送信要求待
ち行列で、DMARQ要求を順次ポーリングする。活動
状態の要求が検出された場合、その要求はサービスを受
けるべくスケジュールされ、その要求の再問合せを防止
するためにマスクがセットされる。受信カウンタ及び送
信カウンタは、それぞれ図13の165及び166に示
されている。活動状態の要求の初回検出時のカウンタの
状態は、(RFM17又はTFM18によって)要求が
セットされた受信チャネル又は送信チャネルの番号に対
応する。そのカウント状態は、現チャネルバッファ・レ
ジスタ163(CURRENTCH NBR)内に置
かれ、サービスを受けるべく今選択されたチャネルを示
す。DMAC22がチャネル要求に関して前に取られた
処置をDMADB22A上で待っている場合、その前の
要求に関連するチャネル番号がレジスタ163からレジ
スタ164に転送される。
【0114】レジスタ163及び164は、実際には、
図16を参照して後で説明するDMAC内部機能レジス
タに含まれる。図16では、瞬時にDMAC22からサ
ービスを受けているチャネル数及びDMADB上で処置
を待っているチャネル数は、それぞれDMAC CH
N NBR及びDMADB CHN NBRと名
付けられている。したがって、CURRENT CH
NBRとDMAC CHN NBRは同一機能
であり、PREVIOUS CH NBRとDMA
DB CHNNBRは同一機能であることが理解され
る。
図16を参照して後で説明するDMAC内部機能レジス
タに含まれる。図16では、瞬時にDMAC22からサ
ービスを受けているチャネル数及びDMADB上で処置
を待っているチャネル数は、それぞれDMAC CH
N NBR及びDMADB CHN NBRと名
付けられている。したがって、CURRENT CH
NBRとDMAC CHN NBRは同一機能
であり、PREVIOUS CH NBRとDMA
DB CHNNBRは同一機能であることが理解され
る。
【0115】9.2 TDCR及びRDCR制御情報
ワードの形式 DMAC22及びDMADB22Aによって実行される
チャネル要求動作を理解するには、FIFO RAM
16及びDMAC RAM24(TDCR1−TDC
R4及びRDCR1−RDCR4)の各チャネルに割り
振られた送信及び受信制御ワード空間に記憶される情報
の形式及び関連する機能を知ることが有用である。TD
CRパラメータ及びRDCRパラメータの形式は、それ
ぞれ図14及び図15に示されている。関連する機能に
ついては、以下にリストする。各TDCR及びRDCR
は32ビット空間内に常駐し、様々なビット長単位で配
列された最大32ビットの情報を含む。
ワードの形式 DMAC22及びDMADB22Aによって実行される
チャネル要求動作を理解するには、FIFO RAM
16及びDMAC RAM24(TDCR1−TDC
R4及びRDCR1−RDCR4)の各チャネルに割り
振られた送信及び受信制御ワード空間に記憶される情報
の形式及び関連する機能を知ることが有用である。TD
CRパラメータ及びRDCRパラメータの形式は、それ
ぞれ図14及び図15に示されている。関連する機能に
ついては、以下にリストする。各TDCR及びRDCR
は32ビット空間内に常駐し、様々なビット長単位で配
列された最大32ビットの情報を含む。
【0116】図14を参照すると、TDCR2は最大1
ワードの送信データを4つの送信データバイト(TDB
)単位で保持する。他の3つのワード空間TDCR1、
TDCR3、及びTDCR4は一緒になって、当該送信
チャネルの動作を規定する「装置制御ブロック」(DC
B)を含むように働く。前述のように、DCBはDCB
取出し動作(以下、詳述する)によって連鎖可能である
。任意のチェーンの最初のDCB(チャネルが最初に活
動化されるか又は再活動化されたときにロードされるD
CB)は、スレーブ入出力(SIO)ユニット26(図
2)を介して活動しているホストプロセッサによって最
初にロードされ、DCB連鎖のために指定されたチャネ
ルに関して、その後のDCBがDMAC22、DMAD
B22A、及びMIO25の動作によって取り出される
。DCBの第1ワードは、FIFO RAM16のチ
ャネルのTDCR1空間内に常駐し、各DCBの他の2
つのワードはDMAC RAM24のTDCR3及び
TDCR4空間に常駐する。
ワードの送信データを4つの送信データバイト(TDB
)単位で保持する。他の3つのワード空間TDCR1、
TDCR3、及びTDCR4は一緒になって、当該送信
チャネルの動作を規定する「装置制御ブロック」(DC
B)を含むように働く。前述のように、DCBはDCB
取出し動作(以下、詳述する)によって連鎖可能である
。任意のチェーンの最初のDCB(チャネルが最初に活
動化されるか又は再活動化されたときにロードされるD
CB)は、スレーブ入出力(SIO)ユニット26(図
2)を介して活動しているホストプロセッサによって最
初にロードされ、DCB連鎖のために指定されたチャネ
ルに関して、その後のDCBがDMAC22、DMAD
B22A、及びMIO25の動作によって取り出される
。DCBの第1ワードは、FIFO RAM16のチ
ャネルのTDCR1空間内に常駐し、各DCBの他の2
つのワードはDMAC RAM24のTDCR3及び
TDCR4空間に常駐する。
【0117】TDCR1(図14)は、7単位の制御情
報を25ビットで保持し、7つの未使用/予備ビット空
間(RES)を有する。7単位の制御情報は、3つの1
ビット単位、3つの2ビット単位、及び1つの16ビッ
ト単位を含む。これらの単位及びそれらの機能は次の通
りである。
報を25ビットで保持し、7つの未使用/予備ビット空
間(RES)を有する。7単位の制御情報は、3つの1
ビット単位、3つの2ビット単位、及び1つの16ビッ
ト単位を含む。これらの単位及びそれらの機能は次の通
りである。
【0118】ECD
チェーンの終り検出ビット。このビットは、送信データ
バイト・カウントTDBCの値が0になり、TDCR4
の(ホストによってプログラミングされた)チェーンの
終り指標ビットECIが、現在記憶されているDCBが
チェーンの終りであることを指示する場合、DMACに
よってセットされる。このビットはTFM18によって
監視され、セットされたときTFM18によって次の同
期送信回路(図2の15)に渡され、その結果、送信デ
ータがHDLC形式の場合、上記の送信回路15は巡回
冗長検査(CRC)文字及びその後にIDLE文字を付
加することができ、またそれ以外の場合は、当該チャネ
ルが非活動状態になったことを示すIDLE文字を付加
することができる。TFM18はまた、このビットに反
応して、送信データバッファTDCR2がたとえ空でも
、以後の要求をDMARQ23に入れないようにする。
バイト・カウントTDBCの値が0になり、TDCR4
の(ホストによってプログラミングされた)チェーンの
終り指標ビットECIが、現在記憶されているDCBが
チェーンの終りであることを指示する場合、DMACに
よってセットされる。このビットはTFM18によって
監視され、セットされたときTFM18によって次の同
期送信回路(図2の15)に渡され、その結果、送信デ
ータがHDLC形式の場合、上記の送信回路15は巡回
冗長検査(CRC)文字及びその後にIDLE文字を付
加することができ、またそれ以外の場合は、当該チャネ
ルが非活動状態になったことを示すIDLE文字を付加
することができる。TFM18はまた、このビットに反
応して、送信データバッファTDCR2がたとえ空でも
、以後の要求をDMARQ23に入れないようにする。
【0119】EFD
フレームの終り指標ビット。これは、バイトカウントT
DBCが0になり、TDCR4の(ホストによってプロ
グラミングされた)フレームの終り指標ビットEFIが
、このバイトカウントに関連する送信データがプロトコ
ル形式化フレーム内の送信データのプロトコル最終バイ
トの最後のデータであることを指示すると、DMAC2
2によってセットされる。このビットは、TFM18に
よって監視され、セットされたときTFM18によって
次の送信回路15に渡され、その結果、送信回路15は
フレームの終りフラグ文字及びCRC文字を最下位送信
データバイトの後ろに付加することができる。
DBCが0になり、TDCR4の(ホストによってプロ
グラミングされた)フレームの終り指標ビットEFIが
、このバイトカウントに関連する送信データがプロトコ
ル形式化フレーム内の送信データのプロトコル最終バイ
トの最後のデータであることを指示すると、DMAC2
2によってセットされる。このビットは、TFM18に
よって監視され、セットされたときTFM18によって
次の送信回路15に渡され、その結果、送信回路15は
フレームの終りフラグ文字及びCRC文字を最下位送信
データバイトの後ろに付加することができる。
【0120】NDI
データなし指標ビット。このビットは、DCBが受け取
られたときに0バイトカウントTDBCを含み、かつT
DCR4のECIビット又はEFIビットがセットされ
ている場合にセットされる。
られたときに0バイトカウントTDBCを含み、かつT
DCR4のECIビット又はEFIビットがセットされ
ている場合にセットされる。
【0121】TBC
送信バッファカウント。この2ビットカウントは、送信
データバッファTDCR2で現在利用可能なデータバイ
トの数を示す。このカウントは、送信データバイトが送
信データバッファから除去されたとき、TFM18によ
って減分される。
データバッファTDCR2で現在利用可能なデータバイ
トの数を示す。このカウントは、送信データバイトが送
信データバッファから除去されたとき、TFM18によ
って減分される。
【0122】TOPQ
待ち行列の先頭指標。TFM18によって他の送信回路
にゲートアウトされる、送信データバッファの次のバイ
トを指示する。
にゲートアウトされる、送信データバッファの次のバイ
トを指示する。
【0123】PE
DMACが、FIFO RAM16、DMAC R
AM24、又はホストメモリ2bへのアクセスに関する
パリティエラー指標を受け取ると、そのDMAC22に
よってセットされるデータパリティ・エラー指標。
AM24、又はホストメモリ2bへのアクセスに関する
パリティエラー指標を受け取ると、そのDMAC22に
よってセットされるデータパリティ・エラー指標。
【0124】TDBC
ホストメモリで現在アクセスされているデータセグメン
トに残された送信データバイト数を規定する送信データ
バイト・カウント。
トに残された送信データバイト数を規定する送信データ
バイト・カウント。
【0125】TDCR3は、8つの未使用(予備)ビッ
ト空間、及び次の送信データワードがそこから取り出さ
れるホストメモリ内の位置を指定するアドレス情報TD
BA(送信データバッファ・アドレス)を保持するため
に割り当てられた24のビット空間を含む。
ト空間、及び次の送信データワードがそこから取り出さ
れるホストメモリ内の位置を指定するアドレス情報TD
BA(送信データバッファ・アドレス)を保持するため
に割り当てられた24のビット空間を含む。
【0126】TDCR4は、10の未使用(予備)ビッ
ト空間、ECDビット及びEFDビットに関して上述の
ホストプログラミング可能な終り指標ビットECI(チ
ェーンの終り指標ビット)用とEFI(フレームの終り
指標ビット)用の2つのビット空間、及び(連鎖が指示
された場合)次のDCBの第1ワードのホストメモリの
アドレスを示す24ビットのDCBアドレスフィールド
(DCBA)を含む。
ト空間、ECDビット及びEFDビットに関して上述の
ホストプログラミング可能な終り指標ビットECI(チ
ェーンの終り指標ビット)用とEFI(フレームの終り
指標ビット)用の2つのビット空間、及び(連鎖が指示
された場合)次のDCBの第1ワードのホストメモリの
アドレスを示す24ビットのDCBアドレスフィールド
(DCBA)を含む。
【0127】図15を参照すると、RDCR2は、最大
1ワードの受信データを4受信データバイト単位(RD
B1−RDB4)まで保持する。他の3つの受信データ
制御ワードレジスタRDCR1、RDCR3、及びRD
CR4は、受信データが記憶されているホストメモリ2
b内の循環バッファ空間の特徴を規定する情報を含む。 個々の循環バッファ空間は、各受信チャネルに割り当て
られ、ホストプロセッサ・システム2によって管理され
る。IIMによってチャネルの循環バッファに置かれた
受信データがホストプロセッサ・システム2によって適
切に協調して処理されるとき、境界ポインタは当該のチ
ャネルに関するIIMプロセスと調整して進行し、この
プロセスは決して境界を超えてオーバーフローすること
はない。循環バッファの管理自体は、上記の米国特許出
願第07/495232号及び第07/495810号
に記載されており、本発明の一部ではない。
1ワードの受信データを4受信データバイト単位(RD
B1−RDB4)まで保持する。他の3つの受信データ
制御ワードレジスタRDCR1、RDCR3、及びRD
CR4は、受信データが記憶されているホストメモリ2
b内の循環バッファ空間の特徴を規定する情報を含む。 個々の循環バッファ空間は、各受信チャネルに割り当て
られ、ホストプロセッサ・システム2によって管理され
る。IIMによってチャネルの循環バッファに置かれた
受信データがホストプロセッサ・システム2によって適
切に協調して処理されるとき、境界ポインタは当該のチ
ャネルに関するIIMプロセスと調整して進行し、この
プロセスは決して境界を超えてオーバーフローすること
はない。循環バッファの管理自体は、上記の米国特許出
願第07/495232号及び第07/495810号
に記載されており、本発明の一部ではない。
【0128】RDCR1は、8つの未使用/予備ビット
空間、指標ビットRBC(受信境界検査ビット)用とR
PE(受信パリティ・エラー・ビット)用の2つのビッ
ト空間、及びアドレスパラメータRDCA(受信データ
バッファ現アドレス)用の22ビットの空間を含む。R
BCは、アドレスRDCAが後述の他のアドレスパラメ
ータによって規定される境界外にあることをDMAC2
2が検出するとセットされる。RPEは、DMAC22
がホストメモリ2b又はローカルRAMに関するパリテ
ィエラー指示を受け取るとセットされる。RDCAは、
受信データが記憶される上記循環バッファ空間の次のア
ドレスを指定する。
空間、指標ビットRBC(受信境界検査ビット)用とR
PE(受信パリティ・エラー・ビット)用の2つのビッ
ト空間、及びアドレスパラメータRDCA(受信データ
バッファ現アドレス)用の22ビットの空間を含む。R
BCは、アドレスRDCAが後述の他のアドレスパラメ
ータによって規定される境界外にあることをDMAC2
2が検出するとセットされる。RPEは、DMAC22
がホストメモリ2b又はローカルRAMに関するパリテ
ィエラー指示を受け取るとセットされる。RDCAは、
受信データが記憶される上記循環バッファ空間の次のア
ドレスを指定する。
【0129】RDCR3は、2つの未使用/予備ビット
空間、アドレスパラメータRDLAH(受信データ最終
アドレスハイ)に割り振られた8つのビット空間、及び
アドレスパラメータRDFA(受信データバッファの第
1アドレス)専用の22ビットを含む。RDLAHは、
ホストメモリの循環バッファ空間の最終(境界内)アド
レスの上位8ビットを含む。RDFAは、それぞれのチ
ャネルの循環バッファ空間の第1アドレスを指定する。
空間、アドレスパラメータRDLAH(受信データ最終
アドレスハイ)に割り振られた8つのビット空間、及び
アドレスパラメータRDFA(受信データバッファの第
1アドレス)専用の22ビットを含む。RDLAHは、
ホストメモリの循環バッファ空間の最終(境界内)アド
レスの上位8ビットを含む。RDFAは、それぞれのチ
ャネルの循環バッファ空間の第1アドレスを指定する。
【0130】RDCR4は、12ビットのアドレスパラ
メータRDLAL(受信データ最終アドレスロー)、及
び20ビットのアドレスパラメータRDBA(受信デー
タ境界アドレス)を含む。RDLALは、循環バッファ
の最終/先頭アドレスの下位12ビットを含む。RDL
ALと、RDCR3内のRDLAHとで、20ビットの
最終アドレスを構成する。RDBAは、それを越えた場
合にバッファオーバーラン(たとえば、前の受信データ
の重ね書き)を表す境界アドレスを規定する。
メータRDLAL(受信データ最終アドレスロー)、及
び20ビットのアドレスパラメータRDBA(受信デー
タ境界アドレス)を含む。RDLALは、循環バッファ
の最終/先頭アドレスの下位12ビットを含む。RDL
ALと、RDCR3内のRDLAHとで、20ビットの
最終アドレスを構成する。RDBAは、それを越えた場
合にバッファオーバーラン(たとえば、前の受信データ
の重ね書き)を表す境界アドレスを規定する。
【0131】9.3 データ転送及びDCB取出しの
適応パイプラインの使用例 DMAC22及びDMADB22Aは、異なるチャネル
に関して時間的にオーバーラップして動作することがで
き、任意の単一チャネルに関するその動作に関して有効
に減結合されるので、それらのレジスタはパイプライン
を形成して、すべてのチャネルに関する転送に関して両
ユニットに課される時間的制約を有効に低減する。この
パイプラインは、それが送信DCB取出し中に単一チャ
ネルにだけサービスできるという点で適応的である。以
下の例は、2つのユニットが異なる受信チャネルに関す
る要求の時間的にオーバーラップした処理を実行してい
る場合、両ユニットDMAC22とDMADB22Aが
異なる送信チャネルに関する要求の時間的にオーバーラ
ップした処理を実行している場合、両ユニットが反対向
きのチャネル(1本は受信チャネル、もう1本は送信チ
ャネル)に関する要求のオーバーラップした処理を実行
している場合、及び両ユニットが1本の送信チャネルに
関するDCB取出しを処理している場合、両ユニットが
どのようにして動作するかを例示するものである。各例
における時間及び一般機能基準フレームは、図2の間隔
50に関連する事象と見なすことができ、図13はこれ
らの例のレジスタに対する基準フレームとして使用する
ことができる。
適応パイプラインの使用例 DMAC22及びDMADB22Aは、異なるチャネル
に関して時間的にオーバーラップして動作することがで
き、任意の単一チャネルに関するその動作に関して有効
に減結合されるので、それらのレジスタはパイプライン
を形成して、すべてのチャネルに関する転送に関して両
ユニットに課される時間的制約を有効に低減する。この
パイプラインは、それが送信DCB取出し中に単一チャ
ネルにだけサービスできるという点で適応的である。以
下の例は、2つのユニットが異なる受信チャネルに関す
る要求の時間的にオーバーラップした処理を実行してい
る場合、両ユニットDMAC22とDMADB22Aが
異なる送信チャネルに関する要求の時間的にオーバーラ
ップした処理を実行している場合、両ユニットが反対向
きのチャネル(1本は受信チャネル、もう1本は送信チ
ャネル)に関する要求のオーバーラップした処理を実行
している場合、及び両ユニットが1本の送信チャネルに
関するDCB取出しを処理している場合、両ユニットが
どのようにして動作するかを例示するものである。各例
における時間及び一般機能基準フレームは、図2の間隔
50に関連する事象と見なすことができ、図13はこれ
らの例のレジスタに対する基準フレームとして使用する
ことができる。
【0132】例1 DMADBは受信チャネルC2に
関するデータ転送を実行し、DMACは受信チャネルC
3に関する転送を準備する この場合、DMACが、それぞれDMAC_B_OPC
ODE機能及びDMAC_C_OPCODE機能によっ
て規定される2ワード読出し要求のFIFORAM16
及びDMAC RAM24への同時供給によって、C
3のRDCRn/C3ワード(n=1−4)4個をすべ
て取り出している間に、DMADB22AはMIO25
と緊密にインターロックされて動作し、C2に割り当て
られたホストメモリ2bの循環バッファ記憶空間に関す
る転送を実行し、DMAC22及びDMADB22Aは
このとき有効に減結合される。DMADB22Aは、C
2に関する記憶動作を完了すると、DMADB_REQ
を0にリセットしてDMADB22Aが他のサービスに
利用できることを示し、またC2に関するDMARQ受
信要求ビットをリセットする。
関するデータ転送を実行し、DMACは受信チャネルC
3に関する転送を準備する この場合、DMACが、それぞれDMAC_B_OPC
ODE機能及びDMAC_C_OPCODE機能によっ
て規定される2ワード読出し要求のFIFORAM16
及びDMAC RAM24への同時供給によって、C
3のRDCRn/C3ワード(n=1−4)4個をすべ
て取り出している間に、DMADB22AはMIO25
と緊密にインターロックされて動作し、C2に割り当て
られたホストメモリ2bの循環バッファ記憶空間に関す
る転送を実行し、DMAC22及びDMADB22Aは
このとき有効に減結合される。DMADB22Aは、C
2に関する記憶動作を完了すると、DMADB_REQ
を0にリセットしてDMADB22Aが他のサービスに
利用できることを示し、またC2に関するDMARQ受
信要求ビットをリセットする。
【0133】DMAC22では、RDCR2/C3(C
3の最新受信データ)はDATAHOLD REG1
60に配置される。同時に、RDCR1/C3はCUR
RENT ADDR REG161に配置され、R
DCR3/C3はRFA_NDAREG162に入れら
れ、RDCR4/C3は受信境界循環バッファアドレス
・レジスタ(RBCA)に入れられる(図10参照)。 レジスタ161の現アドレスRDCAがレジスタ162
とレジスタRBCAの状態によって規定される境界内に
あることを確認した後(それが境界内にあると仮定して
)、DMAC22はその Current Addre
ss 値をレジスタ162に転送し、レジスタ160(
レジスタ160はカウント用レジスタ)無いに記憶され
た同じ値を、C3に割り当てられた循環バッファ空間の
次のアドレス位置を指示するように更新する。更新され
た Next Address 値は(FIFO R
AM要求ラッチ85へのDMACの1ワード書込み要求
を介して、図8)FIFO RAM16のC3のRD
CR1空間に戻して記憶される。
3の最新受信データ)はDATAHOLD REG1
60に配置される。同時に、RDCR1/C3はCUR
RENT ADDR REG161に配置され、R
DCR3/C3はRFA_NDAREG162に入れら
れ、RDCR4/C3は受信境界循環バッファアドレス
・レジスタ(RBCA)に入れられる(図10参照)。 レジスタ161の現アドレスRDCAがレジスタ162
とレジスタRBCAの状態によって規定される境界内に
あることを確認した後(それが境界内にあると仮定して
)、DMAC22はその Current Addre
ss 値をレジスタ162に転送し、レジスタ160(
レジスタ160はカウント用レジスタ)無いに記憶され
た同じ値を、C3に割り当てられた循環バッファ空間の
次のアドレス位置を指示するように更新する。更新され
た Next Address 値は(FIFO R
AM要求ラッチ85へのDMACの1ワード書込み要求
を介して、図8)FIFO RAM16のC3のRD
CR1空間に戻して記憶される。
【0134】DMADBレジスタ135のREQ部でR
EQビット値が0/リセットであることを条件として、
DMAC22はSTORE WORD OPCOD
E 01をDMADB OPCODEレジスタに転
送し、レジスタ162からのC3現アドレスをDMAD
Bレジスタ130に転送する(REQビットが0でない
場合、DMADB22AはC2に関して依然として使用
中であり、DMAC22は待つ)。同時に、DMAC2
2はDMACレジスタ160からのC3受信データをD
MADBレジスタ131に渡し、DMADB_REQを
使用中状態1にセットする。その後、DMADB22A
はC3記憶転送を続行する。
EQビット値が0/リセットであることを条件として、
DMAC22はSTORE WORD OPCOD
E 01をDMADB OPCODEレジスタに転
送し、レジスタ162からのC3現アドレスをDMAD
Bレジスタ130に転送する(REQビットが0でない
場合、DMADB22AはC2に関して依然として使用
中であり、DMAC22は待つ)。同時に、DMAC2
2はDMACレジスタ160からのC3受信データをD
MADBレジスタ131に渡し、DMADB_REQを
使用中状態1にセットする。その後、DMADB22A
はC3記憶転送を続行する。
【0135】例2 DMADBは送信チャネルC2に
関するデータ転送を実行し、DMACは送信チャネルC
3に関する転送を準備する DMAC22が、それぞれDMAC_B_OPCODE
機能及びDMAC_C_OPCODE機能によって規定
された2つのワード読出し要求のFIFO RAM1
6及びDMAC RAM24への同時供給によってワ
ードTDCRn/C3(n=1−4)を取り出す間に、
DMADB22Aは、MIO25と緊密にインターロッ
クされて動作し、C2に割り当てられたホストメモリ空
間に関する送信データ転送を実行する。DMAC22及
びDMADB22Aは、この場合有効に減結合される。 DMADB22Aは、C2送信データを受け取ると、D
MADB_REQをリセットし、DONE1をセットす
る。
関するデータ転送を実行し、DMACは送信チャネルC
3に関する転送を準備する DMAC22が、それぞれDMAC_B_OPCODE
機能及びDMAC_C_OPCODE機能によって規定
された2つのワード読出し要求のFIFO RAM1
6及びDMAC RAM24への同時供給によってワ
ードTDCRn/C3(n=1−4)を取り出す間に、
DMADB22Aは、MIO25と緊密にインターロッ
クされて動作し、C2に割り当てられたホストメモリ空
間に関する送信データ転送を実行する。DMAC22及
びDMADB22Aは、この場合有効に減結合される。 DMADB22Aは、C2送信データを受け取ると、D
MADB_REQをリセットし、DONE1をセットす
る。
【0136】DMAC22では、C3に対する送信バイ
トカウントを含むTDCR1/C3がDMACレジスタ
のRLA_TBCに配置され、送信データバッファ・ア
ドレス(TDBA)を含むTDCR3/C3がCURR
ENT ADDRREG161に配置され、TDCR
4/C3(次のDCBアドレス)がRFA_NDAレジ
スタ162に配置される。
トカウントを含むTDCR1/C3がDMACレジスタ
のRLA_TBCに配置され、送信データバッファ・ア
ドレス(TDBA)を含むTDCR3/C3がCURR
ENT ADDRREG161に配置され、TDCR
4/C3(次のDCBアドレス)がRFA_NDAレジ
スタ162に配置される。
【0137】送信バイトカウントが0でないこと、及び
ホストでプログラミングされた連鎖の終り指標及びフレ
ームの終り指標が当該終了状態を指示しないことを確認
した後、DMAC22はC3送信データ取出しの準備を
続行する。送信バイトカウントが0であり、かつ連鎖の
終りが指示されない場合、DMAC22はDCB取出し
を開始する(例4参照)。バイトカウントは0ではない
と仮定する。
ホストでプログラミングされた連鎖の終り指標及びフレ
ームの終り指標が当該終了状態を指示しないことを確認
した後、DMAC22はC3送信データ取出しの準備を
続行する。送信バイトカウントが0であり、かつ連鎖の
終りが指示されない場合、DMAC22はDCB取出し
を開始する(例4参照)。バイトカウントは0ではない
と仮定する。
【0138】次に、DMAC22は、C3現アドレスを
レジスタ161からレジスタ162に転送し、レジスタ
161のアドレスを次のデータバッファ・アドレスを指
示するように更新し、その値をTDCR3/C3用のD
MAC RAM24記憶空間に戻して記憶する。また
、RLA_TBCのバイトカウントは更新され、FIF
O RAM内のTDCR1/C3に戻して記憶される
。
レジスタ161からレジスタ162に転送し、レジスタ
161のアドレスを次のデータバッファ・アドレスを指
示するように更新し、その値をTDCR3/C3用のD
MAC RAM24記憶空間に戻して記憶する。また
、RLA_TBCのバイトカウントは更新され、FIF
O RAM内のTDCR1/C3に戻して記憶される
。
【0139】DMADB_REQの値が0(リセット)
、DMADB_DONE1の値が1(DMADB22A
がレジスタ131へのC2送信データ取出しを完了した
ことを実際に指示する)であることを条件として、DM
AC22はレジスタ131からのC2送信データをレジ
スタ160に転送し、同時にC3現データバッファ・ア
ドレスをレジスタ162からレジスタ130に転送する
。同時に、DMACはWORD FETCH OP
CODE(ワード取出し命令コード)00をDMADB
22Aに提示し、DMADB_REQを使用中状態1に
セットする。その後、DMAC22及びDMADB22
Aは減結合して動作する。すなわち、DMAC22はC
2送信データをFIFO RAM16のTDCR2/
C2空間に記憶し、DMADB22AはMIO25と緊
密に協調して、ホストメモリ2bからC3送信データを
取り出す。C2送信データをFIFO RAM16に
記憶する間に、DMAC22はC2のDMARQ送信要
求ビットをリセットする。
、DMADB_DONE1の値が1(DMADB22A
がレジスタ131へのC2送信データ取出しを完了した
ことを実際に指示する)であることを条件として、DM
AC22はレジスタ131からのC2送信データをレジ
スタ160に転送し、同時にC3現データバッファ・ア
ドレスをレジスタ162からレジスタ130に転送する
。同時に、DMACはWORD FETCH OP
CODE(ワード取出し命令コード)00をDMADB
22Aに提示し、DMADB_REQを使用中状態1に
セットする。その後、DMAC22及びDMADB22
Aは減結合して動作する。すなわち、DMAC22はC
2送信データをFIFO RAM16のTDCR2/
C2空間に記憶し、DMADB22AはMIO25と緊
密に協調して、ホストメモリ2bからC3送信データを
取り出す。C2送信データをFIFO RAM16に
記憶する間に、DMAC22はC2のDMARQ送信要
求ビットをリセットする。
【0140】例3 DMADBは送信チャネルC2に
関するXMITデータ取出しを実行し、DMACは受信
チャネルC3に関するRCVデータ記憶転送を準備する
例1の場合と同様に、DMAC22がC3のRDCRn
/C3ワード(n=1−4)のすべてを取り出す間に、
DMADB22AはMIO25と緊密にインターロック
されて動作し、ホストメモリ2bに関するC2について
の送信データ取出しを実行する。DMAC22及びDM
ADB22Aはこのとき有効に減結合される。C2動作
を完了すると、DMADB22AはDMADB_REQ
を0にリセットする。
関するXMITデータ取出しを実行し、DMACは受信
チャネルC3に関するRCVデータ記憶転送を準備する
例1の場合と同様に、DMAC22がC3のRDCRn
/C3ワード(n=1−4)のすべてを取り出す間に、
DMADB22AはMIO25と緊密にインターロック
されて動作し、ホストメモリ2bに関するC2について
の送信データ取出しを実行する。DMAC22及びDM
ADB22Aはこのとき有効に減結合される。C2動作
を完了すると、DMADB22AはDMADB_REQ
を0にリセットする。
【0141】例1の場合と同様に、C3についての現循
環バッファアドレスがDMACレジスタ161に配置さ
れ、他のRDCRパラメータによって規定される境界の
範囲内にあることが確認される。次に、Current
Address がレジスタ162に転送され、レジ
スタ161で更新され、更新値が、例1の場合と同様に
FIFO RAM16に戻して記憶される。
環バッファアドレスがDMACレジスタ161に配置さ
れ、他のRDCRパラメータによって規定される境界の
範囲内にあることが確認される。次に、Current
Address がレジスタ162に転送され、レジ
スタ161で更新され、更新値が、例1の場合と同様に
FIFO RAM16に戻して記憶される。
【0142】DMADB_REQビットが0で、DMA
DB_DONE1が1でDMADBレジスタ131に関
するC2送信データ取出しの完了を指示することを条件
として、DMAC22はC3受信データをC2送信デー
タに交換し(C3受信データをレジスタ131に配置し
、C2送信データをレジスタ160に配置する)、現C
3送信データバッファ・アドレスをレジスタ162から
DMADBレジスタ130に転送し、STORE W
ORD OPCODE 01をDMADB22Aに
提示し、DMADB_OPCODEを1にセットする。
DB_DONE1が1でDMADBレジスタ131に関
するC2送信データ取出しの完了を指示することを条件
として、DMAC22はC3受信データをC2送信デー
タに交換し(C3受信データをレジスタ131に配置し
、C2送信データをレジスタ160に配置する)、現C
3送信データバッファ・アドレスをレジスタ162から
DMADBレジスタ130に転送し、STORE W
ORD OPCODE 01をDMADB22Aに
提示し、DMADB_OPCODEを1にセットする。
【0143】次に、DMAC22及びDMADB22A
は減結合されて動作し、同時に、DMAC22はC2送
信データをFIFO RAM16に記憶し、DMAD
B22AはC3受信データをホストメモリ2bのC3の
循環バッファ空間の記憶域に転送する。C2送信データ
を記憶する間に、DMAC22はDMARQ23のC2
送信要求ビットをリセットする。
は減結合されて動作し、同時に、DMAC22はC2送
信データをFIFO RAM16に記憶し、DMAD
B22AはC3受信データをホストメモリ2bのC3の
循環バッファ空間の記憶域に転送する。C2送信データ
を記憶する間に、DMAC22はDMARQ23のC2
送信要求ビットをリセットする。
【0144】例4 DMADBは任意のチャネルC2
に関して動作し、XMITチャネルC3からの要求に応
答するDMACはホストメモリからFIFO RAM
のTDCR3/C3へのDCB(3ワード)取出しを要
求する条件に遭遇する 例2の場合と同様に、DMAC22がTDCRn/C3
(n=1−4)を取り出す間に、DMADB22AはM
IO25と緊密にインターロック動作し、DMAC22
から減結合されてC2に関するデータ転送を実行する。 簡単にするために、DMADB22AはC2受信データ
をホストメモリに転送中であり、実行終了後DMADB
_REQ及びC2のDMARQ RCV要求をリセッ
トするので、DMAC22はC2についてもうこれ以上
実行することはないと仮定する。
に関して動作し、XMITチャネルC3からの要求に応
答するDMACはホストメモリからFIFO RAM
のTDCR3/C3へのDCB(3ワード)取出しを要
求する条件に遭遇する 例2の場合と同様に、DMAC22がTDCRn/C3
(n=1−4)を取り出す間に、DMADB22AはM
IO25と緊密にインターロック動作し、DMAC22
から減結合されてC2に関するデータ転送を実行する。 簡単にするために、DMADB22AはC2受信データ
をホストメモリに転送中であり、実行終了後DMADB
_REQ及びC2のDMARQ RCV要求をリセッ
トするので、DMAC22はC2についてもうこれ以上
実行することはないと仮定する。
【0145】C3に関して送信データバイト・カウント
が0であり、プログラミングされた指標ECIが連鎖の
終りを示さないと仮定する。これはDMAC22によっ
て、C3に関して3ワードDCB取出しが必要であると
いう指示として検出される。これを検出すると、DMA
C22は現チャネル番号をレジスタ163からPREV
IOUS CH NBRレジスタ164に転送する
。
が0であり、プログラミングされた指標ECIが連鎖の
終りを示さないと仮定する。これはDMAC22によっ
て、C3に関して3ワードDCB取出しが必要であると
いう指示として検出される。これを検出すると、DMA
C22は現チャネル番号をレジスタ163からPREV
IOUS CH NBRレジスタ164に転送する
。
【0146】DMADB_REQが0であることを条件
として、DMACはC3の次のDCBアドレスDCBA
をDMACレジスタ162からDMADBレジスタ13
0に転送し、DMADB_REQを1にセットし、FE
TCH DCB OPCODE(DCB取出し命令
コード)10をDMADB22Aに提示する。これによ
って、DMADB22A及びMIO25はC3に関して
ホストメモリ2bから一連の3つのDCBワード取出し
を開始する。ホストメモリ2bからのワード取出しの順
序に並んだこれらの3ワードは、TDCR3、TDCR
4、及びTDCR1内(DMAC RAM24及びF
IFO RAM16内)に記憶された情報にそれぞれ
対応する。
として、DMACはC3の次のDCBアドレスDCBA
をDMACレジスタ162からDMADBレジスタ13
0に転送し、DMADB_REQを1にセットし、FE
TCH DCB OPCODE(DCB取出し命令
コード)10をDMADB22Aに提示する。これによ
って、DMADB22A及びMIO25はC3に関して
ホストメモリ2bから一連の3つのDCBワード取出し
を開始する。ホストメモリ2bからのワード取出しの順
序に並んだこれらの3ワードは、TDCR3、TDCR
4、及びTDCR1内(DMAC RAM24及びF
IFO RAM16内)に記憶された情報にそれぞれ
対応する。
【0147】DMADB22Aがホストメモリ2bから
第1のDCBワードを取り出すと、そのワードはDMA
DB_DATA_REGにラッチされ、DMADB_A
CK0はDMAC22に提示される。これに応答して、
DMAC22は(新しい送信データバッファ・アドレス
を含む)第1のDCBワードをそのCURRENTAD
DR REGにラッチし、その中にある「旧」TDB
Aアドレスを新しいDCBのTDBAアドレスに置き換
える。
第1のDCBワードを取り出すと、そのワードはDMA
DB_DATA_REGにラッチされ、DMADB_A
CK0はDMAC22に提示される。これに応答して、
DMAC22は(新しい送信データバッファ・アドレス
を含む)第1のDCBワードをそのCURRENTAD
DR REGにラッチし、その中にある「旧」TDB
Aアドレスを新しいDCBのTDBAアドレスに置き換
える。
【0148】DMADB22Aは第2のDCBワードを
取り出すと、そのワードをDMADB_DATA_RE
Gにラッチし、DMADB_ACK1をDMAC22に
提示する。これに応答して、DMAC22は(新しい
Next DCB Address を含む)第2のD
CBワードをそのRFA_NDAREGにラッチし、古
い Next DCB Address 機能を置き換
える。さらに、DMAC状態機械DMA_Aが、ECI
ビット及びRFIビットを新しい第2のDCBワードに
ラッチする。
取り出すと、そのワードをDMADB_DATA_RE
Gにラッチし、DMADB_ACK1をDMAC22に
提示する。これに応答して、DMAC22は(新しい
Next DCB Address を含む)第2のD
CBワードをそのRFA_NDAREGにラッチし、古
い Next DCB Address 機能を置き換
える。さらに、DMAC状態機械DMA_Aが、ECI
ビット及びRFIビットを新しい第2のDCBワードに
ラッチする。
【0149】DMADB22Aは第3/最後のDCBワ
ードを取り出すと、そのワードをDMADB_DATA
_REGにラッチし、DMADB_DONE2及びDM
ADB_ACK2をDMAC22に提示し、DMAD_
REQをリセットする(DMADB22Aによる3ワー
ド取出し動作の完了を指示する)。これに応答して、D
MAC22は(新しい送信データバイト・カウントパラ
メータ(TDBC)を含む)第3のDCBワードをその
RLA_TBCレジスタにラッチし、その中にある古い
送信バイトカウント機能を置き換える。
ードを取り出すと、そのワードをDMADB_DATA
_REGにラッチし、DMADB_DONE2及びDM
ADB_ACK2をDMAC22に提示し、DMAD_
REQをリセットする(DMADB22Aによる3ワー
ド取出し動作の完了を指示する)。これに応答して、D
MAC22は(新しい送信データバイト・カウントパラ
メータ(TDBC)を含む)第3のDCBワードをその
RLA_TBCレジスタにラッチし、その中にある古い
送信バイトカウント機能を置き換える。
【0150】DONE2指標から、いまや新しいDCB
情報のすべてをラッチしたことを認識すると、DMAC
22は新しい送信バイトカウントを調べる。新しいカウ
ントが0(「空のDCB」の受取りを示す)であり、新
しいECI指標及びEFI指標が連鎖の終り又はフレー
ムの終りを示す場合、DMAC22は新しいDCB情報
をDMAC RAM24及びFIFO RAM16
に記憶し、新しいDCB取出し動作を起こしたDMAR
Q送信データ要求をリセットする。新しいバイトカウン
トが0であり、新しいECI及びEFIが連鎖の終りも
フレームの終りも示さない場合、DMAC22はTDF
SWのNDI指標をオンにし、そのフィールドのビット
ECD及びEFDをそれぞれECIの値及びEFIの値
にセットし、C3のDMARQ要求をリセットしないで
(これによって、DMACは、リセットされないC3要
求に戻る前に、1以上の他の要求にサービスすることが
できる)新しいDCBをDMAC RAM24及びF
IFO RAM16に記憶する。新しい送信バイトカ
ウントが0でない場合、DMAC22はCURRENT
_ADDR_REGの内容をDMADB_ADDR_R
EGに転送し、DMADB_REQをオンにセットし、
DMADB_OPCODE 00(FETCH W
ORD)を提示し、新しく取り出されたDCBによって
指定されるC3に関する送信データの第1ワードを取り
出す際にDMADB22Aを起動し、それによって、新
しく検索されたDCBに関してC3の第1送信データ取
出し時に直ちにDMADB22A/MIO25を起動す
る。
情報のすべてをラッチしたことを認識すると、DMAC
22は新しい送信バイトカウントを調べる。新しいカウ
ントが0(「空のDCB」の受取りを示す)であり、新
しいECI指標及びEFI指標が連鎖の終り又はフレー
ムの終りを示す場合、DMAC22は新しいDCB情報
をDMAC RAM24及びFIFO RAM16
に記憶し、新しいDCB取出し動作を起こしたDMAR
Q送信データ要求をリセットする。新しいバイトカウン
トが0であり、新しいECI及びEFIが連鎖の終りも
フレームの終りも示さない場合、DMAC22はTDF
SWのNDI指標をオンにし、そのフィールドのビット
ECD及びEFDをそれぞれECIの値及びEFIの値
にセットし、C3のDMARQ要求をリセットしないで
(これによって、DMACは、リセットされないC3要
求に戻る前に、1以上の他の要求にサービスすることが
できる)新しいDCBをDMAC RAM24及びF
IFO RAM16に記憶する。新しい送信バイトカ
ウントが0でない場合、DMAC22はCURRENT
_ADDR_REGの内容をDMADB_ADDR_R
EGに転送し、DMADB_REQをオンにセットし、
DMADB_OPCODE 00(FETCH W
ORD)を提示し、新しく取り出されたDCBによって
指定されるC3に関する送信データの第1ワードを取り
出す際にDMADB22Aを起動し、それによって、新
しく検索されたDCBに関してC3の第1送信データ取
出し時に直ちにDMADB22A/MIO25を起動す
る。
【0151】DMADB22A/MIO25がこの要求
に対して動作している間に、DMAC22はレジスタ1
61の Current Address 値、及びR
LA_TBCの送信バイトカウントを更新し、(更新さ
れたバイトカウントを含む)第3の受信されたDCBワ
ードをFIFO RAM16内に記憶する。同時に、
新しいC3 DCBの更新された第1及び第2の受信
されたワードを(DMAC RAMへの2ワード書込
み要求によって)DMAC RAM24に記憶し、あ
るチャネルが保留されている場合、他のチャネルのDM
ARQ要求へのサービスを開始する(新しいDCB取出
しを発生させたC3送信データについての最初の要求は
、その新しいDCBによって指定される第1の送信デー
タワードをDMAC22が受け取るまでリセットされな
いことに留意されたい)。 このように、DMAC22レジスタ及びDMADBレジ
スタのパイプラインは、DCB取出しの第3ワードをD
MAC22が受け取り次第、2本のチャネルに関して時
間的にオーバーラップして直ちに動作することができる
。
に対して動作している間に、DMAC22はレジスタ1
61の Current Address 値、及びR
LA_TBCの送信バイトカウントを更新し、(更新さ
れたバイトカウントを含む)第3の受信されたDCBワ
ードをFIFO RAM16内に記憶する。同時に、
新しいC3 DCBの更新された第1及び第2の受信
されたワードを(DMAC RAMへの2ワード書込
み要求によって)DMAC RAM24に記憶し、あ
るチャネルが保留されている場合、他のチャネルのDM
ARQ要求へのサービスを開始する(新しいDCB取出
しを発生させたC3送信データについての最初の要求は
、その新しいDCBによって指定される第1の送信デー
タワードをDMAC22が受け取るまでリセットされな
いことに留意されたい)。 このように、DMAC22レジスタ及びDMADBレジ
スタのパイプラインは、DCB取出しの第3ワードをD
MAC22が受け取り次第、2本のチャネルに関して時
間的にオーバーラップして直ちに動作することができる
。
【0152】バイトカウントが0であり、かつ終り指標
ECI又はEFIのいずれもオンでない上記のケース(
DCBがC3 DMARQ要求をリセットしないで局
所的に記憶される場合)に関して、(必要とされる他の
チャネル要求にサービスした後)DMAC22が関連す
るC3 DMARQ送信データ要求のサービスに戻る
と、DMAC22は新しいDCB制御情報を取り出し、
終り指標のない0カウントを再検出し、C3に関する別
のDCB取出し時に(今度は最後に受け取ったDCB内
に含まれる新しいDCBアドレスに関して)DMADB
22Aを起動する。
ECI又はEFIのいずれもオンでない上記のケース(
DCBがC3 DMARQ要求をリセットしないで局
所的に記憶される場合)に関して、(必要とされる他の
チャネル要求にサービスした後)DMAC22が関連す
るC3 DMARQ送信データ要求のサービスに戻る
と、DMAC22は新しいDCB制御情報を取り出し、
終り指標のない0カウントを再検出し、C3に関する別
のDCB取出し時に(今度は最後に受け取ったDCB内
に含まれる新しいDCBアドレスに関して)DMADB
22Aを起動する。
【0153】10.MIOバス保持動作MIOは、以下
に記述するマイクロ・チャネル・バス保持機能を除いて
、本質的に、前に引用した米国特許出願第07/495
232号及び第07/495810号に記述されたMI
Oユニットと論理的かつ機能的に同じである。MIOタ
イマユニット147(図12)は、この機能に関するい
くつかの付随的入力を供給する。以下の議論は、図12
を参照して読まれたい。
に記述するマイクロ・チャネル・バス保持機能を除いて
、本質的に、前に引用した米国特許出願第07/495
232号及び第07/495810号に記述されたMI
Oユニットと論理的かつ機能的に同じである。MIOタ
イマユニット147(図12)は、この機能に関するい
くつかの付随的入力を供給する。以下の議論は、図12
を参照して読まれたい。
【0154】前述のように、マイクロチャネル・バスに
接続された装置は、プリエンプト線を介してそのバスへ
のアクセスを通知する。そのバスがアクセスに使用可能
であると、ホストプロセッサ(どの図面にも図示せず)
と結合した中央コントローラは、調停許可信号を線AR
B_GNT上に供給する(図12)。そのときアクセス
を要求する装置は、バス上のレベル指示を評価し、これ
らの装置自体のレベル指示より高い外部レベル指示を検
出した場合、調停競合からそれらの装置自体を除去する
。最終的に、1つの装置が競合状態のまま残り、調停サ
イクルが完了し、(CMD線を活動化する)優位の装置
がバスを勝ち取る(バスの制御権を取る)。効率的なシ
ステム動作のためには、バスを制御している各装置がそ
の制御権を不当に拡大しないことが重要である。
接続された装置は、プリエンプト線を介してそのバスへ
のアクセスを通知する。そのバスがアクセスに使用可能
であると、ホストプロセッサ(どの図面にも図示せず)
と結合した中央コントローラは、調停許可信号を線AR
B_GNT上に供給する(図12)。そのときアクセス
を要求する装置は、バス上のレベル指示を評価し、これ
らの装置自体のレベル指示より高い外部レベル指示を検
出した場合、調停競合からそれらの装置自体を除去する
。最終的に、1つの装置が競合状態のまま残り、調停サ
イクルが完了し、(CMD線を活動化する)優位の装置
がバスを勝ち取る(バスの制御権を取る)。効率的なシ
ステム動作のためには、バスを制御している各装置がそ
の制御権を不当に拡大しないことが重要である。
【0155】現在調停中の装置、及び制御権を勝ち取れ
ない装置が、それらのプリエンプト線を活動状態に駆動
し続けることがある。外部調停コントローラは、CMD
線及びプリエンプト線を継続して監視する。CMD線は
、ある装置がいつバス制御権を取ったかを決定し、プリ
エンプト線は、制御が開始した後の調停競合の状態を決
定する。プリエンプト線が活動状態になってから約7.
8マイクロ秒後に、またプリエンプト線が開始時に活動
状態であった場合は制御が開始してから7.8マイクロ
秒後に、調停コントローラは、バス調停及び制御の次の
サイクルを開始するための他の調停許可を出す。したが
って、バスを制御している装置は、プリエンプト線が非
活動状態から活動状態になる時点、またプリエンプト線
がそのとき活動状態であった場合はそれが制御権を取っ
た時点から7.8マイクロ秒以内に、制御権を放棄する
準備ができていなければならない。
ない装置が、それらのプリエンプト線を活動状態に駆動
し続けることがある。外部調停コントローラは、CMD
線及びプリエンプト線を継続して監視する。CMD線は
、ある装置がいつバス制御権を取ったかを決定し、プリ
エンプト線は、制御が開始した後の調停競合の状態を決
定する。プリエンプト線が活動状態になってから約7.
8マイクロ秒後に、またプリエンプト線が開始時に活動
状態であった場合は制御が開始してから7.8マイクロ
秒後に、調停コントローラは、バス調停及び制御の次の
サイクルを開始するための他の調停許可を出す。したが
って、バスを制御している装置は、プリエンプト線が非
活動状態から活動状態になる時点、またプリエンプト線
がそのとき活動状態であった場合はそれが制御権を取っ
た時点から7.8マイクロ秒以内に、制御権を放棄する
準備ができていなければならない。
【0156】この点で、このIIM設計に関して問題が
生じる。というのは、DMAC22及びMIO25/D
MADB22Aは、DMAC22があるチャネルに関す
る動作を準備中であり、同時にMIO25及びDMAD
B22Aが他のチャネルに関する動作をすでに終了して
いる、短い時間中に有効に減結合されるためである。こ
のようなとき、MIO25が直ちにバスを放棄した場合
、DMAC22及びDMADB22Aのパイプラインは
(DMAC22内で)半分満たされ、バスに関する再調
停をMIO25に求め、制御権を得る前に、DMAC2
2と制御権が放棄された場合その要求がサービスを受け
ていたチャネルとが有効にブロックされている間に、さ
らに200マイクロ秒の遅延時間が生ずる可能性ができ
る。その結果、望ましくない性能低下が生じる可能性が
ある。
生じる。というのは、DMAC22及びMIO25/D
MADB22Aは、DMAC22があるチャネルに関す
る動作を準備中であり、同時にMIO25及びDMAD
B22Aが他のチャネルに関する動作をすでに終了して
いる、短い時間中に有効に減結合されるためである。こ
のようなとき、MIO25が直ちにバスを放棄した場合
、DMAC22及びDMADB22Aのパイプラインは
(DMAC22内で)半分満たされ、バスに関する再調
停をMIO25に求め、制御権を得る前に、DMAC2
2と制御権が放棄された場合その要求がサービスを受け
ていたチャネルとが有効にブロックされている間に、さ
らに200マイクロ秒の遅延時間が生ずる可能性ができ
る。その結果、望ましくない性能低下が生じる可能性が
ある。
【0157】DMAC22が現在別のチャネル要求を処
理している減結合の瞬時が必然的にきわめて短い(MI
O/DMADB動作のせいぜいいくつかの内部機械サイ
クル時間)ことを認識して、DONE状態に達した後に
、数サイクルギャップにまたがる対応する期間だけMI
O25がバスを放棄する時点を遅らせるように、MIO
25を適応させることが決定された。すなわち、MIO
25はDONE状態に達した後その長さの時間(約0.
4マイクロ秒)だけバスの保持/制御を継続し、その間
にDMAC22/DMADB22Aから読出し又は書込
み動作要求を受け取っていない場合は、その時間後にバ
スを放棄する。MIO25はこの「バス保持」間隔中に
読出し又は書込み要求を受け取った場合、アイドル状態
期間がなかったかのように制御権を保持する。
理している減結合の瞬時が必然的にきわめて短い(MI
O/DMADB動作のせいぜいいくつかの内部機械サイ
クル時間)ことを認識して、DONE状態に達した後に
、数サイクルギャップにまたがる対応する期間だけMI
O25がバスを放棄する時点を遅らせるように、MIO
25を適応させることが決定された。すなわち、MIO
25はDONE状態に達した後その長さの時間(約0.
4マイクロ秒)だけバスの保持/制御を継続し、その間
にDMAC22/DMADB22Aから読出し又は書込
み動作要求を受け取っていない場合は、その時間後にバ
スを放棄する。MIO25はこの「バス保持」間隔中に
読出し又は書込み要求を受け取った場合、アイドル状態
期間がなかったかのように制御権を保持する。
【0158】このバス保持動作には例外がある。MIO
25がバスの制御権を得ると、プリエンプト線を監視し
、プリエンプト線が活動状態になった場合か又はプリエ
ンプト線がバス制御の開始時に活動状態であった場合、
MIO25はその内部タイマ147を、6マイクロ秒よ
り少し長く続くタイムアウトを開始するように条件づけ
る。MIO25がDMAC22/DMADB22Aから
読出し又は書込み要求を受け取り、同時にタイマカウン
トがこのタイムアウトになるまでに4マイクロ秒未満し
かない場合、要求された動作が開始される。タイマカウ
ントが4〜6マイクロ秒間にあるときにMIO25が要
求を受け取った場合、要求動作は、それがDCB取出し
要求以外の場合だけ、すなわち、それが受信データ又は
送信データの転送要求である場合にだけ開始される。要
求を6マイクロ秒より後に受け取った場合は、何の処置
も取られない。
25がバスの制御権を得ると、プリエンプト線を監視し
、プリエンプト線が活動状態になった場合か又はプリエ
ンプト線がバス制御の開始時に活動状態であった場合、
MIO25はその内部タイマ147を、6マイクロ秒よ
り少し長く続くタイムアウトを開始するように条件づけ
る。MIO25がDMAC22/DMADB22Aから
読出し又は書込み要求を受け取り、同時にタイマカウン
トがこのタイムアウトになるまでに4マイクロ秒未満し
かない場合、要求された動作が開始される。タイマカウ
ントが4〜6マイクロ秒間にあるときにMIO25が要
求を受け取った場合、要求動作は、それがDCB取出し
要求以外の場合だけ、すなわち、それが受信データ又は
送信データの転送要求である場合にだけ開始される。要
求を6マイクロ秒より後に受け取った場合は、何の処置
も取られない。
【0159】このように、MIO25がDONE状態に
あり、そのタイマが(プリエンプト線が活動状態になっ
てから)4マイクロ秒より短い経過時間を示す場合、バ
スは追加の保持期間だけ保持される。しかし、MIO2
5がDONE状態にあり、そのタイマが4〜6マイクロ
秒間を示す場合、バスは保持されるが、MIO25はD
CB取出し要求以外の要求を受け取った場合にだけ使用
される。最後に、MIO25がDONE状態にあり、そ
のタイマが6マイクロ秒より長い経過時間を示す場合、
MIO25はバス制御権を直ちに放棄する。
あり、そのタイマが(プリエンプト線が活動状態になっ
てから)4マイクロ秒より短い経過時間を示す場合、バ
スは追加の保持期間だけ保持される。しかし、MIO2
5がDONE状態にあり、そのタイマが4〜6マイクロ
秒間を示す場合、バスは保持されるが、MIO25はD
CB取出し要求以外の要求を受け取った場合にだけ使用
される。最後に、MIO25がDONE状態にあり、そ
のタイマが6マイクロ秒より長い経過時間を示す場合、
MIO25はバス制御権を直ちに放棄する。
【0160】11.状態機械の詳細
現在興味のある状態機械は、DMAC22、DMADB
22A、及びMIO25の状態機械である(MIOに関
しては、MIOの他のすべての機能が前記の米国特許出
願第07/49523号及び第07/495810号の
IDLC装置で使用されるMIOの機能と論理的に同じ
である限り、現在興味のある状態機械の機能はバス保持
に関するものである)。各状態機械に関して、論理回路
の外部入出力の機能について最初に述べ、次に状態機械
の状態及び状態遷移の詳細について述べる。DMAC状
態機械に関して、図10に示された集合体103の入出
力を最初にリストしてから、次に個々の状態機械の説明
を行う。状態機械の状態及び状態遷移の記述は、論理回
路設計分野の当業者にとっては基礎的論理を完全に定義
しているものと見なされる。
22A、及びMIO25の状態機械である(MIOに関
しては、MIOの他のすべての機能が前記の米国特許出
願第07/49523号及び第07/495810号の
IDLC装置で使用されるMIOの機能と論理的に同じ
である限り、現在興味のある状態機械の機能はバス保持
に関するものである)。各状態機械に関して、論理回路
の外部入出力の機能について最初に述べ、次に状態機械
の状態及び状態遷移の詳細について述べる。DMAC状
態機械に関して、図10に示された集合体103の入出
力を最初にリストしてから、次に個々の状態機械の説明
を行う。状態機械の状態及び状態遷移の記述は、論理回
路設計分野の当業者にとっては基礎的論理を完全に定義
しているものと見なされる。
【0161】11.1 DMAC状態機械状態機械1
03(図10)は5つの緊密に結合された状態機械DM
A_A、DMA_B、DMA_C、RCV_ARB、及
びXMIT_ARBを備えている。これらの状態機械へ
の外部入力及びそれらの出力について、本節で説明する
。これらの状態機械、それらの状態及び状態遷移の説明
は別の節で行う。
03(図10)は5つの緊密に結合された状態機械DM
A_A、DMA_B、DMA_C、RCV_ARB、及
びXMIT_ARBを備えている。これらの状態機械へ
の外部入力及びそれらの出力について、本節で説明する
。これらの状態機械、それらの状態及び状態遷移の説明
は別の節で行う。
【0162】状態機械DMA_Aは他の4つの状態機械
の動作を調整する。DMA_B状態機械はFIFO
RAM16へのDMACアクセスを制御する。DMA_
C状態機械はDMAC RAM24へのDMACアク
セスを制御する。RCV_ARB状態機械及びXMIT
_ARB状態機械はそれぞれDMARQ23の受信チャ
ネル要求及び送信チャネル要求のポーリングを制御する
。
の動作を調整する。DMA_B状態機械はFIFO
RAM16へのDMACアクセスを制御する。DMA_
C状態機械はDMAC RAM24へのDMACアク
セスを制御する。RCV_ARB状態機械及びXMIT
_ARB状態機械はそれぞれDMARQ23の受信チャ
ネル要求及び送信チャネル要求のポーリングを制御する
。
【0163】状態機械103は、図16に示された内部
機能レジスタを介して情報を交換する。このレジスタの
情報単位の名前、及びそれらのビット幅は、図16に示
されており、以下のように規定される。
機能レジスタを介して情報を交換する。このレジスタの
情報単位の名前、及びそれらのビット幅は、図16に示
されており、以下のように規定される。
【0164】DMA_B_REQ:DMA_A状態機械
によってセットされ、DMA_B状態機械によってリセ
ットされる要求ビット。セットされると、DMA_B状
態機械は、DMA_B_OPCODEによって規定され
る動作のためにFIFO RAM16にアクセスする
ように要求される。
によってセットされ、DMA_B状態機械によってリセ
ットされる要求ビット。セットされると、DMA_B状
態機械は、DMA_B_OPCODEによって規定され
る動作のためにFIFO RAM16にアクセスする
ように要求される。
【0165】DMA_B_OPCODE:以下のFIF
O RAM16に関する7つの動作のうちの1つを実
行するようにとのDMA_B状態機械への命令として、
DMA_A状態機械によってセットされる。 OPCODE 動作 000 受信データバッファ・
アドレス(RDBA)を読み出す 001
更新されたRDBAを書き込む 010
RDBAを書き込み、DMARQ要
求ビットをリセットする 011
送信データバイト・カウント(TDBC)を読み出す
100 TDBCを書き込む
101 送信データを書き込み、
DMARQ要求ビットをリセットす
る 110
TDBCを書き込み、DMARQ要求ビットをリセット
する
O RAM16に関する7つの動作のうちの1つを実
行するようにとのDMA_B状態機械への命令として、
DMA_A状態機械によってセットされる。 OPCODE 動作 000 受信データバッファ・
アドレス(RDBA)を読み出す 001
更新されたRDBAを書き込む 010
RDBAを書き込み、DMARQ要
求ビットをリセットする 011
送信データバイト・カウント(TDBC)を読み出す
100 TDBCを書き込む
101 送信データを書き込み、
DMARQ要求ビットをリセットす
る 110
TDBCを書き込み、DMARQ要求ビットをリセット
する
【0166】DMA_C_REQ:DMA_A状態
機械によってセットされ、DMA_C状態機械によって
リセットされる。セットされると、DMA_C_OPC
ODEによって規定される動作のためにDMAC R
AM24にアクセスするように、DMA_C状態機械に
要求する。
機械によってセットされ、DMA_C状態機械によって
リセットされる。セットされると、DMA_C_OPC
ODEによって規定される動作のためにDMAC R
AM24にアクセスするように、DMA_C状態機械に
要求する。
【0167】DMA_C_OPCODE:DMAC
RAM24に関する以下の4つの動作のうちの1つを実
行するようにとのDMA_C状態機械へのDMA_A状
態機械の命令。 OPCODE 動 作 00 DMAC RAM
24から受信第1アドレス、最終アドレス、
及び境界アドレスを読み出
す 01 送信データバッフ
ァ・アドレス(TDBA)、Next DCB
Address、ECI、及びEFIを
読み出す 10 TDBA、
Next DCB Address、ECI、及びEF
Iを書き 込む
11 TDBAを書き込む
RAM24に関する以下の4つの動作のうちの1つを実
行するようにとのDMA_C状態機械へのDMA_A状
態機械の命令。 OPCODE 動 作 00 DMAC RAM
24から受信第1アドレス、最終アドレス、
及び境界アドレスを読み出
す 01 送信データバッフ
ァ・アドレス(TDBA)、Next DCB
Address、ECI、及びEFIを
読み出す 10 TDBA、
Next DCB Address、ECI、及びEF
Iを書き 込む
11 TDBAを書き込む
【
0168】DMAC_DMADB_OPCODE:DM
ADB22Aへの命令(STORERECEIVE
DATA(受信データ記憶)、FETCHTRANSM
ITDATA(送信データ取出し)、又はFETCH
3 WORD DCB(3ワードDCB取出し)
)として状態機械DMA_Aによってセットされる
0168】DMAC_DMADB_OPCODE:DM
ADB22Aへの命令(STORERECEIVE
DATA(受信データ記憶)、FETCHTRANSM
ITDATA(送信データ取出し)、又はFETCH
3 WORD DCB(3ワードDCB取出し)
)として状態機械DMA_Aによってセットされる
【0
169】RCV/XMIT:DMA_A状態機械の現サ
ービスを指示する。セットされている場合は、受信チャ
ネルがサービスを受けており、セットされていない場合
は、送信チャネルがサービスを受けている。
169】RCV/XMIT:DMA_A状態機械の現サ
ービスを指示する。セットされている場合は、受信チャ
ネルがサービスを受けており、セットされていない場合
は、送信チャネルがサービスを受けている。
【0170】DMAC/MASK:同じDMARQ要求
の二重選択を防止するため、サービス中のチャネル要求
ビットをマスクアウトするために使用される
の二重選択を防止するため、サービス中のチャネル要求
ビットをマスクアウトするために使用される
【0171
】DMADB/MASK:DMADB22A/MIO2
5から現在サービスを受けている以前に準備されたチャ
ネルの要求をマスクするために使用される
】DMADB/MASK:DMADB22A/MIO2
5から現在サービスを受けている以前に準備されたチャ
ネルの要求をマスクするために使用される
【0172】
DMAC/CHN_NBR:DMACで現在サービス中
の未マスクの要求に関連するチャネルを識別する番号(
DMADB_CHN_NBR参照)。DMARQ要求ラ
ッチにリセット信号を送り、FIFO RAM16及
びDMAC RAM24にアドレスするために使用さ
れる。また、同じチャネル要求の二重選択を防止するた
めすでに選択された要求をマスクアウトするためにRC
V/XMIT及びDMAC_MASKと共に使用される
DMAC/CHN_NBR:DMACで現在サービス中
の未マスクの要求に関連するチャネルを識別する番号(
DMADB_CHN_NBR参照)。DMARQ要求ラ
ッチにリセット信号を送り、FIFO RAM16及
びDMAC RAM24にアドレスするために使用さ
れる。また、同じチャネル要求の二重選択を防止するた
めすでに選択された要求をマスクアウトするためにRC
V/XMIT及びDMAC_MASKと共に使用される
【0173】DMADB_CHN_NBR:DMAC2
2A/MIO25から現在サービスを受けている要求と
関連するチャネル番号。使用法はDMAC_CHN_N
BRの場合と類似しているが、DMADB_MASK及
びDMAC_DMADB_OPCODEと組み合わせて
使用する。
2A/MIO25から現在サービスを受けている要求と
関連するチャネル番号。使用法はDMAC_CHN_N
BRの場合と類似しているが、DMADB_MASK及
びDMAC_DMADB_OPCODEと組み合わせて
使用する。
【0174】DMACR_PE:DMA_C状態機械に
よってセットされ、読出しアクセス中にDMAC R
AM24からパリティエラー指示を受け取ったことを示
す。DMA_A状態機械にこのエラー状況を通知する働
きをする。
よってセットされ、読出しアクセス中にDMAC R
AM24からパリティエラー指示を受け取ったことを示
す。DMA_A状態機械にこのエラー状況を通知する働
きをする。
【0175】FIFO_PE:DMA_B状態機械によ
ってセットされ、読出しアクセス中にFIFO RA
M16からパリティエラー指示を受け取ったことをDM
A_A状態機械に知らせる。
ってセットされ、読出しアクセス中にFIFO RA
M16からパリティエラー指示を受け取ったことをDM
A_A状態機械に知らせる。
【0176】ユニット103が受け取る入力は、アルフ
ァベット順で以下の通りである。
ァベット順で以下の通りである。
【0177】DMACR_ACK:DMAC22によっ
てセットされた要求に対する動作のDMAC RAM
24による肯定応答
てセットされた要求に対する動作のDMAC RAM
24による肯定応答
【0178】DMACR_ERROR:DMAC R
AM24からDMAC22へのパリティエラー指示(図
10ではこの形で、図9ではDMACR_PARITY
_ERRORとして示されている)
AM24からDMAC22へのパリティエラー指示(図
10ではこの形で、図9ではDMACR_PARITY
_ERRORとして示されている)
【0179】DMADB_ACK0:次のDCBの第1
ワードがDMADB22A/MIO25によって検索さ
れたとのDMAC22への肯定応答
ワードがDMADB22A/MIO25によって検索さ
れたとのDMAC22への肯定応答
【0180】DMADB_ACK1:次のDCBの第2
ワードがDMADB22A/MIO25によって検索さ
れたとのDMAC22への肯定応答
ワードがDMADB22A/MIO25によって検索さ
れたとのDMAC22への肯定応答
【0181】DMADB_ACK2:次のDCBの第3
ワードがDMADB22A/MIO25によって検索さ
れたとのDMAC22への肯定応答
ワードがDMADB22A/MIO25によって検索さ
れたとのDMAC22への肯定応答
【0182】DMADB_DONE1:ホストメモリ2
bからの送信データ取り出しに関するDMADB22A
からDMAC22への完了指示
bからの送信データ取り出しに関するDMADB22A
からDMAC22への完了指示
【0183】DMADB_DONE2:DCB取り出し
に関するDMADB22AからDMAC22への完了指
示
に関するDMADB22AからDMAC22への完了指
示
【0184】DMADB_MASK_RESET:DM
AC機能レジスタのDMADB_MASKビットをリセ
ットするためにDMADB22Aが使用する信号(図1
6)
AC機能レジスタのDMADB_MASKビットをリセ
ットするためにDMADB22Aが使用する信号(図1
6)
【0185】DMADB_REQ:ホストメモリ2bに
関するDMADB22A/MIO25による動作を開始
するためにDMAC22によって1にセットされ、その
動作が終了したときDMADB22Aによって0にリセ
ットされる、DMADB22Aの要求ビット(図11、
図13)。
関するDMADB22A/MIO25による動作を開始
するためにDMAC22によって1にセットされ、その
動作が終了したときDMADB22Aによって0にリセ
ットされる、DMADB22Aの要求ビット(図11、
図13)。
【0186】FIFO_ACK:FIFO RAM1
6からDMAC22への肯定応答(図10ではこの形で
、図8ではDMAC_ACKとして示されている)
6からDMAC22への肯定応答(図10ではこの形で
、図8ではDMAC_ACKとして示されている)
【0
187】FIFO_ERROR:FIFO RAM1
6からのパリティエラー指示
187】FIFO_ERROR:FIFO RAM1
6からのパリティエラー指示
【0188】MIO_PE:MIO25/DMADB2
2Aからのパリティエラー指示
2Aからのパリティエラー指示
【0189】RCV_REQ:DMARQ受信待ち行列
23から選択された要求ビット
23から選択された要求ビット
【0190】T/F :2/3比較回路
101からの真/偽指示(図10)
101からの真/偽指示(図10)
【0191】XMIT_REQ:DMARQ送信待ち行
列23から選択された要求ビット
列23から選択された要求ビット
【0192】ユニット103から他のIIMユニットへ
の出力は、アルファベット順で以下の通りである。
の出力は、アルファベット順で以下の通りである。
【0193】CTL :DMACレジス
タ間での情報のゲーティングを制御する
タ間での情報のゲーティングを制御する
【0194】DMAC_A_SWAP:DMAC22か
らDMADB22Aにアドレスを転送するために使用さ
れる信号(図10に示されているDMADB_ADDR
1又はDMADB_ADDR2)
らDMADB22Aにアドレスを転送するために使用さ
れる信号(図10に示されているDMADB_ADDR
1又はDMADB_ADDR2)
【0195】DMAC_D_SWAP:DMAC D
ATA HOLDレジスタからDMADB_DATA
_REGにデータを転送するために使用される信号
ATA HOLDレジスタからDMADB_DATA
_REGにデータを転送するために使用される信号
【0
196】DMAC_B_OPCODE:FIFO R
AM16によって実行される動作を規定するDMA_A
状態機械からDMA_B状態機械への命令
196】DMAC_B_OPCODE:FIFO R
AM16によって実行される動作を規定するDMA_A
状態機械からDMA_B状態機械への命令
【0197】
DMAC_C_OPCODE:DMAC RAM24
によって実行される動作を規定するDMA_A状態機械
からDMA_C状態機械への命令
DMAC_C_OPCODE:DMAC RAM24
によって実行される動作を規定するDMA_A状態機械
からDMA_C状態機械への命令
【0198】DMAC
_CH_NBR:DMAC22内で現在サービスを受け
ているチャネルの識別
_CH_NBR:DMAC22内で現在サービスを受け
ているチャネルの識別
【0199】DMADB_CH_
NBR:DMADB22A/MIO25で現在サービス
を受けているチャネルの識別
NBR:DMADB22A/MIO25で現在サービス
を受けているチャネルの識別
【0200】DMAC_DMACR_REQ:DMAC
RAM24へのDMACアクセス要求
RAM24へのDMACアクセス要求
【0201】
DMAC_DMADB_DRST:DMADB22Aの
DONE1ラッチをリセットする
DMAC_DMADB_DRST:DMADB22Aの
DONE1ラッチをリセットする
【0202】DMAC
_DMADB_OPCODE:ホストメモリ2bに関し
て実行される動作を、FETCHTRANSIMT
DATA(送信データ取り出し(ワード))、STOR
E RECEIVE DATA(受信データ記憶(
ワード))、又はFETCH DCB(DCB取出し
(3ワード))のうちの1つとして規定するDMAC2
2からDMADB22Aへの命令
_DMADB_OPCODE:ホストメモリ2bに関し
て実行される動作を、FETCHTRANSIMT
DATA(送信データ取り出し(ワード))、STOR
E RECEIVE DATA(受信データ記憶(
ワード))、又はFETCH DCB(DCB取出し
(3ワード))のうちの1つとして規定するDMAC2
2からDMADB22Aへの命令
【0203】DMAC
_DMADB_REQ:DMADB22A/MIO25
動作を開始するためにDMADB REQラッチをセ
ットする
_DMADB_REQ:DMADB22A/MIO25
動作を開始するためにDMADB REQラッチをセ
ットする
【0204】DMAC_FIFO_REQ:FIFO
RAM16へのDMACアクセス要求
RAM16へのDMACアクセス要求
【0205】DMAC_RCV_RESET:DMAR
Q受信待ち行列23の要求をリセットするために使用さ
れる
Q受信待ち行列23の要求をリセットするために使用さ
れる
【0206】DMAC_RV_CNT:DMARQ受信
待ち行列23の要求をポーリングするためにRCV_A
RB状態機械によって使用される3ビットカウンタの出
力
待ち行列23の要求をポーリングするためにRCV_A
RB状態機械によって使用される3ビットカウンタの出
力
【0207】DMAC_TX_CNT:DMARQ送信
待ち行列23の要求をポーリングするためにXMIT_
ARB状態機械によって使用される3ビットカウンタの
出力
待ち行列23の要求をポーリングするためにXMIT_
ARB状態機械によって使用される3ビットカウンタの
出力
【0208】DMAC_XMIT_RESET:DMA
RQ送信待ち行列23の要求をリセットするために使用
される
RQ送信待ち行列23の要求をリセットするために使用
される
【0209】11.1.1 DMA A状態機械以
下の説明では、TDCR1の第1バイト(図14の項目
ECD、EFC、NDI、TBC、TOPQ、及びPE
)を、TDFSW(送信データFIFO状況ワード)と
呼ぶ。また、以下で説明されない場合、TDBC、TD
Bn(n=1−4)、TDBA、ECI、RFI、DC
BA、RBC、RPE、RDCA、RDBn(n=1−
4)、RDLAH、RDFA、RDLAL、及びRDB
Aの意味及び位置については先の図14及び図15に関
する説明を参照されたい。
下の説明では、TDCR1の第1バイト(図14の項目
ECD、EFC、NDI、TBC、TOPQ、及びPE
)を、TDFSW(送信データFIFO状況ワード)と
呼ぶ。また、以下で説明されない場合、TDBC、TD
Bn(n=1−4)、TDBA、ECI、RFI、DC
BA、RBC、RPE、RDCA、RDBn(n=1−
4)、RDLAH、RDFA、RDLAL、及びRDB
Aの意味及び位置については先の図14及び図15に関
する説明を参照されたい。
【0210】DMA_A状態機械は、他の4つのDMA
C状態機械の動作を調整する。DMA_A状態機械によ
って呼び出される状態、状態遷移、及び動作は以下の通
りである。
C状態機械の動作を調整する。DMA_A状態機械によ
って呼び出される状態、状態遷移、及び動作は以下の通
りである。
【0211】状態0:調停状態。サービス要求に優先順
位をつけて、DMARQ受信待ち行列23の要求に最高
優先順位を与え、DMARQ送信待ち行列23の要求に
次に高い優先順位を与え、DMADB要求(DMADB
_REQが0にセットされる)に最低優先順位を与える
。他の状態から、又はDMACがリセットされた場合に
、この状態に入る。
位をつけて、DMARQ受信待ち行列23の要求に最高
優先順位を与え、DMARQ送信待ち行列23の要求に
次に高い優先順位を与え、DMADB要求(DMADB
_REQが0にセットされる)に最低優先順位を与える
。他の状態から、又はDMACがリセットされた場合に
、この状態に入る。
【0212】DMARQ23からのRCV_REQが活
動状態の場合、DMAC機能レジスタ(FR)ビットD
MAC_MASK、RCV_XMIT、DMA_B_R
EQ、及びDMA_C_REQを活動化(オンに)し、
FRフィールドDMAC_CHN_NBR空間の受信カ
ウント値をラッチし、RCV_ARB状態機械に肯定応
答を通知し、DMA_B_OPCODE及びDMA_C
_OPCODEを共に000にセットし、状態1に進む
。
動状態の場合、DMAC機能レジスタ(FR)ビットD
MAC_MASK、RCV_XMIT、DMA_B_R
EQ、及びDMA_C_REQを活動化(オンに)し、
FRフィールドDMAC_CHN_NBR空間の受信カ
ウント値をラッチし、RCV_ARB状態機械に肯定応
答を通知し、DMA_B_OPCODE及びDMA_C
_OPCODEを共に000にセットし、状態1に進む
。
【0213】DMARQ23からのXMIT_REQが
活動状態の場合、FRビットDMAC_MASK、DM
A_B_REQ、及びDMA_C_REQを活動化し、
FRRCV/XMITビットを非活動化/リセットし、
FRフィールドDMAC_CHN_NBR空間のTX_
CNTをラッチし、DMA_B_OPCODEを01に
セットし、DMA_C_OPCODEを011にセット
し、状態2に進む。
活動状態の場合、FRビットDMAC_MASK、DM
A_B_REQ、及びDMA_C_REQを活動化し、
FRRCV/XMITビットを非活動化/リセットし、
FRフィールドDMAC_CHN_NBR空間のTX_
CNTをラッチし、DMA_B_OPCODEを01に
セットし、DMA_C_OPCODEを011にセット
し、状態2に進む。
【0214】DMADB_DONE1がオンの場合、D
MADB_MASKをDMAC_MASKにロードし、
DMADB_MASKをリセットし、RCV/XMIT
ビットをオフにセットし、DMADB_CHN_NBR
をDMAC_CHN_NBRにロードし、(DMAC_
DMADB_DRSTを肯定することによって)DMA
DB_DONE1をリセットし、DMADB_DATA
からDATA HOLD REGにデータをロード
し、DMA_B_REQビットをセットし、DMA_B
_OPCODEを101にセットし、状態4に行く。
MADB_MASKをDMAC_MASKにロードし、
DMADB_MASKをリセットし、RCV/XMIT
ビットをオフにセットし、DMADB_CHN_NBR
をDMAC_CHN_NBRにロードし、(DMAC_
DMADB_DRSTを肯定することによって)DMA
DB_DONE1をリセットし、DMADB_DATA
からDATA HOLD REGにデータをロード
し、DMA_B_REQビットをセットし、DMA_B
_OPCODEを101にセットし、状態4に行く。
【0215】上記のいずれでもない場合は、状態0にと
どまる。
どまる。
【0216】状態1:DMA_B状態機械及びDMA_
C状態機械が共に実行されて受信チャネル情報を取り出
すのを待つ。
C状態機械が共に実行されて受信チャネル情報を取り出
すのを待つ。
【0217】DMA_B_REQ及びDMA_C_RE
Qがともにオフの場合、(FRビットDMACR_PE
及びFIFO_PEを調べることにより)FIFO
RAM16及びDMAC RAM24に関するパリテ
ィエラーの有無を検査する。パリティエラーが発生した
場合、INT21に対するDMAC_PARITY_E
RRORを肯定し(図2)、CURRENT ADD
RESS REG内のビット9をセットし、CURR
ENT ADDRESS REGの内容をDMAC
_FIFO_DATAバスに転送し(DMA_Bがデー
タをFIFO RAM16内の対応するチャネルのR
DCR1に書き込ませる)、FR内のDMA_B_RE
Qビットをセットし、FRのDMAC_B_OPCOD
Eを010にセットし、状態4に進む。
Qがともにオフの場合、(FRビットDMACR_PE
及びFIFO_PEを調べることにより)FIFO
RAM16及びDMAC RAM24に関するパリテ
ィエラーの有無を検査する。パリティエラーが発生した
場合、INT21に対するDMAC_PARITY_E
RRORを肯定し(図2)、CURRENT ADD
RESS REG内のビット9をセットし、CURR
ENT ADDRESS REGの内容をDMAC
_FIFO_DATAバスに転送し(DMA_Bがデー
タをFIFO RAM16内の対応するチャネルのR
DCR1に書き込ませる)、FR内のDMA_B_RE
Qビットをセットし、FRのDMAC_B_OPCOD
Eを010にセットし、状態4に進む。
【0218】 以前にパリティエラー又は境界検査状
態があった場合、RCV/XMITビットがオンならば
DMARQ23に対するDMAC_RCV_RESET
を肯定し、そうでなければDMAC_XMIT_RES
ETを肯定する。状態4に進む。
態があった場合、RCV/XMITビットがオンならば
DMARQ23に対するDMAC_RCV_RESET
を肯定し、そうでなければDMAC_XMIT_RES
ETを肯定する。状態4に進む。
【0219】(RBCA REGとCURRENT
ADDR REGの比較の結果)境界検査状態が今
発生している場合、CURRENT ADDR R
EGのRBCビットをセットし、DMA_B_REQビ
ットをセットし、FRのDMA_B_OPCODEを0
10にセットし、状態4に進む。
ADDR REGの比較の結果)境界検査状態が今
発生している場合、CURRENT ADDR R
EGのRBCビットをセットし、DMA_B_REQビ
ットをセットし、FRのDMA_B_OPCODEを0
10にセットし、状態4に進む。
【0220】受信循環バッファ状態の終りが検出された
場合、受信バッファの始めが保護されているかどうかを
検査する。保護されている場合は、境界検査状態が指示
され、その状態に関連する上記処置が取られる。
場合、受信バッファの始めが保護されているかどうかを
検査する。保護されている場合は、境界検査状態が指示
され、その状態に関連する上記処置が取られる。
【0221】受信循環バッファの終り及び保護されてい
ないバッファの始めの場合、RFA_NDA+1をCU
RRENT ADDR REGにロードし、DMA
_B_REQビットをセットし、DMA_B_OPCO
DEを001にセットし、状態6に進む。
ないバッファの始めの場合、RFA_NDA+1をCU
RRENT ADDR REGにロードし、DMA
_B_REQビットをセットし、DMA_B_OPCO
DEを001にセットし、状態6に進む。
【0222】受信バッファの終りでない場合、CURR
ENT ADDR REGの内容をRFA_NDA
に入れ、CURRENT ADDR REGを増分
し、DMA_B_REQビットをセットし、DMA_B
_OPCODEを001にセットし、状態6に進む。
ENT ADDR REGの内容をRFA_NDA
に入れ、CURRENT ADDR REGを増分
し、DMA_B_REQビットをセットし、DMA_B
_OPCODEを001にセットし、状態6に進む。
【0223】DMA_B_REQもDMA_C_REQ
ビットもオフでない場合、DMA_B状態機械又はDM
A_C状態機械のいずれかがDONEでない。この状態
にとどまって、待機する。
ビットもオフでない場合、DMA_B状態機械又はDM
A_C状態機械のいずれかがDONEでない。この状態
にとどまって、待機する。
【0224】状態2:DMA_B状態機械及びDMA_
C状態機械が共にこの送信チャネルについての制御情報
の取り出しを完了するのを待つ。
C状態機械が共にこの送信チャネルについての制御情報
の取り出しを完了するのを待つ。
【0225】DMA_B_REQ及びDMA_C_RE
Qが共にオフの場合、FIFO RAM16及びDM
AC RAM24内のパリティエラーの有無を検査す
る。 エラーがあった場合、INT21に対するDMAC_E
RRORを肯定する。DMACR_PEビット及びFI
FO_PEビットをDATA HOLD REGの
ビット8及び9に転送する。DATA HOLD
REGの出力をDMAC_FIFO_DATAバス上に
置き、DMA_B状態機械によってFIFORAMに記
憶する。 DMA_B_REQビットをオンにセットし、DMA_
B_OPCODEを110にセットし、状態4に進む。
Qが共にオフの場合、FIFO RAM16及びDM
AC RAM24内のパリティエラーの有無を検査す
る。 エラーがあった場合、INT21に対するDMAC_E
RRORを肯定する。DMACR_PEビット及びFI
FO_PEビットをDATA HOLD REGの
ビット8及び9に転送する。DATA HOLD
REGの出力をDMAC_FIFO_DATAバス上に
置き、DMA_B状態機械によってFIFORAMに記
憶する。 DMA_B_REQビットをオンにセットし、DMA_
B_OPCODEを110にセットし、状態4に進む。
【0226】同じチャネルに対する以前のサービス中に
パリティエラーがあった場合、DMARQ23に対する
DMAC_XMIT_RESETを肯定し、状態4に進
む。
パリティエラーがあった場合、DMARQ23に対する
DMAC_XMIT_RESETを肯定し、状態4に進
む。
【0227】RLA_TBCレジスタの内容が0で、現
DCB用の送信データバッファの空きを示す場合、DM
ADB_DONE1を監視することにより、DMADB
22AがFIFO RAM16の当該チャネルのTD
CR2空間に記憶する必要のある未処理の送信データを
有するかどうかを検査する。DMADB_DONE1が
活動状態の場合、DMADB_DATAをDATA
HOLD REGにロードし、DMAC_CHN_N
BRをDMADB_CHN_NBRとスワップし、DM
AC_MASKをDMADB_MASKとスワップし、
FRのRCV/XMITビットをリセットし、DMAC
_DMADB_OPCODEを10にセットし(FET
CH DCB、DMADB_REQはまだセットされ
ていないことに注意)、DONE1 IN DMA
DBをリセットするためにDMAC_DRSTを肯定し
、DMA_B_REQビットをセットし、DMA_B_
OPCODEを101データにセットし、状態5に進む
。
DCB用の送信データバッファの空きを示す場合、DM
ADB_DONE1を監視することにより、DMADB
22AがFIFO RAM16の当該チャネルのTD
CR2空間に記憶する必要のある未処理の送信データを
有するかどうかを検査する。DMADB_DONE1が
活動状態の場合、DMADB_DATAをDATA
HOLD REGにロードし、DMAC_CHN_N
BRをDMADB_CHN_NBRとスワップし、DM
AC_MASKをDMADB_MASKとスワップし、
FRのRCV/XMITビットをリセットし、DMAC
_DMADB_OPCODEを10にセットし(FET
CH DCB、DMADB_REQはまだセットされ
ていないことに注意)、DONE1 IN DMA
DBをリセットするためにDMAC_DRSTを肯定し
、DMA_B_REQビットをセットし、DMA_B_
OPCODEを101データにセットし、状態5に進む
。
【0228】DMADB_DONE1がオフの場合、D
MADB_REQ状態を監視することにより、DMAD
B22Aが使用中かどうかを検査する。DMADB_R
EQがオンの場合は、状態2にとどまって、DMADB
22Aが解放されるのを待つ。
MADB_REQ状態を監視することにより、DMAD
B22Aが使用中かどうかを検査する。DMADB_R
EQがオンの場合は、状態2にとどまって、DMADB
22Aが解放されるのを待つ。
【0229】DMADB22Aが使用中でない場合、D
MADB_REQビットをセットし、DMAC_DMA
DB_OPCODEを10(フェッチDCB)にセット
し、DMADB_ADDR1をDMADB_ADDR_
REGに入れ、DMAC_MASKをDMADB_MA
SKにロードし、DMAC_MASKをリセットし、D
MAC_CHN_NBRをDMADB_CHN_NBR
にロードし、状態8に進む。
MADB_REQビットをセットし、DMAC_DMA
DB_OPCODEを10(フェッチDCB)にセット
し、DMADB_ADDR1をDMADB_ADDR_
REGに入れ、DMAC_MASKをDMADB_MA
SKにロードし、DMAC_MASKをリセットし、D
MAC_CHN_NBRをDMADB_CHN_NBR
にロードし、状態8に進む。
【0230】送信バイトカウントが0でない場合、CU
RRENT ADDR REGの内容をRFA_N
DA REGに入れ、CURRENT ADDR
REGを増分し、TDFSWのTOPQ及びTBCを
セットし、送信バイトカウントを減分し、状態7に進む
。
RRENT ADDR REGの内容をRFA_N
DA REGに入れ、CURRENT ADDR
REGを増分し、TDFSWのTOPQ及びTBCを
セットし、送信バイトカウントを減分し、状態7に進む
。
【0231】DMA_B状態機械もDMA_C状態機械
も実行されない場合、状態2にとどまり、後で実行され
るのを待つ。
も実行されない場合、状態2にとどまり、後で実行され
るのを待つ。
【0232】状態3:DMA_B状態機械及びDMA_
C状態機械が共に実行され、送信要求についての書込み
が行われるのを待つ。
C状態機械が共に実行され、送信要求についての書込み
が行われるのを待つ。
【0233】DMA_B_REQ及びDMA_C_RE
Qが共にオフの場合、DMADB_DONE1を検査し
て、DMADB22Aが、DMAC22に取り出される
のを待っている送信データをもつかどうかを調べる。D
MADB_DONE1がオンの場合、DMAC_DMA
DB_OPCODEを00(FETCH WORD)
にセットし、DMADB_ADDR1をDMADB_A
DDR_REGにロードし、DMADB_DONE1を
リセットし、FRのRCV/XMITビットをリセット
し、DMADB_REQビットをオンにセットし、DM
AC_MASKをDMADB_MASKとスワップし、
DMAC_CHN_NBRをDMADB_CHN_NB
Rとスワップし、DMADB_DATAをDMAC
DATA HOLD REGにロードし、DMA_
B_REQビットをオンにセットし、DMA_B_OP
CODEを101にセットし、状態9に進む。
Qが共にオフの場合、DMADB_DONE1を検査し
て、DMADB22Aが、DMAC22に取り出される
のを待っている送信データをもつかどうかを調べる。D
MADB_DONE1がオンの場合、DMAC_DMA
DB_OPCODEを00(FETCH WORD)
にセットし、DMADB_ADDR1をDMADB_A
DDR_REGにロードし、DMADB_DONE1を
リセットし、FRのRCV/XMITビットをリセット
し、DMADB_REQビットをオンにセットし、DM
AC_MASKをDMADB_MASKとスワップし、
DMAC_CHN_NBRをDMADB_CHN_NB
Rとスワップし、DMADB_DATAをDMAC
DATA HOLD REGにロードし、DMA_
B_REQビットをオンにセットし、DMA_B_OP
CODEを101にセットし、状態9に進む。
【0234】DMADB_DONE1がオフであるが、
DMADB_REQがオンの場合、状態3にとどまり、
DMADB_REQがオフになるまで待つ。
DMADB_REQがオンの場合、状態3にとどまり、
DMADB_REQがオフになるまで待つ。
【0235】DMADB_DONE1もDMADB_R
EQもオンでない場合、DMAC_DMADB_OPC
ODEを00にセットし、DMADB_REQビットを
オンにセットし、DMAC_MASKをDMADB_M
ASKにロードしてDMADB_MASKをリセットし
、DMAC_CHN_NBRをDMADB_CHN_N
BRにロードし、DMADB_ADDR1をDMADB
_ADDR_REGにロードし、状態0に進む。
EQもオンでない場合、DMAC_DMADB_OPC
ODEを00にセットし、DMADB_REQビットを
オンにセットし、DMAC_MASKをDMADB_M
ASKにロードしてDMADB_MASKをリセットし
、DMAC_CHN_NBRをDMADB_CHN_N
BRにロードし、DMADB_ADDR1をDMADB
_ADDR_REGにロードし、状態0に進む。
【0236】状態4:DMA_B状態機械が実行されて
、エラー指示をFIFORAM16に書き込むのを待つ
。
、エラー指示をFIFORAM16に書き込むのを待つ
。
【0237】DMA_REQがオフの場合、DMADB
_DONE1がオン(未処理の送信データ)かどうかを
検査する。オンの場合、DMADB_DONE1をリセ
ットし、DMADB_MASKをDMAC_MASKに
ロードしてDMADB_MASKをリセットし、DMA
DB_CHN_NBRをDMAC_CHN_NBRにロ
ードし、RCV/XMITビットをリセットし、DMA
DB_DATAをDATA HOLD REGにロ
ードし、DMA_B_REQビットをオンにセットし、
DMA_B_OPCODEを101にセットし、状態4
にとどまる。
_DONE1がオン(未処理の送信データ)かどうかを
検査する。オンの場合、DMADB_DONE1をリセ
ットし、DMADB_MASKをDMAC_MASKに
ロードしてDMADB_MASKをリセットし、DMA
DB_CHN_NBRをDMAC_CHN_NBRにロ
ードし、RCV/XMITビットをリセットし、DMA
DB_DATAをDATA HOLD REGにロ
ードし、DMA_B_REQビットをオンにセットし、
DMA_B_OPCODEを101にセットし、状態4
にとどまる。
【0238】DMADB_DONE1がオフの場合、D
MAC_MASKをリセットし、状態0に進む。
MAC_MASKをリセットし、状態0に進む。
【0239】状態5:DMA_A状態機械は、DMA_
B状態機械が実行され送信データをそれぞれのTDCR
2に記憶し、その結果、DMA_A状態機械がDCB取
出し時にDMADB22Aを起動できるようになるのを
待つ(この場合、送信データは以前のコマンドによって
指定された最後のデータであり、連鎖は終了していず、
このデータ取出しは送信バイトカウントを0に減少させ
て、DCB取り出しを呼び出す)。DCB取出しは、D
MA_B状態機械が使用することのできたレジスタの使
用を必要とする。したがって、待つ必要がある。
B状態機械が実行され送信データをそれぞれのTDCR
2に記憶し、その結果、DMA_A状態機械がDCB取
出し時にDMADB22Aを起動できるようになるのを
待つ(この場合、送信データは以前のコマンドによって
指定された最後のデータであり、連鎖は終了していず、
このデータ取出しは送信バイトカウントを0に減少させ
て、DCB取り出しを呼び出す)。DCB取出しは、D
MA_B状態機械が使用することのできたレジスタの使
用を必要とする。したがって、待つ必要がある。
【0240】DMA_B_REQがオフの場合、DMA
DB_REQをオンにセットし、状態8に進む。
DB_REQをオンにセットし、状態8に進む。
【0241】状態6:DMA_A状態機械は、DMA_
B状態機械が実行されて、FIFO RAM16に対
する受信データ・バッファアドレスを更新するのを待つ
。
B状態機械が実行されて、FIFO RAM16に対
する受信データ・バッファアドレスを更新するのを待つ
。
【0242】DMA_B_REQがオフの場合、DMA
DB_DONE1ビットを検査して、当該チャネルのT
DCR2に記憶すべき未処理の送信データがあるかどう
かを調べる。それがある場合、DMADB_DONE1
をリセットし、DMAC_DMADB_OPCODEを
01(STORE WORD)にセットし、DMAC
_MASKをDMADB_MASKとスワップし、DM
AC_CHN_NBRをDMADB_CHN_NBRと
スワップし、DMADB_DATA_REGをDATA
HOLD REGとスワップし、DMADB_A
DDR1をDMADB_ADDR_REGに入れ、RC
V/XMITをリセットし、DMADB_REQをセッ
トし、DMA_B_REQをセットし、DMA_B_O
PCODEを101にセットし、状態4に進む。
DB_DONE1ビットを検査して、当該チャネルのT
DCR2に記憶すべき未処理の送信データがあるかどう
かを調べる。それがある場合、DMADB_DONE1
をリセットし、DMAC_DMADB_OPCODEを
01(STORE WORD)にセットし、DMAC
_MASKをDMADB_MASKとスワップし、DM
AC_CHN_NBRをDMADB_CHN_NBRと
スワップし、DMADB_DATA_REGをDATA
HOLD REGとスワップし、DMADB_A
DDR1をDMADB_ADDR_REGに入れ、RC
V/XMITをリセットし、DMADB_REQをセッ
トし、DMA_B_REQをセットし、DMA_B_O
PCODEを101にセットし、状態4に進む。
【0243】DMADB_DONE1がオフであり、D
MADB_REQがオンの場合、この状態にとどまり、
DMADB_REQがオフになるのを待つ。
MADB_REQがオンの場合、この状態にとどまり、
DMADB_REQがオフになるのを待つ。
【0244】DMADB_DONE1もDMADB_R
EQもオンでない場合、DMAC_DMADB_OPC
ODEを01にセットし、DATA HOLD REG
をDMADB_DATA_REGに転送し、DMADB
_ADDR1をDMADB_ADDR_REGに転送し
、DMAC_MASKをDMADB_MASKに転送し
てDMAC_MASKをリセットし、DMAC_CHN
_NBRをDMADB_CHN_NBRに転送し、状態
0に進む。
EQもオンでない場合、DMAC_DMADB_OPC
ODEを01にセットし、DATA HOLD REG
をDMADB_DATA_REGに転送し、DMADB
_ADDR1をDMADB_ADDR_REGに転送し
、DMAC_MASKをDMADB_MASKに転送し
てDMAC_MASKをリセットし、DMAC_CHN
_NBRをDMADB_CHN_NBRに転送し、状態
0に進む。
【0245】DMA_B_REQがオンの場合、それが
オフになるまでこの状態にとどまる。
オフになるまでこの状態にとどまる。
【0246】状態7:DMA_A状態機械は送信バイト
カウントを再検査する。カウントが0の場合、ECI及
びEFIをそれぞれTDFSWのECDビット及びEF
Cビットに転送する。そうでない場合、ECD及びEF
Dを0にセットする。DMA_B_REQ及びDMA_
C_REQをオンにセットし、DMA_B_OPCOD
Eを100にセットし、DMA_C_OPCODEを1
1にセットし、RLA_TBCREGをDATA H
OLD REGに転送し、状態3に進む。
カウントを再検査する。カウントが0の場合、ECI及
びEFIをそれぞれTDFSWのECDビット及びEF
Cビットに転送する。そうでない場合、ECD及びEF
Dを0にセットする。DMA_B_REQ及びDMA_
C_REQをオンにセットし、DMA_B_OPCOD
Eを100にセットし、DMA_C_OPCODEを1
1にセットし、RLA_TBCREGをDATA H
OLD REGに転送し、状態3に進む。
【0247】状態8:DMADBからのDCB取出しを
待つ。
待つ。
【0248】DMADB_DONE2がDMADBによ
って肯定された場合、MIO_DMAC_PEを検査し
てデータパリティ・エラー指示の有無を調べる。パリテ
ィエラーが指示された場合、DMADB_MASKをD
MAC_MASKに転送してDMADB_MASKをリ
セットし、DMADB_CHN_NBRをDMAC_C
HN_NBRに転送し、DATA HOLD RE
G内のPEビット(ビット9)をセットし、後者をTD
CR1に記憶し、DMA_B_REQをセットし、DM
A_B_OPCODEを110にセットし、状態4に進
む。
って肯定された場合、MIO_DMAC_PEを検査し
てデータパリティ・エラー指示の有無を調べる。パリテ
ィエラーが指示された場合、DMADB_MASKをD
MAC_MASKに転送してDMADB_MASKをリ
セットし、DMADB_CHN_NBRをDMAC_C
HN_NBRに転送し、DATA HOLD RE
G内のPEビット(ビット9)をセットし、後者をTD
CR1に記憶し、DMA_B_REQをセットし、DM
A_B_OPCODEを110にセットし、状態4に進
む。
【0249】パリティエラーがない場合、新しいDCB
が空(送信バイトカウント0)かどうかを検査する。空
の場合、TDFSW内のNDIビットをセットし、状態
10に進む。
が空(送信バイトカウント0)かどうかを検査する。空
の場合、TDFSW内のNDIビットをセットし、状態
10に進む。
【0250】新しいDCBが空でない場合、DMADB
_ADDR2をDMADB_ADDR_REGに転送し
、CURRENT ADDR REGの現アドレス
を増分し、RLA_TBC_REGのバイトカウントを
減分し、DMADB_MASKをDMAC_MASKに
転送し(DMADB_MASKはリセットしない)、D
MAC_DMADB_OPCODEを00にセットし、
DMADB_CHN_NBRをDMAC_CHN_NB
Rに転送し、DMADB_REQビットをセットし、T
DFSWのTOPQ及びTBCをセットし、状態11に
進む。
_ADDR2をDMADB_ADDR_REGに転送し
、CURRENT ADDR REGの現アドレス
を増分し、RLA_TBC_REGのバイトカウントを
減分し、DMADB_MASKをDMAC_MASKに
転送し(DMADB_MASKはリセットしない)、D
MAC_DMADB_OPCODEを00にセットし、
DMADB_CHN_NBRをDMAC_CHN_NB
Rに転送し、DMADB_REQビットをセットし、T
DFSWのTOPQ及びTBCをセットし、状態11に
進む。
【0251】DMADB_DONE2が肯定されなかっ
た場合、肯定されるまでこの状態にとどまる。この状態
にある間に、DMADB_DMAC_ACK0に反応し
て、DMADB_DATAバス上の送信データバッファ
・アドレスをCURRENTADDR REGにロー
ドさせ、DMADB_DMAC_ACK1に反応して、
DMADB_DATA(ECI、EFI、及び Nex
t DCB Address)をRFA_NDA_RE
Gにロードさせ、DMADB_DMAC_ACK2に反
応して、DMADB_DATAバス上の送信バイトカウ
ントをRLA_TBC_REGにロードさせる。
た場合、肯定されるまでこの状態にとどまる。この状態
にある間に、DMADB_DMAC_ACK0に反応し
て、DMADB_DATAバス上の送信データバッファ
・アドレスをCURRENTADDR REGにロー
ドさせ、DMADB_DMAC_ACK1に反応して、
DMADB_DATA(ECI、EFI、及び Nex
t DCB Address)をRFA_NDA_RE
Gにロードさせ、DMADB_DMAC_ACK2に反
応して、DMADB_DATAバス上の送信バイトカウ
ントをRLA_TBC_REGにロードさせる。
【0252】状態9:DMA_B状態機械が実行される
のを待つ。DMA_B_REQ及びDMA_C_REQ
が共にオフの場合、状態0に進む。そうでない場合、こ
の状態にとどまり、両者がオフになるのを待つ。
のを待つ。DMA_B_REQ及びDMA_C_REQ
が共にオフの場合、状態0に進む。そうでない場合、こ
の状態にとどまり、両者がオフになるのを待つ。
【0253】状態10:新しいDCBの送信バイトカウ
ントが0のとき、ECI、EFIの状態を検査する。E
CI又はEFIがオンの場合、DMA_B_OPCOD
Eを110にセットし、ECI及びEFIをそれぞれE
CD及びEFDに転送する。そうでない場合は、DMA
_B_OPCODEを100にセットし、ECD及びE
FDをリセットする。いずれの場合も、DMA_B_R
EQ及びDMA_C_REQを共にオンにセットし、D
MA_C_OPCODEを10にセットし、状態9に進
む。
ントが0のとき、ECI、EFIの状態を検査する。E
CI又はEFIがオンの場合、DMA_B_OPCOD
Eを110にセットし、ECI及びEFIをそれぞれE
CD及びEFDに転送する。そうでない場合は、DMA
_B_OPCODEを100にセットし、ECD及びE
FDをリセットする。いずれの場合も、DMA_B_R
EQ及びDMA_C_REQを共にオンにセットし、D
MA_C_OPCODEを10にセットし、状態9に進
む。
【0254】状態11:新しいDCBの送信バイトカウ
ントが減分された後にそのカウントを再検査する。その
ときバイトカウントが0であり、かつECI又はEFI
のいずれかがオンの場合、ECI及びEFIをそれぞれ
TDFSWのECD及びEFDに転送する。そうでない
場合は、ECD及びEFDを0にセットする。DMA_
B_REQ及びDMA_C_REQを共にオンにセット
し、DMA_B_OPCODEを100にセットし、D
MA_C_OPCODEを10にセットし、状態9に進
む。
ントが減分された後にそのカウントを再検査する。その
ときバイトカウントが0であり、かつECI又はEFI
のいずれかがオンの場合、ECI及びEFIをそれぞれ
TDFSWのECD及びEFDに転送する。そうでない
場合は、ECD及びEFDを0にセットする。DMA_
B_REQ及びDMA_C_REQを共にオンにセット
し、DMA_B_OPCODEを100にセットし、D
MA_C_OPCODEを10にセットし、状態9に進
む。
【0255】11.1.2 DMA B状態機械こ
の状態機械は、DMA_A状態機械によってセットされ
たDMA_B_OPCODE機能に従って、FIFO
RAM16に関するDMAC動作を実行する。この状
態機械の状態、機能、及び状態遷移は以下の通りである
。
の状態機械は、DMA_A状態機械によってセットされ
たDMA_B_OPCODE機能に従って、FIFO
RAM16に関するDMAC動作を実行する。この状
態機械の状態、機能、及び状態遷移は以下の通りである
。
【0256】状態0:他の状態から、又はリセットされ
た場合に、この状態に入る。この状態では、DMA_B
_REQビットをポーリングする。ビットがオンの場合
、DMAC_FIFO_REQを肯定し、状態1に進む
。そうでない場合、この状態にとどまる。
た場合に、この状態に入る。この状態では、DMA_B
_REQビットをポーリングする。ビットがオンの場合
、DMAC_FIFO_REQを肯定し、状態1に進む
。そうでない場合、この状態にとどまる。
【0257】状態1:DMA_B_OPCODEに従っ
て、FIFO RAM16にアクセスする。
て、FIFO RAM16にアクセスする。
【0258】FIFO_DMAC_ACKが肯定された
場合、DMA_B_OPCODEを復号化し、関連する
動作要求をFIFO RAM16に供給し、DMA_
B_OPCODEが読出しアクセスのために呼び出され
た場合はFIFO_ERRORの有無を検査する。
場合、DMA_B_OPCODEを復号化し、関連する
動作要求をFIFO RAM16に供給し、DMA_
B_OPCODEが読出しアクセスのために呼び出され
た場合はFIFO_ERRORの有無を検査する。
【0259】DMA_B_OPCODEが000の場合
、受信チャネル空間から2ワード読出しを要求し、FI
FO_DATAをCURRENT ADDR RE
Gにロードし、FIFO_ERRORがオンの場合は機
能レジスタ内のFIFO_PEビットをセットし、状態
2に進む。
、受信チャネル空間から2ワード読出しを要求し、FI
FO_DATAをCURRENT ADDR RE
Gにロードし、FIFO_ERRORがオンの場合は機
能レジスタ内のFIFO_PEビットをセットし、状態
2に進む。
【0260】OPCODEが001の場合、受信チャネ
ル空間への1ワード書込みを要求し、DMA_B_RE
Qをリセットし、状態0に進む。
ル空間への1ワード書込みを要求し、DMA_B_RE
Qをリセットし、状態0に進む。
【0261】OPCODEが010の場合、受信チャネ
ルへの1ワード書込みを要求し、DMARQのそのチャ
ネルの要求ビットをリセットし、DMA_B_REQを
リセットし、DMAC_DMARQ_RCV_RESE
Tを肯定し、状態0に進む。
ルへの1ワード書込みを要求し、DMARQのそのチャ
ネルの要求ビットをリセットし、DMA_B_REQを
リセットし、DMAC_DMARQ_RCV_RESE
Tを肯定し、状態0に進む。
【0262】OPCODEが011の場合、読出し送信
チャネルTDCR1を要求し、FIFO_DATAをR
LA_TBC REGにロードし、パリティエラーが
指示された場合はパリティ指示をDMA_A状態機械に
セットし、DMA_B_REQをリセットし、状態0に
進む。
チャネルTDCR1を要求し、FIFO_DATAをR
LA_TBC REGにロードし、パリティエラーが
指示された場合はパリティ指示をDMA_A状態機械に
セットし、DMA_B_REQをリセットし、状態0に
進む。
【0263】OPCODEが100の場合、更新送信バ
イトカウントを現チャネルのTDCR1に書き込むため
に書込みアクセスを要求し、DMA_B_REQをリセ
ットし、状態0に進む。
イトカウントを現チャネルのTDCR1に書き込むため
に書込みアクセスを要求し、DMA_B_REQをリセ
ットし、状態0に進む。
【0264】OPCODEが101又は110の場合、
それぞれ送信データ又は送信バイトカウント(TDCR
2又はTDCR1)の1ワード書込みを要求し、(DM
AC_FIFO_DATAにある)関連するデータ又は
バイトカウントを提示し、DMA_B_REQをリセッ
トし、DMAC_DMARQ_XMIT_RESETを
肯定する。状態0に行く。
それぞれ送信データ又は送信バイトカウント(TDCR
2又はTDCR1)の1ワード書込みを要求し、(DM
AC_FIFO_DATAにある)関連するデータ又は
バイトカウントを提示し、DMA_B_REQをリセッ
トし、DMAC_DMARQ_XMIT_RESETを
肯定する。状態0に行く。
【0265】状態2:2ワード読出し要求に関する第2
のACK(肯定応答)を待つ。FIFO_DMAC_A
CKが肯定された場合、第2のワード読出し時にデータ
パリティの有無を検査する。パリティエラーが指示され
た場合、FRのFIFO_PEビットをオンにセットし
て(DMC_A状態機械に通知する)。FIFO_DA
TAバスをDATA HOLD REGに転送し、
DMA_B_REQをリセットし、状態0に進む。
のACK(肯定応答)を待つ。FIFO_DMAC_A
CKが肯定された場合、第2のワード読出し時にデータ
パリティの有無を検査する。パリティエラーが指示され
た場合、FRのFIFO_PEビットをオンにセットし
て(DMC_A状態機械に通知する)。FIFO_DA
TAバスをDATA HOLD REGに転送し、
DMA_B_REQをリセットし、状態0に進む。
【0266】11.1.3 DMA C状態機械こ
の状態機械は、DMA_A状態機械によってセットされ
たDMA_B_OPCODE機能に従ってFIFO
RAM16に関するDMAC動作を実行する。この状態
機械の状態、機能、及び状態遷移は以下の通りである。
の状態機械は、DMA_A状態機械によってセットされ
たDMA_B_OPCODE機能に従ってFIFO
RAM16に関するDMAC動作を実行する。この状態
機械の状態、機能、及び状態遷移は以下の通りである。
【0267】状態0:他の状態から、又はDMAC22
がリセットされると、この状態に入る。この状態では、
DMA_C_REQの状態をポーリングする。ビットが
オンの場合、DMAC_DMACR_REQを肯定し、
状態1に進む。そうでない場合は、この状態にとどまる
。
がリセットされると、この状態に入る。この状態では、
DMA_C_REQの状態をポーリングする。ビットが
オンの場合、DMAC_DMACR_REQを肯定し、
状態1に進む。そうでない場合は、この状態にとどまる
。
【0268】状態1:DMACR_DMAC_ACKが
肯定された場合、DMA_C_OPCODEを復号化し
て、DMACR24に提示する要求を決定し、この要求
が読出し動作を呼び出す場合、パリティエラーの有無を
検査する。
肯定された場合、DMA_C_OPCODEを復号化し
て、DMACR24に提示する要求を決定し、この要求
が読出し動作を呼び出す場合、パリティエラーの有無を
検査する。
【0269】OPCODEが00の場合、受信チャネル
空間に関する2ワード読出しを要求し、第1DMACR
_DATAワードをRFA_NDA及びRLA_TBC
レジスタにロードする。パリティエラーが指示された場
合、FRのDMACR_PEビットをセットする。第2
ワードを処理するために状態2に進む。
空間に関する2ワード読出しを要求し、第1DMACR
_DATAワードをRFA_NDA及びRLA_TBC
レジスタにロードする。パリティエラーが指示された場
合、FRのDMACR_PEビットをセットする。第2
ワードを処理するために状態2に進む。
【0270】OPCODEが01の場合、送信チャネル
空間に関する2ワード読出しを要求し、DMACR_D
ATAバスからの第1ワードをCURRENT AD
DRREGにロードする。パリティエラーが指示された
場合、FRのDMACR_PEビットをセットする。状
態2に進む。
空間に関する2ワード読出しを要求し、DMACR_D
ATAバスからの第1ワードをCURRENT AD
DRREGにロードする。パリティエラーが指示された
場合、FRのDMACR_PEビットをセットする。状
態2に進む。
【0271】OPCODEが10の場合、送信チャネル
に関する2ワード書込みを要求し、RFA_NDAの内
容をCURRENT ADDR REGにロードし
、状態2に進む。
に関する2ワード書込みを要求し、RFA_NDAの内
容をCURRENT ADDR REGにロードし
、状態2に進む。
【0272】OPCODEが11の場合、(送信データ
バッファ・アドレスTDBAを含む)送信チャネルTD
CR3に関する1ワード書込みを要求し、DMA_C_
REQをリセットし、状態0に進む。
バッファ・アドレスTDBAを含む)送信チャネルTD
CR3に関する1ワード書込みを要求し、DMA_C_
REQをリセットし、状態0に進む。
【0273】状態2:2ワード転送要求の第2ワード転
送を処理する。DMACR_ACKが肯定された場合、
DMA_C_OPCODEを復号化し、対応する要求を
DMAC RAM24に供給する。
送を処理する。DMACR_ACKが肯定された場合、
DMA_C_OPCODEを復号化し、対応する要求を
DMAC RAM24に供給する。
【0274】OPCODEが00の場合(受信チャネル
に関する第2ワードを読み出す)、パリティエラーの有
無を検査し、エラーが指示された場合、FRのDMAC
R_PEビットをセットする。DMACR_DATAを
RBCAレジスタにロードし、一部(上位最終アドレス
)をRLA_TBC REGにロードする。DMA_
C_REQをリセットし、状態0に進む。
に関する第2ワードを読み出す)、パリティエラーの有
無を検査し、エラーが指示された場合、FRのDMAC
R_PEビットをセットする。DMACR_DATAを
RBCAレジスタにロードし、一部(上位最終アドレス
)をRLA_TBC REGにロードする。DMA_
C_REQをリセットし、状態0に進む。
【0275】OPCODEが01の場合(送信チャネル
に関する第2ワードを読み出す)、パリティ・エラーの
有無を検査し、エラーが指示された場合、FR内のDM
ACR_PEビットをセットする。DMACR_DAT
AをRFA_NDA REGにロードする。DMA_
C_REQをリセットし、状態0に進む。
に関する第2ワードを読み出す)、パリティ・エラーの
有無を検査し、エラーが指示された場合、FR内のDM
ACR_PEビットをセットする。DMACR_DAT
AをRFA_NDA REGにロードする。DMA_
C_REQをリセットし、状態0に進む。
【0276】OPCODEが10(第2ワード書込み)
の場合、DMA_C_REQをリセットし、状態0に進
む。
の場合、DMA_C_REQをリセットし、状態0に進
む。
【0277】11.1.4 RCV ARB状態機
械DMARQ受信待ち行列23の要求ビットをポーリン
グする。状態及び動作は以下の通りである。
械DMARQ受信待ち行列23の要求ビットをポーリン
グする。状態及び動作は以下の通りである。
【0278】状態0:状態1から、又はリセットされた
場合に、この状態に入る。この状態では、受信待ち行列
要求ビットを、内部RV_CNTカウント(3ビット)
によって規定される順にポーリングする。ポーリングさ
れたビットが活動状態であり、マスクされていない場合
、状態1に進む。そうでない場合は、この状態にとどま
り、次のビットをポーリングするためにRV_CNTを
増分する。
場合に、この状態に入る。この状態では、受信待ち行列
要求ビットを、内部RV_CNTカウント(3ビット)
によって規定される順にポーリングする。ポーリングさ
れたビットが活動状態であり、マスクされていない場合
、状態1に進む。そうでない場合は、この状態にとどま
り、次のビットをポーリングするためにRV_CNTを
増分する。
【0279】状態1:DMA_A状態機械による活動要
求ビットの受諾を指示するDMA_A肯定応答信号を待
ち、RV_CNTを増分し、状態0に進む。
求ビットの受諾を指示するDMA_A肯定応答信号を待
ち、RV_CNTを増分し、状態0に進む。
【0280】11.1.5 XMIT ARB状態
機械DMARQ送信待ち行列23の要求ビットをポーリ
ングする。状態及び動作は以下の通りである。
機械DMARQ送信待ち行列23の要求ビットをポーリ
ングする。状態及び動作は以下の通りである。
【0281】状態0:状態1から、又はリセットされた
場合に、この状態に入る。この状態では、送信待ち行列
要求ビットを、内部TX_CNTカウント(3ビット)
によって規定される順にポーリングする。ポーリングさ
れたビットが活動状態であり、マスクされていない場合
、状態1に進む。そうでない場合、この状態にとどまり
、内部カウントを増分し、次の要求ビットをポーリング
する。
場合に、この状態に入る。この状態では、送信待ち行列
要求ビットを、内部TX_CNTカウント(3ビット)
によって規定される順にポーリングする。ポーリングさ
れたビットが活動状態であり、マスクされていない場合
、状態1に進む。そうでない場合、この状態にとどまり
、内部カウントを増分し、次の要求ビットをポーリング
する。
【0282】状態1:DMA_Aが要求の受諾を肯定応
答するのを待つ。肯定応答されたとき、内部カウントを
増分し、状態0に戻る。
答するのを待つ。肯定応答されたとき、内部カウントを
増分し、状態0に戻る。
【0283】11.2 DMADB状態機械DMAD
B22Aの動作を制御する。状態及び関連する動作は以
下の通りである。
B22Aの動作を制御する。状態及び関連する動作は以
下の通りである。
【0284】状態0:リセット状態。この状態では、D
MADB_REQビットが常時監視される。ビットがオ
ンの場合、要求されたタスクを規定するためにDMAC
_DMADB_OPCODEを復号化する。
MADB_REQビットが常時監視される。ビットがオ
ンの場合、要求されたタスクを規定するためにDMAC
_DMADB_OPCODEを復号化する。
【0285】OPCODEがホストメモリから1ワード
を取り出すことを指示する場合、DMAC_MIO_R
D1を肯定し、状態1に進む。
を取り出すことを指示する場合、DMAC_MIO_R
D1を肯定し、状態1に進む。
【0286】OPCODEがホストメモリに1ワードを
書き込むことを指示する場合、DMAC_MIO_WR
1を肯定し、状態2に進む。
書き込むことを指示する場合、DMAC_MIO_WR
1を肯定し、状態2に進む。
【0287】OPCODEがDCB取出し(3ワード)
を指示する場合、DMAC_MIO_RD3を肯定し、
状態3に進む。
を指示する場合、DMAC_MIO_RD3を肯定し、
状態3に進む。
【0288】状態1:MIO_DMAC_ACK0が肯
定されたとき、MIO_DATAバス上のデータをDM
ADB_DATA_REGにラッチし、MIOによって
MIO_DMAC_DONEが肯定されるのを待つ。後
者の指示を受け取ると、DMADB_REQをリセット
し、DMADB_DONE1をセットする(有効なデー
タがDMADB_DATA_REG内にラッチされたこ
とを指示する。これは、DMADBが再使用可能になる
前にDMAC22に移動しなければならない)。次の状
態は状態0である。転送中にエラーが発生した場合、M
IO25は再転送を要求する。このエラー状態が解決さ
れない場合、ハードエラー状態信号がホストプロセッサ
に返送される。
定されたとき、MIO_DATAバス上のデータをDM
ADB_DATA_REGにラッチし、MIOによって
MIO_DMAC_DONEが肯定されるのを待つ。後
者の指示を受け取ると、DMADB_REQをリセット
し、DMADB_DONE1をセットする(有効なデー
タがDMADB_DATA_REG内にラッチされたこ
とを指示する。これは、DMADBが再使用可能になる
前にDMAC22に移動しなければならない)。次の状
態は状態0である。転送中にエラーが発生した場合、M
IO25は再転送を要求する。このエラー状態が解決さ
れない場合、ハードエラー状態信号がホストプロセッサ
に返送される。
【0289】状態2:MIO_DMAC_ACKが肯定
されると、DMAC_MIO_DATAバス上のデータ
はホストメモリに転送され、DMAC FR内の対応
するマスクビットをリセットするためにDMADB_M
ASK_RESETは肯定される。また、当該受信チャ
ネル要求をリセットするためにDMADB_DMARQ
_RESETは肯定される。
されると、DMAC_MIO_DATAバス上のデータ
はホストメモリに転送され、DMAC FR内の対応
するマスクビットをリセットするためにDMADB_M
ASK_RESETは肯定される。また、当該受信チャ
ネル要求をリセットするためにDMADB_DMARQ
_RESETは肯定される。
【0290】状態3:3ワードDCB取出しを処理する
。各MIO_DMAC_ACKn(n=0,1,2)を
受け取ると、それはDMAC22に渡され、MIO_D
ATAバス上のデータはDMADB_DATA_REG
にラッチされる(DMAC22は折返しで3つのワード
を受け取る準備ができており、DMADB_DATA_
REGの内容を内部DMACレジスタに自動的に転送す
る)。
。各MIO_DMAC_ACKn(n=0,1,2)を
受け取ると、それはDMAC22に渡され、MIO_D
ATAバス上のデータはDMADB_DATA_REG
にラッチされる(DMAC22は折返しで3つのワード
を受け取る準備ができており、DMADB_DATA_
REGの内容を内部DMACレジスタに自動的に転送す
る)。
【0291】MIO_DMAC_DONEが検出される
と、DMADB_DONE2を肯定し、DMADB_R
EQをリセットし、状態0に戻る。
と、DMADB_DONE2を肯定し、DMADB_R
EQをリセットし、状態0に戻る。
【0292】11.3 MIOマイクロチャネル・バ
ス状態機械 マイクロチャネル及びDMAC22に関する状態、動作
、及び遷移は以下の通りである。
ス状態機械 マイクロチャネル及びDMAC22に関する状態、動作
、及び遷移は以下の通りである。
【0293】状態0:アイドル状態。バス制御が解放さ
れるか、又はIIMがリセットされると、この状態に入
る。
れるか、又はIIMがリセットされると、この状態に入
る。
【0294】DMAC22からの要求を待つ(DMAC
_MIO_RD1/WR1/RD3)。要求を得たとき
、バスは直ちに調停サイクルにないことを確認し、状態
1に進む。バス調停サイクルが進行中の場合、サイクル
終了を待ち、その後で状態1に進む。
_MIO_RD1/WR1/RD3)。要求を得たとき
、バスは直ちに調停サイクルにないことを確認し、状態
1に進む。バス調停サイクルが進行中の場合、サイクル
終了を待ち、その後で状態1に進む。
【0295】状態1:調停状態。この状態では、ARB
_GNTがハイになると、MIO25は確かにバスの調
停をする。しかしながら、サイクルは100マイクロ秒
程度の短時間でありうるので、MIO25はサイクルを
直ちに開始するためにARB_GNTをゲートする。バ
ス制御権が得られ、解放されるまでこの線をハイに維持
する。MIO25がバス制御権を得ると、このバス上に
状態が送出される。バス制御権が得られるまでこの状態
にとどまる。得られたら、状態2に進む。
_GNTがハイになると、MIO25は確かにバスの調
停をする。しかしながら、サイクルは100マイクロ秒
程度の短時間でありうるので、MIO25はサイクルを
直ちに開始するためにARB_GNTをゲートする。バ
ス制御権が得られ、解放されるまでこの線をハイに維持
する。MIO25がバス制御権を得ると、このバス上に
状態が送出される。バス制御権が得られるまでこの状態
にとどまる。得られたら、状態2に進む。
【0296】状態2:スレーブ装置(システムメモリ・
ユニット)の可用性を決定する。
ユニット)の可用性を決定する。
【0297】装置が16ビット装置であり、バスに接続
されている場合は、継続する。そうでない場合、状態1
5に進み、ハードエラーを通知する。装置幅はDS16
_RTNによって検査され、バス上のスレーブ装置の有
無は、FDBK_RTNによって検査される。DS16
_RTNが許容タイムアウト内に肯定されない場合、ハ
ードエラー状態15に進む。SFDBK_RTNが肯定
されない場合、状態15に進む。そうでない場合は、状
態3に進む。
されている場合は、継続する。そうでない場合、状態1
5に進み、ハードエラーを通知する。装置幅はDS16
_RTNによって検査され、バス上のスレーブ装置の有
無は、FDBK_RTNによって検査される。DS16
_RTNが許容タイムアウト内に肯定されない場合、ハ
ードエラー状態15に進む。SFDBK_RTNが肯定
されない場合、状態15に進む。そうでない場合は、状
態3に進む。
【0298】状態3:ADL(アドレスデコード線)を
活動状態にストローブする。状態5に進む。
活動状態にストローブする。状態5に進む。
【0299】状態5:CMDをストローブする
【030
0】CMD(コマンド線)を活動状態にストローブする
。CHRDY_RTNを待ち、CMD及びADLを非活
動化し、DPAREN(データパリティ・イネーブル)
を活動化する。CHRDY_RTNが検出されると、状
態6に進む。CHRDY_RTNを待っている間にタイ
ムアウト状態が発生した場合、エラー指示をDMAC2
2にセットし、状態15に進む。
0】CMD(コマンド線)を活動状態にストローブする
。CHRDY_RTNを待ち、CMD及びADLを非活
動化し、DPAREN(データパリティ・イネーブル)
を活動化する。CHRDY_RTNが検出されると、状
態6に進む。CHRDY_RTNを待っている間にタイ
ムアウト状態が発生した場合、エラー指示をDMAC2
2にセットし、状態15に進む。
【0301】状態6:CMDをストローブする
【030
2】要求されたバス時間(2内部クロックサイクル、す
なわち約90ナノ秒)の間CMDをローにストローブし
、状態ビットを非活動化し、次の状態(状態7)に進む
。アドレスがこの状態で変更され、その後データがゲー
トアウトされる(アドレスに対する適切な保持時間を確
保する)。次の状態は、パリティが発生しなければ状態
7である(パリティが発生した場合、次の状態は状態1
5であり、DMAC_PEが活動化される)。
2】要求されたバス時間(2内部クロックサイクル、す
なわち約90ナノ秒)の間CMDをローにストローブし
、状態ビットを非活動化し、次の状態(状態7)に進む
。アドレスがこの状態で変更され、その後データがゲー
トアウトされる(アドレスに対する適切な保持時間を確
保する)。次の状態は、パリティが発生しなければ状態
7である(パリティが発生した場合、次の状態は状態1
5であり、DMAC_PEが活動化される)。
【0303】DMAC要求がDCB取出し(DMAC_
MIO_RD3)であり、かつ有効ワードがスレーブ装
置から受け取ったばかりである場合(パリティエラーな
しで2つの16ビット転送)、受け取ったワードの位置
に対応して肯定応答MIO_DMAC_ACKn(n=
0、1、又は2)をDMAC22に返す(DCB取出し
では、3ワードが折返しでシステムメモリから読み出さ
れ、それぞれACK0、ACK1、ACK2で肯定応答
される)。
MIO_RD3)であり、かつ有効ワードがスレーブ装
置から受け取ったばかりである場合(パリティエラーな
しで2つの16ビット転送)、受け取ったワードの位置
に対応して肯定応答MIO_DMAC_ACKn(n=
0、1、又は2)をDMAC22に返す(DCB取出し
では、3ワードが折返しでシステムメモリから読み出さ
れ、それぞれACK0、ACK1、ACK2で肯定応答
される)。
【0304】要求が1ワード送信データ取出し(DMA
C_MIO_RD1)又は1ワード受信データ記憶(D
MAC_MIO_WR1)であり、かつワードアクセス
が完了したばかりである(バス上の2つの16ビット転
送)場合、MIO_DMAC_ACK0で肯定応答する
。
C_MIO_RD1)又は1ワード受信データ記憶(D
MAC_MIO_WR1)であり、かつワードアクセス
が完了したばかりである(バス上の2つの16ビット転
送)場合、MIO_DMAC_ACK0で肯定応答する
。
【0305】状態7に進む。
【0306】状態7:CMDを非活動化する
【0307
】CMDは非活動化されるが、書込み動作時にはデータ
は有効に保たれる。第2の16ビットアクセスが必要な
場合、新しい状態が出される。第2のアクセスが必要な
場合、又はDCB取出しの途中である場合、状態3に進
み、状態3−7を循環する。そうでない場合は、状態8
に進む。
】CMDは非活動化されるが、書込み動作時にはデータ
は有効に保たれる。第2の16ビットアクセスが必要な
場合、新しい状態が出される。第2のアクセスが必要な
場合、又はDCB取出しの途中である場合、状態3に進
み、状態3−7を循環する。そうでない場合は、状態8
に進む。
【0308】状態8:次のバス要求/解放を待つ(バス
保持動作)
保持動作)
【0309】タイマ、バスのMIO制御のこの期間中に
バスプリエンプト信号は最初に活動状態になって以降の
経過時間を示す。
バスプリエンプト信号は最初に活動状態になって以降の
経過時間を示す。
【0310】DMAC22が設定時間(4内部MIOク
ロックサイクル)内に別の要求を返す場合、経過時間が
4マイクロ秒未満ならばバス上で要求された動作を開始
する。経過時間が4〜6マイクロ秒の間である場合、要
求された動作がDCB取出しでない限り(すなわち、D
MAC_MIO_RD1又はDMAC_MIO_WR1
である場合に限り)、要求された動作を開始する。
ロックサイクル)内に別の要求を返す場合、経過時間が
4マイクロ秒未満ならばバス上で要求された動作を開始
する。経過時間が4〜6マイクロ秒の間である場合、要
求された動作がDCB取出しでない限り(すなわち、D
MAC_MIO_RD1又はDMAC_MIO_WR1
である場合に限り)、要求された動作を開始する。
【0311】DMAC22が設定時間(4内部サイクル
)内に別の要求を返さない場合、又は経過時間が6マイ
クロ秒より大きい場合、バスを解放する。
)内に別の要求を返さない場合、又は経過時間が6マイ
クロ秒より大きい場合、バスを解放する。
【0312】IIMがバスアーキテクチャの「公平」規
則に従って動作している場合、状態9に進む。そうでな
い場合は、状態0に進み、適当なとき再調停する。
則に従って動作している場合、状態9に進む。そうでな
い場合は、状態0に進み、適当なとき再調停する。
【0313】状態9:ホッグペン。他の装置からの以前
のすべてのバスアクセス要求が許可されるまで、MIO
が待たなければならない状態。非同期IIM論理回路は
バスを監視して、他のすべての装置がいつアクセスの機
会をもったかを決定し、その後EXIT_HOG_PE
NをMIO25に通知する。通知時に、状態0に進む。
のすべてのバスアクセス要求が許可されるまで、MIO
が待たなければならない状態。非同期IIM論理回路は
バスを監視して、他のすべての装置がいつアクセスの機
会をもったかを決定し、その後EXIT_HOG_PE
NをMIO25に通知する。通知時に、状態0に進む。
【0314】状態15:ハード障害/エラー状態。バス
は解放され、MIO_DMAC_DONEは肯定される
。エラー状態は報告される。すべての要求が除去される
まで待ち、非活動状態に入るか、又は状態0に進み、別
の要求を待つ。
は解放され、MIO_DMAC_DONEは肯定される
。エラー状態は報告される。すべての要求が除去される
まで待ち、非活動状態に入るか、又は状態0に進み、別
の要求を待つ。
【図1】IDLC装置及びIIM装置の通信環境、及び
IIMの回路とIDLCの回路の間の機能的関係を示す
図である。
IIMの回路とIDLCの回路の間の機能的関係を示す
図である。
【図2】本発明によって構成されたIIM装置のブロッ
ク図である。
ク図である。
【図3】本発明によって解決される問題を生ずるIIM
の通信ポートインターフェースにおけるバスアクセス制
約と実時間スループット要件間の競合を説明するのに使
用される図である。
の通信ポートインターフェースにおけるバスアクセス制
約と実時間スループット要件間の競合を説明するのに使
用される図である。
【図4】本発明によって構成されたIIMのDMACユ
ニット、DMADBユニット、及びMIOユニットが、
IIMのシステムバス・インターフェースにおいてII
Mの最大ワード転送スループットを有効に倍増するため
に、複数のチャネルに関してどのように時間的にオーバ
ーラップして動作するかを示す図である。
ニット、DMADBユニット、及びMIOユニットが、
IIMのシステムバス・インターフェースにおいてII
Mの最大ワード転送スループットを有効に倍増するため
に、複数のチャネルに関してどのように時間的にオーバ
ーラップして動作するかを示す図である。
【図5】バス転送動作に関するデータ及び制御情報を保
持するために、IIMに統合されIIMのDMACユニ
ットによって使用される、FIFO RAMメモリ及
びDMAC RAMメモリに記憶されるワード容量及
びワード形式を示す図である。
持するために、IIMに統合されIIMのDMACユニ
ットによって使用される、FIFO RAMメモリ及
びDMAC RAMメモリに記憶されるワード容量及
びワード形式を示す図である。
【図6】任意の通信チャネルの受信サブチャネル及び送
信サブチャネルに関するIIMの同期部及び非同期部の
内部で実行される各チャネル動作を示す図である。
信サブチャネルに関するIIMの同期部及び非同期部の
内部で実行される各チャネル動作を示す図である。
【図7】IIM装置の非同期DMACユニットと同期部
分間をインターフェースするIIMのDMARQユニッ
トを示す図である。
分間をインターフェースするIIMのDMARQユニッ
トを示す図である。
【図8】DMACによってそのチャネルサービス中にど
の通信データが取り出され、記憶されるかに関するFI
FO RAMメモリのアクセス論理回路を示す図であ
る。
の通信データが取り出され、記憶されるかに関するFI
FO RAMメモリのアクセス論理回路を示す図であ
る。
【図9】DMACの動作を制御するための情報が記憶さ
れるDMAC RAM(DMACR)メモリ及びII
M装置の非同期部の他のユニットのアクセス論理を示す
図である。
れるDMAC RAM(DMACR)メモリ及びII
M装置の非同期部の他のユニットのアクセス論理を示す
図である。
【図10】DMACのレジスタ及び状態機械論理サブユ
ニットのブロック図である。
ニットのブロック図である。
【図11】IIMのDMADBユニットのレジスタ及び
状態機械論理回路のブロック図である。
状態機械論理回路のブロック図である。
【図12】IIMのMIOユニットのレジスタ及び状態
機械論理回路のブロック図である。
機械論理回路のブロック図である。
【図13】IIMのDMACユニット及びDMADBユ
ニットの、レジスタ経路とユニット間の信号流れの一部
の様態とを示す簡略化したブロック図である。
ニットの、レジスタ経路とユニット間の信号流れの一部
の様態とを示す簡略化したブロック図である。
【図14】FIFO RAMに記憶され、DMACに
よってその動作時に使用されるTDCR制御ワードの形
式を示す図である。
よってその動作時に使用されるTDCR制御ワードの形
式を示す図である。
【図15】DMACRに記憶され、DMACによってそ
の動作時に使用されるRDCR制御ワードの形式を示す
図である。
の動作時に使用されるRDCR制御ワードの形式を示す
図である。
【図16】DMACの内部機能レジスタを示す図である
。
。
1 統合データリンク・コントローラ(IDLC)装
置2 データ処理システム(ホストシステム)2a
プロセッサ 2b プロセッサRAM(ホストメモリ)3 レベ
ル1(L1)回路 4 バースト時分割多重(BTDM)インターフェー
ス5 ネットワークインターフェース 6 統合ISDNモジュール(IIM)チャネル11
IIM同期部分 12 IIB非同期部分 13 インターフェース 14 受信(RCV)回路 15 送信(XMIT)回路 16 先入れ先出し(FIFO)RAM17 受信
FIFO管理(RFM)ユニット18 送信FIFO
管理(TFM)ユニット19 タイム・スワップ(T
S)RAM(TSRメモリ) 20 資源管理(RSM)ユニット 21 割込み管理(INT)ユニット22 直接メ
モリアクセス・コントローラ(DMAC)ユニット
置2 データ処理システム(ホストシステム)2a
プロセッサ 2b プロセッサRAM(ホストメモリ)3 レベ
ル1(L1)回路 4 バースト時分割多重(BTDM)インターフェー
ス5 ネットワークインターフェース 6 統合ISDNモジュール(IIM)チャネル11
IIM同期部分 12 IIB非同期部分 13 インターフェース 14 受信(RCV)回路 15 送信(XMIT)回路 16 先入れ先出し(FIFO)RAM17 受信
FIFO管理(RFM)ユニット18 送信FIFO
管理(TFM)ユニット19 タイム・スワップ(T
S)RAM(TSRメモリ) 20 資源管理(RSM)ユニット 21 割込み管理(INT)ユニット22 直接メ
モリアクセス・コントローラ(DMAC)ユニット
Claims (12)
- 【請求項1】多重チャネルDMA(直接メモリアクセス
)コントローラを含む複数の装置に接続可能なシステム
バスを介してデータ処理システムメモリへのアクセスを
制御するための多重チャネルDMAコントローラであっ
て、前記コントローラによってサービスされ前記システ
ムメモリ内に記憶されるべきデータを運ぶ複数の入力チ
ャネル及び前記システムメモリから取り出されたデータ
を運ぶ複数の出力チャネルを含む複数のチャネルに関す
るデータ及び制御情報を記憶するためのランダムアクセ
ス・バッファメモリ手段と、前記バスを調停しそれを制
御するように、かつ前記の個々の入力チャネルに関する
データを前記システムメモリに転送し、前記の個々の出
力チャネルに関するデータを前記システムメモリから取
り出すために前記バスを介して動作するように、前記バ
スに結合されたバス制御手段と、前記チャネルのうちの
任意の1本に関するデータ及び制御情報を記憶するため
の内部レジスタを有し、かつ前記出力チャネルの任意の
1本に関するデータを前記内部レジスタから前記バッフ
ァメモリ手段に書き込み、前記入力チャネルの任意の1
本に関するデータを前記バッファメモリから前記内部レ
ジスタに取り出し、かつ前記チャネルの任意の1本に関
する制御情報を前記バッファメモリ手段と前記内部レジ
スタとの間で双方向に転送するように、前記バッファメ
モリ手段に結合されており、前記チャネルに関連する前
記レジスタ内の制御情報に応答して、前記関連チャネル
に割り振られたシステムメモリ内のアドレスに関する前
記バス制御手段の動作を指令する手段を含むDMA制御
(DMAC)手段と、前記チャネルのいずれかに関連す
るデータ及び制御情報を保持するための内部レジスタを
有し、かつ前記DMAC手段と前記バス制御手段間で前
記の個々のチャネルに関するデータ及び制御情報を転送
するように前記バス制御手段と前記DMAC手段間をイ
ンターフェースするDMAデータバッファ(DMADB
)手段とを備え、前記DMADB手段とバス制御手段が
緊密に結合されて同期的に動作し、両者は前記DMAC
手段とは非同期的に動作し、前記DMADB手段が、前
記DMAC手段から受け取った任意の前記チャネルに関
する制御信号に応答して、前記DMAC手段の内部レジ
スタからその内部レジスタ内にそのチャネルに関するデ
ータ及び制御情報を受け取り、そのチャネルに関するデ
ータ及び制御情報をその内部レジスタから前記DMAC
手段の内部レジスタに転送させ、前記DMAC手段から
有効に減結合される間に前記バス制御手段と協働して、
前記バスを介して前記システムメモリに関する動作を実
行するように動作し、これによって前記動作が前記シス
テムメモリに関する前記DMADB手段及びバス制御手
段によって実行されている間に、前記DMAC手段の前
記内部レジスタが、別の前記チャネルに関するデータ及
び制御情報を自由に受け取って、前記の別のチャネルに
関する前記DMADB手段及びバス制御手段による以後
の動作の準備をすることを特徴とする直接メモリアクセ
ス・コントローラ。 - 【請求項2】前記DMAC手段は、1本のチャネルに関
する制御情報及びデータを前記DMAC手段の前記内部
レジスタから前記DMADB手段の前記内部レジスタに
転送し、同時に別のチャネルに関する制御情報及びデー
タを前記DMADB手段の前記内部レジスタから前記D
MAC手段の前記内部レジスタに転送するためのスワッ
プ制御手段を備え、これによって前記DMAC手段、D
MADB手段、及びバス制御手段が前記の1本のチャネ
ル及び別のチャネルに関して時間的にオーバーラップし
て動作して、前記両方のチャネルに関して同時に前記バ
ッファメモリ手段と前記システムメモリ間のデータ転送
動作を実行することができることを特徴とする請求項1
記載の直接メモリアクセス・コントローラ。 - 【請求項3】前記バッファメモリ手段は、前記バスと前
記DMAコントローラとから分離された装置にアクセス
可能で、前記コントローラは、前記入力チャネル及び出
力チャネルに関する前記外部装置からのデータ転送要求
を、前記外部装置と前記バッファメモリ手段の間のデー
タ転送と関連して記憶するように前記外部装置に結合さ
れたDMA要求待ち行列化(DMARQ)手段を含み、
前記DMAC手段は、前記DMARQ手段に記憶された
要求に応答して、前記バッファメモリ手段及び前記チャ
ネルに関する前記DMAC手段による動作を開始する手
段を含み、それによって、前記バッファメモリ手段間で
前記外部装置の要件、及び前記バス上のタイミング制約
条件で調製されたペースでデータが転送されることを特
徴とする請求項1記載の直接メモリアクセス・コントロ
ーラ。 - 【請求項4】前記チャネルの少なくとも1本に関する記
憶された前記制御情報は、前記システムメモリに記憶さ
れた同じチャネルに関する別のコマンドと連鎖された関
連するコマンドを含み、前記関連するコマンドの各々は
関連するチャネルに割り振られた前記システムメモリの
データ単位記憶空間のブロックに関する前記DMAC手
段、DMADB手段、及びバス制御手段のデータ単位転
送動作を規定し、かつ前記コマンドの各々は前記ブロッ
クに関する転送されるデータ単位数を規定するデータ単
位カウント情報を含み、前記DMAC手段は、前記バッ
ファメモリ手段に記憶された関連コマンドを前記DMA
C手段の内部レジスタに取り出す手段と、関連するチャ
ネルに割り振られたアドレス・ブロックのアドレスであ
る、前記レジスタのコマンドに応答して、前記コマンド
によって指定されたシステムメモリ・データ単位アドレ
スに関する前記DMADB手段及びバス制御手段による
動作を開始する手段と、前記動作が開始されている間に
、前記レジスタに入れられたコマンドの前記アドレス及
び単位カウントを修正するように動作する手段と、前記
レジスタに入れられたコマンドを前記修正されたアドレ
ス及び単位カウントと共に前記バッファメモリ手段に記
憶する手段と、システムメモリ空間の前記ブロックが使
い果された前記修正されたカウントからの情報と、前記
レジスタに入れられた、別のコマンドに連鎖された関連
するコマンドからの情報と、前記レジスタに入れられた
、前記関連する別のコマンドのシステムメモリの位置を
指定するコマンドの情報とに応答して、前記DMADB
手段及びDMAC手段の前記内部レジスタを介して前記
システムメモリから前記の別のコマンドを逐次取り出す
ための前記DMADB手段及びバス制御手段による動作
を開始して、前記DMAC手段は、関連するチャネルに
割り振られたシステムメモリのデータ単位空間の別のブ
ロックに関する別のデータ転送動作を指令できるように
する手段とを含むことを特徴とする請求項1記載の直接
メモリアクセス・コントローラ。 - 【請求項5】前記連鎖コマンドの各々は制御情報の複数
のデータ単位からなるデータ制御ブロック(DCB)を
含み、その制御情報の検索にはDMAC手段とDMAD
B手段の両方の内部レジスタを同時に使用することが必
要であり、それによって、前記レジスタは、検索される
コマンドのDCBに関連するチャネル以外のチャネルへ
のサービスのために利用できないことを特徴とする請求
項4記載の直接メモリアクセス・コントローラ。 - 【請求項6】連鎖コマンドを表すDCBの最後の単位の
検索の際に、前記DMAC手段の前記内部レジスタは、
検索されたDCBの単位のすべてによって規定される情
報でセットされ、前記DMAC手段は、DMADB手段
及びバス制御手段に、前記DCBによって規定されるデ
ータ単位転送動作を開始するように直ちに指令できるこ
とを特徴とする請求項5記載の直接メモリアクセス・コ
ントローラ。 - 【請求項7】前記バス制御手段は、前記チャネルの別の
1本に関する別の動作要求を準備するために前記DMA
C手段が必要とする時間の一部分を表す所定の時間の間
に、前記バス制御手段が、バス制御手段がバス制御権を
有し、前記チャネルの1本に関する前記DMAC手段に
よって要求された動作を完了し、前記DMAC手段から
前記DMADB手段を介して別の動作要求を受け取って
いない場合に発生するアイドル状態を検出する手段と、
前記アイドル状態の検出に応答して、前記バス制御権を
解放するように前記バス制御手段を条件づける手段とを
備えていることを特徴とする請求項1記載の直接メモリ
アクセス・コントローラ。 - 【請求項8】前記DMAC手段は、中断なく連続して前
記バス上での複数の制御データ単位転送を必要とする前
記チャネルに関する連鎖コマンド取出し動作を開始する
手段と、前記バス上での単一データ単位転送を必要とす
る前記チャネルの各々に関する単一データ転送動作を開
始する手段とを含み、前記バス制御手段は、前記バス制
御手段が前記バス制御権を有する間に、前記バス上の、
他の装置による前記バス制御権を求める外部送信権要求
を指示するプリエンプト信号に応答して、所定の持続時
間のタイムアウトを開始するためのタイマ手段と、第1
の所定時間より短い経過時間を表す前記タイマの出力に
応答して、前記DMAC手段から前記DMADB手段を
介して提示された単一データ単位転送又は複数の単位連
鎖コマンド転送要求に応答するように前記バス制御手段
を条件づける手段と、前記の第1の所定の時間より大き
く第2の所定の時間より小さい中間の経過時間を表す前
記タイマの出力に応答して、連鎖コマンド転送要求には
応答せず、単一データ単位転送要求にだけ応答するよう
に前記バス制御手段を条件づける手段とを含み、前記バ
ス制御権を解放するように前記バス制御手段を条件づけ
る前記手段は、前記アイドル状態の検出に応答して、又
は前記バス制御手段が動作を完了し、かつ前記タイマの
経過時間が前記の第2の所定の時間より大きいことを検
出したのに応答して、前記解放を条件づけるのに有効で
あることを特徴とする請求項7記載の直接メモリアクセ
ス・コントローラ。 - 【請求項9】前記バッファメモリ手段は、第1及び第2
の別々にアクセス可能なランダムアクセス・メモリ(R
AM)を含み、前記第1のRAMは、前記チャネルの各
々に専用で、関連するチャネルに関するデータ単位及び
制御情報単位を記憶するための1対の単位記憶空間を有
し、前記制御情報単位は、それぞれのチャネルに関する
動作を制御するためのコマンドの一部分からなり、前記
コマンドは3つの制御情報単位からなり、前記の第2の
RAMは、前記チャネルの各々に専用で、それぞれのチ
ャネルに関連するコマンドの残りの部分を構成する2つ
の制御情報単位を記憶するための1対の単位記憶空間を
有し、前記DMAC手段は、前記バス制御手段が前記バ
ス制御権を有する間に、前記バスを介して前記チャネル
の別の1本に関する動作を実行するために前記DMAD
B手段及びバス制御手段によって必要される時間と平均
してほぼ同じ時間内に、前記チャネルの1本と関連する
コマンドを構成する3つの制御情報単位すべての検索と
、前記DMAC手段の内部レジスタへの前記単位の配置
とを開始するようにとの要求を、前記の第1及び第2の
RAMに同時に供給する手段を含み、それによって、前
記DMAC手段は、前記DMADB手段及びバス制御手
段が他のチャネルに関する動作を実行している時間とほ
ぼ同じ時間内に、1本のチャネルに関する動作の準備を
するように動作することができることを特徴とする請求
項1記載の直接メモリアクセス・コントローラ。 - 【請求項10】前記DMAC手段は、前記DMAC手段
の内部レジスタが1本のチャネルと関連するコマンド情
報を準備すると、前記DMADB手段及びバス制御手段
がいつ他のチャネルに関する動作を完了したかを検出す
るのに有効である手段と、前記検出手段による前記完了
の検出に応答して、前記DMAC手段と前記DMADB
手段の内部レジスタ間のスワップ転送動作を制御して、
前記DMADB手段の前記内部レジスタに、前記1本の
チャネルに関するデータ及び制御情報を受け取らせ、前
記DMAC手段の前記内部レジスタに、前記他のチャネ
ルに関するデータ及び制御情報を受け取らせる手段とを
備え、それによって、前記別のチャネルと前記第1及び
第2のRAM間の動作は前記DMAC手段によって完了
されることができ、同時に前記1本のチャネルと前記シ
ステムメモリ手段間の動作は前記DMADB手段及びバ
ス制御手段によって実行されることができることを特徴
とする請求項9記載の直接アクセス・コントローラ。 - 【請求項11】前記第1及び第2のRAMに記憶された
前記1本のチャネルに関する前記の3つのコマンド情報
単位は、前記システムメモリに記憶された前記1本のチ
ャネルに関する他の3単位の情報ブロックに連鎖関係で
関連づけられ、前記DMAC手段は、前記第1及び第2
のRAMに記憶された3単位で規定された前記1本のチ
ャネルに関するデータ転送がいつすべて終了したかを検
出する手段と、前記の転送がすべて終了したことの検出
に応答して、前記DMADB手段及びDMAC手段双方
の内部レジスタを介して、前記システムメモリに記憶さ
れた3単位の連鎖コマンド情報の3単位の連続検索を開
始する手段とを備え、それによって、前記連鎖された3
単位が検索されている間に、前記レジスタは、有効に専
ら前記連鎖された3単位の検索専用であることを特徴と
する請求項10記載の直接アクセス・コントローラ。 - 【請求項12】実時間制約を有するデータ転送チャネル
に関するデータ処理システムのメモリへのアクセスを制
御し、前記チャネルが時間的オーバーラップなしでコン
トローラからサービスを受ける場合に、前記実時間制約
と競合し得るアクセス時間制約を有するバスを介して前
記システムメモリに関するデータ転送を実行するための
、直接メモリアクセス・コントローラであって、各前記
チャネルに割り振られ、各チャネルに関する制御情報及
びデータを記憶するための空間を有するRAMバッファ
記憶手段と、前記バッファ記憶手段に結合され、いつで
も前記チャネルの任意の1本に関連する制御情報及びそ
のチャネルに関する転送途中のデータを保持するように
前記チャネルに関して時分割されたレジスタを含み、個
々の前記チャネルに関する前記記憶手段にアクセスし、
かつそれぞれのチャネルに関する制御情報及びデータを
前記記憶手段との間で転送するための第1手段と、前記
第1手段と前記バス間に結合され、前記チャネルの1本
に関連する制御情報及びそのチャネルに関する転送途中
のデータを保持するように前記チャネルに関して時分割
されたレジスタを含み、前記第1手段から前記制御情報
の一部分を受け取り、かつ前記制御情報に応答して前記
バスを制御し、前記第1手段と前記システムメモリ間で
前記バスを介してデータを転送するように動作する第2
手段と、前記の第1手段及び第2手段に関して、離別的
な瞬時に前記の第1手段及び第2手段に前記の2本のチ
ャネルに関する制御情報とデータをスワップさせるよう
に動作する第3手段とを備え、前記の第1手段及び第2
手段の前記レジスタが、複数の前記チャネルに関してデ
ータが同時に転送できるパイプラインを形成し、それに
よって前記第1手段及び第2手段は、前記パイプライン
のそれぞれの部分に関して時間的にオーバーラップして
、前記2本のチャネルに関して同時に前記バッファ記憶
手段と前記システムメモリ間でデータ転送動作を実行す
るように動作でき、それによって前記2本のチャネルに
関する前記動作を、それらの2本のチャネルに関するデ
ータ転送が順次実行される場合に必要な時間より少ない
時間で完了されることを特徴とする直接メモリアクセス
・コントローラ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/614,524 US5182800A (en) | 1990-11-16 | 1990-11-16 | Direct memory access controller with adaptive pipelining and bus control features |
US614524 | 1990-11-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04230557A true JPH04230557A (ja) | 1992-08-19 |
Family
ID=24461619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3219406A Pending JPH04230557A (ja) | 1990-11-16 | 1991-08-06 | 直接メモリアクセス・コントローラ |
Country Status (4)
Country | Link |
---|---|
US (1) | US5182800A (ja) |
EP (1) | EP0486145A3 (ja) |
JP (1) | JPH04230557A (ja) |
BR (1) | BR9104956A (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH077327B2 (ja) * | 1991-02-19 | 1995-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ転送方法 |
DE4227346C2 (de) * | 1991-08-19 | 1999-09-09 | Sequent Computer Systems Inc | Gerät zur Datenübertragung zwischen mehreren, mit einem SCSI-Bus verbundenen Einheiten |
JPH0567039A (ja) * | 1991-09-06 | 1993-03-19 | Toshiba Corp | Dmaチヤネル制御装置 |
US5283883A (en) * | 1991-10-17 | 1994-02-01 | Sun Microsystems, Inc. | Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput |
US5386532A (en) * | 1991-12-30 | 1995-01-31 | Sun Microsystems, Inc. | Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels |
JPH06103213A (ja) * | 1992-09-18 | 1994-04-15 | Hitachi Ltd | 入出力装置 |
US5596749A (en) * | 1992-09-21 | 1997-01-21 | Texas Instruments Incorporated | Arbitration request sequencer |
US5526484A (en) * | 1992-12-10 | 1996-06-11 | International Business Machines Corporation | Method and system for pipelining the processing of channel command words |
JP3549003B2 (ja) * | 1993-08-31 | 2004-08-04 | 株式会社日立製作所 | 情報送出装置および情報送出/受信システム |
US5708849A (en) * | 1994-01-26 | 1998-01-13 | Intel Corporation | Implementing scatter/gather operations in a direct memory access device on a personal computer |
US5619646A (en) * | 1994-09-27 | 1997-04-08 | International Business Machines Corporation | Method and system for dynamically appending a data block to a variable length transmit list while transmitting another data block over a serial bus |
US5828903A (en) * | 1994-09-30 | 1998-10-27 | Intel Corporation | System for performing DMA transfer with a pipeline control switching such that the first storage area contains location of a buffer for subsequent transfer |
US6434638B1 (en) | 1994-12-09 | 2002-08-13 | International Business Machines Corporation | Arbitration protocol for peer-to-peer communication in synchronous systems |
US5634099A (en) * | 1994-12-09 | 1997-05-27 | International Business Machines Corporation | Direct memory access unit for transferring data between processor memories in multiprocessing systems |
US5671443A (en) * | 1995-02-21 | 1997-09-23 | International Business Machines Corporation | Direct memory access acceleration device for use in a data processing system |
US5659749A (en) * | 1995-05-08 | 1997-08-19 | National Instruments Corporation | System and method for performing efficient hardware context switching in an instrumentation system |
US5680401A (en) * | 1995-10-27 | 1997-10-21 | Sun Microsystems, Inc. | Method and apparatus for asynchronously segmenting packets of multiple channels into ATM cells |
EP0772119A3 (en) * | 1995-10-31 | 1997-12-29 | Cirrus Logic, Inc. | Automatic graphics operation |
US5875352A (en) * | 1995-11-03 | 1999-02-23 | Sun Microsystems, Inc. | Method and apparatus for multiple channel direct memory access control |
US5761532A (en) * | 1995-12-29 | 1998-06-02 | Intel Corporation | Direct memory access controller with interface configured to generate wait states |
US5894586A (en) * | 1997-01-23 | 1999-04-13 | Xionics Document Technologies, Inc. | System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit |
US5963499A (en) * | 1998-02-05 | 1999-10-05 | Cypress Semiconductor Corp. | Cascadable multi-channel network memory with dynamic allocation |
JPH11272606A (ja) * | 1998-03-19 | 1999-10-08 | Fujitsu Ltd | バス制御装置 |
US6345310B1 (en) | 1998-07-28 | 2002-02-05 | International Business Machines Corporation | Architecture for a multiple port adapter having a single media access control (MAC) with a single I/O port |
US6920562B1 (en) * | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
US6233628B1 (en) * | 1999-01-08 | 2001-05-15 | Oak Technology, Inc. | System and method for transferring data using separate pipes for command and data |
EP1059589B1 (en) | 1999-06-09 | 2005-03-30 | Texas Instruments Incorporated | Multi-channel DMA with scheduled ports |
JP2002157213A (ja) * | 2000-09-27 | 2002-05-31 | Texas Instruments Inc | ディジタル信号演算装置におけるホスト・ポート・インターフェース・ユニットのための装置および方法 |
EP1193607B1 (en) * | 2000-09-27 | 2005-03-30 | Texas Instruments Incorporated | Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller |
GB2372115A (en) * | 2001-02-08 | 2002-08-14 | Mitel Semiconductor Ltd | Direct memory access controller |
US20060004932A1 (en) * | 2004-07-02 | 2006-01-05 | Deans Russell C | Multi-directional data transfer using a single DMA channel |
JP2006215886A (ja) * | 2005-02-04 | 2006-08-17 | Toshiba Corp | 信号処理装置、信号処理システム、および信号処理方法 |
US7984204B2 (en) * | 2008-05-13 | 2011-07-19 | International Business Machines Corporation | Programmable direct memory access controller having pipelined and sequentially connected stages |
US8078848B2 (en) | 2009-01-09 | 2011-12-13 | Micron Technology, Inc. | Memory controller having front end and back end channels for modifying commands |
US8055816B2 (en) | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
DE102009016742B4 (de) | 2009-04-09 | 2011-03-10 | Technische Universität Braunschweig Carolo-Wilhelmina | Mehrprozessor-Computersystem |
US9520180B1 (en) | 2014-03-11 | 2016-12-13 | Hypres, Inc. | System and method for cryogenic hybrid technology computing and memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5999526A (ja) * | 1982-11-09 | 1984-06-08 | シ−メンス,アクチエンゲゼルシヤフト | 直接記憶アクセス制御装置およびその動作方法 |
JPH01237864A (ja) * | 1988-03-18 | 1989-09-22 | Fujitsu Ltd | Dma転送制御装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
JPS54129942A (en) * | 1978-03-31 | 1979-10-08 | Fujitsu Ltd | Direct transfer system between sub-systems |
US4371928A (en) * | 1980-04-15 | 1983-02-01 | Honeywell Information Systems Inc. | Interface for controlling information transfers between main data processing systems units and a central subsystem |
US4646236A (en) * | 1981-04-17 | 1987-02-24 | International Business Machines Corp. | Pipelined control apparatus with multi-process address storage |
US4481572A (en) * | 1981-10-13 | 1984-11-06 | Teledyne Industries, Inc. | Multiconfigural computers utilizing a time-shared bus |
WO1984000222A1 (en) * | 1982-06-30 | 1984-01-19 | Elxsi | I/o channel bus |
US4604683A (en) * | 1984-12-10 | 1986-08-05 | Advanced Computer Communications | Communication controller using multiported random access memory |
US4716523A (en) * | 1985-06-14 | 1987-12-29 | International Business Machines Corporation | Multiple port integrated DMA and interrupt controller and arbitrator |
EP0244544B1 (en) * | 1986-04-30 | 1991-01-16 | International Business Machines Corporation | Very high speed line adapter for a communication controller |
JPS6336461A (ja) * | 1986-07-31 | 1988-02-17 | Pfu Ltd | 汎用チャネル制御方式 |
US4979104A (en) * | 1987-03-31 | 1990-12-18 | Bull Hn Information Systems Inc. | Dual microprocessor control system |
US4821170A (en) * | 1987-04-17 | 1989-04-11 | Tandem Computers Incorporated | Input/output system for multiprocessors |
US5175825A (en) * | 1990-02-02 | 1992-12-29 | Auspex Systems, Inc. | High speed, flexible source/destination data burst direct memory access controller |
-
1990
- 1990-11-16 US US07/614,524 patent/US5182800A/en not_active Expired - Fee Related
-
1991
- 1991-08-06 JP JP3219406A patent/JPH04230557A/ja active Pending
- 1991-10-01 EP EP19910308997 patent/EP0486145A3/en not_active Withdrawn
- 1991-11-14 BR BR919104956A patent/BR9104956A/pt unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5999526A (ja) * | 1982-11-09 | 1984-06-08 | シ−メンス,アクチエンゲゼルシヤフト | 直接記憶アクセス制御装置およびその動作方法 |
JPH01237864A (ja) * | 1988-03-18 | 1989-09-22 | Fujitsu Ltd | Dma転送制御装置 |
Also Published As
Publication number | Publication date |
---|---|
BR9104956A (pt) | 1992-06-23 |
EP0486145A3 (en) | 1993-12-22 |
EP0486145A2 (en) | 1992-05-20 |
US5182800A (en) | 1993-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04230557A (ja) | 直接メモリアクセス・コントローラ | |
JP2593146B2 (ja) | データハブ | |
EP0255091B1 (en) | Multi-CPU interlock | |
US5784647A (en) | Interface for fetching highest priority demand from priority queue, predicting completion within time limitation then issuing demand, else adding demand to pending queue or canceling | |
US4860244A (en) | Buffer system for input/output portion of digital data processing system | |
US5634015A (en) | Generic high bandwidth adapter providing data communications between diverse communication networks and computer system | |
US4831620A (en) | Controller for controlling multiple LAN types | |
EP0451938B1 (en) | Multiple cluster signal processor | |
US5878217A (en) | Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available | |
US4750114A (en) | Local area network control block | |
JPH0865334A (ja) | マルチメディア通信装置及び方法 | |
EP0257348A2 (en) | Multiprocessor interrupt rerouting mechanism | |
US4771286A (en) | Lan controller having split bus design | |
JPH0450622B2 (ja) | ||
EP0293860B1 (en) | Peripheral controller and adapter interface | |
KR100708096B1 (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
US20040199706A1 (en) | Apparatus for use in a computer systems | |
US4736365A (en) | Method and apparatus for controlling access to an asynchronous communication network | |
US4823124A (en) | Lan controller proprietary bus | |
JPH08314854A (ja) | データ転送システムおよびこれに関連する装置 | |
EP0255096B1 (en) | A controller for controlling multiple LAN types | |
EP0255090A2 (en) | LAN controller proprietary bus | |
JPH10320351A (ja) | バッファ方式 | |
GB2341771A (en) | Address decoding | |
JPH077954B2 (ja) | 制御装置 |