(57)【特許請求の範囲】
【請求項１】
一以上のメモリーと、前記メモリーを制御するメモリー制御部と、を有する電子機器であって、
前記メモリー制御部は、
前記メモリーの動作クロックを基準とするアドレス信号及びコマンド信号の長さを示すＮ（ただし、Ｎは２以上の自然数）を設定する設定部と、
前記アドレス信号及び前記コマンド信号を前記Ｎクロックの長さで前記メモリーに出力する信号制御部と、を有する、
ことを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器であって、
一以上のチップセレクトを有し、
前記信号制御部は、前記Ｎクロックの長さのうち、Ｎクロック目に対応する期間にチップセレクト信号をイネーブルにする、
ことを特徴とする電子機器。
【請求項３】
請求項２に記載の電子機器であって、
前記信号制御部は、前記アドレス信号及び前記コマンド信号の信号レベルが所定の閾値レベルを超えた場合に、前記チップセレクト信号をイネーブルにする、
ことを特徴とする電子機器。
【請求項４】
請求項１〜３いずれか一項に記載の電子機器であって、
ＣＰＵを備え、
前記設定部は、前記ＣＰＵから前記Ｎの設定を受け付ける、
ことを特徴とする電子機器。
【請求項５】
請求項４に記載の電子機器であって、
ユーザーインターフェイス装置を備え、
前記ＣＰＵは、前記ユーザーインターフェイス装置を介して前記Ｎの設定を受け付け、前記設定部に設定する、
ことを特徴とする電子機器。
【請求項６】
請求項１〜３いずれか一項に記載の電子機器であって、
前記設定部は、前記メモリーの数を取得し、当該数に応じて前記Ｎの値を設定する、
ことを特徴とする電子機器。
【請求項７】
請求項１〜６いずれか一項に記載の電子機器であって、
前記アドレス信号及び前記コマンド信号の信号線は、全てのメモリーに共有されている、
ことを特徴とする電子機器。
【請求項８】
一以上のメモリーと、前記メモリーを制御するメモリー制御部と、を有する電子機器におけるメモリー制御方法であって、
前記メモリー制御部は、
前記メモリーの動作クロックを基準とするアドレス信号及びコマンド信号の長さを示すＮ（ただし、Ｎは２以上の自然数）を設定し、
前記アドレス信号及び前記コマンド信号を前記Ｎクロックの長さで前記メモリーに出力する、
ことを特徴とするメモリー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、及びメモリー制御方法に関する。
【背景技術】
【０００２】
ＤＲＡＭのアクセス周波数は、ＤＤＲ（Double Data Rate）１、ＤＤＲ２、ＤＤＲ３と世代が進むにつれて高くなっている。高周波数化にともない、ＤＲＡＭへのアクセスを制御するメモリー制御回路から発生する高周波ノイズが増加している。
【０００３】
高周波ノイズの抑制に関連して、特許文献１には、メモリークロックの１／２Ｎ（Ｎは２以上の整数）で動作し、メモリー制御信号を２Ｎ相発行するメモリーコントローラーが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２５７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、高周波数化にともない、ＤＲＡＭを制御する信号（例えば、アドレス信号、コマンド信号など）の波形の品質を確保することが難しくなってきている。そして、波形の品質を確保するため、回路設計の複雑化や検証作業の長期化などにより製造コストが上がってきている。
【０００６】
そこで、本発明は、より簡単な設計でメモリーを制御する信号の波形品質を確保することを目的とする。
【課題を解決するための手段】
【０００７】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。
【０００８】
上記の課題を解決する本発明の一態様は、一以上のメモリーと、前記メモリーを制御するメモリー制御部と、を有する電子機器であって、前記メモリー制御部は、前記メモリーの動作クロックを基準とするアドレス信号及びコマンド信号の長さを示すＮ（ただし、Ｎは２以上の自然数）を設定する設定部と、前記アドレス信号及び前記コマンド信号を前記Ｎクロックの長さで前記メモリーに出力する信号制御部と、を有する、ことを特徴とする。
【０００９】
このような構成により、メモリー制御部にＮを設定することで信号の長さが変更されるので、簡単な設計で制御信号の波形品質を確保することができる。
【００１０】
ここで、上記の電子機器は、一以上のチップセレクトを有し、前記信号制御部は、前記Ｎクロックの長さのうち、Ｎクロック目に対応する期間にチップセレクト信号をイネーブルにする、ことを特徴としてもよい。
【００１１】
このような構成により、波形品質が確保された適切なタイミングでメモリーに信号を取り込ませることができる。
【００１２】
また、前記信号制御部は、前記アドレス信号及び前記コマンド信号の信号レベルが所定の閾値レベルを超えた場合に、前記チップセレクト信号をイネーブルにする、ことを特徴としてもよい。
【００１３】
このような構成によっても、波形品質が確保された適切なタイミングでメモリーに信号を取り込ませることができる。
【００１４】
また、上記の電子機器は、ＣＰＵを備え、前記設定部は、前記ＣＰＵから前記Ｎの設定を受け付ける、ことを特徴としてもよい。
【００１５】
このような構成により、ソフトウェアにより簡単にＮの設定を変更することができる。
【００１６】
また、上記の電子機器は、ユーザーインターフェイス装置を備え、前記ＣＰＵは、前記ユーザーインターフェイス装置を介して前記Ｎの設定を受け付け、前記設定部に設定する、ことを特徴としてもよい。
【００１７】
このような構成によれば、ユーザーが簡単にＮの設定を変更して、波形品質を調整することができる。
【００１８】
また、前記設定部は、前記メモリーの数を取得し、当該数に応じて前記Ｎの値を設定する、ことを特徴としてもよい。
【００１９】
このような構成によれば、電子機器の構成に応じて動的に波形品質を調整することができる。
【００２０】
また、前記アドレス信号及び前記コマンド信号の信号線は、全てのメモリーに共有されている、ことを特徴としていてもよい。
【００２１】
このような構成によれば、Ｎの設定によって波形品質をより向上できる。
【００２２】
上記の課題を解決する本発明の他の態様は、一以上のメモリーと、前記メモリーを制御するメモリー制御部と、を有する電子機器におけるメモリー制御方法であって、前記メモリー制御部は、前記メモリーの動作クロックを基準とするアドレス信号及びコマンド信号の長さを示すＮ（ただし、Ｎは２以上の自然数）を設定し、前記アドレス信号及び前記コマンド信号を前記Ｎクロックの長さで前記メモリーに出力する、ことを特徴とする。
【００２３】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態に係る電子機器の概略構成の一例を示す図である。
【図２】ＳＯＣのＤＲＡＭアクセスに関する概略構成の一例を示す図である。
【図３】メモリーコントローラーの内部状態遷移の一例を示す図である。
【図４】メモリーコントローラーの各内部状態の一例を説明する図である。
【図５】メモリーコントローラーから出力される信号のタイミング（１クロック制御）の一例を説明する図である。
【図６】メモリーコントローラーから出力される信号のタイミング（２クロック制御）の一例を説明する図である。
【図７】メモリーコントローラーから出力される信号のタイミング（３クロック制御）の一例を説明する図である。
【図８】信号の品質が確保されていないアドレス／コマンド信号の一例を説明する図である。
【図９】信号の品質が確保されているアドレス／コマンド信号の一例を説明する図である。
【図１０】メモリーコントローラーの処理の流れの一例を説明するフロー図である。
【発明を実施するための形態】
【００２５】
以下、本発明の一実施形態について、図面を参照して説明する。
【００２６】
図１は、本発明の一実施形態に係る電子機器の概略構成の一例を示す図である。図示するように、電子機器１００と情報処理装置２００は、互いに接続され通信可能である。接続方法は、有線であっても無線であってもよい。
【００２７】
情報処理装置２００は、電子機器１００のホストコンピューターとして機能する。情報処理装置２００は、例えば、不図示の、ＣＰＵと、ＲＡＭと、ＲＯＭと、ハードディスク等の補助記憶装置と、ディスプレイと、キーボードやマウス等の入力装置と、通信インターフェイスと、を備えたコンピューターである。情報処理装置２００では、例えば、アプリケーションプログラムや、電子機器１００を制御するためのドライバープログラム（例えば、プリンタードライバープログラム）が実行される。
【００２８】
電子機器１００は、例えば、プリント機能、コピー機能等を有する複合機である。電子機器１００は、電子機器１００における各種処理を制御する電子機器制御装置としてのコントローラー１１０と、印刷媒体への印刷や原稿の読み取りを実行するエンジン部１２０と、を備えている。もちろん、電子機器は、複合機に限らず、例えば、プリンター、スキャナー、ファクシミリ、コピー機、などの画像形成装置であってもよい。
【００２９】
コントローラー１１０は、ＣＰＵ１４０と、メモリーコントローラー１５０と、ＤＲＡＭ１６０と、Ｉ／Ｏ（Input/Output）制御ＡＳＩＣ（Application Specific Integrated Circuits）１７０と、を備える。コントローラー１１０は、エンジン部１２０等の各種機構を制御し、各種画像処理などを含む印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現する。もちろん、コントローラー１１０は、この構成に限定されず、例えば、ＣＰＵ１４０をメモリーコントローラー１５０に内蔵させてもよい。
【００３０】
また、上記のＣＰＵ１４０と、メモリーコントローラー１５０と、Ｉ／Ｏ制御ＡＳＩＣ１７０と、を搭載した集積回路を、以下ではＳＯＣ（System On a Chip）１３０と呼ぶ。
【００３１】
ＣＰＵ１４０は、メモリーコントローラー１５０を介してＤＲＡＭ１６０にアクセスし、各種プログラムやデータの読み書きを行うことで各種処理を実行する。ＣＰＵ１４０は、ＤＲＡＭ１６０にアクセスするためのアクセス要求をメモリーコントローラー１５０に対して出す。
【００３２】
メモリーコントローラー１５０は、ＣＰＵ１４０、Ｉ／Ｏ制御ＡＳＩＣ１７０、エンジン部１２０から、ＤＲＡＭ１６０へのアクセスを制御する。もちろん、メモリーコントローラー１５０は、ＣＰＵ１４０を介さないＤＲＡＭ１６０へのダイレクトメモリーアクセス（ＤＭＡ）を制御するようにしてもよい。
【００３３】
ＤＲＡＭ１６０は、メモリーコントローラー１５０が制御を行うメモリーであり、例えば、ＤＤＲ−ＳＤＲＡＭである。本実施形態では、ＤＲＡＭ１６０は、メモリーコントローラー１５０などを搭載したコントローラー基板上に直接設置される、一以上のＤＲＡＭチップを備える標準ＤＲＡＭ（On Board）１６１と、ＤＩＭＭ（Dual Inline Memory Module）のような複数のＤＲＡＭチップをプリント基板上に搭載したオプションＤＲＡＭ１６２と、を備える。
【００３４】
なお、標準ＤＲＡＭ１６１は、通常はユーザーによりボードから取り外すことができない一方、オプションＤＲＡＭ１６２は、ユーザーによりボートに取り付けたりボードから取り外したりすることができる（着脱可能である）。もちろん、標準ＤＲＡＭ１６１は、着脱可能であってもよい。
【００３５】
各ＤＲＡＭ１６０にアクセスする場合、アクセス対象のＤＲＡＭ１６０は、チップセレクト信号で選択される。
【００３６】
なお、複数のＤＲＡＭチップを搭載したＤＲＡＭには、チップセレクトの単位（アクセス単位）が、複数のＤＲＡＭチップ全体であるものと、ＤＲＡＭチップごとであるものとがある。本実施形態では、標準ＤＲＡＭ１６１及びオプションＤＲＡＭ１６２は、いずれの構成であってもよい。
【００３７】
Ｉ／Ｏ制御ＡＳＩＣ１７０は、外部機器（情報処理装置２００など）とのデータの送受信を制御する。
【００３８】
エンジン部１２０は、印刷機能、ファクシミリ機能、スキャナー機能、コピー機能等を実現するための給排紙機構、印字機構、スキャン機構等であり、例えば、印刷エンジン、スキャナーエンジンなどを含む。
【００３９】
図２は、ＳＯＣのＤＲＡＭアクセスに関する概略構成の一例を示す図である。なお、各種信号（ＣＳ１、ＣＳ２、ＤＱＳ／ＤＱ、ＡＤＲ／ＣＭＤ、ＤＱＳ／ＤＱ）は、一本の信号線で表されているが、実際は複数の信号線により実現されてよい。
【００４０】
メモリーコントローラー１５０には、ＣＰＵ１４０や、他のユニット（Ｉ／Ｏ制御ＡＳＩＣ１７０に接続されている機器、エンジン部１２０、などを指し、以下では「内部ＩＰ」とよぶ）が、内部バスを介して接続されている。また、メモリーコントローラー１５０には、標準ＤＲＡＭ１６１とオプションＤＲＡＭ１６２が、外部バスを介して接続されている。
【００４１】
本実施形態では、標準ＤＲＡＭ１６１及びオプションＤＲＡＭ１６２は、それぞれ、二つのＤＲＡＭチップを備える。標準ＤＲＡＭ１６１及びオプションＤＲＡＭ１６２のチップセレクト単位は、ＤＲＡＭ単位であってもＤＲＡＭチップ単位であってもよい。チップセレクトは、チップセレクト信号（ＣＳ１、ＣＳ２）により制御される。
【００４２】
ここで、ＤＲＡＭ１６０を制御する信号であるアドレス信号とコマンド信号（ＡＤＲ／ＣＭＤ）の信号線は、標準ＤＲＡＭ１６１及びオプションＤＲＡＭ１６２で共有されており、標準ＤＲＡＭ１６１及びオプションＤＲＡＭ１６２に搭載されている全てのＤＲＡＭチップに対して分岐して配線されている。そのため、各ＤＲＡＭチップからの信号反射によりＡＤＲ／ＣＭＤ信号線上の信号の波形品質が悪化し易く、高周波数化には向いていない。
【００４３】
一方、データストローブ信号とデータ信号（ＤＱＳ／ＤＱ）の信号線は、標準ＤＲＡＭ１６１及びオプションＤＲＡＭ１６２に搭載されている各ＤＲＡＭチップに対して、それぞれ配線されている。そのため、各ＤＲＡＭチップからの信号反射によるＤＱＳ／ＤＱ信号線上への影響が少なく信号の波形品質が確保し易いので、高周波数化に向いている。なお、ＤＲＡＭあるいはＤＲＡＭチップにＯＤＴ（On Die Termination）を設ければ、ＤＱＳ／ＤＱ信号の波形品質をより確保し易い。
【００４４】
メモリーコントローラー１５０は、ＣＰＵ１４０や内部ＩＰから、ＤＲＡＭ１６０へのアクセス要求（ライト要求、リード要求など）を受信し、ＤＲＡＭ１６０へのアクセス処理を制御する。メモリーコントローラー１５０は、レジスター設定回路１５１と、コマンド制御回路１５２と、データ制御回路１５４と、インターフェイス１５５とを有する。コマンド制御回路１５２は、レジスター１５３を有する。
【００４５】
レジスター設定回路１５１は、アドレス信号及びコマンド信号の長さの設定を行う。本実施形態では、信号の長さとは、一つのアドレス信号あるいはコマンド信号がＤＲＡＭ１６０に対して出力される時間的な長さをいう。
【００４６】
ここで、メモリーコントローラー１５０は、アドレス信号及びコマンド信号の長さを示すＮ（ただし、Ｎは１以上の自然数）を保持するレジスター１５３を備える。レジスター１５３は、メモリーコントローラー１５０のどこに設けられていてもよく、例えば、コマンド制御回路１５２の内部に設けられる。
【００４７】
レジスター設定回路１５１は、例えば、ＣＰＵ１４０（すなわち、ソフトウェア）からＮの指定を受け付け、レジスター１５３に、Ｎを設定する。ＣＰＵ１４０は、例えば、ＲＯＭ（不図示）などの記憶領域に予め格納されたＮを指定すればよい。もちろん、レジスター設定回路１５１が、ＲＯＭなどの記憶領域に予め格納されたＮを読み出して設定するようにしてもよい。
【００４８】
電子機器１００の構成や特性によって、信号の波形品質は異なるため、例えば、製品ごとあるいはモデルごとに製造段階でテストなどを行って、信号の波形品質を確保できる適切なＮの値を決定し、ＲＯＭ等に格納しておくのが好ましい。
【００４９】
なお、ＣＰＵ１４０は、操作パネル（不図示）などのユーザーインターフェイス装置を介してユーザーからＮの指定を受け付け、レジスター設定回路１５１に設定するようにしてもよい。
【００５０】
また、例えば、レジスター設定回路１５１は、コントローラー１１０に搭載されているＤＲＡＭあるいはＤＲＡＭチップの数を検出（取得）し、数に応じてＮの値を決定するようにしてもよい。例えば、ＤＲＡＭチップの数が１の場合は、Ｎ＝２、２以上の場合は、Ｎ＝３、といったようにである。このようにすれば、ＤＲＡＭチップの増加にともないＡＤＲ／ＣＭＤ信号線上の信号の波形品質が悪化する場合に、動的に対処することができる。もちろん、ＤＲＡＭあるいはＤＲＡＭチップの数に応じたＮの指定は、例えば、ＣＰＵ１４０や内部ＩＰが行ってもよい。また、ＤＲＡＭあるいはＤＲＡＭチップの数以外のシステム構成を検出して、構成に応じたＮの値を決定するようにしてもよい。
【００５１】
コマンド制御回路１５２は、アドレス信号及びコマンド信号の制御を行う。コマンド制御回路１５２は、例えば、アクセス要求（ライト、リードなど）とともに受け付けたアクセス先のアドレス情報をデコードし、ＤＲＡＭ１６０に送信するアドレス情報に変換する。そして、アクセス要求に従って、当該変換したアドレス情報が示すＤＲＡＭ１６０の記憶領域に対するデータ操作を実行するためのコマンドを、インターフェイス１５５を介して発行する。
【００５２】
また、コマンド制御回路１５２は、例えば、アクセス先のアドレス情報に基づいて、アクセス先のチップセレクトを決定する。そして、アクセス先が標準ＤＲＡＭ１６１である場合、標準ＤＲＡＭ１６１を選択する信号（チップセレクト信号ＣＳ１）をイネーブルにする。アクセス先がオプションＤＲＡＭ１６２である場合、オプションＤＲＡＭ１６２を選択する信号（チップセレクト信号ＣＳ２）をイネーブルにする。なお、ＤＲＡＭチップ単位でチップセレクトをする必要がある場合、アクセス対象のＤＲＡＭチップを選択するチップセレクト信号をイネーブルすればよい。
【００５３】
データ制御回路１５４は、データの制御を行う。データ制御回路１５４は、例えば、アクセス要求がライト要求である場合、ライトコマンドの対象のライトデータを、インターフェイス１５５を介してＤＲＡＭ１６０に転送して書き込む。また、例えば、アクセス要求がリード要求である場合、リードコマンドの対象のリードデータを、インターフェイス１５５を介してＤＲＡＭ１６０から読み出して受信する。
【００５４】
インターフェイス１５５は、メモリーコントローラー１５０とＤＲＡＭ１６０との間の信号の入出力を制御する。インターフェイス１５５は、例えば、コマンド制御回路１５２により指定されたチップセレクトに対応するチップセレクト信号を、指定されたタイミング及び長さ（期間）でイネーブルにする。
【００５５】
また、インターフェイス１５５は、例えば、コマンド制御回路１５２により生成されたアドレス信号及びコマンド信号をバッファリングし、指定されたタイミング及び長さ（期間）でＡＤＲ／ＣＭＤ信号線を介してＤＲＡＭ１６０に出力する。
【００５６】
また、インターフェイス１５５は、例えば、データ制御回路１５４により生成されたデータストローブ信号及びデータ信号をバッファリングし、指定されたタイミング及び長さ（期間）でＤＱＳ／ＤＱ信号線を介してＤＲＡＭ１６０に出力する。また、インターフェイス１５５は、ＤＲＡＭ１６０から出力されたデータ信号をバッファリングし、データ制御回路１５４に通知する。
【００５７】
さて、本実施形態では、コマンド制御回路１５２は、レジスター設定回路１５１によりレジスター１５３に設定されたＮに従って、アドレス信号及びコマンド信号の長さを決定する。すなわち、コマンド制御回路１５２は、アドレス信号及びコマンド信号を、Ｎクロックの長さでＤＲＡＭ１６０に出力する。信号の長さＮの基準となるクロックは、ＤＲＡＭ１６０に対して与えられる動作クロックとする。
【００５８】
また、コマンド制御回路１５２は、アドレス信号及びコマンド信号を出力する場合、Ｎクロック分の信号の長さのうち、Ｎクロック目に対応するタイミングで、これらの信号の出力先であるチップセレクトに対応するチップセレクト信号をイネーブルにする。
【００５９】
なお、回路の構成としては、例えば、アドレス信号及びコマンド信号の信号レベルが所定の閾値レベルを超えた場合に、チップセレクト信号がイネーブルされるようにすればよい。すなわち、Ｎクロック目に対応するタイミングで、前記信号レベルが前記所定の閾値レベルを超えれば、チップセレクト信号がイネーブルされる。ただし、Ｎ＝１の場合は、前記所定の閾値レベルに係わらず、１クロック目に対応するタイミングで、チップセレクト信号がイネーブルされるようにすればよい。
【００６０】
より具体的には、コマンド制御回路１５２は、例えば、内部状態遷移（ステートマシン）の制御を、Ｎに従って変更することにより、アドレス信号及びコマンド信号の出力の長さを制御する。以下、図３〜図７を参照して説明する。
【００６１】
図３は、メモリーコントローラーの内部状態遷移の一例を示す図である。図４は、メモリーコントローラーの各内部状態の一例を説明する図である。
【００６２】
各状態（ステート）の意味は、以下のとおりである。
ＩＤＬＥ：ステートアイドル状態
ＡＣＴ：ＡＣＴコマンド発行
Ａ２Ｗ＿ＷＡＩＴ：ＡＣＴ→ＷＲＩＴＥのウェイト
ＷＲＩＴＥ：ＷＲＩＴＥコマンド発行
ＷＲＩＴＥＡ        ：オートプリチャージ付きＷＲＩＴＥコマンド発行
ＷＢＳＴ＿ＷＡＩＴ：ＷＲＩＴＥバースト中のウェイト
Ｗ２Ａ＿ＷＡＩＴ：ＷＲＩＴＥＡ→ＡＣＴのウェイト
Ａ２Ｒ＿ＷＡＩＴ：ＡＣＴ→ＲＥＡＤのウェイト
ＲＥＡＤ：ＲＥＡＤコマンド発行
ＲＥＡＤＡ：オートプリチャージ付きＲＥＡＤコマンド発行
ＲＢＳＴ＿ＷＡＩＴ：ＲＥＡＤバースト中のウェイト
Ｒ２Ａ＿ＷＡＩＴ：ＲＥＡＤＡ→ＡＣＴのウェイト
ＰＨＩＴ＿ＷＡＩＴ：ページヒット（ＰＡＧＥ−ＨＩＴ）時のウェイトステート
ＣＭＤ＿ＷＡＩＴ：コマンドウェイトステート
ＳＵＢ：サブステート（パワーダウン、ＺＱＣＳ、ＣＢＲリフレッシュ、ＳＥＬＦリフレッシュ）
ＩＮＩＴ：イニシャライズ時のステート（プリチャージオール、ＭＲＳ、ＺＱＣＬ）
【００６３】
図５は、メモリーコントローラーから出力される信号のタイミング（１クロック制御）の一例を説明する図である。図６は、メモリーコントローラーから出力される信号のタイミング（２クロック制御）の一例を説明する図である。図７は、メモリーコントローラーから出力される信号のタイミング（３クロック制御）の一例を説明する図である。
【００６４】
図５〜図７では、ＣＬＫ（クロック信号）、ＣＳＸ（チップセレクト信号）、ＡＤＲ／ＣＭＤ（アドレス／コマンド信号）、及び、ＤＱ（データ信号）は、メモリーコントローラー１５０からＤＲＡＭ１６０に対して出力される外部信号を示している。一方、内部状態は、メモリーコントローラー１５０内部の状態を示している。なお、実際は、メモリーコントローラー１５０の内部状態は、他の外部信号よりも数クロック前に確定している。これは、ＡＤＲ／ＣＭＤ等は、内部状態の遷移に従って生成されるが、インターフェイス１５５などで一時的にバッファリングされてから出力されるためである。以下では説明を分かり易くするため、このタイミングのずれは特にないものとして説明する。
【００６５】
また、ＤＲＡＭ１６０は、ＣＬＫの立ち上がり（Ｔ０〜Ｔ１３）でＡＤＲ／ＣＭＤを取り込んで認識するものとする。ＤＱについては、特に限定されないが、ＣＬＫの立ち上がり及び立ち下がりの少なくとも一方で取り込んで認識する。
【００６６】
なお、ＣＳＸは、ロウ状態が有効であるものとする。また、ＡＤＲ／ＣＭＤのうちアドレス信号は、特に図示されていないが、例えば、ＡＣＴ、ＷＲ、ＷＲＡ、ＲＥ、ＲＥＡなどの所定のコマンドと同じタイミング及び長さで出力されるものとする。
【００６７】
なお、ＡＤＲ／ＣＭＤにおいて、ＡＣＴはＡＣＴ（アクティブ）コマンドを意味し、ＷＲはＷＲＩＴＥ（ライト）コマンドを意味し、ＷＲＡはＷＲＩＴＥＡ（オートプリチャージ付きライト）コマンドを意味する。また、ＤＱにおいて、ＷＤはＷＩＲＴＥＤＡＴＡ（ライトデータ）を意味する。
【００６８】
図５に示すように、Ｎ＝１に設定されている場合（１クロック制御）、コマンド制御回路１５２は、順に、ＩＤＬＥ状態（Ｔ０）、ＡＣＴ状態（Ｔ１）、ＷＲ状態（Ｔ２）、ＷＢＳＴ＿ＷＡＩＴ状態（Ｔ３）、ＷＲＡ状態（Ｔ４）、ＣＭＤ＿ＷＡＩＴ状態（Ｔ５〜）と遷移する。
【００６９】
そして、コマンド制御回路１５２は、ＡＣＴ状態（Ｔ１）、ＷＲ状態（Ｔ２）、及びＷＲＡ状態（Ｔ４）に対応して、ＡＣＴコマンド（Ｔ１）、ＷＲコマンド（Ｔ２）、及びＷＲＡコマンド（Ｔ４）を出力する。各コマンドは、それぞれ１クロック分の長さに相当する。なお、データ制御回路１５４は、ＷＲコマンド及びＷＲＡコマンドに対応する書き込みデータＷＤを所定のタイミングで出力する。
【００７０】
また、コマンド制御回路１５２は、ＡＤＲ／ＣＭＤの出力先であるチップセレクトを選択するチップセレクト信号を、ＡＣＴコマンド（Ｔ１）、ＷＲコマンド（Ｔ２）、及びＷＲＡコマンド（Ｔ４）のタイミングで、イネーブルにする。
【００７１】
上述の１クロック制御では、ＣＬＫが高速である場合、アドレス信号及びコマンド信号の信号レベルが安定せず、波形品質を確保できないことがある。すなわち、ＤＲＡＭ１６０に出力されたアドレス信号及びコマンド信号の信号レベルが、１クロックの間で、ＤＲＡＭ１６０で認識可能な所定の信号レベルに達しない期間が発生する。その結果、必要なセットアップホール時間が確保されず、ＤＲＡＭ１６０は、アドレス信号及びコマンド信号を認識できない。
【００７２】
例えば、図８（１クロック制御）に示すように、ＤＲＡＭ１６０が、ＣＬＫの立ち上がりＴでＡＤＲ／ＣＭＤを取り込んで認識する場合を考える。なお、ＡＤＲ／ＣＭＤは、Ｔのタイミングの前後を挟む、１クロック分の長さで出力されるものとする。
【００７３】
ここで、通常、ＤＲＡＭ１６０が信号を認識するために必要な規定の信号ウィンドウの範囲（長さ）が規定されている。従って、ＤＲＡＭ１６０が信号を認識するためには、Ｔのタイミングにおいて、ＡＤＲ／ＣＭＤ信号の波形品質が安定し、かつ、当該波形品質が規定信号ウィンドウ範囲以上継続される必要がある。
【００７４】
ＣＬＫが高速である場合、１クロック長のＡＤＲ／ＣＭＤ信号は、Ｔのタイミングで波形品質が安定せず（例えば、所定閾値レベル以上で電圧が安定しない）、Ｔのタイミングよりも遅れて波形品質が安定する。また、ＡＤＲ／ＣＭＤ信号の波形品質が安定する範囲は、規定信号ウィンドウ範囲よりも小さい範囲となってしまう。そのため、ＤＲＡＭ１６０は、ＡＤＲ／ＣＭＤ信号を認識できない。
【００７５】
そこで、本実施形態では、Ｎを２以上に設定することができる。以下、一例として、Ｎ＝２、Ｎ＝３の場合について説明する。
【００７６】
図６に示すように、Ｎ＝２に設定されている場合（２クロック制御）、コマンド制御回路１５２は、順に、ＩＤＬＥ状態（Ｔ０）、ＡＣＴ状態（Ｔ１、Ｔ２）、Ａ２Ｗ＿ＷＡＩＴ状態（Ｔ３）、ＷＲ状態（Ｔ４）、ＷＢＳＴ＿ＷＡＩＴ状態（Ｔ５）、ＷＲＡ状態（Ｔ６）、ＣＭＤ＿ＷＡＩＴ状態（Ｔ７〜）と遷移する。
【００７７】
そして、コマンド制御回路１５２は、ＡＣＴ状態（Ｔ１、Ｔ２）と対応して、ＡＣＴコマンド（Ｔ１、Ｔ２）を出力する。また、Ａ２Ｗ＿ＷＡＩＴ状態（Ｔ３）、及びＷＲ状態（Ｔ４）と対応して、ＷＲコマンド（Ｔ３、Ｔ４）を出力する。また、ＷＢＳＴ＿ＷＡＩＴ状態（Ｔ５）、及びＷＲＡ状態（Ｔ６）と対応して、ＷＲＡコマンド（Ｔ５、Ｔ６）を出力する。各コマンドは、それぞれ２クロック分の長さに相当する。
【００７８】
また、コマンド制御回路１５２は、ＡＤＲ／ＣＭＤの出力先であるチップセレクトを選択するチップセレクト信号を、ＡＣＴコマンド（Ｔ１、Ｔ２）のうち最後のクロックに相当するタイミング（Ｔ２）で、イネーブルにする。また、チップセレクト信号を、ＷＲコマンド（Ｔ３、Ｔ４）のうち最後のクロックに相当するタイミング（Ｔ４）で、イネーブルにする。また、チップセレクト信号を、ＷＲＡコマンド（Ｔ５、Ｔ６）のうち最後のクロックに相当するタイミング（Ｔ６）で、イネーブルにする。
【００７９】
図７に示すように、Ｎ＝３に設定されている場合（３クロック制御）、コマンド制御回路１５２は、順に、ＩＤＬＥ状態（Ｔ０）、ＡＣＴ状態（Ｔ１、Ｔ２、Ｔ３）、Ａ２Ｗ＿ＷＡＩＴ状態（Ｔ４、Ｔ５）、ＷＲ状態（Ｔ６）、ＷＢＳＴ＿ＷＡＩＴ状態（Ｔ７、Ｔ８）、ＷＲＡ状態（Ｔ９）、ＣＭＤ＿ＷＡＩＴ状態（Ｔ１０〜）と遷移する。
【００８０】
そして、コマンド制御回路１５２は、ＡＣＴ状態（Ｔ１、Ｔ２、Ｔ３）と対応して、ＡＣＴコマンド（Ｔ１、Ｔ２、Ｔ３）を出力する。また、Ａ２Ｗ＿ＷＡＩＴ状態（Ｔ４、Ｔ５）、及びＷＲ状態（Ｔ６）と対応して、ＷＲコマンド（Ｔ４、Ｔ５、Ｔ６）を出力する。また、ＷＢＳＴ＿ＷＡＩＴ状態（Ｔ７、Ｔ８）、及びＷＲＡ状態（Ｔ９）と対応して、ＷＲＡコマンド（Ｔ７、Ｔ８、Ｔ９）を出力する。各コマンドは、それぞれ３クロック分の長さに相当する。
【００８１】
また、コマンド制御回路１５２は、ＡＤＲ／ＣＭＤの出力先であるチップセレクトを選択するチップセレクト信号を、ＡＣＴコマンド（Ｔ１、Ｔ２、Ｔ３）のうち最後のクロックに相当するタイミング（Ｔ３）で、イネーブルにする。また、チップセレクト信号を、ＷＲコマンド（Ｔ４、Ｔ５、Ｔ６）のうち最後のクロックに相当するタイミング（Ｔ６）で、イネーブルにする。また、チップセレクト信号を、ＷＲＡコマンド（Ｔ７、Ｔ８、Ｔ９）のうち最後のクロックに相当するタイミング（Ｔ９）で、イネーブルにする。
【００８２】
このように、コマンド制御回路１５２は、ＡＣＴコマンドについては、ＡＣＴ状態の長さ＝Ｎとして制御し、ＡＣＴ状態の長さに対応させてＡＣＴコマンドの長さを制御している。一方、ＷＲコマンドについては、Ａ２Ｗ＿ＷＡＩＴ状態の長さ＝Ｎ−１、ＷＲ状態の長さ＝１として制御し、Ａ２Ｗ＿ＷＡＩＴ状態とＷＲ状態の長さに対応させてＷＲコマンドの長さを制御している。また、ＷＲＡコマンドについては、ＷＢＳＴ＿ＷＡＩＴ状態の長さ＝Ｎ−１、ＷＲＡ状態の長さ＝１として制御し、ＷＢＳＴ＿ＷＡＩＴ状態とＷＲＡ状態の長さに対応させてＷＲＡコマンドの長さを制御している。
【００８３】
また、コマンド制御回路１５２は、チップセレクトについては、Ｎの長さのコマンドのうち、最後の１クロックに対応してチップセレクト信号をイネーブルにしている。
【００８４】
もちろん、上記のコマンド（ＡＣＴ、ＷＲ、ＷＲＡ）制御は、一例であり、他のコマンド制御についても同様に適用できる。すなわち、ＡＣＴコマンドの長さは、ＡＣＴ状態の長さに対応させることで制御される。一方、ＷＲコマンド、ＷＲＡコマンド、ＲＥ（リード）コマンド、及びＲＥＡ（オートプリチャージ付きリード）コマンドの長さは、１クロック制御の場合を除き、直前のウェイト状態（Ａ２Ｗ＿ＷＡＩＴ状態、ＷＢＳＴ＿ＷＡＩＴ状態、Ａ２Ｒ＿ＷＡＩＴ状態、ＲＢＳＴ＿ＷＡＩＴ状態、又はＰＨＩＴ＿ＷＡＩＴ状態）の長さＮ−１とコマンドの長さ１の合計に対応させることで制御される。
【００８５】
例えば、ＡＣＴコマンドの次にＷＲＡコマンドを発行する場合、１クロック制御では、内部状態は、ＡＣＴ状態（長さ＝１）、ＷＲＡ状態（長さ＝１）と遷移する。２クロック制御では、ＡＣＴ状態（長さ＝２）、Ａ２Ｗ＿ＷＡＩＴ状態（長さ＝１）、ＷＲＡ状態（長さ＝１）と遷移する。３クロック制御では、ＡＣＴ状態（長さ＝３）、Ａ２Ｗ＿ＷＡＩＴ状態（長さ＝２）、ＷＲＡ状態（長さ＝１）と遷移する。
【００８６】
ＲＥコマンド及びＲＥＡコマンドについては、図５〜図７のＡ２Ｗ＿ＷＡＩＴ状態、ＷＢＳＴ＿ＷＡＩＴ状態、ＷＲ状態、及びＷＲＡ状態を、それぞれ、Ａ２Ｒ＿ＷＡＩＴ状態、ＲＢＳＴ＿ＷＡＩＴ状態、ＲＥ状態、及びＲＥＡ状態に置き換えればよい。また、ＷＲコマンド、及びＷＲＡコマンドを、それぞれ、ＲＥコマンド、及びＲＥＡコマンドに置き換えればよい。
【００８７】
以上のようにＮを２以上に設定することで、ＣＬＫが高速である場合であっても、アドレス信号及びコマンド信号の信号レベルを安定させ、波形品質を確保することができる。すなわち、ＤＲＡＭ１６０に出力されたアドレス信号及びコマンド信号の信号レベルが、Ｎクロック長のうち遅くとも最後のクロックに対応する部分では、ＤＲＡＭ１６０で認識可能な所定の信号レベルに達するようになる。その結果、必要なセットアップホールド時間が確保され、ＤＲＡＭ１６０は、アドレス信号及びコマンド信号を認識することができる。また、Ｎの長さの信号のうち、最後の１クロックに対応してチップセレクト信号がイネーブルされる。これにより、波形品質が確保された適切なタイミングで、ＤＲＡＭに信号を取り込ませることができる。
【００８８】
例えば、図９（２クロック制御）に示すように、ＤＲＡＭ１６０が、２クロック目のＣＬＫの立ち上がりＴ２でＡＤＲ／ＣＭＤを取り込んで認識する場合を考える。なお、ＡＤＲ／ＣＭＤは、Ｔ１及びＴ２のタイミングの前後を挟む、２クロック分の長さで出力されるものとする。
【００８９】
ここで、通常、ＤＲＡＭ１６０が信号を認識するために必要な規定の信号ウィンドウの範囲（長さ）が規定されている。従って、ＤＲＡＭ１６０が信号を認識するためには、遅くともＴ２のタイミングにおいて、ＡＤＲ／ＣＭＤ信号の波形品質が安定し、かつ、当該波形品質が規定信号ウィンドウ範囲以上継続される必要がある。
【００９０】
２クロック制御では、２クロック長のＡＤＲ／ＣＭＤ信号は、Ｔ１のタイミングで波形品質が安定しなくても、遅くともＴ２のタイミングでは安定している。また、ＡＤＲ／ＣＭＤ信号の波形品質が安定する範囲は、Ｔ２のタイミングよりも前から始まるため、規定信号ウィンドウ範囲以上の大きい範囲となる。そのため、ＤＲＡＭ１６０は、ＡＤＲ／ＣＭＤを認識することができる。
【００９１】
３クロック以上の場合は、より確実に、波形品質を安定させ、その信号ウィンドウ範囲を大きくすることができる。
【００９２】
上記の電子機器１００の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な電子機器が備える構成を排除するものではない。また、上記の電子機器１００の構成は、構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。
【００９３】
例えば、ＤＲＡＭの枚数、ＤＲＡＭに搭載されたＤＲＡＭチップの数、チップセレクト数、などは、上記の例に限られない。また、例えば、メモリーコントローラーから、ＤＲＡＭアクセスを制御するインターフェイス部分を分離し、メモリーＰＨＹとして構成してもよい。
【００９４】
次に、上記のメモリーコントローラー１５０の特徴的な動作について説明する。
【００９５】
図１０は、メモリーコントローラーの処理の流れの一例を説明するフロー図である。本フローは、ＡＣＴ、ＷＲ、ＷＲＡ、ＲＥ、ＲＥＡコマンドに着目している。
【００９６】
本フローは、例えば、電子機器１００の電源がオンされて、その起動処理中に開始される。なお、レジスター設定（Ｓ１０）は、起動処理中に限られず、例えば、ユーザーの指示に応じて実行されてもよい。
【００９７】
本フローが開始されると、レジスター設定回路１５１は、例えば、ＣＰＵ１４０からＮの指定を受け付け、レジスター１５３に、Ｎを設定する（Ｓ１０）。
【００９８】
Ｎの設定を含む起動処理が完了すると、コマンド制御回路１５２は、ＤＲＡＭ１６０に対するコマンド発行するか否かを判定する（Ｓ２０）。
【００９９】
例えば、コマンド制御回路１５２は、ＣＰＵ１４０や内部ＩＰ等から、ＤＲＡＭ１６０へのアクセス要求を受信したか否かを監視する。そして、アクセス要求を受信した場合、当該アクセス要求を実行するために発行すべき一以上のコマンドを決定する。そして、決定した一以上のコマンドを所定の順序で発行していく。発行すべきコマンドがあれば、コマンド発行タイミングであると判定する。
【０１００】
コマンド発行しない場合（Ｓ２０：ＮＯ）、コマンド制御回路１５２は、判定を継続する。一方、コマンド発行する場合（Ｓ２０：ＹＥＳ）、コマンド制御回路１５２は、発行対象のコマンドの種別を判定する（Ｓ３０）。
【０１０１】
コマンド種別がＡＣＴコマンドである場合（Ｓ３０：ＡＣＴ）、コマンド制御回路１５２は、Ｓ１０で設定されているＮクロック分のＡＣＴコマンドを、インターフェイス１５５を介して出力するとともに、Ｎクロック目に相当するタイミングでＡＣＴコマンドの出力先のチップセレクトを選択するチップセレクト信号をインターフェイス１５５を介して出力する（Ｓ４０）。
【０１０２】
なお、Ｓ４０において、コマンド制御回路１５２は、内部状態としてＮクロック分のＡＣＴ状態をとることで、Ｎクロック分のＡＣＴコマンドを生成し、出力する。
【０１０３】
コマンド種別がＷＲコマンド、ＷＲＡコマンド、ＲＥコマンド、又はＲＥＡコマンドである場合（Ｓ３０：ＷＲ、ＷＲＡ、ＲＥ、又はＲＥＡ）、コマンド制御回路１５２は、Ｓ１０で設定されているＮクロック分の該当コマンドを、インターフェイス１５５を介して出力するとともに、遅くともＮクロック目に相当するタイミングで該当コマンドの出力先のチップセレクトを選択するチップセレクト信号をインターフェイス１５５を介して出力する（Ｓ５０）。
【０１０４】
なお、Ｓ５０において、コマンド制御回路１５２は、Ｎ＝２以上の場合、内部状態としてＮ−１クロック分のＷＡＩＴ状態をとった後、１クロック分の該当コマンド状態をとることで、Ｎクロック分の該当コマンドを生成し、出力する。
【０１０５】
Ｓ４０又はＳ５０の終了後、コマンド制御回路１５２は、処理をＳ２０に戻す。
【０１０６】
以上のようにして、設定されたＮによりアドレス信号及びコマンド信号の長さを変化させることができる。
【０１０７】
上述の図１０のフローの各処理単位は、メモリーコントローラー１５０の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。メモリーコントローラー１５０の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１０８】
以上、本発明の一実施形態について説明した。本実施形態によれば、より簡単な設計でメモリーを制御する信号の波形品質を確保することができる。
【０１０９】
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【０１１０】
また、本発明は、ＤＲＡＭを備えるシステムだけでなく、他のメモリーを備えるシステムに適用できる。
【符号の説明】
【０１１１】
１００：電子機器、１１０：コントローラー、１２０：エンジン部、１３０：ＳＯＣ、１４０：ＣＰＵ、１５０：メモリーコントローラー、１５１：レジスター設定回路、１５２：コマンド制御回路、１５３：レジスター、１５４：データ制御回路、１５５：インターフェイス、１６０：ＤＲＡＭ、１６１：標準ＤＲＡＭ、１６２：オプションＤＲＡＭ、１７０：Ｉ／Ｏ制御ＡＳＩＣ、２００：情報処理装置
【図１】
0005919973.tif 000002
【図２】
0005919973.tif 000003
【図３】
0005919973.tif 000004
【図４】
0005919973.tif 000005
【図５】
0005919973.tif 000006
【図６】
0005919973.tif 000007
【図７】
0005919973.tif 000008
【図８】
0005919973.tif 000009
【図９】
0005919973.tif 000010
【図１０】
0005919973.tif 000011