intel发布会之前,漫谈CPU核心架构:CCX、Ring Bus、Mesh

https://baijiahao.baidu.com/s?id=1607585351741429318&wfr=spider&for=pc

intel和amd的架构特点

喻拓

发布时间:18-08-0116:41优质原创作者

从Ryzen 开始,CPU的核心数仿佛失去了控制。不到一年,主流的四核心处理器直接被“安排的明明白白”。不久之后,AMD就将发布首款民用级32核处理器,使用改进后的CCX,降低了L3缓存的延迟。而intel即将发布自己的首款消费级8核心处理器,使用Ring Bus架构。

把CPU圈在一起的Ring Bus

Ring Bus这个词很形象,就像一个环形一样,连通各自的CPU和缓存部分,下图就是intel在Xeon E5 V4中的双Ring架构。

Ring架构的提出和硬件设备核心数的增长无不相关,由于核心数的提高,传统的星形结构已经不能满足性能和延迟的要求。

Ring Bus设计了两圈高速总线,将CPU、L3 Cache、外围和其他Ring联系起来。Ring有两种运行方法,一种为顺时针,一种为逆时针。

Ring的设计有很多优点,首先它的延迟极低,带宽极大,运行速度很快,这也是为什么intel的Cache和内存性能比AMD高的原因之一。同时它的设计非常方便,只需要核心排成2个序列,然后其他外围对称挂在两边就可以了。如果需要添加核心,直接挂在Ring上,或者直接再加一个Ring就可以了。

虽然Ring是一个好设计,但伴随Xeon系列核心数的增加,Ring的长度和数量的增加,跨核心访问的延迟将越来越高,每增加一个核心都会拖累Ring的整体延迟,在单边超过6核心时,性能会严重下降,缓存之间也更难以保持其一致性。

虽然intel在低核心产品中保留了Ring,但已经在其skylake-SP产品中更新了全新的架构。

二维棋盘,Mesh

在新的架构下,intel将核心排布为棋盘状,比Ring架构自由的多,并支持连接更多的核心。不过因为架构的原因,其缓存速度较Ring慢,intel自己的说法,会增加10%延迟,但是实现了更低的功耗。intel也在搭载Mesh的skylake - SP中加入了更大的L2缓存。

在Ring架构中,访问其他核心的缓存,最多需要十二个周期,平均时间在六个周期,并且能轻易达到非常高的频率和速度,提高整体表现。而在Mesh中,如果需要访问周围的一个核心的缓存,周期要额外多一个,如果需要跨过DDR4部分则需要三个周期,远远慢于Ring。最上和最下的核心访问需要四个周期,而水平的访问最大则为九个周期,对角的访问是最坏的情况,将消耗十三个周期。

虽然损失了部分核心的延迟,但显然平均延迟基本是一个水平,还能连接更多的核心。相比以前的跨Ring访问和多路跨Die访问依然来的更快些。但对于游戏来说,目前Ring架构,虽然L2变大,命中率提高,但其周期仍然太长,更适合服务器和HEDT平台使用。

高级胶水,CCX和infinity fabric

和intel不同,AMD对于自己的模块化设计,有一番独到的见解。在Ryzen中,AMD将每个模块称之为CCX(core complex),CPU之间互联的部分为infinity fabric总线。

CCX在zen1和zen+中被设计为方形结构,核心位于CCX的四角,L2和L3则被排布到四个核心的正中间,L3大小为8MB,四个核心内部共享,速度同步于最高的核心。同时四个core之间都可以随意和其他core共享通讯,周期极低。

而Ryzen的8核心产品中,不仅仅只有一个CCX,而是两个,核心之间以infinity fabric之间互联。

不过AMD对此的描述含糊其辞,不过其原理基本和intel类似,它是一个高速的总线和缓存接口,不过它可以连接非常多的设备,和Ring一样但是更多,甚至可以用在电源管理控制器和主板接口之间。

infinity fabric的互联是有损失的,在每颗32核心epyc处理器中,使用了4个CCX设计,之间的连接就损失了一些PCIE通道。不过由于其优点,AMD即使因为瑕疵屏蔽对称核心之后,依然能共享对方的8MB大缓存,达成总共16MB的L3。在APU中,AMD使用其连接了vega核显。可以预见的是,在定制市场,infinity fabric将带来更多的精彩,而不是简单作为片上集成。

随着8月的到来,各家的发布会的消息已基本落实。Threadripper二代的32核心,但是由于主板的问题,并不支持epyc上更多的pcie通道和八通道内存。intel将发布自己的9900K消费级八核处理器,据消息来看,是将两颗四核Ring架构处理器连接起来。而nVidia则悄悄发布新的显卡,吹起了新一代游戏体验的号角。

下一个硬件竞赛,即将开始。

[转帖]intel发布会之前,漫谈CPU核心架构:CCX、Ring Bus、Mesh的更多相关文章

  1. [转帖]Intel 上一代 可扩展CPU的简单报价

    8.1万元人间毒物!Intel 28核铂金版Xeon 8180零售上市 http://news.mydrivers.com/1/541/541670.htm 猜你想看:英特尔 CPU处理器 Xeon ...

  2. 【转帖】处理器史话 | 服务器CPU市场的战役, AMD、Intel和ARM的厮杀

    处理器史话 | 服务器CPU市场的战役, AMD.Intel和ARM的厮杀 https://www.eefocus.com/mcu-dsp/377300   说完了个性鲜明的消费类电子,接下来聊一聊通 ...

  3. [转帖]年经贴: ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器?

    ARM将为苹果开发高性能CPU核心 取代笔记本x86处理器? https://www.cnbeta.com/articles/tech/899421.htm . 之前苹果的哥们说过 谁特别在意自己的软 ...

  4. SetThreadAffinityMask windows下绑定线程(进程)到指定的CPU核心

    原帖地址:https://www.cnblogs.com/lvdongjie/p/4476766.html 一个程序指定到单独一个CPU上运行会比不指定CPU运行时快.这中间主要有两个原因:1)CPU ...

  5. 使用GetLogicalProcessorInformation获取逻辑处理器的详细信息(NUMA节点数、物理CPU数、CPU核心数、逻辑CPU数、各级Cache)

    不过必须XP SP3以上才行.所有API大全: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363804(v=vs.85).a ...

  6. windows下绑定线程(进程)到指定的CPU核心

    一个程序指定到单独一个CPU上运行会比不指定CPU运行时快.这中间主要有两个原因:1)CPU切换时损耗的性能.2)Intel的自动降频技术和windows的机制冲突:windows有一个功能是平衡负载 ...

  7. [转帖]Intel为何吊打AMD,先进半导体工艺带来什么?

    Intel为何吊打AMD,先进半导体工艺带来什么? 2016-3-10 15:38  |  作者:Strike   |  关键字:超能课堂,半导体工艺,CPU制程 分享到       按照摩尔定律的发 ...

  8. 关于CPU核心,线程,进程,并发,并行,及java线程之间的关系

    前言:作为一个转行java的小白,一直搞不清楚java中的多线程.于是来梳理一下关于CPU核心,线程,进程,并发,并行,及java线程之间的关系, 1.CPU角度来看: 我们以Intel的Core i ...

  9. 物理CPU数、CPU核心数、进程数

    参考CSDN博客:https://blog.csdn.net/helloworld0906/article/details/90547159 一. 物理cpu数.cpu核数.线程数(逻辑cpu数)的关 ...

随机推荐

  1. BOOTING ELOQUENT MODEL TRAITS

    BOOTING ELOQUENT MODEL TRAITS So I've learnt a little Laravel/Eloquent trick today that is very much ...

  2. 一个轻量级的模态组件,“礼貌地”要求您的用户停止使用过时的IE浏览器

    插件github地址:https://github.com/panteng/ie-blocker 我们在做项目时,会考虑到浏览器的兼容问题,当然做,全浏览器都支持的项目我还没经历过,也不想经历,目前做 ...

  3. javascript数据结构之顺序表

    关于线性表的概念这里就不赘述了,可以自行百度和查阅资料,线性表按照存储(物理)结构分为顺序存储和链式存储,每种存储方式的不同决定了它的实现代码是不同的: 顺序存储的特点就是在内存中选一块连续的地址空间 ...

  4. layer提示带文字

    直接撸代码: //加载层-风格4 layer.msg('加载中', { icon: 16 ,shade: 0.01 });

  5. python_re模块

    正则表达式:http://www.regexlab.com/zh/regref.htm

  6. IDEA2019.1.3的安装和破解

    上一篇文章我有写过我会尝试安装IDEA(这玩意儿收费啊!),倘若尝试成功以后都会用它编译,很幸运,我安装成功了,所以今天这篇文章我来写安装和破解方法. IDEA界面: ​ 首先我们访问官方网站:htt ...

  7. python中with语句的使用

    引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用) ...

  8. python 二进制加法

    bin(int(a,2)+int(b,2))[2:]

  9. LeetCode 复原IP地址(探索字节跳动)

    题目描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135&qu ...

  10. Netty使用(一)

    1.Netty介绍 Netty是一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架: 提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器 ...