JP5762930B2 - Information processing apparatus and semiconductor memory device - Google Patents

Information processing apparatus and semiconductor memory device Download PDF

Info

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
Application number
JP2011252001A
Other languages
Japanese (ja)
Other versions
JP2013109419A (en
Inventor
敦 国松
敦 国松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/en
Priority to TW101126675A priority patent/TWI521343B/en
Priority to US13/561,392 priority patent/US9268706B2/en
Priority to CN201210272624.XA priority patent/CN102915208B/en
Publication of JP2013109419A publication Critical patent/JP2013109419A/en
Application granted granted Critical
Publication of JP5762930B2 publication Critical patent/JP5762930B2/en
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)

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.

特開平10−269165号公報JP-A-10-269165

本発明の一つの実施形態は、ホスト装置と半導体記憶装置間のインターフェイスバンド幅を増大させることなく、半導体記憶装置のバッファメモリの容量を低減させることを目的とする。   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は、情報処理装置の構成例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of an information processing apparatus. 図2は、ライト処理の際の情報処理装置側の動作例を示すフローチャートである。FIG. 2 is a flowchart illustrating an operation example on the information processing apparatus side during the write process. 図3は、ライト処理の際の半導体記憶装置及び情報処理装置側の動作例を示すフローチャートである。FIG. 3 is a flowchart illustrating an operation example of the semiconductor memory device and the information processing apparatus side during the write process. 図4は、リード処理の際の半導体記憶装置及び情報処理装置側の動作例を示すフローチャートである。FIG. 4 is a flowchart showing an operation example on the semiconductor memory device and information processing apparatus side during the read processing.

(実施形態)
図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 host 10. The memory system 20 is a flash memory for embedded use conforming to the eMMC (Embedded Multi Media Card) standard, an SSD (Solid State Drive), or the like. The information processing device is, for example, a personal computer, a mobile phone, an imaging device, or the like.

メモリシステム20は、不揮発性半導体メモリとしてのNANDフラッシュ21、NANDインタフェース(NANDI/F)24、DMAコントローラ25、バッファメモリ26、ECC回路27、ストレージコントローラ28、ストレージインタフェース(ストレージI/F)29を有する。   The memory system 20 includes a NAND flash 21 as a nonvolatile semiconductor memory, a NAND interface (NAND I / F) 24, a DMA controller 25, a buffer memory 26, an ECC circuit 27, a storage controller 28, and a storage interface (storage I / F) 29. Have.

NANDフラッシュ21は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有する。個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。NANDフラッシュ21は、データ消去の単位であるブロックを複数配列して構成される。さらに、各ブロックは、複数のページより構成されている。各ページは、データの書き込み及び読み出しの単位である。NANDフラッシュ21は、例えば、複数のメモリチップによって構成される。   The NAND flash 21 has a memory cell array in which a plurality of memory cells are arranged in a matrix. Individual memory cells can be stored in multiple values using the upper page and the lower page. The NAND flash 21 is configured by arranging a plurality of blocks, which are data erasing units. Further, each block is composed of a plurality of pages. Each page is a unit for writing and reading data. The NAND flash 21 is constituted by a plurality of memory chips, for example.

NANDフラッシュ21は、ホスト10から送信されるユーザデータ、メモリシステム20の管理情報、ホスト10で使用するOS23を記憶する。   The NAND flash 21 stores user data transmitted from the host 10, management information of the memory system 20, and an OS 23 used by the host 10.

OS23は、ホスト10の制御プログラムとして機能する。   The OS 23 functions as a control program for the host 10.

論理物理変換テーブル(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 host 10 accesses the memory system 20, and a physical address (block address + page address +) in the NAND flash 21. This is address conversion information that associates (in-page storage position). Hereinafter, the L2P table 22 stored in the NAND flash is referred to as an L2P main body.

NANDI/F24は、ストレージコントローラ28の制御に基づき、NANDフラッシュ21に対してデータおよび管理情報のリード/ライトを実行する。   The NAND I / F 24 reads / writes data and management information from / to the NAND flash 21 based on the control of the storage controller 28.

バッファメモリ26は、NANDフラッシュ21にライトするデータあるいはNANDフラッシュ21からリードされたデータを記憶するためのバッファとして用いられる。また、バッファメモリ26は、ホスト10から入力されるライト要求、リード要求などに関わるコマンドをキューイングするコマンドキュー26aと、後述するホスト10のメインメモリ13にキャッシュされるL2P情報のタグ情報26bを記憶する。例えば、バッファメモリ26は、SRAM又はDRAM等で構成されるが、レジスタ等で構成してもよい。   The buffer memory 26 is used as a buffer for storing data to be written to the NAND flash 21 or data read from the NAND flash 21. The buffer memory 26 also includes a command queue 26a for queuing commands related to a write request, a read request, etc. input from the host 10, and tag information 26b of L2P information cached in the main memory 13 of the host 10 to be described later. Remember. For example, the buffer memory 26 is configured by SRAM or DRAM, but may be configured by a register or the like.

ECC回路27は、バッファメモリ26から転送されてNANDフラッシュに21にライトすべきデータに対して、ECC処理(誤り訂正処理)におけるエンコード処理を行い、エンコード結果をデータに付加してNANDインタフェース24に出力する。また、ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理(誤り訂正符号を用いた誤り訂正処理)を行い、誤り訂正されたデータをバッファメモリ26に出力する。   The ECC circuit 27 performs an encoding process in an ECC process (error correction process) on the data transferred from the buffer memory 26 and to be written to the NAND flash 21, and adds the encoding result to the data to the NAND interface 24. Output. The ECC circuit 27 performs decoding processing (error correction processing using an error correction code) in ECC processing on the data read from the NAND flash 21 through the NAND interface 24, and the error-corrected data is obtained. The data is output to the buffer memory 26.

DMAコントローラ25は、NANDインタフェース24と、ECC回路27と、バッファメモリ26との間のデータ転送を制御する。なお、ホスト10のストレージインタフェース(ストレージI/F)14内のレジスタ14aとバッファメモリ26との間のデータ伝送を、DMAコントローラ25によって行わせるようにしてもよいが、この実施形態では、レジスタ14aとバッファメモリ26との間のデータ伝送は、ストレージI/F29が行うこととする。   The DMA controller 25 controls data transfer among the NAND interface 24, the ECC circuit 27, and the buffer memory 26. Note that data transfer between the register 14a in the storage interface (storage I / F) 14 of the host 10 and the buffer memory 26 may be performed by the DMA controller 25. In this embodiment, the register 14a And the buffer memory 26 perform data transmission by the storage I / F 29.

ストレージインタフェース(ストレージ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 host 10. The storage I / F 29 has a function of controlling data transmission between the register 14 a in the storage I / F 14 of the host 10 and the buffer memory 26 of the memory system 20.

ストレージコントローラ28は、ファームウェアでその機能を実現され、バス30に接続されたメモリシステム20内の各構成要素を統括的に制御する。   The storage controller 28 realizes its function with firmware, and comprehensively controls each component in the memory system 20 connected to the bus 30.

メモリシステム20では、論理アドレス(LBA)と物理アドレス(NANDフラッシュ21の記憶位置)との関係は静的に決定されておらず、データの書込み時に動的に関係付けられる。例えば、同じLBAのデータを上書きする場合は、つぎのような処理が行われる。論理アドレスA1にブロックサイズの有効なデータが割当られており、記憶領域としてはNANDフラッシュ21のブロックB1が使用されていたとする。ホスト10から論理アドレスA1のブロックサイズの更新データを上書きするコマンドを受信した場合、NANDフラッシュ21の未使用のフリーブロック(ブロックB2とする)を1個確保し、そのフリーブロックにホスト10から受信したデータを書き込む。その後、論理アドレスA1とブロックB2を関係付ける。その結果、ブロックB2は、内部に有効データを含む、アクティブブロックになり、ブロックB1に保存されたデータは無効になるためブロックB1はフリーブロックとなる。   In the memory system 20, the relationship between the logical address (LBA) and the physical address (storage location of the NAND flash 21) is not statically determined, but is dynamically related when data is written. For example, when data of the same LBA is overwritten, the following processing is performed. It is assumed that valid data having a block size is assigned to the logical address A1, and the block B1 of the NAND flash 21 is used as a storage area. When a command for overwriting update data having a block size of logical address A1 is received from the host 10, one unused free block (referred to as block B2) in the NAND flash 21 is secured and received from the host 10 in that free block. Write the data. Thereafter, the logical address A1 is related to the block B2. As a result, the block B2 becomes an active block including valid data therein, and the data stored in the block B1 becomes invalid, so the block B1 becomes a free block.

このように、メモリシステムでは、同じ論理アドレス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 memory system 20, block arrangement is executed. In the memory system, when the data erasure unit (block) is different from the data management unit, when the NAND flash 21 is rewritten, the block becomes perforated due to invalid (not latest) data. When the number of such perforated blocks increases, the number of blocks that can be used substantially decreases, and the storage area of the NAND flash 21 cannot be effectively used. Therefore, for example, when the number of free blocks in the NAND 21 becomes smaller than a predetermined threshold value, the latest effective data is collected, and block arrangement such as compaction and garbage collection for rewriting to a different block is executed to secure free blocks.

また、メモリシステム20では、ページ内の一部セクタの更新を行うときなどには、NANDフラッシュ21の記憶データを読み取って、変更を加えて、NANDフラッシュ21に書き戻すリード・モディファイ・ライト(RMW)を実行する。RMW処理においては、まず、更新セクタを含むページまたはブロックをNANDフラッシュ21からリードし、リードしたデータを、ホスト10から受信したライトデータと統合する。そして、この統合データをNANDフラッシュ21の新たなページまたは新たなブロックに書き込む。   Further, in the memory system 20, for example, when updating some sectors in a page, the storage data of the NAND flash 21 is read, changed, and written to the NAND flash 21 and read-modify-write (RMW). ). In the RMW process, first, a page or block including an update sector is read from the NAND flash 21, and the read data is integrated with the write data received from the host 10. Then, this integrated data is written into a new page or a new block of the NAND flash 21.

ホスト10は、CPU11、メインメモリインタフェース12、メインメモリ13、ストレージインタフェース(ストレージI/F)14、およびこれらを接続するバス16を備える。メインメモリI/F12は、メインメモリ13をバス16に接続するためのインタフェースである。   The host 10 includes a CPU 11, a main memory interface 12, a main memory 13, a storage interface (storage I / F) 14, and a bus 16 for connecting them. The main memory I / F 12 is an interface for connecting the main memory 13 to the bus 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に記憶されているデータにアクセスする際ののアドレス解決を行う。   The main memory 13 is a main storage device that can be directly accessed by the CPU 11, and in this example, a DRAM (Dynamic Random Access Memory) is used. The main memory 13 is used as a storage area for the L2P cache 13a and the write cache 13b in addition to the function as the main memory used by the CPU 11. The main memory 13 is also used as a work area 13c. The L2P cache 13 a is a part or all of the L2P main body 22 stored in the NAND flash 21 of the memory system 20. The storage controller 28 of the memory system 20 uses the L2P cache 13 a cached in the main memory 13 and the L2P main body 22 stored in the NAND flash 21 to access data stored in the NAND flash 21. Address resolution.

ライトキャッシュ13bには、ホスト10からメモリシステム20に書き込まれるライトデータが一時的に保存される。作業領域13cは、NANDフラッシュ21にデータを書き込む際の作業領域であり、具体的には、前述したブロックの整理やRMWなどを実行する際に使用される。   Write data to be written from the host 10 to the memory system 20 is temporarily stored in the write cache 13b. The work area 13c is a work area for writing data to the NAND flash 21, and is specifically used when executing the above-described arrangement of blocks, RMW, or the like.

ストレージI/F14は、メモリシステム20と接続するためのインタフェースである。ストレージI/F14は、DMAコントローラ15と、レジスタ14aを有する。DMAコントローラ15は、メインメモリ13のL2Pキャッシュ13a、ライトキャッシュ13b、作業領域13cとストレージI/F14内のレジスタ14aとの間でのデータ転送制御を実行する。   The storage I / F 14 is an interface for connecting to the memory system 20. The storage I / F 14 includes a DMA controller 15 and a register 14a. The DMA controller 15 executes data transfer control between the L2P cache 13a, the write cache 13b, the work area 13c of the main memory 13 and the register 14a in the storage I / F 14.

CPU11は、ホスト10の動作を制御するプロセッサであり、NANDフラッシュ21からメインメモリ13にロードされるOS23を実行する。OS23にはメモリシステム20を制御するデイバスドライバ23aが含まれる。デバイスドライバ23aは、OS23またはOS23上のアプリケーションからメモリシステム20に対するライト要求を受け付けると、ライト要求をライトコマンドとライトデータに分離する。コマンドには、コマンドの種類(リード、ライトなど)を識別するフィールド、先頭LBAを指定するフィールド、データ長を指定するフィールドなどが含まれる。そして、デバイスドライバ23aは、コマンドはストレージI/F14を介してメモリシステム20に直接送信する。一方、デバイスドライバ23aは、分離したデータについては、メインメモリ13のライトキャッシュ13bに一旦格納する。   The CPU 11 is a processor that controls the operation of the host 10 and executes the OS 23 loaded from the NAND flash 21 to the main memory 13. The OS 23 includes a device driver 23 a that controls the memory system 20. When receiving a write request for the memory system 20 from the OS 23 or an application on the OS 23, the device driver 23a separates the write request into a write command and write data. The command includes a field for identifying the type of command (read, write, etc.), a field for specifying the head LBA, a field for specifying the data length, and the like. The device driver 23a transmits the command directly to the memory system 20 via the storage I / F 14. On the other hand, the device driver 23 a temporarily stores the separated data in the write cache 13 b of the main memory 13.

図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 device driver 23a when a write request is received. When receiving a write request for the memory system 20 from the OS 23 or an application on the OS 23, the device driver 23a separates the write request into a command and data (step S100). Next, the device driver 23a transmits the command directly to the memory system 20 via the storage I / F 14. The device driver 23a temporarily stores the separated data in the write cache 13b of the main memory 13 (step S110). Thereafter, the data cached in the write cache 13 b is transferred to the memory system 20 side under the control of the storage controller 28 of the memory system 20.

図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 memory system 20 side when a write command is received. The write command transmitted from the host 10 to the memory system 20 is set in the command queue 26a of the buffer memory 26 by the storage I / F 29 (steps S200 and S210). When the storage controller 28 becomes the execution order of the write command set in the command queue 26a and the write command can be executed (step S220), whether or not the LBA included in the write command is in an unwritten state. Is determined (step S230). Here, the LBA unwritten state is a state in which valid data corresponding to the LBA is not stored in the NAND flash 21.

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 storage controller 28 determines whether or not the LBA included in the write command hits the tag information 26b, and if not, determines whether or not the L2P main body 22 stored in the NAND flash 21 is hit. To do. Note that the tag information 26b is data in which L2P information cached in the L2P cache 13b of the main memory 13 of the host 10 is registered. By searching the tag information 26b, the L2P cache 13b stores the L2P corresponding to the LBA. It is possible to determine whether information is stored.

このようにタグ情報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 tag information 26b and the L2P main body 22 that the LBA does not hit (step S230: Yes), the storage controller 28 writes the write command corresponding to the write command to the DMA controller 15 of the host 10. A data transfer command for transferring data from the write cache 13b is output (step S240). The DMA controller 15 that has received this data transfer command transfers the write data stored in the write cache 13 b of the main memory 13 from the write cache 13 b of the main memory 13 to the register 14 a of the storage I / F 14. When data is set in the register 14a, the storage I / F 14 notifies the storage I / F 29 to that effect, and the storage I / F 29 that has received the notification sends the write data set in the register 14a to the buffer memory 26. (Step S250).

ストレージコントローラ28が、メインメモリ13上のライトキャッシュ13bに記憶されたライトデータの記憶位置を特定できるようにするために、ライトコマンドにメインメモリ13での記憶位置を含ませるようにしてもよい。また、ライトキャッシュ13bをFIFO構造やリングバッファ構造とすることによりストレージコントローラ28がライトデータの記憶位置を特定可能とすることもできる。つまり、ライトデータは、FIFO構造のライトキャッシュ13bに対し、ライトコマンドが発生した順にセットする。ライトコマンドには、データ長が含まれているので、ストレージコントローラ28が、FIFO構造のライトキャッシュ13bの初期アドレスを認識していれば、ライトコマンドを受信する度に、データ長ずつアドレスに加算することで、ライトデータのメインメモリ13上での記憶位置に把握することができる。   In order to enable the storage controller 28 to specify the storage location of the write data stored in the write cache 13b on the main memory 13, the storage location in the main memory 13 may be included in the write command. Further, the write controller 13 can have a FIFO structure or a ring buffer structure so that the storage controller 28 can specify the storage location of the write data. That is, the write data is set in the FIFO command write cache 13b in the order in which the write commands are generated. Since the write command includes the data length, if the storage controller 28 recognizes the initial address of the write cache 13b having the FIFO structure, the data length is added to the address every time the write command is received. As a result, the storage position of the write data on the main memory 13 can be grasped.

ステップ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 buffer memory 26 by the processing in step S250, the storage controller 28 encodes the write data in the ECC circuit 27 and then writes it in the NAND flash free block via the NAND I / F 24 (step S250). S350). Thereafter, the L2P cache 13a, the tag information 26b, and further the L2P main body 22 are updated so that the LBA specified by the write command is associated with this free block (step S360). The L2P main body may be updated periodically instead of being updated every time the NAND flash 21 is written.

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 L2P cache 13a is updated as follows. After creating new L2P information in the buffer memory 26, the storage controller 28 adds the tag information to the tag information 26 b in the buffer memory 26, notifies the storage I / F 29, and further notifies the DMA controller 15 of the host 10. A transfer command for transferring the L2P information is output. As a result, the storage I / F 29 sets the new L2P information created in the buffer memory 26 in the register 14a of the storage I / F 14. The DMA controller 15 transfers the L2P information set in the register 14a to the main memory 13, and caches the L2P information in the L2P cache 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情報を用いてアドレス解決を行う。   On the other hand, in step S230, when the LBA included in the write command hits the tag information 26b (step S230: No), the storage controller 28 outputs an L2P information transfer command to the DMA controller 15 of the host 10. Thereby, the DMA controller 15 transfers the hit L2P information stored in the L2P cache 13a of the main memory 13 from the main memory 13 to the register 14a of the storage I / F 14. As described above, when data is set in the register 14a, the storage I / F 14 notifies the storage I / F 29 to that effect, and the storage I / F 29 that has received the notification notifies the L2P information set in the register 14a. Is transferred to the buffer memory 26. The storage controller 28 performs address resolution using the L2P information transferred to the buffer memory 26.

次に、ストレージコントローラ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 storage controller 28 reads the page or block including the data stored at the physical address corresponding to the LBA obtained by the address resolution from the NAND flash 21 and transfers it to the buffer memory 26 (step S260). Next, the storage controller 28 outputs a data transfer command for transferring the write data stored in the write cache 13b to the DMA controller 15 of the host 10 (step S270). The DMA controller 15 that has received this data transfer command transfers the write data stored in the write cache 13 b of the main memory 13 from the main memory 13 to the register 14 a of the storage I / F 14. The data set in the register 14a is transferred to the buffer memory 26 by the storage I / F 29 in the same manner as described above (step 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)。   Next, the storage controller 28 combines the data read from the NAND flash 21 and written to the buffer memory 26 with the data transferred from the write cache 13b and written to the buffer memory 26 on the buffer memory 26 (step S290). . When this synthesis is completed, the storage controller 28 notifies the storage I / F 29 to that effect, and further outputs a transfer command for transferring data to the DMA controller 15 of the host 10 (step S300). As a result, the storage I / F 29 sets the data combined in the buffer memory 26 in the register 14a of the storage I / F 14. The DMA controller 15 transfers the composite data set in the register 14a to the main memory 13, and stores this composite data in the work area 13c (step S310).

この後、ストレージコントローラ28は、データの合成処理が終了したか否かを判定し(ステップS320)、データ合成処理が終了していない場合は、ステップS260〜S310の手順をデータ合成処理が終了するまで繰り返す。このようにして、メインメモリ13の作業領域13c上にできるだけ多くのブロック単位のデータを作成する。   Thereafter, the storage controller 28 determines whether or not the data composition process has been completed (step S320). If the data composition process has not been completed, the data composition process is completed according to the steps S260 to S310. Repeat until. In this way, as many block unit data as possible are created on the work area 13 c of the main memory 13.

ストレージコントローラ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 storage controller 28 outputs a data transfer command for transferring the synthesized data stored in the work area 13c of the main memory 13 to the DMA controller 15 of the host 10 (step S330). . The DMA controller 15 that has received this data transfer command transfers the composite data stored in the work area 13 c of the main memory 13 from the main memory 13 to the register 14 a of the storage I / F 14. The data set in the register 14a is transferred to the buffer memory 26 by the storage I / F 29 in the same manner as described above (step S340).

ステップ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 buffer memory 26 by the processing in step S340, the storage controller 28 encodes the write data in the ECC circuit 27 and then writes the data in the NAND flash free block via the NAND I / F 24 (step S340). S350). Thereafter, the LBA is associated with the free block, and the L2P cache 13a, the tag information 26b, and the L2P main body 22 are updated so as to invalidate the old active block (step S360).

なお、合成処理が、メインメモリ13からバッファメモリ26への1回のデータ転送で終了する場合は、バッファメモリ26で合成したデータをNANDフラッシュ21に直接書き込むようにしてもよい。   When the synthesis process ends with one data transfer from the main memory 13 to the buffer memory 26, the data synthesized in the buffer memory 26 may be directly written to the NAND flash 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)。   FIG. 4 shows an operation procedure on the memory system 20 side when a read command is received. The read command received by the memory system 20 via the storage I / F 29 is set in the command queue 26 a of the buffer memory 26 by the storage I / F 29. When the read command becomes executable, the storage controller 28 determines whether or not the LBA included in the read command hits the tag information 26b (step S420). If there is a hit (step S420: Yes), the storage controller 28 outputs an L2P transfer command to the DMA controller 15 of the host 10 (step S430). Thereby, the DMA controller 15 transfers the hit L2P information stored in the L2P cache 13a of the main memory 13 from the main memory 13 to the register 14a of the storage I / F 14. The L2P information set in the register 14a is transferred to the buffer memory 26 by the storage I / F 29 in the same manner as described above (step S440).

ストレージコントローラ28は、バッファメモリ26に転送されたL2P情報を用いてアドレス解決を行う。すなわち、ストレージコントローラ28は、LBAに対応付けれた物理アドレスをL2P情報から取得し、取得した物理アドレスに対応するデータをNANDフラッシュ21からリードさせる。ECC回路27は、NANDインタフェース24を介してNANDフラッシュ21からリードされたデータに対して、ECC処理におけるデコード処理を行い、誤り訂正されたデータをバッファメモリ26に出力する。この後、ストレージコントローラ28は、バッファメモリ26に記憶されたリードデータをホスト10に出力する。   The storage controller 28 performs address resolution using the L2P information transferred to the buffer memory 26. That is, the storage controller 28 acquires the physical address associated with the LBA from the L2P information, and causes the NAND flash 21 to read data corresponding to the acquired physical address. The ECC circuit 27 performs a decoding process in the ECC process on the data read from the NAND flash 21 via the NAND interface 24 and outputs error-corrected data to the buffer memory 26. Thereafter, the storage controller 28 outputs the read data stored in the buffer memory 26 to the host 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)。   On the other hand, in step S420, when the LBA included in the read command does not hit the tag information 26b (step S420: No), the storage controller 28 stores part or all of the L2P main body stored in the NAND flash 21 in the buffer memory. 26 is read and searched (step S460). If the LBA does not hit the L2P main body, the read process is terminated and an error is returned to the host 10. When the LBA hits in the L2P main body (step S470), the storage controller 28 performs address resolution using the hit L2P information. That is, the storage controller 28 acquires the physical address associated with the LBA from the L2P information, and causes the NAND flash 21 to read data corresponding to the acquired physical address. The ECC circuit 27 performs a decoding process in the ECC process on the data read from the NAND flash 21 via the NAND interface 24 and outputs error-corrected data to the buffer memory 26. Thereafter, the storage controller 28 outputs the read data stored in the buffer memory 26 to the host 10 (step 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を更新する。   The storage controller 28 stores the L2P information corresponding to the LBA included in the read command or the L2P information corresponding to the peripheral LBA including the LBA included in the read command, out of the L2P main body read into the buffer memory 26. The storage I / F 29 is instructed to transfer the data to the register 14a, and a transfer command for transferring the L2P information to the DMA controller 15 of the host 10 is output. As a result, the storage I / F 29 sets the L2P information buffered in the buffer memory 26 in the register 14a of the storage I / F 14. The DMA controller 15 transfers the L2P information set in the register 14a to the main memory 13, and caches this L2P information in the L2P cache. Accordingly, the storage controller 28 updates the tag information 26b in the buffer memory 26.

なお、メインメモリ13上に形成された作業領域13cは、前述したブロック整理、RMW等を行う際の作業領域としても使用される。また、上記実施形態では、L2Pキャッシュ13aのタグ情報26bをメモリシステム20側で持つこととしたが、タグ情報26bを持たずに、L2Pキャッシュ13aを直接検索するようにしてもよい。また、メモリシステム20のストレージI/F29がレジスタ14aと、バッファメモリ26間のデータ転送を行うこととしたが、ストレージコントローラ28にこのデータ転送を行わせるようにしてもよい。また、メインメモリ13とバッファメモリ26との間で直接データ転送を行わせるようにしてもよい。   The work area 13c formed on the main memory 13 is also used as a work area when performing the above-described block arrangement, RMW, and the like. In the above embodiment, the tag information 26b of the L2P cache 13a is held on the memory system 20 side. However, the L2P cache 13a may be directly searched without the tag information 26b. Further, although the storage I / F 29 of the memory system 20 performs data transfer between the register 14a and the buffer memory 26, the storage controller 28 may perform this data transfer. Further, direct data transfer may be performed between the main memory 13 and the buffer memory 26.

このようにこの実施形態においては、ホスト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 main memory 13 of the host 10 is used as a storage area for the write cache 13b and the L2P cache 13a. Thereby, the memory capacity of the buffer memory 26 can be reduced. Further, in the present embodiment, when a write request is made, the write command and the write data are separated, the write data is stored in the main memory 13 of the host 10, and the write command is stored in the buffer memory 26 of the memory system. Then, when the write command is executed in the memory system 20, the write data is read from the main memory 13 of the host 10 and written to the NAND flash 21. Thereby, the interface bandwidth between the host 10 and the memory system 20 can be reduced as compared with the case where the write command and the write data are not separated. In other words, when the write command and the write data are not separated, the write command and the write data are transferred from the host to the memory system at the time of the write request, then the memory system separates the write command and the write data and the separated write data is sent to the host. The operation is to transfer to 10 main memories 13. In this case, the write data is transferred three times through the bus between the host 10 and the memory system 20 in response to a single write request, thereby increasing the interface bandwidth. On the other hand, according to the configuration of the present embodiment, such a problem can be solved.

なお、メモリシステムの起動時に、NANDフラッシュ21に記憶されているL2P本体22を、ホストのメインメモリ13にロードするようにしてもよい。また、メモリシステム20側に、L2P情報の一次キャッシュを設け、ホストのメインメモリにL2P情報の二次キャッシュを設ける、一次キャッシュ、二次キャッシュでヒットしない場合に、NANDフラッシュ21に記憶されているL2P本体22を検索するようにしてもよい。   Note that the L2P main body 22 stored in the NAND flash 21 may be loaded into the main memory 13 of the host when the memory system is activated. In addition, a primary cache of L2P information is provided on the memory system 20 side, and a secondary cache of L2P information is provided in the main memory of the host. When there is no hit in the primary cache and secondary cache, these are stored in the NAND flash 21. The L2P main body 22 may be searched.

また、この実施形態では、メモリシステム20のストレージコントローラ28が使用する作業領域13cをメインメモリ13上に設けるようにしたので、メモリシステム側での作業領域のためのバッファの容量をおよび専有面積を低減することが可能となる。   In this embodiment, since the work area 13c used by the storage controller 28 of the memory system 20 is provided on the main memory 13, the capacity of the buffer for the work area on the memory system side and the exclusive area are reduced. It becomes possible to reduce.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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 .
前記第1の制御部は、前記半導体記憶装置に対してライト要求を送信し、
前記第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 .
前記第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 .
前記第2の制御部は、前記ライト要求に対応するデータを前記不揮発性半導体メモリに書き込んだ後、前記メインメモリおよび前記不揮発性半導体メモリに格納された前記アドレス変換情報を更新することを特徴とする請求項2または3に記載の情報処理装置。 The second control unit updates the address conversion information stored in the main memory and the nonvolatile semiconductor memory after writing data corresponding to the write request to the nonvolatile semiconductor memory. The information processing apparatus according to claim 2 or 3 . 前記第2の制御部は、前記メインメモリに格納されるアドレス変換情報を示すタグ情報を用いてホスト装置からのリード要求またはライト要求に含まれる論理アドレスに対応するアドレス変換情報が前記メインメモリに格納されているか否かを判定することを特徴とする請求項2から4の何れか一つに記載の情報処理装置。 The second control unit uses the tag information indicating the address conversion information stored in the main memory to generate address conversion information corresponding to the logical address included in the read request or write request from the host device in the main memory. The information processing apparatus according to claim 2, wherein it is determined whether or not the information is stored . メインメモリを備えるホスト装置と接続可能な半導体記憶装置において、
前記半導体記憶装置は、
不揮発性半導体メモリと、
前記ホスト装置からリード要求を受信する制御部と、
を備え、
前記不揮発性半導体メモリは、前記ホスト装置が前記半導体記憶装置にアクセスする際に使用する論理アドレスと前記不揮発性半導体メモリ内の物理アドレスとを対応づけるアドレス変換情報を格納し、
前記制御部は、前記メインメモリに、前記アドレス変換情報の少なくとも一部を格納し、前記メインメモリに保持された前記アドレス変換情報を用いて前記リード要求に含まれる論理アドレスを物理アドレスに変換し、該物理アドレスを用いて前記リード要求に対応するデータを前記不揮発性半導体メモリから読み出す
ことを特徴とする半導体記憶装置
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 .
前記制御部は、前記ライト要求に対応するデータを前記不揮発性半導体メモリに書き込んだ後、前記メインメモリおよび前記不揮発性半導体メモリに格納された前記アドレス変換情報を更新することを特徴とする請求項6または7に記載の半導体記憶装置 The control unit updates the address conversion information stored in the main memory and the nonvolatile semiconductor memory after writing data corresponding to the write request to the nonvolatile semiconductor memory. 8. The semiconductor memory device according to 6 or 7 . 前記制御部は、前記メインメモリに格納されるアドレス変換情報を示すタグ情報を用いてホスト装置からのリード要求またはライト要求に含まれる論理アドレスに対応するアドレス変換情報が前記メインメモリに格納されているか否かを判定することを特徴とする請求項7から9の何れか一つに記載の半導体記憶装置 The controller uses the tag information indicating the address conversion information stored in the main memory to store address conversion information corresponding to the logical address included in the read request or write request from the host device in the main memory. 10. The semiconductor memory device according to claim 7, wherein it is determined whether or not there is any .
JP2011252001A 2011-08-01 2011-11-17 Information processing apparatus and semiconductor memory device Active JP5762930B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
JP7048289B2 (en) * 2017-12-08 2022-04-05 キオクシア株式会社 Information processing equipment and methods
JP7167291B2 (en) * 2017-12-08 2022-11-08 キオクシア株式会社 Memory system and control method
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)

* Cited by examiner, † Cited by third party
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
US20110258372A1 (en) * 2009-07-29 2011-10-20 Panasonic Corporation Memory device, host device, and memory system

Cited By (2)

* Cited by examiner, † Cited by third party
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

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