针对每核心加速器分配的频率缩放的制作方法

文档序号:27094897发布日期:2021-10-27 16:39阅读:248来源:国知局
针对每核心加速器分配的频率缩放的制作方法
针对每核心加速器分配的频率缩放
1.相关申请的交叉引用
2.本技术根据35 u.s.c.
§
119(e)要求享有于2020年4月24日提交的、题为“frequency scaling for per

core accelerator assignments”的美国临时申请第63/015,083号的申请日的权益。为了所有目的,进一步将美国临时申请第63/015,083号整体并入本文。


背景技术:

3.2011年,公司推出了其第一款具有高级矢量扩展(avx)的处理器,该扩展是对x86指令集架构(isa)的扩展。随后,intel将其avx产品扩展到了avx2和avx

512。带有avx3

512的处理器即将发布。avx指令是单指令多数据块(simd)指令。在avx之前,向x86 isa添加了流送simd扩展(sse)(以及sse2、sse3、ssse3和sse4指令)。为了简单起见,sse、sse2、sse3、ssse3和sse4中的每一个在本文中可以被称为sse或sse指令。类似地,avx、avx2、avx

512、avx3

512和avx/5g

isa中的每一个在本文中通常被称为avx指令。
4.avx指令支持使用多个操作数(例如,avx

512的4个操作数)的高级的基于矢量的操作。avx指令是为某些类型的数学运算(例如,多媒体、科学、金融应用中的浮点密集型计算)量身定制的,并且最近用于信号处理。具体地,avx

512能力可以帮助进行无线电接入网(裸机、虚拟化、云原生)设计所要求的加扰/解扰和调制以及基于符号的数据处理。5g

isa扩展还可以为l1 phy(物理层1)流水线的基于符号的数据处理部分(例如,信道估计、mimo均衡、波束成形、预编码)提供显著优势。它们还提高了浮点和整数simd计算中的并行度和吞吐量。avx指令被设计用于加速工作负载性能,因此可以称为加速指令和/或加速能力。
5.尽管avx添加了加速能力,但它们在处理器功率和频率方面都付出了代价。avx指令要求大量的门,并且比sse指令(和x86指令)消耗更多的功率。为了适应这种功率增加,cpu核心在被配置为支持avx指令时会以较低的频率操作,以保持处理器在热设计功率(tdp)规范内操作。
附图说明
6.本发明的前述方面和许多伴随的优点将变得更容易理解,因为通过参考下面的详细描述同时结合附图,这些方面和优点变得更好理解,在附图中,除非另有说明,否则相同的附图标记在各幅图中始终表示相同的部分:
7.图1是示出与支持每插座频率缩放和加速器分配的常规cpu相比,由支持每核心频率缩放和加速器分配的cpu提供的频率和性能增强的图;
8.图2是描绘在tdp为185w的情况下示例性32核心cpu的sse和avx3频率的组合以及对应功耗水平的表,该示例性32核心cpu具有8个sse核心和24个avx3核心的分割;
9.图3是包括描绘在tdp为185w的情况下示例性32核心cpu的sse和avx3频率的组合以及对应功耗水平的表的图,该示例性32核心cpu具有16个sse核心和16个avx3核心的分割;
10.图4是包括描绘在tdp为225w的情况下示例性32核心cpu的sse和avx3频率的组合以及对应功耗水平的表的图,该示例性32核心cpu具有8个sse核心和24个avx3核心的分割;
11.图5是包括描绘在tdp为225w的情况下示例性32核心cpu的sse和avx3频率的组合以及对应功耗水平的表的图,该例性32核心cpu具有16个sse核心和16个avx3核心的分割;
12.图6a是根据一个实施例的包括支持avx3指令的可以被选择性地启用和禁用的融合乘加(fma)单元的处理器核心的图;
13.图6b是描绘与avx许可模式相对应的其中fma单元被启用的图6a的处理器核心的图;
14.图6c是描绘与sse许可模式相对应的其中fma单元被禁用的图6a的处理器核心的图;
15.图7a是根据一个实施例的包括支持avx3指令的可以被选择性地启用和禁用的两个fma单元的处理器核心的图;
16.图7b是描绘与avx许可模式相对应的其中fma单元被启用的图7a的处理器核心的图;
17.图7c是描绘与sse许可模式相对应的其中fma单元被禁用的图7a的处理器核心的图;
18.图8是示出根据一个实施例的由支持自主配置的核心实现的操作和逻辑的流程图;
19.图9a是根据一个实施例的包括支持avx2指令的第一fma单元和支持avx3指令的第二fma单元的处理器核心的图,其中第一fma单元和第二fma单元均可以被选择性地启用和禁用;
20.图9b是描绘与sse许可模式相对应的其中第一fma单元和第二fma单元均被禁用的图9a的处理器核心的图;
21.图9c是描绘与avx2许可模式相对应的其中第一fma单元被启用而第二fma单元被禁用的图9a的处理器核心的图;
22.图9d是描绘与avx3许可模式相对应的其中第一fma单元被禁用而第二fma单元被启用的图9a的处理器核心的图;
23.图9e是示出与avx2+avx3许可模式相对应的其中第一fma单元和第二fma单元均被启用的图9a的处理器核心的图;
24.图10a是示出根据一个实施例的被执行以将核心从sse许可模式转换为avx2许可模式的操作的流程图;
25.图10b是示出根据一个实施例的被执行以将核心从sse许可模式转换为avx3许可模式的操作的流程图;
26.图10c是示出根据一个实施例的被执行以将核心从avx2许可模式转换为avx3许可模式的操作的流程图;
27.图11是描绘根据一个实施例的具有被配置为支持amx指令的第一fma单元和被配置为执行avx3/5g

isa指令的第二fma单元的处理器核心的图;
28.图12是根据一个实施例的包括soc处理器的计算机系统的示意图,该soc处理器具有以二维阵列布置的多个分片(tile),该多个分片经由网格管芯上互连结构而互连;并且
29.图13是示例性使用上下文的示意图,在该上下文中,服务器平台采用被配置为有意识地使用avx核心执行数据平面操作和信号处理操作并且使用sse核心执行控制平面操作的处理器;
30.图14是示出在基带单元(bbu)中采用具有第一组核心和第二组核心的处理器的示例性vran的示意性框图,第一组核心被配置为通过在这些核心上执行对应软件来执行l1操作,第二组核心被配置为通过在这些核心上执行对应软件来执行l2

rt操作;
31.图15是示出具有三组核心的处理器的示例的示意图,该三组核心被配置用于执行非avmx工作负载、amx工作负载和avx3工作负载;并且
32.图16是示出用于使用mano预配置bbu中的处理器中的核心的过程的流程图。
具体实施方式
33.本文描述了用于针对每核心加速器分配的频率缩放的方法和关联装置的实施例。在以下描述中,阐述了许多具体细节以提供对本发明的实施例的透彻理解。然而,相关领域技术人员将认识到,可以在没有具体细节中的一个或多个的情况下或者利用其他方法、组件、材料等来实践本发明。在其他实例中,公知的结构、材料或操作未被示出或详细描述以避免模糊本发明的方面。
34.贯穿本说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代同一实施例。此外,特定特征、结构或特性可以以任何合适的方式在一个或多个实施例中组合。
35.为了清楚起见,在本文中,附图中的各个组件也可以通过其在附图中的标号来引用,而不是通过特定的附图标记来引用。另外,可以用跟随有“(typ)”(表示“典型的”)的附图标记来示出指代特定类型的组件(与特定组件相对)的附图标记。应该理解的是,这些组件的配置将是可能存在但是为了简单和清楚在附图中未示出的类似组件或者未标有单独的附图标记的其他类似组件的典型。相反,“(typ)”不应被解释为意味着组件、元件等典型地用于其公开的功能、实现、目的等。
36.在当今的cpu架构下,当核心看到某种类型的avx指令(例如,avx2/512指令)时,核心通知中央功率控制单元(pcu)并等待响应,因为这些指令要求更多电流/功率来执行。从pcu返回的响应通知请求核心其需要以何频率运行。这称为许可授权,并且其目的是约束总电流消耗和功耗,并且避免损坏cpu。然后切换核心频率以执行avx指令。
37.随后,当核心检测到常规指令(例如,sse或“轻”avx2指令)时,其通知pcu并切换回正常操作模式,本文中也称为sse模式。每当核心从较低功率切换到较高功率许可模式(例如,从sse到avx512)时,就会有等待时间,在该等待时间期间请求核心不执行任何指令。该等待时间是为了允许电压和电流上升。
38.例如,对于用于处理针对诸如flexran(无线电接入网络)之类的5g应用的计算密集l1(第1层)基带处理的诸如avx3指令之类的某些加速器指令(在本文中称为avx3/5g

isa指令,包括avx3、avx/5g

isa和avx512指令),在频率缩放转换期间可能会发生延迟。在处理avx3/5g

isa和非avx3/5g

isa指令之间的频率缩放转换期间,可能会发生高达数百微秒的延迟。
39.给定严格的时间预算来处理传入/传出数据,像flexran之类的某些工作负载容易受到此等待时间的影响。因此,类似flexran的工作负载倾向于将cpu或整个系统置于固定许可模式下,以避免当在许可模式之间切换时由于等待时间而引起的抖动。尽管这避免了与抖动有关的问题,但由于频率较低,因此性能会受到影响,因为所有核心都被卡在固定许可中,而与它们正在执行的指令的类型无关。
40.根据本文公开的实施例的方面,提供了一种解决方案,该解决方案用于通过使得能够在每核心基础上而不是以cpu或系统级别对许可模式进行预授权来缓解该问题。这允许用户使执行时间敏感代码的核心保持处于预授权许可模式,而不会影响系统中的其他核心,从而支持更高的整体性能。此外,可以在运行时期间在每核心基础上动态地(重新)配置核心,并且还可以在每核心基础上动态地调整核心的频率。
41.在一些实施例中,可以响应于对扩展指令(例如,avx3、avx/5g

isa和avx512指令)的检测而自主地配置核心,而基本上没有延迟和抖动。支持每核心许可的能力提高了cpu性能,因为核心可以根据需要更改许可模式,因此可以基于在cpu核心上执行的单独的应用和/或线程的要求来动态地调整频率缩放和功率。
42.在本文的一些实施例中,某些核心被描绘为以avx3/5g

isa许可模式操作。这些avx3指令支持hfni(半浮点新指令)。hfni(也称为fp16(16位浮点)架构)为fp16操作提供了有助于使用fp16数字的完整动态范围的单独的非正规控制。预期fp16上的非正规操作将以接近全速操作。
43.在图1中示出了针对加速器分配支持每插座频率缩放的当前cpu 100与针对加速器分配支持每核心频率缩放的cpu 102的核心频率操作之间的比较。cpu 100包括以支持avx指令的许可模式操作的32个核心104。为了满足cpu tdp规范(在该示例中为185(w)),所有核心104以1.4ghz的频率操作。在最大性能“涡轮模式”下,所有核心104可以以1.9ghz操作。相比之下,如果所有核心均以低功率sse许可模式操作,则基本tdp频率将为1.5ghz,并且最大涡轮模式将为2.4ghz。
44.在由cpu 102提供的针对加速器分配的每核心频率缩放下,八个核心106被配置为以sse模式操作,而24个核心104被配置为以支持avx指令(在本示例中包括avx3/5g

isa指令)的许可模式操作。对于tdp,处理器功率规范为185w,与cpu 100相同。
45.在cpu 102的一方面下,核心被配置有用于所选择的avx指令(包括avx3/5g

isa指令)的一个或多个单独的融合乘加(fma)单元。fma单元也称为isa扩展单元,因为它支持一组一个或多个指令,这些指令包括对在核心的主逻辑电路中提供的一组isa指令的扩展。fma单元的功率状态可以与核心分开地被控制,使得fma单元可以被选择性地置于低功率或空闲功率状态,在该状态下fma单元基本上不消耗功率。因此,对于核心106,fma单元是空闲的(或有效地被禁用),使核心106能够支持x86和sse指令。在一些实施例中,“主”核心电路还可以支持一些avx指令,这些avx指令与在fma单元中实现的其他更高功率的avx指令相比要求更低的功率;这些avx指令称为“轻”avx

light指令。
46.返回到185w tdp规范,这是针对处理器的所有cpu核心消耗的累积功率的功率预算。由于核心106的fma单元空闲或被禁用,因此核心106在给定频率下所消耗的功率低于核心104消耗的功率。这使得cpu 102的核心106和104两者的频率得以增加,同时保持在185w功率预算之内。如下面进一步详细讨论和说明的,不同频率组合可以应用于核心106和104,
并且处于tdp水平或低于tdp水平,或者当在涡轮模式下操作时,处于最大功率水平。为了说明的目的,图1示出了核心106和104两者的基本tdp频率均为1.8ghz,并且核心106的相应涡轮模式频率为2.7ghz,核心104的相应涡轮模式频率为2.6ghz。
47.图2示出了在185w的tdp下cpu 102的32核心(8sse/24avx)配置的核心频率表200,其中y轴上为sse频率,并且x轴上为avx3(avx3/5g

isa的缩写)。具有白色背景的每个sse/avx3频率组合都会导致185w或更低的功耗水平,而具有灰色背景的sse/avx3频率组合会超过185w(因此不能满足185w tdp极限)。如圈出的表条目所示,存在等于或接近185w tdp极限的sse/avx3频率的多种组合。
48.图3示出了在185w的tdp下cpu的32核心(16sse/16avx)配置的核心频率表300。在以粗体轮廓显示的184w强调示例中,基本tdp sse频率为2.1ghz,并且基本avx3/5g

isa频率为1.8ghz。在涡轮模式下,最大sse频率为2.7ghz,并且最大avx3/5g

isa频率为2.3ghz。如前所述,可以使用sse核心和avx核心的不同频率组合来满足185w的tdp功率预算和针对涡轮模式的更高功率水平。
49.图4示出了225w的tdp下cpu的32核心(8sse/24avx)配置的核心频率表400。在以粗体轮廓显示的225w强调示例中,基本tdp sse频率为2.5ghz,并且基本avx3/5g

isa频率为2.3ghz。在涡轮模式下,最大sse频率为3.0ghz,并且最大avx3/5g

isa频率为2.6ghz。sse核心和avx核心的不同频率组合可以用于满足225w的tdp功率预算和针对涡轮模式的更高功率水平。
50.图5示出了225w的tdp下cpu的32核心(16sse/16avx)配置的核心频率表500。在以粗体轮廓显示的225w强调示例中,基本tdp sse频率为2.5ghz,并且基本avx3/5g

isa频率为2.5ghz。在涡轮模式下,最大sse频率为3.0ghz,并且最大avx3/5g

isa频率为2.8ghz。sse核心和avx核心的不同频率组合可以用于满足225w的tdp功率预算和针对涡轮模式的更高功率水平。
51.图6a示出了根据包括单个fma单元的一个实施例的被配置为选择性地作为sse核心或avx核心操作的处理器核心600。处理器核心600包括核心逻辑602、avx2逻辑块604、fma单元606以及fma功率和频率控制逻辑块608。核心逻辑602包括用于在一个实施例中实现诸如x86指令和sse指令之类的核心isa指令的电路。avx2逻辑块604包括用于实现avx2和(可选地)avx指令的电路。fma单元606包括用于实现avx3指令(例如,avx3/5g

isa指令)的电路。fma功率和频率控制逻辑块608用于选择性地控制处理器核心600的频率,并且选择性地控制fma单元606是被启用还是禁用(通过控制fma单元的功率状态)。
52.图6b示出了被配置为支持avx3/5g

isa指令的处理器核心600b。可以通过使fma功率和频率控制逻辑块608激活fma单元606来实现此配置。图6c示出了被配置为作为fma单元606被禁用(即,置于低功率状态或空闲功率状态)的sse核心操作的处理器核心600c。如上面讨论的,当处理器核心600c(sse核心)和处理器核心600b(avx3核心)以相同的频率操作时,处理器核心600c(sse核心)比处理器核心600b(avx3核心)消耗更少的功率。通常,给定的处理器核心可以在处理器引导期间以sse核心配置和avx3核心配置来预配置,也可以在正在进行的运行时处理器操作期间动态地重新配置。
53.图7a示出了根据包括两个fma单元的一个实施例的被配置为选择性地作为sse核心或avx核心操作的处理器核心700。处理器核心700包括核心逻辑702、avx2逻辑块704、fma
单元706

1和706

2以及fma功率和频率控制逻辑块708。在一个实施例中,核心逻辑702包括用于实现诸如x86指令和sse指令之类的核心isa指令的电路。avx2逻辑块704包括用于实现avx2和(可选地)avx指令的电路。fma单元706

1和706

2包括用于实现avx3指令(例如,avx3/5g

isa和avx512指令)的电路。fma功率和频率控制逻辑块708用于选择性地控制处理器核心700的频率,并且选择性地控制fma单元706

1和706

2是被启用还是禁用(通过控制fma单元的功率状态)。
54.图7b示出了被配置为支持avx3/5g

isa指令的处理器核心700b。可以通过使fma功率和频率控制逻辑块708激活fma单元706

1和706

2来实现此配置。图7c示出了被配置为作为fma单元706

1和706

2被禁用(即,置于低功率状态或空闲功率状态)的sse核心操作的处理器核心700c。如上面讨论的,当处理器核心700c(sse核心)和处理器核心700b(avx3核心)以相同的频率操作时,处理器核心700c(sse核心)比处理器核心700b(avx3核心)消耗更少的功率。通常,给定处理器核心可以在处理器引导期间以sse核心配置和avx3核心配置来预配置,也可以在正在进行的运行时处理器操作期间动态地重新配置。
55.自主配置
56.在一些实施例中,全部核心或核心的一部分可以被自主地配置为启用和禁用一个或多个fma单元。在图8的流程图800中示出了由一个实施例实现的操作和逻辑。该过程在起始框802中开始,在框802中核心被配置并且以sse许可模式执行。核心使用其核心电路执行指令的线程,如框804中描绘的。结合指令线程中的指令执行,如判定框806所描绘的,可能会遇到扩展指令。扩展指令是isa在电路的核心块中不支持的任何指令(例如,avx3、avx5g

isa、avx512或在fma单元或其他isa扩展单元中实现的任何其他指令)。
57.响应于检测到扩展指令,如框808所示,核心动态地切换到avx许可模式。这启用/激活多个fma单元中的一个fma单元的电路(如适用)。在一个实施例中,激活fma单元的延迟处于几微秒的量级。在可选框810中,调整核心的频率。例如,核心频率可以向下调整。在框812中,使用fma单元来执行扩展指令。如框814和判定框816所示,核心继续以avx许可模式执行指令,直到发生sse返回事件(即,这样的事件:核心在该事件下要返回到sse许可模式)。例如,在一个实施例中,如果在预定的时间量内没有执行扩展指令,则核心被返回到sse许可模式。
58.具有带有不同指令的多个isa扩展单元的核心
59.在一些实施例中,存在具有带有不同指令的多个isa扩展单元的核心。在一些实施例中,多个isa扩展单元包括:第一fma单元,其支持以第一频率操作的第一组一个或多个指令;以及第二fma单元,其支持以第二频率操作的第二组一个或多个指令。在一些实施例中,第一fma单元和第二fma单元可以独立地被启用和禁用。
60.例如,图9a示出了具有两个fma单元的处理器核心900,其被配置为选择性地以三种许可模式操作:sse、avx2和avx3。处理器核心900包括核心逻辑902、fma单元906

1和906

2以及fma功率和频率控制逻辑块908。在一个实施例中,核心逻辑902包括用于实现诸如x86指令和sse指令之类的核心isa指令的电路。在另一实施例中,核心逻辑902包括还用于实现第一代avx指令的电路。fma单元906

1包括用于实现avx2指令的电路。fma单元906

2包括用于实现avx3指令(例如,avx3/5g

isa和avx512指令)的电路。fma功率和频率控制逻辑块908用于选择性地控制处理器核心900的频率,并且选择性地控制fma单元906

1和906

2是被启
用还是禁用(通过控制fma单元的功率状态)。
61.图9b示出了被配置为作为fma单元906

1和906

2被禁用(即,置于低功率状态或空闲功率状态)的sse核心(即,以sse许可模式)操作的处理器核心900b。图9c示出了被配置为进一步支持avx2指令并且对应于avx2许可模式的处理器核心900c。可以通过使fma功率和频率控制逻辑块908激活fma单元906

1,同时使fma单元906

2不活动来实现此配置。图9d示出了处理器核心900d,其被配置为支持avx3/5g

isa指令(例如,avx3/5g

isa和avx512指令),对应于avx3许可模式。可以通过使fma功率和频率控制逻辑块908激活fma单元906

2,同时使fma单元906

1不活动来实现此配置。图9e示出了处理器核心900e,其fma单元906

1和906

2均被启用以支持avx2、avx3/5g

isa和avx512指令,并且对应于avx2+avx3许可模式。可以通过使fma功率和频率控制逻辑块908激活fma单元906

1和906

2来实现此配置。通常,给定处理器核心可以在处理器引导期间以图9b、9c、9d和9e所示的配置中的任何配置来预配置,也可以在正在进行的运行时处理器操作期间动态地重新配置。
62.图10a、图10b和图10c示出了流程图,该流程图示出了用于在一些许可模式之间转换的操作。如图10a的流程图1000中的框1002所描绘的,核心最初以第一频率1以sse许可模式操作,对应于图9b中的核心900b。为了转换到avx2许可模式(框1008),在框1004中将核心频率降低至频率2,之后在框1006中激活fma单元1。该配置对应于图9c中的核心900c。
63.图10b的流程图1010示出了从sse许可模式到avx3许可模式的转换。该过程在框1012中开始,其中核心以频率1以sse许可模式操作(图9b中的核心900b)。在框1014中,频率从频率1降低至频率3,然后在框1016中激活fma单元2,以获得图9d所示的900d的核心配置和框1018中所描绘的avx3许可模式。
64.图10c的流程图1020示出了从avx2许可模式到avx2+avx3许可模式的转换。该过程在框1022中开始,其中,核心以频率2以avx2许可模式操作(图9c中的核心900c)。在框1024中,频率从频率2降低至频率4,然后在框1026中激活fma单元2,以获得图9e中所示的900e的核心配置,并且如框1028中的avx2+avx3许可模式所描绘的。在核心配置900e下,fma单元1和单元2均被激活。因此,为了保持功耗平衡,频率4小于频率3。
65.从avx2许可模式到sse许可模式的转换需要进行与图10a的流程图1000所示的操作相反的操作,除了在框1006中停用fma单元1,并且在框1004中频率从频率2增加到频率1。类似地,从avx3许可模式到sse许可模式的转换需要进行与图10b的流程图1010所示的操作相反的操作,除了在框1016中停用fma单元2,并且在框1014中频率从频率3增加到频率1。同样,从avx2+avx3许可模式到avx2许可模式的转换需要进行与图10c的流程图1020所示的操作相反的操作,除了在框1026中停用fma单元2,并且在框1024中频率从频率4增加到频率2。
66.在一些实施例中,fma单元包括用于实现高级矩阵扩展(amx)指令的电路。amx指令旨在执行用于机器学习(ml)算法和人工智能(ai)应用的矩阵运算。例如,用于深度学习的ml算法和框架采用多层人工神经元,这样的神经元相互连接形成神经网络(通常称为ann)。用于ann的ml算法采用极高水平的矩阵数学运算,并且amx指令被设计为增强此类算法的性能。
67.例如,图11示出了具有两个fma单元的处理器核心1100,其被配置为选择性地以三种许可模式操作:sse、amx和avx3。处理器核心1100包括核心逻辑1102、可选的avx2逻辑块1104、fma单元1106

1和1106

2以及fma功率和频率控制逻辑块1108。在一个实施例中,核心
逻辑1102包括用于实现诸如x86指令和sse指令之类的核心isa指令的电路。可选的avx2逻辑块1104包括用于实现avx2和(可选地)avx指令的电路。fma单元1106

1包括用于实现amx指令的电路。fma单元1106

2包括用于实现avx3指令(例如,avx3/5g

isa和avx512指令)的电路。fma功率和频率控制逻辑块1108用于选择性地控制处理器核心1100的频率,并且选择性地控制fma单元1106

1和1106

2是被启用还是禁用(通过控制fma单元的功率状态)。
68.以与上文针对处理器核心900描述的方式相类似的方式,fma单元1106

1和1106

2可以单独地被启用(激活)和禁用(停用)。实现处理器核心1100的处理器可以支持自主的每核心配置,以及在每核心基础上的预配置。
69.图12示出了根据上面讨论的实施例的方面的服务器平台1200,该服务器平台1200包括具有多个核心的soc处理器1202,多个核心被配置为支持针对加速器分配的每核心频率缩放。soc 1202包括布置成六行八列的48个分片1204。每个分片1204包括相应的网格站点(mesh stop)1206,其中网格站点在每一行中通过环形互连1208互连,并且在每一列中通过环形互连1210互连。通常,环形互连1208和1210可以被实现为单向环(如所示)或双向环。每个环形互连1208和1210包括许多线(例如,多达1000条),为简单起见,这些线被示为单箭头。环形互连的布线通常在3d空间中使用多层实现,并且所选择的网格站点支持“转向”,在该转向下,使用环形互连路由的数据、信号和/或消息的方向可以改变(例如,从水平方向到垂直方向,反之亦然)。
70.处理器soc 1202包括32个核心1212,每个核心在相应的分片1204上实现,并且与l1和l2高速缓存(如为简单起见由高速缓存1214描绘的)位于同一位置。处理器soc 1202还包括一对存储器控制器1216和1218,每个存储器控制器通过一个或多个存储器通道1222连接到多个dimm(双列直插式存储器模块)1220中的一个。通常,dimm可以是任何当前或将来类型的dimm,例如,ddr4(双倍数据速率,第四代)或ddr5。作为替代或补充,可以使用nvdimm(非易失性dimm),例如但不限于nvdimm。
71.在所示的实施例中,存储器控制器1216和1218在包括12个最后一级高速缓存(llc)1223的行中。llc的数量可以根据处理器设计而变化。在某些架构下,为每个核心分配了聚合的llc(在核心之间共享的单个llc)的相应“切片(slice)”。在其他实施例中,llc的分配或多或少是粒状的。
72.处理器soc 1202还包括一对插座间链路1224和1226,以及六个输入输出(io)分片1228、1229、1230、1231、1232和1233。通常,io分片代表在soc上实现的各种类型的io组件,例如,外围组件互连(pcie)io组件、存储设备io控制器(例如,sata、pcie)、高速接口(例如,dmi(直接介质接口)、低引脚计数(lpc)接口、串行外围接口(spi))等。通常,pcie io分片可以包括pcie根联合体和一个或多个pcie根端口。在一些实施例中,io分片也可以被配置为支持io层次结构(例如但不限于pcie)。
73.如图12进一步所示,io分片1228通过lpc链路连接到固件存储设备1234,而io分片1230通过sata链路连接到诸如固态驱动器(ssd)之类的非易失性存储设备1236或者磁盘或光盘。另外,io接口1233通过pcie链路连接到网络接口控制器(nic)1238,该pcie链路提供了到外部网络1240的接口。
74.当服务器平台1200是多插座平台时,插座间链路1224和1226用于提供与其他soc处理器(未示出)的高速串行接口。在一个实施例中,插座间链路1224和1226实现通用路径
互连(upi)接口,并且soc处理器1202通过upi插座到插座互连而连接到一个或多个其他插座。
75.处理器领域的技术人员将理解,出于说明性目的,简化了soc处理器1202的配置。soc处理器可以包括未示出的附加组件,例如,附加llc分片,以及与功率管理和可管理性有关的组件,仅举几例。另外,由于可以将本文的原理和教导应用于具有任意数量的核心的soc处理器,因此本文附图中示出的32核心和32核心分片的使用仅是示例性的而非限制性的。
76.出于简化和说明目的,在本文中描绘了分片。通常,分片代表相应的ip(知识产权)块或一组相关的ip块或soc组件。例如,分片可以表示处理器核心、处理器核心和l1/l2高速缓存的组合、存储器控制器、io组件等。分片中的每个分片也可以具有一个或多个与其关联的代理(未示出)。
77.每个分片包括相关联的网格站点节点(也称为网格站点),其类似于用于环形互连的环形站点节点。一些实施例可以包括不与任何特定分片相关联的网格站点(未示出),并且这样的网格站点可以用于将附加的消息槽插入到环上,这使得消息能够沿着环在其他网格站点处插入;这些分片通常不与ip块等关联(除了用于插入消息槽的逻辑之外)。图12示出了soc处理器的示例,该示例示出了分片及其相关联的网格站点。
78.核心1212可以被选择性地配置为以在本文描述和示出的许可模式中的任一个来操作(为了简单起见且由于缺乏空间,在图12中抽象了核心1212的描绘)。处理器soc上的功率管理设施(未单独示出)可以用于向每个核心的fma功率和频率控制逻辑块提供控制信号或命令。
79.示例性应用上下文
80.图13示出了应用于包括信号塔1300的电信系统的示例性应用上下文,该信号塔1300具有多个天线1302并且在其底部具有通过高带宽链路1307耦合到数据中心边缘1306的街柜1304。每一个或多个服务器平台1308安装在街柜1304中,并且多个服务器平台1308安装在数据中心边缘1306中。服务器平台1308可以是单插座平台或双插座平台,其中每个插座(即,soc处理器)具有32个核心。在所示的配置下,32个核心中的20

22个核心被配置为以avx3许可模式操作(并且具有其中fma单元706

1和706

2被启用的配置700b),而32个核心中的8

10个核心被配置为sse核心(并且具有其中fma单元706

1和706

2被禁用的配置700c)。
81.在一个实施例中,服务器平台1308运行的flexran软件(一种类型的虚拟ran或vran),该软件为lte和5g nr层1(l1)工作负载加速提供了优化的库和l1/l2流水线。这组库支持前向纠错(fec)、速率匹配、循环冗余校验(crc)、信道估计、mimo检测、波束成形和第三代合作伙伴计划(3gpp)标准中指定的其他适当功能。flexran还设计为与数据平面开发套件(dpdk)无线基带设备库(bbdev)虚拟轮询模式驱动程序(pmd)集成。
82.dpdk在逻辑上将工作负载处理划分为数据平面操作和控制平面操作。对于flexran,数据平面操作包括lte和5g l1(物理层)信号处理。avx3/5g

isa指令包括专门设计用于解决lte和5g l1信号处理的指令,包括上面讨论的hfni指令。在一个实施例中,工作负载在数据平面和控制平面之间分割,使得70

75%的核心用于支持信号处理和/或基带操作,而其余25

30%的核心用于支持控制平面操作。在图13中示出了这种分割,其中20

22个
avx核心用于执行数据平面操作和信号处理,如框1310所描绘的,而8

10个sse核心用于执行控制平面操作。
83.图14和图15示出了根据一个实施例的vran应用上下文的进一步细节。图14中的示图1400描绘了在具有基带单元(bbu)1406并且耦合到移动回程网络1408的信号塔1404中实现的远程无线电单元(rru)1402。rru1402包括数模和模数射频(dac/adc rf)设备,并且被配置为在fft/ifft块1410中实现快速傅里叶变换和快速傅里叶逆变换,并且被配置为实现下行链路和上行链路波束成形1412。bbu使用实现为fpga或asic1414的一个或多个加速器来实现基于硬件的前向纠错(fec),并且在处理器1418上运行软件栈1416。软件栈1416被划分为用于基带处理的l1栈1420以及用于调度和分组处理的l2

rt(实时)栈1422。
84.图15示出了根据一种配置的处理器1416的进一步细节。如图所示,处理器1416包括32个核心,其中12个核心1500以sse许可模式配置,12个核心1502以amx许可模式配置,以及8个核心1504以avx3许可模式配置。核心1502执行包括amx指令的软件以执行amx工作负载1508。核心1504执行包括avx3指令(例如,avx3/5g

isa指令)的软件以执行avx3工作负载,而核心1500执行sse和可选地avx/avx2指令以执行非avmx工作负载1506。图15的右侧还示出了核心1500、1502和1504的示例性基本频率和涡轮模式频率。
85.在一些实施例中,基于工作负载预配置bbu的处理器中的核心。预配置的优点是消除了在许可模式之间切换引起的抖动的可能性;相反,通过执行与工作负载相关联的指令,将所选择的核心预配置为执行工作负载。在移动联网的上下文中,设施用于管理各种分布式设备,例如,bbu。在某些环境中,这些设施包括管理和编排层(mano),该管理和编排层包括运行管理和编排代码的一个或多个服务器。
86.图16示出了流程图1600,该流程图示出了考虑要处理的工作负载而预配置bbu的处理器的示例。该过程在框1602中开始,其中bbu被引导。在一些实施例中,这包括引导系统固件,并且还可以包括在硬件上引导操作系统,而使用裸金属(type

1)管理程序或容器实现的其他实施例将启动适用的软件以支持那些环境。
87.在框1604中,启用通信(例如,bbu与管理实体之间的通信)。在一些实施例中,通信将由在处理器上运行的软件组件(例如,常规联网栈)支持。在其他实施例中,可以支持诸如bbu之类的管理实体之间的带外(oob)通信,在该通信下,使用oob信道来配置处理器核心。
88.在框1606中,核心被(预)配置。如所描绘的,一个或多个工作负载1608被提供给mano 1610,该mano检查(多个)工作负载并确定如何预配置bbu处理器的核心以最佳地执行这些工作负载。(多个)工作负载1608示出了一个或多个所标识的工作负载,或者以其他方式可以标识要在处理器上执行的特定部署程序包,例如,vran程序包。
89.在核心被配置之后,如框1612中描绘的,使用处理器核心来执行(多个)工作负载。作为说明性示例,在一个实施例中,图14和图15中的处理器1416的核心1500、1502和1504被预先配置。
90.本文描述和说明的处理器soc和服务器平台可以用于使用现有和将来的软件应用/库来支持其他类型的工作负载。例如,这样的应用可以非常适合利用这些处理器soc和服务器平台实现:其要求由(可以选择性地启用和禁用的)核心中的单独的单元或电路块中实现的处理器isa指令的一部分提供的工作负载加速。如本文中所使用的,选择性地启用和禁用的核心包括一个或多个isa扩展单元,该isa扩展单元可以是在运行时之前预配置以及
在运行时期间动态配置中的一个或多个。动态配置包括使处理器上的某些实体或组件能够启用和禁用核心以及使核心执行自主配置更改。
91.虽然已经参考特定实现方式描述了一些实施例,但根据一些实施例,其他实现方式是可能的。另外,附图中示出的和/或本文描述的元素或其他特征的布置和/或顺序不一定以所示出和所描述的特定方式进行布置。根据一些实施例,许多其他布置是可能的。
92.在图中所示的每个系统中,在一些情况下,元素可以各自具有相同的附图标记或不同的附图标记,以表明所呈现的元素可以是不同的和/或类似的。然而,元素可能足够灵活以具有不同的实现方式并且与本文所示出或所描述的系统中的一些或全部一起工作。图中所示出的各种元素可以相同或不同。哪一个被称为第一元素并且哪一个被称为第二元素是任意的。
93.在说明书和权利要求书中,可以使用术语“耦合”和“连接”及其派生词。应该理解,这些术语不旨在作为彼此的同义词。而是,在特定实施例中,“连接”可以用于指示两个或更多个元件彼此直接物理或电接触。“耦合”可以意味着两个或更多个元件直接物理或电接触。然而,“耦合”也可以意味着两个或更多个元件彼此不直接接触,但仍然彼此协作或交互。另外,“通信地耦合”意味着使彼此可能直接接触或可能不直接接触的两个或更多个元件能够彼此通信。例如,如果组件a连接到组件b,组件b又连接到组件c,则可以使用组件b作为中间组件将组件a通信地耦合到组件c。
94.实施例是发明的实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意味着结合实施例描述的特定特征、结构或特性包括在至少一些实施例中,但不一定包括在发明的所有实施例中。各处出现“实施例”、“一个实施例”或“一些实施例”不一定都指代同一实施例。
95.并非在本文中描述和示出的所有组件、特征、结构、特性等都需要包括在特定实施例或多个实施例中。例如,如果说明书陈述了“可以”、“可能”、“能够”或“可”包括组件、特征、结构或特性,则不一定要求包括该特定组件、特征、结构或特性。如果说明书或权利要求书提到“一”或“一个”元素,则并不意味着只有一个元素。如果说明书或权利要求提到“附加”元素,则不排除存在多于一个附加元素。
96.如上面讨论的,本文实施例的各种方面可以通过对应的软件和/或固件组件和应用来促进,例如,由嵌入式处理器等执行的软件和/或固件。因此,本发明的实施例可以用作或支持在某种形式的处理器、处理核心或嵌入式逻辑、虚拟机(其在处理器或核心上运行,或以其他方式在非暂时性计算机可读或机器可读存储介质上或其内实施或实现)上执行的软件程序、软件模块、固件和/或分布式软件。非暂时性计算机可读或机器可读存储介质包括用于以机器(例如,计算机)可读形式存储或传输信息的任何机制。例如,非暂时性计算机可读或机器可读存储介质包括以可由计算机或计算机器(例如,计算设备、电子系统等)访问的形式提供(即,存储和/或传输)信息的任何机制,例如,可记录/不可记录介质(例如,只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪速存储器设备等)。内容可以是直接可执行文件(“对象”或“可执行文件”形式)、源代码或差分代码(“增量”或“补丁”代码)。非暂时性计算机可读或机器可读存储介质还可以包括可以从其下载内容的存储装置或数据库。非暂时性计算机可读或机器可读存储介质还可以包括在销售或交付时其上存储有内容的设备或产品。因此,将存储有内容的设备交付或提供内容以供通过通信
介质下载可以被理解为提供包括具有本文描述的这种内容的非暂时性计算机可读或机器可读存储介质的制品。
97.以上本文描述的称为过程、服务器或工具的各种组件可以是用于执行所描述的功能的单元。由本文描述的各种组件执行的操作和功能可以由在处理元件上运行的软件经由嵌入式硬件等或者硬件和软件的任何组合来实现。这些组件可以实现为软件模块、硬件模块、专用硬件(例如,专用硬件、asic、dsp等)、嵌入式控制器、硬连线电路、硬件逻辑等。软件内容(例如,数据、指令、配置信息等)可以经由包括非暂时性计算机可读或机器可读存储介质的制品提供,其提供表示可以被执行的指令的内容。内容可以导致计算机执行本文描述的各种功能/操作。
98.如本文使用的,由术语
“……
中的至少一个”连接的项目列表可以表示所列项目的任何组合。例如,短语“a、b或c中的至少一个”可以表示a;b;c;a和b;a和c;b和c;或a、b和c。
99.对本发明的说明性实施例的以上描述,包括在摘要中描述的内容,并不旨在是穷举性的或将本发明限制于所公开的精确形式。虽然本文为了说明的目的描述了本发明的具体实施例和示例,但是如相关领域技术人员将认识到的,在本发明的范围内的各种等同修改是可能的。
100.根据上面的具体实施方式可以对本发明进行这些修改。所附权利要求书中使用的术语不应被解释为将本发明限制于说明书和附图中公开的具体实施例。相反,本发明的范围完全由所附权利要求书确定,权利要求书应根据所建立的权利要求解释原则来进行解释。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1