流水线化混合分组/电路交换片上网络的制作方法

文档序号:11455618阅读:240来源:国知局
流水线化混合分组/电路交换片上网络的制造方法与工艺

相关申请的交叉引用

本申请要求2014年12月17日提交的题为“pipelinedhybridpacket/circuit-switchednetwork-on-chip”的美国非临时专利申请号14/574,189的权益和优先权,所述美国非临时专利申请被通过引用整体地并入本文中。

本公开一般地涉及计算机开发领域,并且更具体地涉及流水线化(pipelined)混合分组/电路交换片上网络(noc)。



背景技术:

随着在多核处理器中核和知识产权(ip)块的数目增加,用于核之间的管芯上通信的片上网络(noc)在使能可扩展性能中是重要的。在这样的实例中,组件之间的通信变成关键功率和性能限制器。noc使得能够高效地共享片上布线资源,用于与路由器的通信以控制和仲裁通信组件之间的数据的流动。混合分组/电路交换noc使能分组交换的高的吞吐量和利用,其中能量效率接近电路交换数据传播。

附图说明

图1图示了根据某些实施例的包括多核处理器的示例计算系统的框图。

图2图示了根据某些实施例的包括包含多个路由器的片上网络(noc)系统的处理器的框图。

图3a图示了根据某些实施例的用于同步混合分组/电路交换noc的示例系统中的示例通信。

图3b图示了根据某些实施例的用于同步混合分组/电路交换noc的具有流水线化电路交换控制和数据信道的示例系统。

图4a图示了根据某些实施例的用于源同步混合分组/电路交换noc的示例系统中的示例通信。

图4b图示了根据某些实施例的用于源同步混合分组/电路交换noc的具有流水线化电路交换控制和数据信道的示例系统。

图5a图示了根据某些实施例的noc中的流水线级的示例配置。

图5b图示了根据某些实施例的noc中的流水线级的另一个示例配置。

图6图示了根据某些实施例的用于在流水线化同步混合分组/电路交换noc中通信的示例方法。

图7图示了根据某些实施例的用于在流水线化源同步混合分组/电路交换noc中通信的示例方法。

图8图示了根据某些实施例的示例计算系统的另一个框图。

在各种图中同样的参考号码和名称指示同样的元件。

具体实施方式

在下面的描述中,阐述了许多特定细节,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等的示例,以便提供对本公开的透彻理解。然而,将对本领域技术人员显而易见的是:不需要采用这些特定细节来实践本公开。在其它实例中,没有详细描述公知的组件或方法,诸如特定和替代处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、用代码的算法的特定表达、特定掉电和门控技术/逻辑以及计算机系统的其它特定操作细节,以便避免不必要地模糊本公开。

虽然可以参考诸如在计算平台或微处理器中的特定集成电路中的能量节约和能量效率来描述下面的实施例,但是其它实施例可适用于其它类型的集成电路和逻辑器件。本文中描述的实施例的类似技术和教导可应用于也可能得益于更好的能量效率和能量节约的其它类型的电路或半导体器件。例如,公开的实施例不限于台式计算机系统或ultrabookstm,而且可以用在其它设备中,诸如服务器计算机系统、手持设备、平板电脑、其它薄笔记本电脑、片上系统(soc)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、因特网协议设备、数码相机、个人数字助理(pda)和手持pc。嵌入式应用典型地包括微控制器、数字信号处理器(dsp)、片上系统、网络计算机(netpc)、机顶盒、网络集线器、广域网(wan)交换机或者可以执行以下教导的功能和操作的任何其它系统。此外,本文中描述的装置、方法和系统不限于物理计算设备,而且可能涉及用于能量节约和效率的软件优化。如将在以下描述中容易地变得显而易见的,本文中描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是其组合)对与性能考虑平衡的“绿色技术”未来至关重要。

随着计算系统进步,其中的组件变得更加复杂。因此,在组件之间耦合和通信的互连架构也在复杂性方面增加,以确保满足最佳组件操作的带宽要求。此外,不同的市场部分需要互连架构的不同方面,以适应市场的需求。例如,服务器要求较高的性能,而移动生态系统有时能够为了功率节省而牺牲整体性能。然而,大多数构造(fabric)的单一目的是在最大的功率节省的情况下提供最高的可能性能。以下讨论许多互连,其将可能得益于本文中描述的公开的各方面。

参考图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(soc)或执行代码的其它设备。在一个实施例中,处理器100包括至少两个核——核101和102,其可包括不对称核或对称核(图示的实施例)。然而,处理器100可包括可能对称或不对称的任何数目的处理元件。

在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽(slot)、线程、过程单元、上下文(context)、上下文单元、逻辑处理器、硬件线程、核和/或任何其它元件,其能够为处理器保持诸如执行状态或架构状态之类的状态。换言之,在一个实施例中,处理元件指的是能够独立地与代码相关联的任何硬件,诸如软件线程、操作系统、应用或其它代码。物理处理器(或处理器插座)典型地指的是集成电路,其可能包括任何数目的其它处理元件,诸如核或硬件线程。

核常常指的是位于能够维持独立的架构状态的集成电路上的逻辑,其中每个独立地维持的架构状态与至少一些专用执行资源相关联。与核形成对照,硬件线程典型地指的是位于能够维持独立的架构状态的集成电路上的任何逻辑,其中独立地维持的架构状态共享对执行资源的访问。如可以看到的,当某些资源被共享并且其它资源专用于架构状态时,硬件线程与核的命名之间的线重叠。然而,常常操作系统将核和硬件线程视为单独的逻辑处理器,其中操作系统能够在每个逻辑处理器上单独地调度操作。

如图1中所图示的物理处理器100包括两个核——核101和102。这里,核101和102被认为是对称核,即具有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核101包括无序处理器核,而核102包括有序处理器核。然而,核101和102可单独地选自任何类型的核,诸如原生(native)核、经软件管理的核、适配成执行原生指令集架构(isa)的核、适配成执行经翻译的指令集架构(isa)的核、共同设计的核或其它已知的核。在异构核环境(即非对称核)中,诸如二进制翻译之类的某个形式的翻译可用于在一个或两个核上调度或执行代码。然而为了推动讨论,以下进一步详细描述在核101中图示的功能单元,因为核102中的单元在所描绘的实施例中以类似的方式操作。

如所描绘的,核101包括两个硬件线程101a和101b,其也可被称为硬件线程槽101a和101b。因此,在一个实施例中,诸如操作系统之类的软件实体可能将处理器100视为四个分离的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上面所提到的,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可与架构状态寄存器102a相关联,并且第四线程可与架构状态寄存器102b相关联。这里,架构状态寄存器(101a、101b、102a和102b)中的每个可被称为如上面描述的处理元件、线程槽或线程单元。如所图示的,在架构状态寄存器101b中复制架构状态寄存器101a,因此单独的架构状态/上下文能够被存储以用于逻辑处理器101a和逻辑处理器101b。在核101中,也可复制其它较小的资源以用于线程101a和101b,所述资源诸如在分配器和重新命名块130中的指令指针和重命名逻辑。可通过分区共享一些资源,诸如重排序/引退单元135中的重排序缓冲器、iltb120、加载/存储缓冲器和队列。可能完全共享其它资源,诸如通用内部寄存器、(一个或多个)页表基址寄存器、低级数据高速缓存和数据-tlb115、(一个或多个)执行单元140以及无序单元135的部分。

处理器100常常包括可被完全共享、通过分区共享或由处理元件专用/专用于处理元件的其它资源。在图1中,图示了具有处理器的说明性逻辑单元/资源的纯粹示例性处理器的实施例。注意:处理器可包括或省略这些功能单元中的任何,以及包括未描绘的任何其它已知的功能单元、逻辑或固件。如所图示的,核101包括简化的、代表性的无序(ooo)处理器核。但是,可在不同的实施例中使用有序处理器。ooo核包括预测将执行/采取的分支的分支目标缓冲器120,以及存储针对指令的地址翻译条目的指令翻译缓冲器(i-tlb)120。

核101进一步包括耦合到取出单元120以解码取出的元素的解码模块125。在一个实施例中,取出逻辑包括分别与线程槽101a、101b相关联的单独的定序器。通常核101与第一isa相关联,第一isa定义/指定在处理器100上可执行的指令。是第一isa的部分的机器代码指令常常包括指令的一部分(被称为操作码),该部分引用/指定将执行的指令或操作。解码逻辑125包括电路,该电路从其操作码识别这些指令并在流水线中传递解码的指令以用于如由第一isa定义的处理。例如,如以下更详细地讨论的,在一个实施例中,解码器125包括被设计或适配成识别诸如事务性指令之类的特定指令的逻辑。由于由解码器125识别,架构或核101采取特定的预定义动作以执行与适当的指令相关联的任务。重要的是注意:可响应于单个或多个指令来执行本文中描述的任务、块、操作和方法中的任何;其中的一些可以是新的或旧的指令。注意:在一个实施例中,解码器126识别相同的isa(或其子集)。替代地,在异构核环境中,解码器126识别第二isa(或者第一isa的子集或者不同的isa)。

在一个示例中,分配器和重命名块130包括用以保留资源的分配器,所述资源诸如用以存储指令处理结果的寄存器文件。然而,线程101a和101b可能能够无序执行,其中分配器和重命名块130还保留其它资源,诸如用以跟踪指令结果的重排序缓冲器。单元130还可包括寄存器重命名器,以将程序/指令参考寄存器重命名成处理器100内部的其它寄存器。重排序/引退单元135包括诸如以上提及的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件,以支持无序执行以及无序执行的指令的稍后有序引退。

在一个实施例中,(一个或多个)调度器和执行单元块140包括调度器单元,以调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其它已知的执行单元。

较低级数据高速缓存和数据翻译缓冲器(d-tlb)150耦合到(一个或多个)执行单元140。数据高速缓存将存储最近使用/操作的元素,诸如数据操作数,其可能被以存储器一致性状态保持。d-tlb将存储最近的虚拟/线性到物理的地址翻译。作为特定示例,处理器可包括页表结构以将物理存储器分解成多个虚拟页面。

这里,核101和102共享对较高级或较远离的高速缓存的访问,诸如与片上接口110相关联的二级高速缓存。注意:较高级或较远离指的是增加或变得进一步远离(一个或多个)执行单元的高速缓存级。在一个实施例中,较高级高速缓存是最后一级数据高速缓存——处理器100上的存储器层级中的最后一个高速缓存——诸如第二或第三级数据高速缓存。然而,较高级高速缓存不被如此限制,因为它可与指令高速缓存相关联或包括指令高速缓存。跟踪高速缓存——一个类型的指令高速缓存——反而可耦合在解码器125之后以存储最近解码的跟踪。这里,指令可能指的是可解码成许多微指令(微操作)的宏指令(即由解码器识别的通用指令)。

在所描绘的配置中,处理器100还包括片上接口模块110。历史上,以下更详细描述的存储器控​​制器已被包括在处理器100外部的计算系统中。在该场景中,片上接口11将与处理器100外部的设备通信,所述设备诸如系统存储器175、芯片组(常常包括存储器控​​制器集线器以连接到存储器175,以及i/o控制器集线器以连接外围设备)、存储器控制器集线器、北桥或其它集成电路。并且在该场景中,总线105可包括任何已知的互连,诸如多点总线、点到点互连、串行互连、并行总线、相干(例如高速缓存相干)总线、分层协议架构、差分总线和gtl总线。

存储器175可专用于处理器100或与系统中的其它设备共享。存储器175的类型的常见示例包括dram、sram、非易失性存储器(nv存储器)和其它已知的存储设备。注意:设备180可包括图形加速器、耦合到存储器控制器集线器的处理器或卡、耦合到i/o控制器集线器的数据贮存器、无线收发器、闪存设备、音频控制器、网络控制器或其它已知的设备。

然而最近,随着更多的逻辑或设备集成在诸如soc之类的单个管芯上,这些设备中的每个可合并在处理器上。例如在一个实施例中,存储器控制器集线器在与处理器100相同的封装和/或管芯上。这里,核的一部分(核上部分)110包括用于与诸如存储器175或图形设备180之类的其它设备对接的一个或多个控制器。包括互连和用于与这样的设备对接的控制器的配置常常被称为核上(或非核配置)。作为示例,片上接口110包括用于片上通信的环形互连以及用于片外通信的高速串行点对点链路105。然而,在soc环境中,甚至更多设备,诸如网络接口、协处理器、存储器175、图形处理器180和任何其它已知的计算机设备/接口,可集成在单个管芯或集成电路上,以给小的形状因子提供高功能和低功率消耗。

在一个实施例中,处理器100能够执行编译器、优化和/或翻译器代码177,以编译、翻译和/或优化应用代码176来支持本文中描述的装置和方法或与其对接。编译器常常包括将源文本/代码翻译成目标文本/代码的程序或程序集。通常,在多个阶段或多遍中完成用编译器编译程序/应用代码,以将高级编程语言代码变换成低级机器或汇编语言代码。然而,单遍编译器仍可用于简单编译。编译器可利用任何已知的编译技术并执行任何已知的编译器操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。

较大的编译器常常包括多个阶段,但最经常的是这些阶段被包括在两个一般阶段内:(1)前端,即一般其中可发生语法处理、语义处理和一些变换/优化,以及(2)后端,即一般其中发生分析、变换、优化和代码生成。一些编译器指的是说明编译器的前端和后端之间的描述模糊的中间。因此,对编译器的插入、关联、生成或其它操作的引用可发生在前述阶段或遍的任何以及编译器的任何其它已知的阶段或遍中。作为说明性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、功能等,诸如在编译的前端阶段中插入调用/操作以及然后在变换阶段将调用/操作变换成较低级代码。注意:在动态编译期间,编译器代码或动态优化代码可插入这样的操作/调用,以及在运行时间期间优化用于执行的代码。作为特定的说明性示例,可在运行时间期间动态优化二进制代码(已编译的代码)。这里,程序代码可包括动态优化代码、二进制代码或其组合。

类似于编译器,诸如二进制翻译器之类的翻译器或者静态地或者动态地翻译代码以优化和/或翻译代码。因此,对代码、应用代码、程序代码或其它软件环境的执行的引用可能指的是:(1)(一个或多个)编译器程序、优化代码优化器或翻译器或者动态地或者静态地的执行,以编译程序代码,以维持软件结构,以执行其它操作,以优化代码,或以翻译代码;(2)包括操作/调用的主程序代码的执行,所述主程序代码诸如已经被优化/编译的应用程序代码;(3)与主程序代码相关联的诸如库之类的其它程序代码的执行,以维持软件结构,以执行其它软件相关操作,或以优化代码;或者(4)其组合。

图2图示了根据某些实施例的包括包含多个路由器204的noc系统的处理器200的框图。处理器200可包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器、手持处理器、应用处理器、协处理器、soc或用以执行代码的其它设备。在特定实施例中,在单个管芯上实现处理器200。

在所描绘的实施例中,处理器200包括布置在网格网络中并利用双向链路彼此耦合的多个网络元件202。然而,根据本公开的各种实施例的noc可应用于任何合适的网络拓扑(例如分层网络或环形网络)、大小、总线宽度和过程。每个网络元件202包括路由器204。路由器204可在诸如分组交换网络和/或电路交换网络之类的网络中与彼此通信地链接,从而使能连接到路由器的noc的组件(诸如核、存储元件或其它逻辑块)之间的通信。在所描绘的实施例中,每个路由器204可通信地耦合到其自己的核208(或其它逻辑块)。如本文所使用的,对核的引用也可适用于使用不同的逻辑块来代替核​​的其它实施例。例如,各种逻辑块可包括硬件加速器(例如,图形加速器、多媒体加速器或视频编码/解码加速器)、i/o块、存储器控制器或其它合适的固定功能逻辑。处理器200可包括可以对称或不对称的任何数目的处理元件。例如,处理器200的核208可包括不对称核或对称核。处理器200可包括作为分组交换网络和电路交换网络中的任一个或两者操作以提供管芯内通信的逻辑。

在特定实施例中,可在各种路由器204之间使用分组交换网络的资源传送分组。也就是说,分组交换网络可提供路由器(及其关联的核)之间的通信。分组可包括控制部分和数据部分。控制部分可包括分组的目的地地址,并且数据部分可包含将在芯片100上传送的特定数据。例如,控制部分可包括对应于网络元件或者管芯的核中的一个的目的地地址。分组交换网络可包括缓冲,因为不保证从源到目的地的专用路径,并且因此如果两个或更多个分组需要遍历(traverse)相同的链路或互连,则可能需要临时停止分组。作为示例,随着分组从源行进到目的地,可在各自的路由器的每个处(例如通过触发器)缓冲分组。分组可由路由器204接收、传输和处理。分组交换网络可在邻近路由器之间使用点对点通信。可在路由器之间基于诸如4ghz时钟之类的分组时钟来传送分组的控制部分。可在路由器之间基于诸如4ghz时钟之类的类似时钟来传送分组的数据部分。

在实施例中,处理器200的路由器可被不同地提供在两个网络中,或者在两个网络中通信,所述两个网络诸如分组交换网络和电路交换网络。这样的通信方法可被称作混合分组/电路交换网络。在这样的实施例中,可使用分组交换网络和电路交换网络的资源在各种路由器204之间不同地传送分组。为了传输单个数据分组,电路交换网络可分配整个路径,而分组交换网络可仅分配单个段(或互连)。在一些实施例中,分组交换网络可用于保留电路交换网络的资源,用于路由器204之间的数据的传输。

路由器204可包括多个端口组,以不同地耦合到邻接的网络元件202并且与邻接的网络元件202通信。例如,可通过这些端口组传送电路交换和分组交换信号。例如,可根据邻接的网络元件的方向和/或与这样的元件的业务交流(exchange)的方向来逻辑上划分路由器204的端口组。例如,路由器204可包括具有输入(“输入(in)”)和输出(“输出(out)”)端口的北端口组,其被配置成(分别)从位于关于路由器204的“北”方向上的网络元件202接收通信并向其发送通信。另外或替代地,路由器204可包括类似的端口组,以与位于南、西、东或其它方向的网络元件对接。在所描绘的实施例中,路由器204被配置用于x第一、y第二路由,其中​​数据首先在东/西方向上、并且然后在北/南方向上移动。在其它实施例中,可使用任何合适的路由方案。

在各种实施例中,路由器204进一步包括另一个端口组,该端口组包括被配置成(分别)从网络的另一个代理接收并向其发送通信的输入端口和输出端口。在所描绘的实施例中,该端口组被示出在路由器204的中心处。在一个实施例中,这些端口用于与邻近于路由器204、与路由器204通信或以其它方式与路由器204相关联的逻辑的通信,该逻辑诸如“本地”核208的处理器逻辑。这里,该端口组将被称为“核端口组”,但是在一些实现中它可与不同于核的逻辑对接。在另一个实施例中,该端口组用于与网络元件的通信,该网络元件在比路由器204的网络层级高的网络层级的下一级中。在一个实施例中,东和西方向链路在一个金属层上,北和南方向链路在第二金属层上,并且核链路在第三金属层上。在实施例中,路由器204包括纵横交换和仲裁逻辑,以提供端口间通信的路径,诸如图2中所示出的路径。每个网络元件中的逻辑(例如核208)可具有唯一的时钟和/或电压,或者可与noc的一个或多个其它组件共享时钟和/或电压。

纯分组交换网络在每个路由器中具有至少一级(stage)触发器,导致显著的功率和延迟开销来实现高吞吐量。混合分组/电路交换noc将电路交换的能量效率与分组交换的较高的资源利用组合。由于源与目的地之间的数据存储电路的消除,这些混合网络内的电路交换数据传送是能量高效的。然而,在长距离数据传送期间保留的电路交换信道可阻止其它传送达长时间段,导致低于最佳吞吐量。本公开的各种实施例将流水线级添加到混合分组/电路交换框架内的电路交换noc。可在流水线级处翻转(flop)电路交换数据。当数据到达流水线触发器时,电路交换信道可接收电路交换确认信号。跨大的noc放置若干信用-1流水线级用最小能量开销将长距离传送分解成若干短传送。流水线级的小心放置可以以最小的能量开销提供显著的性能改进。流水线化级可用在同步和源同步noc两者中。同步和源同步实现两者可以用多个流水线化路由器扩展到(scaleto)较大的网络。

图3a图示了根据某些实施例的用于同步混合分组/电路交换noc的示例系统300中的示例通信。同步noc可利用明确的时钟和电平敏感的控制信号。同步分组交换noc可包括基于全局时钟与其邻居通信的路由器。因此,同步noc中的所有路由器以相同的频率操作。可在诸如处理器200之类的处理器的noc中执行所描绘的通信。所描绘的每个路由器可具有本文中关于路由器204所描述的任何合适的特性。

在实施例中,通信包括用以配置电路交换路径的分组交换保留请求304的交流。源逻辑308(例如,核208)可将保留请求发送到目的地逻辑312(例如,不同的核208)。保留请求304可能在其去目的地途中经过n+1个路由器,并且保留请求304在每个路由器处被翻转。可基于诸如2ghz时钟之类的分组时钟316在路由器之间传送保留请求304。保留分组304可经由noc的分组交换部分来传送,并且可随着保留分组从源向目的地行进而保留用于源逻辑308与目的地逻辑312之间的数据通信的资源。

保留分组304可包括促进电路交换信道的保留的任何合适的信息。作为示例,保留分组可包括与目的地逻辑312相关联的地址以及可选的边带分组数据。当资源可用时,基于目的地地址向下游转发保留分组。例如,基于由给定路由器中的方向解码器执行的确定性路由方法(例如,x-第一、y-第二路由或表查找)或其它路由协议,沿着从源逻辑308到目的地逻辑312的路径上转发保留分组。在实施例中,唯一的地址可与每个核208或其它逻辑块(并且因此在核与路由器之间存在1:1映射的情况下与路由器204)相关联。继而,该本地地址可用于生成对每个路由器而言本地的方向信息,以标识用于发送信息的路由器的适当端口。因此,目的地地址可连同路由器204的本地地址一起用于确定向哪个方向转发传入分组。电路使能信号可用于确定传入分组是否正在保留电路交换路径。如果电路使能信号未被断言,则没有电路交换路径被建立,并且分组仅携带边带分组数据。

在保留分组304到达目的地逻辑312之后,电路交换确认信号320被从目的地逻辑312发送到源逻辑308。虽然未示出,但是在一些实施例(诸如利用队列槽来存储与保留请求相关联的信息的那些实施例)中,也可在从目的地逻辑312向源逻辑308发送确认信号320的同时从源逻辑308向目的地逻辑312发送确认信号。确认信号320证实由保留请求304保留的电路交换路径的配置。确认信号320在耦合到目的地逻辑312的路由器(路由器n)处、并且然后再次在耦合到源逻辑308的路由器(路由器0)处被翻转,但是以其它方式穿过网络的各种路由器而不被存储。如路由器1中所描绘的,确认信号320可穿过在路由器n和路由器0之间中的每个路由器处的多路复用逻辑328。基于响应于保留请求304生成的方向信息来配置在每个路由器处的多路复用逻辑328。多路复用逻辑328可动作以将路由器的输入端口耦合到路由器的正确输出端口,以允许确认信号320行进从目的地逻辑312到源逻辑308的正确路径。

确认信号320由电路时钟324钟控。为了提高数据吞吐量,可使用不同的时钟来同步网络的分组交换和电路交换部分。分组交换请求可在分组时钟316的每个周期内在邻近路由器之间行进,而电路交换数据可在电路时钟324的单个周期中跨整个网络行进。相应地,网络的分组交换部分可用比网络的电路交换部分高的频率时钟操作。在特定实施例中,分组时钟316以2ghz的频率操作,而电路时钟324以500mhz的频率操作,但是任何合适的频率可用于这些时钟。

在确认信号320由源逻辑308接收之后,电路交换数据332被从源逻辑308发送到目的地逻辑312。数据332在耦合到源逻辑308的路由器(路由器0)处、并且然后再次在耦合到目的地逻辑312的路由器(路由器n)处被翻转,但是以其它方式穿过网络的各种路由器而不被存储。如路由器1中所描绘的,数据332可穿过在路由器0和路由器n之间中的每个路由器处的多路复用逻辑336。基于响应于保留请求304生成的方向信息来配置在每个路由器处的多路复用逻辑336。多路复用逻辑336可动作以将路由器的输入端口耦合到路由器的正确输出端口,以允许数据332行进从源逻辑308到目的地逻辑312的正确路径。数据332的传输由电路时钟324钟控。

在各种实施例中,电路交换数据传输可正与针对一个或多个未来传输的确认的交流同时发生和/或与针对要配置的电路交换路径的一个或多个分组交换请求的交流同时发生。相应地,参与电路交换交流的路由器可通过确定和存储用于未来数据传输的路由方向而为未来电路交换路径配置作准备。

图3b图示了根据某些实施例的用于同步混合分组/电路交换noc的具有流水线化电路交换控制和数据信道的示例系统350。在所描绘的实施例中,在路由器n处的电路交换信道的中间插入流水线级。如在非流水线化系统中,分组交换请求304从源逻辑308传播到目的地逻辑312,沿着路径保留电路交换信道。然而,在流水线化实施例中,请求分组一经过该点,电路交换确认信号320a就从中间的流水线边界向后传播到源逻辑308。确认信号可(例如经由触发器340)存储在路由器n处,并且然后再次存储在路由器0处,同时穿过任何其它中间路由器的多路复用逻辑328而不被存储。虽然未示出,但是在一些实施例(诸如利用队列槽来存储与保留请求相关联的信息的那些实施例)中,也可在从流水线级向源逻辑308发送确认信号320a的同时从源逻辑308向流水线级(例如路由器n)发送确认信号。当确认信号320a已经到达源逻辑308时,电路交换数据信号332a可被传输到中间流水线级(一旦用于源逻辑308与流水线级之间的电路交换信道的资源是可用的),其中它被存储在一组触发器348中,同时等要要接收的附加电路交换确认信号320b。当请求分组304到达目的地逻辑312时,附加确认信号320b从目的地逻辑312向后传播到流水线级,其中来自路由器n+1的多路复用逻辑344的控制信号使得触发器组348提供一旦电路交换信道资源可用就要沿着路径的第二半传输到目的地逻辑312的电路交换数据信号332b(其具有与332a相同的内容,但是在时间上稍后被发送)。虽然未示出,但是在一些实施例(诸如利用队列槽来存储与保留请求相关联的信息的那些实施例)中,也可在发送确认信号320b的同时从流水线级向目的地逻辑312发送确认信号。然而,如果流水线级还没有接收到电路交换数据332a,则从流水线级发送的确认可被推迟,直到数据332a在流水线级处被接收。在这样的实施例中,电路时钟324周期可能缩短到原始的一半,提高了网络吞吐量。虽然描绘的实施例示出了单个流水线级,但是任何合适数目的流水线级可用在noc中,并且可被放在任何合适的位置。

图4a图示了根据某些实施例的用于源同步混合分组/电路交换noc的示例系统400中的示例通信。在源同步noc中,连同数据一起转发的控制信号转变充当时钟信号,因此消除对完全同步时钟的需要。例如,在实施例中,实现两个前向控制信号(流信号和尾信号),两者都指定数据传送。流信号指示电路数据与(作为附加段的)随后的更多数据的传送,并且因此为(一个或多个段的)完整的电路数据传送保持电路信道打开,并且尾信号指示电路数据传送的结束。通过在每个路由器处去除对同步fifo的需要,源同步技术促进多时钟设计(其中与不同的路由器相关联的核可以不同的频率操作)。

在实施例中,通信包括交流分组交换保留请求404以配置电路交换路径。源逻辑408(例如,核208)可将保留请求发送到目的地逻辑412(例如,不同的核208)。保留请求404可能在其去目的地的途中经过n+1个路由器,并且保留请求404在每个路由器处被翻转。保留分组404可经由noc的分组交换部分来传送,并且可随着保留分组从源行进到目的地而保留用于源逻辑408与目的地逻辑412之间的数据通信的资源。

保留分组404可包括促进电路交换信道的保留的任何合适的信息。作为示例,保留分组可包括与目的地逻辑412相关联的地址以及可选的边带分组数据。当资源可用时,基于目的地地址向下游转发保留分组。例如,基于由给定路由器中的方向解码器执行的确定性路由方法(例如,x-第一、y第二路由或表查找)或其它路由协议,沿着从源逻辑408到目的地逻辑412的路径上转发保留分组。在实施例中,唯一的地址可与每个核208或其它逻辑块(并且因此在核与路由器之间存在1:1映射的情况下与路由器204)相关联。继而,该本地地址可用于生成对每个路由器而言本地的方向信息,以标识用于发送信息的路由器的适当端口。因此,目的地地址可连同路由器204的本地地址一起用于确定向哪个方向转发传入分组。电路使能信号可用于确定传入分组是否保留电路交换路径。如果电路使能信号未被断言,则没有电路交换路径被建立,并且分组仅携带边带分组数据。

在保留分组404到达目的地逻辑412之后,电路交换数据432被从源逻辑408发送到目的地逻辑412。在一些实施例中,电路交换数据的传送可在保留请求到达流水线级之前开始,但是电路交换信道仅被配置直到已经处理分组交换请求的最后一个路由器。因此,直到在分组交换请求已经到达流水线级之后,将才在流水线级处接收电路交换数据。数据432在源逻辑408处、并且然后再次在目的地逻辑412处被翻转,但是穿过网络的各种路由器而不被存储。如路由器0中所描绘的,数据432可穿过每个路由器处的多路复用逻辑436。基于响应于保留请求404生成的方向信息来配置在每个路由器处的多路复用逻辑436。多路复用逻辑436可动作以将路由器的输入端口耦合到路由器的正确输出端口,以允许数据432行进从源逻辑408到目的地逻辑412的正确路径。

在电路交换数据432到达目的地逻辑412之后,电路交换确认信号420被从目的地逻辑412发送到源逻辑408。确认信号420证实电路交换数据的段的接收。在一些实施例中,可发送两个不同的确认信号(一个响应于流信号,并且一个响应于尾信号),其中尾确认信号指示数据传送的结束。确认信号420在目的地逻辑412处、并且然后再次在源逻辑408处被翻转,但是穿过网络的各种路由器而不被存储。如路由器0中所描绘的,确认信号420可穿过每个路由器处的多路复用逻辑428。基于响应于保留请求404生成的方向信息来配置在每个路由器处的多路复用逻辑428。多路复用逻辑428可动作以将路由器的输入端口耦合到路由器的正确输出端口,以允许确认信号420行进从目的地逻辑412到源逻辑408的正确路径。在最终确认信号420从目的地逻辑412向源逻辑408行进时,其随着其穿过每个路由器而拆除电路交换信道。

在各种实施例中,系统400中的电路交换数据传输可与针对要配置的电路交换路径的一个或多个分组交换请求的交流同时发生。相应地,参与电路交换交流的路由器可通过为未来数据传输确定和存储路由方向而为未来电路交换路径配置作准备。

图4b图示了根据某些实施例的用于源同步混合分组/电路交换noc的具有流水线化电路交换控制和数据信道的示例系统450。在所描绘的实施例中,在路由器n处的电路交换信道的中间插入流水线级。如在非流水线化系统中,分组交换请求304从源逻辑308传播到目的地逻辑312,沿着路径保留电路交换信道。然而,在流水线化实施例中,如果资源可用于在源逻辑308与流水线边界之间形成电路交换信道,则电路交换数据432a可在请求分组经过流水线边界之后开始源逻辑308到(在路由器n处的)中间的流水线边界之间传播。在一些情况下,电路交换数据432a的传送可能被利用传送数据432a所需的资源的一个或多个其它电路交换数据传送延迟,在该情况下,一旦其它传送完成,就将传送电路交换数据432a。数据432a穿过在直到路由器n的每个路由器处的多路复用逻辑436而不被存储,并且然后(例如经由触发器448)存储在路由器n处。当在路由器n处接收数据432a时,它触发将电路交换确认信号420a从路由器n的触发器440发送到源逻辑408。如果电路交换确认信号420a是尾确认信号,则随着它朝着源传播,它可拆除路由器n与源逻辑408之间的电路交换信道。否则,确认信号420a可触发将流中的下一个电路交换数据从源逻辑408发送到路由器n。

数据432a被保持在路由器n处,直到请求分组404到达目的地逻辑412。在请求分组到达目的地逻辑412之后(一旦用于源逻辑308与流水线级之间的电路交换信道的资源可用),在(路由器n处的)中间的流水线边界到目的地逻辑412之间传播电路交换数据432b(其具有与432a相同的内容,但是在时间上稍后被发送)。数据432b穿过路由器n与目的地逻辑之间的每个路由器处的多路复用逻辑436而不被存储,直到其在目的地逻辑412处被翻转。在目的地逻辑412处接收数据432b之后,电路交换确认信号420b被从目的地逻辑412的触发器发送到路由器n处的流水线边界。如果电路交换确认信号420b是尾确认信号,则随着它朝着路由器n传播,它可拆除目的地逻辑412与路由器n之间的电路交换信道。否则,确认信号420a可触发将流中的下一个电路交换数据从路由器n发送到目的地逻辑412。该特定实施例针对仅在流水线路由器n中的触发器的低功耗开销而加倍信道的吞吐量。虽然描绘的实施例示出单个流水线级,但是任何合适数目的流水线级可用在noc中,并且可被放在任何合适的位置。

图5a图示了根据某些实施例的noc中的流水线级的示例配置。在所描绘的实施例中,包括一个或多个流水线化级(即,保持电路交换数据和控制信号的存储元件)的路由器用黑色来描绘,而没有流水线化级的路由器用白色来描绘。路由器可包括每个与路由器的端口相关联的一个或多个流水线级。例如,路由器可包括在路由器的一个端口处的或者以其它方式与路由器的一个端口相关联的流水线级,在路由器的另一个端口处的或者以其它方式与路由器的另一个端口相关联的另一个流水线级,等等。在实施例中,具有流水线化级的路由器尽可能近地位于系统的水平中心和垂直中心。在特定实施例中,水平运行的流水线化路由器可流水线化输送通过路由器向北和/或向南行进的电路交换数据,但是不流水线化输送通过路由器向东或向西运行的数据(以便避免流水线化输送多次跨线运行的数据)。类似地,垂直运行的流水线化路由器可流水线化输送通过路由器向东和/或向西运行的电路交换数据,但不流水线化输送通过路由器向北或向南运行的数据。在所描绘的实施例中,水平运行的顶行的流水线化路由器可每个在路由器的南输出端口中包括流水线级,而水平运行的底行的流水线化路由器可每个在路由器的北输出端口中包括流水线级。以类似的方式,垂直运行的左列的流水线化路由器可每个在路由器的东输出端口中包括流水线级,而垂直运行的右列的流水线化路由器可每个在路由器的西输出端口中包括流水线级。使用与图5a中所示出的类似的技术,通过在8x8边界处使用电路交换流水线化,大型16x16noc可以被划分成四个8x8等效的noc。在特定实施例中,流水线级可被放在边界处的路由器之间而不是路由器内。

图5b图示了根据某些实施例的noc中的流水线级的另一个示例配置。在所示出的实施例中,流水线化路由器被放在跨noc的对角线中,其中对角线由三个路由器分离。在其它实施例中,对角线之间的距离可以是任何其它合适的数目的路由器。这样的实施例确保电路交换数据在被流水线化输送之前不比特定数目的跳行进得多(在该情况下,数据可在被流水线化输送之前最大行进四跳)。在该实施例中,路由器可流水线化输送通过路由器在任何方向上行进的数据。

图5a和5b仅是noc中的流水线级的配置的示例。其它实施例可包括位于noc的任何合适位置处的流水线级。在各种实施例中,流水线级的位置是静态的。在其它实施例中,流水线级的位置可以是动态的。例如,位于遍及noc(例如在每个路由器、每个其它路由器等中)的流水线级可具有可以打开或关闭流水线级(如果流水线级关闭,则数据可穿过路由器而不被存储)的控制逻辑。在一些实施例中,noc可包括用以确定流水线级的最佳布置的逻辑,并且可与用于各种流水线级的控制逻辑通信,以选择性地打开或关闭特定流水线级以实现最佳配置。在特定实施例中,保留分组可包括关于与保留相关联的电路交换数据的流水线化输送应当发生在何处的信息。例如,保留分组可指示电路交换数据在其应当被流水线化输送之前可行进多少跳,或者保留分组可指示应当在其处流水线化输送电路交换数据的特定路由器。作为另一个示例,保留分组可包括由noc的逻辑选择的路径,该路径确保至少一个静态或动态流水线级被遍历。

图6图示了根据某些实施例的用于在流水线化同步混合分组/电路交换noc中通信的示例方法600。在步骤602处,将分组交换保留请求从源逻辑转发到流水线级。保留请求可在其从源到目的地的途中穿过任何合适的数目的路由器,并且可在每个路由器处被翻转。在保留请求到达流水线级之后,在步骤604处,将指示信道准备用于电路交换数据的电路交换确认信号从流水线级发送到源逻辑。同时,在步骤610处,保留请求继续朝着目的地逻辑。

在步骤606处,在接收确认信号之后,源逻辑将电路交换数据发送到流水线级。在步骤608处,将电路交换数据存储在流水线级处,并且流水线级等待确认信号。在步骤612处,从目的地向流水线级发送电路交换确认。然后在步骤614处将电路交换数据从流水线级发送到目的地逻辑。

方法600可用于在任何数目的流水线级之间传送电路交换数据。例如,如果流水线级是第一流水线级,并且目的地用第二流水线级替换,则方法将相同。保留分组将传播直到第一流水线级,确认将被向后发送到源,并且数据将被发送到第一流水线级并被存储。在保留请求被传播到第二流水线级之后,确认将被向后发送到第一流水线级,并且数据将被从第一流水线级发送到第二流水线级。可针对任何数目的流水线级重复该方法,直到最后一个流水线级将数据发送到目的地逻辑。

在适当情况下,可组合、修改或删除图6中图示的步骤中的一些,并且还可将附加步骤添加到流程图。另外,可以在不脱离特定实施例的范围的情况下以任何合适的顺序执行步骤。

图7图示了根据某些实施例的用于在流水线化源同步混合分组/电路交换noc中通信的示例方法700。在步骤702处,将分组交换保留请求从源逻辑转发到流水线级。保留请求可在其从源到目的地的途中穿过任何合适的数目的路由器,并且可在每个路由器处被翻转。在保留请求到达流水线级之后,在步骤704处将电路交换数据从源逻辑发送到流水线级。在一些实施例中,电路交换数据的传送可在保留请求到达流水线级之前开始,但是信道仅被配置直到已经处理分组交换请求的最后一个路由器。因此,直到分组交换请求已经到达流水线级之后才将在流水线级处接收电路交换数据。同时,在步骤710处,保留请求继续朝着目的地逻辑。

在步骤706处,电路交换数据存储在流水线级处,并且流水线级等待来自目的地逻辑的确认信号。在步骤708处,在接收数据之后,流水线级向源逻辑发送电路交换确认信号。在步骤712处,将电路交换确认信号从目的地逻辑发送到流水线级。然后在步骤714处将电路交换数据从流水线级发送到目的地逻辑。

方法700可用于通过任何合适数目的流水线级传送电路交换数据。例如,如果流水线级是第一流水线级并且目的地用第二流水线级替换,则方法将相同。保留分组将传播直到第一流水线级,数据将被从源发送到将存储它的第一流水线级,并且确认将被向后发送到源。在保留请求被传播到第二流水线级之后,数据将被从第一流水线级发送到第二流水线级并被存储,并且确认将被向后发送到第一流水线级。可针对任何数目的流水线级重复该方法,直到最后一个流水线级将数据发送到目的地逻辑。

在适当的情况下,可组合、修改或删除图7中图示的步骤中的一些,并且还可将附加步骤添加到流程图。另外,可以在不脱离特定实施例的范围的情况下以任何合适的顺序执行步骤。

图8图示了根据一个实施例的示例计算系统的框图的另一个实施例。在该图中,描绘了根据本公开的片上系统(soc)设计的实施例。作为特定的说明性示例,soc800被包括在用户装备(ue)中。在一个实施例中,ue指的是将由最终用户用于通信的任何设备,诸如手持电话、智能电话、平板电脑、超薄笔记本电脑、具有宽带适配器的笔记本电脑或者任何其它类似的通信设备。常常ue连接到基站或节点,该基站或节点事实上可能对应于gsm网络中的移动站(ms)。

这里,soc800包括2个核——806和807。类似于以上讨论,核806和807可符合指令集架构,诸如基于intel®architecturecore™的处理器、advancedmicrodevice公司(amd)处理器、基于mlps的处理器、基于arm的处理器设计,或其客户,以及它们的被许可者或采用者。核806和807耦合到与总线接口单元809和l2高速缓存810相关联的高速缓存控制808以与系统800的其它部分通信。互连810包括可能实现所描述的公开的一个或多个方面的片上互连,诸如iosf、amba或以上讨论的其它互连。

接口810提供通信信道给其它组件,诸如订户身份模块(sim)830以与sim卡对接,引导rom835以保持用于由核806和807执行以初始化和引导soc800的引导代码,sdram控制器840以与外部存储器(例如dram860)对接,闪存控制器845以与非易失性存储器(例如闪存865)对接,外围控制q1650(例如串行外设接口)以与外围设备对接,视频编解码器820和视频接口825以显示和接收输入(例如触摸使能的输入),gpu815以执行图形相关的计算等。这些接口中的任何可合并本文中描述的本公开的方面。

另外,该系统图示了用于通信的外围设备,诸如蓝牙模块870、3g调制解调器875、gps885和wifi885。注意:如以上所陈述的,ue包括用于通信的无线电设备。因此,不全部需要这些外围通信模块。然而,在ue中,将包括用于外部通信的某个形式的无线电设备。

设计可经历各种阶段,从创建到仿真到制造。表示设计的数据可以以许多方式来表示设计。首先,如在仿真中有用的,硬件可使用硬件描述语言(hdl)或另一个功能描述语言来表示。另外,可在设计过程的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在一些阶段达到表示硬件模型中的各种设备的物理放置的数据的级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是为用于产生集成电路的掩模指定在不同掩模层上存在或不存在各种特征的数据。在一些实现中,可以以诸如图形数据系统ii(gdsii)、开放的艺术品系统互换标准(oasis)或类似格式之类的数据库文件格式存储这样的数据。

在一些实现中,除了其它示例之外,基于软件的硬件模型以及hdl和其它功能描述语言对象还可以包括寄存器传送语言(rtl)文件。这样的对象可以是机器可解析的,使得设计工具可以接受hdl对象(或模型),针对所描述的硬件的属性解析hdl对象,并且从对象确定物理电路和/或片上布局。设计工具的输出可以用于制造物理器件。例如,除了将被实现以便实现hdl对象中建模的系统的其它属性之外,设计工具还可以从hdl对象确定各种硬件和/或固件元件的配置,诸如总线宽度、寄存器(包括大小和类型)、存储器块、物理链接路径、构造拓扑。设计工具可以包括用于确定片上系统(soc)和其它硬件设备的拓扑和构造配置的工具。在一些实例中,hdl对象可以用作用于开发模型和设计文件的基础,该模型和设计文件可以由制造装备以制造所描述的硬件使用。实际上,hdl对象本身可以被提供作为输入来制造系统软件以引起所描述的硬件。

在设计的任何表示中,数据可存储在任何形式的机器可读介质中。存储器或者诸如盘之类的磁或光贮存器可以是机器可读介质,以存储经由调制或以其它方式生成的光或电波传输的信息来传输这样的信息。当传输指示或携带代码或设计的电载波到执行电信号的复制、缓冲或重传的程度时,进行新的复制。因此,通信提供者或网络提供者可至少临时在有形的机器可读介质上存储体现本公开的实施例的技术的物品,诸如被编码到载波中的信息。

如本文中使用的模块指的是硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的诸如微控制器之类的硬件,以存储被适配成由微控制器执行的代码。因此,在一个实施例中,对模块的引用指的是硬件,该硬件被具体地配置成识别和/或执行将在非暂时性介质上保持的代码。此外,在另一个实施例中,模块的使用指的是包括代码的非暂时性介质,该代码被具体地适配成由微控制器执行以执行预定操作。并且如可以推断的,在又一个实施例中,术语模块(在该示例中)可指的是微控制器和非暂时性介质的组合。被图示为通常分离的模块边界常常变化并且可能重叠。例如,第一和第二模块可共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件,或者诸如可编程逻辑器件之类的其它硬件。

在一个实施例中,短语“以”或“被配置成”的使用指的是布置、放在一起、制造、提供以销售、引入和/或设计装置、硬件、逻辑或元件以执行指定的或确定的任务。在该示例中,不正在操作的装置或其元件仍然“被配置成”执行指定的任务,如果它被设计、耦合和/或互连以执行所述指定的任务的话。作为纯说明性示例,逻辑门在操作期间可提供0或1。但是“被配置成”向时钟提供使能信号的逻辑门不包括可提供1或者0的每个可能的逻辑门。相反,逻辑门是以某个方式耦合的门,该方式为在操作期间1或0输出将使能时钟。再一次注意:术语“被配置成”的使用不要求操作,而是相反集中于装置、硬件和/或元件的潜伏状态上,其中在潜伏状态中,装置、硬件和/或元件被设计成当装置、硬件和/或元件正在操作时执行特定任务。

此外,在一个实施例中,短语“能够/以”和或“可操作以”的使用指的是以这样的方式设计的一些装置、逻辑、硬件和/或元件,以使得能够以指定的方式使用装置、逻辑、硬件和/或元件。如以上注意的,在一个实施例中,以、能够以或可操作以的使用指的是装置、逻辑、硬件和/或元件的潜伏状态,其中装置、逻辑、硬件和/或元件不是正在操作,而是被以这样的方式设计以使得能够以指定的方式使用装置。

如本文中使用的值包括数、状态、逻辑状态或二进制逻辑状态的任何已知的表示。常常逻辑级、逻辑值(logicvalue)或逻辑值(logicalvalue)的使用也被称为仅表示二进制逻辑状态的1和0。例如,1指的是高逻辑电平,并且0指的是低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可能能够保持单个逻辑值或多个逻辑值。然而,已经在计算机系统中使用了值的其它表示。例如十进制数10也可被表示为二进制值1010和十六进制字母a。因此,值包括能够被保持在计算机系统中的信息的任何表示。

此外,状态可由值或值的部分表示。作为示例,诸如逻辑1之类的第一值可表示默认或初始状态,而诸如逻辑0之类的第二值可表示非默认状态。另外,在一个实施例中,术语复位和设置分别指的是默认和更新的值或状态。例如,默认值可能包括高的合乎逻辑的值,即复位,而更新的值可能包括低的合乎逻辑的值,即设置。注意:值的任何组合可用于表示任何数目的状态。

以上阐述的方法、硬件、软件、固件或代码的实施例可经由存储在由处理元件可执行的机器可访问、机器可读、计算机可访问或计算机可读介质上的指令或代码来实现。非暂时性机器可访问/可读介质包括提供(即,存储和/或传输)以由诸如计算机或电子系统之类的机器可读的形式的信息的任何机构。例如,非暂时性机器可访问介质包括随机存取存储器(ram),诸如静态ram(sram)或动态ram(dram);rom;磁或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;用于保持从暂时性(传播的)信号(例如载波、红外信号、数字信号)接收的信息的其它形式的存储设备;等等,它们将与可从其接收信息的非暂时性介质区分开。

用于程序逻辑以执行本公开的实施例的指令可被存储在系统中的诸如dram、高速缓存、闪存或其它贮存器之类的存储器内。此外,指令可以经由网络或借助于其它计算机可读介质来分发。因此,机器可读介质可包括用于存储或传输以由机器(例如,计算机)可读的形式的信息的任何机构,但不限于软盘、光盘、压缩盘、只读存储器(cd-rom)和磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁或光卡、闪存或者在通过因特网、经由电、光、声学或其它形式的传播信号(例如载波、红外信号、数字信号等)的信息传输中使用的有形的机器可读贮存器。相应地,计算机可读介质包括适于存储或传输以由机器(例如,计算机)可读的形式的电子指令或信息的任何类型的有形的机器可读介质。

一个或多个实施例可提供装置、系统、机器可读贮存器、机器可读介质、基于硬件和/或软件的逻辑(例如,路由器)、方法和非暂时性机器可读介质(包括表示结构的信息,该结构在被制造时将被配置)以接收来自片上网络的另一个路由器的分组交换请求,该分组交换请求将在源逻辑处被生成,该分组交换请求标识目的地逻辑;通过第一电路交换信道接收与分组交换请求相关联的电路交换数据;存储与分组交换请求相关联的电路交换数据;以及朝着在分组交换请求中标识的目的地逻辑发送存储的电路交换数据。

在至少一个示例中,装置是处理器。

在至少一个示例中,路由器将向源逻辑发送电路交换确认信号。

在至少一个示例中,源逻辑接收到电路交换确认信号将触发电路交换数据到路由器的传输。

在至少一个示例中,电路交换确认信号将在路由器接收到电路交换数据之后被发送。

在至少一个示例中,路由器将使电路交换数据存储在一组触发器中。

在至少一个示例中,路由器将在分组交换请求到达目的地逻辑之后将存储的电路交换数据发送到目的地逻辑。

在至少一个示例中,路由器将在分组交换请求到达片上网络的第二路由器之后将存储的电路交换数据发送到第二路由器以存储在第二路由器处。

在至少一个示例中,路由器将被选择性地配置成存储电路交换数据或者朝着目的地逻辑转发电路交换数据而不存储电路交换数据。

一个或多个实施例可以提供装置、系统、机器可读贮存器、机器可读介质、基于硬件和/或软件的逻辑(例如,路由器)、方法和非暂时性机器可读介质(包括表示结构的信息,该结构在被制造时将被配置)以包括输入端口,用以接收来自片上网络的第一路由器的分组交换请求,该分组交换请求将由片上网络的源逻辑生成,并且接收与分组交换请求相关联的电路交换数据;存储元件,用以存储电路交换数据;以及输出端口,用以朝着在分组交换请求中标识的目的地逻辑发送电路交换数据。

在至少一个示例中,输入端口将通过在源逻辑与装置之间形成的电路交换信道来接收电路交换数据。

在至少一个示例中,输出端口将通过在装置与目的地逻辑之间形成的电路交换信道来发送电路交换数据。

在至少一个示例中,输出端口将接收与电路交换数据相关联的电路交换确认信号,该电路交换确认信号将通过在装置与目的地逻辑之间形成的电路交换信道来接收。

在至少一个示例中,将通过在装置与第二路由器之间形成的电路交换信道来将电路交换数据发送到片上网络的第二路由器,其中电路交换数据将由第二路由器存储。

一个或多个实施例可以提供装置、系统、机器可读贮存器、机器可读介质、基于硬件和/或软件的逻辑(例如,路由器)、方法和非暂时性机器可读介质(包括表示结构的信息,该结构在被制造时将被配置)以在片上网络的第一路由器处接收来自片上网络的第二路由器的分组交换请求,该分组交换请求将由片上网络的源逻辑生成;在第一路由器处存储电路交换数据;以及将电路交换数据从第一路由器朝着在分组交换请求中标识的目的地逻辑发送。

在至少一个示例中,电路交换数据将通过在源逻辑与第一路由器之间形成的电路交换信道来接收。

在至少一个示例中,电路交换数据将通过在第一路由器与目的地逻辑之间形成的电路交换信道来发送。

在至少一个示例中,通过在装置与目的地逻辑之间形成的电路交换信道来接收与电路交换数据相关联的电路交换确认信号。

在至少一个示例中,朝着目的地逻辑发送电路交换数据包括通过在第一路由器与第二路由器之间形成的电路交换信道将电路交换数据发送到片上网络的第二路由器,其中电路交换数据将由第二路由器存储。

在至少一个示例中,第一路由器将存储电路交换数据或者朝着目的地逻辑转发电路交换数据而不存储电路交换数据。

一个或多个实施例可以提供装置、系统、机器可读贮存器、机器可读介质、基于硬件和/或软件的逻辑(例如,路由器)、方法和非暂时性机器可读介质(包括表示结构的信息,该结构在被制造时将被配置)以包括多个核;与所述多个核相关联的多个路由器,所述多个路由器实现片上网络。路由器将接收来自片上网络的另一个路由器的分组交换请求,该分组交换请求将在所述多个核中的源核处被生成,该分组交换请求标识多个核中的目的地核;通过第一电路交换信道接收与分组交换请求相关联的电路交换数据;存储与分组交换请求相关联的电路交换数据;以及朝着在分组交换请求中标识的目的地核发送存储的电路交换数据。

贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,短语“在一个实施例中”或“在实施例中”贯穿本说明书在各种地方中的出现不一定都指的是相同实施例。此外,在一个或多个实施例中,可以以任何合适的方式组合特定特征、结构或特性。

在前述说明书中,已经参考特定示例性实施例给出了详细描述。然而,将明显的是:可在不脱离如在所附权利要求中阐述的本公开的更宽广的精神和范围的情况下对其进行各种修改和改变。相应地,在说明性意义而不是限制性意义上看待说明书和附图。此外,实施例和其它示例性语言的前述使用不一定指的是相同的实施例或相同的示例,而是可能指的是不同的和有区别的实施例并且可能指的是相同的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1