JP2013200692A - Memory system - Google Patents

Memory system Download PDF

Info

Publication number
JP2013200692A
JP2013200692A JP2012068367A JP2012068367A JP2013200692A JP 2013200692 A JP2013200692 A JP 2013200692A JP 2012068367 A JP2012068367 A JP 2012068367A JP 2012068367 A JP2012068367 A JP 2012068367A JP 2013200692 A JP2013200692 A JP 2013200692A
Authority
JP
Japan
Prior art keywords
command
queue
access
execution
semiconductor 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.)
Pending
Application number
JP2012068367A
Other languages
Japanese (ja)
Inventor
Takashi Ide
崇史 井手
Koji Watanabe
幸治 渡辺
Hiroyuki Nanjo
浩之 南條
Makoto Moriya
誠 森屋
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
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Corp
Toshiba Information Systems Japan 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, Toshiba Information Systems Japan Corp filed Critical Toshiba Corp
Priority to JP2012068367A priority Critical patent/JP2013200692A/en
Priority to US13/600,578 priority patent/US8996782B2/en
Publication of JP2013200692A publication Critical patent/JP2013200692A/en
Priority to US14/641,930 priority patent/US9304691B2/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a memory system which can, for example, appropriately process commands that are respectively stored in a plurality of command queues having different priorities in one embodiment.SOLUTION: In one embodiment, a memory system includes a nonvolatile semiconductor memory and a control unit. If a second command is stored in a second command queue when a first command that is stored in a first command queue is being executed, a processing unit of the control unit performs one of interruption processing and completion processing according to the progress status of access to the nonvolatile semiconductor memory by the first command at a timing when the second command is stored in the second command queue. In the interruption processing, the execution of the first command is interrupted and the second command is executed. In the completion processing, the execution of the first command is completed.

Description

本発明の実施形態は、メモリシステムに関する。   Embodiments described herein relate generally to a memory system.

コンピュータシステムに用いられるメモリシステムとして、NAND型フラッシュメモリなどの不揮発性半導体メモリを搭載したSSD(Solid State Drive)が注目されている。SSDなどのメモリシステムには、優先度の異なる複数のコマンドキューを持つものがある。このとき、優先度の異なる複数のコマンドキューにそれぞれ格納されたコマンドを適切に処理することが望まれる。   As a memory system used in a computer system, an SSD (Solid State Drive) equipped with a nonvolatile semiconductor memory such as a NAND flash memory has attracted attention. Some memory systems such as SSDs have a plurality of command queues having different priorities. At this time, it is desirable to appropriately process commands stored in a plurality of command queues having different priorities.

特開2010−282422号公報JP 2010-282422 A

1つの実施形態は、例えば、優先度の異なる複数のコマンドキューにそれぞれ格納されたコマンドを適切に処理できるメモリシステムを提供することを目的とする。   An object of one embodiment is to provide a memory system that can appropriately process, for example, commands stored in a plurality of command queues having different priorities.

1つの実施形態によれば、不揮発性半導体メモリと制御部とを有するメモリシステムが提供される。制御部は、不揮発性半導体メモリを制御する。制御部は、第1のコマンドキューと第2のコマンドキューと処理部とを有する。第2のコマンドキューは、第1のコマンドキューより高い優先度を有する。処理部は、第1のコマンドキュー及び第2のコマンドキューのいずれかのコマンドキューを選択する。処理部は、選択されたコマンドキューに格納されたコマンドを実行させ不揮発性半導体メモリへのアクセス処理を行う。処理部は、第1のコマンドキューに格納された第1のコマンドの実行中に第2のコマンドキューに第2のコマンドが格納された場合、第2のコマンドが第2のコマンドキューに格納されたタイミングにおける第1のコマンドによる不揮発性半導体メモリへのアクセス進捗状況に応じて、中断処理と完了処理とのいずれかを行う。中断処理では、第1のコマンドの実行を中断して第2のコマンドを実行させる。完了処理では、第1のコマンドの実行を完了させる。   According to one embodiment, a memory system having a nonvolatile semiconductor memory and a control unit is provided. The control unit controls the nonvolatile semiconductor memory. The control unit includes a first command queue, a second command queue, and a processing unit. The second command queue has a higher priority than the first command queue. The processing unit selects one of the first command queue and the second command queue. The processing unit executes a command stored in the selected command queue and performs an access process to the nonvolatile semiconductor memory. When the second command is stored in the second command queue during execution of the first command stored in the first command queue, the processing unit stores the second command in the second command queue. Depending on the progress of access to the nonvolatile semiconductor memory by the first command at the specified timing, either the interruption process or the completion process is performed. In the interruption process, the execution of the first command is interrupted and the second command is executed. In the completion process, the execution of the first command is completed.

実施形態にかかるメモリシステムの構成を示す図。1 is a diagram showing a configuration of a memory system according to an embodiment. 実施形態におけるNAND型フラッシュメモリの構成を示す図。The figure which shows the structure of the NAND type flash memory in embodiment. 実施形態におけるNANDコントローラの構成を示す図。The figure which shows the structure of the NAND controller in embodiment. 実施形態にかかるメモリシステムの動作を示すフローチャート。5 is a flowchart showing the operation of the memory system according to the embodiment. 実施形態にかかるメモリシステムの動作を示す図。FIG. 3 is a diagram illustrating an operation of the memory system according to the embodiment. 実施形態にかかるメモリシステムの動作を示す図。FIG. 3 is a diagram illustrating an operation of the memory system according to the embodiment. 実施形態にかかるメモリシステムの動作を示す図。FIG. 3 is a diagram illustrating an operation of the memory system according to the embodiment. 実施形態にかかるメモリシステムの動作を示す図。FIG. 3 is a diagram illustrating an operation of the memory system according to the embodiment. 実施形態にかかるメモリシステムの動作を示す図。FIG. 3 is a diagram illustrating an operation of the memory system according to the embodiment. 実施形態にかかるメモリシステムの動作を示す図。FIG. 3 is a diagram illustrating an operation of the memory system according to the embodiment.

以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。   Hereinafter, a memory system according to an embodiment will be described in detail with reference to the accompanying drawings. In addition, this invention is not limited by this embodiment.

(実施形態)
実施形態にかかるメモリシステム100について図1を用いて説明する。図1は、メモリシステム100の構成を示す図である。
(Embodiment)
A memory system 100 according to an embodiment will be described with reference to FIG. FIG. 1 is a diagram showing a configuration of the memory system 100.

メモリシステム100は、ホスト装置HAに対する外部記憶媒体として機能するものであり、例えば、SSD(Solid State Drive)又はメモリカードである。ホスト装置HAは、例えば、パーソナルコンピュータ又はCPUコアを含む。   The memory system 100 functions as an external storage medium for the host device HA, and is, for example, an SSD (Solid State Drive) or a memory card. The host device HA includes, for example, a personal computer or a CPU core.

メモリシステム100は、コントローラとしてのドライブ制御回路4と、不揮発性半導体メモリとしてのNAND型フラッシュメモリ10と、ランダムアクセス可能な半導体メモリとしてのRAM20と、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースなどを備えている。   The memory system 100 includes a drive control circuit 4 as a controller, a NAND flash memory 10 as a nonvolatile semiconductor memory, a RAM 20 as a randomly accessible semiconductor memory, and a memory such as an ATA interface (ATA I / F) 2. A connection interface is provided.

RAM20としては、例えば揮発性半導体メモリを採用する。RAM20として、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase Change Random Access Memory)などを採用することができる。RAM20は、データ転送用、管理情報記録用または作業領域用の記憶部として使用される。   For example, a volatile semiconductor memory is employed as the RAM 20. As the RAM 20, DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), FeRAM (Ferroelectric Random Access Memory), FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetic Resistive Memory). . The RAM 20 is used as a storage unit for data transfer, management information recording, or work area.

ドライブ制御回路4は、ホストHAとNAND型フラッシュメモリ10との間でRAM20を介してデータ転送制御を行うとともに、メモリシステム100内の各構成要素を制御する。   The drive control circuit 4 controls data transfer between the host HA and the NAND flash memory 10 via the RAM 20 and controls each component in the memory system 100.

ドライブ制御回路4は、データアクセス用バス101、回路制御用バス102を備えている。回路制御用バス102には、ドライブ制御回路4全体を制御するプロセッサ104が接続されている。回路制御用バス102には、NAND型フラッシュメモリ10に記憶された各管理プログラム(FW:ファームウエア)をブートするブート用プログラムが格納されたブートROM105がROMコントローラ106を介して接続されている。   The drive control circuit 4 includes a data access bus 101 and a circuit control bus 102. A processor 104 that controls the entire drive control circuit 4 is connected to the circuit control bus 102. A boot ROM 105 storing a boot program for booting each management program (FW: firmware) stored in the NAND flash memory 10 is connected to the circuit control bus 102 via a ROM controller 106.

ATAインタフェースコントローラ(ATAコントローラ)117、NANDコントローラ110、及びRAMコントローラ114は、データアクセス用バス101と回路制御用バス102との両方に接続されている。ATAコントローラ117は、ATAインタフェース2を介してホストHAとの間でデータを送受信する。データアクセス用バス101には、データ作業領域及びファームウェア展開領域として使用されるSRAM115がSRAMコントローラ116を介して接続されている。NAND型フラッシュメモリ10に記憶されているファームウェアは起動時、ブートROM105に記憶されたブート用プログラムによってSRAM115に転送される。プロセッサ104は、SRAM115に転送されたファームウェアを実行することで、メモリシステム100内での最上位のコントローラとして動作し、ドライブ制御回路4内の構成要素を制御する。   The ATA interface controller (ATA controller) 117, the NAND controller 110, and the RAM controller 114 are connected to both the data access bus 101 and the circuit control bus 102. The ATA controller 117 transmits and receives data to and from the host HA via the ATA interface 2. An SRAM 115 used as a data work area and a firmware development area is connected to the data access bus 101 via an SRAM controller 116. The firmware stored in the NAND flash memory 10 is transferred to the SRAM 115 by a boot program stored in the boot ROM 105 at startup. The processor 104 operates as the uppermost controller in the memory system 100 by executing the firmware transferred to the SRAM 115 and controls the components in the drive control circuit 4.

RAMコントローラ114は、プロセッサ104とRAM20とのインタフェース処理、ATA I/F2−RAM20間のデータ転送制御、NAND型フラッシュメモリ10−RAM20間のデータ転送制御などを実行する。NANDコントローラ110は、プロセッサ104とNAND型フラッシュメモリ10とのインタフェース処理、NAND型フラッシュメモリ10−RAM20間のデータ転送制御、誤り訂正符号のエンコード/デコード処理などを実行する。   The RAM controller 114 executes interface processing between the processor 104 and the RAM 20, data transfer control between the ATA I / F 2 and RAM 20, data transfer control between the NAND flash memory 10 and RAM 20, and the like. The NAND controller 110 executes interface processing between the processor 104 and the NAND flash memory 10, data transfer control between the NAND flash memory 10 and the RAM 20, error correction code encoding / decoding processing, and the like.

NAND型フラッシュメモリ10は、ホスト装置100からのライトデータを記憶したり、ワークエリア(図示せず)にロードされているアドレス変換テーブルのバックアップデータや差分データを記憶したりする。NAND型フラッシュメモリ10は、1以上のメモリチップにより構成される。NAND型フラッシュメモリ10が複数のメモリチップで構成される場合、複数のメモリチップを並列駆動することで高速動作を実現する事が可能である。NAND型フラッシュメモリ10は、1つのメモリセルに1ビットを記憶する二値メモリ(SLC: Single Level Cell)であってもよいし、1つのメモリセルに2ビット以上を記憶する多値メモリ(MLC: Multi Level Cell)であってもよい。以下、NANDメモリ2は多値メモリであるとして説明する。
次に、NAND型フラッシュメモリ10について図2を用いて説明する。図2は、NAND型フラッシュメモリ10の構成を示す図である。
The NAND flash memory 10 stores write data from the host device 100, and stores backup data and difference data of an address conversion table loaded in a work area (not shown). The NAND flash memory 10 is composed of one or more memory chips. When the NAND flash memory 10 is composed of a plurality of memory chips, high speed operation can be realized by driving the plurality of memory chips in parallel. The NAND flash memory 10 may be a binary memory (SLC: Single Level Cell) that stores 1 bit in one memory cell, or a multi-level memory (MLC) that stores 2 bits or more in one memory cell. : Multi Level Cell). Hereinafter, the NAND memory 2 will be described as a multi-value memory.
Next, the NAND flash memory 10 will be described with reference to FIG. FIG. 2 is a diagram showing a configuration of the NAND flash memory 10.

NAND型フラッシュメモリ10は、制御回路15、メモリセルアレイ11、ページバッファ12、データキャッシュ13、及びステータスレジスタ14を有する。
制御回路15は、NAND型フラッシュメモリ10の各部を全体的に制御する。
The NAND flash memory 10 includes a control circuit 15, a memory cell array 11, a page buffer 12, a data cache 13, and a status register 14.
The control circuit 15 controls each part of the NAND flash memory 10 as a whole.

メモリセルアレイ11は、例えば多値メモリである場合、複数のメモリセルがマトリクス状に配列されて構成されており、個々のメモリセルは、上位ページ及び下位ページを使用して多値記憶が可能である。また、メモリセルアレイ11は、消去の単位である物理ブロックを複数備えており、個々の物理ブロックは、読み出しおよび書き込みの単位である物理ページ(以降、単にページ)を複数備えて構成されている。また、個々のメモリセルは、1回データが書き込まれたら消去されるまでそのデータを不揮発に保持するので、データをさらに上書きすることが困難である。   When the memory cell array 11 is a multi-value memory, for example, a plurality of memory cells are arranged in a matrix, and each memory cell can be stored in multi-value using an upper page and a lower page. is there. The memory cell array 11 includes a plurality of physical blocks that are units of erasure, and each physical block includes a plurality of physical pages (hereinafter simply referred to as pages) that are units of reading and writing. In addition, since each memory cell holds the data in a nonvolatile manner until the data is erased once it is written, it is difficult to further overwrite the data.

データキャッシュ13およびページバッファ12は、例えば1ページ分の記憶容量を備えている。データキャッシュ13は、NAND型フラッシュメモリ10がNANDコントローラ110との間でデータを送受信するためのバッファとして使用され、ページバッファ12は、NAND型フラッシュメモリ10がデータをメモリセルアレイ11に入出力するためのバッファとして使用される。   The data cache 13 and the page buffer 12 have a storage capacity for one page, for example. The data cache 13 is used as a buffer for the NAND flash memory 10 to transmit / receive data to / from the NAND controller 110, and the page buffer 12 is used for the NAND flash memory 10 to input / output data to / from the memory cell array 11. Used as a buffer.

具体的には、書き込みコマンド実行時には、制御回路15は、NANDコントローラ110から書き込みデータが送られてきたら、データキャッシュ13に格納されたデータをクリアして、書き込みデータをデータキャッシュ13に格納する。制御回路15は、さらに、データキャッシュ13に格納された書き込みデータをページバッファ12にコピーする。そして、制御回路15は、ページバッファ12に格納された書き込みデータをメモリセルアレイ11にプログラムする。プログラムの際には、制御回路15は、プログラムされた書き込みデータとページバッファ12に格納されている書き込みデータとを比較して、正しくプログラムされたか否かをベリファイする。   Specifically, when a write command is executed, the control circuit 15 clears the data stored in the data cache 13 and stores the write data in the data cache 13 when write data is sent from the NAND controller 110. The control circuit 15 further copies the write data stored in the data cache 13 to the page buffer 12. Then, the control circuit 15 programs the write data stored in the page buffer 12 in the memory cell array 11. At the time of programming, the control circuit 15 compares the programmed write data with the write data stored in the page buffer 12 to verify whether or not the program is correctly programmed.

読み出しコマンド時には、制御回路15は、メモリセルアレイ11からページバッファ12に対象のデータを読み出す。そして、制御回路15は、データキャッシュ13に格納されたデータをクリアした後に、ページバッファ12に格納された読み出しデータをデータキャッシュ13にコピーする。制御回路15は、データキャッシュ13に格納された読み出しデータを、データ出力信号(例えばRE信号)によりNANDコントローラ110に送る。   At the time of a read command, the control circuit 15 reads target data from the memory cell array 11 to the page buffer 12. The control circuit 15 clears the data stored in the data cache 13 and then copies the read data stored in the page buffer 12 to the data cache 13. The control circuit 15 sends the read data stored in the data cache 13 to the NAND controller 110 by a data output signal (for example, RE signal).

ステータスレジスタ14には、制御回路15が生成したステータス情報が格納される。ステータスレジスタ14に格納されたステータス情報は、制御回路15による制御の下、NANDコントローラ110に送られる。   The status register 14 stores status information generated by the control circuit 15. The status information stored in the status register 14 is sent to the NAND controller 110 under the control of the control circuit 15.

具体的には、書き込みコマンド実行時又は消去コマンド実行時に、制御回路15は、NANDコントローラ110から、ステータスリード命令(Cmd70−StatusOut)を受信する。制御回路15は、ステータスリード命令を受信すると、ステータスレジスタ14に格納されたステータス情報をNANDコントローラ110へ出力する。   Specifically, the control circuit 15 receives a status read command (Cmd70-StatusOut) from the NAND controller 110 when a write command is executed or an erase command is executed. When receiving the status read command, the control circuit 15 outputs the status information stored in the status register 14 to the NAND controller 110.

例えば、書き込みコマンド実行時、制御回路15は、書き込みデータにかかるライト命令(Cmd80h−Adr−DataIn−Cmd10h)の後にステータスリード命令(Cmd70−StatusOut)を受信すると、データキャッシュ13に書き込みデータが格納されていれば、ステータス情報として、書き込みデータにかかるプログラミングが成功したか否かを出力する。   For example, when the write command is executed, the control circuit 15 receives the status read command (Cmd70-StatusOut) after the write command (Cmd80h-Adr-DataIn-Cmd10h) related to the write data, and the write data is stored in the data cache 13. If it is, status information is output as to whether or not the programming related to the write data is successful.

なお、制御回路15は、データキャッシュ13に格納された書き込みデータをクリアした場合、それに応じて書き込みデータにかかるステータス情報もステータスレジスタ14からクリアする。そのため、制御回路15は、データキャッシュ13に書き込みデータが格納されていない場合に、書き込みデータにかかるステータス情報を出力することが困難である。   Note that when the write data stored in the data cache 13 is cleared, the control circuit 15 also clears the status information related to the write data from the status register 14 accordingly. Therefore, it is difficult for the control circuit 15 to output status information related to the write data when the write data is not stored in the data cache 13.

例えば、消去コマンド実行時、制御回路15は、消去コマンドにかかるイレース命令(Cmd60h−Adr−CmdD0h)の後にステータスリード命令(Cmd70−StatusOut)を受信すると、ステータス情報として、消去コマンドにかかるイレースが成功したか否かを出力する。
次に、NANDコントローラ110について図3を用いて説明する。図3は、NANDコントローラ110の構成を示す図である。
For example, when executing the erase command, the control circuit 15 succeeds in erasing the erase command as status information when receiving a status read command (Cmd70-StatusOut) after the erase command (Cmd60h-Adr-CmdD0h) related to the erase command. Output whether or not.
Next, the NAND controller 110 will be described with reference to FIG. FIG. 3 is a diagram illustrating a configuration of the NAND controller 110.

メモリシステム100では、優先度の異なるコマンドが異なるタイミングで要求されることがある。この優先度は、例えば、コマンド実行中における他のコマンドとの関係での実行順に関する優先度である。その点を考慮して、NANDコントローラ110は、優先度の異なる2つのコマンドキューを持ち、優先度の高いコマンドキューにコマンドがセットされたイベントで優先度の低いコマンドキューから優先度の高いコマンドキューへの切り替えを行うか否か判断する機構を持つ。   In the memory system 100, commands having different priorities may be requested at different timings. This priority is, for example, a priority related to the execution order in relation to other commands during command execution. Considering this point, the NAND controller 110 has two command queues having different priorities, and an event in which a command is set in a command queue having a higher priority, a command queue having a higher priority from a command queue having a lower priority. It has a mechanism to determine whether or not to switch to.

具体的には、NANDコントローラ110は、優先度低のコマンドキュー(第1のコマンドキュー)111、優先度高のコマンドキュー(第2のコマンドキュー)112、及び処理部113を有する。   Specifically, the NAND controller 110 includes a low-priority command queue (first command queue) 111, a high-priority command queue (second command queue) 112, and a processing unit 113.

優先度低のコマンドキュー111は、優先度高のコマンドキュー112に比べて低い優先度を有する。すなわち、優先度低のコマンドキュー111には、コマンドの実行順に関して、優先度高のコマンドキュー112に格納されるコマンドよりも優先度の低いコマンドが格納される。優先度低のコマンドキュー111は、例えば、複数のコマンドを格納可能である。優先度低のコマンドキュー111は、例えば、FIFO(First In First Out)構造を有し、複数のコマンドをその格納された順に投入位置111aから実行位置111b(図5(a)参照)へ移動させる。   The low priority command queue 111 has a lower priority than the high priority command queue 112. That is, in the command queue 111 with low priority, commands with lower priority than the commands stored in the command queue 112 with high priority are stored in the command execution order. The low priority command queue 111 can store a plurality of commands, for example. The low-priority command queue 111 has, for example, a FIFO (First In First Out) structure, and moves a plurality of commands from the input position 111a to the execution position 111b (see FIG. 5A) in the stored order. .

優先度高のコマンドキュー112は、優先度低のコマンドキュー111に比べて高い優先度を有する。すなわち、優先度高のコマンドキュー112には、コマンドの実行順に関して、優先度低のコマンドキュー111に格納されるコマンドよりも優先度の高いコマンドが格納される。優先度高のコマンドキュー112は、例えば、1以上のコマンドを格納可能である。以下では、説明の簡略化のために、優先度高のコマンドキュー112が1つのコマンドを格納する場合について例示的に説明するが、以下の考え方は、優先度高のコマンドキュー112が複数のコマンドを格納可能である場合にも同様に適用できる。   The high priority command queue 112 has a higher priority than the low priority command queue 111. That is, in the command queue 112 with high priority, commands having higher priority than commands stored in the command queue 111 with low priority are stored in the command execution order. The high priority command queue 112 can store one or more commands, for example. In the following, for simplification of description, a case where the command queue 112 with high priority stores one command will be described as an example. However, the following idea is based on the fact that the command queue 112 with high priority has a plurality of commands. It can be similarly applied to the case where it is possible to store.

処理部113は、優先度低のコマンドキュー111及び優先度高のコマンドキュー112のいずれかのコマンドキューを選択し、選択されたコマンドキューに格納されたコマンドを実行させNAND型フラッシュメモリ10へのアクセス処理を行う。   The processing unit 113 selects one of the command queues 111 having a low priority and the command queue 112 having a high priority, and executes a command stored in the selected command queue so that the NAND flash memory 10 can receive the command queue. Perform access processing.

例えば、処理部113は、優先度高のコマンドキュー112にコマンドが格納されていない場合、優先度低のコマンドキュー111を選択し、優先度低のコマンドキュー111における実行位置111bに格納されたコマンドを実行させる。例えば、処理部113は、優先度低のコマンドキュー111における実行位置111bに書き込みコマンドWR0が格納されていれば(図5(a)参照)、書き込みコマンドWR0を実行させる。   For example, if no command is stored in the command queue 112 with a high priority, the processing unit 113 selects the command queue 111 with a low priority, and the command stored in the execution position 111b in the command queue 111 with a low priority. Is executed. For example, if the write command WR0 is stored in the execution position 111b in the low priority command queue 111 (see FIG. 5A), the processing unit 113 causes the write command WR0 to be executed.

例えば、処理部113は、優先度低のコマンドキュー111にコマンドが格納されていない状態で、優先度高のコマンドキュー112にコマンドが格納された場合、優先度高のコマンドキュー112を選択し、優先度高のコマンドキュー112に格納されたコマンドを実行させる。例えば、処理部113は、優先度高のコマンドキュー112に書き込みコマンドWR2が格納されていれば(図5(a)参照)、書き込みコマンドWR2を実行させる。   For example, when a command is stored in the command queue 112 with a high priority when no command is stored in the command queue 111 with a low priority, the processing unit 113 selects the command queue 112 with a high priority, The command stored in the command queue 112 having a high priority is executed. For example, if the write command WR2 is stored in the high priority command queue 112 (see FIG. 5A), the processing unit 113 executes the write command WR2.

一方、優先度低のコマンドキュー111に1以上のコマンドが格納されており、その実行位置111bに格納されたコマンドを実行中に、優先度高のコマンドキュー112にコマンドが格納された場合が問題となる。   On the other hand, when one or more commands are stored in the low priority command queue 111 and the command stored in the execution position 111b is being executed, the command is stored in the high priority command queue 112. It becomes.

ここで、仮に、処理部113が、優先度低のコマンドキュー111のコマンドの処理を必ず完了させてから優先度高のコマンドキュー112のコマンドの処理を行う場合を考える。この場合、優先度の低いコマンドの処理完了を待つ時間分、優先度の高いコマンドへのレイテンシ(コマンド応答までの時間)が長くなる傾向にある。   Here, it is assumed that the processing unit 113 always completes the command processing of the command queue 111 with the low priority and then processes the command of the command queue 112 with the high priority. In this case, there is a tendency that the latency (time to command response) to a command with a higher priority becomes longer by the time waiting for the completion of processing of a command with a lower priority.

そこで、実施形態では、処理部113が、優先度低のコマンドキュー111に格納された第1のコマンドの実行中に優先度高のコマンドキュー112に第2のコマンドが格納された場合、第2のコマンドが優先度高のコマンドキュー112に格納されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況に応じて、中断処理と完了処理とのいずれかを行う。中断処理は、第1のコマンドの実行を中断して第2のコマンドを実行させるような処理である。完了処理は、第1のコマンドの実行を完了させるような処理である。すなわち、優先度低のコマンドキュー111の第1のコマンドの処理を必ず完了させるのではなく、第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況を考慮して、第1のコマンドを完了させるか中断させるかを切り替える制御を行う。
具体的には、処理部113は、キュー切り替え部113a及びコマンドシーケンス発行部113bを有する。
Therefore, in the embodiment, when the processing unit 113 stores the second command in the high priority command queue 112 while the first command stored in the low priority command queue 111 is being executed, Depending on the progress of access to the NAND flash memory 10 by the first command at the timing when the command is stored in the command queue 112 having a high priority, either the interruption process or the completion process is performed. The interruption process is a process for interrupting the execution of the first command and executing the second command. The completion process is a process for completing the execution of the first command. That is, the processing of the first command in the low priority command queue 111 is not necessarily completed, but the first command is completed in consideration of the progress of access to the NAND flash memory 10 by the first command. Control to switch between being interrupted and interrupted.
Specifically, the processing unit 113 includes a queue switching unit 113a and a command sequence issuing unit 113b.

キュー切り替え部113aは、優先度低のコマンドキュー111及び優先度高のコマンドキュー112のそれぞれに格納されたコマンドを監視し、コマンドシーケンス発行部113bによるコマンドシーケンス発行前であれば、それぞれにおけるコマンドの格納状況に応じて、優先度低のコマンドキュー111及び優先度高のコマンドキュー112のいずれかのコマンドキューを選択し、選択されたコマンドキューに格納されたコマンドの内容をコマンドシーケンス発行部113bへ通知する。   The queue switching unit 113a monitors the commands stored in the low-priority command queue 111 and the high-priority command queue 112, and before the command sequence issuance by the command sequence issuance unit 113b, Depending on the storage status, one of the command queues 111 having a low priority and the command queue 112 having a high priority is selected, and the contents of the command stored in the selected command queue are sent to the command sequence issuing unit 113b. Notice.

コマンドシーケンス発行部113bは、実行すべきコマンドの内容の通知をキュー切り替え部113aから受けたら、実行すべきコマンドの内容に応じてコマンドシーケンスを発行する。コマンドシーケンス発行部113bは、発行されたコマンドシーケンスに従って、NAND型フラッシュメモリ10へ供給すべき命令やデータを生成しそれらをNAND型フラッシュメモリ10へ供給するアクセス処理を行う。また、コマンドシーケンス発行部113bは、コマンドシーケンスを発行したその旨をキュー切り替え部113aへ通知する。   When the command sequence issuing unit 113b receives notification of the contents of the command to be executed from the queue switching unit 113a, the command sequence issuing unit 113b issues a command sequence according to the content of the command to be executed. The command sequence issuing unit 113b performs an access process for generating instructions and data to be supplied to the NAND flash memory 10 and supplying them to the NAND flash memory 10 according to the issued command sequence. Further, the command sequence issuing unit 113b notifies the queue switching unit 113a that the command sequence has been issued.

一方、キュー切り替え部113aは、コマンドシーケンス発行部113bによるコマンドシーケンス発行後、例えば優先度低のコマンドキュー111に格納された第1のコマンドの実行中に優先度高のコマンドキュー112に第2のコマンドが格納された場合、第2のコマンドが優先度高のコマンドキュー112に格納されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況をコマンドシーケンス発行部113bに問い合わせる。   On the other hand, after issuing the command sequence by the command sequence issuing unit 113b, the queue switching unit 113a stores the second priority in the high priority command queue 112 during execution of the first command stored in the low priority command queue 111, for example. When the command is stored, the command sequence issuing unit 113b is inquired about the progress of the access to the NAND flash memory 10 by the first command at the timing when the second command is stored in the command queue 112 having a high priority.

コマンドシーケンス発行部113bは、その問い合わせに応じて、アクセス進捗状況を判定する。すなわち、コマンドシーケンス発行部113bは、コマンドシーケンスが発行された後、NAND型フラッシュメモリ10からBusy信号を逐一受信する。コマンドシーケンス発行部113bは、Busy信号の値が「Ready」なのか「Busy」なのかに応じてアクセス進捗状況を判定する。   The command sequence issuing unit 113b determines the access progress status in response to the inquiry. That is, the command sequence issuing unit 113b receives Busy signals from the NAND flash memory 10 one by one after the command sequence is issued. The command sequence issuing unit 113b determines the access progress status according to whether the value of the Busy signal is “Ready” or “Busy”.

例えば、コマンドシーケンス発行部113bは、Busy信号の値が、コマンドシーケンス発行後に「Busy」になる前の「Ready」であれば、アクセス進捗状況がビジー状態開始前(例えば、図10に示す「NANDBusy前」)であると判定する。   For example, if the value of the Busy signal is “Ready” before issuing “Busy” after the command sequence issuance, the command sequence issuing unit 113b determines that the access progress status is before the start of the busy state (for example, “NANDBusy” shown in FIG. It is determined that “before”).

例えば、コマンドシーケンス発行部113bは、Busy信号の値が「Busy」であれば、アクセス進捗状況がビジー状態中(例えば、図10に示す「NANDBusy中」)であると判定する。   For example, if the value of the Busy signal is “Busy”, the command sequence issuing unit 113b determines that the access progress status is busy (for example, “NAND Busy” shown in FIG. 10).

例えば、コマンドシーケンス発行部113bは、Busy信号の値が、コマンドシーケンス発行後に「Busy」になった後の「Ready」であれば、アクセス進捗状況がビジー状態満了後(例えば、図10に示す「NANDBusy後」)であると判定する。
コマンドシーケンス発行部113bは、判定されたアクセス進捗状況をキュー切り替え部113aに通知する。
For example, if the value of the Busy signal is “Ready” after becoming “Busy” after issuance of the command sequence, the command sequence issuing unit 113b determines that the access progress status is after the busy state expires (for example, “ After NAND Busy ”).
The command sequence issuing unit 113b notifies the queue switching unit 113a of the determined access progress status.

キュー切り替え部113aは、アクセス進捗状況の通知を受けたら、アクセス進捗状況に応じて、実行中の第1のコマンドに関して中断処理と完了処理とのいずれかを行う。   When receiving the notification of the access progress status, the queue switching unit 113a performs either an interruption process or a completion process for the first command being executed according to the access progress status.

すなわち、キュー切り替え部113aは、中断処理を行う場合、優先度低のコマンドキュー111を選択した状態から優先度高のコマンドキュー112を選択した状態へ切り替えることで、第1のコマンドを中断して第2のコマンドを実行させる。このとき、キュー切り替え部113aは、第1のコマンドが中断中であることを示す中断状態フラグを保持してもよい。   That is, when performing the interruption process, the queue switching unit 113a interrupts the first command by switching from the state in which the low priority command queue 111 is selected to the state in which the high priority command queue 112 is selected. The second command is executed. At this time, the queue switching unit 113a may hold a suspension state flag indicating that the first command is suspended.

あるいは、キュー切り替え部113aは、完了処理を行う場合、優先度低のコマンドキュー111を選択した状態を維持することで、第1のコマンドの実行を完了させる。そして、キュー切り替え部113aは、完了処理により第1のコマンドの実行が完了された後に、第2のコマンドの実行を開始する。例えば、キュー切り替え部113aは、第1のコマンドの実行が完了した旨の通知をコマンドシーケンス発行部113bから受けたら、優先度低のコマンドキュー111を選択した状態から優先度高のコマンドキュー112を選択した状態へ切り替えることで、第2のコマンドの実行を開始させる。   Alternatively, when performing the completion process, the queue switching unit 113a maintains the state in which the low-priority command queue 111 is selected, thereby completing the execution of the first command. Then, the queue switching unit 113a starts executing the second command after the execution of the first command is completed by the completion process. For example, when the queue switching unit 113a receives a notification from the command sequence issuing unit 113b that the execution of the first command has been completed, the queue switching unit 113a changes the command queue 112 with the high priority from the state where the command queue 111 with the low priority is selected. By switching to the selected state, execution of the second command is started.

さらに、例えば、キュー切り替え部113aは、第1のコマンドの実行に伴うNAND型フラッシュメモリ10へのアクセス進捗状況と、第1のコマンドの種類とに応じて、中断処理と完了処理とのいずれかを行う。例えば、キュー切り替え部113aは、第1のコマンドが消去コマンド又は読み出しコマンドであることに応じて中断処理を行い、第1のコマンドが書き込みコマンドであることに応じて完了処理を行う。   Furthermore, for example, the queue switching unit 113a performs either the interruption process or the completion process depending on the progress of access to the NAND flash memory 10 associated with the execution of the first command and the type of the first command. I do. For example, the queue switching unit 113a performs an interruption process in response to the first command being an erase command or a read command, and performs a completion process in response to the first command being a write command.

より具体的には、キュー切り替え部113aは、第1のコマンドが書き込みコマンドであり、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態開始前であることに応じて、中断処理を行う。また、キュー切り替え部113aは、第1のコマンドが書き込みコマンドであり、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態開始後であることに応じて、完了処理を行う。   More specifically, the queue switching unit 113a determines that the first command is a write command and that the progress of access to the NAND flash memory 10 is before the start of the busy state of the NAND flash memory 10. , Interrupt processing. In addition, the queue switching unit 113a performs the completion process in response to the first command being a write command and the progress of access to the NAND flash memory 10 being after the busy state of the NAND flash memory 10 is started. Do.

あるいは、ここで、仮に、処理部113が、中断処理を行う際に、優先度低のコマンドキュー111のコマンドの処理を強制的に破棄してから、優先度高のコマンドキュー112のコマンドの処理を行う場合について考える。この場合、優先度低のコマンドキュー111のコマンドの処理を強制的に破棄してしまうことから、優先度低のコマンドキュー111のコマンドの処理に関してスループットが低下する傾向にある。   Alternatively, suppose that the processing unit 113 forcibly discards the command processing in the low priority command queue 111 and then processes the command in the high priority command queue 112 when performing the interruption processing. Think about when to do. In this case, since the processing of commands in the command queue 111 with low priority is forcibly discarded, the throughput of commands in the command queue 111 with low priority tends to decrease.

それに関して、実施形態では、処理部113が、中断処理により第1のコマンドの実行が中断され第2のコマンドの実行が完了された後に、中断されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況に応じて、継続処理とリトライ処理とのいずれかを行う。継続処理は、第1のコマンドの実行を中断時の処理から継続させるような処理である。リトライ処理は、第1のコマンドの実行を最初の処理からやり直させるような処理である。   In this regard, in the embodiment, after the execution of the first command is interrupted by the interruption process and the execution of the second command is completed, the processing unit 113 performs the NAND flash memory according to the first command at the interruption timing. Depending on the progress status of access to 10, either continuation processing or retry processing is performed. The continuation process is a process that continues the execution of the first command from the process at the time of interruption. The retry process is a process that causes the first command to be executed again from the first process.

例えば、キュー切り替え部113aは、中断処理により第1のコマンドの実行が中断され第2のコマンドの実行が完了された後に、優先度高のコマンドキュー112を選択した状態から優先度低のコマンドキュー111を選択した状態へ切り替えることで、中断されていた第1のコマンドの実行を実行すべき旨をコマンドシーケンス発行部113bへ通知する。   For example, after the execution of the first command is interrupted by the interruption process and the execution of the second command is completed, the queue switching unit 113a selects the command queue having the low priority from the state where the command queue 112 having the high priority is selected. By switching 111 to the selected state, the command sequence issuing unit 113b is notified that the execution of the interrupted first command should be executed.

これに応じて、コマンドシーケンス発行部113bは、中断処理により第1のコマンドの実行が中断されたタイミングにおけるNAND型フラッシュメモリ10へのアクセス進捗状況を判定する。このとき、コマンドシーケンス発行部113bは、判定されたアクセス進捗状況として、例えば中断処理を行うときに用いたアクセス進捗状況を用いてもよい。そして、例えば、コマンドシーケンス発行部113bは、NAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了前であることに応じて、第1のコマンドのコマンドシーケンスを最初から発行することで、第1のコマンドの実行を最初の処理からやり直させるようにするリトライ処理を行う。あるいは、例えば、コマンドシーケンス発行部113bは、NAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了後であることに応じて、第1のコマンドのコマンドシーケンスを中断時のものから発行することで、第1のコマンドの実行を中断時の処理から継続させる継続処理を行う。   In response to this, the command sequence issuing unit 113b determines the progress of access to the NAND flash memory 10 at the timing when the execution of the first command is interrupted by the interruption process. At this time, the command sequence issuing unit 113b may use, for example, the access progress status used when the interruption process is performed as the determined access progress status. For example, the command sequence issuing unit 113b issues a command sequence of the first command from the beginning in response to the progress of access to the NAND flash memory 10 before the busy state of the NAND flash memory 10 expires. As a result, a retry process is performed to restart the execution of the first command from the first process. Alternatively, for example, the command sequence issuance unit 113b interrupts the command sequence of the first command when the access progress status to the NAND flash memory 10 is after the busy state of the NAND flash memory 10 has expired. By issuing the command, the continuation process for continuing the execution of the first command from the process at the time of interruption is performed.

さらに、例えば、コマンドシーケンス発行部113bは、中断されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況と、第1のコマンドの種類及び第2のコマンドの種類の組み合わせとに応じて、継続処理とリトライ処理とのいずれかを行う。例えば、コマンドシーケンス発行部113bは、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含むことに応じて、継続処理を行い、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含まないことに応じて、リトライ処理を行う。   Further, for example, the command sequence issuance unit 113b determines the progress of access to the NAND flash memory 10 by the first command at the interrupted timing, and the combination of the first command type and the second command type. In response, either continuation processing or retry processing is performed. For example, the command sequence issuance unit 113b performs continuation processing in response to the combination of the first command type and the second command type including an erase command and a read command, and performs the first command type and the first command type. Retry processing is performed in response to the combination of the two command types not including the erase command and the read command.

より具体的には、コマンドシーケンス発行部113bは、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含み、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了前であることに応じて、リトライ処理を行う。コマンドシーケンス発行部113bは、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含み、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了後であることに応じて、継続処理を行う。   More specifically, the command sequence issuing unit 113b indicates that the combination of the first command type and the second command type includes an erase command and a read command, and the access progress status to the NAND flash memory 10 is NAND. In response to the fact that the busy state of the type flash memory 10 has not expired, a retry process is performed. The command sequence issuing unit 113b includes a combination of the first command type and the second command type that includes an erase command and a read command, and the access progress status to the NAND flash memory 10 is busy of the NAND flash memory 10. Continue processing is performed according to the fact that the state has expired.

なお、コマンドシーケンス発行部113bは、例えば、実行中のコマンドが書き込みコマンド又は消去コマンドであれば、ステータスリード命令に対する応答(例えば、ステータス情報)をNAND型フラッシュメモリ10から受信したことに応じて実行中のコマンドが完了したと判断する。あるいは、コマンドシーケンス発行部113bは、例えば、実行中のコマンドが読み出しコマンドであれば、読み出し予定のデータの最終アドレスのデータをNAND型フラッシュメモリ10から受信したことに応じて実行中のコマンドが完了したと判断する。コマンドシーケンス発行部113bは、実行中のコマンドが完了したと判断したらその旨をキュー切り替え部113aへ通知する。
次に、メモリシステム100の動作について図4を用いて説明する。図4は、メモリシステム100の動作を示すフローチャートである。
For example, if the command being executed is a write command or an erase command, the command sequence issuance unit 113b executes in response to receiving a response to the status read command (for example, status information) from the NAND flash memory 10. It is determined that the command inside is complete. Alternatively, for example, if the command being executed is a read command, the command sequence issuing unit 113b completes the command being executed in response to reception of data at the final address of the data to be read from the NAND flash memory 10 Judge that When determining that the command being executed is completed, the command sequence issuing unit 113b notifies the queue switching unit 113a to that effect.
Next, the operation of the memory system 100 will be described with reference to FIG. FIG. 4 is a flowchart showing the operation of the memory system 100.

ステップS1では、NANDコントローラ110が、優先度高のコマンドキュー112に第2のコマンドが格納されたことに応じて、優先度低のコマンドキュー111のコマンド(第1のコマンド)の処理を実行中であるか否かを判定する。NANDコントローラ110は、優先度低のコマンドキュー111のコマンドの処理を実行中である場合(ステップS1でYes)、処理をステップS10へ進め、優先度低のコマンドキュー111のコマンドの処理を実行中でない場合(ステップS1でNo)、処理をステップS7へ進める。   In step S1, the NAND controller 110 is executing a command (first command) in the command queue 111 with a low priority in response to the second command being stored in the command queue 112 with a high priority. It is determined whether or not. If the NAND controller 110 is executing the command processing of the command queue 111 with the low priority (Yes in step S1), the NAND controller 110 advances the processing to step S10 and is executing the command processing of the command queue 111 with the low priority. If not (No in step S1), the process proceeds to step S7.

ステップS10では、NANDコントローラ110が、第2のコマンドが優先度高のコマンドキュー112に格納されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況等に応じて、完了処理と中断処理とのいずれかを選択するための停止判定を行う。完了処理では、優先度の低いコマンドキューで実施中であった第1のコマンドによるアクセス処理を完結させた後、優先度の高いコマンドキューの第2のコマンドを実行する。中断処理では、優先度の低いコマンドキューで実施中であった第1のコマンドによるアクセス処理を中断して、優先度の高いコマンドキューの第2のコマンドを実行する。
具体的には、ステップS10において、NANDコントローラ110は、以下のステップS11〜ステップS13の処理を行う。
In step S10, the NAND controller 110 performs a completion process according to the progress of access to the NAND flash memory 10 by the first command at the timing when the second command is stored in the command queue 112 having a high priority. A stop determination is made to select one of the interruption processes. In the completion processing, after the access processing by the first command being executed in the command queue with low priority is completed, the second command in the command queue with high priority is executed. In the interruption process, the access process by the first command being executed in the command queue having a low priority is interrupted, and the second command in the command queue having a high priority is executed.
Specifically, in step S10, the NAND controller 110 performs the following steps S11 to S13.

ステップS11では、NANDコントローラ110が、NAND型フラッシュメモリ10へのアクセス進捗状況がビジー状態開始後か否かを判定する。NANDコントローラ110は、アクセス進捗状況がビジー状態開始前であれば、処理をステップS7へ進め、アクセス進捗状況がビジー状態開始前でなければ(すなわち、ビジー状態開始後であれば)、処理をステップS13へ進める。   In step S11, the NAND controller 110 determines whether or not the progress of access to the NAND flash memory 10 is after the busy state is started. If the access progress status is before the start of the busy state, the NAND controller 110 advances the process to step S7. If the access progress status is not before the start of the busy state (that is, after the start of the busy state), the NAND controller 110 Proceed to S13.

ステップS13では、NANDコントローラ110が、実行中の第1のコマンドの種類が書き込みコマンド(WRアクセス)であるか否かを判断する。NANDコントローラ110は、第1のコマンドの種類が書き込みコマンドである場合(ステップS13でYes)、処理をステップS2へ進め、第1のコマンドの種類が書き込みコマンドでない場合(ステップS13でNo)、処理をステップS7へ進める。   In step S13, the NAND controller 110 determines whether or not the type of the first command being executed is a write command (WR access). If the first command type is a write command (Yes in step S13), the NAND controller 110 advances the process to step S2. If the first command type is not a write command (No in step S13), the NAND controller 110 performs processing. To step S7.

ステップS2では、NANDコントローラ110が、完了処理を行う。すなわち、NANDコントローラ110は、優先度低のコマンドキュー111の第1のコマンドの実行を完了させる。   In step S2, the NAND controller 110 performs a completion process. That is, the NAND controller 110 completes the execution of the first command in the command queue 111 with a low priority.

ステップS7では、NANDコントローラ110が、中断処理を行う。すなわち、NANDコントローラ110は、優先度低のコマンドキュー111の第1のコマンドの実行を中断させる。このとき、NANDコントローラ110は、第1のコマンドの実行を中断中であることを示す中断状態フラグを生成して保持してもよい。
ステップS3では、NANDコントローラ110が、優先度高のコマンドキュー112の第2のコマンドの実行を行い、第2のコマンドの実行を完了させる。
In step S7, the NAND controller 110 performs an interruption process. That is, the NAND controller 110 interrupts the execution of the first command in the command queue 111 having a low priority. At this time, the NAND controller 110 may generate and hold an interruption state flag indicating that execution of the first command is being interrupted.
In step S3, the NAND controller 110 executes the second command in the command queue 112 having a high priority, and completes the execution of the second command.

ステップS20では、NANDコントローラ110が、中断されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況に応じて、通常処理と継続処理とリトライ処理とのいずれかを行うための復帰判定を行う。通常処理では、停止判定(ステップS10)で第1のコマンドを完了すべきと判定されたことに応じて完了処理(ステップS2)がなされた場合に対応し、通常通り優先度低のコマンドキューの処理を行う。継続処理では、停止判定(ステップS10)で第1のコマンドを中断すべきと判定されたことに応じて中断処理(ステップS7)がなされた場合に対応し、中断処理(ステップS7)で中断していた以降のアクセス処理を継続する。リトライ処理では、停止判定(ステップS10)で第1のコマンドを中断すべきと判定されたことに応じて中断処理(ステップS7)がなされた場合に対応し、優先度高のコマンドキュー112への切り替え前の優先度低のコマンドキュー111の第1のコマンドをリトライ処理する。
具体的には、ステップS20において、NANDコントローラ110は、以下のステップS21〜ステップS23の処理を行う。
In step S20, the NAND controller 110 returns to perform any one of normal processing, continuation processing, and retry processing according to the progress of access to the NAND flash memory 10 by the first command at the interrupted timing. Make a decision. The normal process corresponds to the case where the completion process (step S2) is performed in response to the determination that the first command should be completed in the stop determination (step S10). Process. In the continuation process, the interruption process (step S7) is interrupted in response to the interruption process (step S7) performed in response to the determination that the first command should be interrupted in the stop determination (step S10). Continue the access processing after that. The retry process corresponds to the case where the interruption process (step S7) is performed in response to the determination that the first command should be interrupted in the stop determination (step S10), and to the command queue 112 having a high priority. Retry processing is performed on the first command in the low-priority command queue 111 before switching.
Specifically, in step S20, the NAND controller 110 performs the following steps S21 to S23.

ステップS21では、NANDコントローラ110が、例えば上記の中断状態フラグを参照することなどにより、優先度低のコマンドキュー111が中断中か否かを判定する。NANDコントローラ110は、優先度低のコマンドキュー111が中断中でない、すなわち、第1のコマンドの処理が完了している場合(ステップS21でNo)、処理をステップS4へ進め、優先度低のコマンドキュー111が中断中である(ステップS22でYes)、処理をステップS22へ進める。   In step S21, the NAND controller 110 determines whether or not the low priority command queue 111 is suspended, for example, by referring to the suspension status flag. If the low priority command queue 111 is not suspended, that is, if the processing of the first command has been completed (No in step S21), the NAND controller 110 advances the processing to step S4, and executes the low priority command. If the queue 111 is suspended (Yes in step S22), the process proceeds to step S22.

ステップS22では、NANDコントローラ110が、中断されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況がビジー状態満了後(ビジー状態満了済み)であるか否かを判定する。NANDコントローラ110は、アクセス進捗状況がビジー状態満了後である場合(ステップS22でYes)、処理をステップS23へ進め、アクセス進捗状況がビジー状態満了後でない、すなわちビジー状態満了前である場合(ステップS22でYes)、処理をステップS6へ進める。   In step S22, the NAND controller 110 determines whether the progress of access to the NAND flash memory 10 by the first command at the interrupted timing is after the busy state has expired (the busy state has expired). If the access progress status is after the busy state has expired (Yes in step S22), the NAND controller 110 advances the processing to step S23, and if the access progress status is not after the busy state has expired, that is, before the busy state has expired (step) The process proceeds to step S6.

ステップS23では、NANDコントローラ110が、優先度低のコマンドキュー111の第1のコマンドの処理が、優先度高のコマンドキュー112の第2のコマンドで実行した処理がNAND型フラッシュメモリ10内の内部情報(キャッシュやステータス情報等)を更新するアクセスであることにより影響を受ける処理であるか否かを判定する。   In step S23, the processing executed by the NAND controller 110 in the NAND flash memory 10 is the processing of the first command in the command queue 111 having a low priority executed by the second command in the command queue 112 having a high priority. It is determined whether or not the process is affected by an access for updating information (cache, status information, etc.).

例えば、NANDコントローラ110は、優先度低のコマンドキュー111の第1のコマンドの種類と優先度高のコマンドキュー112の第2のコマンドの種類との組み合わせが、消去コマンド及び読み出しコマンドを含む場合、第1のコマンドの処理が、NAND型フラッシュメモリ10内の内部情報の更新アクセスにより影響を受けない処理であると判定し(ステップS23でNo)、処理をステップS5へ進める。   For example, when the combination of the first command type of the low priority command queue 111 and the second command type of the high priority command queue 112 includes an erase command and a read command, the NAND controller 110 It is determined that the process of the first command is a process that is not affected by the update access of the internal information in the NAND flash memory 10 (No in step S23), and the process proceeds to step S5.

あるいは、例えば、NANDコントローラ110は、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含まない場合、第1のコマンドの処理が、NAND型フラッシュメモリ10内の内部情報の更新アクセスにより影響を受ける処理であると判定し(ステップS23でYes)、処理をステップS6へ進める。   Alternatively, for example, when the combination of the first command type and the second command type does not include an erase command and a read command, the NAND controller 110 performs processing of the first command in the NAND flash memory 10. It is determined that the process is affected by the internal information update access (Yes in step S23), and the process proceeds to step S6.

ステップS4では、NANDコントローラ110が、通常処理を行う。すなわち、NANDコントローラ110は、優先度低のコマンドキュー111で第1のコマンドの次に格納されたコマンドを実行する。   In step S4, the NAND controller 110 performs normal processing. That is, the NAND controller 110 executes the command stored next to the first command in the command queue 111 having a low priority.

ステップS5では、NANDコントローラ110が、継続処理を行う。すなわち、NANDコントローラ110は、第1のコマンドの実行を中断時の処理から継続させて完了させる。   In step S5, the NAND controller 110 performs a continuation process. That is, the NAND controller 110 completes the execution of the first command from the process at the time of interruption.

ステップS6では、NANDコントローラ110が、リトライ処理を行う。すなわち、NANDコントローラ110は、第1のコマンドの実行を最初の処理からやり直させるように開始させ完了させる。
次に、停止判定(ステップS10)及び復帰判定(ステップS20)に伴う動作について、具体的なケースを例示しながら説明する。
In step S6, the NAND controller 110 performs a retry process. That is, the NAND controller 110 starts and completes the execution of the first command from the first process.
Next, operations associated with the stop determination (step S10) and the return determination (step S20) will be described with reference to specific cases.

第1のケースは、図5(a)に示すように、優先度低のコマンドキュー111の書き込みコマンドWR0を実行中に優先度高のコマンドキュー112に書き込みコマンドWR2が格納されたケースである。第1のケースは、例えば、図4に示す通常処理(ステップS4)に対応したケースである。   In the first case, as shown in FIG. 5A, the write command WR2 is stored in the command queue 112 with high priority while the write command WR0 of the command queue 111 with low priority is being executed. The first case is, for example, a case corresponding to the normal process (step S4) shown in FIG.

図5(b)に示すように、優先度低のコマンドキュー111の書き込みコマンドWR0のコマンドシーケンスでは、ライト命令(Cmd80h−Adr−DataIn−Cmd10h)、NANDコントローラ110からNAND型フラッシュメモリ10への書き込みデータの転送等のアクセス処理(tProg)、ステータスリード命令(Cmd70−StatusOut)が順に処理されることが予定されている。また、Busy信号の値は、アクセス処理(tProg)の前後で「Ready」であり、アクセス処理(tProg)中に「Busy」になることが予定されている。   As shown in FIG. 5B, in the command sequence of the write command WR0 of the low priority command queue 111, the write command (Cmd80h-Adr-DataIn-Cmd10h), the write from the NAND controller 110 to the NAND flash memory 10 is performed. It is scheduled that an access process (tProg) such as data transfer and a status read command (Cmd70-StatusOut) are sequentially processed. The value of the Busy signal is “Ready” before and after the access process (tProg), and is scheduled to become “Busy” during the access process (tProg).

このとき、「Busy」状態開始後のタイミングt1やタイミングt2において優先度高のコマンドキュー112に書き込みコマンドWR2が格納された場合、図5(c)に示すように、コマンドWR0のコマンドシーケンスの全て(すなわち、ライト命令とアクセス処理とステータスリード命令と)を完了させてから、優先度高のコマンドキュー112の書き込みコマンドWR2の実行を開始する。   At this time, when the write command WR2 is stored in the command queue 112 having a high priority at the timing t1 or the timing t2 after the start of the “Busy” state, as shown in FIG. 5C, the entire command sequence of the command WR0 After completing the write command, the access process, and the status read command, the execution of the write command WR2 of the command queue 112 having a high priority is started.

ここで、仮に、タイミングt1やタイミングt2において優先度高のコマンドキュー112に書き込みコマンドWR2が格納された場合に、優先度低のコマンドキュー111の書き込みコマンドWR0を中断させてしまうと、優先度高のコマンドキュー112の書き込みコマンドWR2完了後に優先度低のコマンドキュー111の書き込みコマンドWR0を中断時点から開始しようとしても、NAND型フラッシュメモリ10への書き込みが上書きになってしまう。NAND型フラッシュメモリ10は、上記のように一度書き込まれたメモリセルに上書きすることが困難であるため、代替のメモリセルを探して書き込むことになるが、先に途中まで書き込まれたメモリセルは無効なメモリセルとして破棄されることになる。これにより、NAND型フラッシュメモリ10におけるリソースを無駄な消費することになる。   Here, if the write command WR2 is stored in the command queue 112 with a high priority at the timing t1 or the timing t2, if the write command WR0 of the command queue 111 with a low priority is interrupted, the priority is high. Even if the write command WR0 of the low priority command queue 111 is started from the point of interruption after the completion of the write command WR2 of the command queue 112, writing to the NAND flash memory 10 is overwritten. Since the NAND flash memory 10 is difficult to overwrite the memory cell once written as described above, an alternative memory cell is searched for and written. It will be discarded as an invalid memory cell. As a result, resources in the NAND flash memory 10 are wasted.

それに対して、実施形態では、アクセス処理(tProg)が開始されたタイミング以降のタイミングt1やタイミングt2で優先度高のコマンドキュー112に書き込みコマンドWR2が格納された場合、NAND型フラッシュメモリ10の特性を考慮して、実行中のコマンドWR0のコマンドシーケンスを中断せずに全て完了させる。これにより、NAND型フラッシュメモリ10におけるリソースの無駄な消費を低減できる。   On the other hand, in the embodiment, when the write command WR2 is stored in the command queue 112 having a high priority at the timing t1 or the timing t2 after the timing when the access process (tProg) is started, the characteristics of the NAND flash memory 10 Therefore, all command sequences of the command WR0 being executed are completed without interruption. Thereby, useless consumption of resources in the NAND flash memory 10 can be reduced.

第2のケースは、図6(a)に示すように、優先度低のコマンドキュー111の消去コマンドER0を実行中に優先度高のコマンドキュー112に読み出しコマンドRD0が格納されたケースである。第2のケースは、例えば、図4に示す継続処理(ステップS5)に対応したケースである。   As shown in FIG. 6A, the second case is a case where the read command RD0 is stored in the high priority command queue 112 while the erase command ER0 of the low priority command queue 111 is being executed. The second case is, for example, a case corresponding to the continuation process (step S5) shown in FIG.

図6(b)に示すように、優先度低のコマンドキュー111の消去コマンドER0のコマンドシーケンスでは、イレース命令(Cmd60h−Adr−CmdD0h)、NANDコントローラ110からNAND型フラッシュメモリ10への消去動作に伴うアクセス処理(tBERASE)、ステータスリード命令(Cmd70−StatusOut)が順に処理されることが予定されている。また、Busy信号の値は、アクセス処理(tBERASE)の前後で「Ready」であり、アクセス処理(tBERASE)中に「Busy」になることが予定されている。   As shown in FIG. 6B, in the command sequence of the erase command ER0 of the low priority command queue 111, the erase command (Cmd60h-Adr-CmdD0h) is used for the erase operation from the NAND controller 110 to the NAND flash memory 10. The accompanying access process (tBERASE) and the status read instruction (Cmd70-StatusOut) are scheduled to be processed in order. The value of the Busy signal is “Ready” before and after the access process (tBERASE), and is scheduled to become “Busy” during the access process (tBERASE).

このとき、「Busy」状態満了後のタイミングt3において優先度高のコマンドキュー112に読み出しコマンドRD0が格納された場合、図6(c)に示すように、消去コマンドER0のコマンドシーケンスのうちイレース命令とアクセス処理とを完了させてから、消去コマンドER0を中断して、優先度高のコマンドキュー112の読み出しコマンドRD0の実行を開始する。そして、優先度高のコマンドキュー112の読み出しコマンドRD0の実行を完了したら、中断中の消去コマンドER0のコマンドシーケンスのうちステータスリード命令から処理を継続して再開し完了させる。   At this time, when the read command RD0 is stored in the command queue 112 with high priority at the timing t3 after the expiration of the “Busy” state, as shown in FIG. 6C, the erase command ER0 in the command sequence of the erase command ER0. And the access process are completed, the erase command ER0 is interrupted, and the execution of the read command RD0 of the command queue 112 having a high priority is started. Then, when the execution of the read command RD0 of the command queue 112 with a high priority is completed, the processing is resumed and completed from the status read command in the command sequence of the erasure command ER0 being interrupted.

本ケースにおいては、優先度高のコマンドキュー112の読み出しコマンドRD0の処理によって優先度低のコマンドキュー111で中断した際のNAND型フラッシュメモリ10の内部情報(キャッシュやステータス情報等)が棄損しない為、中断後、優先度高のコマンドキュー112の読み出しコマンドRD0の実行が完了してから、中断中の消去コマンドER0の継続処理が可能である。   In this case, because the internal information (cache, status information, etc.) of the NAND flash memory 10 when interrupted by the command queue 111 with low priority by processing of the read command RD0 of the command queue 112 with high priority is not lost. After the interruption, after the execution of the read command RD0 of the command queue 112 with the high priority is completed, the erasure command ER0 being interrupted can be continued.

第3のケースは、図7(a)に示すように、優先度低のコマンドキュー111の読み出しコマンドRD0を実行中に優先度高のコマンドキュー112に消去コマンドER0が格納されたケースである。第3のケースは、例えば、図4に示す継続処理(ステップS5)に対応したケースである。   As shown in FIG. 7A, the third case is a case where the erase command ER0 is stored in the high priority command queue 112 while the read command RD0 of the low priority command queue 111 is being executed. The third case is, for example, a case corresponding to the continuation process (step S5) shown in FIG.

図7(b)に示すように、優先度低のコマンドキュー111の読み出しコマンドRD0のコマンドシーケンスでは、リード命令(Cmd00h−Adr−Cmd30h)、NANDコントローラ110からNAND型フラッシュメモリ10へのデータ読み出し動作に伴うアクセス処理(tR)、NAND型フラッシュメモリ10からNANDコントローラ110へのデータ転送処理(DataOut)が順に処理されることが予定されている。また、Busy信号の値は、アクセス処理(tR)の前後で「Ready」であり、アクセス処理(tR)中に「Busy」になることが予定されている。   As shown in FIG. 7B, in the command sequence of the read command RD0 of the low priority command queue 111, the read command (Cmd00h-Adr-Cmd30h), the data read operation from the NAND controller 110 to the NAND flash memory 10 is performed. It is scheduled that the access process (tR) accompanying the above and the data transfer process (DataOut) from the NAND flash memory 10 to the NAND controller 110 are sequentially processed. The value of the Busy signal is “Ready” before and after the access process (tR), and is scheduled to become “Busy” during the access process (tR).

このとき、「Busy」状態満了後のタイミングt4において優先度高のコマンドキュー112に消去コマンドER0が格納された場合、図7(c)に示すように、読み出しコマンドRD0のコマンドシーケンスのうちリード命令とアクセス処理とを完了させてから、読み出しコマンドRD0を中断して、優先度高のコマンドキュー112の消去コマンドER0の実行を開始する。そして、優先度高のコマンドキュー112の消去コマンドER0の実行を完了したら、中断中の読み出しコマンドRD0のコマンドシーケンスのうちデータ転送処理から処理を継続して再開し完了させる。   At this time, if the erase command ER0 is stored in the command queue 112 having a high priority at the timing t4 after the “Busy” state expires, as shown in FIG. 7C, the read command RD0 in the command sequence of the read command RD0. And the access process are completed, the read command RD0 is interrupted, and the execution of the erase command ER0 of the command queue 112 having a high priority is started. Then, when the execution of the erase command ER0 of the command queue 112 having a high priority is completed, the processing is resumed and completed from the data transfer process in the command sequence of the interrupted read command RD0.

本ケースにおいては、優先度高のコマンドキュー112の消去コマンドER0の処理によって優先度低のコマンドキュー111で中断した際のNAND型フラッシュメモリ10の内部情報(キャッシュやステータス情報等)が棄損しない為、中断後、優先度高のコマンドキュー112の消去コマンドER0の実行が完了してから、中断中の読み出しコマンドRD0の継続処理が可能である。   In this case, because the internal information (cache, status information, etc.) of the NAND flash memory 10 when interrupted by the low priority command queue 111 by the processing of the erase command ER0 of the high priority command queue 112 is not lost. After the interruption, after the execution of the erase command ER0 of the high priority command queue 112 is completed, the continuation processing of the suspended read command RD0 is possible.

第4のケースは、図8(a)に示すように、優先度低のコマンドキュー111の消去コマンドER0を実行中に優先度高のコマンドキュー112に消去コマンドER1が格納されたケースである。第4のケースは、例えば、図4に示すリトライ処理(ステップS6)に対応したケースである。   In the fourth case, as shown in FIG. 8A, the erase command ER1 is stored in the command queue 112 having a high priority while the erase command ER0 of the command queue 111 having a low priority is being executed. The fourth case is, for example, a case corresponding to the retry process (step S6) shown in FIG.

図8(b)に示すように、優先度低のコマンドキュー111の消去コマンドER0のコマンドシーケンスでは、イレース命令(Cmd60h−Adr−CmdD0h)、NANDコントローラ110からNAND型フラッシュメモリ10への消去動作に伴うアクセス処理(tBERASE)、ステータスリード命令(Cmd70−StatusOut)が順に処理されることが予定されている。また、Busy信号の値は、アクセス処理(tBERASE)の前後で「Ready」であり、アクセス処理(tBERASE)中に「Busy」になることが予定されている。   As shown in FIG. 8B, in the command sequence of the erase command ER0 of the low priority command queue 111, the erase command (Cmd60h-Adr-CmdD0h) is used for the erase operation from the NAND controller 110 to the NAND flash memory 10. The accompanying access process (tBERASE) and the status read instruction (Cmd70-StatusOut) are scheduled to be processed in order. The value of the Busy signal is “Ready” before and after the access process (tBERASE), and is scheduled to become “Busy” during the access process (tBERASE).

このとき、「Busy」状態満了後のタイミングt5において優先度高のコマンドキュー112に消去コマンドER1が格納された場合、図8(c)に示すように、消去コマンドER0を中断して、優先度高のコマンドキュー112の消去コマンドER1の実行を開始する。そして、優先度高のコマンドキュー112の消去コマンドER1の実行を完了したら、中断中の消去コマンドER0のコマンドシーケンスのうち最初のイレース命令から処理をやり直すように処理を開始し完了させる。   At this time, when the erase command ER1 is stored in the high priority command queue 112 at the timing t5 after the expiration of the “Busy” state, the erase command ER0 is interrupted as shown in FIG. The execution of the erase command ER1 of the high command queue 112 is started. When the execution of the erase command ER1 of the command queue 112 having a high priority is completed, the process is started and completed so that the process is restarted from the first erase instruction in the command sequence of the interrupted erase command ER0.

本ケースにおいては、優先度高のコマンドキュー112の消去コマンドER1の処理によって優先度低のコマンドキュー111で中断した際のNAND型フラッシュメモリ10の内部情報(キャッシュやステータス情報等)が棄損される為、中断後、優先度高のコマンドキュー112の消去コマンドER1の実行が完了してから、中断中の消去コマンドER0のリトライ処理が必要になる。   In this case, the internal information (cache, status information, etc.) of the NAND flash memory 10 when it is interrupted by the low priority command queue 111 by the processing of the erase command ER1 of the high priority command queue 112 is discarded. For this reason, after execution of the erase command ER1 of the command queue 112 with high priority is completed after the interruption, retry processing of the erase command ER0 being interrupted is necessary.

第5のケースは、図9(a)に示すように、優先度低のコマンドキュー111の消去コマンドER0を実行中に優先度高のコマンドキュー112に消去コマンドER1が格納されたケースである。第5のケースは、例えば、図4に示すリトライ処理(ステップS6)に対応したケースである。   In the fifth case, as shown in FIG. 9A, the erase command ER1 is stored in the command queue 112 having a high priority while executing the erase command ER0 of the command queue 111 having a low priority. The fifth case is, for example, a case corresponding to the retry process (step S6) shown in FIG.

図9(b)に示すように、優先度低のコマンドキュー111の消去コマンドER0のコマンドシーケンスでは、イレース命令(Cmd60h−Adr−CmdD0h)、NANDコントローラ110からNAND型フラッシュメモリ10への消去動作に伴うアクセス処理(tBERASE)、ステータスリード命令(Cmd70−StatusOut)が順に処理されることが予定されている。また、Busy信号の値は、アクセス処理(tBERASE)の前後で「Ready」であり、アクセス処理(tBERASE)中に「Busy」になることが予定されている。   As shown in FIG. 9B, in the command sequence of the erase command ER0 of the low priority command queue 111, the erase command (Cmd60h-Adr-CmdD0h) is used for the erase operation from the NAND controller 110 to the NAND flash memory 10. The accompanying access process (tBERASE) and the status read instruction (Cmd70-StatusOut) are scheduled to be processed in order. The value of the Busy signal is “Ready” before and after the access process (tBERASE), and is scheduled to become “Busy” during the access process (tBERASE).

このとき、「Busy」状態開始前のタイミングt6において優先度高のコマンドキュー112に消去コマンドER1が格納された場合、図9(c)に示すように、消去コマンドER0を中断して、優先度高のコマンドキュー112の消去コマンドER1の実行を開始する。そして、優先度高のコマンドキュー112の消去コマンドER1の実行を完了したら、中断中の消去コマンドER0のコマンドシーケンスのうち最初のイレース命令から処理をやり直すように処理を開始し完了させる。   At this time, if the erase command ER1 is stored in the high priority command queue 112 at the timing t6 before the start of the “Busy” state, the erase command ER0 is interrupted as shown in FIG. The execution of the erase command ER1 of the high command queue 112 is started. When the execution of the erase command ER1 of the command queue 112 having a high priority is completed, the process is started and completed so that the process is restarted from the first erase instruction in the command sequence of the interrupted erase command ER0.

あるいは、「Busy」状態中のタイミングt7において優先度高のコマンドキュー112に消去コマンドER1が格納された場合、図9(d)に示すように、消去コマンドER0を中断して、優先度高のコマンドキュー112の消去コマンドER1の実行を開始する。そして、優先度高のコマンドキュー112の消去コマンドER1の実行を完了したら、中断中の消去コマンドER0のコマンドシーケンスのうち最初のイレース命令から処理をやり直すように処理を開始し完了させる。   Alternatively, when the erase command ER1 is stored in the high priority command queue 112 at the timing t7 in the “Busy” state, the erase command ER0 is interrupted as shown in FIG. The execution of the erase command ER1 in the command queue 112 is started. When the execution of the erase command ER1 of the command queue 112 having a high priority is completed, the process is started and completed so that the process is restarted from the first erase instruction in the command sequence of the interrupted erase command ER0.

本ケースにおいては、優先度高のコマンドキュー112の消去コマンドER1の処理によって優先度低のコマンドキュー111で中断した際のNAND型フラッシュメモリ10の内部情報(キャッシュやステータス情報等)が棄損される為、中断後、優先度高のコマンドキュー112の消去コマンドER1の実行が完了してから、中断中の消去コマンドER0のリトライ処理が必要になる。   In this case, the internal information (cache, status information, etc.) of the NAND flash memory 10 when it is interrupted by the low priority command queue 111 by the processing of the erase command ER1 of the high priority command queue 112 is discarded. For this reason, after execution of the erase command ER1 of the command queue 112 with high priority is completed after the interruption, retry processing of the erase command ER0 being interrupted is necessary.

このように、停止判定(ステップS10)及び復帰判定(ステップS20)に伴う動作について、第1のケース〜第5のケースを例示して説明したが、それ以外にも様々なケースが考えられる。様々なケースについてまとめたものを図10に示す。   As described above, the operations associated with the stop determination (step S10) and the return determination (step S20) have been described by exemplifying the first case to the fifth case, but various other cases are conceivable. A summary of the various cases is shown in FIG.

ここで、仮に、処理部113が、優先度低のコマンドキュー111のコマンドの処理を必ず完了させてから優先度高のコマンドキュー112のコマンドの処理を行う場合を考える。この場合、優先度の低いコマンドの処理完了を待つ時間分、優先度の高いコマンドへのレイテンシ(コマンド応答までの時間)が長くなる傾向にある。   Here, it is assumed that the processing unit 113 always completes the command processing of the command queue 111 with the low priority and then processes the command of the command queue 112 with the high priority. In this case, there is a tendency that the latency (time to command response) to a command with a higher priority becomes longer by the time waiting for the completion of processing of a command with a lower priority.

それに対して、実施形態では、処理部113が、優先度低のコマンドキュー111に格納された第1のコマンドの実行中に優先度高のコマンドキュー112に第2のコマンドが格納された場合、第2のコマンドが優先度高のコマンドキュー112に格納されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況に応じて、中断処理と完了処理とのいずれかを行う。中断処理は、第1のコマンドの実行を中断して第2のコマンドを実行させるような処理である。完了処理は、第1のコマンドの実行を完了させるような処理である。これにより、第1のコマンドの実行を必ず完了させる場合に比べて、優先度の高いコマンドへのレイテンシ(コマンド応答までの時間)を短縮できる。   On the other hand, in the embodiment, when the processing unit 113 stores the second command in the high priority command queue 112 while executing the first command stored in the low priority command queue 111, Depending on the progress of access to the NAND flash memory 10 by the first command at the timing when the second command is stored in the high priority command queue 112, either the interruption process or the completion process is performed. The interruption process is a process for interrupting the execution of the first command and executing the second command. The completion process is a process for completing the execution of the first command. As a result, the latency (time to command response) for a command having a higher priority can be shortened as compared with the case where the execution of the first command is necessarily completed.

また、実施形態では、処理部113が、第1のコマンドの実行に伴うNAND型フラッシュメモリ10へのアクセス進捗状況と、第1のコマンドの種類とに応じて、中断処理と完了処理とのいずれかを行う。これにより、第1のコマンドを停止することに関して、アクセス進捗状況と第1のコマンドの種類との両方を考慮した適切な処理を行うことができる。   In the embodiment, the processing unit 113 selects either the interruption process or the completion process depending on the progress of access to the NAND flash memory 10 associated with the execution of the first command and the type of the first command. Do something. As a result, with regard to stopping the first command, it is possible to perform appropriate processing in consideration of both the access progress status and the type of the first command.

例えば、実施形態では、処理部113が、第1のコマンドが消去コマンド又は読み出しコマンドであることに応じて中断処理を行い、第1のコマンドが書き込みコマンドであることに応じて完了処理を行う。これにより、コマンドの実行に伴うNAND型フラッシュメモリ10の特性を考慮して、中断処理と完了処理とを切り替えて行うことができる。   For example, in the embodiment, the processing unit 113 performs an interruption process in response to the first command being an erase command or a read command, and performs a completion process in response to the first command being a write command. As a result, the interruption process and the completion process can be switched in consideration of the characteristics of the NAND flash memory 10 associated with the execution of the command.

あるいは、仮に、第1のコマンドが書き込みコマンドであり、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態開始後であるときに中断処理を行う場合について考える。この場合、優先度高のコマンドキュー112の第2のコマンドの実行完了後に優先度低のコマンドキュー111の第1のコマンド(書き込みコマンド)を中断時点から開始しようとしても、NAND型フラッシュメモリ10への書き込みが上書きになってしまう。NAND型フラッシュメモリ10は、上記のように一度書き込まれたメモリセルに上書きすることが困難であるため、代替のメモリセルを探して書き込むことになるが、先に途中まで書き込まれたメモリセルは無効なメモリセルとして破棄されることになる。これにより、NAND型フラッシュメモリ10におけるリソースを無駄に消費することになる。   Alternatively, suppose that the interruption process is performed when the first command is a write command and the progress of access to the NAND flash memory 10 is after the NAND flash memory 10 is in a busy state. In this case, even if the first command (write command) of the low priority command queue 111 is started from the point of interruption after the execution of the second command of the high priority command queue 112 is completed, it is transferred to the NAND flash memory 10. Will be overwritten. Since the NAND flash memory 10 is difficult to overwrite the memory cell once written as described above, an alternative memory cell is searched for and written. It will be discarded as an invalid memory cell. As a result, resources in the NAND flash memory 10 are wasted.

あるいは、仮に、第1のコマンドが書き込みコマンドであり、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態開始前であるときに完了処理を行う場合について考える。この場合、優先度高のコマンドキュー112の第2のコマンドの実行完了後に優先度低のコマンドキュー111の第1のコマンド(書き込みコマンド)を中断時点から開始することができる。すなわち、ビジー状態開始前であればNAND型フラッシュメモリ10へのメモリセルへの書き込みがまだ実施されていないので、メモリセルへの書き込みが上書きにならずにメモリセルへ書き込みを行うことができる。すなわち、この場合に完了処理を行うことは、無駄に、第1のコマンドの実行を完了させるものであり、優先度の高いコマンドへのレイテンシ(コマンド応答までの時間)が長くなる傾向にある。   Alternatively, suppose that the completion processing is performed when the first command is a write command and the progress of access to the NAND flash memory 10 is before the busy state of the NAND flash memory 10 starts. In this case, the first command (write command) in the low priority command queue 111 can be started from the point of interruption after the execution of the second command in the high priority command queue 112 is completed. That is, if the busy state is not yet started, the writing to the memory cell in the NAND flash memory 10 has not been performed yet, so the writing to the memory cell can be performed without being overwritten. That is, in this case, performing the completion process unnecessarily completes the execution of the first command, and tends to increase the latency (time to command response) to a command with a high priority.

それに対して、実施形態では、処理部113が、第1のコマンドが書き込みコマンドであり、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態開始前であることに応じて、中断処理を行う。これにより、NAND型フラッシュメモリ10の特性を考慮して、実行中の第1のコマンド(書き込みコマンド)のコマンドシーケンスを中断させるので、優先度の高いコマンドへのレイテンシを低減できる。また、処理部113は、第1のコマンドが書き込みコマンドであり、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態開始後であることに応じて、完了処理を行う。すなわち、処理部113は、完了処理により第1のコマンドの実行が完了された後に、第2のコマンドの実行を開始する。これにより、NAND型フラッシュメモリ10の特性を考慮して、実行中の第1のコマンド(書き込みコマンド)のコマンドシーケンスを中断せずに全て完了させるので、NAND型フラッシュメモリ10におけるリソースの無駄な消費を低減できる。すなわち、実施形態によれば、優先度の高いコマンドへのレイテンシを低減できるとともに、NAND型フラッシュメモリ10におけるリソースの無駄な消費を低減できる。   On the other hand, in the embodiment, the processing unit 113 responds that the first command is a write command and the progress of access to the NAND flash memory 10 is before the start of the busy state of the NAND flash memory 10. To perform interruption processing. Accordingly, the command sequence of the first command (write command) being executed is interrupted in consideration of the characteristics of the NAND flash memory 10, so that the latency to a command with a high priority can be reduced. Further, the processing unit 113 performs a completion process in response to the first command being a write command and the progress of access to the NAND flash memory 10 being after the busy state of the NAND flash memory 10 is started. . That is, the processing unit 113 starts executing the second command after the execution of the first command is completed by the completion process. As a result, the command sequence of the first command (write command) being executed is completed without interruption in consideration of the characteristics of the NAND flash memory 10, and wasteful consumption of resources in the NAND flash memory 10 is achieved. Can be reduced. That is, according to the embodiment, it is possible to reduce the latency to a command having a high priority, and to reduce wasteful consumption of resources in the NAND flash memory 10.

あるいは、仮に、処理部113が、中断処理を行う際に、優先度低のコマンドキュー111の第1のコマンドの処理を強制的に破棄してから、優先度高のコマンドキュー112の第2のコマンドの処理を行う場合について考える。この場合、優先度低のコマンドキュー111の第1のコマンドの処理を強制的に破棄してしまうことから、優先度低のコマンドキュー111の第1のコマンドの処理に関してスループットが低下する傾向にある。   Alternatively, if the processing unit 113 performs the interruption process, the processing of the first command in the low priority command queue 111 is forcibly discarded, and then the second priority in the high priority command queue 112 is set. Consider the case of command processing. In this case, since the processing of the first command in the command queue 111 with a low priority is forcibly discarded, the throughput of the first command in the command queue 111 with a low priority tends to decrease. .

それに対して、実施形態では、処理部113が、中断処理により第1のコマンドの実行が中断され第2のコマンドの実行が完了された後に、中断されたタイミングにおける前記第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況に応じて、継続処理とリトライ処理とのいずれかを行う。継続処理は、第1のコマンドの実行を中断時の処理から継続させる処理である。リトライ処理は、第1のコマンドの実行を最初の処理からやり直す処理である。これにより、NAND型フラッシュメモリ10の特性、すなわちNAND型フラッシュメモリ10の内部状態が棄損されるか否かを考慮して、可能な場合に第1のコマンドを中断時の処理から継続させることができる。この結果、優先度低のコマンドキュー111の第1のコマンドの処理に関してスループットを向上できる。   On the other hand, in the embodiment, after the execution of the first command is interrupted by the interruption process and the execution of the second command is completed, the processing unit 113 performs the NAND type based on the first command at the interruption timing. Depending on the progress of access to the flash memory 10, either the continuation process or the retry process is performed. The continuation process is a process for continuing the execution of the first command from the process at the time of interruption. The retry process is a process for redoing the execution of the first command from the first process. Thus, in consideration of the characteristics of the NAND flash memory 10, that is, whether or not the internal state of the NAND flash memory 10 is destroyed, the first command can be continued from the processing at the time of interruption when possible. it can. As a result, the throughput can be improved with respect to the processing of the first command in the command queue 111 having a low priority.

また、実施形態では、処理部113が、NAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了前であることに応じて、リトライ処理を行い、NAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了後であることに応じて、継続処理を行う。これにより、アクセス進捗状況を考慮して、可能な場合に第1のコマンドを中断時の処理から継続させることができる。   In the embodiment, the processing unit 113 performs a retry process in response to the progress of access to the NAND flash memory 10 before the busy state of the NAND flash memory 10 expires, and transfers the NAND flash memory 10 to the NAND flash memory 10. Is continued after the busy state of the NAND flash memory 10 has expired. As a result, the first command can be continued from the processing at the time of interruption when possible, considering the access progress.

また、実施形態では、処理部113が、中断されたタイミングにおける第1のコマンドによるNAND型フラッシュメモリ10へのアクセス進捗状況と、第1のコマンドの種類及び第2のコマンドの種類の組み合わせとに応じて、継続処理とリトライ処理とのいずれかを行う。これにより、第1のコマンドの実行へ復帰させることに関して、アクセス進捗状況と第1のコマンドの種類及び第2のコマンドの種類の組み合わせとの両方を考慮した適切な処理を行うことができる。   Further, in the embodiment, the processing unit 113 performs the progress of access to the NAND flash memory 10 by the first command at the interrupted timing, and the combination of the first command type and the second command type. In response, either continuation processing or retry processing is performed. As a result, regarding the return to the execution of the first command, it is possible to perform appropriate processing in consideration of both the access progress status and the combination of the first command type and the second command type.

また、実施形態では、処理部113が、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含むことに応じて、継続処理を行い、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含まないことに応じて、リトライ処理を行う。これにより、NAND型フラッシュメモリ10の特性、すなわちNAND型フラッシュメモリ10の内部状態が棄損されるか否かを考慮して、可能な場合に第1のコマンドを中断時の処理から継続させることができる。   In the embodiment, the processing unit 113 performs a continuation process in response to the combination of the first command type and the second command type including an erase command and a read command, and the first command type. In response to the combination of the second command type not including the erase command and the read command, the retry process is performed. Thus, in consideration of the characteristics of the NAND flash memory 10, that is, whether or not the internal state of the NAND flash memory 10 is destroyed, the first command can be continued from the processing at the time of interruption when possible. it can.

また、実施形態では、処理部113が、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含み、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了前であることに応じて、リトライ処理を行う。処理部113は、第1のコマンドの種類及び第2のコマンドの種類の組み合わせが消去コマンド及び読み出しコマンドを含み、且つNAND型フラッシュメモリ10へのアクセス進捗状況がNAND型フラッシュメモリ10のビジー状態満了後であることに応じて、継続処理を行う。これにより、アクセス進捗状況と第1のコマンドの種類及び第2のコマンドの種類の組み合わせとの両方を考慮して、NAND型フラッシュメモリ10の内部状態が棄損されない場合に、第1のコマンドを中断時の処理から継続させることができる。   In the embodiment, the processing unit 113 includes a combination of the first command type and the second command type that includes an erase command and a read command, and the access progress status to the NAND flash memory 10 is NAND flash. In response to the fact that the busy state of the memory 10 has not expired, a retry process is performed. The processing unit 113 includes a combination of the first command type and the second command type including an erase command and a read command, and the access progress status to the NAND flash memory 10 indicates that the NAND flash memory 10 is busy. Continue processing is performed according to what is later. Thus, in consideration of both the access progress and the combination of the first command type and the second command type, the first command is interrupted when the internal state of the NAND flash memory 10 is not destroyed. It can be continued from time processing.

なお、上記の実施形態では、書き込みコマンドのコマンドシーケンスにおいて、アクセス処理(tProg)の完了後にステータスリード命令(Cmd70−StatusOut)を行う場合について例示している(図5(b)参照)が、ステータスリード命令は、ステータポーリング命令として、アクセス処理中から開始され繰り返し行われてもよい。   In the above embodiment, the case where the status read command (Cmd70-StatusOut) is performed after the completion of the access process (tProg) in the command sequence of the write command is illustrated (see FIG. 5B). The read command may be repeated as a status polling command, starting from the access process.

同様に、消去コマンドのコマンドシーケンスにおいて、アクセス処理(tBERASE)の完了後にステータスリード命令(Cmd70−StatusOut)を行う場合について例示している(図6(b)参照)が、ステータスリード命令は、ステータポーリング命令として、アクセス処理中から開始され繰り返し行われてもよい。   Similarly, in the command sequence of the erase command, a case where a status read command (Cmd70-StatusOut) is performed after the completion of the access process (tBERASE) is illustrated (see FIG. 6B). As a polling instruction, it may be started repeatedly during access processing.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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.

2 ATA I/F、4 ドライブ制御回路、10 NAND型フラッシュメモリ、11 メモリセルアレイ、12 ページバッファ、13 データキャッシュ、14 ステータスレジスタ、15 制御回路、20 RAM、100 メモリシステム、101 データアクセス用バス、102 回路制御用バス、104 プロセッサ、105 ブートROM、106 ROMコントローラ、110 NANDコントローラ、111 優先度低のコマンドキュー、112 優先度高のコマンドキュー、113 処理部、113a キュー切り替え部、113b コマンドシーケンス発行部、114 RAMコントローラ、115 SRAM、116 SRAMコントローラ、117 ATAコントローラ。   2 ATA I / F, 4 drive control circuit, 10 NAND flash memory, 11 memory cell array, 12 page buffer, 13 data cache, 14 status register, 15 control circuit, 20 RAM, 100 memory system, 101 data access bus, 102 circuit control bus, 104 processor, 105 boot ROM, 106 ROM controller, 110 NAND controller, 111 low priority command queue, 112 high priority command queue, 113 processing unit, 113a queue switching unit, 113b command sequence issue Part, 114 RAM controller, 115 SRAM, 116 SRAM controller, 117 ATA controller.

Claims (10)

不揮発性半導体メモリと、
前記不揮発性半導体メモリを制御する制御部と、
を備え、
前記制御部は、
第1のコマンドキューと、
前記第1のコマンドキューより高い優先度を有する第2のコマンドキューと、
前記第1のコマンドキュー及び前記第2のコマンドキューのいずれかのコマンドキューを選択し、選択されたコマンドキューに格納されたコマンドを実行させ前記不揮発性半導体メモリへのアクセス処理を行う処理部であって、前記第1のコマンドキューに格納された第1のコマンドの実行中に前記第2のコマンドキューに第2のコマンドが格納された場合、前記第2のコマンドが前記第2のコマンドキューに格納されたタイミングにおける前記第1のコマンドによる前記不揮発性半導体メモリへのアクセス進捗状況に応じて、前記第1のコマンドの実行を中断して前記第2のコマンドを実行させる中断処理と前記第1のコマンドの実行を完了させる完了処理とのいずれかを行う処理部と、
を有する
ことを特徴とするメモリシステム。
Non-volatile semiconductor memory;
A control unit for controlling the nonvolatile semiconductor memory;
With
The controller is
A first command queue;
A second command queue having a higher priority than the first command queue;
A processing unit that selects any one of the first command queue and the second command queue, executes a command stored in the selected command queue, and performs access processing to the nonvolatile semiconductor memory. If the second command is stored in the second command queue during execution of the first command stored in the first command queue, the second command is stored in the second command queue. And an interrupt process for interrupting execution of the first command and executing the second command in accordance with the progress of access to the nonvolatile semiconductor memory by the first command at the timing stored in A processing unit that performs any one of a completion process for completing the execution of one command;
A memory system comprising:
前記処理部は、前記第1のコマンドの実行に伴う前記不揮発性半導体メモリへのアクセス進捗状況と、前記第1のコマンドの種類とに応じて、前記中断処理と前記完了処理とのいずれかを行う
ことを特徴とする請求項1に記載のメモリシステム。
The processing unit performs either the interruption process or the completion process depending on the progress of access to the nonvolatile semiconductor memory accompanying the execution of the first command and the type of the first command. The memory system according to claim 1, wherein the memory system is performed.
前記処理部は、前記第1のコマンドが消去コマンド又は読み出しコマンドであることに応じて前記中断処理を行い、前記第1のコマンドが書き込みコマンドであることに応じて前記完了処理を行う
ことを特徴とする請求項2に記載のメモリシステム。
The processing unit performs the interruption process in response to the first command being an erase command or a read command, and performs the completion process in response to the first command being a write command. The memory system according to claim 2.
前記処理部は、前記第1のコマンドが書き込みコマンドであり、且つ前記不揮発性半導体メモリへのアクセス進捗状況が前記不揮発性半導体メモリのビジー状態開始前であることに応じて、前記中断処理を行い、前記第1のコマンドが書き込みコマンドであり、且つ前記不揮発性半導体メモリへのアクセス進捗状況が前記不揮発性半導体メモリのビジー状態開始後であることに応じて、前記完了処理を行う
ことを特徴とする請求項3に記載のメモリシステム。
The processing unit performs the interruption process when the first command is a write command and the progress of access to the nonvolatile semiconductor memory is before the busy state of the nonvolatile semiconductor memory is started. The completion processing is performed in response to the first command being a write command and the progress of access to the nonvolatile semiconductor memory being after the busy state of the nonvolatile semiconductor memory is started. The memory system according to claim 3.
前記処理部は、前記完了処理により前記第1のコマンドの実行が完了された後に、前記第2のコマンドの実行を開始する
ことを特徴とする請求項1から4のいずれか1項に記載のメモリシステム。
5. The method according to claim 1, wherein the processing unit starts executing the second command after the execution of the first command is completed by the completion processing. 6. Memory system.
前記処理部は、前記中断処理により前記第1のコマンドの実行が中断され前記第2のコマンドの実行が完了された後に、中断されたタイミングにおける前記第1のコマンドによる前記不揮発性半導体メモリへのアクセス進捗状況に応じて、前記第1のコマンドの実行を中断時の処理から継続させる継続処理と前記第1のコマンドの実行を最初の処理からやり直すリトライ処理とのいずれかを行う
ことを特徴とする請求項1から4のいずれか1項に記載のメモリシステム。
After the execution of the first command is interrupted by the interruption process and the execution of the second command is completed, the processing unit applies the first command to the nonvolatile semiconductor memory at the interruption timing. According to an access progress situation, either the continuation process for continuing the execution of the first command from the process at the time of interruption or the retry process for re-executing the execution of the first command from the first process is performed. The memory system according to any one of claims 1 to 4.
前記処理部は、前記不揮発性半導体メモリへのアクセス進捗状況が前記不揮発性半導体メモリのビジー状態満了前であることに応じて、前記リトライ処理を行い、前記不揮発性半導体メモリへのアクセス進捗状況が前記不揮発性半導体メモリのビジー状態満了後であることに応じて、前記継続処理を行う
ことを特徴とする請求項6に記載のメモリシステム。
The processing unit performs the retry process in response to the progress of access to the non-volatile semiconductor memory being before the busy state of the non-volatile semiconductor memory expires, and the progress of access to the non-volatile semiconductor memory is The memory system according to claim 6, wherein the continuation process is performed in response to the expiration of the busy state of the nonvolatile semiconductor memory.
前記処理部は、中断されたタイミングにおける前記第1のコマンドによる前記不揮発性半導体メモリへのアクセス進捗状況と、前記第1のコマンドの種類及び前記第2のコマンドの種類の組み合わせとに応じて、前記継続処理と前記リトライ処理とのいずれかを行う
ことを特徴とする請求項6に記載のメモリシステム。
The processing unit, according to the progress of access to the nonvolatile semiconductor memory by the first command at the interrupted timing, and a combination of the type of the first command and the type of the second command, The memory system according to claim 6, wherein either the continuation process or the retry process is performed.
前記処理部は、前記組み合わせが消去コマンド及び読み出しコマンドを含むことに応じて、前記継続処理を行い、前記組み合わせが消去コマンド及び読み出しコマンドを含まないことに応じて、前記リトライ処理を行う
ことを特徴とする請求項8に記載のメモリシステム。
The processing unit performs the continuation process in response to the combination including an erase command and a read command, and performs the retry process in response to the combination not including an erase command and a read command. The memory system according to claim 8.
前記処理部は、前記組み合わせが消去コマンド及び読み出しコマンドを含み、且つ前記不揮発性半導体メモリへのアクセス進捗状況が前記不揮発性半導体メモリのビジー状態満了前であることに応じて、前記リトライ処理を行い、前記組み合わせが消去コマンド及び読み出しコマンドを含み、且つ前記不揮発性半導体メモリへのアクセス進捗状況が前記不揮発性半導体メモリのビジー状態満了後であることに応じて、前記継続処理を行う
ことを特徴とする請求項9に記載のメモリシステム。
The processing unit performs the retry process when the combination includes an erase command and a read command and the progress of access to the nonvolatile semiconductor memory is before the busy state of the nonvolatile semiconductor memory expires. The continuation processing is performed when the combination includes an erase command and a read command, and the progress of access to the nonvolatile semiconductor memory is after the busy state of the nonvolatile semiconductor memory has expired. The memory system according to claim 9.
JP2012068367A 2012-03-23 2012-03-23 Memory system Pending JP2013200692A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012068367A JP2013200692A (en) 2012-03-23 2012-03-23 Memory system
US13/600,578 US8996782B2 (en) 2012-03-23 2012-08-31 Memory system and bank interleaving method
US14/641,930 US9304691B2 (en) 2012-03-23 2015-03-09 Memory system and bank interleaving method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012068367A JP2013200692A (en) 2012-03-23 2012-03-23 Memory system

Publications (1)

Publication Number Publication Date
JP2013200692A true JP2013200692A (en) 2013-10-03

Family

ID=49520896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012068367A Pending JP2013200692A (en) 2012-03-23 2012-03-23 Memory system

Country Status (1)

Country Link
JP (1) JP2013200692A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016046970A1 (en) * 2014-09-26 2016-03-31 株式会社日立製作所 Storage device
WO2017077624A1 (en) * 2015-11-05 2017-05-11 株式会社日立製作所 Nonvolatile memory device, and storage device having nonvolatile memory device
JP2018101301A (en) * 2016-12-20 2018-06-28 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus and memory access method
US11494082B2 (en) 2018-03-19 2022-11-08 Kioxia Corporation Memory system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016046970A1 (en) * 2014-09-26 2016-03-31 株式会社日立製作所 Storage device
WO2017077624A1 (en) * 2015-11-05 2017-05-11 株式会社日立製作所 Nonvolatile memory device, and storage device having nonvolatile memory device
US10310770B2 (en) 2015-11-05 2019-06-04 Hitachi, Ltd. Nonvolatile memory device, and storage apparatus having nonvolatile memory device
JP2018101301A (en) * 2016-12-20 2018-06-28 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus and memory access method
WO2018116937A1 (en) * 2016-12-20 2018-06-28 株式会社ソニー・インタラクティブエンタテインメント Information processing device and memory access method
US11281572B2 (en) 2016-12-20 2022-03-22 Sony Interactive Entertainment Inc. Information processing apparatus and memory access method
US11494082B2 (en) 2018-03-19 2022-11-08 Kioxia Corporation Memory system

Similar Documents

Publication Publication Date Title
JP6250613B2 (en) Resource allocation and release for power management in equipment
US9304691B2 (en) Memory system and bank interleaving method
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US11669272B2 (en) Predictive data transfer based on availability of media units in memory sub-systems
KR101562973B1 (en) Memory apparatus and method for operating thereof
US11487666B2 (en) Timed data transfer between a host system and a memory sub-system
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
JP4788528B2 (en) Disk control device, disk control method, and disk control program
US11709632B2 (en) Input/output size control between a host system and a memory sub-system
CN113785278A (en) Dynamic data placement for avoiding conflicts between concurrent write streams
US11269552B2 (en) Multi-pass data programming in a memory sub-system having multiple dies and planes
US11520487B2 (en) Managing write operations during a power loss
JP2011070365A (en) Memory system
JP2013200692A (en) Memory system
US10929061B2 (en) Memory system and memory control method
CN113424165A (en) Interruption of programming operations at a memory subsystem
KR20100102283A (en) Flash memory apparatus and method of controlling the same
US20140218767A1 (en) Image forming apparatus, memory management method for image forming apparatus, and program
US20240036768A1 (en) Partial Execution of a Write Command from a Host System
EP3834072B1 (en) Controller command scheduling in a memory system to increase command bus utilization
US10872008B2 (en) Data recovery after storage failure in a memory system
CN112306401A (en) Storage device and data storage method
US20230376223A1 (en) Memory system and controlling method