JP4060097B2 - 自己同期型fifoメモリ装置および非同期型情報処理装置 - Google Patents

自己同期型fifoメモリ装置および非同期型情報処理装置 Download PDF

Info

Publication number
JP4060097B2
JP4060097B2 JP2002062107A JP2002062107A JP4060097B2 JP 4060097 B2 JP4060097 B2 JP 4060097B2 JP 2002062107 A JP2002062107 A JP 2002062107A JP 2002062107 A JP2002062107 A JP 2002062107A JP 4060097 B2 JP4060097 B2 JP 4060097B2
Authority
JP
Japan
Prior art keywords
data
signal
terminal
self
input
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 - Fee Related
Application number
JP2002062107A
Other languages
English (en)
Other versions
JP2003263883A (ja
Inventor
拓司 釆山
学 小野崎
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2002062107A priority Critical patent/JP4060097B2/ja
Priority to US10/376,639 priority patent/US6941434B2/en
Publication of JP2003263883A publication Critical patent/JP2003263883A/ja
Application granted granted Critical
Publication of JP4060097B2 publication Critical patent/JP4060097B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • 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
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Description

【0001】
【発明の属する技術分野】
この発明は自己同期型FIFOメモリ装置、これを用いたデータ転送用インターフェイスを有するシステムおよび非同期型情報処理装置に関し、特にFIFOメモリ装置に対するデータの入出力制御方式に関する。
【0002】
【従来の技術】
クロックに同期してパイプラインデータ処理を行う論理回路は、通常論理回路LSIとして構成される。これら論理回路LSIは、年々高速化と大規模化、微細化が進み、配線長の長大化と配線間隔の縮小が行われていて、配線の直列抵抗と他配線との間の並列容量が大きくなってきている。このため、信号の遅延と波形なまりが大きくなってきているが、この影響は配線の長さによって大きくばらつく。このため、チップ全体にランダムに配置されたすべてのフリップフロップへの配線長を揃えることは難しく、同位相の単一クロックの分配が困難になってきている。
【0003】
この問題を回避するために、チップ全体に、等遅延となるよう多段階の木構造にバッファを配置したクロックツリーを発生させる必要があるなど、そのコストが増大している。そのため、隣接するパイプラインレジスタの間で局所的に同期を取り合い、同位相の単一クロックが不要な自己同期型のパイプラインを持つ論理回路が検討されている。
【0004】
自己同期型パイプラインでは、パイプラインからの出力データを後続の装置が受け取れない状態にあるなどの理由によって、パイプラインの出力端において一時的にデータ転送が停止させられると、パイプラインの入力端に向かって連鎖的にデータ転送が停止させられ、パイプラインの出力端において再びデータ転送が可能になるまで待機することになる。その過程において、通常はある程度の間隔をおいて流れるパイプライン内のデータがその間隔を詰めることで自律的な緩衝能力を示すが、その緩衝能力を超えた場合にはパイプラインの入力端において一時的にデータを受け取れない状態を招く。
【0005】
この場合、パイプラインにFIFOメモリ装置を挿入して緩衝能力を強化することが望ましい。また、自己同期型パイプライン構成をもつ2つの異なるシステム間でデータを転送する場合、特に2つのシステムにおいてデータ転送レートが異なるような場合には、2つのシステムの間にFIFOメモリ装置を挿入して、一方のシステムがFIFOメモリ装置にデータを書き込み、他方のシステムがFIFOメモリ装置からデータを読み出すというように、互いに独立な書き込み/読み出し要求によってデータ転送が行われることが望ましい。
【0006】
従来技術として、自己同期型パイプラインの自律的な緩衝能力を活用したFIFOメモリ装置の一例を図13に示す。図13において、FIFOメモリ装置は、パイプラインを構成するレジスタ81,82,83と、互いにハンドシェイクをしながらパイプラインレジスタにクロックを供給する自己同期型転送制御回路84,85,86とから構成される。以降、自己同期型転送制御回路をC素子、1つのC素子とそのC素子が供給するクロックで動作する1つのパイプラインレジスタの組を自己同期型データ伝送路と記す。
【0007】
次に、図13におけるC素子84,85,86の内容の一例を図14に示す。図14において、C素子は前段の転送要求信号(SEND信号)を入力するCI信号端子91と、CI信号端子91からの転送要求を受け取ったことを示すアクノリッジ信号(ACK信号)を前段に返すRO信号端子92と、CI信号からの転送要求によりレジスタへクロックパルスを送出するCP信号端子93と、前段からの転送要求を次段に伝えるCO信号端子94と、CO出力端子からの転送要求が次段に受け取られたことを示すアクノリッジ信号が返されるRI信号端子95と、転送要求受付状態を保持するフリップフロップ96と、フリップフロップ96,98の同期をとるNANDゲート97と、次段への転送要求状態を保持するフリップフロップ98とからなる。
【0008】
図15は、このC素子の動作を示すタイミングチャートである。パルス入力端子CIから「L」レベル信号が入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ96はセットされ、その出力ノードから「H」レベル信号を出力する。これにより、転送許可出力端子ROからは「L」レベル信号が出力され、さらなるデータ転送が禁止される。
【0009】
一定時間後、パルス入力端子CIから「H」レベル信号が入力され、前段部から当該C素子へのデータのセットが終了する。この状態であり、かつ転送許可入力端子RIから「H」レベル信号が入力されている、すなわち、後段部からデータ転送を許可されている状態で、かつパルス出力端子COが「H」レベル信号を出力しており、後段部へデータ転送している途中ではない状態であるならば、NANDゲート97はアクティブとなり「L」レベル信号を出力する。
【0010】
その結果、フリップフロップ96とフリップフロップ98はともにリセットされ、パイプラインレジスタへのパルス出力端子CPから「H」レベル信号が出力され、後段部へのパルス出力端子COから「L」レベルのSEND信号が出力される。すなわち、後段部へデータ転送が要求される。「L」レベルのSEND信号を受けた後段のC素子は、該C素子に対してさらなるデータ転送が行われないように禁止を示す「L」レベルのACK信号を送る。該C素子は転送許可入力端子RIから、この「L」レベルのACK信号を入力し、フリップフロップ98がセットされる。その結果、パイプラインレジスタへのパルス出力端子CPから「L」レベル信号が出力され、また後段部へのパルス出力端子COから「H」レベルのSEND信号が出力され、データ転送を終了する。
【0011】
図13におけるパイプラインの1段目のC素子84へ転送要求パルスCIが入力され、同じく1段目のパイプラインレジスタ81へ、処理データDが入力される。これにより転送要求受付状態を保持するC素子84内のフリップフロップ96がセットされ、アクノリッジ信号ROが返される。これによりC素子84のCIが「H」レベルに戻り、C素子84内のNANDゲート97が「L」レベルを出力し、次段への転送要求を保持するC素子84内のフリップフロップ98がセットされ、またフリップフロップ96がクリアされる。
【0012】
C素子84のパイプラインレジスタ81へのクロックCPが「H」レベルとなり、これによりパイプラインレジスタ81に入力データDがラッチされ、ノードQに出力される。また、C素子84のCO端子に次段への転送要求パルスが出力される。このパルスは図13の2段目のパイプラインを構成するC素子85に入力され、C素子84と同様の動作を行うことで、パイプラインレジスタ81から出力されたデータQが2段目のパイプラインレジスタ82へラッチされ、ノードQへ出力される。C素子86もC素子84,85と同様の操作を行い、2段目のパイプラインレジスタ82から出力されたデータを3段目のパイプラインレジスタ83がラッチし、出力データ端子Qに出力する。
【0013】
従来技術としての自己同期型FIFOメモリ装置の別の例を図16に示す。この例は図13の自己同期型データ伝送路(C素子とその対となるパイプラインレジスタの組)をn個直列に接続した構成である。図16に示す回路において、n個のデータを入力し(書き込み)、FIFOが満杯状態になった後、n個のデータを出力する(読出し)手順の動作を図17に示すタイミングチャートを参照しながら説明する。
【0014】
まず、FIFO空状態からデータをn個連続して入力する手順の説明をする。端子CIからの「L」パルス信号入力12−1(書き込みクロック)とともに、1個目のデータDATA1を端子Dより入力すると、図15で説明したようにC素子114は後段のC素子115とハンドシェイク動作を行い、1個目の入力データDATA1を2段目のパイプラインレジスタ112へ転送する。この際、DATA1が後段のデータ伝送路に正常に転送されたことを示す「L」レベルのパルス信号12−2が端子ROから出力される。
【0015】
具体的に説明すると、RO信号が「H」レベルから「L」レベルに立ち下がることは、前段からの入力データを受け付けたことを示し、「L」レベルから「H」レベルに立ち上ることは受け付けたデータを後段へ転送する作業を終了したことを示す。
【0016】
2段目のデータ伝送路のC素子115も同様の動作を行い、3段目のパイプラインレジスタにDATA1が転送される。3段目以降のC素子も同様の動作を行い、n段目のデータ伝送路までDATA1が転送される。n段目のC素子も通常の転送動作を行い、n段目のパイプラインレジスタ113にDATA1をラッチし、端子COから「L」レベル信号12−3を出力するとともに、データ出力端子QからDATA1を出力する。
【0017】
また、端子COが「L」信号を出力している状態が、読み出すデータが存在することを示している(読み出しデータ準備完了状態)。この状態において、端子RIから「L」レベルパルス信号(読み出しクロック)を入力することで、端子COが「H」レベルに立上がりDATA1読み出し動作が完了するが、ここでは端子RIの入力信号は「H」レベル固定にされている。すなわち、FIFO内にデータが1個(DATA1)蓄えられた状態を維持させておく。
【0018】
次に、端子CIからの「L」レベルのパルス信号入力12−6(書き込みクロック)とともに、2個目のデータDATA2を端子Dより入力すると、DATA2はDATA1と同様に後段のパイプラインレジスタへと転送されていく。ただし、最終段のパイプラインレジスタ113にはDATA1が格納されており、最終段のC素子116の端子roからは「L」レベル信号が出力されており、さらなるデータ転送が禁止されているため、入力データDATA2は最終段の一段手前の(n−1)段目のパイプラインレジスタに格納された状態で維持される。
【0019】
同様にして、端子RIからの入力は「H」レベルに保たれたまま、データが次々に入力される。そして、端子CIからの書き込みクロック12−8とともに、n個目のデータDATA nを端子Dより入力すると、DATAnは1段目のパイプラインレジスタ111に格納されるが、2段目のパイプラインレジスタ112にはDATA(n−1)が格納された状態であるため、すなわち2段目のC素子115の端子roからはデータ転送禁止を示す「L」レベル信号を出力しているため、これ以上のデータ転送は行われない。これと同様に1段目のパイプラインレジスタ111もデータ格納状態であるため、これ以上の入力データは受け付けない。すなわち、1段目のC素子114の端子ro、そしてそのroと接続されている端子ROからはデータ転送禁止を意味する「L」レベル信号が出力される。この状態がFIFO満杯状態である。
【0020】
次に、FIFO満杯状態からデータをn個読み出す手順について説明する。端子RIからの「L」レベルのパルス信号入力12−10(読み出しクロック)が入力されると、最終段のC素子116は端子coからDATA1のデータ転送動作終了を示す「H」レベル信号12−11を出力し、また端子roから前段のC素子にデータ転送を許可する「H」レベル信号が出力される。(n−1)段目のC素子は、このデータ転送許可を示す「H」レベル信号を端子riから受け取り、DATA2をn段目のパイプラインレジスタ113に転送し、読み出しデータ準備完了状態(12−13)になる。
【0021】
同様にして、DATA3からDATAnまでのデータも1段ずつ後段のパイプラインレジスタに転送される。その結果、1段目のパイプラインレジスタ111が空き状態になり、端子ROからはFIFOに空きがあることを示す「H」レベル信号が出力される(12−12)。
【0022】
さらに、端子RIから読み出しクロックを(n−1)個入力することで、DATA2からDATAnまでのデータを読み出すことができる(12−14)。なお、n個目のデータDATAnを読み出した際に端子COは「H」レベル信号を出力するが、この時点でFIFOが完全に空状態になるので端子COからは「H」が出力されつづける(12−15)。
【0023】
したがって、図16の回路は、FIFOが空の状態であることを確認するエンプティフラグの役割を端子COが、またFIFOが満杯の状態であることを確認するフルフラグの役割を端子ROが果たしているので、一方から書き込みクロック、他方から読み出しクロックが非同期で独立に入力されるような2つの外部装置間に容易に挿入できる。
【0024】
【発明が解決しようとする課題】
自己同期型FIFO装置の役割は2つの異なるクロックで動作するシステム間でのデータ転送をスムーズに行うことであり、従来技術で紹介した自己同期型FIFO装置は、FIFOへの書き込み、FIFOからの読み出しが独立に行えるため、この役割を充分果たしている。
【0025】
しかしながら、従来の自己同期型FIFO装置を非同期型データ駆動情報処理装置と汎用システムとのインターフェースとして利用する場合を考えると、たとえば図18に示すような、非同期型データ駆動情報処理装置30からのデータを自己同期型FIFO装置41がバスを介してメモリ42へDMAコントローラ43によってDMA転送する場合において、自己同期型FIFO装置41には大容量のデータを格納できると効率がよくなる。従来技術で示した自己同期型FIFO装置が大容量のデータを格納可能にするには、格納する最大データ数分、データ伝送路を直列に接続する構成をとるため回路規模が大きくなってしまう。さらにFIFO内データ空状態/満杯状態を管理するエンプティフラグ(図19に示すCO)/フルフラグ(図19に示すRO)の信号伝播遅延が大きくなるため、システム系全体の遊び時間が増大する。
【0026】
たとえば、図18に示すシステムにおける自己同期型FIFOメモリ装置41に、従来技術による自己同期型FIFOメモリ装置を採用する場合を考える。図18は、自己同期型FIFOメモリ装置41を利用して、非同期型データ駆動情報処理装置30をCPUバスとインターフェースさせた例であり、非同期型データ駆動情報処理装置30で演算処理されたデータが自己同期型FIFOメモリ装置41に蓄積されていき、FIFO内がデータ満杯状態になると、DMAコントローラ43により蓄積されたデータが自己同期型FIFOメモリ装置41からメモリ42へまとめてDMA転送されるシステムである。バスから非同期型データ駆動情報処理装置30に入力されたデータは、入力制御装置31によりどのnPEにデータを転送するのか決定される。Router32は決定された行先のnPEにデータを転送する。
【0027】
nPE1,nPE2,…,nPEnは、データ演算処理部であり、転送されたデータはnPEにて、演算処理が実行されRouter32を介して出力制御装置33に転送される。出力制御装置33はこのデータを入力制御装置31を介して再度nPEに転送するか、自己同期型FIFOメモリ装置41に出力するか決定する。自己同期型FIFOメモリ装置41は、非同期型データ駆動情報処理装置30から入力されるデータを蓄積し、自己同期型FIFOメモリ装置41がデータ満杯状態になる(図16に示すRO信号が「L」レベルに固定される)と、DMAコントローラ43から自己同期型FIFOメモリ装置41へ読み出しクロックをまとめて入力し(図16に示すRI端子から「L」パルス信号をまとめて入力)、DMA転送を実行する。
【0028】
しかし、FIFO内が満杯状態になった(図16に示すRO信号が「L」レベルに固定される)瞬間から1個目のデータが読み出され(図16に示すRI端子から「L」レベルパルス信号が入力され)、書き込み禁止状態が解除される(図16に示すRO信号が「H」レベルに立上がる)までは、データ書き込み(出力制御装置から自己同期型FIFOメモリ装置41へのデータ転送)がしたくても実施できない。読み出しクロック(RI端子から「L」レベルパルス信号)が入力されてからRO信号が「H」レベルに立上がるまでの時間が長いため、すなわちRO信号の伝播遅延が大きいため、書き込み禁止時間も大きくなり、システムとして無駄な時間が発生する。
【0029】
このシステムが遊ぶ時間を減少させるためには、FIFO内が完全に物理的な満杯状態になる前にまとめてデータを読み出すバースト読み出しが行えるように論理的な満杯状態を示すフルフラグを別途FIFO装置が出力できるようにしたい(ここで、物理的な満杯状態とはFIFOが格納可能な最大データ数分、データを格納している状態で、論理的な満杯状態とはユーザがFIFOに対して外部から指定したデータ数分、FIFOがデータを格納している状態である)。こうすることで、書き込み禁止状態でなく、かつフルフラグを出力するといったことが可能となり、FIFOへのデータの書き込み、FIFOからのデータの読み出しが平行に実行できるためシステムが遊ぶ時間を減少させることができる。
【0030】
別の例として、図19に示すシステムにおける自己同期型FIFOメモリ装置に、従来技術による自己同期型FIFOメモリ装置を採用する場合を考える。図19は、効率的なデータ転送を目的とした自己同期型FIFOメモリ装置54を利用して、CPU51、メモリ52、入出力インターフェース53から構成されるメディアプロセッサ50をPCIバスと接続した例であり、CPU51で演算処理されメモリ52に格納されたデータが自己同期型FIFOメモリ装置54にバースト書き込みされていき、FIFO内がデータ満杯状態になると、DMAコントローラ57により蓄積されたデータが自己同期型FIFOメモリ装置54からメモリ56へまとめてバースト読み出しされるシステムである。
【0031】
PCIバスから入出力インターフェース53を経由してメディアプロセッサ50に入力されたデータはCPU51で処理され、処理結果がメモリ52へ格納される。自己同期型FIFOメモリ装置54にデータがまったく格納されていない空状態(図16に示すCO信号が「H」レベルに固定される)であると、CPU51によりメモリ52に格納されているデータがFIFOへバースト転送され書き込まれる(図16に示すCO信号が「L」になる)。バースト書き込みが幾度か行われた結果、FIFOがデータ満杯状態になる(図16に示すRO信号が「L」レベルに固定)。これをDMAコントローラ57が受け、FIFOからメモリ56へバースト読み出しが開始される(図16に示すRO信号が「H」レベルになる)。
【0032】
バースト読み出しが幾度か行われた結果、FIFOがデータ空状態になると、再びメモリ52からFIFOへバースト書き込みが行われる。このようなFIFOに対してバースト書き込み、バースト読み出しの両方を行うシステムにおいては、バースト書き込み中は読み出しができず、またバースト読み出し中は書き込みができないため、システムの遊び時間が発生する。
【0033】
このシステムが遊ぶ時間を減少させるためには、図18の例でも示したようなFIFO内が完全に満杯状態になる前に、ユーザがFIFOに対して指定した満杯状態(論理的な満杯状態)であると認識させるため、フルフラグ閾値とFIFO内が完全に空状態(FIFO内に格納されているデータがない物理的な空状態)になる前に、ユーザがFIFOに対して指定した空状態(論理的な空状態)であると認識させるためのエンプティ閾値をFIFOに対して与えることができれば、データ転送効率が上がる。
【0034】
図19の例でフルフラグ閾値とエンプティフラグ閾値の2種類の閾値をFIFOに与え、FIFO内のデータ数がフルフラグ閾値よりも大きくなるまで、バースト書き込みを行い、FIFO内のデータ数がエンプティフラグ閾値よりも小さくなるまで、バースト読み出しを行うといった利用方法が考えられる。すなわち、FIFO内のデータ数がエンプティフラグ閾値よりも大きく、フルフラグ閾値よりも小さい状態で、バースト書き込みとバースト読み出しが平行に実行でき、効率のよいデータ転送が可能となりシステムが遊ぶ時間を減少させることができる。また、フルフラグ閾値とエンプティフラグ閾値をカスタマイズすることで、バースト書き込み単位個数とバースト読み出し単位個数がそれぞれ異なるシステム間にも対応可能である。
【0035】
しかしながら、従来のFIFOメモリ装置ではFIFO内に格納されている正確なデータ数を知る手段がないため、バースト書き込み/バースト読み出しを精密に制御するのは難しい。
【0036】
図20は従来における類似の技術として特開平10−105375号公報に記載されている非同期式FIFO回路を示すブロック図である。この図20に示した非同期式FIFO回路は、外部装置との間で非同期にデータの入出力を行うFIFO回路である。ライト制御回路63から所定数のデータを第1のFIFO61に書き込むと、書き込んだデータ数を第2のFIFO62内に格納し、次にリード制御回路64によりカウンタ65内の書き込みデータ数情報に基づき、そのデータ数の分、第1のFIFO61からデータをまとめて読み出すと、読み出したデータ数を第2のFIFO62内に格納し、次に書き込み側から読み出しデータ数情報に基づき、そのデータ数の分、第1のFIFO61にデータをまとめて書き込む回路である。
【0037】
したがって、図20に示した非同期式FIFO回路は、データをまとめて書き込んだ数、もしくはデータをまとめて読み出した数のいずれかのみの情報を第2のFIFO62内に格納する回路であるため、バースト書き込みを実現するならバースト書き込み実行用の回路、バースト読み出しを実現するならバースト読み出し実行用の回路といった具合に使い分けないといけない。また、これに付随するが、バースト書き込み、バースト読み出しを平行に実行できない。さらに、大容量のデータを格納できるようにFIFOメモリを拡張する際、回路規模が大きくなるという問題がある。
【0038】
図21は特開平10−214174号公報に記載された非同期式FIFO回路である。この非同期FIFO回路は、フル状態/エンプティ状態を判定する際の書き込み信号と読出し信号の同期化を不要として、書き込み/読み出しの高速化を実現するとともに、デコード処理を除去して、フル状態/エンプティ状態の誤認識を排除することを目的としたものである。
【0039】
この回路も外部装置との間で非同期にデータの入出力を行うFIFO回路であり、フルフラグ/エンプティフラグを備えている。レジスタファイル71は外部からの複数ビットのデータの入力を受けて、書き込み制御信号を介して格納するとともに、格納された複数ビットのデータを読み出し制御信号を介して選択し、外部からの読み出し信号を介して複数ビットの読み出しデータとして出力する。
【0040】
書き込みポインタ72は外部からの書き込み信号に同期した書き込みアドレス信号を生成し、書き込み回路73がその書き込みアドレス信号と外部からの書き込み信号に応じてレジスタファイル71にデータを書き込む。読み出しポインタ74は外部からの読み出し信号に同期した読み出しアドレス信号を生成し、読み出し回路75がその読み出しアドレス信号に応じてレジスタファイル71からデータを読み出す。
【0041】
フル/エンプティ識別回路76は外部からの書き込み信号の反転信号と読み出し信号の反転信号を受けて、内部に含まれるシフトレジスタブロックのフルまたはエンプティを示すフラグを生成して出力する。
【0042】
しかしながら、このフルフラグ/エンプティフラグは物理的な満杯状態/空状態を示すものであるため、図18および図19の例で示したようなシステムの遊ぶ時間が発生する。また大容量のデータを格納できるように拡張する際、図16に示す回路と同様、回路規模が大きくなるうえ、さらにフル/エンプティの信号遅延も大きくなるため、正常な動作を保証しつつ、書き込みと読み出しの非同期な要求を並行に処理するのは難しい。これらの制約から、2つの装置間に緻密なデータ入出力制御可能で、かつ大容量のFIFOメモリ装置が必要とされるシステムにおいて、上記の非同期式FIFOメモリ装置を挿入することは容易ではない。
【0043】
それゆえに、この発明の主たる目的は、2つの外部装置間に容易に挿入することができる大容量のFIFOバッファ装置であり、自己同期型FIFOメモリ装置内の正確なデータ数を把握して確実な連続アクセスを保証し、アクセス効率の高い自己同期型FIFOメモリ装置を提供することである。
【0044】
【課題を解決するための手段】
この発明に係るFIFOメモリ装置は、自己同期型転送制御回路を1つ以上有する先入れ先出しメモリ装置であって、第1の外部装置からの書き込み要求信号と、第2の外部装置からの読み出し要求信号とのタイミング調整を行う調停回路と、外部からの書き込み要求/読み出し要求に従って、データ書き込み/データ読み出しを行うメモリセルアレイ部と、外部からの書き込み要求/読み出し要求に従って、メモリセルアレイ部に入力する書き込みアドレス/読み出しアドレスを計算する機能と、FIFO内に格納している正確なデータ数をカウントする機能とを備えた状態管理回路を備えることを特徴とする。
【0045】
また、自己同期型転送制御回路はレジスタ回路あるいはメモリセルアレイ部とともにデータ伝送路を成し、各データ伝送路は自己同期型転送制御回路を介したパイプラインを構成することを特徴とする。
【0046】
また、メモリセルアレイを含むデータ伝送路の前段には、調停回路を介してレジスタ回路を含む少なくとも2段のデータ伝送路が備えられ、その一方には書き込み要求信号が入力され、他方には読み出し要求信号が入力されることを特徴とする。
【0047】
メモリセルアレイを含むデータ伝送路の後段には、さらに少なくとも1段のレジスタ回路を含むデータ伝送路がパイプライン接続され、FIFO内にデータが存在する限り後段のデータ伝送路側へデータを伝送するようパイプラインが構成されることを特徴とする。
【0048】
また、状態管理回路は読み出し要求あるいは書き込み要求信号を監視することによりFIFO内に存在するデータ数を計数および保持し、データ数と予め設定されるフル状態データ数閾値およびエンプティ状態閾値からデータフルおよびデータエンプティ信号を出力することを特徴とする。
【0049】
各々異なるタイミング信号で動作する第1および第2の外部装置間のデータ経路にこの発明の自己同期型FIFOメモリ装置が挿入されるシステムにおいて、一方の外部装置はデータフル信号が非活性状態である限り自己同期型FIFOメモリ装置へ連続して書き込み要求し、他方の外部装置はデータエンプティ信号が非活性である限り自己同期型FIFOメモリ装置へ連続して読み出し要求を行うことを特徴とする。
【0050】
演算処理回路を構成するパイプライン間のキューバッファとして、この発明の自己同期型FIFOメモリ装置を用いたことを特徴とする。
【0051】
【発明の実施の形態】
以下、添付した図面を参照して本発明の一実施例を詳細に説明する。
【0052】
図2は、この発明の一実施形態による自己同期型FIFOメモリ装置を含むシステムのブロック図であり、図1は、図2に含まれる自己同期型FIFOメモリ装置の一例である。図3は図1に示したC素子の一例を示すブロック図である。
【0053】
図2において、自己同期型FIFOメモリ装置21は第1の外部装置22と、第2の外部装置23との間に挿入され、外部装置22から外部装置23へデータを転送する役割を担う。外部装置22は、C素子とパイプラインレジスタからなるデータ伝送路24を最終段にもち、自己同期型FIFOメモリ装置21に対して自発的なデータ転送を行う。すなわち、最終段のデータ伝送路24がデータを持っている状態で、かつ、書き込み可能フラグ28が「H」レベルで自己同期型FIFOメモリ装置21にデータを格納するスペースがある状態ならば、外部装置22は自動的に書き込みクロック25を自己同期型FIFOメモリ装置21に入力し、データDを自己同期型FIFOメモリ装置21へ転送する。
【0054】
外部装置23は、自己同期型FIFOメモリ装置21からの読み出しデータ存在フラグRDY26が「H」レベルであれば、読み出しクロック27を入力することで読み出しデータQを受け取る。自己同期型FIFOメモリ装置21は、外部装置22から受け取ったデータを外部装置23へ転送するだけでなく、外部から設定されたフルフラグ閾値TH_FUL、エンプティフラグ閾値TH_EMPと、FIFOメモリ装置内格納データ数に基づいて、フルフラグFUL、エンプティフラグEMPを外部装置23へ出力する。すわなち、FIFOメモリ装置内格納データ数がフルフラグ閾値TH_FULよりも大きくなると、フルフラグFULから「H」レベルを、またエンプティフラグ閾値TH_EMPよりも小さくなると、エンプティフラグEMPから「H」レベルを出力する。
【0055】
外部装置22は、前述した自発的なデータ転送を行う装置である必要はなく、能動的に書き込みクロックを入力する装置であってもよい。また、外部装置23は、必ずしも能動的に読み出しクロックを入力する装置である必要はなく、自発的にデータ転送が行われる装置であってもよい。
【0056】
次に、図1に示す自己同期型FIFOメモリ装置21について詳細に説明する。図1において、端子CIは外部装置22からの書き込み要求信号を受け、端子ROは外部装置22に対して書き込み可能フラグを出力する。端子CIは1段目のC素子15の端子ciと接続され、また、端子ROは書き込み可否データ保持レジスタ118の出力ノードQと接続される。C素子15は、「L」レベルに固定されている1ビットと32ビットデータ格納用フリップフロップからなるパイプラインレジスタ16とともに1段目のデータ伝送路を形成する。端子RDYは外部装置23へ読み出しデータ存在フラグを出力し、端子RCKは外部装置23からの読み出し要求信号を受ける。
【0057】
端子RCK、RDYは最終段である5段目のC素子115の端子riと、インバータ113経由でcoと接続される。C素子115は、パイプラインレジスタ117とともに最終段(5段目)のデータ伝送路を形成する。また、端子RCKは1段目の他方のC素子12の端子ciにも接続され、パイプラインレジスタ13(「H」固定の1ビット)とともにもう1つの1段目のデータ伝送路を形成する。32ビットデータを2046個格納するRAM110、次ステート関数119で決定されるRAMへの書き込みアドレス(Write Pointer、以後W.P.と記す)/読み出しアドレス(Read Pointer、以後R.P.と記す)、FIFOメモリ装置内データ数(Word Count、以後W.C.と記す)、満杯状態フラグ(FUL)、空状態フラグ(EMP)を管理する状態保持レジスタ111、書き込み可否データ保持レジスタ118、そしてパイプラインレジスタ121は、2段目のC素子18とともに2段目のデータ伝送路を形成する。
【0058】
C素子18は他のC素子とは異なってデータ消去機能をもっており、exb端子に「L」が入力されているときは、後段のC素子19とのデータ転送ハンドシェイクは行わない。C素子18の一実施例の回路を図3に示す。一方、exb端子に「H」レベル信号が入力されているときは、通常のデータ転送ハンドシェイクを行う。
【0059】
状態保持レジスタ111は、端子RSTから入力される非同期リセット信号(「L」信号)によって、次の初期値がセットされる。すなわち、書き込みアドレス(W.P.)、読み出しアドレス(R.P.)、FIFOメモリ装置内データ数(W.C.)はすべて0、EMPフラグは1、FULフラグは0をそれぞれ初期値とする。書き込み可否データ保持レジスタ118は、その入力ノードRSTに、C素子15のro端子からの「L」レベル信号が入力されると、すなわち非同期リセットがかかると端子ROへ「L」レベル信号を出力し、C素子18のcp端子からの「H」レベルのパルス信号が入力されると、次ステート関数119から入力されるデータ書き込み許可信号IEを受け取り、端子ROへ出力するレジスタである。
【0060】
調停回路14は、1段目の2つのC素子12および15とともに合流回路11を形成し、1段目のデータ伝送路から2段目のデータ伝送路へのデータ転送と、他方の1段目のデータ伝送路から2段目のデータ伝送路へのデータ転送が重ならないようにデータ転送のタイミングを調整している。すなわち、端子CIからの書き込み要求クロック(「L」レベルパルス信号)と、端子RCKからの読み出し要求クロック(「L」レベルパルス信号)とがほぼ同時に入力されたとき、その「L」レベルパルス信号の立下りが他方の「L」パルス信号の立下りよりも早く入力されたC素子12もしくはC素子15が、C素子18とハンドシェイクを行う。
【0061】
このハンドシェイクによるデータ転送が終了した後に、他方のC素子12もしくはC素子15がC素子18とハンドシェイクを行う。合流回路11の一実施例による回路を図4に示す。また、図4で使用されているサブモジュールc120jの一例による回路を図5に示し、サブモジュールarbの一例による回路を図6にそれぞれ示す。特開平2−1666号公報にはこの合流回路と類似の技術が開示されているので、合流回路11の説明は割愛する。
【0062】
C素子19は、32ビットデータ格納用パイプラインレジスタ112とともに3段目のデータ伝送路を形成し、同様にC素子114はパイプラインレジスタ116とともに4段目のデータ伝送路を形成する。セレクタ17は、端子CIから書き込みクロックが入力されると、パイプラインレジスタ16の1ビットの「L」レベル固定信号を、また端子RCKから読み出しクロックが入力されると、パイプラインレジスタ13の1ビットの「H」レベル固定信号を次ステート関数119へR/W信号(Read:1、Write:0)として出力する。
【0063】
次ステート関数119は、セレクタ17から入力されるR/W信号と、状態保持レジスタ111から入力される自己同期型FIFOメモリ装置内データ数(Word count)に応じて、後述の図10および図11に示す操作を行う。この操作に関しては、後で説明する。セレクタ120は、次ステート関数119から出力されレジスタ121に格納されるPASSフラグに従って、レジスタ121に格納された32ビットデータを出力するか、もしくはRAM110から読み出された32ビットデータを出力するかを選択するものである。
【0064】
端子TH_FUL/TH_EMPは、FIFOメモリ装置内データ数の満杯状態/空状態を判定するための基準値を外部から受け、端子FUL/EMPはTH_FUL/TH_EMP、FIFOメモリ装置内データ数によって、次ステート関数119内で満杯状態/空状態を判定した結果を出力する。
【0065】
図7,図8および図9は、図1に示した自己同期型FIFOメモリ装置の動作を説明するためのタイミングチャートである。
【0066】
次に図7〜図9に示すタイミングチャートを参照しながら、図1の自己同期型FIFOメモリ装置の動作を説明する。自己同期型FIFOメモリ装置にデータがまったく書き込まれていない空の状態から、端子CIから2048個の書き込みクロック(「L」パルス信号)を入力して32ビットのデータを2048個書き込み、自己同期型FIFOメモリ装置内のデータが満杯状態になった後、端子RCKから2048個の読み出しクロック(「L」パルス信号)を入力して32ビットデータを2048個読み出す手順において、図7はFIFOメモリ装置内にデータがない空状態からデータを数個書き込む部分、図8はデータを書き込んでFIFOメモリ装置が満杯状態になった後、データを数個読み出す部分、そして図9はデータを数個読み出した結果、FIFOメモリ装置内が空状態になる部分のタイミングチャートをそれぞれ示している。また、端子CIから入力する書き込みクロック、端子RCKから入力する読み出しクロックが共に周期30ns(動作周波数33MHz)で入力したときのものである。TH_EMP端子は3、TH_FUL端子は2046に設定している。
【0067】
図7に示す通り、自己同期型FIFOメモリ装置のデータが0個の初期状態(RSTリセット信号入力直後)時は読み出すデータが存在しないので、読み出しデータ存在フラグRDYは「L」レベルとなっている。また、状態保持レジスタ内にあるW.C.フィールド(自己同期型FIFOメモリ装置内のデータ数)の値は「0」を示している。この状態から1個目のデータ(データ値0)を書き込むと、すなわち端子CIから1個目の書き込みクロック(「L」レベルパルス信号)を入力する(図7: TIME1)と、C素子15は図15に示す通常の転送動作を行い、C素子15のcp端子から「H」レベルパルス信号が出力される。パイプラインレジスタ16は、この「H」レベルパルス信号を受け、端子Dから入力された1個目の32ビットデータ(データ値0)と、1ビット信号(値は0で後にR/W信号として運ばれる)をラッチし、後段のデータ伝送路に出力する。
【0068】
C素子15のco端子からはデータ転送要求パルス(「L」レベルパルス信号)が出力され、調停回路14はこの「L」レベルパルス信号をC素子18のci端子に伝送し、またC素子18のro端子からのデータ転送許可信号を、C素子15のri端子に伝える。同時に、調停回路14のaeb端子からはC素子15からデータ入力があったことを示す0が出力され、セレクタ17はこの信号0を受け取り、パイプラインレジスタ16から入力された1ビット信号(信号値0)をR/W信号として次ステート関数119とRAM110へ出力する。
【0069】
次ステート関数119は、このR/W信号(信号値0)と状態保持レジスタ111からのWrite Pointer(W.P.初期値0)、Read Pointer(R.P. 初期値0)、Word Count(W.C.初期値0)信号を受け取り、図10および図11に示す状態遷移表に基づいた演算を行う。すなわち、この場合は図10のCASE(A)に相当し、W.P.とR.P.は入力されたままの値である「0」を、W.C.は1を加算した結果である「1」を状態保持レジスタ111に向けて出力する。また端子TH_EMPからは「3」、端子TH_FULからは2046が入力されているので、図11のCASE(J)・(M)に相当し、FUL信号として「0」、EMP信号として「1」を状態保持レジスタ111へ出力する。これらと同時にC素子18へデータ消去信号EXBとして「1」を、パイプラインレジスタ121へ通過データ信号PASSとして「1」を、そして書き込み可否データ保持レジスタ118へデータ書き込み許可信号IEとして「1」をそれぞれ出力する。
【0070】
C素子18は、C素子15のco端子からの「L」レベルパルス信号を受け取るが、exb端子には「H」レベル信号が入力されているので、データ消去は行わずに図15に示すタイミングの通常のデータ転送を行う。その結果、C素子18のcp端子から「H」レベルパルス信号が出力される。この「H」レベルパルス信号を、次に挙げる4種類のレジスタおよびメモリが受け取り、動作する。すなわち、パイプラインレジスタ121は次ステート関数119からのPASS信号1と、パイプラインレジスタ16が出力する32ビットの書き込みデータ(データ値0)をラッチし、それぞれセレクタ120へと出力する。
【0071】
RAM110はセレクタ17が出力するR/W信号0(書き込みを示す)と、次ステート関数119が出力するアドレス信号ADDR(値はW.P.値である0)、そしてパイプラインレジスタ16が出力する32ビットの書き込みデータ(データ値0)を受け取り、メモリアドレス0番地に32ビットデータ(データ値0)を書き込む。しかしながら、このデータは次の書き込みクロックによって入力されるデータに上書きされるので意味をもたない。状態保持レジスタ111は、次ステート関数119が出力するW.P./R.P./W.C./FUL/EMPの5種類の値をラッチし、W.P./R.P./W.C.に関しては次ステート関数119へ出力し、FUL/EMPに関しては端子FUL/EMPへ出力する。書き込み可否データ保持レジスタ118は、次ステート関数119が出力するIE(値1)をラッチし、端子ROへ出力する。その結果、端子ROからは「H」が出力され、次の書き込みクロックを受け取る準備ができたことになる(図7のTIME2)。
【0072】
次に、C素子18のco端子から「L」レベルパルス信号がC素子19のci端子に入力され、C素子19はC素子18と同様、図15に示される通常の転送動作を行う。セレクタ120には、PASS信号1が入力されるため、パイプラインレジスタ121から入力される32ビットデータ(データ値0)を選択し、パイプラインレジスタ112へ出力する。C素子19は通常の転送動作により、そのcp端子から「H」パルス信号を出力する。パイプラインレジスタ112はこの「H」レベルパルス信号を受け取り、セレクタ120から入力される32ビットデータ(データ値0)をラッチし、パイプラインレジスタ116へ出力する。C素子19のco端子からは「L」レベルパルス信号がC素子114のci端子に転送され、C素子114はC素子19と同様の転送動作を行い、1個目の書き込みデータ(データ値0)をパイプラインレジスタ116がラッチし、パイプラインレジスタ117へ出力する。
【0073】
C素子115のci端子は、C素子114のco端子からの「L」レベルパルス信号を受け、C素子114のri端子に「L」レベルパルス信号を出力するとともに、cp端子から「H」信号を出力する。パイプラインレジスタ117は、C素子115のcp信号の立上がりにて、1個目の書き込みデータ(データ値0)をラッチして、出力端子Qへ出力する。また、C素子115のco端子からは「L」が出力される。ここまでは、C素子19やC素子114など通常の転送動作と同様の振るまいである。しかしながら、端子RCKから読み出しクロックを入力しないので、C素子115のri端子は「H」レベル信号が入力され続け、cp端子からは「H」レベル信号、co端子からは「L」レベル信号が出力されつづけた状態となる。読み出しデータ存在フラグ端子RDYからは、インバータ113を介してC素子115のco端子の「L」レベル信号の反転である「H」レベル信号が出力され、読み出すデータが存在することを示す(図7:TIME3)。
【0074】
したがって、書き込みクロックにより入力した1個目の書き込みデータ(データ値0)は、2段目のパイプラインにあるRAMを迂回して、最終段(5段目)のパイプラインレジスタに保持された状態になる。
【0075】
端子CIからの書き込みクロックにより端子Dから入力された2個目の書き込みデータ(データ値1)は、図10のCASE(B)に示すとおり1個目の書き込みデータと同様にW.C.をインクリメントし、RAMを迂回して後段のパイプラインレジスタへと転送されていく。パイプラインレジスタ117には1個目の書き込みデータ(データ値0)が保持されている状態なので、C素子114とC素子115の間でデータ転送ハンドシェイクは行われず、その結果2個目の書き込みデータ(データ値1)はパイプラインレジスタ116まで運ばれ、ここで保持された状態を維持することになる。
【0076】
3個目の書き込みデータ(データ値2)からは、自己同期型FIFOメモリ装置の動作が少し異なってくる。書き込みクロックにより、3個目のデータが端子Dから入力されると、次ステート関数119には、W.C.値「2」、W.P.値「0」、R.P.値「0」、R/W値「0」が入力されているので、図10のCASE(C)に従ってRAMへのアドレス値ADDRとしてW.P.値「0」を、C素子18へEXB値「0」を、書き込み可否データ保持レジスタ118へIE値「1」を出力する。また、状態保持レジスタ111へW.C.とW.P.をそれぞれインクリメントした値(W.C.=3,W.P.=1)とR.P.は入力されたそのままの値「0」を出力する。
【0077】
これらは次の書き込み要求、または読み出し要求があったときに使用されるものである。C素子15のco端子からのデータ転送要求パルス(「L」レベルパルス信号)をC素子18のci端子が受け取ると、C素子18はro端子からデータ受け付け完了パルス(「L」レベルパルス信号)をC素子15のri端子に出力するとともに、cp端子から「H」レベルパルス信号を出力する。このcp端子からの「H」レベルパルス信号の立上がりにより、RAM110はアドレス0番地に32ビットデータ(データ値2)を書き込み、状態保持レジスタ111は次ステート関数119が出力しているW.P./R.P./W.C./FUL/EMP信号をラッチし、書き込み可否データ保持レジスタ118は次ステート関数119から出力されるIE値「1」をラッチし、端子ROへ出力する。
【0078】
C素子18は、そのexb端子から0(「L」信号)が入力されているので、co端子から出力される「L」パルス信号をri端子に入力する(図5参照)。その結果、C素子19のci端子へは「L」パルス信号を出力せず(「H」信号を出力し続け)、すなわちC素子19へのデータ転送は行わず、2段目のパイプラインでデータが消去された形となる(データを消去しているが、RAMには書き込んでいる)。
【0079】
これ以降の書き込みデータに関しても、前述の3個目のデータ書き込みと同様の動作を行う。すなわち、端子CIから書き込みクロックとともに書き込みデータを入力すると、端子ROから「L」レベル信号を出力して更なるデータ書き込みを禁止した上で、インクリメントされたRAMの書き込みアドレスにデータを書き込み、転送データを消去し、端子ROから「H」レベル信号を出力して次の書き込みデータ入力を許可する。書き込みデータ値は任意であるが、ここでは1ずつインクリメントした値を入力している。
【0080】
なお、4個目以降のデータ書き込み時は、次ステート関数119の入力信号状態は図11のCASE(K),(M)に相当するため、端子EMP、端子FULはともに「L」レベル信号を出力する(図7:TIME4)。また、2046個目〜2048個目のデータ書き込み時は、次ステート関数119の入力信号状態は図11のCASE(K),(L)に相当するため、端子EMPは「L」レベル信号、端子FULは「H」レベル信号を出力する(図8:TIME5)。
【0081】
次に、2048個目の書き込みデータを入力したときのFIFOメモリ装置の動作を説明する。端子CIから書き込みクロックとともに2048個目の書き込みデータ(データ値2047)を入力すると、端子ROから「L」レベル信号が出力されてさらなるデータ書き込みが禁止される(図8:TIME6)。図10CASE(D)に示される操作を次ステート関数119が行い、入力されたデータ(データ値2047)はRAMの書き込みアドレス2045番地に書き込まれる。C素子18はexb端子に「0」を受け取るので、データ消去動作を行う。また、書き込み可否データ保持レジスタ118は次ステート関数119からIE値0を受け取り、端子ROへ「L」レベル信号を出力する。すなわち、更なるデータ書き込みを禁止した状態を保ち(図8:TIME7)、データ数2048個を満杯状態に設定する。端子RCKから読み出しクロック(「L」レベルパルス信号)が入力されるまで端子ROは「L」レベル信号を出力し続ける。
【0082】
1個目のデータはパイプラインレジスタ117に、2個目のデータはパイプラインレジスタ116に、3個目のデータから2048個目のデータまではRAM110に格納された状態を満杯状態としているが、この状態から今度は2048個のデータすべてを読み出す動作について説明する。
【0083】
端子RCKから1個目の読み出しクロック(「L」レベルパルス信号)を入力すると、C素子115のri端子に「L」レベルパルス信号が入力される。C素子115のcp端子からは「H」レベル信号、co端子からは「L」レベル信号が出力され続けている。すなわち、外部へのデータ転送の途中の状態でri端子に入力される「L」レベル信号により、C素子115のcp端子は「L」レベルに立下り、co端子は「H」レベルに立上がり、1個目のデータ読み出し(データ値0)を正常に終了する。また、端子RDYは「L」レベルに立下り(図8:TIME8)、読み出しデータが最終段パイプラインレジスタ117に存在しないことを示す。
【0084】
C素子115の端子ri(端子RCK)からの入力が「H」レベルに立上がると、次のデータ出力が許可されたことになり、パイプラインレジスタ116に格納されていた2個目の書き込みデータ(データ値1)が、C素子115のcp端子の「H」レベルへの立上がりによりパイプラインレジスタ117に転送され、出力端子Qから出力される。また、co端子からはデータ転送中を示す「L」レベル信号を出力するため、インバータ113を介して端子RDYは再び「H」レベルに立上がり、最終段のパイプラインレジスタに読み出しデータが存在することを示す。
【0085】
一方、端子RCKから入力した1個目の読み出しクロック(「L」レベルパルス信号)は、C素子12のci端子にも入力される。これにより、C素子12のcp端子から「H」レベルパルス信号が出力され、1ビットレジスタ13は、「1」をラッチし、セレクタ17へ「1」を出力する。調停回路14は端子RCKの「L」レベルパルス信号、C素子12のcp端子からの「H」レベルパルス信号を受け、C素子12とC素子18とのハンドシェイクを成立させるとともに、端子aebからは「1」を出力する。すなわち、C素子12のco端子からのデータ転送要求信号(「L」レベルパルス信号)がC素子18のci端子に入力される。セレクタ17は1ビットレジスタ13からの信号値「1」を選択し、R/W信号としてRAM110、次ステート関数119へ出力する。
【0086】
次ステート関数119は、W.P.値「2045」、R.P.値0、W.C.値「2048」、R/W値「1」が入力されているので、図10CASE(I)に示される操作を行う。すなわち、RAM110へのアドレスADDRとしてR.P.値「0」を、C素子18へEXB信号値「1」を、書き込み可否データ保持レジスタ118へIE値「1」を、データレジスタ121へPASS信号「0」を、状態保持レジスタ111へW.P.値「2045」(入力値を維持)、R.P.値「1」(入力値に「1」加算)、W.C.値「2047」(入力値から「1」減算)を出力し、また図11:CASE(O),(P)の操作により、FUL値「1」、EMP値「0」を出力する。
【0087】
C素子18のci端子が、調停回路14を介してC素子12のco端子から「L」レベルパルス信号を受け取ると、次ステート関数119からexb信号1が入力されているので、C素子18は図10に示されるタイミングの通常の転送動作を行う。その結果、C素子18のcp端子からは「H」レベルパルス信号が出力される。この「H」レベルパルス信号を次に示す4種類のレジスタおよびメモリが受け取り、それぞれ動作する。すなわち、RAM110はセレクタ17からのR/W信号値「1」(読み出し)、次ステート関数119からのADDR値「0」を受けて、0番地に格納されているデータ(3個目に書き込んだデータ)を読み出し、セレクタ120へ出力する。パイプラインレジスタ121は、次ステート関数119からのPASS値「0」をラッチし、セレクタ120へ出力する。状態保持レジスタ111は次ステート関数119からの5つの信号W.P./R.P./W.C./FUL/EMPをラッチし、W.P./R.P./W.C.を次ステート関数119へ、FUL/EMPを端子FUL、端子EMPへ出力する。書き込み可否データ保持レジスタ118は次ステート関数119からのIE値「1」をラッチし、端子ROへ出力する(図8:TIME9)。これにより、書き込み禁止状態が解除される。
【0088】
セレクタ120はパイプラインレジスタ121からPASS信号値「0」を受け取るので、0番地のメモリから読み出された32ビットデータ(データ値「2」)を選択し、パイプラインレジスタ112へ出力する。パイプラインレジスタ117にはデータが格納されているので、メモリから読み出されたデータはC素子19、114の転送動作によって、パイプラインレジスタ116まで運ばれ、パイプラインレジスタ116に保持された状態を維持する。
【0089】
端子RCKから2個目の読み出しクロック(「L」レベルパルス信号)を入力したときも、自己同期型FIFOメモリ装置は1個目の読み出しクロック入力時と同様の動作を行う。すなわち、パイプラインレジスタ117に保持されているデータを読み出し、パイプラインレジスタ116に保持されているデータをパイプラインレジスタ117に転送し、RAM110から前に読み出したデータの次の番地に格納されているデータを読み出してパイプラインレジスタ116まで運び、保持する。この動作を2046個目の読み出しクロック入力まで繰り返す(図8および図9)。2046個目の読み出しクロックを入力し、データ読み出しを完了すると、RAM110には読み出されるべきデータはなくなり、パイプラインレジスタ116,117に残りの読み出しデータ2個が保持された状態になっている。
【0090】
2047個目の読み出しクロックを端子RCKから入力する際、端子RCKが「L」レベルに立下ることで、パイプラインレジスタ117に保持されているデータ(データ値2046)の読み出しが完了する(図9:TIME10)。また、端子RCKが「H」レベルに立上がると、パイプラインレジスタ116に保持されているデータ(データ値2047)がパイプラインレジスタ117に転送され、読み出しデータ存在フラグRDYが立上がる(図9:TIME11)。
【0091】
一方、C素子12のci端子に入力される読み出しクロック(「L」レベルパルス信号)により、C素子12はC素子18とデータ転送ハンドシェイクを行うが、次ステート関数119が図10のCASE(H)の操作を行うため、C素子18のexb端子には「0」が入力される。これによりC素子18はデータ消去動作を行い、C素子19以降にデータ転送を要求しなくなる。
【0092】
2048個目の読み出しクロックを端子RCKから入力するときも、2047個目の読み出しクロックのときと同様、パイプラインレジスタ117に保持されているデータ(データ値2047)の読み出しが完了する(図9:TIME12)。これで、自己同期型FIFOメモリ装置内に読み出すデータがなくなったので、読み出しデータ存在フラグは「L」レベルを出力し続ける。
【0093】
一方、C素子12のci端子に入力される読み出しクロック(「L」レベルパルス信号)により、C素子12はC素子18とデータ転送ハンドシェイクを行うが、次ステート関数119が図10のCASE(G)の操作を行うため、C素子18のexb端子には0が入力される。これによりC素子18はデータ消去動作を行い、C素子19以降にデータ転送を要求しなくなる。
【0094】
自己同期型FIFOメモリ装置内に読み出すデータがなくなった状態において、端子RCKから読み出しクロックが入ってしまった場合でも、次ステート関数119が図10のCASE(F)の操作を行い、C素子18はデータ転送消去動作を行うため、間違った読み出しデータを生成してしまうといった誤動作を生じない。
【0095】
図1に示した回路は、この発明の自己同期型FIFOメモリ装置を実現するための一実施形態であり、図1における3段目から5段目の3つのパイプライン段を省略しても実現することは可能である。ただしその構成では、読み出しクロックを入力してから、読み出し要求は1段目パイプライン、2段目パイプラインと転送され、ようやくRAMからデータが読み出されるため、読み出し時間が長くなる。したがって、入力する読み出しクロックに対するデータ出力の反応を早くするためにも、また効率的な連続データ読み出しを行うためにも、図1に示すようにRAMを含むパイプライン2段目の後に、数段のデータ伝送路を配置することが望ましい。このようにすることで、次に読み出されるデータは常に最終段のパイプラインレジスタに格納された状態になるので、効率的なデータ読み出しが可能となる。
【0096】
また、図1の例で示した書き込み/読み出しデータ幅32ビット、RAMの大きさ2048ワード×32ビットも一例に過ぎず、この値である必要はない。任意の書き込み/読み出しデータ幅、任意の大きさのメモリに対しても適用できる。
【0097】
この発明による自己同期型FIFOメモリ装置は、外部から入力するフルフラグ閾値(TH_FUL)/エンプティフラグ閾値(TH_EMP)を用いて、その値より自己同期型FIFOメモリ装置内格納データ数が大きくなると、もしくは小さくなると、別途フルフラグ(FUL)/エンプティフラグ(EMP)を出力することができる。これを用いた応用例を次に説明する。
【0098】
次に、従来例で説明した図18を参照してこの発明の自己同期型FIFOメモリ装置を利用して、非同期型データ駆動情報処理装置をCPUバスとインターフェースさせた例について説明する。図18の応用例として、例えばDMAコントローラ43が256個のデータ単位で、自己同期型FIFOメモリ装置41からメモリ42へバースト転送させる場合を考える。
【0099】
フルフラグ(図1FUL)をDMAコントローラ43に接続し、フルフラグ閾値(図1TH_FUL)として256を与える。自己同期型FIFOメモリ装置41は、非同期型データ駆動情報処理装置30から入力されるデータを蓄積し、蓄積しているデータ数がフルフラグ閾値である「256」を超えると、すなわち論理的に満杯状態であると識別されるとフルフラグ「H」レベルをDMAコントローラ43へ出力する。DMAコントローラ43は、この「H」レベル信号を受けてバス使用権を獲得し、FIFOに蓄積された256個のデータをまとめてメモリ42へDMA転送する。この際、FIFO内は物理的に満杯状態ではないので、DMA転送処理(FIFOからのデータバースト読み出し)と平行して非同期型データ駆動情報処理装置30からデータを受け取る(FIFOへのデータ書き込み)ことが可能であり、システム系全体に無駄な遊び時間がなく効率的にデータ転送を行える。
【0100】
256個のDMA転送(データバースト読み出し)が終了した後、DMAコントローラ43はバス使用権を解放し、FIFOからのフルフラグを参照する。フルフラグが「L」レベルであれば待機し、「H」レベルであれば再度、バス使用権を獲得しDMA転送処理を行う。ここでは256個のDMA転送処理について紹介したが、この発明による自己同期型FIFOメモリ装置41を用いた、より効率の良いDMA転送処理を実行させる例を次に説明する。
【0101】
図18の別の応用例として、フルフラグ/エンプティフラグ(図1FUL/EMP)をDMAコントローラに接続し、エンプティフラグ閾値(図1TH_EMP)を256、フルフラグ閾値(図1TH_FUL)を「1024」に設定した場合を考える。DMAコントローラ43はフルフラグとして「H」レベル信号を受け取れば、バス使用権を獲得しDMA転送処理開始、エンプティフラグとして「H」レベル信号を受け取れば、バス使用権を解放しDMA転送処理終了するものとする。自己同期型FIFOメモリ装置41は、非同期型データ駆動情報処理装置30から入力されるデータを蓄積し、蓄積しているデータ数がフルフラグ閾値である「1024」を超えると、すなわち論理的に満杯状態であると識別されると「H」レベルのフルフラグをDMAコントローラ43へ出力する。
【0102】
DMAコントローラ43は、この「H」レベル信号を受けてバス使用権を獲得し、エンプティフラグとして「H」レベル信号を受け取るまで、FIFOに蓄積されたデータ256個を1セットとして、少なくとも4セットをメモリへDMA転送する。少なくともというのは、データをDMA転送処理している間にも、平行して非同期型データ駆動情報処理装置30から断続的にデータがFIFOに書き込まれているからである。たとえば、256個データを4セットDMA転送処理した後、エンプティフラグとして「H」レベル信号がFIFOからDMAコントローラ43へ入力されると、DMAコントローラ43はバス使用権を解放しDMA転送処理を終了させる。
【0103】
このようにこの応用例では、256個のデータ単位(1セット)でDMA転送させるためにエンプティフラグ閾値として「256」を、少なくとも4セット以上をまとめてDMA転送させるためにフルフラグ閾値として「1024」を設定することで、256個のデータをDMA転送させるごとにバス使用権を獲得している前の例よりも、バス使用権獲得、解放する回数を減らすことができ、バス使用権獲得、解放にかかる時間(オーバーヘッドタイム)が少ないより効率的なDMA転送(バースト転送)が行える。
【0104】
図12は非同期型データ駆動情報処理装置内の1つのプロセッサnPE内で、この発明の自己同期型FIFOメモリ装置をデータの緩衝を目的としたキューバッファの役割として利用した例である。非同期型データ駆動情報処理装置内のプロセッサnPEは、CST,FC,FP,PS といった各々異なる機能ブロックがリング状に接続された構成をしており、リングに入力されたデータはリングを一周する間に1つの演算処理が行われる。データが次々に入力された結果、リング内にデータが詰まった状態(満杯状態)になり、リング内のすべてのデータ転送が停止するといった事態が生じるおそれがある。ここで用いた自己同期型FIFOメモリ装置により、リング内を転送されるデータの許容数を上げ、データ処理が停止される事態を回避できる。
【0105】
次の応用例として従来例で説明した図19を参照して、効率的なデータ転送を目的としたこの発明の自己同期型FIFOメモリ装置を利用して、CPU、メモリ1、入出力インターフェース、ローカルバス(内部バス)から構成されるメディアプロセッサを外部のPCIバスと接続した例について説明する。
【0106】
入出力インターフェース53にこの発明の自己同期型FIFOメモリ装置を使用し、書き込みデータ単位64個のバースト書き込み、読み出しデータ単位256個のバースト読み出しを行うシステム例について説明する。
【0107】
自己同期型FIFOメモリ装置(図1)のフルフラグ(図1のFUL信号)をCPU51に、エンプティフラグ(図1のEMP信号)をDMAコントローラ57に接続し、ともに「L」アクティブとし、FUL信号、EMP信号が「L」レベルの場合に、バースト書き込み/バースト読み出しを実行するものとする。フルフラグ閾値(図1のTH_FUL端子)から「1980」を、エンプティフラグ閾値(図1のTH_EMP端子)から260をFIFOに与える。
【0108】
メディアプロセッサ50で大量のデータが処理され、メモリ52には大量のデータが格納されており、自己同期型FIFOメモリ装置54内には格納データがない空状態であるとする。このとき、FIFO内データ数は「0」であり、TH_FUL値「1980」、TH_EMP値「260」よりも小さいため、FIFOから「L」レベルのFUL信号がCPUへ、「H]レベルのEMP信号がDMAコントローラ57へ出力される。CPU51はこの「L」レベルのFUL信号を受け、メモリ52からFIFOへの64個単位のバースト書き込みを開始する。
【0109】
FIFO内データ数が260より大きくなると、FIFOから出力されるEMP信号が「L」レベルになり、DMAコントローラ57はこれを受け、FIFOからメモリ56への256個単位のバースト読み出しを開始する。この際、FIFOから出力されるFUL信号は「L」レベルであるため、引き続き64個単位のバースト読み出しを実行している。FIFO内格納データ数が「1980」より大きくなると、FIFOから「H」レベルのFUL信号と、「L」レベルのEMP信号とが出力され、メモリ52からFIFOへのバースト書き込みは停止される。FIFOからメモリ56へのバースト読み出しは引き続き実行される。
【0110】
このように、この発明によるFIFO装置は、異なるデータ単位のバースト書き込みとバースト読み出しに対応でき、さらにFIFO内格納データ数が、設定した2種類のフルフラグ閾値/エンプティフラグ閾値の間であれば、バースト書き込みとバースト読み出しを同時に実行できる。
【0111】
上述の実施形態では、自己同期型FIFOメモリ装置が満杯状態(書き込み禁止状態)であるとき、1個目の読み出しクロック(「L」パルス信号)の入力直後、すなわちRCKの立上がりから、書き込み禁止状態が解除されるまで、すなわちROの立上がりまで、約2.3nsである。これは従来技術で紹介した自己同期型FIFO回路(データ伝送路を2048個直列に接続した回路)の200倍以上早い反応である。なお、書き込み/読み出しクロックの周期は30nsである。
【0112】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0113】
【発明の効果】
以上のように、この発明によれば、大容量のデータ格納を所定段数のパイプラインで構成しているため、読み出しデータ存在フラグRDYと書き込みデータ許可フラグRO信号の伝播遅延を小さくでき、その結果、非同期で独立に入力される書き込み/読み出し要求に対して、正確な書き込み/読み出し動作を実現できる。特に自己同期型FIFOメモリ装置内が空状態でなくなる、自己同期型FIFOメモリ装置内が満杯状態でなくなるといった、RDYもしくはROの信号が変化するようなクリティカルな状態でも正常な動作を保証できる。
【0114】
また、回路規模としては従来の自己同期型FIFO回路の半分以下で構成できる。
【0115】
この発明の自己同期型FIFOメモリ装置は、自己同期型ハンドシェイク方式のデータ転送回路の技術を使って構成しているので、自己同期型ハンドシェイク方式の特徴である処理されるデータが入力されないときは動作をしない、すなわち無駄な消費電力を消費しないという利点を継承しつつ、先に述べた課題を解決できるものである。
【0116】
また、この発明の自己同期型FIFOメモリ装置は、Word Count(=W.C.)レジスタによってFIFO装置内の正確なデータ数をカウントしており、外部から入力するフルフラグ閾値(TH_FUL)/エンプティフラグ閾値(TH_EMP)を用いたフル/エンプティ判定が可能である。この判定により出力されたフルフラグ(FUL)/エンプティフラグ(EMP)を利用することで、データのバースト書き込み/バースト読み出しを平行に処理できる。
【0117】
この発明の自己同期型FIFOメモリ装置は、図12,図18および図19の応用例で示したように、様々なシステム間のインターフェースとして容易に挿入でき、比較的回路規模の小さい、大容量のデータを格納できる自己同期型FIFOメモリ装置であり、自己同期型FIFOメモリ装置内の正確なデータ数を把握して確実な連続アクセスを保証し、アクセス効率の高い自己同期型FIFOメモリ装置を実現できる。
【図面の簡単な説明】
【図1】 この発明に係る自己同期型FIFOメモリ装置の回路図である。
【図2】 図1の自己同期型FIFOメモリ装置を含むシステムのブロック図である。
【図3】 図1のC素子の構成を示すブロック図である。
【図4】 図1の合流回路の構成を示すブロック図である。
【図5】 図1に適用される自己同期型転送制御回路の回路図の一例を示す図である。
【図6】 図1に適用される調停回路(arb)の回路図の一例を示す図である。
【図7】 図1の自己同期型FIFOメモリ装置のタイミングチャートで、データ書き込みを始める部分である。
【図8】 図1の自己同期型FIFOメモリ装置のタイミングチャートで、データ書き込みで自己同期型FIFOメモリ装置が格納データ満杯状態になる部分である。
【図9】 図1の自己同期型FIFOメモリ装置のタイミングチャートで、データ読み出しで自己同期型FIFOメモリ装置が格納データ空状態になる部分である。
【図10】 図1の次ステート関数の動作を示す状態遷移表である。
【図11】 図1の次ステート関数の動作を示す状態遷移表である。
【図12】 この発明に係る自己同期型FIFOメモリ装置の利用例を示すブロック図である。
【図13】 自己同期型データ伝送路を縦列に接続した従来のFIFOメモリ装置の構成を示す図である。
【図14】 従来およびこの発明の実施の形態に適用される自己同期型転送制御回路(C素子)の回路図の一例を示す図である。
【図15】 図14の自己同期型転送制御回路(C素子)のタイミングチャートの一例を示す図である。
【図16】 自己同期型データ伝送路を縦列に接続した従来の自己同期型FIFO装置の構成を示す図である。
【図17】 図16の自己同期型FIFO装置のタイミングチャートの一例を示す図である。
【図18】 自己同期型FIFOメモリ装置の利用例を示す図である。
【図19】 自己同期型FIFOメモリ装置の他の利用例を示す図である。
【図20】 従来の非同期式FIFOバッファ装置のブロック図である。
【図21】 従来の非同期FIFO回路を示す図である。
【符号の説明】
11 合流回路、12,15,18,19,84,85,86,114,115 C素子、13,16,81,82,83,111,112,116,117,121 パイプラインレジスタ(Dタイプフリップフロップ)、14 調停回路、17,120 セレクタ、21 自己同期型FIFOメモリ装置、22 第1の外部装置、23 第2の外部装置、24 データ伝送路、25 書き込みクロック、26 読み出しデータ存在フラグ、27 読み出しクロック、28 書き込み可能フラグ、91 CI信号端子、92 RO信号端子、93 CP信号端子、94 CO信号端子、95 RI信号端子、96,98 RSフリップフロップ、97 4入力NANDゲート、110 RAM、111 状態保持レジスタ、113 インバータ、118 書き込み可否データ保持レジスタ、119次ステート関数、11−1,11−2,11−3,12−1,12−6,12−7,12−8 CI入力信号、12−2,12−9,12−12 RO出力信号、12−3,12−11,12−13,12−15 CO出力信号、12−5,12−10,12−14 RI入力信号、12−4 Q出力信号。

Claims (3)

  1. 自己同期型転送制御回路を1つ以上有する先入れ先出しメモリ装置であって、
    第1の外部装置からの書き込み要求信号と、第2の外部装置からの読み出し要求信号とのタイミング調整を行う調停回路と、
    前記外部からの書き込み要求/読み出し要求に従って、データ書き込み/データ読み出しを行うメモリセルアレイ部と、
    前記外部からの書き込み要求/読み出し要求に従って、前記メモリセルアレイ部に入力する書き込みアドレス/読み出しアドレスを計算する機能と、FIFO内に格納している正確なデータ数をカウントする機能とを備えた状態管理回路とを備え、
    前記自己同期型転送制御回路は、レジスタ回路あるいは前記メモリセルアレイ部とともにデータ伝送路を成し、
    各データ伝送路は前記自己同期型転送制御回路を介したパイプラインを構成し、
    前記メモリセルアレイ部を含むデータ伝送路の前段には、前記調停回路を介して前記レジスタ回路を含む少なくとも2段のデータ伝送路が備えられ、その一方には書き込み要求信号が入力され、他方には読み出し要求信号が入力され、
    前記メモリセルアレイ部を含むデータ伝送路の後段には、さらに少なくとも1段のレジスタ回路を含むデータ伝送路がパイプライン接続され、前記FIFO内にデータが存在する限り前記後段のデータ伝送路側へデータを伝送するようパイプラインが構成される、自己同期型FIFOメモリ装置。
  2. 前記状態管理回路は、読み出し要求あるいは書き込み要求信号を監視することにより前記FIFO内に存在するデータ数を計数および保持し、前記データ数と予め設定されるフル状態データ数閾値およびエンプティ状態閾値からデータフルおよびデータエンプティ信号を出力し、
    前記第1の外部装置は、前記データフル信号が非活性状態である限り前記自己同期型FIFOメモリ装置へ連続して書き込み要求し、前記第2の外部装置は前記データエンプティ信号が非活性である限り前記自己同期型FIFOメモリ装置へ連続して読み出し要求を行う、請求項1に記載の自己同期型FIFOメモリ装置。
  3. 演算処理回路を構成するパイプライン間のキューバッファとして、請求項1ないし2のいずれかに記載の自己同期型FIFOメモリ装置を用いたことを特徴とする、非同期型情報処理装置。
JP2002062107A 2002-03-07 2002-03-07 自己同期型fifoメモリ装置および非同期型情報処理装置 Expired - Fee Related JP4060097B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002062107A JP4060097B2 (ja) 2002-03-07 2002-03-07 自己同期型fifoメモリ装置および非同期型情報処理装置
US10/376,639 US6941434B2 (en) 2002-03-07 2003-03-03 Self-synchronous FIFO memory device having high access efficiency, and system provided with interface for data transfer using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002062107A JP4060097B2 (ja) 2002-03-07 2002-03-07 自己同期型fifoメモリ装置および非同期型情報処理装置

Publications (2)

Publication Number Publication Date
JP2003263883A JP2003263883A (ja) 2003-09-19
JP4060097B2 true JP4060097B2 (ja) 2008-03-12

Family

ID=29196050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002062107A Expired - Fee Related JP4060097B2 (ja) 2002-03-07 2002-03-07 自己同期型fifoメモリ装置および非同期型情報処理装置

Country Status (2)

Country Link
US (1) US6941434B2 (ja)
JP (1) JP4060097B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004071103A (ja) * 2002-08-08 2004-03-04 Sharp Corp 自己同期型fifoメモリ装置
KR101089324B1 (ko) * 2004-02-20 2011-12-02 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템
US7343502B2 (en) * 2004-07-26 2008-03-11 Intel Corporation Method and apparatus for dynamic DLL powerdown and memory self-refresh
US7620042B2 (en) * 2004-12-17 2009-11-17 Samsung Electronics Co., Ltd. Apparatus and method for inter-processor communications in a multiprocessor routing node
US7406564B1 (en) * 2005-08-23 2008-07-29 Altera Corporation Distributed FIFO
EP1938328A4 (en) * 2005-09-23 2008-12-03 Toronto Microelectronics Inc DATA STORAGE DEVICE AND METHOD
US7673091B2 (en) * 2007-04-24 2010-03-02 Texas Instruments Incorporated Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
JP5232429B2 (ja) * 2007-09-27 2013-07-10 株式会社ニューフレアテクノロジー 描画装置及び描画方法
JP5423483B2 (ja) 2010-03-04 2014-02-19 株式会社リコー データ転送制御装置
US10845488B2 (en) * 2014-10-21 2020-11-24 Topcon Positioning Systems, Inc. Universal multi-channel GNSS signal receiver
US9703526B2 (en) * 2015-03-12 2017-07-11 Altera Corporation Self-stuffing multi-clock FIFO requiring no synchronizers
US10387299B2 (en) * 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US11372585B2 (en) * 2020-05-05 2022-06-28 Micron Technology, Inc. Asynchronous process topology in a memory device
CN117407338B (zh) * 2023-12-15 2024-03-19 北京壁仞科技开发有限公司 用于数据传输同步的系统、方法及计算设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02201666A (ja) 1989-01-31 1990-08-09 Toshiba Corp メモリクリア回路
US5784377A (en) * 1993-03-09 1998-07-21 Hubbell Incorporated Integrated digital loop carrier system with virtual tributary mapper circuit
US5568443A (en) * 1995-09-08 1996-10-22 Smithills Multimedia Systems, Inc. Combination dual-port random access memory and multiple first-in-first-out (FIFO) buffer memories
JP2973941B2 (ja) 1996-09-27 1999-11-08 日本電気株式会社 非同期fifoバッファ装置
JP3013800B2 (ja) 1997-01-30 2000-02-28 日本電気株式会社 非同期fifo回路
US6772243B2 (en) * 2000-12-19 2004-08-03 Sun Microsystems, Inc. Apparatus and method for generating a partial fullness indicator signal in a FIFO
TWI227616B (en) * 2001-11-20 2005-02-01 Hitachi Ltd Packet communication device, packet communication system, packet communication module, data processor and data transmission system
US6671275B1 (en) * 2002-08-02 2003-12-30 Foundry Networks, Inc. Cross-point switch with deadlock prevention
JP2004071103A (ja) * 2002-08-08 2004-03-04 Sharp Corp 自己同期型fifoメモリ装置
WO2004047310A2 (en) * 2002-11-15 2004-06-03 Time Domain Corporation A system and method for processing signals in uwb communications

Also Published As

Publication number Publication date
US20030172242A1 (en) 2003-09-11
JP2003263883A (ja) 2003-09-19
US6941434B2 (en) 2005-09-06

Similar Documents

Publication Publication Date Title
JP4060097B2 (ja) 自己同期型fifoメモリ装置および非同期型情報処理装置
US5295252A (en) Data storage device
US6047339A (en) Buffering data that flows between buses operating at different frequencies
US6341318B1 (en) DMA data streaming
JP5429572B2 (ja) チェーン化デバイスシステムにおいてパラメータを設定し待ち時間を決定する方法
JP2002523857A (ja) 非同期型論理を用いたfifo
JP4891405B2 (ja) バリア操作の条件付き伝搬のための方法および装置
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
TWI528183B (zh) 使用資料傳輸率節流來執行序列ata連接的資料傳輸之方法、電腦可讀媒體和系統
US20050033875A1 (en) System and method for selectively affecting data flow to or from a memory device
US6684301B1 (en) Out of order execution memory access request FIFO
JP4576391B2 (ja) 不揮発性記憶ステージを備えたfifoメモリ装置
CN108984148B (zh) 一种基于同步fifo存储器的数据存储的方法及存储器
US7861039B1 (en) Distributed FIFO
US7822905B2 (en) Bridges capable of controlling data flushing and methods for flushing data
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
CN101174248A (zh) 利用直接存储器存取控制来传输数据的方法和装置
JP4569163B2 (ja) データ入出力装置およびデータ入出力方法
JP3013800B2 (ja) 非同期fifo回路
US20230087576A1 (en) Domain-selective control component
JP4696003B2 (ja) データ転送回路
EP1585024A1 (en) An improved on-chip storage memory for storing variable data bits
JP3592169B2 (ja) 非同期データ転送制御装置および非同期データ転送制御方法
JP2004071103A (ja) 自己同期型fifoメモリ装置
JP4514411B2 (ja) バス間通信インタフェース装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070731

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071219

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111228

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111228

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121228

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees