CN104834483A - 一种提升嵌入式mcu性能的实现方法 - Google Patents
一种提升嵌入式mcu性能的实现方法 Download PDFInfo
- Publication number
- CN104834483A CN104834483A CN201510236587.0A CN201510236587A CN104834483A CN 104834483 A CN104834483 A CN 104834483A CN 201510236587 A CN201510236587 A CN 201510236587A CN 104834483 A CN104834483 A CN 104834483A
- Authority
- CN
- China
- Prior art keywords
- nonvolatile memory
- instruction
- processor
- memory
- sheet
- 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.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本文公开了一种提升嵌入式MCU性能的实现方法,包括处理器,处理器接口,数据缓存,片内非易失性存储器,存储器接口和预取控制器。本发明的特点是利用片内非易失性存储器和处理器数据位宽之间的比例关系,使用数据缓存,按照特定的预取控制方法,实现片内非易失性存储器的读取加速。由于技术和成本限制,片内非易失性存储器的读取速率一般较慢,从而限制了MCU的处理速率。为了解决该问题,本发明在MCU中利用特殊的数据缓存和预取控制器,极大地提高了非易失性存储器的数据吞吐率,即提高了MCU的性能,而且使用了数字逻辑设计的乒乓结构和流水线技术,具有面积小,成本低,速率快,易于实现等优点。
Description
技术领域
一种提升嵌入式MCU性能的实现方法,属于集成电路设计领域,特别涉及MCU中对片内非易失性存储器中指令读取加速的设计。
背景技术
在集成电路领域中,随着芯片的规模和复杂度越来越高,对存储器的容量和访问速率的要求也越来越高。作为芯片最常用的非易失性存储器Flash、OTP和MTP等,承担着越来越重要的作用。与此同时,这些非易失性存储器的访问速率相对较低,是提高芯片整体工作频率的瓶颈。
为了提高片内非易失性存储器的访问速率,使用预取控制器是一种有效的方法,现有的一种方式是使用高速缓冲存储器(Cache),Cache是CPU和片内非易失性存储器之间的一级缓冲存储器,虽然极大地提高了片内非易失性存储器的读取速率,但其使用的存储器容量较大,使芯片的成本大大提高。
本发明利用片内非易失性存储器和CPU数据位宽成之间的比例关系,以及程序指令存储地址多为连续的特点,旨在MCU中实现一种低成本、高效的片内片内非易失性存储器读取加速方法,从而提升MCU的性能。
发明内容
本发明公开了一种提升嵌入式MCU性能的实现方法,利用片内非易失性存储器每次取出的位宽和处理器总线位宽之间的比例关系,使用数据缓存,按照特定的预取控制方法,实现片内片内非易失性存储器的读取加速,从而提升MCU的性能。
一种提升嵌入式MCU性能的实现方法,其特征在于包括:
处理器,用于执行片内非易失性存储器中读取的指令;
处理器接口,用于处理器和数据缓存之间的通信;
数据缓存,用于缓存非易失性存储器读出的指令,供处理器读取;
存储器接口,用于非易失性存储器和数据缓存之间的通信;
片内非易失性存储器,用于存储指令;
预取控制器,用于协调处理器接口,数据缓存和存储器接口,实现片内非易失性存储器数据预取和处理器指令读取。
优选的所述的处理器是位宽为M比特的CPU;
优选的所述的片内非易失性存储器是位宽为(M×N)比特的存储器;
优选的所述的数据缓存,由两个(M×N)比特寄存器或锁存器组成;
优选的所述的处理器接口,能够发出使处理器等待的指示信号;
优选的所述的预取控制器,利用片内非易失性存储器和CPU数据位宽之间的比例关系,以及所需指令在片内非易失性存储器中地址多为连续的特点,从片内非易失性存储器中一次读取N个M比特指令放入其中一个数据缓存中,CPU在至少N个周期内有指令读取,在此期间从片内非易失性存储器读取另一组指令放入另一个数据缓存,如此往复,形成流水结构;
优选的所述的预取控制器,采用特殊的预取控制和地址比较命中方法,当所需指令在片内非易失性存储器中地址不连续时,CPU读取未命中,处理器接口发出等待信号,舍弃两个缓存中数据,重新从片内非易失性存储器中预取指令;其特征在于自动速率匹配,片内非易失性存储器预取延时周期数随着CPU的工作频率自动改变。
本发明利用片内非易失性存储器和CPU数据位宽之间的比例关系,以及程序指令存储地址多为连续的特点,只使用两个数据缓存,就实现了片内片内非易失性存储器读取加速,同时兼顾了成本和效率。而且本发明在实现过程中使用了数字逻辑设计的乒乓结构和流水线等技术,具有面积小,成本低,速率快,易于实现等优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明具体实施例的提升嵌入式MCU性能实现方法的总体框图;
图2是本发明具体实施例的提升嵌入式MCU性能实现方法的详细框图;
图3是本发明具体实施例的指令地址连续时的时序图;
图4是本发明具体实施例的指令地址不连续时的时序图。
具体实施方式
为了更加清晰地描述本发明的原理,结构和优点,以下结合附图,从方法原理,硬件电路和过程时序等方面,对本发明做进一步详细说明。此处所描述的具体实施内容仅仅用以解释本发明,并不用于限定本发明。
本发明公开了一种提升嵌入式MCU性能的实现方法,利用片内非易失性存储器每次取出的数据位宽和处理器总线位宽之间的比例,使用数据缓存,按照特定的预取控制方法,实现片内片内非易失性存储器读取加速,从而提升了MCU的性能。
图1给出了本发明的提升嵌入式MCU性能实现方法的总体框图,详述如下:
提升嵌入式MCU性能的实现方法包括:
处理器100,用于执行片内非易失性存储器中读取的指令;
处理器接口200,用于处理器和数据缓存之间的通信;
数据缓存300,用于缓存非易失性存储器读出的指令,供处理器读取;
存储器接口400,用于非易失性存储器和数据缓存之间的通信;
片内非易失性存储器500,用于存储指令;
预取控制器600,用于协调处理器接口,数据缓存和存储器接口,实现片内非易失性存储器数据预取和处理器指令读取。
在预取控制器600中,利用片内非易失性存储器和CPU数据位宽的比例关系,以及程序指令存储地址多为连续的特点,从片内非易失性存储器中一次读取N个M比特指令放入其中一个数据缓存中,CPU在至少N个周期内有数据读取,在此期间从片内非易失性存储器读取另一组指令放入另一个数据缓存,如此往复,形成流水结构,从而加速了CPU从片内非易失性存储器中读取指令的速率。
图2给出了本发明实施例的提升嵌入式MCU性能实现方法的详细框图,针对部分内容详述如下:
数据缓存300包含:
缓存A301和缓存B302。
缓存A301和缓存B302组成乒乓结构,从片内非易失性存储器500中一次读取N个M比特指令按顺序放入缓存A301中,在指令地址连续的情况下,处理器100在N个周期内可以获取到指令,在此期间从片内非易失性存储器500读取另一组指令放入缓存B302中,如此往复,形成流水。
预取控制器600包含:
读地址缓存601,读取命中控制602,存储器读取控制603,缓存读取选择控制604和缓存写入选择控制605。
读地址缓存601存储CPU上一个读取的指令地址;读取命中控制602通过比较读地址缓存601和CPU当前读取的指令地址,来判断CPU读取指令是否命中:CPU当前读取的指令地址与读地址缓存601加1相等时,读取命中,否则,读取未命中;存储器读取控制603控制片内非易失性存储器500读操作时序,第一次或未命中读取时,根据CPU的工作时钟,自动调整需要的时钟周期数,后面读取已经形成流水结构,每隔N个CPU时钟周期读取一次,这样就实现自动速率匹配,同时,当读取未命中是,存储器读取控制603还控制处理器接口产生CPU等待信号;缓存读取选择控制604用于控制处理器接口200从缓存A301还是缓存B302中读取指令,并根据指令地址,控制从缓存中N个指令中选取所需指令;缓存写入选择控制605用于控制从片内非易失性存储器500读出的数据放入缓存A301还是缓存B302中。
为了方便说明,本实施例中采用如下设置:N=4。
图3给出了本发明实施例的指令地址连续时的时序图,可以看到,从片内非易失性存储器500中一次读取4个M比特指令放入缓存A301中,由于指令地址连续,处理器100在4个周期内有指令读取,在此期间从片内非易失性存储器500中读取另一组指令放入缓存B302,如此往复,形成流水结构,充分利用了同一套硬件资源,具有稳定性高,成本低等优点。
图4给出了本发明实施例的指令地址不连续时的时序图,当遇到指令地址不连续的情况,清除缓存A301和缓存B302数据,缓存读取选择控制604和缓存写入选择控制605同时指向缓存A301,重新开始预取过程。
本发明利用片内非易失性存储器和CPU数据位宽之间的比例关系,以及程序指令存储地址多为连续的特点,只使用两个数据缓存,就实现了片内非易失性存储器读取加速,同时兼顾成本和效率。而且本发明在实现过程中使用了数字逻辑设计的流水线,资源复用等技术,具有面积小,成本低,速率快,易于实现等优点。
以上实施例仅用具体实施说明本发明的实现过程和结构,在此基础上可以有多种变化,这种基于本发明结构的变化均包含在本发明的保护范围之内。
Claims (8)
1.一种提升嵌入式MCU性能的实现方法,其特征在于,包括:
处理器,用于执行片内非易失性存储器中读取的指令;
处理器接口,用于处理器和数据缓存之间的通信;
数据缓存,用于缓存非易失性存储器读出的指令,供处理器读取;
存储器接口,用于非易失性存储器和数据缓存之间的通信;
片内非易失性存储器,用于存储指令;
预取控制器,用于协调处理器接口,数据缓存和存储器接口,实现片内非易失性存储器数据预取和处理器指令读取。
2.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述处理器是位宽为M比特的CPU。
3.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述存储器是位宽为(M×N)比特的存储器。
4.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述数据缓存由两个(M×N)比特寄存器或锁存器组成。
5.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述处理器接口能够发出使处理器等待的指示信号。
6.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述预取控制器利用非易失性存储器和CPU数据位宽之间的比例关系,以及所需指令在非易失性存储器中地址多为连续的特点,从非易失性存储器中一次读取N个M比特指令放入其中一个数据缓存中,CPU在至少N个周期内有指令读取,在此期间从非易失性存储器读取另一组指令放入另一个数据缓存,如此往复,形成流水结构。
7.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述预取控制器采用特殊的预取控制和地址比较命中方法,当所需指令在非易失性存储器中地址不连续时,CPU读取未命中,处理器接口发出等待信号,舍弃两个缓存中数据,重新从片内非易失性存储器中预取指令。
8.如权利要求1所述的提升嵌入式MCU性能的实现方法,其特征在于:所述预取控制器自动速率匹配,片内非易失性存储器预取延时周期数随着CPU的工作频率自动改变。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510236587.0A CN104834483B (zh) | 2015-05-11 | 2015-05-11 | 一种提升嵌入式mcu性能的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510236587.0A CN104834483B (zh) | 2015-05-11 | 2015-05-11 | 一种提升嵌入式mcu性能的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834483A true CN104834483A (zh) | 2015-08-12 |
CN104834483B CN104834483B (zh) | 2018-02-27 |
Family
ID=53812399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510236587.0A Active CN104834483B (zh) | 2015-05-11 | 2015-05-11 | 一种提升嵌入式mcu性能的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834483B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229576A (zh) * | 2016-03-24 | 2017-10-03 | 上海复旦微电子集团股份有限公司 | 一种降低片上***运行功耗的装置和方法 |
CN107273205A (zh) * | 2016-04-07 | 2017-10-20 | 国际商业机器公司 | 用于在计算机处理器中调度指令的方法和*** |
CN108399146A (zh) * | 2018-02-26 | 2018-08-14 | 上海东软载波微电子有限公司 | Flash控制器、取指令方法及计算机可读存储介质 |
CN109857679A (zh) * | 2017-11-30 | 2019-06-07 | 爱思开海力士有限公司 | 存储器控制器、存储器***以及存储器***的操作方法 |
CN113656074A (zh) * | 2021-10-18 | 2021-11-16 | 深圳市智想科技有限公司 | 一种risc架构处理器及其并行流水线结构设计方法 |
CN114281570A (zh) * | 2021-12-23 | 2022-04-05 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
CN116431218A (zh) * | 2023-05-10 | 2023-07-14 | 灵动微电子(苏州)有限公司 | 一种可兼容的芯片存储器控制方法、***和控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249858A1 (en) * | 2003-06-03 | 2004-12-09 | Hitachi, Ltd. | Control method of storage control apparatus and storage control apparatus |
CN1571427A (zh) * | 2004-04-30 | 2005-01-26 | 中兴通讯股份有限公司 | 降低虚级联恢复模块工作频率的方法 |
CN1650259A (zh) * | 2002-04-30 | 2005-08-03 | 皇家飞利浦电子股份有限公司 | 具有非易失性存储器的集成电路以及用于从所述存储器中取数据的方法 |
CN101097562A (zh) * | 2006-06-27 | 2008-01-02 | 深圳市中兴集成电路设计有限责任公司 | 一种突破非易失性存储器件速度瓶颈的装置 |
CN104375962A (zh) * | 2014-11-10 | 2015-02-25 | 中国航天科技集团公司第九研究院第七七一研究所 | ***芯片中cache与总线接口的统一位宽转换结构及其转换方法 |
-
2015
- 2015-05-11 CN CN201510236587.0A patent/CN104834483B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1650259A (zh) * | 2002-04-30 | 2005-08-03 | 皇家飞利浦电子股份有限公司 | 具有非易失性存储器的集成电路以及用于从所述存储器中取数据的方法 |
US20040249858A1 (en) * | 2003-06-03 | 2004-12-09 | Hitachi, Ltd. | Control method of storage control apparatus and storage control apparatus |
CN1571427A (zh) * | 2004-04-30 | 2005-01-26 | 中兴通讯股份有限公司 | 降低虚级联恢复模块工作频率的方法 |
CN101097562A (zh) * | 2006-06-27 | 2008-01-02 | 深圳市中兴集成电路设计有限责任公司 | 一种突破非易失性存储器件速度瓶颈的装置 |
CN104375962A (zh) * | 2014-11-10 | 2015-02-25 | 中国航天科技集团公司第九研究院第七七一研究所 | ***芯片中cache与总线接口的统一位宽转换结构及其转换方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107229576A (zh) * | 2016-03-24 | 2017-10-03 | 上海复旦微电子集团股份有限公司 | 一种降低片上***运行功耗的装置和方法 |
CN107273205A (zh) * | 2016-04-07 | 2017-10-20 | 国际商业机器公司 | 用于在计算机处理器中调度指令的方法和*** |
CN107273205B (zh) * | 2016-04-07 | 2020-06-26 | 国际商业机器公司 | 用于在计算机处理器中调度指令的方法和*** |
US10838728B2 (en) | 2016-04-07 | 2020-11-17 | International Business Machines Corporation | Parallel slice processor shadowing states of hardware threads across execution slices |
CN109857679B (zh) * | 2017-11-30 | 2024-03-08 | 爱思开海力士有限公司 | 存储器控制器、存储器***以及存储器***的操作方法 |
CN109857679A (zh) * | 2017-11-30 | 2019-06-07 | 爱思开海力士有限公司 | 存储器控制器、存储器***以及存储器***的操作方法 |
CN108399146A (zh) * | 2018-02-26 | 2018-08-14 | 上海东软载波微电子有限公司 | Flash控制器、取指令方法及计算机可读存储介质 |
CN108399146B (zh) * | 2018-02-26 | 2021-11-23 | 上海东软载波微电子有限公司 | Flash控制器、取指令方法及计算机可读存储介质 |
CN113656074A (zh) * | 2021-10-18 | 2021-11-16 | 深圳市智想科技有限公司 | 一种risc架构处理器及其并行流水线结构设计方法 |
CN113656074B (zh) * | 2021-10-18 | 2022-02-08 | 深圳市智想科技有限公司 | 一种risc架构处理器及其并行流水线结构设计方法 |
CN114281570A (zh) * | 2021-12-23 | 2022-04-05 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
WO2023116093A1 (zh) * | 2021-12-23 | 2023-06-29 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
CN114281570B (zh) * | 2021-12-23 | 2024-05-03 | 合肥市芯海电子科技有限公司 | 嵌入式控制电路、控制方法、装置及芯片 |
CN116431218A (zh) * | 2023-05-10 | 2023-07-14 | 灵动微电子(苏州)有限公司 | 一种可兼容的芯片存储器控制方法、***和控制器 |
CN116431218B (zh) * | 2023-05-10 | 2024-01-26 | 灵动微电子(苏州)有限公司 | 一种可兼容的芯片存储器控制方法、***和控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN104834483B (zh) | 2018-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104834483A (zh) | 一种提升嵌入式mcu性能的实现方法 | |
US20050108480A1 (en) | Method and system for providing cache set selection which is power optimized | |
US7966506B2 (en) | Saving power in a computer system | |
US9343127B1 (en) | Memory device having an adaptable number of open rows | |
US9916104B2 (en) | Techniques for entry to a lower power state for a memory device | |
TWI454909B (zh) | 減少記憶體裝置之功率消耗之記憶體裝置、方法及系統 | |
US20150186278A1 (en) | Runtime persistence | |
JPH02224023A (ja) | 命令ストリーム機能を有するプロセサ制御型インターフェイス | |
CN106716383B (zh) | 存储器装置和控制存储器装置的方法、存储器*** | |
US9052910B2 (en) | Efficiency of short loop instruction fetch | |
CN105378684A (zh) | 用于处理器的基于访问映射-图案匹配的预取单元 | |
CN104252425A (zh) | 一种指令缓存的管理方法和处理器 | |
CN112230992B (zh) | 一种包含分支预测循环的指令处理装置、处理器及其处理方法 | |
WO2016105795A1 (en) | Dynamically compensating for degradation of a non-volatile memory device | |
CN104679681B (zh) | Ahb总线访问片上sram的高速桥装置及其工作方法 | |
KR20090095633A (ko) | 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치 | |
JP2015052940A (ja) | メモリ制御回路およびキャッシュメモリ | |
Lee et al. | Skinflint DRAM system: Minimizing DRAM chip writes for low power | |
JP2005524170A (ja) | 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 | |
JPWO2014068694A1 (ja) | 半導体装置及びキャッシュメモリへのデータ先読み方法 | |
CN106569961B (zh) | 一种基于访存地址连续性的cache模块及其访存方法 | |
CN111158753A (zh) | 具有数据预取功能的Flash控制器结构及其实现方法 | |
CN100428200C (zh) | 一种片上指令cache的实现方法 | |
US6963965B1 (en) | Instruction-programmable processor with instruction loop cache | |
EP1107110A2 (en) | Instruction loop buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |