[go: up one dir, main page]

TWI696180B - Solid state storage device using prediction function - Google Patents

Solid state storage device using prediction function Download PDF

Info

Publication number
TWI696180B
TWI696180B TW108117771A TW108117771A TWI696180B TW I696180 B TWI696180 B TW I696180B TW 108117771 A TW108117771 A TW 108117771A TW 108117771 A TW108117771 A TW 108117771A TW I696180 B TWI696180 B TW I696180B
Authority
TW
Taiwan
Prior art keywords
register
collection
controller
volatile memory
storage device
Prior art date
Application number
TW108117771A
Other languages
Chinese (zh)
Other versions
TW202044260A (en
Inventor
曾士家
呂祖漢
顏孝昌
Original Assignee
建興儲存科技股份有限公司
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 建興儲存科技股份有限公司 filed Critical 建興儲存科技股份有限公司
Priority to TW108117771A priority Critical patent/TWI696180B/en
Application granted granted Critical
Publication of TWI696180B publication Critical patent/TWI696180B/en
Publication of TW202044260A publication Critical patent/TW202044260A/en

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

AThe present invention is a solid state storage device using a prediction function. In the solid state storage device, the controller generates a plurality of collection read operations, temporarily stores the collection read operations in the command queue, and transmits the collection read operations to the non-volatile memory. The non-volatile memory outputs a corresponding encoded read data to the controller according to each of the collection read operations. Then, the ECC circuit performs a decode operation on the encoded read data to generate a decoded content, and a first corresponding number of the decoded content is transmitted to a first register of the register set. After all the encoded read data is decoded, the value stored in the first register is a first parameter, and the first parameter is input to a prediction function in the function storage circuit.

Description

使用預測方程式的固態儲存裝置Solid-state storage device using predictive equation

本發明是有關於一種固態儲存裝置,且特別是有關於一種使用預測方程式的固態儲存裝置。The present invention relates to a solid-state storage device, and in particular to a solid-state storage device using predictive equations.

眾所周知,固態儲存裝置 (Solid State Storage Device,簡稱SSD) 已經非常廣泛的應用於各種電子產品,例如SD卡、固態硬碟等等。固態儲存裝置中包括一非揮發性記憶體(non-volatile memory)。當資料寫入非揮發性記憶體後,一旦固態儲存裝置的電源被關閉,資料仍可保存在非揮發性記憶體中。As we all know, Solid State Storage Device (SSD) has been widely used in various electronic products, such as SD cards, solid state drives, etc. The solid-state storage device includes a non-volatile memory (non-volatile memory). After the data is written to the non-volatile memory, once the power of the solid-state storage device is turned off, the data can still be stored in the non-volatile memory.

美國專利US 9,922,706揭露一種使用狀態預測方法的固態儲存裝置。其利用預測方程式(prediction function)來預估固態儲存裝置中非揮發性記憶體在未來時間點的狀態,並且預測適當的解碼流程或者提供適當的讀取電壓。US Patent No. 9,922,706 discloses a solid-state storage device using a state prediction method. It uses a prediction function to predict the state of the non-volatile memory in the solid-state storage device at a future point in time, and predicts an appropriate decoding process or provides an appropriate read voltage.

請參照第1圖,其所繪示為習知固態儲存裝置示意圖。固態儲存裝置100經由一外部匯流排115連接至主機(host)110。其中,外部匯流排115可為USB匯流排、SATA匯流排、PCIe匯流排、M.2匯流排或者U.2匯流排等等。Please refer to FIG. 1, which is a schematic diagram of a conventional solid-state storage device. The solid-state storage device 100 is connected to a host 110 via an external bus 115. The external bus 115 may be a USB bus, a SATA bus, a PCIe bus, an M.2 bus, or a U.2 bus, etc.

固態儲存裝置100中包括一控制器120、緩衝器130與一非揮發性記憶體150。控制器120連接至非揮發性記憶體150與緩衝器130。其中,非揮發性記憶體150由多個晶粒(die)11~14組合而成,這些晶粒11~14可為反及閘快閃晶粒(NAND flash die)。另外,緩衝器130可為動態隨機存取記憶體(DRAM)。The solid-state storage device 100 includes a controller 120, a buffer 130, and a non-volatile memory 150. The controller 120 is connected to the non-volatile memory 150 and the buffer 130. The non-volatile memory 150 is composed of a plurality of dies 11-14, and these dies 11-14 can be NAND flash die. In addition, the buffer 130 may be a dynamic random access memory (DRAM).

控制器120中更包括一錯誤校正碼電路(ECC電路)124、方程式儲存電路126以及一指令佇列(command queue)128。其中,指令佇列128可以暫存多個運算指令(operation command),例如編程運算(program operation)、讀取運算(read operation)、抹除運算(erase operation)。另外,控制器120可將指令佇列128中的運算指令傳遞至非揮發性記憶體150。The controller 120 further includes an error correction code circuit (ECC circuit) 124, an equation storage circuit 126, and a command queue 128. The command queue 128 may temporarily store a plurality of operation commands (operation commands), such as program operations, read operations, and erase operations. In addition, the controller 120 may transfer the operation instructions in the instruction queue 128 to the non-volatile memory 150.

舉例來說,當主機110發出寫入指令(write command)以及寫入資料時,控制器120根據寫入指令來產生編程運算(program operation)暫存於指令佇列128。再者,ECC電路124對寫入資料進行ECC編碼動作,成為編碼的寫入資料(encoded write data)並暫存於緩衝器130。最後,控制器120將編程運算以及編碼的寫入資料傳遞至非揮發性記憶體150,使得編碼的寫入資料儲存至非揮發性記憶體150。For example, when the host 110 issues a write command and writes data, the controller 120 generates a program operation according to the write command and temporarily stores it in the command queue 128. Furthermore, the ECC circuit 124 performs an ECC encoding operation on the write data to become encoded write data and temporarily stores it in the buffer 130. Finally, the controller 120 transfers the programming operation and the encoded write data to the non-volatile memory 150, so that the encoded write data is stored in the non-volatile memory 150.

當主機110發出讀取指令(read command)時,控制器120根據讀取指令來產生讀取運算(read operation)暫存於指令佇列128。當控制器120將讀取運算傳遞至非揮發性記憶體150後,非揮發性記憶體150即傳遞編碼的讀取資料(encoded read data)至控制器120。接著,ECC電路124對編碼的讀取資料進行解碼動作後產生讀取資料(read date)並暫存於緩衝器130。最後,讀取資料即被傳遞至主機110。When the host 110 issues a read command, the controller 120 generates a read operation according to the read command and temporarily stores the read operation in the command queue 128. After the controller 120 transfers the read operation to the non-volatile memory 150, the non-volatile memory 150 transmits the encoded read data to the controller 120. Next, the ECC circuit 124 decodes the encoded read data to generate read data (read date) and temporarily stores it in the buffer 130. Finally, the read data is transferred to the host 110.

基本上,控制器120利用編程運算可將編碼的寫入資料儲存至特定的晶粒11~14中,或者將編碼的寫入資料散布於所有的晶粒11~14中。另外,控制器120也可以利用讀取運算,由特定的晶粒中11~14中或者由所有的晶粒11~14中來取得編碼的讀取資料。Basically, the controller 120 can store the encoded write data in the specific dies 11-14 using programming operations, or distribute the encoded write data in all the dies 11-14. In addition, the controller 120 may also use the reading operation to obtain the encoded reading data from the specific dies 11-14 or all the dies 11-14.

當然,控制器120也可以在適當時機產生抹除運算(erase operation)暫存於指令佇列128中。當抹除運算傳遞至非揮發性記憶體150時,非揮發性記憶體150中特定晶粒11~14中特定區塊內的資料即被抹除,或者所有晶粒11~14中特定區塊內的資料即被抹除。Of course, the controller 120 may also generate an erase operation at an appropriate timing and temporarily store it in the command queue 128. When the erase operation is transferred to the non-volatile memory 150, the data in the specific blocks in the specific dies 11-14 in the non-volatile memory 150 is erased, or the specific blocks in all the dies 11-14 The information inside is erased.

一般來說,固態儲存裝置100出廠,且非揮發性記憶體150並經過多次編程、讀取與抹除之後,非揮發性記憶體150的特性變差,可能造成資料流失(loss)。此時,由非揮發性記憶體150中取得之編碼的讀取資料無法通過解碼動作,也無法產生正確的讀取資料傳遞至主機,並導致讀取失敗(read fail)。Generally speaking, after the solid-state storage device 100 is shipped from the factory and the non-volatile memory 150 has been programmed, read, and erased many times, the characteristics of the non-volatile memory 150 are deteriorated, which may cause data loss. At this time, the encoded read data obtained from the non-volatile memory 150 cannot pass the decoding operation, nor can it generate correct read data and pass it to the host, and cause read failure (read fail).

為了預防固態儲存裝置100發生讀取失敗,控制器120中的方程式儲存電路(function storage circuit)126內儲存多個預測方程式(prediction function)。預測方程式可以根據非揮發性記憶體150的各種參數來預測非揮發性記憶體150未來一段時間之後(例如三天後、一星期後或者一個月後)的狀態。如果預測方程式判斷出未來一段時間後,非揮發性記憶體150的狀態可能影響固態儲存裝置100的效能,則控制器120可以提前進行修正。例如,修改解碼動作中的解碼流程、修改讀取電壓、將預測出即將損壞區塊內的資料移動至其他區塊。In order to prevent the solid-state storage device 100 from failing to read, a plurality of prediction functions are stored in the function storage circuit 126 in the controller 120. The prediction equation can predict the state of the non-volatile memory 150 after a period of time (for example, three days, one week, or one month) according to various parameters of the non-volatile memory 150. If the prediction equation determines that the state of the non-volatile memory 150 may affect the performance of the solid-state storage device 100 after a period of time in the future, the controller 120 may make corrections in advance. For example, modify the decoding process in the decoding action, modify the reading voltage, and move the data in the block that is predicted to be damaged to another block.

換言之,固態儲存裝置100出廠之後,在運作的過程中,控制器120會持續蒐集非揮發性記憶體150內各個區塊(block)的多個參數,並將這些參數輸入預測方程式並且獲得對應的預測結果。其中,非揮發性記憶體150的參數可為區塊的錯誤位元(error bit)數目、編程時間(program time)、抹除時間(erase time)、即時解碼流程(例如硬式解碼或者式軟式解碼流程)、非揮發性記憶體150的操作溫度、讀取電壓偏移(read voltage shift)等等。In other words, after the solid-state storage device 100 is shipped from the factory, during operation, the controller 120 continuously collects a plurality of parameters of each block in the non-volatile memory 150, and inputs these parameters into the prediction equation and obtains the corresponding forecast result. The parameters of the non-volatile memory 150 can be the number of error bits of the block, program time, erase time, and real-time decoding process (such as hard decoding or soft decoding) Process), the operating temperature of the non-volatile memory 150, read voltage shift, etc.

為了蒐集非揮發性記憶體150的參數,控制器120會自行產生讀取運算並暫存於指令佇列128。當非揮發性記憶體150根據讀取運算而將編碼的讀取資料傳遞至控制器120後,ECC電路124會對編碼的讀取資料進行解碼動作,而執行解碼動作的過程中所出現的解碼內容則會暫存於緩衝器130中。再者,控制器120讀取緩衝器130中的所有解碼內容,並計算出預測方程式所需的參數。之後,控制器120再將計算出的參數輸入預測方程式並且獲得對應的預測結果。基本上,解碼內容可包括,但不限定於:錯誤位元的數目、編程時間、抹除時間、即時解碼流程或者操作溫度等等。In order to collect the parameters of the non-volatile memory 150, the controller 120 will automatically generate a read operation and temporarily store it in the command queue 128. After the non-volatile memory 150 transfers the encoded read data to the controller 120 according to the read operation, the ECC circuit 124 performs a decoding operation on the encoded read data, and the decoding that occurs during the decoding operation The content is temporarily stored in the buffer 130. Furthermore, the controller 120 reads all the decoded contents in the buffer 130 and calculates the parameters required for the prediction equation. After that, the controller 120 inputs the calculated parameters into the prediction equation and obtains the corresponding prediction result. Basically, the decoding content may include, but is not limited to: the number of erroneous bits, programming time, erasing time, instant decoding process or operating temperature, etc.

請參照第2圖,其所繪示為習知指令佇列示意圖。控制器120可根據主機110的讀取指令來產生對應之主機的讀取運算(Host read operation)並暫存於指令佇列128中。另外,為了蒐集非揮發性記憶體150的資訊,控制器120也可產生蒐集用讀取運算(Collection read operation)並暫存於指令佇列128中。Please refer to FIG. 2, which is a schematic diagram of a conventional command queue. The controller 120 can generate a corresponding host read operation (Host read operation) according to the read command of the host 110 and temporarily store it in the command queue 128. In addition, in order to collect the information of the non-volatile memory 150, the controller 120 may also generate a collection read operation (Collection read operation) and temporarily store it in the command queue 128.

基本上,控制器120不會依序將讀取運算傳遞至非揮發性記憶體150。控制器120會根據晶粒11~14是否在忙碌(busy)而以不定次序(out of order)的方式傳遞讀取運算至非揮發性記憶體150。舉例來說,當晶粒11正在忙碌時,控制器120不會傳遞關於晶粒11的讀取運算至非揮發性記憶體150。當晶粒13不忙碌(not busy)或閒置(idle)時,控制器120即由指令佇列128中傳遞關於晶粒13的讀取運算至非揮發性記憶體150。當然,指令佇列128中也可以暫存編程運算以及抹除運算。Basically, the controller 120 does not sequentially transfer the read operation to the non-volatile memory 150. The controller 120 transfers the read operation to the non-volatile memory 150 in an out of order according to whether the dies 11-14 are busy. For example, when the die 11 is busy, the controller 120 does not transfer the read operation about the die 11 to the non-volatile memory 150. When the die 13 is not busy or idle, the controller 120 transfers the read operation about the die 13 from the command queue 128 to the non-volatile memory 150. Of course, the programming operation and the erasing operation can also be temporarily stored in the instruction queue 128.

由於控制器120以不定次序(out of order)的方式傳遞讀取運算至非揮發性記憶體150。因此,控制器120也必須區別非揮發性記憶體150回傳之內容是屬於主機110之編碼的讀取資料或者蒐集用之編碼的讀取資料。於進行解碼動作並產生讀取資料後,主機100要求的讀取資料即可傳遞至主機100。The controller 120 transfers the read operation to the non-volatile memory 150 in an out of order manner. Therefore, the controller 120 must also distinguish whether the content returned by the non-volatile memory 150 is the encoded read data belonging to the host 110 or the encoded read data for collection. After performing the decoding operation and generating the read data, the read data requested by the host 100 can be transferred to the host 100.

再者,蒐集用的讀取資料則不需要傳遞至主機100,控制器120將執行解碼動作的過程中所出現的解碼內容暫存於緩衝器130中。Furthermore, the collected reading data does not need to be transferred to the host 100, and the controller 120 temporarily stores the decoded content that appears during the decoding operation in the buffer 130.

舉例來說,假設非揮性記憶體150中一個區塊有1024個頁、每個頁有4個ECC碼字(ECC codeword)。為了要蒐集一個區塊的解碼內容,控制器120必須產生4096(1024×4)個蒐集用讀取運算至指令佇列128,並傳遞至非揮發性記憶體150用以讀取4096個ECC碼字(ECC codeword)。再者,非揮發性記憶體150針對每一個ECC碼字進行解碼動作後,會產生4個位元組(4 bytes)的解碼內容。換言之,控制器120會收到16384(4096×4 byte)個位元組的解碼內容,並暫存於緩衝器130。For example, assume that one block in the non-volatile memory 150 has 1024 pages, and each page has 4 ECC codewords. In order to collect the decoded content of a block, the controller 120 must generate 4096 (1024×4) collection read operations to the command queue 128 and pass them to the non-volatile memory 150 for reading 4096 ECC codes Word (ECC codeword). Furthermore, after the non-volatile memory 150 decodes each ECC codeword, 4 bytes of decoded content will be generated. In other words, the controller 120 receives 16384 (4096×4 byte) bytes of decoded content and temporarily stores it in the buffer 130.

明顯地,為了要預測一個區塊的狀態,控制器120需要在緩衝器130中設定16384個位元組的空間來暫存解碼內容。如果控制器120需要預測多個區塊的狀況,則會佔用到大部分的緩衝器130空間。Obviously, in order to predict the state of a block, the controller 120 needs to set a space of 16384 bytes in the buffer 130 to temporarily store the decoded content. If the controller 120 needs to predict the status of multiple blocks, it will occupy most of the buffer 130 space.

另外,控制器120也必須多次讀取緩衝器130中的所有解碼內容,並計算出預測方程式所需的參數。因此,固態儲存裝置100的總體效能會下降。In addition, the controller 120 must also read all the decoded content in the buffer 130 multiple times and calculate the parameters required for the prediction equation. Therefore, the overall performance of the solid-state storage device 100 will decrease.

本發明為一種固態儲存裝置,包括:一非揮發性記憶體,包括複數個晶粒;一緩衝器;一控制器,連接至該非揮發性記憶體與該緩衝器,該控制器包括一錯誤校正碼電路、一方程式儲存電路、一暫存器組與一指令佇列;其中,該控制器產生多個蒐集用讀取運算,暫存於該指令佇列,並傳遞至該非揮發性記憶體;該非揮發性記憶體根據每一該蒐集用讀取運算產生對應的一編碼的讀取資料傳遞至該控制器;其中,該錯誤校正碼電路對該編碼的讀取資料進行解碼動作後產生一解碼內容,且該解碼內容中的一第一對應數目傳遞至該暫存器組中的一第一暫存器;其中,當該些編碼的讀取資料進行解碼動作後,該第一暫存器儲存的一數值即為一第一參數,輸入該方程式儲存電路中的一預測方程式。The present invention is a solid-state storage device, including: a non-volatile memory, including a plurality of dies; a buffer; a controller, connected to the non-volatile memory and the buffer, the controller includes an error correction A code circuit, a program storage circuit, a register group, and a command queue; wherein, the controller generates a plurality of read operations for collection, temporarily stores in the command queue, and passes it to the non-volatile memory; The non-volatile memory generates a corresponding coded reading data corresponding to each collection reading operation to the controller; wherein, the error correction code circuit performs a decoding operation on the coded reading data to generate a decoding Content, and a first corresponding number in the decoded content is transferred to a first register in the register group; wherein, when the encoded read data is decoded, the first register A stored value is a first parameter, and a predictive equation in the equation storage circuit is input.

為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下。In order to have a better understanding of the above and other aspects of the present invention, the embodiments are specifically described below and described in detail in conjunction with the accompanying drawings.

為了要改善習知固態儲存裝置為了計算預測方程式所需的參數而導致固態儲存裝置效能下降的問題,本發明提出一種固態儲存裝置,在讀取運算中建立多個設定欄位用以控制對應暫存器之運作。In order to improve the problem that the performance of the conventional solid-state storage device in order to calculate the parameters required for predicting the equation reduces the performance of the solid-state storage device, the present invention proposes a solid-state storage device that creates multiple setting fields in the reading operation to control the corresponding temporary The operation of the memory.

請參照第3圖,其所繪示為本發明固態儲存裝置示意圖。固態儲存裝置300經由一外部匯流排115連接至主機(host)110。其中,外部匯流排115可為USB匯流排、SATA匯流排、PCIe匯流排、M.2匯流排或者U.2匯流排等等。Please refer to FIG. 3, which is a schematic diagram of the solid-state storage device of the present invention. The solid-state storage device 300 is connected to the host 110 via an external bus 115. The external bus 115 may be a USB bus, a SATA bus, a PCIe bus, an M.2 bus, or a U.2 bus, etc.

固態儲存裝置300中包括一控制器320、緩衝器130與一非揮發性記憶體150。控制器320連接至非揮發性記憶體150與緩衝器130。其中,非揮發性記憶體150由多個晶粒(die)11~14組合而成,這些晶粒11~14可為反及閘快閃晶粒(NAND flash die)。另外,緩衝器130可為動態隨機存取記憶體(DRAM)。The solid-state storage device 300 includes a controller 320, a buffer 130, and a non-volatile memory 150. The controller 320 is connected to the non-volatile memory 150 and the buffer 130. The non-volatile memory 150 is composed of a plurality of dies 11-14, and these dies 11-14 can be NAND flash die. In addition, the buffer 130 may be a dynamic random access memory (DRAM).

控制器320中更包括一暫存器組330、一錯誤校正碼電路(ECC電路)124、方程式儲存電路126以及一指令佇列(command queue)328。其中,指令佇列328可以暫存多個運算指令(operation command),例如編程運算(program operation)、讀取運算(read operation)、抹除運算(erase operation)。另外,控制器320可將指令佇列328中的運算指令傳遞至非揮發性記憶體150。The controller 320 further includes a register set 330, an error correction code circuit (ECC circuit) 124, an equation storage circuit 126, and a command queue 328. The command queue 328 may temporarily store a plurality of operation commands (operation commands), such as program operations, read operations, and erase operations. In addition, the controller 320 may transfer the operation instructions in the instruction queue 328 to the non-volatile memory 150.

相同地,當主機110發出寫入指令或者讀取指令時,控制器320可對應地產生編程運算或者讀取運算並暫存於指令佇列328中。控制器320可將指令佇列328中的編程運算或者讀取運算傳遞至非揮發性記憶體150。其詳細的運作,此處不再贅述。Similarly, when the host 110 issues a write command or a read command, the controller 320 may correspondingly generate a program operation or a read operation and temporarily store it in the command queue 328. The controller 320 may transfer the programming operation or the reading operation in the command queue 328 to the non-volatile memory 150. Its detailed operation will not be repeated here.

基本上,控制器320利用編程運算可將編碼的寫入資料儲存至特定的晶粒11~14中,或者將編碼的寫入資料散布於所有的晶粒11~14中。另外,控制器320也可以利用讀取運算,由特定的晶粒中11~14中或者由所有的晶粒11~14中來取得編碼的讀取資料。Basically, the controller 320 can store the encoded write data in the specific dies 11-14 by programming operations, or distribute the encoded write data in all the dies 11-14. In addition, the controller 320 may also use the reading operation to obtain the encoded reading data from the specific dies 11-14 or all the dies 11-14.

當然,控制器320也可以在適當時機產生抹除運算(erase operation)暫存於指令佇列328中。當抹除運算傳遞至非揮發性記憶體150時,非揮發性記憶體150中特定晶粒11~14中特定區塊內的資料即被抹除,或者所有晶粒11~14中特定區塊內的資料即被抹除。Of course, the controller 320 may also generate an erase operation at an appropriate timing and temporarily store it in the command queue 328. When the erase operation is transferred to the non-volatile memory 150, the data in the specific blocks in the specific dies 11-14 in the non-volatile memory 150 is erased, or the specific blocks in all the dies 11-14 The information inside is erased.

當固態儲存裝置300出廠之後,在運作的過程中,控制器320會持續蒐集非揮發性記憶體150內各個區塊(block)的多個參數,並將這些參數輸入預測方程式並且獲得對應的預測結果。其中,非揮發性記憶體150的參數可為區塊的錯誤位元(error bit)數目、編程時間(program time)、抹除時間(erase time)、即時解碼流程(例如硬式解碼或者式軟式解碼流程)、非揮發性記憶體150的操作溫度、讀取電壓偏移(read voltage shift)等等。After the solid-state storage device 300 is shipped from the factory, during operation, the controller 320 will continuously collect multiple parameters of each block in the non-volatile memory 150, and input these parameters into the prediction equation and obtain the corresponding prediction result. The parameters of the non-volatile memory 150 can be the number of error bits of the block, program time, erase time, and real-time decoding process (such as hard decoding or soft decoding) Process), the operating temperature of the non-volatile memory 150, read voltage shift, etc.

根據本發明的實施例,於控制器320產生的讀取運算中增加多個設定欄位,並搭配暫存器組中的至少一暫存器,用以持續記錄解碼內容,亦可暫停或重置(reset)暫存器的內容。According to an embodiment of the present invention, a plurality of setting fields are added to the read operation generated by the controller 320, and at least one register in the register group is used to continuously record the decoded content, and can also be paused or Reset the contents of the register.

請參照第4圖,其所繪示為本發明指令佇列中讀取運算與暫存器的運作關係第一實施例。基本上,控制器320根據主機110的讀取指令來產生對應之主機的讀取運算(Host read operation)並暫存於指令佇列328中。另外,為了蒐集非揮發性記憶體150的資訊,控制器320也可產生蒐集用讀取運算(Collection read operation)並暫存於指令佇列328中。Please refer to FIG. 4, which illustrates a first embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. Basically, the controller 320 generates a corresponding host read operation (Host read operation) according to the read command of the host 110 and temporarily stores it in the command queue 328. In addition, in order to collect the information of the non-volatile memory 150, the controller 320 may also generate a collection read operation (Collection read operation) and temporarily store it in the command queue 328.

如第4圖所示,控制器320產生的讀取運算中更包括二個位元(bit),一個位元代表重置致能(reset enable)欄位,另一個位元代表蒐集致能(collection enable)欄位。重置致能欄位以及蒐集致能欄位設定為"1"時,代表致能(enable);重置致能欄位以及蒐集致能欄位設定為"0"時,代表禁能(disable)。As shown in FIG. 4, the read operation generated by the controller 320 further includes two bits. One bit represents the reset enable field, and the other bit represents the collection enable ( collection enable) field. When the reset enable field and the collection enable field are set to "1", it means enable (enable); when the reset enable field and the collection enable field are set to "0", it means disable (disable ).

舉例來說,假設控制器320欲將一特定區塊的錯誤位元總數(error bit count)作為非揮發性記憶體150的參數並輸入預測方程式,則控制器可利用暫存器組330中的一累加暫存器(accumulator resistor)330a來獲得錯誤位元總數。詳細運作流程說明如下。For example, if the controller 320 wants to use the error bit count of a particular block as a parameter of the non-volatile memory 150 and input the prediction equation, the controller can use the An accumulator resistor 330a is used to obtain the total number of error bits. The detailed operation process is described below.

假設非揮性記憶體150中一個區塊有1024個頁、每個頁有4個ECC碼字(ECC codeword)。為了要蒐集一個區塊的錯誤位元總數,控制器320產生4096(1024×4)個蒐集用讀取運算至指令佇列328,並傳遞至非揮發性記憶體150用以讀取4096個ECC碼字(ECC codeword)。Suppose a block in the non-volatile memory 150 has 1024 pages, and each page has 4 ECC codewords. In order to collect the total number of erroneous bits of a block, the controller 320 generates 4096 (1024×4) collection read operations to the command queue 328 and passes them to the non-volatile memory 150 for reading 4096 ECC Codeword (ECC codeword).

如第4圖所示,指令佇列328中包括蒐集用讀取運算以及主機用讀取運算。其中,索引1(index 1)的蒐集用讀取運算中,重置致能欄位設定為"1"且蒐集致能欄位設定為"1",代表累加暫存器330a被重置(reset),並開始累加錯誤位元。因此,根據索引1的蒐集用讀取運算,ECC電路對非揮發性記憶體150傳回的ECC碼字進行解碼動作後,其解碼內容中包括38個錯誤位元(error bits)會被記錄於累加暫存器330a中。此時,累加暫存器330a中記錄的數值為38。As shown in FIG. 4, the instruction queue 328 includes a read operation for collection and a read operation for the host. Among them, in the read operation for collection of index 1 (index 1), the reset enable field is set to "1" and the collect enable field is set to "1", which means that the accumulation register 330a is reset (reset) ), and start to accumulate error bits. Therefore, according to the reading operation of the index 1 for collection, after the ECC circuit decodes the ECC codeword returned from the non-volatile memory 150, its decoding content including 38 error bits will be recorded in The accumulation register 330a. At this time, the value recorded in the accumulation register 330a is 38.

再者,索引2(index 2)的蒐集用讀取運算中,重置致能欄位設定為"0"且蒐集致能欄位設定為"1",代表累加暫存器330a不會被重置,並持續累加錯誤位元。因此,根據索引2的蒐集用讀取運算,ECC電路對非揮發性記憶體150傳回的ECC碼字進行解碼動作後,其解碼內容中包括36個錯誤位元(error bits)即被累加於累加暫存器330a中。此時,累加暫存器330a記錄的數值為74。In addition, in the read operation for collection of index 2 (index 2), the reset enable field is set to "0" and the collect enable field is set to "1", indicating that the accumulation register 330a will not be reset Set and continue to accumulate error bits. Therefore, according to the reading operation of the index 2 for collection, after the ECC circuit decodes the ECC codeword returned from the non-volatile memory 150, its decoding content includes 36 error bits, which are accumulated in The accumulation register 330a. At this time, the value recorded in the accumulation register 330a is 74.

再者,索引3(index 3)的主機用讀取運算中,重置致能欄位設定為"0"且蒐集致能欄位設定為"0",代表累加暫存器330a不會被重置,也不會累加錯誤位元。因此,根據索引3的主機用讀取運算,ECC電路對非揮發性記憶體150傳回的ECC碼字進行解碼動作後,其解碼內容中不論有多少錯誤位元,皆不會被累加於累加暫存器330a中。此時,累加暫存器330a記錄的數值維持為74。同理,後續索引4~6的主機用讀取運算,累加暫存器330a記錄的數值也維持為74。In addition, in the index 3 (index 3) host read operation, the reset enable field is set to "0" and the collection enable field is set to "0", indicating that the accumulation register 330a will not be reset Will not accumulate error bits. Therefore, according to the read operation of the host at index 3, after the ECC circuit decodes the ECC codeword returned from the non-volatile memory 150, no matter how many error bits there are in the decoded content, it will not be accumulated in the accumulation In the temporary storage 330a. At this time, the value recorded in the accumulation register 330a is maintained at 74. In the same way, the subsequent index 4~6 hosts use the read operation, and the value recorded in the accumulation register 330a is also maintained at 74.

再者,索引7(index 7)的蒐集用讀取運算中,重置致能欄位設定為"0"且蒐集致能欄位設定為"1",代表累加暫存器330a不會被重置,並持續累加錯誤位元。因此,根據索引7的蒐集用讀取運算,ECC電路對非揮發性記憶體150傳回的ECC碼字進行解碼動作後,其解碼內容中包括31個錯誤位元(error bits)即被累加於累加暫存器330a中。此時,累加暫存器330a記錄的數值為105。In addition, in the read operation for the collection of index 7 (index 7), the reset enable field is set to "0" and the collect enable field is set to "1", indicating that the accumulation register 330a will not be reset Set and continue to accumulate error bits. Therefore, according to the read operation of the index 7 for collection, after the ECC circuit decodes the ECC codeword returned from the non-volatile memory 150, the decoded content includes 31 error bits, which are accumulated in The accumulation register 330a. At this time, the value recorded in the accumulation register 330a is 105.

依此類推,當控制器320產生的4096個蒐集用讀取運算由指令佇列328傳遞至非揮發性記憶體150後,累加暫存器330a內所記錄的數值即為該區塊的錯誤位元總數。而控制器320即直接讀取累加暫存器330a中的數值,並作為預測方程式的一個參數,輸入預測方程式。By analogy, after the 4096 collection read operations generated by the controller 320 are transferred from the command queue 328 to the non-volatile memory 150, the value recorded in the accumulation register 330a is the error bit of the block The total number of yuan. The controller 320 directly reads the value in the accumulation register 330a and inputs the prediction equation as a parameter of the prediction equation.

如第5圖所示,其為本發明固態儲存裝置第一實施例的參數計算流程圖。首先,控制器320經過一特定時間之後啟動(步驟S502),此特定時間可為例如10小時,或者一天。亦即,固態儲存裝置300運作10小時之後,即利用預測方程式來預測非揮發性記憶體150的狀態。As shown in FIG. 5, it is a flowchart of parameter calculation of the first embodiment of the solid-state storage device of the present invention. First, the controller 320 starts after a specific time (step S502), which may be, for example, 10 hours, or one day. That is, after the solid-state storage device 300 is operated for 10 hours, the state of the non-volatile memory 150 is predicted using the prediction equation.

接著,產生多個蒐集用讀取運算,暫存於該指令佇列,並傳遞至該非揮發性記憶體150(步驟S504)。接著,非揮發性記憶體150會將每一個蒐集用讀取運算所對應之編碼的讀取資料回傳至控制器320(步驟 S506)。Next, multiple read operations for collection are generated, temporarily stored in the command queue, and transferred to the non-volatile memory 150 (step S504). Then, the non-volatile memory 150 returns the encoded read data corresponding to each collected read operation to the controller 320 (step S506).

接著,控制器320中的ECC電路124會對每一個編碼的讀取資料進行解碼動作後產生一解碼內容,且解碼內容中的一第一對應數目傳遞至該暫存器組中的一第一暫存器(步驟S508)。如第4圖的範例,解碼內容中包括錯誤位元數目,而錯誤位元數目即傳遞至累加暫存器330a。Then, the ECC circuit 124 in the controller 320 decodes each encoded read data to generate a decoded content, and a first corresponding number of the decoded content is transferred to a first in the register group Scratchpad (step S508). As in the example of FIG. 4, the decoding content includes the number of error bits, and the number of error bits is transferred to the accumulation register 330a.

之後,當所有編碼的讀取資料進行解碼動作後,該第一暫存器儲存的一數值即為一第一參數,輸入該方程式儲存電路中的一預測方程式(步驟S510)。如第4圖的範例,所有解碼內容中的錯誤位元數目皆傳遞至累加暫存器330a後,累加暫存器330a內所記錄的數值即為該區塊的錯誤位元總數。而控制器320即直接讀取累加暫存器330a中的數值,並作為預測方程式的一個參數,輸入預測方程式。After that, after all the encoded read data are decoded, a value stored in the first register is a first parameter, and a predictive equation in the equation storage circuit is input (step S510). As shown in the example in FIG. 4, after all the error bits in the decoded content are transferred to the accumulation register 330a, the value recorded in the accumulation register 330a is the total number of error bits in the block. The controller 320 directly reads the value in the accumulation register 330a and inputs the prediction equation as a parameter of the prediction equation.

根據以上的說明可知,本發明的固態儲存裝置300中,控制器320不需在緩衝器130中設定特定的空間來暫存解碼內容,也不需要再讀取並計算緩衝器130中的解碼內容即可獲得預測方程式的參數。因此,可以大幅度地提升固態儲存裝置300的效能。According to the above description, in the solid-state storage device 300 of the present invention, the controller 320 does not need to set a specific space in the buffer 130 to temporarily store the decoded content, nor does it need to read and calculate the decoded content in the buffer 130 The parameters of the prediction equation can be obtained. Therefore, the performance of the solid-state storage device 300 can be greatly improved.

上述的參數係以錯誤位元的總數為例來說明,但是本發明並不限定於此。利用相同的暫存器控制方式,更可以在讀取運算中增加一個緩衝器選擇(register selection)欄位,以利用暫存器組330中的多個暫存器來蒐集各種參數。The above parameters are described by taking the total number of error bits as an example, but the present invention is not limited to this. Using the same register control method, a register selection field can be added to the read operation to use the multiple registers in the register group 330 to collect various parameters.

請參照第6圖,其所繪示為本發明指令佇列中讀取運算與暫存器的運作關係第二實施例。控制器320產生的讀取運算中更包括七個位元(bit),一個位元代表重置致能(reset enable)欄位,一個位元代表蒐集致能(collection enable)欄位、另五個位元為暫存器選擇欄位(register selection),用來選擇暫存器組330中的特定暫存器。Please refer to FIG. 6, which illustrates a second embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. The read operation generated by the controller 320 further includes seven bits, one bit represents the reset enable field, one bit represents the collection enable field, and the other five Each bit is a register selection field (register selection) used to select a specific register in the register group 330.

舉例來說,暫存器組330中至少包括五個暫存器,每個暫存器可以根據解碼內容來計算不同的參數。如第6圖所示,暫存器a可用來計算錯誤位元總數(error bit count)、暫存器b可用來計算錯誤位元的變異數(error bit variance)、暫存器c可用來計算解碼失敗的總數(decide fail count)、暫存器d可計算忙碌的總時間(busy time)、暫存器e可計算ECC碼字的總數(ECC codeword count)。For example, the register group 330 includes at least five registers, and each register can calculate different parameters according to the decoded content. As shown in Figure 6, register a can be used to calculate the total error bit count (error bit count), register b can be used to calculate the error bit variance (error bit variance), and register c can be used to calculate The total number of decoding failures (decide fail count), the register d can calculate the total busy time (busy time), and the register e can calculate the total number of ECC codewords (ECC codeword count).

假設控制器320選擇的預測方程式需要輸入的參數包括:錯誤位元總數、錯誤位元變異數、以及ECC碼字總數。則控制器320可將讀取運算中暫存器選擇欄位設定為"11001"。亦即,動作暫存器a、暫存器b與暫存器e,不動作暫存器c與暫存器d。詳細運作流程說明如下。It is assumed that the parameters to be input by the prediction equation selected by the controller 320 include the total number of erroneous bits, the number of erroneous bit variations, and the total number of ECC code words. Then, the controller 320 may set the register selection field in the reading operation to "11001". That is, the register a, the register b, and the register e are operated, and the register c and the register d are not operated. The detailed operation process is described below.

如第6圖所示,索引1(index 1)的蒐集用讀取運算中,重置致能欄位設定為"1"、蒐集致能欄位設定為"1"且暫存器選擇欄位設定為"11001"。因此,暫存器a、暫存器b與暫存器e動作。另外,暫存器a、暫存器b與暫存器e被重置(reset),且各別開始蒐集錯誤位元的數目、錯誤位元的變異數以及ECC碼字的數目。另外,控制器320可根據解碼內容,將錯誤位元數目傳遞至暫存器a,將錯誤位元的變異數傳遞至暫存器b,將ECC碼字的數目傳遞至暫存器d。As shown in Figure 6, in the read operation for the collection of index 1 (index 1), the reset enable field is set to "1", the collect enable field is set to "1" and the register selection field Set to "11001". Therefore, the register a, the register b, and the register e operate. In addition, the register a, the register b, and the register e are reset, and the number of erroneous bits, the number of variability of the erroneous bits, and the number of ECC codewords are separately collected. In addition, the controller 320 may transfer the number of erroneous bits to the register a according to the decoded content, the variability of the error bit to the register b, and the number of ECC codewords to the register d.

另外,索引2(index 1)的蒐集用讀取運算中,重置致能欄位設定為"0"、蒐集致能欄位設定為"1"且暫存器選擇欄位設定為"11001"。因此,暫存器a、暫存器b與暫存器e繼續蒐集錯誤位元的數目、錯誤位元的變異數以及ECC碼字的數目。In addition, in the read operation for collection of index 2 (index 1), the reset enable field is set to "0", the collect enable field is set to "1" and the register selection field is set to "11001" . Therefore, the register a, the register b, and the register e continue to collect the number of erroneous bits, the variability of the erroneous bits, and the number of ECC codewords.

再者,索引3~索引6(index 3~index 6)的主機用讀取運算中,重置致能欄位設定為"0"、蒐集致能欄位設定為"0"、暫存器選擇欄位設定為"00000",代表暫存器a、暫存器b與暫存器e不會蒐集對應的錯誤位元數目、錯誤位元的變異數以及ECC碼字的數目。In addition, in the read operation of the host for index 3~index 6 (index 3~index 6), the reset enable field is set to "0", the collection enable field is set to "0", and the register selection The field is set to "00000", which means that register a, register b and register e will not collect the corresponding number of erroneous bits, the number of erroneous bits and the number of ECC codewords.

再者,索引7(index 7)的蒐集用讀取運算中,重置致能欄位設定為"0"、蒐集致能欄位設定為"1"且暫存器選擇欄位設定為"11001"。因此,暫存器a、暫存器b與暫存器e繼續蒐集錯誤位元數目、錯誤位元的變異數以及ECC碼字的數目。Furthermore, in the read operation for the index 7 (index 7) collection, the reset enable field is set to "0", the collect enable field is set to "1" and the register selection field is set to "11001" ". Therefore, the register a, the register b, and the register e continue to collect the number of error bits, the number of variations of the error bits, and the number of ECC codewords.

依此類推,當控制器320產生的4096個蒐集用讀取運算,由指令佇列328傳遞至非揮發性記憶體150後,暫存器a的數值即為錯誤位元總數,暫存器b的數值即為錯誤位元的變異數,暫存器e的數值即為ECC碼字的總數。換言之,控制器320即直接讀取暫存器a、暫存器b、暫存器e的數值,並作為預測方程式的三個參數,輸入預測方程式。By analogy, when the 4096 read operations generated by the controller 320 are transferred from the command queue 328 to the non-volatile memory 150, the value of the register a is the total number of error bits, and the register b The value of is the number of variations of the error bit, and the value of the register e is the total number of ECC codewords. In other words, the controller 320 directly reads the values of the register a, the register b, and the register e, and inputs the prediction equation as three parameters of the prediction equation.

換言之,第二實施例可設定多個暫存器來接收解碼內容中的多個對應數目,例如錯誤位元數目、錯誤位元的變異數以及ECC碼字的數目,並獲得預測方程式所需要的多個參數。In other words, the second embodiment can set multiple registers to receive multiple corresponding numbers in the decoded content, such as the number of error bits, the number of error bit errors, and the number of ECC codewords, and obtain the prediction equation Multiple parameters.

當然,上述之第二實施例也可以再增加一位元的蒐集及結束欄位(collection end),並成為本發明之第三實施例。請參照第7圖,其所繪示為本發明指令佇列中讀取運算與暫存器的運作關係第三實施例。其中,當蒐集結束欄位被設定("1")時,代表該蒐集用讀取運算為最後一個搜集用讀取運算。當蒐集結束欄位未被設定("0")時,代表該蒐集用讀取運算為不是最後一個搜集用讀取運算。Of course, the above-mentioned second embodiment can also add a one-bit collection and end field (collection end), and become the third embodiment of the present invention. Please refer to FIG. 7, which illustrates a third embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. Among them, when the collection end field is set ("1"), it means that the collection read operation is the last collection read operation. When the collection end field is not set ("0"), it means that the collection read operation is not the last collection read operation.

如第7圖所示,假設蒐集一個區塊的錯誤位元總數,控制器320產生4096(1024×4)個蒐集用讀取運算至指令佇列328,而最後一個蒐集用讀取運算儲存於的指令佇列328的索引5000之位置。因此,索引5000位置的蒐集用讀取運算,其蒐集結束欄位設定為"1",並且索引5000位置之前的蒐集用讀取運算,其蒐集結束欄位設定為"0"。As shown in FIG. 7, assuming that the total number of erroneous bits of a block is collected, the controller 320 generates 4096 (1024×4) collection read operations to the instruction queue 328, and the last collection read operation is stored in Of the command queue 328 at index 5000. Therefore, for the collection operation at the index 5000 position, the collection end field is set to "1", and for the collection operation before the index 5000 position, the collection end field is set to "0".

根據本發明的第三實施例,當蒐集結束欄位設定為"1"的蒐集用讀取運算傳遞至非揮發性記憶體時,控制器320也會被通知指令佇列328已經傳遞了4096個蒐集用讀取運算。此時,暫存器a的數值即為錯誤位元總數,暫存器b的數值即為錯誤位元的變異數,暫存器e的數值即為ECC碼字的總數。換言之,控制器320即直接讀取暫存器a、暫存器b、暫存器e的數值,並作為預測方程式的三個參數,輸入預測方程式。According to the third embodiment of the present invention, when the read operation for collecting is set to "1" in the collecting end field and transferred to the non-volatile memory, the controller 320 will also be notified that the command queue 328 has passed 4096 Read operation for collection. At this time, the value of the register a is the total number of error bits, the value of the register b is the variation number of the error bit, and the value of the register e is the total number of ECC codewords. In other words, the controller 320 directly reads the values of the register a, the register b, and the register e, and inputs the prediction equation as three parameters of the prediction equation.

利用相同的暫存器控制方式,更可以在讀取運算中增加一個群組選擇(group selection)欄位,以利用暫存器組330中的特定暫存器群來蒐集特定晶粒中的各種參數。Using the same register control method, a group selection field can be added to the read operation to use the specific register group in the register group 330 to collect various types of specific die parameter.

請參照第8圖,其所繪示為本發明指令佇列中讀取運算與暫存器的運作關係第四實施例。控制器320產生的讀取運算中更包括九個位元(bit),一個位元代表重置致能(reset enable)欄位,一個位元代表蒐集致能(collection enable)欄位、五個位元為暫存器選擇欄位(register selection)、另二個位元為群組選擇欄位(group selection),用來選擇暫存器組330中特定群的暫存器。Please refer to FIG. 8, which illustrates a fourth embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. The read operation generated by the controller 320 further includes nine bits, one bit represents the reset enable field, one bit represents the collection enable field, and five The bit is a register selection field (register selection), and the other two bits are a group selection field (group selection), used to select a specific group of registers in the register group 330.

舉例來說,暫存器組330中包括二十個暫存器,五個暫存器組成一群(group),共有四個暫存器群。如第6圖所示,第(00) 暫存器群中包括暫存器a0、暫存器b0、暫存器c0、暫存器d0、暫存器e0;第(01) 暫存器群中包括暫存器a1、暫存器b1、暫存器c1、暫存器d1、暫存器e1;第(10) 暫存器群中包括暫存器a2、暫存器b2、暫存器c2、暫存器d2、暫存器e2;第(11) 暫存器群中包括暫存器a3、暫存器b3、暫存器c3、暫存器d3、暫存器e3。For example, the register group 330 includes twenty registers, five registers form a group, and there are four register groups in total. As shown in Figure 6, the (00) register group includes register a0, register b0, register c0, register d0, register e0; (01) register group Including the temporary register a1, temporary register b1, temporary register c1, temporary register d1, temporary register e1; the (10) temporary register group includes temporary register a2, temporary register b2, temporary register c2, register d2, register e2; the (11) register group includes register a3, register b3, register c3, register d3, register e3.

再者,暫存器a0~暫存器a3可用來計算錯誤位元總數(error bit count)、暫存器b0~暫存器b3可用來計算錯誤位元的變異數(error bit variance)、暫存器c0~暫存器c3可用來計算解碼失敗的總數(decide fail count)、暫存器d0~暫存器d3可計算忙碌的總時間(busy time)、暫存器e0~暫存器e3可計算ECC碼字的總數(ECC codeword count)。In addition, registers a0~a3 can be used to calculate the total error bit count (error bit count), registers b0~b3 can be used to calculate the error bit variance (error bit variance), temporary Register c0 ~ register c3 can be used to calculate the total number of decoding failure (decide fail count), register d0 ~ register d3 can calculate the total busy time (busy time), register e0 ~ register e3 The total number of ECC codewords can be calculated.

根據本發明的實施例,控制器320可以利用不同暫存器群來計算不同晶粒的參數。舉例來說,利用第(00) 暫存器群來蒐集晶粒11的參數,利用第(11)暫存器群來蒐集晶粒12的參數,依此類推。According to an embodiment of the present invention, the controller 320 may use different register groups to calculate parameters of different die. For example, the (00)th register group is used to collect the parameters of the die 11, the (11)th register group is used to collect the parameters of the die 12, and so on.

舉例來說,控制器320選擇第(10)暫存器群來蒐集特定晶粒中特定區塊的錯誤位元總數、錯誤位元變異數、以及ECC碼字總數。因此,控制器320將讀取運算中暫存器選擇欄位設定為"11001"並將群組選擇欄位設定為"10"。亦即,動作第(10)暫存器群中的暫存器a2、暫存器b2與暫存器e2,不動作暫存器c2與暫存器d2。詳細運作流程說明如下。For example, the controller 320 selects the (10)th register group to collect the total number of erroneous bits, the number of erroneous bit variations, and the total number of ECC codewords for a specific block in a specific die. Therefore, the controller 320 sets the register selection field in the reading operation to "11001" and sets the group selection field to "10". That is, the register a2, the register b2, and the register e2 in the (10)th register group are operated, and the register c2 and the register d2 are not operated. The detailed operation process is described below.

相同的運作原理,在第7圖的索引1(index 1)、索引2(index 1)與索引7 (index 7)的蒐集用讀取運算,控制器320可根據解碼內容,將錯誤位元數目傳遞至暫存器a2,將錯誤位元的變異數傳遞至暫存器b2,將ECC碼字的數目傳遞至暫存器e2。With the same operation principle, in the index 1 (index 1), index 2 (index 1) and index 7 (index 7) of FIG. 7 are collected for reading operation, the controller 320 can determine the number of erroneous bits according to the decoded content It is transferred to the register a2, the variability of the error bit is transferred to the register b2, and the number of ECC codewords is transferred to the register e2.

再者,索引3~索引6(index 3~index 6)的主機用讀取運算中,暫存器a2、暫存器b2與暫存器e2不會蒐集對應的錯誤位元數目、錯誤位元的變異數以及ECC碼字的數目。In addition, in the read operation of the index 3~index 6 (index 3~index 6), the register a2, the register b2 and the register e2 will not collect the corresponding number of error bits and error bits The number of variations and the number of ECC codewords.

依此類推,當控制器320產生的4096個蒐集用讀取運算由指令佇列328傳遞至非揮發性記憶體150後,暫存器a2的數值即為錯誤位元總數,暫存器b2的數值即為錯誤位元的變異數,暫存器e2的數值即為ECC碼字的總數。換言之,控制器320即直接讀取暫存器a2、暫存器b2、暫存器e2的數值,並作為預測方程式的三個參數,輸入預測方程式。By analogy, after the 4096 collection read operations generated by the controller 320 are transferred from the command queue 328 to the non-volatile memory 150, the value of the register a2 is the total number of error bits, and the value of the register b2 The value is the number of variations of the error bit, and the value of the register e2 is the total number of ECC code words. In other words, the controller 320 directly reads the values of the register a2, the register b2, and the register e2, and inputs the prediction equation as three parameters of the prediction equation.

根據以上的說明可知,本發明的固態儲存裝置300中,控制器320不需在緩衝器130中設定特定的空間來暫存解碼內容,也不需要再讀取並計算緩衝器130中的解碼內容即可獲得預測方程式的參數。因此,可以大幅度地提升固態儲存裝置300的效能。According to the above description, in the solid-state storage device 300 of the present invention, the controller 320 does not need to set a specific space in the buffer 130 to temporarily store the decoded content, nor does it need to read and calculate the decoded content in the buffer 130 The parameters of the prediction equation can be obtained. Therefore, the performance of the solid-state storage device 300 can be greatly improved.

綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。In summary, although the present invention has been disclosed as above with examples, it is not intended to limit the present invention. Those with ordinary knowledge in the technical field to which the present invention belongs can make various modifications and retouching without departing from the spirit and scope of the present invention. Therefore, the scope of protection of the present invention shall be deemed as defined by the scope of the attached patent application.

11~14:晶粒 100、300:固態儲存裝置 110:主機 115:外部匯流排 120、320:控制器 124:ECC電路 126:方程式儲存電路 128、328:指令佇列 130:緩衝器 150:非揮發性記憶體 330:暫存器組11~14: grain 100, 300: solid state storage devices 110: host 115: External bus 120, 320: controller 124: ECC circuit 126: Equation storage circuit 128, 328: command queue 130: buffer 150: Non-volatile memory 330: register group

第1圖為習知固態儲存裝置示意圖。 第2圖為習知指令佇列示意圖。 第3圖為本發明固態儲存裝置示意圖。 第4圖為本發明指令佇列中讀取運算與暫存器的運作關係第一實施例。 第5圖為本發明固態儲存裝置第一實施例的參數計算流程圖。 第6圖為本發明指令佇列中讀取運算與暫存器的運作關係第二實施例。 第7圖為本發明指令佇列中讀取運算與暫存器的運作關係第三實施例。 第8圖為本發明指令佇列中讀取運算與暫存器的運作關係第四實施例。 Figure 1 is a schematic diagram of a conventional solid-state storage device. Figure 2 is a schematic diagram of a conventional command queue. FIG. 3 is a schematic diagram of the solid-state storage device of the present invention. FIG. 4 is a first embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. FIG. 5 is a flowchart of parameter calculation of the first embodiment of the solid-state storage device of the present invention. FIG. 6 is a second embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. FIG. 7 is a third embodiment of the operation relationship between the read operation and the register in the command queue of the present invention. FIG. 8 is a fourth embodiment of the operation relationship between the read operation and the register in the command queue of the present invention.

11~14:晶粒 11~14: grain

110:主機 110: host

115:外部匯流排 115: External bus

124:ECC電路 124: ECC circuit

126:方程式儲存電路 126: Equation storage circuit

130:緩衝器 130: buffer

150:非揮發性記憶體 150: Non-volatile memory

300:固態儲存裝置 300: solid state storage device

320:控制器 320: controller

328:指令佇列 328: Command Queue

330:暫存器組 330: register group

Claims (8)

一種固態儲存裝置,包括: 一非揮發性記憶體,包括複數個晶粒; 一緩衝器; 一控制器,連接至該非揮發性記憶體與該緩衝器,該控制器包括一錯誤校正碼電路、一方程式儲存電路、一暫存器組與一指令佇列; 其中,該控制器產生多個蒐集用讀取運算,暫存於該指令佇列,並傳遞至該非揮發性記憶體;該非揮發性記憶體根據每一該蒐集用讀取運算產生對應的一編碼的讀取資料傳遞至該控制器; 其中,該錯誤校正碼電路對該編碼的讀取資料進行解碼動作後產生一解碼內容,且該解碼內容中的一第一對應數目傳遞至該暫存器組中的一第一暫存器; 其中,當該些編碼的讀取資料進行解碼動作後,該第一暫存器儲存的一數值即為一第一參數,輸入該方程式儲存電路中的一預測方程式。 A solid-state storage device, including: A non-volatile memory, including multiple grains; A buffer A controller connected to the non-volatile memory and the buffer, the controller includes an error correction code circuit, a program storage circuit, a register group and a command queue; Wherein, the controller generates a plurality of read operations for collection, temporarily stores them in the command queue, and transmits them to the non-volatile memory; the non-volatile memory generates a corresponding code according to each read operation of the collection The read data is transferred to the controller; Wherein, the error correction code circuit performs a decoding operation on the encoded read data to generate a decoded content, and a first corresponding number in the decoded content is transferred to a first register in the register group; After the encoded read data is decoded, a value stored in the first register is a first parameter, which is input into a prediction equation in the equation storage circuit. 如申請專利範圍第1項所述之固態儲存裝置,其中該蒐集用讀取運算中包括一重置致能欄位與一蒐集致能欄位;當該重置致能欄位被致能時,該第一暫存器被重置;以及,當該蒐集致能欄位被致能時,該第一對應數目輸入該第一暫存器。The solid-state storage device as described in item 1 of the patent application scope, wherein the read operation for collection includes a reset enable field and a collect enable field; when the reset enable field is enabled , The first register is reset; and, when the collection enable field is enabled, the first corresponding number is input to the first register. 如申請專利範圍第1項所述之固態儲存裝置,其中該第一對應數目為錯誤位元的數目、錯誤位元的變異數、解碼失敗的數目、忙碌總時間或者ECC碼字的數目。The solid-state storage device according to item 1 of the patent application scope, wherein the first corresponding number is the number of erroneous bits, the number of erroneous bits, the number of decoding failures, the total busy time, or the number of ECC codewords. 如申請專利範圍第3項所述之固態儲存裝置,其中該蒐集用讀取運算中更包括一暫存器選擇欄位,該暫存器選擇欄位可選擇該暫存器組中的該第一暫存器與一第二暫存器。The solid-state storage device as described in item 3 of the patent application scope, wherein the read operation for collecting further includes a register selection field, and the register selection field can select the first in the register group A temporary register and a second temporary register. 如申請專利範圍第4項所述之固態儲存裝置,其中該錯誤校正碼電路對該編碼的讀取資料進行解碼動作後產該解碼內容,且該解碼內容中的該第一對應數目傳遞至該第一暫存器,且一第二對應數目傳遞至該第二暫存器。The solid-state storage device as described in item 4 of the patent application scope, wherein the error correction code circuit performs decoding operation on the encoded read data to produce the decoded content, and the first corresponding number in the decoded content is passed to the The first register, and a second corresponding number is transferred to the second register. 如申請專利範圍第4項所述之固態儲存裝置,其中該蒐集用讀取運算中更包括一群組選擇欄位,該群組選擇欄位可選擇該暫存器組中一第一暫存器群中的該第一暫存器與一第二暫存器。The solid-state storage device as described in item 4 of the patent application scope, wherein the read operation for collection further includes a group selection field, and the group selection field can select a first temporary storage in the register group The first register and a second register in the device group. 如申請專利範圍第6項所述之固態儲存裝置,其中該錯誤校正碼電路對該編碼的讀取資料進行解碼動作後產該解碼內容,且該解碼內容中的該第一對應數目傳遞至該第一暫存器,且一第二對應數目傳遞至該第二暫存器。The solid-state storage device as described in item 6 of the patent application range, wherein the error correction code circuit performs decoding operation on the encoded read data to produce the decoded content, and the first corresponding number in the decoded content is passed to the The first register, and a second corresponding number is transferred to the second register. 如申請專利範圍第1項所述之固態儲存裝置,其中該蒐集用讀取運算中包括一蒐集結束欄;該控制器產生的該些蒐集用讀取運算中,最後一個蒐集用讀取運算的該蒐集結束欄被設定;以及,當該蒐集結束欄被設定的該蒐集用讀取運算傳遞至該該非揮發性記憶體後,該控制器被通知該第一暫存器儲存的該數值為該第一參數,用以輸入該方程式儲存電路中的該預測方程式。The solid-state storage device as described in item 1 of the patent application scope, wherein the collection read operation includes a collection end column; of the collection read operations generated by the controller, the last collection read operation The collection end column is set; and, when the collection read operation set in the collection end column is transferred to the non-volatile memory, the controller is notified that the value stored in the first register is the The first parameter is used to input the prediction equation in the equation storage circuit.
TW108117771A 2019-05-23 2019-05-23 Solid state storage device using prediction function TWI696180B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW108117771A TWI696180B (en) 2019-05-23 2019-05-23 Solid state storage device using prediction function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108117771A TWI696180B (en) 2019-05-23 2019-05-23 Solid state storage device using prediction function

Publications (2)

Publication Number Publication Date
TWI696180B true TWI696180B (en) 2020-06-11
TW202044260A TW202044260A (en) 2020-12-01

Family

ID=72176148

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108117771A TWI696180B (en) 2019-05-23 2019-05-23 Solid state storage device using prediction function

Country Status (1)

Country Link
TW (1) TWI696180B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010010088A1 (en) * 2000-01-26 2001-07-26 Takeshi Anzai Error bit correcting method for use in time-division multiple access system and bit correcting circuit
US6453440B1 (en) * 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
US20140281678A1 (en) * 2013-03-14 2014-09-18 Kabushiki Kaisha Toshiba Memory controller and memory system
CN107452421A (en) * 2016-05-31 2017-12-08 光宝电子(广州)有限公司 Solid state storage device and its trend prediction method
US20190095274A1 (en) * 2017-09-26 2019-03-28 Silicon Motion, Inc. Methods and apparatuses for proactive ecc failure handling

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453440B1 (en) * 1999-08-04 2002-09-17 Sun Microsystems, Inc. System and method for detecting double-bit errors and for correcting errors due to component failures
US20010010088A1 (en) * 2000-01-26 2001-07-26 Takeshi Anzai Error bit correcting method for use in time-division multiple access system and bit correcting circuit
US20140281678A1 (en) * 2013-03-14 2014-09-18 Kabushiki Kaisha Toshiba Memory controller and memory system
CN107452421A (en) * 2016-05-31 2017-12-08 光宝电子(广州)有限公司 Solid state storage device and its trend prediction method
US9922706B2 (en) * 2016-05-31 2018-03-20 Lite-On Electronics (Guangzhou) Limited Solid state storage device using state prediction method
US20190095274A1 (en) * 2017-09-26 2019-03-28 Silicon Motion, Inc. Methods and apparatuses for proactive ecc failure handling

Also Published As

Publication number Publication date
TW202044260A (en) 2020-12-01

Similar Documents

Publication Publication Date Title
JP5185156B2 (en) Memory controller and semiconductor memory device
JP5540969B2 (en) Nonvolatile memory device, memory controller, and memory system
US20190340125A1 (en) Apparatuses and methods to perform continuous read operations
TWI534618B (en) Mapping table updating method, memory control circuit unit and memory storage device
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
US8099543B2 (en) Methods of operarting memory devices within a communication protocol standard timeout requirement
US10283216B2 (en) Data storage device and data maintenance method thereof
US9304900B2 (en) Data reading method, memory controller, and memory storage device
TWI571882B (en) Wear leveling method, memory control circuit unit and memory storage device
TWI656442B (en) Method for access control in a memory device, and memory device and controller thereof
JP2010218634A (en) Error detector/corrector, memory controller, and semiconductor memory device
US20160132384A1 (en) Data reading method, memory storage device and memory controlling circuit unit
CN106155582B (en) Non-volatile memory device and controller
TWI442406B (en) Method for enhancing verification efficiency regarding error handling mechanism of a controller of a flash memory, and associated memory device and controller thereof
CN111984458B (en) Solid state storage device using predictive equations
TWI696180B (en) Solid state storage device using prediction function
US11294598B2 (en) Storage devices having minimum write sizes of data
JP2010097600A (en) Semiconductor recording device
JP2007058940A (en) Storage device, file storage device, and computer system
JP2011134031A (en) Semiconductor recording device and semiconductor recording system
JP4582078B2 (en) Memory controller, flash memory system, and flash memory control method
CN105573662B (en) Data writing method, memory control circuit unit, and memory storage device
JP2011065313A (en) Storage device
CN106980464B (en) System optimization method using oversampled reads
JP2011060415A (en) Nonvolatile semiconductor storage device and data storage system