CN107111584A - 到片上网络的接口的高带宽核 - Google Patents

到片上网络的接口的高带宽核 Download PDF

Info

Publication number
CN107111584A
CN107111584A CN201580062818.9A CN201580062818A CN107111584A CN 107111584 A CN107111584 A CN 107111584A CN 201580062818 A CN201580062818 A CN 201580062818A CN 107111584 A CN107111584 A CN 107111584A
Authority
CN
China
Prior art keywords
port
collection
data
processor
router
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.)
Granted
Application number
CN201580062818.9A
Other languages
English (en)
Other versions
CN107111584B (zh
Inventor
H.考尔
陈耕和
G.K.陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107111584A publication Critical patent/CN107111584A/zh
Application granted granted Critical
Publication of CN107111584B publication Critical patent/CN107111584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/112Switch control, e.g. arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

设备包含第一端口集,第一端口集包含输入端口和输出端口。设备进一步包含多个第二端口集。每一个第二端口集包含耦合到第一端口集的输出端口的输入端口和耦合到第一端口集的输入端口的输出端口。多个第二端口集各要以第一最大带宽通信,并且第一端口集要以高于第一最大带宽的第二最大带宽通信。

Description

到片上网络的接口的高带宽核
相关申请的交叉参考
本申请要求2014年12月17日提交的题为“HIGH BANDWIDTH CORE TO NETWORK-ON-CHIPINTERFACE(到片上网络的接口的高带宽核)”的美国非临时专利申请第14/574,352号的权益和优先权,该申请通过引用以其全部内容并入于本文中。
技术领域
本公开一般涉及计算机开发领域,并且更确切地说,涉及到片上网络(NoC)的接口的高带宽核。
背景技术
用于核之间的管芯上通信的片上网络(NoC),在随着多核处理器中核以及知识产权(IP)块的数量增大而实现可缩放性能方面,是重要的。在此类实例中,组件之间的通信变成关键能力和性能限制因素。NoC允许高效共享片上连线资源,以便与路由器通信来控制和仲裁正在通信的组件之间的数据流。增大片上通信性能通常以来自增大的数据存储能量和/或增大的全局连线资源使用的能量效率为代价出现。
附图说明
图1例证了按照某些实施例的包含多核处理器的示例计算系统的框图。
图2例证了按照某些实施例的包括包含多个路由器的片上网络(NoC)系统的处理器的框图。
图3例证了按照某些实施例的源同步混合分组电路交换NoC的路由器的示例输入和输出端口。
图4例证了按照某些实施例的源同步混合分组电路交换NoC的路由器的示例高带宽输入和输出端口。
图5例证了按照某些实施例的使用高带宽端口集从源逻辑传递数据的示例方法。
图6例证了按照某些实施例的使用高带宽端口集向目的地逻辑传递数据的示例方法。
图7例证了按照某些实施例的用于示例计算系统的另一框图。
各种附图中的相似附图标记和命名指示相似元件。
具体实施方式
在如下描述中,阐述了众多特定细节,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等的示例,以便提供本公开的透彻理解。然而,本领域技术人员要明白,不需要采用这些特定细节来实施本公开。在其它实例中,未详细描述众所周知的组件和方法,诸如特定和备选处理器架构、用于所描述算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定构造技术和材料、特定编译器实现、用代码的算法的特定表述、特定掉电和门控技术/逻辑、以及计算机系统的其它特定操作细节,以便避免不必要地使本公开模糊不清。
尽管可参考特定集成电路中的能量节约和能量效率描述如下实施例,诸如在计算平台或微处理器中,但其它实施例可应用于其它类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可应用于其它类型的电路或半导体器件,它们也可受益于更好的能量效率和能量节约。例如,所公开的实施例不限于台式计算机系统或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中的重新排序缓冲器、ILTB 120、加载/存储缓冲器和队列。其它资源,诸如通用内部寄存器、页表基础寄存器、低级数据高速缓存和数据TLB 115、执行单元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上。例如,在一个实施例中,存储器控制器集线器在与处理器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上传递的特定数据。例如,控制部分可包含与管芯的网络元件或核之一对应的目的地地址。分组交换网可包含缓冲,因为专用路径不确保从源到目的地,并且因此,如果两个或更多分组需要穿过同一链路或互连,则分组可能需要暂时停止。
在一实施例中,处理器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的路由器204的示例IN(入)和OUT(出)端口。描绘的实施例假定路由器具有5个端口集(每个端口集被逻辑上细分成IN端口和OUT端口),尽管在其它实施例中可使用任何数量的端口集。在具体实施例中,描绘的端口可表示在不同于路由器的核端口的端口中使用的端口(例如北、东、南和西端口)。块302表示IN端口的分组交换部分,并且块304表示IN端口的电路交换部分。类似地,块306表示OUT端口的分组交换部分,并且块308表示OUT端口的电路交换部分。
请求分组可通过块302进入IN端口。在混合源同步NoC实现中,请求分组在位于网络元件202的源逻辑与位于不同网络元件的目的地逻辑之间建立电路交换信道。为了开始数据传送,源逻辑朝目的地逻辑发送预留分组。这个预留分组可经由NoC的分组交换部分传递,并且当它从源行进到目的地时,可预留用于源逻辑与目的地逻辑之间的电路交换数据通信的资源。
预留分组可包含促进电路交换信道预留的任何适合的信息。作为示例,预留分组可包含地址310(即与目的地关联的地址)以及可选的边带分组数据312。当资源可用时,基于地址310向下游转发分组。例如,基于确定性路由方法(例如,X第一、Y第二路由或查找表)或解码器320在给定路由器中执行的其它路由协议,预留分组沿从源逻辑到目的地逻辑的路径转发。在一实施例中,唯一地址可与每个核208或其它逻辑块关联(在核与路由器之间存在1:1映射的情况下因此还与路由器204关联)。反过来,可使用这个局部地址生成对每个路由器局部的方向信息,以标识用于发送信息的路由器的适当端口。从而,可使用地址310连同路由器204的局部地址来确定向哪个方向转发入局分组。使用电路使能信号318确定入局分组是否预留电路交换路径。如果未表明电路使能信号318,则没有设立电路交换路径,并且分组仅仅携带边带分组数据312。
路由器204可使用信用系统来允许多个请求从一个端口发送,之后服务于第一请求。作为示例,OUT端口可按照信用2分组系统操作,其中从OUT端口发送的请求的数量可超出接收的准予的数量两个,同时IN端口可按照信用1分组系统操作,其中IN端口可直到接收到准予才发送附加请求。然而,可使用任何适合的信用系统。端口可包含信用跟踪逻辑以生成请求信号314(每个请求信号对应于预留分组)和准予信号331,并且跟踪已经被准予的请求数量。请求和准予可进行转换编码。在IN端口中,请求被转换成级敏感信号,使用地址310进行多路分解,并发送到正确的OUT端口。如果资源不可用,则入局分组可以被阻断。如果资源可用于服务分组,则锁存器316接收地址310、分组数据312和电路使能信号318。这些信号然后被提供到每个OUT端口(不同于从中接收它们的端口集的OUT端口)。
有关预留分组的信息被存储在与IN端口关联的优先级FIFO(未示出)中。在一实施例中,来自解码器320的输出的信息被存储到优先级FIFO的条目中。在一实施例中,如果表明电路使能信号318,则这个方向信息(其可以是2位以标识4个方向中的一个)被存储在优先级FIFO中。最高总体优先级FIFO时隙控制多路分解和多路复用以建立用于电路交换控制信号和数据的路径。例如,存储在IN端口优先级FIFO中的最高优先级方向用于控制多路分解器336和344以实现适当的电路交换信道。从而,如果预留分组在从源逻辑到目的地逻辑的路径上没有最高优先级,则预留被延迟,直到它是最高优先级为止。
当给定输入端口打开时,入局地址310、分组数据312和电路使能信号318通过锁存器310传到适当OUT端口的多路复用器322。多路复用器322可从路由器204的每个其它输入端口接收类似信号。请求仲裁器324在从IN端口接收的请求中选择要服务的请求。当请求仲裁器324选择来自IN端口的请求时,请求仲裁器324的输出可以驱动OUT端口中的信用跟踪逻辑,将要发送的准予信号331输出到适当IN端口。请求仲裁器324的输出还用于选择多路复用器322的输出,多路复用器然后耦合到双边沿触发的触发器326。每个OUT端口还可包含配置成接收请求仲裁器324的输出的优先级FIFO(未示出)。OUT端口优先级FIFO的操作可类似于IN端口优先级FIFO的操作。也就是,存储在OUT端口优先级FIFO中的最高优先级方向用于控制反转触发器338和346以及数据多路复用器352以实现适当的电路交换信道。
经由路由器的分组交换部分发送的预留分组用于使用路由器204的电路交换部分304和308建立电路交换信道。电路数据350通过IN端口传递到每个OUT端口,并且经由多路复用器352(其可以是多路复用器锁存器)选择。锁存器可用于电路数据,以防止数据链路上的不必要的毛刺。在一实施例中,对于比分组交换显著低的时钟功率,锁存器在电路传送期间保持打开,并且每个流仅开关一次。
用于电路交换通信的各种元件经由控制信号尾328、流330和确认332(“ack”)控制。在一实施例中,实现了两个前向控制信号(流330和尾328),它们都指明数据传送。流信号330指示电路数据与后面的更多数据(作为附加段)的通信,并且从而保持电路信道打开进行完全电路数据传送(一段或多段),并且尾信号328指示电路数据传送的结束。在相反方向,对于电路数据传送的每段,从目的地向源发送反向控制信号确认332。尾信号被提供到XOR门334、多路分解器336,因此还有OUT端口的XOR门340和反转触发器338。流信号330被提供(经由异或门342),并且通过多路分解器344提供(对于流信号),并且提供在OUT端口的反转触发器346和XOR门348上。确认信号332可用于通过双边沿触发器354和XOR门358产生尾确认信号,并且通过双边沿触发器356和XOR门360产生流确认信号。这些确认信号通过XOR门362被转换回单个确认信号。虽然信道保持打开,但电路数据可被流播以发送多个数据段(例如数据80b的每个),其中每段具有它自己的确认信号332。这缓冲了更大数据传送上的电路交换仲裁开销。当数据流播完成时,最终确认信号332通过递增沿路径的所有优先级FIFO中的优先级,来解除信道分配。这从FIFO中移除了完成的最高优先级预留,允许随后电路交换传送发生。
图4例证了按照某些实施例的源同步混合分组电路交换NoC的路由器204的示例高带宽IN和OUT端口。描绘的实施例再次假定路由器具有5个端口集(每个端口集被逻辑上细分成IN端口和OUT端口),尽管在其它实施例中可使用任何数量的端口集。块402表示IN端口的分组交换部分,并且块404表示IN端口的电路交换部分。类似地,块406表示OUT端口的分组交换部分,并且块408表示OUT端口的电路交换部分。在具体实施例中,在图4中描绘的IN和OUT端口用于与核208或另一逻辑块对接。从而,在一些实施例中,NoC的一个或多个核可利用高带宽IN和/或OUT端口通信,而与核关联的路由器204的其它端口可用图3中示出的IN和/或OUT端口结构或其变形来实现。从而,其它端口可具有均匀带宽,而核端口具有比其它端口高的带宽。带宽可指示由具体端口在时间段上传递的数据量。当核IN端口正服务于到其它端口集的所有OUT端口的请求时,它以其最大带宽操作。类似地,当核OUT端口正服务于来自其它端口集的所有IN端口的请求时,它以其最大带宽操作。
对于从网络进入核208的业务(经由路由器的不同端口集的IN端口),核端口可同时从多个端口接收数据(或者选择的其子集)。类似地,对于离开核208到网络的业务,核端口可同时向所有其它端口提供独立数据(或选择的其子集)。从而,核端口不需要在来自不同端口的入局数据或从核到网络的出局数据之间进行仲裁。这允许省略仲裁电路以及数据多路复用器和多路分解器,它们可在其它端口中用于从多于一个的入局或出局请求中选择请求。在此类实施例中,核端口的最大数据带宽相对于具有5个端口集的路由器的其它端口增加4倍,允许以更高的速率从网络中移除数据分组,以降低网络拥塞和等待时间,同时改进总NoC吞吐量。仅增加核带宽避免了增加全局连线资源和数据存储能量,这将是需要的以便增加路由器的所有端口的带宽。
图4的控制信号和数据信号可具有图3的对应信号的任何适合的特性。如所描绘的,IN端口具有用于从核到每个路由器OUT端口(不同于核OUT端口)的数据信号和控制信号的专用连线,以允许同时将数据从核传送到路由器的每个OUT端口。在控制信号侧,单独的请求信号414、地址信号410、电路使能信号418、尾信号428和流信号430可被发送到每个OUT端口,并且可从核发送单独的确认信号432(对于不同于核IN端口的每个IN端口发送一个)。在数据信号侧,单独的边带分组数据412和电路数据450被发送到每个OUT端口。因为IN端口允许请求直接去到OUT端口,所以IN端口不需要在请求之间进行仲裁,并且从而可省略IN端口上的优先级FIFO。类似地,可省略方向解码器320,因为每个OUT端口都具有来自核的专用连线。在此类实施例中,核可包含使核能够向正确端口发送数据的逻辑。例如,核可以包含允许核基于与数据关联的目的地地址确定适合的OUT端口的逻辑。
如所描绘的,核OUT端口具有用于从核到每个路由器IN端口的数据信号和控制信号的专用连线,以允许经由核路由器的OUT端口同时将数据从IN端口传送到核208。对于具有5个端口集的路由器,核OUT端口使核能够从路由器的每个IN端口接收四倍的具有数据的专用控制信号的数据带宽,并且使核能够用每个IN端口的专用确认信号进行响应。在控制信号侧,单独的准予信号431和确认信号432可被发送到每个IN端口,并且可从每个IN端口(除了核IN端口)接收单独的请求信号314、地址信号310、电路使能信号318、尾信号328和流信号330。在数据信号侧,从每个IN端口(除了核IN端口)接收单独的边带分组数据312和电路数据350。因为高带宽端口的OUT端口允许同时从每个其它端口接受电路交换数据,所以对于核OUT端口不需要请求仲裁器和优先级FIFO。
图3和图4例证了在源同步NoC的上下文中可用在用于混合分组电路交换数据发送的高带宽核心网络接口中的端口。在源同步NoC中,与数据一起转发的控制信号转变充当时钟信号,从而消除了对于完全同步时钟的需要。这个技术通过移除对于在每个路由器都同步FIFO的需要而便于多时钟设计(其中与不同路由器关联的核可在不同频率操作)。然而,例证的实施例可容易地适合于与具有显式时钟和级敏感的控制信号的完全同步的NoC一起工作。同步分组交换NoC可包括基于全局时钟与它们的邻居通信的路由器。从而,同步NoC中的所有路由器都操作在同一频率。在各种同步实现中,不需要显式信用跟踪电路,因为放置触发器和锁存器连同存储元件的基于准予和请求的时钟门控可实现相同结果。电路交换网的时钟可以从分组交换网的时钟导出,并且可以是分组交换网的时钟的多倍,以将最坏情况的电路交换信道设置考虑进去。同步的分组和电路交换网时钟还消除了对于优先级FIFO处置来自独立时钟域的读写操作的需要。
图5例证了按照某些实施例的使用高带宽端口集从源逻辑传递数据的示例方法500。方法500开始于步骤502,其中多个预留请求由源逻辑(例如核208)同时发送到核IN端口(尽管每当发送预留请求时,不需要同时发送多个预留请求)。这些预留请求可各包含经由NoC的分组交换部分传递的预留分组。每个预留分组可包含目的地逻辑的地址410(以及可选的分组数据412)。源逻辑通过核IN端口在专用信道上向路由器204的适当OUT端口发送每个预留分组。预留分组可在两个或更多个专用信道上同时发送。例如,源逻辑可同时将第一预留请求发送到北OUT端口,并将第二预留请求发送到南OUT端口。作为另一示例,源逻辑可同时向所有OUT端口(除了核OUT端口)发送单独的预留请求。连同预留请求,控制信号(例如请求信号414或电路使能信号418)可沿专用信道发送到每个OUT端口(除了核OUT端口)以便于建立预留。每个OUT端口在到目的地逻辑的路径上将其接收的预留请求转发到另一路由器。例如,基于查找表或在给定路由器中执行的其它路由协议,预留分组沿从源逻辑到目的地逻辑的路径转发。
在步骤504,确定是否每个预留在从源逻辑到相应目的地逻辑的路径上都具有最高优先级。例如,如果从源到目的地的每个优先级FIFO都包含与FIFO的最高优先级时隙中的预留关联的条目,则预留可被视为具有最高优先级。如果预留没有最高优先级,则预留等待,直到它具有最高优先级为止,其中在步骤506,在源逻辑与目的地逻辑之间建立电路交换信道。为了建立电路交换信道,可发送适当控制信号以控制沿从源逻辑到目的地逻辑的路径的每个路由器处的各种多路分解器(例如以传递握手信号328和330)和多路复用器(例如以传递电路数据350)。在各种实施例中,从相应路由器的优先级FIFO发送控制信号。然而,由于存在从核IN端口到其它端口集的每个OUT端口的专用信道,因此在核IN端口不需要用于尾信号328和流信号330的此类多路分解器,以便建立电路交换信道(从而,在核IN端口中不需要优先级FIFO)。
可同时存在来自源逻辑的多个电路交换信道。作为示例,可从源逻辑通过北OUT端口并在目的地逻辑上建立第一电路交换信道,同时可从源逻辑通过南OUT端口并在其它目的地逻辑上建立第二电路交换信道。作为另一示例,从源逻辑并且通过每一个OUT端口(除了核OUT端口)同时存在多个电路交换信道。
在建立电路交换信道之后,在步骤508,在那个电路交换信道上,发生源逻辑与目的地逻辑之间的数据通信。从源逻辑到不同目的地逻辑的两个或更多传送可同时发生。每个传送都可包含一个或多个数据段,其大小由数据总线设置。在具有电路流播的实施例中,在信道关闭之前,多段可从源逻辑传递到目的地逻辑。如上面所说明的,在一个实施例中,使用具有在从核到每个其它端口的专用信道上发送的前向(流、尾)和反向(确认)握手信号的两阶段握手来执行通信。在步骤510,源逻辑接收指示成功接收到传递的每个电路交换段传送的确认。对于每个电路交换信道,当接收到最后一个确认信号时,关闭电路交换信道。
在图5中例证的其中一些步骤适当地被组合、修改或删除,并且附加步骤也可被添加到流程图。此外,步骤可按任何适合的次序执行,不脱离具体实施例的范围。
图6例证了按照某些实施例使用高带宽端口集向目的地逻辑传递数据的示例方法。方法600开始于步骤602,在此目的地逻辑(例如核208)接收预留请求。目的地逻辑可具有专用信道以从路由器的每个IN端口(除了核IN端口)接收预留请求。因而,可同时在两个或更多个专用信道上接收预留分组。例如,目的地逻辑可同时从北IN端口接收第一预留请求,并从南IN端口接收第二预留请求。作为另一示例,目的地逻辑可同时从所有OUT端口(除了核IN端口)接收单独的预留请求。连同预留请求,控制信号(例如请求信号414或电路使能信号418)可沿专用信道从每个IN端口(除了核IN端口)接收。
在步骤604,确定是否每个预留在从相应源逻辑到目的地逻辑的路径上都具有最高优先级。如果预留没有最高优先级,则预留等待,直到它是最高优先级为止,其中在步骤606,在源逻辑与目的地逻辑之间建立电路交换信道。如早前说明的,为了建立电路交换信道,可发送适当控制信号以控制沿从源逻辑到目的地逻辑的路径的每个路由器处的各种多路分解器和多路复用器。然而,由于在核OUT端口与目的地逻辑的路由器的其它端口集的每个IN端口之间存在专用信道,因此在核OUT端口处不需要多路复用器以便建立电路交换信道。而且,所有反转触发器都可被启用,因为核可接收4个并行的尾信号428和流信号430。从而,在核OUT端口中不需要优先级FIFO来选择一组数据或尾信号或流信号,其在其它OUT端口中是必要的。
到目的地逻辑的多个电路交换信道可同时存在。作为示例,可从第一源逻辑通过北IN端口并到目的地逻辑建立第一电路交换信道,同时可从第二源逻辑通过南IN端口并到目的地逻辑建立第二电路交换信道。作为另一示例,可同时存在通过路由器的每一个IN端口(除了核IN端口)通过核OUT端口到目的地逻辑的多个电路交换信道。
在建立电路交换信道之后,在步骤608,在那个电路交换信道上,发生源逻辑与目的地逻辑之间的数据通信。如所指示的,从不同源逻辑到目的地逻辑的两个或更多传送可同时发生(尽管这在每个传送中不是必要的情况)。每个传送都可包含一个或多个数据段,其大小由数据总线设置。在具有电路流播的实施例中,在信道关闭之前,多段可从源逻辑传递到目的地逻辑。如上面所说明的,在一个实施例中,使用具有在到和从核OUT端口到其它端口集的每个IN端口的专用信道上发送的前向(流、尾)和反向(确认)握手信号的两阶段握手来执行通信。在步骤610,目的地逻辑发送指示成功接收到传递的每个电路交换段传送的确认。对于每个电路交换信道,当相应源逻辑接收到最后一个确认信号时,关闭电路交换信道。
在图6中例证的一些步骤可适当地组合、修改或删除,并且附加步骤也可被添加到流程图。此外,步骤可按任何适合的次序执行,不脱离具体实施例的范围。
图7例证了按照一个实施例的用于示例计算系统的框图的另一实施例。在此图中,描绘了按照本公开的片上系统(SOC)设计的实施例。作为特定例证性示例,SOC 700包含在用户设备(UE)中。在一个实施例中,UE指的是由最终用户用于通信的任何装置,诸如手持电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本或任何其它类似通信装置。经常,UE连接到基站或节点,其潜在地实质上对应于GSM网络中的移动台(MS)。
在此,SOC 700包含2个核,即706和707。类似于以上论述,核706和707可符合指令集架构,诸如基于Intel®架构CoreTM的处理器、高级微装置公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计或其顾客以及它们的被许可方或采纳方。核706和707耦合到高速缓存控制器708,其与总线接口单元709和L2高速缓存710关联以与系统700的其它部分通信。互连710包含片上互连,诸如IOSF、AMBA或上面讨论的其它互连,其潜在地实现了所描述的公开的一个或多个方面。
接口710提供了到其它组件提供通信信道,诸如与SIM卡对接的订户身份模块(SIM)730、保存引导代码以便由核706和707执行以初始化和引导SOC 700的引导ROM 735、与外部存储器(例如DRAM 760)对接的SDRAM控制器740、与非易失性存储器(例如闪存765)对接的闪存控制器745、与外围装置对接的外围控制器Q1650(例如串行外围接口)、显示和接收输入(例如启用触摸的输入)的视频编解码器720和视频接口725、执行图形相关计算的GPU 715等。这些接口中的任何接口都可结合本文描述的公开的各方面。
此外,系统例证了用于通信的外围装置,诸如蓝牙模块770、3G调制解调器775、GPS785和WiFi 785。注意,如上所述,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 (23)

1.一种处理器,包括:
第一路由器,包括多个端口集,其中所述多个端口集包括:
第一端口集,包括输入端口和输出端口;
第二多个端口集,其中所述第二多个端口集中的每个端口集包括:
输入端口,要耦合到所述第一端口集的输出端口;以及
输出端口,要耦合到所述第一端口集的输入端口;并且
其中所述第一端口集的输入端口要同时将电路交换数据从所述处理器的核提供到所述第二多个端口集中的每个端口集,并且其中所述第一端口集的输出端口要同时将电路交换数据从所述第二多个端口集中的每个端口集提供到所述核。
2.如权利要求1所述的处理器,其中所述第二多个端口集中的端口集的输出端口要进一步耦合到所述第二多个端口集中的第二端口集的输入端口,并且其中所述第二多个端口集中的端口集的输入端口要进一步耦合到所述第二多个端口集中的第二端口集的输出端口。
3.如权利要求1所述的处理器,其中所述第一端口集的输入端口要进一步同时将分组交换数据从所述核提供到所述第二多个端口集。
4.如权利要求1所述的处理器,其中所述第一端口集的输出端口要进一步同时将分组交换数据从所述第二多个端口集提供到所述核。
5.如权利要求1所述的处理器,其中所述第二多个端口集中的端口集的输入端口要从所述处理器的另一路由器的对应端口接收数据。
6.如权利要求1所述的处理器,其中所述第二多个端口集中的端口集的输出端口要将从所述核接收的数据提供到所述处理器的另一路由器的对应端口。
7.如权利要求1所述的处理器,其中所述处理器进一步包括多个路由器以通过所述第二多个端口集与所述第一路由器通信。
8.如权利要求7所述的处理器,其中管芯包括所述处理器。
9.如权利要求7所述的处理器,其中所述多个路由器要根据源同步协议通信。
10.如权利要求7所述的处理器,其中所述多个路由器要根据同步协议通信。
11.如权利要求1所述的处理器,其中所述第一端口集的输出端口进一步包括第一多个触发器集,所述第一多个触发器集中的每个触发器集存储由所述第二多个端口集的不同输入端口提供的分组数据,其中所述第一多个触发器集中的每个触发器集要被同时启用。
12.如权利要求11所述的处理器,其中所述第二多个端口集的输出端口进一步包括多个触发器,所述多个触发器中的每个触发器存储由所述第二多个端口集的输入端口或所述第一端口集的输入端口提供的分组数据。
13. 如权利要求1所述的处理器,其中:
所述第一端口集的输入端口和输出端口各包括进入相应端口和退出所述相应端口的相等数量的携带电路交换数据的导线;以及
所述第一端口集的输入端口和输出端口各包括进入所述相应端口和退出所述相应端口的相等数量的携带分组交换数据的的导线。
14. 如权利要求1所述的处理器,其中:
在所述第一集的输出端口处的从所述第二多个端口集中的输入端口同时接收的数据之间,所述第一端口集不进行仲裁;以及
在从所述第一集的输入端口向所述第二多个端口集的输出端口同时发送的数据之间,所述第一端口集不进行仲裁。
15.一种设备,包括:
第一端口集,包括输入端口和输出端口;
多个第二端口集,其中每一个所述第二端口集包括:
输入端口,耦合到所述第一端口集的输出端口;
输出端口,耦合到所述第一端口集的输入端口;并且
其中所述多个第二端口集各要以第一最大带宽通信,并且所述第一端口集要以高于所述第一最大带宽的第二最大带宽通信。
16.如权利要求15所述的设备,进一步包括:核,要从所述第一端口集的输出端口接收数据,并要将数据提供到所述第一端口集的输入端口。
17.如权利要求15所述的设备,进一步包括多个连接,每个连接要将所述第一端口集的输入端口耦合到所述第二端口集的不同输出端口。
18.如权利要求17所述的设备,其中:
所述多个连接中的第一连接要将第一电路交换数据从所述第一端口集的输入端口传递到所述多个第二端口集中的端口集的输出端口;
所述多个连接中的第二连接要将第二电路交换数据从所述第一端口集的输入端口传递到所述多个第二端口集中的第二端口集的输出端口;以及
所述第一电路交换数据和所述第二电路交换数据通过所述第一连接和第二连接同时传递。
19.如权利要求17所述的设备,其中:
所述多个连接中的第一连接要传递第一控制数据以从所述第一端口集的输入端口建立第一电路交换数据连接;
所述多个连接中的第二连接要传递第二控制数据以从所述第一端口集的输入端口建立第二电路交换数据连接;以及
所述第一控制数据和所述第二控制数据通过所述第一连接和第二连接同时传递。
20. 一种非暂态机器可读介质,包含表示结构的信息,当构造时所述结构要配置成:
从处理器的核向路由器的第一输入端口提供第一电路交换数据;以及
同时将所述第一电路交换数据的第一部分从所述路由器的所述第一输入端口传递到所述路由器的第一输出端口,并将所述第一电路交换数据的第二部分从所述路由器的所述第一输入端口传递到所述路由器的第二输出端口。
21. 如权利要求20所述的介质,当构造时所述结构要进一步配置成:
在所述路由器的第二输入端口接收第二电路交换数据的第一部分,并且在所述路由器的第三输入端口接收第二电路交换数据的第二部分;以及
通过所述第二和第三输入端口,经由所述路由器的第三输出端口向所述处理器的所述核同时传递所述第二电路交换数据的所述第一和第二部分。
22.一种系统,包括:
多个核,各与片上网络的路由器关联,每一个所述路由器包括:
第一端口集,包括输入端口和输出端口;
多个第二端口集,其中每一个所述第二端口集包括:
输入端口,耦合到所述第一端口集的输出端口;
输出端口,耦合到所述第一端口集的输入端口;并且
其中所述多个第二端口集各要以第一最大带宽通信,并且所述第一端口集要以高于所述第一最大带宽的第二最大带宽通信。
23. 一种系统,包括:
从处理器的核向路由器的第一输入端口提供第一电路交换数据的部件;以及
同时将所述第一电路交换数据的第一部分从所述路由器的所述第一输入端口传递到所述路由器的第一输出端口并将所述第一电路交换数据的第二部分从所述路由器的所述第一输入端口传递到所述路由器的第二输出端口的部件。
CN201580062818.9A 2014-12-17 2015-11-18 到片上网络的接口的高带宽核 Active CN107111584B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/574352 2014-12-17
US14/574,352 US11321263B2 (en) 2014-12-17 2014-12-17 High bandwidth core to network-on-chip interface
PCT/US2015/061211 WO2016099766A1 (en) 2014-12-17 2015-11-18 High bandwidth core to network-on-chip interface

Publications (2)

Publication Number Publication Date
CN107111584A true CN107111584A (zh) 2017-08-29
CN107111584B CN107111584B (zh) 2020-11-10

Family

ID=56127277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580062818.9A Active CN107111584B (zh) 2014-12-17 2015-11-18 到片上网络的接口的高带宽核

Country Status (5)

Country Link
US (2) US11321263B2 (zh)
EP (1) EP3235190B1 (zh)
CN (1) CN107111584B (zh)
TW (1) TWI569153B (zh)
WO (1) WO2016099766A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11196587B2 (en) * 2016-11-23 2021-12-07 DeGirum Corporation Permutated ring network
US10868622B2 (en) * 2017-06-22 2020-12-15 Intel IP Corporation Control and data multiplexing
US10810337B2 (en) * 2017-11-03 2020-10-20 Mediatek Singapore Pte. Ltd. Method for modeling glitch of logic gates
FR3124284B1 (fr) * 2021-06-21 2024-04-19 St Microelectronics Srl Système sur puce comprenant une interface de connexion entre des dispositifs maîtres et des dispositifs esclaves
GB202202793D0 (en) * 2022-03-01 2022-04-13 Graphcore Ltd External exchange connectivity

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020048183A1 (en) * 1998-01-29 2002-04-25 Klein Dean A. High speed data bus
US20060209846A1 (en) * 2005-03-08 2006-09-21 Commissariat A L'energie Atomique Globally asynchronous communication architecture for system on chip
US20070226742A1 (en) * 2006-03-22 2007-09-27 Mediatek Inc. Method for tuning service performance of multi-task system and multi-task system thereof
CN201134097Y (zh) * 2007-12-26 2008-10-15 浪潮电子信息产业股份有限公司 集成raid和sas控制ip核的soc芯片
US20080273531A1 (en) * 2007-05-03 2008-11-06 Xyratex Technology Limited Data switch and a method of switching
CN203133833U (zh) * 2013-03-21 2013-08-14 浪潮电子信息产业股份有限公司 一种pcie 和ib信号可互换的高速连接卡
US20140118176A1 (en) * 2012-10-31 2014-05-01 Qualcomm Incorporated Methods and apparatus for a successive approximation register analog-to-digital converter
US20140269751A1 (en) * 2013-03-15 2014-09-18 Oracle International Corporation Prediction-based switch allocator

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6512784B2 (en) 2001-03-01 2003-01-28 Linex Technologies, Inc. Efficient sharing of capacity by remote stations using circuit switching and packet switching
US8284766B2 (en) 2007-12-28 2012-10-09 Intel Corporation Multi-core processor and method of communicating across a die
US8732331B2 (en) * 2008-10-02 2014-05-20 Hewlett-Packard Development Company, L.P. Managing latencies in a multiprocessor interconnect
US9262270B2 (en) 2012-12-28 2016-02-16 Intel Corporation Live error recovery
US8934377B2 (en) 2013-03-11 2015-01-13 Netspeed Systems Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis
CN105164664B (zh) 2013-03-20 2018-06-15 英派尔科技开发有限公司 多核架构中的混合路由器
JP5814298B2 (ja) 2013-05-27 2015-11-17 株式会社半導体理工学研究センター ルータ
WO2014209391A1 (en) 2013-06-28 2014-12-31 Intel Corporation A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc)
EP3042304A4 (en) 2013-09-06 2017-06-07 Intel Corporation Architecture and method for hybrid circuit-switched and packet-switched router
JP6247398B2 (ja) * 2013-09-12 2017-12-13 エンパイア テクノロジー ディベロップメント エルエルシー オンチップネットワークにおける回線交換事前予約
US9924490B2 (en) * 2013-10-09 2018-03-20 International Business Machines Corporation Scaling multi-core neurosynaptic networks across chip boundaries
US9699096B2 (en) * 2013-12-26 2017-07-04 Intel Corporation Priority-based routing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020048183A1 (en) * 1998-01-29 2002-04-25 Klein Dean A. High speed data bus
US20060209846A1 (en) * 2005-03-08 2006-09-21 Commissariat A L'energie Atomique Globally asynchronous communication architecture for system on chip
US20070226742A1 (en) * 2006-03-22 2007-09-27 Mediatek Inc. Method for tuning service performance of multi-task system and multi-task system thereof
US20080273531A1 (en) * 2007-05-03 2008-11-06 Xyratex Technology Limited Data switch and a method of switching
CN201134097Y (zh) * 2007-12-26 2008-10-15 浪潮电子信息产业股份有限公司 集成raid和sas控制ip核的soc芯片
US20140118176A1 (en) * 2012-10-31 2014-05-01 Qualcomm Incorporated Methods and apparatus for a successive approximation register analog-to-digital converter
US20140269751A1 (en) * 2013-03-15 2014-09-18 Oracle International Corporation Prediction-based switch allocator
CN203133833U (zh) * 2013-03-21 2013-08-14 浪潮电子信息产业股份有限公司 一种pcie 和ib信号可互换的高速连接卡

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HSIN-CHOU CHI ,CHIA-MING WU ,SUNG-TZE WU等: "A Switch Supporting Circuit and Packet Switching for On-Chip Networks", 《2006 IEEE DESIGN AND DIAGNOSTICS OF ELECTRONIC CIRCUITS AND SYSTEMS》 *
陈依群,铁玲,顾尚杰等: "QoS路由器关键技术分析", 《计算机工程》 *

Also Published As

Publication number Publication date
TWI569153B (zh) 2017-02-01
US11868296B2 (en) 2024-01-09
TW201636864A (zh) 2016-10-16
WO2016099766A1 (en) 2016-06-23
US11321263B2 (en) 2022-05-03
EP3235190B1 (en) 2022-10-12
US20160179728A1 (en) 2016-06-23
CN107111584B (zh) 2020-11-10
EP3235190A1 (en) 2017-10-25
EP3235190A4 (en) 2018-07-11
US20220214988A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
CN107113253B (zh) 用于片上网络的空间划分的电路交换信道
CN107113254A (zh) 自适应交换芯片上网络
CN105247817B (zh) 用于源同步电路交换片上网络(NoC)的方法、装置和系统
CN107078971A (zh) 组合保证吞吐量和尽力而为的片上网络
CN109154924A (zh) 多个上行链路端口设备
CN107077521A (zh) 片上系统配置元数据
CN107112042A (zh) 数据信号的边沿感知同步
CN107113227B (zh) 流水线化混合分组/电路交换片上网络
CN107111584A (zh) 到片上网络的接口的高带宽核
CN104756097A (zh) 一致性协议表
CN110262923A (zh) 带内重定时器寄存器访问
CN105793819A (zh) 包括混合处理器核的片上系统(soc)
CN104050138A (zh) 用于执行链路训练与均衡的装置、系统、和方法
CN107005477A (zh) 用于片上网络的基于链路延迟的路由装置
CN107005492B (zh) 用于芯片上网络上的多播和缩减通信的系统
CN109844725A (zh) 点对点互连中的非对称通道
CN109582998A (zh) 小巧PCIe端点的根复合体集成端点仿真
CN108292267A (zh) 总线-装置-功能地址空间的推测性枚举
CN104932996A (zh) 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统
CN107003944B (zh) 跨分布式存储器的指针追踪
CN107003838A (zh) 解码信息库
CN104050140B (zh) 用于混合通道停转或无锁总线架构的方法、设备、系统
CN107113252A (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