英特尔因产品道歉是什么原因?英特尔因产品道歉事件始末( 四 )


令人欣喜的是 , Sunny Cove的架构升级同时包含了通用性能提升和特殊性能提升 。 根据目前英特尔给出的信息来看 , 已经完成了其中几项工作——包括增加缓存容量 , 使得核心更宽、增加了L1带宽等 。 下面本文将分项目来介绍 。
首先来看缓存 , Sunny Cove的核心后端具有48KB L1数据缓存 , 比通常的32KB缓存增大了50% 。 一般来说 , 缓存增加会带来指令未命中率的减少 , 并且呈平方根关系 。 在这种情况下 , 理论上L1数据缓存未命中率会降低22% 。 此外 , Sunny Cove的Core和Xeon版本的L2大小也有增加 , 目前是256KB和1MB , 具体增加多少会在未来公布 。
除了缓存外 , micro-op也就是uOp部分的缓存也较之前的2048-entry有所增加 , 但是没有公布具体数据 。 第二级TLB缓存大小也增加了 , 这将有助于存储更多的最近地址数据 。 一般来说 , 需要保存和存储更多的查找数据时 , TLB的容量就显得比较重要了 。 这说明英特尔发现原有的设计中 , 部分近期地址由于TLB容量不够被删除后又重新提交了需求 , 因此增大TLB有助于降低这种情况发生的概率 , 同时降低延迟并提高性能 。
英特尔还给出了更多架构上的细节改进 。 比如执行端口数量从8增加到了10 , 允许一次从调度指令中获得更多的指令并提交给执行端口 。 端口4到端口9连接循环数据存储后 , 带宽也加倍了 , 同时AGU也翻倍 , 更大的一级指令缓存也能起到一部分作用 。
英特尔因产品道歉是什么原因?英特尔因产品道歉事件始末
文章图片

▲Sunny Cove的架构更深
值得一提的是 , 在之前的Skylake上 , 当所有的3个AGU都开始存取地址时 , 每个时钟周期只能处理一个请求 , 因此存在潜在的性能瓶颈 , 改进后这样的问题将会被缓解 。 重新排序缓冲区的调度 , 现在每个周期可以执行5个指令 , 之前的Skylake只能执行4个 。 不过Skylake的解码器和uOp缓存分别是4到5 , 因此新的架构应该会在前端做一些调整 , 这部分内容还需要英特尔进一步说明 。
英特尔因产品道歉是什么原因?英特尔因产品道歉事件始末
文章图片

▲Sunny Cove的架构宽度大大增加
在执行端口方面 , Skylake和Sunny Cove也存在巨大差异 。 通过对比差异可知 , 英特尔为Sunny Cove的整数部分配备了更多的LEA(有效地址载入)单元以帮助进行内存寻址计算 , 这可能有助于需要频繁访问内存地址的情况下 , 通过内存的安全机制来改善性能损失或者是帮助具有恒定偏移的高性能阵列提高性能 。 乘法单元MUL从Skylake的端口1转移到了Sunny Cove的端口5 , 可能是用于重新平衡计算压力的需求 , 同时还增加了一个整数除法单元—这个变化已经出现在现有产品中 。
英特尔因产品道歉是什么原因?英特尔因产品道歉事件始末
文章图片

▲对比Sunny Cove和Skylake的前端执行部分
目前的Cannon Lake也增加了一个64位的整数除法单元 , 它可以将64位整数除法计算所需要的97个时钟周期时间降低至18个周期 , 因此这里的设计可能是类似目的 。 此外在整数方面 , 端口5的MUL单元目前已经变更为MULHi单元 , 其他的一些架构中 , 这个单元可以将结果的一部分留在寄存器中以供下次使用 , 但是出现在Sunny Cove中还不知道目的是什么 。
说完了整数单元部分 , 再来看看浮点单元方面 。 浮点方面 , Sunny Cove增加了重排序资源 , 因为一些客户要求这样的功能用于消除代码中存在的瓶颈 。 英特尔没有在这里解释FP单元部分有关FMA的功能实现情况 , 但是现有信息显示英特尔设计了AVX-512单元 , 因此FMA单元应该有一个接口用于连接AVX-512单元 。 现有的Cannon Lake只有一个512位的FMA , 可能延续到了Sunny Cove上 。 在更强的 Xeon处理器上 , FMA单元可能是2个 。


推荐阅读