JP2013109419A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2013109419A
JP2013109419A JP2011252001A JP2011252001A JP2013109419A JP 2013109419 A JP2013109419 A JP 2013109419A JP 2011252001 A JP2011252001 A JP 2011252001A JP 2011252001 A JP2011252001 A JP 2011252001A JP 2013109419 A JP2013109419 A JP 2013109419A
Authority
JP
Japan
Prior art keywords
write
data
memory
storage
main memory
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.)
Granted
Application number
JP2011252001A
Other languages
English (en)
Other versions
JP5762930B2 (ja
Inventor
Atsushi Kunimatsu
敦 国松
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 JP2011252001A priority Critical patent/JP5762930B2/ja
Priority to TW101126675A priority patent/TWI521343B/zh
Priority to US13/561,392 priority patent/US9268706B2/en
Priority to CN201210272624.XA priority patent/CN102915208B/zh
Publication of JP2013109419A publication Critical patent/JP2013109419A/ja
Application granted granted Critical
Publication of JP5762930B2 publication Critical patent/JP5762930B2/ja
Priority to US14/965,545 priority patent/US9542117B2/en
Priority to US15/347,528 priority patent/US9870155B2/en
Priority to US15/833,336 priority patent/US10331356B2/en
Priority to US16/440,172 priority patent/US10949092B2/en
Priority to US17/200,111 priority patent/US11537291B2/en
Priority to US18/146,237 priority patent/US11868618B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ホスト装置と半導体記憶装置間のインターフェイスバンド幅を増大させることなく、半導体記憶装置のバッファメモリの容量を低減させる。
【解決手段】ホスト装置は、半導体記憶装置に対するライト要求をライトコマンドとライトコマンドに対応するライトデータに分離し、ライトコマンドを半導体記憶装置に出力し、ライトデータをメインメモリに記憶させる。半導体記憶装置は、ホスト装置から転送されるライトコマンドを受信し、該ライトコマンドの実行時にメインメモリに記憶された該ライトコマンドに対応するライトデータを半導体記憶装置に転送させ、不揮発性半導体メモリに書き込む。
【選択図】図1

Description

本発明の実施形態は、メインメモリを有するホスト装置と、不揮発性半導体メモリを有する半導体記憶装置とを備える情報処理装置に関する。
複数の演算プロセッサが集積されるGPU(Graphical Processing Unit)などで、複数の演算プロセッサ間で一つのメモリを共有するUMA(Unified Memory Architecture)という技術がある。UMAによれば、メモリコストの低減を図ることができる。
特開平10−269165号公報
本発明の一つの実施形態は、ホスト装置と半導体記憶装置間のインターフェイスバンド幅を増大させることなく、半導体記憶装置のバッファメモリの容量を低減させることを目的とする。
本発明の一つの実施形態によれば、情報処理装置は、ホスト装置と、半導体記憶装置とを備える。ホスト装置は、メインメモリと、前記半導体記憶装置に対するライト要求をライトコマンドと前記ライトコマンドに対応するライトデータに分離し、ライトコマンドを前記半導体記憶装置に出力し、ライトデータを前記メインメモリに記憶させる第1の制御部とを備える。前記半導体記憶装置は、不揮発性半導体メモリと、前記ホスト装置から転送される前記ライトコマンドを受信し、該ライトコマンドの実行時に前記メインメモリに記憶された該ライトコマンドに対応するライトデータを半導体記憶装置に転送させ、前記不揮発性半導体メモリに書き込む第2の制御部とを備える。
図1は、情報処理装置の構成例を示すブロック図である。 図2は、ライト処理の際の情報処理装置側の動作例を示すフローチャートである。 図3は、ライト処理の際の半導体記憶装置及び情報処理装置側の動作例を示すフローチャートである。 図4は、リード処理の際の半導体記憶装置及び情報処理装置側の動作例を示すフローチャートである。
(実施形態)
図1に、本実施形態の情報処理装置の構成例を示す。本情報処理装置は、ホスト装置(以下、ホストと略す)10と、ホスト10の記憶装置として機能するメモリシステム(半導体記憶装置)20とを備える。メモリシステム20は、eMMC(Embedded Multi Media Card)規格に準拠した組み込み用途のフラッシュメモリや、SSD(Solid State Drive)などである。情報処理装置は、例えば、パーソナルコンピュータ、携帯電話、撮像装置などである。
メモリシステム20は、不揮発性半導体メモリとしてのNANDフラッシュ21、NANDインタフェース(NANDI/F)24、DMAコントローラ25、バッファメモリ26、ECC回路27、ストレージコントローラ28、ストレージインタフェース(ストレージI/F)29を有する。
NANDフラッシュ21は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有する。個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDフラッシュ21は、データ消去の単位であるブロックを複数配列して構成される。さらに、各ブロックは、複数のページより構成されている。各ページは、データの書き込み及び読み出しの単位である。NANDフラッシュ21は、例えば、複数のメモリチップによって構成される。
NANDフラッシュ21は、ホスト10から送信されるユーザデータ、メモリシステム20の管理情報、ホスト10で使用するOS23を記憶する。
OS23は、ホスト10の制御プログラムとして機能する。
論理物理変換テーブル(L2Pテーブル)22は、ホスト10がメモリシステム20にアクセスする際に使用する論理ブロックアドレス(LBA:Logical block address)と、NANDフラッシュ21内の物理アドレス(ブロックアドレス+ページアドレス+ページ内記憶位置)とを対応づけるアドレス変換情報である。これ以降、NANDフラッシュに記憶されているL2Pテーブル22をL2P本体と呼称する。
NANDI/F24は、ストレージコントローラ28の制御に基づき、NANDフラッシュ21に対してデータおよび管理情報のリード/ライトを実行する。
バッファメモリ26は、NANDフラッシュ21にライトするデータあるいはNANDフラッシュ21からリードされたデータを記憶するためのバッファとして用いられる。また、バッファメモリ26は、ホスト10から入力されるライト要求、リード要求などに関わるコマンドをキューイングするコマンドキュー26aと、後述するホスト10のメインメモリ13にキャッシュされるL2P情報のタグ情報26bを記憶する。例えば、バッファメモリ26は、SRAM又はDRAM等で構成されるが、レジスタ等で構成してもよい。
ECC回路27は、バッファメモリ26から転送されてNANDフラッシュに21にライトすべきデータに対して、ECC処理(誤り訂正処理)におけるエンコード処理を行い、エンコード結果をデータに付加してNANDインタフェース24に出力する。また、ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理(誤り訂正符号を用いた誤り訂正処理)を行い、誤り訂正されたデータをバッファメモリ26に出力する。
DMAコントローラ25は、NANDインタフェース24と、ECC回路27と、バッファメモリ26との間のデータ転送を制御する。なお、ホスト10のストレージインタフェース(ストレージI/F)14内のレジスタ14aとバッファメモリ26との間のデータ伝送を、DMAコントローラ25によって行わせるようにしてもよいが、この実施形態では、レジスタ14aとバッファメモリ26との間のデータ伝送は、ストレージI/F29が行うこととする。
ストレージインタフェース(ストレージI/F)29は、ホスト10と接続するためのインタフェースである。ストレージI/F29は、ホスト10のストレージI/F14内のレジスタ14aとメモリシステム20のバッファメモリ26との間のデータ伝送を制御する機能を有する。
ストレージコントローラ28は、ファームウェアでその機能を実現され、バス30に接続されたメモリシステム20内の各構成要素を統括的に制御する。
メモリシステム20では、論理アドレス(LBA)と物理アドレス(NANDフラッシュ21の記憶位置)との関係は静的に決定されておらず、データの書込み時に動的に関係付けられる。例えば、同じLBAのデータを上書きする場合は、つぎのような処理が行われる。論理アドレスA1にブロックサイズの有効なデータが割当られており、記憶領域としてはNANDフラッシュ21のブロックB1が使用されていたとする。ホスト10から論理アドレスA1のブロックサイズの更新データを上書きするコマンドを受信した場合、NANDフラッシュ21の未使用のフリーブロック(ブロックB2とする)を1個確保し、そのフリーブロックにホスト10から受信したデータを書き込む。その後、論理アドレスA1とブロックB2を関係付ける。その結果、ブロックB2は、内部に有効データを含む、アクティブブロックになり、ブロックB1に保存されたデータは無効になるためブロックB1はフリーブロックとなる。
このように、メモリシステムでは、同じ論理アドレスA1のデータであっても、実際の記録領域として使用されるブロックは書込みの度に変化する。なお、ブロックサイズの更新データ書き込みでは、必ず書き込み先ブロックが変化するが、ブロックサイズ未満の更新データ書き込みでは、同じブロックに更新データが書き込まれることもある。例えばブロックサイズ未満のページデータが更新される場合、当該ブロック内において同じ論理アドレスの旧ページデータが無効化され、新たに書き込まれた最新のページデータが有効ページとして管理される。ブロック内の全データが無効化されると、当該ブロックはフリーブロックとして解放される。
また、メモリシステム20ではブロック整理が実行される。メモリシステムにおいて、データの消去単位(ブロック)と、データの管理単位が異なる場合、NANDフラッシュ21の書き換えが進むと、無効な(最新ではない)データによって、ブロックは穴あき状態になる。このような穴あき状態のブロックが増えると、実質的に使用可能なブロックが少なくなり、NANDフラッシュ21の記憶領域を有効利用できなくなる。そこで、例えば、NAND21のフリーブロックが所定の閾値より少なくなった場合、有効な最新のデータを集めて、違うブロックに書き直すコンパクション、ガベージコレクションなどのブロック整理を実行し、フリーブロックを確保する
また、メモリシステム20では、ページ内の一部セクタの更新を行うときなどには、NANDフラッシュ21の記憶データを読み取って、変更を加えて、NANDフラッシュ21に書き戻すリード・モディファイ・ライト(RMW)を実行する。RMW処理においては、まず、更新セクタを含むページまたはブロックをNANDフラッシュ21からリードし、リードしたデータを、ホスト10から受信したライトデータと統合する。そして、この統合データをNANDフラッシュ21の新たなページまたは新たなブロックに書き込む。
ホスト10は、CPU11、メインメモリインタフェース12、メインメモリ13、ストレージインタフェース(ストレージI/F)14、およびこれらを接続するバス16を備える。メインメモリI/F12は、メインメモリ13をバス16に接続するためのインタフェースである。
メインメモリ13は、CPU11が直接アクセス可能な主記憶装置であり、本例では、DRAM(Dynamic random access memory)を使用する。メインメモリ13は、CPU11が使用する主記憶としての機能の他に、L2Pキャッシュ13a、ライトキャッシュ13bの格納領域として用いられる。また、メインメモリ13は、作業領域13cとしても用いられる。L2Pキャッシュ13aは、メモリシステム20のNANDフラッシュ21に格納されているL2P本体22の一部又は全部である。メモリシステム20のストレージコントローラ28は、メインメモリ13にキャッシュされたL2Pキャッシュ13aとNANDフラッシュ21に格納されているL2P本体22を使用して、NANDフラッシュ21に記憶されているデータにアクセスする際ののアドレス解決を行う。
ライトキャッシュ13bには、ホスト10からメモリシステム20に書き込まれるライトデータが一時的に保存される。作業領域13cは、NANDフラッシュ21にデータを書き込む際の作業領域であり、具体的には、前述したブロックの整理やRMWなどを実行する際に使用される。
ストレージI/F14は、メモリシステム20と接続するためのインタフェースである。ストレージI/F14は、DMAコントローラ15と、レジスタ14aを有する。DMAコントローラ15は、メインメモリ13のL2Pキャッシュ13a、ライトキャッシュ13b、作業領域13cとストレージI/F14内のレジスタ14aとの間でのデータ転送制御を実行する。
CPU11は、ホスト10の動作を制御するプロセッサであり、NANDフラッシュ21からメインメモリ13にロードされるOS23を実行する。OS23にはメモリシステム20を制御するデイバスドライバ23aが含まれる。デバイスドライバ23aは、OS23またはOS23上のアプリケーションからメモリシステム20に対するライト要求を受け付けると、ライト要求をライトコマンドとライトデータに分離する。コマンドには、コマンドの種類(リード、ライトなど)を識別するフィールド、先頭LBAを指定するフィールド、データ長を指定するフィールドなどが含まれる。そして、デバイスドライバ23aは、コマンドはストレージI/F14を介してメモリシステム20に直接送信する。一方、デバイスドライバ23aは、分離したデータについては、メインメモリ13のライトキャッシュ13bに一旦格納する。
図2は、ライト要求を受け付けた際のデバイスドライバ23aの動作手順を示すものである。デバイスドライバ23aは、OS23またはOS23上のアプリケーションからメモリシステム20に対するライト要求を受け付けると、ライト要求をコマンドとデータに分離する(ステップS100)。つぎに、デバイスドライバ23aは、コマンドはストレージI/F14を介してメモリシステム20に直接送信する。また、デバイスドライバ23aは、分離したデータをメインメモリ13のライトキャッシュ13bに一旦格納する(ステップS110)。ライトキャッシュ13bにキャッシュされたデータについては、この後、メモリシステム20のストレージコントローラ28の制御によって、メモリシステム20側に転送される。
図3は、ライトコマンドを受信した際のメモリシステム20側の動作手順を示すものである。ホスト10からメモリシステム20に送信されたライトコマンドは、ストレージI/F29によってバッファメモリ26のコマンドキュー26aにセットされる(ステップS200、S210)。ストレージコントローラ28は、コマンドキュー26aにセットされた当該ライトコマンドの実行順番になり、当該ライトコマンドの実行が可能となると(ステップS220)、ライトコマンドに含まれるLBAが未書き込み状態であるか否かを判定する(ステップS230)。ここで、LBAが未書き込み状態とは、このLBAに対応する有効なデータがNANDフラッシュ21に記憶されていない状態である。
LBAが未書き込み状態であるか否かの判定は、具体的には、例えば以下の手順で行われる。即ち、ストレージコントローラ28は、ライトコマンドに含まれるLBAがタグ情報26bにヒットするか否かを判定し、ヒットしない場合は、NANDフラッシュ21に記憶されているL2P本体22にヒットするか否か判定する。なお、タグ情報26bは、ホスト10のメインメモリ13のL2Pキャッシュ13bにキャッシュされているL2P情報が登録されたデータであり、タグ情報26bを検索することにより、L2Pキャッシュ13bにLBAに対応するL2P情報が格納されているか否か判定することが可能である。
このようにタグ情報26b及びL2P本体22の検索により、LBAがヒットしないと判定された場合(ステップS230:Yes)、ストレージコントローラ28は、ホスト10のDMAコントローラ15に対し、ライトコマンドに対応するライトデータをライトキャッシュ13bから転送するためのデータ転送指令を出力する(ステップS240)。このデータ転送指令を受信したDMAコントローラ15は、メインメモリ13のライトキャッシュ13bに記憶されているライトデータをメインメモリ13のライトキャッシュ13bからストレージI/F14のレジスタ14aに転送する。このレジスタ14aにデータがセットされると、その旨がストレージI/F14からストレージI/F29に通知され、この通知を受けたストレージI/F29は、レジスタ14aにセットされたライトデータをバッファメモリ26に転送する(ステップS250)。
ストレージコントローラ28が、メインメモリ13上のライトキャッシュ13bに記憶されたライトデータの記憶位置を特定できるようにするために、ライトコマンドにメインメモリ13での記憶位置を含ませるようにしてもよい。また、ライトキャッシュ13bをFIFO構造やリングバッファ構造とすることによりストレージコントローラ28がライトデータの記憶位置を特定可能とすることもできる。つまり、ライトデータは、FIFO構造のライトキャッシュ13bに対し、ライトコマンドが発生した順にセットする。ライトコマンドには、データ長が含まれているので、ストレージコントローラ28が、FIFO構造のライトキャッシュ13bの初期アドレスを認識していれば、ライトコマンドを受信する度に、データ長ずつアドレスに加算することで、ライトデータのメインメモリ13上での記憶位置に把握することができる。
ステップS250の処理によってライトデータがバッファメモリ26にセットされると、ストレージコントローラ28はライトデータをECC回路27でECC符号化した後、NANDI/F24を介して、NANDフラッシュのフリーブロックに書き込む(ステップS350)。その後、このフリーブロックにライトコマンドで指定されたLBAを対応付けるようL2Pキャッシュ13a、タグ情報26b、さらにはL2P本体22を更新する(ステップS360)。なお、L2P本体に関しては、NANDフラッシュ21に対する書き込みの度に更新するのではなく、定期的に更新するようにしてもよい。
L2Pキャッシュ13aの更新は次のようにして行われる。ストレージコントローラ28は、バッファメモリ26で新たなL2P情報を作成後、そのタグ情報をバッファメモリ26のタグ情報26bに追加し、ストレージI/F29にその旨を通知し、さらにホスト10のDMAコントローラ15に対しL2P情報を転送するための転送指令を出力する。これにより、ストレージI/F29は、バッファメモリ26で作成された新たなL2P情報をストレージI/F14のレジスタ14aにセットする。DMAコントローラ15は、レジスタ14aにセットされたL2P情報をメインメモリ13に転送し、L2P情報をL2Pキャッシュ13aにキャッシュする。
一方、ステップS230において、ライトコマンドに含まれるLBAがタグ情報26bにヒットする場合(ステップS230:No)、ストレージコントローラ28は、ホスト10のDMAコントローラ15に対しL2P情報の転送指令を出力する。これにより、DMAコントローラ15は、メインメモリ13のL2Pキャッシュ13aに記憶されている、ヒットしたL2P情報をメインメモリ13からストレージI/F14のレジスタ14aに転送する。前述したように、レジスタ14aにデータがセットされると、その旨がストレージI/F14からストレージI/F29に通知され、この通知を受けたストレージI/F29は、レジスタ14aにセットされたL2P情報をバッファメモリ26に転送する。ストレージコントローラ28は、バッファメモリ26に転送されたL2P情報を用いてアドレス解決を行う。
次に、ストレージコントローラ28は、アドレス解決により得られたLBAに対応する物理アドレスに記憶されたデータを含むページまたはブロックをNANDフラッシュ21から読み出してバッファメモリ26に転送させる(ステップS260)。つぎに、ストレージコントローラ28は、ホスト10のDMAコントローラ15に対しライトキャッシュ13bに記憶されているライトデータを転送するためのデータ転送指令を出力する(ステップS270)。このデータ転送指令を受信したDMAコントローラ15は、メインメモリ13のライトキャッシュ13bに記憶されているライトデータをメインメモリ13からストレージI/F14のレジスタ14aに転送する。このレジスタ14aにセットされたデータは、前記と同様にして、ストレージI/F29によってバッファメモリ26に転送される(ステップS280)。
つぎに、ストレージコントローラ28は、NANDフラッシュ21から読み出してバッファメモリ26に書き込んだデータと、ライトキャッシュ13bから転送してバッファメモリ26に書き込んだデータとをバッファメモリ26上で合成する(ステップS290)。この合成が終了すると、ストレージコントローラ28は、その旨をストレージI/F29に通知し、さらにホスト10のDMAコントローラ15に対しデータを転送するための転送指令を出力する(ステップS300)。これにより、ストレージI/F29は、バッファメモリ26で合成されたデータをストレージI/F14のレジスタ14aにセットする。DMAコントローラ15は、レジスタ14aにセットされた合成データをメインメモリ13に転送し、この合成データを作業領域13cに記憶する(ステップS310)。
この後、ストレージコントローラ28は、データの合成処理が終了したか否かを判定し(ステップS320)、データ合成処理が終了していない場合は、ステップS260〜S310の手順をデータ合成処理が終了するまで繰り返す。このようにして、メインメモリ13の作業領域13c上にできるだけ多くのブロック単位のデータを作成する。
ストレージコントローラ28は、データの合成処理が終了すると、ホスト10のDMAコントローラ15に対しメインメモリ13の作業領域13cに記憶されている合成データを転送するためのデータ転送指令を出力する(ステップS330)。このデータ転送指令を受信したDMAコントローラ15は、メインメモリ13の作業領域13cに記憶されている合成データをメインメモリ13からストレージI/F14のレジスタ14aに転送する。このレジスタ14aにセットされたデータは、前記と同様にして、ストレージI/F29によってバッファメモリ26に転送される(ステップS340)。
ステップS340の処理によって合成データがバッファメモリ26にセットされると、ストレージコントローラ28はライトデータをECC回路27でECC符号化した後、NANDI/F24を介して、NANDフラッシュのフリーブロックに書き込む(ステップS350)。その後、このフリーブロックにLBAを対応付け、旧アクティブブロックを無効化するようL2Pキャッシュ13a、タグ情報26b、さらにはL2P本体22を更新する(ステップS360)。
なお、合成処理が、メインメモリ13からバッファメモリ26への1回のデータ転送で終了する場合は、バッファメモリ26で合成したデータをNANDフラッシュ21に直接書き込むようにしてもよい。
図4は、リードコマンドを受信した際のメモリシステム20側の動作手順を示すものである。ストレージI/F29を介してメモリシステム20で受信されたリードコマンドは、ストレージI/F29によってバッファメモリ26のコマンドキュー26aにセットされる。このリードコマンドが実行可能な状態になると、ストレージコントローラ28は、リードコマンドに含まれるLBAがタグ情報26bにヒットするか否かを判定する(ステップS420)。ヒットする場合(ステップS420:Yes)、ストレージコントローラ28は、ホスト10のDMAコントローラ15に対しL2P転送指令を出力する(ステップS430)。これにより、DMAコントローラ15は、メインメモリ13のL2Pキャッシュ13aに記憶されている、ヒットしたL2P情報をメインメモリ13からストレージI/F14のレジスタ14aに転送する。レジスタ14aにセットされたL2P情報は、前記と同様にして、ストレージI/F29によってバッファメモリ26に転送される(ステップS440)。
ストレージコントローラ28は、バッファメモリ26に転送されたL2P情報を用いてアドレス解決を行う。すなわち、ストレージコントローラ28は、LBAに対応付けれた物理アドレスをL2P情報から取得し、取得した物理アドレスに対応するデータをNANDフラッシュ21からリードさせる。ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理を行い、誤り訂正されたデータをバッファメモリ26に出力する。この後、ストレージコントローラ28は、バッファメモリ26に記憶されたリードデータをホスト10に出力する。
一方、ステップS420において、リードコマンドに含まれるLBAがタグ情報26bにヒットしない場合(ステップS420:No)、ストレージコントローラ28は、NANDフラッシュ21に記憶されているL2P本体の一部又は全てをバッファメモリ26にリードして検索する(ステップS460)。LBAがL2P本体でヒットしない場合は、リード処理を終了し、ホスト10にエラーを返信する。ストレージコントローラ28は、LBAがL2P本体でヒットした場合(ステップS470)、ヒットしたL2P情報を用いてアドレス解決を行う。すなわち、ストレージコントローラ28は、LBAに対応付けれた物理アドレスをL2P情報から取得し、取得した物理アドレスに対応するデータをNANDフラッシュ21からリードさせる。ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理を行い、誤り訂正されたデータをバッファメモリ26に出力する。この後、ストレージコントローラ28は、バッファメモリ26に記憶されたリードデータをホスト10に出力する(ステップS480)。
ストレージコントローラ28は、バッファメモリ26に読み出したL2P本体のうちの、リードコマンドに含まれるLBAに対応するL2P情報、あるいはリードコマンドに含まれるLBAを含む周辺LBAに対応するL2P情報をストレージI/F14のレジスタ14aに転送するようストレージI/F29に指令するとともに、ホスト10のDMAコントローラ15に対しL2P情報を転送するための転送指令を出力する。これにより、ストレージI/F29は、バッファメモリ26にバッファリングされているL2P情報をストレージI/F14のレジスタ14aにセットする。DMAコントローラ15は、レジスタ14aにセットされたL2P情報をメインメモリ13に転送し、このL2P情報をL2Pキャッシュにキャッシュする。これに伴い、ストレージコントローラ28は、バッファメモリ26のタグ情報26bを更新する。
なお、メインメモリ13上に形成された作業領域13cは、前述したブロック整理、RMW等を行う際の作業領域としても使用される。また、上記実施形態では、L2Pキャッシュ13aのタグ情報26bをメモリシステム20側で持つこととしたが、タグ情報26bを持たずに、L2Pキャッシュ13aを直接検索するようにしてもよい。また、メモリシステム20のストレージI/F29がレジスタ14aと、バッファメモリ26間のデータ転送を行うこととしたが、ストレージコントローラ28にこのデータ転送を行わせるようにしてもよい。また、メインメモリ13とバッファメモリ26との間で直接データ転送を行わせるようにしてもよい。
このようにこの実施形態においては、ホスト10のメインメモリ13がライトキャッシュ13b及びL2Pキャッシュ13aの格納領域として用いられる。これにより、バッファメモリ26のメモリ容量の低減を図ることができる。さらに、本実施形態では、ライト要求時にライトコマンドとライトデータとを分離し、ライトデータをホスト10のメインメモリ13に記憶し、ライトコマンドをメモリシステムのバッファメモリ26に記憶する。そして、メモリシステム20においてライトコマンドの実行時にホスト10のメインメモリ13からライトデータを読み出し、NANDフラッシュ21に書き込みを行う。これにより、ライトコマンドとライトデータを分離しない場合に比べ、ホスト10とメモリシステム20の間のインターフェイスバンド幅を低減することができる。つまり、ライトコマンドとライトデータを分離しない場合には、ライト要求時にホストからメモリシステムにライトコマンド及びライトデータが転送され、次いでメモリシステムがライトコマンドとライトデータを分離し、分離したライトデータをホスト10のメインメモリ13に転送するという動作になる。この場合、一度のライト要求に対して、ライトデータは、ホスト10とメモリシステム20の間のバスを3回転送されることとなり、インターフェイスバンド幅を増加させてしまう。これに対し、本実施形態の構成によれば、そのような課題を解決できる。
なお、メモリシステムの起動時に、NANDフラッシュ21に記憶されているL2P本体22を、ホストのメインメモリ13にロードするようにしてもよい。また、メモリシステム20側に、L2P情報の一次キャッシュを設け、ホストのメインメモリにL2P情報の二次キャッシュを設ける、一次キャッシュ、二次キャッシュでヒットしない場合に、NANDフラッシュ21に記憶されているL2P本体22を検索するようにしてもよい。
また、この実施形態では、メモリシステム20のストレージコントローラ28が使用する作業領域13cをメインメモリ13上に設けるようにしたので、メモリシステム側での作業領域のためのバッファの容量をおよび専有面積を低減することが可能となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 ホスト装置、、11 CPU、13 メインメモリ、13a L2Pキャッシュ、13b ライトキャッシュ、13c 作業領域、14 ストレージインタフェース、14a レジスタ、15 DMAコントローラ、20 メモリシステム、21 NANDフラッシュ、22 L2P本体、23a デバイスドライバ、25 DMAコントローラ、26 バッファメモリ、26a コマンドキュー、26b タグ情報、27 ECC回路、28 ストレージコントローラ。

Claims (5)

  1. ホスト装置と、半導体記憶装置とを備える情報処理装置において、
    前記ホスト装置は、
    メインメモリと、
    前記半導体記憶装置に対するライト要求をライトコマンドと前記ライトコマンドに対応するライトデータに分離し、ライトコマンドを前記半導体記憶装置に出力し、ライトデータを前記メインメモリに記憶させる第1の制御部と
    を備え、
    前記半導体記憶装置は、
    不揮発性半導体メモリと、
    前記ホスト装置から転送される前記ライトコマンドを受信し、該ライトコマンドの実行時に前記メインメモリに記憶された該ライトコマンドに対応するライトデータを半導体記憶装置に転送させ、前記不揮発性半導体メモリに書き込む第2の制御部
    を備えることを特徴とする情報処理装置。
  2. 前記ホスト装置は、前記メインメモリにアドレス変換情報を保持し、
    前記第2の制御部は、前記ライトコマンドの実行時に、前記メインメモリに保持されたアドレス変換情報を用いて前記ライトコマンドに含まれる論理アドレスを物理アドレスに変換することを特徴とする請求項1に記載の情報処理装置。
  3. 前記ホスト装置は、前記半導体記憶装置に対してリード要求を行い、
    前記第2の制御部は、前記リード要求のリードコマンドの実行時に、前記メインメモリに保持されたアドレス変換情報を用いて前記リードコマンドに含まれる論理アドレスを物理アドレスに変換することを特徴とする請求項2に記載の情報処理装置。
  4. 前記メインメモリに保持されたアドレス変換情報は、前記不揮発性半導体メモリに格納されているアドレス変換情報の一部であることを特徴とする請求項2又は3に記載の情報処理装置。
  5. 前記第2の制御部は、前記メインメモリを、前記不揮発性半導体メモリにデータをライトする際の作業領域として使用することを特徴とする請求項1〜4の何れか一つに記載の情報処理装置。
JP2011252001A 2011-08-01 2011-11-17 情報処理装置および半導体記憶装置 Active JP5762930B2 (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP2011252001A JP5762930B2 (ja) 2011-11-17 2011-11-17 情報処理装置および半導体記憶装置
TW101126675A TWI521343B (zh) 2011-08-01 2012-07-24 An information processing device, a semiconductor memory device, and a semiconductor memory device
US13/561,392 US9268706B2 (en) 2011-08-01 2012-07-30 Information processing device including host device and semiconductor memory device having plurality of address conversion information
CN201210272624.XA CN102915208B (zh) 2011-08-01 2012-08-01 信息处理装置、半导体存储装置及半导体存储装置的控制方法
US14/965,545 US9542117B2 (en) 2011-08-01 2015-12-10 Information processing device including host device and semiconductor memory device having a plurality of address conversion information
US15/347,528 US9870155B2 (en) 2011-08-01 2016-11-09 Information processing device including host device and semiconductor memory device having a block rearrangement to secure free blocks
US15/833,336 US10331356B2 (en) 2011-08-01 2017-12-06 Data writing processing into memory of a semiconductor memory device by using a memory of a host device
US16/440,172 US10949092B2 (en) 2011-08-01 2019-06-13 Memory system with block rearrangement to secure a free block based on read valid first and second data
US17/200,111 US11537291B2 (en) 2011-08-01 2021-03-12 Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
US18/146,237 US11868618B2 (en) 2011-08-01 2022-12-23 Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011252001A JP5762930B2 (ja) 2011-11-17 2011-11-17 情報処理装置および半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2013109419A true JP2013109419A (ja) 2013-06-06
JP5762930B2 JP5762930B2 (ja) 2015-08-12

Family

ID=48706136

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011252001A Active JP5762930B2 (ja) 2011-08-01 2011-11-17 情報処理装置および半導体記憶装置

Country Status (1)

Country Link
JP (1) JP5762930B2 (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015036905A (ja) * 2013-08-14 2015-02-23 ソニー株式会社 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
JP2015511350A (ja) * 2012-01-26 2015-04-16 メモリー テクノロジーズ リミティド ライアビリティ カンパニー 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
JP2016118945A (ja) * 2014-12-22 2016-06-30 ソニー株式会社 メモリコントローラ、記憶装置、および、情報処理システム
JP2016529638A (ja) * 2013-09-10 2016-09-23 クアルコム,インコーポレイテッド エンベデッドメモリへのコマンドキューイングの提供
US9524121B2 (en) 2012-04-27 2016-12-20 Kabushiki Kaisha Toshiba Memory device having a controller unit and an information-processing device including a memory device having a controller unit
US9569303B2 (en) 2014-08-08 2017-02-14 Kabushiki Kaisha Toshiba Information processing apparatus
WO2017072868A1 (ja) * 2015-10-28 2017-05-04 株式会社日立製作所 ストレージ装置
US9983800B2 (en) 2009-06-04 2018-05-29 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10042586B2 (en) 2012-04-20 2018-08-07 Memory Technologies Llc Managing operational state data in memory module
JP2019105873A (ja) * 2017-12-08 2019-06-27 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2019105874A (ja) * 2017-12-08 2019-06-27 東芝メモリ株式会社 情報処理装置および方法
JP2019200664A (ja) * 2018-05-17 2019-11-21 日本電気株式会社 データ転送装置およびデータ転送方法
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
JP2020046963A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 メモリシステムおよび制御方法
JP2022009357A (ja) * 2017-12-08 2022-01-14 キオクシア株式会社 メモリシステムおよび制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021033845A (ja) 2019-08-28 2021-03-01 キオクシア株式会社 メモリシステムおよび制御方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0335313A (ja) * 1989-06-30 1991-02-15 Fujitsu Ltd データ転送方式
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
JP2000003328A (ja) * 1998-06-15 2000-01-07 Nec Ibaraki Ltd 入出力制御装置のアドレス参照システム
JP2000047891A (ja) * 1998-05-29 2000-02-18 Toshiba Corp 計算機システムにおける入出力制御装置及び同システムにおける入出力制御方法並びに同方法がプログラムされ記憶された記憶媒体
JP2001195195A (ja) * 2000-01-14 2001-07-19 Matsushita Electric Ind Co Ltd データ変換装置、データ逆変換装置、及び補助データファイル生成装置
JP2002189572A (ja) * 2000-12-20 2002-07-05 Toshiba Corp ディスク記憶装置、同記憶装置を持つ情報処理機器、及び書き込み失敗時処理方法
JP2002207572A (ja) * 2001-01-09 2002-07-26 Toshiba Corp ディスク制御システムおよびディスク制御方法
JP2003186628A (ja) * 2001-12-18 2003-07-04 Toshiba Corp ディスクアレイ装置及びデータバックアップ方法
JP2008021290A (ja) * 2006-06-15 2008-01-31 Hitachi Ulsi Systems Co Ltd ストレージ装置、ストレージコントローラ、及び情報処理装置
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0335313A (ja) * 1989-06-30 1991-02-15 Fujitsu Ltd データ転送方式
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
JP2000047891A (ja) * 1998-05-29 2000-02-18 Toshiba Corp 計算機システムにおける入出力制御装置及び同システムにおける入出力制御方法並びに同方法がプログラムされ記憶された記憶媒体
JP2000003328A (ja) * 1998-06-15 2000-01-07 Nec Ibaraki Ltd 入出力制御装置のアドレス参照システム
JP2001195195A (ja) * 2000-01-14 2001-07-19 Matsushita Electric Ind Co Ltd データ変換装置、データ逆変換装置、及び補助データファイル生成装置
JP2002189572A (ja) * 2000-12-20 2002-07-05 Toshiba Corp ディスク記憶装置、同記憶装置を持つ情報処理機器、及び書き込み失敗時処理方法
JP2002207572A (ja) * 2001-01-09 2002-07-26 Toshiba Corp ディスク制御システムおよびディスク制御方法
JP2003186628A (ja) * 2001-12-18 2003-07-04 Toshiba Corp ディスクアレイ装置及びデータバックアップ方法
JP2008021290A (ja) * 2006-06-15 2008-01-31 Hitachi Ulsi Systems Co Ltd ストレージ装置、ストレージコントローラ、及び情報処理装置
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US11907538B2 (en) 2008-02-28 2024-02-20 Memory Technologies Llc Extended utilization area for a memory device
US11829601B2 (en) 2008-02-28 2023-11-28 Memory Technologies Llc Extended utilization area for a memory device
US11550476B2 (en) 2008-02-28 2023-01-10 Memory Technologies Llc Extended utilization area for a memory device
US11494080B2 (en) 2008-02-28 2022-11-08 Memory Technologies Llc Extended utilization area for a memory device
US11182079B2 (en) 2008-02-28 2021-11-23 Memory Technologies Llc Extended utilization area for a memory device
US11775173B2 (en) 2009-06-04 2023-10-03 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11733869B2 (en) 2009-06-04 2023-08-22 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US9983800B2 (en) 2009-06-04 2018-05-29 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
JP2015511350A (ja) * 2012-01-26 2015-04-16 メモリー テクノロジーズ リミティド ライアビリティ カンパニー 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
US11797180B2 (en) 2012-01-26 2023-10-24 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11226771B2 (en) 2012-04-20 2022-01-18 Memory Technologies Llc Managing operational state data in memory module
US11782647B2 (en) 2012-04-20 2023-10-10 Memory Technologies Llc Managing operational state data in memory module
US10042586B2 (en) 2012-04-20 2018-08-07 Memory Technologies Llc Managing operational state data in memory module
US9524121B2 (en) 2012-04-27 2016-12-20 Kabushiki Kaisha Toshiba Memory device having a controller unit and an information-processing device including a memory device having a controller unit
JP2015036905A (ja) * 2013-08-14 2015-02-23 ソニー株式会社 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
JP2016529638A (ja) * 2013-09-10 2016-09-23 クアルコム,インコーポレイテッド エンベデッドメモリへのコマンドキューイングの提供
US9569303B2 (en) 2014-08-08 2017-02-14 Kabushiki Kaisha Toshiba Information processing apparatus
JP2016118945A (ja) * 2014-12-22 2016-06-30 ソニー株式会社 メモリコントローラ、記憶装置、および、情報処理システム
WO2017072868A1 (ja) * 2015-10-28 2017-05-04 株式会社日立製作所 ストレージ装置
JP7048289B2 (ja) 2017-12-08 2022-04-05 キオクシア株式会社 情報処理装置および方法
JP7167291B2 (ja) 2017-12-08 2022-11-08 キオクシア株式会社 メモリシステムおよび制御方法
JP2022009357A (ja) * 2017-12-08 2022-01-14 キオクシア株式会社 メモリシステムおよび制御方法
JP2019105873A (ja) * 2017-12-08 2019-06-27 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2019105874A (ja) * 2017-12-08 2019-06-27 東芝メモリ株式会社 情報処理装置および方法
JP7067256B2 (ja) 2018-05-17 2022-05-16 日本電気株式会社 データ転送装置およびデータ転送方法
JP2019200664A (ja) * 2018-05-17 2019-11-21 日本電気株式会社 データ転送装置およびデータ転送方法
JP7091203B2 (ja) 2018-09-19 2022-06-27 キオクシア株式会社 メモリシステムおよび制御方法
JP2020046963A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
JP5762930B2 (ja) 2015-08-12

Similar Documents

Publication Publication Date Title
US11868618B2 (en) Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
JP5762930B2 (ja) 情報処理装置および半導体記憶装置
US8775739B2 (en) Memory system including first and second caches and controlling readout of data therefrom
TWI459201B (zh) Information processing device
JP6021759B2 (ja) メモリシステムおよび情報処理装置
US11762591B2 (en) Memory system and method of controlling nonvolatile memory by controlling the writing of data to and reading of data from a plurality of blocks in the nonvolatile memory
US8825946B2 (en) Memory system and data writing method
JP5836903B2 (ja) 情報処理装置
JP2017503266A (ja) フラッシュメモリ内に記憶されたデータの推測的プリフェッチ
US10235284B2 (en) Memory system
JP7500311B2 (ja) メモリシステム及び情報処理システム
US11074178B2 (en) Memory system and method of controlling nonvolatile memory
US20150339069A1 (en) Memory system and method
JP2013033337A (ja) 情報処理装置及び半導体記憶装置
US9329994B2 (en) Memory system
US20150058532A1 (en) Memory device, information-processing device and information-processing method
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
JP2010026969A (ja) データ処理装置
US20140281157A1 (en) Memory system, memory controller and method
JP2017228172A (ja) 情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141007

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150610

R151 Written notification of patent or utility model registration

Ref document number: 5762930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350