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), ...
【技术保护点】
一种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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。