一种FLASH的控制方法和控制器技术

技术编号:12976958 阅读:95 留言:0更新日期:2016-03-04 00:20
本发明专利技术公开了一种FLASH控制器和方法,包括:地址控制单元,用于接收CPU输入的FLASH读或写命令、读或写的FLASH地址和长度、以及芯片内部buffer的地址,向FLASH命令执行单元发送读或写命令并接收FLASH命令执行单元返回的命令执行状态、或向擦除单元发送擦除命令;高速缓存,用于缓存来自内部buffer的预写入FLASH的数据、或从FLASH命令执行单元读出的数据,将从FLASH命令执行单元读出的数据发送到内部buffer、或将内部buffer的数据发送至FLASH命令执行单元;FLASH命令执行单元,用于执行地址控制单元发送的读或写命令、或执行擦除单元发送的擦除命令,并向地址控制单元返回命令执行状态;擦除单元,用于执行地址控制单元发送的擦除命令,并在擦除完成后通知地址控制单元向FLASH命令执行单元发送写命令。

【技术实现步骤摘要】

本专利技术涉及嵌入式存储
,尤其涉及一种FLASH(闪存)的控制方法和控制器。
技术介绍
目前,大多数嵌入式设备,如手机和机顶盒等,都需要外部存储芯片来存储程序数据和用户数据,常见的外部存储芯片类型有安全数码卡(SD,SecureDigitalMemoryCard)、嵌入式多媒体卡(EMMC,EmbeddedMultiMediaCard)、编码型闪存NORFLASH和储存型闪存(NANDFLASH)。其中,SD卡是可热插拔的,通常用于存储用户数据;EMMC具有容量大、可实现芯片内部错误检查和纠正(ECC,ErrorCheckingandCorrecting)以及坏块管理功能等优点,但其成本较高,适用于数据量需求较大的嵌入式设备;NORFLASH读写速度快,但容量小、成本高;NANDFLASH可以做到容量高、成本低,但由于工艺问题,在出厂时或使用过程中容易产生坏块,但综合其容量和成本,NANDFLASH通常用于对存储容量要求不高的低成本嵌入式设备。对于NANDFLASH设备,由于物理特性限制,其在读写时是以页为基本单位,在擦除时是以块为基本单位,每块由若干页组成;在每次写的过程中,需要先将当前块擦除后,才能按页写入数据,这些通常是由驱动开发者通过软件开发实现的,需要软件干预。对于NORFLASH设备,其在写之前也需要先擦除当前块,之后才能写入数据,数据读写的速度慢。现有的NANDFLASH和NORFLASH都存在各自的优缺点,而如何进一步优化FLASH的读写流程,提升读写速度和准确度,以适应更高的应用需求,是目前亟待解决的技术问题。
技术实现思路
为解决现有存在的技术问题,本专利技术提供一种FLASH的控制方法和控制器。本专利技术提供了一种闪存FLASH的控制器,包括:地址控制单元、高速缓存、擦除单元和FLASH命令执行单元,所述地址控制单元,用于接收中央处理器CPU输入的FLASH读或写命令、FLASH的读或写地址和长度、以及芯片内部缓存buffer的地址,向所述FLASH命令执行单元发送读或写命令并接收所述FLASH命令执行单元返回的命令执行状态、或向所述擦除单元发送擦除命令;所述高速缓存,用于缓存来自所述内部buffer的预写入FLASH的数据、或从所述FLASH命令执行单元读出的数据,将从所述FLASH命令执行单元读出的数据发送到所述内部buffer、或将所述内部buffer中预写入FLASH的数据发送至所述FLASH命令执行单元;所述FLASH命令执行单元,用于执行所述地址控制单元发送的读或写命令、或执行所述擦除单元发送的擦除命令,并向所述地址控制单元返回命令执行状态,所述FLASH命令执行单元在执行读命令时将读出的数据发送至所述高速缓存,在执行写命令时对所述高速缓存发送的数据执行FLASH写入;所述擦除单元,用于执行所述地址控制单元发送的擦除命令,并在擦除完成后通知所述地址控制单元向所述FLASH命令执行单元发送写命令。上述方案中,所述地址控制单元进一步用于,将收到的所述读或写命令写入命令寄存器,将收到的所述FLASH的读或写地址写入FLASH地址寄存器,将收到的所述FLASH的读或写长度写入长度寄存器,将收到的所述内部buffer的地址写入FLASH的buffer地址寄存器。上述方案中,所述地址控制单元进一步用于,在收到所述CPU输入的FLASH读命令、FLASH的读地址和长度、以及内部buffer的地址时,判断所述FLASH的读地址和长度是否页对齐;在收到所述CPU输入的FLASH写命令、FLASH的写地址和长度、以及内部buffer的地址时,判断所述FLASH的写地址和长度是否块对齐;根据所述判断结果,所述地址控制单元向所述FLASH命令执行单元发送相应命令,所述FLASH命令执行单元执行相应处理。上述方案中,所述地址控制单元在判断所述FLASH的读地址和长度页对齐时,按页依次发送读命令和页地址给所述FLASH命令执行单元;所述FLASH命令执行依据所述读命令和页地址按页读取数据并送入所述高速缓存,在完成每页数据读取时将执行状态发送给所述地址控制单元,并在达到所述FLASH的读长度或所述高速缓存满时,通知所述CPU通知所述地址控制单元将所述高速缓存中的数据发送到所述内部buffer;所述地址控制单元在判断所述FLASH的读地址和长度页不对齐时,按页依次发送读命令、页地址和页内偏移地址给所述FLASH命令执行单元;所述FLASH命令执行单元依据所述读命令、页地址和页内偏移地址按页读取数据并送入所述高速缓存,在完成每页数据读取时将执行状态发送给所述地址控制单元,并在达到所述FLASH的读长度或所述高速缓存满时,通知所述CPU通知所述地址控制单元将所述高速缓存中的数据发送到所述内部buffer;所述地址控制单元还用于,依据所述页地址和页内偏移地址对所述高速缓存中的数据进行整理。上述方案中,所述地址控制单元进在判断所述FLASH的写地址和长度块对齐时,发送擦除一块或多块命令给所述擦除单元;所述擦除单元在执行相应块的擦除命令后,通知所述地址控制单元向所述FLASH命令执行单元执行相应已擦除块的写命令;所述地址控制单元按页依次发送写命令、页地址给所述FLASH命令执行单元;所述FLASH命令执行单元从所述高速缓存中读取预写入FLASH的数据,并依据所述写命令、页地址按页向所述已擦除块中写入数据,在完成每页数据写入时将执行状态发送给所述地址控制单元,并在达到所述FLASH的写长度时,向所述CPU返回写入状态;所述地址控制单元在判断所述FLASH的写地址和长度块不对齐时,向所述FLASH命令执行单元发送读取当前块的命令;所述FLASH命令执行单元将所述当前块的数据读入到所述高速缓存;所述高速缓存根据所块内偏移地址,在所述高速缓存中合并当前块读入数据和待写入数据;所述地址控制单元发送擦除当前块的命令给所述擦除单元;所述擦除单元在执行相应块的擦除命令后,通知所述地址控制单元向所述FLASH命令执行单元执行相应已擦除块的写命令;所述FLASH命令执行单元将所述高速缓存中合并后的数据按页写入所述已擦除块中,在完成每页数据写入时将执行状态发送给所述地址控制单元,并在达到所述FLASH的写长度时,向所述CPU返回写入状态。本专利技术还提供了一种闪存FLASH的控制方法,所述方法包括:获得中央处理器CPU输入的FL本文档来自技高网
...
一种FLASH的控制方法和控制器

【技术保护点】
一种闪存FLASH的控制器,其特征在于,包括:地址控制单元、高速缓存、擦除单元和FLASH命令执行单元,所述地址控制单元,用于接收中央处理器CPU输入的FLASH读或写命令、FLASH的读或写地址和长度、以及芯片内部缓存buffer的地址,向所述FLASH命令执行单元发送读或写命令并接收所述FLASH命令执行单元返回的命令执行状态、或向所述擦除单元发送擦除命令;所述高速缓存,用于缓存来自所述内部buffer的预写入FLASH的数据、或从所述FLASH命令执行单元读出的数据,将从所述FLASH命令执行单元读出的数据发送到所述内部buffer、或将所述内部buffer中预写入FLASH的数据发送至所述FLASH命令执行单元;所述FLASH命令执行单元,用于执行所述地址控制单元发送的读或写命令、或执行所述擦除单元发送的擦除命令,并向所述地址控制单元返回命令执行状态,所述FLASH命令执行单元在执行读命令时将读出的数据发送至所述高速缓存,在执行写命令时对所述高速缓存发送的数据执行FLASH写入;所述擦除单元,用于执行所述地址控制单元发送的擦除命令,并在擦除完成后通知所述地址控制单元向所述FLASH命令执行单元发送写命令。...

【技术特征摘要】
1.一种闪存FLASH的控制器,其特征在于,包括:地址控制单元、高速
缓存、擦除单元和FLASH命令执行单元,
所述地址控制单元,用于接收中央处理器CPU输入的FLASH读或写命令、
FLASH的读或写地址和长度、以及芯片内部缓存buffer的地址,向所述FLASH
命令执行单元发送读或写命令并接收所述FLASH命令执行单元返回的命令执
行状态、或向所述擦除单元发送擦除命令;
所述高速缓存,用于缓存来自所述内部buffer的预写入FLASH的数据、或
从所述FLASH命令执行单元读出的数据,将从所述FLASH命令执行单元读出
的数据发送到所述内部buffer、或将所述内部buffer中预写入FLASH的数据发
送至所述FLASH命令执行单元;
所述FLASH命令执行单元,用于执行所述地址控制单元发送的读或写命
令、或执行所述擦除单元发送的擦除命令,并向所述地址控制单元返回命令执
行状态,所述FLASH命令执行单元在执行读命令时将读出的数据发送至所述
高速缓存,在执行写命令时对所述高速缓存发送的数据执行FLASH写入;
所述擦除单元,用于执行所述地址控制单元发送的擦除命令,并在擦除完
成后通知所述地址控制单元向所述FLASH命令执行单元发送写命令。
2.根据权利要求1所述FLASH的控制器,其特征在于,所述地址控制单
元进一步用于,将收到的所述读或写命令写入命令寄存器,将收到的所述
FLASH的读或写地址写入FLASH地址寄存器,将收到的所述FLASH的读或
写长度写入长度寄存器,将收到的所述内部buffer的地址写入FLASH的buffer
地址寄存器。
3.根据权利要求1或2所述FLASH的控制器,其特征在于,所述地址控
制单元进一步用于,在收到所述CPU输入的FLASH读命令、FLASH的读地址
和长度、以及内部buffer的地址时,判断所述FLASH的读地址和长度是否页对
齐;在收到所述CPU输入的FLASH写命令、FLASH的写地址和长度、以及内

\t部buffer的地址时,判断所述FLASH的写地址和长度是否块对齐;
根据所述判断结果,所述地址控制单元向所述FLASH命令执行单元发送
相应命令,所述FLASH命令执行单元执行相应处理。
4.根据权利要求3所述FLASH的控制器,其特征在于,
所述地址控制单元在判断所述FLASH的读地址和长度页对齐时,按页依
次发送读命令和页地址给所述FLASH命令执行单元;
所述FLASH命令执行依据所述读命令和页地址按页读取数据并送入所述
高速缓存,在完成每页数据读取时将执行状态发送给所述地址控制单元,并在
达到所述FLASH的读长度或所述高速缓存满时,通知所述CPU通知所述地址
控制单元将所述高速缓存中的数据发送到所述内部buffer;
所述地址控制单元在判断所述FLASH的读地址和长度页不对齐时,按页
依次发送读命令、页地址和页内偏移地址给所述FLASH命令执行单元;
所述FLASH命令执行单元依据所述读命令、页地址和页内偏移地址按页
读取数据并送入所述高速缓存,在完成每页数据读取时将执行状态发送给所述
地址控制单元,并在达到所述FLASH的读长度或所述高速缓存满时,通知所
述CPU通知所述地址控制单元将所述高速缓存中的数据发送到所述内部buffer;
所述地址控制单元还用于,依据所述页地址和页内偏移地址对所述高速缓存中
的数据进行整理。
5.根据权利要求3所述FLASH的控制器,其特征在于,
所述地址控制单元进在判断所述FLASH的写地址和长度块对齐时,发送
擦除一块或多块命令给所述擦除单元;
所述擦除单元在执行相应块的擦除命令后,...

【专利技术属性】
技术研发人员:臧晓峰于翔
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1