首页> 中国专利> 对使用前缀的ISA指令的条件执行支持

对使用前缀的ISA指令的条件执行支持

摘要

在一种实施例中,一种处理器包括指令解码器和执行单元,该指令解码器接收具有前缀和操作码的第一指令,并且,由该处理器的指令解码器生成以基于前缀确定的条件为基础执行的第二指令,该执行单元以基于前缀确定的条件为基础有条件地执行第二指令。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-29

    授权

    授权

  • 2014-08-27

    实质审查的生效 IPC(主分类):G06F9/30 申请日:20111130

    实质审查的生效

  • 2014-07-30

    公开

    公开

说明书

发明领域

本发明的各实施例通常涉及指令处理装置。尤其,本发明的各实施例涉及具 有对使用前缀的ISA指令的条件执行扩展的指令处理装置。

背景

诸如整数寄存器等的通用寄存器(GPR)中所涉及的指令被广泛用于诸如x86 体系结构等的指令集体系结构(ISA)。大多数x86GPR(例如,整数寄存器,而 不是x87或单指令多数据(SIMD)/高级矢量扩展(AVX)寄存器)操作写入到整 数寄存器并且操纵x86算术标志寄存器。例如,诸如ADD指令等加指令修改标志 (例如,OF、SF、ZF、AF、CF和PF标志)并更新GPR目的地。诸如INC等递 增指令也修改标志(例如,OF、SF、ZF、AF和PF)并更新GPR目的地。通常, 这种标志修改是不必要的,甚至由于不必要的依赖关系链而增加了复杂性和潜在的 性能影响。

也可以由处理器基于一个或多个条件有条件地执行指令。通常,为了执行条 件执行,x86GPR指令要求多个操作码或指令,例如,基于图6中的条件代码表中 所示出的一个或多个测试字段(test field)。这样的要求可以消耗更多资源且降低 处理器的性能。

附图简述

作为示例而非限制在附图的各图中阐释本发明的各实施例,附图中,类似的 标号指示相似的元素。

图1是阐释根据一种实施例的处理器的示例的框图。

图2是阐释根据一种实施例的指令的示例的框图。

图3是阐释根据一种实施例的处理器的示例的框图。

图4是阐释标志寄存器的示例的框图。

图5是阐释根据一种实施例与基于AVX的指令一起使用的VEX前缀编码的 框图。

图6是阐释常规条件代码表的框图。

图7是阐释根据一种实施例的前缀编码表的框图。

图8是阐释根据一种实施例的处理指令的方法的流程图。

图9是阐释根据一种实施例的数据处理系统的示例的框图。

图10是阐释根据另一实施例的数据处理系统的示例的框图。

详细描述

将参考下面讨论的细节描述本发明的各种实施例和各方面,且附图将阐释各 种实施例。下列描述和附图阐释本发明,且不应被解释成限制本发明。描述了众多 特定细节,以便提供对本发明的各种实施例的透彻理解。然而,在某些实例中,不 描述公知的或常规的细节,以便提供对本发明的各实施例的简练讨论。

本说明书中对“一种实施例”或“一个实施例”的引用意味着,结合该实时 例描述的具体的特征、结构或特性可以被包括在本发明的至少一种实施例中。在本 说明书中各处出现“在一个实施例中”的短语不一定都是指相同的实施例。

根据一些实施例,在处理器处接收到的指令包括前缀和操作码。指令的前缀 的一个或多个比特被用来指示一个或多个条件,在得到满足时,这些条件引起执行 指令的操作码。前缀的不同的比特模式可以被用来指定操作码的条件执行的不同条 件。指令的操作码可以表示整数通用寄存器(GPR)或存储器指令,例如x86兼容 操作码(例如,x86传统操作码)。结果,单个指令可以包括指定操作码的条件执 行的一个或多个条件的信息。

另外,根据一种实施例,指令的前缀也被用来提供指示,即在由处理器执行 指令的操作码时是否应当修改寄存器的标志。在一种实施例中,当在处理器处接收 到指令时,诸如指令解码器等的处理逻辑被配置为检查前缀的一个或多个比特的比 特模式,以便判断是否应当允许指令的操作码在执行时修改诸如标志寄存器、状态 寄存器或条件代码寄存器等等的寄存器的标志。如果比特模式匹配预先确定的模 式,则防止执行操作码的执行单元修改通常通过操作码的执行修改的标志。

在一种实施例中,指令的前缀的比特模式可以被用来指示:1)一个或多个条 件,其判断是否执行指令的操作码;以及2)是否允许操作码的条件执行修改诸如 标志寄存器、状态寄存器和/或条件代码寄存器等等的寄存器的一个或多个标志。 因而,具有前缀和操作码的单个指令可以在前缀中包括所有信息,以确定有条件地 执行操作码的一个或多个条件和/或判断操作码的条件执行是否可以修改寄存器的 一个或多个标志。

图1是阐释根据一种实施例的处理器的示例的框图。参见图1,处理器100 可以表示任何种类的指令处理装置。例如,处理器101可以是通用处理器。处理器 100可以是各种复杂指令集计算(CISC)处理器、各种精简指令集计算(RISC) 处理器、各种超长指令字(VLIW)处理器、其各种混合或完全是其他类型的处理 器中的任何。在一种实施例中,处理器100包括接收和解码指令106的指令解码器 101。指令解码器101可以生成并输出反映指令106或是从中导出的一个或多个微 操作、微代码、入口点、微指令、其他指令或其他控制信号。可以使用各种不同的 机制来实现指令解码器101。合适的机制的示例包括但不限于微代码只读存储器 (ROM)、查找表、硬件实现、可编程逻辑阵列(PLA)等等。

处理器100还包括一个或多个执行单元102,其可以包括算术逻辑单元,或能 够基于指令106执行操作的另一类型的逻辑单元。作为指令解码器101解码指令 106的结果,执行单元102可以接收反映指令106或是从中导出的一个或多个微操 作、微代码入口点、微指令、其他指令或其他控制信号。执行单元102可以作为指 示一个或多个源操作数(SRC)108的指令106的结果而操作,并把结果存储在由 指令106指示的寄存器集105的一个或多个目的地操作数(DEST)109中。执行 单元102可以包括可操作为执行从指令106导出的指令或其他控制信号并据此执行 操作的电路或其他执行逻辑(例如,与硬件和/或固件结合的软件)。执行单元102 可以表示诸如逻辑单元、算术逻辑单元(ALU)、算术单元、整数单元等等的任 何种类的执行单元。

在一种实施例中,指令106可以隐含地指示和/或明确地指定(例如,通过一 个或多个专用字段或比特集合)源和目的地操作数。操作数的合适的源和/或目的 地的示例包括寄存器、存储器、即时指令(immediate of the instruction)及其组合。 在各种实施例中,源和目的地操作数可以是8位、16位、32位或64位操作数,尽 管不要求这一点。

在一种实施例中,源操作数和目的地操作数中的一些或全部可以存储在寄存 器集105的寄存器或存储器中。寄存器集可以是寄存器堆(register file)的一部分, 以及潜在地是其他寄存器,例如状态寄存器、标志寄存器等等。寄存器可以是可以 用来存储数据的存储位置或设备。寄存器集常常可以物理上位于具有执行单元的管 芯上。寄存器可以在处理器外或从程序员的视角可见。例如,指令可以指定存储在 寄存器中的操作数。只要各种不同类型的寄存器能够存储和提供在此描述的数据, 它们就是合适的。可以重命名或不重命名寄存器。合适的寄存器的示例包括但不限 于专用物理寄存器、使用寄存器重命名的动态分配物理寄存器、专用物理寄存器和 动态分配物理寄存器的组合等等。备选地,源操作数和目的地操作数中的一种或多 个可以存储在不同于寄存器的存储位置,诸如例如系统存储器中的位置。

再参见图1,在一种实施例中,指令106可以包括如图2中所示出的至少一个 前缀和操作码。参见图1和图2,图2的指令200可以表示图1的指令106。在一 种实施例中,指令200包括前缀201和操作码202。当指令解码器101接收到指令 200时,根据一种实施例,指令解码器101被配置为基于操作码202生成一个或多 个微代码操作或微指令以便由执行单元102执行。另外,指令解码器101被配置为 检查前缀201的一个或多个比特,以便确定应由执行单元102执行与操作码202 相关联的微代码操作或微指令的一个或多个条件。此外,指令解码器101被配置为 检查前缀201的一个或多个比特,以便判断作为微代码操作或微指令的执行(例如, 条件执行)的结果执行单元102是否可以修改寄存器104的标志107中的至少一个。

在一种实施例中,在指令解码器101接收到指令106时,指令解码器101被 配置为从指令106提取前缀,例如图2的前缀201。然后,指令解码器101基于该 前缀确定执行指令106的操作码的条件。在一种实施例中,通过查找条件编码表 112确定条件,条件编码表112把特定前缀映射到特定条件。前缀的不同比特模式 可以表示不同的条件。条件编码表112可以以硬件、固件、软件或其组合实现。基 于该条件或从前缀导出的条件,指令解码器101被配置为生成一个或多个条件执行 的微代码操作或微指令111,以便由执行单元102条件执行。

另外,指令解码器101还检查指令106的前缀,以便作为条件执行结果判断 是否允许执行单元102修改寄存器104的任意标志107。根据一种实施例,在前缀 201的一个或多个比特的比特模式匹配预先确定的模式时,指令解码器101把标志 修改覆盖(FMO)信号(flag modification override signal)110传送给FMO逻辑103。 FMO逻辑103可以防止标志被该操作修改。如果前缀201的一个或多个比特的比 特模式不匹配预先确定的比特模式,则FMO逻辑103可以允许执行单元102修改 标志107。可以由编译器和/或程序器填充存储在前缀201和/或操作码202中的信 息。FMO逻辑103可以以硬件、固件、软件或其组合实现。注意,前缀201的具 体比特模式可以指示可以修改具体标志,而不可以修改其他标志。因而,前缀201 的比特模式规定标志107中的哪些可以由执行单元102修改,并规定为了执行操作 码202必须为真的条件或多个条件。结果,单个指令可以指定条件以及是否覆盖对 标志的修改尝试的指示两者。常规的系统通常要求用于条件执行的多个指令或操作 码。也应注意,仅出于阐释的目的示出和描述了图2的指令200的格式;也可以应 用其他格式。

在一种实施例中,在从操作码生成微代码操作或微指令111之前,假设操作 码202中提供操作码,指令解码器101被配置为检查具有具体比特模式的前缀201 是否有效。如果基于操作码202判断前缀201是无效的,则生成异常,且将不执行 操作码。此外,对于给定的处理器100的能力(可以基于诸如图3中所示出的CPUID 等的处理器标识符来确定),指令解码器101也可以检查指令200是否有效。参见 图3,基于诸如前缀201、操作码202和/或处理器ID203等信息,如果判断指令 是无效的,则指令解码器101被配置为生成异常204(例如,未经定义的或UD操 作)。否则,指令解码器101被配置为基于前缀201、操作码202和条件编码表112 生成FMO信号110和条件执行的微代码操作或微指令111。再参见图1,基于FMO 信号110,FMO逻辑103被配置为控制对于该操作是否修改寄存器104的标志107, 其中,取决于指令106的特定前缀,FMO逻辑103可以允许或不允许这样的修改。

在一种实施例中,标志107可以表示算术标志中的一个或多个。寄存器104 可以是状态寄存器、标志寄存器(例如,EFLAGS)或条件代码寄存器(CCR)。 图4中示出了寄存器104的示例,它表示EFLAGS寄存器的示例。标志107可以 包括一个或多个比特,往往是在诸如寄存器104等的寄存器中。标志107不必是寄 存器中的比特。标志可以包括触发电路。比特标志可以存储二进制值,例如二进制 一或二进制零。多个比特可以存储二进制值的序列或代码。这样的二进制值或二进 制值的序列可以表示不同的标志值。对处理器100或其他逻辑设备来说,这些不同 的标志值可以具有所指定的或所理解的含义。标志107可以用于各种不同的目的。 在一些情况中,标志107可以被用来记录在处理器100或其他逻辑设备内的操作的 状况(status)、状态(state)、条件或结果。标志107可以包括进位标志(CF)、 溢出标志(OF)、符号标志(SF)、零标志(ZF)、辅助进位标志(AF)或奇偶 标志(PF)或其组合,如图4中所示出的。并非在所有处理器或其他逻辑设备中 都包括所有这样的标志。另外,不同的名称有时被用于这些不同的标志。

根据一种实施例,指令106与加利福尼亚州圣克拉拉市的英特尔公司的基于 高级矢量扩展(AVX)的ISA兼容。一种实施例利用基于AVX的指令的AVX前 缀来把“标志不修改(flag non-modifying)”指示编码到ISA。经由前缀这样做,允 许这种扩展广泛地应用于x86GPR指令操作码的现有传统集。这可以应用到诸如 16位、32位或64位模式等的各种模式。通过在前缀空间中添加标志不修改指示, 各实施例允许在利用仅具有少量修改的大部分预先存在的传统硬件的同时生成一 组丰富的标志不修改指令。在一种实施例中,一个或多个AVX前缀比特被用来向 写入整数GPR或存储器目的地并更新一个或多个算术标志比特的任何或全部传统 整数指令操作码指出标志不修改。这样的前缀防止在期望现有的传统指令的标志不 修改版本时要求新的操作码和相应的解码器硬件。另外,根据一种实施例,AVX 前缀也可以被用来指定诸如x86整数GPR或存储器指令等的某些指令的条件执行 的一个或多个条件。

图5是阐释根据一种实施例与基于AVX的指令一起使用的VEX前缀编码的 框图。参见图5,基于AVX的前缀包括3个字节的C4VEX编码510,它可以被 实现为图2的前缀201的一部分。根据一种实施例,VEX前缀编码中的多个比特 的组合可以用于条件整数执行(conditional integer execution)和标志不修改扩展 (flag non-modification extension)。再参见图5,诸如“mmmmm”比特502等的在 典型矢量指令中不使用的某些比特可以被用来指示是否应由执行单元修改标志。在 这一实施例中,不使用比特502的较高三个比特503,而比特504被用于矢量指令。 结果,比特503和/或L比特501的组合的某些比特模式可以被用来指定条件执行 的一个或多个条件并指示是否应当修改标志。

在一种实施例中,L比特501的组合中的比特503也可以被用来指定条件执行 的一个或多个条件并指示是否应当修改标志,如图2中所示出的。比特503和L 比特501的组合比特模式被用来表示条件执行的各种条件,如图7中所示出,其可 以表示图1的条件编码表112。如图7中所示出的条件编码表表示如图6中所示出 的、通常要求多个指令或操作码的传统条件代码表的大多数条件。在这一实施例中, C4AVX前缀510中三个当前保留的比特503以及L比特501被用来允许现有的 GPR x86操作码空间具有支持一组丰富的条件执行选项和标志不修改的能力,以及 利用VEX提供的现有的三元能力的能力。在一种实施例中,标志不修改覆盖仅应 用于更新GPR寄存器和标志寄存器两者的指令;它可以不应用于仅修改标志寄存 器的指令。

利用如图6中所示出的条件码的x86指令使用四个比特来指定被用来评估x86 算术标志的条件。通过使用C4VEX编码中的三个当前保留的比特并且再次利用 (repurpose)C4VEX编码中的L比特以便允许如图6中所示出的传统条件测试字 段中存在的几乎所有相同条件,本发明的一个实施例复制如图6中所示出的用于条 件执行行为。“ccc”比特当前被保留在常规的系统中,且非零值将引起故障(例如, #UD)。用于利用VEX的新整数GPR指令的常规系统中的L的非零值将引起故 障。借助于这种扩展,根据一种实施例,这些比特将承担可以扩展的那些整数GPR 指令的含义。基于如图7中所示出编码表,可以解析编码。

在一种实施例中,可以与写入整数和标志寄存器两者的指令不同地对待仅操 纵算术标志寄存器且不具有其他整数寄存器目的地的x86传统操作码,同时仍然符 合VEX前缀框架。断言(predication)暗示用于更新整数寄存器的指令的标志不修 改(flag non-modification),但是该断言不必暗示用于仅更新算术标志的那些x86 指令的标志不修改。CMP指令可以允许条件执行编码。对于这些指令,断言应用 于标志修改本身,允许断言为真(TRUE)的指令更新算术标志,且断言为假(FALSE) 的指令不更新标志。

图8是阐释根据一种实施例处理指令的方法的流程图。例如,方法800可以 由图1的指令解码器101执行。参见图8,在框801,响应于在处理器处接收的第 一指令,从第一指令提取前缀和操作码。在框802,处理逻辑鉴于操作码和处理器 (例如,CPUID)检查该前缀的一个或多个比特,以便判断前缀比特是否有效。如 果不是,在框806,生成异常。如果前缀或第一指令有效,在框803,处理逻辑生 成第二指令(例如,一个或多个微代码操作或微指令),以便可由执行单元基于根 据前缀确定的一个或多个条件条件执行。在框804,处理逻辑检查前缀的一个或多 个比特,以便判断各比特是否匹配预先确定的比特模式。如果是这样,在框805, 处理逻辑覆盖作为微代码操作或微指令的执行的结果执行单元修改标志的尝试。

图9是阐释根据本发明的一种实施例的数据处理系统的示例的框图。系统900 的处理器901可以表示以上所描述的图1的处理器100。系统900可以表示台式计 算机、膝上型计算机、平板计算机、服务器、移动电话(例如,智能手机)、媒体 播放器、个人数字助理(PDA)、个人通信设备、游戏设备、网络路由器或集线器、 无线接入点或中继器、机顶盒或其组合。注意,尽管图9阐释了数据处理系统的各 种组件,但它不旨在表示任何具体的体系结构或互连组件的方式;因而,这些细节 与本发明的各实施例没有密切关系。还应明白,具有更少组件或者也许具有更多组 件的网络计算机、手持式计算机、移动电话和其他数据处理系统也可以与本发明的 各实施例一起使用。

参见图9,在一种实施例中,系统900包括处理器901和芯片组902,芯片组 902经由总线或互连将包括存储器905和设备903-904的各种组件耦合到处理器 901。处理器901可以表示其中包括有单个处理器核或多个处理器核909的单个处 理器或多个处理器。处理器901可以表示一个或多个通用处理器,例如微处理器、 中央处理单元(CPU)等等。更具体地,处理器901可以是复杂指令集计算(CISC) 微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或 实现其他指令集的处理器或实现指令集的组合的处理器。处理器901也可以是一个 或多个专用处理器,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、 数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、 密码处理器、协处理器、嵌入式处理器或能够处理指令的任何其他类型的逻辑。例 如,处理器901可以是可从加利福尼亚州圣克拉拉市的英特尔公司购买的4 (4)、双核(Dual-Core)、酷睿TM2双核和四核(CoreTM2 Duo and Quad)、至强TM(XeonTM)、安腾TM(ItaniumTM)、XScaleTM、酷睿TMi7(CoreTMi7)、酷睿TMi5(CoreTMi5)、()或StrongARMTM微处理器。处理 器901被配置为执行用于执行在此讨论的操作和步骤的指令。

处理器901可以包括指令解码器,指令解码器可以接收和解码各种指令。解 码器可以生成和输出一个或多个微操作、微代码入口点、微指令、其他指令或其他 控制信号,它们反映原始输入指令或者是从原始输入指令导出。可以使用各种不同 的机制实现解码器。合适的机制的示例包括但不限于微代码只读存储器(ROM)、 查找、硬件实现、可编程逻辑阵列(PLA)等等。

解码器可以不是处理器901的必要组件。在一个或多个其他实施例中,处理 器901可以改为具有指令仿真器、指令翻译器、指令变形器、指令解释器或其他指 令转换逻辑。各种不同类型的指令仿真器、指令变形器、指令翻译器等等在本领域 中是已知的。指令转换逻辑可以接收比特范围隔离指令,仿真、转换、变形、解释 或以另外方式转换该比特范围隔离指令,并输出对应于原始比特范围隔离指令的一 个或多个指令或控制信号。指令转换逻辑可以以软件、硬件、固件或其组合实现。 在一些情况中,指令转换逻辑中的一些或全部可以位于与其余的指令处理装置不同 的管芯,例如在分离的管芯上或在系统存储器中。在一些情况中,指令处理装置可 以具有解码器和指令转换逻辑两者。

处理器901和/或核心909还可以包括一个或多个执行单元,这些执行单元与 解码器的输出耦合或以另外方式与之通信。术语“耦合”可以意味着两个或更多个 元素处于直接的电气接触或连接。然而,“耦合”也可以意味着两个或更多个元素 相互不处于直接连接,但仍然彼此协同操作或交互或通信(例如,通过中间组件)。 作为一个示例,解码器和执行单元可以通过中间的可选缓冲器或本领域中已知可能 耦合在解码器和执行单元之间的其他组件彼此耦合起来。处理器901和/或核心909 还可以包括多种不同类型的执行单元,诸如例如算术单元、算术逻辑单元(ALU)、 整数单元等等。

处理器901还可以包括一个或多个寄存器堆,包括但不限于整数寄存器、浮 点寄存器、矢量或扩展寄存器、状态寄存器和指令指针寄存器等等。在此使用术语 “寄存器”来指代被用作宏指令的一部分以便标识操作数的板载处理器存储位置。 换句话说,在此指出的寄存器在处理器外(从程序器的视角)可见的寄存器。然而, 寄存器在含义上不应限于具体类型的电路。相反,寄存器仅需要能够存储和提供数 据,并执行在此描述的功能。在此描述的寄存器可以使用任何数量的不同技术由在 处理器内的电路实现,例如专用物理寄存器、使用寄存器重命名的动态分配物理寄 存器、专用物理寄存器和动态分配物理寄存器的组合等等。在一种实施例中,整数 寄存器存储32位或64位整数数据。寄存器堆可以包含用于经打包数据的扩展多媒 体SIMD寄存器(例如,XMM)。这样的寄存器可以包括涉及SSE2、SSE3、SSE4、 GSSE和更高(泛指为“SSEx”)技术的128位宽的XMM寄存器和256位宽的寄 存器(它们可以在它们的低阶比特中合并XMM寄存器),以便保存这样的经打包 数据操作数。

处理器901和/或核心909也可以可选地包括一个或多个其他公知的组件。例 如,处理器901可以可选地包括指令取数逻辑、预解码逻辑、调度逻辑、重排序缓 冲器、分支预测逻辑、引退逻辑、寄存器重命名逻辑等等或其某种组合。这些组件 可以按常规方式实现,或者具有本领域中的技术人员基于本公开内容将明显看出的 细微调整。理解在此的实施例不需要对这些组件的进一步描述,但如果期望的话, 可以容易地从常见文献得到进一步的描述。存在本领域中已知的这样的组件的众多 不同的组合和配置。该范围不限于任何已知的这样的组合或配置。各实施例可以被 实现为带有或不带有这样的附加组件。

芯片组902可以包括存储器控制中枢(MCH)910和输入输出控制中枢(ICH) 911。MCH910可以包括与存储器905通信的存储器控制器(未示出)。MCH910 也可以包括与图形设备912通信的图形接口。在本发明的一种实施例中,图形接口 可以经由加速图形端口(AGP)、高速外围组件互连(PCI)总线或其他类型的互 连与图形设备912通信。ICH911可以提供到诸如设备903-904等的I/O设备的接 口。设备903-904中的任何都可以是存储设备(例如,硬盘驱动器、闪速存储器设 备)、通用串行总线(USB)端口、键盘、鼠标、并行端口、串行端口、打印机、 网络接口(有线或无线)、无线收发器(例如,WiFi、蓝牙或蜂窝收发器)、媒 体设备(例如、音频/视频编解码器或控制器)、总线桥(例如,PCI-PCI桥)或其 组合。

MCH910有时被称为北桥,且ICH911有时被称为南桥,尽管有些人在它们 之间做出技术区分。在此所使用的术语MCH、ICH、北桥和南桥预期被广泛地解 释为覆盖其功能包括向处理器传送中断信号的各种芯片。在一些实施例中,MCH 910可以与处理器901集成起来。在这样的配置中,芯片组902操作执行MCH910 和ICH911的一些功能的接口芯片,如图10中所示出的。此外,图形加速器912 可以被集成在MCH910或处理器901内。

存储器905可以存储包括由处理器901或任何其他设备执行的指令序列的数 据。例如,各种操作系统、设备驱动器、固件(例如,输入输出基本系统或BIOS) 和/或应用的可执行代码913和/或数据914可以被加载到存储器905中且由处理器 901执行。操作系统可以是任何种类的操作系统,诸如例如来自的操作系统、来自苹果的Mac/、来自的、、或其他实时操作系统。在一种实施例中,存储器905可以包括一个或多个易失性存 储(或存储器)设备。例如随机存取存储器(RAM)、动态RAM(DRAM)、同 步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储设备。也可以利 用非易失性存储器,例如硬盘或闪速存储设备。前端总线(FSB)906可以是多点 式互连或点对点互连。术语FSB预期覆盖到处理器901的各种类型的互连。芯片 组902可以经由点对点接口与诸如设备903-904等的其他设备通信。总线906可以 被实现为各种总线或互连,诸如例如快速路径互连(QPI)、超传输互连或与高级 微控制器总线体系结构(AMBA)兼容的总线,例如AMBA高性能总线(AHB)。

高速缓存908可以是任何种类的处理器高速缓存,例如1级(L1)高速缓存、 L2高速缓存、L3高速缓存、L4高速缓存、末级高速缓存(LLC)或其组合。高速 缓存908可以与处理器901的处理器核心909共享。高速缓存908可以嵌入在处理 器901内和/或外置于处理器901。高速缓存908可以在各核心909当中共享。备选 地,核心909中的至少一种还包括其中嵌入的其自己的本地高速缓存(例如,高速 缓存908A-908N)。核心909中的至少一种可以利用本地高速缓存已经与核心909 中的另一个共享的高速缓存两者。处理器901还可以包括直接高速缓存访问(DCA) 逻辑,以便允许诸如设备903-904等的其他设备直接地访问高速缓存908。处理器 901和/或芯片组902还可以包括中断控制器,例如高级可编程中断控制器(APIC), 以便处理诸如消息信号中断等的中断。

已经在对在计算机存储器内的数据比特的操作的算法和符号表示方面呈现了 前述详细描述中的一些部分。这些算法描述和表示是由数据处理领域的技术人员最 有效地把他们的工作实质传达给其他本领域技术人员的方式。通常,在这里把算法 设想为引起所期望的结果的自相一致的操作序列。各操作是要求物理量的物理操纵 的那些操作。

然而,应当牢记,所有这些和类似术语与适当的物理量相关联,且仅仅是适 用于这些量的方便的标签。除非特别声明,否则从上面的讨论中可以明显看出,可 以理解,在整个描述中,利用诸如下面的权利要求书中所陈述的那些的术语的讨论, 是指计算机系统或类似的电子计算设备的动作和过程,这些动作和过程把在计算机 系统的寄存器和存储器内被表示为物理(电子)量的数据操纵和变换成在计算机系 统存储器或寄存器或其它这样的信息存储、传输或显示设备中内类似地表示为物理 量的其他数据。

可以使用在一个或多个电子设备上存储和执行的代码和数据来实现附图中所 示出的技术。这样的电子设备使用计算机可读介质存储和通信(在内部和/或与网 络上的其他电子设备)代码和数据,计算机可读介质例如非暂态计算机可读存储介 质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪速存储器设备;相变存 储器)和暂态计算机可读传输介质(例如,诸如载波、红外信号、数字信号等的电、 光、声或其他形式的所传播的信号)。

前述附图中所叙述的过程或方法可以由包括硬件(例如电路、专用逻辑等等)、 固件、软件(例如,在非暂态计算机可读介质上实现)或两者的组合的处理逻辑执 行。尽管以上相对于一些连续操作描述了过程或方法,但应明白,可以按不同次序 执行所描述的操作中的一些。此外,可以并行而非循序执行一些操作。

在前述的说明书中,已经参考其特定示例性实施例描述了本发明的各实施例。 可以明显看出,在不偏离下列权利要求所陈述的本发明的宽泛的精神和范围的前提 下,可以对其做出各种修改。因此,应该以说明性而非限制性的意义来看待说明书 和附图。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号