片上网格互连的制作方法

文档序号:9493647阅读:382来源:国知局
片上网格互连的制作方法
【技术领域】
[0001]本公开关于计算系统,并且特别地(但不排除其他地)关于多核心处理器互连架构。
【背景技术】
[0002]在最近数十年,处理器芯片已经进行了显著地发展。多核心芯片的出现已经使得并行计算和计算设备(包括个人计算机和服务器)内的其他功能成为可能。处理器原本被开发为具有一个核心。每个核心可以是能够读取执行中的程序指令的独立的中央处理单元(CPU)。双核心、四核心以及甚至是八心核处理器已经被开发用于个人计算设备,而高性能服务器芯片已经被开发为具有上至十、十二以及更多核心。可以使用导线或其他传输介质的片上互连将核心以及其他片上组件一起互连。调整芯片上核心的数量会挑战试图促进核心的高速互连的芯片设计师。已经开发了多种互连架构,包括环形总线互连架构等。
【附图说明】
[0003]图1示出了包括多核心处理器的计算系统的方框图的实施例。
[0004]图2示出了使用环形互连架构的第一实施例的多核心芯片的方框图。
[0005]图3示出了使用环形互连架构的第二实施例的多核心芯片的方框图。
[0006]图4示出了使用环形网格互连架构的示例实施例的多核心芯片的方框图。
[0007]图5示出了在示例环形网格互连架构中的第一示例环形站的方框图。
[0008]图6示出了在示例环形网格互连架构中的第二示例环形站的方框图。
[0009]图7示出了连接到示例环形网格互连的瓦片的方框图。
[0010]图8示出了使用环形网格互连架构的示例实施例的多核心芯片的示例平面图。
[0011]图9A-9C示出了在示例环形网格互连上的示例流。
[0012]图10A-10B示出了流程图,该流程图示出了利用示例环形网格互连而执行的示例技术。
[0013]图11示出了计算系统的方框图的另一个实施例。
[0014]不同的附图中相同的附图标记和标识指示相同的元件。
【具体实施方式】
[0015]在以下的【具体实施方式】中,为了提供对本发明的透彻的理解,阐述了许多的具体细节,例如,处理器和系统配置的具体类型、具体的硬件结构、具体的架构和微架构细节、具体的寄存器配置、具体的指令类型、具体的系统组件、具体的度量/高度、具体的处理器管线阶段和操作等的示例。然而,对本领域技术人员来说将会显而易见的是,不需要采用这些具体细节来实践本发明。在其他实例中,为了避免不必要地使本发明晦涩难懂,没有详细地描述公知的组件或方法,例如,具体和替代的处理器架构、针对所描述的算法的具体的逻辑电路/代码、具体的固件代码、具体的互连操作、具体的逻辑配置、具体的制造技术和材料、具体的编译器实现、算法的具体代码表达、具体的断电和选通技术/逻辑、以及计算机系统的其他具体的操作细节。
[0016]尽管可以关于具体集成电路中(例如,在计算平台或微处理器中)的能量节约和能量效率来描述以下的实施例,但是其他的实施例适用于其他类型的集成电路和逻辑设备。可以将在本文中描述的实施例的类似的技术和教导应用至其他类型的电路或半导体设备中,使其也可以受益于更好的能量效率和能量节约。例如,所公开的实施例不限于台式计算机系统或Ultrabook?。并且也可以在例如手持设备、平板计算机、其他薄笔记本计算机、片上系统(S0C)、和嵌入式应用中被使用。手持设备的一些示例包括蜂窝电话、英特网协议设备、数字照相机、个人数字助理(PDA)、以及手持PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可以执行下面教导的功能和操作的任何其他系统。此外,本文中所描述的装置、方法和系统不限于物理计算设备,而是也可以涉及针对能量节约和效率的软件优化。在以下的【具体实施方式】中将变得显而易见的是,在本文中所描述的方法、装置和系统(无论关于硬件、固件、软件、或其组合)对“绿色技术”未来与性能考虑的平衡来说至关重要。
[0017]随着计算系统的发展,其中的组件变得越来越复杂。因此,用于在组件间耦合和通信的互连架构也在复杂度方面有所增加以确保带宽要求满足最佳组件操作。此外,不同的细分市场需求互连架构的不同方面以适应市场需求。例如,服务器要求更高的性能,而移动生态系统有时可以牺牲总体性能来追求电能节约。然而,大部分结构的单一的目的是提供尽可能最高的性能的同时具有最大的电能节约。在下文中,讨论了多个互连,这些互连将潜在地受益于本文中所描述的本发明的方面。
[0018]参考图1,描绘了包括多核心处理器的计算系统的方框图的实施例。处理器100包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(S0C)、或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核心——核心101和102,这两个核心可以包括非对称核心或对称核心(示出的实施例)。然而,处理器100可以包括可以是对称或非对称的任何数量的处理元件。
[0019]在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核心、和/或能够保持例如执行状态或架构状态的处理器状态的任何其他元件。换句话说,在一个实施例中,处理元件是指能够独立关联于代码(例如,软件线程、操作系统、应用程序、或其他代码)的任何硬件。物理处理器(或处理器插座)通常是指潜在地包括任何数量的其他处理元件(例如,核心或硬件线程)的集成电路。
[0020]核心通常是指位于集成电路上的能够保持独立的架构状态的逻辑,其中每个独立保持的架构状态与至少一些专用执行资源相关联。和核心相反,硬件线程通常是指位于集成电路上的能够保持独立的架构状态的任何逻辑,其中独立保持的架构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其他的资源专用于架构状态时,硬件线程和核心的术语之间的界线会重叠。但通常而言,核心和硬件线程被操作系统视为单独的逻辑处理器,其中操作系统可以在每个逻辑处理器上单独地调度操作。
[0021]如在图1中所示,物理处理器100包括两个核心——核心101和102。这里,核心101和102可以被认为是对称核心,S卩,具有相同配置、功能单元和/或逻辑的核心。在又一实施例中,核心101包括乱序处理器核心,而核心102包括顺序处理器核心。然而,核心101和102可以从任何类型的核心中单独地被选出,所述任何类型的核心例如,本机核心、软件管理的核心、适应于执行本机指令集架构(ISA)的核心、适应于执行转换的指令集架构(ISA)的核心、协同设计的核心、或其他已知的核心。在异构性核心环境(即,非对称核心)中,可以使用一些形式的转换,例如二进制转换以在一个核心上或同时在两个核心上调度或执行代码。有待进一步讨论的,在下文中进一步详细地描述了在核心101中示出的功能单元,同时核心102中的单元在描绘的实施例中以相似的方式运行。
[0022]如图所绘,核心101包括2个硬件线程101a和101b,其也可以被称为硬件线程槽101a和101b。因此,在一个实施例中,例如操作系统的软件实体将处理器100视为四个分立的处理器,即四个逻辑处理器或能够同时执行四个软件线程的四个处理元件。正如前文提到的,第一线程关联于架构状态寄存器101a,第二线程关联于架构状态寄存器101b,第三线程可以关联于架构状态寄存器102a,并且第四线程可以关联于架构状态寄存器102b。这里,如上文所述,可以将架构状态寄存器(101a、101b、102a、和102b)中的每一个称为处理元件、线程槽、或线程单元。如图所示,在架构状态寄存器101b中复制架构状态寄存器101a,因此单独的架构状态/上下文可以能够针对逻辑处理器101a和逻辑处理器101b而被存储。在核心101、102中,其他较小的资源,例如分配器和重命名器方框130、131中的指令指针和重命名逻辑,也可以针对线程101a和101b以及102a和102b而分别进行复制。例如重新排序/退出单元135、136中的重新排序缓冲器、ILTB 120、121、载入/存储缓冲器,以及队列的一些资源可以通过划分而被共享。例如通用内部寄存器、页表基寄存器、低级数据高速缓存和数据-TLB 150、151、执行单元140、141、以及乱序单元的部分其他资源潜在地被完全共早。
[0023]处理器100通常包括可以被完全共享、可以通过划分进行共享、或被处理元件专用/专用于处理元件的其他资源。在图1中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器。需注意的是,处理器可以包括或省略这些功能单元中的任何一个,同样包括任何其他已知而没有描绘的功能单元、逻辑或固件。如图所示,核心101包括简化的、代表性的乱序(000)处理器核心。但是可以在不同的实施例中使用顺序处理器。000核心包括用于预测将被执行/采取的分支的分支目标缓冲器120,以及用于存储针对指令的地址转换条目的指令转换缓冲器(1-TLB) 120。
[0024]核心101还包括耦合至提取单元,用于对提取到的元素进行解码的解码模块125。在一个实施例中,提取逻辑包括分别关联于线程槽101a、101b的单独的定序器。通常核心101关联于第一 ISA,其中所述第一 ISA定义/指定可在处理器100上执行的指令。通常,作为第一 ISA的部分的机器码指令包括引用/指定了将被执行的指令或操作的指令的一部分(被称为操作码)。如由第一 ISA所定义的,解码逻辑125包括从这些指令的操作码中识别出这些指令,并且将所解码的指令在管线中传递以进行处理的电路。例如,如在下文中更详细地讨论的,在一个实施例中,解码器125包括设计为或适应于识别例如事务指令的具体指令的逻辑。作为由解码器125所识别的结果,架构或核心101采取具体的、预先定义的行为来执行与合适的指令相关联的任务。重要的是要注意到,在本文中所描述的任务、区块、操作和方法中的任何一个都可以响应于单个或多个指令而执行;指令中的一些可以是新的或旧的指令。要注意的是,在一个实施例中,解码器126识别相同的ISA(或其子集)。或者,在异构核心环境下,解码器126识别第二 ISA(第一 ISA的子集或不同的ISA)。
[0025]在一个实施例中,分配器和重命名器方框130包括用于保存例如寄存器文件的资源以存储指令处理结果的分配器。然而,线程101a和101b潜在地能够乱序执行,其中分配器和重命名器方框130也保存例如重排序缓冲器的其他资源以追踪指令结果。单元130也可以包括用于将程序/指令参考寄存器重命名为处理器100内部的其他寄存器的寄存器重命名器。重
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1