CN111801916A - 与多种接口通信协议兼容的可编程noc - Google Patents
与多种接口通信协议兼容的可编程noc Download PDFInfo
- Publication number
- CN111801916A CN111801916A CN201980014805.2A CN201980014805A CN111801916A CN 111801916 A CN111801916 A CN 111801916A CN 201980014805 A CN201980014805 A CN 201980014805A CN 111801916 A CN111801916 A CN 111801916A
- Authority
- CN
- China
- Prior art keywords
- logic block
- data
- noc
- logic
- communication protocol
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- 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
-
- 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
-
- 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/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
- G06F15/7882—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
Abstract
本申请的实施例描述了一种SoC,其包括可以被重新配置为支持不同的接口通信协议的可编程NoC(105)。在一个实施例中,该NoC包括入口和出口逻辑块(115、140),其允许SoC中的硬件元件(例如,处理器(410)、存储器(415)、可编程逻辑块(405)等)使用NoC传输和接收数据。入口和出口逻辑块可以首先被配置为支持用于与硬件元件接口的特定通信协议。然而,过后,用户可能希望重新配置入口和出口逻辑块以支持不同的通信协议。作为回应,SoC可以重新配置NoC,以使入口和出口逻辑块支持硬件元件使用的新通信协议。通过这种方式,可编程NoC可以支持用于与SoC中其他硬件元件接口的多种通信协议。
Description
发明领域
本公开的示例一般涉及可编程片上网络(Network on a Chip,NoC),特别地,涉及重新配置NoC中的接口元件以支持不同的通信协议。
背景技术
片上系统(System on Chip,SoC)(例如,现场可编程门阵列FPGA、可编程逻辑设备PLD或专用集成电路ASIC)可以包含称为片上网络(NoC)的分组网络结构,其在SoC中的逻辑块之间路由数据包-例如,可编程逻辑块、处理器、存储器等。尽管NoC可以由可编程逻辑构成,但这需要SoC上的许多面积,这些面积本可以用于其他功能或电路(例如,更多的处理器、存储器或用户可用的可编程逻辑)。硬化全部或部分NoC(例如,使用非可编程电路)可以显着减少其在SoC中的占用空间,但NoC则失去了灵活性。也就是说,NoC中的硬化组件无法重新配置为支持不同的通信协议。
发明内容
本文描述了一种在集成电路中配置NoC的技术。一个示例在于,一种SoC,包括NoC、第一硬件逻辑块和第二硬件逻辑块。该NoC包括连接到所述第一硬件逻辑块的入口逻辑块,以及连接到所述第二硬件逻辑块的出口逻辑块,以及将所述入口逻辑块连接到所述出口逻辑块的多个互连的交换机。此外,所述入口逻辑块包括:第一编码器,其被配置为将与第一接口通信协议兼容的接收数据转换为第一数据包;第二编码器,其被配置为将与第二接口通信协议兼容的接收数据转换为第二数据包。此外,所述出口逻辑块包括:第一解码器,其被配置为将所述第一数据包转换为与所述第一接口通信协议兼容的数据;第二解码器,其被配置为将所述第二数据包转换为与所述第二接口通信协议兼容的数据。
在一些实施例中,所述入口逻辑块可以被配置为在所述NoC运行时启用所述第一编码器和第二编码器中的一个编码器并停用另一个编码器,并且所述出口逻辑块可以被配置为在所述NoC运行时启用所述第一解码器和第二解码器中的一个解码器并停用另一个解码器。
在一些实施例中,当所述第一编码器在所述入口逻辑块中处于启用状态时,所述第一解码器在所述出口逻辑块中可以处于启用状态,而所述第二解码器可以处于停用状态,以及当所述第二编码器在所述入口逻辑块中处于启用状态时,所述第二解码器在所述出口逻辑块中可以处于启用状态并且所述第一解码器可以处于停用状态。
在一些实施例中,所述入口逻辑块中的所述第一编码器和第二编码器以及所述出口逻辑块中的所述第一解码器和第二解码器可以包括硬化电路。
在一些实施例中,所述入口逻辑块可以被配置为调整:(i)用于将数据从所述第一硬件逻辑块传输到所述入口逻辑块的接口处的数据宽度,以及(ii)通过所述接口传输数据的频率。
在一些实施例中,所述第一数据包和第二数据包可以均与NoC数据包协议兼容,所述NoC数据包协议兼容用于通过所述多个交换机路由所述第一数据包和第二数据包。
在一些实施例中,所述第一接口通信协议可以是存储器映射的通信协议,并且所述第二接口通信协议可以是流协议。
在一些实施例中,所述第一硬件逻辑块和第二硬件逻辑块可以是可由用户重新配置的可编程逻辑块。所述第一编码器和第二编码器以及所述第一解码器和第二解码器可以独立于与所述可编程逻辑块相关联的可编程逻辑结构而被启用和停用。
在一些实施例中,所述SoC可以包括现场可编程门阵列FPGA。
在一些实施例中,所述第一硬件逻辑块和第二硬件逻辑块可以是不可编程的硬化逻辑块。
本文描述的一个示例是一种方法,其包括:配置NoC以使用第一接口通信协议在SoC中的第一逻辑块和第二逻辑块之间提供通信,其中所述NoC的入口逻辑块中的第一编码器处于启用状态,且所述NoC的出口逻辑块中的第一解码器处于启用状态。在确定重新配置所述NoC以使用第二接口通信协议在所述第一逻辑块和第二逻辑块之间提供通信时,在所述入口逻辑块中启用第二编码器,并停用所述第一编码器,并且在所述出口逻辑块中启用第二解码器,并停用所述第一解码器。
在一些实施例中,所述方法还可以包括:在所述入口逻辑块处从所述第一逻辑块接收的第一数据。所述第一数据可以与所述第一接口通信协议兼容。所述方法还可以包括使用所述第一编码器将所述第一数据转换为第一数据包;使用所述NoC中的多个交换机将所述第一数据包路由到所述出口逻辑块;使用所述第一解码器将所述第一数据包转换为与所述第一接口通信协议兼容的第二数据;以及将所述第二数据转发到所述第二逻辑块。
在一些实施例中,所述方法还可以包括,在重新配置所述NoC之后:在所述入口逻辑块处从所述第一逻辑块接收第三数据,其中所述第一数据可以与所述第二接口通信协议兼容;使用所述第二编码器将所述第三数据转换为第二数据包;使用所述多个交换机将所述第二数据包路由到所述出口逻辑块;使用所述第二解码器将所述第二数据包转换为与所述第二接口通信协议兼容的第四数据;以及将所述第四数据转发到所述第二逻辑块。
在一些实施例中,所述方法还可以包括:配置所述NoC以使用所述第二接口通信协议在所述SoC中的第三逻辑块和第四逻辑块之间提供通信;在使用所述第一接口通信协议在所述第一逻辑块和第二逻辑块之间传输数据的同时并行使用所述第二接口通信协议在所述第三逻辑块和第四逻辑块之间传输数据。本方法还包括重新配置所述NoC以使用所述第一接口通信协议在所述第三逻辑块和第四逻辑块之间提供通信;以及在使用所述第二接口通信协议在所述第一逻辑块和第二逻辑块之间传输数据的同时并行使用所述第一接口通信协议在所述第三逻辑块和第四逻辑块之间传输数据。所述第三逻辑块和第四逻辑块以及所述第一逻辑块和第二逻辑块可以具有通过所述NoC的各自的通信路径,所述各自的通信路径在所述NoC上共用至少一个交换机。
在一些实施例中,所述方法还可以包括:调整用于将数据从所述第一逻辑块传输到所述入口逻辑块的接口的数据宽度;和调整通过所述接口传输数据的频率。
在一些实施例中,所述第一和第二数据包可以都与用于通过所述多个交换机路由所述第一和第二数据包的NoC分组协议兼容。
在一些实施例中,第一接口通信协议可以是存储器映射的通信协议,并且第二接口通信协议可以是流协议。
在一些实施例中,所述方法还包括:重新编程在所述第一逻辑块和第二逻辑块中的可编程逻辑。所述第一逻辑块和第二逻辑块以及所述NoC包含在FPGA内。
本文描述的一个示例为一种集成电路,其包括NoC、第一硬件逻辑块和第二硬件逻辑块。该NoC包括连接到所述第一硬件逻辑块的入口逻辑块。此外,所述入口逻辑块包括第一编码器和第二编码器,其中,当NoC处于运行状态时,入口逻辑块被配置为启用第一和第二编码器中的一个编码器并停用另一个编码器。NoC也包括连接到所述第二硬件逻辑块的出口逻辑块,出口逻辑块包括第一解码器和第二解码器,其中,当NoC处于运行状态时,出口逻辑块被配置为启用第一和第二解码器中的一个解码器并停用另一个解码器。
在一些实施例中,第一编码器可以被配置为将与第一接口通信协议兼容的接收数据转换为第一数据包,并且第二编码器可以被配置为将与第二接口通信协议兼容的接收数据转换为第二数据包。第一解码器可以被配置为将所述第一数据包转换为与所述第一接口通信协议兼容的数据,并且第二解码器可以被配置为将所述第二数据包转换为与所述第二接口通信协议兼容的数据。
附图说明
为了可以详细理解上述特征的方式,可以通过参考示例实施方式来对上文发明内容的进行更具体的描述,其中一些示例在附图中示出。但是,应注意,附图仅示出了典型的示例实施方式,因此不应视为限制其范围。
图1是根据示例的包含可编程NoC的SoC的框图。
图2是根据示例的用于重新配置可编程NoC的流程图。
图3是根据示例的用于重新配置可编程NoC的流程图。
图4是根据示例的包含可编程NoC的SoC的框图。
图5示出了根据示例的包含可编程NoC的SoC的示例性布局。
图6是根据示例的用于操作可编程NoC的流程图。
为了便于理解,在可能的地方会使用相同的附图标记来表示附图中共有的相同元件。可以预期的是,一个示例的元件可以有益地并入其他示例中。
具体实施方式
在下文中,参考附图描述各种特征。应当注意的是,附图可以按比例绘制或可以不按比例绘制,并且在整个附图中,相似结构或功能的元件由相似的附图标记表示。应当注意的是,附图仅旨在促进对特征的描述。它们并不旨在作为说明书的详尽描述或对权利要求范围的限制。另外,示出的示例不必具有所示的所有方面或优点。结合特定示例描述的方面或优点不必限于该示例,并且即使未如此示出或未明确描述,也可以在任何其他示例中实践。
本文的实施例描述了一种包括可编程NoC的SoC,其可以在启动时或在运行期间被重新配置以支持不同的通信协议。在一个实施例中,NoC包括接口元件(在本文中称为入口和出口逻辑块),其允许SoC中的硬件元件(例如,处理器、存储器、可编程逻辑块等)使用NoC发送和接收数据。首次启动SoC的电源时,可以将入口和出口逻辑块配置为支持特定的通信协议,以与SoC中的硬件元素接口。然而,之后用户可能希望重新配置入口和出口逻辑块以支持不同的通信协议。例如,当最初启动SoC时,可编程逻辑块可以使用内存映射的通信协议来发送和接收数据,但是后来被重新编程为使用流通信协议来发送和接收数据。作为响应,SoC可以重新配置NoC,以使入口和出口逻辑块支持可编程逻辑块使用的流通信协议。通过这种方式,可以重新配置可编程NoC(通过重新启动SoC或在运行中)以支持多种通信协议。
在一个实施例中,并不使用可编程逻辑来形成可编程NoC,而是硬化(即,由非可编程电路形成)形成NoC的一些或全部组件,。例如,入口和出口逻辑块可以由可以支持多种通信协议的非可编程电路形成。在一个实施例中,入口逻辑块可以包括用于支持多种通信协议的多个编码器。例如,每个入口逻辑块可以包括用于支持存储器映射的通信协议的第一编码器和用于支持流通信协议的第二编码器。类似地,每个出口逻辑块可以包括用于支持存储器映射的通信协议的第一解码器和用于支持流通信协议的第二解码器。NoC还可以包括一个多协议数据包传输网络(也可以由硬化电路形成),该网络使用NoC数据包协议(NPP)在入口和出口逻辑块之间传输数据包。不管入口和出口逻辑块使用第一还是第二通信协议,传输网络都可以通过NoC将数据包路由到SoC中的适当目标。因此,本文的实施例提供了使用通过可编程逻辑实现的NoC的灵活性,但是由于使用硬化电路形成NoC的一部分或全部而节省了面积。
图1是根据示例的包含可编程NoC 105的SoC 100的框图。除了NoC 105之外,SoC100还包括逻辑块110A和110B,它们使用NoC 105来发送和接收数据。换句话说,逻辑块110依靠NoC 105进行通信。逻辑块110可以是SoC 100中的任何硬件元件,例如可编程逻辑块、处理器、数字信号处理块、存储器等。
为了实现逻辑块110之间的通信,可编程NoC 105包括耦接到逻辑块110的入口逻辑块115(也称为NoC主控单元(NoC Master Unit,NMU))和出口逻辑块140(也称为NoC从属单元或NoC服务单元(NoC Servant Unit,NSU))。入口和出口逻辑块115、140充当NoC 105和逻辑块110之间的接口(在本文中通常称为“接口元件”)。入口逻辑块115从逻辑块110接收数据,将数据打包,然后将数据包转发到多协议传输网络130。多协议传输网络130使用交换机135路由从入口逻辑块115接收的数据包到一个或多个目标出口逻辑块140。出口逻辑块140对接收到的数据包进行解包,并将解码后的数据转发到逻辑块110。
每个入口逻辑块115包括用于第一通信协议120的编码器和用于第二通信协议125的编码器。在一个实施例中,第一和第二通信协议用于将数据从逻辑块110传输到入口逻辑块115。例如,第一协议可以是存储器映射协议,而第二协议是流协议。在一个实施例中,第一协议是高级可扩展接口4(Advanced eXtensible Interface 4,AXI4),而第二协议是AXI4流。然而,本文中的实施例不限于任何特定协议,并且可以用于使用本文中未具体提及的协议来促进逻辑块110与NoC 105之间的通信。此外,尽管图1示出了入口逻辑块115包括两个编码器,但是NoC 105可以支持三个、四个、五个等不同的通信协议,在这种情况下,入口逻辑块115可以为每个通信协议包括相应的编码器。
在一个实施例中,编码器120和125包括不同的电路。例如,AXI4和AXI4流通信协议以不同的方式格式化数据,并使用不同的技术来传输数据。这样,编码器120和125包括用于对从各个协议接收的数据进行编码和打包的电路。在一个实施例中,编码器120和125是具有不同功能的分开的编码器。然而,在一些实施例中,编码器120和125可以具有共享的功能,并且因此可以共享相同的电路。例如,如果不同协议具有在打包数据时相同的一个或多个操作,则编码器120和125可以共享用于执行那些通用操作的电路,而不是每个编码器120和125都具有重复的电路。
在一个实施例中,每个入口逻辑块115仅启用编码器120和125中的一个。例如,当启动SoC 100时,基于控制信号,响应于逻辑块110用于将数据传输到NoC 105的通信协议类型,入口逻辑块115启用编码器中的一个编码器并停用另一个编码器。也就是说,如果逻辑块110A使用存储器映射协议,则入口逻辑块115可以启用编码器120(假设它被配置为对使用存储器映射协议接收到的数据进行编码和打包)并停用编码器125,后者可以对流数据进行编码和打包。
尽管NoC 105中的所有入口逻辑块115可以启用相同类型的编码器(例如,用于第一协议120的编码器),但是在其他示例中,不同的入口逻辑块115启用不同的编码器。例如,如果逻辑块110A将数据发送到逻辑块110B,则两个逻辑块110可以使用相同的通信协议,例如,存储器映射的通信协议。但是,SoC中的两个不同逻辑块可以使用流式通信协议。在那种情况下,耦接到那些逻辑块的入口逻辑块具有与图1所示的耦接到逻辑块110的入口逻辑块115不同的启用编码器。因此,NoC 105可以促进逻辑块传输使用不同的通信协议并行接收的数据。也就是说,一个逻辑块110可以使用存储器映射协议将数据发送到NoC105,同时另一逻辑块110使用流协议将数据发送到NoC 105。
多协议传输网络130允许NoC 105使用不同的通信协议路由从逻辑块接收到的数据。在一个实施例中,当对接收到的数据进行打包时,入口逻辑块115将数据转换成由NoC分组协议(NoC packet protocol,NPP)定义的数据包。因此,无论使用哪种通信协议将数据发送到入口逻辑块115,入口逻辑块115都会将数据转换为NPP,以便可以使用传输网络130中的交换机135传输数据。换句话说,入口交换机中的编码器120和125将接收到的数据转换为相同的网络协议(例如NPP),以便无论逻辑块110使用哪种特定格式将数据传输到入口逻辑块115,数据都可以穿越NoC 105。
一旦接收到,出口逻辑块140就对数据包进行解包或解码,并使用与下游逻辑块110兼容的通信协议来转发解码后的数据。像入口逻辑块115一样,每个出口逻辑块140都包括用于第一协议的解码器和用于第二协议的另一解码器。如果第一和第二通信协议共享一个或多个解码操作,则解码器145和150可以包括分开的电路或者可以共享一些电路。此外,尽管示出了两个解码器,但是根据可编程NoC 105支持的通信协议的数量,每个出口逻辑块140可以包括三个、四个或更多个不同的解码器。
在一个实施例中,出口逻辑块140根据耦接到出口逻辑块140的下游逻辑块110所使用的通信协议来启用一个解码器并停用另一个解码器。例如,图1中的入口和出口逻辑块115和140可以具有与逻辑块110A和110B所使用的通信协议相对应的启用编码器/解码器。也就是说,假设逻辑块110A使用NoC 105将数据发送到逻辑块110B,则入口逻辑块115和出口逻辑块140启用与相同通信协议相对应的编码器和解码器。
SoC 100包括NoC配置网络(NoC configuration network,NCN)155,该网络包括用于配置可编程NoC 105的交换机165和配置寄存器160。在一个实施例中,NoC 105和NCN 155都是遍布整个SoC 100的复杂分组协议网络。在一个实施例中,NCN 155是与对NoC 105进行编程的与NoC 105分离的交换网络。也就是说,NCN 155可以改变NoC 105提供SoC100中的端点(例如逻辑块110)之间的通信的方式。为此,NCN 155包括交换机165,每个交换机165包括可以耦接到配置寄存器160的多个端口,配置寄存器160存储用于配置入口和出口逻辑块115和140以及NoC 105中的其他组件(此处不再讨论)的配置信息。也就是说,存储在配置寄存器160中的数据向入口和出口逻辑块115和140指示编码器120和125以及解码器145和150中的哪些启用以及哪些停用,这可以在启动期间进行配置并在SoC 100运行期间改变。而且,可以使用NCN 155对入口和出口逻辑块115和140进行编程,这意味着可以独立于对SoC中的任何可编程逻辑(programmable logic,PL)结构进行编程来对这些块115和140进行编程(假设SoC包括用于与PL块进行通信的结构)。
图2是根据示例的用于重新配置可编程NoC的方法200的流程图。在框205,NCN配置可编程NoC以使用第一通信协议在SoC中的第一逻辑块和第二逻辑块之间提供通信。例如,图1所示的NCN 155可以配置NoC 105以在逻辑块110使用第一通信协议(例如,存储器映射或流通信协议)将数据发送到逻辑块110时以及从NoC 105接收数据时启用逻辑块110之间的通信。
稍后的某个时间,用户(或逻辑块本身)可能希望切换到其他通信协议,以与NoC进行数据传输。例如,逻辑块可以是被重新配置为使用不同的通信协议的可编程逻辑块。在另一个示例中,逻辑块可以是可以在两个不同的通信协议之间切换的存储器元件或处理器子系统。例如,第一和第二逻辑块现在不希望使用AXI4将数据传输到NoC,而是希望使用AXI4流与NoC进行通信。
在框210,NCN重新配置可编程NoC以使用第二通信协议在SoC中的第一逻辑块和第二逻辑块之间提供通信。例如,NCN可以使用交换机来更新与可编程NoC相关联的配置寄存器,该可编程NoC允许NoC使用第二通信协议来接收和发送数据。以这种方式,可编程NoC可以包括硬化接口元件,并且仍然具有在不同通信协议之间进行切换的灵活性。
在一个实施例中,NCN在重启SoC之后重新配置可编程NoC。也就是说,在重启时,NCN可以更新对NoC进行编程以支持第二通信协议的配置寄存器。然而,在另一个实施例中,NCN可以在不重启SoC的情况下重新配置可编程NoC。在此示例中,尽管重新配置发生时,NoC的某些部分可能不可用,但SoC仍可保持运行状态。例如,NoC包含入口和出口逻辑块的具有在重新配置过程中被启用/停用的编码器和解码器的部分可能无法用于传输网络流量,直到该过程完成为止。通过这种方式,NCN可以在重启SoC之后或在运行中(即SoC保持运行状态时)重新配置NoC。
图3是根据示例的用于重新配置可编程NoC的方法300的流程图。在一个实施例中,方法300更详细地描述了方法200的框210,其中将可编程NoC重新配置为使用不同的通信协议来发送和接收数据。
方法300开始于框305,在框305,NCN接收重新配置可编程NoC的指示。该指示可以由想要更改逻辑块与NoC的通信方式的用户发送,也可以由逻辑块本身在确定切换到用于与NoC进行通信的不同通信协议之后发送。
在框310,NCN在NoC中标识与指示相对应的入口和出口逻辑块。也就是说,该指示可能仅影响入口和出口逻辑块的一部分,而不影响NoC中的所有这些块。例如,SoC中只有两个硬件逻辑块可以改变它们与NoC的通信方式,而SoC中的其余硬件逻辑块仍使用相同的通信协议(一个或多个通信协议)进行通信。这样,NCN的改变仅更新连接到正在改变其通信协议的逻辑块的入口和出口逻辑块,而其余的入口和出口逻辑块在方法300流程中未更改。例如,SoC中的两个可编程逻辑块可以切换到第二通信协议,而耦接到NoC的处理器子系统、存储器和其他可编程逻辑块则使用相同的(即先前的)通信协议进行通信。这样,NCN重新配置连接到两个可编程逻辑块的入口和出口逻辑块,但保留其他入口和出口逻辑块不变。
在另一个实施例中,NCN可以重新配置入口和出口逻辑块的组。例如,第一组最初可以使用第一接口通信协议,而第二组可以使用第二接口通信协议。尽管使用不同的接口通信协议,第一组和第二组仍可以通过NoC并行传输数据。此外,第一组和第二组可以具有各自的通过NoC的数据路径,它们可以共享一个或多个交换机。也就是说,NoC可以使用相同的交换机(或不同的交换机)在两组中的入口/出口逻辑块之间路由数据。然后,NCN可以将第一组入口和出口逻辑块重新配置为使用第二通信协议,同时将第二组重新配置为使用第一通信协议。重新配置后,第一组和第二组可以再次在NoC中同时传输数据,并使用可能具有共用交换机的通信路径。
在框315,NCN在所标识的入口逻辑块中停用第一编码器并启用第二编码器。也就是说,NCN将入口逻辑块所使用的编码器切换为与新通信协议兼容的编码器。为此,在一个实施例中,NCN更新配置寄存器,其对应于指示逻辑块启用合适的编码器的入口逻辑块。
在框320,NCN在所标识的出口逻辑块中停用第一解码器并启用第二解码器。换句话说,NCN启用与新通信协议兼容的解码器。在一个实施例中,NCN更新配置寄存器,其对应于指示逻辑块启用合适的解码器的出口逻辑块。
在框325,NCN为所标识的入口和出口逻辑块与连接到该入口和出口逻辑块的相应逻辑块之间的接口设置数据宽度。也就是说,除了改变NoC用于与逻辑块进行通信的通信协议之外,NCN还可以改变NoC与逻辑块之间传输的数据的宽度。例如,用户可以在32-512位中选择接口元件(即,入口和出口逻辑块)的数据宽度。反之,NCN指示入口和出口逻辑块使用设置的数据宽度来接收或发送数据。
此外,在一个实施例中,当从逻辑块接收数据或向逻辑块发送数据时,NCN可以调整或配置入口和出口逻辑块使用的频率。也就是说,NCN可以提高或降低入口和出口逻辑块与逻辑块之间的数据传输速度。以这种方式,与非可编程的NoC不同,可编程的NoC可以使用NCN以及入口和出口逻辑块来更改接口通信协议、数据宽度和频率。尽管入口和出口逻辑块可以由非可编程电路形成(即,被硬化)以节省面积,但是在其他实施例中,入口和出口逻辑块可以包括一些可编程逻辑。也就是说,本文的实施例可以在入口和出口逻辑块(或NoC中的其他组件)中包括一些可编程逻辑,用于改变由入口和出口逻辑块执行的一个或多个操作。
图4是根据示例的包含可编程NoC 105的SoC 100的框图。如图所示,NoC 105互连PL块405A、PL块405B、处理器410和存储器415。也就是说,NoC 105可以在SoC 100中使用,以允许SoC 100中的不同的硬化和可编程电路元件进行通信。例如,PL块405A可以使用一个入口逻辑块115与PL块405B进行通信,并且使用另一个入口逻辑块115与处理器410进行通信。然而,在另一个实施例中,PL块405A可以使用相同的入口逻辑块115与PL块405B和处理器410两者通信(假定端点使用相同的通信协议)。PL块405A可以将数据发送到PL块405B和处理器410的各自的出口逻辑块140,该出口逻辑块可以根据地址(如果使用存储器映射协议)或目标ID(如果使用流协议)确定数据是否目的为它们。
PL块405A可以包括用于接收由PL块405B和处理器410发送的数据的出口逻辑块140。在一个实施例中,硬件逻辑块能够与同样连接到NoC 105的所有其他硬件逻辑块进行通信。但是在其他实施例中,硬件逻辑块可以仅与连接到NoC 105的其他硬件逻辑块的子部分进行通信。例如,存储器415能够与PL块405A但不能与PL块405B进行通信。
如上所述,入口和出口逻辑块可以全部使用相同的通信协议来与PL块405、处理器410和存储器415进行通信,或者可以使用不同的通信协议。例如,PL块405A可以使用存储器映射协议来与PL块405B进行通信,而处理器410使用流协议来与存储器415进行通信。因为传输网络130可以支持多种协议(因为入口逻辑块将接收到的数据转换成相同的NPP),NoC105支持并行使用不同的接口通信协议。换句话说,入口逻辑块115将使用不同接口通信协议接收的数据转换为与相同协议(例如,NPP)兼容的数据包,然后由传输网络130中的交换机将其路由到出口逻辑块140。反之,出口逻辑块140将来自NPP的数据包转换成与所连接的逻辑块所使用的接口通信协议兼容的数据。
在一个实施例中,SoC 100是FPGA,其根据用户设计来配置PL块405。也就是说,在该示例中,FPGA包括可编程逻辑块和硬化逻辑块。然而,在其他实施例中,SoC 100可以是仅包括硬化逻辑块的ASIC。也就是说,SoC 100可能不包括PL块405。即使逻辑块是不可编程的,NoC 105仍然可以如上所述是可编程的,因此,硬化逻辑块(例如,处理器410和存储器415)可以在不同的通信协议之间切换、改变接口处的数据宽度或调整频率。
图5示出了根据示例的包含可编程NoC 105的SoC 100的示例性布局。与图4相似,图5示出了PL块405、处理器410、存储器415以及入口和出口逻辑块115和140。此外,图5示出了NoC中的多协议传输网络所用的连接和各种交换机135(标记为带有“X”的框),以在入口和出口逻辑块115和140之间路由数据包。
PL块405、处理器410和存储器415在SoC 100的物理布局中的位置仅仅是布置这些硬件元件的一个示例。此外,SoC 100可以包括比图示更多的硬件元件。例如,SoC 100可以包括设置在SoC 100上不同位置的其他PL块、处理器和存储器。此外,SoC 100可以包括其他硬件元件,例如I/O模块和存储器控制器,它们可以使用或可以不使用各自的入口和出口逻辑块115和140而耦接到NoC。例如,可以将I/O模块设置在SoC 100的外围。
在一个实施例中,NCN(图5中未示出)对与NoC耦接的硬件逻辑块相对应的寄存器进行编程。也就是说,除了在NoC中配置组件(例如,入口和出口逻辑块115和140)外,NCN还可使用相应的寄存器配置连接到NoC的硬件逻辑块,以使这些逻辑块能够与NoC进行通信。
图6是根据示例的用于操作可编程NoC的方法600的流程图。在框605,入口逻辑块使用第一或第二协议中的一个协议来接收数据。也就是说,NoC支持多种不同的通信协议,这些协议可用于与SoC中的其他硬件逻辑块接口。例如,逻辑块可以使用在入口和出口逻辑块处的AXI4或AXI4流,向NoC发送数据并从NoC接收数据。换句话说,NoC支持用于将数据传输到NoC并从NoC接收数据的多个接口通信协议。
在框610,入口逻辑块将接收到的数据转换成用于NPP的数据包。在一个实施例中,入口逻辑块中的启用的编码器将接收到的数据打包成与NPP兼容的数据包。这样,接收到的数据将被修改以形成数据包,然后再通过NoC进行路由。
除了具有启用的编码器之外,入口逻辑块还可以包含一个停用的编码器(或多个停用的编码器),其对应于NoC支持但未被当前连接的逻辑块用于将数据传输到入口逻辑块的另一个接口通信协议(或协议)。在一个实施例中,当NoC运行时,入口逻辑块中仅一个编码器处于启用状态。
在框615,入口逻辑块标识数据包中指定地址或多个地址的目标ID。数据包的目标ID控制着数据包如何通过NoC中的传输网络(例如,互连的交换机)进行路由。换句话说,根据目标ID选择在NoC中用于路由数据包的交换机。
在框620,多协议传输网络将数据包路由到与目标ID相对应的出口逻辑块。例如,使用图5所示的互连和交换机135,NoC可以将从接收到的入口逻辑块115的数据包路由到所需的出口逻辑块140。
在框625,出口逻辑块将来自NPP的数据包转换为与第一或第二协议中的一个协议兼容的数据。在一个实施例中,出口逻辑块使用解码器对接收到的分组进行解包并将数据转换为与第一或第二协议兼容的格式。在一个实施例中,出口逻辑块将数据转换成与入口逻辑块在框605使用的协议相同协议,以从连接的逻辑块接收数据。
在框630处,出口逻辑块将转换后的数据转发到耦接至出口逻辑块的逻辑块。以这种方式,入口和出口逻辑块可以促进连接到NoC的逻辑块之间的通信。无论入口和出口逻辑块被配置为支持第一协议还是第二协议,都可以使用方法600。也就是说,NCN可以改变入口和出口逻辑块来发送(或改变数据宽度或频率),但是方法600将基本上保持不变。
尽管前述内容针对特定示例,但是在不脱离其基本范围的情况下可以设计其他示例,并且其范围由所附权利要求确定。
Claims (15)
1.一种片上系统SoC,其特征在于,所述SoC包括:
第一硬件逻辑块;
第二硬件逻辑块;以及
片上网络NoC,所述NoC包括:
连接到所述第一硬件逻辑块的入口逻辑块,
连接到所述第二硬件逻辑块的出口逻辑块,以及
将所述入口逻辑块连接到所述出口逻辑块的多个互连的交换机,
其中,所述入口逻辑块包括:第一编码器,其被配置为将与第一接口通信协议兼容的接收数据转换为第一数据包;第二编码器,其被配置为将与第二接口通信协议兼容的接收数据转换为第二数据包;
其中,所述出口逻辑块包括:第一解码器,其被配置为将所述第一数据包转换为与所述第一接口通信协议兼容的数据;第二解码器,其被配置为将所述第二数据包转换为与所述第二接口通信协议兼容的数据。
2.根据权利要求1所述的SoC,其特征在于,所述入口逻辑块被配置为在所述NoC运行时启用所述第一编码器和第二编码器中的一个编码器并停用另一个编码器,并且所述出口逻辑块被配置为在所述NoC运行时启用所述第一解码器和第二解码器中的一个解码器并停用另一个解码器。
3.根据权利要求2所述的SoC,其特征在于,当所述第一编码器在所述入口逻辑块中处于启用状态时,所述第一解码器在所述出口逻辑块中处于启用状态并且所述第二解码器处于停用状态,以及当所述第二编码器在所述入口逻辑块中处于启用状态时,所述第二解码器在所述出口逻辑块中处于启用状态并且所述第一解码器处于停用状态。
4.根据权利要求1-3中任一项所述的SoC,其特征在于,所述入口逻辑块中的所述第一编码器和第二编码器以及所述出口逻辑块中的所述第一解码器和第二解码器包括硬化电路。
5.根据权利要求1-4中任一项所述的SoC,其特征在于,所述入口逻辑块被配置为调整:(i)用于将数据从所述第一硬件逻辑块传输到所述入口逻辑块的接口处的数据宽度,以及(ii)通过所述接口传输数据的频率。
6.根据权利要求1-5中任一项所述的SoC,其特征在于,所述第一数据包和第二数据包均与NoC数据包协议兼容,所述NoC数据包协议用于通过所述多个交换机路由所述第一数据包和第二数据包。
7.根据权利要求1-6中任一项所述的SoC,其特征在于,所述第一接口通信协议是存储器映射通信协议,并且所述第二接口通信协议是流协议。
8.根据权利要求1-7中任一项所述的SoC,其特征在于:
所述第一硬件逻辑块和第二硬件逻辑块是可由用户重新配置的可编程逻辑块,其中所述第一编码器和第二编码器以及所述第一解码器和第二解码器能够独立于与所述可编程逻辑块相关联的可编程逻辑结构而被启用和停用;或者
所述第一硬件逻辑块和第二硬件逻辑块是不可编程的硬化逻辑块。
9.根据权利要求8所述的SoC,其特征在于,所述SoC包括现场可编程门阵列FPGA。
10.一种方法,其特征在于,所述方法包括:
配置NoC以使用第一接口通信协议在SoC中的第一逻辑块和第二逻辑块之间提供通信,其中所述NoC的入口逻辑块中的第一编码器处于启用状态,且所述NoC的出口逻辑块中的第一解码器处于启用状态;以及
在确定重新配置所述NoC以使用第二接口通信协议在所述第一逻辑块和第二逻辑块之间提供通信时:
在所述入口逻辑块中启用第二编码器,并停用所述第一编码器,并且
在所述出口逻辑块中启用第二解码器,并停用所述第一解码器。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
在所述入口逻辑块处从所述第一逻辑块接收第一数据,所述第一数据与所述第一接口通信协议兼容;
使用所述第一编码器将所述第一数据转换为第一数据包;
使用所述NoC中的多个交换机将所述第一数据包路由到所述出口逻辑块;
使用所述第一解码器将所述第一数据包转换为与所述第一接口通信协议兼容的第二数据;以及
将所述第二数据转发到所述第二逻辑块。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括,在重新配置所述NoC之后:
在所述入口逻辑块处从所述第一逻辑块接收第三数据,其中所述第三数据与所述第二接口通信协议兼容;
使用所述第二编码器将所述第三数据转换为第二数据包;
使用所述多个交换机将所述第二数据包路由到所述出口逻辑块;
使用所述第二解码器将所述第二数据包转换为与所述第二接口通信协议兼容的第四数据;以及
将所述第四数据转发到所述第二逻辑块。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述方法还包括:
配置所述NoC以使用所述第二接口通信协议在所述SoC中的第三逻辑块和第四逻辑块之间提供通信;
在使用所述第一接口通信协议在所述第一逻辑块和第二逻辑块之间传输数据的同时并行使用所述第二接口通信协议在所述第三逻辑块和第四逻辑块之间传输数据;
重新配置所述NoC以使用所述第一接口通信协议在所述第三逻辑块和第四逻辑块之间提供通信;以及
在使用所述第二接口通信协议在所述第一逻辑块和第二逻辑块之间传输数据的同时并行使用所述第一接口通信协议在所述第三逻辑块和第四逻辑块之间传输数据,其中所述第三逻辑块和第四逻辑块以及所述第一逻辑块和第二逻辑块具有通过所述NoC的各自的通信路径,所述各自的通信路径在所述NoC上共用至少一个交换机。
14.根据权利要求10至13中任一项所述的方法,其特征在于,所述方法还包括:
调整用于将数据从所述第一逻辑块传输到所述入口逻辑块的接口的数据宽度;以及
调整通过所述接口传输数据的频率。
15.根据权利要求10至14中任一项所述的方法,其特征在于,所述方法还包括:
重新编程所述第一逻辑块和第二逻辑块中的可编程逻辑,其中所述第一逻辑块和第二逻辑块以及所述NoC包含在FPGA内。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/904,211 | 2018-02-23 | ||
US15/904,211 US10503690B2 (en) | 2018-02-23 | 2018-02-23 | Programmable NOC compatible with multiple interface communication protocol |
PCT/US2019/016608 WO2019164665A1 (en) | 2018-02-23 | 2019-02-05 | Programmable noc compatible with multiple interface communication protocols |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111801916A true CN111801916A (zh) | 2020-10-20 |
CN111801916B CN111801916B (zh) | 2022-11-01 |
Family
ID=65724498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980014805.2A Active CN111801916B (zh) | 2018-02-23 | 2019-02-05 | 与多种接口通信协议兼容的可编程noc |
Country Status (6)
Country | Link |
---|---|
US (1) | US10503690B2 (zh) |
EP (1) | EP3756318B1 (zh) |
JP (1) | JP7308215B2 (zh) |
KR (1) | KR20200123814A (zh) |
CN (1) | CN111801916B (zh) |
WO (1) | WO2019164665A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721979A (zh) * | 2022-03-31 | 2022-07-08 | 中科芯集成电路有限公司 | 一种面向互连裸芯与axi主设备的转换接口及通信方法 |
CN114979309A (zh) * | 2022-05-18 | 2022-08-30 | 中国电子科技集团公司第二十八研究所 | 一种支持网络化目标数据随遇接入与处理的方法 |
CN117135231A (zh) * | 2023-10-26 | 2023-11-28 | 上海特高信息技术有限公司 | 一种基于fpga低延时金融大数据流的解压方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10790827B2 (en) * | 2018-12-27 | 2020-09-29 | Intel Corporation | Network-on-chip (NOC) with flexible data width |
US10891132B2 (en) | 2019-05-23 | 2021-01-12 | Xilinx, Inc. | Flow convergence during hardware-software design for heterogeneous and programmable devices |
US11301295B1 (en) | 2019-05-23 | 2022-04-12 | Xilinx, Inc. | Implementing an application specified as a data flow graph in an array of data processing engines |
US11188312B2 (en) | 2019-05-23 | 2021-11-30 | Xilinx, Inc. | Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices |
US10891414B2 (en) | 2019-05-23 | 2021-01-12 | Xilinx, Inc. | Hardware-software design flow for heterogeneous and programmable devices |
US11264361B2 (en) * | 2019-06-05 | 2022-03-01 | Invensas Corporation | Network on layer enabled architectures |
CN110704368B (zh) * | 2019-09-25 | 2020-11-06 | 支付宝(杭州)信息技术有限公司 | 基于fpga的安全智能合约处理器的高效运算方法及装置 |
CN110442548B (zh) * | 2019-10-09 | 2020-01-24 | 广东高云半导体科技股份有限公司 | 片上系统及其接口数据处理方法和装置 |
US10977018B1 (en) | 2019-12-05 | 2021-04-13 | Xilinx, Inc. | Development environment for heterogeneous devices |
CN111277612B (zh) * | 2020-05-08 | 2020-08-07 | 常州楠菲微电子有限公司 | 一种网络报文处理策略生成方法、系统及介质 |
US11336287B1 (en) | 2021-03-09 | 2022-05-17 | Xilinx, Inc. | Data processing engine array architecture with memory tiles |
US11520717B1 (en) | 2021-03-09 | 2022-12-06 | Xilinx, Inc. | Memory tiles in data processing engine array |
US11516075B1 (en) * | 2021-05-05 | 2022-11-29 | Simmonds Precision Products, Inc. | Modular reconfigurable edge computing node |
US11848670B2 (en) | 2022-04-15 | 2023-12-19 | Xilinx, Inc. | Multiple partitions in a data processing array |
US20240045822A1 (en) * | 2022-08-02 | 2024-02-08 | Xilinx, Inc. | Systems and Methods to Transport Memory Mapped Traffic amongst integrated circuit devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030208566A1 (en) * | 2002-05-03 | 2003-11-06 | Sonics, Inc. | Composing on-chip interconnects with configurable interfaces |
US20070067487A1 (en) * | 2001-10-04 | 2007-03-22 | Newnew Networks Innovations Limited | Communications node |
US20150103822A1 (en) * | 2013-10-15 | 2015-04-16 | Netspeed Systems | Noc interface protocol adaptive to varied host interface protocols |
US20150188847A1 (en) * | 2013-12-30 | 2015-07-02 | Netspeed Systems | STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS |
CN107430572A (zh) * | 2015-03-26 | 2017-12-01 | 英特尔公司 | 用于通信中封装信息的方法、装置和系统 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07245636A (ja) * | 1994-03-02 | 1995-09-19 | Nissin Electric Co Ltd | プロトコルコンバータ |
US6418147B1 (en) * | 1998-01-21 | 2002-07-09 | Globalstar Lp | Multiple vocoder mobile satellite telephone system |
US6810037B1 (en) | 1999-03-17 | 2004-10-26 | Broadcom Corporation | Apparatus and method for sorted table binary search acceleration |
US7961712B2 (en) * | 2000-05-08 | 2011-06-14 | Broadcom Corporation | System and method for supporting multiple voice channels |
US8692695B2 (en) * | 2000-10-03 | 2014-04-08 | Realtime Data, Llc | Methods for encoding and decoding data |
US7035255B2 (en) * | 2000-11-14 | 2006-04-25 | Broadcom Corporation | Linked network switch configuration |
JP2004524617A (ja) | 2001-02-14 | 2004-08-12 | クリアスピード・テクノロジー・リミテッド | クロック分配システム |
US6781407B2 (en) | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US7420392B2 (en) | 2001-09-28 | 2008-09-02 | Xilinx, Inc. | Programmable gate array and embedded circuitry initialization and processing |
GB0123862D0 (en) * | 2001-10-04 | 2001-11-28 | Lewis Roger W S | Low latency telecommunications network |
US20040052528A1 (en) * | 2002-05-13 | 2004-03-18 | Ross Halgren | Jitter control in optical network |
DE60313179T2 (de) * | 2002-08-13 | 2007-12-27 | XYTRATEX TECHNOLOGY LTD., Havant | Netzwerküberwachungsgerät und -verfahren |
US7149829B2 (en) | 2003-04-18 | 2006-12-12 | Sonics, Inc. | Various methods and apparatuses for arbitration among blocks of functionality |
US8020163B2 (en) | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
US7653820B1 (en) | 2003-10-31 | 2010-01-26 | Xilinx, Inc. | System and method for securing using decryption keys during FPGA configuration using a microcontroller |
US8407433B2 (en) | 2007-06-25 | 2013-03-26 | Sonics, Inc. | Interconnect implementing internal controls |
US7185309B1 (en) | 2004-01-30 | 2007-02-27 | Xilinx, Inc. | Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip |
US7689726B1 (en) | 2004-10-01 | 2010-03-30 | Xilinx, Inc. | Bootable integrated circuit device for readback encoding of configuration data |
US7328335B1 (en) | 2004-10-01 | 2008-02-05 | Xilinx, Inc. | Bootable programmable logic device for internal decoding of encoded configuration data |
US7281093B1 (en) | 2004-12-21 | 2007-10-09 | Xilinx, Inc. | Memory apparatus for a message processing system and method of providing same |
US7199608B1 (en) | 2005-02-17 | 2007-04-03 | Xilinx, Inc. | Programmable logic device and method of configuration |
US7380035B1 (en) | 2005-03-24 | 2008-05-27 | Xilinx, Inc. | Soft injection rate control for buses or network-on-chip with TDMA capability |
US7788625B1 (en) | 2005-04-14 | 2010-08-31 | Xilinx, Inc. | Method and apparatus for precharacterizing systems for use in system level design of integrated circuits |
US7301822B1 (en) | 2005-05-18 | 2007-11-27 | Xilinx, Inc. | Multi-boot configuration of programmable devices |
KR100675850B1 (ko) * | 2005-10-12 | 2007-02-02 | 삼성전자주식회사 | AXI 프로토콜을 적용한 NoC 시스템 |
US7454658B1 (en) | 2006-02-10 | 2008-11-18 | Xilinx, Inc. | In-system signal analysis using a programmable logic device |
US7650248B1 (en) | 2006-02-10 | 2010-01-19 | Xilinx, Inc. | Integrated circuit for in-system signal monitoring |
US7831801B1 (en) | 2006-08-30 | 2010-11-09 | Xilinx, Inc. | Direct memory access-based multi-processor array |
US7521961B1 (en) | 2007-01-23 | 2009-04-21 | Xilinx, Inc. | Method and system for partially reconfigurable switch |
US7500060B1 (en) | 2007-03-16 | 2009-03-03 | Xilinx, Inc. | Hardware stack structure using programmable logic |
US7576561B1 (en) | 2007-11-13 | 2009-08-18 | Xilinx, Inc. | Device and method of configuring a device having programmable logic |
US8006021B1 (en) | 2008-03-27 | 2011-08-23 | Xilinx, Inc. | Processor local bus bridge for an embedded processor block core in an integrated circuit |
US8214694B1 (en) | 2009-03-12 | 2012-07-03 | Xilinx, Inc. | Lightweight probe and data collection within an integrated circuit |
US8375132B2 (en) * | 2010-03-01 | 2013-02-12 | Cisco Technology, Inc. | Schedulable transport for contribution services |
KR101197294B1 (ko) * | 2010-11-19 | 2012-11-05 | 숭실대학교산학협력단 | QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 |
US10045089B2 (en) * | 2011-08-02 | 2018-08-07 | Apple Inc. | Selection of encoder and decoder for a video communications session |
US9230112B1 (en) | 2013-02-23 | 2016-01-05 | Xilinx, Inc. | Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis |
US9336010B2 (en) | 2013-03-15 | 2016-05-10 | Xilinx, Inc. | Multi-boot or fallback boot of a system-on-chip using a file-based boot device |
US9165143B1 (en) | 2013-03-15 | 2015-10-20 | Xilinx, Inc. | Image file generation and loading |
US20150201041A1 (en) * | 2013-03-18 | 2015-07-16 | Google Inc. | Device dependent codec negotiation |
US9152794B1 (en) | 2013-09-05 | 2015-10-06 | Xilinx, Inc. | Secure key handling for authentication of software for a system-on-chip |
US9411688B1 (en) | 2013-12-11 | 2016-08-09 | Xilinx, Inc. | System and method for searching multiple boot devices for boot images |
JP6354145B2 (ja) * | 2013-12-12 | 2018-07-11 | 富士通株式会社 | 中継装置、中継制御方法、及び、中継制御プログラム |
US9652410B1 (en) | 2014-05-15 | 2017-05-16 | Xilinx, Inc. | Automated modification of configuration settings of an integrated circuit |
US9652252B1 (en) | 2014-10-29 | 2017-05-16 | Xilinx, Inc. | System and method for power based selection of boot images |
US9323876B1 (en) | 2014-11-24 | 2016-04-26 | Xilinx, Inc. | Integrated circuit pre-boot metadata transfer |
US9928191B2 (en) * | 2015-07-30 | 2018-03-27 | Advanced Micro Devices, Inc. | Communication device with selective encoding |
US10216669B2 (en) * | 2016-02-23 | 2019-02-26 | Honeywell International Inc. | Bus bridge for translating requests between a module bus and an axi bus |
US10314065B2 (en) * | 2016-04-12 | 2019-06-04 | Qualcomm Incorporated | Traffic multiplexing |
US10757718B2 (en) * | 2017-02-16 | 2020-08-25 | Qualcomm Incorporated | Post-puncture indication for mobile broadband and low latency communication multiplexing |
US10243882B1 (en) | 2017-04-13 | 2019-03-26 | Xilinx, Inc. | Network on chip switch interconnect |
-
2018
- 2018-02-23 US US15/904,211 patent/US10503690B2/en active Active
-
2019
- 2019-02-05 JP JP2020544292A patent/JP7308215B2/ja active Active
- 2019-02-05 CN CN201980014805.2A patent/CN111801916B/zh active Active
- 2019-02-05 WO PCT/US2019/016608 patent/WO2019164665A1/en unknown
- 2019-02-05 KR KR1020207027313A patent/KR20200123814A/ko not_active Application Discontinuation
- 2019-02-05 EP EP19710178.5A patent/EP3756318B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070067487A1 (en) * | 2001-10-04 | 2007-03-22 | Newnew Networks Innovations Limited | Communications node |
US20030208566A1 (en) * | 2002-05-03 | 2003-11-06 | Sonics, Inc. | Composing on-chip interconnects with configurable interfaces |
US20150103822A1 (en) * | 2013-10-15 | 2015-04-16 | Netspeed Systems | Noc interface protocol adaptive to varied host interface protocols |
US20150188847A1 (en) * | 2013-12-30 | 2015-07-02 | Netspeed Systems | STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS |
CN107430572A (zh) * | 2015-03-26 | 2017-12-01 | 英特尔公司 | 用于通信中封装信息的方法、装置和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721979A (zh) * | 2022-03-31 | 2022-07-08 | 中科芯集成电路有限公司 | 一种面向互连裸芯与axi主设备的转换接口及通信方法 |
CN114979309A (zh) * | 2022-05-18 | 2022-08-30 | 中国电子科技集团公司第二十八研究所 | 一种支持网络化目标数据随遇接入与处理的方法 |
CN114979309B (zh) * | 2022-05-18 | 2023-08-18 | 中国电子科技集团公司第二十八研究所 | 一种支持网络化目标数据随遇接入与处理的方法 |
CN117135231A (zh) * | 2023-10-26 | 2023-11-28 | 上海特高信息技术有限公司 | 一种基于fpga低延时金融大数据流的解压方法 |
CN117135231B (zh) * | 2023-10-26 | 2023-12-29 | 上海特高信息技术有限公司 | 一种基于fpga低延时金融大数据流的解压方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190266125A1 (en) | 2019-08-29 |
US10503690B2 (en) | 2019-12-10 |
EP3756318A1 (en) | 2020-12-30 |
JP2021515453A (ja) | 2021-06-17 |
KR20200123814A (ko) | 2020-10-30 |
CN111801916B (zh) | 2022-11-01 |
JP7308215B2 (ja) | 2023-07-13 |
WO2019164665A1 (en) | 2019-08-29 |
EP3756318B1 (en) | 2023-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111801916B (zh) | 与多种接口通信协议兼容的可编程noc | |
US10505548B1 (en) | Multi-chip structure having configurable network-on-chip | |
US6990566B2 (en) | Multi-channel bi-directional bus network with direction sideband bit for multiple context processing elements | |
US9294403B2 (en) | Mechanism to control resource utilization with adaptive routing | |
TWI578161B (zh) | 集成有管理控制器的網路控制器暨網路控制的方法 | |
US8368423B2 (en) | Heterogeneous computer architecture based on partial reconfiguration | |
JP2002073531A (ja) | フィールドプログラマブルゲートアレイ(fpga)におけるマルチマスタ・マルチスレーブシステムバス | |
KR100951856B1 (ko) | 멀티미디어 시스템용 SoC 시스템 | |
US11700002B2 (en) | Network-on-chip (NOC) with flexible data width | |
US10963421B1 (en) | Flexible address mapping for a NoC in an integrated circuit | |
JP4837737B2 (ja) | 分配されたアナログリソースを伴うシステム | |
CN111684392A (zh) | 用于片上系统的存储器子系统 | |
US6353619B1 (en) | Circuit to integrate a host processor with special packet-handling logic for use with a DSL modem | |
US20170093616A1 (en) | Method and apparatus for providing in-service firmware upgradability in a network element | |
US7797476B2 (en) | Flexible connection scheme between multiple masters and slaves | |
US20220321403A1 (en) | Programmable network segmentation for multi-tenant fpgas in cloud infrastructures | |
US8078829B2 (en) | Scaleable array of micro-engines for waveform processing | |
US10790906B2 (en) | Data center network node | |
US9658952B2 (en) | Technique for controlling memory accesses | |
JP2007013856A (ja) | テーブル装置及びこれを用いたアドレス検索装置 | |
KR101033425B1 (ko) | 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치 | |
US8078784B2 (en) | Method and apparatus for data movement in a system on a chip | |
Theertha et al. | Topology Re-Configuration for On-Chip Networks with Back-Tracking |
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 |