CN117235000A - 用于高带宽存储器的可缩放芯片上网络 - Google Patents
用于高带宽存储器的可缩放芯片上网络 Download PDFInfo
- Publication number
- CN117235000A CN117235000A CN202310975716.2A CN202310975716A CN117235000A CN 117235000 A CN117235000 A CN 117235000A CN 202310975716 A CN202310975716 A CN 202310975716A CN 117235000 A CN117235000 A CN 117235000A
- Authority
- CN
- China
- Prior art keywords
- noc
- data
- router
- memory controller
- memory
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 121
- 239000004744 fabric Substances 0.000 claims description 15
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 9
- 239000000872 buffer Substances 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Logic Circuits (AREA)
Abstract
本文描述了用于集成电路的存储器控制器,该存储器控制器实现芯片上网络(NoC)来提供对存储器的访问,以将集成电路的处理核耦合到存储器装置。该NoC可专用于服务存储器控制器,并且可包括一个或多个路由器以促进对存储器控制器的访问的管理。
Description
相关申请的交叉引用
本申请要求来自序列号为62/722,741的美国临时申请的优先权以及其益处,该美国临时申请标题为“用于高带宽存储器的高效率且可缩放的芯片上网络拓扑以及应用(AnEfficient And Scalable Network-On-Chip Topology For High-Bandwidth Memory,AndApplications)”,提交于2018年8月24日,出于所有目的通过引用将其整体地结合于本文中。
背景技术
本公开涉及数字电路,并且具体来说,涉及数字电子装置中的数据路由电路。
本部分旨在向读者介绍可能与本公开的各个方面相关的技术的各个方面,本公开的所述各个方面在下面描述和/或要求保护。相信该讨论将有助于向读者提供背景信息以促进本公开的各个方面的更好的理解。因此,应理解,这些陈述要从这个角度来阅读,而不是作为对现有技术的承认。
可编程逻辑装置是一类集成电路,该类集成电路可被编程以执行各种各样的操作。可编程逻辑装置可包括可编程逻辑元件,所述可编程逻辑元件能够被配置成执行定制操作或被配置成实现一个或多个数据处理电路。在可编程逻辑装置中被编程的数据处理电路可经由接口彼此交换数据以及与电路外(off-circuit)装置交换数据。为此,可编程逻辑装置可包括路由资源(例如,专用互连)以将不同的数据处理电路连接到外部接口(例如,存储器控制器、收发器)。作为示例,某些装置可以以系统级封装(SiP)形式配置,其中诸如现场可编程门阵列(FPGA)之类的可编程装置使用高带宽接口耦合到诸如高带宽存储器(HBM)之类的存储器。FPGA可实现可经由路由资源访问HBM的多个数据处理电路。随着数据量、处理速度以及装置中的功能块的数目的增加,路由资源可能变得不足以提供所请求的访问,并且在某些情况下,可能变成可能降低电子装置的操作容量的瓶颈。
附图说明
在阅读以下详细描述之后并且在参考附图之后,可更好地理解本公开的各个方面,附图中:
图1是根据实施例的利用电路设计来编程的可编程逻辑装置的框图;
图2是根据实施例的可使用可编程逻辑装置来快速响应于数据处理请求的数据处理系统的框图;
图3是根据实施例的包括系统级封装(SiP)的电子装置的框图,该系统级封装(SiP)包括耦合到存储器装置的可编程逻辑装置;
图4是根据实施例的具有带有专用芯片上网络(NoC)的存储器接口的可编程逻辑装置的示图,所述存储器接口用于将数据路由至存储器控制电路和从存储器控制电路路由数据,并且所述存储器接口连接到可编程逻辑装置NoC;
图5是根据实施例的使用带有专用NoC的存储器接口来与存储器装置交换数据的方法的流程图示图;
图6是根据实施例的具有专用NoC的存储器接口的框图;
图7是根据实施例的可由存储器接口的专用NoC使用的路由器的示图;
图8是根据实施例的可用于带有专用NoC的存储器接口的桥电路的示图;
图9是根据实施例的可用于支持用于存储器控制的虚拟通道的NoC路由器的逻辑示图;
图10是根据实施例的示出通过存储器接口中的专用NoC的路由器的可能数据路径的逻辑示图;
图11是根据实施例的带有配置成提供对多个核的访问的专用NoC的存储器接口的示图;
图12是根据实施例的带有专用NoC的存储器接口的示图,所述专用NoC配置成通过采用缓冲器旁路提供宽的输入/输出(I/O)带宽;以及
图13是根据实施例的用于将NoC路由器配置成执行缓冲器旁路的方法的流程图。
具体实施方式
以下将描述一个或多个特定实施例。试图提供这些实施例的简明描述,并未在说明书中描述实际实现的所有特征。可理解,在任何这种实际实现的开发中,如在任何工程或设计项目中那样,必须做出大量特定于实现的决策以实现开发者的特定目标,诸如遵从与系统相关的和与商业相关的约束,这可能因实施而异。此外,可理解,这样的开发努力可能是复杂且耗时的,但是对于具有本公开益处的本领域技术人员来说,将只不过是常规的设计、制造和制作任务。
当介绍本公开的各种实施例的元素时,冠词“一”、“一个”和“该”旨在表示存在一个或多个元素。术语“包含”、“包括”和“具有”旨在是包含性的,并且意味着可能存在除所列出的元素之外的额外元素。此外,应理解,对本公开的“一个实施例”或“实施例”的引用不旨在被解释为排除也结合了所叙述的特征的额外实施例的存在。此外,短语A“基于”B旨在表示A至少部分地基于B。此外,除非另有明确陈述,否则术语“或”旨在是包括性的(例如,逻辑或(OR))而不是排他性的(例如,逻辑异或(XOR))。换句话说,短语A“或”B旨在表示A、B、或A和B两者。
可编程逻辑装置的高度灵活性质使它们非常适于加速许多计算任务。可编程逻辑装置越来越多地被用作机器学习、视频处理、语音识别、图像识别以及许多其它高度专业化的任务的加速器,具体来说是那些在处理器上运行的软件中会太慢或效率低的高度专业化的任务。随着可编程逻辑装置的大小和复杂性的增加,存在由可编程逻辑装置内实现的功能块(例如,加速器、处理器、协处理器、数字信号处理器)处理的数据量和数目的增加。由于核之间和/或核与外部装置之间交换的数据量也增加,消耗了可编程装置的大量的互连资源。此外,在异构系统(例如,带有具有不同的操作频率和/或带宽的多个处理单元或核的系统),要求对存储器进行访问的核可接收预分配的量的存储器,该预分配的量可以是固定的。在操作期间,一些核可要求比已预分配给它们的存储器空间更多的存储器空间,而其它核由于较低的工作负载而可能未充分利用存储器空间。管理这种分配可使由存储器控制器执行的任务变得更加复杂。
为了防止通过可编程装置的核访问外部装置时的瓶颈,可使用高级数据路由拓扑。本公开描述了诸如芯片上网络(NoC)拓扑之类的基于路由器拓扑的使用,以促进与诸如存储器接口之类的外部接口的连接。可编程逻辑装置可具有NoC,该NoC将可编程装置的多个数据处理核连接到存储器接口。此外,外部接口(例如,存储器接口)可包括连接到FPGANoC的专用NoC,以允许使用数据分组对接口进行访问。专用NoC还可允许用于数据分组的灵活的路由,以便减少或防止由可编程装置的多个数据处理核同时对接口进行访问的数据拥塞。本文描述的接口控制器可配置成通过采用桥而允许可编程逻辑装置中的核与接口之间的直接通信,和/或可配置成旁路模式以允许对存储器控制器进行直接访问。存储器接口的NoC还可包括虚拟通道,以允许通过接口对某些数据分组进行优先化,以提供服务质量(QoS)功能性,并且对多个通道进行分组,以允许数据处理核与接口之间的宽的接口连接。本文描述的系统可用于例如系统级封装(SiP)装置,其中,在单个封装中处理器和存储器装置可与现场可编程门阵列(FPGA)装置耦合,由高带宽接口(例如,2.5D接口、互连桥、微凸起(microbump)接口)进行耦合。
通过介绍,图1示出了根据本文提出的实施例的系统10的框图,该系统10可采用可编程逻辑装置12,该可编程逻辑装置12可被配置成实现一个或多个数据处理核。使用系统10,设计者可实现逻辑电路以在诸如可重新配置的可编程逻辑装置12之类的集成电路上实现数据处理核,该可重新配置的可编程逻辑装置12例如可以是现场可编程门阵列(FPGA)。设计者可使用诸如由加利福尼亚州的圣克拉拉的英特尔公司提供的 的版本之类的设计软件14来实现要编程到可编程逻辑装置12上的电路设计。设计软件14可使用编译器16来生成由比特流18定义的低等级电路设计,该比特流18有时被称为程序目标文件和/或配置程序,其对可编程逻辑装置12进行编程。因此,编译器16可向可编程逻辑装置12提供表示电路设计的机器可读指令。例如,可编程逻辑装置12可接收一个或多个配置程序(比特流)18,其描述应存储在可编程逻辑装置12中的硬件实现。
配置程序(例如,比特流)18可被编程到可编程逻辑装置12中作为配置程序20。在一些情况下,配置程序20可表示一个或多个加速器功能,用来执行机器学习、视频处理、语音识别、图像识别或其它高度专业化的任务。配置程序20还可包括数据传递和/或路由指令以将一个或多个数据处理核彼此耦合和/或将一个或多个数据处理核耦合到外部接口,所述外部接口例如可以是处理器、存储器(例如,高带宽存储器(HBM)、诸如随机存取存储器(RAM)装置之类的易失性存储器、硬盘、固态盘装置)、或串行接口(通用串行总线(USB)、外设组件互连高速(PCIe))。
可编程逻辑装置12可以是数据处理系统,或者可以是数据处理系统的组件。例如,可编程逻辑装置12可以是图2中所示的数据处理系统50的组件。数据处理系统50可包括一个或多个主处理器52、存储器和/或存储电路54、以及网络接口56。数据处理系统50可包括更多或更少的组件(例如,电子显示器、用户接口结构、专用集成电路(ASIC))。主处理器52可包括一个或多个合适的处理器,诸如处理器或精简指令处理器(例如精简指令集计算机(RISC)、高级RISC机器(ARM)处理器),所述处理器可管理用于数据处理系统50的数据处理请求(例如,用来执行机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航等)。存储器和/或存储电路54可包括随机存取存储器(RAM)、只读存储器(ROM)、一个或多个硬盘驱动器、闪速存储器等。存储器和/或存储电路54可被认为是可编程逻辑装置12的外部存储器,并且可保持要由数据处理系统50处理的数据。在一些情况下,存储器和/或存储电路54还可存储配置程序(比特流),以用于对可编程逻辑装置12进行编程。网络接口56可允许数据处理系统50与其它电子装置进行通信。数据处理系统50中的装置可包括若干不同的封装,或者可包含在单个封装衬底(例如,系统级封装(SiP))上的单个封装内。
在一个示例中,数据处理系统50可以是处理各种不同请求的数据中心的一部分。例如,数据处理系统可经由网络接口56接收数据处理请求,以执行机器学习、视频处理、语音识别、图像识别、数据压缩、数据库搜索排名、生物信息学、网络安全模式识别、空间导航、或某个其它专业化的任务。主处理器52可促使可编程逻辑装置12的可编程逻辑组构被编程为与所请求的任务相关的具体加速器。例如,主处理器52可指示存储在存储电路54上或高速缓存在可编程逻辑装置12的存储器中的配置数据(比特流)被编程到可编程逻辑装置12的可编程逻辑组构中。配置数据(比特流)可表示实现与所请求的任务有关的加速器功能的多个数据处理电路。然后,可编程逻辑装置12中的处理核可从接口(例如,存储器接口、网络接口)和/或从处理器中检索数据以执行所请求的任务。如本文所述,接口中的专用NoC的存在可允许所请求的任务的快速执行。实际上,在一个示例中,加速器核可通过与耦合到可编程逻辑装置12的高带宽存储器(HBM)装置(例如,存储电路54)高速交换并处理大量数据来帮助小于几毫秒(例如,微秒数量级)的语音识别任务。
在一些系统中,可编程逻辑装置12可经由高带宽接口连接到存储器装置和/或处理器装置。图3示出可包括可编程逻辑装置12的芯片中系统(SiP)80的示意图。可编程逻辑装置12可连接到处理器52以及连接到存储电路54,该存储电路54可以是高带宽存储器(HBM)82。经由高带宽桥84,可进行可编程逻辑装置12与存储器之间的连接。高带宽桥84可以是2.5D桥、3D桥、微凸起桥、互连桥或任何其它多通道互连。可编程逻辑装置12可通过桥86被连接到处理器52。在一些实施例中,桥86可以是与高带宽桥84相似的高带宽桥,诸如在受益于处理器52和可编程逻辑装置12之间的高数据速率传递的系统中。在一些实施例中,桥86可以是常规接口(例如,串行接口、1D互连)。
图4示出了数据处理系统50的示图,该数据处理系统50可包括诸如图3中的SiP之类的SiP 80。SiP 80可包括经由高带宽桥84连接到HBM 82的可编程逻辑装置12。SiP 80还可经由桥86被连接到外部处理器52。通过桥86的连接可包括收发器102以允许串行连接。如上所述,可编程逻辑装置12可实现一个或多个数据处理核104A-K。特别地,图4的示图示出了数字信号处理(DSP)核104A、104E、104J、104G,加速器核104B、104I和104K,以及图像处理核104C、104D、104F和104H。该图示仅是描述性的,并且可采用其它数目和/或类型的描述。
为了交换数据,可以使用可编程逻辑装置12的直接互连106来直接连接数据处理核104A-K。如上所述,通过直接互连106的路由可被编程在可编程逻辑装置12的配置中(例如,图1的比特流18),如上所述。数据处理核104A-K也可使用可编程逻辑装置的芯片上网络(NoC)108来交换数据。为此,核可通过NoC互连110与NoC 108的NoC路由器112交换数据分组。经由NoC 108发送的数据分组可包括用于适合路由的目的地地址信息和/或优先级信息,以在数据传输中提供服务质量(QoS)。NoC 108的NoC路由器112可检查目的地地址信息和/或报头,并且将数据包路由至适合的路由器或处理器核。处理器52还可通过耦合到桥86的NoC互连114来访问NoC 108。NoC 108还可经由存储器控制器116被耦合到HBM 82,如所示出的那样。通过可编程逻辑装置12中的路由资源的有效率的使用,NoC 108的存在可允许在数据处理核104A-K、HBM 82以及处理器52之间的数据的灵活交换。
存储器控制器116可包括专用存储器控制器NoC 118。存储器控制器NoC 118可经由路由器到路由器NoC链路120连接到NOC 108。NoC链路120可允许NoC路由器112与存储器控制器NoC 118的存储器控制器路由器122之间的数据分组的传输。存储器控制器NoC 118还可经由直接存储器控制器互连124由数据处理核104A-K直接访问,如所示出的那样。在一些实施例中,数据处理核104A-K可经由直接存储器控制器互连124提供采用NoC协议的数据分组。在一些实施例中,数据处理核104A-K可采用与存储器控制器兼容的协议。在这样的实施例中,可使用桥电路在NoC协议和存储器协议之间进行转译,如下所述。
高带宽桥84可包括多个物理数据链路125。存储器控制器NoC 118的路由器122可经由存储器控制器116的存储器通道电路126访问数据链路125。在一些实施例中,存储器通道电路126可包括强化电路(hardened circuitry)。存储器通道电路126可包括多个存储器通道接口127,其管理对数据链路125的访问。每个存储器通道接口127可与HBM 82的存储器通道130A-H连接。桥电路可用于将来自存储器控制器路由器122的数据分组转换到由存储器通道接口127采用的存储器协议(例如存储器接口协议)。
图5中的流程图150示出了可由数据处理核(例如,图4中的数据处理核104A-K)使用的方法,该方法使用可编程逻辑装置NoC(例如,NoC 108)和存储器控制器NoC 118来访问存储器装置(例如,图4的HBM 82)。在过程框152中,针对存储器装置的数据由数据处理核发送到可编程逻辑装置NoC的路由器。数据可采用NoC协议打包,并且可包括具有地址和/或优先级信息的报头。在过程框154中,可编程逻辑装置NoC使用报头信息,将数据通过其路由器输送到连接到存储器控制器NoC的路由器。在过程框156中,将数据从可编程逻辑装置NoC传递到存储器控制器NoC。这样的处理可通过诸如在图4中所示出的NoC链路120之类的路由器到路由器链路来进行。
在过程框158中,数据从存储器控制器NoC被发送到硬化存储器控制器,并且随后经由多个通道中的一个通道被发送到存储器。在该过程中,采用NoC格式的数据分组可被转换成由存储器控制器采用的可与存储器装置兼容的格式。流程图150示出了使用具有专用NoC的存储器控制器与存储器交互的方法。可通过适应流程图150来获得检索从存储器到数据处理核的数据的方法以及在存储器与附接到可编程逻辑装置(例如处理器)的其它装置之间交换数据的方法。
图6中的示图180示出了数据交换的灵活性,所述数据交换可使用存储器控制器NoC 118在可编程逻辑装置12与HBM 82之间进行。可使用NoC协议通过NoC 108来访问存储器控制器NoC 118,或使用与存储器接口兼容的互连协议(例如,存储器接口协议)由数据处理核104A-P来直接访问存储器控制器NoC 118。在示图180中,存储器控制器NoC 118包括8个路由器122。每个存储器控制器路由器122可以通过连接182来连接到存储器通道接口127。特别地,每个路由器122被连接到两个存储器通道接口127,并且每个通道接口127经由数据链路125被连接到存储器通道130A-H的端口。路由器122还可通过形成存储器控制器NoC 118的连接184彼此连接。连接184可允许可减轻可编程逻辑装置NoC 108中的拥塞的备选路由。
每个存储器控制器路由器122还可被连接到可编程逻辑装置NoC 108的NoC路由器112。在示图180中,每个路由器122被连接到单个NoC路由器112。该连接可被用于经由可编程逻辑装置NoC 108将数据分组从可编程逻辑装置12输送到HBM 82,如以上所讨论的那样。路由器122还可通过专用互连188直接被连接到数据处理核104A-P,如所示出的那样。在示图中,每个路由器122经由两个专用互连188被耦合到两个处理核。数据处理核104A-P可配置成使用存储器接口协议来访问路由器122,并且如下所述,桥电路可用于允许路由器处理来自NoC路由器112的数据分组以及来自数据处理核104A-P的存储器访问请求。
更具体来说,存储器控制器NoC 118可有效地作为可编程逻辑装置12的可编程组构与高带宽存储器82之间的交叉开关来操作。在所示出的示例中,存储器控制器NoC 118可作为16×16交叉开关来操作,该16×16交叉开关可允许数据处理核104A-P中的任何数据处理核通过NoC路由器122的16个输入中的任何输入来访问16个存储器通道中的任何存储器通道,而独立于数据处理核的位置。应理解,通过调整存储器通道电路126中的存储器通道127的数目和路由器122的数目,可获得用于存储器控制器NoC 118的其它交叉开关尺寸(例如,8×8、32×32、64×64),以支持存储器的其它版本(例如,可具有32个伪通道的HBM3)。
图7中的示图200示出了存储器控制器路由器122。如以上所讨论的那样,存储器控制器路由器122可从可编程逻辑管芯NoC 108、从存储器控制器NoC 118的相邻存储器控制器路由器122、或从通过数据处理核104的直接访问中接收数据分组。此外,存储器控制器路由器122可与存储器通道接口127交互。由于NoC路由器可利用采用与存储器接口的协议不同的NoC协议的数据分组,所以可使用桥电路以在协议之间进行转译。为此,存储器控制器路由器122可被连接到两个存储器侧桥202和204以及两个装置侧桥206和208。存储器侧桥202和204可用于将存储器控制器路由器122连接到存储器通道接口127,并且装置侧桥206和208可用于通过可编程逻辑装置12的组构中的数据处理核104向存储器控制器路由器122提供直接访问。所示出的桥202、204、206和208可与互连协议兼容,该互连协议(例如,存储器接口协议)与存储器接口兼容,该互连协议例如可以是高级可扩展接口4(AXI4)协议。应注意,桥可遵从其它协议,所述其它协议包括高级微控制器总线架构(AMBA)协议(其可包括AXI3或其它AXI协议)、诸如AXI-精简版协议之类的精简版版本、和诸如AXI一致性扩展(ACE)或ACE精简版协议之类的一致性拓展、以及Avalon(阿瓦隆)接口协议。该操作在图8中进一步详述。
存储器控制器路由器122可具有多个端口。所示出的存储器控制器路由器122可具有8个端口210、212、214、216、218、220、222和224。端口可通过交叉开关226彼此连接。端口通常可以以NoC协议格式接收和/或传送数据分组。例如,端口214和222可用于连接到存储器控制器NoC 118的相邻NoC路由器122,并且端口218可用于连接到可编程逻辑管芯NoC108的NoC路由器112。端口216和220可用于分别通过桥206和208提供由数据处理核进行的直接数据访问。端口212和224可用于经由存储器通道接口127和桥202以及204而与HBM 82交换数据,如所示出的那样。桥202、204、206和208可提供采用NoC协议的数据分组,以允许交叉开关226可无缝地管理数据路由,因为所有输入都是“分组化的”。作为结果,存储器控制器路由器122可使用交叉开关226来管理从数据处理核104到存储器通道接口127的访问,所述数据处理核104可直接地或经由NoC 108来访问存储器,以提供高吞吐量访问并且防止死锁,如在图9中进一步详述的那样。
当提供对数据处理核104的直接访问时,桥可作为协调操作的主从对(master-slave pair)进行操作。例如,桥202可从属于桥208,并且桥204可从属于桥206。该协调可允许通过路由器122采用存储器接口协议的透明数据输送。此外,存储器控制器路由器122可具有两个旁路路由228A和228B,其可分别将端口212直接连接到端口216,以及将端口220直接连接到端口224。旁路路由228A和228B可用于数据处理核104受益于对存储器控制器116和/或HBM 82的直接访问的情形中。这可用于例如在数据处理核104和HBM 82之间提供确定性时延,和/或通过对多个存储器通道进行分组,在数据处理核104和HBM 82之间提供高带宽连接。
图8示出了诸如装置侧桥206和208之类的装置侧桥230的示图。装置侧桥可采用诸如AXI4协议之类的存储器接口协议来从可编程组构接收数据。装置侧桥230可包括时钟交叉电路232,该时钟交叉电路232可将数据速率频率调整至存储器控制器NoC 118的时钟域。桥230还可包括协议特定电路(例如,AXI4转换器)。在示例中,协议特定电路可包括读取地址块234、数据读取块236、写入地址块238、数据写入块240以及写入响应块242。诸如数据读取块236和数据写入块240之类的数据缓冲器可包括宽度转换器244和246,以提供数据速率匹配并且防止装置侧桥230中的阻塞。协议特定电路通过虚拟桥通道248可被转换成与存储器控制器路由器122兼容的分组格式。使用具有多个FIFO的虚拟桥通道248可减轻队头(HOL)阻塞。
图9提供了当利用交叉开关226时,通过存储器控制器路由器122的端口的数据流的逻辑示图。数据可通过端口210、212、214、216、218、220和222中的任何端口进入,并且由交叉开关226路由至端口210、212、214、216、218、220和222中的任何端口。为此,交叉开关226可以是8×8交叉开关。每个端口可包括时钟交叉电路252。时钟交叉电路252可促进到存储器控制器路由器122的时钟域的数据速率的转换。例如,可从NoC 108的NoC路由器112接收数据,或从以与存储器控制器路由器不同的数据速率来操作的相邻存储器控制器路由器122接收数据。因此,时钟交叉电路252可允许路由器(例如,NoC路由器112、存储器控制器路由器122)以不同的频率运行并且无缝地彼此连接。
来自每个端口的数据也可由虚拟通道电路254管理,该虚拟通道电路254可包括专用FIFO缓冲器以帮助增加吞吐量并且减轻死锁的发生。通过检查每个输入数据分组和/或数据分组报头并且将其指配给适合的虚拟通道,虚拟通道分配器255可用于管理虚拟通道电路254。为了管理交叉开关226,可使用开关分配器256和/或路由计算块258。开关分配器256可通过交叉开关226仲裁输入到输出路由请求以指配路由资源。路由计算块258可检查数据分组报头并且识别适合于该数据分组的物理输出端口。因此,路由计算块258可生成针对开关分配器256的路由的请求,并且通过存储器控制器路由器122提供数据分组的优化路由。
图10中的示图280示出了存储器控制器NoC 118可如何配置成通过诸如数据处理核104A和104B之类的可编程逻辑装置12的数据处理核提供对存储器(例如,HBM 82)的直接访问。在该示图中,数据分组可以采用与存储器控制器兼容的格式直接地从数据处理核104A和104B发送到存储器控制器NoC 118的路由器122。数据最初被发送到速率匹配的FIFO282,其可将数据处理核104A和104B的操作频率与存储器控制器116的操作数据频率解耦。速率匹配的FIFO 282可独立配置,并且作为结果,数据处理核104A和104B可以以不同的数据频率和/或数据频率速率来操作。主半速率适配器284和从适配器286可协调使用以将存储器控制器116的数据速率(例如,HBM数据速率)调整至半数据速率时钟,这可适合于桥202、204、206以及208,和/或存储器控制器路由器122中的操作。
来自存储器控制器路由器122的数据在存储器侧桥202或204中可被转译成存储器接口协议,并且被提供给从适配器286。数据可从从适配器286发送到存储器通道接口127。存储器通道接口127可包括写入数据缓冲器288和读取数据缓冲器296,其可管理存储器控制器NoC 118与数据链路125之间的数据流。存储器控制衬垫(gasket)292可用于帮助数据流的控制。存储器控制衬垫292可生成和/或接收兼容HBM的命令和数据,以在数据链路125上执行读取和写入操作。
图11和图12中的示图示出了利用专用存储器控制器NoC 118的两个使用模型。图11中的示图300示出了多个数据处理核可使用存储器控制器122透明地访问HBM 82的同一端口302的系统。这种应用在内核或计算单元可访问共享恒定存储器的平台中是可用的,所述平台例如可以是OpenCL平台。内核程序和系数可存储于公共存储器通道中,并且存储器控制器NoC 118的存在可允许多个不同的数据处理核104中的多个内核访问公共通道(例如,存储器通道130A)。
如所示出的那样,每个数据处理核104A-P可将数据直接发送到相应的相邻存储器控制器路由器122。如上所述,当数据被发送到相邻路由器122时,所述数据可从存储器接口协议被转换成兼容NoC的协议。数据分组可具有与例如路由器304相关联的目的地地址,该路由器304与存储器通道控制器306邻近并且该存储器通道控制器306耦合到端口302。然后,每个相邻路由器122可经由存储器控制器NoC 118将数据传送给路由器304。当路由器304从相邻路由器接收数据分组时,可基于报头信息对存储器请求进行优先化,并且用于存储器访问的请求可被发出给存储器通道控制器306。作为结果,所有的数据处理核104A-P可访问存储器通道130A的端口302。
图12中的示图320示出了数据处理核可被配置成通过宽存储器接口访问HBM 82的系统。在示例中,数据处理核324A、324B和324C可分别地被分配给存储器通道群组326A、326B和326C。数据处理核324A可访问4个数据链路125,每个数据链路125具有64个I/O连接,所述64个I/O连接形成具有256个I/O线的宽度的接口。数据处理核324B可访问8个数据链路125,每个数据链路125具有64个I/O连接,所述64个I/O连接形成具有512个I/O线的宽度的接口。数据处理核324C可访问8个数据链路125,每个数据链路125具有64个I/O连接,所述64个I/O连接形成具有256个I/O线的宽度的接口。在一些实施例中,分组的报头中的优先级信息可用于提供来自同一核的所有分组之间的同步。在路由器122经由宽的接口正在提供从数据处理核324A、324B或324C以及到其它数据处理电路(例如,图4的数据处理核104A),或者经由NoC 108对处理器(例如处理器52)的访问的情况下,这可能是有用的。在这样的情况下,存储器控制器路由器122中的虚拟通道可用于以对数据处理电路和/或处理器透明的方式来对来自宽的接口和/或NoC 108的请求进行计时。
为了进一步促进宽的接口的绑定,存储器控制器路由器122可以采用旁路模式配置,如上所述,以提供确定性时延。用于启用旁路模式的方法340在图13中被示出。在过程框342中,旁路模式可在存储器控制器路由器122中实现,如上所述。旁路模式可绑定路由器的输入和输出端口,如图7所示出的那样。在一些实施例中,启用旁路模式可阻塞交叉开关226和/或促使其它虚拟通道(例如,虚拟通道电路254)中的缓冲,以在旁路模式传输期间保持数据。例如,交叉开关226可在旁路模式期间为数据传递指配更高的优先级。在过程框344中,数据处理核可通过直接寻址与存储器(例如,HBM 82)并且以确定性时延交互,如上所述。在数据交换结束时,路由器122可退出旁路模式并且恢复常规路由。
本公开还提出了以下技术方案。
技术方案1.一种可编程逻辑装置,包括:
可编程组构;以及
存储器控制器,所述存储器控制器包括路由器,所述路由器可配置成将所述可编程组构耦合到存储器装置。
技术方案2.如技术方案1所述的可编程逻辑装置,其中所述路由器包括端口的集合和可配置成链接所述端口的集合中的端口的交叉开关电路。
技术方案3.如技术方案2所述的可编程逻辑装置,其中所述路由器包括将所述端口的集合中的第一端口耦合到所述端口的集合中的第二端口的旁路模式。
技术方案4.如技术方案3所述的可编程逻辑装置,其中所述第一端口可配置成与所述可编程组构交换数据,并且所述第二端口可配置成与所述存储器装置交换数据。
技术方案5.如技术方案1所述的可编程逻辑装置,其中所述存储器控制器包括芯片上网络(NoC),所述芯片上网络包括所述路由器。
技术方案6.如技术方案1所述的可编程逻辑装置,其中所述可编程组构包括芯片上网络(NoC),所述芯片上网络包括耦合到所述存储器控制器的所述路由器的可编程组构路由器。
技术方案7.如技术方案6所述的可编程逻辑装置,其中所述可编程组构路由器和所述存储器控制器的所述路由器可配置成使用NoC协议。
技术方案8.如技术方案6所述的可编程逻辑装置,其中所述存储器控制器的所述路由器通过所述路由器的第一端口耦合到所述可编程组构路由器,并且所述存储器控制器的所述路由器通过所述路由器的第二端口和桥耦合到所述可编程组构的数据处理核,其中所述桥可配置成在NoC协议和存储器接口协议之间转换数据。
技术方案9.如技术方案8所述的可编程逻辑装置,其中所述存储器接口协议包括高级可扩展接口4(AXI4)协议、AXI3协议、AXI-精简版协议、AXI一致性拓展(ACE)协议或Avalon接口协议。
技术方案10.一种电子装置,包括:
存储器装置;
现场可编程门阵列(FPGA),所述现场可编程门阵列使用高带宽桥耦合到所述存储器装置,其中所述FPGA包括:
多个数据处理核;以及
存储器控制器,所述存储器控制器耦合到所述高带宽桥,其中所述存储器控制器包括存储器控制器芯片上网络(NoC),所述存储器控制器芯片上网络包括多个存储器控制器路由器。
技术方案11.如技术方案10所述的电子装置,其中所述FPGA包括耦合到所述存储器控制器NoC的FPGA NoC。
技术方案12.如技术方案11所述的电子装置,所述电子装置包括:经由第二桥耦合到所述FPGA的处理器,其中所述处理器可配置成通过所述FPGA NoC访问所述存储器控制器NoC。
技术方案13.如技术方案11所述的电子装置,其中第一数据处理核可配置成通过所述FPGA NoC来访问所述存储器控制器。
技术方案14.如技术方案10所述的电子装置,其中第一数据处理核可配置成通过直接互连,访问所述存储器控制器,所述直接互连耦合到所述多个存储器控制器路由器中的第一存储器控制器路由器。
技术方案15.如技术方案14所述的电子装置,其中在通过所述第一存储器控制器路由器在所述第一数据处理核与所述存储器控制器之间传输数据期间,启用所述第一存储器控制器路由器的旁路模式。
技术方案16.如技术方案10所述的电子装置,其中所述存储器控制器包括:
第一时钟交叉电路,所述第一时钟交叉电路可配置成将所述多个存储器控制器路由器中的第一存储器控制器路由器耦合到所述多个数据处理核中的第一数据处理核,其中所述第一数据处理核在第一时钟域中操作,并且所述第一存储器控制器路由器在存储器控制器时钟域中操作;以及
第二时钟交叉电路,所述第二时钟交叉电路可配置成将所述多个存储器控制器路由器中的所述第一存储器控制器路由器耦合到所述多个数据处理核中的第二数据处理核,其中所述第二数据处理核在不同于所述第一时钟域的第二时钟域中操作。
技术方案17.如技术方案16所述的电子装置,其中所述存储器控制器包括:
第三时钟交叉电路,所述第三时钟交叉电路可配置成通过第一存储器通道接口将所述第一存储器控制器路由器耦合到所述存储器装置,所述第一存储器通道接口在存储器时钟域中操作;以及
第四时钟交叉电路,所述第四时钟交叉电路可配置成通过第二存储器通道接口将所述第一存储器控制器路由器耦合到所述存储器装置,所述第二存储器通道接口在所述存储器时钟域中操作。
技术方案18.如技术方案10所述的电子装置,其中所述存储器控制器包括在所述存储器装置的存储器通道与所述FPGA之间放置的16×16交叉开关或32×32交叉开关。
技术方案19.一种将数据从可编程逻辑装置(PLD)的数据处理核传送到经由高带宽桥耦合到所述PLD的存储器装置的方法,所述方法包括:
经由PLD芯片上网络通过以下方式从第一处理核接收第一数据分组:
将所述第一数据分组发送到所述PLD的PLD芯片上网络(NoC)的NoC路由器,其中所述第一数据分组包括与所述存储器装置的存储器通道相关联的地址;以及
经由所述PLD NoC,将所述第一数据分组传送到存储器控制器的存储器控制器NoC的存储器控制器路由器;以及
基于所述第一数据分组生成到耦合到所述存储器控制器路由器的存储器通道接口的存储器命令或数据。
技术方案20.如技术方案19所述的方法,其中所述地址包括所述存储器控制器路由器的地址。
技术方案21.如技术方案19所述的方法,在不借助所述PLD NoC的情况下,接收从第二处理核到所述存储器控制器的第二数据分组。
技术方案22.如技术方案21所述的方法,所述方法包括:基于所述第一数据分组的第一报头和所述第二数据分组的第二报头,选择所述第一数据分组或所述第二数据分组。
技术方案23.如技术方案21所述的方法,所述方法包括:启用所述存储器控制器路由器中的旁路模式以传送所述第二数据分组。
本公开的方法和装置可结合到任何合适的电路中。例如,所述方法和装置可以结合到诸如微处理器或其它集成电路之类的各种类型的装置中。示例性集成电路包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑装置(EPLD)、电可擦除可编程逻辑装置(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC)以及微处理器,仅提到几个示例。
此外,尽管已经以特定顺序描述了方法操作,但应理解,可在所描述的操作之间执行其它操作,可调整所描述的操作,使得它们在稍微不同的时间进行,或者所描述的操作可以分布在允许以与处理相关联的各种间隔进行处理操作的系统中,只要如期望的那样执行叠加操作的处理即可。
本公开中阐述的实施例可容许各种修改和备选形式,通过附图中的示例已经示出了特定实施例,并且已经在本文中详细描述了特定实施例。然而,可理解,本公开不旨在限制所公开的具体形式。本公开将覆盖落入如由以下所附权利要求定义的本公开的精神和范围内的所有修改、等同物以及备选物。此外,本文提出的并且要求保护的技术被引用并且被应用于实际性质的材料对象和具体示例,其明确地改进了本技术领域,并且因此并非是抽象的、无形的或纯理论的。此外,如果本说明书的最后所附的任何权利要求包括指定为“用来执行(或用于执行)某个功能”或“用来执行(或用于执行)某个功能的步骤”的一个或多个元件,其意在这样的元素在35 U.S.C.112(f)下被解释。然而,针对包括以任何其它方式指定的元素的任何权利要求,意在这样的元素不在35 U.S.C.112(f)下被解释。
通过附图中的示例已经示出了特定实施例,并且已经在本文中详细描述了特定实施例,尽管本公开中阐述的实施例可容许各种修改和备选形式。然而,可理解,本公开不旨在限于所公开的具体形式。本公开将要覆盖如由以下所附权利要求所定义的落入本公开的精神和范围内的所有修改、等同物以及备选物。
Claims (34)
1.一种电子装置,包括:
高带宽存储器HBM装置;以及
耦合到所述HBM装置的集成电路装置,
所述集成电路装置包括:
可编程逻辑;
存储器控制器,所述存储器控制器通信地耦合到所述HBM装置并且可配置为从所述HBM装置接收数据;
第一芯片上网络NOC,所述第一NOC耦合到所述存储器控制器并且可配置为从所述存储器控制器接收所述数据;以及
第二NOC,所述第二NOC耦合到所述第一NOC并且可配置为从所述第一NOC接收所述数据并且将所述数据路由到所述可编程逻辑。
2.如权利要求1所述的电子装置,其中,所述第一NOC的第一路由器可配置为将所述数据路由到所述第二NOC的第二路由器。
3.如权利要求2所述的电子装置,其中,所述第一NOC的所述第一路由器包括端口的集合和交叉开关电路模块,所述交叉开关电路模块可配置为链接所述端口的集合中的端口。
4.如权利要求3所述的电子装置,其中,所述第一NOC的所述第一路由器包括可配置成与所述可编程逻辑交换数据的第一端口和可配置成与所述HBM装置交换数据的第二端口。
5.如权利要求1至4中任一项所述的电子装置,其中,所述存储器控制器包括设置在所述可编程逻辑与所述HBM装置的多个存储器通道之间的交叉开关。
6.如权利要求1至4中任一项所述的电子装置,其中,所述集成电路装置包括多个处理核,其中所述多个处理核中的第一数据处理核可配置为通过所述第二NOC访问所述存储器控制器,并且其中所述多个处理核中的第二数据处理核可配置为通过耦合到所述第二NOC的第一路由器的直接互连来访问所述存储器控制器。
7.如权利要求6所述的电子装置,其中,所述第一数据处理核包括数字信号处理(DSP)电路模块、精简指令集计算机RISC处理器核、高级RISC机器(ARM)处理器核或其组合。
8.如权利要求1所述的电子装置,包括存储器接口,所述存储器接口包括虚拟通道,所述虚拟通道可配置为优先化所述数据的第一数据分组。
9.如权利要求8所述的电子装置,其中,所述存储器接口可配置为根据高级可扩展接口4(AXI4)协议、AXB协议、AXI-精简版协议、AXI一致性拓展(ACE)协议、Avalon接口协议或其组合来操作。
10.一种电子装置,包括:
高带宽存储器HBM装置;以及
耦合到所述HBM装置的集成电路装置,
所述集成电路装置包括:
可编程逻辑;
多个处理核;
存储器控制器,所述存储器控制器通信地耦合到所述HBM装置并且被配置为从所述HBM装置接收数据;以及
第一芯片上网络(NOC),所述第一NOC可配置为将所述集成电路装置通信地耦合到所述HBM装置。
11.如权利要求10所述的电子装置,其中,所述集成电路装置包括第二NOC,所述第二NOC耦合到所述可编程逻辑并且可配置为:
通过所述第二NOC的第二路由器从所述第一NOC的第一路由器接收数据;以及
将所述数据传输到所述可编程逻辑或所述多个处理核中的一个或多个处理核。
12.如权利要求11所述的电子装置,其中所述第一NOC包括采用水平配置的第一多个路由器,并且其中所述第二NOC包括采用垂直配置的第二多个路由器。
13.如权利要求10至12中任一项所述的电子装置,其中,所述存储器控制器包括强化电路。
14.如权利要求10至12中任一项所述的电子装置,其中,所述多个处理核包括数字处理器核、精简指令集计算机RISC处理器核、高级RISC机器(ARM)处理器核或其组合。
15.一种电子装置,包括:
高带宽存储器HBM装置;以及
耦合到所述HBM装置的集成电路装置,
所述集成电路装置包括:
可编程逻辑;
多个数据处理核;
存储器控制器,所述存储器控制器通信地耦合到所述HBM装置并且被配置为从所述HBM装置接收数据;
第一芯片上网络NOC,所述第一NOC可配置为将所述集成电路装置通信地耦合到所述HBM装置;以及
第二NOC,所述第二NOC耦合到所述第一NOC并且可配置为从所述第一NOC接收数据分组并且将所述数据分组路由到所述可编程逻辑或者路由到所述多个数据处理核中的一个或多个。
16.如权利要求15所述的电子装置,其中所述多个数据处理核包括数字处理核、精简指令集计算机RISC处理器核、高级RISC机器(ARM)处理器核或其组合。
17.如权利要求15所述的电子装置,其中,所述第二NOC的第一路由器可配置为从所述第一NOC的第二路由器接收所述数据分组,并且基于所述数据分组的目的地地址将所述数据传输到所述第二NOC的第三路由器。
18.如权利要求17所述的电子装置,包括耦合到所述存储器控制器的桥,其中所述桥可配置为在NOC协议和存储器接口协议之间转换所述数据分组,其中,所述存储器接口协议包括高级可扩展接口4(AXI4)协议、AXB协议、AXI-精简版协议、AXI一致性拓展(ACE)协议、Avalon接口协议或其组合。
19.如权利要求17所述的电子装置,其中,所述存储器控制器包括第一时钟交叉电路模块,所述第一时钟交叉电路模块可配置为将所述第一NOC的第一路由器耦合到所述多个数据处理核中的第一数据处理核,其中所述第一数据处理核在第一时钟域中操作,并且所述第一路由器在存储器控制器时钟域中操作。
20.如权利要求19所述的电子装置,其中,所述第一路由器包括端口的集合和交叉开关电路模块,所述交叉开关电路模块可配置为链接所述端口的集合中的端口。
21.一种电子装置,包括:
高带宽存储器HBM装置;以及
耦合到所述HBM装置的集成电路装置,
所述集成电路装置包括:
可编程逻辑;
存储器控制器,所述存储器控制器通信地耦合到所述HBM装置并且可配置为从所述HBM装置接收数据;
第一芯片上网络NOC电路模块,所述第一NOC电路模块耦合到所述存储器控制器并且包括第一多个路由器,其中所述第一NOC电路模块可配置为从所述存储器控制器接收所述数据并且通过所述第一多个路由器水平地路由所述数据;以及
第二NOC电路模块,所述第二NOC电路模块耦合到所述第一NOC电路模块并且包括第二多个路由器,其中所述第二NOC电路模块可配置为从所述第一NOC电路模块接收所述数据并且通过所述第二多个路由器将所述数据垂直地路由到所述可编程逻辑。
22.如权利要求21所述的电子装置,其中,所述第一多个路由器中的第一路由器可配置为将所述数据路由到所述第二多个路由器中的第二路由器。
23.如权利要求21所述的电子装置,其中:所述第一NOC电路模块包括第一路由器,所述第一路由器具有可配置为与所述可编程逻辑交换数据的第一端口和可配置为用于与所述HBM装置交换数据的第二端口。
24.如权利要求21所述的电子装置,包括一个或多个处理器,所述一个或多个处理器耦合到所述第二NOC电路模块并且可配置为与所述第二NOC电路模块交换数据。
25.如权利要求24所述的电子装置,其中,所述一个或多个处理器包括精简指令集计算机RISC处理器或高级RISC机器(ARM)处理器。
26.一种存储器控制器路由器,包括:
第一端口,用于连接到存储器控制器的相邻存储器控制器路由器;
第二端口,用于连接到可编程组构的路由器;
第三端口,用于通过第一桥提供由数据处理核进行的直接数据访问;以及
第四端口,用于经由存储器通道接口和第二桥而与高带宽存储器交换数据。
27.如权利要求26所述的存储器控制器路由器,其中多个端口通过交叉开关彼此连接。
28.如权利要求27所述的存储器控制器路由器,其中所述存储器控制器路由器配置成使用所述交叉开关来管理从所述数据处理核到所述存储器通道接口的访问。
29.如权利要求26所述的存储器控制器路由器,其中多个端口以芯片上网络NoC协议格式接收和/或传送数据分组。
30.如权利要求26所述的存储器控制器路由器,还包括:
旁路路由,所述旁路路由将所述第三端口直接连接到所述第四端口。
31.如权利要求29所述的存储器控制器路由器,其中所述第二桥可配置成在NoC协议和存储器接口协议之间转换数据。
32.如权利要求31所述的存储器控制器路由器,其中所述第一桥采用所述存储器接口协议来从所述可编程组构接收数据;
其中所述第一桥进一步包括:
时钟交叉电路模块,所述时钟交叉电路模块将数据速率频率调整至存储器控制器NoC的时钟域;以及
协议特定电路模块。
33.如权利要求31所述的存储器控制器路由器,其中所述协议特定电路模块包括读取地址块、数据读取块、写入地址块、数据写入块以及写入响应块;
其中,所述数据读取块和所述数据写入块包括宽度转换器,以提供数据速率匹配并且防止所述第一桥中的阻塞;并且
其中,所述协议特定电路模块通过虚拟桥通道转换成与所述存储器控制器路由器兼容的分组格式。
34.如权利要求31或32所述的存储器控制器路由器,其中所述存储器接口协议包括高级可扩展接口4(AXI4)协议、AXI3协议、AXI-精简版协议、AXI一致性拓展(ACE)协议、Avalon接口协议或其组合。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862722741P | 2018-08-24 | 2018-08-24 | |
US62/722741 | 2018-08-24 | ||
US16/235608 | 2018-12-28 | ||
US16/235,608 US11580054B2 (en) | 2018-08-24 | 2018-12-28 | Scalable network-on-chip for high-bandwidth memory |
CN201910672655.6A CN110858189A (zh) | 2018-08-24 | 2019-07-24 | 用于高带宽存储器的可缩放芯片上网络 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910672655.6A Division CN110858189A (zh) | 2018-08-24 | 2019-07-24 | 用于高带宽存储器的可缩放芯片上网络 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117235000A true CN117235000A (zh) | 2023-12-15 |
Family
ID=66328532
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310975716.2A Pending CN117235000A (zh) | 2018-08-24 | 2019-07-24 | 用于高带宽存储器的可缩放芯片上网络 |
CN201910672655.6A Pending CN110858189A (zh) | 2018-08-24 | 2019-07-24 | 用于高带宽存储器的可缩放芯片上网络 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910672655.6A Pending CN110858189A (zh) | 2018-08-24 | 2019-07-24 | 用于高带宽存储器的可缩放芯片上网络 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11580054B2 (zh) |
CN (2) | CN117235000A (zh) |
DE (1) | DE102019121523A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10924430B2 (en) * | 2018-11-09 | 2021-02-16 | Xilinx, Inc. | Streaming platform flow and architecture for an integrated circuit |
US10725942B2 (en) | 2018-11-09 | 2020-07-28 | Xilinx, Inc. | Streaming platform architecture for inter-kernel circuit communication for an integrated circuit |
US10817353B1 (en) * | 2018-12-19 | 2020-10-27 | Xilinx, Inc. | Adaptable dynamic region for hardware acceleration |
CN110311814B (zh) * | 2019-06-25 | 2022-05-10 | 桂林电子科技大学 | 可编程NoC万兆以太网资源网络接口系统 |
US10963411B1 (en) * | 2019-07-03 | 2021-03-30 | Xilinx, Inc. | Integrating rows of input/output blocks with memory controllers in a columnar programmable fabric archeture |
US10990547B2 (en) | 2019-08-11 | 2021-04-27 | Xilinx, Inc. | Dynamically reconfigurable networking using a programmable integrated circuit |
CN111104775B (zh) * | 2019-11-22 | 2023-09-15 | 核芯互联科技(青岛)有限公司 | 一种片上网络拓扑结构及其实现方法 |
CN111414325B (zh) * | 2020-02-29 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种Avalon总线转Axi4总线的方法 |
US11232053B1 (en) | 2020-06-09 | 2022-01-25 | Xilinx, Inc. | Multi-host direct memory access system for integrated circuits |
CN111628936B (zh) * | 2020-06-29 | 2022-02-18 | 中国人民解放军国防科技大学 | 基于宽端口异构瓦片的端口可配置路由器设计方法及路由器 |
US11409684B2 (en) * | 2020-07-31 | 2022-08-09 | Alibaba Group Holding Limited | Processing accelerator architectures |
US11625341B2 (en) | 2020-08-11 | 2023-04-11 | Alibaba Group Holding Limited | Narrow DRAM channel systems and methods |
CN111930650B (zh) * | 2020-09-23 | 2021-01-08 | 新华三半导体技术有限公司 | 一种网络流量转发方法及设备 |
US11455272B2 (en) * | 2020-12-10 | 2022-09-27 | Axis Semiconductor, Inc. | Energy efficient microprocessor with index selected hardware architecture |
US11539770B1 (en) | 2021-03-15 | 2022-12-27 | Xilinx, Inc. | Host-to-kernel streaming support for disparate platforms |
US11456951B1 (en) | 2021-04-08 | 2022-09-27 | Xilinx, Inc. | Flow table modification for network accelerators |
US11606317B1 (en) | 2021-04-14 | 2023-03-14 | Xilinx, Inc. | Table based multi-function virtualization |
US11653283B2 (en) * | 2021-09-04 | 2023-05-16 | EdgeQ, Inc. | Systems and methods for front haul traffic processing on radio units and distributed baseband units |
US20220044123A1 (en) * | 2021-09-24 | 2022-02-10 | Rajesh Vivekanandham | Embedded Programmable Logic Device for Acceleration in Deep Learning-Focused Processors |
US11609871B1 (en) * | 2021-10-07 | 2023-03-21 | Cypress Semiconductor Corporation | Integrated circuit device with crossbar to route traffic |
CN114637710B (zh) * | 2022-03-17 | 2023-05-30 | 桂林电子科技大学 | 一种基于异构平台的高速数据采集与处理系统 |
US20230325345A1 (en) * | 2022-04-06 | 2023-10-12 | Western Digital Technologies, Inc. | Mesh network-on-a-chip (noc) with heterogeneous routers |
US11983133B2 (en) * | 2022-08-22 | 2024-05-14 | Xilinx, Inc. | Adaptive integrated programmable data processing unit |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5543894B2 (ja) * | 2010-10-21 | 2014-07-09 | ルネサスエレクトロニクス株式会社 | NoCシステム及び入力切替装置 |
KR101841173B1 (ko) * | 2010-12-17 | 2018-03-23 | 삼성전자주식회사 | 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법 |
US20120191896A1 (en) * | 2011-01-25 | 2012-07-26 | Zhen Fang | Circuitry to select, at least in part, at least one memory |
CN104081722B (zh) * | 2012-01-13 | 2018-05-22 | 英特尔公司 | SoC构造中的高效对等通信支持 |
US9225665B2 (en) * | 2012-09-25 | 2015-12-29 | Qualcomm Technologies, Inc. | Network on a chip socket protocol |
US20150103822A1 (en) * | 2013-10-15 | 2015-04-16 | Netspeed Systems | Noc interface protocol adaptive to varied host interface protocols |
US9911477B1 (en) * | 2014-04-18 | 2018-03-06 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
WO2015163897A1 (en) * | 2014-04-24 | 2015-10-29 | Empire Technology Development Llc | Core prioritization for heterogeneous on-chip networks |
WO2017120270A1 (en) * | 2016-01-04 | 2017-07-13 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications |
US10769080B2 (en) * | 2017-03-30 | 2020-09-08 | Futurewei Technologies, Inc. | Distributed and shared memory controller |
US11301412B2 (en) * | 2017-12-22 | 2022-04-12 | Intel Corporation | Scaling interface architecture between memory and programmable logic |
US20190214087A1 (en) * | 2018-01-09 | 2019-07-11 | Western Digital Technologies, Inc. | Non-volatile storage system with decoupling of write transfers from write operations |
US10505548B1 (en) | 2018-05-25 | 2019-12-10 | Xilinx, Inc. | Multi-chip structure having configurable network-on-chip |
US11296706B2 (en) * | 2018-06-27 | 2022-04-05 | Intel Corporation | Embedded network on chip accessible to programmable logic fabric of programmable logic device in multi-dimensional die systems |
US11789883B2 (en) * | 2018-08-14 | 2023-10-17 | Intel Corporation | Inter-die communication of programmable logic devices |
US10673439B1 (en) * | 2019-03-27 | 2020-06-02 | Xilinx, Inc. | Adaptive integrated programmable device platform |
US11036660B2 (en) * | 2019-03-28 | 2021-06-15 | Intel Corporation | Network-on-chip for inter-die and intra-die communication in modularized integrated circuit devices |
US20220197855A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Micro-network-on-chip and microsector infrastructure |
CN115309694A (zh) * | 2021-05-07 | 2022-11-08 | 脸萌有限公司 | 片上集成电路、数据处理装置和方法 |
-
2018
- 2018-12-28 US US16/235,608 patent/US11580054B2/en active Active
-
2019
- 2019-07-24 CN CN202310975716.2A patent/CN117235000A/zh active Pending
- 2019-07-24 CN CN201910672655.6A patent/CN110858189A/zh active Pending
- 2019-08-09 DE DE102019121523.4A patent/DE102019121523A1/de active Pending
-
2022
- 2022-12-27 US US18/089,237 patent/US11995028B2/en active Active
-
2024
- 2024-05-13 US US18/662,621 patent/US20240296140A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20190138493A1 (en) | 2019-05-09 |
DE102019121523A1 (de) | 2020-02-27 |
US20230135934A1 (en) | 2023-05-04 |
US11995028B2 (en) | 2024-05-28 |
US20240296140A1 (en) | 2024-09-05 |
CN110858189A (zh) | 2020-03-03 |
US11580054B2 (en) | 2023-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117235000A (zh) | 用于高带宽存储器的可缩放芯片上网络 | |
JP5036120B2 (ja) | 非ブロック化共有インターフェイスを持つ通信システム及び方法 | |
US10437764B2 (en) | Multi protocol communication switch apparatus | |
EP2306328B1 (en) | Communications system and method with multilevel connection identification | |
JP4638216B2 (ja) | オンチップバス | |
US7240141B2 (en) | Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor | |
EP2333671B1 (en) | Inter-die interconnection interface | |
US20090059955A1 (en) | Single chip protocol converter | |
WO2011151241A1 (en) | Network-on-a-chip with quality-of-service features | |
JP2006502650A (ja) | トランザクションを確立するための集積回路および方法 | |
KR20070010152A (ko) | 트랜잭션을 발행하기 위한 집적 회로 및 방법 | |
CN112970010B (zh) | 流式传输平台流和架构 | |
CN110825691A (zh) | 可编程逻辑设备的管芯间通信 | |
CN111752890A (zh) | 封装中系统网络处理器 | |
US9727499B2 (en) | Hardware first come first serve arbiter using multiple request buckets | |
TW200407712A (en) | Configurable multi-port multi-protocol network interface to support packet processing | |
US11323391B1 (en) | Multi-port stream switch for stream interconnect network | |
RU159583U1 (ru) | Многопроцессорный модуль цифровой обработки сигналов | |
JP2022527121A (ja) | 割り当て可能なi/oドメインおよびコヒーレントドメインを有する周辺i/oデバイス | |
EP4385133A2 (en) | Interconnecting reconfigurable regions in an field programmable gate array | |
TW202226032A (zh) | 微型晶片網路及微型分區基礎結構 | |
KR100581196B1 (ko) | 다중 채널을 제공하는 에스오씨 버스 구조 | |
US20240070111A1 (en) | Reconfigurable dataflow unit with streaming write functionality | |
US20240070106A1 (en) | Reconfigurable dataflow unit having remote fifo management functionality | |
US20240073129A1 (en) | Peer-to-peer communication between reconfigurable dataflow units |
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 |