专利名称:一种访问与非型闪存的系统及方法
技术领域:
本发明涉及闪存技术,尤指一种访问与非型闪存(NAND Flash)的系统及方法。
背景技术:
对NAND Flash的访问通常包括三个周期命令周期、执行周期和状态周期。在命令周期中,NAND Flash接收来自控制器的执行操作的命令;在执行周期中,NAND flash执行接收到的命令;在状态周期中,控制器从NANDFlash读取命令执行的结果。
对NAND Flash的基本操作有读操作、擦除操作和编程操作。操作过程分别是执行读操作时,控制器在命令周期向NAND Flash发出读命令,NANDFlash在执行周期将要读取的页读出,在状态周期控制器就可以从NANDFlash读到数据;执行擦除操作时,控制器在命令周期向NAND Flash发出擦除命令,NAND Flash在执行周期将要擦除的块擦除,在状态周期控制器判断擦除是否成功;执行编程操作时,控制器在命令周期向NAND Flash发出编程命令并将要编程的数据发给NAND Flash,NAND Flash在执行周期执行编程操作将数据写到存储单元,在状态周期控制器判断编程是否完成。
图1是现有对NAND Flash操作的系统拓扑结构示意图,如图1所示,该系统包括控制器和NAND Flash,NAND Flash与控制器之间通过输入/输出(I/O)数据信号、控制信号和片选信号连接,各片NAND Flash的I/O数据信号和控制信号是共享的,而每片NAND Flash的片选信号是独立的。图1中包括一片控制器,N片NAND Flash,其中NAND Flash_1、NAND Flash_2、…、NAND Flash_n均通过共享的I/O信号和控制信号与控制器相连接,NANDFlash_1、NAND Flash_2……NAND Flash n分别通过各自的片选信号即片选信号1、片选信号2……片选信号n与控制器连接。
当控制器要访问某片NAND Flash时,控制器会发出针对该片NANDFlash的片选信号,比如控制器需要从NAND Flash_2读取数据时,控制器发出片选信号2即片选信号2有效,然后通过控制信号线向NAND Flash_2发出读取命令,接着进入执行周期,直到状态周期控制器再将数据读出。如果控制器还需要从NAND Flash_n中读取数据,只能是在控制器从NAND Flash_2中读取完数据之后,再重复上面的读取过程从NAND Flash_n中读取数据。也就是说,控制器对自身连接的多片NAND Flash是采用顺序访问的方式进行访问的,如图2所示,图2是现有访问NAND Flash的过程示意图。
这种对多片NAND Flash顺序访问的方法对控制器的要求比较简单,而且要增加NAND Flash的数量时扩展比较简单,结构简单。现有方法虽然结构比较简单,控制器也比较容易实现,但是,由于控制器对自身连接的多片NAND Flash是采用顺序访问方式,因此,在对存储容量要求尽可能大时,严重降低了控制器对NAND Flash的访问速度,也就是说无论控制器连接单片还是多片NAND Flash,性能都只有单片的性能,从而难以满足高性能大容量的设备需求。
发明内容
有鉴于此,本发明实施例的目的在于提供一种访问与非型闪存的系统及方法,能够提高对NAND Flash的访问速度,满足高性能大容量设备的需求。
为达到上述目的,本发明实施例的技术方案具体是这样实现的一种访问与非型闪存NAND Flash的系统,包括控制器和至少两片与非型闪存;每一个与非型闪存与所述控制器之间通过输入/输出数据信号、控制信号和片选信号连接,每一个与非型闪存的输入/输出数据信号和控制信号是共享的,而每一个与非型闪存的片选信号是独立的;所述控制器检测所述与非型闪存的状态,并在所述与非型闪存中的一个处于执行周期时,所述控制器向所述与非型闪存中的其它需要访问的NANDFlash芯片发出操作命令。
一种访问与非型闪存的方法,在包括控制器和至少两片NAND Flash的系统中,该方法包括控制器检测与非型闪存的状态;在所述与非型闪存中的一个处于执行周期时,对应控制器向自身连接的与非型闪存中的其它需要访问的芯片发出操作命令。
由上述技术方案可见,本发明实施例通过对NAND Flash的表示NANDFlash所处访问周期的状态的检测,在NAND Flash处于执行周期时,控制器向自身连接的其它需要访问的NAND Flash芯片发出操作命令,将多片NANDFlash的执行周期重叠起来即实现多片NAND Flash并行执行操作命令,从而缩短了控制器对NAND Flash的访问延时,提高了访问速度。
图1是现有对NAND Flash操作的系统拓扑结构示意图;图2是现有访问NAND Flash的过程示意图;图3是本发明对NAND Flash操作的系统拓扑结构实施例一的示意图;图4是本发明对NAND Flash操作的系统拓扑结构的实施例二的示意图;图5是本发明访问NAND Flash的过程的实施例的示意图;图6是本发明对NAND Flash操作的系统拓扑结构的实施例三的示意图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
图3是本发明对NAND Flash操作的系统拓扑结构的实施例一示意图,如图3所示,本发明系统包括控制器和两片NAND Flash,各NAND Flash与控制器之间通过I/O数据信号、控制信号、状态信号和片选信号连接,各片NAND Flash的I/O数据信号和控制信号是共享的,而每片NAND Flash的状态信号和片选信号是独立的。图3中包括一片控制器,两片NAND Flash,其中NAND Flash_1和NAND Flash_2通过共享的I/O信号和控制信号与控制器相连接,NAND Flash_1和NAND Flash_2分别通过各自的片选信号即片选信号1、片选信号2,状态信号即状态信号1和状态信号2与控制器连接。
在图3所示的包括控制器和至少两片与非型闪存NAND Flash的系统中,本发明访问NAND Flash的方法包括控制器检测NAND Flash的状态,在NAND Flash中的一个NAND Flash处于执行周期时,对应控制器向自身连接的NAND Flash中的其它需要访问的NAND Flash芯片发出操作命令。下面举例来详细说明。
当控制器要访问某片NAND Flash时,控制器会发出针对该片NANDFlash的片选信号,比如控制器需要从NAND Flash_2读取数据时,控制器发出片选信号2即片选信号2有效,然后通过控制信号线向NAND Flash_2发出读取命令,接着NAND Flash_2进入执行周期,此时,NAND Flash_2会向控制器输出状态信号以表示NAND Flash2进入执行周期;在控制器通过状态信号检测到NAND Flash2进入执行周期时,如果控制器需要访问其它NAND Flash,如从NAND Flash_1读取数据,那么,控制器可以发出片选信号1即片选信号1有效,然后通过控制信号线向NAND Flash_1发出读取命令,接着NAND Flash_1进入执行周期,此时,同样NAND Flash_1会向控制器输出状态信号以表示NAND Flash_1进入执行周期。
1)NAND Flash的状态可以通过检测其专门用于指示NAND Flash状态的闲/忙(R/B,Ready/Busy)引脚的信号来获知。R/B信号的初始状态为高电平,表示NAND Flash可以接受命令即处于命令周期,对于不同的命令状态周期有不同的含义对于读命令,当控制器发出读命令后,R/B信号由高电平变低电平(Busy),表示命令正在执行即进入执行周期,当R/B信号由低电平变为高电平(Ready)后,表示数据已从NAND Flash的内部读出,控制器可以通过NAND Flash的I/O口读出所要的数据,这里将R/B信号变高后表示数据可以读出的状态称为状态周期;对于编程操作(也就是写操作),命令周期不只包括给NAND Flash发出编程命令,还包括将编程的数据发给NANDFlash,然后NAND Flash的R/B信号由高电平变为低电平,表示NAND Flash内部正在将接收到的数据写到内部的存储单元中,当R/B信号由低电平变为高电平后,表示NAND Flash内部操作完毕,控制器可以将编程操作的状态读出并判断这次编程是否正确完成;对于擦除操作,当控制器发出擦除命令后,R/B信号由高电平变为低电平,表示NAND Flash内部正在擦除,当R/B信号由低电平变为高电平后,表示内部擦除完毕,控制器可以将擦除操作的状态读出并判断这次擦除是否成功。
可见,本文中将三种基本操作的执行过程分成三种状态是根据R/B信号来区分的,R/B信号为高电平时表示NAND Flash可以接受命令即处于命令周期,当R/B信号由高电平变为低电平时,表示NAND Flash正在处理命令即处于执行周期,当R/B信号由低电平变为高电平时,表示命令已执行完毕,控制器可以从NAND Flash读取状态或数据即处于状态周期。
2)另外,对NAND Flash的状态的检测也可以通过专门查询状态的命令来查询,如通过读取状态寄存器命令(Read Status Register),此时控制器与NAND Flash之间不需要专门的状态线连接,只需通过专用的读取状态命令就可以读到NAND Flash的状态。
直到NAND Flash进入状态周期,控制器再将对应NAND Flash的数据读出。需要说明的是,在某NAND Flash进入状态周期时,会通过状态信号告知控制器,如果此时控制器正在对其它NAND Flash进行访问如处于命令周期,控制器可以中断对其它NAND Flash的访问,来处理该进入状态周期的NAND Flash;也可以在获知其它NAND Flash进入执行周期后,处理该进入状态周期的NAND Flash。也就是说,控制器对自身连接的多片NANDFlash是采用并行访问的方式进行访问的。
因为执行周期相对于命令周期来说很长,而这段时间内NAND Flash是不占用系统总线的,本发明中,控制器正是利用执行周期这段时间向其它NAND Flash芯片发出操作命令,这样,将多片NAND Flash的执行周期重叠起来即实现多片NAND Flash并行执行操作命令,从而减小了控制器对NAND Flash的访问延时,提高了访问速度。
图4是本发明对NAND Flash操作的系统拓扑结构的实施例二的示意图,如图4所示,本实施例系统包括一片控制器和N片NAND Flash,各NAND Flash与控制器之间通过I/O数据信号、控制信号、状态信号和片选信号连接,各片NAND Flash的I/O数据信号和控制信号是共享的,而每片NAND Flash的状态信号和片选信号是独立的。其中NAND Flash_1、NANDFlash_2……NAND Flash_n均通过共享的I/O信号和控制信号与控制器相连接,NAND Flash_1、NAND Flash_2……NAND Flash n分别通过各自的片选信号即片选信号1、片选信号2……片选信号n,状态信号即状态信号1、状态信号2……状态信号n与控制器连接。
假设控制器需要从NAND Flash 1读取数据,控制器发出片选信号1即片选信号1有效,然后通过控制信号线向NAND Flash_1发出读取命令,接着NAND Flash_1进入执行周期,此时,NAND Flash_1会向控制器输出状态信号以表示NAND Flash_1进入执行周期;在控制器获知NAND Flash_1进入执行周期时,控制器还需要从NAND Flash_2读取数据,那么,控制器发出片选信号2即片选信号2有效,然后通过控制信号线向NAND Flash_2发出读取命令,接着NAND Flash_2进入执行周期,此时,同样NAND Flash_2会向控制器输出状态信号以表示NAND Flash_2进入执行周期。
直到NAND Flash_1进入状态周期,控制器再将NAND Flash_1的数据读出,NAND Flash_2进入状态周期,控制器再将NAND Flash 2的数据读出。
也就是说,控制器对自身连接的多片NAND Flash是采用并行访问的方式进行访问的,如图5所示,图5是本发明访问NAND Flash的过程的实施例的示意图。
进一步地,因为多个控制器之间的NAND Flash是完全独立的,可以不受限制的同时工作,因此,为了使多片NAND Flash能同时访问,可以将多片NAND Flash分成若干组,每一组由一片控制器来控制,同时不同控制器之间的协调工作由一调度器如单片机、可编程逻辑芯片等来实现。这里调度器的工作主要是区分需要访问的NAND Flash连接在哪个控制器上,并向该控制器发送该NAND Flash进行操作的命令。如图6所示,图6是本发明对NAND Flash操作的系统拓扑结构的实施例三的示意图。
调度器区分控制器的方法可以这样实现调度器和控制器之间通过两个队列来通信,一个队列用于告知控制器要执行什么命令,另一个队列用于告知调度器命令的执行结果。
调度器区分控制器一般通过地址映射的方法,该方法属于本领域技术人员常用技术手段,这里只做简单介绍。假设某调度器有两个控制器,每个控制器下连接两片NAND Flash,每片NAND Flash有1024个页,这样从调度器上层看共有4096个页,调度器所看到的每个控制器就有2048个页。在调度器上层看这4096个页是按顺序排列的,上层访问并不需要知道这个页究竟在哪个控制器的哪个芯片,只需要给出要访问的页号就可以了。当调度器收到这个页号后就判断这个页在哪个控制器,这里有两个控制器,这里假设偶数页放到第1个控制器,奇数页放到第2个控制器,假设调度器的上层要访问第4000页,根据这里的映射规则,就是第1个控制器的第2000页,这样调度器就会发一条访问第2000页的命令给第1个控制器。控制器1收到访问地2000页的命令后就根据映射规则选择是哪个芯片的哪一页。映射规则的选择尽可能地保证同一时间有更多的芯片在工作,这样就能保证性能最高。
图6所示的访问NAND Flash的系统中,包括调度器、多片控制器及控制器1……控制器i;各控制器连接有多片NAND Flash,连接方式如图3所示,这里不再详述,本实施例中需要强调的是,采用多个控制器来扩展NANDFlash的数量,以实现系统的大存储容量,同时采用本发明的并行访问方式,减小了控制器对NAND Flash的访问延时,提高了访问速度。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种访问与非型闪存的系统,其特征在于,包括控制器和至少两片与非型闪存;每一个与非型闪存与所述控制器之间通过输入/输出数据信号、控制信号和片选信号连接,每一个与非型闪存的输入/输出数据信号和控制信号是共享的,而每一个与非型闪存的片选信号是独立的;所述控制器检测所述与非型闪存的状态,并在所述与非型闪存中的一个处于执行周期时,所述控制器向所述与非型闪存中的其它需要访问的NANDFlash芯片发出操作命令。
2.根据权利要求1所述的系统,其特征在于,所述每一个与非型闪存与所述控制器之间还通过状态信号连接,每一个与非型闪存的状态信号是独立的;所述状态信号用于所述控制器检测对应与非型闪存的状态,并在对应与非型闪存处于执行周期时,所述控制器向所述与非型闪存中的其它需要访问的与非型闪存发出操作命令。
3.根据权利要求2所述的系统,其特征在于,所述状态信号为所述与非型闪存用于指示与非型闪存状态的闲/忙引脚的信号。
4.根据权利要求1或2所述的系统,其特征在于,所述控制器为两个或两个以上,所述与非型闪存分成若干组,每一组与非型闪存由所述控制器中的一片来控制;所述系统还包括调度器,所述调度器用于区分需要访问的与非型闪存所对应的控制器,并向所述控制器发送访问对应与非型闪存的操作命令。
5.一种访问与非型闪存的方法,其特征在于,在包括控制器和至少两片与非型闪存的系统中,该方法包括控制器检测与非型闪存的状态;在所述与非型闪存中的一个处于执行周期时,对应控制器向自身连接的与非型闪存中的其它需要访问的芯片发出操作命令。
6.根据权利要求5所述的方法,其特征在于,所述检测与非型闪存的状态的方法为检测所述与非型闪存的用于指示与非型闪存状态的忙/闲引脚的信号;当所述忙/闲引脚的信号为高电平时,表示对应与非型闪存处于命令周期;当所述忙/闲引脚的信号由高电平变为低电平时,表示对应与非型闪存处于执行周期;当所述忙/闲引脚的信号由低电平变为高电平时,表示处于状态周期。
7.根据权利要求5所述的方法,其特征在于,所述检测与非型闪存的状态的方法为所述控制器通过专门查询状态的命令来查询。
8.根据权利要求5所述的方法,其特征在于,所述系统还包括调度器;所述系统中的控制器为两个或两个以上,将所述与非型闪存分成若干组,每一组与非型闪存由所述控制器中的一片来控制;该方法之前还包括所述调度器区分需要访问的与非型闪存所对应的控制器,并向所述控制器发送访问对应该与非型闪存的操作命令。
全文摘要
本发明公开了一种访问与非型闪存的系统及方法,通过对与非型闪存的操作状态的检测,在与非型闪存处于执行周期时,控制器向其它与非型闪存芯片发出操作命令,将多片与非型闪存的执行周期重叠起来即实现多片与非型闪存并行执行操作命令,从而减小了控制器对与非型闪存的访问延时,提高了访问速度。
文档编号G11C16/06GK101064192SQ200710106728
公开日2007年10月31日 申请日期2007年6月15日 优先权日2007年6月15日
发明者麦嘉源 申请人:华为技术有限公司