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