TW201702871A - Methods for re-configuring a storage controller when control logic fails and apparatuses using the same - Google Patents

Methods for re-configuring a storage controller when control logic fails and apparatuses using the same Download PDF

Info

Publication number
TW201702871A
TW201702871A TW104128592A TW104128592A TW201702871A TW 201702871 A TW201702871 A TW 201702871A TW 104128592 A TW104128592 A TW 104128592A TW 104128592 A TW104128592 A TW 104128592A TW 201702871 A TW201702871 A TW 201702871A
Authority
TW
Taiwan
Prior art keywords
logic
memory controller
error
reconfiguring
control logic
Prior art date
Application number
TW104128592A
Other languages
Chinese (zh)
Other versions
TWI567544B (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 上海寶存信息科技有限公司
Publication of TW201702871A publication Critical patent/TW201702871A/en
Application granted granted Critical
Publication of TWI567544B publication Critical patent/TWI567544B/en

Links

Landscapes

  • Logic Circuits (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

An embodiment of a method for re-configuring a storage controller when control logic fails, which is executed by a processing unit, is described. The method comprises of the following steps. After determining that a storage controller fails, a re-configuration control logic of a fixed region of the storage controller is driven to reprogram the entire reconfigurable region of the storage controller, where the reconfigurable region is implemented in FPGA (Field-Programmable Gate Array).

Description

於控制邏輯錯誤時重新配置存儲控制器的方法以及使用該方法的裝置 Method for reconfiguring a storage controller when controlling logic errors and apparatus using the same

本發明關連於一種快閃記憶體裝置,特別是一種於控制邏輯錯誤時重新配置存儲控制器的方法以及使用該方法的裝置。 The present invention is related to a flash memory device, and more particularly to a method of reconfiguring a memory controller when controlling logic errors and a device using the same.

對於以現場可程式化邏輯閘陣列(FPGA,Field-Programmable Gate Array)封裝的固態硬碟(SSD,Solid State Drive)儲存系統中的控制器,單粒子翻轉(SEU,Single Event Upset)是造成控制邏輯錯誤的原因之一。單粒子翻轉是微電子裝置中的敏感裝置因為阿爾法粒子或宇宙射線衝擊造成的狀態翻轉。因此,本發明提出一種於控制邏輯錯誤時重新配置控制器中之邏輯的方法以及使用該方法的裝置,用以克服上述的問題。 For controllers in Solid State Drive (SSD) storage systems packaged in Field-Programmable Gate Array (FPGA), Single Event Upset (SEU) is the cause of control. One of the reasons for the logic error. Single-event flipping is a state in which a sensitive device in a microelectronic device flips due to alpha particles or cosmic ray impact. Accordingly, the present invention is directed to a method of reconfiguring logic in a controller when controlling logic errors and apparatus using the same to overcome the above problems.

本發明的實施例提出一種於控制邏輯錯誤時重新配置存儲控制器的方法,由處理單元執行,包含下列步驟。判斷存儲控制器發生錯誤後,驅動存儲控制器的固定區域中的重配置控制邏輯,用以重新程式化存儲控制器的整個可重配置區 域,其中,可重配置區域以現場可程式化邏輯閘陣列實施。 Embodiments of the present invention provide a method of reconfiguring a memory controller when controlling logic errors, executed by a processing unit, including the following steps. After determining that the storage controller has an error, driving the reconfiguration control logic in the fixed area of the storage controller to reprogram the entire reconfigurable area of the storage controller A domain in which the reconfigurable area is implemented as a field programmable gate array.

本發明的實施例提出一種於控制邏輯錯誤時重新配置控制器的裝置,包含固定區域與可重配置區域。固定區域包含處理單元以及重配置控制邏輯。處理單元判斷存儲控制器發生錯誤後,驅動存儲控制器的固定區域中的重配置控制邏輯,用以重新程式化存儲控制器的整個可重配置區域。可重配置區域以現場可程式化邏輯閘陣列實施。 Embodiments of the present invention provide an apparatus for reconfiguring a controller when controlling logic errors, including a fixed area and a reconfigurable area. The fixed area contains the processing unit and reconfiguration control logic. After the processing unit determines that the memory controller has an error, it drives the reconfiguration control logic in the fixed area of the memory controller to reprogram the entire reconfigurable area of the memory controller. The reconfigurable area is implemented as a field programmable logic gate array.

10‧‧‧系統 10‧‧‧System

110‧‧‧處理單元 110‧‧‧Processing unit

120‧‧‧唯讀記憶體 120‧‧‧Read-only memory

130‧‧‧靜態隨機存取記憶體 130‧‧‧Static Random Access Memory

140‧‧‧動態隨機存取記憶體 140‧‧‧Dynamic random access memory

150‧‧‧存取介面 150‧‧‧Access interface

160‧‧‧主裝置 160‧‧‧Main device

170‧‧‧存取介面 170‧‧‧Access interface

180‧‧‧儲存單元 180‧‧‧ storage unit

210‧‧‧記憶體單元陣列 210‧‧‧Memory cell array

220‧‧‧行解碼單元 220‧‧‧ line decoding unit

230‧‧‧列編碼單元 230‧‧‧ column coding unit

240‧‧‧位址單元 240‧‧‧ address unit

250‧‧‧資料暫存器 250‧‧‧data register

300a‧‧‧可重配置區域 300a‧‧‧Reconfigurable area

300b‧‧‧固定區域 300b‧‧‧Fixed area

310‧‧‧重配置控制邏輯 310‧‧‧Reconfiguration Control Logic

S410~S480‧‧‧方法步驟 S410~S480‧‧‧ method steps

S510~S520‧‧‧方法步驟 S510~S520‧‧‧ method steps

第1圖系依據本發明實施例之固態硬碟儲存系統的系統架構圖。 1 is a system architecture diagram of a solid state drive storage system in accordance with an embodiment of the present invention.

第2圖系依據本發明實施例之快閃記憶體中的儲存單元示意圖。 2 is a schematic diagram of a storage unit in a flash memory according to an embodiment of the present invention.

第3圖系依據本發明實施例之存儲控制器的邏輯分割示意圖。 Figure 3 is a schematic diagram showing the logical division of a memory controller in accordance with an embodiment of the present invention.

第4圖系依據本發明實施例之重新配置存儲控制器的方法流程圖。 4 is a flow chart of a method of reconfiguring a memory controller in accordance with an embodiment of the present invention.

第5圖系依據本發明實施例之重新配置存儲控制器的方法流程圖。 Figure 5 is a flow diagram of a method of reconfiguring a memory controller in accordance with an embodiment of the present invention.

以下說明系為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的申請專利範圍。 The following description is a preferred embodiment of the invention, which is intended to describe the basic spirit of the invention, but is not intended to limit the invention. The actual invention must refer to the scope of the patent application that follows.

必須瞭解的是,使用於本說明書中的”包含”、”包 括”等詞,系用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或元件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、元件,或以上的任意組合。 It must be understood that the "include" and "packages" used in this specification The words "and" are used to indicate that there are specific technical features, numerical values, method steps, operational processes, components and/or components, but do not exclude additional technical features, numerical values, method steps, and operational processing. Element, component, or any combination of the above.

於申請專利範圍中使用如”第一”、"第二"、"第三"等詞系用來修飾申請專利範圍中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。 The words "first", "second" and "third" are used in the scope of the patent application to modify the elements in the scope of the patent application, and are not intended to indicate a priority order, an advancing relationship, or One component precedes another component, or the chronological order in which the method steps are performed, and is only used to distinguish components with the same name.

第1圖系依據本發明實施例之固態硬碟儲存系統的系統架構圖。固態硬碟儲存系統的系統架構10中包含唯讀記憶體120,儲存重新配置存儲控制器的資訊。於此須注意的是,此資訊也可備份在儲存單元180中。當處理單元110執行靜態隨機存取記憶體130的控制核心演算法時,根據主裝置160透過存取介面150發出的命令,寫入資料到儲存單元180中的指定位址,或者從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110可透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、頻率訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍數據率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍數據率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊組件互聯(peripheral component interconnect express,PCI-E)或其他介面。處理單元110、唯讀記憶體120、靜態隨機存取記憶體130、存取介面150及170可統稱為一個存儲控制器(storage controller)。 1 is a system architecture diagram of a solid state drive storage system in accordance with an embodiment of the present invention. The system architecture 10 of the solid state drive storage system includes read only memory 120 that stores information for reconfiguring the storage controller. It should be noted here that this information can also be backed up in the storage unit 180. When the processing unit 110 executes the control core algorithm of the SRAM 130, the data is written to the specified address in the storage unit 180 according to the command issued by the host device 160 through the access interface 150, or from the storage unit 180. Read the data in the specified address. In detail, the processing unit 110 can write data to a specified address in the storage unit 180 through the access interface 170, and read data from a specified address in the storage unit 180. The system architecture 10 uses a plurality of electronic signals to coordinate data and command transfer between the processing unit 110 and the storage unit 180, including a data line, a clock signal, and a control signal. The data line can be used to transfer commands, addresses, read and write data; the control signal line can be used to transmit chip enable (CE), address latch enable (ALE), command extraction (command latch enable, CLE), write enable (write Enable, WE) and other control signals. The access interface 170 can communicate with the storage unit 180 using a double data rate (DDR) protocol, such as an open NAND flash interface (ONFI), a double data rate switch (DDR toggle), or Other interface. The processing unit 110 can also use the access interface 150 to communicate with the main device 160 through a specified communication protocol, for example, a universal serial bus (USB), an advanced technology attachment (ATA), and an advanced technology. (serial advanced technology attachment, SATA), peripheral component interconnect express (PCI-E) or other interface. The processing unit 110, the read-only memory 120, the static random access memory 130, and the access interfaces 150 and 170 may be collectively referred to as a storage controller.

第2圖系依據本發明實施例之快閃記憶體中的儲存單元示意圖。儲存單元180可包含由MxN個記憶體單元(memory cells)組成的陣列(array)210,而每一個記憶體單元儲存至少一個位(bit)的資訊。快閃記憶體可以是NAND型快閃記憶體,或其他種類的快閃記憶體。為了正確存取訊號,行解碼單元220用以選擇記憶體單元陣列210中指定的行,而列編碼單元230用以選擇指定行中一定數量的位元組的資料作為輸出。位址單元240提供行資訊給行解碼器220,其中定義了選擇記憶體單元陣列210中的那些行。相似地,列解碼器230則根據地址單元240提供的列資訊,選擇記憶體單元陣列210的指定行中一定數量的列進行讀取或寫入操作。行可稱為為字元線(wordline),列可稱為位線(bitline)。資料暫存器(data buffer)250 可儲存從記憶體單元陣列210讀取出的資料,或欲寫入記憶體單元陣列210中的資料。記憶體單元可為單層式單元(single-level cells,SLCs)、多層式單元(multi-level cells,MLCs)或三層式單元(triple-level cells,TLCs)。 2 is a schematic diagram of a storage unit in a flash memory according to an embodiment of the present invention. The storage unit 180 may include an array 210 composed of MxN memory cells, and each memory unit stores at least one bit of information. The flash memory can be a NAND type flash memory, or other kinds of flash memory. In order to correctly access the signal, the row decoding unit 220 is configured to select a row specified in the memory cell array 210, and the column encoding unit 230 is configured to select a data of a certain number of bytes in the specified row as an output. Address unit 240 provides row information to row decoder 220 in which those rows in select memory cell array 210 are defined. Similarly, column decoder 230 selects a certain number of columns in a specified row of memory cell array 210 for read or write operations based on the column information provided by address unit 240. A row can be called a wordline, and a column can be called a bitline. A data buffer 250 can store data read from the memory cell array 210 or data to be written into the memory cell array 210. The memory unit can be single-level cells (SLCs), multi-level cells (MLCs), or triple-level cells (TLCs).

第3圖系依據本發明實施例之存儲控制器的邏輯分割示意圖。存儲控制器可包含可重配置區域(reconfigurable region)130a及固定區域(fixed region)300b。固定區域300b可包含輸出入控制邏輯(I/O control logic)、主裝置通訊邏輯(master-device communications logic)及重配置控制邏輯(re-configuration control logic)310等。固定區域300b另可包含處理單元110的運算邏輯單元,用以依據載入的韌體進行數學運算以及控制其他元件。例如,輸出入控制邏輯包含對唯讀記憶體120以及靜態隨機存取記憶體130等的輸出入控制。主裝置通訊邏輯可實施於存取介面150。固定區域300b中的邏輯不能重新配置。可重配置區域300a以現場可程式化邏輯閘陣列實施。可重配置區域300a包含固態硬碟儲存系統的控制核心演算法,可占超過存儲控制器的90%空間。可重配置區域300a包含可程式化邏輯區塊的陣列及階層式可重新組態的相互連結,使得區塊與區塊可連接在一起,例如,數個邏輯閘可依據不同組態相互連接在一起。一些邏輯區塊可組態來執行複雜的綜合性功能,或者是簡單的邏輯閘,例如及閘(AND)、或閘(OR)、互斥或閘(XOR)等。一些邏輯區塊可包含記憶元件,由簡單的正反器(flip-flops)或完整的記憶塊組成。可重配置區域300a中的控制核心演算法以及固定區域300b中的邏輯可組織成數個碼 區段(code segments),並在每一個碼區段加上迴圈冗餘校驗碼(CRC-Cyclic Redundancy Check)進行保護。解碼單元可使用迴圈冗餘校驗碼檢查存儲控制器中的控制核心演算法及邏輯是否發生錯誤,並且當錯誤發生時嘗試修正其中的錯誤。然而,當控制核心演算法及邏輯無法修復時(亦可稱為控制邏輯錯誤),需要執行一個方法,用以重新配置存儲控制器。控制邏輯錯誤也可以代表存儲控制器發生錯誤。 Figure 3 is a schematic diagram showing the logical division of a memory controller in accordance with an embodiment of the present invention. The memory controller may include a reconfigurable region 130a and a fixed region 300b. The fixed area 300b may include an I/O control logic, a master-device communications logic, and a re-configuration control logic 310. The fixed area 300b may further include an arithmetic logic unit of the processing unit 110 for performing mathematical operations and controlling other components in accordance with the loaded firmware. For example, the input/output control logic includes input/output control for the read only memory 120, the static random access memory 130, and the like. The master device communication logic can be implemented in the access interface 150. The logic in fixed area 300b cannot be reconfigured. The reconfigurable area 300a is implemented as a field programmable logic gate array. The reconfigurable area 300a includes the control core algorithm of the solid state drive storage system, which can account for more than 90% of the space of the storage controller. The reconfigurable area 300a includes an array of programmable logic blocks and hierarchical reconfigurable interconnections such that the blocks can be connected to the blocks. For example, several logic gates can be connected to each other according to different configurations. together. Some logic blocks can be configured to perform complex, comprehensive functions, or simple logic gates such as AND, OR, OR, or XOR. Some logic blocks can contain memory elements, consisting of simple flip-flops or complete memory blocks. The control core algorithm in the reconfigurable area 300a and the logic in the fixed area 300b can be organized into several codes Code segments are protected by a CRC-Cyclic Redundancy Check in each code segment. The decoding unit may use the loop redundancy check code to check whether the control core algorithm and logic in the memory controller have an error, and attempt to correct the error when the error occurs. However, when the control core algorithm and logic cannot be repaired (also known as control logic errors), a method needs to be performed to reconfigure the storage controller. Control logic errors can also represent errors in the storage controller.

於一種實施方式中,存儲控制器可偵測可重配置區域300a的哪個部份發生不可恢復的錯誤,接著,僅重新組態發生錯誤的部分。為完成此偵測需要實施特定的硬體電路以及/或軟體指令。或者是,需要花費額外的時間來完成此偵測,在主裝置160所發出的命令逾時前,可能造成來不及完成重新組態以及處理此命令。於另一種實施方式,存儲控制器可重新組態整個可重配置區域300a而不進行如上所述的偵測。第4圖系依據本發明實施例之重新配置存儲控制器的方法流程圖。熟習此技藝人士理解當存儲控制器接收到主裝置160所發出的命令時,使用控制核心演算法來驅動存取介面170,用以完成此命令,例如資料讀取命令、資料寫入命令等。在使用控制核心演算法前,解碼單元需要先檢查存儲控制器中的控制核心演算法及邏輯是否正確。當解碼單元無法修復於存儲控制器的控制核心演算法及邏輯中發生的錯誤時,可發出最高優先權的中斷給處理單元110。當處理單元110接收到中斷後(步驟S410),暫停存取(步驟S420)。換句話說,處理單元110並不使用包含無法恢復錯誤的控制核心演算法來驅動存取介面170。接著,儲存 目前的執行狀態(例如,執行變數值,尚未寫入儲存單元180的資料,已讀取但尚未回復給主裝置160的資料等)於動態隨機存取記憶體140(步驟S430)。詳細來說,於步驟S430,處理單元110驅動輸出入控制邏輯儲存目前的執行狀態至動態隨機存取記憶體140。處理單元110驅動重配置控制邏輯310的開始執行重配置作業,用以重新程式化整個可重配置區域300a(步驟S440)。詳細來說,重配置控制邏輯310透過輸出入控制邏輯驅動讀取唯讀記憶體120中儲存的資訊,例如使用硬體描述語言(HDL,Hardware Description Language)撰寫的指令、邏輯區塊間相互連接的對照表等,並根據此資訊來重新程式化整個可重配置區域300a。接著,反復執行一個迴圈,用以詢問重配置控制邏輯310重配置作業是否完成(步驟S450)。當重配置控制邏輯310回復重配置作業完成的訊息後(步驟S450中”是”的路徑),處理單元110啟動整個存儲控制器的再初始化作業(re-initiation operation),使得存儲控制器處於可用狀態(步驟S460)。接著,從動態隨機存取記憶體140恢復(restore)執行狀態(步驟S470),以及根據恢復的執行狀態恢復存取(resume access)(步驟S480)。透過以上的方法,尚未執行完的操作可以從中斷點繼續執行。存儲控制器僅在短暫的時間(少於1秒)失效,重配置之後則恢復正常。 In one embodiment, the memory controller can detect which portion of the reconfigurable region 300a has an unrecoverable error, and then only reconfigure the portion where the error occurred. Specific hardware and/or software instructions are required to perform this detection. Alternatively, additional time is required to complete the detection, and it may not be possible to complete the reconfiguration and process the command until the command issued by the host device 160 expires. In another embodiment, the memory controller can reconfigure the entire reconfigurable area 300a without performing the detection as described above. 4 is a flow chart of a method of reconfiguring a memory controller in accordance with an embodiment of the present invention. Those skilled in the art understand that when the memory controller receives a command from the host device 160, the control core algorithm is used to drive the access interface 170 to complete the command, such as a data read command, a data write command, and the like. Before using the control core algorithm, the decoding unit needs to first check whether the control core algorithm and logic in the storage controller are correct. When the decoding unit is unable to repair an error occurring in the control core algorithm and logic of the memory controller, the highest priority interrupt can be issued to the processing unit 110. When the processing unit 110 receives the interrupt (step S410), the access is suspended (step S420). In other words, processing unit 110 does not use a control core algorithm that includes unrecoverable errors to drive access interface 170. Next, save The current execution state (for example, the execution of the variable value, the data that has not been written to the storage unit 180, the data that has been read but not yet replied to the host device 160, etc.) is in the dynamic random access memory 140 (step S430). In detail, in step S430, the processing unit 110 drives the input/output control logic to store the current execution state to the dynamic random access memory 140. The processing unit 110 drives the start of the reconfiguration control logic 310 to perform a reconfiguration job for reprogramming the entire reconfigurable area 300a (step S440). In detail, the reconfiguration control logic 310 drives the information stored in the read-only memory 120 through the input/output control logic, for example, instructions written in a hardware description language (HDL), and interconnections between logical blocks. The comparison table, etc., and reprograms the entire reconfigurable area 300a based on this information. Next, a loop is repeatedly executed to inquire whether the reconfiguration control logic 310 reconfiguration job is completed (step S450). When the reconfiguration control logic 310 returns a message that the reconfiguration job is completed (the path of YES in step S450), the processing unit 110 starts a re-initiation operation of the entire storage controller so that the storage controller is available. State (step S460). Next, the execution state is restored from the dynamic random access memory 140 (step S470), and resume access is resumed according to the restored execution state (step S480). Through the above methods, the operations that have not been performed can be continued from the interruption point. The storage controller expires only for a short period of time (less than 1 second) and then resumes normal after reconfiguration.

第5圖系依據本發明實施例之重新配置存儲控制器的方法流程圖。當暫停存取後(步驟S420),完成當前管道(pipeline)中操作(步驟S510)。當完成當前管道(pipeline)中操作後(步驟S510),處理單元110驅動重配置控制邏輯310的開始執 行重配置作業,用以重新程式化整個可重配置區域300a(步驟S440)。接著,當處理單元110啟動整個存儲控制器的再初始化作業,使得存儲控制器處於可用狀態後(步驟S460),恢復存取(步驟S520)。步驟S410、S420、S440、S450、S460的詳細技術內容請參考第4圖的說明,為求簡潔不再贅述。 Figure 5 is a flow diagram of a method of reconfiguring a memory controller in accordance with an embodiment of the present invention. When the access is suspended (step S420), the operation in the current pipeline is completed (step S510). When the operation in the current pipeline is completed (step S510), the processing unit 110 drives the start of the reconfiguration control logic 310. The line reconfiguration job is used to reprogram the entire reconfigurable area 300a (step S440). Next, when the processing unit 110 starts the reinitialization job of the entire storage controller so that the storage controller is in the usable state (step S460), the access is resumed (step S520). For detailed technical content of steps S410, S420, S440, S450, and S460, please refer to the description of FIG. 4, and details are not described again for brevity.

關於如何判斷上述存儲控制器發生錯誤,請參考第4圖及第5圖描述的方法流程:一些實施例是透過中斷處理常式(interrupt handler)的機制偵測發生單粒子翻轉錯誤,一旦接收到中斷,接著進行重新組態。於一些實施例中,處理單元110也可週期性的詢問(polling)解碼單元是否發生單粒子翻轉錯誤。一旦解碼單元回復發生單粒子翻轉錯誤,則進行重新組態。 For how to determine the error of the above storage controller, please refer to the method flow described in FIG. 4 and FIG. 5: some embodiments detect the occurrence of a single event flipping error through an interrupt handler mechanism, once received. Interrupt, then reconfigure. In some embodiments, processing unit 110 may also periodically poll the decoding unit for single event inversion errors. Once the decoding unit replies with a single-event rollover error, it is reconfigured.

雖然第1圖中包含了以上描述的組件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第4圖、第5圖的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不局限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而局限。 Although the above-described components are included in FIG. 1, it is not excluded that more other additional components are used without departing from the spirit of the invention, and a better technical effect has been achieved. Further, although the flowcharts of FIGS. 4 and 5 are executed in the specified order, those skilled in the art can modify the order among the steps without achieving the same effect without departing from the spirit of the invention. Therefore, the present invention is not limited to the use of only the order as described above. In addition, those skilled in the art may also integrate several steps into one step, or in addition to these steps, performing more steps sequentially or in parallel, and the present invention is not limited thereby.

雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請專利範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。 Although the present invention has been described using the above embodiments, it should be noted that these descriptions are not intended to limit the invention. On the contrary, this invention covers modifications and similar arrangements that are apparent to those skilled in the art. Therefore, the scope of the patent application must be interpreted in the broadest sense to include all obvious modifications and similar arrangements.

S410~S480‧‧‧方法步驟 S410~S480‧‧‧ method steps

Claims (24)

一種於控制邏輯錯誤時重新配置存儲控制器的方法,由一處理單元執行,包含:判斷一存儲控制器發生錯誤;暫停上述存儲控制器的操作;驅動一存儲控制器的一固定區域中的一重配置控制邏輯,用以重新程式化上述存儲控制器的一整個可重配置區域;以及恢復上述存儲控制器的操作。 A method for reconfiguring a memory controller when controlling a logic error, executed by a processing unit, comprising: determining that a memory controller has an error; suspending operation of the memory controller; driving a weight in a fixed area of a memory controller Configuring control logic for reprogramming an entire reconfigurable area of the storage controller; and restoring operation of the storage controller. 如申請專利範圍第1項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,上述可重配置區域以現場可程式化邏輯閘陣列實施。 A method of reconfiguring a memory controller as described in claim 1 for controlling logic errors, wherein the reconfigurable area is implemented as a field programmable logic gate array. 如申請專利範圍第1項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,更包含:於重新程式化上述存儲控制器的上述可重配置區域前,暫停一存取以及儲存一執行狀態至一動態隨機存取記憶體;以及於重新程式化上述存儲控制器的上述可重配置區域後,啟動上述存儲控制器的一再初始化作業、回復上述執行狀態以及根據上述執行狀態恢復上述存取。 The method for reconfiguring the storage controller when controlling logic errors as described in claim 1 further includes: suspending an access and storing an execution before reprogramming the reconfigurable area of the storage controller. a state to a dynamic random access memory; and after reprogramming the reconfigurable area of the memory controller, initiating a reinitialization operation of the memory controller, restoring the execution state, and restoring the access according to the execution state . 如申請專利範圍第3項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,上述固定區域包含一主裝置通訊邏輯,用以從一主裝置接收指示存取一儲存單元中的資料的一命令。 A method for reconfiguring a memory controller when a control logic error is described in claim 3, wherein the fixed area includes a host device communication logic for receiving an indication from a master device to access a memory unit A command for information. 如申請專利範圍第3項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,於上述驅動一存儲控制器的一固定區域中的一重配置控制邏輯的步驟,更包含:週期性詢問上述重配置控制邏輯一重配置作業是否完成;以及當上述重配置控制邏輯回復上述重配置作業已完成時,繼續後續的處理。 The method for reconfiguring a storage controller when controlling logic errors as described in claim 3, wherein the step of driving a reconfiguration control logic in a fixed area of the storage controller further includes: periodicity Inquiring whether the reconfiguration control logic one reconfiguration job is completed; and when the reconfiguration control logic returns that the reconfiguration operation has been completed, continuing the subsequent processing. 如申請專利範圍第1項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,於上述驅動一存儲控制器的一固定區域中的一重配置控制邏輯的步驟,更包含:依據一唯讀記憶體中儲存的一資訊重新程式化上述存儲控制器的上述整個可重配置區域。 The method for reconfiguring a storage controller when controlling a logic error as described in claim 1, wherein the step of driving a reconfiguration control logic in a fixed area of the storage controller further comprises: The information stored in the read-only memory reprograms the entire reconfigurable area of the storage controller. 如申請專利範圍第6項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,上述固定區域更包含一輸出入控制邏輯,以及於依據一唯讀記憶體中儲存的一資訊重新程式化上述存儲控制器的上述整個可重配置區域的步驟,更包含:驅動上述輸出入控制邏輯讀取上述唯讀記憶體中儲存的上述資訊。 The method for reconfiguring a memory controller when controlling logic errors as described in claim 6 wherein the fixed area further includes an input/output control logic and is re-created according to a message stored in a read-only memory. The step of programming the entire reconfigurable area of the memory controller further includes: driving the input/output control logic to read the information stored in the read-only memory. 如申請專利範圍第1項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,上述控制邏輯錯誤代表上述可重配置區域的控制核心演算法以及上述固定區域的邏輯中包含無法被一解碼器修正的錯誤。 A method for reconfiguring a memory controller when a control logic error is described in claim 1, wherein the control logic error represents that the control core algorithm of the reconfigurable area and the logic of the fixed area cannot be included A decoder corrected error. 如申請專利範圍第8項所述之於控制邏輯錯誤時重新配置 存儲控制器的方法,其中,上述可重配置區域的控制核心演算法以及上述固定區域的邏輯組織成多個碼區段,並且在每一上述碼區段加上一迴圈冗餘校驗碼進行保護。 Reconfigure as described in item 8 of the patent application for control logic errors A method of storing a controller, wherein a control core algorithm of the reconfigurable area and a logical structure of the fixed area are organized into a plurality of code segments, and a loop redundancy check code is added to each of the code segments Protect. 如申請專利範圍第9項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,上述解碼器使用上述迴圈冗餘校驗碼檢查上述可重配置區域的控制核心演算法以及上述固定區域的邏輯是否發生一錯誤,以及當上述錯誤發生時嘗試修正其中的錯誤。 a method for reconfiguring a memory controller when controlling logic errors as described in claim 9 wherein said decoder uses said loop redundancy check code to check said control core algorithm of said reconfigurable region and said Whether the logic of the fixed area has an error and attempts to correct the error when the above error occurs. 如申請專利範圍第1項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,於判斷一存儲控制器發生錯誤的步驟,更包含:接收代表一控制邏輯錯誤的一中斷。 The method for reconfiguring a storage controller when controlling a logic error as described in claim 1, wherein the step of determining a memory controller error comprises: receiving an interrupt representing a control logic error. 如申請專利範圍第11項所述之於控制邏輯錯誤時重新配置存儲控制器的方法,其中,上述中斷具有最高優先權。 A method of reconfiguring a memory controller as described in claim 11 in the context of a control logic error, wherein the interrupt has the highest priority. 一種於控制邏輯錯誤時重新配置存儲控制器的裝置,包含:一固定區域,包含一處理單元以及一重配置控制邏輯;以及一可重配置區域;其中,上述處理單元判斷一存儲控制器發生錯誤;以及驅動一存儲控制器的一固定區域中的一重配置控制邏輯,用以重新程式化上述存儲控制器的一整個可重配置區域。 An apparatus for reconfiguring a memory controller when controlling a logic error, comprising: a fixed area, including a processing unit and a reconfiguration control logic; and a reconfigurable area; wherein the processing unit determines that a memory controller has an error; And a reconfiguration control logic in a fixed area driving a memory controller for reprogramming an entire reconfigurable area of the memory controller. 如申請專利範圍第13項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述可重配置區域以現場可程式化邏輯閘陣列實施。 An apparatus for reconfiguring a memory controller as described in claim 13 of the scope of the patent, wherein the reconfigurable area is implemented as a field programmable logic gate array. 如申請專利範圍第13項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述處理單元於重新程式化上述存儲控制器的上述可重配置區域前,暫停一存取以及儲存一執行狀態至一動態隨機存取記憶體;以及於重新程式化上述存儲控制器的上述可重配置區域後,啟動上述存儲控制器的一再初始化作業、回復上述執行狀態以及根據上述執行狀態恢復上述存取。 The apparatus for reconfiguring a memory controller when controlling logic errors as described in claim 13 wherein the processing unit suspends an access and storage before reprogramming the reconfigurable area of the memory controller. An execution state to a dynamic random access memory; and after reprogramming the reconfigurable area of the memory controller, initiating a reinitialization operation of the memory controller, restoring the execution state, and restoring the foregoing according to the execution state access. 如申請專利範圍第15項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述固定區域包含一主裝置通訊邏輯,用以從一主裝置接收指示存取一儲存單元中的資料的一命令。 The apparatus for reconfiguring a memory controller when a control logic error is described in claim 15 wherein the fixed area includes a host device communication logic for receiving an indication from a master device to access a storage unit. A command for information. 如申請專利範圍第15項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述處理單元週期性詢問上述重配置控制邏輯一重配置作業是否完成;以及當上述重配置控制邏輯回復上述重配置作業已完成時,繼續後續的處理。 An apparatus for reconfiguring a storage controller when a control logic error is described in claim 15 wherein the processing unit periodically queries whether the reconfiguration control logic reconfiguration operation is completed; and when the reconfiguration control logic replies When the above reconfiguration job has been completed, the subsequent processing is continued. 如申請專利範圍第13項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述處理單元依據一唯讀記憶體中儲存的一資訊重新程式化上述存儲控制器的上述整個可重配置區域。 The apparatus for reconfiguring a memory controller when controlling a logic error as described in claim 13 wherein the processing unit reprograms the entire storage controller according to an information stored in a read-only memory. Reconfigure the area. 如申請專利範圍第18項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述固定區域更包含一輸出入控制邏輯,以及上述處理單元驅動上述輸出入控制邏輯讀取上述唯讀記憶體中儲存的上述資訊。 The apparatus for reconfiguring a memory controller when controlling logic errors as described in claim 18, wherein the fixed area further includes an input/output control logic, and the processing unit drives the input/output control logic to read the Read the above information stored in the memory. 如申請專利範圍第13項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述控制邏輯錯誤代表上述可重配置區域的控制核心演算法以及上述固定區域的邏輯中包含無法被一解碼器修正的錯誤。 The apparatus for reconfiguring a memory controller when controlling logic errors as described in claim 13 of the patent application, wherein the control logic error represents that the control core algorithm of the reconfigurable area and the logic of the fixed area cannot be included A decoder corrected error. 如申請專利範圍第20項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述可重配置區域的控制核心演算法以及上述固定區域的邏輯組織成多個碼區段,並且在每一上述碼區段加上一迴圈冗餘校驗碼進行保護。 The apparatus for reconfiguring a storage controller when controlling logic errors as described in claim 20, wherein the control core algorithm of the reconfigurable area and the logical area of the fixed area are organized into a plurality of code segments, and A loop redundancy check code is added to each of the above code segments for protection. 如申請專利範圍第21項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述解碼器使用上述迴圈冗餘校驗碼檢查上述可重配置區域的控制核心演算法以及上述固定區域的邏輯是否發生一錯誤,以及當上述錯誤發生時嘗試修正其中的錯誤。 The apparatus for reconfiguring a memory controller when controlling logic errors as described in claim 21, wherein the decoder uses the loop redundancy check code to check a control core algorithm of the reconfigurable area and the foregoing Whether the logic of the fixed area has an error and attempts to correct the error when the above error occurs. 如申請專利範圍第13項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述處理單元接收代表一控制邏輯錯誤的一中斷時,判斷上述存儲控制器發生錯誤。 The apparatus for reconfiguring a memory controller when controlling logic errors as described in claim 13 wherein the processing unit receives an interrupt representing a control logic error, and determines that the memory controller has an error. 如申請專利範圍第23項所述之於控制邏輯錯誤時重新配置存儲控制器的裝置,其中,上述中斷具有最高優先權。 A device for reconfiguring a memory controller when controlling logic errors as described in claim 23, wherein the interrupt has the highest priority.
TW104128592A 2015-07-14 2015-08-31 Methods for re-configuring a storage controller when control logic fails and apparatuses using the same TWI567544B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510411607.3A CN106648439B (en) 2015-07-14 2015-07-14 The method and device of storage control is reconfigured when control logic mistake

Publications (2)

Publication Number Publication Date
TW201702871A true TW201702871A (en) 2017-01-16
TWI567544B TWI567544B (en) 2017-01-21

Family

ID=58401011

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104128592A TWI567544B (en) 2015-07-14 2015-08-31 Methods for re-configuring a storage controller when control logic fails and apparatuses using the same

Country Status (2)

Country Link
CN (1) CN106648439B (en)
TW (1) TWI567544B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109686394B (en) * 2018-12-17 2020-12-01 深圳忆联信息系统有限公司 Nand Flash Phy parameter configuration method and device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320064B2 (en) * 2004-07-23 2008-01-15 Honeywell International Inc. Reconfigurable computing architecture for space applications
KR20100091379A (en) * 2009-02-10 2010-08-19 삼성전자주식회사 Solid state disk device and program fail processing method thereof
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
US9569320B2 (en) * 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
US8443230B1 (en) * 2010-12-15 2013-05-14 Xilinx, Inc. Methods and systems with transaction-level lockstep
WO2013052562A1 (en) * 2011-10-05 2013-04-11 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US9092449B2 (en) * 2012-10-17 2015-07-28 International Business Machines Corporation Bitmap selection for remote copying of updates
US9262270B2 (en) * 2012-12-28 2016-02-16 Intel Corporation Live error recovery
CN103840822B (en) * 2014-02-14 2017-01-04 北京时代民芯科技有限公司 The implementation method of aerospace FPGA based on SELECTMAP general refreshing circuit
US10929232B2 (en) * 2017-05-31 2021-02-23 Intel Corporation Delayed error processing

Also Published As

Publication number Publication date
CN106648439B (en) 2019-11-29
CN106648439A (en) 2017-05-10
TWI567544B (en) 2017-01-21

Similar Documents

Publication Publication Date Title
CN108172262B (en) Memory device including repairable volatile memory and method of operating the same
US20170177259A1 (en) Techniques to Use Open Bit Line Information for a Memory System
US9513992B2 (en) Method and apparatus to perform concurrent read and write memory operations
US10379979B2 (en) Power fail handling using stop commands
KR20150115652A (en) Error correction code (ecc) selection in nand flash controllers with multiple error correction codes
US11481294B2 (en) Runtime cell row replacement in a memory
KR102282879B1 (en) Method and system for using nand page buffers to improve the transfer buffer utilization of a solid state drive
US11158396B2 (en) Data redirection upon failure of a program operation
CN103984506A (en) Method and system for data writing of flash memory storage equipment
US11714697B2 (en) Reset and replay of memory sub-system controller in a memory sub-system
US20230004320A1 (en) Method of managing debugging log in storage device
US20180166142A1 (en) Flash command that reports a count of cell program failures
TWI567544B (en) Methods for re-configuring a storage controller when control logic fails and apparatuses using the same
TW201913354A (en) Method for performing data processing for error handling in memory device, associated memory device and controller thereof, and associated electronic device
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
TWI592938B (en) Methods for re-configuring a storage controller when control logic fails and apparatuses using the same
US10089196B2 (en) Methods for reconfiguring a storage controller when control logic fails and apparatuses using the same
TWI740454B (en) Method and apparatus for accessing to data in response to a power-supply event
US11829228B2 (en) Storage devices of performing metadata management and methods of operating the same
CN115687180A (en) Generating system memory snapshots on a memory subsystem having hardware accelerated input/output paths