MIPS平台数据访问方法和装置制造方法及图纸

技术编号:15540644 阅读:104 留言:0更新日期:2017-06-05 10:25
本发明专利技术提供一种MIPS平台数据访问方法和装置,其中,MIPS平台数据访问方法包括:获取编译器中访存宏指令的输入参数;根据所述输入参数获取所述待访问数据的存储属性集;其中,所述存储属性集包括:数据类型和字节数;若所述待访问数据不对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。本发明专利技术提供的MIPS平台数据访问方法,当数据不对齐时,通过数据的存储属性集选择相应的MIPS指令对数据进行访问,避免了系统内存的浪费,提高了程序的编译效率和执行效率。

Data access method and device for MIPS platform

The present invention provides a platform for MIPS data access method and device, wherein, the MIPS platform data access method comprises the following steps: acquiring visit input parameters in the compiler save macros; according to the input parameters to obtain the attribute to store access data set; among them, the memory is set includes: data type and number of bytes if the data to be accessed; not aligned according to the stored attribute set selection and the stored attribute set corresponding to the MIPS instruction, the access data from memory to be loaded into the registers or the access to data from the register to memory storage. The data access method of MIPS platform provided by the invention, when the data is not homogeneous, by storing attribute data set to access the data to select the corresponding MIPS command, to avoid the waste of memory system, improve the compiler and runtime efficiency.

【技术实现步骤摘要】
MIPS平台数据访问方法和装置
本专利技术涉及计算机数据访问领域,尤其涉及一种无互锁流水线级的微处理器(MillionInstructionsPerSecond,简称MIPS)平台数据访问方法和装置。
技术介绍
在MIPS平台下,对不同数据类型的数据进行访问都有其相应的访问指令,例如:lh指令表示从内存中加载一个双字节整型对齐数据并符号扩展到整个寄存器中,lw指令表示从内存中加载一个四字节整型对齐数据并符号扩展到整个寄存器中。其中,对齐数据是指数据在内存中的起始地址能够被数据的数据类型对应的字节数整除,反之,不对齐数据是指数据在内存中的起始地址不能够被数据的数据类型对应的字节数整除。通常情况下,数据在内存中都是对齐的,但是,当数据不对齐时,就可能出现使用错误的指令对不对齐数据进行访问的情况,例如:错误的使用lw指令来加载双字节对齐的整型数据。一旦使用了错误指令访问了不对齐数据,则,或者硬件抛出异常导致程序中断执行,或者交给操作系统处理,而操作系统在处理过程中由于涉及上下文切换必然大幅影响程序的执行效率。在现有技术中,为了防止使用错误指令访问不对齐数据,常用的方法是:在编译器中为数据增加编译器属性,编译器根据编译器属性通过填充内存等方式强制让数据进行对齐,然后,使用与对齐数据相对应的指令访问已对齐的数据。具体实现方式如下,定义结构体:#pragmapack(2)structtest_t{inta;charb;shortc;chard;}其中,a为四字节整型数据,b、d为单字节字符型数据,c为双字节整型数据。由于结构体声明前增加了#pragmapack(2),即,编译器会保证结构体各成员二字节对齐,具体地,结构体成员中字节数最大的为a,所以,编译器保证a四字节对齐,b的起始地址等于a的起始地址加a的大小,所以b为二字节对齐,但是,c的起始地址等于b的起始地址加b的大小,由于b为单字节,导致c不对齐,此时,编译器会在c之前插入一个空白字节以保证c为二字节对齐,以此类推,从而保证了结构体各成员均为二字节对齐。但是,在现有技术中,由于通过在内存中插入空白字节使得数据强制对齐,使得内存利用率严重下降,并且,改变数据的偏移地址可能导致整个系统错误的数据访问,造成程序编译效率和执行效率严重下降。
技术实现思路
本专利技术提供了一种MIPS平台数据访问方法和装置,当数据不对齐时,避免了系统内存的浪费,提高了程序的编译效率和执行效率。本专利技术提供的MIPS平台数据访问方法,包括:获取编译器中访存宏指令的输入参数,所述访存宏指令指示将待访问数据从内存中加载到寄存器中,或者将所述待访问数据从寄存器中存储至内存中;根据所述输入参数获取所述待访问数据的存储属性集;其中,所述存储属性集包括:数据类型和字节数;若所述待访问数据不对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。本专利技术提供的MIPS平台数据访问装置,包括:第一获取模块,用于获取编译器中访存宏指令的输入参数,所述访存宏指令指示将待访问数据从内存中加载到寄存器中,或者将所述待访问数据从寄存器中存储至内存中;第二获取模块,用于根据所述输入参数获取所述待访问数据的存储属性集;其中,所述存储属性集包括:数据类型和字节数;第一访问模块,用于若所述待访问数据不对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。本专利技术提供了一种MIPS平台数据访问方法和装置,其中,MIPS平台数据访问方法包括:获取编译器中访存宏指令的输入参数;根据所述输入参数获取所述待访问数据的存储属性集;其中,所述存储属性集包括:数据类型和字节数;若所述待访问数据不对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。本专利技术提供的MIPS平台数据访问方法,当数据不对齐时,编译器在进行代码翻译的过程中,直接调用与存储属性集相对应的MIPS指令对待访问数据进行访问,不需要增加内存开销以及改变数据的偏移地址就可以完成数据不对齐时的数据访问,避免了内存浪费,提高了程序的编译效率和执行效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的MIPS平台数据访问方法的流程图;图2为本专利技术实施例二提供的MIPS平台数据访问方法的流程图;图3为本专利技术实施例三提供的MIPS平台数据访问方法的流程图;图4为本专利技术实施例四提供的MIPS平台数据访问方法的流程图;图5为本专利技术实施例一提供的MIPS平台数据访问装置的结构示意图;图6为本专利技术实施例二提供的MIPS平台数据访问装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例一提供的MIPS平台数据访问方法的流程图,本实施例提供的MIPS平台数据访问方法,应用于编译器对程序代码翻译过程中的数据访存。如图1所示,本实施例提供的MIPS平台数据访问方法,可以包括:步骤101、获取编译器中访存宏指令的输入参数。其中,访存宏指令用于指示将待访问数据从内存中加载到寄存器中,或者将待访问数据从寄存器中存储至内存中。其中,本实施例对于编译器中访存宏指令的具体宏定义形式和包含的参数不加以限制。可选的,作为访存宏指令的一种实现方式,访存宏指令的输入参数可以包括:第一寄存器、第二寄存器、第一整数常量和第二整数常量。其中,第一寄存器用于存储待访问数据,第二寄存器用于存储待访问数据在内存中的起始地址,第一整数常量用于指示待访问数据的字节数,第二整数常量用于指示待访问数据在内存中的偏移地址。相应的,访存宏指令用于指示将待访问数据从第二寄存器和第二整数常量指示的内存地址中加载到第一寄存器中,或者将待访问数据从第一寄存器中存储至第二寄存器和第二整数常量指示的内存地址中。例如:访存宏指令的宏定义形式为:loaddest,offset(src),size,(scratch)则在上述宏指令中,第一寄存器为dest、第二寄存器为src、第一整数常量为size、第二整数常量为offset,而scratch为访存操作过程中可能用到的临时寄存器。上述宏指令表示将src+offset指示的内存中的数据加载到dest中。又例如:访存宏指令的宏定义形式为:storesrc,offset(dest),size,(scratch)则在上述宏指令中,第一寄存器为src、第二寄存器为dest、第一整数常量为siz本文档来自技高网
...
MIPS平台数据访问方法和装置

【技术保护点】
一种MIPS平台数据访问方法,其特征在于,包括:获取编译器中访存宏指令的输入参数,所述访存宏指令指示将待访问数据从内存中加载到寄存器中,或者将所述待访问数据从寄存器中存储至内存中;根据所述输入参数获取所述待访问数据的存储属性集;其中,所述存储属性集包括:数据类型和字节数;若所述待访问数据不对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。

【技术特征摘要】
1.一种MIPS平台数据访问方法,其特征在于,包括:获取编译器中访存宏指令的输入参数,所述访存宏指令指示将待访问数据从内存中加载到寄存器中,或者将所述待访问数据从寄存器中存储至内存中;根据所述输入参数获取所述待访问数据的存储属性集;其中,所述存储属性集包括:数据类型和字节数;若所述待访问数据不对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。2.根据权利要求1所述的方法,其特征在于,所述输入参数包括:第一寄存器和第一整数常量,所述第一寄存器存储待访问数据,所述第一整数常量指示待访问数据的字节数;所述根据所述输入参数获取所述待访问数据的存储属性集,包括:根据所述第一寄存器的名称获得所述待访问数据的数据类型;根据所述第一整数常量的取值获得所述待访问数据的字节数。3.根据权利要求1所述的方法,其特征在于,所述输入参数包括:第一寄存器、第二寄存器、第一整数常量和第二整数常量;其中,所述第一寄存器存储待访问数据,所述第二寄存器存储待访问数据在内存中的起始地址,所述第一整数常量指示待访问数据的字节数,所述第二整数常量指示待访问数据在内存中的偏移地址;所述访存宏指令指示将待访问数据从内存中加载到寄存器中,或者将所述待访问数据从寄存器中存储至内存中,包括:所述访存宏指令指示将所述待访问数据从所述第二寄存器和所述第二整数常量指示的内存地址中加载到所述第一寄存器中,或者将所述待访问数据从所述第一寄存器中存储至所述第二寄存器和所述第二整数常量指示的内存地址中。4.根据权利要求1所述的方法,其特征在于,所述根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中,包括:若所述存储属性集为整型和八字节,则选择uld指令将所述待访问数据从内存中加载到寄存器中;或者,若所述存储属性集为浮点型和八字节,则根据预先获取到的浮点寄存器运行模式将所述待访问数据从内存中加载到寄存器中。5.根据权利要求1所述的方法,其特征在于,所述存储属性集还包括扩展方式;所述根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中,包括:若所述存储属性集为整型、双字节和零扩展,则选择ulhu指令将所述待访问数据从内存中加载到寄存器中;或者,若所述存储属性集为整型、双字节和符号扩展,则选择ulh指令将所述待访问数据从内存中加载到寄存器中;或者,若所述存储属性集为整型、四字节和零扩展,则选择ulwu指令将所述待访问数据从内存中加载到寄存器中;或者,若所述存储属性集为整型、四字节和符号扩展,则选择ulw指令将所述待访问数据从内存中加载到寄存器中。6.根据权利要求1所述的方法,其特征在于,所述根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从寄存器中存储至内存中,包括:若所述存储属性集为整型和双字节,则选择ush指令将所述待访问数据从寄存器中存储至内存中;或者,若所述存储属性集为整型和四字节,则选择usw指令将所述待访问数据从寄存器中存储至内存中;或者,若所述存储属性集为整型和八字节,则选择usd指令将所述待访问数据从寄存器中存储至内存中;或者,若所述存储属性集为浮点型和八字节,则根据预先获取到的浮点寄存器运行模式将所述待访问数据从寄存器中存储至内存中。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述待访问数据对齐,则根据所述存储属性集选择与所述存储属性集相对应的MIPS指令,将所述待访问数据从内存中加载到寄存器中或者将所述待访问数据从寄存器中存储至内存中。8.根据权利要求1至7任一所述的方法,其特征在于,编译器中设置有访存宏指令控制开关;该方法还包括:设置所述...

【专利技术属性】
技术研发人员:余银黄文军彭飞
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京,11

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

1