对返回导向的编程攻击的检测的制作方法_4

文档序号:8367479阅读:来源:国知局
元件指的是能够与诸如软件线程、操作系统、应用、或其它代码 之类的代码独立地相关联的任何硬件。物理处理器通常指的是集成电路,其可能包括任意 数量的诸如核或硬件线程之类的其它处理元件。
[0072] 核通常指的是位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维 持的架构状态与至少某些专用执行资源相关联。与核相反,硬件线程通常指的是位于集成 电路上的能维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访 问。可以看出,当某些资源是共享的而其它资源是架构状态专用时,硬件线程与核的术语之 间的界线交叠。核和硬件线程常常被操作系统视为单个逻辑处理器,其中,操作系统能够各 个地在每一个逻辑处理器上调度操作。
[0073] 如图6所示的物理处理器1100包括两个核--核1101和1102。在此,核1101和 1102被视为对称核,即这些核具有相同的配置、功能单元和/或逻辑。在另一个实施例中, 核1101包括无序处理器核,而核1102包括有序处理器核。然而,核1101和1102可从任何 类型的核中单独地选择,诸如原生核、受软件管理的核、适于执行原生指令集架构(ISA)的 核、适于执行转换ISA的核、协同设计的核或其它已知核。不过,为进一步讨论,以下将进一 步详细描述在核1101中示出的功能单元,因为核1102中的单元以类似方式操作。
[0074] 如所示出的,核1101包括两个硬件线程110Ia和1101b,它们可被称为硬件线程 槽IlOla和1101b。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器 1100视为四个独立的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理 元件。如上所述,第一线程与架构状态寄存器IlOla相关联,第二线程与架构状态寄存器 IlOlb相关联,第三线程可与架构状态寄存器1102a相关联,并且第四线程可与架构状态寄 存器1102b相关联。在此,架构状态寄存器(1101a、1101b、1102a和1102b)中的每一个可 被称为处理元件、线程槽或线程单元,如上所述。
[0075] 如上所述,架构状态寄存器IlOla被复制在架构状态寄存器IlOlb中,因此能够为 逻辑处理器IlOla和逻辑处理器IlOlb存储各个架构状态/上下文。在核1101中,也可复 制用于线程IlOla和IlOlb的其它较小资源,诸如指令指针以及分配器和重命名块1130中 的重命名逻辑。诸如重排序器/引退单元1135中的重排序缓冲器、ILTB 1120、载入/存储 缓冲器、以及队列之类的一些资源可通过分区来共享。诸如通用内部寄存器、页表基本寄存 器、低级数据缓存和数据TLB 1115、执行单元1140、以及无序单元1135的部分之类的其它 资源潜在地被完全共享。
[0076] 处理器1100通常包括其它资源,这些其它资源可被完全共享、通过分区共享、或 由处理元件专用/专用于处理元件。在图6中,示出了具有处理器的说明性的逻辑单元/ 资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任一个,并 包括未描绘出的任何其它已知的功能单元、逻辑或固件。如图所示,核1101包括简化的、代 表性的无序(〇〇〇)处理器核。但是,在不同实施例中可利用有序处理器。〇〇〇核包括用于预 测要被执行/进行的分支的分支目标缓冲器1120以及用于存储指令的地址转换条目的指 令转换缓冲器(I-TLB) 1120。
[0077] 核1101进一步包括耦合至取出单元1120以用于解码所取出的元素的解码模块 1125。在一个实施例中,取出逻辑包括分别与线程槽IlOlaUlOlb相关联的各个序列发生 器。通常,核1101与第一 ISA相关联,该第一 ISA定义/指定能在处理器1100上执行的指 令。是第一 ISA的一部分的机器代码指令常常包括引用/指定要被执行的指令或操作的指 令的一部分(被称为操作码)。解码逻辑1125包括由这些指令的操作码来识别这些指令并 在流水线上传递所解码的指令以进行如第一 ISA所定义的处理的电路。作为解码器1125 识别的结果,架构或核1101采取特定的、预定的动作以执行与适当指令相关联的任务(例 如,图2-3E)。重要的是应注意,本申请中描述的任务、块、操作和方法中的任一个可响应于 单个或多个指令来执行;它们中的一些可以是新的或旧的指令。
[0078] 在一个示例中,分配器和重命名器块1130包括用于预留资源的分配器,诸如用于 存储指令处理结果的寄存器组。然而,线程IlOla和IlOlb潜在地能够进行无序执行,其中 分配器和重命名器块1130还保留其它资源(诸如用于跟踪指令结果的重排序缓冲器)。单 元1130还可包括寄存器重命名器,用于将程序/指令引用寄存器重命名为处理器1100内 部的其它寄存器。重排序/引退单元1135包括诸如上述的重排序缓冲器、加载缓冲器和存 储缓冲器之类的组件,以支持无序执行的指令的无序执行和稍后的有序引退。
[0079] 在一个实施例中,调度器和执行单元块1140包括调度器单元,用于在执行单元上 调度指令/操作。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还 包括与执行单元相关联的寄存器组,用于存储信息指令处理结果。示例性的执行单元包括 浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其它已知 的执行单元。
[0080] 较低级的数据缓存和数据转换缓冲器(D-TLB) 1150耦合至执行单元1140。数据缓 存用于存储最近使用/操作的元素(诸如数据操作数),这些元素在存储器一致性状态下潜 在地被保持。D-TLB用于存储最近的虚拟/线性至物理地址转换。作为特定示例,处理器可 包括页表结构,用于将物理存储器分解成多个虚拟页。
[0081] 在此,核1101和1102共享对较高级或进一步远离的缓存1110的访问,较高级或 进一步远离的缓存用于缓存最近取出的元素。注意,较高级或进一步指的是缓存级增加 或进一步远尚执行单兀。在一个实施例中,较尚级缓存1110是最后级数据缓存 处理 器1100上的存储器层次中的最后级缓存,诸如第二或第三级数据缓存。然而,较高级缓存 1110不限于此,因为它可与指令缓存相关联或包括指令缓存。替代地,跟踪缓存一一一种类 型的指令缓存一一可耦合在解码器1125之后,用于存储最近解码的跟踪。
[0082] 在所描绘的配置中,根据本发明的一个实施例,处理器1100还包括总线接口模块 1105和可以执行功率共享控制的功率控制器1160。历史上,控制器1170被包括在处理器 1100外部的计算系统中。在该场景中,总线接口 1105与处理器1100外部的设备通信,处 理器100外部的设备诸如系统存储器1175、芯片组(通常包括存储器控制器中枢以连接到 存储器1175以及I/O控制器中枢以连接到外围设备)、存储器控制器中枢、北桥、或其它集 成电路。并且在该场景中,总线1105可包括任何已知的互连,诸如多点总线、点对点互连、 串行互连、并行总线、一致性(例如缓存一致性)总线、分层协议架构、差分总线以及GTL总 线。
[0083] 存储器1175可专属于处理器1100或与系统中的其它器件共享。存储器1175的 类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。 注意,器件1180可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控 制器中枢的数据存储,无线收发器,闪存器件,音频控制器,网络控制器,或其它已知器件。
[0084] 然而,注意,在所描绘的实施例中,控制器1170被示为处理器1100的一部分。最 近,随着更多的逻辑和器件被集成在单个管芯上(如SOC),这些器件中的每一个可被合并 在处理器1100上。例如,在一个实施例中,存储器控制器中枢1170与处理器1100处于同 一封装和/或管芯上。在此,核的一部分(核上部分,on-core portion)包括与诸如存储器 1175和/或图形器件1180之类的其它器件进行接口的一个或多个控制器1170。包括用于 与此类器件进行接口的控制器和互连的该配置通常被称为核上(或非核(un-core)配置)。 作为示例,总线接口 1105包括环形互连,环形互连具有用于与存储器1175进行接口的存储 器控制器以及用于与图形处理器1180进行接口的图形控制器。然而,在SOC环境中,诸如 网络接口、协同处理器、存储器1175、图形处理器1180以及任何其它已知计算机器件/接口 之类的甚至更多的器件可被集成到单个管芯或集成电路上,以提供具有高功能性和低功耗 的小外形规格。
[0085] 实施例可在许多不同的系统类型中实现。现在参照图7,其中示出了根据本发明 一实施例的系统的框图。如图7所示,多处理器系统600是点对点互连系统,并包括通过点 对点互连650而耦合的第一处理器670和第二处理器680。如图7所示,处理器670和680 中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核674a和674b以 及处理器核684a和684b),虽然潜在地更多核可以存在于处理器中。处理器中的每一个都 可包括上文参考图1A-1B所描述的ROP检测逻辑140。
[0086] 仍参考图7,第一处理器670还包括存储器控制器中枢(MCH) 672和点对点(P-P) 接口 676和678。类似地,第二处理器680包括MCH 682和P-P接口 686和688。如图7所 示,MCH 672和682将处理器耦合到相应的存储器,即,存储器632和存储器634,它们可以 是本地连接到相应的处理器的系统存储器(例如,DRAM)的一部分。第一处理器670和第二 处理器680可分别经由P-P互连652和654耦合至芯片组690。如图7中所示,芯片组690 包括P-P接口 694和698。
[0087] 此外,芯片组690包括用于通过P-P互连639将芯片组690与高性能图形引擎638 进行耦合的接口 692。芯片组690又可以通过接口 696耦合到第一总线616。如图7所示, 各种输入/输出(I/O)设备614以及总线桥接器618可以耦合到第一总线618,总线桥接 器618将第一总线616親合到第二总线620。在一个实施例中,各种设备可親合到第二总 线620,包括例如键盘/鼠标622、通信设备626以及数据存储单元628,如可包括代码630 的盘驱动器或其他大容量存储设备。进一步地,音频I/O 624可以耦合到第二总线620。 各实施例可以被合并到其他类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、 Ultrabook?等等之类的移动设备。
[0088] 应该理解,处理器核可以支持多线程(执行操作或线程的两个或更多并行组),并 可以以各种方式达到这一目的,包括时间切片多线程,同时的多线程(其中,单个物理核为 物理核同时正在多线程处理的每一个线程提供一种逻辑核),或其组合(例如,时间
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1