CN115576889B - 链式的多芯片系统及通讯方法 - Google Patents
链式的多芯片系统及通讯方法 Download PDFInfo
- Publication number
- CN115576889B CN115576889B CN202211429460.7A CN202211429460A CN115576889B CN 115576889 B CN115576889 B CN 115576889B CN 202211429460 A CN202211429460 A CN 202211429460A CN 115576889 B CN115576889 B CN 115576889B
- Authority
- CN
- China
- Prior art keywords
- chip
- ith
- packet
- communication
- space
- 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
- 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/17318—Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种链式的多芯片系统及通讯方法,属于芯片技术领域。所述多芯片系统包括n个芯片,每个芯片中设置有菊花链模块,菊花链模块包括一个发送端和一个接收端,n≥2;当m=0时,第0个芯片的接收端与第n‑1个芯片的发送端相连,发送端与第1个芯片的接收端相连;当1≤m≤n‑2时,第m个芯片的接收端与第m‑1个芯片的发送端相连,发送端与第m+1个芯片的接收端相连;当m=n‑1时,第n‑1个芯片的接收端与第n‑2个芯片的发送端相连,发送端与第0个芯片的接收端相连。本申请能够复用单一IP设计,使多芯片系统具有结构简单、成本低廉、较低频工作而无须端口物理层的特点,且具有精简的芯片间通讯包格式。
Description
技术领域
本申请实施例涉及芯片技术领域,特别涉及一种链式的多芯片系统及通讯方法。
背景技术
在一个多芯片系统中,多个芯片基于NVLink(英伟达NVIDIA开发并推出的一种总线及其通信协议)协议或PCI(Peripheral Component Interconnect,外设组件互连标准)协议或PCIE(Peripheral Component Interconnect Express,高速外设组件互连标准)协议等的板级系统设计。如图1所示,CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、Audio/Vedio、存储设备/网络、桥/内存控制器等芯片都与PCIE总线相连,且这些芯片之间通过PCIE总线进行通讯。
然而,通过总线连接多芯片的方式会使得芯片之间的通讯方式较为复杂,成本高,研发周期较长,限制了诸如AI(Artificial Intelligence,人工智能)、自动驾驶领域等对算力有高要求的多芯片系统选定基于其作为实现方案的可行性。
发明内容
本申请实施例提供了一种链式的多芯片系统及通讯方法,用于解决基于总线的多芯片系统较为复杂、成本高、研发周期长、算力不足问题。所述技术方案如下:
一方面,提供了一种链式的多芯片系统,所述多芯片系统包括n个芯片,每个芯片中设置有菊花链模块,所述菊花链模块包括一个发送端和一个接收端,n≥2;
当m=0时,第0个芯片的接收端与第n-1个芯片的发送端相连,发送端与第1个芯片的接收端相连;
当1≤m≤n-2时,第m个芯片的接收端与第m-1个芯片的发送端相连,发送端与第m+1个芯片的接收端相连;
当m=n-1时,第n-1个芯片的接收端与第n-2个芯片的发送端相连,发送端与第0个芯片的接收端相连。
一方面,提供了一种链式的多芯片系统的通讯方法,应用于如上所述的链式的多芯片系统中,所述方法包括:
第i个芯片获取第j个芯片的芯片信息,0≤i≤n-1,0≤j≤n-1,且i≠j;
所述第i个芯片根据所述芯片信息,在所述第j个芯片中的空间映射表中配置通讯参数,所述通讯参数包括通讯数据在所述第j个芯片中的存储区域和所述第i个芯片的编号;
所述第i个芯片根据所述通讯数据和所述第i个芯片的编号生成读写通讯包,将所述读写通讯包发送给所述第j个芯片;
所述第j个芯片从所述空间映射表中获取与所述第i个芯片的编号对应的通讯参数,根据所述通讯参数中的存储区域对所述读写通讯包进行处理。
在一种可能的实现方式中,所述方法还包括:
当m=0时,第0个芯片生成自身的编号和芯片信息,根据自身的编号和芯片信息生成链路初始化包,将所述链路初始化包发送给第1个芯片;
当1≤m≤n-2时,第m个芯片接收第m-1个芯片发送的链路初始化包,生成自身的编号和芯片信息,将自身的编号和芯片信息添加到所述链路初始化包中,将更新后的链路初始化包发送给第m+1个芯片;
当m=n-1时,第n-1个芯片接收第n-2个芯片发送的链路初始化包,生成自身的编号和芯片信息,将自身的编号和芯片信息添加到所述链路初始化包中,将更新后的链路初始化包发送给第0个芯片;
第0个芯片从接收到的链路初始化包中获取n个芯片的编号和芯片信息,将所述n个芯片的编号和芯片信息发送给每个芯片。
在一种可能的实现方式中,当第0个芯片为根节点,其他芯片为叶子节点时,所述方法还包括:
所述叶子节点在访问超时时向所述根节点发送通知消息;
所述根节点根据所述通知消息向每个叶子节点发送复位广播包;
每个叶子节点根据所述复位广播包进行复位操作。
在一种可能的实现方式中,所述第i个芯片中配置有n个菊花链模块空间,每个菊花链模块空间对应于所述多芯片系统中的一个芯片,所述方法还包括:
所述第i个芯片接收对第j个菊花链模块空间的访问请求;
所述第i个芯片根据所述访问请求,触发执行所述获取第j个芯片的芯片信息的步骤。
在一种可能的实现方式中,所述第i个芯片中配置有广播空间,所述方法还包括:
所述第i个芯片在所述广播空间中写入广播数据,根据所述广播数据生成广播包,所述广播包中的目标节点标识为预定数值;
所述第i个芯片将所述广播包发送给所述多芯片系统中的每个芯片。
在一种可能的实现方式中,所述方法还包括:
当所述广播空间为所述n个菊花链模块空间之外的空间时,除所述第i个芯片之外的每个芯片根据所述广播数据修改自身的硬件资源;
当所述广播空间为第i个菊花链模块空间时,所述多芯片系统中的每个芯片根据所述广播数据修改自身的硬件资源。
在一种可能的实现方式中,所述第i个芯片中配置有邮箱缓存空间,所述方法还包括:
所述第i个芯片根据配置信息将所述邮箱缓存空间中的k个片段分配给第j个芯片,k≥1;
所述第i个芯片接收所述第j个芯片发送的邮件通讯包,将解析所述邮件通讯包后得到的通讯数据存储到所述k个片段所构成的邮箱缓存空间中。
在一种可能的实现方式中,所述第i个芯片中配置有硬件中断映射和软件中断映射,所述硬件中断映射包括p比特的第一中断信号和q比特的第二中断信号,所述第二中断信号是对多个中断信号进行或运算后得到的,所述方法还包括:
当硬件中断存在电平变化或软件中断存在系统置位后,所述第i个芯片根据所述硬件中断或所述软件中断生成中断映射包,将所述中断映射包发送给预定芯片;
所述预定芯片根据所述第i个芯片的编号将所述中断映射包存储到对应的中断状态寄存器中,通过所述中断状态寄存器控制中断控制器以触发对应的中断操作。
在一种可能的实现方式中,所述第i个芯片中配置有跨芯片互访发送端缓存空间和跨芯片互访接收端缓存空间,所述跨芯片互访发送端缓存空间和所述跨芯片互访接收端缓存空间用于控制芯片间传输的通讯数据的数据流量和对通讯链路的占用配额;
所述第i个芯片访问其他芯片的通讯数据的最大缓存空间小于所述跨芯片互访发送端缓存空间;
所述第i个芯片被其他芯片访问的通讯数据的最大缓存空间小于所述跨芯片互访接收端缓存空间。
本申请实施例提供的技术方案的有益效果至少包括:
多芯片系统包括n个芯片,每个芯片中设置有菊花链模块,菊花链模块包括一个发送端和一个接收端,且多个芯片通过发送端/接收端首尾相接,这样,可以复用单一IP设计,使多芯片系统具有结构简单、成本低廉、较低频工作而无须端口物理层(PHY-PortPhysical Layer)的特点。
通过设计精简的芯片间通讯包格式,能够简化多芯片系统的通讯方式,提高通讯效率。
通过构造地址映射结构可实现芯片间所有系统资源的互访,包括寄存器配置、数据传输、Mailbox通讯和中断资源映射,使得多芯片系统能够支持多芯片协同工作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据相关技术示出的一种多芯片系统的结构示意图;
图2是本申请一个实施例提供的一种链式的多芯片系统的结构示意图;
图3是本申请一个实施例提供的DCI IP的空间示意图;
图4是本申请一个实施例提供的多芯片系统的通讯方法的方法流程图;
图5是本申请一个实施例提供的中断流程的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图2,其示出了本申请一个实施例提供的链式的多芯片系统的结构示意图,该多芯片系统包括n个芯片,每个芯片中设置有菊花链模块,菊花链模块包括一个发送端和一个接收端,n≥2。
本实施例中所说的链式的多芯片系统具体可以是菊花链式的多芯片系统。菊花链是由多个芯片首尾相接所形成的环形拓扑。比如,有ABCD四个芯片,则形成的A-B-C-D-E-A的环被称为菊花链循式的多芯片系统。也就是说,将每个芯片连接到另一个芯片,而不是直接连接到使用该芯片的计算机系统,只有菊花链中的最后一个芯片直接连接到计算系统,从而将整个多芯片系统以菊花链的形式连接到计算机系统。
当菊花链式的多芯片系统中的一个芯片发送消息时,该消息由菊花链内的芯片在环内进行处理。当某个芯片出现故障时,可以通过反向路径来传输消息,从而确保消息能够在菊花链中出现单一故障的情况下被发送。
具体的,每个芯片中设置有一个菊花链模块(Daisy Chain InterfaceIntellectual Property,DCI IP),其作为链路中每个芯片与前后芯片连接的通用部件。
每个菊花链模块包括一个发送端(DCI_TX)和一个接收端(DCI_RX),且多个芯片通过DCI_RX/DCI_TX首尾相接。具体的,当m=0时,第0个芯片的接收端与第n-1个芯片的发送端相连,发送端与第1个芯片的接收端相连。当1≤m≤n-2时,第m个芯片的接收端与第m-1个芯片的发送端相连,发送端与第m+1个芯片的接收端相连。当m=n-1时,第n-1个芯片的接收端与第n-2个芯片的发送端相连,发送端与第0个芯片的接收端相连。
在一个示例中,n的取值区间是[2,15],即菊花链式多芯片系统可以支持2-15个芯片串接,图2中仅以4个芯片构成多芯片系统进行举例说明。
下面对多芯片系统的链路、通讯包的格式以及DCI IP进行说明。
•“DCI_TX->DCI_RX”的链接通路(link bus)定义为:
dci_clk,占用1bit,表示双沿DDR模式工作,即在上升沿和下降沿触发工作。
dci_cmd[1:0],占用2bits,用于确定通讯包的SOP(start of packet,开始)、EOP(end of packet,结束)和MOP(middle of packet,中间)。
dci_data[15:0],占用16bits,或者dci_data[7:0],占用8bits,用于传输通讯数据。
dci_rdy,占用1bit,用于表示接收端的缓冲区满了,需要发送端暂缓发送通讯数据。
•芯片间通讯包(packet)一般格式规定:
Common header byte 0:4bit packet type,4bit target identification(TID)。
Common header byte 1:4bit request identification (RID),4bit packettransmission parameter。
Extension byte 2~77:按照包类型追加对应的控制参数、数据、地址信息。
其中,芯片间通讯包类型包括以下几种(4bits,最多可以支持16种类型):
(1)链路初始化包;
(2)跨芯片总线类型写指令包;
(3)跨芯片总线类型写响应包;
(4)跨芯片总线类型读指令包;
(5)跨芯片总线类型读数据包;
(6)DCI IP(模块)节点配置包;
(7)Mailbox(邮箱)信息通讯包;
(8)跨芯片中断映射包;
(9)链路复位(reset)包;
(10)其它补充类型。
•用于跨芯片互访的地址映射:
每个DCI IP的设备虚拟空间为256M bytes,分为下面三部分,如图3所示:
(1)地址[0,0x00F_FFFF]:起始的64K bytes的区域为供本地的DCI使用的空间,其中包含本地DCI的必要配置寄存器、16K mailbox地址区域及中断(Interrupt Request,IRQ)映射区域等。
(2)地址[0x010_0000,0x01F_FFFF]:这部分链路DCI空间被等分为16个64K bytes的子区域,前15个子区域(也称为菊花链模块空间)中的每个子区域对应菊花链中的一个芯片的DCI IP子空间,第16个子区域为广播空间。需要说明的是,当链路长度小于15时,保留未使用的子区域。假设当前的链路中包含4个芯片,则第1-4个子区域被分配给4个芯片,第5-15个子区域保留,第16个子区域为广播空间。
(3)地址[0x020_0000,0xFFF_FFFF]:这部分区域可由DCI IP的设备寄存器配置为大小不等的最多64个空间映射表,空间映射表中的每一项包含一组分布于源节点和目标节点的参数,以用于指定虚拟空间的地址范围、偏移及芯片目标节点的编号。
多芯片系统中的每个芯片可以称为一个节点,且发起通讯的节点可以称为源节点,被通讯的节点可以称为目标节点。
多芯片系统中的两个节点进行通讯之前,需要先通过空间映射表来配置通讯参数,配置完成后再传输通讯包。比如,节点1需要从节点3中读取通讯数据,则节点1可以生成以下配置参数:源节点的编号为1,目标节点的编号为3,待读取的通讯数据的地址范围和偏移;将该配置参数作为一项写入节点3的空间映射表中,成功写入之后,节点1向节点3发送通讯包以读取通讯数据。
•中断映射
本实施例中的中断映射包括60+4 bits的硬件中断(Hardwire IRQ)和4 bits的软件中断(Software IRQ)。
硬件中断中,本地中断源可以通过配置抽选任意60 bit映射给链路中的任一目标节点;本地中断源可以通过配置抽选任意4个子集,每个子集中包括至少两个bit的中断信号,以或(或)逻辑获得4bit结果映射给链路中的任一目标节点。
软件中断中,软件可置位的寄存器中的4bits映射给链路中的任一目标节点。
•Mailbox通讯:
每个DCI IP包含一个16K bytes的maibox缓存,mailbox缓存被等分为32个片段(segment),每个片段512 bytes。每个片段都可以通过一个参数指定为链路中的哪个芯片所使用(可指定为自己),从而可以为链路中的芯片分配512 bytes到16K bytes且大小不等mailbox缓存用于芯片间通讯。
在使用多芯片系统之前,需要对链路进行初始化,下面对链路初始化的流程进行说明。具体的,当m=0时,第0个芯片生成自身的编号和芯片信息,根据自身的编号和芯片信息生成链路初始化包,将链路初始化包发送给第1个芯片;当1≤m≤n-2时,第m个芯片接收第m-1个芯片发送的链路初始化包,生成自身的编号和芯片信息,将自身的编号和芯片信息添加到链路初始化包中,将更新后的链路初始化包发送给第m+1个芯片;当m=n-1时,第n-1个芯片接收第n-2个芯片发送的链路初始化包,生成自身的编号和芯片信息,将自身的编号和芯片信息添加到链路初始化包中,将更新后的链路初始化包发送给第0个芯片;第0个芯片从接收到的链路初始化包中获取n个芯片的编号和芯片信息,将n个芯片的编号和芯片信息发送给每个芯片。
在整个链路上电工作后,由第0个芯片发起链路初始化,第0个芯片先生成编号0和自身的芯片信息,生成包含编号0和自身的芯片信息的链路初始化包,将链路初始化包发送给与其相连的第1个芯片,第1个芯片在确定上一芯片的编号为0时,将自身的编号设为1,并生成自身的芯片信息,将编号1和自身的芯片信息添加到链路初始化包中,将更新后的链路初始化包发送给与其相连的第2个芯片。依此类推,第n-1个芯片将更新后的链路初始化包发送给第0个芯片,此时的链路初始化包中会包含链路上所有芯片的编号和所有芯片的芯片信息,第0个芯片再将所有芯片的编号和芯片信息发送给每个芯片,这样,链路上的每个芯片中都存储有所有芯片的编号和芯片信息,初始化完成后准备进入一般工作模式,即各个芯片之间能够进行通讯。
请参考图4,其示出了本申请一个实施例提供的多芯片系统的通讯方法的方法流程图,该多芯片系统的通讯方法可以应用于图2所示的链式的多芯片系统中。该多芯片系统的通讯方法,可以包括:
步骤401,第i个芯片获取第j个芯片的芯片信息。
其中,0≤i≤n-1,0≤j≤n-1,且i≠j。
上文中提到,第i个芯片中配置有n个菊花链模块空间,且每个菊花链模块空间对应于多芯片系统中的一个芯片。当第i个芯片接收对第j个菊花链模块空间的访问请求时,也就相当于触发第i个芯片访问第j个芯片,此时,第i个芯片根据访问请求,触发执行步骤401。
由于初始化后每个芯片中都存储有链路上所有芯片的编号和芯片信息,所以,当第i个芯片需要与第j个芯片通讯时,可以直接读取预存的第j个芯片的芯片信息。
步骤402,第i个芯片根据芯片信息,在第j个芯片中的空间映射表中配置通讯参数,通讯参数包括通讯数据在第j个芯片中的存储区域和第i个芯片的编号。
上文中提到,空间映射表中的每一项包含一组分布于源节点和目标节点的参数,以用于指定虚拟空间的地址范围、偏移及芯片目标节点的编号。在此基础上,第i个芯片生成的通讯参数中包括第i个芯片的编号i、第j个芯片的编号j、通讯数据的地址范围和偏移。
步骤403,第i个芯片根据通讯数据和第i个芯片的编号生成读写通讯包,将读写通讯包发送给第j个芯片。
读写通讯包的头中包括包类型、第j个芯片的TID、第i个芯片的RID、传输参数和通讯数据。
当第i个芯片需要向第j个芯片发送写指令时,包类型为跨芯片总线类型写指令包,且通讯数据为待写入的通讯数据;当第i个芯片已向第j个芯片发送写指令时,第j个芯片需要返回写入成功或失败的响应时,包类型为跨芯片总线类型写响应包,且通讯数据为响应结果;当第i个芯片需要向第j个芯片发送读指令时,包类型为跨芯片总线类型读指令包,且通讯数据为待读取的通讯数据的参数;当第i个芯片已向第j个芯片发送读指令时,第j个芯片需要返回读出的通讯数据时,包类型为跨芯片总线类型读数据包,且通讯数据为读出的通讯数据。
步骤404,第j个芯片从空间映射表中获取与第i个芯片的编号对应的通讯参数,根据通讯参数中的存储区域对读写通讯包进行处理。
第j个芯片根据通讯数据包中的TID,从空间映射表中查找到对应的通讯参数,根据该通讯参数对读写通讯包进行处理。
当包类型为跨芯片总线类型写指令包时,第j个芯片根据写指令写入通讯数据,并返回跨芯片总线类型写响应包;当包类型为跨芯片总线类型写响应包时,第j个芯片确定通讯数据已被成功写入;当包类型为跨芯片总线类型读指令包,第j个芯片根据读指令读取通讯数据,并返回跨芯片总线类型读数据包。
上文中提到,第i个芯片中配置有广播空间,可以通过该广播区间向多个芯片发送广播包。具体的,第i个芯片在广播空间中写入广播数据,根据广播数据生成广播包,广播包中的目标节点标识为预定数值;第i个芯片将广播包发送给多芯片系统中的每个芯片。
为了便于区别普通通讯包和广播包,本实施例中将目标节点标识为预定数值的包称为广播包。比如,广播包中的4bit target identification (TID)=15,对应的包被指定为广播包,广播包会传递到链路中的所有芯片,并配置各芯片对应的寄存器,或者mailbox,或者IRQ,或者完成特殊功能。
本实施例中,根据写入数据的空间不同,将广播包分为普通广播包和增强广播包。其中,普通广播包只修改链路中其他芯片的硬件资源,不修改本地芯片的硬件资源;增强广播包不仅修改链路中其他芯片的硬件资源,还修改本地的芯片的硬件资源。
具体的,当广播空间为n个菊花链模块空间之外的空间时,除第i个芯片之外的每个芯片根据广播数据修改自身的硬件资源,这里所说的n个菊花链模块空间之外的空间是指上文中的1M~2M空间中的第16个子区域;当广播空间为第i个菊花链模块空间时,多芯片系统中的每个芯片根据广播数据修改自身的硬件资源,这里所说的第i个菊花链模块空间是指上文中的1M~2M空间中的编号为其自身的一个子区域,即15个子区域中的第i个子区域。
本实施例中,第i个芯片中配置有邮箱缓存空间,第i个芯片可以与其他芯片进行邮箱通讯。具体的,第i个芯片根据配置信息将邮箱缓存空间中的k个片段分配给第j个芯片,k≥1;第i个芯片接收第j个芯片发送的邮件通讯包,将解析邮件通讯包后得到的通讯数据存储到k个片段所构成的邮箱缓存空间中。
上文中提到,可以将邮箱缓存空间划分为32个片段,第i个芯片可以根据通讯数据的数据量大小,为第j个芯片分配对应数量的片段。假设第i个芯片为第j个芯片分配了3个字段,则第j个芯片可以通过邮箱通讯包将通讯数据写入这3个片段中,以被第i个芯片查询阅读使用,该邮箱通讯包的包类型为Mailbox信息通讯包。
本实施例中,第i个芯片中配置有硬件中断映射和软件中断映射,硬件中断映射包括p比特的第一中断信号和q比特的第二中断信号,第二中断信号是对多个中断信号进行或运算后得到的,当硬件中断存在电平变化或软件中断存在系统置位后,第i个芯片根据硬件中断或软件中断生成中断映射包,将中断映射包发送给预定芯片;预定芯片根据第i个芯片的编号将中断映射包存储到对应的中断状态寄存器中,通过中断状态寄存器控制中断控制器以触发对应的中断操作。
以p为60,q为4为例,当64bits硬件中断的逻辑电平的变化被检测到,或者4bits软件中断被本地系统置位时,第i个芯片中的映射逻辑将发送请求到本地的发送端,并将该变化编码为中断映射包发送给预定芯片。预定芯片收到对应的中断映射包后,会按照编号保存到对应的中断状态寄存器,本地的接收端通过对应的配置,可以抽选出指定的预定数量个中断连接到当地的中断控制器,以触发对应的中断动作,请参考图5。
本实施例中,还可以预定义预支(outstanding)突发传输(burst transaction)的数目及最大突发长度(burst length)。具体的,第i个芯片中配置有跨芯片互访发送端缓存空间和跨芯片互访接收端缓存空间,跨芯片互访发送端缓存空间和跨芯片互访接收端缓存空间用于控制芯片间传输的通讯数据的数据流量和对通讯链路的占用配额。第i个芯片访问其他芯片的通讯数据的最大缓存空间小于跨芯片互访发送端缓存空间,即每个芯片可访问其它任一芯片(包含自身)的outstanding burst transaction可配置,并满足其读或写理论所占用的最大缓存空间小于等于发送端缓存空间大小。第i个芯片被其他芯片访问的通讯数据的最大缓存空间小于跨芯片互访接收端缓存空间,即,每个芯片被其它所有芯片访问(不包含自身)的outstanding burst transaction的读或者写理论所占用的最大缓冲空间小于等于接收端缓存空间大小。
本实施例中,将第0个芯片称为根节点,其他芯片称为叶子节点。当叶子节点在访问超时时向根节点发送通知消息;根节点根据通知消息向每个叶子节点发送复位广播包;每个叶子节点根据复位广播包进行复位操作。
具体的,叶子节点可以通过一根GPIO(General-purpose input/output,通用输入输出)连线通知根节点进行复位动作,根节点在获知异常时,向每个叶子节点发送复位广播包,每个叶子节点根据复位广播包进行复位操作,之后等待下一次链路初始化。
综上所述,本申请实施例提供的多芯片系统的通讯方法,多芯片系统包括n个芯片,每个芯片中设置有菊花链模块,菊花链模块包括一个发送端和一个接收端,且多个芯片通过发送端/接收端首尾相接,这样,可以复用单一IP设计,使多芯片系统具有结构简单、成本低廉、较低频工作而无须端口物理层(PHY-Port Physical Layer)的特点。
通过设计精简的芯片间通讯包格式,能够简化多芯片系统的通讯方式,提高通讯效率。
通过构造地址映射结构可实现芯片间所有系统资源的互访,包括寄存器配置、数据传输、Mailbox通信和中断资源映射,使得多芯片系统能够支持多芯片协同工作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (9)
1.一种链式的多芯片系统的通讯方法,其特征在于,应用于链式的多芯片系统中,所述多芯片系统包括n个芯片,每个芯片中设置有菊花链模块,所述菊花链模块包括一个发送端和一个接收端,n≥2;当m=0时,第0个芯片的接收端与第n-1个芯片的发送端相连,发送端与第1个芯片的接收端相连;当1≤m≤n-2时,第m个芯片的接收端与第m-1个芯片的发送端相连,发送端与第m+1个芯片的接收端相连;当m=n-1时,第n-1个芯片的接收端与第n-2个芯片的发送端相连,发送端与第0个芯片的接收端相连;所述方法包括:
第i个芯片获取第j个芯片的芯片信息,0≤i≤n-1,0≤j≤n-1,且i≠j;
所述第i个芯片根据所述芯片信息,在所述第j个芯片中的空间映射表中配置通讯参数,所述通讯参数包括通讯数据在所述第j个芯片中的存储区域和所述第i个芯片的编号;
所述第i个芯片根据所述通讯数据和所述第i个芯片的编号生成读写通讯包,将所述读写通讯包发送给所述第j个芯片;
所述第j个芯片从所述空间映射表中获取与所述第i个芯片的编号对应的通讯参数,根据所述通讯参数中所指示的存储区域对所述读写通讯包进行处理。
2.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,所述方法还包括:
当m=0时,第0个芯片生成自身的编号和芯片信息,根据自身的编号和芯片信息生成链路初始化包,将所述链路初始化包发送给第1个芯片;
当1≤m≤n-2时,第m个芯片接收第m-1个芯片发送的链路初始化包,生成自身的编号和芯片信息,将自身的编号和芯片信息添加到所述链路初始化包中,将更新后的链路初始化包发送给第m+1个芯片;
当m=n-1时,第n-1个芯片接收第n-2个芯片发送的链路初始化包,生成自身的编号和芯片信息,将自身的编号和芯片信息添加到所述链路初始化包中,将更新后的链路初始化包发送给第0个芯片;
第0个芯片从接收到的链路初始化包中获取n个芯片的编号和芯片信息,将所述n个芯片的编号和芯片信息发送给每个芯片。
3.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,当第0个芯片为根节点,其他芯片为叶子节点时,所述方法还包括:
所述叶子节点在访问超时时向所述根节点发送通知消息;
所述根节点根据所述通知消息向每个叶子节点发送复位广播包;
每个叶子节点根据所述复位广播包进行复位操作。
4.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,所述第i个芯片中配置有n个菊花链模块空间,每个菊花链模块空间对应于所述多芯片系统中的一个芯片,所述方法还包括:
所述第i个芯片接收对第j个菊花链模块空间的访问请求;
所述第i个芯片根据所述访问请求,触发执行所述获取第j个芯片的芯片信息的步骤。
5.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,所述第i个芯片中配置有广播空间,所述方法还包括:
所述第i个芯片在所述广播空间中写入广播数据,根据所述广播数据生成广播包,所述广播包中的目标节点标识为预定数值;
所述第i个芯片将所述广播包发送给所述多芯片系统中的每个芯片。
6.根据权利要求5所述的链式的多芯片系统的通讯方法,其特征在于,所述方法还包括:
当所述广播空间为n个菊花链模块空间之外的空间时,除所述第i个芯片之外的每个芯片根据所述广播数据修改自身的硬件资源;
当所述广播空间为第i个菊花链模块空间时,所述多芯片系统中的每个芯片根据所述广播数据修改自身的硬件资源。
7.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,所述第i个芯片中配置有邮箱缓存空间,所述方法还包括:
所述第i个芯片根据配置信息将所述邮箱缓存空间中的k个片段分配给第j个芯片,k≥1;
所述第i个芯片接收所述第j个芯片发送的邮件通讯包,将解析所述邮件通讯包后得到的通讯数据存储到所述k个片段所构成的邮箱缓存空间中。
8.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,所述第i个芯片中配置有硬件中断映射和软件中断映射,所述硬件中断映射包括p比特的第一中断信号和q比特的第二中断信号,所述第二中断信号是对多个中断信号进行或运算后得到的,所述方法还包括:
当硬件中断存在电平变化或软件中断存在系统置位后,所述第i个芯片根据所述硬件中断或所述软件中断生成中断映射包,将所述中断映射包发送给预定芯片;
所述预定芯片根据所述第i个芯片的编号将所述中断映射包存储到对应的中断状态寄存器中,通过所述中断状态寄存器控制中断控制器以触发对应的中断操作。
9.根据权利要求1所述的链式的多芯片系统的通讯方法,其特征在于,所述第i个芯片中配置有跨芯片互访发送端缓存空间和跨芯片互访接收端缓存空间,所述跨芯片互访发送端缓存空间和所述跨芯片互访接收端缓存空间用于控制芯片间传输的通讯数据的数据流量和对通讯链路的占用配额;
所述第i个芯片访问其他芯片的通讯数据的最大缓存空间小于所述跨芯片互访发送端缓存空间;
所述第i个芯片被其他芯片访问的通讯数据的最大缓存空间小于所述跨芯片互访接收端缓存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211429460.7A CN115576889B (zh) | 2022-11-15 | 2022-11-15 | 链式的多芯片系统及通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211429460.7A CN115576889B (zh) | 2022-11-15 | 2022-11-15 | 链式的多芯片系统及通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115576889A CN115576889A (zh) | 2023-01-06 |
CN115576889B true CN115576889B (zh) | 2023-03-03 |
Family
ID=84588605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211429460.7A Active CN115576889B (zh) | 2022-11-15 | 2022-11-15 | 链式的多芯片系统及通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576889B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319158B (zh) * | 2023-05-23 | 2023-08-29 | 南京芯驰半导体科技有限公司 | 基于菊花链网络的节点数据处理方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991831A (en) * | 1995-07-17 | 1999-11-23 | Lee; David D. | High speed serial communications link for desktop computer peripherals |
CN208021216U (zh) * | 2018-01-30 | 2018-10-30 | 北京智行鸿远汽车有限公司 | 可识别出末端电池管理芯片的电池管理系统 |
CN110083570A (zh) * | 2019-04-16 | 2019-08-02 | 深圳市致宸信息科技有限公司 | 一种多芯片串联自动地址编码系统及方法 |
CN112269751A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种面向亿级神经元类脑计算机的芯片扩展方法 |
CN217007615U (zh) * | 2022-03-01 | 2022-07-19 | 楚能新能源股份有限公司 | 一种高压储能系统用菊花链通讯从控采集系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015446B2 (en) * | 2008-12-10 | 2015-04-21 | Nvidia Corporation | Chipset support for non-uniform memory access among heterogeneous processing units |
CN101882126B (zh) * | 2010-07-13 | 2012-01-04 | 中国科学院计算技术研究所 | 多个HT总线到单个PCIe总线的桥接装置及其方法 |
CN114048164B (zh) * | 2022-01-14 | 2022-04-12 | 湖北芯擎科技有限公司 | 芯片互联方法、系统、设备及可读存储介质 |
-
2022
- 2022-11-15 CN CN202211429460.7A patent/CN115576889B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991831A (en) * | 1995-07-17 | 1999-11-23 | Lee; David D. | High speed serial communications link for desktop computer peripherals |
CN208021216U (zh) * | 2018-01-30 | 2018-10-30 | 北京智行鸿远汽车有限公司 | 可识别出末端电池管理芯片的电池管理系统 |
CN110083570A (zh) * | 2019-04-16 | 2019-08-02 | 深圳市致宸信息科技有限公司 | 一种多芯片串联自动地址编码系统及方法 |
CN112269751A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种面向亿级神经元类脑计算机的芯片扩展方法 |
CN217007615U (zh) * | 2022-03-01 | 2022-07-19 | 楚能新能源股份有限公司 | 一种高压储能系统用菊花链通讯从控采集系统 |
Non-Patent Citations (2)
Title |
---|
Design of the APIC: A high performance ATM host-network interface chip;Z.D. Dittia等;《Proceedings of INFOCOM"95》;20080806;第179-187页 * |
提高新能源汽车动力电池BMS系统菊花链通信质量方法研究;罗斌;《厦门科技》;20220825;第52-58页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115576889A (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5175825A (en) | High speed, flexible source/destination data burst direct memory access controller | |
US6122676A (en) | Apparatus and method for transmitting and receiving data into and out of a universal serial bus device | |
CN100580639C (zh) | 用于控制对具有存储器集线器体系结构的存储模块的存储器存取的方法和系统 | |
US11829309B2 (en) | Data forwarding chip and server | |
US5315708A (en) | Method and apparatus for transferring data through a staging memory | |
US20220335002A1 (en) | Control Method and Apparatus | |
WO2022012309A1 (zh) | 扩展PCIe系统的方法、PCIe交换设备及PCIe系统 | |
US10698849B2 (en) | Methods and apparatus for augmented bus numbering | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
JPH09223089A (ja) | 複数バス・ターゲットへのパケット・データの分割を可能にする方法および装置 | |
CN115576889B (zh) | 链式的多芯片系统及通讯方法 | |
JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
TW202238399A (zh) | 快速週邊組件互連裝置及其操作方法 | |
US9146693B2 (en) | Storage control device, storage system, and storage control method | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN116932451A (zh) | 一种数据处理方法、主机及相关设备 | |
US5974530A (en) | Integrated PCI buffer controller and XOR function circuit | |
CN115114215A (zh) | 高速外围组件互连接口装置及其操作方法 | |
CN111045974A (zh) | 一种基于交换结构的多处理器数据交互方法 | |
JP2546743B2 (ja) | 音声およびデータのためのパケット/高速パケット交換機 | |
US20030093594A1 (en) | Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller | |
US20230350824A1 (en) | Peripheral component interconnect express device and operating method thereof | |
JP7363344B2 (ja) | メモリ制御装置、および制御方法 | |
JP2001175631A (ja) | Cpuカード及びデータ通信方法 | |
JPS60150146A (ja) | 電子計算機の主記憶選択装置 |
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 |