JP2010102640A - メモリコントローラ、コンピュータ、およびメモリミラーリング方法 - Google Patents

メモリコントローラ、コンピュータ、およびメモリミラーリング方法 Download PDF

Info

Publication number
JP2010102640A
JP2010102640A JP2008275703A JP2008275703A JP2010102640A JP 2010102640 A JP2010102640 A JP 2010102640A JP 2008275703 A JP2008275703 A JP 2008275703A JP 2008275703 A JP2008275703 A JP 2008275703A JP 2010102640 A JP2010102640 A JP 2010102640A
Authority
JP
Japan
Prior art keywords
memory
rank
data
ranks
error
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.)
Pending
Application number
JP2008275703A
Other languages
English (en)
Inventor
Norihiko Inoue
憲彦 井上
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008275703A priority Critical patent/JP2010102640A/ja
Publication of JP2010102640A publication Critical patent/JP2010102640A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】単一の主記憶装置で安価にメモリミラーリングを可能とするメモリコントローラなどを提供する。
【解決手段】
本発明に係るメモリコントローラ20は、各々に独立してデータを読み書き可能な複数のランクを有するメモリモジュール40〜41を実装可能であって、外部からの動作命令をメモリモジュールへのメモリアクセス命令に変換して発行するメモリアクセス命令生成部21と、メモリモジュールの複数のランクを通常系および退避系に分けて制御し、ライト命令の場合には通常系および退避系のランクに同一データを書き込み、リード命令の場合には通常系のランクから記憶データを読み出すメモリチャネル制御部22と、メモリモジュールから読み出された記憶データのエラーを検出するエラー検出・訂正回路23とを有し、訂正不可能エラーを検出した場合に通常系のランクを無効とし、退避系のランクからデータを読み出させてエラーの検出を再試行する。
【選択図】図1

Description

本発明は、コンピュータの主記憶装置に関し、特に記憶された内容を二重化して記憶するメモリミラーリングに関する。
コンピュータ装置で使われる主記憶装置(RAM: Random Access Memory)は、揮発性のものがほとんどである。そこで記憶された内容がエラーを起こすと、もうその内容を復元することは不可能である。ECC(Error Correcting Code)などのように、記憶された内容がエラーを起こした場合に検出および訂正する仕組みを持つものも多く使われているが、それでも検出や訂正が不可能なエラーが発生する場合もある。
そこで、主記憶装置を二重化してその各々に同内容を記憶し、一方の内容でエラーを起こしても、もう一方の内容で処理を続行できるようにすることも当然考えられている。これを、ここではメモリミラーリングという。主記憶装置のメモリミラーリングは、複数のメモリモジュールと、複数のメモリチャネルを制御可能なメモリコントローラとがあれば容易に実現できる。
メモリミラーリングについて、次のような技術文献がある。特許文献1には、第一メモリ装置と第二メモリ装置の複数メモリモジュールからなるメモリミラーリング制御の主記憶装置が記載されている。特許文献2には、二面構成としたメモリの各々に同一アドレスを割り当ててその双方に同内容を記憶して疑似二重化を実現した主記憶装置が記載されている。特許文献3には、メモリセルを2重化しさらに誤り検査手段を追加したメモリモジュールが記載されている。さらに特許文献4には、プライマリーデータと冗長データを同じメモリアセンブリの別々のチャネルに記憶するという主記憶装置が記載されている。
特開2008−134809号公報 特開平02−248755号公報 特開平09−288619号公報 特表2006−505864号公報
しかしながら、特許文献1,3,4にも記載されたこのメモリミラーリングについては、以下で示すような各々の問題点がある。前述のように、主記憶装置のメモリミラーリングには、複数のメモリモジュールと、複数のメモリチャネルを別々に制御可能なメモリコントローラとが必要である。異なるメモリチャネル配下の異なるメモリモジュールを同期制御しライト動作では同一データを書き込み、リード動作では同一アドレスを読み出し制御することによってメモリミラーリングを実現するので、最低限2個以上のメモリモジュールと、それらのメモリモジュールを別々のメモリチャネルとして制御可能なメモリコントローラとが必須となる。
複数メモリチャネル配下の複数メモリモジュール間でメモリミラーリングを行うと、メモリミラーリング実現のため最低限2つのメモリチャネルを制御系と待機系のペアとして同一制御するため、非メモリミラーリング時と比べてメモリ容量と同様にメモリチャネル数が半分になる。このため、インターリーブ数が半減し、メモリインターリーブによる高速化の効果も半減するので、非メモリミラーリング時と比べてメモリチャネルのスループットが低下することになる。
さらに、単純にメモリモジュールにかかるコストが倍増するのに加えて、通常系と待機系の各々に専用の制御回路およびエラー検出回路なども必要になるので、高コストになるという問題もある。
特許文献2に記載されたように、単一の主記憶装置の領域を2つに分け、擬似的にメモリミラーリングを行おうとする技術もある。しかしながらこの技術は、読み出し専用のデータ(プログラム)をあらかじめ二重に登録しておき、障害が発生した時に待機系に切り替えるというものである。
これをRAM、特に現在のパーソナルコンピュータにおいて主流となっているJEDEC(Joint Electron Device Engineering Council)によって定められた規格に準拠したSDRAM(Synchronous Dynamic Random Access Memory)に適用することを考えた場合、単一のSDRAMの領域を2つに分けただけでは、そのSDRAMが故障した場合には全ての領域が一度に故障するので、単一の主記憶装置の領域を2つに分けてメモリミラーリングという動作自体が不可能である。従って、特許文献2、およびこれに残る特許文献1、3、4を組み合わせた技術では、前述のような問題を解決できない。
本発明の目的は、単一の主記憶装置で安価にメモリミラーリングを可能とするメモリコントローラ、コンピュータ、およびメモリミラーリング方法を提供することにある。
上記目的を達成するため、本発明に係るメモリコントローラは、各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールを実装して使用可能なメモリコントローラであって、外部からの動作命令をメモリモジュールへのメモリアクセス命令に変換して発行するメモリアクセス命令生成部と、メモリモジュールの複数のランクを通常系および退避系に分けて制御対象とし、メモリアクセス命令がライト命令である場合には通常系および退避系のランクに同一データを書き込み、メモリアクセス命令がリード命令である場合には通常系のランクから記憶データを読み出すメモリチャネル制御部と、メモリモジュールから読み出された記憶データのエラーを検出するエラー検出・訂正回路とを有し、エラー検出・訂正回路が記憶データに訂正不可能エラーを検出した場合、エラー検出・訂正回路が通常系のランクを無効とし、メモリチャネル制御部に退避系のランクからデータを読み出させてエラーの検出を再試行する再試行処理を行うことを特徴とする。
上記目的を達成するため、本発明に係るコンピュータは、各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールと、メモリモジュールを制御してデータを読み書きするメモリコントローラとを有し、メモリコントローラが請求項1ないし請求項6のうちいずれか1項に記載のメモリコントローラであることを特徴とする
上記目的を達成するため、本発明に係るメモリミラーリング方法は、各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールの複数のランクを通常系および退避系に分け、通常系および退避系のランクの各々にデータを二重化して書き込むメモリミラーリング方法であって、外部からの動作命令を受けたメモリアクセス命令生成部が全動作命令をメモリモジュールへのメモリアクセス命令に変換して発行し、メモリアクセス命令がライト命令である場合にはメモリチャネル制御部がライト命令に付随するライトデータを通常系および退避系のランクに書き込み、メモリアクセス命令がリード命令である場合にはメモリチャネル制御部が通常系のランクから記憶データを読み出し、エラー検出・訂正回路が通常系のランクから読み出された記憶データのエラーを検出し、記憶データに訂正不可能エラーを検出した場合、エラー検出・訂正回路がメモリモジュールの通常系のランクを無効として、メモリチャネル制御部に退避系のランクからデータを読み出させてエラーの検出を再試行する再試行処理を行うことを特徴とする。
本発明は、上述したように複数のランク(RANK)を通常系および退避系として制御し、各々に同一データを書き込み、通常系から読み出したエラーを検出した場合に退避系に切り替えるように構成したので、特別なハードウェアを必要とせずにメモリミラーリングの動作が行える。これによって、単一の主記憶装置で安価にメモリミラーリングを可能であるという、従来にない優れたメモリコントローラ、コンピュータ、およびメモリミラーリング方法を提供することができる。
(第1の実施形態)
以下、本発明の第1の実施形態の構成について添付図1に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本発明の第1の実施形態に係るメモリコントローラ20は、各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュール40〜41を実装して使用可能なメモリコントローラである。外部からの動作命令をメモリモジュール40〜41へのメモリアクセス命令に変換して発行するメモリアクセス命令生成部21と、メモリモジュール40〜41の複数のランクを通常系および退避系に分けて制御対象とし、メモリアクセス命令がライト命令である場合には通常系および退避系のランクに同一データを書き込み、メモリアクセス命令がリード命令である場合には通常系のランクから記憶データを読み出すメモリチャネル制御部22と、メモリモジュール40〜41から読み出された記憶データのエラーを検出するエラー検出・訂正回路23とを有し、エラー検出・訂正回路23が記憶データに訂正不可能エラーを検出した場合、エラー検出・訂正回路23が通常系のランクを無効とし、メモリチャネル制御部22に退避系のランクからデータを読み出させてエラーの検出を再試行する再試行処理を行う。
ここでメモリコントローラ20は、複数のランクの各々が有効であるか否かを表す有効フラグを記憶するメモリミラーリングフラグ記憶部24を有し、エラー検出・訂正回路23が記憶データに訂正不可能エラーを検出した場合、エラー検出・訂正回路がメモリミラーリングフラグ記憶部で訂正不可能エラーを検出したランクの有効フラグを無効とする。そしてメモリミラーリングフラグ記憶部24が、複数のランクの中に再試行処理に使用可能なランクが残っているか否かを示す代表フラグを記憶している。
メモリアクセス命令生成部21は、複数個のメモリモジュール40〜41に対して命令を振り分けるメモリインターリーブ制御を行う。そしてメモリモジュール40〜41は、国際組織であるJEDECによって定められた規格に準拠した(以後JEDEC準拠という)DDR SDRAM、DDR2 SDRAM、DDR3 SDRAMのうちのいずれか一つである。
このように構成することにより、メモリコントローラ20は、DDR SDRAMなどが標準的に備える構造を利用して、特別な構成を持つことなく安価にメモリミラーリングの動作を行うことが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の第1の実施形態に係るコンピュータ10の構成を示す説明図である。コンピュータ10には、各々にメモリモジュールを実装可能な2系統のメモリスロット30および31と、それらのメモリスロットに各々実装されたメモリモジュール40および41、そしてメモリモジュール40および41を制御するメモリコントローラ20、そしてメモリコントローラ20にメモリアクセス命令を発行するプロセッサ11を含む。コンピュータを構成するには、それら以外にも多くの部品および装置が使用されるが、それらについては公知である。
メモリコントローラ20は、外部からの動作命令300をメモリアクセス命令400に変換してメモリチャネル制御部22に発行するメモリアクセス命令生成部21と、メモリアクセス命令400に基づいてメモリスロット30および31の各々に命令を振り分けて発行する(詳細は後述)メモリチャネル制御部22と、メモリモジュール40および41から読み出されたデータ500を受け取ってエラーの有無を確認してリプライデータ600として外部の命令元に返却するエラー検出・訂正回路23と、初期化時に(後述の)ミラーリング構成を設定して記憶するメモリミラーリングフラグ記憶部24とを有する。
メモリチャネル制御部22とメモリスロット30および31に実装されたメモリモジュール40および41との間は、メモリチャネル100または200の各々で結ばれている。
メモリチャネル100は、メモリモジュール40にアクセスするためのアドレス信号100aとチップセレクト信号100c〜103c、およびデータ信号100bをメモリチャネル制御部22とメモリスロット30との間でやりとりする。メモリチャネル200も同様に、メモリモジュール41にアクセスするためのアドレス信号200aとチップセレクト信号200c〜203c、およびデータ信号200bをメモリチャネル制御部22とメモリスロット31との間でやりとりする。
また、メモリチャネル制御部22はメモリミラーリングフラグ記憶部24に記憶されている内容(詳細は後述)を動作信号700で参照して、メモリモジュール40および41にアクセスするためのチップセレクト信号100c〜103cおよび200c〜203cを制御する。
図2は、図1に示したメモリモジュール40または41の内部構成を示す説明図である。メモリモジュール40または41はいずれも、JEDEC準拠のDDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)、DDR2 SDRAM(Double-Data-Rate2 Synchronous Dynamic Random Access Memory)、DDR3 SDRAM(Double-Data-Rate3 Synchronous Dynamic Random Access Memory)のうちのいずれかに該当する。
図2(a)は汎用1ランク形式、図2(b)は汎用2ランク形式、図2(c)は汎用4ランク形式の構成を示している。なお、図2(a)に示した汎用1ランク形式のメモリモジュール40(41)は、本実施例では実装対象外であるが、ここでは図2(b)〜(c)に示した汎用2〜4ランク形式の構成をわかりやすくするために、参考として記載している。また、メモリモジュール40と41とで同一の動作をするものについて、以後「メモリモジュール40(41)」などのような形で表記する場合がある。
ここでいうランク(RANK)とは、DDR SDRAM、DDR2 SDRAM、およびDDR3 SDRAMで導入された概念であり、メモリモジュール(DIMM: Dual Inline Memory Module)の動作を構成する単位である。同一の設計のSDRAMで1ランク、2ランク、4ランクといった複数種類の容量が実現できるようになるので、メーカーにとっては開発のコストおよび期間を軽減することができ、ユーザにとっては安価に大容量のメモリ装置を入手することができるというメリットがある。同一のランクに属するSDRAMは、同一のチップセレクト信号によって動作を制御することができる。
図2(a)に示した汎用1ランク形式のメモリモジュール40(41)では、メモリモジュール40(41)上の全SDRAM61〜69がランク0に属する。SDRAM61〜68がデータを記憶し、SDRAM69はそれらのデータのECCを記憶する。アドレス信号100a(200a)はメモリモジュール上の全SDRAM61〜69に分配される。チップセレクト信号100c(200c)はランク0に属する全SDRAM61〜69に分配される。データ信号100b(200b)は全SDRAM61〜69に等分割される。
図2(b)に示した汎用2ランク形式のメモリモジュール40(41)では、メモリモジュール40(41)上のSDRAM61〜69がランク0に、SDRAM71〜79がランク1に属する。ランク0ではSDRAM61〜68がデータを記憶し、SDRAM69はそれらのデータのECCを記憶する。ランク1ではSDRAM71〜78がデータを記憶し、SDRAM79はそれらのデータのECCを記憶する。
アドレス信号100a(200a)は、メモリモジュール上の全SDRAM61〜69,71〜79に分配される。チップセレクト信号100c(200c)はランク0に属する全SDRAM61〜69に分配される。チップセレクト信号101c(201c)はランク1に属する全SDRAM71〜79に分配される。データ信号100b(200b)は全SDRAM61〜69,71〜79に等分割され、かつランク0とランク1とではデータ線の同一ビットが1:2接続される。
図2(c)に示した汎用4ランク形式のメモリモジュール40(41)では、メモリモジュール40(41)上のSDRAM61〜69がランク0に、SDRAM71〜79がランク1に、SDRAM81〜89がランク2に、SDRAM91〜99がランク3に、各々属する。ランク0ではSDRAM61〜68がデータを記憶し、SDRAM69はそれらのデータのECCを記憶する。ランク1ではSDRAM71〜78がデータを記憶し、SDRAM79はそれらのデータのECCを記憶する。ランク2ではSDRAM81〜88がデータを記憶し、SDRAM89はそれらのデータのECCを記憶する。ランク3ではSDRAM91〜98がデータを記憶し、SDRAM99はそれらのデータのECCを記憶する。
アドレス信号100a(200a)は、メモリモジュール上の全SDRAM61〜69,71〜79,81〜89,91〜99に分配される。チップセレクト信号100c(200c)はランク0に属する全SDRAM61〜69に分配される。チップセレクト信号101c(201c)はランク1に属する全SDRAM71〜79に分配される。チップセレクト信号102c(202c)はランク2に属する全SDRAM81〜89に分配される。チップセレクト信号103c(203c)はランク3に属する全SDRA91〜99に分配される。
データ信号100b(200b)は全SDRAM61〜69,71〜79,81〜89,91〜99に等分割され、かつランク0〜3でデータ線の同一ビットが1:4接続される。
図3〜4は、図1に示したメモリミラーリングフラグ記憶部24の設定例、およびそれによるメモリミラーリング制御の様子を示す説明図である。本実施例では、メモリスロット30および31に、図2(b)〜(c)に示した汎用2〜4ランク形式の構成のメモリモジュール40および41が実装されていることが必須条件となる。図2(a)に示した汎用1ランク形式では、本実施例としてこれから説明する動作は不可能である。
最初に、外部からの初期設定信号800によって、メモリミラーリングフラグ記憶部24にはミラーリング制御のための初期設定値が書き込まれる。
メモリスロット30、31(各々スロットA、スロットBという)が各々2つのグループ(グループ1、グループ2という)に分割されている。ここでいうグループとはミラーリングを実施する通常系ランクおよび退避系ランクをまとめた単位である。スロットAのグループ1には4つのフラグF110〜F113が存在する。スロットAのグループ2には4つのフラグF120〜F123が存在する。スロットBのグループ1にはF210〜F213が存在する。スロットBのグループ2にはF220〜F223が存在する。
またこれらのフラグは各々、有効フラグとランク識別子とで構成されている。たとえばフラグF110は、有効フラグF110aとランク識別子F110bとで構成されている。他のスロットおよびグループのフラグについても、有効フラグは末尾に「a」を付けた参照記号で呼び、ランク識別子は末尾に「b」を付けた参照記号で呼ぶことにする。
また各グループ内の4つのフラグ間は通常系ランクを決定するための優先順位が存在しており、スロットAのグループ1を例にするとF110>F111>F112>F113の優先順位で通常系ランクを決定する。他のスロットおよびグループにおいても同様である。
代表フラグF11、F12、F21、F22はグループ単位で存在し、前記各グループ内の全有効フラグを参照し有効または無効を自動設定される。代表フラグF11は、スロットAのグループ1の有効フラグF110a〜F113aによって決定される。代表フラグF12は、スロットAのグループ2の有効フラグF120a〜F123aによって決定される。代表フラグF21は、スロットBのグループ1の有効フラグF210a〜F213aによって決定される。代表フラグF22は、スロットBのグループ2の有効フラグF220a〜F223aによって決定される。
グループ内の全ての有効フラグの値が「無効」であれば、そのグループは非ミラーリング制御と判断され、代表フラグは「無効」となる。グループ内に1つでも「有効」である有効フラグがあれば、そのグループはミラーリング有効と判断され、代表フラグは「有効」となる。
図3(a)に示した設定例では、メモリスロット30および31(スロットAおよびスロットB)の各々に、図2(b)で示した汎用2ランク形式の構成のメモリモジュール40および41が実装されている。スロットAのグループ1の設定値はメモリミラーリングをランク0とランク1との間(2多重)で実施する事を示しており、前述した優先順位によりランク0が通常系、ランク1が退避系となる。
スロットAのグループ1のフラグF110a〜F113aのうち2つが「有効」になっているため、代表フラグF11も「有効」となる。スロットAのグループ2はF120a〜F123a全てが「無効」であるため代表フラグF12は「無効」となる。
ここで運用中にスロットAのグループ1の通常系ランク0の読み出しデータで訂正不可能エラーが検出された場合、エラー検出・訂正回路23がF110aを「無効」にするため2番目に優先順位の高いF111に属するランク1が退避系から通常系となる。フラグF110a〜F113aのうちの1が「有効」であるため、代表フラグF11は「有効」のままである。
さらにスロットAのグループ1の通常系ランク1の読み出しデータで訂正不可能エラーを検出した場合、エラー検出・訂正回路23がF111aを無効にする。これで代表フラグF11は自動的に無効になって非ミラーリング状態となり、スロットAのグループ1はリトライ不可となる。スロットBについても同様の制御を行う。
図3(b)に示した設定例では、メモリスロット30および31(スロットAおよびスロットB)の各々に、図2(c)で示した汎用4ランク形式の構成のメモリモジュール40および41が実装されている。スロットAのグループ1の設定値はメモリミラーリングをランク0とランク1との間(2多重)で実施する事を示しており、メモリスロットAのグループ2の設定値はメモリミラーリングをランク2とランク3(2多重)で実施する事を示している。
即ち、図3(b)の設定例では、スロットAにて2系等のミラーリンググループが存在することになる。グループ1および2の各々で、図3(a)で説明した動作と同一の動作を行うことができる。
図4(c)に示した設定例では、メモリスロット30および31(スロットAおよびスロットB)の各々に、図2(c)で示した汎用4ランク形式の構成のメモリモジュール40および41が実装されている。スロットAのグループ1の設定値はメモリミラーリングをランク0〜3の間(4多重)で実施する事を示しており、前述した優先順位によりランク0が通常系、ランク1〜3が退避系となる。
スロットAのグループ1のフラグF110a〜F113aのうち4つが「有効」になっているため、代表フラグF11も「有効」となる。スロットAのグループ2はF120a〜F123a全てが「無効」であるため代表フラグF12は「無効」となる。
ここで運用中にスロットAのグループ1の通常系ランク0の読み出しデータで訂正不可能エラーが検出された場合、エラー検出・訂正回路23がF110aを「無効」にするため2番目に優先順位の高いF111に属するランク1が退避系から通常系となる。フラグF110a〜F113aのうちの1が「有効」であるため、代表フラグF11は「有効」のままである。
以後、スロットAのグループ1の通常系ランク1の読み出しデータで訂正不可能エラーが検出された場合はランク2が退避系から通常系となり、さらにランク2の読み出しデータで訂正不可能エラーが検出された場合はランク3が退避系から通常系となり、ランク00〜3の全てで訂正不可能エラーが検出された場合、初めてエラー検出・訂正回路23がF111aを無効にする。これで代表フラグF11は自動的に無効になって非ミラーリング状態となり、スロットAのグループ1はリトライ不可となる。このようにスロットAのグループ1はミラーリング制御を4多重まで継続する。スロットBについても同様の制御を行う。
以後、図4(c)の設定例と同じく、メモリスロット30および31(スロットAおよびスロットB)の各々に、図2(c)で示した汎用4ランク形式の構成のメモリモジュール40および41が実装されている状態で、図1に示したコンピュータ10の動作をより詳細に説明する。図5は、この動作を示すフローチャートである。
まず外部からの初期設定信号800によって、図4(c)に示した設定値がメモリミラーリングフラグ記憶部24に書き込まれ、メモリの初期設定が行われる(ステップS901)。初期設定がなされたメモリコントローラ20に対し、プロセッサ(図示せず)によって発行された動作命令をメモリアクセス命令生成部21が受け取り、これをメモリアクセス命令400に変換し、メモリチャネル制御部22に対して発行する(ステップS902)。
メモリチャネル制御部22はメモリアクセス命令400に反応して、このメモリアクセス命令400がリード命令またはライト命令のいずれであるかを判別する(ステップS903)。メモリチャネルに含まれるアドレス情報からインターリーブ制御としてメモリチャネル100および200に命令を振り分ける(ステップS904)。
メモリチャネル制御部22はその後、動作信号700でメモリミラーリングフラグ記憶部24に記憶されている各フラグの内容を参照する。そしてメモリチャネル制御部22は、メモリミラーリングフラグ記憶部24のフラグF110a〜F113aが全て有効(4多重)になっていることからチップセレクト信号100c〜103cをすべて有効にしてメモリモジュール上のランク0〜ランク3に同一データを書き込む(ステップS905)。メモリチャネル200においても同様である。これでライト命令に対する処理は終了である。
またメモリチャネル100にリード命令が発行された場合、メモリチャネル制御部22はライト命令の場合と同様にインターリーブ制御としてメモリチャネル100および200に命令を振り分ける(ステップS904)。その後、メモリチャネル制御部22は動作信号700でメモリミラーリングフラグ記憶部24に記憶されている各フラグの内容を参照し、メモリミラーリング24のフラグF110a〜F113aが全て有効(4多重)になっていることから前述の優先順位からランク0が通常系と判断しチップセレクト信号100cのみを有効にしてメモリモジュール上のランク0からリードデータを読み出す(ステップS906)。
読み出したデータ500はメモリチャネル制御部22を介してエラー検出・訂正回路23でエラーチェックを実施した後(ステップS907)、エラーが検出されなければそのままリプライデータ600として命令発行元のプロセッサ11に対して出力される(ステップS908)。
ステップS907のエラーチェックで訂正可能エラーが検出された場合、エラー検出・訂正回路23でリプライデータ600の訂正を行った後(ステップS909)、訂正後のリプライデータ600がプロセッサ11に対して出力される(ステップS908)。
ステップS907のエラーチェックで訂正不可能エラーが検出された場合、エラー検出・訂正回路23は動作信号602を送ってメモリミラーリングフラグ記憶部24のエラー検出したランク0に該当するF110aを無効にし(ステップS910)、その後に代表フラグF11を参照してリトライ可能または不可能の判定をする(ステップS911)。
この時点では、フラグF110aを除くフラグF111a〜F113aが有効でありかつ代表フラグF11も有効であるため、エラー検出・訂正回路23はリトライ可能であると判断し(ステップS911:YES)、ステップS906に戻って動作信号601を介してメモリチャネル制御部22にリトライ制御として同一アドレスへのリード命令であるメモリアクセス命令400をメモリアクセス命令生成部21に発行させる(ステップS906:2回目)。
メモリチャネル制御部22はこのリトライのメモリアクセス命令400をメモリアクセス命令生成部21から受け取り、これに対応するリード命令をメモリチャネル100に対して発行する。メモリチャネル制御部22は、動作信号700で参照したメモリミラーリングフラグ記憶部24のフラグF110aを除くフラグF111a〜F113aが有効(3多重)になっていることから、前記優先順位からランク1が通常系と判断し、チップセレクト信号101cのみを有効にしてメモリモジュール上のランク1からリードデータを読み出す。
読み出したデータ500は同様にメモリチャネル制御部22を介してエラー検出・訂正回路23でエラーチェック実施後(ステップS907:2回目)、リプライデータ600としてプロセッサ11に出力される(ステップS908:2回目)。以後、ステップS910でリトライ可能と判定された場合、ステップS906〜911の処理は、3回まで繰り返すことができる。ステップS911の判断が4回目となれば(ステップS911:NO)、もはや利用可能な退避系ランクが残っていないことを意味するので、システムダウンに至ることになる(ステップS912)。
(第1の実施形態の全体的な動作)
次に、上記の第1の実施形態の全体的な動作について説明する。本実施形態に係る動作は、各各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールの複数のランクを通常系および退避系に分け、通常系および退避系のランクの各々にデータを二重化して書き込むメモリミラーリング方法であって、外部からの動作命令を受けたメモリアクセス命令生成部が全動作命令をメモリモジュールへのメモリアクセス命令に変換して発行し(図5:ステップS901)、メモリアクセス命令がライト命令である場合にはメモリチャネル制御部がライト命令に付随するライトデータを通常系および退避系のランクに書き込み(図5:ステップS905)、メモリアクセス命令がリード命令である場合にはメモリチャネル制御部が通常系のランクから記憶データを読み出し(図5:ステップS906)、エラー検出・訂正回路が通常系のランクから読み出された記憶データのエラーを検出し(図5:ステップS907)、記憶データに訂正不可能エラーを検出した場合、エラー検出・訂正回路がメモリモジュールの通常系のランクを無効とすると共に(図5:ステップS910)、メモリチャネル制御部に退避系のランクからデータを読み出させてエラーの検出を再試行する再試行処理を行う(図5:ステップS911)。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態によれば、2ランク以上の汎用メモリモジュールを用いて単一メモリチャネル上の単一メモリモジュール構成の中で、主記憶装置のメモリミラーリングが実現可能である。その理由は、2ランク以上の汎用メモリモジュール上の複数ランクを通常系と待機系に割り付け単一メモリモジュール上のランク間でメモリミラーリングを実現するためである。
また本実施形態によれば、複数メモリチャネルで構成されるコンピュータシステムにおいて、非メモリミラーリング時とメモリミラーリング時においてメモリチャネルのスループットが低下しない。その理由は、単一メモリモジュール内でメモリミラーリング可能なため、非メモリミラーリング時とメモリミラーリング時にてインターリーブ数が不変のためスループットは低下しない。
さらに本実施形態によれば、安価に単一メモリモジュール上でのメモリミラーリングが実現可能である。その理由は、JEDEC準拠のDDR SDRAMなどの汎用メモリモジュールの構造をそのまま利用しているため、ほぼ無改造でメモリミラーリングの動作が可能となる。
(第2の実施形態)
図6は、本発明の第2の実施形態に係るコンピュータ1010の構成を示す説明図である。コンピュータ1010は、前述の第1の実施形態に係るコンピュータ10と比べて、メモリスロット30と、そのメモリスロットに実装されたメモリモジュール40とが各々1系統しか存在しないという違いがあるのみである。従って、各部については第1の実施形態の場合と同一の参照番号を付す。
1系統しかメモリモジュールが存在しないので、図3〜5で説明した動作の「スロットA」に対する部分のみが実行される。この場合も、メモリミラーリングは図3の(b)および図4の(c)で説明した同一グループ内の異なるランク内で行われている。つまり、この構成でもメモリミラーリングは実現可能である。ただ、図5のステップS904として示したインターリーブ制御に係る命令の振り分けが省略されるだけで、これ以外は動作および効果は前述の第1の実施形態と全て同一である。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
JEDEC準拠のSDRAM、中でもDDR SDRAM、DDR2 SDRAM、およびDDR3 SDRAMのうちのいずれかを利用するコンピュータ装置に適用できる。
本発明の第1の実施形態に係るコンピュータの構成を示す説明図である。 図1に示したメモリモジュールの内部構成を示す説明図である。図2(a)は汎用1ランク形式、図2(b)は汎用2ランク形式、図2(c)は汎用4ランク形式の構成を示している。 図1に示したメモリミラーリングフラグ記憶部の設定例、およびそれによるメモリミラーリング制御の様子を示す説明図である。図3(a)は、メモリスロット(スロットAおよびスロットB)の各々に、図2(b)で示した汎用2ランク形式の構成のメモリモジュールが実装されている設定例を示す。図3(b)は、メモリスロット(スロットAおよびスロットB)の各々に、図2(c)で示した汎用4ランク形式の構成のメモリモジュールが実装されている設定例を示す。 図3の続きである。図4(c)は、メモリスロット(スロットAおよびスロットB)の各々に、図2(c)で示した汎用4ランク形式の構成のメモリモジュールが実装されている設定例を示す。 図4(c)の設定例として示した状態におけるコンピュータの動作をより詳細に説明するフローチャートである。 本発明の第2の実施形態に係るコンピュータの構成を示す説明図である。
符号の説明
10、1010 コンピュータ
11 プロセッサ
20 メモリコントローラ
30、31 メモリスロット
40、41 メモリモジュール
61、68、69、71、78、79、81、88、89、91、98、99 SDRAM
100、200 メモリチャネル
100a、200a アドレス信号
100b、200b データ信号
100c、101c、102c、103c、200c、201c、202c、203c チップセレクト信号
300 動作命令
400 メモリアクセス命令
500 データ
600 リプライデータ
601、602、700 動作信号
800 初期設定信号

Claims (8)

  1. 各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールを実装して使用可能なメモリコントローラであって、
    外部からの動作命令を前記メモリモジュールへのメモリアクセス命令に変換して発行するメモリアクセス命令生成部と、
    前記メモリモジュールの前記複数のランクを通常系および退避系に分けて制御対象とし、前記メモリアクセス命令がライト命令である場合には前記通常系および退避系のランクに同一データを書き込み、前記メモリアクセス命令がリード命令である場合には前記通常系のランクから記憶データを読み出すメモリチャネル制御部と、
    前記メモリモジュールから読み出された前記記憶データのエラーを検出するエラー検出・訂正回路とを有し、
    前記エラー検出・訂正回路が前記記憶データに訂正不可能エラーを検出した場合、前記エラー検出・訂正回路が前記通常系のランクを無効とし、前記メモリチャネル制御部に前記退避系のランクからデータを読み出させて前記エラーの検出を再試行する再試行処理を行うことを特徴とするメモリコントローラ。
  2. 前記複数のランクの各々が有効であるか否かを表す有効フラグを記憶するメモリミラーリングフラグ記憶部を有し、
    前記エラー検出・訂正回路が前記記憶データに訂正不可能エラーを検出した場合、前記エラー検出・訂正回路が前記メモリミラーリングフラグ記憶部で前記訂正不可能エラーを検出したランクの前記有効フラグを無効とすることを特徴とする、請求項1に記載のメモリコントローラ。
  3. 前記メモリミラーリングフラグ記憶部が、前記複数のランクの中に前記再試行処理に使用可能なランクが残っているか否かを示す代表フラグを記憶していることを特徴とする、請求項2に記載のメモリコントローラ。
  4. 前記メモリモジュールを複数個接続可能であり、
    前記メモリアクセス命令生成部が前記複数個のメモリモジュールに対して命令を振り分けるメモリインターリーブ制御を行うことを特徴とする、請求項1に記載のメモリコントローラ。
  5. 前記メモリモジュールが国際組織であるJEDECによって定められた規格に準拠したSDRAMであることを特徴とする、請求項1に記載のメモリコントローラ。
  6. 前記メモリモジュールが前記JEDEC規格に準拠したDDR SDRAM、DDR2 SDRAM、DDR3 SDRAMのうちのいずれか一つであることを特徴とする、請求項5に記載のメモリコントローラ。
  7. 各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールと、
    前記メモリモジュールを制御してデータを読み書きするメモリコントローラとを有し、
    前記メモリコントローラが請求項1ないし請求項6のうちいずれか1項に記載のメモリコントローラであることを特徴とするコンピュータ。
  8. 各々に独立してデータを読み書き可能な複数のランク(RANK)を有するメモリモジュールの前記複数のランクを通常系および退避系に分け、前記通常系および退避系のランクの各々にデータを二重化して書き込むメモリミラーリング方法であって、
    外部からの動作命令を受けたメモリアクセス命令生成部が全動作命令を前記メモリモジュールへのメモリアクセス命令に変換して発行し、
    前記メモリアクセス命令がライト命令である場合にはメモリチャネル制御部が前記ライト命令に付随するライトデータを前記通常系および退避系のランクに書き込み、
    前記メモリアクセス命令がリード命令である場合には前記メモリチャネル制御部が前記通常系のランクから記憶データを読み出し、
    エラー検出・訂正回路が前記通常系のランクから読み出された前記記憶データのエラーを検出し、
    前記記憶データに訂正不可能エラーを検出した場合、前記エラー検出・訂正回路が前記メモリモジュールの前記通常系のランクを無効とすると共に、前記メモリチャネル制御部に前記退避系のランクからデータを読み出させて前記エラーの検出を再試行する再試行処理を行う
    ことを特徴とするメモリミラーリング方法。
JP2008275703A 2008-10-27 2008-10-27 メモリコントローラ、コンピュータ、およびメモリミラーリング方法 Pending JP2010102640A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008275703A JP2010102640A (ja) 2008-10-27 2008-10-27 メモリコントローラ、コンピュータ、およびメモリミラーリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008275703A JP2010102640A (ja) 2008-10-27 2008-10-27 メモリコントローラ、コンピュータ、およびメモリミラーリング方法

Publications (1)

Publication Number Publication Date
JP2010102640A true JP2010102640A (ja) 2010-05-06

Family

ID=42293213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008275703A Pending JP2010102640A (ja) 2008-10-27 2008-10-27 メモリコントローラ、コンピュータ、およびメモリミラーリング方法

Country Status (1)

Country Link
JP (1) JP2010102640A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012104112A (ja) * 2010-11-09 2012-05-31 Internatl Business Mach Corp <Ibm> ミラー化データ・ストレージ・システムにおけるエラーを検出するための方法、コンピュータ・プログラム及びシステム
JP2012203642A (ja) * 2011-03-25 2012-10-22 Mega Chips Corp メモリシステム
US9043655B2 (en) 2012-06-29 2015-05-26 Fujitsu Limited Apparatus and control method
US9298549B2 (en) 2013-12-11 2016-03-29 International Business Machines Corporation Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235058A (ja) * 1995-02-27 1996-09-13 Fuji Electric Co Ltd メモリアクセス制御方法および制御装置
JP2006505864A (ja) * 2002-11-08 2006-02-16 インテル コーポレイション インタリーブミラーメモリシステム
WO2007028109A2 (en) * 2005-09-02 2007-03-08 Metaram, Inc. Methods and apparatus of stacking drams
JP2008134809A (ja) * 2006-11-28 2008-06-12 Nec Computertechno Ltd メモリ制御システム、メモリ制御装置、メモリ制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235058A (ja) * 1995-02-27 1996-09-13 Fuji Electric Co Ltd メモリアクセス制御方法および制御装置
JP2006505864A (ja) * 2002-11-08 2006-02-16 インテル コーポレイション インタリーブミラーメモリシステム
WO2007028109A2 (en) * 2005-09-02 2007-03-08 Metaram, Inc. Methods and apparatus of stacking drams
JP2008134809A (ja) * 2006-11-28 2008-06-12 Nec Computertechno Ltd メモリ制御システム、メモリ制御装置、メモリ制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012104112A (ja) * 2010-11-09 2012-05-31 Internatl Business Mach Corp <Ibm> ミラー化データ・ストレージ・システムにおけるエラーを検出するための方法、コンピュータ・プログラム及びシステム
JP2012203642A (ja) * 2011-03-25 2012-10-22 Mega Chips Corp メモリシステム
US9043655B2 (en) 2012-06-29 2015-05-26 Fujitsu Limited Apparatus and control method
US9298549B2 (en) 2013-12-11 2016-03-29 International Business Machines Corporation Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems
US10169145B2 (en) 2013-12-11 2019-01-01 International Business Machines Corporation Read buffer architecture supporting integrated XOR-reconstructed and read-retry for non-volatile random access memory (NVRAM) systems

Similar Documents

Publication Publication Date Title
US8874979B2 (en) Three dimensional(3D) memory device sparing
US8245109B2 (en) Error checking and correction (ECC) system and method
US8132074B2 (en) Reliability, availability, and serviceability solutions for memory technology
TWI501251B (zh) 區域錯誤檢測及全域錯誤校正技術
US8869007B2 (en) Three dimensional (3D) memory device sparing
US5452429A (en) Error correction code on add-on cards for writing portions of data words
US8886892B2 (en) Memory module and method employing a multiplexer to replace a memory device
US10761930B2 (en) Memory with error correction function that is compatible with different data length and an error correction method
US20090031078A1 (en) Rank sparing system and method
KR20170054182A (ko) 반도체 장치
US20180336090A1 (en) Memory with Error Correction Function and an Error Correction Method
US9262284B2 (en) Single channel memory mirror
JPWO2007116487A1 (ja) メモリ装置、そのエラー訂正の支援方法、その支援プログラム、メモリ・カード、回路基板及び電子機器
KR20210051668A (ko) 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
JP2008262325A (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
JP2010102640A (ja) メモリコントローラ、コンピュータ、およびメモリミラーリング方法
JP3922844B2 (ja) キャッシュtag制御方法及びこの制御方法を用いた情報処理装置
JP2005174386A (ja) 半導体集積回路装置
JP2004246754A (ja) 半導体記憶装置およびその制御装置
WO2012046343A1 (ja) メモリモジュール冗長化方法、記憶処理装置、及びデータ処理装置
CN114490172B (zh) 数据存储系统及方法
JP2006512630A (ja) エラー訂正を含むメモリ・サブシステム
CN114758696A (zh) 存储系统及其操作方法
US20080052598A1 (en) Memory multi-bit error correction and hot replace without mirroring
JP2008165879A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130716