《一种指令转化方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种指令转化方法及系统.pdf(17页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102981802 A (43)申请公布日 2013.03.20 CN 102981802 A *CN102981802A* (21)申请号 201210441177.6 (22)申请日 2012.11.06 G06F 9/30(2006.01) G06F 12/02(2006.01) (71)申请人 无锡江南计算技术研究所 地址 214083 江苏省无锡市滨湖区军东新村 030 号 (72)发明人 王飞 吴佩华 李中升 沈莉 谢汶兵 (74)专利代理机构 北京集佳知识产权代理有限 公司 11227 代理人 骆苏华 (54) 发明名称 一种指令转化方法及系统 (57)。
2、 摘要 本发明提供的一种指令转化方法及系统, 获 得处理器对外部存储器中第一地址进行访问的指 令并判断是否为常数, 如果是, 则判断第一地址中 保存的数据的宽度是否满足预设的第一宽度要 求, 如果是, 则对所述该指令进行转化, 生成处理 器对内部指令缓存器访问的立即数指令。本发明 针对没有数据缓存器的处理器, 可以将处理器对 外部存储器中地址进行访问的指令转化为处理器 对内部指令缓存器访问的立即数指令, 从而无需 处理器再对外部存储器进行访问。 因此, 本发明可 以不再使处理器的处理速度受限于对外部存储器 的访问速度, 有效的解决了 “存储墙” 的问题, 提高 了处理器的实际处理速度。 (51。
3、)Int.Cl. 权利要求书 2 页 说明书 9 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 9 页 附图 5 页 1/2 页 2 1. 一种指令转化方法, 其特征在于, 包括 : 获得第一类型指令, 其中, 所述第一类型指令为处理器对外部存储器中第一地址进行 访问的指令 ; 判断所述第一地址中保存的数据是否为常数, 如果是, 则判断所述第一地址中保存的 数据的宽度是否满足预设的第一宽度要求 ; 如果是, 则对所述第一类型指令进行转化, 生成 处理器对指令缓存器访问的立即数指令。 2. 根据权利要求 1 所述的方法, 其特征在于, 。
4、还包括 : 对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。 3. 根据权利要求 2 所述的方法, 其特征在于, 所述对所述处理器对指令缓存器访问的 立即数指令进行指令优化处理的步骤, 包括 : 对所述处理器对指令缓存器访问的立即数指令进行窥孔优化和 / 或指令调度。 4. 根据权利要求 1 或 2 所述的方法, 其特征在于, 所述对所述第一类型指令进行转化, 生成处理器对指令缓存器访问的立即数指令的步骤, 包括 : 当所述第一地址中保存的数据的宽度为第一位数时, 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL ; 当所述第一地址中保存的数据的宽度为第二位数时, 对所。
5、述第一类型指令进行转化, 生成装入低段立即数指令 LDIL 和装入高段立即数指令 LDIH ; 当所述第一地址中保存的数据的宽度为第三位数时, 对所述第一类型指令进行转化, 生成高位立即数指令、 低位立即数指令、 使所述低位立即数指令左移的向左移位指令 SLL 及使左移后的低位立即数与所述高位立即数相加的加法指令 ADDL, 其中, 所述高位立即数 指令由高位的装入低段立即数指令 LDIL 和高位的装入高段立即数指令 LDIH 得到, 所述低 位立即数指令由低位的装入低段立即数指令 LDIL 和低位的装入高段立即数指令 LDIH 得 到。 5. 根据权利要求 3 所述的方法, 其特征在于, 所。
6、述对所述第一类型指令进行转化, 生成 处理器对指令缓存器访问的立即数指令的步骤, 还包括 : 当所述第一地址中保存的数据的宽度为 0 时, 生成赋零指令。 6. 根据权利要求 1 所述的方法, 其特征在于, 所述第一宽度要求根据所述处理器支持 的字长和立即数指令所携带参数的长度设定。 7. 一种指令转化系统, 其特征在于, 包括 : 第一类型指令获得单元、 常数判断单元、 宽 度判断单元和指令转化单元, 所述第一类型指令获得单元, 用于获得第一类型指令, 其中, 所述第一类型指令为处理 器对外部存储器中第一地址进行访问的指令 ; 所述常数判断单元, 用于判断所述第一地址中保存的数据是否为常数,。
7、 如果是, 则触发 所述宽度判断单元 ; 所述宽度判断单元, 用于判断所述第一地址中保存的数据的宽度是否满足预设的第一 宽度要求, 如果是, 则触发所述指令转化单元 ; 所述指令转化单元, 用于对所述第一类型指令进行转化, 生成处理器对指令缓存器访 问的立即数指令。 8. 根据权利要求 7 所述的系统, 其特征在于, 还包括 : 优化处理单元, 用于对所述处理 权 利 要 求 书 CN 102981802 A 2 2/2 页 3 器对指令缓存器访问的立即数指令进行指令优化处理。 9.根据权利要求8所述的系统, 其特征在于, 所述优化处理单元, 包括 : 窥孔子单元和/ 或调度子单元, 所述窥孔。
8、子单元, 用于对所述处理器对指令缓存器访问的立即数指令进行窥孔优化 ; 所述调度子单元, 用于对所述处理器对指令缓存器访问的立即数指令进行指令调度。 10. 根据权利要求 7 或 8 所述的系统, 其特征在于, 所述指令转化单元, 包括 : 第一转化 子单元、 第二转化子单元和第三转化子单元, 所述第一转化子单元, 用于当所述第一地址中保存的数据的宽度为第一位数时, 对所 述第一类型指令进行转化, 生成装入低段立即数指令 LDIL ; 所述第二转化子单元, 用于当所述第一地址中保存的数据的宽度为第二位数时, 对所 述第一类型指令进行转化, 生成装入低段立即数指令 LDIL 和装入高段立即数指令。
9、 LDIH ; 所述第三转化子单元, 用于当所述第一地址中保存的数据的宽度为第三位数时, 对所 述第一类型指令进行转化, 生成高位立即数指令、 低位立即数指令、 使所述低位立即数指 令左移的向左移位指令 SLL 及使左移后的低位立即数与所述高位立即数相加的加法指令 ADDL, 其中, 所述高位立即数指令由高位的装入低段立即数指令 LDIL 和高位的装入高段立 即数指令 LDIH 得到, 所述低位立即数指令由低位的装入低段立即数指令 LDIL 和低位的装 入高段立即数指令 LDIH 得到。 11. 根据权利要求 9 所述的系统, 其特征在于, 所述指令转化单元, 还包括 : 赋零子单 元, 用于。
10、当所述第一地址中保存的数据的宽度为 0 时, 生成赋零指令。 12. 根据权利要求 7 所述的系统, 其特征在于, 所述第一宽度要求根据所述处理器支持 的字长和立即数指令所携带参数的长度设定。 权 利 要 求 书 CN 102981802 A 3 1/9 页 4 一种指令转化方法及系统 技术领域 0001 本发明涉及指令转化技术领域, 更具体地说, 涉及一种指令转化方法及系统。 背景技术 0002 随着科技的进步, 处理器的处理速度也越来越快, 处理器的尺寸也越来越小。 0003 处理器中包括有数据缓存器和指令缓存器, 其中, 数据缓存器用于存放数据, 指令 缓存器用于存放指令。处理器还与外部。
11、存储器连接, 可以访问外部存储器中的数据。为了 减小处理器的尺寸, 新型的处理器体系结构中, 并不包含数据缓存器这一硬件结构。 这也使 得处理器对数据的访问需要通过对外部存储器的访问实现, 然而, 对外部存储器数据进行 访问的速度相对于处理器访问内部缓存器来说, 十分缓慢。从而使得新型处理器的处理速 度受限于对外部存储器的访问速度, 使得处理器的实际处理速度缓慢, 也即 “存储墙” 问题。 0004 因此, 对于没有数据缓存器的处理器来说,“存储墙” 问题亟待解决。 发明内容 0005 有鉴于此, 本发明提供一种指令转化方法及系统, 以解决 “存储墙” 问题, 提高处理 器的实际处理速度, 技。
12、术方案如下 : 0006 一种指令转化方法, 包括 : 0007 获得第一类型指令, 其中, 所述第一类型指令为处理器对外部存储器中第一地址 进行访问的指令 ; 0008 判断所述第一地址中保存的数据是否为常数, 如果是, 则判断所述第一地址中保 存的数据的宽度是否满足预设的第一宽度要求 ; 如果是, 则对所述第一类型指令进行转化, 生成处理器对指令缓存器访问的立即数指令。 0009 优选的, 还包括 : 0010 对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。 0011 优选的, 所述对所述处理器对指令缓存器访问的立即数指令进行指令优化处理的 步骤, 包括 : 0012 对所述处。
13、理器对指令缓存器访问的立即数指令进行窥孔优化和 / 或指令调度。 0013 优选的, 所述对所述第一类型指令进行转化, 生成处理器对指令缓存器访问的立 即数指令的步骤, 包括 : 0014 当所述第一地址中保存的数据的宽度为第一位数时, 对所述第一类型指令进行转 化, 生成装入低段立即数指令 LDIL ; 0015 当所述第一地址中保存的数据的宽度为第二位数时, 对所述第一类型指令进行转 化, 生成装入低段立即数指令 LDIL 和装入高段立即数指令 LDIH ; 0016 当所述第一地址中保存的数据的宽度为第三位数时, 对所述第一类型指令进行转 化, 生成高位立即数指令、 低位立即数指令、 使。
14、所述低位立即数指令左移的向左移位指令 SLL 及使左移后的低位立即数与所述高位立即数相加的加法指令 ADDL, 其中, 所述高位立 说 明 书 CN 102981802 A 4 2/9 页 5 即数指令由高位的装入低段立即数指令 LDIL 和高位的装入高段立即数指令 LDIH 得到, 所 述低位立即数指令由低位的装入低段立即数指令 LDIL 和低位的装入高段立即数指令 LDIH 得到。 0017 优选的, 所述对所述第一类型指令进行转化, 生成处理器对指令缓存器访问的立 即数指令的步骤, 还包括 : 0018 当所述第一地址中保存的数据的宽度为 0 时, 生成赋零指令。 0019 优选的, 所。
15、述第一宽度要求根据所述处理器支持的字长和立即数指令所携带参数 的长度设定。 0020 一种指令转化系统, 包括 : 第一类型指令获得单元、 常数判断单元、 宽度判断单元 和指令转化单元, 0021 所述第一类型指令获得单元, 用于获得第一类型指令, 其中, 所述第一类型指令为 处理器对外部存储器中第一地址进行访问的指令 ; 0022 所述常数判断单元, 用于判断所述第一地址中保存的数据是否为常数, 如果是, 则 触发所述宽度判断单元 ; 0023 所述宽度判断单元, 用于判断所述第一地址中保存的数据的宽度是否满足预设的 第一宽度要求, 如果是, 则触发所述指令转化单元 ; 0024 所述指令转。
16、化单元, 用于对所述第一类型指令进行转化, 生成处理器对指令缓存 器访问的立即数指令。 0025 优选的, 还包括 : 优化处理单元, 用于对所述处理器对指令缓存器访问的立即数指 令进行指令优化处理。 0026 优选的, 所述优化处理单元, 包括 : 窥孔子单元和 / 或调度子单元, 0027 所述窥孔子单元, 用于对所述处理器对指令缓存器访问的立即数指令进行窥孔优 化 ; 0028 所述调度子单元, 用于对所述处理器对指令缓存器访问的立即数指令进行指令调 度。 0029 优选的, 所述指令转化单元, 包括 : 第一转化子单元、 第二转化子单元和第三转化 子单元, 0030 所述第一转化子单元。
17、, 用于当所述第一地址中保存的数据的宽度为第一位数时, 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL ; 0031 所述第二转化子单元, 用于当所述第一地址中保存的数据的宽度为第二位数时, 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL 和装入高段立即数指令 LDIH ; 0032 所述第三转化子单元, 用于当所述第一地址中保存的数据的宽度为第三位数时, 对所述第一类型指令进行转化, 生成高位立即数指令、 低位立即数指令、 使所述低位立即数 指令左移的向左移位指令 SLL 及使左移后的低位立即数与所述高位立即数相加的加法指 令 ADDL, 其中, 所述高位立即。
18、数指令由高位的装入低段立即数指令 LDIL 和高位的装入高段 立即数指令 LDIH 得到, 所述低位立即数指令由低位的装入低段立即数指令 LDIL 和低位的 装入高段立即数指令 LDIH 得到。 0033 优选的, 所述指令转化单元, 还包括 : 赋零子单元, 用于当所述第一地址中保存的 说 明 书 CN 102981802 A 5 3/9 页 6 数据的宽度为 0 时, 生成赋零指令。 0034 优选的, 所述第一宽度要求根据所述处理器支持的字长和立即数指令所携带参数 的长度设定。 0035 从上述的技术方案可以看出, 本发明提供的一种指令转化方法及系统, 针对没有 数据缓存器的处理器, 可。
19、以将处理器对外部存储器中地址进行访问的指令转化为处理器对 内部指令缓存器访问的立即数指令, 从而无需处理器再对外部存储器进行访问。 因此, 本发 明可以不再使处理器的处理速度受限于对外部存储器的访问速度, 有效的解决了 “存储墙” 的问题, 提高了处理器的实际处理速度。 附图说明 0036 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。 0037 图 1 为本发明实施例。
20、提供的一种指令转化方法的流程示意图 ; 0038 图 2 为本发明实施例提供的另一种指令转化方法的流程示意图 ; 0039 图 3 为本发明实施例提供的另一种指令转化方法的流程示意图 ; 0040 图 4 为本发明实施例提供的另一种指令转化方法的流程示意图 ; 0041 图 5 为本发明实施例提供的一种指令转化系统的结构示意图 ; 0042 图 6 为本发明实施例提供的另一种指令转化方法的结构示意图 ; 0043 图 7 为本发明实施例提供的另一种指令转化方法的结构示意图 ; 0044 图 8 为本发明实施例提供的另一种指令转化方法的结构示意图。 具体实施方式 0045 下面将结合本发明实施例。
21、中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。 0046 如图 1 所示, 本发明实施例提供的一种指令转化方法, 包括 : 0047 S100、 获得第一类型指令, 其中, 所述第一类型指令为处理器对外部存储器中第一 地址进行访问的指令 ; 0048 本领域技术人员可以理解的是, 本方法可以由编译器执行。 0049 可以理解的是, 第一类型指令保存在处理器内的指令缓存器内, 编译器可以。
22、通过 访问处理器的指令缓存器来获得第一类型指令。 0050 S200、 判断所述第一地址中保存的数据是否为常数, 如果是, 则执行步骤 S300, 否 则结束 ; 0051 可以理解的是, 编译器只需根据第一类型指令, 便可以根据自身记录获得第一地 址中保存的数据。 0052 需要说明的一点是, 当第一地址中保存的数据为常数时, 立即数指令才可以对第 说 明 书 CN 102981802 A 6 4/9 页 7 一地址中保存的数据进行计算。 0053 S300、 判断所述第一地址中保存的数据的宽度是否满足预设的第一宽度要求, 如 果是, 则执行 S400, 否则结束 ; 0054 需要说明的一。
23、点是, 不同地址中保存的数据宽度并不相同, 而处理器支持的字长 固定, 因此, 第一地址中保存的数据的宽度最高不得超过处理器支持的字长。同时, 第一地 址中保存的数据的宽度也受指令携带参数的长度限制。例如装入低段立即数指令 LDIL, 其 携带参数的长度最高为 8 字节。 0055 S400、 对所述第一类型指令进行转化, 生成处理器对指令缓存器访问的立即数指 令。 0056 具体的, 可以生成装入低段立即数指令 LDIL 和装入高段立即数指令 LDIH。 0057 例一、 举例来说, 假设第一类型指令为 unsigned longa=0x4c1342a456b67f45, 该 第一类型指令中。
24、的立即数占 8 字节 (64 位) , 则转化后的立即数指令可以为 : 0058 0059 0060 下面对上述指令进行解释 : 0061 LDIL 指令 : 生成立即数低 16 位 0062 LDIH 指令 : 生成立即数高 16 位 0063 SLL 指令 : 向左移位指令 0064 ADDL 指令 : 加法指令 0065 需要说明的一点是, 以上四个指令均为基本指令集中的指令, 处理器可以直接识 别。 0066 本发明提供的一种指令转化方法, 针对没有数据缓存器的处理器, 可以将处理器 说 明 书 CN 102981802 A 7 5/9 页 8 对外部存储器中地址进行访问的指令转化为处。
25、理器对内部指令缓存器访问的立即数指令, 从而无需处理器再对外部存储器进行访问。因此, 本发明可以不再使处理器的处理速度受 限于对外部存储器的访问速度, 有效的解决了 “存储墙” 的问题, 提高了处理器的实际处理 速度。 0067 如图 2 所示, 本发明实施例提供的另一种指令转化方法, 还可以包括 : 0068 S500、 对所述处理器对指令缓存器访问的立即数指令进行指令优化处理。 0069 其中, 步骤 S500 可以包括 : 对所述处理器对指令缓存器访问的立即数指令进行窥 孔优化和 / 或指令调度。假设有多条第一类型指令, 经过本发明的转化生成了多条处理器 对指令缓存器访问的立即数指令。则。
26、窥孔优化可以发现冗余的指令, 比如具有相同操作数 的 ldih 和 ldil 指令, 从而可以进行冗余指令删除。处理器一般都是多发射的, 特定的指令 只能在特定的 CPU 发射端口发射, 指令调度可以对转换后的指令串进行合理的排布, 尽可 能在同一拍发射多条指令, 从而最大程度的发挥 CPU 的性能。 0070 如图 3 所示, 本发明实施例提供的另一种指令转化方法中, 步骤 S400 可以包括 : 0071 S410、 判断所述第一地址中保存的数据的宽度是否为第一位数, 如果是, 则执行步 骤 S420, 否则执行步骤 S430 ; 0072 其中, 第一位数可为 16 位。 0073 S4。
27、20、 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL ; 0074 可以理解的是, 如果第一地址中保存的数据的宽度为16位, 则只需要一个IDIL指 令即可。 0075 S430、 判断所述第一地址中保存的数据的宽度是否为第二位数, 如果是, 执行步骤 S440, 否则执行步骤 S450 ; 0076 其中, 所述第二位数可以为所述第一位数的两倍, 如 : 当第一位数为 16 位时, 第二 位数为 32 位。 0077 S440、 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL 和装入高段 立即数指令 LDIH ; 0078 可以理解的是, 如果第一地址中保存。
28、的数据的宽度为32位, 则需要一个IDIL指令 和一个 IDIH 指令, 其中, IDIL 指令对低 16 位立即数指令, IDIH 指令为高 16 位立即数指令。 0079 S450、 判断所述第一地址中保存的数据的宽度是否为第三位数, 如果是, 执行步骤 S460, 否则执行步骤 S470 ; 0080 其中, 所述第三位数可以为所述第二位数的两倍, 如 : 当第二位数为 32 位时, 第三 位数为 64 位。 0081 S460、 对所述第一类型指令进行转化, 生成高位立即数指令、 低位立即数指令、 使 所述低位立即数指令左移的向左移位指令 SLL 及使左移后的低位立即数与所述高位立即 。
29、数相加的加法指令 ADDL, 其中, 所述高位立即数指令由高位的装入低段立即数指令 LDIL 和 高位的装入高段立即数指令 LDIH 得到, 所述低位立即数指令由低位的装入低段立即数指 令 LDIL 和低位的装入高段立即数指令 LDIH 得到。 0082 参见例一, 由于 IDIL 指令和 IDIH 指令均为 16 位, 因此当第一地址中保存的数据 的宽度为 64 位时, 需要两个 IDIL 指令和两个 IDIH 指令。可以理解的是, 为了能够使这四 个指令结合相加得到第一地址中保存的数据, 还可以包括向左移位指令 SLL 和加法指令 说 明 书 CN 102981802 A 8 6/9 页 。
30、9 ADDL。 0083 S470、 结束。 0084 如图 4 所示, 在本发明实施例提供的另一种指令转化方法中, 步骤 S400 还可以包 括 : 0085 S480、 判断所述第一地址中保存的数据的宽度是否为 0, 如果是, 则执行步骤 S490, 否则执行步骤 S410 ; 0086 S490、 生成赋零指令。 0087 可以理解的是, 当第一地址中保存的数据的宽度为 0 时, 直接生成赋零指令即可。 在处理器执行时, 便可以直接将 0 返回给处理器。 0088 与上述方法实施例对应, 本发明还提供了一种指令转化系统。 0089 如图 5 所示, 本发明实施例提供的一种指令转化系统, 。
31、可以包括 : 第一类型指令获 得单元 100、 常数判断单元 200、 宽度判断单元 300 和指令转化单元 400, 0090 所述第一类型指令获得单元 100, 用于获得第一类型指令, 其中, 所述第一类型指 令为处理器对外部存储器中第一地址进行访问的指令 ; 0091 本领域技术人员可以理解的是, 本系统可以集成在编译器中, 或本系统为编译器 本身。 可以理解的是, 编译器只需根据第一类型指令, 便可以根据自身记录获得第一地址中 保存的数据。 0092 可以理解的是, 第一类型指令保存在处理器内的指令缓存器内, 编译器可以通过 访问处理器中的指令缓存器来获得第一类型指令。 0093 所述。
32、常数判断单元 200, 用于判断所述第一地址中保存的数据是否为常数, 如果 是, 则触发所述宽度判断单元 300 ; 0094 需要说明的一点是, 当第一地址中保存的数据为常数时, 立即数指令才可以对第 一地址中保存的数据进行计算。 0095 所述宽度判断单元 300, 用于判断所述第一地址中保存的数据的宽度是否满足预 设的第一宽度要求, 如果是, 则触发所述指令转化单元 400 ; 0096 需要说明的一点是, 不同地址中保存的数据宽度并不相同, 而处理器支持的字长 固定, 因此, 第一地址中保存的数据的宽度最高不得超过处理器支持的字长。同时, 第一地 址中保存的数据的宽度也受指令携带参数的。
33、长度限制。例如装入低段立即数指令 LDIL, 其 携带参数的长度最高为 8 字节。 0097 所述指令转化单元 400, 用于对所述第一类型指令进行转化, 生成处理器对指令缓 存器访问的立即数指令。 0098 具体的, 可以生成装入低段立即数指令 LDIL 和装入高段立即数指令 LDIH。 0099 例一、 举例来说, 假设第一类型指令为 unsigned longa=0x4c1342a456b67f45, 该 第一类型指令中的立即数占 8 字节 (64 位) , 则转化后的立即数指令可以为 : 0100 说 明 书 CN 102981802 A 9 7/9 页 10 0101 0102 下面。
34、对上述指令进行解释 : 0103 LDIL 指令 : 生成立即数低 16 位 0104 LDIH 指令 : 生成立即数高 16 位 0105 SLL 指令 : 向左移位指令 0106 ADDL 指令 : 加法指令 0107 需要说明的一点是, 以上四个指令均为基本指令集中的指令, 处理器可以直接识 别。 0108 本发明提供的一种指令转化系统, 针对没有数据缓存器的处理器, 可以将处理器 对外部存储器中地址进行访问的指令转化为处理器对内部指令缓存器访问的立即数指令, 从而无需处理器再对外部存储器进行访问。因此, 本发明可以不再使处理器的处理速度受 限于对外部存储器的访问速度, 有效的解决了 “。
35、存储墙” 的问题, 提高了处理器的实际处理 速度。 0109 如图 6 所示, 本发明实施例提供的另一种指令转化系统, 还可以包括 : 0110 优化处理单元 500, 用于对所述处理器对指令缓存器访问的立即数指令进行指令 优化处理。 0111 其中, 所述优化处理单元 500 可以包括 : 窥孔子单元和 / 或调度子单元, 0112 所述窥孔子单元, 用于对所述处理器对指令缓存器访问的立即数指令进行窥孔优 化 ; 0113 所述调度子单元, 用于对所述处理器对指令缓存器访问的立即数指令进行指令调 度。 说 明 书 CN 102981802 A 10 8/9 页 11 0114 假设有多条第一。
36、类型指令, 经过本发明的转化生成了多条处理器对指令缓存器访 问的立即数指令。则窥孔优化可以发现冗余的指令, 比如具有相同操作数的 ldih 和 ldil 指令, 从而可以进行冗余指令删除。处理器一般都是多发射的, 特定的指令只能在特定的 CPU 发射端口发射, 指令调度可以对转换后的指令串进行合理的排布, 尽可能在同一拍发射 多条指令, 从而最大程度的发挥 CPU 的性能。 0115 如图 7 所示, 本发明实施例提供的另一种指令转化系统中, 所述指令转化单元 400 可以包括 : 第一转化子单元 410、 第二转化子单元 420 和第三转化子单元 430, 0116 所述第一转化子单元 41。
37、0, 用于当所述第一地址中保存的数据的宽度为第一位数 时, 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL ; 0117 其中, 第一位数可为 16 位。可以理解的是, 如果第一地址中保存的数据的宽度为 16 位, 则只需要一个 IDIL 指令即可。 0118 所述第二转化子单元 420, 用于当所述第一地址中保存的数据的宽度为第二位数 时, 对所述第一类型指令进行转化, 生成装入低段立即数指令 LDIL 和装入高段立即数指令 LDIH ; 0119 其中, 所述第二位数可以为所述第一位数的两倍, 如 : 当第一位数为 16 位时, 第二 位数为32位。 可以理解的是, 如果第。
38、一地址中保存的数据的宽度为32位, 则需要一个IDIL 指令和一个 IDIH 指令, 其中, IDIL 指令对低 16 位立即数指令, IDIH 指令为高 16 位立即数 指令。 0120 所述第三转化子单元 430, 用于当所述第一地址中保存的数据的宽度为第三位数 时, 对所述第一类型指令进行转化, 生成高位立即数指令、 低位立即数指令、 使所述低位立 即数指令左移的向左移位指令 SLL 及使左移后的低位立即数与所述高位立即数相加的加 法指令 ADDL, 其中, 所述高位立即数指令由高位的装入低段立即数指令 LDIL 和高位的装入 高段立即数指令 LDIH 得到, 所述低位立即数指令由低位的。
39、装入低段立即数指令 LDIL 和低 位的装入高段立即数指令 LDIH 得到。 0121 所述第三位数可以为所述第二位数的两倍, 如 : 当第二位数为 32 位时, 第三位数 为 64 位。参见例一, 由于 IDIL 指令和 IDIH 指令均为 16 位, 因此当第一地址中保存的数 据的宽度为 64 位时, 需要两个 IDIL 指令和两个 IDIH 指令。可以理解的是, 为了能够使这 四个指令结合相加得到第一地址中保存的数据, 还可以包括向左移位指令 SLL 和加法指令 ADDL。 0122 如图 8 所示, 在本发明实施例提供的另一种指令转化系统中, 所述指令转化单元 400, 还可以包括 :。
40、 赋零子单元 440, 用于当所述第一地址中保存的数据的宽度为 0 时, 生成 赋零指令。 0123 可以理解的是, 当第一地址中保存的数据的宽度为 0 时, 直接生成赋零指令即可。 在处理器执行时, 便可以直接将 0 返回给处理器。 0124 为了描述的方便, 描述以上装置时以功能分为各种单元分别描述。 当然, 在实施本 发明时可以把各单元的功能在同一个或多个软件和 / 或硬件中实现。 0125 通过以上的实施方式的描述可知, 本领域的技术人员可以清楚地了解到本发明可 借助软件加必需的通用硬件平台的方式来实现。基于这样的理解, 本发明的技术方案本质 上或者说对现有技术做出贡献的部分可以以软件。
41、产品的形式体现出来, 该计算机软件产品 说 明 书 CN 102981802 A 11 9/9 页 12 可以存储在存储介质中, 如 ROM/RAM、 磁碟、 光盘等, 包括若干指令用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网络设备等) 执行本发明各个实施例或者实施例的某些 部分所述的方法。 0126 本说明书中的各个实施例均采用递进的方式描述, 各个实施例之间相同相似的部 分互相参见即可, 每个实施例重点说明的都是与其他实施例的不同之处。 尤其, 对于系统实 施例而言, 由于其基本相似于方法实施例, 所以描述得比较简单, 相关之处参见方法实施例 的部分说明即可。以上所描述的。
42、系统实施例仅仅是示意性的, 其中所述作为分离部件说明 的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是 物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。 本领域普通技术人员在不付出 创造性劳动的情况下, 即可以理解并实施。 0127 本发明可用于众多通用或专用的计算系统环境或配置中。 例如 : 个人计算机、 服务 器计算机、 手持设备或便携式设备、 平板型设备、 多处理器系统、 基于微处理器的系统、 置顶 盒、 可编程的消费电子设备、 网络 PC、 小型计算机、 大型计算。
43、机、 包括以上任何系统或设备的 分布式计算环境等等。 0128 本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述, 例如程序 模块。 一般地, 程序模块包括执行特定任务或实现特定抽象数据类型的例程、 程序、 对象、 组 件、 数据结构等等。也可以在分布式计算环境中实践本发明, 在这些分布式计算环境中, 由 通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中, 程序模块可以 位于包括存储设备在内的本地和远程计算机存储介质中。 0129 需要说明的是, 在本文中, 诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来, 而不一定要求或者暗示。
44、这些实体或操作之间存 在任何这种实际的关系或者顺序。 0130 以上所述仅是本发明的具体实施方式, 应当指出, 对于本技术领域的普通技术人 员来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应 视为本发明的保护范围。 说 明 书 CN 102981802 A 12 1/5 页 13 图 1 图 2 说 明 书 附 图 CN 102981802 A 13 2/5 页 14 图 3 说 明 书 附 图 CN 102981802 A 14 3/5 页 15 图 4 说 明 书 附 图 CN 102981802 A 15 4/5 页 16 图 5 图 6 图 7 说 明 书 附 图 CN 102981802 A 16 5/5 页 17 图 8 说 明 书 附 图 CN 102981802 A 17 。