(57)【特許請求の範囲】
【請求項１】
メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置への書き込み及び読み出し制御方法であって、
入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列を上記メモリ装置に書き込む書き込み工程と、
上記メモリ装置に書き込んだ上記変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し工程と
を有することを特徴とするメモリ装置への書き込み及び読み出し制御方法。
【請求項２】
上記書き込み工程が、
上記変換後ビット列を構成する異なる論理値の数が同数又は近似した数となるように、入力データのビット列を上記変換後ビット列に変換し、
上記変換後ビット列に応じた出力信号を上記メモリ装置に書き込む
ことを特徴とする請求項１に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項３】
上記書き込み工程が、
上記電源供給インタフェース部の上記終端抵抗に流れるソース電流とシンク電流とが相殺されるように、入力データのビット列を上記変換後ビット列に変換し、
上記変換後ビット列に応じた出力信号を上記メモリ装置に書き込む
ことを特徴とする請求項１に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項４】
上記書き込み工程が、所定の符号変換テーブルを用いて、入力されたデータのビット列を上記変換後ビット列に変換し、
上記読み出し工程が、上記所定の符号変換テーブルを用いて、上記変換後ビット列を逆変換する
ことを特徴とする請求項１〜３のいずれかに記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項５】
上記書き込み工程が、入力データのビット列に含まれる８ビットを１０ビットに変換し、
上記読み出し工程が、上記メモリ装置からの変換後ビット列に含まれる１０ビットを８ビットに変換する
ことを特徴とする請求項１〜４のいずれかに記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項６】
上記書き込み工程が、
入力データのビット列から抽出した８ビットを、所定規則により３ビット群又は５ビット群に割り当て、
３ビット群を４ビット群に変換し、
５ビット群を６ビット群に変換する
ことを特徴とする請求項５に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項７】
上記書き込み工程が、
入力データのビット列から抽出した８ビットを、所定規則により５ビット群又は３ビット群に割り当て、
５ビット群を６ビット群に変換し、
３ビット群を４ビット群に変換する
ことを特徴とする請求項５に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項８】
上記読み出し工程が、上記変換後ビット列を逆変換してデータへの復元結果に基づいて、書き込み時のエラーの有無を確認することを特徴とする請求項１〜７のいずれかに記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項９】
メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置において、
入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列を書き込む書き込み手段と、
上記メモリ装置に書き込んだ上記変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し手段と
を備えることを特徴とするメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置へのデータ書き込み及び読み出し制御方法及びメモリ装置に関し、例えば、ＤＤＲ−ＳＤＲＡＭ（Double  Data  Rate-Synchronous  Dynamic  Random  Access  Memory）、ＤＤＲ２−ＳＤＲＡＭ、ＤＤＲ３−ＳＤＲＡＭなどのＳＳＴＬ（Stub  Series  Terminated  Logic）インタフェースを具備したＤＤＲメモリに適用し得るものである。
【背景技術】
【０００２】
例えば、パーソナルコンピュータやサーバの主記憶装置として使用されるＤＲＡＭは、現在ＤＤＲ３−ＤＲＡＭが主流である。このＤＤＲ３−ＳＤＲＡＭは、非特許文献１に記載されているように主に下記に示す信号ピンを備えている。
【０００３】
ＣＫ、ＣＫ＃：クロック信号。ＣＫは、ＤＤＲ３−ＳＤＲＡＭの動作基準となるタイミング決定を行う差動クロックを入力する。ＣＫの上がりエッジとＣＫ＃の下がりエッジの交点を基準にすべてのアドレスと制御入力信号はサンプリングされる。またＣＫはデータの出力を行う。
【０００４】
ＣＫＥ：クロックイネーブル信号。ＣＫＥは、デバイスの入出力信号に対してクロックの有効、無効を決定する。ＣＫＥ入力がＨｉｇｈの場合にはクロックは有効、Ｌｏｗの場合にはクロックは無効となる。プリチャージパワーダウン、セルフリフレッシュ、またはアクティブパワーダウン時にはＣＫＥをＬｏｗにする。
【０００５】
ＣＳ＃：チップセレクト信号。Ｌｏｗの場合にコマンド入力は有効、Ｈｉｇｈの場合にすべてのコマンド入力は無効となる。ただし動作中のコマンドはＣＳ＃をＨｉｇｈにしても継続される。
【０００６】
ＲＡＳ＃，ＣＡＳ＃，ＷＥ＃：ロウアドレスストローブ信号（ＲＡＳ）、カラムアドレスストローブ信号、（ＣＡＳ），ライトイネーブル信号（ＷＥ）。ＲＡＳ＃，ＣＡＳ＃，ＷＥ＃は、ＤＤＲ３−ＳＤＲＡＭの動作を決定するコマンドを入力する。
【０００７】
ＯＤＴ：オンダイターミネーション信号。Ｈｉｇｈの場合に内蔵する終端抵抗Ｒｔが有効となる。ＯＤＴはＤＱ、ＤＱＳ、ＤＱＳ＃、ＤＭのみ接続され、それ以外の入力ピン（ＣＫＥ、ＣＳ＃、ＲＡＳ＃、ＣＡＳ＃、ＷＥ＃、ＯＤＴ、ＲＥＳＥＴ＃、ＢＡ０−ＢＡ２、Ａ０−Ａｘ（ｘはメモリ容量による））には接続されていない。
【０００８】
ＤＭ（ＤＭＵ  ＤＭＬ）：データマスク信号。ライト動作時にＨｉｇｈの場合、データ入力はマスクされデバイスへ書き込みが行われない。
【０００９】
ＢＡ０−ＢＡ２：バンクアドレス信号。ＢＡ０−ＢＡ２は、アクティブコマンド時にリード／ライトするバンクを選択する。また、ＢＡ０−ＢＡ２は、モードレジスタの種類（ＭＲ０〜ＭＲ３）を選択するためにも利用される。
【００１０】
Ａ０−Ａｘ：アドレス信号。Ａ０−Ａｘは、メモリアレイのリード／ライトを実施するセル位置を指定するアドレスを入力する。Ａ０−Ａｘは、アクティブコマンド入力時にロウアドレス、リード／ライトコマンド入力時にバースト動作の先頭カラムアドレスを選択する。Ａ０−Ａｘは、モードレジスタ設定にも用いられる。
【００１１】
Ａ１０／ＡＰ：オートプリチャージ信号。リード／ライトコマンド時に指定するカラムアドレスにＡ１０は使用せず、代わりにＡ１０はリード／ライト後にアクセスしているバンクに対して、オートプリチャージを行うか（Ａ１０＝Ｈｉｇｈ）、行わないか（Ａ１０＝Ｌｏｗ）を指定するために用いられる。またプリチャージコマンド入力時にＡ１０はプリチャージの対象バンクの選択に用いられる。Ａ１０がＬｏｗのときプリチャージはバンク１つに対してのみ行い、Ａ１０がＨｉｇｈのときプリチャージは全てのバンクに対して行われる。プリチャージの対象バンクはバンクアドレスで選択する。
【００１２】
Ａ１２／ＢＣ＃：バーストチョップ信号。リード／ライトコマンド入力時バースト動作を４データ分で中断するか（Ａ１２＝Ｌｏｗ）、又は行わないか（Ａ１２＝Ｈｉｇｈ）を選択する。
【００１３】
ＲＥＳＥＴ＃：リセット信号。リセットピンにＬｏｗを入力するとデバイスはリセットされる。
【００１４】
ＤＱ：データ信号。データの入出力を行う。
【００１５】
ＤＱＳ  ＤＱＳ＃：データストローブ信号。ＤＱＳ  ＤＱＳ＃は、データのリード／ライトのタイミングを指定する差動ストローブ信号である。
【００１６】
ＤＤＲメモリの上記の信号はＣＰＵやＦＰＧＡなどのメモリコントローラと接続されるが、動作周波数の高速化にともなって生じるノイズや反射による信号の劣化を低減するために、ＤＤＲメモリは、図２に示す構造をしたＳＳＴＬインタフェースが採用されている。
【００１７】
ＳＳＴＬインタフェースは、ＤＤＲメモリの電源電圧の１／２の電圧に接続された終端抵抗がある。例えば、ＤＤＲ３−ＳＤＲＡＭであれば、電源電圧１．５Ｖなので終端抵抗には０．７５Ｖが接続される。ＤＤＲ３−ＳＤＲＡＭではこの終端抵抗はＤＱピン、ＤＱＳピンおよびＤＭピンにはＤＤＲメモリに内蔵されており、アドレスなどの制御信号ピンには、終端抵抗を近傍に実装することが推奨されている。この終端抵抗ＲＴに流れる電流の方向は、コントローラの各端子の出力信号レベルで異なり、出力信号がＨｉｇｈの場合に電流はソース方向、出力信号がＬｏｗの場合に電流はシンク方向となる。
【００１８】
ＤＤＲメモリを使用した回路の構成（トポロジー）としては主に３つが考えられる。
【００１９】
１つ目は基本的な構成として図３に示す様に、ＣＰＵやＦＰＧＡに搭載されるメモリコントローラ５１とＤＤＲメモリ（ＤＤＲ＿ａ）５２とが１対１で接続されるトポロジーである。アドレスなどの制御信号およびデータは全てメモリコントローラ５１と１対１で接続される構成となっている。
【００２０】
２つ目は図４に示す様に、１つのコントローラ５１が、複数（図４では４個）のＤＤＲメモリ（ＤＤＲ＿ａ〜ＤＤＲ＿ｄ）５２−１〜５２−４とツリー状に接続されるトポロジーである。このトポロジーは、例えばＤＤＲ２−ＳＤＲＡＭで採用されており、Ｔブランチトポロジーと呼ばれている。アドレスなどの制御信号はメモリコントローラ５１から出て枝分かれして各ＤＤＲメモリ（ＤＤＲ２−ＳＲＡＭ）５２−１〜５２−４に接続する構成となっており、データはメモリコントローラ５２と各ＤＤＲメモリ５２−１〜５２−４との１対１で接続する構成となっている。
【００２１】
最後に３つ目は図５に示す様に、１つのメモリコントローラ５１から複数（図５では４個）のＤＤＲメモリ（ＤＤＲ＿ａ〜ＤＤＲ＿ｄ）５２−１〜５２−４に対し、カスケードに接続されるトポロジーである。このトポロジーは、例えばＤＤＲ３−ＳＤＲＡＭから採用されており、フライバイ・トポロジーと呼ばれている。アドレス、コマンド、クロックの制御信号が全てのＤＤＲメモリ（ＤＤＲ３−ＳＤＲＡＭ）に対し、カスケードに接続される構成となっており、各々のデバイスへの信号到着時刻のずれを考慮してデータの入出力制御を行っている。データはメモリコントローラ５１と各ＤＤＲメモリ５２−１〜５２−４との１対１で接続する構成となっている。
【００２２】
例えば上記のようなＤＤＲメモリの特性を使用したものに特許文献１がある。この特許文献１の記載技術は、画像の隣接画素にはデータの相関がある。つまり同じようなデータであることを利用し、片方の画素データを反転してＤＤＲメモリにライトすることで、ＤＱのシンク電流とソース電流が相殺されるように構成し、消費電流を抑制するものである。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００７−４１６６８号公報
【非特許文献】
【００２４】
【非特許文献１】ＪＥＤＥＣ  ＪＥＳＤ７９−３Ｆ  ＤＤＲ３  ＳＤＲＡＭ  ＳＴＡＮＤＡＲＤ
【発明の概要】
【発明が解決しようとする課題】
【００２５】
しかしながら、上述した特許文献１の記載技術は取り扱うデータが画像データである必要があるため、それ以外のデータでは利用することができないという問題がある。
【００２６】
そのため、メモリ装置への高密度実装によるノイズの影響を受け易くなっていることと、ｅｃｏの観点から装置の低消費電力化、つまり回路の消費電力低減が望まれている。
【００２７】
ＤＤＲメモリのデータバス（ＤＱ）のシンク電流及びソース電流は相殺されて差分の端子の終端電流のみがＶｔｔ電源に流れる。
【００２８】
そこで、本発明は、出力信号レベルのＨｉｇｈとＬｏｗの本数が同じであった場合、Ｖｔｔ電源には終端電流は流れないことに着目し、できるだけＨｉｇｈとＬｏｗの本数が等しくなるようにデータを変換し、回路の消費電力を抑えること、また消費電流を低く抑え、ノイズの発生を抑制し、誤動作のリスクを低減することができるメモリ装置への書き込み及び読み出し制御方法及びメモリ装置を提供しようとするものである。
【課題を解決するための手段】
【００２９】
かかる課題を解決するために、第１の本発明に係るメモリ装置への書き込み及び読み出し制御方法は、メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置への書き込み及び読み出し制御方法であって、（１）入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列をメモリ装置に書き込む書き込み工程と、（２）メモリ装置に書き込んだ変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し工程とを有することを特徴とする。
【００３０】
第２の本発明に係るメモリ装置は、メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置において、（１）入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列を書き込む書き込み手段と、（２）メモリ装置に書き込んだ変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し手段とを備えることを特徴とする。
【発明の効果】
【００３１】
本発明によれば、出力信号レベルのＨｉｇｈとＬｏｗの本数が等しくなるようにデータを変換し、回路の消費電力を抑え、また消費電流を低く抑え、ノイズの発生を抑制し、誤動作のリスクを低減することができる。
【図面の簡単な説明】
【００３２】
【図１】実施形態に係るメモリコントローラの構成を示す構成図である。
【図２】ＤＤＲメモリに採用されるＳＳＴＬインタフェースの構成を示す回路図である。
【図３】従来のＤＤＲメモリの回路構成を示す回路図である（その１）。
【図４】従来のＤＤＲメモリの回路構成を示す回路図である（その２）。
【図５】従来のＤＤＲメモリの回路構成を示す回路図である（その３）。
【図６】実施形態に係る５Ｂ／６Ｂ符号変換及び３Ｂ／４ｂ符号変換に係る変換テーブルの構成を示す構成図である。
【図７】実施形態に係る８Ｂ／１０Ｂ符号変換処理の動作を示すフローチャートである。
【図８】実施形態に係る符号変換前データのＬＳＢから５ｂｉｔ群、３ｂｉｔ群に割り当てた例を示す図である。
【図９】実施形態に係る符号化変換前データを３ｂｉｔ群、５ｂｉｔ群に対しランダムに割り当てた例を示す図である。
【発明を実施するための形態】
【００３３】
（Ａ）主たる実施形態
以下では、本発明に係るメモリ装置へのデータ書き込み／読み出し制御方法及びメモリ装置の実施形態を、図面を参照しながら詳細に説明する。
【００３４】
（Ａ−１）実施形態の構成
図１は、実施形態に係るメモリコントローラの構成を示す構成図である。図１では、メモリコントローラ１がメモリ装置としてのＤＤＲメモリ部２と接続している場合の構成を示している。
【００３５】
ＤＤＲメモリ部２は、複数のＤＤＲメモリを有して構成されるものであり、ＤＤＲメモリ部２を構成する各ＤＤＲメモリは、メモリコントローラ１と接続されている。また、ＤＤＲメモリ部２を構成する各ＤＤＲメモリは、動作周波数の高速化に伴って生じるノイズや反射による信号の劣化を低減するために、電源供給インタフェースとしてＳＳＴＬ２１を備えている。ＤＤＲメモリ部２を構成する各ＤＤＲメモリは、例えば、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ、ＤＤＲ３−ＳＤＲＡＭ等を適用することができる。
【００３６】
メモリコントローラ１は、ＤＤＲメモリ部２を構成する複数のＤＤＲメモリに対して書き込み及び読み出しを行うものである。メモリコントローラ１は、図１に示すように、メモリコントローラ部１１、制御部１２、８Ｂ／１０Ｂエンコーダ／デコーダ部１３を有する。
【００３７】
制御部１２は、例えばＣＰＵやＦＰＧＡを適用することができる。
【００３８】
メモリコントローラ部１１は、アドレス／制御線３２及びデータバス３２を介してＤＤＲメモリ部２と接続しており、制御部１２の制御を受けて、アドレス等の制御信号及びデータ信号を授受するものである。メモリコントローラ部１１は、既存のメモリコントローラを適用することができるため、ここでの詳細な説明は省略する。
【００３９】
８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、ＤＤＲメモリ部２にデータ書き込みを行う際に、制御部１２からのデータ（８ｂｉｔデータ）を８ｂｉｔデータから１０ｂｉｔデータに変換し、その変換後の１０ｂｉｔデータをメモリコントローラ部１１に与える。また、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、ＤＤＲメモリ部２からデータ読み出しをする際に、メモリコントローラ部１１からの１０ｂｉｔデータを８ｂｉｔデータに変換して、元の８ｂｉｔデータに戻してＣＰＵ１２に与える。
【００４０】
（Ａ−２）実施形態の動作
次に、この実施形態に係るメモリコントローラ１におけるメモリ装置２への書き込み制御及び読み出し制御の処理の動作を、図面を参照しながら詳細に説明する。
【００４１】
ＤＤＲメモリ部２は、上述したように複数のＤＤＲメモリを有して構成されており、メモリコントローラ１が、上記複数のＤＤＲメモリに対してデータ書き込み及びデータ読み出しを実施する。
【００４２】
例えば、データバス（ＤＱ）が１６ｂｉｔの５個のＤＤＲメモリで構成されているとすると、ＤＤＲメモリ部２とメモリコントローラ部１１を含む制御部１２は８０ｂｉｔのデータバス３２で接続される。
【００４３】
ＣＰＵ等の制御部１２からＤＤＲメモリ部２の各ＤＤＲメモリへの書き込みを実施するデータは、８Ｂ／１０Ｂエンコーダ／デコーダ部１３に与えられる。８Ｂ／１０Ｂエンコーダ／デコーダ部１３では、制御部１２からの８ｂｉｔデータが１０ｂｉｔデータに変換されるため、データは２０％のオーバヘッドを持つことになる。つまり、８０ｂｉｔのうち、６４ｂｉｔが制御部１２からの有効データであり、残りの１６ｂｉｔはオーバヘッドとなる。
【００４４】
８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、シリアルデータの中にクロックを埋め込むことで、データとクロックの転送を同一信号にて行うことが特徴であり、高速シリアル通信に用いられている。ここで、データの転送先はクロックを再生するため、ビット０とビット１の出現に偏りが生じないよう工夫がされた方式となっている。
【００４５】
例えば、この再生方式は、８ｂｉｔのデータを３ｂｉｔと５ｂｉｔに分け、３ｂｉｔを４ｂｉｔに変換する３Ｂ／４Ｂ符号変換処理と、５ｂｉｔを６ｂｉｔに変換する５Ｂ／６Ｂ符号変換処理を行い、３ｂｉｔ及び５ｂｉｔに分割したそれぞれに１ｂｉｔを付加して６ｂｉｔと４ｂｉｔに変換している。
【００４６】
図６は、実施形態に係る５Ｂ／６Ｂ符号変換及び３Ｂ／４Ｂ符号変換に係る変換テーブルの構成を示す構成図である。図６（Ａ）は、５Ｂ／６Ｂ符号変換テーブルであり、図６（Ｂ）は、３Ｂ／４Ｂ符号変換テーブルである。
【００４７】
図６（Ａ）において、５Ｂ／６Ｂ符号変換には、変換前の５ｂｉｔデータを６ｂｉｔデータに変換した変換後のｂｉｔ列について、ビット０の数とビット１の数との差分（図６（Ａ）では、「０１差分」と表記している。）が「＋２」（すなわち、ビット１の数がビット０の数よりも「＋２」）若しくは「０」（すなわち、差分が「０」）の３２個の変換パターンと、ビット０の数とビット１の数との差が「−２」（ビット１が「−２」）若しくは「０」（すなわち、差分が「０」）の３２個の変換パターンがある。
【００４８】
また、図６（Ｂ）において、３Ｂ／４Ｂ符号変換についても同様に、変換前の３ｂｉｔデータを４ｂｉｔデータに変換した変換後のｂｉｔ列について、ビット０の数とビット１の数との差（「０１差分」）が「＋２」若しくは「０」の８個の変換パターンと、ビット０数とビット１の数との差が「−２」若しくは「０」の８個の変換パターンがある。
【００４９】
このように、ビット０の数とビット１の数の差分の不均衡はランニング・ディスパリティと呼ばれ、符号変換済みデータのｂｉｔ列が、ビット０とビット１のどちらに偏っているのかを表している。ビット０の数がビット１よりも多い場合には「ＲＤ−」、ビット１の数がビット０よりも多い場合には「ＲＤ＋」と表現される。ＲＤ＋の状態で符号変換を実施する場合にはＲＤ−のパターンを選択し、逆にＲＤ−の状態ならば符号変換時はＲＤ＋のパターンを選択する。ただし、ビット１の数とビット０の数が同じであれば、ＲＤの極性は継続される。この性質を用いて極性の違反を検出することにより、それ以前の送信データにエラーが含まれていることを検出することも可能である。
【００５０】
例えば、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、符号変換前の有効な６４ｂｉｔデータを６４ｂｉｔ長のシリアルデータと考え、８Ｂ／１０Ｂ符号変換処理を実施する。６４ｂｉｔをどのようにして３ｂｉｔ群と５ｂｉｔ群に分けるのかは任意であるが、並びは３ｂｉｔ群と５ｂｉｔ群を交互に配置する。また、ＲＤの初期値を「−」とするか又は「＋」とするのかについても任意である。ただし、設定として一度決定した３ｂｉｔ群と５ｂｉｔ群の分け方、配置およびＲＤの初期値は統一して実施することが必要となる。
【００５１】
図７は、実施形態に係る８Ｂ／１０Ｂ符号変換処理の動作を示すフローチャートである。
【００５２】
図８は、符号変換前データのＬＳＢ（最下位ビット：Least  Significant  bit）から５ｂｉｔ群、３ｂｉｔ群に割り当てた例を示す図である。つまり、図８に示すように、ＬＳＢから順番に５ｂｉｔを５ｂｉｔ群に割り当て、次の３ｂｉｔを３ｂｉｔ群に割り当てている。
【００５３】
また、図９は、符号化変換前データを３ｂｉｔ群、５ｂｉｔ群に対しランダムに割り当てた例を示す図である。つまり、図９では、８ｂｉｔのうち先頭ビットを３ｂｉｔ群に割り当て、次の７ｂｉｔについてランダムに３ｂｉｔ群、５ｂｉｔ群に割り当てるようにしているが、先頭ビットを除く７ｂｉｔ列の各ｂｉｔを、３ｂｉｔ群と５ｂｉｔ群のいずれかに分配する規則性は一貫するようにしている。なお、図９では、先頭ビットを３ｂｉｔ群に分配しているが、規則性を保持できるのであれば、先頭ビットを５ｂｉｔ群に分配するようにしても良い。
【００５４】
８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、符号変換後の８０ｂｉｔのデータをそのままメモリコントローラ部１１を経由して、メモリコントローラ１を含んだＣＰＵなどのデバイスの端子から出力され、ＤＤＲメモリ部２へ書き込みが実施される。
【００５５】
ここで、制御部１２からのデータをＤＤＲメモリ部２に書き込むときの動作を具体的に説明する。ここでは、図８に例示する割り当て方法を用いて説明する。
【００５６】
例えば、制御部１２からの書き込みデータが６４ｂｉｔであり、書き込みデータが「０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００」（全てゼロ）である場合を例示する。
【００５７】
８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、すべてゼロの６４ｂｉｔデータを最下位ビットから順に５ビット群及び３ビット群に割り当てて、８０ｂｉｔデータに変換する。このとき、８０ｂｉｔのデータはＲＤの初期値を「−」とした場合（Ｓ１０１）、最下位の１ビット目〜５ビット目の５ｂｉｔ（０００００）は、５Ｂ／６Ｂ符号変換テーブルの「ＲＤ−」のパターンに変換されるため（１１１００１）となる（Ｓ１０２）。
【００５８】
次に、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、直前までの符号変換後のビット列のビット０とビット１の累積差分を求め（Ｓ１０３）、ビット０の数＜ビット１の数の場合に処理はＳ１０４に移行し、ビット０の数＝ビット１の数の場合に処理はＳ１０５に移行し、ビット０の数＞ビット１の数の場合に処理はＳ１０６に移行する。
【００５９】
例えば、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、その上の６ビット目〜８ビット目の３ｂｉｔ（０００）を３Ｂ／４Ｂ符号変換するが、直前までの符号変換後のビット列（１１１００１）はビット１の方が２ｂｉｔだけ多く「ＲＤ＋」であったため、処理をＳ１０４に移行する。そして、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、３Ｂ／４Ｂ符号変換テーブルを参照して、６ビット目〜８ビット目の３ｂｉｔ（０００）を、３Ｂ／４Ｂ符号変換テーブルの「ＲＤ＋」のパターンの（００１０）に変換する。上記のようにして、１ｂｉｔ目〜８ｂｉｔ目の符号変換を実施できる。
【００６０】
次に、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、その上の９ビット目〜１３ビット目の５ｂｉｔ（０００００）について、同様に、５Ｂ／６Ｂ符号変換する。このとき、全ｂｉｔについて符号変換が完了していないため（Ｓ１０７）、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、符号変換したｂｉｔの直前までの符号変換後のビット列のビット０とビット１の累積差分を求め（Ｓ１０８）、ビット０の数＜ビット１の数の場合に処理はＳ１０９に移行し、ビット０の数＝ビット１の数の場合に処理はＳ１１０に移行し、ビット０の数＞ビット１の数の場合に処理はＳ１１１に移行する。
【００６１】
例えば、９ビット目〜１３ビット目の５ｂｉｔ（０００００）について符号変換を行うとき、直前までの符号変換後のビット列は（１１１００１００１０）である。このとき、直前の符号変化後のビット列はビット０の数とビット１の数は等しい（ビット０の数もビット１の数も「５個」である）ため、５Ｂ／６Ｂ符号変換ではＲＤ＋を保持し、９ビット目〜１３ビット目の５ｂｉｔ（０００００）は、５Ｂ／６符号変換テーブルのＲＤ＋のパターン（０００１１０）に変換される。
【００６２】
このようにして、制御部１２からの６４ｂｉｔの書き込みデータを全て変換すると、変換後の８０ｂｉｔデータは、「１１０１＿０００１１０＿００１０＿１１１００１＿１１０１＿０００１１０＿００１０＿１１１００１＿１１０１＿０００１１０＿００１０＿１１１００１＿１１０１＿０００１１０＿００１０＿１１１００１」となる。
【００６３】
この８０ｂｉｔのビット列は、ビット０とビット１の数の差が０となっている。ＣＰＵなどのメモリコントローラ部１１を含んだデバイスの端子とＤＤＲメモリのＤＱ端子を接続する８０ｂｉｔのデータバス３２のうち、ビット０のバスはシンク電流が流れ、ビット１のバスはソース電流が流れる。
【００６４】
例えば、シンク／ソース電流が１０ｍＡであったとすると、従来の８Ｂ／１０Ｂエンコーダ／デコーダ部１３が無い構成では、シンク電流が１０ｍＡ×８０ｂｉｔでＶｔｔ電源は８００ｍＡの電流を供給することになる。これに対して、この実施形態のメモリコントローラ１によれば、シンク電流が１０ｍＡ×４０ｂｉｔとなり、ソース電流が１０ｍＡ×４０ｂｉｔとなり、シンク電流とソース電流とは互いの電流の向きが逆であるため相殺されてＶｔｔ電源に流れる電流はゼロとなるのである。
【００６５】
次に、制御部１２がＤＤＲメモリ部２からデータを読み出すときの動作を説明する。
【００６６】
ＣＰＵなどの制御部１２がＤＤＲメモリ部２からの読み出しを実施する場合は、ＤＤＲメモリ部２から出力されたデータが、メモリコントローラ部１１を経由して、８Ｂ／１０Ｂエンコーダ／デコーダ部１３に入力される。８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、入力された８０ｂｉｔを、６４ｂｉｔに変換して制御部２に与える。
【００６７】
例えば、上記の書き込み処理の動作説明で、ＤＤＲメモリ部２に書き込んだアドレスからデータを読み出す場合を例示する。このとき、ＤＤＲメモリ部２から出力される８０ｂｉｔのビット列は、書き込み時と同じ「１１０１＿０００１１０＿００１０＿１１１００１＿１１０１＿０００１１０＿００１０＿１１１００１＿１１０１＿０００１１０＿００１０＿１１１００１＿１１０１＿０００１１０＿００１０＿１１１００１」となる。
【００６８】
ビット０はシンク電流が流れ、ビット１はソース電流が流れる。シンク／ソース電流が１０ｍＡであったとすると、シンク電流が１０ｍＡ×４０ｂｉｔ、ソース電流が１０ｍＡ×４０ｂｉｔ、互いの電流の向きが逆であるため相殺されて、書き込み時と同様Ｖｔｔ電源に流れる電流はゼロとなる。
【００６９】
メモリコントローラ部１１を経由して８Ｂ／１０Ｂエンコーダ／デコーダ部１３に入力された８０ｂｉｔのデータは、まず５Ｂ／６Ｂ符号変換テーブルの「ＲＤ−（書き込み時の初期ＲＤを−としていたため）」から、最下位の１ビット目〜６ビット目の６ｂｉｔ（１１１００１）のパターンを検索し、該当する元のデータ（０００００）へ復元する。
【００７０】
ここで、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、直前までの符号変換後のビット列（１ビット目〜６ビット目の６ｂｉｔ）（１１１００１）のビット０とビット１の累積差分は、ビット０の数＜ビット１の数である。
【００７１】
次に、８Ｂ／１０Ｂエンコーダ／デコーダ部１３は、その上の７ビット目〜１０ビット目の４ｂｉｔ（００１０）を３Ｂ／４Ｂ符号変換テーブルの「ＲＤ＋」より検索し、７ビット目〜１０ビット目の４ｂｉｔ（００１０）を元のデータ（０００）へ復元する。
【００７２】
これ以後、同様にデータを復元していくと、６４ｂｉｔのデータは「０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００＿０００＿０００００」（すべてゼロ）となり、元のデータに復元することができるのである。
【００７３】
なお、各符号変換テーブルを用いて元のデータへ復元する際に、符号変換テーブルにはないパターンとなっていれば、書き込み時もしくは読み出し時にｂｉｔ誤り（エラー）が発生していることを検出することが可能である。
【００７４】
これまではＤＤＲメモリ部２は個別のＤＤＲメモリデバイスを５つ搭載した形態で説明をしたが、例えば複数のＤＤＲメモリで構成されたＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）に対し、書き込みまたは読み出しを実施する構成としてもよい。一般的にＤＩＭＭは６４ｂｉｔ以上のデータバスであるため、６４ｂｉｔのデータバスで考えると、ＣＰＵなどの制御部２からＤＤＲメモリ部２へ書き込みを実施したいデータは８Ｂ／１０Ｂエンコーダ／デコーダ部１３の８Ｂ／１０Ｂ符号変換により、２０％のオーバヘッドをもつことになる。つまり６４ｂｉｔのうち４８ｂｉｔが制御部２からの有効データであり、１２ｂｉｔがオーバヘッド、残りの４ｂｉｔは未使用となる。
【００７５】
（Ａ−３）実施形態の効果
以上のように、この実施形態によれば、ＤＤＲメモリに書き込むデータに８Ｂ／１０Ｂ符号変換を施すことで、ＤＤＲメモリへのデータ書き込み時および読み出し時のデータバスのＨｉｇｈレベルとなるｂｉｔとＬｏｗレベルとなるｂｉｔの数の差は±２もしくは０となる。データバスのＳＳＴＬインタフェースの終端抵抗に流れるシンク電流、ソース電流は、ＨｉｇｈとＬｏｗのｂｉｔ数の差が０の場合はシンク電流、ソース電流がすべて相殺され、終端抵抗の電源としては電流を消費しない。また、ＨｉｇｈとＬｏｗのｂｉｔ数の差が±２の場合でもほとんどのシンク電流、ソース電流は相殺され、電源としては最小限の消費電流で済むという効果が得られる。また、消費電流を極力低く抑えているため、電流が急激に変化しない、すなわち磁界や電界が急激に変化しないためノイズの発生を抑制することができ、誤動作のリスクを低減することが可能となる。
【００７６】
また、この実施形態によれば、８Ｂ／１０Ｂ符号変換により元のデータに復元する際、ＤＤＲメモリより読み出したデータが符号変換テーブルにないデータであればデータが誤っているとしてエラーを検出することが可能である。
【００７７】
（Ｂ）他の実施形態
上述した実施形態では、ＳＳＴＬインタフェースを具備したＤＤＲメモリについて説明したが、ＨＳＴＬインタフェースを具備したＱＤＲメモリについても同様の終端抵抗を使用するため適用が可能である。
【符号の説明】
【００７８】
１…メモリコントローラ、１１…メモリコントローラ部、１２…制御部、１３…８Ｂ／１０Ｂエンコーダ／デコーダ部、２…ＤＤＲメモリ部、２１…ＳＳＴＬインタフェース、３１…アドレス／制御線、３２…データバス。
【図１】
0006398801.tif 000002
【図２】
0006398801.tif 000003
【図３】
0006398801.tif 000004
【図４】
0006398801.tif 000005
【図５】
0006398801.tif 000006
【図６】
0006398801.tif 000007
【図７】
0006398801.tif 000008
【図８】
0006398801.tif 000009
【図９】
0006398801.tif 000010