CN105247817B - 用于源同步电路交换片上网络(NoC)的方法、装置和系统 - Google Patents
用于源同步电路交换片上网络(NoC)的方法、装置和系统 Download PDFInfo
- Publication number
- CN105247817B CN105247817B CN201380077035.9A CN201380077035A CN105247817B CN 105247817 B CN105247817 B CN 105247817B CN 201380077035 A CN201380077035 A CN 201380077035A CN 105247817 B CN105247817 B CN 105247817B
- Authority
- CN
- China
- Prior art keywords
- logic
- circuit
- request
- router
- transition
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
在实施例中,路由器包括多个输入端口和输出端口,其中路由器属于源同步混合片上网络(NoC),以使得能够基于在路由器之间传递的控制流信号中的跃迁,来在NoC的路由器之间进行通信。描述并要求保护其它实施例。
Description
技术领域
本公开涉及计算系统,特别(但非排外地)涉及经由网络来对信息进行通信。
背景技术
数量增长的集成知识产权(IP)逻辑中的片上通信对处理器功率和性能产生了更大的影响。片上网络(NoC)是当前在多核心系统中最广泛使用的交换结构拓扑之一。NoC将数据通过由与链路连接的路由器组成的共享互连从源发送到目的地。传统的同步分组交换NoC由基于全局时钟来与其邻居通信的路由器建成。分组交换指的是至少在每一个路由器中触发(flop)/存储数据。因此,在NoC中的所有路由器以相同频率操作。此外,在低流量速率处,时钟功率趋向于支配总共的NoC功率消耗,由此限制了系统效率。
发明内容
本发明提供了一种用于对信息进行路由的装置,包括:路由器模块,包括第一输入端口和第一输出端口,其中所述路由器模块属于片上网络(NoC),所述路由器模块用于使得能够基于控制流信号中的跃迁来将分组从所述路由器模块传递到所述NoC的第二路由器模块,所述第一输入端口具有包括缓冲器资源的分组交换部分和不具有缓冲器资源的电路交换部分,其中,所述分组交换部分包括:存储请求的缓冲器,其中,所述请求的优先级在所述分组交换部分和所述第二路由器模块的分组交换部分处是能够变化的,所述缓冲器包括多个条目,所述多个条目中的每一个条目存储与所述请求中的一个请求相关联的方向信息,并且其中,通过将第一优先级请求存储在具有最高优先级的缓冲器的能够使用的条目中来维护全局优先级顺序。
本发明还提供了一种用于对信息进行路由的装置,包括:多个路由器,所述多个路由器中的每一个具有一组输入端口和一组输出端口,所述输入端口和所述输出端口中的每一个具有电路交换部分和分组交换部分,其中,在源逻辑和目的地逻辑之间的所述一组输入端口和所述一组输出端口中的多个的所述分组交换部分在所述源逻辑和目的地逻辑之间建立电路交换通道,以基于控制流信号跃迁来对电路交换数据进行通信,其中,所述多个路由器根据源同步协议来进行操作,并且所述分组交换部分中的每一个包括:存储请求的缓冲器,其中,所述请求的优先级在所述分组交换部分中的每一个处是能够变化的,所述缓冲器包括多个条目,所述多个条目中的每一个条目存储与所述请求中的一个请求相关联的方向信息,并且其中,通过将第一优先级请求存储在具有最高优先级的缓冲器的能够使用的条目中来维护全局优先级顺序。
本发明还提供了一种用于对信息进行路由的方法,包括:在片上网络(NoC)的分组部分中,确定从源逻辑发布到目的地逻辑的预留请求在存储于在所述源逻辑和所述目的地逻辑之间耦合的多个路由器的缓冲器中的多个预留请求中具有最高优先级;以及在所述NoC的电路部分中,在所述源逻辑和所述目的地逻辑之间建立电路交换通道,以使得能够在所述源逻辑和所述目的地逻辑之间进行数据通信。
本发明还提供了一种用于在片上系统SoC中对信息进行路由的系统,包括:片上系统SoC,其包括多个核心,所述多个核心中的每一个核心与源同步片上网络NoC的路由器相关联,所述路由器中的每一个包括:一组输入端口和一组输出端口,所述输入端口和所述输出端口中的每一个具有电路交换部分和分组交换部分,其中,源核心和目的地核心之间的所述分组交换部分建立电路交换通道,以用于基于控制流信号跃迁来对电路交换数据进行通信,其中,所述分组交换部分中的每一个包括:存储请求的缓冲器资源,其中,所述请求的优先级在分组交换资源中的每一个处是能够变化的,所述缓冲器资源包括多个条目,所述多个条目中的每一个条目存储与所述请求中的一个请求相关联的方向信息,并且其中,通过将第一优先级请求存储在具有最高优先级的缓冲器资源的能够使用的条目中来维护全局优先级顺序;以及耦合到所述SoC的非易失性存储设备。
附图说明
图1是包括多核心处理器的计算系统的框图。
图2是根据本发明的实施例的NoC的框图。
图3是根据本发明的实施例的针对流控制的信用跟踪的状态图。
图4是根据本发明的实施例的有限状态机的框图。
图5是根据本发明的实施例的信用跟踪电路的框图。
图6是根据本发明的实施例的分组路由器输入端口的框图。
图7是根据本发明的实施例的分组路由器输出端口的框图。
图8是根据本发明的实施例的方法的流程图。
图9是根据本发明的实施例的包括多个路由器的NoC的框图。
图10A-D是根据本发明的一个实施例的路由器的输入端口和输出端口的细节的框图。
图11是根据本发明的实施例的先进先出(FIFO)缓冲器的框图。
图12是根据本发明的实施例的示例NoC的框图。
图13是根据本发明的实施例的片上系统(SOC)设计的实施例的框图。
具体实施方式
参考图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)中的每一个可以如上所述指的是处理元件、线程槽或线程单元。如图所示,架构状态寄存器101a在架构状态寄存器101b中被复制,因此单独的架构状态/上下文能够存储用于逻辑处理器101a和逻辑处理器101b。在核心101中,例如在分配器和重命名器框130中的指令指针和重命名逻辑之类的其它较小资源也被复制用于线程101a和101b。诸如重排序/引退单元135中的重排序缓冲器、ILTB120、加载/存储缓冲器、以及队列等的一些资源可以通过分区被共享。诸如通用内部寄存器、页-表基址寄存器、低级数据高速缓存和数据-TLB 115、执行单元140以及乱序单元135的一部分等的其它资源可能被完全共享。
处理器100通常包括可以被完全共享、通过分区共享、或者专用于处理元件的其它资源。在图1中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任一个,以及包括没有绘出的任意其它已知的功能单元、逻辑、或固件。如所示的,核心101包括简化的、代表性的乱序(OOO)处理器核心。但是在不同实施例中可以使用有序处理器。OOO核心包括用于预测将被执行/采用的分支的分支目标缓冲器102,以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)120。
核心101还包括解码模块125,其被耦合到提取单元120以对所提取的元件进行解码。在一个实施例中,提取逻辑包括分别与线程槽101a、101b相关联的单独的定序器。通常,核心101与定义/指定能在处理器100上执行的指令的第一ISA相关联。通常,作为第一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外部的计算系统。在该场景中,片上接口110用于与处理器100外部的设备进行通信,所述设备例如是系统存储器175、芯片组(通常包括用于连接到存储器175的存储器控制器中心以及用于连接外围设备的I/O控制器中心)、存储器控制器中心、北桥、或者其它集成电路。并且在该场景中,总线105可以包括任意已知的互连,例如多点总线、点对点互连、串行互连、并行总线、一致性(例如,高速缓存一致性)总线、分层协议架构、差分总线、以及GTL总线。
存储器175可以专用于处理器100或与系统中其它设备共享。存储器175的类型的普通示例包括DRAM、SRAM、非易失性存储器(NV存储器)、以及其它已知的存储设备。注意,设备180可以包括图形加速器、处理器或耦合到存储器控制器中心的卡、耦合到I/O控制器中心的数据存储设备、无线收发器、闪速设备、音频控制器、网络控制器,或者其它已知的设备。
然而,最近,随着更多的逻辑和设备正在被集成到单个管芯上(例如SOC),这些设备的每一个可以被合并到处理器100上。例如,在一个实施例中,存储器控制器中心与处理器100在同一封装和/或管芯上。这里,核心的一部分(核心上(on-core)部分)110包括一个或多个控制器,其用于与诸如存储器175或图形设备180等的其它设备进行连接。包括互连和用于与这种设备进行连接的控制器的配置通常被称作核心上(或者非核心(un-core)配置)。作为示例,片上接口110包括用于片上通信的环形互连以及用于片外通信的高速串行点对点链接105。但是,在SOC环境中,甚至更多的设备(例如,网络接口、协同处理器、存储器175、图形处理器180以及任意其它已知的计算机设备/接口)可以被集成到单个的管芯或集成电路上,以提供小形状因子以及具有高功能和低功率消耗。
在一个实施例中,处理器100能够执行编译器、优化、和/或转换器代码177,以对应用程序代码176进行编译、转换、和/或优化以支持本文描述的装置和方法或者与其进行连接。编译器通常包括用于将源文本/代码转换为目标文本/代码的程序或程序的集合。通常,利用编译器的对程序/应用程序代码的编译在多个阶段和多遍中完成,以将高级编程语言代码变换为低级机器或汇编语言代码。但是,单遍编译器仍可以用于简单的编译。编译器可以利用任意已知的编译技术,以及执行任意已知的编译器操作,例如是词法分析、预处理、解析、语义分析、代码生成、代码转换以及代码优化。
较大的编译器通常包括多个阶段,但是通常来说这些阶段包含于两个通用阶段内:(1)前端,即通常可以在其中发生句法处理、语义处理以及某种变换/优化的阶段,以及(2)后端,即,通常在其中发生分析、变换、优化以及代码生成的阶段。一些编译器指的是中间的,其示出在编译器的前端和后端之间的描绘的模糊。其结果是,提到的插入、关联、生成或编译器的其它操作可以发生在上述阶段或遍、以及编译器的任意其它已知的阶段或遍的任意一个中。作为说明性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,例如在编译的前端阶段插入调用/操作,并且然后在变换阶段期间将该调用/操作变换为低级代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入这种操作/调用,以及优化代码以用于在运行时执行。作为具体的说明性示例,二进制代码(已经编译过的代码)可以在运行时期间被动态地优化。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
类似于编译器,转换器(例如二进制转换器)静态或动态地对代码进行转换,以优化和/转换代码。因此,提及的对代码、应用程序代码、程序代码或其它软件环境的执行可以指的是:(1)动态或静态地执行编译器程序、优化代码优化器、或转换器,以编译程序代码、维护软件指令、执行其它操作、优化代码、或转换代码;(2)执行包括操作/调用的主程序代码,所述主程序代码例如是已经被优化/编译的应用程序代码;(3)执行与主程序代码相关联的其它程序代码(例如库)以维护软件结构、执行其它软件相关操作、或者优化代码;或者(4)其组合。
源同步NoC随着每次数据传送发送延迟匹配时钟,消除了对完全同步时钟的需要。该技术通过移除在每一个路由器处对先进先出数据寄存器(FIFO)进行同步的需要而促进了多时钟设计。此外,通过仅针对执行路径而不是最坏情况路径来引发延迟,增加了吞吐量。通过对时序偏差进行平均而不是应用如在完全同步设计中的最坏情况边限,也可以减轻过程变化。这也消除了针对时钟偏斜和抖动的边限。然而,使用分组交换的源同步NoC消耗时钟功率来在每一个路由器处至少一次触发数据并且控制信号。源同步操作和分组交换独立于彼此。因为仅在传输实际数据时对触发器计时,所以源同步混合NoC受益于较低时钟功率存在。第二,源同步混合NoC变得更容许变化,这是因为不受限于最慢的链接部件,电路能够不以最坏情况时序边限而进行操作。
利用在独立电压和速度下操作的能力,根据本发明的实施例的路由器提供了在交换结构或流量模式本质上是不对称的情况下改进能量效率的机会。
在各种实施例中,提供具有源同步设计的混合NoC。在混合NoC中,分组交换预留分组用于建立电路交换数据通道。在实施例中,分组交换预留分组可以相对较小,而电路交换数据传送相对较大。分组在每一个路由器节点处至少被触发一次(通常四次)。相反地,电路交换传送不具有路由内存储,这降低了时钟功率。以这种方式,NoC使得能够发生混合分组和电路交换数据通信,而相对于完全同步或分组交换NoC具有提高的能量效率和吞吐量。通过在电路交换通道上传输主要数据,能够避免介入中间的存储元件,降低功率消耗。并且通过使用混合设计,分组交换网络能够用于储备电路交换网络的路径,缓和针对网络资源的竞争所导致的拥塞。
实施例可以尤其适合于具有在不同的时钟和电压域中操作的IP块的NoC以及异构NoC。这样,实施例结合了源同步操作和电路交换的益处,以使集成变得容易并且降低时钟和仲裁功率。
因此,混合NoC将分组交换网络的吞吐量与电路交换数据通道的能量效率相结合。使用源同步布置,可以将处理器(例如包括NoC的片上系统(SoC))设计为具有多个时钟域。源同步操作促进异构NoC与多个时钟域的集成,而无需全局时钟分布或在每一个路由器处同步数据FIFO缓冲器。这样,防止网络性能被缓慢路径或路由器全局限制,并且通过对平均过程变化所导致的时序变化进行了平均,而增加了吞吐量,并且消除了针对时钟偏斜和抖动的边限。
在各种实施例中,源同步时钟允许各个路由器在缺少任意全局同步信号的情况下进行通信。反而,控制流信号中的跃迁(transition)被用于传达信息,由此消除对全局时钟信号的需要。路由器使用控制流信号(例如,“请求”和“批准”信号)来与其邻居进行通信。然而,它们不是电平敏感的,而是被跃迁的编码。“请求”上的跃迁表明在路由器的输入端口处存在新的分组。“批准”上的跃迁表明在路由器的输出端口处的先前数据已经被处理并且可以运行新的数据。
现在参考图2,其示出了根据本发明的实施例的NoC 200的框图,以及一对连接的路由器210a和210b的进一步的细节。如图所示,路由器210a包括输出端口212a,而路由器210b包括输入端口212b。对应的输出端口发送被传送到路由器210b的相对应的输入端口212b的“请求”信号。接着,该输入路由器将“批准”信号传送返回到路由器210a。如图2所示,当“请求”跃迁时,在路由器的输入端口处的锁存器关闭并且将请求发送给适当的输出端口。当该请求被服务时,输入端口将批准发送返回输出端口。这会打开锁存器,由此允许新的分组进入到输入端口。注意,另一对请求/批准信号可以在用于从路由器210b流动到路由器210a的数据的另一个方向进行通信。
在一个实施例中,路由器通过切换(toggle)“请求”信号并且等待通过如图2所示的互连从邻近路由器接收回的“批准”来发射分组。为了避免用于返回“批准”信号的这种额外的延迟,一些实施例允许源在接收到针对第一分组的批准之前发射多个分组。在该基于信用的系统中,飞行中的多个分组由中间存储缓冲器(例如,锁存器)来保持。虽然在本文中描述了路由器可以在接收到任意批准之前发射2个分组的信用-2系统,但是其它信用方案也是可能的。取决于路由器内不同端口与其目的地IP之间的距离,也可以使得每一个端口在独立的信用级别操作。该独立性对于SoC集成尤其有用,其中,取决于不同IP的大小及其布图规划,一些IP可以比其它IP更远离路由器。
在一个实施例中,在信用-2模式下操作的路由器能够通过在接收到相对应的“批准”信号形式的确认之前两次切换“请求”来发射2个数据分组。针对这种流控制的信用跟踪状态图在图3中示出。如图3所示,系统可以开始于信用2状态。在“请求”信号跃迁时,状态机移动到信用状态1,并且在另一“请求”跃迁时,其移动到信用状态0。接着,“批准”信号中的跃迁引起状态机跃迁到增加的信用状态1和2,如图所示。
现在参考图4,其示出了根据本发明的实施例的有限状态机(FSM)的框图。有限状态机在基于请求和批准的跃迁,在表示信用的3个可能级别的8个可能状态间切换。为了避免由于请求和批准的同时跃迁引起的信用跟踪错误,3个信用状态被划分为8个有限状态机状态。如图4所示,信用0具有2个FSM状态,信用1具有4个FSM状态,并且信用2具有2个FSM状态。作为将信用状态映射到8个FSM状态的结果,通过请求/批准信号级别而不是跃迁来设置通过有限状态机的跃迁。系统开始于信用级别2,请求信号和批准信号都是高。通过向下指向的箭头示出了从高到低级别的改变,并且通过向上指向的箭头示出了从低到高级别的改变。图4还示出了每一个状态处的信用计数。
现在参考图5,其示出了根据本发明的实施例的信用跟踪电路的框图。如图5所示,信用跟踪电路300经由一组逻辑门310、320和330来接收“批准”和“请求”信号。接着,AND门310和330的输出驱动锁存器340的设置和复位输入,其输出与最高有效位(MSB)相对应。经由逻辑350,三个信号的状态被输入到由OR门320的输出锁定的锁存器360,以由此指示信用级别。更具体地,在信用级别既不是000也不是011时,锁存器360的输出为高。注意,在进入输入逻辑门310、320和330之前,将请求和批准跃迁转换为脉冲。
因此,如图5所示,在任意给定的瞬间,信用跟踪状态机响应于“请求”、“批准”、或两者中的跃迁。对于“请求”和“批准”中的同时跃迁,状态机获得正确的状态,而不论其响应“请求”和“批准”的次序。状态机产生单个位的输出,其是高时指示分组可以由路由器端口发射。此外,在给定的“请求”和“批准”两者同时跃迁的情形,状态分配的独特性质确保总是获得正确的状态,而不管处理跃迁的次序。
现在参考图6,示出了根据本发明的实施例的分组路由器输入端口的框图。如图6所示,输入端口400包括输入锁存器405和410,其分别接收地址和请求信号。将地址提供给方向逻辑420,其生成到NOR门435的一个热位向量输出。接着,请求输入通过锁存器410(以及脉冲转换逻辑)被锁存到另一锁存器415,其接着驱动具有耦合到NAND门430的输出的延迟元件425,该NAND门430的输出耦合到NOR门435。注意,到NAND门430的第二输入经由反相器432的输出被接收,反相器432接着耦合到OR门440的输出,OR门440接收来自各种端口的一组批准信号。该输出信号还驱动用于对输入锁存器410和输出锁存器448二者进行计时的另一锁存器445,其驱动批准输出。注意,用于锁存器448的时钟信号是通过反相器446和NAND门448被驱动的。
图7是根据本发明的实施例的分组路由器输出端口的框图。现在参考图7,路由器输出端口450包括优先级电路455,其接收来自各种输入和输出信号的到一组AND门4600-4603的请求,AND门4600-4603的输出驱动OR门461。AND门460的其它输入经由由AND门480驱动的锁存器465被接收,当信用量大于零时,AND门480接收来自信用跟踪器475的高信号。该AND门还对切换触发器490进行计时,该切换触发器490提供请求输出信号。注意,到AND门480的另一输入经由另一锁存器470耦合到具有分别从优先级电路455和OR门461接收的设置和复位输入的输出。
路由器的输入和输出端口被设计为结合信用跟踪逻辑来工作。当缺少分组时,输入锁存器保持透明。在请求信号中的跃迁使得内部电平敏感的请求被创建并且使用由方向逻辑420所生成的一个热位向量将其传播到适当的输出端口。在处理了电平敏感请求之后,输出端口将批准信号发送到输入端口,以关闭输入锁存器410。使用由方向逻辑420生成的一个热位向量来将内部请求传播到适当的输出端口。
从图7可看出,优先级电路455在来自输入端口的到来的电平敏感请求信号中选择一个。如果信用跟踪器475所输出的“信用>0”的位是高的,则切换“请求输出”信号。这暗示发射新分组。同时,批准被发送回相对应的输入端口。响应于该批准,输入端口通过重置其内部请求信号来撤销其请求,并且将其“批准输出”端口切换到先前的路由器,以指示分组的成功传送。同时,输入端口400打开输入锁存器410,由此允许新的分组进入路由器。
电路交换数据通过消除内部路由数据触发器及其时钟功率来降低能量消耗。源同步操作和电路交换数据的组合提供了进一步的益处。对于完全同步操作,用于电路传送的时钟针对最坏情况的角对角网络遍历留有边限。在没有源同步技术的情况下,相邻IP块与在NoC的相对端处的两个IP块具有相同的电路交换延迟。利用源同步操作,电路交换活动是基于事件的相对IP到IP延迟,例如,在具有随机流量的16x16网格中产生65%的延迟降低。利用结合近阈值电压的电路交换,操作通过互补金属氧化物半导体(CMOS)设计,接近能量效率的限制,该限制由仅包含电线的点到点互连以及以低电压运行的组合中继器来进行定义。实施例还可以包括多路解复用器(解复合器)、多路复用器(复合器)、以及仲裁电路以控制理想的点对点情况的顶部上的NoC流。
在一个混合源同步NoC实现方式中,请求分组建立源IP和目的地IP之间的电路交换通道。为了开始数据传送,源IP向目的地IP发送预留分组(例如,在实施例中,包括1位(b)请求、8b地址以及可选分组数据)。所述分组在每一个路由器上被触发一次,并且被向下游转发。路径上的每一个路由器将批准信号(例如,1b批准)发送回先前的路由器,以释放基于信用的系统中的上游链路。在一个实施例中,如上文所讨论的,信用系统可以被实现为信用-2系统。当建立电路交换通道时,数据在通道上从源被传递到目的地。对于该电路交换通信,一旦接收到电路交换数据,目的地路由器将确认一直发送回源核心。
现在参考图8,示出了根据本发明的实施例的方法的流程图。如图8所示,方法850可以通过遍及NoC存在的各种逻辑执行。这样的逻辑可以分布在位于期望数据通信路径的源逻辑和目的地逻辑之间的多个路由器内。如图所示,方法850开始于框860,其中,在路由器中接收到来自源逻辑的预留请求,并且将其存储在缓冲器(例如,FIFO缓冲器)中。该预留请求可以是经由NoC的分组交换部分通信的预留分组,所述NoC具有或不具有存储多个预留分组的缓冲器,每一个预留分组对应于源逻辑和目的地逻辑之间的数据通信的预留。接下来,在框870处,将预留分组发送到路径上的路由器以到目的地逻辑。例如,基于在给定路由器中执行的查找或其它路由协议,将该预留分组沿着从源逻辑到目的地逻辑的路径转发。
仍参考图8,接下来,可以确定该预留请求在从源逻辑到目的地逻辑的路径上是否具有最高优先级(菱形880)。如果否,则该预留等待直到其是最高优先级为止。当预留具有最高优先级时,则在源逻辑和目的地逻辑之间建立电路交换通道(框885)。在建立该通道之后,发生数据通信。更具体地,在框890处,在源逻辑和目的地逻辑之间对电路交换数据传送进行通信。每一个传送可以包括一个或多个数据段,其大小由数据总线来进行设置。在具有电路流的实施例中,可以在通道关闭之前,将多个段从源逻辑传递到目的地逻辑。在实施例中,利用具有前向(流、尾)和反向(确认)握手信号的2阶握手来执行通信。源逻辑接收指示成功接收到被传送的每一个电路交换段传送的确认。在实施例中,电路交换传送使用信用-1系统,而分组交换传送使用信用-2系统。在更一般的意义上,它们二者都可以具有其它独立的基于信用的协议。虽然在图8的实施例中以高层次进行了描述,但可以理解的是本发明的范围在此方面不受限制。
现在参考图9,示出了包括多个路由器510a-510c的NoC 500的框图。如图所示,每一个输入端口和输出端口以有序方式来提供数据传送。当到来的预留被加入队列并且不同的预留被输入到不同路由器时,它们在不同的路由器处分叉。由此可见,在路由器510a内,在输出端口的FIFO中,较早的预留被放置在预留5和6之前。然后在路由器510b中,预留4和6分叉,并且因此预留5进入该输出端口的FIFO的头部。在被输入到路由器510c的输入端口的FIFO之后,由于输出端口的FIFO已满,所以预留5被停止。
在每一个路由器端口,预留将方向信息存储到FIFO中的最高可用槽中。最高整体槽控制电路通道多路复用器(复合器)和多路解复用器(解复合器)。预留可以在路径的每组出-入端口处具有不同的优先级。也就是,预留可以在其遍历源和目的地之间的路由时改变槽优先级,只要保持全局顺序即可。如果FIFO已满,则预留被阻塞。当预留在从源到目的地的所有FIFO中具有最高优先级时,源和目的地IP使用电路交换协议来进行通信。在实施例中,该通信包括在具有2段握手协议的组合通道上的指示数据段的开始的1b流信号、指示数据传送结束的1b尾信号、80b数据和1b确认的传送控制信号。当通道保持打开时,可以流送电路数据以发送多个数据段(例如,80b数据中的每一个),每一个段具有其自己的确认。这在大得多的数据传送上摊销了电路交换仲裁开销。当完成数据流送时,最终确认通过增加沿着路径的所有FIFO中的优先级而使通道解除分配。这从FIFO移除了完成的最高优先级预留,允许后续电路交换传送发生。
现在参考图10A,示出了根据本发明的一个实施例的路由器的输入和输出端口的框图。除了处理预留分组以及电路交换控制和数据信息,路由器将到来的边带数据从每一个入端口发送到正确的出端口。在图10A中,在左边示出入端口600,并且在右边示出出端口700。首先考虑分组交换部分601/701。在信用-2分组系统中,被发送的请求的数量可以比接收到的批准的数量超出2个。请求和批准是跃迁编码的。在入端口中,请求被转换为电平敏感信号,利用地址信息来进行解复合,并且被发送到正确的出端口。当路由器忙时,锁存器和C元件阻塞到来的分组。从入端口600的分组部分601开始,到来的请求经由C元件605被接收,该C元件605还接收批准信号,并且驱动异或门610的一个输入。图10B示出了根据本发明的一个实施例的C元件的框图。另一输入来自异或门620的批准输出,该异或门620接收多个批准信号。接着,门610的输出被耦合到多路解复用器615,并且还驱动锁存器630,该锁存器630接收到来的分组数据、以及地址信息和电路使能信号。门610的输出是中间电平敏感请求信号,其由路由器用于处理到达输入端口的请求。
在FIFO 650中存储关于预留分组的信息。更具体地,可以经由解码器625的输出将该信息存储于条目中。在实施例中,地址可以与每一个核心相关联(并且因此在核心和路由器之间是1:1映射的情况下与路由器相关联)。接着,该地址可以用于生成每一个路由器本地的方向信息,以识别用于发送信息的路由器的合适端口。在实施例中,该方向信息(其可以是用于识别四个方向中的一个方向的两个位)存储于FIFO中。
当给定的输入端口打开时,到来的数据和地址信息通过锁存器630被一直传递到出端口700的多路复用器735。注意,经由通过耦合到另一异或门675的异或门665和670接收到的电路确认信号来控制用于电路交换通信的各种元件。尾信号指示数据传送的结束,并且被提供到XOR门655、多路解复用器660、以及随后的切换触发器745和XOR门765。到来的电路流信号(经由异或门680)被提供,并且通过多路解复用器690(用于流信号)并到达出端口700上,并且更具体地,到达切换触发器750上。切换触发器750的输出驱动双边沿触发器760,并且还是异或门770的输入,由此输出针对电路流数据的控制信号。接着,电路数据本身经由多路复用器锁存器755通过入端口600并通过出端口700被传递。
对应的FIFO 740存在于出端口700中,并且被配置为经由方向仲裁器705来接收输入。多路复用器735耦合到双边沿触发的触发器730。在方向仲裁器705中确定数据流的方向,仲裁器705接着驱动切换触发器710以输出批准信号。现在参考图10C,示出了根据本发明的一个实施例的切换触发器的框图。还应注意到,存在另一C元件725,其输出耦合到互斥NOR门715的输入。
来自出端口的批准被向上游发送,返回到源。在出端口,方向仲裁器705从入端口请求中进行选择。所述请求被使用切换触发器710转换为跃迁。所述跃迁用作针对先前路由器的外出请求和批准。该外出请求使用双边沿触发的触发器来触发地址和数据信息。现在参考图10D,示出了根据本发明的一个实施例的双边沿触发的触发器的框图。C元件跟踪信用,并且在信用被超出时禁用切换触发器。
由此,分组被用于使用图10A的电路部分602/702来建立电路交换通道。分组将方向信息存储到所有端口中最高可用的FIFO槽中。最高整体优先级FIFO槽控制用于电路交换控制信号和数据的解复合和复合。锁存器用于电路数据,仅用于防止数据链路上不必要的故障(glitch)。在实施例中,锁存器在电路传送期间保持打开,并且对每一个流仅开关一次,以获得比分组交换显著降低的时钟功率。在实施例中,实现二者都指定数据传送的两个转发控制信号(流和尾)。流信号表示电路数据与要更随的更多数据(如额外的段)的通信,并且因此保持电路通道打开,以用于(一个或多个段的)完整的电路数据传送,并且尾信号表示电路数据传送的结束,并且通过增加FIFO优先级来对电路交换通道进行解除分配。接着,在相反方向上,针对电路数据传送的每段,从目的地向源发送反向控制信号(确认)。
现在参考图11,示出了根据本发明的实施例的FIFO 800的框图。在实施例中,FIFO800被实现为具有旋转写入和读取指针的4-深度寄存器。如图11所示,FIFO组810经由由写入指针820控制的多路解复用器805将到来的数据接收到其条目中相对应的一个,所述写入指针820又包括Gray计数器822和解码器824。以防止所有故障的方式来在FIFO中执行解码。在实施例中,FIFO指针是Gray编码的,并且FIFO作为循环FIFO进行操作,以确保没有故障。这种编码还使得能够在读取指针和写入指针之间进行比较,而没有任何故障,以确定FIFO是满的还是空的。
FIFO组810的条目耦合到输出多路复用器815,其输出将经由Gray计数器832和解码器834控制的读取指针830读取的所选择的条目。还应注意,用于提供空信号和满信号的FIFO状态逻辑840的存在。
FIFO 800由此被配置为分组交换预留和电路交换传送之间的接口。指针被实现为Gray计数器,以允许无故障的异步写入和读取操作。由于可以对用于电路传送的预留进行入队,所以预留分组比电路交换传送传播的更快,并且提前建立下游电路交换通道以隐藏地址解码和方向仲裁延迟。
维序路由(先是X然后是Y)防止分组网络中的死锁。通过电路传送,当分组分配电路交换通道,但电路传送形成周期性优先级循环并且永不到达时,可能发生额外的死锁场景。实施例可以通过仅在转向处停止请求直到电路控制信号到达为止来避免该死锁。当请求和电路传送从E或W改变方向到N或S时,发生转向。当从任意基本方向向下转向到核心端口时,发生类似情形。在该场景中,由于下游端口是最终目的地,所以不需要维持传送次序,并且选择最早到达的电路传送。因此,使用本发明的实施例,通过在转向(E、W->N、S)处停止请求直到有效电路传送到达为止,而避免了死锁。
本文所描述的路由器实现可以用于多种不同类型的系统中。现在参照图12,示出了在16x16网格中实现的NoC 900的框图。在实施例中,每一个路由器910具有唯一的时钟和电压。在实施例中,路由器之间的链路可以以包括32b分组数据和80b电路交换数据的126b宽互连来实现。然而可以理解的是,根据本发明的实施例,NoC可以应用于多种网络拓扑、大小、总线宽度和工艺。
如图12所示,NoC 900包括多个单独的路由器910。每一个这种路由器包括5个端口,即东、西、北、南端口和核心端口。每一个端口由入端口和出端口形成。与相对应的入端口和出端口相关联的各种电路和分组信号也在图12中示出。注意,在这5个端口之间,可以提供各种交叉开关和仲裁逻辑。在实施例中,E和W方向链路可以适用于在一个金属层上,N和S方向链路适用于在第二金属层上,并且核心链路适用于在第三金属层上。每一个路由器发送112b数据(包括32b分组和80b电路交换数据)。在特定实施例中,NoC可以被设计为实现10.3Tb/s的对分带宽,并且具有随机饱和流量的369Gb/s/W的能量效率。
源同步操作通过不对循环时间做最坏情况处理提供了吞吐量的提高。对于相同的能量效率,示例性源同步分组交换NoC可以具有比完全同步设计高出大约26%的吞吐量,以及在相同吞吐量时高出大约47%的能量效率。
使用流送数据传送,发送更多的电路交换数据作为每一个请求分组的结果。分组延时和功率开销被分散到更多数量的电路传送,提高了吞吐量和能量效率。在源同步上下文中的电路交换消除了用于路由内存储的计时和触发功率,与NoC中的分组交换数据相比,提高了能量效率。
使用本发明的实施例,NoC促进以高能量效率将多个时钟域并入到该NoC中。源同步操作减轻了全局时钟分布和同步数据FIFO功率。通过不针对最坏情况留边限而减少了循环时间,并且可以消除针对时钟偏斜和抖动的边限。电路交换传送还通过从数据路径移除宽触发器阵列而降低时钟功率。因为源同步操作,这些传送并不针对最坏情况的角对角延迟留边限。源同步混合分组和电路交换NoC允许具有不同时钟域的核心以更高能量效率进行通信。这促进了异构NoC与不同时钟域内的不同IP的集成。这种方法还通过减轻与关键路径以及时钟偏斜和抖动相关联的时序不确定性,而增加了处理变化的弹性。
在不需要全局时钟的情况下,不同的IP可以以独立的频率和电源电压运行。这对于SoC设计可能是尤其有益的,其中不同部件可以在它们自己的能量最优点操作并且可以被无缝地与NoC合并,而除了在核心/网络接口处外,不针对同步电路产生任何延迟或能量损耗。另外,路由器之间的通信的源同步本质改善了针对拥塞流量的分组延迟,还导致比异构系统中最坏情况分组延迟更好。
这种交换结构的一个示例是在4级层次的星形拓扑中连接的256节点的交换结构。通过增加的层级,使得互连长度加倍,这是因为路由器彼此间隔得更远。考虑这样的情况,其中,进入每一个层次的50%的分组被引导向位于较高层级的路由器,较高级别上的流量更加拥塞。在这种场景下,以降低的电源电压来操作较低层级的路由器会提供更高的能量效率,而在吞吐量上具有可忽略的损失。如果给定在独立电源电压下操作的能力,则这是无缝实现的,而没有任何额外的逻辑开销。
在一个实现中,分组交换路由器电路使用控制流信号跃迁取代时钟来发送分组。在该系统中,输入端口接收到来的分组,确定方向,并将该分组转发到适当的输出端口。接着,输出端口从可用分组中进行选择以将一个发送到下一路由器。路由器接收由请求信号跃迁指示的分组,并且将批准信号跃迁回以表示对另一分组做好准备。在一些实施例中,信用-2通信协议在接收批准之前发送两个分组。当路由器的输入端口处的锁存器关闭时,在处理第一分组期间后续分组被阻塞。
在一个实现中,在输出端口中使用双边沿触发器来将数据发送到下一路由器,使用C元件来在输入端口内跟踪请求和确认信号,使用C元件来在输出端口中跟踪信用并且在信用用尽时禁止发送更多的分组。可以使用无故障地址解码电路来将请求信号转发到适当的输出端口,并且方向仲裁电路基于到达顺序从输入端口请求信号中选择一个请求来发送以进入输出端口,同时避免饿死(starvation)。并且,通过额外的信用跟踪和存储电路,启用多信用系统。
实施例还提供了混合电路交换路由器电路,其使用控制流信号跃迁替代时钟来发送电路交换数据。在实施例中,发送请求分组以创建电路交换路径。在每一个路由器内的FIFO请求存储设备存储请求分组遍历路由器时的请求分组方向。可以通过将请求写入到具有最高优先级的可用条目来在NoC上维护全局优先级次序。这样,来自填充的FIFO条目的最高优先级请求对电路交换通道进行配置。对于电路的电路交换部分,电路交换流信号指示后面跟有更多传送的电路交换数据的到达,电路交换有效信号指示完成传送的电路交换数据的到达,并且电路交换确认信号指示电路交换数据在其目的地处被接收。注意,除了电路交换传送外,分组可以用于小的边带传送,并且信号可以用于指示分组被用于边带数据还是电路交换路径建立,或用于两者。
下面转向图13,其描绘了根据实施例的片上系统(SOC)设计的实施例。作为具体说明性示例,SOC Q2000包含于用户设备(UE)中。在一个实施例中,UE指的是由终端用户用来进行通信的任意设备,例如手持电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本,或者任意其它类似的通信设备。通常,UE连接到基站或节点上,其本质可能对应于GSM网络中的移动站(MS)。
这里,SOC 2000包括2个核心——2006和2007。类似于上述讨论,核心2006和2007可以遵循指令集架构,例如基于ArchitectureCoreTM的处理器、Advanced MicroDevices,Inc.(AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或者其客户以及它们的被许可者或采用者。核心2006和2007耦合到与总线接口单元2009和L2高速缓存2010相关联的高速缓存控制2008上,以与系统2000的其它部分进行通信。互连2010包括片上互连,诸如IOSF、AMBA、或者以上讨论的其它互连等,其可能实现本文描述的一个或多个方面。
互连2010向其它部件提供通信通道,所述其它部件例如是与SIM卡进行连接的订户身份模块(SIM)2030、对启动代码进行保存以由核心2006和2007执行以初始化和启动SOC2000的的ROM2035、与外部存储器(例如DRAM2060)进行连接的SDRAM控制器2040、用于与非易失性存储器(例如,闪存2065)进行连接的闪存控制器、与外围部件进行连接的外围控制器2050(例如,串行外围接口)、用于显示和接收输入(例如,支持触摸输入)的视频编解码器2020和视频接口2025接口、用于执行图形相关计算的GPU 2015等。这些接口中的任一个可以并入本文描述的方面中。
另外,系统示出了用于通信的外围部件,例如蓝牙模块2070、3G调制解调器2075、GPS 2080以及WiFi 2085。在系统中还包括功率控制器2055。如上所陈述的,UE包括用于通信的无线设备。因此,并不全部需要这些外围通信模块。然而,在UE中,包括用于外部通信的某种形式的无线设备。
下面的示例涉及进一步的实施例。
在一个示例中,一种装置包括:路由器,包括第一输入端口和第一输出端口,其中所述路由器属于NoC,所述路由器基于控制流信号中的跃迁能够将分组从所述路由器传递到所述NoC的第二路由器。
在示例中,所述第一输入端口包括锁存器,用于响应于在所述第一输入端口中接收到的第一控制流信号中的跃迁,从所述第二路由器接收请求的通信。
在示例中,所述第一输入端口响应于服务于所述请求,而将第二控制流信号发送到所述第二路由器,以表示准备好服务另一请求,并且打开所述锁存器。
在示例中,所述第二路由器在接收到所述第二控制流信号中的跃迁之前,将多个分组传递到路由器,其中基于所述第二控制流信号中的跃迁来更新所述第二路由器的信用级别。
在示例中,当被关闭时,所述锁存器用于防止在处理所述请求期间将新的分组插入到所述第一输入端口中。
在示例中,所述第一输入端口用于接收与所述第一流控制信号中的跃迁相关联的分组,并且用于使所述第二流控制信号跃迁以指示准备好用于对另一分组的接收。
在示例中,所述装置还包括缓冲器,其耦合在所述路由器和所述第二路由器之间,以在多个分组传递到路由器之前存储所述多个分组中的至少一个。
在示例中,所述路由器包括信用逻辑,其接收第一控制流信号和第二控制流信号,并且基于所述第一控制流信号和第二控制流信号生成第三信号,以及基于所述第一控制流信号和第二控制流信号和所述第三信号来更新信用级别。
在示例中,所述第三信号是响应于所述第一控制流信号中的跃迁的第一值,以及响应于所述第二控制流信号中的跃迁的第二值。
在示例中,所述信用逻辑使得所述第二路由器能够在接收到所述第二控制流信号中的第一跃迁之前对所述请求进行传递,并且在所述信用级别小于阈值时防止所述第二路由器对所述请求进行传递。
在示例中,所述NoC是源同步混合分组/电路交换NoC。
在示例中,所述路由器以第一频率和第一电压操作,并且所述第二路由器以第二频率和第二电压操作。
在一个示例中,一种装置包括:多个路由器,其中的每一个具有一组输入端口和一组输出端口,所述输入端口和输出端口中的每一个具有电路交换部分和分组交换部分,其中在源逻辑和目的地逻辑之间的所述一组输入端口和输出端口中的多个的分组交换部分将在所述源逻辑和目的地逻辑之间建立电路交换通道,以基于控制流信号跃迁来对电路交换数据进行通信,其中所述多个路由器根据源同步协议来进行操作。
在示例中,所述分组交换部分中的每一个包括存储请求的缓冲器,其中所述请求的优先级在每一个分组交换部分处是可变的。
在示例中,所述缓冲器包括多个条目,每一个条目存储与所述请求中的一个相关联的方向信息,并且其中,通过在具有最高优先级的缓冲器的可用条目中存储第一优先级请求来维护全局优先级顺序。
在示例中,所述装置还包括:第一选择器,其耦合到所述缓冲器的输入;以及写入指针逻辑,用于控制所述第一选择器,其中所述写入指针逻辑包括Gray计数器,用于选择所述缓冲器的在其中写入方向信息的条目;第二选择器,其耦合到所述缓冲器的输出;以及读取指针逻辑,用于控制所述第一选择器,其中所述读取指针逻辑包括Gray计数器,用于选择所述缓冲器的从其中读取方向信息的条目。
在示例中,当第一请求在所述源逻辑和目的地逻辑之间的每一个分组交换部分中具有最高优先级时,建立所述电路交换通道以用于与所述第一请求相关联的数据的通信。
在示例中,所述电路交换通道用于响应于所述电路交换通道的建立,来对电路交换数据通信的多个数据段进行通信。
在示例中,所述电路交换通道用于对以下项进行通信:第一电路控制流信号,用于指示跟随有至少一个额外的数据段的多个数据段的第一数据段的到达;第二电路控制流信号,用于指示所述电路交换数据通信的完成,以及第三电路控制流信号,用于指示在所述源逻辑中接收到所述多个数据分组的每一个数据段。
在示例中,所述多个路由器中的每一个与SoC的核心相关联。
在示例中,所述分组交换部分用于将边带数据作为第一分组来进行通信。
在示例中,所述分组交换部分用于将针对建立所述电路交换通道的预留请求作为第二分组来进行通信。
在一个示例中,一种方法包括:在NoC的分组部分中,确定从源逻辑发布到目的地逻辑的预留请求在存储于在所述源逻辑和目的地逻辑之间耦合的多个路由器的缓冲器中的多个预留请求中具有最高优先级;以及在所述NoC的电路部分中,建立所述源逻辑和目的地逻辑之间的电路交换通道,以使得能够在所述源逻辑和目的地逻辑之间进行数据通信。
在示例中,所述NoC是源同步混合分组/电路交换NoC。
在示例中,所述方法还包括:响应于所述目的地逻辑中接收到所述数据通信的第一分组,开始将要被传递到源逻辑的第一确认信号中的跃迁。
在示例中,所述方法还包括:响应于接收到所述第一确认信号中的跃迁,来更新在所述源逻辑中的信用值。
在示例中,所述方法还包括:使得所述源逻辑能够在接收到所述第一确认信号中的跃迁之前将多个分组传递到所述目的地逻辑。
在一个示例中,一种装置包括:用于执行如任意一个或多个上述示例中的任意一个所要求保护的方法的单元。
在另一个示例中,一种机器可读存储介质包括机器可读指令,当所述指令被执行时,用于实现如任意一个或多个上述示例中的任意一个所要求保护的方法。
在一个示例中,一种系统包括:SoC,其包括多个核心,每一个核心与源同步NoC的路由器相关联,所述路由器中的每一个包括:一组输入端口和一组输出端口,所述输入端口和输出端口中的每一个具有电路交换部分和分组交换部分,其中在源核心和目的地核心之间的分组交换部分将建立电路交换通道,以用于基于控制流信号跃迁来对电路交换数据进行通信;以及耦合到所述SoC的非易失性存储设备。
在示例中,第一分组交换部分用于生成第一分组控制流信号中的跃迁以指示从第一分组交换部分到第二分组交换部分的分组的传输,以及第二分组交换部分用于生成第二分组控制流信号中的跃迁以指示准备好用于另一分组的接收。
在示例中,第一电路交换部分用于生成第一电路控制流信号中的跃迁以指示所述电路交换数据的第一数据段的到达,以及生成第二电路控制流信号中的跃迁以指示所述电路交换数据的通信的完成。
在示例中,包括SoC的处理器被并入到用户设备支持触摸的设备中。
在另一示例中,一种系统包括显示器和存储器,并且包括一个或多个上述示例中的处理器。
实施例可以用于多种不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是相反,其它实施例可以针对用于处理指令的其它类型的装置,或者针对包括指令的一个或多个机器可读介质,所述指令响应于在计算设备上执行而使得设备执行本文描述的一种或多种方法和技术。
实施例可以在代码中实现,并且可以存储于其上存储有指令的非暂时性存储介质上,所述指令可以用于对系统进行编程以执行指令。存储介质可以包括但不限于,任意类型的盘,包括软盘、光盘、固态驱动(SSD)、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)以及磁光盘;半导体设备,例如只读存储器(ROM)、随机存取存储器(RAM)(如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪速存储器、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡,或适于存储电子指令的任意其它类型的介质。
虽然已经关于有限数量的实施例描述了本发明,但本领域的技术人员将理解其多种修改和变化。随附的权利要求意图覆盖落入本发明的真正精神和范围内的所有这样的修改和变化。
Claims (34)
1.一种用于对信息进行路由的装置,包括:
路由器模块,包括第一输入端口和第一输出端口,其中所述路由器模块属于片上网络NoC,所述路由器模块用于使得能够基于控制流信号中的跃迁来将分组从所述路由器模块传递到所述NoC的第二路由器模块,所述第一输入端口具有包括缓冲器资源的分组交换部分和不具有缓冲器资源的电路交换部分,其中,所述分组交换部分包括:
存储请求的缓冲器,其中,所述请求的优先级在所述分组交换部分和所述第二路由器模块的分组交换部分处是能够变化的,所述缓冲器包括多个条目,所述多个条目中的每一个条目存储与所述请求中的一个请求相关联的方向信息,并且其中,通过将第一优先级请求存储在具有最高优先级的缓冲器的能够使用的条目中来维护全局优先级顺序。
2.根据权利要求1所述的装置,其中,所述第一输入端口包括锁存器,其用于响应于在所述第一输入端口中接收到的第一控制流信号中的跃迁,从所述第二路由器模块接收对请求的传递。
3.根据权利要求2所述的装置,其中,所述第一输入端口响应于对所述请求的服务而将第二控制流信号发送到所述第二路由器模块以指示准备好服务另一请求,并且打开所述锁存器。
4.根据权利要求3所述的装置,其中,所述第二路由器模块在接收到所述第二控制流信号中的跃迁之前,将多个分组传递到路由器,其中,所述第二路由器模块的信用级别是基于所述第二控制流信号中的跃迁来进行更新的。
5.根据权利要求2所述的装置,其中,当被关闭时,所述锁存器防止在对所述请求进行处理期间将新的分组插入到所述第一输入端口中。
6.根据权利要求3所述的装置,其中,所述第一输入端口接收与所述第一控制流信号中的跃迁相关联的分组,并且使所述第二控制流信号跃迁以指示准备好用于对另一分组的接收。
7.根据权利要求1所述的装置,其中,所述路由器模块包括信用逻辑,其接收第一控制流信号和第二控制流信号,并且基于所述第一控制流信号和所述第二控制流信号来生成第三信号,以及基于所述第一控制流信号和所述第二控制流信号和所述第三信号来更新信用级别。
8.根据权利要求7所述的装置,其中,所述第三信号是响应于所述第一控制流信号中的跃迁的第一值以及是响应于所述第二控制流信号中的跃迁的第二值。
9.根据权利要求7所述的装置,其中,所述信用逻辑使得所述第二路由器模块能够在接收到所述第二控制流信号中的第一跃迁之前传递所述请求,并且在所述信用级别小于阈值时防止所述第二路由器模块对所述请求的传递。
10.根据权利要求1所述的装置,其中,所述NoC是源同步混合分组/电路交换NoC。
11.根据权利要求1所述的装置,其中,所述路由器模块以第一频率和第一电压来进行操作,并且所述第二路由器模块以第二频率和第二电压来进行操作。
12.一种用于对信息进行路由的装置,包括:
多个路由器,所述多个路由器中的每一个具有一组输入端口和一组输出端口,所述输入端口和所述输出端口中的每一个具有电路交换部分和分组交换部分,其中,在源逻辑和目的地逻辑之间的所述一组输入端口和所述一组输出端口中的多个的所述分组交换部分在所述源逻辑和目的地逻辑之间建立电路交换通道,以基于控制流信号跃迁来对电路交换数据进行通信,其中,所述多个路由器根据源同步协议来进行操作,并且所述分组交换部分中的每一个包括:
存储请求的缓冲器,其中,所述请求的优先级在所述分组交换部分中的每一个处是能够变化的,所述缓冲器包括多个条目,所述多个条目中的每一个条目存储与所述请求中的一个请求相关联的方向信息,并且其中,通过将第一优先级请求存储在具有最高优先级的缓冲器的能够使用的条目中来维护全局优先级顺序。
13.根据权利要求12所述的装置,还包括:
第一选择器,其耦合到所述缓冲器的输入;以及
写入指针逻辑,用于控制所述第一选择器,其中,所述写入指针逻辑包括Gray计数器,用于选择所述缓冲器的在其中写入所述方向信息的条目;
第二选择器,其耦合到所述缓冲器的输出;以及
读取指针逻辑,用于控制所述第一选择器,其中,所述读取指针逻辑包括Gray计数器,用于选择所述缓冲器的从其中读取所述方向信息的条目。
14.根据权利要求12所述的装置,其中,当第一请求在所述源逻辑和所述目的地逻辑之间的所述分组交换部分的每一个中具有最高优先级时,建立所述电路交换通道以用于与所述第一请求相关联的数据的通信。
15.根据权利要求14所述的装置,其中,所述电路交换通道响应于所述电路交换通道的建立,来对电路交换数据通信的多个数据段进行通信。
16.根据权利要求15所述的装置,其中,所述电路交换通道用于对以下项进行通信:第一电路控制流信号,其用于指示跟随有至少一个额外数据段的多个数据段的第一数据段的到达;第二电路控制流信号,其用于指示所述电路交换数据通信的完成;以及第三电路控制流信号,其用于指示在所述源逻辑中接收到所述多个数据分组的每一个数据段。
17.根据权利要求12所述的装置,其中,所述多个路由器中的每一个与片上系统SoC的核心相关联。
18.根据权利要求12所述的装置,其中,所述分组交换部分将边带数据作为第一分组来进行通信。
19.根据权利要求17所述的装置,其中,所述分组交换部分将用于建立所述电路交换通道的预留请求作为第二分组来进行通信。
20.一种用于对信息进行路由的方法,包括:
在片上网络NoC的分组部分中,确定从源逻辑发布到目的地逻辑的预留请求在存储于在所述源逻辑和所述目的地逻辑之间耦合的多个路由器的缓冲器中的多个预留请求中是否具有最高优先级;以及
当确定从所述源逻辑发布到所述目的地逻辑的所述预留请求具有最高优先级时,在所述NoC的电路部分中,在所述源逻辑和所述目的地逻辑之间建立电路交换通道,以使得能够在所述源逻辑和所述目的地逻辑之间进行数据通信。
21.根据权利要求20所述的方法,其中,所述NoC是源同步混合分组/电路交换NoC。
22.根据权利要求20所述的方法,还包括响应于在所述目的地逻辑中接收到所述数据通信的第一分组,开始要被传递到所述源逻辑的第一确认信号中的跃迁。
23.根据权利要求22所述的方法,还包括:响应于接收到所述第一确认信号中的跃迁,来更新所述源逻辑中的信用值。
24.根据权利要求23所述的方法,还包括:使得所述源逻辑能够在接收到所述第一确认信号中的跃迁之前将多个分组传递到所述目的地逻辑。
25.一种用于在片上系统SoC中对信息进行路由的系统,包括:
片上系统SoC,其包括多个核心,所述多个核心中的每一个核心与源同步片上网络NoC的路由器相关联,所述路由器中的每一个包括:
一组输入端口和一组输出端口,所述输入端口和所述输出端口中的每一个具有电路交换部分和分组交换部分,其中,源核心和目的地核心之间的所述分组交换部分建立电路交换通道,以用于基于控制流信号跃迁来对电路交换数据进行通信,其中,所述分组交换部分中的每一个包括:
存储请求的缓冲器资源,其中,所述请求的优先级在分组交换资源中的每一个处是能够变化的,所述缓冲器资源包括多个条目,所述多个条目中的每一个条目存储与所述请求中的一个请求相关联的方向信息,并且其中,通过将第一优先级请求存储在具有最高优先级的缓冲器资源的能够使用的条目中来维护全局优先级顺序;以及
耦合到所述SoC的非易失性存储设备。
26.根据权利要求25所述的系统,其中,第一分组交换部分生成第一分组控制流信号中的跃迁以指示从所述第一分组交换部分到第二分组交换部分的分组的传输,以及所述第二分组交换部分生成第二分组控制流信号中的跃迁以指示准备好用于对另一分组的接收。
27.根据权利要求26所述的系统,其中,第一电路交换部分生成第一电路控制流信号中的跃迁以指示所述电路交换数据的第一数据段的到达,以及生成第二电路控制流信号中的跃迁以指示所述电路交换数据的通信的完成。
28.一种具有指令的机器可读介质,所述指令在被处理器执行时,使所述处理器执行根据权利要求20-24中的任一项所述的方法。
29.一种用于对信息进行路由的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求20-24中的任一项所述的方法。
30.一种用于对信息进行路由的装置,包括:
用于在片上网络NoC的分组部分中,确定从源逻辑发布到目的地逻辑的预留请求在存储于在所述源逻辑和所述目的地逻辑之间耦合的多个路由器的缓冲器中的多个预留请求中是否具有最高优先级的单元;以及
用于当确定从所述源逻辑发布到所述目的地逻辑的所述预留请求具有最高优先级时,在所述NoC的电路部分中,在所述源逻辑和所述目的地逻辑之间建立电路交换通道,以使得能够在所述源逻辑和所述目的地逻辑之间进行数据通信的单元。
31.根据权利要求30所述的装置,其中,所述NoC是源同步混合分组/电路交换NoC。
32.根据权利要求30所述的装置,还包括用于响应于在所述目的地逻辑中接收到所述数据通信的第一分组,开始要被传递到所述源逻辑的第一确认信号中的跃迁的单元。
33.根据权利要求32所述的装置,还包括:用于响应于接收到所述第一确认信号中的跃迁,来更新所述源逻辑中的信用值的单元。
34.根据权利要求33所述的装置,还包括:用于使得所述源逻辑能够在接收到所述第一确认信号中的跃迁之前将多个分组传递到所述目的地逻辑的单元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/048748 WO2014209391A1 (en) | 2013-06-28 | 2013-06-28 | A method, apparatus and system for a source-synchronous circuit-switched network on a chip (noc) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105247817A CN105247817A (zh) | 2016-01-13 |
CN105247817B true CN105247817B (zh) | 2019-05-07 |
Family
ID=52142512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380077035.9A Active CN105247817B (zh) | 2013-06-28 | 2013-06-28 | 用于源同步电路交换片上网络(NoC)的方法、装置和系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9652425B2 (zh) |
EP (1) | EP3014818A4 (zh) |
KR (1) | KR101769757B1 (zh) |
CN (1) | CN105247817B (zh) |
WO (1) | WO2014209391A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6247398B2 (ja) * | 2013-09-12 | 2017-12-13 | エンパイア テクノロジー ディベロップメント エルエルシー | オンチップネットワークにおける回線交換事前予約 |
US9473415B2 (en) * | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
US9762474B2 (en) * | 2014-04-07 | 2017-09-12 | Netspeed Systems | Systems and methods for selecting a router to connect a bridge in the network on chip (NoC) |
US9680459B2 (en) | 2014-12-11 | 2017-06-13 | Intel Corporation | Edge-aware synchronization of a data signal |
US9923730B2 (en) | 2014-12-17 | 2018-03-20 | Intel Corporation | System for multicast and reduction communications on a network-on-chip |
US9866476B2 (en) | 2014-12-17 | 2018-01-09 | Intel Corporation | Parallel direction decode circuits for network-on-chip |
US9680765B2 (en) | 2014-12-17 | 2017-06-13 | Intel Corporation | Spatially divided circuit-switched channels for a network-on-chip |
US9992042B2 (en) | 2014-12-17 | 2018-06-05 | Intel Corporation | Pipelined hybrid packet/circuit-switched network-on-chip |
US9940236B2 (en) | 2014-12-17 | 2018-04-10 | Intel Corporation | Pointer chasing across distributed memory |
US11321263B2 (en) | 2014-12-17 | 2022-05-03 | Intel Corporation | High bandwidth core to network-on-chip interface |
US9979668B2 (en) | 2014-12-22 | 2018-05-22 | Intel Corporation | Combined guaranteed throughput and best effort network-on-chip |
US9787571B2 (en) | 2014-12-22 | 2017-10-10 | Intel Corporation | Link delay based routing apparatus for a network-on-chip |
US9961019B2 (en) | 2014-12-22 | 2018-05-01 | Intel Corporation | Adaptively switched network-on-chip |
US10050843B2 (en) * | 2015-02-18 | 2018-08-14 | Netspeed Systems | Generation of network-on-chip layout based on user specified topological constraints |
JP6481427B2 (ja) * | 2015-03-10 | 2019-03-13 | 富士通株式会社 | 演算処理装置,情報処理装置,及び情報処理装置の制御方法 |
US10481203B2 (en) * | 2015-04-04 | 2019-11-19 | Nvidia Corporation | Granular dynamic test systems and methods |
US9864728B2 (en) * | 2015-05-29 | 2018-01-09 | Netspeed Systems, Inc. | Automatic generation of physically aware aggregation/distribution networks |
US11165717B2 (en) * | 2015-10-26 | 2021-11-02 | Western Digital Technologies, Inc. | Fabric interconnection for memory banks based on network-on-chip methodology |
US10243881B2 (en) | 2015-10-27 | 2019-03-26 | Western Digital Technologies, Inc. | Multilayer 3D memory based on network-on-chip interconnection |
TWI608347B (zh) | 2015-10-27 | 2017-12-11 | 輝達公司 | 粒狀動態測試系統和方法 |
KR102497804B1 (ko) * | 2016-04-01 | 2023-02-10 | 한국전자통신연구원 | 듀얼 스위칭 네트워크 모드들에서 네트워킹 가능한 온칩 네트워크 장치 및 그것의 동작 방법 |
US10142258B2 (en) * | 2016-04-08 | 2018-11-27 | Advanced Micro Devices, Inc. | Methods and apparatus for processing in a network on chip (NOC) |
US11398980B2 (en) | 2019-11-19 | 2022-07-26 | Advanced Micro Devices, Inc. | Packet router with virtual channel hop buffer control |
CN112988653B (zh) * | 2019-12-16 | 2024-04-12 | 广州希姆半导体科技有限公司 | 数据处理电路、装置以及方法 |
US11184245B2 (en) | 2020-03-06 | 2021-11-23 | International Business Machines Corporation | Configuring computing nodes in a three-dimensional mesh topology |
CN111668232B (zh) * | 2020-06-19 | 2023-04-07 | 成都华微电子科技股份有限公司 | 集成电路芯片 |
US11256488B1 (en) | 2020-07-29 | 2022-02-22 | Bank Of America Corporation | Graph-based vectorization for software code optimizations |
US11301218B2 (en) | 2020-07-29 | 2022-04-12 | Bank Of America Corporation | Graph-based vectorization for software code optimization references |
KR20220102160A (ko) | 2021-01-11 | 2022-07-20 | 삼성전자주식회사 | 패킷 전송을 위한 스위치, 그것을 갖는 네트워크 온 칩, 및 그것의 동작 방법 |
CN116775418B (zh) * | 2023-08-22 | 2023-12-19 | 北京象帝先计算技术有限公司 | 一种片上网络中的路由节点、频率调整方法及电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266786B2 (en) | 2002-11-05 | 2007-09-04 | Sonics, Inc. | Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems |
US8064341B2 (en) | 2003-10-10 | 2011-11-22 | Nortel Networks Limited | Temporal-spatial burst switching |
KR100617386B1 (ko) * | 2004-06-03 | 2006-08-31 | 광주과학기술원 | 네트웍 온 칩 어플리케이션을 위한 버터플라이 팻-트리를사용한 비동기 스위치 회로 |
FR2883116B1 (fr) * | 2005-03-08 | 2007-04-13 | Commissariat Energie Atomique | Architecture de communication globalement asynchrone pour systeme sur puce. |
FR2898753B1 (fr) * | 2006-03-16 | 2008-04-18 | Commissariat Energie Atomique | Systeme sur puce a controle semi-distribue |
US20080005402A1 (en) * | 2006-04-25 | 2008-01-03 | Samsung Electronics Co., Ltd. | Gals-based network-on-chip and data transfer method thereof |
EP1863232A1 (en) * | 2006-05-29 | 2007-12-05 | Stmicroelectronics Sa | On-chip bandwidth allocator |
DE102009016742B4 (de) * | 2009-04-09 | 2011-03-10 | Technische Universität Braunschweig Carolo-Wilhelmina | Mehrprozessor-Computersystem |
TWI417741B (zh) * | 2009-09-14 | 2013-12-01 | Univ Nat Taiwan | 動態調整通道方向之方法及使用其之晶片網路架構 |
US8352774B2 (en) * | 2010-06-23 | 2013-01-08 | King Fahd University Of Petroleum And Minerals | Inter-clock domain data transfer FIFO circuit |
-
2013
- 2013-06-28 WO PCT/US2013/048748 patent/WO2014209391A1/en active Application Filing
- 2013-06-28 KR KR1020157033826A patent/KR101769757B1/ko not_active Application Discontinuation
- 2013-06-28 US US14/126,910 patent/US9652425B2/en active Active
- 2013-06-28 CN CN201380077035.9A patent/CN105247817B/zh active Active
- 2013-06-28 EP EP13888327.7A patent/EP3014818A4/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
A Switch Supporting Circuit and Packet Switching for ON-Chip Networks;Hsinchou Chi,Chiaming Wu,Sungtze Wu;《IEEE》;20061231;第1-2页 |
Also Published As
Publication number | Publication date |
---|---|
US20150220470A1 (en) | 2015-08-06 |
KR101769757B1 (ko) | 2017-08-21 |
CN105247817A (zh) | 2016-01-13 |
WO2014209391A1 (en) | 2014-12-31 |
KR20160004362A (ko) | 2016-01-12 |
EP3014818A4 (en) | 2017-03-15 |
US9652425B2 (en) | 2017-05-16 |
EP3014818A1 (en) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105247817B (zh) | 用于源同步电路交换片上网络(NoC)的方法、装置和系统 | |
CN107078971B (zh) | 组合保证吞吐量和尽力而为的片上网络 | |
US8194690B1 (en) | Packet processing in a parallel processing environment | |
CN107113254B (zh) | 自适应交换芯片上网络 | |
CN107113253B (zh) | 用于片上网络的空间划分的电路交换信道 | |
CN107113227B (zh) | 流水线化混合分组/电路交换片上网络 | |
CN107112042A (zh) | 数据信号的边沿感知同步 | |
CN107111584B (zh) | 到片上网络的接口的高带宽核 | |
Chen et al. | ArSMART: An improved SMART NoC design supporting arbitrary-turn transmission | |
US6993639B2 (en) | Processing instruction addressed by received remote instruction and generating remote instruction to respective output port for another cell | |
CN107113252B (zh) | 用于片上网络的并行方向解码电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |