一种时序控制方法及nandflash控制器的制造方法

文档序号:6487811阅读:245来源:国知局
一种时序控制方法及nand flash控制器的制造方法
【专利摘要】本发明公开了一种时序控制方法及NAND?FLASH控制器,涉及存储器控制领域,该NAND?FLASH控制器包括至少一层状态机,状态机包括至少一个操作模块和至少一个时序控制模块,时序控制模块与操作模块的启动端或终止端相连;时序控制模块用于设置延时时长并完成等待;操作模块根据所述状态机发出的相应指令进行操作。本发明用于满足不同NAND?FLASH的时序要求,提高NAND?FLASH的读写速度。
【专利说明】—种时序控制方法及NAND FLASH控制器
【技术领域】
[0001]本发明涉及存储器控制领域,特别涉及一种时序控制方法及NAND FLASH控制器。【背景技术】
[0002]NAND型快闪存储器(NAND FLASH)具有容量较大,改写速度快等优点,适用于大量数据的存储,因而得到了越来越广泛的应用,如嵌入式产品中包括数码相机、便携式多媒体设备、U盘等。NAND FLASH通过NAND FLASH控制器写入、读取数据。NAND FLASH控制器向NAND FLASH发送命令、地址以及收发数据等操作,需要通过状态机来完成。
[0003]状态机的工作流程由附图1所示。需特别说明的是,所有状态机流程图中的过程环节是可选的。现有的NAND FLASH控制器中的底层状态机流程如下:
[0004]步骤101:开始发送命令。
[0005]步骤102:开始发送地址。
[0006]步骤103:判断是否继续发送地址。当判断结果为是时,转到步骤102,当判断结果为否时,转到步骤104。
[0007]步骤104:判断是否等待忙/闲就绪。当判断结果为是时,转到步骤105,当判断结果为否时,转到步骤106。
[0008]步骤105:等待忙/闲就绪。
[0009]步骤106:发送/接收地址。
[0010]步骤107:结束。
[0011]现有技术中,状态机完成发送命令、地址和数据等环节的时间间隔是固定的,一旦设定则无法调整。现在市面上量产的NAND FLASH的时序基本都是以绝对时间(单位为纳秒,ns)为单位的最小延时。这些时序需求的特点是:1、每款NAND FLASH的最小时序需求可能会有几十种之多;2、这些时序需求与设备工作频率无关,这些时序是固定的;3、对于同一个时序需求,不同的NAND FLASH之间差异很大,从几十纳秒到几百纳秒不等。
[0012]为解决不同的NAND FLAH的时序要求,现有技术是在参考所有NAND FLASH时序需求后给出一个宽松的值,并转化为固定的周期数固定在控制器内部等待。比如用tADL表述最后一个地址到第一个数据的等待时间,现有的NAND FLASH设备的tADL范围是45纳秒到300纳秒之间。为了兼容所有的NAND FLASH设备,那么NAND FLASH控制器的tADL应该在300纳秒以上。按照目前NAND FLASH控制器的最大工作频率50MHz计算,NAND FLASH控制器在状态机发送最后一个地址后,要等待15个周期以上。现有技术是在tADL处插入一个固定的宽松的周期(比如16个周期或者32个周期)。
[0013]现有技术的缺点是:1、如果NAND FLASH控制器的工作频率仍为50MHz,而有的NAND FLASH设备的tADL很小,则等待时间过长,影响NAND FLASH设备读写速度;2、如果有新的NAND FLASH设备的tADL时序超过固定的等待周期,则只能通过降低NAND FLASH控制器工作频率来兼容NAND FLASH设备,影响了 NAND FLASH设备的读写速度;3,如果有更快的NAND FLASH设备,由于存在时序瓶颈,NAND FLASH控制器的工作频率无法提高。
【发明内容】

[0014]本发明的目的是解决现有的NAND FLASH控制器的时序控制方法无法同时兼顾NAND FLASH兼容性和速度。
[0015]为实现本发明的目的,本发明实施例提供一种时序控制方法,所述方法应用于NAND FLASH控制器,所述NAND FLASH控制器包括至少一层状态机,所述方法包括以下步骤:在相应操作指令之前设置延时时长;进行等待;在等待结束之后,进行相应的操作。
[0016]本发明实施例还提供一种NAND FLASH控制器,所述NAND FLASH控制器包括至少一层状态机,所述状态机包括至少一个操作模块、至少一个时序控制模块,时序控制模块与操作模块的启动端或终止端相连,每相邻两个操作模块之间只有一个时序控制模块;操作模块用于根据状态机发出的相应指令进行操作;时序控制模块用于设置延时时长并完成等待。
[0017]按照本发明实施例提供的方法,解决了现有的NAND FLASH控制器的时序控制方法无法调整时序,本发明实施例提供的方法对大多数NAND FLASH的兼容性有了很大改善,也减少了部分NAND FLASH等待时间,提高了 NAND FLASH的速度。
[0018]按照本发明实施例提供的装置,解决了现有的NAND FLASH控制器无法调整时序,本发明实施例提供的装置对大多数NAND FLASH的兼容性有了很大改善,也减少了部分NANDFLASH等待时间,提高了 NAND FLASH的速度。
【专利附图】

【附图说明】
[0019]图1为现有的NAND FLASH控制器中的底层状态机流程图;
[0020]图2为本发明实施例提供的NAND FLASH控制器的时序控制方法流程图;
[0021]图3为本发明实施例提供的NAND FLASH控制器的时序控制方法的详细流程图;
[0022]图4为现有的NAND FLASH控制器结构示意图;
[0023]图5为本发明实施例提供的NAND FLASH控制器结构示意图;
[0024]图6为本发明实施例提供的优选NAND FLASH控制器结构示意图;
[0025]图7为本发明实施例提供的NAND FLASH控制器中时序控制模块结构示意图;
[0026]图8为本发明实施例提供的NAND FLASH控制器中时序控制模块中等待单元的结构图。
【具体实施方式】
[0027]下面将结合各个附图对本发明实施例技术方案的主要实现原理、【具体实施方式】及其对应能够达到的有益效果进行详细地阐述。
[0028]实施例一
[0029]本发明实施例一这里提出一种时序控制方法。如图2所示,具体过程如下述:
[0030]步骤S201,在相应操作之前设置延时时长。
[0031]其中,NAND FLASH发送命令、地址、数据等操作都是由状态机实现的,在进行完一个操作之后,根据状态机发出的命令进入下一个操作,本发明实施例一在进行相应的操作之前,增加设置延时时长。[0032]步骤S202,进行等待;
[0033]其中,等待期间,NAND FLASH控制器无法发出相应的操作指令。
[0034]步骤S203,在等待结束之后,进行相应的操作。
[0035]等待的时长为设置的延时时长,等待结束之后,NAND FLASH设备根据状态机发出的相应操作指令进行相应的操作。
[0036]具体的,所述相应操作为发送命令、发送地址、发送接收数据、等待忙闲就绪的一种或几种。
[0037]具体的,所述设置的延时时长以周期数表示。
[0038]具体的,所述周期数的值为O或2的指数。
[0039]具体的,所述设置延时时长可以一次性配置
[0040]下面结合附图3,对本发明实施例提供的NAND FLASH控制器的时序控制方法做更进一步的描述:
[0041 ] 步骤S301,进入发送命令前等待。
[0042]步骤S302,等待结束以后,开始发送命令。
[0043]步骤S303,进入发送命令和发送地址之间等待。
[0044]步骤S304,等待结束之后,开始发送地址。
[0045]步骤S305,进入发送多地址之间等待。
[0046]步骤S306,判断是否需继续发送地址。如果是,转步骤S304 ;否则转步骤S307。
[0047]步骤S307,判断是否需等待忙/闲就绪。如果是,转步骤S308 ;否则转步骤S309。
[0048]步骤S308,等待忙/闲就绪。
[0049]步骤S309,进入发送/接收数据前等待。
[0050]步骤S310,等待结束后,开始发送或接收数据。
[0051]步骤S311,进入发送/接收数据后等待。
[0052]实施例二
[0053]本发明实施例二这里提出一种NAND FLASH控制器,其结构如下述:
[0054]所述NAND FLASH控制器包括至少一层状态机,所述状态机包括至少一个操作模块
1、至少一个时序控制模块2,时序控制模块2与操作模块I的启动端或终止端相连,每相邻两个操作模块I之间只有一个时序控制模块2 ;时序控制模块2用于设置延时时长并完成等待;操作模块I用于根据状态机发出的相应指令进行操作。
[0055]具体的,当时序控制模块2在两个操作模块I之间时,时序控制模块2 —端与前一个操作模块I的终止端相连,另一端与后一个操作模块I的启动端相连。
[0056]具体的,如图6所示,所述操作模块I包括命令操作模块11、地址操作模块12、读写判断模块13、数据操作模块14的一种或几种;所述命令操作模块11用于发送命令;所述地址操作模12块用于发送地址;所述读写判断模块13用于判断等待忙闲就绪;所述数据操作模块14用于发送或接收数据。
[0057]具体的,所述时序控制模块2设置的延时时长以周期数表示。
[0058]具体的,所述周期数为O或2的指数。
[0059]具体的,所述时序控制模块2包括配置单元21和等待单元22 ;所述配置单元21用于为所述时序控制模块I设置延时时长;所述等待单元22用于依据所述配置单元21设置的延时时长完成等待。
[0060]具体的,所述等待单元22包括时加法器221、触发器222、比较器223、反相器224 ;所述加法器221用于接收所述触发器输入的值并累加设定值,输出给所述触发器;所述触发器222用于根据所述时钟信号将所述加法器221输入的值输出给所述加法器221和所述比较器223 ;所述比较器223,用于将所述配置单元21输入的延时时长与所述触发器222输入的值进行比较,当所述触发器222输入的值等于所述延时时长时,输出延时完成信号以触发所述操作模块I,并使所述触发器222停止工作;所述反相器224,用于将接收的操作模块I输入的信号反相后输出给所述触发器222。
[0061]下面结合附图4、5、6、7、8,对本发明实施例提供的NAND FLASH控制器做更进一步的描述:
[0062]现有技术中,如图4所示,状态机发出相应的操作指令都是由相应的操作模块I完成的,一个状态机可能有多个操作模块1,所述多个操作模块I可以称为操作模块1A、操作模块1B、操作模块1C,并以此类推。操作模块1A、操作模块1B、操作模块IC可以是相同的操作模块I (比如都是数据操作模块),也可以是不同的操作模块I (比如是数据操作模块和地址操作模块)。
[0063]如图5、6所示,本发明实施例提供的装置包括的时序控制模块2可以是一个,也可以是多个。当所述装置包括的时序控制模块2有多个时,多个时序控制模块2可以称为时序控制模块2A、时序控制模块2B、时序控制模块2C,并以此类推。
[0064]如图6所示,时序控制模块2A设定延时时长,并完成相应的等待,命令操作模块11发出命令;时序控制模块2B设定延时时长,并完成相应的等待,地址操作模块12进行地址操作,该地址可以是一个,也可以是多个地址,多个地址操作模块12之间可以插入时序控制模块2B ;时序控制模块2C设定延时时长,读写判断模块13进行读写判断,用于判断等待忙闲就绪;时序控制模块2D设定延时时长,数据操作模块14进行数据读写。时序控制模块2的配置情况可以如下:
[0065]对于异步NAND FLASH和高速Toggle NAND FLASH时,在命令操作模块11之前的时序控制模块2配置的延时时长可以为零;
[0066]对于异步NAND FLASH,命令操作模块11和地址操作模块12之间的时序控制模块2可以配置为零;
[0067]对于异步NAND FLASH和高速Toggle NAND FLASH时,在多个地址操作模块12之间的时序控制模块2配置的延时时长可以为零;
[0068]对于异步NAND FLASH和高速Toggle NAND FLASH时,在数据操作模块14之后的时序控制模块2配置的延时时长可以为零。
[0069]因为NAND FLASH控制器需要适用于各种不同的NAND FLASH,因此在设置各种延时时长时需综合考虑各种NAND FLASH的需求。例如,可配置的延时时长都可以为0,以兼容频率较低的状态机结构。不会影响频率较低的NAND FLASH的时序,不会因为状态机空跑而损失时间。针对每种延时时长,可配置的延时时长最大值可以依据目前所有的NAND FLASH相应时序的最坏情况来设计,即可以按照目前所有NAND FLASH所需的延时时长中的最大延时时长来设计,比如,工作频率可以按照目前最快的200Mhz的工作频率来计算,以保证能有一定的裕量。可配置的等待周期可以统一设计成2的指数倍(1、2、4、8、16.......),这样可以简化电路结构。在实际应用中也较为方便,可以在NAND FLASH控制器开始工作之前配置好所述时序控制模块2的延时时长,之后该NAND FLASH控制器在进行所有的操作时可以不用再分别配置,省略操作步骤。
[0070]图7为所述NAND FLASH控制器中时序控制模块2的结构示意图,时序控制模块2包括配置单元21和等待单元22,配置单元21可以设置延时等待时间,等待单元22可以根据设置的延时时长完成等待。
[0071]图8为所述NAND FLASH控制器中时序控制模块2中的等待单元22的结构图。等待单元22包括加法器221、触发器222、比较器223和反相器224。其中,本发明实施例所保护的等待单元22不限于该具体实施例的结构,所有与本发明实施例的思想相类似的电路结构也在本发明的保护范围之内。
[0072]加法器221用于接受所述触发器222输出的值并累加设定值后输出给所述触发器222。当有时钟信号到来时,可以是指时钟信号的上升沿到来时,触发器222向加法器221输入一个值,该值为上一个时钟信号到来时加法器221输出给触发器222的值,加法器221将该值进行累加,可以累加一个设定值,例如,该设定值可以是1,即C = A+1。加法器221的输入端(即图8中的A端与触发器222的输出端(即图8中的Q端)相连,输出端(即图8中的C端)与触发器222的信号输入端(即图8中的D端)相连。例如,加法器221的A端接口可以是并行的数据线,根据数据线的数目来决定加法器221接收的值,同样,加法器221的C端、触发器222的Q端及D端接口也可以是并行的数据线,A端、、C端、D端及Q端所用的数据线的数目相等。
[0073]触发器222用于根据时钟信号将所述加法器221输入的值输出给所述加法器221和所述比较器223。
[0074]加法器221将接收的触发器222输入的值加1,即C = A+1,有时钟信号带来时,C的结果就会从触发器222的输出端Q端输出。如此,每到来一个时钟信号,到来的时钟信号可以是指时钟信号的上升沿,触发器222将上次接收的加法器221输出的值输出给比较器223及加法器221,加法器221接收到该值后将该值加1,再输出给触发器222。触发器222的时钟信号端(即图8中的CLK端)与所述时钟信号产生模块的时钟信号输出端相连,该时钟信号与所述状态机的时钟信号是同一时钟信号。触发器222的输出端与比较器223的第一输入端(即图8中的Y端)相连。触发器222的异步复位端(即图8中的RST端)与反相器224的输出端相连,触发器222的使能端(即图8中的ENA端)与比较器223的第二输出端(即图8中的GE端)相连。
[0075]当RST输入为低电平时,触发器222的Q端输出为0,RST端输入为高电平时,触发器222才会工作。ENA为高电平,及RST端为高电平,触发器222正常工作,当ENA为低电平,及RST端为高电平,触发器222停止工作,其Q端会保持原来的数据不变,即,直到触发器222重新开始工作时自动复位清零。
[0076]比较器223用于将所述配置单元21输入的延时时长与所述触发器222输入的值进行比较,当所述触发器222输入的值等于所述延时时长时,输出延时完成信号以触发所述操作模块,并使所述触发器222进行清零操作。比较器223的第二输入端(即图8中的X端)与所述配置单元21相连,该配置单元21用于为不同的时序控制模块2设置延时时长。每到来一个时钟信号,则D触发器将接收的加法器221输入的值送入比较器223。当经过N个时钟周期后,比较器223的Y端接收的值与X端已配置的值相等,使比较器223输出延时完成信号,例如,在Y端的值小于X端的值时,比较器223的E端可以输出低电平信号,当Y端的值等于X端的值时,比较器223的E端可以输出高电平信号,即,该延时完成信号可以是E = I的高电平信号。当X端数据大于等于Y端数据时,GE端可以输出第二控制信号,例如该第二控制信号为高电平信号,当X端数据小于Y端数据时,GE端可以输出第一控制信号,例如该第一控制信号为低电平信号。
[0077]比较器223的第一输出端(即图8中的E端)与相应操作模块I启动端或结束端相连。若比较器223与某操作模块I的启动端相连,则当比较器223输出延时完成信号时,该操作模块I根据该延时完成信号开始启动相应操作。如果比较器223与操作模块I的结束端相连,则当比较器223输出延时完成信号时,状态机结束整个操作过程。
[0078]当比较器223输出一个延时完成信号时,表不时序控制模块2 —次操作完毕,加法器221、触发器222及比较器223保持当前状态不变。当再次打开该时序控制模块2时,力口法器221、触发器222及比较器223可以自动清零,开始重新累加。
[0079]反相器224用于将接收的操作模块I输入的信号反相后输出给所述触发器222。反相器224的输入端与相应操作模块I相连。
[0080]所述操作模块I在操作完成时,可以输出一个脉冲给反相器224,例如可以输入高电平脉冲,反相器224将这个高电平脉冲反相后变为一个低电平脉冲,输出给触发器222作为对触发器222的复位信号。即,当命令操作模块11,地址操作模块12,数据操作模块14或读写判断模块13处理完成,需要进行时序延时时,会给等待单元22输入一个高电平脉冲,作为等待单元22的复位信号,以启动等待单元22。以需8周期的延时时长为例。等待单元22启动时(即操作模块I向反相器224输入高电平脉冲信号),触发器222的Q端为0,E = O, GE = I,触发器222的ENA使能有效,可正常完成累加输出工作。当其Q端累加到8时,E = 1,GE = 1,比较器223的E端向操作模块I输出延时完成信号;当Q端继续累加到9时,E = 0,GE = 0,比较器223输出延时完成信号结束(即延时完成信号结束保持了一个周期的高电平),此时触发器222的ENA使能无效,无论再来多少个时钟信号,触发器222的Q端的值会一直保持为9。E = O, GE = O这一状态会一直持续,直到下一次需要启动等待单元22时,Q端才会复位清零。
[0081]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应当视为本发明的保护范围。
【权利要求】
1.一种时序控制方法,其特征在于,所述方法包括以下步骤: 在相应操作指令之前设置延时时长; 进行等待; 在等待结束之后,进行相应的操作。
2.根据权利要求1所述的方法,其特征在于,所述相应操作为发送命令、发送地址、发送接收数据、等待忙闲就绪中的一种或几种。
3.根据权利要求1、2任何一项所述的方法,其特征在于,设置的所述延时时长以周期数表示。
4.根据权利要求3所述的方法,其特征在于,所述周期数的值为O或2的指数。
5.根据权利要求1所述的方法,其特征在于,所述 设置延时时长可以一次性配置。
6.一种用于实现权利要求1所述方法的NAND FLASH控制器,所述NAND FLASH控制器包括至少一层状态机,其特征在于,所述状态机包括至少一个操作模块和至少一个时序控制模块,时序控制模块与操作模块的启动端或终止端相连; 所述时序控制模块用于设置延时时长并完成等待; 所述操作模块用于根据所述状态机发出的相应指令进行操作。
7.根据权利要求6所述的NANDFLASH控制器,其特征在于,每相邻两个所述操作模块之间只有一个时序控制模块;所述时序控制模块一端与前一个操作模块的终止端相连,另一端与后一个操作模块的启动端相连。
8.根据权利要求6所述的NANDFLASH控制器,其特征在于,所述操作模块包括命令操作模块、地址操作模块、数据操作模块、读写判断模块中的一种或几种;其中, 所述命令操作模块用于发送命令; 所述地址操作模块用于发送地址; 所述数据操作模块用于发送或接收数据; 所述读写判断模块用于判断等待忙闲就绪。
9.根据权利要求6、7、8任何一项所述的NANDFLASH控制器,其特征在于,所述时序控制模块设置的所述延时时长以周期数表示。
10.根据权利要求9所述的NANDFLASH控制器,其特征在于,所述周期数为O或2的指数。
11.根据权利要求6所述的NANDFLASH控制器,其特征在于,所述时序控制模块包括配置单元和等待单元;所述配置单元用于为所述时序控制模块设置延时时长;所述等待单元用于依据所述配置单元设置的延时时长完成等待。
12.根据权利要求11所述的NANDFLASH控制器,其特征在于,所述等待单元包括加法器、触发器、比较器和反相器; 所述加法器用于接收所述触发器输入的值并累加设定值,输出给所述触发器; 所述触发器用于根据时钟信号将所述加法器输入的值输出给所述加法器和所述比较器; 所述比较器,用于将所述配置单元输入的延时时长与所述触发器输入的值进行比较,当所述触发器输入的值等于所述延时时长时,输出延时完成信号以触发所述操作模块,并使所述触发器停止工作;所述反相器,用于将接收的操作模块输入的信号反相后输出给所述触发器。
【文档编号】G06F13/16GK103593312SQ201210287765
【公开日】2014年2月19日 申请日期:2012年8月13日 优先权日:2012年8月13日
【发明者】阮航, 庞成章, 赵天亮, 唐杰 申请人:炬力集成电路设计有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1