著录项信息
专利名称 | 一种提高NANDflash控制器读写速度的方法 |
申请号 | CN201310542861.8 | 申请日期 | 2013-11-05 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-02-05 | 公开/公告号 | CN103559146A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F12/02 | IPC分类号 | G;0;6;F;1;2;/;0;2;;;G;0;6;F;1;3;/;1;6查看分类表>
|
申请人 | 山东大学 | 申请人地址 | 山东省济南市历城区山大南路27号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 山东大学 | 当前权利人 | 山东大学 |
发明人 | 周莉;孙皓;孙涛;陈鹏;董启凡;马召宾;汪洋 |
代理机构 | 济南金迪知识产权代理有限公司 | 代理人 | 许德山 |
摘要
一种提高NANDflash控制器读写速度的方法,属于集成电路设计领域。NANDflash控制器一端连在系统总线上,另一端与NANDflash直接相连,从NANDflash中读出其页大小的参数,动态分配NANDflash控制器内部的缓存,生成多个适应NANDflash的页的大小的缓存分页,通过外部控制命令对当前使用的缓存分页进行选择,选择出当前使用的缓存页,使得外部控制命令可以直接对其进行操作。此方法的优点在于,可以使控制器很好地适应不同型号的NANDflash,并最大限度地利用自身有限的缓存资源,为外部控制命令提供更为灵活的缓存操作方式,提高对NANDflash的读写速度。
1.一种提高NAND flash控制器读写速度的方法,由以下系统来实现,该系统包括NAND flash控制器、NAND flash和外部控制命令,NAND flash控制器一端连在系统总线上,另一端直接和NAND flash相连,外部控制命令能直接操作NAND flash控制器;NAND flash控制器包括主控逻辑、一个缓存器、多组缓存控制逻辑、一个分页选择模块和一个分页记录模块,主控逻辑内带有ECC校验模块;缓存器用于缓存读写的数据,缓存控制逻辑与缓存器连接,用于缓存器的动态分配;分页选择模块与缓存控制逻辑、主控逻辑相连,用于从多组缓存分页中选择当前使用的缓存分页,是能够由外部控制命令进行设置的;分页记录模块与分页选择模块、主控逻辑相连,每次NAND flash控制器对NAND flash进行读写操作时,分页记录模块就会自动记录下使用的缓存分页的地址和实际操作的NAND flash页的物理地址,该方法步骤如下:
1)基于动态改变内部缓存分页的大小提高NAND flash控制器的顺序读写NAND flash速度
(1)NAND flash控制器读取NAND flash的ID,得到NAND flash的页大小参数;
(2)在NAND flash控制器中加入能配置的寄存器,用来存储步骤(1)中得到的NAND flash的页大小参数;
(3)在NAND flash控制器中加入缓存控制逻辑,利用步骤(2)中的寄存器存储的页大小参数,将缓存器中地址的值小于NAND flash的页大小参数的缓存分配成一个缓存分页,由该缓存控制逻辑来控制;
(4)NAND flash控制器通过操纵步骤(3)中的缓存控制逻辑,即能控制动态分配出来的缓存;
(5)通过NAND flash控制器对NAND flash进行写操作时,外部控制命令先将数据写入步骤(3)中的缓存分页,然后NAND flash控制器将缓存分页中的数据一起写入NAND flash,进行读操作时,先将NAND flash中的数据读入缓存分页,再从缓存分页中取数据,这样加快了顺序读写NAND flash的速读;
2)基于动态分配NAND flash控制器内部剩余缓存提高随机读写NAND flash速度(1)在NAND flash控制器中按照每页最小为528Byte来设计缓存控制逻辑,一共需设置为:总缓存容量/最小每页容量-1组缓存控制逻辑;
(2)NAND flash控制器利用步骤1)的第(2)步中的寄存器存储的页大小参数和上一步中预先设置的多组缓存控制逻辑,将剩余的缓存按照页大小进行分配,分配成大小为一页的缓存分页,遇到不足一页的缓存则不使用,分配出来的每个缓存分页由一组缓存控制逻辑来控制;
(3)设计分页选择模块,外部控制命令对该模块进行设置后,能从步骤(2)和步骤1)的第(3)步中所配置出来的缓存分页中选出当前正在使用的缓存分页,使能该缓存分页的缓存控制逻辑,其他分页保持原来的存储状态;
(4)设计分页记录模块,当NAND flash控制器将来自外部的数据或从NAND flash中读出的数据写入当前正在使用的缓存分页后,分页记录模块会自动记录下使用的缓存分页的地址和实际操作的NAND flash页的物理地址,并将其建立为一一对应的映射关系;
(5)NAND flash控制器读NAND flash时,利用步骤(4)记录的缓存分页的地址和NAND flash页的物理地址的映射关系,当需要读之前访问过的NAND flash页的时候,即使能对应的缓存分页的控制逻辑,直接读取对应缓存分页中的数据,加快了随机读NAND flash的速度;
(6)NAND flash控制器写NAND flash时,当需要向某个NAND flash页中写入少量数据时,先将该少量数据写入某个缓存分页,之后若再需要向该NAND flash页中写入数据时,利用步骤(4)中建立的映射关系,再次写入之前用的缓存分页,当需要写入的数据占满整个缓存分页的时候,就会把该缓存分页的数据一起写入NAND flash,加快了随机写NAND flash的速度。
一种提高NAND flash控制器读写速度的方法\n技术领域\n[0001] 本发明涉及一种以动态配置NAND flash控制器内部缓存分页大小来提高控制器对NAND flash器件的读写速度的方法,属于数字集成电路设计技术领域。\n背景技术\n[0002] 随着芯片的集成度越来越高,当今的手机、平板电脑等都集成了上网、游戏、音乐播放、视频播放、照相等常用的数码功能,越来越多的功能自然也对存储提出了更高的要求。而Flash是目前最为常用的非易失性存储器,在Flash使用方面,NAND Flash由于相对于NOR Flash有着更低的单位bit成本,更大的存储密度、更快的写入和擦除速度、更多的可擦出次数等优点。而NAND flash由于接口时序复杂,且在读写数据时只能以页为单位进行操作,在使用时需要配有特有的控制器,而目前的控制器无法完全发挥NAND flash的所有性能,控制器是读写速度提高的瓶颈。\n[0003] 目前常用的提高NAND flash控制器读写速度的方法就是在控制器内部设置缓存,通过设置大量缓存来提高随机读写的速度,但这样的方式会带来一个问题:在提高速度的同时使得成本大大提高。而这个成本的提高,很大程度上是由于内部缓存资源的浪费造成的,因此,需要一种新的设计方法来解决这个问题,即在提高速度的同时兼顾成本。\n[0004] 专利号:200710164187.9、发明人:阙金珍、专利名称:“NAND FLASH控制器及其与NAND FLASH芯片的数据交互方法”揭示了一种NAND FLASH控制器与NAND FLASH芯片的数据交互方法,该控制器结构为目前较为常用的控制结构,其数据缓冲区仅起到了“用于接收系统总线通过述总线时序接口传送的信息数据”的作用,而NAND flash在进行读写操作时必须以页为单位进行读写,如果读写NAND flash的时候不利用大量缓存的话,会大大降低读写速度;如果在读写操作时能利用这些数据缓冲区的资源,则会一定程度上提高读写速度。没有充分利用芯片内的缓存资源,这是现有技术存在的一个缺陷。\n发明内容\n[0005] 为了克服现有技术存在的缺陷和不足,本发明提供了一种提高NAND flash控制器读写速度的方法。\n[0006] 本发明的技术方案如下:\n[0007] 一种提高NAND flash控制器读写速度的方法,由以下系统来实现,该系统包括NAND flash控制器、NAND flash和外部控制命令,NAND flash控制器一端连在系统总线上,另一端直接和NAND flash相连,外部控制命令能直接操作NAND flash控制器;NAND flash控制器包括主控逻辑、一个缓存器、多组缓存控制逻辑、一个分页选择模块和一个分页记录模块,主控逻辑内带有ECC校验模块;缓存器用于缓存读写的数据,缓存控制逻辑与缓存器连接,用于缓存器的动态分配;分页选择模块与缓存控制逻辑、主控逻辑相连,用于从多组缓存分页中选择当前使用的缓存分页,是能够由外部控制命令进行设置的;分页记录模块与分页选择模块、主控逻辑相连,每次NAND flash控制器对NAND flash进行读写操作时,分页记录模块就会自动记录下使用的缓存分页的地址和实际操作的NAND flash页的物理地址,该方法步骤如下:\n[0008] 1)基于动态改变内部缓存分页的大小提高NAND flash控制器的顺序读写NAND flash速度\n[0009] (1)NAND flash控制器读取NAND flash的ID,得到NAND flash的页大小参数;\n[0010] (2)在NAND flash控制器中加入能配置的寄存器,用来存储步骤(1)中得到的NAND flash的页大小参数;\n[0011] (3)在NAND flash控制器中加入缓存控制逻辑,利用步骤(2)中的寄存器存储的页大小参数,将缓存器中地址的值小于NAND flash的页大小参数的缓存分配成一个缓存分页,由该缓存控制逻辑来控制;\n[0012] (4)NAND flash控制器通过操纵步骤(3)中的缓存控制逻辑,即能控制动态分配出来的缓存;\n[0013] (5)通过NAND flash控制器对NAND flash进行写操作时,外部控制命令先将数据写入步骤(3)中的缓存分页,然后NAND flash控制器将缓存分页中的数据一起写入NAND flash,进行读操作时,先将NAND flash中的数据读入缓存分页,再从缓存分页中取数据,这样加快了顺序读写NAND flash的速读;\n[0014] 2)基于动态分配NAND flash控制器内部剩余缓存提高随机读写NAND flash速度[0015] (1)在NAND flash控制器中按照每页最小为528Byte来设计缓存控制逻辑,一共需设置为:总缓存容量/最小每页容量-1组缓存控制逻辑;\n[0016] (2)NAND flash控制器利用步骤1)的第(2)步中的寄存器存储的页大小参数和上一步中预先设置的多组缓存控制逻辑,将剩余的缓存按照页大小进行分配,分配成大小为一页的缓存分页,遇到不足一页的缓存则不使用,分配出来的每个缓存分页由一组缓存控制逻辑来控制;\n[0017] (3)设计分页选择模块,外部控制命令对该模块进行设置后,能从步骤(2)和步骤\n1)的第(3)步中所配置出来的缓存分页中选出当前正在使用的缓存分页,使能该缓存分页的缓存控制逻辑,其他分页保持原来的存储状态;\n[0018] (4)设计分页记录模块,当NAND flash控制器将来自外部的数据或从NAND flash中读出的数据写入当前正在使用的缓存分页后,分页记录模块会自动记录下使用的缓存分页的地址和实际操作的NAND flash页的物理地址,并将其建立为一一对应的映射关系;\n[0019] (5)NAND flash控制器读NAND flash时,利用步骤(4)记录的缓存分页的地址和NAND flash页的物理地址的映射关系,当需要读之前访问过的NAND flash页的时候,即使能对应的缓存分页的控制逻辑,直接读取对应缓存分页中的数据,加快了随机读NAND flash的速度;\n[0020] (6)NAND flash控制器写NAND flash时,当需要向某个NAND flash页中写入少量数据时,先将该少量数据写入某个缓存分页,之后若再需要向该NAND flash页中写入数据时,利用步骤(4)中建立的映射关系,再次写入之前用的缓存分页,当需要写入的数据占满整个缓存分页的时候,就会把该缓存分页的数据一起写入NAND flash,加快了随机写NAND flash的速度。\n[0021] 上述“使能”一词是英语enable的汉语释义,是集成电路设计中的通用词语,意为使某某开始工作,如:当某一模块输入信号1时模块开始工作,使能通常就是指把enable这个输入信号由0变成1。\n[0022] 本发明方法的优点如下:可以使控制器很好地适应不同型号的NAND flash,并最大限度地利用自身有限的缓存资源,为外部控制命令提供更为灵活的缓存操作方式,提高对NAND flash的读写速度。\n附图说明\n[0023] 图1为本发明中的各模块连接关系的结构示意图。\n具体实施方式\n[0024] 下面结合附图和实施例对本发明作进一步说明,但不限于此。\n[0025] 实施例:\n[0026] 如图1所示,一种提高NAND flash控制器读写速度的方法,由以下系统来实现,该系统包括NAND flash控制器、NAND flash和外部控制命令,NAND flash控制器一端连在系统总线上,另一端直接和NAND flash相连,外部控制命令能直接操作NAND flash控制器;\nNAND flash控制器包括主控逻辑、一个缓存器、多组缓存控制逻辑、一个分页选择模块和一个分页记录模块,主控逻辑内带有ECC校验模块;缓存器用于缓存读写的数据,缓存控制逻辑与缓存器连接,用于缓存器的动态分配;分页选择模块与缓存控制逻辑、主控逻辑相连,用于从多组缓存分页中选择当前使用的缓存分页,是能够由外部控制命令进行设置的;分页记录模块与分页选择模块、主控逻辑相连,每次NAND flash控制器对NAND flash进行读写操作时,分页记录模块就会自动记录下使用的缓存分页的地址和实际操作的NAND flash页的物理地址,该方法步骤如下:\n[0027] 1)基于动态改变内部缓存分页的大小提高NAND flash控制器的顺序读写NAND flash速度\n[0028] (1)NAND flash控制器读取NAND flash的ID,得到NAND flash的页大小参数;\n[0029] (2)在NAND flash控制器中加入能配置的寄存器,用来存储步骤(1)中得到的NAND flash的页大小参数;\n[0030] (3)在NAND flash控制器中加入缓存控制逻辑,利用步骤(2)中的寄存器存储的页大小参数,将缓存器中地址的值小于NAND flash的页大小参数的缓存分配成一个缓存分页,由该缓存控制逻辑来控制;\n[0031] (4)NAND flash控制器通过操纵步骤(3)中的缓存控制逻辑,即能控制动态分配出来的缓存;\n[0032] (5)通过NAND flash控制器对NAND flash进行写操作时,外部控制命令先将数据写入步骤(3)中的缓存分页,然后NAND flash控制器将缓存分页中的数据一起写入NAND flash,进行读操作时,先将NAND flash中的数据读入缓存分页,再从缓存分页中取数据,这样加快了顺序读写NAND flash的速读;\n[0033] 2)基于动态分配NAND flash控制器内部剩余缓存提高随机读写NAND flash速度[0034] (1)在NAND flash控制器中按照每页最小为528Byte来设计缓存控制逻辑,一共需设置为:总缓存容量/最小每页容量-1组缓存控制逻辑;\n[0035] (2)NAND flash控制器利用步骤1)的第(2)步中的寄存器存储的页大小参数和上一步中预先设置的多组缓存控制逻辑,将剩余的缓存按照页大小进行分配,分配成大小为一页的缓存分页,遇到不足一页的缓存则不使用,分配出来的每个缓存分页由一组缓存控制逻辑来控制;\n[0036] (3)设计分页选择模块,外部控制命令对该模块进行设置后,能从步骤(2)和步骤\n1)的第(3)步中所配置出来的缓存分页中选出当前正在使用的缓存分页,使能该缓存分页的缓存控制逻辑,其他分页保持原来的存储状态;\n[0037] (4)设计分页记录模块,当NAND flash控制器将来自外部的数据或从NAND flash中读出的数据写入当前正在使用的缓存分页后,分页记录模块会自动记录下使用的缓存分页的地址和实际操作的NAND flash页的物理地址,并将其建立为一一对应的映射关系;\n[0038] (5)NAND flash控制器读NAND flash时,利用步骤(4)记录的缓存分页的地址和NAND flash页的物理地址的映射关系,当需要读之前访问过的NAND flash页的时候,即使能对应的缓存分页的控制逻辑,直接读取对应缓存分页中的数据,加快了随机读NAND flash的速度;\n[0039] (6)NAND flash控制器写NAND flash时,当需要向某个NAND flash页中写入少量数据时,先将该少量数据写入某个缓存分页,之后若再需要向该NAND flash页中写入数据时,利用步骤(4)中建立的映射关系,再次写入之前用的缓存分页,当需要写入的数据占满整个缓存分页的时候,就会把该缓存分页的数据一起写入NAND flash,加快了随机写NAND flash的速度。
法律信息
- 2016-03-30
- 2014-03-12
实质审查的生效
IPC(主分类): G06F 12/08
专利申请号: 201310542861.8
申请日: 2013.11.05
- 2014-02-05
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-04-16
|
2007-10-08
| | |
2
| |
2013-03-06
|
2011-08-17
| | |
3
| |
2010-05-05
|
2009-11-24
| | |
4
| |
2013-09-25
|
2013-06-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |