(57)【要約】【課題】簡略な構造で、クロック周期以上の遅延に対しても安定したアクセスを実現する同期メモリアクセス調整回路及び調整方法を提供する。【解決手段】クロック信号３０に同期して動作する同期メモリ２にアクセスする同期メモリアクセス調整回路１において、同期メモリ２にデータ読み出し、書き込みのアクセスのために与えるクロック信号３１を位相遅延調整するための第１の遅延回路１６と、前記アクセス後に同期メモリ２から出力される読み出しデータ４６を取り込むためのクロック信号３２を位相遅延調整するための第２の遅延回路１７と、同期メモリ２から出力される読み出しデータ４６をサイクル遅延調整するためのファーストインファーストアウト回路１２とを備える。【選択図】図１
2010092380.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号に同期して動作する同期メモリにアクセスする同期メモリアクセス調整回路において、
前記同期メモリにデータ読み出し、書き込みのアクセスのために与えるクロック信号を位相遅延調整するための第１の遅延回路と、
前記アクセス後に前記同期メモリから出力される読み出しデータを取り込むためのクロック信号を位相遅延調整するための第２の遅延回路と、
前記同期メモリから出力される読み出しデータをサイクル遅延調整するためのファーストインファーストアウト回路と、を備えることを特徴とする同期メモリアクセス調整回路。
【請求項２】
請求項１記載の同期メモリアクセス調整回路において、
前記第１の遅延回路は、印加位相レジスタで設定した印加位相値で位相遅延し、
前記第２の遅延回路は、受信位相レジスタで設定した受信位相値で位相遅延し、
前記ファーストインファーストアウト回路は、サイクルレジスタで設定したサイクル値でサイクル遅延調整する同期メモリアクセス調整回路。
【請求項３】
請求項２記載の同期メモリアクセス調整回路において、
前記印加位相値、前記受信位相値、及び前記サイクル値をそれぞれ試行範囲内の最大値まで増加させて、前記同期メモリに書き込まれたデータと前記同期メモリから読み出されたデータの比較を前記試行範囲の最大値まで繰り返すことで生成されるアクセス可否マップを備える同期メモリアクセス調整回路。
【請求項４】
クロック信号に同期して動作する同期メモリにアクセスする同期メモリアクセス調整回路の調整方法において、
前記同期メモリにデータ読み出し、書き込みのアクセスのために与えるクロック信号を位相遅延調整する印加位相値と、
前記アクセス後に前記同期メモリから出力される読み出しデータを取り込むためのクロック信号を位相遅延調整する受信位相値と、
前記同期メモリから出力される読み出しデータをサイクル遅延調整するサイクル値とを、それぞれ試行範囲内で変化させ、
前記同期メモリに書き込まれたデータと前記同期メモリから読み出されたデータの比較を前記試行範囲内で繰り返すことで生成されるアクセス可否マップを生成し、
このアクセス可否マップに基づいて、前記印加位相値、前記受信位相値、及びサイクル値の最適な遅延調整値を決定する同期メモリアクセス調整回路の調整方法。
【請求項５】
請求項４記載の同期メモリアクセス調整回路の調整方法において、
前記アクセス可否マップは、
前記サイクル値を規定の初期値から増加させ、
この各サイクル値に対し、前記受信位相値を規定の初期値から規定の最大値まで増加させ、
この各サイクル値及び各受信位相値に対し、前記印加位相値を規定の初期値から規定の最大値まで増加させ、
これらの各印加位相値、各受信位相値、及び各サイクル値に対して、前記同期メモリに書き込んだデータと前記同期メモリから読み出したデータとを比較することで生成する同期メモリアクセス調整回路の調整方法。
【請求項６】
請求項５記載の同期メモリアクセス調整回路の調整方法において、
前記サイクル値は、前記同期メモリに書き込んだデータと前記同期メモリから読み出したデータとが一致する前記印加位相値と前記受信位相値との組み合わせを少なくとも１つ有するサイクルが２回生じるまで増加させる、または規定の最大値まで増加させる同期メモリアクセス調整回路の調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期メモリアクセス回路技術に関する。
【背景技術】
【０００２】
クロック信号に同期して動作する同期メモリのアクセス速度は、年々高速になっている。同期メモリと同期メモリを制御する制御回路との間では数種類の信号を送受信するが、配線長の違いなどにより信号伝達に時間差が生じる。このため、同期メモリへの安定したアクセスを実現することが困難になっている。この困難を解決する方法の１つが、遅延したクロック信号を同期メモリへ供給し、同期メモリへのアクセスのための信号伝達のタイミングを調整するクロック遅延調整である。特許文献１、２に開示されているように、同期メモリへのアクセスのためのクロック遅延調整の方法は、調整する信号（データライン）に応じてこれまでにいくつか発明されている。
【０００３】
しかし、安定したアクセスを確実に行うためには、クロック遅延調整のみでは対応できない。
【０００４】
【特許文献１】特開２００３−７０８６号公報
【特許文献２】特開平９−１８５４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
同期メモリへのアクセスのためのクロック遅延調整は、同期メモリアクセス調整回路で行うが、クロック周期以上の遅延調整を行うことができないという課題がある。クロック遅延調整は、クロック信号の１周期内での調整であり、同期メモリアクセス調整回路でクロック周期以上の遅延時間を設定しても、クロック信号の位相は３６０°（一周期）で元の位相に戻るため、結局はクロック周期未満の遅延時間を設定したのと同じことになるからである。
【０００６】
従って、同期メモリに対するデータの書き込みや読み出しを正しく行うためには、クロック周期内の遅延調整だけでなく、サイクル（周期）単位の遅延調整も必要になる。そして、遅延調整を効果的に行うためには、同期メモリとの間で送受信する各信号に対し、クロック信号の最適な遅延調整値を得る必要がある。
【０００７】
また、従来の技術では、データラインごとにクロック信号の遅延を調整するので、回路構造や調整方法が複雑になるという課題もある。
【０００８】
本発明は、簡略な構造で、クロック周期以上の遅延調整が可能で安定したアクセスを実現することができる同期メモリアクセス調整回路及びその調整方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、基本的には次のような構成をとる。
【００１０】
クロック信号に同期して動作する同期メモリにアクセスする同期メモリアクセス調整回路において、前記同期メモリにデータ読み出し、書き込みのアクセスのために与えるクロック信号を位相遅延調整するための第１の遅延回路と、前記アクセス後に前記同期メモリから出力される読み出しデータを取り込むためのクロック信号を位相遅延調整するための第２の遅延回路と、前記同期メモリから出力される読み出しデータをサイクル遅延調整するためのファーストインファーストアウト回路とを備える。
【００１１】
前記第１の遅延回路は、印加位相レジスタで設定した印加位相値で位相遅延し、前記第２の遅延回路は、受信位相レジスタで設定した受信位相値で位相遅延し、前記ファーストインファーストアウト回路は、サイクルレジスタで設定したサイクル値でサイクル遅延調整する。
【００１２】
さらに、本発明の同期メモリアクセス調整回路は、前記印加位相値、前記受信位相値、及び前記サイクル値をそれぞれ試行範囲内の最大値まで増加させて、前記同期メモリに書き込まれたデータと前記同期メモリから読み出されたデータの比較を前記試行範囲の最大値まで繰り返すことで生成されるアクセス可否マップを備える。
【００１３】
また、本発明の同期メモリアクセス調整回路の調整方法は、基本的には次のような手段からなる。
【００１４】
クロック信号に同期して動作する同期メモリにアクセスする同期メモリアクセス調整回路の調整方法において、前記同期メモリにデータ読み出し、書き込みのアクセスのために与えるクロック信号を位相遅延調整する印加位相値と、前記アクセス後に前記同期メモリから出力される読み出しデータを取り込むためのクロック信号を位相遅延調整する受信位相値と、前記同期メモリから出力される読み出しデータをサイクル遅延調整するサイクル値とを、それぞれ試行範囲内で変化させ、前記同期メモリに書き込まれたデータと前記同期メモリから読み出されたデータの比較を前記試行範囲内で繰り返すことで生成されるアクセス可否マップを生成し、このアクセス可否マップに基づいて、前記印加位相値、前記受信位相値、及びサイクル値の最適な遅延調整値を決定する。
【発明の効果】
【００１５】
本発明の同期メモリアクセス調整回路及びその調整方法によれば、同期メモリへのアクセスに高い信頼性を与えることができる。
【発明を実施するための最良の形態】
【００１６】
本発明は、サイクル遅延調整可能なファーストインファーストアウト回路とクロック遅延調整とを併用するものである。これにより、クロック信号の１サイクル（周期）内での遅延調整であるクロック遅延調整だけでなく、クロック信号のサイクル単位での遅延調整であるサイクル遅延調整が可能となり、クロック周期以上の遅延に対しても安定したアクセスを実現することが可能になる。以下、本発明の実施例について、図面を参照しながら詳細に説明する。
【００１７】
図１は、本発明の一実施形態による同期メモリアクセス調整回路と周辺回路とを含むＬＳＩの構成図である。
【００１８】
本ＬＳＩは、全体回路４、同期メモリ２、及び制御ＣＰＵ５を備え、全体回路４は、同期メモリアクセス調整回路１と処理回路３とを備える。同期メモリアクセス調整回路１は、インターフェース回路１０、印加位相レジスタ１８、第１の遅延回路１６、受信位相レジスタ１９、サイクルレジスタ２０、メモリ制御回路１１、第２の遅延回路１７、ファーストインファーストアウト回路１２、出力バッファ（１）１３、出力バッファ（２）１４、及び入力バッファ１５を備える。
【００１９】
制御ＣＰＵ５は、外部バス２５を介して、全体回路４の内部の処理回路３、及び同期メモリアクセス調整回路１の内部のインターフェース回路１０と接続している。従って、制御ＣＰＵ５は、インターフェース回路１０を経由して、印加位相レジスタ１８、受信位相レジスタ１９、及びサイクルレジスタ２０を設定することができる。
【００２０】
全体回路４は、システムクロック信号３０に従い動作する。
【００２１】
同期メモリアクセス調整回路１は、インターフェース回路１０から内部バス２６を介して、処理回路３と接続している。また、同期メモリアクセス調整回路１は、同期メモリ２と接続され、印加クロック信号３１、制御及びアドレス信号４２、及び双方向データ信号４５を送受信する。同期メモリ２へのアクセスは、インターフェース回路１０を経由して、処理回路３又は制御ＣＰＵ５から行われる。
【００２２】
第１の遅延回路１６は、印加位相レジスタ１８により、同期メモリ２に与える印加クロック信号３１の遅延が調整可能である。すなわち、印加クロック信号３１は、印加位相レジスタ１８で設定された位相差でシステムクロック信号３０から遅延し、第１の遅延回路１６から同期メモリ２へ送信される。
【００２３】
第２の遅延回路１７は、受信位相レジスタ１９により、同期メモリ２から出力される双方向データ信号４５を取り込む受信クロック信号３２の遅延が調整可能である。すなわち、受信クロック信号３２は、受信位相レジスタ１９で設定された位相差でシステムクロック信号３０から遅延し、双方向データ信号４５は、この受信クロック信号３２に合わせてファーストインファーストアウト回路１２へ送信される。
【００２４】
ファーストインファーストアウト回路１２は、サイクルレジスタ２０により、システムクロック信号３０のサイクル単位でのリードデータ４７の遅延が調整可能である。すなわち、リードデータ４７は、サイクルレジスタ２０で設定されたクロックサイクルだけシステムクロック信号３０から遅延し、ファーストインファーストアウト回路１２からインターフェース回路１０へ送信される。
【００２５】
インターフェース回路１０は、同期メモリ２へのアクセス時に制御及びアドレス信号４０をメモリ制御回路１１へ送信する。さらに、メモリライト時にはライトデータ４３をメモリ制御回路１１へ送信し、メモリリード時にはリードデータ４７をファーストインファーストアウト回路１２から受信する。
【００２６】
ここで、図２に示す主要な信号の同期メモリアクセスのタイムチャートを用いて、メモリライト時及びメモリリード時の同期メモリアクセス調整回路１の動作について説明する。
【００２７】
メモリライト時は、メモリ制御回路１１から、制御及びアドレス信号４２を出力バッファ（１）１３を介して同期メモリ２へ送信するとともに、出力バッファ（２）１４を介して双方向データ信号４５にライトデータ４４を載せて同期メモリ２へ送信する。図２に示すように、この制御及びアドレス信号４２と双方向データ信号４５に載っているライトデータ（図２の双方向データ信号４５のうち「書き込み」）は、システムクロック信号３０に同期している。
【００２８】
同期メモリ２では、印加クロック信号３１が第１の遅延回路１６で遅延調整されることで、制御及びアドレス信号４２とライトデータの受信可否が決定する。すなわち、印加クロック信号３１がオンとなるタイミングを、システムクロック信号３０より時間ｔ１だけ遅延するように調整し、ライトデータが正しく同期メモリ２に書き込まれるようにする。時間ｔ１は、後述する方法で求める印加位相の最適な設定値と印加クロック信号３１のサイクルとから求めることができる。
【００２９】
メモリリード時は、メモリ制御回路１１から、制御及びアドレス信号４２を出力バッファ（１）１３を経由して同期メモリ２へ送信する。その後、印加クロック信号３１がオンとなってから、同期メモリ２の動作特性に応じて規定された時間ｔ２経過後、双方向データ信号４５にリードデータ（図２の双方向データ信号４５のうち「読み出し」）が出力される。
【００３０】
ファーストインファーストアウト回路１２は、入力バッファ１５を介して、双方向データ信号４５に載っているリードデータ４６を受信クロック信号３２に合わせて受信する。受信クロック信号３２は、第２の遅延回路１７により、時間ｔ３だけシステムクロック信号３０から遅延するように調整されている。時間ｔ３は、後述する方法で求める受信位相の最適な設定値と受信クロック信号３２のサイクルとから求めることができる。
【００３１】
また、ファーストインファーストアウト回路１２は、サイクルレジスタ２０で設定されたクロックサイクルの後、すなわち、サイクルレジスタ２０で設定された分だけサイクル遅延調整した後、システムクロック信号３０に同期したリードデータ４７をインターフェース回路１０へ送信する。
【００３２】
以上説明した動作により、同期メモリ２へのリード及びライトアクセスを行う。この時に、印加位相レジスタ１８、受信位相レジスタ１９、及びサイクルレジスタ２０で設定される各遅延調整値（印加位相値、受信位相値、及びサイクル値）によって、同期メモリ２へのアクセス可否が変化する。最適な遅延調整の各設定値、すなわち遅延調整に最適な印加位相値、受信位相値、及びサイクル値は、このアクセス可否に基づいて作成するアクセス可否マップにより求められる。同期メモリアクセス調整回路１は、この最適な遅延調整の各設定値に従い、動作する。
【００３３】
以下、アクセス可否マップを作成する手順について、図３と図４を用いて説明する。
【００３４】
図３は、アクセス可否マップの作成手順を示すフローチャートである。制御ＣＰＵ５は、図３に示したフローチャートの手順でインターフェース回路１０にアクセスし、印加位相レジスタ１８、受信位相レジスタ１９、及びサイクルレジスタ２０に対し、それぞれ印加位相値、受信位相値、及びサイクル値を変化させて各値に対するアクセス可否を判断し、可否情報を取得する。
【００３５】
図４は、アクセス可否マップを示したものである。図３のフローチャートの手順で作成したアクセス可否マップの例を、サイクル値の初期値（サイクル初期値）、サイクル初期値からサイクルを１つ増加させたサイクル値（サイクル初期値＋１）、サイクル初期値からサイクルを２つ増加させたサイクル値（サイクル初期値＋２）、及びサイクル値の最大値（サイクル最大値）のそれぞれに対して、上から順に示してある。サイクル初期値＋２とサイクル最大値との間のサイクル値に対するアクセス可否マップは、図示を省略した。
【００３６】
まず、図３のフローチャートを説明する。アクセス可否マップの作成が開始（Ｓ２０１）されると、サイクル値の初期値設定（Ｓ２０２）、受信位相値の初期値設定（Ｓ２０３）、印加位相値の初期値設定（Ｓ２０４）を行う。本実施例では、サイクル値の初期値は０、受信位相値の初期値は０°、印加位相値の初期値０°とする。
【００３７】
これら初期値の設定が終了後、同期メモリアクセス調整回路１と同期メモリ２を初期化し、同期メモリ２に対してデータの書き込みと読み出しを行う（Ｓ２０５）。
【００３８】
書き込まれたデータ（ライトデータ）と読み出されたデータ（リードデータ）は、制御ＣＰＵ５にて比較、判定される（Ｓ２０６）。ライトデータとリードデータが等しい場合は、同期メモリ２へのアクセスが成功したものとし、アクセス可とする（Ｓ２０８）。ライトデータとリードデータが等しくない場合は、同期メモリ２へのアクセスが失敗したものとし、アクセス否とする（Ｓ２０７）。このようにして、サイクル値、受信位相値、及び印加位相値の各設定値でのアクセス可否が決定される。
【００３９】
次に、印加位相値が規定の最大値かどうか判断し（Ｓ２０９）、最大値でない場合は、印加位相値を増加（シフト）させる（Ｓ２１０）。印加位相値の最大値は、本実施例では、３６０°と規定しておく。また、増加（シフト）量は、例えば、第１の遅延回路１６や第２の遅延回路１７の素子特性によって決まる分解能や同期メモリ２へのアクセス速度に基づいて決めることができる。
【００４０】
そして、同期メモリアクセス調整回路１と同期メモリ２の初期化及び同期メモリ２に対するデータの書き込みと読み出し（Ｓ２０５）と、ライトデータとリードデータの比較、判定（Ｓ２０６）を行う。この処理を印加位相値の最大値まで繰り返す（Ｓ２０９）。
【００４１】
印加位相値が最大値に達したら、今度は受信位相値が最大値になるまで（Ｓ２１１）、受信位相値を増加（シフト）させ（Ｓ２１２）、Ｓ２０４からＳ２１０までの処理を繰り返す。このとき、印加位相値は、Ｓ２０４の処理で初期値に戻し、Ｓ２１０の処理で最大値まで増加させることになる。
【００４２】
本実施例では、受信位相値も印加位相値と同様に、最大値は３６０°で、増加（シフト）量は、第１の遅延回路１６や第２の遅延回路１７の素子特性によって決まる分解能や同期メモリ２へのアクセス速度に基づいて決めることができる。
【００４３】
受信位相値が最大値に達した段階で、サイクル値の初期値（サイクル初期値）に対するアクセス可否マップが出来上がる。図４のサイクル初期値のアクセス可否マップ３０１に、出来上がったアクセス可否マップの例を示す。本例は、全ての印加位相値と受信位相値に対しアクセス否と判定された場合であり、アクセス可否マップには全て「否」と記されている。
【００４４】
図３のフローチャートの説明を続ける。次に、サイクル値が最大値になるまで（Ｓ２１３）、サイクル値を１サイクルずつ増加（シフト）させ（Ｓ２１４）、Ｓ２０３からＳ２１２までの処理を繰り返す。このとき、印加位相値と受信位相値は、それぞれ初期値から最大値まで増加させていくことになる。このようにして、サイクル初期値からサイクル最大値までのアクセス可否マップを作成する。なお、サイクル値が最大値に達する前に、アクセス可否マップに１つでも「可」が記されたサイクルが２つ以上あれば、その時点で、アクセス可否マップの作成を終了してもよい。
【００４５】
図４には、サイクル初期値＋１のアクセス可否マップ３０２、サイクル初期値＋２のアクセス可否マップ３０３、及びサイクル最大値のアクセス可否マップ３０４も示してある。サイクル最大値のアクセス可否マップ３０４は、サイクル初期値のアクセス可否マップ３０１と同様に、全て「否」と記されている。一方、サイクル初期値＋１のアクセス可否マップ３０２には「可」が３個、サイクル初期値＋２のアクセス可否マップ３０３には「可」が１１個記されている。
【００４６】
図４のように得られたアクセス可否マップから、印加位相値、受信位相値、及びサイクル値の最適な設定値を求めて遅延調整に使用する。サイクル値の最適な設定値は、各サイクル値に対するアクセス可否マップのうち、「可」を最も多く含むアクセス可否マップのサイクル値である。印加位相値及び受信位相値の最適な設定値は、「可」を最も多く含むアクセス可否マップ（すなわち、サイクル値が最適な設定値であるアクセス可否マップ）の、全ての「可」を含む最小の長方形（正方形でもよい）の中心点にある「可」を与える印加位相値と受信位相値との組み合わせである。なお、中心点というのは、正確に長方形（正方形）の中心点である必要はなく、アクセス可否マップ上の「可」群のほぼ中央にある点でよい。
【００４７】
図４の例では、サイクル初期値＋２のアクセス可否マップ３０３に最も多く「可」が存在し、その「可」を全て含む最小の長方形３０６の中心点３０５（印加位相値がａ、受信位相値がｂの点）が最適な設定値を与える点である。従って、最適な設定値は、サイクル値はサイクル初期値＋２、印加位相値はａ、受信位相値はｂ、と求められる。
【００４８】
このように得られた最適な設定値を用いて印加位相レジスタ１８、受信位相レジスタ１９、及びサイクルレジスタ２０を設定し、第１の遅延回路１６、第２の遅延回路１７、及びファーストインファーストアウト回路１２をそれぞれ遅延調整すると、処理回路３は、同期メモリアクセス調整回路１を通して同期メモリ２と安定したアクセスを行うことが可能となる。
【００４９】
最適な設定値は、全体回路４の稼動前に求めて設定しておくが、稼動中でもメンテナンス時などに定期的に求めて再設定することもできるので、回路素子の経年変化に対応することが可能である。また、同期メモリアクセス調整回路１を大量生産する場合には、最適な設定値は同期メモリアクセス調整回路１毎に取得することが可能なため、回路素子や同期メモリ２など個別の特性の違いにも対応することができる。従って、本発明には、品質の維持や均一化、信頼性向上という効果もある。
【００５０】
さらに、遅延調整は、データラインごとに調整するのではなく、第１の遅延回路１６、第２の遅延回路１７、及びファーストインファーストアウト回路１２という３つの回路だけで行うので、大規模回路に対しても構造や調整方法が簡略になるという利点もある。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態による同期メモリアクセス調整回路と周辺回路とを含むＬＳＩの構成図。
【図２】主要な信号の同期メモリアクセスのタイムチャート。
【図３】アクセス可否マップの作成手順を示すフローチャート。
【図４】各サイクル値に対するアクセス可否マップ。
【符号の説明】
【００５２】
１…同期メモリアクセス調整回路、２…同期メモリ、３…処理回路、４…全体回路、５…制御ＣＰＵ、１０…インターフェース回路、１１…メモリ制御回路、１２…ファーストインファーストアウト回路、１３…出力バッファ（１）、１４…出力バッファ（２）、１５…入力バッファ、１６…第１の遅延回路、１７…第２の遅延回路、１８…印加位相レジスタ、１９…受信位相レジスタ、２０…サイクルレジスタ、２５…外部バス、２６…内部バス、３０…システムクロック信号、３１…印加クロック信号、３２…受信クロック信号、４０、４２…制御及びアドレス信号、４３、４４…ライトデータ、４５…双方向データ信号、４６、４７…リードデータ、３０５…「可」を全て含む最小の長方形の中心点、３０６…「可」を全て含む最小の長方形。
【図１】
2010092380.tif 000003
【図２】
2010092380.tif 000004
【図３】
2010092380.tif 000005
【図４】
2010092380.tif 000006