CN102981802B - 一种指令转化方法及系统 - Google Patents
一种指令转化方法及系统 Download PDFInfo
- Publication number
- CN102981802B CN102981802B CN201210441177.6A CN201210441177A CN102981802B CN 102981802 B CN102981802 B CN 102981802B CN 201210441177 A CN201210441177 A CN 201210441177A CN 102981802 B CN102981802 B CN 102981802B
- Authority
- CN
- China
- Prior art keywords
- instruction
- immediate
- processor
- address
- width
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供的一种指令转化方法及系统,获得处理器对外部存储器中第一地址进行访问的指令并判断是否为常数,如果是,则判断第一地址中保存的数据的宽度是否满足预设的第一宽度要求,如果是,则对所述该指令进行转化,生成处理器对内部指令缓存器访问的立即数指令。本发明针对没有数据缓存器的处理器,可以将处理器对外部存储器中地址进行访问的指令转化为处理器对内部指令缓存器访问的立即数指令,从而无需处理器再对外部存储器进行访问。因此,本发明可以不再使处理器的处理速度受限于对外部存储器的访问速度,有效的解决了“存储墙”的问题,提高了处理器的实际处理速度。
Description
技术领域
本发明涉及指令转化技术领域,更具体地说,涉及一种指令转化方法及系统。
背景技术
随着科技的进步,处理器的处理速度也越来越快,处理器的尺寸也越来越小。
处理器中包括有数据缓存器和指令缓存器,其中,数据缓存器用于存放数据,指令缓存器用于存放指令。处理器还与外部存储器连接,可以访问外部存储器中的数据。为了减小处理器的尺寸,新型的处理器体系结构中,并不包含数据缓存器这一硬件结构。这也使得处理器对数据的访问需要通过对外部存储器的访问实现,然而,对外部存储器数据进行访问的速度相对于处理器访问内部缓存器来说,十分缓慢。从而使得新型处理器的处理速度受限于对外部存储器的访问速度,使得处理器的实际处理速度缓慢,也即“存储墙”问题。
因此,对于没有数据缓存器的处理器来说,“存储墙”问题亟待解决。
发明内容
有鉴于此,本发明提供一种指令转化方法及系统,以解决“存储墙”问题,提高处理器的实际处理速度,技术方案如下:
一种指令转化方法,包括:
获得第一类型指令,其中,所述第一类型指令为处理器对外部存储器中第一地址进行访问的指令;
判断所述第一地址中保存的数据是否为常数,如果是,则判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求;如果是,则对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令。
优选的,还包括:
对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。
优选的,所述对所述处理器对指令缓存器访问的立即数指令进行指令优化处理的步骤,包括:
对所述处理器对指令缓存器访问的立即数指令进行窥孔优化和/或指令调度。
优选的,所述对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令的步骤,包括:
当所述第一地址中保存的数据的宽度为第一位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL;
当所述第一地址中保存的数据的宽度为第二位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL和装入高段立即数指令LDIH;
当所述第一地址中保存的数据的宽度为第三位数时,对所述第一类型指令进行转化,生成高位立即数指令、低位立即数指令、使所述低位立即数指令左移的向左移位指令SLL及使左移后的低位立即数与所述高位立即数相加的加法指令ADDL,其中,所述高位立即数指令由高位的装入低段立即数指令LDIL和高位的装入高段立即数指令LDIH得到,所述低位立即数指令由低位的装入低段立即数指令LDIL和低位的装入高段立即数指令LDIH得到。
优选的,所述对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令的步骤,还包括:
当所述第一地址中保存的数据的宽度为0时,生成赋零指令。
优选的,所述第一宽度要求根据所述处理器支持的字长和立即数指令所携带参数的长度设定。
一种指令转化系统,包括:第一类型指令获得单元、常数判断单元、宽度判断单元和指令转化单元,
所述第一类型指令获得单元,用于获得第一类型指令,其中,所述第一类型指令为处理器对外部存储器中第一地址进行访问的指令;
所述常数判断单元,用于判断所述第一地址中保存的数据是否为常数,如果是,则触发所述宽度判断单元;
所述宽度判断单元,用于判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求,如果是,则触发所述指令转化单元;
所述指令转化单元,用于对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令。
优选的,还包括:优化处理单元,用于对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。
优选的,所述优化处理单元,包括:窥孔子单元和/或调度子单元,
所述窥孔子单元,用于对所述处理器对指令缓存器访问的立即数指令进行窥孔优化;
所述调度子单元,用于对所述处理器对指令缓存器访问的立即数指令进行指令调度。
优选的,所述指令转化单元,包括:第一转化子单元、第二转化子单元和第三转化子单元,
所述第一转化子单元,用于当所述第一地址中保存的数据的宽度为第一位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL;
所述第二转化子单元,用于当所述第一地址中保存的数据的宽度为第二位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL和装入高段立即数指令LDIH;
所述第三转化子单元,用于当所述第一地址中保存的数据的宽度为第三位数时,对所述第一类型指令进行转化,生成高位立即数指令、低位立即数指令、使所述低位立即数指令左移的向左移位指令SLL及使左移后的低位立即数与所述高位立即数相加的加法指令ADDL,其中,所述高位立即数指令由高位的装入低段立即数指令LDIL和高位的装入高段立即数指令LDIH得到,所述低位立即数指令由低位的装入低段立即数指令LDIL和低位的装入高段立即数指令LDIH得到。
优选的,所述指令转化单元,还包括:赋零子单元,用于当所述第一地址中保存的数据的宽度为0时,生成赋零指令。
优选的,所述第一宽度要求根据所述处理器支持的字长和立即数指令所携带参数的长度设定。
从上述的技术方案可以看出,本发明提供的一种指令转化方法及系统,针对没有数据缓存器的处理器,可以将处理器对外部存储器中地址进行访问的指令转化为处理器对内部指令缓存器访问的立即数指令,从而无需处理器再对外部存储器进行访问。因此,本发明可以不再使处理器的处理速度受限于对外部存储器的访问速度,有效的解决了“存储墙”的问题,提高了处理器的实际处理速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种指令转化方法的流程示意图;
图2为本发明实施例提供的另一种指令转化方法的流程示意图;
图3为本发明实施例提供的另一种指令转化方法的流程示意图;
图4为本发明实施例提供的另一种指令转化方法的流程示意图;
图5为本发明实施例提供的一种指令转化系统的结构示意图;
图6为本发明实施例提供的另一种指令转化方法的结构示意图;
图7为本发明实施例提供的另一种指令转化方法的结构示意图;
图8为本发明实施例提供的另一种指令转化方法的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种指令转化方法,包括:
S100、获得第一类型指令,其中,所述第一类型指令为处理器对外部存储器中第一地址进行访问的指令;
本领域技术人员可以理解的是,本方法可以由编译器执行。
可以理解的是,第一类型指令保存在处理器内的指令缓存器内,编译器可以通过访问处理器的指令缓存器来获得第一类型指令。
S200、判断所述第一地址中保存的数据是否为常数,如果是,则执行步骤S300,否则结束;
可以理解的是,编译器只需根据第一类型指令,便可以根据自身记录获得第一地址中保存的数据。
需要说明的一点是,当第一地址中保存的数据为常数时,立即数指令才可以对第一地址中保存的数据进行计算。
S300、判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求,如果是,则执行S400,否则结束;
需要说明的一点是,不同地址中保存的数据宽度并不相同,而处理器支持的字长固定,因此,第一地址中保存的数据的宽度最高不得超过处理器支持的字长。同时,第一地址中保存的数据的宽度也受指令携带参数的长度限制。例如装入低段立即数指令LDIL,其携带参数的长度最高为8字节。
S400、对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令。
具体的,可以生成装入低段立即数指令LDIL和装入高段立即数指令LDIH。
例一、举例来说,假设第一类型指令为unsigned longa=0x4c1342a456b67f45,该第一类型指令中的立即数占8字节(64位),则转化后的立即数指令可以为:
下面对上述指令进行解释:
LDIL指令:生成立即数低16位
LDIH指令:生成立即数高16位
SLL指令:向左移位指令
ADDL指令:加法指令
需要说明的一点是,以上四个指令均为基本指令集中的指令,处理器可以直接识别。
本发明提供的一种指令转化方法,针对没有数据缓存器的处理器,可以将处理器对外部存储器中地址进行访问的指令转化为处理器对内部指令缓存器访问的立即数指令,从而无需处理器再对外部存储器进行访问。因此,本发明可以不再使处理器的处理速度受限于对外部存储器的访问速度,有效的解决了“存储墙”的问题,提高了处理器的实际处理速度。
如图2所示,本发明实施例提供的另一种指令转化方法,还可以包括:
S500、对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。
其中,步骤S500可以包括:对所述处理器对指令缓存器访问的立即数指令进行窥孔优化和/或指令调度。假设有多条第一类型指令,经过本发明的转化生成了多条处理器对指令缓存器访问的立即数指令。则窥孔优化可以发现冗余的指令,比如具有相同操作数的ldih和ldil指令,从而可以进行冗余指令删除。处理器一般都是多发射的,特定的指令只能在特定的CPU发射端口发射,指令调度可以对转换后的指令串进行合理的排布,尽可能在同一拍发射多条指令,从而最大程度的发挥CPU的性能。
如图3所示,本发明实施例提供的另一种指令转化方法中,步骤S400可以包括:
S410、判断所述第一地址中保存的数据的宽度是否为第一位数,如果是,则执行步骤S420,否则执行步骤S430;
其中,第一位数可为16位。
S420、对所述第一类型指令进行转化,生成装入低段立即数指令LDIL;
可以理解的是,如果第一地址中保存的数据的宽度为16位,则只需要一个IDIL指令即可。
S430、判断所述第一地址中保存的数据的宽度是否为第二位数,如果是,执行步骤S440,否则执行步骤S450;
其中,所述第二位数可以为所述第一位数的两倍,如:当第一位数为16位时,第二位数为32位。
S440、对所述第一类型指令进行转化,生成装入低段立即数指令LDIL和装入高段立即数指令LDIH;
可以理解的是,如果第一地址中保存的数据的宽度为32位,则需要一个IDIL指令和一个IDIH指令,其中,IDIL指令对低16位立即数指令,IDIH指令为高16位立即数指令。
S450、判断所述第一地址中保存的数据的宽度是否为第三位数,如果是,执行步骤S460,否则执行步骤S470;
其中,所述第三位数可以为所述第二位数的两倍,如:当第二位数为32位时,第三位数为64位。
S460、对所述第一类型指令进行转化,生成高位立即数指令、低位立即数指令、使所述低位立即数指令左移的向左移位指令SLL及使左移后的低位立即数与所述高位立即数相加的加法指令ADDL,其中,所述高位立即数指令由高位的装入低段立即数指令LDIL和高位的装入高段立即数指令LDIH得到,所述低位立即数指令由低位的装入低段立即数指令LDIL和低位的装入高段立即数指令LDIH得到。
参见例一,由于IDIL指令和IDIH指令均为16位,因此当第一地址中保存的数据的宽度为64位时,需要两个IDIL指令和两个IDIH指令。可以理解的是,为了能够使这四个指令结合相加得到第一地址中保存的数据,还可以包括向左移位指令SLL和加法指令ADDL。
S470、结束。
如图4所示,在本发明实施例提供的另一种指令转化方法中,步骤S400还可以包括:
S480、判断所述第一地址中保存的数据的宽度是否为0,如果是,则执行步骤S490,否则执行步骤S410;
S490、生成赋零指令。
可以理解的是,当第一地址中保存的数据的宽度为0时,直接生成赋零指令即可。在处理器执行时,便可以直接将0返回给处理器。
与上述方法实施例对应,本发明还提供了一种指令转化系统。
如图5所示,本发明实施例提供的一种指令转化系统,可以包括:第一类型指令获得单元100、常数判断单元200、宽度判断单元300和指令转化单元400,
所述第一类型指令获得单元100,用于获得第一类型指令,其中,所述第一类型指令为处理器对外部存储器中第一地址进行访问的指令;
本领域技术人员可以理解的是,本系统可以集成在编译器中,或本系统为编译器本身。可以理解的是,编译器只需根据第一类型指令,便可以根据自身记录获得第一地址中保存的数据。
可以理解的是,第一类型指令保存在处理器内的指令缓存器内,编译器可以通过访问处理器中的指令缓存器来获得第一类型指令。
所述常数判断单元200,用于判断所述第一地址中保存的数据是否为常数,如果是,则触发所述宽度判断单元300;
需要说明的一点是,当第一地址中保存的数据为常数时,立即数指令才可以对第一地址中保存的数据进行计算。
所述宽度判断单元300,用于判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求,如果是,则触发所述指令转化单元400;
需要说明的一点是,不同地址中保存的数据宽度并不相同,而处理器支持的字长固定,因此,第一地址中保存的数据的宽度最高不得超过处理器支持的字长。同时,第一地址中保存的数据的宽度也受指令携带参数的长度限制。例如装入低段立即数指令LDIL,其携带参数的长度最高为8字节。
所述指令转化单元400,用于对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令。
具体的,可以生成装入低段立即数指令LDIL和装入高段立即数指令LDIH。
例一、举例来说,假设第一类型指令为unsigned longa=0x4c1342a456b67f45,该第一类型指令中的立即数占8字节(64位),则转化后的立即数指令可以为:
下面对上述指令进行解释:
LDIL指令:生成立即数低16位
LDIH指令:生成立即数高16位
SLL指令:向左移位指令
ADDL指令:加法指令
需要说明的一点是,以上四个指令均为基本指令集中的指令,处理器可以直接识别。
本发明提供的一种指令转化系统,针对没有数据缓存器的处理器,可以将处理器对外部存储器中地址进行访问的指令转化为处理器对内部指令缓存器访问的立即数指令,从而无需处理器再对外部存储器进行访问。因此,本发明可以不再使处理器的处理速度受限于对外部存储器的访问速度,有效的解决了“存储墙”的问题,提高了处理器的实际处理速度。
如图6所示,本发明实施例提供的另一种指令转化系统,还可以包括:
优化处理单元500,用于对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。
其中,所述优化处理单元500可以包括:窥孔子单元和/或调度子单元,
所述窥孔子单元,用于对所述处理器对指令缓存器访问的立即数指令进行窥孔优化;
所述调度子单元,用于对所述处理器对指令缓存器访问的立即数指令进行指令调度。
假设有多条第一类型指令,经过本发明的转化生成了多条处理器对指令缓存器访问的立即数指令。则窥孔优化可以发现冗余的指令,比如具有相同操作数的ldih和ldil指令,从而可以进行冗余指令删除。处理器一般都是多发射的,特定的指令只能在特定的CPU发射端口发射,指令调度可以对转换后的指令串进行合理的排布,尽可能在同一拍发射多条指令,从而最大程度的发挥CPU的性能。
如图7所示,本发明实施例提供的另一种指令转化系统中,所述指令转化单元400可以包括:第一转化子单元410、第二转化子单元420和第三转化子单元430,
所述第一转化子单元410,用于当所述第一地址中保存的数据的宽度为第一位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL;
其中,第一位数可为16位。可以理解的是,如果第一地址中保存的数据的宽度为16位,则只需要一个IDIL指令即可。
所述第二转化子单元420,用于当所述第一地址中保存的数据的宽度为第二位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL和装入高段立即数指令LDIH;
其中,所述第二位数可以为所述第一位数的两倍,如:当第一位数为16位时,第二位数为32位。可以理解的是,如果第一地址中保存的数据的宽度为32位,则需要一个IDIL指令和一个IDIH指令,其中,IDIL指令对低16位立即数指令,IDIH指令为高16位立即数指令。
所述第三转化子单元430,用于当所述第一地址中保存的数据的宽度为第三位数时,对所述第一类型指令进行转化,生成高位立即数指令、低位立即数指令、使所述低位立即数指令左移的向左移位指令SLL及使左移后的低位立即数与所述高位立即数相加的加法指令ADDL,其中,所述高位立即数指令由高位的装入低段立即数指令LDIL和高位的装入高段立即数指令LDIH得到,所述低位立即数指令由低位的装入低段立即数指令LDIL和低位的装入高段立即数指令LDIH得到。
所述第三位数可以为所述第二位数的两倍,如:当第二位数为32位时,第三位数为64位。参见例一,由于IDIL指令和IDIH指令均为16位,因此当第一地址中保存的数据的宽度为64位时,需要两个IDIL指令和两个IDIH指令。可以理解的是,为了能够使这四个指令结合相加得到第一地址中保存的数据,还可以包括向左移位指令SLL和加法指令ADDL。
如图8所示,在本发明实施例提供的另一种指令转化系统中,所述指令转化单元400,还可以包括:赋零子单元440,用于当所述第一地址中保存的数据的宽度为0时,生成赋零指令。
可以理解的是,当第一地址中保存的数据的宽度为0时,直接生成赋零指令即可。在处理器执行时,便可以直接将0返回给处理器。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种指令转化方法,其特征在于,包括:
获得第一类型指令,其中,所述第一类型指令为处理器对外部存储器中第一地址进行访问的指令;所述处理器为没有数据缓存器的处理器;
判断所述第一地址中保存的数据是否为常数,如果是,则判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求;如果是,则对所述第一类型指令进行转化,生成处理器对内部指令缓存器访问的立即数指令。
2.根据权利要求1所述的方法,其特征在于,还包括:
对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。
3.根据权利要求2所述的方法,其特征在于,所述对所述处理器对指令缓存器访问的立即数指令进行指令优化处理的步骤,包括:
对所述处理器对指令缓存器访问的立即数指令进行窥孔优化和/或指令调度。
4.根据权利要求1或2所述的方法,其特征在于,所述对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令的步骤,包括:
当所述第一地址中保存的数据的宽度为第一位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL;
当所述第一地址中保存的数据的宽度为第二位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL和装入高段立即数指令LDIH;
当所述第一地址中保存的数据的宽度为第三位数时,对所述第一类型指令进行转化,生成高位立即数指令、低位立即数指令、使所述低位立即数指令左移的向左移位指令SLL及使左移后的低位立即数与所述高位立即数相加的加法指令ADDL,其中,所述高位立即数指令由高位的装入低段立即数指令LDIL和高位的装入高段立即数指令LDIH得到,所述低位立即数指令由低位的装入低段立即数指令LDIL和低位的装入高段立即数指令LDIH得到。
5.根据权利要求3所述的方法,其特征在于,所述对所述第一类型指令进行转化,生成处理器对指令缓存器访问的立即数指令的步骤,还包括:
当所述第一地址中保存的数据的宽度为0时,生成赋零指令。
6.根据权利要求1所述的方法,其特征在于,所述第一宽度要求根据所述处理器支持的字长和立即数指令所携带参数的长度设定。
7.一种指令转化系统,其特征在于,包括:第一类型指令获得单元、常数判断单元、宽度判断单元和指令转化单元,
所述第一类型指令获得单元,用于获得第一类型指令,其中,所述第一类型指令为处理器对外部存储器中第一地址进行访问的指令;所述处理器为没有数据缓存器的处理器;
所述常数判断单元,用于判断所述第一地址中保存的数据是否为常数,如果是,则触发所述宽度判断单元;
所述宽度判断单元,用于判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求,如果是,则触发所述指令转化单元;
所述指令转化单元,用于对所述第一类型指令进行转化,生成处理器对内部指令缓存器访问的立即数指令。
8.根据权利要求7所述的系统,其特征在于,还包括:优化处理单元,用于对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。
9.根据权利要求8所述的系统,其特征在于,所述优化处理单元,包括:窥孔子单元和/或调度子单元,
所述窥孔子单元,用于对所述处理器对指令缓存器访问的立即数指令进行窥孔优化;
所述调度子单元,用于对所述处理器对指令缓存器访问的立即数指令进行指令调度。
10.根据权利要求7或8所述的系统,其特征在于,所述指令转化单元,包括:第一转化子单元、第二转化子单元和第三转化子单元,
所述第一转化子单元,用于当所述第一地址中保存的数据的宽度为第一位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL;
所述第二转化子单元,用于当所述第一地址中保存的数据的宽度为第二位数时,对所述第一类型指令进行转化,生成装入低段立即数指令LDIL和装入高段立即数指令LDIH;
所述第三转化子单元,用于当所述第一地址中保存的数据的宽度为第三位数时,对所述第一类型指令进行转化,生成高位立即数指令、低位立即数指令、使所述低位立即数指令左移的向左移位指令SLL及使左移后的低位立即数与所述高位立即数相加的加法指令ADDL,其中,所述高位立即数指令由高位的装入低段立即数指令LDIL和高位的装入高段立即数指令LDIH得到,所述低位立即数指令由低位的装入低段立即数指令LDIL和低位的装入高段立即数指令LDIH得到。
11.根据权利要求9所述的系统,其特征在于,所述指令转化单元,还包括:赋零子单元,用于当所述第一地址中保存的数据的宽度为0时,生成赋零指令。
12.根据权利要求7所述的系统,其特征在于,所述第一宽度要求根据所述处理器支持的字长和立即数指令所携带参数的长度设定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210441177.6A CN102981802B (zh) | 2012-11-06 | 2012-11-06 | 一种指令转化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210441177.6A CN102981802B (zh) | 2012-11-06 | 2012-11-06 | 一种指令转化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102981802A CN102981802A (zh) | 2013-03-20 |
CN102981802B true CN102981802B (zh) | 2015-10-07 |
Family
ID=47855873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210441177.6A Active CN102981802B (zh) | 2012-11-06 | 2012-11-06 | 一种指令转化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102981802B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109491659B (zh) * | 2017-09-11 | 2022-06-21 | 龙芯中科技术股份有限公司 | 指令转换方法和装置 |
CN110874643B (zh) * | 2019-11-08 | 2021-01-12 | 安徽寒武纪信息科技有限公司 | 机器学习指令的转换方法及装置、板卡、主板、电子设备 |
CN113849345A (zh) * | 2021-09-23 | 2021-12-28 | 武汉深之度科技有限公司 | 一种指令执行方法、装置、计算设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734898B2 (en) * | 2004-09-17 | 2010-06-08 | Freescale Semiconductor, Inc. | System and method for specifying an immediate value in an instruction |
US20120151187A1 (en) * | 2010-12-13 | 2012-06-14 | Microsoft Corporation | Instruction optimization |
-
2012
- 2012-11-06 CN CN201210441177.6A patent/CN102981802B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102981802A (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sato et al. | Co-design for a64fx manycore processor and” fugaku” | |
Baek et al. | A multi-neural network acceleration architecture | |
Singh et al. | NERO: A near high-bandwidth memory stencil accelerator for weather prediction modeling | |
Chiu et al. | Molecular dynamics simulations on high-performance reconfigurable computing systems | |
Torabzadehkashi et al. | Catalina: in-storage processing acceleration for scalable big data analytics | |
Chen et al. | Using OpenCL to evaluate the efficiency of CPUs, GPUs and FPGAs for information filtering | |
US20160179750A1 (en) | Computer-Implemented System And Method For Efficient Sparse Matrix Representation And Processing | |
US20110320788A1 (en) | Method and apparatus for branch reduction in a multithreaded packet processor | |
CN103197976A (zh) | 异构系统的任务处理方法及装置 | |
Moon et al. | Optimizing the hadoop mapreduce framework with high-performance storage devices | |
CN105005911A (zh) | 深度神经网络的运算系统及运算方法 | |
Yu et al. | Virtual shuffling for efficient data movement in mapreduce | |
CN102981802B (zh) | 一种指令转化方法及系统 | |
CN106030518A (zh) | 用于整理和退出存储的指令和逻辑 | |
Baun | Mobile clusters of single board computers: an option for providing resources to student projects and researchers | |
Ouyang et al. | Active SSD design for energy-efficiency improvement of web-scale data analysis | |
US11886347B2 (en) | Large-scale data processing computer architecture | |
US20130013283A1 (en) | Distributed multi-pass microarchitecture simulation | |
Jia | Google cloud computing platform technology architecture and the impact of its cost | |
Han et al. | Ade-hgnn: Accelerating hgnns through attention disparity exploitation | |
CN118014022A (zh) | 面向深度学习的fpga通用异构加速方法及设备 | |
US20190272460A1 (en) | Configurable neural network processor for machine learning workloads | |
CN112148249A (zh) | 点积运算实现方法、装置、电子设备及存储介质 | |
Diamantopoulos et al. | A system-level transprecision FPGA accelerator for BLSTM using on-chip memory reshaping | |
CN104360979A (zh) | 基于图形处理器的计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |