(57)【特許請求の範囲】
【請求項１】
記憶容量がそれぞれ画像１ライン分よりも少ない複数の記憶手段への入力データの書き込み動作を行う書き込み動作手段と、
前記記憶手段からの出力データの読み出し動作を行う読み出し動作手段と、
前記書き込み動作手段による書き込み及び前記読み出し動作手段による読み出しの対象となる前記記憶手段を切り替える切り替え手段と、
画像１ライン分の入力データを複数に分けたブロックデータが前記記憶手段に振り分けられるタイミングに基づき、前記切り替え手段による前記記憶手段の切り替えを制御する切り替え制御手段と、
前記読み出し動作手段により読み出されたデータを入力データのクロック信号から出力データのクロック信号に変換して出力する非同期吸収手段と
を有することを特徴とする非同期吸収回路。
【請求項２】
画像１ライン分の入力データを複数に分けたブロックデータが前記記憶手段に振り分けられるタイミングを記録した切り替えタイミング記録手段を、更に有すること
を特徴とする請求項１記載の非同期吸収回路。
【請求項３】
前記複数の記憶手段が２個の記憶手段である場合、前記切り替えタイミング記録手段は前記ブロックデータがｎ個であるとき、ｎ−２番目の前記ブロックデータの前記記憶手段からの読み出し動作まで、ｎ−１番目の前記ブロックデータの前記記憶手段への書き込み動作よりも早く終わるように、前記ブロックデータが前記記憶手段に振り分けられるタイミングを記録していること
を特徴とする請求項２記載の非同期吸収回路。
【請求項４】
前記非同期吸収手段は、フリップフロップ手段を用いて前記読み出し動作手段により読み出されたデータを入力データのクロック信号から出力データのクロック信号に変換して出力すること
を特徴とする請求項１乃至３何れか一項記載の非同期吸収回路。
【請求項５】
前記非同期吸収手段は、前記記憶手段を動作させる為のクロック信号を、前記記憶手段への入力データの書き込み動作を行うときに前記入力データのクロック信号とし、前記記憶手段からの出力データの読み出し動作を行うときに前記出力データのクロック信号として前記読み出し動作手段により読み出されたデータを入力データのクロック信号から出力データのクロック信号に変換して出力すること
を特徴とする請求項１乃至３何れか一項記載の非同期吸収回路。
【請求項６】
請求項１記載の非同期吸収回路を有することを特徴とする画像処理装置。
【請求項７】
記憶容量がそれぞれ画像１ライン分よりも少ない複数の記憶手段への入力データの書き込み動作を行う書き込み動作手段と、
前記記憶手段からの出力データの読み出し動作を行う読み出し動作手段と、
前記書き込み動作手段による書き込み及び前記読み出し動作手段による読み出しの対象となる前記記憶手段を切り替える切り替え手段と、
画像１ライン分の入力データを複数に分けたブロックデータが前記記憶手段に振り分けられるタイミングに基づき、前記切り替え手段による前記記憶手段の切り替えを制御する切り替え制御手段と、
前記読み出し動作手段により読み出されたデータを入力データのクロック信号から出力データのクロック信号に変換して出力する非同期吸収手段と
を有する非同期吸収回路の切り替えタイミング記録手段を生成するコンピュータに、
入力データのクロック信号から出力データのクロック信号に変換して出力したいデータの情報を受け付ける仕様決定ステップと、
前記データのビット幅と同一、且つ、利用可能な記憶容量の記憶手段を選定する選定ステップと、
決められた遅延時間内で入力データのクロック信号から出力データのクロック信号に変換して出力が可能な前記選定された記憶手段の組み合わせ及び画像１ライン分の入力データを複数に分けたブロックデータが前記記憶手段に振り分けられるタイミングを記録した切り替えタイミング記録手段を作成する作成ステップと
を実行させる為のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期吸収回路、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
例えば半導体集積回路上にＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）メモリ装置を構成する場合、デュアルポートメモリはシングルポートメモリに対してサイズが大きいという不利益がある。そのため、より多くの回路を集積したい半導体装置においては少しでもサイズの小さいシングルポートＳＲＡＭ等を搭載し、制御する方法が用いられている（例えば特許文献１参照）。
【０００３】
また、２つのシングルポートＳＲＡＭを使用して、書き込み或いは読み取り動作を行うメモリ制御装置は従来から知られている。従来のメモリ制御装置は画像１フレーム分の書込みおよび読出し動作の完了を検出するアドレス検出手段、及びアドレス検出手段、記憶手段への書込みあるいは読出し動作の一方の動作に優先権を設定する優先権設定手段を設けている。
【０００４】
切替え手段は、優先権の設定されている動作側のアドレス検出手段が１フレーム分の書込みあるいは読出しの完了を検出する毎に記憶手段を切替える。また、優先権の設定されていない動作側の書込みあるいは読出し制御手段は、記憶手段の切替え前後で連続したアドレスへの書込みあるいは読出しを行うようにしている（例えば特許文献２参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のメモリ制御装置はアドレス検出手段が１フレーム分の書込みあるいは読出しの完了を検出する毎に、切替え手段が少なくとも画像１フレーム分を記憶可能な第１及び第２の記憶手段を切り替えている。したがって、従来のメモリ制御装置は少なくとも画像１フレーム分を記憶可能な二つの記憶手段が必要という問題があった。
【０００６】
本発明は上記の点に鑑みなされたもので、画像１ライン分よりも少ない記憶容量の複数のシングルポートメモリを用いて非同期吸収を行うことができる非同期吸収回路、画像処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した課題を解決するために、請求項１に記載の非同期吸収回路は、記憶容量がそれぞれ画像１ライン分よりも少ない複数の記憶手段への入力データの書き込み動作を行う書き込み動作手段と、前記記憶手段からの出力データの読み出し動作を行う読み出し動作手段と、前記書き込み動作手段による書き込み及び前記読み出し動作手段による読み出しの対象となる前記記憶手段を切り替える切り替え手段と、画像１ライン分の入力データを複数に分けたブロックデータが前記記憶手段に振り分けられるタイミングに基づき、前記切り替え手段による前記記憶手段の切り替えを制御する切り替え制御手段と、前記読み出し動作手段により読み出されたデータを入力データのクロック信号から出力データのクロック信号に変換して出力する非同期吸収手段とを有することを特徴とする。
【０００８】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、画像１ライン分よりも少ない記憶容量の複数のシングルポートメモリを用いて非同期吸収を行うことができる非同期吸収回路、画像処理装置及びプログラムを提供可能である。
【図面の簡単な説明】
【００１０】
【図１】非同期吸収回路を含む一例のブロック図である。
【図２】非同期吸収回路の一例のタイミング図である。
【図３】非同期吸収回路の一例の拡大したタイミング図である。
【図４】デュアルポートＲＡＭを使った非同期吸収回路を含む一例のブロック図である。
【図５】デュアルポートＲＡＭを使った非同期吸収回路で必要な記憶容量と遅延時間の計算について表した一例の説明図である。
【図６】本実施の形態の非同期吸収回路を含む一実施例のブロック図である。
【図７】本実施の形態の非同期吸収回路の一例のタイミング図である。
【図８】時刻ｔ６から時刻ｔ７における処理の一例の説明図である。
【図９】本実施の形態の非同期吸収回路を含む他の実施例のブロック図である。
【図１０】本実施の形態の非同期吸収回路の他の例のタイミング図である。
【図１１】複数のシングルポートＲＡＭから必要なシングルポートＲＡＭの組み合わせを選ぶ方法の一例を示した説明図である。
【図１２】異なる複数のモードの一例の説明図である。
【図１３】ＰＣの一例のハードウェア構成図である。
【図１４】２つのシングルポートＲＡＭのビット数及びＷｏｒｄ数の一例を表した説明図である。
【図１５】入力データを分割したブロックデータの一例の説明図である。
【図１６】ＲＡＭ切り替えテーブルの作成手順を示した一例のフローチャートである。
【図１７】ＦＡＢにある記憶容量のシングルポートＲＡＭの組み合わせの一例を示した説明図である。
【図１８】非同期吸収の遅延時間を表した一例の説明図である。
【図１９】ＲＡＭ切り替えテーブルを作成するシートの一例の構成図である。
【図２０】ＲＡＭ切り替えテーブルを作成するシートの他の例の構成図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、詳細に説明する。
【００１２】
本実施の形態における非同期吸収回路は、高速な入力データを低速な出力データに速度変換する。非同期吸収回路は速度変換回路と呼ばれることもある。従来、非同期吸収回路は一般的に、デュアルポートメモリを利用して非同期吸収を行っていた。
【００１３】
しかし、デュアルポートメモリはＦＡＢ（ファウンドリ）によって用いることができないこともある。また、デュアルポートメモリは記憶容量に対するチップサイズがシングルポートメモリに比べ、約２倍以上大きく、メモリ以外の制御回路（グレイコードカウンタなど）の規模も大きい。
【００１４】
さらに、デュアルポートメモリは、異なる複数のモードを持つ製品でＲＡＭ等のメモリをモード毎に使い分けて回路規模を小さくする、または、消費電力を減少させたくても他に転用できなかった。
【００１５】
そこで、本実施の形態における非同期吸収回路では、非同期吸収用として複数のシングルポートメモリを用いることでチップサイズを削減し、複数のモードでシングルポートメモリの転用（兼用）を、し易くしている。
【実施例１】
【００１６】
図１は非同期吸収回路を含む一例のブロック図である。図１は入力データが８０ＭＨｚの１２８０×７２０（７２０ｐ）のＹＵＶ４２２の３０ｆｐｓ（Ｆｒａｍｅ  Ｐｅｒ  Ｓｅｃｏｎｄ）の映像データである。７２０ｐはデジタルテレビ放送の映像信号形式の１つである。
【００１７】
ＹＵＶ４２２は、色の表現方法であるＹＵＶ方式の１つである。ＹＵＶ４２２は１ピクセルあたり、輝度情報８ビット、色差情報８ビットの１６ビットで色を表現する。ｆｐｓは１秒間に何枚の画像を表示するのかを示している。また、図１は出力データが５０ＭＨｚの７２０ＰのＹＵＶ４２２の３０ｆｐｓの映像データである。
【００１８】
図１の非同期吸収回路１１は８０ＭＨｚの入力データを５０ＭＨｚの出力データに速度変換する例を表している。入力データは入力データＩ／Ｆ１０を介して非同期吸収回路１１に入力される。また、出力データは出力データＩ／Ｆ１２を介して非同期吸収回路１１から出力される。入力データＩ／Ｆ１０は８０ＭＨｚのクロック信号ＩＣＬＫと同期させて入力データを非同期吸収回路１１に入力させる。出力データＩ／Ｆ１２は５０ＭＨｚのクロック信号ＯＣＬＫと同期させて出力データを非同期吸収回路１１から出力させる。
【００１９】
入力データは入力側垂直同期信号ＶＳＹＮＣ、入力側水平同期信号ＨＳＹＮＣ、入力側輝度情報８ビット及び色差情報８ビットをまとめた１６ビットのデータＤＡＴＡを有している。また、出力データは出力側垂直同期信号ＯＶＳＹＮＣ、出力側水平同期信号ＯＨＳＹＮＣ、出力側輝度情報８ビット及び色差情報８ビットをまとめた１６ビットのデータＯＤＡＴＡ、出力側バリッド信号ＯＶＡＬＩＤを有している。
【００２０】
図２は非同期吸収回路の一例のタイミング図である。図２のＶＢＬＡＮＫは垂直同期信号の間隔を示している。ＨＢＬＡＮＫは水平同期信号の間隔を示している。図２（ａ）は入力側垂直同期信号ＶＳＹＮＣのタイミング図である。図２（ｂ）は入力側水平同期信号ＨＳＹＮＣのタイミング図である。図２（ｃ）は１６ビットのデータＤＡＴＡのタイミング図である。
【００２１】
図２（ｄ）は出力側垂直同期信号ＯＶＳＹＮＣのタイミング図である。図２（ｅ）は出力側水平同期信号ＯＨＳＹＮＣのタイミング図である。図２（ｆ）は１６ビットのデータＯＤＡＴＡのタイミング図である。図２（ｇ）は出力側バリッド信号ＯＶＡＬＩＤのタイミング図である。
【００２２】
図２のタイミング図に示すように、１回の入力側垂直同期信号ＶＳＹＮＣの期間に７２０ライン分の入力側水平同期信号ＨＳＹＮＣが含まれる。また、１回の入力側水平同期信号ＨＳＹＮＣの期間には１２８０クロック分（クロック信号ＩＣＬＫ）のデータＤＡＴＡが含まれる。
【００２３】
また、１回の出力側垂直同期信号ＯＶＳＹＮＣの期間に７２０ライン分の出力側水平同期信号ＯＨＳＹＮＣが含まれる。また、１回の出力側水平同期信号ＯＨＳＹＮＣの期間には１２８０クロック分（クロック信号ＯＣＬＫ）のデータＯＤＡＴＡ及び出力側バリッド信号ＯＶＡＬＩＤが含まれる。なお、出力データは入力データに対して遅延している。
【００２４】
図３は非同期吸収回路の一例の拡大したタイミング図である。図３の拡大したタイミング図では入力側垂直同期信号ＶＳＹＮＣ及び出力側垂直同期信号ＯＶＳＹＮＣを省略している。
【００２５】
図３に示すように、映像データの非同期吸収は通常、１ライン毎に行う。１ライン毎に非同期吸収を行うため、１つのラインの出力が終わる前に次のラインの入力が始まることは好ましくない。なお、非同期吸収回路１１の作り方によっては１つのラインの出力が終わる前に次のラインの入力が始まっても対応できるが、平均速度が一定ならばＲＡＭに蓄積されるデータがライン毎に増加し、必要なＲＡＭの記憶容量が増える。
【００２６】
一般に、垂直同期信号の間隔ＶＢＬＡＮＫは、水平同期信号の間隔ＨＢＬＡＮＫよりも長い。したがって、ライン毎に非同期吸収を行う為には、非同期吸収の遅延時間が水平同期信号の間隔ＨＢＬＡＮＫ以下であればよい。なお、非同期吸収の遅延時間は１ライン中のデータＤＡＴＡの終了からデータＯＤＡＴＡの終了までの時間である。例えば８０ＭＨｚで７２０ｐの映像データは３０ｆｐｓのとき、２０ｕｓ以上（最大平均約３０ｕｓ）の水平同期信号の間隔ＨＢＬＡＮＫを持つ。
【００２７】
ここでは、本実施の形態における非同期吸収回路の理解を容易とするために、デュアルポートＲＡＭを使った非同期吸収回路について説明する。図４はデュアルポートＲＡＭを使った非同期吸収回路を含む一例のブロック図である。図４は入力データが８０ＭＨｚの１２８０クロック分（クロック信号ＩＣＬＫ）の連続データである。また、出力データは５０ＭＨｚの１２８０クロック分（クロック信号ＯＣＬＫ）の連続データである。
【００２８】
非同期吸収回路１１は８０ＭＨｚのクロック信号ＩＣＬＫと同期させてデュアルポートＲＡＭ１３にデータＤＡＴＡを格納し、５０ＭＨｚのクロック信号ＯＣＬＫと同期させてデータＯＤＡＴＡをデュアルポートＲＡＭ１３から取り出す。
【００２９】
図５はデュアルポートＲＡＭを使った非同期吸収回路で必要な記憶容量と遅延時間の計算について表した一例の説明図である。非同期吸収回路１１は、入力データの入力が始まると、ほぼ同時に出力データの出力を開始する。正確には、入力データを非同期吸収して取り出すため、入力データより僅かに遅れて出力データの出力が始まる。
【００３０】
図５の例では入力データのクロック信号ＩＣＬＫの方が出力データのクロック信号ＯＣＬＫよりも速いので出力データを出力しきるまで出力側バリッド信号ＯＶＡＬＩＤがアクティブになる。このため、非同期吸収の遅延時間は入力データの入力時間１６ｕｓと出力データの出力時間２５．６ｕｓとの差である９．６ｕｓとなる。
【００３１】
入力データの入力が終了した時点で、デュアルポートＲＡＭ１３には９．６ｕｓの時間を掛けて出力する４８０ｗｏｒｄ分の出力データが記憶されている。なお、４８０ｗｏｒｄは１２８０ｗｏｒｄの９．６ｕｓ／２５．６ｕｓである。
【００３２】
したがって、デュアルポートＲＡＭ１３は１６ビット×４８０ｗｏｒｄ＝９６０バイト以上の記憶容量が必要である。なお、実際には（ＦＡＢによっては）半端なｗｏｒｄ数のデュアルポートＲＡＭ１３がないので１６ビット×５１２ｗｏｒｄのデュアルポートＲＡＭ１３が必要である。
【００３３】
図６は本実施の形態の非同期吸収回路を含む一実施例のブロック図である。図６に示したように、本実施の形態の非同期吸収回路２０は２つのシングルポートＲＡＭ０、１を使用する。また、図６は入力データが８０ＭＨｚの１２８０クロック分（クロック信号ＩＣＬＫ）の連続データである。出力データは５０ＭＨｚの１２８０クロック分（クロック信号ＯＣＬＫ）の連続データである。２つのシングルポートＲＡＭ０、１の記憶容量は１６ビット×３８４ｗｏｒｄ＝７６８バイトである。
【００３４】
非同期吸収回路２０は同期吸収部２１と非同期吸収部２２とを有する。非同期吸収部２２は内蔵ＦＦ（フリップフロップ）部２９を有する。内蔵ＦＦ部２９は、例えば８ＣＬＫ分の出力データを保持する。内蔵ＦＦ部２９は例えば１６バイトの小さなＦＦで非同期吸収を行う。また、内蔵ＦＦ部２９は保持している出力データがフル（ＦＵＬＬ）になる前にｗａｉｔ  ｓｉｇｎａｌで同期吸収部２１からの出力データを一時停止する。
【００３５】
同期吸収部２１はデータ数（ＣＬＫ数）カウント部２３と、ＲＡＭ切り替えテーブル２４と、スイッチング判定部２５と、ライト動作部２６と、リード動作部２７と、ＲＡＭセレクタ部２８とを有する。同期吸収部２１はｗａｉｔ  ｓｉｇｎａｌで非同期吸収部２２への出力データを一時停止している間も、入力データを確保し続けるためにライト動作を行う。
【００３６】
データ数カウント部２３は８０ＭＨｚの入力データをカウントして、今が何クロック目の入力データかを認識する。ＲＡＭ切り替えテーブル２４には、予め決められたクロック目で２つのシングルポートＲＡＭ０、１のどちらにライト又は２つのシングルポートＲＡＭ０、１のどちらからリードするかの情報が記憶されている。
【００３７】
例えばＲＡＭ切り替えテーブル２４には２つのシングルポートＲＡＭ０、１のリード及びライトを切り替えるタイミングが記憶されている。スイッチング判定部２５はＲＡＭ切り替えテーブル２４に記憶されているタイミングに基づいて、ＲＡＭセレクタ部２８のスイッチングを行うことで入力データをシングルポートＲＡＭ０、１に振り分ける。
【００３８】
ライト動作部２６はＲＡＭセレクタ部２８のスイッチングに基づいて、２つのシングルポートＲＡＭ０、１の一方にデータＤＡＴＡをライトする。また、リード動作部２７はＲＡＭセレクタ部２８のスイッチングに基づいて、２つのシングルポートＲＡＭ０、１の一方からデータＤＡＴＡをリードする。リード動作部２７はリードしたデータＤＡＴＡを内蔵ＦＦ部２９に送信する。
【００３９】
図７は、本実施の形態の非同期吸収回路の一例のタイミング図である。例えば図７のタイミング図は１２８０クロック分の連続データである入力データを８つのブロックデータＤ１−Ｄ８に分けている。ブロックデータＤ１−Ｄ８の分け方は等分割でなく、後述する一定のルールの下で分割される。ＲＡＭ切り替えテーブル２４に記憶されている２つのシングルポートＲＡＭ０、１のリード及びライトを切り替えるタイミングは後述する一定のルールに基づいて、言い換えればブロックデータＤ１−Ｄ８の分け方に基づいて決められている。
【００４０】
２つのシングルポートＲＡＭ０、１はシングルポートである為、どの時刻においてもライト動作及びリード動作を同時に行わない。また、２つのシングルポートＲＡＭ０、１は必ずどちらか一方が、入力データと同じ時刻にデータＤＡＴＡが書き込まれている。出力データは２つのシングルポートＲＡＭ０、１の一方から読み出された後、非同期吸収部２２で非同期吸収が行われる。したがって、非同期吸収部２２から出力される出力データは２つのシングルポートＲＡＭ０、１の何れか一方から出力されるデータＤＡＴＡよりも僅かに遅延する。
【００４１】
また、非同期吸収部２２はフルになりそうになるとｗａｉｔ  ｓｉｇｎａｌで同期吸収部２１からの出力データを一時停止する。したがって、図７のタイミング図ではシングルポートＲＡＭ０、１の何れか一方から読み出されたデータＤＡＴＡがブロックデータ毎に固まっているが、必ずしもブロックデータ毎に連続してデータＤＡＴＡを読み出しているわけではない。
【００４２】
ブロックデータＤ１のシングルポートＲＡＭ０へのライトは時刻ｔ１に開始され、時刻ｔ２に終了する。次のブロックデータＤ２はシングルポートＲＡＭ１にライトされる。ブロックデータＤ２のシングルポートＲＡＭ１へのライトは時刻ｔ２に開始され、時刻ｔ３に終了する。ブロックデータＤ１のシングルポートＲＡＭ０からのリードは時刻ｔ２から時刻ｔ３の間に行われる。シングルポートＲＡＭ０からリードされたブロックデータＤ１は非同期吸収部２２で非同期吸収が行われたあと、出力データとして出力される。
【００４３】
以後、非同期吸収回路２０は、図７のタイミング図に示すように時刻ｔ１から時刻ｔ３と同様な処理を繰り返し行い、時刻ｔ９でブロックデータＤ８のシングルポートＲＡＭ１へのライトが終了する。
【００４４】
図８は時刻ｔ６から時刻ｔ７における処理の一例の説明図である。シングルポートＲＡＭ０はデータブロックＤ５を記憶している。シングルポートＲＡＭ０からリードされたブロックデータＤ５が非同期吸収部２２で非同期吸収されたあと、出力データとして出力されるまでに２０ｕｓ（または４０ｕｓ）掛かったとしても、非同期吸収部２２の入力側の８０ＭＨｚの方が出力側の５０ＭＨｚよりも速いので、出力データはブロックデータＤ５が終わるまで常にバリッドである。
【００４５】
言い換えると、非同期吸収部２２は内蔵ＦＦ部２９の保持している出力データがフルにならないようにリード動作を時々、ｗａｉｔ  ｓｉｇｎａｌで一時停止するが、ブロックデータＤ５の出力が終わるまで内蔵ＦＦ部２９の保持している出力データがエンプティになることはない。
【００４６】
時刻ｔ６からブロックデータＤ６のシングルポートＲＡＭ１へのライトの完了は２３３クロック分（クロック信号ＩＣＬＫ）の２９１２．５ｎｓである。また、時刻ｔ６からブロックデータＤ５の出力データとしての出力の完了には１３８クロック分（クロック信号ＯＣＬＫ）の２７６０ｎｓに、非同期吸収部２２から出力データが出力し始めるまでの２０ｕｓを加算した時間が掛かる。
【００４７】
このように、ブロックデータＤ６のシングルポートＲＡＭ１へのライト動作は時刻ｔ７に終わる。一方、ブロックデータＤ５をシングルポートＲＡＭ０からリードしたあと非同期吸収した出力データとして出力する動作は必ず時刻ｔ７より早く終わる。なお、図７のタイミング図では時刻ｔ８まで必ずリード動作の方がライト動作よりも早く終わるようにＲＡＭ切り替えテーブル２４が作成されている。
【００４８】
また、時刻ｔ９ではブロックデータＤ８のシングルポートＲＡＭ１へのライト動作が終わる。一方、ブロックデータＤ７のシングルポートＲＡＭ０からのリード動作は時刻ｔ９で終わらない。時刻ｔ９ではリード動作の方がライト動作よりも遅く終わるようにＲＡＭ切り替えテーブル２４が作成されている。しかし、次のラインのブロックデータＤ１は水平同期信号の間隔ＨＢＬＡＮＫ（２０ｕｓ）以上経過しないと入力されないため、問題がない。ブロックデータＤ７のシングルポートＲＡＭ０からのリード動作は時刻ｔ１０に終わる。
【００４９】
ブロックデータＤ８のシングルポートＲＡＭ１からのリード動作は時刻ｔ１０から開始されて時刻ｔ１１に終了する。シングルポートＲＡＭ１からリードされたブロックデータＤ８が非同期吸収部２２で非同期吸収されたあと出力される出力データは、僅かに時刻ｔ１１より遅れるが、非同期吸収部２２における初めての入力から初めての出力までの時間に等しく２０ｎｓまたは４０ｎｓ程度で１ｕｓより十分に小さいので無視できる。
【００５０】
以上のように、図８の非同期吸収回路２０の遅延時間は時刻ｔ１１−ｔ９である。時刻ｔ１１−ｔ９は（ｔ１１−ｔ８）−（ｔ９−ｔ８）と変換できる。ｔ１１−ｔ８は５０ＭＨｚでブロックデータＤ７、Ｄ８を出力する時間である。また、ｔ９−ｔ８は８０ＭＨｚでブロックデータＤ８をシングルポートＲＡＭ１へライトする時間である。
【００５１】
したがって、２０ｎｓ×（３８４＋３８０）−１２．５ｎｓ×３８０＝１０．５３ｕｓと見積もれる。このように、図６の非同期吸収回路２０は遅延時間が１０．５３ｕｓと水平同期信号の間隔ＨＢＬＡＮＫ（２０ｕｓ）よりも十分に小さく、８０ＭＨｚ、７２０ｐ及び３０ｆｐｓの映像データを５０ＭＨｚ、７２０ｐ及び３０ｆｐｓの映像データに変換できる。
【００５２】
以上のように、非同期吸収回路２０は、従来、１６ビット×５１２ｗｏｒｄのデュアルポートＲＡＭ１３を使って行っていた非同期吸収を、１６ビット×３８４ｗｏｒｄの２つのシングルポートＲＡＭ０、１を使って実現できる。なお、一般的に、１６ビット×３８４ｗｏｒｄの２つのシングルポートＲＡＭ０、１の組み合わせは１６ビット×５１２ｗｏｒｄのデュアルポートＲＡＭ１３より回路規模が小さい。
【実施例２】
【００５３】
図９は本実施の形態の非同期吸収回路を含む他の実施例のブロック図である。図９の非同期吸収回路２０Ａは以下の点で図６の非同期吸収回路２０と異なっている。まず、非同期吸収回路２０Ａは図６の内蔵ＦＦ部２９が取り除かれている。また、非同期吸収回路２０Ａは２つのシングルポートＲＡＭ０、１のリード動作及びライト動作を切り替えるだけでなく、動作させる為のクロック信号も切り替えている。
【００５４】
２つのシングルポートＲＡＭ０、１を動作させる為のクロック信号はＣＬＫ生成回路３０を介して２つのシングルポートＲＡＭ０、１に供給される。ＣＬＫ生成回路３０はＣＬＫセレクタ部３１を有している。ＣＬＫセレクタ部３１は８０ＭＨｚのクロック信号及び５０ＭＨｚのクロック信号を供給されている。
【００５５】
ＣＬＫセレクタ部３１は２つのシングルポートＲＡＭ０、１のうちライト動作を行っている方に８０ＭＨｚのクロック信号を供給し、リード動作を行っている方に５０ＭＨｚのクロック信号を供給する。なお、スイッチング判定部２５はＲＡＭ切り替えテーブル２４に記憶されているタイミングに基づき、ＣＬＫセレクタ部３１から２つのシングルポートＲＡＭ０、１に供給される８０ＭＨｚのクロック信号及び５０ＭＨｚのクロック信号のスイッチングを行う。
【００５６】
このように、２つのシングルポートＲＡＭ０、１はライト動作を行っているときに８０ＭＨｚのクロック信号が供給され、リード動作を行っているときに５０ＭＨｚのクロック信号が供給される。非同期吸収回路２０Ａでは２つのシングルポートＲＡＭ０、１から５０ＭＨｚのクロック信号と同期させて出力データが出力されるため、図６の内蔵ＦＦ部２９が不要となる。
【００５７】
非同期吸収回路２０Ａの基本的な考え方やタイミング図は図６の非同期吸収回路２０と同様である。非同期吸収回路２０ＡはＣＬＫセレクタ部３１によるクロック信号の切り替えに要する時間も含めて、リード動作の完了がライト動作の完了よりも早く終わるようにＲＡＭ切り替えテーブル２４を作成しておく。
【００５８】
例えば非同期吸収回路２０ＡはシングルポートＲＡＭ０の５０ＭＨｚのクロック信号によるリード動作が完了したあと次のライト動作に備えて８０ＭＨｚのクロック信号に切り替える（または停止しておく）までの時間が、シングルポートＲＡＭ１の８０ＭＨｚのライト動作の完了よりも早い。
【００５９】
なお、非同期吸収回路２０Ａは、図６の非同期吸収回路２０と比較して回路規模が小さくなるが、２つのシングルポートＲＡＭ０、１に供給する８０ＭＨｚ及び５０ＭＨｚのクロック信号と、８０ＭＨｚのクロック信号ＩＣＬＫ及び５０ＭＨｚのクロック信号ＯＣＬＫとの同期タイミング調整が必要なために、非同期吸収回路２０Ａの外のＣＬＫ生成回路３０にロジックが必要な方式である。
【００６０】
以上のように、非同期吸収回路２０Ａは、従来、１６ビット×５１２ｗｏｒｄのデュアルポートＲＡＭ１３を使って行っていた非同期吸収を、１６ビット×３８４ｗｏｒｄの２つのシングルポートＲＡＭ０、１を使って実現できる。
【実施例３】
【００６１】
本実施の形態の非同期吸収回路２０は、２つのシングルポートＲＡＭ０、１の合計の記憶容量が同じでも実現可能な記憶容量の組み合わせが１つではない。例えば図７のタイミング図と異なるシングルポートＲＡＭ０、１の記憶容量の組み合わせの場合、ＲＡＭ切り替えテーブル２４には図７と異なる２つのシングルポートＲＡＭ０、１のリード及びライトを切り替えるタイミングが記憶されている。
【００６２】
図１０は本実施の形態の非同期吸収回路の他の例のタイミング図である。以下では図７のタイミング図と同様な部分についての説明を適宜省略する。図１０ではシングルポートＲＡＭ０の記憶容量が１６ビット×５１２ｗｏｒｄ（４４９Ｗｏｒｄしか使用しない）であり、シングルポートＲＡＭ１の記憶容量が１６ビット×２５６ｗｏｒｄである。
【００６３】
図１０における非同期吸収回路２０の遅延時間は、図６と同様に５０ＭＨｚでブロックデータＤ７、Ｄ８を出力する時間から８０ＭＨｚでブロックデータＤ８をシングルポートＲＡＭ１へライトする時間を引くことで算出できる。
【００６４】
したがって、２０ｎｓ×（４４９＋２５６）−１２．５ｎｓ×２５６＝１０．９ｕｓと遅延時間を見積もることができる。このように、図１０のタイミング図に示す非同期吸収回路２０は遅延時間が１０．９ｕｓと図６の非同期吸収回路２０より僅かに延びるが、水平同期信号の間隔ＨＢＬＡＮＫ（２０ｕｓ）よりも十分に小さく、問題ない。ここで言うＲＡＭ切り替えテーブル２４は２つのシングルポートＲＡＭ０、１として接続されるＲＡＭの記憶容量の情報と、２つのシングルポートＲＡＭ０、１のリード及びライトを切り替えるタイミングの情報とを合わせた情報である。
【実施例４】
【００６５】
なお、異なる複数のモードを持つ製品では、ＲＡＭ切り替えテーブル２４を変更することにより、複数のシングルポートＲＡＭから必要なシングルポートＲＡＭの組み合わせを選んで切り替えることもできる。
【００６６】
図１１は複数のシングルポートＲＡＭから必要なシングルポートＲＡＭの組み合わせを選ぶ方法の一例を示した説明図である。図１１（ａ）の非同期吸収回路２０は書き換え可能なＲＡＭ切り替えテーブル２４Ａを有し、ＣＰＵ４０で書き換え可能なＲＡＭ切り替えテーブル２４Ａを書き換える。ＲＡＭセレクタ部４１は、書き換え可能なＲＡＭ切り替えテーブル２４Ａにしたがって、シングルポートＲＡＭ−Ａ〜シングルポートＲＡＭ−ＤからシングルポートＲＡＭ０、１を選択する。図１１（ａ）の非同期吸収回路２０は２つのシングルポートＲＡＭ０、１のリード及びライトを切り替えるタイミングの情報を書き換えることで、意図的に遅延時間を長くすることもできる。
【００６７】
図１１（ｂ）の非同期吸収回路２０は予め複数の固定ＲＡＭ切り替えテーブル２４Ｂを有し、ＲＡＭ切り替えテーブルセレクタ部４２がモード（ｍｏｄｅ  ｓｉｇｎａｌ）に基づいて、自動で複数の固定ＲＡＭ切り替えテーブル２４Ｂから１つの固定ＲＡＭ切り替えテーブル２４Ｂを選択する。ＲＡＭセレクタ部４１は、固定ＲＡＭ切り替えテーブル２４Ｂに従い、シングルポートＲＡＭ−Ａ〜シングルポートＲＡＭ−ＤからシングルポートＲＡＭ０、１を選択する。
【００６８】
なお、ＲＡＭセレクタ部４１は複数のシングルポートＲＡＭを一つのシングルポートＲＡＭとして扱ってもよい。例えばシングルポートＲＡＭ−ＡとシングルポートＲＡＭ−Ｂとを連結してシングルポートＲＡＭ０としてもよい。以上のように、異なる複数のモードを持つ製品において、シングルポートＲＡＭを切り替えて別の非同期吸収ができることは大きなメリットを持つ。
【００６９】
図１２は異なる複数のモードの一例の説明図である。図１２（ａ）は通常の映像データと輝度情報とをスケールダウンしてグレースケールの映像データを２つ同時に流す２ストリームモードの一例の説明図である。補正ありスケール変換回路５０で行う補正ありのスケールダウンには１ライン分（１２８０×８ビット）の記憶容量を持つＲＡＭが必要であるため、１６ビット×６４０ｗｏｒｄのシングルポートＲＡＭ−Ｃを利用する。
【００７０】
また、図１２（ｂ）は出力データを５０ＭＨｚでなく４０ＭＨｚまで落とす低消費電力モードの一例の説明図である。図１２（ｂ）に示す低消費電力モードを更に持つ場合は非同期吸収回路２０がシングルポートＲＡＭ０としてシングルポートＲＡＭ−Ｃを選択すると共に、シングルポートＲＡＭ１としてシングルポートＲＡＭ−Ａを選択することで実現できる。
【００７１】
従来の非同期吸収回路１１では低消費電力モードを実現する為に、１６ビット×６４０ＷｏｒｄのデュアルポートＲＡＭを持たなければならない。また、従来の非同期吸収回路１１では２ストリームモードを実現する為に、補正ありスケール変換回路５０が利用するシングルポートＲＡＭ−Ｃを持たなければならない。
【００７２】
このように、異なる複数のモードを持つ製品において、従来の非同期吸収回路１１は本実施の形態の非同期吸収回路２０と比較して回路規模が不利となる。また、異なる複数のモードを持つ製品の中に、非同期吸収しなければならない箇所が複数ある場合は、全ての箇所を本実施の形態の非同期吸収回路２０で実現すれば、モードごとにシングルポートＲＡＭを使い分ける選択肢が増え、従来の非同期吸収回路１１と比べて回路規模の面で更に有利となる。
【００７３】
なお、ここまでの説明では入力データが入力側バリッド信号ＩＮＶＡＬＩＤを有していなかった。入力側バリッド信号ＩＮＶＡＬＩＤを有している場合、入力データはＩＮＶＡＬＩＤ期間があれば、入力速度が遅くなる。しかし、本実施の形態の非同期吸収回路２０には不都合か生じない。ＲＡＭ切り替えテーブル２４は入力データが最大の速度であるときを想定して作成されている。
【実施例５】
【００７４】
ＲＡＭ切り替えテーブル２４の作成及びシングルポートＲＡＭ０、１の記憶容量の選択は例えば図１３に示すようなＰＣ（パーソナルコンピュータ）でプログラムを実行することにより実現できる。図１３はＰＣの一例のハードウェア構成図である。ＰＣはバス６８で相互に接続されている入力装置６１、出力装置６２、記録媒体読取装置６３、補助記憶装置６４、主記憶装置６５、演算処理装置６６及びインタフェース装置６７を有する構成である。
【００７５】
入力装置６１はキーボードやマウス等である。入力装置６１は各種信号を入力するために用いられる。出力装置６２はディスプレイ装置等である。出力装置６２は各種ウインドウやデータ等を表示するために用いられる。インタフェース装置６７は、モデム、ＬＡＮカード等である。インタフェース装置６７はＬＡＮやインターネット等のネットワークに接続するために用いられる。
【００７６】
ＲＡＭ切り替えテーブル２４の作成やシングルポートＲＡＭ０、１の記憶容量の選択を実現するプログラムは、例えば記録媒体６９の配布やネットワーク等からのダウンロードなどによって提供される。なお、ＲＡＭ切り替えテーブル２４の作成やシングルポートＲＡＭ０、１の記憶容量の選択を実現するプログラムはＰＣで実行されるプログラムの少なくとも一部である。
【００７７】
記録媒体６９はＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００７８】
プログラムを記録した記録媒体６９が記録媒体読取装置６３にセットされると、プログラムは記録媒体６９から記録媒体読取装置６３を介して補助記憶装置６４にインストールされる。ネットワーク等からダウンロードされたプログラムはインタフェース装置６７を介して補助記憶装置６４にインストールされる。
【００７９】
補助記憶装置６４はプログラム、必要なファイル、データ等を格納する。主記憶装置６５はプログラムの起動時に補助記憶装置６４からプログラムを読み出して格納する。演算処理装置６６は主記憶装置６５に格納されたプログラムに従って各種機能を実現する。
【００８０】
まず、ＲＡＭ切り替えテーブル２４の作成方法及びシングルポートＲＡＭ０、１の記憶容量の選択方法について説明する。
【００８１】
図１４は２つのシングルポートＲＡＭのビット数及びＷｏｒｄ数の一例を表した説明図である。２つのシングルポートＲＡＭ０、１は同じビット数（ビット幅）である。シングルポートＲＡＭ０のＷｏｒｄ数はｗ０とする。シングルポートＲＡＭ１のＷｏｒｄ数はｗ１とする。入力データ及び出力データのビット数はシングルポートＲＡＭ０、１と同じとする。シングルポートＲＡＭ０のＷｏｒｄ数ｗ０及びシングルポートＲＡＭ１のＷｏｒｄ数ｗ１は以下の式（１）及び式（２）のように定義される。
【００８２】
ｗ０≧ｗ１…（１）
ｗ０及びｗ１は自然数…（２）
式（１）はシングルポートＲＡＭ０のＷｏｒｄ数ｗ０の方がシングルポートＲＡＭ１のＷｏｒｄ数ｗ１以上であることを示している。なお、ＦＡＢ（ファウンドリ）が決まっていれば、式（２）には６４の倍数、１２８の倍数などの条件が追加される。
【００８３】
クロック信号ＩＣＬＫの周波数が可変である場合は遅い周波数でも問題がないので最大周波数で見積もる。クロック信号ＯＣＬＫの周波数が可変である場合は早い周波数でも問題がないので最低周波数で見積もる。
【００８４】
クロック信号ＩＣＬＫの最大周波数はｆｉｎとする。また、クロック信号ＯＣＬＫの最低周波数はｆｏｕｔとする。クロック信号ＩＣＬＫの最大周波数とクロック信号ＯＣＬＫの最低周波数との周波数比率ｋは以下の式（３）及び式（４）のように定義される。
【００８５】
ｋ＝ｆｉｎ／ｆｏｕｔ…（３）
ｋ＞１（ｆｉｎ＞０かつｆｏｕｔ＞０かつｆｉｎ＞ｆｏｕｔ）…（４）
ｋ≦１のときは入力データのクロック信号ＩＣＬＫの方が出力データのクロック信号ＯＣＬＫよりも遅くなる。したがって、ｋ≦１のときは非同期吸収するために大きな記憶容量のメモリを使う必要がないので、説明を省略する。
【００８６】
図１５は入力データを分割したブロックデータの一例の説明図である。入力データが連続する最大クロック数はＩとする。最大クロック数Ｉをｎ分割してできたデータブロックの入力クロック数はｘｎとする。なお、入力クロック数ｘｎの添え字ｎは先に来るデータブロックに大きい数を付している。最大クロック数Ｉと入力クロック数ｘｎとの関係は以下の式（５）及び式（６）のように定義される。
【００８７】
Ｉ＝Σ（ｍ＝１からｎ）ｘｍ…（５）
Ｉ、ｎ及びｘｎは自然数…（６）
非同期吸収回路２０の場合は、非同期吸収部２２の遅延時間をｔとする。非同期吸収回路２０Ａの場合は、２つのシングルポートＲＡＭ０、１を動作させる為のクロック信号の切り替えに掛かる遅延時間をｔとする。遅延時間ｔは入力クロック数ｘｎを基準に切り上げて、入力クロック数ｘｎで時間を定義する。なお、遅延時間ｔは非同期吸収回路２０の実装方法によって僅かに異なる。また、本実施の形態では、実数Ｘを超えない最大の整数を［Ｘ］で表すこととする。また、入力クロック数ｘｎは以下の式（７）及び式（８）のように定義される。
【００８８】
ｎ≧３のとき、ｘｎ＝［（ｘｎ−１−ｔ）／ｋ］（ただし、ｘｎはメモリのｗｏｒｄ長を超えない。）…（７）
ｎは自然数で、できるだけ大きくする。ｘｎは自然数でなければならない。ｎが一定数以上のとき、式（７）よりｘｎは０又は負数となるが、全て０とする。…（８）
また、以下の説明では式（９）及び式（１０）を利用する。
【００８９】
関数ｆ（ｘ）＝［（ｘ−ｔ）／ｋ］…（９）
実数ａ及びｂのうち、小さい方をＭｉｎ（ａ、ｂ）と記述する。…（１０）
以下では決められたメモリの記憶容量で受け入れられる最大の入力データクロック数Ｌについて考える。２つのシングルポートＲＡＭ０、１の記憶容量は、最大の入力データクロック数Ｌが最大クロック数Ｉよりも大きくなるようにすればよい。
【００９０】
まずは、ｎ分割された最後の入力クロック数ｘ１のデータブロックがシングルポートＲＡＭ０に格納されるべきか、シングルポートＲＡＭ１に格納されるべきかを考える。
【００９１】
Ｌ＝Σ（ｍ＝４からｎ）ｘｍ＋ｘ３＋ｘ２＋ｘ１…（１１）
ｎ分割された最後の入力クロック数ｘ１のデータブロックがシングルポートＲＡＭ０及びシングルポートＲＡＭ１のどちらに格納されるとしても、以下の式（１２）が成り立つことになる。
【００９２】
ｘ２＋ｘ１＝ｗ１＋ｗ０＝ｗ０＋ｗ１…（１２）
式（７）よりｘ３が大きい方が最大の入力データクロック数Ｌは大きくなる。最後の入力クロック数ｘ１のデータブロックがシングルポートＲＡＭ０に格納されるべきかシングルポートＲＡＭ１に格納されるべきか、は以下の式（１３）の関係から、最後にシングルポートＲＡＭ１に格納されるべきと分かる。
【００９３】
Ｍｉｎ（ｗｏ、ｆ（ｗ１））≦Ｍｉｎ（ｗ１、ｆ（ｗ０））…（１３）
証明：命題Ｍｉｎ（ｗｏ、ｆ（ｗ１））≦Ｍｉｎ（ｗ１、ｆ（ｗ０））
式（１）と式（４）と式（９）によりｗ０≧ｗ１≧ｆ（ｗ１）により
Ｍｉｎ（ｗｏ、ｆ（ｗ１））＝ｆ（ｗ１）
ｗ１≧ｆ（ｗ１）かつｆ（ｗ０）≧ｆ（ｗ１）なので
Ｍｉｎ（ｗ１、ｆ（ｗ０））≧ｆ（ｗ１）
よって、Ｍｉｎ（ｗｏ、ｆ（ｗ１））≦Ｍｉｎ（ｗ１、ｆ（ｗ０））
上記より、最大の入力データクロック数Ｌは以下の式（１４）となる。
【００９４】
Ｌ＝Σ（ｍ＝４からｎ）ｘｍ＋Ｍｉｎ（ｗ１、ｆ（ｗ０））＋ｗｏ＋ｗ１…（１４）
また、ＲＡＭ切り替えテーブル２４は例えば図１６に示したフローチャートの手順で作成される。図１６はＲＡＭ切り替えテーブルの作成手順を示した一例のフローチャートである。図１６のフローチャートは非同期吸収回路仕様決定ステージＳ１と、ＦＡＢ選定ステージＳ２と、ＲＡＭの組み合わせとＲＡＭ切り替えテーブル作成ステージＳ３とを有する手順を示している。
【００９５】
非同期吸収回路仕様決定ステージＳ１は非同期吸収したいデータの情報を決める手順である。また、ＦＡＢ選定ステージＳ２はデータのビット幅のシングルポートＲＡＭでＦＡＢにあるＷｏｒｄ数のシングルポートＲＡＭを全て選ぶ手順である。また、ＲＡＭの組み合わせとＲＡＭ切り替えテーブル作成ステージＳ３は決められた遅延時間内で非同期吸収が可能な使えるシングルポートＲＡＭの組み合わせと、ＲＡＭ切り替えテーブル２４とが出力される手順である。
【００９６】
Ｌ＝Σ（ｍ＝１からｎ）ｘｍ
＝Σ（ｍ＝１から∞）ｘｍ
＝Σ（ｍ＝４から∞）ｘｍ＋Ｍｉｎ（ｗ１、ｆ（ｗ０））＋ｗｏ＋ｗ１…（１５）
式（１５）のｍの値を増やしていって初めてｘｍが０になる所の１つ前がｎである。Ｌは表計算ソフトなどを用いて求めることができる。なお、非同期吸収の遅延時間を小さくする為には、最大の入力データクロック数Ｌと入力データが連続する最大クロック数Ｉとが等しくなるように入力クロック数ｘ２を小さくすればよい。ｘ２＝ｗ０−（Ｌ−Ｉ）とする。そのときの非同期吸収の遅延時間は以下の式（１６）のようになる。
【００９７】
（遅延時間）＝ｗ１／ｆｉｎ−（ｗ０−（Ｌ−Ｉ））／ｆｏｕｔ…（１６）
式（１５）では、Ｌが大きくなるように（できるだけ小さいｗ０とｗ１でＬ≧Ｉを満たせるように）分割数ｎを可能な限り大きくしている。なお、ハードウェア設計上、一定の切り替え回数以内であって欲しい場合はｎの最大値を制限して求める。また、上記では最後にシングルポートＲＡＭ１に格納した方が、入力データクロック数Ｌが大きくなることを証明したが、Ｌ≧Ｉになるならば、最後にシングルポートＲＡＭ０に格納するようにしてもよい。
【００９８】
以下では非同期吸収回路仕様決定ステージＳ１、ＦＡＢ選定ステージＳ２、ＲＡＭの組み合わせとＲＡＭ切り替えテーブル作成ステージＳ３について詳細に説明する。データは理解を容易とするため、１バイト／クロックとする。
【００９９】
１バイト／クロックの場合は、シングルポートＲＡＭ０の記憶容量とクロック数とが一致するため、分かり易い。また、同様に、シングルポートＲＡＭ０、１のｗｏｒｄ数と記憶容量とは一致している。また、説明を容易とするため、以下では表計算ソフトの一例としてのＥｘｃｅｌ（登録商標）の関数を用いて説明を行う。
【０１００】
非同期吸収回路仕様決定ステージＳ１では、まず、非同期吸収したいデータの情報としてクロック信号ＩＣＬＫの最大周波数ｆｉｎと、クロック信号ＯＣＬＫの最低周波数ｆｏｕｔと、入力データが連続する最大クロック数Ｉと、非同期吸収部２２の遅延時間の一例としてのクロック信号の切り替えに掛かる遅延時間ｔとを以下のように決める。
【０１０１】
ｆｉｎ＝８０ＭＨｚ
ｆｏｕｔ＝５０ＭＨｚ
Ｉ＝１２８０
ｔ＝１１ｃｌｋ（ｆｉｎ）
なお、非同期吸収部２２の遅延時間ｔは上記したように図６の非同期吸収回路２０であるか図９の非同期吸収回路２０Ａであるかによって異なる。非同期吸収部２２の遅延時間ｔはデータの非同期吸収に要する時間であるが、クロック信号ＩＣＬＫの最大周波数ｆｉｎやクロック信号ＯＣＬＫの最低周波数ｆｏｕｔ、非同期吸収の仕方（ＦＦ２段受け、ＦＦ３段受けなど）やプロセスのサイズ（６５ナノ、９０ナノなど）による。非同期吸収部２２の遅延時間ｔはＡＳＩＣルール等に基づき、多めにとるようにしてもよい。非同期吸収部２２の遅延時間ｔは例えば設計者が使用に応じて決める。
【０１０２】
次にＦＡＢ選定ステージＳ２ではデータのビット幅のシングルポートＲＡＭでＦＡＢにある記憶容量のシングルポートＲＡＭを以下のように全て選ぶ。１２８Ｂ（バイト）刻みのシングルポートＲＡＭがあるＦＡＢでは、例えば１２８Ｂ、２５６Ｂ、３８４Ｂ、５１２Ｂの組み合わせでＬ≧Ｉになる組み合わせを探す。
【０１０３】
例えばデュアルポートＲＡＭ１３を使った非同期吸収回路１１に比べて僅かに遅延時間が増える（実効出力速度が遅い）ということは、入力データのクロック信号ＩＣＬＫの最大周波数ｆｉｎが変わらないならば、本実施の形態の非同期吸収回路２０及び２０ＡのシングルポートＲＡＭ０、１の記憶容量の合計がデュアルポートＲＡＭ１３の記憶容量よりも理論的に大きくなければならない。
【０１０４】
デュアルポートＲＡＭ１３を使った非同期吸収回路１１で４８０Ｂ必要なとき、本実施の形態の非同期吸収回路２０及び２０ＡのシングルポートＲＡＭ０、１の記憶容量の合計が４８０Ｂより多く必要であるということは、非同期吸収回路２０及び２０Ａで使用するシングルポートＲＡＭ０、１の記憶容量を探す目安になる。
【０１０５】
逆に、本実施の形態の非同期吸収回路２０及び２０ＡのシングルポートＲＡＭ０、１の記憶容量の合計は、入力データが連続する最大クロック数Ｉが１２８０であり、入力しながら出力できる仕様であるため、１２８０Ｂ以上が必要になることはない。
【０１０６】
図１７はＦＡＢにある記憶容量のシングルポートＲＡＭの組み合わせの一例を示した説明図である。図１７では上記した式（１）に基づきｗ０＜ｗ１の領域を黒で塗りつぶしている。ＦＡＢ選定ステージではＬ≧Ｉ且つｗ０＋ｗ１が最小になるシングルポートＲＡＭの組み合わせを探す。
【０１０７】
図１７では、Ｌ≧ＩになるシングルポートＲＡＭの組み合わせのセルに「○」を付すと共に、Ｌ＜ＩになるシングルポートＲＡＭの組み合わせのセルに「×」を付す。図１７に示されるように「×」のセルから見て右下の領域は「×」である。また「○」のセルから見て左上の領域は「○」である。
【０１０８】
結局、図１７では３８４Ｂ＋３８４Ｂの組み合わせか５１２Ｂ＋２５６Ｂの組み合わせが最小となるシングルポートＲＡＭの記憶容量の組み合わせであることが分かる。参考として、図１７は６４０Ｂ＋１２８Ｂの組み合わせが「○」になる可能性があるようにも見える。しかし、ｗ０及びｗ１の総記憶容量が減るわけでもないため、特別な事情（例えば６４０ＢのシングルポートＲＡＭを他の用途に兼用したいなど）が無い限り、検討する必要はない。なお、非同期吸収の遅延時間は以下の式（１７）のようになる。
【０１０９】
ｔ／ｆｉｎ＋（ｘ１＋ｘ２）／ｆｏｕｔ−ｘ１／ｆｉｎ…（１７）
式（１７）を参照すると、ｘ１＋ｘ２が一定ならば、ｘ１が大きいほど、非同期吸収の遅延時間は短くなることが分かる。存在するシングルポートＲＡＭの記憶容量の刻みが十分に大きいならば、ｘ１≒ｗ１、ｘ２≒ｗ０で、ｗ０≧ｗ１であるから、必要最小限のｗ０及びｗ１の元で｜ｗ０−ｗ１｜が大きくなると、非同期吸収の遅延時間は大きくなることが予想される。遅延時間を大きくしたい（実効出力速度を遅くしたい）ときは検討する意味はある。なお、実際に計算すると、６４０Ｂ＋１２８Ｂの組み合わせはＬ＜Ｉであるため「×」である。
【０１１０】
「×」のセルから見て右下の領域が「×」であるというルール１及び「○」のセルから見て左上の領域が「○」であるというルール２をもとに、ｗ０＋ｗ１が最小の組み合わせを出力するソフトウェアを作成することは可能である。シングルポートＲＡＭの記憶容量の刻みが細かい時に膨大なシングルポートＲＡＭの組み合わせを探索するためにはソフトウェアは便利である。
【０１１１】
次にＲＡＭの組み合わせとＲＡＭ切り替えテーブル作成ステージＳ３では決められた遅延時間内で非同期吸収が可能な使えるシングルポートＲＡＭの組み合わせと、ＲＡＭ切り替えテーブル２４とを出力する。以下では、図７及び図１０に示したタイミング図のＲＡＭ切り替えテーブル２４の作成について説明する。
【０１１２】
図７のタイミング図の場合は、ｘ１からｘｎは以下のように表される。
【０１１３】
ｘ１＝３８４
ｘ２＝３８４
ｘ３＝Ｍａｘ（Ｍｉｎ（ｘ１、ＲＯＵＮＤＤＯＷＮ（（ｘ２−ｔ）／ｋ、０））、０）
ｘｎ＝Ｍａｘ（ＲＯＵＮＤＤＯＷＮ（（ｘｎ−１−ｔ）／ｋ、０）、０）
なお、ＲＯＵＮＤＤＯＷＮ（数値、桁数）は、指定した桁数で切り捨てた数値を返す関数である。桁数０は一の位で切り捨てることを表している。また、後述するＲＯＵＮＤＵＰ（数値、桁数）は指定した桁数に数値を切り上げて返す関数である。
【０１１４】
まずは、３８４Ｂ＋３８４ＢのシングルポートＲＡＭの組み合わせで受け入れられる最大の入力データクロック数Ｌを求めると、Ｌ＝Σｘｎ＝１２８４となる。入力データが連続する最大クロック数Ｉ＝１２８０なので、最大の入力データクロック数Ｌ＝１２８４のうちの４バイト（クロック）は不要となる。
【０１１５】
そこで、不要な４バイトはｘ１又はｘ２から引くことができる。上記した式（１７）を参照するとｘ１＋ｘ２が一定ならばｘ２から引いた方が良いことになるが、ｘ３＝２３３である為、ｘ２はＲＯＵＮＤＵＰ（ｘ３×ｋ＋ｔ、０）≧３８４である必要がある。このため、不要な４バイトはｘ１から引かれることになる。結果として、表１のようなＲＡＭ切り替えテーブル２４が作成される。なお、非同期吸収の遅延時間を厳密に最小にするために連立不等式を解いて答えを求めるかは設計者に委ねられる。
【０１１６】
【表１】
0005810782.tif 000002
図１０のタイミング図の場合は、ｘ１からｘｎは以下のように表される。
【０１１７】
ｘ１＝２５６
ｘ２＝５１２
ｘ３＝Ｍａｘ（Ｍｉｎ（ｘ１、ＲＯＵＮＤＤＯＷＮ（（ｘ２−ｔ）／ｋ、０））、０）
ｘｎ＝Ｍａｘ（ＲＯＵＮＤＤＯＷＮ（（ｘｎ−１−ｔ）／ｋ、０）、０）
まずは、５１２Ｂ＋２５６ＢのシングルポートＲＡＭの組み合わせで受け入れられる最大の入力データクロック数Ｌを求めると、Ｌ＝Σｘｎ＝１３４３となる。入力データが連続する最大クロック数Ｉ＝１２８０なので、最大の入力データクロック数Ｌ＝１３４３のうちの６３バイト（クロック）は不要となる。そこで、不要な６３バイトはｘ１又はｘ２から引くことができる。
【０１１８】
上記した式（１７）を参照するとｘ１＋ｘ２が一定ならばｘ２から引いた方が良いことになる。したがって、ｘ２＝５１２−６３＝４４９となる。ｘ３＝２５６である為、ｘ２はＲＯＵＮＤＵＰ（ｘ３×ｋ＋ｔ、０）≧４２１という条件を満たせます。よって、ＲＡＭ切り替えテーブル２４は表２のようになる。
【０１１９】
【表２】
0005810782.tif 000003
なお、上記は機械的な回答例であって、回路が動作するＲＡＭ切り替えテーブル２４は１つではない。例えば切り替え回数を少なくしたいならば、ＲＡＭ切り替えテーブル２４はｘ７及びｘ８を０にすることも可能である。
【０１２０】
例えばテーブルを全てレジスタで持ち、ｘ６までしか値を記憶できないＩＣ用の切り替えテーブルを作成したい場合はｘ７及びｘ８を０にする必要がある。なお、テーブルをＩＣ内で生成する場合は、無限回の切り替えが許されるので、このような必要性はない。微調整は用途に応じて設計者に委ねられる。
【０１２１】
図１８は非同期吸収の遅延時間を表した一例の説明図である。上記した式（１７）は図１８に示した関係から生成される。なお、式（１７）のｔ／ｆｉｎは非常に小さい値であるため、無視しても構わない。
【０１２２】
図１９はＲＡＭ切り替えテーブルを作成するシートの一例の構成図である。また、図２０はＲＡＭ切り替えテーブルを作成するシートの他の例の構成図である。図１９のシートは図７のタイミング図に示したＲＡＭ切り替えテーブル２４を作成する例を示す。図２０のシートは図１０のタイミング図に示したＲＡＭ切り替えテーブル２４を作成する例を示している。
【０１２３】
図１９及び図２０のシートはクロック信号ＩＣＬＫの最大周波数ｆｉｎと、クロック信号ＯＣＬＫの最低周波数ｆｏｕｔと、入力データが連続する最大クロック数Ｉと、シングルポートＲＡＭ０のＷｏｒｄ数ｗ０と、シングルポートＲＡＭ１のＷｏｒｄ数ｗ１と、ｋからｔを算出する関数ｔ＝ａｋ＋ｂのａ及びｂとに数値を入力することで、ＲＡＭ切り替えテーブル２４が作成されることを表している。
【０１２４】
本実施の形態によれば、デュアルポートＲＡＭを使わずにシングルポートＲＡＭを使用して非同期吸収（速度変換）することができ、デュアルポートＲＡＭを使うよりもチップサイズを大幅に減らすことができる。また、２枚のシングルポートＲＡＭ及びＲＡＭ切り替えテーブル２４を使うことで、本実施の形態は異なる複数のモードを持つ製品においてＲＡＭ等のメモリをモード毎に使い分けて回路規模を小さくし、更に消費電力も下げることを可能にしている。
【０１２５】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、特許請求の範囲に記載した書き込み動作手段はライト動作部２６に相当する。読み出し動作手段はリード動作部２７に相当する。切り替え手段はＲＡＭセレクタ部２８に相当する。
【０１２６】
また、切り替え制御手段はスイッチング判定部２５に相当する。非同期吸収手段は内蔵ＦＦ部２９又はＣＬＫ生成回路３０に相当する。切り替えタイミング記録手段はＲＡＭ切り替えテーブル２４に相当する。
【符号の説明】
【０１２７】
０、１    シングルポートＲＡＭ
１０    入力データＩ／Ｆ
１１    非同期吸収回路
１２    出力データＩ／Ｆ
１３    デュアルポートＲＡＭ
２０、２０Ａ    非同期吸収回路
２１    同期吸収部
２２    非同期吸収部
２３    データ数（ＣＬＫ数）カウント部
２４、２４Ａ、２４Ｂ    ＲＡＭ切り替えテーブル
２５    スイッチング判定部
２６    ライト動作部
２７    リード動作部
２８    ＲＡＭセレクタ部
２９    内蔵ＦＦ（フリップフロップ）部
３０    ＣＬＫ生成回路
３１    ＣＬＫセレクタ部
４０    ＣＰＵ
４１    ＲＡＭセレクタ部
４２    ＲＡＭ切り替えテーブルセレクタ部
５０    補正ありスケール変換回路
６１    入力装置
６２    出力装置
６３    記録媒体読取装置
６４    補助記憶装置
６５    主記憶装置
６６    演算処理装置
６７    インタフェース装置
６８    バス
【先行技術文献】
【特許文献】
【０１２８】
【特許文献１】特開２０１０−１３４６４６号公報
【特許文献２】特開２００７−２４９０１０号公報
【図１】
0005810782.tif 000004
【図２】
0005810782.tif 000005
【図３】
0005810782.tif 000006
【図４】
0005810782.tif 000007
【図５】
0005810782.tif 000008
【図６】
0005810782.tif 000009
【図７】
0005810782.tif 000010
【図８】
0005810782.tif 000011
【図９】
0005810782.tif 000012
【図１０】
0005810782.tif 000013
【図１１】
0005810782.tif 000014
【図１２】
0005810782.tif 000015
【図１３】
0005810782.tif 000016
【図１４】
0005810782.tif 000017
【図１５】
0005810782.tif 000018
【図１６】
0005810782.tif 000019
【図１７】
0005810782.tif 000020
【図１８】
0005810782.tif 000021
【図１９】
0005810782.tif 000022
【図２０】
0005810782.tif 000023