(57)【要約】【課題】  共有型ＦＩＦＯ装置の回路規模を減少する。【解決手段】  一つの実施形態によれば、共有型ＦＩＦＯ装置は、要求制御回路、ライトポインタ制御回路、リードポインタ制御回路、ライトポインタ選択回路、リードポインタ選択回路、選択回路、メモリアレイを含む。共有型ＦＩＦＯ装置は、ｎ個の転送ルートからのＦＩＦＯアクセスを実行する。【選択図】  図１
2020009146.tif 000002
【特許請求の範囲】
【請求項１】
書き込み要求と読み出し要求を入力する要求制御回路と、
前記要求制御回路から出力されるライトポインタアップデート要求を入力し、前記ライトポインタアップデート要求に基づいてルート毎に独立して配置されるｎ個（ただし、ｎは２つ以上の整数）のライトポインタのいずれか一つを選択し、選択されたライトポインタが保持している情報の更新指示をするライトポインタ制御回路と、
前記要求制御回路から出力されるリードポインタアップデート要求を入力し、前記リードポインタアップデート要求に基づいてルート毎に独立して配置されるｎ個のリードポインタのいずれか一つを選択し、選択されたリードポインタが保持している情報の更新指示をするリードポインタ制御回路と、
前記要求制御回路から出力されるルート書き込み選択の指示に基づいて、前記ｎ個のライトポインタの情報のいずれか一つを選択するライトポインタ選択回路と、
前記要求制御回路から出力されるルート読み出し選択の指示に基づいて、前記ｎ個のリードポインタの情報のいずれか一つを選択するリードポインタ選択回路と、
前記要求制御回路から出力される書き込み選択の指示に基づいて前記ライトポインタ選択回路の選択結果を選択し、前記要求制御回路から出力される読み出し選択の指示に基づいて前記リードポインタ選択回路の選択結果を選択する選択回路と、
ライトポインタ情報及びリードポインタ情報に基づいてアクセスされる次のエントリ番号記憶領域とデータ記憶領域を含むＦＩＦＯバッファメモリをｍ個（ただし、ｍは２つ以上の整数）有するメモリアレイと、
を具備し、ｎ個の転送ルートからのＦＩＦＯアクセスを実行する
ことを特徴とする共有型ＦＩＦＯ装置。
【請求項２】
前記メモリアレイの各エントリに対応し、ｍ個のバリッドビットを含み、バリッドビットの値が更新されたときに更新情報を前記ライトポインタ制御回路或いは前記リードポインタ制御回路に送信するバリッドビット部
を更に具備することを特徴とする請求項１に記載の共有型ＦＩＦＯ装置。
【請求項３】
前記要求制御回路から出力される書き込み選択の指示に基づいて前記バリッドビット部のバリッドビットを有効な値に更新し、前記要求制御回路から出力される読み出し選択の指示に基づいて前記バリッドビット部のバリッドビットを無効な値に更新するバリッド値選択回路
を更に具備することを特徴とする請求項２項に記載の共有型ＦＩＦＯ装置。
【請求項４】
前記要求制御回路から出力されるルート書き込み選択の指示に基づいて、ｎ個のルート書き込みデータのいずれか一つを選択して前記メモリアレイのデータ記憶領域に書き込むデータ選択回路
を更に具備することを特徴とする請求項１乃至３のいずれか１項に記載の共有型ＦＩＦＯ装置。
【請求項５】
前記ライトポインタ制御回路の指示により、データ書き込みのときに次に書き込むべきエントリ番号を発生して前記メモリアレイに送信する予約制御回路
を更に具備することを特徴とする請求項１乃至４のいずれか１項に記載の共有型ＦＩＦＯ装置。
【請求項６】
前記ライトポインタ選択回路、前記リードポインタ選択回路、前記選択回路は、マルチプレクサ或いはセレクタである
ことを特徴とする請求項１乃至５のいずれか１項に記載の共有型ＦＩＦＯ装置。
【請求項７】
前記共有型ＦＩＦＯ装置は、マイクロコンピュータ又はマイクロプロセッサを備え、同期化されたｎ個のデータ転送ルートを備えたシステムに適用される
ことを特徴とする請求項１乃至６のいずれか１項に記載の共有型ＦＩＦＯ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、共有型ＦＩＦＯ装置に関する。
【背景技術】
【０００２】
マイクロコンピュータやマイクロプロセッサ等は、ＦＩＦＯ（First In First OUT）装置を搭載している。ＦＩＦＯ装置は、システム仕様要求に対応する容量を備えたメモリを内蔵する。複数の装置間でのデータの授受を実行する場合、１つのデータ転送ルートに対して１つのＦＩＦＯ装置が必要となる。
【０００３】
システムが複雑化するとデータ転送ルートが多数必要となり、必要とされるＦＩＦＯ装置の数が増加し、ＦＩＦＯ装置の回路規模が増大という問題点がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２９３４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、回路規模を減少することができる共有型ＦＩＦＯ装置を提供することにある。
【課題を解決するための手段】
【０００６】
一つの実施形態によれば、共有型ＦＩＦＯ装置は、要求制御回路、ライトポインタ制御回路、リードポインタ制御回路、ライトポインタ選択回路、リードポインタ選択回路、選択回路、メモリアレイを含む。要求制御回路は書き込み要求と読み出し要求を入力する。ライトポインタ制御回路は、要求制御回路から出力されるライトポインタアップデート要求を入力し、ライトポインタアップデート要求に基づいてルート毎に独立して配置されるｎ個（ただし、ｎは２つ以上の整数）のライトポインタのいずれか一つを選択し、選択されたライトポインタが保持している情報の更新指示をする。リードポインタ制御回路は、要求制御回路から出力されるリードポインタアップデート要求を入力し、リードポインタアップデート要求に基づいてルート毎に独立して配置されるｎ個のリードポインタのいずれか一つを選択し、選択されたリードポインタが保持している情報の更新指示をする。ライトポインタ選択回路は、要求制御回路から出力されるルート書き込み選択の指示に基づいて、ｎ個のライトポインタの情報のいずれか一つを選択する。リードポインタ選択回路は、要求制御回路から出力されるルート読み出し選択の指示に基づいて、ｎ個のリードポインタの情報のいずれか一つを選択する。選択回路は、要求制御回路から出力される書き込み選択の指示に基づいてライトポインタ選択回路の選択結果を選択し、要求制御回路から出力される読み出し選択の指示に基づいてリードポインタ選択回路の選択結果を選択する。メモリアレイは、ライトポインタ情報及びリードポインタ情報に基づいてアクセスされる次のエントリ番号記憶領域とデータ記憶領域を含むＦＩＦＯバッファメモリをｍ個（ただし、ｍは２つ以上の整数）有する。共有型ＦＩＦＯ装置は、ｎ個の転送ルートからのＦＩＦＯアクセスを実行する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係る共有型ＦＩＦＯ装置を示す図である。
【図２】第１の実施形態に係る共有型ＦＩＦＯ装置の動作を示すフローチャート。
【図３】ステップ１での共有型ＦＩＦＯ装置の動作を示す図である。
【図４】ステップ２での共有型ＦＩＦＯ装置の動作を示す図である。
【図５】ステップ３での共有型ＦＩＦＯ装置の動作を示す図である。
【図６】ステップ４での共有型ＦＩＦＯ装置の動作を示す図である。
【図７】ステップ５での共有型ＦＩＦＯ装置の動作を示す図である。
【図８】ステップ６での共有型ＦＩＦＯ装置の動作を示す図である。
【図９】ステップ７での共有型ＦＩＦＯ装置の動作を示す図である。
【図１０】ステップ８での共有型ＦＩＦＯ装置の動作を示す図である。
【図１１】ステップ９での共有型ＦＩＦＯ装置の動作を示す図である。
【図１２】ステップ１０での共有型ＦＩＦＯ装置の動作を示す図である。
【図１３】ステップ１１での共有型ＦＩＦＯ装置の動作を示す図である。
【図１４】ステップ１２での共有型ＦＩＦＯ装置の動作を示す図である。
【図１５】ステップ１３での共有型ＦＩＦＯ装置の動作を示す図である。
【図１６】ステップ１４での共有型ＦＩＦＯ装置の動作を示す図である。
【図１７】第２の実施形態に係る共有型ＦＩＦＯ装置を示す図である。
【図１８】第２の実施形態に係る共有型ＦＩＦＯ装置の動作を示すフローチャート。
【図１９】ステップ２１での共有型ＦＩＦＯ装置の動作を示す図である。
【図２０】ステップ２２での共有型ＦＩＦＯ装置の動作を示す図である。
【図２１】ステップ２３での共有型ＦＩＦＯ装置の動作を示す図である。
【図２２】ステップ２４での共有型ＦＩＦＯ装置の動作を示す図である。
【図２３】ステップ２５での共有型ＦＩＦＯ装置の動作を示す図である。
【図２４】ステップ２６での共有型ＦＩＦＯ装置の動作を示す図である。
【図２５】ステップ２７での共有型ＦＩＦＯ装置の動作を示す図である。
【図２６】ステップ２８での共有型ＦＩＦＯ装置の動作を示す図である。
【図２７】ステップ２９での共有型ＦＩＦＯ装置の動作を示す図である。
【図２８】ステップ３０での共有型ＦＩＦＯ装置の動作を示す図である。
【図２９】ステップ３１での共有型ＦＩＦＯ装置の動作を示す図である。
【図３０】ステップ３２での共有型ＦＩＦＯ装置の動作を示す図である。
【図３１】ステップ３３での共有型ＦＩＦＯ装置の動作を示す図である。
【図３２】ステップ３４での共有型ＦＩＦＯ装置の動作を示す図である。
【発明を実施するための形態】
【０００８】
以下本発明の実施形態について図面を参照しながら説明する。
【０００９】
（第１の実施形態）
まず、第１の実施形態に係る共有型ＦＩＦＯ装置について、図面を参照して説明する。図１は共有型ＦＩＦＯ装置を示す図である。
【００１０】
第１の実施形態では、共有型ＦＩＦＯ装置は、２つのライトポインタ、２つのリードポインタ、ライトポインタ選択回路、リードポインタ選択回路、書き込み或いは読出しを選択する選択回路を備え、データ転送ルートを２つにして回路規模を減少させている。
【００１１】
図１に示すように、共有型ＦＩＦＯ装置１００は、要求制御回路１、ライトポインタ制御回路２、リードポインタ制御回路３、データ選択回路７、バリッド値選択回路８、ワードラインデコーダ９、メモリアレイ１０、バリッドビット部１１、ライトポインタ２１、ライトポインタ２２、リードポインタ２３、リードポインタ２４、ライトポインタ選択回路２５、リードポインタ選択回路２６、選択回路２７を含む。
【００１２】
共有型ＦＩＦＯ装置１００は、２つのデータ転送路を備え、共有することができるＦＩＦＯ装置である。共有型ＦＩＦＯ装置１００は、同期化された２つのデータ転送ルートを備えたシステム（例えばマイクロコンピュータやマイクロプロセッサ等を備えたシステム）に適用される。
【００１３】
共有型ＦＩＦＯ装置１００は、例えば低消費電力、高機能化が要求されるウエラブル機器、ヘルスケア機器、産業用安全装置、ヒューマノイドロボット等に用いられる。
【００１４】
要求制御回路１は、ルート１書き込み要求、ルート１読み出し要求、ルート２書き込み要求、ルート２読み出し要求を入力する。要求制御回路１は、ルート要求をデータ選択回路７、ライトポインタ選択回路２５、及びリードポインタ選択回路２６に送信する。要求制御回路１は、書き込み或いは読み出しの選択をバリッド値選択回路８、及び選択回路２７に送信する。要求制御回路１は、ライトポインタアップデート要求をライトポインタ制御回路２に送信する。要求制御回路１は、リードポインタアップデート要求をリードポインタ制御回路３に送信する。
【００１５】
データ選択回路７は、ルート１書き込みデータとルート２書き込みデータを入力し、要求制御回路１のルート要求に基づいてルート１書き込みデータ或いはルート２書き込みデータのいずれかを選択してメモリアレイ１０のデータ記憶領域ＤＡＴＡに出力する。ルート１書き込みデータとは、例えばＳＩＯ（シリアル入出力）モードに用いるデータである。ルート２書き込みデータとは、例えばＵＡＲＴ（汎用非同期通信）に用いるデータである。
【００１６】
バリッド値選択回路８は、有効なバリッド値１‘ｂ１と有効ではないバリッド値１’ｂｏを入力し、書き込み或いは読み出しの選択に基づいて、バリッド値１‘ｂ１或いはバリッド値１’ｂｏのいずれかを選択してバリッドビット部１１に出力する。
【００１７】
ライトポインタ制御回路２は、要求制御回路１からライトポインタアップデート要求を入力する。ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２１（第１のライトポインタ）或いはライトポインタ２２（第２のライトポインタ）のいずれかに書き込みポイントの更新指示を行う。ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、メモリアレイ１０の次のエントリ番号記憶領域ＮＥＮの指定を行う。
【００１８】
リードポインタ制御回路３は、要求制御回路１からリードポインタアップデート要求を入力する。リードポインタ制御回路３は、要求制御回路１のリードポインタアップデート要求に基づいて、リードポインタ２３（第１のリードポインタ）或いはリードポインタ２４（第２のリードポインタ）のいずれかに読み出しポイントの更新指示を行う。
【００１９】
ライトポインタ２１は、ライトポインタ制御回路２の指示に基づいて、保持している値をアップデートする。ライトポインタ２２は、ライトポインタ制御回路２の指示に基づいて、保持している値をアップデートする。  リードポインタ２３は、リードポインタ制御回路３の指示に基づいて、保持している値をアップデートする。リードポインタ２４は、リードポインタ制御回路３の指示に基づいて、保持している値をアップデートする。
【００２０】
ライトポインタ選択回路２５は、ライトポインタ２１の保持している情報、ライトポインタ２２の保持している情報を入力し、要求制御回路１のルート要求に基づいて、ライトポインタ２１の保持している情報或いはライトポインタ２２保持している情報のいずれかを選択する。
【００２１】
リードポインタ選択回路２６は、リードポインタ２３の保持している情報、リードポインタ２４の保持している情報を入力し、要求制御回路１のルート要求に基づいて、リードポインタ２３の保持している情報或いはリードポインタ２４の保持している情報のいずれかを選択する。
【００２２】
選択回路２７は、ライトポインタ選択回路２５の選択結果、リードポインタ選択回路２６の選択結果を入力し、要求制御回路１の書き込み選択或いは読み出し選択に基づいて、ライトポインタ選択回路２５の選択結果或いはリードポインタ選択回路２６の選択結果のいずれかを選択する。
【００２３】
ここでは、データ選択回路７、バリッド値選択回路８、ライトポインタ選択回路２５、リードポインタ選択回路２６、及び選択回路２７には、マルチプレクサ（multiplexer）を用いているが代わりにセレクタなどを用いてもよい。
【００２４】
ワードラインデコーダ９は、選択回路２７の選択結果を入力し、デコード処理を実行し、デコード処理結果をエントリ要求Ｅ０Ｓ〜Ｅ７Ｓとしてメモリアレイ１０に伝える。具体的には、ワードラインデコーダ９は、メモリアレイ１０の書き込み及び読み出しをすべきワード線に対して選択信号を出力する。
【００２５】
メモリアレイ１０は、次のエントリ番号記憶領域ＮＥＮとデータ記憶領域ＤＡＴＡから構成されるバッファ２０をｍ個（ただし、ｍは２以上の整数）含む。バッファ２０は、ＦＩＦＯバッファメモリである。ここでは、メモリアレイ１０は８つのバッファ２０−０〜２０−７を含む。
【００２６】
次のエントリ番号記憶領域ＮＥＮは、ライトポインタ制御回路２の指示とワードラインデコーダ９のデコード処理結果が入力されると、対応するワード線のエントリ番号を更新する。データ記憶領域ＤＡＴＡは、データ選択回路７の選択結果とワードラインデコーダ９のデコード処理結果が入力されると、対応するワード線のデータ記憶領域ＤＡＴＡのデータを更新する。
【００２７】
メモリアレイ１０は、指定されたラインのデータ記憶領域ＤＡＴＡの情報を出力する。メモリアレイ１０は、次のエントリ番号が格納された次のエントリ番号記憶領域ＮＥＮの情報を、リードポインタ制御回路３に出力する。
【００２８】
バリッドビット部１１は、ｍ個（ただし、ｍは２以上の整数）のバリッドビットを含む。ここでは、バリッドビット部１１は、８つのバリッドビット１１−０〜１１−７を含む。バリッドビット部１１は、バリッド値選択回路８の選択結果とメモリアレイ１０の更新されたデータ記憶領域ＤＡＴＡの情報に基づいて、対応するバリッドビットの情報を更新する。バリッドビット部１１は、エントリ要求Ｅ０Ｓ〜Ｅ７Ｓの有効／無効情報をライトポインタ制御回路２、リードポインタ制御回路３に出力する。
【００２９】
ここで、バッファ２０へのリードアクセスは、更新前のポインタ値で実施される。ライトポインタ２１、ライトポインタ２２では、更新前のポインタ値で次のエントリ番号記憶領域ＮＥＮへのライトアクセスが行われ、更新後のポインタ値でバッファ２０へのライトアクセスが行われる。リードポインタ２３、リードポインタ２４の更新値は、読み出したエントリの次のエントリ番号記憶領域ＮＥＮの値がコピーされる。
【００３０】
次に、共有型ＦＩＦＯ装置の動作について、図２〜図１６を参照して説明する。図２は、共有型ＦＩＦＯ装置の動作を示すフローチャートである。
【００３１】
図２に示すように、本実施形態の共有型ＦＩＦＯ装置１００では、ルート１での書き込み、ルート２での書き込み、ルート１での読み出し、ルート２での読み出しが実行される。各ステップでの共有型ＦＩＦＯ装置の動作の詳細は図３〜図１６を用いて説明する。
【００３２】
図３に示すように、初期状態では、ライトポインタ２１のデータは、“０”に設定される。ライトポインタ２２のデータは、“１”に設定される。リードポインタ２３のデータは、“０”に設定される。リードポインタ２４のデータは、“１”に設定される。バッファ２０−０のデータ記憶領域ＤＡＴＡとバッファ２０−１のデータ記憶領域ＤＡＴＡは、予約状態に設定される（ステップＳ１）。
【００３３】
図４に示すように、ルート１での１回目の書き込みの場合、要求制御回路１は、ルート１書き込み要求を入力する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート１書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート１書き込み選択の指示に基づいて、ライトポインタ２１の値である“０”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“０”）を選択する。
【００３４】
その結果、ワードラインの最初のバッファ２０−０のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−０のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート１書き込みデータ（ＤＡＴＡ  １−１と表示）を書き込む。バリッドビット１１−０は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−０のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２）。
【００３５】
図５に示すように、ルート２での１回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“１”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“１”）を選択する。
【００３６】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、次のワードラインのバッファ２０−１のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−１のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−１で表示）を書き込む。バリッドビット１１−１は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−１のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ３）。
【００３７】
図６に示すように、ルート２での２回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００３８】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“１”をデータ“２”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“２”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“２”）を選択する。
【００３９】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−１の次のエントリ番号記憶領域ＮＥＮのデータが“２”に設定される。次のワードラインのバッファ２０−２のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−２のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−２と表示）を書き込む。バリッドビット１１−２は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−２のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ４）。
【００４０】
図７に示すように、ルート２での３回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００４１】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“２”をデータ“３”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“３”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“３”）を選択する。
【００４２】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−２の次のエントリ番号記憶領域ＮＥＮのデータが“３”に設定される。次のワードラインのバッファ２０−３のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−３のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−３と表示）を書き込む。バリッドビット１１−３は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−３のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ５）。
【００４３】
図８に示すように、ルート１での２回目の書き込みの場合、要求制御回路１は、ルート１書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００４４】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２１が保持しているデータ“０”をデータ“４”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート１書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート１書き込み選択の指示に基づいて、ライトポインタ２１の“４”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“４”）を選択する。
【００４５】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−０の次のエントリ番号記憶領域ＮＥＮのデータが“４”に設定される。次のワードラインのバッファ２０−４のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−４のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート１書き込みデータ（ＤＡＴＡ  １−２と表示）を書き込む。バリッドビット１１−４は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−４のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ６）。
【００４６】
図９に示すように、ルート２での４回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００４７】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“３”をデータ“５”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“５”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“５”）を選択する。
【００４８】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−３の次のエントリ番号記憶領域ＮＥＮのデータが“５”に設定される。次のワードラインのバッファ２０−５のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−５のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−４と表示）を書き込む。バリッドビット１１−４は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−５のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ７）。
【００４９】
図１０に示すように、ルート１での３回目の書き込みの場合、要求制御回路１は、ルート１書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００５０】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２１が保持しているデータ“４”をデータ“６”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート１書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート１書き込み選択の指示に基づいて、ライトポインタ２１の“６”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“６”）を選択する。
【００５１】
メモリアレイ１０は、ワードラインデコーダ９のデコード結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−４の次のエントリ番号記憶領域ＮＥＮのデータが“６”に設定される。次のワードラインのバッファ２０−６のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−６のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート１書き込みデータ（ＤＡＴＡ  １−３と表示）を書き込む。バリッドビット１１−６は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−６のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ８）。
【００５２】
図１１に示すように、ルート２での５回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００５３】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“５”をデータ“７”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“７”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“７”）を選択する。
【００５４】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−５の次のエントリ番号記憶領域ＮＥＮのデータが“７”に設定される。次のワードラインのバッファ２０−７のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−７のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−５と表示）を書き込む。バリッドビット１１−７は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−７のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ９）。
【００５５】
図１２に示すように、ルート１での１回目の読み出しの場合、要求制御回路１は、ルート１読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。
【００５６】
リードポインタ制御回路３は、要求制御回路１のリードポインタアップデート要求に基づいて、リードポインタ２３が保持しているデータ“０”をデータ“４”に変更し、更新する。リードポインタ選択回路２６は、要求制御回路１から出力されるルート１読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート１読み出し選択の指示に基づいて、リードポインタ２３の“０”を選択する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（“０”）を選択する。
【００５７】
リードポインタ２３の値に従って、バッファ２０−０のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  １−１）は、読み出されて外部に出力される。バッファ２０−０の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−０のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−０の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−０は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−０の情報は、リードポインタ制御回路３に送信される（ステップＳ１０）。
【００５８】
図１３に示すように、ルート１での２回目の読み出しの場合、要求制御回路１は、ルート１読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。
【００５９】
リードポインタ制御回路３は、要求制御回路１のリードポインタアップデート要求に基づいて、リードポインタ２３が保持しているデータ“４”をデータ“６”に変更し、更新する。リードポインタ選択回路２６は、要求制御回路１から出力されるルート１読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート１読み出し選択の指示に基づいて、リードポインタ２３の“４”を選択する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（ “４”）を選択する。
【００６０】
リードポインタ２３の値に従って、バッファ２０−４のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  １−２）は、読み出されて外部に出力される。バッファ２０−４の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−４のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−４の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−４は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−４の情報は、リードポインタ制御回路３に送信される（ステップＳ１１）。
【００６１】
図１４に示すように、ルート１での３回目の読み出しの場合、要求制御回路１は、ルート１読み出し要求を入力する。
【００６２】
リードポインタ選択回路２６は、要求制御回路１から出力されるルート１読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート１読み出し選択の指示に基づいて、リードポインタ２３の“６”を選択する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（ “６”）を選択する。
【００６３】
リードポインタ２３の値に従って、バッファ２０−６のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  １−３と表示）は、読み出されて外部に出力される。バッファ２０−６の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−６のデータ記憶領域ＤＡＴＡは予約状態に設定される。バッファ２０−６の次のエントリ番号記憶領域ＮＥＮは、次のエントリ可能となる。バリッドビット１１−６は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−４の情報は、リードポインタ制御回路３に送信される（ステップＳ１２）。
【００６４】
図１５に示すように、ルート２での６回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。
【００６５】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“７”をデータ“０”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“０”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“０”）を選択する。
【００６６】
メモリアレイ１０は、ワードラインデコーダ９のデコード処理結果とライトポインタ制御回路２の指示を入力する。その結果、バッファ２０−７の次のエントリ番号記憶領域ＮＥＮのデータが“０”に設定される。次のワードラインのバッファ２０−０のデータ記憶領域ＤＡＴＡが選択される。バッファ２０−０のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ(ＤＡＴＡ  ２−６と表記)を書き込む。バリッドビット１１−０は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−０のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ１３）。
【００６７】
図１６に示すように、ルート２での１回目の読み出しの場合、要求制御回路１は、ルート２読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。
【００６８】
リードポインタ制御回路３は、要求制御回路１のリードポインタアップデート要求に基づいて、リードポインタ２４が保持しているデータ“１”をデータ“２”に変更し、更新する。リードポインタ選択回路２６は、要求制御回路１から出力されるルート２読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート２読み出し選択の指示に基づいて、リードポインタ２４の“１”を選択する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（ “１”）を選択する。
【００６９】
リードポインタ２４の値に従って、バッファ２０−１のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  ２−１）は、読み出されて外部に出力される。バッファ２０−１の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−１のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−１の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−１は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−１の情報は、リードポインタ制御回路３に送信される（ステップＳ１４）。
【００７０】
なお、本実施形態の共有型ＦＩＦＯ装置１００は、データ転送ルートを２つ備えているが、必ずしもこれに限定されるものではない。ｎ個（ただし、ｎは２つ以上整数）の転送ルートを設けてもよい。その場合、要求制御回路は、ｎ種類の書き込み要求とｎ種類の読み出し要求を入力する。ライトポインタとリードポインタをそれぞれｎ個設けるのが好ましい。また、データ選択回路７に入力される書き込みデータをｎ種類にするのが好ましい。
【００７１】
上述したように、本実施形態の共有型ＦＩＦＯ装置１００は、要求制御回路１、ライトポインタ制御回路２、リードポインタ制御回路３、データ選択回路７、バリッド値選択回路８、ワードラインデコーダ９、メモリアレイ１０、バリッドビット部１１、ライトポインタ２１、ライトポインタ２２、リードポインタ２３、リードポインタ２４、ライトポインタ選択回路２５、リードポインタ選択回路２６、選択回路２７が設けられる。ライトポインタ選択回路２５は、要求制御回路１の指示に基づいて、ライトポインタ２１の保持データ或いはライトポインタ２２の保持データのいずれかを選択する。リードポインタ選択回路２６は、要求制御回路１の指示に基づいて、リードポインタ２３の保持データ或いはリードポインタ２４の保持データのいずれかを選択する。選択回路２７は、要求制御回路１の指示に基づいて、ライトポインタ選択回路２５の選択結果或いはリードポインタ選択回路２６の選択結果のいずれかを選択する。
【００７２】
このため、共有型ＦＩＦＯ装置１００では、複数のデータ転送ルートを共有化して同時に使用することができる。したがって、共有型ＦＩＦＯ装置１００の回路規模を減少することができる。また、共有型ＦＩＦＯ装置１００内の未使用のメモリを有効活用することができる。
【００７３】
（第２の実施形態）
次に、第２の実施形態に係る共有型ＦＩＦＯ装置に係るについて、図面を参照して説明する。図１７は共有型ＦＩＦＯ装置を示す図である。
【００７４】
第２の実施形態では、共有型ＦＩＦＯ装置は、予約制御回路、２つのライトポインタ、２つのリードポインタ、ライトポインタ選択回路、リードポインタ選択回路、書き込み或いは読出しを選択する選択回路を備え、データ転送ルートを２つにし、データ書き込みと同時に次のエントリ予約を行い、回路規模を減少させている。
【００７５】
図１８に示すように、共有型ＦＩＦＯ装置２００は、要求制御回路１、ライトポインタ制御回路２、リードポインタ制御回路３、データ選択回路７、バリッド値選択回路８、ワードラインデコーダ９、メモリアレイ１０、バリッドビット部１１、予約制御回路１２、ライトポインタ２１、ライトポインタ２２、リードポインタ２３、リードポインタ２４、ライトポインタ選択回路２５、リードポインタ選択回路２６、選択回路２７を含む。
【００７６】
本実施形態の共有型ＦＩＦＯ装置２００は、第１の実施形態の共有型ＦＩＦＯ装置２００に予約制御回路１２を追加したものである。
【００７７】
以下、第１の実施形態と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
【００７８】
予約制御回路１２は、ライトポインタ２１の値、ライトポインタ２２の値、バリッドビット部１１の値に基づいて、次に書き込むべきエントリ番号を決定し、メモリアレイ１０の次のエントリ番号記憶領域ＮＥＮに対して次のデータが格納されるエントリを示す番号（エントリ接続情報）を出力する。
【００７９】
第１の実施形態では、書き込み動作で異なるエントリのデータ記憶領域ＤＡＴＡと次のエントリ番号記憶領域ＮＥＮにアクセスを行う必要がある。このため、第１の実施形態では、それぞれ独立でアクセスできるようにするか、或いは２サイクルでアクセスを行う必要がある。
【００８０】
これに対して、本実施形態の共有型ＦＩＦＯ装置２００では、データ書き込みと同時に次にデータを書き込むべきエントリ番号を書き込む処理を行っている。
【００８１】
本実施形態では、ライトポインタ２１、ライトポインタ２２では、バッファ２０へのライトアクセス後に値が更新される。リードポインタ２３、リードポインタ２４では、バッファへのリードアクセス後に値が更新される。バッファ２０−０〜２０−７へのライトアクセス、リードアクセスは、更新前のポインタ値で実施される。
【００８２】
次に、共有型ＦＩＦＯ装置の動作について、図１８〜図３２を参照して説明する。図１８は、共有型ＦＩＦＯ装置の動作を示すフローチャートである。図１９〜図３２は、各ステップでの共有型ＦＩＦＯ装置の動作を示す図である。
【００８３】
図１９に示すように、初期状態では、予約制御回路１２は、書き込みポインタ制御回路２からの指示を入力していない。ライトポインタ２１のデータは、“０”に設定される。ライトポインタ２２のデータは、“１”に設定される。リードポインタ２３のデータは、“０”に設定される。リードポインタ２４のデータは、“１”に設定される。バッファ２０−０のデータ記憶領域ＤＡＴＡとバッファ２０−１のデータ記憶領域ＤＡＴＡは、予約状態に設定される（ステップＳ２１）。
【００８４】
図２０に示すように、ルート１での１回目の書き込みの場合、要求制御回路１は、ルート１書き込み要求を入力する。ライトポインタ制御回路２は、要求制御回路１から出力されるライトポインタアップデート要求を入力する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“２”を格納する。ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２１の情報を“０”から“２”に変更し、更新する。
【００８５】
ライトポインタ選択回路２５は、要求制御回路１から出力されるルート１書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート１書き込み選択の指示に基づいて、ライトポインタ２１の値である“０”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（ “０”）を選択する。
【００８６】
メモリセル１０は、予約制御回路１２から出力される情報“２”とワードラインデコーダ９のデコード処理結果を入力する。
【００８７】
この結果、バッファ２０−０の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“２”を書き込み、バッファ２０−２のデータ記憶領域ＤＡＴＡは予約状態となる。バッファ２０−０のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート１書き込みデータ（ＤＡＴＡ  １−１と表示）を書き込む。バリッドビット１１−０は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−０のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２２）。
【００８８】
図２１に示すように、ルート２での１回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“３”を格納する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“１”を“３”に変更し、更新する。
【００８９】
選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（ “１”）を選択する。
【００９０】
メモリセル１０は、予約制御回路１２から出力される情報“３”とワードラインデコーダ９のデコード処理結果を入力する。
【００９１】
この結果、バッファ２０−１の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“３”を書き込み、バッファ２０−３のデータ記憶領域ＤＡＴＡは予約状態となる。バッファ２０−１のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−１と表示）を書き込む。バリッドビット１１−１は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−１のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２３）。
【００９２】
図２２に示すように、ルート２での２回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“４”を格納する。ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２の“３”から“４”に変更し、更新する。
【００９３】
ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“３”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“３”）を選択する。
【００９４】
メモリセル１０は、予約制御回路１２から出力される情報“４”とワードラインデコーダ９のデコード処理結果を入力する。
【００９５】
この結果、バッファ２０−３の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“４”を書き込み、バッファ２０−４のデータ記憶領域ＤＡＴＡは予約状態となる。バッファ２０−３のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−２と表示）を書き込む。バリッドビット１１−３は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−３のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２４）。
【００９６】
図２３に示すように、ルート２での３回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“５”を格納する。ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２の“４”から“５”に変更し、更新する。
【００９７】
ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“４”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“４”）を選択する。
【００９８】
メモリセル１０は、予約制御回路１２から出力される情報“５”とワードラインデコーダ９のデコード処理結果を入力する。
【００９９】
この結果、バッファ２０−４の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“５”を書き込み、バッファ２０−５のデータ記憶領域ＤＡＴＡは予約状態となる。バッファ２０−４のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−３と表示）を書き込む。バリッドビット１１−４は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−４のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２５）。
【０１００】
図２４に示すように、ルート１での２回目の書き込みの場合、要求制御回路１は、ルート１書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“６”を格納する。
【０１０１】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２１が保持しているデータ“２”をデータ“６”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート１書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート１書き込み選択の指示に基づいて、ライトポインタ２１の“２”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“２”）を選択する。
【０１０２】
メモリセル１０は、予約制御回路１２から出力される情報“６”とワードラインデコーダ９のデコード処理結果を入力する。
【０１０３】
この結果、バッファ２０−２の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“６”を書き込み、バッファ２０−６のデータ記憶領域ＤＡＴＡは予約状態となる。バッファ２０−２のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート１書き込みデータ（ＤＡＴＡ  １−２と表示）を書き込む。バリッドビット１１−２は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−２のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２６）。
【０１０４】
図２５に示すように、ルート２での４回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“７”を格納する。
【０１０５】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“５”をデータ“７”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“５”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“５”）を選択する。
【０１０６】
メモリセル１０は、予約制御回路１２から出力される情報“７”とワードラインデコーダ９のデコード処理結果を入力する。
【０１０７】
この結果、バッファ２０−５の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“７”を書き込み、バッファ２０−７のデータ記憶領域ＤＡＴＡは予約状態となる。バッファ２０−５のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−４と表示）を書き込む。バリッドビット１１−５は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−５のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２７）。
【０１０８】
図２６に示すように、ルート１での３回目の書き込みの場合、要求制御回路１は、ルート１書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“７”を維持している。
【０１０９】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２１が保持している“６”を“０”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート１書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート１書き込み選択の指示に基づいて、ライトポインタ２１の“６”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“６”）を選択する。
【０１１０】
メモリセル１０は、予約制御回路１２から出力される情報“７”とワードラインデコーダ９のデコード処理結果を入力する。
【０１１１】
この結果、バッファ２０−６の次のエントリ番号記憶領域ＮＥＮは、予約制御回路１２の情報“７”を書き込む。バッファ２０−６のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート１書き込みデータ（ＤＡＴＡ  １−３と表示）を書き込む。バリッドビット１１−６は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−６のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２８）。
【０１１２】
図２７に示すように、ルート２での５回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“７”を維持している。
【０１１３】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“７”をデータ“１”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“７”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“７”）を選択する。
【０１１４】
メモリセル１０は、予約制御回路１２から出力される情報“７”とワードラインデコーダ９のデコード処理結果を入力する。
【０１１５】
この結果、バッファ２０−７の次のエントリ番号記憶領域ＮＥＮは、 “１”を書き込む。バッファ２０−７のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−５と表示）を書き込む。バリッドビット１１−７は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−７のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ２９）。
【０１１６】
図２８に示すように、ルート１での１回目の読み出しの場合、要求制御回路１は、ルート１読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“７”を維持している。
【０１１７】
リードポインタ制御回路３は、要求制御回路１のリードポインタアップデート要求に基づいて、リードポインタ２３が保持しているデータ“０”をデータ“２”に変更し、更新する。リードポインタ選択回路２６は、要求制御回路１から出力されるルート１読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート１読み出し選択の指示に基づいて、リードポインタ２３の“０”を選択する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（“０”）を選択する。
【０１１８】
リードポインタ２３の値に従って、バッファ２０−０のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  １−１）は、読み出されて外部に出力される。バッファ２０−０の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−０のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−０の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−０は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−０の情報は、リードポインタ制御回路３に送信される（ステップＳ３０）。
【０１１９】
図２９に示すように、ルート１での２回目の読み出しの場合、要求制御回路１は、ルート１読み出し要求を入力する。要求制御回路１は、ルート１読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報を保持していない。
【０１２０】
リードポインタ選択回路２６は、要求制御回路１から出力されるルート１読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート１読み出し選択の指示に基づいて、リードポインタ２３の“２”を“６”に変更し、更新する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（“２”）を選択する。
【０１２１】
リードポインタ２３の値に従って、バッファ２０−２のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  １−２）は、読み出されて外部に出力される。バッファ２０−２の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−２のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−２の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−２は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−２の情報は、リードポインタ制御回路３に送信される（ステップＳ３１）。
【０１２２】
図３０に示すように、ルート１での３回目の読み出しの場合、要求制御回路１は、ルート１読み出し要求を入力する。要求制御回路１は、ルート１読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報を保持していない。
【０１２３】
リードポインタ選択回路２６は、要求制御回路１から出力されるルート１読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート１読み出し選択の指示に基づいて、リードポインタ２３の“６”を“０”に変更し、更新する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（“６”）を選択する。
【０１２４】
リードポインタ２３の値に従い、バッファ２０−６のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  １−３）は、読み出されて外部に出力される。バッファ２０−６の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−６のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−６の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−６は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−６の情報は、リードポインタ制御回路３に送信される（ステップＳ３２）。
【０１２５】
図３１に示すように、ルート２での６回目の書き込みの場合、要求制御回路１は、ルート２書き込み要求を入力し、ライトポインタ制御回路２にライトポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報である“６”を格納する。
【０１２６】
ライトポインタ制御回路２は、要求制御回路１のライトポインタアップデート要求に基づいて、ライトポインタ２２が保持しているデータ“２”をデータ“６”に変更し、更新する。ライトポインタ選択回路２５は、要求制御回路１から出力されるルート２書き込み選択を入力する。ライトポインタ選択回路２５は、要求制御回路１のルート２書き込み選択の指示に基づいて、ライトポインタ２２の“２”を選択する。選択回路２７は、要求制御回路１から出力される書き込み選択を入力する。選択回路２７は、要求制御回路１の書き込み選択の指示に基づいて、ライトポインタ選択回路２５の選択結果（“２”）を選択する。
【０１２７】
メモリセル１０は、予約制御回路１２から出力される情報“６”とワードラインデコーダ９のデコード処理結果を入力する。
【０１２８】
この結果、バッファ２０−２の次のエントリ番号記憶領域ＮＥＮは、 “６”を書き込む。バッファ２０−２のデータ記憶領域ＤＡＴＡは、データ選択回路７から出力されるルート２書き込みデータ（ＤＡＴＡ  ２−６と表示）を書き込む。バリッドビット１１−２は、バリッド値選択回路８から出力される１‘ｂ１とバッファ２０−２のデータ記憶領域ＤＡＴＡの書き込み結果により、データを有効情報である“１”にセットする。この情報は、ライトポインタ制御回路２に送信される（ステップＳ３３）。
【０１２９】
図３２に示すように、ルート２での１回目の読み出しの場合、要求制御回路１は、ルート２読み出し要求を入力し、リードポインタ制御回路３にリードポインタアップデート要求を送信する。予約制御回路１２は、ライトポインタ制御回路２から送信される予約情報を保持していない。
【０１３０】
リードポインタ制御回路３は、要求制御回路１のリードポインタアップデート要求に基づいて、リードポインタ２４が保持しているデータ“１”をデータ“３”に変更し、更新する。リードポインタ選択回路２６は、要求制御回路１から出力されるルート２読み出し選択を入力する。リードポインタ選択回路２６は、要求制御回路１のルート２読み出し選択の指示に基づいて、リードポインタ２４の“１”を選択する。選択回路２７は、要求制御回路１から出力される読み出し選択を入力する。選択回路２７は、要求制御回路１の読み出し選択の指示に基づいて、リードポインタ選択回路２６の選択結果（“１”）を選択する。
【０１３１】
リードポインタ２４の値に従って、バッファ２０−１のデータ記憶領域ＤＡＴＡに記憶されているデータ（ＤＡＴＡ  ２−１）は、読み出されて外部に出力される。バッファ２０−１の次のエントリ番号記憶領域ＮＥＮのデータは読み出されてリードポインタ制御回路３に送信される。バッファ２０−１のデータ記憶領域ＤＡＴＡに記憶されているデータとバッファ２０−１の次のエントリ番号記憶領域ＮＥＮのデータは、更新される。バリッドビット１１−１は、有効情報である“１”を有効ではない情報“０”に変更し、データをクリアする。クリアされたバリッドビット１１−１の情報は、リードポインタ制御回路３に送信される（ステップＳ３４）。
【０１３２】
上述したように、本実施形態の共有型ＦＩＦＯ装置２００は、要求制御回路１、ライトポインタ制御回路２、リードポインタ制御回路３、データ選択回路７、バリッド値選択回路８、ワードラインデコーダ９、メモリアレイ１０、バリッドビット部１１、予約制御回路１２、ライトポインタ２１、ライトポインタ２２、リードポインタ２３、リードポインタ２４、ライトポインタ選択回路２５、リードポインタ選択回路２６、選択回路２７が設けられる。予約制御回路１２は、ライトポインタ２１の値、ライトポインタ２２の値、バリッドビット部１１の値に基づいて、次に書き込むべきエントリ番号を決定し、メモリアレイ１０の次のエントリ番号記憶領域ＮＥＮに対して次のデータが格納されるエントリを示す番号を出力する。
【０１３３】
このため、共有型ＦＩＦＯ装置２００では、第１の実施形態の効果の他に、メモリアレイ１０の構造の簡略化とアクセス性能の向上を図ることができる。
【０１３４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３５】
１  要求制御回路
２  ライトポインタ制御回路
３  リードポインタ制御回路
７  データ選択回路
８  バリッド値選択回路
９  ワードラインデコーダ
１０  メモリアレイ
１１  バリッドビット部
１１−０〜１１−７  バリッドビット
１２  予約制御回路
２０、２０−０〜２０−７  バッファ
２１、２２  ライトポインタ
２３、２４  リードポインタ
２５  ライトポインタ選択回路
２６  リードポインタ選択回路
２７  選択回路
１００、２００  共有型ＦＩＦＯ装置
ＤＡＴＡ  データ記憶領域
ＥＯＳ  エントリ要求
ＮＥＮ  次のエントリ番号記憶領域
【図１】
2020009146.tif 000003
【図２】
2020009146.tif 000004
【図３】
2020009146.tif 000005
【図４】
2020009146.tif 000006
【図５】
2020009146.tif 000007
【図６】
2020009146.tif 000008
【図７】
2020009146.tif 000009
【図８】
2020009146.tif 000010
【図９】
2020009146.tif 000011
【図１０】
2020009146.tif 000012
【図１１】
2020009146.tif 000013
【図１２】
2020009146.tif 000014
【図１３】
2020009146.tif 000015
【図１４】
2020009146.tif 000016
【図１５】
2020009146.tif 000017
【図１６】
2020009146.tif 000018
【図１７】
2020009146.tif 000019
【図１８】
2020009146.tif 000020
【図１９】
2020009146.tif 000021
【図２０】
2020009146.tif 000022
【図２１】
2020009146.tif 000023
【図２２】
2020009146.tif 000024
【図２３】
2020009146.tif 000025
【図２４】
2020009146.tif 000026
【図２５】
2020009146.tif 000027
【図２６】
2020009146.tif 000028
【図２７】
2020009146.tif 000029
【図２８】
2020009146.tif 000030
【図２９】
2020009146.tif 000031
【図３０】
2020009146.tif 000032
【図３１】
2020009146.tif 000033
【図３２】
2020009146.tif 000034