CN107078971B - 组合保证吞吐量和尽力而为的片上网络 - Google Patents
组合保证吞吐量和尽力而为的片上网络 Download PDFInfo
- Publication number
- CN107078971B CN107078971B CN201580063626.XA CN201580063626A CN107078971B CN 107078971 B CN107078971 B CN 107078971B CN 201580063626 A CN201580063626 A CN 201580063626A CN 107078971 B CN107078971 B CN 107078971B
- Authority
- CN
- China
- Prior art keywords
- packet
- reservation request
- switched
- router
- queue slot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6402—Hybrid switching fabrics
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Environmental & Geological Engineering (AREA)
Abstract
接收第一分组交换预留请求。根据尽力而为通信方案将与第一分组交换预留请求关联的数据通过第一电路交换信道传递。接收第二分组交换预留请求。根据保证吞吐量通信方案将与第二分组交换预留请求关联的数据通过第二电路交换信道传递。
Description
相关申请的交叉参考
此申请要求2014年12月22日提交的题为“COMBINED GUARANTEED THROUGHPUT ANDBEST EFFORT NETWORK-ON-CHIP(组合保证吞吐量和尽力而为的片上网络)”的美国非临时专利申请第14/579,303号的优先权和利益,该申请通过参考以其全部内容结合于本文中。
政府利益声明
此发明在由美国能源部授予的合同号B600738下在美国政府支持下进行。美国政府在此发明中具有某些权利。
技术领域
本公开一般涉及计算机开发领域,并且更确切地说,涉及组合保证吞吐量和尽力而为的片上网络(NoC)。
背景技术
用于核之间管芯上通信的片上网络(NoC),在随着多核处理器中核以及知识产权(IP)块的数量增大时实现可缩放性能方面,是重要的。在此类实例中,组件之间的通信变成关键能力和性能限制因素。NoC允许有效共享片上连线资源,以便与路由器通信来控制和仲裁通信组件之间的数据流。混合分组/电路交换的NoC允许具有接近电路交换数据传播的能量效率的分组交换的利用和高吞吐量。
片上互连是在NoC上运行的应用的关键性能和能力限制因素。许多应用,诸如媒体流播和在线游戏,都要求对等待时间和保证最小吞吐量限制以实现高服务质量。NoC应该传达具有低面积和能量开销的这些性能要求。
附图说明
图1例证了按照某些实施例的包含多核处理器的示例计算系统的框图。
图2例证了按照某些实施例的包括包含多个路由器的片上网络(NoC)系统的处理器的框图。
图3例证了按照某些实施例的同步混合分组/电路交换NoC的示例系统中的示例通信。
图4例证了按照某些实施例的例证使用顺序地址解码和分组仲裁的路由器的示例输入(IN(入))端口和输出(OUT(出))端口的框图。
图5例证了按照某些实施例的执行组合的保证吞吐量和尽力而为数据发送的NoC路由器的OUT端口的示例部分。
图6例证了按照某些实施例的执行组合的保证吞吐量和尽力而为数据发送的NoC路由器的OUT端口的另一示例部分。
图7例证了按照某些实施例的用于执行组合的保证吞吐量和尽力而为数据发送的示例方法。
图8例证了按照某些实施例用于执行组合的保证吞吐量和尽力而为NoC中的动态槽重新分配的示例通信流程。
图9例证了按照某些实施例的用于执行组合的保证吞吐量和尽力而为NoC中动态槽重新分配的示例方法。
图10例证了按照某些实施例的用于示例计算系统的另一框图。
各种附图中的相似附图标记和命名指示相似元件。
具体实施方式
在如下描述中,阐述了众多特定细节,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线阶段和操作等的示例,以便提供本公开的透彻理解。然而,对于本领域技术人员将明显的是,不需要采用这些特定细节来实施本公开。在其它实例中,未详细描述众所周知的组件和方法,诸如特定和备选处理器架构、用于所描述算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、使用代码的算法的特定表述、特定掉电和门控技术/逻辑以及计算机系统的其它特定操作细节,以便避免不必要地使本公开模糊不清。
尽管可参考特定集成电路中的能量节约和能量效率描述如下实施例,诸如在计算平台或微处理器中,但其它实施例可应用于其它类型集成电路和逻辑器件。本文描述的实施例的类似技术和教导可应用于其它类型的电路或半导体器件,它们也可受益于更好的能量效率和能量节约。例如,所公开的实施例不限于台式计算机系统或UltrabooksTM,但还可用在其它装置中,诸如服务器计算机系统、手持装置、平板电脑、其它薄笔记本、片上系统(SOC)装置、以及嵌入式应用。手持装置的一些示例包含蜂窝电话、因特网协议装置、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用通常包含微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可执行下面教导的功能和操作的任何其它系统。而且,本文描述的设备、方法和系统不限于物理计算装置,而是可涉及用于节能和效率的软件优化。如在以下描述中将变得容易明白的,本文描述的方法、设备和系统的实施例(不管是关于硬件、固件、软件还是它们的组合)对将来与性能考虑平衡的“绿色技术”都是至关重要的。
随着计算系统进步,本文的组件变得更复杂了。结果,在组件之间通信和耦合的互连架构在复杂性上也增加了,以确保满足用于最优组件操作的带宽要求。更进一步,不同市场分割要求互连架构的不同方面,以适合市场的需要。例如,服务器要求更高性能,而移动生态系统有时能够为了节能而牺牲总体性能。然而,大多数构造的突出目的是提供具有最大节能的最高可能性能。下面,论述若干互连,其将潜在地受益于本文描述的公开的各方面。
参考图1,描绘了包含多核处理器的计算系统的框图的实施例。处理器100包含任何处理器或处理装置,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或执行代码的其它装置。在一个实施例中,处理器100包含至少两个核,即核101和核102,它们可包含不对称核或对称核(所例证的实施例)。然而,处理器100可包含任何数量的处理元件,它们可以是对称的或不对称的。
在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的示例包含:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其它元件,其能够存有处理器的状态,诸如执行状态或架构状态。换言之,处理元件在一个实施例中指的是能够与代码(诸如软件线程、操作系统、应用或其它代码)独立关联的任何硬件。物理处理器(或处理器插槽)通常指的是集成电路,其潜在地包含任何数量的其它处理元件,诸如核或硬件线程。
核经常指的是位于集成电路上能够维持独立架构状态的逻辑,其中每个独立维持的架构状态都与至少一些专用执行资源关联。与核相比,硬件线程通常指的是位于集成电路上能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可看到的,当某些资源被共享并且其它资源专用于架构状态时,核与硬件线程的命名之间的线交叠。不过,核和硬件线程被操作系统视为单独逻辑处理器,其中操作系统能够在每个逻辑处理器上单独调度操作。
如图1所例证的,物理处理器100包含两个核,即核101和102。在此,核101和102被视为对称核,即,具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核101包含无序处理器核,而核102包含有序处理器核。然而,核101和102可单独选自任何类型核,诸如原生核、软件管理核、适合于执行原生指令集架构(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中的重新排序缓冲器、I-TLB 120、加载/存储缓冲器、以及队列。其它资源,诸如通用内部寄存器、页表基础寄存器、低级数据高速缓存、以及数据TLB、调度器/执行单元140和部分无序单元,潜在地完全共享。
处理器100经常包含其它资源,它们可被完全共享、通过分区共享或者由处理元件专用/专用于处理元件。在图1中,例证了具有处理器的例证性逻辑单元/资源的纯示范性处理器的实施例。要指出,处理器可包含或省略这些功能单元中的任何单元,以及包含未描绘的任何其它已知功能单元、逻辑或固件。如所例证的,核101包含简化的代表性无序(OOO)处理器核。但是在不同实施例中可利用有序处理器。OOO核包含预测要执行/采取的分支的分支目标缓冲器(BTB)120以及存储用于指令的地址翻译条目的指令翻译缓冲器(I-TLB)120。
核101进一步包含耦合到提取单元以解码提取的元素的解码器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)、即低级D高速缓存和D-TLB 150耦合到调度器/执行单元140。数据高速缓存要存储近来使用/操作的单元,诸如数据操作数,它们潜在地保持在存储器一致性状态中。D-TLB要存储近来对物理地址翻译的虚拟/线性。作为特定示例,处理器可包含页表结构以将物理存储器分成多个虚拟页。
在此,核101和102共享对较高级或更高级高速缓存(诸如与片上接口110关联的第二级高速缓存)的访问。要指出,较高级或更高级指的是增大或从执行单元得到进一步方式的高速缓存级。在一个实施例中,较高级高速缓存是最后一级数据高速缓存(处理器100上的存储器层级中的最后一个高速缓存),诸如第二级或第三级数据高速缓存。然而,较高级高速缓存不受如此限制,因为它可与指令高速缓存关联或包含指令高速缓存。迹高速缓存(一种类型的指令高速缓存),相反可耦合在解码器125后面以存储最近解码的迹。在此,指令潜在地指的是宏指令(即,由解码器识别的通用指令),其可被解码成若干微指令(微操作)。
在描绘的配置中,处理器100还包含片上接口110。历史上,在下面更详细描述的存储器控制器已经被包含在处理器100外部的计算系统中。在此情形下,片上接口110与处理器100外部的装置(诸如系统存储器175、芯片集(经常包含连接到存储器175的存储器控制器集线器以及连接外围装置的I/O控制器集线器)、存储器控制器集线器、北桥或其它集成电路)通信。并且在此情形下,总线105可包含任何已知互连,诸如多点总线、点对点互连、串行互连、并行总线、一致性(例如高速缓存一致性)总线、分层协议架构、差分总线和GTL总线。
存储器175可专用于处理器100,或与系统中的其它装置共享。存储器175的类型的公共示例包含DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知存储装置。要指出,装置180可包含图形加速器、耦合到存储器控制器集线器的卡或处理器、耦合到I/O控制器集线器的数据存储装置、无线收发器、闪存装置、音频控制器、网络控制器或其它已知装置。
然而,近来,当更多的逻辑和器件被集成在单个管芯(诸如SOC)上时,这些器件中的每个都可结合在处理器100上。例如,在一个实施例中,存储器控制器集线器在与处理器100相同的封装和/或管芯上。在此,核的部分(核上部分)包含用于与诸如存储器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之间使用分组交换网的资源传递分组。也就是,分组交换网可提供路由器(以及它们关联的核)之间的通信。分组可包含控制部分和数据部分。控制部分可包含分组的目的地地址,并且数据部分可含有在管芯上传递的特定数据。例如,控制部分可包含与管芯的网络元件或核之一对应的目的地地址。分组交换网可包含缓冲,因为专用路径不确信从源到目的地,并且因此,如果两个或更多分组需要穿过同一链路或互连,则分组可能需要暂时停止。作为示例,当分组从源行进到目的地时,可在每一个相应路由器处对分组进行缓冲(例如通过触发器)。分组可由路由器204接收、发送和处理。分组交换网可在相邻路由器之间使用点对点通信。分组的控制部分可在路由器之间基于具有任何适合的频率的分组时钟(诸如4GHz时钟)传送。分组的数据部分可在路由器之间基于类似时钟(诸如4GHz时钟)传送。
在一实施例中,处理器200的路由器可以用各种方式提供在两个网络(诸如分组交换网和电路交换网)中,或者与两个网络通信。此类通信方法可以称为混合分组/电路交换网。在此类实施例中,可在各种路由器204之间使用分组交换网和电路交换网的资源以各种方式传递分组。为了发送单个数据分组,电路交换网可分配整个路径,而分组交换网可仅分配单段(或互连)。在一些实施例中,可利用分组交换网预留用于路由器204之间数据发送的电路交换网的资源。
路由器204可包含多个端口集,其以各种方式耦合到毗邻网络元件202并与之通信。例如,电路交换和分组交换信号可通过这些端口集通信。路由器204的端口集例如可根据毗邻网络元件的方向和/或与此类元件的业务互换的方向进行逻辑划分。例如,路由器204可包含北端口集,其输入("IN")和输出("OUT")端口配置成(分别)从位于相对于路由器204“北”方向的网络元件202接收通信,并向其发送通信。附加地或备选地,路由器204可包含类似端口集,以与位于南、西、东或其它方向的网络元件对接。在描绘的实施例中,路由器204配置用于X第一、Y第二路由,其中数据首先在东/西方向移动,并且然后在南/北方向移动。在其它实施例中,可以使用任何适合的路由方案。
在各种实施例中,路由器204进一步包括另一端口集,其包括配置成(分别)从网络的另一代理接收通信并向其发送通信的输入端口和输出端口。在描绘的实施例中,这个端口集被显示在路由器204的中心。在一个实施例中,这些端口用于与和路由器204邻近、通信或以其它方式关联的逻辑(诸如“逻辑”核208的处理器逻辑)通信。本文中,这个端口集将被称为“核端口集”,尽管在一些实现中它可与不同于核的逻辑对接。在另一实施例中,这个端口集用于与在高于路由器204的网络层级的下一级中的网络元件通信。在一个实施例中,东和西方向链路在一个金属层上,北和南方向链路在第二金属层上,并且核链路在第三金属层上。在一实施例中,路由器204包含交叉开关和仲裁逻辑以提供端口间通信的路径,诸如图2所示。每个网络元件中的逻辑(诸如核208)可具有唯一时钟和/或电压,或者可与NoC的一个或多个其它组件共享时钟和/或电压。
图3例证了按照某些实施例的同步混合分组/电路交换NoC的示例系统300中的示例通信。同步NoC可利用显式时钟和级敏感控制信号。同步分组交换NoC可包括基于全局时钟与它们的邻居通信的路由器。从而,同步NoC中的所有路由器都操作在同一频率。所描绘的通信可在处理器(诸如处理器200)的NoC中执行。所描绘的每个路由器可具有本文相对于路由器204描述的任何适合的特性。
在一实施例中,通信包含调换分组交换预留请求、即分组交换请求304以配置电路交换通路。源逻辑308(例如核208)可将预留请求发送到目的地逻辑312(例如不同核208)。预留请求可在其到目的地的路上穿过n+1个路由器,并且预留请求在每个路由器处翻转。预留请求可在路由器之间基于分组时钟316(诸如2GHz时钟或4GHz时钟)传送。请求分组可经由NoC的分组交换部分传递,并且当请求分组从源行进到目的地时,可预留用于源逻辑308与目的地逻辑312之间的数据通信的资源。请求分组可包含促进电路交换信道预留的任何适合的信息。作为示例,请求分组可包含与目的地逻辑关联的地址。当资源可用时,基于目的地地址向下游转发请求分组。例如,基于确定性路由方法(例如X第一、Y第二路由或查找表)或方向解码器在给定路由器中执行的其它路由协议,请求分组沿从源逻辑308到目的地逻辑312的路径转发。在一实施例中,唯一地址可与每个核208或其它逻辑块(在核与路由器之间存在1:1映射的情况下从而还有路由器204)关联。反过来,可使用这个局部地址生成对每个路由器局部的方向信息,以标识用于发送信息的路由器的适当端口。从而,可使用目的地地址连同路由器204的局部地址来确定向哪个方向转发入局分组。
在请求分组到达目的地逻辑312之后,电路交换确认信号、即电路交换确认320从目的地逻辑312发送到源逻辑308。尽管未示出,但在各种实施例(诸如利用队列槽存储与预留请求关联的信息的实施例)中,确认信号也可从源逻辑308发送到目的地逻辑312,同时确认信号从目的地逻辑312发送到源逻辑308。确认信号证实由预留请求预留的电路交换路径的配置。在各种实施例中,当每个路由器从源和目的地都接收到确认信号时,那个路由器知道该路径准备好了电路交换数据发送。确认信号在耦合到目的地逻辑312的路由器(路由器n)处翻转,并且然后在耦合到源逻辑308的路由器(路由器0)处再次翻转,但以别的方式通过网络的各种路由器,无需被存储。如在路由器1中所描绘的,确认信号可通过在路由器n与路由器0之间的每个路由器处的多路复用逻辑328。在每个路由器处的多路复用逻辑328基于响应于预留请求生成的方向信息配置。多路复用逻辑328可用于将路由器的输入端口耦合到路由器的正确输出端口,以允许确认信号穿过从目的地逻辑312到源逻辑308的正确路径。
确认信号由电路时钟324进行时钟控制。为了改进数据吞吐量,可使用不同时钟来同步网络的分组交换和电路交换部分。分组交换请求可在分组时钟316的每个循环中在相邻路由器之间行进,而电路交换数据可在电路时钟324的单个循环中跨整个网络传输。因而,网络的分组交换部分可用比网络的电路交换部分更高的频率时钟操作。在具体实施例中,分组时钟316操作在2GHz频率,而电路时钟324操作在500MHz频率,不过对于这些时钟可使用任何适合的频率。例如,在另一实施例中,分组时钟316操作在4GHz频率,而电路时钟324操作在1GHz频率。
在源逻辑308接收到确认信号之后,电路交换数据、即电路交换数据发送332从源逻辑308发送到目的地逻辑312。数据在耦合到源逻辑308的路由器(路由器0)处翻转,并且然后在耦合到目的地逻辑312的路由器(路由器n)处再次翻转,但以别的方式通过网络的各种路由器,无需被存储。如在路由器1中所描绘的,数据可通过在路由器0与路由器n之间的每个路由器处的多路复用逻辑336。在每个路由器处的多路复用逻辑336基于响应于预留请求生成的方向信息配置。多路复用逻辑336可用于将路由器的输入端口耦合到路由器的正确输出端口,以允许数据穿过从源逻辑308到目的地逻辑312的正确路径。数据的发送由电路时钟324进行时钟控制。
在各种实施例中,电路交换数据发送可与一个或多个将来发送的确认的调换同时发生,和/或与要配置的电路交换路径的一个或多个分组交换请求的调换同时发生。因而,参与电路交换调换的路由器可通过确定并存储用于将来数据发送的路由方向来准备将来电路交换路径配置。
图4例证了按照某些实施例的例证使用顺序地址解码和分组仲裁的路由器204A的示例IN端口410和OUT端口450的框图。路由器204A可具有上面相对于路由器204描述的任何适合的特性。尽管仅描绘了单个IN端口和单个OUT端口,但路由器204A可具有任何适合数量的端口集。在下面的描述中,将假定路由器204A具有5个端口集(包含核的一个端口集)。
在一实施例中,路由器204A包含包括接收发送到路由器204A的分组交换通信的部分的IN端口410以及包括发送自路由器204A的分组交换信息的部分的OUT端口450。IN端口410和OUT端口450可进一步包括调换电路交换信息的相应其它部分(未示出)。例如,端口的电路交换路由部分可包含配置相应电路交换路径的至少一部分的配置逻辑。在各种实施例中,此类配置在路由器204A接收沿该电路交换路径传递的数据之前执行。
IN端口410除了别的可能组件之外可包含促进分组路由的各种组件,诸如触发器412、锁存器414集、多路分解器逻辑420、方向逻辑425以及或门430。IN端口410经由输入端405从核或另一路由器接收请求分组。分组可包含任何适合的信息。如上所述,请求分组可包含与目的地逻辑关联的地址。例如,在所描绘的实施例中,分组包含6位目的地地址。作为一个示例,目的地地址可包含指示沿网络网格的x轴的位置的三位地址值和指示沿网格的y轴的位置的另三位地址值。
请求分组还可包含有效位和三位(或其它适合大小的)队列槽。有效位可指示分组是否有效。例如,当新分组到达时,有效位可被断言。在分组已经由适当的OUT端口转发之后,有效位可被取消断言,使得分组(其仍可由锁存器414存储)不被再次错误地转发,并且OUT端口可转发下一有效分组。
队列槽位可指示寄存器堆中要存储有关分组的信息(例如与分组关联的方向)的位置。在所描绘的实施例中,寄存器堆可具有8个位置,并且因此队列槽被标识有三个位,不过可使用任何适合的大小。在其它实施例中,分组还可包含一个或多个边带使能位,它们指示分组是否包含要作为边带通信的一部分发送的数据。分组还可包含携带边带数据的位。从而,尽管分组被显示为具有10位,但分组可具有任何适合数量的位。
当锁存器未由来自触发器412的保持信号关闭时,分组进入输入端,并通过锁存器414。分组被传到多路分解器逻辑420。多路分解器逻辑420操作以将分组多路分解到路由器204A的多个OUT端口中的任何端口。在一些实施例中,退出多路分解器的信号集的数量等于OUT端口数减去1(因为通过端口集的IN端口到来的分组不会被发送到该端口集的OUT端口)。多路分解器逻辑420的输出由方向逻辑425设置,方向逻辑425充当地址解码器。方向逻辑425适合于基于分组中的信息(例如目的地地址)和/或其它适合的信息(诸如路由器204A的地址)来确定与分组关联的方向。这个方向可指示分组应该被路由到的路由器204A的哪个OUT端口。例如,方向逻辑425可评估分组的目的地地址和路由器204A的地址,确定用于将分组引导到正确OUT端口的多路分解器逻辑420的路径,并且然后选择那个路径,使得分组被转发到正确的OUT端口,而来自多路分解器逻辑420的其它路径保持不断言。
如所描绘的,IN端口还可包含接收保持信号的路径。例如,IN端口可包含到其它端口集的每个OUT端口的一个路径,以从相应端口接收保持信号。保持信号提供流程控制。当从任何OUT端口接收到保持信号时,或门430的输出被断言,并且这个值在分组时钟316的下一循环翻转。这关闭锁存器以免接受附加分组,直到保持信号被清除。这个信号将在下面结合OUT端口进一步说明。
OUT端口450除了其它可能组件之外可包含促进分组路由的各种组件,诸如保持多路分解器逻辑460、优先级逻辑480、多路复用器逻辑485和触发器490。OUT端口450接收多个输入(每个操作以从路由器204A的相应输入端口传输分组)。多路复用器逻辑485操作以将输入多路复用到单个输出,其通过触发器490提供到输出端455。在描绘的实施例中,在分组时钟316的循环中,多路复用器逻辑485可从一到四个不同分组的任何地方接收(每个分组从路由器204A的不同输入端口接收),并选择要通过OUT端口450的输出端455传递的一个分组。
优先级逻辑480通过从IN端口(例如使用循环赛技术)选择其中一个有效分组(例如具有被断言的有效位的分组)充当分组仲裁器,并经由保持多路分解器逻辑460向未选择的IN端口发送保持信号。优先级逻辑480向多路复用器逻辑485发送表示选择的分组的信号,使多路复用器逻辑485能够将选择的分组传到触发器490。当OUT端口接收的保持信号未被断言时,基于分组时钟316翻转分组。
优先级逻辑480还向寄存器堆发送与选择的分组关联的方向数据、即方向465。方向数据可规定分组来自哪个方向。例如,方向数据可以是从中接收分组的IN端口的指示。在具体实施例中,方向数据可由两位值表示,从而能够标识从中接收分组的四个端口中的任一个。选择的分组的队列槽470位也被传到寄存器堆,并被用作地址以将方向数据存储在由队列槽470位规定的寄存器堆的位置中。如果分组请求的队列槽已经满了,则优先级逻辑可断言保持信号,从而阻止分组继续。在一实施例中,当优先级逻辑480确定分组仅仅用于边带数据通信(也就是,不打算设立电路交换信道)时,可有选择地阻止或修改方向数据的写入。在此类实施例中,输出的提供也可被有选择地阻止或以其它方式更改。
写到寄存器堆中的方向数据用于促进电路交换路径的设立。每个路由器中的每个端口可包含类似寄存器堆。当用于建立电路交换信道的适当时间已经达到时,可以选择包含与电路交换信道关联的方向信息的各种端口中的每个端口的队列槽(在各种实施例中,它可以是每一个端口中的相同队列槽),并且方向信息用于配置从源到目的地的路由器中的多路复用器和多路分解器。在完成通过电路交换信道的数据传送时,选择寄存器堆中的不同队列槽以设立另外的电路交换信道。
在本公开的各种实施例中,寄存器堆的队列槽可促进执行组合的保证吞吐量和尽力而为(GT+BE)数据发送的NoC。典型的NoC基于没有吞吐量或等待时间保证的网络资源可用性递送尽力而为(BE)业务。然而,许多应用,诸如媒体流播和在线游戏,都要求对等待时间和保证最小吞吐量的限制以实现高服务质量。
NoC可通过为特定传送预留带宽来提供保证吞吐量(GT)。这消除了该传送的冲突,并且递送最小保证吞吐量以及保证低等待时间。然而,预留NoC资源阻止其它业务使用那些资源,导致低网络利用和降低的总吞吐量。另一种方法是过度供应BE NoC以满足性能要求。BE流程控制基于网络资源可用性发送传送,并且具有简单的硬件实现。然而,BE网络没有等待时间和吞吐量保证。过度供应为接近最坏情况的情形提供了足够的带宽,其中网络资源对于较轻业务浪费了。相反,平均情况的设计使得对立业务具有不可接受的最坏情况的等待时间。
本公开的各种实施例提供了组合的GT+BE NoC。GT+BE数据传送在混合的分组/电路交换NoC上执行。当通过网络中继请求时,在每个路由器处在一个或多个循环内对请求进行分组交换并存储。通过预留从源到目的地的完整信道对数据进行电路交换,无需路由内的数据存储。GT+BE NoC在时间复用的电路交换信道上预留带宽,以在能量有效信道上以固定的低等待时间通过NoC提供GT。分布式算法通过在不同时隙内重新尝试冲突传送来解决GT资源中的冲突。NoC支持非等待时间关键传送的BE业务,以更好地利用网络资源并增加总吞吐量。通过在一个NoC上组合GT和BE业务,等待时间敏感的应用可接收GT,同时不太关键的任务可使用BE传送来使用未预留的和空闲预留的资源。这改进了等待时间敏感的和实时的应用(诸如在线游戏和媒体流播)的服务质量。而且,电路交换技术通过路由内数据存储移除并消除反复发生的信道设立和取消分配成本,改进了能量效率。
图5例证了按照某些实施例执行组合的GT+BE数据发送的NoC路由器204A的OUT端口450的示例部分。在所描绘的实施例中,OUT端口450包括BE/GT选择器502、公平指针506、BE指针510、GT指针514、BE有效寄存器堆、即有效518、GT有效寄存器堆、即有效522、BE队列槽寄存器堆、即队列槽526、GT队列槽寄存器堆530和多路复用器逻辑534。
请求分组通过将有效位和方向存储在每个路由器端口中的对应队列槽中,可在信道上预留时隙。通过区分电路交换数据信道上的时隙来实现GT+BE传送。队列槽被专用于BE或GT业务,其中源核控制业务类型,并且指配队列槽以调度数据传送。GT信道确保对于生产商/消费者工作载荷满足最小带宽要求。而且,电路交换数据传送使用端对端信道预留来为GT传送提供保证的固定且低的等待时间。
当在OUT端口接收到预留请求分组时,与请求分组关联的信息(例如规定从哪个IN端口接收请求分组的方向信息)可被存储在OUT端口的队列槽中。在具体实施例中,BE队列槽寄存器堆和GT队列槽寄存器堆530的每个队列槽对应于唯一标识符。请求分组可通过规定在BE队列槽寄存器堆或GT队列槽寄存器堆530中的队列槽的标识符,来指示关联的数据传送是BE传送还是GT传送。在备选实施例中,请求分组除了队列槽标识符之外,还可包含规定该传送是GT传送还是BE传送的位。
BE/GT选择器502操作以控制BE传送与GT传送的比率。每当OUT端口450自由传送数据时,BE/GT选择器502就规定应该进行BE传送还是GT传送。BE/GT选择器502可规定BE传送与GT传送之间的任何适合的比率。例如,BE/GT选择器502可规定,应该对于每两个BE传送发生一个GT传送。在各种实施例中,BE/GT选择器502的比率可编程。在一些实施例中,NoC包含控制逻辑以基于在路由器和/或NoC中监测的业务模式来设置比率。在一个实施例中,NoC的所有路由器的BE/GT选择器502使用相同比率。
当选择BE传送时,检查BE有效寄存器堆以查看由BE指针510指示的条目是否指示BE队列槽寄存器堆的对应队列槽是否有效。如果BE有效寄存器堆指示该条目无效,则依次检查每个条目,直到发现有效条目。BE队列槽寄存器堆的对应队列槽中的信息(例如方向信息)用于控制多路复用器逻辑534。多路复用器逻辑534可表示适合于传递控制和/或数据信号的逻辑。例如,多路复用器逻辑534可从路由器204A的每个IN端口接收确认信号和电路交换数据,并选择其中要发送到不同路由器204B(其可具有路由器204A的任何特性)的对应IN端口410的一组信号。在每个BE传送结束时,可使BE指针510递增。用于控制多路复用逻辑534的BE队列槽可被自动清除(例如,一旦选择该槽则可清除它,并且端口已经从源和目的地接收到确认信号),以允许随后BE业务继续进行。
当选择GT传送时,检查GT有效寄存器堆以查看由GT指针514指示的条目是否指示GT队列槽寄存器堆530的对应队列槽是否有效。如果GT有效寄存器堆指示该条目有效,则GT队列槽寄存器堆530的对应队列槽中的信息(例如方向信息)用于控制多路复用器逻辑534。在每个GT传送之后,可使GT指针514递增。在清除该槽之前,用于控制多路复用器逻辑534的GT队列槽可能需要来自源和/或目的地的一个或多个显式清除信号。
当由GT指针514指示的GT有效寄存器堆的条目指示对应队列槽无效时,不执行GT传送。相反,检查BE有效寄存器堆以查看由公平指针506指示的条目是否指示BE队列槽寄存器堆的对应队列槽是否有效。如果BE有效寄存器堆指示该条目无效,则依次检查每个条目,直到发现有效条目。例如,在所描绘的实施例中,公平指针506指向寄存器的顶端槽。然而,这个槽(和下一槽)被指示为无效。因而,选择寄存器堆的BE2槽。BE队列槽寄存器堆的这个队列槽中的信息(例如方向信息)则用于控制多路复用器逻辑534。当一个或多个具体GT队列槽在延长的一段时间内保持空时,公平指针506帮助避免支持寄存器的一个或多个队列槽。在各种实施例中,公平指针506是可选的。
NoC的路由器的各种端口中的公平指针506、BE指针510和GT指针514可全局彼此同步。也就是,公平指针506可全都指向它们的相应BE队列槽寄存器堆的相同BE队列槽,BE指针510可全都指向它们的相应BE队列槽寄存器堆的相同BE队列槽,并且GT指针514可全都指向它们的相应GT队列槽寄存器堆的相同GT队列槽。这些全局指针可为队列槽提供循环赛服务。
BE传送可被说成根据尽力而为通信方案通信,其中未提供有关等待时间或吞吐量的保证。GT传送可被说成根据保证吞吐量通信方案通信,其中通过将预留资源用于GT传送来确保GT传送的最小吞吐量。
图6例证了按照某些实施例执行组合的GT+BE数据发送的NoC路由器的OUT端口450的另一示例部分。在所描绘的实施例中,BE/GT选择器502和指针被实现为基于移位寄存器的计数器。BE/GT选择器502的寄存器中的“1”指示GT传送应该发生,而“0”指示BE传送应该发生。因而,在例证中实现了4:1的BE/GT比率。公平指针506和GT指针514可由BE/GT选择器502实现,并且从而每当BE/GT选择器的输出指示GT传送时可递增。BE/GT选择器502的反相输出被馈送到与门626,其使BE指针能够由电路时钟324时钟控制。从而,当BE/GT选择器502指示BE传送时,每个电路时钟循环中BE指针510都递增。
多路复用器逻辑602基于BE/GT选择器502指示GT传送还是BE传送来选择公平指针506或BE指针510。槽选择逻辑610从相关指针位置开始确定寄存器堆的下一有效队列槽,并且如果en输入信号活动(指示选择的GT队列槽无效,或者BE/GT选择器502已经指示BE传送被取代)则选择这个队列槽。如果BE/GT选择器指示GT传送,并且GT指针选择有效GT队列槽,则GT传送要发送。
来自选择的队列槽的方向信息通过或门614传递,以配置多路复用逻辑618和多路分解逻辑622以传递确认信号。在每个时隙期间,这些Src Ack和Dest Ack信号尝试分别在前向方向和反向方向穿过网络。在任何核或路由器都存在这两个确认指示从源到目的地的完整信道。这个事件指示在下一时钟循环期间沿信道的电路交换数据传送。因而,方向信息在被传递到用于配置电路交换信道的方向的控制逻辑之前,通过触发器606延迟。
接收的确认信号可用于清除队列槽。当已经接收到DestAck(来自目的地的确认信号)和SrcAck(来自源的确认信号)时,清除信号、即清除630变得活动。响应于BE传送,清除信号可清除当前用于传送数据的BE队列槽。来自源核的单独SrcClr信号可用于清除GT队列槽。发送电路交换数据的核可跟踪每个电路传送流有多长,并且在最后一次传送上,可发送SrcClr信号以代替SrcAck信号。
图7例证了按照某些实施例用于执行组合的GT+BE数据发送的示例方法。在步骤702,建立BE/GT比率。这个比率定义路由器的端口对于由端口执行的每个GT传送将执行多少BE传送。BE/GT比率可用任何适合的方式建立。在一个实施例中,对应于GT传送的位在存储元件中可被设置成高,而对应于BE传送的位被设置成低(或反之亦然)。
在步骤704,确定下一传送应该是BE传送还是GT传送。这可用任何适合的方式确定。例如,可读取由与存储元件关联的指针指示的存储元件(上面提到)的位置中的位,并且如果所得到的位是高,则确定要执行GT传送,而如果位是低,则确定要执行BE传送(或反之亦然)。
如果在步骤704确定要执行BE传送,则确定在由BE指针指示的位置的BE队列槽是否有效。例如,队列槽可与指示队列槽是否有效的位关联。如果队列槽有效,则方法移动到步骤710。如果队列槽无效,则在步骤708找到下一有效的BE队列槽。在步骤710,提供来自BE队列槽的方向信息以配置电路交换信道。此类配置可涉及对于控制和/或数据信号配置多路复用逻辑或多路分解逻辑。在步骤712,使用所建立的电路交换信道传送数据。尽管未示出,但该方法可在步骤712之后返回到步骤704。
如果在步骤704确定传送将是GT传送,则在步骤714确定在由GT指针指示的位置的GT队列槽是否有效。如果GT队列槽有效,则在步骤716提供来自GT队列槽的方向信息以配置电路交换信道,并在步骤712使用电路交换信道传送数据。如果GT队列槽无效,则在步骤718,可以确定在由公平指针指示的位置的BE队列槽是否有效。如果BE队列槽无效,则在步骤720找到下一有效的BE队列槽。在步骤722,提供来自BE队列槽的方向信息以配置电路交换信道,并在步骤712使用电路交换信道传送数据。
在图7中例证的其中一些步骤可视情况而被重复、组合、修改或删除,并且附加步骤也可被添加到流程图。此外,步骤可按任何适合的次序执行,不脱离具体实施例的范围。
图8例证了按照某些实施例用于执行组合的GT+BE NoC中的动态槽重新分配(DSR)的示例通信流程。DSR解决了GT资源中的冲突。由于GT队列槽选择的控制分布在核中,因此核可以同时请求相同信道资源。此外,由于GT资源预留任意长的时间量,无需附加技术,因此资源冲突可导致无法忍受的长的信道设立延迟或网络死锁。一些解决方案可依赖于用户避免GT冲突。然而,这个技术是劳动密集的,受限于具体NoC架构,并且需要NoC应用的全局知识。这阻止应用从一个NoC进入具有不同拓扑或队列槽数的另一NoC。它还排除了应用之间的隐私,例如在运行多个虚拟机的NoC中。
DSR彻底地搜索准予所有GT请求的解决方案。用这种方式,它发现一种解决方案,只要在网络内的任何链路中都不超过GT带宽就行。当核请求已经被保持的GT信道时,之前的拥有者放弃对新请求的控制权,并在不同的时隙中重试。这阻止任何次优指配的GT传送产生死锁。例如,如果第一GT传送已经预留了端口的GT队列槽,并且端口接收到对于该槽的另一GT请求,则对于第一GT传送的预留从GT队列槽中移除,并且第二GT请求被放置在队列槽中。通知第一GT传送的源,并且第一GT传送可再次尝试预留GT队列槽(在随后时间和/或在不同GT队列槽上)。
在所描绘的实施例中,在框1,发生路由器204C与204f之间的第一GT传送802。第一GT传送802在沿路径的每一个路由器中占用GT队列槽0。对于GT队列槽0的GT预留请求806与服务于GT传送802的现有信道冲突。没有DSR,请求806可能绝不可能被准予,并且可能产生死锁。在框2,将清除信号808(例如DestClr信号)从冲突点发送到GT传送802的源核,指令源结束该传送。源核可使用预先确定的超时周期来解决对GT信道的依赖性。在框3,源核在导致每个路由器处的链路拆卸的信道上向所有路由器发送清除信号(例如SrcClr信号)。在框4,在GT队列槽1上重试GT传送802,并且为GT传送802成功建立电路交换信道。GT预留请求将数据存储在GT队列槽0中,并使用GT队列槽0建立与GT预留请求关联的GT传送810。
图9例证了按照某些实施例的用于执行组合的GT+BE NoC中DSR的示例方法。在步骤902,接收指示第一GT队列槽的第一预留请求分组。与第一预留分组关联的方向信息可被存储在第一GT队列槽中。在步骤904,建立与第一预留分组关联的电路交换信道。可使用存储在第一GT队列槽中的方向信息建立电路交换信道。
在步骤906,接收指示第一GT队列槽的第二预留请求分组。预留请求分组可与不同于与接收的第一预留请求分组关联的GT传送的GT传送关联。GT传送可以具有或者可以不具有不同的源和/或目的地。在步骤906,与第一预留请求关联的电路交换信道被拆卸。这可涉及,沿从与电路交换信道关联的GT传送的源到目的地的路径向路由器发送一个或多个清除信号。
在步骤910,建立与第二预留请求关联的电路交换信道。这个信道可使用来自已经被存储在第一GT队列中的第二预留请求的方向信息代替之前为第一预留请求存储在那里的信息来建立。
在步骤912,接收指示第二GT队列槽的预留请求分组。这个预留请求分组可与和第一预留请求分组关联的同一GT传送关联。来自这个请求分组的方向信息可被写到第二GT队列槽。在步骤914,除了其它信息,还使用来自第二GT槽的方向信息重建第一电路交换信道。
在图9中例证的其中一些步骤可视情况被重复、组合、修改或删除,并且附加步骤也可被添加到流程图。此外,步骤可按任何适合的次序执行,不脱离具体实施例的范围。
在各种实施例中,总网络吞吐量可用4个BE队列槽和4个GT队列槽最大化。使用较少的GT槽可提供比处理元件请求的更少的GT信道。增加GT槽的数量增加了业务灵活性,但增加了硬件要求,并通过在较大数量的槽之间划分总GT带宽,向每个传送分配了更小带宽。
图10例证了按照一个实施例用于示例计算系统的框图的另一实施例。在此图中,描绘了按照本公开的片上系统(SoC)设计的实施例。作为特定例证性示例,SOC 1000包含在用户设备(UE)中。在一个实施例中,UE指的是由最终用户用于通信的任何装置,诸如手持电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本或任何其它类似通信装置。经常,UE连接到基站或节点,其潜在地实质上对应于GSM网络中的移动台(MS)。
在此,SOC 1000包含2个核,即1006和1007。类似于以上论述,核1006和1007可符合指令集架构,诸如基于Intel®架构CoreTM的处理器、高级微装置公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其顾客、以及它们的被许可方或采纳方。核1006和1007耦合到高速缓存控制器1008,其与总线接口单元1009和L2高速缓存1010关联,以与系统1000的其它部分通信。互连1010包含片上互连,诸如IOSF、AMBA或上面讨论的其它互连,其潜在地实现了所描述公开的一个或多个方面。
接口1010提供了到其它组件的通信信道,诸如与SIM卡对接的订户身份模块(SIM)1030、保持引导代码以便由核1006和1007执行以初始化和引导SOC 1000的引导ROM 1035、与外部存储器(例如DRAM 1060)对接的SDRAM控制器1040、与非易失性存储器(例如闪存1065)对接的闪存控制器1045、与外围装置对接的外围控制器Q1650(例如串行外围接口)、显示和接收输入(例如启用触摸的输入)的视频编解码器1020和视频接口1025、执行图形相关计算的GPU 1015等。这些接口中的任何接口都可结合本文描述的公开的各方面。
此外,系统例证了用于通信的外围装置,诸如蓝牙模块1070、3G调制解调器1075、GPS 1085和WiFi 1085。如上所述指出的,UE包含用于通信的无线电。因此,这些外围通信模块不全都需要。然而,在UE中,要包含用于外部通信的某种形式的无线电。
设计从创建到模拟到制作可经过各种阶段。表示设计的数据可用若干方式表示该设计。首先,这在仿真上是有用的,硬件可使用硬件描述语言(HDL)或另一功能描述语言表示。附加地,在设计过程的某些阶段,可产生具有逻辑和/或晶体管门的电路级模型。更进一步说,大多数设计在某一阶段达到用硬件模型表示各种装置的物理布局的数据级。在使用常规半导体制作技术的情况下,表示硬件模型的数据可以是规定在用于产生集成电路的掩膜的不同掩膜层上各种特征的存在或缺乏的数据。在一些实现中,此类数据可以按数据库文件格式存储,诸如图形数据系统II(GDS II)、开放艺术品系统互换标准(OASIS)或类似格式。
在一些实现中,基于软件的硬件模型以及HDL和其它功能描述语言对象可包含寄存器传送语言(RTL)文件,以及其它示例。此类对象可以是机器可解析的,使得设计工具可接受HDL对象(或模型),对于所描述硬件的属性解析HDL对象,并根据对象确定物理电路和/或片上布局。设计工具的输出可用于制造物理装置。比如,设计工具可根据HDL对象确定各种硬件和/或固件元件的配置,诸如总线宽度、寄存器(包含大小和类型)、存储器块、物理链路路径、构造拓扑,以及将被实现以便实现在HDL对象中建模的系统的其它属性。设计工具可包含用于确定片上系统(SoC)以及其它硬件装置的拓扑和构造配置的工具。在一些实例中,HDL对象可被用作用于开发可由制造设备用于制造所描述硬件的模型和设计文件的基础。实际上,HDL对象本身可被提供为制造系统软件的输入以引起所描述的硬件。
在设计的任何表示中,数据可被存储在任何形式的机器可读介质中。存储器或者磁或光存储装置诸如盘可以是机器可读介质,以存储经由调制的或以别的方式生成的光波或电波发送的信息以发送此类信息。当指示或携带代码或设计的电载波被发送到执行电信号的拷贝、缓冲、重发的程度时,进行新拷贝。从而,通信供应商或网络供应商可在有形机器可读介质上至少暂时存储实施本公开实施例的技术的制品,诸如编码到载波中的信息。
本文所使用的模块指的是硬件、软件和/或固件的任何组合。作为示例,模块包含与非暂态介质关联的硬件(诸如微控制器),以存储适合于由微控制器执行的代码。因此,在一个实施例中,提到模块指的是硬件,其专门配置成识别和/或执行在非暂态介质上保持的代码。更进一步说,在另一实施例中,使用模块指的是包含代码的非暂态介质,其特别适合于由微控制器执行以执行预定操作。并且可以推断,在又一实施例中,术语模块(在此示例中)可指的是微控制器和非暂态介质的组合。被例证为单独的常见的模块边界通常改变并潜在地交叠。例如,第一和第二模块可以共享硬件、软件、固件或它们的组合,不过潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包含硬件,诸如晶体管、寄存器或其它硬件,诸如可编程逻辑器件。
使用短语“以”或“配置成”在一个实施例中指的是布置、放在一起、制造、提供销售、进口和/或设计设备、硬件、逻辑或元件以执行指定或确定任务。在此示例中,不操作的设备或其元件仍“配置成”执行指定任务,如果它被设计、耦合和/或互连以执行所述指定任务的话。作为纯例证性示例,逻辑门可在操作期间提供0或1。但“配置成”向时钟提供使能信号的逻辑门不包含可提供1或0的每个潜在逻辑门。相反,逻辑门是以某种方式耦合的,在操作期间1或0输出启动时钟。再次指出,使用术语“配置成”不需要操作,而是相反聚焦在设备、硬件和/或元件的潜伏状态,其中在潜伏状态,设备、硬件和/或元件设计成当设备、硬件和/或元件操作时执行具体任务。
更进一步说,使用短语“能够/以”和/或“可操作以”在一个实施例中指的是以此类方式设计的某一设备、逻辑、硬件和/或元件,以允许以规定方式使用设备、逻辑、硬件和/或元件。如上面指出的,使用“以”、“能够”或“可操作以”在一个实施例中指的是设备、逻辑、硬件和/或元件的潜伏状态,其中设备、逻辑、硬件和/或元件不操作,但以此类方式设计成允许以规定方式使用设备。
本文所使用的“值”包含数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,逻辑电平、逻辑值或逻辑上的值的使用也被称为1和0,其简单地表示二进制逻辑状态。例如,1指的是高逻辑电平,而0指的是低逻辑电平。在一个实施例中,存储单元,诸如晶体管或闪存单元,能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中的值的其它表示。例如,十进制数10也可表示为二进制值1010和十六进制字母A。因此,值包含能够在计算机系统中保持的信息的任何表示。
而且,状态可由值或值的部分来表示。作为示例,第一值,诸如逻辑1,可表示默认或初始状态,而第二值,诸如逻辑0,可表示非默认状态。此外,术语“重置”和“设置”在一个实施例中分别指的是默认和更新的值或状态。例如,默认值潜在地包含高逻辑值,即重置,而更新的值潜在地包含低逻辑值,即设置。要指出,可利用值的任何组合来表示任何数量的状态。
上面阐述的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上的可由处理元件执行的指令或代码实现。非暂态机器可访问/可读介质包含提供(即存储和/或发送)机器(诸如计算机或电子系统)可读形式的信息的任何机构。例如,非暂态机器可访问介质包含随机存取存储器(RAM),诸如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存装置;电存储装置;光存储装置;声存储装置;用于保持从暂态(传播)信号(例如载波、红外信号、数字信号)接收的信息的其它形式存储装置等,它们有别于可从其接收信息的非暂态介质。
用于对逻辑编程以执行本公开实施例的指令可被存储在系统中的存储器内,诸如DRAM、高速缓存、闪存或其它存储装置内。更进一步说,指令可经由网络或通过其它计算机可读介质分布。从而,机器可读介质可包含用于存储或发送机器(例如计算机)可读形式的信息的任何机构,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或在因特网上经由电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)发送信息时使用的有形机器可读存储装置。相应地,计算机可读介质包含适合于存储或发送机器(例如计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
一个或多个实施例可提供一种设备、系统、机器可读存储装置、机器可读介质、基于硬件和/或软件的逻辑(例如片上网络的路由器)、方法和非暂态机器可读介质(包含表示结构的信息,结构当制造时配置成)包括:端口,接收多个预留请求分组;至少一个保证吞吐量队列槽和至少一个尽力而为队列槽,队列槽存储与所述多个预留请求分组中的预留请求分组关联的信息;选择器,基于比率在所述至少一个保证吞吐量队列槽与所述至少一个尽力而为队列槽之间进行选择;以及信道配置逻辑,基于存储在按照所述选择器的选择标识的队列槽中的信息建立电路交换信道。
在至少一个示例中,路由器要为与存储在保证吞吐量队列槽中的信息关联的电路交换数据传送提供保证吞吐量。
在至少一个示例中,路由器要为与存储在尽力而为队列槽中的信息关联的电路交换数据传送提供尽力而为递送。
在至少一个示例中,多个预留请求分组中的预留请求分组要标识至少一个保证吞吐量队列槽或至少一个尽力而为队列槽中的队列槽,其中与预留请求分组关联的信息要被存储在标识的队列槽中。
在至少一个示例中,与预留请求分组关联的信息包括标识路由器的不同端口的方向信息。
在至少一个示例中,路由器进一步包括如下逻辑:确定多个预留请求分组中的预留请求分组标识被占用的尽力而为队列槽,并延迟处理该预留请求分组。
在至少一个示例中,路由器进一步包括如下逻辑:确定多个预留请求分组中的第一预留请求分组标识用与多个预留请求分组中的第二预留请求分组关联的信息占用的第一保证吞吐量队列槽;以及用与所述第一预留请求分组关联的信息改写所述第一保证吞吐量队列槽中的所述信息。
在至少一个示例中,所述逻辑要进一步向与所述第二预留请求分组关联的电路交换传送的源发送清除信号。
在至少一个示例中,所述端口要接收始发自源的预留请求分组,预留请求分组响应于所述清除信号而发送,预留请求分组标识至少一个保证吞吐量队列槽的不同保证吞吐量队列槽。
在至少一个示例中,基于存储在保证吞吐量队列槽中的信息的电路交换信道和基于存储在尽力而为队列槽中的信息的电路交换信道要在不同时间在所述路由器的同一链路上发送数据。
在至少一个示例中,选择器包括具有要指示至少一个保证吞吐量队列槽的队列槽还是至少一个尽力而为队列槽的队列槽要用于建立电路交换信道的输出的移位寄存器。
在至少一个示例中,当按照选择器的选择标识的保证吞吐量队列槽无效时,要使用尽力而为队列槽建立电路交换信道。
一个或多个实施例可提供一种设备、系统、机器可读存储装置、机器可读介质、基于硬件和/或软件的逻辑(例如路由器端口)、方法和非暂态机器可读介质(包含表示结构的信息,结构当制造时配置成):接收第一分组交换预留请求;根据尽力而为通信方案将与所述第一分组交换预留请求关联的数据通过第一电路交换信道传递;接收第二分组交换预留请求;以及根据保证吞吐量通信方案将与所述第二分组交换预留请求关联的数据通过第二电路交换信道传递。
在至少一个示例中,路由器端口要进一步在不同时间使用路由器端口的同一链路传递与第一分组交换预留请求关联的数据和与第二分组交换预留请求关联的数据。
在至少一个示例中,路由器端口要进一步基于路由器端口存储的比率在尽力而为数据传送与保证吞吐量数据传送之间进行选择。
在至少一个示例中,当接收到第三分组交换预留请求时,路由器端口要进一步终止与第二分组交换预留请求关联的数据传送,第三分组交换预留请求将请求要使用由与第二分组交换预留请求关联的所述数据传送使用的至少一个资源的保证吞吐量传送。
一个或多个实施例可提供一种设备、系统、机器可读存储装置、机器可读介质、基于硬件和/或软件的逻辑(例如路由器端口)、方法和非暂态机器可读介质(包含表示结构的信息,结构当制造时配置成):包括多个核,每个核都与片上网络的路由器关联。路由器包括多个端口集。端口集包括输出端口。输出端口包括:逻辑,接收多个预留请求分组;至少一个保证吞吐量队列槽和至少一个尽力而为队列槽,队列槽存储与所述多个预留请求分组中的预留请求分组关联的信息;选择器,基于在所述片上网络的所述选择器之间共用的比率,在所述至少一个保证吞吐量队列槽与所述至少一个尽力而为队列槽之间进行选择;以及信道配置逻辑,基于存储在要按照所述选择器的选择来标识的队列槽中的信息,建立电路交换信道。
此说明书通篇提到“一个实施例”或“实施例”是指结合该实施例描述的具体特征、结构或特性可包含在本公开的至少一个实施例中。从而,在此说明书通篇各处出现的短语“在一个实施例中”或“在实施例中”不一定全都指的是同一实施例。而且,在一个或多个实施例中,可以任何适合的方式组合具体特征、结构或特性。
在前述说明书中,已经参考特定示范实施例给出了详细描述。然而,将显而易见的是,在不脱离所附权利要求书中阐述的本公开的更广泛的精神和范围的前提下,可对其进行各种修改和改变。说明书和附图相应地被视为例证性意义,而非限制性意义。更进一步说,前面使用实施例以及其它示范语言不一定指的是相同实施例或相同示例,而是可指的是不同实施例或截然不同实施例,以及潜在地相同实施例。
Claims (20)
1.一种提供组合的保证吞吐量和尽力而为通信的处理器,所述处理器包括:
片上网络的路由器,所述路由器包括:
端口,接收多个预留请求分组;
至少一个保证吞吐量队列槽和至少一个尽力而为队列槽,队列槽存储与所述多个预留请求分组中的预留请求分组关联的信息;
选择器,基于比率在所述至少一个保证吞吐量队列槽与所述至少一个尽力而为队列槽之间进行选择;以及
信道配置逻辑,基于存储在要按照所述选择器的选择标识的队列槽中的信息来建立电路交换信道。
2.如权利要求1所述的处理器,其中所述路由器要为与存储在保证吞吐量队列槽中的信息关联的电路交换数据传送提供保证吞吐量。
3.如权利要求1所述的处理器,其中所述路由器要为与存储在尽力而为队列槽中的信息关联的电路交换数据传送提供尽力而为递送。
4.如权利要求1所述的处理器,其中所述多个预留请求分组中的预留请求分组要标识所述至少一个保证吞吐量队列槽或所述至少一个尽力而为队列槽中的队列槽,其中与所述预留请求分组关联的信息要被存储在标识的队列槽中。
5.如权利要求1所述的处理器,其中与预留请求分组关联的信息包括标识所述路由器的不同端口的方向信息。
6.如权利要求1所述的处理器,其中所述路由器进一步包括逻辑来:
确定所述多个预留请求分组中的预留请求分组标识被占用的尽力而为队列槽;以及
延迟处理所述预留请求分组。
7.如权利要求1所述的处理器,其中所述路由器进一步包括逻辑来:
确定所述多个预留请求分组中的第一预留请求分组标识用与所述多个预留请求分组中的第二预留请求分组关联的信息占用的第一保证吞吐量队列槽;以及
用与所述第一预留请求分组关联的信息改写所述第一保证吞吐量队列槽中的信息。
8.如权利要求7所述的处理器,其中所述逻辑要进一步向与所述第二预留请求分组关联的电路交换传送的源发送清除信号。
9.如权利要求8所述的处理器,其中所述端口要接收始发自所述源的预留请求分组,所述预留请求分组要响应于所述清除信号而发送,所述预留请求分组标识所述至少一个保证吞吐量队列槽的不同保证吞吐量队列槽。
10.如权利要求1所述的处理器,其中基于存储在保证吞吐量队列槽中的信息的电路交换信道和基于存储在尽力而为队列槽中的信息的电路交换信道要在不同时间在所述路由器的同一链路上发送数据。
11.如权利要求1所述的处理器,其中所述选择器包括具有输出的移位寄存器,所述输出要指示所述至少一个保证吞吐量队列槽的队列槽还是所述至少一个尽力而为队列槽的队列槽要用于建立所述电路交换信道。
12.如权利要求1所述的处理器,其中当按照所述选择器的选择标识的保证吞吐量队列槽无效时,要使用尽力而为队列槽来建立电路交换信道。
13.一种提供组合的保证吞吐量和尽力而为通信的设备,所述设备包括:
路由器端口:
接收第一分组交换预留请求;
根据尽力而为通信方案将与所述第一分组交换预留请求关联的数据通过第一电路交换信道传递;
接收第二分组交换预留请求;
根据保证吞吐量通信方案将与所述第二分组交换预留请求关联的数据通过第二电路交换信道传递;以及
当接收到第三分组交换预留请求时,终止与所述第二分组交换预留请求关联的数据传送,所述第三分组交换预留请求将请求要使用由与所述第二分组交换预留请求关联的所述数据传送使用的至少一个资源的保证吞吐量传送。
14.如权利要求13所述的设备,所述路由器端口进一步在不同时间使用所述路由器端口的同一链路传递与所述第一分组交换预留请求关联的数据和与所述第二分组交换预留请求关联的数据。
15.如权利要求13所述的设备,所述路由器端口进一步基于所述路由器端口存储的比率来在尽力而为数据传送与保证吞吐量数据传送之间进行选择。
16.一种在其上存储有指令的计算机可读介质,所述指令当被计算装置执行时促使所述计算装置用于:
接收第一分组交换预留请求;
根据尽力而为通信方案将与所述第一分组交换预留请求关联的数据通过第一电路交换信道传递;
接收第二分组交换预留请求;
根据保证吞吐量通信方案将与所述第二分组交换预留请求关联的数据通过第二电路交换信道传递;以及
当接收到第三分组交换预留请求时,终止与所述第二分组交换预留请求关联的数据传送,所述第三分组交换预留请求将请求要使用由与所述第二分组交换预留请求关联的所述数据传送使用的至少一个资源的保证吞吐量传送。
17.如权利要求16所述的介质,所述指令当被所述计算装置执行时促使计算装置用于:在不同时间使用路由器端口的同一链路来传递与所述第一分组交换预留请求关联的数据和与所述第二分组交换预留请求关联的数据。
18.如权利要求16所述的介质,所述指令当被所述计算装置执行时促使计算装置用于:基于路由器端口存储的比率在尽力而为数据传送与保证吞吐量数据传送之间进行选择。
19.一种提供组合的保证吞吐量和尽力而为通信的系统,所述系统包括:
多个核,各与片上网络的路由器关联,路由器包括:
多个端口集,端口集包括输出端口,所述输出端口包括:
逻辑,接收多个预留请求分组;
至少一个保证吞吐量队列槽和至少一个尽力而为队列槽,队列槽存储与所述多个预留请求分组中的预留请求分组关联的信息;
选择器,基于在所述片上网络的所述选择器之间共用的比率在所述至少一个保证吞吐量队列槽与所述至少一个尽力而为队列槽之间进行选择;以及
信道配置逻辑,基于存储在要按照所述选择器的选择标识的队列槽中的信息来建立电路交换信道。
20.一种提供组合的保证吞吐量和尽力而为通信的系统,所述系统包括:
接收第一分组交换预留请求的部件;
根据尽力而为通信方案将与所述第一分组交换预留请求关联的数据通过第一电路交换信道传递的部件;
接收第二分组交换预留请求的部件;
根据保证吞吐量通信方案将与所述第二分组交换预留请求关联的数据通过第二电路交换信道传递的部件;以及
当接收到第三分组交换预留请求时终止与所述第二分组交换预留请求关联的数据传送的部件,所述第三分组交换预留请求将请求要使用由与所述第二分组交换预留请求关联的所述数据传送使用的至少一个资源的保证吞吐量传送。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/579303 | 2014-12-22 | ||
US14/579,303 US9979668B2 (en) | 2014-12-22 | 2014-12-22 | Combined guaranteed throughput and best effort network-on-chip |
PCT/US2015/062244 WO2016105785A1 (en) | 2014-12-22 | 2015-11-24 | Combined guaranteed throughput and best effort network-on-chip |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107078971A CN107078971A (zh) | 2017-08-18 |
CN107078971B true CN107078971B (zh) | 2021-09-10 |
Family
ID=56130796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580063626.XA Active CN107078971B (zh) | 2014-12-22 | 2015-11-24 | 组合保证吞吐量和尽力而为的片上网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9979668B2 (zh) |
EP (1) | EP3238390B1 (zh) |
CN (1) | CN107078971B (zh) |
WO (1) | WO2016105785A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102285481B1 (ko) * | 2015-04-09 | 2021-08-02 | 에스케이하이닉스 주식회사 | NoC 반도체 장치의 태스크 매핑 방법 |
US10691797B2 (en) * | 2016-04-21 | 2020-06-23 | Big Stream Solutions, Inc. | Systems and methods for compiler guided secure resource sharing |
US10469337B2 (en) * | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US11113223B1 (en) * | 2018-04-03 | 2021-09-07 | Xilinx, Inc. | Dual mode interconnect |
US10601723B2 (en) * | 2018-04-12 | 2020-03-24 | Advanced Micro Devices, Inc. | Bandwidth matched scheduler |
US10893005B2 (en) * | 2018-09-17 | 2021-01-12 | Xilinx, Inc. | Partial reconfiguration for Network-on-Chip (NoC) |
CN111436048B (zh) * | 2019-02-03 | 2022-03-01 | 维沃移动通信有限公司 | 支持时间敏感通信的方法及通信设备 |
US11188312B2 (en) * | 2019-05-23 | 2021-11-30 | Xilinx, Inc. | Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices |
US11949595B2 (en) * | 2020-06-26 | 2024-04-02 | Intel Corporation | Reflection routing as a framework for adaptive modular load balancing for multi-hierarchy network on chips |
US11580058B1 (en) | 2021-08-30 | 2023-02-14 | International Business Machines Corporation | Hierarchical ring-based interconnection network for symmetric multiprocessors |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103404094A (zh) * | 2011-03-09 | 2013-11-20 | 国际商业机器公司 | 交换机队列容量的链路层预留 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1869845A1 (en) * | 2005-04-07 | 2007-12-26 | Koninklijke Philips Electronics N.V. | Network-on-chip environment and method for reduction of latency |
CN101227297B (zh) * | 2007-12-21 | 2010-06-02 | 清华大学 | 用于设计片上网络的一种服务质量保证方法 |
US8284766B2 (en) | 2007-12-28 | 2012-10-09 | Intel Corporation | Multi-core processor and method of communicating across a die |
US8131944B2 (en) | 2008-05-30 | 2012-03-06 | Intel Corporation | Using criticality information to route cache coherency communications |
US8671220B1 (en) | 2008-11-28 | 2014-03-11 | Netlogic Microsystems, Inc. | Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch |
US8542691B2 (en) | 2009-06-30 | 2013-09-24 | Oracle International Corporation | Classes of service for network on chips |
EP2343656A1 (en) | 2009-12-15 | 2011-07-13 | Nxp B.V. | Network scheduling method, computer program product and network-on-chip |
US9021237B2 (en) * | 2011-12-20 | 2015-04-28 | International Business Machines Corporation | Low latency variable transfer network communicating variable written to source processing core variable register allocated to destination thread to destination processing core variable register allocated to source thread |
CN105247817B (zh) | 2013-06-28 | 2019-05-07 | 英特尔公司 | 用于源同步电路交换片上网络(NoC)的方法、装置和系统 |
WO2015034525A1 (en) | 2013-09-06 | 2015-03-12 | Intel Corporation | Architecture and method for hybrid circuit-switched and packet-switched router |
US9699096B2 (en) | 2013-12-26 | 2017-07-04 | Intel Corporation | Priority-based routing |
-
2014
- 2014-12-22 US US14/579,303 patent/US9979668B2/en active Active
-
2015
- 2015-11-24 WO PCT/US2015/062244 patent/WO2016105785A1/en active Application Filing
- 2015-11-24 EP EP15873990.4A patent/EP3238390B1/en active Active
- 2015-11-24 CN CN201580063626.XA patent/CN107078971B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103404094A (zh) * | 2011-03-09 | 2013-11-20 | 国际商业机器公司 | 交换机队列容量的链路层预留 |
Also Published As
Publication number | Publication date |
---|---|
EP3238390A1 (en) | 2017-11-01 |
US9979668B2 (en) | 2018-05-22 |
CN107078971A (zh) | 2017-08-18 |
WO2016105785A1 (en) | 2016-06-30 |
EP3238390B1 (en) | 2019-09-11 |
EP3238390A4 (en) | 2018-07-18 |
US20160182393A1 (en) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107078971B (zh) | 组合保证吞吐量和尽力而为的片上网络 | |
CN107113254B (zh) | 自适应交换芯片上网络 | |
CN107113253B (zh) | 用于片上网络的空间划分的电路交换信道 | |
KR101769757B1 (ko) | 소스 동기식 회선 교환 네트워크 온 칩(noc)을 위한 방법, 장치 및 시스템 | |
CN107113227B (zh) | 流水线化混合分组/电路交换片上网络 | |
CN107112042B (zh) | 数据信号的边沿感知同步的设备、系统和介质 | |
CN107005477B (zh) | 用于片上网络的基于链路延迟的路由装置 | |
US11868296B2 (en) | High bandwidth core to network-on-chip interface | |
CN107005492B (zh) | 用于芯片上网络上的多播和缩减通信的系统 | |
CN107003944B (zh) | 跨分布式存储器的指针追踪 | |
CN107113252B (zh) | 用于片上网络的并行方向解码电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |