一种芯片参数的识别方法及系统的利记博彩app

文档序号:6783518阅读:348来源:国知局
专利名称:一种芯片参数的识别方法及系统的利记博彩app
技术领域
本发明涉及芯片技术领域,尤其涉及一种芯片参数的识别方法及系统。
背景技术
现有技术中,如果要使用某一款闪存(nandflash)芯片,就必须要获得芯片的数 据表(datasheet)技术文档,根据技术文档的描述,组织一个参数列表,软件或硬件是通过 参数列表中的各种参数进行工作。而目前,很多nandflash的生产厂商出于保护的目的,只向大型客户公开授权的 datasheet技术文档,不向小型客户及研发人员公开nandflash芯片的datasheet技术文 档。另外,由于nandflash芯片不断推出新型产品,为了支持不断推出的新品,厂家必须不 断更新nandflash参数列表(软件或硬件),不利于产品的生产。

发明内容
本发明实施例提供了一种芯片参数的识别方法及系统,用以识别nandflash芯片 的物理参数。本发明实施例提供的一种芯片参数的识别方法包括从预先设置的多个时间timing参数中选择满足闪存nandflash芯片读写条件的 timing 参数;其中,timing参数满足nandflash芯片读写条件,是指在采用该timing参数时, 对该nandflash芯片进行的读、写操作均成功;从满足nandflash芯片读写条件的timing参数中选择一个nandflash芯片工作 频率最高的timing参数,作为nandflash芯片的最佳timing参数。本发明实施例提供的一种芯片参数的识别系统包括timing参数识别单元,该 timing参数识别单元包括timing参数选择单元,用于从预先设置的多个timing参数中选择满足闪存 nandflash芯片读写条件的timing参数;其中,timing参数满足nandflash芯片读写条件, 是指在采用该timing参数时,对该nandflash芯片进行的读、写操作均成功;最佳timing参数确定单元,用于从满足nandflash芯片读写条件的timing参 数中选择一个nandflash芯片工作频率最高的timing参数,作为nandflash芯片的最佳 timing 参数。本发明实施例,从预先设置的多个时间timing参数中选择满足闪存nandflash 芯片读写条件的timing参数;其中,timing参数满足nandflash芯片读写条件,是指在采 用该timing参数时,对该nandflash芯片进行的读、写操作均成功;从满足nandflash芯 片读写条件的timing参数中选择一个nandflash芯片工作频率最高的timing参数,作为 nandflash芯片的最佳timing参数,从而确定了 nandflash芯片的最佳timing参数。


图1为本发明实施例提供的一种识别nandflash芯片的page类型的总体方法流 程示意图;图2为本发明实施例提供的一种nandflash芯片参数识别的主要流程示意图;图3为本发明实施例提供的尝试读取事先约定好的nandflash区域的nandflash 物理参数的具体流程示意图;图4为本发明实施例提供的page类型判断的具体流程示意图;图5为本发明实施例提供的识别nandflash芯片每个block包括的page数目的 具体流程示意图;图6为本发明实施例提供的确定nandflash芯片的block数目的流程示意图;图7为本发明实施例提供的确定最佳时间(timing)参数的流程示意图;图8为本发明实施例提供的一种芯片参数的识别系统的结构示意图;图9为本发明实施例提供的一种timing参数识别单元的结构示意图;图10为本发明实施例提供的一种block数目识别单元的结构示意图。
具体实施例方式本发明实施例提供了一种芯片参数的识别方法及系统,用以识别nandflash芯片 的物理参数。本发明实施例提供的nandflash芯片识别方案,可以识别出任何未知nandflash 芯片的物理参数信息,使得开发人员在一定程度上摆脱了对datasheet技术文档的依赖; 通过将识别出的物理参数信息保存在nandflash芯片上,厂家不用不断更新nandflash芯 片的参数表。本发明实施例通过遍历式的尝试,逐步识别出未知nandflash芯片的多项物理参 数,包括芯片的块(block)的数目,每个块包含的页(page)的数目,每页有效数据区(data area)的大小,每页预留区域(spare area)的大小,芯片的物理结构,最佳的timing。其中,芯片的物理结构包括单级单元(SLC,Single-Level cell)和多级单元 (MLC, Multi-Level cell)两种物理结构。需要说明的是,本发明实施例中,向nandflash芯片写入的数据,不能为Oxff,因 为,nandflash芯片格式化后,该nandflash芯片中的数据全部是Oxff。下面结合附图对本发明实施例提供的技术方案进行详细说明。参见图1,本发明实施例提供的一种nandflash芯片的page类型的识别方法总体 包括步骤S101、从预先设置的多个t iming参数中选择满足nandf 1 ash芯片读写条件的 timing 参数。其中,timing参数满足nandflash芯片读写条件,是指在采用该timing参数时, 对该nandflash芯片进行的读、写操作均成功。S102、从满足nandflash芯片读写条件的timing参数中选择一个nandfIash芯片 工作频率最高的timing参数,作为nandflash芯片的最佳timing参数。timing参数包括两个具体指标mandflash芯片的工作频率,和时钟(elk)的高电平与低电平的比,即占空比。较佳地,步骤SlOl包括按照预先设置的多个timing参数的从低到高的顺序,依次选择timing参数进行 是否满足nandflash芯片读写条件的判断。其中,所述多个timing参数的从低到高的顺序,是预先按照每个timing参数中的 nandflash芯片工作频率设置的。或者,步骤SlOl包括从预先设置的多个timing参数中选择每个timing参数,分别进行是否满足 nandflash芯片读写条件的判断,记录满足nandflash芯片读写条件的timing参数。较佳地,判断当前选择的timing参数满足nandflash芯片读写条件的步骤包括采用当前选择的timing参数初始化闪存nandflash芯片控制器,并重新启动 nandflash Sj=T"。格式化第0号block,读取第0号block中的数据。当从第0号block中读取到的数据为Oxff时,向第0号block写入特定数据,并 再次读取第0号block中的数据。当从第0号block中再次读取到的数据,与写入该第0号block的特定数据相同 时,确定当前选择的timing参数为满足nandflash芯片读写条件的timing参数。下面给出本发明实施例提供的一种用于识别出nandflash芯片各种物理参数的 主要流程说明。较佳地,参见图2,本发明实施例提供的nandflash芯片物理参数的识别方法主要 包括步骤一设定最保守(最小)的timing,例如可以是2MHz。timing包括两个指标mandflash工作频率和时钟(elk)每个周期的占空比(高 电平比低电平)。然后,采用所有nandflash芯片都能支持的最保守的timing(例如mandflash 工作频率为2MHz,时钟(elk)每个周期的高电平比低电平为1 2),尝试在事先约定好的 nandflash区域读取数据,即确定nandflash芯片的预先约定区域是否存在该nandflash芯 片的物理参数。例如,事先约定好的nandflash区域可以为nandflash的前10个block中每个 block 的第 0 号 page。判断是否在事先约定好的nandflash区域读取到nandflash物理参数,如果是,则 通过循环冗余码(CRC)对读取到的物理参数进行校验,如果能通过CRC校验,则认为获得的 nandflash物理参数是正确的,识别过程结束,接下来可以使用nandflash物理参数进行后 续操作。否则,如果所有事先约定好的nandflash区域都读不到正确的nandflash物理参 数(即CRC校验无法通过),则认为这是一块新的nandflash芯片,需要进行nandflash芯 片物理参数的识别过程,进而执行步骤二。步骤二、首先识别nandflash芯片的page类型,主要识别两部分data区大小和 spare区大小。
7
data区大小和spare区大小的具体组合包括四种512+16 ;2048+64 ;4096+128 ; 4096+218。也就是说,page类型包括四种类型数据区大小为4096字节、预留区大小为218 字节类型的page ;数据区大小为4096字节、预留区大小为1 字节类型的page ;数据区大 小为2048字节、预留区大小为64字节类型的page ;数据区大小为512字节、预留区大小为 16字节类型的page。步骤三、识别nandf Iash芯片的物理结构是SLC结构还是MLC结构。采用的判断依 据是是否支持多次编程(program),SLC结构的nandflash芯片支持多次program,而MLC 结构的nandflash芯片则不支持多次program。步骤四、识别nandflash芯片中每个block包括多少个page,总体包括对nandflash芯片的第一组特定page所在的块block进行格式化;分别向第二组特定page写入特定数据,然后格式化第0号page所在的block ;读取第二组特定page中的数据,通过将读取到的数据与所述特定数据进行比较, 确定nandflash芯片每个block包括的page数目。其中,所述第一组特定page和第二组特定page是预先根据nandflash芯片每个 block包括的page数目的种类确定的。步骤五、识别nandflash芯片中包括多少个block。具体地,可以采用特定位置格式化的方式来识别nandflash芯片的block数目,包 括第一步骤向第0号page写入数据,该数据的大小可以设置为512个字节,令参数 i = 1。参数i用来表示nandflash芯片包括的block数目是512的多少倍,因为,目前 nandflash芯片包括的block数目都是512的整数倍。第二步骤根据每个block包括的page数目,格式化第512*i个block。第三步骤读取第0号page中的数据,比较读取到的数据与写入该第0号page中 的数据是否相同,如果是,则令i = i+Ι,返回第二步骤,以此类推,直到判定从第0号page 中读取的数据与写入该第0号page中的数据不同,当然还可以为i设置一个最大的阈值, 在i小于该阈值的情况下,可以重复执行第二步骤和第三步骤;否则,确定nandflash芯片 包括 512*i 个 block。步骤六、确定最佳的timing,使用事先设置的一些典型timing进行尝试,尝试出 一个能够进行各种基本读写操作的最佳timing参数。其中,所述典型timing,例如mandflash芯片的工作频率为2M,elk的占空比为 1 2 ;或者,nandflash芯片的工作频率为24M,clk的占空比为1 1 ;或者,nandfIash芯 片的工作频率为32M,elk的占空比为2 3,等等。步骤七、将识别出来的各种nandflash芯片物理参数,连同计算出来的CRC信息保 存在事先约定好的区域。上述步骤四、五不一定要在步骤二、三之后执行,步骤六也不一定要在步骤四、五 之后执行。步骤二、三的执行与步骤四、五的执行以及步骤六的执行可以是并行的,相互之 间没有必然的顺序关系。下面给出上述各个步骤的较佳的具体实施方式

一、关于步骤一中确定nandflash芯片的预先约定区域是否存在该nandflash芯 片的物理参数的说明。由于要想识别出nandflash芯片,不可避免的要对nandflash芯片进行格式化,以 及写处理,只凭读是不可能实现的,这样会破坏nandflash上原有的数据,这对于一个新的 nandflash来说没有关系,但是对于之前使用过的nandflash芯片,上面的数据被破坏,会 导致文件系统、程序等出现故障。因此,一旦第一次识别出nandflash的物理参数信息,并 且基于这些参数在nandflash上存储数据了,就能不再进行nandflash识别,只能读取之前 存储的nandflash芯片物理参数信息来使用nandflash。当前的对nandflash芯片进行基础的page读操作,按照两种情况划分为两种 方式,page的数据区域是512bytes的一种512方式的读操作,和page的数据区域大于 512bytes的另一种非512方式的读操作(page的数据区域为2048或4096bytes的均采用 该种读方式)。这读操作最主要的区别是对于大于512bytes的nandflash的读操作,比 对于等于512bytes的nandflash的读操作,要多发一个命令,发的地址要多一位,因此操作 是不一样的。nandflash每个block的最小容量是32个page,有的nandflash每个block还可 以包括64pages或者U8pages,而64、1观分别是32的2倍和4倍。本发明实施例中,首先 假设每个blcok包括32个pages。尝试读取事先约定好的nandflash区域的nandflash物 理参数的具体流程如图3所示(其中,假设约定区域为第0到第10个block的每个block 的第一个page),具体包括用I表示当前page的页号,初始时,令I = 0,即从page 0开始,尝试读取 nandflash物理参数。重新启动nandflash芯片(由于之前的错误尝试可能会对nandflash芯片造成不 利影响,所以需要重新启动nandflash芯片)。采用512方式读取第I个page,并判断是否读正确,如果读正确了,说明该 nandflash是512page类型,则进一步检查数据是否有效(也许是一个新的nandflash,没 有有效数据);否则,重新启动nandflash芯片,采用非512方式读取数据,并判断是否读正 确,如果读正确了,则对读到的数据进行CRC校验,否则,设定新的page号,即令I = 1+32, 然后判断当前需要读的page是否超过约定范围(第0到第10个block的每个block的第 一个page),约定范围可以是320 (即I最大不能超过320),也可以是640 (即I最大不能 超过640),约定范围越大,开机启动的时间会越慢,如果没有超过约定范围则进行下一轮尝 试,即对新的page I的读尝试;否则,结束。如果数据读取成功,则对读到的数据进行CRC校验,在此之前,也就是把数据 从nandflash的某个page读出来的过程中,同时会采用错误检查和纠正(ECC,Error Checking and Correcting)的方式做一个错误纠正,但是对于不同ECC算法,有的ECC算法 并不一定能准确地检查出错误的里德-索罗蒙(RS)码,所以在数据读取成功后,还需要进 行CRC校验来检查错误。如果CRC校验通过,认为已经获得了正确的nandflash物理参数 信息,退出尝试读取nandflash约定区域数据的操作。如果CRC校验结果显示错误,则设定新的page号,即令I = 1+32,进行下一轮尝 试,即对新的page I的读尝试。
如果在约定的范围尝试均失败,则退出尝试,返回尝试失败。二、关于步骤二中识别nandflash芯片的page类型的说明。目前 nandflash 芯片的 page 类型有四种512+16 ;2048+64 ;4096+128 ;4096+218。采用在不同的字节范围写入不同数据,然后分别读出写入的数据,比对在同一字 节范围写入和读出的数据的方式来对page类型进行判断。对于page的写入操作,512page 的nandflash芯片和非512page的nandflash芯片是一致的。page类型判断的具体流程如图4所示,包括组织一个数据样本,即组织一个page大小的数据,较佳地,可以按照目前一个 page最大为4096+218字节,组织一个4096+218字节(即4314字节)大小的数据样本。用M表示当前尝试判断page类型的次数,M初始值为1。分别在多个特定字节区域,即第0-527号字节区域、第528-2111号字节区域、第 2112-4313号字节区域,写入不同的数据内容,例如分别写入0X00、0X0f、0Xf0。然后,从第0号字节开始,连续读取4096+218个字节(即4314个字节)的数据 (如果nandflash芯片page没有那么大,将读到不定的数据,而不是OxfO),实际就是从第1 个字节开始,连续读取4314个字节的数据。字节一般都是从0开始编号,所以,从第0号字 节开始,连续读4314个字节,实际上是读第0号到第4313号字节。然后,进行下列判断判断从第42M-4313号字节区域读取到的数据是否为OxfO,如果是,则判定page 类型为数据区大小为4096字节、预留区大小为218字节类型的page,跳出判断流程;否则,判断从第2112-4223号字节区域读取到的数据是否为OxfO,如果是,则判定page 类型为数据区大小为4096字节、预留区大小为1 字节类型的page,跳出判断流程;否则,判断从第528-2111号字区域节读取到的数据是否为OxOf,如果是,则判定page类 型为数据区大小为2048字节、预留区大小为64字节类型的page,跳出判断流程;否则,判断从第0-527号字节区域读取到的数据是否为0x0,如果是,则判定page类型为 数据区大小为512字节、预留区大小为16字节类型的page,跳出判断流程;否则,令尝试的次数M = M+1,然后判断当前尝试的次数是否太多,即判断当前尝试的次 数M是否超过预设的阈值(具体值可以根据实际需要进行设置),如果是,则结束操作,返回 物理连接错误;否则,继续下一次尝试,即返回分别在第0-527号字节区域、第528-2111号 字节区域、第2112-4313号字节区域,写入不同的数据内容的步骤,并进行后续操作,以此 类推,直到识别出page类型,或者尝试的次数M超过预设的阈值,返回物理连接错误。其中,判断当前尝试的次数M是否超过预设的阈值的步骤也可以不执行。三、关于步骤三中识别nandflash芯片的物理结构的说明。本发明实施例识别nandflash芯片的物理结构是SLC物理结构还是MLC物理结 构,主要基于SLC物理结构的nandflash,对于每个page可以进行多次page的program写 操作,而MLC物理结构的nandflash,对于每个page只能进行单次page的program写操作。基于步骤二中已经识别出了 nandflash芯片的page类型,即确定了每个page的 数据区和预留区的大小,在步骤三中可以进行以下操作重新启动nandflash芯片;对任意一个page (假设是page I)的一部分数据区域(例如可以是前半个)进行 一次写操作,写入特定数据;
重新启动nandflash芯片;对该page I的另一部分数据区域(例如可以是后半个)进行一次写操作,写入特 定数据;重新启动nandflash芯片;将该page I的整个page的数据读出来;比较该page I的后半个数据区域的数据是否是写入的特定数据,如果是,则确定 该nandflash芯片是SLC物理结构的nandflash芯片;否则,确定该nandflash芯片是MLC 物理结构的nandflash芯片。四、关于步骤四中识别nandflash芯片每个block有多少个page的说明。本发明实施例基于nandflash芯片的block格式化特性(即按照输入的page号 所在的block来进行格式化),识别每个block有多少个page。目前,nandflash芯片每个block包括的page数目有五种16,32,64,128,256。本 发明实施例提供的识别nandflash芯片每个block包括的page数目的具体流程如图5所 示,包括格式化第0、64、1沘、256、512号?&86(即第一组特定?&86)所在的block ;向第31、63、127、255、511号page(即第二组特定page)写入特定数据,其中,向第 31、63、127、255、511号page写入的特定数据可以相同,也可以不相同;格式化第0号page所在的block,也就是说格式化第0号block (则第0号block 中的所有page均被格式化);需要说明的是,第0-15号page中的任一 page所在的block肯定是第0号block, 因此可以格式化第0-15号page中的任一 page所在的block ;读取第31号page的数据内容,比较读出的数据和写入该第31号page的数据,如 果相同,则说明第31号page不属于第0号page所在的block,因此可以确定每个block只 能有16个pages,结束判断;否则,读取第63号page的数据内容,比较读出的数据和写入该第63号page的数据,如 果相同,则说明第63号page不属于第0号page所在的block,但是第31号page属于第0 号page所在的block,因此可以确定每个block只能有32个pages,结束判断;否则,读取第127号page的数据内容,比较读出的数据和写入该第127号page的数据, 如果相同,则说明第127号page不属于第0号page所在的block,但是第63号page属于 第0号page所在的block,因此可以确定每个block只能有64个pages,结束判断;否则,读取第255号page的数据内容,比较读出的数据和写入该第255号page的数据, 如果相同,则说明第255号page不属于第0号page所在的block,但是第127号page属于 第0号page所在的block,因此可以确定每个block只能有127个pages,结束判断;否则,读取第511号page的数据内容,比较读出的数据和写入该第511号page的数据, 如果相同,则说明第511号page不属于第0号page所在的block,但是第255号page属 于第0号page所在的block,因此可以确定每个block只能有256个pages,结束判断;否 则,结束判断。五、关于步骤五中识别nandflash芯片包括多少个block的说明。由于在步骤四中已经对第0号page所在的block进行了格式化,因此,步骤五中
11可以不再对第0号page所在的block进行格式化。那么,确定nandflash芯片每个block包括的page数目之后,识别nandflash芯 片包括多少个block的具体流程参见图6,包括S601、格式化第0号page所在的block。S602、向第0号page写入数据,该数据的大小可以设置为512个字节,令参数i = 1。S603、根据每个block包括的page数目,格式化第512*i个block。S604、读取第0号page中的数据。S605、比较从第0号page中读取到的数据与写入该第0号page中的数据是否相 同,如果是,则执行步骤S606 ;否则,执行步骤S608。S606、令 i = i+l。S607、判断i是否小于阈值64,如果是,则执行步骤S603,否则结束。由于,目前还没有512*64 = 32768个block的nandflash,因此,可以判断i是否 小于64,如果今后出现了大于32768个block的nandflash,当然阈值也可以扩大,而不局 限于64。S608、确定 nandflash 芯片包括 512*i 个 block。六、关于步骤六中确定最佳timing的说明。本发明实施例使用事先设置的一些典型timing逐个进行尝试,尝试出一个能够 进行各种基本操作的较佳的timing参数。例如nandflash芯片的工作频率为:2M、4M、8M、12M、16M、24M、28M、32M、36M、40M 等等;elk的占空比可以是1 1、1 2、1 3、2 3等等。本发明实施例可以预先将nandflash芯片的工作频率和elk的占空比任意组合成 一个timing参数,得到多个timing参数,每个timing参数包括一个nandflash芯片的工 作频率,以及一个elk的占空比。预先按照nandflash芯片的工作频率的从低到高,对预先设置的多个timing参数 按照从低到高的顺序进行排序,其中,对于工作频率相同,占空比不同的timing参数的排 序,先后顺序无特定要求,可以任意排序。那么,确定nandflash芯片最佳timing参数的具体流程如图7所示,包括从最低的timing开始依次选择一个timing参数进行如下尝试,直到确定 nandflash芯片最佳timing参数使用当前选定的timing初始化nandflash控制器,并重新启动nandflash芯片;格式化第0号block,即第一个block (对于nandflash,任一 block被格式化以后, 该block里面的数据全部是Oxff);读取第0号block的数据;检测第0号block的数据是否全部是Oxff ;如果第0号block的数据不是Oxff,则说明读取数据失败,当前选定的timing 无效,如果之前记录有尝试成功的timing,则使用之前尝试成功的最高的timing作为 nandflash芯片最佳timing参数,结束尝试;如果第0号block的数据全是Oxff,则说明在当前选定的timing下,数据读取的操作可以成功,需要进一步判断数据写入的操作是否也可以成功,则向第0号block写入特 定数据;将第0号block的数据读出来,比较读出的数据和写入的数据;如果从第0号block读出的数据和写入第0号block的数据相等,则说明当前选 定的timing可以使用(写进去的数据和读出来的数据一致,才能说明在当前选定的timing 下读写都是成功的,该timing有效),并记录下来,然后采用下一个timing参数作为当前选 定的timing继续进行尝试;如果从第0号block读出的数据和写入第0号block的数据不相等,则说明当前 选定的timing无效,如果之前记录有尝试成功的timing,则使用之前尝试成功的最高的 timing作为nandflash芯片最佳timing参数,结束尝试。另外,在实际操作中,也可以不对预先设置的多个timing参数进行排序,可以将 这些timing参数逐一进行尝试,并记录尝试成功的timing参数,最后从尝试成功的timing 参数中,选择最高的timing参数(即nandflash芯片的工作频率最高)作为最为nandflash 芯片的最佳timing参数。其中,最高的timing参数可能有多个,也就是说,nandflash芯片 的工作频率最高的timing参数(其中每个timing参数的时钟占空比不同)可能有多个, 可以从中任意选择一个timing参数作为最佳timing参数。七、关于步骤七中记录识别出的nandflash芯片物理参数信息的说明。为了避免下一次继续采用本发明实施例提供的技术方案识别nandflash芯片的 物理参数信息造成的数据破坏,需要将已经识别出的nandflash芯片物理参数信息记录在 nandflash芯片预先约定好的区域。进一步,为了提高信息的安全可靠性,可以记录多份拷贝,比如,在前10个block 中,每个block的第0号page都记录识别出的nandflash芯片物理参数信息(nandflash 芯片一般只会坏一个block)。另外,为了进一步确保数据的正确性,可以采用ECC纠错和CRC检错的双重保护。下面介绍一下本发明实施例提供的系统。参见图8,本发明实施例提供的一种芯片参数的识别系统,包括初始判定单元21,用于在page类型识别单元22分别向nandflash芯片的多 个特定字节区域写入不同的数据之前,确定nandflash芯片的预先约定区域是否存在该 nandflash芯片的物理参数。page类型识别单元22,用于分别向nandflash芯片的多个特定字节区域写入不同 的数据,其中,特定字节区域是预先根据nandflash芯片的各种页page类型确定的;读取特 定字节区域中的数据,通过将读取到的数据与写入该特定字节区域中的数据进行比较,确 定nandflash芯片的page类型。物理结构识别单元23,用于重新启动nandflash芯片,向一个page的一部分数 据区域写入特定数据;重新启动nandflash芯片,向该page的另一部分数据区域写入特 定数据;重新启动nandflash芯片,读取该page的全部数据;比较从所述另一部分数据 区域读取到的数据,与向该部分数据区域写入的特定数据是否相同,如果是,则确定所述 nandflash芯片的物理结构为单级单元SLC物理结构;否则,确定所述nandflash芯片的物 理结构为多级单元MLC物理结构。
page数目识别单元对,用于对nandflash芯片的多个特定page所在的块block 进行格式化,其中,所述特定page是预先根据nandflash芯片每个block包括的page数目 的种类确定的;分别向特定page写入特定数据,然后格式化第0号page所在的block ;读 取特定page中的数据,通过将读取到的数据与所述特定数据进行比较,确定nandflash芯 片每个block包括的page数目。block数目识别单元25,用于识别nandflash芯片的block数目。timing参数识别单元沈,用于从预先设置的多个timing参数中选择满足闪存 nandflash芯片读写条件的timing参数;其中,timing参数满足nandflash芯片读写 条件,是指在采用该timing参数时,对该nandflash芯片进行的读、写操作均成功;从满 足nandflash芯片读写条件的timing参数中选择一个nandflash芯片工作频率最高的 timing参数,作为nandflash芯片的最佳timing参数。其中,初始判定单元21不是必需的。如果初始判定单元21不存在,page类型识 别单元22和物理结构识别单元23也可以独立工作;page数目识别单元M和block数目 识别单元25也可以独立工作;timing参数识别单元沈也可以独立工作。较佳地,参见图9,timing参数识别单元沈包括timing参数选择单元11,用于从预先设置的多个timing参数中选择满足 nandflash芯片读写条件的timing参数;其中,timing参数满足nandflash芯片读写条件, 是指在采用该timing参数时,对该nandflash芯片进行的读、写操作均成功。最佳timing参数确定单元12,用于从满足nandflash芯片读写条件的timing参 数中选择一个nandflash芯片工作频率最高的timing参数,作为nandflash芯片的最佳 timing 参数。较佳地,所述timing参数选择单元11,按照预先设置的多个timing参数的从低 到高的顺序,依次选择timing参数进行是否满足nandflash芯片读写条件的判断;其中,多 个timing参数的从低到高的顺序,是预先按照每个timing参数中的nandflash芯片工作 频率设置的。或者,所述timing参数选择单元11,从预先设置的多个timing参数中选择每个 timing参数,分别进行是否满足nandflash芯片读写条件的判断,记录满足nandflash芯片 读写条件的timing参数。较佳地,所述timing参数选择单元11包括确定当前timing参数单元111,用于从预先设置的多个时间timing参数中选择 timing参数,作为当前选择的timing参数。判断单元112,用于采用当前选择的timing参数初始化闪存nandflash芯片控制 器,并重新启动nandflash芯片;格式化第0号block,读取第0号block中的数据;当从第 0号block中读取到的数据为Oxff时,向第0号block写入特定数据,并再次读取第0号 block中的数据,否则,触发最佳timing参数确定单元12从记录的timing中选择最高的 timing作为nandflash芯片最佳timing参数,结束尝试。当从第0号block中再次读取到 的数据,与所述特定数据相同时,确定当前选择的timing参数为满足nandflash芯片读写 条件的timing参数,记录该timing参数,并触发确定当前timing参数单元111选择下一 timing参数作为当前选择的timing参数,继续进行判断,否则,触发最佳timing参数确定单元12从记录的timing中选择最高的timing作为nandflash芯片最佳timing参数,结
束尝试ο较佳地,参见图10,block数目识别单元25包括第一单元251,用于向第0号page写入数据,令参数i = 1。第二单元252,用于根据每个block包括的page数目,格式化第512*i个block。第三单元253,用于读取第0号page中的数据,比较读取到的数据与写入该第 0号page中的数据是否相同,如果是,则令i = i+Ι,然后触发第二单元252 ;否则,确定 nandflash 芯片包括 512*i 个 block。综上所述,本发明实施例通过遍历式的尝试,逐步识别出未知nandflash芯片的 各项物理参数,使得开发人员在一定程度上摆脱了对datasheet技术文档的依赖,通过将 识别出的物理参数信息保存在nandflash芯片上,厂家不用不断更新nandflash芯片的参数表。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
1权利要求
1.一种芯片参数的识别方法,其特征在于,该方法包括从预先设置的多个时间timing参数中选择满足闪存nandf Iash芯片读写条件的 timing 参数;其中,timing参数满足nandflash芯片读写条件,是指在采用该timing参数时,对该 nandflash芯片进行的读、写操作均成功;从满足nandflash芯片读写条件的timing参数中选择一个nandflash芯片工作频率 最高的timing参数,作为nandflash芯片的最佳timing参数。
2.根据权利要求1所述的方法,其特征在于,从预先设置的多个timing参数中选择满 足nandflash芯片读写条件的timing参数的步骤包括按照预先设置的多个timing参数的从低到高的顺序,依次选择timing参数进行是否 满足nandflash芯片读写条件的判断;其中,所述多个timing参数的从低到高的顺序,是预先按照每个timing参数中的 nandflash芯片工作频率设置的。
3.根据权利要求1所述的方法,其特征在于,从预先设置的多个timing参数中选择满 足nandflash芯片读写条件的timing参数的步骤包括从预先设置的多个timing参数中选择每个timing参数,分别进行是否满足nandf Iash 芯片读写条件的判断,记录满足nandflash芯片读写条件的timing参数。
4.根据权利要求1、2或3所述的方法,其特征在于,判断当前选择的timing参数满足 nandflash芯片读写条件的步骤包括采用当前选择的timing参数初始化闪存nandflash芯片控制器,并重新启动 nandflash Sj=^ ;格式化第ο号block,读取第0号block中的数据;当从第0号block中读取到的数据为Oxff时,向第0号block写入特定数据,并再次 读取第0号block中的数据;当从第0号block中再次读取到的数据,与所述特定数据相同时,确定当前选择的 timing参数为满足nandflash芯片读写条件的timing参数。
5.根据权利要求1所述的方法,其特征在于,该方法还包括分别向nandflash芯片的多个特定字节区域写入不同的数据,其中,所述特定字节区 域是预先根据nandflash芯片的各种页page类型确定的;读取特定字节区域中的数据,通过将读取到的数据与写入该特定字节区域中的数据进 行比较,确定nandflash芯片的page类型。
6.根据权利要求5所述的方法,其特征在于,确定nandflash芯片的page类型之后,该 方法还包括重新启动nandflash芯片,向一个page的一部分数据区域写入特定数据; 重新启动nandflash芯片,向该page的另一部分数据区域写入特定数据; 重新启动nandflash芯片,读取该page的全部数据;比较从所述另一部分数据区域读取到的数据,与向该部分数据区域写入的特定数据是 否相同,如果是,则确定所述nandflash芯片的物理结构为单级单元SLC物理结构;否则,确 定所述nandflash芯片的物理结构为多级单元MLC物理结构。
7.根据权利要求1所述的方法,其特征在于,该方法还包括对nandflash芯片的第一组特定page所在的块block进行格式化; 分别向第二组特定page写入特定数据,然后格式化第0号page所在的block ; 读取所述第二组特定page中的数据,通过将读取到的数据与所述特定数据进行比较, 确定nandflash芯片每个block包括的page数目;其中,所述第一组特定page和第二组特定page是预先根据nandflash芯片每个block 包括的page数目的种类确定的。
8.根据权利要求7所述的方法,其特征在于,确定nandflash芯片每个block包括的 page数目之后,该方法还包括步骤一向第0号page写入数据,令参数i = 1 ; 步骤二 根据每个block包括的page数目,格式化第512*i个block ; 步骤三读取第0号page中的数据,比较读取到的数据与写入该第0号page中的数 据是否相同,如果是,则令i = i+Ι,返回步骤二 ;否则,确定nandflash芯片包括512*i个 block。
9.根据权利要求1所述的方法,其特征在于,在从预先设置的多个timing参数中选择 满足nandflash芯片读写条件的timing参数之前,该方法还包括确定所述nandflash芯片的预先约定区域是否存在该nandflash芯片的物理参数。
10.一种芯片参数的识别系统,其特征在于,该系统包括timing参数识别单元,该 timing参数识别单元包括timing参数选择单元,用于从预先设置的多个timing参数中选择满足闪存nandflash 芯片读写条件的timing参数;其中,timing参数满足nandfash芯片读写条件,是指在采用 该timing参数时,对该nandflash芯片进行的读、写操作均成功;最佳timing参数确定单元,用于从满足nandflash芯片读写条件的timing参数中选 择一个nandflash芯片工作频率最高的timing参数,作为nandflash芯片的最佳timing 参数。
11.根据权利要求10所述的系统,其特征在于,所述timing参数选择单元,按照预先 设置的多个timing参数的从低到高的顺序,依次选择timing参数进行是否满足nandflash 芯片读写条件的判断;其中,所述多个timing参数的从低到高的顺序,是预先按照每个 timing参数中的nandflash芯片工作频率设置的。
12.根据权利要求10所述的系统,其特征在于,所述timing参数选择单元,从预先设置 的多个timing参数中选择每个timing参数,分别进行是否满足nandflash芯片读写条件 的判断,记录满足nandflash芯片读写条件的timing参数。
13.根据权利要求10、11或12所述的系统,其特征在于,所述timing参数选择单元包括确定当前timing参数单元,用于从预先设置的多个时间timing参数中选择timing参 数,作为当前选择的timing参数;判断单元,用于采用当前选择的timing参数初始化闪存nandflash芯片控制器,并 重新启动nandflash芯片;格式化第0号block,读取第0号block中的数据;当从第0号 block中读取到的数据为Oxff时,向第0号block写入特定数据,并再次读取第0号block中的数据;当从第0号block中再次读取到的数据,与所述特定数据相同时,确定当前选择 的timing参数为满足nandflash芯片读写条件的timing参数。
14.根据权利要求10所述的系统,其特征在于,该系统还包括page类型识别单元,用于分别向nandflash芯片的多个特定字节区域写入不同的数 据,其中,所述特定字节区域是预先根据nandflash芯片的各种page类型确定的;读取特定 字节区域中的数据;通过将从特定字节区域中读取到的数据与写入该特定字节区域中的数 据进行比较,确定nandflash芯片的page类型。
15.根据权利要求14所述的系统,其特征在于,该系统还包括物理结构识别单元,用于重新启动nandflash芯片,向一个page的一部分数据区域写 入特定数据;重新启动nandflash芯片,向该page的另一部分数据区域写入特定数据;重 新启动nandflash芯片,读取该page的全部数据;比较从所述另一部分数据区域读取到的 数据,与向该部分数据区域写入的特定数据是否相同,如果是,则确定所述nandflash芯片 的物理结构为单级单元SLC物理结构;否则,确定所述nandflash芯片的物理结构为多级单 元MLC物理结构。
16.根据权利要求10所述的系统,其特征在于,该系统还包括page数目识别单元,用于对nandflash芯片的多个特定page所在的块block进行格 式化,其中,所述特定page是预先根据nandflash芯片每个block包括的page数目的种类 确定的;分别向特定page写入特定数据,然后格式化第0号page所在的block ;读取特定 page中的数据,通过将读取到的数据与所述特定数据进行比较,确定nandflash芯片每个 block包括的page数目。
17.根据权利要求16所述的系统,其特征在于,该系统还包括block数目识别单元,该 block数目识别单元包括第一单元,用于向第0号page写入数据,令参数i = 1 ;第二单元,用于根据每个block包括的page数目,格式化第512*i个block ;第三单元,用于读取第0号page中的数据,比较读取到的数据与写入该第0号page中 的数据是否相同,如果是,则令i = i+Ι,然后触发第二单元;否则,确定nandflash芯片包 括 512*i 个block。
18.根据权利要求10所述的系统,其特征在于,该系统还包括初始判定单元,用于在所述timing参数识别单元从预先设置的多个timing参数中选 择满足nandflash芯片读写条件的timing参数之前,确定所述nandflash芯片的预先约定 区域是否存在该nandflash芯片的物理参数。
全文摘要
本发明公开了一种芯片参数的识别方法及系统,用以识别nandflash芯片的物理参数。本发明提供的一种芯片参数的识别方法包括从预先设置的多个时间timing参数中选择满足闪存nandflash芯片读写条件的timing参数;其中,timing参数满足nandflash芯片读写条件,是指在采用该timing参数时,对该nandflash芯片进行的读、写操作均成功;从满足nandflash芯片读写条件的timing参数中选择一个nandflash芯片工作频率最高的timing参数,作为nandflash芯片的最佳timing参数。
文档编号G11C16/20GK102103890SQ20091024288
公开日2011年6月22日 申请日期2009年12月18日 优先权日2009年12月18日
发明者凌明 申请人:无锡中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1