CN103559146B - 一种提高NAND flash控制器读写速度的方法 - Google Patents

一种提高NAND flash控制器读写速度的方法 Download PDF

Info

Publication number
CN103559146B
CN103559146B CN201310542861.8A CN201310542861A CN103559146B CN 103559146 B CN103559146 B CN 103559146B CN 201310542861 A CN201310542861 A CN 201310542861A CN 103559146 B CN103559146 B CN 103559146B
Authority
CN
China
Prior art keywords
buffer memory
nandflash
paging
nand flash
flash controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310542861.8A
Other languages
English (en)
Other versions
CN103559146A (zh
Inventor
周莉
孙皓
孙涛
陈鹏
董启凡
马召宾
汪洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN201310542861.8A priority Critical patent/CN103559146B/zh
Publication of CN103559146A publication Critical patent/CN103559146A/zh
Application granted granted Critical
Publication of CN103559146B publication Critical patent/CN103559146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种提高NAND?flash控制器读写速度的方法,属于集成电路设计领域。NAND?flash控制器一端连在系统总线上,另一端与NAND?flash直接相连,从NAND?flash中读出其页大小的参数,动态分配NAND?flash控制器内部的缓存,生成多个适应NAND?flash的页的大小的缓存分页,通过外部控制命令对当前使用的缓存分页进行选择,选择出当前使用的缓存页,使得外部控制命令可以直接对其进行操作。此方法的优点在于,可以使控制器很好地适应不同型号的NAND?flash,并最大限度地利用自身有限的缓存资源,为外部控制命令提供更为灵活的缓存操作方式,提高对NAND?flash的读写速度。

Description

一种提高NAND flash控制器读写速度的方法
技术领域
本发明涉及一种以动态配置NANDflash控制器内部缓存分页大小来提高控制器对NANDflash器件的读写速度的方法,属于数字集成电路设计技术领域。
背景技术
随着芯片的集成度越来越高,当今的手机、平板电脑等都集成了上网、游戏、音乐播放、视频播放、照相等常用的数码功能,越来越多的功能自然也对存储提出了更高的要求。而Flash是目前最为常用的非易失性存储器,在Flash使用方面,NANDFlash由于相对于NORFlash有着更低的单位bit成本,更大的存储密度、更快的写入和擦除速度、更多的可擦出次数等优点。而NANDflash由于接口时序复杂,且在读写数据时只能以页为单位进行操作,在使用时需要配有特有的控制器,而目前的控制器无法完全发挥NANDflash的所有性能,控制器是读写速度提高的瓶颈。
目前常用的提高NANDflash控制器读写速度的方法就是在控制器内部设置缓存,通过设置大量缓存来提高随机读写的速度,但这样的方式会带来一个问题:在提高速度的同时使得成本大大提高。而这个成本的提高,很大程度上是由于内部缓存资源的浪费造成的,因此,需要一种新的设计方法来解决这个问题,即在提高速度的同时兼顾成本。
专利号:200710164187.9、发明人:阙金珍、专利名称:“NANDFLASH控制器及其与NANDFLASH芯片的数据交互方法”揭示了一种NANDFLASH控制器与NANDFLASH芯片的数据交互方法,该控制器结构为目前较为常用的控制结构,其数据缓冲区仅起到了“用于接收系统总线通过述总线时序接口传送的信息数据”的作用,而NANDflash在进行读写操作时必须以页为单位进行读写,如果读写NANDflash的时候不利用大量缓存的话,会大大降低读写速度;如果在读写操作时能利用这些数据缓冲区的资源,则会一定程度上提高读写速度。没有充分利用芯片内的缓存资源,这是现有技术存在的一个缺陷。
发明内容
为了克服现有技术存在的缺陷和不足,本发明提供了一种提高NANDflash控制器读写速度的方法。
本发明的技术方案如下:
一种提高NANDflash控制器读写速度的方法,由以下系统来实现,该系统包括NANDflash控制器、NANDflash和外部控制命令,NANDflash控制器一端连在系统总线上,另一端直接和NANDflash相连,外部控制命令能直接操作NANDflash控制器;NANDflash控制器包括主控逻辑、一个缓存器、多组缓存控制逻辑、一个分页选择模块和一个分页记录模块,主控逻辑内带有ECC校验模块;缓存器用于缓存读写的数据,缓存控制逻辑与缓存器连接,用于缓存器的动态分配;分页选择模块与缓存控制逻辑、主控逻辑相连,用于从多组缓存分页中选择当前使用的缓存分页,是能够由外部控制命令进行设置的;分页记录模块与分页选择模块、主控逻辑相连,每次NANDflash控制器对NANDflash进行读写操作时,分页记录模块就会自动记录下使用的缓存分页的地址和实际操作的NANDflash页的物理地址,该方法步骤如下:
1)基于动态改变内部缓存分页的大小提高NANDflash控制器的顺序读写NANDflash速度
(1)NANDflash控制器读取NANDflash的ID,得到NANDflash的页大小参数;
(2)在NANDflash控制器中加入能配置的寄存器,用来存储步骤(1)中得到的NANDflash的页大小参数;
(3)在NANDflash控制器中加入缓存控制逻辑,利用步骤(2)中的寄存器存储的页大小参数,将缓存器中地址的值小于NANDflash的页大小参数的缓存分配成一个缓存分页,由该缓存控制逻辑来控制;
(4)NANDflash控制器通过操纵步骤(3)中的缓存控制逻辑,即能控制动态分配出来的缓存;
(5)通过NANDflash控制器对NANDflash进行写操作时,外部控制命令先将数据写入步骤(3)中的缓存分页,然后NANDflash控制器将缓存分页中的数据一起写入NANDflash,进行读操作时,先将NANDflash中的数据读入缓存分页,再从缓存分页中取数据,这样加快了顺序读写NANDflash的速读;
2)基于动态分配NANDflash控制器内部剩余缓存提高随机读写NANDflash速度
(1)在NANDflash控制器中按照每页最小为528Byte来设计缓存控制逻辑,一共需设置为:总缓存容量/最小每页容量-1组缓存控制逻辑;
(2)NANDflash控制器利用步骤1)的第(2)步中的寄存器存储的页大小参数和上一步中预先设置的多组缓存控制逻辑,将剩余的缓存按照页大小进行分配,分配成大小为一页的缓存分页,遇到不足一页的缓存则不使用,分配出来的每个缓存分页由一组缓存控制逻辑来控制;
(3)设计分页选择模块,外部控制命令对该模块进行设置后,能从步骤(2)和步骤1)的第(3)步中所配置出来的缓存分页中选出当前正在使用的缓存分页,使能该缓存分页的缓存控制逻辑,其他分页保持原来的存储状态;
(4)设计分页记录模块,当NANDflash控制器将来自外部的数据或从NANDflash中读出的数据写入当前正在使用的缓存分页后,分页记录模块会自动记录下使用的缓存分页的地址和实际操作的NANDflash页的物理地址,并将其建立为一一对应的映射关系;
(5)NANDflash控制器读NANDflash时,利用步骤(4)记录的缓存分页的地址和NANDflash页的物理地址的映射关系,当需要读之前访问过的NANDflash页的时候,即使能对应的缓存分页的控制逻辑,直接读取对应缓存分页中的数据,加快了随机读NANDflash的速度;
(6)NANDflash控制器写NANDflash时,当需要向某个NANDflash页中写入少量数据时,先将该少量数据写入某个缓存分页,之后若再需要向该NANDflash页中写入数据时,利用步骤(4)中建立的映射关系,再次写入之前用的缓存分页,当需要写入的数据占满整个缓存分页的时候,就会把该缓存分页的数据一起写入NANDflash,加快了随机写NANDflash的速度。
上述“使能”一词是英语enable的汉语释义,是集成电路设计中的通用词语,意为使某某开始工作,如:当某一模块输入信号1时模块开始工作,使能通常就是指把enable这个输入信号由0变成1。
本发明方法的优点如下:可以使控制器很好地适应不同型号的NANDflash,并最大限度地利用自身有限的缓存资源,为外部控制命令提供更为灵活的缓存操作方式,提高对NANDflash的读写速度。
附图说明
图1为本发明中的各模块连接关系的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,但不限于此。
实施例:
如图1所示,一种提高NANDflash控制器读写速度的方法,由以下系统来实现,该系统包括NANDflash控制器、NANDflash和外部控制命令,NANDflash控制器一端连在系统总线上,另一端直接和NANDflash相连,外部控制命令能直接操作NANDflash控制器;NANDflash控制器包括主控逻辑、一个缓存器、多组缓存控制逻辑、一个分页选择模块和一个分页记录模块,主控逻辑内带有ECC校验模块;缓存器用于缓存读写的数据,缓存控制逻辑与缓存器连接,用于缓存器的动态分配;分页选择模块与缓存控制逻辑、主控逻辑相连,用于从多组缓存分页中选择当前使用的缓存分页,是能够由外部控制命令进行设置的;分页记录模块与分页选择模块、主控逻辑相连,每次NANDflash控制器对NANDflash进行读写操作时,分页记录模块就会自动记录下使用的缓存分页的地址和实际操作的NANDflash页的物理地址,该方法步骤如下:
1)基于动态改变内部缓存分页的大小提高NANDflash控制器的顺序读写NANDflash速度
(1)NANDflash控制器读取NANDflash的ID,得到NANDflash的页大小参数;
(2)在NANDflash控制器中加入能配置的寄存器,用来存储步骤(1)中得到的NANDflash的页大小参数;
(3)在NANDflash控制器中加入缓存控制逻辑,利用步骤(2)中的寄存器存储的页大小参数,将缓存器中地址的值小于NANDflash的页大小参数的缓存分配成一个缓存分页,由该缓存控制逻辑来控制;
(4)NANDflash控制器通过操纵步骤(3)中的缓存控制逻辑,即能控制动态分配出来的缓存;
(5)通过NANDflash控制器对NANDflash进行写操作时,外部控制命令先将数据写入步骤(3)中的缓存分页,然后NANDflash控制器将缓存分页中的数据一起写入NANDflash,进行读操作时,先将NANDflash中的数据读入缓存分页,再从缓存分页中取数据,这样加快了顺序读写NANDflash的速读;
2)基于动态分配NANDflash控制器内部剩余缓存提高随机读写NANDflash速度
(1)在NANDflash控制器中按照每页最小为528Byte来设计缓存控制逻辑,一共需设置为:总缓存容量/最小每页容量-1组缓存控制逻辑;
(2)NANDflash控制器利用步骤1)的第(2)步中的寄存器存储的页大小参数和上一步中预先设置的多组缓存控制逻辑,将剩余的缓存按照页大小进行分配,分配成大小为一页的缓存分页,遇到不足一页的缓存则不使用,分配出来的每个缓存分页由一组缓存控制逻辑来控制;
(3)设计分页选择模块,外部控制命令对该模块进行设置后,能从步骤(2)和步骤1)的第(3)步中所配置出来的缓存分页中选出当前正在使用的缓存分页,使能该缓存分页的缓存控制逻辑,其他分页保持原来的存储状态;
(4)设计分页记录模块,当NANDflash控制器将来自外部的数据或从NANDflash中读出的数据写入当前正在使用的缓存分页后,分页记录模块会自动记录下使用的缓存分页的地址和实际操作的NANDflash页的物理地址,并将其建立为一一对应的映射关系;
(5)NANDflash控制器读NANDflash时,利用步骤(4)记录的缓存分页的地址和NANDflash页的物理地址的映射关系,当需要读之前访问过的NANDflash页的时候,即使能对应的缓存分页的控制逻辑,直接读取对应缓存分页中的数据,加快了随机读NANDflash的速度;
(6)NANDflash控制器写NANDflash时,当需要向某个NANDflash页中写入少量数据时,先将该少量数据写入某个缓存分页,之后若再需要向该NANDflash页中写入数据时,利用步骤(4)中建立的映射关系,再次写入之前用的缓存分页,当需要写入的数据占满整个缓存分页的时候,就会把该缓存分页的数据一起写入NANDflash,加快了随机写NANDflash的速度。

Claims (1)

1.一种提高NANDflash控制器读写速度的方法,由以下系统来实现,该系统包括NANDflash控制器、NANDflash和外部控制命令,NANDflash控制器一端连在系统总线上,另一端直接和NANDflash相连,外部控制命令能直接操作NANDflash控制器;NANDflash控制器包括主控逻辑、一个缓存器、多组缓存控制逻辑、一个分页选择模块和一个分页记录模块,主控逻辑内带有ECC校验模块;缓存器用于缓存读写的数据,缓存控制逻辑与缓存器连接,用于缓存器的动态分配;分页选择模块与缓存控制逻辑、主控逻辑相连,用于从多组缓存分页中选择当前使用的缓存分页,是能够由外部控制命令进行设置的;分页记录模块与分页选择模块、主控逻辑相连,每次NANDflash控制器对NANDflash进行读写操作时,分页记录模块就会自动记录下使用的缓存分页的地址和实际操作的NANDflash页的物理地址,该方法步骤如下:
1)基于动态改变内部缓存分页的大小提高NANDflash控制器的顺序读写NANDflash速度
(1)NANDflash控制器读取NANDflash的ID,得到NANDflash的页大小参数;
(2)在NANDflash控制器中加入能配置的寄存器,用来存储步骤(1)中得到的NANDflash的页大小参数;
(3)在NANDflash控制器中加入缓存控制逻辑,利用步骤(2)中的寄存器存储的页大小参数,将缓存器中地址的值小于NANDflash的页大小参数的缓存分配成一个缓存分页,由该缓存控制逻辑来控制;
(4)NANDflash控制器通过操纵步骤(3)中的缓存控制逻辑,即能控制动态分配出来的缓存;
(5)通过NANDflash控制器对NANDflash进行写操作时,外部控制命令先将数据写入步骤(3)中的缓存分页,然后NANDflash控制器将缓存分页中的数据一起写入NANDflash,进行读操作时,先将NANDflash中的数据读入缓存分页,再从缓存分页中取数据,这样加快了顺序读写NANDflash的速读;
2)基于动态分配NANDflash控制器内部剩余缓存提高随机读写NANDflash速度
(1)在NANDflash控制器中按照每页最小为528Byte来设计缓存控制逻辑,一共需设置为:总缓存容量/最小每页容量-1组缓存控制逻辑;
(2)NANDflash控制器利用步骤1)的第(2)步中的寄存器存储的页大小参数和上一步中预先设置的多组缓存控制逻辑,将剩余的缓存按照页大小进行分配,分配成大小为一页的缓存分页,遇到不足一页的缓存则不使用,分配出来的每个缓存分页由一组缓存控制逻辑来控制;
(3)设计分页选择模块,外部控制命令对该模块进行设置后,能从步骤(2)和步骤1)的第(3)步中所配置出来的缓存分页中选出当前正在使用的缓存分页,使能该缓存分页的缓存控制逻辑,其他分页保持原来的存储状态;
(4)设计分页记录模块,当NANDflash控制器将来自外部的数据或从NANDflash中读出的数据写入当前正在使用的缓存分页后,分页记录模块会自动记录下使用的缓存分页的地址和实际操作的NANDflash页的物理地址,并将其建立为一一对应的映射关系;
(5)NANDflash控制器读NANDflash时,利用步骤(4)记录的缓存分页的地址和NANDflash页的物理地址的映射关系,当需要读之前访问过的NANDflash页的时候,即使能对应的缓存分页的控制逻辑,直接读取对应缓存分页中的数据,加快了随机读NANDflash的速度;
(6)NANDflash控制器写NANDflash时,当需要向某个NANDflash页中写入少量数据时,先将该少量数据写入某个缓存分页,之后若再需要向该NANDflash页中写入数据时,利用步骤(4)中建立的映射关系,再次写入之前用的缓存分页,当需要写入的数据占满整个缓存分页的时候,就会把该缓存分页的数据一起写入NANDflash,加快了随机写NANDflash的速度。
CN201310542861.8A 2013-11-05 2013-11-05 一种提高NAND flash控制器读写速度的方法 Active CN103559146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310542861.8A CN103559146B (zh) 2013-11-05 2013-11-05 一种提高NAND flash控制器读写速度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310542861.8A CN103559146B (zh) 2013-11-05 2013-11-05 一种提高NAND flash控制器读写速度的方法

Publications (2)

Publication Number Publication Date
CN103559146A CN103559146A (zh) 2014-02-05
CN103559146B true CN103559146B (zh) 2016-03-30

Family

ID=50013397

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310542861.8A Active CN103559146B (zh) 2013-11-05 2013-11-05 一种提高NAND flash控制器读写速度的方法

Country Status (1)

Country Link
CN (1) CN103559146B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017527877A (ja) * 2014-06-25 2017-09-21 華為技術有限公司Huawei Technologies Co.,Ltd. フラッシュメモリから/フラッシュメモリへデータを読み取る/書き込むための方法および装置、ならびにユーザ機器
CN105205012A (zh) * 2014-06-26 2015-12-30 北京兆易创新科技股份有限公司 一种数据读取方法和装置
CN106502584B (zh) * 2016-10-13 2019-10-25 记忆科技(深圳)有限公司 一种提高固态硬盘写缓存的利用率的方法
CN109164976B (zh) * 2016-12-21 2021-12-31 北京忆恒创源科技股份有限公司 利用写缓存优化存储设备性能
CN107423160B (zh) * 2017-07-24 2020-04-17 山东华芯半导体有限公司 一种提高NAND flash读速度的方法及装置
CN109582516B (zh) * 2018-12-03 2022-07-15 深圳忆联信息系统有限公司 Ssd后端性能分析方法、装置、计算机设备和存储介质
CN109635401A (zh) * 2018-12-04 2019-04-16 中国航空工业集团公司西安航空计算技术研究所 一种动态可配置存储控制器设计方法
JP6767532B2 (ja) 2019-03-11 2020-10-14 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN111966300B (zh) * 2020-08-24 2021-06-25 深圳三地一芯电子有限责任公司 一种节省主控sram的存储器数据写入方法及装置
CN114115754B (zh) * 2022-01-28 2022-04-05 北京紫光青藤微系统有限公司 用于数据更新的方法及装置、电子设备、存储介质
CN116860184B (zh) * 2023-09-04 2024-01-09 苏州浪潮智能科技有限公司 磁盘读写加速方法、装置、阵列卡、服务器、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162449A (zh) * 2007-10-08 2008-04-16 福州瑞芯微电子有限公司 Nand flash控制器及其与nand flash芯片的数据交互方法
CN101702139A (zh) * 2009-11-24 2010-05-05 中兴通讯股份有限公司 一种访问Nand闪存数据的方法和装置
CN102955751A (zh) * 2011-08-17 2013-03-06 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
CN103324578A (zh) * 2013-06-20 2013-09-25 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其随机写入方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI358068B (en) * 2007-10-19 2012-02-11 Phison Electronics Corp Writing method for non-volatile memory and control
US20120226934A1 (en) * 2011-03-01 2012-09-06 Rao G R Mohan Mission critical nand flash
KR101818671B1 (ko) * 2011-04-19 2018-02-28 삼성전자주식회사 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162449A (zh) * 2007-10-08 2008-04-16 福州瑞芯微电子有限公司 Nand flash控制器及其与nand flash芯片的数据交互方法
CN101702139A (zh) * 2009-11-24 2010-05-05 中兴通讯股份有限公司 一种访问Nand闪存数据的方法和装置
CN102955751A (zh) * 2011-08-17 2013-03-06 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
CN103324578A (zh) * 2013-06-20 2013-09-25 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其随机写入方法

Also Published As

Publication number Publication date
CN103559146A (zh) 2014-02-05

Similar Documents

Publication Publication Date Title
CN103559146B (zh) 一种提高NAND flash控制器读写速度的方法
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
TWI409633B (zh) 快閃記憶體儲存裝置、其控制器與資料寫入方法
US9570183B1 (en) Method and controller for managing memory device
US20090150597A1 (en) Data writing method for flash memory and controller using the same
CN107402716B (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN103324578A (zh) 一种nand闪存设备及其随机写入方法
CN106802870B (zh) 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
TWI698749B (zh) 資料儲存裝置與資料處理方法
US9378130B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
CN111399752A (zh) 不同类型存储单元的控制装置及方法
CN106649137B (zh) 一种Nand Flash坏块管理方法、装置及存储器
TWI533135B (zh) 記憶體存取方法、記憶體存取控制方法、記憶體裝置與記憶體控制器
CN103019624B (zh) 一种相变内存装置
CN112230849B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN108538332B (zh) 与非门闪存的读取方法
CN112256203B (zh) Flash存储器的写入方法、装置、设备、介质及系统
CN102890653A (zh) 指令执行方法、存储器控制器与存储器储存装置
US20130067141A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
CN102362263A (zh) Ssd控制器与ssd控制器的操作方法
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
CN113495850B (zh) 管理垃圾回收程序的方法、装置及计算机可读取存储介质
CN105589912A (zh) 一种利用mram处理频写文件的方法及存储结构
CN109726149B (zh) 一种axi总线访问nand flash的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant