(57)【要約】【課題】それぞれが異なる周波数のクロック信号で動作する複数のメモリを単一の基準信号に基づいて駆動しつつ、データの読み書きのタイミングマージンを確保したメモリ制御装置などを提供する。【解決手段】メモリコントローラ４０は、基準となる信号（基準信号ＣＫ）を発生する位相同期回路ＰＬＬ４１、基準信号ＣＫの周波数Ｆを１／ｍ（ｍは２以上の整数）に分周してクロック信号ＣＫ０を生成する分周器４２、同様に基準信号ＣＫの周波数Ｆを１／ｎ（ｎは２以上の整数であって、ｍ＜ｎ）に分周してクロック信号ＣＫ１を生成する分周器４３、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０へのデータの読み書きのタイミングを設定するタイミング設定部４４を備えている。【選択図】図２
2015014836.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号で動作する第１のメモリに、基準信号に基づいて当該第１のクロック信号を生成して供給する第１のクロック信号生成供給部と、
前記第１のクロック信号より周波数が低い第２のクロック信号で動作する第２のメモリに、前記基準信号に基づいて当該第２のクロック信号を生成して供給する第２のクロック信号生成供給部と、
前記基準信号に基づいて、前記第１のメモリ及び前記第２のメモリへのデータの書き込みタイミング及び読み出しタイミングを設定するタイミング設定部と
を備えるメモリ制御装置。
【請求項２】
前記基準信号を発生する基準信号発生部をさらに備えることを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
算術演算および論理演算を行う演算部と、
第１のクロック信号で動作する第１のメモリと、
前記第１のクロック信号より周波数が低い第２のクロック信号で動作する第２のメモリと、
予め定められた周波数の基準信号を発生する基準信号発生部と、
前記基準信号に基づいて前記第１のクロック信号を生成して、前記第１のメモリに供給する第１のクロック信号生成供給部と、
前記基準信号に基づいて前記第２のクロック信号を生成して、前記第２のメモリに供給する第２のクロック信号生成供給部と、
前記基準信号に基づいて、前記第１のメモリ及び前記第２のメモリへのデータの書き込みタイミング及び読み出しタイミングを設定するタイミング設定部と
を備える情報処理装置。
【請求項４】
前記第１のメモリは、読み書き可能な揮発性メモリであり、前記第２のメモリは、読み書き可能な不揮発性メモリであることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２のメモリは、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項３又は４に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置及び情報処理装置に関する。
【背景技術】
【０００２】
公報記載の従来技術として、入力されるクロック信号に基づいて、新たなクロック信号を生成するクロック発生装置において、前記入力クロック信号から、入力クロック信号とはデューティの異なる複数クロック信号を発生させる手段と、前記複数のクロック信号の１つをクロック信号の１つのサイクル毎に選択するセレクタとを備え、前記入力クロックと周波数が同一で、毎サイクルデューティの異なるクロック信号を発生させるクロック発生装置が存在する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２６７８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、それぞれが異なる周波数のクロック信号で動作する複数のメモリを単一の基準信号に基づいて駆動しつつ、データの読み書きのタイミングマージンを確保したメモリ制御装置などを提供する。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、第１のクロック信号で動作する第１のメモリに、基準信号に基づいて当該第１のクロック信号を生成して供給する第１のクロック信号生成供給部と、前記第１のクロック信号より周波数が低い第２のクロック信号で動作する第２のメモリに、前記基準信号に基づいて当該第２のクロック信号を生成して供給する第２のクロック信号生成供給部と、前記基準信号に基づいて、前記第１のメモリ及び前記第２のメモリへのデータの書き込みタイミング及び読み出しタイミングを設定するタイミング設定部とを備えるメモリ制御装置である。
請求項２に記載の発明は、前記基準信号を発生する基準信号発生部をさらに備えることを特徴とする請求項１に記載のメモリ制御装置である。
請求項３に記載の発明は、算術演算および論理演算を行う演算部と、第１のクロック信号で動作する第１のメモリと、前記第１のクロック信号より周波数が低い第２のクロック信号で動作する第２のメモリと、予め定められた周波数の基準信号を発生する基準信号発生部と、前記基準信号に基づいて前記第１のクロック信号を生成して、前記第１のメモリに供給する第１のクロック信号生成供給部と、前記基準信号に基づいて前記第２のクロック信号を生成して、前記第２のメモリに供給する第２のクロック信号生成供給部と、前記基準信号に基づいて、前記第１のメモリ及び前記第２のメモリへのデータの書き込みタイミング及び読み出しタイミングを設定するタイミング設定部とを備える情報処理装置である。
請求項４に記載の発明は、前記第１のメモリは、読み書き可能な揮発性メモリであり、前記第２のメモリは、読み書き可能な不揮発性メモリであることを特徴とする請求項３に記載の情報処理装置である。
請求項５に記載の発明は、前記第２のメモリは、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項３又は４に記載の情報処理装置である。
【発明の効果】
【０００６】
請求項１の発明によれば、本構成を備えない場合に比べ、それぞれが異なる周波数のクロック信号で動作する複数のメモリを単一の基準信号に基づいて駆動しつつ、データの読み書きのタイミングマージンを確保できる。
請求項２の発明によれば、本構成を備えない場合に比べ、ノイズの影響による誤動作が抑制できる。
請求項３の発明によれば、本構成を備えない場合に比べ、それぞれが異なる周波数のクロック信号で動作する複数のメモリを単一の基準信号に基づいて駆動しつつ、データの読み書きのタイミングマージンを確保して、情報処理ができる。
請求項４の発明によれば、本構成を備えない場合に比べ、情報処理装置が動作可能になるまでの待ち時間を短くできる。
請求項５の発明によれば、本構成を備えない場合に比べ、情報処理装置が動作可能になるまでの待ち時間をさらに短くできる。
【図面の簡単な説明】
【０００７】
【図１】本実施の形態が適用される情報処理装置の全体構成の一例を示した図である。
【図２】本実施の形態におけるメモリコントローラの構成の一例を示す図である。
【図３】メモリコントローラの動作を説明するタイミングチャートである。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
（情報処理装置１）
図１は、本実施の形態が適用される情報処理装置１の全体構成の一例を示した図である。
情報処理装置１は、論理演算及び算術演算を行うＡＬＵ（Ａｌｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ：論理算術演算ユニット）などを備えた演算部の一例としての中央演算処理ユニット（ＣＰＵと表記する。）１０、読み書き可能な第１のメモリの一例としての揮発性ＲＡＭ２０、揮発性ＲＡＭ２０に比べて読み書きの速度が遅い読み書き可能な第２のメモリの一例としての不揮発性ＲＡＭ３０を備えている。ここでは、揮発性ＲＡＭ２０、不揮発性ＲＡＭ３０をそれぞれ区別しないときはメモリと表記する。そして、情報処理装置１は、揮発性ＲＡＭ２０、不揮発性ＲＡＭ３０を制御するメモリ制御装置の一例としてのメモリコントローラ４０、ＣＰＵ１０とメモリコントローラ４０との間で、命令（コマンド）、アドレス、定数などのデータを転送するバス５０を備えている。なお、バス５０は、並行する複数の配線で構成され、それぞれの配線上をデータが電気信号として伝送される。
【０００９】
揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０には、ＣＰＵ１０によって順に読み込まれて実行されるプログラムが“１”／“０”のデータとして記憶されている。また、プログラムには、ＣＰＵ１０に実行させる命令（コマンド）の他に、次に実行する命令や読み出す定数が記憶されたアドレスなども含まれる。ここでは、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０に記憶されているプログラム、アドレス、定数などをデータ又はデータ（“１”／“０”）と表記する。
【００１０】
なお、ＣＰＵ１０とバス５０との間に、バスブリッジを設けてもよい。バスブリッジには、揮発性ＲＡＭ２０、不揮発性ＲＡＭ３０に接続されるバス５０の他に、情報処理装置１に接続される周辺デバイスとのインタフェース（Ｉ／Ｆ）に接続されて、データを伝送するＰＣＩバスなどが接続される。一般に、バス５０は、ＰＣＩバスなどに比べて、データなどの転送速度が速い。この場合、バス５０は、メモリバスと表記されることがある。
【００１１】
次に、情報処理装置１における接続関係を説明する。
ＣＰＵ１０及びメモリコントローラ４０は、バス５０に並列に接続されている。そして、ＣＰＵ１０とメモリコントローラ４０との間で、データが双方向に送受信可能になっている。
そして、メモリコントローラ４０に、揮発性ＲＡＭ２０、不揮発性ＲＡＭ３０が並列に接続されている。そして、メモリコントローラ４０と揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０との間でデータを送受信できるようになっている。すなわち、本実施の形態では、揮発性ＲＡＭ２０、不揮発性ＲＡＭ３０は、一つのメモリコントローラ４０によって制御されている。
なお、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０に対してアドレスが送信され、そのアドレスで指定された領域からデータを読み出すこと、又はそのアドレスで指定された領域にデータを書き込んで記憶させることを、データ（“１”／“０”）を読み書きすると表記する。
【００１２】
情報処理装置１は、ＣＰＵ１０が、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０に記憶された命令に基づいて、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０に記憶されたデータに対して論理演算及び算術演算などを行なうことにより、所謂情報処理を行なう。
なお、情報処理装置１は、前述した周辺デバイスの例として、ディスプレイなどで構成された表示装置、キーボード、マウスなどの入力装置、通信回線との間でデータの送受信を行なう送受信装置などと接続するためのインタフェース（Ｉ／Ｆ）をさらに備えていてもよい。また、情報処理装置１は、表示装置、入力装置、送受信装置などを含んだものとしてもよい。
【００１３】
（揮発性ＲＡＭ２０）
ここで、揮発性ＲＡＭ２０を説明する。
揮発性ＲＡＭ２０は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）やＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）であって、電源が供給されていなければ、記憶しているデータ（“１”／“０”）を保持することができない揮発性メモリによって構成されている。
ＤＲＡＭは、データの読み書きに要する時間（アクセス時間）を短くできるように構成され、１ビットの当たりに占める面積も小さい。このため、大容量且つ高速なアクセスを必要とする場合に使用される。最近では、ＤＲＡＭの外部のクロック信号（外部クロック信号）の立上りタイミング及び立下りタイミングにおいてデータの読み書きができるＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）のシンクロナス型ＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）が使用されるようになっている。これにより、外部クロック信号の立上りタイミング又は立下りタイミングのいずれか一方においてデータの読み書きを行なうＳＤＲ（Ｓｉｎｇｌｅ  Ｄａｔａ  Ｒａｔｅ）  ＳＤＲＡＭに比べて、倍の速度でデータの読み書きができる。
【００１４】
また、ＤＲＡＭの内部に比べて、ＤＲＡＭが外部とデータのやり取りを行なうインタフェース部分は、ラッチとバッファとで構成されるので、高速化が可能である。よって、後述するＤＤＲ２  ＳＤＲＡＭ、ＤＤＲ３  ＳＤＲＡＭの規格では、ＤＲＡＭの内部におけるクロック信号（内部クロック信号）の周波数に比べて、ＤＲＡＭの外部すなわちインタフェース部分のクロック信号（外部クロック信号）の周波数を高くして、ＤＲＡＭにおけるアクセスの高速化が図られている。
なお、ＤＤＲ  ＳＤＲＡＭの規格では、内部クロック信号の１クロックにおける読み書きの最小単位は連続する２ワードである。しかし、ＤＤＲでは、外部クロック信号の立上りタイミング及び立下りタイミングにおいて読み書きが行なわれるので、内部クロック信号の周波数と外部クロック信号の周波数とは同じである。
【００１５】
一方、ＤＤＲ２  ＳＤＲＡＭの規格では、内部クロック信号の１クロックにおける読み書きの最小単位は連続する４ワードである。よって、外部クロック信号の周波数は、内部クロック信号の周波数の２倍である。
さらに、ＤＤＲ３  ＳＤＲＡＭの規格では、内部クロック信号の１クロックにおける読み書きの最小単位は連続する８ワードである。よって、外部クロック信号の周波数は、内部クロック信号の周波数の４倍である。
外部クロック信号の周波数を高くする傾向は、今後も続くと考えられる。
ここでは、一例として、揮発性ＲＡＭ２０は、ＤＤＲ３  ＳＤＲＡＭであるとする。
【００１６】
上述したように、ＤＤＲ３  ＳＤＲＡＭなどでは、外部クロック信号の立上りタイミングと立下りタイミングにおいて、データを読み書きする。よって、外部クロック信号の周波数が高くなって、データを読み書きするタイミングがずれると、データの正常な読み書きができなくなるおそれがある。すなわち、データを読み書きするタイミングが重要となる。
データを読み書きするタイミングのずれは、配線などによる遅延、プロセスのばらつき、電圧の変動及び温度などにより発生する。
特に、外部クロック信号の周波数が高くなればなるほど１クロックの期間が短くなるため、データの読み書きタイミングは遅延などの影響を受けやすくなる。したがって、外部クロック信号の周波数を単に高くしただけでは、ＤＤＲ３  ＳＤＲＡＭを正常に動作させることが難しくなる。
【００１７】
そこで、ＤＤＲ３  ＳＤＲＡＭなどでは、外部クロック信号の立上りタイミング又は／及び立下りタイミングに対して、データの読み書きのタイミングをずらし（遅延させ）て、読み書きにおけるタイミングのマージン（タイミングマージン）を最大にすることが行なわれる（キャリブレーションと表記されることがある。）。
キャリブレーションは、例えば予め設定されたデータのパターンを、予め定められた複数の読み書きタイミングにて読み書きし、正常に読み書きができる読み書きタイミングを探索する。そして、データの読み書きにおけるタイミングマージンが最大になるように、読み書きタイミングを設定することで行なわれる。すなわち、データの読み書きにおけるタイミングマージンを確保することが求められる。
【００１８】
（不揮発性ＲＡＭ３０）
次に、不揮発性ＲＡＭ３０を説明する。
不揮発性ＲＡＭ３０は、例えば磁気メモリ（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ：ＭＲＡＭと表示する。）、強誘電体メモリ（ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ：ＦｅＲＡＭと表記する。）、相変化メモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ＲＡＭ：ＰＲＡＭと表記する。）、抵抗メモリ（ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ：ＲｅＲＡＭと表記する。）などであって、電源が供給されていなくとも、記憶しているデータ（“１”／“０”）を保持することができる不揮発性メモリによって構成されている。
ＭＲＡＭは、トンネル磁気抵抗膜を二つの磁性積層膜で挟み、二つの磁性積層膜の相対的な磁化方向によってトンネル磁気抵抗膜の磁気抵抗（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ：ＭＲ）が変化する現象を利用してデータを保持する。ＦｅＲＡＭは、ＰＺＴ（Ｐｂ（Ｚｒ、Ｔｉ）Ｏ３）などの強誘電体の分極を利用してデータを保持する。ＰＲＡＭは、カルコゲナイドの相変化にともなう抵抗変化を利用してデータを保持する。ＲｅＲＡＭは、電圧の印加による電気抵抗の大きな変化（ＣＥＲ（ｃｏｌｏｓｓａｌ  ｅｌｅｃｔｒｏ−ｒｅｓｉｓｔａｎｃｅ）効果）を利用してデータを保持する。
【００１９】
ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭなどは、ＤＲＡＭ、ＳＲＡＭと同様に、半導体基板上にメモリセル（１ビットのデータを保持する領域）をマトリクス状に高密度に配置でき、一体形成された駆動回路により、ＤＲＡＭなどと同様に読み書きができる。さらに、情報を書き換える回数（書き換え回数）の制限が原理的にない、または書き換え可能な回数が極めて大きい（以下では、書き換え回数の制限が小さいと表記する）。
このため、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭなどは、不揮発性ＲＡＭ３０に適用しやすい。
ここでは、一例として、不揮発性ＲＡＭ３０は、ＭＲＡＭであるとする。
【００２０】
なお、電源が供給されていなくとも、記憶しているデータ（“１”／“０”）を保持することができる不揮発性メモリには、ＭＯＳトランジスタのゲート電極（フローティングゲート）に蓄積した電荷の有無によりデータを保持するフラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などもある。フラッシュメモリおよびＥＥＰＲＯＭは、電気的にデータの読み書きができるが、前述のＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭなどに比べ、読み書きの速度、特に書き込みの速度が遅い。そして、フラッシュメモリ、ＥＥＰＲＯＭは、書き換え回数に制限がある。また、ＤＲＡＭなどと異なる読み書き手順を使用する。
【００２１】
揮発性ＲＡＭ２０は、電源が供給されていなければ記憶しているデータを保持することができないので、電源をオフからオンにした時、初期化及びデータの書き込みを行うことが必要である。
すなわち、基本プログラムであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、ＯＳ上で実行されて周辺デバイスを制御するプログラムであるアプリケーションなどを、揮発性ＲＡＭ２０に記憶させる場合には、電源をオフからオンにした際に、別途設けられたＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などからＯＳやアプリケーションなどを読み出して、揮発性ＲＡＭ２０に記憶させることが必要となる。このために、情報処理装置１が動作可能な状態になるまでに時間がかかる。
【００２２】
これに対して、不揮発性ＲＡＭ３０は、電源が供給されていなくても記憶したデータを保持できるので、データが記憶されていれば、電源をオフからオンにした場合であっても、初期化及びデータの書き込みを行なうことを要しない。
よって、情報処理装置１のＯＳやアプリケーションなどを不揮発性ＲＡＭ３０上で動作させれば、電源をオフにした後に再び電源をオンにした場合に、情報処理装置１が動作可能になるまでの待ち時間が短くなるとともに、情報処理装置１を電源がオフにされた時点から引き続いて動作させることができる。
【００２３】
しかし、不揮発性ＲＡＭ３０の読み書きに要する時間（アクセス時間）が揮発性ＲＡＭ２０に比べ遅い場合などには、揮発性ＲＡＭ２０と不揮発性ＲＡＭ３０とを併用することが好ましい。
例えば、情報処理装置１のＯＳやアプリケーションなどを不揮発性ＲＡＭ３０上で動作させるとともに、揮発性ＲＡＭ２０をワークエリアとして使用して情報処理を行なうようにすることができる。揮発性ＲＡＭ２０上のデータが一時的なデータであって、電源をオフにしたときに失われてもよい場合には、不揮発性ＲＡＭ３０のみを用いた場合と同様に、情報処理装置１が動作可能になるまでの待ち時間が短くなるとともに、情報処理装置１を電源がオフにされた時点から引き続いて動作させることができる。
【００２４】
揮発性ＲＡＭ２０と不揮発性ＲＡＭ３０とは、ともにデータを記憶するデバイスであるので、読み書きを制御する制御命令や読み書きの手順を同じにすることができる。
この場合、揮発性ＲＡＭ２０と不揮発性ＲＡＭ３０とでアクセス時間が異なることに起因して、クロック信号の周波数が異なるメモリコントローラを個別に用意することは、回路基板の面積及びコストの増大の点から好ましくない。すなわち、それぞれが異なる周波数のクロック信号で動作する複数のメモリを単一の基準信号に基づいて駆動できることが好ましい。
【００２５】
（メモリコントローラ４０）
図２は、本実施の形態におけるメモリコントローラ４０の構成の一例を示す図である。図２では、メモリコントローラ４０において揮発性ＲＡＭ２０に対するクロック信号ＣＫ０と不揮発性ＲＡＭ３０に対するクロック信号ＣＫ１を生成する部分及び読み書きのタイミングを設定する部分を示している。これらの部分は、所謂ＰＨＹ（物理層インタフェース）と呼ばれる部分である。
なお、クロック信号ＣＫ０、ＣＫ１は、上述の外部クロック信号に該当する。以下では、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０のそれぞれの内部クロック信号については説明を省略する。
【００２６】
メモリコントローラ４０は、前述したようにバス５０に接続されるとともに、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０に接続されている。図２では、メモリコントローラ４０は１個の揮発性ＲＡＭ２０及び１個の不揮発性ＲＡＭ３０に接続されているとする。
【００２７】
メモリコントローラ４０は、バス５０を構成する複数の配線のそれぞれに対応した複数の配線で、バス５０に接続されている。
一方、メモリコントローラ４０は、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０に対してアドレス信号ＡＤＲを送信するＡＤＲ端子、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０からデータ信号ＤＱの読み出し、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０へのデータ信号ＤＱの書き込みのためのＤＱ端子を備えている。さらに、メモリコントローラ４０は、揮発性ＲＡＭ２０を選択するためのチップセレクト信号ＣＳ０を送信するＣＳ０端子、不揮発性ＲＡＭ３０を選択するためのチップセレクト信号ＣＳ１を送信するＣＳ１端子を備えている。
ここでは、データ信号ＤＱをメモリコントローラ４０と揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０とで送受信される信号とし、データ信号ＤＱで送受信される内容をデータとする。
【００２８】
図２では図示を省略しているが、ＡＤＲ端子は複数の端子からなり、それぞれの端子に供給されるデータ（“１”／“０”）によりビットパラレル（例えば１４ビット）で、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０においてデータが記憶されている領域を指定する。なお、ＡＤＲ端子は、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０に並行に接続されているので、アドレス信号ＡＤＲは揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０に同時に供給される。
また、ＤＱ端子も、ＡＤＲ端子と同様に、複数の端子（例えば８個）からなり、それぞれにデータ信号ＤＱが供給される。
ＤＱ端子も、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０に並行に接続されているので、データ信号ＤＱは揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０に同時に供給される。
【００２９】
メモリコントローラ４０のＣＳ０端子は、揮発性ＲＡＭ２０のＣＳ端子に接続され、ＣＳ１端子は、不揮発性ＲＡＭ３０のＣＳ端子に接続されている。
ＣＳ０端子から送信されるチップセレクト信号ＣＳ０とＣＳ１端子から送信されるチップセレクト信号ＣＳ１とにより、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０のいずれか一方が選択されるようになっている。すなわち、チップセレクト信号ＣＳ０、ＣＳ１は、排他的に“１”／“０”が設定されるようになっている。
よって、アドレス信号ＡＤＲ及びデータ信号ＤＱが、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０に同時に供給されても、チップセレクト信号ＣＳ０、ＣＳ１により選択された揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０のいずれか一方のみで有効になる。
【００３０】
すなわち、揮発性ＲＡＭ２０は、メモリコントローラ４０のＣＫ０端子から供給されるクロック信号ＣＫ０により駆動され、不揮発性ＲＡＭ３０は、メモリコントローラ４０のＣＫ１端子から供給されるクロック信号ＣＫ１により駆動される。
そして、ＣＳ０端子から送信されるチップセレクト信号ＣＳ０とＣＳ１端子から送信されるチップセレクト信号ＣＳ１とにより、揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０のいずれか一方が選択されるようになっている。
【００３１】
次に、メモリコントローラ４０の内部の構成について説明する。
メモリコントローラ４０は、周波数Ｆの基準となる信号（基準信号ＣＫ）を発生する基準信号発生部の一例としての位相同期回路ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）４１（以下ではＰＬＬ４１と表記する。）、基準信号ＣＫの周波数Ｆを１／ｍ（ｍは２以上の整数）に分周して第１のクロック信号の一例としてのクロック信号ＣＫ０（周波数Ｆ０）を生成する第１のクロック信号生成供給部の一例としての分周器４２、同様に基準信号ＣＫの周波数Ｆを１／ｎ（ｎは２以上の整数であって、ｍ＜ｎ）に分周して第２のクロック信号の一例としてのクロック信号ＣＫ１を生成する第２のクロック信号生成供給部の一例としての分周器４３、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０へのデータの読み書きのタイミングを設定するタイミング設定部４４を備えている。
【００３２】
タイミング設定部４４は、遅延同期回路ＤＬＬ（Ｄｅｌｅｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）５１（以下ではＤＬＬ５１と表記する。）、セレクタＳＥＬ５２、５３、５４（以下ではＳＥＬ５２、５３、５４と表記する。）、フリップフロップＦＦ５５−１〜５５−４、５６−１〜５６−４（以下ではＦＦ５５−１〜５５−４、５６−１〜５６−４と表記する。）を備えている。
【００３３】
ＰＬＬ４１は、周波数Ｆの入力信号と、電圧に応じて周波数が変化する電圧制御発振器（ＶＣＯ）の出力信号からのフィードバック信号との位相差を、そのＶＣＯに入力することにより、入力信号と出力信号との位相を同期させる回路である。ＰＬＬ４１の出力端子からは、周波数Ｆの安定した基準信号ＣＫが出力される。
【００３４】
ＤＬＬ５１は、周波数Ｆの入力信号を可変の遅延線で遅延させた出力信号を生成する回路である。入力端子における入力信号と出力端子における出力信号からのフィードバック信号との位相差が３６０°になるように、入力端子と出力端子との間に遅延を挿入して同期させる。遅延線は、レジスタ、バッファなどの回路で構成され、遅延線の途中において、入力信号の１周期（１／Ｆ）内において、入力信号を複数の遅延量で遅延させた信号の組を出力させることができる。
なお、図２においては、ＤＬＬ５１は、遅延させた信号の組を２組取り出せるように構成されている。例えば、図２に示すように、遅延線の長さを２周期として、それぞれの周期においてそれぞれで遅延させた信号の組を取り出せるようにしてもよく、１周期の遅延線から取り出した遅延させた信号の組から分岐して２組の遅延させた信号の組を取り出してもよい。
【００３５】
ＳＥＬ５２、５３、５４は、複数の入力端子と複数の出力端子との間において、接続される関係が切り替えられる回路である。
ＦＦ５５−１〜５５−４、５６−１〜５６−４は、それぞれが２個の入力端子と１個の出力端子とを備え、２個の入力端子の論理値（“１”／“０”）の組合せにより、出力端子の論理値（“１”／“０”）が決まる回路である。ＦＦ５５−１〜５５−４、５６−１〜５６−４には、例えばＲＳ型、ＪＫ型などのフリップフロップが使用できる。
【００３６】
次に、メモリコントローラ４０の内部の接続関係について説明する。
ＰＬＬ４１の出力端子は、分周器４２及び分周器４３のそれぞれの入力端子に並行して接続されている。これにより、ＰＬＬ４１が発生する基準信号ＣＫ（周波数Ｆ）が、分周器４２及び分周器４３のそれぞれの入力端子に並行して供給される。
分周器４２の出力端子は、メモリコントローラ４０のＣＫ０端子を介して揮発性ＲＡＭ２０のＣＫ端子に接続されている。分周器４２は、基準信号ＣＫの周波数Ｆを１／ｍに分周して周波数Ｆ０（＝Ｆ／ｍ）のクロック信号ＣＫ０を生成し、揮発性ＲＡＭ２０に供給する。
同様に、分周器４３の出力端子は、メモリコントローラ４０のＣＫ１端子を介して不揮発性ＲＡＭ３０のＣＫ端子に接続されている。これにより、分周器４３は、基準信号ＣＫの周波数Ｆを１／ｎに分周して周波数Ｆ１（＝Ｆ／ｎ）のクロック信号ＣＫ１を生成し、不揮発性ＲＡＭ３０に供給する。
なお、分周器４２の出力端子を分周器４３の入力端子に接続し、クロック信号ＣＫ１をクロック信号ＣＫ０を分周して生成するように構成してもよい。
【００３７】
さらに、ＰＬＬ４１の発生する基準信号ＣＫは、ＤＬＬ５１に供給される。ＤＬＬ５１は、入力端子に入力した基準信号ＣＫから、それぞれ遅延量の異なる遅延した信号の組を生成し、複数の出力端子から出力する。ＤＬＬ５１の複数の出力端子は、ＳＥＬ５２において対応する複数の入力端子に接続されている。
そして、ＳＥＬ５２は４個の出力端子を備え、それぞれの出力端子は、基準信号ＣＫの１周期に対して０°、９０°、１８０°、２７０°に相当する遅延量で基準信号ＣＫを遅延した信号を出力する。
そして、０°の遅延量の信号を出力する出力端子は、ＦＦ５５−１の２個の入力端子の一方の端子に、９０°の遅延量の信号を出力する出力端子は、ＦＦ５５−２の２個の入力端子の一方の端子に、１８０°の遅延量の信号を出力する出力端子は、ＦＦ５５−３の２個の入力端子の一方の端子に、２７０°の遅延量の信号を出力する出力端子は、ＦＦ５５−４の２個の入力端子の一方の端子に接続されている。
【００３８】
同様に、ＤＬＬ５１は、入力端子に入力した基準信号ＣＫから、それぞれ遅延量の異なる１組の遅延した信号の他の組を生成し、それぞれ遅延量の異なる遅延した信号の他の組を生成し、他の複数の出力端子から出力する。ＤＬＬ５１の他の複数の出力端子は、ＳＥＬ５３において対応する複数の入力端子に接続されている。
そして、ＳＥＬ５３は、４個の出力端子を備え、それぞれの出力端子は、基準信号ＣＫの１周期に対して０°、９０°、１８０°、２７０°に相当する遅延量で基準信号ＣＫを遅延した信号を出力する。
そして、０°の遅延量の信号を出力する出力端子は、ＦＦ５６−１の２個の入力端子の一方に、９０°の遅延量の信号を出力する出力端子は、ＦＦ５６−２の２個の入力端子の一方に、１８０°の遅延量の信号を出力する出力端子は、ＦＦ５６−３の２個の入力端子の一方に、２７０°の遅延量の信号を出力する出力端子は、ＦＦ５６−４の２個の入力端子の一方に接続されている。
【００３９】
ＳＥＬ５４は、１個の入力端子と２個の出力端子を備え、１個の入力端子にはデータ信号ＤＱが入力する。すなわち、ＳＥＬ５４は、入力端子に入力されたデータ信号ＤＱを、２個の出力端子の一方又は他方に切り替えて出力する。
そして、２個の出力端子の一方は、ＦＦ５５−１〜ＦＦ５５−４の２個の入力端子のそれぞれの他方に共通に、他方は、ＦＦ５６−１〜ＦＦ５６−４の２個の入力端子のそれぞれの他方に共通に接続されている。
すなわち、ＳＥＬ５４は、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０の読み書きにおいて、入力したデータ信号ＤＱをクロック信号ＣＫ０又はクロック信号ＣＫ１の立上りタイミングで読み書きするか、立下りタイミングで読み書きするかを選択する。
【００４０】
例えば、データの書き込において、立上りタイミングで書き込む場合には、ＳＥＬ５４により、入力されたデータ信号ＤＱを、ＦＦ５５−１〜ＦＦ５５−４に供給するようにする。これにより、入力されたデータ信号ＤＱがＳＥＬ５２で設定された遅延量で遅延されて、メモリコントローラ４０のＤＱ端子に供給される。
一方、立下りタイミングで書き込む場合には、ＳＥＬ５４により、タイミング設定部４４に入力されたデータ信号ＤＱを、ＦＦ５６−１〜ＦＦ５６−４に供給するようにする。これにより、タイミング設定部４４に入力されたデータ信号ＤＱがＳＥＬ５３で設定された遅延量で遅延されて、メモリコントローラ４０のＤＱ端子に供給される。
このようにして、立上りタイミングで書き込む場合及び立下りタイミングで書き込む場合のそれぞれに対して遅延量が設定できるようになっている。
なお、上記では、データを書き込む場合を説明したが、データを読み出す場合も同様である。
【００４１】
図２に示すメモリコントローラ４０では、ＤＬＬ５１に基準信号ＣＫが入力されているので、設定される遅延量は、基準信号ＣＫの周波数Ｆ（周期）に基づいて設定される。
クロック信号ＣＫ０に基づいて設定する場合には、クロック信号ＣＫ０をＤＬＬ５１の入力端子に供給すればよい。
【００４２】
なお、ＳＥＬ５２、５３、５４を制御する制御信号は、メモリコントローラ４０の図２において不図示の部分より供給されるとする。また、アドレス信号ＡＤＲ、チップセレクト信号ＣＳ０、ＣＳ１は、ＣＰＵ１０（図１参照）から供給されるとし、接続の関係の記載を省略する。
また、揮発性ＲＡＭ２０と不揮発性ＲＡＭ３０とで、別々に遅延量を設定してもよく、この場合は、チップセレクト信号ＣＳ０、ＣＳ１に同期して、ＳＥＬ５２、５３による選択を変更すればよい。
【００４３】
次に、メモリコントローラ４０の動作を説明する。
図３は、メモリコントローラ４０の動作を説明するタイミングチャートである。ここでは、一例として、基準信号ＣＫの周波数Ｆを１６００ＭＨｚ、分周器４２におけるｍを２、分周器４３におけるｎを４として説明する。
時刻がアルファベット順に経過するとし、時系列で説明する。
【００４４】
基準信号ＣＫは、「Ｌ」と「Ｈ」とが交互に繰り返す波形である。時刻ａにおいて、「Ｌ」から「Ｈ」に移行し、時刻ｃにおいて「Ｈ」から「Ｌ」に移行する。そして、時刻ｅにおいて、「Ｌ」から「Ｈ」に移行する。そして、時刻ｅ以降において、時刻ａから時刻ｅまでの波形を繰り返す。ここでは、時刻ａから時刻ｃまでの時間と時刻ｃから時刻ｅまでの時間を同じとする。
すなわち、基準信号ＣＫは、時刻ａから時刻ｅまでの期間を１周期とする波形である。前述したように、基準信号ＣＫの周波数Ｆを１６００ＭＨｚとすると、１周期は０．６２５ｎｓである。
【００４５】
ｍを２としたので、分周器４２は基準信号ＣＫの１／２の周波数Ｆ０（８００ＭＨｚ）のクロック信号ＣＫ０を生成する。すなわち、クロック信号ＣＫ０は、図３における時刻ａにおいて、「Ｌ」から「Ｈ」に移行し、時刻ｅにおいて、「Ｈ」から「Ｌ」に移行する。そして、時刻ｆにおいて、「Ｌ」から「Ｈ」に移行する。そして、時刻ｆ以降において、時刻ａから時刻ｆまでの波形を繰り返す。
さらに、ｎを４としたので、分周器４３は基準信号ＣＫの１／４の周波数Ｆ１（４００ＭＨｚ）のクロック信号ＣＫ１を生成する。すなわち、図３における時刻ａにおいて、「Ｌ」から「Ｈ」に移行し、時刻ｆにおいて、「Ｈ」から「Ｌ」に移行する。そして、時刻ｇにおいて、「Ｌ」から「Ｈ」に移行する。そして、時刻ｇ以降において、時刻ａから時刻ｇまでの波形を繰り返す。
【００４６】
次に、揮発性ＲＡＭ２０への読み書きのタイミングを説明する。
揮発性ＲＡＭ２０への読み書きは、クロック信号ＣＫ０の立上りタイミング及び立下りタイミングで行なわれる。よって、図３に示すように、データ信号ＤＱに示すデータＤ１−１、Ｄ１−２、Ｄ１−３、…のように読み書きがされる。このとき、キャリブレーションにより、遅延量が９０°、１８０°、２７０°のいずれかが選択された場合には、図３に示すように、読み書きのタイミングがずれることになる。なお、図３では、立上りタイミング及び立下りタイミングの遅延量を同じとしているが、立上りタイミングと立下りタイミングとをそれぞれ別々に選択してもよい。
【００４７】
同様に、不揮発性ＲＡＭ３０への読み書きは、クロック信号ＣＫ１の立上りタイミング及び立下りタイミングで行なわれる。よって、図３に示すように、データ信号ＤＱに示すデータＤ２−１、Ｄ２−２、Ｄ２−３、…のように読み書きがされる。このとき、キャリブレーションにより、遅延量が９０°、１８０°、２７０°のいずれかが選択された場合には、図３に示すように、読み書きのタイミングがずれることになる。なお、図３では、立上りタイミング及び立下りタイミングの遅延量を同じとしているが、立上りタイミングの遅延量と立下りタイミングの遅延量とをそれぞれ別に選択してもよい。
【００４８】
図３から分かるように、不揮発性ＲＡＭ３０への読み書きは、例えば時刻ａから時刻ｆまでの期間に行われればよい。これに対して、揮発性ＲＡＭ２０への読み書きは、例えば時刻ａから時刻ｅまでの期間に行うことが必要となる。すなわち、図３に示す場合では、揮発性ＲＡＭ２０への読み書きに可能なタイミングマージンは、不揮発性ＲＡＭ３０への読み書きに可能なタイミングマージンに比べて１／２となる。
よって、揮発性ＲＡＭ２０の読み書きに設定する遅延量と、不揮発性ＲＡＭ３０の読み書きに設定する遅延量とを異なる値に設定してもよい。
【００４９】
以上説明したように、本実施の形態では、揮発性ＲＡＭ２０に供給されるクロック信号ＣＫ０と不揮発性ＲＡＭ３０に供給されるクロック信号ＣＫ１とで周波数が異なっても、１個の基準信号ＣＫからクロック信号ＣＫ０及びクロック信号ＣＫ１を生成し、さらに基準信号ＣＫに基づいて、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０の読み書きのタイミングを設定できる。
よって、揮発性ＲＡＭ２０と不揮発性ＲＡＭ３０とでそれぞれ個別にメモリコントローラ４０を設けることを要しないとともに、読み書きのタイミングマージンを大きくして、読み書きにおけるエラーの発生を抑制している。
【００５０】
なお、図２において、メモリコントローラ４０に接続される揮発性ＲＡＭ２０又は不揮発性ＲＡＭ３０は、それぞれが複数であってもよい。その場合は、揮発性ＲＡＭ２０及び不揮発性ＲＡＭ３０のそれぞれにチップセレクト信号（チップセレクト信号ＣＳ０、ＣＳ１など）を設定し、それぞれのメモリを個別に選択できるようにすればよい。また、それぞれのメモリに対して読み書きのタイミングに対する遅延量を設定してもよい。この場合、チップセレクト信号ＣＳと組み合わせて、遅延量を設定すればよい。
【００５１】
また、本実施の形態では、ＰＬＬ４１が発生する基準信号ＣＫを、分周器４２、４３にて分周して、クロック信号ＣＫ０、ＣＫ１を生成した。逆に、基準信号ＣＫを逓倍して、クロック信号ＣＫ０、ＣＫ１を生成してもよい。この場合、逓倍した信号をＤＬＬ５１に入力すればよい。
さらに、本実施の形態では、メモリコントローラ４０がＰＬＬ４１を備えるとして説明した。メモリコントローラ４０がＰＬＬ４１を備えず、メモリコントローラ４０の外部に基準信号ＣＫの発生部（ＰＬＬ４１など）を設けるように構成してもよい。この場合、メモリコントローラ４０は、外部で生成された基準信号ＣＫ（例えば１６００ＭＨｚ）を分周してクロック信号ＣＫ０、ＣＫ１を生成するように構成してもよく、外部で生成された基準信号ＣＫ（例えば１００ＭＨｚ）を逓倍してクロック信号ＣＫ０、ＣＫ１を生成するように構成してもよい。基準信号ＣＫをメモリコントローラ４０の内部で発生すれば、ノイズによる影響が抑制できる。
【００５２】
なお、本実施の形態における情報処理装置１は、紙等の記録材に画像を形成する画像形成部と、紙等の記録材に記録された画像を読み取る画像読取部と、ユーザからスキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース（ＵＩ）と、ネットワークを介して外部のファクシミリ装置等との間でデータの送受信を行う送受信部などを備えた画像形成装置において、画像形成部、画像読取部、ＵＩ及び送受信部の動作を制御する制御部などに適用できる。
【符号の説明】
【００５３】
１…情報処理装置、１０…ＣＰＵ、２０…揮発性ＲＡＭ、３０…不揮発性ＲＡＭ、４０…メモリコントローラ、４１…ＰＬＬ、４２、４３…分周器、４４…タイミング設定部、５０…バス、５１…ＤＬＬ、５２、５３、５４…ＳＥＬ、５５−１〜５５−４、５６−１〜５６−４…ＦＦ、ＡＤＲ…アドレス信号、ＣＫ…基準信号、ＣＫ０、ＣＫ１…クロック信号、ＣＳ０、ＣＳ１…チップセレクト信号、ＤＱ…データ信号
【図１】
2015014836.tif 000003
【図２】
2015014836.tif 000004
【図３】
2015014836.tif 000005