CN111801916A - 与多种接口通信协议兼容的可编程noc - Google Patents

与多种接口通信协议兼容的可编程noc Download PDF

Info

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
Application number
CN201980014805.2A
Other languages
English (en)
Other versions
CN111801916B (zh
Inventor
I·A·斯沃布里克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of CN111801916A publication Critical patent/CN111801916A/zh
Application granted granted Critical
Publication of CN111801916B publication Critical patent/CN111801916B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7882Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow 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

与多种接口通信协议兼容的可编程NOC
发明领域
本公开的示例一般涉及可编程片上网络(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内。
CN201980014805.2A 2018-02-23 2019-02-05 与多种接口通信协议兼容的可编程noc Active CN111801916B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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