JP4946423B2 - メモリコントローラ、コンピュータ、データ読み出し方法 - Google Patents
メモリコントローラ、コンピュータ、データ読み出し方法 Download PDFInfo
- Publication number
- JP4946423B2 JP4946423B2 JP2006346709A JP2006346709A JP4946423B2 JP 4946423 B2 JP4946423 B2 JP 4946423B2 JP 2006346709 A JP2006346709 A JP 2006346709A JP 2006346709 A JP2006346709 A JP 2006346709A JP 4946423 B2 JP4946423 B2 JP 4946423B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- read
- range
- memory module
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Description
メモリミラーリングでは、2つのメモリに同一のデータを書き込むことにより冗長性を持たせ、一方のメモリに訂正不能エラーが発生しデータが破損した場合でも、もう一方のメモリから読み込んだデータを使用することにより、データの消失を防ぐことができるようにしている。
メモリコントローラ104は、CPUコントローラ102と専用インタフェース111で、DIMM106とメモリ制御バス107a、107b及びメモリデータバス108a、108bで接続されており、CPUコントローラ102からのメモリアクセス要求に応じてDIMM106の読み書きを行う。
メモリコントローラ104は、時刻T10とT11でメモリ制御バス107aとメモリ制御バス107bに対して同一のアクティブコマンド、及び、リードコマンドを出力する。
アクティブコマンド出力後、時刻T12になるとメモリデータバス108aとメモリデータバス108bにDIMM106aとDIMM106bからデータが出力される。
このように、データ読み出しに要する時間は、訂正不能エラーの有無にかかわらず、メモリミラーリングを使用しない場合と同一である。
そのため、非常にコストがかかってしまうにもかかわらず、メモリに記憶されたデータに訂正不能エラーが発生した場合以外は利点がなく、特別に高い可用性が求められる一部のシステム以外では採用しにくいという問題があった。
このようにすれば、二つのメモリモジュールから同じ順番でデータを読み出した場合に比べて2分の1の時間で、上位装置から指定された範囲のデータがメモリコントローラに揃う。
このようにすれば、二つのメモリモジュールから同じ順番でデータを読み出した場合に比べて2分の1の時間で、上位装置から指定された範囲のデータがメモリコントローラに揃う。
メモリコントローラ4は、ミラーリングされた一対のメモリモジュール(例えばDIMM6aとDIMM6b)からデータを読み出す際に、一方のメモリモジュールからのデータの読み出し順と他方のメモリモジュールからのデータ読み出し順が異なるように読み出しコマンドを発行する。
図2は、メモリコントローラ4がDIMM6aとDIMM6bからバースト長を8としてデータをバーストリードする場合のタイミングチャートである。
時刻T0において、メモリコントローラ4は、メモリ制御バス7aとメモリ制御バス7bにアクティブコマンドを出力する。但し、チップセレクト信号は、DIMM6aとDIMM6bのみアサートし、DIMM6cと6dはネゲートにしておく。これにより、DIMM6aとDIMM6bのみがアクティブ状態に状態遷移する。
一方のメモリデータバスから取り込んだデータに訂正不能エラーがあった場合は、時刻T4までにもう一方のメモリデータバス8からデータを取り込み、時刻T4でCPUコントローラ2に対して読み込みデータを出力する。
図3は、メモリコントローラ4がDIMM6aとDIMM6bからバースト長を8としてデータをアドレスXのデータとアドレスYの2カ所からバーストリードする場合のタイミングチャートである。
時刻T5、及び、T6の動作は図2に示した先の実施例と一緒である。但し、リードコマンドで指定するアドレスは、メモリ制御バス7aはアドレスX、メモリ制御バス7bはアドレスYとする。なお、本実施例の場合は、データの出力順序は両方のメモリ制御バス7で同一にしても構わない。
情報処理装置20によれば、メモリコントローラ4は、ミラーリングされた二つのDIMMにデータの読み出し順が異なるようにリードコマンドを発行する。そのため、DIMM6からデータを読み出すのにかかる時間を短縮することができる。
また、メモリコントローラ4に読み出しデータが揃った時点で一方のDIMMから読み出したデータに訂正不能なエラーがあった場合には、他方のDIMMからデータを読み出すようにしているからメモリミラーリングによるデータの冗長性を全く損なうことがない。
2 CPUコントローラ
3 I/Oコントローラ
4 メモリコントローラ
5a、5b、5c PCIデバイス
6a、6b、6c、6d DIMM
7a、7b メモリデータバス
8a、8b メモリ制御バス
9a CPU制御バス
9b CPUデータバス
10、11 専用バス
Claims (9)
- 書き込みデータにエラーコレクティングコードを付加する機能と、同一のデータを前記エラーコレクティングコードと共に一対のメモリモジュールに対して並行して書き込み及び読み込みする機能とを備えたメモリコントローラにおいて、
上位装置から指定されたアドレス範囲のデータを前記一対のメモリモジュールから読み出す際に一方のメモリモジュールからのデータの読み出し順と他方のメモリモジュールからのデータ読み出し順が異なるように読み出しコマンドを発行する機能と、
前記読み出しコマンドに応じて前記一対のメモリモジュールから前記アドレス範囲のデータがすべて出力された時点で前記エラーコレクティングコードを用いてエラーチェックを行い、訂正不能なエラーがない場合には、前記アドレス範囲のデータを前記上位装置に出力する機能と、
を備えたことを特徴としたメモリコントローラ。 - 前記アドレス範囲が、連続したひとつの範囲である場合に、
ある時点で一方のメモリモジュールから読み出すデータのアドレスとその時点で他方のメモリモジュールから読み出すデータのアドレスが、前記メモリアドレス範囲の長さの2分の1だけずれるように読み出しコマンドを発行することを特徴とした請求項1に記載のメモリコントローラ。 - 一方のメモリモジュールには前記範囲の先頭から末尾に向かって順に、他方のメモリモジュールには前記範囲の中央から末尾に向かって順に読み出し次いで先頭から中央の直前に向かって順に読み出すように読み出しコマンドを発行することを特徴とした請求項2に記載のメモリコントローラ。
- 前記アドレス範囲が、不連続な二つの範囲である場合に、
一方のメモリモジュールには前記二つの範囲のうち一方の範囲の先頭から末尾に向かって順に、次いで、他方の範囲の先頭から末尾に向かって順に読み出し、他方のメモリモジュールには前記二つの範囲のうち他方の範囲の先頭から末尾に向かって順に、次いで、一方の範囲の先頭から末尾に向かって順に読み出すように読み出しコマンドを発行することを特徴とした請求項1に記載のメモリコントローラ。 - 請求項1ないし請求項4のいずれかひとつに記載のメモリコントローラを備えたコンピュータ。
- エラーコレクティングコードと共に一対のメモリモジュールに書き込まれた同一のデータを並行して読み出すデータ読み出し方法において、
上位装置からアドレス範囲の指定を伴う読み出しの指示があったときに、一方のメモリモジュールからのデータの読み出し順と他方のメモリモジュールからのデータ読み出し順が異なるように読み出しコマンドを発行し、
前記読み出しコマンドに応じて前記一対のメモリモジュールから前記アドレス範囲のデータがすべて出力された時点で前記エラーコレクティングコードを用いてエラーチェックを行い、訂正不能なエラーがない場合には、前記アドレス範囲のデータを前記上位装置に出力することを特徴としたデータ読み出し方法。 - 前記アドレス範囲が、連続したひとつの範囲である場合に、
ある時点で一方のメモリモジュールから読み出すデータのアドレスとその時点で他方のメモリモジュールから読み出すデータのアドレスが、前記メモリアドレス範囲の長さの2分の1だけずれるように読み出しコマンドを発行することを特徴とした請求項6に記載のデータ読み出し方法。 - 一方のメモリモジュールには前記範囲の先頭から末尾に向かって順に、他方のメモリモジュールには前記範囲の中央から末尾に向かって順に読み出し次いで先頭から中央の直前に向かって順に読み出すように読み出しコマンドを発行することを特徴とした請求項7に記載のデータ読み出し方法。
- 前記アドレス範囲が、不連続な二つの範囲である場合に、
一方のメモリモジュールには前記二つの範囲のうち一方の範囲の先頭から末尾に向かって順に、次いで、他方の範囲の先頭から末尾に向かって順に読み出し、他方のメモリモジュールには前記二つの範囲のうち他方の範囲の先頭から末尾に向かって順に、次いで、一方の範囲の先頭から末尾に向かって順に読み出すように読み出しコマンドを発行することを特徴とした請求項6に記載のデータ読み出し方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006346709A JP4946423B2 (ja) | 2006-12-22 | 2006-12-22 | メモリコントローラ、コンピュータ、データ読み出し方法 |
US11/960,231 US20080155136A1 (en) | 2006-12-22 | 2007-12-19 | Memory controller, computer, and data read method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006346709A JP4946423B2 (ja) | 2006-12-22 | 2006-12-22 | メモリコントローラ、コンピュータ、データ読み出し方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008158804A JP2008158804A (ja) | 2008-07-10 |
JP4946423B2 true JP4946423B2 (ja) | 2012-06-06 |
Family
ID=39544549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006346709A Expired - Fee Related JP4946423B2 (ja) | 2006-12-22 | 2006-12-22 | メモリコントローラ、コンピュータ、データ読み出し方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080155136A1 (ja) |
JP (1) | JP4946423B2 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090897B2 (en) * | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8386722B1 (en) | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US8055833B2 (en) | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US8244971B2 (en) | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US7386656B2 (en) | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US7609567B2 (en) | 2005-06-24 | 2009-10-27 | Metaram, Inc. | System and method for simulating an aspect of a memory circuit |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US8169233B2 (en) | 2009-06-09 | 2012-05-01 | Google Inc. | Programming of DIMM termination resistance values |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
GB2444663B (en) * | 2005-09-02 | 2011-12-07 | Metaram Inc | Methods and apparatus of stacking drams |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
WO2010035316A1 (ja) * | 2008-09-24 | 2010-04-01 | 富士通株式会社 | メモリ制御装置およびメモリ制御方法 |
JP2011013909A (ja) * | 2009-07-01 | 2011-01-20 | Canon Inc | メモリ制御回路 |
JP5213061B2 (ja) * | 2009-08-28 | 2013-06-19 | エヌイーシーコンピュータテクノ株式会社 | ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム |
JPWO2012046343A1 (ja) * | 2010-10-08 | 2014-02-24 | 富士通株式会社 | メモリモジュール冗長化方法、記憶処理装置、及びデータ処理装置 |
US9442816B2 (en) * | 2011-11-30 | 2016-09-13 | International Business Machines Corporation | Implementing memory performance management and enhanced memory reliability accounting for thermal conditions |
JP2019020896A (ja) | 2017-07-13 | 2019-02-07 | 株式会社デンソー | プロセッサ及びメモリモジュール |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57137948A (en) * | 1981-02-19 | 1982-08-25 | Fujitsu Ltd | Automatic error correction system |
JPH0338752A (ja) * | 1989-07-05 | 1991-02-19 | Koufu Nippon Denki Kk | 記憶装置 |
JPH04115340A (ja) * | 1990-09-05 | 1992-04-16 | Koufu Nippon Denki Kk | 二重化記憶回路 |
JPH0594380A (ja) * | 1991-10-01 | 1993-04-16 | Nec Corp | 二重化メモリ装置 |
JPH07192458A (ja) * | 1993-12-27 | 1995-07-28 | Toshiba Corp | 半導体記憶装置 |
JP3170145B2 (ja) * | 1994-06-27 | 2001-05-28 | 株式会社日立製作所 | メモリ制御システム |
US6766429B1 (en) * | 2000-08-31 | 2004-07-20 | International Business Machines Corporation | Low cost and high RAS mirrored memory |
JP2004139503A (ja) * | 2002-10-21 | 2004-05-13 | Matsushita Electric Ind Co Ltd | 記憶装置及びその制御方法 |
JP4534488B2 (ja) * | 2004-01-05 | 2010-09-01 | ソニー株式会社 | データ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラム |
-
2006
- 2006-12-22 JP JP2006346709A patent/JP4946423B2/ja not_active Expired - Fee Related
-
2007
- 2007-12-19 US US11/960,231 patent/US20080155136A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20080155136A1 (en) | 2008-06-26 |
JP2008158804A (ja) | 2008-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4946423B2 (ja) | メモリコントローラ、コンピュータ、データ読み出し方法 | |
US8060692B2 (en) | Memory controller using time-staggered lockstep sub-channels with buffered memory | |
JP6986369B2 (ja) | メモリモジュール、これを含むシステム及びその動作方法 | |
US7574555B2 (en) | Memory system having daisy chained memory controllers | |
US7779215B2 (en) | Method and related apparatus for accessing memory | |
US8281101B2 (en) | Dynamic random access memory with shadow writes | |
JP5303477B2 (ja) | 非eccコンポーネントにおけるeccの実装 | |
US5721860A (en) | Memory controller for independently supporting synchronous and asynchronous DRAM memories | |
JP4843821B2 (ja) | 複数内部データバス及びメモリバンクインターリービングを有するメモリデバイス及び方法 | |
US6895474B2 (en) | Synchronous DRAM with selectable internal prefetch size | |
KR102194003B1 (ko) | 메모리 모듈 및 이를 포함하는 메모리 시스템 | |
JP4199658B2 (ja) | 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス | |
JPWO2007116487A1 (ja) | メモリ装置、そのエラー訂正の支援方法、その支援プログラム、メモリ・カード、回路基板及び電子機器 | |
US10725698B2 (en) | Memory controller and control method thereof | |
KR102222968B1 (ko) | 어드레스 정렬기 및 이를 포함하는 메모리 장치 | |
JP2016218721A (ja) | メモリ制御回路およびメモリ制御方法 | |
US9891981B2 (en) | Information processing apparatus and switch failure detection method | |
JP2018511860A (ja) | 統合プロセッサを備えたdram回路 | |
US6549991B1 (en) | Pipelined SDRAM memory controller to optimize bus utilization | |
KR20140088660A (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US6918016B1 (en) | Method and apparatus for preventing data corruption during a memory access command postamble | |
US20130086449A1 (en) | Sharing a Check Bit Memory Device Between Groups of Memory Devices | |
KR20170059239A (ko) | 이종 메모리들을 포함하는 메모리 장치 및 메모리 시스템 | |
EP1470553B1 (en) | Apparatus and method for encoding auto-precharge | |
JP2012226491A (ja) | メモリ制御装置、集積回路、情報処理装置およびメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091027 |
|
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: 20120207 |
|
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: 20120220 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150316 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4946423 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |