CN101438253A - 写入和配置闪速存储器 - Google Patents

写入和配置闪速存储器 Download PDF

Info

Publication number
CN101438253A
CN101438253A CNA200780012685XA CN200780012685A CN101438253A CN 101438253 A CN101438253 A CN 101438253A CN A200780012685X A CNA200780012685X A CN A200780012685XA CN 200780012685 A CN200780012685 A CN 200780012685A CN 101438253 A CN101438253 A CN 101438253A
Authority
CN
China
Prior art keywords
page
flash memory
flash
data
order
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
CNA200780012685XA
Other languages
English (en)
Inventor
F·M·彼德森
M·劳伦特
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.)
Atmel Corp
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Publication of CN101438253A publication Critical patent/CN101438253A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • 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
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • G11C2029/2602Concurrent test
    • 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/36Data generation devices, e.g. data inverters
    • G11C2029/3602Pattern generator

Abstract

写入闪速存储器(101)的系统和方法可以包括接收基本上独立于闪速存储器的内部结构的双操作数写命令(128)。将双操作数写命令转换为结构相关的闪存命令(113)。执行结构相关的闪存命令以填充与闪速存储器相关联的页缓冲区(110);并且接着将页缓冲区的内容传输至闪速存储器的页。此外,用于配置或测试闪速存储器的系统(416)可以循环存储器阵列,同时利用串行接口(415)基本并行地执行其它功能测试。

Description

写入和配置闪速存储器
背景技术
非易失性存储器设备通常包括MOS晶体管或“胞元”阵列,所述MOS晶体管或“胞元”具有被设计成即使在设备缺少电力时也能通过俘获或存储电荷来保持数字值的特定栅极结构。电可擦除可编程只读(EEPROM)存储器设备和闪速EEPROM设备(“闪存”)是非易失性存储器设备的两个示例。本申请所使用的“EEPROM”涉及通常在字节级别来可编程和可擦除的设备,而“闪存”涉及通常是按照大于一个字节的扇区来可编程和可擦除的设备。
闪存设备中的存储器胞元通常按照被称为“页”的块来布置。每个页可以存储许多字节的数据。例如,256千字节(K)闪存设备可以布置为1024个页,其中每个页存储256个字节的数据。作为另一个示例,256K闪存设备可以布置为512个页,其中每个页存储512个字节的数据。页中的字节可以是独立可寻址的,或者他们可以组织为较大的字(例如,2个字节的字、4个字节的字等等)。闪存设备中的存储器胞元通常是在页的级别来编程或者擦除的。也就是说,整页中的数据可以被同时擦除,而不是以逐个字节的方式。同样,闪存的整页可以通过易失性页缓冲区的使用而被同时编程。
在一些传统的闪存结构中,易失性页缓冲区通常具有与非易失性闪速存储器的单个页相同的容量。例如,布置为每页256个字节的闪存设备通常将会具有256个字节的页缓冲区。为了将数据写至闪存设备,可以首先将数据写至页缓冲区。当页缓冲区被填充并且闪速存储器的一个页被指定时,整个页缓冲区可以被写入闪速存储器的指定页。页缓冲区接着可以被擦除、重新填充并且写入闪速存储器的另一个页。因为闪速存储器通常是每次写入一个页,所以应当以与闪速存储器的内部页结构(页的数目、每页的字节和字的大小)相兼容的方式写入数据。
闪速存储器可以包括在独立的存储器芯片中,或者其可以嵌入在不仅仅是提供存储数据的功能的芯片中。例如,闪速存储器可以包括在具有处理单元、寄存器、嵌入式存储器、外围设备和各种接口端口的微控制器中。独立的闪速存储器芯片或者具有嵌入式闪速存储器的设备可以是较大电路的一部分,该较大电路包括,例如,印刷电路板(PCB)和各种其它电气元件。闪速存储器裸片(die)还可以和组成“片上系统”(SOC)的其它裸片一起被包括在一个封装中。
在闪速存储器的制造期间,电荷可能在单个存储器胞元中积聚。为了针对使用而初始配置闪速存储器设备,该闪速存储器设备可以经受配置过程以耗散所积聚的电荷并且“重置”闪速存储器设备的每个胞元为初始、可预测的状态,其中可以写入和读回逻辑值“0”和“1”,而值之间具有足够的内部电压裕度。一种初始配置闪速存储器设备的方法是交替地擦除和写入图案至闪速存储器设备的每个页。这个序列可以重复多次。
在PCB级别或者裸片级别,各种元件,包括闪速存储器,可以在制造过程之后被测试或者配置。测试或者配置PCB或者裸片可以包括设备上各种引脚或者裸片上各种接线(“网络”)的直接电刺激以验证连通性或者功能性。PCB或者裸片的测试或者配置还可以包括专用电路的使用。例如,裸片的一部分的元件可以通过使用边界扫描测试协议(诸如由联合测试行动组(JTAG)开发的并且在IEEE标准1149.1和1149.1A中描述的协议)来测试或者配置。
为了促进使用边界扫描资源的边界扫描测试和配置,裸片的一部分或者PCB上的各种元件可以从测试访问端口(TAP)来访问并且串联至测试访问端口,其可以传递由边界扫描协议使用的某些串行信号。所述信号可以包括,例如时钟信号、模式信号、串行输入和串行输出(例如,“TCLK”、“TMS”、“TDI”和“TDO”)。通过经由模式信号串行移入测试命令或者配置数据,以及经由串行输入来串行移入测试图案或者编程数据,适当的边界扫描协议可以促进元件之间连通性、裸片上网络的完整性或者某些功能的测试;或者边界扫描协议可以配置存储器或者一些其它可配置设备。
发明内容
在一些实现中,闪速存储器设备包括能够促进数据到闪速存储器设备的有效写入或者闪速存储器设备的有效配置(例如,制造后的初始配置)的闪存控制器。例如,在一些实现中,闪存控制器接收基本上独立于闪速存储器内部结构的写命令并且将结构无关的命令转换为结构相关的命令。在一些实现中,闪存控制器能够通过循环(cycling)闪速存储器内的存储器阵列而在制造之后初始配置闪速存储器,同时基本并行地执行其它功能测试。
写入闪速存储器的页可以包括接收基本上独立于闪速存储器内部结构的写命令。在某些实现中,闪存控制器从远程控制器接收多操作数(例如,双操作数)闪存命令。在各种实现中,写过程可以进一步包括将每个多操作数写命令转换为结构相关的闪存命令;执行结构相关的闪存命令以填充与闪速存储器相关联的页缓冲区;以及接着将页缓冲区的内容传输至闪速存储器的页。
在一种实现中,写入至被布置为包含第一数目的逻辑数据单元的闪速存储器的页的方法可以包括(a)在本地控制器经由互连装置(例如,总线)从远程控制器接收包括一个逻辑数据单元和地址的写命令;(b)通过本地控制器将写命令转换为多个闪速存储器命令;以及(c)执行闪速存储器命令以将逻辑数据单元传输至闪速存储器内的页缓冲区。行为(a)-(c)可以重复与第一数目相等的次数以填充页缓冲区;并且将页缓冲区的内容传输至闪速存储器的页。
在一些实现中,总线是串行总线。串行总线可以是符合IEEE(电气电子工程师学会)标准1149.1或者1149.1a的测试接口。在一些实现中,总线是编程接口,并且远程控制器是专用设备编程器。
在一些实现中,闪速存储器和本地控制器嵌入在微控制器设备中。远程控制器可以位于微控制器设备外部。逻辑数据单元可以包括一个字节的数据或者一个字的数据;一个字的数据可以包括多个字节的数据。
转换写命令可以包括生成与写命令的地址相对应的页缓冲区地址。该方法可以进一步包括计算与闪速存储器的页相对应的页地址。计算页地址可以包括基于在行为(a)接收的至少一个地址计算页地址。
在另一种实现中,写入嵌入式闪速存储器的页的方法可以包括(a)在嵌入式闪存编程单元经由总线并且从远离嵌入式闪存编程单元的控制器接收多操作数(例如,双操作数)写命令。该多操作数写命令可以具有指定地址的第一操作数和指定数据单元的第二操作数。该方法可以进一步包括(b)将多操作数写命令转换为多个闪存命令;(c)根据与页缓冲区中数据单元的数目相对应的多操作数写命令的数目来重复(a)-(b);(d)执行闪存命令以填充页缓冲区;以及(e)在填充了页缓冲区后,将页缓冲区的内容写至嵌入式闪速存储器的页。
该方法可以进一步包括当将页缓冲区的内容写至闪速存储器的页时暂停填充页缓冲区的多个命令的执行。暂停多个命令的执行可以包括暂停多操作数写命令到多个命令的转换。暂停多个命令的执行可以包括暂停多操作数写命令的接收。该方法可以进一步包括生成暂停信号以阻止控制器经由总线将多操作数写命令发送至嵌入式闪存编程单元。
在另一种实现中,存储数据的系统可以包括布置为多个页并且具有页缓冲区的闪速存储器,多个页中的每个页存储第一数目的逻辑数据单元,页缓冲区也存储第一数目的逻辑数据单元。该系统还可以包括闪存编程单元。闪存编程单元可以包括经由总线连接至远离闪存编程单元的控制器并且从控制器接收多操作数(例如,双操作数)写命令的接口。每个多操作数写命令能够具有指定地址的第一操作数和指定逻辑数据单元的至少一部分的第二操作数。闪存编程单元进一步包括将每个多操作数写命令转换为多个闪存命令的转换单元。多个闪存命令可以致使所述至少一部分被写入页缓冲区。闪存编程单元可以进一步包括控制器,所述控制器在页缓冲区已经被写入第一数目的逻辑数据单元时致使页缓冲区的内容被写入多个页中的一个页。
该系统可以进一步包括微控制器,并且微控制器可以包括闪速存储器和闪存编程单元。控制器可以位于微控制器的外部。接口可以在页缓冲区被写入多个页中的所述页时暂停多操作数写命令的接收。
用于配置或者测试存储器的系统可以循环存储器阵列而同时基本并行地执行其它功能测试。在特定的实现中,该系统可以通过使用串行接口配置或者循环闪速存储器并且通过使用相同的串行接口与循环闪速存储器基本并行地测试其它功能单元。在一些实现中,串行接口可以由并行接口来替代。在一些实现中,循环闪速存储器包括擦除和写入特定图案至闪速存储器以耗散可能在制造过程期间已经积聚的电荷。
在一种实现中,提供一种测试集成电路的方法,所述集成电路具有串行接口、嵌入式存储器、嵌入式存储器控制器和至少一个功能单元。该方法包括从串行接口接收第一命令以循环嵌入式存储器。响应于接收第一命令,通过嵌入式存储器控制器来循环嵌入式存储器。在嵌入式存储器的循环期间,从串行接口接收第二命令以测试该至少一个功能单元。执行第二命令以与嵌入式存储器的循环基本并行地测试该至少一个功能单元。
在另一种实现中,提供一种测试和配置具有至少第一集成电路和第二集成电路的设备的方法,其中第一集成电路具有嵌入式闪速存储器和嵌入式闪速存储器控制器并且第一和第二集成电路通过串行接口耦接,所述串行接口连接至位于设备外部的设备测试器。该方法包括从设备测试器并且经由串行接口接收命令以配置闪速存储器。该方法进一步包括通过嵌入式闪速存储器控制器配置闪速存储器;从设备测试器并且经由串行接口接收测试命令和测试图案;以及与配置闪速存储器基本并行地执行测试命令并且传播测试图案。
在一些实现中,循环或者配置嵌入式存储器包括执行一个或多个序列,所述一个或多个序列启动嵌入式存储器的擦除并且启动具有特定图案的数据到嵌入式存储器的写入。特定图案可以是全部为0的图案、棋盘格图案或者反向棋盘格图案。执行一个或多个序列可以包括(a)启动嵌入式存储器的擦除;(b)启动具有第一图案的数据到嵌入式存储器的写入;(c)启动嵌入式存储器的擦除;(d)启动具有第二图案的数据到嵌入式存储器的写入,其中第一图案与第二图案不同;以及(e)重复(a)-(d)可变的次数。
在各种实现中,可以测量与启动数据的写入相关联的电压电平。可变次数可以基于测量的电压电平来确定。在一些实现中,可以确定嵌入式存储器中在制造过程期间积聚的电荷是否基本被耗散。可变次数可以基于电荷是否基本被耗散的确定。
在一些实现中,串行接口是符合IEEE(电气电子工程师学会)标准1149.1或者1149.1a的边界扫描接口。嵌入式存储器可以是闪速存储器。
本申请所述的系统和技术的优点可以包括下面的任何一个或者全部。闪存编程设备可以以更少的命令编程闪速存储器。闪存编程设备可以以更简单的命令编程闪速存储器。闪存编程操作可以更快。闪速存储器可以由独立于闪速存储器的内部结构的命令来编程。与其它测试并行地循环嵌入式存储器,因而减少针对包括嵌入式存储器的设备的整体初始测试和配置周期。嵌入式存储器的循环可以由不特定于嵌入式存储器的内部结构的协议来启动。嵌入式存储器的初始循环和配置可以是基本上自动的。
全部和特定方面可以通过使用系统、方法或者计算机程序或者系统、方法和计算机程序的任何组合来实现。一个或多个实现的细节在附图和下文中被阐述。
附图说明
参考附图将详细描述这些和其它方面。
图1是其中多操作数(例如,双操作数)写命令可以转换为闪存命令的系统的框图。
图2是显示图1所示的闪速存储器和闪存控制器的其它细节的框图。
图3是说明将多操作数写命令转换为闪存命令并且执行闪存命令以写入闪速存储器的方法的流程图。
图4是说明其中可以与一个或多个功能单元的测试并行地循环嵌入式存储器的系统的框图。
图5是具有嵌入式存储器的示例性微控制器的框图。
图6是示例性闪存控制器和闪速存储器的框图。
图7是并行地配置闪速存储器和执行其它测试的方法的流程图。
各个附图中相同的附图标记表示相同元件。
具体实施方式
在一些实现中,闪速存储器设备包括能够促进数据到闪速存储器设备的有效写入或者闪速存储器设备的有效配置(例如,制造之后的初始化配置)的闪存控制器。例如,在一些实现中,闪存控制器接收基本上独立于闪速存储器的内部结构的写命令并且将结构无关的命令转换为结构相关的命令。在一些实现中,闪存控制器能够通过循环闪速存储器内的存储器阵列而在制造之后初始地配置闪速存储器,而同时基本并行地执行其它功能测试。细节由其中闪存控制器能够促进数据到闪速存储器设备的有效写入的示例性实现来提供。其它细节由其中闪存控制器能够促进闪速存储器的初始配置的示例性实现来提供。
数据到闪速存储器设备的有效写入
在一些实现中,能够促进数据到闪速存储器设备的有效写入(例如,通过闪存控制器)。写入闪速存储器的页可以包括在闪存控制器从远程控制器接收基本上独立于闪速存储器内部结构的多操作数(例如,双操作数)写命令;将每个多操作数写命令转换为结构相关的闪存命令;执行结构相关的闪存命令以填充与闪速存储器相关联的页缓冲区;以及接着将页缓冲区的内容传输至闪速存储器的页。以下将参考处理双操作数写命令的系统,尽管本领域技术人员将会认识到其它多操作数结构是可能的。
图1是说明其中闪速存储器的页可以通过将一系列双操作数写命令转换为闪存命令来写入的系统100的框图。系统100包括闪速存储器101,其被布置为多个页104。每个页存储多个字节的数据。字节可以是独立可寻址的,或者它们可以按照其它的逻辑数据单元来分组。例如,每个页可以布置为多个独立可寻址的字,并且每个字107可以包括多个字节(例如,2个字节、4个字节、8个字节等等)。如图所示,页104中的每一个都包括四个字。闪速存储器101还包括页缓冲区110,其在一种实现中与闪速存储器101的一个页104的大小相同;也就是说,页缓冲区110存储的字节数与一个页104存储的相同。
如参考图2所做的更加详细的描述一样,将数据写入闪速存储器的页通常包括首先将数据写入页缓冲区110。当页缓冲区110为满时,其内容可以被传输至闪速存储器101的特定页104a。为了将数据写入闪速存储器101的全部页104,通常每次针对存储器的一个页104来填充页缓冲区110,其内容被传输至闪速存储器的特定页,页缓冲区110被擦除或者清除,页缓冲区110被再次填充,其内容依次被传输至闪速存储器的另一页,依此类推。
填充页缓冲区110、将其内容传输至闪速存储器101的特定页104a、擦除页缓冲区110以及执行闪速存储器中的其它操作通常需要专用闪存命令113(以下简称“闪存命令113”)。这些专用闪存命令113通常基于闪速存储器101的内部结构。例如,为了让设备(诸如远程控制器116)将数据写入闪速存储器101,远程控制器116可以用专用闪存命令初始地清除页缓冲区110,接着用其它专用闪存命令将数据写入页缓冲区110中的每个字。为了适当地填充页缓冲区110,远程控制器116可以以字节为单位说明(account for)页缓冲区110的大小;以及耦接远程控制器116至闪速存储器101的总线119的宽度。例如,为了通过16位的总线填充32字节的页缓冲区,远程控制器116可以将16个两字节字传输至闪速存储器。在已经将16个两字节字传输至32字节的页缓冲区后,远程控制器可以致使页缓冲区的内容被写入闪速存储器的特定页。为了适当地将页缓冲区110的内容传输至闪速存储器101的页104a,远程控制器116还可以说明闪速存储器101中页104的数目和闪速存储器101的整体容量。例如,为了适当地依次填充闪速存储器101的多个页104,远程控制器116可以说明页104是如何寻址的,其反过来可能取决于闪速存储器101的整体容量和页104的大小。
在一些实现中,远程控制器116可以是专用闪存编程器,并且闪速存储器101可以是独立的存储器设备。在一些实现中,闪速存储器101可以是嵌入在如微控制器的另一个设备122中的闪速存储器。在一些实现中,远程控制器116可以是访问闪速存储器101的微处理器或者存储器控制器。总线119可以是能够耦接闪速存储器101至远程控制器116的并行总线。例如,总线119可以是耦接闪速存储器101至数据通路中的其它设备的并行系统总线。总线119还可以是串行总线。例如,总线119可以是专用串行通信或者编程接口,如内部集成电路(I2C)总线或者串行外设接口(SPI)总线。作为另一个示例,总线119可以是测试接口(诸如符合IEEE(电气电子工程师学会)标准1149.1或者1149.1a的边界扫描接口(有时称为“JTAG”接口,其由连接测试行动小组开发))的一部分。在一些实现中,总线119(例如,JTAG接口)可以用来对与其连接的设备(诸如闪速存储器设备101)进行编程。
如图1所示,系统100还包括置于闪速存储器101和远程控制器116之间的闪存控制器125。在一些实现中,闪存控制器125可以用来将简单的、闪存结构无关的写或者存储命令(以下简称“命令128”)转换为结构相关的闪存命令113。在系统100中包括这样的闪存控制器125可以使得远程控制器116能够以与闪存结构无关的方式与闪速存储器101交互,并且将数据写入闪速存储器所必需的命令128可以更少和更简单。例如,为了将例如单个字写入页缓冲区110,作为将“闪存命令1A”、“闪存命令1B”和“闪存命令1C”提供给闪速存储器101的替代,远程控制器116可以替代地提供单个“写命令1”。闪存控制器125可以将“写命令1”转换为,例如,“闪存命令1A”、“闪存命令1B”和“闪存命令1C”,并且将转换后的命令提供给闪速存储器101。
命令128可以完全独立于闪速存储器101的内部结构细节。例如,命令128可以是指定将要被顺序写入闪速存储器101的数据单元的一系列双操作数写命令。每个命令128可以指定将要被写入的数据和数据应当被写入的顺序地址。该地址可以与页地址、页缓冲区地址或者页缓冲区110自身无关。也就是说,闪存控制器125可以将,例如,“绝对”地址转换为适当的页缓冲区地址;而且,在适当数目的数据单元已经由闪存控制器125接收并且被写入页缓冲区110后,闪存控制器125可以发布命令以将页缓冲区110的内容传输至适当的页104a。此外,闪存控制器125可以在从远程控制器116继续接收将要写入闪速存储器101的其它数据单元之前插入闪存命令113以擦除页缓冲区110。
在一些实现中,闪存控制器125可以在将页缓冲区110的内容传输至闪速存储器101的页104a时自动阻止远程控制器116发送更多的数据单元。例如,闪存控制器125可以生成临时阻止远程控制器116发送将要被写入的更多数据单元的繁忙或者暂停信号(未示出)。在一些实现中,闪存控制器125可以从远程控制器116持续接收命令,并且闪存控制器125可以临时缓存它们(缓存未示出),或者临时保持不转换它们为闪存命令113,而同时将页缓冲区110的内容写入闪速存储器101中的页104a。现在,参考图2描述将双操作数命令125转换为闪存命令113的过程。
图2是说明图1所示的闪速存储器101和闪存控制器125的其它细节的框图。如上所述,闪速存储器101通常以“页”来布置。如图2所示,闪速存储器101具有四个页104,并且每个页具有四个字。出于说明的目的,图2被简化。真实的闪存设备通常可能具有更多页,并且每个页可能具有更多字。例如,典型的闪速存储器可以被布置为512个页,其中每个页存储512个字节的数据。
此外,闪速存储器101具有用来将数据写入闪存页104的页缓冲区110。页缓冲区110能够具有与闪速存储器101的单个页相同的容量,使得页缓冲区110可以填充闪速存储器的一个页。数据能够首先被写入页缓冲区,并且接着将页缓冲区的内容传输至特定页。
页缓冲区110可以通过寄存器被间接访问。例如,闪速存储器101可以包括地址寄存器201、数据寄存器204和命令寄存器207。将字写入页缓冲区110可以包括将值写入指定页缓冲区110内的字地址的地址寄存器201,将数据值写入数据寄存器204,以及写入命令,所述命令导致闪速存储器101内的状态机(未示出)将数据寄存器204的内容传输至与地址寄存器201的内容相对应的页缓冲区110中的字。这个过程可以针对页缓冲区110中的每个字被重复,并且当页缓冲区110为满时,其可以被传输至存储器的页。为了将页缓冲区110传输至存储器的页,可以将页的地址写入地址寄存器201,并且可以将命令写入命令寄存器207。命令可以指定页缓冲区110将要被传输至具有与地址寄存器201的内容相对应的地址的页。
闪速存储器101可以响应各种其它命令来执行其它操作。例如,将特定值写入地址寄存器201和命令寄存器207可以导致页缓冲区110被擦除。响应于其它命令,可以擦除单个页、可以擦除整个设备、可以读取值或者可以执行其它操作。
在一些实现中,字可以是单字节,并且在一些实现中,字可以是两个或更多字节。寄存器201、204和207的大小可以依此变化,并且可以进一步基于嵌入式闪速存储器通过其而被访问的数据总线210的宽度来变化。例如,在具有两字节字和一字节总线的实现中,每一个数据寄存器实际上可以是两个寄存器-“高位”寄存器和“低位”寄存器-并且将数据写入存储器的页可以包括上面没有描述的其它周期。
现在描述示例性闪存控制器125的各种特征。闪存控制器125可以用来将结构无关的命令(例如,双操作数写命令)转换为结构相关的闪存命令。为了转换结构无关的命令,闪存控制器可以包括接收这种命令的接口213。接口213可以包括耦接至总线119的寄存器。经由总线119,接口213可以从远程控制器116(图1所示)(如,例如,专用闪存编程器)接收命令。
通过接口213经由总线119接收的命令(例如,命令216)通常独立于闪速存储器101的内部结构。特别地,示例性命令216不指定页缓冲区110或者闪存页内的地址;而是,命令216可以指定与映射至闪速存储器的地址范围内的“绝对”地址相对应的数据。(本申请所使用的“绝对”涉及闪速存储器的基地址,而不是涉及闪速存储器内的页或者涉及页缓冲区)。
闪存控制器125可以将命令216转换为结构相关的闪存命令(例如,命令219)。作为示例,闪存控制器125可以将命令216a(“writeADDR1 DATA1”)转换为将值DATA1写入页缓冲区110中的适当字的适当闪存命令。页缓冲区110中的字可以通过应用某些函数至ADDR1值(图2中被描述为“Fn(ADDR1)”)来确定。例如,在一些实现中,地址值的低位可以用来标识页缓冲区110内的字,而地址值的高位可以被丢弃或者接着用来标识闪速存储器内的页。特别地,可以将DATA1值写入数据寄存器204;地址值-可能由适当函数所修改的-可以存储在地址寄存器201中;并且命令可以存储在命令寄存器207中。命令可以导致数据寄存器204中的数据将被存储在由地址寄存器201的内容来寻址的页缓冲区的字中。因此,在一些实现中,三个寄存器写命令222可以是与结构无关的命令216a相对应的结构相关的闪存命令。
闪存控制器125可以接收足够数目的结构无关的命令216来填充页缓冲区110。例如,闪存控制器可以接收命令216b、216c和216d并且以上述方式将这些命令中的每一个转换为结构相关的闪存命令。一旦页缓冲区110已经被填充,闪存控制器125可以发送指定页地址并且致使页缓冲区110的内容被传输至指定页的其它闪存命令225。更特别地,闪存控制器可以将页地址写入地址寄存器201并且将命令写入命令寄存器207,所述命令致使页缓冲区110的内容被传输至其地址由地址寄存器201的内容所指定的页。
将页缓冲区110的内容写入页104中的一个的过程可能占用一定的时间,期间可以暂停特定闪存操作。也就是说,闪速存储器101或者闪存控制器125可以通过缓冲区或者“暂停”、“挂起”、“繁忙”或者功能类似的信号的使用而执行等待命令228所描述的“等待状态”。在一些实现中,可以通过发送暂停信号至总线119以临时阻止远程控制器116发送其它命令216来执行等待状态;在一些实现中,闪存控制器可以经由总线119继续接收命令216,但闪存控制器125可以临时暂停将命令216转换为闪存命令219;在一些实现中,闪存控制器125可以接收命令216并且转换它们,但闪存控制器125可以在页缓冲区110被传输至页104中的一个时临时保持不发送它们至闪速存储器101。
在已经将页缓冲区110的内容传输至页104中的一个之后,闪存控制器125可以致使页缓冲区110被清除,例如,通过使用“ClearPageBuffer”命令231。在已经清除页缓冲区110之后,闪存控制器125可以继续将命令216转换为闪存命令219。如图所示,命令234对应于命令216e。
为了控制将结构无关的命令216转换为结构相关的闪存命令219的整个过程,闪存控制器125可以使用控制器237和转换单元240。控制器237(例如,有限状态机)可以控制闪存控制器的整体操作。例如,控制器237可以追踪与闪速存储器101的内部结构相关的命令216的接收。更特别地,控制器237可以在将页缓冲区110的内容传输至页104中的一个之前(例如,根据闪存命令225)管理填充页缓冲区110的命令216的数目。控制器237还可以追踪页104以顺序地用数据填充闪速存储器101。
闪存控制器125还包括转换单元240。转换单元240可以在控制器237的控制之下将命令216转换为闪存命令219。转换过程可以包括将输入命令216分解为数据和地址分量,将数据分量转换为写入数据寄存器204命令,并且将地址分量转换为写入地址寄存器201命令。转换地址分量可能需要特定处理。例如,命令216a(“Write ADDR1DATA1”)包括地址分量“ADDR1”,但其对应的闪存命令可能具有表示应用至ADDR1值的函数的“Fn(ADDR1)”分量。更特别地,函数可以提取ADDR1值的一部分。如上所述,ADDR1值的低位可以用来索引页缓冲区110内的字,而同时ADDR1值的高位可以用来索引页104中的一个。
除仅仅将地址和数据分量(或者其一部分)从命令216映射至闪存命令219之外,转换单元240还可以执行其它处理。例如,在一些实现中,转换单元240可以应用算法以置乱(scramble)或者加密数据或者地址分量中的一个或者全部。作为更具体的示例,转换单元240可以将ADDR1转换为Fn(ADDR1),其中Fn(ADDR1)表示已加密或者置乱的地址值。这样的加密或者置乱可以用来,例如,保护数据不被未授权的访问或者保护系统的一部分免受黑客攻击或者反向工程。类似的转换可以应用至数据。
图3是进一步说明将结构无关的命令转换为结构相关的闪存命令的方法300的流程图。方法300通过参考图1所示的三个设备:远程控制器116、本地控制器125和闪速存储器设备101来描述。
方法300可以确定是否已经暂停到闪存控制器(例如“本地控制器”)的写入(301)。例如,如果当前将页缓冲区110写入闪速存储器101的页104中的一个,那么可以临时暂停远程控制器116的进一步写入。在一些实现中,不做出这种确定301;而是可以缓存远程控制器116发送的写命令并且可以暂停命令的转换。在一些实现中,可以转换命令,但可以在将页缓冲区110的内容写入页104中的一个时缓存所转换的闪存命令并且不将其发送至闪速存储器。
缺少可选的暂停信号(301),远程控制器116发送(304)写命令至闪存控制器。例如,远程控制器116可以发送指定仅仅“绝对”地址和将要写入闪速存储器101的数据值的双操作数命令。双操作数写命令可以独立于闪速存储器的内部结构,并且可以经由总线119发送双操作数写命令至闪存控制器125。远程控制器116可以确定(305)是否发送另一个写入,并且如果是,远程控制器116可以发送重复的写命令。
闪存控制器接收(307)写命令。如上所述,接收的写命令可以包括数据值,或者逻辑数据单元。在一些实现中,逻辑数据单元可以包括一个字节的数据。在一些实现中,逻辑数据单元可以是包括多于一个字节的数据的字。逻辑数据单元的大小可以基于总线119的宽度和写命令的格式。例如,被格式化为经由16位总线在单个总线周期内被全部传输的写命令可以包括4位操作代码(操作码(opcode))、4位地址值和8位(一个字节)直接数据内容;在此情况下,逻辑数据单元可以是一个字节。作为另一个示例,写命令可以被格式化为经由16位总线在两个总线周期内被全部传输,而写命令可以包括8位操作码、8位地址信息和两个字节的直接数据内容;在此情况下,逻辑数据单元可以是两个字节。作为另一个示例,写命令可以被格式化为经由一位的串行总线在24个总线周期内被全部传输,而写命令可以包括4位操作码、4位地址信息和两个字节的直接数据内容;在此情况下,逻辑数据单元也可以是两个字节。
逻辑数据单元的大小还可以基于数据自身的格式。在一些实现中,逻辑数据单元可以包括一个或多个单元的数据以及一个或多个位的控制或者检查信息。例如,逻辑数据单元可以包括7位的数据和一位的奇偶校验。作为另一个示例,逻辑数据单元可以被格式化为支持错误检查和纠正(ECC)并且因此可以包括,例如4个字节的数据和1个字节的ECC信息以允许验证或者保持数据完整性。一些逻辑数据单元还可以包括数据和相应的报头或者封包信息,其可以用来路由闪速存储器101外部的各种总线或者网络之上的数据。
闪存控制器125将写命令转换(310)为多个闪存命令。例如,参考图2,闪存控制器125可以将命令216a(“Write ADDR1 DATA1”)转换(310)为闪存命令222(“STORE ADDR_REG Fn(ADDR1)”、“STORE DATA_REG DATA1”和“STORE CMND_REGWrite2PageBuffer”)。
可以执行(313)闪存命令以将逻辑数据单元传输至页缓冲区110。也就是说,可以由闪存控制器125经由总线210发送命令222至闪存设备101。可以执行(313)命令22从而,例如,将适当的值写入寄存器201、204和207。
一旦在寄存器201、204和207中接收到适当的值,闪速存储器101中的状态机(未示出)可以致使逻辑数据单元在页缓冲区110中被接收。基于数据寄存器204的大小,可能需要比上面所述的更多的操作。例如,为了经由8位的总线210接收两个字节的逻辑数据单元,可能需要两个数据写入,并且数据寄存器204实际上可以包括“数据低位”寄存器和“数据高位”寄存器。仅仅出于说明的目的,单个数据寄存器204被显示,并且闪速存储器101的准确结构对于本申请所述的系统、方法和装置来说不重要。
闪存控制器125确定(319)页缓冲区110是否为满。例如,闪存控制器125中的控制器237可以追踪已经传输至页缓冲区110的逻辑数据单元的数目。如果页缓冲区110还没有满,那么闪存控制器125可以接收(307)另一个写命令,将该写命令转换(310)为多个闪存命令,并且执行(313)闪存命令以将另一个逻辑数据单元传输至页缓冲区110。
如果页缓冲区被确定(319)为满,则闪存控制器125可以致使其内容被传输至闪速存储器101的页104中的一个。例如,参考图2,闪存控制器125可以发送闪存命令225以指定页地址并且致使页缓冲区110的内容被传输至与指定的页地址相对应的页。
作为响应,闪速存储器101在内部状态机(未示出)的控制下,可以传输(325)页缓冲区110的内容至闪速存储器101的页104中的一个。如上所述,这个传输可能占用一定时间,期间可以生成(328)挂起信号,或者否则可以临时暂停或者挂起上述过程的一部分。
在完成传输325后,闪存控制器125可以确定(331)是否将另一页数据写入闪速存储器101。如果写入另一页,闪存控制器125可以接收(307)其它写命令,转换(301)它们,并且执行(313)它们以再次填充页缓冲区110。在填充页缓冲区110的序列之间,闪存控制器125可以,例如,通过发送命令231清除页缓冲区110的内容。
在某些情况下,远程控制器116可以仅仅提供足够的写命令来部分地填充页缓冲区110。在此情况下,闪存控制器125可以生成具有“填充符(filler)”逻辑数据单元的其它闪存命令,以将实际提供的逻辑数据单元传输至闪速存储器101。可替代地,闪存控制器125可以简单地发送命令以使部分填充的页缓冲区110以其部分填充的状态被传输至页,而不生成并且写入“填充符”逻辑数据单元至页缓冲区110。
闪速存储器的循环
在一些实现中,促进闪速存储器的循环(例如,通过闪存控制器)。图4是说明其中可以与一个或多个功能单元的测试并行地循环嵌入式存储器的系统400的框图。特别地,图4说明了包括集成电路元件404、405和408(以下称为“元件”)的印刷电路板(PCB)401。如图所示,集成电路元件404(例如,微控制器并且以下称为“微控制器404”)包括嵌入式存储器409(例如,闪速存储器)。
为了促进测试,集成电路404、405和408可以由串行测试接口412(如,例如,符合IEEE(电气电子工程师学会)标准1149.1或者1149.1a的边界扫描测试接口-有时称为“JTAG”接口(连接测试行动小组接口))来耦接。在测试期间,串行测试接口412可以耦接至测试器416的相应的测试接口415。
通过串行测试接口412,测试器416可以能够验证PCB 401或者PCB 401上的各种元件的制造过程的完整性。特别地,测试器416可以能够验证元件连通性和元件功能性。测试器416经由串行测试接口412可以通过将元件置为已知状态、提供已知的输入数据并且捕获元件或者系统中的其它元件对已知输入数据的响应来测试各种元件。可以将捕获的响应与预期响应进行比较以验证功能性或者连通性。例如,各种元件内的测试电路可以响应来自串行测试接口412的命令和测试图案以将元件引脚置为特定逻辑状态或者捕获元件引脚的逻辑状态。
通过使用第一元件405中的测试电路(未示出)来将引脚419置为特定逻辑状态,并且通过使用第二元件404中的测试电路(未示出)来捕获物理地连接(或者应当是物理地连接)至第一元件引脚419的另一个引脚420的相应逻辑状态,测试器416可以通过使用串行测试接口412来验证连通性。这种测试模式可以是特别有利于,例如,测试元件的内部功能性,或者测试密集PCB上的元件之间的连通性,其中测试访问点可能是不可访问的(例如,在球栅阵列(BGA)元件(如元件408)之下)。
功能测试也是可能的。例如,测试器可以设置电路的各种输入为已知状态,并且测试器可以捕获电路输出的逻辑状态以验证功能性。更特别地,测试器可以设置微控制器404内的电路的输入为特定状态(例如,输入420和423),并且捕获相应输出424的状态。作为另一个示例,测试器416可以验证内部模块(如,例如,功能单元427)的功能性。
为了将各种元件置为已知状态,被测设备(DUT)内的测试电路可以接收命令和测试图案的串行输入流(例如,在JTAG接口的TDI线上)。DUT内的测试电路可以生成相应串行输出流(例如,在JTAG接口的TDO线上),所述相应串行输出流可以捕获响应于串行输入流的元件状态。输入和输出流可以由时钟信号(例如,JTAG接口的TCLK线)来同步,并且可以比较串行输出流和预期串行输出流;如果流匹配,则可以认为已经通过相应的测试。
连通性和功能测试可以在产品测试环境中执行,其中集成电路或者系统针对功能测试和配置而存在。例如,如图4所示,测试器416可以使用串行测试接口415和412以及相应的串行测试协议(例如,JTAG边界扫描协议)在单个元件(例如,集成电路元件404、405和408)或者整个系统(例如,PCB 401)上执行测试。特别地,测试器416可以通过测试探针或者通过测试连接430连接至串行测试接口412。
在一些实现中,串行测试接口412还可以用来编程存储器元件(如嵌入式闪存409),或者配置连接至串行测试接口412的其它可编程或者可配置设备。一些存储器元件在被编程之前可能需要初始化或者配置。例如,嵌入式闪速存储器409可能需要初始配置或者循环以耗散可能在制造过程期间积聚的电荷。在一些实现中,串行测试接口412可以用来执行这种初始配置或者循环过程。
通常,配置或者编程如闪速存储器409的存储器相对于其它测试是时间集中(time-intensive)的。如此,与其它测试(例如,PCB 401上网络连通性的测试和其它功能测试,如元件405和功能单元427的测试)并行地配置闪速存储器409可能是有利的。一种促进并行存储器配置和其它测试的方式是提供闪存控制器(如图5所示)来配置存储器。在一些实现中,闪存控制器针对其它并行测试而释放串行测试接口412。如果没有这样的闪存控制器,测试器416可能需要串行测试接口412来直接配置存储器,其可能消耗更多的测试时间。在一些实现中,并行接口可以用来替换上述的串行接口412和415。
图5是包括能够经由串行测试接口412来配置或者循环的嵌入式闪速存储器409的示例性微控制器404的框图。嵌入式闪速存储器409可以由闪存控制器503控制,并且闪存控制器503可以通过微控制器404中的串行接口507(例如,JTAG接口)连接至串行测试接口412。串行接口507可以针对嵌入式闪速存储器409的配置或者循环而从串行测试接口412将数据和命令传输至闪存控制器503。
闪存控制器503通常管理嵌入式闪速存储器409中的数据读取和写入。从闪速存储器读取和写入闪速存储器可能需要基于闪存内部结构的特定协议。更特别地,如参考图6所做的更加详细的描述一样,闪速存储器通常被布置为页,并且闪存通常通过页缓冲区的使用以页增量的方式来擦除和写入。闪存控制器503可以追踪页边界并且通常对填充页缓冲区和致使页缓冲区被写入闪速存储器的页进行管理。闪存控制器503还可以用来初始地循环或者配置嵌入式闪速存储器409。
嵌入式闪速存储器409可以以多种方式来编程。例如,在微控制器404的操作期间,由微控制器404执行的编程代码可以通过闪存控制器503致使数据存储在嵌入式闪速存储器409中或者从嵌入式闪速存储器409获取。作为另一个示例,可以通过闪存控制器503从串行测试接口412接收初始数据并且将其存储在嵌入式闪速存储器409中。
在嵌入式闪速存储器409能够初始地存储数据之前,嵌入式闪速存储器409可能需要初始循环或者配置。这是因为电荷在制造过程期间可能积聚在嵌入式闪存中,并且为了嵌入式闪速存储器409正确地运行,可能需要耗散积聚的电荷。耗散积聚的电荷可能需要依次地擦除和将各种数据图案写入嵌入式闪速存储器409。
特定的数据图案可能在耗散积聚的电荷中特别有效。例如,一种配置嵌入式闪速存储器409的方法可以包括擦除每个页,将第一图案写入每个页(例如,“具有交替位的棋盘格图案,如101010...”),再次擦除每个页,将第二图案写入每个页(例如,交替位被布置为与第一图案相反的“反向棋盘格图案”,如“010101...”),再次擦除每个页,将第三图案写入每个页(例如,全部为0的图案),并且再次擦除嵌入式闪速存储器409中的每个页。其它图案或者图案的组合可以用来替换刚才所示的那些图案,并且擦除和写入图案的序列可以重复一次或多次。
如图5所示,嵌入式闪速存储器409被包括在微控制器404中。微控制器404包括对于微控制器来说共同的各种其它功能单元。在所示的示例中,微控制器404包括初始地处理指令的指令译码器512、存储指令在执行时所使用的操作数的寄存器515、存储由指令所处理的数据的SRAM 532以及各种其它功能单元(例如,程序计数器509、定时器518、中断单元524等等)。如图所示,微控制器404还包括中央处理器(CPU)527,其自身包括算术逻辑单元(ALU)529。微控制器404可以包括其它单元(未示出),如,例如,模拟单元(例如,输出驱动器或者数字到模拟转换器)、附加逻辑单元或者其它存储器。具有嵌入式闪速存储器的设备可以采用很多形式,并且准确的形式对于本申请不重要。
图6是说明图5所示的嵌入式闪速存储器409和闪存控制器503的附加细节的框图。如上所述,嵌入式闪速存储器409通常以“页”布置。如图6所示,嵌入式闪速存储器409具有四个页621,并且每个页具有四个字。出于说明的目的,图6被简化。真实的闪存设备通常可能具有更多页,并且每页可能具有更多字。例如,典型的嵌入式闪速存储器可以被布置为512页,其中每页存储512字节的数据。
此外,嵌入式闪速存储器409具有用来将数据写入闪存页621的页缓冲区624。页缓冲区624通常具有与嵌入式闪速存储器409的单个页相同的容量,使得页缓冲区624可以填满闪速存储器的一个页。针对页缓冲区624,包括更大和更小大小的其它大小是可能的。通常首先将数据写入页缓冲区624,而页缓冲区的内容接着传输至特定页621。
页缓冲区624可以通过寄存器被间接访问。例如,嵌入式闪速存储器409可以包括地址寄存器627、数据寄存器630和命令寄存器633。将字写入页缓冲区624可以包括在地址寄存器627中写入指定页缓冲区624内的字地址的值;在数据寄存器630中写入数据值,以及写入命令,所述命令导致嵌入式闪速存储器409内的状态机(未示出)将数据寄存器630的内容传输至与地址寄存器627的内容相对应的页缓冲区624中的字。这个过程可以针对页缓冲区624中的每个字被重复,并且当页缓冲区624为满时,其可以传输至存储器的页。为了将页缓冲区624传输至存储器的页,可以将页的地址写入地址寄存器627,并且可以将命令写入命令寄存器633-命令指定页缓冲区624被传输至具有与地址寄存器627的内容相对应的地址的页。
嵌入式闪速存储器409可以响应各种其它命令来执行其它操作。例如,将特定值写入地址寄存器627和命令寄存器633可能导致页缓冲区624被擦除。响应于其它命令,可以擦除单个页、可以擦除整个设备、可以读取值或者可以执行其它操作。
在一些实现中,字可以是单字节,并且在一些实现中,字可以是两个或更多字节。寄存器627、630和633的大小可以依此变化,并且可以进一步基于嵌入式闪速存储器409通过其而被访问的数据总线605的宽度来变化。例如,在具有两字节字和一字节总线605的实现中,每一个数据寄存器可以包括两个寄存器-“高位”寄存器和“低位”寄存器-并且将数据写入存储器的页可以包括上面未描述的附加周期。
闪存控制器503可以执行包括擦除嵌入式闪速存储器409中的数据并且写入特定图案的序列。这样的序列可以重复多次以通过耗散可能在制造过程期间积聚的电荷来配置嵌入式闪速存储器409。在一些实现中,为了确定配置嵌入式闪速存储器409所需的擦除和写入操作序列的数目,闪存控制器503可以测量与闪存写入操作相关联的电压(例如,与闪存写入操作中使用的内部电荷泵(未示出)的输出相对应的电压)。该电压可以反映残留在嵌入式闪速存储器409中的积聚电荷的级别。在一些实现中,擦除和写入操作序列的数目可以基于图案在写入嵌入式闪速存储器409之后是否被成功读回来确定。出于这个目的,可以使用比较器612。例如,如果从闪速存储器409读回的图案匹配写入的图案(由比较器612确定),则可以认为已经充分耗散了积聚的电荷。如果读回的图案不匹配写入的图案,则嵌入式闪速存储器可能仍然包括积聚的电荷,并且可能需要一个或多个额外的序列来进一步耗散电荷。如果需要另一个序列,有限状态机615可以执行另一个擦除和写入操作序列。
为了循环或者配置存储器,有限状态机615可以使用图案生成器618和地址生成器609。图案生成器618可以存储或者生成对于循环嵌入式闪速存储器409有用的特定图案,如全部为0618a、棋盘格图案618b或者反向棋盘格图案618c。在一些实现中,图案生成器618还可以存储或者生成全部为1的图案(未示出);在其它实现中,有限状态机615可以执行擦除操作以将全部1写入嵌入式闪速存储器409。地址生成器609可以用来生成适当地标识页缓冲区624内的字或者嵌入式闪速存储器409内的页的地址。地址生成器609可以是基于有限状态机615的状态和嵌入式闪速存储器409的内部结构而增加的复杂计数器。针对嵌入式闪速存储器设备409的每个页的每个字,闪存控制器503可以将适当的地址值写入地址寄存器627、将数据值写入数据寄存器630以及将命令值写入命令寄存器633,以填充并且传输页缓冲区624至嵌入式闪速存储器409的每个真实页。
通过使用有限状态机615和图案生成器618,闪存控制器503可以将闪存控制器之外的设备从重复地将数据写入嵌入式闪速存储器409中释放出来。例如,闪存控制器503可以响应经由接口606接收的单个命令而初始化上述信息处理,所示接口606可以耦接至图5所示的串行测试接口412。闪存控制器503还可以根据嵌入式闪速存储器409的特定内部结构将外部设备从写入数据中释放出来。而是,根据到闪存控制器503的单个命令,嵌入式闪速存储器409的循环操作可以是自动的,不考虑嵌入式闪速存储器409的内部结构(其细节替换地在有限状态机615中捕获)。将单个命令写入闪存控制器530可以在一个总线周期内完成。(一个总线周期通常指的是两个处理单元之间的单次交换;因此,在一个总线周期内,闪存控制器503中的有限状态机615能够将值写入嵌入式闪速存储器409中的一个寄存器)。
因为单个命令可以调用闪存控制器503来开始循环存储器,可以不需要更多的总线周期(在闪存控制器503外部)来实际地执行存储器配置。因而,可以与闪存配置基本并行地执行在闪存控制器503外部的其它测试。
上述的闪存控制器503的使用可以有效地释放串行接口,其另外可以用来循环存储器。此外,闪存控制器503可以提供“抽象”层,其相对于位于闪存控制器503外部的设备隐藏嵌入式闪速存储器409的内部结构。也就是说,位于闪存控制器503外部的设备可以不需要追踪页缓冲区内的字或者嵌入式闪速存储器设备内的页。
图7是并行地配置闪速存储器和执行其它测试的方法的流程图。参考图4,方法700可以用来从串行测试接口412初始化嵌入式闪速存储器409的配置,同时基本并行地测试其它功能单元,如,例如,微控制器404内的功能单元427,或者元件405。
该方法包括接收命令以配置闪速存储器(704)。例如,测试器416(图4所示)可以经由串行接口415和412发送命令以配置嵌入式闪速存储器409;可以适当地格式化命令,使得其被转发至微控制器404;并且命令可以由闪存控制器503中的接口606接收(参见图2和3)。
方法700配置嵌入式闪速存储器409(707)。例如,通过闪存控制器503的命令的接收可以导致有限状态机615启动嵌入式闪速存储器409的配置(710)。更特别地,有限状态机615可以致使适当的值被写入寄存器627、630和633以导致嵌入式闪速存储器409的每个页621被擦除(713)。接下来,有限状态机615可以致使适当的值被写入寄存器627、630和633以导致特定数据图案被写入(716)闪速存储器409的每个页621。有限状态机615可以导致图案生成器618生成,否则或者提供用于闪速存储器409的数据图案。提供的数据可以通过首先写入页缓冲区624来装载到闪存页621中,所述写入通过由有限状态机615控制的对地址寄存器627、数据寄存器630和命令寄存器633的适当写入来实现。为了生成适当的地址,有限状态机615可以使用地址生成器609。
在一些实现中,擦除(713)闪存并且写入(716)图案的序列710可以自动重复(719)预定次数。例如,闪存409可以首先被擦除(713),接着写入(716)全部为0的图案618a,接着被擦除(713),接着写入(716)棋盘格图案618b,接着被擦除(713),接着写入(716)反向棋盘格图案。
在一些实现中,擦除-写入-擦除-写入-擦除-写入序列的整个示例还可以重复可变的次数。可变的次数可以取决于来自闪速存储器409的制造过程中的积聚电荷是否已经被充分耗散。可以用多种方式来确定任何积聚的电荷是否已经被充分耗散(722)。在一些实现中,可以测量与位于嵌入式闪速存储器409内部的电荷泵(未示出)相关联的电压。没有被充分耗散的积聚电荷可能影响该电压。因此,如果电压位于一个范围内,则有限状态机615可以确定(722)积聚的电荷没有被充分耗散;如果测量的电压在另一个范围内,则可以认为积聚的电荷已经被耗散,并且序列可以不被重复。
在一些实现中,可以使用其它方法来确定(719)是否重复示例的擦除-写入(或者例如,擦除-写入-擦除-写入-擦除-写入)序列。例如,有限状态机615可以使得数据从嵌入式闪速存储器409读回并且通过比较器612与写入闪速存储器409的上一个数据图案进行比较。如果读回的图案不匹配上一个写入的图案,则有限状态机615可以执行另一个示例的序列。作为另一个示例,序列可以被简单地重复预定次数。更特别地,擦除(713)、写入(716)全部为0的图案618a、擦除(713)、写入(716)棋盘格图案618b、擦除(713)和写入(716)反向棋盘格图案618c的序列可以被重复,例如,5次。在一些实现中,预定次数可以在特定嵌入式闪速存储器409的设计和验证期间,基于,例如,特定闪速存储器的初始实证测试,可以被硬编码至有限状态机615中。在一些实现中,可以在闪存控制器503接收来配置嵌入式闪速存储器409的命令中指定预定次数。例如,闪存控制器503可以经由串行接口412和接口606接收具有CYCLE_FLASHn格式的命令,其中n指定预定序列要被执行的次数。
与配置嵌入式闪速存储器409的行为707基本并行地,方法700测试或者否则命令、监控(728)至少一个其它功能单元或者为至少一个其它功能单元提供接口(728)。例如,当闪存控制器503响应从串行测试接口412接收的命令而配置嵌入式闪速存储器409时,可以经由相同的串行测试接口412接收其它命令以测试一个或多个其它功能单元(728)。现在提供更具体的示例。例如,测试器416可以经由串行接口415和412测试元件405的功能性(731)。可替代地,测试器416可以测试位于包括嵌入式闪速存储器409的设备404内部的功能单元427(例如,SRAM 532)的功能性(734)。测试器416可以测试位于设备404内部的另一个功能单元(例如,指令译码器512)的功能性(737)。测试器416可以测试各个元件之间的连通性(例如,引脚419和引脚420之间的连通性)(740)。(请注意,本申请所使用的“功能元件”包括其连通性可以通过测试(如边界扫描测试或者直接探针测试(例如,通过“针床”测试夹具))来验证的PCB印制线或者设备之间的其它连接)。
方法700可以提供配置和测试的状态(743)。例如,在一些实现中,在配置闪速存储器并且测试其它功能元件中的至少一个(728-740)之后,状态可以,例如,经由串行测试接口412或者通过状态位或者状态信号来提供。在一些实现中,配置过程707或者任何其它测试728-740的失败可能导致方法700立即提供(743)状态和/或结束,而不是继续其它测试。
上述实现可以至少部分地用硬件或者软件或者它们的任何组合来具体化。硬件可以包括,例如,包括分立元件、集成电路(Ic)或专用集成电路(ASIC)的模拟、数字或者混合信号电路。实现还可以全部或部分地用可以与硬件协作的软件、固件或者微代码来具体化。执行指令的处理器可以从数据存储介质(如EPROM、EEPROM、NVRAM、ROM、RAM、CD-ROM、HDD等等)取回指令。计算机程序产品可以包括存储介质,所述存储介质包含用于实现本申请所述的实现的程序指令。
已经描述了多种实现。然而,将会理解,在不脱离本发明的实质和范围的前提下,可以做出各种修改。例如,仅仅出于说明的目的,上面描述了特定的数据图案和特定的序列;还可以使用其它图案或者序列。作为另一个示例,实现可以包括并行测试或者编程接口以替代串行接口。因此,其它实现落入在下文权利要求的范围内。

Claims (29)

1.一种写入闪速存储器的页的方法,所述闪速存储器被布置为包含第一数目的逻辑数据单元,所述方法包含:
(a)在本地控制器经由总线从远程控制器接收写命令,所述写命令包含一个逻辑数据单元和地址;
(b)将写命令转换为多个闪速存储器命令;
(c)执行闪速存储器命令以将所述一个逻辑数据单元传输至闪速存储器内的页缓冲区;
(d)将(a)-(c)执行与第一数目相等的次数,以填充页缓冲区;以及
(e)致使页缓冲区的内容被传输至闪速存储器的页。
2.如权利要求1所述的方法,其中总线是符合IEEE(电气电子工程师学会)标准1149.1或者1149.1a的串行测试接口。
3.如权利要求1所述的方法,其中总线是编程接口,并且远程控制器是专用设备编程器。
4.如权利要求1所述的方法,其中闪速存储器和本地控制器嵌入在微控制器设备中,并且其中远程控制器位于微控制器设备外部。
5.如权利要求1所述的方法,其中逻辑数据单元包含一个字节的数据或者一个字的数据,一个字包含多个字节的数据。
6.如权利要求1所述的方法,其中转换写命令包含生成与地址相对应的页缓冲区地址。
7.如权利要求1所述的方法,进一步包含计算与闪速存储器的页相对应的页地址。
8.如权利要求7所述的方法,其中计算页地址包含基于在(a)中接收的至少一个地址计算页地址。
9.一种写入嵌入式闪速存储器的页的方法,包含:
(a)在嵌入式闪存编程单元经由总线并且从远离嵌入式闪存编程单元的控制器接收双操作数写命令,所述双操作数写命令具有指定地址的第一操作数和指定数据单元的第二操作数;
(b)将双操作数写命令转换为多个闪存命令;
(c)将(a)-(b)执行与页缓冲区中数据单元的数目相对应的双操作数写命令的数目;
(d)执行闪存命令以填充页缓冲区;以及
(e)在填充了页缓冲区之后,将页缓冲区的内容写入嵌入式闪速存储器的页。
10.如权利要求9所述的方法,进一步包含当将页缓冲区的内容写入闪速存储器的页时暂停执行填充页缓冲区的多个命令。
11.如权利要求10所述的方法,其中暂停执行多个命令包含暂停将双操作数写命令转换为多个命令。
12.如权利要求10所述的方法,其中暂停执行多个命令包含生成暂停信号以阻止控制器经由总线将另外的双操作数写命令传输至嵌入式闪存编程单元。
13.一种存储数据的系统,包含:
闪速存储器,被布置为多个页并且具有页缓冲区,多个页中的每个页存储第一数目的逻辑数据单元,页缓冲区也存储第一数目的逻辑数据单元;以及
闪存编程单元,包含:
接口,与远离闪存编程单元的控制器耦接,从控制器接收双操作数写命令,每个双操作数写命令具有指定地址的第一操作数和指定逻辑数据单元的至少一部分的第二操作数;
转换单元,将每个双操作数写命令转换为多个闪存命令,所述多个闪存命令使得所述逻辑数据单元的至少一部分被写入页缓冲区;以及
控制器,当已经将第一数目的逻辑数据单元写入页缓冲区时启动页缓冲区的内容到多个页中的一个页的写入。
14.如权利要求13所述的系统,其中逻辑数据单元包含一个字节的数据或者一个字的数据,一个字包含多个字节的数据。
15.如权利要求13所述的系统,其中当将页缓冲区写入多个页中的所述页时接口暂停接收双操作数写命令。
16.一种测试集成电路的方法,所述集成电路具有串行接口、嵌入式存储器、嵌入式存储器控制器和至少一个功能单元,所述方法包含:
从串行接口接收第一命令以循环集成电路的嵌入式存储器;
响应于接收第一命令,通过嵌入式存储器控制器循环嵌入式存储器;
在嵌入式存储器的循环期间,从串行接口接收第二命令以测试集成电路的至少一个功能单元;以及
执行第二命令以与嵌入式存储器的循环基本并行地测试至少一个功能单元。
17.如权利要求16所述的方法,其中循环嵌入式存储器包含执行一个或多个序列,所述一个或多个序列启动嵌入式存储器的擦除并且启动具有特定图案的数据到嵌入式存储器的写入。
18.如权利要求17所述的方法,其中特定图案选自如下组:全部为0的图案、全部为1的图案、棋盘格图案和反向棋盘格图案。
19.如权利要求17所述的方法,其中执行一个或多个序列包含:
(a)启动嵌入式存储器的擦除;
(b)启动具有第一图案的数据到嵌入式存储器的写入;
(c)启动嵌入式存储器的擦除;
(d)启动具有第二图案的数据到嵌入式存储器的写入,其中第一图案与第二图案不同;以及
(e)重复(a)-(d),直到与启动数据写入相关联的电压电平穿过预定阈值电平。
20.如权利要求16所述的方法,进一步包含基于嵌入式存储器中的电荷是否基本被耗散来确定是否重复写入至嵌入式存储器的序列。
21.如权利要求16所述的方法,进一步包含确定嵌入式存储器在制造过程期间积聚的电荷是否基本被耗散。
22.如权利要求21所述的方法,其中确定电荷是否基本被耗散包含将具有测试图案的数据写入嵌入式存储器,从嵌入式存储器读回数据,以及确定从嵌入式存储器读回的数据是否完全对应于测试图案。
23.如权利要求16所述的方法,其中至少一个其它功能单元选自如下组:指令译码器、程序计数器、定时器、比较器、中断单元、算术逻辑单元(ALU)、微控制器、模拟单元、附加逻辑单元和存储器;并且其中测试至少一个其它功能单元包含配置至少一个其它功能单元或者验证至少一个其它功能单元被正确地制造。
24.如权利要求16所述的方法,其中串行接口是符合IEEE(电气电子工程师学会)标准1149.1或者1149.1a的边界扫描接口。
25.如权利要求16所述的方法,进一步包含在完成嵌入式存储器的循环和执行第二命令之后提供状态输出。
26.如权利要求25所述的方法,其中嵌入式存储器是闪速存储器;循环闪速存储器包含循环具有至少4096字节的闪速存储器;执行第二命令以测试至少一个功能单元包含测试精简指令集微控制器;以及提供状态输出包含在接收命令以循环闪速存储器的200毫秒内提供状态输出,状态输出表明通过循环嵌入式存储器已经基本耗散了所有积聚的电荷并且进一步表明精简指令集微控制器已经通过了功能测试。
27.一种测试集成电路的方法,所述集成电路具有接口、嵌入式存储器、嵌入式存储器控制器和至少一个功能单元,所述方法包含:
从接口接收第一命令以循环集成电路的嵌入式存储器;
响应于接收第一命令,通过嵌入式存储器控制器循环嵌入式存储器;
在嵌入式存储器的循环期间,从接口接收第二命令以测试集成电路的至少一个功能单元;以及
执行第二命令以与嵌入式存储器的循环基本并行地测试至少一个功能单元。
28.如权利要求27所述的方法,其中接口是并行接口。
29.如权利要求27所述的方法,其中执行一个或多个序列包含:
(a)启动嵌入式存储器的擦除;
(b)启动具有第一图案的数据到嵌入式存储器的写入;
(c)启动嵌入式存储器的擦除;
(d)启动具有第二图案的数据到嵌入式存储器的写入,其中第一图案与第二图案不同;以及
(e)重复(a)-(d),直到与启动数据写入相关联的电压电平穿过预定阈值电平。
CNA200780012685XA 2006-02-14 2007-02-14 写入和配置闪速存储器 Pending CN101438253A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/353,874 2006-02-14
US11/353,873 2006-02-14
US11/353,873 US7610528B2 (en) 2006-02-14 2006-02-14 Configuring flash memory

Publications (1)

Publication Number Publication Date
CN101438253A true CN101438253A (zh) 2009-05-20

Family

ID=38370175

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200780012685XA Pending CN101438253A (zh) 2006-02-14 2007-02-14 写入和配置闪速存储器

Country Status (2)

Country Link
US (1) US7610528B2 (zh)
CN (1) CN101438253A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455454A (zh) * 2013-09-02 2013-12-18 华为技术有限公司 一种控制存储器启动的方法和装置
CN106415515A (zh) * 2014-06-26 2017-02-15 英特尔公司 使用不具有sfence的优化的pio写入序列来发送分组
CN108351380A (zh) * 2015-10-29 2018-07-31 北欧半导体公司 微处理器接口
CN108536475A (zh) * 2017-12-27 2018-09-14 贵阳忆芯科技有限公司 完整编程命令处理方法与装置
CN110109791A (zh) * 2019-05-16 2019-08-09 深圳市时创意电子有限公司 一种验证eMMC数据稳定性和可靠性的测试方法
CN110431540A (zh) * 2017-03-16 2019-11-08 高通股份有限公司 用于在非托管闪存设备中复制数据页的方法和装置
CN110489169A (zh) * 2019-08-06 2019-11-22 晶晨半导体(上海)股份有限公司 一种片上系统的存储器快速启动方法
CN111052100A (zh) * 2017-10-25 2020-04-21 微芯片技术股份有限公司 可位操作的直接存储器访问
CN113326216A (zh) * 2020-02-28 2021-08-31 美光科技公司 用于存储器子系统控制器的专用可测试性设计路径

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451367B2 (en) * 2006-02-14 2008-11-11 Atmel Corporation Accessing sequential data in microcontrollers
US7610528B2 (en) * 2006-02-14 2009-10-27 Atmel Corporation Configuring flash memory
KR100843208B1 (ko) * 2006-11-02 2008-07-02 삼성전자주식회사 반도체 칩 패키지 및 그 테스트 방법
KR100915822B1 (ko) * 2007-12-11 2009-09-07 주식회사 하이닉스반도체 바운더리 스캔 테스트 회로 및 바운더리 스캔 테스트 방법
US7900106B2 (en) * 2008-03-28 2011-03-01 Atmel Corporation Accessing sequential data in a microcontroller
US9471473B1 (en) * 2009-01-09 2016-10-18 Sprint Communications Company L.P. Environmental validation tool
KR101005155B1 (ko) * 2009-05-13 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 테스트 방법
US20130036255A1 (en) * 2011-08-05 2013-02-07 Apple Inc. Testing memory subsystem connectivity
CN103325421B (zh) * 2012-03-23 2016-02-10 上海华虹宏力半导体制造有限公司 非挥发性存储器棋盘格测试电路及其检测方法
KR101518379B1 (ko) * 2013-06-18 2015-05-07 중소기업은행 불휘발성 메모리의 자동 프로그램 및 자동 사이클링 방법
TWI762332B (zh) * 2021-05-27 2022-04-21 大陸商北京集創北方科技股份有限公司 快閃記憶體的測試方法及裝置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69034191T2 (de) * 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
GB9622685D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therewith
US6041406A (en) 1997-04-08 2000-03-21 Advanced Micro Devices, Inc. Parallel and serial debug port on a processor
US5761215A (en) 1997-06-03 1998-06-02 Motorola, Inc. Scan based path delay testing of integrated circuits containing embedded memory elements
US6076177A (en) * 1997-09-23 2000-06-13 Motorola, Inc. Method and apparatus for testing a circuit module concurrently with a non-volatile memory operation in a multi-module data processing system
US6243842B1 (en) 1998-06-08 2001-06-05 Stmicroelectronics, Inc. Method and apparatus for operating on a memory unit via a JTAG port
DE19911939C2 (de) 1999-03-17 2001-03-22 Siemens Ag Verfahren für den eingebauten Selbsttest einer elektronischen Schaltung
US6370661B1 (en) 1999-04-26 2002-04-09 Ip-First, Llc Apparatus for testing memory in a microprocessor
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
CN100442395C (zh) 2001-04-25 2008-12-10 Nxp股份有限公司 具有自测试器件的集成电路及相关测试方法
US6754868B2 (en) 2001-06-29 2004-06-22 Nextest Systems Corporation Semiconductor test system having double data rate pin scrambling
US6925583B1 (en) 2002-01-09 2005-08-02 Xilinx, Inc. Structure and method for writing from a JTAG device with microcontroller to a non-JTAG device
US6948147B1 (en) 2003-04-03 2005-09-20 Xilinx, Inc. Method and apparatus for configuring a programmable logic device using a master JTAG port
DE102004009693A1 (de) 2004-02-27 2005-10-13 Advanced Micro Devices, Inc., Sunnyvale Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
US7610528B2 (en) * 2006-02-14 2009-10-27 Atmel Corporation Configuring flash memory

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9424186B2 (en) 2013-09-02 2016-08-23 Huawei Technologies Co., Ltd. Method and apparatus for controlling memory startup
CN103455454B (zh) * 2013-09-02 2016-09-07 华为技术有限公司 一种控制存储器启动的方法和装置
CN103455454A (zh) * 2013-09-02 2013-12-18 华为技术有限公司 一种控制存储器启动的方法和装置
CN106415515B (zh) * 2014-06-26 2019-06-25 英特尔公司 使用不具有sfence的优化的pio写入序列来发送分组
CN106415515A (zh) * 2014-06-26 2017-02-15 英特尔公司 使用不具有sfence的优化的pio写入序列来发送分组
CN108351380A (zh) * 2015-10-29 2018-07-31 北欧半导体公司 微处理器接口
CN110431540A (zh) * 2017-03-16 2019-11-08 高通股份有限公司 用于在非托管闪存设备中复制数据页的方法和装置
CN110431540B (zh) * 2017-03-16 2023-03-14 高通股份有限公司 用于在非托管闪存设备中复制数据页的方法和装置
CN111052100A (zh) * 2017-10-25 2020-04-21 微芯片技术股份有限公司 可位操作的直接存储器访问
CN111052100B (zh) * 2017-10-25 2024-02-02 微芯片技术股份有限公司 可位操作的直接存储器访问
CN108536475A (zh) * 2017-12-27 2018-09-14 贵阳忆芯科技有限公司 完整编程命令处理方法与装置
CN108536475B (zh) * 2017-12-27 2023-08-15 贵阳忆芯科技有限公司 完整编程命令处理方法与装置
CN110109791A (zh) * 2019-05-16 2019-08-09 深圳市时创意电子有限公司 一种验证eMMC数据稳定性和可靠性的测试方法
CN110489169A (zh) * 2019-08-06 2019-11-22 晶晨半导体(上海)股份有限公司 一种片上系统的存储器快速启动方法
CN110489169B (zh) * 2019-08-06 2021-10-19 晶晨半导体(上海)股份有限公司 一种片上系统的存储器快速启动方法
CN113326216A (zh) * 2020-02-28 2021-08-31 美光科技公司 用于存储器子系统控制器的专用可测试性设计路径
CN113326216B (zh) * 2020-02-28 2022-06-07 美光科技公司 存储器子系统控制器及相关方法和存储媒体

Also Published As

Publication number Publication date
US7610528B2 (en) 2009-10-27
US20070192657A1 (en) 2007-08-16

Similar Documents

Publication Publication Date Title
CN101438253A (zh) 写入和配置闪速存储器
US11009550B2 (en) Test architecture with an FPGA based test board to simulate a DUT or end-point
US10976361B2 (en) Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes
CN110634530B (zh) 芯片的测试系统和测试方法
US20150253387A1 (en) Programmable interface-based validation and debug
JP5147942B2 (ja) プログラマブル診断メモリ・モジュール
CN101211266A (zh) 一种实现fpga自动下载和在线升级的方法
CN102549443A (zh) 可编程协议发生器
TW201729096A (zh) 串列輸入輸出(i/o)功能測試器
US7730369B2 (en) Method for performing memory diagnostics using a programmable diagnostic memory module
US20150187439A1 (en) Integrated circuit defect detection and repair
US20240095366A1 (en) Secure boot apparatus and method
CN1462979A (zh) 一种flash芯片的加载方法和jtag控制器
US9702933B1 (en) System and method for concurrent interconnection diagnostics field
US9581643B1 (en) Methods and circuits for testing partial circuit designs
CN112885403B (zh) 一种Flash控制器的功能测试方法、装置及设备
EP2016494A2 (en) Writing to and configuring flash memory
Nejedlo et al. Intel® IBIST, the full vision realized
CN117234831B (zh) 一种基于多核cpu的芯片功能测试方法及系统
CN220709656U (zh) 一种基于fpga实现的1553b总线装置
CN113608937B (zh) 硬盘背板led无硬盘测试装置及方法
US11430536B2 (en) Software-focused solution for arbitrary all-data odd sector size support
CN102799466B (zh) 一种应用于PowerPC最小系统的引导装置及引导方法
JPH08161191A (ja) インサーキットエミュレータ
CN117667541A (zh) 基于jtag的通用可扩展调试装置、方法、芯片及开发系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090520