JP2011118469A - メモリ管理装置およびメモリ管理方法 - Google Patents

メモリ管理装置およびメモリ管理方法 Download PDF

Info

Publication number
JP2011118469A
JP2011118469A JP2009272771A JP2009272771A JP2011118469A JP 2011118469 A JP2011118469 A JP 2011118469A JP 2009272771 A JP2009272771 A JP 2009272771A JP 2009272771 A JP2009272771 A JP 2009272771A JP 2011118469 A JP2011118469 A JP 2011118469A
Authority
JP
Japan
Prior art keywords
memory
data
management device
read
function
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
JP2009272771A
Other languages
English (en)
Inventor
Hiroto Nakai
弘人 中井
Tatsunori Kanai
達徳 金井
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009272771A priority Critical patent/JP2011118469A/ja
Priority to US12/884,601 priority patent/US8589639B2/en
Publication of JP2011118469A publication Critical patent/JP2011118469A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】無駄な停止状態を防止でき、メモリアクセスを効率化できるメモリ管理装置およびメモリ管理方法を提供する。
【解決手段】第1メモリ2と、前記第1メモリのキャッシュメモリとして用いられる第2メモリ4とを、同一のメモリ階層でフラットに管理するメモリ管理装置1であって、前記メモリ管理装置は、アクセス要求先の前記第1メモリのデータが、前記第2メモリに記憶されているか否かを判定し、前記第2メモリに記憶されていなければ、エラーフラグを設定して、エラーデータを発行し、前記第1メモリのアクセスされるデータを、前記第2メモリの空き領域に読み出させ、前記第1メモリから前記第2メモリへのデータ読み出し中の場合、その第1プロセスを待ち状態にさせ、その間に他の実行可能な第2プロセスを実行させる。
【選択図】図1

Description

この発明は、メモリ管理装置およびメモリ管理方法に関する。
従来のMPU(Micro Processing Unit)は、DRAM(Dynamic Random Access Memory)をメインメモリ(主記憶装置)として用いる。また、従来のMPUは、例えば、フラッシュメモリを2次記憶装置として用いる。従来のMPUとフラッシュメモリとは、I/Oインタフェースを介して接続される。フラッシュメモリは、MPUによってファイルメモリとして扱われる。
MPUが2次記憶装置のファイルをアクセスする場合には、従来のオペレーティングシステム(OS)は多くの処理を実行する必要がある。メインメモリの記憶容量の小さい情報処理装置(コンピュータシステム)においては、HDD(ハードディスクドライブ)又はSSD(Solid State Drive)などの2次記憶装置がMPUによってアクセスされる回数が多くなり、プログラムの処理数が増え、処理時間が大きくなる場合がある。
このような問題を解決するために、例えば、モバイル機器等において、NAND型フラッシュメモリと同じ容量のDRAMを用意して、起動時にNAND型フラッシュメモリの全データをDRAMに転送する方式が用いられている。
しかしながら、この方式は安価なNAND型フラッシュメモリと同じ容量分の高価なDRAMを実装する必要があり、例えばモバイル機器などのような小容量のメモリを持つ機器に対しては適用しやすいが、他の記憶容量の大きい装置に対しては適用困難である。
特許文献1(特開平7−146820)には、情報処理装置の主記憶装置としてフラッシュメモリを採用する技術が開示されている。特許文献1において、システムのメモリバスには、揮発性メモリであるキャッシュメモリを介して、フラッシュメモリが接続される。キャッシュメモリには、このキャッシュメモリに格納されているデータのアドレス又はアクセス履歴などの情報を記録するアドレスアレイが設けられる。コントローラは、アクセス先のアドレスを参照し、キャッシュメモリ又はフラッシュメモリのデータをメモリバスに供給し、あるいは、メモリバスのデータを格納する。
特許文献2(特開2001−266580号公報)においては、種類の異なる半導体メモリ装置を共通のバスに接続することを可能にする発明が開示されている。この特許文献2の半導体メモリ装置は、ランダムアクセスメモリチップと、前記ランダムアクセスメモリチップを備えたパッケージを含む。前記パッケージは、前記ランダムアクセスメモリチップを外部装置に電気的に連結する複数のピンを有する。複数のピンは、前記ランダムアクセスメモリと、電気的に消去及びプログラム可能な不揮発性半導体メモリとに、共通にメモリ機能を提供する。前記複数のピンの各々は、不揮発性半導体メモリの対応するピンの位置に配列されている。
しかしながら、上記メモリでは、プロセッサのメモリバスに、アクセス時間の短いメモリ(例えば、DRAM等)と、アクセス時間の長いメモリ(例えば、NAND型フラッシュメモリ等)とが混在して接続される。このため、アクセス時間の長いメモリからデータ読出し等を行っている間は、アクセス時間の短いメモリのデータ読出し等のその他の処理を行うことができない無駄な停止(idle)状態となってしまう。
このように、従来のメモリ管理装置およびメモリ管理方法では、無駄な停止状態が発生し、メモリアクセスの効率化に対して不利である、という傾向がある。
特開平7−146820号公報 特開2001−266580号公報
この発明は、無駄な停止状態を防止でき、メモリアクセスを効率化できるメモリ管理装置およびメモリ管理方法を提供する。
この発明の一態様に係るメモリ管理装置は、第1メモリと、前記第1メモリのキャッシュメモリとして用いられる第2メモリとを、同一のメモリ階層でフラットに管理するメモリ管理装置であって、アクセス要求先の前記第1メモリのデータが、前記第2メモリに記憶されているか否かを判定し、前記第2メモリに記憶されていなければ、エラーフラグを設定して、エラーデータを発行し、前記第1メモリのアクセスされるデータを、前記第2メモリの空き領域に読み出させ、前記第1メモリから前記第2メモリへのデータ読み出し中の場合、その第1プロセスを待ち状態にさせ、その間に他の実行可能な第2プロセスを実行させる。
この発明の一態様に係るメモリ管理装置は、第1メモリと、前記第1メモリのキャッシュメモリとして用いられる第2メモリとを、同一のメモリ階層でフラットに管理し、第1および第2ファンクションスタックを備えるメモリ管理装置であって、変更前に係る前記第1,第2メモリの複数のメモリアクセス要求を、前記第1ファンクションスタックに記憶させ、前記第1ファンクションスタックにスタックされた前記複数のメモリアクセス要求のうち、レイテンシが長い第1ファンクションの第1レイテンシの間に、第1ファンクションよりもレイテンシが短い少なくとも1つの第2ファンクションを行えるように、変更後に係るメモリアクセス要求として、前記複数のファンクションを並べ替えて、前記変更後に係るメモリアクセス要求を、前記第2ファンクションスタックに記憶させる。
この発明の一態様に係るメモリ管理方法は、第1メモリと、前記第1メモリのキャッシュメモリとして用いられる第2メモリとを、同一のメモリ階層でフラットに管理するメモリ管理方法であって、アクセス要求先の前記第1メモリのデータが、前記第2メモリに記憶されているか否かを判定し、前記第2メモリに記憶されていなければ、エラーデータを発行して、エラーフラグを設定し、前記第1メモリのアクセスされるデータを、前記第2メモリの空き領域に読み出させ、前記第1メモリから前記第2メモリへのデータ読み出し中の場合、その第1プロセスを待ち状態にさせ、その間に他の実行可能な第2プロセスを実行させる。
この発明によれば、無駄な停止状態を防止でき、メモリアクセスを効率化できるメモリ管理装置およびメモリ管理方法が得られる。
この発明の第1の実施形態に係るメモリ管理装置を有するフラットメモリの構成例を示すブロック図。 図1中のNAND型フラッシュメモリを構成するブロックを示す等価回路図。 図1中のページテーブルの構成例を示す図。 メモリ管理装置の判定動作を示すフロー図。 DRAMからデータを読み出す場合を説明するためのブロック図。 DRAMからデータを読み出す場合を説明するためのフロー図。 DRAMにデータを書込む場合を説明するためのブロック図。 DRAMにデータを書込む場合を説明するためのフロー図。 NANDからDRAMを介してデータを読み出す場合を説明するためのブロック図。 NANDからDRAMを介してデータを読み出す場合を説明するためのフロー図。 NANDからデータを読み出す場合(直前にNANDにアクセスがない場合)を説明するためのブロック図。 NANDからデータを読み出す場合(直前にNANDにアクセスがない場合)を説明するためのフロー図。 NANDからデータを読み出す場合(直前にNANDにアクセスがある場合)を説明するためのブロック図。 NANDからデータを読み出す場合(直前にNANDにアクセスがある場合)を説明するためのフロー図。 NANDにデータを書込む場合を説明するためのブロック図。 NANDにデータを書込む場合を説明するためのフロー図。 プロセッサ側におけるMMUからのエラーフラグの検出を示すフロー図。 本当でないECCエラーを検出した場合(NANDにRead/Writeを行う場合)の動作を示すタイミングチャート図。 この発明の第2の実施形態に係るメモリ管理装置を有するシステム構成例を示すブロック図。 図19中のフラットメモリの構成例を示すブロック図。 図20中のNAND型フラッシュメモリ(SLC)のメモリ空間を示す図。 NAND型フラッシュメモリのデータ記憶方式(2bit/cell)を示す図。 NAND型フラッシュメモリのデータ記憶方式(高速書込みSLC(低Read disturb耐性))を示す図。 NAND型フラッシュメモリのデータ記憶方式(低速書込みSLC(高Read disturb耐性))を示す図。 NAND型フラッシュメモリのデータ記憶方式(3bit/cell)を示す図。 NAND型フラッシュメモリのデータ記憶方式(4bit/cell)を示す図。 NAND型フラッシュメモリのメモリマップ例を示す図。 図20中のメモリ管理装置(MMU)の構成例を示すブロック図。 変更前の読み出しファンクション要求を示す図。 変更前のレイテンシを示すフロー図。 変更後の読み出しファンクション要求を示す図。 変更後のレイテンシを示すフロー図。 この発明の変形例1に係るメモリ管理装置を示すブロック図。 この発明の変形例2に係るメモリ管理装置を示すブロック図。
以下、この発明の実施形態について図面を参照して説明する。尚、この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
[第1の実施形態]
図1乃至図18を用いて、この発明の第1の実施形態に係るメモリ管理装置およびメモリ管理方法を説明する。
<1.構成例>
1−1.フラットメモリの構成例
まず、図1を用いて、第1の実施形態に係るメモリ管理装置を有する半導体記憶装置(フラットメモリ)の構成例について説明する。
図示するように、半導体記憶装置は、メモリ管理装置(MMU)1,NAND型フラッシュメモリ2,DRAM4,およびプロセッサ3を備える。
メモリ管理装置(MMU:Memory management unit)1は、主記憶メモリとして働くNAND型フラッシュメモリ2と、主記憶メモリ2のキャッシュメモリとして働くDRAM4とに対するメモリアクセスを、フラットな同一のメモリ階層で扱い、総合的に管理する。このように、主記憶メモリ(NAND型フラッシュメモリ2)と、主記憶メモリ2のキャッシュメモリ(DRAM4)とを同一のメモリ階層で扱うことにより、処理の重複を防止することができる。例えば、メモリ管理装置1は、DRAM4の記憶状態を考慮して、NAND型フラッシュメモリ2への記憶状態を決定する等の処理を行うことが可能である。そのため、メモリ管理装置1は、プロセッサ3に対しては、NAND型フラッシュメモリ2とDRAM4とを同一のメモリ階層の一つの巨大なメインメモリとして見せている。また、メモリ管理装置1は、NAND型フラッシュメモリ2およびDRAM4を、ページ単位で管理する。尚、このページサイズは、NAND型フラッシュメモリ2のページサイズに合わせることがより望ましく、NAND型フラッシュメモリ2のページサイズの倍数でも良い。
このように、本例に係る半導体記憶装置は、主記憶メモリ(NAND型フラッシュメモリ2)とキャッシュメモリ(DRAM4)とをフラットな同一のメモリ階層で管理されるため、以下、フラットメモリ(Flat Memory)と称する。
メモリ管理装置(MMU)1は、ページテーブルPT,ラストページ11,エラーフラグ12,ライトバッファ13,エラーデータ14,完了フラグ15を備える。
ページテーブルPTは、例えば、フラグ,DRAMアドレス,NANDアドレス等を有し、1エントリが1論理ページに相当する。その構成については、後述する。
ラストページ11は、NAND型フラッシュメモリ2に対してデータ読み出しを行った場合の、最後のページのアドレスを示すデータである。
エラーフラグ12は、後述するメモリ管理装置の判定動作の際の、ダミーデータによるECCエラーなのか、本当のECCエラーなのかを示すためのエラーフラグである。
ライトバッファ13には、データ書込み動作の際に、アドレスおよび書込みデータが格納される。
エラーデータ14は、後述するECCエラーを発生させるために、プロセッサに読み込まれる(Read)ダミーデータである。
完了フラグ15は、NAND型フラッシュメモリ2上のデータを読み出してキャッシュメモリ(DRAM)に転送が完了したことを、メモリ管理装置1がプロセッサ3(OS)に対して示すためのフラグである。詳細については、後述する。
NAND型フラッシュメモリ2は、データを不揮発に記憶する主記憶メモリとして働く。NAND型フラッシュメモリ2は、メモリセルアレイ(Memory Cell Array)21、データキャッシュ(Data Cache)22を備える。メモリセルアレイ21は、複数のブロック(Block)から構成されるプレーン(Plane)を有する。詳細についは、後述する。尚、NAND型フラッシュメモリ2は、2値メモリ(SLC:Single level cell)や多値メモリ(MLC:Multi level cell)からなる複数のNAND型フラッシュメモリ(2a〜2c)を備えても良い。
DRAM4は、データを揮発的に記憶し、主記憶メモリ(NAND型フラッシュメモリ2)のキャッシュメモリとして働く。
プロセッサ3は、メモリバス9を介して、メモリ管理装置1を制御する。プロセッサ3は、本例では、複数のプロセッサ(3a〜3c)を有するマルチプロセッサ構成であるが、これに限られず、単一のプロセッサからなるシングルプロセッサであって適用可能である。
1−2.ブロックの構成例
次に、図2を用いて、NAND型フラッシュメモリが有するブロック(Block)の構成例ついて説明する。
図示するように、ここでは、1つのブロックBlockを例に挙げて説明する。また、このブロックBlock中のメモリセルトランジスタMTは、一括して消去される。即ち、ブロックは消去単位である。
図示するように、ブロックBlockは、ワード線方向(WL方向)に配置された複数のメモリセル列(メモリセルユニット)MUから構成される。メモリセル列MUは、電流経路が直列接続される64個のメモリセルトランジスタMTおよび2個のダミーセルDMTからなるNANDストリングと、NANDストリングの一端に接続される選択ランジスタS1と、NANDストリングの他端に接続される選択トランジスタS2とから構成される。尚、本例では、NANDストリングは、64個のメモリセルMTから構成されるが、2つ以上のメモリセルから構成されていればよく、特に、この個数に限定されるというものではない。
選択トランジスタS2の電流経路の他端はビット線BLに接続され、選択トランジスタS1の電流経路の他端はソース線SLに接続される。
ワード線WL0〜WL63およびダミーワード線DWLは、WL方向に延び、WL方向の複数のメモリセルトランジスタMTおよびダミーセルDMTに共通に接続される。セレクトゲート線SGDは、WL方向に延び、WL方向の複数の選択トランジスタS2に共通に接続される。セレクトゲート線SGSも、WL方向に延び、WL方向の複数の選択トランジスタS1に共通に接続される。
ワード線WL0〜WL63ごとに、ページ(Page)と称する単位を構成する。例えば、図中の破線で囲って示すように、ワード線WL0には、1ページ(Page0)が割り当てられている。このページごとに読み出し動作、書き込み動作が行われるため、ページは読み出し単位であり、書き込み単位である。尚、1つのメモリセルに複数ビットのデータを保持可能な多値メモリセルの場合は、1つのワード線に複数ページが割り当てられる。
メモリセルMTは、ビット線BLとワード線WLとの交差位置にそれぞれ設けられ、半導体基板上に順次、トンネル絶縁膜、電荷蓄積層としての浮遊電極FG、ゲート間絶縁膜、及び制御電極CGが設けられた積層構造である。メモリセルMTの電流経路であるソース/ドレインは、隣接するメモリセルMTのソース/ドレインに直列接続されている。電流経路の一端は選択トランジスタS2を介してビット線BLに接続され、電流経路の他端は選択トランジスタS1を介してソース線SLに接続される。また、メモリセルMTのそれぞれは、積層構造の側壁上に沿って設けられたスペーサ、及び上記積層構造を挟むように半導体基板(Si基板(Si−sub)またはPウェル)中に設けられたソース/ドレインを備えている。
選択トランジスタS1、S2は、ゲート絶縁膜、ゲート間絶縁膜、ゲート電極を備えている。選択トランジスタS1、S2のゲート間絶縁膜は、その中央が分離され、その上下層が電気的に接続するように設けられている。選択トランジスタS1、S2は、同様に、ゲート電極の側壁上に沿って設けられたスペーサ、及びゲート電極を挟むように半導体基板中に設けられたソース/ドレインを備えている。
1−3.ページテーブルの構成例
次に、図3を用いて、第1の実施形態に係るメモリ管理装置が有するページテーブルの構成例ついて説明する。
図示するように、本例に係るページテーブルPTは、フラグ,DRAMアドレス,NANDアドレスを有する。
フラグは、その論理ページに対応する物理ページの種類を示す。
フラグ”E”は、未使用(物理ページが割り当てられていない)を示す。フラグ”D”はDRAM上(例えば、DRAMアドレスD1)にページがあることを示す。フラグ”N”はNAND上(例えば、NANDアドレスN1)にページがあることを示す。フラグ”DN”はNAND上(例えば、NANDアドレスN2)のページをDRAM(例えば、DRAMアドレスD2)にキャッシュ中であることを示す。フラグ”DW”はNANDからキャッシュしたDRAM上(例えば、DRAMアドレスD3)のデータを書換えたことを示す。
上記のように、DRAMアドレスには、フラグ”D”、”DN”、”DW”のときに、対応するDRAM上のアドレス(D1〜D3)が格納される。
NANDアドレスには、フラグ”N”、”DN”のときに、対応するNAND上のアドレス(N1,N2)が格納される。
尚、本例のページテーブルの構成では、DRAMアドレスとNANDアドレスの欄を使用しない場合が多いので、冗長となっている。また、ページテーブルPTは、メモリ管理装置(MMU)1中の専用メモリに設けられていても良い。ページテーブルPTは、メモリ管理装置(MMU)1に接続されるDRAM4の一部に設けられていても良い。さらに、ページテーブルPTは、通常の仮想記憶のページテーブルのように、多段構成としても良く、この場合には必要なメモリ容量を削減できる点で有効である。
<2.メモリ管理動作>
次に、図4乃至図16を用いて、第1の実施形態に係るメモリ管理装置のメモリ管理動作について説明する。
2−0.プロセッサがアクセスしたいデータがDRAM上にあるか否かの判定
まず、図4を用いて、メモリ管理装置(MMU)1による、データがDRAM4上にあるか否かの判定動作について説明する。
(ST0−1)
図示するように、まず、メモリ管理装置1は、プロセッサ3がアクセスしたいデータがDRAM4にあるか否かを判定する。
これは、プロセッサ3がアクセスしたいデータが、DRAM4に格納されている場合には、当該データに速くアクセスすることができる。
しかしながら、NAND型フラッシュメモリ2にデータ格納されている場合には、メモリセルアレイ21から読み出したデータをデータキャッシュ22にコピーする必要があるため、当該データにアクセスする時間が増大する。そのため、このステップST0−1の際に、プロセッサ3がアクセスしたいデータが、DRAN4かNAND型フラッシュメモリ2かのいずれかに格納されているかを判定する。
(ST0−2)
続いて、上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがDRAM4に格納されている場合(Yes)、メモリ管理装置1は、(後のステップST0−3の際のECCエラーを発行することなく)通常の制御により、DRAM4から当該データを読み出す。
(ST0−3)
続いて、上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがDRAM4に格納されていない場合(No)、メモリ管理装置1は、当該データがNAND型フラッシュメモリ2にデータ格納されていると判定し、エラーフラグ12を設定する。
(ST0−4)
続いて、メモリ管理装置1は、ダミーデータ(ECCエラー)14を、プロセッサ3に発行する。
尚、ダミーデータ(ECCエラー)14を読み出したプロセッサ3は、エラーフラグ12を設定し、(ダミーでない)本当のECCエラーか否かを判定した後、プロセス1(例えば、NAND型フラッシュメモリ2上のデータが必要なプロセス)を待ち状態(WAIT)とし、NAND型フラッシュメモリ2上のデータを読み出している間において重複して実行可能なプロセス2(RUNNABLE)(例えば、NAND型フラッシュメモリ2上のデータが必要でないプロセス)に切り替えて実行する。詳細については後述する。
以下、2−1〜2−6において、上記判定動作後における、NAND型フラッシュメモリ2およびDRAM4に対する種々の動作について、詳細に説明する。
2−1.DRAMからデータを読み出す場合
まず、図5および図6に則して、DRAM4からデータを読み出す場合のメモリ管理装置(MMU)1による、データ読出し動作について説明する。この動作は、上記判定動作の上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがDRAM4に格納されている(Yes)と判定された場合に、行われる。
(ST1−1)
図示するように、メモリ管理装置1は、プロセッサ3によるDRAM4からのデータ読出し命令(READ)を受ける。
(ST1−2)
続いて、メモリ管理装置1は、上記READを受け、ページテーブルPTを確認する。ページテーブルPTを確認すると、フラグが上記のようにフラグ”D”,”DN”,”DW”であるかを判定することで、対応する物理ページが、DRAM4上にあることを確認することができる。
(ST1−3)
続いて、メモリ管理装置1は、DRAM4から当該データを読み出す(READ)。
(ST1−4)
続いて、メモリ管理装置1は、DRAM4から読み出した当該データを、プロセッサ3に転送する。
2−2.DRAMにデータを書込む場合
次に、図7および図8に則して、DRAM4にデータを書込む場合のメモリ管理装置(MMU)1による、データ書き込む動作について説明する。この動作は、上記判定動作の上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがDRAM4に格納されている(Yes)と判定された場合に、行われる。
(ST2−1)
図示するように、メモリ管理装置1は、プロセッサ3によるDRAM4にデータを書込む命令(WRITE)を受ける。
(ST2−2)
続いて、メモリ管理装置1は、上記WRITEを受け、ページテーブルPTを確認する。ページテーブルPTを確認すると、フラグが上記のようにフラグ”D”,”DN”,”DW”であるかを判定することで、対応する物理ページが、DRAM4上にあることを確認することができる。
(ST2−3)
続いて、メモリ管理装置1は、フラグが”DN”の場合には、フラグ”DW”に変更し、対応するNAND型フラッシュメモリ2の物理ページを解放する。
(ST2−4)
続いて、メモリ管理装置1は、DRAM4に対応するデータを書込む。
2−3.NANDからDRAMを介してデータを読み出す場合
次に、図9および図10に則して、NAND型フラッシュメモリ2からDRAM4を介して(DRAMにキャッシュして)データを読み出す場合のメモリ管理装置(MMU)1による動作について説明する。この動作は、上記判定動作の上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがNAND型フラッシュメモリ2上に格納されている(No)と判定された場合に、行われる。
(ST3−1)
図示するように、メモリ管理装置1は、プロセッサ3によるNAND型フラッシュメモリ2からのデータ読出し命令(READ)を受ける。
(ST3−2)
続いて、メモリ管理装置1は、上記READを受け、ページテーブルPTを確認する。ページテーブルPTを確認すると、フラグが上記のようにフラグ”N”であるかを判定することで、対応する物理ページが、NAND型フラッシュメモリ2上にあることを確認することができる。
(ST3−3)
続いて、メモリ管理装置1は、プロセッサ3のアクセスを止めるためのダミーのECCエラー発生を示すようにエラーフラグ12をセットし、完了フラグ14をリセットする。
(ST3−4)
続いて、メモリ管理装置1は、ECCエラーを発生させるエラーデータ14を、プロセッサ3に読み込み(READ)させる。
(ST3−5)
続いて、メモリ管理装置1は、NAND型フラッシュメモリ2中に記憶されるプロセッサ3の読み出し要求に係る当該データを、メモリセルアレイ21から読み出す。
(ST3−6)
続いて、メモリ管理装置1は、NAND型フラッシュメモリ2のメモリセルアレイ21から読み出した当該読み出したページデータを、データキャッシュ21に読み出す。
(ST3−7)
続いて、メモリ管理装置1は、データキャッシュ21に格納されたページデータを、DRAM4に転送する。
(ST3−8,ST3−9)
続いて、メモリ管理装置1は、ページテーブルPT中のフラグ”N”をフラグ”DN”に書き換え、DRAM4のアドレスを書き込む。
続いて、メモリ管理装置1は、完了フラグ15をセットする。
2−4.NANDからデータを読み出す(直前にNANDアクセスなし)場合
次に、図11および図12に則して、NAND型フラッシュメモリ2からデータを読み出す(直前にNANDアクセスなし)場合のメモリ管理装置(MMU)1による動作について説明する。この動作は、上記判定動作の上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがNAND型フラッシュメモリ2上に格納されている(No)と判定された場合に、行われる。
(ST4−1)
図示するように、メモリ管理装置1は、プロセッサ3によるNAND型フラッシュメモリ2からのデータ読出し命令(READ)を受ける。
(ST4−2)
続いて、メモリ管理装置1は、上記READを受け、ページテーブルPTを確認する。ページテーブルPTを確認すると、フラグが上記のようにフラグ”N”であるかを判定することで、対応する物理ページが、NAND型フラッシュメモリ2上にあることを確認することができる。
(ST4−3)
続いて、メモリ管理装置1は、対応するNAND型フラッシュメモリ2の物理ページのアドレスとラストページ11を比較し、これらが”異なる”ことで、直前にNAND型フラッシュメモリ2にアクセスがなかったことを確認する。
(ST4−4)
続いて、メモリ管理装置1は、プロセッサ3のアクセスを止めるためのダミーのECCエラー発生を示すようにエラーフラグ12をセットし、完了フラグ14をリセットし、対応するNAND型フラッシュメモリ2の物理ページのアドレスをラストページ11に記録する。
(ST4−5)
続いて、メモリ管理装置1は、ECCエラーを発生させるエラーデータ14を、プロセッサ3に読み込み(READ)させる。
(ST4−6)
続いて、メモリ管理装置1は、NAND型フラッシュメモリ2中に記憶されるプロセッサ3の読み出し要求に係る当該データを、メモリセルアレイ21から読み出す。
(ST4−7)
続いて、メモリ管理装置1は、NAND型フラッシュメモリ2のメモリセルアレイ21から読み出した当該読み出したページデータを、データキャッシュ21に読み出す。
(ST4−8)
続いて、メモリ管理装置1は、完了フラグ15をセットする。
2−5.NANDからデータを読み出す(直前にNANDアクセスあり)場合
次に、図13および図14に則して、NAND型フラッシュメモリ2からデータを読み出す(直前にNAND型フラッシュメモリ2にアクセスあり)場合のメモリ管理装置(MMU)1による動作について説明する。この動作は、上記判定動作の上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがNAND型フラッシュメモリ2上に格納されている(No)と判定された場合に、行われる。
(ST5−1)
図示するように、メモリ管理装置1は、プロセッサ3によるNAND型フラッシュメモリ2からのデータ読出し命令(READ)を受ける。
(ST5−2)
続いて、メモリ管理装置1は、上記READを受け、ページテーブルPTを確認する。ページテーブルPTを確認すると、フラグが上記のようにフラグ”N”であるかを判定することで、対応する物理ページが、NAND型フラッシュメモリ2上にあることを確認することができる。
(ST5−3)
続いて、メモリ管理装置1は、対応するNAND型フラッシュメモリ2の物理ページのアドレスとラストページ11を比較し、これらが”同じ”ことで、直前にNAND型フラッシュメモリ2の同じページにアクセスがあったことを確認する。
(ST5−4)
続いて、メモリ管理装置1は、NAND型フラッシュメモリ2のデータキャッシュ22の指定した位置から、データの読み出しを指示する。
(ST5−5)
続いて、メモリ管理装置1は、NAND型フラッシュメモリ2のデータキャッシュ22から読み出した当該データを、プロセッサ3に転送する。
2−6.NANDにデータを書込む場合
次に、図15および図16に則して、NAND型フラッシュメモリ2にデータを書込む場合のメモリ管理装置(MMU)1による動作について説明する。この動作は、上記判定動作の上記ステップST0−1の際に、プロセッサ3がアクセスしたいデータがNAND型フラッシュメモリ2上に格納されている(No)と判定された場合に、行われる。
(ST6−1)
図示するように、メモリ管理装置1は、プロセッサ3によるNAND型フラッシュメモリ2へのデータ書込み(WRITE)命令を受ける。
(ST6−2)
続いて、メモリ管理装置1は、上記WRITEを受け、ページテーブルPTを確認する。ページテーブルPTを確認すると、フラグが上記のようにフラグ”N”であるかを判定することで、対応する物理ページが、NAND型フラッシュメモリ2上にあることを確認することができる。
(ST6−3)
続いて、メモリ管理装置1は、書き込むアドレスとデータを、ライトバッファ13に格納する。ライトバッファ13に格納されたWRITE要求は、後で(非同期に)NAND型フラッシュメモリ2に書き込まれる。
<3.プロセッサおよびフラットメモリ全体の動作>
次に、図17および図18を用い、プロセッサ3およびフラットメモリ全体の動作について説明する。
3−1.プロセッサ3のメモリ管理装置1から送信されるエラーフラグの検出
まず、図17に則して、プロセッサ3の動作について説明する。
(ST7−1)
図示するように、まず、プロセッサ3は、ECCエラー割込みを受けると、メモリ管理装置(MMU)1から送信された上記エラーフラグ12を読み出す。
(ST7−2)
続いて、プロセッサ3は、エラーフラグを参照することによって、上記読み出したエラーデータが、本当のECCエラーか否かを判定する。
(ST7−3)
続いて、プロセッサ3は、上記ステップST7−2の際、上記読み出したエラーデータが本当のECCエラーであると判定した場合(Yes)、には通常のECCエラー処理を行う。具体的には、プロセッサ3は、受信したECCデータに基き、誤り訂正を行う。
(ST7−4)
続いて、プロセッサ3は、上記ステップST7−2の際、上記読み出したエラーデータが本当のECCエラーでない場合(No)、現在実行しているプロセス1(例えば、NAND型フラッシュメモリ2の読み出しデータが必要なプロセス等)を待ち状態(WAIT)とする。
(ST7−5)
続いて、プロセッサ3は、その間に他の実行可能なプロセス2(例えば、NAND型フラッシュメモリ2の読み出しデータが必要でないプロセス等)にディスパッチする。
(ST7−6)
続いて、プロセッサ3は、メモリ管理装置(MMU)1の完了フラグ15を読み出す。
(ST7−7)
続いて、プロセッサ3は、完了フラグ15が設定(セット)されているか否かを判定する。完了フラグ15が設定(セット)されていない場合(No)、上記ステップST7−6に戻る。
(ST7−8)
続いて、上記ステップST7−7の際の完了フラグ15が設定(セット)されていると判定された場合(Yes)、プロセッサ3は、待ち状態(WAIT)にした、上記プロセスを実行可能状態にする。
3−2.ダミーECCの場合のフラットメモリ全体の動作
次に、図18に則して、メモリ管理装置1がダミーECCを発行した場合の、フラットメモリ全体の動作について説明する。この説明では、上記ステップST7−2の際、プロセッサ3が、上記読み出したエラーデータが本当のECCエラーでない(No)と判定した場合のフラットメモリの動作である。また、本例のプロセッサ3は、少なくとも2つのプロセス1,2を実行可能な2つのプロセッサ3a,3bを備えるマルチプロセッサを一例に挙げる。マルチプロセッサに限らず、複数のプロセスを実行可能なシングルプロセッサでも良い。
まず、時刻t0の際、プロセッサ3aはプロセス1(例えば、DRAM4からのデータ読み出し(上記ステップST1−1〜ST1−4等))を実行(RUN)する状態であり、プロセッサ3bはプロセス2を実行可能(RUNNABLE)な状態である。
続いて、時刻t1の際、即ち、プロセス1の要求を受けたメモリ管理装置1が、NAND型フラッシュメモリ2上のデータ読み出し(read)を行おうとする際、メモリ管理装置1は、ECCエラーを発生するダミーデータ14をプロセッサ3に転送し、プロセッサ3上のOSがそれを受ける。
続いて、時刻t2の際、ダミーデータ14を受けたOSは、プロセス1を待ち状態(WAIT状態)にし、実行可能(RUNNABLE)なプロセス2(例えば、DRAM4からのデータ読み出し(上記ステップST1−1〜ST1−4等))に切り替える。
一方、この際、メモリ管理装置1は、切り替えられたプロセス2と同時に並行して、NAND型フラッシュメモリ2からのデータ読み出し((上記ステップST4−1〜ST4−8、上記ステップST5−1〜ST5−8等))を行うように制御する。
続いて、時刻t3の際、この例では、プロセス2が完了すると、システムコールをOSに送信する。
続いて、時刻t4の際、システムコールを受けたOSは、メモリ管理装置の完了フラグ15を確認する。
続いて、時刻t4の際、完了フラグ15を確認したOSは、完了を確認すると、待ち状態(WAIT状態)としていた、プロセス1を再び実行状態(RUN)とする。
<他の方法>
尚、メモリ管理装置1が、プロセッサ3にプロセスが完了したことを通知する方法は、本例の場合に限られず、例えば、以下のような他の方法が適応可能である。
他の方法1:NAND型フラッシュメモリ2からDRAM4への転送完了時に、メモリ管理装置1が、プロセッサ3に割込みで通知する。
他の方法2:NAND型フラッシュメモリ2からDRAM4への転送に要する時間後に、プロセッサ3のタイマ割込みをセットしておき、割込みがかかったら、メモリ管理装置1の完了フラグ15をチェックする。
<4.作用効果>
上記のように、第1の実施形態に係るメモリ管理装置およびメモリ管理方法によれば、少なくとも下記(1)の効果が得られる。
(1)無駄な停止状態を防止でき、メモリアクセスを効率化できる点で有利である。
上記のように、第1の実施形態に係る半導体記憶装置(フラットメモリ)は、プロセッサ3のメモリバス9に、(アクセス時間の短い)速いメモリDRAM4(MRAMなどでも良い)と、(アクセス時間の長い)遅いメモリNAND型フラッシュメモリ2とが混在して接続される。
ここで、アクセス時間は、例えば、DRAM4では、数十〜数百ns程度であり、NAND型フラッシュメモリ2では、数十〜数百μs程度である。このように、アクセス時間が早いメモリと遅いメモリとの間に、1000倍程度のアクセス時間の違いがある。より具体的には、NAND型フラッシュメモリ2のメモリセルアレイ21からデータキャッシュ22に対応するページデータを読み出す動作に、特にアクセス時間が必要である。
プロセッサ3が、アクセス時間が遅いメモリ2からデータを読み出している間は、メモリバス9あるいはメモリ管理装置1はこの動作に占有されてしまうため、速いメモリ2へのアクセスもできず、この間は無駄な停止状態となってしまう。
そこで、第1の実施形態に係るメモリ管理装置1では、以下に示す制御を行う。
(I)プロセッサ3がアクセスしたいデータがDRAM2にある場合(ST0−2)には、DRAM2にデータ読み出し/データ書込みを行う(ST1−1〜ST1−4,ST2−1〜ST2−4)。
(II)プロセッサ3がアクセスしたいデータが、NAND型フラッシュメモリ2上にある場合は、
(i)ダミーデータによるECCエラーなのか、本当のECCエラーなのかを示すエラーフラグ12を設定する(ST0−3)。
(ii)ECCエラーを起こすダミーデータ14を発行して、プロセッサ3に読ませて、プロセッサ3のアクセスを中止させる(ST0−4)。
(iii)NAND型フラッシュメモリ2の対応するページを、DRAM2上の空きページに読み出す(ST3−7、ST4−7)。
ここで、ECCエラーを検出したプロセッサ3は、エラーフラグ12を見て、本当のエラーかNAND型フラッシュメモリ2からの読み出し中かを知る(ST7−1、ST7−2)。
(iv)NAND型フラッシュメモリ2から読み出し中なら、そのプロセス1を待ち状態(WAIT状態)にして、その間に他の実行可能なプロセス2を実行する(ST7−4、ST7−5)。
(v)NAND型フラッシュメモリ2からDRAM4へ読み出しが終わった頃に、WAIT状態にしていたプロセス1を実行可能にする(ST7−7、ST7−8)。
上記のような構成および動作によれば、ダミーデータ14を受けてプロセス1を待ち状態(WAIT状態)にし、実行可能(RUNNABLE)なプロセス2(例えば、DRAM4からのデータ読み出し(上記ステップST1−1〜ST1−4等))に切り替え、切り替えられたプロセス2と同時に並行して、NAND型フラッシュメモリ2からのデータ読み出し(上記ステップST4−1〜ST4−8、上記ステップST5−1〜ST5−8等)を行うことができる。
その結果、アクセス時間が長いNAND型フラッシュメモリ2からデータを読み出している間であっても、アクセス時間が短い実行可能(RUNNABLE)なプロセス2を行うことができるため、アクセス時間が短いDRAM2へのアクセスも同時に行うことができる。従って、プロセッサ3の無駄な停止状態を防止でき、メモリアクセスを効率化できる点で有利である。
<その他のバリエーション>
上記(1)の効果を得るためには、本例に示した構成または方法に限られるものではなく、種々のバリエーションが適用可能である。例えば、以下の1.〜3.の解決のバリエーションであっても同様に適用でき、同様の効果が得られる。
1.ECCエラーを利用してNAND2へのアクセスを待たせるが、バスエラーなどの割込みを発生させてプロセッサ3に知らせる方法でも良い。この場合も、本当のバスエラーなのかNANDへのアクセス待ちかを判断するためのフラグを用意する必要がある。
2.ECCエラーを使って、NAND2からの読み出し中を知らされたプロセッサ3が、NAND2からDRAM4へのキャッシュ完了を知る方法のバリエーション:
NAND2からDRAM4へのページ転送完了を知らせる「完了フラグ」をMMU1内に用意しておいて、プロセッサ3から読み出せるようにしておき、プロセッサ3は一定のタイミングでフラグを調べて、完了していたらプログラムを再実行する。
NAND2からDRAM4へのページ転送にかかる時間をあらかじめ調べておいて、プロセッサ3はその時間待ってからプログラムを再実行する。
SLCとMLCのように、転送時間の異なる複数のNANDがMMU1につながっている場合は、そのどれから転送するかによって待ち時間を変える。
NAND2からDRAM4へのページ転送が完了したら、それを知らせる割込みをプロセッサ3にかける。
3.また、メモリ管理装置1には、後述するように、SLCとMLCのように、異なる性質の複数のNAND2を接続しても良い。複数のNAND2を接続する際には、ひとつのNANDへのアクセス中に他のNANDにもアクセスできるように、エラーフラグ12と完了フラグ15とラストアドレス11とを各NAND毎に用意する必要がある点に留意する。
[第2の実施形態]
次に、図19乃至図30を用い、この発明の第2の実施形態に係るメモリ管理装置およびメモリ管理方法について説明する。この実施形態は、読み出しスレッドをレイテンシに応じて変更することで、メモリアクセスの効率化する一例に関するものである。この説明において、上記第1の実施形態と重複する部分の詳細な説明を省略する。
<5.構成例>
5−1.システム構成例
まず、図19を用い、第2の実施形態に係るシステム構成例について説明する。
図示するように、本例では、プロセッサ3の1つがCPU3aで、このCPU3aに接続されるメインメモリ(NAND型フラッシュメモリ2、DARAM4)と、その他の周辺デバイス50等を示している。
CPU3aとメモリ管理装置(MMU)1との間は、現在標準のメモリバスであるDDRメモリバス9で接続される。近年このDDRメモリバス9は、例えば3Gbps程度を越えるスピードを実現できる。このMMU1には、DDRタイプのDRAM4と、複数のNAND型フラッシュメモリ2が接続される。CPU3aには、さらにPCIexpressバスが接続されており、このPCIexpressバスに高速のビデオカードを接続することが可能になっている。通常の周辺機器である、モデム(Modem)61やハードディスク(HDD)62、SSD(Solid state drive)63、PCIexpressバスに接続されるPCIexpressカード64などは、サウスブリッジ(South Bridge)コントロールチップ60を介して、CPU3aに接続される。
5−2.フラットメモリの構成例
次に、図20を用い、本例に係るフラットメモリの構成例について説明する。
図示するように、本例では、プロセッサ3a〜3cとして働くMPU(Micro Processing Unit)およびGPU(Graphic processing unit)内に、キャッシュメモリL1、L2が備えられている。最近のMPUでは、L3キャッシュとして、キャッシュメモリL1、L2よりさらに容量の大きなキャッシュメモリを備えているものもあるが、本例ではL1,L2キャッシュを備えたMPU3b,3cを一例として説明する。
一つのGPU3aと二つのMPU3b,3cとによりプロセッサ3としてのMPU部分が構成され、それらがメモリ管理装置MMU(メモリマネージメントユニット)1を介して、メインメモリ(NAND型フラッシュメモリ2、DRAM4)に接続されている。
本例では、メインメモリとして一つのDRAM4と、3つのNAND型フラッシュメモリ2S,2Ma,2Mbが接続されている。NAND型フラッシュメモリ2Sは、SLC(Single level cell)で、他の2つのNAND型フラッシュメモリ2Ma,2Mbは、MLC(Multi level cell)で構成されている。ここで、SLC(2値NAND型フラッシュメモリ)とは、図22B,図22Cに示すように、1のメモリセル(MT)に1ビットデータを記憶可能なNAND型フラッシュメモリセルである。MLC(多値NAND型フラッシュメモリ)とは、図22A,図22D,図22Eに示すように、1のメモリセル(MT)に多ビットデータを記憶可能なNAND型フラッシュメモリセルである。
メモリ管理装置1内のMPU115が、メモリにアクセスする場合、論理アドレスを読み出しまたは書き込み動作のために発行し、メモリ管理装置1がこの論理アドレスを実際のメモリチップの物理アドレスに変換する。本例のメインメモリは前述のDRAM4、SLC-NANDFlash(2S)、MLC-NANDFlash(2Ma,2Mb)から構成されており、どのアドレス空間にデータが書かれるかは、メモリ管理装置1により決定される。
5−3.どのアドレス空間にデータを書くかについてのメモリ管理装置1による決定
次に、図21を用い、どのアドレス空間にデータが書かれるかの決定プロセスについて説明する。本例で扱われるプログラムやデータには、図21に示すように、静的カラーリング情報74を有している。この静的カラーリング情報74は、作成したプログラムやデータがどの程度の頻度で書き込み・消去されるか、またどの程度の頻度で読み出しされるか予想して、プログラマーがプログラムやデータに所定のマトリックス情報の中から前述の予想に基づいて選んだ情報を付加するものである。例えば、メモリ管理装置1は、最初に書き込みを行なう場合、この静的カラーリング情報74に基づき、DRAM領域4に書くか、SLC-NANDFlash(2S)、MLC-NANDFlash(2Ma,2Mb)に書くかを決定する。
WorkMemory116は一時的にプロセッサ3(MPU)が発行したアクセス情報を記憶している。書き込みデータは、Cache DRAM Memory118に一時的に記憶される。メモリ管理装置1内のInformation Resistor117には、例えば、NAND型フラッシュメモリ(2S)の所定の領域に保存された論物変換テーブル73、静的カラーリング情報74、Memory固有情報75、動的カラーリング情報76が、Powerオン後に自動的に転送される。
何度か同じデータについて書き込み・消去・読み出しが行なわれると、静的カラーリング情報74のほかに動的カラーリング情報76も参照して書き込みアドレスが決定される。動的カラーリング情報76は、書き込み・消去・読み出しが行なわれた回数を記憶しておき、Memory固有情報と比較することで静的カラーリング情報73にもとづくアドレスに書き込むか、静的カラーリング情報73と異なる領域に書き込むか判断するために使用される。例えば、静的カラーリング情報73が、書き込み・消去回数1000回を上限とするアクセス範囲を示していても、過去の書き込み・消去回数から見積もられるライフエンドでの書き込み・消去回数が5000回を指し示す場合、静的カラーリング情報73に従ったMLC領域に書かれずに、SLC領域が選択される。また、静的カラーリング情報73が規定されていない場合には、MMU1が動的カラーリング情報76からメインメモリ中のどのチップに書き込まれるか判断する。
5−4.メモリの固有情報
次に、図22A〜図22Eを用い、メモリの固有情報について説明する。Memory固有情報は、本システムを構成するメインメモリが、どのような容量のDRAM4、SLC-NAND Flash(2S)、MLC-NAND Flash(2Ma,2Mb)により構成されているか、またメモリ空間にどのようなメモリが割り付けられているかを示す情報である。
図22Aは、通常の2bit/cellのMLCの閾値分布を表した図である。このような2bit/cellは、例えば1000回の書き換えで10000回までの読み出しが可能であろうと見積もられるプログラムまたはデータが記憶されるアドレス空間としてMemory固有情報に記憶されている。
図22Bは、SLC-NANDフラッシュのうちRead disturb信頼性を犠牲にして高速な書き込みを可能にしたNANDフラッシュメモリの閾値分布を示している。この領域に記憶されるプログラムまたはデータは、読み出しが1000回以下で高速に書き換えが必要なプログラムまたはデータがMemory固有情報として割り付けられる。
図22Cは、SLC-NANDフラッシュのうち書き込み速度を犠牲にしてRead回数が100000回必要と計算されるプログラムまたはデータがMemory固有情報として割り付けられる。
図22Dは、3bit/cellのMLC-NANDフラッシュメモリの閾値分布を示しており、書き換え回数が500回、読み出し回数が1000回以下と見積もられるプログラムまたはデータはこの領域に保存することが可能で、Memory固有情報としてそのような条件が割り付けられる。
図22Eは、4bit/cellのMLC-NANDフラッシュメモリの閾値分布を示しており、書き換え回数が100回、読み出し回数が1000回以下と見積もられるプログラムまたはデータはこの領域に保存することが可能で、Memory固有情報としてそのような条件が割り付けられる。
5−5.メモリマップ例
次に、図23を用い、本例に係るメインメモリのメモリマップ例について説明する。
図23に示すように、DRAM4、SLC-NANDフラッシュ(2S)、MLC-NANDフラッシュ(2Ma,2Mb)をメモリマップに関連付けた場合の一例がされている。
DRAM領域を除いて、NAND Flashメモリ領域は、それぞれ前記メモリ領域のほかに、同じ書き込み方式が採用される冗長Block領域が前記メモリ領域の10%程度割り当てられる。この冗長Block領域は、実使用中にある本体ブロックが不良になった場合に使用されるとともに、あるページデータの書き換えのためそのページが所属するBlockデータが引越しされる場合に必要な冗長領域としても使用される。
本例では、プロセッサ3のMPU(3a〜3c)が発行する仮想アドレス上のメモリに対する読み書きのリクエスト(Function)は、メモリ管理ユニット(MMU)1により、物理アドレスに変換されて、対応する領域のデータにアクセスされる。リクエスト(Function)の並び替えについては、図25〜図28において、後述する。
5−6.メモリ管理装置(MMU)の構成例
次に、図24を用い、第2の実施形態に係るメモリ管理装置(MMU)1の構成例について説明する。図示するように、メモリ管理装置(MMU)1は、MMU制御部31と、MMU I/F回路部32とを備える。
CPUに接続されるDDRメモリバス9は、MMU制御部31内のMPU115に接続される。
MPU115は、DDRメモリバス9を介して、外部CPUが要求するメモリアクセス要求を処理する。メモリアクセス要求は、まずMPU115に接続されたWork Memory116にフェッチされ記憶される。MPU115は、このフェッチされた要求を順にFunction制御部120に転送する。
Function制御部120は、順次メモリアクセス要求をFunctionスタックA(FSA)に記憶させる。この状態が、図25で後述する変更前の状態に相当する。
Function制御部120は、さらにFunctionスタックA(FSA)にスタックされたメモリアクセス要求を、論物変換回路121を介して得られる物理アドレスのカラーリング情報125,126に基づいて並べ替えて、FunctionスタックB(FSB)に記憶させる。この状態が、図27で後述する変更後の状態に相当する。
FunctionスタックA(FSA)に記憶された複数のメモリアクセス情報は、それぞれ静的カラーリング参照情報125、動的カラーリング参照情報126、メモリ固有情報123を、論物変換制御部121が参照することにより、DRAM領域、SLC-NANDフラッシュ領域、MCL(2bit/cell)-NANDフラッシュ領域、MLC(3bit/cell)-NANDフラッシュ領域、MLC(4bit/cell)-NANDフラッシュ領域の何処にかかれるかメモリ処理される前に判断される。
その判断結果に基づき、Function制御部120は、どのFunctionとどのFunctionを並行して実行すれば最適なパフォーマンスになるか決定する。その決定された結果、複数のメモリアクセス要求がFunction制御部120により並べ替えられて、FunctionスタックB(FSB)に記憶される。そして順次FunctionスタックB(FSB)にスタックされた順番でメモリアクセスが処理される。各FunctionスタックB(FSB)がアクセスするアドレスは、すでに論物変換制御部121により決定されており、このアドレス情報と書き込み/読み出し等のFunction要求の情報が、メモリ制御信号発生部124に送られる。
メモリ制御信号発生部124は、アクセスするアドレスや制御信号を、DRAM I/F131か、NAND I/F132に送ると共に、書き込みデータはECC/EDC回路124を介して、DRAM I/F131かNAND I/F132に送られる。
アドレスがDRAM領域を示す場合は、メモリ制御信号発生回路124は、DRAM I/F131に、DDRメモリバスを介して、制御信号と書き込みデータを転送する。この場合、ECC/EDC回路124は、1bitのエラーコレクション、2bitのエラーディテクション回路としてはたらく。これらのECCの訂正能力は接続されるメモリデバイスにより適時最適な数が選択される。
またアドレスがSLC-NANDフラッシュ領域を示す場合は、メモリ制御信号発生回路124は、NAND I/F132に、NANDフラッシュメモリバスを介して、制御信号と書き込みデータを転送する。この場合、ECC/EDC回路127は、8bitのエラーコレクション、9bitのエラーディテクション回路としてはたらく。
さらにアドレスがMCL-NANDフラッシュ領域を示す場合は、メモリ制御信号発生回路124は、NAND I/F132に、NANDフラッシュメモリバスを介して、制御信号と書き込みデータを転送し、ECC/EDC回路127は24bit以上のエラーコレクション回路としてはたらく。
このように、ECC/EDC回路127は、アクセスする対象アドレス領域により、異なるエラーコレクションのパワーを持つ。このことにより、DRAMアクセスの遅延を最小にし、またSLC-NANDフラッシュのアクセス遅延をMLC-NANDフラッシュの遅延より高速化することができ、処理されるカラーリングデータに基づきパフォーマンスを最適化することができる点で有利である。
<6.読出しファンクションの並び替えについて>
次に、図25乃至図28を用い、メモリ管理装置(MMU)1による読み出しファンクション要求の並び替えについて説明する。
6−1.読み出し要求(変更前)
まず、図25および図26を用い、変更前の読み出しファンクション要求およびレイテンシを説明する。
図25に示すように、本例では、7個の読み出し命令(Function1〜Function7)が連続する場合を示している。それぞれの読み出し先が、メモリ管理ユニット(MMU)1により変換され、Function1ではDRAM領域のアドレス空間から所定のデータが読み出され、Function2ではSLC-NANDフラッシュ領域から所定のデータが読み出される。同様に、その後もFunction3でSLC領域、Function4でMLC領域、Function5でDRAM領域、Function6でMLC領域、Function7でDRAM領域のアドレス空間のデータが読み出される。
図26に示すように、それぞれのFunction1〜7が、シーケンシャルに実行される場合、Function1では100nsecのレイテンシでデータを読み出せるが、Function2では20usecもレイテンシがかかる。さらにFunction4のMLC領域からデータを読み出す場合、120usecものレイテンシが必要となり、DRAMの場合と比べて1200倍も遅いスピードでデータが読み出される。
このため、Function5のDRAM4のデータを読み出すまで160.1usecものWaitが必要になる。またSLCやMLC領域のデータ読み出し要求が発生すると、MPUはそのデータが読み出されるまでアイドル状態となり、MPUのパフォーマンスは非常に悪くなる。
そこで、本例では、プロセッサのMPU(3a〜3c)から発行されるFunction命令をメモリ管理ユニット(MMU)1内のFunctionスタックA(FSA)にスタックしており、SLCやMLCの読み出し動作を行なっている間に並行して、DRAM4の読み出し・書き込み動作を行なうことで、パフォーマンスの向上を実現するものである。
6−2.読み出し要求(変更後)
次に、図27および図28を用い、変更後の読み出しファンクション要求およびレイテンシを説明する。
図27に示すように、図中の上部に示すもともとのMPUからの読み出し要求(変更前)を、図27のボックス内に示すように、メモリ管理装置1が並び替える。より具体的には、メモリ管理装置1は、複数のファンクションと、レイテンシが長い第1ファンクション(例えば、read1,read5等)の第1レイテンシの間に、第1ファンクションよりもレイテンシが短い少なくとも1つの第2ファンクション(例えば、read2,read3,read4等)を行えるように、変更後のメモリアクセス要求として、前記複数のファンクションを並べ替える。
より具体的には、図28に示すように、本例の場合、メモリ管理装置1は、レイテンシが長いMLC領域の読み出し(read1)を最初に行なった後、120usecのBusy時間が発生する間に、read2のSLC領域の読み出しを実行する。read2のレイテンシは20usecであり、その後のシーケンシャル読み出しは4kBx20nsec=80usec必要となる。このため、120usecのBusy時間中に、read2の読み出し(80usec+20usec)を終了することができる。
続いて、メモリ管理装置1は、Function3のSLC領域の読み出し(read3)を行なうが、その読み出しのレイテンシは20usecであり、その間にレイテンシ100nsecのDRAM4の読み出し(read4)を並行して行なうことができる。この際の制御は、上記第1の実施形態に示した同様の制御を行う。
続いて、メモリ管理装置1は、MLC領域のデータ読み出し(read5)を行うが、そのレイテンシ120usecの間に、DRAM4のデータ読み出し(read6, read7)を並行して行うことができる。この際の制御は、上記第1の実施形態に示した同様の制御を行う。
このように、本例に係るメモリ管理装置(MMU)1は、MPUが発行するメモリアクセス要求を、変更前のメモリアクセス要求をFunctionスタックA(FSA)にスタッキングさせ、複数のファンクションのうち、レイテンシが長い第1ファンクションの第1レイテンシの間に終了する、第1ファンクションよりもレイテンシが短い少なくとも1つの第2ファンクションが同時に行えるように、複数のファンクションを並べ替える。並び替えたファンクションは、FunctionスタックB(FSB)に記憶され、実行される。
そのため、レイテンシの長いメモリアクセス(第1ファンクション)を実行している間に、レイテンシの短い読み出し処理(第2ファンクション)を並行して行なうことができる。その結果、実行的なメモリアクセスのパフォーマンスを向上することができる点で有利である。
<7.作用効果>
上記のように、第2の実施形態に係るメモリ管理装置およびメモリ管理方法によれば、少なくとも上記(1)と同様の効果が得られる。さらに、第2の実施形態によれば、少なくとも下記(2)に示す効果を得ることができる。
(2)メモリアクセス要求を並び替えることで、メモリ管理装置1のメモリアクセスを最適化でき、プロセッサ3の処理能力を更に向上することができる。
さらに、第2の実施形態に係るメモリ管理装置(MMU)1は、変更前に係るメモリアクセス要求(例えば、図25)をFunctionスタックA(FSA)に記憶させ、FunctionスタックA(FSA)にスタックされたメモリアクセス要求を、論物変換回路121を介して得られる物理アドレスのカラーリング情報125,126に基づいて並べ替えて(より具体的には、例えば、図27に示すように、複数のファンクションのうち、レイテンシが長い第1ファンクション(例えば、read1,read5等)の第1レイテンシの間に、第1ファンクションよりもレイテンシが短い少なくとも1つの第2ファンクション(例えば、read2,read3,read4等)を行えるように、変更後のメモリアクセス要求として、前記複数のファンクションを並べ替えて)、FunctionスタックB(FSB)に記憶させるFunction制御部120を備える。
上記の構成によれば、メモリ管理装置1が受け取る読み出しスレッドを変更することで読み出し効率を上げることが可能となる。オリジナルのスレッドの順番を、多値の読み出しのスレッドの優先順位を上げて先行して実行し、NAND型フラッシュメモリ2のレイテンシの時間を利用して、DRAM4への読み出しスレッドを実行する。マルチプロセッサ3からの読み出し要求のうち、DRAM4読み出しアクセスの結果で、次の処理に進める実行プロセスは、他のプロセッサのNAND2読み出し要求の処理が終了するのを待つことなく、実行することができるため、プロセッサ3の実質的な処理能力を更に向上させることができる点で有利である。
[変形例1(3チャンネル構成の一例)]
次に、図29を用い、変形例1に係るメモリ管理装置およびメモリ管理方法について説明する。この変形例1は、NAND型フラッシュメモリの接続が3チャンネル構成の一例に関するものである。この説明において、上記第2の実施形態と重複する部分の詳細な説明を省略する。
図29に示すように、本例では、メモリ管理装置1に制御されるNAND型フラッシュメモリ2が、3チャンネル同時にアクセスできるように構成されている。
それぞれのチャンネル1〜3は、SLC領域とMLC領域とを有している。
NAND型フラッシュメモリ2へのアクセスが発生した場合、メモリ制御信号発生部124は、3チャンネルのNAND controller135a〜135cに、順次アクセス要求を発行し、それぞれのNAND controller135a〜135cにアクセス要求がフェッチされる。それぞれのアクセス要求は、3つのNAND controller135a〜135cにより並行して処理され、ECC/EDC回路136a〜136cを経由して、それぞれのチャンネル1〜3に接続されるNAND型フラッシュメモリに伝達され、処理される。
本変形例2での書き込み処理は、例えば、3つのMLC領域の書き込み要求と、3つのSLC要求への書き込み要求が発生した場合、Function制御部120は、まず、それぞれのチャンネルのMLC領域の書き込みを優先し、その後3つのSLC領域(2S1〜2S3)の書き込みを、後ろに並べ替える。そして、Function制御部120は、Function制御部120で順番が置き換えられたFunctionのうち、最初の3つのMLCへの書き込み要求は、チャンネル1からチャンネル3のNAND controller135a〜135cにフェッチされる。そしてNAND controller135a〜135cにより、これらの3つの処理が並行して行われる。MLC−NAND型フラッシュメモリ(2Ma1〜2Mb3)の書き込み時間は、1msec程度と長いため、その間そのチップはBusy状態となる。その次の3つのSLC−NAND型フラッシュメモリ(2S1〜2S3)の書き込み要求は、チャンネル1からチャンネル3のNAND controller135a〜135cにフェッチされ実行される。
この結果、先のMLC−NAND型フラッシュメモリ(2Ma1〜2Mb3)書き込みが終了する前に、3つのチャンネルのSLC−NAND型フラッシュメモリ(2S1〜2S3)書き込みを、先に終了することができる。このように、Function制御部120が、3つのNANDチャンネルの書き込み・読み出しレイテンシを考慮して、NAND命令の順番を入れ替え、3チャンネル同時動作を優先して行うことにより、常にNANDフラッシュの並列処理を行うことができ、パフォーマンスを更に向上することができる。
<作用効果>
上記のように、変形例1に係るメモリ管理装置およびメモリ管理方法によれば、少なくとも上記(1)および(2)と同様の効果が得られる。
さらに、変形例1に係るメモリ管理装置1は、NAND型フラッシュメモリの3チャンネル構成に対応するために、MMUI/F回路部32が、3つのNAND controller135a〜135c,ECC/EDC回路136a〜136c,NANDI/F132a〜132cを有する点で、上記第2の実施形態と相違する。
そのため、Function制御部120が、3つのNANDチャンネルの書き込み・読み出しレイテンシを考慮して、NAND命令の順番を入れ替え、3チャンネル同時動作を優先して行うことにより、常にNANDフラッシュの並列処理を行うことができ、パフォーマンスを更に向上することができる点で有利である。
また、必要に応じて、NAND型フラッシュメモリが複数チャンネル構成となった場合に本例を適用することができる。
[変形例2(データ出力の一例)]
次に、図30を用い、変形例2に係るメモリ管理装置およびメモリ管理方法について説明する。この変形例2は、データ出力の場合の一例である。この説明において、上記第2の実施形態と重複する部分の詳細な説明を省略する。
図30に示すように、本例では、DRAM4またはNANDフラッシュメモリ2から、順番が入れ替えられた読み出し要求に対応して所定のアドレスからデータが出力される場合について説明する。
図示するように、メモリチップ(DRAM4またはNANDフラッシュメモリ2)から読み出されたデータは、DRAMI/F131,NANDI/F132を介して、ECC/EDC回路127でエラーがあればコレクションされ、エラーがなければスルーしてMMU制御部31のWork Memory116に記憶される。
前述のように、この読み出されたデータが、ホストプロセッサ3が発行したどの読み出し命令に対応するかは、FunctionスタックA(FSA)とFunctionスタックB(FSB)とを、Function制御部120が参照することにより解読される。
Function制御部120は、Work Memory116にスタックされたデータを、FunctionスタックA(FSA)に記憶されているホストプロセッサ3が発行した読み出し命令の順番に、再び並び直す。
そして、並び直したプロセッサ3が要求した命令の順番で、Work Memory116からDDRメモリバス9を介してホストプロセッサ3に転送する。
この転送が終了した時点で、FunctionスタックA(FSA)およびFunctionスタックB(FSB)に記憶されているメモリアクセス情報が、スタックから消去されクリアされる。
このように、メモリ管理装置1が、実際のメモリアクセスの順番をカラーリング情報、チャンネル情報を含むメモリ領域の情報が格納されたメモリ固有情報をもとに変換してメモリにアクセスし、読み出されたメモリ情報をホストプロセッサ3に転送する場合は、メモリ管理装置1が変換したアクセスの順番でなく、元のホストプロセッサ3のメモリアクセスの順番でメモリ読み出しデータを出力して返す。そのため、データ出力の場合であっても、メモリシステム全体のパフォーマンスを向上させることができる点で有利である。
<作用効果>
上記のように、変形例2に係るメモリ管理装置およびメモリ管理方法によれば、少なくとも上記(1)および(2)と同様の効果が得られる。
さらに、変形例2に係るメモリ管理装置1は、読み出されたメモリ情報をホストプロセッサ3に転送する場合は、メモリ管理装置1が変換したアクセスの順番でなく、元のホストプロセッサ3のメモリアクセスの順番でメモリ読み出しデータを出力して返す。そのため、データ出力の場合であっても、メモリシステム全体のパフォーマンスを向上させることができる点で有利である。
尚、上記各実施例および変形例において、メモリ管理装置1内のプロセッサ3に接続されるWork Memory116は、MMU制御部31内に配置される場合に限られない。例えば、メインメモリであるDRAM領域4の先頭の一部分を使用する場合であっても、同様に適用でき同様の効果を得ることが可能である。
以上、第1,第2の実施形態および変形例1,2を用いて本発明の説明を行ったが、この発明は上記各実施形態および各変形例に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記各実施形態および各変形例には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば各実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも1つが解決でき、発明の効果の欄で述べられている効果の少なくとも1つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
1…メモリ管理装置、2…NAND型フラッシュメモリ、3…(外部)プロセッサ、4…DRAM、PT…ページテーブル、11…ラストページ、12…エラーフラグ、13…ライトバッファ、14…エラーデータ、15…完了フラグ。

Claims (13)

  1. 第1メモリと、前記第1メモリのキャッシュメモリとして用いられる第2メモリとを、同一のメモリ階層でフラットに管理するメモリ管理装置であって、前記メモリ管理装置は、
    アクセス要求先の前記第1メモリのデータが、前記第2メモリに記憶されているか否かを判定し、
    前記第2メモリに記憶されていなければ、エラーフラグを設定して、エラーデータを発行し、
    前記第1メモリのアクセスされるデータを、前記第2メモリの空き領域に読み出させ、
    前記第1メモリから前記第2メモリへのデータ読み出し中の場合、その第1プロセスを待ち状態にさせ、その間に他の実行可能な第2プロセスを実行させる。
  2. 請求項1に記載のメモリ管理装置は、
    前記第1メモリから前記第2メモリへ読み出しが完了すると、その完了を示す完了フラグを設定し、待ち状態にしていた前記第1プロセス1を実行可能にする。
  3. 請求項1または2に記載のメモリ管理装置は、
    アクセス要求先の前記第1メモリのデータが、前記第2メモリに記憶されている場合には、前記エラーデータを発行することなく、その第2メモリに記憶されているデータにアクセスする。
  4. 請求項1乃至3のいずれか1項に記載のメモリ管理装置は、
    前記第1および第2メモリのページテーブルと、前記第1メモリに最後にアクセスしたラストページとを更に備え、
    前記第1メモリから前記第2メモリへのデータ読み出しを行う際、前記ページテーブルを確認することで、アクセス要求先の物理ページが、前記第1メモリ上にあるか否かを判定し、
    対応する前記第1メモリの物理ページと前記ラストページを比較し、直前に前記第1メモリにアクセスされたか否かを更に確認する。
  5. 請求項1乃至4のいずれか1項に記載のメモリ管理装置は、
    第1および第2ファンクションスタックを更に備え、
    変更前に係る前記第1,第2メモリの複数のメモリアクセス要求を、前記第1ファンクションスタックに記憶させ、
    前記第1ファンクションスタックにスタックされた前記複数のメモリアクセス要求のうち、レイテンシが長い第1ファンクションである前記第1プロセスの第1レイテンシの間に、第1ファンクションよりもレイテンシが短い少なくとも1つの第2ファンクションである前記第2プロセスを行えるように、変更後に係るメモリアクセス要求として、前記複数のファンクションを並べ替えて、
    前記変更後に係るメモリアクセス要求を、前記第2ファンクションスタックに更に記憶させる。
  6. 第1メモリと、前記第1メモリのキャッシュメモリとして用いられる第2メモリとを、同一のメモリ階層でフラットに管理し、第1および第2ファンクションスタックを備えるメモリ管理装置であって、前記メモリ管理装置は、
    変更前に係る前記第1,第2メモリの複数のメモリアクセス要求を、前記第1ファンクションスタックに記憶させ、
    前記第1ファンクションスタックにスタックされた前記複数のメモリアクセス要求のうち、レイテンシが長い第1ファンクションの第1レイテンシの間に、第1ファンクションよりもレイテンシが短い少なくとも1つの第2ファンクションを行えるように、変更後に係るメモリアクセス要求として、前記複数のファンクションを並べ替えて、
    前記変更後に係るメモリアクセス要求を、前記第2ファンクションスタックに記憶させる。
  7. 請求項6に記載のメモリ管理装置は、前記第1ファンクションスタックに記憶された書き込みファンクションを、書き込み情報に付加される静的カラーリング情報と,前記第1メモリの特性を記述したメモリ固有情報とを参照して、前記第1または第2メモリのいずれかに行うかを更に決定する。
  8. 請求項6または7に記載のメモリ管理装置は、前記第1メモリにアクセスする場合は書き込みデータにエラー訂正に必要な冗長情報を付加し、前記第2メモリにアクセスする場合は書き込みデータにエラー訂正情報を付加にする。
  9. 請求項8に記載のメモリ管理装置は、前記第1メモリが1のメモリセルに1ビットデータを記憶可能な2値NAND型フラッシュメモリの場合は、書き込みデータに弱いエラー訂正能力に必要な冗長情報を付加し、前記第1のメモリが1のメモリセルに多ビットデータを記憶可能な多値NAND型フラッシュメモリの場合は、書き込みデータに強いエラー訂正能力に必要な冗長情報を更に付加する。
  10. 請求項6乃至9のいずれか1項に記載のメモリ管理装置は、前記第1メモリが1つのインターフェイスに接続可能な複数チャンネル対応の複数の第1メモリインターフェイスを更に備える。
  11. 請求項6乃至10のいずれか1項に記載のメモリ管理装置は、
    実行した前記第1,第2メモリからの読み出しデータを記憶するワークメモリを更に備え、
    前記読み出しデータを外部に転送する際に、
    前記第1,第2ファンクションスタックを再び参照することにより、実行された変更後に係るメモリアクセス要求が、外部が発行した変更前に係るいずれかの命令に対応するかを解読し、
    前記ワークメモリに記憶された読み出しデータを、前記第1ファンクションスタックに記憶されている変更前に係る外部が発行したメモリアクセス要求の順番に再び並び替え、
    前記並び替えられた前記ワークメモリに記憶される読み出しデータを、外部に転送する。
  12. 請求項1乃至11のいずれか1項に記載のメモリ管理装置は、
    前記第1メモリとしての、1のメモリセルに1ビットデータを記憶可能な2値NAND型フラッシュメモリ,または1のメモリセルに多ビットデータを記憶可能な多値NAND型フラッシュメモリと、
    前記第2メモリとしてのDRAMとを、同一のメモリ階層でフラットに管理する。
  13. 第1メモリと、前記第1メモリのキャッシュメモリとして用いられる第2メモリとを、同一のメモリ階層でフラットに管理するメモリ管理方法であって、
    アクセス要求先の前記第1メモリのデータが、前記第2メモリに記憶されているか否かを判定し、
    前記第2メモリに記憶されていなければ、エラーフラグを設定して、エラーデータを発行し、
    前記第1メモリのアクセスされるデータを、前記第2メモリの空き領域に読み出させ、
    前記第1メモリから前記第2メモリへのデータ読み出し中の場合、その第1プロセスを待ち状態にさせ、その間に他の実行可能な第2プロセスを実行させる。
JP2009272771A 2009-11-30 2009-11-30 メモリ管理装置およびメモリ管理方法 Pending JP2011118469A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009272771A JP2011118469A (ja) 2009-11-30 2009-11-30 メモリ管理装置およびメモリ管理方法
US12/884,601 US8589639B2 (en) 2009-11-30 2010-09-17 Memory management unit and memory management method for controlling a nonvolatile memory and a volatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009272771A JP2011118469A (ja) 2009-11-30 2009-11-30 メモリ管理装置およびメモリ管理方法

Publications (1)

Publication Number Publication Date
JP2011118469A true JP2011118469A (ja) 2011-06-16

Family

ID=44069705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009272771A Pending JP2011118469A (ja) 2009-11-30 2009-11-30 メモリ管理装置およびメモリ管理方法

Country Status (2)

Country Link
US (1) US8589639B2 (ja)
JP (1) JP2011118469A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045457A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法
JP2017102903A (ja) * 2015-12-03 2017-06-08 三星電子株式会社Samsung Electronics Co.,Ltd. メモリ管理メカニズムを具備する電子システム
JP2019536165A (ja) * 2016-11-29 2019-12-12 エイアールエム リミテッド タグマッチングコマンドに応答する記憶回路

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US9037931B2 (en) * 2011-12-21 2015-05-19 Advanced Micro Devices, Inc. Methods and systems for logic device defect tolerant redundancy
US10474584B2 (en) * 2012-04-30 2019-11-12 Hewlett Packard Enterprise Development Lp Storing cache metadata separately from integrated circuit containing cache controller
US9244824B2 (en) * 2012-07-05 2016-01-26 Samsung Electronics Co., Ltd. Memory sub-system and computing system including the same
US8832530B2 (en) * 2012-09-26 2014-09-09 Intel Corporation Techniques associated with a read and write window budget for a two level memory system
US10910025B2 (en) * 2012-12-20 2021-02-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Flexible utilization of block storage in a computing system
US9098425B2 (en) 2013-01-10 2015-08-04 International Business Machines Corporation Implementing user mode foreign device attachment to memory channel
JP2014206884A (ja) * 2013-04-15 2014-10-30 株式会社フィックスターズ 情報処理装置、情報処理方法、およびプログラム
US9239804B2 (en) * 2013-10-03 2016-01-19 Advanced Micro Devices, Inc. Back-off mechanism for a peripheral page request log
US9311233B2 (en) 2013-12-12 2016-04-12 International Business Machines Corporation Load-through fault mechanism
US9135184B2 (en) 2013-12-12 2015-09-15 International Business Machines Corporation Load-through fault mechanism
US9606928B2 (en) 2014-08-26 2017-03-28 Kabushiki Kaisha Toshiba Memory system
US10579517B2 (en) * 2018-03-19 2020-03-03 Dell Products, Lp System and method for providing per channel frequency optimization in a double data rate memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689221A (ja) * 1992-04-22 1994-03-29 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおけるメモリ管理方法及び装置
JP2003256275A (ja) * 2002-02-22 2003-09-10 Hewlett Packard Co <Hp> バンク競合決定
JP2005502120A (ja) * 2001-08-29 2005-01-20 アナログ・デバイシズ・インコーポレーテッド キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US377667A (en) * 1888-02-07 Machine for cleaning and separating cranberries
US367460A (en) * 1887-08-02 Edward struensee and otto struensee
US54637A (en) * 1866-05-08 Improvement in cultivators
US53585A (en) * 1866-04-03 Improvement in door-latches
JPH07146820A (ja) 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
KR100383774B1 (ko) 2000-01-26 2003-05-12 삼성전자주식회사 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US7917710B2 (en) * 2006-06-05 2011-03-29 Oracle America, Inc. Memory protection in a computer system employing memory virtualization
JP5032172B2 (ja) 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
JP5224800B2 (ja) 2007-12-21 2013-07-03 株式会社東芝 情報処理装置およびデータ復旧方法
US8275945B2 (en) * 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
CN101673245B (zh) 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
US8296496B2 (en) * 2009-09-17 2012-10-23 Hewlett-Packard Development Company, L.P. Main memory with non-volatile memory and DRAM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689221A (ja) * 1992-04-22 1994-03-29 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおけるメモリ管理方法及び装置
JP2005502120A (ja) * 2001-08-29 2005-01-20 アナログ・デバイシズ・インコーポレーテッド キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
JP2003256275A (ja) * 2002-02-22 2003-09-10 Hewlett Packard Co <Hp> バンク競合決定

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017045457A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法
JP2017102903A (ja) * 2015-12-03 2017-06-08 三星電子株式会社Samsung Electronics Co.,Ltd. メモリ管理メカニズムを具備する電子システム
TWI724036B (zh) * 2015-12-03 2021-04-11 南韓商三星電子股份有限公司 具有記憶體管理機制之電子系統及其操作方法
JP2019536165A (ja) * 2016-11-29 2019-12-12 エイアールエム リミテッド タグマッチングコマンドに応答する記憶回路
JP7049338B2 (ja) 2016-11-29 2022-04-06 アーム・リミテッド タグマッチングコマンドに応答する記憶回路

Also Published As

Publication number Publication date
US20110131366A1 (en) 2011-06-02
US8589639B2 (en) 2013-11-19

Similar Documents

Publication Publication Date Title
JP2011118469A (ja) メモリ管理装置およびメモリ管理方法
US10725835B2 (en) System and method for speculative execution of commands using a controller memory buffer
US10671299B2 (en) Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module
US10790026B2 (en) Non-volatile memory device and system capable of executing operations asynchronously, and operation execution method of the same
US11113198B2 (en) Timed data transfer between a host system and a memory sub-system
US11287992B2 (en) Controller and storage device including controller and nonvolatile memory devices
EP2345037B1 (en) Translation layer in a solid state storage device
US11573742B2 (en) Dynamic data placement for collision avoidance among concurrent write streams
US11669272B2 (en) Predictive data transfer based on availability of media units in memory sub-systems
US11037627B2 (en) Cell block allocation for hybrid dual write
US11698748B2 (en) Memory comprising memory controller configured to determine a logical address of a target zone system and method of operating the memory controller
US11782841B2 (en) Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
JP2011192212A (ja) メモリシステム
WO2018175059A1 (en) System and method for speculative execution of commands using the controller memory buffer
KR20190142416A (ko) 버퍼 상에서 메모리 동작을 제어하기 위한 장치 및 방법
KR20230142795A (ko) Zns 디바이스들에서의 상이한 기입 우선순위화
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US9847136B2 (en) Operating method for host device and memory system including host device and storage device
JP2023553681A (ja) メモリシステムの電力管理
CN115938416A (zh) 多平面存储器装置中并行平面存取期间的余量管理

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120305

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131022