CN108829347A - 一种Nand设备的硬件控制器、控制方法及液晶显示器 - Google Patents

一种Nand设备的硬件控制器、控制方法及液晶显示器 Download PDF

Info

Publication number
CN108829347A
CN108829347A CN201810530147.XA CN201810530147A CN108829347A CN 108829347 A CN108829347 A CN 108829347A CN 201810530147 A CN201810530147 A CN 201810530147A CN 108829347 A CN108829347 A CN 108829347A
Authority
CN
China
Prior art keywords
block
read
bad
blocks
nand equipment
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
CN201810530147.XA
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.)
TCL China Star Optoelectronics Technology Co Ltd
Original Assignee
Shenzhen China Star Optoelectronics Technology Co Ltd
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 Shenzhen China Star Optoelectronics Technology Co Ltd filed Critical Shenzhen China Star Optoelectronics Technology Co Ltd
Priority to CN201810530147.XA priority Critical patent/CN108829347A/zh
Priority to PCT/CN2018/095807 priority patent/WO2019227619A1/zh
Publication of CN108829347A publication Critical patent/CN108829347A/zh
Priority to US16/228,416 priority patent/US10748462B2/en
Pending legal-status Critical Current

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/36Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
    • G09G3/3611Control of matrices with row and column drivers
    • G09G3/3618Control of matrices with row and column drivers with automatic refresh of the display panel using sense/write circuits

Abstract

本发明公开了一种Nand设备的硬件控制器、控制方法以及液晶显示器,其中,该硬件控制器包括:坏块管理模块,用于管理Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合;主控制模块,用于接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种;读写模块,用于跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。本发明不仅适用于不同数据传输方式的Nand设备,且能够在对Nand设备坏块管理的基础上进行读/写操作,提高Nand设备的适用性。

Description

一种Nand设备的硬件控制器、控制方法及液晶显示器
技术领域
本发明涉及电子电路技术领域,尤其涉及一种Nand设备的硬件控制器、控制方法及液晶显示器。
背景技术
随着电子科技的不断发展,在实际应用中经常会出现大批量、高密度的数据需要进行存储管理。例如在液晶显示器的屏驱动板(Timer Control Register,TCON)应用中,需要对配置参数、运行数据、补偿数据等进行存储,且随着面板解析率的增加,各种补偿数据的精细化,需要存储的数据量变得愈来愈大。所以,用于存储数据的存储器的各种参数要求也变得越来越高。现有技术中,Nand(not and)设备作为一种性能良好的非易失性存储设备(例如Nand Flash存储器),由于具有容量大、成本低、寿命长等优点而被广泛使用。Nand设备通常由块(block)构成,在Nand设备的生产及使用过程,会由于硬件物理缺陷或者异常关机、掉电、终止服务使进程异常等原因而产生坏块。坏块为Nand设备中由于出现故障而不支持读/写操作的块,其特性是:当编程(Page Program)或擦除(Block Erase)这个块时,会出现操作错误。
为了降低坏块对Nand设备使用的影响,现有技术的方案是:基于软件程序通过处理器对Nand设备进行坏块管理,然而这种方案具有占用内存大、读/写速度低等缺陷。
发明内容
本发明实施例提供了一种Nand设备的硬件控制器、控制方法及液晶显示器,采用硬件的方式对Nand设备进行坏块管理,有利于解决占用内存大、读/写速度低等背景技术中提到的缺陷,且支持不同数据访问方式的Nand设备,使对Nand设备的读/写操作更加适配。
第一方面,本发明提供了一种Nand设备的硬件控制器,该硬件控制器包括:
坏块管理模块,用于管理Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合;
主控制模块,用于接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种;
读写模块,用于跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。
结合第一方面在一些可能的实现方式中,所述写操作包括擦除操作和编程操作中的至少一个;坏块管理模块还用于,当所述写操作未成功写入数据到块中时,将所述写操作对应的块作为坏块增加到所述坏块集合。
结合第一方面在一些可能的实现方式中,所述硬件控制器还包括错误校验模块,错误校验模块用于在读操作过程中对读操作对应的数据进行错误检查与纠正。
结合第一方面在一些可能的实现方式中,所述硬件控制器还包括速度测试模块,速度测试模块用于测试所述Nand设备的最大访问速度;读写模块具体用于,根据所述最大访问速度对所述目标块集合中的其余块进行所述读/写操作。
结合第一方面在一些可能的实现方式中,所述硬件控制器还包括掉电保护模块,所述掉电保护模块用于将所述Nand设备的坏块信息、所述Nand设备对应的数据传输方式、所述Nand设备对应的最大访问速度保存到存储器。
第二方面,本发明提供了一张控制方法,该方法包括:获取Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合;
接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种;
跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。
结合第二方面在一些可能的实现方式中,所述方法还包括:当所述写操作未成功写入数据到块中时,将所述写操作对应的块作为坏块增加到所述坏块集合;所述写操作包括擦除操作和编程操作中的至少一个。
结合第二方面在一些可能的实现方式中,所述方法还包括:在读操作过程中对读操作对应的数据进行错误检查与纠正。
结合第二方面在一些可能的实现方式中,所述方法还包括:测试所述Nand设备的最大访问速度;根据所述最大访问速度对所述目标块集合中的其余块进行所述读/写操作。
结合第二方面在一些可能的实现方式中,所述方法还包括:将所述Nand设备的坏块信息、所述Nand设备对应的数据传输方式、所述Nand设备对应的最大访问速度保存到存储器。
第三方面,本发明提供了一种液晶显示器,该液晶显示器包括如第一方面所述的硬件控制器。
通过实施本发明实施例,读写模块基于主控制模块确定的数据传输方式,结合坏块管理模块中的坏块信息,对Nand设备中的目标库集合中的除去坏块集合的块进行读/写操作。从而本发明实施例不仅适用于不同数据传输方式的Nand设备,且能够在对Nand设备坏块管理的基础上进行快速地读/写操作,无需占用终端较大的运行内存,提高Nand设备的适用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种Nand设备中的存储阵列和坏块信息的示意图;
图2是本发明实施例提供的另一种Nand设备中的存储阵列和坏块信息的示意图;
图3是本发明实施例提供的一种系统架构的示意图;
图4是本发明实施例提供的一种硬件控制器的结构示意图;
图5是本发明实施例提供的一种控制方法的流程示意图;
图6是本发明实施例提供的一种写操作的流程示意图;
图7是本发明实施例提供的一种读操作的流程示意图;
图8是本发明实施例提供的另一种控制方法的流程示意图;
图9是本发明实施例提供的一种初始化的流程示意图;
图10是本发明实施例提供的一种层次化模块的交互示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。
为了便于理解本发明技术方案,首先描述本发明实施例中所涉及的坏块。参见图1,本发明实施例中,Nand设备由块(Block)构成,通常而言,块可用于存储/擦除数据,并支持读/写操作(这样的块又可称为好块),如图示中Nand设备包括由block_0、bolck_1...block_i…block_n等构成的存储阵列,块的基本单元是页(Page)。相应的,坏块为Nand设备中由于故障不支持读/写操作的块。其中,坏块分为固有坏块与使用坏块。固有坏块指的是在厂家生产过程中产生的坏块,使用坏块指的是在对Nand设备使用过程中发现的块擦除操作(Block Erase)或页编写操作(Page Program)错误产生的坏块。
下面描述本发明实施例提供的坏块信息,以及基于坏块信息进行数据读/写操作的方案。坏块信息包括Nand设备中的坏块集合,具体地,坏块信息在实际应用中可以为坏块链表。如图1所示,在坏块链表中,采用比特位来指示块是好块还是坏块,即一个比特位表征一个块的好坏情况;例如:当块为坏块时,所述块对应的比特位设置为“1”;当块为好块时,所述块对应的比特位设置为“0”。那么,所有比特位设置为“1”的坏块的集合就是所述坏块集合。可以理解的是,上述例子仅为举例,不应理解为具体限定。
本发明具体实施例中,可以使用存储阵列中某个块来存储所述坏块信息,例如图示中使用存储阵列中block_0来存储坏块链表。
本发明具体实施例中,当需要对某些块进行数据的读/写操作时,硬件控制器将首先查询坏块信息中的坏块集合,跳过这些块中属于坏块集合的坏块,进而对这些块中的其它块(可以理解的,所述其他块即为好块)进行读/写操作。进一步地,如图2所示,针对不同数据类型的存储应用,可将Nand设备的存储空间划分为多个存储区,每个存储区包括预设个数的块。每个存储区都可单独模拟成循环队列方式进行操作,以避免对同一个块进行重复编写操作而导致坏块的发生。特别的是,对于需要实时更新的批量数据,可以分配读、写两个循环队列,一个循环队列负责当前的读取,一个循环队列负责实时更新写入;当确定实时更新写入完成后,可设置标志字节,读、写循环队列切换,原读循环队列变为实时更新队列,原实时更新队列变为读循环队列;设置的标志字节可以被更新至非易失性存储器中。
为了解决现有技术对坏块管理的缺陷,本发明实施例进一步提供了一种系统架构,请参阅图3,图3示出了本发明实施例所涉及的一种系统架构的示意图,该系统架构包括用户侧终端(Host)、硬件控制器以及Nand设备,其中,硬件控制器分别连接所述用户侧终端(Host)和Nand设备。用户侧终端(Host)用于生成读/写操作指令,可以为电脑主机,手机,平板电脑,物联网设备等外设设备,进一步还可以是中央处理器、图形处理器、神经网络处理器等处理器设备。本发明实施例中,Nand设备(例如为Nand flash等)是一种非易失性存储设备,具有功耗更低、重量更轻和性能更佳等优势,同时还具有容量较大,改写速度快等优点,可用于大量数据的存储。硬件控制器用于实现基于所述用户侧终端(Host)的操作指令对Nand设备进行操作。本发明实施例中,所述硬件控制器可以与Nand设备封装在一起以作为同一设备,所述硬件控制器也可以独立于Nand设备,在此不作具体限定。
具体的,本发明实施例中的硬件控制器可包括以下结构:主控制模块301、坏块管理模块302、读写模块303。其中,
主控制模块301,用于连接所述用户侧终端,接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种;
本发明实施例中,硬件控制器与用户侧的终端以及Nand设备建立连接后,硬件控制器将会接收终端基于Nand设备支持的数据传输方式发出的操作命令,该操作命令指示硬件控制器采用并行传输和串行传输中的至少一种对Nand设备的目标快集合进行读/写操作。
坏块管理模块302,用于管理Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合;具体可参考上文图1实施例中关于坏块信息的描述,这里不再赘述。
读写模块303,连接所述Nand设备,用于跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。
本发明实施例中,当终端发出命令对Nand设备进行读/写操作时,硬件控制器将首先查询坏块信息中的坏块集合,跳过坏块集合所包含的坏块进而对其它好块进行读/写操作。
通过实施本发明实施例,读写模块基于主控制模块确定的数据传输方式,结合坏块管理模块中的坏块信息,对Nand设备中的目标库集合中的除去坏块集合的块进行读/写操作。从而本发明实施例不仅适用于不同数据传输方式的Nand设备,且能够在对Nand设备坏块管理的基础上进行快速地读/写操作,无需占用终端较大的运行内存,提高Nand设备的适用性。
请参阅图4,图4是本发明实施例提供的另一种硬件控制器的结构示意图。与上一发明实施例相比,本实施例提供的硬件控制器结构划分更细,功能更多。如图4所示,本发明实施例中的硬件控制器包括以下结构:
主控制模块401,用于与用户侧终端进行通信及数据交互,并解析终端发出的命令,驱动下一层模块进行操作;
另外,主控制模块401用于接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种。
坏块管理模块402,用于对Nand设备的坏块信息进行存储管理;具体地,用于在读/写操作时提供坏块信息给对应的读/写模块。
读控制模块403,用于根据主控制模块401发出的指令选择对应的下一级模块进行读操作。
页数据读取模块404,用于对Nand设备中的页数据进行读取操作;具体地,用于基于读控制模块403发出的指令产生页数据读取指令给底层模块。
本发明实施例中,底层模块可包括:底层操作多路复用选择模块413、底层命令生成模块414、底层驱动信号生成模块415。其中,在读/写操作过程中,通过底层操作多路复用选择模块413选择对应的串/并行底层命令生成模块414进行指令发送。
快速缓存读取模块405,用于在并行传输方式的情况下,快速连续读取Nand设备中多个页数据;具体地,用于基于读控制模块403发出的指令产生快速缓存读取指令给底层模块。
设备信息读取模块406,用于读取Nand设备的设备信息;具体地,用于在主控制模块401的指令下与底层模块交互以读取设备信息。
写控制模块407,用于根据主控制模块401发出的命令选择对应的下一级模块进行写操作。
页数据编写模块408,用于对Nand设备中的页数据进行写入操作;具体地,用于基于写控制模块407发出的指令产生页数据编写指令给底层模块。
快速缓存编写模块409,用于在并行传输方式的情况下,快速连续写入Nand设备中多个页数据;具体地,用于基于写控制模块407发出的指令产生快速缓存编写指令给底层模块。
块数据擦除模块410,用于对Nand设备中的块数据进行擦除操作;具体地,用于基于写控制模块407发出的指令产生块擦除指令给底层模块。
页数据缓存管理模块411,用于负责页数据到缓存区412的写入或读取管理;具体地,控制终端发出的数据或者读取操作的数据写入缓存区412,以及控制缓存区412的读取数据将发送给终端或者写入Nand设备。
页数据缓存区412,用于对页数据进行缓存;具体地,页数据缓存区可采用易失性存储器实现,如SRAM存储器。优选地,缓存区可以实现两个页的缓存,且Nand设备的写操作或读操作可以采用时分复用的方式对缓存区进行使用。
底层操作多路复用选择模块413,用于根据上一级模块发出的控制命令选择对应的底层命令生成模块414通路。
底层命令生成模块414,分为基于并行传输的底层命令生成模块与基于串行传输的底层命令生成模块,具体用于根据上一级模块发出的控制命令产生命令序列给底层驱动信号生成模块415。
底层驱动信号生成模块415,分为基于并行传输的底层驱动信号生成模块与基于串行传输的底层驱动信号生成模块,具体用于根据底层命令生成模块414发出的命令序列生成Nand设备的驱动时序;
本发明实施例中,主控制模块401根据终端的操作命令选择对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式。底层操作多路复用选择模块413根据所述数据传输方式将上一级发出的控制命令选择并行传输或串行传输的底层驱动模块,从而对Nand设备进行相应的读/写操作。
错误校验模块416,用于在读操作过程中对读操作对应的数据进行错误检查与纠正;
本发明实施例中,错误校验模块具体用于通过硬件的方式对数据进行错误检查与纠正功能(Error Correcting Code,ECC)。具体地,在从Nand设备中的数据进行读取操作时,可以通过所述错误校验模块对缓存区412中读取的数据进行校验,以保证数据的正确性。
速度测试模块417,用于测试所述Nand设备的最大访问速度;具体用于与底层模块进行交互进而测试得到最大访问速度。
访问控制模块418,用于控制Nand设备的访问方式以及访问速度;具体用于发出控制指令给底层模块,从而控制Nand设备的访问方式与访问速度。
本发明实施例中,在硬件控制器与Nand设备以及终端建立连接之后,硬件控制器与Nand设备之间的访问速度为默认速度。当硬件控制器没有对Nand设备进行最大访问速度测试的情况下,速度测试模块417开始测试所述Nand设备的最大访问速度,并在测试通过时访问控制模块418将访问速度调整为最大访问速度。
本地设置管理模块419,用于设置所述硬件控制器中各个模块的配置参数。
状态管理模块420,用于根据各模块的工作状态生成对应的工作信号并反馈于用户侧终端。
本发明实施例中,硬件控制器与终端以及Nand设备建立连接后,硬件控制器中的主控制模块401进入初始化过程,初始化完成后,状态管理模块420将初始化完成信号反馈给终端,然后等待终端的控制命令;当主控制模块401收到终端的控制命令时,首先解析控制命令,再进行相应操作。主控制模块401在整个操作期间设置忙碌信号,状态管理模块420将该忙碌信号反馈给终端,表示在此期间不再接受终端的控制命令;主控制模块401操作完成后,状态管理模块420清除忙碌信号,并且将本次操作状态反馈给终端,同时等待终端的下一次控制命令。
基于同一发明构思,本发明实施例还提供了一种控制方法,参见图5,图5为该控制方法的流程示意图。本实施例主要以上述实施例的硬件控制器来举例说明。该控制方法包括但不限于以下步骤:
步骤501,硬件控制器获取Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合。
具体可参考前述图1实施例的描述,这里不再赘述。
步骤502,硬件控制器接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种。
步骤503,硬件控制器跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。
在一实施例中,所述方法还包括:当所述写操作未成功写入数据到块中时,将所述写操作对应的块作为坏块增加到所述坏块集合;所述写操作包括擦除操作和编程操作中的至少一个。
在一实施例中,所述方法还包括:在读操作过程中对读操作对应的数据进行错误检查与纠正。
在一实施例中,所述方法还包括:测试所述Nand设备的最大访问速度;根据所述最大访问速度对所述目标块集合中的其余块进行所述读/写操作。
在一实施例中,所述方法还包括:将所述Nand设备的坏块信息、所述Nand设备对应的数据传输方式、所述Nand设备对应的最大访问速度保存到存储器。
可以看出,本实施例能够支持不同数据访问方式的Nand设备,在对所述Nand设备的操作过程中,能够基于坏块集合快速地跳过坏块对好块进行对应的读/写操作,从而使终端对Nand设备的读/写操作更加适配。
下面进一步描述本发明实施例中所涉及的写操作/读操作的实现过程。
本发明实施例中,写操作为将数据写入到目标块中的目标页中,可以参见图6,图6为硬件控制器的写操作的流程示意图,包括但不限于以下步骤:
61)判断目标块是否为坏块或者已写入的块。
具体地,硬件控制器查询坏块管理模块中的所述Nand设备的坏块集合,以确定目标块是否为坏块。当检测到目标块为坏块或者已写入的块的情况下,跳过当前目标块,将下一块作为目标块重新执行本步骤,直至找到好块。
62)对目标块进行块擦除操作,并判断是否操作成功;
具体地,首先对目标块进行块擦除操作,所述块擦除操作为将块中的数据位皆写为同一数据信息,例如将数据位写为“1”,以方便后续的编写操作。然后,检测是否将目标块的擦除操作执行成功,若成功则执行步骤63,若失败则执行步骤64。
63)对目标块中的页进行页编写操作,并判断是否操作成功;
本发明实施例中,根据终端发出的写入命令,将数据通过编写操作写入目标块的目标页中。当硬件控制器检测到页编写操作失败的情况下,则执行步骤64。具体地,对目标页进行数据编写操作,并检测针对于目标页的数据编写操作是否成功。当硬件控制器检测到所述数据编写操作失败时,将目标页的编写失败次数加1,并再次对目标页进行数据编写操作;若检测到目标页的编写失败次数高于预设次数时,硬件控制器判定目标页的页编写操作失败,执行步骤64。可选地,所述预设次数为3次。
需要说明的是,当目标页写入完成后若还有数据有待写入,则硬件控制器将下一页作为目标页继续编写操作。同理,当目标块写入完成后若还有数据有待写入,则硬件控制器将下一块作为目标块并执行步骤61。
64)将目标块加入Nand设备的坏块集合。
本发明实施例中,硬件控制器可采用易失性存储器存储图1实施例中描述的所述Nand设备的坏块链表。具体地,可采用上文中所述的坏块管理模块中存储所述Nand设备的坏块链表,另外在非易失性存储器中存储相同的坏块链表。具体地,所述易失性存储器可以为SRAM存储器;所述非易失性存储器可以是在硬件控制器内的存储器,也可以是独立于硬件控制器、Nand设备的存储器,还可以是Nand设备中的专用存储区域(如Block-0区)。进一步地,当Nand设备在运行过程中因块擦除操作或页编程操作产生坏块时,不仅将所述坏块添加至坏块管理模块的坏块链表中,同时还将所述坏块链表更新至非易失性存储器中。
本发明实施例中,读操作为从Nand设备中读取相关数据信息,包括:坏块扫描操作与数据读取操作。其中,坏块扫描操作具体为:检测每个块中的坏块信息字节,当所述坏块信息字节表明所述块为坏块时,将其加入坏块集合,以防止在Nand设备运行期间被异常擦除。所述坏块信息字节为出厂前用于标定坏块的信息字节。
可以看出,在硬件控制器对Nand设备进行写操作过程中,不仅能跳过坏块执行对应的写操作,而且能将发现的坏块加入坏块集合以便于后续读写。
本发明实施例中,读操作为将Nand设备中的目标块中目标页的数据进行读取,可以参见图7,图7为硬件控制器的读操作的流程示意图,所述读操作流程包括但不限于以下步骤:
71)查询坏块集合跳过坏块,以找到目标块;
具体地,查询坏块管理模块中的所述Nand设备的坏块集合(坏块链表),以确定目标块是否为坏块。当检测到目标块为坏块的情况下,跳过当前目标块,将下一块作为目标块重新执行本步骤,直至找到好块。
72)对目标块的目标页进行读取操作,并判断是否操作成功;
若硬件控制器检测到对目标块的目标页的读取操作成功,则执行步骤73;若硬件控制器检测到对目标块的目标页的读取操作失败,则终止读取操作认定读取失败。
73)判断目标页是否为目标块的最后页;
若硬件控制器检测到目标页不是目标块的最后页,则将下一页作为目标页并重新执行步骤72;若硬件控制器检测到目标页是目标块的最后页,则执行步骤74。
74)判断目标块是否为数据读取的最后块;
若硬件控制器检测到目标块不是读取数据的最后块,则将下一块作为目标块并重新执行步骤71;若硬件控制器检测到目标块是读取数据的最后块,则数据读取完成。
可以看出,在硬件控制器对Nand设备进行读操作过程中,可以跳过坏块对目标块中的目标页进行读取,提高了读取效率。
基于同一发明构思,本发明实施例还提供了又一种控制方法,参见图8所示,图8为又一种控制方法的流程示意图。本实施例主要以上述实施例的硬件控制器来举例说明。该控制方法包括但不限于以下步骤:
步骤801,硬件控制器上电初始化;
本发明实施例中,当硬件控制器与终端、Nand设备建立连接时开始执行初始化,其中,初始化为将硬件控制器的各个模块参数设置为默认状态或适配状态,从而为终端提供后续的读/写操作,初始化涉及的参数包括数据传输方式、访问速度、坏块信息的提取等。
下面详细描述初始化过程,参见图9所示,图9是建立连接后的初始化流程图,包括但不限于以下步骤:
91)读取Nand设备的设备信息,以及读取设备工作属性;
本发明实施例中,硬件控制器通过设备信息读取模块读取的Nand设备的设备信息为设备器件ID,从而可以判定Nand设备的最大访问速度、数据传输方式、出厂坏块标识等。另外,设备工作属性包括坏块扫描状态、坏块信息等。需要说明的是,当Nand设备完成坏块扫描后,硬件控制器将设定一扫描标识字节,以表明所述Nand设备的坏块扫描状态为已扫描状态。
92)判断Nand设备是否进行出厂坏块扫描操作;
93)对Nand设备进行出厂坏块扫描操作,并更新坏块集合;
94)判断当前访问速度是否为最大访问速度;
本发明实施例中,当前访问速度为默认访问速度,最大访问速度为通过设备信息读取得到的访问速度。若硬件控制器检测到当前访问速度是为最大访问速度,则保持当前访问速度;若硬件控制器检测到当前访问速度不是为最大访问速度,则执行步骤95。
95)对Nand设备进行最大访问速度测试;
具体地,硬件控制器根据Nand设备的最大访问速度进行读写测试,若测试通过则执行步骤95;若测试不通过,则保持默认访问速度。
96)将访问速度调整为最大访问速度。
需要说明的是,当坏块信息、数据数据传输方式、最大访问速度、配置参数、坏块扫描状态等工作属性分析完成后或者更新后,硬件控制器将所述工作属性存储更新在非易失性存储器中,以保证重启后能读取所述工作属性从而快速进行读/写操作。
可以看出,硬件控制器的初始化流程能够获取Nand设备的坏块信息,且能够将访问速度调试为最大的访问速度,从而有利于硬件控制器基于终端命令对Nand设备的读/写操作。
步骤802,硬件控制器向用户侧终端发送用于指示初始化完成的信息;
具体的,硬件控制器与终端以及Nand设备建立连接后,硬件控制器中的主控制模块进入初始化过程,初始化完成后,状态管理模块将初始化完成信号反馈给终端,然后等待终端的控制命令;当主控制模块收到终端的控制命令时,首先解析控制命令,再进行相应操作。主控制模块在整个操作期间设置忙碌信号,状态管理模块将该忙碌信号反馈给终端,表示在此期间不再接受终端的控制命令;主控制模块操作完成后,状态管理模块清除忙碌信号,并且将本次操作状态反馈给终端,同时等待终端的下一次控制命令。
步骤803,用户侧终端(Host)生成操作指令;
具体的,所述操作指令可以是基于用户的操作生成的对Nand设备的读/写指令,还可以是Host的程序运行时自动生成的对Nand设备的读/写指令,在此不作限定。
可选地,表1为硬件控制器与Host协定的一种命令编码集示例,硬件控制器中的主硬件控制器可响应于该命令编码集,并做出特定的操作;该命令编码集可灵活的扩展或者添加更加的控制命令。
表1
步骤804,用户侧终端向硬件控制器发送操作指令;
具体地,所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种。
步骤805,可选的,当操作指令指示进行所述读/写操作所采用的数据传输方式为串行传输时,硬件控制器基于操作指令来生成串行(Serial)Nand底层命令。
具体地,当控制指令指示进行所述读/写操作所采用的数据传输方式为串行传输时,硬件控制器生成Serial Nand底层命令。举例来讲,对于某个块某个页编程操作,对应有写使能、编写加载、编写执行、获取特征等过程,而每个过程又分解为单个或多个操作周期来完成,每个操作周期由8个操作时间组成。
步骤806,可选的,当操作指令指示进行所述读/写操作所采用的数据传输方式为并行传输时,硬件控制器基于操作指令来生成并行(Parallel)Nand底层命令。
具体地,当操作指令指示进行所述读/写操作所采用的数据传输方式为并行传输时,硬件控制器生成Parallel Nand底层命令。举例来讲,底层操作包括编写加载、地址发送、编写确认、读状态、读状态寄存等步骤。另外,Parallel Nand设备一般采用异步接口时序,有特别的地址、命令、读/写控制信号;本申请中针对每个操作过程分解为单个或多个子操作来实现,子操作分别对应有地址、命令、读/写数据等。
步骤807,可选的,当操作指令指示对nand设备进行写操作时,硬件控制器跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行写操作。
具体可参考图6实施例中的相关描述,在此不再赘述。
步骤808,可选的,当操作指令指示对nand设备进行读操作时,硬件控制器跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行读操作。
具体可参考图7实施例中的相关描述,在此不再赘述。
需要说明的是,步骤807与步骤808可以是或关系,即在同一时间只执行写操作或读操作;步骤807与步骤808也可以是和关系,即终端发出的控制指令指示硬件控制器对Nand设备同时进行写操作与读操作。
步骤809,可选的,在读操作过程中对读操作对应的数据进行错误检查与纠正。
步骤810,可选的,将所述Nand设备的坏块信息、所述Nand设备对应的数据传输方式、所述Nand设备对应的最大访问速度保存到存储器。
具体地,当硬件控制器确定Nand设备中的坏块信息、数据传输方式、最大访问速度等参数后,可以将这些参数存储至存储器中,以防止掉电后数据丢失。具体实施例中,所述存储器可以是硬件控制器内的存储器,也可以是独立于硬件控制器、Nand设备的存储器,还可以是Nand设备中的专用存储区域(如Block-0区)。
通过本发明实施例提供的控制方法,硬件控制器在初始化的过程中测试最大访问速度进行传输,在读/写操作过程中能跳过坏块进行,且能对数据进行错误检查与纠错等等。可以看出,本发明实施例能够最大化用户体验,帮助终端快速地读/写数据,减少终端占用的运行内存等。
基于上述图4所描述的硬件控制器,下面具体说明硬件控制器中的相关模块执行本发明实施例的控制方法的过程。
本发明实施例中,硬件控制器的各个模块之间采用层次化设计进行内部的命令传递以及相应地处理操作。图10示出了硬件控制器配合终端进行一次操作过程的示意图,详细描述如下:
1、终端生成操作指令;
2、终端将操作指令传输至硬件控制器的主控制模块;
3、硬件控制器的主控制模块基于操作指令生成第一控制命令并传输至对应的读/写控制模块;
4、硬件控制器的读/写控制模块基于第一控制命令生成第二控制命令并传输至对应的快速缓存/页数据-读/写模块;
5、硬件控制器的快速缓存/页数据-读/写模块基于第二控制命令生成第三控制命令并传输至对应的串/并底层命令生成模块;
6、硬件控制器的串/并底层命令生成模块基于第三控制命令生成命令序列并传输至对应的串/并底层驱动信号生成模块;
7、硬件控制器的串/并底层驱动信号生成模块基于命令序列生成驱动时序并传输至Nand设备;
8-13、Nand设备以及硬件控制器各层模块依序向上一级反馈操作完成信号。
可以看出,终端发起控制操作后,硬件控制器通过内部控制命令控制各层模块进行操作,各层模块从上至下依序响应上一层模块的操作请求;对应地,在底层模块的操作完成后,各层模块从下至上依序反馈给上一层模块关于操作完成的信号。主控制模块接收到下一层的关于操作完成的信号后,向终端反馈操作结果,并等待下一次操作。
基于同一发明构思,本发明还提供了一种液晶显示器,该液晶显示器包括前述实施例中提供的硬件控制器,该液晶显示器还可以执行前述实施例中提供的控制方法。具体可参考前述实施例中的相关描述,在此不再赘述。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”、“接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (9)

1.一种Nand设备的硬件控制器,其特征在于,包括:
坏块管理模块,用于管理Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合;
主控制模块,用于接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种;
读写模块,用于跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。
2.根据权利要求1所述的硬件控制器,其特征在于,所述写操作包括擦除操作和编程操作中的至少一个;坏块管理模块还用于,当所述写操作未成功写入数据到块中时,将所述写操作对应的块作为坏块增加到所述坏块集合。
3.根据权利要求1所述的硬件控制器,其特征在于,所述硬件控制器还包括错误校验模块,错误校验模块用于在读操作过程中对读操作对应的数据进行错误检查与纠正。
4.根据权利要求1所述的硬件控制器,其特征在于,所述硬件控制器还包括速度测试模块,速度测试模块用于测试所述Nand设备的最大访问速度;
读写模块具体用于,根据所述最大访问速度对所述目标块集合中的其余块进行所述读/写操作。
5.根据权利要求4所述的硬件控制器,其特征在于,所述硬件控制器还包括掉电保护模块,所述掉电保护模块用于将所述Nand设备的坏块信息、所述Nand设备对应的数据传输方式、所述Nand设备对应的最大访问速度保存到存储器。
6.一种Nand设备的控制方法,其特征在于,包括:
获取Nand设备的坏块信息,所述坏块信息表示所述Nand设备中的坏块集合;
接收终端的操作命令;所述操作命令用于指示对所述Nand设备的目标块集合进行读/写操作以及进行所述读/写操作所采用的数据传输方式,所述数据传输方式包括并行传输和串行传输中的至少一种;
跳过所述Nand设备中同时存在于所述坏块集合和所述目标块集合的块,对所述目标块集合中的其余块进行所述读/写操作。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当所述写操作未成功写入数据到块中时,将所述写操作对应的块作为坏块增加到所述坏块集合;所述写操作包括擦除操作和编程操作中的至少一个。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:在读操作过程中对读操作对应的数据进行错误检查与纠正。
9.一种液晶显示器,其特征在于,包括如权利要求1-5任一项所述的硬件控制器。
CN201810530147.XA 2018-05-29 2018-05-29 一种Nand设备的硬件控制器、控制方法及液晶显示器 Pending CN108829347A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810530147.XA CN108829347A (zh) 2018-05-29 2018-05-29 一种Nand设备的硬件控制器、控制方法及液晶显示器
PCT/CN2018/095807 WO2019227619A1 (zh) 2018-05-29 2018-07-16 一种Nand设备的硬件控制器、控制方法及液晶显示器
US16/228,416 US10748462B2 (en) 2018-05-29 2018-12-20 Hardware controller of NAND device, control method and liquid crystal display

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810530147.XA CN108829347A (zh) 2018-05-29 2018-05-29 一种Nand设备的硬件控制器、控制方法及液晶显示器

Publications (1)

Publication Number Publication Date
CN108829347A true CN108829347A (zh) 2018-11-16

Family

ID=64146102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810530147.XA Pending CN108829347A (zh) 2018-05-29 2018-05-29 一种Nand设备的硬件控制器、控制方法及液晶显示器

Country Status (2)

Country Link
CN (1) CN108829347A (zh)
WO (1) WO2019227619A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109616036A (zh) * 2019-01-07 2019-04-12 重庆京东方显示技术有限公司 显示屏单体、显示屏单体不良位置定位系统及其定位方法
CN109614044A (zh) * 2018-12-04 2019-04-12 浪潮电子信息产业股份有限公司 一种固态硬盘写错误的处理方法、装置及设备
CN110471791A (zh) * 2019-07-15 2019-11-19 深圳市德名利电子有限公司 一种对闪存的坏块信息的存储方法和装置以及设备
CN111933199A (zh) * 2020-08-07 2020-11-13 深圳市纵维立方科技有限公司 基于存储器的数据读写方法、装置及存储介质
CN112068781A (zh) * 2020-09-10 2020-12-11 深圳芯邦科技股份有限公司 一种存储器的数据读写方法及相关设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000595B (zh) * 2020-07-06 2022-02-01 西安电子科技大学 一种阵列通道控制系统、方法、控制器、存储介质及应用

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331911A (zh) * 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法
CN105740163A (zh) * 2016-01-29 2016-07-06 山东鲁能智能技术有限公司 一种Nand Flash坏块管理方法
CN107247563A (zh) * 2017-07-06 2017-10-13 济南浪潮高新科技投资发展有限公司 一种nand flash芯片的块信息标识实现方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302474B (zh) * 2014-07-31 2018-03-16 华为技术有限公司 控制闪存的写操作的方法和闪存的控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331911A (zh) * 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法
CN105740163A (zh) * 2016-01-29 2016-07-06 山东鲁能智能技术有限公司 一种Nand Flash坏块管理方法
CN107247563A (zh) * 2017-07-06 2017-10-13 济南浪潮高新科技投资发展有限公司 一种nand flash芯片的块信息标识实现方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614044A (zh) * 2018-12-04 2019-04-12 浪潮电子信息产业股份有限公司 一种固态硬盘写错误的处理方法、装置及设备
CN109616036A (zh) * 2019-01-07 2019-04-12 重庆京东方显示技术有限公司 显示屏单体、显示屏单体不良位置定位系统及其定位方法
CN110471791A (zh) * 2019-07-15 2019-11-19 深圳市德名利电子有限公司 一种对闪存的坏块信息的存储方法和装置以及设备
CN111933199A (zh) * 2020-08-07 2020-11-13 深圳市纵维立方科技有限公司 基于存储器的数据读写方法、装置及存储介质
CN111933199B (zh) * 2020-08-07 2021-03-30 深圳市纵维立方科技有限公司 基于存储器的数据读写方法、装置及存储介质
CN112068781A (zh) * 2020-09-10 2020-12-11 深圳芯邦科技股份有限公司 一种存储器的数据读写方法及相关设备
CN112068781B (zh) * 2020-09-10 2024-03-22 深圳芯邦科技股份有限公司 一种存储器的数据读写方法及相关设备

Also Published As

Publication number Publication date
WO2019227619A1 (zh) 2019-12-05

Similar Documents

Publication Publication Date Title
CN108829347A (zh) 一种Nand设备的硬件控制器、控制方法及液晶显示器
CN106095620B (zh) 一种嵌入式Linux存储分区的开发方法
CN102945179B (zh) 基于mtd分区的软件升级方法和装置
CN102135927B (zh) 一种基于nand flash的系统引导方法和装置
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
CN104200843B (zh) 闪存烧入器、烧入系统及烧入方法
US20080046780A1 (en) Nonvolatile memory
CN101923516A (zh) 以区块为基础的快闪存储装置及其操作方法
US20090210867A1 (en) Disk array apparatus, method for exchanging firmware, program for exchanging firmware and storage medium for storing program thereof
CN105224480A (zh) 一种用于响应于读取要求的存取存储器装置的方法和装置
JP2002288034A (ja) 半導体記憶装置とその読出し・書き込み方法
CN105718281B (zh) 一种触摸屏固件升级方法及装置
CN101252640B (zh) 向机顶盒写入序列号的方法
CN113377408B (zh) 一种高可靠sram型fpga在线升级方法及系统
US20120324145A1 (en) Memory erasing method, memory controller, and memory storage apparatus
JP2000020391A (ja) 記憶装置、データ処理装置並びにデータ処理方法
CN107870775A (zh) 一种处理器及BootLoader程序的更新方法
CN108170457A (zh) 固件升级方法、装置及vr头戴式显示器
CN112947977A (zh) 一种软件在线升级方法及系统
CN102722408B (zh) 一种通讯设备软件更新的方法及装置
CN106649137B (zh) 一种Nand Flash坏块管理方法、装置及存储器
US10748462B2 (en) Hardware controller of NAND device, control method and liquid crystal display
US20100153622A1 (en) Data Access Controller and Data Accessing Method
CN106445592A (zh) 一种基于wifi与can总线远程多机程序升级方法

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181116

WD01 Invention patent application deemed withdrawn after publication