JPH0827707B2 - Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置 - Google Patents
Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置Info
- Publication number
- JPH0827707B2 JPH0827707B2 JP33790691A JP33790691A JPH0827707B2 JP H0827707 B2 JPH0827707 B2 JP H0827707B2 JP 33790691 A JP33790691 A JP 33790691A JP 33790691 A JP33790691 A JP 33790691A JP H0827707 B2 JPH0827707 B2 JP H0827707B2
- Authority
- JP
- Japan
- Prior art keywords
- fifo
- data
- register
- buffer
- count
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 239000000872 buffer Substances 0.000 title claims description 51
- 238000000034 method Methods 0.000 title claims description 26
- 230000004044 response Effects 0.000 claims description 10
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101000628899 Homo sapiens Small ubiquitin-related modifier 1 Proteins 0.000 description 2
- 102100026940 Small ubiquitin-related modifier 1 Human genes 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 241000723418 Carya Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- LYPFDBRUNKHDGX-SOGSVHMOSA-N N1C2=CC=C1\C(=C1\C=CC(=N1)\C(=C1\C=C/C(/N1)=C(/C1=N/C(/CC1)=C2/C1=CC(O)=CC=C1)C1=CC(O)=CC=C1)\C1=CC(O)=CC=C1)C1=CC(O)=CC=C1 Chemical compound N1C2=CC=C1\C(=C1\C=CC(=N1)\C(=C1\C=C/C(/N1)=C(/C1=N/C(/CC1)=C2/C1=CC(O)=CC=C1)C1=CC(O)=CC=C1)\C1=CC(O)=CC=C1)C1=CC(O)=CC=C1 LYPFDBRUNKHDGX-SOGSVHMOSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229960002197 temoporfin Drugs 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/067—Bidirectional FIFO, i.e. system allowing data transfer in two directions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
Description
【0001】
【産業上の利用分野】本発明は、2つのシステム・バス
間のインタフェースとしてのFIFOバッファに関し、
特にコンピュータ・ワークステーションのI/Oバスと
グラフィックス・アダプタの内部バス間のインタフェー
スとしてのバッファに関する。
間のインタフェースとしてのFIFOバッファに関し、
特にコンピュータ・ワークステーションのI/Oバスと
グラフィックス・アダプタの内部バス間のインタフェー
スとしてのバッファに関する。
【0002】
【従来の技術】コンピュータのデータ又は情報は、シリ
アル形式で処理される場合が多い。バスによって接続さ
れたデータ源と宛先の間で何度もデータ転送が行われ
る。通常、データが生成される速度と、受け取る速度に
は不整合がある。従って、送信側のデータ生成速度と受
信側のデータ処理速度との何れの不整合を解決するため
に、送信側と受信側の間にある先入れ先出し(FIF
O:first-in-first-out)バッファ内にデータが格納さ
れる。
アル形式で処理される場合が多い。バスによって接続さ
れたデータ源と宛先の間で何度もデータ転送が行われ
る。通常、データが生成される速度と、受け取る速度に
は不整合がある。従って、送信側のデータ生成速度と受
信側のデータ処理速度との何れの不整合を解決するため
に、送信側と受信側の間にある先入れ先出し(FIF
O:first-in-first-out)バッファ内にデータが格納さ
れる。
【0003】
【発明が解決しようとする課題】FIFOバッファのこ
のようなアプリケーションの1つは、コンピュータ又は
ワークステーションのI/Oシステム・バスと、ディス
プレイ装置に結合するグラフィックス・アダプタの内部
バスとを結び付けることにある。一般に、複数の処理が
ワークステーション・プロセサで同時に実行されてお
り、各々の処理がグラフィックス・アダプタをアクセス
しなければならない場合があることから、バッファの使
用条件は複雑である。又、大抵のシステムではグラフィ
ックス・アダプタへの読出し及び書込みアクセスが必要
である。そのために、この発明の目的は、双方向にデー
タを転送でき、ワークステーション・プロセサで同時に
実行する複数の処理を解決できるFIFOバッファを提
供することにある。
のようなアプリケーションの1つは、コンピュータ又は
ワークステーションのI/Oシステム・バスと、ディス
プレイ装置に結合するグラフィックス・アダプタの内部
バスとを結び付けることにある。一般に、複数の処理が
ワークステーション・プロセサで同時に実行されてお
り、各々の処理がグラフィックス・アダプタをアクセス
しなければならない場合があることから、バッファの使
用条件は複雑である。又、大抵のシステムではグラフィ
ックス・アダプタへの読出し及び書込みアクセスが必要
である。そのために、この発明の目的は、双方向にデー
タを転送でき、ワークステーション・プロセサで同時に
実行する複数の処理を解決できるFIFOバッファを提
供することにある。
【0004】
【課題を解決するための手段】本発明は、中央演算処理
装置(CPU)及びワークステーションのシステム・バ
ス等に係わる1つ又はそれ以上のプロセサに結合された
第1バスと、グラフィックス・アダプタ等に係わる1つ
又はそれ以上のプロセサに結合された第2バスとを結び
付けるFIFOインタフェースを提供する。FIFOイ
ンタフェースは、2つのバス間に並列に結合された複数
のFIFOバッファを有し、各々のFIFOは、ブロッ
ク転送を容易にするために、あるアドレス範囲内でアド
レス指定可能である。各々のFIFOは、バスに、又は
バスから書込みできる転送方向ビットによってバスから
何れの方向にもデータの転送が可能であり、他のFIF
Oとは独立して実行可能なため、同時に実行する複数の
アプリケーションによってデータの転送ができる。
装置(CPU)及びワークステーションのシステム・バ
ス等に係わる1つ又はそれ以上のプロセサに結合された
第1バスと、グラフィックス・アダプタ等に係わる1つ
又はそれ以上のプロセサに結合された第2バスとを結び
付けるFIFOインタフェースを提供する。FIFOイ
ンタフェースは、2つのバス間に並列に結合された複数
のFIFOバッファを有し、各々のFIFOは、ブロッ
ク転送を容易にするために、あるアドレス範囲内でアド
レス指定可能である。各々のFIFOは、バスに、又は
バスから書込みできる転送方向ビットによってバスから
何れの方向にもデータの転送が可能であり、他のFIF
Oとは独立して実行可能なため、同時に実行する複数の
アプリケーションによってデータの転送ができる。
【0005】オーバーラン又はアンダーランを避けるた
めに、必要なソフトウェアのオーバーヘッドを最小にす
るためのバッファをアクセスする処理の時間調整(例:
中断及び再開)には、スレッショルド・クロッシングが
用いられる。このように、バッファをアクセスする処理
は、バッファ・カウント(又、使用中カウントにも関与
する)が第1スレッショルド(書込みには高スレッショ
ルド、読出しには低スレッショルド)をクロスするのに
応じて中断させられ、バッファ・カウントが第2スレッ
ショルド(書込みには低スレッショルド、読出しには高
スレッショルド)をクロスするまでは再開されない。こ
のような方法でDMAアクセスは、DMAコントローラ
に送られるDMA中断信号によって中断、再開させられ
る。
めに、必要なソフトウェアのオーバーヘッドを最小にす
るためのバッファをアクセスする処理の時間調整(例:
中断及び再開)には、スレッショルド・クロッシングが
用いられる。このように、バッファをアクセスする処理
は、バッファ・カウント(又、使用中カウントにも関与
する)が第1スレッショルド(書込みには高スレッショ
ルド、読出しには低スレッショルド)をクロスするのに
応じて中断させられ、バッファ・カウントが第2スレッ
ショルド(書込みには低スレッショルド、読出しには高
スレッショルド)をクロスするまでは再開されない。こ
のような方法でDMAアクセスは、DMAコントローラ
に送られるDMA中断信号によって中断、再開させられ
る。
【0006】ワークステーションの中央演算処理装置で
実行する処理によるアクセスは、スレッショルド割込み
に応じる割込みハンドラによって制御される。ある割込
みが発生すると、対応するスレッショルドが割込み禁
止、他のスレッショルドが割込み許可となり、FIFO
をアクセスするプロセスは“高”及び“低”(或いは、
バッファの読出しの際は“低”及び“高”の割込みに対
応して交互に中断、及び再開される。
実行する処理によるアクセスは、スレッショルド割込み
に応じる割込みハンドラによって制御される。ある割込
みが発生すると、対応するスレッショルドが割込み禁
止、他のスレッショルドが割込み許可となり、FIFO
をアクセスするプロセスは“高”及び“低”(或いは、
バッファの読出しの際は“低”及び“高”の割込みに対
応して交互に中断、及び再開される。
【0007】これらの中断、再開は、FIFOをアクセ
スする処理には、わからないように動作するのでバッフ
ァの格納スペースの余裕をモニタしなくてもよく、その
ようなスペースの存在を単に仮定する。処理が中断して
いる間、バッファ・カウントは第1スレッショルドから
第2スレッショルドに進行して、バッファ・カウントが
連続して同一スレッショルドをクロスしたり再クロスし
た場合に生じるスラッシングを最小にする。好ましく
は、スレッショルド・カウントは、バッファ・カウント
・レジスタ及び割込み許可レジスタと共に、レジスタ内
容を変更するためにバスからアクセスされるレジスタに
格納されるのがよい。レジスタに適切な書込みを行なう
だけで第1処理は、制御された処理がわからないほどの
動作で第2処理を制御することができる。
スする処理には、わからないように動作するのでバッフ
ァの格納スペースの余裕をモニタしなくてもよく、その
ようなスペースの存在を単に仮定する。処理が中断して
いる間、バッファ・カウントは第1スレッショルドから
第2スレッショルドに進行して、バッファ・カウントが
連続して同一スレッショルドをクロスしたり再クロスし
た場合に生じるスラッシングを最小にする。好ましく
は、スレッショルド・カウントは、バッファ・カウント
・レジスタ及び割込み許可レジスタと共に、レジスタ内
容を変更するためにバスからアクセスされるレジスタに
格納されるのがよい。レジスタに適切な書込みを行なう
だけで第1処理は、制御された処理がわからないほどの
動作で第2処理を制御することができる。
【0008】好ましくは、各バッファの使用中カウンタ
は、データの転送方向とは関係なく、第1バスからのア
クセス後、常に増分され、及び第2バスからのアクセス
後は減分されて、ハードウェアの複雑性を最小にする。
このように、使用中カウンタは、データ転送の1方向
(例えば、ワークステーションからグラフィックス・ア
ダプタへ)におけるデータを入れたバッファの位置番号
と、もう一方の方向における、空のバッファの位置番号
を示す。このバッファ・カウントの意味ある変化を活用
するために、スレッショルド・レジスタ内容と比較オペ
レーションは状況に応じて調整される。
は、データの転送方向とは関係なく、第1バスからのア
クセス後、常に増分され、及び第2バスからのアクセス
後は減分されて、ハードウェアの複雑性を最小にする。
このように、使用中カウンタは、データ転送の1方向
(例えば、ワークステーションからグラフィックス・ア
ダプタへ)におけるデータを入れたバッファの位置番号
と、もう一方の方向における、空のバッファの位置番号
を示す。このバッファ・カウントの意味ある変化を活用
するために、スレッショルド・レジスタ内容と比較オペ
レーションは状況に応じて調整される。
【0009】
【実施例】図1を参照する。本発明のシステム100
は、記憶装置104に直接結合し、且つI/Oバス&直
接記憶アクセス(DMA)コントローラ106を通して
入力/出力I/Oバス108に結合された、中央演算処
理装置(CPU)すなわちプロセサ102を備える。バ
ス・インタフェース109は、I/Oバス108をライ
ン111経由でグラフィックス・アダプタ110に結合
させ、グラフィックス・アダプタ110は、従来の何れ
の適切なタイプのディスプレイ・モニタ112に結合す
る。I/Oバス108は又、コントローラ106を、1
つ又はそれ以上の他の周辺機器114に結合させる。こ
れらの周辺機器には、キーボードのような標準装置、マ
ウス、プリンタのような代替入力装置、磁気ディスク駆
動装置や光ディスク駆動装置のような二次記憶装置、又
は類似装置が含まれる。本発明は、何れの特定のシステ
ム100に制限されないが、模範的なシステムは、I/
Oバス108にMicro Channel(IBM登録商標)バス
を使用したIBM RISC System/6000(IBM登録商標)
コンピュータのような高性能のワークステーションであ
る。この仕様では便宜上、中央演算処理装置(CPU)
すなわちプロセサ102、記憶装置104、及びI/O
バス&DMAコントローラ106は、集合的にワークス
テーション116と称し、グラフィックス・アダプタ1
10のようなI/Oバス108に接続される周辺機器と
は区別する。さらに、プロセサ102、記憶装置10
4、及びI/Oバス108を、グラフィックス・アダプ
タ110の類似する構成機器から区別するため、これら
のワークステーション構成部品は、ワークステーション
・プロセサ102、ワークステーション記憶装置10
4、及びワークステーション・I/Oバス108とそれ
ぞれ称する。
は、記憶装置104に直接結合し、且つI/Oバス&直
接記憶アクセス(DMA)コントローラ106を通して
入力/出力I/Oバス108に結合された、中央演算処
理装置(CPU)すなわちプロセサ102を備える。バ
ス・インタフェース109は、I/Oバス108をライ
ン111経由でグラフィックス・アダプタ110に結合
させ、グラフィックス・アダプタ110は、従来の何れ
の適切なタイプのディスプレイ・モニタ112に結合す
る。I/Oバス108は又、コントローラ106を、1
つ又はそれ以上の他の周辺機器114に結合させる。こ
れらの周辺機器には、キーボードのような標準装置、マ
ウス、プリンタのような代替入力装置、磁気ディスク駆
動装置や光ディスク駆動装置のような二次記憶装置、又
は類似装置が含まれる。本発明は、何れの特定のシステ
ム100に制限されないが、模範的なシステムは、I/
Oバス108にMicro Channel(IBM登録商標)バス
を使用したIBM RISC System/6000(IBM登録商標)
コンピュータのような高性能のワークステーションであ
る。この仕様では便宜上、中央演算処理装置(CPU)
すなわちプロセサ102、記憶装置104、及びI/O
バス&DMAコントローラ106は、集合的にワークス
テーション116と称し、グラフィックス・アダプタ1
10のようなI/Oバス108に接続される周辺機器と
は区別する。さらに、プロセサ102、記憶装置10
4、及びI/Oバス108を、グラフィックス・アダプ
タ110の類似する構成機器から区別するため、これら
のワークステーション構成部品は、ワークステーション
・プロセサ102、ワークステーション記憶装置10
4、及びワークステーション・I/Oバス108とそれ
ぞれ称する。
【0010】グラフィックス・アダプタ110は、ワー
クステーション116に対して非同期で実行する。ここ
で図2を参照するに、グラフィックス・アダプタ110
は、FIFOインタフェース200によってバス・イン
タフェース109とワークステーションI/Oバス10
8に接合された、内部アダプタ・バス202を有する。
図2に示すように、FIFOインタフェース200は、
バス・インタフェース109とアダプタ・バス202間
を並列に結合された4つのFIFOなすわち、FIFO
250、252、254、及び256で構成すると概念
的にみなすことができる。後述するように、各々のFI
FOは、同時に使用することができ、ワークステーショ
ン116とグラフィックス・アダプタ110間のそれぞ
れのFIFOの選択された方向にデータ転送を行なう。
又、図2に示すように、アダプタ・バス202には、1
つ又はそれ以上のグラフィックス・プロセサ204が結
合されている。グラフィックス・アダプタ110は、デ
ィスプレイ・モニタ112に表示される画像のビット・
マップを格納するためのフレーム・バッファ(図示な
し)のような標準構成機器を付加的に有する。しかしな
がら、グラフィックス・アダプタ110のこれらの構成
機器は本発明には、直接関係ないので図示しない。
クステーション116に対して非同期で実行する。ここ
で図2を参照するに、グラフィックス・アダプタ110
は、FIFOインタフェース200によってバス・イン
タフェース109とワークステーションI/Oバス10
8に接合された、内部アダプタ・バス202を有する。
図2に示すように、FIFOインタフェース200は、
バス・インタフェース109とアダプタ・バス202間
を並列に結合された4つのFIFOなすわち、FIFO
250、252、254、及び256で構成すると概念
的にみなすことができる。後述するように、各々のFI
FOは、同時に使用することができ、ワークステーショ
ン116とグラフィックス・アダプタ110間のそれぞ
れのFIFOの選択された方向にデータ転送を行なう。
又、図2に示すように、アダプタ・バス202には、1
つ又はそれ以上のグラフィックス・プロセサ204が結
合されている。グラフィックス・アダプタ110は、デ
ィスプレイ・モニタ112に表示される画像のビット・
マップを格納するためのフレーム・バッファ(図示な
し)のような標準構成機器を付加的に有する。しかしな
がら、グラフィックス・アダプタ110のこれらの構成
機器は本発明には、直接関係ないので図示しない。
【0011】図3を参照する。並列導体の本数を最小に
するために多重信号化されたデータと、アドレス情報を
交互に含むライン111が、バス・インタフェース10
9から出されている。バス・インタフェース・ライン1
11とFIFOインタフェース・データ・ライン230
に結合されたトランシーバ228は、この2つのライン
間のデータ転送を制御する(ライン111及び230
は、実際には多数の並列導体であっても、ここでは便宜
上、単線化して図示する)。状態レジスタ232、割込
み保留レジスタ234、及びDMA宛先アドレス・レジ
スタ236を含むデータ・ライン230は、FIFOイ
ンタフェース200の様々な構成部品に結合されてい
る。
するために多重信号化されたデータと、アドレス情報を
交互に含むライン111が、バス・インタフェース10
9から出されている。バス・インタフェース・ライン1
11とFIFOインタフェース・データ・ライン230
に結合されたトランシーバ228は、この2つのライン
間のデータ転送を制御する(ライン111及び230
は、実際には多数の並列導体であっても、ここでは便宜
上、単線化して図示する)。状態レジスタ232、割込
み保留レジスタ234、及びDMA宛先アドレス・レジ
スタ236を含むデータ・ライン230は、FIFOイ
ンタフェース200の様々な構成部品に結合されてい
る。
【0012】状態レジスタ232は、FIFOそれぞれ
の状態(例えば、高スレッショルドの到達、低スレッシ
ョルドの到達)を表す情報を格納し、一方、割込み保留
レジスタ234は、特定のFIFOからの割込みが現
在、保留されているかどうかを表す情報を格納する。状
態レジスタ232は各FIFOの2ビットを格納し、1
ビットは高スレッショルド用、1ビットは低スレッショ
ルド用である。各状態ビットは対応するスレッショルド
が1つの方向(高スレッショルドには下方から、及び低
スレッショルドには上方から)にクロスした場合に1に
セットされ、同じスレッショルドが反対方向に再クロス
した場合には0にリセットされる。
の状態(例えば、高スレッショルドの到達、低スレッシ
ョルドの到達)を表す情報を格納し、一方、割込み保留
レジスタ234は、特定のFIFOからの割込みが現
在、保留されているかどうかを表す情報を格納する。状
態レジスタ232は各FIFOの2ビットを格納し、1
ビットは高スレッショルド用、1ビットは低スレッショ
ルド用である。各状態ビットは対応するスレッショルド
が1つの方向(高スレッショルドには下方から、及び低
スレッショルドには上方から)にクロスした場合に1に
セットされ、同じスレッショルドが反対方向に再クロス
した場合には0にリセットされる。
【0013】割込み保留レジスタ234も又、各FIF
Oの2ビットを格納し、各々のスレッショルドは各1ビ
ットである。各ビットは、対応するFIFO及びスレッ
ショルドの割込み信号の発生時に同時に1にセットさ
れ、割込みが保留されていることを示し、ワークステー
ション・プロセサ102(特に、プロセサで実行する割
込みハンドラ)によって読出された場合に0にリセット
される。
Oの2ビットを格納し、各々のスレッショルドは各1ビ
ットである。各ビットは、対応するFIFO及びスレッ
ショルドの割込み信号の発生時に同時に1にセットさ
れ、割込みが保留されていることを示し、ワークステー
ション・プロセサ102(特に、プロセサで実行する割
込みハンドラ)によって読出された場合に0にリセット
される。
【0014】DMA宛先アドレス・レジスタ236は、
後述の代替モードのオペレーションで使用されるDMA
アドレスを格納する。第2トランシーバ238はデータ
・ライン230を、グラフィックス・アダプタ・バス2
02に結合されているバス・コントローラ(図3のMB
C)242からのアダプタ・データ・ライン240と内
部接続させる。バス・コントローラ242は又、グラフ
ィックス・アダプタ・バス202からのアドレス情報を
独立したアダプタ・アドレス・ライン244に供給す
る。
後述の代替モードのオペレーションで使用されるDMA
アドレスを格納する。第2トランシーバ238はデータ
・ライン230を、グラフィックス・アダプタ・バス2
02に結合されているバス・コントローラ(図3のMB
C)242からのアダプタ・データ・ライン240と内
部接続させる。バス・コントローラ242は又、グラフ
ィックス・アダプタ・バス202からのアドレス情報を
独立したアダプタ・アドレス・ライン244に供給す
る。
【0015】バス・インタフェース109からのライン
111に応じるラッチ246は、ライン111からのア
ドレス情報(このように結局はワークステーション11
6からのアドレス情報)をマルチプレクサ248の片方
の入力に与える。DMA宛先アドレス・レジスタ236
は、マルチプレクサ248のもう一方の入力にDMAア
ドレスを与える。マルチプレクサ248が適切に作動さ
せられ、DMA宛先アドレス・レジスタ236からのD
MAアドレス、又はライン111からのワークステーシ
ョン・アドレス信号を出力ライン268に与える。マル
チプレクサ248によって選択されたアドレス信号は、
マルチプレクサ270の片方の入力に供給される。マル
チプレクサ270は、後述するように、アダプタ・アド
レス・ライン244から第2の入力を得、同様にFIF
Oアドレス・ライン258から第3のアドレス入力を得
る。マルチプレクサ270は、グローバル・メモリ・ア
ドレス・ライン272に出力する。ライン272は又、
アドレス・デコーダ274の出力に結合される。アドレ
ス・デコーダ274は、マルチプレクサ248に結合す
るライン268から入力を得ると共に、バス・コントロ
ーラ242に結合するライン244から入力を得る。
111に応じるラッチ246は、ライン111からのア
ドレス情報(このように結局はワークステーション11
6からのアドレス情報)をマルチプレクサ248の片方
の入力に与える。DMA宛先アドレス・レジスタ236
は、マルチプレクサ248のもう一方の入力にDMAア
ドレスを与える。マルチプレクサ248が適切に作動さ
せられ、DMA宛先アドレス・レジスタ236からのD
MAアドレス、又はライン111からのワークステーシ
ョン・アドレス信号を出力ライン268に与える。マル
チプレクサ248によって選択されたアドレス信号は、
マルチプレクサ270の片方の入力に供給される。マル
チプレクサ270は、後述するように、アダプタ・アド
レス・ライン244から第2の入力を得、同様にFIF
Oアドレス・ライン258から第3のアドレス入力を得
る。マルチプレクサ270は、グローバル・メモリ・ア
ドレス・ライン272に出力する。ライン272は又、
アドレス・デコーダ274の出力に結合される。アドレ
ス・デコーダ274は、マルチプレクサ248に結合す
るライン268から入力を得ると共に、バス・コントロ
ーラ242に結合するライン244から入力を得る。
【0016】FIFOインタフェース200は、ビデオ
RAM(VRAM)によって好ましくは実行されるグロ
ーバル・メモリ206を有する。グローバル・メモリ2
06は、アドレス・ライン272からアドレス入力を
得、データ・ライン230に結合したパラレル・データ
・ポートと、アダプタ・データ・ライン240に結合し
たシリアル・データ・ポートを有する。オペレーション
のモードにより、グローバル・メモリ206は、マルチ
プレクサ270、及びマルチプレクサ248を通してD
MA宛先アドレス・レジスタ236からDMA宛先アド
レスを、マルチプレクサ248を通してラッチ246か
らワークステーション・アドレスを、ライン258から
FIFOアドレス、又はライン244からアダプタ・ア
ドレスを得ることができる。グローバル・メモリ206
は、ライン244のアダプタ・アドレスがデコードされ
たアドレス、又はワークステーション、即ち、ライン2
68のDMAアドレスがデコートされたアドレスを、交
互にデコーダ274から得ることができる。グローバル
・メモリ206のデータの書込み及び読出しは、データ
・ライン230に結合されたパラレル・ポート、又はア
ダプタ・データ・ライン240に結合されたシリアル・
ポートを通して行なわれる。この2つのポートの備えに
よって、グローバル・メモリ206のデータの書込み及
び読出しが同時にできる。
RAM(VRAM)によって好ましくは実行されるグロ
ーバル・メモリ206を有する。グローバル・メモリ2
06は、アドレス・ライン272からアドレス入力を
得、データ・ライン230に結合したパラレル・データ
・ポートと、アダプタ・データ・ライン240に結合し
たシリアル・データ・ポートを有する。オペレーション
のモードにより、グローバル・メモリ206は、マルチ
プレクサ270、及びマルチプレクサ248を通してD
MA宛先アドレス・レジスタ236からDMA宛先アド
レスを、マルチプレクサ248を通してラッチ246か
らワークステーション・アドレスを、ライン258から
FIFOアドレス、又はライン244からアダプタ・ア
ドレスを得ることができる。グローバル・メモリ206
は、ライン244のアダプタ・アドレスがデコードされ
たアドレス、又はワークステーション、即ち、ライン2
68のDMAアドレスがデコートされたアドレスを、交
互にデコーダ274から得ることができる。グローバル
・メモリ206のデータの書込み及び読出しは、データ
・ライン230に結合されたパラレル・ポート、又はア
ダプタ・データ・ライン240に結合されたシリアル・
ポートを通して行なわれる。この2つのポートの備えに
よって、グローバル・メモリ206のデータの書込み及
び読出しが同時にできる。
【0017】FIFO250、252、254、及び2
56は、それぞれ1組の複数のFIFOレジスタによっ
て実現される。各FIFOに対するこれらの1組のFI
FOレジスタは、グローバル・ポインタ・レジスタ20
8、指標ポインタ・レジスタ210、使用中カウント・
レジスタ212、高スレッショルド・レジスタ214、
低スレッショルド・レジスタ216、高スレッショルド
割込み許可レジスタ218、低スレッショルド割込み許
可レジスタ220、制御レジスタ222、加算レジスタ
224、減算レジスタ226である。
56は、それぞれ1組の複数のFIFOレジスタによっ
て実現される。各FIFOに対するこれらの1組のFI
FOレジスタは、グローバル・ポインタ・レジスタ20
8、指標ポインタ・レジスタ210、使用中カウント・
レジスタ212、高スレッショルド・レジスタ214、
低スレッショルド・レジスタ216、高スレッショルド
割込み許可レジスタ218、低スレッショルド割込み許
可レジスタ220、制御レジスタ222、加算レジスタ
224、減算レジスタ226である。
【0018】グローバル・ポインタ・レジスタ208
は、特定のFIFOのために確保されているグローバル
・メモリの64Kバイトのブロックの開始アドレスを格
納する。各FIFOは、グローバル・メモリ206中に
64Kバイト単位で位置することができる。グローバル
・ポインタ・レジスタ208に格納される値は、メモリ
・アドレス(例:A21〜A16)の6個の最上位のビ
ットに一致する。通常、FIFO250、252、25
4、及び256は、全体でグローバル・メモリ206の
上位256Kバイトを占有するように準備される。
は、特定のFIFOのために確保されているグローバル
・メモリの64Kバイトのブロックの開始アドレスを格
納する。各FIFOは、グローバル・メモリ206中に
64Kバイト単位で位置することができる。グローバル
・ポインタ・レジスタ208に格納される値は、メモリ
・アドレス(例:A21〜A16)の6個の最上位のビ
ットに一致する。通常、FIFO250、252、25
4、及び256は、全体でグローバル・メモリ206の
上位256Kバイトを占有するように準備される。
【0019】指標ポインタ・レジスタ210は、ワーク
ステーション116からの次のアクセスのために各FI
FO内のアドレス・オフセットを有する。ライン258
に供給されるグローバル・メモリ206の実アドレス
は、グローバル・ポインタ・レジスタ208内のグロー
バル・ポインタと、指標ポインタ・レジスタ210内の
指標ポインタとの連結で、指標ポインタは16個の最下
位のアドレス・ビットを含む。指標ポインタ・レジスタ
210は、FIFO制御ロジックによって更新される。
FIFO制御ロジックに関してはFIFOの読出し及び
書込みの説明で述べる。
ステーション116からの次のアクセスのために各FI
FO内のアドレス・オフセットを有する。ライン258
に供給されるグローバル・メモリ206の実アドレス
は、グローバル・ポインタ・レジスタ208内のグロー
バル・ポインタと、指標ポインタ・レジスタ210内の
指標ポインタとの連結で、指標ポインタは16個の最下
位のアドレス・ビットを含む。指標ポインタ・レジスタ
210は、FIFO制御ロジックによって更新される。
FIFO制御ロジックに関してはFIFOの読出し及び
書込みの説明で述べる。
【0020】一般に、ワークステーション116又はア
ダプタ・バス202からのFIFOへのアクセスは、ア
ドレス・デコーダ274経由でグローバル・メモリ20
6をアドレス指定することによって実行される。これ
は、目標とするアクセスは、特定のメモリ位置よりも次
の読出し又は書込みバッファに位置するからである。各
々のFIFO(250〜256)はアドレス指定単位の
アドレス空間に単一なアドレス(後述)又は単一なアド
レス範囲としてワークステーション116及びグラフィ
ックス・プロセサ204に存在する。アドレス・デコー
ダ274は、ワークステーション116、又はアダプタ
・バス202から供給されるアドレス信号をデコード
し、アドレス指定によってFIFOを選択する。FIF
OポインタはFIFO内の目標位置に直接アクセスす
る。FIFOの領域とは異なったグローバル・メモリへ
のアクセスは、デコードされていないアドレス信号をグ
ローバル・メモリ・アドレス・ライン272に供給する
マルチプレクサ270経由で実行される。
ダプタ・バス202からのFIFOへのアクセスは、ア
ドレス・デコーダ274経由でグローバル・メモリ20
6をアドレス指定することによって実行される。これ
は、目標とするアクセスは、特定のメモリ位置よりも次
の読出し又は書込みバッファに位置するからである。各
々のFIFO(250〜256)はアドレス指定単位の
アドレス空間に単一なアドレス(後述)又は単一なアド
レス範囲としてワークステーション116及びグラフィ
ックス・プロセサ204に存在する。アドレス・デコー
ダ274は、ワークステーション116、又はアダプタ
・バス202から供給されるアドレス信号をデコード
し、アドレス指定によってFIFOを選択する。FIF
OポインタはFIFO内の目標位置に直接アクセスす
る。FIFOの領域とは異なったグローバル・メモリへ
のアクセスは、デコードされていないアドレス信号をグ
ローバル・メモリ・アドレス・ライン272に供給する
マルチプレクサ270経由で実行される。
【0021】図4はどのようにして様々なグローバル・
ポインタ及び指標ポインタが、グローバル・メモリ20
6内のFIFO領域を定義するかを例示する。図4にお
いて、各々のFIFOのグローバル・ポインタ・レジス
タ208がグローバル・ポインタGMP1〜GMP4そ
れぞれを格納していると仮定し、一方、同じFIFOに
相当するそれぞれの指標ポインタ・レジスタ210が、
指標ポインタIP1〜IP4をそれぞれ格納していると
仮定する。図4が示すように、各グローバル・ポインタ
(例:GMP1)は、対応するFIFO領域の開始アド
レスを指す。前述したように、この開始アドレスは、特
に図示すように、64Kバイトの整数倍でなければなら
ない。各々のFIFOの指標ポインタ(例:IP1)
は、グローバル・ポインタによって定義された開始アド
レスに相対する、ワークステーション116による次の
アクセスのアドレスを指す。図4には、4つの連続する
FIFO領域260、262、264及び266が示さ
れている。図4の実施例では、隣接する64Kバイトの
ブロックを指すのに、隣接するFIFOのポインタとは
1だけ違うグローバル・ポインタをグローバル・ポイン
タ・レジスタ208に格納する。
ポインタ及び指標ポインタが、グローバル・メモリ20
6内のFIFO領域を定義するかを例示する。図4にお
いて、各々のFIFOのグローバル・ポインタ・レジス
タ208がグローバル・ポインタGMP1〜GMP4そ
れぞれを格納していると仮定し、一方、同じFIFOに
相当するそれぞれの指標ポインタ・レジスタ210が、
指標ポインタIP1〜IP4をそれぞれ格納していると
仮定する。図4が示すように、各グローバル・ポインタ
(例:GMP1)は、対応するFIFO領域の開始アド
レスを指す。前述したように、この開始アドレスは、特
に図示すように、64Kバイトの整数倍でなければなら
ない。各々のFIFOの指標ポインタ(例:IP1)
は、グローバル・ポインタによって定義された開始アド
レスに相対する、ワークステーション116による次の
アクセスのアドレスを指す。図4には、4つの連続する
FIFO領域260、262、264及び266が示さ
れている。図4の実施例では、隣接する64Kバイトの
ブロックを指すのに、隣接するFIFOのポインタとは
1だけ違うグローバル・ポインタをグローバル・ポイン
タ・レジスタ208に格納する。
【0022】各々のFIFO使用中カウント・レジスタ
212は、該当するFIFOのデータのバイト数を表す
数を所有する。使用中カウント・レジスタ212の必要
なデータ・フォーマットは、対応する制御レジスタ22
2の転送方向ビットの設定によって変わる。外向き(ワ
ークステーションからアダプタへ)転送モードでは格納
される値は、該当するFIFOのデータのバイト数を表
す。内向き(アダプタからワークステーションへ)転送
モードでは格納される値は、64Kバイト(16進で1
0000h)から読出されるFIFOのデータのバイト
数を引いた数である。全オペレーション中、FIFO使
用中カウント・レジスタ212は、対応するFIFOが
ワークステーション側からアクセス(書込み又は読出
し)される毎に増分される。アダプタ側からのアクセス
に応答する使用中カウント・レジスタ212の内容変更
は、下記に述べる方法の加算レジスタ224、及び減算
レジスタ226による結果である。
212は、該当するFIFOのデータのバイト数を表す
数を所有する。使用中カウント・レジスタ212の必要
なデータ・フォーマットは、対応する制御レジスタ22
2の転送方向ビットの設定によって変わる。外向き(ワ
ークステーションからアダプタへ)転送モードでは格納
される値は、該当するFIFOのデータのバイト数を表
す。内向き(アダプタからワークステーションへ)転送
モードでは格納される値は、64Kバイト(16進で1
0000h)から読出されるFIFOのデータのバイト
数を引いた数である。全オペレーション中、FIFO使
用中カウント・レジスタ212は、対応するFIFOが
ワークステーション側からアクセス(書込み又は読出
し)される毎に増分される。アダプタ側からのアクセス
に応答する使用中カウント・レジスタ212の内容変更
は、下記に述べる方法の加算レジスタ224、及び減算
レジスタ226による結果である。
【0023】各々の高スレッショルド・レジスタ214
は、該当するFIFOの使用中カウント・レジスタ21
2の内容と比較されるスレッショルドを格納する。使用
中カウント・レジスタ212が、FIFOのデータ量が
少なくとも高スレッショルドに相当することを示す場
合、割込みが発生する(割込み許可の場合)。この割込
みは、I/Oバス108経由でワークステーション11
6のワークステーション・プロセサ102に送られる。
後で詳細に述べられるように、高スレッショルド・レジ
スタ214内のスレッショルド値は、対応する制御レジ
スタ222の転送方向ビットの設定で決まる。転送方向
ビットが0の場合、ワークステーション116からグラ
フィックス・アダプタ110への外向きデータ転送を示
し、格納される値は目標のスレッショルドに相当する。
一方、転送方向ビットが1の場合、グラフィックス・ア
ダプタ110からワークステーション116への内向き
データ転送を示し、格納される値は64Kバイト(この
大きさはグローバル・メモリ206の対応するFIFO
領域のサイズと仮定する)から所望する値を引いた値で
ある。ワークステーションがFIFOをアクセスした
か、又は、使用中カウント・レジスタ212が、加算レ
ジスタ224への書込み、又は減算レジスタ226への
書込みによってアダプタ側から更新された場合は、割込
みが発生する。
は、該当するFIFOの使用中カウント・レジスタ21
2の内容と比較されるスレッショルドを格納する。使用
中カウント・レジスタ212が、FIFOのデータ量が
少なくとも高スレッショルドに相当することを示す場
合、割込みが発生する(割込み許可の場合)。この割込
みは、I/Oバス108経由でワークステーション11
6のワークステーション・プロセサ102に送られる。
後で詳細に述べられるように、高スレッショルド・レジ
スタ214内のスレッショルド値は、対応する制御レジ
スタ222の転送方向ビットの設定で決まる。転送方向
ビットが0の場合、ワークステーション116からグラ
フィックス・アダプタ110への外向きデータ転送を示
し、格納される値は目標のスレッショルドに相当する。
一方、転送方向ビットが1の場合、グラフィックス・ア
ダプタ110からワークステーション116への内向き
データ転送を示し、格納される値は64Kバイト(この
大きさはグローバル・メモリ206の対応するFIFO
領域のサイズと仮定する)から所望する値を引いた値で
ある。ワークステーションがFIFOをアクセスした
か、又は、使用中カウント・レジスタ212が、加算レ
ジスタ224への書込み、又は減算レジスタ226への
書込みによってアダプタ側から更新された場合は、割込
みが発生する。
【0024】各々の低スレッショルド・レジスタ216
は、対応する高スレッショルド・レジスタ214のオペ
レーションと同様な方法で機能する。低スレッショルド
・レジスタ216内の値は使用中カウント・レジスタ2
12内の値と比較される低スレッショルドを定義する。
使用中カウント・レジスタ212が、FIFOのデータ
量が低スレッショルド設定値以下であることを示す場合
は割込みが発生する(割込み許可の場合)。この割込み
は、高スレッショルドの割込みと同様な方法でワークス
テーション116に送られる。低スレッショルド・レジ
スタ216に格納される値は、対応する制御レジスタ2
22の転送方向ビットの設定により決まる。転送方向ビ
ットが0の場合、目標の低スレッショルド値に相当する
値が格納される。一方、転送方向ビットが1の場合、6
4Kバイト(この大きさはグローバル・メモリ206の
対応するFIFO領域のサイズと仮定する)から目標値
を引いた値が格納される。高スレッショルド割込み同様
に、ワークステーションがFIFOをアクセスしたか、
又は、使用中カウント・レジスタ212が、加算レジス
タ224への書込み又は減算レジスタ226への書込み
によってアダプタ側から更新された場合は、低スレッシ
ョルド割込みが発生する。
は、対応する高スレッショルド・レジスタ214のオペ
レーションと同様な方法で機能する。低スレッショルド
・レジスタ216内の値は使用中カウント・レジスタ2
12内の値と比較される低スレッショルドを定義する。
使用中カウント・レジスタ212が、FIFOのデータ
量が低スレッショルド設定値以下であることを示す場合
は割込みが発生する(割込み許可の場合)。この割込み
は、高スレッショルドの割込みと同様な方法でワークス
テーション116に送られる。低スレッショルド・レジ
スタ216に格納される値は、対応する制御レジスタ2
22の転送方向ビットの設定により決まる。転送方向ビ
ットが0の場合、目標の低スレッショルド値に相当する
値が格納される。一方、転送方向ビットが1の場合、6
4Kバイト(この大きさはグローバル・メモリ206の
対応するFIFO領域のサイズと仮定する)から目標値
を引いた値が格納される。高スレッショルド割込み同様
に、ワークステーションがFIFOをアクセスしたか、
又は、使用中カウント・レジスタ212が、加算レジス
タ224への書込み又は減算レジスタ226への書込み
によってアダプタ側から更新された場合は、低スレッシ
ョルド割込みが発生する。
【0025】各々の高スレッショルド割込み許可レジス
タ218及び低スレッショルド割込み許可レジスタ22
0は、1ビットを格納する。高スレッショルド割込み許
可ビットが1にセットされると、対応するFIFOのデ
ータ量が、高スレッショルド・レジスタ214内のスレ
ッショルド値以上、すなわち、該当するFIFOの高ス
レッショルド設定値以上の場合は、割込みはワークステ
ーション116に送られる。このビットによりワークス
テーションは対応するFIFOからの高スレッショルド
割込みの禁止又は許可の処理を実行する。1にセットさ
れると、使用中カウント・レジスタ212内の使用中カ
ウントが高スレッショルドをクロスする場合に、割込み
が発生し、該当するFIFOの状態レジスタ232(図
3)内の状態ビットを0から1に切換えるようにする。
該当するFIFOに対応する割込み保留レジスタ234
(図3)の読出しによって、1度、割込みが解消される
と、再度、状態レジスタ232の対応ビットが0から1
に切換わるまで割込みは発生しない。この割込み許可ビ
ットは、高スレッショルド割込みが発生した場合にリセ
ットされる。
タ218及び低スレッショルド割込み許可レジスタ22
0は、1ビットを格納する。高スレッショルド割込み許
可ビットが1にセットされると、対応するFIFOのデ
ータ量が、高スレッショルド・レジスタ214内のスレ
ッショルド値以上、すなわち、該当するFIFOの高ス
レッショルド設定値以上の場合は、割込みはワークステ
ーション116に送られる。このビットによりワークス
テーションは対応するFIFOからの高スレッショルド
割込みの禁止又は許可の処理を実行する。1にセットさ
れると、使用中カウント・レジスタ212内の使用中カ
ウントが高スレッショルドをクロスする場合に、割込み
が発生し、該当するFIFOの状態レジスタ232(図
3)内の状態ビットを0から1に切換えるようにする。
該当するFIFOに対応する割込み保留レジスタ234
(図3)の読出しによって、1度、割込みが解消される
と、再度、状態レジスタ232の対応ビットが0から1
に切換わるまで割込みは発生しない。この割込み許可ビ
ットは、高スレッショルド割込みが発生した場合にリセ
ットされる。
【0026】各々の低スレッショルド割込み許可レジス
タ220も同様な方法で機能する。特定のFIFOの低
スレッショルド割込み許可レジスタ・ビットが1にセッ
トされると、対応する低スレッショルド・レジスタ21
6によって定義されたように、対応するFIFOのデー
タ量が該当するFIFOの低スレッショルド設定値以下
の場合、割込みはワークステーション116に送られ
る。高スレッショルド・ビットと同様な方法で、このビ
ットによってソフトウェアが対応するFIFOからI/
Oバス108への低スレッショルド割込みを許可又は禁
止にする。1にセットされると使用中カウント・レジス
タ212内の使用中カウントが、低スレッショルドをク
ロスし、次に同じスレッショルドを再クロスした場合
に、割込みが発生する。これは、実際の低スレッショル
ド割込みが必要な場合に、偽の低スレッショルド割込み
と排除することによって実行される。言い換えると、F
IFOがデータで満たされると、FIFOは低スレッシ
ョルドを越えて満たされていることは間違いない、次
に、満たされているデータが取り除かれ、再び、低スレ
ッショルドを下回ってクロスすると、割込みが発生する
ことになる。1度、割込み保留レジスタ234の読出し
によって割込みが解消されると、再度、状態レジスタ2
32のビットが0から1に切換わるまで、割込みは発生
しない。この割込み許可ビットは、低スレッショルド割
込みが発生した場合にリセットされる。
タ220も同様な方法で機能する。特定のFIFOの低
スレッショルド割込み許可レジスタ・ビットが1にセッ
トされると、対応する低スレッショルド・レジスタ21
6によって定義されたように、対応するFIFOのデー
タ量が該当するFIFOの低スレッショルド設定値以下
の場合、割込みはワークステーション116に送られ
る。高スレッショルド・ビットと同様な方法で、このビ
ットによってソフトウェアが対応するFIFOからI/
Oバス108への低スレッショルド割込みを許可又は禁
止にする。1にセットされると使用中カウント・レジス
タ212内の使用中カウントが、低スレッショルドをク
ロスし、次に同じスレッショルドを再クロスした場合
に、割込みが発生する。これは、実際の低スレッショル
ド割込みが必要な場合に、偽の低スレッショルド割込み
と排除することによって実行される。言い換えると、F
IFOがデータで満たされると、FIFOは低スレッシ
ョルドを越えて満たされていることは間違いない、次
に、満たされているデータが取り除かれ、再び、低スレ
ッショルドを下回ってクロスすると、割込みが発生する
ことになる。1度、割込み保留レジスタ234の読出し
によって割込みが解消されると、再度、状態レジスタ2
32のビットが0から1に切換わるまで、割込みは発生
しない。この割込み許可ビットは、低スレッショルド割
込みが発生した場合にリセットされる。
【0027】各制御レジスタ222は4ビットを格納す
る。これらのビットは、リセット指標レジスタ・ビッ
ト、リセット使用中カウント・ビット、転送方向ビッ
ト、及びDMA中断許可ビットである。リセット指標レ
ジスタ・ビットが1にセットされると、対応するFIF
Oの指標ポインタ・レジスタ210をクリアする。同様
に、リセット使用中カウント・レジスタ・ビットが1に
セットされると、対応する使用中カウント・レジスタ2
12をクリアする。前述のように、転送方向ビットは、
ワークステーション116とグラフィックス・アダプタ
110間の転送方向を示す。転送方向ビットが1にセッ
トされると、データの流れの方向がグラフィックス・ア
ダプタ110から(特にグラフィックス・アダプタ・バ
ス202から)、ワークステーション116の方向であ
ることを示す。転送方向ビットが0にセットされると、
データの流れの方向がワークステーション116からグ
ラフィックス・アダプタ110のバス202への方向と
なる。このモード・ビットはFIFOインタフェース2
00内で使用され、ワークステーションの処理又はDM
Aのアクセスの中断、再開を調整する程度に高スレッシ
ョルド・レジスタ214、低スレッショルド・レジスタ
216、及び状態レジスタ232の機能を逆にする。こ
のビットが使用されても、これらの変化はプログラマに
は見えない。
る。これらのビットは、リセット指標レジスタ・ビッ
ト、リセット使用中カウント・ビット、転送方向ビッ
ト、及びDMA中断許可ビットである。リセット指標レ
ジスタ・ビットが1にセットされると、対応するFIF
Oの指標ポインタ・レジスタ210をクリアする。同様
に、リセット使用中カウント・レジスタ・ビットが1に
セットされると、対応する使用中カウント・レジスタ2
12をクリアする。前述のように、転送方向ビットは、
ワークステーション116とグラフィックス・アダプタ
110間の転送方向を示す。転送方向ビットが1にセッ
トされると、データの流れの方向がグラフィックス・ア
ダプタ110から(特にグラフィックス・アダプタ・バ
ス202から)、ワークステーション116の方向であ
ることを示す。転送方向ビットが0にセットされると、
データの流れの方向がワークステーション116からグ
ラフィックス・アダプタ110のバス202への方向と
なる。このモード・ビットはFIFOインタフェース2
00内で使用され、ワークステーションの処理又はDM
Aのアクセスの中断、再開を調整する程度に高スレッシ
ョルド・レジスタ214、低スレッショルド・レジスタ
216、及び状態レジスタ232の機能を逆にする。こ
のビットが使用されても、これらの変化はプログラマに
は見えない。
【0028】DMA中断許可ビットが1にセットされる
と、次の場合に、対応するFIFOへのDMAを中断す
る。該当する使用中カウント・レジスタ212の内容
が、ワークステーション116(モード=0)からグラ
フィックス・アダプタ110へデータ転送の場合に高ス
レッショルド値に到達する場合、又はグラフィックス・
アダプタ110(モード=1)からワークステーション
116へデータ転送の場合に、低スレッショルド値に到
達する場合である。DMAは次の状態になるまで中断を
維持する。使用中カウント・レジスタ212内の使用中
カウントが、ワークステーション116(モード=0)
からグラフィックス・アダプタ110へデータ転送の場
合に低スレッショルド値に到達する場合、又はグラフィ
ックス・アダプタ110(モード=1)からワークステ
ーション116へデータ転送の場合に高スレッショルド
値に到達する場合である。この機能が使用されると、特
定のFIFOの高スレッショルド割込み許可レジスタ2
18と低スレッショルド割込み許可レジスタ220の両
レジスタは、0にセットされることで割込み禁止とな
る。
と、次の場合に、対応するFIFOへのDMAを中断す
る。該当する使用中カウント・レジスタ212の内容
が、ワークステーション116(モード=0)からグラ
フィックス・アダプタ110へデータ転送の場合に高ス
レッショルド値に到達する場合、又はグラフィックス・
アダプタ110(モード=1)からワークステーション
116へデータ転送の場合に、低スレッショルド値に到
達する場合である。DMAは次の状態になるまで中断を
維持する。使用中カウント・レジスタ212内の使用中
カウントが、ワークステーション116(モード=0)
からグラフィックス・アダプタ110へデータ転送の場
合に低スレッショルド値に到達する場合、又はグラフィ
ックス・アダプタ110(モード=1)からワークステ
ーション116へデータ転送の場合に高スレッショルド
値に到達する場合である。この機能が使用されると、特
定のFIFOの高スレッショルド割込み許可レジスタ2
18と低スレッショルド割込み許可レジスタ220の両
レジスタは、0にセットされることで割込み禁止とな
る。
【0029】FIFOの加算レジスタ224、減算レジ
スタ226は、グラフィックス・アダプタ・バス202
からアクセス可能で、特定のFIFOの使用中カウント
・レジスタ212を更新するのに用いられる。グラフィ
ックス・アダプタ・バス202からワークステーション
116へのFIFOにおける転送開始毎に加算レジスタ
224は64Kバイト(10000h)に設定され、空
のFIFOであることを示す。
スタ226は、グラフィックス・アダプタ・バス202
からアクセス可能で、特定のFIFOの使用中カウント
・レジスタ212を更新するのに用いられる。グラフィ
ックス・アダプタ・バス202からワークステーション
116へのFIFOにおける転送開始毎に加算レジスタ
224は64Kバイト(10000h)に設定され、空
のFIFOであることを示す。
【0030】減算レジスタ226は、ワークステーショ
ン116からグラフィックス・アダプタ・バス202に
転送中の対応するFIFOから取り除かれるバイト数を
示すのに使用され、又は、他の方向であるグラフィック
ス・アダプタ・バス202からワークステーション11
6へデータ転送中、グラフィックス・アダプタ・バス2
02から対応するFIFOに転送されたバイト数を示す
のに使用される。これらのバイト数はグラフィックス・
アダプタ・バス202から減算レジスタ226にロード
され、アダプタ・バス側から対応するFIFOへの書込
み又は読出したバイト数だけ、使用中カウント・レジス
タ212を減分する
ン116からグラフィックス・アダプタ・バス202に
転送中の対応するFIFOから取り除かれるバイト数を
示すのに使用され、又は、他の方向であるグラフィック
ス・アダプタ・バス202からワークステーション11
6へデータ転送中、グラフィックス・アダプタ・バス2
02から対応するFIFOに転送されたバイト数を示す
のに使用される。これらのバイト数はグラフィックス・
アダプタ・バス202から減算レジスタ226にロード
され、アダプタ・バス側から対応するFIFOへの書込
み又は読出したバイト数だけ、使用中カウント・レジス
タ212を減分する
【0031】レジスタ208、214、216、218
及び220は、ワークステーション116によって適切
に書込み又は読出される。レジスタ210、212は書
込みはされず、読出されるだけである。又、制御レジス
タ222は、ワークステーション116によって書込み
でき、一方、加算レジスタ224、減算レジスタ226
は、前述のようにグラフィックス・アダプタ・バス20
2から書込まれる。
及び220は、ワークステーション116によって適切
に書込み又は読出される。レジスタ210、212は書
込みはされず、読出されるだけである。又、制御レジス
タ222は、ワークステーション116によって書込み
でき、一方、加算レジスタ224、減算レジスタ226
は、前述のようにグラフィックス・アダプタ・バス20
2から書込まれる。
【0032】図5は、FIFO250内の様々なレジス
タ間のさらに詳細な接続を図示する。他の残りのFIF
Oのレジスタ252、254、256は、FIFO25
0と一部を除いて同様である。図5において、FIFO
250に割当てられたグローバル・メモリ206の特定
部260は、グローバル・ポインタ・レジスタ208
(図5のラベル付けされた“開始加算ポインタ”)の内
容によって決まる。グローバル・メモリの特定部260
から下側の構成要素は、FIFO250特有で、グロー
バル・メモリの特定部260を含む上側の構成要素は、
4つのFIFOの250、252、254、256に共
通である。
タ間のさらに詳細な接続を図示する。他の残りのFIF
Oのレジスタ252、254、256は、FIFO25
0と一部を除いて同様である。図5において、FIFO
250に割当てられたグローバル・メモリ206の特定
部260は、グローバル・ポインタ・レジスタ208
(図5のラベル付けされた“開始加算ポインタ”)の内
容によって決まる。グローバル・メモリの特定部260
から下側の構成要素は、FIFO250特有で、グロー
バル・メモリの特定部260を含む上側の構成要素は、
4つのFIFOの250、252、254、256に共
通である。
【0033】図5に示すタイミング&制御ロジック27
6(図3には図示されていない)は、アドレス・デコー
ダ(図5にてラベル付けされた“I/Oデコード”)2
74からのライン272に供給されるデコードされたア
ドレス信号、及びDMA宛先アドレス・レジスタ236
からの信号、及びワークステーション116から結局は
到来するライン278の読出し/書込み制御信号に応答
する。タイミング&制御ロジック276は、ワークステ
ーション116によってグローバル・メモリ特定部26
0へのデータの書込み又は読出しが実行されると、指標
ポインタ・レジスタ210及び使用中カウント・レジス
タ212の内容を増分する。グラフィックス・アダプタ
・バス202からアクセスが実行されての使用中カウン
ト・レジスタ212の更新、及び内向きデータ転送の場
合の使用中カウントの64Kバイトへの初期化は算術論
理演算装置(ALU)280で実行される。ALU28
0は、使用中カウント・レジスタ212から入力信号
を、加算レジスタ244から加算入力信号を、及び減算
レジスタ226から減算入力信号を受ける。ALU28
0は、タイミング&制御ロジック276からの加算/減
算信号に応じて、使用中カウント値に加算レジスタ22
4の内容を加算するか、カウント値から減算レジスタ2
26の内容を引いて、その結果をレジスタ212の前の
内容と入れ替える。
6(図3には図示されていない)は、アドレス・デコー
ダ(図5にてラベル付けされた“I/Oデコード”)2
74からのライン272に供給されるデコードされたア
ドレス信号、及びDMA宛先アドレス・レジスタ236
からの信号、及びワークステーション116から結局は
到来するライン278の読出し/書込み制御信号に応答
する。タイミング&制御ロジック276は、ワークステ
ーション116によってグローバル・メモリ特定部26
0へのデータの書込み又は読出しが実行されると、指標
ポインタ・レジスタ210及び使用中カウント・レジス
タ212の内容を増分する。グラフィックス・アダプタ
・バス202からアクセスが実行されての使用中カウン
ト・レジスタ212の更新、及び内向きデータ転送の場
合の使用中カウントの64Kバイトへの初期化は算術論
理演算装置(ALU)280で実行される。ALU28
0は、使用中カウント・レジスタ212から入力信号
を、加算レジスタ244から加算入力信号を、及び減算
レジスタ226から減算入力信号を受ける。ALU28
0は、タイミング&制御ロジック276からの加算/減
算信号に応じて、使用中カウント値に加算レジスタ22
4の内容を加算するか、カウント値から減算レジスタ2
26の内容を引いて、その結果をレジスタ212の前の
内容と入れ替える。
【0034】図5には比較器282が図示されており、
その入力をFIFO250の使用中カウント・レジスタ
212、高スレッショルド・レジスタ214及び低スレ
ッショルド・レジスタ216から受ける。比較器282
は、タイミング&制御ロジック276から受けた比較信
号に応じて、使用中カウントと高スレッショルド・レジ
スタ214及び低スレッショルド・レジスタ216内の
スレッショルドと比較し、比較成功の場合はライン28
4に割込み信号を、又はライン286にDMA中断信号
を出力する。
その入力をFIFO250の使用中カウント・レジスタ
212、高スレッショルド・レジスタ214及び低スレ
ッショルド・レジスタ216から受ける。比較器282
は、タイミング&制御ロジック276から受けた比較信
号に応じて、使用中カウントと高スレッショルド・レジ
スタ214及び低スレッショルド・レジスタ216内の
スレッショルドと比較し、比較成功の場合はライン28
4に割込み信号を、又はライン286にDMA中断信号
を出力する。
【0035】FIFO250、252、254、256
が使用される前に、各グローバル・ポインタ・レジスタ
208は、グローバル・メモリ206の64Kバイトの
ブロックを指すようにプログラムされる。高スレッショ
ルド・レジスタ214及び低スレッショルド・レジスタ
216は、選択された値に設定される。指標ポインタ・
レジスタ210は、電源ON時にゼロに初期化される。
最初のFIFOへのアクセスは、グローバル・ポインタ
・レジスタ208内のグローバル・メモリ・ポインタ及
び指標ポインタ・レジスタ210内の指標ポインタによ
って示されるFIFOの最初の位置に対して行なわれ
る。FIFOのアドレス範囲内への各アクセスは、これ
ら2つのポインタの連結によって示されるメモリ位置に
対して実行される。
が使用される前に、各グローバル・ポインタ・レジスタ
208は、グローバル・メモリ206の64Kバイトの
ブロックを指すようにプログラムされる。高スレッショ
ルド・レジスタ214及び低スレッショルド・レジスタ
216は、選択された値に設定される。指標ポインタ・
レジスタ210は、電源ON時にゼロに初期化される。
最初のFIFOへのアクセスは、グローバル・ポインタ
・レジスタ208内のグローバル・メモリ・ポインタ及
び指標ポインタ・レジスタ210内の指標ポインタによ
って示されるFIFOの最初の位置に対して行なわれ
る。FIFOのアドレス範囲内への各アクセスは、これ
ら2つのポインタの連結によって示されるメモリ位置に
対して実行される。
【0036】各FIFO(250〜256)のアドレス
範囲は、ワークステーション116で実行するアプリケ
ーションが、選択されたFIFOに記憶複数命令(スト
ア・マルチプル命令)を使用して書込みするために使用
される。記憶複数命令(ストア・マルチプル命令)は、
アドレスを連続して増分させ、ワークステーション・プ
ロセサ102内の内部レジスタ(個々には図示されてい
ない)の内容を格納する。対照的に、ロード複数命令
は、同様に、アドレスを連続して増分させ、選択された
FIFOからデータ・ブロックを読出す。好ましくは、
各々のFIFOは、128ワードの範囲を備える。この
ように、図5に示すように、アドレス・デコーダ274
は、ワークステーション116からアドレス信号を得て
0600h〜07FCh範囲内でFIFO250を選択
する。システム100ではアドレスは各32ビット・ワ
ードの4バイトで、8ビットのバイト単位で計算され
る。上記範囲は最後のアドレスは含むが最初のアドレス
は含まない場合、127ワードのエクステントに相当す
る1FChバイト、すなわち10進法で508バイトの
エクステントを有し、最初のアドレスを含む場合は12
8ワードである。
範囲は、ワークステーション116で実行するアプリケ
ーションが、選択されたFIFOに記憶複数命令(スト
ア・マルチプル命令)を使用して書込みするために使用
される。記憶複数命令(ストア・マルチプル命令)は、
アドレスを連続して増分させ、ワークステーション・プ
ロセサ102内の内部レジスタ(個々には図示されてい
ない)の内容を格納する。対照的に、ロード複数命令
は、同様に、アドレスを連続して増分させ、選択された
FIFOからデータ・ブロックを読出す。好ましくは、
各々のFIFOは、128ワードの範囲を備える。この
ように、図5に示すように、アドレス・デコーダ274
は、ワークステーション116からアドレス信号を得て
0600h〜07FCh範囲内でFIFO250を選択
する。システム100ではアドレスは各32ビット・ワ
ードの4バイトで、8ビットのバイト単位で計算され
る。上記範囲は最後のアドレスは含むが最初のアドレス
は含まない場合、127ワードのエクステントに相当す
る1FChバイト、すなわち10進法で508バイトの
エクステントを有し、最初のアドレスを含む場合は12
8ワードである。
【0037】マルチタスク・システムとして、ワークス
テーション116は、同時に多重処理を実行する能力が
ある。これらの各々の処理は、グラフィックス・アダプ
タ110を直接にアクセスできる。ワークステーション
・プロセサ102で実行するオペレーティング・システ
ムを補助するために、各処理においてグラフィックス・
アダプタ110の状態を保持するために2組の制御レジ
スタ(個々には図示されていない)がワークステーショ
ン・メモリ104の異なるページに存在する。これによ
り、2つの処理が、何れのオペレーティング・システム
のオーバ・ヘッドなしに同時にグラフィックス・アダプ
タ110をアクセスできる。又、1つのアプリケーショ
ンにグラフィックス・アダプタ110を使用させ、一方
で、他のFIFOが他のアプリケーションを準備するた
めに1つの処理から離れることができる。
テーション116は、同時に多重処理を実行する能力が
ある。これらの各々の処理は、グラフィックス・アダプ
タ110を直接にアクセスできる。ワークステーション
・プロセサ102で実行するオペレーティング・システ
ムを補助するために、各処理においてグラフィックス・
アダプタ110の状態を保持するために2組の制御レジ
スタ(個々には図示されていない)がワークステーショ
ン・メモリ104の異なるページに存在する。これによ
り、2つの処理が、何れのオペレーティング・システム
のオーバ・ヘッドなしに同時にグラフィックス・アダプ
タ110をアクセスできる。又、1つのアプリケーショ
ンにグラフィックス・アダプタ110を使用させ、一方
で、他のFIFOが他のアプリケーションを準備するた
めに1つの処理から離れることができる。
【0038】FIFO250、252、254、256
は4つのFIFOの入力のアドレス範囲、又はDMAア
クセスのためのワークステーション116のDMAコン
トローラ106を使用することによってワークステーシ
ョン・プロセサ102によって直接にアクセスされるこ
とができる。FIFOへのDMAアクセスの実行には、
正しいFIFOをアクセスする適切な範囲内のアドレス
がDMA宛先アドレス・レジスタ236(図2、図3)
にロードされる。FIFOへのDMAアクセスの調整は
次のように制御される。
は4つのFIFOの入力のアドレス範囲、又はDMAア
クセスのためのワークステーション116のDMAコン
トローラ106を使用することによってワークステーシ
ョン・プロセサ102によって直接にアクセスされるこ
とができる。FIFOへのDMAアクセスの実行には、
正しいFIFOをアクセスする適切な範囲内のアドレス
がDMA宛先アドレス・レジスタ236(図2、図3)
にロードされる。FIFOへのDMAアクセスの調整は
次のように制御される。
【0039】ワークステーション116からFIFOの
アドレス範囲内のアドレスにアクセスが実行されると、
タイミング&制御ロジック276(図5)は、対応する
指標ポインタ・レジスタ210及び使用中カウント・レ
ジスタ212の内容を増分するためにパルスを出力す
る。次に、タイミング&制御ロジック276は、使用中
カウント・レジスタ212内の使用中カウントと、高ス
レッショルド・レジスタ214、低スレッショルド・レ
ジスタ216内の高スレッショルド値、及び低スレッシ
ョルド値と比較する比較オペレーションを実行させるパ
ルスを送る。指標ポインタ・レジスタ210は、常にい
ずれのサイクルの完了時に、グローバル・メモリ内の次
の位置を指す。使用中カウント・レジスタ212内の使
用中カウントは、FIFOへのアダプタのアクセス毎に
自動的に更新される。
アドレス範囲内のアドレスにアクセスが実行されると、
タイミング&制御ロジック276(図5)は、対応する
指標ポインタ・レジスタ210及び使用中カウント・レ
ジスタ212の内容を増分するためにパルスを出力す
る。次に、タイミング&制御ロジック276は、使用中
カウント・レジスタ212内の使用中カウントと、高ス
レッショルド・レジスタ214、低スレッショルド・レ
ジスタ216内の高スレッショルド値、及び低スレッシ
ョルド値と比較する比較オペレーションを実行させるパ
ルスを送る。指標ポインタ・レジスタ210は、常にい
ずれのサイクルの完了時に、グローバル・メモリ内の次
の位置を指す。使用中カウント・レジスタ212内の使
用中カウントは、FIFOへのアダプタのアクセス毎に
自動的に更新される。
【0040】データは、ワークステーション116から
グローバル・ポインタ・レジスタ208内のグローバル
・ポインタと、指標ポインタ・レジスタ210内の指標
ポインタとの連結によって指定された適切なメモリ位置
に直接向う。指標ポインタは、1バイト(8ビット)、
半ワード(16ビット)及びワード・アクセスで適切に
増分される。FIFOがアダプタ・バス202からアク
セスされると、使用中カウント・レジスタの内容が、加
算レジスタ224及び減算レジスタ226によってグラ
フィックス・プロセサのマイクロコードで更新される。
グローバル・ポインタ・レジスタ208内のグローバル
・ポインタと、指標ポインタ・レジスタ210内の指標
ポインタとの連結によって指定された適切なメモリ位置
に直接向う。指標ポインタは、1バイト(8ビット)、
半ワード(16ビット)及びワード・アクセスで適切に
増分される。FIFOがアダプタ・バス202からアク
セスされると、使用中カウント・レジスタの内容が、加
算レジスタ224及び減算レジスタ226によってグラ
フィックス・プロセサのマイクロコードで更新される。
【0041】FIFOへのDMAの書込み中、全てのF
IFOの割込みは中断される。データの書込みの制御、
すなわち調整が、バス・インタフェース109への付加
制御信号(図5のライン286)によって行なわれる。
一時的にDMAを中断させるために高スレッショルド状
態信号が、バス・インタフェース109にゲートされ
る。次にデータが、通常の方法でグラフィックス・アダ
プタ110によってFIFOから移動させられる。FI
FOから低スレッショルド状態が変化するほどの十分な
データが移動させられると、DMAは再始動する。この
ように、DMAがFIFOを読出し中は、全てのFIF
Oの割込みは再び中断させられる。データの読出しの制
御、すなわち調整は、バス・インタフェース109への
同じ制御信号によって行なわれる。一時的にDMAを中
断するために低スレッショルド状態信号がバス・インタ
フェース109にゲートされる。次にデータが通常の方
法でアダプタ・バス202からFIFOに供給される。
FIFOに対して高スレッショルド状態が変化するほど
の十分なデータが加えられると、DMAは再始動する。
この調整機能によって、このようにFIFOへのDMA
アクセスが、ソフトウェアの介入なしでどちらの方向に
も行なうことができる。
IFOの割込みは中断される。データの書込みの制御、
すなわち調整が、バス・インタフェース109への付加
制御信号(図5のライン286)によって行なわれる。
一時的にDMAを中断させるために高スレッショルド状
態信号が、バス・インタフェース109にゲートされ
る。次にデータが、通常の方法でグラフィックス・アダ
プタ110によってFIFOから移動させられる。FI
FOから低スレッショルド状態が変化するほどの十分な
データが移動させられると、DMAは再始動する。この
ように、DMAがFIFOを読出し中は、全てのFIF
Oの割込みは再び中断させられる。データの読出しの制
御、すなわち調整は、バス・インタフェース109への
同じ制御信号によって行なわれる。一時的にDMAを中
断するために低スレッショルド状態信号がバス・インタ
フェース109にゲートされる。次にデータが通常の方
法でアダプタ・バス202からFIFOに供給される。
FIFOに対して高スレッショルド状態が変化するほど
の十分なデータが加えられると、DMAは再始動する。
この調整機能によって、このようにFIFOへのDMA
アクセスが、ソフトウェアの介入なしでどちらの方向に
も行なうことができる。
【0042】ワークステーション116からグラフィッ
クス・アダプタ110(特にグラフィックス・アダプタ
・バス202へ)へのデータ転送において、この転送に
使用されるFIFOは、対応するFIFO制御レジスタ
222への書込み、外向きデータ転送を示す転送方向ビ
ットの0の設定、及び指標ポインタ・レジスタ210と
使用中カウント・レジスタ212の内容のクリアによっ
て初期化される。前述のように、指標ポインタ・レジス
タ210内の指標ポインタは、グローバル・ポインタ・
レジスタ208内のグローバル・メモリ・ポインタと連
結し、FIFOへの次の書込みのためのグローバル・メ
モリ206内の位置を示す。又、前述のように、使用中
カウント・レジスタ212は、FIFOから読出しされ
るバイト数を示す。使用中カウントの00000hは、
FIFOが空であることを示し、一方、使用中カウント
の10000hは、FIFOがデータで満たされている
ことを示す。該当するFIFOの低スレッショルド・レ
ジスタ216は、低スレッショルド割込みを発生させる
ための目標のバイト数に設定され、一方、対応する高ス
レッショルド・レジスタ214は、高スレッショルド割
込みを発生させるための目標のバイト数に設定される。
ワークステーション116は、選択されたFIFOにF
IFOの有効範囲内でデータを書込む。該当するFIF
Oへの各書込みが行なわれると、指標ポインタ・レジス
タ210と使用中カウント・レジスタ212の両方は適
正に増分される。グラフィックス・アダプタ・バス20
2(特に、バス202に結合されたグラフィックス・プ
ロセサ204)はFIFOのデータを自らの読出し/書
込みポインタを用いてグローバル・メモリ206から直
接、読出しする。この読出し/書込みポインタは、グラ
フィックス・プロセサ204に係わるローカル・メモリ
(個々には図示されていない)の内容、又は該当するF
IFOの指標ポインタ・レジスタ210と使用中カウン
ト・レジスタ212の内容からの計算値のいずれかであ
る。グラフィックス・アダプタ・バス202に接続する
グラフィックス・プロセサ204は、次に、該当するF
IFOの使用中カウント・レジスタ212を、減算レジ
スタ226に書込みすることによって更新し、読出され
るバイト数を示す。
クス・アダプタ110(特にグラフィックス・アダプタ
・バス202へ)へのデータ転送において、この転送に
使用されるFIFOは、対応するFIFO制御レジスタ
222への書込み、外向きデータ転送を示す転送方向ビ
ットの0の設定、及び指標ポインタ・レジスタ210と
使用中カウント・レジスタ212の内容のクリアによっ
て初期化される。前述のように、指標ポインタ・レジス
タ210内の指標ポインタは、グローバル・ポインタ・
レジスタ208内のグローバル・メモリ・ポインタと連
結し、FIFOへの次の書込みのためのグローバル・メ
モリ206内の位置を示す。又、前述のように、使用中
カウント・レジスタ212は、FIFOから読出しされ
るバイト数を示す。使用中カウントの00000hは、
FIFOが空であることを示し、一方、使用中カウント
の10000hは、FIFOがデータで満たされている
ことを示す。該当するFIFOの低スレッショルド・レ
ジスタ216は、低スレッショルド割込みを発生させる
ための目標のバイト数に設定され、一方、対応する高ス
レッショルド・レジスタ214は、高スレッショルド割
込みを発生させるための目標のバイト数に設定される。
ワークステーション116は、選択されたFIFOにF
IFOの有効範囲内でデータを書込む。該当するFIF
Oへの各書込みが行なわれると、指標ポインタ・レジス
タ210と使用中カウント・レジスタ212の両方は適
正に増分される。グラフィックス・アダプタ・バス20
2(特に、バス202に結合されたグラフィックス・プ
ロセサ204)はFIFOのデータを自らの読出し/書
込みポインタを用いてグローバル・メモリ206から直
接、読出しする。この読出し/書込みポインタは、グラ
フィックス・プロセサ204に係わるローカル・メモリ
(個々には図示されていない)の内容、又は該当するF
IFOの指標ポインタ・レジスタ210と使用中カウン
ト・レジスタ212の内容からの計算値のいずれかであ
る。グラフィックス・アダプタ・バス202に接続する
グラフィックス・プロセサ204は、次に、該当するF
IFOの使用中カウント・レジスタ212を、減算レジ
スタ226に書込みすることによって更新し、読出され
るバイト数を示す。
【0043】上記とは逆方向である、グラフィックス・
アダプタ・バス202からI/Oバス108経由でワー
クステーション116へのデータ転送において、選択さ
れたFIFOは、対応するFIFO制御レジスタ222
に最初に書込みすることによって初期化され、内向きデ
ータ転送方向を示すために転送方向ビットを1にセット
し、対応する指標ポインタ・レジスタ210と使用中カ
ウント・レジスタ212をクリアする。この両レジスタ
210、212がクリアされると、使用中カウント・レ
ジスタ212は、対応する加算レジスタ224に値64
Kをロードすることによって64Kがロードされる。指
標ポインタ・レジスタ210内の指標ポインタとFIF
Oのグローバル・ポインタ・レジスタ208内のグロー
バル・メモリ・ポインタが連結され、ワークステーショ
ン116によるFIFOの次の読出しのグローバル・メ
モリ206内の位置を示す。外向き転送モードとは逆の
内向き転送モードでは、使用中カウント・レジスタ21
2の使用中カウント10000hはFIFOの空状態を
示し、使用中カウント00000hはデータで満たされ
たFIFOの状態を示す。FIFOの残りの読出される
バイト数は、64K(10000h)から使用中カウン
ト・レジスタ212の内容の値を引くことによって知る
ことができる。選択されたFIFOの低スレッショルド
・レジスタ216は、10000h(64K)から低ス
レッショルド割込みを発生させるための目標のバイト数
を引いた値に設定され、一方、高スレッショルド・レジ
スタ214は、10000h(64K)から高スレッシ
ョルド割込みを発生させるための目標のバイト数を引い
た値に設定される。グラフィックス・アダプタ・バス2
02に接続されたグラフィックス・プロセサ204は、
FIFOのデータを前述と同一の読出し/書込みポイン
タを用いてグローバル・メモリ206に直接、書込む。
この読出し/書込みポインタは、グラフィックス・プロ
セサ204に係わるローカル・メモリ(個々に図示され
ていない)の内容か、指標ポインタ・レジスタ210と
使用中カウント・レジスタ212の内容の計算値の何れ
かである。次に、グラフィックス・プロセサ204は、
再び減算レジスタ226への書込みにより使用中カウン
ト・レジスタ212の内容を更新し、今度は書込まれる
バイト数を表す。ワークステーション116は、該当す
るFIFOからFIFOの有効範囲内のデータを読出
す。該当するFIFOから各読出しが行なわれると、該
当するFIFOの指標ポインタ・レジスタ210と使用
中カウント・レジスタ212の両方の内容が自動的に増
分される。
アダプタ・バス202からI/Oバス108経由でワー
クステーション116へのデータ転送において、選択さ
れたFIFOは、対応するFIFO制御レジスタ222
に最初に書込みすることによって初期化され、内向きデ
ータ転送方向を示すために転送方向ビットを1にセット
し、対応する指標ポインタ・レジスタ210と使用中カ
ウント・レジスタ212をクリアする。この両レジスタ
210、212がクリアされると、使用中カウント・レ
ジスタ212は、対応する加算レジスタ224に値64
Kをロードすることによって64Kがロードされる。指
標ポインタ・レジスタ210内の指標ポインタとFIF
Oのグローバル・ポインタ・レジスタ208内のグロー
バル・メモリ・ポインタが連結され、ワークステーショ
ン116によるFIFOの次の読出しのグローバル・メ
モリ206内の位置を示す。外向き転送モードとは逆の
内向き転送モードでは、使用中カウント・レジスタ21
2の使用中カウント10000hはFIFOの空状態を
示し、使用中カウント00000hはデータで満たされ
たFIFOの状態を示す。FIFOの残りの読出される
バイト数は、64K(10000h)から使用中カウン
ト・レジスタ212の内容の値を引くことによって知る
ことができる。選択されたFIFOの低スレッショルド
・レジスタ216は、10000h(64K)から低ス
レッショルド割込みを発生させるための目標のバイト数
を引いた値に設定され、一方、高スレッショルド・レジ
スタ214は、10000h(64K)から高スレッシ
ョルド割込みを発生させるための目標のバイト数を引い
た値に設定される。グラフィックス・アダプタ・バス2
02に接続されたグラフィックス・プロセサ204は、
FIFOのデータを前述と同一の読出し/書込みポイン
タを用いてグローバル・メモリ206に直接、書込む。
この読出し/書込みポインタは、グラフィックス・プロ
セサ204に係わるローカル・メモリ(個々に図示され
ていない)の内容か、指標ポインタ・レジスタ210と
使用中カウント・レジスタ212の内容の計算値の何れ
かである。次に、グラフィックス・プロセサ204は、
再び減算レジスタ226への書込みにより使用中カウン
ト・レジスタ212の内容を更新し、今度は書込まれる
バイト数を表す。ワークステーション116は、該当す
るFIFOからFIFOの有効範囲内のデータを読出
す。該当するFIFOから各読出しが行なわれると、該
当するFIFOの指標ポインタ・レジスタ210と使用
中カウント・レジスタ212の両方の内容が自動的に増
分される。
【0044】外向き及び内向きの両モードのデータ転送
において、低スレッショルド・レジスタ216と高スレ
ッショルド・レジスタ214の内容は、同じFIFOの
使用中カウント・レジスタ212の内容と連続して比較
され、該当するFIFOに割当てられた状態レジスタ2
32の内容は、FIFOのアドレス範囲内、又はレジス
タ212、214、216、222、224、或いは2
26の何れかにアクセス後、更新される。
において、低スレッショルド・レジスタ216と高スレ
ッショルド・レジスタ214の内容は、同じFIFOの
使用中カウント・レジスタ212の内容と連続して比較
され、該当するFIFOに割当てられた状態レジスタ2
32の内容は、FIFOのアドレス範囲内、又はレジス
タ212、214、216、222、224、或いは2
26の何れかにアクセス後、更新される。
【0045】システム100では、各FIFOへのアク
セスのソフトウェアのオーバーヘッドは、高スレッショ
ルドと低スレッショルドの割込みを使用することにより
最小となる。これらの割込みによりワークステーション
・プロセサ102で実行する処理が、該当するFIFO
に十分な空きがあるかどうか、グラフィックス・アダプ
タ110への問合わせを必要とせずにFIFOへのデー
タの書込みができる。データがワークステーション11
6からグラフィックス・アダプタ110に書込まれる
と、FIFOはデータで満たされる。データがグラフィ
ックス・アダプタ110によって処理されるとFIFO
は、使用中カウントが示す値によって空にさせられる。
FIFOのデータ量が高スレッショルドを越えると、高
スレッショルド割込みが発生する。同様に、FIFOの
データ量が低スレッショルドを下回ると、低スレッショ
ルド割込みが発生する。これらの割込みは、ワークステ
ーション・プロセサ102で実行する割込みハンドラと
呼ばれる独立した処理によって扱われ、割込みハンドラ
は、割込みがグラフィックス・アダプタ110によって
発生すると呼出される。スレッショルド値と割込み許可
を正しく保持することによって、割込みハンドラは、ア
プリケーションがFIFOの状態に関与することなし
に、アプリケーションのFIFOへの書込みを停止させ
たり、開始させることができる。これらの制御によって
アプリケーションはデータをFIFOに容易に転送する
ことができ、しかも、FIFOに空きが無くなったい場
合は自動的に実行を停止する。これにより他のタスクが
システム内で実行できる。アプリケーションはFIFO
に空きができると自動的に再び実行を再開する。
セスのソフトウェアのオーバーヘッドは、高スレッショ
ルドと低スレッショルドの割込みを使用することにより
最小となる。これらの割込みによりワークステーション
・プロセサ102で実行する処理が、該当するFIFO
に十分な空きがあるかどうか、グラフィックス・アダプ
タ110への問合わせを必要とせずにFIFOへのデー
タの書込みができる。データがワークステーション11
6からグラフィックス・アダプタ110に書込まれる
と、FIFOはデータで満たされる。データがグラフィ
ックス・アダプタ110によって処理されるとFIFO
は、使用中カウントが示す値によって空にさせられる。
FIFOのデータ量が高スレッショルドを越えると、高
スレッショルド割込みが発生する。同様に、FIFOの
データ量が低スレッショルドを下回ると、低スレッショ
ルド割込みが発生する。これらの割込みは、ワークステ
ーション・プロセサ102で実行する割込みハンドラと
呼ばれる独立した処理によって扱われ、割込みハンドラ
は、割込みがグラフィックス・アダプタ110によって
発生すると呼出される。スレッショルド値と割込み許可
を正しく保持することによって、割込みハンドラは、ア
プリケーションがFIFOの状態に関与することなし
に、アプリケーションのFIFOへの書込みを停止させ
たり、開始させることができる。これらの制御によって
アプリケーションはデータをFIFOに容易に転送する
ことができ、しかも、FIFOに空きが無くなったい場
合は自動的に実行を停止する。これにより他のタスクが
システム内で実行できる。アプリケーションはFIFO
に空きができると自動的に再び実行を再開する。
【0046】ワークステーション・プロセサ102で実
行するアプリケーションが、FIFOの何れかに書込み
する場合、アプリケーションはシステム・コールで、自
ら割込みハンドラに登録する。このことは割込みハンド
ラが、どの処理を開始させるか、停止させるか、認知す
ることになり、FIFOを使用中のアプリケーション
が、そのFIFOの使用完了まで、他のアプリケション
のそのFIFOの使用を停止させる。アプリケーション
は、割込みハンドラに登録すれば、FIFOへのアクセ
スが自由となる。
行するアプリケーションが、FIFOの何れかに書込み
する場合、アプリケーションはシステム・コールで、自
ら割込みハンドラに登録する。このことは割込みハンド
ラが、どの処理を開始させるか、停止させるか、認知す
ることになり、FIFOを使用中のアプリケーション
が、そのFIFOの使用完了まで、他のアプリケション
のそのFIFOの使用を停止させる。アプリケーション
は、割込みハンドラに登録すれば、FIFOへのアクセ
スが自由となる。
【0047】高スレッショルド及び低スレッショルドの
割込みが発生する場合には、FIFO(250〜25
6)のデータがスレッショルドの位置を一時的に越えた
りする変動のために、割込みが矢継ぎ早に発生するのを
防止する注意が必要である。又、停止させられている何
れのアプリケーションが再始動するのを防止する注意が
必要である。これらの問題はハードウェアと割込みハン
ドラの協調によって解決できる。
割込みが発生する場合には、FIFO(250〜25
6)のデータがスレッショルドの位置を一時的に越えた
りする変動のために、割込みが矢継ぎ早に発生するのを
防止する注意が必要である。又、停止させられている何
れのアプリケーションが再始動するのを防止する注意が
必要である。これらの問題はハードウェアと割込みハン
ドラの協調によって解決できる。
【0048】初期段階ではFIFOは、高スレッショル
ド割込み許可、及び低スレッショルド割込み禁止に設定
されている。データがワークステーション116からF
IFOに書込まれると、前述したハードウェアが、デー
タをグローバル・メモリ206に移動させ、対応する使
用中カウント・レジスタ212を増分する。グラフィッ
クス・プロセサ204(特に、このプロセサで実行して
いる処理)がFIFOのデータを検出するとグラフィッ
クス・プロセサ204は、データを読出し、減算レジス
タ226で使用中カウント・レジスタ212の内容を減
分する。ワークステーション116が、使用中カウント
が高スレッショルドを越えるほどの十分なデータをFI
FOに書込むと、高スレッショルド割込みが発生し、同
時に、さらに高スレッショルド割込みが生ずるのを防止
するために高スレッショルドが割込み禁止にされる。こ
の時点で、高スレッショルド及び低スレッショルドの両
方は割込み禁止にさせられる。割込みハンドラはここで
割込みを処理し、書込みアプリケーションを調整し、F
IFOの高スレッショルド及び低スレッショルドは、シ
ステムが連続して稼働するように適切な割込み許可状態
にされる。低割込みスレッショルドを割込み許可に、及
びアプリケーションを停止させることにより、ワークス
テーション・プロセサ102で他のタスクの実行が可能
になり、一方で、グラフィックス・アダプタ110は、
FIFOのデータを処理する。この処理により、低スレ
ッショルドよりも低くなるように使用中カウント・レジ
スタ212内の使用中カウントを減分すると、低スレッ
ショルド割込みが発生し、低スレッショルドは、後の低
スレッショルド割込みの発生を防止するために自動的に
割込み不能にされる。
ド割込み許可、及び低スレッショルド割込み禁止に設定
されている。データがワークステーション116からF
IFOに書込まれると、前述したハードウェアが、デー
タをグローバル・メモリ206に移動させ、対応する使
用中カウント・レジスタ212を増分する。グラフィッ
クス・プロセサ204(特に、このプロセサで実行して
いる処理)がFIFOのデータを検出するとグラフィッ
クス・プロセサ204は、データを読出し、減算レジス
タ226で使用中カウント・レジスタ212の内容を減
分する。ワークステーション116が、使用中カウント
が高スレッショルドを越えるほどの十分なデータをFI
FOに書込むと、高スレッショルド割込みが発生し、同
時に、さらに高スレッショルド割込みが生ずるのを防止
するために高スレッショルドが割込み禁止にされる。こ
の時点で、高スレッショルド及び低スレッショルドの両
方は割込み禁止にさせられる。割込みハンドラはここで
割込みを処理し、書込みアプリケーションを調整し、F
IFOの高スレッショルド及び低スレッショルドは、シ
ステムが連続して稼働するように適切な割込み許可状態
にされる。低割込みスレッショルドを割込み許可に、及
びアプリケーションを停止させることにより、ワークス
テーション・プロセサ102で他のタスクの実行が可能
になり、一方で、グラフィックス・アダプタ110は、
FIFOのデータを処理する。この処理により、低スレ
ッショルドよりも低くなるように使用中カウント・レジ
スタ212内の使用中カウントを減分すると、低スレッ
ショルド割込みが発生し、低スレッショルドは、後の低
スレッショルド割込みの発生を防止するために自動的に
割込み不能にされる。
【0049】前述を要約すると、ワークステーション1
16からグラフィックス・アダプタ110への外向き転
送において、使用中カウント・レジスタ212内の使用
中カウントが高スレッショルド・レジスタ214内の高
スレッショルドに到達するか、越える場合、FIFO
は、高スレッショルド割込み(割込み許可の場合)を発
生させ、使用中カウントが、低スレッショルド・レジス
タ216内の低スレッショルドに到達するか、下回る場
合、FIFOは、低スレッショルド割込み(割込み許可
の場合)を発生させる。ワークステーション・プロセサ
102で実行する割込みハンドラは、書込みアプリケー
ションを中断させて高スレッショルド割込みに応じ、高
スレッショルド割込み許可レジスタ218に書込みして
高スレッショルド割込みを不能にさせ、及び低スレッシ
ョルド割込み許可レジスタ220への書込みによって低
スレッショルド割込みを可能にさせる。割込みハンドラ
は、書込みアプリケーションを再開することによって低
スレッショルド割込みに応じ、低スレッショルド割込み
許可レジスタ220への書込みによって低スレッショル
ド割込みを不能にさせ、及び高スレッショルド割込み許
可レジスタ218への書込みによって高スレッショルド
割込みを可能にする。
16からグラフィックス・アダプタ110への外向き転
送において、使用中カウント・レジスタ212内の使用
中カウントが高スレッショルド・レジスタ214内の高
スレッショルドに到達するか、越える場合、FIFO
は、高スレッショルド割込み(割込み許可の場合)を発
生させ、使用中カウントが、低スレッショルド・レジス
タ216内の低スレッショルドに到達するか、下回る場
合、FIFOは、低スレッショルド割込み(割込み許可
の場合)を発生させる。ワークステーション・プロセサ
102で実行する割込みハンドラは、書込みアプリケー
ションを中断させて高スレッショルド割込みに応じ、高
スレッショルド割込み許可レジスタ218に書込みして
高スレッショルド割込みを不能にさせ、及び低スレッシ
ョルド割込み許可レジスタ220への書込みによって低
スレッショルド割込みを可能にさせる。割込みハンドラ
は、書込みアプリケーションを再開することによって低
スレッショルド割込みに応じ、低スレッショルド割込み
許可レジスタ220への書込みによって低スレッショル
ド割込みを不能にさせ、及び高スレッショルド割込み許
可レジスタ218への書込みによって高スレッショルド
割込みを可能にする。
【0050】グラフィックス・アダプタ110からワー
クステーション116への内向き転送において、使用中
カウント・レジスタ212内の使用中カウントが高スレ
ッショルド・レジスタ214内の高スレッショルドに到
達するか、下回る場合、FIFOは、高スレッショルド
割込み(割込み許可の場合)を発生させ、及び使用中カ
ウントが低スレッショルド・レジスタ216内の低スレ
ッショルドに到達するか、越える場合、FIFOは低ス
レッショルド割込み(割込み許可の場合)を発生させる
(前述のように、内向き転送ではカウントは、逆の意味
である)。ワークステーション・プロセサ102で実行
する割込みハンドラは、読出しアプリケーションの中断
によって低スレッショルド割込みに応じ、低スレッショ
ルド割込み許可レジスタ220への書込みによって低ス
レッショルド割込みを不能にさせ、及び高スレッショル
ド割込み許可レジスタ218への書込みによって高スレ
ッショルド割込みを可能にする。割込みハンドラは、読
出しアプリケーションを再開することによって高スレッ
ショルド割込みに応じ、高スレッショルド割込み許可レ
ジスタ218への書込みによって高スレッショルド割込
みを不能にし、及び高スレッショルド割込み許可レジス
タ220への書込みによって高スレッショルド割込みを
可能にする。
クステーション116への内向き転送において、使用中
カウント・レジスタ212内の使用中カウントが高スレ
ッショルド・レジスタ214内の高スレッショルドに到
達するか、下回る場合、FIFOは、高スレッショルド
割込み(割込み許可の場合)を発生させ、及び使用中カ
ウントが低スレッショルド・レジスタ216内の低スレ
ッショルドに到達するか、越える場合、FIFOは低ス
レッショルド割込み(割込み許可の場合)を発生させる
(前述のように、内向き転送ではカウントは、逆の意味
である)。ワークステーション・プロセサ102で実行
する割込みハンドラは、読出しアプリケーションの中断
によって低スレッショルド割込みに応じ、低スレッショ
ルド割込み許可レジスタ220への書込みによって低ス
レッショルド割込みを不能にさせ、及び高スレッショル
ド割込み許可レジスタ218への書込みによって高スレ
ッショルド割込みを可能にする。割込みハンドラは、読
出しアプリケーションを再開することによって高スレッ
ショルド割込みに応じ、高スレッショルド割込み許可レ
ジスタ218への書込みによって高スレッショルド割込
みを不能にし、及び高スレッショルド割込み許可レジス
タ220への書込みによって高スレッショルド割込みを
可能にする。
【0051】前述の自動化されたスレッショルド割込み
禁止及び、予め設定された割込み許可を使用することに
よって、必要なアクセス、及びグラフィックス・アダプ
タ110の操作、及び処理する経路長さは、割込み中、
大幅に減少する。さらにアプリケーションの自動開始、
自動停止は、FIFOへのアクセスのソフトウェアのオ
ーバーヘッドを最小にし、及びワークステーション・プ
ロセサ102の利用を改善する。
禁止及び、予め設定された割込み許可を使用することに
よって、必要なアクセス、及びグラフィックス・アダプ
タ110の操作、及び処理する経路長さは、割込み中、
大幅に減少する。さらにアプリケーションの自動開始、
自動停止は、FIFOへのアクセスのソフトウェアのオ
ーバーヘッドを最小にし、及びワークステーション・プ
ロセサ102の利用を改善する。
【0052】あるグラフィックス・オペレーションで
は、データは、グラフィックス・アダプタ110から読
出され、ワークステーション記憶装置104に移動させ
られることが要求される。これを解決するにも、グラフ
ィックス・アダプタの各FIFOは、前述のように、デ
ータをワークステーション116と、グラフィックス・
アダプタ110との間を双方向に、いずれの方向にも移
動することができる。複数のFIFOを備えているので
グラフィカル・データから分離してグラフィカル命令を
取り扱うことができる。データから命令を分離するこの
方法は、2つのグラフィックス・プロセサ204を並行
に働かせることができる。このように1つのプロセサ
が、FIFOのデータから特定の命令のグラフィカル・
データを処理しながら、もう一方のプロセサが、FIF
Oの次の命令で働くことができる。グラフィカル・デー
タが、ワークステーション116からグラフィックス・
アダプタ110に書込まれると、各FIFOは、前述の
ように先行するパラグラフでオペレートする。しかしな
がら、データのグラフィックス・アダプタ110からの
読出しの場合、ワークステーション116とグラフィッ
クス・アダプタ110の間においては、データ転送、及
びグラフィックス・アダプタ110への書込みにおける
FIFOの通常状態への復帰のためには、再同期化が必
要である。
は、データは、グラフィックス・アダプタ110から読
出され、ワークステーション記憶装置104に移動させ
られることが要求される。これを解決するにも、グラフ
ィックス・アダプタの各FIFOは、前述のように、デ
ータをワークステーション116と、グラフィックス・
アダプタ110との間を双方向に、いずれの方向にも移
動することができる。複数のFIFOを備えているので
グラフィカル・データから分離してグラフィカル命令を
取り扱うことができる。データから命令を分離するこの
方法は、2つのグラフィックス・プロセサ204を並行
に働かせることができる。このように1つのプロセサ
が、FIFOのデータから特定の命令のグラフィカル・
データを処理しながら、もう一方のプロセサが、FIF
Oの次の命令で働くことができる。グラフィカル・デー
タが、ワークステーション116からグラフィックス・
アダプタ110に書込まれると、各FIFOは、前述の
ように先行するパラグラフでオペレートする。しかしな
がら、データのグラフィックス・アダプタ110からの
読出しの場合、ワークステーション116とグラフィッ
クス・アダプタ110の間においては、データ転送、及
びグラフィックス・アダプタ110への書込みにおける
FIFOの通常状態への復帰のためには、再同期化が必
要である。
【0053】ワークステーション・プロセサ102で実
行するアプリケーションが、グラフィカル・オペレーシ
ョンを実行する場合は、グラフィックス・アダプタ11
0からのデータの読出しが必要で、適切な命令をFIF
Oの命令に書込む。アプリケーションは命令がどのよう
に処理されたかわからないので、アプリケーションはア
ダプタ・デバイス・ドライバ(ワークステーション・プ
ロセサ102で同時に実行する処理)を呼出し、あるア
プリケーションが高スレッショルド割込みで停止させら
れるのと同様な方法で、アプリケーションは停止させら
れることを要求する。“読出し”命令がグラフィックス
・アダプタ110によっ処理されると、グラフィックス
・プロセサ204で実行する処理は、データをFIFO
に入れ、FIFOの使用中カウントを最大値にセット
し、高スレッショルド割込みを発生させる。しかしなが
ら、元のアプリケーションは既に休止しており、割込み
ハンドラは単にスレッショルドの割込み許可を変更する
だけで、低スレッショルドの割込みが可能となる。グラ
フィックス・アダプタ110が、データをFIFOに移
動させると、使用中カウントは減分する。一方、これに
より、カウントの実際の意味が逆転するので、現存の制
御と割込み論理が働かされ、最大スループットと最小オ
ーバーヘッドが実現する。
行するアプリケーションが、グラフィカル・オペレーシ
ョンを実行する場合は、グラフィックス・アダプタ11
0からのデータの読出しが必要で、適切な命令をFIF
Oの命令に書込む。アプリケーションは命令がどのよう
に処理されたかわからないので、アプリケーションはア
ダプタ・デバイス・ドライバ(ワークステーション・プ
ロセサ102で同時に実行する処理)を呼出し、あるア
プリケーションが高スレッショルド割込みで停止させら
れるのと同様な方法で、アプリケーションは停止させら
れることを要求する。“読出し”命令がグラフィックス
・アダプタ110によっ処理されると、グラフィックス
・プロセサ204で実行する処理は、データをFIFO
に入れ、FIFOの使用中カウントを最大値にセット
し、高スレッショルド割込みを発生させる。しかしなが
ら、元のアプリケーションは既に休止しており、割込み
ハンドラは単にスレッショルドの割込み許可を変更する
だけで、低スレッショルドの割込みが可能となる。グラ
フィックス・アダプタ110が、データをFIFOに移
動させると、使用中カウントは減分する。一方、これに
より、カウントの実際の意味が逆転するので、現存の制
御と割込み論理が働かされ、最大スループットと最小オ
ーバーヘッドが実現する。
【0054】使用中カウントが低スレッショルドを下回
ると、低スレッショルド割込みが発生する。この特定の
オペレーション・モードにおいては、FIFOのデータ
制御レジスタ222の転送方向ビットは0を維持するの
で、転送方向が内向きであっても低スレッショルドは通
常通り有効である。書込みオペレーション中の低スレッ
ショルド割込みの場合、割込みハンドラは、停止中のア
プリケーションを再開させ、高スレッショルド割込みを
可能にし、ワークステーション・プロセサ102とグラ
フィックス・プロセサ204を並列に働かせることがで
きる。ワークステーション116がFIFOからデータ
を読出すと、FIFOハードウェアは、使用中カウント
を増分する。グラフィックス・アダプタ110が、デー
タをFIFOに移動させると、使用中カウントは減分す
る。グラフィックス・アダプタ110が、FIFOをデ
ータで満たすと、データの移動を停止させ、次の空きを
待つ。アプリケーションが、使用中カウントが高スレッ
ショルドを越えるまでの十分なデータを読出すと、割込
みハンドラがアプリケーションを停止させ、低スレッシ
ョルド割込みを可能にし、データが使用可能になるまで
他のタスクを実行するようにする。グラフィックス・ア
ダプタ110がオペレーションを完了すると、“データ
読出し終了”の割込みが発生する。次の2つの条件下
で、この割込みが発生する。1つはアプリケーションが
停止状態で、再開するために低スレッショルド割込みを
待つ状態。もう1つはアプリケーションが実行中で、停
止するために又はデータの読出し完了のために、高スレ
ッショルド割込みを待つ状態である。
ると、低スレッショルド割込みが発生する。この特定の
オペレーション・モードにおいては、FIFOのデータ
制御レジスタ222の転送方向ビットは0を維持するの
で、転送方向が内向きであっても低スレッショルドは通
常通り有効である。書込みオペレーション中の低スレッ
ショルド割込みの場合、割込みハンドラは、停止中のア
プリケーションを再開させ、高スレッショルド割込みを
可能にし、ワークステーション・プロセサ102とグラ
フィックス・プロセサ204を並列に働かせることがで
きる。ワークステーション116がFIFOからデータ
を読出すと、FIFOハードウェアは、使用中カウント
を増分する。グラフィックス・アダプタ110が、デー
タをFIFOに移動させると、使用中カウントは減分す
る。グラフィックス・アダプタ110が、FIFOをデ
ータで満たすと、データの移動を停止させ、次の空きを
待つ。アプリケーションが、使用中カウントが高スレッ
ショルドを越えるまでの十分なデータを読出すと、割込
みハンドラがアプリケーションを停止させ、低スレッシ
ョルド割込みを可能にし、データが使用可能になるまで
他のタスクを実行するようにする。グラフィックス・ア
ダプタ110がオペレーションを完了すると、“データ
読出し終了”の割込みが発生する。次の2つの条件下
で、この割込みが発生する。1つはアプリケーションが
停止状態で、再開するために低スレッショルド割込みを
待つ状態。もう1つはアプリケーションが実行中で、停
止するために又はデータの読出し完了のために、高スレ
ッショルド割込みを待つ状態である。
【0055】アプリケーションが停止させられると、
“データ読出し終了”の割込みが、割込みハンドラにア
プリケーションの再始動を実行させる。FIFOのスレ
ッショルドは、低スレッショルド割込み可能のままであ
る。次に、アプリケーションは全てのデータが読出され
るまで実行する。これは、使用中カウントが最大値を維
持しているからである。FIFOを通常の“データ書込
み”状態にするためにアプリケーションは使用中カウン
トを最小値にセットする。このため、低スレッショルド
割込みが発生することになる。全ての低スレッショルド
割込み状態において、割込みハンドラは高スレッショル
ド割込みを可能にするが、しかし、アプリケーションが
既に実行中なのでアプリケーションが開始することはな
い。ここでグラフィックス・アダプタ110は、通常の
“データ書込み”の状態となる。
“データ読出し終了”の割込みが、割込みハンドラにア
プリケーションの再始動を実行させる。FIFOのスレ
ッショルドは、低スレッショルド割込み可能のままであ
る。次に、アプリケーションは全てのデータが読出され
るまで実行する。これは、使用中カウントが最大値を維
持しているからである。FIFOを通常の“データ書込
み”状態にするためにアプリケーションは使用中カウン
トを最小値にセットする。このため、低スレッショルド
割込みが発生することになる。全ての低スレッショルド
割込み状態において、割込みハンドラは高スレッショル
ド割込みを可能にするが、しかし、アプリケーションが
既に実行中なのでアプリケーションが開始することはな
い。ここでグラフィックス・アダプタ110は、通常の
“データ書込み”の状態となる。
【0056】アプリケーションが“データ読出し終了”
割込みの時点で実行中であった場合、割込みハンドラ
は、高スレッショルド割込みを不能にさせ、低スレッシ
ョルド割込みを可能にして、復帰する。アプリケーショ
ンが休止状態で、“データ読出し終了”割込みによって
再始動の場合も、同様にオペレーションは処理を続行す
る。
割込みの時点で実行中であった場合、割込みハンドラ
は、高スレッショルド割込みを不能にさせ、低スレッシ
ョルド割込みを可能にして、復帰する。アプリケーショ
ンが休止状態で、“データ読出し終了”割込みによって
再始動の場合も、同様にオペレーションは処理を続行す
る。
【0057】複数のアプリケーション間のグラフィック
ス・アダプタ110の共用使用を管理する場合、ワーク
ステーション・プロセサ102で実行するワークステー
ション116のオペレーティング・システムは、アダプ
タをアクセスしなければならない。前述のように、各々
のFIFOは、高スレッショルド割込み、及び低スレッ
ショルド割込みによってアプリケーションを制御する。
グラフィックス・アダプタ110が1つの処理から他の
処理に移行しても、アダプタの現在の状態は退避され、
他の処理で状態が変更しても最後に実行された状態を保
つ。ハードウェァ方式によるFIFOの制御を使用する
ことによって、オペレーティング・システムは、スレッ
ショルド割込みをターン・オフさせることができ、アプ
リケーションは無音で、FIFOをアクセスすることが
できる。オペレーティング・システムが必要なのは、F
IFOに十分な空きがあることを確認するために、使用
中カウント・レジスタ212内の使用中カウントをポー
リングするだけである。オペレーティング・システムが
グラフィックス・アダプタ110へのアクセスを完了す
ると、スレッショルド割込みが再び可能となり、アプリ
ケーションの実行が許される。同時にスレッショルド割
込みは、グラフィックス・アダプタ110をアクセスす
るアプリケーションを制御するのに使用される、すなわ
ち、アプリケーションが目標のFIFOを知らなくて
も、ハードウェア方式のポインタとカウンタがオペレー
ティング・システムにFIFOをアクセスさせる。
ス・アダプタ110の共用使用を管理する場合、ワーク
ステーション・プロセサ102で実行するワークステー
ション116のオペレーティング・システムは、アダプ
タをアクセスしなければならない。前述のように、各々
のFIFOは、高スレッショルド割込み、及び低スレッ
ショルド割込みによってアプリケーションを制御する。
グラフィックス・アダプタ110が1つの処理から他の
処理に移行しても、アダプタの現在の状態は退避され、
他の処理で状態が変更しても最後に実行された状態を保
つ。ハードウェァ方式によるFIFOの制御を使用する
ことによって、オペレーティング・システムは、スレッ
ショルド割込みをターン・オフさせることができ、アプ
リケーションは無音で、FIFOをアクセスすることが
できる。オペレーティング・システムが必要なのは、F
IFOに十分な空きがあることを確認するために、使用
中カウント・レジスタ212内の使用中カウントをポー
リングするだけである。オペレーティング・システムが
グラフィックス・アダプタ110へのアクセスを完了す
ると、スレッショルド割込みが再び可能となり、アプリ
ケーションの実行が許される。同時にスレッショルド割
込みは、グラフィックス・アダプタ110をアクセスす
るアプリケーションを制御するのに使用される、すなわ
ち、アプリケーションが目標のFIFOを知らなくて
も、ハードウェア方式のポインタとカウンタがオペレー
ティング・システムにFIFOをアクセスさせる。
【0058】
【発明の効果】本発明は、双方向にデータを転送でき、
ワークステーション・プロセサで同時に実行する複数の
処理を解決できるFIFOバッファを提供することがで
きる。
ワークステーション・プロセサで同時に実行する複数の
処理を解決できるFIFOバッファを提供することがで
きる。
【図1】本発明に使用したFIFOバッファを有するコ
ンピュータ・システムの概略図である。
ンピュータ・システムの概略図である。
【図2】他のユニットに接続される本発明のFIFOイ
ンタフェースの概略図である。
ンタフェースの概略図である。
【図3】図2に示すFIFOインタフェースの内部構造
の概略図である。
の概略図である。
【図4】FIFOのポインタが、どのように図3のFI
FOインタフェースのグローバル・メモリ内の位置を指
すかの例示図である。
FOインタフェースのグローバル・メモリ内の位置を指
すかの例示図である。
【図5】図3に示すFIFOインタフェースの複数のF
IFOの1つに係わる素子の概略図である。
IFOの1つに係わる素子の概略図である。
【図6】図5に示すFIFOの様々なデータ転送モード
における、使用中カウンタ及びスレッショルドのレジス
タの機能を例示する図である。
における、使用中カウンタ及びスレッショルドのレジス
タの機能を例示する図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ポール・ジョゼフ・ミロット アメリカ合衆国ニューヨーク州、ソガティ ーズ、ジョゼフ・ボウルバード 3033番地 (72)発明者 マーク・セグレ アメリカ合衆国ニューヨーク州、ラインベ ック、カリナ・ドライブ 15番地 (72)発明者 ジェフリー・スコット・スペンサー アメリカ合衆国ニューヨーク州、レイク・ カトリーヌ、カーウィン・プレイス 13番 地 (72)発明者 レスリー・ロバート・ウィルソン アメリカ合衆国ニューヨーク州、クリント ン・コーナーズ、ヒッコリー・ヒル・ロー ド 314番地 (56)参考文献 特開 平1−297756(JP,A) 特開 平2−135562(JP,A)
Claims (5)
- 【請求項1】第1ラインから第2ラインにデータが転送
される第1転送モード及び上記第2ラインから上記第1
ラインにデータが転送される第2転送モードを有するF
IFOバッファにおいて上記第1ライン及び上記第2ラ
インの間で選択された方向にデータを転送させるように
上記FIFOバッファを制御する装置であって、 上記バッファ内のデータ量を表すカウントを最小カウン
ト及び最大カウントの範囲内で格納する手段と、 上記転送モードに応じて上記バッファのカウントを上記
第1転送モードにおいて上記最小カウントに初期設定
し、上記第2転送モードにおいて上記最大カウントに初
期設定する手段と、 上記第1ライン及び上記バッファの間のデータ転送に応
答して上記モードの何れにおいても上記バッファ・カウ
ントを増分する手段と、 上記第2ライン及び上記バッファの間のデータ転送に応
答して上記モードの何れにおいても上記バッファ・カウ
ントを減分する手段と、 を有する制御装置。 - 【請求項2】第1ラインから第2ラインにデータが転送
される第1転送モード及び上記第2ラインから上記第1
ラインにデータが転送される第2転送モードを有するF
IFOバッファにおいて上記第1ライン及び上記第2ラ
インの間で選択された方向にデータを転送させるように
上記FIFOバッファを制御する方法であって、 上記バッファ内のデータ量を表すカウントを最小カウン
ト及び最大カウントの範囲内で格納するステップと、 上記転送モードに応じて上記バッファのカウントを上記
第1転送モードにおいて上記最小カウントに初期設定
し、上記第2転送モードにおいて上記最大カウントに初
期設定するステップと、 上記第1ライン及び上記バッファの間のデータ転送に応
答して上記モードの何れにおいても上記バッファ・カウ
ントを増分するステップと、 上記第2ライン及び上記バッファの間のデータ転送に応
答して上記モードの何れにおいても上記バッファ・カウ
ントを減分するステップと、 を有する制御方法。 - 【請求項3】所定のアドレス空間内の1つのアドレスを
表すアドレス信号を発生する第1プロセサ及び第2プロ
セサの間のデータ転送を制御する装置であって、 複数の格納位置を有し上記アドレス空間内の所定のアド
レス範囲のアドレスを割当てられたFIFOバッファ
と、 上記FIFOバッファを上記第2プロセサに結合する手
段と、 上記第1プロセサによる次のアクセスのために上記FI
FOバッファ内の格納位置を定義する手段と、 上記所定のアドレス範囲内のアドレス信号に応答して上
記FIFOバッファの上記定義された位置にアクセスす
る手段と、 を有する制御装置。 - 【請求項4】上記第1プロセサが上記アドレス信号を持
つデータ信号を発生し、上記アクセス手段が上記FIF
Oバッファの上記定義された位置に上記データ信号を格
納することを特徴とする請求項3記載の制御装置。 - 【請求項5】前記FIFOバッファが複数個設けられ、
各々が複数の独自の格納位置を有し且つ上記アドレス空
間内の独自のアドレス範囲を割当てられており、上記定
義する手段は上記FIFOバッファの各々内に上記第1
プロセッサによる次のアクセスのための格納位置を定義
し、上記アクセス手段は上記FIFOバッファの1つの
上記アドレス範囲内のアドレス信号に応答して上記1の
FIFOバッファを選択し該選択されたFIFOバッフ
ァの上記定義された位置にアクセスすることを特徴とす
る請求項3記載の制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62112890A | 1990-11-30 | 1990-11-30 | |
US621128 | 1990-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04290150A JPH04290150A (ja) | 1992-10-14 |
JPH0827707B2 true JPH0827707B2 (ja) | 1996-03-21 |
Family
ID=24488843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33790691A Expired - Lifetime JPH0827707B2 (ja) | 1990-11-30 | 1991-11-28 | Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5295246A (ja) |
EP (1) | EP0489504B1 (ja) |
JP (1) | JPH0827707B2 (ja) |
DE (1) | DE69124946T2 (ja) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542076A (en) * | 1991-06-14 | 1996-07-30 | Digital Equipment Corporation | Method and apparatus for adaptive interrupt servicing in data processing system |
US5440690A (en) * | 1991-12-27 | 1995-08-08 | Digital Equipment Corporation | Network adapter for interrupting host computer system in the event the host device driver is in both transmit and receive sleep states |
US5450546A (en) * | 1992-01-31 | 1995-09-12 | Adaptec, Inc. | Intelligent hardware for automatically controlling buffer memory storage space in a disk drive |
US5473755A (en) * | 1992-06-01 | 1995-12-05 | Intel Corporation | System for controlling data stream by changing fall through FIFO last cell state of first component whenever data read out of second component last latch |
US5682551A (en) * | 1993-03-02 | 1997-10-28 | Digital Equipment Corporation | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto |
US5546543A (en) * | 1993-03-26 | 1996-08-13 | Digital Equipment Corporation | Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress |
US5604866A (en) * | 1993-09-30 | 1997-02-18 | Silicon Graphics, Inc. | Flow control system having a counter in transmitter for decrementing and incrementing based upon transmitting and received message size respectively for indicating free space in receiver |
US5588125A (en) * | 1993-10-20 | 1996-12-24 | Ast Research, Inc. | Method and apparatus for increasing bus bandwidth on a system bus by inhibiting interrupts while posted I/O write operations are pending |
CA2130064C (en) * | 1993-10-27 | 1999-05-18 | Cory A. Cherichetti | Method and apparatus for transferring data between a host processor and a subsystem processor in a data processing system |
US5636362A (en) * | 1994-09-28 | 1997-06-03 | Intel Corporation | Programmable high watermark in stack frame cache using second region as a storage if first region is full and an event having a predetermined minimum priority |
US5878217A (en) * | 1994-11-21 | 1999-03-02 | Cirrus Logic, Inc. | Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available |
EP0717348A3 (en) * | 1994-12-16 | 1997-06-04 | Motorola Inc | Device and method for inserting an address into a data stream in a data processing system |
US5771356A (en) * | 1995-01-04 | 1998-06-23 | Cirrus Logic, Inc. | Apparatus for controlling FIFO buffer data transfer by monitoring bus status and FIFO buffer thresholds |
US5794037A (en) * | 1995-05-01 | 1998-08-11 | Intergraph Corporation | Direct access to slave processing by unprotected application using context saving and restoration |
US5760792A (en) * | 1995-05-01 | 1998-06-02 | Intergraph Corporation | Fifo logical addresses for control and error recovery |
US5692137A (en) * | 1995-05-08 | 1997-11-25 | Apple Computer, Inc. | Master oriented bus bridge |
US5887190A (en) * | 1995-05-15 | 1999-03-23 | Nvidia Corporation | System for determining from a command storing in a storage circuit an application program which has initiated the command to determine an input/output device address |
US5673416A (en) * | 1995-06-07 | 1997-09-30 | Seiko Epson Corporation | Memory request and control unit including a mechanism for issuing and removing requests for memory access |
US5845153A (en) * | 1995-07-07 | 1998-12-01 | Integrated Device Technology, Inc. | Memory interface for asynchronous transfer mode segmentation and reassembly circuit |
US5717954A (en) * | 1995-10-13 | 1998-02-10 | Compaq Computer Corporation | Locked exchange FIFO |
US6745292B1 (en) | 1995-12-08 | 2004-06-01 | Ncr Corporation | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors |
US6122717A (en) | 1996-06-17 | 2000-09-19 | Integrated Device Technology, Inc. | Methods and apparatus for a memory that supports a variable number of bytes per logical cell and a variable number of cells |
EP0817085A1 (en) * | 1996-06-25 | 1998-01-07 | Motorola, Inc. | Addressing means and method |
US5937174A (en) * | 1996-06-28 | 1999-08-10 | Lsi Logic Corporation | Scalable hierarchial memory structure for high data bandwidth raid applications |
US5881254A (en) * | 1996-06-28 | 1999-03-09 | Lsi Logic Corporation | Inter-bus bridge circuit with integrated memory port |
US6108722A (en) * | 1996-09-13 | 2000-08-22 | Silicon Grpahics, Inc. | Direct memory access apparatus for transferring a block of data having discontinous addresses using an address calculating circuit |
US5974482A (en) * | 1996-09-20 | 1999-10-26 | Honeywell Inc. | Single port first-in-first-out (FIFO) device having overwrite protection and diagnostic capabilities |
US6098143A (en) * | 1998-06-25 | 2000-08-01 | Compaq Computer Corporation | Remote server management device |
US5983315A (en) * | 1997-04-25 | 1999-11-09 | Rockwell Science Center, Inc. | System and method for establishing priorities in transferring data in burst counts from a memory to a plurality of FIFO stages, each having a low, intermediate, and high region |
US6055597A (en) * | 1997-10-30 | 2000-04-25 | Micron Electronics, Inc. | Bi-directional synchronizing buffer system |
US6029253A (en) * | 1997-10-30 | 2000-02-22 | Micron Electronics, Inc. | Method for synchronizing data with a bi-directional buffer |
US7373440B2 (en) * | 1997-12-17 | 2008-05-13 | Src Computers, Inc. | Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format |
US6339819B1 (en) * | 1997-12-17 | 2002-01-15 | Src Computers, Inc. | Multiprocessor with each processor element accessing operands in loaded input buffer and forwarding results to FIFO output buffer |
US7565461B2 (en) * | 1997-12-17 | 2009-07-21 | Src Computers, Inc. | Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers |
US7424552B2 (en) * | 1997-12-17 | 2008-09-09 | Src Computers, Inc. | Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices |
US7197575B2 (en) * | 1997-12-17 | 2007-03-27 | Src Computers, Inc. | Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers |
US20040236877A1 (en) * | 1997-12-17 | 2004-11-25 | Lee A. Burton | Switch/network adapter port incorporating shared memory resources selectively accessible by a direct execution logic element and one or more dense logic devices in a fully buffered dual in-line memory module format (FB-DIMM) |
US6438102B1 (en) | 1998-06-03 | 2002-08-20 | Cisco Technology, Inc. | Method and apparatus for providing asynchronous memory functions for bi-directional traffic in a switch platform |
US6483850B1 (en) | 1998-06-03 | 2002-11-19 | Cisco Technology, Inc. | Method and apparatus for routing cells having different formats among service modules of a switch platform |
US6463485B1 (en) * | 1998-06-03 | 2002-10-08 | Cisco Technology, Inc. | System for providing cell bus management in a switch platform including a write port cell count in each of a plurality of unidirectional FIFO for indicating which FIFO be able to accept more cell |
US6529971B1 (en) * | 1998-06-26 | 2003-03-04 | Seagate Technology, Llc | Adaptive elasticity FIFO buffer |
US6145033A (en) * | 1998-07-17 | 2000-11-07 | Seiko Epson Corporation | Management of display FIFO requests for DRAM access wherein low priority requests are initiated when FIFO level is below/equal to high threshold value |
US6119207A (en) * | 1998-08-20 | 2000-09-12 | Seiko Epson Corporation | Low priority FIFO request assignment for DRAM access |
US6219151B1 (en) | 1998-08-24 | 2001-04-17 | Hitachi Koki Imaging Solutions, Inc. | Network printing system |
US6571301B1 (en) * | 1998-08-26 | 2003-05-27 | Fujitsu Limited | Multi processor system and FIFO circuit |
US6356962B1 (en) * | 1998-09-30 | 2002-03-12 | Stmicroelectronics, Inc. | Network device and method of controlling flow of data arranged in frames in a data-based network |
WO2000054141A1 (de) * | 1999-03-09 | 2000-09-14 | Siemens Aktiengesellschaft | System und verfahren zur übertragung von datentelegrammen mit wechselseitiger belegung von mindestens drei datenpuffern |
US6389489B1 (en) | 1999-03-17 | 2002-05-14 | Motorola, Inc. | Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size |
US6460108B1 (en) * | 1999-03-31 | 2002-10-01 | Intel Corporation | Low cost data streaming mechanism |
US6701432B1 (en) * | 1999-04-01 | 2004-03-02 | Netscreen Technologies, Inc. | Firewall including local bus |
US6516420B1 (en) | 1999-10-25 | 2003-02-04 | Motorola, Inc. | Data synchronizer using a parallel handshaking pipeline wherein validity indicators generate and send acknowledgement signals to a different clock domain |
US6581165B1 (en) | 2000-01-14 | 2003-06-17 | Applied Micro Circuits Corporation | System for asynchronously transferring timed data using first and second clock signals for reading and writing respectively when both clock signals maintaining predetermined phase offset |
US6694417B1 (en) | 2000-04-10 | 2004-02-17 | International Business Machines Corporation | Write pipeline and method of data transfer that sequentially accumulate a plurality of data granules for transfer in association with a single address |
GB0022953D0 (en) * | 2000-09-19 | 2000-11-01 | Sgs Thomson Microelectronics | Processing buffered data |
US6721826B2 (en) * | 2001-09-25 | 2004-04-13 | Lsi Logic Corporation | Buffer partitioning for managing multiple data streams |
US6779054B2 (en) * | 2001-10-05 | 2004-08-17 | Intel Corporation | Method and apparatus for operating a network controller |
US6968468B2 (en) * | 2002-02-25 | 2005-11-22 | O2 Micro, Inc. | Digital computer utilizing buffer to store and output data to play real time applications enabling processor to enter deep sleep state while buffer outputs data |
US20050160069A1 (en) * | 2003-12-30 | 2005-07-21 | Samsung Electronics Co., Ltd. | Method for processing a file for a sub-memory in a wireless terminal |
WO2005078572A1 (en) * | 2004-02-12 | 2005-08-25 | Koninklijke Philips Electronics N.V. | A fifo memory device with non-volatile storage stage |
JP4498038B2 (ja) * | 2004-07-06 | 2010-07-07 | 株式会社東芝 | データ取込装置 |
US20060200597A1 (en) * | 2005-03-03 | 2006-09-07 | Christenson Bruce A | Method, system, and apparatus for memory controller utilization of an AMB write FIFO to improve FBD memory channel efficiency |
JP4060322B2 (ja) * | 2005-03-28 | 2008-03-12 | 三菱電機株式会社 | アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体 |
JP4789753B2 (ja) | 2006-08-28 | 2011-10-12 | 富士通セミコンダクター株式会社 | 画像データバッファ装置、画像転送処理システム、及び画像データバッファ方法 |
US7737727B2 (en) * | 2007-12-17 | 2010-06-15 | Intersil Americas Inc. | Bi-directional buffer for open-drain or open-collector bus |
US7692450B2 (en) | 2007-12-17 | 2010-04-06 | Intersil Americas Inc. | Bi-directional buffer with level shifting |
US9183713B2 (en) | 2011-02-22 | 2015-11-10 | Kelly Research Corp. | Perimeter security system |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3601809A (en) * | 1968-11-04 | 1971-08-24 | Univ Pennsylvania | Addressable list memory systems |
JPS5247638A (en) * | 1975-10-15 | 1977-04-15 | Toshiba Corp | Information processing device |
US4285038A (en) * | 1976-10-15 | 1981-08-18 | Tokyo Shibaura Electric Co., Ltd. | Information transfer control system |
US4258418A (en) * | 1978-12-28 | 1981-03-24 | International Business Machines Corporation | Variable capacity data buffer system |
JPS5833770A (ja) * | 1981-08-24 | 1983-02-28 | Sony Corp | デジタルデ−タのプログラム転送方法 |
US4454595A (en) * | 1981-12-23 | 1984-06-12 | Pitney Bowes Inc. | Buffer for use with a fixed disk controller |
JPS60229160A (ja) * | 1984-04-26 | 1985-11-14 | Toshiba Corp | マルチプロセツサシステム |
US4750107A (en) * | 1985-01-07 | 1988-06-07 | Unisys Corporation | Printer-tape data link processor with DMA slave controller which automatically switches between dual output control data chomels |
JPS62208153A (ja) * | 1986-03-08 | 1987-09-12 | Nec Corp | 入出力バツフア装置 |
US4942515A (en) * | 1986-03-31 | 1990-07-17 | Wang Laboratories, Inc. | Serial communications controller with FIFO register for storing supplemental data and counter for counting number of words within each transferred frame |
US4847812A (en) * | 1986-09-18 | 1989-07-11 | Advanced Micro Devices | FIFO memory device including circuit for generating flag signals |
US4823312A (en) * | 1986-10-30 | 1989-04-18 | National Semiconductor Corp. | Asynchronous communications element |
JPS63216170A (ja) * | 1987-03-05 | 1988-09-08 | Mitsubishi Electric Corp | デイジタル信号処理プロセツサ |
EP0285334B1 (en) * | 1987-04-02 | 1993-10-27 | Advanced Micro Devices, Inc. | Universal asynchronous receiver-transmitter |
US4809269A (en) * | 1987-04-02 | 1989-02-28 | Advanced Micro Devices, Inc. | Dual-port timing controller |
EP0290172A3 (en) * | 1987-04-30 | 1991-01-16 | Advanced Micro Devices, Inc. | Bidirectional fifo with variable byte boundary and data path width change |
US4905232A (en) * | 1987-08-13 | 1990-02-27 | Digital Equipment Corporation | Peripheral repeater box |
US5089951A (en) * | 1987-11-05 | 1992-02-18 | Kabushiki Kaisha Toshiba | Microcomputer incorporating memory |
US4942553A (en) * | 1988-05-12 | 1990-07-17 | Zilog, Inc. | System for providing notification of impending FIFO overruns and underruns |
JPH01297756A (ja) * | 1988-05-26 | 1989-11-30 | Nec Corp | データ転送制御装置 |
GB8824373D0 (en) * | 1988-10-18 | 1988-11-23 | Hewlett Packard Ltd | Buffer memory arrangement |
JPH02135562A (ja) * | 1988-11-16 | 1990-05-24 | Fujitsu Ltd | キュー・バッファの制御方式 |
US4888727A (en) * | 1989-01-10 | 1989-12-19 | Bull Hn Information Systems Inc. | Peripheral controller with paged data buffer management |
-
1991
- 1991-11-06 EP EP91310249A patent/EP0489504B1/en not_active Expired - Lifetime
- 1991-11-06 DE DE69124946T patent/DE69124946T2/de not_active Expired - Fee Related
- 1991-11-28 JP JP33790691A patent/JPH0827707B2/ja not_active Expired - Lifetime
-
1993
- 1993-07-13 US US08/091,075 patent/US5295246A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE69124946D1 (de) | 1997-04-10 |
JPH04290150A (ja) | 1992-10-14 |
EP0489504B1 (en) | 1997-03-05 |
US5295246A (en) | 1994-03-15 |
DE69124946T2 (de) | 1997-09-18 |
EP0489504A2 (en) | 1992-06-10 |
EP0489504A3 (en) | 1993-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0827707B2 (ja) | Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置 | |
US5444853A (en) | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's | |
EP0732659B1 (en) | Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment | |
EP0550163B1 (en) | Circuit architecture for supporting multiple-channel DMA operations | |
US5796413A (en) | Graphics controller utilizing video memory to provide macro command capability and enhanched command buffering | |
EP0550164B1 (en) | Method and apparatus for interleaving multiple-channel DMA operations | |
EP0393319B1 (en) | Bus-to-bus adapter | |
US5428779A (en) | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions | |
US5251312A (en) | Method and apparatus for the prevention of race conditions during dynamic chaining operations | |
JP3433386B2 (ja) | 入出力記憶装置への直接メモリアクセスを行う装置及び方法 | |
US5754191A (en) | Method and apparatus for optimizing pixel data write operations to a tile based frame buffer | |
EP0440243A2 (en) | Memory controller for sub-memory unit such as disk drives | |
JPH0381179B2 (ja) | ||
JP4741735B2 (ja) | ディスク・コントローラ・メモリ・アーキテクチャ用システムおよび方法 | |
JP3756215B2 (ja) | インタフェイスコントローラおよび方法 | |
JPH0736806A (ja) | Dma方式 | |
EP0196400A2 (en) | Logical arrangement for controlling use of different system displays by main processor and co-processor | |
JPS6229831B2 (ja) | ||
JPH06250965A (ja) | 入出力制御装置 | |
JP2003186666A (ja) | マイクロコンピュータおよびdma制御回路 | |
JPS62251943A (ja) | チヤネル装置のメモリアドレス制御方式 | |
JPS6379154A (ja) | チヤネル装置 | |
JPS61285566A (ja) | 入出力制御装置 | |
JPH0424733B2 (ja) | ||
JPS61156454A (ja) | デ−タ転送制御装置 |