JP4776742B1 - Semiconductor memory device and control method thereof - Google Patents

Semiconductor memory device and control method thereof Download PDF

Info

Publication number
JP4776742B1
JP4776742B1 JP2011108189A JP2011108189A JP4776742B1 JP 4776742 B1 JP4776742 B1 JP 4776742B1 JP 2011108189 A JP2011108189 A JP 2011108189A JP 2011108189 A JP2011108189 A JP 2011108189A JP 4776742 B1 JP4776742 B1 JP 4776742B1
Authority
JP
Japan
Prior art keywords
command
erase
request
address
write
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.)
Expired - Fee Related
Application number
JP2011108189A
Other languages
Japanese (ja)
Other versions
JP2011187078A (en
Inventor
徹 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011108189A priority Critical patent/JP4776742B1/en
Application granted granted Critical
Publication of JP4776742B1 publication Critical patent/JP4776742B1/en
Publication of JP2011187078A publication Critical patent/JP2011187078A/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 複数CPU間での排他制御を考慮する必要がなく、簡単な制御で、他の動作の割り込み無く複数チャネルの不揮発性メモリの消去動作を実施すること。
【解決手段】 複数のCPUと複数チャネルの不揮発性メモリとを有する半導体記憶装置であって、複数チャネルの不揮発性メモリ毎の消去動作用のアドレスからなるアドレスリストをアドレスキュー(14)に設定する手段()と、いずれかのCPUから発生された単一の消去動作要求に応じて前記アドレスリストに記載の各アドレスについての一連の消去動作コマンドを連続して発生するコマンド制御部(18)と、前記一連の消去動作コマンドを各アドレスに対応したチャネルの不揮発性メモリに与える分配器(24)とを具備する。
【選択図】図1
PROBLEM TO BE SOLVED: To perform an erasing operation of a non-volatile memory of a plurality of channels without interruption of other operations by simple control without considering exclusive control among a plurality of CPUs.
A semiconductor memory device having a plurality of CPUs and a plurality of channels of non-volatile memories, wherein an address list including addresses for erase operations for each of the plurality of channels of non-volatile memories is set in an address queue (14). Means (), and a command control unit (18) for continuously generating a series of erase operation commands for each address described in the address list in response to a single erase operation request generated from any of the CPUs. And a distributor (24) for supplying the series of erase operation commands to the nonvolatile memory of the channel corresponding to each address.
[Selection] Figure 1

Description

本発明はNAND型フラッシュメモリ等の不揮発性メモリを含む半導体記憶装置に関し、特に複数のCPUと複数チャネルの不揮発性メモリを有し、消去要求または書き込み要求を複数チャネルの不揮発性メモリに分配し、複数チャネルの消去動作または書き込み動作を並列に実行する半導体記憶装置及びその制御方法に関する。   The present invention relates to a semiconductor memory device including a non-volatile memory such as a NAND flash memory, and in particular, has a plurality of CPUs and a plurality of channels of non-volatile memory, and distributes an erase request or a write request to the plurality of channels of non-volatile memory. The present invention relates to a semiconductor memory device that executes a plurality of channels of erase operation or write operation in parallel and a control method thereof.

不揮発性記憶装置の一例として複数のメモリバンクで並列書き込み動作や並列消去動作が可能なマルチバンクを有する装置が特許文献1に開示されている。一般に不揮発性メモリ、例えばフラッシュメモリはデータの書き込みの際に上書きができないので、データの書き込み動作を実行する前に消去動作を実行する必要がある。   As an example of a non-volatile memory device, Patent Document 1 discloses a device having a multi-bank capable of performing a parallel write operation and a parallel erase operation in a plurality of memory banks. In general, a non-volatile memory such as a flash memory cannot be overwritten when data is written. Therefore, it is necessary to execute an erasing operation before executing a data writing operation.

この装置は、不揮発性メモリセルを備え夫々独立にメモリ動作可能な複数個のメモリバンクと、メモリバンクのメモリ動作を制御する制御部を有する。制御部は、一のメモリバンクを指定した動作指示に応答するメモリ動作中でも他のメモリバンクを指定した動作指示に応答してメモリ動作を開始させるインターリーブ動作と、一のメモリバンクを指定した動作指示に応答するメモリ動作の開始前に続けて他のメモリバンクを指定したメモリ動作の指示があるとき双方のメモリバンクのメモリ動作を並列に開始させる並列動作とを制御可能である。このため、複数のメモリバンクを有するマルチバンク形態のフラッシュメモリにおいて、複数のメモリバンクで並列に消去動作あるいは書き込み動作を行うことができ、消去動作または書き込み動作によるビジー状態の期間を短縮することができる。   This device includes a plurality of memory banks each including a nonvolatile memory cell and capable of independently operating a memory, and a control unit that controls the memory operation of the memory bank. The control unit performs an interleave operation for starting a memory operation in response to an operation instruction specifying another memory bank even during a memory operation responding to an operation instruction specifying one memory bank, and an operation instruction specifying one memory bank. It is possible to control a parallel operation in which the memory operations of both memory banks are started in parallel when there is an instruction for a memory operation in which another memory bank is designated before the start of the memory operation responding to. For this reason, in a multi-bank flash memory having a plurality of memory banks, an erasing operation or a writing operation can be performed in parallel in the plurality of memory banks, and a busy state period due to the erasing operation or the writing operation can be shortened. it can.

セクタ消去コマンドにおいて1個のメモリバンクに対するセクタ消去を指示するコマンドは、消去対象セクタアドレスSA1、SA2の後に、消去動作の開始を指示するコマンドコード“B0H”を付加すればよい。2個のメモリバンクに対して並列にセクタ消去を指示するには、第1のセクタアドレス情報SA1、SA2に続けて第2のセクタアドレス情報SA※1、SA※2を配置し、最後にコマンドコード“B0H”を付加すればよい。第2のセクタアドレス情報SA※1、SA※2が指定するメモリバンクは第1のセクタアドレス情報SA1、SA2が指定するメモリバンクとは相違することが必要である。   In the sector erase command, a command for instructing sector erase for one memory bank may be added with a command code “B0H” for instructing start of the erase operation after the sector addresses to be erased SA1 and SA2. In order to instruct sector erasure in parallel to two memory banks, second sector address information SA * 1 and SA * 2 are arranged after the first sector address information SA1 and SA2, and finally the command The code “B0H” may be added. The memory bank specified by the second sector address information SA * 1 and SA * 2 needs to be different from the memory bank specified by the first sector address information SA1 and SA2.

特許文献1の図8に示す2メモリバンク並列消去動作のタイミングチャートにおいては、コマンドコード“20H”に続けて、第1のセクタアドレス情報SA(1)、SA(2)と第2のセクタアドレス情報SA(3)、SA(4)とが入力され、最後にコマンドコード“B0H”が入力される。コマンドデコーダはコマンドコード“20H”の入力を検知した後、セクタアドレスSA(1)、SA(2)に含まれるメモリバンク指定情報Amで指定されるメモリバンクを認識、そのメモリバンクにセクタアドレスSA(1)、SA(2)を供給する。次に、コマンドデコーダはその後のセクタアドレスSA(3)、SA(4)に含まれるメモリバンク指定情報Amで指定されるメモリバンクを認識し、そのメモリバンクにセクタアドレスSA(3)、SA(4)を供給する。双方のセクタアドレスで指定されるメモリバンクが相異する場合、コマンドコード“B0H”の入力を条件に、夫々のセクタアドレスで指定されるセクタの並列消去動作をCPUに実行させる。CPU21はROMが保有する消去動作プログラムを実行して消去動作を行う(オートイレーズ)。 In the timing chart of the two memory bank parallel erase operation shown in FIG. 8 of Patent Document 1, the command code “20H” is followed by the first sector address information SA (1), SA (2) and the second sector address. Information SA (3) and SA (4) are input, and finally a command code “B0H” is input. After the command decoder which detects an input of a command code "20H", the sector address SA (1), recognizes the memory bank designated by the memory bank designation information Am contained in SA (2), the sector address in that memory bank SA (1) and SA (2) are supplied. Next, the command decoder recognizes the memory bank designated by the memory bank designation information Am included in the subsequent sector addresses SA (3) and SA (4) and stores the sector addresses SA (3) and SA ( 4) is supplied. When the memory banks designated by both sector addresses are different, the CPU is caused to execute the parallel erase operation of the sectors designated by the respective sector addresses on condition that the command code “B0H” is input. The CPU 21 executes an erasing operation program stored in the ROM to perform an erasing operation (auto toilets).

特開2003−36681号公報(段落0005、0022−0023、0054)JP 2003-36681 A (paragraphs 0005, 0022-0023, 0054)

このように特許文献1記載の装置は、複数のメモリバンクを有するマルチバンク形態のフラッシュメモリにおいて、複数のメモリバンクで並列に消去動作あるいは書き込み動作を行うことができる。   As described above, the apparatus disclosed in Patent Document 1 can perform an erasing operation or a writing operation in parallel in a plurality of memory banks in a multi-bank flash memory having a plurality of memory banks.

特許文献1記載の装置は、消去要求、書き込み要求を発行するCPUは単一であることを前提としている。近年、メモリの集積度が増加し、容量が増大しているので、半導体記憶装置をサーバ用の記憶装置として応用する要望がある。サーバ用の記憶装置では、複数のCPUがマルチバンク形態の多数のフラッシュメモリに接続される。なお、複数のCPUが設けられるが、いずれか1つのCPUのみがメモリ管理を担当する。各バンク毎の消去動作を並列して実行するために、メモリ管理を担当するCPUが一連の消去コマンドを発生する。この一連の消去コマンドは消去動作を並列実行する効率を確保するためには、コマンドキューに連続して取り込まれることが好ましい。しかしながら、メモリ管理を担当するCPU以外のCPUから発行されたコマンドが割り込まれてコマンドキューに取り込まれることがある。   The apparatus described in Patent Document 1 is based on the premise that there is a single CPU that issues an erase request and a write request. In recent years, since the degree of integration of memory has increased and the capacity has increased, there is a demand for applying a semiconductor storage device as a storage device for a server. In a server storage device, a plurality of CPUs are connected to a large number of flash memories in a multi-bank form. A plurality of CPUs are provided, but only one of them is responsible for memory management. In order to execute the erase operation for each bank in parallel, the CPU in charge of memory management generates a series of erase commands. This series of erase commands is preferably taken continuously into the command queue in order to ensure the efficiency of executing the erase operations in parallel. However, a command issued from a CPU other than the CPU in charge of memory management may be interrupted and taken into the command queue.

他のコマンドの割り込みがあった場合、消去動作を並列実行する効率を確保するためには、複数のCPU同士で排他制御を考慮してセマフォを調停したり、コマンドキューからコマンドを取り出す際に順番を変えて割り込みコマンドを追い越して消去コマンドを取り出したりする必要があり、制御が複雑になり、コストがかかるという問題がある。   If there is an interrupt from another command, in order to ensure the efficiency of executing the erase operation in parallel, multiple CPUs consider the exclusive control and arbitrate the semaphore or take out the command from the command queue. Therefore, it is necessary to overtake the interrupt command and take out the erase command, which causes a problem that the control becomes complicated and the cost is high.

本発明の目的は、消去要求を複数チャネルの不揮発性メモリに分配し、消去動作を並列実行する半導体記憶装置において、複数CPU間での排他制御を考慮する必要がなく、簡単な制御で、他の動作の割り込み無く複数チャネルの不揮発性メモリの消去動作を並列に実施することである。   It is an object of the present invention to distribute exclusive requests to a plurality of channels of non-volatile memories and execute an erase operation in parallel, so that exclusive control among a plurality of CPUs does not need to be taken into account, simple control, The erasure operation of the non-volatile memory of a plurality of channels is performed in parallel without interruption of the operation.

本発明の一態様は、第1のCPUと第2のCPUと複数チャネルの不揮発性メモリとを有する半導体記憶装置であって、前記第1のCPUから発行される前記不揮発性メモリへのコマンド発行要求を格納するコマンドキューと、複数チャネルの不揮発性メモリ毎の消去動作用のアドレスからなる消去用アドレスリストを生成する手段と、前記コマンドキューからコマンド発行要求を取り出す制御部であって、要求されるコマンドが書き込みコマンドの場合は書き込み要求を1つずつ取り出し、消去コマンドの場合は前記消去用アドレスリストに記載のアドレスのチャネル数だけ同じ消去要求を取り出す制御部と、前記制御部により取り出された消去要求に応じて前記消去用アドレスリストに記載の各アドレスについての一連の消去動作コマンドを連続して発生する手段と、前記一連の消去動作コマンドを各アドレスに対応したチャネルの不揮発性メモリに与える手段とを具備する。   One embodiment of the present invention is a semiconductor memory device including a first CPU, a second CPU, and a plurality of channels of a nonvolatile memory, and issuance of commands to the nonvolatile memory issued from the first CPU. A command queue for storing a request; a means for generating an address list for erasing comprising an address for erasing operation for each of a plurality of channels of nonvolatile memory; and a control unit for retrieving a command issuance request from the command queue. When the command to be written is a write command, the write request is fetched one by one, and when the command is an erase command, the control unit fetches the same erase request by the number of channels of the address described in the erase address list, and the control unit fetches A series of erase operation commands for each address described in the erase address list in response to an erase request It means for generating in succession, and means for providing said sequence of erase operation command to the nonvolatile memory of the channel corresponding to each address.

本発明の他の態様は、第1のCPUと第2のCPUと複数チャネルの不揮発性メモリとを有する半導体記憶装置の制御方法であって、前記第1のCPUから発行される前記不揮発性メモリへのコマンド発行要求をコマンドキューに格納することと、複数チャネルの不揮発性メモリ毎の消去動作用のアドレスからなる消去用アドレスリストを生成することと、前記コマンドキューからコマンド発行要求を取り出すことであって、要求されるコマンドが書き込みコマンドの場合は書き込み要求を1つずつ取り出し、消去コマンドの場合は前記消去用アドレスリストに記載のアドレスのチャネル数だけ同じ消去要求を取り出すことと、取り出された消去要求に応じて前記消去用アドレスリストに記載の各アドレスについての一連の消去動作コマンドを連続して発生することと、前記一連の消去動作コマンドを各アドレスに対応したチャネルの不揮発性メモリに与えることとを具備する。   Another aspect of the present invention is a method for controlling a semiconductor memory device having a first CPU, a second CPU, and a plurality of channels of non-volatile memory, wherein the non-volatile memory issued from the first CPU Command issuance requests to the command queue, an erasure address list consisting of addresses for erasing operations for each of the non-volatile memories of a plurality of channels is generated, and command issuance requests are extracted from the command queue. If the requested command is a write command, the write request is taken out one by one, and if it is an erase command, the same erase request is taken out by the number of channels of the address described in the address list for erasure. A series of erase operation commands for each address described in the erase address list in response to an erase request Comprising the fact that continuously generates, and providing said sequence of erase operation command to the nonvolatile memory of the channel corresponding to each address.

本発明の一態様によれば、1つのCPUからの単一の消去動作要求が発生されると、消去用アドレスリストに記載の複数のチャネルに対する複数の消去動作が、他の動作の割り込みがなく、連続して実施される。そのため、複数のCPU同士で排他制御を考慮してセマフォを調停したり、コマンドキューからコマンドを取り出す際に順番を変えて割り込みコマンドを追い越して消去コマンドを取り出したりする必要がなく、複数の消去動作を簡単な制御で低コストに実施できる。   According to one aspect of the present invention, when a single erase operation request is generated from one CPU, a plurality of erase operations for a plurality of channels described in the erase address list can be performed without interrupting other operations. , Carried out continuously. Therefore, there is no need to arbitrate semaphores with multiple CPUs in consideration of exclusive control, or to change the order when taking out commands from the command queue, and to take out erase commands by overtaking interrupt commands. Can be implemented at low cost with simple control.

本発明の一実施形態に係る半導体記憶装置のブロック図である。1 is a block diagram of a semiconductor memory device according to an embodiment of the present invention. 本発明の一実施形態における書き込み動作の手順を示す図である。It is a figure which shows the procedure of the write-in operation | movement in one Embodiment of this invention. 本発明の一実施形態におけるコマンド制御部の制御フロー図である。It is a control flow figure of the command control part in one embodiment of the present invention. 本発明を適用しない場合のコマンド/データの流れを示す図である。It is a figure which shows the flow of command / data when not applying this invention.

以下、図面を参照して本発明の実施の形態について詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は本発明による半導体記憶装置の一実施形態の構成をコマンド/データの流れとともに示すブロック図である。本実施形態は複数の不揮発性メモリ、例えば4つのNAND型フラッシュメモリ30、30、30、30を含む。NAND型フラッシュメモリ30、30、30、30は例えば半導体ドライブ(Solid State Drive: SSD)の記憶部のチャネル0、チャネル1、チャネル2、チャネル3を構成する。フラッシュメモリ(チャネル)の個数は実際にはもっと多数であるが、説明の便宜上、4つのみ示す。NAND型フラッシュメモリ30、30、30、30の各々は例えば2〜16個のメモリチップからなる。NAND型フラッシュメモリ30、30、30、30はメモリバス28、28、28、28を介してメモリコントローラ26、26、26、26に接続される。メモリコントローラ26、26、26、26はNAND型フラッシュメモリ30、30、30、30に接続され、アクセスを制御する。 FIG. 1 is a block diagram showing the configuration of an embodiment of a semiconductor memory device according to the present invention together with the flow of commands / data. The present embodiment includes a plurality of nonvolatile memories, for example, four NAND flash memories 30 0 , 30 1 , 30 2 , and 30 3 . The NAND flash memories 30 0 , 30 1 , 30 2 , and 30 3 constitute, for example, channel 0, channel 1, channel 2, and channel 3 of a storage unit of a semiconductor drive (Solid State Drive: SSD). Although the number of flash memories (channels) is actually larger, only four are shown for convenience of explanation. Each of the NAND flash memories 30 0 , 30 1 , 30 2 , 30 3 is composed of, for example, 2 to 16 memory chips. NAND-type flash memory 30 0, 30 1, 30 2, 30 3 is connected to the memory controller 26 0, 26 1, 26 2, 26 3 via the memory bus 28 0, 28 1, 28 2, 28 3. The memory controllers 26 0 , 26 1 , 26 2 , and 26 3 are connected to the NAND flash memories 30 0 , 30 1 , 30 2 , and 30 3 to control access.

一方、ホストとして複数、ここでは説明の便宜上2つのCPU10、10が設けられている。CPU10、10は独自にフラッシュメモリ30、30、30、30への動作要求を発行するが、メモリ管理はいずれか1つのCPU、ここではCPU10が担当する。 On the other hand, a plurality of hosts, here two CPUs 10 0 and 10 1 are provided for convenience of explanation. CPU 10 0, 10 1 are issues its own operation request to the flash memory 30 0, 30 1, 30 2, 30 3, the memory management either one CPU, where the CPU 10 0 charge.

CPU10、10は共通のCPUバス12に接続される。CPUバス12にはメインメモリ42、ROM44、アドレスリストキュー14、コマンドキュー16、コマンド制御部18、アドレス生成部22が接続される。メインメモリ42は例えばDRAMからなる。ROM44にはファームウェアを含む。ファームウェアはCPU10、10を使用し、メモリコントローラ26、26、26、26内部へのI/OコマンドアクセスによりNAND型フラッシュメモリ30、30、30、30のリード動作、ライト動作等を制御する。 The CPUs 10 0 and 10 1 are connected to a common CPU bus 12. A main memory 42, a ROM 44, an address list queue 14, a command queue 16, a command control unit 18, and an address generation unit 22 are connected to the CPU bus 12. The main memory 42 is composed of a DRAM, for example. The ROM 44 includes firmware. The firmware uses the CPU 10 0, 10 1, the memory controller 26 0, 26 1, 26 2, 26 3 NAND-type flash memory 30 0 by the I / O command access to the interior, 30 1, 30 2, 30 3 of the lead Control operation, write operation, etc.

コマンドキュー16はCPU10、10から発行されるコマンド発行要求をその発行順に取り込み、取り込んだ順に取り出すFIFO形式のレジスタである。アドレスリストキュー14はコマンドキュー16に取り込まれた要求毎にその要求の処理対象であるチャネル毎のフラッシュメモリのアドレスからなる消去用アドレスリストあるいは書き込み用アドレスリストを取り込むFIFO形式のレジスタである。アドレスリストはファームウェアにより作成される。アドレスリストキュー14はアドレスリスト毎に取り込まれるが、取り出しは個々のアドレス毎になり、その取り出しアドレスを制御するためにチャネルポインタ(chポインタ)20が設けられている。 The command queue 16 is a FIFO-type register that fetches command issuance requests issued from the CPUs 10 0 and 10 1 in the order of issuance and retrieves them in the order of fetching. The address list queue 14 is a FIFO-type register that fetches an erasure address list or a write address list composed of flash memory addresses for each channel that is a processing target of each request fetched into the command queue 16. The address list is created by the firmware. The address list queue 14 is fetched for each address list, but is fetched for each individual address, and a channel pointer (ch pointer) 20 is provided to control the fetch address.

コマンド制御部18はコマンドキュー16から要求を取り出し、その要求の動作を実行するためのコマンドを生成する。なお、コマンド制御部18はその要求が書き込み要求であるか消去要求であるかに応じて取り出し順序を切り替え、書き込み要求については1つずつ要求を取り出すが、消去要求についてはアドレスリストに記載のアドレスのチャネル分だけ同じ要求を繰り返し取り出す。   The command control unit 18 takes out a request from the command queue 16 and generates a command for executing the operation of the request. Note that the command control unit 18 switches the extraction order depending on whether the request is a write request or an erase request, and takes out one request at a time for the write request, but the address described in the address list for the erase request. The same request is repeatedly extracted for the number of channels.

アドレス生成部22はコマンド制御部18で取り出した要求を実現するコマンドにアドレスリストキュー14から読み出したアドレスを追加して消去コマンド、書き込みコマンドを発行する。発行されたコマンドは分配器24を介して所定のチャネルのメモリコントローラ26、26、26、26に供給される。 The address generation unit 22 adds the address read from the address list queue 14 to the command that realizes the request fetched by the command control unit 18 and issues an erase command and a write command. The issued command is supplied to the memory controllers 26 0 , 26 1 , 26 2 , and 26 3 of a predetermined channel via the distributor 24.

次に実施形態の書き込み処理を説明する。図2はファームウェアの処理ステップの流れを示す。複数チャネル存在するメモリバスを並列に効率よく使用するために、ファームウェアは書き込みコマンド発行に先立って、チャネル毎のアドレスを指し示すアドレスリストを用意する。また、上述したように、フラッシュメモリにおいてはデータの書き込みの際に上書きができないので、データの書き込み動作を実行する前に書き込み対象となるアドレスと同一のアドレスに対して前もって消去動作を実行する必要がある。そのため、ファームウェアは書き込み要求を発行する前に、データを書き込むフラッシュメモリのチャネル毎のアドレスを指し示す書き込み用アドレスリストとデータを消去するフラッシュメモリのチャネル毎のアドレスを指し示す消去用アドレスリストからなるアドレスリスト4000を作成し、アドレスリストキュー14に投入する(ブロック#12)。なお、消去と書き込みは同じアドレスであるので、書き込み用アドレスリストだけを投入し、消去用アドレスリストは書き込み用アドレスリストで兼用してもよい。両方のアドレスリストをキュー14に投入する理由は、ファームウェアにおける書き込み要求とイレース要求の順序の要請によっては独立に持っていた方が好適な場合があるからである。 Next, the writing process of the embodiment will be described. FIG. 2 shows the flow of firmware processing steps. In order to efficiently use memory buses having a plurality of channels in parallel, the firmware prepares an address list indicating addresses for each channel prior to issuing a write command. In addition, as described above, since data cannot be overwritten when data is written in a flash memory, it is necessary to execute an erase operation in advance on the same address as the write target address before executing the data write operation. There is. Therefore, before issuing a write request, the firmware has an address list consisting of a write address list indicating the address for each channel of the flash memory to which data is written and an erase address list indicating the address for each channel of the flash memory from which the data is erased. 4000 is created and put into the address list queue 14 (block # 12). Since erasing and writing have the same address, only the writing address list may be input, and the erasing address list may be used as the writing address list. The reason why both address lists are put into the queue 14 is that it may be preferable to have both address lists independently depending on the order of the write request and erase request in the firmware.

ここでは、アドレスリスト4000はチャネル0用ライトアドレス400、チャネル1用ライトアドレス410、チャネル2用ライトアドレス420、チャネル3用ライトアドレス430と、チャネル0用イレースアドレス400、チャネル1用イレースアドレス410、チャネル2用イレースアドレス420、チャネル3用イレースアドレス430からなる。イレースアドレスはライトアドレスの末尾に配置される。   Here, the address list 4000 includes a channel 0 write address 400, a channel 1 write address 410, a channel 2 write address 420, a channel 3 write address 430, a channel 0 erase address 400, a channel 1 erase address 410, It consists of a channel 2 erase address 420 and a channel 3 erase address 430. The erase address is placed at the end of the write address.

次に、ブロック#14に示すようにメモリ管理を担当するCPU10から消去要求(イレースコマンド)800を発行させる。消去要求800は消去すべきアドレス(チャネル)が複数であっても、単一の要求でよい。この後、ブロック#16でCPU10、10からチャネル毎の書き込み要求(ライトコマンド)を適宜出力させる。この例では、CPU10からチャネル1、3の書き込み要求を出力させ、CPU10からチャネル0、2の書き込み要求を出力させる。 Then, to issue the erase request (erase command) 800 from CPU 10 0 which is responsible for memory management as shown in block # 14. The erase request 800 may be a single request even if there are a plurality of addresses (channels) to be erased. Thereafter, a write request (write command) for each channel is appropriately output from the CPUs 10 0 and 10 1 in block # 16. In this example, to output a write request channel 1,3 from CPU 10 0, to output a write request channel 0,2 from CPU 10 1.

図3はコマンド制御部18の制御フローを示す図である。ブロック#22でコマンド制御部18は消去動作の継続中であるか否か判定する。消去動作中ではない場合は、ブロック#24でコマンドキュー16にコマンド発行要求が存在するか否か判定する。存在しない場合は、終了する。コマンドキュー16にコマンド発行要求が存在する場合は、ブロック#26でコマンドキュー16からコマンド発行要求を読み取る。ブロック#28で読み取った要求の種類(書き込みか消去か)を判定する。   FIG. 3 is a diagram showing a control flow of the command control unit 18. In block # 22, the command control unit 18 determines whether or not the erase operation is continuing. If the erasing operation is not in progress, it is determined in block # 24 whether there is a command issue request in the command queue 16. If not, exit. If there is a command issue request in the command queue 16, the command issue request is read from the command queue 16 in block # 26. The type of request read in block # 28 (write or erase) is determined.

書き込み要求の場合はブロック#34でコマンドリストから書き込みコマンドを取り出し、ブロック#36へ移る。消去要求の場合はブロック#30でコマンドリストから消去コマンドを取り出し、ブロック#32で消去フラグをセットした後、ブロック#36へ移る。図1の例では、先ず消去要求800が取り出され、その後チャネル0、1、2、3に関する書き込み要求101、110、121、130が取り出される。コマンド制御部18は1つの消去要求800に対してチャネル毎の複数の消去コマンドをコマンドリストから取り出すが、書き込み要求に対しては要求毎に対応するチャネルの書き込みコマンドを取り出す。   In the case of a write request, a write command is extracted from the command list at block # 34, and the process proceeds to block # 36. In the case of an erase request, an erase command is extracted from the command list at block # 30, an erase flag is set at block # 32, and then the process proceeds to block # 36. In the example of FIG. 1, the erase request 800 is first taken out, and then the write requests 101, 110, 121, and 130 relating to channels 0, 1, 2, and 3 are taken out. The command control unit 18 retrieves a plurality of erase commands for each channel from the command list in response to one erase request 800, but retrieves a corresponding channel write command for each request in response to a write request.

ブロック#36でアドレスリストキュー14からアドレスを取得し、ブロック#38でコマンドにアドレスを追加して、実際の動作命令(ライト動作、イレース動作)を発行する。アドレスリスト4000を走査するためのチャネルポインタ20は動作命令を発行する度にインクリメントされる。   An address is acquired from the address list queue 14 at block # 36, an address is added to the command at block # 38, and an actual operation command (write operation, erase operation) is issued. The channel pointer 20 for scanning the address list 4000 is incremented each time an operation command is issued.

動作命令発行後にブロック#40でチャネルポインタ20がキュー16の末尾を示しているか否か判定する。末尾でない場合はそのままブロック#44へ移り、末尾である場合はブロック#42で消去フラグをクリアしてからブロック#44へ移る。ブロック#44ではチャネルポインタ20がインクリメントされる。   After the operation command is issued, it is determined whether or not the channel pointer 20 indicates the end of the queue 16 at block # 40. If it is not the end, the process proceeds to block # 44. If it is the end, the erase flag is cleared in block # 42 and then the process proceeds to block # 44. In block # 44, the channel pointer 20 is incremented.

このようにコマンドキュー16から受け取った要求の種類(書き込み要求、消去要求)によってアドレスリストキュー14を走査するチャネルポインタ20の加算と、コマンドキュー16からの引き抜き順序を切り替えることによって消去動作命令700、710、720、730が発行される。複数の消去動作命令700、710、720、730は単一の消去要求800から連続して生成されるため、1回の書き込み動作に関する複数のページの消去動作は他の動作(例えば、書き込み動作)が途中に割り込むことなく連続的に実行される。これにより、図2に示したように最小限(1回)の消去コマンド発行要求の出力により、アドレスリスト4000に含まれる各チャネルに対する消去動作700〜730を連続して実行することが可能となり、消去動作を並列実行する効率を向上することができる。   In this way, by adding the channel pointer 20 that scans the address list queue 14 according to the type of request received from the command queue 16 (write request, erase request) and switching the extraction order from the command queue 16, an erase operation instruction 700, 710, 720, and 730 are issued. Since the plurality of erase operation instructions 700, 710, 720, and 730 are continuously generated from a single erase request 800, the erase operation of a plurality of pages related to one write operation is another operation (for example, a write operation). Are executed continuously without interruption. As a result, as shown in FIG. 2, it is possible to continuously execute the erase operations 700 to 730 for each channel included in the address list 4000 by outputting a minimum (one time) erase command issuance request. The efficiency of executing the erase operation in parallel can be improved.

本発明を使用しない場合、ファームウェアは図4に示すようにCPU10からチャネル毎の複数の消去要求800、801、802、803を発生させるため、その期間中に、CPU10以外のCPU10からの要求(図4における書き込み要求101)が発生する可能性がある。この場合、コマンドキュー16には消去要求800、810、820、書き込み要求101、消去要求830、書き込み要求110、…が格納され、一連の消去要求に他の要求が割り込む可能性がある。本発明ではCPU10からは単一の消去要求しか発生させないので、このように一連の消去要求に他の要求が割り込む可能性が無い。 If you do not use the present invention, the firmware to generate a plurality of erase request 800,801,802,803 for each channel from the CPU 10 0 4, during that period, from CPU 10 1 other than CPU 10 0 A request (write request 101 in FIG. 4) may occur. In this case, the command queue 16 stores erase requests 800, 810, 820, a write request 101, an erase request 830, a write request 110,..., And there is a possibility that another request may interrupt a series of erase requests. Since the CPU 10 0 in the present invention not only generates a single erase request, there is no possibility that another request interrupts the series of erase request like this.

このように、本実施形態によれば、1つのCPUからの単一の消去動作要求が発生されると、消去用アドレスリストに記載の複数のチャネルに対する複数の消去動作が、他の動作の割り込みがなく、連続して実施される。そのため、複数のCPU同士で排他制御を考慮してセマフォを調停したり、コマンドキューからコマンドを取り出す際に順番を変えて割り込みコマンドを追い越して消去コマンドを取り出したりする必要がなく、複数の消去動作を簡単な制御で低コストに実施できる。   Thus, according to the present embodiment, when a single erase operation request is generated from one CPU, a plurality of erase operations for a plurality of channels described in the erase address list are interrupted by other operations. It is carried out continuously. Therefore, there is no need to arbitrate semaphores with multiple CPUs in consideration of exclusive control, or to change the order when taking out commands from the command queue, and to take out erase commands by overtaking interrupt commands. Can be implemented at low cost with simple control.

なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。例えば、書き込み用アドレスリストと消去用アドレスリストとを独立してそれぞれアドレスリストキュー14に格納したが、両者は同じアドレスを指し示すので、書き込み用と消去用とで同じアドレスリストを共有してもよい。この場合は、アドレスリストキュー14には書き込み用アドレスリストのみを格納する。また、両者を格納する場合でも、ファームウェアが両リストを作成せずに、消去用アドレスリストを書き込み用アドレスリストのキューの末尾に自動的に追加してもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Further, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering different embodiment. For example, the address list for writing and the address list for erasure are stored in the address list queue 14 independently. However, since both indicate the same address, the same address list may be shared for writing and erasing. . In this case, only the address list for writing is stored in the address list queue 14. Also, even when both are stored, the firmware may automatically add the erasure address list to the end of the write address list queue without creating both lists.

10…CPU、12…CPUバス、14…アドレスリストキュー、16…コマンドキュー、18…コマンド制御部、20…チャネルポインタ、22…アドレス生成部、26…メモリコントローラ、42…メインメモリ、44…ROM。   DESCRIPTION OF SYMBOLS 10 ... CPU, 12 ... CPU bus, 14 ... Address list queue, 16 ... Command queue, 18 ... Command control unit, 20 ... Channel pointer, 22 ... Address generation unit, 26 ... Memory controller, 42 ... Main memory, 44 ... ROM .

Claims (4)

第1のCPUと第2のCPUと複数チャネルの不揮発性メモリとを有する半導体記憶装置であって、
前記第1のCPUから発行される前記不揮発性メモリへのコマンド発行要求を格納するコマンドキューと、
複数チャネルの不揮発性メモリ毎の消去動作用のアドレスからなる消去用アドレスリストを生成する手段と、
前記コマンドキューからコマンド発行要求を取り出す制御部であって、要求されるコマンドが書き込みコマンドの場合は書き込み要求を1つずつ取り出し、消去コマンドの場合は前記消去用アドレスリストに記載のアドレスのチャネル数だけ同じ消去要求を取り出す制御部と、
前記制御部により取り出された消去要求に応じて前記消去用アドレスリストに記載の各アドレスについての一連の消去動作コマンドを連続して発生する手段と、
前記一連の消去動作コマンドを各アドレスに対応したチャネルの不揮発性メモリに与える手段と、
を具備する半導体記憶装置。
A semiconductor memory device having a first CPU, a second CPU, and a non-volatile memory having a plurality of channels,
A command queue for storing a command issuance request to the nonvolatile memory issued from the first CPU;
Means for generating an address list for erasing comprising addresses for erasing operations for each of the plurality of non-volatile memories;
A control unit that extracts a command issuance request from the command queue. When the requested command is a write command, the write request is fetched one by one. Only the control unit to retrieve the same erase request,
Means for continuously generating a series of erase operation commands for each address described in the erase address list in response to an erase request taken out by the control unit;
Means for giving the series of erase operation commands to a nonvolatile memory of a channel corresponding to each address;
A semiconductor memory device comprising:
前記不揮発性メモリは書き込み動作の実行前に消去動作の実行が必要なメモリからなる請求項1記載の半導体記憶装置。   The semiconductor memory device according to claim 1, wherein the nonvolatile memory is a memory that needs to perform an erasing operation before performing a writing operation. 前記消去用アドレスリストは複数チャネルの不揮発性メモリ毎の書き込み動作用のアドレスからなる書き込み用アドレスリストと同じである請求項1記載の半導体記憶装置。   2. The semiconductor memory device according to claim 1, wherein the erase address list is the same as a write address list including addresses for a write operation for each of a plurality of channels of nonvolatile memories. 第1のCPUと第2のCPUと複数チャネルの不揮発性メモリとを有する半導体記憶装置の制御方法であって、
前記第1のCPUから発行される前記不揮発性メモリへのコマンド発行要求をコマンドキューに格納することと、
複数チャネルの不揮発性メモリ毎の消去動作用のアドレスからなる消去用アドレスリストを生成することと、
前記コマンドキューからコマンド発行要求を取り出すことであって、要求されるコマンドが書き込みコマンドの場合は書き込み要求を1つずつ取り出し、消去コマンドの場合は前記消去用アドレスリストに記載のアドレスのチャネル数だけ同じ消去要求を取り出すことと、
取り出された消去要求に応じて前記消去用アドレスリストに記載の各アドレスについての一連の消去動作コマンドを連続して発生することと、
前記一連の消去動作コマンドを各アドレスに対応したチャネルの不揮発性メモリに与えることと、
を具備する制御方法。
A method of controlling a semiconductor memory device having a first CPU, a second CPU, and a non-volatile memory having a plurality of channels,
Storing a command issuance request to the non-volatile memory issued from the first CPU in a command queue;
Generating an erasure address list composed of addresses for erasure operations for each of the non-volatile memories of a plurality of channels;
The command issue request is taken out from the command queue. When the requested command is a write command, the write request is taken out one by one. Retrieving the same erase request,
Continuously generating a series of erase operation commands for each address described in the address list for erasure in response to the fetched erase request;
Giving the series of erase operation commands to a nonvolatile memory of a channel corresponding to each address;
A control method comprising:
JP2011108189A 2011-05-13 2011-05-13 Semiconductor memory device and control method thereof Expired - Fee Related JP4776742B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011108189A JP4776742B1 (en) 2011-05-13 2011-05-13 Semiconductor memory device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011108189A JP4776742B1 (en) 2011-05-13 2011-05-13 Semiconductor memory device and control method thereof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010019546A Division JP4746699B1 (en) 2010-01-29 2010-01-29 Semiconductor memory device and control method thereof

Publications (2)

Publication Number Publication Date
JP4776742B1 true JP4776742B1 (en) 2011-09-21
JP2011187078A JP2011187078A (en) 2011-09-22

Family

ID=44793193

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011108189A Expired - Fee Related JP4776742B1 (en) 2011-05-13 2011-05-13 Semiconductor memory device and control method thereof

Country Status (1)

Country Link
JP (1) JP4776742B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597455A (en) * 2018-06-13 2019-12-20 三星电子株式会社 Method for increasing flash memory endurance through improved metadata management

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160569A (en) * 1993-12-09 1995-06-23 Matsushita Electric Ind Co Ltd Memory controller
JP3440032B2 (en) * 1999-07-15 2003-08-25 パナソニック コミュニケーションズ株式会社 Memory control device, facsimile device and image forming device
JP2003036681A (en) * 2001-07-23 2003-02-07 Hitachi Ltd Non-volatile memory device
JP4713143B2 (en) * 2004-12-15 2011-06-29 富士通セミコンダクター株式会社 Semiconductor memory device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597455A (en) * 2018-06-13 2019-12-20 三星电子株式会社 Method for increasing flash memory endurance through improved metadata management
CN110597455B (en) * 2018-06-13 2024-01-16 三星电子株式会社 Method for increasing flash endurance through improved metadata management

Also Published As

Publication number Publication date
JP2011187078A (en) 2011-09-22

Similar Documents

Publication Publication Date Title
JP4746699B1 (en) Semiconductor memory device and control method thereof
JP7320902B2 (en) Apparatus and method for simultaneously accessing different memory planes of memory
US20220075521A1 (en) Semiconductor memory device including a control circuit and at least two memory cell arrays
JP2021168203A (en) Apparatuses and methods for concurrently accessing multiple partitions of non-volatile memory
US10140024B2 (en) Data storage device and data reading method thereof
JP5783809B2 (en) Information processing apparatus, activation method, and program
JP5414656B2 (en) Data storage device, memory control device, and memory control method
US20200110706A1 (en) Pre-fetching in a memory system configured with synthesized logical blocks
US9304952B2 (en) Memory control device, storage device, and memory control method
EP3977256A1 (en) Predictive data transfer based on availability of media units in memory sub-systems
CN108139994B (en) Memory access method and memory controller
JPWO2006051780A1 (en) Nonvolatile memory device and method of accessing nonvolatile memory device
US20100169550A1 (en) Semiconductor memory device, data transfer device, and method of controlling semiconductor memory device
JP2020047325A (en) Semiconductor storage device
JP4776742B1 (en) Semiconductor memory device and control method thereof
JP2013069047A (en) Memory system
KR102391493B1 (en) Controller couple to semiconductor memory device and operating method thereof
JP4929379B2 (en) Semiconductor memory device and data write / read method
JP4382131B2 (en) Semiconductor disk device
JPWO2007023544A1 (en) Storage device, storage device control method, and storage control device control method
JP3793542B2 (en) Semiconductor memory device
JP2010237770A (en) Information processing apparatus, bridge device, and information processing method
JP2002278774A (en) Method and device for generating instruction word in controlling function unit in processor
JP3793540B2 (en) Semiconductor memory device
KR20210054399A (en) Storage device and operating method thereof

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110607

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110628

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees