用于源同步电路交换片上网络(NoC)的方法、装置和系统的制作方法

文档序号:9493960阅读:427来源:国知局
用于源同步电路交换片上网络(NoC)的方法、装置和系统的制作方法
【技术领域】
[0001] 本公开涉及计算系统,特别(但非排外地)涉及经由网络来对信息进行通信。
【附图说明】
[0002] 图1是包括多核心处理器的计算系统的框图。
[0003] 图2是根据本发明的实施例的NoC的框图。
[0004] 图3是根据本发明的实施例的针对流控制的信用跟踪的状态图。
[0005] 图4是根据本发明的实施例的有限状态机的框图。
[0006] 图5是根据本发明的实施例的信用跟踪电路的框图。
[0007] 图6是根据本发明的实施例的分组路由器输入端口的框图。
[0008] 图7是根据本发明的实施例的分组路由器输出端口的框图。
[0009] 图8是根据本发明的实施例的方法的流程图。
[0010] 图9是根据本发明的实施例的包括多个路由器的NoC的框图。
[0011] 图IOA-D是根据本发明的一个实施例的路由器的输入端口和输出端口的细节的 框图。
[0012] 图11是根据本发明的实施例的先进先出(FIFO)缓冲器的框图。
[0013] 图12是根据本发明的实施例的示例NoC的框图。
[0014] 图13是根据本发明的实施例的片上系统(SOC)设计的实施例的框图。
【具体实施方式】
[0015] 参考图1,描绘了包括多核心处理器的计算系统的框图的实施例。处理器100包括 任意的处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理 器、手持式处理器、应用处理器、协同处理器、片上系统(SOC)、或用于执行代码的其它设备。 在一个实施例中,处理器100包括至少两个核心一核心101和102,其可以包括不对称核心 或对称核心(图示实施例)。然而,处理器100可以包括可以是对称或不对称的任意数量的 处理元件。
[0016] 在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的 示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、 核心、和/或能够保持处理器的状态(例如,执行状态或架构状态)的任意其它元件。换句 话说,在一个实施例中,处理元件指的是能够独立地与代码(例如,软件线程、操作系统、应 用程序或其它代码)相关联的任意硬件。物理处理器(或处理器插座)通常指的是集成电 路,其可能包括任意数量的其它处理元件,例如核心或硬件线程。
[0017] 核心通常指的是位于集成电路上的能够维持独立架构状态的逻辑,其中每一个被 独立维持的架构状态与至少一些专用执行资源相关联。与核心相反,硬件线程通常指的是 位于集成电路上的能够维持独立架构状态的任意逻辑,其中被独立维持的架构状态共享对 执行资源的访问。如可以看出的,当某些资源被共享并且其它资源专用于架构状态时,硬件 线程和核心的术语间的界限重叠。然而通常,操作系统将核心和硬件线程视为单独的逻辑 处理器,其中,操作系统能够单独调度每一个逻辑处理器上的操作。
[0018] 如图1所示,物理处理器100包括两个核心一核心101和102。这里,核心101和 102被认为是对称核心,即具有相同的配置、功能单元、和/或逻辑的核心。在另一实施例 中,核心101包括乱序处理器核心,而核心102包括有序处理器核心。然而,核心101和102 可以单独地从任意类型的核心中选出,例如本地核心、软件管理核心、适于执行本地指令集 架构(ISA)的核心、适于执行转换指令集架构(ISA)的核心、协同设计的核心、或者其它已 知的核心。在异构核心环境中(即,不对称核心),可以利用某种形式的转换(例如,二进制 转换)来调度或执行一个或两个核心上的代码。然而为进一步讨论,在下文将更加详细地 描述核心101中示出的功能单元,如核心102中的单元在所描绘的实施例中以类似的方式 进行操作。
[0019] 如所描绘的,核心101包括两个硬件线程IOla和101b,其还可以称作硬件线程槽 IOla和101b。因此,在一个实施例中,诸如操作系统等软件实体可能将处理器100视为四个 单独的处理器,即,能够并发执行四个软件线程的四个逻辑处理器或处理元件。如上所暗指 的,第一线程与架构状态寄存器IOla相关联,第二线程与架构状态寄存器IOlb相关联,第 三线程可以与架构状态寄存器102a相关联,以及第四线程可以与架构状态寄存器102b相 关联。这里,架构状态寄存器(101a、101b、102a和102b)中的每一个可以如上所述指的是 处理元件、线程槽或线程单元。如图所示,架构状态寄存器IOla在架构状态寄存器IOlb中 被复制,因此单独的架构状态/上下文能够存储用于逻辑处理器IOla和逻辑处理器101b。 在核心101中,例如在分配器和重命名器框130中的指令指针和重命名逻辑之类的其它较 小资源也被复制用于线程IOla和101b。诸如重排序/引退单元135中的重排序缓冲器、 ILTB120、加载/存储缓冲器、以及队列等的一些资源可以通过分区被共享。诸如通用内部 寄存器、页-表基址寄存器、低级数据高速缓存和数据-TLB 115、执行单元140以及乱序单 元135的一部分等的其它资源可能被完全共享。
[0020] 处理器100通常包括可以被完全共享、通过分区共享、或者专用于处理元件的其 它资源。在图1中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施 例。注意,处理器可以包括或省略这些功能单元中的任一个,以及包括没有绘出的任意其它 已知的功能单元、逻辑、或固件。如所示的,核心101包括简化的、代表性的乱序(〇〇〇)处 理器核心。但是在不同实施例中可以使用有序处理器。000核心包括用于预测将被执行/ 采用的分支的分支目标缓冲器102,以及用于存储指令的地址转换条目的指令转换缓冲器 (I-TLB)120〇
[0021] 核心101还包括解码模块125,其被耦合到提取单元120以对所提取的元件进行解 码。在一个实施例中,提取逻辑包括分别与线程槽IOlaUOlb相关联的单独的定序器。通 常,核心101与定义/指定能在处理器100上执行的指令的第一 ISA相关联。通常,作为第 一 ISA的一部分的机器代码指令包括引用/指定将被执行的指令或操作的指令的一部分 (称作操作码)。解码逻辑125包括根据其操作码识别这些指令并且将解码后的指令传递 到管线中以用于如由第一 ISA定义的进行处理的电路。例如,如下文更详细讨论的,在一个 实施例中,解码器125包括被设计成或适于识别诸如事务性指令等的具体指令的逻辑。作 为解码器125识别的结果,架构或核心101采取具体的、预先定义的动作来执行与适当指令 相关联的任务。重要的是,应注意到,本文所描述的任务、框、操作和方法的任一个可以响应 于单个指令或多个指令而被执行;这些指令中的一些可以是新的或旧的指令。注意,在一个 实施例中,解码器126识别同一 ISA(或者其子集)。可替换地,在异构核心环境中,解码器 126识别第二ISA (第一 ISA的子集或不同的ISA)。
[0022] 在一个示例中,分配器和重命名器框130包括用于储备资源的分配器,所述资源 例如是用于存储指令处理结果的寄存器文件。然而,线程IOla和IOlb可能能够乱序执行, 其中分配器和重命名器块130还储备其它资源,例如用于跟踪指令结果的重排序缓冲器。 单元130还可以包括寄存器重命名器,其用于将程序/指令参考寄存器重命名为处理器100 内部的其它寄存器。重排序/引退单元135包括用于支持乱序执行以及后来的被乱序执行 的指令的有序引退的部件,例如,上述重排序缓冲器、加载缓冲器以及存储缓冲器。
[0023] 在一个实施例中,调度器和执行单元块140包括用于对执行单元上的指令/操作 进行调度的调度器单元。例如,在具有可用的浮点执行单元的执行单元的端口上来对浮点 指令进行调度。与执行单元相关联的寄存器文件也被包含以存储信息指令处理结果。示例 性的执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行 单元、以及其它已知的执行单元。
[0024] 较低级别的数据高速缓存和数据转换缓冲器(D-TLB) 150耦合到执行单元140。数 据高速缓存用于存储诸如数据操作数等的近期使用/操作的元素,这些元素可能保持在存 储器一致性状态。D-TLB用于存储近期的虚拟地址/线性地址到物理地址的转换。作为具 体示例,处理器可以包括页表结构,其用于将物理存储器分解为多个虚拟页面。
[0025] 这里,核心101和102共享对较高级别或较远的高速缓存的访问,所述较高级别 或较远的高速缓存例如是与片上接口 110相关联的第二级高速缓存。注意,较高级别或较 远指的是提高的或变得更远离执行单元的高速缓存级别。在一个实施例中,较高级别的高 速缓存是最后一级数据高速缓存一在处理器100上的存储器层次中的最后一级的高速缓 存一例如,第二或第三级数据高速缓存。然而,较高级别的高速缓存并不如此受限,因为它 可以与指令尚速缓存相关联或包括指令尚速缓存。跟踪尚速缓存(一种类型的指令尚速 缓存)可以在解码器125之后被耦合以存储近期解码的轨迹。这里,指令可以是指宏指令 (即,解码器识别出的通用指令),其可以解码为多个微指令(微操作)。
[0026] 在所描绘的配置中,处理器100还包括片上接口模块110。在历史上,下文将更详 细地描述的存储器控制器已经被包含于处理器100外部的计算系统。在该场景中,片上接 口 110用于与处理器100外部的设备进行通信,所述设备例如是系统存储器175、芯片组 (通常包括用于连接到存储器175的存储器控制器中心以及用于连接外围设备的I/O控制 器中心)、存储器控制器中心、北桥、或者其它集成电路。并且在该场景中,总线105可以包 括任意已知的互连,例如多点总线、点对点互连、串行互连、并行总线、一致性(例如,高速 缓存一致性)总线、分层协议架构、差分总线、以及GTL总线。
[0027] 存储器175可以专用于处理器100或与系统中其它设备共享。存储器175的类型 的普通示例包括DRAM、SRAM、非易失性存储器(NV存储器)、以及其它已知的存储设备。注 意,设备180可以包括图形加速器、处理器或耦合到存储器控制器中心的卡、耦合到I/O控 制器中心的数据存储设备、无线收发器、闪速设备、音频控制器、网络控制器,或者其它已知 的设备。
[0028] 然而,最近,随着更多的逻辑和设备正在被集成到单个管芯上(例如S0C),这些设 备的每一个可以被合并到处理器100上。例如,在一个实施例中,存储器控制器中心与处理 器100在同一封装和/或管芯上。这里,核心的一部分(核心上(on-core)部分)110包括一 个或多个控制器,其用于与诸如存储器175或图形设备180等的其它设备进行连接。包括互 连和用于与这种设备进行连接的控制器的配置通常被称作核心上(或者非核心(un-core) 配置)。作为示例,片上接口 110包括用于片上通信的环形互连以及用于片外通信的高速串 行点对点链接105。但是,在SOC环境中,甚至更多的设备(例如,网络接口、协同处理器、存 储器175、图形处理器180以及任意其它已知的计算机设备/接口)可以被集成到单个的管 芯或集成电路上,以提供小形状因子以及具有高功能和低功率消耗。
[0029] 在一个实施例中,处理器100能够执行编译器、优化、和/或转换器代码177,以对 应用程序代码176进行编译、转换、和/或优化以支持本文描述的装置和方法或者与其进行 连接。编译器通常包括用于将源文本/代码转换为目标文本/代码的程序或程序的集合。 通常,利用编译器的对程序/应用程序代码的编译在多个阶段和多遍中完成,以将高级编 程语言代码变换为低级机器或汇编语言代码。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1