CN112181493B - 寄存器网络架构和寄存器访问方法 - Google Patents
寄存器网络架构和寄存器访问方法 Download PDFInfo
- Publication number
- CN112181493B CN112181493B CN202011014349.2A CN202011014349A CN112181493B CN 112181493 B CN112181493 B CN 112181493B CN 202011014349 A CN202011014349 A CN 202011014349A CN 112181493 B CN112181493 B CN 112181493B
- Authority
- CN
- China
- Prior art keywords
- task instruction
- routes
- route
- task
- processing
- 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
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Abstract
一种寄存器网络架构以及寄存器访问方法。该寄存器网络架构包括:第一处理单元,配置为发送第一任务指令,第一任务指令具有第一目的标识;至少一个第一路由,配置为与第一处理单元通信,且配置为,根据从第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送第二任务指令,第二任务指令具有第二目的标识;多个第二处理单元,每个配置为具有各自的第一对象标识,分别与至少一个第一路由通信,且配置为,根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对从所通信的第一路由接收的第二任务指令进行分配处理并发送第三任务指令。该寄存器网络架构可以简化硬件结构,提高信号传输效率。
Description
技术领域
本公开的实施例涉及一种寄存器网络架构和寄存器访问方法。
背景技术
寄存器(Register)是中央处理器内的组成部分,是有限存贮容量的高速存贮部件,可用来暂存指令、数据和地址。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。在计算机领域,寄存器是CPU(Central ProcessingUnit,中央处理器)内部的元件,包括通用寄存器、专用寄存器和控制寄存器。在中央处理器的控制部件中,寄存器包括指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。
发明内容
本公开至少一实施例提供一种寄存器网络通信系统,包括:第一处理单元,配置为发送第一任务指令,所述第一任务指令具有第一目的标识;至少一个所述第一路由,配置为与所述第一处理单元通信,且配置为,根据从所述第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送第二任务指令,所述第二任务指令具有第二目的标识;多个第二处理单元,分别与所述至少一个第一路由通信,且配置为,根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对所述从所通信的第一路由接收的第二任务指令进行分配处理并发送第三任务指令,所述第三任务指令具有第三目的标识。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述多个第二处理单元每个配置为具有各自的第一对象标识,所述多个第二处理单元中每个所接收的第二任务指令所具有的第二目的标识的至少部分与所述多个第二处理单元中每个的第一对象标识对应。
例如,本公开至少一实施例提供的寄存器网络通信系统还包括:多个第二路由,配置为分别与所述多个第二处理单元通信,且每个配置为,根据从所通信的第二处理单元接收的第三任务指令所具有的第三目的标识的至少部分,发送第四任务指令,所述第四任务指令具有第四目的标识;多个第三处理单元,分别与所述多个第二路由中对应的一个通信,且配置为根据从所通信的第二路由接收的第四任务指令进行处理操作。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述多个第三处理单元每个配置为具有各自的第二对象标识,所述多个第三处理单元中每个所接收的第四任务指令所具有的第四目的标识与所述多个第三处理单元中每个的第二对象标识对应。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述多个第二路由分为多组,每组第二路由中的每个分别与至少一个第三处理单元连接。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第一处理单元包括第一处理子单元和第二处理子单元,所述第一处理子单元,配置为发送寄存器访问指令作为所述第一任务指令,所述第二处理子单元配置为发送命令指令或消息指令作为所述第一任务指令。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第一处理子单元为图形寄存器总线管理器,所述第二处理子单元为命令处理器。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第二处理单元为着色器处理输入。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第三处理单元为计算单元。
例如,本公开至少一实施例提供的寄存器网络通信系统,还包括:多个外部访问单元,配置为发送第五任务指令,所述第五任务指令具有第五目的标识;
多个第三路由,配置为分别与所述第一处理子单元和至少一个外部访问单元通信,且配置为,根据从所通信的外部访问单元接收的第五任务指令所具有的第五目的标识的至少部分,发送第六任务指令,所述第六任务指令具有第六目的标识;所述第一处理子单元与所述多个第三路由通信,且配置为,根据从所通信的第三路由接收的第六任务指令所具有的第六目的标识的至少部分,发送所述第一任务指令。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第一处理子单元配置为具有第三对象标识,所述第一处理子单元所接收的第六任务指令所具有的第六目的标识的至少部分与所述第一处理单元的第三对象标识对应。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第一处理单元和所述至少一个第一路由之间、所述至少一个第一路由和所述多个第二处理单元之间、所述多个第二处理单元和所述多个第二路由之间、每组第二路由中的各个第二路由之间、所述多个第二路由和所述多个第三处理单元之间、所述多个第三路由与所述多个外部访问单元之间、所述第一处理单元和所述多个第三路由之间、所述多个第三路由之间分别包括发送任务指令的发送方和接收所述任务指令的接收方,所述任务指令基于在各组二者之中作为所述接收方的有效信用值进行传输;所述有效信用值表示所述接收方能够进行缓存的空间,所述任务指令包括所述第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述有效信用值满足如下公式:
有效信用值=初始信用值+更新信用值-消费信用值;
其中,所述初始信用值表示所述接收方的初始缓存空间,所述更新信用值表示所述接收方因接收的交易被弹出时而获得的缓存空间,所述消费信用值表示所述发送方发出的任务指令所占的缓存空间。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由配置为分别包括具有不同权重的多个虚拟通道,以传输不同权重要求的任务指令。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由包括适用于不同带宽要求的可扩展接口。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述接收方还配置为:判断接收的所述任务指令的标识没有在认证列表中时,终止所述任务指令的传输或丢弃所述任务指令。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由分别包括查找表,所述至少一个第一路由分别对应的标识、所述多个第二路由分别对应的标识和所述多个第三路由分别对应的标识分别存储在所述查找表中。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令分别还具有源标识。
本公开至少一实施例还提供一种寄存器网络通信系统,包括:第一处理单元,配置为发送第一任务指令;多个第二处理单元,配置为根据从所述第一处理单元接收的所述第一任务指令的至少部分,对所述第一任务指令进行分配处理,发送第二任务指令,所述第二任务指令具有第一目的标识;多个路由,配置为分别与所述多个第二处理单元通信,且配置为,根据从所通信的第二处理单元接收的第二任务指令所具有的第一目的标识的至少部分,发送第三任务指令,所述第三任务指令具有第二目的标识;多个第三处理单元,分别与所述多个路由中对应的一个通信,且配置为根据从所通信的路由接收的第三任务指令进行处理操作。
例如,在本公开至少一实施例提供的寄存器网络通信系统中,所述多个第三处理单元每个配置为具有各自的对象标识,所述多个第三处理单元中每个所接收的第三任务指令所具有的第二目的标识与所述多个第三处理单元中每个的对象标识对应。
本公开至少一实施例还提供一种寄存器网络通信系统的寄存器访问方法,包括:通过所述第一处理单元发送所述第一任务指令;所述至少一个第一路由根据从所述第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送所述第二任务指令;所述多个第二处理单元根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对所述从所通信的第一路由接收的第二任务指令进行分配处理并发送所述第三任务指令。
例如,在本公开至少一实施例提供的寄存器访问方法中,所述寄存器网络通信系统还包括多个第三处理单元和多个第二路由,所述寄存器访问方法还包括:所述多个第三路由根据从所通信的第二处理单元接收的第三任务指令所具有的第三目的标识的至少部分,发送第四任务指令,所述第四任务指令具有第四目的标识;所述多个第三处理单元根据从所通信的第二路由接收的第四任务指令进行处理操作。
例如,在本公开至少一实施例提供的寄存器访问方法中,所述第一处理单元包括第一处理子单元和第二处理子单元,所述第一处理子单元,具有第三对象标识,且配置为发送寄存器访问指令作为所述第一任务指令,所述第二处理子单元配置为发送命令指令或消息指令作为所述第一任务指令,所述寄存器网络通信系统还包括多个外部访问单元和多个第三路由,所述寄存器访问方法还包括:所述多个外部访问单元发送第五任务指令,所述第五任务指令具有第五目的标识;所述多个第三路由根据从所通信的外部访问单元接收的第五任务指令所具有的第五目的标识的至少部分,发送第六任务指令,所述第六任务指令具有第六目的标识;所述第一处理子单元根据从所通信的第三路由接收的第六任务指令所具有的第六目的标识的至少部分,发送所述寄存器访问指令。
例如,在本公开至少一实施例提供的寄存器访问方法中,所述第一处理单元和所述至少一个第一路由之间、所述至少一个第一路由和所述多个第二处理单元之间、所述多个第二处理单元和所述多个第二路由之间、每组第二路由中的各个第二路由之间、所述多个第二路由和所述多个第三处理单元之间、所述多个第三路由与所述多个外部访问单元之间、所述第一处理单元和所述多个第三路由之间、所述多个第三路由之间分别包括发送所述任务指令的发送方和接收所述任务指令的接收方,所述任务指令包括所述第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令,所述寄存器访问方法还包括:判断在各组二者之中作为所述接收方的有效信用值,其中,所述有效信用值表示所述接收方能够进行缓存的空间;当所述有效信用值大于等于所述任务指令所占用的缓存空间时,将所述任务指令从所述发送方发送至所述接收方。
例如,在本公开至少一实施例提供的寄存器访问方法中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由配置为分别包括具有不同权重的多个虚拟通道,所述寄存器访问方法还包括:确定所述任务指令的传输参数,所述传输参数包括所述任务指令的权重要求;基于所述任务指令的传输参数选择具有对应权重的虚拟通道进行传输。
例如,本公开至少一实施例提供的寄存器访问方法还包括:判断接收的所述任务指令的标识是否在认证列表中;如果否,终止所述任务指令的传输或丢弃所述任务指令。
例如,在本公开至少一实施例提供的寄存器访问方法中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由分别包括查找表,所述寄存器访问方法还包括:基于所述任务指令的目的标识在所述查找表中查找对应的第一路由、对应的第二路由和对应的第三路由以接收所述任务指令。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种寄存器网络架构的示意图;
图2为本公开至少一实施例提供的一种寄存器网络架构的示意图;
图3为本公开至少一实施例提供的另一种寄存器网络架构的示意图;
图4为本公开至少一实施例提供的又一种寄存器网络架构的示意图;
图5A为本公开至少一实施例提供的再一种寄存器网络架构的示意图;
图5B为图5A所示的寄存器网络架构的具体结构示意图;
图6为本公开至少一实施例提供的一种任务指令的传输示意图;
图7为本公开至少一实施例提供的一种虚拟通道示意图;
图8为本公开至少一实施例提供的一种第三路由的可扩展接口的示意图;
图9为本公开至少一实施例提供的一种寄存器访问方法;
图10为本公开至少一实施例提供的另一种寄存器访问方法的示意图;
图11为本公开至少一实施例提供的又一种寄存器访问方法的示意图;
图12为本公开至少一实施例提供的再一种寄存器访问方法的示意图;
图13为本公开至少一实施例提供的另一种寄存器访问方法的示意图;以及
图14为本公开至少一实施例提供的另一种寄存器访问方法的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
当前的深度计算单元通过使用系统管理网络实现片上访问系统(SOC IPs)的寄存器接口连接;在通用串行总线内部,有图形寄存器总线管理器寄存器接口、控制单元的命令接口、消息接口和初始化接口。当深度计算单元的图形处理中心的尺寸变得越来越大(如图1所示,图形处理中心中包括的计算单元(Computing Unit,简称为CU)的数量从64增加到128)时,这些接口之间的连接关系变得越来越复杂,进而导致图形处理中心内部线路拥塞和非常低的信号传输效率。
图形处理中心的大小占用了深度计算单元80%的面积,当深度计算单元中CU数量从64增加到128时,深度计算单元中心的导线连接变得越来越复杂。例如,如图1所示,命令处理器(Command Processor,简称为CP)、着色器处理输入、图形寄存器总线管理器位于深度计算单元中部,当CU的数量变为128时,深度计算单元中部的电线堵塞情况会大大增加。例如,每个着色器处理输入都包括命令接口、消息接口和初始化接口,用于分配任务或接收任务完成的指令。这些接口不是计算数据路径,对带宽和实时性的要求不是很敏感,而当前的数据宽度太大,并且每种类型的接口都是单独的,因此,利用率很低。另外,如图1所示,图形寄存器总线管理器、着色器处理输入以及CU串联连接,因此对于每个接口,数据流是一个菊花链,其中首端性能最好,尾端性能最差。因此,如何设计一种寄存器架构使之支持128个或更多个CU更有效地工作成为当前亟需解决的问题。
本公开至少一实施例提供一种寄存器网络架构,包括:第一处理单元,配置为发送第一任务指令,第一任务指令具有第一目的标识;至少一个第一路由,配置为与第一处理单元通信,且配置为,根据从第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送第二任务指令,第二任务指令具有第二目的标识;多个第二处理单元,每个配置为具有各自的第一对象标识,分别与至少一个第一路由通信,且配置为,根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对从所通信的第一路由接收的第二任务指令进行分配处理并发送第三任务指令,第三任务指令具有第三目的标识,多个第二处理单元中每个所接收的第二任务指令所具有的第二目的标识与多个第二处理单元中每个的第一对象标识对应。
本公开一些实施例还提供对应于上述寄存器网络架构的寄存器访问方法。
本公开至少一实施例提供的寄存器网络架构和寄存器访问方法,可以用于连接多个寄存器接口,还可以将内部不同的通信接口整合到一个统一的网络中,从而可以简化硬件结构设计,提高信号传输效率。
下面结合附图对本公开的实施例及其示例进行详细说明。
本公开至少一实施例提供一种寄存器网络架构,例如,可以用于寄存器之间的访问、通信。例如,该寄存器网络架构通过路由实现深度计算单元的各个通信接口之间的通信,例如,实现图形寄存器总线管理器或CP与着色器处理输入以及着色器处理输入与CU之间的通信,从而可以避免寄存器之间的线路拥挤或堵塞,避免CU串联造成的信号传输效率低下等问题。
图2为本公开至少一实施例提供的一种寄存器网络架构的示意图。如图2所示,该寄存器网络架构100包括第一处理单元110、第二处理单元120和至少一个第一路由R1。
例如,第一处理单元110配置为发送第一任务指令。例如,第一任务指令具有第一目的标识。例如,该任务指令为寄存器访问指令、命令指令或消息指令等,本公开的实施例对此不作限制。例如,第一目的标识用于指示第一任务指令的传输方向,即第一目的标识指示将第一任务指令传输至哪一个第一路由R1。
图3为本公开至少一实施例提供的另一种寄存器网络架构的示意图。例如,如图3所示,第一处理单元110包括第一处理子单元111和第二处理子单元112。例如,第一处理子单元111具有第三对象标识,且配置为发送寄存器访问指令作为第一任务指令,第二处理子单元112配置为发送命令指令或消息指令作为第一任务指令。
例如,在一些示例中,如图5B所示,第一处理子单元111为图形寄存器总线管理器图形寄存器总线管理器,第二处理子单元112为命令处理器CP。
例如,至少一个第一路由R1配置为与第一处理单元110通信,且配置为,根据从第一处理单元110接收的第一任务指令所具有的第一目的标识的至少部分,发送第二任务指令。例如,第二任务指令具有第二目的标识。例如,第二目的标识用于指示第二任务指令的传输方向,即第二目的标识指示将第二任务指令传输至哪一个第二处理单元120。
例如,该第二任务指令与第一任务指令可以相同,也可以不同,本公开的实施例对此不作限制。例如,该第一路由R1可以根据接收的第一任务指令的第一目的标识将第一任务指令直接转发至该第一目的标识对应的下一级处理单元(例如,第二处理单元120)。
例如,第一处理器110将第一任务指令传输至与该第一任务指令的第一目的标识的至少部分对应的第一路由R1中,例如,该第一路由R1可以与需要将第一任务指令传输至的第二处理单元(基于第二任务指令的第二目的标识的至少部分对应的第二处理单元)通信。
例如,至少一个第一路由R1包括查找表,查找表中存储有第一路由R1的型号或其他可以区分各个第一路由R1的参数和第一目的标识的至少部分(例如,第一目标标识的部分(例如,前几位)数据)的对应关系,从而可以根据该对应关系接收第一处理单元110发送的第一任务指令。例如,从查找表中确定与第一任务指令的第一目的标识的至少部分对应的第一路由,从而将该第一任务指令传输至确定出的第一路由中以进行下一步的传输和处理。
需要注意的是,以下实施例中的第二路由R2和第三路由R3均包括查找表,不再赘述。
例如,多个第二处理单元120分别与至少一个第一路由R1通信,且配置为,根据从所通信的第一路由R1接收的第二任务指令所具有的第二目的标识的至少部分,对从所通信的第一路由R1接收的第二任务指令进行分配处理并发送第三任务指令。例如,第二处理单元120对第二任务指令进行解析以得到第三任务指令,从而将第三任务指令分配至对应的计算单元(CU)。
例如,第三任务指令具有第三目的标识。例如,第三目的标识用于指示第三任务指令的传输方向,即第三目的标识指示将第三任务指令传输至哪一个第二路由R2。
例如,多个第二处理单元120所通信的第一路由R1即接收第一任务指令并发送该第二任务指令的路由。
例如,多个第二处理单元120每个配置为具有各自的第一对象标识,多个第二处理单元120中每个所接收的第二任务指令所具有的第二目的标识的至少部分与多个第二处理单元120中每个的第一对象标识对应。即,根据第二任务指令的第二目的标识将第二任务指令发送至对应的第二处理单元,从而确定该第二任务指令的传输方向。
例如,将第二任务指令传输至第一对象标识与第二目的标识对应的第二处理单元中,从而可以实现通过第一路由R1将第一任务指令从第一处理单元110至第二处理单元120的传输。
例如,在一些示例中,如图5B所示,第二处理单元120为着色器处理输入着色器处理输入。
在本公开的实施例中,通过第一路由R1实现第一处理单元110和第二处理单元120之间的通信,从而可以避免出现线路拥挤,例如,避免出现图1中所示的连接图形寄存器总线管理器或CP与着色器处理输入之间的错综复杂的线路,因此简化了深度计算单元的硬件结构设计,实现了任务指令的高效率传输。
图4为本公开至少一实施例提供的又一种寄存器网络架构的示意图。例如,如图4所示,在图3所示的示例的基础上,该寄存器网络架构100还包括多个第二路由R2和多个第三处理单元130。
例如,多个第二路由R2,配置为分别与多个第二处理单元120通信,且每个配置为,根据从所通信的第二处理单元120接收的第三任务指令所具有的第三目的标识的至少部分,发送第四任务指令。例如,第四任务指令具有第四目的标识。例如,第四目的标识用于指示第四任务指令的数据传输的方向,即依据第四目的标识指示将第四任务指令传输至哪一个第三处理单元130。
例如,多个第三处理单元130所通信的第二处理单元120即发送第三任务指令至第二路由R2的第二处理单元120。
例如,多个第三处理单元130分别与多个第二路由R2中对应的一个通信,且配置为根据从所通信的第二路由接收的第四任务指令进行处理操作。
例如,多个第三处理单元130每个配置为具有各自的第二对象标识,多个第三处理单元130中每个所接收的第四任务指令所具有的第四目的标识与多个第三处理单元中每个的第二对象标识对应。
例如,如图4所示,多个第二路由R2分为多组,每组第二路由R2中的每个分别与至少一个第三处理单130连接。图4中仅示出了将多个第二路由R2分为8组,分别与8个第二处理单元120一一对应通信,每组第二路由R2包括4个第二路由R2,每个第二路由R2分别与4个第三处理单元130通信,各组第二路由R2中的各个第二路由之间可以互相通信,从而可以发送任务指令,并将第三处理单元130的处理结果返回至第二处理子单元112。
需要注意的是,上述第一路由R1、第二路由R2、第一处理单元110、第二处理单元120以及第三处理单元130的数量不限于图4中示出的数量,还可以包括更多或更少,以下实施例于此相同,不再赘述。
例如,CP使用路由连接(例如,无线连接)着色器处理输入来管理任务;每个着色器处理输入使用路由连接CU,用于任务分配,并将完成信号返回给CP,从而实现命令指令或消息指令的传输,例如,每台路由使用标识进行数据传输,从而可以避免采用图1中所示的菊花链的形式连接图形处理中心中的所有寄存器而造成的效率低下的问题,大大提高了信号传输的效率,同时简化了系统的硬件结构设计,避免了线路拥挤带来的问题,从而可以支持更多数量的CU,更有效地进行寄存器访问。
图5A为本公开至少一实施例提供的再一种寄存器网络架构的示意图。图5B为图5A所示的寄存器网络架构的具体结构示意图。
例如,如图5A和5B所示,在图4所示的示例的基础上,该寄存器网络架构100还包括多个外部访问单元IPs和多个第三路由R3。例如,该外部访问单元IPs可以是片外访问单元,例如向第一处理子单元111发送对片内寄存器的访问指令等,当然也可以是片内访问单元等,本公开的实施例对此不作限制。
例如,多个外部访问单元IPs配置为发送第五任务指令。例如,第五任务指令具有第五目的标识。例如,第五目的标识用于指示第五任务指令的数据传输的方向,即第五目的标识指示将第五任务指令传输至哪一个第三路由R3。
例如,多个第三路由R3配置为分别与第一处理子单元111和至少一个外部访问单元IPs通信,且配置为,根据从所通信的外部访问单元IPs接收的第五任务指令所具有的第五目的标识的至少部分,发送第六任务指令,第六任务指令具有第六目的标识。例如,第六目的标识用于指示第六任务指令的数据传输的方向,即第六目的标识指示将第六任务指令传输至哪一个第一处理子单元111。
例如,多个第三路由R3所通信的外部访问单元IPs为向第三路由R3发送第五任务指令的外部访问单元IPs。
例如,第一处理子单元111与多个第三路由R3通信,且配置为,根据从所通信的第三路由R3接收的第六任务指令所具有的第六目的标识的至少部分,发送第一任务指令。
例如,第一处理子单元111接收第六任务指令后对第六任务指令进行解析,并根据解析结果发送第一任务指令。例如,第一任务指令可以与第六任务指令相同,也可以不同,本公开的实施例对此不作限制。
例如,第一处理子单元111配置为具有第三对象标识,第一处理子单元111所接收的第六任务指令所具有的第六目的标识的至少部分与第一处理单元111的第三对象标识对应。
例如,在一些示例中,第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令分别还具有源标识。例如,每个任务请求都有一个源标识和目的标识来指示流量方向。
在本公开上述实施例提供的基于标识的路由方法中,每个代理(例如启动或响应事务(例如,任务指令)的CU、着色器处理输入和硬件单元)都有一个唯一的标识,每个事务都包括一个源标识和目的标识来指示流量方向。例如,各个路由均包括一个路由表(即查找表),路由使用带有目的标识的查找表来确定如何将流量路由到哪个端口。例如,上述第一路由R1、第二路由R2和第三路由R3可以支持广播转换(即从一个输入端口到多个输出端口),也可以支持一对一转换(即从一个输入端口到另一个输出端口),本公开的实施例对此不作限制。
例如,第一处理单元110和至少一个第一路由R1之间、至少一个第一路由R1和多个第二处理单元120之间、多个第二处理单元120和多个第二路由R2之间、每组第二路由R2中的各个第二路由R2之间、多个第二路由R2和多个第三处理单元130之间、多个第三路由130与多个外部访问单元IPs之间、第一处理单元110和多个第三路由R3之间、多个第三路由R3之间分别包括发送任务指令的发送方和接收任务指令的接收方。例如,任务指令包括第一任务指令、第二任务指令、第三任务指令、第四任务指令、第五任务指令或第六任务指令。
例如,如图5A所示,第一处理单元110和至少一个第一路由R1之间、至少一个第一路由R1和多个第二处理单元120之间、多个第二处理单元120和多个第二路由R2之间、每组第二路由R2中的各个第二路由R2之间、多个第二路由R2和多个第三处理单元130之间、多个第三路由130与多个外部访问单元IPS之间、第一处理单元110和多个第三路由R3之间、多个第三路由R3之间分别通过双向箭头连接,即互相通信的二者即可做发送方,也可以做接收方,具体可根据数据传输的方向确定,本公开的实施例对此不作限制。
例如,在一些示例中,任务指令基于在各组二者之中作为接收方的有效信用值进行传输。例如,有效信用值表示接收方能够进行缓存的空间。即,两个端口之间的转换基于信用缓冲值。
例如,有效信用值满足如下公式:
有效信用值=初始信用值+更新信用值-消费信用值;
其中,初始信用值表示接收方的初始缓存空间,更新信用值表示接收方因接收的交易被弹出时而获得的缓存空间,消费信用值表示发送方发出的任务指令所占的缓存空间。
图6为本公开至少一实施例提供的一种任务指令的传输示意图。例如,如图6所示,接收方或发送方均可以为代理或路由,代理可以是第一处理单元110、第二处理单元120、第三处理单元130或外部访问单元IPs等,路由可以是第一路由R1、第二路由R2或第三路由R3等。
例如,接收方在上电开始时发送带有“初始信用值”的初始信用标记,与接收方的缓冲空间相等,例如,如图6所示,等于6;每当接收的交易被弹出时,例如,接收方中的事务1和2被弹出,因此接收方又增加了2个缓存空间,接收方发送具有“更新信用值”的更新标记(例如,如图6所示,更新标记等于2)至发送方;发送方使用“有效信用值”=“初始信用值”+“更新信用值”–“消费信用值”来确定接收方中还剩多少信用值提供给即将到来的请求。消费信用值即也发送至接收方的6个数据,因此,图6中所示的有效信用值为2。需要注意的是,图6仅是示意性的示出基于信用的任务指令的传输,并不构成对本公开的限制。
例如,如果“有效信用值”可以满足发送方即将发送的请求,那么发送出去,否则反压请求并拖延发送,直至接收方的有效信用值满足即将到来的请求所需的缓存空间为止。通过基于信用的过渡,后端可以随意添加中继器以满足时序要求,提高设计频率,而无需考虑任何设计功能,从而可以避免数据握手等不良现象产生,提高了信号传输的准确性。
图7为本公开至少一实施例提供的一种虚拟通道示意图。例如,至少一个第一路由R1、多个第二路由R2和多个第三路由R3配置为分别包括具有不同权重的多个虚拟通道,以传输不同权重要求的任务指令。例如,首先,确定任务指令的传输参数,例如,传输参数包括任务指令的权重要求;基于任务指令的传输参数选择具有对应权重的虚拟通道进行传输。例如,任务指令要求基于高权重的虚拟通道传输时,则选择例如具有高权重的虚拟通道V1进行传输,本公开的实施例对此不作限制。
例如,如图7所示,路由R(例如,包括至少一个第一路由R1、多个第二路由R2和多个第三路由R3)为每个物理链路路径使用多个虚拟通道,例如,图7仅示出了具有高权重的虚拟通道V1、具有中权重的虚拟通道V2和具有低权重的虚拟通道V3以供选择,当然还可以包括更多或更少的通道,可视实际情况而定,本公开的实施例对此不作限制。例如,每个虚拟通道都有自己的流量控制缓冲和信用。不同通道使用权重和计时器来决定哪个通道进行转换,从而实现不同需求的Qos(服务质量,Quality of Service)要求。例如,计时器主要是基于任务指令选用的虚拟通道的信用(即有效信用值)是否满足任务指令的缓存空间,如果满足,则直接发送至该对应权重参数的虚拟通道,如果不满足,则等待满足后再发送。
例如,在一些示例中,至少一个第一路由R1、多个第二路由R2和多个第三路由R3包括适用于不同带宽要求的可扩展接口。
图8为本公开至少一实施例提供的一种第三路由R3的可扩展接口的示意图。例如,路由支持针对不同带宽要求的可扩展接口,如图8所示,在CU端,接口数据宽度只能为64位(bit),而在路由之间的路径上,数据宽度可以加倍以扩大带宽,例如,扩大至128位,本公开的实施例对此不作限制。
例如,在一些示例中,接收方(例如,第一处理器110、第二处理器120、第三处理器130、外部访问单元IPs、至少一个第一路由R1、多个第二路由R2和多个第三路由R3)还配置为:判断接收的任务指令的标识没有在认证列表中时,终止任务指令的传输或丢弃任务指令。
例如,每个处理器都有可编程的寄存器来控制访问权限;如果接收方发现传输标识不在认证列表中,接收方可以中止请求或丢弃消息,由此可以实现该寄存器网络架构的安全检查,避免传输无效事务,提高传输质量。
本公开实施例提供的寄存器网络架构,可以将四种内部接口简单地连接到一个结构上,互连线减少到30%,总线利用率大大提高,这样可以节省功率、提高效率并简化硬件结构的设计工作。
具体地,本公开实施例提供的寄存器网络架构可以实现:1、支持不同类型的事务,包括点对点传播或广播;2、基于标识的路由,因此该寄存器网络的拓扑结构可以是灵活的;3、基于信用的交易,很容易在每条路径上添加中继器以满足时序要求,提高设计频率;4、满足不同类型需求的服务质量支持;5、可以满足不同带宽要求的可扩展接口;6、可以进行安全检查。
本公开至少一实施例还提供一种寄存器网络架构,包括:第一处理单元、多个第二处理、多个路由、多个第三处理单元。
例如,第一处理单元,配置为发送第一任务指令。例如,关于第一处理单元的具体介绍可以参考上述实施例中第一处理单元110的描述,在此不再赘述。
例如,多个第二处理单元,与第一处理单元可以不通过路由通信(例如,可以采用图1的连接方式或其它连接方式,本公开的实施例对此不作限制),当然也可以通过路由通信(例如,采用图2-图5A所示的通信方式),本公开的实施例对此不作限制。例如,第二处理单元配置为根据从第一处理单元接收的第一任务指令的至少部分,对第一任务指令进行分配处理,发送第二任务指令。例如,第二任务指令具有第一目的标识。
例如,第二处理单元120对第一任务指令进行解析以得到第二任务指令,从而将第二任务指令分配至对应的计算单元。
例如,第二任务指令具有第一目的标识。例如,第一目的标识用于指示第二任务指令的数据传输的方向,即第一目的标识指示将第二任务指令传输至哪一个路由(例如,图4中的第二路由R2)。
例如,关于第二处理单元的具体介绍可以参考上述实施例中关于第二处理单元120的描述,在此不再赘述。
例如,多个路由,配置为分别与多个第二处理单元通信,且配置为,根据从所通信的第二处理单元接收的第二任务指令所具有的第一目的标识的至少部分,发送第三任务指令。例如,第三任务指令具有第二目的标识。例如,第二目的标识用于指示第三任务指令的数据传输的方向,即依据第二目的标识指示将第三任务指令传输至哪一个第三处理单元130。
例如,关于路由的具体介绍可以参考上述实施例中关于第二路由R2的描述,在此不再赘述。
多个第三处理单元,分别与多个路由中对应的一个通信,且配置为根据从所通信的路由接收的第三任务指令进行处理操作,例如,每个配置为具有各自的对象标识,多个第三处理单元中每个所接收的第三任务指令所具有的第二目的标识与多个第三处理单元中每个的对象标识对应。
例如,如图4所示,多个路由(即第二路由R2)分为多组,每组第二路由R2中的每个分别与至少一个第三处理单130连接。图4中仅示出了将多个第二路由R2分为8组,分别与8个第二处理单元120一一对应通信,每组第二路由R2包括4个第二路由R2,每个第二路由R2分别与4个第三处理单元130通信,各组第二路由R2中的各个第二路由之间可以互相通信,从而可以发送任务指令,并将第三处理单元130的处理结果返回至第二处理子单元112。
例如,关于第三处理单元的具体介绍可以参考上述实施例中关于第三处理单元130的描述,在此不再赘述。
例如,在本公开的实施例中,第一处理单元包括图形寄存器总线管理器(图形寄存器总线管理器)和命令处理器(CP);图形寄存器总线管理器配置为发送寄存器访问指令作为第一任务指令,命令处理器配置为发送命令指令或消息指令作为第一任务指令。
例如,第二处理单元为着色器处理输入。例如,第三处理单元为计算单元(CU)。
需要注意的是,在本公开的实施例中,该寄存器网络架构可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
关于本公开该实施例的寄存器网络架构的具体描述可参考上述实施例中提供的寄存器网络架构的描述,在此不再赘述。关于本公开该实施例提供的寄存器网络架构的技术效果可以参考本公开图2-图5B所示的实施例中提供的寄存器网络架构的技术效果,这里不再赘述。
本公开至少一实施例还提供一种基于本公开上述实施例的寄存器网络架构的寄存器访问方法。图9为本公开至少一实施例提供的一种寄存器访问方法。下面参考图9对本公开至少一实施例提供的寄存器访问方法进行详细地介绍。例如,如图9所示,该寄存器访问方法包括步骤S110-步骤S130。
步骤S110:通过第一处理单元发送第一任务指令;
步骤S120:至少一个第一路由根据从第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送第二任务指令;
步骤S130:多个第二处理单元根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对从所通信的第一路由接收的第二任务指令进行分配处理并发送第三任务指令。
对于步骤S110,例如,通过图2-图5B所示的第一处理单元110发送第一任务指令。例如,第一任务指令具有第一目的标识。例如,该任务指令为寄存器访问指令、命令指令或消息指令等,本公开的实施例对此不作限制。例如,第一目的标识用于指示第一任务指令的数据传输的方向,即第一目的标识指示将第一任务指令传输至哪一个第一路由R1。
对于步骤S120,例如,第二任务指令具有第二目的标识。例如,第二目的标识用于指示第二任务指令的数据传输的方向,即第二目的标识指示将第二任务指令传输至哪一个第二处理单元120。
例如,该第二任务指令与第一任务指令可以相同,也可以不同,本公开的实施例对此不作限制。例如,该第一路由R1可以根据接收的第一任务指令的第一目的标识将第一任务指令直接转发至该第一目的标识对应的下一级处理单元(例如,第二处理单元120)。
对于步骤S130,例如,第二处理单元120对第二任务指令进行解析以得到第三任务指令,从而将第三任务指令分配至对应的计算单元(CU)。
例如,第三任务指令具有第三目的标识。例如,第三目的标识用于指示第三任务指令的数据传输的方向,即第三目的标识指示将第三任务指令传输至哪一个第二路由R2。
例如,多个第二处理单元120每个配置为具有各自的第一对象标识,多个第二处理单元120中每个所接收的第二任务指令所具有的第二目的标识的至少部分与多个第二处理单元120中每个的第一对象标识对应。即,根据第二任务指令的第二目的标识将第二任务指令发送至对应的第二处理单元,从而确定该第二任务指令的传输方向。
例如,在一些示例中,如图4所示,在图3所示的示例的基础上,该寄存器网络架构100还包括多个第三处理单元130和多个第二路由R2。例如,多个第三处理单元具有各自的第二对象标识。图10为本公开至少一实施例提供的另一种寄存器访问方法的示意图。例如,如图10所示,在图9所示的基础上,该寄存器访问方法还包括步骤S140-步骤S150。
步骤S140:多个第三路由根据从所通信的第二处理单元接收的第三任务指令所具有的第三目的标识的至少部分,发送第四任务指令,第四任务指令具有第四目的标识;
步骤S150:多个第三处理单元根据从所通信的第二路由接收的第四任务指令进行处理操作。
对于步骤S140,例如,第四目的标识用于指示第四任务指令的数据传输的方向,即依据第四目的标识指示将第四任务指令传输至哪一个第三处理单元130。
例如,多个第三处理单元130所通信的第二处理单元120即发送第三任务指令至第二路由R2的第二处理单元120。
例如,多个第三处理单元130分别与多个第二路由R2中对应的一个通信,且配置为根据从所通信的第二路由接收的第四任务指令进行处理操作。
例如,多个第三处理单元130每个配置为具有各自的第二对象标识,多个第三处理单元130中每个所接收的第四任务指令所具有的第四目的标识与多个第三处理单元中每个的第二对象标识对应。
对于步骤S150,例如,多个第三处理单元130中每个所接收的第四任务指令所具有的第四目的标识与多个第三处理单元130中每个的第二对象标识对应。
如图4所示,多个第二路由R2分为多组,每组第二路由R2中的每个分别与至少一个第三处理单130连接。图4中仅示出了将多个第二路由R2分为8组,分别与8个第二处理单元120一一对应通信,每组第二路由R2包括4个第二路由R2,每个第二路由R2分别与4个第三处理单元130通信,各组第二路由R2中的各个第二路由之间可以互相通信。
例如,如图3所示,第一处理单元110包括第一处理子单元111和第二处理子单元112。例如,第一处理子单元111具有第三对象标识,且配置为发送寄存器访问指令作为第一任务指令,第二处理子单元112配置为发送命令指令或消息指令作为第一任务指令。
例如,在一些示例中,如图5B所示,第一处理子单元111为图形寄存器总线管理器(图形寄存器总线管理器),第二处理子单元112为命令处理器(CP)。
例如,CP使用路由连接(例如,无线连接)着色器处理输入来管理任务;每个着色器处理输入使用路由连接CU,用于任务分配,并将完成信号返回给CP,从而实现命令指令或消息指令的传输,例如,每台路由使用标识进行数据传输,从而可以避免采用图1中所示的菊花链的形式连接图形处理中心中的所有寄存器而造成的效率低下的问题,大大提高了信号传输的效率,同时简化了系统的硬件结构设计,避免了线路拥挤带来的问题,从而可以支持更多数量的CU,更有效地进行寄存器访问。
例如,如图5A和5B所示,在图4所示的示例的基础上,该寄存器网络架构100还包括多个外部访问单元IPs和多个第三路由R3。
图11为本公开至少一实施例提供的又一种寄存器访问方法的示意图。例如,如图11所示,在图10所示的基础上,该寄存器访问方法还包括步骤S160-步骤S180。
步骤S160:多个外部访问单元发送第五任务指令;
步骤S170:多个第三路由根据从所通信的外部访问单元接收的第五任务指令所具有的第五目的标识的至少部分,发送第六任务指令,第六任务指令具有第六目的标识;
步骤S180:第一处理子单元根据从所通信的第三路由接收的第六任务指令所具有的第六目的标识的至少部分,发送寄存器访问指令。
对于步骤S160,例如,第五任务指令具有第五目的标识。例如,第五目的标识用于指示第五任务指令的数据传输的方向,即第五目的标识指示将第五任务指令传输至哪一个第三路由R3。
对于步骤S170,例如,第六目的标识用于指示第六任务指令的数据传输的方向,即第六目的标识指示将第六任务指令传输至哪一个第一处理子单元111。
例如,多个第三路由R3所通信的外部访问单元IPs为向第三路由R3发送第五任务指令的外部访问单元IPs。
对于步骤S180,例如,第一处理子单元111接收第六任务指令后对第六任务指令进行解析,并根据解析结果发送第一任务指令。例如,第一任务指令可以与第六任务指令相同,也可以不同,本公开的实施例对此不作限制。
图12为本公开至少一实施例提供的再一种寄存器访问方法的示意图。例如,如图12所示,该寄存器访问方法还包括步骤S210-步骤S220。
步骤S210:判断在各组二者之中作为接收方的有效信用值,有效信用值表示所述接收方能够进行缓存的空间;
步骤S220:当有效信用值大于等于任务指令所占用的缓存空间时,将任务指令从发送方发送至接收方。
例如,第一处理单元110和至少一个第一路由R1之间、至少一个第一路由R1和多个第二处理单元120之间、多个第二处理单元120和多个第二路由R2之间、每组第二路由R2中的各个第二路由R2之间、多个第二路由R2和多个第三处理单元130之间、多个第三路由130与多个外部访问单元IPs之间、第一处理单元110和多个第三路由R3之间、多个第三路由R3之间分别包括发送任务指令的发送方和接收任务指令的接收方。例如,任务指令包括第一任务指令、第二任务指令、第三任务指令、第四任务指令、第五任务指令或第六任务指令。
例如,如图5A所示,第一处理单元110和至少一个第一路由R1之间、至少一个第一路由R1和多个第二处理单元120之间、多个第二处理单元120和多个第二路由R2之间、每组第二路由R2中的各个第二路由R2之间、多个第二路由R2和多个第三处理单元130之间、多个第三路由130与多个外部访问单元IPS之间、第一处理单元110和多个第三路由R3之间、多个第三路由R3之间分别通过双向箭头连接,即互相通信的二者即可做发送方,也可以做接收方,具体可根据数据传输的方向确定,本公开的实施例对此不作限制。
对于步骤S210,例如,在一些示例中,任务指令基于在各组二者之中作为接收方的有效信用值进行传输。例如,有效信用值表示接收方能够进行缓存的空间。即,两个端口之间的转换基于信用缓冲值。
例如,有效信用值满足如下公式:
有效信用值=初始信用值+更新信用值-消费信用值;
其中,初始信用值表示接收方的初始缓存空间,更新信用值表示接收方因接收的交易被弹出时而获得的缓存空间,消费信用值表示发送方发出的任务指令所占的缓存空间。
对于步骤S220,图6为本公开至少一实施例提供的一种任务指令的传输示意图。例如,如图6所示,接收方或发送方均可以为代理或路由,代理可以是第一处理单元110、第二处理单元120、第三处理单元130或外部访问单元IPs等,路由可以是第一路由R1、第二路由R2或第三路由R3等。
例如,接收方在上电开始时发送带有“初始信用值”的初始信用标记,与接收方的缓冲空相等,例如,如图6所示,等于6;每当接收的交易被弹出时,例如,接收方中的事务1和2被弹出,因此接收方又增加了2个缓存空间,接收方发送具有“更新信用值”的更新标记(例如,如图6所示,更新标记等于2)至发送方;发送方使用“有效信用值”=“初始信用值”+“更新信用值”–“消费信用值”来确定接收方中还剩多少信用值提供给即将到来的请求。消费信用值即也发送至接收方的6个数据,因此,图6中所示的有效信用值为2。需要注意的是,图6仅是示意性的示出基于信用的任务指令的传输,并不构成对本公开的限制。
例如,如果“有效信用值”可以满足发送方即将发送的请求,那么发送出去,否则反压请求并拖延发送,直至接收方的有效信用值满足即将到来的请求所需的缓存空间为止。通过基于信用的过渡,后端可以随意插入总线中继器以满足时序要求,而无需考虑任何设计功能,从而可以避免数据握手等不良现象产生,提高了信号传输的准确性。
关于步骤S210-步骤S220的具体介绍可参考图6的描述,在此不再赘述。
图13为本公开至少一实施例提供的另一种寄存器访问方法的示意图。例如,如图13所示,该寄存器访问方法还包括步骤S310-步骤S320。
步骤S310:确定任务指令的传输参数,传输参数包括任务指令的权重要求;
步骤S320:基于任务指令的传输参数选择具有对应权重的虚拟通道进行传输。
对于步骤S310,例如,至少一个第一路由R1、多个第二路由R2和多个第三路由R3配置为分别包括具有不同权重的多个虚拟通道,以传输不同权重要求的任务指令。例如,如图7所示,路由R(例如,包括至少一个第一路由R1、多个第二路由R2和多个第三路由R3)为每个物理链路路径使用多个虚拟通道,例如,图7仅示出了具有高权重的虚拟通道V1、具有中权重的虚拟通道V2和具有低权重的虚拟通道V3以供选择,当然还可以包括更多或更少的通道,可视实际情况而定,本公开的实施例对此不作限制。
对于步骤S320,例如,任务指令要求基于高权重的虚拟通道传输时,则选择例如具有高权重的虚拟通道V1进行传输,本公开的实施例对此不作限制。例如,每个虚拟通道都有自己的流量控制缓冲和信用。不同通道使用权重和计时器来决定哪个通道进行转换,从而实现Qos(服务质量,Quality of Service)以满足不同的需求。例如,计时器主要是基于任务指令选用的虚拟通道的信用(即有效信用值)是否满足任务指令的缓存空间,如果满足,则直接发送至该对应权重参数的虚拟通道,如果不满足,则等待满足后再发送。
图14为本公开至少一实施例提供的另一种寄存器访问方法的示意图。例如,如图14所示,该寄存器访问方法还包括步骤S410-步骤S430。
步骤S410:判断接收的任务指令的标识是否在认证列表中,如果否,则执行步骤S420;如果是,则执行步骤S430;
步骤S420:终止任务指令的传输或丢弃任务指令;
步骤S430:继续传输任务指令
例如,每个处理器都有可编程的寄存器来控制访问权限;如果接收方发现传输标识不在认证列表中,接收方可以中止请求或丢弃消息,由此可以实现该寄存器网络架构的安全检查,避免传输无效事务,提高传输质量。
本公开实施例提供的寄存器网络架构,可以将四种内部接口简单地连接到一个结构上,互连线减少到30%,总线利用率大大提高,这样可以节省功率、提高效率并简化硬件结构的设计工作。
例如,在本公开的一些实施例中,该至少一个第一路由R1、多个第二路由R2和多个第三路由R3分别包括查找表,
该寄存器访问方法还包括:基于任务指令的目的标识在查找表中查找对应的第一路由、对应的第二路由和对应的第三路由以接收任务指令。
例如,以第一路由R1为例进行介绍:至少一个第一路由R1包括查找表,查找表中存储有第一路由R1的型号或其他可以区分各个第一路由R1的参数和第一目的标识的至少部分(例如,第一目标标识的部分(例如,前几位)数据)的对应关系,从而可以根据该对应关系接收第一处理单元110发送的第一任务指令。
例如,从查找表中确定与第一任务指令的第一目的标识的至少部分对应的第一路由,从而将该第一任务指令传输至确定出的第一路由中以进行下一步的传输和处理。
关于寄存器访问方法的具体介绍可参考本公开至少一实施例提供的寄存器网络架构的相关介绍,在此不再赘述。关于上述实施例提供的寄存器访问方法的技术效果可以参考本公开的实施例中提供的寄存器网络架构的技术效果,这里不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅是本公开的示范性实施方式,而非用于限制本公开的保护范围,本公开的保护范围由所附的权利要求确定。
Claims (25)
1.一种寄存器网络通信系统,包括:
第一处理单元,配置为发送第一任务指令,其中,所述第一任务指令具有第一目的标识;
至少一个第一路由,配置为与所述第一处理单元通信,且配置为,根据从所述第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送第二任务指令,其中,所述第二任务指令具有第二目的标识;
多个第二处理单元,分别与所述至少一个第一路由通信,且配置为,根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对所述从所通信的第一路由接收的第二任务指令进行分配处理并直接发送第三任务指令至第二路由,其中,所述第三任务指令具有第三目的标识,
多个所述第二路由,配置为分别与所述多个第二处理单元通信,且每个配置为,根据从所通信的第二处理单元接收的第三任务指令所具有的第三目的标识的至少部分,发送第四任务指令至第三处理单元,其中,所述第四任务指令具有第四目的标识;
多个所述第三处理单元,分别与所述多个第二路由中对应的一个通信,且配置为根据从所通信的第二路由接收的第四任务指令进行处理操作,
并且其中,所述每个第一路由与所述多个第二处理单元中的至少两个第二处理单元直接通信,所述每个第二路由与所述多个第三处理单元中的至少两个第三处理单元直接通信。
2.根据权利要求1所述的寄存器网络通信系统,其中,所述多个第二处理单元每个配置为具有各自的第一对象标识,所述多个第二处理单元中每个所接收的第二任务指令所具有的第二目的标识的至少部分与所述多个第二处理单元中每个的第一对象标识对应。
3.根据权利要求1所述的寄存器网络通信系统,其中,所述多个第三处理单元每个配置为具有各自的第二对象标识,所述多个第三处理单元中每个所接收的第四任务指令所具有的第四目的标识与所述多个第三处理单元中每个的第二对象标识对应。
4.根据权利要求1所述的寄存器网络通信系统,其中,所述多个第二路由分为多组,每组第二路由中的每个分别与至少一个第三处理单元连接。
5.根据权利要求1或3所述的寄存器网络通信系统,其中,所述第一处理单元包括第一处理子单元和第二处理子单元,
所述第一处理子单元配置为发送寄存器访问指令作为所述第一任务指令,
所述第二处理子单元配置为发送命令指令或消息指令作为所述第一任务指令。
6.根据权利要求5所述的寄存器网络通信系统,其中,所述第一处理子单元为图形寄存器总线管理器,所述第二处理子单元为命令处理器。
7.根据权利要求1-4任一所述的寄存器网络通信系统,其中,所述第二处理单元为着色器处理输入。
8.根据权利要求1所述的寄存器网络通信系统,其中,所述第三处理单元为计算单元。
9.根据权利要求5所述的寄存器网络通信系统,还包括:
多个外部访问单元,配置为发送第五任务指令,其中,所述第五任务指令具有第五目的标识;
多个第三路由,配置为分别与所述第一处理子单元和至少一个外部访问单元通信,且配置为,根据从所通信的外部访问单元接收的第五任务指令所具有的第五目的标识的至少部分,发送第六任务指令,其中,所述第六任务指令具有第六目的标识;
其中,所述第一处理子单元与所述多个第三路由通信,且配置为,根据从所通信的第三路由接收的第六任务指令所具有的第六目的标识的至少部分,发送所述第一任务指令。
10.根据权利要求9所述的寄存器网络通信系统,其中,所述第一处理子单元配置为具有第三对象标识,所述第一处理子单元所接收的第六任务指令所具有的第六目的标识的至少部分与所述第一处理单元的第三对象标识对应。
11.根据权利要求9所述的寄存器网络通信系统,其中,所述第一处理单元和所述至少一个第一路由之间、所述至少一个第一路由和所述多个第二处理单元之间、所述多个第二处理单元和所述多个第二路由之间、每组第二路由中的各个第二路由之间、所述多个第二路由和所述多个第三处理单元之间、所述多个第三路由与所述多个外部访问单元之间、所述第一处理单元和所述多个第三路由之间、所述多个第三路由之间分别包括发送任务指令的发送方和接收所述任务指令的接收方,
所述任务指令基于在各组二者之中作为所述接收方的有效信用值进行传输;
其中,所述有效信用值表示所述接收方能够进行缓存的空间,所述任务指令包括所述第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令。
12.根据权利要求11所述的寄存器网络通信系统,其中,所述有效信用值满足如下公式:
有效信用值=初始信用值+更新信用值-消费信用值;
其中,所述初始信用值表示所述接收方的初始缓存空间,所述更新信用值表示所述接收方因接收的交易被弹出时而获得的缓存空间,所述消费信用值表示所述发送方发出的任务指令所占的缓存空间。
13.根据权利要求11所述的寄存器网络通信系统,其中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由配置为分别包括具有不同权重的多个虚拟通道,以传输不同权重要求的任务指令。
14.根据权利要求9所述的寄存器网络通信系统,其中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由包括适用于不同带宽要求的可扩展接口。
15.根据权利要求11所述的寄存器网络通信系统,其中,所述接收方还配置为:
判断接收的所述任务指令的标识没有在认证列表中时,终止所述任务指令的传输或丢弃所述任务指令。
16.根据权利要求9所述的寄存器网络通信系统,其中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由分别包括查找表,其中,
所述至少一个第一路由分别对应的标识、所述多个第二路由分别对应的标识和所述多个第三路由分别对应的标识分别存储在所述查找表中。
17.根据权利要求9所述的寄存器网络通信系统,其中,所述第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令分别还具有源标识。
18.一种寄存器网络通信系统,包括:
第一处理单元,配置为发送第一任务指令;
多个第二处理单元,配置为根据从所述第一处理单元接收的所述第一任务指令的至少部分,对所述第一任务指令进行分配处理,发送第二任务指令,其中,所述第二任务指令具有第一目的标识;
多个路由,配置为分别与所述多个第二处理单元通信,且配置为,根据从所通信的第二处理单元接收的第二任务指令所具有的第一目的标识的至少部分,发送第三任务指令,其中,所述第三任务指令具有第二目的标识;
多个第三处理单元,分别与所述多个路由中对应的一个通信,且配置为根据从所通信的路由接收的第三任务指令进行处理操作,
并且其中,所述每个路由与所述多个第三处理单元中的至少两个第三处理单元直接通信。
19.根据权利要求18所述的寄存器网络通信系统,其中,所述多个第三处理单元每个配置为具有各自的对象标识,所述多个第三处理单元中每个所接收的第三任务指令所具有的第二目的标识与所述多个第三处理单元中每个的对象标识对应。
20.一种基于权利要求1所述的寄存器网络通信系统的寄存器访问方法,包括:
通过所述第一处理单元发送所述第一任务指令;
所述至少一个第一路由根据从所述第一处理单元接收的第一任务指令所具有的第一目的标识的至少部分,发送所述第二任务指令;
所述多个第二处理单元根据从所通信的第一路由接收的第二任务指令所具有的第二目的标识的至少部分,对所述从所通信的第一路由接收的第二任务指令进行分配处理并直接发送所述第三任务指令至所述第二路由;
所述多个第二路由根据从所通信的第二处理单元接收的第三任务指令所具有的第三目的标识的至少部分,发送第四任务指令,其中,所述第四任务指令具有第四目的标识;
所述多个第三处理单元根据从所通信的第二路由接收的第四任务指令进行处理操作;
并且其中,所述每个第一路由与所述多个第二处理单元中的至少两个第二处理单元直接通信,所述每个第二路由与所述多个第三处理单元中的至少两个第三处理单元直接通信。
21.根据权利要求20所述的寄存器访问方法,其中,
所述第一处理单元包括第一处理子单元和第二处理子单元,所述第一处理子单元,且配置为发送寄存器访问指令作为所述第一任务指令,所述第二处理子单元配置为发送命令指令或消息指令作为所述第一任务指令,
所述寄存器网络通信系统还包括多个外部访问单元和多个第三路由,
所述寄存器访问方法还包括:
所述多个外部访问单元发送第五任务指令,其中,所述第五任务指令具有第五目的标识;
所述多个第三路由根据从所通信的外部访问单元接收的第五任务指令所具有的第五目的标识的至少部分,发送第六任务指令,其中,所述第六任务指令具有第六目的标识;
所述第一处理子单元根据从所通信的第三路由接收的第六任务指令所具有的第六目的标识的至少部分,发送所述寄存器访问指令。
22.根据权利要求21所述的寄存器访问方法,其中,所述第一处理单元和所述至少一个第一路由之间、所述至少一个第一路由和所述多个第二处理单元之间、所述多个第二处理单元和所述多个第二路由之间、每组第二路由中的各个第二路由之间、所述多个第二路由和所述多个第三处理单元之间、所述多个第三路由与所述多个外部访问单元之间、所述第一处理单元和所述多个第三路由之间、所述多个第三路由之间分别包括发送所述任务指令的发送方和接收所述任务指令的接收方,所述任务指令包括所述第一任务指令、所述第二任务指令、所述第三任务指令、所述第四任务指令、所述第五任务指令和所述第六任务指令,
所述寄存器访问方法还包括:
判断在各组二者之中作为所述接收方的有效信用值,其中,所述有效信用值表示所述接收方能够进行缓存的空间;
当所述有效信用值大于等于所述任务指令所占用的缓存空间时,将所述任务指令从所述发送方发送至所述接收方。
23.根据权利要求21所述的寄存器访问方法,其中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由配置为分别包括具有不同权重的多个虚拟通道,
所述寄存器访问方法还包括:
确定所述任务指令的传输参数,其中,所述传输参数包括所述任务指令的权重要求;
基于所述任务指令的传输参数选择具有对应权重的虚拟通道进行传输。
24.根据权利要求21所述的寄存器访问方法,还包括:
判断接收的所述任务指令的标识是否在认证列表中,
如果否,终止所述任务指令的传输或丢弃所述任务指令。
25.根据权利要求21所述的寄存器访问方法,其中,所述至少一个第一路由、所述多个第二路由和所述多个第三路由分别包括查找表,
所述寄存器访问方法还包括:
基于所述任务指令的目的标识在所述查找表中查找对应的第一路由、对应的第二路由和对应的第三路由以接收所述任务指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011014349.2A CN112181493B (zh) | 2020-09-24 | 2020-09-24 | 寄存器网络架构和寄存器访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011014349.2A CN112181493B (zh) | 2020-09-24 | 2020-09-24 | 寄存器网络架构和寄存器访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181493A CN112181493A (zh) | 2021-01-05 |
CN112181493B true CN112181493B (zh) | 2022-09-13 |
Family
ID=73955383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011014349.2A Active CN112181493B (zh) | 2020-09-24 | 2020-09-24 | 寄存器网络架构和寄存器访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181493B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931580A (zh) * | 2009-12-22 | 2010-12-29 | 中国航空工业集团公司第六三一研究所 | Arinc 659背板数据总线接口芯片片上系统 |
CN109564552A (zh) * | 2016-08-29 | 2019-04-02 | 英特尔公司 | 增强基于每页当前特权等级的存储器访问许可 |
CN110943925A (zh) * | 2019-11-26 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种路由信息同步的方法以及相关装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6769046B2 (en) * | 2000-02-14 | 2004-07-27 | Palmchip Corporation | System-resource router |
CN100561924C (zh) * | 2007-10-10 | 2009-11-18 | 山东大学 | 片上网络数字路由器及其并行数据传输方法 |
WO2012009252A2 (en) * | 2010-07-13 | 2012-01-19 | Advanced Micro Devices, Inc. | Dynamic control of simds |
CN102497411B (zh) * | 2011-12-08 | 2014-01-15 | 南京大学 | 面向密集运算的层次化异构多核片上网络架构 |
CN102866980B (zh) * | 2012-07-31 | 2015-02-25 | 中国人民解放军国防科学技术大学 | 用于多核微处理器片上互连网络的网络通信胞元 |
CN104794100B (zh) * | 2015-05-06 | 2017-06-16 | 西安电子科技大学 | 基于片上网络的异构多核处理系统 |
US20170116154A1 (en) * | 2015-10-23 | 2017-04-27 | The Intellisis Corporation | Register communication in a network-on-a-chip architecture |
US10019262B2 (en) * | 2015-12-22 | 2018-07-10 | Intel Corporation | Vector store/load instructions for array of structures |
US10423415B2 (en) * | 2017-04-01 | 2019-09-24 | Intel Corporation | Hierarchical general register file (GRF) for execution block |
CN109710470A (zh) * | 2018-12-03 | 2019-05-03 | 中科曙光信息产业成都有限公司 | 处理器重放调试方法及系统 |
CN110474842A (zh) * | 2019-07-22 | 2019-11-19 | 中国联合网络通信集团有限公司 | 一种通信方法、客户终端设备及传输网络 |
CN111651384B (zh) * | 2020-06-05 | 2023-06-16 | Oppo广东移动通信有限公司 | 寄存器的读写方法、芯片、子系统、寄存器组及终端 |
-
2020
- 2020-09-24 CN CN202011014349.2A patent/CN112181493B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931580A (zh) * | 2009-12-22 | 2010-12-29 | 中国航空工业集团公司第六三一研究所 | Arinc 659背板数据总线接口芯片片上系统 |
CN109564552A (zh) * | 2016-08-29 | 2019-04-02 | 英特尔公司 | 增强基于每页当前特权等级的存储器访问许可 |
CN110943925A (zh) * | 2019-11-26 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种路由信息同步的方法以及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112181493A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640362B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
US7924708B2 (en) | Method and apparatus for flow control initialization | |
US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
KR101937211B1 (ko) | 상호 연결에서 이종 채널 용량 | |
US7940788B2 (en) | System for transmitting data within a network between nodes of the network and flow control process for transmitting the data | |
CN115102896B (zh) | 数据广播方法、广播加速器、noc、soc及电子设备 | |
JP4255833B2 (ja) | コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム | |
US20190260644A1 (en) | Automatic crossbar generation and router connections for network-on-chip (noc) topology generation | |
US8885673B2 (en) | Interleaving data packets in a packet-based communication system | |
JP4391819B2 (ja) | コンピュータ・システムの入出力ノード | |
CN112181493B (zh) | 寄存器网络架构和寄存器访问方法 | |
CN113452475B (zh) | 数据传输方法、装置及相关设备 | |
CN114650255A (zh) | 报文处理方法及网络设备 | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
US10938709B2 (en) | Mechanism for dynamic latency-bandwidth trade-off for efficient broadcasts/multicasts | |
CN116471224A (zh) | 通信系统、方法及相关装置 | |
US20180198682A1 (en) | Strategies for NoC Construction Using Machine Learning | |
CN113825202A (zh) | 跨芯片处理系统以及其路由方法 | |
CN112953805A (zh) | 一种环状拓扑结构通信方法、装置及存储介质 | |
CN114531389A (zh) | 一种路由表优化方法、控制器以及路由器 | |
CN114363246A (zh) | 众核的片上网络数据传输方法、装置、设备及介质 | |
CN115665041B (zh) | 片上网络结构、数据传输方法、电子设备及存储介质 | |
WO2022262564A1 (zh) | 信息处理的方法、装置以及系统 | |
CN117555850A (zh) | 路由配置、片上网络路由方法、装置、电子设备及介质 | |
CN114567679A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |