CN116049087A - 一种基于片上网络的众核智能处理器通信架构设计方法 - Google Patents
一种基于片上网络的众核智能处理器通信架构设计方法 Download PDFInfo
- Publication number
- CN116049087A CN116049087A CN202310109672.5A CN202310109672A CN116049087A CN 116049087 A CN116049087 A CN 116049087A CN 202310109672 A CN202310109672 A CN 202310109672A CN 116049087 A CN116049087 A CN 116049087A
- Authority
- CN
- China
- Prior art keywords
- network
- instruction
- node
- data
- packet
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000013461 design Methods 0.000 title claims abstract description 18
- 230000005540 biological transmission Effects 0.000 claims abstract description 31
- 230000015654 memory Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 15
- 239000000872 buffer Substances 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000004460 liquid liquid chromatography Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于片上网络的众核智能处理器通信架构设计方法,所述众核智能处理器包括资源节点、通信节点、网络接口和网络通路,所述方法包括以下步骤:步骤1,采用支持端到端数据持续传输的虫洞路由器来构成通信节点;步骤2,对网络接口进行优化设计。本发明提出了一种支持支持端到端数据连续(突发)传输的虫洞路由网络架构,能高效传输大规模数据;本发明提出了一种高带宽跨节点Ruche通道,进一步提升网络整体带宽;本发明提出了一种张量指令共享方案,来减轻因不同张量计算核读取相同指令带来的网络负载。
Description
技术领域
本发明涉及一种基于片上网络的众核智能处理器通信架构设计方法。
背景技术
提升单个处理器核的性能来提升系统整体性能已变得非常困难,通过增加单芯片处理器核的数量已经成为继续提升计算机性能的必然趋势。传统的片上多核系统通常采用独占式总线或交叉开关等互连结构,但随着单芯片上集成的处理器核数越来越多,传统互连架构出现了通信效率低下、可扩展性差等问题。这使得单芯片可集成处理器数出现上限。
为了进一步增加单芯片处理器核的数量,文献“S.Davidson et al.,"TheCelerity Open-Source 511-Core RISC-V Tiered Accelerator Fabric:FastArchitectures and Design Methodologies for Fast Chips,"in IEEE Micro,vol.38,no.2,pp.30-41,Mar./Apr.2018,doi:10.1109/MM.2018.022071133”采用了一种二维网状网络来实现众核处理器,但其采用的路由网络在传输数据时每拍都需经仲裁器仲裁,这影响了大量数据在网络中传输的带宽;文献“A.Kurth et al.,"An Open-Source Platformfor High-Performance Non-Coherent On-Chip Communication,"in IEEE Transactionson Computers,vol.71,no.8,pp.1794-1809,1Aug.2022,doi:10.1109/TC.2021.3107726”则采用改进的全相联交叉开关实现了一种树形拓扑架构来集成大量处理器核,且基于此架构评估了负载神经网络时的性能并改进相应算法,此架构使用的长条形交叉开关存在布线过长导致的延迟增加等问题,这限制了处理器核的扩展。
发明内容
发明目的:为解决传统总线结构由于地址空间有限导致的可扩展性差,分时通讯引起的通讯效率低下,以及全局时钟同步引起的功耗和面积等问题,本发明提出了一种基于片上网络的众核智能处理器架构。提出的片上网络众核互联架构主要借鉴了分布式计算系统的通讯方式,采用数据路由和分组交换技术替代传统的总线结构,从而提升通信效率及可扩展性等。另外,此片上网络架构还针对卷积神经网络等算法需要从内存传输大量数据的特性进行了相应的优化,以进一步提升整个网络的通信效率。
本发明具体提供一种基于片上网络的众核智能处理器架构设计方法,所述众核智能处理器包括资源节点、通信节点、网络接口和网络通路,本发明方法具体包括以下步骤:
步骤1,采用支持端到端数据持续传输的虫洞路由器来构成通信节点;
步骤2,对网络接口进行优化设计。
步骤1中,所述虫洞路由器包括输入通道和输出通道,所述输入通道包括解码器、输入控制模块、计数器和FIFO存储器,所述输出通道包括输出控制模块、仲裁器和多路复用器。
步骤1中,当输入通道的一个链路有有效数据包输入时,会先经过FIFO存储器缓存,再将数据包头部中的目标坐标信息发送给解码器,解码器将目标坐标信息与当前坐标信息比对后将目标方向信号发往输入控制模块,随后输入控制模块便会向输出控制模块中的轮询仲裁器广播请求信号,输出控制模块会根据仲裁结果向多路复用器发送选择信号,来控制输出通道链路数据包的输出。
步骤1中,所述数据包头部中还有一段长度信息会发送给输入控制模块中的递减计数器,递减计数器会将初始计数值设置为数据包长度,并根据输入通道和输出通道握手信号来递减,直至为零;所述输入控制模块也会根据计数值向输出控制模块发送一个释放信号,来维持输出通道的数据传输,直到整个数据包传输完成。
步骤2中,所述网络接口是通信节点与资源节点之间的接口,用于完成对数据包的封装与解封装,在源节点的资源网络接口中将原地址信息和目标地址信息等封装到数据包的头部,并在目标节点的资源网络接口中将原地址信息以及目标地址信息删除。
步骤2中,所述网络接口包括适配器和端点模块,所述适配器包括发送类适配器和接收类适配器,所述发送类适配器作为主端Master,完成对计算节点信号的初步打包,并将每个计算节点的处理器核所直接使用的端点虚拟地址EVA转换为网络物理地址NPA。
步骤2中,所述接收类适配器作为从端Slave,负责将外部传入的信号分发给处理器核或缓存,以及将处理器核或缓存的回复数据传至端点模块。
步骤2中,所述端点模块在适配器的基础上将所有信号打包封装成一个数据包,并通过路由链路发送至目标节点,以及对外部传入的数据包进行解封装。
步骤2中,所述端点模块内还有一个信用计数器来跟踪网络中未完成传输的数据包的数量和FIFO缓冲余量,信用计数器从未完成传输的数据包的最大数目开始,每发送一个包,计数就递减一次;数据包传输目标坐标下的端点模块会返回加载的数据响应或存储的信用数据包,源路由器收到数据响应后,会再次恢复计数器。
进一步的,本发明方法还包括步骤3:所述资源节点包括计算节点和存储节点,所述计算节点采用高度可编程的稀疏张量计算核,对张量计算核指令共享结构进行设计:不同计算核在分别进行卷积运算时,除第一个计算核需取指外,其余计算核直接跳过取指阶段并关闭指令缓存,需取指的计算核将下一条指令地址PC传给指令缓存,在完成取指后,将指令传给流水线寄存器用以解码;此外,指令还通过指令网络INET传出,其余计算核则直接从指令网络INET接收指令,FIFO存储器缓冲后,经由多路复用器传入指令缓存和流水线寄存器,并译码。
本发明具有如下有益效果:(1)本发明提出了一种支持支持端到端数据连续(突发)传输的虫洞路由网络架构,能高效传输大规模数据;
(2)本发明提出了一种高带宽跨节点Ruche通道,进一步提升网络整体带宽;
(3)本发明提出了一种张量指令共享方案,来减轻因不同张量计算核读取相同指令带来的网络负载。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是二维网状路由网络整体设计示意图。
图2是虫洞路由结构示意图。
图3是信用计数器工作原理示意图。
图4是Ruche通道(Ruche系数X=3,Y=2)的二维网状网路示意图。
图5是Ruche通道水平金属布线图。
图6是计算核指令共享结构示意图。
图7是主从处理器核之间的事务传输路径图。
图8是处理器核与LLC之间的事务传输路径图。
图9是两个相邻末级缓存LLC间数据传输路径图。
具体实施方式
本发明提供了一种基于片上网络的众核智能处理器通信架构设计方法,具体包括:
众核处理器片上网络通信架构总体设计:
众核处理器由资源节点、通信节点(主要由路由器构成)、网络接口(主要由端点和适配器组成)和网络通路四类模块组成,本发明主要涉及通信节点和网络接口,即对路由器、端点模块和适配器的创新设计与优化。二维网状路由网络整体设计如图1所示。
资源节点主要包括计算和存储两大类节点。计算节点可由处理器和各种加速器构成,存储节点一般采用DRAM和SDRAM等作为存储器。此外,资源节点也可以作为I/O接口,来连接外部设备。计算节点可以使用高度可编程的稀疏张量计算核作为计算节点,以支持多种DNN深度神经网络模型。
通信节点即路由节点或路由器,主要负责完成资源节点之间的数据通信任务。片上网络NoC中的资源节点产生一个数据包后,会通过特定的接口发送到源路由器中。源路由器会读取数据包的头部的地址信息,并通过轮询仲裁等算法选择最佳路由路径,将源节点(通常为发起读写命令的计算核等)发送的数据包快速地传输至目标节点,从而实现片内的端到端(处理器、加速器、存储器之间)的数据通信方式。本发明主要采用支持端到端数据持续传输的虫洞路由器来构成通信节点。
网络接口即通信节点与资源节点之间的接口。其主要功能为完成对数据包的封装与解封装。在源节点的资源网络接口中将原地址信息和目标地址信息等封装到数据包的头部,并在目标节点的资源网络接口中将原地址信息以及目标地址信息等删除。在本发明中,网络接口主要分为适配器和端点模块两部分。适配器主要分为发送和接收两类,发送类适配器作为主端Master,完成对计算节点(处理器或缓存)信号的初步打包,并将端点虚拟地址(EVA)转换为网络物理地址(NPA),接收类适配器为Slave端负责将外部传入的信号分发给处理器核或缓存,以及将核或缓存的回复数据传至端点。
网络通路实质为双向金属链路,用以保证节点间的数据传输。其分为内部通道和外部通道,内部通道为资源节点和通信节点之间的金属链路,外部通道指通信节点之间的金属链路。
虫洞路由器模块设计:
CNN等算法在进行计算前,往往需要先传输大量数据,比如从DDR中读取一个完整的特征图。常规的路由器每传输一拍数据均需要根据其目标节点坐标信息进行仲裁,向同一目标节点连续传输大量相同或相邻地址的数据时,根据轮询仲裁算法,如果某一输入通道已向某一输出通道发送过数据,其优先级将会降低,如果此时有其它输入通道向此输出通道发出请求,则原先的两个通道之间的数据传输将会被打断,这会导致路由网络延迟以及功耗的增加。本方案使用的虫洞路由器可有效解决此类问题。
如图2所示,虫洞路由器包括输入通道和输出通道,所述输入通道包括解码器、输入控制模块、计数器和先进先出FIFO(First Input First Outpu,)存储器,所述输出通道包括输出控制模块、仲裁器和多路复用器。
当输入通道的某一链路有有效数据包输入时,会先经过FIFO存储器缓存,再将数据包头部中的目标坐标信息发送给解码器,解码器将目标坐标信息与当前坐标信息比对(优先比较横向坐标,再比较纵向坐标)后将目标方向(输出通道)信号发往输入控制模块,随后输入控制模块便会向输出控制模块中的轮询仲裁器广播请求信号,输出控制模块会根据仲裁结果向多路复用器发送选择信号,来控制输出通道链路数据包的输出。
另外,数据包头部中还有一段长度信息会发送给输入控制模块中的递减计数器,递减计数器会将初始计数值设置为数据包长度,并根据输入通道和输出通道握手信号(任一对通道握手成功即表示一拍数据传输成功)来递减,直至为零。输入控制模块也会根据计数值向输出控制模块发送一个释放信号,来维持输出通道的数据传输,直到整个数据包传输完成(计数值归零)。
路由器的输入通道和输出通道数以及相应的功能模块数可根据不同的网络拓扑进行调整,在本发明采用的二维网状网络中一般设置为7对输入输出通道(5对常规通道,2对Ruche通道)。
端点模块设计:
端点模块则在适配器的基础上将所有信号打包封装成一个数据包,并通过路由链路发送至目标节点,以及对外部传入的数据包进行解封装,此外,如图3所示,端点模块内还有一个信用计数器来跟踪网络中未完成传输的数据包的数量和FIFO缓冲余量。信用计数器从未完成传输的数据包的最大数目开始,每发送一个包,计数就递减一次。数据包传输目标坐标下的端点模块会返回加载的数据响应或存储的信用数据包。源路由器收到这些数据响应后,会再次恢复计数器。该信用计数器可用于实现内存屏障,防止网络内的FIFO发生溢出等。
Ruche通道设计:
相距较远的节点之间进行通信会存在较大的延迟。卷积神经网络等算法往往需要在不同计算核之间传输大量数据,这对整个网络带宽的要求会变得非常高。所以本方案在每个通信节点中额外增加一组路由器,用以实现跨节点的并行高带宽链路通道。图4、图5展示了实现Ruche(褶带)通道(Ruche系数X=3,Y=2)的二维网状网路和水平金属布线。从图5中可看出每个TILE节点块不仅有组成常规路由网络的Local Router本地路由器,还有一组用来实现Ruche通道的Ruche Router路由器,INV即反相器。
张量计算核指令共享结构设计:
不同计算核在分别进行卷积运算时,所用指令基本相同。因此,除第一个核需取指外,其余计算核(同一行或同一列内)可直接跳过取指阶段并关闭指令缓存。如图6所示,需取指的核将下一条指令地址NPC传给指令缓存,在完成取指后,将指令传给流水线寄存器用以解码。此外,指令还通过指令网络INET传出,其余核则直接从INET接收指令(包括北N、东E、南S、西W四个方向),FIFO存储器缓冲后,经由多路复用器传入指令缓存(使能信号en需拉高)和流水线寄存器,并译码。此结构可加快指令读取,减小各个计算核更新指令缓存块所带来的网络负载。
数据包传输说明:
处理器核与相邻处理器核之间的数据包传输:
图7展示了一对主从处理器核之间的事务传输路径(加载或存储指令)。
从图中可以看到,远程请求信号从主机端张量计算核的加载/存储单元LSU模块向外发送,沿着相应通道发送到主机端适配器。
适配器内的地址转换单元通过内存映射的方式将来自张量计算核的远程请求信号中的端点虚拟地址转换为网络物理地址(即目标节点网络坐标及其端点物理地址)。随后,适配器将请求信号、地址信息等打包封装成一个数据包传给端点模块。
端点进一步将请求数据包及其有效信号打包封装,并沿着正向链路发送至虫洞路由器。另外,端点内部还有一个信用计数器来记录发送的请求数据包和接收的响应数据包信息。
主机端的正向虫洞路由器在接收到请求数据包后,会通过比对目标节点坐标和当前节点坐标来选择相应输出链路,将数据包发送给下一个路由节点。
在图7示例中,下一个路由节点即目标节点,所以该节点内的正向虫洞路由器会将此请求数据包传输至节点端点(若当前节点非目标节点,则路由器则会继续根据目标节点坐标和当前节点坐标比对结果将数据包转发至下一路由节点,直至达到目标节点)。
端点模块在接收到请求数据包时会将其先缓存至内部的FIFO存储器中,待处理器核处理完先前到达的请求并就绪时,端点就会将请求数据包解封装后传给从机端适配器。
从机端适配器则进一步根据指令、地址等信息将此请求发送至计算核内部的数据存储器或指令缓存。
随后,从机端计算核内的数据存储器会根据请求信号中的地址信息将主机端所请求的数据返回从机适配器。
从机适配器接收到返回数据时,会生成相应的有效信号,并将主机端所请求的数据及其有效信号发送至端点。
端点则将数据及其有效信号打包封装成响应数据包并通过反向链路发送至反向虫洞路由器。
反向路由器将响应数据包沿原路径返回至请求源节点。如果数据包的数据不止一拍,则反向虫洞路由器会维持此路径链路的畅通,让整个数据包内的所有数据拍从目标节点连续传回至源节点,无需仲裁器反复仲裁(如果在传输过程中有其他数据包需通过此链路,则需等待传输完成)。
源节点的反向路由器在接收到响应数据包后,会将其沿着反向链路传至端点,并先缓存至端点内的FIFO,并将有效信号拉高。待主机适配器握手成功,数据包便会经端点解封装后传至适配器。
适配器将传来的响应数据、有效信号等传输给处理器核内部的寄存器堆等。至此,一次完整的核到核远程传输事务完成。
处理器核与相邻LLC之间的数据包传输:
图8展示了处理器核与LLC之间的事务传输路径(加载或存储指令)。
从图8中可以看到,远程请求信号从张量计算核的LSU模块向外发送,沿着相应通道发送到主机端适配器。
主机适配器内的地址转换单元通过内存映射的方式将来自张量计算核的远程请求信号中的端点虚拟地址转换为网络物理地址(即目标节点网络坐标及其端点物理地址)。随后,主机适配器将请求信号、地址信息等打包封装成一个数据包传给端点。
端点进一步将请求数据包及其有效信号打包封装,并沿着正向链路发送至虫洞路由器。另外,端点内部还有一个信用计数器来记录发送的请求数据包和接收的响应数据包信息。
计算节点的正向虫洞路由器在接收到请求数据包后,会通过比对目标节点坐标和当前节点坐标来选择相应输出链路,将数据包发送给下一个路由节点。
在本图8示例中,下一个路由节点即目标节点,所以该主机端节点内的正向虫洞路由器会将此请求数据包传输至节点端点(如果当前节点非目标节点,则正向虫洞路由器则会继续根据目标节点坐标和当前节点坐标比对结果将数据包转发至下一路由节点,直至达到目标节点)。
节点端点在接收到请求数据包时会将其先缓存至内部的FIFO存储器中,待末级缓存LLC处理完先前到达的请求并就绪时,端点就会将请求数据包解封装后传给末级缓存LLC。
随后,末级缓存LLC会根据请求信号内的地址信息将相关数据及有效信号等返回端点。
端点会将数据及其有效信号等打包封装成数据包,并通过反向链路将数据包发送至反向虫洞路由器。
反向路由器则将响应数据包沿原路径返回至请求源节点。如果数据包的数据不止一拍,则反向虫洞路由器会维持此路径链路的畅通,让整个数据包内的所有数据拍从目标节点连续传回至源节点,无需仲裁器反复仲裁(如果在传输过程中有其他数据包需通过此链路,则需等待传输完成)。
源节点的反向路由器在接收到响应数据包后,会将其沿着反向链路传至端点,并先缓存至端点内的FIFO存储器,并将有效信号拉高。待主机端的适配器握手成功,数据包便会经端点解封装后传至适配器。
适配器将传来的响应数据、有效信号等传输给处理器核内部的寄存器堆等。至此,一次完整的核到末级缓存LLC远程传输事务完成。
末级缓存LLC与相邻末级缓存LLC之间的数据传输:
末级缓存LLC可以通过内部的DMA直接存储存取模块,来主动地向其它末级缓存LLC发送数据。图9展示了末级缓存LLC向另一个相邻LLC传输数据的路径图。
如图9所示,DMA路由转接模块(即DMA的适配器)内有一个发送状态机,默认情况下会在复位后自动跳转至SEND_READY(即发送就绪)状态,在此状态下,另一缓存的端点模块会将目标缓存的坐标等信息发送给自己的虫洞路由器(路径①),以尝试与目标缓存的虫洞路由器之间建立传输通道。
与此同时,DMA则会通过DMA包输出信号向DMA路由转接模块(先由FIFO存储器缓存)发送写使能信号和地址信息。
当与目标虫洞路由传来的Ready就绪信号(接收数据的FIFO未满就会拉高)握手成功时,发送状态机就会进入SEND_ADDR(即发送地址)状态,随即先把DMA包输出信号内的地址信息通过缓存路由输出链路发往目标缓存(②)。
随后,若握手仍成功,则发送状态机就会跳转为SEND_DATA状态,DMA便会继续通过DMA数据输出信号和缓存路由输出链路(③)将数据发送给目标缓存。
在发送地址和数据的过程中,目标缓存的DMA路由转接模块内的接收状态机会一直处于RECV_DATA状态,以维持数据通道的畅通。
本方案提出了一种基于虫洞路由器的二维网状网络架构,并增加额外的Ruche通道提升网络负载大量数据传输任务时的性能。此外,由于不同张量计算核在进行卷积运算时所用的指令有较高的重复性,网络还实现了指令共享结构来减轻多个不同张量计算核读取相同指令所带来的网络负载。
具体实现中,本申请提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的一种基于片上网络的众核智能处理器通信架构设计方法的发明内容以及各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,ROM)或随机存储记忆体(random access memory,RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机。MUU或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明提供了一种基于片上网络的众核智能处理器通信架构设计方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种基于片上网络的众核智能处理器通信架构设计方法,所述众核智能处理器包括资源节点、通信节点、网络接口和网络通路,其特征在于,包括以下步骤:
步骤1,采用支持端到端数据持续传输的虫洞路由器来构成通信节点;
步骤2,对网络接口进行优化设计。
2.根据权利要求1所述的方法,其特征在于,步骤1中,所述虫洞路由器包括输入通道和输出通道,所述输入通道包括解码器、输入控制模块、计数器和FIFO存储器,所述输出通道包括输出控制模块、仲裁器和多路复用器。
3.根据权利要求2所述的方法,其特征在于,步骤1中,当输入通道的一个链路有有效数据包输入时,会先经过FIFO存储器缓存,再将数据包头部中的目标坐标信息发送给解码器,解码器将目标坐标信息与当前坐标信息比对后将目标方向信号发往输入控制模块,随后输入控制模块便会向输出控制模块中的轮询仲裁器广播请求信号,输出控制模块会根据仲裁结果向多路复用器发送选择信号,来控制输出通道链路数据包的输出。
4.根据权利要求3所述的方法,其特征在于,步骤1中,所述数据包头部中还有一段长度信息会发送给输入控制模块中的递减计数器,递减计数器会将初始计数值设置为数据包长度,并根据输入通道和输出通道握手信号来递减,直至为零;所述输入控制模块也会根据计数值向输出控制模块发送一个释放信号,来维持输出通道的数据传输,直到整个数据包传输完成。
5.根据权利要求4所述的方法,其特征在于,步骤2中,所述网络接口是通信节点与资源节点之间的接口,用于完成对数据包的封装与解封装,在源节点的资源网络接口中将原地址信息和目标地址信息等封装到数据包的头部,并在目标节点的资源网络接口中将原地址信息以及目标地址信息删除。
6.根据权利要求5所述的方法,其特征在于,步骤2中,所述网络接口包括适配器和端点模块,所述适配器包括发送类适配器和接收类适配器,所述发送类适配器作为主端Master,完成对计算节点信号的初步打包,并将每个计算节点的处理器核所直接使用的端点虚拟地址EVA转换为网络物理地址NPA。
7.根据权利要求6所述的方法,其特征在于,步骤2中,所述接收类适配器作为从端Slave,负责将外部传入的信号分发给处理器核或缓存,以及将处理器核或缓存的回复数据传至端点模块。
8.根据权利要求7所述的方法,其特征在于,步骤2中,所述端点模块在适配器的基础上将所有信号打包封装成一个数据包,并通过路由链路发送至目标节点,以及对外部传入的数据包进行解封装。
9.根据权利要求8所述的方法,其特征在于,步骤2中,所述端点模块内还有一个信用计数器来跟踪网络中未完成传输的数据包的数量和FIFO缓冲余量,信用计数器从未完成传输的数据包的最大数目开始,每发送一个包,计数就递减一次;数据包传输目标坐标下的端点模块会返回加载的数据响应或存储的信用数据包,源路由器收到数据响应后,会再次恢复计数器。
10.根据权利要求9所述的方法,其特征在于,还包括步骤3:所述资源节点包括计算节点和存储节点,所述计算节点采用高度可编程的稀疏张量计算核,对张量计算核指令共享结构进行设计:不同计算核在分别进行卷积运算时,除第一个计算核需取指外,其余计算核直接跳过取指阶段并关闭指令缓存,需取指的计算核将下一条指令地址PC传给指令缓存,在完成取指后,将指令传给流水线寄存器用以解码;指令还通过指令网络INET传出,其余计算核则直接从指令网络INET接收指令,FIFO存储器缓冲后,经由多路复用器传入指令缓存和流水线寄存器,并译码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310109672.5A CN116049087A (zh) | 2023-02-14 | 2023-02-14 | 一种基于片上网络的众核智能处理器通信架构设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310109672.5A CN116049087A (zh) | 2023-02-14 | 2023-02-14 | 一种基于片上网络的众核智能处理器通信架构设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116049087A true CN116049087A (zh) | 2023-05-02 |
Family
ID=86121913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310109672.5A Pending CN116049087A (zh) | 2023-02-14 | 2023-02-14 | 一种基于片上网络的众核智能处理器通信架构设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049087A (zh) |
-
2023
- 2023-02-14 CN CN202310109672.5A patent/CN116049087A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347635B (zh) | 一种基于多层总线的异构多核微处理器 | |
US7788334B2 (en) | Multiple node remote messaging | |
US7155554B2 (en) | Methods and apparatuses for generating a single request for block transactions over a communication fabric | |
US9195610B2 (en) | Transaction info bypass for nodes coupled to an interconnect fabric | |
US6876561B2 (en) | Scratchpad memory | |
JP4124491B2 (ja) | 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ | |
US20190188164A1 (en) | A method and device for improved advanced microcontroller bus architecture (amba) and advanced extensible interface (axi) operations | |
US10210117B2 (en) | Computing architecture with peripherals | |
US20200081850A1 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
CN105207957B (zh) | 一种基于片上网络多核架构的系统 | |
US7277975B2 (en) | Methods and apparatuses for decoupling a request from one or more solicited responses | |
WO2013097793A1 (zh) | 一种片上多核数据传输方法和装置 | |
CN114443170A (zh) | Fpga动态并行加卸载系统 | |
CN106372029A (zh) | 一种基于中断的点对点片内通信模块 | |
WO2020062305A1 (zh) | 运算加速器、交换器、任务调度方法及处理系统 | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
CN102013984A (zh) | 二维网状片上网络系统 | |
CN103412849A (zh) | ARM处理器的NoC资源网络接口及其驱动方法 | |
CN116049087A (zh) | 一种基于片上网络的众核智能处理器通信架构设计方法 | |
Huang et al. | Accelerating NoC-based MPI primitives via communication architecture customization | |
Bruening et al. | ATOLL: A high-performance communication device for parallel systems | |
Stewart et al. | A new generation of cluster interconnect | |
Pande et al. | Performance optimization for system-on-chip using network-on-chip and data compression | |
CN109408453B (zh) | 一种高性能多节点互联并行传输控制方法 |
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 |