一种用于存储器的数据处理方法技术

技术编号:37602604 阅读:18 留言:0更新日期:2023-05-18 11:53
本发明专利技术涉及集成电路的技术领域,公开了一种用于存储器的数据处理方法,包括获取SET/CLR指令;识别SET/CLR指令的操作要求及对应的操作数内容;根据识别出的操作数内容获取通用寄存器/特殊功能寄存器/存储器的值,再根据识别出的SET/CLR指令的操作要求对获取的值的对应的位进行修改,最后将修改后的值回写到目标空间中。仅使用一条SET/CLR指令,就可以直接指定需要修改的地址和位,硬件自动完成读改写操作,提高执行效率。提高执行效率。提高执行效率。

【技术实现步骤摘要】
一种用于存储器的数据处理方法


[0001]本专利技术涉及集成电路的
,具体涉及一种用于存储器的数据处理方法。

技术介绍

[0002]在当前的MCU系统中,为了修改寄存器或者存储器中的数据的某一位,需要首先执行读指令,将对应的内容从目标空间读出来,然后在执行修改的指令,最后执行写指令,将对应的数据写入目标空间中,完成该操作需要多条指令多个周期。但部分情况下,如需要修改某一个IO的输出电平、修改一个标志位、修改一个寄存器的某一位,只希望快速修改其中的某一个位,此时仍需要经过多条指令多个周期,这样会影响执行的效率。
[0003]为了简化操作过程,部分MCU会在外设寄存器(比如IO寄存器)中设计一些便于位操作的结构,比如写1清零、写1置1等,但这里需要额外的设计,增加了CPU外围电路的复杂度。

技术实现思路

[0004]本专利技术提供了一种用于存储器的数据处理方法,仅使用一条SET/CLR指令,就可以直接指定需要修改的地址和位,硬件自动完成读改写操作,提高执行效率,从而解决了现有技术的修改操作需要经过多条指令多个周期,影响执行的效率等技术问题。
[0005]本专利技术可通过以下技术方案实现:
[0006]一种用于存储器的数据处理方法,包括
[0007]获取SET/CLR指令;
[0008]识别SET/CLR指令的操作要求及对应的操作数内容;
[0009]根据识别出的操作数内容获取通用寄存器/特殊功能寄存器/存储器的值,再根据识别出的SET/CLR指令的操作要求对获取的值的对应的位进行修改,最后将修改后的值回写到目标空间中。
[0010]进一步,包括取值、译码和执行三个步骤,其中
[0011]取值步骤:取指单元从程序存储器中取出当前程序计数寄存器所指的SET/CLR指令,并将SET/CLR指令输出到译码单元中;
[0012]译码步骤:译码单元将从取值单元输出的指令按照指令的编码格式和内容进行译码,其中SET/CLR操作码译码单元会根据指令的操作码识别SET/CLR指令,操作数译码单元则根据操作码单元的识别结果获取SET/CLR指令对应的操作数内容,确定操作的对象(需要操作的寄存器或者存储器地址)及操作的结果(需要修改的位),译码单元将SET/CLR指令操作码识别结果和操作数识别结果输出到执行单元中;
[0013]执行步骤:执行单元会根据译码单元输出的操作码识别结果和操作数识别结果的内容进行操作,首先SET/CLR执行单元会控制读写操作控制单元发出读操作控制,读取目标地址(存储模块)的内容,并将读取的结果保存在读缓存寄存器中,然后再通过SET/CLR执行单元将读缓存寄存器中的值按照译码得到的操作数指示修改的位置进行修改,最后在通过
读写控制单元将修改后的值写入到目标存储器对应的地址中,完成对相应地址数据内容的修改。
[0014]进一步,所述SET/CLR指令定义为
[0015][0016]进一步,能够用于对通用或者特殊寄/存储器的数据处理。
[0017]本专利技术有益的技术效果在于:
[0018]针对位操作的特点,采用本专利技术的数据处理方法,可以通过一条指令即SET/CLR指令,指定需要操作的对象,需要操作位的位,再利用硬件连贯执行完整所需的读改写操作,提高了执行的效率,同时使用本专利技术的数据处理方法,外设也可以不再需要单独设计额外逻辑,或者可以配合额外的逻辑,不会增加CPU外围电路的复杂度,但可以实现更高的执行效率,实用性更强,应用范围更广。
附图说明
[0019]图1为本专利技术的整体流程示意图;
[0020]图2为本专利技术的整体框架结构示意图。
具体实施方式
[0021]下面结合附图及较佳实施例详细说明本专利技术的具体实施方式。
[0022]如图1和2所示,本专利技术提供了一种用于存储器的数据处理方法,包括通过取指单元获取SET/CLR指令;通过译码单元识别SET/CLR指令的操作要求及对应的操作数内容;通过执行单元根据识别出的操作数内容获取通用寄存器/特殊功能寄存器/存储器的值,再根据识别出的SET/CLR指令的操作要求对获取的值的对应的位进行修改,最后将修改后的值回写到目标空间中。这样,仅使用一条SET/CLR指令,且在较短的周期内就可以完成针对位的读改写操作,不再需要单独设计额外的外设逻辑,能够有效提高操作效率,降低CPU外设的复杂度,实用性更强。
[0023]具体如下:
[0024]SET/CLR指令的定义
[0025][0026]该指令用于修改寄存器或存储器对象的某一个位的值。
[0027]整流操作流程包括取值、译码和执行三个步骤,其中
[0028]取值步骤:取指单元从程序存储器中取出当前程序计数寄存器所指的SET/CLR指令,并将SET/CLR指令输出到译码单元中;
[0029]译码步骤:译码单元将从取值单元输出的SET/CLR指令按照指令的编码格式和内容进行译码,其中操作码译码单元会根据指令的操作码识别SET/CLR指令,操作数译码单元则根据操作码译码单元的识别结果获取SET/CLR指令对应的操作数内容,确定操作的对象即需要操作的寄存器或者存储器地址及操作的结果即需要修改的位,再将SET/CLR指令操作码识别结果和操作数识别结果输出到执行单元中;
[0030]执行步骤:执行单元会根据译码单元输出的操作码识别结果和操作数识别结果的内容进行操作,首先,执行单元会控制读写操作控制单元发出读操作控制,读取目标地址即存储模块的内容,并将读取的结果保存在读缓存寄存器中,然后再通过执行单元将读缓存寄存器中的值按照译码得到的操作数指示修改的位置进行修改,最后在通过读写控制单元将修改后的值写入到目标存储器对应的地址中,完成对相应地址数据内容的修改。
[0031]上述操作的SET/CLR指令用于对通用寄存器操作,此时只需要一个周期,而用于对特殊该功能寄存器及存储器,这需要增加额外特殊功能寄存器或者存储器的读取时间。
[0032]例如,需要将寄存器地址0x00010080的值0x0000FFFF的最高位修改成1,可以使用SET[R0],#31指令实现。其中,需要在该指令执行之前,先将R0的值配置成0x00010080。运行该指令时,通过取指单元获取到该指令的二进制码;通过译码单元的SET/CLR操作码译码单元可以识别出该指令为SET/CLR指令,通过译码单元的操作数译码单元可以识别出涉及的通用寄存器R0和立即数#31的值;通过执行单元,首先从存储器中读取地址为0x00010080的值0x0000FFFF,并将0x0000FFFF保存到读缓存寄存器中,然后SET/CLR执行单元会将读缓存寄存器中值的最高为进行修改,这里会将其修改成1,结果变成0x8000FFFF,最后通过读写控制单元发出写操作,将结果0x8000FFFF写入到存储器0x00010080地址中,从而实现值的修改过程。
[0033]另外,该SET/CLR指令的定义Rs、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于存储器的数据处理方法,其特征在于:包括获取SET/CLR指令;识别SET/CLR指令的操作要求及对应的操作数内容;根据识别出的操作数内容获取通用寄存器/特殊功能寄存器/存储器的值,再根据识别出的SET/CLR指令的操作要求对获取的值的对应的位进行修改,最后将修改后的值回写到目标空间中。2.根据权利要求1所述的用于存储器的数据处理方法,其特征在于:包括取值、译码和执行三个步骤,其中取值步骤:取指单元从程序存储器中取出当前程序计数寄存器所指的SET/CLR指令,并将SET/CLR指令输出到译码单元中;译码步骤:译码单元将从取值单元输出的SET/CLR指令按照指令的编码格式和内容进行译码,其中SET/CLR操作码译码单元会根据指令的操作码识别SET/CLR指令,操作数译码单元则根据操作码译码单元的识别...

【专利技术属性】
技术研发人员:黄鹏丁晓兵朱少华冯潮斌徐仕超田红娜刘道宁
申请(专利权)人:上海芯旺微电子技术股份有限公司
类型:发明
国别省市:

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

1