CN102543187B - 一种高效读取的串行Flash缓冲器控制电路 - Google Patents

一种高效读取的串行Flash缓冲器控制电路 Download PDF

Info

Publication number
CN102543187B
CN102543187B CN201110453419.9A CN201110453419A CN102543187B CN 102543187 B CN102543187 B CN 102543187B CN 201110453419 A CN201110453419 A CN 201110453419A CN 102543187 B CN102543187 B CN 102543187B
Authority
CN
China
Prior art keywords
data
address
hit
serial flash
control circuit
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
CN201110453419.9A
Other languages
English (en)
Other versions
CN102543187A (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.)
Guangzhou Leading Electronic Technology Co ltd
Original Assignee
Techtotop Microelectronics Co Ltd
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 Techtotop Microelectronics Co Ltd filed Critical Techtotop Microelectronics Co Ltd
Priority to CN201110453419.9A priority Critical patent/CN102543187B/zh
Publication of CN102543187A publication Critical patent/CN102543187A/zh
Application granted granted Critical
Publication of CN102543187B publication Critical patent/CN102543187B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种高效读取的串行Flash缓冲器控制电路,包括缓冲器模块,用于Flash数据的预读取和缓存,所述控制电路还包括:地址命中算法逻辑模块,用于判断处理器访问的数据是否存在于缓冲器模块内;数据有效算法逻辑模块,用于判断缓冲器模块中数据是否有效。采用本发明的技术方案后,解决传统串行Flash访问效率不高,难以直接运行代码的问题,且节省了RAM和Pad额外的开销,从而降低了芯片设计成本。

Description

一种高效读取的串行Flash缓冲器控制电路
技术领域
本发明涉及于一种闪存控制技术,尤其是一种用于高速读取数据或直接运行代码的串行Flash缓冲器控制电路。
背景技术
在现有系统设计中,存储控制方案是必须考虑的部分。传统的SRAM技术访问速度可以达到非常高的水平,但问题是数据没办法保存下来,一旦断电所有数据都将丢失。对于一个稳定成熟的系统来说,数据(代码)的保存是必须的。解决这个问题的技术目前基本有两种,一种是ROM技术,一种是Flash技术。ROM能很好的保存代码,而且访问速率也很高,但存在一个缺点,对于那些只能烧写一次的ROM,代码一旦烧写就不能再修改。另一种是Flash技术,它很好的解决了在线擦写的需求,而且并行Flash的访问速率相当快了,但随着现代芯片工艺尺寸的急速减小,65nm、40nm已经变得很常见了,20nm、15nm也开始面市,而Flash制造工艺却跟不上芯片小尺寸工艺的需求,导致Flash没法随晶片集成在一起。如果采用片外并行Flash,那将导致芯片必须提供大量用于访问并行Flash的Pad,对于低功耗小面积的设计,往往其Pad数量会超过芯片所有其它Pad之和,这是系统设计者难以接受的;如果采用片外串行Flash,虽然Pad的数量可以减下来,但访问速率遇到了瓶颈,因为一般这种串行接口(经常是SPI)受其本身协议限制和串行的原因,通讯效率非常低,不适合代码的直接运行。
发明内容
本发明的目的是提供一种能够在串行Flash上直接运行代码的高效率的缓存器控制电路,解决传统串行Flash访问效率不高,难以直接运行代码的问题。
本发明提供一种高效读取的串行Flash缓冲器控制电路,包括缓冲器模块,用于Flash数据的预读取和缓存,所述控制电路还包括:地址命中算法逻辑模块,用于判断处理器访问的数据是否存在于缓冲器模块内;数据有效算法逻辑模块,用于判断缓冲器模块中数据是否有效。
更进一步,所述缓冲器控制电路,还有一个用于对串行Flash进行连续读操作的访问控制电路模块。
更进一步,所述缓冲器模块中每个字节单元具有相应的数据有效标志位。
更进一步,所述地址命中算法逻辑模块包括地址实命中算法和地址虚命中算法。
更进一步,所述数据有效算法逻辑模块用于计算数据是否有效,并写入所述数据有效标志位。
更进一步,所述串行Flash缓冲器控制电路所在地址被所述处理器设为Cache工作区。
更进一步,所述缓冲器模块从所述串行Flash连续预读取和缓存数据后,所述处理器向所述串行Flash缓冲器控制电路发起读操作,首先由所述地址命中算法逻辑模块中所述地址实命中算法判断所述读操作需要的数据是否实命中,是则直接从所述缓冲器模块读取数据,完成所述读操作;否则,继续由所述地址虚命中算法判断所述读操作需要的数据是否虚命中,是则等待数据有效后即返回,否则由所述缓冲器模块从所述串行Flash连续读取并返回所述处理器,由所述数据有效算法逻辑模块对所述缓冲器模块中数据进行有效性判断和标记。
采用本发明的技术方案后,解决传统串行Flash访问效率不高,难以直接运行代码的问题,且节省了RAM和Pad额外的开销,从而降低了芯片设计成本。
附图说明
图1是本发明实施例的结构示意图;
图2是本发明实施例中缓冲器模块结构示意图;
图3是本发明实施例读取操作流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明实施例的结构示意图,在本实施中,串行Flash缓冲器控制电路包括,地址命中算法逻辑模块101,用于判断处理器访问的数据是否存在于缓冲器模块内;数据有效算法逻辑模块102,用于判断缓冲器模块中数据是否有效;缓冲器模块103,用于Flash数据的预读取和缓存;缓冲器模块到串行Flash的访问控制电路104,用于对串行Flash进行连续读操作。
图2是本发明实施例中缓冲器模块结构示意图,在本实施中,缓冲器模块103除存储数据的字节单元201外,每个字节单元还配备了一个数据有效标志位202。目前的系统大部分的地址空间是按字节来计算的,为了方便起见,这里假设最小系统中所用的处理器使用了大小为N(2的整数次幂)字节一行的Cache,则对应的缓冲器模块大小是N字节,也就最多拥有N个字节地址。最简单的情况是,缓冲器模块103内的N个地址都是连续的,那缓冲器模块103需要记录的初始地址就只有一个;而最极端的情况,缓冲器模块103内的N个地址都是随机的,这样就需要记录N个初始地址。
地址命中算法逻辑模块包括地址实命中算法和地址虚命中算法两部分,前者是以缓冲器模块的N个字节地址为依据判断当前总线访问索取的数据是否存在于缓冲器模块内的,后者是以已经发起的串行Flash访问操作的地址范围与当前总线访问地址相比较而进行命中判断。地址实命中算法的具体实现是:如果总线所发地址与其长度所确定的地址范围(例如按字对齐的总线访问实际有4个连续的字节地址)可以被包括在这N个字节地址内,则称为地址全实命中;如果只有部分被包括,则称为地址部分实命中;如果全部不被包括,则称为地址未实命中。虚命中算法是在地址部分实命中和地址未实命中两种情况下对未实命中现象的补充判断,如果地址全实命中,则不触发虚命中算法,否则启动虚命中算法。虚命中算法的具体实现是:如果当前总线访问地址或一个地址范围虽然不能被包括在缓冲器模块内,但如果可以被全部包括在已经发起的串行Flash读操作的地址范围内,则称为地址全虚命中;如果部分被包括,则称为地址部分虚命中;如果全部不被包括,则称为地址未虚命中。
根据地址命中算法逻辑模块给出的判断结果,Flash控制器会以相应的方式工作。如果把实命中和虚命中判断结果组合起来,当前总线访问地址范围就可以分成实命中部分、虚命中部分和未命中部分。对于实命中部分,则不需要访问串行Flash,数据从缓冲器模块中直接获取,可以达到很快的速度;对于虚命中部分,只需要等待相应数据有效(数据有效算法将在后面详述)后即可返回;对于未命中部分,数据需要从串行Flash中读取,所花费时间跟SPI读操作周期数相关。如果当前总线访问前有已经发起但未完成的串行Flash访问操作,则根据是否影响当前访问来选择终止与否。终止该串行Flash访问操作的充分条件是,虚命中部分访问已经完成且该操作会覆盖实命中部分缓存区的数据。
由于SPI从串行Flash读取单个字节的数据需要较多的周期数,因此为了提高访问效率,应当尽可能的减少这种只取单个字节的SPI操作。基于这种思路,本串行Flash缓冲器控制电路结合处理器的行缓存工作特性,实现了一个从缓冲器模块到串行Flash的访问控制电路,让每次发起的对串行Flash的操作转变成某一长度的连续读操作,具体长度根据具体需求和当前缓存状况来定。这样通过连续读操作就提高了SPI访问的平均速率,同时预取的数据缓存在缓冲器模块内,可以为下次的总线读操作提供无需等待即时返回的数据。特别的,这种已发起的连续预取操作是可以在数据返回阶段被终止的,即,如果当前的预取操作的返回数据阶段还没有完成时,再次发生了地址未命中,则当前预取操作将会被立即终止,并发起访问新地址的下一轮操作。
由于本串行Flash缓冲器控制电路支持预取操作,支持未完成终止,而缓冲器模块容量小且可能有多个缓冲器模块初始地址,这些都影响着缓冲器模块的工作效率,为了保证从缓冲器模块返回的数据是有效的并最大化利用缓冲器模块的缓存功能,设计了数据有效算法逻辑模块。数据有效算法逻辑模块包括三个方面:
第一,判断当前数据是否准备好。如果某个缓冲器模块单元被判断为地址实命中,则它的数据必须是已经准备好的;如果被判断为虚命中,则总线必须等到它的数据准备好后才能返回,即先要从串行Flash获得数据。
第二,标定无效的缓冲器模块单元。由于未完成终止的发生,缓冲器模块初始地址就会增多,一旦达到实现时设定的最大个数,那下一次未完成终止就会产生无效的缓冲器模块单元,因为它已经不具有能识别的缓冲器模块地址。无效的缓冲器模块单元是下一次数据缓存的首选区域。
第三,为当前Flash数据在缓冲器模块内选择合适的缓存区域。由于每一个从串行Flash读取的数据必须要存放在缓冲器模块内,而缓冲器模块的容量是相当有限的,这就需要在有限的缓冲器模块内寻找最适合替换的单元。
替换的优先方法是:首先是寻找无效的缓冲器模块单元,可以提高缓冲器模块的利用效率又不会影响其他数据;其次是寻找初始地址超过Cache容量大小的,如果多个满足则选最远的,因为相距太远最近被访问的概率较小;再次是寻找初始地址小于当前总线访问地址的,如果多个满足则选最远的,因为处理器一般是向前取指令的;最后是寻找最远的,因为相距较远最近被访问的概率较小。在选定了被替换的初始地址后,由于该地址区域通常存在不止一个地址,因此还要选择该区域内离初始地址最远的缓冲单元依次替换。为了标定缓冲器模块中数据是否有效,按字节为单位,给每个字节的数据设置了一个数据有效标志位,即N个字节对应N个有效位。通过数据有效算法,可以避免重新从Flash读取已经存在于缓冲器模块内的数据,最大限度保留缓冲器模块内已有的缓冲数据,从而降低对串行Flash操作的频繁度,提高缓冲器模块的利用效率。
图3是本发明实施例读取操作流程图,在本实施中,总线读操作开始301,发起一次针对Flash控制电路的读操作,Flash控制电路内部的地址命中算法逻辑模块将会对当前访问地址进行地址命中类型判断302:如果地址命中类型是实命中,则直接从缓冲器模块获取数据303,总线读操作结束309;如果地址命中类型是虚命中,则等待从Flash读取数据304,完成总线读操作310;如果地址命中类型是未命中,则对串行Flash发起SPI读操作306,从Flash读取数据304,总线读操作结束309。发起 SPI读操作305后,数据有效算法逻辑模块判断缓冲器模块数据有效性307,并根据判断结果设置/清除数据有效位308,从而为下一次往缓冲器模块存入数据提供覆盖位置。另外,从Flash读取数据304得到的数据还会存入缓冲器模块306,数据一旦存入缓冲器模块,会触发数据有效算法逻辑判断缓冲器模块数据有效性,并设置/清除数据有效位308。
需要特别说明的是,本图3读取操作流程图仅就单个地址的单次读取做了说明,而实际上总线读取操作301和通过SPI对串行Flash的读操作305都可以是连续多次的,连续多次的多操作可能会按照本流程图示意的方式并行叠加发生。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种高效读取的串行Flash缓冲器控制电路,包括缓冲器模块,用于Flash数据的预读取和缓存,其特征在于,所述控制电路还包括:地址命中算法逻辑模块,用于判断处理器访问的数据是否存在于所述缓冲器模块内;数据有效算法逻辑模块,用于判断所述缓冲器模块中数据是否有效;所述地址命中算法逻辑模块包括地址实命中算法和地址虚命中算法,并将所述地址实命中算法和所述地址虚命中算法的判断结果进行组合,所述实命中算法是以所述缓冲器模块的N个字节地址为依据判断当前总线访问索取的数据是否存在于所述缓冲器模块内的,所述地址虚命中算法是以已经发起的串行Flash访问操作的地址范围与当前总线访问地址相比较而进行命中判断的;当前总线访问的地址范围分成实命中部分、虚命中部分和未命中部分;对于所述实命中部分,则不需要访问串行Flash,数据从所述缓冲器模块中直接获取;对于所述虚命中部分,只需要等待相应数据有效后即可返回;对于所述未命中部分,数据从串行Flash中读取。
2.根据权利要求1所述的串行Flash缓冲器控制电路,其特征在于,所述缓冲器控制电路,还有一个用于对串行Flash进行连续读操作的访问控制电路模块。
3.根据权利要求1所述的串行Flash缓冲器控制电路,其特征在于,所述缓冲器模块中每字节单元具有相应的数据有效标志位。
4.根据权利要求3所述的串行Flash缓冲器控制电路,其特征在于,所述数据有效算法逻辑模块用于计算数据是否有效,并写入所述数据有效标志位。
5.根据权利要求1至4任一项所述的串行Flash缓冲器控制电路,其特征在于,所述串行Flash缓冲器控制电路所在地址被所述处理器设为Cache工作区。
6.根据权利要求1至4任一项所述的串行Flash缓冲器控制电路,其特征在于,所述缓冲器模块从所述串行Flash连续预读取和缓存数据后,所述处理器向所述串行Flash缓冲器控制电路发起读操作,首先由所述地址命中算法逻辑模块中所述地址实命中算法判断所述读操作需要的数据是否实命中,是则直接从所述缓冲器模块读取数据,完成所述读操作,否则,继续由所述地址虚命中算法判断所述读操作需要的数据是否虚命中,是则等待数据有效后即返回,否则由所述缓冲器模块从所述串行Flash读取并返回所述处理器,由所述数据有效算法逻辑模块对所述缓冲器模块中数据进行有效性判断和标记。
CN201110453419.9A 2011-12-30 2011-12-30 一种高效读取的串行Flash缓冲器控制电路 Active CN102543187B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110453419.9A CN102543187B (zh) 2011-12-30 2011-12-30 一种高效读取的串行Flash缓冲器控制电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110453419.9A CN102543187B (zh) 2011-12-30 2011-12-30 一种高效读取的串行Flash缓冲器控制电路

Publications (2)

Publication Number Publication Date
CN102543187A CN102543187A (zh) 2012-07-04
CN102543187B true CN102543187B (zh) 2015-10-28

Family

ID=46349879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110453419.9A Active CN102543187B (zh) 2011-12-30 2011-12-30 一种高效读取的串行Flash缓冲器控制电路

Country Status (1)

Country Link
CN (1) CN102543187B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914391B (zh) * 2013-01-07 2016-12-28 群联电子股份有限公司 数据读取方法、存储器控制器与存储器存储装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517884A (zh) * 2003-01-09 2004-08-04 三星电子株式会社 控制串行快闪存储器中适当执行的装置和方法及相应芯片
CN1797326A (zh) * 2004-12-21 2006-07-05 三菱电机株式会社 控制电路以及控制方法
CN1838091A (zh) * 2005-09-19 2006-09-27 威盛电子股份有限公司 缓冲高速缓冲存储器要求的处理器与该缓冲存储器及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWM317043U (en) * 2006-12-27 2007-08-11 Genesys Logic Inc Cache device of the flash memory address transformation layer
US7660177B2 (en) * 2007-12-21 2010-02-09 Silicon Storage Technology, Inc. Non-volatile memory device having high speed serial interface
JP5309703B2 (ja) * 2008-03-07 2013-10-09 日本電気株式会社 共有メモリの制御回路、制御方法及び制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517884A (zh) * 2003-01-09 2004-08-04 三星电子株式会社 控制串行快闪存储器中适当执行的装置和方法及相应芯片
CN1797326A (zh) * 2004-12-21 2006-07-05 三菱电机株式会社 控制电路以及控制方法
CN1838091A (zh) * 2005-09-19 2006-09-27 威盛电子股份有限公司 缓冲高速缓冲存储器要求的处理器与该缓冲存储器及方法

Also Published As

Publication number Publication date
CN102543187A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN105095116B (zh) 缓存替换的方法、缓存控制器和处理器
US11636038B2 (en) Method and apparatus for controlling cache line storage in cache memory
EP2743834B1 (en) Dynamic set-associative cache apparatus for processor and visiting method thereof
CN105027211B (zh) 自适应粒度行缓冲器高速缓存
CN103425600B (zh) 一种固态盘闪存转换层中的地址映射方法
CN104252425B (zh) 一种指令缓存的管理方法和处理器
KR102404643B1 (ko) 인-메모리 캐쉬 관리자를 구비한 hbm
JP2009205335A (ja) 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法
CN106569960B (zh) 一种混合主存的末级缓存管理方法
CN102216914A (zh) 螺旋高速缓存电源管理、自适应大小调整和接口操作
CN104834483B (zh) 一种提升嵌入式mcu性能的实现方法
CN112558889A (zh) 一种基于SEDRAM的堆叠式Cache系统、控制方法和Cache装置
CN103345451A (zh) 一种在多核处理器中缓冲数据的方法
CN107463510A (zh) 一种面向高性能的异构多核共享cache缓冲管理方法
CN102541510A (zh) 一种指令缓存系统及其取指方法
CN108959125B (zh) 一种支持数据快速获取的存储访问方法和装置
US6959363B2 (en) Cache memory operation
US20060143400A1 (en) Replacement in non-uniform access cache structure
US20120215959A1 (en) Cache Memory Controlling Method and Cache Memory System For Reducing Cache Latency
CN105095104A (zh) 数据缓存处理方法及装置
CN102543187B (zh) 一种高效读取的串行Flash缓冲器控制电路
CN109669881B (zh) 一种基于Cache空间预约算法的计算方法
CN108874690A (zh) 数据预取的实现方法和处理器
CN104850503B (zh) 一种通用地址空间管理方法及其系统
CN100428200C (zh) 一种片上指令cache的实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Two road 523808 in Guangdong province Dongguan City Songshan Lake high tech Industrial Development Zone headquarters No. 17 room A410-A411

Applicant after: TECHTOTOP MICROELECTRONICS Co.,Ltd.

Address before: Two road 523808 in Guangdong province Dongguan City Songshan Lake high tech Industrial Development Zone headquarters No. 17 room A410-A411

Applicant before: TECHTOTOP MICROELECTRICS Co.,Ltd. DONGGUAN CITY

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: DONGGUAN TECHTOP MICROELECTRONICS CO., LTD. TO: TAIDOU MICROELECTRONICS TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: 510663 Guangzhou science and Technology Development Zone, Guangdong City Cai Cai Cai road, room A701, No. 11

Patentee after: TECHTOTOP MICROELECTRONICS Co.,Ltd.

Address before: Two road 523808 in Guangdong province Dongguan City Songshan Lake high tech Industrial Development Zone headquarters No. 17 room A410-A411

Patentee before: TECHTOTOP MICROELECTRONICS Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 510530 Room 301 and 401, Building 42, Dongzhong Road, East District, Guangzhou Economic and Technological Development Zone, Guangdong Province

Patentee after: TECHTOTOP MICROELECTRONICS Co.,Ltd.

Address before: 510663 Guangzhou science and Technology Development Zone, Guangdong City Cai Cai Cai road, room A701, No. 11

Patentee before: TECHTOTOP MICROELECTRONICS Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240226

Address after: 510000, Room 301 and 401, Building 2, No. 42 Dongzhong Road, Huangpu District, Guangzhou City, Guangdong Province (Guangzhou Economic and Technological Development Zone)

Patentee after: GUANGZHOU LEADING ELECTRONIC TECHNOLOGY CO.,LTD.

Country or region after: China

Address before: 510530 rooms 301 and 401, building 2, No. 42, Dongzhong Road, East District, Guangzhou Economic and Technological Development Zone, Guangdong Province

Patentee before: TECHTOTOP MICROELECTRONICS Co.,Ltd.

Country or region before: China