CN117716676A - 用于芯片上及封包上的网络中的多维拓扑的路由器架构 - Google Patents
用于芯片上及封包上的网络中的多维拓扑的路由器架构 Download PDFInfo
- Publication number
- CN117716676A CN117716676A CN202280051922.8A CN202280051922A CN117716676A CN 117716676 A CN117716676 A CN 117716676A CN 202280051922 A CN202280051922 A CN 202280051922A CN 117716676 A CN117716676 A CN 117716676A
- Authority
- CN
- China
- Prior art keywords
- router
- packet
- rewards
- local
- destination
- 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
- 230000009471 action Effects 0.000 claims abstract description 57
- 239000000872 buffer Substances 0.000 claims abstract description 17
- 230000000875 corresponding effect Effects 0.000 claims description 44
- 238000000034 method Methods 0.000 claims description 40
- 230000002787 reinforcement Effects 0.000 claims description 37
- 239000011159 matrix material Substances 0.000 claims description 34
- 230000003068 static effect Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 230000007774 longterm Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 235000008694 Humulus lupulus Nutrition 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 241000724291 Tobacco streak virus Species 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- 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/20—Hop count for routing purposes, e.g. TTL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- 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/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- 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/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- 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/102—Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Medical Informatics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
路由器可包括接收从源传输到目的地的包的输入缓冲器、确定所述包的状态的状态生成器、及表示对应于可能状态的动作的权重的存储器。所述存储器可被配置为返回对应于包的状态的动作,其中所述动作可指示在源与目的地之间的路由中的下一跃点。路由器还可包括奖励逻辑,所述奖励逻辑被配置为在存储器中生成多个动作的权重。所述奖励逻辑可接收对应于在源与目的地之间的路由的全局奖励,计算对应于路由器可用的下一跃点的局部奖励,并且组合全局奖励与局部奖励以在存储器中生成多个动作的权重。
Description
相关申请的交叉引用
本申请主张于2021年6月15日提交的名称为“ROUTER ARCHITECTURE FOR MULTI-DIMENSIONAL TOPOLOGIES IN ON-CHIP AND ON-PACKAGE NETWORKS(用于芯片上及封包上的网络中的多维拓扑的路由器架构)”的美国非临时申请第17/348,183号的权益及优先权,该美国非临时申请的内容出于所有目的以引用方式整体并入本文。
技术领域
本公开内容总体涉及一种封包(package)上的路由网络,所述路由网络用于使用不同协议连接来自不同生态系统的小芯片(chiplet)。更特定言之,本公开内容描述具有可编程互连桥及用于在2D、2.5D与3D拓扑中的小芯片之间路由通信量(traffic)的路由网络的可扩展封包上网络(network-on-package;NoPK)。
背景技术
小芯片是模块化集成电路,专门设计用于与其他类似的模块化小芯片一起工作,以形成更大、更复杂的处理系统。这允许在设计中将功能块分为不同的小芯片,以在设计过程期间提供更大的灵活性及模块性。与常规的单片(monolithic)集成电路(integratedcircuit;IC)设计相比,基于小芯片的设计使用连接在一起的更小的独立裸片。每个小芯片可被专门设计为执行单独的功能,诸如处理核心、图形处理单元、数学协处理器、硬件加速器等。基于小芯片的设计还降低制造成本,因为较大的裸片(die)可被分为较小的小芯片以改善良率及分箱(binning)。随着成本的增加及摩尔定律的放缓,常规的单片芯片开发也变得越来越没有吸引力,因为小芯片更便宜且展现出更快上市时间的生产。相对新的基于小芯片的生态系统的出现,开始经由将预测试的小芯片整合到更大的封包中来实现设计复杂系统的一种替代方式。
发明内容
在一些实施方式中,路由器可包括:多个输入缓冲器,配置为接收从源传输至目的地的包;状态生成器,配置为从多个状态确定包的状态;及存储器,表示与多个状态对应的多个动作的权重。存储器可被配置为返回对应于包状态的动作。所述动作可指示在源与目的地之间的路由中的下一跃点。路由器还可包括奖励逻辑,所述奖励逻辑被配置为在存储器中生成多个动作的权重。奖励逻辑可被配置为接收与在源与目的地之间的路由对应的全局奖励,计算与路由器可用的下一跃点对应的局部奖励,并且组合全局奖励与局部奖励以在存储器中生成多个动作的权重。
在一些实施方式中,确定由路由器接收的包的下一跃点的方法可包括:在路由器处接收从源传输到目的地的包,从多个状态中确定包的状态,接收与在源与目的地之间的路由对应的全局奖励,计算与路由器可用的下一跃点对应的局部奖励,组合全局奖励与局部奖励以生成与多个状态对应的多个动作的权重,基于包状态的权重确定与包状态对应的动作,其中所述动作可指示在源与目的地之间的路由中的下一跃点,及将包路由到下一跃点。
在一些实施方式中,路由器可包括多个输入缓冲器,这些输入缓冲器配置为接收从源传输至目的地的包,及实施强化学习算法的电路系统,所述算法确定包的状态,并且选择指示包下一跃点的对应动作。强化学习算法可将与在源与目的地之间的路由对应的全局奖励和与路由器可用的下一跃点对应的局部奖励组合。所述路由器还可包括多个输出缓冲器,这些输出缓冲器被配置成接收包,并且基于包的状态将包路由到由强化学习算法选择的下一跃点。
在任何实施方式中,任何及所有以下特征均可在任何组合中实施,且不受限制。路由器也可包括将多个输入缓冲器连接到多个输出缓冲器的间接总线。间接总线可不包括交叉开关(crossbar)阵列。路由器可以是封包上网络(network-on-package;NoPK)的一部分,且源及目的地可包括小芯片。路由器可以是片上网络的部分,而源及目的地包括SoC上的子系统。存储器可包括储存用于Q学习算法的Q矩阵的静态随机存取存储器(static randomaccess memory;SRAM)。组合全局奖励与局部奖励以生成多个动作的权重可包括对每个动作使用全局奖励及局部奖励的加权组合。全局奖励可包括基于源与目的地之间的最佳路径惩罚或奖励路由器的下一跃点的值。局部奖励可包括被更新以反映路由器观察到的局部瓶颈的值。组合全局奖励与局部奖励可引起包的下一跃点改变以避免局部瓶颈。强化学习算法可包括Q学习算法。强化学习算法可基于折扣因子来更新指派给动作的权重,所述折扣因子相对即时奖励将长期奖励进行加权。强化学习算法可基于学习速率因子更新指派给动作的权重,所述学习速率因子相对先前权重将新权重进行加权。
附图说明
通过参考说明书的剩余部分和附图,可进一步理解各种实施方式的性质及优点,其中,在若干附图中,使用相同的参考数字来指示相似的部件。在一些情况下,子标签与参考数字相关联,以表示多个相似部件中的一个。当提及参考数字而没有说明现有的子标签时,意欲指示所有的这样的多个相似的部件。
图1图示根据一些实施方式的基于小芯片的设计。
图2图示根据一些实施方式的封包上网络(network-on-package;NoPK)的简化方框图。
图3图示根据一些实施方式的可在路由网络中使用的路由器的一实施方式。
图4图示根据一些实施方式的使用强化学习算法的路由器的架构。
图5图示根据一些实施方式,可如何使用局部奖励来修改全局路由以避免来自特定路由器的局部瓶颈(bottleneck)的实例。
图6图示根据一些实施方式,全局奖励可如何传达并且与局部奖励互动。
图7A图示根据一些实施方式的在先前路由器中使用的交叉开关(crossbar)阵列的替代物。
图7B图示根据一些实施方式的另一间接总线设计,所述间接总线设计具有可优化的多条总线。
图8图示为由路由器接收的包确定下一跃点的方法的流程图。
具体实施方式
由于传统基于单片的设计的制造越来越昂贵,小芯片已成为系统架构中提高良率、降低制造成本及提高设计模块性的成功替代物。一般而言,小芯片不是封包类型,而是封装架构的部分。每个小芯片可包括由硅晶片制造的独立裸片。不同于强制将系统的所有功能(例如,中央处理单元(central processing unit;CPU)、存储器、图形处理单元(graphic processing unit;GPU)、各种外设(peripheral)等)制造在一个大的单片裸片上,基于小芯片的系统将这些功能分离到单独的裸片中,随后可将这些裸片封装在一起以执行相同的功能。通过使单个裸片更小,降低了整个系统的良率及制造成本。
图1图示根据一些实施方式的基于小芯片的系统100。多个小芯片104可被制造为来自一或更多个硅晶片的独立裸片。小芯片104可包括多种不同的功能,诸如专用(application-specific)片上系统(systems-on-a-chip;SOC)、GPU、数字信号处理器(digital signal processor;DSP)、人工智能(artificial intelligence;AI)加速器、各种编解码器、Wi-Fi通信模块、存储器控制器、高速缓存、输入/输出(I/O)外设等。尽管在单独的裸片上制造,但是这些小芯片104中的每一个可使用各种选项连接在一起,以执行与类似的单片设计所执行的功能大体上相同的功能,但是以分布式方式执行。
尽管基于小芯片的系统改善良率及制造成本,但这样的设计也很大程度地使不同子系统之间的通信变得复杂。在单片设计中,这些子系统可使用统一的总线架构或片上网络(network-on-a-chip;NoC)结构进行通信,以便在子系统之间传递信息。然而,当将这些子系统分离到单独的小芯片104上时,对于小芯片的每个设计及布置,必须单独考虑小芯片104之间的路由。为了将各种小芯片104联网在一起,基于小芯片的系统100通常必须作为统一设计来共同设计及制造。换言之,在可设计及实施路由网络之前,必须首先建立小芯片104的类型及物理布置(physical arrangement)。这很大地限制了基于小芯片的设计范围。因此,大多数现代的基于小芯片的设计是由单个实体使用来自单个芯片生态系统(例如,ARM、ARC、x86)的架构设计及制造的,利用统一的通信协议(例如,PCIe、CCIX/CXL、AXI、AMBA等)。因此,当前基于小芯片的设计通常不容易允许不同芯片生态系统及不同协议之间的互操作性,这阻止了系统设计者使用可用于实现所述设计的全部范围的小芯片。相反,系统设计者受限于在单个通信框架及生态系统内共同设计的小芯片。
例如,一家芯片制造商使用专有系统互连架构,此架构有助于跨基于小芯片的架构进行数据及控制传输。然而,尽管此结构支持多达八个CPU复合体(complexes),且可在2D封装中实现,但此结构与现成小芯片不相容。此外,此结构包括单个仲裁点,并且因此不能与各种尺寸的小芯片系统一起扩展。另一家芯片制造商已经实施了基于3D的小芯片架构,此架构使用硅通孔(Through-Silicon Via;TSV)。在此设计中,顶层(top-level)裸片包括具有数个功能块的单片计算裸片,包括CPU、GPU、存储器控制器等。底部裸片包括使用PCIe的I/O块。使用TSV连接顶部裸片及底部裸片。尽管与2D方法相比,这些架构造成线长度减小和功率降低,但需要共同设计底部裸片及顶部裸片,使得TSV对准并且连接到正确的功能块。这阻止了这些裸片被独立使用,且需要为系统的每次迭代设计特定的基于TSV的互连。这些解决方案都不与使用各种来源的小芯片的可扩展现成设计相容。
本文所述的一些实施方式可使用可扩展互连装置,所述互连装置在此互连装置自身的裸片上独立制造。此解决方案在本文中被称为“封包上网络”(network-on-package;NoPK),且可被设计为专用裸片、封包或小芯片,以与可扩展系统中的其他小芯片整合。NoPK连接各种现成小芯片,并且促进跨各种现成小芯片的通信。与现有设计相比,NoPK层是一种通用的可扩展结构,可与来自各种生态系统的现成小芯片一起工作。NoPK可使用TSV、使用2D方法及使用具有竖直互连装置的3D方法来实现。此外,NoPK支持多种协议,这些协议使用接口桥来促进不同小芯片类型之间的通信。
图2图示根据一些实施方式的NoPK 200的简化方框图。NoPK 200可以是数字架构,所述数字架构可被实施为适合小芯片的任何组合。此数字架构可在专用裸片上实施,且可被认为是数字架构自身的小芯片或封包。因此,NoPK 200可与构成基于小芯片的系统的任何周围小芯片物理地分离。图2A中所示的NoPK 200的方框图可根据需要进行扩展,以满足任何尺寸的基于小芯片的系统的需求。例如,在NoPK 200被“流片”之前,根据特定设计的要求,所述设计可添加额外的路由跃点、接口桥、微控制器、存储器模块、存储器控制器等。因此,图2A中所示的NoPK 200仅作为实例提供,并且不意味着是限制性的。将理解,其他实现可包括更多或更少的接口桥、控制器、路由器跃点、存储器等,且不限于此。下文描述的特征可应用于实现任何尺寸或部件数的NoPK 200。
NoPK 200可包括一或更多个接口桥204。提供接口桥是为了将可由周围的小芯片使用的各种协议转换成共用协议,使得来自不同制造商的小芯片可彼此通信。每个接口桥204可被编程为接收小芯片市场中可获得的任何可用通信或总线协议。一般而言,接口桥204可支持不同的协议,且使得来自不同生态系统及制造商的裸片或小芯片能够在单个统一设计中使用。例如,这些协议可包括PCIe、CCIX、CXL、AXI、AMBA等。
可对接口桥204进行编程,以接收任何可用协议,并且将所述协议转换为由NoPK200使用的统一协议。如本文所使用的,经由NoPK 200接收及/或路由的小芯片之间的通信及传输通常被称为“通信量(traffic)”。通信量可包括任何信号,包括功率信号(powersignal)、通信信号、数据信号、存储器请求,及/或可由NoPK 200接收的其他电子传输。例如,接口桥204可从接口桥204-1处的微处理器接收PCIe通信量。接口桥204-1可将PCIe通信量转换成通用包格式(general packetized format),并且经由NoPK200的路由网络将经转换的包路由到接口桥204-3。这可包括设计中其他小芯片中的任一者不使用的通用包协议。接口桥204-3随后可将通用包化格式转换成AXI格式,以与另一个小芯片的Wi-Fi模块通信。
在一些实施方式中,接口桥204可将进入的通信量转换为由进入的通信量使用的协议中的一者。在上文的实例中,接口桥204-1可从微处理器接收PCIe通信量,并且简单地将PCIe通信量传递到路由网络中。NoPK 200的路由网络可使用PCIe作为所述路由网路的内部通信协议。当接口桥204-3接收PCIe通信量时,PCIe通信量可被转换为AXI格式,以与另一个小芯片的Wi-Fi模块通信。这些实施方式不需要任何专用或通用的包格式或协议,而是可使用周围小芯片的协议中的一者。
在图2A的实例中,接口桥204布置在NoPK 200的三侧上。取决于连接要求及周围小芯片的定向,其他实施方式也可沿着NoPK 200的一侧、两侧或四侧放置接口桥204。如下文将描述的,沿着NoPK 200的周边定向接口桥204允许来自在NoPK层之上及/或之下的层的竖直互连。替代地,2D实施方式也可经由接口桥204从NoPK 200周边的相邻小芯片接收迹线(trace)。
NoPK 200可包括内部路由网络,所述内部路由网络包括多个内部路由器或跃点,所述内部路由器或跃点引导从接口桥204接收的通信量。继续上文的实例,当PCIe通信量在接口桥204-1处被接收并且被转换成通用包格式时,这些包可经由路由器跃点202被传递穿过内部路由网络,直到通信量到达接口桥204-3,通信量在接口桥204-3处可被转换成AXI并且被传递到Wi-Fi芯片。
NoPK 200也可包括控制器211。控制器211可使用微控制器、微处理器、FPGA及/或被配置为执行指令的任何可编程逻辑装置或处理器来实施。控制器211可根据周围小芯片的需要对接口桥204及/或路由网络进行编程。这允许NoPK架构足够灵活,以适应不同的小芯片生态系统及通信协议。还允许NoPK架构进行扩展,以满足任何数量的小芯片的需求。例如,控制器211可读/写控制协议转换的接口桥204中的配置寄存器。控制器211也可读/写路由网络中控制接口桥204之间的连接的配置寄存器。
继续上述实例,控制器211可将配置值写入至接口桥204-1中的配置寄存器。这可引起接口桥204-1将从微处理器接收的通信量从PCIe转换成在路由网络中使用的共用协议。控制器211也可将值写入到配置寄存器,引起在接口桥204-1处从微处理器接收的通信量被路由到接口桥204-3。这可引起从接口桥204-1发送的包被定址到接口桥204-3上的特定端口或位置。控制器204可额外将配置值写入到接口桥204-3,这引起从接口桥204-1而内部地接收的通信量被转换成AXI并且被发送到外部小芯片的Wi-Fi模块。
除了基于连接到NoPK 200的小芯片的类型对接口桥及/或路由网络进行编程之外,控制器211还可读/写在路由器跃点202处的配置寄存器,以对经由路由网络的通信量实施QoS策略。例如,由控制器211提供的可配置性可允许路由器跃点202对去往/来自指定外部小芯片的通信量进行优先排序(prioritize)。继续上文的实例,经由NoPK 200从微处理器小芯片路由到Wi-Fi模块小芯片的通信量可通过路由器跃点202而优先于实施GPU的小芯片与实施显示驱动器的小芯片之间的通信。因此,控制器211可对路由网络进行编程,以对设计中的一对小芯片之间的通信量、去往/来自设计中的特定小芯片的通信量、设计中的任何小芯片之间的特定类型的通信量等进行优先排序。
因此,控制器211可基于连接至NoPK 200的小芯片类型对NoPK 200的配置寄存器进行编程。小芯片的类型可规定由接口桥使用的协议及控制接口桥如何转换各种可用协议的对应配置值。小芯片的类型还可规定小芯片所使用的频率/电压,且配置寄存器可被编程,使得接口桥与小芯片正确对接(interface)。此外,可使用小芯片的类型及小芯片与NoPK的个别连接来对路由网络的配置寄存器进行编程,以在系统中的不同小芯片之间路由通信量。
控制器211也可包括遥测引擎,所述遥测引擎监控由小芯片执行的通信量及操作,并且报告由基于小芯片的系统处理的数据的统一视图(view)。控制器211可采样及/或记录经由路由网络的通信量中的任何通信量。控制器211也可经由例如读取与任何小芯片相关联的性能寄存器来捕获来自平台封包中的任何小芯片的数据。控制器211随后可将遥测数据储存在板载存储器(on-board memory)中,经由存储器控制器213储存在板外存储器(off-board memory)中,或者将遥测数据传输到外部装置。例如,控制器211可经由总线连接将遥测数据经由接口桥204传输到基于小芯片的系统外部的监控计算机系统。替代地,控制器211可经由接口桥204将遥测数据传输到具有Wi-Fi模块的小芯片,所述Wi-Fi模块将遥测数据传输到监控系统。其他实施方式可将遥测数据储存在NoPK 200的SRAM模块中,使得遥测数据可在需要时被下载及/或传输。这允许最终用户获得数据的统一视图,并且理解/解决可在通过NoPK 200的通信量中及/或在周围小芯片的操作中出现的任何瓶颈。
在一些实施方式中,控制器211也可对额外配置寄存器进行编程,以控制NoPK 200的电源管理(power management)。例如,当路由网络中的通信量低于阈值水平时,控制器211可关闭路由器跃点202中的一或更多者。对于使用少于阈值数量的外部小芯片的设计,控制器211也可关闭路由器跃点202中的一或更多者。这允许控制器211优化由NoPK 200使用的功率,并且使此功率消耗整体上适应基于小芯片的系统的需求。控制器211也可被配置为基于周围小芯片的实时需求按需开启/关闭接口桥204及/或接口桥204的部分。例如,若Wi-Fi小芯片每五秒仅在100ms的窗口中是活跃的,则连接到Wi-Fi小芯片的对应接口桥204-3可在传输窗口之间关闭。
控制器211也可对接口桥204及/或路由网络进行编程,以与由基于小芯片的系统中不同小芯片使用的不同水平的动态电压及频率缩放(dynamic voltage and frequencyscaling;DVFS)相容。例如,各种小芯片可使用不同的电压及/或频率缩放来调整由个别小芯片使用的功率量及速度设定。控制器211可将接口桥204编程为在不同的频率及/或不同的电压下操作,以对应于所连接的小芯片的DVFS设定。因为小芯片可在操作期间调整这些小芯片的DVFS设定,所以应当理解,控制器211可在操作期间对接口桥204及/或路由网络进行编程。例如,在制造期间在NoPK 200被物理地连接到多个小芯片之后,控制器211可对接口桥204及/或路由网络进行初始编程。当NoPK 200正在接收及路由来自小芯片的通信量时,控制器211也可在操作期间对接口桥204及/或路由网络进行动态编程。
一些实施方式可使用可配置的存储器层次(memory hierarchy)。这些实施方式可额外包括存储器控制器213。存储器控制器213可以是经由NoPK 200可存取的,且可用于任何连接的小芯片。存储器控制器213可通信地耦合到在NoPK 200外部的存储器装置。例如,周围的小芯片中的一者可包括在经由存储器控制器213可存取的SRAM中。
此外,NoPK 200可包括分布式SRAM模块220,分布式SRAM模块220位于如图2B中所描绘的路由网络的通道(lane)之间的空间中。这些SRAM模块220可被配置为高速缓存或软件管理的缓冲器。SRAM模块220可以是由控制器211可配置的。SRAM模块220可支持基于小芯片的系统作为高速缓存,所述高速缓存可被直接地存储器映射。控制器211可配置SRAM模块220以实施各种驱逐(eviction)/替换(replacement)策略,诸如最近最少使用(LeastRecently Used;LRE)、先进先出(First In First Out;FIFO)及/或任何其他高速缓存策略。这允许控制器211将SRAM模块200用作可适应的存储器层次,所述可适应的存储器层次可在使用期间针对由小芯片提供的不同使用情况及工作负载进行配置。
图3图示根据一些实施方式的可在路由网络中使用的路由器302的实施方式。此路由器302可在图2中于上文描述的NoPK 200中使用。然而,其他实施方式也可在片上网络(network-on-a-chip;NoC)实施方式中使用此路由器302。NoC可包括在集成电路上的基于网络的通信子系统,所述通信子系统便于在片上系统(systems-on-a-chip;SOC)中的模块之间的通信。在不同NoC实施方式中使用的各种拓扑可使用路由器以经由芯片上的不同子系统来路由通信。更广泛而言,除非另有说明,否则路由器302可用于任何使用路由器在端点之间传输包的通信系统。
路由器302可包括多个输入314。这些输入314可与将路由器302连结到周围路由器、小芯片及/或SoC子系统的物理通道相关联。每个物理通道可连结到一或更多个虚拟通道304。虚拟通道304可包括可共用物理通道的多个缓冲器。每个虚拟通道304可包括信用跟踪器,所述信用跟踪器监控连接到对应物理通道的上游路由器及/或下游路由器的可用性。
当在输入314中的一者上接收包并且所述包填充对应虚拟通道304中的一者时,可经由下一跃点表306读取包头部,以确定路由序列中的下一跃点。例如,头部可包括对应于连接到路由网络的小芯片等的目的地址。下一跃点表306可包括查找表,所述查找表具有针对每个可能目的地的条目。每个目的地可与被称为“下一跃点”的地址相关联,所述地址标识连接到路由器302的其他路由器中的一个路由器,所述包接下来应被发送到所述一个路由器。
下一跃点表306可为去往目的地位置的路由序列中的后续路由器生成地址。所选择的下一跃点可造成对路由器302中的资源冲突或争用。例如,二维(two-dimensional;2D)路由器可包括在路由器302的四个基本方向上的输入/输出,诸如北、南、东及西。当多个下一跃点被指派到相同的方向(诸如东)时,可能没有足够的虚拟通道312及/或对应于输出316的物理通道来容纳所有被路由的包。因此,仲裁逻辑308可处理输出位置之间的冲突的仲裁。例如,仲裁逻辑308可引起一些包被延迟,或者可引起包被路由穿过有更多带宽可用的不同虚拟通道。
当指派下一跃点并且完成任何仲裁时,可经由内部交叉开关阵列310路由包。注意,此内部交叉开关阵列310应该与图2中的上文描述的封包或芯片上的网络阵列相区别。此交叉开关阵列310在路由器内部,且用于将输入314连接到在每个方向上的各个输出316。交叉开关阵列可以是开关的矩阵,且交叉开关阵列310的尺寸可由每个方向上的通道数量来确定。例如,在2D环境中,交叉开关阵列310可包括对应于每个方向上的4或5个通道的4×4或5×5矩形阵列。每个输出316可与对应的虚拟通道312相关联,虚拟通道312将多个缓冲器连结到输出316上的单个物理通道。注意,一些实施方式可使用可在输入及/或输出之间交替的双向通道。
当小芯片封包或SoC上的装置数量持续增加时,传统路由器302可出现若干性能瓶颈。例如,下一跃点表306必须随着添加到系统的每个装置或小芯片而增长。类似地,随着可能目的地数量的增加,用于解决冲突的仲裁逻辑308的复杂性增加。此外,小芯片封包现在可在全3D拓扑中实现,当将上/下方向增加到路由可能性中时,这将外部方向的数量从四个增加到六个。随着路由器302之外的主要方向的数量增加,交叉开关阵列310呈指数增长。统计上看,交叉开关阵列310使用路由器302的裸片上的最大面积,且使用最多能量,且随着网络的规模呈指数增长。因此,传统路由器302不能有效地随着小芯片封包复杂性的增加而扩展。
本文所述的实施方式通过提出一种新的路由器架构解决了这些技术问题,所述路由器架构用强化学习算法替代下一跃点表306及仲裁逻辑308,所述强化学习算法基于全局及局部考虑而动态确定路由器中的下一跃点。可使用对应于在包的源与目的地之间的整个路由的全局“奖励”,用每个路由决策来更新强化学习矩阵。系统也可考虑与在路由器302本身中观察到的即时延迟或其他效应对应的局部“奖励”。通过结合这两种奖励类型,强化学习算法可基于局部条件及全局条件二者做出有效的路由决策。储存对应状态的动作的学习矩阵可被静态地定大小(size),使得学习矩阵可随着路由器上装置及/或端口数量增加而非常有效地扩展。一些实施方式也可用简单的间接连接拓扑(诸如双向总线)来替代交叉开关阵列310。因为强化学习算法可学习间接总线的可用性,所以可比交叉开关阵列310更有效地被用来实现相同的处理量。
图4图示根据一些实施方式的使用强化学习算法的路由器402的架构。路由器402可包括多个输入414及多个输出416,如图3中于上文所述的。输入414及/或输出416可具有与一或更多个虚拟通道404相关联的物理通道,虚拟通道404包括用于经由输入414接收包及/或经由输出416发送包的缓冲器。
路由器402不使用下一跃点表,而是可包括在路由器402中实施强化学习算法的多个硬件元件。在本公开内容中,举例而言,使用被称为“Q学习”的特定类型强化学习算法。因此,本文使用的一些硬件元件及算法可使用Q学习专用的术语来指称,诸如Q矩阵。然而,Q学习仅作为实例使用,并且不意味着限制。任何其他强化学习算法,特别是可在使用期间训练的无模型算法(model-less algorithm),可无限制地用来替代Q学习。因此,用任何已知的强化学习算法或所述已知的强化学习算法的同等物来替代Q学习在本公开内容的范围内。
为实施强化学习算法,路由器402可包括状态生成器408。状态生成器408可从虚拟通道404接收包,并且确定所述包的“状态”。在传统的强化学习算法中,状态通常是指“环境”中的位置。然而,此实施方式以新方式定义状态,使得系统中状态的数量可随着系统规模的增长而保持静态。状态可由包的不同特征来定义,而不是使状态纯粹基于位置。例如,状态可考虑通信量类别、服务质量(Quality of Service;QoS)、排序要求、目的地与动作配对,等等。因此,基于包的优先级、包的QoS水平、包的有效载荷(payload)数据类型、源及/或目的地的优先级等,包可被分类为具有特定状态。此类型的状态定义将强化学习算法的决策空间的大小与整个路由网络的大小分离(decouple)。此状态定义也允许路由器402独立地作用,不需要仅仅根据路由器相对于路由网络中其他装置的位置来定义状态。状态生成器408可由查找表来实施,所述查找表使用用以定义状态的特征来索引,以输出状态标识符。
状态生成器可用于索引学习矩阵。在图4的实例中,Q矩阵406可在SRAM中实现。Q矩阵406中的每一行可表示可由状态生成器408生成的状态。Q矩阵406中的每一列可表示在各种状态下可采取的可用动作中的一者。因此,将Q矩阵406中的位置索引为Q[i,j]可表示与在处于状态(i)中同时采取动作(j)相关联的值或权重。Q矩阵406中的每个位置可表示当处于对应状态时,与采取对应动作相关联的权重或值。因此,状态生成器408可向Q矩阵406提供状态,以便从Q矩阵406中取回动作。
在一些实施方式中,Q矩阵406可取回具有最高对应权重或指派值的动作。这可对应于从可用动作中采取在包行进穿过路由网络的过程中具有产生最大奖励的最大可能性的动作。在一些实施方式中,Q矩阵406可放弃选择最大值,而可从可用动作中选择随机值。这允许路由器402偶尔试验替代路由,以找到未发现的穿过路由网络的更好路由。可使用例如ε-贪婪算法(epsilon-greedy algorithm)在预定的时间百分比(例如,10%)选择随机值。
Q矩阵406可有效取代下一跃点表及/或仲裁逻辑。例如,与Q矩阵406中的每一列相关联的动作可对应于路由器402之外的基本方向中的一者。对于3D封装,这可包括北、南、东、西、上、下等。Q矩阵406可随着系统的增长而保持静态大小,而不是储存随着系统的规模增长而增长的下一跃点表,因为状态及动作的数量可保持不变,而与网络规模无关。这解决了下一跃点表的大小及仲裁逻辑随系统规模增长的技术问题。
奖励逻辑404可用于驱动强化学习算法的无监督学习。不使用单独的训练及推理模式,而是可使用由奖励逻辑404计算的奖励来设定Q矩阵中的权重。如下文详细描述的,奖励逻辑404可接收对应于在源与目的地之间的总路由的全局奖励。奖励逻辑404也可计算对应于从路由器402向哪个方向发送包的即时决策的局部奖励。这两个奖励可组合成一个奖励值,所述奖励值用于更新Q矩阵406中每个动作的权重。如本文所使用的,术语“奖励”可指在下文描述的等式中用来更新Q矩阵406中的权重的数值。最终计算的奖励可在强化学习算法中使用。
逻辑块410可包括使用Q矩阵406的输出执行数学运算的数字逻辑电路或微控制器。例如,一些实施方式可表示Q矩阵406中的其他动作,而不是要路由的包的下一个方向。这些其他动作可由逻辑块410转化成对应输入被路由到对应输出的定时(timing)及方向。此外,逻辑块410可基于当前奖励更新与动作相关联的权重或值。例如,下文的等式(1)示出了更新动作的Q值的一种方法。
其中St及St+1是路由器402的当前及下一个状态,at及at+1是由路由器使用Q矩阵选择的当前及下一个动作,γ是介于0及1之间的折扣因子,γ定义路由器402应该在多大程度上(how much)考虑长期奖励而不是即时奖励,∝是介于0及1之间的学习速率因子,∝确定新Q值应该多强地(how strongly)取代先前Q值,且rt是基于组合的全局及局部奖励的此位置的当前奖励值。如下所述,可使用在每次迭代中重新计算的局部奖励来更新当前奖励值rt。
图5图示根据一些实施方式,可如何使用局部奖励修改全局路由以避免来自特定路由器的局部瓶颈的实例。整体上从路由网络的角度来看,全局奖励可用于计算最有效的路由。例如,当遵循在源502与目的地510之间的路径506时,全局奖励可生成产生正奖励的数值。此全局奖励可被广播到路由网络中的每个路由器。例如,路由器506可包括激励(例如,具有正奖励值)沿着路径506的路由并且抑制其他路径的全局奖励部件。
若路由器504完全遵循全局奖励,则从源502到目的地510的每个包将遵循相同的路径506。然而,此全局奖励没有解决沿着路径506的任何临时的局部瓶颈。例如,在不同的源与目的地之间的若干不同路径可使用与路径506相同的路由的一部分在路由器504与路由器505之间行进。尽管从全局角度来看,路径506可能是最有效的路由,但是来自使用此段的多个不同全局路由的通信量可能会沿着在路由器504与路由器505之间的路由临时聚集。因此,此临时的局部瓶颈可能形成,引起全局路径506不再是最佳路由。
为解决这个问题,一些实施方式可使用局部奖励,所述局部奖励由每个路由器单独维护,所述路由器捕获包的动作或行进方向连同包的分数(score)。此局部奖励值可基于可在路由器处局部测量的任何度量。例如,一些实施方式可测量包在被允许在路径506上继续之前在路由器504处等待的周期数。局部奖励的其他实例可包括测量延迟、处理量、对包进行优先级排序及满足QoS度量的能力等。随着针对局部奖励测量的度量改变,局部奖励可被重新计算及更新。例如,当等待路径506上的开放通道的延迟时间超过阈值时,对于遵循路径506的动作,局部奖励可能变得更消极。对于沿着另一路由将包从路径506上的局部瓶颈发送出去的动作,奖励可变得较不消极,或变得更积极。
应注意,可在路由网络运行期间,在每个路由器处重新计算局部奖励。不是使用在初始优化期结束后不变的全局奖励来学习单个最佳路由,而是系统可不断学习最佳路由,并且克服在操作期间出现及消失的动态瓶颈。每个局部路由器可将针对所述路由广播的全局奖励与在所述路由器处计算的个别局部奖励组合。随后,在采取每个动作之后,此组合的奖励可用于更新Q矩阵。随着时间的推移,每个个别路由元素“学习”每类包的最佳当前路由。随着通信量模式及工作负载行为的改变,自学习算法基于全局奖励方案及局部奖励方案二者来适配路由功能。在各种实施方式中,组合这两个奖励可包括执行这两个奖励的加权组合、平均值或其他数学组合,以形成最终奖励。
图6图示根据一些实施方式,全局奖励可如何传达并且与局部奖励互动。与传统强化学习算法或神经网络(传统强化学习算法或神经网络将传统强化学习算法或神经网络的学习矩阵初始化为“0”权重)不同,一些实施方式可使用非零初始权重作为静态路由策略。这确保了经由路由网络的初始封包可被路由且不被丢弃。Q矩阵可从初始权重开始,且当在每个路由器节点处发现优越路由时更新这些权重。这确保了当学习算法探索路由网络以寻找最佳路由时,初始封包不在网络中被丢弃或丢失。这也提供了静态回退或故障安全解决方案。这些初始权重可基于服务级别协议(service level agreement),以确保不同的包类型根据包类型所需的服务级别来传输。这些初始权重也可定义在源与目的地之间包括最少跃点数的最佳路由。
在此实例中,可基于具有源及目的地的最佳路径计算全局奖励。路由器604可计算沿路由的每个路由器的全局奖励,并且将全局奖励广播到每个路由器。在此实例中,这可包括向中间路由器606广播全局奖励,且路由器606可使用全局奖励来更新路由器606的Q矩阵权重。当接收全局奖励时,源与目的地之间的路径中的每个路由器可用该目的地的全局奖励来更新Q矩阵。当包在向目的地路由器608传输时被路由器606接收时,可在路由器606处为每个动作计算局部奖励。这允许强化学习算法适应路由器606的局部通信量,同时仍然并入整个路由的全局奖励。
图7A图示根据一些实施方式的在先前路由器中使用的交叉开关阵列的替代物。如上所述,交叉开关阵列随着路由器上端口的数量呈指数增长。尽管交叉开关阵列在路由器上的输入与输出之间提供了高水平的互连,但是交叉开关阵列没有被高效地使用。可以显示的是,交叉开关阵列内不同路由的平均利用率低于30%。然而,由于使用上文所述的下一跃点表及仲裁逻辑的低效率,交叉开关阵列被认为是必要的,以便在路由器上不同方向中的输入与输出之间提供详尽水平的连接。
暂时返回图4,交叉开关阵列可替换为间接总线412。如本文所使用的,术语“直接”可用来指示允许多个输入与输出之间一对一连接的交叉开关阵列或其他拓扑。相对的,术语“间接”可用于指输入与输出之间共用的总线,每条总线每次由一个连接使用。在不使用本文描述的强化学习算法的先前路由器系统中,交叉开关阵列是提供完全连接性的必要元素。但是,已经显示了强化学习算法在路由器内内部地路由通信量时效率高得多。因此,可使用如图7A中所示的间接总线来代替交叉开关阵列。具体而言,由强化学习算法做出的路由决策的效率可最大化间接总线710的利用,以协调输入702与输出704之间的通信量。强化学习算法可适应总线710的拓扑以高效地利用所述总线。因此,即使总线710上有较少的连接,经由总线路由通信量的效率也能够取代更大及更昂贵的交叉开关阵列。图7B图示具有多条总线706、708的另一间接总线设计,此间接总线设计可在此相同的原理下被优化。间接总线或对于交叉开关阵列的其他替代物的其他实例可包括基于时间序列的网络(例如,LSTM、注意力(Attention)),基于时间序列的网络可得到支持来预测序列中的下一个包,以显著降低仲裁复杂性。可根据预测的下一个包来配置间接网络,以减少缓冲要求及路径延迟。
图8图示为由路由器接收的包确定下一跃点的方法的流程图。所述方法可由上文图4所示的路由器来执行。这些操作可使用在路由器的硬件或软件中实现的强化学习算法。当在软件中实现时,一些实施方式可基于储存在一或更多个存储器装置上或非暂时性计算机可读介质上的指令,引起这些操作由一或更多个处理器执行。
所述方法可包括接收从源传输至目的地的包(802)。包可从诸如SoC中的小芯片或子系统之类的源传输。所述包可包括储存源/目的地信息的头部。可在与一或更多个虚拟通道相关联的物理通道上接收包。所述包可经由NoPK或NoC系统传输。
所述方法还可包括从多个状态中确定包的状态(804)。在一些实施方式中,状态确定不需要使用路由器的位置或序列作为状态。相反,一些实施方式可使用诸如以下因素的因素:包的优先等级、包的QoS水平、包的数据类型、包的有效载荷类型、包的有效载荷值、包从源传输到目的地时的当前延迟、包的大小及/或其他因素。状态的数量可与系统中可用作端点的小芯片或系统的数量无关。状态的数量也可与路由器上的端口数量无关。换言之,一些实施方式可独立于端点或端口的数量来确定状态。通常,当端点或端口的数量增加或减少时,状态的数量不改变。
所述方法可额外包括接收与在源与目的地之间的路由对应的全局奖励(806)。可针对在源与目的地之间的路由计算全局奖励。假设未遇到临时或局部瓶颈,全局奖励可包括在源与目的地之间产生最佳路径的奖励或惩罚。全局奖励可被广播到路由器,且全局奖励可用于重新计算学习或强化矩阵(诸如Q矩阵)的权重。
所述方法可进一步包括计算对应于路由器可用的下一跃点的局部奖励(808)。局部奖励可包括基于局部度量计算的值,诸如与包或目的地相关联的局部周期数或延迟。局部奖励可响应于局部瓶颈,且局部奖励的影响可引起在源与目的地之间的原始路由被重新路由,以避免局部瓶颈。在执行每个动作之后,可重新计算局部奖励,且可相应地更新Q矩阵。这允许局部奖励不断地学习及调整,以找到局部地绕过瓶颈的最佳路由。
所述方法还可包括组合全局奖励及局部奖励,以生成对应于多个状态的多个动作的权重(810)。组合这两个奖励可包括创建这两个值的加权组合、平均值或任何其他数学组合,以生成动作的总奖励。
所述方法可额外包括基于包状态的权重确定对应于包状态的动作(812)。所述动作可指示在源与目的地之间的路由中的下一跃点,诸如北、南、东、西、上、下等。选择适当的动作可包括针对包的给定状态选择具有最高权重的动作。其他实施方式可偶尔随机选择一个动作来探索其他路由。所述方法可进一步包括将包路由到下一跃点(814)。
应理解,图8中所示的具体步骤提供根据各种实施方式确定由路由器接收的包的下一跃点的具体方法。根据替代实施方式,也可执行其他步骤序列。例如,替代实施方式可以不同的顺序执行上述步骤。此外,图8中所示的个别步骤可包括多个子步骤,这些子步骤可按照适合于个别步骤的各种顺序来执行。此外,取决于特定的应用,可增加或移除额外的步骤。许多变更、修改及替换也落入本公开内容的范围内。
在前述说明中,出于解释目的,阐述了许多具体细节,以提供对各种实施方式的全面理解。然而,明显的是,一些实施方式可在没有这些具体细节中的一些具体细节的情况下实施。在其他情况下,熟知的结构及装置以方框图形式示出。
前述说明仅提供示例性实施方式,无意限制本公开内容的范围、适用性或配置。相反,各种实施方式的前述描述将提供用于实现至少一个实施方式的可实现的公开内容。应当理解,在不脱离所附权利要求书中阐述的一些实施方式的精神及范围的情况下,可对元件的功能及布置进行各种改变。
前述说明中给出了具体细节,以提供对实施方式的全面理解。然而,将会理解,可在没有这些具体细节的情况下实施实施方式。例如,电路、系统、网络、工艺及其他部件可能已经以方框图形式示出为部件,以便不在不必要的细节上模糊实施方式。在其他情况下,为了避免模糊实施方式,熟知的电路、流程、算法、结构及技术可在没有不必要的细节的情况下示出。
还应注意,个别实施方式可能已作为被描绘为流程图、流程示意图、数据流示意图、结构图或方框图的工艺被描述。尽管流程图可能已经将操作描述为顺序工艺,但是许多操作可并行或同时执行。此外,可重新安排操作的顺序。当一工艺的操作完成时,所述工艺终止,但是可能有图中没有包括的额外步骤。工艺可对应于方法、函数、过程、子例程、子程序等。当一工艺对应于一函数时,工艺的终止可对应于所述函数返回到调用函数或主函数。
术语“计算机可读介质”包括但不限于可携式或固定式储存装置、光学储存装置、无线通道及能够储存、包含或携带指令及/或数据的各种其他介质。代码段或机器可执行指令可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或指令、数据结构或程序语句的任何组合。通过传递及/或接收信息、数据、自变量、参数或存储器内容,代码段可耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可经由任何合适的手段传递、转发或传输,包括存储器共用、消息传递、令牌传递、网络传输等。
此外,实施方式可由硬件、软件、固件、中间件、微代码、硬件描述语言或上述项目的任意组合实施。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段可储存在机器可读介质中。处理器可执行必要的任务。
在前述说明书中,参照特征的特定实施方式描述了特征,但应认识到,并非所有实施方式均限于此。一些实施方式的各种特征及方面可单独或联合使用。此外,在不脱离本说明书的更广泛的精神及范围的情况下,实施方式可用于本文描述的环境及应用之外的任何数量的环境及应用中。相应地,说明书及附图应被视为说明性的而非限制性的。
此外,出于说明目的,以特定顺序描述方法。应当理解,在替代实施方式中,这些方法可以不同于所描述的顺序来执行。还应当理解,上述方法可由硬件部件来执行,或者可体现在机器可执行指令的序列中,这些指令可用于引起机器(例如通用或专用处理器或用指令编程的逻辑电路)执行这些方法。这些机器可执行指令可储存在一或更多个机器可读介质上,诸如CD-ROM或其他类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪存存储器或其他类型的适于储存电子指令的机器可读介质。或者,这些方法可经由硬件及软件的组合来执行。
Claims (20)
1.一种路由器,包括:
多个输入缓冲器,被配置为接收被从源传输到目的地的包;
状态生成器,被配置为从多个状态中确定所述包的状态;
存储器,表示对应于所述多个状态的多个动作的权重,其中所述存储器被配置为返回与所述包的所述状态对应的动作,且所述动作指示所述源与所述目的地之间的路由中的下一跃点;及
奖励逻辑,被配置为在所述存储器中生成所述多个动作的这些权重,其中所述奖励逻辑被配置为:
接收与在所述源与所述目的地之间的所述路由对应的全局奖励;
计算与所述路由器可用的下一跃点对应的局部奖励;及
组合所述全局奖励与所述局部奖励以在所述存储器中生成所述多个
动作的这些权重。
2.如权利要求1所述的路由器,进一步包括间接总线,所述间接总线将所述多个输入缓冲器连接到多个输出缓冲器。
3.如权利要求2所述的路由器,其中所述间接总线不包括交叉开关阵列。
4.如权利要求1所述的路由器,其中所述路由器是封包上网络(NoPK)的部分,并且所述源及所述目的地包括小芯片。
5.如权利要求1所述的路由器,其中所述路由器是片上网络的部分,并且所述源及所述目的地包括SoC上的子系统。
6.如权利要求1所述的路由器,其中所述存储器包括静态随机存取存储器(SRAM),所述SRAM储存用于Q学习算法的Q矩阵。
7.如权利要求1所述的路由器,其中组合所述全局奖励与所述局部奖励以生成所述多个动作的这些权重包括使用每个动作的所述全局奖励与所述局部奖励的加权组合。
8.如权利要求1所述的路由器,其中所述全局奖励包括值,所述值基于在所述源与所述目的地之间的优化路径来惩罚或奖励路由器的下一跃点。
9.如权利要求1所述的路由器,其中所述局部奖励包括被更新以反映由所述路由器观察到的局部瓶颈的值。
10.如权利要求1所述的路由器,其中将所述全局奖励与所述局部奖励组合引起所述包的下一跃点改变,以避免局部瓶颈。
11.一种为由路由器接收的包确定下一跃点的方法,所述方法包括以下步骤:
在路由器处接收从源传输到目的地的包;
在所述路由器处,从多个状态中确定所述包的状态;
在所述路由器处接收与在所述源与所述目的地之间的所述路由对应的全局奖励;
在所述路由器处计算与所述路由器可用的下一跃点对应的局部奖励;
在所述路由器处组合所述全局奖励与所述局部奖励,以生成对应于所述多个状态的多个动作的权重;
在所述路由器处,基于所述包的所述状态的权重来确定对应于所述包的所述状态的动作,其中所述动作指示在所述源与所述目的地之间的路由中的下一跃点;及
将所述包路由到所述下一跃点。
12.如权利要求11所述的方法,其中将所述包路由到所述下一跃点的步骤包括以下步骤:经由内部网络路由所述包,所述内部网络包括间接总线,所述间接总线不包括交叉开关阵列。
13.如权利要求11所述的方法,其中所述全局奖励包括值,所述值基于在所述源与所述目的地之间的优化路径惩罚或奖励路由器的下一跃点。
14.如权利要求11所述的方法,其中所述局部奖励包括被更新以反映由所述路由器观察到的局部瓶颈的值。
15.如权利要求11所述的方法,其中组合所述全局奖励与所述局部奖励的步骤引起所述包的下一跃点改变,以避免局部瓶颈。
16.一种路由器,包括:
多个输入缓冲器,被配置为接收从源传输到目的地的包;
电路系统,所述电路系统实施强化学习算法,所述强化学习算法确定所述包的状态,并且选择指示所述包的下一跃点的对应动作,其中所述强化学习算法将与在所述源与所述目的地之间的所述路由对应的全局奖励及与所述路由器可用的下一跃点对应的局部奖励组合;及
多个输出缓冲器,被配置为接收所述包,并且基于所述包的所述状态将所述包路由到由所述强化学习算法选择的所述下一跃点。
17.如权利要求16所述的路由器,其中所述强化学习算法包括Q学习算法。
18.如权利要求16所述的路由器,其中所述强化学习算法基于折扣因子更新指派给所述动作的权重,所述折扣因子相对即时奖励将长期奖励进行加权。
19.如权利要求16所述的路由器,其中所述强化学习算法基于学习速率因子更新指派给所述动作的权重,所述学习速率因子相对先前权重将新权重进行加权。
20.如权利要求16所述的路由器,进一步包括间接总线,所述间接总线在所述多个输入缓冲器与多个输出缓冲器之间不使用交叉开关阵列。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/348,183 | 2021-06-15 | ||
US17/348,183 US20220400073A1 (en) | 2021-06-15 | 2021-06-15 | Router architecture for multi-dimensional topologies in on-chip and on-package networks |
PCT/US2022/031139 WO2022265839A1 (en) | 2021-06-15 | 2022-05-26 | Router architecture for multi-dimensional topologies in on-chip and on-package networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117716676A true CN117716676A (zh) | 2024-03-15 |
Family
ID=84390680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280051922.8A Pending CN117716676A (zh) | 2021-06-15 | 2022-05-26 | 用于芯片上及封包上的网络中的多维拓扑的路由器架构 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220400073A1 (zh) |
EP (1) | EP4356585A1 (zh) |
KR (1) | KR20240018642A (zh) |
CN (1) | CN117716676A (zh) |
TW (1) | TW202318843A (zh) |
WO (1) | WO2022265839A1 (zh) |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120683B2 (en) * | 2000-04-03 | 2006-10-10 | Zarlink Semiconductor V.N. Inc. | Single switch image for a stack of switches |
US7382731B1 (en) * | 2003-03-05 | 2008-06-03 | Cisco Technology, Inc. | Method and apparatus for updating probabilistic network routing information |
KR100601881B1 (ko) * | 2004-01-28 | 2006-07-19 | 삼성전자주식회사 | 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법 |
KR100653087B1 (ko) * | 2005-10-17 | 2006-12-01 | 삼성전자주식회사 | AXI가 적용된 NoC 시스템 및 그 인터리빙 방법 |
JP5083464B2 (ja) * | 2009-05-25 | 2012-11-28 | 日本電気株式会社 | ネットワークオンチップとネットワークルーティング方法とシステム |
US8699484B2 (en) * | 2010-05-24 | 2014-04-15 | At&T Intellectual Property I, L.P. | Methods and apparatus to route packets in a network |
US8700801B2 (en) * | 2010-12-01 | 2014-04-15 | Juniper Networks, Inc. | Dynamically generating application-layer traffic optimization protocol maps |
GB2493710A (en) * | 2011-08-12 | 2013-02-20 | Uni Catholique De Louvain | A method for the sender of a packet to select the path the packet takes through a network. |
EP2665231B1 (en) * | 2012-05-16 | 2017-07-05 | Alcatel Lucent | A method and computer program products for routing a data unit |
WO2014128802A1 (ja) * | 2013-02-19 | 2014-08-28 | パナソニック株式会社 | インタフェース装置およびバスシステム |
US9699079B2 (en) * | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
US10552740B2 (en) * | 2014-11-10 | 2020-02-04 | International Business Machines Corporation | Fault-tolerant power-driven synthesis |
US11165717B2 (en) * | 2015-10-26 | 2021-11-02 | Western Digital Technologies, Inc. | Fabric interconnection for memory banks based on network-on-chip methodology |
US10205651B2 (en) * | 2016-05-13 | 2019-02-12 | 128 Technology, Inc. | Apparatus and method of selecting next hops for a session |
US10355975B2 (en) * | 2016-10-19 | 2019-07-16 | Rex Computing, Inc. | Latency guaranteed network on chip |
US10084687B1 (en) * | 2016-11-17 | 2018-09-25 | Barefoot Networks, Inc. | Weighted-cost multi-pathing using range lookups |
US10911261B2 (en) * | 2016-12-19 | 2021-02-02 | Intel Corporation | Method, apparatus and system for hierarchical network on chip routing |
US20180183726A1 (en) * | 2016-12-27 | 2018-06-28 | Netspeed Systems, Inc. | Traffic mapping of a network on chip through machine learning |
US10397097B2 (en) * | 2017-01-18 | 2019-08-27 | Futurewei Technologies, Inc. | Weighted next hop selection at a router using an equal cost multipath process |
US11121962B2 (en) * | 2017-01-31 | 2021-09-14 | Vmware, Inc. | High performance software-defined core network |
US20190280963A1 (en) * | 2017-01-31 | 2019-09-12 | The Mode Group | High performance software-defined core network |
US11706127B2 (en) * | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US10686729B2 (en) * | 2017-03-29 | 2020-06-16 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
US10721187B1 (en) * | 2017-05-18 | 2020-07-21 | Juniper Networks, Inc. | Emulating output queued behavior in a virtual output queue switch |
US10931530B1 (en) * | 2017-06-26 | 2021-02-23 | Amazon Technologies, Inc. | Managing routing resources of a network |
US10924385B2 (en) * | 2017-11-07 | 2021-02-16 | Nicira, Inc. | Weighted multipath routing configuration in software-defined network (SDN) environments |
US11126929B2 (en) * | 2017-11-09 | 2021-09-21 | Ciena Corporation | Reinforcement learning for autonomous telecommunications networks |
US10983910B2 (en) * | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
KR102032362B1 (ko) * | 2018-05-15 | 2019-11-08 | 경기대학교 산학협력단 | 강화학습을 통한 멀티 캐스트 라우팅 장치 및 방법 |
US20200067637A1 (en) * | 2018-08-21 | 2020-02-27 | The George Washington University | Learning-based high-performance, energy-efficient, fault-tolerant on-chip communication design framework |
WO2020236277A1 (en) * | 2019-05-23 | 2020-11-26 | Cray Inc. | System and method for facilitating tracer packets in a data-driven intelligent network |
US20220182977A1 (en) * | 2019-05-28 | 2022-06-09 | Apple Inc. | Soft resource signaling in relay networks |
US10917328B2 (en) * | 2019-06-27 | 2021-02-09 | Intel Corporation | Routing updates in ICN based networks |
US20220222513A1 (en) * | 2019-09-03 | 2022-07-14 | Agency For Science, Technology And Research | Neural network processor system and methods of operating and forming thereof |
WO2021084485A1 (en) * | 2019-10-30 | 2021-05-06 | Cerebras Systems Inc. | Placement of compute and memory for accelerated deep learning |
US11398980B2 (en) * | 2019-11-19 | 2022-07-26 | Advanced Micro Devices, Inc. | Packet router with virtual channel hop buffer control |
US11438256B1 (en) * | 2020-02-27 | 2022-09-06 | Amazon Technologies, Inc. | Network routing tables generated based on pricing information |
US11398972B2 (en) * | 2020-03-31 | 2022-07-26 | Juniper Networks, Inc. | Transport endpoint segments for inter-domain segment routing |
US20210326275A1 (en) * | 2020-04-15 | 2021-10-21 | EMC IP Holding Company LLC | Dynamic bandwidth allocation of storage system ports |
US11489788B2 (en) * | 2020-05-04 | 2022-11-01 | The George Washington University | Interconnection network with adaptable router lines for chiplet-based manycore architecture |
KR102474054B1 (ko) * | 2020-06-22 | 2022-12-06 | 주식회사 퓨리오사에이아이 | 뉴럴네트워크 프로세서 |
KR102474053B1 (ko) * | 2020-06-22 | 2022-12-06 | 주식회사 퓨리오사에이아이 | 뉴럴네트워크 프로세서 |
US11762718B2 (en) * | 2020-08-26 | 2023-09-19 | Hewlett Packard Enterprise Development Lp | Automatically optimized credit pool mechanism based on number of virtual channels and round trip path delay |
US11658922B2 (en) * | 2020-08-31 | 2023-05-23 | Micron Technology, Inc. | Optional path ordering in packet-based network |
US11362939B2 (en) * | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Flow control for a multiple flow control unit interface |
US11329916B2 (en) * | 2020-09-03 | 2022-05-10 | 128 Technology, Inc. | Device information method and apparatus for directing link-layer communication |
US11706146B1 (en) * | 2020-09-17 | 2023-07-18 | Amazon Technologies, Inc. | Directing network traffic using local routing decisions with a global overview |
US11595302B2 (en) * | 2020-09-23 | 2023-02-28 | Ciena Corporation | Controlling routing behavior during router table-memory exhaustion events |
US20220129769A1 (en) * | 2020-10-22 | 2022-04-28 | International Business Machines Corporation | Modular neural network computing apparatus with distributed neural network storage |
KR20220056621A (ko) * | 2020-10-28 | 2022-05-06 | 삼성전자주식회사 | 매니코어 시스템을 위한 뉴럴 네트워크 모델 처리의 병렬화 방법 및 장치 |
US11563687B2 (en) * | 2021-02-04 | 2023-01-24 | Ciena Corporation | Controlling distributed buffers in a network to manage data packets |
US20220116322A1 (en) * | 2021-12-23 | 2022-04-14 | Intel Corporation | Interconnect network for multi-tile system on chips |
CN115277551B (zh) * | 2022-07-28 | 2024-01-12 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
US20230027585A1 (en) * | 2022-09-28 | 2023-01-26 | Intel Corporation | Inter-chiplet routing of transactions across multi-heterogeneous chiplets using hierarchical addressing |
-
2021
- 2021-06-15 US US17/348,183 patent/US20220400073A1/en active Pending
-
2022
- 2022-05-26 WO PCT/US2022/031139 patent/WO2022265839A1/en active Application Filing
- 2022-05-26 KR KR1020247000857A patent/KR20240018642A/ko unknown
- 2022-05-26 EP EP22825530.3A patent/EP4356585A1/en active Pending
- 2022-05-26 CN CN202280051922.8A patent/CN117716676A/zh active Pending
- 2022-06-10 TW TW111121616A patent/TW202318843A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20220400073A1 (en) | 2022-12-15 |
WO2022265839A1 (en) | 2022-12-22 |
EP4356585A1 (en) | 2024-04-24 |
TW202318843A (zh) | 2023-05-01 |
KR20240018642A (ko) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220224656A1 (en) | Programmable logic device with integrated network-on-chip | |
US8819616B2 (en) | Asymmetric mesh NoC topologies | |
US20230135934A1 (en) | Scalable Network-on-Chip for High-Bandwidth Memory | |
US10074053B2 (en) | Clock gating for system-on-chip elements | |
US9294403B2 (en) | Mechanism to control resource utilization with adaptive routing | |
US9742630B2 (en) | Configurable router for a network on chip (NoC) | |
US20140092740A1 (en) | Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices | |
US20130064091A1 (en) | Method and apparatus for congestion-aware routing in a computer interconnection network | |
US10206175B2 (en) | Communications fabric with split paths for control and data packets | |
US20190266088A1 (en) | Backbone network-on-chip (noc) for field-programmable gate array (fpga) | |
JP5552196B2 (ja) | 中継装置、中継装置の制御方法、およびコンピュータプログラム | |
US10547514B2 (en) | Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation | |
Cota et al. | NoC basics | |
CN117716676A (zh) | 用于芯片上及封包上的网络中的多维拓扑的路由器架构 | |
US20180198682A1 (en) | Strategies for NoC Construction Using Machine Learning | |
CN101540786A (zh) | 面向外设需求的片上网络通讯的优化方法 | |
Salah et al. | Design of a 2d mesh-torus router for network on chip | |
Alimi et al. | Network-on-Chip Topologies: Potentials, Technical Challenges, Recent Advances and Research Direction | |
CN114584507B (zh) | 基于类脑处理器的数据处理方法、路由器及网络系统 | |
US11144457B2 (en) | Enhanced page locality in network-on-chip (NoC) architectures | |
Imai et al. | Performance modeling and analysis of on-chip networks for real-time applications | |
Matos et al. | Highly efficient reconfigurable routers in Networks-on-Chip | |
Sahu | Bidirectional Network-on-Chip Router Implementation Using VHDL | |
Ye et al. | The Design and Implementation of a NoC System Based on SoCKit |
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 |