(57)【特許請求の範囲】
【請求項１】
第１クロックに応答してバースト転送されるデータの書き込み／読み出しのために前記第１クロックよりも高速の第２クロックに応答してメモリにアクセスするメモリアクセス回路において、
前記第１クロックに応答して更新される数値を前記第２クロックに応答して取り込む取り込み手段、
前記取り込み手段によって連続して取り込まれた２つの数値を互いに比較する比較手段、および
前記比較手段の比較結果が一致を示すとき前記メモリに対して供給される第２クロックを不能化する不能化手段を備えることを特徴とする、メモリアクセス回路。
【請求項２】
前記メモリはクロックイネーブル端子を有するクロック同期型のメモリであり、
前記不能化手段は前記クロックイネーブル端子に所定信号を供給することによって前記第２クロックを不能化する、請求項１記載のメモリアクセス回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、メモリアクセス回路に関し、特にたとえば第１クロックに応答してバースト転送されるデータの書き込み／読み出しのために当該第１クロックよりも高速の第２クロックに応答してメモリにアクセスする、メモリアクセス回路に関する。
【０００２】
【従来技術】
この種のメモリアクセス回路の一例を、図５に示す。この図５に示す回路１では、ＣＰＵ（Central Processing Unit）２はメモリコントローラ３を介してＳＤＲＡＭ（Synchronous Dynamic RAM）４にアクセスする。なお、ＣＰＵ２の動作クロック周波数ｆc'はｆc'＝６４[MHz]であり、ＳＤＲＡＭ４の動作クロック周波数ｆs'はＣＰＵ２の動作クロック周波数ｆc'の１．５倍、つまりｆs'＝９６[MHz]である。このように互いに動作クロック周波数ｆc'およびｆs'の異なるＣＰＵ２およびＳＤＲＡＭ４間でバースト転送方式に基づくデータ転送を可能とするために、メモリコントローラ３はバッファ５を内蔵している。
【０００３】
すなわち、ＣＰＵ２およびＳＤＲＡＭ４の一方からメモリコントローラ３に転送されたデータは、一旦バッファ５に蓄積された後、他方に転送される。このとき、ＣＰＵ２およびメモリコントローラ３間では、ＣＰＵ２の動作クロック周波数ｆc'に従ってバースト転送が行われ、ＳＤＲＡＭ４およびメモリコントローラ３間では、ＳＤＲＡＭ４の動作クロック周波数ｆs'に従ってバースト転送が行われる。このようにバッファ５が介在することによって、互いの動作クロック周波数ｆc'およびｆs'の違いに関係なくＣＰＵ２およびＳＤＲＡＭ４間でのバースト転送が可能となる。
【０００４】
なお、バッファ５が設けられていないとすると、つまりＣＰＵ２およびＳＤＲＡＭ４の一方からメモリコントローラ３にバースト転送されたデータがそのまま他方にバースト転送されるとすると、次のような不都合が生じる。たとえば、データの書き込み（ライト）時においては、図６（ａ）に示すように、当該書き込みの対象となるデータ（Ｄ０〜Ｄ４）がＣＰＵ２の動作クロック周波数ｆc'に従ってＣＰＵ２からメモリコントローラ３にバースト転送される。ここで、このメモリコントローラ３に転送されたデータが、図６（ｂ）に示すようにＳＤＲＡＭ４の動作クロック周波数ｆs'に従ってメモリコントローラ３からＳＤＲＡＭ４にバースト転送されるとすると、ＣＰＵ２の動作クロック周波数ｆc'との違いから、一部のデータ（Ｄ１およびＤ３）については重複して転送されてしまう。その結果、ＣＰＵ２がデータの書き込み先として予定していたアドレスと、当該データが実際に書き込まれたアドレスとに差異が生じ、アクセス動作が破綻する。このことは、データの読み出し（リード）時も同様である。よって、従来は上述の如くバッファ５を設けることで、互いに動作クロック周波数ｆc'およびｆs'の異なるＣＰＵ２およびＳＤＲＡＭ４間でも適切にバースト転送が行われるようにしていた。
【０００５】
【発明が解決しようとする課題】
しかし、上述の従来技術では、転送対象となるデータが一旦バッファ５に蓄積される分、当該データの転送処理に時間が掛かり、ひいてはメモリアクセス回路１０全体のアクセス動作が遅くなる、という問題がある。
【０００６】
それゆえに、この発明の主たる目的は、バッファを設けることなく互いに動作クロックの異なるメモリとの間でバースト転送をすることができる、メモリアクセス回路を提供することである。
【０００７】
【課題を解決するための手段】
この発明は、第１クロックに応答してバースト転送されるデータの書き込み／読み出しのために第１クロックよりも高速の第２クロックに応答してメモリにアクセスするメモリアクセス回路において、第１クロックに応答して更新される数値を第２クロックに応答して取り込む取り込み手段、取り込み手段によって連続して取り込まれた２つの数値を互いに比較する比較手段、および比較手段の比較結果が一致を示すときメモリに対して供給される第２クロックを不能化する不能化手段を備えることを特徴とする、メモリアクセス回路である。
【０００８】
【作用】
この発明では、取り込み手段が、第１クロックに応答して更新される数値を第２クロックに応答して取り込む。そして、比較手段が、取り込み手段によって連続して取り込まれた２つの数値を互いに比較する。ここで、比較手段の比較結果が一致を示すとき、既にメモリに書き込まれたデータと同じデータが現在の書き込み対象となっているか、或いは既にメモリから読み出されたデータと同じデータが現在の読み出し対象となっていることになる。この場合、不能化手段が第２クロックを不能化するので、再度同じデータがメモリに書き込まれたり、或いは再度同じデータがメモリから読み出されたりすることはない。一方、比較手段の比較結果が不一致を示すときは、現在書き込み対象となっているデータが未だメモリに書き込まれていないか、或いは現在読み出し対象となっているデータが未だメモリから読み出されていないことになる。この場合、第２クロックは不能化手段によって不能化されないので、当該第２クロックに応答して適切にデータが書き込まれ、或いは読み出される。
【０００９】
なお、メモリは、クロックイネーブル端子を有するクロック同期型のメモリであるのが望ましい。この場合、不能化手段は、当該クロックイネーブル端子に所定信号を供給することによって第２クロックを不能化する。
【００１０】
【発明の効果】
この発明によれば、第１クロックに応答して転送されるデータはバッファを介することなく第２クロックに応答してメモリに書き込まれ、或いは当該メモリから読み出される。つまり、バッファを設けることなく互いに動作クロックの異なるメモリとの間でバースト転送することができる。
【００１１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００１２】
【実施例】
図１を参照して、この実施例のメモリアクセス回路１０は、ディジタルカメラに適用されるもので、オペレータの操作に応じて各種処理を実行するＣＰＵ１２，主記憶装置としてのＳＤＲＡＭ１４，ＣＰＵ１２によるＳＤＲＡＭ１４へのアクセスを制御するメモリコントローラ１６，２つの発振回路１８および２０を有している。なお、ＣＰＵ１２およびメモリコントローラ１６は、ＡＳＩＣ（Application Specified IC）２２によって一体に形成されている。また、ＡＳＩＣ１８は、後述するインタフェース回路２４をも備えている。
【００１３】
ＣＰＵ１２は、発振回路１８から発振される周波数ｆc＝６４[MHz]のクロック信号（以下、ＣＫ６４信号と言う。）に同期して動作し、ＳＤＲＡＭ１４は、発振回路２０から発振される周波数ｆs＝９６[MHz]のクロック信号（以下、ＣＫ９６信号と言う。）に同期して動作する。このように互いに動作クロック周波数ｆcおよびｆsの異なるＣＰＵ１２およびＳＤＲＡＭ１４間でバースト転送方式に基づくデータ転送を可能とするために、メモリコントローラ１６は、次のように構成されている。
【００１４】
すなわち、メモリコントローラ１６は、制御信号生成回路２６，アドレスコンバータ２８，ＡＣＫ（Acknowledge）信号生成回路３０，Ｒｅａｄｙ信号生成回路３２，カウンタ３４，コンパレータ３６，２つのフリップフロップ３８および４０，ＣＫＥ（Clock Enable）信号生成回路４２，およびそれぞれ複数（この実施例のメモリアクセス回路１０が取り扱うデータのビット数分）のフリップフロップを備えた５つのフリップフロップ群４４〜５２を含む。また、これらのうちＲｅａｄｙ信号生成回路３２，カウンタ３４，フリップフロップ群４４および５２は、ＣＫ６４信号に同期して動作し、これ以外の回路は、ＣＫ９６信号に同期して動作する。
【００１５】
ここで、ＣＰＵ１２からデータの書き込み指示または読み出し指示を含む制御信号が出力されると、この制御信号は、制御信号生成回路２６に入力される。これと同時に、ＣＰＵ１２は、データの書き込み先アドレスまたは読み出し元アドレスを指定するためのアドレス信号を出力し、このアドレス信号は、アドレスコンバータ２８に入力される。制御信号生成回路２６は、制御信号の入力に応答してアドレスコンバータ２８の出力タイミングを制御する。これによって、アドレス信号に含まれるロウアドレス信号およびカラムアドレス信号が適切なタイミングでアドレスコンバータ２８から出力され、アドレスバス６０を介してＳＤＲＡＭ１４に入力される。
【００１６】
制御信号生成回路２６はまた、上述の制御信号に基づいてＣＳ（Chip Select）信号やＲＡＳ（Row Address Strobe）信号，ＣＡＳ（Column Address Strobe）信号，ＷＥ（Write Enable）信号などの所定のメモリ制御信号を生成する。生成されたメモリ制御信号は、コントロールバス６２を介してＳＤＲＡＭ１４に入力される。
【００１７】
さらに、制御信号生成回路２６は、ＣＰＵ１２からの制御信号の入力に応答してインタフェース回路２４の入出力切換動作を制御する。これによって、データの書き込み時においては、インタフェース回路２４を構成する出力ゲート２４ａが能動化され、入力ゲート２４ｂが不能化される。一方、データの読み出し時においては、出力ゲート２４ａが不能化され、入力ゲート２４ｂが能動化される。
【００１８】
ＣＰＵ１２から出力される制御信号は、ＡＣＫ信号生成回路３０にも入力される。ＡＣＫ信号生成回路３０は、当該制御信号の入力に応答して、ＣＰＵ１２によるＳＤＲＡＭ１４へのアクセスを許可するためのアクティブ“Ｌ（ロー）”のＡＣＫ信号を生成し、生成したＡＣＫ信号をＲｅａｄｙ信号生成回路３２に入力する。
【００１９】
Ｒｅａｄｙ信号生成回路３２は、ＡＣＫ信号の入力に応答してアクティブ“Ｈ（ハイ）”のＲｅａｄｙ信号を生成し、生成したＲｅａｄｙ信号をＣＰＵ１２に入力する。このＲｅａｄｙ信号の入力に応答して、ＣＰＵ１２は、バースト転送方式に基づくデータ転送を開始する。
【００２０】
さらに、上述のＡＣＫ信号は、カウンタ３４にも入力され、カウンタ３４は、当該ＡＫＣ信号の入力に応答してカウント動作を開始する。具体的には、カウンタ３４は、ＣＫ６４信号の立ち上がりに同期して“１”および“２”という数値を繰り返し交互にカウントする。このカウント後のＣＮＴ（Count）信号は、コンパレータ３６およびフリップフロップ３８に入力される。
【００２１】
フリップフロップ３８は、入力されたＣＮＴ信号で表される数値（信号レベル）をＣＫ９６信号の立ち上がりに同期して捉えることによってＣＮＴ’信号を生成し、生成したＣＮＴ’信号をコンパレータ３６およびフリップフロップ４０に入力する。フリップフロップ４０は、入力されたＣＮＴ’信号で表される数値をＣＫ９６信号の立ち上がりに同期して捉えることによってＣＮＴ”信号を生成し、生成したＣＮＴ”信号をコンパレータ３６に入力する。なお、ＣＮＴ”信号は、ＣＮＴ’信号よりもＣＫ９６信号の１周期分だけ位相を遅らせた信号となる。
【００２２】
コンパレータ３６には、ＣＮＴ信号，ＣＮＴ’信号およびＣＮＴ”信号の他に、ＣＰＵ１２から上述の制御信号が入力されるとともに、ＡＣＫ信号生成回路３０から当該コンパレータ３６の動作を能動化するためのアクティブ“Ｌ”のＣＭＰＥ（Comparator Enable）信号が入力される。
【００２３】
コンパレータ３６は、ＣＰＵ１２からの制御信号によってデータの書き込みが指示されており、かつＣＭＰＥ信号のレベルが“Ｌ”レベルのときに、ＣＮＴ信号で表される数値とＣＮＴ’信号で表される数値とを比較し、その比較結果を表すＣＯＭＰ（Comparison）信号を出力する。一方、ＣＰＵ１２からの制御信号によってデータの読み出しが指示されており、かつＣＭＰＥ信号のレベルが“Ｌ”レベルのとき、コンパレータ３６は、ＣＮＴ’信号で表される数値とＣＮＴ”信号で表される数値とを比較し、ＣＯＭＰ信号を出力する。なお、コンパレータ３６による比較結果が一致を示すとき、ＣＯＭＰ信号のレベルは“Ｈ”レベルとなり、当該比較結果が不一致を示すとき、ＣＯＭＰ信号のレベルは“Ｌ”レベルとなる。また、ＣＭＰＥ信号のレベルが“Ｈ”レベルのときは、コンパレータ３６の動作は不能化され、ＣＯＭＰ信号のレベルは“Ｌ”レベルとなる。
【００２４】
ＣＫＥ信号生成回路４２は、図２に示すように反転回路７０およびフリップフロップ７２を含む。コンパレータ３６から入力されたＣＯＭＰ信号は、反転回路７０においてレベル反転処理を施された後、フリップフロップ７２に入力される。フリップフロップ７２は、当該レベル反転後の信号のレベルをＣＫ９６信号に同期して捕らえることによってＣＫＥ信号を生成する。生成されたＣＫＥ信号は、コントロールバス６２を介してＳＤＲＡＭ１４に入力される。このＣＫＥ信号は、後述するようにＳＤＲＡＭ１４内においてＣＫ９６信号の作用を一時的に不能化するのに用いられる。
【００２５】
なお、データの書き込み時においては、当該書き込みの対象となるデータＷＤ（Write Data）はＣＰＵ１２から出力される。このデータＷＤは、メモリコントローラ１６内のフリップフロップ群４４に入力され、ここでＣＫ６４信号の１周期分の位相遅延処理を施された後、フリップフロップ群４６に入力される。フリップフロップ群４６は、フリップフロップ群４４から入力される遅延後のデータＷＤ’の値（各ビットの信号レベル）をＣＫ９６信号に同期して捉える。このフリップフロップ群４６による処理後のデータＷＤ”は、フリップフロップ群４８に入力され、ここでＣＫ９６信号の１周期分の位相遅延処理を施された後、インタフェース回路２４（出力ゲート２４ａ）およびデータバス６４を介してＳＤＲＡＭ１４に入力される。
【００２６】
一方、データの読み出し時においては、ＳＤＲＡＭ１４から読み出されたデータＳＤは、データバス６４およびインタフェース回路２４（入力ゲート２４ｂ）を介してフリップフロップ群５０に入力される。フリップフロップ群５０は、入力されたデータＳＤの位相をＣＫ９６信号の１周期分だけ遅延させた後、この遅延後のデータＳＤ’をフリップフロップ群５２に入力する。フリップフロップ群５２は、入力されたデータＳＤ’の値をＣＫ６４信号に同期して取り込み、このフリップフロップ群５２による処理後のデータＲＤが、ＣＰＵ１２に入力される。なお、フリップフロップ群５２には、上述したＲｅａｄｙ信号生成回路３２からＲｅａｄｙ信号が供給されており、フリップフロップ５２は、当該Ｒｅａｄｙ信号のレベルが“Ｈ”レベルであるときにのみデータＲＤを出力する。
【００２７】
図３を参照して、データの書き込み時における各要部の動作タイミングを説明する。ＣＰＵ１２から書き込み指示を含む制御信号が出力されると、図３（ａ）に示すＣＫ９６信号の立ち上がりに同期して、或る時点ｔ1において、図３（ｂ）に示すＡＣＫ信号のレベルが“Ｈ”レベルから“Ｌ”レベルに変化する。そして、このＡＣＫ信号のレベルが“Ｌ”レベルになった後、図３（ｃ）に示すＣＫ６４信号の最初の立ち上がり時点ｔ2において、Ｒｅａｄｙ信号のレベルが“Ｌ”レベルから“Ｈ”レベルに変化する。
【００２８】
この時点ｔ2においてＲｅａｄｙ信号のレベルが“Ｈ”レベルになることによって、ＣＰＵ１２からメモリコントローラ１６に対して、図３（ｅ）に示す書き込み対象となるデータＷＤの転送が開始される。このデータＷＤは、ＣＫ６４信号に同期して所定量（Ｄ０〜Ｄ７）だけ連続して転送され、つまりバースト転送される。なお、図には示さないが、このデータＷＤの転送とともに当該データＷＤに対応するアドレス信号もＣＰＵ１２からメモリコントローラ１６に転送される。
【００２９】
また、時点ｔ2において、カウンタ３４によるカウント動作が開始される。これによって、図３（ｆ）に示すように、ＣＫ６４信号の立ち上がりに同期して“１”および“２”という値を繰り返し交互に表すＣＮＴ信号が生成される。このＣＮＴ信号はフリップフロップ３８で処理され、これによって図３（ｇ）に示すようなＣＮＴ’信号が生成される。すなわち、ＣＮＴ’信号は、ＣＫ６４信号に同期して更新されるＣＮＴ信号の値を、当該ＣＫ６４信号の１．５倍の周波数の信号であるＣＫ９６信号に同期して捉えた信号であるため、当該ＣＮＴ’信号によって表される値はＣＫ９６信号の２周期おきにその前の周期と同じ値になる。したがって、ＣＮＴ’信号によって表される値は、ＣＫ９６信号の立ち上がりに同期して“１”→“１”→“２”という順番で繰り返し更新される。
【００３０】
ＡＣＫ信号のレベルが“Ｌ”レベルになった時点ｔ1から数えてＣＫ９６信号の３つ目の立ち上がり時点ｔ3において、図３（ｈ）に示すＣＭＰＥ信号のレベルが“Ｈ”レベルから“Ｌ”レベルに変化し、これによってコンパレータ３６による比較動作が開始される。上述したように、コンパレータ３６は、データの書き込み時においてはＣＮＴ信号とＣＮＴ’信号とを比較するため、その比較結果であるＣＯＭＰ信号は、図３（ｉ）に示すような信号となる。なお、図３においては、ＣＯＭＰ信号の立ち上がりまたは立ち下がりのタイミングは、ＣＫ９６信号の立ち上がりまたは立ち下がりのタイミングと一致しているが、実際には、ＣＯＭＰ信号の立ち上がりまたは立ち下がりのタイミングは、ＣＫ９６信号の立ち上がりまたは立ち下がりのタイミングよりも、コンパレータ３６の処理速度に応じた時間だけ遅れる。
【００３１】
このＣＯＭＰ信号はＣＫＥ信号生成回路４２に入力され、これによって図３（ｊ）に示すようなＣＫＥ信号が生成される。ここで、ＣＭＰＥ信号のレベルが“Ｌ”レベルであるときのＣＫＥ信号とＣＮＴ’信号との関係に注目すると、ＣＫ９６信号の或る周期においてＣＮＴ’信号で表される値が当該或る周期の前の周期にＣＮＴ’信号で表される値と同じであるとき、つまりＣＮＴ’信号で表される値がＣＫ９６信号の２周期にわたって同じであるときに、ＣＫＥ信号のレベルが“Ｌ”レベルになる。このＣＫＥ信号は、コントロールバス６２を介してＳＤＲＡＭ１４に入力される。なお、図３からは判らないが、このＣＫＥ信号の立ち上がりまたは立ち下がりのタイミングも、ＣＫ９６信号の立ち上がりまたは立ち下がりのタイミングよりも若干遅れる。
【００３２】
ＳＤＲＡＭ１４は、上述したようにＣＫ９６信号に同期して動作するが、ＣＫＥ信号のレベルが“Ｌ”レベルであるとき、当該ＳＤＲＡＭ１４の動作は不能化される。具体的には、ＳＤＲＡＭ１４内においては、図３（ｊ）および図３（ｋ）に示すように、ＣＫ９６信号の立ち上がりの時点でＣＫＥ信号のレベルが“Ｌ”レベルであるとき、その次のＣＫ９６信号の立ち上がり（点線８０で示されるパルス）がマスクされる。つまり、ＳＤＲＡＭ１４内においては、ＣＫ９６信号の立ち上がりは２周期おきにマスクされる。このマスクされた期間中は、ＳＤＲＡＭ１４に対してデータは書き込まれない。
【００３３】
一方、書き込み対象となるデータＷＤは、フリップフロップ群４４で処理され、これによって図３（ｍ）に示すようにデータＷＤよりもＣＫ６４信号の１周期分だけ位相の遅いデータＷＤ’が生成される。このデータＷＤ’は、フリップフロップ群４６で処理され、これによって図３（ｎ）に示すようなデータＷＤ”が生成される。すなわち、データＷＤ”は、ＣＫ６４信号に同期して更新されるデータＷＤ’の内容（Ｄ０〜Ｄ７）を、当該ＣＫ６４信号の１．５倍の周波数の信号であるＣＫ９６信号に同期して捉えたデータであるため、当該データＷＤ”の内容はＣＫ９６信号の２周期おきにその前の周期と同じ内容（Ｄ１，Ｄ３，Ｄ５およびＤ７）になる。
【００３４】
このデータＷＤ”は、さらにフリップフロップ群４８によってＣＫ９６信号の１周期分の位相遅延処理を施されるので、ＳＤＲＡＭ１４には図３（ｏ）に示すようなデータＳＤが入力される。なお、このデータＳＤは、インタフェース回路２４およびデータバス６４を介してＳＤＲＡＭ１４に入力されるので、その分、図３（ｏ）に誇張して示すように、当該データＳＤのタイミングはＣＫ９６信号の立ち上がりタイミングよりも遅れる。
【００３５】
このようにＳＤＲＡＭ１４に入力されるデータＳＤの内容はＣＫ９６信号の２周期おきにその前の周期と同じ内容（Ｄ１，Ｄ３，Ｄ５およびＤ７）になるが、このタイミングに合わせてＣＫ９６信号の動作が１周期分だけ不能化されるので、当該同じ内容がＳＤＲＡＭ１４に重複して書き込まれることはない。したがって、データＳＤ（Ｄ０〜Ｄ７）は当初予定されていたアドレスに適切に書き込まれる。
【００３６】
なお、ＣＰＵ１２から所定量のデータＷＤが出力された時点ｔ4で、Ｒｅａｄｙ信号のレベルは“Ｈ”レベルから“Ｌ”レベルに戻る。そして、この時点ｔ4からＣＫ６４信号１周期分の後、ＣＫ９６信号の１つ目の立ち上がり時点ｔ5で、ＡＣＫ信号のレベルが“Ｌ”レベルから“Ｈ”レベルに戻る。これと同時に、ＣＭＰＥ信号のレベルも、“Ｌ”レベルから“Ｈ”レベルに変化する。そして、時点ｔ5の後、ＣＫ６４信号が最初に立ち上がる時点ｔ6で、カウンタ３４によるカウント動作が停止し、一連の書き込み動作が終了する。
【００３７】
次に、図４を参照して、データの読み出し時における各要部の動作タイミングを説明する。ＣＰＵ１２から読み出し指示を含む制御信号が出力されると、図４（ａ）に示すＣＫ９６信号の立ち上がりに同期して、或る時点ｔ11において、図４（ｂ）に示すＡＣＫ信号のレベルが“Ｈ”レベルから“Ｌ”レベルに変化する。なお、図には示さないが、ＣＰＵ１２は、制御信号の出力とともに、読み出し対象となるデータのアドレスを指定するためのアドレス信号をも出力する。
【００３８】
ＡＣＫ信号のレベルが“Ｌ”レベルになった後、図４（ｃ）に示すＣＫ６４信号の最初に立ち上がり時点ｔ12において、カウンタ３４によるカウント動作が開始され、これによって図４（ｄ）に示すようにＣＫ６４信号の立ち上がりに同期して“１”および“２”という値を交互に表すＣＮＴ信号が生成される。このＣＮＴ信号はフリップフロップ３８で処理され、これによって図４（ｅ）に示すように上述した図３（ｇ）と同様のＣＮＴ’信号が生成される。さらに、このＣＮＴ’信号はフリップフロップ４０で処理され、これによって図４（ｆ）に示すように当該ＣＮＴ’信号よりもＣＫ９６信号の１周期分だけ位相の遅れたＣＮＴ”信号が生成される。
【００３９】
ＡＣＫ信号のレベルが“Ｌ”レベルになった時点ｔ11から数えてＣＫ９６信号の５つ目の立ち上がり時点ｔ13において、ＣＭＰＥ信号のレベルが“Ｈ”レベルから“Ｌ”レベルに変化し、これによってコンパレータ３６による比較動作が開始される。上述したように、コンパレータ３６は、データの読み出し時においてはＣＮＴ’信号とＣＮＴ”信号とを比較するため、その比較結果であるＣＯＭＰ信号は、図４（ｈ）に示すような信号となる。
【００４０】
このＣＯＭＰ信号はＣＫＥ信号生成回路４２に入力され、これによって図４（ｉ）に示すようなＣＫＥ信号が生成される。ここで、ＣＭＰＥ信号のレベルが“Ｌ”レベルであるときのＣＫＥ信号とＣＮＴ”信号との関係に注目すると、ＣＫ９６信号の或る周期においてＣＮＴ”信号で表される値が当該或る周期の前の周期にＣＮＴ”信号で表される値と同じであるとき、つまりＣＮＴ”信号で表される値がＣＫ９６信号の２周期にわたって同じであるときに、ＣＫＥ信号のレベルが“Ｌ”レベルになる。このＣＫＥ信号はコントロールバス６２を介してＳＤＲＡＭ１４に入力される。
【００４１】
ＳＤＲＡＭ１４内においては、図４（ｊ）に点線８２で示すように、ＣＫＥ信号のレベルが“Ｌ”レベルとなった次のタイミングでＣＫ９６信号の立ち上がりがマスクされる。つまり、ＣＫ９６信号の立ち上がりは２周期おきにマスクされる。そして、このようなＣＫ９６信号の立ち上がりに同期してＳＤＲＡＭ１４から読み出されるデータＳＤは、図４（ｋ）に示すようなデータとなる。すなわち、ＣＫ９６信号の立ち上がりに同期して１つのデータＤ０が読み出された後、次のデータＤ１がＣＫ９６信号の２周期にわたって連続して読み出され、これ以降のデータＤ２〜Ｄ７も同様のタイミングで読み出される。なお、図４（ｋ）においては、読み出し対象以外のデータＤ８〜ＤＢもＳＤＲＡＭ１４から読み出されているが、これらのデータＤ８〜ＤＢは、後述するように途中で（フリップフロップ群５２によって）無効とされる。
【００４２】
ＳＤＲＡＭ１４から読み出されたデータＳＤは、フリップフロップ群５０によって処理され、これによって図４（ｍ）に示すように当該データＳＤよりもＣＫ９６信号の１周期分だけ位相の遅れたデータＳＤ’が生成される。そして、このデータＳＤ’は、フリップフロップ群５２で処理されることによって、図４（ｎ）に示すようにＣＫ６４信号の立ち上がりに同期して内容が更新されるデータＲＤとなる。そして、このデータＲＤは、ＣＰＵ１２に転送される。
【００４３】
なお、データＲＤの転送開始時点ｔ14に合わせてＲｅａｄｙ信号のレベルが“Ｌ”レベルから“Ｈ”レベルに変化する。具体的には、ＡＣＫ信号のレベルが“Ｌ”レベルになった時点ｔ11からＣＫ９６信号８周期分の後、ＣＫ６４信号の１つ目の立ち上がり時点ｔ14で、Ｒｅａｄｙ信号のレベルが“Ｌ”レベルから“Ｈ”レベルに変化する。そして、読み出し対象であるデータＲＤ（Ｄ０〜Ｄ７）の読み出しが完了した時点ｔ15で、Ｒｅａｄｙ信号のレベルは“Ｈ”レベルから“Ｌ”レベルに戻る。
【００４４】
このＲｅａｄｙ信号は、上述したようにフリップフロップ群５２にも入力されており、フリップフロップ群５２の動作は、Ｒｅａｄｙ信号のレベルが“Ｈ”レベルであるときにのみ有効化される。したがって、読み出し対象以外のデータＤ８〜ＤＢは不能化され、ＣＰＵ１２には転送されない。
【００４５】
さらに、この時点ｔ15においては、ＣＯＭＰ信号のレベルも“Ｌ”レベルから“Ｈ”レベルに戻る。そして、この時点ｔ15の後、ＣＫ９６信号の最初に立ち上がり時点ｔ16において、ＡＣＫ信号のレベルが“Ｌ”レベルから“Ｈ”レベルに戻り、この時点t16の後、ＣＫ６４信号の最初の立ち上がり時点ｔ17で、カウンタ３４によるカウント動作が停止し、一連の読み出し動作が終了する。
【００４６】
以上の説明から判るように、メモリコントローラ１６内においては、ＣＫ６４信号に同期してカウンタ３４がカウント動作を行い、このカウンタ３４によるカウント値がＣＫ９６信号に同期して取り込まれる。そして、この取り込まれた値がＣＫ９６信号の２周期にわたって連続して同じ値となるとき、ＳＤＲＡＭ１４へのデータの書き込み動作、或いはＳＤＲＡＭ１４からのデータの読み出し動作が停止される。よって、ＳＤＲＡＭ１４に対して同じデータが連続して書き込まれたり、或いはＳＤＲＡＭ１４から同じデータが連続して読み出されたりすることはなく、適切なアクセス動作を実現できる。しかも、上述した従来技術のようなバッファ５が介在しなくても、ＣＰＵ１２およびＳＤＲＡＭ１４間でのバースト転送が可能であるので、従来よりも高速なアクセス動作を実現できる。
【００４７】
なお、この実施例では、ディジタルカメラにこの発明を適用する場合について説明したが、ディジタルカメラ以外の電子機器にもこの発明を適用できることは言うまでもない。
【００４８】
また、ＣＰＵ１２およびＳＤＲＡＭ１４の各動作クロック周波数ｆcおよびｆsについては、この実施例で説明した値に限定されるものではない。
【００４９】
さらに、ＣＰＵ１２，メモリコントローラ１６およびインタフェース回路２４は、ＡＳＩＣ２２によって一体に形成されたものとしたが、各々個別の構成としてもよい。
【００５０】
そして、ＣＰＵ１２からＳＤＲＡＭ１４へのデータの書き込み時においては、コンパレータ３６によるＣＮＴ信号およびＣＮＴ’信号の比較結果に基づいてＣＫＥ信号を生成したが、これに限らない。たとえば、データの読み出し時と同様、データの書き込み時においてもＣＮＴ’信号およびＣＮＴ”信号の比較結果に基づいてＣＫＥ信号を生成してもよい。また、データの読み出し時におけるＣＫＥ信号を、ＣＮＴ信号およびＣＮＴ’信号の比較結果に基づいて生成してもよい。さらに、この実施例で説明した以外の回路構成によってＣＫＥ信号を生成してもよい。
【図面の簡単な説明】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】図１におけるＣＫＥ信号生成回路の詳細を示すブロック図である。
【図３】図１の実施例においてデータ書き込み時の各要部の動作を示すタイミング図である。
【図４】図１の実施例においてデータ読み出し時の各要部の動作を示すタイミング図である。
【図５】従来のメモリアクセス回路の構成を示すブロック図である。
【図６】図５の従来技術における問題点を説明するためのタイミング図である。
【符号の説明】
１０…メモリアクセス回路
１２…ＣＰＵ
１４…ＳＤＲＡＭ
１６…メモリコントローラ
１８，２０…発振回路
３４…カウンタ
３６…コンパレータ
４２…ＣＫＥ生成回路
【図１】
0003744880.tif 000002
【図２】
0003744880.tif 000003
【図３】
0003744880.tif 000004
【図４】
0003744880.tif 000005
【図５】
0003744880.tif 000006
【図６】
0003744880.tif 000007