数据传输方法、电子设备和存储介质与流程
- 国知局
- 2024-12-06 12:53:57
本公开涉及芯片,特别是涉及一种数据传输方法、电子设备和存储介质。
背景技术:
1、高性能计算和人工智能等应用场景对芯片算力的要求越来越高,芯片的算力取决于芯片集成的晶体管数量,而现有的芯片工艺已经趋于物理极限,单位面积的硅芯片难以集成更多的晶体管;同时受限于光刻机光罩尺寸,制作更大面积的硅芯片的良率会明显下降,在单个硅芯片上集成更多的晶体管的难度非常高。现有技术中,往往是将芯片的功能拆分到多个裸片,再分别制备每个裸片,并将多个裸片重构成一个完整的计算系统以提高算力。
2、而要将多个裸片重构成一个完整的计算系统,就需要在裸片之间准确地互传数据,这依赖于一定的通信协议来实现,现有技术中的通信协议,往往是通过预先定义每个数据包中的字节的个数,之后将待传输的数据分成多个包含固定数目个字节的数据包再分别对各个数据包进行传输,而在传输每个数据包时,发送端需要在开始传输数据包之前额外发送一个用于通知接收端开始传输数据包的通知用数据包,在这种方式下,每传输个固定数目个字节就需要额外发送一个的通知用数据包。这种方式只能将待传输的数据分成固定大小的数据包,传输过程的灵活度较低,同时,当需要传输的字节个数较多时,就需要分成大量的固定大小的数据包进行传输,需要发送的通知用数据包的数目就较多,传输效率较低。
技术实现思路
1、本公开实施例提供了一种数据传输方法、电子设备和存储介质,它能在裸片间传输数据时,减少用于通知接收端的数据包的个数,提高裸片间传输数据的灵活度,提高裸片间数据传输的效率。
2、根据本公开的一方面,提供了一种数据传输方法,应用于第一裸片,所述第一裸片包括传输模块,所述传输模块包括有序的第一数目个传输接口,所述方法包括:
3、获取待传输数据的第一数据量,并将所述第一数据量转换成对应的二进制字节数目,其中,所述第一数据量用于表征所述待传输数据中的字节个数;
4、基于所述二进制字节数目中的各个取值为1的位,将所述待传输数据分成多个子数据包,其中,单个所述子数据包中的字节的个数通过将所述二进制字节数目中取值为1的位对应的位数作为2的指数确定;
5、对各个所述子数据包依次执行第一传输任务,所述第一传输任务包括:生成与所述子数据包对应的第一命令包,并通过所述传输模块将所述第一命令包发送至第二裸片,以使所述第二裸片响应于所述第一命令包返回应答信息,其中,所述第一命令包携带有第二数目,所述第二数目用于表征所述子数据包中的字节的个数;在接收所述第二裸片基于所述第一命令包返回的所述应答信息后,基于所述第一数目和所述第二数目确定第三数目,并将接收所述应答信息后的第三数目个第一时钟周期确定为对应的子数据包传输时钟周期;
6、在所述子数据包传输时钟周期中的单个第一时钟周期,通过所述传输模块向所述第二裸片发送对应的所述子数据包中的第四数目个字节,其中,所述第四数目个字节包括有序的第一数目个比特,所述有序的第一数目个比特分别通过所述有序的第一数目个传输接口进行传输。
7、可选地,所述生成与所述子数据包对应的第一命令包,包括:
8、获取第一命令包模板,所述第一命令包模板包括八个比特位;
9、确定所述第二裸片对应的标识码,并将所述标识码填充到所述第一命令包模板的前三个比特位;
10、基于所述子数据包中的字节的个数确定所述第二数目,并将所述第二数目填充到所述第一命令包模板的载荷的后五个位,得到所述第一命令包。
11、可选地,所述通过所述传输模块将所述第一命令包发送至第二裸片,包括:
12、响应于第一传输请求,生成第一特征码,并通过所述传输模块将所述第一特征码发送至所述第二裸片,所述第一传输请求是所述第一裸片向所述第二裸片传输所述子数据包的请求,所述第一特征码用于通知所述第二裸片在后续的至少一个第一时钟周期,所述第一裸片向所述第二裸片发送所述第一命令包;
13、在发送所述第一特征码后的至少一个第一时钟周期,通过所述传输模块将所述第一命令包发送至所述第二裸片。
14、可选地,在所述通过所述传输模块将所述第一命令包发送至第二裸片后,所述方法还包括:
15、对第一时钟周期进行计数,并在接收到所述应答信息后停止对所述第一时钟周期计数,得到时钟周期计数值;
16、所述在接收所述第二裸片基于所述第一命令包返回的所述应答信息后,基于所述第一数目和所述第二数目确定第三数目,包括:
17、在所述时钟周期计数值不大于第一计数阈值的情况下,基于所述第二数目和所述第一数目确定所述第三数目;
18、在所述时钟周期计数值大于所述第一计数阈值,且不大于第二计数阈值的情况下,生成第一中断包,并将所述第一中断包发送至所述第一裸片对应的第一中央处理器,以使所述第一中央处理器响应于所述第一中断包,控制所述第一裸片在第五数目个第一时钟周期之后重新向所述第二裸片发送所述第一命令包;
19、在第一时钟周期进行计数得到的计数值大于所述第二计数阈值的情况下,生成第二中断包,并将所述第二中断包发送至所述第一裸片对应的第一中央处理器,以使所述第一中央处理器控制所述第一裸片终止向所述第二裸片发送所述子数据包。
20、可选地,所述第二裸片响应于所述第一命令包返回应答信息,包括:
21、所述第二裸片基于所述第一命令包中的所述第二数目,确定所述第二数目对应的第一内存空间,并确定所述第二裸片的剩余内存空间;
22、在所述第一内存空间小于所述剩余内存空间的情况下,所述第二裸片向所述第一裸片返回所述应答信息。
23、可选地,所述在所述子数据包传输时钟周期中的单个第一时钟周期,通过所述传输模块向所述第二裸片发送对应的所述子数据包中的第四数目个字节,包括:
24、在所述子数据包传输时钟周期的第一个第一时钟周期,生成第二特征码并将所述第二特征码发送至所述第二裸片,其中,所述第二特征用于通知所述第二裸片,在后续的第五数目个时钟周期,所述第一裸片向所述第二裸片发送所述子数据包的各个字节;
25、在所述子数据包传输时钟周期中的单个第一时钟周期,从所述第一裸片的寄存器中读取第四数目个字节对应的第一数目个比特,并通过所述第一数目个传输接口将所述第一数目个比特并行发送至所述第二裸片。
26、可选地,所述第一裸片处于第一时钟域,所述第二裸片处于第二时钟域,所述第一裸片包括第一总线传输模块、第一缓冲区和数据发送状态机,所述第一总线传输模块和所述第一裸片的数据总线连接,所述第一缓冲区的输入端和所述第一总线传输模块连接,所述第一缓冲区的输出端和所述数据发送状态机连接,所述数据发送状态机还连接至所述传输模块,所述数据发送状态机处于功能时钟域,所述通过所述传输模块向所述第二裸片发送对应的所述子数据包中的第四数目个字节,包括:
27、所述第一总线传输模块通过所述第一裸片的数据总线从所述第一裸片的内存中依次读取所述子数据包的各个字节,并在所述第一时钟域的各个第一时钟周期的上升沿将所读取的各个字节写入第一缓冲区,并根据所述各个字节写入所述第一缓冲区的顺序确定第一读取顺序;
28、通过所述数据发送状态机,在所述功能时钟域中的各个时钟周期的上升沿,按照所述第一读取顺序从所述第一缓冲区中读取各个字节并发送至所述传输模块,并通过所述传输模块将所接收的第四数目个字节发送至所述第二裸片,以使所述第二裸片在所述第二时钟域的各个时钟周期的上升沿将所述第四数目个字节写入所述第二裸片的内存。
29、可选地,所述第二裸片包括接收模块,所述接收模块包括数据接收状态机、第二缓冲区和第二总线传输模块,所述数据接收状态机处于所述功能时钟域,所述第二裸片在所述第二时钟域的各个时钟周期的上升沿将所述第四数目个字节写入所述第二裸片的内存,包括:
30、通过所述数据接收状态机接收从所述第一裸片的传输模块发送的第四数目个字节,并在所述功能时钟域的各个时钟周期的上升沿,将接收的第四数目个字节写入所述第二缓冲区,基于将所述第四数目个字节写入所述第二缓冲区的顺序确定第二读取顺序;
31、在所述第二时钟域中的单个第二时钟周期的上升沿,所述第二总线传输模块按照所述第二读取顺序从所述第二缓冲区中读取所述第四数目个字节,并将所述第四数目个字节写入所述第二裸片的内存。
32、可选地,所述方法还包括:
33、在各个所述第一时钟周期,生成有效信号并通过所述传输模块将所述有效信号发送至所述第二裸片,其中,所述有效信号用于控制所述第一裸片的传输模块和所述第二裸片的传输模块在对应的第一时钟周期的工作状态;
34、所述将接收所述应答信息后的第三数目个第一时钟周期确定为子数据包传输时钟周期,包括:
35、在接收所述应答信息后的至少一个第一时钟周期,将所述有效信号切换至低电平信号,并在第六数目个所述第一时钟周期,将所述有效信号切换至高电平信号;
36、将所述有效信号切换至高电平信号之后的第三数目个第一时钟周期确定为所述子数据包传输时钟周期,并在所述子数据包传输时钟周期中,维持所述有效信号为高电平信号;
37、在所述子数据包传输时钟周期之后,将所述有效信号切换至低电平信号。
38、可选地,所述第一裸片和所述第二裸片之间还设置有串行时钟信号线,所述方法还包括:
39、所述第一裸片获取多芯片模块的系统时钟周期信号,并对所述系统时钟周期信号进行分频处理,得到所述第一时钟周期对应的时钟周期信号,其中,所述多芯片模块包括所述第一裸片和所述第二裸片;
40、在各个第一时钟周期,通过所述串行时钟信号线将所述第一时钟周期对应的所述时钟周期信号发送至所述第二裸片。
41、本公开的一方面还提出一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器运行时实现如上任一项所述的数据传输方法。
42、本公开的一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器运行,以实现如上任一项所述的数据传输方法。
43、本公开提出一种数据传输方法、电子设备和存储介质,通过将用于表征待传输数据中的字节个数的第一数据量转化为相应的二进制形式,得到相应的二进制字节数目,之后,基于二进制字节数目的各个位中取值为1的位,将待传输数据分成多个子数据包,其中,单个子数据包中的字节的个数是通过将二进制字节数目中取值为1的位对应的位数作为2的指数确定的,所得到的多个子数据包中的每个子数据包中的字节个数都是2的整数次幂,其中字节个数最多的子数据包中的字节的数量是大于待传输数据的字节总数的一半的,且对于每个子数据包,其中的字节的个数都是大于其它子数据包中字节个数小于它的所有其它子数据包的字节个数的总和的,这样可以根据待传输数据中的字节个数灵活地将待传输数据切分成多个子数据包,子数据包的个数不会大于二进制字节数目的位数,当待传输数据的字节的个数翻倍时,也仅需要多分出一个子数据包,可以有效减少子数据包的个数;同时,由于每个子数据包的字节个数都是2的整数次幂,因此,可以通过将2的整数次幂的指数作为第二数目填充到相应的第一命令包中,之后,在发送每个子数据包时,先向第二裸片发送一个第一命令包,以通知第二裸片后续需要发送的子数据包中的字节个数,并在接收到第二裸片返回的应答信息后,基于第一数目和第二数目确定第三数目,从而确定用于传输待传输数据包的各个字节所需的各个第一时钟周期,之后,在每个第一时钟周期,有序的第一数目个传输接口分别将用于构成第四数目个字节的第一数目个比特发送至第二裸片。在本公开中,由于是将用于表征待传输数据中的字节个数的第一数据量转换成相应的二进制字节数目,并以此将待传输数据划分成多个子数据包的,这样可以灵活地适配不同大小的待传输数据,将待传输数据分成多个不同大小的子数据包,保证子数据包的个数不大于二进制字节数目的位数。之后,通过在发送每个子数据包之前,将子数据包中的字节个数表示成2的正整数次幂时的指数作为第二数目填充到第一命令包中并发送至第二裸片,以通知第二裸片后续需要发送的子数据包的字节个数,并在接收到第二裸片返回的应答信息后再开始发送子数据包的各个字节,从而在保证数据传输的准确性不下降的前提下,减少传输过程中需要额外发送的通知用数据包的个数,提高数据传输的效率。
44、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
本文地址:https://www.jishuxx.com/zhuanli/20241204/342971.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。