JP4661134B2 - メモリ制御方法および装置 - Google Patents

メモリ制御方法および装置 Download PDF

Info

Publication number
JP4661134B2
JP4661134B2 JP2004245216A JP2004245216A JP4661134B2 JP 4661134 B2 JP4661134 B2 JP 4661134B2 JP 2004245216 A JP2004245216 A JP 2004245216A JP 2004245216 A JP2004245216 A JP 2004245216A JP 4661134 B2 JP4661134 B2 JP 4661134B2
Authority
JP
Japan
Prior art keywords
data
memory control
strobe
output
ddr
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.)
Expired - Fee Related
Application number
JP2004245216A
Other languages
English (en)
Other versions
JP2006065470A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2004245216A priority Critical patent/JP4661134B2/ja
Publication of JP2006065470A publication Critical patent/JP2006065470A/ja
Application granted granted Critical
Publication of JP4661134B2 publication Critical patent/JP4661134B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Dram (AREA)

Description

本発明は、メモリ制御方法および装置に関し、特に、ストローブ信号に基づいてデータの読み出しを行うメモリ制御方法および装置に関する。
近年、大容量な半導体メモリとしては、同期型のシンクロナスDRAM(Synchronous Dynamic Random Access Memory:以下、SDRAMと略称する)が主流になってきている。しかしながら、SDRAMでは、DRAM(Dynamic Random Access Memory)自体を高速化することは困難であるために、その入出力部(I/O)を高速化するDouble Data Rate(以下、DDRと略称する)のSDRAMが利用され始めている。
DDR−SDRAMは、ストローブ信号の両エッジを使ってデータ転送するために、データ(nビット)とストローブ信号のタイミング関係が非常に厳しくなっている。具体的には、DDR266と称される規格においては、制御回路は133MHz(周期7.5ns)で動作するものの、データ転送部分は266MHz(周期3.7ns)となっており、半導体デバイス設計のみならず、プリント基板の信号配線設計も困難を極めている。
ここで、DDR−SDRAMへのデータの書き込みとDDR−SDRAMからのデータの読み出しを制御するメモリ制御装置について説明する。
図7は、メモリ制御装置が適用されるシステムの構成例を示した図である。同図に示すように、メモリ制御装置501は、DDR−SDRAM502と接続されるとともに、プロセッサ503とシステムバス504を介して接続される。
プロセッサ503は、システム全体を制御するものであり、メモリ制御装置501を介してDDR−SDRAM502へのデータの書き込みやDDR−SDRAM502からのデータの読み出しを行う。また、システムバス504には、ネットワークを介してデータの送受信を行うNIC(Network Interface Controller)等(不図示)が接続されている。
ここで、図7に示した構成におけるデータの書き込みおよびデータの読み出し時の動作について説明する。図8は、図7に示した構成においてプロセッサ503がDDR−SDRAM502にデータを書き込む際の信号のタイミングを示した図であり、図9は、図7に示した構成においてプロセッサ503がDDR−SDRAM502からデータを読み出す際の信号のタイミングを示した図である。
プロセッサ503がDDR−SDRAM502にデータを書き込む際には、メモリ制御装置501は、プロセッサ503からSYSTEM_CLK、ChipSelect、ADDR、DATA、R/Wの各信号を受けて、DDR−SDRAM502へ送出するCK、nCK、Command、DQS0、DQ[7:0]、DQS1、DQ[15:8]の各信号を所定のタイミングで生成する。
SYSTEM_CLKは、図7に示したシステムに共通のクロックであり、ChipSelectは、DDR−SDRAM502を制御するメモリ制御装置501を選択する信号、ADDRは、データの書き込み先のアドレスを示す信号、DATAは、DDR−SDRAM502へ書き込むデータ、R/Wは、DDR−SDRAM502に対するデータの書き込み若しくは読み出しを指示する信号(0が書き込み指示)である。
CKとnCKは、DDR−SDRAM502を動作させるクロックであり、Commandは動作指示、DQ[7:0]は、DQ0乃至DQ7として表される8ビットのデータ、DQS0は、DQ[7:0]に対応するストローブ信号、DQ[15:8]は、DQ8乃至DQ15として表される8ビットのデータ、DQS1は、DQ[15:8]に対応するストローブ信号である。
また、プロセッサ503がDDR−SDRAM502からデータを読み出す際には、メモリ制御装置501は、プロセッサ503からSYSTEM_CLK、ChipSelect、ADDR、R/Wの各信号を受けて、DDR−SDRAM502へ送出するCK、nCK、Commandの各信号を所定のタイミングで生成する。そして、DDR−SDRAM502からDQS0、DQ[7:0]、DQS1、DQ[15:8]の各信号が返されると、メモリ制御装置501は、DATA信号をプロセッサ503へ送出する。
SYSTEM_CLKは、図7に示したシステムに共通のクロックであり、ChipSelectは、DDR−SDRAM502を選択する信号、ADDRは、データの読み出し元のアドレスを示す信号、DATAは、DDR−SDRAM502から読み出したむデータ、R/Wは、DDR−SDRAM502に対するデータの書き込み若しくは読み出しを指示する信号(1が読み出し指示)である。
CKとnCKは、DDR−SDRAM502を動作させるクロックであり、Commandは動作指示、DQ[7:0]は、DQ0乃至DQ7として表される8ビットのデータ、DQS0は、DQ[7:0]に対応するストローブ信号、DQ[15:8]は、DQ8乃至DQ15として表される8ビットのデータ、DQS1は、DQ[15:8]に対応するストローブ信号である。
続いて、プロセッサ503がDDR−SDRAM502からデータを読み出す際のメモリ制御装置501の動作について説明する。図10は、メモリ制御装置501の構成を示した図であり、図11は、プロセッサ503がDDR−SDRAM502からデータを読み出す際のメモリ制御装置501内の信号のタイミングを示した図である。なお、図10においては、メモリ制御装置501のうち、8ビットのデータDQ[7:0]を処理する部分のみを示しており、他の部分は省略している。
図10に示すように、メモリ制御装置501は、データリード制御部510と、ラッチ511−L、ラッチ511−H、ラッチ520−L、ラッチ520−H、DLL(Delay Locked Loop)530を具備して構成される。この構成においては、DLL530は、DDR−SDRAM502から入力されるストローブ信号DQS0の位相を90度遅らせた内部DQS0を生成する。ラッチ520−Lは、DLL530が生成した内部DQS0の立ち上がりに同期してDDR−SDRAM502から入力されるデータDQ[7:0]をラッチしてdata_in[7:0]Lを取得し、ラッチ520−Hは、DLL530が生成した内部DQS0の立ち下がりに同期してDDR−SDRAM502から入力されるデータDQ[7:0]をラッチしてdata_in[7:0]Hを取得する。ラッチ511−Lとラッチ511−Hは、データリード制御部510に配され、システムクロックに同期して、それぞれ、data_in[7:0]Lとdata_in[7:0]Hを取得し、データとしてint_DQ[7:0]L、int_DQ[7:0]Hを出力する。
ところで、DQS0とDQ[7:0]は、同期してDDR−SDRAM502から入力されるために上述の処理でデータを取得することができるが、DQS0とDQ[7:0]は厳密には同期していない。これは、プリント基板上の配線長のズレや電源・温度変化、プリント基板上の配線層、層間接続、素材ばらつき等により、DQ[7:0]にタイミングのズレ(以下、スキューと称する)が生じることが原因である。
スキューが発生した場合に、その大きさが許容範囲内であれば、図12に示すように正しいデータを取得することができるが、スキューが大きくなった場合には、図13に示すように、データを正しく取得することができなくなってしまう。なお、図13に示す状態は、DQ[3]とDQ[15]を正しく取得することができていない状態である。
このため、一般的には、プリント基板上の配線を等長配線とすることで、スキューの発生を抑制している。図14は、等長配線の1例を示した図である。プリント基板上では、データストローブとデータの1つの塊(図14では、DQS0とDQ[7:0])が等しい長さになるように、ミアンダと呼ばれる長さ調整のための曲線配線を行っている。
特に、Dual Inline Memory Module(以下、DIMMと略称する)のような多ビット、例えば64ビットのデータをもつ場合には、1つのストローブに対し、データ信号を8本割り当てて、8本の中でタイミングばらつきの押さえ込みを行っている。
しかしながら、実際には、等長配線を行うにも限界があり、長さには多少のズレがでている。さらに、電源や温度変化、プリント基板上の配線層、層間接続、素材ばらつき等の影響で全ての信号を同期させることは不可能に近い。
このため、可変遅延回路を備えて、データの最適遅延量を決め、これを設定して利用する技術(例えば、特許文献1参照)や、可変容量回路を備えて、データの遅延を調整する技術(例えば、特許文献2参照)、プリント基板上の配線を考慮して、チップの1辺にデータ信号を並べる技術(例えば、特許文献3参照)等が提案されている。
特開2001−337862号公報 特開2001−307480号公報 特開2000−243893号公報
しかしながら、上述の特許文献1や特許文献2に記載の技術においては、可変遅延回路や可変容量回路自体の特性が入り込むため、電源電圧や温度、プロセスの影響を含めた可変量を特定することは困難である。あわせて遅延精度や容量精度をたかめるということは、半導体プロセスに精度をもとめることになり、結果としてコストがかかる。その上、精度よく遅延を調整しても、電源・温度の変化や、プリント基板上の配線層や、層間接続、素材ばらつきのために、必ずしも最適のタイミングで動作させることは、困難である。
また、特許文献3に記載された技術のように、チップの1辺にデータ信号を並べることは、物理的に効果があることであるが、LSIのパッケージが多ピン化した場合には、この方法では限界を迎える。つまり、DDR−SDRAMのDIMMをアクセスするのに必要な信号は、データに関してDQS[7:0]、DQ[63:0]、DM[7:0]の80ピンであり、チップの1辺に全てを並べるということは、80ピン×4辺の320ピンのQuadFlatPackage(以下、QFPと略称する)という大きなサイズのパッケージを使用することが余儀なくされ、プリント基板サイズが大きくなるという副次的なコストアップが発生してしまう。さらに、最近主流のBallGridArray(以下、BGAと略称する)パッケージでは、内部デバイスからピン端子までの配線も関係するために1辺に並べることで大きな効果が期待できるものではない。
また、以上のような高速化への対応をせずに動作クロック自体を低速にすることで、技術的障壁を下げることも考えられるが、DDR−SDRAMには、DLLという信号の位相制御回路が内蔵されており、標準化団体JEDECより発行されている文書JESD79「DDR SDRAM Specification」によると、クロック周期の最大値は15ns、すなわち、クロック周波数は66.6MHz以上となっている。この数値は、メモリデバイスメーカーによっては、84MHz以上という制約になっている場合もあり、必ずしも技術的に簡易になるとは、いいがたい。
そこで、本発明は、特殊な回路を使わずに、電源・温度の変化や、プリント基板上の配線層や、層間接続、素材のばらつき等があっても、安定的に動作させることが可能なメモリ制御方法および装置を提供することを目的とする。
上述した目的を達成するため、請求項1の発明は、複数のストローブ信号を出力するとともに該ストローブ信号に同期してデータを出力するメモリ装置を制御するメモリ制御方法であって、メモリ装置が出力するデータを、該メモリ装置が出力する複数のストローブ信号のうち、少なくとも2つのストローブ信号のそれぞれに基づいて取り込み、該取り込んだデータの正誤を判定し、該判定により正と判定されたデータを選択して出力することを特徴とする。
また、請求項の発明は、請求項の発明において、前記選択は、前記ストローブ信号のうち特定のストローブ信号で取り込んだデータが誤りと判定された場合に、該特定のストローブ信号とは別のストローブ信号で取り込んだデータを出力することにより行われることを特徴とする。
また、請求項の発明は、請求項の発明において、前記判定は、前記メモリ装置の初期化処理時に行われることを特徴とする。
また、請求項の発明は、請求項1の発明において、前記ストローブ信号は、前記メモリ装置に接続された複数の信号線のそれぞれから出力され、該信号線のうち対称に配置された少なくとも2つの信号線のそれぞれから出力されるストローブ信号に基づいて前記データを取り込むことを特徴とする。
また、請求項の発明は、複数のストローブ信号を出力するとともに該ストローブ信号に同期してデータを出力するメモリ装置を制御するメモリ制御装置において、メモリ装置が出力するデータを、該メモリ装置が出力する複数のストローブ信号のうち、少なくとも2つのストローブ信号のそれぞれに基づいて取り込むデータ取得手段と、前記データ取得手段が取り込んだデータのいずれかを選択して出力する選択手段と、前記選択手段が選択したデータの正誤を判定する判定手段とを具備し、前記選択手段は、前記判定手段の判定結果に基づいて選択するデータを変更することを特徴とする。
また、請求項の発明は、請求項の発明において、前記判定手段は、前記選択手段が選択したデータが誤りと判定された場合に、前記選択手段に該誤りと判定されたデータを取り込んだストローブ信号とは別のストローブ信号で取り込んだデータ選択させることを特徴とする。
また、請求項の発明は、請求項の発明において、前記判定手段は、前記メモリ装置の初期化処理時に前記判定を行うことを特徴とする。
また、請求項の発明は、請求項の発明において、前記ストローブ信号は、前記メモリ装置に接続された複数の信号線のそれぞれから出力され、前記データ取得手段は、前記信号線のうち対称に配置された少なくとも2つの信号線のそれぞれから出力されるストローブ信号に基づいて前記データを取り込むことを特徴とする。
本発明によれば、メモリ装置が出力するデータを、該メモリ装置が出力する複数のストローブ信号のうち、少なくとも2つのストローブ信号のそれぞれに基づいて取り込み、該取り込んだデータのいずれかを選択して出力するように構成したので、特殊な回路を用いることなく、電源・温度の変化や、プリント基板上の配線層や、層間接続、素材ばらつきがあっても、メモリの読み出し動作を安定的にすることができる。
以下、本発明に係るメモリ制御方法および装置の一実施の形態について、添付図面を参照して詳細に説明する。
図1は、本発明を適用したメモリ制御装置の概略構成を示すブロック図である。同図に示すように、メモリ制御装置1は、データリード制御部10と、選択部40、判定部50、システムバスインタフェイス60、DDRインタフェイス70、データライト制御部80を具備して構成される。
システムバスインタフェイス60は、システムバス4との接続を制御するもので、双方向データ制御と入出力、制御情報の取得を行う。また、システムバス4を介して、プロセッサ3等と接続されている。
DDRインタフェイス70は、DDR−SDRAM2との接続を制御するもので、DDR−SDRAM2との制御信号やり取りや双方向データ制御と入出力を行う。
データライト制御部80は、システムバスインタフェイス60を介してプロセッサ3から指示されたDDR−SDRAM2へのデータの書き込み要求に基づいて、DDR−SDRAM2への書き込み制御を行う。
データリード制御部10は、システムバスインタフェイス60を介してプロセッサ3から指示されたDDR−SDRAM2からのデータの読み出し要求に基づいて、DDR−SDRAM2からの読み出し制御を行う。
選択部40は、DDRインタフェイス70がDDR−SDRAM2から取り込んだデータの接続組替えを行い、判定部50は、データリード制御部10に取り込んだデータの状況を確認して、選択部40の接続組替え情報を決定する。
続いて、プロセッサ3がDDR−SDRAM2からデータを読み出す際のメモリ制御装置1の動作について説明する。図2は、メモリ制御装置1の詳細な構成を示した図であり、図3は、プロセッサ3がDDR−SDRAM2からデータを読み出す際のメモリ制御装置1内の信号のタイミングを示した図である。なお、図3においては、メモリ制御装置1のうち、8ビットのデータDQ[7:0]とDQ[15:8]を処理する部分のみを示しており、他の部分は省略している。
図2に示すように、メモリ制御装置1は、データリード制御部10−0と、データリード制御部10−1、ラッチ11−0L、ラッチ11−0H、ラッチ11−1L、ラッチ11−1H、ラッチ20−0L、ラッチ20−0H、ラッチ20−1L、ラッチ20−1H、ラッチ21−0L、ラッチ21−0H、ラッチ21−1L、ラッチ21−1H、DLL30−0、DLL30−1、選択部40−0、選択部40−1、判定部50−0、判定部50−1を具備して構成される。
この構成においては、DLL30−0は、DDR−SDRAM2から入力されるストローブ信号DQS0の位相を90度遅らせた内部DQS0を生成し、DLL30−1は、DDR−SDRAM2から入力されるストローブ信号DQS1の位相を90度遅らせた内部DQS1を生成する。
ラッチ20−0Lは、DLL30−0が生成した内部DQS0の立ち上がりに同期してDDR−SDRAM2から入力されるデータDQ[7:0]をラッチしてdata_in[7:0]L0を取得し、ラッチ20−0Hは、DLL30−0が生成した内部DQS0の立ち下がりに同期してDDR−SDRAM2から入力されるデータDQ[7:0]をラッチしてdata_in[7:0]H0を取得する。
ラッチ21−0Lは、DLL30−1が生成した内部DQS1の立ち上がりに同期してDDR−SDRAM2から入力されるデータDQ[7:0]をラッチしてdata_in[7:0]L1を取得し、ラッチ21−0Hは、DLL30−1が生成した内部DQS1の立ち下がりに同期してDDR−SDRAM2から入力されるデータDQ[7:0]をラッチしてdata_in[7:0]H1を取得する。
ラッチ20−1Lは、DLL30−0が生成した内部DQS0の立ち上がりに同期してDDR−SDRAM2から入力されるデータDQ[15:8]をラッチしてdata_in[15:8]L0を取得し、ラッチ20−1Hは、DLL30−0が生成した内部DQS0の立ち下がりに同期してDDR−SDRAM2から入力されるデータDQ[15:8]をラッチしてdata_in[15:8]H0を取得する。
ラッチ21−1Lは、DLL30−1が生成した内部DQS1の立ち上がりに同期してDDR−SDRAM2から入力されるデータDQ[15:8]をラッチしてdata_in[15:8]L1を取得し、ラッチ21−1Hは、DLL30−1が生成した内部DQS1の立ち下がりに同期してDDR−SDRAM2から入力されるデータDQ[15:8]をラッチしてdata_in[15:8]H1を取得する。
選択部40−0は、判定部50−0から入力される接続組替え情報に基づいて、data_in[7:0]L0とdata_in[7:0]L1のいずれかのデータを各ビット毎に選択してdata_in[7:0]Lを出力するとともに、data_in[7:0]H0とdata_in[7:0]H1のいずれかのデータを各ビット毎に選択してdata_in[7:0]Hを出力する。
同様に、選択部40−1は、判定部50−1から入力される接続組替え情報に基づいて、data_in[15:8]L0とdata_in[15:8]L1のいずれかのデータを各ビット毎に選択してdata_in[15:8]Lを出力するとともに、data_in[15:8]H0とdata_in[15:8]H1のいずれかのデータを各ビット毎に選択してdata_in[15:8]Hを出力する。
ラッチ11−0Lとラッチ11−0Hは、データリード制御部10−0に配され、システムクロックに同期して、それぞれ、data_in[7:0]Lとdata_in[7:0]Hを取得し、データとしてint_DQ[7:0]L、int_DQ[7:0]Hを出力する。
ラッチ11−1Lとラッチ11−1Hは、データリード制御部10−1に配され、システムクロックに同期して、それぞれ、data_in[15:8]Lとdata_in[15:8]Hを取得し、データとしてint_DQ[15:8]L、int_DQ[15:8]Hを出力する。
判定部50−0は、ラッチ11−0Lとラッチ11−0Hが出力するint_DQ[7:0]L、int_DQ[7:0]Hを取得し、これらに誤りのあるデータを含んでいた場合には、該当するビットのデータを別のデータから選択するような接続組替え情報を生成し、生成した接続組替え情報を選択部40−0へ出力する。
判定部50−1は、ラッチ11−1Lとラッチ11−1Hが出力するint_DQ[15:8]L、int_DQ[15:8]Hを取得し、これらに誤りのあるデータを含んでいた場合には、該当するビットのデータを別のデータから選択するような接続組替え情報を生成し、生成した接続組替え情報を選択部40−1へ出力する。
例えば、図3に示した状態では、data_in[7:0]L0は、DQ[3]の誤りを含むが、data_in[7:0]L1のDQ[3]は正しい値である。したがって、この状態では、判定部50−0は、DQ[0]からDQ[2]とDQ[4]からDQ[7]をdata_in[7:0]L0から選択し、DQ[3]をdata_in[7:0]L1から選択するような接続組替え情報を生成し、生成した接続組替え情報を選択部40−0へ出力する。また、判定部50−0は、DQ[0]からDQ[2]とDQ[4]からDQ[7]をdata_in[7:0]H0から選択し、DQ[3]をdata_in[7:0]H1から選択するような接続組替え情報を生成する。
同様に、data_in[15:8]L1は、DQ[15]の誤りを含むが、data_in[15:8]L0のDQ[15]は正しい値である。したがって、この状態では、判定部50−1は、DQ[8]からDQ[14]をdata_in[15:8]L1から選択し、DQ[15]をdata_in[15:8]L0から選択するような接続組替え情報を生成し、生成した接続組替え情報を選択部40−1へ出力する。また、判定部50−1は、DQ[8]からDQ[14]をdata_in[15:8]H1から選択し、DQ[15]をdata_in[15:8]H0から選択するような接続組替え情報を生成する。
ここで、メモリ制御装置1の動作の流れを説明する。図4は、メモリ制御装置1の動作の流れを示すフローチャートである。なお、ここでは、DQ[7:0]の8ビットのデータに対する処理の流れを説明するが、メモリ制御装置1は、DQ[15:8]等の他のデータに対しても同様の処理を同時に行っているものとする。
メモリ制御装置1は、動作を開始すると、まず、メモリ制御装置1自体の初期化とDDR−SDRAM2の初期化処理を行い(ステップ101)、データライト制御部80が、確認用のデータとして「FF(DQ[7:0]の全ビットが1のデータ)」と、「00(DQ[7:0]の全ビットが0のデータ)」を順次DDR−SDRAM2へ書き込む(ステップ102)。
続いて、データリード制御部10−0がDDR−SDRAM2から確認用のデータを読み出すが(ステップ103)、このとき、判定部50−0は、DQ[7:0]の全てのビットをdata_in[7:0]L0から選択するような接続組替え情報を生成し、選択部40−0が、接続組替え情報に基づいて、data_in[7:0]L0の全ビットをdata_in[7:0]Lとして選択する。ここで、読み出した確認用データに誤りが無ければ(ステップ104でYES)、メモリ制御装置1は、初期化が正常に終了した旨をプロセッサ3に通知して(ステップ105)、初期化処理を終了する。そして、以降の処理では、data_in[7:0]L0の全ビットをdata_in[7:0]Lとして選択することとなる。
一方、読み出した確認用データに誤りがあった場合には(ステップ104でNO)、その誤りのあった回数が予め指定した回数未満、例えば、n回未満であれば(ステップ106でNO)、判定部50−0は、誤りのあるビットのデータをdata_in[7:0]L1から選択するような接続組替え情報、例えば、図3に示した状態では、DQ[3]をdata_in[7:0]L1から選択するような接続組替え情報を生成して選択部40−0に入力する(ステップ107)。
続いて、データライト制御部80が、確認用のデータとして「FF」と、「00」を順次DDR−SDRAM2へ書き込み(ステップ102)、データリード制御部10−0がDDR−SDRAM2から確認用のデータを読み出す(ステップ103)。このとき、選択部40−0は、ステップ106の処理で入力された接続組替え情報に基づいてデータを選択するため、例えば、DQ[3]をdata_in[7:0]L1から選択し、他のビットのデータをdata_in[7:0]L1から選択する。
その結果、読み出した確認用データに誤りが無ければ(ステップ104でYES)、メモリ制御装置1は、初期化が正常に終了した旨をプロセッサ3に通知して(ステップ105)、初期化処理を終了する。そして、以降の処理では、DQ[3]をdata_in[7:0]L1から選択し、他のビットをdata_in[7:0]L0から選択したデータをdata_in[7:0]Lとして選択することとなる。
また、ステップ103で読み出した確認用データに誤りがあった場合には(ステップ104でNO)、同様の処理を繰り返すが、その誤りのあった回数が予め指定した回数であるn回に達した場合には(ステップ106でYES)、メモリ制御装置1は、その時点での環境では、DDR−SDRAM2に正常にアクセスすることができないため、プロセッサ3に異常を通知して(ステップ108)、処理を終了する。
ところで、上述の説明では、各データを2つのストローブ信号のそれぞれで取得し、そのいずれかを選択するものとして説明したが、各データを3つ以上のストローブ信号のそれぞれから取得するようにしてもよい。そして、データを取得する際に利用するストローブ信号は、どのような組み合わせであってもよく、例えば、DQS0とDQS1の組み合わせでもよく、DQS0とDQS4の組み合わせを利用するようにしてもよい。
また、利用するストローブ信号の組み合わせは、メモリ制御装置1とDDR−SDRAM2の間の配線が図5に示すような場合には、DQS0とDQS1、DQS2とDQS3、DQS4とDQS5、DQS6とDQS7といったような配線が物理的に近傍であるストローブ信号を組み合わせ、メモリ制御装置1とDDR−SDRAM2の間の配線が図6に示すような場合には、DQS0とDQS7、DQS1とDQS6、DQS2とDQS5、DQS3とDQS4といったような配線が物理的に対称であるストローブ信号を組み合わせることで、より安定的な動作を実現することが可能である。
本発明を適用したメモリ制御装置の概略構成を示すブロック図である。 メモリ制御装置1の詳細な構成を示した図である。 プロセッサ3がDDR−SDRAM2からデータを読み出す際のメモリ制御装置1内の信号のタイミングを示した図である。 メモリ制御装置1の動作の流れを示すフローチャートである。 物理的に近傍であるストローブ信号を組み合わせる場合の配線例を示した図である。 物理的に対称であるストローブ信号を組み合わせる場合の配線例を示した図である。 メモリ制御装置が適用されるシステムの構成例を示した図である。 図7に示した構成においてプロセッサ503がDDR−SDRAM502にデータを書き込む際の信号のタイミングを示した図である。 図7に示した構成においてプロセッサ503がDDR−SDRAM502からデータを読み出す際の信号のタイミングを示した図である。 メモリ制御装置501の構成を示した図である。 プロセッサ503がDDR−SDRAM502からデータを読み出す際のメモリ制御装置501内の信号のタイミングを示した図である。 発生したスキューが許容範囲内である場合に取得するデータを説明するための図である。 発生したスキューが許容範囲外であり、データを正しく取得できない場合を説明するための図である。 等長配線の1例を示した図である。
符号の説明
1 メモリ制御装置
2 DDR−SDRAM
3 プロセッサ
4 システムバス
10、10−0、10−1 データリード制御部
11−0L、11−0H、11−1L、11−1H ラッチ
20−0L、20−0H、20−1L、20−1H ラッチ
21−0L、21−0H、21−1L、21−1H ラッチ
30−0、30−1 DLL
40、40−0、40−1 選択部
50、50−0、50−1 判定部
60 システムバスインタフェイス
70 DDRインタフェイス
80 データライト制御部

Claims (8)

  1. 複数のストローブ信号を出力するとともに該ストローブ信号に同期してデータを出力するメモリ装置を制御するメモリ制御方法であって、
    メモリ装置が出力するデータを、該メモリ装置が出力する複数のストローブ信号のうち、少なくとも2つのストローブ信号のそれぞれに基づいて取り込み、該取り込んだデータの正誤を判定し、該判定により正と判定されたデータを選択して出力することを特徴とするメモリ制御方法。
  2. 前記選択は、前記ストローブ信号のうち特定のストローブ信号で取り込んだデータが誤りと判定された場合に、該特定のストローブ信号とは別のストローブ信号で取り込んだデータを出力することにより行われることを特徴とする請求項記載のメモリ制御方法。
  3. 前記判定は、前記メモリ装置の初期化処理時に行われることを特徴とする請求項記載のメモリ制御方法。
  4. 前記ストローブ信号は、前記メモリ装置に接続された複数の信号線のそれぞれから出力され、該信号線のうち対称に配置された少なくとも2つの信号線のそれぞれから出力されるストローブ信号に基づいて前記データを取り込むことを特徴とする請求項1記載のメモリ制御方法。
  5. 複数のストローブ信号を出力するとともに該ストローブ信号に同期してデータを出力するメモリ装置を制御するメモリ制御装置において、
    メモリ装置が出力するデータを、該メモリ装置が出力する複数のストローブ信号のうち、少なくとも2つのストローブ信号のそれぞれに基づいて取り込むデータ取得手段と、
    前記データ取得手段が取り込んだデータのいずれかを選択して出力する選択手段と
    前記選択手段が選択したデータの正誤を判定する判定手段と
    を具備し、
    前記選択手段は、前記判定手段の判定結果に基づいて選択するデータを変更する
    ことを特徴とするメモリ制御装置。
  6. 前記判定手段は、前記選択手段が選択したデータが誤りと判定された場合に、前記選択手段に該誤りと判定されたデータを取り込んだストローブ信号とは別のストローブ信号で取り込んだデータ選択させることを特徴とする請求項記載のメモリ制御装置。
  7. 前記判定手段は、前記メモリ装置の初期化処理時に前記判定を行うことを特徴とする請求項記載のメモリ制御装置。
  8. 前記ストローブ信号は、前記メモリ装置に接続された複数の信号線のそれぞれから出力され、
    前記データ取得手段は、前記信号線のうち対称に配置された少なくとも2つの信号線のそれぞれから出力されるストローブ信号に基づいて前記データを取り込む
    ことを特徴とする請求項記載のメモリ制御装置。
JP2004245216A 2004-08-25 2004-08-25 メモリ制御方法および装置 Expired - Fee Related JP4661134B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004245216A JP4661134B2 (ja) 2004-08-25 2004-08-25 メモリ制御方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004245216A JP4661134B2 (ja) 2004-08-25 2004-08-25 メモリ制御方法および装置

Publications (2)

Publication Number Publication Date
JP2006065470A JP2006065470A (ja) 2006-03-09
JP4661134B2 true JP4661134B2 (ja) 2011-03-30

Family

ID=36111934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004245216A Expired - Fee Related JP4661134B2 (ja) 2004-08-25 2004-08-25 メモリ制御方法および装置

Country Status (1)

Country Link
JP (1) JP4661134B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2008023793A1 (ja) * 2006-08-24 2010-01-14 パナソニック株式会社 半導体集積回路及びメモリシステム及び電子撮像装置
JP4959264B2 (ja) 2006-09-15 2012-06-20 株式会社リコー メモリ制御装置
JP2009025171A (ja) * 2007-07-20 2009-02-05 Jeol Ltd Nmr用パルス発生装置
KR101965125B1 (ko) 2012-05-16 2019-08-28 삼성전자 주식회사 칩-투-칩 링크를 통해 공유 메모리로의 억세스를 지원하는 시스템 온칩, 상기 시스템온칩의 동작 방법, 및 상기 시스템온칩을 포함하는 전자 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195884A (ja) * 1999-11-05 2001-07-19 Mitsubishi Electric Corp 半導体装置
JP2003173290A (ja) * 2001-12-06 2003-06-20 Ricoh Co Ltd メモリ制御装置
JP2004185608A (ja) * 2002-11-21 2004-07-02 Matsushita Electric Ind Co Ltd データのラッチタイミング調整装置
US6760263B2 (en) * 2002-03-22 2004-07-06 Via Technologies, Inc. Method and device for controlling data latch time

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195884A (ja) * 1999-11-05 2001-07-19 Mitsubishi Electric Corp 半導体装置
JP2003173290A (ja) * 2001-12-06 2003-06-20 Ricoh Co Ltd メモリ制御装置
US6760263B2 (en) * 2002-03-22 2004-07-06 Via Technologies, Inc. Method and device for controlling data latch time
JP2004185608A (ja) * 2002-11-21 2004-07-02 Matsushita Electric Ind Co Ltd データのラッチタイミング調整装置

Also Published As

Publication number Publication date
JP2006065470A (ja) 2006-03-09

Similar Documents

Publication Publication Date Title
US10884923B2 (en) Memory module with local synchronization and method of operation
US9552853B2 (en) Methods for calibrating a read data path for a memory interface
US7975164B2 (en) DDR memory controller
US8422263B2 (en) Load reduced memory module and memory system including the same
JP4419049B2 (ja) メモリモジュール及びメモリシステム
US7079446B2 (en) DRAM interface circuits having enhanced skew, slew rate and impedance control
JP5649293B2 (ja) メモリモジュール
US20120306531A1 (en) Memory system, semiconductor memory device, and wiring substrate
US7965568B2 (en) Semiconductor integrated circuit device and method of testing same
US20100312956A1 (en) Load reduced memory module
JP2012008881A (ja) メモリシステム及びその制御方法
US20100312925A1 (en) Load reduced memory module
JP4661134B2 (ja) メモリ制御方法および装置
JP2003173290A (ja) メモリ制御装置
KR100551475B1 (ko) 비주기 클록옵션을 가지는 메모리 모듈과 모듈용 메모리칩 및 허브 칩
US20070159910A1 (en) Command generating circuit and semiconductor memory device having the same
US6504767B1 (en) Double data rate memory device having output data path with different number of latches
WO2020131528A1 (en) Signal skew in source-synchronous system
JP2007018161A (ja) メモリ制御装置
CN114518837B (zh) 运用于存储器系统的多循环写入均衡程序的处理方法
US10892005B1 (en) Distributed bias generation for an input buffer
US20240046975A1 (en) Memory module adjusting inter-rank clock timing, memory system and training method thereof
JP2010198715A (ja) 半導体記憶装置
KR20230155935A (ko) 반도체 메모리 장치 및 그 메모리 시스템
CN118689804A (zh) 基于标准延迟单元的ddr读数据眼图训练系统、方法及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101111

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: 20101207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101220

R150 Certificate of patent or registration of utility model

Ref document number: 4661134

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees