CN113495848A - 闪存装置、闪存装置的开卡方法及计算机可读取存储介质 - Google Patents

闪存装置、闪存装置的开卡方法及计算机可读取存储介质 Download PDF

Info

Publication number
CN113495848A
CN113495848A CN202010267818.5A CN202010267818A CN113495848A CN 113495848 A CN113495848 A CN 113495848A CN 202010267818 A CN202010267818 A CN 202010267818A CN 113495848 A CN113495848 A CN 113495848A
Authority
CN
China
Prior art keywords
flash memory
memory device
card
host
information
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.)
Pending
Application number
CN202010267818.5A
Other languages
English (en)
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
Silicon Motion Technology Corp
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
Priority to CN202010267818.5A priority Critical patent/CN113495848A/zh
Priority to US17/085,640 priority patent/US11062746B1/en
Publication of CN113495848A publication Critical patent/CN113495848A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C2029/5602Interface to device under test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种闪存装置、闪存装置的开卡方法及计算机可读取存储介质,其中该闪存装置的开卡方法由闪存装置的处理单元执行,包含:在闪存装置进入测试模式时,判断闪存装置是否发生物理性重启;当闪存装置发生物理性重启时,执行第一阶段的操作,用于传送首个信息给开卡主机;以及当闪存装置发生代码重启时,执行第二阶段的操作,用于搜索闪存模块中让系统内程序代码参考的信息,从指定地址获取系统内程序代码并将系统内程序代码写入闪存模块。通过如上所述的操作区分及条件性执行一部分操作的判断,让处理单元能够在闪存装置发生物理性重启时快速传送首个信息给开卡主机,避免花费不必要的时间在空的闪存模块内搜索信息。

Description

闪存装置、闪存装置的开卡方法及计算机可读取存储介质
技术领域
本发明涉及存储装置,尤指一种闪存装置、闪存装置的开卡方法及计算机可读取存储介质。
背景技术
闪存通常分为NOR闪存与NAND闪存。NOR闪存为随机存取装置,中央处理器(Host)可于地址引脚上提供任何存取NOR闪存的地址,并及时地从NOR闪存的数据引脚上获取存储于该地址上的数据。相反地,NAND闪存并非随机存取,而是串行存取。NAND闪存无法像NOR闪存一样,可以存取任何随机地址,中央处理器反而需要写入串行的字节(Bytes)的值到NAND闪存中,用于定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存中写入操作的最小数据块)或一个区块(闪存中抹除操作的最小数据块)。
闪存装置通常需要完成开卡程序后才能出厂销售,而开卡程序耗费的时间在闪存装置的生产上是个重要的课题。因此,本发明提出一种闪存装置、闪存装置的开卡方法及计算机可读取存储介质,用于减少开卡程序所需的时间。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺陷,实为有待解决的问题。
本发明涉及一种计算机可读取存储介质,用于存储能够被闪存装置的处理单元加载并执行的程序代码,并且所述程序代码被所述处理单元执行时实现以下所述的步骤:在闪存装置进入测试模式时,判断闪存装置是否发生物理性重启;当闪存装置发生物理性重启时,执行第一阶段的操作,用于传送首个信息给开卡主机;以及当闪存装置发生代码重启时,执行第二阶段的操作,用于搜索闪存模块中让系统内程序代码参考的信息,从指定地址获取系统内程序代码并将系统内程序代码写入闪存模块。
本发明还涉及一种闪存装置的开卡方法,由闪存装置的闪存控制器执行。所述闪存装置的开卡方法包含:在闪存装置进入测试模式时,判断闪存装置是否发生物理性重启;当闪存装置发生物理性重启时,执行第一阶段的操作,用于传送首个信息给开卡主机;以及当闪存装置发生代码重启时,执行第二阶段的操作,用于搜索闪存模块中让系统内程序代码参考的信息,从指定地址获取系统内程序代码并将系统内程序代码写入闪存模块。
本发明还涉及一种闪存装置,包含:只读存储器和处理单元。处理单元耦接只读存储器,用于加载并执行程序代码时实现如上所述的步骤。
上述实施例的优点之一,通过如上所述的操作区分及条件性执行一部分操作的判断,让处理单元能够在闪存装置发生物理性重启时快速传送首个信息给开卡主机,避免花费不必要的时间在空的闪存模块内搜索信息。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的开卡系统的架构示意图。
图2为依据本发明实施例的开卡主机和闪存装置的框图。
图3为依据本发明实施例的执行于生产在线的开卡方法的流程图。
图4和图5为依据本发明实施例的闪存装置的示意图。
图6为依据本发明实施例由闪存装置的处理单元执行工厂模式代码时实施的开卡方法的流程图。
其中,附图中符号的简单说明如下:
10:开卡系统;110:开卡主机;112:装置接口;114-1~114-4、132-1~132-16:端口;130:集线器;150、150-1~150-16:闪存装置;212、237:处理单元;232:主机接口;234:闪存接口;236:易失性随机存取存储器;238:只读存储器;239:输入输出接口;250:闪存模块;S310~S390:方法步骤;420:连接器;440:母板;450、460:金属凸点;490:金属帽;510:切换机构;S610~S640:方法步骤。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
参考图1。开卡系统10包含开卡主机(Card-initialization Host)110、集线器(Hub)130、闪存装置150及显示器170。闪存装置150可为随身盘、闪存存储卡、固态硬盘(Solid State Disk,SSD)等,包含闪存控制器及多个闪存模块。针对每一个闪存装置150,在闪存控制器及闪存模块设置在母板(Motherboard)后,还需要完成开卡流程(Card-initialization Process)才能够出厂并提供给客户。显示器170可以是薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display,TFT-LCD Display)、有机发光二极管显示器(Organic Light-Emitting Diode,OLED Display)等,在开卡流程中显示让工程师或操作员可以观看的画面,包含提示的文字、数字、符号、图案等,或以上任意组合。
开卡主机110可用个人计算机、笔记本计算机(Laptop PC)、工业用计算机(Industrial Computer)、工作站(Workstation)等实施。开卡主机110包含装置接口112,具有多个端口(ports)114-1至114-4,每个端口可连接一个集线器,例如端口114-1连接集线器130。虽然图1描述的装置接口112只配备4个端口,但所属技术领域人员可在装置接口112上配备更多或更少的端口,让开卡主机110能够连接上更多或更少的集线器,本发明不应因此受限。集线器130包含多个端口132-1至132-16,每个端口可插上一个闪存装置150,例如闪存装置150-1至150-16中的任何一个。需注意的是,为了让说明书简明,以下段落使用闪存装置150来描述时,代表其说明的结构、功能、方法步骤或其他技术内容能够应用在闪存装置150-1至150-16中的任何一个。虽然图1描述的集线器130具有16个端口,但所属技术领域人员可将具有更多或更少端口的集线器连接上开卡主机110,使得开卡主机110能够连接上更多或更少的闪存装置,本发明不应因此受限。开卡主机110可经由集线器130,采用通用串行总线(Universal Serial Bus,USB)、先进技术附件(Advanced TechnologyAttachment,ATA)、串行先进技术附件(Serial Advanced Technology Attachment,SATA)、快速外设组件互联(Peripheral Component Interconnect Express,PCI-E)等通信协议与连接上的闪存装置150通信,用于完成开卡流程。
参考图2。由于集线器130连接装置接口112上的一个端口并且闪存装置150插上集线器130时,等同于闪存装置150物理性连接上开卡主机110,所以图2中省略了图1所示的集线器130。开卡主机110包含处理单元212,可使用多种方式实施,如使用通用硬件(例如,单处理器、具有并行处理能力的多处理器、图形处理器或其他具有运算能力的处理器),并且在执行软件以及/或固件指令时,例如,量产工具(Mass Production,MP Tool)、操作系统(Operating System,OS)、驱动程序(Driver)等,提供指定的功能。处理单元212可发出指令给接口控制器214,用于通过装置接口112传送供货商命令(Vendor Command)给闪存装置150,完成开卡流程中所需要的操作。供货商命令不是标准的主机操作命令,例如,通用闪存存储(Universal Flash Storage,UFS)、快速非易失性存储器(Non-Volatile MemoryExpress,NVMe)、开放通道固态硬盘(Open-channel Solid State Disk,SSD)等定义的管理命令、输入输出命令等,而是由闪存装置150或者闪存控制器230的制造商提供给客户的自定义命令(Proprietary Commands)。
闪存装置150包含闪存控制器230及闪存模块250。闪存模块250提供大量的存储空间,通常是数百个千兆字节(Gigabytes),甚至是数个兆兆字节(Terabytes),用于存储大量的用户数据,例如高分辨率图片、影片等。闪存模块中包含控制电路以及存储器数组,存储器数组中的存储单元可包含单层式单元(Single Level Cells,SLCs)、多层式单元(Multiple Level Cells,MLCs)、三层式单元(Triple Level Cells,TLCs)、四层式单元(Quad-Level Cells,QLCs)或上述的任意组合。
闪存控制器230包含主机接口232、闪存接口234、易失性随机存取存储器(Volatile Random Access Memory,VRAM)236、处理单元237、只读存储器(Read-OnlyMemory,ROM)238和输入输出接口239。主机接口232耦接开卡主机110的装置接口112。闪存接口(Flash Interface)234耦接闪存模块250,可以双倍数据率(Double Data Rate,DDR)通信协议彼此通信,例如,开放NAND闪存接口(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDR Toggle)或其他接口通信协议。处理单元237可以如上所述的通用硬件实施。ROM 238存储程序代码,用于被处理单元237加载及执行时完成开卡流程中需要的功能。VRAM 236存储执行开卡流程中需要的暂存数据,例如,变量、标志、数据表等。
参考图3。首先,操作员或工程师提供处在测试模式(Test Mode)的待开卡的闪存装置(例如,闪存装置150-1至150-16)并插入集线器130中的端口(例如端口132-1至132-16)(步骤S310),然后让集线器130上电(步骤S320)。
在一些实施例中,参考图4,闪存装置150包含连接器420和母板440。母板440上设置集成电路(Integrated Circuit,IC),包含闪存控制器230及闪存模块250。图4的(a)部分显示闪存装置150外观的正面,在母板440上远离连接器420的另一端的一个引脚(Pin)上设置金属凸点(Metal Bump)450,例如通用型输入输出(General-Purpose Input/Output,GPIO)引脚。上述引脚耦接输入输出接口239。图4的(b)部分显示闪存装置150外观的背面,在母板440上远离连接器420的另一端上设置连接到地的金属凸点460。在正常情况下,金属凸点450及460是隔开的。为了让闪存装置150进入测试模式,如图4中的(c)部分所示,操作员或工程师可放置金属帽(Metal Cap)490在金属凸点450及460之上,用于让此引脚接地,使得处理单元237可通过输入输出接口239侦测到闪存装置150已经进入测试模式。
在另一些实施例中,参考图5,母板440上可设置切换机构(Switch Mechanism)510,耦接输入输出接口239,让操作员或工程师通过拨动切换机构510中的拨杆(Pole)来让处理单元237知道目前闪存装置150所处的状态。当切换机构510中的拨杆的位置处于“开启(On)”状态时,处理单元237判定闪存装置150已经进入测试模式。当切换机构510中的拨杆的位置处于“关闭(Off)”状态时,处理单元237判定闪存装置150已经离开测试模式。本领域所属技术人员知道,当集线器130上电时,插上的闪存装置150也会跟着上电,使得闪存装置150电性连接到开卡主机110。一旦闪存装置150上电,处理单元237从头开始加载并执行ROM238中的指令(又称为工厂模式代码,是每次物理性或代码重启时首先要执行的程序代码),其中包含通过接口控制器214回复开卡主机110的指令,用于通知此闪存装置150存在的信息(也称为首个信息,Very First Message)。另一方面,开卡主机110的处理单元212执行量产工具的一系列软件指令,用于响应当侦测到闪存装置150已经存在时,驱动闪存装置150完成开卡流程(步骤S340至S380)。
详细来说,量产工具从闪存装置150接收到首个信息后,其中可包含闪存装置150的标识码(步骤S340),发出初始化装置(DEVICE INITIALIZATION)的供货商命令给闪存装置150,用于指示闪存装置150开始初始化闪存装置150(步骤S350)。量产工具收到闪存装置150的首个信息时,可代表认盘成功。除了如上所述的工厂模式代码,处理单元237也从ROM238加载并执行用于处理从开卡主机110发出的供货商命令的程序代码(又可称为供货商命令处理代码)。为了响应初始化装置命令,处理单元237执行供货商命令处理代码时可通过闪存接口234对闪存模块250进行一连串的测试,用于找出坏块(Bad Blocks)、坏行(BadColumns)等,并据以产生坏块表、坏行表等。供货商命令处理代码可依据侦测到的坏行数量等参数来计算每个物理页面能够用于存储错误检查校验码(Error Check andCorrection,ECC Code)的长度。供货商命令处理代码可依据坏行表及ECC长度等信息计算每一个物理页面中每一个区段(Sector)的起始位置,并据以产生区段起始表。供货商命令处理代码可依据坏块数目、坏行数目、ECC长度等信息计算闪存模块250能够存储的逻辑区块地址数目(Logical Address Block,LBA quantity)。供货商命令处理代码可将以上所述的数据表、变量等信息存储在VRAM 236中,并且通过驱动主机接口232回复初始化完成的信息给开卡主机110,用于通知量产工具。量产工具可将初始化完成的信息显示于显示器170,用于提示操作员或工程师。
量产工具从闪存装置150接收到初始化完成的信息后,其中可包含闪存模块250能够存储的LBA数目等信息,发出下载信息(DOWNLOAD INFO)的供货商命令给闪存装置150,用于指示闪存装置150将初始化结果存储于非易失性存储空间,例如闪存模块250(步骤S360)。为了响应下载信息命令,供货商命令处理代码被处理单元237执行时可将VRAM 236中存储的数据表、变量等信息,通过闪存接口234写入闪存模块250的系统块(SystemBlock)。所属技术领域人员理解在步骤S350中产生的数据表、变量等信息是系统内程序代码(In-System Programming,ISP Code,又可称为固件)将来执行时需要的参考信息。系统内程序代码包含用于执行从主机发出的主机命令的操作,例如主机读取、写入、抹除命令等。主机命令为由标准制定组织所规范的命令,例如UFS、NVMe、Open-channel SSD命令等。供货商命令处理代码可通过驱动主机接口232回复下载信息完成的信息给开卡主机110,用于通知量产工具。量产工具可将下载信息完成的信息显示于显示器170,用于提示操作员或工程师。
量产工具从闪存装置150接收到下载信息完成的信息后,发出装置重启(DEVICERESET)的供货商命令给闪存装置150(步骤S370)。一旦接收到装置重启命令(也就是一种代码重启的方式),处理单元237从头开始加载并执行工厂模式代码,用于搜索闪存模块250中能够让系统内程序代码参考的信息,从指定地址取得系统内程序代码,通过驱动闪存接口234将系统内程序代码写入闪存模块250的指定物理块,并且通过驱动主机接口232回复开卡完成的信息给开卡主机110,用于通知量产工具。
量产工具从闪存装置150接收到开卡完成的信息后(步骤S380),可将开卡完成的信息显示于显示器170,用于提示操作员或工程师。接着,操作员或工程师可让开卡完成的闪存装置150离开测试模式并移出集线器130(步骤S390)。在一些实施例,参考图4的(c)部分,操作员或工程师可移开金属帽490,让金属凸点450及460彼此不电性连接,让闪存装置150离开测试模式。在另一些实施例中,参考图5,操作员或工程师可将切换机构510中的拨杆拨动到“关闭(Off)”状态,让闪存装置150离开测试模式。
在一些实施方式中,闪存装置150上电后(步骤S320),处理单元237在执行工厂模式代码时会先通过闪存接口234在闪存模块的指定位置搜索用于让系统内程序代码参考的信息,并且在一段默认时间内搜索不到时才传送首个信息给开卡主机110。然而,所属技术领域人员知道此时闪存装置150中的闪存模块250是空的,没有存储任何有用的信息,造成处理单元237花费一段不必要的时间来找寻不存在的信息。更糟的是,虽然装置接口112能够在闪存装置150物理性连接上开卡主机110时知道闪存装置150的存在,但是量产工具在之后的一段默认时间内没有从闪存装置150接收到首个信息时会发出装置重启命令给闪存装置150,造成搜索中断并重新再执行一次工厂模式代码。因为这些不必要的装置重启命令,让量产工具从闪存装置150-1至150-16接收到首个信息的时间更加延长,例如,历时2至3分钟。
为改进如上所述实施方式的缺点,参考图6所示的由闪存装置150的处理单元237执行工厂模式代码时实施的开卡方法流程。本发明实施例将整个开卡方法分为二个阶段:第一阶段用于快速传送首个信息给开卡主机110;第二阶段用于搜索闪存模块250中让系统内程序代码参考的信息并写入系统内程序代码至闪存模块250。工厂模式代码可依据代表代码重启的标志来辨认闪存装置150现在处在哪个阶段。
详细来说,工厂模式代码被处理单元237执行时首先判断闪存装置150是否进入测试模式(步骤S610)。参考图4的硬件设置,工厂模式代码可通过输入输出接口239侦测指定引脚是否接地来完成判断。参考图5的硬件设置,工厂模式代码可通过输入输出接口239侦测切换机构510中的拨杆目前所处的位置来完成判断。
当判定闪存装置150进入测试模式(步骤S610中“是”的路径),工厂模式代码判断闪存装置150是否发生物理性重启(步骤S620)。工厂模式代码可判断VRAM 236中代表代码重启的标志是否为“1”。所属技术领域技术人员理解VRAM 236中存储的数据在断电时会消失,因此,闪存装置150在物理性重启时VRAM 236中的数据都会消失,造成工厂模式代码进行判断时会得到不成立(“否”,即,闪存装置没有发生物理性重启)的结果。反过来说,闪存装置150在代码重启时不会断电,VRAM 236中存储的数据不会消失,造成工厂模式代码进行判断时会得到成立(“是”,即,闪存装置发生物理性重启)的结果。
当判定闪存装置150发生物理性重启时(步骤S620中“是”的路径),工厂模式代码将VRAM 236中代表代码重启(软件重启)的标志设为“1”并通过驱动主机接口232传送首个信息给开卡主机110(步骤S640)。通过如上所述的判断,让工厂模式代码能够在闪存装置150发生物理性重启时进入第一阶段来快速传送首个信息给开卡主机110,避免如上所述实施方式在空的闪存模块250内搜索信息而造成的技术问题。换句话说,在闪存装置150发生物理性重启时,工厂模式代码不执行第二阶段的操作,避免延迟传送首个信息给开卡主机。
当判定闪存装置150没有发生物理性重启(也就是发生代码重启)时(步骤S620中“否”的路径),工厂模式代码通过驱动闪存接口234搜索闪存模块250中让系统内程序代码参考的信息,从指定地址获取系统内程序代码,驱动闪存接口234将系统内程序代码写入闪存模块250中的指定地址,并通过驱动主机接口232回复开卡完成的信息给开卡主机110(步骤S630)。换句话说,步骤S630包含第二阶段需要执行的操作。
本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如特定硬件的驱动程序、固件程序或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成程序代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
虽然图1至图2中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图3、图6流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。

Claims (13)

1.一种计算机可读取存储介质,用于存储能够被闪存装置的处理单元执行的程序代码,其特征在于,所述程序代码被所述处理单元执行时实现以下步骤:
在所述闪存装置进入测试模式时,判断所述闪存装置是否发生物理性重启;
当所述闪存装置发生物理性重启时,执行第一阶段的操作,用于传送首个信息给开卡主机;以及
当所述闪存装置发生代码重启时,执行第二阶段的操作,用于搜索闪存模块中让系统内程序代码参考的信息,从指定地址获取所述系统内程序代码并将所述系统内程序代码写入闪存模块。
2.如权利要求1所述的计算机可读取存储介质,其特征在于,所述程序代码被所述处理单元执行时还实现以下步骤:
当所述闪存装置发生物理性重启时,不执行所述第二阶段的操作,避免延迟回复所述首个信息给所述开卡主机。
3.如权利要求1或2所述的计算机可读取存储介质,其特征在于,所述系统内程序代码包含用于执行从主机发出的主机命令的操作。
4.如权利要求1所述的计算机可读取存储介质,其特征在于,通过侦测易失性随机存取存储器中代表代码重启的标志来判断所述闪存装置是否发生物理性重启。
5.如权利要求1所述的计算机可读取存储介质,其特征在于,所述程序代码被所述处理单元执行时还实现以下步骤:
通过输入输出接口侦测到引脚接地时判断所述闪存装置进入所述测试模式。
6.如权利要求1所述的计算机可读取存储介质,其特征在于,所述程序代码被所述处理单元执行时还实现以下步骤:
通过输入输出接口侦测到切换机构中的拨杆处于特定位置时判断所述闪存装置进入所述测试模式。
7.如权利要求1所述的计算机可读取存储介质,其特征在于,所述程序代码被所述处理单元执行时还实现以下步骤:
在所述第一阶段及所述第二阶段之间,对闪存模块进行一连串测试,依据测试结果产生供所述系统内程序代码在将来执行时需要的参考信息,并且将所述参考信息写入所述闪存模块。
8.一种闪存装置的开卡方法,由闪存装置的闪存控制器执行,其特征在于,所述闪存装置的开卡方法包括:
在所述闪存装置进入测试模式时,判断所述闪存装置是否发生物理性重启;
当所述闪存装置发生物理性重启时,执行第一阶段的操作,用于传送首个信息给开卡主机;以及
当所述闪存装置发生代码重启时,执行第二阶段的操作,用于搜索闪存模块中让系统内程序代码参考的信息,从指定地址获取所述系统内程序代码并将所述系统内程序代码写入闪存模块。
9.如权利要求8所述的闪存装置的开卡方法,其特征在于,还包括:
当所述闪存装置发生物理性重启时,不执行所述第二阶段的操作,避免延迟回复所述首个信息给所述开卡主机。
10.如权利要求8或9所述的闪存装置的开卡方法,其特征在于,所述系统内程序代码包含用于执行从主机发出的主机命令的操作。
11.一种闪存装置,其特征在于,包括:
只读存储器,存储程序代码;以及
处理单元,耦接所述只读存储器,用于加载并执行所述程序代码,
其中,所述程序代码被所述处理单元执行时实现以下步骤:
在所述闪存装置进入测试模式时,判断所述闪存装置是否发生物理性重启;
当所述闪存装置发生物理性重启时,执行第一阶段的操作,用于传送首个信息给开卡主机;以及
当所述闪存装置发生代码重启时,执行第二阶段的操作,用于搜索闪存模块中让系统内程序代码参考的信息,从指定地址获取所述系统内程序代码并将所述系统内程序代码写入闪存模块。
12.如权利要求11所述的闪存装置,其特征在于,所述程序代码被所述处理单元执行时还实现以下步骤:
当所述闪存装置发生物理性重启时,不执行所述第二阶段的操作,避免延迟回复所述首个信息给所述开卡主机。
13.如权利要求11或12所述的闪存装置,其特征在于,所述系统内程序代码包含用于执行从主机发出的主机命令的操作。
CN202010267818.5A 2020-04-08 2020-04-08 闪存装置、闪存装置的开卡方法及计算机可读取存储介质 Pending CN113495848A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010267818.5A CN113495848A (zh) 2020-04-08 2020-04-08 闪存装置、闪存装置的开卡方法及计算机可读取存储介质
US17/085,640 US11062746B1 (en) 2020-04-08 2020-10-30 Computer program product and method and apparatus for activating flash devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010267818.5A CN113495848A (zh) 2020-04-08 2020-04-08 闪存装置、闪存装置的开卡方法及计算机可读取存储介质

Publications (1)

Publication Number Publication Date
CN113495848A true CN113495848A (zh) 2021-10-12

Family

ID=76764608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010267818.5A Pending CN113495848A (zh) 2020-04-08 2020-04-08 闪存装置、闪存装置的开卡方法及计算机可读取存储介质

Country Status (2)

Country Link
US (1) US11062746B1 (zh)
CN (1) CN113495848A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114496057A (zh) * 2022-01-13 2022-05-13 绵存(浙江)科技有限公司 固态硬盘的生产方法、生产设备及计算机可读存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556257B2 (en) * 2020-08-14 2023-01-17 Micron Technology, Inc. Selectable wear life indicator based on data retention
CN115373927B (zh) * 2022-10-25 2023-04-21 深圳市亿联无限科技股份有限公司 产品测试方法、装置、电子设备和计算机可读介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030745A1 (en) * 1997-10-14 2004-02-12 Boucher Laurence B. Method and apparatus for distributing network traffic processing on a multiprocessor computer
US20050160219A1 (en) * 2004-01-20 2005-07-21 Samsung Electronics Co., Ltd. Apparatus and method for booting NAND flash memory of a mobile terminal
CN1975670A (zh) * 2005-11-15 2007-06-06 三星电子株式会社 使用引导代码引导微处理器系统的方法和装置
CN101174221A (zh) * 2006-11-03 2008-05-07 兆宏电子股份有限公司 以闪速存储器存储开机码的电子系统及开机方法
TW200915090A (en) * 2007-09-28 2009-04-01 Super Talent Electronics Inc Flash memory controller controlling various flash memory cells
CN101634937A (zh) * 2008-07-21 2010-01-27 群联电子股份有限公司 数据存取方法、使用此方法的存储系统及其控制器
CN103578566A (zh) * 2012-07-23 2014-02-12 群联电子股份有限公司 存储器存储装置及其修复方法
CN109427410A (zh) * 2017-09-01 2019-03-05 慧荣科技股份有限公司 快闪存储器装置的重新启动方法以及使用该方法的装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8346498B2 (en) * 2004-11-05 2013-01-01 Leannoux Properties Ag L.L.C. Programmable device testing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030745A1 (en) * 1997-10-14 2004-02-12 Boucher Laurence B. Method and apparatus for distributing network traffic processing on a multiprocessor computer
US20050160219A1 (en) * 2004-01-20 2005-07-21 Samsung Electronics Co., Ltd. Apparatus and method for booting NAND flash memory of a mobile terminal
CN1975670A (zh) * 2005-11-15 2007-06-06 三星电子株式会社 使用引导代码引导微处理器系统的方法和装置
CN101174221A (zh) * 2006-11-03 2008-05-07 兆宏电子股份有限公司 以闪速存储器存储开机码的电子系统及开机方法
TW200915090A (en) * 2007-09-28 2009-04-01 Super Talent Electronics Inc Flash memory controller controlling various flash memory cells
CN101634937A (zh) * 2008-07-21 2010-01-27 群联电子股份有限公司 数据存取方法、使用此方法的存储系统及其控制器
CN103578566A (zh) * 2012-07-23 2014-02-12 群联电子股份有限公司 存储器存储装置及其修复方法
CN109427410A (zh) * 2017-09-01 2019-03-05 慧荣科技股份有限公司 快闪存储器装置的重新启动方法以及使用该方法的装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114496057A (zh) * 2022-01-13 2022-05-13 绵存(浙江)科技有限公司 固态硬盘的生产方法、生产设备及计算机可读存储介质

Also Published As

Publication number Publication date
US11062746B1 (en) 2021-07-13

Similar Documents

Publication Publication Date Title
US8561194B2 (en) Memory storage device and memory controller and virus scanning method thereof
CN113495848A (zh) 闪存装置、闪存装置的开卡方法及计算机可读取存储介质
US9378846B2 (en) Non-mounted storage test device based on FPGA
KR20210023203A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20170357500A1 (en) System and Method for Runtime Update of ESRT Table for Hot-Pluggable Disks
KR102225313B1 (ko) 데이터 저장 장치의 동작 방법
US11243759B2 (en) Data storage device, operation method thereof, and firmware providing server therefor
US9128624B2 (en) Flash memory storage system for simulating rewritable disc device, flash memory controller, computer system, and method thereof
US11481153B2 (en) Data storage device and operating method thereof
TW202028981A (zh) 資料儲存裝置及避免韌體失效之方法
US20230004320A1 (en) Method of managing debugging log in storage device
KR102634809B1 (ko) 전자 장치 및 그것의 동작 방법
CN110083305B (zh) 存储器系统及其操作方法
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
US20130019142A1 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US9361123B2 (en) Boot from logical volume spanning plurality of PCI devices
US20140365713A1 (en) Electronic system and operating method thereof
CN108334362A (zh) 一种fpga芯片的升级方法、装置及存储设备
US20240176887A1 (en) Method for Running Startup Program of Electronic Device, and Electronic Device
TWI747231B (zh) 閃存裝置的開卡電腦程式產品及方法以及裝置
US20190073134A1 (en) Methods for resetting a flash memory device and apparatuses using the same
CN112394879B (zh) 操作存储设备的方法、存储设备及操作存储系统的方法
US10908843B2 (en) Memory system for managing free pages based on real time clock and operating method thereof
CN112540881A (zh) 存储装置测试管理方法以及存储装置测试管理系统
CN113918081A (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