CN117370231B - 实现gpu核内片上网络总线访问的协议转换模块及方法 - Google Patents

实现gpu核内片上网络总线访问的协议转换模块及方法 Download PDF

Info

Publication number
CN117370231B
CN117370231B CN202311666459.0A CN202311666459A CN117370231B CN 117370231 B CN117370231 B CN 117370231B CN 202311666459 A CN202311666459 A CN 202311666459A CN 117370231 B CN117370231 B CN 117370231B
Authority
CN
China
Prior art keywords
noc
channel signal
signal
bif
nsp
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
Application number
CN202311666459.0A
Other languages
English (en)
Other versions
CN117370231A (zh
Inventor
李丹花
陈明
黄宇浩
温炜坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xindong Microelectronics Technology Wuhan Co ltd
Original Assignee
Xindong Microelectronics Technology Wuhan Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xindong Microelectronics Technology Wuhan Co ltd filed Critical Xindong Microelectronics Technology Wuhan Co ltd
Priority to CN202311666459.0A priority Critical patent/CN117370231B/zh
Publication of CN117370231A publication Critical patent/CN117370231A/zh
Application granted granted Critical
Publication of CN117370231B publication Critical patent/CN117370231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种实现GPU核内片上网络总线访问的协议转换模块及方法。协议转换模块包括标识分配模块、请求处理模块和响应处理模块;标识分配模块用于为BIF协议接口的命令通道信号分配不同的标识信号;请求处理模块用于将包含命令通道信号和标识信号在内的信号转换成NSP协议接口的请求通道信号;标识分配模块还用于接收来自从机的NSP协议接口的响应通道信号,释放命令通道信号对应的标识信号,将响应通道信号转发给响应处理模块;响应处理模块用于处理响应通道信号,确定是否需要将其转化成读数据通道信号。本发明旨在解决随着GPU核内运算单元的增加,GPU核内结构修改的复杂度增加以及后端布局布线难度增大的问题。

Description

实现GPU核内片上网络总线访问的协议转换模块及方法
技术领域
本发明属于数据处理技术领域,更具体地,涉及一种实现GPU核内片上网络总线访问的协议转换模块及方法。
背景技术
GPU是并行计算处理器,核内具有多个运算单元,每个运算单元都是相互独立的,因此在进行计算时,每个运算单元都会对核内存储器进行频繁访问,从而实现不同运算单元间的数据交互。一般来说,GPU作为大型芯片,面积较大,运算单元访问核内存储器的路径较长,同时,GPU作为图形处理器,对图片的处理速度有较高的需求,频率较快,因此,需要在运算单元访问核内存储器的长路径上插入缓存模块,以满足该路径的时序需求。
但是,随着GPU核内运算单元数量的增加,一方面需要加入大量的缓存模块(buffer),导致对GPU核内结构进行修改的复杂度增加;另一方面,由于运算单元访问核内存储器的路径线宽无法共享,使得该路径的线宽进一步加大,这会导致后端布局布线的难度增大。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种实现GPU核内片上网络总线访问的协议转换模块及方法,旨在解决随着GPU核内运算单元的增加,GPU核内结构修改的复杂度增加以及后端布局布线难度增大的问题。
为实现上述目的,按照本发明的一个方面,提供了一种协议转换模块,包括标识分配模块、请求处理模块和响应处理模块;标识分配模块用于为BIF协议接口的命令通道信号bif_cmd分配不同的标识信号noc_req_trid,以区分不同的命令通道信号bif_cmd;请求处理模块用于将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP协议接口的请求通道信号noc_req;标识分配模块还用于接收来自从机的与请求通道信号noc_req对应的NSP协议接口的响应通道信号noc_rsp,释放命令通道信号bif_cmd对应的标识信号noc_req_trid,将响应通道信号noc_rsp转发给响应处理模块;响应处理模块用于处理响应通道信号noc_rsp,确定是否需要将该响应通道信号noc_rsp转化成读数据通道信号bif_rtn。
在一些实施方式中,请求处理模块用于在读操作时,将命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req;请求处理模块还用于在写操作时,将BIF协议接口的写数据通道信号bif_write、命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req。
在一些实施方式中,NSP协议接口包括第一NSP协议接口DAT_NOC和第二NSP协议接口CFG_NOC;NSP协议接口的请求通道信号noc_req包括第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req和第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req。
在一些实施方式中,请求处理模块用于在读操作时执行第一处理操作;第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号。
在一些实施方式中,请求处理模块还用于在写操作时执行第一处理操作和第二处理操作。
在一些实施方式中,第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号。
在一些实施方式中,第二处理操作包括:将写数据通道信号bif_write中的数据信号转换成第一NSP协议接口DAT_NOC的请求通道中的数据信号,以及将写数据通道信号bif_write中的边带信号转换成第二NSP协议接口CFG_NOC的请求通道中的数据信号。
在一些实施方式中,在写操作时,请求处理模块在收到写数据通道信号bif_write而未收到命令通道信号bif_cmd时,等待命令通道信号bif_cmd到达;在收到写数据通道信号bif_write和命令通道信号bif_cmd之后,再执行第一处理操作和第二处理操作。
在一些实施方式中,响应通道信号noc_rsp包括第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp和第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp,其中,响应通道信号dat_noc_rsp为请求通道信号dat_noc_req对应的响应信号,响应通道信号cfg_noc_rsp为请求通道信号cfg_noc_req对应的响应信号。
在一些实施方式中,标识分配模块还用于在接收到响应通道信号dat_noc_rsp之后,根据响应通道信号dat_noc_rsp中的标识信号noc_rsp_trid,释放命令通道信号bif_cmd对应的标识信号noc_req_trid,以及将响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp转发给响应处理模块进行处理。
在一些实施方式中,响应处理模块用于根据响应通道信号cfg_noc_rsp中的响应信号,判断该笔响应是否需要转换成读数据通道信号bif_rtn,是则将响应通道信号cfg_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的边带信号,以及将响应通道信号dat_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的数据信号;否则将该响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp丢弃。
在一些实施方式中,标识分配模块包括标志寄存器;标识分配模块在收到命令通道信号bif_cmd后,确认标志寄存器中是否存在可用的标识信号,如果存在则将标志寄存器的对应位设置为第一数值,并将该位对应的索引作为命令通道信号bif_cmd对应的标识信号noc_req_trid;如果不存在则等待至标志寄存器中有可用的标识信号之后,再接收命令通道信号bif_cmd。
根据本发明的另一方面,提供了一种图形处理单元,包括主机、从机和上述协议转换模块。
根据本发明的又一方面,提供了一种协议转换方法,包括:
为BIF协议接口的命令通道信号bif_cmd分配不同的标识信号noc_req_trid,以区分不同的命令通道信号bif_cmd;
将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP协议接口的请求通道信号noc_req;
接收来自从机的与请求通道信号noc_req对应的NSP协议接口的响应通道信号noc_rsp,释放命令通道信号bif_cmd对应的标识信号noc_req_trid;
处理响应通道信号noc_rsp,确定是否需要将该响应通道信号noc_rsp转化成读数据通道信号bif_rtn。
在一些实施方式中,将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP协议接口的请求通道信号noc_req包括:
在读操作时,将命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req;
在写操作时,将BIF协议接口的写数据通道信号bif_write、命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req。
在一些实施方式中,NSP协议接口包括第一NSP协议接口DAT_NOC和第二NSP协议接口CFG_NOC;NSP协议接口的请求通道信号noc_req包括第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req和第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req。
在一些实施方式中,在读操作时,将命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req包括执行第一处理操作;
第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号。
在一些实施方式中,在写操作时,将BIF协议接口的写数据通道信号bif_write、命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req包括执行第一处理操作和第二处理操作;
第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号;
第二处理操作包括:将写数据通道信号bif_write中的数据信号转换成第一NSP协议接口DAT_NOC的请求通道中的数据信号,以及将写数据通道信号bif_write中的边带信号转换成第二NSP协议接口CFG_NOC的请求通道中的数据信号。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:通过GPU核内运算单元的自定义总线接口(Bus Interface,BIF)协议和片上网络的NSP(Arteris NoC Socket Protocol)协议的相互转换,使得GPU核内运算单元能够访问片上网络(Network On Chip,NOC)总线,并利用NOC总线的网络带宽的优点,避免原来主从设备一对一访问的流水线路径,支持不同的主从设备在共同路径上进行带宽合并,从而缩减GPU核内运算单元访问核内存储器的带宽;另外,NOC总线通过将芯片内的功能模块连接到网络上,实现了高度的模块化核可扩展性,因此,在修改GPU核内主从设备数量及主从设备在芯片中的布局时,只需要修改NOC中模块化的交换机和连接线,而无需重新布线整个芯片,增强了GPU核内结构的灵活性。
附图说明
图1是本发明实施例的实现GPU核内片上网络总线访问的协议转换模块的结构示意图;
图2是本发明实施例的实现GPU核内片上网络总线访问的协议转换方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。正如本领域技术人员可以认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
片上网络(Network On Chip,NOC)总线是一种分布式的体系结构,通常由交换机和连接线组成。它支持多种拓扑结构,这些拓扑结构决定了节点之间的连接方式和通信路径,每个节点代表一个功能模块或处理单元,每个节点之间通过交换机和连接线实现通信。它采用交换数据包的方式,能够快速地实现主机(master)之间的相互通信。
本发明实施例中,GPU核内运算单元访问核内存储器的自定义BIF协议包括三个通道,分别为命令通道、写数据通道和读数据通道。
片上网络的NSP协议包括两个通道,分别为请求通道和响应通道,其中,请求通道主要传输命令和写数据,响应通道主要传输读数据,请求通道和响应通道均能传输边带(sideband)信号。
如图1所示,本发明实施例的实现GPU核内片上网络总线访问的协议转换模块包括标识分配模块、请求处理模块和响应处理模块。
一方面,标识分配模块用于分配标识信号。
标识分配模块为BIF协议接口的命令通道信号bif_cmd分配不同的标识信号,以区分不同的命令通道信号bif_cmd。在一些实施方式中,标识分配模块支持的标识信号数量是可修改的。以256个标识信号为例,标识分配模块中设置256位的标志寄存器。具体地,在收到命令通道信号bif_cmd的请求之后,标识分配模块会确认标志寄存器中是否存在可以使用的标识信号(flag),如果存在可以使用的标识信号,则将标志寄存器的对应位设置为第一数值,并将该位对应的索引(index)作为命令通道信号bif_cmd对应的标识信号noc_req_trid发送到请求处理模块,与此同时,标识分配模块接收和转发命令通道信号bif_cmd到请求处理模块;如果不存在可以使用的标识信号,则必须等到标志寄存器中有可以使用的标识信号之后,才能接收命令通道信号bif_cmd。
在一些实施方式中,通过在标志寄存器中寻找是否存在为0的位,确认标志寄存器中是否有可以使用的标识信号。具体地,在标志寄存器中不存在为0的位时,认为标志寄存器中没有可以使用的标识信号;在标志寄存器中存在为0的位时,认为标志寄存器中有可以使用的标识信号,并将选中的为0的位设置为1。
在读操作时,请求处理模块用于将标识分配模块转发的命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req。在写操作时,请求处理模块用于将BIF协议接口的写数据通道信号bif_write、标识分配模块转发的命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req。
进一步地,通过协议转换模块,将BIF协议接口转换成两个片上网络的NSP协议接口,分别为第一NSP协议接口DAT_NOC和第二NSP协议接口CFG_NOC。其中,第一NSP协议接口DAT_NOC的请求通道和响应通道主要用于传输BIF协议接口的写数据通道和读数据通道中的数据信号,第二NSP协议接口CFG_NOC的请求通道和响应通道主要用于传输BIF协议接口的命令通道、写数据通道和读数据通道中的命令信号以及除命令信号和数据信号之外的其他信号,即边带信号。
由于BIF协议的数据信号位宽为256位,边带信号的位宽一般小于32位,而NSP协议接口的数据位宽主要有16、32、64、128、256和512位六种,如果只设置一个NSP协议接口,并利用该NSP协议接口的数据信号同时传输BIF的数据信号和边带信号,则必须使用512位数据位宽的NSP协议接口,会占用较大的位宽。而通过使用两个NSP协议接口,具体采用数据位宽分别为256位和32位的NSP协议接口,就能大大减小传输数据线的位宽,提高对传输数据线的位宽的利用率,避免数据线的位宽的浪费。
因此,在一些实施方式中,NSP协议接口的请求通道信号noc_req包括第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req和第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req。其中,请求通道信号dat_noc_req是指第一NSP协议接口DAT_NOC的请求通道的所有信号的集合,请求通道信号cfg_noc_req是指第二NSP协议接口CFG_NOC的请求通道的所有信号的集合。
具体地,在不包含对BIF协议接口的写数据通道执行操作时,如在执行读操作时,请求处理模块在接收到标识分配模块转发的命令通道信号bif_cmd之后,执行第一处理操作。第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号(为命令信号的一部分)以及标识分配模块输入的标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号,再下发到从机。与此同时,请求处理模块还会将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号下发到从机。
在包含对BIF协议接口的写数据通道执行的操作时,如在执行写操作时,一般而言,主机会先发送命令通道信号bif_cmd,再发送写数据通道信号bif_write,因此,请求处理模块在接收到标识分配模块转发的命令通道信号bif_cmd之后会等待写数据通道信号bif_write到达。等到写数据通道信号bif_write到达之后,请求处理模块除执行上述第一处理操作之外,还执行第二处理操作。在一些实施方式中,第二处理操作包括:将写数据通道信号bif_write中的数据信号转换成第一NSP协议接口DAT_NOC的请求通道中的数据信号下发到从机,以及将写数据通道信号bif_write中的边带信号转换成第二NSP协议接口CFG_NOC的请求通道中的数据信号下发到从机。
除正常工作情况以外,请求处理模块也考虑了错误情况下的处理,即写数据通道信号bif_write比命令通道信号bif_cmd先到达的情况。当请求处理模块先接收到写数据通道信号bif_write,但没有接收到命令通道信号bif_cmd时,请求处理模块不会接受该写数据通道信号bif_write,而是等到命令通道信号bif_cmd到达之后再进行协议转换,即执行上述第一处理操作和第二处理操作。
因此,第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req主要包含第一NSP协议接口DAT_NOC的请求通道的命令信号和数据信号,第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req主要包含第二NSP协议接口CFG_NOC的请求通道的命令信号、数据信号和边带信号。
从机收到来自请求处理模块的请求通道信号noc_req,生成响应通道信号noc_rsp。在一些实施方式中,响应通道信号noc_rsp包括响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp。从机收到来自请求处理模块的请求通道信号dat_noc_req,生成第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp,将响应通道信号dat_noc_rsp发送到第一NSP协议接口DAT_NOC的响应通道;从机收到来自请求处理模块的请求通道信号cfg_noc_req,生成第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp,将响应通道信号cfg_noc_rsp发送到第二NSP协议接口CFG_NOC的响应通道。
另一方面,标识分配模块用于释放标识信号。
标识分配模块在接收到命令通道信号bif_cmd的响应(即来自从机的与请求通道信号noc_req对应的NSP协议接口的响应通道信号noc_rsp)后,释放该命令通道信号bif_cmd对应的标识信号noc_req_trid,该释放的标识信号可以被新的命令通道信号bif_cmd使用。具体地,标识分配模块在接收到第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp之后,会根据响应通道信号dat_noc_rsp中的标识信号noc_rsp_trid索引到标志寄存器的对应位,并将该位由第一数值设置为第二数值,使得该标志寄存器位可以用于生成新的命令通道信号bif_cmd的标识信号noc_req_trid,与此同时,标识分配模块会将响应通道信号noc_rsp(包括第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp和第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp)转发给响应处理模块进行处理。
在一些实施方式中,第一数值为1,第二数值为0。
响应处理模块主要用于处理标识分配模块转发的响应通道信号noc_rsp,确定是否需要将该响应通道信号noc_rsp转化成读数据通道信号bif_rtn。
在一些实施方式中,响应处理模块用于处理第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp和第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp,确定是否需要将该响应通道信号转化成读数据通道信号bif_rtn。一般而言,NOC对于所有请求都会返回响应,而BIF仅仅在具有读数据通道的操作时才会返回响应。因此,响应处理模块首先通过第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp中的响应信号(属于响应通道信号cfg_noc_rsp中的边带信号)判断该笔响应是否需要转换成读数据通道信号bif_rtn,是则将响应通道信号cfg_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的边带信号,以及将响应通道信号dat_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的数据信号,再将读数据通道信号bif_rtn返回至主机;否则将该响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp丢弃。
在一些实施方式中,在响应通道信号cfg_noc_rsp中的响应信号为第三数值(例如为1)时,判断该笔响应需要转换成读数据通道信号bif_rtn;在响应通道信号cfg_noc_rsp中的响应信号为第四数值(例如为0)时,判断该笔响应不需要转换成读数据通道信号bif_rtn。
如图2所示,本发明实施例的实现GPU核内片上网络总线访问的协议转换方法包括:
步骤S201:为BIF协议接口的命令通道信号bif_cmd分配不同的标识信号noc_req_trid,以区分不同的命令通道信号bif_cmd。
在一些实施方式中,在收到命令通道信号bif_cmd后,确认是否存在可用的标识信号,如果存在则将对应位设置为第一数值,并将该位对应的索引作为命令通道信号bif_cmd对应的标识信号noc_req_trid;如果不存在则等待至存在可用的标识信号之后,再接收命令通道信号bif_cmd。
步骤S203:将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP协议接口的请求通道信号noc_req。
在一些实施方式中,NSP协议接口包括第一NSP协议接口DAT_NOC和第二NSP协议接口CFG_NOC;NSP协议接口的请求通道信号noc_req包括第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req和第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req。
在一些实施方式中,在读操作时,将命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req,包括执行第一处理操作。在一些实施方式中,第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号。
在一些实施方式中,在写操作时,将BIF协议接口的写数据通道信号bif_write、命令通道信号bif_cmd和标识信号noc_req_trid转换成NSP协议接口的请求通道信号noc_req,包括执行第一处理操作和第二处理操作。在一些实施方式中,第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号。在一些实施方式中,第二处理操作包括:将写数据通道信号bif_write中的数据信号转换成第一NSP协议接口DAT_NOC的请求通道中的数据信号,以及将写数据通道信号bif_write中的边带信号转换成第二NSP协议接口CFG_NOC的请求通道中的数据信号。
在一些实施方式中,在写操作时,在收到写数据通道信号bif_write而未收到命令通道信号bif_cmd时,等待命令通道信号bif_cmd到达;在收到写数据通道信号bif_write和命令通道信号bif_cmd之后,再执行第一处理操作和第二处理操作。
步骤S205:接收来自从机的与请求通道信号noc_req对应的NSP协议接口的响应通道信号noc_rsp,释放命令通道信号bif_cmd对应的标识信号noc_req_trid。
在一些实施方式中,响应通道信号noc_rsp包括第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp和第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp,其中,响应通道信号dat_noc_rsp为请求通道信号dat_noc_req对应的响应信号,响应通道信号cfg_noc_rsp为请求通道信号cfg_noc_req对应的响应信号。
在一些实施方式中,在接收到响应通道信号dat_noc_rsp之后,根据响应通道信号dat_noc_rsp中的标识信号noc_rsp_trid,释放命令通道信号bif_cmd对应的标识信号noc_req_trid,以及将响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp转发给响应处理模块进行处理。
步骤S207:处理响应通道信号noc_rsp,确定是否需要将该响应通道信号noc_rsp转化成读数据通道信号bif_rtn。
在一些实施方式中,根据响应通道信号cfg_noc_rsp中的响应信号,判断该笔响应是否需要转换成读数据通道信号bif_rtn,是则将响应通道信号cfg_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的边带信号,以及将响应通道信号dat_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的数据信号;否则将该响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp丢弃。
本发明实施例的协议转换方法的更多细节可以参考上述协议转换模块的描述,二者具有相同或相似的技术效果。本发明在此不再赘述。
本发明通过GPU核内运算单元的自定义总线接口(Bus Interface,BIF)协议和片上网络的NSP(Arteris NoC Socket Protocol)协议的相互转换,使得GPU核内运算单元能够访问片上网络(Network On Chip,NOC)总线,并利用NOC总线的网络带宽的优点,避免原来主从设备一对一访问的流水线路径,支持不同的主从设备在共同路径上进行带宽合并,从而缩减GPU核内运算单元访问核内存储器的带宽;另外,NOC总线通过将芯片内的功能模块连接到网络上,实现了高度的模块化核可扩展性,因此,在修改GPU核内主从设备数量及主从设备在芯片中的布局时,只需要修改NOC中模块化的交换机和连接线,而无需重新布线整个芯片,增强了GPU核内结构的灵活性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种协议转换模块,其特征在于,包括标识分配模块、请求处理模块和响应处理模块;
所述标识分配模块用于为BIF协议接口的命令通道信号bif_cmd分配不同的标识信号noc_req_trid,以区分不同的命令通道信号bif_cmd;
所述请求处理模块用于将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP(Arteris NoC Socket Protocol)协议接口的请求通道信号noc_req;
NSP协议接口包括第一NSP协议接口DAT_NOC和第二NSP协议接口CFG_NOC;NSP协议接口的请求通道信号noc_req包括第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req和第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req;
所述请求处理模块用于在读操作和写操作时执行第一处理操作;第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号;
所述标识分配模块还用于接收来自从机的与请求通道信号noc_req对应的NSP协议接口的响应通道信号noc_rsp,释放命令通道信号bif_cmd对应的标识信号noc_req_trid,将响应通道信号noc_rsp转发给所述响应处理模块;
所述响应处理模块用于根据响应通道信号noc_rsp判断是否为读操作,进而确定是否需要将该响应通道信号noc_rsp转化成读数据通道信号bif_rtn。
2.如权利要求1所述的协议转换模块,其特征在于,所述请求处理模块还用于在写操作时执行第二处理操作;
第二处理操作包括:将写数据通道信号bif_write中的数据信号转换成第一NSP协议接口DAT_NOC的请求通道中的数据信号,以及将写数据通道信号bif_write中的边带信号转换成第二NSP协议接口CFG_NOC的请求通道中的数据信号。
3.如权利要求2所述的协议转换模块,其特征在于,在写操作时,所述请求处理模块在收到写数据通道信号bif_write而未收到命令通道信号bif_cmd时,等待命令通道信号bif_cmd到达;在收到写数据通道信号bif_write和命令通道信号bif_cmd之后,再执行第一处理操作和第二处理操作。
4.如权利要求1所述的协议转换模块,其特征在于,响应通道信号noc_rsp包括第一NSP协议接口DAT_NOC的响应通道信号dat_noc_rsp和第二NSP协议接口CFG_NOC的响应通道信号cfg_noc_rsp,其中,响应通道信号dat_noc_rsp为请求通道信号dat_noc_req对应的响应信号,响应通道信号cfg_noc_rsp为请求通道信号cfg_noc_req对应的响应信号;
所述标识分配模块还用于在接收到响应通道信号dat_noc_rsp之后,根据响应通道信号dat_noc_rsp中的标识信号noc_rsp_trid,释放命令通道信号bif_cmd对应的标识信号noc_req_trid,以及将响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp转发给响应处理模块进行处理。
5.如权利要求4所述的协议转换模块,其特征在于,所述响应处理模块用于根据响应通道信号cfg_noc_rsp中的响应信号,判断该响应是否需要转换成读数据通道信号bif_rtn,是则将响应通道信号cfg_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的边带信号,以及将响应通道信号dat_noc_rsp中的数据信号转换成读数据通道信号bif_rtn中的数据信号;否则将该响应通道信号dat_noc_rsp和响应通道信号cfg_noc_rsp丢弃。
6.如权利要求1至5中任一项所述的协议转换模块,其特征在于,所述标识分配模块包括标志寄存器;所述标识分配模块在收到命令通道信号bif_cmd后,确认所述标志寄存器中是否存在可用的标识信号,如果存在则将所述标志寄存器的对应位设置为第一数值,并将该对应位对应的索引作为命令通道信号bif_cmd对应的标识信号noc_req_trid;如果不存在则等待至所述标志寄存器中有可用的标识信号之后,再接收命令通道信号bif_cmd。
7.一种图形处理单元,其特征在于,包括主机、从机和权利要求1至6中任一项所述的协议转换模块。
8.一种协议转换方法,其特征在于,包括:
为BIF协议接口的命令通道信号bif_cmd分配不同的标识信号noc_req_trid,以区分不同的命令通道信号bif_cmd;
将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP(Arteris NoC Socket Protocol)协议接口的请求通道信号noc_req,包括:在读操作和写操作时执行第一处理操作;
NSP协议接口包括第一NSP协议接口DAT_NOC和第二NSP协议接口CFG_NOC;NSP协议接口的请求通道信号noc_req包括第一NSP协议接口DAT_NOC的请求通道信号dat_noc_req和第二NSP协议接口CFG_NOC的请求通道信号cfg_noc_req;
第一处理操作包括:将命令通道信号bif_cmd中的操作类型和数据长度信号以及标识信号noc_req_trid一起分别发送到第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道,分别构成第一NSP协议接口DAT_NOC的请求通道和第二NSP协议接口CFG_NOC的请求通道中的命令信号;将命令通道信号bif_cmd中的命令信号拼接成第二NSP协议接口CFG_NOC的请求通道中的边带信号;
接收来自从机的与请求通道信号noc_req对应的NSP协议接口的响应通道信号noc_rsp,释放命令通道信号bif_cmd对应的标识信号noc_req_trid;
根据响应通道信号noc_rsp判断是否为读操作,进而确定是否需要将该响应通道信号noc_rsp转化成读数据通道信号bif_rtn。
9.如权利要求8所述的协议转换方法,其特征在于,将包含命令通道信号bif_cmd和标识信号noc_req_trid在内的信号转换成NSP协议接口的请求通道信号noc_req还包括在写操作时执行第二处理操作;
第二处理操作包括:将写数据通道信号bif_write中的数据信号转换成第一NSP协议接口DAT_NOC的请求通道中的数据信号,以及将写数据通道信号bif_write中的边带信号转换成第二NSP协议接口CFG_NOC的请求通道中的数据信号。
CN202311666459.0A 2023-12-07 2023-12-07 实现gpu核内片上网络总线访问的协议转换模块及方法 Active CN117370231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311666459.0A CN117370231B (zh) 2023-12-07 2023-12-07 实现gpu核内片上网络总线访问的协议转换模块及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311666459.0A CN117370231B (zh) 2023-12-07 2023-12-07 实现gpu核内片上网络总线访问的协议转换模块及方法

Publications (2)

Publication Number Publication Date
CN117370231A CN117370231A (zh) 2024-01-09
CN117370231B true CN117370231B (zh) 2024-04-12

Family

ID=89402634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311666459.0A Active CN117370231B (zh) 2023-12-07 2023-12-07 实现gpu核内片上网络总线访问的协议转换模块及方法

Country Status (1)

Country Link
CN (1) CN117370231B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005059765A1 (fr) * 2003-12-18 2005-06-30 Zte Corporation Convertisseur a interface bus apte a convertir un protocole de bus amba ahb en protocole de bus de type i960
WO2012136035A1 (zh) * 2011-04-02 2012-10-11 中兴通讯股份有限公司 一种信息传输的方法、装置及系统
WO2014086219A1 (zh) * 2012-12-06 2014-06-12 华为技术有限公司 一种基于外设部件互联总线的内容查找芯片及系统
CN114327959A (zh) * 2022-01-06 2022-04-12 中国银行股份有限公司 从Socket协议到Dubbo协议的转换方法及装置
WO2022141322A1 (zh) * 2020-12-30 2022-07-07 华为技术有限公司 一种片上系统及相关方法
CN115982071A (zh) * 2023-01-31 2023-04-18 中国电子科技集团公司第五十八研究所 一种面向ddr3控制器的片上网络转换接口

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183168B2 (en) * 2013-02-22 2015-11-10 Dell Products, Lp Dual mode USB and serial console port
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
US20210382847A1 (en) * 2020-06-09 2021-12-09 Arteris, Inc. SYSTEM AND METHOD FOR PERFORMING TRANSACTION AGGREGATION IN A NETWORK-ON-CHIP (NoC)

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005059765A1 (fr) * 2003-12-18 2005-06-30 Zte Corporation Convertisseur a interface bus apte a convertir un protocole de bus amba ahb en protocole de bus de type i960
WO2012136035A1 (zh) * 2011-04-02 2012-10-11 中兴通讯股份有限公司 一种信息传输的方法、装置及系统
WO2014086219A1 (zh) * 2012-12-06 2014-06-12 华为技术有限公司 一种基于外设部件互联总线的内容查找芯片及系统
WO2022141322A1 (zh) * 2020-12-30 2022-07-07 华为技术有限公司 一种片上系统及相关方法
CN114327959A (zh) * 2022-01-06 2022-04-12 中国银行股份有限公司 从Socket协议到Dubbo协议的转换方法及装置
CN115982071A (zh) * 2023-01-31 2023-04-18 中国电子科技集团公司第五十八研究所 一种面向ddr3控制器的片上网络转换接口

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于RISC V的NoC配置管理单元设计及验证》;《Microcontrollers &Embedded Systems》(第3期);12-14 *
《面向高带宽I/O的片上网络优化》;石 伟;《 计算机工程与科学》;第43卷(第9期);1538-1542 *

Also Published As

Publication number Publication date
CN117370231A (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
JP5280135B2 (ja) データ転送装置
KR101077900B1 (ko) 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치
US9015380B2 (en) Exchanging message data in a distributed computer system
CN113194162B (zh) 一种数据传输方法、装置、电子设备及介质
US8090893B2 (en) Input output control apparatus with a plurality of ports and single protocol processing circuit
JP3125739B2 (ja) バススイッチ
US20110125824A1 (en) Computer for performing inter-process communication, computer-readable medium storing inter-process communication program, and inter-process communication method
CN112256624B (zh) 用于高速互连网络接口芯片的dma通信装置、芯片、设备及方法
CN117370231B (zh) 实现gpu核内片上网络总线访问的协议转换模块及方法
CN116107697B (zh) 一种不同操作系统之间互相通信的方法及系统
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
WO2023186143A1 (zh) 一种数据处理方法、主机及相关设备
KR101197294B1 (ko) QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법
CN116483259A (zh) 一种数据处理方法以及相关装置
CN115827524A (zh) 一种数据传输方法以及装置
WO1996003697A1 (en) Method for semaphore communication between incompatible bus locking architectures
JP2005196509A (ja) データ処理システム
JP4623126B2 (ja) データ処理システム
JP4930554B2 (ja) 入出力制御装置
CN117389931B (zh) 适用于总线访问gpu核内存储器的协议转换模块及方法
JP7235295B2 (ja) 仮想マシン管理装置、仮想マシン管理方法、及びプログラム
KR100250465B1 (ko) 고속병렬컴퓨터의 메시지 전송 방법
JP4154678B2 (ja) 情報処理装置
US20050165988A1 (en) Bus communication system
CN117806999A (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