要点综述
英特尔采用了与前代处理器相关的 tick-tock 模式。新一代英特尔® 至强® 处理器可扩展家族(原代号为 Skylake-SP)是一个基于 14 纳米制程技术的“tock”。大规模架构改进在“tock”上执行,而小规模架构改进和芯片微缩在“tick”上执行。
图 1.Tick-Tock 模式。
基于 Purley 平台的英特尔至强处理器可扩展家族是一个全新的微架构,与前代英特尔® 至强® 处理器 E5-2600 v4 产品家族(原代号为Broadwell 微架构)相比,添加了许多全新特性,包括更大的处理器内核数量,更高的内存带宽、非包含高速缓存、英特尔® 高级矢量扩展指令集 512(英特尔® AVX-512)、英特尔® 内存保护扩展(英特尔® MPX)、英特尔® 超级通道互连(英特尔® UPI)和 sub-NUMA 集群。
前代双路和四路处理器家族划分为不同的产品线。英特尔至强处理器可扩展家族采用了与新一代处理器相关的所有处理器模型,这是一个重大变化。英特尔至强处理器可扩展家族的处理器可从双路配置扩展为八路配置。它们具有最卓越的可扩展的可靠性能,各种特性和集成专为满足各种工作负载的需求而设计,是一款精选的英特尔平台。
图 2.处理器模型的品牌名称。
铜级到白金级的所有产品均提供双路英特尔至强处理器可扩展家族配置,黄金级到白金级产品提供四路配置,八路配置仅限于白金级。铜级产品提供的特性最少,随着等级的上升,特性随之增多。白金级产品涵盖所有处理器插槽数量(2 到 8 个),提供全部可用特性。
简介
本文介绍了英特尔至强处理器可扩展家族的全新特性和改进,指导开发人员充分利用这些特性和改进。
英特尔® 至强® 处理器可扩展家族微架构概述
图 3.英特尔® 至强® 处理器可扩展家族微架构的结构图。
基于 Purley 平台的英特尔至强处理器可扩展家族提供最高 28 个内核,和前代 22 核处理器相比,提供了更强大的计算功能。其他的改进包括非包含高速缓存、最后一级高速缓存、更大的 1MB L2 高速缓存、更快的 2666 MHz DDR4 内存、每 CPU 提升至 6 个内存通道、全新的内存保护特性、英特尔® Speed Shift 技术、片上 PMAX 检测、英特尔® Omni-Path 架构(英特尔® OPA)集成结构、互联网广域 RDMA 协议 (iWARP)*、内存带宽分配、英特尔® Virtual RAID on CPU(英特尔® VROC)等。
表 1。英特尔至强处理器可扩展家族、英特尔® 至强® 处理器 E5-2600 和 E7-4600 产品家族对比。
英特尔至强处理器可扩展家族特性概述
接下来,本文将介绍英特尔至强处理器可扩展家族的性能改进、新功能、安全和虚拟化增强特性。
表 2.英特尔至强处理器可扩展家族的新特性和技术。
Skylake Mesh 架构
基于 Grantley 平台的前代英特尔® 至强® 处理器家族(原代号为 Haswell 和 Broadwell)的处理器、内核、最后一级高速缓存 (LLC)、内存控制器、IO 控制器和和插槽间英特尔® 快速通道互联技术(英特尔® QPI)端口通过环形架构连接在一起,近几代英特尔® 多核 CPU 均采用了这种架构。随着 CPU 内核数量的增多,访问延迟变长,每个内核的可用带宽减少。通过将芯片一分为二,采用另一个环来缩短距离、提高带宽,有效缓解了这一状况。
图 4.基于 Grantley 平台环形架构的英特尔® 至强® 处理器 E5-2600 产品家族(原代号为 Broadwell-EP)。
英特尔® 至强® 处理器可扩展家族提供了更多的每处理器内核数量和更高的内存和 I/O 带宽,对片上互联的额外需求将限制环形架构的性能。因此,英特尔至强处理器可扩展家族推出了网格架构,以消除前代环形架构日益严重的延迟和带宽限制。英特尔至强处理器可扩展家族还以模块化、分布式的方式将缓存代理、归属地代理和 IO 子系统模块集成至网格互联,以消除访问这些功能时遇到的瓶颈。每个内核和 LLC 片具有整合的缓存和归属地代理 (CHA),为整个网格的资源提供出色的可扩展性,实现了英特尔® 超级通道互联(英特尔® UPI)高速缓存一致性功能,无需任何热点。
英特尔至强处理器可扩展家族网格架构包含一系列垂直和水平通信路径,以最短的路径实现内核间的遍历(在垂直路径上纠正行,在水平路径上纠正列)。每个 LLC 片上的 CHA 将获取的地址映射至特定的 LLC 存储区、内存控制器或 IO 子系统,并借助网格互联提供到达目的地所需的路由信息。
图 5.英特尔至强处理器可扩展家族网格架构。
除了改善总体的内核至缓存以及内核至内存延迟,我们还计划改善 IO 启动访问的延迟。在前代处理器中,为了访问 LLC、内存或 IO 中的数据,内核或 IO 需要在环内运行,当源和目标不在同一个环上时,需要访问环之间的交换机。在英特尔至强处理器可扩展家族中,内核或 IO 可以在网格内以最短的路径访问 LLC、内存或 IO 中的数据。
英特尔® 超级通道互联(英特尔® UPI)
前代英特尔® 至强® 处理器采用英特尔 QPI,英特尔至强处理器可扩展家族将其替换为英特尔 UPI。英特尔 UPI 是面向可扩展系统的一致性互联,在单个共享地址空间内集成了多个处理器。支持英特尔 UPI 的英特尔至强处理器提供两到三个英特尔 UPI 链路,利用高速、低延迟路径连接至其他英特尔至强处理器的 CPU 插槽。英特尔 UPI 采用基于目录的归属地探听一致性协议,将运行速度提高至高达 10.4 GT/秒,通过 L0p 状态低功耗状态改善能效,借助全新分包格式提升链路上的数据传输效率,改善了协议层,如无需预分配,便可消除英特尔 QPI 的可扩展限制。
图 6.典型的双路配置。
图 7.典型的 4 路环形配置。
图 8.典型的 4 路交叉矩阵配置。
图 9.典型的 8 路配置。
英特尔® 超级通道互联缓存和归属地代理
前代英特尔至强处理器在每个内核实施了一个分布式英特尔 QPI 缓存代理,在每个内存控制器实施了一个集中式英特尔 QPI 归属地代理。英特尔至强处理器可扩展家族实施了整合的 CHA,分布于每个内核和 LLC 存储区,因此,随着内核数量和 LLC 存储区数量的增加,将提供更多的资源。CHA 负责跟踪内核的请求,响应本地和远程代理的探听,以及解决多个处理器的一致性问题。
英特尔 UPI 支持以分布式的方式实施归属地代理,无需预分配资源。分布式归属地代理逻辑上仍是单个英特尔 UPI 代理,在不同的 CHA 上交叉地址,因此,无论使用了多少个内核、内存控制器或采用了何种 sub-NUMA 集群模式,可见的英特尔 UPI 节点数量始终为 1。每个 CHA 实施一个聚合 CHA 功能片段,负责映射至该片段的部分地址空间。
sub-NUMA 集群
sub-NUMA 集群 (SNC) 类似于与 Haswell 组合推出的片上集群 (COD) 特性,两者之间也存在一些差异。SNC 将本地内存控制器的地址映射至与该内存控制器相近的 LLC 片的二分之一,将映射至另一个内存控制器的地址映射至另一半 LLC 片,从而在一个处理器中创建两个本地化域。通过地址映射机制,相比映射至其他 SNC 域的地址的访问,在 SNC 域上内核运行的程序(使用位于相同 SNC 域的内存控制器的内存)降低了 LLC 和内存延迟。
不同于高速缓存行在每个集群的 LLC 上进行复制的 COD 机制,SNC 为 LLC 中每个地址分配独特的位置,不会在 LLC 存储区内复制。每个 SNC 域 的 LLC 地址本地化仅适用于在同一个插槽内映射至内存控制器的地址。映射至远程插槽内存的所有地址均匀分布在所有 LLC 存储区内,不受 SNC 模式的限制。因此,即使在 SNC 模式中,每个内核都可以使用插槽上的所有 LLC 容量,CPUID 报告的 LLC 容量不受 SNC 模式的影响。
图 10 显示包含 SNC 域 0 和 1、相关内核、LLC 和内存控制器的双集群配置。每个 SNC 域包含插槽上二分之一的服务器、二分之一的 LLC 域、一个支持 3 通道 DDR4 内存的内存控制器。借助常用的 NUMA 关联参数在操作系统内显示域内内核、LLC 和内存的关联,调度任务或分配内存时 SNC 域将被考虑在内,以实现最佳性能。
SNC 要求内存不能以精细的方式在内存控制器内交叉。此外,需通过 BIOS 启用 SNC 模式,显示每插槽上的两个 SNC 域,设置资源关联和延迟参数,以供 NUMA 基元使用。
图 10.sub-NUMA 集群域。
基于目录的一致性
前代英特尔至强处理器支持 4 种探听模式(无探听、早期探听、归属地探听和目录模式),而英特尔至强处理器可扩展家族仅支持目录模式。高速缓存结构变为非包含 LLC 后,根据高速缓存行在高速缓存结构中位置的不同,探听模式的延迟将变长。随着内存带宽的增加,插槽间英特尔 UPI 带宽变得尤为稀缺,如果不必要的探听被发送至远程插槽,UPI 带宽成为影响系统性能的瓶颈。因此,相比前代英特尔至强处理器,英特尔至强处理器可扩展家族中各种探听模式的优化方法不同,复杂的多种探听模式没有带来任何优势。
英特尔至强处理器可扩展家族保留了前代处理器的部分一致性优化,并添加了新的优化,以降低有效内存延迟。例如,英特尔至强处理器可扩展家族不仅继续支持某些目录高速缓存优化,如 IO 目录高速缓存和 HitME 高速缓存,还对其进行了加强。仍支持随机广播特性,但是仅限在写入本地内存时使用该特性,以避免目录查找引发内存访问。
对于 IO 目录高速缓存 (IODC),英特尔至强处理器可扩展家族为远程插槽的 IO 写入高速缓存目录状态提供每 CHA 8 条目目录高速缓存。为了将更新数据存入内存或归属地插槽 LLC,IO 写入通常需要多个交易,回写后使所有高速缓存代理的高速缓存行失效。目录信息存储在内存后,检索和更新目录状态需要多个访问。IODC 将目录信息缓存在 IODC 结构中,以减少 IO 写入对内存的访问。
HitME 高速缓存用于缓存目录信息,加快高速缓存到高速缓存传输的速度,是 CHA 提供的另一个功能。借助 CHA 的分布式归属地代理架构,HitME 高速缓存资源随着 CHA 数量的增加而扩展。
随机探听广播 (OSB) 是从前代处理器沿袭至英特尔至强处理器可扩展家族的另一大特性。当英特尔 UPI 链路处于负载较轻的状态时,OSB 广播开始探听,以避免目录查找内存,降低内存带宽。在英特尔至强处理器可扩展家族中,OSB 仅用于本地 InvItoE(由内核或 IO 的整行写入生成)请求,原因是该操作无需数据读取。避免目录查找能直接影响内存带宽。
高速缓存结构的变化
图 11.各代处理器的高速缓存对比。
前代处理器的中级高速缓存为每内核 256 KB,最后一级高速缓存为每内核 2.5 MB 共享包含式高速缓存。英特尔至强处理器可扩展家族对高速缓存结构进行了调整,提供更大的每内核 1 MB MLC 和更小的每内核 1.375 MB 共享非包含 LLC。MLC 越大,命中率越高,可降低有效内存延迟以及对网格互联与 LLC 的要求。相比包含式高速缓存,非包含 LLC 提高了片上高速缓存的总体有效利用率。
如果英特尔至强处理器可扩展家族的内核丢失了所有级别的高速缓存,将获取内存中的高速缓存行,然后直接存入该内核的 MLC,前代产品则需将副本存入 MLC 和 LLC。需要重新利用的高速缓存行从 MLC 中清除后,将被置于 LLC。
鉴于 LLC 的非包含属性,LLC 中高速缓存行的缺失并不代表它不存在于某个内核的专有高速缓存内。因此,当高速缓存行未被分配至 LLC 时,借助探听过滤器在内核的 L1 或 MLC 中进行追踪。而在前代 CPU 中,此任务由共享 LLC 处理。
我们在不同的内核上运行了各种应用后发现,尽管英特尔至强处理器可扩展家族对高速缓存结构进行了调整,但每内核有效高速缓存和前代产品大致相同。基于 LLC 的非包含特性,对于在单个内核上运行的应用,其有效高速缓存容量是 MLC 高速缓存容量和部分 LLC 高速缓存容量之和。在其他应用场景中,如在多个内核上运行的、共享代码和数据的多线程应用,或仅使用插槽上部分内核的应用,应用的有效高速缓存容量可能与前代 CPU 有所不同。在某些情况下,应用开发人员可能需要利用英特尔至强处理器可扩展家族的现有高速缓存结构调整代码,优化应用。
页面保护密钥
由于存在遗失写入,复杂的多线程应用面临内存破坏问题。例如,所有数据库应用代码并非都需要同样的权限级别。日志写入进程应拥有日志缓冲区的写入权限,但在其他页面应仅有读取权限。同样,如果某个应用包含与关键数据结构相关的生产者线程和消费者线程,在特定页面,生产者线程将拥有消费者线程不具备的额外权限。
基于页面的内存保护机制可强化应用。但是,页表变化需关闭转换后备缓冲区 (TLB),引起 TLB 缺失,对性能产生不利影响。保护密钥授权或撤销用户级访问许可,无需更改页表。
保护密钥为用户页面提供 16 个域,利用页表叶片节点(如 PTE)的位 62:59 确定保护域 (PKEY)。每个保护域包含两个权限位,位于名为 PKRU 的全新线程专有寄存器。在存储器中,页表查找用于确定存储器的保护域 (PKEY),PKRU 寄存器内容用于确定相应的保护域许可,查看是否已授权访问和写入许可。在保护密钥和传统页面许可的共同允许下才能授权访问。保护密钥错误被报告为带有新页面错误代码位的页面错误。保护密钥不会影响管理页面,但是管理程序访问用户页面需经过校验,校验方式和用户访问相同。
图 12.利用保护密钥访问内存数据的结构图。
启用保护密钥前,需要获得虚拟机管理器、操作系统和编译器的支持。由于该特性是对内存管理架构的扩展,使用该特性不会影响性能。
英特尔® 内存保护扩展(英特尔® MPX)
C/C++ 指示器算法是一个简单易用的语言结构,通常用于处理一组数据结构。如果迭代写入操作没有考虑目的地的范畴,相邻内存位置将被损坏。相邻数据的意外改变被称为缓冲区溢出。缓冲区溢出以被利用、继而引发拒绝服务 (DoS) 攻击和系统崩溃而著称。同样,不可控读取将泄漏加密密钥和密码。更为恶意的攻击通过修改代码执行路径,如堆栈帧中的返回地址,执行恶意代码或脚本,用户或系统管理员很难在第一时间察觉恶意攻击。
英特尔病毒防护技术和其他厂商提供的类似硬件特性有效阻止了缓冲区溢出攻击,避免执行被重新定向为以数据形式存储的恶意代码。英特尔® MPX 技术包括全新英特尔® 架构指令和寄存器,编译器可利用寄存器在使用之前检查指示器的运行时范畴。这项新硬件技术受编译器的支持。
图 13.全新英特尔® 内存保护扩展指令和它们对内存的影响。
如欲获取更多信息,请查看英特尔® 内存保护指令启动指南。
基于模式的执行 (MBE) 控制
MBE 提供精细的执行许可控制,帮助保护系统代码的完整性,使其免受恶意更改。还对扩展页表 (EPT) 进行其他修改,将执行启用 (X) 权限位变为两个选项:
- XU 用于用户页面
- XS 用于管理页面
CPU 根据客户机页面的许可选择一个选项,如果页面不支持其写入与执行管理程序,保持不变。管理程序能更可靠地验证与加强内核级代码的完整性,这是该特性的一大优势。XU/XS 位的值由管理程序提供,因此管理程序支持是必不可少的。
英特尔® 高级矢量扩展指令集 512(英特尔® AVX-512)
图 14.各代英特尔® 高级矢量扩展指令集技术概述。
英特尔® 高级矢量扩展指令集 512(英特尔® AVX-512)最初与英特尔® 至强融核™ 处理器产品线(前代号为 Knights Landing)一同推出。某些英特尔 AVX-512 指令组(AVX512CD 和 AVX512F)通用于英特尔® 至强融核™ 处理器产品线和英特尔至强处理器可扩展家族。英特尔至强处理器可扩展家族推出了全新英特尔 AVX-512 指令组(AVX512BW 和 AVX512DQ)和新功能 (AVX512VL),进一步扩展了该项技术的优势。AVX512DQ 指令组面向高性能计算 (HPC) 工作负载添加了全新特性,涵盖了石油和天然气、地震建模、金融服务业、分子动力学、光线跟踪、双精度矩阵乘法、快速傅立叶变换与卷积以及 RSA 加密。AVX512BW 指令组支持字节/字操作,为企业应用、媒体应用和 HPC 带来重要优势。AVX512VL 是一个与矢量长度正交性相关的特性,而非指令组。
前代处理器 Broadwell 提供最高每内核两个浮点 FMA(融合乘加),英特尔至强处理器可扩展家族提供相同的优势。由于英特尔至强处理器可扩展家族上的 FMA 由 256 位扩展至 512 位,因此可扩展家族可处理的单元数量是 Broadwell 的两倍。
图 15.各代英特尔® 高级矢量扩展指令集技术的特性。
英特尔 AVX-512 指令集为软件开发人员提供最高等级的支持,指令设计的丰富程度达到前所未有的水平,包括封包浮点数据或封包整数数据上的 512 位操作、嵌入式舍入控制(撤销全球设置)、嵌入式广播、嵌入式浮点故障抑制、嵌入式内存故障抑制、额外的集中/分散支持、高速数学指令和高位移值的紧凑表示。下文详细介绍了英特尔 AVX-512 的几个特性。
AVX512DQ
由 AVX512DQ CPUID 标签表示的双字和四字指令,有助于增强整数和浮点操作,包含在 512 位矢量(16 个 32 位单元或 8 个 64 位单元)上运行的其他指令。某些指令提供新功能,如将浮点数字转换为 64 位整数。其他指令改善现有的指令,如通过 vxorps 指令使用 512 位寄存器。
AVX512BW
由 AVX512BW CPUID 标签表示的字节和字指令,有助于增强整数操作,扩展写入掩码和零掩码,使其支持更小的单位。由于 512 位矢量寄存器能容纳最多 16 个 32 位单元,因此,原始英特尔 AVX-512 基础指令支持矢量单位为 32 或 64 位的掩码,16 位写入掩码即可满足需求。
由于 512 位矢量寄存器能容纳 64 个 8 位单元或 32 个 16 位单元,由 AVX512BW CPUID 标签表示的指令需要高达 64 位的写入掩码大小。为支持此操作,推出两个全新的掩码类型(_mmask32 和 _mmask64)以及其他可屏蔽内联函数。
AVX512VL
一种名为矢量长度指令的正交功能不仅支持英特尔 AVX-512 指令运行于 512 位单元,还支持其运行于 128 或 256 位单元。矢量长度指令目前适用于多数基础指令和冲突检测指令,以及新字节、字、双字和四字指令。这些英特尔 AVX-512 矢量长度指令由 AVX512VL CPUID 标签表示。矢量长度指令对多数英特尔 AVX-512 操作进行扩展,支持其运行于 XMM(128 位,SSE)寄存器和 YMM(256 位,AVX)寄存器。矢量长度指令还提供 EVEX 编码功能,包括使用屏蔽寄存器和访问寄存器 16..31,不仅适用于 ZMM 寄存器,还适用于 XMM 和 YMM 寄存器。
屏蔽寄存器
在前代英特尔® 高级矢量扩展指令集和英特尔® 高级矢量扩展指令集 2 中,屏蔽位的功能仅限制于负载和存储操作。英特尔 AVX-512 对这一特性进行了大幅扩展,利用 8 个全新的 opmask 寄存器进行条件执行和对目标操作数的高效合并。每个 opmask 寄存器的宽度均为 64 位,标记为 k0–k7。在 8 个 opmask 寄存器中,7 个(k1–k7)寄存器能与 EVEX 编码的英特尔 AVX-512 基础指令结合使用,以提供条件处理,如与只能部分填充寄存器的矢量化剩余结合使用。如需对所有数据元素进行无条件处理,Opmask 寄存器 k0 通常被视作“非掩码”。此外,opmask 寄存器还被用作矢量标记/单元级矢量源,为 VCOMPRESSPS 等指令引入全新的 SIMD 功能。操作系统利用 XSAVE/XRSTOR/XSAVEOPT 指令管理 512 位 SIMD 寄存器和 opmask 寄存器支持。(请查看《64 位和 32 位英特尔® 架构软件开发人员手册》第 2B 卷和《64 位和 32 位英特尔® 架构软件开发人员手册》第 3A 卷)。
图 16.opmask 寄存器 k1 示例。
嵌入式舍入
嵌入式舍入支持为个人操作明确指定浮点舍入模式,提供了额外的数学计算支持,无需修改 MXCSR 控制寄存器中的舍入控制。在前代 SIMD 指令扩展集中,舍入控制一般在 MXCSR 控制寄存器中指定,若干指令通过编码 imm8 操作数内的字段提供每指令舍入撤销。英特尔 AVX-512 提供更灵活的编码属性,以撤销基于 MXCSR 的舍入对包含舍入语义的浮点指令的控制。嵌入 EVEX 前缀的舍入属性被称作静态(每指令)舍入模式或舍入模式撤销。静态舍入还体现了异常抑制 (SAE),如同禁用了所有浮点异常,没有设置任何状态标记。静态舍入为除法和平方根的中间步骤提供了更好的精度控制,同时在最后一步使用缺省 MXCSR 舍入模式。在某些情况下,还有助于确保最低有效位的精度,如三角函数中的范围缩小。
嵌入式广播
嵌入式广播提供位字段,用于面向某些 load-op 指令编码数据广播,如从内存中加载数据并执行计算和数据传输操作的指令。来自内存的源单位可在有效源操作数的所有单位内广播(重复),无需额外的指令。当我们想在矢量指令的所有操作中重复使用相同的标量操作数时,这个方法非常有用。嵌入式广播仅在单位大小为 32 或 64 位的指令上启用,字节或字指令上无法启用。
四字整数算法
四字整数算法消除了对昂贵的软件模拟序列的需要。这些指令包括双字/四字索引的收集/分散和部分执行的指令(k-reg 掩码被用作完成掩码)。
表 3.四字整数算法指令。
数学支持
数学支持旨在协助数学库写入,为金融应用提供优势。可用的数据类型包括 PS、PD、SS、SS.IEEE 除法/平方根格式、DP 超越基元和全新超越支持指令。
表 4.数学支持指令。
全新的置换基元
英特尔 AVX-512 推出全新的置换基元,如带 16/32 条目表查找和超越支持的双来源 shuffle、矩阵转置和一个可变的 VALIGN 模拟。
表 5.双来源 shuffles 指令。
图 17.双来源 shuffles 操作示例。
压缩与反压缩
压缩与反压缩支持条件循环的矢量化。和 FORTRAN 压缩/解压内联函数相似,它也提供内存故障抑制,速度高于收集/分散,还提供了相反的压缩操作功能。下图显示了反压缩操作的示例。
图 18.反压缩指令和示意图。
位操作
英特尔 AVX-512 在掩码和矢量操作数上提供位操作支持,包括矢量旋转。可以利用这些操作处理掩码寄存器和密码算法。
表 6.位操作指令。
通用三元逻辑操作算
通用三元逻辑操作提供模拟 FPGA 单元的方法,是英特尔 AVX-512 的另一大特性。VPTERNLOGD 和 VPTERNLOGQ 指令在双字和四字单元上运行,收集每个输入数据单元的 3 位矢量,形成一套 32/64 索引,其中,3 位值为指令 imm8 字节表示的 8 位查找表提供索引。imm8 字节的 256 种可能值构成了一张 16x16 布尔逻辑表,可以在表内填入简单或复合布尔逻辑表达式。
冲突检测指令
英特尔 AVX-512 推出全新的冲突检测指令,包括 VPCONFLICT 指令和部分支持指令。VPCONFLICT 指令检测索引矢量中曾经存在冲突的元素。它能利用部分元素生成掩码,并确保掩码无冲突。剩下的元素将重新执行计算循环,直到所有索引运行完毕。
表 7.冲突检测指令。
VPCONFLICT{D,Q} zmm1{k1}{z},zmm2/B(mV),逐一对比 ZMM2 中的每个元素,生成确定匹配的掩码,但忽略当前元素左边的“新”元素。
图 19.VPCONFLICT 生成掩码示意图。
为了更好地利用 CDI,借助英特尔® C++ Composer XE 2016 中的英特尔编译器 16.0 版识别潜在的运行时冲突并自动生成 VPCONFLICT 循环
超越支持
为了加快某些超越数学计算的速度,为 VEXP2PD、VEXP2PS、VRCP28xx 和 VRSQRT28xx 指令提供了额外的 512 位指令扩展集,这些指令也被称作英特尔 AVX-512 指数和倒数指令。这些支持将使金融应用受益。
编译器支持
英特尔 C++ Composer XE 2016和 GNU* 编译器套装 (GCC) 5.0(NASM 2.11.08 和 binutils 2.25)中的英特尔编译器 16.0 版对英特尔 AVX-512 进行了优化。表 8 总结了利用英特尔 AVX-512 在英特尔至强处理器可扩展家族微架构上进行优化的编译器参数。
表 8.英特尔至强处理器可扩展家族编译器优化概述。
如欲获取更多信息,请参阅《英特尔® 架构扩展指令集编程参考》
面向虚拟化的时间标记计数器 (TSC) 增强特性
英特尔至强处理器可扩展家族推出全新的 TSC 扩展特性,以协助虚拟机在不同系统间的迁移。在前代英特尔至强处理器中,虚拟机的 TSC 从一个平台迁移到另一个平台时,无法自动调整与弥补服务器频率的差异。除保留前代 CPU 的偏移特性外,英特尔至强处理器可扩展家族还添加了扩展特性,增强了 TSC 的虚拟化支持。如欲获取关于此特性的更多信息,请参阅英特尔® 64 SDM(搜索“TSC 扩展”,如第 3A 卷 24.6.5 部分、25.3 部分和 36.5.2.6 部分)。
英特尔® 资源调配技术(英特尔® RDT)
英特尔® 资源调配技术(英特尔® RDT)是一系列专门用于监控和管理共享资源的技术。请观看《利用英特尔® 资源调配技术优化资源利用率》,该视频详细介绍了英特尔 RDT 的主要原则。英特尔 RDT 现有的特性提供高速缓存监控技术 (CMT)、高速缓存分配技术 (CAT)、内存带宽监控 (MBM)和代码数据优先级 (CDP) 等优势。基于 Purley 平台的英特尔至强处理器可扩展家族推出名为内存带宽分配 (MBA) 的全新特性,该特性旨在提供每线程内存带宽控制。借助该软件,可限制每线程或每内核的内存带宽消耗量。该特性可与 MBM 结合使用,有效隔离噪邻。《64 位和 32 位英特尔® 架构软件开发人员手册 (SDM)》第 3 卷第 17.16 章详细介绍了英特尔 RDT 特性的编程方法。该特性需在操作系统或 VMM 级启用后才能使用,面向 32 位、64 位英特尔®架构和英特尔®架构(英特尔® VT-x)特性的英特尔® 虚拟化技术(英特尔® VT)必须在 BIOS 级启用。如欲获取设置英特尔 VT-x 的指令,请参考您的 OEM BIOS 指南。
内存带宽监控 (MBM)
内存带宽分配 (MBA)
图 20.利用内存带宽监控确定噪邻(内核 0),然后利用内存带宽分配提高内存带宽优先级的概念图。
英特尔® Speed Shift 技术
硬件电源管理 (HWPM) 特性由 Broadwell 推出,借助这个全新的处理器硬件电源管理可选特性,操作系统不再决定处理器频率。HWPM 支持平台提供所有限制的相关信息,有助于硬件选择最佳操作点。硬件可独立运行,利用软件无法使用的信息做出关于 p 状态和 c 状态的优化决定。基于 Purley 平台的英特尔至强处理器可扩展家族扩大了受其影响的状态范围,通过功耗控制单元 (PCU) 提供了更出色的粒度和微架构可观察性,扩展了该特性。运行于 Broadwell 上的 HWPM 处于自动模式,也被称为带外模式 (OOB),不会引起操作系统的注意。英特尔至强处理器可扩展家族也支持该模式,同时提供了 HWPM 和操作系统之间相互协作的选项,也被称作本地模式。操作系统可随时随地直接控制性能和功耗分析的调优,而在其他地方,PCU 可在缺少操作系统限制的情况下自动控制。在本地模式中,英特尔至强处理器可扩展家族能面向传统操作系统优化频率控制,同时为现代操作系统提供全新的应用模式。最终用户可在 BIOS 中设置上述选项;请查看《OEM BIOS 指南》,获取更多信息。支持与本地模式完全集成的现代操作系统包括 Linux* kernel 4.10 及以上版本和 Windows Server* 2016。
PMax 检测
处理器实施的检测电路能提高检测速度,加快对 PMax 级加载事件的响应。之前的 PMax 检测电路位于电源设备 (PSU) 或系统主板,英特尔至强处理器可扩展家族的新检测电路主要位于处理器之上。总体而言,英特尔至强处理器可扩展家族装配的 PMax 检测电路比前代 PMax 检测方法的检测速度更快,响应时间更短。PMax 检测到已超过电源限制时,将降低处理器的功耗。这有助于在 turbo 模式中控制与病毒应用相关的 PMax 高峰,无需等待 PSU 的响应。PMax 加载事件显著缩短了响应时间,并可能节省电源成本。最终用户可在 BIOS 中设置 PMax 检测:详情请参阅《OEM BIOS 指南》。
英特尔® Omni-Path 架构(英特尔® OPA)
英特尔® Omni-Path 架构(英特尔® OPA)是英特尔® 可扩展系统框架的重要组件,为将来的高性能计算 (HPC) 提供强大性能,可扩展至数万个节点,而且与当今的结构相比,价格上极具竞争力。英特尔 OPA 100 系列产品线是一款面向 PCIe* 适配器、芯片、交换机、线缆和管理软件的端到端解决方案。继英特尔® True Scale Fabric之后,这个经过优化的 HPC 结构基于增强的 IP 和英特尔® 技术而构建。
对于软件应用,英特尔 OPA 将借助开源开放架构联盟 (OFA) 软件堆栈发布领先的 Linux 发行版,与现有的英特尔 True Scale Fabric 和 InfiniBand* API 保持一致性与兼容性。英特尔 True Scale Fabric 的用户将通过升级计划迁移至英特尔 OPA。
基于 Purley 平台的英特尔至强处理器可扩展家族通过以下任意一种形式支持英特尔 OPA:利用英特尔® Omni-Path 主机架构接口 100 系列插卡或特定的处理器模型线 (SKL-F),该模型线存在于集成了主机架构接口的英特尔至强处理器可扩展家族中。处理器上的结构整合在主板拥有专用通道,不会影响插卡使用的 PCIe 通道。该架构能实现最高 100 Gb/秒的每服务器插槽速率。
英特尔正与开源社区通力合作,为所有主机组件提供与 Delta Package 发行版共同推出的改进。OSV 正与英特尔开展协作,将更多特性集成至未来的操作系统分发版。使用 PSM 的、面向英特尔 True Scale Fabric 的现有的消息传递接口 (MPI) 程序和 MPI 库将在英特尔 Omni-Path 主机架构接口上正常运行,无需重新编译,尽管重新编译将带来额外的优势。
请访问英特尔下载中心获得软件支持,请访问英特尔® Parallel Studio XE 2017
获得编译器支持
英特尔 QuickAssist 技术
英特尔® QuickAssist 技术(英特尔® QAT)通过将数据卸载至可优化相应功能的硬件,对加密工作负载进行加速与压缩。开发人员可以更轻松地将内置加密加速器集成至网络、存储和安全应用中。在基于 Purley 平台的英特尔至强处理器可扩展家族中,英特尔 QAT 被集成至 Purley 平台上英特尔® C620 系列芯片组(原代号为 Lewisburg)的硬件中,提供 100 Gbs 加密、100Gbs 压缩、100kops RSA 和 2k 解密等卓越功能。以下领域将从该项技术中获益:
- 服务器:安全浏览、电子邮件、搜索、大数据分析 (Hadoop)、安全的多租户、IPsec、SSL/TLS、OpenSSL
- 网络:防火墙、IDS/IPS、VPN、安全路由、网络代理、WAN 优化(IP 压缩)、3G/4G 身份验证
- 存储:实时数据压缩、静态数据压缩、安全存储。
支持以下算法:
- 密码算法:Null、ARC4、AES(密钥大小为 128、192、256)、DES、3DES、Kasumi、Snow3G 和 ZUC
- 支持以下散列/身份验证算法:MD5、SHA1、SHA-2(输出大小为 224、256、384、512)、SHA-3(输出大小仅为 256)、高级加密标准(密钥大小为 128、192、256)、Kasumi、Snow 3G 和 ZUC
- 身份验证加密 (AEAD) 算法:AES (密钥大小为128、192、256)
- 、公共密钥加密算法:RSA、DSA、Diffie-Hellman (DH)、大数字算法、ECDSA、ECDH、EC、SM2 和 EC25519
ZUC 和 SHA-3 是第三代英特尔 QuickAssist 技术的全新算法,英特尔® C620 系列芯片组采用了该技术。
英特尔® 密钥保护技术(英特尔® KPT)是英特尔 QAT 的新补充特性,基于 Purley 平台的英特尔至强处理器可扩展家族(搭载英特尔® C620 系列芯片组)采用了该特性。当加密密钥在平台上存储与使用时,可以借助英特尔 KPT 保护密钥免受平台级软件和硬件的攻击。这个全新的特性注重在运行时应用中保护密钥,已在各种工具、技术和 API 框架中配置。
如欲获取更详细的概述,请参阅面向存储、服务器、网络和基于云的部署的英特尔® QuickAssist 技术。编程和优化指南详见 01 英特尔开源网站。
互联网广域 RDMA 协议 (iWARP)
iWarp 技术支持网卡管理的网络流量忽略内核,降低网络相关的中断对服务器的影响。网卡通过队列对进行通信,直接将流量交付至应用用户空间,实现了上述功能。受网络流量的影响,大型存储块和虚拟机迁移将对 CPU 造成更大负担。此时需要充分发挥 iWARP 的优势。通过使用队列对,了解数据的传输方向,便可以将数据直接放置在应用用户空间。这样做可消除内核空间和用户空间中额外的数据副本,如果没有 iWARP,通常无法避免副本的产生。
如欲了解更多信息,请观看关于如何利用 iWARP 技术加速以太网
的视频
图 21. iWARP 对比结构图。
Purley 平台包含集成式英特尔以太网连接 X722,最多配备 4 个提供 iWARP 支持的 10 GbE/1 Gb 连接。这个新特性能为各个领域带来优势,包括网络功能虚拟化和软件定义基础设施。它还能与数据平面开发套件相结合,通过数据包转发带来更多优势。
iWARP 利用 VERB API(而非传统插槽)进行通信。OFED 为 Linux* OFA 提供 VERB API,而 Windows* 使用 Network Direct API。请联系您的 Linux 分发版厂商,查看其是否支持 OFED verb,由于已提供 Windows 支持,请升级至 Windows Server 2012 R2 或更高版本。
全新的增强型 RAS 特性
基于 Purley 平台的英特尔至强处理器可扩展家族不仅提供全新特性,还增强了与 RAS(可靠性、可用性和可服务性)相关的现有特性和英特尔® 可靠运行技术。英特尔至强处理器可扩展家族提供两个级别的支持:标准 RAS 和高级 RAS。高级 RAS 包含所有标准 RAS 特性以及一些其他特性。
在前代处理器中,根据处理器插槽数量 (2–8) 的不同,RAS 特性受到一定的限制。这一状况已经彻底改变,平台上的双路处理器便可获取所有 RAS 特性,处理器等级(铜级到白金级)越高,特性的功能越强大。下表简要介绍了在前代处理器基础上添加的全新增强型 RAS 特性。
表 9.RAS 特性总结表。
英特尔® Virtual RAID on CPU(英特尔® VROC)
图 22.英特尔® VROC 取代了第三方 raid 卡。
英特尔 VROC 是一个集成了英特尔® Volume Management Device(英特尔® VMD,一项全新的硬件技术)的软件解决方案,旨在面向 NVMe*(非易失性内存总线*)固态盘 (SSD) 提供极具吸引力的混合 RAID 解决方案。CPU 的板载功能加强了与芯片组的密切合作,可快速访问位于平台 PCIe 通道的直接连接的 NVMe 固态盘。实现以上操作的主要特性包括英特尔® 快速存储技术企业版 5.0(英特尔 ® RSTe)、英特尔 VMD 和英特尔 NVMe 驱动程序。
英特尔 RSTe 是一个支持管理 RAID 特性的驱动程序和应用包,已在 Purley 平台上进行了更新(5.0 版),可利用所有新特性。借助 NVMe 驱动程序可避开操作系统设置的限制。这意味着即使操作系统不提供热插入等特性,也可以使用这些特性,驱动程序也可以为第三方厂商生产的 NVMe 非英特尔固态盘提供支持。
英特尔 VMD 是与英特尔至强处理器可扩展家族共同推出的全新技术,主要用于改善高速固态盘的管理。以前,固态盘连接至 SATA 或其他接口类型,可通过软件管理固态盘。当我们为了改善带宽,直接将固态盘连接至 PCIe 接口时,固态盘的软件管理加重了延迟。英特尔 VMD 利用硬件解决这些管理问题,不完全依赖于软件。
英特尔 VROC 提供的主要 RAID 特性包括受保护的回写高速缓存、来自操作系统的隔离存储设备(错误处理)和借助软件日志保护 RAID 5 数据免受 RAID write hole 问题的影响,最后一个特性消除了对备用电池单元的需求。直接连接的 NVMe RAID 卷可启用 RAID,具有热插入和意外移除功能,提供 LED 管理选项、4K 本地 NVMe 固态盘支持和多个管理选项,包括利用网页进行远程访问、预操作系统任务的 UEFI 级交互和操作系统级的 GUI 接口。
启动保护
启动保护对可信平台模块、英特尔® 平台可信技术(英特尔® PTT)等英特尔® 早期固件平台存储设备执行了加密的可信度量根 (RTM),提高了 Purley 平台的保护级别。它还可以利用 OEM 提供的策略对早期固件进行密码验证。不同于英特尔® 可信执行技术(英特尔® TXT),启动保护在出厂时启用,不可禁用,对软件没有任何要求。启动保护和英特尔® TXT 独立运行,但两者兼容。启动保护降低了恶意利用硬件或软件组件的可能性。
图 23.启动保护安全启动选项。
BIOS 保护 2.0
BIOS 保护是对基于芯片组的现有 BIOS 闪存保护功能的增强。Purley 平台添加了容错启动块更新功能。BIOS 闪存可划分为受保护和未受保护两个部分。Purley 帮助明确启用的标记脚本避开顶级交换特性和闪存范围寄存器锁/保护,以促进容错启动块的更新。该特性避免 BIOS 闪存在未经平台制造商授权的情况下或在 BIOS 更新过程中被修改,还有助于保护平台免受低级 DOS 的攻击。
更多详情请参阅面向智能零售设备的英特尔® 基于硬件的安全技术。
图 24.BIOS 保护 2.0 结构图。
英特尔® 处理器跟踪
英特尔® 处理器跟踪(英特尔® PT)是一个令人期待的特性,改善了英特尔至强处理器可扩展家族的支持。由于该特性具有出色的触发和过滤功能,能准确、详细地显示活动跟踪,隔离重要的跟踪,因此,对调试非常有帮助。
英特尔 PT 为各种事件提供环境。性能分析器可以利用英特尔 PT 发现“响应时间”问题的根本原因,该问题是一种影响执行质量(如果不是总运行时)的性能问题。
此外,英特尔 PT 提供了完整的跟踪,支持深入探究执行,例如,简化了循环行为(从进入和退出、特定的后边缘到循环次数)的提取与报告,这在之前是无法实现的。
调试器可利用英特尔 PT 重新构建指向当前位置的代码流,无论它是崩溃点、断点、观测点,还是跳过函数调用后出现的指令。它们甚至支持通过反向步进命令在执行历史记录中进行导航。
调试堆栈损坏是另一个重要应用案例。当调用堆栈被损坏时,正常的帧展开通常发生故障或无法产生可靠的结果。借助英特尔 PT,可基于实际的 CALL 和 RET 指令重新构建堆栈反向跟踪。
操作系统会把英特尔 PT 归为核心文件。由此,调试器不仅能检查崩溃时的项目状态,还能重新构建引起崩溃的控制流。还有可能将该功能扩展至整个系统,用于调试内核错误和其他系统挂起。英特尔 PT 可进行全局跟踪,以便在发生操作系统崩溃时,跟踪被存储为操作系统崩溃转储机制,稍后被用于重新创建故障。
英特尔 PT 有助于缩小多线程操作系统和用户程序代码数字争夺的范围。还可以利用粗略时间指示记录所有线程的执行。虽然准确性不高,无法自动检测数据争夺,但是可以为辅助分析提供充足的信息。
安装英特尔® Vtune™ Amplifier 2017 版后,方可使用英特尔 PT。
如欲了解更多信息,请观看 Beeman Strong 主讲的《借助英特尔处理器跟踪进行调试与精细分析》,参阅 James Reinders 撰写的《处理器跟踪》。
英特尔® 节点管理器
英特尔® 节点管理器(英特尔® NM)是一系列电源管理核心特性,旨在以智能的方式优化和管理数据中心的功耗、散热和计算资源。这种服务器电源管理技术可将组件仪器扩展到平台等级,并可用于充分利用数据中心中消耗的每一瓦功率。首先,英特尔 NM 利用基于标准的带外通信报告重要的平台信息,如功耗、温度和资源利用率。然后提供精细的控制,如帮助减少整体功耗或最大限度提高机架负载,使平台功耗符合 IT 政策的要求。该特性广泛存在于包括英特尔至强处理器可扩展家族在内的各个英特尔产品领域,为数据中心提供一致性。
基于 Purley 平台的英特尔至强处理器可扩展家族搭载了第四代英特尔 NM,后者将控制和报告扩展至前代处理器无法比拟的精细级别。为了使用该特性,必须在服务器管理菜单中启用 BIOS 级的 BMC LAN 和相关的 BMC 用户配置。程序员的参考套件简单易用,无需编译或运行额外的外部库。只需一台 C/C++ 编译器,然后运行配置和编译脚本。
表 10.英特尔节点管理器第四代特性
作者 David Mulnix 是一名软件工程师,在英特尔工作了 20 多年。他的重点关注领域包括软件自动化、服务器功耗和性能分析,他还为服务器效率评级工具TM的开发提供开发支持。
撰稿人: Akhilesh Kumar 和 Elmoustapha Ould-ahmed-vall
资料来源
64 位和 32 位英特尔® 架构软件开发人员手册 (SDM)
Beeman Strong 主讲的《利用英特尔处理器跟踪进行调试与精细分析》
英特尔® 性能计数器监控器(英特尔® PCM) - 测量 CPU 占用率的更好的方法
英特尔® 内存延迟检查器(英特尔® MLC) - 一款用于测量系统中 DRAM 延迟的 Linux* 工具
英特尔® VTune™ Amplifier 2017 提供丰富的性能信息,包括热点、线程、锁、&等待、OpenCL 带宽等,并借助分析器直观展示结果