CN115994115A - 芯片控制方法、芯片组及电子设备 - Google Patents

芯片控制方法、芯片组及电子设备 Download PDF

Info

Publication number
CN115994115A
CN115994115A CN202310280494.2A CN202310280494A CN115994115A CN 115994115 A CN115994115 A CN 115994115A CN 202310280494 A CN202310280494 A CN 202310280494A CN 115994115 A CN115994115 A CN 115994115A
Authority
CN
China
Prior art keywords
target
chip
command
control engine
operation unit
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.)
Granted
Application number
CN202310280494.2A
Other languages
English (en)
Other versions
CN115994115B (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.)
Shanghai Denglin Technology Co ltd
Chengdu Denglin Technology Co ltd
Original Assignee
Shanghai Denglin Technology Co ltd
Chengdu Denglin Technology 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 Shanghai Denglin Technology Co ltd, Chengdu Denglin Technology Co ltd filed Critical Shanghai Denglin Technology Co ltd
Priority to CN202310280494.2A priority Critical patent/CN115994115B/zh
Publication of CN115994115A publication Critical patent/CN115994115A/zh
Application granted granted Critical
Publication of CN115994115B publication Critical patent/CN115994115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

本申请提供一种芯片控制方法、芯片组及电子设备,方法包括:通过第一芯片的主机接口从主机获取命令列表并发送给目标控制引擎;所述目标控制引擎为芯片组中至少一个芯片的控制引擎;所述芯片组包括所述第一芯片以及与所述第一芯片通信连接的至少一个第二芯片;通过所述目标控制引擎将所述命令列表中的目标命令分发至目标数据运算单元进行处理;其中,所述目标命令为需要所述目标控制引擎处理的命令,所述目标数据运算单元为所述目标控制引擎管理的数据运算单元。本申请对主机上的软件和应用层而言,编程的输入接口只有一个,从而简化了软件编程复杂度,缓解了多个芯片封装在一起时所带来的可编程性问题,并实现了芯片间的协同工作。

Description

芯片控制方法、芯片组及电子设备
技术领域
本申请涉及芯片技术领域,具体而言,涉及一种芯片控制方法、芯片组及电子设备。
背景技术
大数据和人工智能技术的发展驱使着高性能计算芯片需要提供更大的算力,更大的存储能力和更有效的能耗。然而,芯片的摩尔定律的放缓使单个芯片进一步增长变得越来越困难。另外,人工智能算力的需求是多样性的,开发单个大芯片会增加市场投入的成本。而单个大芯片也存在芯片良率的问题:同一工艺下,芯片尺寸越大,良率就越低。如果将一个大芯片拆分成几个小芯片,每个芯片的良率会提升。因此多个芯片封装在一起,组成一个大芯片以成为提高芯片性能、功耗和面积的绝佳选择。但是多个小芯片封装在一起会带来诸多问题,比如可编程性的问题,协同工作的问题等。
发明内容
本申请实施例的目的在于提供一种芯片控制方法、芯片组及电子设备,用以缓解多个芯片封装在一起时所带来的可编程性问题以及协同工作问题。
本申请实施例提供了一种芯片控制方法,包括:通过第一芯片的主机接口从主机获取命令列表并发送给目标控制引擎;所述目标控制引擎为芯片组中至少一个芯片的控制引擎;所述芯片组包括所述第一芯片以及与所述第一芯片通信连接的至少一个第二芯片;通过所述目标控制引擎将所述命令列表中的目标命令分发至目标数据运算单元进行处理;其中,所述目标命令为需要所述目标控制引擎处理的命令,所述目标数据运算单元为所述目标控制引擎管理的数据运算单元。
上述实现方式的有益效果为:基于上述实现方式,芯片组通过第一芯片的主机接口从主机获取命令列表并发送给所有的目标控制引擎,后续各目标控制引擎各自将自身需要处理的命令分发给各自管理的目标数据运算单元进行处理,这样对主机上的软件和应用层而言,编程的输入接口只有一个,从而简化了软件编程复杂度,缓解了多个芯片封装在一起时所带来的可编程性问题。此外,由于目标控制引擎上具有完整的命令列表,各目标控制引擎各自管理着不同的数据运算单元,那么通过各目标控制引擎对各自负责的目标命令进行分发,就实现了芯片间的协同工作。
进一步地,通过所述目标控制引擎将所述命令列表中的目标命令分发至目标数据运算单元进行处理,包括:通过所述目标控制引擎将所述命令列表中的目标命令切分成多个计算命令;在所述目标命令为多芯片执行的命令时,将所述多个计算命令中的目标计算命令分发至各所述目标数据运算单元进行处理;其中,所述目标计算命令为按照预设策略确定出的需在该目标控制引擎的目标数据运算单元中进行处理的计算命令。
可以理解,当一个命令需要在多个芯片中执行时,通过按照预设策略确定出的需在该目标控制引擎的目标数据运算单元中进行处理的目标计算命令,进而将目标计算命令分发至各目标数据运算单元进行处理,这就实现了芯片间的协同工作。
进一步地,针对任意一个所述目标计算命令:若该目标计算命令对应的目标数据运算单元与所述目标控制引擎位于不同芯片,则将该目标计算命令发送至该目标计算命令对应的目标数据运算单元进行处理的过程包括:对该目标计算命令进行地址编码,得到编码后的待处理数据;所述待处理数据包括地址信息部分和负载信息部分,所述地址信息部分中携带有所述目标计算命令的命令类型,所述目标计算命令对应的目标数据运算单元的唯一标识;所述负载信息部分包括所述目标计算命令的内容;将编码后的待处理数据发送至目标芯片的芯片间高速接口进行解析,以使所述目标芯片的芯片间高速接口按照所述目标数据运算单元的唯一标识将该目标计算命令发送至所述目标数据运算单元进行处理。
可以理解,芯片间高速接口通常基于地址的数据传输,因此在上述实现方式中,通过对目标计算命令进行地址编码,在地址信息部分中携带目标计算命令的命令类型,目标计算命令对应的目标数据运算单元的唯一标识,在负载信息部分携带目标计算命令的内容,这样就可以实现信息在各芯片之间的有效传输。而在目标芯片的芯片间高速接口进行解析,以使目标芯片的芯片间高速接口按照目标数据运算单元的唯一标识将该目标计算命令发送至目标数据运算单元进行处理,这就可以实现对于目标计算命令的跨芯片传输,且可以保证传输至目标数据运算单元进行处理的目标计算命令仍旧可以被正确识别。
进一步地,所述目标控制引擎为芯片组中每一个芯片的控制引擎;每一个所述目标控制引擎管理的目标数据运算单元为:与该目标控制引擎位于同一芯片内的各数据运算单元。
通过上述实现方式,每一个目标控制引擎管理所在芯片内的所有数据运算单元,这样可以避免控制引擎跨芯片传输命令,各个控制引擎只需要传输命令到所在芯片的各个运算单元即可。
进一步地,不同所述目标控制引擎所下发的目标计算命令不同。
通过上述实现方式,对于多芯片执行的命令,通过不同目标控制引擎各自进行目标命令切分后,通过相互直接执行不同目标计算命令即可实现对整个目标命令的协同处理。
进一步地,所述目标控制引擎的数量为1;所述目标数据运算单元为:所述芯片组中所有芯片上具有的全部数据运算单元。
在上述实现方式中,整个芯片组仅一个控制引擎工作,这样所有的数据运算单元均由该控制引擎控制,这样就使得整个控制过程无需考虑多控制引擎之间的配合,从而软件层面上的设计可以更为简单,同时也避免了多个目标控制引擎同时工作所产生的同步开销。此外,由于所有的数据运算单元均由一个控制引擎管理,那么通过该控制引擎就可以在所有的数据运算单元中执行一些负载均衡策略,从而可以更为容易地实现各芯片间的负载均衡,缓解各芯片间带宽不均衡的问题。
进一步地,所述目标控制引擎为所述第一芯片的控制引擎。
在上述实现方式中,由于目标控制引擎和主机接口均在第一芯片内,因此主机接口到目标控制引擎之间的数据传输无需跨芯片传输,从而可以有效节约传输开销,同时减少不必要地数据转换操作。
进一步地,所述方法还包括:通过所述第一芯片的主机接口从所述主机接收寄存器读写请求和/或数据传输请求;所述寄存器读写请求中携带有所请求操作的寄存器的地址信息;所述数据传输请求中携带有存储被传输的数据的存储器的地址信息;
在所述寄存器读写请求所请求操作的寄存器位于第二芯片内的情况下,所述主机接口将所述寄存器读写请求传输给所述第一芯片的芯片间高速接口,以使所述第一芯片的芯片间高速接口对所述寄存器读写请求中的地址信息行重编码,将重编码后的寄存器读写请求通过需访问的目标芯片的芯片间高速接口传输给需访问的寄存器;其中,重编码后的寄存器读写请求中的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的寄存器的地址;
和/或,
在所述数据传输请求所请求存储数据的存储器位于第二芯片内的情况下,所述主机接口将所述数据传输请求传输给所述第一芯片的芯片间高速接口,以使所述第一芯片的芯片间高速接口对所述数据传输请求中的地址信息进行重编码,将重编码后的数据传输请求通过需访问的目标芯片的芯片间高速接口传输给需访问的存储器;其中,重编码后的数据传输请求的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的存储器的地址。
在上述实现方式中,通过采用地址访问的方式进行寄存器读写访问和/或数据传输,可以满足跨芯片的数据传输或操作请求传输的要求,并且在跨芯片传输的过程中通过重编码的方式加入地址类型、需访问的目标芯片的唯一标识、需访问的寄存器或存储器的地址,可以降低请求被错误发送的风险,从而实现跨芯片的寄存器读写访问和/或数据传输。
进一步地,所述重编码后的数据传输请求的地址信息和所述重编码后的寄存器读写请求中的地址信息中还包括至少一个保留位,以使所述地址信息的长度为预设长度。
在上述实现方式中,通过设置保留位使得地址信息的长度为预设长度,这样就可以使得不同类型的地址信息之间始终是可以对齐的,从而便于芯片间高速接口进行识别与解析。
本申请实施例还提供了一种芯片组,包括第一芯片以及与所述第一芯片通信连接的至少一个第二芯片;所述第一芯片包括主机接口,所述主机接口用于从主机获取命令列表并发送给目标控制引擎;所述目标控制引擎为芯片组中至少一个芯片的控制引擎;所述目标控制引擎用于将所述命令列表中的目标命令分发至目标数据运算单元进行处理;其中,所述目标命令为需要所述目标控制引擎处理的命令,所述目标数据运算单元为所述目标控制引擎管理的数据运算单元。
本申请实施例提供的芯片组,对主机上的软件和应用层而言,编程的输入接口只有一个(即主机接口),从而简化了软件编程复杂度,缓解了多个芯片封装在一起时所带来的可编程性问题。此外,由于各目标控制引擎上均具有完整的命令列表,各目标控制引擎各自管理着不同的数据运算单元,那么通过各目标控制引擎对各自负责的目标命令进行分发,就实现了芯片间的协同工作。
进一步地,所述目标控制引擎具体用于:将所述命令列表中的目标命令切分成多个计算命令;在所述目标命令为多芯片执行的命令时,将所述多个计算命令中的目标计算命令分发至各所述目标数据运算单元进行处理;其中,所述目标计算命令为按照预设策略确定出的需在该目标控制引擎的目标数据运算单元中进行处理的计算命令。
进一步地,所述芯片组中各芯片之间通过芯片间高速接口连接;针对任意一个所述目标计算命令,若该目标计算命令对应的目标数据运算单元与所述目标控制引擎位于不同芯片,则所述目标控制引擎用于将该目标计算命令对应发送至所述目标控制引擎所在芯片的芯片间高速接口;所述目标控制引擎所在芯片的芯片间高速接口用于对该目标计算命令进行地址编码,得到编码后的待处理数据;所述待处理数据包括地址信息部分和负载信息部分,所述地址信息部分中携带有所述目标计算命令的命令类型,所述目标计算命令对应的目标数据运算单元的唯一标识;所述负载信息部分包括所述目标计算命令的内容;所述目标控制引擎所在芯片的芯片间高速接口还用于将所述待处理数据发送至目标芯片的芯片间高速接口进行解析,以使所述目标芯片的芯片间高速接口按照所述目标数据运算单元的唯一标识将该目标计算命令发送至所述目标数据运算单元进行处理。
进一步地,所述目标控制引擎为芯片组中每一个芯片的控制引擎;每一个所述目标控制引擎管理的目标数据运算单元为:与该目标控制引擎位于同一芯片内的各数据运算单元。
进一步地,不同所述目标控制引擎所下发的目标计算命令不同。
进一步地,所述目标控制引擎的数量为1;所述目标数据运算单元为:所述芯片组中所有芯片上具有的全部数据运算单元。
进一步地,所述目标控制引擎为所述第一芯片的控制引擎。
进一步地,所述第一芯片的主机接口还用于从所述主机接收寄存器读写请求和/或数据传输请求;所述寄存器读写请求中携带有所请求操作的寄存器的地址信息;所述数据传输请求中携带有存储被传输的数据的存储器的地址信息;
所述第一芯片的芯片间高速接口还用于,在所述寄存器读写请求所请求操作的寄存器位于第二芯片内的情况下,对所述寄存器读写请求中的地址信息行重编码,将重编码后的寄存器读写请求通过需访问的目标芯片的芯片间高速接口传输给需访问的寄存器;其中,重编码后的寄存器读写请求中的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的寄存器的地址;
和/或,
所述第一芯片的芯片间高速接口还用于,在所述数据传输请求所请求存储数据的存储器位于第二芯片内的情况下,对所述数据传输请求中的地址信息进行重编码,将重编码后的数据传输请求通过需访问的目标芯片的芯片间高速接口传输给需访问的存储器;其中,重编码后的数据传输请求的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的存储器的地址。
进一步地,所述重编码后的数据传输请求的地址信息和所述重编码后的寄存器读写请求中的地址信息中还包括至少一个保留位,以使所述地址信息的长度为预设长度。
本申请实施例还提供了一种电子设备,包括上述任一种的芯片组。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的芯片组的基本结构示意图;
图2为本申请实施例提供的一种对计算命令的编码结构示意图;
图3为本申请实施例提供的一种地址信息的编码结构示意图;
图4为本申请实施例提供的一种芯片控制方法的流程示意图;
图5为本申请实施例提供的一种具体的芯片组结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了缓解多个芯片封装在一起时所带来的可编程性问题以及协同工作问题,本申请实施例中提供了一种芯片组以及可应用于该芯片组上的芯片控制方法。
可以参见图1所示,图1为本申请实施例中提供的芯片组的结构示意图。可以理解,芯片组中包括多个芯片,各芯片之间的结构可以一致也可以存在一定差异。
在本申请实施例中,芯片组内的芯片可以包括第一芯片和与第一芯片通信连接的至少一个第二芯片。其中,第一芯片中具有主机接口,第一芯片的主机接口用于与主机连接,可从主机获取命令列表。
可以理解,第二芯片中也可以具有主机接口,但是在芯片组中的多个芯片协同工作的模式下,第二芯片中的主机接口不使用。
可选的,本申请实施例中可以采用PCIExpress(简称PCIe)接口作为主机接口,但不作为限制。
在本申请实施例中,各芯片内可以具有控制引擎,控制引擎可以用于实现命令的切分与分发。在本申请实施例中,控制引擎的具体结构可以参考现有芯片中的引擎结构,本申请实施例中不做限制。
在本申请实施例中,可以仅启用芯片组中的一个或多个控制引擎进行工作,本申请实施例中将启用进行工作的控制引擎称之为目标控制引擎。
在本申请实施例中,各芯片内均设置有数据运算单元,数据运算单元用于执行数据运算。可以理解,芯片内可以设置有多种类型的数据运算单元,不同类型的数据运算单元可以用于执行不同的运算操作。例如,一些数据运算单元可以用于执行卷积操作,一些数据运算单元可以用于执行池化操作,一些数据运算单元可以用于完成超越函数操作等。数据运算单元的具体结构可以根据所需执行的操作而采用相应的现有电路结构来实现,本申请实施例中不做限制。
在本申请实施例中,对于一个目标控制引擎而言,该目标控制引擎所管理的数据运算单元称之为该目标控制引擎的目标数据运算单元。当目标控制引擎仅有1个时,芯片组中的所有数据运算单元均为该目标控制引擎的目标数据运算单元。当目标控制引擎有多个时,各目标控制引擎控制有不同的目标数据运算单元。例如,假设芯片组中仅有两个相互连接的芯片(分别记为芯片1和芯片2),且两个芯片内的控制引擎(分别记为控制引擎1和控制引擎2)均启用作为目标控制引擎,那么可以设置芯片1中的所有数据运算单元均为控制引擎1的目标数据运算单元,设置芯片2中的所有数据运算单元均为控制引擎2的目标数据运算单元。
可以理解,在目标控制引擎有多个时,在一种可选实施方式中,可以设置目标控制引擎为芯片组中每一个芯片的控制引擎,并设置每一个目标控制引擎管理的目标数据运算单元为与该目标控制引擎位于同一芯片内的各数据运算单元,例如上例所示。
此外,在另一种可选实施方式中,也可以仅设置芯片组中的部分芯片的控制引擎为目标控制引擎,此时一方面可以设置与目标控制引擎位于同一芯片内的各数据运算单元作为该目标控制引擎的目标数据运算单元,另一方面针对未设置有目标控制引擎的芯片,其内的数据运算单元可以分给各目标控制引擎,作为目标控制引擎的数据运算单元。例如,假设芯片组中有3个相互通信连接的芯片(分别记为芯片1和芯片2,芯片3),芯片1和芯片2内的控制引擎(分别记为控制引擎1和控制引擎2)启用作为目标控制引擎,那么可以设置芯片1中的所有数据运算单元均为控制引擎1的目标数据运算单元,设置芯片2中的所有数据运算单元均为控制引擎2的目标数据运算单元,并设置芯片3中前一半数据运算单元为控制引擎1的目标数据运算单元,设置芯片3中后一半数据运算单元为控制引擎2的目标数据运算单元。
可以理解,在目标控制引擎仅有1个时,所有的数据运算单元均由该控制引擎控制,这样就使得整个控制过程无需考虑多控制引擎之间的配合,从而软件层面上的设计可以更为简单,同时也避免了多个目标控制引擎同时工作所产生的同步开销。此外,由于所有的数据运算单元均由一个控制引擎管理,那么通过该控制引擎就可以在所有的数据运算单元中执行一些负载均衡策略,从而可以更为容易地实现各芯片间的负载均衡,缓解各芯片间带宽不均衡的问题。
在目标控制引擎仅有1个时,在一种可选实施方式中,可以将第一芯片中的控制引擎设置为目标控制引擎,从而目标控制引擎和启用的主机接口均在同一个芯片内,从而使得主机接口到目标控制引擎之间的数据传输无需跨芯片传输,可以有效节约传输开销,同时减少数据转换操作。当然,在另一些可选实施方式中,也可以将一个第二芯片中的控制引擎设置为目标控制引擎。
在本申请实施例中,第一芯片的主机接口可以从主机获取命令列表并发送给各个目标控制引擎,以使各目标控制引擎具有相同且完整的命令列表。
在本申请实施例中,目标控制引擎用于将命令列表中的目标命令分发至目标数据运算单元进行处理。其中,目标命令为需要目标控制引擎处理的命令。
可以理解,在本申请实施例中,当目标控制引擎仅有一个时,命令列表中的所有命令均为该目标控制引擎的目标命令。
当目标控制引擎有多个时,可以预先配置各目标控制引擎对于单芯片执行的命令的执行条件,当命令符合预设执行条件时,确定为该目标控制引擎的目标命令。例如,对于两个目标控制引擎而言,可以预先配置奇数序号的命令为第一个目标控制引擎的目标命令,配置偶数序号的命令为第二个目标控制引擎的目标命令(也即对于第一个目标控制引擎而言,执行条件为序号为奇数,对于第二个目标控制引擎而言,执行条件为序号为偶数)。
对于多芯片执行的命令,当芯片组中的芯片的数量等于所需参与命令处理的芯片数时,可以确定该命令为所有的目标控制引擎的目标命令。
当芯片组中的芯片的数量大于所需参与命令处理的芯片数时,各目标控制引擎之间可以相互通信,根据各自管理的目标数据运算单元的闲置状态选择出用于执行该命令的目标控制引擎。
例如,假设一个命令需要两个芯片参与处理,假设芯片组中有3个相互通信连接的芯片(分别记为芯片1、芯片2和芯片3),且3个芯片内的控制引擎(分别记为控制引擎1、控制引擎2和控制引擎3)均启用作为目标控制引擎,且各目标控制引擎分别管理自身所在芯片内的数据运算单元。那么控制引擎1、控制引擎2和控制引擎3可以互相通报各自管理的可执行该命令的数据运算单元的空闲情况,从而选择空闲量最高的两个控制引擎来处理该命令。
可以理解,在实际应用中,命令列表中的每一个命令通常对应的是一个任务,一般难以通过一个数据运算单元一次性执行完毕,因此通常需要将一个计算任务切分成一个一个计算命令,进而通过将各计算命令分配给各数据运算单元进行处理,以并行实现对计算命令的处理。可以理解,对于命令列表中存在着的某些不可切分,或者可通过一个数据运算单元进行处理的命令,可以不做切分而直接分配给相应的数据运算单元进行处理。
因此,在本申请实施例中,目标控制引擎具体可以用于将命令列表中的目标命令切分成多个计算命令,进而将各计算命令分发至该目标控制引擎的各目标数据运算单元中进行处理。
可以理解,对于需要多个目标控制引擎协同处理的多芯片执行的目标命令,可以预先为各目标计算命令配置处理策略,从而使得不同目标控制引擎分别分发处理不同的计算命令,实现协同处理。例如,假设目标命令需要目标控制引擎1和目标控制引擎2协同处理,可以预先在目标控制引擎1配置策略如下:仅分发多芯片执行的目标命令的奇数序号的计算命令;预先在目标控制引擎2配置策略如下:仅分发多芯片执行的目标命令的偶数序号的计算命令。可以理解,以上仅为一种可行示例,不作为本申请实施例的限制。
可以理解的是,在本申请实施例中,主机内的上层软件或应用层在生成命令时,可以生成该命令的控制信息,从而被携带于命令列表中供目标控制引擎获取。该控制信息可以记录处理该命令需要的芯片数量范围,从而目标控制引擎可以根据命令的控制信息确定其是否为多芯片的命令。
在本申请实施例中,目标控制引擎可以获取到其对应的各目标数据运算单元的工作状态(闲置还是处理中,等待处理的计算命令的数据等),从而可以根据各目标数据运算单元的工作状态对目标计算命令进行分发,以尽可能使得各目标数据运算单元的负载均衡。
在本申请实施例中,芯片组内的各芯片之间可以通过芯片间高速接口进行连接,例如图1所示。在本申请实施例中,芯片间高速接口可以是指时延低于预设时延阈值(例如1000纳秒),带宽高于预设带宽阈值(例如5GB/s)的接口,可以采用但不限于PCIe接口实现。
而针对任意一个目标计算命令,若该目标计算命令对应的目标数据运算单元与该目标控制引擎位于不同芯片,此时即需要进行跨芯片的计算命令传输。而目前大多数的芯片中,芯片间高速接口所支持的是基于地址的传输。因此为了可以具有更好的兼容性,在本申请实施例中,在进行跨芯片的计算命令传输时,可以对该需要进行跨芯片传输的目标计算命令进行地址编码,得到编码后的待处理数据。
在本申请实施例中,该目标计算命令对应的目标数据运算单元可以目标计算命令对应发送至目标控制引擎所在芯片的芯片间高速接口,由该芯片间高速接口进行地址编码。
可以理解,本申请实施例中,芯片间高速接口除了具有实体接口外,还配置有相应的地址编码以及解码电路,以实现相关的编解码功能。
在本申请实施例中,编码得到的待处理数据可以包括地址信息部分和负载信息部分,地址信息部分中携带有目标计算命令的命令类型(例如卷积、池化等类型),目标计算命令对应的目标数据运算单元的唯一标识;负载信息部分包括目标计算命令的内容。
如图2所示,在本申请实施例中,编码得到的待处理数据中,地址信息部分还可以包括地址类型(对于目标计算命令的编码,其地址类型为表征命令的值),源单元序号(即发送该目标计算命令的目标控制引擎的唯一标识),源芯片序号(即发送该目标计算命令的目标控制引擎所在芯片的唯一标识),目标单元序号(即目标计算命令对应的目标数据运算单元的唯一标识),目标芯片序号(即目标计算命令对应的目标数据运算单元所在芯片的唯一标识),以及保留位。可以理解,通过设置保留位可以使得地址信息部分的长度始终保持在预设长度,从而便于进行地址对齐。当然,也可以不设置保留位。需要说明的是,图2中的阿拉伯数字表征信息位数,例如0表征第0位,7表征第7位,8表征第8位,10表征第10位,11表征第11位,15表征第15位,16表征第16位,18表征第18位,19表征第19位,23表征第23位,24表征第24位,28表征第28位,29表征第29位,47表征第47位,48表征第48位,49表征第49位。图2示出了一种地址信息部分为50比特(一位表征1比特数据)长度,而负载信息部分中的每一数据为256比特长度的结构。可以理解,图2结构仅为示例,地址信息部分的长度以及负载信息部分的长度也可以为其他值,本申请实施例中不做限制。
目标芯片的芯片间高速接口接收到待处理数据后进行解析,还原出原本的计算命令,并按照目标数据运算单元的唯一标识将该目标计算命令发送至目标数据运算单元进行处理。
可以理解,在每一个芯片内还可以具有存储器和寄存器,以实现诸如数据传输与存储、寄存器读写等操作。同样的,这些操作可能存在需要跨芯片传输的情况。
为此,在本申请实施例中,第一芯片的主机接口还可以用于从主机接收寄存器读写请求和/或数据传输请求;所述寄存器读写请求中携带有所请求操作的寄存器的地址信息;所述数据传输请求中携带有存储被传输的数据的存储器的地址信息。
可以理解,在寄存器读写请求所请求操作的寄存器位于第一芯片内的情况下,可以直接根据寄存器读写请求中的地址信息对该地址信息指向的寄存器进行操作。在寄存器读写请求所请求操作的寄存器位于第二芯片内的情况下,主机接口可以通过第一芯片的寄存器总线将寄存器读写请求传输给第一芯片的芯片间高速接口,第一芯片的芯片间高速接口对寄存器读写请求中的地址信息进行重编码,重编码后的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的寄存器的地址。
目标芯片的芯片间高速接口接收到寄存器读写请求后对地址信息进行解码,然后通过目标芯片的寄存器总线对需访问的寄存器进行读写操作。
还可以理解,在数据传输请求所请求存储数据的存储器位于第一芯片内的情况下,可以直接根据数据传输请求中的地址信息将传输的数据存入第一芯片内的存储器中。在数据传输请求所请求存储数据的存储器位于第二芯片内的情况下,主机接口可以通过第一芯片的存储器总线将数据传输请求传输给第一芯片的芯片间高速接口,第一芯片的芯片间高速接口对数据传输请求中的地址信息进行重编码,重编码后的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的存储器的地址。
目标芯片的芯片间高速接口接收到数据传输请求后对地址信息进行解码,然后通过目标芯片的存储器总线将所传输的数据存入目标芯片的存储器中。
相应的,第一芯片内的数据到主机的传输,则可以通过数据需要在主机内存储的地址(称之为主机存储器地址信息)通过第一芯片的主机接口上传至主机。第二芯片内的数据到主机的传输,则可以通过数据需要在主机内存储的地址,通过第二芯片的存储器总线、第二芯片的芯片间高速接口、第一芯片的芯片间高速接口、第一芯片的存储器总线、第一芯片的主机接口上传至主机。
可以理解,如图3所示,在本申请实施例中,重编码后的数据传输请求的地址信息(即图3中的芯片存储器地址信息)和重编码后的寄存器读写请求中的地址信息(即图3中的芯片寄存器地址信息)中还可以包括至少一个保留位,以使地址信息的长度为预设长度(图3中为50bit)。需要说明的是,图3中的阿拉伯数字表征位数,例如0表征第0位,3表征第3位,4表征第4位,7表征第7位,8表征第8位,20表征第20位,21表征第21位,23表征第23位,24表征第24位,39表征第39位,40表征第40位,42表征第42位,43表征第43位,47表征第47位,48表征第48位,49表征第49位。图3示出了一种50比特长度的地址信息结构。可以理解,图3结构仅为示例,主机存储器地址信息、芯片存储器地址信息、芯片寄存器地址信息的长度也可以为其他值,本申请实施例中不做限制。
还可以理解,本申请实施例中的芯片组可以封装成为一个芯片。
还可以理解,在本申请实施例中,芯片组中的各芯片可以为但不限于GPU(Graphics Processing Unit,图形处理器)、GPGPU(General-Purpose GraphicsProcessing Unit,即通用图形处理器),AI 加速芯片等计算芯片。
通过本申请实施例提供的芯片组,对主机上的软件和应用层而言,编程的输入接口只有一个(即主机接口),从而简化了软件编程复杂度,缓解了多个芯片封装在一起时所带来的可编程性问题。此外,由于各目标控制引擎上均具有完整的命令列表,各目标控制引擎各自管理着不同的数据运算单元,那么通过各目标控制引擎对各自负责的目标命令进行分发,就实现了芯片间的协同工作。
且当仅设置一个目标控制引擎时,整个芯片组仅一个控制引擎工作,这样所有的数据运算单元均由该控制引擎控制,这就使得整个控制过程无需考虑多控制引擎之间的配合,从而软件层面上的设计可以更为简单,同时也避免了多个目标控制引擎同时工作所产生的同步开销。此外,由于所有的数据运算单元均由一个控制引擎管理,那么通过该控制引擎就可以在所有的数据运算单元中执行一些负载均衡策略,从而可以更为容易地实现各芯片间的负载均衡,缓解各芯片间带宽不均衡的问题。
基于同一发明构成,请参见图4所示,图4示出了可应用于上述芯片组中的芯片控制方法,包括:
S401:通过第一芯片的主机接口从主机获取命令列表并发送给目标控制引擎。
其中,目标控制引擎为芯片组中至少一个芯片的控制引擎。
S402:通过目标控制引擎将命令列表中的目标命令分发至目标数据运算单元进行处理。
可以理解,在一些可选实施方式中,步骤S402可以具体包括:通过所述目标控制引擎将所述命令列表中的目标命令切分成多个计算命令;在所述目标命令为多芯片执行的命令时,将所述多个计算命令中的目标计算命令分发至各所述目标数据运算单元进行处理;其中,所述目标计算命令为按照预设策略确定出的需在该目标控制引擎的目标数据运算单元中进行处理的计算命令。
可以理解,在一些可选实施方式中,针对任意一个所述目标计算命令:
若该目标计算命令对应的目标数据运算单元与所述目标控制引擎位于不同芯片,则将该目标计算命令发送至该目标计算命令对应的目标数据运算单元进行处理的过程包括:
对该目标计算命令进行地址编码,得到编码后的待处理数据;所述待处理数据包括地址信息部分和负载信息部分,所述地址信息部分中携带有所述目标计算命令的命令类型,所述目标计算命令对应的目标数据运算单元的唯一标识;所述负载信息部分包括所述目标计算命令的内容;
将编码后的待处理数据发送至目标芯片的芯片间高速接口进行解析,以使所述目标芯片的芯片间高速接口按照所述目标数据运算单元的唯一标识将该目标计算命令发送至所述目标数据运算单元进行处理。
可选的,在本方法实施例中,所述目标控制引擎为芯片组中每一个芯片的控制引擎;每一个所述目标控制引擎管理的目标数据运算单元为:与该目标控制引擎位于同一芯片内的各数据运算单元。
可选的,在本方法实施例中,不同所述目标控制引擎所下发的目标计算命令不同。
可选的,在本方法实施例中,所述目标控制引擎的数量为1;所述目标数据运算单元为:所述芯片组中所有芯片上具有的全部数据运算单元。
可选的,在本方法实施例中,所述目标控制引擎为所述第一芯片的控制引擎。
可选的,在本方法实施例中,芯片控制方法还可以包括:
通过所述第一芯片的主机接口从所述主机接收寄存器读写请求和/或数据传输请求;所述寄存器读写请求中携带有所请求操作的寄存器的地址信息;所述数据传输请求中携带有存储被传输的数据的存储器的地址信息;
在所述寄存器读写请求所请求操作的寄存器位于第二芯片内的情况下,所述主机接口将所述寄存器读写请求传输给所述第一芯片的芯片间高速接口,以使所述第一芯片的芯片间高速接口对所述寄存器读写请求中的地址信息行重编码,将重编码后的寄存器读写请求通过需访问的目标芯片的芯片间高速接口传输给需访问的寄存器;其中,重编码后的寄存器读写请求中的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的寄存器的地址;
和/或,
在所述数据传输请求所请求存储数据的存储器位于第二芯片内的情况下,所述主机接口将所述数据传输请求传输给所述第一芯片的芯片间高速接口,以使所述第一芯片的芯片间高速接口对所述数据传输请求中的地址信息进行重编码,将重编码后的数据传输请求通过需访问的目标芯片的芯片间高速接口传输给需访问的存储器;其中,重编码后的数据传输请求的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的存储器的地址。
可选的,在本方法实施例中,所述重编码后的数据传输请求的地址信息和所述重编码后的寄存器读写请求中的地址信息中还包括至少一个保留位,以使所述地址信息的长度为预设长度。
可以理解,出于描述简洁的考量,部分芯片组实施例中描述过的内容在本方法实施例部分中不再赘述。
为便于理解本申请实施例的方案,下面以图5所示的芯片组结构为例,对本申请实施例做示例性说明:
参见图5所示,芯片组包括结构相同的第一计算芯片和第二计算芯片。第一计算芯片和第二计算芯片可以各自独立工作,两个计算芯片也可以通过芯片间高速接口互联组成一个大芯片一起工作。
第一计算芯片包括第一微控制器,第一主机接口,第一控制引擎,第一寄存器总线,第一命令总线,若干个第一数据运算单元,第一存储器总线,第一存储器和第一芯片间高速接口。
其中,第一微控制器主要负责芯片内单元的初始化设置,并对芯片的电流和温度等进行监控,确保芯片可以正常工作。第一主机接口主要负责和主机之间的命令通信或数据通信。第一控制引擎主要负责读取和解析来自主机的命令列表,并分发命令到各个数据运算单元。数据运算单元主要负责从存储器中读取数据并进行运算,最终将运算结果保存到存储器中。
第一寄存器总线主要用于数据运算单元的寄存器的读写的传输,数据位宽一般较窄,传输速率一般较低。第一寄存器总线的输入端可能是微处理器1,第一主机接口和来自第二计算芯片的寄存器读写。第一寄存器总线的输出端与第一计算芯片的各个数据运算单元和芯片间高速接口连接。通过芯片间高速接口和第二计算芯片的第二寄存器总线,第一微控制器或主机可以访问第二计算芯片的各个数据运算单元的寄存器。第一命令总线主要用于计算命令的传输,输入端为第一控制引擎,输出端为第一计算芯片的各个数据运算单元和芯片间高速接口。第一控制引擎通过芯片间高速接口和第二计算芯片的第二命令总线,可以向第二计算芯片的各个数据运算单元发送命令。命令总线可以是双向的,当数据运算单元完成计算命令后,将命令完成信号返回控制引擎。
第一存储器总线主要用于运算单元访问存储器。第一存储器总线的输入端与各个数据运算单元连接,第一存储器总线的输出端与第一存储器、第一主机接口和第一芯片间高速接口连接。通过芯片间高速接口,第一计算芯片的数据运算单元可以访问第二芯片的第二存储器。
第二计算芯片包括第二微控制器,第二主机接口,第二控制引擎,第二寄存器总线,第二命令总线,若干个第二数据运算单元,第二存储器总线,第二存储器和第二芯片间高速接口。第二计算芯片的上述各个模块的功能与第一计算芯片类似,在此不再赘述。
当第一计算芯片和第二计算芯片组成一个大芯片共同工作时,第一计算芯片的第一主机接口和第一控制引擎工作,第二计算芯片的第二主机接口和第二控制引擎不工作。这样,从外部软件和应用层来看,编程的输入接口只有一个,从而简化了软件编程。第一计算芯片的第一控制引擎通过命令总线和芯片间高速互联向第二计算芯片的运算单元分发命令,完成了计算任务的扩展,使计算任务可以在两个计算芯片上同时执行。
此时,第一计算芯片与第二计算芯片之间的协同工作流程如下:
首先,第一计算芯片的第一控制引擎通过第一主机接口从主机存储器读取命令列表,解析命令列表中的一个命令及控制信息,根据控制信息确定该命令是在一个计算芯片上执行,还是在两个计算芯片上执行。
然后,第一控制引擎将命令分解成多个计算命令,根据控制信息和各数据运算单元的工作状态,通过第一命令总线分发给数据运算单元。
假设根据控制信息确定该命令需要在两个计算芯片上执行,那么针对发给第二计算芯片的计算命令,在该计算命令进入第一芯片间高速接口时进行地址编码,编码结果如图2所示。在第二芯片间高速接口中进行解码,根据目标单元序号通过第二命令总线发送给目标数据运算单元。针对发给第一计算芯片的计算命令,第一控制引擎通过第一命令总线直接分发给第一计算芯片内的数据运算单元。
数据运算单元执行计算命令的指令。
如果执行计算命令的指令时所需用到的数据在本芯片的存储器中,则通过本地存储器总线访问本芯片的存储器;如果数据在其他芯片的存储器中,则通过芯片间高速接口和存储器总线访问其他芯片的存储器。
当数据运算单元执行完计算命令的指令后,产生命令完成包返回给第一控制引擎。
具体而言,数据运算单元根据命令请求包的源芯片序号和源单元序号确定是哪一个芯片的控制引擎发送的计算命令。将该控制引擎设置为命令完成包的目标单元。如果是本芯片的控制引擎发起的计算命令,则将命令完成包通过本芯片的命令总线返回给控制引擎。如果是其他芯片的控制引擎发起的计算命令,则将命令完成包通过芯片间高速接口,发送给目标芯片的控制引擎。
第一控制引擎收集该命令的所有命令完成包。当全部完成后,代表该命令完成,通过第一主机接口通知主机端,或者继续执行命令列表的其他命令。
可以理解,第一控制引擎在切分一个命令后,可以统计切分出的计算命令数量。每收到一个该命令的命令完成包,则计数减一。当数值减为零时,即认为第一控制引擎收集到了该命令的所有命令完成包。
基于同一发明构思,本申请实施例还提供了一种电子设备,该电子设备包括本申请实施例提供的芯片组。
可以理解,电子设备可以是具有该芯片组的板卡(例如显卡等)、主板,控制器等,也可以是服务器、电脑、手机等设备。
在本申请实施例中,电子设备内还可以具有更多的组件。例如,还可以具有设置于芯片外的存储器、处理器、通信总线等。又例如,还可以具有显示屏等信息显示部件,但不作为限制。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (19)

1.一种芯片控制方法,其特征在于,包括:
通过第一芯片的主机接口从主机获取命令列表并发送给目标控制引擎;所述目标控制引擎为芯片组中至少一个芯片的控制引擎;所述芯片组包括所述第一芯片以及与所述第一芯片通信连接的至少一个第二芯片;
通过所述目标控制引擎将所述命令列表中的目标命令分发至目标数据运算单元进行处理;其中,所述目标命令为需要所述目标控制引擎处理的命令,所述目标数据运算单元为所述目标控制引擎管理的数据运算单元。
2.如权利要求1所述的方法,其特征在于,通过所述目标控制引擎将所述命令列表中的目标命令分发至目标数据运算单元进行处理,包括:
通过所述目标控制引擎将所述命令列表中的目标命令切分成多个计算命令;
在所述目标命令为多芯片执行的命令时,将所述多个计算命令中的目标计算命令分发至各所述目标数据运算单元进行处理;其中,所述目标计算命令为按照预设策略确定出的需在该目标控制引擎的目标数据运算单元中进行处理的计算命令。
3.如权利要求2所述的方法,其特征在于,针对任意一个所述目标计算命令:
若该目标计算命令对应的目标数据运算单元与所述目标控制引擎位于不同芯片,则将该目标计算命令发送至该目标计算命令对应的目标数据运算单元进行处理的过程包括:
对该目标计算命令进行地址编码,得到编码后的待处理数据;所述待处理数据包括地址信息部分和负载信息部分,所述地址信息部分中携带有所述目标计算命令的命令类型,所述目标计算命令对应的目标数据运算单元的唯一标识;所述负载信息部分包括所述目标计算命令的内容;
将编码后的待处理数据发送至目标芯片的芯片间高速接口进行解析,以使所述目标芯片的芯片间高速接口按照所述目标数据运算单元的唯一标识将该目标计算命令发送至所述目标数据运算单元进行处理。
4.如权利要求2或3所述的方法,其特征在于,所述目标控制引擎为芯片组中每一个芯片的控制引擎;每一个所述目标控制引擎管理的目标数据运算单元为:与该目标控制引擎位于同一芯片内的各数据运算单元。
5.如权利要求4所述的方法,其特征在于,不同所述目标控制引擎所下发的目标计算命令不同。
6.如权利要求1-3任一项所述的方法,其特征在于,所述目标控制引擎的数量为1;所述目标数据运算单元为:所述芯片组中所有芯片上具有的全部数据运算单元。
7.如权利要求6所述的方法,其特征在于,所述目标控制引擎为所述第一芯片的控制引擎。
8.如权利要求1-3、5、7中任一项所述的方法,其特征在于,所述方法还包括:
通过所述第一芯片的主机接口从所述主机接收寄存器读写请求和/或数据传输请求;所述寄存器读写请求中携带有所请求操作的寄存器的地址信息;所述数据传输请求中携带有存储被传输的数据的存储器的地址信息;
在所述寄存器读写请求所请求操作的寄存器位于第二芯片内的情况下,所述主机接口将所述寄存器读写请求传输给所述第一芯片的芯片间高速接口,以使所述第一芯片的芯片间高速接口对所述寄存器读写请求中的地址信息行重编码,将重编码后的寄存器读写请求通过需访问的目标芯片的芯片间高速接口传输给需访问的寄存器;其中,重编码后的寄存器读写请求中的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的寄存器的地址;
和/或,
在所述数据传输请求所请求存储数据的存储器位于第二芯片内的情况下,所述主机接口将所述数据传输请求传输给所述第一芯片的芯片间高速接口,以使所述第一芯片的芯片间高速接口对所述数据传输请求中的地址信息进行重编码,将重编码后的数据传输请求通过需访问的目标芯片的芯片间高速接口传输给需访问的存储器;其中,重编码后的数据传输请求的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的存储器的地址。
9.如权利要求8所述的方法,其特征在于,所述重编码后的数据传输请求的地址信息和所述重编码后的寄存器读写请求中的地址信息中还包括至少一个保留位,以使所述地址信息的长度为预设长度。
10.一种芯片组,其特征在于,包括第一芯片以及与所述第一芯片通信连接的至少一个第二芯片;
所述第一芯片包括主机接口,所述主机接口用于从主机获取命令列表并发送给目标控制引擎;所述目标控制引擎为芯片组中至少一个芯片的控制引擎;
所述目标控制引擎用于将所述命令列表中的目标命令分发至目标数据运算单元进行处理;其中,所述目标命令为需要所述目标控制引擎处理的命令,所述目标数据运算单元为所述目标控制引擎管理的数据运算单元。
11.如权利要求10所述的芯片组,其特征在于,所述目标控制引擎具体用于:
将所述命令列表中的目标命令切分成多个计算命令;
在所述目标命令为多芯片执行的命令时,将所述多个计算命令中的目标计算命令分发至各所述目标数据运算单元进行处理;其中,所述目标计算命令为按照预设策略确定出的需在该目标控制引擎的目标数据运算单元中进行处理的计算命令。
12.如权利要求11所述的芯片组,其特征在于,所述芯片组中各芯片之间通过芯片间高速接口连接;
针对任意一个所述目标计算命令,若该目标计算命令对应的目标数据运算单元与所述目标控制引擎位于不同芯片,则所述目标控制引擎用于将该目标计算命令对应发送至所述目标控制引擎所在芯片的芯片间高速接口;
所述目标控制引擎所在芯片的芯片间高速接口用于对该目标计算命令进行地址编码,得到编码后的待处理数据;所述待处理数据包括地址信息部分和负载信息部分,所述地址信息部分中携带有所述目标计算命令的命令类型,所述目标计算命令对应的目标数据运算单元的唯一标识;所述负载信息部分包括所述目标计算命令的内容;
所述目标控制引擎所在芯片的芯片间高速接口还用于将所述待处理数据发送至目标芯片的芯片间高速接口进行解析,以使所述目标芯片的芯片间高速接口按照所述目标数据运算单元的唯一标识将该目标计算命令发送至所述目标数据运算单元进行处理。
13.如权利要求11或12所述的芯片组,其特征在于,所述目标控制引擎为芯片组中每一个芯片的控制引擎;每一个所述目标控制引擎管理的目标数据运算单元为:与该目标控制引擎位于同一芯片内的各数据运算单元。
14.如权利要求13所述的芯片组,其特征在于,不同所述目标控制引擎所下发的目标计算命令不同。
15.如权利要求10-12任一项所述的芯片组,其特征在于,所述目标控制引擎的数量为1;所述目标数据运算单元为:所述芯片组中所有芯片上具有的全部数据运算单元。
16.如权利要求15所述的芯片组,其特征在于,所述目标控制引擎为所述第一芯片的控制引擎。
17.如权利要求10-12任一项所述的芯片组,其特征在于,
所述第一芯片的主机接口还用于从所述主机接收寄存器读写请求和/或数据传输请求;所述寄存器读写请求中携带有所请求操作的寄存器的地址信息;所述数据传输请求中携带有存储被传输的数据的存储器的地址信息;
所述第一芯片的芯片间高速接口还用于,在所述寄存器读写请求所请求操作的寄存器位于第二芯片内的情况下,对所述寄存器读写请求中的地址信息行重编码,将重编码后的寄存器读写请求通过需访问的目标芯片的芯片间高速接口传输给需访问的寄存器;其中,重编码后的寄存器读写请求中的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的寄存器的地址;
和/或,
所述第一芯片的芯片间高速接口还用于,在所述数据传输请求所请求存储数据的存储器位于第二芯片内的情况下,对所述数据传输请求中的地址信息进行重编码,将重编码后的数据传输请求通过需访问的目标芯片的芯片间高速接口传输给需访问的存储器;其中,重编码后的数据传输请求的地址信息包括地址类型、需访问的目标芯片的唯一标识、需访问的存储器的地址。
18.如权利要求17所述的芯片组,其特征在于,所述重编码后的数据传输请求的地址信息和所述重编码后的寄存器读写请求中的地址信息中还包括至少一个保留位,以使所述地址信息的长度为预设长度。
19.一种电子设备,其特征在于,包括如权利要求10-18任一项所述的芯片组。
CN202310280494.2A 2023-03-22 2023-03-22 芯片控制方法、芯片组及电子设备 Active CN115994115B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310280494.2A CN115994115B (zh) 2023-03-22 2023-03-22 芯片控制方法、芯片组及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310280494.2A CN115994115B (zh) 2023-03-22 2023-03-22 芯片控制方法、芯片组及电子设备

Publications (2)

Publication Number Publication Date
CN115994115A true CN115994115A (zh) 2023-04-21
CN115994115B CN115994115B (zh) 2023-10-20

Family

ID=85992367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310280494.2A Active CN115994115B (zh) 2023-03-22 2023-03-22 芯片控制方法、芯片组及电子设备

Country Status (1)

Country Link
CN (1) CN115994115B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116401189A (zh) * 2023-06-07 2023-07-07 湖北芯擎科技有限公司 基于pcie控制器的多芯片通信方法、设备及存储介质

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1653489A (zh) * 2002-05-10 2005-08-10 比特波伊斯有限责任公司 将单个命令转换成空间图像信息的图形引擎及合并有该图形引擎的电子装置和存储器
CN1885277A (zh) * 2005-06-24 2006-12-27 秦蒙达股份公司 Dram芯片设备以及包括该设备的多芯片封装
US20070079043A1 (en) * 2003-12-02 2007-04-05 Super Talent Electronics Inc. Single-Chip Multi-Media Card/Secure Digital (MMC/SD) Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage
CN103078939A (zh) * 2012-12-29 2013-05-01 广东志成冠军集团有限公司 一种电视墙拼接控制方法、装置与控制器
CN105354503A (zh) * 2015-11-02 2016-02-24 上海兆芯集成电路有限公司 储存装置数据加解密方法
CN108268283A (zh) * 2016-12-31 2018-07-10 英特尔公司 用于利用约简操作来支持数据并行循环的计算引擎架构
US20190306055A1 (en) * 2018-03-29 2019-10-03 Alibaba Group Holding Limited Efficient and reliable message channel between a host system and an integrated circuit acceleration system
CN209560543U (zh) * 2018-10-30 2019-10-29 北京比特大陆科技有限公司 大数据运算芯片
CN111209244A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理装置及相关产品
CN111651207A (zh) * 2020-08-06 2020-09-11 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
CN112131168A (zh) * 2020-09-02 2020-12-25 山东云海国创云计算装备产业创新中心有限公司 一种多芯片组及控制方法
WO2021244194A1 (zh) * 2020-06-05 2021-12-09 Oppo广东移动通信有限公司 寄存器的读写方法、芯片、子系统、寄存器组及终端
CN114006783A (zh) * 2021-10-29 2022-02-01 上海艾为电子技术股份有限公司 一种协同控制方法、装置、系统及存储介质
CN114579487A (zh) * 2022-03-10 2022-06-03 上海登临科技有限公司 一种计算芯片、电子设备及计算芯片间的数据传输方法
CN114637536A (zh) * 2022-03-25 2022-06-17 上海登临科技有限公司 任务处理方法、计算协处理器、芯片及计算机设备
CN114662112A (zh) * 2020-12-22 2022-06-24 英特尔公司 平台安全机制
CN114756498A (zh) * 2020-12-29 2022-07-15 Tcl科技集团股份有限公司 芯片、主控芯片、芯片通信方法、芯片阵列及相关设备
CN114916011A (zh) * 2022-05-16 2022-08-16 深圳芯邦科技股份有限公司 一种uwb基带芯片的控制方法、uwb主控芯片及存储介质

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1653489A (zh) * 2002-05-10 2005-08-10 比特波伊斯有限责任公司 将单个命令转换成空间图像信息的图形引擎及合并有该图形引擎的电子装置和存储器
US20070079043A1 (en) * 2003-12-02 2007-04-05 Super Talent Electronics Inc. Single-Chip Multi-Media Card/Secure Digital (MMC/SD) Controller Reading Power-On Boot Code from Integrated Flash Memory for User Storage
CN1885277A (zh) * 2005-06-24 2006-12-27 秦蒙达股份公司 Dram芯片设备以及包括该设备的多芯片封装
CN103078939A (zh) * 2012-12-29 2013-05-01 广东志成冠军集团有限公司 一种电视墙拼接控制方法、装置与控制器
CN105354503A (zh) * 2015-11-02 2016-02-24 上海兆芯集成电路有限公司 储存装置数据加解密方法
CN108268283A (zh) * 2016-12-31 2018-07-10 英特尔公司 用于利用约简操作来支持数据并行循环的计算引擎架构
US20190306055A1 (en) * 2018-03-29 2019-10-03 Alibaba Group Holding Limited Efficient and reliable message channel between a host system and an integrated circuit acceleration system
CN209560543U (zh) * 2018-10-30 2019-10-29 北京比特大陆科技有限公司 大数据运算芯片
CN111209244A (zh) * 2018-11-21 2020-05-29 上海寒武纪信息科技有限公司 数据处理装置及相关产品
CN112131174A (zh) * 2019-06-25 2020-12-25 北京百度网讯科技有限公司 支持在多个芯片之间通信的方法、装置、电子设备和计算机存储介质
WO2021244194A1 (zh) * 2020-06-05 2021-12-09 Oppo广东移动通信有限公司 寄存器的读写方法、芯片、子系统、寄存器组及终端
CN111651207A (zh) * 2020-08-06 2020-09-11 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质
CN112131168A (zh) * 2020-09-02 2020-12-25 山东云海国创云计算装备产业创新中心有限公司 一种多芯片组及控制方法
CN114662112A (zh) * 2020-12-22 2022-06-24 英特尔公司 平台安全机制
CN114756498A (zh) * 2020-12-29 2022-07-15 Tcl科技集团股份有限公司 芯片、主控芯片、芯片通信方法、芯片阵列及相关设备
CN114006783A (zh) * 2021-10-29 2022-02-01 上海艾为电子技术股份有限公司 一种协同控制方法、装置、系统及存储介质
CN114579487A (zh) * 2022-03-10 2022-06-03 上海登临科技有限公司 一种计算芯片、电子设备及计算芯片间的数据传输方法
CN114637536A (zh) * 2022-03-25 2022-06-17 上海登临科技有限公司 任务处理方法、计算协处理器、芯片及计算机设备
CN114916011A (zh) * 2022-05-16 2022-08-16 深圳芯邦科技股份有限公司 一种uwb基带芯片的控制方法、uwb主控芯片及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116401189A (zh) * 2023-06-07 2023-07-07 湖北芯擎科技有限公司 基于pcie控制器的多芯片通信方法、设备及存储介质
CN116401189B (zh) * 2023-06-07 2023-10-10 湖北芯擎科技有限公司 基于pcie控制器的多芯片通信方法、设备及存储介质

Also Published As

Publication number Publication date
CN115994115B (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
US5301279A (en) Apparatus for conditioning priority arbitration
CN110083461B (zh) 一种基于fpga的多任务处理系统及方法
US6167476A (en) Apparatus, method and system for accelerated graphics port bus bridges
CN103559156B (zh) 一种fpga与计算机之间的通信系统
WO2021244194A1 (zh) 寄存器的读写方法、芯片、子系统、寄存器组及终端
CN108121672A (zh) 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
CA2456179A1 (en) Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
JP2000010901A (ja) ディスクアレイ制御装置
CN111190842B (zh) 直接存储器访问、处理器、电子设备和数据搬移方法
CN115994115B (zh) 芯片控制方法、芯片组及电子设备
US11138106B1 (en) Target port with distributed transactions
US20230069339A1 (en) Storage device, electronic device including storage device, and operating method of electronic device
CN112988647A (zh) 一种TileLink总线到AXI4总线转换系统及方法
US7409486B2 (en) Storage system, and storage control method
Shim et al. Design and implementation of initial OpenSHMEM on PCIe NTB based cloud computing
KR100333584B1 (ko) 데이터 전송 시스템
US20220342835A1 (en) Method and apparatus for disaggregation of computing resources
CN103678244A (zh) 一种不使用应用处理器的智能设备
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
CN110413562B (zh) 一种具有自适应功能的同步系统和方法
CN114238156A (zh) 处理系统以及操作处理系统的方法
CN115269174A (zh) 一种数据传输方法、数据处理方法及相关产品
CN106325377A (zh) 外部设备扩展卡及输入输出外部设备的数据处理方法
CN112597092B (zh) 一种数据交互方法、机器人及存储介质
EP4134822A2 (en) Systems, methods, and apparatus for memory access in storage devices

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