JP5762930B2 - Information processing apparatus and semiconductor memory device - Google Patents
Information processing apparatus and semiconductor memory device Download PDFInfo
- Publication number
- JP5762930B2 JP5762930B2 JP2011252001A JP2011252001A JP5762930B2 JP 5762930 B2 JP5762930 B2 JP 5762930B2 JP 2011252001 A JP2011252001 A JP 2011252001A JP 2011252001 A JP2011252001 A JP 2011252001A JP 5762930 B2 JP5762930 B2 JP 5762930B2
- Authority
- JP
- Japan
- Prior art keywords
- write
- semiconductor memory
- main memory
- control unit
- 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.)
- Active
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明の実施形態は、メインメモリを有するホスト装置と、不揮発性半導体メモリを有する半導体記憶装置とを備える情報処理装置に関する。 Embodiments described herein relate generally to an information processing apparatus including a host device having a main memory and a semiconductor storage device having a nonvolatile semiconductor memory.
複数の演算プロセッサが集積されるGPU(Graphical Processing Unit)などで、複数の演算プロセッサ間で一つのメモリを共有するUMA(Unified Memory Architecture)という技術がある。UMAによれば、メモリコストの低減を図ることができる。 There is a technology called UMA (Unified Memory Architecture) in which a single memory is shared among a plurality of arithmetic processors, such as a GPU (Graphical Processing Unit) in which a plurality of arithmetic processors are integrated. According to UMA, the memory cost can be reduced.
本発明の一つの実施形態は、ホスト装置と半導体記憶装置間のインターフェイスバンド幅を増大させることなく、半導体記憶装置のバッファメモリの容量を低減させることを目的とする。 An object of one embodiment of the present invention is to reduce the capacity of a buffer memory of a semiconductor memory device without increasing the interface bandwidth between the host device and the semiconductor memory device.
本発明の一つの実施形態によれば、情報処理装置は、ホスト装置と、半導体記憶装置とを備える。ホスト装置は、メインメモリと、前記半導体記憶装置に対するライト要求をライトコマンドと前記ライトコマンドに対応するライトデータに分離し、ライトコマンドを前記半導体記憶装置に出力し、ライトデータを前記メインメモリに記憶させる第1の制御部とを備える。前記半導体記憶装置は、不揮発性半導体メモリと、前記ホスト装置から転送される前記ライトコマンドを受信し、該ライトコマンドの実行時に前記メインメモリに記憶された該ライトコマンドに対応するライトデータを半導体記憶装置に転送させ、前記不揮発性半導体メモリに書き込む第2の制御部とを備える。 According to one embodiment of the present invention, the information processing apparatus includes a host device and a semiconductor memory device. The host device separates a write request for the main memory and the semiconductor memory device into a write command and write data corresponding to the write command, outputs the write command to the semiconductor memory device, and stores the write data in the main memory A first control unit. The semiconductor storage device receives the write command transferred from the nonvolatile semiconductor memory and the host device, and stores the write data corresponding to the write command stored in the main memory when the write command is executed. And a second control unit for transferring to the device and writing to the nonvolatile semiconductor memory.
(実施形態)
図1に、本実施形態の情報処理装置の構成例を示す。本情報処理装置は、ホスト装置(以下、ホストと略す)10と、ホスト10の記憶装置として機能するメモリシステム(半導体記憶装置)20とを備える。メモリシステム20は、eMMC(Embedded Multi Media Card)規格に準拠した組み込み用途のフラッシュメモリや、SSD(Solid State Drive)などである。情報処理装置は、例えば、パーソナルコンピュータ、携帯電話、撮像装置などである。
(Embodiment)
FIG. 1 shows a configuration example of the information processing apparatus of the present embodiment. The information processing apparatus includes a host device (hereinafter abbreviated as a host) 10 and a memory system (semiconductor storage device) 20 that functions as a storage device of the
メモリシステム20は、不揮発性半導体メモリとしてのNANDフラッシュ21、NANDインタフェース(NANDI/F)24、DMAコントローラ25、バッファメモリ26、ECC回路27、ストレージコントローラ28、ストレージインタフェース(ストレージI/F)29を有する。
The
NANDフラッシュ21は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有する。個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDフラッシュ21は、データ消去の単位であるブロックを複数配列して構成される。さらに、各ブロックは、複数のページより構成されている。各ページは、データの書き込み及び読み出しの単位である。NANDフラッシュ21は、例えば、複数のメモリチップによって構成される。
The
NANDフラッシュ21は、ホスト10から送信されるユーザデータ、メモリシステム20の管理情報、ホスト10で使用するOS23を記憶する。
The NAND
OS23は、ホスト10の制御プログラムとして機能する。
The OS 23 functions as a control program for the
論理物理変換テーブル(L2Pテーブル)22は、ホスト10がメモリシステム20にアクセスする際に使用する論理ブロックアドレス(LBA:Logical block address)と、NANDフラッシュ21内の物理アドレス(ブロックアドレス+ページアドレス+ページ内記憶位置)とを対応づけるアドレス変換情報である。これ以降、NANDフラッシュに記憶されているL2Pテーブル22をL2P本体と呼称する。
The logical physical conversion table (L2P table) 22 includes a logical block address (LBA) used when the
NANDI/F24は、ストレージコントローラ28の制御に基づき、NANDフラッシュ21に対してデータおよび管理情報のリード/ライトを実行する。
The NAND I /
バッファメモリ26は、NANDフラッシュ21にライトするデータあるいはNANDフラッシュ21からリードされたデータを記憶するためのバッファとして用いられる。また、バッファメモリ26は、ホスト10から入力されるライト要求、リード要求などに関わるコマンドをキューイングするコマンドキュー26aと、後述するホスト10のメインメモリ13にキャッシュされるL2P情報のタグ情報26bを記憶する。例えば、バッファメモリ26は、SRAM又はDRAM等で構成されるが、レジスタ等で構成してもよい。
The
ECC回路27は、バッファメモリ26から転送されてNANDフラッシュに21にライトすべきデータに対して、ECC処理(誤り訂正処理)におけるエンコード処理を行い、エンコード結果をデータに付加してNANDインタフェース24に出力する。また、ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理(誤り訂正符号を用いた誤り訂正処理)を行い、誤り訂正されたデータをバッファメモリ26に出力する。
The
DMAコントローラ25は、NANDインタフェース24と、ECC回路27と、バッファメモリ26との間のデータ転送を制御する。なお、ホスト10のストレージインタフェース(ストレージI/F)14内のレジスタ14aとバッファメモリ26との間のデータ伝送を、DMAコントローラ25によって行わせるようにしてもよいが、この実施形態では、レジスタ14aとバッファメモリ26との間のデータ伝送は、ストレージI/F29が行うこととする。
The
ストレージインタフェース(ストレージI/F)29は、ホスト10と接続するためのインタフェースである。ストレージI/F29は、ホスト10のストレージI/F14内のレジスタ14aとメモリシステム20のバッファメモリ26との間のデータ伝送を制御する機能を有する。
The storage interface (storage I / F) 29 is an interface for connecting to the
ストレージコントローラ28は、ファームウェアでその機能を実現され、バス30に接続されたメモリシステム20内の各構成要素を統括的に制御する。
The
メモリシステム20では、論理アドレス(LBA)と物理アドレス(NANDフラッシュ21の記憶位置)との関係は静的に決定されておらず、データの書込み時に動的に関係付けられる。例えば、同じLBAのデータを上書きする場合は、つぎのような処理が行われる。論理アドレスA1にブロックサイズの有効なデータが割当られており、記憶領域としてはNANDフラッシュ21のブロックB1が使用されていたとする。ホスト10から論理アドレスA1のブロックサイズの更新データを上書きするコマンドを受信した場合、NANDフラッシュ21の未使用のフリーブロック(ブロックB2とする)を1個確保し、そのフリーブロックにホスト10から受信したデータを書き込む。その後、論理アドレスA1とブロックB2を関係付ける。その結果、ブロックB2は、内部に有効データを含む、アクティブブロックになり、ブロックB1に保存されたデータは無効になるためブロックB1はフリーブロックとなる。
In the
このように、メモリシステムでは、同じ論理アドレスA1のデータであっても、実際の記録領域として使用されるブロックは書込みの度に変化する。なお、ブロックサイズの更新データ書き込みでは、必ず書き込み先ブロックが変化するが、ブロックサイズ未満の更新データ書き込みでは、同じブロックに更新データが書き込まれることもある。例えばブロックサイズ未満のページデータが更新される場合、当該ブロック内において同じ論理アドレスの旧ページデータが無効化され、新たに書き込まれた最新のページデータが有効ページとして管理される。ブロック内の全データが無効化されると、当該ブロックはフリーブロックとして解放される。 As described above, in the memory system, even if the data has the same logical address A1, the block used as the actual recording area changes every time writing is performed. Note that, in writing update data with a block size, the write destination block always changes, but with update data writing with a block size less than that, update data may be written in the same block. For example, when page data smaller than the block size is updated, old page data having the same logical address in the block is invalidated, and the latest page data newly written is managed as a valid page. When all the data in the block is invalidated, the block is released as a free block.
また、メモリシステム20ではブロック整理が実行される。メモリシステムにおいて、データの消去単位(ブロック)と、データの管理単位が異なる場合、NANDフラッシュ21の書き換えが進むと、無効な(最新ではない)データによって、ブロックは穴あき状態になる。このような穴あき状態のブロックが増えると、実質的に使用可能なブロックが少なくなり、NANDフラッシュ21の記憶領域を有効利用できなくなる。そこで、例えば、NAND21のフリーブロックが所定の閾値より少なくなった場合、有効な最新のデータを集めて、違うブロックに書き直すコンパクション、ガベージコレクションなどのブロック整理を実行し、フリーブロックを確保する
In the
また、メモリシステム20では、ページ内の一部セクタの更新を行うときなどには、NANDフラッシュ21の記憶データを読み取って、変更を加えて、NANDフラッシュ21に書き戻すリード・モディファイ・ライト(RMW)を実行する。RMW処理においては、まず、更新セクタを含むページまたはブロックをNANDフラッシュ21からリードし、リードしたデータを、ホスト10から受信したライトデータと統合する。そして、この統合データをNANDフラッシュ21の新たなページまたは新たなブロックに書き込む。
Further, in the
ホスト10は、CPU11、メインメモリインタフェース12、メインメモリ13、ストレージインタフェース(ストレージI/F)14、およびこれらを接続するバス16を備える。メインメモリI/F12は、メインメモリ13をバス16に接続するためのインタフェースである。
The
メインメモリ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に記憶されているデータにアクセスする際ののアドレス解決を行う。
The
ライトキャッシュ13bには、ホスト10からメモリシステム20に書き込まれるライトデータが一時的に保存される。作業領域13cは、NANDフラッシュ21にデータを書き込む際の作業領域であり、具体的には、前述したブロックの整理やRMWなどを実行する際に使用される。
Write data to be written from the
ストレージI/F14は、メモリシステム20と接続するためのインタフェースである。ストレージI/F14は、DMAコントローラ15と、レジスタ14aを有する。DMAコントローラ15は、メインメモリ13のL2Pキャッシュ13a、ライトキャッシュ13b、作業領域13cとストレージI/F14内のレジスタ14aとの間でのデータ転送制御を実行する。
The storage I /
CPU11は、ホスト10の動作を制御するプロセッサであり、NANDフラッシュ21からメインメモリ13にロードされるOS23を実行する。OS23にはメモリシステム20を制御するデイバスドライバ23aが含まれる。デバイスドライバ23aは、OS23またはOS23上のアプリケーションからメモリシステム20に対するライト要求を受け付けると、ライト要求をライトコマンドとライトデータに分離する。コマンドには、コマンドの種類(リード、ライトなど)を識別するフィールド、先頭LBAを指定するフィールド、データ長を指定するフィールドなどが含まれる。そして、デバイスドライバ23aは、コマンドはストレージI/F14を介してメモリシステム20に直接送信する。一方、デバイスドライバ23aは、分離したデータについては、メインメモリ13のライトキャッシュ13bに一旦格納する。
The
図2は、ライト要求を受け付けた際のデバイスドライバ23aの動作手順を示すものである。デバイスドライバ23aは、OS23またはOS23上のアプリケーションからメモリシステム20に対するライト要求を受け付けると、ライト要求をコマンドとデータに分離する(ステップS100)。つぎに、デバイスドライバ23aは、コマンドはストレージI/F14を介してメモリシステム20に直接送信する。また、デバイスドライバ23aは、分離したデータをメインメモリ13のライトキャッシュ13bに一旦格納する(ステップS110)。ライトキャッシュ13bにキャッシュされたデータについては、この後、メモリシステム20のストレージコントローラ28の制御によって、メモリシステム20側に転送される。
FIG. 2 shows an operation procedure of the
図3は、ライトコマンドを受信した際のメモリシステム20側の動作手順を示すものである。ホスト10からメモリシステム20に送信されたライトコマンドは、ストレージI/F29によってバッファメモリ26のコマンドキュー26aにセットされる(ステップS200、S210)。ストレージコントローラ28は、コマンドキュー26aにセットされた当該ライトコマンドの実行順番になり、当該ライトコマンドの実行が可能となると(ステップS220)、ライトコマンドに含まれるLBAが未書き込み状態であるか否かを判定する(ステップS230)。ここで、LBAが未書き込み状態とは、このLBAに対応する有効なデータがNANDフラッシュ21に記憶されていない状態である。
FIG. 3 shows an operation procedure on the
LBAが未書き込み状態であるか否かの判定は、具体的には、例えば以下の手順で行われる。即ち、ストレージコントローラ28は、ライトコマンドに含まれるLBAがタグ情報26bにヒットするか否かを判定し、ヒットしない場合は、NANDフラッシュ21に記憶されているL2P本体22にヒットするか否か判定する。なお、タグ情報26bは、ホスト10のメインメモリ13のL2Pキャッシュ13bにキャッシュされているL2P情報が登録されたデータであり、タグ情報26bを検索することにより、L2Pキャッシュ13bにLBAに対応するL2P情報が格納されているか否か判定することが可能である。
Specifically, whether or not the LBA is in an unwritten state is determined by the following procedure, for example. That is, the
このようにタグ情報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)。
As described above, when it is determined by the search of the
ストレージコントローラ28が、メインメモリ13上のライトキャッシュ13bに記憶されたライトデータの記憶位置を特定できるようにするために、ライトコマンドにメインメモリ13での記憶位置を含ませるようにしてもよい。また、ライトキャッシュ13bをFIFO構造やリングバッファ構造とすることによりストレージコントローラ28がライトデータの記憶位置を特定可能とすることもできる。つまり、ライトデータは、FIFO構造のライトキャッシュ13bに対し、ライトコマンドが発生した順にセットする。ライトコマンドには、データ長が含まれているので、ストレージコントローラ28が、FIFO構造のライトキャッシュ13bの初期アドレスを認識していれば、ライトコマンドを受信する度に、データ長ずつアドレスに加算することで、ライトデータのメインメモリ13上での記憶位置に把握することができる。
In order to enable the
ステップS250の処理によってライトデータがバッファメモリ26にセットされると、ストレージコントローラ28はライトデータをECC回路27でECC符号化した後、NANDI/F24を介して、NANDフラッシュのフリーブロックに書き込む(ステップS350)。その後、このフリーブロックにライトコマンドで指定されたLBAを対応付けるようL2Pキャッシュ13a、タグ情報26b、さらにはL2P本体22を更新する(ステップS360)。なお、L2P本体に関しては、NANDフラッシュ21に対する書き込みの度に更新するのではなく、定期的に更新するようにしてもよい。
When the write data is set in the
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にキャッシュする。
The
一方、ステップ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情報を用いてアドレス解決を行う。
On the other hand, in step S230, when the LBA included in the write command hits the
次に、ストレージコントローラ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)。
Next, the
つぎに、ストレージコントローラ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)。
Next, the
この後、ストレージコントローラ28は、データの合成処理が終了したか否かを判定し(ステップS320)、データ合成処理が終了していない場合は、ステップS260〜S310の手順をデータ合成処理が終了するまで繰り返す。このようにして、メインメモリ13の作業領域13c上にできるだけ多くのブロック単位のデータを作成する。
Thereafter, the
ストレージコントローラ28は、データの合成処理が終了すると、ホスト10のDMAコントローラ15に対しメインメモリ13の作業領域13cに記憶されている合成データを転送するためのデータ転送指令を出力する(ステップS330)。このデータ転送指令を受信したDMAコントローラ15は、メインメモリ13の作業領域13cに記憶されている合成データをメインメモリ13からストレージI/F14のレジスタ14aに転送する。このレジスタ14aにセットされたデータは、前記と同様にして、ストレージI/F29によってバッファメモリ26に転送される(ステップS340)。
When the data synthesizing process is completed, the
ステップS340の処理によって合成データがバッファメモリ26にセットされると、ストレージコントローラ28はライトデータをECC回路27でECC符号化した後、NANDI/F24を介して、NANDフラッシュのフリーブロックに書き込む(ステップS350)。その後、このフリーブロックにLBAを対応付け、旧アクティブブロックを無効化するようL2Pキャッシュ13a、タグ情報26b、さらにはL2P本体22を更新する(ステップS360)。
When the combined data is set in the
なお、合成処理が、メインメモリ13からバッファメモリ26への1回のデータ転送で終了する場合は、バッファメモリ26で合成したデータをNANDフラッシュ21に直接書き込むようにしてもよい。
When the synthesis process ends with one data transfer from the
図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)。
FIG. 4 shows an operation procedure on the
ストレージコントローラ28は、バッファメモリ26に転送されたL2P情報を用いてアドレス解決を行う。すなわち、ストレージコントローラ28は、LBAに対応付けれた物理アドレスをL2P情報から取得し、取得した物理アドレスに対応するデータをNANDフラッシュ21からリードさせる。ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理を行い、誤り訂正されたデータをバッファメモリ26に出力する。この後、ストレージコントローラ28は、バッファメモリ26に記憶されたリードデータをホスト10に出力する。
The
一方、ステップ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)。
On the other hand, in step S420, when the LBA included in the read command does not hit the
ストレージコントローラ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を更新する。
The
なお、メインメモリ13上に形成された作業領域13cは、前述したブロック整理、RMW等を行う際の作業領域としても使用される。また、上記実施形態では、L2Pキャッシュ13aのタグ情報26bをメモリシステム20側で持つこととしたが、タグ情報26bを持たずに、L2Pキャッシュ13aを直接検索するようにしてもよい。また、メモリシステム20のストレージI/F29がレジスタ14aと、バッファメモリ26間のデータ転送を行うこととしたが、ストレージコントローラ28にこのデータ転送を行わせるようにしてもよい。また、メインメモリ13とバッファメモリ26との間で直接データ転送を行わせるようにしてもよい。
The
このようにこの実施形態においては、ホスト10のメインメモリ13がライトキャッシュ13b及びL2Pキャッシュ13aの格納領域として用いられる。これにより、バッファメモリ26のメモリ容量の低減を図ることができる。さらに、本実施形態では、ライト要求時にライトコマンドとライトデータとを分離し、ライトデータをホスト10のメインメモリ13に記憶し、ライトコマンドをメモリシステムのバッファメモリ26に記憶する。そして、メモリシステム20においてライトコマンドの実行時にホスト10のメインメモリ13からライトデータを読み出し、NANDフラッシュ21に書き込みを行う。これにより、ライトコマンドとライトデータを分離しない場合に比べ、ホスト10とメモリシステム20の間のインターフェイスバンド幅を低減することができる。つまり、ライトコマンドとライトデータを分離しない場合には、ライト要求時にホストからメモリシステムにライトコマンド及びライトデータが転送され、次いでメモリシステムがライトコマンドとライトデータを分離し、分離したライトデータをホスト10のメインメモリ13に転送するという動作になる。この場合、一度のライト要求に対して、ライトデータは、ホスト10とメモリシステム20の間のバスを3回転送されることとなり、インターフェイスバンド幅を増加させてしまう。これに対し、本実施形態の構成によれば、そのような課題を解決できる。
Thus, in this embodiment, the
なお、メモリシステムの起動時に、NANDフラッシュ21に記憶されているL2P本体22を、ホストのメインメモリ13にロードするようにしてもよい。また、メモリシステム20側に、L2P情報の一次キャッシュを設け、ホストのメインメモリにL2P情報の二次キャッシュを設ける、一次キャッシュ、二次キャッシュでヒットしない場合に、NANDフラッシュ21に記憶されているL2P本体22を検索するようにしてもよい。
Note that the L2P
また、この実施形態では、メモリシステム20のストレージコントローラ28が使用する作業領域13cをメインメモリ13上に設けるようにしたので、メモリシステム側での作業領域のためのバッファの容量をおよび専有面積を低減することが可能となる。
In this embodiment, since the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
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 ストレージコントローラ。 10 host device, 11 CPU, 13 main memory, 13a L2P cache, 13b write cache, 13c work area, 14 storage interface, 14a register, 15 DMA controller, 20 memory system, 21 NAND flash, 22 L2P main unit, 23a device driver , 25 DMA controller, 26 buffer memory, 26a command queue, 26b tag information, 27 ECC circuit, 28 storage controller.
Claims (10)
前記ホスト装置は、
メインメモリと、
前記半導体記憶装置に対してリード要求を送信する第1の制御部と
を備え、
前記半導体記憶装置は、
不揮発性半導体メモリと、
前記ホスト装置から前記リード要求を受信する第2の制御部と
を備え、
前記不揮発性半導体メモリは、前記ホスト装置が前記半導体記憶装置にアクセスする際に使用する論理アドレスと前記不揮発性半導体メモリ内の物理アドレスとを対応づけるアドレス変換情報を格納し、
前記メインメモリは、前記アドレス変換情報の少なくとも一部を格納し、
前記第2の制御部は、前記メインメモリに保持された前記アドレス変換情報を用いて前記リード要求に含まれる論理アドレスを物理アドレスに変換し、該物理アドレスを用いて前記リード要求に対応するデータを前記不揮発性半導体メモリから読み出す
ことを特徴とする情報処理装置。 In an information processing apparatus including a host device and a semiconductor storage device,
The host device is
Main memory,
A first control unit that transmits a read request to the semiconductor memory device ;
The semiconductor memory device
Non-volatile semiconductor memory;
A second control unit that receives the read request from the host device ,
The nonvolatile semiconductor memory stores address conversion information that associates a logical address used when the host device accesses the semiconductor storage device and a physical address in the nonvolatile semiconductor memory,
The main memory stores at least a part of the address conversion information;
The second control unit converts a logical address included in the read request into a physical address using the address conversion information held in the main memory, and uses the physical address to correspond to the read request. Is read from the non-volatile semiconductor memory .
前記第2の制御部は、前記メインメモリに保持された前記アドレス変換情報を用いて前記ライト要求に含まれる論理アドレスを物理アドレスに変換し、該物理アドレスを用いて前記ライト要求に対応するデータを前記不揮発性半導体メモリに書き込む
ことを特徴とする請求項1に記載の情報処理装置。 The first control unit transmits a write request to the semiconductor memory device,
The second control unit converts a logical address included in the write request into a physical address using the address conversion information held in the main memory, and uses the physical address to correspond to the write request. Is written to the nonvolatile semiconductor memory
The information processing apparatus according to claim 1 .
前記第2の制御部は、前記ホスト装置から転送される前記ライトコマンドを受信すると、前記メインメモリに記憶された該ライトコマンドに対応するライトデータを半導体記憶装置に転送させ、転送されたライトデータを前記ライト要求に対応するデータとして前記不揮発性半導体メモリに書き込む
ことを特徴とする請求項2に記載の情報処理装置。 The first control unit separates a write request for the semiconductor memory device into a write command and write data corresponding to the write command, outputs the write command to the semiconductor memory device, and outputs the write data to the main memory Remember
When the second control unit receives the write command transferred from the host device, the second control unit transfers write data corresponding to the write command stored in the main memory to the semiconductor memory device, and the transferred write data Is written into the nonvolatile semiconductor memory as data corresponding to the write request
The information processing apparatus according to claim 2 .
前記半導体記憶装置は、
不揮発性半導体メモリと、
前記ホスト装置からリード要求を受信する制御部と、
を備え、
前記不揮発性半導体メモリは、前記ホスト装置が前記半導体記憶装置にアクセスする際に使用する論理アドレスと前記不揮発性半導体メモリ内の物理アドレスとを対応づけるアドレス変換情報を格納し、
前記制御部は、前記メインメモリに、前記アドレス変換情報の少なくとも一部を格納し、前記メインメモリに保持された前記アドレス変換情報を用いて前記リード要求に含まれる論理アドレスを物理アドレスに変換し、該物理アドレスを用いて前記リード要求に対応するデータを前記不揮発性半導体メモリから読み出す
ことを特徴とする半導体記憶装置。 In a semiconductor memory device connectable to a host device having a main memory,
The semiconductor memory device
Non-volatile semiconductor memory;
A control unit for receiving a read request from the host device;
With
The nonvolatile semiconductor memory stores address conversion information that associates a logical address used when the host device accesses the semiconductor storage device and a physical address in the nonvolatile semiconductor memory,
The control unit stores at least a part of the address conversion information in the main memory, and converts a logical address included in the read request into a physical address using the address conversion information held in the main memory. And reading data corresponding to the read request from the nonvolatile semiconductor memory using the physical address
A semiconductor memory device .
ことを特徴とする請求項6に記載の半導体記憶装置。 When receiving a write request from the host device, the control unit converts the logical address included in the write request into a physical address using the address conversion information held in the main memory, and uses the physical address. Write data corresponding to the write request to the nonvolatile semiconductor memory
The semiconductor memory device according to claim 6 .
前記制御部は、前記ホスト装置から転送される前記ライトコマンドを受信すると、前記メインメモリに記憶された該ライトコマンドに対応するライトデータを半導体記憶装置に転送させ、転送されたライトデータを前記ライト要求に対応するデータとして前記不揮発性半導体メモリに書き込む
ことを特徴とする請求項7に記載の半導体記憶装置。 The host device separates a write request for the semiconductor storage device into a write command and write data corresponding to the write command, outputs the write command to the semiconductor storage device, and stores the write data in the main memory. ,
When the control unit receives the write command transferred from the host device, the control unit causes the write data corresponding to the write command stored in the main memory to be transferred to the semiconductor memory device, and the transferred write data is transferred to the write command. Write to the nonvolatile semiconductor memory as data corresponding to the request
The semiconductor memory device according to claim 7 .
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011252001A JP5762930B2 (en) | 2011-11-17 | 2011-11-17 | Information processing apparatus and semiconductor memory device |
TW101126675A TWI521343B (en) | 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 (en) | 2011-08-01 | 2012-08-01 | The control method of signal conditioning package, semiconductor storage and semiconductor storage |
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 (en) | 2011-11-17 | 2011-11-17 | Information processing apparatus and semiconductor memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013109419A JP2013109419A (en) | 2013-06-06 |
JP5762930B2 true JP5762930B2 (en) | 2015-08-12 |
Family
ID=48706136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011252001A Active JP5762930B2 (en) | 2011-08-01 | 2011-11-17 | Information processing apparatus and semiconductor memory device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5762930B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11163493B2 (en) | 2019-08-28 | 2021-11-02 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US9417998B2 (en) * | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
TWI459201B (en) | 2012-04-27 | 2014-11-01 | Toshiba Kk | Information processing device |
JP6102632B2 (en) * | 2013-08-14 | 2017-03-29 | ソニー株式会社 | Storage control device, host computer, information processing system, and storage control device control method |
US9519440B2 (en) * | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
US9569303B2 (en) | 2014-08-08 | 2017-02-14 | Kabushiki Kaisha Toshiba | Information processing apparatus |
JP6248921B2 (en) * | 2014-12-22 | 2017-12-20 | ソニー株式会社 | Memory controller, storage device, and information processing system |
WO2017072868A1 (en) * | 2015-10-28 | 2017-05-04 | 株式会社日立製作所 | Storage apparatus |
JP7167291B2 (en) * | 2017-12-08 | 2022-11-08 | キオクシア株式会社 | Memory system and control method |
JP7048289B2 (en) * | 2017-12-08 | 2022-04-05 | キオクシア株式会社 | Information processing equipment and methods |
JP6967959B2 (en) * | 2017-12-08 | 2021-11-17 | キオクシア株式会社 | Memory system and control method |
JP7067256B2 (en) * | 2018-05-17 | 2022-05-16 | 日本電気株式会社 | Data transfer device and data transfer method |
JP7091203B2 (en) * | 2018-09-19 | 2022-06-27 | キオクシア株式会社 | Memory system and control method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2679715B2 (en) * | 1989-06-30 | 1997-11-19 | 富士通株式会社 | Data transfer method |
JPH10105347A (en) * | 1996-10-02 | 1998-04-24 | Hitachi Ltd | Disk array control system |
JP2000047891A (en) * | 1998-05-29 | 2000-02-18 | Toshiba Corp | Device and method for controlling input/output for computer system and storage medium storing the programmed method |
JP2000003328A (en) * | 1998-06-15 | 2000-01-07 | Nec Ibaraki Ltd | Address reference system for input/output control device |
JP2001195195A (en) * | 2000-01-14 | 2001-07-19 | Matsushita Electric Ind Co Ltd | Data transform device, data inverse transform device and auxiliary data file generator |
JP2002189572A (en) * | 2000-12-20 | 2002-07-05 | Toshiba Corp | Disk storage device, information processing equipment provided with the same and processing method when failing in write |
JP3592640B2 (en) * | 2001-01-09 | 2004-11-24 | 株式会社東芝 | Disk control system and disk control method |
JP3526452B2 (en) * | 2001-12-18 | 2004-05-17 | 株式会社東芝 | Disk array device and data backup method |
JP2008021290A (en) * | 2006-06-15 | 2008-01-31 | Hitachi Ulsi Systems Co Ltd | Storage device, storage controller, and information processing apparatus |
WO2011013350A1 (en) * | 2009-07-29 | 2011-02-03 | パナソニック株式会社 | Memory device, host device, and memory system |
-
2011
- 2011-11-17 JP JP2011252001A patent/JP5762930B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11163493B2 (en) | 2019-08-28 | 2021-11-02 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command |
US11650760B2 (en) | 2019-08-28 | 2023-05-16 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command |
US12045513B2 (en) | 2019-08-28 | 2024-07-23 | Kioxia Corporation | Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command |
Also Published As
Publication number | Publication date |
---|---|
JP2013109419A (en) | 2013-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11537291B2 (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 (en) | Information processing apparatus and semiconductor memory device | |
TWI459201B (en) | Information processing device | |
US8775739B2 (en) | Memory system including first and second caches and controlling readout of data therefrom | |
JP6021759B2 (en) | Memory system and information processing apparatus | |
US20110231598A1 (en) | Memory system and controller | |
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 | |
US10235284B2 (en) | Memory system | |
JP7500311B2 (en) | Memory system and information processing system | |
KR20150052039A (en) | Information processing device | |
US11074178B2 (en) | Memory system and method of controlling nonvolatile memory | |
US20150339069A1 (en) | Memory system and method | |
JP2013033337A (en) | Information processing apparatus and semiconductor memory device | |
US9329994B2 (en) | Memory system | |
US20150058532A1 (en) | Memory device, information-processing device and information-processing method | |
WO2020039927A1 (en) | Non-volatile storage device, host device, and data storage system | |
US20140281157A1 (en) | Memory system, memory controller and method | |
JP2010026969A (en) | Data processor | |
JP2024043974A (en) | Memory System |
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 |