CN117708003A - 一种基于芯粒的互联系统及数据访问方法 - Google Patents
一种基于芯粒的互联系统及数据访问方法 Download PDFInfo
- Publication number
- CN117708003A CN117708003A CN202311590326.XA CN202311590326A CN117708003A CN 117708003 A CN117708003 A CN 117708003A CN 202311590326 A CN202311590326 A CN 202311590326A CN 117708003 A CN117708003 A CN 117708003A
- Authority
- CN
- China
- Prior art keywords
- core
- address
- interconnection
- functional
- interconnect
- 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.)
- Pending
Links
- 239000007771 core particle Substances 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000006243 chemical reaction Methods 0.000 claims abstract description 10
- 230000004044 response Effects 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 21
- 239000008188 pellet Substances 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 3
- 239000004744 fabric Substances 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 11
- 101100460584 Chaetomium thermophilum (strain DSM 1495 / CBS 144.50 / IMI 039719) NOC1 gene Proteins 0.000 description 8
- 101100022229 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MAK21 gene Proteins 0.000 description 8
- 101100313929 Schizosaccharomyces pombe (strain 972 / ATCC 24843) tip1 gene Proteins 0.000 description 8
- 101100257262 Caenorhabditis elegans soc-1 gene Proteins 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 239000000758 substrate Substances 0.000 description 7
- 101001104100 Homo sapiens Rab effector Noc2 Proteins 0.000 description 6
- 102100040095 Rab effector Noc2 Human genes 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 238000013475 authorization Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 101150114085 soc-2 gene Proteins 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Classifications
-
- 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
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及芯片技术领域,公开了一种基于芯粒的互联系统及数据访问方法,互联系统至少包括:第一功能芯粒、第二功能芯粒及至少一互联芯粒;互联芯粒上设置有至少两个接口,互联芯粒通过至少两个接口分别连接第一功能芯粒及第二功能芯粒;第一功能芯粒用于基于对第二功能芯粒的访问需求向互联芯粒的接口发送目标地址;互联芯粒通过互联网络地址空间中的记录的目标位置地址寻址,将转化后的目标地址发送至第二功能芯粒,第二功能芯粒基于转化后的目标地址寻址到目标位置。本发明能够解决多芯粒的寻址问题,能够在访问不同芯粒的过程中不涉及复杂的协议转换、以及中间芯粒CPU的参与,从而达到减少响应时间,提升芯片互连系统性能的目的。
Description
技术领域
本发明涉及芯片技术领域,具体涉及一种基于芯粒的互联系统及数据访问方法。
背景技术
随着HPC(高性能计算)市场进入超预期的高速发展阶段,由于摩尔定律的经济效益降低,不能再只依赖工艺和架构等少数几个维度去实现性能和复杂度的指数型提升。传统的芯片开发要经过RTL设计、仿真、综合等繁琐的流程,总耗时以年计,同时购买IP授权、EDA工具许可、流片也需要投入大量的资金。而利用芯粒技术,设计者只需要选出满足设计规格的芯粒。在自动化工具的帮助下,这一过程可在几十分钟内完成。选出的芯粒只需要在封装层面进行集成,因此芯片开发时长大幅缩减。并且由于基于实体芯粒进行封装集成,避免了支付高昂的IP授权等费用,故所耗费的资金相较少很多。
对于分解后得到的芯粒,需要重新将它们集成(integrate)在一起构成系统。实现集成需要解决芯粒如何实现互联与芯粒如何封装这两大问题。芯粒间往往需要互联通信才能协同工作,在未来依托芯粒生态,单个封装中可能集成数量、种类、来源繁多的芯粒,此时拓展性强、性能高的芯粒互联网络就是必然选择。芯粒互联网络类似于日常生活中的因特网,芯粒通过网络接口(network interface)将芯粒内部的数据格式转换为网络数据包,通过路由器(router)传递到目标芯粒的网络接口中。网络接口与路由器的连接模式被称为网络拓扑,常见的有环形(ring)、网状(mesh)等;数据包在网络中从源节点到目的节点的传输路径被称为路由。拓扑与路由需要根据系统通信流量特性进行专门优化,使用固定的网络拓扑与网络路由方式往往得不到理想的通信性能,对于算力要求较高的场合,芯粒互联网络更加复杂,如果将所有的芯粒互联网络集成在一颗芯粒或者有源硅基板里面,则其实现难度较高。
发明内容
有鉴于此,本发明提供了一种基于芯粒的互联系统及数据访问方法,以解决相关技术中多芯粒的寻址问题以及响应时间长的问题。
第一方面,本发明提供了一种基于芯粒的互联系统,所述互联系统至少包括:第一功能芯粒、第二功能芯粒及至少一互联芯粒;所述互联芯粒上设置有至少两个接口,所述互联芯粒通过所述至少两个接口分别连接所述第一功能芯粒及第二功能芯粒;
所述第一功能芯粒、第二功能芯粒和互联芯粒设置有互联网络地址空间,所述互联网络地址空间用于表征所述第一功能芯粒、第二功能芯粒或者互联芯粒的目标位置在互联网络中的地址;
所述第一功能芯粒用于基于对第二功能芯粒的访问需求向所述互联芯粒的接口发送目标地址;所述互联芯粒通过所述互联网络地址空间中的记录的目标位置地址寻址,将转化后的目标地址发送至所述第二功能芯粒,所述第二功能芯粒基于所述转化后的目标地址寻址到目标位置。
本发明提供的基于芯粒的互联系统,提供了一套支持多芯粒、并兼容CPU的全系统的寻址方式,能够解决多芯粒的寻址问题,使得整个系统具有统一的寻址方式来访问不同芯粒的内容,中间不涉及协议的转换、以及中间芯粒CPU的参与,从而达到减少响应时间的目的。
在一种可选的实施方式中,所述互联芯粒至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间,
所述虚拟地址空间用以表征所述互联芯粒的运行程序的地址空间;所述芯粒地址空间用于表征所述互联芯粒的内部总线寻址空间;所述互联网络地址空间用以表征所述互联芯粒的目标位置在互联网络中的地址。
本发明提供的基于芯粒的互联系统,通过将互联芯粒的地址映射分为三层空间,即虚拟地址空间、芯粒地址空间及Mesh地址空间,能够兼容现有的CPU寻址方式,并且扩展到多芯粒的全系统统一寻址。
在一种可选的实施方式中,所述互联芯粒包括:内存管理单元;
所述内存管理单元用于基于预设的地址映射关系在所述虚拟地址空间、芯粒地址空间及互联网络地址空间之间进行转换。
在一种可选的实施方式中,所述第一功能芯粒和第二功能芯粒至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间,
所述虚拟地址空间用以表征所述第一功能芯粒或第二功能芯粒的运行程序的地址空间;所述芯粒地址空间用于表征所述第一功能芯粒或第二功能芯粒的内部总线寻址空间;所述互联网络地址空间用以表征所述第一功能芯粒或第二功能芯粒的目标位置在互联网络中的地址。
在一种可选的实施方式中,所述互联芯粒、第一功能芯粒和第二功能芯粒设置有互连接口;
所述第一功能芯粒的互连接口将所述第一功能芯粒的目标地址转换为所述互联网络地址空间中的地址,并发送至所述互联芯粒的互连接口;
所述互联芯粒中的内存管理单元将互联接口接收到的所述互联网络地址空间中的地址转化为所述互联芯粒中的芯粒地址空间中的地址,并通过所述互联芯粒上的片上总线寻址到与第二功能芯粒连接的互连接口;
所述互联芯粒与第二功能芯粒连接的互连接口将所述互联芯粒中的芯粒地址空间中的地址转化为互联网络地址空间中的地址,并发送给第二功能芯粒的互连接口;
所述第二功能芯粒的互连接口接收到所述互联网络地址空间中的地址,所述第二功能芯粒的内存管理单元将所述第二功能芯粒的互连接口接收到的地址转换为芯粒地址空间中的地址,并根据芯粒地址空间中的地址寻址到对应的目标位置。
在一种可选的实施方式中,所述互联芯粒的互连接口接收到所述第一功能芯粒发送的互连网络地址空间中的地址后,将所述互连网络地址空间中的地址转化为临时总线地址;所述内存管理单元将所述临时总线地址转换为所述互联芯粒中的芯粒地址空间中的地址。
在一种可选的实施方式中,所述第二功能芯粒的互连接口接收到所述互联芯粒发送的所述互联网络地址空间中的地址后,将所述互联网络地址空间中的地址转换为临时总线地址,所述第二功能芯粒的内存管理单元将所述临时总线地址转换为芯粒地址空间中的地址,并根据芯粒地址空间中的地址寻址到对应的目标位置。
在一种可选的实施方式中,所述互联芯粒包括:通信单元;
所述通信单元用于进行流量检测,当检测所述互联芯粒的接口中的流量超过预设阈值时,向所述内存管理单元发送提示信号;
所述内存管理单元还用于响应于所述提示信号,修改所述预设的地址映射关系,以调整目标地址的数据传输路径。
在一种可选的实施方式中,所述互联芯粒上还设置有第二接口,所述第二接口用于与另一互联芯粒建立连接。
在一种可选的实施方式中,所述互联芯粒上还设置有第三接口,所述第三接口用于连接另一网络或另一互联系统。
在一种可选的实施方式中,所述互联系统与所述另一网络或另一互联系统属于同一网络结构层;或者,所述互联系统与所述另一网络或另一互联系统属于不同的网络结构层。
在一种可选的实施方式中,所述互联系统包括两个所述互联芯粒:第一互联芯粒及第二互联芯粒;
所述第一互联芯粒分别与所述第一功能芯粒及所述第二互联芯粒连接,所述第二互联芯粒还与所述第二功能芯粒连接;
所述第一功能芯粒用于基于访问需求向所述第一互联芯粒的接口发送目标地址对应的第一互联网络地址;
所述第一互联芯粒用于基于所述第一互联网络地址生成第一内部地址,将所述第一内部地址转换为第二互联网络地址,并发送至所述第二互联芯粒;
所述第二互联芯粒用于基于所述第二互联网络地址生成第二内部地址,将所述第二内部地址转换为第三互联网络地址,并发送至所述第二功能芯粒;
所述第二功能芯粒用于基于所述第三互联网络地址提取第三内部地址,基于所述第三内部地址寻址到对应的目标位置。
第二方面,本发明提供了一种计算机设备,其特征在于,包括上述第一方面或其对应的任一实施方式的基于芯粒的互联系统。
第三方面,本发明提供了一种数据访问方法,应用于上述第一方面或其对应的任一实施方式的基于芯粒的互联系统,方法包括:
所述第一功能芯粒基于访问需求向所述互联芯粒的接口发送目标地址;
所述互联芯粒基于所述目标地址进行转换处理,将转换后的目标地址发送至所述第二功能芯粒;
所述第二功能芯粒基于所述转换后的目标地址提取寻址地址,基于所述寻址地址寻址到对应的目标位置。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的基于芯粒的互联系统的结构示意图;
图2是根据本发明实施例的另一基于芯粒的互联系统的结构示意图;
图3是根据本发明实施例的互联芯粒的结构示意图;
图4是根据本发明实施例的互联芯粒的结构示意图;
图5是根据本发明实施例的多个互联芯粒通过拼接得到的基板的结构示意图;
图6是根据本发明实施例的多个互联芯粒进行堆叠的示意图;
图7是根据本发明实施例的网络与网络连接的示意图;
图8是根据本发明实施例的地址映射的示意图;
图9是根据本发明实施例的地址映射的示意图;
图10是根据本发明实施例的Mesh地址空间的示意图;
图11是根据本发明实施例的利用基于芯粒的互联系统进行数据访问的结构示意图;
图12是根据本发明实施例的利用基于芯粒的互联系统进行数据访问的流程示意图;
图13是根据本发明实施例的拥塞控制的场景示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着HPC(高性能计算)市场进入超预期的高速发展阶段,由于摩尔定律的经济效益降低,不能再只依赖工艺和架构等少数几个维度去实现性能和复杂度的指数型提升。传统的芯片开发要经过RTL设计、仿真、综合等繁琐的流程,总耗时以年计,同时购买IP授权、EDA工具许可、流片也需要投入大量的资金。而利用芯粒技术,设计者只需要选出满足设计规格的芯粒。在自动化工具的帮助下,这一过程可在几十分钟内完成。选出的芯粒只需要在封装层面进行集成,因此芯片开发时长大幅缩减。并且由于基于实体芯粒进行封装集成,避免了支付高昂的IP授权等费用,故所耗费的资金相较少很多。
对于分解后得到的芯粒,需要重新将它们集成(integrate)在一起构成系统。集成需要解决芯粒怎么互联与芯粒如何封装这两大问题。芯粒间往往需要互联通信才能协同工作,在未来依托芯粒生态,单个封装中可能集成数量、种类、来源繁多的芯粒,此时拓展性强、性能高的芯粒互联网络就成了必然选择。芯粒互联网络类似于日常生活中的因特网,芯粒通过网络接口(network interface)将芯粒内部的数据格式转换为网络数据包,通过路由器(router)传递到目标芯粒的网络接口中。网络接口与路由器的连接模式被称为网络拓扑,常见的有环形(ring)、网状(mesh)等;数据包在网络中从源节点到目的节点的传输路径被称为路由。拓扑与路由需要根据系统通信流量特性进行专门优化,使用固定的网络拓扑与网络路由方式往往得不到理想的通信性能,对于算力要求较高的场合,芯粒互联网络更加复杂,如果将所有的芯粒互联网络集成在一颗芯粒或者有源硅基板里面,则其实现难度较高。
相关技术中,现有芯片之间的连接,在访问不同芯粒的内容时涉及到复杂的协议转换,以及中间芯粒CPU的参与,造成响应时间长的问题;并且单一的连接协议如PCIe\RapidIO,没有提供一套支持多芯粒、并兼容CPU的全系统的寻址方式。
基于上述问题,本发明提供了一种基于芯粒的互联系统,提供了一套支持多芯粒、并兼容CPU的全系统的寻址方式,能够在通过总线方式的访问不同芯粒的过程中不涉及协议的转换、以及中间芯粒CPU的参与,从而达到减少的响应时间,提升芯片互连系统的性能。
如图1所示,基于芯粒的互联系统100包括第一功能芯粒110、第二功能芯粒120及至少一互联芯粒130;所述互联芯粒130上设置有至少两个接口,所述互联芯粒130通过所述至少两个接口分别连接所述第一功能芯粒110及第二功能芯粒120。其中,第一功能芯粒110和第二功能芯粒120可以为图形处理器(Graphics Processing Unit,GPU)、中央处理器(Central Processing Unit,CPU)或者DSA芯片等。
具体地,第一功能芯粒110可以通过D2D通信技术(Die—to—DieCommunication)或者高速串行计算机扩展总线(peripheral component interconnect express,PCIE)与互联芯粒130的一个接口连接;第二功能芯粒120可以通过D2D通信技术(Die—to—DieCommunication)或者高速串行计算机扩展总线(peripheral component interconnectexpress,PCIE)与互联芯粒130的另一个接口连接;当存在多个互联芯粒时可以通过D2D通信技术(Die—to—Die Communication)或者高速串行计算机扩展总线(peripheralcomponent interconnect express,PCIE)将其依次进行连接,实现互联芯粒间的连接,其中D2D通信技术为协议转换接口。
第一功能芯粒110、第二功能芯粒120和互联芯粒130设置有互联网络地址空间,互联网络地址空间用于表征第一功能芯粒110、第二功能芯粒120或者互联芯粒130的目标位置在互联网络中的地址。
第一功能芯粒110用于基于对第二功能芯粒的访问需求向互联芯粒130的接口发送目标地址。
互联芯粒130用于通过互联网络地址空间(即Mesh空间地址)中的记录的目标位置地址寻址,将转化后的目标地址发送至所述第二功能芯粒120。
第二功能芯粒120用于基于转化后的目标地址寻址到目标位置。
下述实施例写明了Mesh网络中数据访问(写操作)的流程。目前功能芯粒(SOC)总线大多采用AMBA总线,这里功能芯粒总线以AXI总线为例。
具体地,第一功能芯粒110的CPU要访问第二功能芯粒120的RAM存储空间和IO接口空间,第一功能芯粒110会将与RAM存储空间和IO接口空间对应的目标地址在CPU虚拟地址上标记的地址转换为第一功能芯粒110上对应的axi地址;第一功能芯粒110的D2D接口会将axi地址转换成Mesh空间地址(例如加上一个偏移量,该偏移量是SoC集成设计时已经确定好的),并将其从相关的D2D接口发给第二功能芯粒120的D2D接口;第二功能芯粒120的D2D接口接收到Mesh空间地址,会将Mesh地址减去一个偏移量,转换成临时axi地址,该地址通过MMU转换成SOC2内部的SoC地址;通过SOC片上总线寻址到对应的RAM存储空间和IO接口空间。
在一些可选的实施方式中,如图2所示,互联系统200包括两个互联芯粒:第一互联芯粒230及第二互联芯粒240;第一互联芯粒230分别与第一功能芯粒210及第二互联芯粒240连接,第二互联芯粒240还与第二功能芯粒220连接。
具体地,上述互联芯粒(即第一互联芯粒230或第二互联芯粒240)上还设置有第二接口,第二接口用于与另一互联芯粒建立连接。上述互联芯粒(即第一互联芯粒230或第二互联芯粒240)上还设置有第三接口,所述第三接口用于连接另一网络或另一互联系统。
如图3所示,互联芯粒包括六个接口:接口301、接口302、接口303、接口304、接口305以及接口306。图4为互联芯粒的六个接口的另一种展示方式,正六边形NOC的六个边对应着图3中的六个接口。
其中,接口301、接口302、接口303以及接口304可以作为第二接口,用于连接周围四个方向上相邻的其他互联芯粒。利用互联芯粒的四个第二接口可以通过拼接多个互联芯粒得到基板(即下文的网络),如图5所示。
接口305可以作为互联芯粒的第一接口,用于连接一个功能芯粒,例如图2中的第一互联芯粒230的第一接口可以连接第一功能芯粒210,第二互联芯粒240的第一接口可以连接第二功能芯粒220。
接口306可以作为第三接口,用于连接另一层网络,这里的网络可以理解为由多个互联芯粒构成的基板,如图6、7所示,通过每层基板的每个互联芯粒的第三接口能够将基板之间进行连接,从而实现芯粒堆叠;其中,图7中的“PE”表示互联芯粒,“TSV Pad”表示互联芯粒的第三接口,通过TSV(硅通孔技术,利用通空进行垂直的电连接,用于连接芯片)连接上一层网络和下一层网络。
在一些可选的实施方式中,Mesh Addressing是支持通过互联芯粒进行通信的基础,Mesh Addressing方案有如下特点:64-b的地址宽度,domain地址空间可以设置成20-b到48-b的某个值,例如设置成48-b,满足绝大部分CPU、GPU的寻址空间要求;支持8种地址类型,用户可根据系统需求,将地址空间划分成8种不同属性;支持最大1024个节点,Mesh结构(形状)可定义;支持地址按节点连续映射、或者按类型连续映射。
在一些可选的实施方式中,所述互联芯粒至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间,第一功能芯粒与第二功能芯粒也至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间(即Mesh地址空间);所述虚拟地址空间用以表征所述互联芯粒或者功能芯粒的运行程序对应的地址空间;所述芯粒地址空间用于表征所述互联芯粒或者所述功能芯粒的内部总线寻址空间;所述互联网络地址空间用以表征所述互联芯粒或者功能芯粒在互联网络中的地址。上述互联芯粒可以为第一互联芯粒或者第二互联芯粒。
如图8所示,可以将互联芯粒地址映射分为三层:Virtual Addr、SoC Addr以及Mesh Addr;
其中“Virtual Addr”为虚拟地址空间,表示系统级芯片SoC(chiplet/Die)中CPU、DSA等运行程序的地址空间;在该层面不同的应用程序和不同用户有自己的虚拟空间;虚拟空间通过MMU映射到系统级芯片SoC(chiplet/Die)地址空间(也就是俗称的SoC(chiplet/Die)物理空间);
“SoC Addr”为芯粒地址空间,表示系统级芯片SoC(chiplet/Die)各个加速器、存储器、IO等的SoC总线寻址空间,不同的SoC系统、以及同一个SoC系统在不同的工作模式下,其物理寻址空间的设置是不同的;SoC总线上的控制端口通过相应的SoC地址,访问不同的设备,例如D2D控制器及其接口;
“Mesh Addr”表示Mesh地址空间,用于寻址各个Mesh网络中不同节点(芯粒)上RAM/IO/寄存器。
具体地,在互联芯粒中Mesh地址空间的在使得当多个互联芯粒相互连接时,一个互联芯粒所连接的功能芯粒SoC1(chiplet/Die)与另一个互联芯粒所连接的功能芯粒SoC2进行通信的时候,能够通过soc和互联芯粒的mesh地址映射快速且准确的进行数据通信。通过互联芯粒的mesh空间作为中介,寻址到目的SOC的方式,可以使互联芯粒只需要存储本地连接的soc的地址页表,以及与其互连的其他互联芯粒的地址页表,而不需要存储所有soc的地址。
更具体地,地址映射如图9所示,图中Node节点排序是按照Mesh的矩阵行列顺序排列,实际是可以按任意序列排列;图中Virtual Addr和SoC Addr中,Node的排列顺序是一样的,实际可以不一样;图中SoC Addr和Mesh Addr中,Node的排列顺序是一样的,实际可以不一样。
更具体地,Mesh地址空间如图10所示,地址位宽按64-b规划,分成两种模式取决与Type和Node address的顺序;Reserved,为保留位,暂无应用;Mesh Node addr,10-b,可以标识1024个mesh节点;Type,3-b,可以标识8种不同的地址段空间类型,如寄存器地址段、IO地址段、RAM地址段等;Domain addr,规划为48-b,实际可以根据系统要求裁剪。
在一些可选的实施方式中,所述互联芯粒包括:通信单元、内存管理单元及片上网络单元,所述互联芯粒通过所述通信单元与所述功能芯粒或另一互联芯粒进行通信;所述内存管理单元用于基于预设的地址映射关系在所述虚拟地址空间、芯粒地址空间及网络地址空间之间进行转换。
在一些可选的实施方式中,所述第一功能芯粒和第二功能芯粒至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间,
所述虚拟地址空间用以表征所述第一功能芯粒或第二功能芯粒的运行程序的地址空间;所述芯粒地址空间用于表征所述第一功能芯粒或第二功能芯粒的内部总线寻址空间;所述互联网络地址空间用以表征所述第一功能芯粒或第二功能芯粒的目标位置在互联网络中的地址。
在一些可选的实施方式中,所述互联芯粒、第一功能芯粒和第二功能芯粒设置有互连接口;
所述第一功能芯粒的互连接口将所述第一功能芯粒的目标地址转换为所述互联网络地址空间中的地址,并发送至所述互联芯粒的互连接口;
所述互联芯粒中的内存管理单元将互联接口接收到的所述互联网络地址空间中的地址转化为所述互联芯粒中的芯粒地址空间中的地址,并通过所述互联芯粒上的片上总线寻址到与第二功能芯粒连接的互连接口;
所述互联芯粒与第二功能芯粒连接的互连接口将所述互联芯粒中的芯粒地址空间中的地址转化为互联网络地址空间中的地址,并发送给第二功能芯粒的互连接口;
所述第二功能芯粒的互连接口接收到所述互联网络地址空间中的地址,所述第二功能芯粒的内存管理单元将所述第二功能芯粒的互连接口接收到的地址转换为芯粒地址空间中的地址,并根据芯粒地址空间中的地址寻址到对应的目标位置。
在一些可选的实施方式中,所述互联芯粒的互连接口接收到所述第一功能芯粒发送的互连网络地址空间中的地址后,将所述互连网络地址空间中的地址转化为临时总线地址;所述内存管理单元将所述临时总线地址转换为所述互联芯粒中的芯粒地址空间中的地址。
在一些可选的实施方式中,所述第二功能芯粒的互连接口接收到所述互联芯粒发送的所述互联网络地址空间中的地址后,将所述互联网络地址空间中的地址转换为临时总线地址,所述第二功能芯粒的内存管理单元将所述临时总线地址转换为芯粒地址空间中的地址,并根据芯粒地址空间中的地址寻址到对应的目标位置。
在一些可选的实施方式中,通过上述图2中的基于芯粒的互联系统200,可以实现以下数据访问步骤:
第一功能芯粒210用于基于访问需求向第一互联芯粒230的接口发送目标地址对应的第一互联网络地址。
第一互联芯粒230用于基于第一互联网络地址生成第一内部地址,将第一内部地址转换为第二互联网络地址,并发送至第二互联芯粒240。
第二互联芯粒240用于基于第二互联网络地址生成第二内部地址,将第二内部地址转换为第三互联网络地址,并发送至第二功能芯粒220。
第二功能芯粒220用于基于第三互联网络地址提取第三内部地址,基于第三内部地址寻址到对应的目标位置。
具体地,如图11所示:互联芯粒相互连接构成一个Mesh网络,Mesh网络上的两个功能芯粒SOC DIE:第一功能芯粒SOC1 DIE通过D2D连接到第一互联芯粒(NOC1),SOC1的mesh位置(x1,y1);第二功能芯粒SOC2通过D2D连接到第二互联芯粒(NOC2),SOC2的Mesh位置(x2,y2);NoC1和NoC2通过D2D连接。其中D2D为协议转换接口,可进行芯片间连接。
当第一功能芯粒SOC1上的CPU对第二功能芯粒上的IO/RAM进行数据访问时,流程如图12所示:
节点(x1,y1)上的第一功能芯粒SOC1 DIE的CPU要访问节点(x2,y2)节点上第二功能芯粒SOC2 DIE的RAM/IO,对应的目标地址在CPU虚拟地址标记为soc1.vaddr;
第一功能芯粒SOC1上的CPU MMU会将该地址soc1.vaddr转换成第一功能芯粒SOC1上对应的axi地址,标记为soc1.phyaddr;该空间对应是该第一功能芯粒SOC1上D2D接口的访问空间;cpu实际是对相应的D2D接口进行操作;
第一功能芯粒SOC1上的D2D接口对相应的soc1.phyaddr地址转换成Mesh空间地址(例如加上一个偏移量,该偏移量是SoC集成设计时已经确定好的),从相关的D2D接口发送给NOC1对应的D2D接口;
第一互联芯粒NOC1的D2D接口接收到Mesh空间地址,会将Mesh地址减去一个偏移量,转换成临时axi地址,该地址通过io MMU转换成第一互联芯粒NOC1内部的SoC地址,标记为noc1.phyaddr;第一互联芯粒NOC1通过片上总线寻址到对应的D2D接口;
第一互联芯粒NOC1上的D2D接口对相应的noc1.phyaddr地址转换成Mesh空间地址(例如加上一个偏移量,该偏移量是SoC集成设计时已经确定好的),从相关的D2D接口发送给第二互联芯粒NOC2对应的D2D接口;
第二互联芯粒NOC2的D2D接口接收到第一互联芯粒NOC1传回的Mesh空间地址,会将Mesh地址减去一个偏移量,转换成临时axi地址,该地址通过io MMU转换成第二互联芯粒NOC2内部的SoC地址,标记为noc2.phyaddr;第二互联芯粒NOC2通过片上总线寻址到对应的D2D接口;
第二互联芯粒NOC2上的D2D接口对相应的noc2.phyaddr地址转换成Mesh空间地址(例如加上一个偏移量,该偏移量是SoC集成设计时已经确定好的),从相关的D2D接口发送给第二功能芯粒SOC2对应的D2D接口;
第二功能芯粒SOC2的D2D接收到Mesh空间地址,会将Mesh地址减去一个偏移量,转换成临时axi地址,该地址通过io MMU转换成第二功能芯粒SOC2内部的SoC地址,标记为soc2.phyaddr;通过片上总线寻址到对应的RAM/IO。
在一些可选的实施方式中,所述通信单元还用于进行流量检测,当检测所述互联芯粒的接口中的流量超过预设阈值时,向所述内存管理单元发送提示信号;所述内存管理单元还用于响应于所述提示信号,修改所述预设的地址映射关系,以调整目标地址的数据传输路径。预设阈值可以根据实际情况进行设置,在此不做具体限定。
具体地,对不同的系统或应用实际网络结构,可以通过修改MMU的地址映射表来适应网络拓扑、拥塞的变化。例如在D2D上增加发送流量检查,当某一方向上的D2D出现拥塞时,可根据一定的算法修改IO MMU的地址转换表,改变部分目标地址的数据传输路径,达到分流效果。
更具体地,拥塞控制可以基于全局拥塞信息的控制策略和基于当前节点的拥塞控制策略实现,具体如下:
全局拥塞控制策略,包括:基于全局的拥塞信息,搜索当前节点到其它目标节点的最优路径;路径的代价函数可以是最短曼哈顿距离或者曼哈短距离与经过节点的物理口的拥塞度的函数;对于最优路径上的每个接收物理接口,配置的MMU(即将目标地址对应的物理地址映射成下一个发送接口对应的SoC地址)。
局部拥塞控制策略,包括:基于本地的拥塞信息,搜索当前节点到目标节点的局部最优发送端口;判决的代价函数可以各个路径上的局部拥塞状态和符合曼哈顿最短距离的函数;如图13所示:原先NodeA到NodeB的传输路径是通过E口发送的。但是,目前NodeA的E口发生了拥塞,由于NodeA到NodeB最优曼哈顿距离的路径有多个,如路径T。因此,可以更NodeA到NodeB的传输通过S口发送;根据更新的目标地址的出发口,配置的MMU(即将目标地址对应的物理地址映射成下一个发送接口对应的SoC地址)。
在一些可选的实施方式中,互联芯粒的Mesh路由是基于MMU机制以及结合芯片SoC总线寻址。对于每个D2D接收端口都配置有一个IO MMU,软件根据实际网络配置和应用的需求,配置MMU的地址转换表,来实现传输路由控制功能。
下面是关于2维Mesh网络“X-Y”路由的配置表生成算法的示例:
“X-Y”路由中MMU地址转换表生成算法
输入:
本节点坐标(x0,y0);
Mesh网络规模(M,N);
{
For Mesh网络中的所有节点(x,y)=(0,0)to(M-1,N-1){
For节点(x,y)所包含的所有Mesh地址段对应的临时axi地址段{
If(x<x0){
该地址段(页)对应为本SoC West D2D对应的地址段(页);
}
Else if(x>x0){
该地址段(页)对应为本SoC East D2D对应的地址段(页);
}
Else if(y<y0){
该地址段(页)对应为本SoC North D2D对应的地址段(页);
}
Else if(y>y0){
该地址段(页)对应为本SoC South D2D对应的地址段(页);
}
Else{
该地址段(页)对应为本SoC对应的地址段(页);
}
}
}
}
在本实施例中提供了一种计算机设备,包括上述实施例中的基于芯粒的互联系统。详细请参见上述实施例,在此不再赘述。
在本实施例中提供了一种数据访问方法,应用于上述实施例的基于芯粒的互联系统,所述方法包括:
所述第一功能芯粒基于访问需求向所述互联芯粒的接口发送目标地址。详细请参见上述实施例,在此不再赘述。
所述互联芯粒基于所述目标地址进行转换处理,将转换后的目标地址发送至所述第二功能芯粒。详细请参见上述实施例,在此不再赘述。
所述第二功能芯粒基于所述转换后的目标地址提取寻址地址,基于所述寻址地址寻址到对应的目标位置。详细请参见上述实施例,在此不再赘述。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (14)
1.一种基于芯粒的互联系统,其特征在于,所述互联系统至少包括:第一功能芯粒、第二功能芯粒及至少一个互联芯粒;所述互联芯粒上设置有至少两个接口,所述互联芯粒通过所述至少两个接口分别连接所述第一功能芯粒及第二功能芯粒;
所述第一功能芯粒、第二功能芯粒和互联芯粒设置有互联网络地址空间,所述互联网络地址空间用于表征所述第一功能芯粒、第二功能芯粒或者互联芯粒的目标位置在互联网络中的地址;
所述第一功能芯粒用于基于对第二功能芯粒的访问需求向所述互联芯粒的接口发送目标地址;所述互联芯粒通过所述互联网络地址空间中的记录的目标位置地址寻址,将转化后的目标地址发送至所述第二功能芯粒,所述第二功能芯粒基于所述转化后的目标地址寻址到目标位置。
2.根据权利要求1所述的基于芯粒的互联系统,其特征在于,所述互联芯粒至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间,
所述虚拟地址空间用以表征所述互联芯粒的运行程序的地址空间;所述芯粒地址空间用于表征所述互联芯粒的内部总线寻址空间;所述互联网络地址空间用以表征所述互联芯粒的目标位置在互联网络中的地址。
3.根据权利要求2所述的基于芯粒的互联系统,其特征在于,所述互联芯粒包括:内存管理单元;
所述内存管理单元用于基于预设的地址映射关系在所述虚拟地址空间、芯粒地址空间及互联网络地址空间之间进行转换。
4.根据权利要求3所述的基于芯粒的互联系统,其特征在于,所述第一功能芯粒和第二功能芯粒至少包括虚拟地址空间、芯粒地址空间及互联网络地址空间,
所述虚拟地址空间用以表征所述第一功能芯粒或第二功能芯粒的运行程序的地址空间;所述芯粒地址空间用于表征所述第一功能芯粒或第二功能芯粒的内部总线寻址空间;所述互联网络地址空间用以表征所述第一功能芯粒或第二功能芯粒的目标位置在互联网络中的地址。
5.根据权利要求4所述的基于芯粒的互联系统,其特征在于,所述互联芯粒、第一功能芯粒和第二功能芯粒设置有互连接口;
所述第一功能芯粒的互连接口将所述第一功能芯粒的目标地址转换为所述互联网络地址空间中的地址,并发送至所述互联芯粒的互连接口;
所述互联芯粒中的内存管理单元将互联接口接收到的所述互联网络地址空间中的地址转化为所述互联芯粒中的芯粒地址空间中的地址,并通过所述互联芯粒上的片上总线寻址到与第二功能芯粒连接的互连接口;
所述互联芯粒与第二功能芯粒连接的互连接口将所述互联芯粒中的芯粒地址空间中的地址转化为互联网络地址空间中的地址,并发送给第二功能芯粒的互连接口;
所述第二功能芯粒的互连接口接收到所述互联网络地址空间中的地址,所述第二功能芯粒的内存管理单元将所述第二功能芯粒的互连接口接收到的地址转换为芯粒地址空间中的地址,并根据芯粒地址空间中的地址寻址到对应的目标位置。
6.根据权利要求5所述的基于芯粒的互联系统,其特征在于,所述互联芯粒的互连接口接收到所述第一功能芯粒发送的互连网络地址空间中的地址后,将所述互连网络地址空间中的地址转化为临时总线地址;所述内存管理单元将所述临时总线地址转换为所述互联芯粒中的芯粒地址空间中的地址。
7.根据权利要求5所述的基于芯粒的互联系统,其特征在于,所述第二功能芯粒的互连接口接收到所述互联芯粒发送的所述互联网络地址空间中的地址后,将所述互联网络地址空间中的地址转换为临时总线地址,所述第二功能芯粒的内存管理单元将所述临时总线地址转换为芯粒地址空间中的地址,并根据芯粒地址空间中的地址寻址到对应的目标位置。
8.根据权利要求3所述的基于芯粒的互联系统,其特征在于,所述互联芯粒包括:通信单元;
所述通信单元用于进行流量检测,当检测所述互联芯粒的接口中的流量超过预设阈值时,向所述内存管理单元发送提示信号;
所述内存管理单元还用于响应于所述提示信号,修改所述预设的地址映射关系,以调整目标地址的数据传输路径。
9.根据权利要求1所述的基于芯粒的互联系统,其特征在于,所述互联芯粒上还设置有第二接口,所述第二接口用于与另一互联芯粒建立连接。
10.根据权利要求1或9所述的基于芯粒的互联系统,其特征在于,所述互联芯粒上还设置有第三接口,所述第三接口用于连接另一网络或另一互联系统。
11.根据权利要求6所述的基于芯粒的互联系统,其特征在于,所述互联系统与另一网络或另一互联系统属于同一网络结构层;
或者,
所述互联系统与所述另一网络或另一互联系统属于不同的网络结构层。
12.根据权利要求1所述的基于芯粒的互联系统,其特征在于,所述互联系统包括两个所述互联芯粒:第一互联芯粒及第二互联芯粒;
所述第一互联芯粒分别与所述第一功能芯粒及所述第二互联芯粒连接,所述第二互联芯粒还与所述第二功能芯粒连接;
所述第一功能芯粒用于基于访问需求向所述第一互联芯粒的接口发送目标地址对应的第一互联网络地址;
所述第一互联芯粒用于基于所述第一互联网络地址生成第一内部地址,将所述第一内部地址转换为第二互联网络地址,并发送至所述第二互联芯粒;
所述第二互联芯粒用于基于所述第二互联网络地址生成第二内部地址,将所述第二内部地址转换为第三互联网络地址,并发送至所述第二功能芯粒;
所述第二功能芯粒用于基于所述第三互联网络地址提取第三内部地址,基于所述第三内部地址寻址到对应的目标位置。
13.一种计算机设备,其特征在于,包括如权利要求1至12中任一项所述的基于芯粒的互联系统。
14.一种数据访问方法,其特征在于,应用于如权利要求1至12中任一项所述的基于芯粒的互联系统,所述方法包括:
所述第一功能芯粒基于访问需求向所述互联芯粒的接口发送目标地址;
所述互联芯粒基于所述目标地址进行转换处理,将转换后的目标地址发送至所述第二功能芯粒;
所述第二功能芯粒基于所述转换后的目标地址提取寻址地址,基于所述寻址地址寻址到对应的目标位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311590326.XA CN117708003A (zh) | 2023-11-24 | 2023-11-24 | 一种基于芯粒的互联系统及数据访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311590326.XA CN117708003A (zh) | 2023-11-24 | 2023-11-24 | 一种基于芯粒的互联系统及数据访问方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117708003A true CN117708003A (zh) | 2024-03-15 |
Family
ID=90145220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311590326.XA Pending CN117708003A (zh) | 2023-11-24 | 2023-11-24 | 一种基于芯粒的互联系统及数据访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117708003A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012794A (zh) * | 2024-04-07 | 2024-05-10 | 摩尔线程智能科技(北京)有限责任公司 | 计算芯粒及电子设备 |
-
2023
- 2023-11-24 CN CN202311590326.XA patent/CN117708003A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012794A (zh) * | 2024-04-07 | 2024-05-10 | 摩尔线程智能科技(北京)有限责任公司 | 计算芯粒及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11929927B2 (en) | Network interface for data transport in heterogeneous computing environments | |
US9825843B2 (en) | Die-stacked device with partitioned multi-hop network | |
TWI584116B (zh) | 使用混合記憶體立方體連結之互連系統及方法 | |
US7155525B2 (en) | Transaction management in systems having multiple multi-processor clusters | |
US20130077635A1 (en) | System and Method for Dynamically Configurable Multi-Window Divergent Protocol Bridge | |
CN117708003A (zh) | 一种基于芯粒的互联系统及数据访问方法 | |
US7404044B2 (en) | System and method for data transfer between multiple processors | |
KR20110120094A (ko) | 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩 | |
CN100401279C (zh) | 支持包处理的可配置的多端口多协议网络接口 | |
CN113168388A (zh) | 总线上的存储器请求链接 | |
CN116610630B (zh) | 一种基于片上网络的多核系统和数据传输方法 | |
Duan et al. | Research on double-layer networks-on-chip for inter-chiplet data switching on active interposers | |
CN113544658A (zh) | 置换环形网络互联的计算架构 | |
US20240193341A1 (en) | Alignment of macros based on anchor locations | |
WO2024160156A1 (zh) | 一种译码方法、第一裸片和第二裸片 | |
JP2023507330A (ja) | 電力節約のためのクロックイネーブルとしてのバイトイネーブルの転用 | |
Daneshtalab et al. | Pipeline-based interlayer bus structure for 3D networks-on-chip | |
경종민 | On-Chip Buses/Networks for SoC | |
Deotare et al. | On-Chip Communication for Low Latency on Hybrid NOC Architecture using i-slip Algorithm | |
Zhang et al. | An Address-Oriented Transmit Mechanism for GALS NoC |
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 |