• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 28
    • 下载费用:30 金币  

    重庆时时彩三胆码: 具有虚拟化指令集架构的处理器和方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201410805562.3

    申请日:

    2014.12.19

    公开号:

    CN104778030A

    公开日:

    2015.07.15

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||著录事项变更IPC(主分类):G06F 9/30变更事项:申请人变更前:海罗软件有限公司变更后:美普思技术有限公司变更事项:地址变更前:英国赫特福德郡变更后:英国赫特福德郡|||专利申请权的转移IPC(主分类):G06F 9/30登记生效日:20180719变更事项:申请人变更前权利人:美普思技术有限公司变更后权利人:美普思技术有限责任公司变更事项:地址变更前权利人:英国赫特福德郡变更后权利人:美国加利福尼亚州|||专利申请权的转移IPC(主分类):G06F 9/30登记生效日:20180719变更事项:申请人变更前权利人:想象技术有限公司变更后权利人:海罗软件有限公司变更事项:地址变更前权利人:英国赫特福德郡变更后权利人:英国赫特福德郡|||实质审查的生效IPC(主分类):G06F 9/30申请日:20141219|||公开
    IPC分类号: G06F9/30; G06F9/455 主分类号: G06F9/30
    申请人: 想象技术有限公司
    发明人: R·萨达卡
    地址: 英国赫特福德郡
    优先权: 61/919,698 2013.12.20 US
    专利代理机构: 北京市金杜律师事务所11256 代理人: 王茂华
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410805562.3

    授权公告号:

    |||||||||||||||

    法律状态公告日:

    2018.11.30|||2018.08.07|||2018.08.07|||2018.08.07|||2016.12.14|||2015.07.15

    法律状态类型:

    授权|||著录事项变更|||专利申请权、专利权的转移|||专利申请权、专利权的转移|||实质审查的生效|||公开

    摘要

    本发明的各实施方式总体上涉及具有虚拟化指令集架构的处理器和方法。具体地,涉及一种处理器包括用于基于外显操作码标识符和指令中编码的元数据两者来解码该指令的解码器。作为一个示例,指令集可以具有指定两个寄存器(r1和r2)的若等于则转移(BEQ),这些寄存器存储进行相等比较的值。指令集可以提供BEQ的单个操作码标识符,并且取决于源寄存器在那个操作码标识符的具体实例中出现的顺序,处理器可以确定是否将那个实例解码成为BEQ或另一指令。除了其他形式的元数据以外,附加形式的元数据可以包括解释指令中所包括的常数、以及确定源寄存器的相等性。

    权利要求书

    权利要求书
    1.  一种用于处理器的解码单元,包括:
    针对表示指令的机器代码元素的输入;以及
    电路,被配置成用于
    确定所述机器代码元素的操作码标识符部分是否标识 虚拟编码指令,
    响应于所述操作码标识符部分标识虚拟编码指令,使用 所述操作码标识符部分和所述机器代码元素的剩余部分中的至少一 部分来将所述机器代码解码成对用于在与所述解码单元耦合的执行 单元上执行的可执行的操作进行定义的数据,以及
    否则使用所述机器代码元素的所述操作码标识符部分 将所述机器代码元素解码成对可执行的操作进行定义的数据。

    2.  如权利要求1所述的用于处理器的解码单元,其中,所述机 器代码元素的所述操作码标识符部分包括对操作类型进行标识的部 分和对针对所述操作类型相关的功能参数进行定义的部分。

    3.  如权利要求1所述的用于处理器的解码单元,其中,通过对 表示所述机器代码元素的所述操作码标识符部分数据进行解码来执 行确定所述操作码标识符是否标识虚拟编码指令。

    4.  如权利要求1所述的用于处理器的解码单元,其中,所述机 器代码元素包括两个或更多个元素的从有序集合选择的标识数据, 并且所述电路被进一步配置成用于使用所述两个或更多个元素的所 述标识数据在所述机器代码元素中出现的相对顺序来确定响应于所 述机器代码元素而有待执行的操作。

    5.  如权利要求1所述的用于处理器的解码单元,其中,所述机 器代码元素包括专用于所述操作码标识符部分中的至少一部分、两 个或更多个寄存器以及常数的预定义相对顺序的字段,并且所述电 路被配置成用于取决于和第一出现的寄存器相关联的编号比和第二 出现的寄存器相关联的编号更大还是更小来将所述机器代码元素解 码成两项不同可执行的操作。

    6.  如权利要求1所述的用于处理器的解码单元,其中,所述机 器代码元素包括专用于所述操作码标识符部分中的至少一部分、两 个或更多个寄存器以及常数的预定义相对顺序的字段,并且所述电 路被配置成用于取决于所述两个或更多个寄存器之一的标识符的相 对位置在所述两个或更多个寄存器中的另一寄存器的标识符的相对 位置之前还是之后来将所述机器代码元素解码成两项不同可执行的 操作。

    7.  如权利要求1所述的用于处理器的解码单元,其中,所述机 器代码元素包括专用于所述操作码标识符部分、两个寄存器以及常 数的字段,并且所述电路被配置成用于响应于与所述两个寄存器之 一相关联的标识符与所述两个寄存器中的另一寄存器相关联的标识 符编号相同而使用所述常数的值对所述机器代码元素进行解码。

    8.  一种处理器,包括:
    执行单元;
    与所述执行单元耦合的寄存器组,所述执行单元被配置成用于从 所述寄存器组内的寄存器接收操作数;以及
    根据权利要求1至7中任一项所述的解码单元。

    9.  如权利要求8所述的处理器,其中,所述表示指令的机器代 码元素从一组架构寄存器中指定第一寄存器和第二寄存器两者。

    10.  如权利要求8至9中任一项所述的处理器,其中,所述解码 单元被配置成用于取决于所述机器代码元素的指定第一寄存器和第 二寄存器中的每个寄存器的各部分,将所述机器代码元素解码成有 条件或者无条件的转移指令。

    11.  如权利要求8所述的处理器,其中,所述解码单元被配置成 用于将所述机器代码元素解码成转移指令,并且用于取决于所述机 器代码元素的指定存储有待相互比较的值的第一寄存器和第二寄存 器中的每个寄存器的各部分,进一步将所述转移指令解码成若等于 则转移或若不等于则转移。

    12.  如权利要求8所述的处理器,其中,所述解码单元被配置成 用于进一步将所述机器代码元素解码成算术指令,所述算术指令执 行所述算术指令和由执行所述算术指令引起的指定条件下的进一步 的行动或者执行所述算术指令并且忽略所述指定条件的指令。

    13.  一种在处理器中解码机器代码的方法,包括:
    在所述处理器的解码单元中接收单个机器代码元素,以及
    产生指示所述处理器有待执行的操作的数据,其中,所述操作来 自虚拟编码操作集合,其中,所产生的数据指示哪项操作取决于所 述单个机器代码元素中的操作码标识符部分和关于所述单个机器代 码元素的元数据两者。

    14.  如权利要求13所述的在处理器中解码机器代码的方法,其 中,所述单个机器代码元素中的所述操作码标识符部分包括对操作 类型进行标识的部分和对针对所述操作类型相关的功能参数进行定 义的部分。

    15.  如权利要求13所述的在处理器中解码机器代码的方法,其 中,所述机器代码元素包括两个或更多个元素的从有序集合选择的 标识数据,并且进一步包括使用所述两个或更多个元素的所述标识 数据在所述机器代码元素中出现的相对顺序来确定响应于所述机器 代码元素而有待执行的操作。

    16.  如权利要求13所述的在处理器中解码机器代码的方法,其 中,所述机器代码元素包括专用于所述操作码标识符部分中的至少 一部分、两个或更多个寄存器以及常数的预定义相对顺序的字段, 并且进一步包括取决于和第一出现的寄存器相关联的编号比和第二 出现的寄存器相关联的编号更大还是更小来将所述机器代码元素解 码成两项不同可执行的操作。

    17.  如权利要求13所述的在处理器中解码机器代码的方法,其 中,所述机器代码元素包括专用于所述操作码标识符部分中的至少 一部分、两个或更多个寄存器以及常数的预定义相对顺序的字段, 并且进一步包括取决于所述两个或更多个寄存器之一的标识符的相 对位置在所述两个或更多个寄存器中的另一寄存器的标识符的相对 位置之前还是之后来将所述机器代码元素解码成两项不同可执行的 操作。

    18.  如权利要求13所述的在处理器中解码机器代码的方法,其 中,所述机器代码元素包括专用于所述操作码标识符部分、两个寄 存器以及常数的字段,并且进一步包括响应于与所述两个寄存器之 一相关联的标识符与所述两个寄存器中的另一寄存器相关联的标识 符编号相同而使用所述常数的值对所述机器代码元素进行解码。

    19.  一种从源代码集合产生机器可执行的代码的方法,包括:
    响应于指令,标识可以由目标处理器架构执行的操作;以及
    使用字面操作码标识符对所述指令进行编码以及将元数据编码 成所述指令的一个或多个其他部分,根据所述目标处理器架构的实 现方式中的指令解码器可解码的预先安排的惯例编码所述元数据。

    20.  如权利要求19所述的从源代码集合产生机器可执行的代码 的方法,其中,所述编码包括标识使用若不等于则转移(BNE)和 若等于则转移(BQE)中的一项或多项的机会以及产生多个机器代 码元素,所述机器代码元素使用单个操作码标识符标识BNE和BQE 指令,并按照所述指令中标识的两个或更多个寄存器的相对顺序在 其之间进行区分。

    21.  如权利要求19所述的从源代码集合产生机器可执行的代码 的方法,其中,所述产生包括对BNE和BQE指令之间的用于操作 数的源和目的寄存器在每个机器代码元素中呈现的相对顺序的差异 进行编码。

    说明书

    说明书具有虚拟化指令集架构的处理器和方法
    技术领域
    在一个方面,以下内容涉及微处理器架构,并且在一个更具体 方面,涉及对微处理器内有待解码的机器代码中的指令进行编码的 方法。
    背景技术
    微处理器的架构与微处理器可以处理的指令集、和这些指令致 使该微处理器做的事情有关??梢愿荻嘀痔匦远晕⒋砥鞯募芄?进行分类。一个主要特性是是否认为指令集是“复杂的”或具有“降 低的复杂性”。传统上,术语“复杂指令集计算机(CISC)”和“精 简指令集计算机(RISC)”分别用于指这种架构。现在,某些现代 处理器架构具有传统上与仅CISC或RISC架构相关联的特性。在实 践中,RISC和CISC架构之间的含义的主要区别是算术指令是否执 行存储器操作。
    RISC指令集可以要求所有指令的位数完全相同(例如,32位)。 并且,可以要求这些位相应地被分配到有限的格式集。例如,可以 要求每个指令的所有操作码的位数相同(例如,6)。这暗示可以在 这种架构中提供多达2^6(64)个唯一指令。在某些情况下,主操作 码可以指定一种指令类型,并且某个数量的位可以用作功能标识符, 该标识符在这种指令的不同变体之间进行区分(例如,所有加法指 令可以具有相同的6位主操作码标识符,但每种不同类型的加法指 令,如忽略溢出的加法和俘获溢出的加法)。
    可以根据标识源操作数、结果的目的地、或在“操作码”位所 标识的操作的执行过程中有待使用的常数来分配剩余的位(除了“操 作码”位以外)。例如,算术操作可以将6个位用于操作码,另外6 个位用于功能码(单独或当通过上下文相关时共同地,“操作码” 位)。即使RISC架构可以要求所有指令长度相同并且使用相同的存 储(例如,32位),但不是每个指令都可以要求填充所有位。
    发明内容
    为了解决上述问题,在本上下文中,本发明的各示例性实施方 式的目的之一在于提供一种具有虚拟化指令集架构的处理器和方 法。
    根据本发明一个方面的某些实施方式,提供了一种用于处理器 的解码单元,例如可以包括:针对表示指令的机器代码元素的输入; 以及电路,被配置成用于确定所述机器代码元素的操作码标识符部 分是否标识虚拟编码指令,响应于所述操作码标识符部分标识虚拟 编码指令,使用所述操作码标识符部分和所述机器代码元素的剩余 部分中的至少一部分来将所述机器代码解码成对用于在与所述解码 单元耦合的执行单元上执行的可执行的操作进行定义的数据,以及 否则使用所述机器代码元素的所述操作码标识符部分将所述机器代 码元素解码成对可执行的操作进行定义的数据。
    根据本发明另一方面的某些实施方式,提供了一种处理器,例 如可以包括:执行单元;与所述执行单元耦合的寄存器组,所述执 行单元被配置成用于从所述寄存器组内的寄存器接收操作数;以及 上文所述的解码单元。
    根据本发明另一方面的某些实施方式,提供了一种在处理器中 解码机器代码的方法,例如可以包括:在所述处理器的解码单元中 接收单个机器代码元素,以及产生指示所述处理器有待执行的操作 的数据,其中,所述操作来自虚拟编码操作集合,其中,所产生的 数据指示哪项操作取决于所述单个机器代码元素中的操作码标识符 部分和关于所述单个机器代码元素的元数据两者。
    根据本发明另一方面的某些实施方式,提供了一种从源代码集 合产生机器可执行的代码的方法,例如可以包括:响应于指令,标 识可以由目标处理器架构执行的操作;以及使用字面操作码标识符 对所述指令进行编码以及将元数据编码成所述指令的一个或多个其 他部分,根据所述目标处理器架构的实现方式中的指令解码器可解 码的预先安排的惯例编码所述元数据。
    附图说明
    图1A和图1B描绘了与可以实现本公开的各方面的示例处理器 有关的框图;
    图2描绘了示例指令编码;
    图3描绘了可以实现本公开的各方面的指令解码器的示例框图;
    图4描绘了可以实现本公开的各方面的指令解码器的示例;
    图5描绘了确定要根据字面还是根据虚拟解码过程来解码给定 指令的过程;
    图6描绘了对示例虚拟编码指令进行解码的过程;
    图7描绘了示例指令流;
    图8描绘了若等于则转移(BEQ)指令的解释;
    图9描绘了指令的字面和虚拟解码所产生的示例指令流;
    图10描绘了为了解码和处理虚拟编码BEQ指令而采取的行动;
    图11描绘了解码和处理虚拟编码BEQ指令的替代性示例实现 方式;
    图12和图13描绘了使用虚拟编码指令所包括的常数的虚拟指 令解码的各方面;
    图14和图15描绘了如何使用虚拟编码指令可以增加指令集架 构中的可用操作码标识符空间的图解;
    图16描绘了编译实现虚拟化指令解码的处理器架构的源代码的 过程;
    图17描绘了可以产生汇编代码、目标代码和代码(如可以在VM 中解释或编译的字节码)的编译器的框图;
    图18描绘了实现虚拟机的机器的面向软件的框图,该虚拟机可 以在执行单元上执行字节码、在本地代码中的执行应用、和其他代 码;以及
    图19描绘了可以实现本公开的各方面的机器的示例面向硬件的 框图。
    具体实施方式
    以下公开使用主要与RISC指令集、并且更具体地与MIPS处理 器架构有关的示例。使用这种示例没有将本公开的适用性局限于其 他处理器架构及其实现方式。
    如以上介绍的,处理器架构所支持的每个指令具有可供用于标 识有待针对给定指令而执行的准确操作的一部分位。此位数受到多 种实际考虑的限制。一种考虑是指令长度;32位指令需要比64位指 令更小的存储。标识源和目的寄存器所需的位数取决于有待支持的 架构寄存器的数量,这会影响为其他目的而留下的位的数量。对指 令进行解码所需的逻辑的复杂性也可能是一个因素;例如,对哪些 操作码的选择标识哪些可以影响解码逻辑的复杂性和总体效率的指 令。
    除了技术问题以外,处理器架构设计也受其他考虑的影响。一 种主要考虑是对给定处理器架构的前几代的支持。针对现有处理器 架构的新一代需要重新编译代码会阻碍顾客采用并且比保持后向兼 容性的处理器架构需要更有支持性的基础设施。为了保持后向兼容 性,新的处理器架构应执行给定目标代码的与上一代相同的操作。 这暗示现有操作码(即,操作码和其他功能开关或修饰符)不应在 新的处理器架构中改变。本公开没有解决模仿某些指令的可能,因 为同时模仿是可能的,其没能提供与本地执行相媲美的执行速度。 由于计算需要随时间变化,可能令人希望的是添加指令来支持某些 能力;例如,整数和浮点单指令多数据(SIMD)指令。一种可以允 许在现有指令集架构内表达更多指令同时保持后向兼容性的技术是 有用的。新的处理器架构还可以实现本公开的各方面。
    申请人已经认识到,某些指令定义了可以用于创建元数据的操 作,处理器中的解码器单元可以使用这些元数据将单个操作码解码 成多项不同操作。某些操作的一个特性在于源操作数是交换性的, 意味着无论以哪种顺序呈现两个或更多个源操作数,操作的结果都 是相同的。例如,若等于则转移(BEQ)指令可以阅读第一源寄存 器和第二源寄存器,并且如果这些寄存器中的值相等,则采取转移; 否则,不采取转移。典型的汇编器或编译器可以基于多种考虑选择 两个寄存器来存储有待比较的值。本公开介绍了被用作源操作数的 寄存器的相对排序受到限制以便用同一操作码标识符展现多个不同 指令、和某些可能的限制的示例。例如,为了展现一个指令,可以 要求第一出现的源寄存器是比第二出现的源寄存器更高的编号;例 如,第一源寄存器可以是寄存器3,并且第二源寄存器可以是寄存器 5(即,这些是这些寄存器的编号或参考,而不是这些寄存器中的值)。 为了用同一操作码标识符展现另一指令,可以要求使该第一出现的 寄存器为更高的寄存器(以上示例中的寄存器5)。以这种方式,可 以在已经能够仅展现单个指令的操作码空间内展现第二指令。因此, 在一个示例中,将用与该第二指令的二进制数据相同的二进制数据 表达该第一指令,除了该第一指令和第二指令之间这些二进制数据 中的某些数据在不同的相对顺序或位置以外。在本示例中,将从以 与操作数或用于对它们进行定义的其他数据的出现顺序不变的方式 执行的指令之间选择该第一指令和该第二指令两者。某些实现方式 还可以能够解决编译器的操作数顺序的这种问题,该编译器处理基 于不同的相对操作数顺序而将发生的结果变化。
    图1A描绘了可以实现本公开的各方面的处理器50的功能元件 的示例图。将根据情况首先介绍处理器50的示例元件,并且然后更 详细地解决。本示例具有能够无序执行的处理器;然而,所公开的 方面可以用于按顺序的处理器实现方式。如此,图1A描绘了本公开 的微架构实现方式的功能元件,但其他实现方式是可能的。并且, 不同处理器架构可以实现本公开的各方面。给予图1A中所描绘的功 能元件中的某些元件的名称可以在现有处理器架构之间不同,但普 通技术人员将从本公开中理解到如何在不同处理器架构(包括基于 预先存在的架构的那些架构)上和甚至在完全新的架构上实现本公 开。
    处理器50包括与指令高速缓存54耦合的提取单元52。指令高 速缓存54与解码和重命名单元56耦合。解码和重命名单元56与指 令队列58耦合并且还与包括指令转换后备缓冲器(iTLB)60的转 移预测器耦合。指令队列58与和提交单元64耦合的重排序缓冲器 (ROB)62耦合。ROB 62与保留站68和加载/存储缓冲器(LSB) 66耦合。保留站68与无序(OO)执行管线70耦合。执行管线70 和LSB 66各自与寄存器组72耦合。寄存器组72与L1数据高速缓 存74耦合。L1高速缓存74与L2高速缓存76耦合。处理器50还 可以访问进一步的存储器层次元件78。提取单元52从存储器获得指 令(例如,可以是数据和指令的统一高速缓存的L2高速缓存76)。 提取单元52可以从转移预测器60接收关于应提取哪些指令的指示。
    可以在不同实现方式中有区别地确定图1A中所描绘的处理器 50的功能元件的大小和对其进行安排。例如,指令提取52可以一次 提取1个、2个、4个、8个或更多个指令。解码和重命名56可以支 持不同数量的重命名寄存器,并且队列58在实现方式之间可以支持 不同的最大条目数量。ROB 62可以支持不同大小的指令窗口,同时 保留站68可以能够保持等待操作数的不同数量的指令,并且类似地, LSB 66可以能够支持不同数量的未完成的读和写。指令高速缓存54 可以使用不同的高速缓存替换算法并且可以针对高速缓存54的不同 部分同时使用多个算法。定义不同微架构元件的能力涉及到本公开 的范围以外的多种权衡。
    处理器50的实现方式可以是单线程的或支持多个线程。实现方 式还可以具有单指令多数据(SIMD)执行单元。执行单元可以支持 整数操作、浮点操作或两者。出于不同目的,可以提供附加功能单 元。例如,可以提供加密卸载引擎。提供图1A用于为本公开的以下 方面给予上下文并且没有排除任何这种附加功能元件。
    处理器50的某一部分或全部元件可以位于单个半导体裸片上。 在某些情况下,存储器层次元件78可以位于另一裸片上,使用为正 在使用的存储器技术(例如,DRAM)更特定设计的半导体工艺制 造该裸片。在某些情况下,DRAM的某一部分可以位于和另一裸片 上的其他元件和其他部分相同的裸片上。这是可以为处理器50的具 体实现方式进行的设计选择的示例的非详尽枚举。
    图1B描绘了可以包括32个寄存器的处理器50的寄存器组72。 每个寄存器可以通过与那个寄存器相关联的二进制代码来标识。在 一个简单示例中,00000b标识寄存器0,11111b标识寄存器31,并 且相应地对在中间的寄存器进行编号。处理器50根据指令流所提供 的特定配置信息执行计算。这些指令的格式由处理器的架构指定。 指令可以指定一个或多个源寄存器、以及一个或多个用于给定操作 的目的寄存器。寄存器的二进制代码在指令内用于标识不同的寄存 器??梢杂芍噶畋晔兜募拇嫫骺梢员怀莆凹芄辜拇嫫鳌?,架构寄 存器呈现可供用于执行代码的机器的状态的一大部分但不一定全 部。具体处理器架构的实现方式可以支持更大量物理寄存器。具有 更大量物理寄存器允许预测执行指代相同架构寄存器的指令。使用 指令中的元数据(如源寄存器的相对顺序)来编码指令提出另一标 准:编译器将需要在有待执行的代码的生成过程中进行观察(即, 这种指令编码方法是对给定指令中可能命名什么架构寄存器进行限 制)。这种限制可能产生更多对给定代码部分内的相同架构寄存器 进行标识的指令。然而,此标准不是特别麻烦,因为在执行过程中 寄存器重命名可以处理错误依赖。
    图2描绘了可以用于对处理器50进行配置的指令的示例。该指 令是若等于则转移(BEQ)。该示例使用总计32位来定义指令。6 位标识符部分指示主操作码。BEQ指令需要两个源寄存器(Ra和 Rb)。5位代码标识Ra和Rb中的每一个。32位中的剩余16位被 分配给常数(C),该常数用于产生转移目标,如果Ra和Rb中的 值相等,则处理器50应从该转移目标开始执行。为了方便,用在前 的$表示具体寄存器(例如,Ra)中的值(例如,$Ra标识寄存器Ra 中的值,并且这具体地将寄存器Ra中的值与寄存器Ra的编号或标 识符区分开)。例如,寄存器5可以包含值100。寄存器5可以被标 识为指令中的操作数源(例如,Ra=5),并且如果那样,则$Ra=100)。 其他指令可以具有不同的格式。在某些情况下,指令可以使用6位 主操作码标识符指定一类操作,并且然后包括指定有待执行的特定 操作的功能码字段。例如,同一6位主操作码标识符可以标识所有 加法操作,但功能码将变化。例如,一项加法操作可以俘获溢出, 而另一项加法不可以??梢允褂貌煌墓δ苈氡晔墩庑?。在本公开 中,这些不同字段单独并且集体地被称为“操作码标识符”(操作 码标识符),并且因此,此术语仅指主操作码标识符,或当将在具 体上下文中合适时,具有相应的功能码。
    图8描绘了处理器50执行BEQ时的规范行为。在240,如果 Ra($Ra)中所存储的值不等于Rb($Rb)中所存储的值,则不采取 转移,并且程序计数器(PC)增量到下一个指令(例如,通过使PC 增量4)。以其他方式,基于常数C设置PC,如设置成PC+(4*(C+1))。 普通技术人员将认识到,特定处理器可以有区别地设置PC,但重点 是采取或不采取转移仅取决于是否$Ra=$Rb。如此,BEQ指令是与 在指令中呈现操作数的顺序无关的指令。例如,如果寄存器5保持 一个源操作数的值并且寄存器10保持另一源操作数的值,则BEQ 指令的行为将相同,而不管Ra被设置成5还是10,并且关于Rb, 反之亦然。BEQ指令的示例是具有交换性源操作数的指令的示例。 其他示例是加法和乘法指令(例如,A+B=B+A)。两个或更多 个指令的通过操作数交换性的特性的逻辑等效的示例被用作本公开 中的激励示例。然而,其他特性允许得出两个或更多个指令在逻辑 上等效的结论?;蛘咴谝话阋庖迳匣蛘咴谥付ㄌ跫?,以下公开可 以应用于两个或更多个已经被确定逻辑上等效的指令。
    申请人已经认识到,存在处理器所执行的、逻辑等效的操作子 集,但用不同的指令编码这些操作。因此,申请人已经认识到,存 在完全展现具体指令集所支持的全范围的操作所需的信息冗余度。 为了在典型的处理器ISA中指令可相互区分,需要可以分配给该或 这些指令的操作码标识符(或更普遍地,操作码空间的某一部分)。 如果处理器ISA是新的,则希望支持的所有指令可以简单地是所分 配的操作码标识符。然而,某些处理器架构族已经存在比较长的时 间。例如,1981年引进处理器指令集架构(ISA),并且在 接下来几年中MIPS ISA发生多种变化和添加。一种将指令添加到现 有处理器ISA的方式将是将现有指令的操作码标识符重新分配给新 的指令。然而,这种方法将引起为之前的ISA版本编译的二进位与 新版本不兼容,因为处理器将试图执行与二进位预期的指令不相同 的指令。申请人希望减少或避免这些类型的不兼容性,而还希望能 够将新的指令添加至现有ISA。申请人还希望能够具有相同数量的位 所表示的更大的总操作码空间,并且能够减少分配给操作码标识的 位数,以便唯一地标识给定数量的操作。以下公开的实现方式可以 实现这些能力中的一项或多项;然而,没有本公开的实现方式实现 这些目标、或这种目标激励其创建的特定要求。这些能力是示例性 的,但没有排除通过实现本公开而可以实现的优势,并且没有暗示 要求任何权利要求的范围内的主题具有这些优势中的任何一项或多 项优势的要求。
    图3描绘了解码和重命名单元56的示例实现方式的功能元件。 指令源103的向操作码标识符107呈现一系列指令(具体地标识了 指令105)。操作码标识符107与操作码范围映射器111并且与虚拟 指令解码逻辑109耦合。操作码标识符107使用来自操作码范围映 射器111来执行指令105的初始解码。在一个实现方式中,操作码 范围映射器111包含映射数据,这些映射数据对有待向虚拟指令解 码逻辑109提供的指令子集和不需要由虚拟指令解码逻辑109处理 的其他指令子集进行标识以便用于处理器50。操作码标识符107和 操作码范围映射器111可以被实现为例如内容相联存储器(CAM) 查找。操作码标识符107的另一实现方式可以是实现解码指令集的 操作码标识符所需的或在虚拟编码指令和字面指令之间进行区分 (如果这些有待由单独的电路进行解码)所需的逻辑的组合电路。
    复用器113可以由操作码标识符107的输出控制,以便从虚拟 指令解码逻辑109或指令105所产生的输出中进行选择。指令队列 58的输入耦合成用于接收复用器113的输出。指令队列58还从寄存 器重命名器115接收输入。寄存器重命名器115产生架构寄存器和 物理寄存器之间的映射。将用于具体指令的物理寄存器与那个指令 中所标识的架构寄存器相关;保持这种相关性的准确方法是实现方 式特定的。因此,指令队列58的输出可以被视为包含将用于对处理 器50的执行元件进行配置的信息以便执行指令(例如,指令105)。 在图1A的示例中,指令队列58与ROB 62耦合。使用ROB 62监控 无序执行管线70的预测执行结果。即使可以在ROB 62所支持的预 测窗口内预测地执行指令,但ROB 62可以执行结果的按顺序引退或 提交。
    图4描绘了虚拟指令解码逻辑109的示例。在图4的示例中, 解码逻辑109包括比较器119,该比较器输入源操作数Ra 121和源 操作数Rb 123。图4的示例特定于图2介绍的BEQ指令,并且到比 较器119的特定输入可以取决于正在被解码的具体指令而不同。向 操作码标识符电路129提供比较器119的输出。操作码标识符电路 129还具有针对来自正在被解码的指令(例如,指令105)的操作码 的输入125。在图4中,输入125可以被实现为包括来自正被解码的 指令的足够的位,从而唯一地将该指令映射到将由处理器执行的操 作。具体地,某些虚拟编码指令可以具有功能码。此功能码可以是 针对操作码标识符电路的“随意(don’t care)”,并且这种功能码 可以或可以不被输入到该操作码标识符电路。取决于是否要求常数C 完全确定有待针对给定指令执行的操作(当然,即使常数C是“随 意”输入,仍然会提供常数C,但这将是实现方式选择),操作码 标识符电路129还可以具有常数C的输入127(见图2)。操作码标 识符电路129输出然后可以用于对逻辑的一部分进行配置来执行操 作的操作码数据131。该逻辑部分可以是例如功能单元。虽然可能的 是操作码数据131可以用于微码查找或某项其他更复杂的操作,这 种微码查找会增加执行时间或指令所需要的管线阶段的数量,或引 起执行不同指令所需的管线阶段的数量变化。
    以下提供了用于解码虚拟编码指令而执行的示例过程。图5描 绘了操作码标识符107实现的示例过程。在152,接收有待解码的指 令。在154,决定该指令是否能够进行虚拟指令编码。如果该指令能 够进行虚拟指令编码,则调用虚拟指令解码过程156,并且否则的话 调用正常指令解码158。正常指令解码158可以引起仅使用指令中所 供应的二进制元素而不使用关于那些元素的元数据。如此处所使用 的,元数据指关于指令的元素的数据,如标识什么寄存器、以什么 相对顺序呈现寄存器编号,或指令中的符合预先确定的解释惯例的 元素之间的某种其他组合或相互关系。在某些实现方式中,处理器 可以被视为对机器代码元素进行解码,该元素可以是例如从与32位 边界对齐的存储器地址提取的并且将根据预定义规范被编码以呈现 处理器有待执行的指令元素的32位数据。
    在此考虑了实现方式可以仅具有将被虚拟编码的指令子集???以提供虚拟解码逻辑,该虚拟解码逻辑接收所有指令数据并且被配 置成用于通过字面编码指令。因此,154处的决定没有暗示解码器 56需要具有用于字面和虚拟编码指令的单独解码逻辑。例如,虚拟 解码逻辑和用于解码常规指令的逻辑可以一起实现,并且可以进而 用用于其他功能的逻辑实现这种逻辑。
    图6中呈现了虚拟指令解码过程的示例;本示例特定于使用两 个源寄存器的指令,如图2中所描绘的BEQ指令。然而,这些公开 可以被适配或延伸用于其他指令。在174,解码逻辑接收用于有待虚 拟解码的指令的数据。在178,关于Rb是否大于Ra进行确定;此 确定不是涉及到这些寄存器中的值而是寄存器本身的编号的确定。 如果Rb大于Ra,则在184,指令被解码成第一虚拟操作码。如果 Rb不大于Ra,则180,可以做出Rb是否小于Ra的决定。如果是这 样,则可以将指令解码成第二虚拟操作码。如果此条件失败,则在 182,如以下进一步解释的,可以使用常数C解码该指令。在任何情 况下,这些条件其中之一将是真的,并且指令的结果解码将在188 应用于输出。将认识到,可以重构图6的示例过程,同时保持逻辑 等效,并且所有这些重构项在本公开的范围内。举例来讲,可以颠 倒决定178和180,可以确定源寄存器之间相等,针对所有可能性, 指令的解码可以并行进行,并且确定178和180可以用于选择结果 解码。某些实现方式可以不使用常数C来解码,并且在这种实现方 式中,或者决定178或者180是没有必要的,并且可以基于源Ra是 大于还是小于源Rb的比较来进行解码成或者该第一虚拟操作码或 该第二虚拟操作码。实现方式可以选择惯例来使用(例如,Ra是否 大于Rb或者Ra是否小于Rb;这些与Rb是否小于Ra或者Rb是否 大于Ra等效)。
    这些特定示例可以被理解成公开了标识两个源寄存器的给定单 个指令可以基于源寄存器的相对值被解码成两个不同的指令,并且 可选地如果这些寄存器相等,则可以使用常数C执行解码。图7和 图9至图12呈现了本公开的范围内的虚拟指令解码的更特定的示 例。在解码逻辑的这些各个示例中,将理解到,这些示例被呈现成 容易被人理解,但表示或包含根据本公开的解码过程的实际机器结 构(例如,所实现的合成逻辑)与文本解释显著不同。本公开呈现 了将源寄存器的标识符用作供在指令解码中使用的元数据的示例。 某些实现方式中的标识符可以是长度适合将寄存器相互区分开的二 进制数字序列。在一个实现方式中,指令标识架构寄存器,架构寄 存器可以在数量上比物理寄存器的数量更少。实现方式可以提供解 码时所使用的可以是架构寄存器标识符、或可以是物理寄存器标识 符(架构到物理寄存器的映射之后)的元数据。这些示例可以被推 广到其他类型的元数据,如标识有序集合中的元素的元数据。当标 识3个或更多个寄存器时,进一步的指令编码是可能的,如通过使 用例如这三个或更多个标识符的预定义排序序列。
    图7描绘了指令流,其中PC 225标引BEQ指令233,该指令标 识寄存器5和寄存器8作为源操作数(按那个顺序)、和常数A。 该指令流还包括第二BEQ指令235,该指令标识寄存器8和寄存器 5作为源操作数、和常数B。指令233和235的常规解码将会将这两 个指令解码成同一个指令(将保存常数值的可能差,这控制着转移 目标)?;谎灾?,针对常规解码,相同源操作数的呈现顺序不相关。 图8中示出了上述这种行为的示例。
    图9描绘了由指令233和指令235的虚拟化解码所产生的指令 流255。指令流255示出了该第二指令已经被解释为不等于则转移 (BNE)指令260,即使指令的数据“以字面方式”调用BEQ。以 上解释了以下向处理器50提供的指令与具体ISA一致。然而,处理 器将实际执行的操作的内部表示不必符合该ISA所指定的按位格 式。例如,不一定要求指令的内部表示位数与外部表示相同。
    此处,当给定“字面”指令可以虚拟地编码多个不同指令时, 虚拟编码指令的内部表示可以具有多个附加位。允许BEQ编码BEQ 和BNE指令的示例是为了解释简单的目的。这种编码可以主要用于 没有按照字面编码指令提供BNE的ISA。然而,根据允许字面编码 的遗留代码和所生成的包括虚拟编码的新代码的迁移策略,某些实 现方式可以支持同一指令,两者作为字面编码和作为虚拟编码。随 着时间推移,新的代码将变成遗留代码并且会弃用带有字面编码指 令的旧ISA。在其他实现方式中,可以用多个格式选项支持同一主指 令。例如,字面编码BNE可以关于基于关于正在被执行的代码段的 基地址的指定常数确定的位置引起采取转移,并且虚拟编码指令可 以引起转移到关于当前程序计数器的常数所指定的位置。这些示例 的变化是可能的(例如,在计算目标地址前,某一位数使程序计数 器移位)??梢蕴峁┑牧硪皇纠噶罾啾鹗墙舸招妥浦噶?。紧凑 型转移指令没有延迟槽。另一类别包括可以具有关于某些条件的检 测的不同行为,如溢出、下溢或异常情况。以下描述了其他可能指 令编码。例如,功能码可以指定不同的选项,如关于程序计数器或 关于偏移的转移、关于溢出时转移、异常情况时转移等。
    图10和图11描绘了可以如何处理同一字面编码指令来编码两 个不同执行选项;这些示例示出了处理器作为整体将如何处理向其 提供的字面编码指令。图10描绘了Rb大于Ra的确定304引起在 306相互比较Rb和Ra中的值。如果这些值不相等,则不采取转移, 并且在308,仅使PC增量。如果这些值相等,则在312,基于指定 常数设置PC(正常BEQ行为)。图10还描绘了可选地在320可以 确定Rb是否小于Ra,并且如果小于,则在322确定Rb和Ra中的 每一个中的值是否不相等(或确定304可以直接进行到确定322而 不是320)。确定322的结果控制是否采取转移。如果Rb和Ra中 的值不相等则采取转移(进行到行动328),并且否则不采取转移(行 动325)。
    等效实现方式将是执行行动304,并且将此行动的结果编码作为 遵循指令的额外状态位。然后,鉴于在304的编码确定结果解释行 动306的结果(源寄存器中的值的比较)。在这种方法中,确定322 是没有必要的,因为其是行动306的反演。
    图11描绘了根据这种方法实现以上虚拟编码BEQ/BNE示例的 方法的实现方式。在图11中,在330,比较Ra和Rb??梢栽谥噶?解码过程中进行这种比较。在331,位根据Ra和Rb的比较结果(基 于Ra是否等于Rb将位设置成某个值)。在332,如果Ra和Rb的 架构可见值不可用,则可以保留指令不执行(在本示例中)。在333, 如果Ra和Rb的值变得可用,则在334比较那些值;否则在332继 续保留该指令。在335,如果将位设置成可以被解释为指示BNE的 值(这可以是惯例的问题)并且如果Ra和Rb的值不相等,则在337, 转移根据BNE指令定义。在336,如果将位设置成可以被解释为指 示BEQ的值并且如果Ra和Rb的值相等,则在338,转移根据BEQ 指令定义。否则,在339,使PC增量。
    图11的示例示出了解码单元可使用用于完全解码指令的信息, 即使可能还没有提交Ra和Rb的最终值,并且可以创建对有待在处 理器的管线中的稍后点有待采取什么行动进行定义的数据??梢灾?构335和336中描绘的决定。例如,可以比较寄存器的内容,并且 然后可以做出是否指示BNE或BEQ行为的确定,并且相应地设置 程序计数器。这些是普通技术人员可以在具体设计情况下进行的示 例微架构实现方式选择。
    图12和图13描绘了虚拟指令集架构的示例,这些指令集架构 再次使用一种适用于BNE或BEQ指令的方法还编码给定指令的字 面数据的常数值内的指令集信息。在图12中,在347,决定两个源 寄存器是否相同。针对普通BNE或BEQ指令,如果两个源寄存器 相同,则将从不采取或始终采取转移。因此,在合适的情况下,可 以生成包括两个源操作数中的同一源寄存器的BNE或BEQ指令。 指令解码可以将这种情况解释成指示常数在349用于确定有待执行 什么操作。在本示例中,常数为16位,并且因此可以编码大量信息。 图13示出了使用源寄存器的内容计算转移目标和使用常数计算下一 个PC的另一示例,其中,这种确定340指示始终采取转移。具有额 外32位(在32位寄存器的示例中)允许进行比如果仅可以使用16 位偏移更宽范围的跳转。
    图14描绘了虚拟操作数可以如何定位在字面操作码标识符空间 350内的概念图。根据图14,110011和110001二进位之间存在未用 过的操作码空间(因为本示例假设本空间中没有主操作码,不需要 考虑功能码)。在本空间内,可以提供虚拟操作码352集合。图14 的示例示出了一对355虚拟操作码可供用于每个唯一操作码标识符。 在考虑两个源寄存器编号的相对顺序而不考虑例如常数的值的示例 中,是这种情况。图15描绘了当还使用如图12中用指令供应的常 数值时,更大数量的虚拟操作码360可供用于单个字面操作码标识 符内。更确切地,可以考虑到,指令可以从具有固有排序的预先确 定的元素集合中引用元素。通过应用限制一般情况的惯例,实现附 加操作码标识符空间。
    处理器可以设计有实现这些公开的解码单元。然而,处理器仍 将在从外部源(例如,编译器、汇编器、或解释器)生成的代码的 配置下操作。这种代码生成可以包括将高级编程语言的源代码转换 成目标代码(例如,可执行的二进位或可动态链接的库),或产生 可以编辑并且最终转换成目标代码的汇编语言输出。其他情况可能 涉及到将源代码转换成可以被如准时制(JIT)过程(如在虚 拟机的环境下)翻译或解释的中间代码格式(例如,“字节码”格 式。任何这种示例代码生成方面可以用于本公开的实现方式。此外, 本领域的普通技术人员可以使用这些示例来理解如何将这些示例应 用于不同情况。
    图16描绘了一个过程的示例,通过该过程,编译器可以产生具 有根据本公开的特性的机器可执行的代码。在402,确定当前代码生 成模式是否要产生虚拟化指令。如果不,则在418,可以针对给定输 入产生典型的非虚拟化机器代码(例如,高级源代码??榛蚧惚嘤?言代码的一部分)。如果要产生虚拟化指令,则在406,将来自输入 的源代码元素标识为用于虚拟编码的候选项。在408,选择指示具体 虚拟化操作码集合的操作码。这种选择可以基于源代码元素正在执 行什么操作。如果源代码元素是高级语言,则可以将那个元素分解 成若干机器语言元素,其中每个机器语言元素可以是用于虚拟化指 令编码的候选项。编译器具有多种关于如何从源代码输入产生目标 代码的选项,并且通过使用虚拟化操作码的可能性提供更可靠的指 令将增加这些选项。编译器可以依赖于多种确定代码序列的启发法 和其他分析方法。编译器必须观察架构所强加的限制,针对这些限 制,编译器正生成输出。
    在410,为了完全指定给定的虚拟化操作码,需要合适的源寄存 器相对排序(在一个示例中)。因此,在410,确定这些源寄存器值。 在执行过程中,可以将这些源寄存器重命名成合适的物理寄存器, 但编译器仍然应试图避免错误依赖性。在412,如果常数还正在用于 编码虚拟化操作码,则确定那个常数。以其他方式,可以基于其他 考虑确定该常数,如转移目标相对于例如或者基地址或者相对于PC 的位置。在414,可以输出最终的汇编语言指令;在其他示例中,可 以输出字节码或二进制代码。
    图17描绘了其中编译器430包括汇编器434的图解。作为一个 选项,编译器430可以根据本公开生成汇编码432??梢允涑龃嘶惚?码。这种汇编码可以用文本表示,该文本表示包括用于各指令以及 用于操作数的气动项(pneumonics)和用于指令的其他信息??梢匝?择这些气动项,从而使得将针对气动项所表示的每个汇编代码元素 执行实际操作?;谎灾?,即使二进制代码内的基础二进制操作码标 识符可以相同,当用文本汇编语言表示那个二进制代码时,还将基 于每个汇编语言元素的影响处理器将执行什么操作而不单影响二进 制操作码标识符的直译的其他元素(如相对寄存器排序)选择所选 择的气动项。图17还描绘了编译器可以输出目标代码、和字节码, 这些代码在具体架构上可以是可解释的、可编译的或可执行的。此 处“字节码”用于标识任何形式的中间机器可读格式,在许多情况 下,该格式没有直接将目标对准物理处理器架构,而是目标对准最 终执行这种执行的虚拟机架构。物理处理器架构可以被设计成用于 执行任何这种中间机器可读格式,并且为了其简明性而不是以限制 方式使用术语“字节码”。
    图18描绘了示例机器439的框图,其中,可以使用本公开的各 方面。一组应用可以可供用于在机器439上执行。用字节码440编 码这些应用?;箍梢杂帽镜鼗鞔氡硎居τ?;用应用441表示这 些应用。在虚拟机450内执行用字节码编码的应用。虚拟机450可 以包括解释器和/或准时制(JIT)编译器452。虚拟机450可以保持 所编译的字节码的存储454,该存储可以重复用于应用执行。虚拟机 450可以使用来自本地代码库442的库。这些库是针对物理执行单元 462编译的目标代码库。硬件抽像层455向集体被标识为装置464 的各不同硬件元件提供抽象接口??梢栽谟没J较轮葱蠬AL 455。 机器439还执行操作系统内核455。
    装置464可以包括有待使得可供用于由应用使用的IO装置和传 感器。例如,HAL 455可以为全球定位系统提供接口、罗盘、陀螺 仪、加速计、温度传感器、网络、短途通信资源(如蓝牙或近场通 信)、RFID子系统、照相机等。
    机器439具有一组消耗机器代码的执行单元462,该机器代码将 执行单元462配置成用于执行计算。因此,为了执行起源于字节码、 本地代码库、来自用户的目标代码和用于内核455的代码的应用, 执行这种机器代码??梢允褂迷诖斯男槟饣嗦胧迪只?39 的这些不同组件中的任何组件。
    图19描绘了实现在此公开的执行元件和其他方面的机器505的 示例。图19描绘了机器505的不同实现方式可以具有不同的集成水 平。在一个示例中,单个半导体元件可以实现包括核心515-517的处 理器???58、将核心515-517与L2高速缓存525接口连接的一致 性管理器520、I/O控制单元530和中断控制器510。系统存储器564 与L2高速缓存525接口连接。一致性管理器520可以包括存储器管 理单元并操作用于管理核心515-517正在操作的数据之间的数据一 致性。核心还可以访问没有单独描绘的L1高速缓存。在另一实现方 式中,提供了IO存储器管理单元(IOMMU)532。IOMMU 532可 以设置在与???59所表示的处理器???58相同的半导体元件上。 ???59也可以通过互连580与IO装置575-577接口连接。处理器 ???58(其包括在???59内)、互连580、和IO装置575-577 的集合可以形成在一个或多个半导体元件上。在图19的示例机器 505中,核心515-517各自可以支持一个或多个计算线程,并且可以 根据此处的公开来组织架构。
    尽管可能已经用结构特征和/或方法步骤的示例专用的语言描述 了某一主题,但应理解到,所附权利要求书中限定的主题不一定局 限于这些描述的特征或动作。例如,可以将给定结构特征归入另一 结构元素内,或这种特征可以分开在不同组件之间或被分配给不同 组件。类似地,过程的示例部分可以被实现为副的产品或与另一动 作或过程的执行并发实现,在某些实现方式中或者可以按照多个单 独动作来执行。假设观察到合适的依赖性,按一个顺序呈现的动作 可以被重新安排成一个不同顺序。实现方式可以相对于其他动作来 延迟某些动作。实现方式可以并行化同一硬件上的同一动作的不同 实例。如此,根据本公开的实现方式不局限于那些与所描绘和/或描 述的示例具有1:1对应关系的实现方式。
    可以在专用或通用计算机中实现功能的各方面、和所描述和/或 要求的方法,包括如以下更详细讨论的计算机硬件。此类硬件、固 件或软件还可以体现在显卡或其他外部或内部计算机系统外围设备 上??梢栽诙ㄖ频腇PGA或ASIC或其他可配置处理器中提供各功能 性,通过可以在管理或主处理器中提供某种功能性。此类处理功能 性可以用于个人计算机、台式计算机、膝上型计算机、消息处理器、 手持式装置、多处理器系统、基于微处理器的或可编程消费电子产 品、游戏控制台、网络PC、微型计算机、大型计算机、移动电话、 PDA、平板计算机等。
    除了硬件实施例(例如,在中央处理单元(“CPU”)内或耦合 到其上的微处理器、微控制器、数字信号处理器、处理器核心、片 上系统(“SOC”),或任何其他可编程或电子器件),实现方式 还可以体现在例如被配置用于存储软件的计算机可用(例如,可读) 介质内所存放的软件(例如,计算机可读代码、程序代码、以任何 形式存放的指令和/或数据,如源、对象或机器语言)内。这种软件 可以例如能够实现在此描述的装置和方法的功能、制造、建模、模 拟、描述和/或测试。例如,可以通过使用通用编程语言(例如,C 语言、C++语言)、GDSII数据库、包括Verilog HDL、VHDL、系 统C寄存器传输级(RTL)等的硬件描述语言(HDL)、或其他可 用程序、数据库、和/或电路(即,示意图)捕捉工具来完成以上内 容。实施例可以布置在计算机可用介质内,包括非瞬态存储器,如 使用半导体的存储器、磁盘、光盘、二价铁、电阻存储器等。
    以特定示例来讲,应理解到,可以在硬件描述语言(HDL)中 所体现的、可以用来产生特定集成电路实现方式的半导体知识产权 核心或其中一部分(如微处理器核心)内实现所公开的装置和方法 的实现方式。计算机可读介质可以体现或存储这种描述语言数据, 并因此组成制造品。非瞬态机器可读介质是计算机可读介质的一个 示例。其他实施例的示例包括存储可以被适配成用于在特定架构或 微架构实现方式中使用的寄存器传输语言(RTL)描述的计算机可读 介质。此外,在此公开的装置和方法可以体现为硬件与对硬件进行 配置或编程的软件的组合。
    并且,在某些情况下,已经在此使用了术语,因为认为其更合 理地向普通技术人员传达了突出点,但不应认为此类术语隐含地限 制所公开的示例和其他方面所包括的实现方式的范围。
    并且,前述公开中已经展示了描述了多个示例。必然地,不是 每个示例可以展示每个方面,并且这些示例没有展示此类方面的排 他组成部分。反而,关于一个图或示例展示和描述的方面可以与关 于其他图所展示和描述的方面一起使用或与其组合。如此,普通技 术人员将从这些公开中理解到,关于根据权利要求书的实施例的组 成,以上公开不是限制性的,并且而是权利要求书的范围限定此处 发明实施例的宽度和范围。概述和摘要章节可以阐述权利要求书的 范围内的本发明的一个或多个但不是所有示例性实施例和方面。

    关 键 词:
    具有 虚拟 指令 架构 处理器 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:具有虚拟化指令集架构的处理器和方法.pdf
    链接地址://www.4mum.com.cn/p-5894676.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03