书签 分享 收藏 举报 版权申诉 / 8

用于提高JAVA处理器取指令带宽的字节码缓冲装置及其使用方法.pdf

  • 上传人:62****3
  • 文档编号:969174
  • 上传时间:2018-03-22
  • 格式:PDF
  • 页数:8
  • 大小:401.42KB
  • 摘要
    申请专利号:

    CN200910035646.2

    申请日:

    2009.09.30

    公开号:

    CN101699391A

    公开日:

    2010.04.28

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/30申请日:20090930|||公开

    IPC分类号:

    G06F9/30; G06F15/78

    主分类号:

    G06F9/30

    申请人:

    江南大学

    发明人:

    柴志雷; 张平; 梁久祯; 任小龙

    地址:

    214122 江苏省无锡市滨湖区蠡湖大道1800号

    优先权:

    专利代理机构:

    无锡盛阳专利商标事务所(普通合伙) 32227

    代理人:

    顾吉云

    PDF完整版下载: PDF下载
    内容摘要

    本发明涉及用于提高Java处理器取指令带宽的字节码缓冲装置及其使用方法。本发明中,字节码寄存器、多路选择模块及字节码缓冲顺序相连;字节码寄存器的输入端与指令存储器相连,字节码缓冲的输出端与Java处理器的译码段相连;控制模块的输入端与Java处理器的译码段相连,控制模块的输出端分别与字节码寄存器、多路选择模块及字节码缓冲相连;字节码寄存器是32位的,字节码缓冲是64位的,其高4个字节与Java处理器的译码段相连。本发明在字节码缓冲的可用空间不小于4个字节时,从寄存器读取4个字节,并通过多路选择模块将其送到缓冲的正确位置,使待执行字节码总完整存在于高字节中,减少了访存次数,提高了取指令带宽。

    权利要求书

    1: 用于提高Java处理器取指令带宽的字节码缓冲装置,包括字节码寄存器(2)、多路选择模块(3)、字节码缓冲(4)以及控制模块(1),其特征在于: 所述字节码寄存器(2)、多路选择模块(3)及字节码缓冲(4)顺序相连; 所述字节码寄存器(2)的输入端与所述指令存储器相连,所述字节码缓冲(4)的输出端与Java处理器的译码段相连; 所述控制模块(1)的输入端与Java处理器的译码段相连,所述控制模块(1)的输出端分别与所述字节码寄存器(2)、多路选择模块(3)及字节码缓冲(4)相连,对其进行逻辑控制; 所述字节码寄存器(2)是32位的,用来存储从指令存储器读出的以32位为单位的字节码; 所述字节码缓冲(4)是64位的,其高4个字节与Java处理器的译码段相连,为其提供一个完整的字节码。
    2: 根据权利要求1所述的用于提高Java处理器取指令带宽的字节码缓冲装置,其特征在于:所述多路选择模块(3)包括第一级多路选择器(5)及第二级多路选择器(6),第一级多路选择器(5)负责将字节码寄存器(2)的有效字节按照字节顺序选择到8个字节序列中的正确位置,第二级多路选择器(6)负责将第一级多路选择器(5)输出的字节以及原字节码缓冲中的剩余字节统一排序并送到字节码缓冲(4)的正确位置。
    3: 根据权利要求1所述的用于提高Java处理器取指令带宽的字节码缓冲装置,其特征在于:所述字节码缓冲(4)采用具有预取功能的cache。
    4: 权利要求1所述的用于提高Java处理器取指令带宽的字节码缓冲装置的使用方法,其特征在于:所述字节码寄存器(2)从32位对齐的指令存储器地址处一次读取4个字节,通过多路选择模块(3)送到字节码缓冲(4),字节码缓冲(4)的高4个字节为Java处理器的译码段提供一个完整的字节码,该字节码为1~4个字节。
    5: 根据权利要求4所述的用于提高Java处理器取指令带宽的字节码缓冲装置的使用方法,其特征在于:所述控制模块(1)根据当前被执行字节码实际消耗字节数,将其从字节码缓冲(4)空间总量减去,并判断字节码缓冲(4)是否能提供不小于将要送入的有效字节数的空间,判断是否将新的字节码送入字节码缓冲(4)。
    6: 根据权利要求4所述的用于提高Java处理器取指令带宽的字节码缓冲装置的使用方法,其特征在于:所述控制模块(1)根据字节码地址的对齐情况,从字节码寄存器(2)中选择真正有效字节送多路选择模块(3)。

    说明书


    提高Java处理器取指令带宽的字节码缓冲装置及使用方法

        【技术领域】

        本发明涉及Java处理器,具体为一种用于提高Java处理器取指令带宽的字节码缓冲装置及其使用方法。 

        背景技术

        计算机的指令集一般分为两类:一类是固定长度的指令集,即不论指令类型如何,都保持相同的长度,它的优点是在取指令的同时就可以判断并取到一条完整的指令,便于指令的流水执行,其不足之处是指令都占据相同的长度,不利于节省指令存储空间,固定长度的指令集多用于简单指令集计算机(RISC)系统中;另一类是变长指令集,即不同的指令具有不同的长度,它的优点是可以尽量缩减指令长度,有利于节省指令存储空间,其不足之处是无法在取指令的同时确定该条指令的完整长度,只能在对操作码部分译码之后才能确定并读取后续部分,不利于指令的流水执行,所以多用于复杂指令集计算机(CISC)系统中。 

        Java处理器是指能以硬件直接执行Java虚拟机指令集的处理器。Java虚拟机的指令集(即字节码)属于长度不固定的指令集,其指令除了极个别之外,绝大多数不超过4个字节。Java处理器通常的做法,就是和指令存储器以1个字节宽度的接口进行字节码读取,在取指令阶段只读取第一个字节(操作码所在的字节),而在译码段获取到整个字节码长度后再进行后续字节的读取。由于要多次以1个字节的宽度访问指令存储器,影响到了处理器性能的提高。 

        目前也有通过指令缓存来提高取指令带宽的方法,它是将字节码从指令存储器读出并以4字节为单位写入一个由多个寄存器组成的缓冲,然后根据指令实际长度从寄存器缓冲的输出多路开关中读取正确的字节码;如果读出的指令超过一个字,则将寄存器缓冲中的数据向前移动一次。这种方法的特点是寄存器组较大时可以提供较好的指令预取性能,但是指令转移等会导致其利用率下降,所以需要确定合适的寄存器组大小,这样既能较好地满足译码部件的取指 需求,又能减少硬件的设备量。 

        【发明内容】

        针对上述问题,本发明提供一种用于提高Java处理器取指令带宽的字节码缓冲装置及其使用方法,使用该装置可以提高处理器的性能。 

        本发明装置的技术方案是这样的: 

        其包括字节码寄存器、多路选择模块、字节码缓冲以及控制模块,所述字节码寄存器、多路选择模块及字节码缓冲顺序相连;所述字节码寄存器的输入端与所述指令存储器相连,所述字节码缓冲的输出端与Java处理器的译码段相连;所述控制模块的输入端与Java处理器的译码段相连,所述控制模块的输出端分别与所述字节码寄存器、多路选择模块及字节码缓冲相连,对其进行逻辑控制;所述字节码寄存器是32位的,用来存储从指令存储器读出的以32位为单位的字节码;所述字节码缓冲是64位的,其高4个字节与Java处理器的译码段相连,为其提供一个完整的字节码。 

        其进一步的技术方案为: 

        所述多路选择模块包括第一级多路选择器及第二级多路选择器,第一级多路选择器负责将字节码寄存器的有效字节按照字节顺序选择到8个字节序列中的正确位置,第二级多路选择器负责将第一级多路选择器输出的字节以及原字节码缓冲中的剩余字节统一排序并送到字节码缓冲的正确位置; 

        所述字节码缓冲采用具有预取功能的cache。 

        本发明装置的使用方法的技术方案如下: 

        所述字节码寄存器从32位对齐的指令存储器地址处一次读取4个字节,通过多路选择模块送到字节码缓冲,字节码缓冲的高4个字节为Java处理器的译码段提供一个完整的字节码,该字节码为1~4个字节。 

        其进一步的技术方案为: 

        所述控制模块根据当前被执行字节码实际消耗字节数,将其从字节码缓冲空间总量减去,并判断字节码缓冲是否能提供不小于将要送入的有效字节数的空间,判断是否将新的字节码送入字节码缓冲; 

        所述控制模块根据字节码地址的对齐情况,从字节码寄存器中选择真正有效字节送多路选择模块。 

        本发明所提出的字节码缓冲长度固定在64位,其输出固定在最高的4个字节,避免了输出时对多路选择器的需要。其主要目的就是“整存零取”,以和处理器相同的工作频率把32位为单位的字节码送入字节码缓冲,以不同长度读出并将后续字节码往前推,使可用的字节码总保持在固定的位置。 

        本发明在字节码缓冲的可用空间不小于4个字节时,就从寄存器读取4个字节,并通过多路选择模块将其送到缓冲的正确位置,使待执行字节码总完整存在于高字节中,因为待执行字节码总能在一个周期内取完整,减少了访存次数,提高了取指令带宽。 

        本发明从两方面提供处理器性能,一是在取指令同时将可能的操作数同时取出,避免了多次访问存储器;二是利用取指令每次4字节,而多数字节码不足4字节,产生一定时间可用于将指令预取到字节码缓冲,从而隐藏了访存时间。 

        (四)附图说明

        图1为本发明装置的结构示意及方框图; 

        图2为本发明中的多路选择模块的数据通路示意及方框图; 

        图3为本发明中的控制模块的示意及方框图; 

        图4为本发明中的字节码缓冲的输出接口示意及方框图。 

        (五)具体实施方式

        如图1所示,本发明装置包括字节码寄存器2、多路选择模块3、字节码缓冲4以及控制模块1,字节码寄存器2、多路选择模块3及字节码缓冲4顺序相连。字节码寄存器2的输入端与指令存储器相连,字节码缓冲4的输出端与Java处理器的译码段相连;控制模块1的输入端与Java处理器的译码段相连,控制模块1的输出端分别与字节码寄存器2、多路选择模块3及字节码缓冲4相连,对其进行逻辑控制。 

        字节码寄存器2是32位的,用来存储从指令存储器读出的以32位为单位的字节码。字节码缓冲4是64位的,其高4个字节与Java处理器的译码段相连,为其提供一个完整的字节码,字节码长度可以在1到4个字节之间变化。 

        如图2所示,多路选择模块3包括第一级多路选择器5及第二级多路选择器6。第一级多路选择器5负责将字节码寄存器2的有效字节按照字节顺序选择 到8个字节序列中的正确位置,第二级多路选择器6负责将第一级多路选择器5输出的字节以及原字节码缓冲中的剩余字节统一排序并送到字节码缓冲4的正确位置。 

        从字节码寄存器2读出的4个字节同时连接到所有第一级多路选择器5,每个第一级多路选择器5可以选择其中的一个从存储器读取的新字节作为输出,因此通过第一级多路选择器5可以将每个字节送到8个字节位置的正确位置并按顺序排列好。第二级多路选择器6中,每个多路选择的输入端包含了可能出现在这个位置的所有的字节,通过第二级多路选择器6就把新读进来的4个字节加上原来字节码缓冲4中当前字节码执行时没有消耗掉的字节一起进行排序。经过一个时钟周期后,经过排序的字节码就被写入到字节码缓冲4中了。因为最长的字节码不超过4个字节,所以只用8个字节的字节码缓冲4就足够了。 

        在具体实施时需要注意:因为Java虚拟机指令集中存在个别超出4字节的字节码,需要在Java处理器直接执行之前将这些超出4字节的字节码进行转换;因为字节码缓冲的宽度固定在64位即8个字节,因此预取性能较弱,只能在缓冲中有足够空间可用时,以和处理器执行频率相同的频率从指令cache中读取字节码,因此,建议采用具有预取功能的cache,利用小于4的字节码执行产生的预取时间来减小访存的性能损失。 

        如图3所示,是控制模块1的示意图,说明了对字节码缓冲装置进行控制所需要的输入条件及其输出的控制信号。其中序号21由处理器的译码段输出,用来选择从指令存储器读入的实际有效字节数。序号13是由PC的最低两位组成,用来在指令跳转、中断、方法调用、返回等情况下,指出字节码的地址对齐情况,从而指出从存储器读出的真正有效字节数。序号14是在指令流顺序执行时,从存储器读出的4个字节数。序号15是字节码长度,即本条指令执行之后可以腾出的缓冲空间。序号16是在序号9有效时待取的字节数。序号18是无论序号9是否有效的待取字节数。序号19是一个时钟周期后字节码缓冲具有的可用空间。序号20是当前周期字节码缓冲具有的可用空间,它需要加上当前正在执行的字节码将要消耗掉的空间15,再减去新取进来的字节数18。序号17是当前正在执行的字节码执行之后字节码缓冲具有的空间,将其和要新读进来的字节数比较,产生能否继续取的控制信号9。序号7说明当前指令存储器或指 令cache是否有字节码可读。因此序号7和序号9有一条不满足,序号8就控制读字节码操作转入等待。序号10、11用来根据将要消耗掉的空间以及新读进来的字节数等情况,产生控制第一级多路选择器5和第二级多路选择器6的控制信号,用来将新读进来的字节码送到正确位置。序号12用来控制字节码缓冲4是否更新。 

        图4是字节码缓冲的输出接口示意图,其中第一个字节永远是待执行的字节码操作码所在字节,通过Byte2mov生成逻辑26可获得该字节码执行后将消耗掉的字节数15,Byte2mov生成逻辑26的输入是字节码的操作码部分,输出是当前字节码的长度,用来表示当前字节码执行后将消耗掉的字节数。最高4个字节同时送到处理器的译码段22、23、24和25,包括操作码和可能存在的操作数,因为即使不会用到,同时取出来总没有坏处。 

        本发明装置的使用方法如下: 

        字节码寄存器2从32位对齐的指令存储器地址处一次读取4个字节,通过多路选择模块3送到字节码缓冲4,字节码缓冲4的高4个字节为Java处理器的译码段提供一个完整的字节码,该字节码为1~4个字节。 

        控制模块1根据当前被执行字节码实际消耗字节数,将其从字节码缓冲4空间总量减去,并判断字节码缓冲4是否能提供不小于将要送入的有效字节数的空间,判断是否将新的字节码送入字节码缓冲4。 

        控制模块1根据字节码地址的对齐情况,从字节码寄存器2中选择真正有效字节送多路选择模块3。 

        

    关 键  词:
    用于 提高 JAVA 处理器 指令 带宽 字节 缓冲 装置 及其 使用方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:用于提高JAVA处理器取指令带宽的字节码缓冲装置及其使用方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-969174.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1