(57)【要約】【課題】複数のデータ処理ブロックからの並列出力データをメモリに蓄積した後、出力するデータバッファ装置は出力操作に要するクロック数を多く必要とする。読み出し時のクロック数増大に対処するために複数のメモリを設けたデータバッファ装置は、メモリとして最大データ数を格納可能なワード数を準備する必要がある。【解決手段】データ種別Ａ、Ｂ、Ｃが混在しないようにメモリ５ａ〜５ｇに処理済みのデータを分散して格納する。この書き込みアドレスの上位アドレスをアドレス変換回路４にて記憶しておく。アドレス変換回路４は、読み出しアドレスの上位アドレス３ビットにより、アドレス変換回路４により書き込み時に記憶しておいた、どのメモリ５ａ〜５ｇに、どのデータ種別を書き込んだかの情報を判別し、選択データとして出力選択回路６に供給する。出力時の合計クロック数を従来よりも低減し、メモリの総容量増大を回避できる。【選択図】図１
2009043140.tif 000002
【特許請求の範囲】
【請求項１】
並列に設けられたＭ個（Ｍは２以上の任意の自然数）のデータ処理ブロックからそれぞれ任意のタイミングで出力されるＭ種類の処理済みのデータを一時的に格納した後、出力可能な時点で前記Ｍ種類の処理済みのデータを定められた順序にて直列に出力するデータバッファ装置において、
並列に設けられたＮ個（Ｎは２以上の任意の自然数）のメモリと、
前記Ｍ個のデータ処理ブロックから別々に出力される、Ｍ種類の処理済みのデータとＭ種類の書き込みリクエスト信号とを入力として受け、下位アドレスが連続して変化し、かつ、上位アドレスが前記Ｍ種類の処理済みのデータのデータ種別をそれぞれ識別する仮想の書き込みアドレスを生成し出力する書き込みアドレス発生手段と、
前記書き込みアドレス発生手段から、前記処理済みのデータと前記仮想の書き込みアドレスとを入力として受けると共に、前記Ｎ個のメモリの使用状況を逐次記憶し、前記仮想の書き込みアドレスの上位アドレスと前記Ｎ個のメモリの使用状況とに基づいて、前記Ｎ個のメモリのうち、入力された処理済みのデータを書き込むべきメモリを決定して、その決定したメモリに対して前記仮想の書き込みアドレスから変換したチップセレクト信号と書き込みアドレスとを、前記処理済みのデータと共に供給することで、前記Ｎ個のメモリに前記Ｍ種類の処理済みのデータを種類別に分散して格納すると共に、前記Ｍ種類の処理済みのデータをそれぞれ格納したメモリとそのメモリに書き込んだ処理済みデータのデータ種別とを示す情報を保持するアドレス変換手段と、
読み出し命令をトリガとして、上位アドレスが前記Ｍ種類の処理済みのデータのデータ種別のうちのいずれか一のデータ種別を示し、かつ、下位アドレスが前記メモリの読み出し位置を示す読み出しアドレスを生成し出力する読み出しアドレス発生手段と、
前記読み出しアドレスの下位アドレスに基づいて、前記Ｎ個のメモリにそれぞれ１つ以上格納されている前記処理済みのデータのうち１つをそれぞれ選択し、これら選択したＮ個の前記処理済みのデータをＮ個の読み出しデータとして出力させるデータ読み出し手段と、
前記読み出しアドレスの上位アドレスと、前記アドレス変換手段に保持されている前記情報とに基づいて、前記Ｎ個の読み出しデータから１つを選択して出力する出力選択手段と
を有することを特徴とするデータバッファ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータバッファ装置に係り、複数のデータ処理ブロックから任意のタイミングで出力されるデータを一時的に格納し、全てのデータ処理ブロック又は任意のデータ処理ブロックからの出力が完了し出力可能になった時点で、各データを定められた順序にて出力するデータバッファ装置に関する。
【背景技術】
【０００２】
図４は従来のデータバッファ装置の一例のブロック図を示す。
【０００３】
同図において、入力データＡ、Ｂ、Ｃは、それぞれデータ処理ブロック１１ａ、１１ｂ、１１ｃに供給され、ここでそれぞれ互いに独立して所定の信号処理を施された後、書き込みのリクエスト信号Ａ、Ｂ、Ｃと共に書き込みアドレス発生回路１２に供給される。ここで、データ処理ブロック１１ａ、１１ｂ、１１ｃからは、例えば図５（Ａ）、（Ｂ）、（Ｃ）の斜線で示される任意のタイミングでデータ処理済みのデータＡ、Ｂ、Ｃがそれぞれ出力され、書き込みアドレス発生回路１２に供給される。
【０００４】
書き込みアドレス発生回路１２は、供給される書き込みリクエスト信号Ａ、Ｂ、Ｃにそれぞれ対応するデータ処理済みのデータＡ、Ｂ、Ｃを書き込み、そのデータ処理済みのデータＡ、Ｂ、Ｃを、アドレス（ブロック識別マーク）と共にメモリ１３に供給する。ブロック識別マークは、通常はデータＡ、Ｂ、Ｃを各々区別する整数値である。
【０００５】
図６はメモリ１３の格納状態の一例を示す図である。同図において、「ブロック識別」は上記のブロック識別マークであり、Ａ、Ｂ、Ｃはそれぞれ対応して記憶される格納データが、データ処理ブロック１１ａ、１１ｂ、１１ｃから出力されたデータであることを示す。なお、Ａ、Ｂ、Ｃはそれぞれ異なる整数値である。また、「格納データ」の、データＡ０、Ａ１、Ａ２、Ａ３、・・・はデータ処理ブロック１１ａからのデータ、データＢ０、Ｂ１、Ｂ２、・・・はデータ処理ブロック１１ｂからのデータ、データＣ０、・・・はデータ処理ブロック１１ｃからのデータであることを示す。
【０００６】
このようにしてメモリ１３に書き込まれたデータは、メモリ番地「０」より出力を開始する。まず、各データのブロック識別マークを判別し、ブロック識別マークがＡであるデータのみを走査してデータ処理ブロック１１ａから出力された全てのデータＡ０、Ａ１、Ａ２、Ａ３、・・・を出力する。続いて、メモリ番地を「０」に戻し、ブロック識別マークがＢであるデータのみを走査してデータ処理ブロック１１ｂから出力された全てのデータＢ０、Ｂ１、Ｂ２、・・・を出力する。そして、再度メモリ番地を「０」に戻し、ブロック識別マークがＣであるデータのみを走査してデータ処理ブロック１１ｃから出力された全てのデータＣ０、・・・を出力する。
【０００７】
このように、この従来のデータバッファ装置では、図５に示すように、複数のデータ処理ブロックからの出力期間に重複期間がある複数のデータを、メモリ１３でバッファリングした後、どのデータ処理ブロックから出力されたデータであるかを識別してブロックＡ、ブロックＢ、ブロックＣを１種類ずつまとめて順番に出力する。このような従来のデータバッファ装置に類似の装置として特許文献１記載のデータバッファ装置が知られている。ただし、特許文献１は一般的なＦＩＦＯ動作をする機能を実現するデータバッファ装置である。
【０００８】
図７は従来のデータバッファ装置の他の例のブロック図を示す。同図中、図４と同一構成部分には同一符号を付し、その説明を省略する。図７のデータバッファ装置は、図４のデータバッファ装置の問題であったメモリからのデータ読み出し時のクロック数増大に対処するため、図４のメモリ１３を３個のメモリ１３ａ、１３ｂ、１３ｃに分割し、データ処理ブロック１１ａ、１１ｂ、１１ｃのそれぞれの出力データをそれら３個のメモリ１３ａ、１３ｂ、１３ｃに分けて格納する構成としている。
【０００９】
３個のメモリ１３ａ、１３ｂ、１３ｃには、それぞれデータ処理ブロック１１ａ、１１ｂ、１１ｃから出力されたデータＡ、Ｂ、Ｃ毎の全てのデータが格納される。従って、出力選択回路１４は、これらメモリ１３ａ、１３ｂ、１３ｃを順次選択して各メモリからのデータを読み出すことで、ブロックＡ、ブロックＢ、ブロックＣからのデータを１種類ずつまとめて順番に出力することができる。
【００１０】
【特許文献１】特公平２−１６３８２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、図４の従来のデータバッファ装置では、３個のデータ処理ブロック１１ａ、１１ｂ、１１ｃの出力データ数がＬ個である時には、メモリ１３に対して３×Ｌのメモリ番地を３回走査する必要がある。従って、出力の処理に３×３×Ｌクロック必要である。この問題は特にデータ処理ブロックの数や、出力データ数Ｌが大であり、更に出力操作に要するクロック数に制限がある場合は致命的である。
【００１２】
一方、図７に示した従来のデータバッファ装置は、図４のデータバッファ装置の問題であった読み出し時のクロック数増大に対処するためにメモリ１３ａ、１３ｂ、１３ｃを設けている。しかし、このメモリ１３ａ、１３ｂ、１３ｃは、データ処理ブロック１１ａ、１１ｂ、１１ｃがそれぞれ出力するデータをすべて格納可能なメモリ容量が必要である。特に画像圧縮における可変長符号化回路では、データ処理ブロック１１ａ、１１ｂ、１１ｃがそれぞれ出力するデータの総和は単位時間に対して制限があるが、データ処理ブロック１１ａ、１１ｂ、１１ｃの出力データ比率は入力画像に対応して決定されるため、１つのデータ処理ブロックの出力データ数の最大値は総和のデータ数と同一となることを想定する必要がある。
【００１３】
従って、図７のデータバッファ装置では、入力データ総数がＫワードの時は、メモリ１３ａ、１３ｂ、１３ｃのメモリ容量はそれぞれＫワード必要であり、総メモリ容量は３Ｋワードとなる。これは、図４の従来のデータバッファ装置と比較して３倍のメモリ容量である。このように、データ処理ブロック数が多くなるほどメモリの総容量が大きくなるという問題がある。
【００１４】
本発明は、上記の点に鑑みなされたもので、出力時の合計クロック数を従来よりも低減し、かつ、メモリの総容量増大を回避し得るデータバッファ装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記の目的を達成するため、本発明は、並列に設けられたＭ個（Ｍは２以上の任意の自然数）のデータ処理ブロックからそれぞれ任意のタイミングで出力されるＭ種類の処理済みのデータを一時的に格納した後、出力可能な時点でＭ種類の処理済みのデータを定められた順序にて直列に出力するデータバッファ装置において、
並列に設けられたＮ個（Ｎは２以上の任意の自然数）のメモリと、Ｍ個のデータ処理ブロックから別々に出力される、Ｍ種類の処理済みのデータとＭ種類の書き込みリクエスト信号とを入力として受け、下位アドレスが連続して変化し、かつ、上位アドレスがＭ種類の処理済みのデータのデータ種別をそれぞれ識別する仮想の書き込みアドレスを生成し出力する書き込みアドレス発生手段と、書き込みアドレス発生手段から、処理済みのデータと仮想の書き込みアドレスとを入力として受けると共に、Ｎ個のメモリの使用状況を逐次記憶し、仮想の書き込みアドレスの上位アドレスとＮ個のメモリの使用状況とに基づいて、Ｎ個のメモリのうち、入力された処理済みのデータを書き込むべきメモリを決定して、その決定したメモリに対して仮想の書き込みアドレスから変換したチップセレクト信号と書き込みアドレスとを、処理済みのデータと共に供給することで、Ｎ個のメモリにＭ種類の処理済みのデータを種類別に分散して格納すると共に、Ｍ種類の処理済みのデータをそれぞれ格納したメモリとそのメモリに書き込んだ処理済みデータのデータ種別とを示す情報を保持するアドレス変換手段と、読み出し命令をトリガとして、上位アドレスがＭ種類の処理済みのデータのデータ種別のうちのいずれか一のデータ種別を示し、かつ、下位アドレスがメモリの読み出し位置を示す読み出しアドレスを生成し出力する読み出しアドレス発生手段と、読み出しアドレスの下位アドレスに基づいて、Ｎ個のメモリにそれぞれ１つ以上格納されている処理済みのデータのうち１つをそれぞれ選択し、これら選択したＮ個の処理済みのデータをＮ個の読み出しデータとして出力させるデータ読み出し手段と、読み出しアドレスの上位アドレスと、アドレス変換手段に保持されている情報とに基づいて、Ｎ個の読み出しデータから１つを選択して出力する出力選択手段とを有することを特徴とする。
【００１６】
この発明では、出力時の合計クロック数は、各データ処理ブロックの平均出力データ数をＬとするときＭ×Ｌとなる。また、この発明では、入力データ総数がＫワードで、分割されたＮ個メモリのそれぞれの記憶ワード数をＷとすると、メモリ総容量を（Ｋ＋Ｍ×Ｗ）ワードとすることができる。
【発明の効果】
【００１７】
本発明によれば、出力時の合計クロック数を従来よりも低減することができ、また、メモリの総容量増大を回避することができる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施の形態について図面と共に詳細に説明する。図１は、本発明になるデータバッファ装置の一実施の形態のブロック図である。
【００１９】
同図において、入力データＡ、Ｂ、Ｃは、それぞれデータ処理ブロック１ａ、１ｂ、１ｃに供給され、ここでそれぞれ互いに独立して所定の信号処理を施された後、書き込みのリクエスト信号Ａ、Ｂ、Ｃと共に書き込みアドレス発生回路２に供給される。ここで、データ処理ブロック１ａ、１ｂ、１ｃからは、例えば図５（Ａ）、（Ｂ）、（Ｃ）の斜線で示される任意のタイミングでデータ処理済みのデータＡ、Ｂ、Ｃがそれぞれ出力され、書き込みアドレス発生回路２に供給される。
【００２０】
書き込みアドレス発生回路２は、データ処理ブロック１ａ、１ｂ、１ｃからの書き込みリクエスト信号による書き込み要求に応じて連続的な仮想アドレス（仮想的な書き込みアドレス）を３種類生成する。そして、この仮想アドレスをそれぞれ下位アドレス（２のべき乗、４、８、１６、３２等のメモリワード位置を示すアドレス）と、上位アドレスとに分割し、アドレス変換回路４に入力する。
【００２１】
なお、仮想アドレスの上位アドレスは、データ処理ブロック１ａ〜１ｃのうちのどのデータ処理ブロックからのデータであるか（すなわち、どのデータ種別であるか）を示す。書き込みアドレス発生回路２は、データ処理ブロック１ａ〜１ｃのうちのどのデータ処理ブロックから入力されたデータであるかを、データ処理ブロック１ａ、１ｂ、１ｃと接続される各信号線に基づいて判断することができる。仮想アドレスの下位アドレスは、各データ処理ブロック毎に入力順に連続的に変化させる。
【００２２】
アドレス変換回路４は、書き込みアドレス発生回路２からの仮想アドレスとデータ処理済みのデータとを入力として受け、その入力仮想アドレスの上位アドレスと、このアドレス変換回路の後段に７個並列に設けられたメモリ５ａ（Ｍ０）、５ｂ（Ｍ１）、５ｃ（Ｍ２）、５ｄ（Ｍ３）、５ｅ（Ｍ４）、５ｆ（Ｍ５）、５ｇ（Ｍ６）のメモリ使用状況とを参照して、これらのメモリ５ａ〜５ｇのうちから実際に書き込むメモリを決定する。そして、アドレス変換回路４は、メモリ５ａ〜５ｇのうち書き込むメモリとして決定した１つのメモリに、書き込み信号（データ処理ブロック１ａ〜１ｃのいずれかで処理された入力データ）とチップセレクト信号と入力仮想アドレスの下位アドレスとを供給して、入力仮想アドレスの下位アドレスで巡回的に指定される書き込みアドレス（ここでは、書き込み／読み出しデータは４ワードであるので２ビット）に書き込み信号を書き込む。なお、アドレス変換回路４は入力仮想アドレスの上位アドレスをチップセレクト信号に変換する。
【００２３】
図２は図１のメモリ５ａ（Ｍ０）〜５ｇ（Ｍ６）のデータ格納状態の一例を示す。メモリ５ａ〜５ｇのそれぞれ個別のメモリ容量は４ワードである。図２に示すデータ発生順序表を参照して説明すると、先ずデータ処理ブロック１ａにて処理済みのデータＡ０、Ａ１を生成し、これらをメモリ５ａに格納する。続いて、データ処理ブロック１ｂにて処理済みのデータＢ０、Ｂ１を生成し、これらをデータＡ０、Ａ１と混在させないように次のメモリ５ｂに格納する。
【００２４】
次に、データ処理ブロック１ａにて生成したデータＡ２、Ａ３はメモリ５ａに格納し、その次にデータ処理ブロック１ａで生成したデータＡ４は、メモリ５ａに空きがなくなったので、次に空きのあるメモリ５ｃに格納する。以下、同様に、データ処理ブロック１ａで生成したデータＡ５〜Ａ７をメモリ５ｃに、Ａ８〜Ａ１１をメモリ５ｅに、Ａ１２〜Ａ１５をメモリ５ｇに格納し、データ処理ブロック１ｂで生成したデータＢ２、Ｂ３をメモリ５ｂに、Ｂ４〜Ｂ７をメモリ５ｆに格納し、データ処理ブロック１ｃで生成されたデータＣ０〜Ｃ３をメモリ５ｄに格納する。
【００２５】
このように、データ種別Ａ、Ｂ、Ｃが混在しないように種類別に分散してメモリ５ａ〜５ｇに処理済みのデータを格納する。書き込みアドレスの上位アドレス情報はアドレス変換回路４にて記憶しておき、読み出し時には連続したアドレスを用いてデータ種別毎に出力できるようにアドレス変換回路４にて制御する。上記の書き込みアドレスの上位アドレス情報はメモリ５ａ〜５ｇのうち何番目のメモリであるかを示す。また、下位アドレス情報はそのメモリにおける４ワードのうちの何番目のデータであるかを示す。
【００２６】
図１の読み出しアドレス発生回路３は、読み出し命令をトリガとして、下位アドレス２ビット、上位アドレス３ビット、合計５ビットの読み出しアドレスを発生しアドレス変換回路４に供給する。５ビットの読み出しアドレスは、インクリメンタルパターンで、下位アドレス２ビットはメモリ５ａ〜５ｇの読み出しアドレスとしてメモリ５ａ〜５ｇに供給される。これにより、メモリ５ａ〜５ｇからそれぞれ同時にデータが読み出されて、出力選択回路６に供給される。
【００２７】
また、アドレス変換回路４は、読み出しアドレスの上位アドレス３ビットと、アドレス変換回路４により書き込み時に記憶しておいた、どのメモリ（５ａ〜５ｇ）に、どのデータ種別（データＡ、データＢ、データＣ）を書き込んだかを示す情報とに基づいて、読み出すべきメモリを判別し、選択データとして出力選択回路６に供給する。出力選択回路６は選択データに基づいて、読み出すべきメモリからの読み出しデータを選択して出力する。
【００２８】
データＡに属するデータ種別のデータを読み出す時の読み出しアドレスの上位アドレス３ビットと、読み出しメモリとして選択されるメモリとの関係は下記の表１の通りとなる。
【００２９】
【表１】
2009043140.tif 000003
【００３０】
ただし、上記のメモリ５ａ、５ｃ、５ｅ、５ｇには図２に示した状態でデータが格納されているものとしている。
【００３１】
データＡに属するデータ種別のデータの読み出し終了後は、それぞれデータＢ、Ｃに属するデータ種別のデータの読み出し作業を実行する。このようにして、図３に模式的に示すように、各ブロックのデータは混在することなく、データ処理ブロック１ａで生成した全てのデータをまず出力し、続いて、データ処理ブロック１ｂで生成した全てのデータを出力し、最後に、データ処理ブロック１ｃで生成した全てのデータを出力する。
【００３２】
本実施の形態によれば、出力時の合計クロック数は、並列データ処理ブロック数をＭ（Ｍは２以上の任意の自然数）、出力データ数をＬ（Ｌは２以上の任意の自然数）とする時、Ｍ×Ｌであり、図４に示した従来装置のＭ×Ｍ×Ｌに対して１／Ｍ倍に改善される。
【００３３】
また、本実施の形態では、仮に入力データ総数を２３ワード、分割されたメモリのワード数を４ワード、入力データＡが２１ワード、入力データＢが１ワード、入力データＣが１ワードであったとすると、入力データＡのために４ワードメモリが６個、入力データＢのために４ワードメモリが１個、入力データＣのために４ワードメモリが１個必要であり、全部のメモリ総容量は４ワード×８個＝３２ワード≒２３ワード＋３×４ワードとなる。すなわち、本実施の形態によれば、メモリ総容量は、入力データ総数がＫワード（Ｋは自然数）で、並列データ処理ブロック数をＭ、分割されたメモリのワード数をＷ（Ｗは自然数）とすると、（Ｋ＋Ｍ×Ｗ）ワードで表される。従って、本実施の形態によれば、メモリ総容量を図７に示した従来装置のＭ×Ｋワードに対して約１／Ｍ倍と少なくできる。
【００３４】
なお、図１のブロック図において、メモリ５ａ（Ｍ０）〜５ｇ（Ｍ６）を一個のメモリとし、その格納位置を４ワード単位に区切ることで、上記の本実施の形態と同様な処理は可能であるが、そのような構成とした場合には、アドレス変換回路４とメモリの動作周波数は、データ処理ブロック数がＭ個の時は本実施の形態の動作周波数のＭ倍以上の動作周波数が必要であり、消費電力も本実施の形態のＭ倍以上に増大してしまう。従って、本実施の形態のように、メモリはデータ処理ブロックの数だけ用意する必要がある。
【図面の簡単な説明】
【００３５】
【図１】本発明のデータバッファ装置の一実施の形態のブロック図である。
【図２】本発明におけるメモリの格納状態の一例を示す図である。
【図３】本発明のデータバッファ装置のデータ出力順序を模式的に示す図である。
【図４】従来のデータバッファ装置の一例のブロック図である。
【図５】従来のデータバッファ装置のデータバッファ機能の説明図である。
【図６】図４の従来装置におけるメモリ格納状態を示す図である。
【図７】従来のデータバッファ装置の他の例のブロック図である。
【符号の説明】
【００３６】
１ａ、１ｂ、１ｃ  データ処理ブロック
２  書き込みアドレス発生回路
３  読み出しアドレス発生回路
４  アドレス変換回路
５ａ、５ｂ、５ｃ、５ｄ、５ｅ、５ｆ、５ｇ  メモリ
６  出力選択回路
【図１】
2009043140.tif 000004
【図２】
2009043140.tif 000005
【図３】
2009043140.tif 000006
【図４】
2009043140.tif 000007
【図５】
2009043140.tif 000008
【図６】
2009043140.tif 000009
【図７】
2009043140.tif 000010