TWI759719B - 快閃記憶體控制器及用於快閃記憶體控制器的方法 - Google Patents

快閃記憶體控制器及用於快閃記憶體控制器的方法 Download PDF

Info

Publication number
TWI759719B
TWI759719B TW109112985A TW109112985A TWI759719B TW I759719 B TWI759719 B TW I759719B TW 109112985 A TW109112985 A TW 109112985A TW 109112985 A TW109112985 A TW 109112985A TW I759719 B TWI759719 B TW I759719B
Authority
TW
Taiwan
Prior art keywords
flash memory
controller
processor
interface controller
memory interface
Prior art date
Application number
TW109112985A
Other languages
English (en)
Other versions
TW202109298A (zh
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 TW202109298A publication Critical patent/TW202109298A/zh
Application granted granted Critical
Publication of TWI759719B publication Critical patent/TWI759719B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一種使用於一快閃記憶體控制器中的方法,包含:使用看門狗計時器來自動計數數字,並且如果看門狗計時器所計數之數字大於臨界值,則產生一重置觸發訊號給處理器;在從看門狗計時器接收到重置觸發訊號之後,使用處理器複製該處理器、快閃記憶體介面控制器與協議控制器中的至少其中一個之註冊資訊,並接著控制記憶體控制器將所複製之註冊資訊寫入動態隨機存取記憶體裝置,而不重新啟動快閃記憶體控制器之系統。

Description

快閃記憶體控制器及用於快閃記憶體控制器的方法
本發明係關於一快閃記憶體控制器測試的機制,特別有關於一種在測試過程中發生故障時能夠有效率地且準確地回報除錯資訊給主機的一快閃記憶體控制器及方法。
一般而言,工廠側之使用者/操作者可能使用一傳統測試過程在工廠側對於多個儲存裝置進行測試,以模擬一個故障的儲存裝置產品的相同狀況,從而對該故障的儲存裝置產品進行分析與除錯,然而,工廠側之使用者/操作者卻無法準確地知道一個儲存裝置產品內的哪一個部分(例如多個指令、多個韌體或多個硬體)發生了故障。
因此本發明的目的之一在於提供一種快閃記憶體控制器以及用於該快閃記憶體控制器的方法,以解決上述的問題。
根據本發明的實施例,其係揭露一種快閃記憶體控制器,該快閃記憶體控制器包含一看門狗計時器、一處理器、一記憶體控制器、一快閃記憶體介面控制器以及一協議控制器。看門狗計時器用以在被供電時自動地計算一數字,並且如果該看門狗計時器所計數之該數字大於一特定臨界值,則用以產生一重置觸發訊號至一處理器。處理器耦接至該看門狗計時器,並用以接收來自該看門狗計時器之該重置觸發訊號並用來控制其他多個控制器電路。記憶體控 制器係耦接至該處理器,並由該處理器所發送出之一第一控制訊號所控制以存取外部耦接至該快閃記憶體控制器之一動態隨機存取記憶體裝置。快閃記憶體介面控制器耦接於該處理器與外部耦接至該快閃記憶體控制器之一快閃記憶體之間,該快閃記憶體介面控制器由該處理器所發送出之一第二控制訊號所控制,以控制該快閃記憶體介面控制器用來從該快閃記憶體讀取出資料以及用來將資料寫入至該快閃記憶體。協議控制器耦接於該處理器與外部耦接至該快閃記憶體控制器之一主機之間,並用以接收從該主機所發送之一命令,並被該處理器所控制以從該協議控制器來發送一回應至該主機。而在接收到該重置觸發訊號之後,該處理器被安排為從該處理器、該快閃記憶體介面控制器與該協議控制器的至少其中一個中複製出一註冊資訊,並接著控制該記憶體控制器以將所複製之註冊資訊寫入該動態隨機存取記憶體裝置,而不重新啟動該快閃記憶體控制器之一系統。
根據本發明的實施例,其另揭露一種用於一快閃記憶體控制器的方法,包含:使用一看門狗計時器在被供電時自動地計算一數字,並且如果該看門狗計時器所計數之該數字大於一特定臨界值時,則產生一重置觸發訊號至該快閃記憶體控制器之一處理器;從該看門狗計時器接收該重置觸發訊號並控制其他多個控制器電路;從該處理器向該快閃記憶體控制器之一記憶體控制器發送一第一控制訊號,以控制該記憶體控制器存取外部耦接至該快閃記憶體控制器之一動態隨機存取記憶體裝置;從該處理器向該快閃記憶體控制器之一快閃記憶體介面控制器發送一第二控制訊號,以控制該快閃記憶體介面控制器從外部耦接至該快閃記憶體控制器之一快閃記憶體中讀取資料,並寫入資料至該快閃記憶體;使用一協議控制器來接收從一主機所發送之一命令,並使用該處理器來控制該協議控制器以從該協議控制器發送一回應至該主機;以及在接收到來自該看門狗計時器之該重置觸發訊號之後,使用該處理器從該處理器、該快 閃記憶體介面控制器與該協議控制器中的至少其中之一複製一註冊資訊,並接著控制該記憶體控制器將所複製之該註冊資訊寫入至該動態隨機存取記憶體裝置,而不重新啟動該快閃記憶體控制器之一系統。
100:儲存裝置
101:主機
105:快閃記憶體控制器
110:DRAM
115:快閃記憶體
1051:看門狗計時器
400:使用者介面
401,404,405:按鍵
402:核取框
403:解析器區域
406:資訊顯示區域
1052:處理器
1053:記憶體控制器
1054:快閃速記憶體介面控制器
1055:協議控制器
第1圖是本發明一實施例位於工廠端之批量生產測範例的示意圖。
第2圖是本發明實施例之第1圖的快閃記憶體控制器的操作/功能的流程圖。
第3圖是工廠側之使用者/操作者使用主機來取得儲存於儲存裝置內之DRAM或快閃記憶體中之對應的故障/失敗資訊的範例示意圖。
第4圖是本發明一實施例之在主機之螢幕上所顯示之該特定解析軟體工具之使用者介面的實施例示意圖。
請參考第1圖,第1圖是本發明一實施例位於一工廠端之一批量生產測範例的示意圖,工廠端的使用者或操作者手動使用一主機101,例如是一電腦裝置,來執行一測試過程(或一自動測試過程/程序),以測試多個儲存裝置100來進行一批量生產測試,而該些儲存裝置係個別獨自地耦接至主機101,該測試過程可以將一或多個命令從主機101發送至多個儲存裝置100中的每一個,以將對每一個儲存裝置100進行資料讀/寫,以進行批量生產測試。如果一特定的儲存裝置100在批量生產測試期間發生故障,亦即在資料讀取/寫入期間發生失敗,則儲存裝置100被安排將一失敗原因之相應的故障/失敗資訊儲存或記錄於例如一動態隨機存取記憶體(DRAM)及/或一快閃記憶體之類的一記憶體中,在此種情況下,使用者或操作者可以使用測試過程/程序的一解析軟體工具,以從儲存裝置100中取得或讀取得到該對應的故障/失敗資訊,並接著解析/分析該對應的故 障/失敗資訊以顯示資訊於主機101的螢幕上,給使用者/操作者得知,因而使用者/操作者可以根據所解析之資訊輕易地進行除錯(debug)或了解失敗的原因。
實作上,儲存裝置100例如在本發明實施例中係為一固態硬碟(solid-state drive,SSD)裝置,儲存裝置100包含一快閃記憶體控制器105、外部耦接至快閃記憶體控制器105之一DRAM 110以及外部耦接至快閃記憶體控制器105之一快閃記憶體115(例如NAND型快閃記憶體),快閃記憶體控制器105、DRAM 110與快閃記憶體115可被安裝於同一塊印刷電路板上,然此,並非是本案的限制。快閃速記憶體控制器105包含一看門狗計時器(watchdog timer)1051、例如基於ARM設計為主的微控制器之一處理器1052、一記憶體控制器1053、一快閃速記憶體介面控制器1054以及一協議控制器1055。
記憶體控制器1053係耦接於處理器1052與DRAM 110之間,並且由處理器102控制以存取DRAM 110。快閃記憶體介面控制器1054係耦接在處理器1052與快閃記憶體115之間,例如NAND型快閃記憶體,並且由處理器1052控制以讀取/寫入/擦除存儲在快閃記憶體115中的資料。協議控制器1055耦接在處理器1052與主機101之間,並且由處理器1052控制以接收從主機101所發送之一命令並從協議控制器1055發送一回應至主機101。在此實施例,記憶體控制器1053、快閃記憶體介面控制器1054與協議控制器1055係經由快閃記憶體控制器105的一內部共享匯流排而耦接至處理器1052,然而,這並非是本案的限制,在其他實施例中,記憶體控制器1053、快閃記憶體介面控制器1054與協議控制器1055可以被安排為經由不同的匯流排分別地並且獨自地耦接至處理器1052。
每一個儲存裝置100被安排為在儲存裝置100被供電以進行測試時初始化看門狗計時器1051,其中看門狗計時器1051用以偵測一相應的儲存裝置100是否發生故障/失敗,如果發生故障/失敗,則儲存裝置100被安排為將相應的故障/失敗資訊複製到DRAM 110中,並接著再將該相應的故障/失敗資訊複製到快 閃記憶體115中,以避免如果儲存裝置100不被供電時資料會消失。
看門狗計時器1051耦接至處理器1052,並用以在初始作供電時自動地計數一個數字,並且在如果看門狗計時器1051所計數之該數字大於一特定臨界值時,則用以產生一重置觸發訊號至處理器1052,而如果由看門狗計時器1051所計數之該數字變得大於該特定臨界值時,則看門狗計時器1051將會超時(timeout),並接著被安排來產生並發送該重置觸發訊號。而如果看門狗計時器1051在超時之前被處理器1052所服務(service),則看門狗計時器1051所計數之該數字會被重置為零,亦即,處理器1052係用以重置看門狗計時器1051。該處理器1052被安排為周期性地偵測處理器1052及快閃記憶體介面控制器1054、協議控制器1055中的至少一個之間的一通訊頻道/匯流排,理想上,如果在一批量生產測試程序期間一使用者/操作者使用主機101向儲存裝置100發送多個讀/寫命令,則協議控制器1055可以接收該多個讀/寫命令,並發送多個相應的訊號/命令至處理器1052,同樣地,此種情況下,快閃記憶體介面控制器1054在測試過程期間可以連續地從快閃記憶體115讀取出資料以將該資料發送至處理器1052,或者從處理器1052接收一資料以將該資料寫入至快閃記憶體1054,而如果處理器1052偵測到處理器1052與快閃記憶體介面控制器1054之間的通訊通道/匯流排以及處理器1052與協議控制器1055之間的通訊通道/匯流排在測試過程中並非是閒置(idle),則處理器1052會判定儲存裝置100當前正在工作,並接著被安排用以服務該看門狗計時器1051,亦即,重置由看門狗計時器1051所計數之該數字;看門狗計時器1051的超時係指出快閃記憶體介面控制器1054及/或協議控制器1055在讀/寫測試過程期間可能已經達到了一特定時段時間內均處於閒置狀態,而此指示出發生了故障/失敗。
另外,應當注意的是,當儲存裝置100成功通過該批量生產測試程序時,看門狗計時器1051的功能/操作係被禁用(disabled),然此並非是本案的限制。
第2圖是本發明實施例之第1圖的快閃記憶體控制器105的操作/功能的流程圖。倘若大體上可達到相同的結果,並不需要一定照第2圖所示之流程中的步驟順序來進行,且第2圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其中;詳細的流程步驟係說明於下:步驟205:開始;步驟210:當一測試過程中待測試之儲存裝置100被供電時,初始化一看門狗計時器1051;步驟215:計數一數字;步驟220:判斷該數字是否大於一臨界值;如果該數字大於臨界值,則流程進行步驟225,否則,流程進行步驟215;步驟225:將用以除錯之對應的故障/失敗資訊複製至DRAM 110中;步驟230:判斷快閃記憶體介面控制器1054是否正常;如果控制器1054正常,則流程進行步驟235,否則,流程進行步驟240;步驟235:將用以除錯之對應的故障/失敗資訊之至少一部分從DRAM 110複製或移動至快閃記憶體115中;步驟240:重置快閃記憶體介面控制器1054之註冊資訊;步驟245:將用以除錯之對應的故障/失敗資訊的至少一部分(亦即除錯資訊)從DRAM 110複製或移動至快閃記憶體115中;步驟250:斷言(assert)該處理器1054之工作狀態;以及步驟255:結束。
在步驟215中,看門狗計時器1051被安排為在儲存裝置100被供電之後自動地計數一次數字,例如,計數值的值可以是從N變為N+1,其中N是整數。
在步驟220中,看門狗計時器1051被安排為比較所計數之值與該特定臨界值,如果例如N+1的值變得大於該特定臨界值時,則看門狗計時器1051會從 看門狗計時器1051產生並發送該重置觸發訊號至處理器1052,如果例如N+1的值不大於該特定臨界值,則流程返回到步驟215,並且所計數之值會從N+1變為N+2。
在步驟225中,處理器1052從看門狗計時器1051接收該重置觸發訊號,接著被安排為通過經由內部匯流排向記憶體控制器1053發送一第一控制訊號來控制記憶體控制器1053,在這種情況下,處理器1052會判從定發生了故障/失敗,接著重試用以除錯之對應的故障/失敗資訊,以及接著通過控制記憶體控制器1053以寫入該對應的故障/失敗資訊至DRAM 110,以並儲存該對應的故障/失敗資訊至DRAM 110。
該對應的故障/失敗資訊例如包含處理器1052之一註冊資訊、快閃記憶體介面控制器1054之一註冊資訊以及協議控制器1055之一註冊資訊中的至少其中之一,每一組的註冊資訊例如包含一或多筆被執行或將被執行的指令、多個韌體變數及/或多個硬體變數(例如一有限狀態機的多個變數),然此並非是本案的限制。
接著,在步驟230中,處理器1052用以判斷快閃記憶體介面控制器1054之工作狀態是正常或是異常,例如,在一實施例中,處理器1052可以被安排為檢查快閃記憶體介面控制器1054之一命令隊列(command queue)以判斷該命令隊列是否為空的,如果該命令隊列是空的,則處理器1052會判定快閃記憶體介面控制器1054的工作狀態為正常,如果命令隊列不為空的,則處理器1052會判定快閃記憶體介面控制器1054的工作狀態是異常。
另外,在其他實施例,處理器1052也可以被安排為偵測一特定的韌體變數,其中該特定的韌體變數用以記錄已經用以成功地將資料編程(program)至快閃記憶體115中之多個指令的數目,以比較該特定的韌體變數與一目標指令數,以判斷快閃記憶體介面控制器1054之工作狀態是否正常;如果該特定的韌體變數所記錄之數目不等於目標,則判定快閃記憶體介面控制器1054的工作狀態是 異常。
當在步驟230中判斷快閃記憶體介面控制器1054為正常時,則在步驟235中處理器1052被安排為向快閃記憶體介面控制器1054發送一第二控制訊號,以控制快閃記憶體介面控制器1054寫入先前已經記錄於DRAM 110中之相應的故障/失敗資訊之至少一部分至快閃記憶體115中,應注意的是,處理器1052可以通過發送該第一控制訊號來控制記憶體控制器1053,以便令記憶體控制器1053從DRAM 110讀回該對應的故障/失敗資訊之一部分或全部,並接著回覆該對應的故障/失敗資訊至處理器1052。接著,處理器1052將該對應的故障/失敗資訊之一部分或全部以及該第二控制訊號發送給快閃記憶體介面控制器1054,以控制該控制器1054來寫入該對應的故障/失敗資訊之一部分或全部至快閃記憶體115的一或多個儲存頁,因此,即使儲存裝置100不再被供電,該對應的故障/失敗資訊的內容也不會消失。
反之,當在步驟230中判斷快閃記憶體介面控制器是異常時,則在步驟240中將處理器1052被安排為重置快閃記憶體介面控制器1054之當前的註冊資訊,並接著在步驟245中將該第二控制訊號發送至快閃記憶體介面控制器1054,以控制快閃記憶體介面控制器1054將先前已記錄在DRAM 110中之該對應的故障/失敗資訊的至少一部分寫入至快閃記憶體115,接著在一實施例,在步驟250中,可以在將該對應的故障/失敗資訊與該相應的事件日誌資訊已經分別被寫入至快閃記憶體115之後,斷言該處理器1052之工作狀態,其中斷言該處理器1052之狀態可以避免該處理器1052可能會繼續錯誤執行,然此並非是本發明的限制。
第3圖是工廠側之使用者/操作者使用主機101來取得儲存於一儲存裝置100內之DRAM 110或快閃記憶體115中之對應的故障/失敗資訊的範例示意圖。倘若大體上可達到相同的結果,並不需要一定照第3圖所示之流程中的步驟順序來進行,且第3圖所示之步驟不一定要連續進行,亦即其他步驟亦可插入其 中;詳細的流程步驟係說明於下:步驟305:開始;步驟310:發送一廠商/供應商命令(vendor command);步驟315:將對應的故障/失敗資訊從快閃記憶體115載入至主機101;步驟320:將該對應的故障/失敗資訊與一特定資料結構進行組合,以產生用以除錯之一特定文字檔案(text file);步驟325:在主機101之螢幕上為該使用者/操作者顯示該特定文字檔案之內容資料;以及步驟330:結束。
在步驟310中,工廠側的使用者/操作者可以使用主機101來執行一特定解析軟體工具,以從主機101向協議控制器1055發送例如一廠商/供應商命令之類之一特定命令,而接著該協議控制器1055會被安排通知處理器1052接收到了該廠商/供應商命令。接著,在步驟315中,為了回應該廠商/供應商命令的接收,處理器1052被安排為控制快閃記憶體介面控制器1054,經由該匯流排,從快閃記憶體115讀取該對應的故障/失敗資訊並接著發送該對應的故障/失敗資訊至協議控制器1055。處理器1052接著控制協議控制器1055以將從快閃記憶體介面控制器1054所接收到之該對應的故障/失敗資訊發送至主機101,等效地,主機101係從快閃記憶體115載入了該對應的故障/失敗資訊。
在步驟320中,在接收到該對應的故障/失敗資訊之一部分或全部之後,主機101被安排為將該對應的故障/失敗資訊與該特定資料結構進行組合以產生用以除錯之一特定文字檔案,接著在步驟325中,主機101被安排為在主機101的螢幕上為該使用者/操作者顯示該特定文字檔案的內容資料。
應注意的是,該相應的故障/失敗資訊可以通過儲存在快閃記憶體115之一或多個系統區塊中的二進位檔案(binary file)來實現,然而,這並非是本發 明的限制。
第4圖是本發明一實施例之在主機101之螢幕上所顯示之該特定解析軟體工具之一使用者介面(user interface)400的實施例示意圖。舉例來說,使用者介面400包含一按鍵“掃描裝置”401、一個核取框(checkbox)“SMI Tester”402以及一解析器區域403,其中解析器區域403包含一按鍵“解析”404、一按鍵“載入”405以及一資訊顯示區域406,該使用者/操作者可以按下該按鍵“掃描裝置”401來掃描耦接至主機101之一個、多個或所有的儲存裝置,以執行批量生產測試程序,該使用者/操作者可以選取核取框“SMI Tester”402,以確認對Silicon Motion的軟體工具之功能的使用,該使用者/操作者可以按下該按鍵“載入”405,以將該對應的故障/失敗資訊從儲存裝置100之快閃記憶體115載入至主機101,此外,該使用者/操作者也可以按下按鍵“解析”404以解析所載入之該對應的故障/失敗資訊以產生一文字檔案,而在解析操作已經完成之後,解析器區域403可以被安排用來顯示一樹形結構,為該使用者/操作者顯示該對應的故障/失敗資訊之內容資料。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:儲存裝置
101:主機
105:快閃記憶體控制器
110:DRAM
115:快閃記憶體
1051:看門狗計時器
1052:處理器
1053:記憶體控制器
1054:快閃速記憶體介面控制器
1055:協議控制器

Claims (20)

  1. 一種快閃記憶體控制器,包含:一看門狗計時器,用以在被供電時自動地計算一數字,並且如果該看門狗計時器所計數之該數字大於一特定臨界值,則用以產生一重置觸發訊號至一處理器;該處理器,耦接至該看門狗計時器,用以接收來自該看門狗計時器之該重置觸發訊號並用來控制其他多個控制器電路;一記憶體控制器,耦接至該處理器,由該處理器所發送出之一第一控制訊號所控制以存取外部耦接至該快閃記憶體控制器之一動態隨機存取記憶體裝置;一快閃記憶體介面控制器,耦接於該處理器與外部耦接至該快閃記憶體控制器之一快閃記憶體之間,該快閃記憶體介面控制器由該處理器所發送出之一第二控制訊號所控制,以控制該快閃記憶體介面控制器用來從該快閃記憶體讀取出資料以及用來將資料寫入至該快閃記憶體;以及一協議控制器,耦接於該處理器與外部耦接至該快閃記憶體控制器之一主機之間,用以接收從該主機所發送之一命令,並被該處理器所控制以從該協議控制器來發送一回應至該主機;其中,在接收到該重置觸發訊號之後,該處理器被安排為從該處理器、該快閃記憶體介面控制器與該協議控制器的至少其中一個中複製出一註冊資訊,並接著控制該記憶體控制器以將所複製之註冊資訊寫入該動態隨機存取記憶體裝置,而不重新啟動該快閃記憶體控制器之一系統。
  2. 如申請專利範圍第1項所述的快閃記憶體控制器,其中該處理器被安排為分別複製該處理器之一註冊資訊、該快閃記憶體介面控制器之一註冊資 訊以及該協議控制器之一註冊資訊至該動態隨機存取記憶體裝置中。
  3. 如申請專利範圍第1項所述的快閃記憶體控制器,其中,該註冊資訊包含一或多筆所執行的指令、一或多個韌體變數以及一或多個硬體變數之資訊中的至少其中之一。
  4. 如申請專利範圍第1項所述的快閃記憶體控制器,其中該處理器被安排為判斷該快閃記憶體介面控制器之一工作狀態是否正常;如果該快閃記憶體介面控制器之該工作狀態為正常,則該處理器被安排控制該快閃記憶體介面控制器以分別寫入該註冊資訊之至少一部分與一對應的事件日誌資訊至該快閃記憶體中。
  5. 如申請專利範圍第4項所述的快閃記憶體控制器,其中,如果該快閃記憶體介面控制器之該工作狀態不正常,則該處理器被安排重置該快閃記憶體介面控制器之一暫存器資訊,並接著已經被重置之該快閃記憶體介面控制器來寫入該對應的事件日誌資訊至該快閃記憶體。
  6. 如申請專利範圍第4項所述的快閃記憶體控制器,其中,該處理器被安排偵測該快閃記憶體介面控制器之一命令隊列,以及如果該看門狗計時器超時且該命令隊列是空的時,則該處理器會判定該快閃記憶體介面控制器之該工作狀態是正常的。
  7. 如申請專利範圍第4項所述的快閃記憶體控制器,其中,該處理器被安排偵測一特定韌體變數,該特定韌體變數用以記錄已經成功將資料編程至 該快閃記憶體之多筆指令的一個數;以及,該處理器被安排用來比較該特定韌體變數與一目標指令數,以判斷該快閃記憶體介面控制器之該工作狀態是否正常;如果該特定韌體變數所記錄之該個數不等於該目標指令數,則該處理器會判定該快閃記憶體介面控制器之該工作狀態不正常。
  8. 如申請專利範圍第1項所述的快閃記憶體控制器,其中,該處理器被安排判斷該快閃記憶體介面控制器之一工作狀態是否正常;如果該快閃記憶體介面控制器之該工作狀態不正常,則該處理器被安排重置該快閃記憶體介面控制器之一資訊,並接著控制該快閃記憶體介面控制器分別寫入該註冊資訊之至少一部分與一對應的事件日誌資訊至該快閃記憶體。
  9. 如申請專利範圍第8項所述的快閃記憶體控制器,其中,在將該註冊資訊與該對應的事件日誌資訊分別寫入該快閃記憶體之後,斷言該處理器之該工作狀態。
  10. 如申請專利範圍第1項所述的快閃記憶體控制器,其中,該記憶體控制器、該快閃記憶體介面控制器與該協議控制器係經由包含於該快閃記憶體控制器內的一內部共享匯流排而耦接至該處理器。
  11. 一種用於一快閃記憶體控制器的方法,包含:使用一看門狗計時器在被供電時自動地計算一數字,並且如果該看門狗計時器所計數之該數字大於一特定臨界值時,則產生一重置觸發訊號至該快閃記憶體控制器之一處理器;從該看門狗計時器接收該重置觸發訊號並控制其他多個控制器電路; 從該處理器向該快閃記憶體控制器之一記憶體控制器發送一第一控制訊號,以控制該記憶體控制器存取外部耦接至該快閃記憶體控制器之一動態隨機存取記憶體裝置;從該處理器向該快閃記憶體控制器之一快閃記憶體介面控制器發送一第二控制訊號,以控制該快閃記憶體介面控制器從外部耦接至該快閃記憶體控制器之一快閃記憶體中讀取資料,並寫入資料至該快閃記憶體;使用一協議控制器來接收從一主機所發送之一命令,並使用該處理器來控制該協議控制器以從該協議控制器發送一回應至該主機;以及在接收到來自該看門狗計時器之該重置觸發訊號之後,使用該處理器從該處理器、該快閃記憶體介面控制器與該協議控制器中的至少其中之一複製一註冊資訊,並接著控制該記憶體控制器將所複製之該註冊資訊寫入至該動態隨機存取記憶體裝置,而不重新啟動該快閃記憶體控制器之一系統。
  12. 如申請專利範圍第11項所述的方法,另包含:使用該處理器將該處理器之一註冊資訊、該快閃記憶體介面控制器之一註冊資訊及該協議控制器之一註冊資訊分別複製至該動態隨機存取記憶體裝置中。
  13. 如申請專利範圍第11項所述的方法,其中該註冊資訊包含有一或多筆所執行的指令、一或多個韌體變數以及一或多個硬體變數之資訊中的至少其中之一。
  14. 如申請專利範圍第11項所述的方法,另包含: 判斷該快閃記憶體介面控制器之一工作狀態是否正常;以及如果快閃記憶體介面控制器之該工作狀態是正常,則使用該處理器來控制該快閃記憶體介面控制器將該註冊資訊之至少一部分及一對應的事件日誌資訊分別寫入至該快閃記憶體。
  15. 如申請專利範圍第14項所述的方法,另包含:使用該處理器來重置該快閃記憶體介面控制器之一暫存器資訊,以及如果該快閃記憶體介面控制器之該工作狀態不正常,則接著使用已經被重置之該快閃記憶體介面控制器來寫入該暫存器資訊與該相應的事件日誌資訊至該快閃記憶體。
  16. 如申請專利範圍第14項所述的方法,其中判斷該快閃記憶體介面控制器之該工作狀態是否正常的步驟包含有:偵測該快閃記憶體介面控制器之一命令隊列;以及如果該看門狗計時器超時並且該命令隊列是空的,則判定該快閃記憶體介面控制器之該工作狀態為正常。
  17. 如申請專利範圍第14項所述的方法,其中,判斷該快閃記憶體介面控制器之該工作狀態是否正常的步驟包含:偵測一特定韌體變數,該特定韌體變數係用以記錄已經成功將資料編程至該快閃記憶體之多筆指令的一個數;比較該特定韌體變數與一目標指令數,以判斷該快閃記憶體介面控制器之該工作狀態是否正常;以及如果該特定韌體變數所記錄之該個數不等於該目標指令數,則該處理器會判 定該快閃記憶體介面控制器之該工作狀態不正常。
  18. 如申請專利範圍第11項所述的方法,另包含:判斷該快閃記憶體介面控制器之一工作狀態是否正常;以及使用該處理器來重置快該閃記憶體介面控制器之一資訊,以及如果該快閃記憶體介面控制器之該工作狀態不正常,則接著控制該快閃記憶體介面控制器分別將該註冊資訊之至少一部分與一對應的事件日誌資訊寫入該快閃記憶體中。
  19. 如申請專利範圍第18項所述的方法,另包含:在將該註冊資訊與該對應的事件日誌資訊分別寫入該快閃記憶體之後,斷言該處理器之該工作狀態。
  20. 如申請專利範圍第11項所述的方法,另包含:當偵測到從該快閃記憶體介面控制器發送至該處理器之一訊號或從該協議控制器發送至一處理器之一訊號時,使用該處理器重置該看門狗計時器。
TW109112985A 2019-08-16 2020-04-17 快閃記憶體控制器及用於快閃記憶體控制器的方法 TWI759719B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/542,313 2019-08-16
US16/542,313 US10877700B1 (en) 2019-08-16 2019-08-16 Flash memory controller and method capable of efficiently reporting debug information to host device

Publications (2)

Publication Number Publication Date
TW202109298A TW202109298A (zh) 2021-03-01
TWI759719B true TWI759719B (zh) 2022-04-01

Family

ID=74039807

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109112985A TWI759719B (zh) 2019-08-16 2020-04-17 快閃記憶體控制器及用於快閃記憶體控制器的方法

Country Status (3)

Country Link
US (2) US10877700B1 (zh)
CN (1) CN112395122B (zh)
TW (1) TWI759719B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681455B2 (en) * 2021-07-22 2023-06-20 Dell Products L.P. Shadow live migration over a smart network interface card
US11853148B2 (en) 2021-09-23 2023-12-26 Apple Inc. Datalogging circuit triggered by a watchdog timer
US11994951B2 (en) * 2022-02-23 2024-05-28 Micron Technology, Inc. Device reset alert mechanism
TWI806786B (zh) * 2022-10-07 2023-06-21 瑞昱半導體股份有限公司 積體電路

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200739418A (en) * 2005-11-28 2007-10-16 Atmel Corp Command decoder for microcontroller based flash memory digital controller system
TW200809865A (en) * 2006-06-30 2008-02-16 Sandisk Corp Partial page fail bit detection in flash memory devices
TW201316340A (zh) * 2011-10-07 2013-04-16 Fluiditech Ip Ltd 快閃記憶體測試方法
US20130212425A1 (en) * 2012-02-15 2013-08-15 Russell A. Blaine Enhanced debugging for embedded devices
US20170004063A1 (en) * 2015-06-30 2017-01-05 Freescale Semiconductor, Inc. Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller
US20170102888A1 (en) * 2015-10-13 2017-04-13 International Business Machines Corporation Backup storage of vital debug information
TW201715245A (zh) * 2015-06-18 2017-05-01 瑞薩電子股份有限公司 半導體裝置及診斷測試方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3233274B2 (ja) * 1997-12-10 2001-11-26 日産自動車株式会社 マイクロコンピュータのプログラムリブート方法およびプログラムリブート装置
KR100802059B1 (ko) * 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
JP4743182B2 (ja) * 2006-12-07 2011-08-10 株式会社デンソー マイクロコンピュータ
CN101630278A (zh) * 2008-07-18 2010-01-20 深圳富泰宏精密工业有限公司 记录电子装置当机异常信息的方法及其电子装置
US9208071B2 (en) * 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US8966319B2 (en) * 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US10009438B2 (en) * 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
JP6851110B2 (ja) * 2016-10-31 2021-03-31 日立Astemo株式会社 電子制御装置
US10580512B2 (en) * 2018-02-21 2020-03-03 Western Digital Technologies, Inc. Storage device with debug namespace
KR102546255B1 (ko) * 2018-08-03 2023-06-21 삼성전자주식회사 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200739418A (en) * 2005-11-28 2007-10-16 Atmel Corp Command decoder for microcontroller based flash memory digital controller system
TW200809865A (en) * 2006-06-30 2008-02-16 Sandisk Corp Partial page fail bit detection in flash memory devices
TW201316340A (zh) * 2011-10-07 2013-04-16 Fluiditech Ip Ltd 快閃記憶體測試方法
US20130212425A1 (en) * 2012-02-15 2013-08-15 Russell A. Blaine Enhanced debugging for embedded devices
TW201715245A (zh) * 2015-06-18 2017-05-01 瑞薩電子股份有限公司 半導體裝置及診斷測試方法
US20170004063A1 (en) * 2015-06-30 2017-01-05 Freescale Semiconductor, Inc. Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller
US20170102888A1 (en) * 2015-10-13 2017-04-13 International Business Machines Corporation Backup storage of vital debug information

Also Published As

Publication number Publication date
CN112395122B (zh) 2023-08-29
CN112395122A (zh) 2021-02-23
US10877700B1 (en) 2020-12-29
US11372589B2 (en) 2022-06-28
US20210072924A1 (en) 2021-03-11
TW202109298A (zh) 2021-03-01

Similar Documents

Publication Publication Date Title
TWI759719B (zh) 快閃記憶體控制器及用於快閃記憶體控制器的方法
WO2021169260A1 (zh) 一种系统板卡电源检测方法、装置、设备及存储介质
US9747192B2 (en) Automated operating system installation on multiple drives
TWI470420B (zh) 除錯方法及電腦系統
US8117430B2 (en) Boot test system and method thereof
US20240103961A1 (en) PCIe Fault Auto-Repair Method, Apparatus and Device, and Readable Storage Medium
CN107111595B (zh) 用于检测早期引导错误的方法、设备及系统
US8396998B2 (en) Memory-module extender card for visually decoding addresses from diagnostic programs and ignoring operating system accesses
US11841398B2 (en) Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (SSD) device
CN113366576A (zh) 用于存储器系统上的功率损耗操作的保持自测试
CN104239174A (zh) Bmc远程调试系统及方法
CN113377586A (zh) 一种服务器自动化检测方法、装置及存储介质
US11933847B2 (en) Apparatus and system for debugging solid-state disk (SSD) device
US20220413766A1 (en) Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (ssd) device
US10922023B2 (en) Method for accessing code SRAM and electronic device
TW201500911A (zh) 除錯裝置及除錯方法
CN114265489A (zh) 电源故障监测方法、装置、电子设备及存储介质
TWI777259B (zh) 開機方法
TW201928669A (zh) 電腦設備、診斷方法以及非暫時性電腦可讀儲存媒體
US7487399B2 (en) System and method for testing a component in a computer system using frequency margining
US7234083B2 (en) System and method for transferring information in a computer system
CN113760627B (zh) 一种采用应答机制的总线中接口调试控制方法及装置
TWI775360B (zh) 用以記錄電腦系統的硬體元件狀態的儲存裝置及其電腦實施方法
JPH05165737A (ja) メモリ試験方式
CN114721894A (zh) PCIe NVMe SSD断电保护功能的测试方法及装置