JP6107625B2 - 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 - Google Patents

記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 Download PDF

Info

Publication number
JP6107625B2
JP6107625B2 JP2013248860A JP2013248860A JP6107625B2 JP 6107625 B2 JP6107625 B2 JP 6107625B2 JP 2013248860 A JP2013248860 A JP 2013248860A JP 2013248860 A JP2013248860 A JP 2013248860A JP 6107625 B2 JP6107625 B2 JP 6107625B2
Authority
JP
Japan
Prior art keywords
area
memory
data
cache area
access
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
JP2013248860A
Other languages
English (en)
Other versions
JP2015106324A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2013248860A priority Critical patent/JP6107625B2/ja
Priority to US14/528,586 priority patent/US9886399B2/en
Publication of JP2015106324A publication Critical patent/JP2015106324A/ja
Application granted granted Critical
Publication of JP6107625B2 publication Critical patent/JP6107625B2/ja
Expired - Fee Related 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
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本技術は、記憶制御装置に関する。詳しくは、複数の不揮発メモリからなるメモリシステムにおいて、ある不揮発メモリの一部を異なる不揮発メモリのキャッシュとして用いるメモリの記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
SSD(Solid State Drive)は、従来のハードディスクを用いたディスクドライブに替えて、半導体メモリを用いた記憶装置として利用されるようになっている。SSDでは、NAND型フラッシュメモリが用いられることが多いが、このNAND型フラッシュメモリはデータを消去する際に複数のページからなるブロック単位で消去を行うため、ページ単位の書替えに時間を要するという問題がある。そこで、フラッシュメモリに加えて抵抗変化ランダムアクセスメモリ(Resistance Random Access Memory)を設けたデータ記憶装置が提案されている(例えば、特許文献1参照。)。このデータ記憶装置では、書込みデータを抵抗変化ランダムアクセスメモリに一旦書き込んで、1ページ分のデータとエラー訂正符号が記憶される度に、フラッシュメモリに符号化されたデータを記憶するように制御している。
特開2012−038245号公報
上述の従来技術では、書込みデータを抵抗変化ランダムアクセスメモリに一旦書き込むため、フラッシュメモリを制御する処理を待たずに順次書込みデータを入力することができる。しかしながら、この従来技術では常にフラッシュメモリからデータを読み出すことになるため、読出し時間を高速化することはできない。
本技術はこのような状況に鑑みて生み出されたものであり、記憶装置においてデータの性質に応じた書込み方式によりデータを記憶することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、システムを動作させるためのシステム情報を記憶するシステム領域と第1のメモリのデータを一時的に記憶するキャッシュ領域とを第2のメモリにおいて定義する領域定義部と、上記キャッシュ領域に記憶されるデータを所定のタイミングで上記第1のメモリに移動する移動処理部と、上記システム領域または上記キャッシュ領域に該当するアクセスについては上記定義に応じて上記第2のメモリにアクセスし、上記システム領域および上記キャッシュ領域以外に該当するリードアクセスについては上記第1のメモリからデータを読み出すアクセス制御部とを具備する記憶制御装置およびその記憶制御方法である。これにより、システム領域およびキャッシュ領域を設けた第2のメモリにおいて、データの性質に応じたアクセスを行うという作用をもたらす。
また、この第1の側面において、上記アクセス制御部は、上記システム領域および上記キャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズによりアクセスするようにしてもよい。これにより、データの性質に応じたデータアクセスサイズによりアクセスを行うという作用をもたらす。
また、この第1の側面において、上記システム領域のデータアクセスサイズは、上記キャッシュ領域のデータアクセスサイズよりも大きくしてもよい。システム領域では大きいサイズのデータの連続読出しが多いことを考慮したものである。
また、この第1の側面において、上記システム領域および上記キャッシュ領域のそれぞれに対して個別に定められたサイズのデータを単位としてエラー訂正コードを付与してエラー検出訂正処理を行うエラー検出訂正処理部をさらに具備してもよい。これにより、システム領域および上記キャッシュ領域のそれぞれに適した単位でエラー訂正コードを付与するという作用をもたらす。また、この場合において、上記システム領域のエラー訂正コードの付与単位のデータサイズは、上記キャッシュ領域のエラー訂正コードの付与単位のデータサイズよりも大きくしてもよい。システム領域では高い信頼性が要求されることを考慮したものである。
また、この第1の側面において、上記アクセス制御部は、上記システム領域に書き込む際のパルス幅を上記キャッシュ領域よりも長くし、または、上記システム領域に書き込む際の電圧を上記キャッシュ領域よりも高くしてもよい。また、上記アクセス制御部は、上記システム領域に書き込む際のベリファイ閾値を上記キャッシュ領域よりも厳しくしてもよい。システム領域では、高い信頼性が要求されることを考慮したものである。
また、この第1の側面において、上記アクセス制御部は、上記キャッシュ領域に書き込む際のベリファイ回数を上記システム領域よりも少なくしてもよい。キャッシュ領域ではアクセスが高速に行われることが要求されることを考慮したものである。
また、本技術の第2の側面は、第1のメモリと、第2のメモリと、システムを動作させるためのシステム情報を記憶するシステム領域と上記第1のメモリのデータを一時的に記憶するキャッシュ領域とを上記第2のメモリにおいて定義する領域定義部と、上記キャッシュ領域に記憶されるデータを所定のタイミングで上記第1のメモリに移動する移動処理部と、上記システム領域または上記キャッシュ領域に該当するアクセスについては上記定義に応じて上記第2のメモリにアクセスし、上記システム領域および上記キャッシュ領域以外に該当するリードアクセスについては上記第1のメモリからデータを読み出すアクセス制御部とを具備する記憶装置である。これにより、第2のメモリにシステム領域およびキャッシュ領域を設けて、データの性質に応じたアクセスを行うという作用をもたらす。また、この場合において、上記第1および第2のメモリは不揮発性メモリであり、上記第2のメモリは上記第1のメモリよりも読出し処理時間を短くしてもよい。
また、本技術の第3の側面は、第1のメモリと、第2のメモリと、システムを動作させるためのシステム情報を記憶するシステム領域と上記第1のメモリのデータを一時的に記憶するキャッシュ領域とを上記第2のメモリにおいて定義する領域定義部と、上記キャッシュ領域に記憶されるデータを所定のタイミングで上記第1のメモリに移動する移動処理部と、上記システム領域または上記キャッシュ領域に該当するアクセスについては上記定義に応じて上記第2のメモリにアクセスし、上記システム領域および上記キャッシュ領域以外に該当するリードアクセスについては上記第1のメモリからデータを読み出すアクセス制御部と、上記アクセス制御部に対して上記第1または第2のメモリへのアクセス要求を発行するホストコンピュータとを具備する情報処理システムである。これにより、第2のメモリにシステム領域およびキャッシュ領域を設けて、ホストコンピュータからデータの性質に応じたアクセスを行うという作用をもたらす。
本技術によれば、記憶装置においてデータの性質に応じた書込み方式によりデータを記憶することができるという優れた効果を奏し得る。
本技術の実施の形態における情報処理システムの構成概要を示す図である。 本技術の実施の形態における高速不揮発性メモリ400として想定する抵抗変化型不揮発性メモリの抵抗分布を示す図である。 本技術の実施の形態におけるメモリコントローラ200の構成例を示す図である。 本技術の実施の形態における論理アドレス空間の対応例を示す図である。 本技術の実施の形態における領域管理テーブル250の構成例を示す図である。 本技術の実施の形態におけるアドレス変換テーブル260の構成例を示す図である。 本技術の実施の形態におけるメモリコントローラ200の機能構成例を示す図である。 本技術の実施の形態におけるブート領域へのライトタイミング例を示す図である。 本技術の実施の形態におけるキャッシュ領域へのライトタイミング例を示す図である。 本技術の実施の形態におけるブート領域からのリードタイミング例を示す図である。 本技術の実施の形態におけるキャッシュ領域からのリードタイミング例を示す図である。 本技術の実施の形態におけるメモリコントローラ200のブート領域設定処理の処理手順例を示す流れ図である。 本技術の実施の形態におけるメモリコントローラ200のライト処理の処理手順例を示す流れ図である。 本技術の実施の形態におけるメモリコントローラ200のリード処理の処理手順例を示す流れ図である。 本技術の実施の形態におけるメモリコントローラ200の移動処理の処理手順例を示す流れ図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.実施の形態の構成
2.実施の形態の動作
<1.実施の形態の構成>
[情報処理システムの概要]
図1は、本技術の実施の形態における情報処理システムの構成概要を示す図である。この情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、低速不揮発性メモリ300と、高速不揮発性メモリ400とから構成される。メモリコントローラ200、低速不揮発性メモリ300および高速不揮発性メモリ400は、メモリシステムモジュール500を構成する。
ホストコンピュータ100は、メモリシステムモジュール500に対してデータのリード処理やライト処理等を要求するコマンドを発行するものである。
メモリコントローラ200は、ホストコンピュータ100と通信してコマンドを受信し、低速不揮発性メモリ300または高速不揮発性メモリ400に対するアクセスを行うものである。低速不揮発性メモリ300または高速不揮発性メモリ400の何れにアクセスするかは、後述するように、論理アドレスによって定まる。
メモリコントローラ200は、高速不揮発性メモリ400と低速不揮発性メモリ300のエラー訂正コード(ECC:Error Correction Code)の生成処理を行うとともに、ECCを用いたエラー検出訂正処理を行う。すなわち、データの書込み時にはそれぞれに対応したパリティを付加して書き込む(以下、符号化と称する場合がある。)。また、データの読出し時にはデータおよびパリティに基づいてエラーの検出訂正を行う(以下、復号と称する場合がある。)。
低速不揮発性メモリ300および高速不揮発性メモリ400は、ともに不揮発性のメモリ(NVM:Non-Volatile Memory)である。高速不揮発性メモリ400は、低速不揮発性メモリ300よりも読出し処理時間が短いという性質を有する。読出し処理時間には、メモリ特性としての読出し時間と、メモリインターフェースにおけるコマンドやデータ転送の時間とが含まれる。低速不揮発性メモリ300(以下、低速NVMと略す場合がある。)としては、例えば、NANDフラッシュメモリを想定する。また、高速不揮発性メモリ400(以下、高速NVMと略す場合がある。)としては、例えば、抵抗変化型不揮発性メモリを想定する。なお、低速不揮発性メモリ300は、特許請求の範囲に記載の第1のメモリの一例である。また、高速不揮発性メモリ400は、特許請求の範囲に記載の第2のメモリの一例である。
低速不揮発性メモリ300の仕様としては、一例として以下を想定する。まず、半導体容量として16Gバイトを想定する。また、4Kバイトデータに128バイトパリティ、または、8Kバイトに256バイトパリティのページサイズによってリードまたはライトされ、ページより大きいブロック単位で消去されるものとする。
高速不揮発性メモリ400の仕様としては、一例として以下を想定する。まず、半導体容量として2Gバイトを想定する。また、512バイトデータに16バイトパリティのページサイズによってリードまたはライトされるものとする。なお、ここでは、NANDフラッシュメモリとは異なり、書込みの前に消去不要なメモリを想定する。
[高速不揮発性メモリの抵抗状態]
図2は、本技術の実施の形態における高速不揮発性メモリ400として想定する抵抗変化型不揮発性メモリの抵抗分布を示す図である。抵抗変化型不揮発性メモリは、セット動作により低抵抗状態(LRS:Low Resistance State)に遷移し、リセット動作により高抵抗状態(HRS:High Resistance State)に遷移する。セット動作およびリセット動作を行う際には、セルに対してパルス電圧が印加される。セット動作およびリセット動作時にセルに対して印加されるパルス電圧の電圧を高くし、または、そのパルス幅を長くすることにより、データの保持特性を改善することができる。
抵抗変化型不揮発性メモリからデータを読み出す場合、リード閾値で示したリファレンス抵抗値を基準として抵抗状態を判断する。また、抵抗変化型不揮発性メモリにデータを書き込む場合、セット動作またはリセット動作の後にそのデータを読み出して、適正にセット動作またはリセット動作が行われていることを検証する動作(ベリファイ動作)が行われる。このベリファイ動作においてはリファレンス抵抗値を厳しくしたベリファイ閾値が用いられる場合がある。また、製造プロセスに起因するばらつきの影響によって、セット動作またはリセット動作とベリファイ動作を1回実行しただけでは正しく書込みが行われないことがあるため、これらを複数回繰り返して実行する場合がある。このベリファイと書込みの回数を多くすることによっても、データの保持特性を改善することができる。
セット動作とリセット動作ではセルに対して印加されるパルスの電圧の方向が互いに逆方向となる。読出しの際には、読出し対象となったセルに対してリセット動作と同方向に弱い電圧を印加する。読出し処理は、弱い書込み処理であると考えることができ、読出しによりセルは劣化する。したがって、読出し回数の多いセルは保持特性が悪い傾向になる。
低抵抗状態と高抵抗状態との間で抵抗状態を可逆的に変化させることにより、1つのメモリセルによって1ビットを記憶することが可能なメモリが実現される。電圧の印加を止めた後もデータは保持されるため不揮発性メモリとして機能する。一般に、低抵抗状態のセルから読み出されるデータを「1」とし、高抵抗状態から読み出されるデータを「0」として扱うことが考えられるが、これらは何れに対応付けても構わない。
[メモリコントローラの構成]
図3は、本技術の実施の形態におけるメモリコントローラ200の構成例を示す図である。このメモリコントローラ200は、プロセッサ210と、ROM220と、RAM230と、ECC処理部240と、領域管理テーブル250と、アドレス変換テーブル260とを備える。また、メモリコントローラ200は、ホストコンピュータ100との間のインターフェースを制御するホストインターフェース制御部201を備える。また、メモリコントローラ200は、低速不揮発性メモリ300との間のインターフェースを制御する低速不揮発性メモリインターフェース制御部203を備える。また、メモリコントローラ200は、高速不揮発性メモリ400との間のインターフェースを制御する高速不揮発性メモリインターフェース制御部204を備える。
プロセッサ210は、メモリコントローラ200全体の制御を行うものである。このプロセッサ210は、ROM220に格納されたソフトウェアを実行する。このプロセッサ210は、ホストコンピュータ100から発行されたコマンドを解釈して、低速不揮発性メモリ300または高速不揮発性メモリ400に対して必要なリクエストを要求する。ROM220は、ストレージシステムを制御するためのソフトウェアプログラムを格納するメモリである。
RAM230は、揮発性のメモリであり、プロセッサ210のワーキングメモリや、低速不揮発性メモリ300および高速不揮発性メモリ400を管理するデータを一時的に保持するための領域として用いられる。また、RAM230は、ホストコンピュータ100とメモリコントローラ200との間で転送されるデータを一時的に保持するための領域としても用いられる。また、RAM230は、メモリコントローラ200と低速不揮発性メモリ300または高速不揮発性メモリ400との間で転送されるデータを一時的に保持するための領域としても用いられる。なお、以下に説明する領域管理テーブル250およびアドレス変換テーブル260をこのRAM230に保持するようにしてもよい。
ECC処理部240は、高速不揮発性メモリ400および低速不揮発性メモリ300のエラー訂正コード(ECC)の生成、および、高速不揮発性メモリ400および低速不揮発性メモリ300から読み出したデータのエラー検出および訂正処理を実行するものである。
図4は、本技術の実施の形態における論理アドレス空間の対応例を示す図である。メモリシステムモジュール500は、ホストコンピュータ100から論理アドレスによってアクセスされる。メモリシステムモジュール500のメモリコントローラ200は、その論理アドレスに応じて高速不揮発性メモリ400または低速不揮発性メモリ300にアクセスする。
メモリシステムモジュール500、高速不揮発性メモリ400および低速不揮発性メモリ300は、論理アドレス空間を共有している。メモリコントローラ200は、領域管理テーブル250によって、メモリシステムモジュール500の論理アドレスが高速不揮発性メモリ400または低速不揮発性メモリ300の何れに割り当てられているかを知ることができる。
メモリコントローラ00は、高速不揮発性メモリ400(ブート領域またはキャッシュ領域)にアクセスするにあたっては、メモリシステムモジュール500の論理アドレスを高速不揮発性メモリ400の物理アドレスに変換してアクセスする。また、低速不揮発性メモリ300に対しても同様に、メモリシステムモジュール500の論理アドレスを低速不揮発性メモリ300の物理アドレスに変換してアクセスする。
メモリシステムモジュール500の論理アドレス空間は、「ブート空間」と「通常空間」から構成される。メモリシステムモジュール500の論理アドレス空間のうちブート空間へのアクセスは、高速不揮発性メモリ400へアクセスするように対応づけられ、この対応づけられた高速不揮発性メモリ400上の領域をブート領域と定義する。このブート空間は、起動情報を記憶する領域であり、システム起動時にこれを読み出してホストコンピュータ100に供給することを想定する。起動情報は、システムを起動するために必要な情報であり、例えば、起動プログラム、オペレーティングシステム、メインアプリケーションプログラムなどが含まれる。起動情報を高速不揮発性メモリ400に保持することにより、その読出しを速くして、システムの起動を高速化することができる。なお、以下ではシステム起動時に起動情報を読み出す例について説明するが、起動時に読み出される情報だけではなく、システムを動作させるためのシステム情報にも本技術を広く適用することができる。例えば、起動後に高い頻度で用いられるその他のアプリケーションプログラムもシステム情報の一例である。すなわち、特許請求の範囲に記載のシステム情報は起動情報を含む広い概念である。また、特許請求の範囲に記載のシステム領域は、ブート領域を含む広い概念である。
一方、メモリシステムモジュール500の論理アドレス空間のうち通常空間へのアクセスは、低速不揮発性メモリ300へアクセスするように対応づけられる。ただし、高速不揮発性メモリ400を低速不揮発性メモリ300のキャッシュとして用いるために、通常空間のうちの一部を高速不揮発性メモリ400に割り当てることができる。この高速不揮発性メモリ400に割り当てられた高速不揮発性メモリ400上の領域をキャッシュ領域と定義する。このキャッシュ領域は、低速不揮発性メモリ300のデータを一時的に記憶する領域であり、高速不揮発性メモリ400を低速不揮発性メモリ300のキャッシュとして機能させるための領域である。ホストコンピュータ100からのライトデータを低速不揮発性メモリ300に書き込む際には、まずは高速不揮発性メモリ400のキャッシュ領域に書込みを行う。そして、所定のタイミングでキャッシュ領域から低速不揮発性メモリ300の本来の領域にデータを移動する。したがって、データを読み出すタイミングによって、目的とするデータが高速不揮発性メモリ400のキャッシュ領域または低速不揮発性メモリ300の何れかに存在することになる。一方、ブート空間のデータは低速不揮発性メモリ300に移動することがないため、常にブート領域に存在する。
また、メモリシステムモジュール500のブート空間へのアクセスにおいては、読出しおよび書込みの何れに対しても、高速不揮発性メモリ400のブート領域を対象として読出しまたは書込みの処理が行われる。
通常空間へのアクセスの場合、読出しにおいては、その対象となるメモリシステムモジュール500の論理アドレスが高速不揮発性メモリ400のキャッシュ領域に対応づけられている場合には、高速不揮発性メモリ400のキャッシュ領域から読出しが行われる。キャッシュ領域に対応づけられていない場合には低速不揮発性メモリ300から読出しが行われる。
また、通常空間への書込みにおいては、その対象となるメモリシステムモジュール500の論理アドレスが高速不揮発性メモリ400のキャッシュ領域に対応づけられている場合には、高速不揮発性メモリ400のキャッシュ領域に書込みが行われる。キャッシュ領域に対応づけられていない場合には、高速不揮発性メモリ400のキャッシュ領域を新たに割り当てた上で、高速不揮発性メモリ400のキャッシュ領域への書込みが行われる。ただし、高速不揮発性メモリ400の全容量が使われていた場合には、高速不揮発性メモリ400のデータを低速不揮発性メモリ300に移動した後に、キャッシュ領域を新たに割り当てた上で高速不揮発性メモリ400に書き込んでもよい。また、このように高速不揮発性メモリ400の全容量が使われていた場合において、高速不揮発性メモリ400にキャッシュ領域を新たに割り当てることなく、そのまま低速不揮発性メモリ300に書き込むようにしてもよい。
図5は、本技術の実施の形態における領域管理テーブル250の構成例を示す図である。この領域管理テーブル250は、メモリシステムモジュール500の論理アドレス空間のうち、高速不揮発性メモリ400のブート領域またはキャッシュ領域に対応づけられている領域を示すテーブルである。この領域管理テーブル250に存在しないメモリシステムモジュール500の論理アドレスについては、低速不揮発性メモリ300に割り当てられていることになる。
この例では、メモリシステムモジュール500の論理アドレスと高速不揮発性メモリ400のブート領域またはキャッシュ領域との対応関係が管理されている。キャッシュ領域は通常空間のキャッシュとして離散的に存在するため、複数エントリを記録している。ブート空間は連続であることが想定されるため、1エントリを想定しているが、複数エントリ存在しても構わない。
また、この例では領域管理テーブル250に開始論理アドレスおよび終了論理アドレスを記録しているが、1エントリに対する論理アドレス空間のサイズを固定した場合には開始アドレスのみを記録するように構成することも可能である。
なお、この領域管理テーブル250は、シャットダウンなどの際には低速不揮発性メモリ300または高速不揮発性メモリ400に保存される。
図6は、本技術の実施の形態におけるアドレス変換テーブル260の構成例を示す図である。このアドレス変換テーブル260は、論理アドレスを低速不揮発性メモリ300または高速不揮発性メモリ400の物理アドレスに変換するためのテーブルである。ここでは、高速不揮発性メモリ400の物理アドレスに変換する構成について示しており、ブート領域およびキャッシュ領域の論理アドレスと物理アドレスとの対からなるエントリを有している。同様に、低速不揮発性メモリ300についても、論理アドレスから物理アドレスへ変換するためのエントリを有する。
メモリコントローラ200は、ホストコンピュータ100からアクセスされた論理アドレスがブート領域に対応づけられている場合には、アドレス変換テーブル260を参照して論理アドレスを高速不揮発性メモリ400の物理アドレスに変換する。これにより、論理アドレスに対応する高速不揮発性メモリ400のブート領域の物理ページにアクセスするように制御する。一方、ホストコンピュータ100からアクセスされた論理アドレスがキャッシュ領域に対応づけられている場合には、アドレス変換テーブル260を参照して論理アドレスを高速不揮発性メモリ400の物理アドレスに変換する。これにより、論理アドレスに対応する高速不揮発性メモリ400のキャッシュ領域の物理ページにアクセスするように制御する。
また、ホストコンピュータ100からアクセスされた論理アドレスが低速不揮発性メモリ300に対応づけられている場合には、アドレス変換テーブル260を参照して論理アドレスを低速不揮発性メモリ300の物理アドレスに変換する。これにより、論理アドレスに対応する低速不揮発性メモリ300のキャッシュ領域の物理ページにアクセスするように制御する。
図7は、本技術の実施の形態におけるメモリコントローラ200の機能構成例を示す図である。メモリコントローラ200は、領域定義部251と、アクセス制御部211と、移動処理部212の各機能を有する。
領域定義部251は、高速不揮発性メモリ400におけるブート領域およびキャッシュ領域を定義するためのものである。具体的には、ブート領域およびキャッシュ領域の論理アドレス空間における開始アドレスや終了アドレスを保持することにより、アクセス対象が高速不揮発性メモリ400の何れの領域であるか、または、低速不揮発性メモリ300であるかを管理する。なお、この領域定義部251は、例えば領域管理テーブル250によって実現される。
アクセス制御部211は、ホストコンピュータ100からのコマンドに従って、低速不揮発性メモリ300または高速不揮発性メモリ400にアクセスを行うものである。具体的には、書込みの際に、高速不揮発性メモリ400のブート領域およびキャッシュ領域の何れの領域に該当するか、または、低速不揮発性メモリ300に該当するかに応じて、その領域について予め定められた書込み方式によって書込みを行うよう制御する。この書込み方式としては、データアクセスサイズ、ECC付与単位のデータサイズの他、書き込む際のパルス幅や電圧、ベリファイ閾値やベリファイ回数などを予め定めておくことが考えられる。
また、アクセス制御部211は、読出しの際には、高速不揮発性メモリ400のブート領域およびキャッシュ領域の何れの領域に該当するか、または、低速不揮発性メモリ300に該当するかを判断する。そして、その領域について予め定められた読出し方式によって読出しを行うよう制御する。
このように、アクセス制御部211は、ブート領域およびキャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズ、ECC付与単位のデータサイズによりアクセスすることができる。ブート領域には、OSやアプリケーション等のデータが配置されるため、大きいサイズのデータの連続読出しが多く、高い信頼性が要求される。したがって、ブート領域では、データアクセスサイズが大きく、ECC付与単位のデータサイズも大きいことが望ましい。一方、製品出荷前にブート領域に起動情報を書き込んでおくことを想定すると、書込みの即時性は必ずしも要求されない。したがって、ベリファイ閾値を厳しくし、ベリファイ回数を増やして、データの信頼性を高くして書き込むことが考えられる。また、書込み時のパルス幅を広く、電圧を高くすることにより、保持特性を高めて信頼性を高くすることも有効である。なお、書込み時のパルス幅や電圧を高くした場合にはメモリの書換え回数(寿命)は減少する傾向があるが、ブート領域の性質としては読出し回数は多いものの書換え回数は少ないため、このような手法を採っても問題は生じないと考えられる。なお、ここでは、ブート領域に対する書込み方式として信頼性の高い書込み方式を採用する例について説明したが、通常の書込み方式を採用することも可能である。この書込み方式の選択については、ホストコンピュータ100から指令するようにしてもよく、また、メモリコントローラ200が自ら判断して使い分けるようにしてもよい。
一方、キャッシュ領域では、小さいデータのアクセスが高速に行われることが要求される。また、短期間のうちに低速不揮発性メモリ300に移動されることを考慮すると、信頼性はそれほど重要視されない。したがって、キャッシュ領域では、データアクセスサイズが小さく、ECC付与単位のデータサイズも小さいことが望ましい。また、ベリファイ回数を制限して、書込み時間を短くすることが有効である。また、書込み時のベリファイリードにおいてセンス電流を多くすることによりベリファイリードを短時間で行い、高速に書き込むことも有効である。なお、ここでは、キャッシュ領域に対する書込み方式として短い時間で書込みを終了できる方式を採用する例について説明したが、通常の書込み方式を採用することも可能である。この書込み方式の選択については、ホストコンピュータ100から指令するようにしてもよく、また、メモリコントローラ200が自ら判断して使い分けるようにしてもよい。
なお、このアクセス制御部211は、例えばプロセッサ210によって実現される。
移動処理部212は、高速不揮発性メモリ400のキャッシュ領域に記憶されるデータを所定のタイミングで低速不揮発性メモリ300に移動するものである。移動のタイミングとしては、例えば、ホストコンピュータ100からのアクセスが一定時間発生しない場合や、キャッシュ領域に所定の閾値を超える容量のデータが溜まった場合などを想定することができる。
データの移動においては、まず高速不揮発性メモリ400のキャッシュ領域からデータを読み出し、キャッシュ領域のデータアクセスサイズでECC復号によるエラー検出訂正処理を行う。その後、復号されたデータを低速不揮発性メモリ300で定められたECC付与単位のデータサイズでECCを生成して、低速不揮発性メモリ300に書き込む。ECC付与単位のデータサイズがキャッシュ領域と低速不揮発性メモリ300とで同じ場合には、キャッシュ領域から読み出したデータについてエラー検出訂正した後、そのまま低速不揮発性メモリ300に書き込むことにより移動させてもよい。なお、この移動処理部212は、例えばプロセッサ210によって実現される。
<2.実施の形態の動作>
[メモリコントローラの動作タイミング]
図8は、本技術の実施の形態におけるブート領域へのライトタイミング例を示す図である。ここでは、ブート領域のECC付与単位のデータサイズが4Kバイト、ECCのパリティサイズが128バイトである例を想定する。ホストコンピュータ100から4Kバイトのライトコマンドが発行され、それをメモリコントローラ200が受け取ったものとする。
ホストコンピュータ100はメモリコントローラ200にライトコマンドを発行すると、引き続いて4Kバイトのデータを送信する。メモリコントローラ200は、受け取った4Kバイトのデータを4Kバイトのデータサイズで128バイトのパリティを生成する(計4Kバイト+128バイト)。メモリコントローラ200は、このパリティ付データを高速不揮発性メモリ400に対して、ページサイズ(528バイト)毎に、ブート領域の書込み方式で8回書き込む。
高速不揮発性メモリ400は、受け取ったページを単位として、指示されたブート領域の書込み方式でメモリセルに書込みを行う。ここでは、8バンク構成を前提として、各バンクに順番に書き込んでいく様子を示している。各バンクのステータス信号は、書込みの開始でビジー状態となり、書込みが終了するとビジー状態が終了する。
ここで、図中のTa_1、Ta_2、Ta_3は以下に示す通りである。
Ta_1:メモリコントローラ200がライトデータを受信し、ECC付与単位である4Kバイトのうちの512バイトを高速不揮発性メモリ400にデータ転送開始する直前までの時間
Ta_2:メモリコントローラ200から1ページのデータを高速不揮発性メモリ400に転送する時間
Ta_3:高速不揮発性メモリ400が1ページ(528バイト)をブート領域の書込み方式で書き込む時間
なお、ブート領域の書込み方式で書き込む時間(Ta_3)については、ベリファイ回数が多いことを想定しており、通常の書込みの時間よりも長くなるものとしている。
図9は、本技術の実施の形態におけるキャッシュ領域へのライトタイミング例を示す図である。ここでは、キャッシュ領域のECC付与単位のデータサイズが512バイト、ECCのパリティサイズが16バイトである例を想定する。ホストコンピュータ100から4Kバイトのライトコマンドが発行され、それをメモリコントローラ200が受け取ったものとする。
ホストコンピュータ100はメモリコントローラ200にライトコマンドを発行すると、引き続いて4Kバイトのデータを送信する。メモリコントローラ200は、受け取った4Kバイトのデータを、512バイトのデータサイズで16バイトのパリティを生成する。すなわち、8つの528バイトのデータとする。メモリコントローラ200は、このパリティ付データを高速不揮発性メモリ400に対して、ページサイズ(528バイト)毎に、キャッシュ領域の書込み方式で8回書き込む。
高速不揮発性メモリ400は、受け取ったページを単位として、指示されたキャッシュ領域の書込み方式でメモリセルに書込みを行う。ここでは、同様に8バンク構成を前提として、各バンクに順番に書き込んでいく様子を示している。
ここで、図中のTb_1、Tb_2、Tb_3は以下に示す通りである。
Tb_1:メモリコントローラ200がライトデータを受信し、ECC付与単位である4Kバイトのうちの512バイトのECCを処理し、高速不揮発性メモリ400にデータ転送開始する直前までの時間
Tb_2:メモリコントローラ200から1ページのデータを高速不揮発性メモリ400に転送する時間
Tb_3:高速不揮発性メモリ400が1ページ(528バイト)をキャッシュ領域の書込み方式で書き込む時間
なお、キャッシュ領域の書込み方式で書き込む時間(Tb_3)については、ベリファイ回数を少なくできるため、通常の書込みの時間よりも短くなるものとしている。
なお、ここでは、ホストコンピュータ100からの最小アクセス単位を512バイトと想定して、キャッシュ領域のデータアクセスサイズを512バイトとした。これに対し、例えば、ホストコンピュータ100からの最小アクセス単位が4Kバイトである場合には、ブート領域およびキャッシュ領域のデータアクセスサイズをともに4Kバイトとすることができる。
図10は、本技術の実施の形態におけるブート領域からのリードタイミング例を示す図である。ここでは、ブート領域のデータアクセスサイズが4Kバイト、ECCのパリティサイズが128バイトである例を想定する。ホストコンピュータ100から4Kバイトのリードコマンドが発行され、それをメモリコントローラ200が受け取ったものとする。
ホストコンピュータ100がメモリコントローラ200に4Kバイトのリードコマンドを発行すると、メモリコントローラ200は高速不揮発性メモリ400から4Kバイト+128バイトを読み出す。そのために、メモリコントローラ200は、リードリクエストをページサイズ(528バイト)毎に8回発行する。メモリコントローラ200は、4Kバイト+128バイトのデータを受け取ると、ECCによるエラー検出訂正処理を行い、エラーがあれば訂正してホストコンピュータ100に転送する4Kバイトのデータを準備する。4Kバイトのデータの準備が完了すると、メモリコントローラ200はホストコンピュータ100に4Kバイトのデータ転送を行う。
ここで、図中のTa_1、Ta_2は以下に示す通りである。
Ta_1:メモリコントローラ200が高速不揮発性メモリ400から4Kバイト+128バイトのデータを受信し、ECC復号を行って、ホストコンピュータ100に転送する4Kバイトデータの準備が完了するまでの時間
Ta_2:メモリコントローラ200から4Kバイトのデータをホストコンピュータ100に転送する時間
このブート領域からのリード動作において、ECCによるエラー検出訂正処理は、先頭の512バイトのデータを受信した時から開始し、4Kバイトのデータを受信した後に終了する。そのため、4Kバイトのデータ受信が終わった後にホストコンピュータ100へのデータ転送が開始する。
図11は、本技術の実施の形態におけるキャッシュ領域からのリードタイミング例を示す図である。ここでは、キャッシュ領域のデータアクセスサイズが512バイト、ECCのパリティサイズが16バイトである例を想定する。ホストコンピュータ100から4Kバイトのライトコマンドが発行され、それをメモリコントローラ200が受け取ったものとする。
ホストコンピュータ100がメモリコントローラ200に4Kバイトのリードコマンドを発行すると、メモリコントローラ200は高速不揮発性メモリ400から4Kバイト+128バイトのデータを読み出す。そのために、メモリコントローラ200はリードリクエストをページサイズ(528バイト)毎に8回発行する。メモリコントローラ200は、528バイトのデータを受け取る度にECCによるエラー検出訂正処理を行い、エラーがあれば訂正してホストコンピュータ100に転送する512バイトのデータを準備する。メモリコントローラ200は、512バイトのデータが準備される度に、ホストコンピュータ100に512バイトのデータ転送を行う。
ここで、図中のTb_1、Tb_2は以下に示す通りである。
Tb_1:メモリコントローラ200が高速不揮発性メモリ400から528バイトのデータを受信し、ECC復号を行って、ホストコンピュータ100に転送する512バイトデータの準備が完了するまでの時間
Tb_2:メモリコントローラ200から4Kバイトのデータをホストコンピュータ100に転送する時間
このキャッシュ領域からのリード動作においては、先頭の512バイトのデータが準備され次第、ホストコンピュータ100へのデータ転送が可能となるため、ブート領域の場合と比べてレイテンシを短くすることができる。
[メモリコントローラの処理手順]
図12は、本技術の実施の形態におけるメモリコントローラ200のブート領域設定処理の処理手順例を示す流れ図である。ホストコンピュータ100は、例えばブート領域設定コマンドを発行することによって、メモリコントローラ200に対してブート領域設定を指令する。ホストコンピュータ100は、論理アドレスなどによってブート領域を指定する。
ブート領域設定コマンドを受け取ったメモリコントローラ200は、指示されたメモリシステムモジュール500の論理アドレス空間をブート空間として、高速不揮発性メモリ400のブート領域に割り当てる(ステップS911)。具体的には、領域管理テーブル250に、ブート領域として、開始論理アドレスおよび終了論理アドレスを設定する。
そして、指示された空間以外を通常空間として割り当てる(ステップS912)。
図13は、本技術の実施の形態におけるメモリコントローラ200のライト処理の処理手順例を示す流れ図である。ホストコンピュータ100は、メモリコントローラ200にライトコマンドを発行する。ライトコマンドでは書込み先の論理アドレスとサイズを指示し、ライトコマンドを送信した後に続いてライトデータを送信する。
メモリコントローラ200は、ホストコンピュータ100からライト対象となる論理アドレスおよびライトデータを受信する(ステップS921)。メモリコントローラ200は、受信したライトコマンドの論理アドレスに基づいて領域管理テーブル250を参照することにより、それがブート領域に対する書込みであるか否かを判断する(ステップS922)。ブート領域に対する書込みであれば(ステップS922:Yes)、メモリコントローラ200は、アドレス変換テーブル260を参照することにより、論理アドレスを高速不揮発性メモリ400の物理アドレスに変換する(ステップS924)。そして、ブート領域のECC付与単位のデータサイズ(例えば、4Kバイト)に対してECCを生成する(ステップS925)。そして、ブート領域の書込み方式を用いて、ブート領域に書込みを行う(ステップS926)。
ブート領域に対する書込みでなければ(ステップS922:No)、メモリコントローラ200は、領域管理テーブル250を参照することにより、それがキャッシュ領域に対する書込みであるか否かを判断する(ステップS932)。キャッシュ領域に対する書込みでなければ(ステップS932:No)、高速不揮発性メモリ400に新たにキャッシュ領域を割り当てる(ステップS933)。具体的には、領域管理テーブル250に、キャッシュ領域として、開始論理アドレスおよび終了論理アドレスを設定する。ただし、高速不揮発性メモリ400の全容量が使われていた場合には、高速不揮発性メモリ400のデータを低速不揮発性メモリ300に移動した後に、キャッシュ領域を新たに割り当てた上で高速不揮発性メモリ400に書き込んでもよい。
キャッシュ領域に対する書込みである場合(ステップS932:Yes)、または、キャッシュ領域の割当て後(ステップS933)、メモリコントローラ200は、論理アドレスを高速不揮発性メモリ400の物理アドレスに変換する(ステップS934)。そして、キャッシュ領域のECC付与単位のデータサイズ(例えば、512バイト)に対してECCを生成する(ステップS935)。そして、キャッシュ領域の書込み方式を用いて、キャッシュ領域に書込みを行う(ステップS936)。
図14は、本技術の実施の形態におけるメモリコントローラ200のリード処理の処理手順例を示す流れ図である。ホストコンピュータ100は、メモリコントローラ200にリードコマンドを発行する。リードコマンドでは、読出し対象となる論理アドレスとサイズが指示される。
メモリコントローラ200は、ホストコンピュータ100からリード対象となる論理アドレスを受信する(ステップS941)。メモリコントローラ200は、受け取った論理アドレスから、それがブート領域からの読出しであるか否かを判断する(ステップS942)。ブート領域からの読出しであれば(ステップS942:Yes)、メモリコントローラ200は、アドレス変換テーブル260を参照することにより、論理アドレスを高速不揮発性メモリ400の物理アドレスに変換する(ステップS943)。そして、高速不揮発性メモリ400の対象の物理アドレスからデータを読み出す(ステップS944)。そして、読み出されたデータについて、ブート領域のデータサイズでECCによるエラー検出訂正処理を行う(ステップS945)。このとき、読み出したデータにエラーが含まれる場合にはデータが訂正される。
一方、ブート領域からの読出しでなければ(ステップS942:No)、メモリコントローラ200は、領域管理テーブル250を参照することにより、それがキャッシュ領域からの読出しであるか否かを判断する(ステップS952)。キャッシュ領域からの読出しであれば(ステップS952:Yes)、メモリコントローラ200は、アドレス変換テーブル260を参照することにより、論理アドレスを高速不揮発性メモリ400の物理アドレスに変換する(ステップS953)。そして、高速不揮発性メモリ400の対象の物理アドレスからデータを読み出す(ステップS954)。そして、読み出されたデータについて、キャッシュ領域のデータサイズでECCによるエラー検出訂正処理を行う(ステップS955)。このとき、読み出したデータにエラーが含まれる場合にはデータが訂正される。
ブート領域またはキャッシュ領域の何れでもなければ(ステップS952:No)、メモリコントローラ200は、アドレス変換テーブル260を参照することにより、論理アドレスを低速不揮発性メモリ300の物理アドレスに変換する(ステップS956)。そして、低速不揮発性メモリ300の対象の物理アドレスからデータを読み出す(ステップS957)。そして、読み出されたデータについて、低速不揮発性メモリ300の予め定められたECCのデータサイズでエラー検出訂正処理を行う(ステップS958)。このとき、読み出したデータにエラーが含まれる場合にはデータが訂正される。
これらの処理によりデータが読み出されると、メモリコントローラ200は、高速不揮発性メモリ400のブート領域またはキャッシュ領域もしくは低速不揮発性メモリ300から読み出されたデータをホストコンピュータ100に転送する(ステップS959)。
図15は、本技術の実施の形態におけるメモリコントローラ200の移動処理の処理手順例を示す流れ図である。メモリコントローラ200は、高速不揮発性メモリ400のキャッシュ領域に記憶されるデータを所定のタイミングで低速不揮発性メモリ300に移動する。移動のタイミングとしては、上述のように、例えば、ホストコンピュータ100からのアクセスが一定時間ない場合や、キャッシュ領域に所定の閾値を超える容量のデータが溜まった場合が挙げられる。
移動タイミングになると(ステップS961:Yes)、メモリコントローラ200は、領域管理テーブル250のキャッシュ領域のエントリの中から移動対象となるエントリを選択する(ステップS962)。そして、高速不揮発性メモリ400および低速不揮発性メモリ300のアドレス変換テーブル260を用いて、論理アドレスを高速不揮発性メモリ400および低速不揮発性メモリ300の物理アドレスにそれぞれ変換する(ステップS963)。
次に、変換された物理アドレスを用いて高速不揮発性メモリ400のキャッシュ領域からデータを読み出し、低速不揮発性メモリ300へ書込みを行うことにより、データ移動を行う(ステップS964)。移動後は領域管理テーブル250から移動したエントリを削除する(ステップS965)。これにより、キャッシュ領域から読み出されたデータは、キャッシュ領域に存在しないものとして扱われることになる。
なお、移動中のメモリシステムモジュール500の領域管理テーブル250のエントリに対して読出しを行った場合には、その移動は中断される。そして、領域管理テーブル250のエントリを用いて、高速不揮発性メモリ400のキャッシュ領域からリード処理が行われる。リード処理の終了後、中断していた移動処理が再開される。移動処理が再開された後、移動したエントリは削除される。
また、移動中のメモリシステムモジュール500の論理アドレスに対して書込みを行った場合には、高速不揮発性メモリ400から低速不揮発性メモリ300への移動は中止される。そして、領域管理テーブル250のエントリを用いて、高速不揮発性メモリ400のキャッシュ領域にライト処理が行われる。この場合、移動処理を中止したため、エントリは削除されない。
この例ではキャッシュ領域から低速不揮発性メモリ300への移動処理について説明したが、低速不揮発性メモリ300からキャッシュ領域へ移動することも可能である。この場合は移動後にエントリの追加を行う。
このように、本技術の実施の形態によれば、高速不揮発性メモリ400に起動情報のためのブート領域と低速不揮発性メモリ300のためのキャッシュ領域とを設定することができる。これにより、キャッシュ領域において低速不揮発性メモリ300に対するアクセス速度を向上させるとともに、ブート領域において起動情報を信頼性高く記憶することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)システムを動作させるためのシステム情報を記憶するシステム領域と第1のメモリのデータを一時的に記憶するキャッシュ領域とを第2のメモリにおいて定義する領域定義部と、
前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理部と、
前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御部と
を具備する記憶制御装置。
(2)前記アクセス制御部は、前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズによりアクセスする前記(1)に記載の記憶制御装置。
(3)前記システム領域のデータアクセスサイズは、前記キャッシュ領域のデータアクセスサイズよりも大きい前記(1)または(2)に記載の記憶制御装置。
(4)前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたサイズのデータを単位としてエラー訂正コードを付与してエラー検出訂正処理を行うエラー検出訂正処理部をさらに具備する前記(1)から(3)のいずれかに記載の記憶制御装置。
(5)前記システム領域のエラー訂正コードの付与単位のデータサイズは、前記キャッシュ領域のエラー訂正コードの付与単位のデータサイズよりも大きい前記(4)に記載の記憶制御装置。
(6)前記アクセス制御部は、前記システム領域に書き込む際のパルス幅を前記キャッシュ領域よりも長くする前記(1)から(5)のいずれかに記載の記憶制御装置。
(7)前記アクセス制御部は、前記システム領域に書き込む際の電圧を前記キャッシュ領域よりも高くする前記(1)から(6)のいずれかに記載の記憶制御装置。
(8)前記アクセス制御部は、前記システム領域に書き込む際のベリファイ閾値を前記キャッシュ領域よりも厳しくする前記(1)から(7)のいずれかに記載の記憶制御装置。
(9)前記アクセス制御部は、前記キャッシュ領域に書き込む際のベリファイ回数を前記システム領域よりも少なくする前記(1)から(8)のいずれかに記載の記憶制御装置。
(10)第1のメモリと、
第2のメモリと、
システムを動作させるためのシステム情報を記憶するシステム領域と前記第1のメモリのデータを一時的に記憶するキャッシュ領域とを前記第2のメモリにおいて定義する領域定義部と、
前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理部と、
前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御部と
を具備する記憶装置。
(11)前記第1および第2のメモリは不揮発性メモリであり、
前記第2のメモリは前記第1のメモリよりも読出し処理時間が短い
前記(10)に記載の記憶装置。
(12)第1のメモリと、
第2のメモリと、
システムを動作させるためのシステム情報を記憶するシステム領域と前記第1のメモリのデータを一時的に記憶するキャッシュ領域とを前記第2のメモリにおいて定義する領域定義部と、
前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理部と、
前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御部と、
前記アクセス制御部に対して前記第1または第2のメモリへのアクセス要求を発行するホストコンピュータと
を具備する情報処理システム。
(13)システムを動作させるためのシステム情報を記憶するシステム領域と第1のメモリのデータを一時的に記憶するキャッシュ領域とを第2のメモリにおいて定義する領域定義手順と、
前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理手順と、
前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御手順と
を具備する記憶制御方法。
100 ホストコンピュータ
200 メモリコントローラ
201 ホストインターフェース制御部
203 低速不揮発性メモリインターフェース制御部
204 高速不揮発性メモリインターフェース制御部
210 プロセッサ
211 アクセス制御部
212 移動処理部
220 ROM
230 RAM
240 ECC処理部
250 領域管理テーブル
251 領域定義部
260 アドレス変換テーブル
300 低速不揮発性メモリ
400 高速不揮発性メモリ
500 メモリシステムモジュール

Claims (11)

  1. システムを動作させるためのシステム情報を記憶するシステム領域と第1のメモリのデータを一時的に記憶するキャッシュ領域とを第2のメモリにおいて定義する領域定義部と、
    前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理部と、
    前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御部と
    を具備し、
    前記アクセス制御部は、前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズによりアクセスし、
    前記システム領域のデータアクセスサイズは、前記キャッシュ領域のデータアクセスサイズよりも大きい
    記憶制御装置。
  2. 前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたサイズのデータを単位としてエラー訂正コードを付与してエラー検出訂正処理を行うエラー検出訂正処理部をさらに具備する請求項1記載の記憶制御装置。
  3. 前記システム領域のエラー訂正コードの付与単位のデータサイズは、前記キャッシュ領域のエラー訂正コードの付与単位のデータサイズよりも大きい請求項4記載の記憶制御装置。
  4. 前記アクセス制御部は、前記システム領域に書き込む際のパルス幅を前記キャッシュ領域よりも長くする請求項1記載の記憶制御装置。
  5. 前記アクセス制御部は、前記システム領域に書き込む際の電圧を前記キャッシュ領域よりも高くする請求項1記載の記憶制御装置。
  6. 前記アクセス制御部は、前記システム領域に書き込む際のベリファイ閾値を前記キャッシュ領域よりも厳しくする請求項1記載の記憶制御装置。
  7. 前記アクセス制御部は、前記キャッシュ領域に書き込む際のベリファイ回数を前記システム領域よりも少なくする請求項1記載の記憶制御装置。
  8. 第1のメモリと、
    第2のメモリと、
    システムを動作させるためのシステム情報を記憶するシステム領域と前記第1のメモリのデータを一時的に記憶するキャッシュ領域とを前記第2のメモリにおいて定義する領域定義部と、
    前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理部と、
    前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御部と
    を具備し、
    前記アクセス制御部は、前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズによりアクセスし、
    前記システム領域のデータアクセスサイズは、前記キャッシュ領域のデータアクセスサイズよりも大きい
    記憶装置。
  9. 前記第1および第2のメモリは不揮発性メモリであり、
    前記第2のメモリは前記第1のメモリよりも読出し処理時間が短い
    請求項記載の記憶装置。
  10. 第1のメモリと、
    第2のメモリと、
    システムを動作させるためのシステム情報を記憶するシステム領域と前記第1のメモリのデータを一時的に記憶するキャッシュ領域とを前記第2のメモリにおいて定義する領域定義部と、
    前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理部と、
    前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御部と、
    前記アクセス制御部に対して前記第1または第2のメモリへのアクセス要求を発行するホストコンピュータと
    を具備し、
    前記アクセス制御部は、前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズによりアクセスし、
    前記システム領域のデータアクセスサイズは、前記キャッシュ領域のデータアクセスサイズよりも大きい
    情報処理システム。
  11. システムを動作させるためのシステム情報を記憶するシステム領域と第1のメモリのデータを一時的に記憶するキャッシュ領域とを第2のメモリにおいて定義する領域定義手順と、
    前記キャッシュ領域に記憶されるデータを所定のタイミングで前記第1のメモリに移動する移動処理手順と、
    前記システム領域または前記キャッシュ領域に該当するアクセスについては前記定義に応じて前記第2のメモリにアクセスし、前記システム領域および前記キャッシュ領域以外に該当するリードアクセスについては前記第1のメモリからデータを読み出すアクセス制御手順と
    を具備し、
    前記アクセス制御手順において、前記システム領域および前記キャッシュ領域のそれぞれに対して個別に定められたデータアクセスサイズによりアクセスし、
    前記システム領域のデータアクセスサイズは、前記キャッシュ領域のデータアクセスサイズよりも大きい
    記憶制御方法。
JP2013248860A 2013-12-02 2013-12-02 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 Expired - Fee Related JP6107625B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013248860A JP6107625B2 (ja) 2013-12-02 2013-12-02 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US14/528,586 US9886399B2 (en) 2013-12-02 2014-10-30 Storage control device, storage device, information processing system, and storage control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013248860A JP6107625B2 (ja) 2013-12-02 2013-12-02 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法

Publications (2)

Publication Number Publication Date
JP2015106324A JP2015106324A (ja) 2015-06-08
JP6107625B2 true JP6107625B2 (ja) 2017-04-05

Family

ID=53265444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013248860A Expired - Fee Related JP6107625B2 (ja) 2013-12-02 2013-12-02 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法

Country Status (2)

Country Link
US (1) US9886399B2 (ja)
JP (1) JP6107625B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6901831B2 (ja) * 2015-05-26 2021-07-14 株式会社半導体エネルギー研究所 メモリシステム、及び情報処理システム
JP2018049672A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリシステムおよびプロセッサシステム
US10474473B2 (en) * 2017-04-11 2019-11-12 Intel Corporation Technology to facilitate rapid booting with high-speed and low-speed nonvolatile memory
US11625276B2 (en) * 2021-01-08 2023-04-11 Dell Products L.P. System and method to utilize high bandwidth memory (HBM)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686621A (en) * 1983-06-30 1987-08-11 Honeywell Information Systems Inc. Test apparatus for testing a multilevel cache system with graceful degradation capability
JPH0821238B2 (ja) * 1987-11-12 1996-03-04 三菱電機株式会社 半導体記憶装置
US4945512A (en) * 1988-09-07 1990-07-31 Unisys Corporation High-speed partitioned set associative cache memory
JP2003044358A (ja) * 2001-07-31 2003-02-14 Mitsubishi Electric Corp キャッシュメモリ制御装置
JP2004348464A (ja) * 2003-05-22 2004-12-09 Hitachi Ltd ストレージ装置、及び通信信号の整形回路
TW200504577A (en) * 2003-07-16 2005-02-01 Matsushita Electric Ind Co Ltd Management method for data storage in data recording medium, and information processing device using the same
TW200719470A (en) * 2005-07-11 2007-05-16 Sharp Kk Variable resistance device
JP5002201B2 (ja) * 2006-06-30 2012-08-15 株式会社東芝 メモリシステム
US7557605B2 (en) * 2007-09-14 2009-07-07 Cswitch Corporation Heterogeneous configurable integrated circuit
JP2010102492A (ja) * 2008-10-23 2010-05-06 Hitachi Ltd データアーカイブシステム
KR101042197B1 (ko) * 2008-12-30 2011-06-20 (주)인디링스 메모리 컨트롤러 및 메모리 관리 방법
JP2011198133A (ja) * 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ
JP4838399B2 (ja) * 2010-03-30 2011-12-14 パナソニック株式会社 不揮発性記憶装置及び不揮発性記憶装置への書き込み方法
JP5569936B2 (ja) 2010-08-11 2014-08-13 国立大学法人 東京大学 制御装置およびデータ記憶装置
JP2011258229A (ja) * 2011-08-22 2011-12-22 Toshiba Corp メモリシステム
JP5835040B2 (ja) * 2012-03-19 2015-12-24 富士通株式会社 情報処理システムおよびデータ記録制御方法
CN104246721B (zh) * 2013-03-29 2017-02-22 株式会社东芝 存储系统、存储控制器及存储控制方法
US20150074336A1 (en) * 2013-09-10 2015-03-12 Kabushiki Kaisha Toshiba Memory system, controller and method of controlling memory system

Also Published As

Publication number Publication date
US20150154125A1 (en) 2015-06-04
JP2015106324A (ja) 2015-06-08
US9886399B2 (en) 2018-02-06

Similar Documents

Publication Publication Date Title
US11775178B2 (en) Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
CN108073470B (zh) 执行地址映射表的纠错的存储器系统及其控制方法
JP5853899B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
TWI457756B (zh) 記憶體系統及其操作方法
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US20150205664A1 (en) Determining a configuration parameter using a soft read command
US9666244B2 (en) Dividing a storage procedure
CN114341824B (zh) 用于粗映射存储器子系统的取消映射
US20150058534A1 (en) Managing method for cache memory of solid state drive
KR20240049262A (ko) 메모리 시스템 및 이의 동작 방법
JP6497393B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
US9176811B2 (en) Storage control apparatus, storage apparatus, information processing system, and storage control method
TW202038220A (zh) 記憶體系統及用於控制該記憶體系統的方法
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US20100232048A1 (en) Disk storage device
US20180165032A1 (en) Read write performance for nand flash for archival application
CN112835828A (zh) 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令
WO2013108456A1 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US20190103168A1 (en) Error reducing matrix generation
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
US9928177B2 (en) Managing method for cache memory of solid state drive
KR20220041225A (ko) 메모리 구성요소의 동일한 평면 내에서 데이터 압축
WO2017168905A1 (ja) メモリ制御装置、記憶装置および情報処理システム
US20150254011A1 (en) Memory system, memory controller and control method of non-volatile memory
US10073685B2 (en) Methods of system optimization by over-sampling read

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R151 Written notification of patent or utility model registration

Ref document number: 6107625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees