CN112395122A - 闪存控制器及闪存控制器的方法 - Google Patents

闪存控制器及闪存控制器的方法 Download PDF

Info

Publication number
CN112395122A
CN112395122A CN202010353184.5A CN202010353184A CN112395122A CN 112395122 A CN112395122 A CN 112395122A CN 202010353184 A CN202010353184 A CN 202010353184A CN 112395122 A CN112395122 A CN 112395122A
Authority
CN
China
Prior art keywords
controller
flash memory
processor
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.)
Granted
Application number
CN202010353184.5A
Other languages
English (en)
Other versions
CN112395122B (zh
Inventor
李冠辉
杨尚达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN112395122A publication Critical patent/CN112395122A/zh
Application granted granted Critical
Publication of CN112395122B publication Critical patent/CN112395122B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/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
    • 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

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 (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所述的方法,另包含:
当侦测到从所述闪存接口控制器发送至所述处理器的信号或从所述协议控制器发送至所述处理器的信号时,使用所述处理器重置所述看门狗定时器。
CN202010353184.5A 2019-08-16 2020-04-29 闪存控制器及闪存控制器的方法 Active CN112395122B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
US16/542,313 2019-08-16

Publications (2)

Publication Number Publication Date
CN112395122A true CN112395122A (zh) 2021-02-23
CN112395122B 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 (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
US20230267047A1 (en) * 2022-02-23 2023-08-24 Micron Technology, Inc. Device reset alert mechanism
TWI806786B (zh) * 2022-10-07 2023-06-21 瑞昱半導體股份有限公司 積體電路

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3233274B2 (ja) * 1997-12-10 2001-11-26 日産自動車株式会社 マイクロコンピュータのプログラムリブート方法およびプログラムリブート装置
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 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
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
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
CN107430167B (zh) * 2015-06-18 2021-02-02 瑞萨电子株式会社 半导体装置和诊断测试方法
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 삼성전자주식회사 호스트의 지시 없이 능동적으로 유지보수 동작을 개시하는 스토리지 장치 및 그것을 포함하는 전자 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
CN112395122B (zh) 闪存控制器及闪存控制器的方法
WO2021169260A1 (zh) 一种系统板卡电源检测方法、装置、设备及存储介质
US7565579B2 (en) Post (power on self test) debug system and method
US7971112B2 (en) Memory diagnosis method
US6532552B1 (en) Method and system for performing problem determination procedures in hierarchically organized computer systems
US9747192B2 (en) Automated operating system installation on multiple drives
US7627807B2 (en) Monitoring a data processor to detect abnormal operation
US20080276129A1 (en) Software tracing
US6550019B1 (en) Method and apparatus for problem identification during initial program load in a multiprocessor system
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
JP3711871B2 (ja) Pciバスの障害解析容易化方式
CN111209129A (zh) 基于amd平台的内存优化方法和装置
JP2009223714A (ja) 演算回路及び演算回路の異常解析方法
US10922023B2 (en) Method for accessing code SRAM and electronic device
CN114265489A (zh) 电源故障监测方法、装置、电子设备及存储介质
CN107766251B (zh) 加载image的检测方法、系统、设备及可读存储介质
CN113760627B (zh) 一种采用应答机制的总线中接口调试控制方法及装置
CN117076183B (zh) 一种错误上报方法、片上系统、计算机设备及存储介质
JPH11120154A (ja) コンピュータシステムにおけるアクセス制御装置および方法
CN108415788B (zh) 用于对无响应处理电路作出响应的数据处理设备和方法
JP2009230350A (ja) 統合異常検知用データ取得装置

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