CN112703491B - 片上网络(noc)的部分重新配置 - Google Patents
片上网络(noc)的部分重新配置 Download PDFInfo
- Publication number
- CN112703491B CN112703491B CN201980060593.1A CN201980060593A CN112703491B CN 112703491 B CN112703491 B CN 112703491B CN 201980060593 A CN201980060593 A CN 201980060593A CN 112703491 B CN112703491 B CN 112703491B
- Authority
- CN
- China
- Prior art keywords
- noc
- subset
- nocs
- nmu
- nsu
- 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
- 238000004891 communication Methods 0.000 claims description 67
- 208000000143 urethritis Diseases 0.000 claims description 39
- 238000000034 method Methods 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 28
- 238000005192 partition Methods 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000013461 design Methods 0.000 description 81
- 238000012545 processing Methods 0.000 description 51
- 230000003068 static effect Effects 0.000 description 18
- 230000015572 biosynthetic process Effects 0.000 description 15
- 238000003786 synthesis reaction Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/65—Re-configuration of fast packet switches
-
- 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
- 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
-
- 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
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Multi Processors (AREA)
- Microcomputers (AREA)
- Information Transfer Systems (AREA)
Abstract
本文中所描述的各示例提供了一种具有片上网络(NoC)的电子电路,诸如片上系统(SoC)(106)。NoC(106)是可配置的,并且具有被部分地重新配置的能力。在一个示例中,集成电路(102)上的NoC(106)被配置。集成电路(102)上的子系统(802、804)经由NoC(106)通信。NoC(106)被部分地重新配置。NoC(106)的第一子集(808‑818)在部分重新配置期间被重新配置,而NoC(106)的第二子集能够在部分重新配置期间继续不间断地传递通信。在部分重新配置之后,子系统(802、804)的两个或更多个子系统经由NoC(106)的第一子集(808‑818)通信。
Description
技术领域
本公开的各示例一般涉及电子电路,具体涉及包括具有部分重新配置能力的片上网络(NoC)的电子电路。
背景技术
集成电路技术的进步使得可以在单个半导体芯片中嵌入整个系统,其诸如包括处理器核、存储器控制器、以及总线。这种类型的芯片通常被称为片上系统(SoC)。进一步地,已经开发出了一些SoC,其包括片上网络(NoC),用于在SoC的子系统之间进行通信。NoC通常向SoC提供了增加的可扩展性以及增强的性能。
发明内容
本文中所描述的各示例提供了一种具有片上网络(NoC)的电子电路,诸如片上系统(SoC)。NoC是可配置的,并且具有被部分地重新配置的能力。
本公开的示例是一种用于操作集成电路的方法。在集成电路上配置NoC。集成电路上的子系统经由NoC通信。NoC被部分地重新配置。NoC的第一子集在部分重新配置期间被重新配置,而NoC的第二子集能够在部分重新配置期间继续不间断地传递通信。在部分重新配置之后,子系统中的两个或更多个子系统经由NoC的第一子集通信。
本公开的另一示例是一种集成电路。该集成电路包括芯片上的第一子系统;芯片上的第二子系统;以及位于芯片上并且通信连接在第一子系统与第二子系统之间的NoC。NoC可以被配置为建立通过NoC的通信路径。NoC被配置为部分可重新配置以重新配置通信路径的第一子集,同时通信路径的第二子集能够不间断地传递通信。
本公开的另一示例是一种系统。该系统包括处理器以及计算机可读介质,该计算机可读介质存储指令,当由处理器执行这些指令时,这些指令使得处理器执行操作。这些操作包括:生成第一电路设计的第一物理描述,该第一电路设计包括初始可重新配置模块和静态模块;生成第二电路设计的第二物理描述,该第二电路设计包括后续可重新配置模块;以及基于第一物理描述和第二物理描述来生成一个或多个编程设备图像。第一物理描述与目标集成电路的物理布局相对应。目标集成电路包括NoC。第一物理描述包括可重新配置分区,该可重新配置分区包括通过NoC的路径的电路部件,这些电路部件与初始可重新配置模块相对应。第二物理描述基于第一物理描述,并且包括可重新配置分区,该可重新配置分区包括通过NoC的经重新配置路径的电路部件,这些电路部件与后续可重新配置模块相对应。一个或多个编程设备图像能够被加载到目标集成电路上,以继最初被配置之后实现第一电路设计并且在继被部分重新配置之后实现第二电路设计。
参考以下具体实施方式可以理解这些和其他方面。
附图说明
为了可以详细理解上文所陈述的特征的方式,可以通过参考示例实现方式来获得上文所简要概述的更具体描述,其中一些示例实现方式在附图中图示。然而,应当指出,附图仅说明了典型示例实现方式,因此不应被认为是对其范围的限制。
图1是描绘了根据本公开的示例的片上系统(SoC)的框图。
图2是描绘了根据本公开的示例的片上网络(NoC)的框图。
图3是描绘了根据本公开的示例的通过NoC的端点电路之间的连接的框图。
图4是描绘了根据本公开的示例的通过NoC外围互连(NPI)与寄存器块的连接的框图。
图5是根据本公开的示例的路由表的示意图。
图6是根据本公开的示例的操作SoC的方法。
图7是根据本公开的示例的用于部分地重新配置NoC的方法。
图8至图12是根据本公开的一些示例的用于部分地重新配置NoC的用例场景。
图13是描绘了根据本公开的示例的电路设计系统的示例的框图。
图14是示出了根据本公开的示例的图13的电路设计工具的示例的框图。
图15是根据本公开的示例的用于生成用于部分重新配置的编程设备图像(PDI)的方法。
为了便于理解,在可能情况下,使用了相同附图标记来指定各图中所共有的相同元件。应当设想,一个示例的元件可以有益地并入其他示例中。
具体实施方式
本文中所描述的各示例提供了一种具有片上网络(NoC)的电子电路,诸如片上系统(SoC)。NoC是可配置的,并且具有被部分地重新配置的能力。通过将形成路由表的寄存器分成独立寄存器,以使写入新寄存器值会影响一个或几个路径而又不影响其他路径,并且通过向NoC接口块添加允许以非破坏性方式暂停通过各个路径传输的分组的控件,可以使得能够对NoC进行部分重新配置。附加地,电路设计工具和方法可以生成一个或多个编程设备图像(PDI),以实现NoC和各个子系统的部分重新配置。电路设计工具和方法可以遵从对NoC进行部分重新配置的约束,以实现各个用例场景。
先前,不被部分重新配置的NoC在各个SoC中实现。对于包括是可编程并且具有部分重新配置能力的子系统的SoC,不被部分重新配置的NoC是对子系统的部分重新配置的限制。部分重新配置子系统必须维护与NoC的先前配置的接口,或可能需要对NoC进行完全重新配置,这可能会中断未经重新配置的应用之间的通信。这造成了对可编程设计的灵活性的显著限制。在使用现场可编程门阵列(FPGA)的电路设计中对此进行了说明。一些FPGA包括可能经过部分重新配置的构造(例如,可编程逻辑),但是FPGA中的NoC会限制如何对该构造进行部分重新配置。
本文中所描述的示例向不能被部分重新配置的NoC的限制提供了解决方案。本文中所描述的各示例提供了一种集成电路(诸如可编程逻辑设备,如FPGA)的架构,其准许对集成电路中的NoC进行部分重新配置。本文中所描述的其他示例提供了用于生成用于对NoC进行部分重新配置的PDI的方法和系统。
NoC可以并入SoC设备架构中。NoC可以是通用可编程高速总线,其包括设备上的不同子系统之间的通信路径。示例包括处理系统到双倍数据速率(DDR)存储器的路径、外围部件互连快速(PCIe)接口到可编程逻辑区域的路径、内核到内核的路径、以及数据处理引擎(DPE)阵列到DDR存储器的路径。特征可以被添加到NoC硬件实现方式中,这些特征允许使用部分重新配置(PR)来改变路径配置。这些增强可以允许NoC像SoC中的其他部件一样灵活。
下文参考附图对各个特征进行描述。应当指出,附图可以按比例绘制,也可以不按比例绘制,并且在整个附图中,结构或功能相似的元件由相似的附图标记表示。应当指出,附图仅旨在促进对特征的描述。它们不旨在作为所要求保护的发明的详尽描述或对所要求保护的发明的范围的限制。另外,所图示的示例不必具有所示的所有方面或优点。结合特定示例所描述的方面或优点不必限于该示例,并且即使未如此说明或未明确描述,也可以在任何其他示例中实践。
图1是描绘了根据示例的SoC 102的框图。SoC 102是集成电路(IC),其包括处理系统104、NoC 106、配置互连108、一个或多个可编程逻辑区域110、以及数据处理引擎(DPE)阵列112。SoC 102可以耦合到诸如非易失性存储器(NVM)116之类的外部电路。NVM116可以存储数据(例如,编程设备图像(PDI)),该数据可以被加载到SoC 102,用于配置SoC 102,诸如配置NoC 106、(多个)可编程逻辑区域110、以及DPE阵列112。
一般而言,处理系统104通过NoC 106并且通过配置互连108连接到(多个)可编程逻辑区域110。处理系统104还通过NoC 106连接到DPE阵列112(例如,DPE阵列112的接口(IF)块114)。DPE阵列112(例如,IF块114)通过NoC 106并且通过直接连接而被连接到一个或多个可编程逻辑区域110。
处理系统104可以包括一个或多个处理器核。例如,处理系统104可以包括若干个基于ARM的嵌入式处理器核。(多个)可编程逻辑区域110可以包括任何数目的可配置逻辑块(CLB),其可以通过配置互连108使用处理系统104来被编程或配置。例如,配置互连108可以使得能够例如通过处理系统104的处理器核(诸如下文所进一步描述的平台管理控制器(PMC))对(多个)可编程逻辑区域110的构造进行基于帧的编程。
DPE阵列112包括多个互连DPE。DPE中的每个DPE都是可编程的。例如,每个DPE可以包括核,其能够提供数据处理能力。DPE还可以包括可由核访问的存储器模块。DPE还可以包括DPE互连,该DPE互连能够实现与DPE阵列112的其他DPE的通信和/或与不同子系统的通信。DPE互连还可以支持DPE的配置。IF块114可以包括一个或多个瓦片。IF块114在DPE阵列112的DPE与SoC 102的其他部分(诸如处理系统104和一个或多个可编程逻辑区域110)之间提供接口。
图1所图示并且上文所描述的SoC 102是其中可以使用NoC 106的示例实现方式。实现本文中所描述的各方面的其他示例可以包括或省略各种子系统或部件。例如,示例SoC可以省略诸如可编程逻辑区域110和DPE阵列112之类的子系统。进一步地,可以包括诸如非可编程加速器之类的其他子系统,这些子系统可以补充或代替DPE阵列112。
图2是描绘了根据示例的NoC 106的框图。NoC 106包括NoC主单元(NMU)202、NoC从属单元(NSU)204、网络214、NoC外围互连(NPI)210、以及寄存器块212。每个NMU 202是入口电路(例如,NoC 106的入口),其将主电路连接到NoC 106。每个NSU 204是出口电路(例如,NoC 106的出口),其将NoC 106连接到从属端点电路。NMU 202除了是入口电路之外,还可以具有出口能力。NMU 202通过网络214而被连接到NSU 204。在一些示例中,网络214包括NoC分组交换机(NPS)206以及NPS 206之间的路由208。每个NPS 206执行NoC分组的交换。NPS206彼此连接,并且通过路由208而被连接到NMU 202和NSU 204,以实现多个路径。每个NPS206的交换能力准许通过每个NPS 206实现一个或多个路径。NPS 206的每个路径还支持多个虚拟通道。
NPI 210包括电路系统,其对NMU 202、NSU 204和NPS 206进行编程。NPI 210包括外围互连,其耦合到寄存器块212,用于对其进行编程,以设置对应NMU 202、NSU 204和NPS206的功能。NoC 106中的寄存器块212支持中断、服务质量(QoS)、错误处置和报告、事务控制、功率管理、以及地址映射控制。NMU 202和NSU204的寄存器块212包括寄存器,该寄存器可以被写入以控制NMU202和NSU 204的操作。例如,寄存器块212可以包括寄存器,该寄存器启用/禁用NMU 202和NSU 204,使得NMU 202和NSU 204不向NPS 206传输或从NPS 206拒绝任何后续事务请求,和/或指令NMU 202和NSU 204完成从NPS 206接收的任何待决事务请求。NPS206的寄存器块212可以包括寄存器,该寄存器形成对应NPS 206的路由表。在寄存器块212被重新编程之前,其可以在可用状态下被初始化,诸如通过使用写入请求来写入寄存器块212。用于NoC106的配置数据可以被存储在NVM 116中,并且(从PMC)提供给NPI 210以对NoC 106和/或其他从属端点电路进行编程。
图3是描绘了根据示例的通过NoC 106的端点电路之间的连接的框图。在该示例中,端点电路302通过NoC 106而被连接到端点电路304。端点电路302是主电路,其被耦合到NoC 106的NMU 202。端点电路304是从属电路,其被耦合到NoC 106的NSU 204。每个端点电路302和304可以是处理系统104中的电路、可编程逻辑区域110中的电路、或另一子系统中的电路。例如,可编程逻辑区域110中的每个端点电路可以是专用电路(例如,硬化电路)或按可编程逻辑配置的电路。
网络214包括多个路径306。路径306通过对NoC 106进行编程来实现。每个路径306包括一个或多个NPS 206以及相关联的路由208。NMU 202通过至少一个路径306与NSU 204连接。路径306还可以具有一个或多个虚拟通道308。
图4是描绘了根据示例的通过NPI 210与寄存器块212的连接的框图。为了连接到寄存器块212,NPI 210包括根节点404、一个或多个NPI交换机408、以及协议块410。在一些示例中,根节点404驻留在PMC 402上,该PMC 402还可以驻留在处理系统104中,尽管在其他示例中,根节点404可以是独立电路或驻留在另一系统或电路上。通常,根节点404可以将事务请求封包为NPI 210所实现的格式,并且可以将存储器映射事务请求传输到NPI交换机408,该NPI交换机408还可以基于存储器映射事务请求的目的地标识来将存储器映射事务请求传输到其他NPI交换机408或协议块410。NPI交换机408可以按任何适当拓扑结构互连。在一些示例中,NPI交换机408作为树拓扑结构而被互连到根节点404。然后,协议块410可以将存储器映射事务请求转换为寄存器块212所实现的格式。图4中图示了寄存器块212,作为NPI 210可以连接到其的从属端点电路的示例。NPI 210还可以连接到其他从属端点电路。
PMC 402还被连接到配置互连108,该配置互连108又被连接到可编程逻辑区域110。PMC 402被配置为通过配置互连108对可编程逻辑区域110的构造进行编程。配置互连108是用于对SoC 102上的可编程单元进行编程的传递机构,该传递机构与用于对SoC 102上的其他可编程单元(例如,从属端点电路)进行编程的NPI 210的传递机构无关。
如先前所陈述的,寄存器块212包括寄存器,该寄存器被编程为创建NPS 206的对应路由表。图5图示了根据示例的路由表500。路由表500根据目的地标识来封包寄存器。NPS206所接收并随后传输的每个分组都包括目的地标识,该目的地标识被路由表500使用来传输并路由该分组。对于该示例,NPS 206具有四个端口(端口0至3)和八个虚拟通道(VC 0至7)。路由表的行与在其上接收分组的端口-虚拟通道组合(Port-VC)相对应。路由表的列与所接收的分组中包含的目的地标识(IDy)相对应。路由表的条目基于Port-VC和IDy来指示分组将在其上传输的出站端口。在一些示例中,给定IDy的条目被封包在寄存器块212的一个或多个寄存器中。一个或多个寄存器的预先定义的位是路由表的条目,并且该预先定义的位与VC端口相对应。NPS 206被配置为接收分组,确定在哪个端口上接收分组,确定分组的虚拟通道,确定分组中包含的目的地标识,基于接收端口、虚拟通道以及如在形成路由表的寄存器中编程的目的地标识来标识NPS 206的出站端口,并且在NPS 206的出站端口上传输分组。
在该示例中,基于四个端口和八个虚拟通道,存在三十二个Port-VC组合,并且用于出站端口的每个条目都是基于四个端口的至少两个位。因此,在该示例中,针对每个IDy,实现了两个三十二位寄存器。其他示例可以以不同方式实现路由表的寄存器。
在一些示例中,通过基于目的地标识来封包寄存器,当路径要在部分重新配置中被更改,而不必重新配置或中断没有被重新配置的其他路径时,路由表可以更容易地被重新配置。
在其他示例中,针对路由表,其他特征可以被实现。例如,可以在路由表中对多个目的地标识进行分段,例如,多个目的地标识库可以被封包到一个或多个寄存器中,以减少开销和/或对分组的处理。在这样的示例中,分段可能影响重新配置路径的能力。例如,如果要在部分重新配置期间持续存在的路径的一部分与路由表的某个分段中的条目相对应,则要持续存在的路径的存在可能会防止在同一分段中重新配置另一路径。
图6是根据一些示例的用于操作SoC 102的方法600。在操作602中,NoC 106被配置。更一般地,NoC 106可以被配置为系统级配置和/或其任何重新配置(例如,部分或全部)的一部分。SoC 102的其他子系统也可以在操作602期间被配置。例如,可编程逻辑区域110和/或DPE阵列112可以被配置。如上文所描述的,NoC 106可以通过NPI 210经由存储器映射事务来被配置,以写入NMU 202、NSU 204和NPS 206的寄存器块212。可编程逻辑区域110可以经由配置互连108来被配置。在NoC 106被配置之后并且经由NoC 106以及DPE阵列112的IF块114,DPE阵列112可以被配置。可编程逻辑区域110和/或DPE阵列112的配置可以实例化可编程逻辑区域110和/或DPE阵列112上的一个或多个应用或其任何子集。配置NoC 106和任何其他部件可以处于处理系统104(例如,PMC 402)的控制之下。处理系统104可以从存储器获得PDI,并且PDI可以包括NoC 106的配置数据,用于可编程逻辑区域110的比特流、和/或DPE阵列112的配置数据。此后,处理系统104可以基于PDI来协调并控制对部件的配置。
在操作604中,通信经由NoC 106发生。更一般地,SoC 102基于SoC 102的配置来进行操作,该配置包括NoC 106的配置。一旦被配置,处理系统104就可以启用部件以进行操作并且启动操作。SoC 102上的各个子系统例如经由NoC 106彼此传达例如应用数据。例如,在可编程逻辑区域110和/或DPE阵列112上实例化的应用或其子集可以彼此通信或经由NoC106与其他子系统(例如,处理系统104和/或存储器控制器)通信。
在操作606中,部分重新配置事件触发发生。部分重新配置事件触发可能是专用的。例如,在可编程逻辑区域110和/或DPE阵列112上实例化的应用或其子集可以结束其任务,并且生成中断以触发部分重新配置。中断可以经由NoC 106、专用互连或另一互连而被传达到处理系统104,并且响应于接收到中断,处理系统104(例如,PMC 402)控制部分重新配置。
在操作608中,NoC 106被部分地重新配置。更一般地,NoC 106可以被配置为较大的部分重新配置的一部分。在操作608期间,还可以对SoC 102的其他子系统进行部分重新配置。NoC 106的电路部件的实例和要在部分重新配置期间被重新配置的任何其他子系统的实例在本文中被称为重新配置分区(RP)。RP的电路部件或区域可以在部分重新配置期间被重新配置,以从未使用状态过渡到使用完状态,从使用完状态过渡到未使用状态,和/或从使用完状态过渡到不同使用状态。参考其他子系统,诸如可编程逻辑区域110和DPE阵列112,各个应用可以被禁用和/或覆盖,并且通过部分重新配置,可以在这些子系统上实例化不同应用或其任何子集。部分地重新配置NoC 106和任何其他子系统可以处于处理系统104(例如,PMC402)的控制之下。处理系统104可以从存储器获得PDI,并且PDI可以包括配置数据和/或重新配置分区的比特流。此后,处理系统104可以基于PDI来协调并控制电路部件的部分配置。
部分重新配置可以重新配置RP中的部件,同时位于RP之外的其他部件没有被重新配置。附加地,关于NoC,通信(例如,如在操作604中发生的)可以经由将不会被重新配置的NoC的路径(例如,位于RP之外的路径)继续。因而,NoC的资源子集可以被修改,同时NoC的另一资源子集可以保持活动且不受干扰。下文关于图7对NoC 106的部分重新配置的附加细节进行描述。
在操作610中,通信经由NoC 106发生。更一般地,SoC 102基于SoC 102的配置以及部分重新配置来进行操作。一旦部分重新配置完成,处理系统104就可以启用部件以进行操作并且启动操作。如先前所描述的,SoC 102上的各个子系统例如经由NoC 106相互传达应用数据。
图7是根据一些示例的用于对NoC 106进行部分重新配置的图6的操作608的示例方法。如先前所陈述的,在操作608中,NoC 106的部分重新配置处于处理系统104(例如,PMC402)的控制之下。在操作702中,处理系统104控制要被重新配置的RP中的NMU 202。处理系统104从PDI中获得要被重新配置的RP中的NMU 202的PDI地址或标识。然后,处理系统104通过NPI 210将事务请求发送到RP中的NMU 202的寄存器块212以控制NMU 202。事务请求将使得NMU 202暂停向NoC 106传输其他分组并且清空任何待决分组的值写入NMU 202的寄存器块212。然后,处理系统104可以等待预先确定的时间量,以允许分组被清空。在预先确定的时间量之后,处理系统104可以通过NPI 210经由事务请求读取每个NMU 202的状态寄存器,以确定任何NMU 202是否仍然具有待决分组。如果NMU 202仍然具有待决分组,则可以生成错误。如果NMU 202没有待决分组,则处理系统104通过NPI 210经由事务请求来禁用或暂停NMU 202的操作。
在操作704中,处理系统104控制要被重新配置的RP中的NSU204。处理系统104从PDI中获得要被重新配置的RP中的NSU 204的地址或标识。然后,处理系统104通过NPI 210向RP中的NSU 204的寄存器块212发送事务请求,以控制NSU 204。事务请求将使得NSU 204拒绝随后从NoC 106接收的分组并且清空任何待决分组的值写入NSU 204的寄存器块212。然后,处理系统104可以等待预先确定的时间量,以允许分组被清空。在预先确定的时间量之后,处理系统104可以通过NPI 210经由事务请求读取每个NSU 204的状态寄存器,以确定任何NSU 204是否仍然具有待决分组。如果NSU204仍然具有待决分组,则可以生成错误。如果NSU 204没有待决分组,则处理系统104通过NPI 210经由事务请求来禁用或暂停NSU204的操作。
在根据操作702和704中所进行的描述控制NMU 202和NSU204的情况下,RP中的NoC106中的路径上的业务被停顿。在业务被停顿的情况下,RP可以被重新配置。在操作706中,处理系统104重新配置RP中的NPS 206、NMU 202和NSU 204。处理系统104根据PDI中包含的配置数据来重新配置NPS 206、NMU 202和NSU204。如先前所描述的,处理系统104通过NPI210经由存储器映射事务来重新配置NPS 206、NMU 202和NSU 204。在重新配置期间,业务可以在没有进入RP中的NoC 106、没有退出该RP中的NoC 106或与该RP中的NoC 106无关的路径上继续。由于不是RP的一部分的NPS 206、NMU 202和NSU 204没有被重新配置且不受重新配置的影响,所以这些NPS 206、NMU 202和NSU 204之中和之间的路径可以在RP中的NPS206、NMU 202和NSU 204的重新配置期间继续操作。
在操作708中,处理系统104启用已经被重新配置为使用完状态的NSU 204。在重新配置之后,在重新配置之前被禁用或暂停的NSU 204被启用并进入正常操作。在操作710中,处理系统104启用已经被重新配置为使用完状态的NMU 202。在重新配置之后,在重新配置之前被禁用或暂停的NMU 202被启用并进入正常操作。因此,在图6的操作610中,经由被重新配置的RP中的NPS 206、NMU202和NSU 204的通信被准许发生。
图8至图12图示了根据一些示例的用于部分重新配置NoC 106的用例场景。图8至图12各自图示了第一子系统802、NoC 106和第二子系统804的相应部分。子系统802和804中的每个子系统可以是经由NoC 106通信的SoC 102的任何子系统。例如,子系统802和804可以是可编程逻辑区域110、DPE阵列112、处理系统104、存储器控制器等。
在图8至图12的特定用例场景中,子系统802和804中的至少一个子系统是可编程的,并且是RP的一部分。每个RP表示要在部分重新配置期间被重新配置(例如,从使用完到未使用、从未使用到使用完以及从使用完到不同使用)的电路部件的实例。电路的实例可以是NPS 206的寄存器块212的一个或多个寄存器(与NPS 206本身相反)。例如,该粒度水平准许通过共享的NPS 206的不同路径306分开位于RP和静态区域中。应当指出,各个路径306可以共享NPS 206,其中通过共享NPS 206的路径306中的一些路径可以是静态的,而通过共享的NPS 206的路径306中的一些路径可以位于RP中。通过图5中的路由表500,通过共享NPS206的这些路径306可以在逻辑上分开,使得一个或多个路径306可以位于RP中,而其他路径可以不在RP中。
RP可以具有在部分重新配置之前在其中实例化的初始重新配置模块(RM)的配置,并且可以具有由于部分重新配置而在其中实例化的后续RM的配置。每个RM可以是例如用于逻辑功能等的应用或其子集的表示。
图8至图11还图示了第一子系统802的静态区域806,其在部分重新配置事件期间是不可编程的或将不被重新配置。在NoC 106中对各个NMU 202、NSU 204和路径306进行说明。尽管没有具体图示,但是每个路径306包括一个或多个NPS 206以及路由208。
根据一些示例,到RP外部的NMU 202或NSU 204的初始配置中的任何路径306都在NoC 106的部分重新配置期间持续存在。因此,到这样的路径的RP内的接口(例如,NMU 202)同样在NoC 106的部分重新配置期间持续存在。进一步地,由于路径306和接口的持续存在,所以可能会约束与这样的接口相对应的端点电路302的重新配置。附加地,源于RP之外并且包括RP的初始配置中的NMU202或NSU 204的任何路径306都应当通过路径306的起源处的应用停顿(例如,因为这种RP之外的起源在操作608的部分重新配置期间可能没有处于处理系统104的控制之下)。例如,在部分重新配置事件期间,应用不应生成业务并且将该业务沿着路径306传输到RP中。处理系统104可以向应用传达部分重新配置事件将要发生,这时,应用可以经由路径306暂停到RP的通信。
尽管图8至图12中图示的各个RP被示为连续区域,但这是为了简单起见。在实践中,RP可以包括SoC 102的多个不相交且分开区域。
参考图8,RP 808包括第二子系统804的区域以及NSU 204a和204b。在该示例中,在部分重新配置期间,作为分别到位于RP 808之外的起点的路径306a和306c的接口的NMU202a和202c未被重新配置。因此,这些接口在部分重新配置期间持续存在。处理系统104可以使得在NMU 202a和202c的对应端点电路上操作的应用(例如,静态区域806)在部分重新配置期间不会沿着路径306a和306c生成并传输业务。沿着路径306a和306c的NPS 206(或其寄存器)可以被重新配置为通过对用于那些NPS 206中的路由表的寄存器块212进行重新编程来改变路径306,可以被重新配置为改变QoS、错误控制等,或可以按任何其他方式而被重新配置。NSU 204a和204b也被重新配置,诸如以适应路径306a和306c和/或应用或其子集的重新配置,该应用或其子集通过部分重新配置在第二子系统804上实例化。可以根据关于图7所进行的描述执行NSU 204a和204b以及任何NPS 206的重新配置。
参考图9,RP 810包括第一子系统802的区域、第二子系统804的区域、NMU 202a和202b、NSU 204a和204b、以及沿着路径306a的NPS 206(或其寄存器)。在该示例中,路径306没有跨越RP 810的逻辑边界(例如,路径306没有位于RP 810之外的起点但具有位于该RP810内部的终点,反之亦然)。位于RP 810中的NMU 202a和202b以及NSU 204a和204b被用于在应用或其子集之间进行通信,这些应用或其子集在子系统802和804上被实例化为RP 810的初始和/或后续RM的一部分。如上文关于图8所描述的,NMU 202a和202b、沿着路径306a的NPS 206(或其寄存器)、以及NSU 204a和204b可以被重新配置。可以根据关于图7所进行的描述执行NMU202a和202b、沿着路径306a的NPS 206(或其寄存器)、以及NSU204a和204b的重新配置。由于部分重新配置不会影响位于RP 810之外的任何部件,所以NoC 106的其余部分可以通过部分重新配置继续操作。例如,静态区域806以及沿着路径306b的通信可以在部分重新配置期间继续正常操作。
参考图10,RP 812包括第一子系统802的区域、第二子系统804的区域、NMU 202a和202b、NSU 204a和204b、以及沿着路径306a和306c的NPS 206(或其寄存器)。在该示例中,路径306c跨越RP 812的逻辑边界。路径306c在与第一子系统802中的静态区域806的接口(例如,NMU 202c)处具有起点。NSU 204a位于RP 812中,并且与路径306c接口。RP 812中的NMU202a和202b以及NSU204b用于在应用之间或在其子集之间进行通信,在子系统802和804上被实例化为RP 812的一部分。
在该示例中,在部分重新配置期间,作为RP 812之外的路径306c的接口起点的NMU202c未被重新配置。因此,该接口在部分重新配置期间持续存在。处理系统104可以使得在NMU 202c的对应端点电路上操作的应用(例如,静态区域806)没有在部分重新配置期间沿着路径306c生成并传输业务。
如上文关于图8所描述的,可以重新配置NMU 202a和202b、沿着路径306a和306c的NPS 206(或其寄存器)、以及NSU 204a和204b。可以根据关于图7所进行的描述执行NMU202a和202b、沿着路径306a和306c的NPS 206(或其寄存器)以及NSU 204a和204b的重新配置。因为部分重新配置不会影响RP 812之外的任何其他部件,所以除了暂停沿着路径306c的通信之外,NoC 106的其余部分还可以继续通过部分重新配置操作。例如,静态区域806以及沿着路径的通信306b可以在部分重新配置期间继续正常操作。
参考图11,RP 814包括第一子系统802的区域、第二子系统804的区域、NMU 202a、202b和202e、NSU 204b、以及沿着路径306a和306d的NPS 206(或其寄存器)。在该示例中,路径306d跨越RP 814的逻辑边界。路径306d在RP 814中的接口(例如,NMU 202e)处具有起点。NMU 202c位于RP 814之外并且与路径306d接口。RP814中的NMU 202a和202b以及NSU 204b用于在应用之间或在其子集之间进行通信,在子系统802和804上被实例化为RP 814的一部分。
在该示例中,在部分重新配置期间,沿着到位于RP 814之外的端点的路径306d的NPS 206(或其寄存器)未被重新配置。因此,该路径306d在部分重新配置期间持续存在。NMU202e可以被重新配置为使得能够重新配置位于RP 814中的应用或其子集。
如上文关于图8所描述的,NMU 202a和202b、沿着路径306a的NPS 206(或其寄存器)、以及NSU 204b可以被重新配置。可以根据关于图7所进行的描述执行NMU 202a和202b、沿着路径306a的NPS 206(或其寄存器)、以及NSU 204b的重新配置。由于部分重新配置不影响RP 814之外的任何其他部件,所以除了通过停顿RP 814中的NMU 202e暂停沿着路径306d的通信之外,NoC 106的其余部分还可以通过部分重新配置而继续操作。例如,在部分重新配置期间,静态区域806以及沿着路径306b的通信可以继续正常操作。
在其他示例中,在部分重新配置期间,图10的路径306c和/或图11的路径306d可以被重新配置。可能期望诸如路径306c和306d之类的边界路径在部分重新配置期间持续存在,例如,如果在重新配置期间主动事务可能仍然沿着边界路径。如果在重新配置期间主动事务仍然沿着边界路径,则重新配置边界路径可能会在NoC 106上触发不可恢复条件。如果边界路径的接口处的工具和/或应用可以确保主动事务在每个边界上保持待决,则在部分路径重新配置期间,边界路径可以被重新配置(例如,通过移除路径306c和/或306d)。
参考图12,第一RP 816包括第一子系统802的区域、第二子系统804的区域、NMU202a、202b和202e、NSU 204b、以及沿着路径306a和306d的NPS 206(或其寄存器);并且第二RP 818包括第一子系统802的另一区域、第二子系统804的另一区域、NMU 202c和202d、NSU204c和204d、以及沿着路径306b和306d的NPS 206(或其寄存器)。在该示例中,路径306d跨越RP 816和818的逻辑边界。路径306d在第一RP 816中的接口(例如,NMU 202e)处具有起点并且在第二RP 818中具有另一接口(例如,NMU 202c)。第一RP 816中的NMU 202a和202b以及NSU 204b用于在应用之间或在其子集之间进行通信,在子系统802和804上被实例化为第一RP 816的一部分。同样,第二RP 818中的NMU 202d以及NSU 204c和204d用于在应用之间或在其子集之间进行通信,在子系统802和804上被实例化为第二RP 818的一部分。
在该示例中,在部分重新配置期间,沿着到第一RP 816之外的端点的路径306d的NPS 206(或其寄存器)未被重新配置。因此,该路径306d在部分重新配置期间持续存在。NMU202e可以被重新配置为使得能够在第一RP 816中重新配置应用或其子集。在部分重新配置期间,作为到第二RP 818外部的起点的路径306d的接口的NMU 202c不被重新配置。因此,该接口在部分重新配置期间持续存在。
如上文关于图8所描述的,沿着路径306a和306b的NMU 202a、202b和202d、NPS 206(或其寄存器)、以及NSU 204b、204c和204d可以被重新配置。作为第一RP 816的一部分,可以根据关于图7所进行的描述执行NMU 202a和202b、沿着路径306a的NPS 206(或其寄存器)和NSU 204b的重新配置。同样,作为第二RP 818的一部分,可以根据关于图7所进行的描述执行NMU 202d、沿着路径306b的NPS 206(或其寄存器)以及NSU 204c和204d的重新配置。由于部分重新配置不会影响第一RP 816和第二RP 818之外的任何其他部件,所以NoC 106的其余部分可以通过部分重新配置继续操作。
图13是描绘了根据本公开的示例的电路设计系统1300的示例的框图。该电路设计系统1300包括计算机1302,该计算机1302耦合到输入/输出(IO)设备1304和显示器1306。计算机1302包括硬件平台1310,该硬件平台可以包括计算设备的部件,诸如中央处理单元(CPU)1312、系统存储器1314、存储部1316、输入/输出(IO)接口1318、以及各个支持电路1320。CPU 1312可以包括一个或多个微处理器。CPU 1312被配置为执行指令,这些指令执行本文中所描述的一个或多个操作。指令可以被存储在非暂态存储器中,诸如系统存储器1314、存储部1316或硬件平台1310中的任何其他存储器(例如,高速缓冲存储器)。系统存储器1314包括一个或多个设备,该一个或多个设备存储信息并且可以包括例如随机存取存储器(RAM)、只读存储器(ROM)或其组合。存储部1316包括一个或多个本地存储设备,诸如硬盘、闪存模块、固态盘、光学盘等。存储部1316还可以包括(多个)接口,该(多个)接口被配置为用于与一个或多个网络数据存储系统通信。IO接口1318包括去往/来自计算机1302的接口。IO接口1318可以被耦合到IO设备1304,其可以包括键盘、鼠标等。IO接口1318还可以被耦合到显示器1306,该显示器1306可以向用户呈现图形用户接口(GUI)1334。支持电路1320可以包括高速缓存、电源、时钟电路、数据寄存器、IO接口等。
计算机1302还包括软件平台,该软件平台包括操作系统(OS)1330和电路设计工具1332。OS 1330和电路设计工具1332包括CPU1312所执行的指令,这些指令可以被存储在系统存储器1314、存储部1316或任何其他存储器中。OS 1330可以包括任何已知操作系统,诸如Microsoft/>Mac/>等。电路设计工具1332是在OS 1330内执行的应用,该应用向硬件平台1310提供接口。下文对电路设计工具1332的一些操作进行描述。可以适于包括本文中所描述的技术的示例电路设计工具是可从加利福尼亚州圣何塞的Xilinx公司获得的/>设计套件,尽管其他电路设计工具同样可以适配。
图14是示出了电路设计工具1332的示例的框图。该电路设计工具1332包括集成开发环境(IDE)模块1402、设计输入模块1404、逻辑合成模块1406、物理合成模块1408、以及图形用户接口(GUI)模块1410。模块1402、1404、1406、1408和1410只是电路设计工具1332的一种示例实现方式。本文中所描述的模块1402、1404、1406、1408和1410所执行的功能可以通过电路设计工具1332中的一个或多个模块的不同配置来执行。电路设计工具1332中的模块可以通过作为电子系统的一部分的电路系统、通过电子系统中的固件、通过电子系统中的软件、或其组合来实现。上文在图13中对其中可以实现电路设计工具1332的示例电子系统进行了描述。
一般而言,电路设计工具1332生成电路设计的抽象描述,该抽象描述被处理为电路设计的物理描述,以在预先确定的目标IC(“目标硬件”)中实现。电路设计工具1332可以通过各个中间变换来处理电路设计的抽象描述,以产生电路设计的物理实现。对于可编程IC(例如,现场可编程门阵列(FPGA)),可以对电路设计的物理实现进行格式化并将其加载到可编程IC中以产生物理电路。因此,电路设计工具1332将电路设计的抽象表示转换成电路设计的物理表示,该电路设计的物理表示可以被格式化为二进制数据(物理实现),该二进制数据可以用于在目标硬件中实现物理电路。
用户可以与电路设计工具1332交互以指定或生成源文件1420。源文件1420可以包括寄存器传输级别(RTL)源1422、业务规范1424、以及约束1426。RTL源1422包括一个或多个文件,该一个或多个文件在诸如电路设计的高级块模型、电路设计的更低级硬件描述语言(HDL)模型等之类的各种抽象级别上指定电路设计。RTL源1422可以很少或不依赖目标硬件和/或可以特定于目标硬件的架构。进一步地,用户可以与电路设计工具1332交互以指定或生成业务规范1424。业务规范1424是包括NoC中的路径的标识以及电路设计中的那些路径的对应特点的文件。业务规范1424可以指定路径上的虚拟通道、中断、服务质量(QoS)、错误处置和报告、事务控制、功率管理、以及地址映射控制等。约束1426包括一个或多个文件,该一个或多个文件指定电路设计上的约束。特别地,约束1426包括时序约束1450,其指定电路设计的时序性能要求(例如,特定时钟的操作频率、最大输入路径延迟、最大输出路径延迟等)。约束1426还可以包括放置约束1452和路由约束1454。
电路设计工具1332对源文件1420进行处理,以生成实现文件1430。实现文件1430包括一个或多个文件,该一个或多个文件指定具有不同的目标硬件的依赖性的电路设计。例如,实现文件1430可以包括一个或多个网表1432和一个或多个物理实现1434。(多个)网表1432可以包括所合成的网表、所放置的网表、所放置的和路由的网表等。物理实现1434可以包括PDI,其可以包括比特流、配置数据、或其他实现信息。
IDE模块1402通过GUI模块1410提供用户接口,以组装、实现和验证目标硬件的电路设计。IDE模块1402控制整个电路设计过程,其包括设计输入模块1404、逻辑合成模块1406和物理合成模块1408的调用。
响应于通过GUI模块1410的用户输入,设计输入模块1404生成电路设计的功能描述。该功能描述可以包括对多个电路部件的描述,诸如触发器、存储器、逻辑门、处理器等(例如,基元),这些电路部件通过连接(其被称为“网络”或“信号”)耦合在一起。GUI模块1410可以包括图形接口,电路设计者通过该图形接口将代表各个部件的符号和块连接起来以产生电路设计的示意图,该电路设计被转换为RTL源1422。连接可以包括通过目标硬件的NoC的路径。因此,用户可以经由GUI模块1410来指定通过NoC的路径的属性,其可以用于生成业务规范1424。GUI模块1410可以包括文本接口,用户通过该文本接口直接写入HDL代码以产生RTL源1422和业务规范1424。GUI模块1410可以采用示意图和基于文本的输入的组合。经由GUI模块1410,用户可以访问存储在源文件1420中的各个基元,用于在电路设计中实现。每个基元可以以以下各项中的一项或多项存储在源文件1420中:通过GUI模块1410用作块或符号的格式、HDL代码等、或其组合。
逻辑合成模块1406根据RTL源1422中指定的功能描述来产生电路设计的逻辑描述。该逻辑描述包括用特定逻辑元件表示的电路设计的逻辑表示。例如,逻辑合成模块1406可以执行“技术映射”,其将通用电路元件转换成技术特定电路元件。例如,逻辑描述可以包括用特定逻辑元件表示的电路设计的表示,该特定逻辑元件针对可编程IC的架构进行了优化,诸如查找表(LUT)、进位逻辑、IO缓冲器以及类似技术特定部件。在另一示例中,逻辑描述可以包括用门、触发器等表示的电路设计的表示(有时被称为“门级描述”)。逻辑描述可以由网表1432(例如,所合成的网表)指定。
物理合成模块1408根据逻辑描述产生电路设计的物理描述。电路设计的物理描述是用于在目标IC中实现的电路设计的物理表示。在一个示例中,物理合成模块1408包括NoC编译器1440、放置和路由模块1442、以及时序分析模块1444。NoC编译器1440将逻辑描述中指定的NMU和NSU的实例放置在目标IC的预先定义的物理布局内。NoC编译器1440还路由NMU与NSU之间的路径。NoC编译器1440使用NMU和NSU的标识来更新业务规范1424,这些NMU和NSU已经被放置在预先定义的物理布局中。放置和路由模块1442将逻辑描述中指定的电路部件(除了NoC内的电路部件之外)的实例放置在目标IC的预先确定的物理布局(“放置”)内。放置和路由模块1442还使用目标IC中的导线路由在逻辑描述中指定的实例之间的网。放置和路由模块1442还可以验证物理描述满足电路设计者所指定的放置约束1452和路由约束1454。
在一些示例中,物理合成模块1408还可以包括映射模块,该映射模块将逻辑描述中指定的电路部件的实例映射到目标可编程IC的架构中定义的特定类型的基元部件上,然后,这些特定类型的基元部件通过放置和路由模块1442被放置并路由。物理描述可以由网表1432(例如,所放置和路由的网表)指定。物理合成模块1408可以根据物理描述(例如,可编程IC的PDI)生成物理实现1430。
在一个示例中,物理合成模块1408包括时序分析模块1444。该时序分析模块1444对电路设计的物理描述执行时序分析。时序分析模块1444验证物理描述满足电路设计者所指定的时序约束1450。时序分析可以包括各种时序检查,以确保电路设计受到完全约束并且电路设计满足响应于时序约束1450而导出的时序要求(例如,时序路径的余量)。
图15图示了根据本公开的示例的用于生成用于部分重新配置的PDI的方法1500的流程图。图15的方法1500可以通过如上文关于13和图14所描述的电路设计工具1332来实现。
在操作1502中,电路设计的功能描述被创建。电路设计的功能描述可以使用上文所描述的设计输入模块1404并且通过被描述为用于通过设计输入模块1404创建功能描述的技术来创建。电路设计以及因此功能描述包括初始RM,该初始RM当在设备上操作时,继发生部分重新配置事件之后,要被重新配置。电路设计以及因此功能描述还可以包括静态模块,该静态模块在部分重新配置期间持续存在。初始RM还可以包括NMU和/或NSU,这些NMU和/或NSU使得能够经由NoC与其他子系统之间进行来往初始RM的逻辑功能的通信。功能描述的创建还包括:指定位于初始RM之内的NMU和NSU。
在功能描述的创建期间,NoC的业务规范被创建。业务规范包括位于功能描述中NoC中的路径的标识以及那些路径的对应特点。例如,业务规范可以包括与路径上的虚拟通道、中断、服务质量(QoS)、错误处置和报告、事务控制、功率管理和地址映射控制有关的信息。在一些示例中,当创建功能描述时,用户指定要填充业务规范的特点。附加地,在业务规范中指定NMU和NSU是位于初始RM内还是位于初始RM之外。
附加地,在操作1502期间或随后在方法1500期间,电路设计以及因此功能描述可以包括后续RM,该后续RM要继部分重新配置事件发生之后被实例化。后续RM还可以包括NMU和/或NSU,这些NMU和/或NSU使得能够经由NoC与其他子系统之间进行来往后续RM的逻辑功能的通信。创建功能描述还包括:指定位于后续RM内的NMU和NSU。业务规范或附加业务规范可以包括后续RM内的路径的标识以及那些路径的特点,这些路径包括NMU和NSU。
在操作1504中,逻辑描述根据功能描述而被产生。产生逻辑描述的功能描述包括初始RM和静态模块。逻辑描述可以使用上文所描述的逻辑合成模块1406来产生。
在操作1506中,NMU和NSU的初始放置以及它们之间的路由被生成。NoC编译器1440可以将逻辑描述的NMU和NSU放置在电路设计的物理描述中,用于在目标IC的NoC中实现。NoC编译器1440还可以通过放置NPS路由NMU与NSU之间的路径。初始放置和路由可以与逻辑功能或其他功能性可以在可编程逻辑区域或其他子系统中的放置位置无关。逻辑描述可以标识或指示各种逻辑功能或其他功能性可以被放置在哪些子系统中。因此,NoC编译器1440可以通过逻辑描述来标识通过NoC(不同子系统之间)的路径。NoC编译器1440在各个子系统的任何相应适当接口处放置NMU和NSU,并且(例如,通过放置NPS)在其间生成路径。在放置并生成路径时,NoC编译器1440尝试满足如业务规范中定义的路径的特点。如果NoC编译器1440无法放置NMU和NSU并且无法生成满足业务规范中的特点的路径,则错误可能生成并且用于生成电路设计的PDI的其他处理可能会被终止。如果NoC编译器1440能够初始放置NMU和NSU并且生成满足业务规范中的特点的路径,则其他处理可以继续进行。
在操作1508中,逻辑描述被优化。如本文中所使用的,“优化”不一定指示产生最优解,特别是由于各个解可能具有不同的成本和益处;相反,“优化”可以包括对先前迭代的任何改进。逻辑描述可以使用上文所描述的逻辑合成模块1406来优化。例如,基于逻辑描述中的其他逻辑元素,逻辑描述中的各种逻辑元素可能是冗余的或不必要的,并且所优化的逻辑描述可以省略这样的逻辑元素。进一步地,例如,一些逻辑功能可以使用比逻辑描述所指示的逻辑元素更简单或更快速的逻辑元素来实现,并且所优化的逻辑描述可以实现更简单或更快速的逻辑元素。在一些示例中,操作1508的优化可以被省略。下文对逻辑描述的引用可以是指原始逻辑描述或所优化的逻辑描述。
在操作1510中,在逻辑描述中指定的电路部件的实例被放置在目标IC的架构的物理表示中,以生成物理描述的至少一部分。与在逻辑描述中指定的逻辑功能的逻辑元素相对应的电路部件的实例可以由布置和路由模块1442放置。与在逻辑描述中指定的NoC相对应的电路部件的实例可以由NoC编译器1440放置。NoC编译器1440可以通过根据操作1506调整对应NMU和NSU的初始放置来将NMU和NSU放置在物理表示中。在放置了各个子系统(例如,可编程逻辑区域)中的电路部件的情况下,用于与电路部件的各个实例通信的对应NMU和NSU可以被确定,并且那些NMU和NSU的放置可以通过NoC编译器1440被确定。在放置了NMU和NSU的情况下,NPS可以被放置以形成NMU与NSU之间的路径。NMU和NSU的放置以及其间的路径的路由(例如,NPS的放置)受到约束,以满足在业务规范中指定的特点。
在操作1512中,在目标IC的架构的物理表示中生成所放置的电路部件之间的路由,以生成物理描述的至少一部分。操作1512的路由可以是相应子系统内的路由(例如,可编程逻辑区域内的路由)。可以通过布置和路由模块1442对电路部件的实例之间的路由进行路由。
在操作1514中,基于所放置的电路部件以及物理描述中的路由,PDI被生成。PDI包括例如一个或多个可编程逻辑区域的比特流、NoC的配置数据、以及其他可编程部件的任何其他配置数据。因此,PDI可以在目标IC中实现初始RM和静态模块。
在操作1516中,初始RM的电路部件被从电路设计的物理描述中移除。移除初始RM的电路部件包括:移除与初始RM中的逻辑功能的逻辑元件相对应的电路部件的实例;以及移除初始RM中的NMU和NSU。进一步地,初始RM中的NoC中的路径的业务规范被删除。物理合成模块1408可以移除与逻辑功能的逻辑元素相对应的电路部件。NoC编译器1440可以移除NMU和NSU,并且可以删除路径的业务规范。
在操作1518中,电路设计的其余物理描述被锁定。例如,与可编程逻辑区域中的逻辑功能的逻辑元素相对应的电路部件的其余实例以及其间的路由被锁定。附加地,包括剩余NMU和NSU的放置在内的剩余路径被锁定。把这些部件锁定在物理描述中可以通过物理合成模块1408进行。
在操作1520中,与操作1504相似地,逻辑描述根据后续RM的功能描述而被产生。
在操作1522中,与操作1506相似地,后续RM的NMU和NSU的初始放置以及其间的路由使用物理描述的未经锁定部件来生成。在放置NMU和NSU并且在NMU与NSU之间路由的同时,所锁定的NMU、NSU和(例如,在操作1518中锁定的)路径保持锁定且未经修改。因此,NMU与NSU的初始放置和其间的路由遵从所锁定的NMU和NSU的放置以及所锁定的路径的路由。因此,操作1522中的初始放置和路由使用由于静态模块而未被锁定的NMU、NSU和路径。因而,NMU和NSU的初始布置以及其间的路由可以至少初始实现上文关于图8至图12所描述的用例场景。
在操作1524中,后续RM的逻辑描述被优化,其与操作1508类似。在操作1526中,在后续RM的逻辑描述中指定的电路部件的实例通过使用物理描述的未经锁定部件而被放置,以生成另一(或经修改的)物理描述的至少一部分,其与操作1510类似。在操作1526期间,所锁定的静态逻辑以及所锁定的NMU、NSU和路径的放置和路由被遵从并且没有被修改。因此,电路部件在操作1526中的放置使用由于静态模块而未被锁定的电路部件。因而,NMU和NSU的布置以及其间的路由可以实现上文关于图8至图12所描述的用例场景。在操作1528中,后续RM的电路部件的所放置的实例之间的路由在经修改的物理描述中被生成,其与操作1512类似。在操作1530中,PDI基于经修改的物理描述来被生成,其与操作1514类似。PDI可以被包括在操作1514中生成的PDI中,或可以与在操作1514中生成的PDI分开。在操作1530中生成的PDI可以包括一个或多个可编程逻辑区域的部分比特流、NoC的部分配置数据、以及其他可编程部件的任何其他配置数据。
尽管图15中未具体图示,但是可以对物理描述执行时序和分析,并且可以实现优化以改善例如较低偏斜时间等的放置和路由。同样,可以执行其他操作。
本文中所描述的示例提供了一种具有片上网络(NoC)的电子电路,诸如片上系统(SoC)。NoC是可配置的,并且具有部分重新配置能力。
本公开的示例是一种用于操作集成电路的方法。这种方法可以包括:在集成电路上配置片上网络(NoC);以及经由NoC在集成电路上的子系统之间进行通信;部分重新配置NoC,其中NoC的第一子集在部分重新配置期间被重新配置,并且NoC的第二子集能够在部分重新配置期间继续不间断地传递通信;在部分重新配置之后,经由NoC的第一子集在两个或更多个子系统之间进行通信。
在某个这种方法中,部分重新配置NoC可以包括:停顿NoC的第一子集;以及在停顿NoC的第一子集之后,重新配置NoC的第一子集。
在某个这种方法中,NoC可以包括NoC主单元(NMU)、NoC从属单元(NSU)、NoC分组交换机(NPS)、以及路由,NPS通过路由而被互连在NMU和NSU之间。
在某个这种方法中,部分重新配置NoC可以包括:控制NoC的第一子集中的NMU以暂停传输通信分组;控制NoC的第一子集中的NSU以拒绝所接收的通信分组;在控制NoC的第一子集中的NMU和NSU以分别暂停并拒绝之后,重新配置NoC的第一子集中的NMU、NoC的第一子集中的NSU、以及NoC的第一子集中的NPS;以及在重新配置NoC的第一子集中的NMU、NSU和NPS之后,启动NoC的第一子集中的NMU和NSU以用于通信。
在某个这种方法中,部分重新配置NoC还可以包括:使得在部分重新配置期间在集成电路上操作并且不被重新配置的应用暂停经由NoC的第一子集传输通信。
在某个这种方法中,NoC的第一子集中的NMU可以包括一个或多个第一控制寄存器,控制NoC的第一子集中的NMU包括:写入一个或多个第一控制寄存器;以及NoC的第一子集中的NSU可以包括一个或多个第二控制寄存器,控制NoC的第一子集中的NMU包括:写入一个或多个第二控制寄存器。
在某个这种方法中,NPS中的每个NPS可以具有被配置为接收并传输通信分组的端口,这些端口被连接到相应路由;NPS中的每个NPS还可以包括路由表,该路由表包括寄存器;以及寄存器中的每个寄存器与一个或多个目的地标识相关联,寄存器中的每个寄存器的预先定义的比特位置与能够在其上接收通信分组的相应端口相对应,预先定义的比特位置的写入值标识相应端口,通信分组要通过该相应端口而被传输,所接收的通信分组在预先定义的比特位置中的一个或多个预先定义的比特位置的相应写入值和相应寄存器中的相应写入值所标识的端口上传输,该一个或多个预先定义的比特位置与在其上接收所接收的通信分组的端口相对应,该相应寄存器与所接收的通信分组中包含的目的地标识相关联。
在某个这种方法中,部分重新配置NoC可以包括重新配置NoC的第一子集中的NPS,该重新配置NoC的第一子集中的NPS包括:写入路由表的一个或多个寄存器。
在某个这种方法中,配置NoC可以包括:配置各自通过NPS的第一NPS的第一路径和第二路径;以及部分重新配置NoC可以包括:重新配置通过第一NPS的第一路径,其中通过第一NPS的第二路径能够在部分重新配置期间继续不间断地传递通信。
在某个这种方法中,NoC还可以包括NoC外围互连(NPI);以及部分重新配置NoC可以包括:经由NPI使用存储器映射事务将配置数据写入NoC的第一子集的部件。
在另一示例中,一种集成电路可以包括第一子系统,其位于芯片上;第二子系统,其位于该芯片上;片上网络(NoC),其位于芯片上并且以通信方式连接在第一子系统与第二子系统之间,该NoC可被配置为建立通过NoC的通信路径,该NoC被配置为部分可重新配置,以重新配置通信路径的第一子集,同时通信路径的第二子集能够不间断地传递通信。
在某个这种集成电路中,NoC可以包括NoC主单元(NMU)、NoC从属单元(NSU)、NoC分组交换机(NPS)、以及路由,NPS通过路由而被互连在NMU与NSU之间;NPS中的每个NPS可以具有端口,这些端口被配置为接收并传输通信分组的端口,这些端口被连接到相应路由;NPS中的每个NPS还可以包括路由表,该路由表包括寄存器;以及寄存器中的每个寄存器与一个或多个目的地标识相对应,寄存器中的每个寄存器的预先定义的比特位置与能够在其上接收通信分组的相应端口相对应,预先定义的比特位置的写入值标识相应端口,通信分组要通过该相应端口被传输,所接收的通信分组在预先定义的比特位置中的一个或多个预先定义的比特位置的相应写入值和相应寄存器中的相应写入值所标识的端口上传输,该一个或多个预先定义的比特位置与在其上接收所接收的通信分组的端口相对应,该相应寄存器与所接收的通信分组中包含的目的地标识相关联。
在某个这种集成电路中,NoC可以包括NoC主单元(NMU)、NoC从属单元(NSU)、NoC分组交换机(NPS)、以及路由,NPS通过路由而被互连在NMU与NSU之间;NMU中的每个NMU可以包括一个或多个第一控制寄存器,NMU中的每个NMU可控制,以基于写入一个或多个第一控制寄存器的值来暂停传输通信;NMU中的每个NSU可以包括一个或多个第二控制寄存器,NMU中的每个NMU可控制,以基于写入一个或多个第二控制寄存器的值来拒绝通信。
在某个这种集成电路中,NoC可以包括NoC外围互连(NPI),该NoC可经由NPI传输存储器映射事务配置。
在某个这种集成电路中,第一子系统可以是可编程子系统。
在另一示例中,一种系统可以包括处理器;以及计算机可读介质,其存储指令,当由处理器执行这些指令时,这些指令使得处理器执行操作,这些操作包括:生成第一电路设计的第一物理描述,该第一电路设计包括初始可重新配置模块和静态模块,第一物理描述与目标集成电路的物理布局相对应,目标集成电路包括片上网络(NoC),该第一物理描述包括可重新配置分区,该可重新配置分区包括通过NoC的路径的电路部件,这些电路部件与初始可重新配置模块相对应;生成第二电路设计的第二物理描述,该第二电路设计包括后续可重新配置模块,第二物理描述基于第一物理描述并且包括可重新配置分区,该可重新配置分区包括与后续可重新配置模块相对应的通过NoC的经重新配置路径的电路部件;以及基于第一物理描述和第二物理描述来生成一个或多个编程设备图像,该一个或多个编程设备图像能够被加载到目标集成电路上,以继初始配置之后实现第一电路设计并且继部分重新配置之后实现第二电路设计。
在某个这种系统中,生成第二物理描述可以包括:从第一物理描述中移除可重新配置分区的电路部件,可重新配置分区的所移除的电路部件包括通过NoC的路径的电路部件,这些电路部件与初始可重新配置模块相对应;在移除之后,在第一物理描述中锁定电路部件,这些电路部件保留并且与静态模块相对应;在锁定之后,将与后续可重新配置模块相对应的电路部件放置在第一物理描述的可重新配置分区中,所放置的电路部件包括与后续可重新配置模块相对应的通过NoC的经重新配置路径的电路部件;以及在放置之后,路由所放置的电路部件中的至少一些电路部件之间的连接。
在某个这种系统中,放置与后续可重新配置模块相对应的电路部件可能受到约束,该约束包括通过与初始可重新配置模块相对应的NoC的路径持续存在到第二物理描述,该路径具有位于可重新配置分区中的起点接口和位于可重新配置分区之外的末端接口。
在某个这种系统中,一个或多个编程设备图像可以包括基于第一物理描述的第一编程设备图像以及基于第二物理描述的第二编程设备图像,第二编程设备图像包括NoC的部分配置数据。
在某个这种系统中,NoC在目标集成电路上的电路部件可以包括NoC主单元(NMU)、NoC从属单元(NSU)、NoC分组交换机(NPS)、以及路由,这些NPS通过路由而被互连在NMU与NSU之间。
虽然前述内容针对特定示例,但是在没有背离其基本范围的情况下,可以设计其他和进一步示例,并且其范围由所附权利要求书确定。
Claims (15)
1.一种用于操作集成电路的方法,所述方法包括:
在所述集成电路上配置片上网络(NoC),其中所述NoC包括NoC主单元(NMU)和NoC从属单元(NSU);
经由所述NoC在所述集成电路上的子系统之间进行通信;
部分重新配置所述NoC,其中所述NoC的第一子集在对所述NoC进行的所述部分重新配置期间被重新配置,并且所述NoC的第二子集能够在对所述NoC进行的所述部分重新配置期间继续不间断地传递通信,其中部分重新配置所述NoC包括基于重新配置数据来重新配置所述第一子集内的所述NMU中的第一NMU以及所述第一子集内的所述NSU中的第一NSU,并且其中第一子集被包括在所述NoC的重新配置分区中,并且所述第二子集位于所述重新配置分区之外;以及
在部分重新配置NoC之后,经由所述NoC的所述第一子集在所述子系统中的两个或更多个子系统之间进行通信。
2.根据权利要求1所述的方法,其中部分重新配置所述NoC包括:
停顿所述NoC的所述第一子集;以及
在停顿所述NoC的所述第一子集后,重新配置所述NoC的所述第一子集。
3.根据权利要求1所述的方法,其中所述NoC还包括NoC分组交换机(NPS)以及路由,所述NPS通过所述路由而被互连在所述NMU与所述NSU之间。
4.根据权利要求3所述的方法,其中部分重新配置所述NoC包括:
控制所述NoC的所述第一子集中的所述NMU以暂停传输通信分组;
控制所述NoC的所述第一子集中的所述NSU以拒绝所接收的通信分组;
在控制所述NoC的所述第一子集中的所述NMU和所述NSU以分别暂停并拒绝之后,重新配置所述NoC的所述第一子集中的所述NMU、所述NoC的所述第一子集中的所述NSU、以及所述NoC的所述第一子集中的所述NPS;以及
在重新配置所述NoC的所述第一子集中的所述NMU、所述NSU和所述NPS之后,启动所述NoC的所述第一子集中的所述NMU和所述NSU以用于通信。
5.根据权利要求4所述的方法,其中部分重新配置所述NoC还包括:使得在所述部分重新配置期间在所述集成电路上操作并且不被重新配置的应用暂停经由所述NoC的所述第一子集传输通信。
6.根据权利要求4所述的方法,其中:
所述NoC的所述第一子集中的所述NMU包括一个或多个第一控制寄存器,控制所述NoC的所述第一子集中的所述NMU包括:写入所述一个或多个第一控制寄存器;以及
所述NoC的所述第一子集中的所述NSU包括一个或多个第二控制寄存器,控制所述NoC的所述第一子集中的所述NMU包括:写入所述一个或多个第二控制寄存器。
7.根据权利要求3至6中任一项所述的方法,其中:
所述NPS中的每个NPS具有被配置为接收并传输通信分组的端口,所述端口被连接到相应路由;
所述NPS中的每个NPS还包括路由表,所述路由表包括寄存器;以及
所述寄存器中的每个寄存器与一个或多个目的地标识相关联,所述寄存器中的每个寄存器的预先定义的比特位置与能够在其上接收通信分组的相应端口相对应,所述预先定义的比特位置的写入值标识相应端口,通信分组要通过所述相应端口而被传输,所接收的通信分组在预先定义的比特位置中的一个或多个预先定义的比特位置的相应写入值和相应寄存器中的相应写入值所标识的端口上传输,所述一个或多个预先定义的比特位置与在其上接收所接收的通信分组的端口相对应,所述相应寄存器与所接收的通信分组中包含的目的地标识相关联。
8.根据权利要求7所述的方法,其中部分重新配置所述NoC包括重新配置所述NoC的所述第一子集中的所述NPS,所述重新配置所述NoC的所述第一子集中的所述NPS包括:写入所述路由表的所述寄存器中的一个或多个寄存器。
9.根据权利要求3至6和8中任一项所述的方法,其中:
配置所述NoC包括:配置各自通过所述NPS中的第一NPS的第一路径和第二路径;以及
部分重新配置所述NoC包括:重新配置通过所述第一NPS的所述第一路径,其中通过所述第一NPS的所述第二路径能够在所述部分重新配置期间继续不间断地传递通信。
10.根据权利要求9所述的方法,其中:
所述NoC还包括NoC外围互连(NPI);以及
部分重新配置所述NoC包括:经由所述NPI使用存储器映射事务将配置数据写入所述NoC的所述第一子集的部件。
11.一种集成电路,包括:
第一子系统,位于芯片上;
第二子系统,位于所述芯片上;以及
片上网络(NoC),位于所述芯片上并且通信连接在所述第一子系统与所述第二子系统之间,所述NoC可配置为建立通过所述NoC的通信路径并且包括NoC主单元(NMU)和NoC从属单元(NSU),所述NoC被配置为部分可重新配置以重新配置所述通信路径的第一子集,同时所述通信路径的第二子集能够不间断地传递通信,其中部分重新配置所述NoC包括基于重新配置数据来重新配置所述第一子集内的所述NMU中的第一NMU以及所述第一子集内的所述NSU中的第一NSU,并且其中第一子集被包括在所述NoC的重新配置分区中,并且所述第二子集位于所述重新配置分区之外。
12.根据权利要求11所述的集成电路,其中:
所述NoC还包括NoC分组交换机(NPS)以及路由,所述NPS通过所述路由而被互连在所述NMU与所述NSU之间;
所述NPS中的每个NPS具有端口,所述端口被配置为接收并传输通信分组,所述端口被连接到相应路由;
所述NPS中的每个NPS还包括路由表,所述路由表包括寄存器;以及
所述寄存器中的每个寄存器与一个或多个目的地标识关联,所述寄存器中的每个寄存器的预先定义的比特位置与能够在其上接收通信分组的相应端口相对应,所述预先定义的比特位置的写入值标识相应端口,通信分组要通过所述相应端口被传输,所接收的通信分组在所述预先定义的比特位置中的一个或多个预先定义的比特位置的相应写入值和相应寄存器中的相应写入值所标识的端口上传输,所述一个或多个预先定义的比特位置与在其上接收所接收的通信分组的端口相对应,所述相应寄存器与所接收的通信分组中包含的目的地标识相关联。
13.根据权利要求11所述的集成电路,其中:
所述NMU、所述NSU、NoC分组交换机(NPS)以及路由,所述NPS通过所述路由而被互连在所述NMU与所述NSU之间;
所述NMU中的每个NMU包括一个或多个第一控制寄存器,所述NMU中的每个NMU可控制,以基于写入所述一个或多个第一控制寄存器的值来暂停传输通信;以及
所述NMU中的每个NSU包括一个或多个第二控制寄存器,所述NMU中的每个NMU可控制,以基于写入所述一个或多个第二控制寄存器的值拒绝通信。
14.根据权利要求11至13中任一项所述的集成电路,其中所述NoC包括NoC外围互连(NPI),所述NoC可通过经由所述NPI传输存储器映射事务配置。
15.根据权利要求11所述的集成电路,其中所述第一子系统是可编程子系统。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/133,357 US10893005B2 (en) | 2018-09-17 | 2018-09-17 | Partial reconfiguration for Network-on-Chip (NoC) |
US16/133,357 | 2018-09-17 | ||
PCT/US2019/047277 WO2020060710A2 (en) | 2018-09-17 | 2019-08-20 | Partial reconfiguration for network-on-chip (noc) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112703491A CN112703491A (zh) | 2021-04-23 |
CN112703491B true CN112703491B (zh) | 2024-04-30 |
Family
ID=69773257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980060593.1A Active CN112703491B (zh) | 2018-09-17 | 2019-08-20 | 片上网络(noc)的部分重新配置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10893005B2 (zh) |
EP (1) | EP3853740A2 (zh) |
JP (1) | JP7399952B2 (zh) |
KR (1) | KR20210057159A (zh) |
CN (1) | CN112703491B (zh) |
WO (1) | WO2020060710A2 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10673439B1 (en) | 2019-03-27 | 2020-06-02 | Xilinx, Inc. | Adaptive integrated programmable device platform |
US10990724B1 (en) | 2019-12-27 | 2021-04-27 | Arteris, Inc. | System and method for incremental topology synthesis of a network-on-chip |
US11657203B2 (en) | 2019-12-27 | 2023-05-23 | Arteris, Inc. | Multi-phase topology synthesis of a network-on-chip (NoC) |
US11558259B2 (en) | 2019-12-27 | 2023-01-17 | Arteris, Inc. | System and method for generating and using physical roadmaps in network synthesis |
US11665776B2 (en) | 2019-12-27 | 2023-05-30 | Arteris, Inc. | System and method for synthesis of a network-on-chip for deadlock-free transformation |
US11418448B2 (en) | 2020-04-09 | 2022-08-16 | Arteris, Inc. | System and method for synthesis of a network-on-chip to determine optimal path with load balancing |
EP4013014A1 (en) * | 2020-12-09 | 2022-06-15 | Arteris, Inc. | Multi-phase topology synthesis of a network-on-chip (noc) |
US11601357B2 (en) | 2020-12-22 | 2023-03-07 | Arteris, Inc. | System and method for generation of quality metrics for optimization tasks in topology synthesis of a network |
US11281827B1 (en) | 2020-12-26 | 2022-03-22 | Arteris, Inc. | Optimization of parameters for synthesis of a topology using a discriminant function module |
US11449655B2 (en) | 2020-12-30 | 2022-09-20 | Arteris, Inc. | Synthesis of a network-on-chip (NoC) using performance constraints and objectives |
US11681846B1 (en) | 2021-01-12 | 2023-06-20 | Xilinx, Inc. | Sub-FPGA level compilation platform with adjustable dynamic region for emulation/prototyping designs |
US11956127B2 (en) | 2021-03-10 | 2024-04-09 | Arteris, Inc. | Incremental topology modification of a network-on-chip |
US20220313256A1 (en) | 2021-03-30 | 2022-10-06 | Cilag Gmbh International | Passively powered packaging for tissue adjuncts |
US20220313145A1 (en) | 2021-03-30 | 2022-10-06 | Cilag Gmbh International | Monitoring healing after tissue adjunct implantation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013005145A (ja) * | 2011-06-15 | 2013-01-07 | Renesas Electronics Corp | パケット転送装置及びパケット転送方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7602796B2 (en) * | 2005-03-04 | 2009-10-13 | Cisco Technology, Inc. | Method and apparatus for border gateway protocol route management and routing policy modeling |
JP2008541677A (ja) * | 2005-05-23 | 2008-11-20 | エヌエックスピー ビー ヴィ | 内部通信ネットワークを備えた集積回路 |
US11132277B2 (en) * | 2012-12-28 | 2021-09-28 | Iii Holdings 2, Llc | System and method for continuous low-overhead monitoring of distributed applications running on a cluster of data processing nodes |
US8934377B2 (en) * | 2013-03-11 | 2015-01-13 | Netspeed Systems | Reconfigurable NoC for customizing traffic and optimizing performance after NoC synthesis |
GB2519350A (en) * | 2013-10-18 | 2015-04-22 | St Microelectronics Grenoble 2 | Method and apparatus for supporting reprogramming or reconfiguring |
US9602587B2 (en) * | 2014-06-26 | 2017-03-21 | Altera Corporation | Multiple plane network-on-chip with master/slave inter-relationships |
US9569221B1 (en) * | 2014-09-29 | 2017-02-14 | Amazon Technologies, Inc. | Dynamic selection of hardware processors for stream processing |
US9979668B2 (en) * | 2014-12-22 | 2018-05-22 | Intel Corporation | Combined guaranteed throughput and best effort network-on-chip |
EP3278520B1 (en) * | 2015-03-28 | 2022-06-22 | Intel Corporation | Distributed routing table system with improved support for multiple network topologies |
US10116557B2 (en) * | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
US9959208B2 (en) * | 2015-06-02 | 2018-05-01 | Goodrich Corporation | Parallel caching architecture and methods for block-based data processing |
US20170075838A1 (en) * | 2015-09-14 | 2017-03-16 | Qualcomm Incorporated | Quality of service in interconnects with multi-stage arbitration |
US9722613B1 (en) | 2015-09-28 | 2017-08-01 | Xilinx, Inc. | Circuit arrangement for and a method of enabling a partial reconfiguration of a circuit implemented in an integrated circuit device |
EP3400688B1 (en) | 2016-01-04 | 2020-05-20 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
JP6522531B2 (ja) * | 2016-02-15 | 2019-05-29 | 株式会社日立製作所 | 通信装置、通信システム、および回路構成制御方法 |
WO2017223095A1 (en) * | 2016-06-20 | 2017-12-28 | Anacode Labs, Inc. | Parallel, block-based data encoding and decoding using multiple computational units |
US10469337B2 (en) * | 2017-02-01 | 2019-11-05 | Netspeed Systems, Inc. | Cost management against requirements for the generation of a NoC |
US10243882B1 (en) * | 2017-04-13 | 2019-03-26 | Xilinx, Inc. | Network on chip switch interconnect |
US20190089619A1 (en) * | 2017-09-21 | 2019-03-21 | Qualcomm Incorporated | Self-test engine for network on chip |
US11100023B2 (en) * | 2017-09-28 | 2021-08-24 | Intel Corporation | System, apparatus and method for tunneling validated security information |
US20190260504A1 (en) * | 2018-02-22 | 2019-08-22 | Netspeed Systems, Inc. | Systems and methods for maintaining network-on-chip (noc) safety and reliability |
US10505548B1 (en) * | 2018-05-25 | 2019-12-10 | Xilinx, Inc. | Multi-chip structure having configurable network-on-chip |
US10673439B1 (en) * | 2019-03-27 | 2020-06-02 | Xilinx, Inc. | Adaptive integrated programmable device platform |
US10608640B1 (en) | 2019-05-10 | 2020-03-31 | Achronix Semiconductor Corporation | On-chip network in programmable integrated circuit |
-
2018
- 2018-09-17 US US16/133,357 patent/US10893005B2/en active Active
-
2019
- 2019-08-20 KR KR1020217011056A patent/KR20210057159A/ko unknown
- 2019-08-20 CN CN201980060593.1A patent/CN112703491B/zh active Active
- 2019-08-20 JP JP2021514509A patent/JP7399952B2/ja active Active
- 2019-08-20 WO PCT/US2019/047277 patent/WO2020060710A2/en unknown
- 2019-08-20 EP EP19861384.6A patent/EP3853740A2/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013005145A (ja) * | 2011-06-15 | 2013-01-07 | Renesas Electronics Corp | パケット転送装置及びパケット転送方法 |
Non-Patent Citations (1)
Title |
---|
Applying Partial Reconfiguration to Networks-On-Chips;Thilo Pionteck 等;《2006 International Conference on Field Programmable Logic and Applications》;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
EP3853740A2 (en) | 2021-07-28 |
US10893005B2 (en) | 2021-01-12 |
WO2020060710A3 (en) | 2020-07-23 |
WO2020060710A2 (en) | 2020-03-26 |
KR20210057159A (ko) | 2021-05-20 |
CN112703491A (zh) | 2021-04-23 |
US20200092230A1 (en) | 2020-03-19 |
JP7399952B2 (ja) | 2023-12-18 |
JP2022500772A (ja) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112703491B (zh) | 片上网络(noc)的部分重新配置 | |
JP7137430B2 (ja) | データ記憶装置及びブリッジ装置 | |
US20190042329A1 (en) | System with programmable multi-context accelerator circuitry | |
EP3611625B1 (en) | Inter-die communication of programmable logic devices | |
CN112534418A (zh) | 通过固定pcie物理传输网络的逻辑传输 | |
CN112005211A (zh) | 用于异构片上系统的软件定义多域创建和隔离 | |
US10615800B1 (en) | Method and apparatus for implementing configurable streaming networks | |
US9584130B1 (en) | Partial reconfiguration control interface for integrated circuits | |
US9934175B2 (en) | Direct memory access for programmable logic device configuration | |
US10977051B1 (en) | Dynamic base address register (BAR) reconfiguration using a peripheral component interconnect express (PCIe) extended configuration space | |
EP3975428A2 (en) | Logic fabric based on microsector infrastructure with data register having scan registers | |
WO2018080735A2 (en) | Method, apparatus and system for automatically performing end-to-end channel mapping for an interconnect | |
US7991909B1 (en) | Method and apparatus for communication between a processor and processing elements in an integrated circuit | |
CN117480498A (zh) | 在运行时间为裸金属服务器动态提供PCIe器件 | |
US11901896B2 (en) | Soft network-on-chip overlay through a partial reconfiguration region | |
JP2022054412A (ja) | マイクロセクタインフラストラクチャに基づくロジックファブリック | |
US12001374B2 (en) | System and method for providing in-storage acceleration (ISA) in data storage devices | |
Van der Bok et al. | Dynamic FPGA reconfigurations with run-time region delimitation | |
Kizheppatt | Design automation for partially reconfigurable adaptive systems | |
Corbetta | A Flexible Tile-based Communication Infrastructure for Partial Reconfigurable Architectures |
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 |