CN107113254A - 自适应交换芯片上网络 - Google Patents
自适应交换芯片上网络 Download PDFInfo
- Publication number
- CN107113254A CN107113254A CN201580063620.2A CN201580063620A CN107113254A CN 107113254 A CN107113254 A CN 107113254A CN 201580063620 A CN201580063620 A CN 201580063620A CN 107113254 A CN107113254 A CN 107113254A
- Authority
- CN
- China
- Prior art keywords
- router
- data
- port
- memory element
- switched mode
- 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
Links
- 230000003044 adaptive effect Effects 0.000 title description 18
- 238000004891 communication Methods 0.000 claims abstract description 66
- 230000015654 memory Effects 0.000 claims description 85
- 238000003860 storage Methods 0.000 claims description 28
- 230000000694 effects Effects 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 11
- 230000001052 transient effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 description 39
- 238000000034 method Methods 0.000 description 23
- 238000012546 transfer Methods 0.000 description 20
- 238000013461 design Methods 0.000 description 15
- 238000005457 optimization Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 239000012160 loading buffer Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- -1 ILTB 120 Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010009 beating Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 201000006549 dyspepsia Diseases 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
接收将与第一数据流关联的分组交换保留请求。选择通信模式。通信模式将为电路交换模式或分组交换模式。第一数据流的至少部分根据通信模式被传递。
Description
对相关申请的交叉引用
本申请要求对2014年12月22日提交的名称为“ADAPTIVELY SWITCHED NETWORK-ON-CHIP”的美国非临时专利申请No. 14/579729的权益和优先权,该申请通过引用以其整体被结合于本文中。
技术领域
本公开一般涉及计算机开发领域,并且更具体地说,涉及自适应交换芯片上网络(NoC)。
背景技术
随着多核处理器中核和知识产权(IP)块的数量增多,芯片上网络(NoC,用于核间的管芯上通信)在能够实现可升级的性能中是重要的。在此类情形中,组件间的通信成为关键动力和性能限制器。NoC能够实现与路由器高效地共享用于通信的芯片上布线资源,以控制和仲裁在通信组件之间数据的流动。NoC可利用分组交换通道或电路交换通道,在NoC的核之间发送数据。
附图说明
图1示出根据某些实施例,对于包括多核处理器的示例计算系统的框图。
图2示出根据某些实施例,包括含多个路由器的芯片上网络(NoC)系统的处理器的框图。
图3A示出根据某些实施例,经由分组交换通道耦合的示例路由器端口。
图3B示出根据某些实施例,经由电路交换通道耦合的示例路由器端口。
图3C示出根据某些实施例,经由可在分组交换通道与电路交换通道之间自适应交换的通道而耦合的示例路由器端口。
图4示出根据某些实施例的路由器端口的示例链表(linked list)逻辑。
图5示出根据某些实施例,具有自适应交换通道的路由器的示例端口。
图6示出根据某些实施例,用于通过自适应交换通道由路由器传递数据和为其保留资源的示例方法。
图7示出根据某些实施例,用于经由路由器的自适应交换通道传递数据的示例方法。
图8示出根据某些实施例,用于示例计算系统的另一框图。
各种图中相似的参考标号和指定指示相似的元件。
具体实施方式
在后面的描述中,众多特定细节被阐述,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构的(architectural)和微架构的细节、特定寄存器配置、特定指令类型、特定系统组件、特定度量(measurement)/高度、特定处理器管线级和操作等等的示例,以便提供对本公开的透彻理解。然而,对于本领域中技术人员来说将显而易见的是,这些特定细节无需被采用来实践本公开。在其它情形中,公知的组件或方法,诸如特定和备选的处理器架构、用于描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、算法在代码中的特定表达、特定下电(powerdown)和门控技术/逻辑和计算机系统的其它特定操作细节,没有被详细地描述,以便避免不必要地使本公开难以理解。
尽管后面的实施例可参考特定集成电路中(诸如在计算平台或微处理器中)的能量节约和能量效率来描述,但其它实施例可应用于其它类型的集成电路和逻辑装置。本文中所描述的实施例的相似技术和教导可被应用于其它类型的电路或半导体装置,其可还受益于更好的能量效率和能量节约。例如,公开的实施例不被限制于桌面计算机系统或Ultrabooks™,而是可还被用于其它装置中,诸如服务器计算机系统、手持装置、平板、其它薄的笔记本、芯片上系统(SOC)装置、和嵌入式应用。手持装置的一些示例包括蜂窝电话、互联网协议装置、数字摄像机、个人数字助理(PDA)、和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络集线器(hub)、广域网(WAN)交换机、或能够执行在下面所教导的功能和操作的任何其它系统。此外,本文中所描述的设备、方法、和系统不被限制于物理计算装置,而是可还涉及对能量节约和效率的软件优化。正如将在下面的描述中变得容易明白的,本文中所描述的方法、设备和系统的实施例(无论关于硬件、固件、软件、或是它们的组合)对与性能考虑相权衡的“绿色技术”未来是至关重要的。
随着计算系统在进步,其中的组件正变得更复杂。作为结果,互连架构(用于组件间耦合和通信)在复杂性中也在增加,以确保为优化的组件操作满足带宽要求。此外,不同市场段(segment)需求互连架构的不同方面以适合市场需要。例如,服务器要求更高的性能,而移动生态系统有时能够为功率节省(power saving)牺牲整体性能。然而,用最大的功率节省来提供最高可能的性能是大多数构造(fabric)的单一目的。在下面,多个互连被讨论,其将潜在地受益于本文中所描述的公开的方面。
参考图1,对于计算系统(包括多核处理器)的框图的实施例被描绘。处理器100包括任何处理器或处理装置,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、芯片上系统(SOC)、或执行代码的其它装置。在一个实施例中,处理器100包括至少两个核—核101和102,其可包括非对称核或对称核(所示出的实施例)。然而,处理器100可包括任何数量的处理元件,其可以是对称的或非对称的。
在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽(thread slot)、线程、处理单元、上下文、上下文单元、逻辑的处理器、硬件线程、核、和/或有能力为处理器保存状态(诸如执行状态或架构状态)的任何其它元件。换句话说,在一个实施例中,处理元件指的是有能力独立地与代码(诸如软件线程、操作系统、应用、或其它代码)相关联的任何硬件。物理处理器(或处理器插座)典型地指的是集成电路,其潜在地包括任何数量的其它处理元件,诸如核或硬件线程。
核通常指的是位于集成电路上的逻辑,其有能力维持独立架构状态,其中每个独立维持的架构状态关联于至少一些专用执行资源。相较于核,硬件线程典型地指的是位于集成电路上有能力维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。正如能被看见的,当某些资源被共享且其它资源被专用于架构状态时,硬件线程和核的命名之间的界线(line)重叠。通常还有,核和硬件线程被操作系统视为各个逻辑的处理器,其中操作系统能够单独地将操作调度于每个逻辑的处理器上。
正如图1中所示出的,物理处理器100包括两个核—核101和102。在这里,核101和102被认为是对称核,即具有相同配置、功能单元、和/或逻辑的核。在另一实施例中,核101包括乱序处理器核,而核102包括有序处理器核。然而,核101和102可被单独地被选自任何类型的核,诸如原生核(native core)、软件管理核、适应于执行原生的指令集架构(ISA)的核、适应于执行转换的指令集架构(ISA)的核、协设计(co-designed)核、或其它已知的核。在异质核环境(即,非对称核)中,转换的某个形式(诸如二进制转换)可被用于在一个或两个核上调度或执行代码。还有为了推进讨论,核101中示出的功能单元在下面被进一步详细地描述,因为在所描绘的实施例中核102中的单元以相似的方式操作。
正如所描绘的,核101包括两个硬件线程101a和101b,其可还被称为硬件线程槽101a和101b。因此,软件实体(诸如操作系统)在一个实施例中潜在地将处理器100视为四个分离的处理器,即,四个逻辑的处理器或处理元件,其有能力并发执行四个软件线程。正如在上面间接提到的,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可与架构状态寄存器102a相关联,且第四线程可与架构状态寄存器102b相关联。在这里,架构状态寄存器(101a、101b、102a、和102b)的每个可被称为处理元件、线程槽、或线程单元,正如上面所描述的。正如所示的,架构状态寄存器101a被复制在架构状态寄存器101b中,使得各个架构状态/上下文有能力对于逻辑的处理器101a和逻辑的处理器101b被存储。在核101中,其它更小的资源(诸如在分配器和重命名器块130中的指令指针和重命名逻辑)可还对于线程101a和101b被复制。一些资源(诸如在重排序/引退单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器、和队列)通过分区(partitioning)可被共享。其它资源,诸如通用内部寄存器、页表基址寄存器、低级别数据高速缓存和数据TLB115、执行单元140、和乱序单元135的部分被潜在地完全共享。
处理器100通常包括其它资源,其可被完全共享、通过分区共享、或由处理元件专用/专用于处理元件。在图1中,纯示范性处理器(带有处理器的说明性的逻辑的单元/资源)的一实施例被示出。注意到,处理器可包括,或省略,任何这些功能单元,以及包括任何其它已知的未描绘的功能单元、逻辑、或固件。正如所示的,核101包括简化的、有代表性的乱序(OOO)处理器核。但有序处理器可被利用于不同的实施例中。OOO核包括分支目标缓冲器120(以用于预测要被执行/采用的分支)和指令转换缓冲器(I-TLB)120(以用于存储对于指令的地址转换条目)。
核101进一步包括解码模块125(被耦合至取单元120),以用于对取的元件进行解码。在一个实施例中,取逻辑包括与线程槽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。数据高速缓存要存储最近使用的/操作的元件,诸如数据操作数,其被潜在地被保存于存储器一致性状态(memory coherency state)中。D-TLB要存储最近的虚拟的/线性的到物理地址转换。作为特定的示例,处理器可包括页表结构,以将物理存储器分解为多个虚拟页。
在这里,核101和102共享对更高级别或更远外端(further-out)高速缓存(诸如与芯片上接口110相关联的第二级别高速缓存)的访问。注意到,更高级别或更远外端指的是增加的或变得更远离执行单元的高速缓存级别。在一个实施例中,更高级别高速缓存是最后级别高速缓存—处理器100上存储器层级中最后的高速缓存—诸如第二或第三级别数据高速缓存。然而,更高级别高速缓存并不是如此受限的,因为它可被关联于或包括指令高速缓存。踪迹高速缓存—一种指令高速缓存—转而可被耦合在解码器125后,以存储最近解码的踪迹。在这里,指令潜在地指的是宏指令(即,由解码器识别的一般指令),其可解码成多个微指令(微操作)。
在所描绘的配置中,处理器100也包括芯片上接口模块110。在历史上,存储器控制器(其在下面被更详细地描述)已被包括在处理器100外部的计算系统中。在该情景中,芯片上接口11要与处理器100外部的装置通信,诸如系统存储器175,芯片集(通常包括用于连接至存储器175的存储器控制器集线器和用于连接外围装置的I/O控制器集线器)、存储器控制器集线器、北桥、或其它集成线路。且在该情景中,总线105可包括任何已知的互连,诸如多点总线(multi-drop bus)、点对点互连、串行互连、并行总线、一致的(例如高速缓存一致的)总线、分层协议架构、差分总线、和GTL总线。
存储器175可被专用于处理器100或与系统中其它装置共享。存储器175的类型的普通示例包括DRAM、SRAM、非易失存储器(NV存储器)、和其它已知的存储装置。注意到,装置180可包括图形加速器、耦合至存储器控制器集线器的卡或处理器、耦合至I/O控制器集线器的数据存储装置、无线收发器、闪存装置(flash device)、音频控制器、网络控制器、或其它已知的装置。
然而最近,随着更多逻辑和装置正被集成在单一管芯(诸如SOC)上,这些装置的每个可被结合在处理器100上。例如在一个实施例中,存储器控制器集线器与处理器100在相同的封装和/或管芯上。此处,核的部分(核上部分)110包括用于与其它装置(诸如存储器175或图形装置180)进行接口的一个或更多控制器。包括互连和用于与此类装置进行接口的控制器的配置通常被称为核上(on-core)(或非核(un-core)配置)。作为示例,芯片上接口110包括用于芯片上通信的环形互连和用于芯片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多装置(诸如网络接口、协处理器、存储器175、图形处理器180、和任何其它已知的计算机装置/接口)可被集成在单一管芯或集成电路上,以给小型形状因子(small form factor)提供高功能性和低功率消耗。
在一个实施例中,处理器100有能力执行编译器、优化、和/或转换器代码177以编译、转换、和/或优化应用代码176以支持本文中所描述的设备和方法或以与其进行接口。编译器通常包括程序或程序集,以用于转换源文本/代码为目标文本/代码。通常,用编译器的程序/应用代码的编译被完成于多阶段和多遍(pass)中以变换高级别程序设计语言代码为低级别机器或汇编语言代码。然而,单遍编译器可仍被利用于简单编译。编译器可利用任何已知的编译技术和执行任何已知的编译器操作,诸如词汇分析、预处理、解析、语义分析、代码生成、代码变换、和代码优化。
更大型的编译器通常包括多个阶段,但最常见的是,这些阶段被包括在两个一般的阶段内:(1)前端,即一般地在其中句法处理、语义处理、和某个变换/优化可发生,和(2)后端,即一般地在其中分析、变换、优化、和代码生成发生。一些编译器指的是中间项(middle),其示出在编译器的前端和后端之间划界的模糊。作为结果,对插入、关联、生成、或编译器的其它操作的引用可发生在任何前述阶段或遍中,以及编译器的任何其它已知的阶段或遍中。作为说明性示例,编译器潜在地将操作、调用(call)、函数等插入在编译的一个或更多阶段中,诸如在编译的前端阶段中插入调用/操作和随后在变换阶段期间将所述调用/操作变换成较低级别别代码。注意到,在动态编译期间,编译器代码或动态优化代码可插入此类操作/调用,以及在运行时间期间优化代码以用于执行。作为特定的说明性示例,二进制代码(已经编译的代码)可在运行时间期间被动态地优化。此处,程序代码可包括动态优化代码、二进制代码、或其组合。
类似于编译器,转换器(诸如二进制转换器)静态地或动态地转换代码以优化和/或转换代码。因此,对执行代码、应用代码、程序代码、或其它软件环境的引用可指的是:(1)动态地或静态地执行编译器程序、优化代码优化器、或转换器,以编译程序代码、以维持软件结构、以执行其它操作、以优化代码、或以转换代码;(2)执行包括操作/调用的主程序代码,诸如已被优化的/编译的应用代码;(3)执行与主程序代码相关联的其它程序代码(诸如库),以维持软件结构、以执行其它软件相关操作、或以优化代码;或(4)其组合。
图2示出依照某些实施例的包括NoC系统(该系统包括多个路由器204)的处理器200的框图。处理器200可包括任何处理器或处理装置,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、SoC、或用于执行代码的其它装置。在具体的实施例中,处理器200在单一的管芯上被实现。
在所描绘的实施例中,处理器200包括布置在网格网络(grid network)中且通过双向链路耦合至彼此的多个网络元件202。然而,依照本公开的各种实施例的NoC可被应用于任何适合的网络拓扑(例如,分级网络或环形网络)、规模、总线宽度、和过程。每个网络元件202包括路由器204。路由器204可在网络(诸如分组交换网络和/或电路交换网络)中被通信地链接于彼此,因此能够实现在被连接至所述路由器的NoC的组件(诸如核、存储元件、或其它逻辑块)之间的通信。在所描绘的实施例中,每个路由器204可通信地耦合至其自己的核208(或其它逻辑块)。正如本文中所使用的,对核的引用可还应用于其它实施例,其中不同的逻辑块被用于代替核。例如,各种逻辑块可包括硬件加速器(例如,图形加速器、多媒体加速器、或视频编码/解码加速器)、I/O块、存储器控制器、或其它适合的固定功能逻辑。处理器200可包括任何数量的处理元件,其可以是对称的或非对称的。例如,处理器200的核208可包括非对称的核或对称的核。处理器200可包括用于作为分组交换网络和电路交换网络中的任一个或二者来操作的逻辑以提供管芯内通信。
在具体的实施例中,可使用分组交换网络的资源在各个路由器204之间传递分组。那就是,分组交换网络可提供在路由器(和它们相关联的核)之间的通信。分组可包括控制部分和数据部分。控制部分可包括分组的目的地地址,且数据部分可含有要在管芯100上被传递的特定数据。例如,控制部分可包括目的地地址,该目的地地址对应管芯的核或网络元件之一。分组交换网络可包括缓冲,因为从源到目的地并不保证专用路径且因此分组可需要暂时地被停留(如果两个或更多分组需要经过相同链路或互连)。作为示例,当分组从源行进至目的地时,分组可被缓冲(例如,通过触发器(flip flop))于相应路由器的每个。分组可被路由器204接收、传送和处理。分组交换网络可在近邻路由器之间使用点对点通信。分组的控制部分可基于分组时钟(诸如4 GHz时钟)在路由器之间被传输。分组的数据部分可基于类似的时钟(诸如4 GHz时钟)在路由器之间被传输。
在一实施例中,处理器200的路由器可被不同地提供于两个网络中或可通信于两个网络中,诸如分组交换网络和电路交换网络。此类通信手段(approach)可被命名为混合分组/电路交换网络。在此类实施例中,可使用分组交换网络和电路交换网络的资源在不同路由器204之间不同地传递分组。为传送单一数据分组,电路交换网络可分配完整路径,而分组交换网络可分配仅单一段(或互连)。在一些实施例中,对于路由器204之间数据的传送,分组交换网络可被利用以保留电路交换网络的资源。
路由器204可包括用于不同地耦合至邻接的网络元件202并与之相通信的多个端口集。例如,电路交换和/或分组交换信号可通过这些端口集被传递。路由器204的端口集可在逻辑上被划分(例如,根据邻接网络元件的方向和/或与此类元件进行业务交换的方向)。例如,路由器204可包括北端口集,其带有输入(“入(IN)”)和输出(“出(OUT)”)端口,它们被配置成(分别地)接收通信自和发送通信到位于相对路由器204的“北”方向中的网络元件202。另外地或备选地,路由器204可包括用于与相对南、西、东、或其它方向而定位的网络元件进行接口的类似端口集。在所描绘的实施例中,路由器204被配置用于X-第一、Y-第二路由选择,其中数据首先在东/西方向中且然后在北/南方向中移动。在其它实施例中,任何适合的路由选择方案可被使用。
在各种实施例中,路由器204还包括另一端口集,该端口集包括配置成(分别)接收来自网络的另一代理的通信和向其发送通信的输入端口和输出端口。在所描绘的实施例中,此端口集示出在路由器204的中心。在一个实施例中,这些端口用于与和路由器204相邻的,与其相通信的或以其它方式与其相关联的逻辑(诸如“本地”核208的处理器逻辑)进行通信。在本文中,此端口集将被称作为“核端口集”,尽管在一些实现中,它可与非核的逻辑进行接口。在另一实施例中,此端口集用于与在比路由器204的级别更高的网络层级结构的下一级别中的网络元件进行通信。在一个实施例中,东向链路和西向链路在一个金属层上,北向链路和南向链路在第二金属层上,并且核链路在第三金属层上。在一实施例中,路由器204包括用来提供端口间通信(inter-port communication)的路径的交叉开关交换和仲裁逻辑(诸如图2中所示的那个)。每个网络元件中的逻辑(诸如核208)可具有唯一的时钟和/或电压,或者可与NoC的一个或更多其它组件共享时钟和/或电压。
NoC中的业务拥塞限制了吞吐量,并且增大了数据传输等待时间。分组交换提供低等待时间和高吞吐量,但它在每个端口中要求存储元件(例如,触发器),由此消耗高功率。另一方面,电路交换不要求存储元件,并且是能量高效的,但其等待时间和吞吐量在拥塞网络中比分组交换更差。在电路交换网络中,分配的电路交换资源及活动数据传输阻塞了竞争相同网络资源的其它传输。电路交换或分组交换流量控制一般是全局和静态地被实现,不能对改变的业务条件进行调整。也就是说,现有NoC中的通道是分组交换或电路交换,并且NoC缺乏根据业务样式,灵活调整这些通道的交换模式的能力。这造成在NoC的不同区域中的业务热点和空闲资源的超量预配(overprovisioning)这二者。
在本公开的各种实施例中,NoC基于当前业务条件,自适应地改变其流量控制方法。例如,当在路由器端口中存在一个活动数据流或没有活动数据流时,端口可操作在电路交换模式中(例如,端口可在电路交换通道中传输数据)以节省能量。如果存在多个数据流进入端口,则端口可操作在分组交换模式中(例如,端口可执行信用-2分组交换传送)以减轻拥塞并服务于多个数据流。每个端口可独立操作以基于本地和暂时业务拥塞,改变流量控制模式。
本公开的各种实施例可包括类似于混合分组/电路交换网络的网络,其中网络的电路交换部分被替代为具有可基于业务拥塞在电路交换与分组交换模式之间进行自适应交换的通道的网络。因此,在一些实施例中,分组交换网络可为在路由器204之间数据的传输保留资源,并且自适应交换网络可允许数据在使用电路交换通道或分组交换通道的路由器之间进行递送。下面更详细地描述自适应交换网络。
图3A示出根据某些实施例,经由分组交换通道耦合的示例路由器端口204A和204B。在分组交换NoC中,输出端口302A和输入端口306A之一或两者包括存储元件314(例如,触发器)。在所描绘的实施例中,输出端口302A和输入端口306A均包括存储元件314。无论何时新数据从路由器204A的输入端口到达路由器204A的输出端口302A(mux 310可从到达的来自路由器204A的多个不同输入端口的数据的分组中选择新数据),数据被暂时存储在存储元件314A中,直至它被允许继续行进到路由器204B。在路由器204B,数据由存储元件314B存储,并且然后被广播或解复用到在其到数据的目的地的路径中下一路由器的途中路由器204B的输出端口。数据存储提供良好的等待时间和通过管线处理的吞吐量,但要求更高的时钟和数据功率。
图3B示出根据某些实施例,经由电路交换通道耦合的示例路由器端口204C和204D。电路交换通过消除在路由器204中的数据存储功率,实现更高的能量效率。这包括降低时钟功率和数据交换功率。在电路交换NoC中,数据在保留的从源到目的地核的电路交换通道上被传送,并且通过各种复用器(例如,mux 322)和解复用器(例如,demux 326)被传输。在混合分组/电路交换网络中,使用分组设定这些通道。分组存储每个路由器中少量的方向信息以控制电路交换通道的路由。一旦设定了电路交换通道,便跨通道流传送数据。在数据传输后,将通道解除分配以允许随后的数据传输。在分组交换和电路交换网络二者中,活动数据传输阻塞了竞争相同网络资源的其它传输。另外,在电路交换网络中,分配的电路交换通道阻塞其它传输(即使通道设定未完成,并且无数据正在通道上活动传送)。最小化拥塞的最佳电路交换资源利用和传输排序要求全局业务信息,而其在低等待时间系统中被获得是不实际的。
图3C示出根据某些实施例,经由可在分组交换通道与电路交换通道之间自适应地交换的通道而被耦合的示例路由器端口204E和204F。每个端口302C和306C包括用来存储在端口之间被递送的数据的存储元件(例如,锁存器334和342或触发器)。这些存储元件基于模式信号338和346有条件地操作。如果端口处于电路交换模式中,则相应存储元件保持打开且不消耗动态功率。在电路交换模式中,端口能量效率接近电路交换NoC的端口能量效率。在具体实施例中,如果在相同端口有多个活动流,则可将模式改变成分组交换模式。在此模式中,端口将以与分组交换NoC的方式类似的方式对存储元件计时以对数据传输进行管线处理。模式改变限于多个流到达一个端口所在的局部区域。其中存在较少业务的NoC的其它部分可留在电路交换模式以实现高能量效率。
在各种实施例中,自适应NoC可包括含多个路由器的NoC,所述多个路由器各自可操作以在相同通道上在分组交换通信与电路交换通信之间自适应地交换。在一些实施例中,NoC的路由器的多个端口的每个端口可操作以在分组交换通信与电路交换通信之间自适应交换。每个端口可基于在端口收到的活动流的数量,独立确定其是要在分组交换模式还是要在电路交换模式中操作。因此,对于跨在源逻辑与目的地逻辑之间的路径的具体数据传输,路径中的一个或更多路由器可在电路交换模式中传输数据,而一个或更多路由器可在分组交换模式中传输数据。
图4示出根据某些实施例的路由器端口的示例链表逻辑400。在一具体实施例中,链表逻辑400实现为硬件链表。在其它实施例中,链表逻辑400可以任何适合的方式实现,诸如软件或固件。
链表402中的每个条目包括前一索引字段(pidx 406)、下一索引字段(nidx 410)和数据字段(数据414)。条目的pidx 406指向置于链表中在该条目之前的条目槽(slot)。条目的nidx 410指向置于链表中在该条目之后的下一条目槽。数据414可指示与对应于条目的传输相关联的方向。在输出端口中,数据414可表示将在路由器的哪个输入端口接收数据(这使得控制信号能够被配置成使得通信可在输出端口与适当的输入之间进行)。在路由器的输入端口中,数据414可表示数据将发送到的路由器的输出端口(这能够实现适当的控制信号配置)。第一槽指针418可指向链表的头端(例如,这可以是在电路交换模式期间被处理的传输)。
在具体实施例中,链表402实现为阵列。条目可以任何顺序物理存储,但链表402允许路由器端口跟踪每个条目所表示的数据传输的顺序。在电路交换模式中,数据传输可以它们到达的顺序被处理。例如,链表402的头端可控制电路交换通道。在分组交换模式中,可循环链表402中的条目(即,你能够交织各种数据传输)。例如,在一个实施例中,如果数据传输具有需要从源逻辑转到目的地逻辑的多个流,则来自该流的一个或更多传输可作为一个或更多分组穿过端口,并且随后端口可将不同流的一个或更多传输作为一个或更多分组发送。端口可然后回到发送来自原始流的传输,或者发送来自完全不同流的传输。条目的指针(pidx 406和nidx 410)允许路由器正确地通过活动通道进行循环,其中通道由于变化的流长度而以未知的顺序被形成和解除分配。要求全局顺序,使得每个路由器知道正在处理哪个传输,而不必在路由器之间传递此信息。在具体实施例中,第一路由器的输出端口和第二路由器的输入端口(耦合到第一路由器的输出端口)具有同步链表402。也就是说,与具体传输有关的数据将占用每个链表中相同的槽。例如,如果所描绘的链表402是在路由器的输出端口,则在第二路由器的对应输入端口的链表可在pidx 406和nidx 410字段中包括相同数据(尽管方向数据414可以不同)。
链表402中条目的数量指示有多少活动流已到达端口。在具体实施例中,链表402中条目的数量确定端口是要在电路交换模式中还是在分组交换模式中操作。例如,如果在链表402中存在两个或更多条目,则端口将操作在分组交换模式中,否则其将以其它方式操作在电路交换模式中。在其它实施例中,其它适合的阈值(诸如三个或更多条目)能够用于确定端口何时应从电路交换模式交换到分组交换模式。
链表逻辑400还包括可操作以接收写数据信号434、写槽信号438和移除槽信号442的控制逻辑430。控制逻辑430使用这些信号添加,移除和修改链表402中的条目。写槽438由链表逻辑400的逻辑(未示出)计算,并且指示应将写数据434接收到数据字段414中的链表402的槽。写数据信号434可从由端口的分组交换部分所接收的保留请求分组导出(例如,方向逻辑可基于诸如在保留请求分组中含有的目的地地址的信息,确定方向数据)。移除槽信号442可从由端口的电路交换部分所接收的电路交换数据传输中导出(例如,数据流的末端生成移除槽信号,用来从链表402移除其关联的方向信息)。
在所示图形中,下一写槽信号438将为0,因为其是应被写入的下一个槽。在槽0被写入时,槽2的nidx 410将被更新成0,并且槽0的pidx将被更新成2。移除槽信号442指示对于其条目应被移除的链表402的槽。链表402耦合到基于读槽控制信号422来输出读数据426的复用器424。读槽控制信号422指示链表402的槽之一,并且读数据426是来自所指示的槽的数据414。
图5示出根据某些实施例,具有自适应交换通道的路由器的示例端口。所描绘的实施例假定带有五个端口集的路由器(每个端口集在逻辑上被细分成输入端口和输出端口),尽管其它实施例中可使用任何数量的端口集。在所描绘的实施例中,端口标记为端口A和端口B,而不是输入端口和输出端口,这是因为依赖于保留分组是被请求从目的地逻辑进行读还是向目的地逻辑进行写,电路交换数据可在相对于保留分组的方向的任一方向上流动。在所描绘的实施例中,电路交换数据可从端口A转到端口B,并且对应的基于分组的保留请求可经由这些端口的分组交换部分从端口B转到端口A(未示出)。因此,端口B相对于保留请求是输入端口,但相对于电路交换数据传输是输出端口。类似地,端口A相对于保留请求是输出端口,但相对于电路交换数据传输是输入端口。图中的灰色区域表示路由器内的交叉开关。
源同步时钟流(str)信号502A与每个数据传输一起传播,并且对目的地核中的数据进行计时。数据传输采用ack信号516A被确认。str和ack均在链路上被边缘编码并且被转换成路由器内级别敏感信号以便进行复用和解复用。数据(cdata 526A)行进基于端口模式(模式544A)有条件地被计时的锁存器和路由器交叉开关,所述端口模式在所描绘的实施例中可对于电路交换模式为逻辑“0”,并且对于分组交换模式为逻辑“1”。cslot信号546A指的是正在被处理的传输。端口的各种信号和组件将先相对于电路交换模式并且然后相对于分组交换模式被描述。
在电路交换模式中,流(str)信号502A穿过锁存器504(其在电路交换模式中保持打开)和异或(XOR)门506。Str 502A在路由器之间被递送时被跳变编码(transitionencoded),并且异或门506将str 502A转换成级别敏感信号,该信号然后被馈送到解复用器508。基于从链表400A接收的选择信号,解复用器508将str 502A发送到路由器的端口B之一。
端口B的仲裁器510接收来自每个端口A的str信号,并且基于到达顺序,选择str信号之一。从仲裁器输出的str信号然后被反转触发器(toggle flip flop) 512从水平敏感信号转换回跳变编码信号。由反转触发器512输出的边缘(edge)由异或门514组合,并且然后通过端口B将结果信号str 502B发送出。具体实施例也可包括以类似于对于str信号所示的方式的方式处理的尾部信号。在各种实施例中,str和尾部信号均可指定数据传输。str信号指示电路数据的传递,其中有更多的后续数据(作为另外的段),并且因此保持电路通道开放用于完整的电路数据传输(一个或更多段的),且尾部信号指示电路数据传输的末端。
确认(ack)信号516A是指示数据已到达目的地核的反向信号。在各种实施例中,可为在目的地逻辑接收的电路交换数据传输的每个段发送ack信号516A。Ack 516A通过脉冲发生器(pGen) 518(其生成上升和下降边缘)馈送到复用器520。入端口ctrl逻辑522提供入模式(inMode)信号,该信号配置复用器520将ack 516A递送到解复用器519。入端口ctrl逻辑522也提供控制信号到解复用器519以将此信号递送到正确的端口A。解复用器519的输出通过反转触发器521的对应反转触发器递送,并且递送回发送对应str信号的端口A。接收ack 516A的反转触发器将其转换回边缘。然后,将Ack 516A发送到正确的端口A,在其中它与可携带在异或门524的ack信号的其它信号线组合,并且然后作为ack信号516B退出端口A。异或门524的输出的另一分支经过异或门506,以关闭由str 502A引起的异或门506的输出。
电路交换数据526A穿过锁存器528A(其在端口A处在电路交换模式中时保持打开),并且被广播到每个端口B。端口B可接收来自每个端口A的电路交换数据,并且基于仲裁器510的输出,在它们之间进行选择。所选择的电路交换数据通过锁存器528B(其在端口B处在电路交换模式中时也保持打开)被发送到端口B的输出。锁存器528A和528B对应于图3C的锁存器342和334。
在分组交换模式中,str信号502A穿过锁存器504(其最初在分组交换模式中是打开的)和异或门506。异或门506的输出将通过与(AND)门530传播,并且将关闭锁存器504和528A(和锁存器540A和542A)以阻断任何另外的str信号和cdata信号传播(直到当前数据传输被完成)。Str 502A在路由器之间递送时被跳变编码,并且异或门506将str 502A转换成级别敏感信号,该信号然后被馈送到解复用器508。基于从链表400A接收到的选择信号,解复用器508将str 502A发送到端口B之一。端口B的仲裁器510接收来自每个端口A的str信号,并且基于到达顺序,选择str信号之一。从仲裁器输出的str信号然后由反转触发器512从级别敏感信号被转换回跳变编码信号。反转触发器512输出的边缘由异或门514组合,并且结果结果信号str 502B通过端口B被发送出。
在分组交换模式中,由异或门514输出的str信号也穿过包括C元件532和同或(XNOR)门534的信用跟踪逻辑。在两个连贯的str信号已在信用跟踪逻辑被接收之后,将禁用到反转触发器512的使能信号,从而阻塞进一步的数据传输(直到ack信号516A到达)。除被递送到信用跟踪逻辑外,异或门514的输出也被递送到脉冲发生器536、穿过由入端口ctrl逻辑522选择的跳变门(transition gate) 538,穿过反转触发器521,并且被递送回到端口A,其中此信号充当用于数据传输的确认信号。脉冲发生器536的输出也穿过或(OR)门538,并且或门538的输出控制锁存器528B、540B和542B分别锁存cdata(其可基于仲裁器510的输出,从来自多个端口A的cdata选择)、模式和cslot信号。这允许锁存器将模式544B、cdata 526B和cslot 546B信号(在发送str 502B信号时)发出到另一路由器。在接收到ack信号516A时,它不通过脉冲发生器518、复用器520、解复用器519和反转触发器521传播,而是被递送到信用跟踪逻辑,在那里它恢复信用,并且转而开启反转触发器512以允许另外的传输。
模式信号544A(其在电路交换模式期间为逻辑“0”,并且在分组交换模式期间为逻辑“1”)进入端口A,并且传播到与门530,以及在分组交换模式期间允许锁存器540A、528A和542A被str信号502A关闭。模式信号544A广播到每个端口B。端口B使用仲裁器510的输出,选择来自适当端口A的模式信号。所选择的模式信号然后被递送到入端口ctrl逻辑522。入端口Ctrl逻辑522使用在入端口链表400B中的信息,将入模式信号发送到锁存器540B和或门538。入端口ctrl逻辑522基于在入端口链表400B中条目的数量,确定交换模式(入模式)。入端口ctrl逻辑522也将入模式信号发送到复用器520以在ack和str信号与控制信号之间进行选择,以配置解复用器519将ack或str信号发送到正确的端口A。
cslot信号546A穿过锁存器542A并且进入出端口链表400A。cslot信号546A指示哪个数据传输当前正被执行。在分组交换模式中,cslot信号546A用于将rd_data1信号425(识别正在发生的传输的出端口链表400A的槽ID,这是与由rd_slot 422识别的相同槽)发送到每个端口B。端口B使用仲裁器510的输出选择适当的rd_data1信号,并且此信号通过锁存器542B被传播到端口B的输出,而且还用于保持跟踪从入端口链表400B正被移除或添加的元件。
以上各种实施例示出在源同步NoC的上下文中带有自适应交换通道的端口。在源同步NoC中,与数据一起被转发的控制信号跳变(例如,流和尾部信号)充当时钟信号,由此消除对完全同步时钟的需要。此技术通过移除在每个路由器对同步数据FIFO的需要,促进了多时钟设计(其中与不同路由器关联的核可在不同频率操作)。然而,所示实施例能够容易适应于与带有显式时钟和级别敏感控制信号的完全同步NoC一起工作。同步分组交换NoC可包括基于全局时钟与它们的邻居进行通信的路由器。因此,同步NoC中的所有路由器在相同频率操作。在各种同步实现中,由于触发器和锁存器连同存储元件的基于许可和请求的时钟门控(clock-gating)一起安置可达到相同结果,因此,不要求显式信用跟踪电路。用于电路交换网络的时钟可从用于分组交换网络的时钟导出,并且可以是分组交换网络的多个时钟以考虑最差情况电路交换通道设定。
图6示出根据某些实施例,用于通过自适应交换通道由路由器传递数据和为其保留资源的示例方法。在步骤602,经由路由器的分组交换部分接收保留请求分组。请求分组可在位于网络元件202的源逻辑与位于不同网络元件的目的地逻辑之间建立通道。为开始数据传输,源逻辑向目的地逻辑发送保留分组。此保留分组可经由NoC的分组交换部分被传递,并且在保留分组从源行进到目的地时,可为在源逻辑与目的地逻辑之间的电路交换数据或分组交换数据传递保留资源。保留分组可包括促进数据通道的保留的任何适合的信息。作为示例,保留分组可包括地址(即,与目的地关联的地址)和可选旁带分组数据。
在步骤604,确定与保留请求关联的方向信息。例如,在入输入端口,确定保留请求应被转发到的输出端口。在特定实施例中,方向信息是基于由给定路由器中的方向解码器执行的确定性路由选择方法(例如,X第一、Y第二路由选择或表查找)或其它路由选择协议(例如,其中保留分组包括分组在每个路由器应行进的方向的源结构化协议)。在一实施例中,唯一的地址可与每个核208或其它逻辑块(并且因此在其中核与路由器之间存在1:1映射的情况下,还有路由器204)关联。进而,此本地地址可用于生成每个路由器本地的方向信息以识别用于发送信息的路由器的适当端口。因此,分组中的地址可结合路由器204的本地地址用于确定哪个方向用来转发进入分组。在一些实施例中,在步骤604确定的方向信息可包括用于输入端口的外出方向(例如,保留请求应被发送到的输出端口的标识符)和进入方向(例如,接收的保留所来自的输入端口的标识符)。
在步骤610,在资源可用时,基于确定的方向信息,沿从源逻辑到目的地逻辑的路径往下游转发分组。在各种实施例中,步骤610可与步骤606和608并行执行。在各种实施例中,路由器204可使用信用系统以允许在服务于第一请求前从一个端口发送多个保留请求。作为一个示例,输出端口可根据信用2分组系统操作,其中来自输出端口的发送的请求的数量能够超出所接收的许可的数量2个,而输入端口可根据信用1分组系统操作,其中输入端口可不发送另外的请求,直到接收到许可。然而,在任一端口可使用任何适合的信用系统。
在步骤606,将方向信息写入路由器的链表。例如,与输入端口关联的方向信息可被写入与输入端口关联的链表,而与输出端口关联的方向信息可被写入与输出端口关联的链表。
在步骤608,一旦资源可用于传输与保留请求关联的数据,则依赖于在要传递数据的路由器的端口的拥塞,使用分组交换通道或电路交换通道来传递数据。该步骤将联系图7进一步详细地被描述。
在适当之处可重复,组合,修改或删除图6中示出的步骤中的一些,并且也可将另外的步骤添加到流程图。另外,在不偏离具体实施例的范畴的情况下,可以任何适合的顺序执行步骤。
图7示出根据某些实施例,用于经由路由器的自适应交换通道传递数据的示例方法。在步骤702,端口配置成在电路交换模式中进行通信。例如,被发送到端口的各种组件的模式信号可设置成对应于电路交换模式的逻辑值。在电路交换模式中,端口的一个或更多存储元件(例如,锁存器)可保持在打开状态以透明地递送数据,同时只消耗额定量的功率。对应模式信号也可在与端口进行通信的另一路由器的端口设置成电路交换模式。在步骤704,经由从端口到另一端口的电路交换通道来传递数据。由于在端口中的存储元件是打开的,因此,在数据从一个端口行进到另一端口时,电路交换通道并不缓冲数据。
在步骤706,确定在端口是否存在不止一个活动数据流。如果在端口只有一个活动数据流(或无活动流),则端口保持在电路交换模式中。端口继续传递它跨电路交换通道接收的数据流,直至在步骤706,它检测到存在不止一个活动流,此时,方法转到步骤708。端口可以任何适合的方式来确定存在不止一个活动流。例如,可检测端口的链表中条目的数量,其中每个条目对应于活动数据流。
在步骤708,模式配置成是分组交换。例如,被发送到端口的各种组件的模式信号可设置成对应于分组交换模式的逻辑值。在分组交换模式中,端口的一个或更多存储元件(例如,锁存器)可转到某种状态,其中可对它们进行计时以打开和关闭,由此能够实现在端口之间进行数据的传递期间对数据的存储。对应模式信号也可在与端口进行通信的另一路由器的端口被设置成分组交换模式。在步骤710,使用分组交换通道从端口传递数据。在具体实施例中,在端口经由端口中链表的使用在分组交换模式中传递数据时,它可在多个活动数据流之间进行交换。
在步骤712,再次确定在端口是否存在不止一个活动数据流。如果在端口还存在不止一个活动数据流,则端口保持在分组交换模式中。端口继续传递在步骤710它跨分组交换通道接收的数据流,直至在步骤712,它检测到只存在一个活动流(或无活动流),此时,方法转回到步骤702,其中模式被交换回电路交换。
在适当之处可重复,组合,修改或删除图7中示出的步骤中的一些,并且也可将另外的步骤添加到流程图。另外,在不偏离具体实施例的范畴的情况下,可以任何适合的顺序执行步骤。
在各种实施例中,自适应交换NoC可包括轻微的等待时间惩罚以通过每个端口中的锁存器传播。然而,在与基线混合分组/电路交换NoC相比时,此等待时间对于在一个实施例中通过管线处理,以5.1倍降低带有随机均匀业务的导向传输等待时间(fall-throughlatency)而言不只是补偿。在一些实施例中,自适应流量控制也采用深度4和8的链表将吞吐量增大1.9倍和2.3倍。
随着数据流长度增大,自适应流量控制允许用于管线处理的更多机会。在一个实施例中,采用每数据流只一次传输,提议的流量控制将吞吐量提高1.4倍。然而,在数据流长度增大到10个传输时,实施例可经历在吞吐量上的9.1倍的增大。
NoC的能耗密切地跟踪其操作模式。分组交换网络的一实施例估计具有36%的更高能耗。采用自适应流量控制,在一个实施例中,在相同业务条件下并且采用相同NoC拓扑的情况下,47%的跳在分组交换模式中。在一个实施例中,这对应于能量上只增大18%。
图8示出依照一个实施例的示例计算系统的框图的另一实施例。在该图中,依照本公开的芯片上系统(SOC)设计的一实施例被描绘。作为特定的说明性示例,SOC 800被包括在用户装备(UE)中。在一个实施例中,UE指的是由末端用户用于通信的任何装置,诸如手持电话,智能电话,平板,超薄笔记本,带有宽带适配器的笔记本,或任何其它类似的通信装置。通常UE连接至基站或节点,其在性质上潜在地对应GSM网络中的移动台(MS)。
此处,SOC 800包括2个核—806和807。类似于上面所讨论的,核806和807可符合指令集架构,诸如基于Intel® Architecture Core™的处理器、Advanced Micro Devices公司(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计、或其客户、以及它们的许可证持有人或采纳者(adopter)。核806和807被耦合至高速缓存控制808,其关联于总线接口单元809和L2高速缓存810,以便与系统800的其它部分通信。互连810包括芯片上互连,诸如IOSF、AMBA、或在上面讨论的其它互连,其潜在地实现所描述的公开的一个或更多方面。
接口810提供通信通道给其它组件,诸如用于与SIM卡进行接口的订户标识模块(SIM)830、用于保存引导代码(用于由核806和808执行以初始化和引导SOC 800)的引导rom835、用于与外部存储器(例如DRAM 860)进行接口的SDRAM控制器840、用于与非易失存储器(例如闪存865)进行接口的闪存控制器845、用于与外围设备进行接口的外围控制Q1650(例如串行外围接口)、视频编解码器820和用于显示和接收输入(例如触摸使能的输入)的视频接口825、用于执行图形相关计算的GPU 185等等。这些接口的任何接口可结合本文中所描述的公开的方面。
另外,所述系统示出了用于通信的外围设备,诸如蓝牙模块880、3G调制解调器875、GPS 885、和WiFi 885。注意,如在上面所陈述的,UE包括用于通信的无线电。作为结果,这些外围通信模块不是全部被要求的。然而,在UE中,某种形式的用于外部通信的无线电要被包括。
设计可经历各个阶段,从创建到仿真到制作。表示设计的数据可以多个方式表示所述设计。首先,如在仿真中有用的是,可使用硬件描述语言(HDL)或另一个功能描述语言来表示硬件。另外,带有逻辑和/或晶体管门的电路级别模型可在设计过程的一些阶段被产生。此外,大多数设计在某个阶段达到表示硬件模型中各个装置的物理放置的数据的级别。在其中常规半导体制作技术被使用的情况中,表示硬件模型的数据可以是规定在用来产生集成电路的掩模的不同掩模层上的各种特征的存在或不存在的数据。在一些实现中,此类数据可以数据库文件格式被存储,诸如图形数据系统II(GDS II)、开放工艺图系统互换标准(OASIS)、或类似的格式。
在一些实现中,基于软件的硬件模型、和HDL以及其它功能描述语言对象除了其它示例以外能包括寄存器传输语言(RTL)文件。此类对象能是机器可解析的,使得设计工具能接受HDL对象(或模型)、针对所描述硬件的属性来解析HDL对象、以及从对象来确定物理电路和/或芯片上布局。设计工具的输出能被用于制造物理装置。比如,设计工具能从HDL对象来确定各个硬件和/或固件元件的配置,诸如总线宽度、寄存器(包括规模和类型)、存储器块、物理链路路径、构造拓扑,以及将被实现以便获得HDL对象中建模的系统的其它属性。设计工具能包括用于确定芯片上系统(SOC)和其它硬件装置的拓扑和构造配置的工具。在一些情形中,HDL对象能被用作用于开发模型和设计文件的基础,所述模型和设计文件能被制造装备用于制造所描述的硬件。确实,HDL对象本身能作为输入被提供到制造系统软件以促成所描述的硬件。
在设计的任何表示中,数据可以机器可读媒体的任何形式被存储。存储器或者磁或光存储装置(诸如盘)可以是用于存储经由光或电波所传送的信息的机器可读媒体,所述光或电波被调制或以其它方式被生成以传送此类信息。当指示或携带代码或设计的电载波被传送(达到执行电信号的复制、缓冲、或再传送的程度)时,新副本被做出。因此,通信提供商或网络提供商可至少临时地将实施本公开实施例之技术的物品(article)(诸如编码到载波中的信息)存储在有形的、机器可读媒体上。
如本文中所使用的模块指的是硬件、软件、和/或固件的任何组合。作为示例,模块包括硬件(诸如微控制器),其与用于存储适应于被微控制器执行的代码的非暂态媒体相关联。因此,在一个实施例中,对模块的引用指的是硬件,其特定地被配置成识别和/或执行要保存在非暂态媒体上的代码。此外,在另一个实施例中,模块的使用指的是包括代码(其被特定地适应于由微控制器执行以执行预定的操作)的非暂态媒体。且如能被推断的,在还有的另一个实施例中,术语模块(在该示例中)可指的是微控制器和非暂态媒体的组合。通常,被示出为分离的模块分界线共同地变化且潜在地重叠。例如,第一和第二模块可共享硬件、软件、固件、或其组合,而潜在地保持某个独立的硬件、软件、或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器的硬件或诸如可编程的逻辑装置的其它硬件。
在一个实施例中,短语“用于”或“配置成”的使用指的是布置、装配、制造、许诺出售、进口和/或设计用于执行指定的或确定的任务的设备、硬件、逻辑、或元件。在该示例中,如果未在操作的其设备或元件被设计、耦合、和/或互连以执行指定的任务,则它仍被“配置成”执行所述指定的任务。作为纯说明性的示例,逻辑门可在操作期间提供0或1。但“配置成”提供启用信号给时钟的逻辑门不包括可提供1或0的每一个潜在的逻辑门。反而,所述逻辑门是以在操作期间1或0输出要启用时钟的某种方式所耦合的逻辑门。再一次注意到,术语“配置成”的使用不要求操作,但转而关注于设备、硬件、和/或元件的潜伏状态,其中在潜伏状态中所述设备、硬件、和/或元件被设计成当所述设备、硬件、和/或元件在操作时执行具体的任务。
此外,在一个实施例中,短语“有能力/有能力以”和或“可操作以”的使用指的是以此类方式设计成能够以规定的方式实现某一设备、逻辑、硬件、和/或元件的使用的所述设备、逻辑、硬件、和/或元件。如上注意到,在一个实施例中,用来、有能力以、或可操作以的使用指的是设备、逻辑、硬件、和/或元件的潜伏状态,在其中所述设备、逻辑、硬件、和/或元件不在操作中但以此类方式被设计成能够以规定的方式实现设备的使用。
如本文中所使用的,值包括数、状态、逻辑的状态、或二进制逻辑的状态的任何已知表示。通常,逻辑级别、逻辑值、或逻辑的值的使用还被称为1和0,其简单地表示二进制逻辑状态。例如,1指的是高逻辑级别且0指的是低逻辑级别。在一个实施例中,存储单元(诸如晶体管或闪存单元)可有能力保存单一逻辑的值或多个逻辑的值。然而,在计算机系统中值的其它表示已被使用。例如十进制数十可还被表示为1010的二进制值和十六进制的字母A。因此,值包括在计算机系统中有能力被保存的信息的任何表示。
此外,状态可由值或值的部分来表示。作为示例,第一值(诸如逻辑的一)可表示默认或初始状态,而第二值(诸如逻辑的零)可表示非默认状态。另外,在一个实施例中,术语重置和设置分别指的是默认和更新的值或状态。例如,默认值潜在地包括高逻辑的值(即重置),而更新值潜在地包括低逻辑的值(即设置)。注意到,值的任何组合可被利用来表示任何数量的状态。
在上面所阐述的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问的、机器可读的、计算机可访问的、或计算机可读的媒体上的指令或代码(其可被处理元件执行)而被实现。非暂态机器可访问的/可读的媒体包括以机器(诸如计算机或电子系统)可读的形式来提供(即,存储和/或传送)信息的任何机制。例如,非暂态机器可访问媒体包括:随机存取存储器(RAM),诸如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储媒体;闪速存储器装置;电存储装置;光存储装置;声存储装置;用于保存从暂态(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储装置;等等,它们要被区分于可从其接收信息的非暂态媒体。
用于编程逻辑以执行本公开的实施例的指令可被存储在系统中的存储器之内,诸如DRAM、高速缓存、闪速存储器、或其它存储装置。此外,指令能经由网络或通过其它计算机可读媒体被分发。因此,机器可读媒体可包括用于以机器(例如,计算机)可读的形式来存储或传送信息的任何机制,但不限于:软盘、光盘、紧致盘(compact disk)只读存储器(CD-ROM)、和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪速存储器、或有形的机器可读存储装置,其被用在经由电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号、等等)在互联网上信息的传送中。因此,计算机可读媒体包括适合于以机器(例如,计算机)可读的形式存储或传送电子指令或信息的任何类型的有形的机器可读媒体。
一个或更多实施例可提供包括用来表示结构的信息的设备、系统、机器可读存储装置、机器可读媒体、基于硬件和/或软件的逻辑(例如,芯片上网络的第一路由器)、方法、以及非暂态机器可读媒体,所述结构(在被制造时,配置成)包括:用来接收分组交换通道保留,以便为第一数据流保留通信资源的输入端口;确定通道的模式的逻辑,所述模式为电路交换模式或分组交换模式;存储元件,当通道在电路交换模式中时,其要将在存储元件的输入的数据递送到存储元件的输出而不存储数据,以及当通道在分组交换模式中时,其在时钟信号被接收时在存储元件的输入存储数据。存储元件要在存储元件的输入接收第一数据流的数据。
在至少一个示例中,该设备是处理器。
在至少一个示例中,存储元件与输入端口关联。
在至少一个示例中,第一路由器还要包括输出端口,并且其中存储元件与输出端口关联。
在至少一个示例中,存储元件要包括至少一个数据锁存器。
在至少一个示例中,第一路由器还要包括链表,对应于第一数据流的链表的条目。
在至少一个示例中,链表还要包括对应于第二数据流的第二条目。
在至少一个示例中,第一路由器还要包括输出端口,用来利用链表在从第一数据流提供数据到存储元件的输入和从第二数据流提供数据到存储元件的输入之间进行交替。
在至少一个示例中,芯片上网络的第二路由器要从第一路由器接收通道的模式的指示,并且基于通道的模式的指示,配置第二路由器的存储元件。
在至少一个示例中,第二路由器还要在第二路由器的存储元件的输入接收第一数据流的数据。
在至少一个示例中,时钟信号是要指示第一数据流的段的传输的开始的流信号。
在至少一个示例中,链表的条目要包括与第一数据流关联的方向信息。
在至少一个示例中,除非在与存储元件关联的端口,活动数据流的数量超过阈值,否则,逻辑要确定模式要是电路交换模式。
在至少一个示例中,该阈值是一个活动数据流。
一个或更多实施例可提供包括用来表示结构的信息的设备、系统、机器可读存储装置、机器可读媒体、基于硬件和/或软件的逻辑(例如,路由器)、方法、以及非暂态机器可读媒体,所述结构(在被制造时,配置成)接收与第一数据流相关联的分组交换保留请求,选择通信模式(通信模式为电路交换模式或分组交换模式),以及根据通信模式传递第一数据流的至少部分。
在至少一个示例中,路由器要在路由器的端口具有小于阈值数量的活动数据流时选择电路交换模式,并且要在路由器的端口具有等于或大于该阈值数量的数量的活动数据流时选择分组交换模式。
在至少一个示例中,路由器还要在通信模式是电路交换时禁用路由器的存储元件进行的数据存储,并且在通信模式是分组交换模式时启用存储元件以存储数据。
在至少一个示例中,通信模式与路由器的第一端口关联,并且路由器还要选择要与路由器的第二端口关联的第二通信模式,通信模式为电路交换模式或分组交换模式;并且根据第二通信模式来传递第二数据。
一个或更多实施例可提供包括用来表示结构的信息的设备、系统、机器可读存储装置、机器可读媒体、基于硬件和/或软件的逻辑、方法、以及非暂态机器可读媒体,所述结构(在被制造时,配置成)包括多个核,每个核与芯片上网络的路由器关联。路由器要包括多个端口集。端口集要包括:用来接收分组交换通道保留,以便为数据流保留通信资源的输入端口;确定通道的模式的逻辑,所述模式为电路交换模式或分组交换模式;存储元件,当通道在电路交换模式中时,其要将在存储元件的输入的数据递送到存储元件的输出而不存储数据,以及当通道在分组交换模式中时,其在时钟信号被接收时在存储元件的输入存储数据;以及输出端口,用来将数据流的数据提供到存储元件的输入,并且将存储元件的输出发送到芯片上网络的另一路由器。
贯穿该说明书的对“一个实施例”或“一实施例”的引用是指联系实施例进行描述的具体特征、结构、或特性被包括于本公开的至少一个实施例中。因此,在贯穿该说明书各处中短语“在一个实施例中”或“在一实施例中”的出现不一定都指的是相同的实施例。此外,具体特征、结构、或特性可在一个或更多实施例中以任何适合的方式被组合。
在前述的说明书中,详细的描述已参考特定的示范性实施例被给出。然而,将显而易见的是,在不偏离如附带权利要求中阐述的本公开的更广泛的精神和范畴的情况下,各种修改和改变可对其被做出。因此,说明书和附图要在说明性的意义而非约束性的意义中被看待。此外,实施例和其它示范性语言的前述使用不一定指的是相同的实施例或相同的示例,而是可指不同的和有区别的实施例,以及潜在相同的实施例。
Claims (23)
1.一种处理器,包括:
芯片上网络的第一路由器,所述第一路由器包括:
输入端口,用来接收分组交换通道保留,以保留用于第一数据流的通信资源;
逻辑,用来确定通道的模式,所述模式要为电路交换模式或分组交换模式;
存储元件,所述存储元件用来:
当所述通道在所述电路交换模式中时,将位于所述存储元件的输入的数据递送到所述存储元件的输出而不存储所述数据;以及
当所述通道在所述分组交换模式中时,在接收到时钟信号时存储位于所述存储元件的所述输入的数据;以及
其中所述存储元件要在所述存储元件的所述输入接收所述第一数据流的数据。
2.如权利要求1所述的处理器,其中所述存储元件与所述输入端口关联。
3.如权利要求1所述的处理器,其中所述第一路由器还要包括输出端口,并且其中所述存储元件与所述输出端口关联。
4.如权利要求1所述的处理器,其中所述存储元件要包括至少一个数据锁存器。
5.如权利要求1所述的处理器,所述第一路由器还要包括链表,所述链表的条目对应于所述第一数据流。
6.如权利要求5所述的处理器,所述链表还包括对应于第二数据流的第二条目。
7.如权利要求6所述的处理器,所述第一路由器还包括输出端口,用来利用所述链表以在从所述第一数据流提供数据到所述存储元件的所述输入与从所述第二数据流提供数据到所述存储元件的所述输入之间进行交替。
8.如权利要求1所述的处理器,还包括所述芯片上网络的第二路由器,所述第二路由器用来从所述第一路由器接收所述通道的所述模式的指示,并且用来基于所述通道的所述模式的所述指示,配置所述第二路由器的存储元件。
9.如权利要求8所述的处理器,所述第二路由器还用来在所述第二路由器的所述存储元件的输入接收所述第一数据流的所述数据。
10.如权利要求1所述的处理器,其中所述时钟信号是要指示所述第一数据流的段的传输的开始的流信号。
11.如权利要求5所述的处理器,其中所述链表的所述条目要包括与所述第一数据流关联的方向信息。
12.如权利要求1所述的处理器,其中除非在与所述存储元件关联的端口,活动数据流的数量超过阈值,否则,所述逻辑要确定所述模式将是所述电路交换模式。
13.如权利要求12所述的处理器,其中所述阈值是一个活动数据流。
14.一种设备,包括:
路由器,用来执行以下操作:
接收要与第一数据流关联的分组交换保留请求;
选择通信模式,所述通信模式要为电路交换模式或分组交换模式;以及
根据所述通信模式传递所述第一数据流的至少部分。
15.如权利要求14所述的设备,其中所述路由器在所述路由器的端口具有小于阈值数量的活动数据流时要选择所述电路交换模式,并且在所述路由器的所述端口具有等于或大于所述阈值数量的数量的活动数据流时要选择所述分组交换模式。
16.如权利要求14所述的设备,其中所述路由器还要在所述通信模式是电路交换时禁用所述路由器的存储元件进行的数据存储,并且要在所述通信模式是分组交换模式时启用所述存储元件以存储数据。
17. 如权利要求14所述的设备,其中所述通信模式与所述路由器的第一端口关联,并且所述路由器还用来:
选择要与所述路由器的第二端口关联的第二通信模式,所述通信模式要为电路交换模式或分组交换模式;以及
根据所述第二通信模式传递第二数据。
18.一种非暂态机器可读媒体,包括用来表示结构的信息,所述结构在被制造时,配置成:
接收要与第一数据流关联的分组交换保留请求;
选择通信模式,所述通信模式要为电路交换模式或分组交换模式;以及
根据所述通信模式传递所述第一数据流的至少部分。
19.如权利要求18所述的媒体,所述结构在被制造时还配置成在路由器的端口具有小于阈值数量的活动数据流时选择所述电路交换模式,并且在所述路由器的所述端口具有等于或大于所述阈值数量的数量的活动数据流时选择所述分组交换模式。
20.如权利要求18所述的媒体,所述结构在被制造时还配置成在所述通信模式是电路交换时禁用路由器的存储元件进行的数据存储,并且在所述通信模式是分组交换模式时启用所述存储元件以存储数据。
21. 如权利要求20所述的媒体,其中所述通信模式与路由器的第一端口关联,并且所述结构在被制造时还要配置成:
选择与所述路由器的第二端口关联的第二通信模式,所述通信模式要为电路交换模式或分组交换模式;以及
根据所述第二通信模式传递第二数据。
22.一种系统,包括:
多个核,每个核与芯片上网络的路由器关联,路由器包括:
多个端口集;端口集包括:
输入端口,用来接收分组交换通道保留,以保留用于数据流的通信资源;
逻辑,用来确定通道的模式,所述模式要为电路交换模式或分组交换模式;
存储元件,所述存储元件用来:
当所述通道在所述电路交换模式中时,将位于所述存储元件的输入的数据递送到所述存储元件的输出而不存储所述数据;以及
当所述通道在所述分组交换模式中时,在接收到时钟信号时存储位于所述存储元件的所述输入的数据;以及
输出端口,用来提供所述数据流的数据到所述存储元件的所述输入并将所述存储元件的所述输出发送到所述芯片上网络的另一路由器。
23.一种系统,包括:
用来接收与第一数据流关联的分组交换保留请求的部件;
用来选择通信模式的部件,所述通信模式要为电路交换模式或分组交换模式;以及
用来根据所述通信模式传递所述第一数据流的至少部分的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/579729 | 2014-12-22 | ||
US14/579,729 US9961019B2 (en) | 2014-12-22 | 2014-12-22 | Adaptively switched network-on-chip |
PCT/US2015/062561 WO2016105816A1 (en) | 2014-12-22 | 2015-11-25 | Adaptively switched network-on-chip |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107113254A true CN107113254A (zh) | 2017-08-29 |
CN107113254B CN107113254B (zh) | 2020-12-08 |
Family
ID=56130804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580063620.2A Active CN107113254B (zh) | 2014-12-22 | 2015-11-25 | 自适应交换芯片上网络 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9961019B2 (zh) |
EP (1) | EP3238391B1 (zh) |
CN (1) | CN107113254B (zh) |
WO (1) | WO2016105816A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107894963A (zh) * | 2017-11-27 | 2018-04-10 | 上海兆芯集成电路有限公司 | 用于系统单芯片的通信控制器与通信方法 |
CN111654454A (zh) * | 2020-06-23 | 2020-09-11 | 天津芯海创科技有限公司 | 基于Crossbar的双模混合交换结构和方法 |
US20230124622A1 (en) * | 2021-10-14 | 2023-04-20 | Arm Limited | Alarm Systems and Circuits |
CN117134765A (zh) * | 2023-08-24 | 2023-11-28 | 毫厘智能科技(江苏)有限公司 | 一种可重构芯粒间连接结构的电路及芯片 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5943115B1 (ja) * | 2015-03-27 | 2016-06-29 | 日本電気株式会社 | 集積回路、半導体装置、カード及びデータ転送方法 |
US10594593B2 (en) | 2016-03-29 | 2020-03-17 | British Telecommunications Public Limited Company | Methods and apparatus for transmitting data |
US10700968B2 (en) * | 2016-10-19 | 2020-06-30 | Rex Computing, Inc. | Optimized function assignment in a multi-core processor |
US10355975B2 (en) * | 2016-10-19 | 2019-07-16 | Rex Computing, Inc. | Latency guaranteed network on chip |
KR102369209B1 (ko) | 2017-02-23 | 2022-02-28 | 세레브라스 시스템즈 인코포레이티드 | 가속화된 심층 학습 |
US11157806B2 (en) | 2017-04-17 | 2021-10-26 | Cerebras Systems Inc. | Task activating for accelerated deep learning |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
WO2018193354A1 (en) | 2017-04-17 | 2018-10-25 | Cerebras Systems Inc. | Wavelet representation for accelerated deep learning |
US10621132B1 (en) * | 2017-05-05 | 2020-04-14 | Xilinx, Inc. | Auto address generation for switch network |
US10502785B1 (en) * | 2017-10-31 | 2019-12-10 | Xilinx, Inc. | Test network for a network on a chip and a configuration network |
US12040897B2 (en) * | 2018-08-21 | 2024-07-16 | The George Washington University | Learning-based high-performance, energy-efficient, fault-tolerant on-chip communication design framework |
US11328207B2 (en) | 2018-08-28 | 2022-05-10 | Cerebras Systems Inc. | Scaled compute fabric for accelerated deep learning |
WO2020044238A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Processor element redundancy for accelerated deep learning |
WO2020044208A1 (en) | 2018-08-29 | 2020-03-05 | Cerebras Systems Inc. | Isa enhancements for accelerated deep learning |
US11188312B2 (en) * | 2019-05-23 | 2021-11-30 | Xilinx, Inc. | Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices |
US20220318473A1 (en) * | 2019-08-07 | 2022-10-06 | The University Of Hong Kong | System and method for determining wiring network in multi-core processor, and related multi-core processor |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030039237A1 (en) * | 1997-09-25 | 2003-02-27 | Jan E Forslow | Common access between a mobile communications network and an external network with selectable packet-switched and circuit-switched services |
CN101778049A (zh) * | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
CN103339888A (zh) * | 2011-02-10 | 2013-10-02 | 阿尔卡特朗讯 | 用于分组交换网络的网元 |
US20140286179A1 (en) * | 2013-03-20 | 2014-09-25 | Empire Technology Development, Llc | Hybrid routers in multicore architectures |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59224942A (ja) * | 1983-06-03 | 1984-12-17 | Nippon Telegr & Teleph Corp <Ntt> | デイジタル交換機 |
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
JP2002300128A (ja) * | 2001-03-29 | 2002-10-11 | Sanyo Electric Co Ltd | トランスポートストリームデコーダおよびそれを用いるデジタル放送受信装置 |
US8295176B2 (en) * | 2006-10-31 | 2012-10-23 | Verizon Patent And Licensing Inc. | Priority call routing |
US8284766B2 (en) | 2007-12-28 | 2012-10-09 | Intel Corporation | Multi-core processor and method of communicating across a die |
US8230152B2 (en) * | 2009-02-13 | 2012-07-24 | The Regents Of The University Of Michigan | Crossbar circuitry and method of operation of such crossbar circuitry |
US8670454B2 (en) * | 2009-03-26 | 2014-03-11 | Oracle America, Inc. | Dynamic assignment of data to switch-ingress buffers |
US8249063B2 (en) * | 2009-06-30 | 2012-08-21 | Lsi Corporation | Method and apparatus for signal formation with guaranteed consistent overhead insertion |
WO2014070137A1 (en) | 2012-10-30 | 2014-05-08 | Empire Technology Development Llc | Waved time multiplexing |
WO2014094873A1 (en) * | 2012-12-21 | 2014-06-26 | Huawei Technologies Co., Ltd. | An apparatus and a method for providing a random early detection in a packet switched network |
CN105247817B (zh) | 2013-06-28 | 2019-05-07 | 英特尔公司 | 用于源同步电路交换片上网络(NoC)的方法、装置和系统 |
EP3042304A4 (en) | 2013-09-06 | 2017-06-07 | 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 |
US9207979B1 (en) * | 2014-05-28 | 2015-12-08 | Freescale Semiconductor, Inc. | Explicit barrier scheduling mechanism for pipelining of stream processing algorithms |
-
2014
- 2014-12-22 US US14/579,729 patent/US9961019B2/en active Active
-
2015
- 2015-11-25 WO PCT/US2015/062561 patent/WO2016105816A1/en active Application Filing
- 2015-11-25 EP EP15874020.9A patent/EP3238391B1/en active Active
- 2015-11-25 CN CN201580063620.2A patent/CN107113254B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030039237A1 (en) * | 1997-09-25 | 2003-02-27 | Jan E Forslow | Common access between a mobile communications network and an external network with selectable packet-switched and circuit-switched services |
CN101778049A (zh) * | 2010-03-04 | 2010-07-14 | 南京大学 | 包-电路交换片上路由器及其传输方法 |
CN103339888A (zh) * | 2011-02-10 | 2013-10-02 | 阿尔卡特朗讯 | 用于分组交换网络的网元 |
US20140286179A1 (en) * | 2013-03-20 | 2014-09-25 | Empire Technology Development, Llc | Hybrid routers in multicore architectures |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107894963A (zh) * | 2017-11-27 | 2018-04-10 | 上海兆芯集成电路有限公司 | 用于系统单芯片的通信控制器与通信方法 |
CN111654454A (zh) * | 2020-06-23 | 2020-09-11 | 天津芯海创科技有限公司 | 基于Crossbar的双模混合交换结构和方法 |
US20230124622A1 (en) * | 2021-10-14 | 2023-04-20 | Arm Limited | Alarm Systems and Circuits |
CN117134765A (zh) * | 2023-08-24 | 2023-11-28 | 毫厘智能科技(江苏)有限公司 | 一种可重构芯粒间连接结构的电路及芯片 |
CN117134765B (zh) * | 2023-08-24 | 2024-06-07 | 毫厘智能科技(江苏)有限公司 | 一种可重构芯粒间连接结构的电路及芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2016105816A1 (en) | 2016-06-30 |
EP3238391A4 (en) | 2018-08-22 |
CN107113254B (zh) | 2020-12-08 |
US9961019B2 (en) | 2018-05-01 |
EP3238391B1 (en) | 2020-06-17 |
US20160182405A1 (en) | 2016-06-23 |
EP3238391A1 (en) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107113254A (zh) | 自适应交换芯片上网络 | |
CN105718390B (zh) | 共享存储器链路中的低功率进入 | |
CN107113253B (zh) | 用于片上网络的空间划分的电路交换信道 | |
CN105793828B (zh) | 具有pci快速增强的系统和方法 | |
CN109213706A (zh) | 用于访问作为存储器的存储设备的系统和方法 | |
CN104932996B (zh) | 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统 | |
CN105593830B (zh) | 用于测量电路的物理单元中的等待时间的方法、装置和系统 | |
CN107430567A (zh) | 共享缓冲存储器路由 | |
CN107078971A (zh) | 组合保证吞吐量和尽力而为的片上网络 | |
CN109154924A (zh) | 多个上行链路端口设备 | |
CN107113227A (zh) | 流水线化混合分组/电路交换片上网络 | |
CN105793830A (zh) | 在节点之间共享存储器和i/o服务 | |
CN107005477A (zh) | 用于片上网络的基于链路延迟的路由装置 | |
CN108701023A (zh) | 带内重定时器寄存器访问 | |
KR101830685B1 (ko) | 온칩 메시 상호접속부 | |
CN107077521A (zh) | 片上系统配置元数据 | |
CN107112042A (zh) | 数据信号的边沿感知同步 | |
CN104756097A (zh) | 一致性协议表 | |
CN107005492A (zh) | 用于芯片上网络上的多播和缩减通信的系统 | |
CN109844725A (zh) | 点对点互连中的非对称通道 | |
CN109582998A (zh) | 小巧PCIe端点的根复合体集成端点仿真 | |
CN109643297A (zh) | 电压调制的控制通路 | |
CN107111584A (zh) | 到片上网络的接口的高带宽核 | |
CN107003838A (zh) | 解码信息库 | |
CN107003944B (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 |