特許第6398801号(P6398801)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 沖電気工業株式会社の特許一覧

特許6398801メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置
<>
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000002
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000003
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000004
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000005
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000006
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000007
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000008
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000009
  • 特許6398801-メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6398801
(24)【登録日】2018年9月14日
(45)【発行日】2018年10月3日
(54)【発明の名称】メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180920BHJP
   G11C 7/10 20060101ALI20180920BHJP
【FI】
   G06F12/00 560A
   G06F12/00 550E
   G11C7/10 150
【請求項の数】9
【全頁数】14
(21)【出願番号】特願2015-45805(P2015-45805)
(22)【出願日】2015年3月9日
(65)【公開番号】特開2016-167125(P2016-167125A)
(43)【公開日】2016年9月15日
【審査請求日】2017年11月20日
(73)【特許権者】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100180275
【弁理士】
【氏名又は名称】吉田 倫太郎
(74)【代理人】
【識別番号】100161861
【弁理士】
【氏名又は名称】若林 裕介
(74)【代理人】
【識別番号】100090620
【弁理士】
【氏名又は名称】工藤 宣幸
(72)【発明者】
【氏名】木村 克彦
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2011−123609(JP,A)
【文献】 国際公開第2010/146715(WO,A1)
【文献】 特開2010−204881(JP,A)
【文献】 特表2005−520458(JP,A)
【文献】 特開2002−366419(JP,A)
【文献】 国際公開第2001/080249(WO,A1)
【文献】 特開昭59−10056(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G11C 7/10
(57)【特許請求の範囲】
【請求項1】
メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置への書き込み及び読み出し制御方法であって、
入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列を上記メモリ装置に書き込む書き込み工程と、
上記メモリ装置に書き込んだ上記変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し工程と
を有することを特徴とするメモリ装置への書き込み及び読み出し制御方法。
【請求項2】
上記書き込み工程が、
上記変換後ビット列を構成する異なる論理値の数が同数又は近似した数となるように、入力データのビット列を上記変換後ビット列に変換し、
上記変換後ビット列に応じた出力信号を上記メモリ装置に書き込む
ことを特徴とする請求項1に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項3】
上記書き込み工程が、
上記電源供給インタフェース部の上記終端抵抗に流れるソース電流とシンク電流とが相殺されるように、入力データのビット列を上記変換後ビット列に変換し、
上記変換後ビット列に応じた出力信号を上記メモリ装置に書き込む
ことを特徴とする請求項1に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項4】
上記書き込み工程が、所定の符号変換テーブルを用いて、入力されたデータのビット列を上記変換後ビット列に変換し、
上記読み出し工程が、上記所定の符号変換テーブルを用いて、上記変換後ビット列を逆変換する
ことを特徴とする請求項1〜3のいずれかに記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項5】
上記書き込み工程が、入力データのビット列に含まれる8ビットを10ビットに変換し、
上記読み出し工程が、上記メモリ装置からの変換後ビット列に含まれる10ビットを8ビットに変換する
ことを特徴とする請求項1〜4のいずれかに記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項6】
上記書き込み工程が、
入力データのビット列から抽出した8ビットを、所定規則により3ビット群又は5ビット群に割り当て、
3ビット群を4ビット群に変換し、
5ビット群を6ビット群に変換する
ことを特徴とする請求項5に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項7】
上記書き込み工程が、
入力データのビット列から抽出した8ビットを、所定規則により5ビット群又は3ビット群に割り当て、
5ビット群を6ビット群に変換し、
3ビット群を4ビット群に変換する
ことを特徴とする請求項5に記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項8】
上記読み出し工程が、上記変換後ビット列を逆変換してデータへの復元結果に基づいて、書き込み時のエラーの有無を確認することを特徴とする請求項1〜7のいずれかに記載のメモリ装置への書き込み及び読み出し制御方法。
【請求項9】
メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置において、
入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列を書き込む書き込み手段と、
上記メモリ装置に書き込んだ上記変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し手段と
を備えることを特徴とするメモリ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ装置へのデータ書き込み及び読み出し制御方法及びメモリ装置に関し、例えば、DDR−SDRAM(Double Data Rate-Synchronous Dynamic Random Access Memory)、DDR2−SDRAM、DDR3−SDRAMなどのSSTL(Stub Series Terminated Logic)インタフェースを具備したDDRメモリに適用し得るものである。
【背景技術】
【0002】
例えば、パーソナルコンピュータやサーバの主記憶装置として使用されるDRAMは、現在DDR3−DRAMが主流である。このDDR3−SDRAMは、非特許文献1に記載されているように主に下記に示す信号ピンを備えている。
【0003】
CK、CK#:クロック信号。CKは、DDR3−SDRAMの動作基準となるタイミング決定を行う差動クロックを入力する。CKの上がりエッジとCK#の下がりエッジの交点を基準にすべてのアドレスと制御入力信号はサンプリングされる。またCKはデータの出力を行う。
【0004】
CKE:クロックイネーブル信号。CKEは、デバイスの入出力信号に対してクロックの有効、無効を決定する。CKE入力がHighの場合にはクロックは有効、Lowの場合にはクロックは無効となる。プリチャージパワーダウン、セルフリフレッシュ、またはアクティブパワーダウン時にはCKEをLowにする。
【0005】
CS#:チップセレクト信号。Lowの場合にコマンド入力は有効、Highの場合にすべてのコマンド入力は無効となる。ただし動作中のコマンドはCS#をHighにしても継続される。
【0006】
RAS#,CAS#,WE#:ロウアドレスストローブ信号(RAS)、カラムアドレスストローブ信号、(CAS),ライトイネーブル信号(WE)。RAS#,CAS#,WE#は、DDR3−SDRAMの動作を決定するコマンドを入力する。
【0007】
ODT:オンダイターミネーション信号。Highの場合に内蔵する終端抵抗Rtが有効となる。ODTはDQ、DQS、DQS#、DMのみ接続され、それ以外の入力ピン(CKE、CS#、RAS#、CAS#、WE#、ODT、RESET#、BA0−BA2、A0−Ax(xはメモリ容量による))には接続されていない。
【0008】
DM(DMU DML):データマスク信号。ライト動作時にHighの場合、データ入力はマスクされデバイスへ書き込みが行われない。
【0009】
BA0−BA2:バンクアドレス信号。BA0−BA2は、アクティブコマンド時にリード/ライトするバンクを選択する。また、BA0−BA2は、モードレジスタの種類(MR0〜MR3)を選択するためにも利用される。
【0010】
A0−Ax:アドレス信号。A0−Axは、メモリアレイのリード/ライトを実施するセル位置を指定するアドレスを入力する。A0−Axは、アクティブコマンド入力時にロウアドレス、リード/ライトコマンド入力時にバースト動作の先頭カラムアドレスを選択する。A0−Axは、モードレジスタ設定にも用いられる。
【0011】
A10/AP:オートプリチャージ信号。リード/ライトコマンド時に指定するカラムアドレスにA10は使用せず、代わりにA10はリード/ライト後にアクセスしているバンクに対して、オートプリチャージを行うか(A10=High)、行わないか(A10=Low)を指定するために用いられる。またプリチャージコマンド入力時にA10はプリチャージの対象バンクの選択に用いられる。A10がLowのときプリチャージはバンク1つに対してのみ行い、A10がHighのときプリチャージは全てのバンクに対して行われる。プリチャージの対象バンクはバンクアドレスで選択する。
【0012】
A12/BC#:バーストチョップ信号。リード/ライトコマンド入力時バースト動作を4データ分で中断するか(A12=Low)、又は行わないか(A12=High)を選択する。
【0013】
RESET#:リセット信号。リセットピンにLowを入力するとデバイスはリセットされる。
【0014】
DQ:データ信号。データの入出力を行う。
【0015】
DQS DQS#:データストローブ信号。DQS DQS#は、データのリード/ライトのタイミングを指定する差動ストローブ信号である。
【0016】
DDRメモリの上記の信号はCPUやFPGAなどのメモリコントローラと接続されるが、動作周波数の高速化にともなって生じるノイズや反射による信号の劣化を低減するために、DDRメモリは、図2に示す構造をしたSSTLインタフェースが採用されている。
【0017】
SSTLインタフェースは、DDRメモリの電源電圧の1/2の電圧に接続された終端抵抗がある。例えば、DDR3−SDRAMであれば、電源電圧1.5Vなので終端抵抗には0.75Vが接続される。DDR3−SDRAMではこの終端抵抗はDQピン、DQSピンおよびDMピンにはDDRメモリに内蔵されており、アドレスなどの制御信号ピンには、終端抵抗を近傍に実装することが推奨されている。この終端抵抗Rに流れる電流の方向は、コントローラの各端子の出力信号レベルで異なり、出力信号がHighの場合に電流はソース方向、出力信号がLowの場合に電流はシンク方向となる。
【0018】
DDRメモリを使用した回路の構成(トポロジー)としては主に3つが考えられる。
【0019】
1つ目は基本的な構成として図3に示す様に、CPUやFPGAに搭載されるメモリコントローラ51とDDRメモリ(DDR_a)52とが1対1で接続されるトポロジーである。アドレスなどの制御信号およびデータは全てメモリコントローラ51と1対1で接続される構成となっている。
【0020】
2つ目は図4に示す様に、1つのコントローラ51が、複数(図4では4個)のDDRメモリ(DDR_a〜DDR_d)52−1〜52−4とツリー状に接続されるトポロジーである。このトポロジーは、例えばDDR2−SDRAMで採用されており、Tブランチトポロジーと呼ばれている。アドレスなどの制御信号はメモリコントローラ51から出て枝分かれして各DDRメモリ(DDR2−SRAM)52−1〜52−4に接続する構成となっており、データはメモリコントローラ52と各DDRメモリ52−1〜52−4との1対1で接続する構成となっている。
【0021】
最後に3つ目は図5に示す様に、1つのメモリコントローラ51から複数(図5では4個)のDDRメモリ(DDR_a〜DDR_d)52−1〜52−4に対し、カスケードに接続されるトポロジーである。このトポロジーは、例えばDDR3−SDRAMから採用されており、フライバイ・トポロジーと呼ばれている。アドレス、コマンド、クロックの制御信号が全てのDDRメモリ(DDR3−SDRAM)に対し、カスケードに接続される構成となっており、各々のデバイスへの信号到着時刻のずれを考慮してデータの入出力制御を行っている。データはメモリコントローラ51と各DDRメモリ52−1〜52−4との1対1で接続する構成となっている。
【0022】
例えば上記のようなDDRメモリの特性を使用したものに特許文献1がある。この特許文献1の記載技術は、画像の隣接画素にはデータの相関がある。つまり同じようなデータであることを利用し、片方の画素データを反転してDDRメモリにライトすることで、DQのシンク電流とソース電流が相殺されるように構成し、消費電流を抑制するものである。
【先行技術文献】
【特許文献】
【0023】
【特許文献1】特開2007−41668号公報
【非特許文献】
【0024】
【非特許文献1】JEDEC JESD79−3F DDR3 SDRAM STANDARD
【発明の概要】
【発明が解決しようとする課題】
【0025】
しかしながら、上述した特許文献1の記載技術は取り扱うデータが画像データである必要があるため、それ以外のデータでは利用することができないという問題がある。
【0026】
そのため、メモリ装置への高密度実装によるノイズの影響を受け易くなっていることと、ecoの観点から装置の低消費電力化、つまり回路の消費電力低減が望まれている。
【0027】
DDRメモリのデータバス(DQ)のシンク電流及びソース電流は相殺されて差分の端子の終端電流のみがVtt電源に流れる。
【0028】
そこで、本発明は、出力信号レベルのHighとLowの本数が同じであった場合、Vtt電源には終端電流は流れないことに着目し、できるだけHighとLowの本数が等しくなるようにデータを変換し、回路の消費電力を抑えること、また消費電流を低く抑え、ノイズの発生を抑制し、誤動作のリスクを低減することができるメモリ装置への書き込み及び読み出し制御方法及びメモリ装置を提供しようとするものである。
【課題を解決するための手段】
【0029】
かかる課題を解決するために、第1の本発明に係るメモリ装置への書き込み及び読み出し制御方法は、メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置への書き込み及び読み出し制御方法であって、(1)入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列をメモリ装置に書き込む書き込み工程と、(2)メモリ装置に書き込んだ変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し工程とを有することを特徴とする。
【0030】
第2の本発明に係るメモリ装置は、メモリ装置の出力状態に応じて終端抵抗に流す電流方向を変えてメモリ装置に電源供給を行う電源供給インタフェース部を備えるメモリ装置において、(1)入力データのビット列を、消費電力値の小さくなる論理値を含むビット列に変換し、その変換後ビット列を書き込む書き込み手段と、(2)メモリ装置に書き込んだ変換後ビット列を、書き込み前のビット列に逆変換してデータを読み出す読み出し手段とを備えることを特徴とする。
【発明の効果】
【0031】
本発明によれば、出力信号レベルのHighとLowの本数が等しくなるようにデータを変換し、回路の消費電力を抑え、また消費電流を低く抑え、ノイズの発生を抑制し、誤動作のリスクを低減することができる。
【図面の簡単な説明】
【0032】
図1】実施形態に係るメモリコントローラの構成を示す構成図である。
図2】DDRメモリに採用されるSSTLインタフェースの構成を示す回路図である。
図3】従来のDDRメモリの回路構成を示す回路図である(その1)。
図4】従来のDDRメモリの回路構成を示す回路図である(その2)。
図5】従来のDDRメモリの回路構成を示す回路図である(その3)。
図6】実施形態に係る5B/6B符号変換及び3B/4b符号変換に係る変換テーブルの構成を示す構成図である。
図7】実施形態に係る8B/10B符号変換処理の動作を示すフローチャートである。
図8】実施形態に係る符号変換前データのLSBから5bit群、3bit群に割り当てた例を示す図である。
図9】実施形態に係る符号化変換前データを3bit群、5bit群に対しランダムに割り当てた例を示す図である。
【発明を実施するための形態】
【0033】
(A)主たる実施形態
以下では、本発明に係るメモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置の実施形態を、図面を参照しながら詳細に説明する。
【0034】
(A−1)実施形態の構成
図1は、実施形態に係るメモリコントローラの構成を示す構成図である。図1では、メモリコントローラ1がメモリ装置としてのDDRメモリ部2と接続している場合の構成を示している。
【0035】
DDRメモリ部2は、複数のDDRメモリを有して構成されるものであり、DDRメモリ部2を構成する各DDRメモリは、メモリコントローラ1と接続されている。また、DDRメモリ部2を構成する各DDRメモリは、動作周波数の高速化に伴って生じるノイズや反射による信号の劣化を低減するために、電源供給インタフェースとしてSSTL21を備えている。DDRメモリ部2を構成する各DDRメモリは、例えば、DDR−SDRAM、DDR2−SDRAM、DDR3−SDRAM等を適用することができる。
【0036】
メモリコントローラ1は、DDRメモリ部2を構成する複数のDDRメモリに対して書き込み及び読み出しを行うものである。メモリコントローラ1は、図1に示すように、メモリコントローラ部11、制御部12、8B/10Bエンコーダ/デコーダ部13を有する。
【0037】
制御部12は、例えばCPUやFPGAを適用することができる。
【0038】
メモリコントローラ部11は、アドレス/制御線32及びデータバス32を介してDDRメモリ部2と接続しており、制御部12の制御を受けて、アドレス等の制御信号及びデータ信号を授受するものである。メモリコントローラ部11は、既存のメモリコントローラを適用することができるため、ここでの詳細な説明は省略する。
【0039】
8B/10Bエンコーダ/デコーダ部13は、DDRメモリ部2にデータ書き込みを行う際に、制御部12からのデータ(8bitデータ)を8bitデータから10bitデータに変換し、その変換後の10bitデータをメモリコントローラ部11に与える。また、8B/10Bエンコーダ/デコーダ部13は、DDRメモリ部2からデータ読み出しをする際に、メモリコントローラ部11からの10bitデータを8bitデータに変換して、元の8bitデータに戻してCPU12に与える。
【0040】
(A−2)実施形態の動作
次に、この実施形態に係るメモリコントローラ1におけるメモリ装置2への書き込み制御及び読み出し制御の処理の動作を、図面を参照しながら詳細に説明する。
【0041】
DDRメモリ部2は、上述したように複数のDDRメモリを有して構成されており、メモリコントローラ1が、上記複数のDDRメモリに対してデータ書き込み及びデータ読み出しを実施する。
【0042】
例えば、データバス(DQ)が16bitの5個のDDRメモリで構成されているとすると、DDRメモリ部2とメモリコントローラ部11を含む制御部12は80bitのデータバス32で接続される。
【0043】
CPU等の制御部12からDDRメモリ部2の各DDRメモリへの書き込みを実施するデータは、8B/10Bエンコーダ/デコーダ部13に与えられる。8B/10Bエンコーダ/デコーダ部13では、制御部12からの8bitデータが10bitデータに変換されるため、データは20%のオーバヘッドを持つことになる。つまり、80bitのうち、64bitが制御部12からの有効データであり、残りの16bitはオーバヘッドとなる。
【0044】
8B/10Bエンコーダ/デコーダ部13は、シリアルデータの中にクロックを埋め込むことで、データとクロックの転送を同一信号にて行うことが特徴であり、高速シリアル通信に用いられている。ここで、データの転送先はクロックを再生するため、ビット0とビット1の出現に偏りが生じないよう工夫がされた方式となっている。
【0045】
例えば、この再生方式は、8bitのデータを3bitと5bitに分け、3bitを4bitに変換する3B/4B符号変換処理と、5bitを6bitに変換する5B/6B符号変換処理を行い、3bit及び5bitに分割したそれぞれに1bitを付加して6bitと4bitに変換している。
【0046】
図6は、実施形態に係る5B/6B符号変換及び3B/4B符号変換に係る変換テーブルの構成を示す構成図である。図6(A)は、5B/6B符号変換テーブルであり、図6(B)は、3B/4B符号変換テーブルである。
【0047】
図6(A)において、5B/6B符号変換には、変換前の5bitデータを6bitデータに変換した変換後のbit列について、ビット0の数とビット1の数との差分(図6(A)では、「01差分」と表記している。)が「+2」(すなわち、ビット1の数がビット0の数よりも「+2」)若しくは「0」(すなわち、差分が「0」)の32個の変換パターンと、ビット0の数とビット1の数との差が「−2」(ビット1が「−2」)若しくは「0」(すなわち、差分が「0」)の32個の変換パターンがある。
【0048】
また、図6(B)において、3B/4B符号変換についても同様に、変換前の3bitデータを4bitデータに変換した変換後のbit列について、ビット0の数とビット1の数との差(「01差分」)が「+2」若しくは「0」の8個の変換パターンと、ビット0数とビット1の数との差が「−2」若しくは「0」の8個の変換パターンがある。
【0049】
このように、ビット0の数とビット1の数の差分の不均衡はランニング・ディスパリティと呼ばれ、符号変換済みデータのbit列が、ビット0とビット1のどちらに偏っているのかを表している。ビット0の数がビット1よりも多い場合には「RD−」、ビット1の数がビット0よりも多い場合には「RD+」と表現される。RD+の状態で符号変換を実施する場合にはRD−のパターンを選択し、逆にRD−の状態ならば符号変換時はRD+のパターンを選択する。ただし、ビット1の数とビット0の数が同じであれば、RDの極性は継続される。この性質を用いて極性の違反を検出することにより、それ以前の送信データにエラーが含まれていることを検出することも可能である。
【0050】
例えば、8B/10Bエンコーダ/デコーダ部13は、符号変換前の有効な64bitデータを64bit長のシリアルデータと考え、8B/10B符号変換処理を実施する。64bitをどのようにして3bit群と5bit群に分けるのかは任意であるが、並びは3bit群と5bit群を交互に配置する。また、RDの初期値を「−」とするか又は「+」とするのかについても任意である。ただし、設定として一度決定した3bit群と5bit群の分け方、配置およびRDの初期値は統一して実施することが必要となる。
【0051】
図7は、実施形態に係る8B/10B符号変換処理の動作を示すフローチャートである。
【0052】
図8は、符号変換前データのLSB(最下位ビット:Least Significant bit)から5bit群、3bit群に割り当てた例を示す図である。つまり、図8に示すように、LSBから順番に5bitを5bit群に割り当て、次の3bitを3bit群に割り当てている。
【0053】
また、図9は、符号化変換前データを3bit群、5bit群に対しランダムに割り当てた例を示す図である。つまり、図9では、8bitのうち先頭ビットを3bit群に割り当て、次の7bitについてランダムに3bit群、5bit群に割り当てるようにしているが、先頭ビットを除く7bit列の各bitを、3bit群と5bit群のいずれかに分配する規則性は一貫するようにしている。なお、図9では、先頭ビットを3bit群に分配しているが、規則性を保持できるのであれば、先頭ビットを5bit群に分配するようにしても良い。
【0054】
8B/10Bエンコーダ/デコーダ部13は、符号変換後の80bitのデータをそのままメモリコントローラ部11を経由して、メモリコントローラ1を含んだCPUなどのデバイスの端子から出力され、DDRメモリ部2へ書き込みが実施される。
【0055】
ここで、制御部12からのデータをDDRメモリ部2に書き込むときの動作を具体的に説明する。ここでは、図8に例示する割り当て方法を用いて説明する。
【0056】
例えば、制御部12からの書き込みデータが64bitであり、書き込みデータが「000_00000_000_00000_000_00000_000_00000_000_00000_000_00000_000_00000_000_00000」(全てゼロ)である場合を例示する。
【0057】
8B/10Bエンコーダ/デコーダ部13は、すべてゼロの64bitデータを最下位ビットから順に5ビット群及び3ビット群に割り当てて、80bitデータに変換する。このとき、80bitのデータはRDの初期値を「−」とした場合(S101)、最下位の1ビット目〜5ビット目の5bit(00000)は、5B/6B符号変換テーブルの「RD−」のパターンに変換されるため(111001)となる(S102)。
【0058】
次に、8B/10Bエンコーダ/デコーダ部13は、直前までの符号変換後のビット列のビット0とビット1の累積差分を求め(S103)、ビット0の数<ビット1の数の場合に処理はS104に移行し、ビット0の数=ビット1の数の場合に処理はS105に移行し、ビット0の数>ビット1の数の場合に処理はS106に移行する。
【0059】
例えば、8B/10Bエンコーダ/デコーダ部13は、その上の6ビット目〜8ビット目の3bit(000)を3B/4B符号変換するが、直前までの符号変換後のビット列(111001)はビット1の方が2bitだけ多く「RD+」であったため、処理をS104に移行する。そして、8B/10Bエンコーダ/デコーダ部13は、3B/4B符号変換テーブルを参照して、6ビット目〜8ビット目の3bit(000)を、3B/4B符号変換テーブルの「RD+」のパターンの(0010)に変換する。上記のようにして、1bit目〜8bit目の符号変換を実施できる。
【0060】
次に、8B/10Bエンコーダ/デコーダ部13は、その上の9ビット目〜13ビット目の5bit(00000)について、同様に、5B/6B符号変換する。このとき、全bitについて符号変換が完了していないため(S107)、8B/10Bエンコーダ/デコーダ部13は、符号変換したbitの直前までの符号変換後のビット列のビット0とビット1の累積差分を求め(S108)、ビット0の数<ビット1の数の場合に処理はS109に移行し、ビット0の数=ビット1の数の場合に処理はS110に移行し、ビット0の数>ビット1の数の場合に処理はS111に移行する。
【0061】
例えば、9ビット目〜13ビット目の5bit(00000)について符号変換を行うとき、直前までの符号変換後のビット列は(1110010010)である。このとき、直前の符号変化後のビット列はビット0の数とビット1の数は等しい(ビット0の数もビット1の数も「5個」である)ため、5B/6B符号変換ではRD+を保持し、9ビット目〜13ビット目の5bit(00000)は、5B/6符号変換テーブルのRD+のパターン(000110)に変換される。
【0062】
このようにして、制御部12からの64bitの書き込みデータを全て変換すると、変換後の80bitデータは、「1101_000110_0010_111001_1101_000110_0010_111001_1101_000110_0010_111001_1101_000110_0010_111001」となる。
【0063】
この80bitのビット列は、ビット0とビット1の数の差が0となっている。CPUなどのメモリコントローラ部11を含んだデバイスの端子とDDRメモリのDQ端子を接続する80bitのデータバス32のうち、ビット0のバスはシンク電流が流れ、ビット1のバスはソース電流が流れる。
【0064】
例えば、シンク/ソース電流が10mAであったとすると、従来の8B/10Bエンコーダ/デコーダ部13が無い構成では、シンク電流が10mA×80bitでVtt電源は800mAの電流を供給することになる。これに対して、この実施形態のメモリコントローラ1によれば、シンク電流が10mA×40bitとなり、ソース電流が10mA×40bitとなり、シンク電流とソース電流とは互いの電流の向きが逆であるため相殺されてVtt電源に流れる電流はゼロとなるのである。
【0065】
次に、制御部12がDDRメモリ部2からデータを読み出すときの動作を説明する。
【0066】
CPUなどの制御部12がDDRメモリ部2からの読み出しを実施する場合は、DDRメモリ部2から出力されたデータが、メモリコントローラ部11を経由して、8B/10Bエンコーダ/デコーダ部13に入力される。8B/10Bエンコーダ/デコーダ部13は、入力された80bitを、64bitに変換して制御部2に与える。
【0067】
例えば、上記の書き込み処理の動作説明で、DDRメモリ部2に書き込んだアドレスからデータを読み出す場合を例示する。このとき、DDRメモリ部2から出力される80bitのビット列は、書き込み時と同じ「1101_000110_0010_111001_1101_000110_0010_111001_1101_000110_0010_111001_1101_000110_0010_111001」となる。
【0068】
ビット0はシンク電流が流れ、ビット1はソース電流が流れる。シンク/ソース電流が10mAであったとすると、シンク電流が10mA×40bit、ソース電流が10mA×40bit、互いの電流の向きが逆であるため相殺されて、書き込み時と同様Vtt電源に流れる電流はゼロとなる。
【0069】
メモリコントローラ部11を経由して8B/10Bエンコーダ/デコーダ部13に入力された80bitのデータは、まず5B/6B符号変換テーブルの「RD−(書き込み時の初期RDを−としていたため)」から、最下位の1ビット目〜6ビット目の6bit(111001)のパターンを検索し、該当する元のデータ(00000)へ復元する。
【0070】
ここで、8B/10Bエンコーダ/デコーダ部13は、直前までの符号変換後のビット列(1ビット目〜6ビット目の6bit)(111001)のビット0とビット1の累積差分は、ビット0の数<ビット1の数である。
【0071】
次に、8B/10Bエンコーダ/デコーダ部13は、その上の7ビット目〜10ビット目の4bit(0010)を3B/4B符号変換テーブルの「RD+」より検索し、7ビット目〜10ビット目の4bit(0010)を元のデータ(000)へ復元する。
【0072】
これ以後、同様にデータを復元していくと、64bitのデータは「000_00000_000_00000_000_00000_000_00000_000_00000_000_00000_000_00000_000_00000」(すべてゼロ)となり、元のデータに復元することができるのである。
【0073】
なお、各符号変換テーブルを用いて元のデータへ復元する際に、符号変換テーブルにはないパターンとなっていれば、書き込み時もしくは読み出し時にbit誤り(エラー)が発生していることを検出することが可能である。
【0074】
これまではDDRメモリ部2は個別のDDRメモリデバイスを5つ搭載した形態で説明をしたが、例えば複数のDDRメモリで構成されたDIMM(Dual Inline Memory Module)に対し、書き込みまたは読み出しを実施する構成としてもよい。一般的にDIMMは64bit以上のデータバスであるため、64bitのデータバスで考えると、CPUなどの制御部2からDDRメモリ部2へ書き込みを実施したいデータは8B/10Bエンコーダ/デコーダ部13の8B/10B符号変換により、20%のオーバヘッドをもつことになる。つまり64bitのうち48bitが制御部2からの有効データであり、12bitがオーバヘッド、残りの4bitは未使用となる。
【0075】
(A−3)実施形態の効果
以上のように、この実施形態によれば、DDRメモリに書き込むデータに8B/10B符号変換を施すことで、DDRメモリへのデータ書き込み時および読み出し時のデータバスのHighレベルとなるbitとLowレベルとなるbitの数の差は±2もしくは0となる。データバスのSSTLインタフェースの終端抵抗に流れるシンク電流、ソース電流は、HighとLowのbit数の差が0の場合はシンク電流、ソース電流がすべて相殺され、終端抵抗の電源としては電流を消費しない。また、HighとLowのbit数の差が±2の場合でもほとんどのシンク電流、ソース電流は相殺され、電源としては最小限の消費電流で済むという効果が得られる。また、消費電流を極力低く抑えているため、電流が急激に変化しない、すなわち磁界や電界が急激に変化しないためノイズの発生を抑制することができ、誤動作のリスクを低減することが可能となる。
【0076】
また、この実施形態によれば、8B/10B符号変換により元のデータに復元する際、DDRメモリより読み出したデータが符号変換テーブルにないデータであればデータが誤っているとしてエラーを検出することが可能である。
【0077】
(B)他の実施形態
上述した実施形態では、SSTLインタフェースを具備したDDRメモリについて説明したが、HSTLインタフェースを具備したQDRメモリについても同様の終端抵抗を使用するため適用が可能である。
【符号の説明】
【0078】
1…メモリコントローラ、11…メモリコントローラ部、12…制御部、13…8B/10Bエンコーダ/デコーダ部、2…DDRメモリ部、21…SSTLインタフェース、31…アドレス/制御線、32…データバス。
図1
図2
図3
図4
図5
図6
図7
図8
図9