JPH0793127A - 先入れ先出し装置及び先入れ先出し方法 - Google Patents

先入れ先出し装置及び先入れ先出し方法

Info

Publication number
JPH0793127A
JPH0793127A JP4242332A JP24233292A JPH0793127A JP H0793127 A JPH0793127 A JP H0793127A JP 4242332 A JP4242332 A JP 4242332A JP 24233292 A JP24233292 A JP 24233292A JP H0793127 A JPH0793127 A JP H0793127A
Authority
JP
Japan
Prior art keywords
out device
data
bit
condition
counter
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.)
Granted
Application number
JP4242332A
Other languages
English (en)
Other versions
JP3434837B2 (ja
Inventor
Michael Scott
スコット マイケル
David Browning
ブラウニング デヴィッド
Holt Michael
ホルト マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Systems Inc
Original Assignee
Silicon Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Systems Inc filed Critical Silicon Systems Inc
Publication of JPH0793127A publication Critical patent/JPH0793127A/ja
Application granted granted Critical
Publication of JP3434837B2 publication Critical patent/JP3434837B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/10Methods 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 having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 幅が選択可能な、バースト可能先入れ先出し
法(First-In,First-Out=FIFO)を提供する。 【構成】 レジスタメモリが、xビット及びyビットデ
ータを記憶し、レジスタメモリの各レジスタの幅は、y
+1ビットである。yビットがxビット及びyビットデ
ータを記憶し、1ビットは各レジスタ内のデータ幅を追
跡する。バーストレディ・ロジックはmビット入力を受
けて、2mの考え得るバースト長さから1つのバースト
長さを選び、mビット入力に基づきFIFOがバースト
可能となる時を示す信号を出す。また、デジタルヒステ
リシスを用いて、空及び満杯のFIFO条件を定める。
1つの実施例では、FIFOの8個のレジスタが、8ビ
ット及び16ビットデータを記憶し、各レジスタの幅は
17ビットであり、各16ビットが8ビット及び16ビ
ットデータを記憶し、残りの1ビットがレジスタが8ビ
ットまたは16ビットデータであるかどうか追跡する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
のデータ記憶、さらに詳しくは、コンピュータシステム
の双方向、先入れ先出し(First-In,First-Out=FIF
O)データ記憶の分野に関するものである。
【0002】
【従来の技術】典型的なコンピュータシステムは、図7
に示すような多数のモジュールや素子によって構成され
ている。コンピュータシステムには、通常はマイクロプ
ロセッサ(720)のような中央処理装置(CPU)が含
まれている。マイクロプロセッサは、命令を入手し、解
読し、実行するプログラム制御式装置である。コンピュ
ータシステムには、プログラム命令を記憶するための、
読取り専用メモリ(ROM)(725)のようなプログラ
ム記憶部が含まれる。コンピュータシステムにはまた、
ランダムアクセスメモリ(RAM)(730)のようなデ
ータ記憶素子とマスメモリ710のようなデータ記憶素
子も含まれる。CPU(720)と,記憶素子(710),
(725)及び(730)は、バス(715)にデータを転送
する。
【0003】コンピュータシステムには普通、キーボー
ド(745)のような外部装置をマイクロプロセッサ(7
20)に接続するための、入力/出力(I/O)部(74
0)も含まれている。メモリ管理装置やコ・プロセッサ
のような専用素子(735)がコンピュータシステムに含
まれることもある。
【0004】RAMデータ記憶素子(730)は、「メイ
ンメモリ」としても知られ、ユーザー、プログラムまた
はプロセスに動的に割り振られる希少な資源である。メ
インメモリRAM(730)は普通、シリコンを主体とし
て作られている。多くの場合、ダイナミック・ランダム
アクセスメモリ(DRAM)をメインメモリ(730)と
して用いる。メインメモリ(730)は「バイト」で構成
されている。すなわち、メモリは、一連の8ビットのバ
イトとして配列されており、バイトはメモリからアクセ
スされる情報の最小単位である。実行時には場合により
16ビットのワード(2バイト)または32ビットのワ
ード(4バイト)が一度にアクセスされる。
【0005】マスメモリ(710)は、ディスク上にデー
タを記憶し、代表的なものは、情報記憶のために磁気,
光,光磁気またはその他の種類の媒体を使用する。その
容量と、ディスクの操作に必要な制御量のために、デー
タへのアクセス時間はマイクロプロセッサの速度と比べ
ると非常に遅い。したがって、マイクロプロセッサ(7
20)は、先に述べたようにメインメモリRAM(73
0)の形式でアクセス時間の速いデータ記憶領域を用い
る。
【0006】メインメモリ(730)の記憶容量は、多く
の場合、マスメモリ(710)よりずっと小さい。メイン
メモリ(730)は、マイクロプロセッサ(720)の当面
の使用のために比較的少量のデータを記憶するために使
用される。メインメモリ(730)のアクセス時間が速く
なればなるほど、コンピュータの処理速度に近づく。し
たがって、システムは現在使用中のデータをディスクか
らアクセスする場合よりも速く作動することができる。
【0007】記憶領域(710)と(730)の独特な特性
を利用して、今後の使用のためにはデータをメインメモ
リ(730)からマスメモリ(710)へ、当面の使用のた
めにはマスメモリ(710)からメインメモリ(730)へ
転送する。
【0008】マスメモリ(710)を操作するには、ディ
スクコントローラ(825)を図8のように設ける。その
他の機能としては、ディスクコントローラ(825)は、
ディスクの回転と読取り/書込みヘッドの位置を制御す
る。ディスクコントローラ(825)は、ディスク(89
0)へのアクセス要求の管理も行う。
【0009】ディスクコントローラ(825)の構成部分
の1つが、バッファ(840)である。バッファ840
は、データがディスク(890)に書込まれる前、または
ディスク(890)からメインメモリ(710)へ転送され
る前に、「中間」記憶領域を設ける。バッファ(840)
は普通、メインメモリ(710)より小さく、8Kバイト
から1Mバイトまでである。現在の進歩したディスクド
ライブシステムでは、バッファ(840)はDRAMまた
はSRAMで構成されている。ディスク(890)へのア
クセスは、ディスクコントローラ(825)のバッファ
(840)にアクセスすることによって行われる。
【0010】バッファ(840)へのアクセス要求は、バ
ッファマネージャ(830)が扱う。バッファ(840)へ
のアクセス要求は、複数のソースから出される。たとえ
ば、1つのディスクコントローラでは、バッファマネー
ジャ(830)が4つのソースからのバッファへのアクセ
ス要求を扱う。第1に、ホストバスコンピュータ(70
0)が、ディスクコントローラ(825)のホストバスイ
ンターフェース(801)経由でバッファ(840)へのア
クセスを要求することができる。第2に、ディスクコン
トローラ(825)のディスクフォーマッタ(860)も、
ディスクドライブに、またはディスクドライブから、デ
ータを転送するためにバッファ(840)へのアクセスを
要求することができる。ディスクドライブの埋込型マイ
クロコントローラ880も、バッファ(840)にアクセ
スを要求することができる。DRAMバッファを用いる
場合は、DRAMリフレッシュ回路(832)がバッファ
(840)アクセスのための4番目の要求ソースとなるこ
とができる。
【0011】図8は、コンピュータシステムで用いると
きのディスクコントローラの簡単なブロック図である。
ディスクコントローラ(825)には、FIFO(820)
に結合されたホストバスインターフェース(801)を含
んでいる。バッファマネージャ(830)はFIFO(8
20)、FIFO(850)及びバッファ(840)に結合
されている。ディスクフォーマッタ(860)もFIFO
(850)に結合されている。ホストバスインターフェー
ス(801)、ディスクフォーマッタ(860)及びバッフ
ァマネージャ(830)は、互いに非同期的に作動する。
【0012】したがって、FIFO(820)と(850)
はデータ転送を効率よく行うことができる。説明のた
め、ディスク(890)からのデータ読取りの場合を例と
して考える。FIFO(820)と(850)がない場合、
ディスクフォーマッタ(860)はバッファマネージャ
(830)経由でバッファ(840)に直接データを転送す
る。この間は、バッファマネージャ(830)はディスク
フォーマッタ(860)の要求に応えているため、バッフ
ァへのアクセス要求はできない。ディスクフォーマッタ
(860)によってバッファ(840)がデータで満杯にな
ったあと、バッファマネージャ(830)はホスト(70
0)の要求に応えることができる。したがって、データ
をバッファ(840)からメインメモリ(710)に読込む
ことができる。よって、ホストコンピュータ(700)
は、ディスクフォーマッタ(860)がバッファ(840)
にアクセスし終わるまでそのまま待機しなければならな
い。
【0013】FIFO(820)と(850)を用いれば、
バッファマネージャ(830)はホストバスインターフェ
ース(801)、ディスクフォーマッタ(860)、埋込型
マイクロコントローラ(880)及びDRAMリフレッシ
ュ回路(832)の間を多重送信することができる。FI
FO(820)と(850)によって、ホストバスインター
フェース(801)またはディスクフォーマッタ(860)
がデータ要求に応える際に遅れることなく、バッファマ
ネージャ(830)の多重送信が可能となる。またFIF
O(820)と(850)によって、ホストバスインターフ
ェース(801)とディスクフォーマッタ(860)が、バ
ッファ(840)から、またはバッファ(840)へ、同時
にデータを転送することが可能となる。ディスクからの
データ読取りの同様の例として、バッファマネージャ
(830)はホストバスインターフェース(801)のFI
FO(820)をデータで満杯にし、その後ディスクフォ
ーマッタ(860)のFIFO(850)からデータを検索
することができる。次に、ホスト(700)がホストバス
インターフェース(801)のFIFO(820)からデー
タを検索するのと同時に、ディスクフォーマッタ(86
0)のFIFO(850)からのデータをバッファ(84
0)に記憶することができる。ホスト(700)とディス
クフォーマッタ(860)の透視図から、データ要求への
対応の遅れを最小限に抑えながら、それぞれがバッファ
(840)にただちにアクセスしていることがわかる。実
際には、バッファマネージャ(830)はバッファアクセ
スのための(おそらく)4つの要求ソース、すなわち、
ホストバスインターフェース(801)、ディスクフォー
マッタ(860)、ディスクドライブの埋込型マイクロコ
ントローラ(880)及び(DRAMバッファを用いる場
合には)DRAMリフレッシュ回路(832)の間で多重
送信している。
【0014】DRAMバッファ(840)をディスクコン
トローラ(825)で使用する場合は、バッファ(840)
とFIFO(850)間の転送にページモードアクセス法
を用いることができる。ページモードでは、データは1
度に1バイトではなくむしろブロックまたはバーストで
転送される。バーストで転送されるバイト数を、バース
ト長さと呼ぶ。ページモードはバースト転送またはデマ
ンド転送として実行することができる。
【0015】バースト転送モードでは、バースト長さが
バッファ(840)とFIFO(850)間に転送されるバ
イト数を表す。FIFO(850)からの読取りについて
は、FIFO(850)が少なくともバースト長さと同数
のバイトを含むとき、バッファマネージャはFIFO
(850)にバッファアクセスを認める。FIFO(85
0)への書込みについては、FIFO(850)の空バイ
トの数が少なくともバースト長さと同じになるまで、バ
ッファマネージャ(830)は、FIFO(850)にデー
タを転送しない。
【0016】デマンド転送モードでは、バースト長さ
は、1つのバッファが要求にアクセスしている間に転送
される最大バイト数を示す。FIFO(850)からバッ
ファ(840)への読取りは、FIFO(850)が空でな
いときにはいつでも起こりうる。したがって、FIFO
(850)からの読取りは、FIFO(850)に少なくと
も1個のデータバイトが含まれるときに起こりうること
になる。バッファの書込みのためには、FIFO(85
0)にデータを記憶するオープンバイトが少なくとも1
個含まれるときに、バッファマネージャ(830)は転送
を開始することができる。バースト長さは、1つの要求
中に転送できる最大バイト数を示す。すなわちFIFO
(850)から読取られるバイト数は、FIFO(850)
のバイト数またはバースト長さのいずれか小さい方に等
しいことになる。同様に、FIFO(850)に書込まれ
るバイト数は、FIFO(850)の空バイト数またはバ
ースト長さのいずれか小さい方に等しいことになる。
【0017】先行技術のディスクコントローラ−FIF
Oシステムは、バースト及びデマンド転送モードの両方
でページモードを支援する。しかし、バースト長さは、
固定されたバイト数に設定されている。バースト長さが
固定されると、最も効率的な転送レートが得られなくな
り、したがってホストが待機状態となることにより不必
要な遅延が生じる可能性がある。したがって、ホストか
ら見たデータ転送速度が妨げられる。バースト長さをプ
ログラムできるようにすれば、転送レートを最大限に活
用することができる。
【0018】DRAMでは、データは2次元グリッドに
記憶されていると考えられる。データのアドレスは2つ
の部分から構成されている。すなわち行アドレスと列ア
ドレスである。データを転送するには、まず行アドレス
がDRAMのアドレスバス上に来て、RAS(行アドレ
ス・ストローブ)信号を用いてストローブし、次に列ア
ドレスがDRAMのアドレスバス上に来て、CAS(列
アドレス・ストローブ)信号を用いてストローブする。
読取り中のときは、DRAMは、CASが出ているあい
だデータバス上の選択した行と列の交差箇所にデータを
置く。また書込み中は、データバスからデータをとり、
CASが出ているあいだ選択した行と列の交差箇所に記
憶する。
【0019】ページモードを用いるときは、転送された
最初のバイトがDRAM内の行及び列アドレスをストロ
ーブさせ、同じ行にある場合は、次のバイトは列アドレ
スだけをストローブさせればよい。列アドレスだけをス
トローブさせれば、DRAMからデータにアクセスする
時間をかなり減らすことができる(したがって、バース
ト長さが4バイトと定まっている場合は、最初のバイト
の行及び列アドレスがストローブするが、第2,第3及
び第4のバイトは列アドレスだけをストローブさせ
る。)。
【0020】バースト開始に関連してオーバーヘッド
(すなわち、行アドレスをストローブする時間)がある
ため、平均アクセス時間=(列アドレスストローブ時間
+(行アドレスストローブ時間/バースト長さ))であ
るから、データバイトにアクセスする平均時間はバース
ト長さが増すにつれて低下する。制約条件がないとき
は、可能な限り最大のバースト長さを選択して、データ
転送速度を最大限にすることができる。しかし、ディス
クコントローラのバッファマネージャは、ホスト及びデ
ィスクFIFOをオーバーフローまたはアンダーフロー
させてはならないという実態により制約される。ディス
ク読取り中のディスクFIFOへのデータの流れ、また
はディスク書込み中のディスクFIFOからのデータの
流れは、バッファマネージャによって止めることはでき
ず、規則的にディスクFIFOをサービスする。バース
ト長さが長過ぎると、ディスクFIFOは、バッファマ
ネージャがホストFIFOでバーストをサービスしてい
るあいだオーバーフローまたはアンダーフローになるこ
とがある。これがバースト長さに対する制約となる。さ
らに、場合によっては、待機状態の挿入によりホスト転
送処理を遅らせることはできないため、バースト長さ
は、ホストFIFOがオーバーフローまたはアンダーフ
ローにならないように選ばなければならない。
【0021】各FIFOは、少量のデータ(普通は数バ
イト)のためにデータを記憶する。FIFO(先入れ先
出し法=First-In,First-Out)は、データを記憶ネット
ワークへ書込み、また記憶ネットワークから読取るとい
う方法から名付けられている。すなわち、FIFOに最
初に書込まれたデータは、FIFOから最初に読取られ
るということである。FIFOの記憶容量は有限であ
る。したがって、空間が残っているかぎりデータをFI
FOに書込むことができる。すなわち、満杯でないかぎ
りFIFOに書込んでもかまわない。逆に、データが残
っていない状態になるまで、すなわち空になるまで、F
IFOから読取ることができる。
【0022】図1は、簡単なFIFOの操作を示してい
る。目的は、データ要素X1からX4をFIFOを用いて
領域(170)から領域(270)まで転送することであ
る。時間t0では、領域(170)には要素X1からX4
あり、FIFOと領域(270)は空である。時間t
1で、要素X1がFIFOに書込まれる。時間t2で、要
素X2がFIFOに書込まれる。時間t3は、X1がFI
FOから領域(270)へ読取られた状況を示している。
1は(時間t1で)FIFOに書込まれた最初の要素で
あるため、これはまた最初にFIFOから読取られたわ
けである。時間t4で、X2、すなわち時間的に2番目に
FIFOへ入力する要素は、領域(270)に書込まれ
る。また時間t4では、要素X3とX4はFIFOへ書込
まれ、FIFO から領域(270)へ読取られる。最後
の時間tfでは、領域(170)にあったすべての要素が
領域(270)にある。
【0023】16ビット及び8ビットのデータの転送を
達成するには、先行技術のFIFOは、デュアルモード
法を用いている。すなわち、1つのモードでは、16ビ
ットデータはFIFOによって処理される。最初の16
ビットモードが終了したあと、第2の8ビットモードが
開始し、8ビットデータの一連の転送を行うことができ
る。したがって、先行技術のFIFOは、FIFO内で
データの種類を混合させることはできない。
【0024】
【発明の概要】本発明は、コンピュータシステムのFI
FOデータ記憶に関するものである。デュアルポート、
双方向性FIFOを、ポート1で第1装置に、またポー
ト2で第2装置に結合する。第2装置はFIFOへ制御
信号を送り、またDRAMデータ記憶領域にデータを記
憶する。ポート1では、第1装置によってxビットまた
はyビットデータをFIFOから読取り、あるいはFI
FOに書込む。同時に、xビットデータを、第2装置に
よってポート2を通してFIFOに書込み、あるいはF
IFOから読取る。第2装置からFIFOへの制御信号
は、データ転送の方向を決定し、FIFOを読取り及び
書込み用に適合させる。S内部レジスタは、xビット及
びyビットデータを同時に記憶する。FIFOへの入力
は、入ってくるデータの幅をxビットまたはyビットと
して示す。各レジスタの幅は、y+1ビットである。y
ビットはxビット及びyビットデータを記憶し、1幅ビ
ット(one width bit)は各レジスタ内のデータの幅を
追跡する。FIFOは、バーストモードまたはデマンド
モードでポート2でのDRAMのページモードアクセス
を支援する。ページモードDRAMアクセスはプログラ
ム可能なバースト長さを用い、システムパラメータの特
定のセットのために、FIFOのスループットを最適に
する。FIFOが満杯の状態にあるか空の状態にあるか
は、デジタルヒステリシスによって決定される。FIF
Oの読取り及び書込みが非同期的に行われることがある
ため、満杯及び空の状態を決定するにはデジタルヒステ
リシスが役立つ。
【0025】本発明の好ましい実施例では、両FIFO
をディスクコントローラに使用する。1つのFIFO
は、IBM−ATのホストバスインターフェースとディ
スクコントローラのバッファの間で用いる。第2のFI
FOは、ディスクコントローラのバッファとディスクフ
ォーマッタのディスクインターフェースの間で用いる。
ホストバスインターフェースFIFOのポート1を、1
6ラインバス経由でATインターフェースに結合し、8
ビット及び16ビットのデータ転送を行う。ポート2で
は、バッファ−ディスクコントローラのデータ転送は8
ビットバス経由で行われる。また、好ましい実施例で
は、ホストインターフェースFIFOは、それぞれが1
7ビット幅である8個の内部レジスタを用いる。すなわ
ち、16のビットは8ビットまたは16ビットのデータ
を記憶し、1幅ビットは当面の各レジスタのデータの幅
を追跡する。ディスクインターフェースFIFOは、そ
れぞれが8ビット幅である8個の内部レジスタを用い
る。レジスタは、3ビットのグレイコードカウンタを用
いて内部で選択される。ディスクコントローラのバッフ
ァがDRAM内で実行される場合は、FIFOのバース
ト長さを、2ラインバス経由でプログラムすることがで
きる。その結果、ポート2でのバーストまたはデマンド
転送は、1,2,4または8バイトのバースト内で行う
ことができる。
【0026】先行技術のFIFOでは、DRAMのペー
ジモードアクセスにおけるバースト長さは固定されてい
る。バースト長さが固定されていると、ホストが待機状
態となり、したがってシステムの性能の妨げになる。本
発明のFIFOは、バースト長さがプログラム可能であ
ることにより、ディスクコントローラで用いるときに性
能が高まる。バースト長さがプログラム可能であること
により、ホストのデータ要求への対応の遅れが最小にな
るよう選択することができるため、ホストから見てデー
タ転送レートを最大限に活用できる。本発明のFIFO
は、幅追跡ビット(width tracking bit)を用いること
によってデータの種類を混合することができ、各レジス
タ内のデータの大きさを示すことができる。
【0027】
【実施例】コンピュータシステムでFIFOデータ記憶
を行う方法と装置について述べる。発明を充分に説明す
るために、以下の説明の中で、多くの特定の詳細事項に
ついて詳しく述べる。しかし、技術精通者にはこれらの
特定の詳細事項がなくても本発明を実施できることは明
白である。その他の点では発明が不必要にわかりにくく
ならないよう、公知の特徴については詳しく説明しな
い。
【0028】この詳細説明の中でとくにxビット及びy
ビットデータについて述べる。説明の目的ためにはyは
2x未満であるかまたは2xに等しい。さらに、データ
の「バイト」とはデータのxビット部分を意味し、デー
タの「ワード」はデータのyビット部分を示す。好まし
い実施例の中ではy=16,x=8である。したがっ
て、2個の8ビットバイトで1個の16ビットワードと
なる。しかし、その他の値や関係を本発明の範囲から逸
脱せずに設定することができる。
【0029】本発明のFIFO(10),マネージャ(3
0)及び装置(1)の概略を図2に示す。図2ではFIF
O(10)を通してデータは装置(1)からマネージャ(3
0)へ、またはマネージャ(30)から装置(1)へ転送さ
れる。マネージャ(30)がFIFO(10)から読取る
か、またはFIFO(10)へ書込むと同時に、装置(1)
はFIFO(10)へ書込むか、またはFIFO(10)か
ら読取る。データは装置(1)とFIFO(10)の間で双
方向性ポートP1(538)を通してyラインバス(11
8)経由で転送される。データはマネージャ(30)とF
IFO(10)の間で双方向性ポートP2(539)を通し
てxラインバス(119)経由で転送される。
【0030】FIFO(10)を通じたデータ転送の方向
はマネージャ(30)からの入力によって制御される。デ
ィレクション入力D(200)によってデータ転送の方向
が決定される。すなわち、ディレクション入力D(20
0)は装置(1)からマネージャ(30)へ、またはマネー
ジャ(30)から装置(1)へのデータ転送用にFIFO
(10)を適合させる。ディレクション入力D(200)は
また、FIFO(10)がどのクロック入力を使用するか
決定する。リードクロック入力RCK1(501)とRC
2(502)はFIFO(10)からデータを読取るため
に、それぞれ装置(1)とマネージャ(30)によって使用
される。使用の際、これらのリードクロック入力は、デ
ータをディレクション入力D(200)に応じてyビット
バス(118)またはxビットバス(119)のいずれかに
入力する。ライトクロック入力WCK1(516)とWC
2(517)はFIFO(10)にデータを書込むために
それぞれ装置(1)とマネージャ(30)によって使用され
る。ディレクション入力D(200)はどのライトクロッ
ク信号を使用するか決定する。WCK1(516)とWC
2(517)を用いるとき、データはyビットバス(11
8)またはxビットバス(119)から取り出されFIF
O(10)に記憶される。
【0031】FIFO(10)に書込まれたxビット及び
yビットデータはS内部レジスタに記憶される。各レジ
スタの幅はy+1ビットである。yビットはxビット及
びyビットデータを記憶し、1幅ビットはレジスタ内の
データの幅を追跡する。
【0032】幅(width)入力W(201)はFIFO(1
0)に書込まれたデータの幅を定める。幅入力値は対応
する幅ビット(width bit)のデータといっしょに記憶
される。幅ビットは幅出力WO(537)上にFIFO
(10)から読取ったデータの幅を定める。
【0033】本発明のFIFO(10)は双方向ポートP
2(539)でバーストすることができる。すなわち、マ
ネージャ(30)のDRAM記憶領域(60)によってペー
ジモードアクセスを用いてP2(539)でデータ転送を
行うことができる。ページモードではデータ転送速度を
増すために単一バイト転送よりむしろ多重バイトバース
ト転送を行う。
【0034】バーストモード入力BM(579)はP2(5
39)での転送をバースト転送またはデマンド転送とし
て実行するかどうかを決定する。バーストモード転送の
ためにはBM(579)を実行する。バーストモードでは
バーストレディ出力RDY(581)がバースト長さ入力
BL(578)によって定められた長さの多重バイトデー
タ転送をP2(539)で実行することができるかどうか
を示す。BM(579)が実行されない場合はP2(53
9)でのデータ転送がデマンド転送モードで行われてい
る。デマンドモードではRDY(581)が実行され、F
IFO(10)が空でなければFIFO(10)からデータ
を読取ることができ、FIFO(10)が満杯でなければ
FIFO(10)に書込むことができる。デマンドモード
ではバースト長さ入力BL(578)が1つの要求中に転
送できる最大バイト数を定める。
【0035】デマンドモードではFIFO(10)はほぼ
空の出力AE(582)とほぼ満杯の出力AF(583)を
用い、それによってマネージャ(30)を効率的に別のタ
スクに切替えることができる。FIFO(10)からの読
取り中はFIFO(10)に1データバイトしかない場
合、ほぼ空の出力AE(582)がマネージャ(30)に信
号を送る。したがって、マネージャ(30)はFIFO
(10)が実際に空になる前にどのデマンド転送を終了し
なければならないかの信号を受ける。これによって、マ
ネージャ(30)を効率的に別のタスクに切替えることが
できる。あと1データバイト分の空間しかない場合はF
IFO(10)への書込み中にほぼ満杯のAF(583)が
マネージャ(30)に出される。したがって、マネージャ
(30)はFIFOが実際に満杯になる前に信号を受け
る。こうして、マネージャ(30)は効率的に別のタスク
に切り替わることができる。これらの各信号はワードで
はなくバイトで構成されている。したがってデータ幅が
考慮される。
【0036】本発明の新しい特徴の一つはバースト長さ
をプログラムまたは選択できることである。すなわち、
マネージャ(30)はmラインバス(128)経由でバース
ト長さを選ぶことができる。たとえば、m=2である場
合はFIFO(10)は4種類の異なるバースト長さのう
ちの1つについてプログラムすることができる。バース
ト長さがプログラム可能であることによって装置(1)の
要求への対応の遅れを最小限にするよう FIFO(1
0)を「合わせる」ことができる。
【0037】データが何もない場合に、FIFO(10)
が読取り中に空になることがある。この場合はデータを
それ以上読取ることはできずFIFO(10)は空信号E
(561)を出す。FIFO(10)への書込み中には満杯
入力F(562)が実行され各Sレジスタにデータがある
ことを示す。その結果、データをそれ以上FIFO(1
0)に書込むことはできない。
【0038】空E(561)信号及び満杯F(562)信号
を出すためにFIFO(10)は独特のデジタルヒステリ
シス法を用いる。すなわち、FIFO(10)状態の経過
をFIFO(10)によって追跡する。本発明のデジタル
ヒステリシスは「ほぼ満杯」及び「ほぼ空」の状態を用
いる。これについては以下の説明の中でさらに詳しく述
べる。
【0039】本発明の詳細な構成図を図5に示す。マネ
ージャ(30)はFIFO(10)に制御信号を出し、双方
向ポートP2(539)を通してxラインバス(119)経
由でデータを転送する。装置(1)は、双方向ポートP1
(538)を通してyラインバス(118)経由でデータを
転送する。レジスタメモリ(530)はxビット及びyビ
ットデータをS内部レジスタに記憶する。各レジスタの
幅は、y+1ビットである。各レジスタは各yビットを
用いてxビット及びyビットデータを記憶し、1幅ビッ
トを用いて各レジスタ内のデータ幅を追跡する。リード
ポインタ(500)には、読取るSレジスタを1つ選ぶ第
1ポインタP(505)がある。ライトポインタ(515)
には、書込むSレジスタを1つ選ぶ第2ポインタP(5
20)がある。リードポインタ(500)とライトポイン
タ(515)にはまた、データを読取り、書込むための、
第3及び第4ポインタP+1(508)とP+1(523)
及びクロック信号がある。減算器(545)は、バースト
レディ・ロジック(BurstReady Logic)(575)に第1
ポインタと第2ポインタの差を与え、FIFO(10)の
データワード数を決定する。P2(539)でのページモ
ード転送が実行できる場合は、バーストレディ・ロジッ
ク(575)がマネージャ(30)に信号を送る。FIFO
(10)が「空」または「満杯」である場合は、満杯/空
ロジック(560)がマネージャ(30)とバーストレディ
・ロジック(575)に信号を送る。
【0040】図5では、ライトポインタ(515)がクロ
ック信号CKLO(521)とCKHI(522)をレジス
タメモリ530に送っている。CKLO(521)はライ
ン(106)経由で入力WRLO(533)に結合されてい
る。CKHI(522)はライン(105)経由で入力WR
HI(534)に結合されている。nビット出力P(52
0)はnラインバス(107)経由でnラインバス(13
6)に結合されている。nビット出力P+1(523)は
nラインバス(134)経由で満杯/空ロジック(560)
入力WP+1(565)に結合されている。出力WHIN
(524)はライン(138)を通してバーストレディ・ロ
ジック(575)の入力WHIN(587)に結合されてい
る。
【0041】マネージャ(30)の出力ディレクション
(31)は、ディレクション入力D(518にライン(10
3)を通して結合されている。ライト1(Write One)
(32)は、ライン(101)を通してWCK1(516)に
結合されている。ライト2(Write Two)(33)は、ラ
イン(102)を通してWCK2(517)入力に結合され
ている。マネージャ(30)の出力幅イン(Widh In)(3
4)は、ライン(104)を通して入力W(519)に結合
されている。
【0042】リードポインタ(500)は、クロック信号
CKLO(506)とCKHI(507)をレジスタメモリ
(530)に送る。CKLO(506)は、ライン(112)
を通して入力RDLO(531)に結合されている。CK
HI(507)は、ライン(113)を通してRDHI(5
32)に結合されている。nビット出力P(505)はn
ラインバス(111)を通してnラインバス(114)に結
合されている。もう一つのnビット出力P+1(508)
はnラインバス(135) を通して満杯/空ロジック(5
60)のRP+1入力(566)に結合されている。出力
RHIN(509)はライン(139)を通してバーストレ
ディ・ロジック(575)の入力RHIN(586)に結合
されている
【0043】マネージャ(30)の出力信号ディレクショ
ン(31)は入力D(503)にライン(100を通して結
合されている。リード1(Read One)(35)はライン
(108を通してRCK1(501)に結合され、リード2
(Read Two)(36)はライン(109を通してRCK
2(502)入力に結合されている。リードポインタ幅入
力W(504)は、ライン(110)を通して、レジスタメ
モリ(530)の出力WO(537)に結合されている。
【0044】レジスタメモリ(530)はライン(115)
を通して入力D(536でマネージャ(30)のディレク
ション(31)出力に結合されている。入力WI(535)
はライン(116)を通してマネージャ(30)の出力幅イ
ン(34)に結合されている。出力WO(537)はライン
(117)を通してマネージャ(30)の幅アウト(Width
Out)(37)に結合されている。入力WP(540)とR
P(541)はそれぞれnビットで構成され、それぞれn
ラインバス(136)と(114)に結合されている。yビ
ット双方向ポートP1(538)はyラインバス(118)
を通して装置(1)のポート(147)に結合されている。
双方向ポートP2(539)はxビットで構成され、xラ
インバス(119)を通してマネージャ(30)のポート
(246)に結合されている。
【0045】減算器(Subtractor)(545)はバースト
レディ・ロジック(575)に出力CNT(548)を送
る。CNT(548)はnラインバス(120)を通してバ
ーストレディ・ロジック(575)の入力CNT(576)
に結合されている。減算器入力WP(546)はnライン
バス(136)に結合され、入力RP(547)はnライン
バス(114)に結合されている。
【0046】満杯/空ロジック(Full/Empty Logic)
(560)はFIFO(10)が満杯または空であるときマ
ネージャ(30)に信号を送る。満杯/空ロジック(56
0)の出力F(562)はライン(124)を通してマネー
ジャ(30)の入力満杯(Full)(38に結合され、出力
E(561)はライン(123)を通して入力空(Empty)
(39に結合されている。満杯/空ロジック(560)は
nラインバス(121)を通してnラインバス(114)に
結合されている RP(563)を通して入力を受ける。
入力WP(564)は、nラインバス(122)を通してn
ラインバス(136)に結合されている。
【0047】バーストレディ・ロジック(575)はマネ
ージャ(30)によって、いつバーストを行うことができ
るか定める。RDY出力(581)はマネージャ(30)の
バーストレディ(42)入力にライン(131))を通して
結合されている。出力AE(582)とAF(583)はマ
ネージャ(30)の入力「ほぼ空(Almost Empty)」(4
1)と「ほぼ満杯(Almost Full)」(40)にそれぞれラ
イン(132)と(133)によって結合されている。バー
ストレディ・ロジック(575)の入力F(584)はライ
ン(126を通して満杯/空ロジック(560)の出力F
(562)に結合されている。入力E(585)はライン
(125)を通して満杯/空ロジック(560)の出力E
(561)に結合されている。入力D(577)はライン
(127)を通してマネージャ(30)の出力ディレクショ
ン(31)に結合されている。Mビット入力BL(578)
はmラインバス(128)を通してマネージャ(30)のバ
ースト長さ(43)出力に結合されている。入力BM(5
79)はライン(129を通してマネージャ(30)の出力
バーストモード(Burst Mode)(44)に結合され、入力
BW(580はライン(130を通してマネージャ(30)
のバースト幅(Burst Width)出力(45)に結合されて
いる。入力WI(589)はライン(137)を通してマネ
ージャ(30)出力幅n(34)に結合されている。入力W
O(588はライン(140)を通してライン(110)に
結合されている。
【0048】図5によれば、ライトポインタ(515)は
主に1個のnビットカウンタによって構成されている。
出力P(520)はnラインバス(111)を通してカウン
タの状態を送信する。カウンタ出力P(520)はSレジ
スタの1つを選んでレジスタメモリ(530)内に書込
む。出力P+1(523)はnラインバス(134)を通し
て満杯/空ロジック(560)にすぐ次のnビットカウン
タの値を与える。たとえば、好ましい実施例では、3ビ
ットのグレイコードカウンタを用いている。したがっ
て、P=001であればP+1=011となる。P+1
(523)を用いて、FIFO(10)の満杯及び空状態を
定める。
【0049】ライトポインタ(515)のnビットカウン
タはディレクション入力D(518)に基づいてWCK
1(516)またはWCK2(517)のどちらかによってク
ロックされる。D(518)がWCK2(517)を使用中
であると示している場合は、FIFO(10)は双方向ポ
ートP2(539)を通して書込み用に適合される。この
場合では、yビットデータをxラインバス(119)上に
転送するよう入力W(519)が示している場合には、次
の2つのクロック信号CKLO(521)とCKHI(5
22)がレジスタメモリ(530)に送られる。図6aに
よれば、WCK2(517)の第1クロックパルス(60
0)によってCKLO出力(521)にパルス(601)が
発生する。WCK2(517)の次のパルス(602)から
は出力CKHI(522)にパルス(603)が発生する。
第2のWCK2(517)パルス(604)の立下りエッジ
でnビットカウンタは増加するため、出力P(520)は
次のレジスタを選び、レジスタメモリ(530)内に書込
む。
【0050】双方向ポートP2(539)はFIFO(1
0)にxビットデータを書込むために用いられる。この
場合にもWCK2(517)を選ぶが、W(519)がxビ
ットデータを書込むよう指示する。xビットデータはx
ラインバス経由で書込むべきであるため、クロック信号
CKLO(521)とCKHI(522) がレジスタメモ
リ(530)に出力される。図6bはこの状況を示してい
る。パルス(610)はCKLO(521)のパルス(61
1)とCKHI(522)のパルス612)を同時にトリガ
ーする。パルス(613),(614)及び(615)が立下
るとき、ライトポインタ(515)のnビットカウンタは
増加する。P(520)は次のレジスタを選び、レジスタ
メモリ(530)内に書込む。
【0051】双方向ポートP1(538)を通してFIF
O(10)に書込むために、CKLO(521)及びCKH
I(522)を図6cに示すように出力する。yビットま
たはxビットデータをポートP1(538)を通して書込
むべきかどうかに関係なく、WCK1(516)のパルス
(616)とCKLO(521)及びCKHI(522)のパ
ルス(617)と(618)を同時に発生する。カウンタ出
力P(520)は(619),(620)及び(621)の立ち
下がりで増加され、レジスタメモリ(530)へ書込むた
めに次のレジスタを選ぶ。これらの各状況では、次のカ
ウンタ出力P+1(523)が満杯/空ロジック(560)
へ送られる。
【0052】リードポインタ(500)の機能はライトポ
インタ(515)と同様である。リードポインタ(500)
は主にnビットカウンタからなり、出力P(505)をn
ラインバス(111)を通して送りカウンタの状態を示
す。次のカウンタ出力P+1(508)がnラインバス
(135)を通して満杯/空ロジック(560)に送られ、
FIFO(10)の満杯及び空条件を定める。
【0053】リードポインタ(500)は入力RCK1(5
01)またはRCK2(502)によってクロックされる。
ディレクション入力D(503)はRCK1(501)また
はRCK2(502)のいずれかが選ばれていることを示
す。ポートP1(538)を通してFIFO(10)から装
置(1)へデータを読取るにはRCK1(501)を選択す
る。ポートP2(539)を通してFIFO(10)からマ
ネージャ(30)への読取りにはRCK2(502)を選択
する。レジスタメモリ(30)の出力WO(537)からと
った入力W(504)は、ライトポインタ(515)への入
力W(519)として同様の機能を果たす。したがって、
W(504)はFIFO(10)から読取られているデータ
の幅を示す。その結果、W(504)はCKLO(506)
とCKHI(507)が(図6aと同様の)RCK2(50
2)によって、または(図6bと同様の)次のRCK
2(502)パルスによって同時にパルスが発生されてい
るかどうかを制御する。同時クロックパルスは、ポート
1(538)経由のyビットまたはxビット読取りがあ
るとき、またポートP2(539)経由のxビット読取り
があるときにも発生する。これらの場合には、出力P
(505)はパルスの立下がりエッジ上でインクリメント
とされる。ポートP2(539)を通してyビットデータ
読取りが起きると、RCK2(502)の第2パルスがC
KHI(507)に送られる間にRCK2(502)の第1
パルスがCKLO(506)に送られる。出力P(505)
はRCK2(502)の第2パルスの立下がりエッジ上で
インクリメントされる。これらの各場合には、出力P
(505)はレジスタメモリ(530)内に読取る次のレジ
スタを示す。それぞれの場合にP+1(508)が満杯/
空ロジック(560)に次のカウンタ状態を供給する。
【0054】好ましい実施例では、リードポインタ(5
00)及びライトポインタ(515)のnビットカウンタ
は3ビットのグレイコードカウンタである。グレイコー
ドカウンタは満杯/空ロジック信号E(561)とF(5
62)を定めるときに問題が起こらないようにする。し
たがって、グレイコードカウンタは比較的容易にFIF
O(10)の空及び満杯条件を定め危険や競合条件がない
ようにする。
【0055】先に述べたように、本発明のFIFO(1
0)はxビット及びyビットデータを受取り、出力し、
記憶する。レジスタメモリ(530)はFIFO(10)の
ためのデータ記憶領域を与える。レジスタメモリ(53
0)は複数のレジスタR(1)からR(S)までを用い
て、SバイトまたはワードあるいはSバイトとワードの
何らかの組合せを記憶する。各レジスタRはnラインを
用いて選択される。したがって、各Sレジスタを選ぶた
めにはSは2n未満かまたはそれに等しい。FIFO
(10)からの読取り中にRP(541)はデータを読取る
Sレジスタを1つ選ぶ。WP(540)はFIFOの書込
み中に書込むSレジスタを1つ選ぶ。
【0056】本発明によって、xビットまたはyビット
データをFIFO(10)のレジスタR(1)からR
(S)までに同時に記憶することができる。たとえば、
レジスタR(1)はxビットデータを記憶することがで
き、レジスタR(2)及びR(3)はyビットデータを
記憶することができる。xビットデータの場合にはレジ
スタのロワーxビットを用いてデータを記憶する。レジ
スタの幅はデータの幅x及びyによって異なる。yは2
x未満かまたはそれに等しいため、各レジスタの幅は少
なくともyに等しくなければならない。データの幅は各
種の操作や計算に入力される。したがって、データの幅
を追跡しなければならない。本発明はデータ幅を追跡す
る新しい方法を提供する。すなわち、レジスタ内のデー
タの幅を追跡するために各レジスタに1ビットを追加す
る。それによって、各レジスタはレジスタ内の現在のデ
ータ幅を追跡するのに関連して1ビットを有することに
なる。したがって、各レジスタRの幅は、y+1であ
る。
【0057】1つの実施例では、本発明のFIFOをデ
ィスクコントローラに用い、そのディスクコントローラ
をIBM−ATシステムで用いている。ホストバスイン
ターフェースはATAスタンダードによって定められて
おり、16ビット及び8ビットデータ転送を必要とす
る。ATバス上の通常のデータ転送の幅は16ビットで
ある。しかし、リードロングコマンド及びライトロング
コマンドにはデータのブロックに加える8ビットのエラ
ーチェックデータが通常必要である。
【0058】したがって、この実施例では8個のレジス
タを用いて8ビット及び16ビットデータを記憶する。
3ビットのグレイコードカウンタの状態が3つのライン
を通して出力され8個の各レジスタを選択する。各レジ
スタの幅は17ビットである。各16個のビットが8ビ
ット及び16ビットデータを記憶する。各レジスタの幅
ビットはレジスタの内容が16ビットまたは8ビットで
あることを示している。この幅ビットによってホストへ
転送するためのIBM−ATホストバスインターフェー
スIOCS16_信号を適切に制御することができる。
IOCS16_はホストに8ビットデータが転送されて
いるか、16ビットデータが転送されているかを知らせ
る。
【0059】レジスタメモリ(530)のレジスタR
(1)からR(S)までを図4aのブロック(405)に
示す。各SレジスタがR(1)(410)とR(2)(4
11)で始まっていることがわかる。番号は連続してR
(S)(412)まで続いている。
【0060】P(505)からとったRP(541)入力は
データを読取るSレジスタを1つ選ぶ。図4aではレジ
スタR(1)(410)が選ばれている。P(505)出力
はまた減算器(545)と満杯/空ロジック(560)にも
供給される。さらに、次のカウンタ出力P+1(508)
は図でわかるようにP(505)と関係している。したが
って、データをFIFO(10)から読取る場合には次の
カウンタ出力P+1(508)はP(505)の次の値を示
す。その結果、データをR(1)(410)から読取ると
次にデータはR(2)(411)から読取られる。
【0061】P(520)からとったWP(540)入力は
データを書込むSレジスタを1つ選ぶ。図4aではR
(S−2)(406)が選ばれている。出力P(520)は
また減算器(545)と満杯/空ロジック(560)にも供
給される。次のカウンタ出力P+1(523)も供給さ
れ、図からわかるようにこれはP(520)と関係してい
る。したがって、データをFIFO(10)に書込むと次
のカウンタ出力P+1(523)はP(520)の次の値を
示す。その結果、データがR(S−2)(406)に書
込まれると、データは次にR(S−1)(407)に書
込まれる。
【0062】図5に戻って、入力D(536)はデータ転
送のディレクションを選択する。対応するライトポイン
タ(515)の入力WCK1(516)またはWCK2(51
7)はFIFOのライトシーケンスをクロックする。入
力WP(540)はデータを受取るSレジスタを1つ選
ぶ。ポートP2(539)経由でのyビット書込みの場合
には、データワードを記憶するのに2個のクロック信号
が必要となる。データのロワーxビットがxラインバス
(119)上に来た後パルスがCKLO(521)からWR
LO(533)に供給される。WRLO(533)上のパル
スによってデータのxビットが選択レジスタに記憶され
る。また、データワードに関連した幅は幅入力WI(5
35)からとられ、選択レジスタの幅ビットに記憶され
る。次に、残りのy−xビットのデータはxラインバス
(119)上に入れられる。CKHI(522)から入力W
RHI(534)へ送られたパルスによって、残りのy−
xビットのデータが選択レジスタに記憶される。
【0063】ポートP1(538)経由のyビット書込み
のため、WRLO(533)とWRHI(534)は同時に
パルスを発生することによってyラインバス(118)上
にあるyビットデータワードが選択レジスタに書込まれ
る。これらの信号はそれぞれCKLO(521)とCKH
I(522)出力から受ける。したがって、装置1がデー
タのソースであることをディレクション入力D(536)
が示し、また幅入力WI(535)がyビットデータを示
している場合は、WRLO(533)とWRHI(534)
は同時にパルスを発生して、選択したレジスタにyビッ
トデータを書込む。またこのときWI(535)の値が選
択レジスタの対応する幅ビットに記憶される。
【0064】P1(538)またはP2(539)を通して書
込まれたxビットデータの場合はデータは選択したレジ
スタの低い方のxビットに記憶される。したがって、W
RLO(533)だけを用いて選択レジスタにデータバイ
トを書込む。選択レジスタのための幅ビットもこのとき
WI(535)からクロックされる。
【0065】FIFO(10)からの読取り操作も同様に
行われる。入力RP(541)がデータを読取るSレジス
タを1つ選び、ディレクション入力D(536)がデータ
のディレクションを示す。各レジスタ内の関連データ幅
が幅出力WO(537)で出力され、これは読取り操作中
ずっとライン上に残る。RDLO(531)上のパルスに
よって、データのロワーxビットが選択レジスタから読
取られる。パルス発生中のRDHI(531)によって残
りのy−xビットが読取られる。
【0066】D(536)及びWO(537)が、yビット
データがP2(539)を通してFIFO(10)から読取
られていることを示すと、yビットデータがxラインバ
ス(119)を経て転送される。したがって、データのロ
ワーxビットが発信中のRDLO(531)によって選択
レジスタから読取られる。マネージャ(30)が低い方の
xビットを受取った後RDHI(532)が発信されて残
りのy−xビットを読取る。幅出力WO(537)はその
間ずっとライン(117)上にある。
【0067】P1(538)を通してyビットデータを読
取る場合は、ディレクション入力D(536)及びWO
(537)によって示されるとおり、RDLO(531)と
RDHI(532)は同時にパルスを発生することによっ
てデータのyビットを読取ることができる。幅出力WO
(537)はこのときも読取り中ずっとライン(117)上
にある。P1(538)またはP2(539)経由のxビット
データ読取りは選択レジスタのロワーxビットから行わ
れる。これらの場合RDLO(531)とRDHI(53
2)は両方ともパルスを発生させるが、RDLO(53
1)だけが用いられる。
【0068】減算器(545)は与えられた時点における
FIFO(10)内のデータワード数を定めるために用い
る。減算器(545)はライトポインタ(515)のカウン
タ出力P(520)とリードポインタ(500)のカウンタ
出力P(505)と間の差を定める。カウンタ出力の差は
CNT(548)を通してバーストレディロジック(57
5)へ供給される。好ましい実施例ではCNT(548)
は2進法で出力される。
【0069】FIFO(10)が満杯または空の場合、満
杯/空ロジック(560)がマネージャ(30)へ信号を送
る。満杯及び空条件はリードポインタ(500)のカウン
タ出力P(505)とP+1(508)によって、またライ
トポインタ(515)のカウンタ出力P(520)とP+1
(523)によって定まる。各ポインタの機能について
は、先に図4aを参照しながら述べた。
【0070】図4bはFIFO(10)が空のときのポイ
ンタの関係を示している。FIFO(10)が空のときは
どのSレジスタにもデータ素子がない。したがって、空
状態ではFIFO(10)からデータを読取ることはでき
ない。この図ではWP(564)によって選択された書込
まれるべき次のレジスタはレジスタR(1)(410)で
ある。空条件ではWP(564)はRP(563)に等し
い。空条件はE(561)によってマネージャ(30)に出
力される。
【0071】FIFO(10)の満杯条件を図4(d)に
示す。各レジスタ内における「×」はレジスタがxビッ
トまたはyビットデータを含むことを示している。FI
FO(10)の満杯状態では各Sレジスタにデータが含ま
れておりその結果、データをそれ以上FIFO(10)に
書込むことができない。また、WP(564)はRP(5
63)に等しい。図4dでわかるように、WP(564)
とRP(563)は両方ともレジスタR(1)(410)を
指している。満杯状態はF(562)によってマネージャ
(30)に知らされる。
【0072】WP(564)がRP(563)に等しいとき
に空及び満杯条件がマネージャ(30)に知らされるた
め、2つの状態を区別する方法が必要となる。本発明は
FIFO(10)の空及び満杯条件を定めるために新しい
方法を用いている。それは、デジタルヒステリシス、す
なわち過去の状態の経過を用いる方法である。
【0073】FIFO(10)の空状態を定めるために本
発明は満杯/空ロジック(560)によって計算される
「ほぼ空」条件を用いる。FIFO(10)からさらにも
う1つのデータワードを読取ることによってRP(56
3)がWP(564)に等しくなった場合ほぼ空状態が発
生する。この場合は、図4cでわかるようにRP+1
(565)がWP(564)に等しい。この図ではR(1)
(410)がデータを含む唯一のレジスタである。したが
って、リードポインタRP(563)はこのデータがFI
FO(10)からの次の読取りとなることを示している。
このほぼ空条件においてライトポインタWP(564)
は、R(2)(411)がFIFO(10)に書込まれる次
のレジスタであることを示す。レジスタR(1)(41
0)内のデータが読取られた場合は、リードポインタの
RP(563)はレジスタR(2)(411)を指すようイ
ンクリメントされる。したがって、WP(564)とRP
(563)は等しくなる。本発明はレジスタR(1)(4
10)からのこの読取りを予定し、レジスタR(2)(4
11)がデータが読取られる次のレジスタとなるよう指
示する。この指示はRP+1(565)によって行われ
る。したがって、RP+1(565)がWP(564)に等
しいときには、FIFO(10)がほぼ空である。さらに
WP(564)がRP(563)に等しくFIFO(10)が
それ以前にほぼ空であったときにはFIFO(10)は空
である。そこで、FIFO(10)の過去の状態をもとに
マネージャ(30)はFIFO(10)が空であることをE
(561)を通じて信号を送ることができる。
【0074】FIFO(10)の満杯条件も空条件と同様
に定める。満杯条件を定めるため本発明は満杯/空ロジ
ック(560)によって計算される「ほぼ満杯」状態を用
いる。ほぼ満杯条件は、FIFO(10)にさらにもう1
つのデータワードを書込むことによってWP(564)が
RP(563)に等しくなったときに生じる。したがっ
て、ほぼ満杯はWP+1(566)がRP(563)に等し
いときに起きる。ほぼ満杯条件では図4eでわかるとお
りレジスタR(1)(410)からR(S−1)(407)
がそれぞれ「×」によって示されるようにデータを含ん
でいる。ライトポインタWP(564)はレジスタR
(S)(412)を指して、FIFO(10)に書込む次の
レジスタを示す。続くライトポインタWP+1(566)
は、リードポインタRP(563)と同様にR(1)(4
10)を指す。したがって、WP+1(566)がRP(5
63)に等しいときFIFO(10)は「ほぼ満杯」とな
る。R(S)(412)への書込みの後、WP(564)は
R(1)(410)を指すようインクリメントされる。し
たがって、WP(564)はRP(563)に等しくなる。
次に、WP(564)がRP(563)に等しくまたFIF
O(10)のそれ以前の状態がほぼ満杯であったとき、F
IFO(10)の信号F(562)がマネージャ(30)に出
力される。このように、FIFO(10)の過去の状態を
用いて満杯条件を定めることができる。
【0075】本発明では、マネージャ(30)のデータ記
憶領域(60)をDRAM内に設けてもよい。この場合に
は、スループットを増大するためにポートP2(539)
でのデータ転送をページモードで行う。ページモードで
はバースト及びデマンド転送モードを支援する。バース
トモード入力BM(579)は転送をバーストモードにす
るかデマンドモードにするか選択する。どちらのモード
でもバースト長さBLの入力(578)はバースト長さを
与え転送が可能であるかどうかを定める。先行技術のデ
ータ転送の遅延を克服するため本発明ではバースト長さ
をプログラムできるようにした。図5でわかるようにマ
ネージャ(30)がmラインバス(128)を通してFIF
O(10)をプログラムする。たとえば、好ましい実施例
ではm=2でありしたがって、4種類のバースト長さを
プログラムすることができる。好ましい実施例ではまた
マネージャ(30)はL=1,2,4または8バイトのバ
ースト長さを選択することができる。
【0076】ページモードデータ転送をポートP2(53
9)で行うことができる場合、バーストレディ・ロジッ
ク(575)がマネージャ(30)にRDY(581)を出力
する。RDY(581)はFIFO(10)の条件と構成を
分析した後にだけ出力される。
【0077】FIFO(10)へのバースト書込みではF
IFO(10)内に完全なバーストのために充分な空きス
ペースがある場合に、RDY(581)がマネージャ(3
0)に出力する。バーストモード入力BM(579)はペ
ージモードバースト転送のためのFIFO(10)を構成
する。ディレクション入力(577)はポートP2(53
9)を通してFIFO(10)に書込むようFIFO(1
0)を構成する。CNT(576)はP(505)とP(52
0)の差を受入れる。FIFO(10)内の空きスペース
が選択したバースト長さL以上又は同等である場合は、
バーストレディ・ロジック(575)がマネージャ(30)
にRDY(581)を出力しFIFO(10)へのバースト
書込みが可能であることを示す。
【0078】バーストレディ・ロジック(575)は、B
L(578)(バースト長さ),BW(580)(バースト
幅),E(585)(空),F(584)(満杯),CNT
(576(減算器(545)によって定められたFIFO
内のワード数),WHIN(587)(ライト・ハイ・ネ
クスト)入力を用いて、バースト書込みに充分な空スペ
ースがFIFO(10)内にあることを確認する。WHI
N(587) はポート(246)経由の次の書込みがレジ
スタメモリ(530)のハイバイトになる(すなわち、W
RHI(534)がパルス出力される)ときに出力され
る。BW(580)はマネージャ(30)によって出され、
マネージャ(30)が書込みを予定するデータの幅を示
す。すなわち、BW(580は書込まれるべきデータが
16ビットになるか8ビットになるかを示す。幅の混合
(バースト内に8ビットデータと16ビットデータがあ
る)がある場合は、バーストするのに必要な空きスペー
スの条件がさらに厳しくなるため、(BWを用いること
によって)マネージャ(30)はバーストが8ビットデー
タになることを示す。
【0079】バーストレディ・ロジック(575)はFI
FO(10)内の空きスペースの数がバースト長さ以上ま
たは同等であるかどうか確認する。たとえば、バースト
長さが4バイトでありバースト幅が16ビットデータを
示している場合には、CNT(576)が7に等しくな
く、CNT(576)が6に等しくなく、WHIN(58
7)が出力されており、F(584)が出力されていなけ
れば、RDY(581)が出力される。またデュアル条件
を用いることもできる。すなわち、CNT(576)の値
が1〜5に等しく、またはCNT(576)が6に等し
く、WHIN(587)が出力されていないか、またはE
(585)が出力されていれば、RDY(581)を出力す
ることができる。バースト長さが4バイトでありバース
ト幅が8ビットデータを示している場合に、CNT(5
76)が7,6または5に等しくなく、F(584)が出
力されていなければ、RDY(581)が出力される。8
ビットデータの書込みにはレジスタメモリの高いバイト
を使用しないためWHIN(587)は考慮しなくてよ
い。
【0080】FIFO(10)からのバースト読取りで
は、全バーストを行うのに充分なデータがFIFO(1
0)に書込まれている場合にRDY(581)がマネージ
ャ(30)に送信される。バーストモードBMの入力(5
79)はバースト転送としてページモードを実行するよ
うFIFO(10)を構成する。ディレクション入力D
(577)はFIFO(10)からの読取り用にFIFO
(10)を構成する。FIFO(10)内のバイト数が選択
したバースト長さL以上である場合は、ポート2のP
2(539)を通してFIFO(10)からのバースト読取
りを行うことができ、RDY(581)がマネージャ(3
0)に送信される。
【0081】バーストレディ・ロジックはBL(57
8),BW(580),E(585),F(584),CNT
(576)及びRHIN(586)入力を用いて、バースト
読取りに充分なデータがFIFO(10)内にあることを
確認する。RHIN(586)はポート(246)経由の次
の読取りがレジスタメモリ(530)の高いバイトになる
(すなわち、RHIN(586)が送られる)ときに出力
される。BW(580)はマネージャ(30)によって出さ
れ、マネージャ(30)が読取りを予定するデータの幅を
示す。すなわち、BW(580は読取られるデータが1
6ビットになるか8ビットになるかを示す。幅の混合
(バースト内に8ビットデータと16ビットデータがあ
る)がある場合は、バーストするのに必要なデータの条
件がさらに厳しくなるため(BWを用いることによっ
て)マネージャ(30)はバーストが8ビットデータにな
ることを示す。
【0082】バーストレディ・ロジック(575)は読取
られるデータバイト数がバースト長さ以上であるかどう
か確認する。たとえば、バースト長さが4バイトであり
バースト幅が16ビットデータを示している場合に、C
NT(576)が1に等しくなく、CNT(576)が2に
等しくなく、RHIN(586)が出力されており、E
(585)が出力されていなければ、RDY(581)が出
力される。デュアル条件を用いることもできる。すなわ
ち、CNT(576)の値が3〜7に等しくまたはCNT
(576)が2に等しく、RHIN(581)が出力されて
いないか、またはF(584)が出力されていれば、RD
Y(581)を出力することができる。バースト長さが4
バイトでありバースト幅が8ビットデータを示している
場合に、CNT(576)が1,2または3に等しくな
く、E(585)が出力されていなければ、RDY(58
1)が出力される。8ビットデータの読取りにはレジス
タメモリのハイバイトを用いないため、RHIN(58
6)は考慮しなくてよい。
【0083】バースト書込み及び読取り中FIFO(1
0)が満杯または空になることがある。いずれの場合に
も、CNT(576)は0に等しく、バーストを行うこ
とができるかどうかを確認するため満杯入力F(584)
及び空入力E(583)がバーストレディ・ロジック(5
75)によって考慮される。図3の表は考えられる4つ
の状況を示している。FIFO(10)が満杯の場合には
FIFO(10)への書込みはできない。したがって、C
NT(576)が0に等しく、FIFO(10)が満杯であ
ることをF(584)が示している場合は、FIFO(1
0)へのバースト書込みは起こらず、RDY(581)は
マネージャ(30)に出力されない。しかしCNT(57
6)が0に等しく、FIFO(10)が空であるとE(58
5)が示している場合には、FIFO(10)へのバース
ト書込みが起こり、RDY(581)がマネージャ(30)
に出力される。FIFO(10)からの読取りでは、CN
T(576)が0に等しく、FIFO(10)が空であるこ
とをE(585)が示している場合は、FIFO(10)か
らのバースト読取りは起こらない。しかし、CNT(5
76)が0に等しく、FIFO(10)が満杯であるとF
(584)が示している場合には、バースト読取りを行う
ことができ、RDY(581)がマネージャ(30)に出力
される。
【0084】ポートP2(539)を通してのページモー
ドデータ転送は、デマンド転送としても行われる。デマ
ンド転送にはマネージャ(30)は転送できる最大バイト
数として選択されたバースト長さLを用いる。デマンド
転送によるFIFO(10)への書込みにはFIFO(1
0)が満杯でない場合RDY出力(581)がマネージャ
(30)に信号を送る。バーストモードBM入力(579)
はデマンドモードを選びディレクションD(577)はF
IFO(10)への書込み用にFIFO(10)を構成す
る。満杯入力F(584)がFIFO(10)が満杯でない
ことを示している場合はデマンド転送の書込みはできな
い。デマンド書込みではFIFO(10)へ書き込まれる
バイト数は、フリーレジスタの数または選択したバース
ト長さLのどちらか小さい方に等しい。
【0085】FIFO(10)からのデマンド転送読取り
ではFIFO(10)が空でない場合、RDY出力(58
1)がマネージャ(30)に信号を送る。この場合はバー
ストモードBM入力(579)がデマンド転送用にFIF
O(10)を構成し、ディレクションD入力(577)は読
取り用にFIFO(10)を構成する。空入力E(585)
がFIFO(10)が空であることを示していれば、デマ
ンド読取りを行うことができる。デマンド読取りではF
IFO(10)から読取られるバイト数がFIFO(10)
のバイト数または選択したバースト長さLのどちらか小
さい方に等しい。
【0086】
【発明の効果】本発明のFIFOはデマンド転送を中止
するべき時機を予定することができる。FIFO(10)
への書込みでは、FIFO内にあと1データバイト分の
空間だけがあるかどうかを「ほぼ満杯」出力AF(58
3)がマネージャ(30)に知らせる。CNT(576)が
7に等しく、WI(589(幅イン)入力が16ビット
データを示し、WHIN(587)(ライト・ハイ・ネク
スト)が出力されているとき、あるいは、CNT(57
6が7に等しく、WI(589)が8ビットデータを示し
ているとき、バーストレディ・ロジック(575)はAF
(583)(ほぼ満杯)を出力する。「ほぼ満杯」信号
(583)によって、マネージャ(30)は、FIFO(1
0)へのデマンド転送を終了しなければならない時を事
前に知ることができる。したがって、マネージャ(30)
は別のタスクに効率的に切替えることができる。FIF
O(10)からの読取りでは、FIFO(10)内に1バイ
トだけが残っている場合に、「ほぼ空」AE(582)が
マネージャ(30)に出力される。CNT(576)が1に
等しく、WO(588)(幅アウト)入力が16ビットデ
ータを示し、RHIN(586)(リード・ハイ・ネクス
ト)が出力されているとき、あるいは、CNT(576)
が1に等しく、WO(588)が8ビットデータを示して
いるとき、バーストレディ・ロジック(575)はAE
(582)(ほぼ空)を出力する。「ほぼ満杯」信号と同
様、マネージャ(30)は、FIFO(10)からのデマン
ド転送を中止しなければならない時を予定することがで
きる。これによって、マネージャ(30)を別のタスクに
効率的に切替えることができる。これらの各信号は、バ
イトで構成されている。したがって、データ幅が考慮に
入れられる。
【0087】以上述べた改良点の他に、本発明のバース
ト長さがプログラム可能であることは、次の2点で有利
である。第1は、性能目標(すなわち、転送速度)をホ
スト側とディスク側とで指定されるときは、固定したバ
ースト長さでは与えられた性能目標及びFIFOオーバ
ーフロー/アンダーフロー制約条件のための最適のもの
ではないかもしれない。その結果、ディスクドライブの
設計者がより速いDRAM(すなわち、アクセス時間の
短いDRAM)を使用しなければならないことになり費
用がかさむ。プログラム可能であることによって最適な
バースト長さを選ぶことができ、したがって性能目標に
合致する最低速のDRAMを用いることができる。第2
は、ホスト側に待機状態が生じるため性能目標がディス
ク側についてだけ指定される場合、与えられたDRAM
アクセス時間では、ホスト転送速度を最大にし、ホスト
の待機状態を最小にして、ディスクがFIFOのオーバ
ーフロー/アンダーフロー制約条件に合うようにバース
ト長さを選ぶことができる。以上、幅が選択可能な、バ
ースト可能先入れ先出し法について説明した。
【図面の簡単な説明】
【図1】FIFOの動作説明図。
【図2】本発明のマネージャ及び装置に関する概要図。
【図3】バーストレディ・ロジックの考えられる4つの
状況の説明図。
【図4】FIFO 状態を変えるためのリード及びライ
トポインタ位置の説明図。
【図5】本発明の詳細なブロック構成図。
【図6】データを双方向ポートに書込むときに発生する
各種クロック及びパルス出力の波形図。
【図7】典型的なコンピュータシステムのブロック構成
図。
【図8】コンピュータシステムに用いたときのディスク
コントローラの簡略化したブロック構成図。
【符号の説明】
500 リードポインタ 515 ライトポインタ 530 レジスタメモリ 545 減算器 560 満杯/空ロジック 575 バーストレディ・ロジック CKHI,CKLO クロック信号 WCK1,WCK2 ライトクロック信号
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デヴィッド ブラウニング アメリカ合衆国 92686 カリフォルニア 州 ヨーバ リンダ, ラ カデナ サー クル 4342 (72)発明者 マイケル ホルト アメリカ合衆国 92692 カリフォルニア 州 ミッション ヴィージョ ルースナー 27815

Claims (59)

    【特許請求の範囲】
  1. 【請求項1】 記憶手段に最初に与えられたデータが前
    記記憶手段から最初に取出されるデータとなるようにデ
    ータを受取り、データを送出するための記憶手段と;複
    数のバースト長さからのデータの最大バースト長さLを
    指定するための第1入力信号と;前記第1入力信号を受
    けるための、また前記長さLのバーストを前記記憶手段
    に与え、前記記憶手段から取出すことのできる時機を制
    御するための第1ロジック手段とによって構成される先
    入れ先出し装置。
  2. 【請求項2】 前記複数バースト長さが、1,2,4及
    び8バイトを含むことを特徴とする請求項1記載の先入
    れ先出し装置。
  3. 【請求項3】 前記第1ロジック手段がまた、前記先入
    れ先出し装置が第1条件にあるとき第1出力信号を出
    し、また前記先入れ先出し装置が第2条件にあるとき第
    2出力信号を出すことを特徴とする請求項1記載の先入
    れ先出し装置。
  4. 【請求項4】 前記第1条件が、前記先入れ先出し装置
    に1xビットバイトだけ残っているときに存在すること
    を特徴とする請求項3記載の先入れ先出し装置。
  5. 【請求項5】 前記第2状態が、前記先入れ先出し装置
    に1xビットバイト分の空間だけが残っているときに存
    在することを特徴とする請求項3記載の先入れ先出し装
    置。
  6. 【請求項6】 前記記憶手段内へ、また前記記憶手段か
    らデータをクロックするための、また前記記憶手段のメ
    モリ位置を選択するためのクロック/ポインター手段
    を、さらに含むことを特徴とする請求項1記載の先入れ
    先出し装置。
  7. 【請求項7】 前記記憶手段のメモリ位置を選択するた
    めに、第1及び第2nビットカウンターを使用すること
    を特徴とする請求項6記載の先入れ先出し装置。
  8. 【請求項8】 前記第1及び前記第2nビットカウンタ
    ーが、3ビットのグレイコードカウンターであることを
    特徴とする請求項7記載の先入れ先出し装置。
  9. 【請求項9】 前記記憶手段が、複数のレジスタを含む
    ことを特徴とする請求項1記載の先入れ先出し装置。
  10. 【請求項10】 前記複数レジスタの数が、8であるこ
    とを特徴とする請求項9記載の先入れ先出し装置。
  11. 【請求項11】 前記複数の各レジスタの幅がy+1ビ
    ットであり、yビットが前記xビットデータまたは前記
    yビットデータを記憶し、前記複数の各レジスタが前記
    xビットデータまたは前記yビットデータを含むかどう
    かを幅ビットが追跡することを特徴とする請求項9記載
    の先入れ先出し装置。
  12. 【請求項12】 x=8であることを特徴とする請求項
    9記載の先入れ先出し装置。
  13. 【請求項13】 y=16であることを特徴とする請求
    項9記載の先入れ先出し装置。
  14. 【請求項14】 前記先入れ先出し装置が、第1条件に
    あるときに第1信号を送るための、また前記先入れ先出
    し装置が第2条件にあるときに第2信号を送るための第
    2ロジック手段をさらに含むことを特徴とする請求項1
    記載の先入れ先出し装置。
  15. 【請求項15】 前記第1条件が、前記先入れ先出し装
    置が空であるときに存在することを特徴とする請求項1
    4記載の先入れ先出し装置。
  16. 【請求項16】 前記第2条件が、前記先入れ先出し装
    置が満杯であるときに存在することを特徴とする請求項
    14記載の先入れ先出し装置。
  17. 【請求項17】 前記記憶手段により最初に受取られる
    データが前記記憶手段によって最初に送出されるデータ
    となるように、データを受取り、送出するための複数の
    記憶素子を有する記憶手段と;複数のビット幅zを有す
    る複数のワードを含む前記データと;最大ビット幅を有
    するワードがビット幅wを有するような前記データと;
    1つの素子が少なくともw+yビット幅であり、ここで
    2y≧zであり、wビットを用いて前記データを記憶
    し、yビットを用いて前記素子に記憶された前記データ
    の幅を表示するような前記複数の記憶素子とを含むこと
    を特徴とする先入れ先出し装置。
  18. 【請求項18】 前記複数の記憶素子が、複数のレジス
    タを含むことを特徴とする請求項17記載の先入れ先出
    し装置。
  19. 【請求項19】 前記複数の各レジスタの幅がw+1ビ
    ットであり、wビットを用いてxビットデータ及びwビ
    ットデータを記憶し、1ビットを用いて各レジスタ内の
    データの幅を追跡することを特徴とする請求項18記載
    の先入れ先出し装置。
  20. 【請求項20】 前記複数のレジスタの数が、8である
    ことを特徴とする請求項18記載の先入れ先出し装置。
  21. 【請求項21】 w=16であることを特徴とする請求
    項19記載の先入れ先出し装置。
  22. 【請求項22】 x=8であることを特徴とする請求項
    19記載の先入れ先出し装置。
  23. 【請求項23】 複数のバースト長さからのデータの最
    大バースト長さLを指定するための第1入力信号と;前
    記第1入力信号を受取るための、また前記長さLのバー
    ストを前記記憶手段によって受取られ、前記記憶手段に
    よって送出することのできる時を制御するための第1ロ
    ジック手段とを含むことを特徴とする請求項17記載の
    先入れ先出し装置。
  24. 【請求項24】 前記複数のバースト長さが、1,2,
    4及び8バイトであることを特徴とする請求項23記載
    の先入れ先出し装置。
  25. 【請求項25】 前記第1ロジック手段もまた、前記先
    入れ先出し装置が第1条件にあるとき第1出力信号を出
    し、前記先入れ先出し装置が第2条件にあるとき第2出
    力信号を出すことを特徴とする請求項21記載の先入れ
    先出し装置。
  26. 【請求項26】 前記第1条件が、前記先入れ先出し装
    置内に1xビットバイトだけ残っているときに存在する
    ことを特徴とする請求項25記載の先入れ先出し装置。
  27. 【請求項27】 前記第2条件が、前記先入れ先出し装
    置内に1xビットバイト分の空間だけが残っているとき
    に存在することを特徴とする請求項25記載の先入れ先
    出し装置。
  28. 【請求項28】 前記記憶手段内に、また前記記憶手段
    からデータをクロックするための、また前記記憶手段内
    のメモリ位置を選択するためのクロック/ ポインタ手
    段を含むことを特徴とする請求項17記載の先入れ先出
    し装置。
  29. 【請求項29】 前記記憶手段内のメモリ位置を選択す
    るために第1及び第2nビットカウンタを用いることを
    特徴とする請求項28記載の先入れ先出し装置。
  30. 【請求項30】 前記第1及び前記第2nビットカウン
    タが、3ビットのグレイコードカウンタであることを特
    徴とする請求項29記載の先入れ先出し装置。
  31. 【請求項31】 前記先入れ先出し装置が、第1条件に
    あるときに第1信号を送り、前記先入れ先出し装置が第
    2条件にあるときは第2信号を送るための第1ロジック
    手段をさらに含むことを特徴とする請求項17記載の先
    入れ先出し装置。
  32. 【請求項32】 前記第1条件が、前記先入れ先出し装
    置が空のときに存在することを特徴とする請求項31記
    載の先入れ先出し装置。
  33. 【請求項33】 前記第2条件が、前記先入れ先出し装
    置が満杯のときに存在することを特徴とする請求項31
    記載の先入れ先出し装置。
  34. 【請求項34】 第1ポインタと第2ポインタを比較
    し、前記第1ポインタが前記第2ポインタに等しい場合
    に第3条件を発生させる段階と;第3ポインタと第4ポ
    インタを比較し、前記第3ポインタが前記第4ポインタ
    に等しい場合に第4条件を発生させる段階と;前記第1
    ポインタと前記第3ポインタを比較し、前記第1ポイン
    タが前記第3ポインタに等しく前記第3条件が存在する
    場合に第1条件を発生させ、前記第1ポインタが前記第
    3ポインタに等しく前記第4条件が存在する場合に前記
    第2条件を発生させる段階とによって構成されることを
    特徴とする先入れ先出し方法の第1及び第2条件を定め
    るための方法。
  35. 【請求項35】 第1カウンタ状態にするために第1n
    ビットカウンタをクロックする段階と;前記第1カウン
    タ状態から第2カウンタ状態を定める段階と; 第3
    カウンタ状態にするために第2nビットカウンタをクロ
    ックする段階と;前記第3カウンタ状態から第4カウン
    タ状態を定める段階と;前記第1、第2、第3及び第4
    カウンタ状態を前記第1,第2及び第3ポインターとす
    る段階とによって前記第1,第2,第3及び第4ポイン
    タが実行されることを特徴とする請求項34記載の方
    法。
  36. 【請求項36】 複数のカウンタ出力を出すためのクロ
    ック/ポインタ手段と;前記複数のカウンタ出力を受け
    るための、また前記複数のカウンタ出力のうちの最初の
    ものが前記第2カウンタ出力のうちの2番目のものに等
    しい場合に第3条件を発生させるための、また前記複数
    のカウンタ出力のうちの3番目のものが前記複数のカウ
    ンタ出力のうちの4番目のものに等しい場合に第4条件
    を発生させるための、また前記第1カウンタ出力が前記
    第3カウンタ出力に等しく前記第3条件が存在する場合
    に前記第1条件を発生させるための、また前記第1カウ
    ンタ出力が前記第3カウンタ出力に等しく前記第4条件
    が存在する場合に前記第2条件を発生させるための状況
    手段とを含むことを特徴とする先入れ先出し装置の第1
    または第2条件を定めるための装置。
  37. 【請求項37】 前記カウンタ出力の最初の数が、第1
    nビットカウンタを含むリードポインタによって与えら
    れることを特徴とする請求項36記載の装置。
  38. 【請求項38】 前記第1nビットカウンタが、3ビッ
    トのグレイコードカウンタであることを特徴とする請求
    項37記載の装置。
  39. 【請求項39】 前記カウンタ出力の2番目の数が、第
    2nビットカウンタを含むライトポインタによって与え
    られることを特徴とする請求項37記載の装置。
  40. 【請求項40】 前記第2nビットカウンタが3ビット
    のグレイコードカウンタであることを特徴とする請求項
    39記載の装置。
  41. 【請求項41】 前記第1条件が、前記先入れ先出し装
    置が空のときに存在することを特徴とする請求項36記
    載の装置。
  42. 【請求項42】 前記第2条件が、前記先入れ先出し装
    置が満杯のときに存在することを特徴とする請求項36
    記載の装置。
  43. 【請求項43】 前記第3条件が、前記先入れ先出し装
    置がほぼ空のときに存在することを特徴とする請求項3
    6記載の装置。
  44. 【請求項44】 前記第4条件が、前記先入れ先出し装
    置がほぼ満杯のときに存在することを特徴とする請求項
    36記載の装置。
  45. 【請求項45】 前記記憶手段によって最初に受取られ
    たデータが前記記憶手段によって最初に送出されるデー
    タとなるようにデータを受取り、送出するための記憶手
    段と;前記記憶手段がデータを受取っているときに前記
    記憶手段にクロック信号を出すための、また複数の第1
    カウンタ出力を出すための第1手段と;前記記憶手段が
    データを送出しているときに前記記憶手段にクロック信
    号を出すための、また複数の第2カウンタ出力を出すた
    めの第2手段と;前記第1及び第2カウンタ出力を受け
    るためと、前記先入れ先出し装置が第1条件にあるとき
    に第1出力信号を出し、前記先入れ先出し装置が第2条
    件にあるときは第2出力信号を出すための第1ロジック
    手段と;前記第1及び第2カウンタ出力を受けるため
    の、また第3カウンタ出力を出すための第2ロジック手
    段と;複数のバースト長さからのデータの最大バースト
    長さLを指定するための第1入力信号と;前記第1入力
    信号、前記第3カウンタ出力、さらに前記第1及び第2
    出力信号を受けるための、また前記長さLのバーストが
    前記記憶手段に与え、前記記憶手段から送出することの
    できる時を制御するための第3ロジック手段とを含むこ
    とを特徴とする先入れ先出し装置。
  46. 【請求項46】 前記第3ロジック手段がまた、前記先
    入れ先出し装置が第3条件にあるとき第3出力信号を出
    し、前記先入れ先出し装置が第4条件にあるとき第4出
    力信号を出すことを特徴とする請求項45記載の先入れ
    先出し装置。
  47. 【請求項47】 前記第3条件が、前記先入れ先出し装
    置内に1xビットバイトだけが残っているときに存在す
    ることを特徴とする請求項46記載の先入れ先出し装
    置。
  48. 【請求項48】 前記第4条件が、前記先入れ先出し装
    置内に1xビットバイト分の空間だけが残っているとき
    に存在することを特徴とする請求項46記載の先入れ先
    出し装置。
  49. 【請求項49】 前記第3カウンタ出力が、2進法によ
    って得られることを特徴とする請求項45記載の先入れ
    先出し装置。
  50. 【請求項50】 前記第1条件が、第3条件が存在し前
    記第1カウンタ出力のうちの最初のものが前記第2カウ
    ンタ出力のうちの最初のものに等しいとき存在し、また
    前記第2条件が、第4条件が存在し前記第1カウンタ出
    力のうちの前記最初のものが前記第2カウンタ出力のう
    ちの前記最初のものに等しいとき存在することを特徴と
    する請求項45記載の先入れ先出し装置。
  51. 【請求項51】 前記第3条件が、前記第1カウンタ出
    力のうちの前記最初のものが前記第2カウンタ出力のう
    ちの2番目のものに等しいとき存在し、また前記第4条
    件が、前記第2カウンタ出力のうちの前記最初のものが
    前記第1カウンタ出力のうちの2番目のものに等しいと
    き存在することを特徴とする請求項50記載の先入れ先
    出し装置。
  52. 【請求項52】 前記第1条件が、前記先入れ先出し装
    置が空であるとき存在し、また前記第2条件が、前記先
    入れ先出し装置が満杯であるとき存在することを特徴と
    する請求項45記載の先入れ先出し装置。
  53. 【請求項53】 前記第1及び第2手段が、それぞれ第
    1及び第2nビットカウンタを含むことを特徴とする請
    求項50記載の先入れ先出し装置。
  54. 【請求項54】 前記第1及び第2nビットカウンタ
    が、3ビットのグレイコードカウンタであることを特徴
    とする請求項53記載の先入れ先出し装置。
  55. 【請求項55】 前記複数のバースト長さが、1,2,
    4及び8バイトを含むことを特徴とする請求項45記載
    の先入れ先出し装置。
  56. 【請求項56】 前記記憶手段が複数の記憶素子を含
    み:複数のビット幅zを有する複数のワードを含む前記
    データと;最大ビット幅を有するワードがビット幅wを
    有するような前記データと;1つの素子の幅が少なくと
    もw+yビットであり、ここで2y≧zであり、wビッ
    トを用いて前記データを記憶し、yビットを用いて前記
    素子に記憶する前記データの幅を表示するような前記複
    数の記憶素子とを含むことを特徴とする請求項45記載
    の先入れ先出し装置。
  57. 【請求項57】 前記複数の記憶素子が複数レジスタを
    含むことを特徴とする請求項56記載の先入れ先出し装
    置。
  58. 【請求項58】 z=2、w=16及びy=1であるこ
    とを特徴とする請求項56記載の先入れ先出し装置。
  59. 【請求項59】 前記複数レジスタの数が8であること
    を特徴とする請求項57記載の先入れ先出し装置。
JP24233292A 1991-09-10 1992-09-10 先入れ先出し装置及び先入れ先出し方法 Expired - Fee Related JP3434837B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/757,476 US5469398A (en) 1991-09-10 1991-09-10 Selectable width, brustable FIFO
US07/757,476 1991-09-10

Publications (2)

Publication Number Publication Date
JPH0793127A true JPH0793127A (ja) 1995-04-07
JP3434837B2 JP3434837B2 (ja) 2003-08-11

Family

ID=25047975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24233292A Expired - Fee Related JP3434837B2 (ja) 1991-09-10 1992-09-10 先入れ先出し装置及び先入れ先出し方法

Country Status (5)

Country Link
US (1) US5469398A (ja)
JP (1) JP3434837B2 (ja)
KR (1) KR100311076B1 (ja)
DE (1) DE4230195A1 (ja)
GB (1) GB2259592A (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3106872B2 (ja) * 1994-09-02 2000-11-06 株式会社日立製作所 画像処理プロセッサ及びそれを用いたデータ処理システム
US5673396A (en) * 1994-12-16 1997-09-30 Motorola, Inc. Adjustable depth/width FIFO buffer for variable width data transfers
US5826093A (en) * 1994-12-22 1998-10-20 Adaptec, Inc. Dual function disk drive integrated circuit for master mode and slave mode operations
US5696990A (en) * 1995-05-15 1997-12-09 Nvidia Corporation Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area
US5638535A (en) * 1995-05-15 1997-06-10 Nvidia Corporation Method and apparatus for providing flow control with lying for input/output operations in a computer system
US5623449A (en) * 1995-08-11 1997-04-22 Lucent Technologies Inc. Flag detection for first-in-first-out memories
US5809280A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation Adaptive ahead FIFO with LRU replacement
KR970029070A (ko) * 1995-11-04 1997-06-26 김광호 입출력데이타의 크기를 달리하는 선입선출메모리장치 및 그 방법
US5715476A (en) * 1995-12-29 1998-02-03 Intel Corporation Method and apparatus for controlling linear and toggle mode burst access sequences using toggle mode increment logic
US6058439A (en) * 1997-03-31 2000-05-02 Arm Limited Asynchronous first-in-first-out buffer circuit burst mode control
US6185637B1 (en) * 1998-04-15 2001-02-06 Advanced Micro Devices, Inc. System for implementing an adaptive burst length for burst mode transactions of a memory by monitoring response times for different memory regions
US6052745A (en) * 1998-06-12 2000-04-18 International Business Machines Corporation System for asserting burst termination signal and burst complete signal one cycle prior to and during last cycle in fixed length burst transfers
JP4182575B2 (ja) * 1998-11-09 2008-11-19 ソニー株式会社 記憶装置および画像データ処理装置
US6529945B1 (en) * 1999-07-26 2003-03-04 International Business Machines Corporation Data buffer management between two different systems
DE10108922B4 (de) * 2001-02-23 2013-01-31 Rohde & Schwarz Gmbh & Co. Kg Elektronische Speicheranordnung
US6950887B2 (en) * 2001-05-04 2005-09-27 Intel Corporation Method and apparatus for gathering queue performance data
DE10204369A1 (de) * 2002-02-02 2003-08-14 Leica Microsystems Verfahren zur Datenverarbeitung in einem Scanmikroskop mit schnellem Scanner und Scanmikroskop mit schnellem Scanner
US20050188125A1 (en) * 2004-02-20 2005-08-25 Lim Ricardo T. Method and apparatus for burst mode data transfers between a CPU and a FIFO
FR2889328B1 (fr) * 2005-07-26 2007-09-28 Atmel Nantes Sa Sa Dispositif d'interfacage unidirectionnel de type fifo entre un bloc maitre et un bloc esclave, bloc maitre et bloc esclave correspondants
US20150378812A1 (en) * 2014-06-26 2015-12-31 Emulex Corporation System and Method for Error Recovery in an Asynchronous FIFO
KR102412609B1 (ko) 2017-11-03 2022-06-23 삼성전자주식회사 내부 커맨드에 따른 어드레스에 대한 저장 및 출력 제어를 수행하는 메모리 장치 및 그 동작방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3763480A (en) * 1971-10-12 1973-10-02 Rca Corp Digital and analog data handling devices
US4258418A (en) * 1978-12-28 1981-03-24 International Business Machines Corporation Variable capacity data buffer system
ATE173348T1 (de) * 1989-10-03 1998-11-15 Advanced Micro Devices Inc Speichervorrichtung

Also Published As

Publication number Publication date
GB9218304D0 (en) 1992-10-14
US5469398A (en) 1995-11-21
JP3434837B2 (ja) 2003-08-11
KR930006554A (ko) 1993-04-21
DE4230195A1 (de) 1993-03-11
GB2259592A (en) 1993-03-17
KR100311076B1 (ko) 2002-02-19

Similar Documents

Publication Publication Date Title
JP3434837B2 (ja) 先入れ先出し装置及び先入れ先出し方法
US6012106A (en) Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
US7415567B2 (en) Memory hub bypass circuit and method
EP2472403B1 (en) Memory arbitration system and method having an arbitration packet protocol
US6604179B2 (en) Reading a FIFO in dual clock domains
US5465343A (en) Shared memory array for data block and control program storage in disk drive
US5526508A (en) Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer
US8099567B2 (en) Reactive placement controller for interfacing with banked memory storage
US5448709A (en) Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations
JP3290650B2 (ja) メモリ制御装置
US20020184453A1 (en) Data bus system including posted reads and writes
JPH04287261A (ja) データ転送制御装置および磁気ディスク制御装置
US7165126B2 (en) Direct memory access device
US6502173B1 (en) System for accessing memory and method therefore
JPH02120960A (ja) データを転送するためのおよびデータ転送周期の期間を減少させるための方法
JPS5832417B2 (ja) デ−タ転送制御方式
JPS6226055B2 (ja)
US5829043A (en) Coupler circuit and its use in a card and process
JP3151416B2 (ja) データ転送制御装置および磁気ディスク装置
EP0718771B1 (en) DMA logic unit architecture
JPH02158824A (ja) ディスク装置の記憶制御装置
JPH0743668B2 (ja) アクセス制御装置
JPS6269347A (ja) ダイレクトメモリアクセスコントロ−ラ
JPH05143524A (ja) カウンタ制御方式
JPH02103655A (ja) リクエストバッファ制御方式

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080530

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090530

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090530

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100530

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees