MIPS平台数据访问方法和装置与流程

文档序号:12462872阅读:468来源:国知局
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、第一整数常量为size、第二整数常量为offset,而scratch为访存操作过程中可能用到的临时寄存器。上述宏指令表示将src中的数据存储到dest+offset指示的内存中。访存宏指令的输入参数还可以包括:MIPS平台的大小端信息、浮点寄存器的运行模式、数据从内存中加载到寄存器中的扩展方式等等。步骤103、根据输入参数获取待访问数据的存储属性集。其中,存储属性集包括:数据类型和字节数。具体地,数据类型包括整型和浮点型,对于浮点型数据,包括单精度和双精度两种类型,字节数分别为四字节和八字节,对于整型数据,字节数可以为单字节、双字节、四字节或者八字节。可选的,以上述输入参数的实现方式为例,若输入参数包括第一寄存器和第一整数常量,第一寄存器存储待访问数据,第一整数常量指示待访问数据的字节数,则,本步骤的具体实现方式为:根据第一寄存器的名称获得待访问数据的数据类型,根据第一整数常量的取值获得待访问数据的字节数。由于寄存器都有相应的名称,存储浮点型数据的寄存器和存储整型数据的寄存器是不同的,所以,可以根据寄存器的名称获得待访问数据的数据类型。步骤105、若待访问数据不对齐,则根据存储属性集选择与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中存储至内存中。在MIPS指令集中,每一种存储属性集都对应有相应的MIPS指令,例如:采用ush指令将整型双字节不对齐数据从寄存器中存储至内存中,但是,由于现有技术中程序员采用了为数据增加编译器属性的方式强制数据进行对齐,导致编译器在进行代码翻译时仅使用了数据对齐时对应的MIPS指令进行数据访问,而数据不对齐时对应的MIPS指令将不会被用到,这种方式不仅增加了内存开销,而且编译过程繁琐,严重降低了程序的编译速率。在本实施例中,通过获取待访问数据的存储属性集,获知了待访问数据的数据类型和字节数,这样,在已知数据不对齐的情况下,编译器在进行代码翻译时可以直接调用与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中存储至内存中,不需要增加内存开销以及改变数据的偏移地址就可以完成数据不对齐时的数据访问,编译过程简单,不仅避免了内存的浪费,而且提高了程序的编译效率和执行效率。进一步地,编译器中设置有访存宏指令控制开关,在步骤101之前,还可以包括:设置访存宏指令控制开关为打开。其中,访存宏指令控制开关用于控制是否执行访存宏指令对待访问数据进行访存。当访存宏指令控制开关打开时,编译器才会选择访存宏指令传递相关参数进行数据访存,这样,编译器就会在不确定数据是否对齐,或者确定数据不对齐的情况下执行访存宏指令进行数据访问,通过增加开关控制功能,进一步提升了程序的编译效率。本实施例提供了一种MIPS平台数据访问方法,包括:获取编译器中访存宏指令的输入参数,获取待访问数据的存储属性集,若待访问数据不对齐,则根据存储属性集选择与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中存储至内存中。本实施例提供的MIPS平台数据访问方法,通过获取到的待访问数据的存储属性集,当数据不对齐时,编译器在进行代码翻译的过程中,直接调用与存储属性集相对应的MIPS指令对待访问数据进行访问,避免了内存浪费,提高了程序的编译效率和执行效率。图2为本发明实施例二提供的MIPS平台数据访问方法的流程图,本实施例在实施例一的基础上,提供了MIPS平台数据访问方法的一种具体实现方式。如图2所示,本实施例提供的MIPS平台数据访问方法,可以包括:步骤201、获取编译器中访存宏指令的输入参数。步骤203、根据输入参数获取待访问数据的存储属性集。其中,存储属性集包括:数据类型和字节数。在本步骤中,获得了待访问数据的存储属性集,根据存储属性集的具体取值执行步骤205或者步骤207。步骤205、若存储属性集为整型和八字节,则选择uld指令将待访问数据从内存中加载到寄存器中。具体地,以小端系统为例,执行代码为:ulddest,offset(src)步骤207、若存储属性集为浮点型和八字节,则根据预先获取到的浮点寄存器运行模式将待访问数据从内存中加载到寄存器中。具体地,浮点寄存器运行模式可以用FIR寄存器的FR位表示。当FR位 等于0时,表示相邻的奇偶浮点寄存器的低32位共同表示一个64位的浮点数据,当FR位等于1时,表示一个浮点寄存器可以直接表示一个64位的浮点数据。若FR位等于0,则选择两条lwc1指令将待访问数据从内存中加载到寄存器中,即,使用两条lwc1指令加载两个32位数据到相邻的浮点寄存器中,以小端系统为例,执行代码为:lwc1dest,offset(src)lwc1dest+1,offset+4(src)若FR位等于1,则选择lwc1指令、lw指令和mfhc1指令将待访问数据从内存中加载到寄存器中,即,先使用lwc1指令加载浮点寄存器的低32位数据,再使用lw指令和mfhc1指令加载浮点寄存器的高32位数据,以小端系统为例,执行代码为:lwc1dest,offset(src)lwscratch,offset+4(src)mthc1scratch,dest在本实施例中,uld指令、lwc1指令、lw指令和mfhc1指令均为MIPS指令,各个指令的具体含义如表1所示。表1本实施例提供了一种MIPS平台数据访问方法,具体提供了当待访问数据的存储属性集为整型八字节或者浮点型八字节时,将待访问数据从内存中加载到寄存器中的数据访问方法。本实施例提供的MIPS平台数据访问方法, 在数据不对齐的情况下,编译器编译过程中直接调用相应的MIPS指令对待访问数据进行访问,避免了内存浪费,提高了程序的编译效率和执行效率。图3为本发明实施例三提供的MIPS平台数据访问方法的流程图,本实施例在实施例一的基础上,提供了MIPS平台数据访问方法的另一种具体实现方式。如图3所示,本实施例提供的MIPS平台数据访问方法,可以包括:步骤301、获取编译器中访存宏指令的输入参数。步骤303、根据输入参数获取待访问数据的存储属性集。其中,存储属性集包括:数据类型、字节数和扩展方式。其中,扩展方式用于指示整型数据从内存中加载到寄存器中时的扩展方式,具体包括零扩展和符号扩展。在本步骤中,获得了待访问数据的存储属性集,根据存储属性集的具体取值执行步骤305~步骤311。步骤305、若存储属性集为整型、双字节和零扩展,则选择ulhu指令将待访问数据从内存中加载到寄存器中。具体地,以小端系统为例,执行代码为:ulhudest,offset(src)步骤307、若存储属性集为整型、双字节和符号扩展,则选择ulh指令将待访问数据从内存中加载到寄存器中。具体地,以小端系统为例,执行代码为:ulhdest,offset(src)步骤309、若存储属性集为整型、四字节和零扩展,则选择ulwu指令将待访问数据从内存中加载到寄存器中。具体地,以小端系统为例,执行代码为:ulwudest,offset(src)步骤311、若存储属性集为整型、四字节和符号扩展,则选择ulw指令将待访问数据从内存中加载到寄存器中。具体地,以小端系统为例,执行代码为:ulwdest,offset(src)在本实施例中,ulhu指令、ulh指令、ulwu指令和ulw指令均为MIPS指令,各个指令的具体含义如表2所示。表2本实施例提供了一种MIPS平台数据访问方法,具体提供了当待访问数据的存储属性集为整型双字节零扩展、整型双字节符号扩展、整型四字节零扩展、整型四字节符号扩展时,将待访问数据从内存中加载到寄存器中的数据访问方法。本实施例提供的MIPS平台数据访问方法,在数据不对齐的情况下,编译器编译过程中直接调用相应的MIPS指令对待访问数据进行访问,避免了内存浪费,提高了程序的编译效率和执行效率。图4为本发明实施例四提供的MIPS平台数据访问方法的流程图,本实施例在实施例一的基础上,提供了MIPS平台数据访问方法的又一种具体实现方式。如图4所示,本实施例提供的MIPS平台数据访问方法,可以包括:步骤401、获取编译器中访存宏指令的输入参数。步骤403、根据输入参数获取待访问数据的存储属性集。其中,存储属性集包括:数据类型和字节数。在本步骤中,获得了待访问数据的存储属性集,根据存储属性集的具体取值执行步骤405~步骤411。步骤405、若存储属性集为整型和双字节,则选择ush指令将待访问数据从寄存器中存储至内存中。具体地,以小端系统为例,执行代码为:ushsrc,offset(dest)步骤407、若存储属性集为整型和四字节,则选择usw指令将待访问数据从寄存器中存储至内存中。具体地,以小端系统为例,执行代码为:uswsrc,offset(dest)步骤409、若存储属性集为整型和八字节,则选择usd指令将待访问数据从寄存器中存储至内存中。具体地,以小端系统为例,执行代码为:usdsrc,offset(dest)步骤411、若存储属性集为浮点型和八字节,则根据预先获取到的浮点寄存器运行模式将待访问数据从寄存器中存储至内存中。具体地,浮点寄存器运行模式可以用FIR寄存器的FR位表示。当FR位等于0时,表示相邻的奇偶浮点寄存器的低32位共同表示一个64位的浮点数据,当FR位等于1时,表示一个浮点寄存器可以直接表示一个64位的浮点数据。若FR位等于0,则选择两条swc1指令将待访问数据从寄存器中存储至内存中,即,使用两条swc1指令将两个浮点寄存器中的低32位数据存储到内存中,以小端系统为例,执行代码为:swc1src,offset(dest)swc1src+1,offset+4(dest)若FR位等于1,则选择swc1指令、mfhc1指令和sw指令将待访问数据从寄存器中存储至内存中,即,先使用swc1指令将浮点寄存器的低32位数据存储到内存中,再使用mfhc1指令和sw指令将浮点寄存器的高32位数据 存储到内存中,以小端系统为例,执行代码为:swc1src,offset(dest)mfhc1scratch,srcswscratch,offset+4(dest)在本实施例中,ush指令、usw指令、usd指令、swc1指令和sw指令均为MIPS指令,各个指令的具体含义如表3所示。表3本实施例提供了一种MIPS平台数据访问方法,具体提供了当待访问数据的存储属性集为整型双字节、整型四字节、整型八字节和浮点型八字节时,将待访问数据从寄存器中存储至内存中的数据访问方法。本实施例提供的MIPS平台数据访问方法,在数据不对齐的情况下,编译器编译过程中直接调用相应的MIPS指令对待访问数据进行访问,避免了内存浪费,提高了程序的编译效率和执行效率。实施例五为在实施例一的基础上提供的本发明的又一种MIPS平台数据访问方法,本实施例提供的MIPS平台数据访问方法,还可以包括:若待访问数据对齐,则根据存储属性集选择与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中 存储至内存中。其中,MIPS指令包括:lbu指令、lb指令、lhu指令、lh指令、lwu指令、lw指令、ld指令、lwc1指令、ldc1指令、sb指令、sh指令、sw指令、sd指令、swc1指令或者sdc1指令。在本实施例中,各个指令的具体含义如表4所示。表4指令含义lbu单字节加载并零扩展lb单字节加载并符号扩展lhu双字节加载并零扩展lh双字节加载并符号扩展lwu单字加载并零扩展lw单字加载并符号扩展ld双字加载lwc1加载单精度浮点到浮点寄存器ldc1加载双精度浮点到浮点寄存器sb单字节存储sh双字节存储sw单字存储sd双字存储swc1单精度浮点存储sdc1双精度浮点存储本实施例提供了一种MIPS平台数据访问方法,具体还提供了数据对齐情况下的数据访问方法。本实施例提供的MIPS平台数据访问方法,无论数据是否对齐,编译器在编译过程中均可以根据待访问数据的存储属性集直接调用相应的MIPS指令对待访问数据进行访问,避免了内存浪费,提高了程序的编译效率和执行效率。图5为本发明实施例一提供的MIPS平台数据访问装置的结构示意图,本实施例提供的MIPS平台数据访问装置,用于执行图1所示实施例提供的MIPS平台数据访问方法。如图5所示,本实施例提供的MIPS平台数据访问 装置,可以包括:第一获取模块11,用于获取编译器中访存宏指令的输入参数。其中,访存宏指令指示将待访问数据从内存中加载到寄存器中,或者将待访问数据从寄存器中存储至内存中。第二获取模块13,用于根据输入参数获取待访问数据的存储属性集。其中,存储属性集包括数据类型和字节数。第一访问模块15,用于若待访问数据不对齐,则根据存储属性集选择与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中存储至内存中。可选的,输入参数可以包括:第一寄存器、第二寄存器、第一整数常量和第二整数常量。其中,第一寄存器用于存储待访问数据,第二寄存器用于存储待访问数据在内存中的起始地址,第一整数常量用于指示待访问数据的字节数,第二整数常量用于指示待访问数据在内存中的偏移地址。其中,访存宏指令用于指示将待访问数据从第二寄存器和第二整数常量指示的内存地址中加载到第一寄存器中,或者将待访问数据从第一寄存器中存储至第二寄存器和第二整数常量指示的内存地址中。相应的,第二获取模块13具体用于:根据第一寄存器的名称获得待访问数据的数据类型,根据第一整数常量的取值获得待访问数据的字节数。可选的,MIPS平台数据访问装置还可以包括:设置模块(未示出)。设置模块用于将编译器中的访存宏指令控制开关打开。其中,访存宏指令控制开关用于控制是否执行访存宏指令对待访问数据进行访存。可选的,存储属性集还可以包括扩展方式。本实施例提供了一种MIPS平台数据访问装置,包括:第一获取模块、第二获取模块和第一访问模块,第一获取模块用于获取编译器中访存宏指令的输入参数,第二获取模块用于获取待访问数据的存储属性集,第一访问模块用于若待访问数据不对齐,则根据存储属性集选择与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中存储至内存中。本实施例提供的MIPS平台数据访问装置,通过获取到 的待访问数据的存储属性集,当数据不对齐时,编译器在进行代码翻译的过程中,直接调用与存储属性集相对应的MIPS指令对待访问数据进行访问,避免了内存浪费,提高了程序的编译效率和执行效率。图6为本发明实施例二提供的MIPS平台数据访问装置的结构示意图,本实施例在实施例一的基础上,提供了的MIPS平台数据访问装置的具体实现方式,用于执行上述各方法实施例提供的MIPS平台数据访问方法。如图6所示,本实施例提供的MIPS平台数据访问装置,可以包括:第一获取模块11、第二获取模块13和第一访问模块15。第一访问模块15可以包括第一访问单元151、第二访问单元153和第三访问单元155中的至少一个。MIPS平台数据访问装置还可以包括第二访问模块17。其中,第一访问单元151用于:若存储属性集为整型和八字节,则选择uld指令将待访问数据从内存中加载到寄存器中;或者,若存储属性集为浮点型和八字节,则根据预先获取到的浮点寄存器运行模式将待访问数据从内存中加载到寄存器中。其中,浮点寄存器运行模式可以用FIR寄存器的FR位表示。第一访问单元151具体用于:若FR位等于0,则选择两条lwc1指令将待访问数据从内存中加载到寄存器中;或者,若FR位等于1,则选择lwc1指令、lw指令和mfhc1指令将待访问数据从内存中加载到寄存器中。其中,第二访问单元153用于:若存储属性集为整型、双字节和零扩展,则选择ulhu指令将待访问数据从内存中加载到寄存器中;或者,若存储属性集为整型、双字节和符号扩展,则选择ulh指令将待访问数据从内存中加载到寄存器中;或者,若存储属性集为整型、四字节和零扩展,则选择ulwu指令将待访问数据从内存中加载到寄存器中;或者,若存储属性集为整型、四字节和符号扩展,则选择ulw指令将待访问数据从内存中加载到寄存器中。其中,第三访问单元155用于:若存储属性集为整型和双字节,则选择ush指令将待访问数据从寄存器中存储至内存中;或者,若存储属性集为整型和四字节,则选择usw指令将待访问数据从寄存器中存储至内存中;或者,若存储属性集为整型和八字节,则选择usd指令将待访问数据从寄存器中存储至内存中;或者,若存储属性集为浮点型和八字节,则根据预先获取到的浮点寄存器运行模式将待访问数据从寄存器中存储至内存中。其中,浮点寄存器运行模式可以用FIR寄存器的FR位表示。第三访问单元155具体用于:若FR位等于0,则选择两条swc1指令将待访问数据从寄存器中存储至内存中;或者,若FR位等于1,则选择swc1指令、mfhc1指令和sw指令将待访问数据从寄存器中存储至内存中。其中,第二访问模块17用于:若待访问数据对齐,则根据存储属性集选择与存储属性集相对应的MIPS指令,将待访问数据从内存中加载到寄存器中或者将待访问数据从寄存器中存储至内存中。其中,MIPS指令包括:lbu指令、lb指令、lhu指令、lh指令、lwu指令、lw指令、ld指令、lwc1指令、ldc1指令、sb指令、sh指令、sw指令、sd指令、swc1指令或者sdc1指令。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1