速度変換回路
【課題】シングルポートメモリを用いて、データが欠けることなく連続した書き込み及び読み取りを行う。
【解決手段】書き込み用のクロック周波数からなる第1のクロック信号に同期した書き込みデータが保持されるライトバッファ回路と、前記第1のクロック信号と、前記第1のクロック信号と独立した読み取り用のクロック周波数からなる第2のクロック信号との非同期吸収を行う非同期吸収回路と、シングルポートメモリに対する書き込み及び読み取りを制御するRAMコントローラ回路とを有し、前記非同期吸収回路は、前記ライトバッファ回路で保持された書き込みデータを、前記第2のクロック信号に対応させてデータ長を調整し、調整された書き込みデータを前記RAMコントローラ回路へ出力することにより上記課題を解決する。
【解決手段】書き込み用のクロック周波数からなる第1のクロック信号に同期した書き込みデータが保持されるライトバッファ回路と、前記第1のクロック信号と、前記第1のクロック信号と独立した読み取り用のクロック周波数からなる第2のクロック信号との非同期吸収を行う非同期吸収回路と、シングルポートメモリに対する書き込み及び読み取りを制御するRAMコントローラ回路とを有し、前記非同期吸収回路は、前記ライトバッファ回路で保持された書き込みデータを、前記第2のクロック信号に対応させてデータ長を調整し、調整された書き込みデータを前記RAMコントローラ回路へ出力することにより上記課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、順次入力されるデータを入力された順に出力するメモリ装置の速度変換回路に関し、特に集積回路に構成されるメモリ装置の速度変換回路に関する。
【背景技術】
【0002】
従来、FIFO(First−In First−Out)といわれる入力データを入力された順に出力するメモリ装置は、例えば一種の記憶回路として、種々の電子回路において広く使用されている基本的な回路である。このFIFOメモリの一般的な構成について以下に説明する。
【0003】
図1は、従来におけるFIFO型速度変換回路を示す図である。図1に示すように、FIFOメモリ装置100は、ライトコントローラ(Write Control)101と、デュアルポートメモリ103と、リードコントローラ(Read Control)105とを有するよう構成されている。
【0004】
ライトコントローラ101は、例えば第1のクロック信号であるクロック信号clk_aに同期した書き込みクロック信号に基づいて、デュアルポートメモリ103のアドレス空間内で順次サイクリックにアドレスをカウントアップし、そのライトアドレスをデュアルポートメモリに103に印加する。また、リードアドレスカウンタ105は、例えば第2のクロック信号であるクロック信号clk_bに同期した読み取り信号に基づいて、デュアルポートメモリ103のアドレス空間で順次サイクリックにアドレスをカウントアップし、そのリードアドレスをデュアルポートメモリ103に印加する。
【0005】
デュアルポートメモリ103は、実質的に読み取りと書き込みを同一の期間に独立して行うことができるメモリであり、例えばFIFO型の2portSRAM等を用いることができる。デュアルポートメモリ103は、ライトコントローラ101より入力されるライトアドレスに、書き込みデータwdataを書き込む。また、デュアルポートメモリ103は、リードコントローラ105より入力される読み取りアドレスに記憶されているデータを、読み取りデータrdataとして読み取り出力する。なお、図1において信号wrst及び信号rrstは、それぞれライトリセット信号及びリードリセット信号である。
【0006】
このように、従来ではデュアルポートメモリ103を用いた場合には、書き込み及び読み取りがそれぞれ別のクロック系統により処理され、データが転送し終わるまでアドレスの追い越しが発生しないように、FIFOの容量が、見積もられる。
【0007】
ここで、図2は、デュアルポートメモリを用いた場合におけるタイミングチャートである。図2に示すように、デュアルポートメモリ103に対するデータの書き込み及びデータの読み取りのタイミングは、それぞれクロック信号clk_a及びクロック信号clk_bに同期させた信号wrst及び信号rrstによって行われる。
【0008】
しかしながら、半導体集積回路上にこのようなFIFOメモリ装置を構成する場合、デュアルポートメモリは、シングルポートのメモリに対してサイズが大きいという不利益がある。そのため、より多くの回路を集積したい半導体装置において、少しでもサイズの小さいシングルポートSRAM等を搭載し制御する方法が用いられている。
【0009】
具体的には、従来ではシングルポートSRAMを使用して、毎サイクルデータの書き込みと読み取りを行う例が知られている(例えば、特許文献1参照)。また、シングルポートSRAMへの同時読み取りアクセス及び書き込みアクセスを、アービタを挿入して行う回路が知られている(例えば、特許文献2参照)。更に、2つのシングルポートSRAMを使用して、書き込み或いは読み取り動作を行うメモリ制御装置が知られている(例えば、特許文献3参照)。
【特許文献1】特開2002−190193号公報
【特許文献2】特表2005−523536号公報
【特許文献3】特開2007−249010号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、上記に示すような従来技術において、ライトデータ転送周波数とリードデータ転送周波数が非同期の場合には、シングルポートSRAMから連続したデータを読み取るときに、ライトデータが途切れてしまう可能性や、読み取りクロック信号が停止する固定期間が発生する場合に、データ転送のデータが欠けてしまう可能性があった。
【0011】
本発明は上記の点に鑑みてなされたものであり、シングルポートメモリを用いて、データが欠けることなく連続した書き込み及び読み取りを可能とする速度変換回路を提供する。
【課題を解決するための手段】
【0012】
上記の課題を解決するために本発明では、次に述べる各手段を講じたことを特徴とするものである。
【0013】
本発明は、書き込み用のクロック周波数からなる第1のクロック信号に同期した書き込みデータが保持されるライトバッファ回路と、前記第1のクロック信号と、前記第1のクロック信号と独立した読み取り用のクロック周波数からなる第2のクロック信号との非同期吸収を行う非同期吸収回路と、シングルポートメモリに対する書き込み及び読み取りを制御するRAMコントローラ回路とを有し、前記非同期吸収回路は、前記ライトバッファ回路で保持された書き込みデータを、前記第2のクロック信号に対応させてデータ長を調整し、調整された書き込みデータを前記RAMコントローラ回路へ出力することを特徴とする。
【0014】
また、本発明によれば、速度変換回路において、前記非同期吸収回路は、前記第2のクロック信号に固定期間が存在する場合、前記固定期間に対応させて、前記書き込みデータのデータ長を調整するタイミングを設定することを特徴とする。
【0015】
また、本発明によれば、速度変換回路において、前記非同期吸収回路は、前記調整された書き込みデータを保持する多段のラッチ回路を含むことを特徴とする。
【0016】
また、本発明によれば、速度変換回路において、前記RAMコントローラ回路は、前記シングルポートメモリに対する書き込み及び読み取りを前記第2のクロック信号に基づいて制御することを特徴とする。
【0017】
また、本発明によれば、速度変換回路において、前記RAMコントローラ回路は、前記第2のクロック信号に基づいて、前記第1のクロック信号の周波数の範囲を設定することを特徴とする。
【0018】
また、本発明によれば、速度変換回路において、前記RAMコントローラ回路は、前記書き込みデータのサイズに基づいて、前記書き込みデータの書き込みに必要なシングルポートメモリの容量を算出することを特徴とする。
【発明の効果】
【0019】
本発明によれば、シングルポートメモリを用いて、データが欠けることなく連続した書き込み及び読み取りを可能とする。
【発明を実施するための最良の形態】
【0020】
次に、本発明を実施するための最良の形態について図面と共に説明する。
【0021】
<速度変換回路のブロック図>
図3は、本実施形態に係る回路構成の一例を示す図である。図3に示すように、本実施形態における速度変換回路10は、ライトバッファ回路12と、非同期吸収回路14と、シングルポートメモリ16と、RAMコントローラ回路18とを有するよう構成されている。
【0022】
また、本実施形態における速度変換回路10においては発明の内容を説明するために、入力される第1のクロック信号である書き込みクロック信号clk_aの周波数と、第2のクロック信号である読み取りクロック信号clk_bの周波数とは、書き込みクロック信号clk_aの周波数よりも、読み取りクロック信号clk_bの周波数の方が大きいものとする(clk_a信号<clk_b信号)。
【0023】
図3において、ライトバッファ回路12は、書き込みクロック信号clk_aが入力され、書き込みクロック信号clk_aに同期した書き込みデータwdataと、ライトリセット信号wrstが入力される。なお、ライトバッファ回路12に入力されるライトリセット信号wrstは、転送データの先頭位置を後段回路へ伝えるために用いられる。
【0024】
ライトバッファ回路12は、書き込みクロック信号clk_aに同期したn個(1≦n)の書き込みデータwdataを保持するバッファ回路として機能する。つまり、ライトバッファ回路12において、例えば書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが保持されることにより、非同期吸収回路14における書き込みクロック信号clk_aと読み取りクロック信号clk_bとの非同期吸収を行うための非同期吸収期間が生成されることになる。
【0025】
非同期吸収回路14は、書き込みクロック信号clk_a、読み取りクロック信号clk_b、及びライトリセット信号wrstが入力される。また、非同期吸収回路14は、ライトバッファ回路12にて保持された書き込みデータwdataが入力される。
【0026】
また、同期吸収回路14は、書き込みクロック信号clk_aに同期した任意の設定値にて作られたパルスを用いて、読み取りクロック信号clk_bで同期化し、読み取りクロック信号clk_bに対応させて書き込みデータwdataのデータ長を調整することにより、非同期吸収を行なう。
【0027】
また、非同期吸収回路14は、読み取りクロック信号clk_bが後述する位相調整等により停止する固定期間が存在する場合には、固定期間に対応させて、書き込みデータwdataのデータ長を調整するときのタイミングを設定する。また、非同期吸収回路14は、調整された書き込みデータwdataを保持する多段のラッチ回路を含んでも良い。
【0028】
また、非同期吸収回路14は、調整された書き込みデータwdataをRAMコントローラ回路18に出力する。
【0029】
なお、書き込みクロック信号clk_aと、読み取りクロック信号clk_bとの非同期吸収方法については後述する。
【0030】
また、非同期吸収回路14に入力されるライトリセット信号wrstは、シングルポートメモリ16のライトアドレス信号を生成するために使用される。
【0031】
シングルポートメモリ16は、例えばシングルポートSRAM等を用いることができ、RAMコントローラ回路18によって制御される。また、シングルポートメモリ16は、読み取りクロック信号clk_bが入力され、RAMコントローラ回路18から、ライトアドレス及びリードアドレスをアドレス番号順にマージしたアドレス信号ram_adが入力される。
【0032】
このように、シングルポートメモリ16にRAMコントローラ回路18からアドレス信号ram_adが入力されることにより、RAMコントローラ回路18によって制御されたライトアドレス信号ram_wadにしたがって、RAMコントローラ回路18から書き込みデータwdataが入力される。また、RAMコントローラ回路18により制御されたリードアドレス信号ram_radにしたがって、シングルポートメモリ16から読み取りデータrdataが、RAMコントローラ回路18に出力される。
【0033】
RAMコントローラ回路18は、シングルポートメモリ16に対して専用のアクセスクロック信号ram_clkを用いて転送データの書き込み又は読み取りタイミングの制御を行う。つまり、RAMコントローラ回路18は、非同期吸収回路14から得られる書き込みデータwdataをアクセスクロック信号ram_clkにしたがって、シングルポートメモリ16に出力する。なお、RAMコントローラ回路18は、アクセスクロック信号ram_clkの代わりに読み取りクロック信号clk_b、又は、後述する読み取りクロック信号clk_bに同期させたライトイネーブル信号ram_WEにしたがって、シングルポートメモリ16に出力することもできる。
【0034】
また、RAMコントローラ回路18は、リードリセット信号rrstが入力され、シングルポートメモリ16より出力された読み取りデータrdataを出力する。
【0035】
RAMコントローラ回路18は、シングルポートメモリ16への書き込みデータwdataの入力、及び読み取りデータrdataの出力を制御することにより、データを欠くことなく連続リード及び連続ライトするFIFO同様の動作を可能とする。
【0036】
<非同期吸収回路への非同期受け渡し回路構成を示すタイミングチャート>
次に、ライトバッファ回路12から非同期吸収回路14へ出力される各信号及び各データの回路構成について説明する。図4は、非同期吸収回路への非同期受け渡し回路構成の一例を示すタイミングチャートである。
【0037】
図4において、書き込みクロック信号clk_aは、ライトバッファ回路12と非同期吸収回路14に入力されるクロック信号である。
【0038】
書き込みクロック信号clk_aに同期したn個の書き込みデータwdataは、ライトバッファ回路12において保持される。また、ライトバッファ回路12において、n個の書き込みデータwdataが非同期吸収回路14に出力された後、+1、+2、+3・・・と更に書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが保持される。
【0039】
ライトリセット信号wrstは、ライトバッファ回路12において保持されるn個の書き込みデータwdataの転送データの先頭位置を非同期吸収回路14に伝えるものである。
【0040】
ライトリセットエッジ信号wrst_a_edgeは、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが、ライトバッファ回路12から非同期吸収回路14に出力されるときの転送データの先頭位置を示すものである。また、ライトリセットエッジ信号wrst_a_edgeは、ライトバッファ回路12から非同期吸収回路14に出力されるn+1個の書き込みデータwdataの転送データの先頭位置を示すものでもある。
【0041】
図4に示すように、非同期吸収回路14において、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが保持されている期間が、非同期吸収期間となる。
【0042】
非同期受け渡し信号wrst_b_edgeは、n個の書き込みデータwdataが保持されている際に、書き込みクロック信号clk_aに同期したカウンタの任意の設定値にて作られたパルスを、読み取りクロック信号clk_bで同期化を行い、読み取りクロック信号clk_bへの非同期受け渡し信号となる。
【0043】
非同期受け渡し信号wrst_b_edgeにより、書き込みクロック信号clk_aと、読み取りクロック信号clk_bとの非同期吸収を行なわれ、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataは、読み取りクロック信号clk_bに対応させてデータ長が調整されたn個のデータとして変換されて制御される。
【0044】
<読み取りクロック信号clk_bが固定信号となる例>
次に、読み取りクロック信号clk_b信号がある期間、例えば停止される等の固定信号となる場合が想定されるシステムについて説明する。図5は、簡略化した複写機の書き込み構成の一例を示す図である。
【0045】
図5に示すように、複写機の書込みシステムにおいて、ライン周期のデータ処理を施し、回転するポリゴンミラーのミラー面に対し、先端センサーと後端センサーとの間のラインデータをレーザ(LD)にて照射していく上で、より精度の高い照射を行うには、位相調整が必要となる。
【0046】
位相調整は、ポリゴンミラーが何面であっても必要であり、位相調整を行なわない場合には、ポリゴン面間にジッタ(位置ずれ)が発生する。したがって、ポリゴン面間のジッタによるデータに対する影響を抑えるためには、書き込み開始位置を合わせる必要がある。
【0047】
なお、本実施形態における読み取りクロック信号clk_bが、固定信号となる場合を考慮しているが、これは例えば書き込み開始位置を合わせるための位相調整を目的とするものではない。つまり、本実施形態では、読み取りクロック信号clk_bが固定信号となる場合であっても、FIFOメモリ装置の動作を制御するクロック信号を利用した回路構成において、必要とするデータ量が欠けることなく、読み取りが行なえることを目的とする。したがって、転送されるデータ全てが書き込み及び読み取られることを目的とするものではない。
【0048】
<読み取りクロック信号clk_bが固定信号となる場合のタイミングチャートの例>
次に、上記した位相調整等のために読み取りクロック信号clk_bを固定した場合にについて説明する。図6は、読み取りクロック信号clk_bを固定した場合における読み取りクロック信号clk_bとリードリセット信号rrst、書き込みクロック信号clk_aと書き込みリセット信号wrstの一例を示すタイミングチャートである。
【0049】
図6に示すように、ライトリセット信号wrstは、書き込みクロック信号clk_aと同期である。リードリセット信号rrstは、読み取りクロック信号clk_bと同期である。したがってライトリセット信号wrstは、リードリセット信号rrstとは独立したクロック制御である。
【0050】
図6のタイミングチャートに示す期間「A」は、シングルポートメモリ16の容量を示すものとする。このとき、図6のタイミングチャートに示す期間「B」は、上記したように位相調整のために読み取りクロック信号clk_bを固定した期間を示している。このように、期間「A」に対応させて期間「B」を設けることで、シングルポートメモリ16の容量に対応させて読み取り開始位置を合わせることができる。
【0051】
ここで、本実施形態における速度変換回路10おけるFIFO動作においては、読み取りクロック信号clk_bは、常にライト・リードアクセスをしている必要がある。
【0052】
<固定信号となる場合を考慮に入れたタイミングチャートの例1>
そこで、上述した図4に示した非同期吸収期間において、書き込みクロック信号clk_aから読み取りクロック信号clk_bへの非同期受け渡し、及び上述した図6で示すクロック固定期間を考慮した回路構成を示す。図7は、読み取りクロック信号clk_bが固定される一例を示すタイミングチャートである。
【0053】
まず、上記図6のタイミングチャートにおける読み取りクロック信号clk_b固定期間「B」において、読み取りクロック信号clk_bが固定される期間を、例えば読み取りクロック信号clk_bの最大クロック期間によって設定する。ここで、読み取りクロック信号clk_bが固定されるサイクル数を「α」とする。
【0054】
図7において、タイミングチャートに示す期間「C」が、非同期吸収期間と読み取りクロック信号clk_bのクロック固定期間「B」が重なる期間である。
【0055】
上述したように、ライトバッファ回路12において、書き込みクロック信号clk_a信号×n幅の期間でn個データを保持するため、非同期受け渡しでは、読み取りクロック信号clk_bにおいて、読み取りクロック信号clk_b×(n+α)幅とする。
【0056】
上述の内容を、以下の通り計算式を示す。
【0057】
Tclk_a×n≧Tclk_b×(n+α)・・・・・・(1)
Tclk_a:書き込みクロック信号clk_aの周期
Tclk_b:読み取りクロック信号clk_bの周期
上記(1)に示す式を満たすことにより、非同期吸収回路14への非同期受け渡しの際に、書き込みデータwdataを取りこぼさない回路構成とすることが可能となる。
【0058】
<読み取りクロック信号clk_bが固定信号となる場合のタイミングチャートの例2>
上記(1)式を満たす回路構成では、n個データを保持する毎に、「α」を追加するとデータ転送期間が長くなる。また、上記において、クロックが固定される例として挙げたシステムでは、クロックが固定される期間は、1ラインデータにおいて1回発生する例である。
【0059】
そこで、n個データを保持する毎に「α」を挿入する回数を減らすため、図7に示す書き込みデータエッジ信号wdata_edgeの生成回路における、書き込みデータエッジ信号wdata_edgeを生成するタイミングについて説明する。図8は、書き込みデータエッジ信号wdata_edge生成回路におけるタイミング設定の一例を示すタイミングチャートである。
【0060】
図8に示すように、書き込みクロック信号clk_bに同期のカウンタで、データ数nをカウントするカウンタcnt_bにて、書き込みデータエッジ信号wdata_edgeのタイミングを以下のように設定する。
【0061】
0<wdata_edge<n−α・・・・・・(2)
上記(2)に示す式を満たすタイミングで書き込みデータエッジ信号wdata_edgeを生成する回路を構成する。
【0062】
これにより、非同期吸収回路14における非同期受け渡しの際に、n個データを保持する毎に「α」を挿入する回数を減らし、読み取りクロック信号clk_bが固定信号となる固定期間を考慮する必要のない回路構成を可能とする。
【0063】
<読み取りクロック信号clk_bが固定信号となる場合のタイミングチャートの例3>
次に、n個データを保持する毎に「α」を挿入することを回避するため、非同期吸収回路14の出力段に、n個のデータラッチする回路を構成する方法を説明する。図9は、n個のデータをm段ラッチする回路を非同期吸収回路の出力段に構成する一例を示すタイミングチャートである。
【0064】
図9に示すように、非同期吸収回路14の出力段は、非同期受け渡しの際、n個のデータをm段ラッチする回路である。ここで、n個のデータとは、非同期吸収回路14において、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが、読み取りクロック信号clk_bに対応してデータ長が調整されたデータを示す。
【0065】
また、データカウンタは、シングルポートメモリ16へ書き込むためのデータを準備するカウンタある。
【0066】
図9に示す期間「D」及び期間「E」で示す幅は、常に同じ幅であるとは限らず、速度変換を行うため、書き込みクロック信号clk_a、及び読み取りクロック信号clk_bの周波数関係と位相関係を考慮し、幅=n,n+1,n+2と周波数差により幅が変わる。
【0067】
図9に示すn×m個の書き込みデータwdataを転送するのに必要な期間は、読み取りクロック信号clk_b×(n×m)であるが、図9に示す「β」の期間が発生することが考えられる。ここで、「β」は、書き込みデータwdataがないために、シングルポートメモリ16へのライトアドレスが変化しない期間を示す。
【0068】
これにより、書き込みデータwdataのm×n個のデータ転送に対し、読み取りクロック信号clk_b×{(n×m)+β}の期間を確保することが可能となる。なお、m段ラッチの段数を多くすることで、転送期間を短くすることは可能であるが、段数分ゲート数が増加することを考慮する必要がある。また、上記のn個のデータをラッチする回路は、非同期吸収回路14の出力段に設けず、非同期吸収回路14に設けても良い。
【0069】
上記構成により、非同期吸収回路14における非同期受け渡しの際に、n個データを保持する毎に「α」を挿入することが回避可能な回路構成となる。
【0070】
<RAMコントローラ回路18について>
次に、シングルポートメモリ16のアクセス制御を行なうRAMコントローラ回路18について説明する。図10は、シングルポートメモリへのアクセス制御の一例を示す図である。
【0071】
図10に示すように、RAMコントローラ回路18は、アクセス制御するシングルポートメモリ16のポートとして、以下の信号をタイミングチャートに示す。
【0072】
タイミングチャートには、アクセスクロック信号ram_clk、ライトイネーブル信号ram_WE、書き込みマスク信号ram_wmask、ライトアドレス信号ram_wad、リードアドレス信号ram_rad、アドレス信号ram_adが示されている。
【0073】
ここで、アクセスクロック信号ram_clkは、シングルポートメモリ16へのアクセスクロック信号である。ライトイネーブル信号ram_WEは、読み取りクロック信号clk_bの2分周信号である。
【0074】
また、ライトアドレス信号ram_wadは、書き込みデータwdataのアドレス信号を示す。リードアドレス信号ram_radは、読み取りデータrdataのアドレス信号を示す。
【0075】
アドレス信号ram_adは、ライトアドレス信号及びリードアドレス信号をアドレス番号順にマージした、シングルポートメモリ16のアドレスポートへの入力信号である。
【0076】
書き込みマスク信号ram_wmaskは、ライトアドレス信号ram_wadにおいて、アドレスインクリメントが行われないサイクル期間に、書き込みをマスクする信号である。なお、書き込みマスク信号ram_wmaskは、シングルポートメモリ16がマスク処理をするポートを持っていれば、それに対応する信号としても良い。
【0077】
図10に示すライトアクセス及びリードアクセス等のアクセス制御において、書き込みデータwdata、読み取りデータrdataは、シングルポートメモリ16のbit幅であれば良い。
【0078】
また、図10のタイミングチャートにおいて、アクセスクロック信号ram_clkは、読み取りクロック信号clk_bに等しく、書き込み及び読み取り(ライト/リード)を交互に行う回路であれば、書き込みデータwdata2個を1アドレスに書くようにすれば良い。なお、書き込みデータwdataは、2個に限らず増やすことは可能であるが、シングルポートメモリ16へのアクセス間隔が広がる制御が必要となる。また、リード側は、読み取った読み取りデータrdataをパラレル−シリアル変換して出力する回路とする。
【0079】
図10のタイミングチャートにて、書き込みマスク信号ram_wmaskによってマスクされた期間が、上述した書き込みデータwdataがないために、シングルポートメモリ16へのライトアドレスが変化しない期間「β」である。
【0080】
図10の例では、マスクされた期間「β」の間に、マスクされた期間「β」の直前のアドレスw5からアドレスインクリメントがなされないため、アドレスw5を2つ挿入している。
【0081】
<書き込みクロック信号clk_aの周波数範囲算出方法、及びシングルポートメモリ16の容量算出方法について>
次に、書き込みクロック信号clk_aの周波数範囲の算出方法と、シングルポートメモリ16の最適な容量の算出方法について説明する。まず、条件として、上記回路構成により読み取りクロック信号clk_bを決定し、次に書き込みクロック信号clk_aに対する読み取りクロック信号clk_bの周波数範囲のマージンが、何%保証が必要であり、また転送データの全体の何%が有効となるかを設定する。
【0082】
これにより、書き込みクロック信号clk_aの周波数範囲の算出と、シングルポートメモリ16の最適な容量を見積もる計算とが可能となる。前述の変数に、具体的な例の一つとして値を入れて、算出する。
【0083】
読み取りクロック信号clk_b=190MHz・・・・・・・・(3)
書き込みデータの転送データ数n=14・・・・・・・・・・・・(4)
書き込みデータ数nを保持する段数m=8・・・・・・・・・・・(5)
読み取りクロック信号clk_bの固定サイクル数α=3・・・・(6)
読み取りクロック信号clk_bの周波数範囲保証%=±4%・・(7)
(読み取りクロック信号clk_b:182.4MHz〜197.6MHz)を保証)
転送データ:23500個・・・・・(8)
シングルポートメモリ16のbit幅は、8bit(1データ:4bit)とする。
【0084】
まず、書き込みクロック信号clk_aの上限周波数を求める。書き込みクロック信号clk_aの上限周波数は、書き込みクロック信号clk_a={上記(7)×{(n×m)/{(n×m)+α}}から算出する。
【0085】
ここで、「n×m」は、例えばシングルポートメモリ16への書き込みデータwdataのデータパッキング画素数(n×m)dot/packを示す。このとき、書き込みデータwdataのデータパッキング当たりの書き込みクロック信号clk_aは、(n×m)clk_a/packとすることができる。
【0086】
また、「α」は、読み取りクロック信号clk_bが停止する期間(固定期間)に対応する必要がある画素数である。すなわち、1パッキング当たりに読み取り(リード)が追いつく画素数を意味する。よって、{(n×m)+α}は、1パッキング当たりの読み取りクロック信号clk_bを示している。したがって、書き込みデータwdataのデータパッキング当たりの書き込みクロック信号clk_aは、{(n×m)+α}clk_a/packとすることができる。
【0087】
また、読み取りクロック信号clk_bの停止期間に対応するのに必要な周波数の比率を計算すると、計算式は、書き込みクロック信号clk_a/読み取りクロック信号clk_b=(n×m)/{(n×m)+α}となる。なお、この計算式は、画素数ベースにおける書き込みクロック信号clk_aベースでの計算である。
【0088】
以上を踏まえると、読み取りクロック信号clk_bの周波数範囲の下限周波数に対して、上記周波数比率を用いることで、書き込みクロック信号clk_aの上限周波数を求めることが可能となる。すなわち、書き込みクロック信号clk_aの上限周波数は、書き込みクロック信号clk_a={(7)の182.4MHz}×{(n×m)/{(n×m)+α}}=177.6MHzとなる。
【0089】
また、読み取りクロック信号clk_bの周波数上限197.6MHzに対し、書き込みクロック信号clk_a上限周波数の周波数比は、書き込みクロック信号clk_a/読み取りクロック信号clk_b=177.6÷197.6=89.90%となる。
【0090】
次に、シングルポートメモリ16の最適な容量を求める。書き込みクロック信号clk_a=177.6MHzで、読み取りクロック信号clk_b=197.6MHzの時の速度差吸収時のデータ数は、Data_a/b=(23500÷書き込みクロック信号clk_a/読み取りクロック信号clk_b)−23500=2641となる。
【0091】
上記計算式より、シングルポートメモリとして必要な容量は、2.7k×8bitのサイズとなることが示される。
【0092】
<RAMコントローラ回路18でライト・リードアドレスが別々に制御されている例>
次に、RAMコントローラ回路18において、ライト・リードアドレスが、別々に制御されている例を説明する。図11は、ライト・リードアドレスが別々に制御されている一例を示す図である。
【0093】
RAMコントローラ回路18は、リードアドレス182と、ライトアドレス184と、RAMアクセスアドレス186とを含むように構成されている。
【0094】
リードアドレス182には、読み取りクロック信号clk_bと、読み取りクロック信号clk_bに同期したリードリセット信号rrstが、入力され、リードアドレス信号ram_radが生成されて、RAMアクセスアドレス186に出力される。
【0095】
ライトアドレス184には、読み取りクロック信号clk_bと、読み取りクロック信号clk_bに同期したライトリセットb信号wrst_bが入力され、ライトアドレス信号ram_wadが生成されて、RAMアクセスアドレス186に出力される。
【0096】
RAMアクセスアドレス186は、入力されるリードアドレス信号ram_radと、ライトアドレス信号ram_wadをマージしたアドレス信号ram_adをシングルポートメモリ16に出力する。
【0097】
上述の通り、本発明によれば、見かけ上FIFO型メモリ装置と同様の動作をする1portSRAM(シングルポートメモリ)を使用し、非同期の場合でも、1portSRAMを制御する読み取りクロック周波数に基づいて、ライト側のクロック周波数を設定することにより、読み取りクロックが所定期間停止する場合であっても、有効なデータが欠けることなく連続した書き込み及び読み取りが可能となる
また、本発明によれば、1portSRAMに対するライトイネーブル信号に係らず、1portSRAMに対する書き込み及び読み取りを読み取りクロックにて制御することが可能となる。
【0098】
また、本発明によれば、データ転送サイズと、1portSRAMを制御する読み取りクロック周波数に基づいて、データ転送に必要な1portSRAMの容量を見積もることが可能となる。
【0099】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【0100】
【図1】従来におけるFIFO型速度変換回路を示す図である。
【図2】デュアルポートメモリを用いた場合におけるタイミングチャートである。
【図3】本実施形態に係る回路構成の一例を示す図である。
【図4】非同期吸収回路への非同期受け渡し回路構成の一例を示すタイミングチャートである。
【図5】簡略化した複写機の書き込み構成の一例を示す図である。
【図6】読み取りクロック信号clk_bを固定した場合における読み取りクロック信号clk_bとリードリセット信号rrst、書き込みクロック信号clk_aと書き込みリセット信号wrstの一例を示すタイミングチャートである。
【図7】読み取りクロック信号clk_bが固定される一例を示すタイミングチャートである。
【図8】書き込みデータエッジ信号wdata_edge生成回路におけるタイミング設定の一例を示すタイミングチャートである。
【図9】n個のデータをm段ラッチする回路を非同期吸収回路の出力段に構成する一例を示すタイミングチャートである。
【図10】シングルポートメモリへのアクセス制御の一例を示す図である。
【図11】ライト・リードアドレスが別々に制御されている一例を示す図である。
【符号の説明】
【0101】
10 速度変換回路
12 ライトバッファ回路
14 非同期吸収回路
16 シングルポートメモリ
18 RAMコントローラ回路
100 FIFO型速度変換回路
101 ライトコントローラ
103 デュアルポートメモリ
105 リードコントローラ
182 リードアドレスコントローラ
184 ライトアドレスコントローラ
186 RAMアクセスアドレスコントローラ
【技術分野】
【0001】
本発明は、順次入力されるデータを入力された順に出力するメモリ装置の速度変換回路に関し、特に集積回路に構成されるメモリ装置の速度変換回路に関する。
【背景技術】
【0002】
従来、FIFO(First−In First−Out)といわれる入力データを入力された順に出力するメモリ装置は、例えば一種の記憶回路として、種々の電子回路において広く使用されている基本的な回路である。このFIFOメモリの一般的な構成について以下に説明する。
【0003】
図1は、従来におけるFIFO型速度変換回路を示す図である。図1に示すように、FIFOメモリ装置100は、ライトコントローラ(Write Control)101と、デュアルポートメモリ103と、リードコントローラ(Read Control)105とを有するよう構成されている。
【0004】
ライトコントローラ101は、例えば第1のクロック信号であるクロック信号clk_aに同期した書き込みクロック信号に基づいて、デュアルポートメモリ103のアドレス空間内で順次サイクリックにアドレスをカウントアップし、そのライトアドレスをデュアルポートメモリに103に印加する。また、リードアドレスカウンタ105は、例えば第2のクロック信号であるクロック信号clk_bに同期した読み取り信号に基づいて、デュアルポートメモリ103のアドレス空間で順次サイクリックにアドレスをカウントアップし、そのリードアドレスをデュアルポートメモリ103に印加する。
【0005】
デュアルポートメモリ103は、実質的に読み取りと書き込みを同一の期間に独立して行うことができるメモリであり、例えばFIFO型の2portSRAM等を用いることができる。デュアルポートメモリ103は、ライトコントローラ101より入力されるライトアドレスに、書き込みデータwdataを書き込む。また、デュアルポートメモリ103は、リードコントローラ105より入力される読み取りアドレスに記憶されているデータを、読み取りデータrdataとして読み取り出力する。なお、図1において信号wrst及び信号rrstは、それぞれライトリセット信号及びリードリセット信号である。
【0006】
このように、従来ではデュアルポートメモリ103を用いた場合には、書き込み及び読み取りがそれぞれ別のクロック系統により処理され、データが転送し終わるまでアドレスの追い越しが発生しないように、FIFOの容量が、見積もられる。
【0007】
ここで、図2は、デュアルポートメモリを用いた場合におけるタイミングチャートである。図2に示すように、デュアルポートメモリ103に対するデータの書き込み及びデータの読み取りのタイミングは、それぞれクロック信号clk_a及びクロック信号clk_bに同期させた信号wrst及び信号rrstによって行われる。
【0008】
しかしながら、半導体集積回路上にこのようなFIFOメモリ装置を構成する場合、デュアルポートメモリは、シングルポートのメモリに対してサイズが大きいという不利益がある。そのため、より多くの回路を集積したい半導体装置において、少しでもサイズの小さいシングルポートSRAM等を搭載し制御する方法が用いられている。
【0009】
具体的には、従来ではシングルポートSRAMを使用して、毎サイクルデータの書き込みと読み取りを行う例が知られている(例えば、特許文献1参照)。また、シングルポートSRAMへの同時読み取りアクセス及び書き込みアクセスを、アービタを挿入して行う回路が知られている(例えば、特許文献2参照)。更に、2つのシングルポートSRAMを使用して、書き込み或いは読み取り動作を行うメモリ制御装置が知られている(例えば、特許文献3参照)。
【特許文献1】特開2002−190193号公報
【特許文献2】特表2005−523536号公報
【特許文献3】特開2007−249010号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、上記に示すような従来技術において、ライトデータ転送周波数とリードデータ転送周波数が非同期の場合には、シングルポートSRAMから連続したデータを読み取るときに、ライトデータが途切れてしまう可能性や、読み取りクロック信号が停止する固定期間が発生する場合に、データ転送のデータが欠けてしまう可能性があった。
【0011】
本発明は上記の点に鑑みてなされたものであり、シングルポートメモリを用いて、データが欠けることなく連続した書き込み及び読み取りを可能とする速度変換回路を提供する。
【課題を解決するための手段】
【0012】
上記の課題を解決するために本発明では、次に述べる各手段を講じたことを特徴とするものである。
【0013】
本発明は、書き込み用のクロック周波数からなる第1のクロック信号に同期した書き込みデータが保持されるライトバッファ回路と、前記第1のクロック信号と、前記第1のクロック信号と独立した読み取り用のクロック周波数からなる第2のクロック信号との非同期吸収を行う非同期吸収回路と、シングルポートメモリに対する書き込み及び読み取りを制御するRAMコントローラ回路とを有し、前記非同期吸収回路は、前記ライトバッファ回路で保持された書き込みデータを、前記第2のクロック信号に対応させてデータ長を調整し、調整された書き込みデータを前記RAMコントローラ回路へ出力することを特徴とする。
【0014】
また、本発明によれば、速度変換回路において、前記非同期吸収回路は、前記第2のクロック信号に固定期間が存在する場合、前記固定期間に対応させて、前記書き込みデータのデータ長を調整するタイミングを設定することを特徴とする。
【0015】
また、本発明によれば、速度変換回路において、前記非同期吸収回路は、前記調整された書き込みデータを保持する多段のラッチ回路を含むことを特徴とする。
【0016】
また、本発明によれば、速度変換回路において、前記RAMコントローラ回路は、前記シングルポートメモリに対する書き込み及び読み取りを前記第2のクロック信号に基づいて制御することを特徴とする。
【0017】
また、本発明によれば、速度変換回路において、前記RAMコントローラ回路は、前記第2のクロック信号に基づいて、前記第1のクロック信号の周波数の範囲を設定することを特徴とする。
【0018】
また、本発明によれば、速度変換回路において、前記RAMコントローラ回路は、前記書き込みデータのサイズに基づいて、前記書き込みデータの書き込みに必要なシングルポートメモリの容量を算出することを特徴とする。
【発明の効果】
【0019】
本発明によれば、シングルポートメモリを用いて、データが欠けることなく連続した書き込み及び読み取りを可能とする。
【発明を実施するための最良の形態】
【0020】
次に、本発明を実施するための最良の形態について図面と共に説明する。
【0021】
<速度変換回路のブロック図>
図3は、本実施形態に係る回路構成の一例を示す図である。図3に示すように、本実施形態における速度変換回路10は、ライトバッファ回路12と、非同期吸収回路14と、シングルポートメモリ16と、RAMコントローラ回路18とを有するよう構成されている。
【0022】
また、本実施形態における速度変換回路10においては発明の内容を説明するために、入力される第1のクロック信号である書き込みクロック信号clk_aの周波数と、第2のクロック信号である読み取りクロック信号clk_bの周波数とは、書き込みクロック信号clk_aの周波数よりも、読み取りクロック信号clk_bの周波数の方が大きいものとする(clk_a信号<clk_b信号)。
【0023】
図3において、ライトバッファ回路12は、書き込みクロック信号clk_aが入力され、書き込みクロック信号clk_aに同期した書き込みデータwdataと、ライトリセット信号wrstが入力される。なお、ライトバッファ回路12に入力されるライトリセット信号wrstは、転送データの先頭位置を後段回路へ伝えるために用いられる。
【0024】
ライトバッファ回路12は、書き込みクロック信号clk_aに同期したn個(1≦n)の書き込みデータwdataを保持するバッファ回路として機能する。つまり、ライトバッファ回路12において、例えば書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが保持されることにより、非同期吸収回路14における書き込みクロック信号clk_aと読み取りクロック信号clk_bとの非同期吸収を行うための非同期吸収期間が生成されることになる。
【0025】
非同期吸収回路14は、書き込みクロック信号clk_a、読み取りクロック信号clk_b、及びライトリセット信号wrstが入力される。また、非同期吸収回路14は、ライトバッファ回路12にて保持された書き込みデータwdataが入力される。
【0026】
また、同期吸収回路14は、書き込みクロック信号clk_aに同期した任意の設定値にて作られたパルスを用いて、読み取りクロック信号clk_bで同期化し、読み取りクロック信号clk_bに対応させて書き込みデータwdataのデータ長を調整することにより、非同期吸収を行なう。
【0027】
また、非同期吸収回路14は、読み取りクロック信号clk_bが後述する位相調整等により停止する固定期間が存在する場合には、固定期間に対応させて、書き込みデータwdataのデータ長を調整するときのタイミングを設定する。また、非同期吸収回路14は、調整された書き込みデータwdataを保持する多段のラッチ回路を含んでも良い。
【0028】
また、非同期吸収回路14は、調整された書き込みデータwdataをRAMコントローラ回路18に出力する。
【0029】
なお、書き込みクロック信号clk_aと、読み取りクロック信号clk_bとの非同期吸収方法については後述する。
【0030】
また、非同期吸収回路14に入力されるライトリセット信号wrstは、シングルポートメモリ16のライトアドレス信号を生成するために使用される。
【0031】
シングルポートメモリ16は、例えばシングルポートSRAM等を用いることができ、RAMコントローラ回路18によって制御される。また、シングルポートメモリ16は、読み取りクロック信号clk_bが入力され、RAMコントローラ回路18から、ライトアドレス及びリードアドレスをアドレス番号順にマージしたアドレス信号ram_adが入力される。
【0032】
このように、シングルポートメモリ16にRAMコントローラ回路18からアドレス信号ram_adが入力されることにより、RAMコントローラ回路18によって制御されたライトアドレス信号ram_wadにしたがって、RAMコントローラ回路18から書き込みデータwdataが入力される。また、RAMコントローラ回路18により制御されたリードアドレス信号ram_radにしたがって、シングルポートメモリ16から読み取りデータrdataが、RAMコントローラ回路18に出力される。
【0033】
RAMコントローラ回路18は、シングルポートメモリ16に対して専用のアクセスクロック信号ram_clkを用いて転送データの書き込み又は読み取りタイミングの制御を行う。つまり、RAMコントローラ回路18は、非同期吸収回路14から得られる書き込みデータwdataをアクセスクロック信号ram_clkにしたがって、シングルポートメモリ16に出力する。なお、RAMコントローラ回路18は、アクセスクロック信号ram_clkの代わりに読み取りクロック信号clk_b、又は、後述する読み取りクロック信号clk_bに同期させたライトイネーブル信号ram_WEにしたがって、シングルポートメモリ16に出力することもできる。
【0034】
また、RAMコントローラ回路18は、リードリセット信号rrstが入力され、シングルポートメモリ16より出力された読み取りデータrdataを出力する。
【0035】
RAMコントローラ回路18は、シングルポートメモリ16への書き込みデータwdataの入力、及び読み取りデータrdataの出力を制御することにより、データを欠くことなく連続リード及び連続ライトするFIFO同様の動作を可能とする。
【0036】
<非同期吸収回路への非同期受け渡し回路構成を示すタイミングチャート>
次に、ライトバッファ回路12から非同期吸収回路14へ出力される各信号及び各データの回路構成について説明する。図4は、非同期吸収回路への非同期受け渡し回路構成の一例を示すタイミングチャートである。
【0037】
図4において、書き込みクロック信号clk_aは、ライトバッファ回路12と非同期吸収回路14に入力されるクロック信号である。
【0038】
書き込みクロック信号clk_aに同期したn個の書き込みデータwdataは、ライトバッファ回路12において保持される。また、ライトバッファ回路12において、n個の書き込みデータwdataが非同期吸収回路14に出力された後、+1、+2、+3・・・と更に書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが保持される。
【0039】
ライトリセット信号wrstは、ライトバッファ回路12において保持されるn個の書き込みデータwdataの転送データの先頭位置を非同期吸収回路14に伝えるものである。
【0040】
ライトリセットエッジ信号wrst_a_edgeは、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが、ライトバッファ回路12から非同期吸収回路14に出力されるときの転送データの先頭位置を示すものである。また、ライトリセットエッジ信号wrst_a_edgeは、ライトバッファ回路12から非同期吸収回路14に出力されるn+1個の書き込みデータwdataの転送データの先頭位置を示すものでもある。
【0041】
図4に示すように、非同期吸収回路14において、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが保持されている期間が、非同期吸収期間となる。
【0042】
非同期受け渡し信号wrst_b_edgeは、n個の書き込みデータwdataが保持されている際に、書き込みクロック信号clk_aに同期したカウンタの任意の設定値にて作られたパルスを、読み取りクロック信号clk_bで同期化を行い、読み取りクロック信号clk_bへの非同期受け渡し信号となる。
【0043】
非同期受け渡し信号wrst_b_edgeにより、書き込みクロック信号clk_aと、読み取りクロック信号clk_bとの非同期吸収を行なわれ、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataは、読み取りクロック信号clk_bに対応させてデータ長が調整されたn個のデータとして変換されて制御される。
【0044】
<読み取りクロック信号clk_bが固定信号となる例>
次に、読み取りクロック信号clk_b信号がある期間、例えば停止される等の固定信号となる場合が想定されるシステムについて説明する。図5は、簡略化した複写機の書き込み構成の一例を示す図である。
【0045】
図5に示すように、複写機の書込みシステムにおいて、ライン周期のデータ処理を施し、回転するポリゴンミラーのミラー面に対し、先端センサーと後端センサーとの間のラインデータをレーザ(LD)にて照射していく上で、より精度の高い照射を行うには、位相調整が必要となる。
【0046】
位相調整は、ポリゴンミラーが何面であっても必要であり、位相調整を行なわない場合には、ポリゴン面間にジッタ(位置ずれ)が発生する。したがって、ポリゴン面間のジッタによるデータに対する影響を抑えるためには、書き込み開始位置を合わせる必要がある。
【0047】
なお、本実施形態における読み取りクロック信号clk_bが、固定信号となる場合を考慮しているが、これは例えば書き込み開始位置を合わせるための位相調整を目的とするものではない。つまり、本実施形態では、読み取りクロック信号clk_bが固定信号となる場合であっても、FIFOメモリ装置の動作を制御するクロック信号を利用した回路構成において、必要とするデータ量が欠けることなく、読み取りが行なえることを目的とする。したがって、転送されるデータ全てが書き込み及び読み取られることを目的とするものではない。
【0048】
<読み取りクロック信号clk_bが固定信号となる場合のタイミングチャートの例>
次に、上記した位相調整等のために読み取りクロック信号clk_bを固定した場合にについて説明する。図6は、読み取りクロック信号clk_bを固定した場合における読み取りクロック信号clk_bとリードリセット信号rrst、書き込みクロック信号clk_aと書き込みリセット信号wrstの一例を示すタイミングチャートである。
【0049】
図6に示すように、ライトリセット信号wrstは、書き込みクロック信号clk_aと同期である。リードリセット信号rrstは、読み取りクロック信号clk_bと同期である。したがってライトリセット信号wrstは、リードリセット信号rrstとは独立したクロック制御である。
【0050】
図6のタイミングチャートに示す期間「A」は、シングルポートメモリ16の容量を示すものとする。このとき、図6のタイミングチャートに示す期間「B」は、上記したように位相調整のために読み取りクロック信号clk_bを固定した期間を示している。このように、期間「A」に対応させて期間「B」を設けることで、シングルポートメモリ16の容量に対応させて読み取り開始位置を合わせることができる。
【0051】
ここで、本実施形態における速度変換回路10おけるFIFO動作においては、読み取りクロック信号clk_bは、常にライト・リードアクセスをしている必要がある。
【0052】
<固定信号となる場合を考慮に入れたタイミングチャートの例1>
そこで、上述した図4に示した非同期吸収期間において、書き込みクロック信号clk_aから読み取りクロック信号clk_bへの非同期受け渡し、及び上述した図6で示すクロック固定期間を考慮した回路構成を示す。図7は、読み取りクロック信号clk_bが固定される一例を示すタイミングチャートである。
【0053】
まず、上記図6のタイミングチャートにおける読み取りクロック信号clk_b固定期間「B」において、読み取りクロック信号clk_bが固定される期間を、例えば読み取りクロック信号clk_bの最大クロック期間によって設定する。ここで、読み取りクロック信号clk_bが固定されるサイクル数を「α」とする。
【0054】
図7において、タイミングチャートに示す期間「C」が、非同期吸収期間と読み取りクロック信号clk_bのクロック固定期間「B」が重なる期間である。
【0055】
上述したように、ライトバッファ回路12において、書き込みクロック信号clk_a信号×n幅の期間でn個データを保持するため、非同期受け渡しでは、読み取りクロック信号clk_bにおいて、読み取りクロック信号clk_b×(n+α)幅とする。
【0056】
上述の内容を、以下の通り計算式を示す。
【0057】
Tclk_a×n≧Tclk_b×(n+α)・・・・・・(1)
Tclk_a:書き込みクロック信号clk_aの周期
Tclk_b:読み取りクロック信号clk_bの周期
上記(1)に示す式を満たすことにより、非同期吸収回路14への非同期受け渡しの際に、書き込みデータwdataを取りこぼさない回路構成とすることが可能となる。
【0058】
<読み取りクロック信号clk_bが固定信号となる場合のタイミングチャートの例2>
上記(1)式を満たす回路構成では、n個データを保持する毎に、「α」を追加するとデータ転送期間が長くなる。また、上記において、クロックが固定される例として挙げたシステムでは、クロックが固定される期間は、1ラインデータにおいて1回発生する例である。
【0059】
そこで、n個データを保持する毎に「α」を挿入する回数を減らすため、図7に示す書き込みデータエッジ信号wdata_edgeの生成回路における、書き込みデータエッジ信号wdata_edgeを生成するタイミングについて説明する。図8は、書き込みデータエッジ信号wdata_edge生成回路におけるタイミング設定の一例を示すタイミングチャートである。
【0060】
図8に示すように、書き込みクロック信号clk_bに同期のカウンタで、データ数nをカウントするカウンタcnt_bにて、書き込みデータエッジ信号wdata_edgeのタイミングを以下のように設定する。
【0061】
0<wdata_edge<n−α・・・・・・(2)
上記(2)に示す式を満たすタイミングで書き込みデータエッジ信号wdata_edgeを生成する回路を構成する。
【0062】
これにより、非同期吸収回路14における非同期受け渡しの際に、n個データを保持する毎に「α」を挿入する回数を減らし、読み取りクロック信号clk_bが固定信号となる固定期間を考慮する必要のない回路構成を可能とする。
【0063】
<読み取りクロック信号clk_bが固定信号となる場合のタイミングチャートの例3>
次に、n個データを保持する毎に「α」を挿入することを回避するため、非同期吸収回路14の出力段に、n個のデータラッチする回路を構成する方法を説明する。図9は、n個のデータをm段ラッチする回路を非同期吸収回路の出力段に構成する一例を示すタイミングチャートである。
【0064】
図9に示すように、非同期吸収回路14の出力段は、非同期受け渡しの際、n個のデータをm段ラッチする回路である。ここで、n個のデータとは、非同期吸収回路14において、書き込みクロック信号clk_aに同期したn個の書き込みデータwdataが、読み取りクロック信号clk_bに対応してデータ長が調整されたデータを示す。
【0065】
また、データカウンタは、シングルポートメモリ16へ書き込むためのデータを準備するカウンタある。
【0066】
図9に示す期間「D」及び期間「E」で示す幅は、常に同じ幅であるとは限らず、速度変換を行うため、書き込みクロック信号clk_a、及び読み取りクロック信号clk_bの周波数関係と位相関係を考慮し、幅=n,n+1,n+2と周波数差により幅が変わる。
【0067】
図9に示すn×m個の書き込みデータwdataを転送するのに必要な期間は、読み取りクロック信号clk_b×(n×m)であるが、図9に示す「β」の期間が発生することが考えられる。ここで、「β」は、書き込みデータwdataがないために、シングルポートメモリ16へのライトアドレスが変化しない期間を示す。
【0068】
これにより、書き込みデータwdataのm×n個のデータ転送に対し、読み取りクロック信号clk_b×{(n×m)+β}の期間を確保することが可能となる。なお、m段ラッチの段数を多くすることで、転送期間を短くすることは可能であるが、段数分ゲート数が増加することを考慮する必要がある。また、上記のn個のデータをラッチする回路は、非同期吸収回路14の出力段に設けず、非同期吸収回路14に設けても良い。
【0069】
上記構成により、非同期吸収回路14における非同期受け渡しの際に、n個データを保持する毎に「α」を挿入することが回避可能な回路構成となる。
【0070】
<RAMコントローラ回路18について>
次に、シングルポートメモリ16のアクセス制御を行なうRAMコントローラ回路18について説明する。図10は、シングルポートメモリへのアクセス制御の一例を示す図である。
【0071】
図10に示すように、RAMコントローラ回路18は、アクセス制御するシングルポートメモリ16のポートとして、以下の信号をタイミングチャートに示す。
【0072】
タイミングチャートには、アクセスクロック信号ram_clk、ライトイネーブル信号ram_WE、書き込みマスク信号ram_wmask、ライトアドレス信号ram_wad、リードアドレス信号ram_rad、アドレス信号ram_adが示されている。
【0073】
ここで、アクセスクロック信号ram_clkは、シングルポートメモリ16へのアクセスクロック信号である。ライトイネーブル信号ram_WEは、読み取りクロック信号clk_bの2分周信号である。
【0074】
また、ライトアドレス信号ram_wadは、書き込みデータwdataのアドレス信号を示す。リードアドレス信号ram_radは、読み取りデータrdataのアドレス信号を示す。
【0075】
アドレス信号ram_adは、ライトアドレス信号及びリードアドレス信号をアドレス番号順にマージした、シングルポートメモリ16のアドレスポートへの入力信号である。
【0076】
書き込みマスク信号ram_wmaskは、ライトアドレス信号ram_wadにおいて、アドレスインクリメントが行われないサイクル期間に、書き込みをマスクする信号である。なお、書き込みマスク信号ram_wmaskは、シングルポートメモリ16がマスク処理をするポートを持っていれば、それに対応する信号としても良い。
【0077】
図10に示すライトアクセス及びリードアクセス等のアクセス制御において、書き込みデータwdata、読み取りデータrdataは、シングルポートメモリ16のbit幅であれば良い。
【0078】
また、図10のタイミングチャートにおいて、アクセスクロック信号ram_clkは、読み取りクロック信号clk_bに等しく、書き込み及び読み取り(ライト/リード)を交互に行う回路であれば、書き込みデータwdata2個を1アドレスに書くようにすれば良い。なお、書き込みデータwdataは、2個に限らず増やすことは可能であるが、シングルポートメモリ16へのアクセス間隔が広がる制御が必要となる。また、リード側は、読み取った読み取りデータrdataをパラレル−シリアル変換して出力する回路とする。
【0079】
図10のタイミングチャートにて、書き込みマスク信号ram_wmaskによってマスクされた期間が、上述した書き込みデータwdataがないために、シングルポートメモリ16へのライトアドレスが変化しない期間「β」である。
【0080】
図10の例では、マスクされた期間「β」の間に、マスクされた期間「β」の直前のアドレスw5からアドレスインクリメントがなされないため、アドレスw5を2つ挿入している。
【0081】
<書き込みクロック信号clk_aの周波数範囲算出方法、及びシングルポートメモリ16の容量算出方法について>
次に、書き込みクロック信号clk_aの周波数範囲の算出方法と、シングルポートメモリ16の最適な容量の算出方法について説明する。まず、条件として、上記回路構成により読み取りクロック信号clk_bを決定し、次に書き込みクロック信号clk_aに対する読み取りクロック信号clk_bの周波数範囲のマージンが、何%保証が必要であり、また転送データの全体の何%が有効となるかを設定する。
【0082】
これにより、書き込みクロック信号clk_aの周波数範囲の算出と、シングルポートメモリ16の最適な容量を見積もる計算とが可能となる。前述の変数に、具体的な例の一つとして値を入れて、算出する。
【0083】
読み取りクロック信号clk_b=190MHz・・・・・・・・(3)
書き込みデータの転送データ数n=14・・・・・・・・・・・・(4)
書き込みデータ数nを保持する段数m=8・・・・・・・・・・・(5)
読み取りクロック信号clk_bの固定サイクル数α=3・・・・(6)
読み取りクロック信号clk_bの周波数範囲保証%=±4%・・(7)
(読み取りクロック信号clk_b:182.4MHz〜197.6MHz)を保証)
転送データ:23500個・・・・・(8)
シングルポートメモリ16のbit幅は、8bit(1データ:4bit)とする。
【0084】
まず、書き込みクロック信号clk_aの上限周波数を求める。書き込みクロック信号clk_aの上限周波数は、書き込みクロック信号clk_a={上記(7)×{(n×m)/{(n×m)+α}}から算出する。
【0085】
ここで、「n×m」は、例えばシングルポートメモリ16への書き込みデータwdataのデータパッキング画素数(n×m)dot/packを示す。このとき、書き込みデータwdataのデータパッキング当たりの書き込みクロック信号clk_aは、(n×m)clk_a/packとすることができる。
【0086】
また、「α」は、読み取りクロック信号clk_bが停止する期間(固定期間)に対応する必要がある画素数である。すなわち、1パッキング当たりに読み取り(リード)が追いつく画素数を意味する。よって、{(n×m)+α}は、1パッキング当たりの読み取りクロック信号clk_bを示している。したがって、書き込みデータwdataのデータパッキング当たりの書き込みクロック信号clk_aは、{(n×m)+α}clk_a/packとすることができる。
【0087】
また、読み取りクロック信号clk_bの停止期間に対応するのに必要な周波数の比率を計算すると、計算式は、書き込みクロック信号clk_a/読み取りクロック信号clk_b=(n×m)/{(n×m)+α}となる。なお、この計算式は、画素数ベースにおける書き込みクロック信号clk_aベースでの計算である。
【0088】
以上を踏まえると、読み取りクロック信号clk_bの周波数範囲の下限周波数に対して、上記周波数比率を用いることで、書き込みクロック信号clk_aの上限周波数を求めることが可能となる。すなわち、書き込みクロック信号clk_aの上限周波数は、書き込みクロック信号clk_a={(7)の182.4MHz}×{(n×m)/{(n×m)+α}}=177.6MHzとなる。
【0089】
また、読み取りクロック信号clk_bの周波数上限197.6MHzに対し、書き込みクロック信号clk_a上限周波数の周波数比は、書き込みクロック信号clk_a/読み取りクロック信号clk_b=177.6÷197.6=89.90%となる。
【0090】
次に、シングルポートメモリ16の最適な容量を求める。書き込みクロック信号clk_a=177.6MHzで、読み取りクロック信号clk_b=197.6MHzの時の速度差吸収時のデータ数は、Data_a/b=(23500÷書き込みクロック信号clk_a/読み取りクロック信号clk_b)−23500=2641となる。
【0091】
上記計算式より、シングルポートメモリとして必要な容量は、2.7k×8bitのサイズとなることが示される。
【0092】
<RAMコントローラ回路18でライト・リードアドレスが別々に制御されている例>
次に、RAMコントローラ回路18において、ライト・リードアドレスが、別々に制御されている例を説明する。図11は、ライト・リードアドレスが別々に制御されている一例を示す図である。
【0093】
RAMコントローラ回路18は、リードアドレス182と、ライトアドレス184と、RAMアクセスアドレス186とを含むように構成されている。
【0094】
リードアドレス182には、読み取りクロック信号clk_bと、読み取りクロック信号clk_bに同期したリードリセット信号rrstが、入力され、リードアドレス信号ram_radが生成されて、RAMアクセスアドレス186に出力される。
【0095】
ライトアドレス184には、読み取りクロック信号clk_bと、読み取りクロック信号clk_bに同期したライトリセットb信号wrst_bが入力され、ライトアドレス信号ram_wadが生成されて、RAMアクセスアドレス186に出力される。
【0096】
RAMアクセスアドレス186は、入力されるリードアドレス信号ram_radと、ライトアドレス信号ram_wadをマージしたアドレス信号ram_adをシングルポートメモリ16に出力する。
【0097】
上述の通り、本発明によれば、見かけ上FIFO型メモリ装置と同様の動作をする1portSRAM(シングルポートメモリ)を使用し、非同期の場合でも、1portSRAMを制御する読み取りクロック周波数に基づいて、ライト側のクロック周波数を設定することにより、読み取りクロックが所定期間停止する場合であっても、有効なデータが欠けることなく連続した書き込み及び読み取りが可能となる
また、本発明によれば、1portSRAMに対するライトイネーブル信号に係らず、1portSRAMに対する書き込み及び読み取りを読み取りクロックにて制御することが可能となる。
【0098】
また、本発明によれば、データ転送サイズと、1portSRAMを制御する読み取りクロック周波数に基づいて、データ転送に必要な1portSRAMの容量を見積もることが可能となる。
【0099】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【0100】
【図1】従来におけるFIFO型速度変換回路を示す図である。
【図2】デュアルポートメモリを用いた場合におけるタイミングチャートである。
【図3】本実施形態に係る回路構成の一例を示す図である。
【図4】非同期吸収回路への非同期受け渡し回路構成の一例を示すタイミングチャートである。
【図5】簡略化した複写機の書き込み構成の一例を示す図である。
【図6】読み取りクロック信号clk_bを固定した場合における読み取りクロック信号clk_bとリードリセット信号rrst、書き込みクロック信号clk_aと書き込みリセット信号wrstの一例を示すタイミングチャートである。
【図7】読み取りクロック信号clk_bが固定される一例を示すタイミングチャートである。
【図8】書き込みデータエッジ信号wdata_edge生成回路におけるタイミング設定の一例を示すタイミングチャートである。
【図9】n個のデータをm段ラッチする回路を非同期吸収回路の出力段に構成する一例を示すタイミングチャートである。
【図10】シングルポートメモリへのアクセス制御の一例を示す図である。
【図11】ライト・リードアドレスが別々に制御されている一例を示す図である。
【符号の説明】
【0101】
10 速度変換回路
12 ライトバッファ回路
14 非同期吸収回路
16 シングルポートメモリ
18 RAMコントローラ回路
100 FIFO型速度変換回路
101 ライトコントローラ
103 デュアルポートメモリ
105 リードコントローラ
182 リードアドレスコントローラ
184 ライトアドレスコントローラ
186 RAMアクセスアドレスコントローラ
【特許請求の範囲】
【請求項1】
書き込み用のクロック周波数からなる第1のクロック信号に同期した書き込みデータが保持されるライトバッファ回路と、
前記第1のクロック信号と、前記第1のクロック信号と独立した読み取り用のクロック周波数からなる第2のクロック信号との非同期吸収を行う非同期吸収回路と、
シングルポートメモリに対する書き込み及び読み取りを制御するRAMコントローラ回路とを有し、
前記非同期吸収回路は、前記ライトバッファ回路で保持された書き込みデータを、前記第2のクロック信号に対応させてデータ長を調整し、調整された書き込みデータを前記RAMコントローラ回路へ出力することを特徴とする速度変換回路。
【請求項2】
前記非同期吸収回路は、前記第2のクロック信号に固定期間が存在する場合、前記固定期間に対応させて、前記書き込みデータのデータ長を調整するタイミングを設定することを特徴とする請求項1に記載の速度変換回路。
【請求項3】
前記非同期吸収回路は、前記調整された書き込みデータを保持する多段のラッチ回路を含むことを特徴とする請求項1又は2に記載の速度変換回路。
【請求項4】
前記RAMコントローラ回路は、前記シングルポートメモリに対する書き込み及び読み取りを前記第2のクロック信号に基づいて制御することを特徴とする請求項1乃至3のいずれか一項に記載の速度変換回路。
【請求項5】
前記RAMコントローラ回路は、前記第2のクロック信号に基づいて、前記第1のクロック信号の周波数の範囲を設定することを特徴とする請求項1乃至4のいずれか一項に記載の速度変換回路。
【請求項6】
前記RAMコントローラ回路は、前記書き込みデータのサイズに基づいて、前記書き込みデータの書き込みに必要なシングルポートメモリの容量を算出することを特徴とする請求項1乃至5のいずれか一項に記載の速度変換回路。
【請求項1】
書き込み用のクロック周波数からなる第1のクロック信号に同期した書き込みデータが保持されるライトバッファ回路と、
前記第1のクロック信号と、前記第1のクロック信号と独立した読み取り用のクロック周波数からなる第2のクロック信号との非同期吸収を行う非同期吸収回路と、
シングルポートメモリに対する書き込み及び読み取りを制御するRAMコントローラ回路とを有し、
前記非同期吸収回路は、前記ライトバッファ回路で保持された書き込みデータを、前記第2のクロック信号に対応させてデータ長を調整し、調整された書き込みデータを前記RAMコントローラ回路へ出力することを特徴とする速度変換回路。
【請求項2】
前記非同期吸収回路は、前記第2のクロック信号に固定期間が存在する場合、前記固定期間に対応させて、前記書き込みデータのデータ長を調整するタイミングを設定することを特徴とする請求項1に記載の速度変換回路。
【請求項3】
前記非同期吸収回路は、前記調整された書き込みデータを保持する多段のラッチ回路を含むことを特徴とする請求項1又は2に記載の速度変換回路。
【請求項4】
前記RAMコントローラ回路は、前記シングルポートメモリに対する書き込み及び読み取りを前記第2のクロック信号に基づいて制御することを特徴とする請求項1乃至3のいずれか一項に記載の速度変換回路。
【請求項5】
前記RAMコントローラ回路は、前記第2のクロック信号に基づいて、前記第1のクロック信号の周波数の範囲を設定することを特徴とする請求項1乃至4のいずれか一項に記載の速度変換回路。
【請求項6】
前記RAMコントローラ回路は、前記書き込みデータのサイズに基づいて、前記書き込みデータの書き込みに必要なシングルポートメモリの容量を算出することを特徴とする請求項1乃至5のいずれか一項に記載の速度変換回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−134646(P2010−134646A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−308960(P2008−308960)
【出願日】平成20年12月3日(2008.12.3)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願日】平成20年12月3日(2008.12.3)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]