CN110609705B - 一种提高mcu总线效率的方法、智能终端、存储介质及芯片 - Google Patents

一种提高mcu总线效率的方法、智能终端、存储介质及芯片 Download PDF

Info

Publication number
CN110609705B
CN110609705B CN201910893802.2A CN201910893802A CN110609705B CN 110609705 B CN110609705 B CN 110609705B CN 201910893802 A CN201910893802 A CN 201910893802A CN 110609705 B CN110609705 B CN 110609705B
Authority
CN
China
Prior art keywords
register
target
improving
instruction
value
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
CN201910893802.2A
Other languages
English (en)
Other versions
CN110609705A (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.)
Shenzhen Hangshun Chip Technology R&D Co Ltd
Original Assignee
Shenzhen Hangshun Chip Technology R&D 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 Shenzhen Hangshun Chip Technology R&D Co Ltd filed Critical Shenzhen Hangshun Chip Technology R&D Co Ltd
Priority to CN201910893802.2A priority Critical patent/CN110609705B/zh
Publication of CN110609705A publication Critical patent/CN110609705A/zh
Application granted granted Critical
Publication of CN110609705B publication Critical patent/CN110609705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements

Abstract

本发明所提供的一种提高MCU总线效率的方法、智能终端、存储介质及芯片,包括:系统寄存器获取预设指令,并根据所述预设指令执行操作如下:读取目标寄存器中的第一数值;将所述第一数值修改为第二数值;将所述第二数值写入所述目标寄存器。本发明通过设置预设指令,处理器获取预设指令,根据预设指令读取目标寄存器中的第一数值,并将所述第一数值载入系统寄存器中进行修改,修改成第二数值,再将修改之后的数值写回到目标寄存器中。本发明实现“读‑修改‑写”的过程只需要获取一次预设指令就可以实现,并不需要多次获取指令,因此,节省了多次获取指令所产生的时间间隔,提高了MCU总线的执行效率。

Description

一种提高MCU总线效率的方法、智能终端、存储介质及芯片
技术领域
本发明涉及MCU技术领域,尤其涉及的是一种提高MCU总线效率的方法、智能终端、存储介质及芯片。
背景技术
微控制单元(Microcontroller Unit;MCU),又称单片微型计算机(Single ChipMicrocomputer)或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
在MCU运行时,会直接在目标寄存器中进行“读-修改-写”的操作,这种“读-修改-写”操作需要多次获取指令进行执行。在多次获取指令的过程中存在时间间隔,从而造成MCU执行写与读操作效率低的问题。
因此,现有技术存在缺陷,有待改进与发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种提高MCU总线效率的方法、智能终端、存储介质及芯片,旨在解决现有技术中在使用MCU总线时,需要多次获取指令执行“读-修改-写”操作,造成MCU执行效率低的问题。
本发明解决技术问题所采用的技术方案如下:
一种提高MCU总线效率的方法,包括:
系统寄存器获取预设指令,并根据所述预设指令执行操作如下:
读取目标寄存器中的第一数值;
将所述第一数值修改为第二数值;
将所述第二数值写入所述目标寄存器。
进一步地,所述提高MCU总线效率的方法还包括:
当对目标寄存器中的所有数值进行修改时,在目标寄存器中进行所有数值的修改并存储。
进一步地,所述处理器获取预设指令具体包括:
当对目标寄存器中的部分数值进行修改时,获取预设指令,并根据所述预设指令调用系统寄存器。
进一步地,所述预设指令存储在系统寄存器中。
进一步地,所述预设指令为机器指令。
进一步地,将所述第二数值写入到所述目标寄存器中具体包括:
所述系统寄存器发起总线写入请求,所述目标寄存器接收所述写入请求,将所述第二数值写入到目标寄存器中。
进一步地,所述目标寄存器为外设寄存器。
本发明还提供一种智能终端,其中,包括处理器,以及与所述处理器连接的存储器,所述存储器存储有实现提高MCU总线效率的程序,在所述提高MCU总线效率的程序执行时,能够实现如上所述的提高MCU总线效率的方法。
本发明还提供一种存储介质,其中,所述存储介质存储有提高MCU总线效率的程序,所述提高MCU总线效率的程序能够被执行以用于实现如上所述的提高MCU总线效率的方法。
本发明还提供一种芯片,其中,所述芯片能够被执行以用于实现如上所述的提高MCU总线效率的方法。
本发明所提供的一种提高MCU总线效率的方法、智能终端、存储介质及芯片,包括:系统寄存器获取预设指令,并根据所述预设指令执行操作如下:读取目标寄存器中的第一数值;将所述第一数值修改为第二数值;将所述第二数值写入所述目标寄存器。本发明通过设置预设指令,处理器获取预设指令,根据预设指令读取目标寄存器中的第一数值,并将所述第一数值载入系统寄存器中进行修改,修改成第二数值,再将修改之后的数值写回到目标寄存器中。本发明实现“读-修改-写”的过程只需要获取一次预设指令就可以实现,并不需要多次获取指令,因此,节省了多次获取指令所产生的时间间隔,提高了MCU总线的执行效率。
附图说明
图1是本发明提高MCU总线效率的方法较佳实施例的流程图;
图2是本发明现有的在MCU中进行汇写过程较佳实施例的功能原理图;
图3是本发明智能终端的较佳实施例的功能原理框图。
具体实施方式
本发明提供一种提高MCU总线效率的方法、智能终端、存储介质及芯片,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
由于MCU的使用范围较广,本发明全文以C语言为例进行举例说明,可以理解地,本发明的范围并不局限于将C语言应用在MCU中,一般情况下,凡是使用MCU的场景,均可以利用本发明的技术方案来提高MCU总线的效率。
现有的MCU在使用过程中,实施的操作为:
读取目标寄存器中一个地址上的数据之后,在读到的数据上进行修改,之后再将修改后形成的新数据写入该地址。
利用MCU进行读与写的C语言代码列举分别如下:
*(unsigned int*)0×40021004|=0×03;
*(unsigned int*)0×40021004&=0×fffffffc;
此处进行举例说明读与写的过程:
比如C语言代码*(unsigned int*)0×40021004|=0×03,其功能是把总线地址0×40021004的寄存器低2位置置1,该地址寄存器(目标寄存器)的其他位保持不变。
在ARM Cortex-M0指令集上编译后的汇编指令可能为:
Figure BDA0002209603240000041
其中:
“LDR r0,[r0,#4]”指令把目标0×40021004地址寄存器的值读出来保存到r0;
“MOVS r1,#3”和“ORRS r0,r0,r1”指令完成对r0的低2位置位1;
“LDR r1,[pc,#4];[0×8000830]=0×40021000”指令完成获取目标地址;
“STR r0,[r1,#4]”指令把r0的值写到0×40021004地址完成对0×40021004地址寄存器的修改。
整个汇编过程如图2所示,可以看出,完成一次“读-修改-写”的C语言操作需要多条汇编指令才能完成,因此需要进行多次获取指令的操作。而对于同一个地址(addr)需要进行两次获取指令的操作,第一次读,第二次写,两次获取指令的存在一定的时间间隔(delay),此时间间隔的存在会影响代码的执行效率。同理,在AHB总线进行写读操作时,也会相应地存在延时现象。
为了解决上述MCU总线操作效率低的问题,本发明提供了一种提高MCU总线效率的方法,如图1所示:
S1、系统寄存器获取预设指令,并根据所述预设指令执行操作。
在CPU运行时,系统存储器中存储的机器码会在系统寄存器中进行执行。所述系统寄存器是现有的寄存器,是中央处理器内的组成部分,用来暂存指令、数据和地址。在系统寄存器中,所述“读-修改-写”指令用于对从目标寄存器中读取到的值进行修改。
所述目标寄存器相对于系统寄存器来说,是系统外设的寄存器,程序编译人员在编译所述目标代码时,所述目标代码形成的函数表示了外设的寄存器中要修改的位数,所述目标代码被编译成能够执行“读-修改-写”指令的机器码,存储在系统存储器中,所述系统就具有“读-修改-写”功能。当CPU读取到目标寄存器中的值时,自动执行“读-修改-写”功能。
S2、读取目标寄存器中的第一数值。
S3、将所述第一数值修改为第二数值。
当CPU获取预设指令,所述预设指令的作用是控制CPU执行“读-修改-写”功能。CPU读取到目标寄存器中的第一数值,将第一数值写入到系统寄存器中进行修改,修改成第二数值。本发明中的第一数值和第二数值并不是具体的数值,可以是任何数据,本发明并不对第一数值和第二数值进行限定,只要能够在系统寄存器中实现修改的数据,均可以作为本发明中第一数值和第二数值的变形。所述第一数值和第二数值可以为地址数据。S4、将所述第二数值写入所述目标寄存器。
具体地,所述系统寄存器发起总线写入请求,所述目标寄存器接收所述写入请求,将所述第二数值写入到目标寄存器中。
在实现上述一种提高MCU总线效率的方法之前,本发明的技术开发人员需要进行前期的开发工作,具体过程如下:
A100、在编译器中添加预设指令,形成目标编译器。
所述编译器为现有的编译器,支持将代码编译成机器指令。在现有的编译器中添加预设指令,所述预设指令指的是一类新的指令,该指令支持上述“读-修改-写”操作,即CPU支持的指令。在此,将这一类新的指令用RMWxx的形式体现出来,其中的xx的内容列举如下:
xx可以为:OR(逻辑或操作)、AND(逻辑与操作)、ADD(算术加法)、SUB(算术减法操作)等。所述预设指令是开发者根据需求自定义设置的,因此,所述预设指令并不局限于上述几种举例,凡是能够在“读-修改-写”过程中,只需要获取一次指令就能够实现操作过程的指令形式,均可以用于本发明的技术方案中。
A200、所述目标编译器获取目标代码,将所述目标代码编译成机器码,所述目标编译器将所述机器码载入到系统存储器中。
所述目标代码可以为高级语言代码,目标代码在编译器中被编译成对应的指令、数据和地址,编译成的指令、数据和地址用机器码来表示。所述机器码即二进制指令,能够支持CPU的“读-修改-写”操作;所述系统存储器用来存储所述机器码,当系统运行时,系统能够自动执行所述机器码表示的“读-修改-写”指令。
之后,形成MCU,当MCU在运行过程中,会执行以下操作:
首先,处理器进行预判断,当对目标寄存器中的所有数值进行修改时,在目标寄存器中进行所有数值的修改并存储。
当对目标寄存器中的部分数值进行修改时,执行以下步骤A300。
A300、CPU读取所述机器码中相应的预设指令,并执行。
具体地,CPU读取所述机器码,获取到所述寄存器码中CPU支持的“读-修改-写”指令,并执行“读-修改-写”指令,所述预设指令即为“读-修改-写”指令。
所述步骤A300执行的操作:从读取目标寄存器中的数值,再对数值进行修改,之后将修改后的数值写回目标寄存器中,以此完成“读-修改-写”操作。
为使本发明的技术方案更直观,此处进行举例说明。对于本发明中的MCU在使用过程中,实施的操作如下,此处依旧采用C语言代码进行举例说明:
当添加了预设指令之后,此处仅以预设指令包括RMWOR为例进行说明,C语言代码*(unsigned int*)0×40021004|=0×03的汇编指令可变为:
Figure BDA0002209603240000071
其中:
“LDR r0,[pc,#12];[0×8000830]=0×40021000”指令把目标地址存入r0;
“LDR r2,[r0,#4]”指令把目标寄存器的值读到r2;
“MOVS r1,#3”和“RMWOR r2,r2,r1”完成把r2低两位赋值1。
在执行完“RMWOR r2,r2,r1”指令时,CPU自动发起AHB总线写入操作请求,把r2的值写到以r0的值为目标地址的通用寄存器。所述r0、r1、r2等为通用寄存器的命名,所述通用寄存器存储在MAC中,在CPU执行程序时,会使用通用寄存器。
和现有的技术相比,本发明的技术方案减少了两条指令的执行操作,即减少了两次获取指令的操作,节省了两次获取指令之间的时间间隔,极大地提高了MCU总线的效率。
本发明还提供了一种智能终端,如图3所示,其中,包括处理器10,以及与所述处理器连接的存储器20,所述存储器20存储有实现提高MCU总线效率的程序,在所述提高MCU总线效率的程序执行时,能够实现如上所述的提高MCU总线效率的方法。
本发明还提供了一种存储介质,其中,所述存储介质存储有提高MCU总线效率的程序,所述提高MCU总线效率的程序能够被执行以用于实现如上所述的提高MCU总线效率的方法。
本发明还提供一种芯片,其中,所述芯片能够被执行以用于实现如上所述的提高MCU总线效率的方法。
综上所述,本发明公开的一种提高MCU总线效率的方法、智能终端、存储介质及芯片,包括:处理器获取预设指令,将目标寄存器中的第一数值读取到系统寄存器中,并在所述系统寄存器中将所述第一数值修改为第二数值;将所述第二数值写入到所述目标寄存器中。将所述机器码存储在系统存储器中,系统在运行时,CPU能够自动读取到所述机器码中相应的预设指令,所述预设指令能够执行执行读写操作。在CPU进行读写操作时,依次读取到目标寄存器中的第一数值,将所述第一数值写入系统寄存器中,在系统寄存器中将所述第一数值修改成第二数值,之后将所述第二数值写回到所述目标寄存器中,用于替换所述第一数值,实现读写操作。与现有的读写操作相比,避免了完成一次“读-修改-写”的操作需要多次获取指令才能完成的问题,减少了指令的执行过程,节省了多次获取指令之间存在的时间间隔,达到提高MCU总线效率的目的。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种提高MCU总线效率的方法,其特征在于,包括:
系统寄存器获取机器码中相应的预设指令,并根据所述预设指令执行操作如下:
读取目标寄存器中的第一数值;
将所述第一数值修改为第二数值;
将所述第二数值写入所述目标寄存器;
在所述系统寄存器获取预设指令,并根据所述预设指令执行操作步骤之前还包括:
在编译器中添加所述预设指令,形成目标编译器,所述预设指令即为“读-修改-写”指令;
所述目标编译器获取目标代码,将所述目标代码编译成机械码,并将所述机械码载入到所述系统寄存器中。
2.根据权利要求1所述的提高MCU总线效率的方法,其特征在于,所述提高MCU总线效率的方法还包括:
当对目标寄存器中的所有数值进行修改时,在目标寄存器中进行所有数值的修改并存储。
3.根据权利要求1所述的提高MCU总线效率的方法,其特征在于,所述系统寄存器获取预设指令具体包括:
当对目标寄存器中的部分数值进行修改时,系统寄存器获取预设指令。
4.根据权利要求1所述的提高MCU总线效率的方法,其特征在于,所述预设指令存储在系统寄存器中。
5.根据权利要求1所述的提高MCU总线效率的方法,其特征在于,所述预设指令为机器指令。
6.根据权利要求1所述的提高MCU总线效率的方法,其特征在于,将所述第二数值写入所述目标寄存器具体包括:
所述系统寄存器发起总线写入请求,所述目标寄存器接收所述写入请求,将所述第二数值写入到目标寄存器中。
7.根据权利要求1所述的提高MCU总线效率的方法,其特征在于,所述目标寄存器为外设寄存器。
8.一种智能终端,其特征在于,包括处理器,以及与所述处理器连接的存储器,所述存储器存储有实现提高MCU总线效率的程序,在所述提高MCU总线效率的程序执行时,能够实现如权利要求1-7任一项所述的提高MCU总线效率的方法。
9.一种存储介质,其特征在于,所述存储介质存储有提高MCU总线效率的程序,所述提高MCU总线效率的程序能够被执行以用于实现如权利要求1-7任一项所述的提高MCU总线效率的方法。
10.一种芯片,其特征在于,所述芯片能够被执行以用于实现如权利要求1-7任一项所述的提高MCU总线效率的方法。
CN201910893802.2A 2019-09-20 2019-09-20 一种提高mcu总线效率的方法、智能终端、存储介质及芯片 Active CN110609705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910893802.2A CN110609705B (zh) 2019-09-20 2019-09-20 一种提高mcu总线效率的方法、智能终端、存储介质及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910893802.2A CN110609705B (zh) 2019-09-20 2019-09-20 一种提高mcu总线效率的方法、智能终端、存储介质及芯片

Publications (2)

Publication Number Publication Date
CN110609705A CN110609705A (zh) 2019-12-24
CN110609705B true CN110609705B (zh) 2021-05-11

Family

ID=68891678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910893802.2A Active CN110609705B (zh) 2019-09-20 2019-09-20 一种提高mcu总线效率的方法、智能终端、存储介质及芯片

Country Status (1)

Country Link
CN (1) CN110609705B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579189B (zh) * 2022-05-05 2022-09-09 深圳云豹智能有限公司 单核以及多核访问寄存器数据的方法、处理器和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662913A (zh) * 2012-03-29 2012-09-12 佛山华芯微特科技有限公司 用于提高mcu存储性能的方法及其对应的mcu芯片
CN104111818A (zh) * 2013-04-22 2014-10-22 三星电子株式会社 用于批量线程处理的处理器、处理方法和代码生成设备
CN107844321A (zh) * 2016-09-21 2018-03-27 上海芯旺微电子技术有限公司 一种mcu处理系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529596B2 (en) * 2011-07-01 2016-12-27 Intel Corporation Method and apparatus for scheduling instructions in a multi-strand out of order processor with instruction synchronization bits and scoreboard bits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662913A (zh) * 2012-03-29 2012-09-12 佛山华芯微特科技有限公司 用于提高mcu存储性能的方法及其对应的mcu芯片
CN104111818A (zh) * 2013-04-22 2014-10-22 三星电子株式会社 用于批量线程处理的处理器、处理方法和代码生成设备
CN107844321A (zh) * 2016-09-21 2018-03-27 上海芯旺微电子技术有限公司 一种mcu处理系统

Also Published As

Publication number Publication date
CN110609705A (zh) 2019-12-24

Similar Documents

Publication Publication Date Title
US7533246B2 (en) Application program execution enhancing instruction set generation for coprocessor and code conversion with marking for function call translation
US20080109795A1 (en) C/c++ language extensions for general-purpose graphics processing unit
WO2015036867A2 (en) Method and system for instruction scheduling
US6401197B1 (en) Microprocessor and multiprocessor system
WO2021249054A1 (zh) 一种数据处理方法及装置、存储介质
JPH05204709A (ja) プロセッサ
US6260191B1 (en) User controlled relaxation of optimization constraints related to volatile memory references
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
CN110609705B (zh) 一种提高mcu总线效率的方法、智能终端、存储介质及芯片
US7231509B2 (en) Extended register bank allocation based on status mask bits set by allocation instruction for respective code block
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
JP2005529399A (ja) 集積回路に埋め込まれた不揮発性メモリにデータを書き込む方法及び対応する回路
CN107851015B (zh) 向量操作数位大小控制
CN115878266A (zh) ARM Cortex-A7处理器仿真方法、系统、介质及设备
CN113434439B (zh) 一种基于模拟i2c接口的数据连续写入方法及系统
US11144329B2 (en) Processor microcode with embedded jump table
CN114201444A (zh) 用于存储管理的方法、介质、程序产品、系统和装置
US7216189B2 (en) Single BIOS technique for supporting processors with and without 64-bit extensions
US20120017035A1 (en) Runtime reprogramming of a processor code space memory area
US6243798B1 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
JPH0635800A (ja) マイクロプロセッサ及びそれを使用したデータ処理システム
JP2607319B2 (ja) プログラマブルコントローラ
CN111522600A (zh) 一种在dsp上的异构计算框架构建方法及系统
JP2003196085A (ja) 情報処理装置
JPH05297911A (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
GR01 Patent grant
GR01 Patent grant