对预留给处理器逻辑使用的存储器的访问类型保护的制作方法_4

文档序号:8501120阅读:来源:国知局
,或被称为专用核);以及4)可以将所描述 的CPU(有时被称为应用核或应用处理器)、以上描述的协处理器和附加功能包括在同一管 芯上的芯片上系统。接着描述示例性核架构,随后描述示例性处理器和计算机架构。
[0077] 示例性核架构 [0078] 有序和无序核框图
[0079] 图9A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命 名的无序发布/执行流水线的框图。图9B是示出根据本发明的各实施例的要包括在处理 器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的 框图。图9A-B中的实线框示出有序流水线和有序核,而任选增加的虚线框示出寄存器重命 名的无序发布/执行流水线和核。给定有序方面是无序方面的子集的情况下,将描述无序 方面。
[0080] 在图9A中,处理器流水线900包括取出级902、长度解码级904、解码级906、分配 级908、重命名级910、调度(也称为分派或发布)级912、寄存器读取/存储器读取级914、 执行级916、写回/存储器写入级918、异常处理级922以及提交级924。
[0081] 图9B示出了处理器核990,包括耦合到执行引擎单元950的前端单元930,执行引 擎单元950和前端单元930两者都耦合到存储器单元970。核990可以是精简指令集计算 (RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又 一选项,核990可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图 形处理器单元(GPGPU)核、或图形核等等。
[0082] 前端单元930包括親合到指令高速缓存单元934的分支预测单元932,指令高速缓 存单元934耦合到指令转换后备缓冲器(TLB) 936,指令转换后备缓冲器936耦合到指令取 出单元938,指令取出单元938耦合到解码单元940。解码单元940 (或解码器)可解码指 令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个 或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元940 可使用各种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程 逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核990包括(例如,在解码 单元940中或以其它方式在前端单元930内的)微代码ROM或存储某些宏指令的微代码的 其他介质。解码单元940耦合到执行引擎单元950中的重命名/分配器单元952。
[0083] 执行引擎单元950包括耦合到隐退单元952的重命名/分配器单元954和一组一 个或多个调度器单元956。调度器单元956表示任意数量的不同的调度器,包括预留站、中 心指令窗口等等。调度器单元956耦合到物理寄存器组单元958。每个物理寄存器组单元 958表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或多种不同的数据 类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态(例如,作 为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器组单元958包 括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这些寄存器单元可以提供架构 向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元958与引退单元954重叠 以示出可以用来实现寄存器重命名和无序执行的各种方式(例如,使用重新排序缓冲器和 引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器映射和寄存器 池等等)。隐退单元954和物理寄存器组单元958耦合到执行群集960。执行群集960包括 一组一个或多个执行单元962和一组一个或多个存储器访问单元964。执行单元962可以 对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整型、向量浮点)执行各种 操作(例如,移位、加法、减法、乘法)。尽管一些实施例可以包括专用于特定功能或功能组 的若干个执行单元,但是,其他实施例可以只包括一个执行单元或都执行所有功能的多个 执行单元。调度器单元956、物理寄存器组单元958,以及执行群集960被示为可能是多个, 因为某些实施例对于某些类型的数据/操作创建单独的流水线(例如,标量整数流水线、标 量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线和/或存储器访问流水线,每 一个流水线都具有它们自己的调度器单元、物理寄存器组单元和/或执行群集一一并且在 单独的存储器访问流水线的情况下,实现了其中只有此流水线的执行群集具有存储器访问 单元964的某些实施例)。还应该理解,使用单独的流水线,这些流水线中的一个或多个可 以是无序发出/执行,其余的是有序的。
[0084] 存储器访问单元964的集合親合到存储器单元970,该存储器单元包括親合到数 据高速缓存单元974的数据TLB单元972,其中数据高速缓存单元耦合到二级(L2)高速缓 存单元976。在一个示例性实施例中,存储器访问单元964可以包括加载单元、存储地址单 元以及存储数据单元,其中每一个都耦合到存储器单元970中的数据TLB单元972。指令高 速缓存单元934进一步耦合到存储器单元970中的2级(L2)高速缓存单元976。L2高速 缓存单元976耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。
[0085] 作为示例,示例性寄存器重命名的、无序发布/执行核架构可以如下实现流水线 900 :1)指令取出938执行取出和长度解码级902和904 ;2)解码单元940执行解码级906 ; 3)重命名/分配器单元952执行分配级908和重命名级910 ;4)调度器单元956执行调度 级912 ;5)物理寄存器组单元958和存储器单元970执行寄存器读取/存储器读取级914 ; 执行群集960执行执行级916 ;6)存储器单元970和物理寄存器组单元958执行写回/存 储器写入级918 ;7)各单元可牵涉到异常处理级922 ;以及8)引退单元954和物理寄存器 组单元958执行提交级924。
[0086] 核990可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的 一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维 尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述的 各指令。在一个实施例中,核990包括支持打包数据指令集合扩展(例如,AVX1、AVX2)的 逻辑,由此允许被许多多媒体应用使用的操作将使用打包数据来执行。
[0087] 应该理解,核可以支持多线程(执行操作或线程的两个或更多并行组),并可以以 各种方式达到这一目的,包括时间切片多线程,同时的多线程(其中,单个物理核为物理核 同时正在多线程处理的每一个线程提供一种逻辑核),或其组合(例如,时间切片获取和解 码和此后的同时的多线程处理,诸如在丨ntei?Hyperthreading技术中)。
[0088] 尽管寄存器重命名是在无序执行的上下文中描述的,但是,应该理解,寄存器重命 名可以用于有序架构中。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存 单元934/974以及共享L2高速缓存单元976,但替代实施例可以具有用于指令和数据两者 的单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在某 些实施例中,系统可以包括内部缓存和核和/或处理器外部的外部缓存的组合。可另选地, 全部缓存都可以核和/或处理器外部的。
[0089] 具体的示例性有序核架构
[0090]图10A-B示出了更为具体的示例性有序核架构的框图,该核将是芯片中的多个逻 辑块中的一个(包括相同类型和/或不同类型的其他核)。根据应用,这些逻辑块通过高 带宽的互连网络(例如,环形网络)与一些固定的功能逻辑、存储器I/O接口和其它必要的 I/O逻辑通信。
[0091] 图10A是根据本发明的各实施例的单个处理器核的框图,以及其与管芯上的互连 网络1002的连接以及其第2级(L2)高速缓存1004的本地子集。在一个实施例中,指令解 码器1000支持具有紧缩数据指令集扩展的x86指令集。L1高速缓存1006允许对进入标 量和向量单元中的高速缓存存储器的低等待时间访问。尽管在一个实施例中(为了简化设 计),标量单元1008和向量单元1010使用分开的寄存器集合(分别为标量寄存器1012和 向量寄存器1014),并且在这些寄存器之间转移的数据被写入到存储器并随后从一级(L1) 高速缓存1006读回,但是本发明的替代实施例可以使用不同的方法(例如使用单个寄存器 集合或包括允许数据在这两个寄存器组之间传输而无需被写入和读回的通信路径)。
[0092] L2高速缓存的本地子集1004是全局L2高速缓存的一部分,该全局L2高速缓存被 划分成多个分开的本地子集,即每个处理器核一个本地子集。每个处理器核具有到其自己 的L2高速缓存1004的本地子集的直接访问路径。被处理器核读出的数据被存储在其L2 高速缓存子集1004中,并且可以与其他处理器核访问其自己的本地L2高速缓存子集并行 地被快速访问。被处理器核写入的数据被存储在其自己的L2高速缓存子集1004中,并在 必要的情况下从其它子集清除。环形网络确保共享数据的一致性。环形网络是双向的,以 允许诸如处理器核、L2高速缓存和其它逻辑块之类的代理在芯片内彼此通信。每个环形数 据路径为每个方向1012位宽。
[0093] 图10B是根据本发明的实施例的图10A中的处理器核的一部分的展开图。图10B 包括L1高速缓存1004的L1数据高速缓存1006A部分,以及关于向量单元1010和向量寄存 器1014的更多细节。具体地说,向量单元1010是16宽向量处理单元(VPU)(见16宽ALU 1028),该单元执行整型、单精度浮点以及双精度浮点指令中的一个或多个。该VPU通过混 合单元1020支持对寄存器输入的混合、通过数值转换单元1022A-B支持数值转换、并通过 复制单元1024支持对存储器输入的复制。写掩码寄存器1026允许断定所产生的向量写。 [0094] 具有集成存储器控制器和图形器件的处理器
[0095] 图11是根据本发明的各实施例的可能具有一个以上核、可能具有集成存储器控 制器、以及可能具有集成图形器件的处理器1100的框图。图11中的实线框示出具有单个 核1102A、系统代理1110、一个或多个总线控制器单元1116的集合的处理器1100,而虚线框 的可选附加示出具有多个核1102A-N、系统代理单元1110中的一个或多个集成存储器控制 器单元1114的集合以及专用逻辑1108的处理器1100。
[0096] 因此,处理器1100的不同实现可包括:1)CPU,其中专用逻辑1108是集成图形和/ 或科学(吞吐量)逻辑(其可包括一个或多个核),并且核1102A-N是一个或多个通用核 (例如,通用有序核、通用无序核、这两者的组合);2)协处理器,其中核1102A-N是旨在主 要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核1102A-N是多 个通用有序核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如例如网 络或通信处理器、压缩引擎、图形处理器、GPGPU (通用图形处理单元)、高吞吐量的集成众 核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一 个或多个芯片上。处理器1100可以是一个或多个衬底的一部分,和/或可以使用诸如例如 BiCMOS、CMOS或NM0S等的多个加工技术中的任何一个技术将处理器200实现在一个或多 个衬底上。
[0097] 存储器层次结构包括核内的一级或多级高速缓存,一组或一个或多个共享高速缓 存器单元1106,以及耦合到集成的存储器控制器单元1114组的外部存储器(未示出)。共 享高速缓存器单元1106组可以包括一个或多个中级高速缓存,诸如2级(L2)、3级(L3)、4 级(L4),或其他级别的高速缓存,末级高速缓存(LLC),和/或其组合。尽管在一个实施例 中,基于环的互连单元1112将集成图形逻辑1108、共享高速缓存单元1106的集合以及系统 代理单元1110/集成存储器控制器单元1114互连,但替代实施例可使用任何数量的公知技 术来将这些单元互连。在一个实施例中,维持一个或多个高速缓存单元1106和核1102-A-N 之间的一致性(coherency)。
[0098] 在某些实施例中,核1102A-N中的一个或多个能够多线程处理。系统代理1110 可包括协调和操作核1102A-N的那些组件。系统代理单元1110可包括例如功率控制单元 (P⑶)和显示单元。P⑶可以是或包括用于管理核1102A-N和集成的图形逻辑1108的电能 状态所需的逻辑和
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1