(57)【要約】  ＦＩＦＯメモリ装置（３００）は、複数の不揮発性記憶部又はラッチを有する不揮発性ＦＩＦＯである記憶装置（３２１）を有する。ＦＩＦＯメモリ装置（３００）はまた、揮発性ＦＩＦＯである入力ステージ（３１５）を有し、複数の揮発性記憶部を有する。入力ステージ（３１５）は、データの一時的な記憶をし、これにより記憶装置（３２１）の待ち時間を隠す。
2007522579.tif 000002
【特許請求の範囲】
【請求項１】
記憶ステージ及び入力ステージを有するＦＩＦＯメモリ装置であって、前記記憶ステージは、複数の不揮発性記憶部を有し、前記入力ステージは、複数の揮発性記憶部を有する、装置。
【請求項２】
請求項１に記載のＦＩＦＯメモリ装置であって、前記記憶ステージは、不揮発性ＦＩＦＯメモリ装置である、装置。
【請求項３】
請求項１又は２に記載のＦＩＦＯメモリ装置であって、前記入力ステージは、揮発性ＦＩＦＯメモリ装置を有する、装置。
【請求項４】
請求項１，２又は３に記載のＦＩＦＯメモリ装置であって、前記入力ステージ及び／又は記憶ステージの状態を監視する手段をさらに有する装置。
【請求項５】
請求項４に記載のＦＩＦＯメモリ装置であって、前記監視する手段は、エンプティ空間の数を示すカウンタを含む、装置。
【請求項６】
請求項１ないし５のうちいずれか１つに記載のＦＩＦＯメモリ装置であって、前記入力ステージ及び記憶ステージは、直列接続されている、装置。
【請求項７】
請求項１ないし６のうちいずれか１つに記載のメモリ装置を少なくとも１つ有する集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＩＦＯメモリ装置に関する。
【背景技術】
【０００２】
現在の集積回路は、多数の小さなオンチップバッファを含む。多数のこうしたバッファは、プロセッシングコア、汎用プロセッサ（例えばＡＲＭＴＭ又はＭＩＰＳＴＭ）、ディジタル信号処理器（ＤＳＰ）、特定用途向けプロセッサ（ＡＳＰ）又は他のハードウェアコアなどの知的所有権ブロック（ＩＰ）を切り離すために用いられる。このような切り離しバッファは、先入れ先出し（ＦＩＦＯ）動作を有するのが普通であり、或るシステムには２００を超える数のＦＩＦＯバッファがあるものもある。このため、領域を大幅に縮減し当該バッファの速度を向上させた専用のハードウェアＦＩＦＯが用いられる。
【０００３】
ダイナミックなものとスタティックなものの２つの知られたタイプのハードウェアＦＩＦＯがある。ダイナミックＦＩＦＯは、限定された量の時間においてのみデータを記憶し、その後にリフレッシュされない場合にはデータを損失するというものである。スタティックＦＩＦＯは、永続的にデータを記憶する。
【０００４】
ダイナミックＦＩＦＯは、スタティックＦＩＦＯよりも小さいものであるが、データを保存するためにＦＩＦＯはリフレッシュされなければならず、これにはリフレッシュ信号などを発生する余分なロジックが含まれるのに対し、スタティックＦＩＦＯは、サイズが大きいがリフレッシュする必要なくデータを保存しこれにより余分なロジックを必要としない。条件に応じて、これらデバイスのどちらかが用いられる。
【０００５】
従来のＦＩＦＯの基本動作を図１及び図２に基づいて説明する。かかるＦＩＦＯにおいて、図１に示されるように、第１ステージ１０１がエンプティ（空）であるときにのみＦＩＦＯ１００の第１ステージ１０１にデータが書き込まれる。このデータは、ＦＩＦＯ１００の最後に使用されたステージ１０３の後ろに達するまでＦＩＦＯ１００を伝う。読み出しに際しては、図２に示されるように、当該ステージがエンプティでない場合にのみＦＩＦＯ２００の最終ステージ２０１からデータが伝送される。このエンプティ空間は、ＦＩＦＯ２００における最後に使用されたステージ２０３の後までＦＩＦＯ２００を伝わる。
【０００６】
データがＦＩＦＯを伝搬するのには有限の時間が掛かる。したがって、読み取りの間ＦＩＦＯを通じてホールすなわちエンプティ空間が元のところに伝搬する有限の時間、すなわち当該空間が書き込みのために利用可能となるまで１ワードが読み出された後にかかる時間がある。これは、スタティックＦＩＦＯデバイスにとって該デバイスがパイプライン化されているので、特に問題となる。したがって、データがＦＩＦＯから読み出された後に利用可能となる箇所があると、この空間（又はホール）は、入力端において認識可能で書き込まれるべきデータが利用可能なものとなる前に当該パイプラインのステージの各々を通じて元のところに伝搬されなければならない。すなわち待ち時間を招くことになる。
【０００７】
一例として、ホールを伝搬するための時間がＦＩＦＯのパイプラインステージ当たり３６０ｐｓであると、サイズ３２のＦＩＦＯの場合、当該ＦＩＦＯメモリデバイスの「入力」端において空間が利用可能となるのに１１５２０ｐｓかかる。２００ＭＨｚで動作するシステム（すなわち５ｎｓクロック周期）では、これは３クロックサイクルの付加的待ち時間を意味する。５００ＭＨｚで動作するシステムでは、この付加的待ち時間は６サイクル分になると想定される。
【０００８】
このようなデバイスにおける待ち時間を改善する１つの既知の技術は、ＦＩＦＯに追加のステージを設けることである。この付加的ステージは、丁度、２００ＭＨｚシステムでは３つの付加的ステージが、５００ＭＨｚシステムでは６つの付加的ステージが、待ち時間隠しのために用いられる。しかしながら、これにより、バッファのコスト（Ｓｉ領域に関して）が増し、例えば２００ＭＨｚの場合には１０％のコスト増加、５００Ｍｚシステムの場合には２０％のコスト増加となる。追加されるステージの数は、ＦＩＦＯの長さ及び当該デバイスの動作の周波数に比例したものとなる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、待ち時間を改善するとともに装置のコストを最小化するＦＩＦＯメモリ装置を提供することである。
【課題を解決するための手段】
【００１０】
これは、不揮発性（又はスタティック型）ＦＩＦＯにおける待ち時間を隠すための付加的ステージにより達成され、これら付加的ステージは、揮発性（又はダイナミック型）ＦＩＦＯである。本発明の第１の態様によれば、記憶ステージ及び入力ステージを有するＦＩＦＯメモリ装置が設けられ、この記憶ステージは、複数の不揮発性記憶部を有し、入力ステージは、複数の揮発性記憶部を有する。このようにして、入力ステージは記憶ステージの待ち時間を効果的に隠すのである。
【００１１】
当該入力ステージは、上述した従来のハードウェアＦＩＦＯの追加のステージを置き換える揮発性ＦＩＦＯメモリを有するものとすることができる。したがって、これらステージを加える必要がなく、当該装置のコストは削減される。
【００１２】
さらに、ＦＩＦＯバッファは、データスループットを向上するために常に利用されている。本発明のこの態様によるメモリ装置は、スタティック型のハードウェアＦＩＦＯ装置又はＳＲＡＭなどの不揮発性メモリを用いて実現することができる。これは、データのストリームの所定の平均スループットに適合するために用いることができる。ＤＲＡＭなどの揮発性メモリは、当該データのストリームの最悪ケースのスループットのために利用可能である。これが短い時間期間において生じるときには、リフレッシュを伴わずにＤＲＡＭを用いることができ、或いはダイナミックハードウェアＦＩＦＯを用いることができる。この場合、付加的メモリが一時的に高レートのバーストに起因する余分なデータに適合するために加えられ、そうでない場合には、データを生成するＩＰのストールとなるか又はオーバフローとなる。大抵のケースでは、当該余分なデータが限定量の時間において吸収されることが保証される場合、揮発性で安価なメモリをその余分なデータのために用いることができる。
【００１３】
これは特に、短い時間間隔の付加的な記憶を必要とするＩＣ設計に有利である。例えば、待ち時間を隠すために付加的ステージが加えられるハードウェア切り離し（分断）ＦＩＦＯメモリや、データストリームからのスループットのピークに適合するための余分な揮発性バッファリングを伴うＦＩＦＯメモリがある。
【００１４】
本発明は、暫定的データの付加的なステージを必要とするＦＩＦＯメモリのコストを削減することができる。このコスト削減は、不揮発性メモリに代えて揮発性のものを用いることによって達成される。ハードウェアＦＩＦＯの場合、このコスト削減は、速度を犠牲にすることなく実現される。これは、スタティック型（不揮発性）及びダイナミック型（揮発性）のどちらのＦＩＦＯも同じ速度で動作するからである。
【００１５】
以下に、添付図面を参照して本発明の実施例を説明する。
【発明を実施するための最良の形態】
【００１６】
以下、図３を参照して本発明の実施例を説明する。ＦＩＦＯメモリ装置３００は、データ入力端子３０１と、データ出力端子３０３と、書込イネーブル（wr_en）端子３０５と、書込許可（accept）端子３０７と、読出イネーブル（rd_en）端子３０９と、読出有効（valid）端子３１１とを有する。データ入力端子３０１は、入力バッファステージ３１５のデータ入力端子３１３に接続される。入力バッファステージ３１５は、複数のダイナミック型の揮発性記憶部（ここでは図示せず）を有する。入力バッファステージ３１５のデータ出力端子３１７は、記憶ステージ３２１のデータ入力端子３１９に接続される。記憶装置３２１は、不揮発性のスタティックＦＩＦＯであって複数のスタティック型の記憶部又はラッチ（ここでは図示せず）を有するものである。記憶ステージ３２１のデータ出力端子３２３は、メモリ装置３００のデータ出力端子３０３に接続される。不揮発性ＦＩＦＯ３２１は、慣例的な不揮発性のスタティックＦＩＦＯのようにデータを記憶する。そして入力バッファステージ３１５は、空間が記憶ステージ３１５を通じて元のところに伝搬されるのを待つデータを一時的に記憶することができるように、記憶ステージ３２１の待ち時間を隠すように動作する。
【００１７】
書込イネーブル端子３０５は、第１のＡＮＤゲート３２５の第１入力端子に接続される。第１のＡＮＤゲート３２５の第２の入力端子は、カウンタ３２７の出力に接続される。第１のＡＮＤゲート３２５の出力は、入力バッファステージ３１５の書込イネーブル信号（wr_en1）を供給する。入力バッファステージ３１５の許可フラグ（accept1）は、第２のＡＮＤゲート３２９の第１の入力に供給され、第２のＡＮＤゲート３２９の第２入力は、カウンタ３２７の出力に接続される。第２のＡＮＤゲート３２９の出力は、ＦＩＦＯメモリ装置３００の許可端子３０７と第３のＡＮＤゲート３３１の第１の入力に接続される。第３のＡＮＤゲート３３１の第２の入力は、ＦＩＦＯメモリ装置３００の書込イネーブル端子３０５に接続される。第３のＡＮＤゲート３３１の出力は、カウンタ３２７に接続される。記憶ステージ３２１の許可フラグ（accept2）は、入力バッファステージ３１５の読出イネーブル（rd_en1）に接続される。入力バッファステージ３１５の有効フラグ（valid1）は、記憶ステージ３２１の書込イネーブル端子（wr_en2）に接続される。
【００１８】
ＦＩＦＯメモリ装置３００の読出イネーブル端子３０９は、記憶ステージ３２１の読出イネーブル（rd_en2）を供給する。記憶ステージ３２１の有効フラグ（valid2）は、ＦＩＦＯメモリ装置３００の有効端子３１１に供給される。ＦＩＦＯメモリ装置３００のデータ出力端子３０３は、記憶ステージ３２１のデータ出力端子に接続される。記憶ステージ３２１のフラグ（valid2）及び読出イネーブル（rd_en2）は、第４のＡＮＤゲート３３３のそれぞれの入力となる。第４のＡＮＤゲート３３３の出力は、カウンタ３２７に接続される。
【００１９】
メモリ装置３００はさらに、慣例的な構成の読出インターフェース及び書込インターフェースを有するが、図３には示されていない。
【００２０】
次に、本発明の第１の実施例のメモリ装置３００の動作を説明する。
【００２１】
読出動作において、読出インターフェースは、端子３０９において読出イネーブルをアクティブ（rd_en＝高レベル）とすることにより、メモリ装置３００からのデータを要求する。ＦＩＦＯメモリ装置３００は、端子３１１においてフラグ（valid）を高レベルとすることにより、データが利用可能、すなわち記憶ＦＩＦＯ３２１の最終段が使われていることを示す。rd_enもvalidも高レベルであるとき、データワードはＦＩＦＯメモリ装置３００のデータ出力端子３０３に転送される。書込動作の場合と同様に、書込インターフェースは、端子３０５においてwr_enを高レベルにすることにより書込リクエストを行い、ＦＩＦＯ装置３００がデータを格納することが可能であれば、すなわち入力バッファ３１５の第１ステージがエンプティであれば、端子３０７においてフラグ（accept）を高レベルにし、入力バッファステージ３１５の入力端子３１３にワードデータが転送される。そしてこのデータは、最後に使われたステージの後ろに到達するまで入力バッファステージ３１５の第１ステージに書き込まれる。データが入力バッファステージ３１５の最終ステージに達したとき、フラグvalid1がアクティブとされ、記憶ステージ３２１の書込イネーブル（wr_en2）として供給される（書込リクエストがなされる）。記憶装置３２１の第１ステージがエンプティならば、フラグaccept2は高レベルであり、入力バッファステージ３１５の読出イネーブルrd_en1を高レベルにし、入力バッファステージ３１５の最終ステージに保持されたデータが記憶ＦＩＦＯ３２１の第１のステージに転送される。入力バッファステージ３１５に関するが如く、データは、最後に使われたステージの後ろに到達するまで記憶装置３２１を伝わる。
【００２２】
ＦＩＦＯメモリ装置３００はさらに、入力バッファステージ及び記憶ステージのエンプティ空間の数のカウントを維持するカウンタ３２７を含む。rd_en及びvalidの双方が高レベル、すなわち読出リクエストがなされてデータワードが出力端子３０３に転送されるとき、カウンタ３２７の内容がインクリメントされて記憶ステージ３２１におけるエンプティ空間を示すようになる。逆に、wr_en及びacceptの双方が高レベル、すなわち書込リクエストがなされデータが入力バッファステージ３１５に転送される場合、カウンタは、デクリメントされてエンプティ空間が今は使用されていることを示す。エンプティ空間がある状況において、カウンタ３２７の内容は正の値となり、accept1が高レベルとなり（入力バッファ３１５の第１ステージにはエンプティ空間がある）、端子３０７のacceptが高レベルとなり、入力バッファステージ３１５が、書込リクエストの状況で入力端子３０１においてデータを受信する準備状態となる。リセットにより、カウンタ３２７は、記憶ステージ３２１のサイズと等しいものに初期セットされる。
【００２３】
カウンタ３２７は、読出インターフェース及び書込インターフェースに対しＦＩＦＯ装置３００において空間があるかどうかについての情報を提供するように用いることができる。これの実現形態が図４に示される。
【００２４】
本発明の第２の実施例によるＦＩＦＯ装置４００は図３の装置に対応しており、同じ参照符号が同じ構成要素に用いられ、これらの詳細な説明はここでは含まない。
【００２５】
第２の実施例において、カウンタ３２７は、空間の数を出力する。これは、書込インターフェースに利用可能な端子４４０のフラグempty_spaceとして供給される。このフラグはまた、ＦＩＦＯのサイズと空間の数との差を出力する減算器４４２に供給される。減算器４４２の出力が０である場合、full_spaceフラグは、端子４４４において読出インターフェースに出力される。カウンタ３２７の出力の値は、当該カウンタの出力が少なくとも１つの空間を示す（出力値が０を超える）場合は１を、当該カウンタの出力が空間無しを示す場合は０を出力するディジタイザ４４６によりディジタル化される。これは、第２のＡＮＤゲート３２９への入力として供給される。
【００２６】
上記好適実施例によるＦＩＦＯメモリ装置は、記憶ＦＩＦＯの待ち時間を隠す付加的なステージを有する。
【００２７】
これら付加的ステージ（揮発性ＦＩＦＯ３１５）は、一時的な記憶手段としてのみ用いられる。データは、このキューに記憶される。それは、専ら、記憶ステージ３２１におけるエンプティアイテムがＦＩＦＯを通じ出力へと伝わるために大半の時間が掛かるからである。この時間は、揮発性ＦＩＦＯの保持時間よりも短い（例えば、ＰＲＬＥ／ＩＣデザイン／ＤＤ＆Ｔグループにおけるスタティック型の不揮発性ＦＩＦＯの場合、エンプティアイテムの伝搬時間は、ステージ当たり３６０ｐｓであるのに対し、ダイナミック型のＦＩＦＯの保持時間は１μｓである）。したがって、揮発性ＦＩＦＯ３１５は、リフレッシュロジックを必要
としない。揮発性メモリ３１５のリフレッシュを省略することができるのは、揮発性ＦＩＦＯ３１５にデータが存在する時間（せいぜい数１０ｎｓ）は揮発性ＦＩＦＯセルの保持時間よりも相当短いからである。したがって、リフレッシュ動作のための追加の回路は必要とせず、さらに装置のサイズ及びコストを減らすことができる。
【００２８】
本発明の好適実施例によるＦＩＦＯメモリ装置の一例は、それに用いられる場合に、ビット当たり２．８ｍ２のサイズを有するダイナミックセルと、ビット当たり７．５ｍ２のサイズを有するスタティックセルとを必要とする。したがって、待ち時間を隠すのに６３％コスト削減がある。上述した特定の例の場合、２００ＭＨｚで動作する本発明の実施例による３２段ＦＩＦＯでは、トータルのＦＩＦＯコストの削減は６．３％となる。５００ＭＨｚで動作する本発明の実施例による３２段ＦＩＦＯでは、トータルのＦＩＦＯコストの削減は１２．６％となる。
【００２９】
以上、本発明の好適実施例を添付図面に示すとともに前述の詳細な説明で述べてきたが、本発明は開示した実施例に限定されるものではなく、付記した請求項に記載されるような本発明の範囲から逸脱することなく数多くの変形例や改変例が可能であることに留意されたい。
【図面の簡単な説明】
【００３０】
【図１】従来のＦＩＦＯにおける書込動作の概略図。
【図２】従来のＦＩＦＯにおける読出動作の概略図。
【図３】本発明の第１実施例によるメモリ装置のブロック図。
【図４】本発明の第２実施例によるメモリ装置のブロック図。
【図１】
2007522579.tif 000003
【図２】
2007522579.tif 000004
【図３】
2007522579.tif 000005
【図４】
2007522579.tif 000006
【国際調査報告】
2007522579.tif 000007
2007522579.tif 000008
2007522579.tif 000009