CN112395122B - 闪存控制器及闪存控制器的方法 - Google Patents
闪存控制器及闪存控制器的方法 Download PDFInfo
- Publication number
- CN112395122B CN112395122B CN202010353184.5A CN202010353184A CN112395122B CN 112395122 B CN112395122 B CN 112395122B CN 202010353184 A CN202010353184 A CN 202010353184A CN 112395122 B CN112395122 B CN 112395122B
- Authority
- CN
- China
- Prior art keywords
- controller
- processor
- flash memory
- flash
- interface controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/073—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
技术领域
本申请涉及一闪存控制器测试的机制,特别有关于一种在测试过程中发生故障时能够有效率地且准确地回报除错信息给主机的一闪存控制器及方法。
背景技术
一般而言,工厂侧的用户/操作员可能使用一传统测试过程在工厂侧对于多个储存装置进行测试,以仿真一个故障的储存装置产品的相同状况,从而对该故障的储存装置产品进行分析与除错,然而,工厂侧的用户/操作员却无法准确地知道一个储存装置产品内的哪一个部分(例如多个指令、多个固件或多个硬件)发生了故障。
发明内容
因此本申请的目的之一在于公开了一种闪存控制器以及用以该闪存控制器的方法,以解决上述的问题。
根据本申请的实施例,公开了一种闪存控制器,该闪存控制器包含一看门狗定时器、一处理器、一内存控制器、一闪存接口控制器以及一协议控制器。看门狗定时器用以在被供电时自动地计算一数字,并且如果该看门狗定时器所计数的该数字大于一特定临界值,则用以产生一重置触发信号至一处理器。处理器耦接至该看门狗定时器,并用以接收来自该看门狗定时器的该重置触发信号并用来控制其他多个控制器电路。内存控制器是耦接至该处理器,并由该处理器所发送出的一第一控制信号所控制以存取外部耦接至该闪存控制器的一动态随机存取内存。闪存接口控制器耦接于该处理器与外部耦接至该闪存控制器的一闪存之间,该闪存接口控制器由该处理器所发送出的一第二控制信号所控制,以控制该闪存接口控制器用来从该闪存读取出数据以及用来将数据写入至该闪存。协议控制器耦接于该处理器与外部耦接至该闪存控制器的一主机之间,并用以接收从该主机所发送的一命令,并被该处理器所控制以从该协议控制器来发送一响应至该主机。而在接收到该重置触发信号之后,该处理器被安排为从该处理器、该闪存接口控制器与该协议控制器的至少其中一个中复制出一注册信息,并接着控制该内存控制器以将所复制的注册信息写入该动态随机存取内存,而不重新启动该闪存控制器的一***。
根据本申请的实施例,另公开了一种用以一闪存控制器的方法,包含:使用一看门狗定时器在被供电时自动地计算一数字,并且如果该看门狗定时器所计数的该数字大于一特定临界值时,则产生一重置触发信号至该闪存控制器的一处理器;从该看门狗定时器接收该重置触发信号并控制其他多个控制器电路;从该处理器向该闪存控制器的一内存控制器发送一第一控制信号,以控制该内存控制器存取外部耦接至该闪存控制器的一动态随机存取内存;从该处理器向该闪存控制器的一闪存接口控制器发送一第二控制信号,以控制该闪存接口控制器从外部耦接至该闪存控制器的一闪存中读取数据,并写入数据至该闪存;使用一协议控制器来接收从一主机所发送的一命令,并使用该处理器来控制该协议控制器以从该协议控制器发送一响应至该主机;以及在接收到来自该看门狗定时器的该重置触发信号之后,使用该处理器从该处理器、该闪存接口控制器与该协议控制器中的至少其中一个复制一注册信息,并接着控制该内存控制器将所复制的该注册信息写入至该动态随机存取内存,而不重新启动该闪存控制器的一***。
附图说明
图1是本申请一实施例位于工厂端的批量生产测试实施例的示意图。
图2是本申请实施例的图1的闪存控制器的操作/功能的流程图。
图3是工厂侧的用户/操作员使用主机来取得储存于储存装置内的DRAM或闪存中的对应的故障/失败信息的实施例示意图。
图4是本申请一实施例的在主机的屏幕上所显示的该特定解析软件工具的用户界面的实施例示意图。
其中,附图标记说明如下:
100:储存装置
101:主机
105:闪存控制器
110:动态随机存取内存
115:闪存
400:用户界面
401,404,405:按键
402:核取框
403:解析器区域
406:信息显示区域
1051:看门狗定时器
1052:处理器
1053:内存控制器
1054:闪存接口控制器
1055:协议控制器
具体实施方式
请参考图1,图1是本申请一实施例位于一工厂端的一批量生产测试实施例的示意图,工厂端的用户或操作员手动使用一主机101,例如是一计算机装置,来执行一测试过程(或一自动测试过程/程序),以测试多个储存装置100来进行一批量生产测试,而该些储存装置是个别独自地耦接至主机101,该测试过程可以将一或多个命令从主机101发送至多个储存装置100中的每一个,以将对每一个储存装置100进行数据读/写,以进行批量生产测试。如果一特定的储存装置100在批量生产测试期间发生故障,也就是在数据读取/写入期间发生失败,则储存装置100被安排将一失败原因的相应的故障/失败信息储存或记录于例如一动态随机存取内存(DRAM)及/或一闪存之类的一记忆装置中,在此种情况下,用户或操作员可以使用测试过程/程序的一解析软件工具,以从储存装置100中取得或读取得到该对应的故障/失败信息,并接着解析/分析该对应的故障/失败信息以显示信息于主机101的屏幕上,给用户/操作员得知,因而用户/操作员可以根据所解析的信息轻易地进行除错(debug)或了解失败的原因。
实作上,储存装置100例如在本申请实施例中是一固态硬盘(solid-state drive,SSD)装置,储存装置100包含一闪存控制器105、外部耦接至闪存控制器105的一动态随机存取内存110以及外部耦接至闪存控制器105的一闪存115(例如NAND型闪存),闪存控制器105、动态随机存取内存110与闪存115可被安装于同一块印刷电路板上,然此,并非是本申请的限制。闪存控制器105包含一看门狗定时器(watchdog timer)1051、例如基于ARM设计为主的微控制器的一处理器1052、一内存控制器1053、一闪存接口控制器1054以及一协议控制器1055。
内存控制器1053是耦接于处理器1052与动态随机存取内存110之间,并且由处理器102控制以存取动态随机存取内存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被安排为将相应的故障/失败信息复制到动态随机存取内存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:将用以除错的对应的故障/失败信息复制至动态随机存取内存110中;
步骤230:判断闪存接口控制器1054是否正常;如果控制器1054正常,则流程进行步骤235,否则,流程进行步骤240;
步骤235:将用以除错的对应的故障/失败信息的至少一部分从动态随机存取内存110复制或移动至闪存115中;
步骤240:重置闪存接口控制器1054的注册信息;
步骤245:将用以除错的对应的故障/失败信息的至少一部分(也就是除错信息)从动态随机存取内存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以写入该对应的故障/失败信息至动态随机存取内存110,以并储存该对应的故障/失败信息至动态随机存取内存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写入先前已经记录于动态随机存取内存110中的相应的故障/失败信息的至少一部分至闪存115中,应注意的是,处理器1052可以通过发送该第一控制信号来控制内存控制器1053,以便令内存控制器1053从动态随机存取内存110读回该对应的故障/失败信息的一部分或全部,并接着回复该对应的故障/失败信息至处理器1052。接着,处理器1052将该对应的故障/失败信息的一部分或全部以及该第二控制信号发送给闪存接口控制器1054,以控制该控制器1054来写入该对应的故障/失败信息的一部分或全部至闪存115的一或多个储存页,因此,即使储存装置100不再被供电,该对应的故障/失败信息的内容也不会消失。
反之,当在步骤230中判断闪存接口控制器是异常时,则在步骤240中将处理器1052被安排为重置闪存接口控制器1054的当前的注册信息,并接着在步骤245中将该第二控制信号发送至闪存接口控制器1054,以控制闪存接口控制器1054将先前已记录在动态随机存取内存110中的该对应的故障/失败信息的至少一部分写入至闪存115,接着在一实施例,在步骤250中,可以在将该对应的故障/失败信息与该相应的事件日志信息已经分别被写入至闪存115之后,断言该处理器1052的工作状态,其中断言该处理器1052的状态可以避免该处理器1052可能会继续错误执行,然此并非是本申请的限制。
图3是工厂侧的用户/操作员使用主机101来取得储存于一储存装置100内的动态随机存取内存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,以确认对SiliconMotion的软件工具的功能的使用,该用户/操作员可以按下该按键“加载”405,以将该对应的故障/失败信息从储存装置100的闪存115加载至主机101,此外,该用户/操作员也可以按下按键“解析”404以解析所加载的该对应的故障/失败信息以产生一文本文件,而在解析操作已经完成之后,解析器区域403可以被安排用来显示一树形结构,为该用户/操作员显示该对应的故障/失败信息的内容数据。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种闪存控制器,包含:
看门狗定时器,用以在被供电时自动地计算一数字,并且如果所述看门狗定时器所计数的所述数字大于特定临界值,则用以产生重置触发信号至处理器;
所述处理器,耦接至所述看门狗定时器,用以接收来自所述看门狗定时器的所述重置触发信号并用来控制其他多个控制器电路;
内存控制器,耦接至所述处理器,由所述处理器所发送出的第一控制信号所控制以存取外部耦接至所述闪存控制器的动态随机存取内存;闪存接口控制器,耦接于所述处理器与外部耦接至所述闪存控制器的闪存之间,所述闪存接口控制器由所述处理器所发送出的第二控制信号所控制,以控制所述闪存接口控制器用来从所述闪存读取出数据以及用来将数据写入至所述闪存;以及
协议控制器,耦接于所述处理器与外部耦接至所述闪存控制器的主机之间,用以接收从所述主机所发送的命令,并被所述处理器所控制以从所述协议控制器来发送回应至所述主机;
其中,在接收到所述重置触发信号之后,所述处理器被安排为从所述处理器、所述闪存接口控制器与所述协议控制器的至少其中一个中复制出注册信息,并接着控制所述内存控制器以将所复制的所述注册信息写入所述动态随机存取内存,而不重新启动所述闪存控制器的***;所述注册信息包含一笔或多笔所执行的指令、一个或多个固件变量以及一个或多个硬件变量的信息中的至少其中一个。
2.如权利要求1所述的闪存控制器,其特征在于,所述处理器被安排为分别复制所述处理器的注册信息、所述闪存接口控制器的注册信息以及所述协议控制器的注册信息至所述动态随机存取内存中。
3.如权利要求1所述的闪存控制器,其特征在于,所述处理器被安排为判断所述闪存接口控制器的工作状态是否正常;如果所述闪存接口控制器的所述工作状态为正常,则所述处理器被安排控制所述闪存接口控制器以分别写入所述注册信息的部分与对应的事件日志信息至所述闪存中。
4.如权利要求3所述的闪存控制器,其特征在于,如果所述闪存接口控制器的所述工作状态不正常,则所述处理器被安排重置所述闪存接口控制器的一寄存器信息,并接着已经被重置的所述闪存接口控制器来写入所述对应的事件日志信息至所述闪存。
5.如权利要求3所述的闪存控制器,其特征在于,所述处理器被安排侦测所述闪存接口控制器的命令队列,以及如果所述看门狗定时器超时且所述命令队列是空的时,则所述处理器会判定所述闪存接口控制器的所述工作状态是正常的。
6.如权利要求3所述的闪存控制器,其特征在于,所述处理器被安排侦测特定固件变量,所述特定固件变量用以记录已经成功将数据编程至所述闪存的多笔指令的个数;以及,所述处理器被安排用来比较所述特定固件变量与目标指令数,以判断所述闪存接口控制器的所述工作状态是否正常;如果所述特定固件变量所记录的所述个数不等于所述目标指令数,则所述处理器会判定所述闪存接口控制器的所述工作状态不正常。
7.如权利要求1所述的闪存控制器,其特征在于,所述处理器被安排判断所述闪存接口控制器的工作状态是否正常;如果所述闪存接口控制器的所述工作状态不正常,则所述处理器被安排重置所述闪存接口控制器的信息,并接着控制所述闪存接口控制器分别写入所述注册信息的部分与对应的事件日志信息至所述闪存。
8.如权利要求7所述的闪存控制器,其特征在于,在将所述注册信息与所述对应的事件日志信息分别写入所述闪存之后,断言所述处理器的所述工作状态。
9.如权利要求1所述的闪存控制器,其特征在于,所述内存控制器、所述闪存接口控制器与所述协议控制器是通过包含于所述闪存控制器内的内部共享总线而耦接至所述处理器。
10.一种用于闪存控制器的方法,包含:
使用看门狗定时器在被供电时自动地计算数字,并且如果所述看门狗定时器所计数的所述数字大于特定临界值时,则产生重置触发信号至所述闪存控制器的处理器;
从所述看门狗定时器接收所述重置触发信号并控制其他多个控制器电路;
从所述处理器向所述闪存控制器的内存控制器发送第一控制信号,以控制所述内存控制器存取外部耦接至所述闪存控制器的动态随机存取内存;
从所述处理器向所述闪存控制器的闪存接口控制器发送第二控制信号,以控制所述闪存接口控制器从外部耦接至所述闪存控制器的闪存中读取数据,并写入数据至所述闪存;
使用协议控制器来接收从主机所发送的命令,并使用所述处理器来控制所述协议控制器以从所述协议控制器发送回应至所述主机;以及
在接收到来自所述看门狗定时器的所述重置触发信号之后,使用所述处理器从所述处理器、所述闪存接口控制器与所述协议控制器中的至少其中一个复制注册信息,并接着控制所述内存控制器将所复制的所述注册信息写入至所述动态随机存取内存,而不重新启动所述闪存控制器的***;
其中所述注册信息包含一笔或多笔所执行的指令、一个或多个固件变量以及一个或多个硬件变量的信息中的至少其中一个。
11.如权利要求10所述的方法,另包含:
使用所述处理器将所述处理器的注册信息、所述闪存接口控制器的注册信息及所述协议控制器的注册信息分别复制至所述动态随机存取内存中。
12.如权利要求10所述的方法,另包含:
判断所述闪存接口控制器的工作状态是否正常;以及
如果闪存接口控制器的所述工作状态是正常,则使用所述处理器来控制所述闪存接口控制器将所述注册信息的部分及对应的事件日志信息分别写入至所述闪存。
13.如权利要求12所述的方法,另包含:
使用所述处理器来重置所述闪存接口控制器的寄存器信息,以及如果所述闪存接口控制器的所述工作状态不正常,则接着使用已经被重置的所述闪存接口控制器来写入所述寄存器信息与所述对应的事件日志信息至所述闪存。
14.如权利要求12所述的方法,其特征在于,判断所述闪存接口控制器的所述工作状态是否正常的步骤包含有:
侦测所述闪存接口控制器的命令队列;以及
如果所述看门狗定时器超时并且所述命令队列是空的,则判定所述闪存接口控制器的所述工作状态为正常。
15.如权利要求12所述的方法,其特征在于,判断所述闪存接口控制器的所述工作状态是否正常的步骤包含:
侦测特定固件变量,所述特定固件变量是用以记录已经成功将数据编程至所述闪存的多笔指令的个数;
比较所述特定固件变量与目标指令数,以判断所述闪存接口控制器的所述工作状态是否正常;以及
如果所述特定固件变量所记录的所述个数不等于所述目标指令数,则所述处理器会判定所述闪存接口控制器的所述工作状态不正常。
16.如权利要求10所述的方法,另包含:
判断所述闪存接口控制器的工作状态是否正常;以及
使用所述处理器来重置所述闪存接口控制器的信息,以及如果所述闪存接口控制器的所述工作状态不正常,则接着控制所述闪存接口控制器分别将所述注册信息的部分与对应的事件日志信息写入所述闪存中。
17.如权利要求16所述的方法,另包含:
在将所述注册信息与所述对应的事件日志信息分别写入所述闪存之后,断言所述处理器的所述工作状态。
18.如权利要求10所述的方法,另包含:
当侦测到从所述闪存接口控制器发送至所述处理器的信号或从所述协议控制器发送至所述处理器的信号时,使用所述处理器重置所述看门狗定时器。
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 |
---|---|
CN112395122A CN112395122A (zh) | 2021-02-23 |
CN112395122B true CN112395122B (zh) | 2023-08-29 |
Family
ID=74039807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010353184.5A Active CN112395122B (zh) | 2019-08-16 | 2020-04-29 | 闪存控制器及闪存控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10877700B1 (zh) |
CN (1) | CN112395122B (zh) |
TW (1) | TWI759719B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022148608A (ja) * | 2021-03-24 | 2022-10-06 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11175360A (ja) * | 1997-12-10 | 1999-07-02 | Nissan Motor Co Ltd | マイクロコンピュータのプログラムリブート方法およびプログラムリブート装置 |
JP2008165729A (ja) * | 2006-12-07 | 2008-07-17 | Denso Corp | マイクロコンピュータ |
CN101630278A (zh) * | 2008-07-18 | 2010-01-20 | 深圳富泰宏精密工业有限公司 | 记录电子装置当机异常信息的方法及其电子装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7574611B2 (en) * | 2005-11-28 | 2009-08-11 | Atmel Corporation | 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 |
KR100802059B1 (ko) * | 2006-09-06 | 2008-02-12 | 삼성전자주식회사 | 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법 |
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 |
TW201316340A (zh) * | 2011-10-07 | 2013-04-16 | Fluiditech Ip Ltd | 快閃記憶體測試方法 |
US9158661B2 (en) * | 2012-02-15 | 2015-10-13 | Apple Inc. | Enhanced debugging for embedded devices |
US10009438B2 (en) * | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
EP3312623B1 (en) * | 2015-06-18 | 2022-04-13 | Renesas Electronics Corporation | Semiconductor device and diagnostic test method |
US9720797B2 (en) * | 2015-06-30 | 2017-08-01 | Nxp Usa, Inc. | Flash memory controller, data processing system with flash memory controller and method of operating a flash memory controller |
US9678682B2 (en) * | 2015-10-13 | 2017-06-13 | International Business Machines Corporation | Backup storage of vital debug information |
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 | 삼성전자주식회사 | 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템 |
-
2019
- 2019-08-16 US US16/542,313 patent/US10877700B1/en active Active
-
2020
- 2020-04-17 TW TW109112985A patent/TWI759719B/zh active
- 2020-04-29 CN CN202010353184.5A patent/CN112395122B/zh active Active
- 2020-11-19 US US16/952,098 patent/US11372589B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11175360A (ja) * | 1997-12-10 | 1999-07-02 | Nissan Motor Co Ltd | マイクロコンピュータのプログラムリブート方法およびプログラムリブート装置 |
JP2008165729A (ja) * | 2006-12-07 | 2008-07-17 | Denso Corp | マイクロコンピュータ |
CN101630278A (zh) * | 2008-07-18 | 2010-01-20 | 深圳富泰宏精密工业有限公司 | 记录电子装置当机异常信息的方法及其电子装置 |
Also Published As
Publication number | Publication date |
---|---|
US10877700B1 (en) | 2020-12-29 |
US11372589B2 (en) | 2022-06-28 |
TWI759719B (zh) | 2022-04-01 |
TW202109298A (zh) | 2021-03-01 |
US20210072924A1 (en) | 2021-03-11 |
CN112395122A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112395122B (zh) | 闪存控制器及闪存控制器的方法 | |
US6532552B1 (en) | Method and system for performing problem determination procedures in hierarchically organized computer systems | |
US8914681B2 (en) | Integrated circuit including a programmable logic analyzer with enhanced analyzing and debugging capabilities and a method therefor | |
US6550019B1 (en) | Method and apparatus for problem identification during initial program load in a multiprocessor system | |
US20080276129A1 (en) | Software tracing | |
US20240103961A1 (en) | PCIe Fault Auto-Repair Method, Apparatus and Device, and Readable Storage Medium | |
US8117430B2 (en) | Boot test system and method thereof | |
US7139942B2 (en) | Method and apparatus for memory redundancy and recovery from uncorrectable errors | |
US7281163B2 (en) | Management device configured to perform a data dump | |
US8799608B1 (en) | Techniques involving flaky path detection | |
WO2024124862A1 (zh) | 基于服务器的内存处理方法和装置、处理器及电子设备 | |
JP3711871B2 (ja) | Pciバスの障害解析容易化方式 | |
JP2009223714A (ja) | 演算回路及び演算回路の異常解析方法 | |
US20190310800A1 (en) | Method for accessing code sram and electronic device | |
CN114265489A (zh) | 电源故障监测方法、装置、电子设备及存储介质 | |
CN107766251B (zh) | 加载image的检测方法、***、设备及可读存储介质 | |
CN113742113A (zh) | 一种嵌入式***健康管理方法、设备及储存介质 | |
CN101311909A (zh) | 诊断***异样的方法 | |
CN113760627B (zh) | 一种采用应答机制的总线中接口调试控制方法及装置 | |
CN117076183B (zh) | 一种错误上报方法、片上***、计算机设备及存储介质 | |
CN117076182B (zh) | 一种错误上报方法、片上***、计算机设备及存储介质 | |
CN116489001A (zh) | 交换机故障诊断及恢复方法、装置、交换机及存储介质 | |
JPH07306811A (ja) | メモリ故障診断方法 | |
JP2022086932A (ja) | 情報処理装置および方法 | |
CN113393891A (zh) | 一种非易失性存储器的检测方法、装置及电动汽车 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |