(57)【要約】【課題】データ経路毎のＦＩＦＯ容量を設定する必要なしに複数のデータ経路でＦＩＦＯを共有化する。【解決手段】ＦＩＦＯ部１３０を、ＦＩＦＯのデータをＮ段のリング状にシフトするためのシフトセレクタと、容量の等しいＮ個のＦＩＦＯで構成し、Ｋ番目のデータ経路からのＦＩＦＯ書き込み要求に際しては、Ｋ＋１番目からＭ番目までのデータ経路のＦＩＦＯのデータを後段に１段シフトさせ、空いた位置のＦＩＦＯにＫ番目のデータ経路からのデータの書き込みを行い、Ｋ番目のデータ経路からのＦＩＦＯ読み出し要求に際しては、要求されたデータの読み出した後に、Ｋ番目の前記データ経路のＦＩＦＯの空き位置を埋めるように、１番目からＫ−１番目までのデータ経路のＦＩＦＯのデータを後段に１段シフトさせることで、各データ経路が使用するＦＩＦＯの容量を動的に変化させる。【選択図】  図１
2005092412.tif 000002
【特許請求の範囲】
【請求項１】
容量の等しいＮ個（Ｎは正の整数）のＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）と、
前記Ｎ個のＦＩＦＯ間でデータをＮ段のリング状にシフトするためのシフトセレクタと、
前記Ｎ個のＦＩＦＯ毎にＭ個（Ｍは正の整数、Ｍ≦Ｎ）のデータ経路から１つを選択する入力セレクタと、
前記データ経路毎に前記Ｎ個のＦＩＦＯの出力から１つを選択する出力セレクタと、
前記データ経路毎にＦＩＦＯの書き込み位置を指定する書き込みポインタおよび読み出し位置を指定する読み出しポインタと、
前記データ経路からのＦＩＦＯ書き込み要求およびＦＩＦＯ読み出し要求に応じて、前記シフトセレクタを制御してＦＩＦＯ間のデータをシフト動作し、前記Ｎ個のＦＩＦＯの書き込みおよび読み出しを制御して前記書き込みポインタおよび前記読み出しポインタを更新する制御部とを備え、
前記制御部は、任意に発生するＫ番目（Ｋは正の整数、１≦Ｋ≦Ｍ）の前記データ経路からのＦＩＦＯ書き込み要求に応じて、Ｋ＋１番目からＭ番目までの前記データ経路のＦＩＦＯのデータを後段に１段シフトさせるように前記シフトセレクタを制御し、空いた位置のＦＩＦＯにＫ番目の前記データ経路からのデータの書き込みを行わせるように前記書き込みポインタを更新し、
任意に発生するＫ番目の前記データ経路からのＦＩＦＯ読み出し要求に応じて、要求されたデータの読み出した後に、Ｋ番目の前記データ経路のＦＩＦＯの空き位置を埋めるように、１番目からＫ−１番目までの前記データ経路のＦＩＦＯのデータを後段に１段シフトさせるように前記シフトレジスタを制御するＦＩＦＯ回路。
【請求項２】
前記ＦＩＦＯへ書き込み可能なデータ経路の数を前記ＦＩＦＯの空き数以下に制限する手段を備える請求項１記載のＦＩＦＯ回路。
【請求項３】
前記データ経路毎に使用可能なＦＩＦＯの容量の上限値を設定する手段を備える請求項１記載のＦＩＦＯ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）回路に関する。
【背景技術】
【０００２】
あるデバイス間、もしくはモジュール間のデータ転送を行う場合、デバイス間、もしくはモジュール間を接続するバスやポートを有効に利用して転送能力を引き出すために、各データ経路に個別のＦＩＦＯを持たせ、バスやポートの利用可能期間中にまとめてデータ転送を行う方法が広く利用されている。
【０００３】
また、複数のデータ経路でＦＩＦＯを共用化し、各データ経路のＦＩＦＯ容量をレジスタ設定により可変とすることで、回路規模縮小とデータ転送効率向上を図る技術も開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００１−３１９４７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のデータ転送方法では、転送能力を最大限に引き出そうとした場合、転送種類別に個別のＦＩＦＯを持つために、すべてのＦＩＦＯ容量を大きくしなければならず、回路規模が大きくなるという問題がある。
【０００５】
また、複数のデータ経路でＦＩＦＯを共用化し、各データ経路のＦＩＦＯ容量をレジスタ設定により可変とする方法は、ＦＩＦＯを有効に使うためには適切にレジスタ設定を行わなければならず、状況に応じて設定を変えなければ効果を上げることができない。
【０００６】
また、この方法では、データ転送中にレジスタ設定を変更することができないため、例えば、時分割でデータ転送を行うデータ経路があった場合に、ＦＩＦＯを絶えず使用するデータ経路が１つでもあればＦＩＦＯを時分割で用いることができなくなり、ＦＩＦＯを最大限に共有化できないという問題がある。
【０００７】
本発明は、上記従来の問題点を解決するもので、複数のデータ経路でＦＩＦＯを共有化する際に、各データ経路の容量を設定する必要がなく、ＦＩＦＯを絶えず使用するデータ経路があっても問題が生ずることがなく、共有化による回路規模縮小とデータ転送効率向上を図ることができるＦＩＦＯ回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この目的を達成するために、本発明のＦＩＦＯ回路は、容量の等しいＮ個（Ｎは正の整数）のＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）と、前記Ｎ個のＦＩＦＯ間でデータをＮ段のリング状にシフトするためのシフトセレクタと、前記Ｎ個のＦＩＦＯ毎にＭ個（Ｍは正の整数、Ｍ≦Ｎ）のデータ経路から１つを選択する入力セレクタと、前記データ経路毎に前記Ｎ個のＦＩＦＯの出力から１つを選択する出力セレクタと、前記データ経路毎にＦＩＦＯの書き込み位置を指定する書き込みポインタおよび読み出し位置を指定する読み出しポインタと、前記データ経路からのＦＩＦＯ書き込み要求およびＦＩＦＯ読み出し要求に応じて、前記シフトセレクタを制御してＦＩＦＯ間のデータをシフト動作し、前記Ｎ個のＦＩＦＯの書き込みおよび読み出しを制御して前記書き込みポインタおよび前記読み出しポインタを更新する制御部とを備え、前記制御部は、任意に発生するＫ番目（Ｋは正の整数、１≦Ｋ≦Ｍ）の前記データ経路からのＦＩＦＯ書き込み要求に応じて、Ｋ＋１番目からＭ番目までの前記データ経路のＦＩＦＯのデータを後段に１段シフトさせるように前記シフトセレクタを制御し、空いた位置のＦＩＦＯにＫ番目の前記データ経路からのデータの書き込みを行わせるように前記書き込みポインタを更新し、任意に発生するＫ番目の前記データ経路からのＦＩＦＯ読み出し要求に応じて、要求されたデータの読み出した後に、Ｋ番目の前記データ経路のＦＩＦＯの空き位置を埋めるように、１番目からＫ−１番目までの前記データ経路のＦＩＦＯのデータを後段に１段シフトさせるように前記シフトレジスタを制御する。
【０００９】
上記構成によれば、Ｎ個のＦＩＦＯをＭ個のデータ経路で共有し、書き込みおよび読み出し動作を行う度にＭ個のデータ経路毎のＦＩＦＯが連続するようにシフト動作を行い、ＦＩＦＯに空きがあれば任意のデータ経路からのＦＩＦＯ書き込みを受け付けることができるため、各データ経路の容量を設定する必要がなく、各データ経路が使用するＦＩＦＯの容量が動的に変化するので、ＦＩＦＯの全容量を最大限に活用することができる。
【００１０】
さらに、本発明のＦＩＦＯ回路は、前記ＦＩＦＯへ書き込み可能なデータ経路の数を前記ＦＩＦＯの空き数以下に制限する手段を備える。
【００１１】
上記構成によれば、同時書き込み要求発生時等の条件下で、ＦＩＦＯへ書き込み可能なデータ経路の数をＦＩＦＯの空き数以下に制限できるため、ＦＩＦＯの空き数以上に書き込みが行われることがなく、複数のデータ経路からの同時書き込みによるＦＩＦＯのオーバーフローを防ぐことができる。
【００１２】
また、本発明のＦＩＦＯ回路は、前記データ経路毎に使用可能なＦＩＦＯの容量の上限値を設定する手段を備える。
【００１３】
上記構成によれば、データ経路毎のＦＩＦＯの容量の上限を設定することにより、特定のデータ経路がＦＩＦＯを占有することを防ぐことができ、ＦＩＦＯ全体の使用効率を高めることができる。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、データ経路毎にＦＩＦＯの容量を設定することなくＦＩＦＯを共有化することが可能となり、ＦＩＦＯ使用中でも各データ経路に割り当てられる容量を動的に変えることができるため、ＦＩＦＯ全体の小容量化と使用効率の向上を図ることができる。
【発明を実施するための最良の形態】
【００１５】
図１は本発明の実施の形態１に係るＦＩＦＯ回路の構成を示すブロック図である。図１において、１１０は入力セレクタ部、１２０は出力セレクタ部、１３０はＦＩＦＯ部、１４０はポインタ部、１５０はＦＩＦＯ制御部である。
【００１６】
入力セレクタ部１１０はＮ個の入力セレクタ１１０−１〜１１０−Ｎから構成され、それぞれ、Ｍ個のデータ経路である経路１データ入力〜経路Ｍデータ入力のうち１つを選択し、ＦＩＦＯ部１３０に出力する。ここで、Ｎ、Ｍは正の整数であり、Ｍ≦Ｎとする。
【００１７】
ＦＩＦＯ部１３０はＮ個のＦＩＦＯ１３１−１〜１３１−Ｎとシフトセレクタ１３２−１〜１３２−Ｎから構成される。Ｎ個のＦＩＦＯ１３１−１〜１３１−Ｎは同順にリングを構成し、ＦＩＦＯ１３１−Ｎの次はＦＩＦＯ１３１−１とする。
【００１８】
シフトセレクタ１３２−１〜１３２−Ｎは、それぞれ対応する入力セレクタの出力をＦＩＦＯ１３１−１〜１３１−Ｎに入力するとともに、Ｍ本のデータ経路に対して１〜Ｍ段のデータシフトを可能にするため、それぞれ連続した前段Ｍ個のＦＩＦＯ出力の中から１つを選択し、次段のＦＩＦＯへの入力とする。例えば、シフトセレクタ１３２−Ｍは連続したＭ個のＦＩＦＯ１３１−Ｎ、１３１−１〜１３１−（Ｍ−１）のデータ出力のいずれかを選択しＦＩＦＯ１３１−Ｍに入力する。
【００１９】
出力セレクタ部１２０はＭ個の出力セレクタ１２０−１〜１２０−Ｍから構成され、それぞれＦＩＦＯ１３１−１〜１３１−Ｎの出力のうち１つを選択し、経路１データ出力〜経路Ｍデータ出力を出力する。
【００２０】
ポインタ部１４０は経路用ポインタ１４０−１〜１４０−Ｍから構成され、経路用ポインタ１４０−１〜１４０−Ｍは、それぞれライトポインタ１４１−１〜１４１−Ｍとリードポインタ１４２−１〜１４２−Ｍとから構成されている。
【００２１】
ＦＩＦＯ制御部１５０は、ポインタ部１４０からのＭ個のライトポインタ値およびＭ個のリードポインタ値と、Ｍ個のデータ経路からの経路１読み出し信号〜経路Ｍ読み出し信号および経路１書き込み信号〜経路Ｍ書き込み信号を入力し、ＦＩＦＯの空き容量などを示す経路１ステータス信号〜経路Ｍステータス信号をＭ個のデータ経路へ出力するとともに、ＦＩＦＯ部１３０へのＦＩＦＯ制御信号およびポインタ部１４０へのポインタ制御信号を出力する。
【００２２】
以上のように構成されたＦＩＦＯ回路の基本動作を説明する。まず、初期状態はＭ個のデータ経路にＦＩＦＯ１０１−１〜１０１−Ｎが割り当てられていない状態とする。
【００２３】
あるデータ経路ｋからの経路ｋ書き込み信号（ｋは正の整数、１≦ｋ≦Ｍ）がＦＩＦＯ制御部１５０に入力された場合、ＦＩＦＯ制御部１５０はポインタ部１４０に対してポインタ制御信号を出力し、データ経路（ｋ＋１）〜データ経路Ｍのライトポインタ１４１−（ｋ＋１）〜ライトポインタ１４１−Ｍの値、およびリードポインタ１４２−（ｋ＋１）〜リードポインタ１４２−Ｍの値を１だけ進める。
【００２４】
また、ＦＩＦＯ制御部１５０はＦＩＦＯ部１３０に対してＦＩＦＯ制御信号を出力し、データ経路ｋ＋１〜データ経路Ｍに割り当てられていたＦＩＦＯデータをシフトセレクタを通して１つずつシフトさせる。
【００２５】
以上の動作により、データ経路ｋのライトポインタ１４１−ｋが示すＦＩＦＯが空になり、データ経路ｋのデータの書き込みが可能になる。これにより、データ経路ｋのライトポインタ１４１−ｋの示すＦＩＦＯにデータを書き込み、データ経路ｋのライトポインタ１４１−ｋの値を１だけ進める。
【００２６】
あるデータ経路ｋからの経路ｋ読み出し信号がＦＩＦＯ制御部１５０に入力された場合、ＦＩＦＯ制御部１５０はＦＩＦＯ部１３０に対してＦＩＦＯ制御信号を出力し、データ経路ｋのリードポインタ１４２−ｋの示すＦＩＦＯからデータを読み出し、ＦＩＦＯ制御部１５０はポインタ部１４０に対してポインタ制御信号を出力し、データ経路ｋのリードポインタ１４２−ｋの値を１だけ進める。これにより、データ経路ｋのリードポインタ１４２−ｋが示していたＦＩＦＯはデータ経路ｋの割り当てから外れる。
【００２７】
次に、ポインタ部１４０のデータ経路１〜データ経路（ｋ−１）のライトポインタ１４１−１〜ライトポインタ１４１−（ｋ−１）、およびリードポインタ１４２−１〜リードポインタ１４２−（ｋ−１）の値を１だけ進める。
【００２８】
さらに、ＦＩＦＯ制御部１５０はＦＩＦＯ部１３０に対してＦＩＦＯ制御信号を出力し、ＦＩＦＯ部１３０のデータ経路１〜データ経路（ｋ−１）に割り当てられていたＦＩＦＯデータをシフトセレクタを通して１つずつシフトさせる。
【００２９】
以上の基本動作により、各データ経路に割り当てられるＦＩＦＯが連続する状態を崩さないように制御することができ、データ転送中に各データ経路が使用するＦＩＦＯの容量を動的に変化させることが可能となる。
【００３０】
以上のように本実施形態によれば、１つのＦＩＦＯ部１３０を複数のデータ経路によって共用化することで個別にＦＩＦＯを持つよりも回路規模を小さくすることができ、また各データ経路に対して容量を設定することなくＦＩＦＯを共用化することが可能となり、ＦＩＦＯ使用中でも各データ経路に割り当てられる容量を変化させることができるため、ＦＩＦＯ全体の使用効率を高めることができる。
【００３１】
図２は本実施形態のＦＩＦＯ回路の実施例を示すブロック図であり、データ経路の数ＭおよびＦＩＦＯの数Ｎをそれぞれ３、４としている。
【００３２】
図２において、入力セレクタ部２１０は４個の入力セレクタ２１１〜２１４から構成され、それぞれ経路１データ入力〜経路３データ入力から１つのデータ経路を選択し、ＦＩＦＯ部２３０へ出力する。
【００３３】
ＦＩＦＯ部２３０は４個のＦＩＦＯ２３１〜２３４と４個のシフトセレクタ２３５〜２３８から構成されている。シフトセレクタ２３５〜２３８はそれぞれ連続した前段３個のＦＩＦＯの出力の中から１つを選択し、次段のＦＩＦＯへ入力する。
【００３４】
出力セレクタ部２２０は３個の出力セレクタ２２１〜２２３から構成され、それぞれＦＩＦＯ２３１〜２３４の出力の中から１つを選択し、経路１データ出力〜経路３データ出力へ出力する。
【００３５】
ポインタ部２４０は経路用ポインタ２４１〜経路用ポインタ２４３から構成され、各経路用ポインタはそれぞれライトポインタ２４４〜２４６とリードポインタ２４７〜２４９から構成されている。
【００３６】
ライトポインタ２４４、リードポインタ２４７はデータ経路１用のポインタとして、ライトポインタ２４５、リードポインタ２４８はデータ経路２用のポインタとして、ライトポインタ２４６、リードポインタ２４９はデータ経路３用のポインタとして用いる。
【００３７】
ＦＩＦＯ制御部２５０はポインタ部１４０からの３つのライトポインタ値および３つのリードポインタ値と、３つのデータ経路からの経路１読み出し信号〜経路３読み出し信号および経路１書き込み信号〜経路３書き込み信号を入力し、ＦＩＦＯの空き容量を示す経路１ステータス信号〜経路３ステータス信号を出力する。また、入力セレクタ部２１０への入力制御信号、ＦＩＦＯ部２３０へのＦＩＦＯ制御信号、出力セレクタ部２２０への出力制御信号、ポインタ部２４０へのポインタ制御信号を出力する。
【００３８】
図３は、以上のように構成されたＦＩＦＯ回路の実施例におけるポインタ制御およびＦＩＦＯ制御を説明する図である。図３において、３３１〜３３４は図２における４個のＦＩＦＯ２３１〜２３４である。また、３４４〜３４６は図２におけるライトポインタ２４４〜２４６が示す位置を表し、３４７〜３４９は図２におけるリードポインタ２４７〜２４９が示す位置を表す。
【００３９】
図３（ａ）にＦＩＦＯとライトポインタおよびリードポインタの初期状態を示す。初期状態では全てのライトポインタ２４４〜２４６の値、リードポインタ２４７〜２４９の値は１となっている。
【００４０】
図３（ｂ）にデータ経路１からの書き込み後の状態を示す。データ経路１から経路１書込み信号と経路１入力データが入力されると、データ経路２、３のライトポインタ２４５、２４６の値と、リードポインタ２４８、２４９の値を１進める。これによりＦＩＦＯ２３１はデータ経路１の書き込みが可能となる。データ経路１のライトポインタ２４４が示すＦＩＦＯ２３１に経路１入力データを書き込み、データ経路１のライトポインタ２４４の値を１進めると図３（ｂ）の状態になる。
【００４１】
図３（ｃ）にデータ経路３からの書き込み後の状態を示す。データ経路３から経路３書込み信号と経路３入力データが入力されると、ＦＩＦＯ２３２はデータ経路３の書き込みが可能となる。データ経路３のライトポインタ２４４が示すＦＩＦＯ２３２に経路３入力データを書き込み、データ経路３のライトポインタ２４６の値を１進めると図３（ｃ）の状態になる。
【００４２】
図３（ｄ）にデータ経路２からの書き込み後の状態を示す。データ経路２から経路２書込み信号と経路２入力デーが入力されると、データ経路３のライトポインタ２４６の値と、リードポインタ２４９の値を１進める。また、データ経路２に書き込まれたＦＩＦＯ２３２のデータを、シフトセレクタ２３７を介してＦＩＦＯ２３３にシフトする。
【００４３】
これによりＦＩＦＯ２３２は空になり、データ経路２の書き込みが可能となる。データ経路２のライトポインタ２４５が示すＦＩＦＯ２３２に経路２入力データを書き込み、データ経路２のライトポインタ２４５の値を１進めると図３（ｄ）の状態になる。
【００４４】
図３（ｅ）に再度データ経路２からの書き込み後の状態を示す。データ経路２から経路２書込み信号と経路２入力デーが入力されると、データ経路３のライトポインタ２４６の値と、リードポインタ２４９の値を１進める。また、データ経路３に書き込まれたＦＩＦＯ２３３のデータを、シフトセレクタ２３８を介してＦＩＦＯ２３４にシフトする。
【００４５】
これによりＦＩＦＯ２３３は空になり、データ経路２の書き込みが可能となる。データ経路２のライトポインタ２４５が示すＦＩＦＯ２３３に経路２入力データを書き込み、データ経路２のライトポインタ２４５の値を１進めると図３（ｅ）の状態になる。
【００４６】
図３（ｆ）にデータ経路３からの読み出し後の状態を示す。データ経路３から経路３読み出し信号が入力されると、データ経路３のリードポインタ２４９が示すＦＩＦＯ２３４からデータを読み出し、データ経路３のリードポインタの値を１進める。
【００４７】
これによりＦＩＦＯ２３４は空になる。次に、データ経路１、２のライトポインタ２４４、２４５の値と、リードポインタ２４７、２４８の値を１進め、データ経路１、２に書き込まれたＦＩＦＯ２３１、２３２、２３３のデータをそれぞれシフトセレクタ２３６、２３７、２３８を介してＦＩＦＯ２３２、２３３、２３４にシフトすると図３（ｆ）の状態になる。
【００４８】
以上のようにポインタとＦＩＦＯを制御することにより、経路２に割り当てられるＦＩＦＯが２３３、２３４と連続する状態を保つことができる。このように、本実施の形態によれば、各データ経路毎のＦＩＦＯデータがそれぞれ連続した状態を保ちながら、各データ経路がＦＩＦＯを共用することができる。
【００４９】
図４は本発明の実施の形態２に係るＦＩＦＯ回路の構成を示すブロック図である。図４においては、図１に構成に対して、アービタ部４６０を付加した構成をとる。アービタ部４６０は、データ経路毎に１〜Ｍ番目までの優先順位を設定し、ＦＩＦＯ制御部からの経路１ステータス信号〜経路Ｍステータス信号を操作するものである。
【００５０】
ＦＩＦＯ部４３０においてデータが書き込まれていないＦＩＦＯの数がｉ個（ｉは正の整数：１≦ｉ≦Ｎ）のとき、（ｉ＋１）個以上のデータ経路からデータが書き込まれるとＦＩＦＯはオーバーフローする。その対策として、同時にデータの書き込みができる経路をｉ個に限定する。そのため、アービタ部４６０に設定された優先順位がｉより大きいデータ経路に対してはＦＩＦＯが一杯であることを示すステータス信号を出力する。
【００５１】
すなわち、ＦＩＦＯ部４３０の空きＦＩＦＯの数ｉがデータ経路の数Ｍ以上であれば、全てのデータ経路は同時にＦＩＦＯに書き込むことができるが、ＦＩＦＯ部４３０の空きＦＩＦＯの数ｉがデータ経路の数Ｍ未満であれば、ＦＩＦＯに書き込みできるデータ経路の数はｉに制限される。
【００５２】
以上のように本実施形態によれば、ＦＩＦＯ部４３０の空きＦＩＦＯの数以上の書き込み信号が入力されることがなくなるため、複数のデータ経路からの同時書き込みによりＦＩＦＯ部４３０がオーバーフローするのを防ぐことができる。
【００５３】
図５は本発明の実施の形態３に係るＦＩＦＯ回路の構成を示すブロック図である。図５においては、図１に構成に対して、ＦＩＦＯ容量上限設定部５７０を付加した構成をとる。ＦＩＦＯ容量上限設定部５７０は、データ経路１〜Ｍ毎に割り当てるＦＩＦＯ数の上限を個別に設定するものである。
【００５４】
ＦＩＦＯ制御部５５０は、ＦＩＦＯ容量上限設定部５７０の設定値に従ってポインタ部５４０のＦＩＦＯポインタ５４０−１〜５４０−Ｍの深さの上限を設定する。
【００５５】
ＦＩＦＯ容量上限設定部５７０で、あるデータ経路ｋに割り当てられたＦＩＦＯ数の上限がｊ（ｊは正の整数：１≦ｊ≦Ｎ）であるとき、ポインタ５４０−ｋの深さがｊになった場合は、たとえＦＩＦＯ部５３０に空きがあっても、ＦＩＦＯ制御部５５０はＦＩＦＯが一杯であることを示すステータス信号ｋをデータ経路ｋだけに出力する。
【００５６】
以上のように本実施形態によれば、各データ経路に割り当てるＦＩＦＯ数の上限を個別に設定することができるため、特定のデータ経路がＦＩＦＯを占有することを避けることができ、ＦＩＦＯ全体の使用効率を高めることができる。
【産業上の利用可能性】
【００５７】
本発明のＦＩＦＯ回路は、データ経路毎にＦＩＦＯの容量を設定することなくＦＩＦＯを共有化することが可能となり、ＦＩＦＯ使用中でも各データ経路に割り当てられる容量を動的に変えることができるため、ＦＩＦＯ全体の小容量化と使用効率の向上が必要なＦＩＦＯ回路等の用途にも適用できる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の形態１に係るＦＩＦＯ回路の構成を示すブロック図
【図２】本発明の実施の形態１に係るＦＩＦＯ回路の実施例を示すブロック図
【図３】本発明の実施の形態１に係るＦＩＦＯ回路の実施例におけるポインタ制御およびＦＩＦＯ制御を説明する図
【図４】本発明の実施の形態２に係るＦＩＦＯ回路の構成を示すブロック図
【図５】本発明の実施の形態３に係るＦＩＦＯ回路の構成を示すブロック図
【符号の説明】
【００５９】
１１０  入力セレクタ部
１１０−１〜１１０−Ｎ  入力セレクタ
１２０  出力セレクタ部
１２０−１〜１２０−Ｍ  出力セレクタ
１３０  ＦＩＦＯ部
１３１−１〜１３１−Ｎ  ＦＩＦＯ
１３２−１〜１３２−Ｎ  シフトセレクタ
１４０  ポインタ部
１４０−１〜１４０−Ｍ  経路用ポインタ
１４１−１〜１４１−Ｍ  ライトポインタ
１４２−１〜１４２−Ｍ  リードポインタ
１５０  ＦＩＦＯ制御部
２１０  入力セレクタ部
２１１〜２１４  入力セレクタ
２２０  出力セレクタ部
２２１〜２２３  出力セレクタ
２３０  ＦＩＦＯ部
２３１〜２３４（３３１〜３３４）  ＦＩＦＯ
２３５〜２３８  シフトセレクタ
２４０  ポインタ部
２４１〜２４３  経路用ポインタ
２４４〜２４６（３４４〜３４６）  ライトポインタ
２４７〜２４９（３４７〜３４９）  リードポインタ
２５０  ＦＩＦＯ制御部
４１０  入力セレクタ部
４１０−１〜４１０−Ｎ  入力セレクタ
４２０  出力セレクタ部
４２０−１〜４２０−Ｍ  出力セレクタ
４３０  ＦＩＦＯ部
４３１−１〜４３１−Ｎ  ＦＩＦＯ
４３２−１〜４３２−Ｎ  シフトセレクタ
４４０  ポインタ部
４４０−１〜４２４０−Ｍ  経路用ポインタ
４４１−１〜４１−Ｍ  ライトポインタ
４４２−１〜４４２−Ｍ  リードポインタ
４５０  ＦＩＦＯ制御部
４６０  アービタ部
５１０  入力セレクタ部
５１０−１〜５１０−Ｎ  入力セレクタ
５２０  出力セレクタ部
５２０−１〜５２０−Ｍ  出力セレクタ
５３０  ＦＩＦＯ部
５３１−１〜５３１−Ｎ  ＦＩＦＯ
５３２−１〜５３２−Ｎ  シフトセレクタ
５４０  ポインタ部
５４０−１〜５４０−Ｍ  経路用ポインタ
５４１−１〜５４１−Ｍ  ライトポインタ
５４２−１〜５４２−Ｍ  リードポインタ
５５０  ＦＩＦＯ制御部
５７０  ＦＩＦＯ容量上限設定部
【図１】
2005092412.tif 000003
【図２】
2005092412.tif 000004
【図３】
2005092412.tif 000005
【図４】
2005092412.tif 000006
【図５】
2005092412.tif 000007