(57)【要約】【課題】  高速或は低速のいずれのＦＩＦＯにデータを入力するかは予め固定的に決定されており、入力されるデータの入力速度や出力速度などに応じて適宜切り替えられるものではなかった。【解決手段】  低速で大容量のメモリ１２１と、メモリ１２１よりも高速で、且つ容量の小さいレジスタ１２４と、入力したデータをメモリ１２１に直接入力するか、レジスタ１２４に直接入力するかを制御信号２６１，２６３に応じて切り替えるデマルチプレクサ１２０、マルチプレクサ１２２と、少なくともデータの入出力タイミングに応じて制御信号２６１，２６３を発生してデマルチプレクサ１２０、マルチプレクサ１２２に供給する判定回路１１８とを有する。【選択図】  図２
2006252153.tif 000002
【特許請求の範囲】
【請求項１】
入力したデータを先入れ先出し方式のバッファを介して出力するデータ処理装置であって、
第１ＦＩＦＯと、
前記第１ＦＩＦＯよりも高速で、且つ容量の小さい第２ＦＩＦＯと、
入力したデータを前記第１ＦＩＦＯに直接入力するか、前記第２ＦＩＦＯに直接入力するかを制御信号に応じて切り替える選択回路と、
少なくともデータの入出力タイミングに応じて前記制御信号を発生して前記選択回路に供給する判定手段とを有し、
前記データを前記第２ＦＩＦＯを介して出力することを特徴とするデータ処理装置。
【請求項２】
入力したデータを先入れ先出し方式のバッファを介して出力するデータ処理装置であって、
第１ＦＩＦＯと、
前記第１ＦＩＦＯよりも高速で且つメモリ容量が小さいＦＩＦＯであって、入力したデータを格納する第２ＦＩＦＯと、
データを前記第２ＦＩＦＯから直接出力するか、前記第１ＦＩＦＯを介して出力するかを制御信号に応じて切り替える選択回路と、
少なくともデータの入出力タイミングに応じて前記制御信号を発生して前記選択回路に供給する判定手段と、
を有することを特徴とするデータ処理装置。
【請求項３】
前記判定手段は、更に、前記データの発生源の状態変数、前記データの受取り先の状態変数に基づいて前記制御信号を発生することを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記データの入出力タイミングは、パラメータとして前記データ処理装置の制御部から設定されることを特徴とする請求項１乃至３のいずれか１項に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、先入れ先出し方式のバッファ（ＦＩＦＯ）に関し、特に先入れ先出しバッファが空（エンプティ）、もしくは一杯（フル）であるために停止する期間を短縮する方法に関する。
【背景技術】
【０００２】
先入れ先出し（ＦＩＦＯ：First-In First-Out）バッファは通常、データを入力するための入力ポートと、データを出力するための出力ポートとの間にバッファを接続し、データの入出力をそれぞれ独自のタイミングで実行できるようにしている。このようなＦＩＦＯバッファに求められる条件としては、バッファそのものに起因する遅延が少ないこと、バッファに格納できるデータ量が多いことなどが挙げられる。これは、入力ポートと出力ポートとの間で転送されるデータ量が多く、かつ、データの入出力タイミングが大きく異なっている場合でも、入出力ポート間でのデータの同期を取りやすくするためである。
【０００３】
このようなＦＩＦＯバッファは、そのバッファを構成するメモリ素子が高速かつ大容量となるため高価なものとなる。そこで従来は、上述のような入出力ポート間でのデータ転送タイミングや転送データ量に基づいて、最適な速度及び容量のＦＩＦＯバッファを決定していた。或は、高速であるが小容量なメモリ（例えばレジスタ）と、低速であるが大容量のメモリ（例えばＤＲＡＭ）等と組み合わせて使用していた。
【０００４】
特許文献１に記載されているＦＩＦＯメモリは、高速な第１ＦＩＦＯメモリと、低速の第２ＦＩＦＯメモリとを直列に接続して構成されている。そして入力側のＦＩＦＯメモリにデータがあり、かつ出力側のＦＩＦＯメモリがフルではない場合に、入力側のＦＩＦＯから出力側のＦＩＦＯにデータを転送してＦＩＦＯバッファを形成している。
【特許文献１】特開平７−５７４５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、この従来の構成では、高速或は低速のいずれのＦＩＦＯにデータを入力するかは予め固定的に決定されており、入力されるデータの入力速度や出力速度などに応じて適宜切り替えられるものではなかった。このため、データの入出力タイミングや転送するデータ量が変化した場合には、データ転送の効率が低下することになる。
【０００６】
本発明は、上記従来技術の欠点を解決することにある。
【０００７】
また本願発明の特徴は、データの入出力タイミングに応じてデータの流れを切り替え、データの遅れを少なくして先入れ先出し方式でデータを出力できるデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記特徴は、独立クレームに記載の特徴の組み合わせにより達成され、従属項は発明の単なる有利な具体例を規定するものである。
【０００９】
本願発明の一態様に係るデータ処理装置は、以下のような構成を備える。即ち、
入力したデータを先入れ先出し方式のバッファを介して出力するデータ処理装置であって、
第１ＦＩＦＯと、
前記第１ＦＩＦＯよりも高速で、且つ容量の小さい第２ＦＩＦＯと、
入力したデータを前記第１ＦＩＦＯに直接入力するか、前記第２ＦＩＦＯに直接入力するかを制御信号に応じて切り替える選択回路と、
少なくともデータの入出力タイミングに応じて前記制御信号を発生して前記選択回路に供給する判定手段とを有し、
前記データを前記第２ＦＩＦＯを介して出力することを特徴とする。
【００１０】
また本願発明の一態様に係るデータ処理装置は、以下のような構成を備える。即ち、
入力したデータを先入れ先出し方式のバッファを介して出力するデータ処理装置であって、
第１ＦＩＦＯと、
前記第１ＦＩＦＯよりも高速で且つメモリ容量が小さいＦＩＦＯであって、入力したデータを格納する第２ＦＩＦＯと、
データを前記第２ＦＩＦＯから直接出力するか、前記第１ＦＩＦＯを介して出力するかを制御信号に応じて切り替える選択回路と、
少なくともデータの入出力タイミングに応じて前記制御信号を発生して前記選択回路に供給する判定手段とを有することを特徴とする。
【００１１】
尚、この発明の概要は、必要な特徴を全て列挙しているものでなく、よって、これら特徴群のサブコンビネーションも発明になり得る。
【発明の効果】
【００１２】
本発明によれば、データの入出力タイミングに応じて内部のＦＩＦＯを切り替えることにより、データの遅れを少なくして先入れ先出し方式でデータを出力できるという効果がある。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１４】
図１は、本発明の実施の形態に係るデータ処理装置のデータ入出力部の構成を示すブロック図である。
【００１５】
ここでは、先入れ先出しバッファ（ＦＩＦＯ）１００、先入れ先出しバッファ１００へデータを供給する入力処理部１０１、先入れ先出しバッファ１００からデータを入力して出力する出力処理部１０２、及び、この装置全体の動作を制御するＣＰＵ１０３とを備えている。このＣＰＵ１０３には、このＣＰＵ１０３により実行されるプログラムや各種データを記憶しているＲＯＭ１０４、ＣＰＵ１０３による制御処理時に各種データを一時的に記憶するワークエリアとして使用されるＲＡＭ１０５が接続されている。
【００１６】
尚、ここで入力処理部１０１と出力処理部１０２のいずれにおいて、このデータ処理装置の動作中に、データの入力タイミング、出力タイミング、データ転送量が変化するものとする。例えば、動的再構成デバイスのように、入力処理部１０１は、ＣＰＵ１０３からの構成情報（configuration data）２１１によって、その処理内容が変化する。これにより、このデータ処理装置の動作中に、データの入力タイミング、データの出力タイミング、転送するデータ量が変化する。これは出力処理部１０２においても同様であり、ＣＰＵ１０３からの構成情報（configuration data）２１２によって、その処理内容が変化するものとする。
【００１７】
尚、このＣＰＵ１０３は、ＦＩＦＯ１００、入力処理部１０１、出力処理部１０２を制御できるものであれば、ＣＰＵではなくシーケンサ等でも構成することができる。
【００１８】
以下、図１に示す装置の動作を説明する。
【００１９】
ＣＰＵ１０３は、入力処理部１０１、出力処理部１０２における処理内容を設定する。この処理内容は、例えば画像処理における解像度変換（拡大或は縮小）処理であったり、水平方向の画素値の平均を求めることによるローパスフィルタであったりする。
【００２０】
入力処理部１０１は、ＣＰＵ１０３によって設定された内容に応じてデータ処理を行い、ＦＩＦＯ１００からのレディ信号２０３が「１」（ＦＩＦＯ１００がデータ受け取り可能）であればデータ２０１を出力する。これと同時に、データ２０１が有効であることを示すデータ有効信号２０２を「１」にする。尚、レディ信号２０３が「０」（ＦＩＦＯ１００がデータ受け取り不可能）であれば、このレディ信号２０３が「１」になるまで待機する。
【００２１】
ＦＩＦＯ１００は、データを受け取り可能な状態であれば、レディ信号２０３を「１」にし、そうでなければ「０」で出力する。更にＦＩＦＯ１００は、データ受け取り可能（レディ信号２０３＝１）な状態で、データ有効信号２０２が「１」で出力されていると、データ２０１を受け取って、内部メモリ（ＦＩＦＯバッファ）に格納する。更に、ＦＩＦＯ１００は、ＦＩＦＯ１００に一つ以上のデータがあり、その中で最も古く入力されたデータが出力可能である場合、そのデータをデータ２０４として出力処理部１０２に出力すると共に、データ有効信号２０５を「１」にする。出力処理部１０２は、データを受信できない場合には受信不可信号２０６を「１」にして出力する。ＦＩＦＯ１００は、受信不可信号２０６が「０」（出力処理部１０２がデータの受取り完了）になるとデータ２０４を出力処理部１０２に出力し、データ有効信号２０５を「１」にする。そして、受信不可信号２０６が「１」になると、そのデータ２０４が出力処理部１０２で受け取られたことを示しているため、そのデータをＦＩＦＯ１００から消去する。
【００２２】
この時、ＦＩＦＯ１００の内部の動作は、ＣＰＵ１０３から供給されるＦＩＦＯ１００のパラメータ２１３、入力処理部１０１からの状態信号２１４（状態変数、構成情報、データ出力タイミング）、出力処理部１０２からの状態信号２１５（状態変数、構成情報、データ入力タイミング）のうち、少なくとも一つのパラメータ、或は信号によって変化する。
【００２３】
［実施の形態１］
図２は、本発明の実施の形態１に係るＦＩＦＯバッファ１００の機能構成を示すブロック図である。尚、図２は簡略化のため、低速なＦＩＦＯと高速なＦＩＦＯを順に直列に２つ組み合わせたものを示しているが、低速なＦＩＦＯと高速なＦＩＦＯの接続順を逆にしたものや、２つ以上のＦＩＦＯを組み合わせることも可能である。
【００２４】
ＦＩＦＯ１００は、判定回路１１８、ＦＩＦＯ制御部１３０、低速なＦＩＦＯを構成するメモリ１２１、入力用のデマルチプレクサ１２０、出力用のマルチプレクサ１２２、及び高速なＦＩＦＯ構成するレジスタ１２４とを備えている。
【００２５】
判定回路１１８は、入力したデータ２０１をメモリ（低速なＦＩＦＯ）１２１とレジスタ（高速なＦＩＦＯ）１２４のいずれに格納するかを判断し、その結果をＦＩＦＯ制御部１３０に出力する。この判定に際しては、レジスタ１２４に格納されているデータ量２６５、メモリ１２１に格納されているデータ量２６２、入力処理部１０１からの状態信号２１４、出力処理部１０２からの状態信号２１５の少なくとも１つ以上とパラメータ１１７とが参照される。
【００２６】
この結果、ＦＩＦＯ制御部１３０は、デマルチプレクサ１２０への制御信号２６１とマルチプレクサ１２２への制御信号２６３により、入力したデータ２０１をメモリ１２１か、レジスタ１２４のいずれに入力するかを切り替える。
【００２７】
図３（Ａ）（Ｂ）〜図８は、本実施の形態１に係るＦＩＦＯ１００の動作例を説明する図である。
【００２８】
図３（Ａ）及び図６（Ａ）は、メモリ１２１とレジスタ１２４の容量、遅れ量（LATENCY）、及びサイクルタイムを示している。ここではレジスタ１２４のメモリ容量は、１［バイト］、遅れ量は「１」、サイクルタイムは「１」であり、メモリ１２１のメモリ容量は１０［バイト］、遅れ量は「４」、サイクルタイムは「２」である。図３（Ｂ）は、サイクルタイムが１２サイクルの場合における、最適な入力データ２０１と出力データ２０４の入出力タイミングを示している。
【００２９】
図４は、パラメータ１１７に設定された値によって、低速なメモリ１２１が空で高速なレジスタ１２４に空きがある時は、入力したデータ２０１を高速なレジスタ１２４に格納し、それ以外はデータ２０１を低速なメモリ１２１に格納するように設定されている場合の動作を説明するタイミング図である。
【００３０】
また図５は、入力したデータ２０１を常に高速なレジスタ１２４に格納するように設定されている場合の動作を説明するタイミング図である。
【００３１】
図４では、図３（Ｂ）に示すタイミングでデータ２０１が入力されており、最初の２つのデータ「１」「２」が順次レジスタ１２４に格納されている。しかし、データ「２」の出力時に出力処理部１０２からの受信不可信号２０６が「１」であるためデータ２０４が出力できなくなってレジスタ１２４に空きがなくなるため、次のデータ「３」［４］はメモリ１２１に格納される。メモリ１２１では４サイクルタイムの遅延が生じ、メモリ１２１からデータ「３」が出力される時点でレジスタ１２４からのデータ「２」が出力処理部１０２で受信される。これによりメモリ１２１から出力されるデータ［３］はマルチプレクサ１２２を介してレジスタ１２４に入力され、１サイクルタイム後にデータ２０４として出力処理部１０２に出力される。次のデータ「４」も同様にして、１サイクルタイム後にデータ２０４として出力処理部１０２に出力される。
【００３２】
これに対して図５の例では、最初の２つのデータ「１」「２」波、図４の場合と同様にして順次レジスタ１２４に格納される。そしてデータ「２」の出力時に出力処理部１０２からの受信不可信号２０６が「１」であるためデータ２０４が出力できなくなってレジスタ１２４に空きがなくなるため、次のデータ「３」はレジスタ１２４が空くのを待つ状態となる。そして前述の図４と同じタイミングで、出力処理部１０２からの受信不可信号２０６が「０」となってレジスタ１２４からのデータ「２」が出力処理部１０２で受信される。次のデータ「４」は、図４の場合と同様に、データ「３」の１サイクルタイム後にデータ２０４として出力処理部１０２に出力される。
【００３３】
このように図４及び図５では、図４の場合（１２サイクル）の方が図５の場合（１６サイクル）よりも、サイクルタイムが短くなるために高い性能となる例を示している。尚、入力処理部１０１からＦＩＦＯ１００へ出力されるデータの最適なタイミングは、１２サイクルタイムの場合は「 １ − ２ − ３ − ４ − − − − − − 」であり、ＦＩＦＯ１００から出力処理部１０２に出力されるデータの最適なタイミングは「 １ − − − − − − ２ − ３ − ４ 」であると仮定する（数字が記入されているサイクルはデータが出力／入力されるサイクルを示し、「−」が記入されているサイクルは、データが出力／入力されないサイクルを示す）。サイクルタイムは、図４の場合、パラメータ１１７が１２サイクルとなり、図５の場合は、パラメータ１１７が１６サイクルの場合に相当している。
【００３４】
また図６（Ｂ）のような最適なデータの入出力タイミングに対して、図７及び図８では、パラメータ１１７に設定された値が図７の場合よりも図８の場合の方が、サイクルタイムが短くなるために高い性能となる例を示している。尚、図６（Ｂ）に示すように、入力処理部１０１からＦＩＦＯ１００へ入力されるデータの最適なタイミングは「 １ ２ ３ ４ − 」であり、ＦＩＦＯ１００から出力処理部１０２に出力されるデータの最適なタイミングは「 １ − ２ ３ ４ 」であると仮定する。
【００３５】
図７では、最初のデータ「１」「２」がそれぞれ順次レジスタ１２４に入力され、受信不可信号２０６により、レジスタ１２４からのデータ「２」の出力タイミングが１サイクル遅れることによりレジスタ１２４がフルの状態となり、次のデータ「３」がメモリ１２１に入力される。更にこのデータ「３」はメモリ１２１で４サイクル遅れ、結果的に５サイクル送れてレジスタ１２４に入力されて６サイクル目で出力される。次にデータ「４」に関しても同様に、メモリ１２１内での２サイクルタイムの遅れにより、１サイクル分入力データ２０１が待たされ、データ２０１から６サイクルの遅れが生じている。この図７の例は、パラメータ１１７が８サイクルの場合に相当している。
【００３６】
また図８では、常にレジスタ１２４にデータが入力される。レジスタ１２４からデータ「２」が出力される際、受信不可信号２０６が「１」になってデータ「２」の出力が１サイクル遅れている。これにより入力するデータ２０１は１サイクル遅延される。しかし最終的には、１サイクル分が追加された６サイクル（パラメータ１１７に相当）でデータ転送が終了している。
【００３７】
このように、ＦＩＦＯ１００に接続されている入力処理部１０１，出力処理部１０２の入力／出力タイミングに合わせて、入力データ２０１を格納するＦＩＦＯを選択した方が高い性能を得られる。
【００３８】
本実施の形態１では、入力処理部１０１，出力処理部１０２の入力／出力タイミングが変化した際、ＦＩＦＯ１００のパラメータ１１７を変更することにより、入力したデータ２０１を格納するメモリ／レジスタを選択することができるため、高い性能を得ることができる。
【００３９】
図９は、本実施の形態に係るＣＰＵ１０３の処理を説明するフローチャートで、この処理を実行するプログラムはＲＯＭ１０４に記憶されている。
【００４０】
まずステップＳ１で、データ２０１の出力状態、出力タイミングなどを決定する入力処理部１０１の構成情報２１１を入力処理部１０１へ設定し、ステップＳ２では、データ２０４の入力状態、入力タイミングなどを決定する出力処理部１０２の構成情報２１２を出力処理部１０２へ設定する。そしてステップＳ３で、これら情報を基にＦＩＦＯバッファ１００に設定するパラメータ１１７を決定してパラメータ２１３としてＦＩＦＯバッファ１００に設定する。
【００４１】
このようにして入力処理部１０１からＦＩＦＯバッファ１００に供給されるデータと、そのタイミング、及びＦＩＦＯバッファ１００から出力されるデータを受け取る出力処理部１０２におけるデータ２０４の入力タイミング等が決定され、これに応じたＦＩＦＯバッファ１００の構成が決定されることになる。
【００４２】
次に本実施の形態に係るＦＩＦＯバッファ１００におけるＦＩＦＯの切り替え処理について説明する。
【００４３】
図１０は、本実施の形態に係るＦＩＦＯバッファ１００の判定回路１１８における処理を説明するフローチャートである。
【００４４】
まずステップＳ１１で、入力処理部１０１の状態信号２１４を入力して、入力処理部１０１の状態を取得する。次にステップＳ１２で、出力処理部１０２の状態信号２１５を入力して、出力処理部１０２の状態を取得する。次にステップＳ１３で、メモリ１２１の状態を取得し、ステップＳ１４でレジスタ１２４の状態を取得する。そしてステップＳ１５で、ＣＰＵ１０３から設定されたパラメータ１１７の値を基に、データ２０１をどこに入力するかをＦＩＦＯ制御部１３０に指示する。これによりＦＩＦＯ制御部１３０は、デマルチプレクサ１２０、マルチプレクサ１２２を切り替えて、データ２０１をメモリ１２１に入力するか、或はレジスタ１２４に入力するかを切り替える。
【００４５】
これにより例えば、前述の図３（Ｂ）に示すようなデータの入出力タイミングが設定されている場合は、図４に示すような条件でデータ２０１の入力を切り替え、図６（Ｂ）に示すようなデータの入出力タイミングが設定されている場合は、図８に示すような条件でデータ２０１を入力するのが好ましいと判断されてＦＩＦＯ制御部１３０による切り替え制御が実行される。
【００４６】
尚、ＦＩＦＯ制御部１３０は、例えば図４及び図７の場合では、メモリ１２１とレジスタ１２４の状態を入力し、メモリ１２１が空でレジスタ１２４に空きがあるときは、データ２０１がデマルチプレクサ１２０、マルチプレクサ１２２をスルーして直接レジスタ１２４に入力されるように設定し、それ以外ではデータ２０１がデマルチプレクサ１２０によりメモリ１２１に入力され、メモリ１２１の出力がマルチプレクサ１２２を介してレジスタ１２４に入力されるように切り替える。
【００４７】
一方、図５及び図８の場合は、常にデータ２０１がデマルチプレクサ１２０、マルチプレクサ１２２をスルーして直接レジスタ１２４に入力されるように設定する。
【００４８】
［実施の形態２］
次に本発明の実施の形態２について説明する。この実施の形態２の基本構成は前述の実施の形態１の場合とほぼ同様であるが、実施の形態２では、メモリ１２１とレジスタ１２４の配置が入れ替わっている点が異なっている。
【００４９】
図１１は、本発明の実施の形態２に係るＦＩＦＯ１００ａの機能構成を示すブロック図で、前述の実施の形態１の構成と共通する部分は同じ記号で示している。尚、図１１は簡略化のため、低速なＦＩＦＯと高速なＦＩＦＯを順に直列に２つ組み合わせたものを示しているが、低速なＦＩＦＯと高速なＦＩＦＯの接続順を逆にしたものや、２つ以上のＦＩＦＯを組み合わせることも可能である。
【００５０】
ＦＩＦＯ１００ａは、判定回路１１８と、ＦＩＦＯ制御部１３１と、低速なメモリ１２１と、入力のデマルチプレクサ１２０と、出力のマルチプレクサ１２２と、高速なレジスタ１２４とを備えている。
【００５１】
この実施の形態２では、判定回路１１８は、高速なレジスタ１２４に格納されたデータを低速なメモリ１２１に転送するか、或はそのまま出力するか否かを判断し、その結果をＦＩＦＯ制御部１３０に出力する。この判断に際しては、前述の実施の形態１と同様に、高速なレジスタ１２４に格納されたデータ量２６５、低速なメモリ１２１に格納されたデータ量２６２、入力処理部１０１の状態２１４、出力処理部１０２の状態２１５の少なくとも１つ以上とパラメータ１１７とを用いる。
【００５２】
この結果によって、デマルチプレクサ１２０の制御信号２６１とマルチプレクサ１２２の制御信号２６３を設定し、入力データ２０１をメモリ１２１に格納するか、レジスタ１２４に格納するかを切り替える。
【００５３】
図１２（Ａ）（Ｂ）〜図１７は、本実施の形態２に係るＦＩＦＯ１００ａの動作例を説明する図である。
【００５４】
図１２（Ａ）及び図１５（Ａ）は、メモリ１２１とレジスタ１２４の容量、遅れ量（LATENCY）、及びサイクルタイムを示している。ここではレジスタ１２４のメモリ容量は、２［バイト］、遅れ量は「１」、サイクルタイムは「１」であり、メモリ１２１のメモリ容量は１０［バイト］、遅れ量は「４」、サイクルタイムは「２」である。
【００５５】
図１２（Ｂ）は、サイクルタイムが１０サイクルの場合における、最適な入力データ２０１と出力データ２０４の入出力タイミングを示している。ここでは低速なメモリ１２１の特性は、メモリ容量が「１０」、レイテンシが「４」、サイクルタイムが「２」である。高速なレジスタ１２４の特性は、メモリ容量が「２」、レイテンシが「１」、サイクルタイムが「１」となっている。
【００５６】
図１３は、パラメータ１１７に設定された値に基づいて、高速なレジスタ１２４の空き容量が「１」であれば、高速なレジスタ１２４内のデータを低速なメモリ１２１に転送する。但し、低速なメモリ１２１にデータがなく、受信不可信号（OUT DATA FULL）が「０」の場合は、レジスタ１２４のデータを出力する場合におけるデータの入出力タイミングを示している。
【００５７】
図１３では、図１２（Ｂ）に示すようなタイミングでデータ２０１が入力されると、レジスタ１２４は最初のデータ「１」を入力し、次のサイクルで受信不可信号２０６が「０」であるため、そのデータ「１」を出力データ２０４として出力する。次にデータ「２」も同様にレジスタ１２４に入力されるが、このデータ［２］の出力タイミングで受信不可信号２０６が「１」であるためレジスタ１２４からメモリ１２１に入力される。このメモリ１２１に格納されたデータ「２」は、次に受信不可信号２０６が「０」になるタイミングでデータ２０４として出力される。それ以降のデータ「３」「４」に関しても同様に、レジスタ１２４からメモリ１２１に入力されてメモリ１２１から出力される。
【００５８】
図１４は、レジスタ１２４の空き容量が「０」であれば、レジスタ１２４のデータを低速なメモリ１２１に転送する。但し、メモリ１２１にデータがなく、受信不可信号（OUT DATA FULL）が「０」である場合は、レジスタ１２４のデータを出力する場合におけるデータの入出力タイミングを示している。
【００５９】
図１４では、図１２（Ｂ）に示すようなタイミングでデータ２０１が入力されると、レジスタ１２４は最初のデータ「１」を入力し、次のサイクルで受信不可信号２０６が「０」であるため、そのデータ「１」を出力データ２０４として出力する。次にデータ「２」「３」も同様にレジスタ１２４に入力されるが、このデータ［２］の出力タイミングで受信不可信号２０６が「１」であるためレジスタ１２４からメモリ１２１に入力される点は前述の図１３と同様である。但し、図１４では、受信不可信号２０６が「０」になった時点でメモリ１２１がデータ「２」を出力できる状態になっていないため、出力データ２０４に１サイクルの遅延が生じ、更に、最後のデータ「４」は、レジスタ１２４から直接出力される点が異なっている。
【００６０】
このように図１３は、図１４の場合よりもサイクルタイムが短くなるため、高い性能となる例を示している。尚、入力処理部１０１からＦＩＦＯ１００ａへ出力されるデータの最適なタイミングは、「１ ２ ３ ４ − − − − − −」であり、ＦＩＦＯ１００ａから出力処理部１０２に入力されるデータの最適なタイミングは「１ − − − − ２ − ３ − ４」であると仮定する（数字はデータが出力／入力されることを示し、「−」はデータが出力／入力されないことを示す）。
【００６１】
図１３では、パラメータ１１７が１０サイクルで、図１４では、パラメータ１１７が１１サイクルとなる。
【００６２】
図１６は、メモリ１２１が空きで受信不可信号２０６が［０］であればレジスタ１２４のデータを出力し、そうでないときはレジスタ１２４の空き容量が「１」であればデータをメモリ１２１に転送する場合の信号のタイミング例を示している。
【００６３】
また図１７は、メモリ１２１が空きで受信不可信号２０６が［０］であればレジスタ１２４のデータを出力し、そうでないときはレジスタ１２４の空き容量が「０」であればデータをメモリ１２１に転送する場合の信号のタイミング例を示している。尚、この場合もＣＰＵ１０３及び判定回路１１８における処理は、前述の実施の形態１の場合と基本的に同じである。
【００６４】
図１６、図１７は、パラメータ１１７に設定された値が（図１６である時よりも図１７の場合の方が、サイクルタイムが短くなるために高い性能となる例を示している。ここでは図１５（Ｂ）に示すように、入力処理部１０１からＦＩＦＯ１００ａへ入力されるデータの最適なタイミングは「 １ ２ − ３ 」であり、ＦＩＦＯ１００ａから出力処理部１０２に出力されるデータの最適なタイミングは「 １ − ２ ３ 」であると仮定する。図１６は、パラメータ１１７が６サイクルで、図１７では、パラメータ１１７は４サイクルとなる。
【００６５】
このように、ＦＩＦＯ１００ａに接続されている入力処理部１０１、出力処理部１０２の入力／出力タイミングに合わせて、レジスタ１２４に格納されたデータを低速なメモリ１２１に転送するか否かを選択した方が高い性能を得られる。
【００６６】
本実施の形態２では、入力処理部１０１、出力処理部１０２におけるデータの入力／出力タイミングが変化した際、ＦＩＦＯ１００ａのパラメータ１１７を変更することで、レジスタ１２４に格納されたデータをメモリ１２１に転送するか否かを選択することができるため、高い性能を得ることができる。
【００６７】
以上説明したように本実施の形態２によれば、データを出力する装置とデータを入力する装置のデータの入出力タイミングやデータ転送量が動作中に変化した際に、装置の特性に合わせてＦＩＦＯパラメータを設定することで、ＦＩＦＯバッファにおけるデータの遅延を少なくでき、より高いＦＩＦＯ性能を得ることができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態に係るデータ処理装置のデータ入出力部の構成を示すブロック図である。
【図２】本発明の実施の形態１に係るＦＩＦＯバッファの機能構成を示すブロック図である。
【図３】本実施の形態１に係るＦＩＦＯバッファのメモリとレジスタの設定例（Ａ）及びデータの入出力タイミング例（Ｂ）を示す図である。
【図４】本実施の形態１に係るＦＩＦＯバッファの動作例を説明する図である。
【図５】本実施の形態１に係るＦＩＦＯバッファの動作例を説明する図である。
【図６】本実施の形態１に係るＦＩＦＯバッファのメモリとレジスタの設定例（Ａ）及びデータの入出力タイミング例（Ｂ）を示す図である。
【図７】本実施の形態１に係るＦＩＦＯバッファの動作例を説明する図である。
【図８】本実施の形態１に係るＦＩＦＯバッファの動作例を説明する図である。
【図９】本実施の形態に係るＣＰＵの処理を説明するフローチャートである。
【図１０】本実施の形態に係るＦＩＦＯバッファの判定回路における処理を説明するフローチャートである。
【図１１】本発明の実施の形態２に係るＦＩＦＯバッファの機能構成を示すブロック図である。
【図１２】本実施の形態２に係るＦＩＦＯバッファのメモリとレジスタの設定例（Ａ）及びデータの入出力タイミング例（Ｂ）を示す図である。
【図１３】本実施の形態２に係るＦＩＦＯバッファの動作例を説明する図である。
【図１４】本実施の形態２に係るＦＩＦＯバッファの動作例を説明する図である。
【図１５】本実施の形態２に係るＦＩＦＯバッファのメモリとレジスタの設定例（Ａ）及びデータの入出力タイミング例（Ｂ）を示す図である。
【図１６】本実施の形態２に係るＦＩＦＯバッファの動作例を説明する図である。
【図１７】本実施の形態２に係るＦＩＦＯバッファの動作例を説明する図である。
【図１】
2006252153.tif 000003
【図２】
2006252153.tif 000004
【図３】
2006252153.tif 000005
【図４】
2006252153.tif 000006
【図５】
2006252153.tif 000007
【図６】
2006252153.tif 000008
【図７】
2006252153.tif 000009
【図８】
2006252153.tif 000010
【図９】
2006252153.tif 000011
【図１０】
2006252153.tif 000012
【図１１】
2006252153.tif 000013
【図１２】
2006252153.tif 000014
【図１３】
2006252153.tif 000015
【図１４】
2006252153.tif 000016
【図１５】
2006252153.tif 000017
【図１６】
2006252153.tif 000018
【図１７】
2006252153.tif 000019