(57)【特許請求の範囲】
【請求項１】
入力されたデータをバッファメモリに一時的に記憶し、入力されたデータとは異なるタイミングで前記バッファメモリからデータを出力するメモリ制御装置において、
入力データをカウントするｎ（ｎは正の整数）ビット幅の入力側カウンタと、
出力データをカウントするｎビット幅の出力側カウンタと、
前記入力側カウンタと前記出力側カウンタのカウント値を比較する手段と、
前記入力側カウンタが一巡する際にフラグを“１”にセットし、前記出力側カウンタが一巡する際に前記フラグを“０”にリセットする手段と、
前記比較手段による比較結果と前記フラグ値とに基づいて、前記入力側カウンタと前記出力側カウンタのカウント値が一致し、かつ前記フラグが“１”になったことを検知すると前記バッファメモリへのデータの入力を制限する手段と、
前記比較手段による比較結果と前記フラグ値とに基づいて、前記入力側カウンタと前記出力側カウンタのカウント値が一致し、かつ前記フラグが“０”になったことを検知すると前記バッファメモリからのデータの出力を制限する手段と
を有する
ことを特徴としたメモリ制御装置。
【請求項２】
請求項１記載のメモリ制御装置において、
入力されたｍ（ｍは２以上の整数）個のデータからなるデータブロックをバッファメモリに一時的に記憶し、入力されたデータとは異なるタイミングで前記バッファメモリから前記データブロックを出力し、
前記入力側カウンタが、前記入力データブロックをカウントし、
前記出力側カウンタが、前記出力データブロックをカウントする
ことを特徴としたメモリ制御装置。
【請求項３】
請求項１記載のメモリ制御装置において、
前記バッファメモリが、シングルポートのメモリであり、
前記バッファメモリに対するデータの入出力経路を切り換える手段を有する
ことを特徴としたメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリを用いてデータ転送速度の変換を行うメモリ制御装置に関する。
【０００２】
【従来の技術】
図１０は従来のメモリ制御装置を示すブロック回路図である。図１０のメモリ制御装置は、入力されるデータを一度メモリに蓄えた後に入力時とは異なるタイミングでメモリから読み出す。図１０において、５１は入力端子、５２はＦＩＦＯメモリ、５３は出力端子、５４はライトデータカウンタ、５５はリードデータカウンタである。
【０００３】
次に動作について説明する。図１１は従来のメモリ制御装置の動作タイミング図であり、ライン単位で入力されるディジタル画像データを扱う場合の一例である。図１１に示すように、入力端子１を介して連続する１ライン分（７２０データ）のデータがＦＩＦＯメモリ５２に書き込まれる。このライン単位でＦＩＦＯメモリ５２に書き込まれたデータは１６データ毎に分割して読み出される。
【０００４】
ＦＩＦＯメモリ５２に書き込まれるデータの数はライトデータカウンタ５４によってカウントされ、１ラインの先頭を表すスタートパルスに同期して、ＦＩＦＯメモリ５２に７２０個の連続するデータが書き込まれるようにライトデータカウンタ５４によって制御される。
【０００５】
一方、スタートパルスから８クロック遅れてＦＩＦＯメモリ５２のデータが１６データ単位で読み出されるようにリードデータカウンタ５５によって制御される。データの読み出しにおいては、１６データ毎に２クロック分のマスク期間が設けられている。
【０００６】
図１１に示すように、画像データの場合は１ライン７２０画素のデータが連続して入力されるが、各ラインの間には８５８−７２０＝１３８クロック分のブランキング期間が存在する。このため、７２０画素連続入力されるデータを１６データ毎に２クロック分のマスク期間を設けて読み出しても、ライン間のブランキング期間で吸収することができる。
【０００７】
【発明が解決しようとする課題】
しかしながら上記従来のメモリ制御装置はＦＩＦＯメモリに書き込まれるデータ数とＦＩＦＯメモリから読み出されるデータ数がある周期の時間内で同じであることを前提に構成されているため、ＦＩＦＯメモリへのデータの入出力の関係が周期的でない場合はＦＩＦＯメモリへのデータのリード／ライトの制御ができないという問題があった。
【０００８】
この発明は、上記のような従来の問題を解消するためになされたものであり、バッファメモリに対する入出力データ数の関係が周期的でない場合でも、小さな容量のバッファメモリ及び小さなハードウェア規模でバッファメモリに対するデータ入出力をコントロールすることができるメモリ制御装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１の発明に係るメモリ制御装置は、入力データをカウントするｎビット幅の入力側カウンタと、出力データをカウントするｎビット幅の出力側カウンタと、前記入力側カウンタと前記出力側カウンタのカウント値を比較する手段と、前記入力側カウンタが一巡する際にフラグを“１”にセットし、前記出力側カウンタが一巡する際に前記フラグを“０”にリセットする手段と、前記比較手段による比較結果と前記フラグ値とに基づいて、前記入力側カウンタと前記出力側カウンタのカウント値が一致し、かつ前記フラグが“１”になったことを検知すると前記バッファメモリへのデータの入力を制限する手段と、前記比較手段による比較結果と前記フラグの値とに基づいて、前記入力側カウンタと前記出力側カウンタのカウント値が一致し、かつ前記フラグが“０”になったことを検知すると前記バッファメモリからのデータの出力を制限する手段とを有し、前記バッファメモリに対するデータの入出力をコントロールする。
【００１０】
請求項２の発明に係るメモリ制御装置は、請求項１の発明に係るメモリ制御装置において、入力側カウンタが、ｍ（ｍは２以上の整数）個のデータからなる入力データブロックをカウントし、出力側カウンタがｍ個のデータからなる出力データブロックをカウントし、前記バッファメモリに対するデータブロックの入出力をコントロールする。
【００１１】
請求項３の発明に係るメモリ制御装置は、請求項１の発明に係るメモリ制御装置において、前記バッファメモリが、シングルポートのメモリであり、前記バッファメモリに対するデータの入出力経路を切り換える手段を有し、前記バッファメモリのシングルポートに対するデータの入出力をコントロールする。
【００１２】
【発明の実施の形態】
実施の形態１．
次に、本発明の実施の形態１について説明する。図１は本実施の形態１のメモリ制御装置のブロック回路図である。図において、１は信号生成回路、２はバッファメモリ、３は信号処理回路、４はライトカウンタ、５はリードカウンタ、６はメモリ制御回路である。
【００１３】
信号生成回路１は、内部でディジタル信号処理したデータを順次バッファメモリ２に入力し（書き込み）、データを入力する際にライトカウンタ４にデータ入力信号を発行する。また、信号処理回路３は、バッファメモリ２から出力させた（読み出した）データを信号処理し、データを出力させる際にリードカウンタ５にデータ出力信号を発行する。また、バッファメモリ２は、容量２n ビット以上のＦＩＦＯメモリにより構成されており、信号生成回路１から入力されたデータを一時的に記憶し、このデータを信号処理回路３に出力する。上記のｎは、ライトカウンタ４及びリードカウンタ５のビット数であり、正の整数である。ここでは、バッファメモリ２の容量は、２8 ビットであるものとする（ｎ＝８であるものとする）。なお、信号生成回路１はバッファメモリ２にデータを入力する回路であれば良く、信号処理回路３はバッファメモリ２から出力されたデータを入力とする回路であれば良い。また、信号生成回路１及び信号処理回路３は、メモリ制御装置の外部に設けられていても良い。
【００１４】
ライトカウンタ４は、ｎビットのカウンタで構成されており、信号生成回路１からのデータ入力信号をカウントアップすることによりバッファメモリ２に入力されたデータ数をカウントし、ｎビットカウンタのカウント値ＷＣＵＴと、ｎビットカウンタが一巡する際に発生する（“０”から“１”となる）キャリービットＷＣＹとをメモリ制御回路６に出力する。また、リードカウンタ５は、ライトカウンタ４と同様にｎビットのカウンタで構成されており、信号処理回路３からのデータ出力信号をカウントアップすることによりバッファメモリ２から出力されたデータ数をカウントし、ｎビットカウンタのカウント値ＲＣＵＴと、ｎビットカウンタが一巡する際に発生する（“０”から“１”となる）キャリービットＲＣＹとをメモリ制御回路６に出力する。ここでは、ライトカウンタ４及びリードカウンタ５は、８ビットのカウンタであるものとしているので、ＷＣＵＴ及びＲＣＵＴは、カウント値が”ＦＦ”から“０”に戻る際に発行される。
【００１５】
メモリ制御回路６は、ライトカウンタ４から出力されるＷＣＵＴおよびＷＣＹと、リードカウンタ５から出力されるＲＣＵＴおよびＲＣＹとに基づいて、ライトカウンタ４が一巡してリードカウンタ５に追いついたことを検知すると、信号生成回路１に対して入力ウエイト信号Ｗ−ＷＡＩＴを発行して信号生成回路１によるバッファメモリ２へのデータ入力をストップさせる。また、リードカウンタ５がライトカウンタ４に追いついたことを検知すると、信号処理回路３に対して出力ウエイト信号Ｒ−ＷＡＩＴを発行して信号処理回路３によるバッファメモリ２からのデータ出力をストップさせる。この場合、メモリ制御回路６は、これ以上バッファメモリ２にデータを入力しようとするとバッファメモリ２がオーバーフローを起こす場合にバッファメモリ２へのデータ入力をストップさせ、これ以上バッファメモリ２からデータを出力しようとするとバッファメモリ２がアンダーフローを起こす場合にバッファメモリ２からのデータ出力をストップさせる。
【００１６】
図２はメモリ制御回路６の構成を示すブロック回路図である。図２において、メモリ制御回路６は、比較回路１１と、判別回路１２と、ライト制御回路１３と、リード制御回路１４により構成されている。
【００１７】
比較回路１１は、ＷＣＵＴとＲＣＵＴの値をビット毎に比較するｎビットの比較回路であり、ＷＣＵＴ＝ＲＣＵＴの場合は“１”、ＷＣＵＴ≠ＲＣＵＴの場合は“０”を比較結果とし、この比較結果をそれぞれライト制御回路１３とリード制御回路１４に出力する。
【００１８】
判別回路１２は、追い越し判別フラグＴＦＦを記憶する１ビットレジスタ（ＴＦＦレジスタと称する）を備え、ＷＣＵＴの値が一巡する際に発行されるＷＣＹが入力されるとＴＦＦを“１”にセットし、ＲＣＵＴの値が一巡する際に発行されるＲＣＹが入力されるとＴＦＦを“０”にリセットし、このＴＦＦをそれぞれライト制御回路１３とリード制御回路１４に出力する。なお、判別回路１２は、電源が投入されたときやリセットされたときにはＴＦＦを“０”に設定する。
【００１９】
ライト制御回路１３は、比較回路１１からの比較結果及び判別回路１２からのＴＦＦに基づいて、ＷＣＵＴ＝ＲＣＵＴでかつＴＦＦ＝１の場合はライトカウンタ４が一巡してリードカウンタ５に追いついているため、これ以上データをバッファメモリ２に入力するとオーバーフローが起こると判断し、信号生成回路１に対して入力ウエイト信号Ｗ−ＷＡＩＴを発行し（Ｗ−ＷＡＩＴを“１”とし）、信号生成回路１によるバッファメモリ２へのデータ入力を停止させる。ＷＣＵＴ≠ＲＣＵＴまたはＴＦＦ＝０の場合はＷ−ＷＡＩＴを発行しない（Ｗ−ＷＡＩＴを“０”とする）。
【００２０】
リード制御回路１４は、比較回路１１からの比較結果及び判別回路１２からのＴＦＦに基づいて、ＷＣＵＴ＝ＲＣＵＴでかつＴＦＦ＝０の場合はリードカウンタ５がライトカウンタ４に追いついているため、これ以上データをバッファメモリ２から読み出すとアンダーフローが起こると判断し、信号処理回路３に対して出力ウエイト信号Ｒ−ＷＡＩＴを発行し（Ｒ−ＷＡＩＴを“１”とし）、信号生成回路１によるバッファメモリ２からのデータ出力を停止させる。ＷＣＵＴ≠ＲＣＵＴまたはＴＦＦ＝１の場合はＲ−ＷＡＩＴを発行しない（Ｒ−ＷＡＩＴを“０”とする）。
【００２１】
次に、動作を説明する。図３及び図４は、本実施の形態１のメモリ制御装置の動作タイミング図であり、図３はＷ−ＷＡＩＴが発行される様子を示し、図４はＲ−ＷＡＩＴが発行される様子を示す。図３及び図４において、（ａ）はバッファメモリ２へのデータ入力（データ書き込み）動作及びバッファメモリ２からのデータ出力（データ読み出し）動作の基本クロック、（ｂ）はバッファメモリ２への入力データ、（ｃ）及び（ｄ）はライトカウンタ４によるＷＣＵＴ及びＷＣＹ、（ｅ）はバッファメモリ２からの出力データ、（ｆ）及び（ｇ）はリードカウンタ５によるＲＣＵＴ及びＲＣＹである。また、（ｈ）は判別回路１２によるＴＦＦ、（ｉ）は比較回路１１による比較結果、（ｊ）はライト制御回路１３によるＷ−ＷＡＩＴ、（ｋ）はリード制御回路１４によるＲ−ＷＡＩＴである。
【００２２】
図３においては、データＤ０〜Ｄ２０１が信号生成回路１からバッファメモリ２に連続的に順次入力される。また、データＤ２０１の入力期間の次の２クロック期間においては、ライト制御回路１３により入力ウエイト信号Ｗ−ＷＡＩＴが発行され（Ｗ−ＷＡＩＴ＝１となり）、信号生成回路１によるデータ入力が制限されるので、バッファメモリ２にはデータが入力されない（（ｂ）参照）。ライトカウンタ４による入力データ数のカウント値ＷＣＵＴは、データＤ０〜ＤＦＦの入力期間において“０”から“ＦＦ”へ順次インクリメントされていき、データＤ１００が入力されると一巡して“０”に戻り、データＤ１００〜Ｄ１ＦＦの入力期間において再び順次インクリメントされ、データＤ２００が入力されると再び一巡して“０”に戻り、データ２０１が入力されると“１”にインクリメントされ、データ２０１の入力期間の次の２クロック期間において“１”に保持される（（ｃ）参照）。ライトカウンタ４による入力データカウントのキャリービットＷＣＹは、ＷＣＵＴが“ＦＦ”となるデータＤＦＦ及びＤ１ＦＦの入力期間においてそれぞれ“１”となる（（ｄ）参照）。
【００２３】
データＤ０、Ｄ１、Ｄ１０４〜Ｄ２０１の入力期間においては信号処理回路３はバッファメモリ２にデータの出力を要求せず、従ってバッファメモリ２からデータが出力されない。データＤ２〜Ｄ１０３の入力期間においては信号処理回路３からの要求によりバッファメモリ２からデータＤ０〜Ｄ１０１が連続的に順次出力される。また、データＤ２０１の入力期間から２クロック期間後にバッファメモリ２からデータＤ１０２が出力される（（ｅ）参照）。リードカウンタ５による出力データ数のカウント値ＲＣＵＴは、データＤ０〜ＤＦＦの出力期間において“０”から“ＦＦ”へ順次インクリメントされていき、データＤ１００が出力されると一巡して“０”に戻り、データＤ１０１が出力されると“１”にインクリメントされ、データＤ１０２が出力されるまでの期間“１”に保持され、データＤ１０２が出力されると“２”にインクリメントされる（（ｆ）参照）。リードカウンタ５による出力データカウントのキャリービットＲＣＹは、ＲＣＵＴが“ＦＦ”となるデータＤＦＦの出力期間（データＤ１０１の入力期間）において“１”となる（（ｇ）参照）。
【００２４】
判定回路１２による追い越し判別フラグＴＦＦは、データＤＦＦの入力期間のＷＣＹによりデータＤ１００が入力されると“１”にセットされ、データＤＦＦの出力期間のＲＣＹによりデータＤ１００が出力されると“０”にリセットされ、データＤ１ＦＦの入力期間のＷＣＹによりデータＤ２００が入力されると“１”にセットされる（（ｈ）参照）。比較回路１１による比較結果は、データＤ０〜Ｄ２００の入力期間においてはＷＣＵＴ≠ＲＣＵＴなので“０”であり、データＤ２０１が入力されるとＷＣＵＴが“１”にインクリメントされ、ＷＣＵＴ＝ＲＣＵＴとなるのでデータＤ２０１の入力期間の次のクロック期間で“１”に変化し、データＤ１０２が出力されるとＲＣＵＴが“２”にインクリメントされ、ＷＣＵＴ≠ＲＣＵＴとなるのでデータＤ１０２の出力期間の次のクロック期間で“０”に戻る（（ｉ）参照）。
【００２５】
ライト制御回路１３による入力ウエイト信号Ｗ−ＷＡＩＴは、ＴＦＦ＝１かつＷＣＵＴ＝ＲＣＵＴ（比較結果が“１”）となる期間、すなわちデータＤ２０１の入力期間の次のクロック期間及びデータＤ１０２の出力期間において“１”となり（（ｊ）参照）、これにより信号生成回路１からのデータ入力が制限される。なお、リード制御回路１４による出力ウエイト信号Ｒ−ＷＡＩＴは、ＴＦＦ＝０かつＷＣＵＴ＝ＲＣＵＴとなる期間がないので常に“０”であり（（ｋ）参照）、従って信号処理回路３は制限を受けない。
【００２６】
図４においては、データＤ０〜Ｄ１０２が信号生成回路１からバッファメモリ２に連続的に順次入力される。また、データＤ１０２の入力期間の次の３クロック期間においては信号生成回路１はバッファメモリ２にデータを入力しない。また、データ１０２の入力期間から４クロック期間後にバッファメモリ２にデータＤ１０３が入力される（（ｂ）参照）。データＤ０〜Ｄ１０２の入力期間における（ｃ）〜（ｋ）の波形は図３と同じである。
【００２７】
ＷＣＵＴは、データＤ１０２の入力期間の次の３クロック期間において“２”に保持され、データＤ１０３が入力されると“３”にインクリメントされる（（ｃ）参照）。ＷＣＹは、データＤ１００の入力期間以降において“０”に保持される（（ｄ）参照）。
【００２８】
データＤ１００の出力期間の次の２クロック期間においてデータＤ１０１及びＤ１０２がバッファメモリ２から連続的に順次出力される。また、データＤ１０２の出力期間の次の２クロック期間においては、リード制御回路１４により出力ウエイト信号Ｒ−ＷＡＩＴが発行され（Ｒ−ＷＡＩＴ＝１となり）、信号処理回路３によるデータの出力要求が制限されるので、バッファメモリ２からはデータが出力されない（（ｅ）参照）。ＲＣＵＴは、データＤ０〜ＤＦＦの出力期間において“０”から“ＦＦ”へ順次インクリメントされていき、データＤ１０１が出力されると“１”にインクリメントされ、データＤ１０２が出力され“２”にインクリメントされ、データＤ１０２の出力期間の次の２クロック期間において“２”に保持される（（ｆ）参照）。ＲＣＹは、データＤ１００の出力期間以降において“０”に保持される（（ｇ）参照）。
【００２９】
追い越し判別フラグＴＦＦは、データＤ１０２の入力期間（データＤ１００の出力期間）以降において“０”にリセットされている（（ｈ）参照）。比較回路１１による比較結果は、データＤ０〜Ｄ２００の入力期間においてはＷＣＵＴ≠ＲＣＵＴなので“０”であり、データＤ１０２が出力されるとＲＣＵＴが“２”にインクリメントされ、ＷＣＵＴ＝ＲＣＵＴとなるのでデータＤ１０２の出力期間の次のクロック期間で“１”に変化し、データＤ１０３が入力されるとＷＣＵＴが“３”にインクリメントされ、ＷＣＵＴ≠ＲＣＵＴとなるのでデータＤ２０１の入力期間の次のクロック期間で“０”に戻る（（ｉ）参照）。
【００３０】
Ｒ−ＷＡＩＴは、ＴＦＦ＝０かつＷＣＵＴ＝ＲＣＵＴ（比較結果が“１”）となる期間、すなわちデータＤ１０２の出力期間の次のクロック期間及びデータＤ２０１の入力期間において“１”となり（（ｋ）参照）、これにより信号処理回路３によるデータの出力要求が制限される。なお、Ｗ−ＷＡＩＴは、ＴＦＦ＝１かつＷＣＵＴ＝ＲＣＵＴとなる期間がないので常に“０”であり（（ｊ）参照））、従って信号生成回路１は制限を受けない。
【００３１】
以上の様に実施の形態１によれば、入力データ数及び出力データ数をそれぞれライトカウンタ４及びリードカウンタ５によりカウントし、ライトカウンタ４のカウント値ＷＣＵＴとリードカウンタ５のカウント値ＲＣＵＴの一致／不一致を比較回路１１により比較するとともに、判別回路１２によりライトカウンタ４が一巡する際に“１”にセットされリードカウンタ５が一巡する際に“０”にリセットされる追い越し判別フラグＴＦＦを生成し、比較回路１１による比較結果及び追い越し判別フラグＴＦＦに基づいて、リード制御回路１３によりバッファメモリ２がオーバーフローする直前の状態を検知してデータ入力を制限し、ライト制御回路１４によりバッファメモリ２がアンダーフローする直前の状態を検知してデータ出力を制限するようにしたことにより、バッファメモリ２に対する非同期の入出力データの制御を小さなバッファメモリ容量で実現することができる。さらに、簡単なアルゴリズムでバッファメモリ２の状態を検知することができるので、バッファメモリ２に対する非同期の入出力データの制御を小さなハードウェア規模で実現することができるとともに、判定に要する時間が短く、高速動作が可能なメモリ制御装置を実現することができる。
【００３２】
なお、上記実施の形態１では、バッファメモリ２にＦＩＦＯメモリを使ったが、必ずしもＦＩＦＯメモリである必要はなく、デュアルポートメモリを使っても良い。また、上記実施の形態１では、バッファメモリ２に対するデータの入出力を同一のクロックにより行ったが、必ずしも同一のクロックを用いる必要はなく、データ書き込みとデータ読み出しに速度の異なる別々のクロックを用いても良い。
【００３３】
実施の形態２．
次に、本発明の実施の形態２について説明する。上記実施の形態１ではデータのコントロールを１データ毎に行っていたが、ｍ（ｍは２以上の整数）個の連続するデータからなるデータブロック、例えば画像データのようにデータが連続するデータブロックをライン単位で構成している場合は、バッファメモリのデータをライン単位で管理することによりアルゴリズムを簡略化することができる。実施の形態２のメモリ制御装置は、ライン単位のデータブロックを扱うものである。ここでは、１ライン分のデータ数ｍを５１０とする。なお、１ライン分の連続する５１０個のデータＤ０〜Ｄ１ＦＥ（データブロック）を、単にラインデータと称することとする。
【００３４】
本実施の形態２のメモリ制御装置のブロック回路図は、基本的には図１及び図２と同じであるが、以下の点が異なる。信号生成回路１は、ｍ個の連続するデータからなるラインデータをバッファメモリ２に入力し、１ラインの最後のデータを入力した時点でライトカウンタ４にラインデータ入力終了信号ＷＥＮＤを発行する。信号処理回路３は、ｍ個の連続するデータからなるラインデータをバッファメモリ２から出力させ、１ラインの最後のデータを出力させた時点でリードカウンタ５にラインデータ出力終了信号ＲＥＮＤを発行する。また、ライトカウンタ４はＷＥＮＤをカウントアップすることにより、バッファメモリ２に入力されるラインデータ数をカウントするものとする。リードカウンタ５はＲＥＮＤをカウントアップすることにより、バッファメモリ２から出力されるラインデータ数をカウントするものとする。また、ライトカウンタ４及びリードカウンタ５は２ビットのカウンタであるものとし、比較回路１１も２ビットの比較回路であるものとする（ｎ＝２とする）。従ってバッファメモリ２の容量は、１ラインのデータ個数ｍ×２2 ビット以上であれば良く、ここではｍ×２2 ビットであるものとする。また、メモリ制御回路６は、ライトカウンタ４及びリードカウンタ５からのＷＣＵＴ、ＲＣＵＴ、ＷＣＹ，ＲＣＹに基づいて、バッファメモリ２のラインデータを管理する。
【００３５】
次に、動作を説明する。図５及び図６は本実施の形態２のメモリ制御装置の動作タイミング図であり、図５はＷ−ＷＡＩＴが発行される様子を示し、図６はＲ−ＷＡＩＴが発行される様子を示す。図５及び図６において、（ａ）は基本クロック、（ｂ）は入力データ、（ｃ）はラインデータ入力終了信号ＷＥＮＤ、（ｄ）は入力ラインデータ数のカウント値ＷＣＵＴ、（ｅ）はＷＣＵＴのキャリービットＷＣＹ、（ｆ）は出力データ、（ｇ）はラインデータ出力終了信号ＲＥＮＤ、（ｈ）は出力ラインデータ数のカウント値ＲＣＵＴ、（ｉ）はＲＣＵＴのキャリービットＲＣＹ、（ｊ）は追い越し判別フラグＴＦＦ、（ｋ）は比較回路１１による比較結果、（ｌ）は入力ウエイト信号Ｗ−ＷＡＩＴ、（ｍ）は出力ウエイト信号Ｒ−ＷＡＩＴである。
【００３６】
図５においては、１ライン分のラインデータＤ０〜Ｄ１ＦＥが信号生成回路１からバッファメモリ２に間隔をおいて順次入力される（（ｂ）参照）。ＷＥＮＤは、各ラインデータの最後のデータＤ１ＦＥの入力期間においてそれぞれ“１”となる（（ｃ）参照）。ＷＣＵＴは、４Ｎ＋２（Ｎは正の整数）ライン目のデータＤ１ＦＥの入力が終了すると“２”から“３”にインクリメントされ、４Ｎ＋３ライン目のデータＤ１ＦＥの入力が終了すると一巡して“０”に戻り、４Ｎ＋４ライン目のデータＤ１ＦＥの入力が終了すると“１”にインクリメントされる（（ｄ）参照）。ＷＣＹは、ＷＣＵＴが“３”から“０”に戻る４Ｎ＋３ライン目のデータＤ１ＦＥの入力期間において“１”となる（（ｅ）参照）。
【００３７】
また、１ライン分のラインデータが信号処理回路３からの要求によりバッファメモリ２から間隔をおいて順次出力される。なお、出力されるラインデータは、同時に入力されるラインデータよりも前にバッファメモリ２に入力されたデータである。また、４Ｎ＋４ライン目のラインデータの入力期間においては、信号処理回路３はバッファメモリ２にデータの出力を要求せず、従ってバッファメモリ２からラインデータが出力されない（（ｆ）参照）。ＲＥＮＤは、各ラインデータの最後のデータＤ１ＦＥの出力期間においてそれぞれ“１”となる（（ｇ）参照）。ＲＣＵＴは、４Ｎ−１ライン目のデータＤ１ＦＥの出力が終了すると一巡して“３”から“０”に戻り、４Ｎライン目のデータＤ１ＦＥの出力が終了すると“１”にインクリメントされる（（ｈ）参照）。ＲＣＹは、ＲＣＵＴが“３”から“０”に戻る４Ｎ−１ライン目のデータＤ１ＦＥの出力期間において“１”となる（（ｉ）参照）。
【００３８】
追い越し判定フラグＴＦＦは、４Ｎ−１ライン目の出力期間のＲＣＹによりデータＤ１ＦＥの出力が終了すると“１”から“０”にリセットされ、４Ｎ＋３ライン目の入力期間のＷＣＹによりデータＤ１ＦＥの入力が終了すると“１”にセットされる（（ｊ）参照）。比較回路１１による比較結果は、４Ｎ＋４ライン目の入力期間が終了するまでＷＣＵＴ≠ＲＣＵＴなので“０”であり、４Ｎ＋４ライン目の入力期間が終了するとＷＣＵＴが“１”にインクリメントされ、ＷＣＵＴ＝ＲＣＵＴとなるので“１”に変化する（（ｋ）参照）。
【００３９】
入力ウエイト信号Ｗ−ＷＡＩＴは、ＴＦＦ＝１かつＷＣＵＴ＝ＲＣＵＴ（比較結果が“１”）となる期間、すなわち４Ｎ＋４ライン目の入力期間が終了した後の期間において“１”となり（（ｌ）参照）、これにより信号生成回路１からのデータ入力が制限される。なお、出力ウエイト信号Ｒ−ＷＡＩＴは、ＴＦＦ＝０かつＷＣＵＴ＝ＲＣＵＴとなる期間がないので常に“０”であり（（ｍ）参照）、従って信号処理回路３は制限を受けない。
【００４０】
図６においては、１ライン分のラインデータが間隔をおいて順次入力される（（ｂ）参照）。ＷＥＮＤは、各ラインデータの最後のデータＤ１ＦＥの入力期間においてそれぞれ“１”となる（（ｃ）参照）。ＷＣＵＴは、４Ｎ＋３ライン目のデータＤ１ＦＥの入力が終了すると一巡して“３”から“０”に戻り、４Ｎ＋４ライン目のデータＤ１ＦＥの入力が終了すると“１”にインクリメントされる（（ｄ）参照）。ＷＣＹは、ＷＣＵＴが“３”から“０”に戻る４Ｎ＋３ライン目のデータＤ１ＦＥの入力期間において“１”となる（（ｅ）参照）。
【００４１】
また、１ライン分のラインデータが間隔をおいて順次出力される（（ｆ）参照）。ＲＥＮＤは、各ラインデータのデータＤ１ＦＥの出力期間においてそれぞれ“１”となる（（ｇ）参照）。ＲＣＵＴは、４Ｎ＋２ライン目のデータＤ１ＦＥの出力が終了すると“２”から“３”にインクリメントされ、４Ｎ＋３ライン目のデータＤ１ＦＥの出力が終了すると一巡して“３”から“０”に戻り、４Ｎ＋４ライン目のデータＤ１ＦＥの出力が終了すると“１”にインクリメントされる（（ｈ）参照）。ＲＣＹは、ＲＣＵＴが“３”から“０”に戻る４Ｎ＋３ライン目のデータＤ１ＦＥの出力期間において“１”となる（（ｉ）参照）。
【００４２】
追い越し判定フラグＴＦＦは、４Ｎ＋３ライン目の入力期間のＷＣＹによりデータＤ１ＦＥの入力が終了すると“０”から“１”にセットされ、４Ｎ＋３ライン目の出力期間のＲＣＹによりデータＤ１ＦＥの出力が終了すると“０”にリセットされる（（ｊ）参照）。比較回路１１による比較結果は、４Ｎ＋４ライン目の出力期間が終了するまでＷＣＵＴ≠ＲＣＵＴなので“０”であり、４Ｎ＋４ライン目の出力期間が終了するとＲＣＵＴが“１”にインクリメントされ、ＷＣＵＴ＝ＲＣＵＴとなるので“１”に変化する（（ｋ）参照）。
【００４３】
出力ウエイト信号Ｒ−ＷＡＩＴは、ＴＦＦ＝０かつＷＣＵＴ＝ＲＣＵＴ（比較結果が“１”）となる期間、すなわち４Ｎ＋４ライン目の出力期間が終了した後の期間において“１”となり（（ｍ）参照）、これにより信号処理回路３によるデータの出力要求が制限される。なお、入力ウエイト信号Ｗ−ＷＡＩＴは、ＴＦＦ＝１かつＷＣＵＴ＝ＲＣＵＴとなる期間がないので常に“０”であり（（ｌ）参照）、従って信号生成回路１は制限を受けない。
【００４４】
以上の様に実施の形態２によれば、上記実施の形態１と同様に非同期で入出力されるｍ個の連続するデータからなるラインデータの制御を小さなバッファメモリ容量で実現することができ、高速動作が可能なメモリ制御装置を実現することができるとともに、入出力ラインデータ数をリードカウンタ４及びライトカウンタ５によりカウントするようにしたことにより、ハードウェア規模を上記実施の形態１よりもさらに小さくすることができる。
【００４５】
実施の形態３．
次に、本発明の実施の形態３について説明する。図７は本実施の形態２のメモリ制御装置のブロック回路図である。図において、１は信号生成回路、７はバッファメモリ、８はセレクタ回路、３は信号処理回路、４はライトカウンタ、５はリードカウンタ、９はメモリ制御回路である。なお、図７において、図１と同じものには同じ符号を付してある。図７のメモリ制御装置は、図１のメモリ制御装置において、バッファメモリ２及びメモリ制御回路６をそれぞれバッファメモリ７及びメモリ制御回路９とし、セレクタ回路８を設けたものである。
【００４６】
バッファメモリ７は、シングルポートのＤＲＡＭにより構成されている。また、セレクタ回路８は、バッファメモリ７のデータ入出力ポートを信号生成回路１または信号処理回路３に切り換え接続する。すなわち、セレクタ回路８はバッファメモリ７のデータ入出力経路（リード／ライト方向）を切り換える。
【００４７】
メモリ制御回路９は、上記実施の形態１のメモリ制御回路６と同様に、ライトカウンタ４から出力されるＷＣＵＴおよびＷＣＹと、リードカウンタ５から出力されるＲＣＵＴおよびＲＣＹとに基づいて、バッファメモリ２に入力されバッファメモリ２から出力されていないデータの個数を管理し、入力ウエイト信号Ｗ−ＷＡＩＴ及び出力ウエイト信号Ｒ−ＷＡＩＴにより信号生成回路１及び信号処理回路３の動作を制限する。さらに、メモリ制御回路９は、１データ毎にバッファメモリ７のライトアドレスとリードアドレスを生成してバッファメモリ７に出力すると同時に、セレクタ回路８を制御する。すなわち、上記のライトアドレスをライトカウンタ４から出力されるＷＣＵＴから生成し、上記のリードアドレスをリードカウンタ５から出力されるＲＣＵＴから生成し、セレクタ回路８によるデータのリード／ライト方向の切り換えを入力データ及び出力データのサンプリング周波数の２倍のクロックに同期して行う。
【００４８】
図８はメモリ制御回路９の構成を示すブロック回路図である。図８において、メモリ制御回路９は、比較回路１１と、判別回路１２と、ライト制御回路１３と、リード制御回路１４と、アドレス生成回路２５により構成されている。なお、図８において、図２と同じものには同じ符号を付してある。メモリ制御回路９は、図２のメモリ制御回路において、アドレス生成回路２５を設けたものである。アドレス生成回路２５は、入力データ及び出力データのサンプリング周波数の２倍のクロックＷ／Ｒを生成し、セレクタ回路８及びバッファメモリ７に出力するとともに、入力データのカウント値ＷＣＵＴ及び出力データのカウント値ＲＣＵＴに基づいてライトアドレス及びリードアドレスを生成し、これらのアドレスをバッファメモリ７に出力する。ここでは、セレクタ回路８はクロックＷ／Ｒの立ち上がりでバッファメモリ７のデータ入出力ポートを信号生成回路１側に切り換え、クロックＷ／Ｒの立ち下がりでデータ入出力ポートを信号処理回路３側に切り換えるものとする。また、バッファメモリ７は、クロックＷ／Ｒがハイレベルである期間においてデータライト動作をし、クロックＷ／Ｒがローレベルである期間において立ち下がりにおいてデータリード動作をするものとする。
【００４９】
次に、動作を説明する。図９は本実施の形態３のメモリ制御装置の動作タイミング図である。図９において、（ａ）はバッファメモリ７のライトデータ（入力データのライトタイミング）、（ｂ）は入力データ数のカウント値ＷＣＵＴ、（ｃ）はＷＣＵＴのキャリービットＷＣＹ、（ｄ）はアドレス生成回路２５によるクロックＷ／Ｒ、（ｅ）はバッファメモリ７からの出力データ（記憶データのリードタイミング）、（ｆ）は出力データ数のカウント値ＲＣＵＴ、（ｇ）はＲＣＵＴのキャリービットＲＣＹ、（ｈ）は追い越し判別フラグＴＦＦ、（ｉ）は比較回路１１による比較結果、（ｊ）は入力ウエイト信号Ｗ−ＷＡＩＴ、（ｋ）は出力ウエイト信号Ｒ−ＷＡＩＴである。
【００５０】
図９において、信号生成回路１からバッファメモリ７にデータが入力される場合には、クロックＷ／Ｒの立ち上がりに同期して入力データがバッファメモリ７に書き込まれる。また、信号処理回路３からデータの出力要求がある場合には、クロックＷ／Ｒの立ち立ち下がりに同期してバッファメモリ７からデータが読み出される（（ａ）、（ｄ）、（ｅ）参照）。
【００５１】
また、ＷＣＵＴ、ＲＣＵＴ、ＷＣＹ、ＲＣＹ、ＴＦＦ、比較回路１１による比較結果、Ｗ−ＷＡＩＴ、Ｒ−ＷＡＩＴの所作は、上記実施の形態１と同様である。ＷＣＵＴ及びＲＣＵＴは、それぞれデータの入出力に応じてインクリメントされ、”ＦＦ”になると次のデータの入出力で“０”に戻る（（ｂ）、（ｆ）参照）。ＷＣＹ及びＲＣＹは、ＷＣＵＴ、ＲＣＵＴが”ＦＦ”である期間においてそれぞれ“１”となる（（ｃ）、（ｇ）参照）。追い越し判別フラグＴＦＦは、ＷＣＹが“１”になると“１”にセットされ、ＲＣＹが“０”になると“０”にリセットされる（（ｈ）参照）。比較回路１１による比較結果は、ＷＣＵＴ≠ＲＣＵＴのとき“０”となり、ＷＣＵＴ＝ＲＣＵＴのとき“１”となる（（ｉ）参照）。入力ウエイト信号Ｗ−ＷＡＩＴは、ＴＦＦ＝１かつＷＣＵＴ＝ＲＣＵＴとなる期間において“１”となり（（ｊ）参照）、これにより信号生成回路１からのデータ入力が制限される。出力ウエイト信号Ｒ−ＷＡＩＴは、ＴＦＦ＝０かつＷＣＵＴ＝ＲＣＵＴとなる期間において“１”となり（（ｋ）参照）、これにより信号処理回路３によるデータの出力要求が制限される。
【００５２】
以上の様に実施の形態３によれば、上記実施の形態１と同様に非同期で入出力されるデータの制御を小さなバッファメモリ容量及び小さなハードウェア規模で実現することができ、高速動作が可能なメモリ制御装置を実現することができるとともに、シングルポートのメモリを用いたことにより、安価なメモリ制御装置を実現することができる。
【００５３】
なお、上記実施の形態３では、バッファメモリ７にシングルポートのＤＲＡＭを使ったが、必ずしもＤＲＡＭである必要はなく、ＳＲＡＭ等のメモリを使っても良い。また、上記実施の形態３では、１データ単位でバッファメモリ７のリード／ライト方向を切り換えていたが、必ずしも１データ単位である必要はなく、任意のデータ単位で切り換えるようにしても良い。
【００５４】
【発明の効果】
請求項１の発明に係るメモリ制御装置によれば、入出力データ数をそれぞれ入力側カウンタ及び出力側カウンタによりカウントし、両カウンタのカウント値を比較するとともに、入力側カウンタが一巡する際に“１”にセットされ出力側カウンタが一巡する際に“０”にリセットされるフラグを生成し、カウント値の比較結果及びフラグの値に基づいて、両カウント値が一致し、かつフラグが“１”になったことを検知するとデータ入力を制限し、両カウント値が一致し、かつフラグが“０”になったことを検知するとデータ出力を制限するようにしたことにより、非同期で入出力されるデータの制御を小さなバッファメモリ容量で実現することができるという効果がある。また、データの入出力を制限するか否かを簡単なアルゴリズムで判定することができるので、非同期で入出力されるデータの制御を小さなハードウェア規模で実現することができるとともに、判定に要する時間が短く、高速動作が可能なメモリ制御装置を実現することができるという効果がある。
【００５５】
請求項２の発明に係るメモリ制御装置によれば、非同期で入出力されるｍ個のデータからなるデータブロックの制御を小さなバッファメモリ容量で実現することができるとともに、入出力データブロック数を入力側カウンタ及び出力側カウンタによりカウントするようにしたことにより、ハードウェア規模をさらに小さくすることができるという効果がある。
【００５６】
請求項３の発明に係るメモリ制御装置によれば、非同期で入出力されるデータの制御を小さなバッファメモリ容量及び小さなハードウェア規模で実現することができ、高速動作が可能なメモリ制御装置を実現することができるとともに、シングルポートのメモリを用いたことにより、安価なメモリ制御装置を実現することができるという効果がある。
【図面の簡単な説明】
【図１】  本発明の実施の形態１のメモリ制御装置の構成を示すブロック回路図である。
【図２】  本発明の実施の形態１におけるメモリ制御回路の構成を示すブロック回路図である。
【図３】  本発明の実施の形態１のメモリ制御装置の動作タイミング図である。
【図４】  本発明の実施の形態１のメモリ制御装置の動作タイミング図である。
【図５】  本発明の実施の形態２のメモリ制御装置の動作タイミング図である。
【図６】  本発明の実施の形態２のメモリ制御装置の動作タイミング図である。
【図７】  本発明の実施の形態３のメモリ制御装置の構成を示すブロック回路図である。
【図８】  本発明の実施の形態３におけるメモリ制御回路の構成を示すブロック回路図である。
【図９】  本発明の実施の形態３のメモリ制御装置の動作タイミング図である。
【図１０】  従来のメモリ制御装置の構成を示すブロック回路図である。
【図１１】  従来のメモリ制御装置の動作タイミング図である。
【符号の説明】
２，７  バッファメモリ、  ４  ライトカウンタ、  ５  リードカウンタ、  ６，９  メモリ制御回路、  １０  比較回路、  １１  比較回路、  １２  判別回路、  １３  ライト制御回路、  １４  リード制御回路。
【図１】
0003871424.tif 000002
【図２】
0003871424.tif 000003
【図３】
0003871424.tif 000004
【図４】
0003871424.tif 000005
【図５】
0003871424.tif 000006
【図６】
0003871424.tif 000007
【図７】
0003871424.tif 000008
【図８】
0003871424.tif 000009
【図９】
0003871424.tif 000010
【図１０】
0003871424.tif 000011
【図１１】
0003871424.tif 000012