一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种CPU互联总线架构及电子设备的制作方法

2022-02-21 07:32:41 来源:中国专利 TAG:

一种cpu互联总线架构及电子设备
技术领域
1.本技术涉及计算机技术领域,特别涉及一种cpu互联总线架构及电子设备。


背景技术:

2.目前,不同cpu(central processing unit,中央处理器)之间所用的互联总线大多基于私有协议实现,无法用于互联其他型号或其他厂商生产的cpu,具有一定的局限性。因此,如何提供一种通用的cpu互联总线,是本领域技术人员需要解决的问题。


技术实现要素:

3.有鉴于此,本技术的目的在于提供一种cpu互联总线架构方法、装置、设备及可读存储介质,以提供一种通用的cpu互联总线。其具体方案如下:第一方面,本技术提供了一种cpu互联总线架构,包括:应用层,用于确定任一操作访问的数据地址;与所述应用层相邻的缓存一致性层,用于通过缓存一致性协议标记所述数据地址中的数据的状态;与所述缓存一致性层相邻的数据链路层,用于创建所述操作对应的数据链路层包;所述数据链路层包中记录有所述操作的操作类型标记,所述操作类型标记为io标记、mem标记或cache标记;与所述数据链路层相邻的物理层,用于创建所述操作对应的物理层包,并连通任意两个cpu之间的物理链路。
4.优选地,所述缓存一致性层还用于:确定所述操作的访问方向;所述访问方向为:远端读/写本地、本地读/写远端。
5.优选地,所述缓存一致性协议为mesi。
6.优选地,所述io标记不需要支持缓存一致性,所述mem标记和所述cache标记需要支持缓存一致性。
7.优选地,所述物理层为pcie物理层。
8.优选地,所述pcie物理层包括:编解码模块,用于对传输至所述pcie物理层的数据包进行编/解码;串并行转换模块,用于对传输至所述pcie物理层的数据包进行串/并行转换;差分驱动模块,用于与所述物理链路的数据端口进行电气层式连接。
9.优选地,所述物理层包包括:start标志位、end标志位和所述数据链路层包;所述start标志位和所述end标志位用于区分不同物理层包。
10.优选地,所述物理层具体用于:系统复位后进行链路训练,以连通所述物理链路;所述链路训练包括:对所述物理链路的数据端口、收发模块进行初始化配置。
11.优选地,还包括:
位于所述缓存一致性层与所述数据链路层之间的tilelink层,用于通过tilelink协议将所述数据链路层和所述缓存一致性层的数据包进行相互转换。
12.优选地,所述tilelink层实现有tilelink-ul、tilelink-uh、tilelink-c;其中,tilelink-ul和tilelink-uh面向io;tilelink-c面向mem和cache。
13.第二方面,本技术提供了一种电子设备,包括:至少两个cpu,任意两个cpu通过上文任一项所述的cpu互联总线架构连接。
14.通过以上方案可知,本技术提供了一种cpu互联总线架构,包括:应用层,用于确定任一操作访问的数据地址;与所述应用层相邻的缓存一致性层,用于通过缓存一致性协议标记所述数据地址中的数据的状态;与所述缓存一致性层相邻的数据链路层,用于创建所述操作对应的数据链路层包;所述数据链路层包中记录有所述操作的操作类型标记,所述操作类型标记为io标记、mem标记或cache标记;与所述数据链路层相邻的物理层,用于创建所述操作对应的物理层包,并连通任意两个cpu之间的物理链路。
15.可见,本技术提供了一种支持缓存一致性的通用cpu互联总线架构,包括:应用层、缓存一致性层、数据链路层和物理层。其中,缓存一致性层能够针对某一操作访问的数据地址进行数据状态标记,从而可使发起操作的cpu知晓自己要访问的数据是什么状态,从而明确该数据是可以直接用,还是需要去别处获取最新的,从而使各cpu共享内存、缓存,实现缓存一致性。同时,该cpu互联总线架构所包括的应用层、缓存一致性层、数据链路层和物理层均为通用设计,因此该cpu互联总线架构可以用于互联各种型号、厂商生产的cpu,具有一定的通用性。
16.相应地,本技术提供的一种电子设备,也同样具有上述技术效果。
附图说明
17.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
18.图1为本技术公开的一种cpu互联总线架构示意图;图2为本技术公开的另一种cpu互联总线架构示意图;图3为本技术公开的cpu互联总线协议在计算机系统中所处的位置示意图;图4为本技术公开的第三种cpu互联总线架构示意图;图5为本技术公开的一种物理层的结构示意图;图6为本技术公开的一种事务层的结构示意图;图7为本技术公开的一种tilelink层和mesi层的结构示意图;图8为本技术公开的一种tilelink的操作类型示意图;图9为本技术公开的一种mesi涉及的访问方向示意图。
具体实施方式
19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于
本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
20.目前,不同cpu之间所用的互联总线大多基于私有协议实现,无法用于互联其他型号或其他厂商生产的cpu,具有一定的局限性。
21.为此,本技术提供了一种cpu互联总线架构方案,能够提供一种支持缓存一致性的通用cpu互联总线架构。
22.下面对本技术实施例提供的一种cpu互联总线架构进行介绍,参见图1所示,本技术实施例公开了一种cpu互联总线架构,包括:应用层101,用于确定任一操作访问的数据地址。
23.与应用层相邻的缓存一致性层102,用于通过缓存一致性协议标记数据地址中的数据的状态。
24.在一种具体实施方式中,缓存一致性层还用于:确定操作的访问方向;访问方向为:远端读/写本地、本地读/写远端。
25.远端读/写本地即:其他cpu的cache(缓存)读/写本地cpu的cache。
26.本地读/写远端即:本地cpu的cache读/写其他cpu的cache。
27.在一种具体实施方式中,缓存一致性协议为mesi(modified exclusive shared invalid)。当然,还是可以是基于mesi进行扩展得到的相关协议。
28.其中,mesi是一种应用广泛的缓存一致性协议,其他缓存一致性协议基本都是基于mesi演变而来的。
29.mesi是四个单词的首字母缩写。modified:修改;exclusive:独占;shared:共享;invalid:无效,这四个用于标记缓存中数据的不同状态。
30.m:表示当前cpu的高速缓存中的变量副本是独占的,而且和主存中的变量值不一致,而且别的cpu的flag不可能是这个状态。如果别的cpu想要读取变量的值,不能直接读主内存中的值,而是需要将处于m状态的变量刷新回主内存才可以。
31.e:表示当前cpu的高速缓存中的变量副本是独占的,别的cpu高速缓存中该变量的副本不能处于该状态,但是,处于e状态的高速缓存变量的值和主内存中的变量值是一致的。
32.s:处于s状态表示cpu中的变量副本和主存中数据一致,而且多个cpu都可以处于s状态,举例,当多个cpu读取主内存的值的时候高速缓存的flag就处于s状态。
33.i:表示当前cpu的高速缓存的变量副本处于不合法状态,不可以直接使用,需要从主内存重新读取,flag的初始状态就是i。
34.与缓存一致性层相邻的数据链路层103,用于创建操作对应的数据链路层包。
35.其中,数据链路层包中记录有操作的操作类型标记,操作类型标记为io标记、mem(内存)标记或cache标记。io标记不需要支持缓存一致性,mem标记和cache标记需要支持缓存一致性。
36.与数据链路层相邻的物理层104,用于创建操作对应的物理层包,并连通任意两个cpu之间的物理链路。
37.其中,物理层包包括:start标志位、end标志位和数据链路层包;start标志位和end标志位用于区分不同物理层包。
38.在一种具体实施方式中,物理层具体用于:系统复位后进行链路训练,以连通物理链路;链路训练包括:对物理链路的数据端口、收发模块进行初始化配置,从而使任意两个cpu之间的物理链路连通。
39.在一种具体实施方式中,物理层为pcie(peripheral component interconnect express,一种高速串行计算机扩展总线标准)物理层。若物理层为pcie物理层,那么pcie物理层包括:编解码模块,用于对传输至pcie物理层的数据包进行编/解码;串并行转换模块,用于对传输至pcie物理层的数据包进行串/并行转换;差分驱动模块,用于与物理链路的数据端口进行电气层式连接。
40.可见,本实施例提供了一种支持缓存一致性的通用cpu互联总线架构,包括:应用层、缓存一致性层、数据链路层和物理层。其中,缓存一致性层能够针对某一操作访问的数据地址进行数据状态标记,从而可使发起操作的cpu知晓自己要访问的数据是什么状态,从而明确该数据是可以直接用,还是需要去别处获取最新的,从而使各cpu共享内存、缓存,实现缓存一致性。同时,该cpu互联总线架构所包括的应用层、缓存一致性层、数据链路层和物理层均为通用设计,因此该cpu互联总线架构可以用于互联各种型号、厂商生产的cpu,具有一定的通用性。
41.下面对本技术实施例提供的另一种cpu互联总线架构进行介绍,下文描述的一种cpu互联总线架构与上文描述的一种cpu互联总线架构可以相互参照。
42.参见图2所示,本技术实施例公开了另一种cpu互联总线架构,包括:应用层201,用于确定任一操作访问的数据地址。
43.与应用层相邻的缓存一致性层202,用于通过缓存一致性协议标记数据地址中的数据的状态。
44.位于缓存一致性层与数据链路层之间的tilelink层203,用于通过tilelink协议将数据链路层和缓存一致性层的数据包进行相互转换。
45.tilelink层实现有tilelink协议,该协议是基于risc-v开发的、开放的、支持缓存一致性的片内总线协议。且tilelink协议与缓存一致性协议是剥离的,tilelink协议可以支持任何符合tilelink传输规则的缓存一致性协议。
46.在一种具体实施方式中,tilelink层实现有tilelink-ul、tilelink-uh、tilelink-c;其中,tilelink-ul和tilelink-uh面向io;tilelink-c面向mem和cache。
47.与缓存一致性层相邻的数据链路层204,用于创建操作对应的数据链路层包。
48.与数据链路层相邻的物理层205,用于创建操作对应的物理层包,并连通任意两个cpu之间的物理链路。
49.本实施例提供了一种支持缓存一致性的通用cpu互联总线架构,包括:应用层、缓存一致性层、tilelink层、数据链路层和物理层,这些层级均为通用设计,因此该cpu互联总线架构可以用于互联各种型号、厂商生产的cpu,具有一定的通用性。
50.对比图1和图2可知,tilelink层可以没有,其作用为:使数据链路层包与多种类型的缓存一致性协议包进行相互转换,所以如果在架构里仅设计了某一种缓存一致性协议,可以不用tilelink层进行包转换,直接设定该种缓存一致性协议包与数据链路层包直接的转换关系。但是,如果在架构里设计了多种缓存一致性协议,就需要用tilelink层进行包转
换,即:用tilelink层将各种类型的缓存一致性协议包转换为数据链路层包,同时将数据链路层包相应转换为各种类型的缓存一致性协议包。
51.关于本实施例中各个层级更加具体的工作过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
52.下面对本技术实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种cpu互联总线架构可以相互参照。
53.本技术实施例提供了一种电子设备,包括:至少两个cpu,任意两个cpu通过上文任一项所述的cpu互联总线架构连接。
54.其中,该cpu互联总线架构,包括:应用层,用于确定任一操作访问的数据地址。
55.与应用层相邻的缓存一致性层,用于通过缓存一致性协议标记数据地址中的数据的状态。
56.与缓存一致性层相邻的数据链路层,用于创建操作对应的数据链路层包;数据链路层包中记录有操作的操作类型标记,操作类型标记为io标记、mem标记或cache标记。
57.与数据链路层相邻的物理层,用于创建操作对应的物理层包,并连通任意两个cpu之间的物理链路。
58.在一种具体实施方式中,缓存一致性层还用于:确定操作的访问方向;访问方向为:远端读/写本地、本地读/写远端。
59.在一种具体实施方式中,缓存一致性协议为mesi。
60.在一种具体实施方式中,io标记不需要支持缓存一致性,mem标记和cache标记需要支持缓存一致性。
61.在一种具体实施方式中,物理层为pcie物理层。
62.在一种具体实施方式中,pcie物理层包括:编解码模块,用于对传输至pcie物理层的数据包进行编/解码;串并行转换模块,用于对传输至pcie物理层的数据包进行串/并行转换;差分驱动模块,用于与物理链路的数据端口进行电气层式连接。
63.在一种具体实施方式中,物理层包包括:start标志位、end标志位和数据链路层包;start标志位和end标志位用于区分不同物理层包。
64.在一种具体实施方式中,物理层具体用于:系统复位后进行链路训练,以连通物理链路;链路训练包括:对物理链路的数据端口、收发模块进行初始化配置。
65.在一种具体实施方式中,还包括:位于缓存一致性层与数据链路层之间的tilelink层,用于通过tilelink协议将数据链路层和缓存一致性层的数据包进行相互转换。
66.在一种具体实施方式中,tilelink层实现有tilelink-ul、tilelink-uh、tilelink-c;其中,tilelink-ul和tilelink-uh面向io;tilelink-c面向mem和cache。
67.关于本实施例中各个层级更加具体的工作过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
68.结合上述实施例公开的相关内容,下述实施例基于pcie协议、缓存一致性协议
mesi、tilelink协议以及pcie协议设计实现了一种用于cpu片间互联的总线协议。该总线协议在计算机系统中所处的位置可参见图3,如图3所示,该总线协议用于连接不同cpu。
69.其中,该总线协议的架构示意图可参照图4。图4中的device a和device b分别表示两个设备。tx为发送端,rx为接收端,每个设备包含一个tx和一个rx。aplication layer即应用层,该层与设备具体的功能有关,与协议无关。
70.本实施例主要实现对physical layer(物理层)、data link layer(数据链路层)、transaction layer(事务层)这三个层次的定义。其中,transaction layer包括:mesi layer(基于mesi实现的缓存一致性层)和tilelink layer(tilelink层)。
71.(1)physical layer具体为pcie物理层。
72.pcie是目前应用广泛的一种高速协议,pcie不支持缓存一致性,因此无法满足cpu之间的互连,但可以借鉴其物理层的实现方式,以达到cpu对高速的要求。物理层负责建立设备之间的物理链路连接、将来自数据链路层的并行数据转换成串行数据发送出去或者将接收到的串行数据转换成并行数据传递给数据链路层。
73.具体的,物理层的结构可参照图5。在图5中,link training负责链路训练,即:在系统复位后,自动对数据端口、收发模块进行初始化配置和训练。其目的是:为更高层的数据包建立稳定的物理层链路传输环境。link training与协议更高层没有关系,仅与物理层有关。
74.physical packet即物理层包,包格式包括:start标志位、end标志位、dllp(data link layer packet,数据链路层包),start和end是由物理层添加以区分不同物理层包的帧标志。
75.encode为编码模块,其目的是提高物理传输时的抗干扰能力。
76.parallel-to-serial将并行数据转换成串行数据以便发送。
77.differential driver为差分驱动,port为物理端口,differential driver和port为电气层实现方式。
78.由encode到port采用了典型的serdes实现方式,应用广泛,性能高。
79.在rx接收端,先由port接收到信号,经过parallel-to-serial将串行数据转换成并行数据,再经过解码、去除start和end标志位,最终将解析出来的dllp传递给数据链路层。
80.(2)数据链路层负责数据链路层包的创建,解码和校检。
81.为了支持缓存一致性,在数据链路层将访问分三种情况处理:io、cache和mem。io不需要缓存一致性,因此其数据链路层部分可以引用pcie的数据链路层。cache和mem访问需要支持缓存一致性,需要在pcie数据链路层的基础上进行扩展。
82.(3)请参见图6,transaction layer负责将tilelink层操作打包,组成不同的transaction packet,packet类型由tillink操作类型(io、cache或mem)决定,体现在header中。
83.其中,header包括:参数码、操作码、通道id、目的地址、数据字节个数、序列号、包长度等信息。crc是对整个transaction进行校验的校验码。
84.tilelink五个通道的数据分别进行打包,通过一个通道发送给数据链路层,其中,事务层到数据链路层的接口包括:需要应答的io操作、不需要应答的io操作、需要应答的
cache或mem操作、不需要应答的cache或mem操作。数据链路层到事务层的接口包括:io操作、cache或mem操作。
85.a、tilelink层实现了tilelink协议,tilelink协议有三种级别:tilelink-ul、tilelink-uh、tilelink-c。其中,tilelink-ul和tilelink-uh面向io,不支持缓存一致性,tilelink-c面向存储,支持缓存一致性。
86.请参见图7,tilelink协议采用主机/从机模式,每个主机或者从机均有a、b、c、d、e五个通道。
87.tilelink层的作用是将来自mesi层的读写操作转换成符合tilelink协议的操作。
88.b、mesi层中,mesi op是指本地cpu对远端cpu内存数据块的访问操作或远端cpu对本地cpu内存数据块的访问操作,需要将本地cpu所缓存的该数据块状态传递给tilelink层,io op则不需要缓存数据块状态。
89.请参见图8,实线框1内为tilelink-ul所支持的操作类型,虚线框2内为 tilelink-uh所支持的操作类型,实线框3内为 tilelink-c所支持的操作类型。其中,仅transfer类型操作需要缓存一致性的支持,本实施例由tilelink layer和mesi layer组成,tilelink layer基于开放协议tilelink规定事务传输规则,mesi layer基于缓存一致性协议mesi标记缓存里数据的状态。
90.在同一计算机系统中,可能存在多个内存对同一数据块的数据副本,缓存一致性协议可以维护这些数据副本的数据一致性,使不同设备对同一数据块的操作是一致的。
91.请参见图9,对于一个cpu来说,可能的mesi操作如下所示:local read local (本地读取本地):本地cpu的cache读取本地cpu的cache。
92.local write local (本地写入本地):本地cpu的cache写入本地cpu的cache。
93.remote read local (远端读取本地):其他cpu的cache读取本地cpu的cache。
94.remote write local (远端写入本地):其他cpu的cache写入本地cpu的cache。
95.local read remote (本地读取远端):本地cpu的cache读取其他cpu的cache。
96.local write remote (本地写入远端):本地cpu的cache写入其他cpu的cache。
97.由于本实施例所述的总线协议应用于两个cpu之间,属于远端与远端之间,因此本地读取本地和本地写入本地不在本实施例的使用范围之内。因此,本本实施例所述的总线协议实现如下四种操作:remote read local (远端读取本地):其他cpu的cache读取本地cpu的cache。
98.remote write local (远端写入本地):其他cpu的cache写入本地cpu的cache。
99.local read remote (本地读取远端):本地cpu的cache读取其他cpu的cache。
100.local write remote (本地写入远端):本地cpu的cache写入其他cpu的cache。
101.具体通过mesi layer和tilelink layer之间的opc体现。
102.可见,本实施例设计实现了一种支持缓存一致性的cpu片间互联的总线架构,架构中各层均为通用设计,因此该总线架构可以用于互联各种型号、厂商生产的cpu,具有一定的通用性。
103.本技术涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
104.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
105.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
106.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的可读存储介质中。
107.本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献