CN112148366A - 一种芯片降低功耗提升性能的flash加速方法 - Google Patents
一种芯片降低功耗提升性能的flash加速方法 Download PDFInfo
- Publication number
- CN112148366A CN112148366A CN202010958159.XA CN202010958159A CN112148366A CN 112148366 A CN112148366 A CN 112148366A CN 202010958159 A CN202010958159 A CN 202010958159A CN 112148366 A CN112148366 A CN 112148366A
- Authority
- CN
- China
- Prior art keywords
- data
- flash
- module
- fetching
- prefetching
- 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.)
- Pending
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000010586 diagram Methods 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出Flash加速控制器的设计,采用数据预取缓存、指令现场保存和替换算法可控加速方案。通过软件配置或自适应动态切换,来选择加速方案,实现嵌入式应用中不同场景需求下的***性能提升。本文工作的主要创新点如下:1)Flash预取操作:对于顺序预取数据,综合使用预取操作,实现读取加速;对于非顺序预取数据,提出指令缓存技术和最近最少使用算法替换数据原则,降低预取缺失代价;2)高频指令缓存操作:可单独控制使能,减少对取指操作影响,提高性能。3)通过软件控制流程单独实现取指和取数独立加速方案。
Description
技术领域
本发明属于低功耗芯片的技术领域。特别涉及一种芯片降低功耗提升性能的FLASH加速方法。
背景技术
在低功耗、低成本的嵌入式芯片SoC(System on Chip)设计领域片上Flash作为指令和数据的非易失性存储模块正得到愈加广泛的应用。在嵌入式芯片中,处理器负责控制、操作***平台和般的信号处理等任务,Flash用来存储指令和数据。处理器需要访问Flash以获得所需要的指令和数据,才能完成相应的任务操作。通常片上Flash的大部分空间用来存储指令,处理器对于指令的访问更加频繁。相对于处理器可以通过指令级并行、超标量设计和大量使用寄存器来提高性能,Flash性能的提升只能依赖于工艺改良等不多的办法。因此,随着处理器性能的提升,Flash的取指速度逐渐成为***性能的瓶颈。换而言之,Flash取指速度的快慢会直接影响和制约着嵌入式***芯片SoC的整体性能。因此,研究如何提高Flash的读取速度对于提高***的整体性能有着重要意义。
发明内容
本发明要解决的技术问题是对现有技术进行改进,提出的Flash加速控制器的设计,采用预取缓存、指令现场保存和存储算法加速方案。通过软件配置或自适应动态切换,来选择加速方案,实现嵌入式应用中不同场景需求下的***性能提升。
为了解决上述问题,本发明的降低功耗提升性能的FLASH加速方法包括五个步骤:
步骤1:高频指令由软件在将数据写入flash之前或者预读一遍flash数据来统计,并将其存放在高频指令缓存区。
步骤2:根据最近最少用算法LRU(least-recently used),加速缓存控制器将预取的flash数据存放在预取数据模块中。预取数据模块分两部分:顺序预取模块,LRU替换模块。加速缓存控制器预取数据模块有空值时会自动从flash取数,并存放在预取数据模块的空闲位置。
步骤3:CPU访问flash数据时优先从预取数据模块中读取。对于CPU访问顺序预取模块和LRU替换模块没有优先级区别。。
步骤4:当CPU访问的数据不在预取数据模块中时,保存当前跳转指令,同时重新从flash读取数据。由于需要重新从flash读取数据并且flash访问速度较慢,所以CPU访问要***等待周期。
步骤5:根据最近最少使用算法将从flash读取的数据存入预取数据模块中,从flash读取的数据先存放在顺序预取模块,同事根据存储算法算法用顺序预取模块的数据替换掉LRU替换模块的数据。循环步骤2~5。
附图说明
图1降低功耗提升性能的flash加速方法方框图;
图2一般flash读时序图;
图3flash加速读时序图
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细的说明:
本发明的降低功耗提升性能的flash加速方法方框图如图1所示,包括flash、数据流控制模块、加速缓存控制器、flash控制、总线接口、擦写模块等模块。
降低功耗提升性能的flash加速方法时序图如图2、图3所示,其中图2有延时的flash读时序图,图3flash加速时序图。
通过下面五个步骤实现:
步骤1:高频指令由软件在将数据写入flash之前或者预读一遍flash数据来统计,并将其存放在高频指令缓存区。
步骤2:根据最近最少用算法LRU(least-recently used),加速缓存控制器将预取的flash数据存放在预取数据模块中。预取数据模块分两部分:顺序预取模块,LRU替换模块。加速缓存控制器预取数据模块有空值时会自动从flash取数,并存放在预取数据模块的空闲位置。
步骤3:CPU访问flash数据时优先从预取数据模块中读取。对于CPU访问顺序预取模块和LRU替换模块没有优先级区别。。
步骤4:当CPU访问的数据不在预取数据模块中时,保存当前跳转指令,同时重新从flash读取数据。由于需要重新从flash读取数据并且flash访问速度较慢,所以CPU访问要***等待周期。
步骤5:根据最近最少使用算法将从flash读取的数据存入预取数据模块中,从flash读取的数据先存放在顺序预取模块,同时根据存储算法算法用顺序预取模块的数据替换掉LRU替换模块的数据。循环步骤2~5。
Claims (6)
1.一种芯片降低功耗提升性能的FLASH加速方法,其特征在于,主要包括步骤:
步骤1、加速缓存控制器将flash中高频使用到的指令存放在高频指令缓存区;
步骤2、根据最近最少用算法LRU(least-recently used),加速缓存控制器将预取的flash数据存放在预取数据模块中;
步骤3、CPU访问flash数据时优先从预取数据模块的buffer中读取;
步骤4、当CPU访问的数据不在预取数据模块中时,保存当前跳转指令,同时重新从flash读取数据;
步骤5、根据最近最少使用算法将从flash读取的数据存入预取数据模块中,循环步骤2~5。
2.根据权利要求1所述的一种芯片降低功耗提升性能的FLASH加速方法,其特征在于,所述步骤1:在加速缓存控制器将flash中高频使用到的指令存放在高频指令缓存区:
其中,高频指令由软件在将数据写入flash之前或者预读一遍flash数据来统计,并将其存放在高频指令缓存区。
3.根据权利要求1所述的一种芯片降低功耗提升性能的FLASH加速方法,其特征在于,所述步骤2:根据最近最少用算法LRU(least-recently used),加速缓存控制器将预取的flash数据存放在预取数据模块中:
其中,预取数据模块分两部分:顺序预取模块、LRU替换模块,加速缓存控制器预取数据模块有空值时会自动从flash取数,并存放在预取数据模块的空闲位置。
4.根据权利要求1和3所述的一种芯片降低功耗提升性能的FLASH加速方法,其特征在于,所述步骤3:CPU访问flash数据时优先从预取数据模块中读取:
其中,对于CPU访问顺序预取模块和LRU替换模块没有优先级区别。
5.根据权利要求1所述的一种芯片降低功耗提升性能的FLASH加速方法,其特征在于,所述步骤4:当CPU访问的数据不在预取数据模块中时,保存当前跳转指令,同时重新从flash读取数据:
其中,由于需要重新从flash读取数据并且flash访问速度较慢,所以CPU访问要***等待周期。
6.根据权利要求1和3所述的一种芯片降低功耗提升性能的FLASH加速方法,其特征在于,所述步骤5:根据最近最少使用算法将从flash读取的数据存入预取数据模块中,循环步骤2~5:
其中,从flash读取的数据先存放在顺序预取模块,同时根据存储算法算法用顺序预取模块的数据替换掉LRU替换模块的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010958159.XA CN112148366A (zh) | 2020-09-14 | 2020-09-14 | 一种芯片降低功耗提升性能的flash加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010958159.XA CN112148366A (zh) | 2020-09-14 | 2020-09-14 | 一种芯片降低功耗提升性能的flash加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112148366A true CN112148366A (zh) | 2020-12-29 |
Family
ID=73889655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010958159.XA Pending CN112148366A (zh) | 2020-09-14 | 2020-09-14 | 一种芯片降低功耗提升性能的flash加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148366A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281570A (zh) * | 2021-12-23 | 2022-04-05 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
CN116896606A (zh) * | 2022-12-31 | 2023-10-17 | 苏州精源创智能科技有限公司 | 一种嵌入式应用场景中的图片的压缩和读取方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566978A (zh) * | 2010-09-30 | 2012-07-11 | Nxp股份有限公司 | 存储器加速器缓冲器置换方法及*** |
CN105373338A (zh) * | 2014-08-20 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 一种flash的控制方法和控制器 |
WO2017211240A1 (zh) * | 2016-06-07 | 2017-12-14 | 华为技术有限公司 | 一种处理器芯片以及指令缓存的预取方法 |
CN108874685A (zh) * | 2018-06-21 | 2018-11-23 | 郑州云海信息技术有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN110888600A (zh) * | 2019-11-13 | 2020-03-17 | 西安交通大学 | 一种面向nand闪存的缓冲区管理方法 |
-
2020
- 2020-09-14 CN CN202010958159.XA patent/CN112148366A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566978A (zh) * | 2010-09-30 | 2012-07-11 | Nxp股份有限公司 | 存储器加速器缓冲器置换方法及*** |
CN105373338A (zh) * | 2014-08-20 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 一种flash的控制方法和控制器 |
WO2017211240A1 (zh) * | 2016-06-07 | 2017-12-14 | 华为技术有限公司 | 一种处理器芯片以及指令缓存的预取方法 |
CN107479860A (zh) * | 2016-06-07 | 2017-12-15 | 华为技术有限公司 | 一种处理器芯片以及指令缓存的预取方法 |
CN108874685A (zh) * | 2018-06-21 | 2018-11-23 | 郑州云海信息技术有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN110888600A (zh) * | 2019-11-13 | 2020-03-17 | 西安交通大学 | 一种面向nand闪存的缓冲区管理方法 |
Non-Patent Citations (3)
Title |
---|
蒋进松等: ""基于预取和缓存原理的片上Flash 加速控制器设计"", 《计算机工程与科学》, vol. 38, no. 12, pages 2381 - 2391 * |
钟锐;方文楷;: "嵌入式***的高速缓存管理", 电脑知识与技术, no. 12 * |
陆政;范长军;江云飞;: "基于OpenSSD的闪存转换算法优化", 计算机***应用, no. 05 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281570A (zh) * | 2021-12-23 | 2022-04-05 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
WO2023116093A1 (zh) * | 2021-12-23 | 2023-06-29 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
CN114281570B (zh) * | 2021-12-23 | 2024-05-03 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
CN116896606A (zh) * | 2022-12-31 | 2023-10-17 | 苏州精源创智能科技有限公司 | 一种嵌入式应用场景中的图片的压缩和读取方法 |
CN116896606B (zh) * | 2022-12-31 | 2024-02-06 | 苏州精源创智能科技有限公司 | 一种嵌入式应用场景中的图片的压缩和读取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9396117B2 (en) | Instruction cache power reduction | |
US6978350B2 (en) | Methods and apparatus for improving throughput of cache-based embedded processors | |
JP3739491B2 (ja) | プリフェッチ命令を用いるハーバードアーキテクチャキャッシュメモリの調和したソフトウェア制御 | |
US6564313B1 (en) | System and method for efficient instruction prefetching based on loop periods | |
EP1110151A1 (en) | Buffering system bus for external-memory accesses | |
KR102594288B1 (ko) | 성능 또는 에너지 소모 특성이 상이한 제1 및 제2 처리 모드를 갖는 처리 파이프라인 | |
CN109461113B (zh) | 一种面向数据结构的图形处理器数据预取方法及装置 | |
US6282706B1 (en) | Cache optimization for programming loops | |
CN112148366A (zh) | 一种芯片降低功耗提升性能的flash加速方法 | |
US20090177842A1 (en) | Data processing system and method for prefetching data and/or instructions | |
WO2023129386A1 (en) | Leveraging processing-in-memory (pim) resources to expedite non-pim instructions executed on a host | |
CN116149554A (zh) | 一种基于risc-v及其扩展指令的数据存储处理***及其方法 | |
US11449428B2 (en) | Enhanced read-ahead capability for storage devices | |
US9645825B2 (en) | Instruction cache with access locking | |
CN112395000B (zh) | 一种数据预加载方法和指令处理装置 | |
CN111639042A (zh) | 一种预取buffer数据一致性的处理方法及装置 | |
CN105786758A (zh) | 一种具有数据缓存功能的处理器装置及其数据读写方法 | |
JP2008015668A (ja) | タスク管理装置 | |
JP5116275B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
JP2007193433A (ja) | 情報処理装置 | |
CN116700794A (zh) | 一种获取待执行指令的方法及*** | |
CN111475203B (zh) | 一种用于处理器的指令读取方法以及相应的处理器 | |
CN116627335A (zh) | 一种低功耗eFlash的读取加速*** | |
JP2008052518A (ja) | Cpuシステム | |
JPH0651982A (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201229 |
|
WD01 | Invention patent application deemed withdrawn after publication |