JPWO2012095980A1 - メモリコントローラ、及び情報処理装置 - Google Patents

メモリコントローラ、及び情報処理装置 Download PDF

Info

Publication number
JPWO2012095980A1
JPWO2012095980A1 JP2012552580A JP2012552580A JPWO2012095980A1 JP WO2012095980 A1 JPWO2012095980 A1 JP WO2012095980A1 JP 2012552580 A JP2012552580 A JP 2012552580A JP 2012552580 A JP2012552580 A JP 2012552580A JP WO2012095980 A1 JPWO2012095980 A1 JP WO2012095980A1
Authority
JP
Japan
Prior art keywords
data
slew rate
memory controller
delay
address signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012552580A
Other languages
English (en)
Other versions
JP5541373B2 (ja
Inventor
秀行 酒巻
秀行 酒巻
秀和 小佐野
秀和 小佐野
浩志 中山
浩志 中山
和也 高久
和也 高久
雅紀 日下田
雅紀 日下田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012095980A1 publication Critical patent/JPWO2012095980A1/ja
Application granted granted Critical
Publication of JP5541373B2 publication Critical patent/JP5541373B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types

Abstract

アドレス線のトポロジーの異なるいずれのDIMMに対してもアドレス指定とデータの読み書きを正確に行うことができるとともに、製造コストを抑制したメモリコントローラ及び情報処理装置を提供することを課題とする。アドレス線のトポロジーが異なるDIMMの種類をSPDに基づいて判定する判定部と、前記判定部によって判定されるDIMMの種類に応じて、アドレス信号のスルーレートを設定するスルーレート設定部と、前記判定部によって判定されるDIMMの種類に応じて、データの読み出し時又は書き込み時のデータ遅延量を設定する遅延設定部とを含む、メモリコントローラ。

Description

メモリコントローラ、及び情報処理装置に関する。
従来より、複数のメモリ回路及びシステムと通信できるインターフェース回路を備えるサブシステムであって、インターフェース回路が、メモリ回路及びシステムをインターフェースして、メモリ回路の命令スケジューリングにおける制約を減少させるように動作する、サブシステムがあった。このようなサブシステムにおいて、ピンごとのタイミングキャリブレーション能力及び補正能力に加えて、スルーレート(slew rate)、プルアップの能力又は強さ、及びプルダウンの能力又は強さを制御する回路を、バッファ集積回路のI/Oピンのそれぞれに追加する、又は、バッファ集積回路の一連のI/Oピンに共通回路として追加することが行われていた。
また、半導体装置の固有の電気的特性を示す特性情報を記憶した記憶部を具備し、記憶部に記憶されている特性情報に基づいて、半導体装置のバッファ能力を調整可能としたことを特徴とする半導体装置があった。特性情報として、特性ばらつき情報、予め測定した各半導体メモリのスルーレート、ドライブ能力、電圧振幅、電流特性等を記憶部に記憶させていた。
特開2009−526323号公報 特開2003−023349号公報
半導体技術及びLSI(Large Scale Integrated circuit:大規模集積回路)等の実装技術の進展に伴い、1枚の基板に複数のCPU(Central Processing Unit:中央演算処理装置)及び大容量の主記憶装置を搭載した情報処理装置が提供されている。
このような情報処理装置の一例として、ブレードサーバがある。ブレードサーバは、大容量の主記憶装置として、DIMM(Dual Inline Memory Module)を含む。
DIMMの種類は、業界標準団体であるJEDEC(Joint Electron Device Engineering Council)によって標準化が行われており、JEDEC standard No. 21-Cによって仕様が決まっている。
DIMMには幾つかの種類があり、例えば、UDIMM(Unbuffered Dual Inline Memory Module)とRDIMM(Registered Dual Inline Memory Module)がある。
UDIMMとRDIMMは、アドレス線のトポロジーが異なる。RDIMMは、アドレス信号の波形及びタイミングを調整するレジスタチップ(registered chip)を含み、UDIMMはレジスタチップを含まない。
一般的に、ブレードサーバのような大型の装置には、レジスタチップを含むRDIMMが用いられ、デスクトップ型のPC(Personal Computer:パーソナルコンピュータ)には、レジスタチップを含まないUDIMMが用いられる。
ところで、従来のサブシステム又は半導体装置等の装置(以下、従来の装置と称す)は、DIMMのアドレス線のトポロジーの違いに応じてアドレス信号のスルーレートを設定することを行っていない。
従って、従来の装置で、UDIMMとRDIMMのようにアドレス線のトポロジーの異なるDIMMに対してデータの読み書きを行おうとすると、正しくアドレスを指定できない、又は、正しくデータの読み書きができないという課題があった。
このため、従来は、アドレス線のトポロジーに応じて、UDIMM用のメモリコントローラとRDIMM用のメモリコントローラを作り分けていた。
また、上述のように、UDIMMはデスクトップ型のPCのように大量に生産される装置に用いられ、RDIMMはブレードサーバのような大型で生産台数が比較的少ない装置に用いられるため、一般的にUDIMMはRDIMMよりも安価である。
また、このようにRDIMMはUDIMMよりも生産台数が少ないため、RDIMM用のメモリコントローラはUDIMM用のメモリコントローラよりも高価であるという課題があった。
そこで、アドレス線のトポロジーの異なるいずれのDIMMに対してもアドレス指定とデータの読み書きを正確に行うことができるとともに、製造コストを抑制したメモリコントローラ及び情報処理装置を提供することを目的とする。
本発明の実施の形態のメモリコントローラは、アドレス線のトポロジーが異なるDIMMの種類をSPDに基づいて判定する判定部と、前記判定部によって判定されるDIMMの種類に応じて、アドレス信号のスルーレートを設定するスルーレート設定部と、前記判定部によって判定されるDIMMの種類に応じて、データの読み出し時又は書き込み時のデータ遅延量を設定する遅延設定部とを含む。
アドレス線のトポロジーの異なるいずれのDIMMに対してもアドレス指定とデータの読み書きを正確に行うことができるとともに、製造コストを抑制したメモリコントローラ及び情報処理装置を提供することができる。
比較例の情報処理装置の一例としてのサーバ10のブロック構成を示す図である。 比較例のメモリコントローラ40とRDIMM50の例示的な実装状態を示す側面図である。 比較例のサーバ10内のメモリコントローラ40の回路を示す図である。 RDIMM50のアドレス線の回路を示す図である。 UDIMM60のアドレス線の回路を示す図である。 実施の形態のメモリコントローラ100の回路を示す図である。 RDIMM又はUDIMMのSPD素子に記憶された諸元を表すデータの一部を示す図である。 図7Aに示すデータのデータビット[3:0]の値の具体例を示す図である。 実施の形態のメモリコントローラ100のドライバ103の回路を示す図である。 実施の形態のメモリコントローラ100における設定レジスタ210のデータS1、S2、S3と、バイアス回路220、230のバイアス電流と、アドレス信号のスルーレートの関係を表す図である。 実施の形態のメモリコントローラ100でスルーレートを最大にした場合のアドレス信号の立ち上がり波形のシミュレーション結果を示す図である。 実施の形態のメモリコントローラ100でスルーレートを最小にした場合のアドレス信号の立ち上がり波形のシミュレーション結果を示す図である。 アドレス信号のスルーレートを最大にした場合に、UDIMM60のSDRAM1が受信するアドレス信号のアイパターンを示す図である。 アドレス信号のスルーレートを最大にした場合に、UDIMM60のSDRAM8が受信するアドレス信号のアイパターンを示す図である。 アドレス信号のスルーレートを最小にした場合に、UDIMM60のSDRAM1が受信するアドレス信号のアイパターンを示す図である。 アドレス信号のスルーレートを最小にした場合に、UDIMM60のSDRAM8が受信するアドレス信号のアイパターンを示す図である。 実施の形態のメモリコントローラ100にRDIMM50又はUDIMM60が接続された場合に、メモリコントローラ100のSPDコントローラ150が実行する処理を示す図である。 実施の形態のメモリコントローラ100のスルーレート設定指令生成部130及び遅延指令生成部140の動作を示す真理値表を示す図である。
以下、本発明のメモリコントローラ、及び情報処理装置を適用した実施の形態について説明する。
実施の形態のメモリコントローラ、及び情報処理装置について説明する前に、まず、図1乃至図5を用いて、比較例のメモリコントローラにおける問題点について説明する。
図1は、比較例の情報処理装置の一例としてのサーバ10のブロック構成を示す図である。
サーバ10は、システムボード20、CPU0、CPU1、CPU2、CPU3、CPUコントローラ30、メモリコントローラ40、及びRDIMM50を含む。
CPU0、CPU1、CPU2、CPU3、CPUコントローラ30、メモリコントローラ40、及びRDIMM50は、システムボード20に搭載されている。図1には、一例として、8つのRDIMM50を示す。
CPUコントローラ30は、CPU0、CPU1、CPU2、及びCPU3が、メモリコントローラ40を介してRDIMM50との間でデータの読み出し又は書き込みを行う際に、CPU0、CPU1、CPU2、及びCPU3とメモリコントローラ40との間でデータの受け渡しの制御を行う制御部である。
図1に示すCPUコントローラ30には、一例として、4つのCPU0〜CPU3が接続されている。
メモリコントローラ40は、CPU0、CPU1、CPU2、及びCPU3が、CPUコントローラ30を介してRDIMM50との間でデータの読み出し又は書き込みを行う際に、CPUコントローラ30とRDIMM50との間でデータの受け渡しの制御を行う制御部である。
図1に示すメモリコントローラ40には、一例として、8つのRDIMM50が接続されている。
CPU0〜CPU3は、CPUコントローラ30及びメモリコントローラ40を介して、RDIMM50に記憶されたデータの読み出し、又はRDIMM50へのデータの書き込みを行い、所定のプログラム等を実行し、演算処理を行う。
このように、図1に示すサーバ10は、複数のCPU0〜CPU3と、複数のRDIMM50とを含んでいる。
これに対して、デスクトップ型のPCは、例えば、1つのCPUと、1個又は2〜3個程度のUDIMMとを含み、CPUコントローラを含まない構成である。
次に、図2を用いて、比較例のメモリコントローラ40とRDIMM50の実装状態について説明する。
図2は、比較例のメモリコントローラ40とRDIMM50A、50Bの例示的な実装状態を示す側面図である。
図2では、説明の便宜上、2つのRDIMMを符号50A、50Bで区別するが、RDIMM50A、50Bは、図1に示す8つのRDIMM50のうちの2つである。図2に示さない他の6つのRDIMM50は、図2に示すRDIMM50A、50Bと同様に接続される。
なお、以下において、RDIMM50A、50Bを特に区別しない場合は、単にRDIMM50と称す。
上述のように、メモリコントローラ40とRDIMM50A、50Bは、システムボード20に搭載されている。
システムボード20は、ビア21A、21B、21C、及び層間配線22を有する。図2には、ビア21A、21B、21C、及び層間配線22を破線で示す。
ビア21A、21B、21Cは、それぞれ、システムボード20の上側と下側に示す2つの主面20A、20Bを接続するように厚さ方向に貫通している。
層間配線22は、システムボード20の厚さの略中央で、図中上側と下側に示す2つの主面20A、20Bに略並行に形成されている。
メモリコントローラ40は、バンプ23によってシステムボード20に実装されており、筐体40A内のIC(Integrated Circuit:集積回路)チップ41は、破線で示すメモリコントローラ40内の配線42とバンプ21を通じて、層間配線22に接続されている。ICチップ41は、CPUコントローラ30(図1参照)とRDIMM50A、50Bとの間でデータの受け渡しの制御を行う。
RDIMM50A、50Bは、システムボード20の主面20Aに配設されるソケット24A、24Bに差し込まれている。ソケット24A、24Bは、それぞれ、ビア21B、21Cに接続されている。なお、ソケット24A、24Bに形成されている配線25A、25Bを破線で示す。
RDIMM50A、50Bは、それぞれ、基板51A、51Bを有する。基板51A、51Bには、それぞれ、バンプ52A、52BによってSDRAM(Synchronous Dynamic Random Access Memory)53A、53Bが実装されている。すなわち、基板51A、51Bには、SDRAM53A、53Bが両面実装されている。
RDIMM50A、50Bは、それぞれ、バンプ52A、52Bを通じて、基板51A、51B内の層間配線54A、54Bに接続されている。層間配線54A、54Bは、それぞれ、ソケット24A、24Bの配線25A、25Bを通じてビア21B、21Cに接続されている。
以上のような配線構造により、メモリコントローラ40とRDIMM50A、50Bは、電気的に接続されている。メモリコントローラ40とRDIMM50とを接続する配線は、クロック信号、アドレス信号、データストローブ信号、及びデータを伝送する。
なお、図2では、システムボード20に実装されたメモリコントローラ40とRDIMM50A、50Bについて説明したが、UDIMMも図2に示すRDIMM50A、50Bと同様にシステムボードに実装され、メモリコントローラと接続される。
次に、図3を用いて、メモリコントローラ40とRDIMM50の間を接続する回路について簡単に説明する。
図3は、比較例のサーバ10内のメモリコントローラ40の回路を示す図である。図3には、メモリコントローラ40にRDIMM50A、50Bを接続した状態の回路を示す。なお、図3では、RDIMM50A、50B内のSDRAMを省略する。
メモリコントローラ40とRDIMM50の間では、上述のように、クロック信号、アドレス信号、データストローブ信号、及びデータが伝送される。
メモリコントローラ40は、ドライバ43、44、45、レシーバ46、ドライバ47、及びレシーバ48を有する。ドライバ43、44、45、レシーバ46、ドライバ47、及びレシーバ48は、それぞれ、ICチップ41(図2参照)に内蔵される素子である。
ドライバ43は、システムクロックが入力され、システムクロックから差動クロック信号を生成し、RDIMM50A、50Bに差動クロック信号を伝送する。
ドライバ44は、RDIMM50A、50Bのアドレス信号をデコードするデコーダ(図示せず)からアドレス信号が入力され、RDIMM50A、50Bにアドレス信号を伝送する。
ドライバ45は、データの読み出し/書き込みのタイミングを指定する差動ストローブ信号を生成し、RDIMM50A、50Bに伝送する。
ドライバ45が差動ストローブ信号を出力する一対の出力端子には、レシーバ46の一対の入力端子が接続されており、レシーバ46は、RDIMM50A、50Bから伝送される差動ストローブ信号を受信する。
ドライバ47は、RDIMM50A、50Bに書き込むデータを伝送する。ドライバ47の出力端子には、レシーバ48の入力端子が接続されており、レシーバ48は、RDIMM50A、50Bから読み出したデータを受信する。
なお、図1乃至図3では、サーバ10内のメモリコントローラ40とRDIMM50との接続関係について説明したが、例えばデスクトップ型のPC等におけるメモリコントローラとUDIMMとの接続関係は、UDIMMの数が少ないだけで基本的に同様である。
次に、図4及び図5を用いて、RDIMMとUDIMMのアドレス線のトポロジーの違いについて説明する。
図4は、RDIMM50のアドレス線の回路を示す図である。図5は、UDIMM60のアドレス線の回路を示す図である。
RDIMM50は、16個のSDRAM1〜SDRAM8及びSDRAM11〜SDRAM18、レジスタチップ55、アドレス線56、入力端子57、及び終端抵抗器58を含む。終端抵抗器58には、所定電圧(0.75V)の電源が接続されている。終端抵抗器58は、アドレス線56を伝送されるアドレス信号の反射を抑制するために、アドレス線56の終端におけるインピーダンス整合を取るために設けられている。
なお、終端抵抗器58に接続される電源の電圧(0.75V)は、アドレス信号の"0"と"1"の境界となる閾値に相当する。この閾値は、JEDECの規格によって決められている。
入力端子57には、メモリコントローラ40のドライバ44(図3参照)が接続され、メモリコントローラ40からアドレス信号が入力される。
アドレス線56は、入力端子57と終端抵抗器58との間に配線されており、レジスタチップ55が挿入されるとともに、レジスタチップ55の出力側においてSDRAM1〜SDRAM8及びSDRAM11〜SDRAM18に分配されるように接続されている。
アドレス信号は、メモリコントローラ40(図3参照)から入力端子57を介してアドレス線56に入力され、SDRAM1〜SDRAM8及びSDRAM11〜SDRAM18に入力される前に、レジスタチップ55で波形とタイミングが調整される。
このようにアドレスチップ55を挿入しているのは、主に、次のような理由によるものである。ブレードサーバのような大型のサーバでは、システムボード20(図2参照)に多数のRDIMM50を実装するため、メモリコントローラ40とRDIMM50との間でアドレス信号を伝送する配線が長くなる。アドレス信号を伝送する配線が長いと、伝送する間にアドレス信号が減衰する可能性がある。このため、RDIMM50にアドレス信号が入力された時点で、各SDRAMにアドレス信号を分配する前に、レジスタチップ55でアドレス信号の波形とタイミングを整えている。
次に、図5に示すUDIMM60について説明する。なお、ここでは、図3に示すRDIMM50A、50Bの代わりに1つのUDIMM60がシステムボード20に実装され、UDIMM60がメモリコントローラ40と接続されているものとして説明を行う。
UDIMM60は、16個のSDRAM1〜SDRAM8及びSDRAM11〜SDRAM18、アドレス線61、入力端子62、及び終端抵抗器63を含む。終端抵抗器63には、図4に示すRDIMM50と同様に、所定電圧(0.75V)の電源が接続されている。終端抵抗器63は、アドレス線61を伝送されるアドレス信号の反射を抑制するために、アドレス線61の終端におけるインピーダンス整合を取るために設けられている。
なお、終端抵抗器63に接続される電源の電圧(0.75V)は、アドレス信号の"0"と"1"の境界となる閾値に相当する。この閾値は、JEDECの規格によって決められている。
入力端子62には、メモリコントローラ40のドライバ44(図3参照)が接続され、メモリコントローラ40からアドレス信号が入力される。
アドレス線61は、入力端子62と終端抵抗器63との間に配線されており、入力端子62と終端抵抗器63との間においてSDRAM1〜SDRAM8及びSDRAM11〜SDRAM18に分配されるように接続されている。
アドレス信号は、メモリコントローラ40(図3参照)から入力端子62を介してアドレス線61に入力され、SDRAM1〜SDRAM8及びSDRAM11〜SDRAM18に直接入力される。UDIMM60は、レジスタチップを含まない。
ここで、一般的に、デスクトップ型のPCが含むUDIMM60は1個又は2〜3個程度である。従って、メモリコントローラ40とUDIMM60との間でアドレス信号を伝送する伝送線の長さは、ブレードサーバにおける伝送線に比べると非常に短い。
このため、デスクトップ型のPCには、一般に、UDIMM60が用いられている。
ところで、UDIMM60は、レジスタチップを含まないため、メモリコントローラ40から分配されるアドレス信号は、UDIMM60に含まれるすべてのSDRAMに直接分配される。
このため、UDIMM60では、アドレス線の電気的な負荷がRDIMM50よりも大きい。
例えば、UDIMM60に4bitのSDRAMが搭載されている場合、アドレス信号は、メモリコントローラ40から直接的に16個のSDRAMに分配されることになる。
このような場合には、メモリコントローラ40から1つのUDIMM60につき、16個のSDRAMがアドレス線を介して直接接続されることになるため、アドレス信号に反射波が発生し、各SDRAMが受信するアドレス信号の波形が乱れる可能性があるという問題があった。
UDIMM60の内部では、入力端子62に近いSDRAMと、入力端子62から遠いSDRAMがあるため、入力端子62からの距離の違いにより、反射波による波形の乱れが異なる可能性があった。
アドレス信号の波形が乱れると、アドレス指定を正しく行うことができなくなる可能性が生じるという問題があった。
以上のように、比較例のメモリコントローラ40は、UDIMM60に用いた場合に反射波の乱れによりアドレス指定を正しく行うことができなくなる可能性が生じるという問題があった。
以下の実施の形態では、アドレス信号の波形の乱れに起因する問題を解決し、例えば、RDIMMとUDIMMのようにアドレス線のトポロジーが異なるDIMMに対して汎用的に利用でき、正確なアドレス指定とデータの読み書き、及び製造コストの抑制を実現するメモリコントローラ及び情報処理装置について説明する。
<実施の形態>
図6は、実施の形態のメモリコントローラ100の回路を示す図である。図6には、メモリコントローラ100にRDIMM50A、50Bを接続した状態の回路を示す。なお、図6では、RDIMM50A、50B内のSDRAMを省略する。
以下で説明する本実施の形態のメモリコントローラ100は、比較例のメモリコントローラ40と同様にRDIMM50とCPUコントローラ30(図1参照)との間に接続される。このため、以下の説明では、図1乃至図5を援用し、図1乃至図5に示す構成要素と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
メモリコントローラ100は、入力端子101、シフトレジスタ102、ドライバ103、及び出力端子104を含む。
メモリコントローラ100は、さらに、入力端子111、シフトレジスタ112、122、遅延部113、123、マルチプレクサ114、124、ドライバ115、入出力端子116、出力端子121、及びレシーバ125を含む。
メモリコントローラ100は、さらにまた、スルーレート設定指令生成部130、遅延指令生成部140、SPDコントローラ150、入力端子151、レシーバ152、及び初期設定部160を含む。
図6に示すRDIMM50A、50Bには、SPD(Serial Presence Detect)素子59を示す。SPD素子59は、DIMMのモジュールの容量、アクセス速度、アクセス方法等の諸元を表すデータが記憶されている。SPD素子59は、例えば、シリアルEEPROM(Electrically Erasable and Programmable Read Only Memory)チップである。
図6にはRDIMM50のSPD素子59を示すが、UDIMM60(図5参照)も同様のSPD素子を含む。
RDIMM50のSPD素子59には、RDIMMであることを示す諸元を表すデータが記憶されており、UDIMM60(図5参照)のSPD素子にはUDIMMであることを示す諸元を表すデータが記憶されている。
入力端子101は、図示しないデコーダから伝送されるアドレス信号をメモリコントローラ100に入力するための端子である。入力端子101の入力側には、図示しないデコーダが接続され、入力端子101の出力側にはシフトレジスタ102が接続される。
シフトレジスタ102は、入力端子101を介してデコーダから入力されるアドレス信号を一時的に保持する。シフトレジスタ102の出力側にはドライバ103が接続されている。
ドライバ103は、スルーレート設定指令生成部130から入力される設定値Dに基づき、シフトレジスタ102から入力されるアドレス信号のスルーレート(slew rate)を変更するスルーレート変更部の一例である。
また、スルーレート変更部の一例としてのドライバ103と、スルーレート設定指令生成部130は、アドレス信号のスルーレートを設定するためのスルーレート設定部の一例である。なお、ドライバ103の内部構成及び動作については、図7を用いて後述する。
出力端子104は、ドライバ103でスルーレートが設定されるアドレス信号をメモリコントローラ100からRDIMM50に出力する端子であり、RDIMM50の入力端子57(図4参照)に接続される。なお、メモリコントローラ100にUDIMM60(図5参照)を接続する場合には、出力端子104に入力端子62(図5参照)が接続される。
入力端子111は、RDIMM50に書き込むためのデータがメモリコントローラ100に入力される端子である。入力端子111の入力側には、CPUコントローラ30を介して、CPU0〜CPU3(図1参照)が接続される。
シフトレジスタ112は、入力端子111を介して入力される書き込み用のデータを一時的に保持する。シフトレジスタ112の出力側には遅延部113及びマルチプレクサ114が接続されている。
遅延部113は、シフトレジスタ112の出力側において分岐された信号線117A、117Bのうちの信号線117Aに挿入されている。遅延部113は、シフトレジスタ112から出力される書き込み用のデータに遅延を与えて出力する。遅延部113が書き込み用のデータに与える遅延時間は、システムクロックの1周期の時間に設定されている。なお、信号線117A、117Bは、ともにマルチプレクサ114の入力側に接続されている。また、遅延時間をシステムクロックの1周期の時間に設定する理由については後述する。
マルチプレクサ114は、遅延指令生成部140から入力される設定値Wに基づき、入力側に接続される信号線117A又は信号線117Bのいずれか一方を経て自己に入力される書き込み用のデータを選択して出力する。マルチプレクサ114の出力側は、ドライバ115に接続されている。
ドライバ115は、マルチプレクサ114の出力端子と、入出力端子116との間に挿入されており、入出力端子116を経てメモリコントローラ100から出力される書き込み用のデータの波形成形及び増幅を行う。ドライバ115の出力側において入出力端子116との間で分岐した信号線にはレシーバ125が接続される。
入出力端子116は、ドライバ115の出力側と、レシーバ125の入力側に接続されている。入出力端子116は、ドライバ115から伝送される書き込み用のデータをRDIMM50A、50Bに出力するとともに、RDIMM50A、50Bから伝送される読み出しデータをレシーバ125に入力する。
レシーバ125は、入出力端子116と、遅延部123及びマルチプレクサ124との間に接続され、入出力端子116を介してメモリコントローラ100に入力される読み出しデータを遅延部123及びマルチプレクサ124に伝送する。レシーバ125は、読み出しデータを遅延部123及びマルチプレクサ124に伝送する際に、読み出し用データの波形成形及び増幅を行う。
遅延部123は、レシーバ125の出力側において分岐された信号線127A、127Bのうちの信号線127Aに挿入されている。遅延部123は、レシーバ125から出力される読み出しデータに遅延を与えて出力する。遅延部123が読み出しデータに与える遅延時間は、システムクロックの1周期の時間に設定されている。なお、信号線127A、127Bは、ともにマルチプレクサ124の入力側に接続されている。また、遅延時間をシステムクロックの1周期の時間に設定する理由については後述する。
マルチプレクサ124は、遅延指令生成部140から入力される設定値Rに基づき、入力側に接続される信号線127A又は信号線127Bのいずれか一方を経て自己に入力される読み出しデータを選択して出力する。マルチプレクサ124の出力側は、シフトレジスタ122に接続されている。
ここで、遅延部113、マルチプレクサ114、遅延部123、及びマルチプレクサ124は、データの遅延時間を制御する遅延制御部の一例である。
また、遅延指令生成部140と、遅延制御部の一例としての遅延部113、マルチプレクサ114、遅延部123、及びマルチプレクサ124とは、データの遅延時間を設定する遅延設定部の一例である。
シフトレジスタ122は、マルチプレクサ124から出力される読み出しデータを一時的に保持し、出力端子121に伝送する。
出力端子121は、シフトレジスタ122から伝送される読み出しデータをメモリコントローラ100から出力するための端子である。出力端子121の出力側は、CPUコントローラ30を介して、CPU0〜CPU3(図1参照)が接続される。
スルーレート設定指令生成部130は、SPDコントローラ150から入力される制御信号に基づいて設定値Dの値を設定し、設定値Dをドライバ103に入力する。この結果、ドライバ103では、スルーレート設定指令生成部130から入力される設定値Dに基づいて、アドレス信号のスルーレートが設定される。すなわち、ドライバ103において設定されるアドレス信号のスルーレートは、設定値Dの値によって決められる。スルーレート設定指令生成部130としては、例えば、組合せ回路を用いることができる。
スルーレート設定指令生成部130は、メモリコントローラ100にRDIMM50が接続された場合は、アドレス信号のスルーレートが比較的高い値になるように設定値Dを設定する。この場合に、スルーレート設定指令生成部130は、スルーレートが最大値になるように設定値Dを設定してもよい。
また、スルーレート設定指令生成部130は、メモリコントローラ100にUDIMM60が接続された場合は、アドレス信号のスルーレートが比較的低い値になるように設定値Dを設定する。
すなわち、スルーレート設定指令生成部130は、UDIMM60が接続された場合に、RDIMM50が接続された場合よりもアドレス信号のスルーレートが低くなるように設定値Dを設定する。
これは、アドレス線におけるアドレス信号の反射の問題が発生する可能性がRDIMM50よりも高いUDIMM60の場合は、アドレス信号のスルーレートを低く設定することにより、アドレス線61でのアドレス信号の反射の発生を抑制するためである。
なお、スルーレート設定指令生成部130は、メモリコントローラ100にUDIMM60が接続された場合は、スルーレートが最小値になるように設定値Dを設定してもよい。
また、スルーレート設定指令生成部130は、アドレス信号のスルーレートに加えて、クロック、データストローブ信号、及びデータのスルーレートも設定する。スルーレート設定指令生成部130は、例えば、クロック、データストローブ信号、及びデータのスルーレートを最大値に設定する。
遅延指令生成部140は、SPDコントローラ150から入力される制御信号に基づいて設定値Wと設定値Rの値を設定し、設定値W、Rをそれぞれマルチプレクサ114、124に入力する。マルチプレクサ114、124において、それぞれ遅延部113、123を経由したデータを選択するか否かは、遅延指令生成部140が出力する設定値W、Rによって決められる。遅延指令生成部140としては、例えば、組合せ回路を用いることができる。
ここで、本実施の形態のメモリコントローラ100は、RDIMM50及びUDIMM60の両方に汎用的に利用できるものである。
しかしながら、RDIMM50はレジスタチップ55を含み、UDIMM60はレジスタチップを含まず、RDIMM50とUDIMM60はアドレス線のトポロジーが異なる。
このため、メモリコントローラ100をRDIMM50とUDIMM60とに対して汎用的に用いるためには、アドレス信号とデータとのタイミングを調整する必要がある。
本実施の形態のメモリコントローラ100の遅延指令生成部140は、RDIMM50が接続された場合のデータの読み取り時とデータの書き込み時とでマルチプレクサ114、124に入力する設定値W、Rの値(H(High)又はL(Low))を変更する。
同様に、遅延指令生成部140は、UDIMM60が接続された場合のデータの読み取り時とデータの書き込み時とでマルチプレクサ114、124に入力する設定値W、Rの値(H(High)又はL(Low))を変更する。
遅延指令生成部140は、RDIMM50とUDIMM60とを汎用的に接続できるようにするために、RDIMM50が接続された場合のデータの読み出し時には、設定値RをLレベルにする。これは、RDIMM50からデータを読み出す場合には、レジスタチップ55で生じるアドレス信号の遅延は問題にならないからである。
これにより、マルチプレクサ124は信号線127Bを選択するため、RDIMM50から読み出されるデータに遅延は与えられない。
また、遅延指令生成部140は、RDIMM50が接続された場合のデータの書き込み時には設定値WをHレベルにする。
これは、データの書き込み時に、レジスタチップ55によってアドレス信号がシステムクロックの1周期の時間(1τ)だけ遅延すると、書き込みデータとのタイミングがずれるため、マルチプレクサ114に信号線117Aを選択させて、遅延部113でデータに1τ分の遅延を与えるためである。
このように、RDIMM50へのデータの書き込み時にアドレス信号とデータとのタイミングを合わせるために、遅延部113の遅延時間は、レジスタチップ55におけるアドレス信号の遅延時間(1τ)と同一の時間に設定されている。
また、遅延指令生成部140は、UDIMM60が接続された場合のデータの読み出し時には設定値RをHレベルにする。これにより、マルチプレクサ124は信号線127Aを選択するため、UDIMM60から読み出されるデータには遅延部123で遅延が与えられる。
これは、RDIMM50からデータを読み出す場合にはレジスタチップ55でアドレス信号に遅延が生じ、メモリコントローラ100に読み出しデータが届くタイミングがUDIMM60よりも遅れるため、RDIMM50とUDIMM60とでタイミングを合わせるためである。
このように、データを読み出す場合にRDIMM50とUDIMM60とでタイミングを合わせるために、遅延部123の遅延時間は、レジスタチップ55におけるアドレス信号の遅延時間(1τ)と同一の時間に設定されている。
また、遅延指令生成部140は、UDIMM60が接続された場合のデータの書き込み時には設定値WをLレベルにする。
これは、レジスタチップを含まないUDIMM60ではアドレス信号の遅延が生じないため、データの書き込み時にデータに遅延を与える必要がないからである。この結果、マルチプレクサ114は信号線117Bを選択する。
入力端子151は、RDIMM50A、50BのSPD素子59に接続され、RDIMM50A、50Bの諸元を表すデータが入力される。入力端子151の出力側にはレシーバ152が接続される。
レシーバ152は、入力端子151から入力される諸元を表すデータを受信し、SPDコントローラ150に伝送する。
SPDコントローラ150は、入力端子151及びレシーバ152を経て入力されるデータに基づき、出力端子104及び入出力端子116に接続されるDIMMがRDIMM50又はUDIMM60のいずれであるかを判定する判定部の一例である。
SPDコントローラ150としては、例えば、シーケンサを用いることができる
ここで、図4及び図5に示したように、RDIMM50とUDIMM60とは、アドレス線のトポロジーが異なるため、RDIMM50のSPD素子と、UDIMM60のSPD素子とに記憶されている諸元を表すデータは、互いに異なる。
このため、SPDコントローラ150は、RDIMM50又はUDIMM60のSPD素子に記憶された諸元を表すデータを読み取ることにより、アドレス線のトポロジーの違いに基づいて、出力端子104及び入出力端子116に接続されるDIMMがRDIMM50又はUDIMM60のいずれであるかを判定する。なお、RDIMM50又はUDIMM60のSPD素子に記憶された諸元を表すデータについては、図7A、図7Bを用いて後述する。
初期設定部160は、メモリコントローラ100の電源が投入されると、スルーレート設定指令生成部130の設定値W、Rと、遅延指令生成部140の設定値Dを初期値に設定する。
次に、図7A、図7Bを用いて、RDIMM又はUDIMMのSPD素子に記憶された諸元を表すデータについて説明する。
図7Aは、RDIMM又はUDIMMのSPD素子に記憶された諸元を表すデータの一部を示す図であり、図7Bは、図7Aに示すデータのデータビット[3:0]の値の具体例を示す図である。
このように図7A及び図7Bに示すデータは、JEDEC standard No. 21-Cによって定められている。
図7Aは、SPD素子59(図6参照)のByteアドレス3(00000011)のデータビット[7:0]のデータ構造を示す図である。SPD素子59のByteアドレス3のデータビット[7:0]には、RDIMM又はUDIMMのいずれであるかを示すデータが含まれている。
データビット[7:0]のうちのデータビット[3:0]の値は定義されており、それぞれ、D3、D2、D1、D0である。データビット[7:0]のうちのデータビット[3:0]以外の値は、未定義である。
図7Bに示すように、データビット[3:0]の各ビットの値D3、D2、D1、D0の値は、第2項に示すように、D3、D2、D1、D0が0、0、0、1のものがRDIMMに割り当てられている。また、第3項に示すように、D3、D2、D1、D0が0、0、1、0のものがUDIMMに割り当てられている。
なお、第1項に示すD3、D2、D1、D0が0、0、0、0のデータは未定義であり、図7Bでは第4項以下を省略する。
SPDコントローラ150は、図7A及び図7Bに示すデータに基づいて、出力端子104及び入出力端子116に接続されるDIMMがRDIMM50又はUDIMM60のいずれであるかを判定する。
次に、図8を用いて、実施の形態のメモリコントローラ100のドライバ103の内部回路について説明する。
図8は、実施の形態のメモリコントローラ100のドライバ103の回路を示す図である。
ドライバ103は、入力端子200、PMOS(P type Metal Oxide Semiconductor)トランジスタ201、203、NMOS(N type Metal Oxide Semiconductor)トランジスタ202、204、設定レジスタ210、インバータ211、212、213、バイアス回路220、230、保護抵抗器241、242、及び出力端子250を含む。
入力端子200は、ドライバ103の入力端子であり、シフトレジスタ102(図6参照)の出力端子に接続されている。入力端子200にはシフトレジスタ102からアドレス信号が入力される。
PMOSトランジスタ201とNMOSトランジスタ202は、CMOS(Complementary Metal Oxide Semiconductor)回路を構築する。
PMOSトランジスタ201とNMOSトランジスタ202のゲートには、入力端子200が接続される。PMOSトランジスタ201のドレインには電源(VCC)が接続され、ソースはNMOSトランジスタ202のドレインに接続される。NMOSトランジスタ202のソースは接地される。
PMOSトランジスタ201のソースとNMOSトランジスタ202のドレインとの接続部205には、PMOSトランジスタ203のゲートとNMOSトランジスタ204のゲートとが接続される。接続部205は、PMOSトランジスタ201とNMOSトランジスタ202を含むCMOS回路の出力部である。
PMOSトランジスタ203とNMOSトランジスタ204は、CMOS回路を構築する。PMOSトランジスタ203のゲート、及びNMOSトランジスタ204のゲートには、接続部205が接続される。PMOSトランジスタ203のドレインは、バイアス回路220の出力端子224に接続され、ソースは保護抵抗器241及び242を介してNMOSトランジスタ204のドレインに接続される。
NMOSトランジスタ204のソースはバイアス回路230の入力端子234に接続される。PMOSトランジスタ203のソースとNMOSトランジスタ204のドレインとの間に接続される保護抵抗器241及び242の接続点206は、ドライバ103の出力端子250に接続されている。
ここで、入力端子200に入力されるアドレス信号が"1"の場合、PMOSトランジスタ201がオフになり、NMOSトランジスタ202がオンになる。このため、接続部205の電位は接地電位になる。
この結果、PMOSトランジスタ203がオンになり、NMOSトランジスタ204はオフになる。
このとき、バイアス回路220内のPMOSトランジスタP1、P2、P3のうちのいずれかがオンになれば、バイアス回路220からPMOSトランジスタ203に所定の電流値のバイアス電流が流れる。
このように、入力端子200にアドレス信号の"1"が入力されてPMOSトランジスタ203がオンになり、バイアス回路220から所定の電流値のバイアス電流が出力されると、PMOSトランジスタ203及び保護抵抗器241を通じて、出力端子250から電流が出力される。
これにより、出力端子250の電位がアドレス信号の"1"/"0"の境界を表す電位よりも高電位になり、アドレス信号の"1"が出力端子250から出力される。
一方、入力端子200に入力されるアドレス信号が"0"の場合、PMOSトランジスタ201がオンになり、NMOSトランジスタ202がオフになる。このため、接続部205の電位は、電源(VCC)の電位になる。
この結果、PMOSトランジスタ203がオフになり、NMOSトランジスタ204がオンになる。
このとき、バイアス回路230内のNMOSトランジスタN1、N2、N3のうちのいずれかがオンになれば、NMOSトランジスタ204からバイアス回路230に電流が流入する。
このように、入力端子200にアドレス信号の"0"が入力されてNMOSトランジスタ204がオフになり、バイアス回路230に所定の電流値のバイアス電流が流入すると、NMOSトランジスタ204及び保護抵抗器242を通じて、出力端子250から電流が流入する。
これにより、出力端子250の電位がアドレス信号の"1"と"0"の境界を表す電位よりも低電位になり、アドレス信号の"0"が出力端子250から出力される。
以上のように、アドレス信号の"1"と"0"が出力端子250を経てドライバ103から出力される。
次に、設定レジスタ210とバイアス回路220、230の回路構成について説明する。
設定レジスタ210は、3ビットのデータ領域を有しており、3ビットのデータ領域は、それぞれ、データS1、S2、S3を保持する。設定レジスタ210には、スルーレート設定指令生成部130(図6参照)から3ビットの設定値Dが入力される。設定値Dが設定レジスタ210に入力されると、データS1、S2、S3として保持される。
設定レジスタ210の各データ領域が保持するデータS1、S2、S3は、インバータ211、212、213を介してバイアス回路220に入力されるとともに、バイアス回路230に直接入力される。
バイアス回路220とバイアス回路230は、同一の回路構成を有しているが、バイアス回路220はアドレス信号の"1"のデータを出力するために用いられ、バイアス回路230はアドレス信号の"0"のデータを出力するために用いられる。
上述のように、バイアス回路220とバイアス回路230とは、出力端子250との間でバイアス電流が流れる方向が異なる。バイアス回路220と出力端子250との間では、バイアス回路220から出力端子250に向かって電流が流れる。一方、バイアス回路230と出力端子250との間では、出力端子250からバイアス回路230に向かって電流が流れる。
バイアス回路220は、PMOSトランジスタP1、P2、P3、NMOSトランジスタN1、N2、N3、入力端子221、222、223、及び出力端子224を含む。PMOSトランジスタP1、P2、P3と、NMOSトランジスタN1、N2、N3とは、それぞれ、添え数字が等しいP型とN型のトランジスタ同士でCMOS回路を構築する。
入力端子221、222、223には、それぞれ、インバータ211、212、213の出力端子が接続されている。入力端子221、222、223には、それぞれ、設定レジスタ210から出力されるデータS1、S2、S3がインバータ211、212、213で反転されて入力される。
PMOSトランジスタP1のゲートと、NMOSトランジスタN1のゲートには、入力端子221を介して、インバータ211の出力端子が接続されている。同様に、PMOSトランジスタP2のゲートと、NMOSトランジスタN2のゲートには、入力端子222を介して、インバータ212の出力端子が接続されている。また、PMOSトランジスタP3のゲートと、NMOSトランジスタN3のゲートには、入力端子223を介して、インバータ213の出力端子が接続されている。
PMOSトランジスタP1、P2、P3のドレインは、それぞれ、電源(VCC)に接続される。PMOSトランジスタP1、P2、P3のソースは、それぞれ、NMOSトランジスタN1、N2、N3のドレインに接続される。NMOSトランジスタN1、N2、N3のソースは接地される。なお、PMOSトランジスタP1、P2、P3のソースと、NMOSトランジスタN1、N2、N3のドレインとの接続部を、それぞれ、接続部225、226、227とする。
接続部225、226、227は、すべて、出力端子224を介してPMOSトランジスタ203のドレインに接続されている。
このようなバイアス回路220に、データS1、S2、S3として"1"、"1"、"1"がインバータ211、212、213を通じて入力されると、PMOSトランジスタP1、P2、P3がオンになり、NMOSトランジスタN1、N2、N3がオフになる。
このため、PMOSトランジスタP1、P2、P3から接続部225、226、227を通じて、PMOSトランジスタ203にバイアス電流が供給される。
また、バイアス回路220に、データS1、S2、S3として"0"、"0"、"0"が入力されると、PMOSトランジスタP1、P2、P3がオフになり、NMOSトランジスタN1、N2、N3がオンになる。このため、PMOSトランジスタ203にバイアス電流は供給されない。
このため、データS1、S2、S3のうち、少なくともいずれか1つを"1"にすることにより、"1"のデータに対応するPMOSトランジスタ(P1、P2、P3のいずれか)がオンになり、オンになったPMOSトランジスタ(P1、P2、P3のいずれか)からバイアス電流がPMOSトランジスタ203に供給される。
データS1、S2、S3のうち"1"にするデータの数を増やすことにより、オンになるPMOSトランジスタ(P1、P2、P3のいずれか)の数が増え、バイアス回路220から出力されるバイアス電流の電流値が増大する。
ここで、バイアス回路220のPMOSトランジスタP1、P2、P3、及びNMOSトランジスタN1、N2、N3は、3ビットのデータS1、S2、S3の値をインクリメントすることにより、段階的にバイアス電流の値が変化するように、サイズ比が決められている。
バイアス回路220のPMOSトランジスタP1、P2、P3のサイズ比、及びNMOSトランジスタN1、N2、N3のサイズ比については後述する。
また、バイアス回路230は、PMOSトランジスタP1、P2、P3、NMOSトランジスタN1、N2、N3、及び入力端子231、232、233、234を含む。PMOSトランジスタP1、P2、P3と、NMOSトランジスタN1、N2、N3とは、それぞれ、添え数字が等しいP型とN型のトランジスタ同士でCMOS回路を構築する。
入力端子231、232、233には、それぞれ、設定レジスタ210の各データ領域が保持するデータS1、S2、S3が直接入力される。
PMOSトランジスタP1のゲートと、NMOSトランジスタN1のゲートとには、入力端子231を介して、設定レジスタ210からデータS1が入力される。同様に、PMOSトランジスタP2のゲートと、NMOSトランジスタN2のゲートとには、入力端子232を介して、設定レジスタ210からデータS2が入力される。また、PMOSトランジスタP3のゲートと、NMOSトランジスタN3のゲートとには、入力端子233を介して、設定レジスタ210からデータS3が入力される。
PMOSトランジスタP1、P2、P3のドレインは、それぞれ、電源(VCC)に接続される。PMOSトランジスタP1、P2、P3のソースは、それぞれ、NMOSトランジスタN1、N2、N3のドレインに接続される。NMOSトランジスタN1、N2、N3のソースは接地される。なお、PMOSトランジスタP1、P2、P3のソースと、NMOSトランジスタN1、N2、N3のドレインとの接続部を、それぞれ、接続部235、236、237とする。
接続部235、236、237は、すべて、入力端子234を介してNMOSトランジスタ204のソースに接続されている。
このようなバイアス回路230は、上述のように、アドレス信号の"0"を出力するために用いられる。出力端子250からバイアス回路230に向かって電流が流れることにより、出力端子250の電位が低下し、出力端子250から出力されるアドレス信号が"0"になる。
このようなバイアス回路230に、データS1、S2、S3として"1"、"1"、"1"が入力されると、PMOSトランジスタP1、P2、P3がオフになり、NMOSトランジスタN1、N2、N3がオンになる。
このため、NMOSトランジスタN1、N2、N3及び接続部235、236、237を通じて、NMOSトランジスタ204のソースが接地される。このとき、NMOSトランジスタ204がオンになれば、出力端子250から保護抵抗器242及びNMOSトランジスタ204を通じて、バイアス電流がバイアス回路220に流入する。
また、バイアス回路230に、データS1、S2、S3として"0"、"0"、"0"が入力されると、PMOSトランジスタP1、P2、P3がオンになり、NMOSトランジスタN1、N2、N3がオフになる。このとき、NMOSトランジスタ204がオンになっても、バイアス回路220にバイアス電流は流入しない。
このため、データS1、S2、S3のうち、少なくともいずれか1つを"1"にすることにより、"1"のデータに対応するNMOSトランジスタ(N1、N2、N3のいずれか)がオンになり、オンになったNMOSトランジスタ(N1、N2、N3のいずれか)を通じて、出力端子250からバイアス電流がバイアス回路220に流入する。
データS1、S2、S3のうち"1"にするデータの数を増やすことにより、オンになるNMOSトランジスタ(N1、N2、N3のいずれか)の数が増え、バイアス回路230に流入するバイアス電流の電流値が増大する。
ここで、バイアス回路230のPMOSトランジスタP1、P2、P3、及びNMOSトランジスタN1、N2、N3は、3ビットのデータS1、S2、S3の値をインクリメントすることにより、段階的にバイアス電流の値が変化するように、サイズ比が決められている。
バイアス回路230のPMOSトランジスタP1、P2、P3のサイズ比、及びNMOSトランジスタN1、N2、N3のサイズ比については後述する。
なお、図8におけるPMOSトランジスタ201、203、NMOSトランジスタ202、204のドレインとソースの接続関係は、上述した接続関係とは逆であってもよい。
同様に、バイアス回路220、230内のPMOSトランジスタP1、P2、P3とNMOSトランジスタN1、N2、N3のドレインとソースの接続関係も、上述した接続関係とは逆であってもよい。
次に、図8に示すバイアス回路220、230のバイアス電流と、出力端子250から出力されるアドレス信号のスルーレートの関係について説明する。
本実施の形態のメモリコントローラ100は、図8に示すバイアス回路220からPMOSトランジスタ203に供給するバイアス電流の電流値を制御することによってアドレス信号のデータ"1"のスルーレートを制御する。
また、メモリコントローラ100は、図8に示すNMOSトランジスタ204からバイアス回路230に流入するバイアス電流の電流値を制御することによってアドレス信号のデータ"0"のスルーレートを制御する。
アドレス信号のスルーレートの制御には、PMOSトランジスタ203とNMOSトランジスタ204の寄生容量を利用する。
ここで、寄生容量Cのトランジスタのドレイン−ソース間に流れる電流Iとドレイン又はソースから出力される出力電圧Vの関係は、V=(1/C)×(dI/dt)で表される。tは時間を表す。
このため、Cが一定値の場合、電流Iが大きければ出力電圧Vの立ち上がりと立ち下がりは早くなり、電流Iが小さければ出力電圧Vの立ち上がりと立ち下がりは緩やかになる。すなわち、電流Iの電流値を幾つかの値に設定すれば、トランジスタに流れる電流Iの立ち上がりと立ち下がりの緩急を調整することができる。
メモリコントローラ100は、バイアス回路220、230でPMOSトランジスタ203、NMOSトランジスタ204のバイアス電流の電流値を設定することにより、PMOSトランジスタ203、NMOSトランジスタ204を通じて出力端子250から出力されるアドレス信号のスルーレートを設定する。
次に、バイアス回路220、230のPMOSトランジスタP1、P2、P3とNMOSトランジスタN1、N2、N3のサイズ比、設定レジスタ210のデータS1、S2、S3、及びバイアス回路220、230におけるバイアス電流の関係について説明する。
図9は、実施の形態のメモリコントローラ100における設定レジスタ210のデータS1、S2、S3と、バイアス回路220、230のバイアス電流と、アドレス信号のスルーレートの関係を表す。
設定レジスタ210のデータS1、S2、S3は、図9に示すように、"0"、"0"、"0"から"1"、"1"、"1"の値を取り得る。
ただし、データS1、S2、S3が"0"、"0"、"0"の場合は、バイアス回路220はPMOSトランジスタP1〜P3がすべてオフになり、バイアス回路230はNMOSトランジスタN1〜N3がすべてオフになり、バイアス回路220、230ともにバイアス電流が流れない。
従って、データS1、S2、S3が"0"、"0"、"0"の場合はアドレス信号を出力することができない。
このため、データS1、S2、S3が"0"、"0"、"0"になる場合については、設定レジスタ210で用いないこととする。
バイアス回路220、230のPMOSトランジスタP1〜P3及びNMOSトランジスタN1〜N3のサイズ比は、図9の第2項から第8項に示すように設定レジスタ210のデータS1、S2、S3が下位ビットS3から順に"1"になると、バイアス電流が順次増大して行くように設定されている。
PMOSトランジスタP1〜P3のサイズ比の設定は、例えば、PMOSトランジスタP1〜P3のゲート長又はゲート幅等を設定することによって行えばよい。
同様に、NMOSトランジスタN1〜N3のサイズ比の設定は、例えば、NMOSトランジスタN1〜N3のゲート長又はゲート幅等を設定することによって行えばよい。
ここで、上述のように、出力端子250(図8参照)から出力されるアドレス信号のスルーレートは、バイアス回路220、230に流れるバイアス電流の電流値に応じて変化する。
このため、図9に示すように、設定レジスタ210のデータS1、S2、S3が下位ビットS3から順に"1"になる場合にバイアス電流が順次増大するようにPMOSトランジスタP1〜P3及びNMOSトランジスタN1〜N3のサイズ比を設定すれば、アドレス信号のスルーレートが順次増大するように設定することができる。
バイス回路220、230のバイアス電流の電流値は、設定レジスタ210のデータS1、S2、S3が"0"、"0"、"1"の場合に最小である。このとき、スルーレートも最小となる。
また、バイス回路220、230のバイアス電流の電流値は、設定レジスタ210のデータS1、S2、S3が"1"、"1"、"1"の場合に最大である。このとき、スルーレートも最大となる。
次に、図10A、図10Bを用いて、アドレス信号のスルーレートの違いについて説明する。
図10Aは、実施の形態のメモリコントローラ100でスルーレートを最大にした場合のアドレス信号の立ち上がり波形のシミュレーション結果を示す図である。
図10Bは、実施の形態のメモリコントローラ100でスルーレートを最小にした場合のアドレス信号の立ち上がり波形のシミュレーション結果を示す図である。
ここで、図10A及び図10Bに示すアドレス信号のスルーレートの評価は、電圧が0.65(V)から0.85(V)までの0.2(V)だけ上昇する時間を求めて行った。
RDIMM及びUDIMMのアドレス信号の"0"と"1"の境界を表す閾値は、JEDECの規格によって0.75(V)と決められており、また、閾値のばらつきについても、下限値が0.65(V)で上限値が0.85(V)と決められている。
このため、スルーレートの評価は、電圧が0.65(V)から0.85(V)まで上昇する時間を求めて行うことにした。
図10Aに示すアドレス信号の立ち上がりのスルーレートは、43(ps(pico second))の間に電圧が0.65(V)から0.85(V)まで0.2(V)上昇しているため、4.65(V/ns(nano second))である。
図10Bに示すアドレス信号の立ち上がりのスルーレートは、110(ps)の間に電圧が0.65(V)から0.85(V)まで0.2(V)上昇しているため、1.8(V/ns)である。
実施の形態のメモリコントローラ100は、一例として、設定レジスタ210のデータS1、S2、S3を "1"、"1"、"1"(図9に示す第8項)に設定することにより、アドレス信号のスルーレートを図10Aに示すように最大値に設定する。
また、実施の形態のメモリコントローラ100は、一例として、設定レジスタ210のデータS1、S2、S3を"0"、"0"、"1" (図9に示す第2項)に設定することにより、アドレス信号のスルーレートを図10Bに示すように最小値に設定する。
また、実施の形態のメモリコントローラ100は、設定レジスタ210のデータS1、S2、S3を"1"、"1"、"1"と"0"、"0"、"1"の間の値(図9に示す第3項から第7項の値)に設定することにより、アドレス信号のスルーレートを図10Aと図10Bとの間の値に設定する。
次に、図11及び図12を用いて、アドレス信号のスルーレートを最大又は最小にした場合に、UDIMM60のSDRAM1とSDRAM8が受信するアドレス信号のアイパターンについて説明する。
図11Aは、アドレス信号のスルーレートを最大にした場合に、UDIMM60のSDRAM1が受信するアドレス信号のアイパターンを示し、図11Bは、アドレス信号のスルーレートを最大にした場合に、UDIMM60のSDRAM8が受信するアドレス信号のアイパターンを示す。
図12Aは、アドレス信号のスルーレートを最小にした場合に、UDIMM60のSDRAM1が受信するアドレス信号のアイパターンを示し、図12Bは、アドレス信号のスルーレートを最小にした場合に、UDIMM60のSDRAM8が受信するアドレス信号のアイパターンを示す。
図11A、図11B、図12A、図12Bでは、横軸に時間、縦軸に電圧をとってアイパターンを示す。
また、ここでは、RDIMM及びUDIMMのアドレス信号の"0"と"1"の境界を表す閾値の下限値(0.65(V))と上限値(0.85(V))との間にある有効な窓幅を求めた。
図11Aに示すアイパターンでは、有効な窓幅は、点A1と点B1との間であり、900.94(ps)である。また、図11Bに示すアイパターンでは、有効な窓幅は、点C1と点D1との間であり、1.129(ns)である。
図11A、図11Bは、RDIMM50用のスルーレートのアドレス信号をUDIMM60に入力した場合のアイパターンを示している。
このため、入力端子62(図5参照)から見て最も奥に位置するSDRAM8のアイパターン(図11B)の方が、入力端子62から見て最も手前に位置するSDRAM1のアイパターン(図11A)よりも有効な窓幅が狭くなっている。
これは、入力端子62から見て手前側に位置するSDRAM1の方が、入力端子62から見て奥側に位置するSDRAM8よりも、アドレス信号の反射による影響が顕著に現れていることを示している。
これに対して、アドレス信号のスルーレートを最小に設定した場合のアイパターンは、図12A及び図12Bに示す通りである。
図12Aに示すアイパターンでは、有効な窓幅は、点A2と点B2との間であり、1.949(ns)である。また、図12Bに示すアイパターンでは、有効な窓幅は、点C2と点D2との間であり、1.6813(ns)である。
このように、アドレス信号のスルーレートを最小にしてUDIMM60に入力すると、入力端子62に最も近いSDRAM1のアイパターンの有効な窓幅は、図11Aに示すアイパターンの2倍以上に広がった。
また、入力端子62から見て最も奥に位置するSDRAM8のアイパターンの有効な窓幅は、図11Bに示すアイパターンの約1.5倍に広がった。
以上より、アドレス信号のスルーレートを低下させてUDIMM60に入力すると、アドレス信号の反射による影響を抑制できることが分かった。
次に、図13を用いて、メモリコントローラ100にRDIMM50又はUDIMM60が接続された場合に、メモリコントローラ100が実行する処理について説明する。
図13は、実施の形態のメモリコントローラ100にRDIMM50又はUDIMM60が接続された場合に、メモリコントローラ100のSPDコントローラ150が実行する処理を示す図である。
SPDコントローラ150は、メモリコントローラ100の電源が投入されると、処理を開始し、SPD素子に記憶されたデータを読み込む(ステップS1)。
次いで、SPDコントローラ150は、SPD素子から読み込んだデータに基づき、DIMMの種類を判定する(ステップS2)。
SPDコントローラ150は、ステップS2でメモリコントローラ100にRDIMM50が接続されたと判定すると、スルーレート設定指令生成部130にクロック、アドレス信号、データストローブ信号、及びデータのスルーレートをRDIMM用に設定させる(ステップS3R)。
この結果、スルーレート設定指令生成部130は、クロック、データストローブ信号、及びデータのスルーレートを最大値(max)に設定するとともに、初期設定部160によって保持される値に応じて、アドレス信号のスルーレートをRDIMM用の値(比較的高い値)に設定する。
ステップS3Rの処理が終了すると、メモリコントローラ100は、クロック、アドレス信号、データストローブ信号、及びデータのタイミング設定を行う(ステップS4R)。
以上により、処理が終了する。
一方、SPDコントローラ150がステップS2でメモリコントローラ100にUDIMM50が接続されたと判定すると、スルーレート設定指令生成部130にクロック、アドレス信号、データストローブ信号、及びデータのスルーレートをUDIMM用に設定させる(ステップS3U)。
この結果、スルーレート設定指令生成部130は、クロック、データストローブ信号、及びデータのスルーレートを最大値(max)に設定するとともに、初期設定部160によって保持される値に応じて、アドレス信号のスルーレートをUDIMM用の値(比較的低い値)に設定する。
ステップS3Uの処理が終了すると、メモリコントローラ100は、クロック、アドレス信号、データストローブ信号、及びデータのタイミング設定を行う(ステップS4U)。
以上により、処理が終了する。
次に、図14の真理値表を用いて、実施の形態のメモリコントローラ100のSPDコントローラ150の動作について説明する。
図14は、実施の形態のメモリコントローラ100のスルーレート設定指令生成部130及び遅延指令生成部140の動作を示す真理値表を示す図である。
図14には、スルーレート設定指令生成部130及び遅延指令生成部140への入力として、第1項から第8項までの初期設定値とSPDコントローラ150の出力(判定結果)を示す。
初期設定値は、初期設定部160(図6参照)が保持する2ビットのデータで表される値であり、"00"、"01"、"10"、"11"の値を取り得る。
初期設定値は、アドレス信号のスルーレートを微調整するために用いる値である。UDIMM60用のアドレス信号のスルーレートは、初期設定値が"00"のときに最小値となり、"00"よりも"11"にシフトするに連れてスルーレートが大きくなるように設定されている。
また、RDIMM50用のアドレス信号のスルーレートは、初期設定値が"00"のときに最大値となり、"00"よりも"11"にシフトするに連れてスルーレートが大きくなるように設定されている。
初期設定値は、例えば、RDIMM50又はUDIMM60をメモリコントローラ100に接続する前に、RDIMM50又はUDIMM60のアドレス信号のスルーレートを調整しながらオシロスコープ等で観測し、波形の特性に応じて決定し、予め初期設定部160に設定しておけばよい。
特に、レジスタチップを含まないUDIMM60は、内部のアドレス線61(図5参照)でのアドレス信号の反射があるため、個体差等に応じて最適な初期設定値を決定すればよい。
また、図14には、スルーレート設定指令生成部130で設定される設定値Dと、遅延指令生成部140で設定される設定値R、Wを示す。設定値Dは3ビットのデータであり、ドライバ103の設定レジスタ210(図6参照)に入力されると、データS1、S2、S3として保持される。
また、図14には、第1項から第8項までの設定値R、W、Dとスルーレートの関係を示す。
上述のように、スルーレート設定指令生成部130は、設定レジスタ210のデータS1、S2、S3を設定するための3ビットの設定値Dを設定する。また、図9に示したように、設定レジスタ210のデータS1、S2、S3は"0"、"0"、"1"から"1"、"1"、"1"まで変化する。
このため、スルーレート設定指令生成部130は、設定値Dを"001"から"111"まで変化させる。
また、上述のように、遅延指令生成部140は、RDIMM50からデータを読み出すときは設定値RをLレベルに設定し、RDIMM50にデータを書き込むときは設定値WをHレベルにする。
遅延指令生成部140は、UDIMM60からデータを読み出すときは設定値RをHレベルに設定し、UDIMM60にデータを書き込むときは設定値WをLレベルにする。
このため、スルーレート設定指令生成部130で設定される設定値Dと、遅延指令生成部140で設定される設定値R、Wは、図14に示すように、第1項から第8項まで設定される。
第1項から第4項は、SPDコントローラ150によってRDIMM50が接続されたと判定された場合に相当する。
この場合に、初期設定値("00"〜"11")に応じて、第1項から第4項まで設定値Dが"111"から"100"まで変化し、これに応じて、スルーレートは段階的に低下する。
なお、第1項から第4項では、設定値RはLレベル、設定値WはHレベルにそれぞれ設定される。
また、第8項から第5項は、SPDコントローラ150によってUDIMM60が接続されたと判定された場合に相当する。
この場合に、初期設定値("00"〜"11")に応じて、第8項から第5項まで設定値Dが"001"から"100"まで変化し、これに応じて、スルーレートは段階的に増大する。
なお、第8項から第5項では、設定値RはHレベル、設定値WはLレベルにそれぞれ設定される。
本実施の形態のメモリコントローラ100によれば、図14に示す初期設定値、スルーレート設定指令生成部130で設定される設定値D、遅延指令生成部140で設定される設定値R、Wを用いることにより、RDIMM50とUDIMM60とを汎用的に利用することができる。
また、特に、メモリコントローラ100にUDIMM60を接続する場合は、アドレス信号のスルーレートを比較的低く設定するため、UDIMM60のアドレス線61におけるアドレス信号の反射の発生を抑制することができる。
また、メモリコントローラ100はRDIMM50とUDIMM60とに汎用的に利用できるため、従来のようにRDIMM50とUDIMM60用に別々のメモリコントローラを用意する必要がなくなる。
これにより、RDIMM50に利用できるメモリコントローラ100を従来よりも安価に提供することができる。
そして、この結果、RDIMM50を実装したブレードサーバのような大型の情報処理装置のコストダウンを図ることができる。
以上より、本実施の形態によれば、アドレス線のトポロジーの異なるいずれのDIMMに対してもアドレス指定とデータの読み書きを正確に行うことができるとともに、製造コストを抑制したメモリコントローラ及び情報処理装置を提供することができる。
なお、以上では、初期設定部160が保持する初期設定値に応じてアドレス信号のスルーレートを最大値と最小値との間で段階的に設定する形態について説明したが、メモリコントローラ100にRDIMM50が接続された場合には一律にアドレス信号のスルーレートを最大値に設定してもよい。
同様に、メモリコントローラ100にUDIMM60が接続された場合には一律にアドレス信号のスルーレートを最小値に設定してもよい。
以上、本発明の例示的な実施の形態のメモリコントローラ、及び情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
10 サーバ
20 システムボード
20A、20B 主面
21A、21B、21C ビア
22 層間配線
23 バンプ
24A、24B ソケット
25A、25B 配線
30 CPUコントローラ
40 メモリコントローラ
41 ICチップ
42 配線
43、44、45、47 ドライバ
46、48 レシーバ
50、50A、50B RDIMM
51A、51B 基板
52A、52B バンプ
53A、53B SDRAM
54A、54B 層間配線
55 レジスタチップ
56 アドレス線
57 入力端子
58 終端抵抗器
59 SPD素子
60 UDIMM
61 アドレス線
62 入力端子
63 終端抵抗器
100 メモリコントローラ
101 入力端子
102 シフトレジスタ
103 ドライバ
104 アドレス指定端子
111、121 入力端子
112、122 シフトレジスタ
113、123 遅延部
114、124 マルチプレクサ
115 ドライバ
116 入出力端子
125 レシーバ
130 スルーレート設定指令生成部
140 遅延指令生成部
150 SPDコントローラ
151 入力端子
152 レシーバ
160 初期設定部
201、203 PMOS
202、204 NMOS
210 設定レジスタ
211、212、213 インバータ
220、230 バイアス回路
241、242 保護抵抗器
250 出力端子
本発明の実施の形態のメモリコントローラは、アドレス線のトポロジーが異なるDIMMの種類をSPDに基づいて判定する判定部と、前記判定部によって判定されるDIMMの種類に応じて、アドレス信号のスルーレートを設定するスルーレート設定部と、前記判定部によって判定されるDIMMの種類に応じて、データの読み出し時又は書き込み時のデータ遅延量を設定する遅延設定部とを含み、前記遅延設定部は、前記判定部によって判定されるDIMMの種類に応じて、前記データ遅延量を設定するための遅延指令を生成する遅延指令生成部と、前記データの伝送路に挿入され、前記遅延指令生成部が生成する前記遅延指令に基づき、前記データ遅延量を制御する遅延制御部とを有し、前記遅延制御部は、前記データの伝送路に挿入される遅延部と、前記データの伝送路に挿入され、前記遅延指令に基づき、前記遅延部を経由する第1経路と、前記遅延部を経由しない第2経路とのいずれか一方を経由するデータを選択するマルチプレクサとを有し、前記マルチプレクサで前記第1経路又は前記第2経路のいずれか一方を経由するデータを選択することにより、前記データ遅延量を制御し、前記遅延制御部は、UDIMMから前記データを読み出すときには前記第1経路を経由するデータを選択し、UDIMMに前記データを書き込むときには前記第2経路を経由するデータを選択するとともに、RDIMMから前記データを読み出すときには前記第2経路を経由するデータを選択し、RDIMMに前記データを書き込むときには前記第1経路を経由するデータを選択する

Claims (8)

  1. アドレス線のトポロジーが異なるDIMMの種類をSPDに基づいて判定する判定部と、
    前記判定部によって判定されるDIMMの種類に応じて、アドレス信号のスルーレートを設定するスルーレート設定部と、
    前記判定部によって判定されるDIMMの種類に応じて、データの読み出し時又は書き込み時のデータ遅延量を設定する遅延設定部と
    を含む、メモリコントローラ。
  2. 前記スルーレート設定部は、
    前記判定部によって判定されるDIMMの種類に応じて、前記アドレス信号のスルーレートを設定するためのスルーレート設定指令を生成するスルーレート設定指令生成部と、
    前記アドレス信号を伝送するアドレス線に挿入され、前記スルーレート設定指令生成部が生成する前記スルーレート設定指令に基づき、前記アドレス信号のスルーレートを変更するスルーレート変更部とを有する、請求項1記載のメモリコントローラ。
  3. 前記スルーレート変更部は、
    前記スルーレート設定指令に応じた電流を出力するバイアス回路部と、
    前記アドレス信号によって駆動されるとともに、前記バイアス回路部の出力電流が供給され、前記バイアス回路部の出力電流に応じてスルーレートを変更したアドレス信号を出力するCMOSインバータ回路部とを有する、請求項2記載のメモリコントローラ。
  4. 前記スルーレート設定部は、UDIMMに入力される第1アドレス信号のスルーレートを、RDIMMに入力される第2アドレス信号のスルーレートよりも低くする、請求項1記載のメモリコントローラ。
  5. 前記遅延設定部は、
    前記判定部によって判定されるDIMMの種類に応じて、前記データ遅延量を設定するための遅延指令を生成する遅延指令生成部と、
    前記データの伝送路に挿入され、前記遅延指令生成部が生成する前記遅延指令に基づき、前記データ遅延量を制御する遅延制御部とを有する、請求項1記載のメモリコントローラ。
  6. 前記遅延制御部は、
    前記データの伝送路に挿入される遅延部と、
    前記データの伝送路に挿入され、前記遅延指令に基づき、前記遅延部を経由する第1経路と、前記遅延部を経由しない第2経路とのいずれか一方を経由するデータを選択するマルチプレクサとを有し、
    前記マルチプレクサで前記第1経路又は前記第2経路のいずれか一方を経由するデータを選択することにより、前記データ遅延量を制御する、請求項5記載のメモリコントローラ。
  7. 前記遅延制御部は、UDIMMから前記データを読み出すときには前記第1経路を経由するデータを選択し、UDIMMに前記データを書き込むときには前記第2経路を経由するデータを選択するとともに、RDIMMから前記データを読み出すときには前記第2経路を経由するデータを選択し、RDIMMに前記データを書き込むときには前記第1経路を経由するデータを選択する、請求項6記載のメモリコントローラ。
  8. 演算処理装置と、
    記憶装置と、
    前記演算処理装置と前記記憶装置との間でデータを伝送する、請求項1記載のメモリコントローラと
    を含む、情報処理装置。
JP2012552580A 2011-01-13 2011-01-13 メモリコントローラ、及び情報処理装置 Active JP5541373B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050474 WO2012095980A1 (ja) 2011-01-13 2011-01-13 メモリコントローラ、及び情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2012095980A1 true JPWO2012095980A1 (ja) 2014-06-09
JP5541373B2 JP5541373B2 (ja) 2014-07-09

Family

ID=46506902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012552580A Active JP5541373B2 (ja) 2011-01-13 2011-01-13 メモリコントローラ、及び情報処理装置

Country Status (4)

Country Link
US (1) US9292424B2 (ja)
EP (1) EP2664991A4 (ja)
JP (1) JP5541373B2 (ja)
WO (1) WO2012095980A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514420B2 (en) * 2014-08-15 2016-12-06 Rambus Inc. Strobe gating adaption and training in a memory controller
US9646992B2 (en) * 2015-09-03 2017-05-09 Kabushiki Kaisha Toshiba Semiconductor memory
JP7406895B2 (ja) 2019-10-23 2023-12-28 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
CN113050874A (zh) * 2019-12-26 2021-06-29 华为技术有限公司 一种内存设置方法以及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08305629A (ja) * 1995-04-25 1996-11-22 Internatl Business Mach Corp <Ibm> メモリ・アクセス制御装置及びメモリ・アクセス制御方法、コンピュータ・システム
US6298426B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Controller configurable for use with multiple memory organizations
KR100578112B1 (ko) 1998-10-16 2006-07-25 삼성전자주식회사 메모리 클럭 신호를 제어하는 컴퓨터 시스템 및그 방법
US6321282B1 (en) * 1999-10-19 2001-11-20 Rambus Inc. Apparatus and method for topography dependent signaling
JP4002378B2 (ja) * 1999-12-27 2007-10-31 エルピーダメモリ株式会社 電子回路
JP2002278825A (ja) * 2001-03-19 2002-09-27 Ricoh Co Ltd メモリ制御装置
US6675272B2 (en) * 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
JP3588599B2 (ja) 2001-07-05 2004-11-10 株式会社東芝 半導体バッファ能力調整方法、半導体バッファ能力調整システム、及び半導体装置
JP2004334675A (ja) * 2003-05-09 2004-11-25 Canon Inc メモリ制御手段
US7532537B2 (en) * 2004-03-05 2009-05-12 Netlist, Inc. Memory module with a circuit providing load isolation and memory domain translation
US7215161B2 (en) * 2005-02-28 2007-05-08 Rambus Inc. Wave shaping output driver to adjust slew rate and/or pre-emphasis of an output signal
US7321524B2 (en) * 2005-10-17 2008-01-22 Rambus Inc. Memory controller with staggered request signal output
WO2007095080A2 (en) 2006-02-09 2007-08-23 Metaram, Inc. Memory circuit system and method
EP2706461A1 (en) 2006-02-09 2014-03-12 Google Inc. Memory circuit system and method
JP5268392B2 (ja) * 2008-03-07 2013-08-21 パナソニック株式会社 メモリデバイス及びメモリシステム並びにメモリシステムにおけるアクセスタイミング調整方法
US7710144B2 (en) * 2008-07-01 2010-05-04 International Business Machines Corporation Controlling for variable impedance and voltage in a memory system

Also Published As

Publication number Publication date
US20130297895A1 (en) 2013-11-07
JP5541373B2 (ja) 2014-07-09
WO2012095980A1 (ja) 2012-07-19
EP2664991A1 (en) 2013-11-20
US9292424B2 (en) 2016-03-22
EP2664991A4 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
US9209804B2 (en) Semiconductor device having impedance calibration function to data output buffer and semiconductor module having the same
US7514955B2 (en) Semiconductor memory device with ability to effectively adjust operation time for on-die termination
KR100790821B1 (ko) 반도체 메모리 장치에서의 온다이 터미네이션 회로
EP3208806B1 (en) Termination topology of memory system and associated memory module and control method
JP2001183422A (ja) 半導体集積回路及び電子回路
KR100929846B1 (ko) 온 다이 터미네이션 제어 회로
JP2007012245A (ja) 半導体メモリ装置
JP2012008881A (ja) メモリシステム及びその制御方法
JP5541373B2 (ja) メモリコントローラ、及び情報処理装置
US7136310B2 (en) Programmable output driver turn-on time for an integrated circuit memory device
US9323538B1 (en) Systems and methods for memory interface calibration
US8738347B2 (en) Method for extracting IBIS simulation model
CN110993002B (zh) 用于改进动态随机存取存储器(dram)中组件可靠性的系统和方法
KR20110083859A (ko) 메모리 버퍼를 갖는 메모리 모듈 및 이를 포함하는 메모리 시스템
US10714163B2 (en) Methods for mitigating transistor aging to improve timing margins for memory interface signals
CN111640460A (zh) 终端电阻电路及其控制方法
US20080290961A1 (en) Semiconductor device
CN111406285A (zh) 用于在存储器件中产生交错延迟的系统和方法
WO2009139101A1 (ja) 電子機器システム、および半導体集積回路のコントローラ
JP2010123203A (ja) 半導体装置及びモジュールデバイス
US20090091963A1 (en) Memory device
US11756605B2 (en) Semiconductor device
JP5662574B2 (ja) 半導体装置
JP2022051373A (ja) メモリシステム及び送信信号調整方法
JP2015011730A (ja) 半導体装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5541373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150