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. react-native-page-listview使用方法(自定义FlatList/ListView下拉刷新,上拉加载更多,方便的实现分页)

    react-native-page-listview 对ListView/FlatList的封装,可以很方便的分页加载网络数据,还支持自定义下拉刷新View和上拉加载更多的View.兼容高版本Flat ...

  2. Pytest学习笔记(二) 用例执行规则

    在用pytest执行用例时,可以按照如下场景来执行 1.执行目录及其子目录下的所有用例 pytest filename\ 2.执行某一个py文件下的用例 pytest filename.py 3.-k ...

  3. Java并发指南开篇:Java并发编程学习大纲

    Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容. 这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类.当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中 ...

  4. 2个最好的JavaScript编辑器 必须要知道

    JavaScript程序员有许多很好的工具可供选择,几乎太多了.在这篇文章中,介绍2个最好用的文本编辑器,也是顶级的.并且很好地支持使用JavaScript,HTML5和CSS进行开发,并用Markd ...

  5. 10分钟梳理MySQL核心知识点

    数据库的使用,是开发人员的基本功,对它掌握越清晰越深入,你能做的事情就越多. 做业务,要懂基本的SQL语句:做性能优化,要懂索引,懂引擎:做分库分表,要懂主从,懂读写分离... 今天我们用10分钟,重 ...

  6. 微信小程序之状态管理B

    书接上文哈 咱们定义了个状态管理对象 逻辑应该是这样的 if (json.product.activity.type == "Coin1") { this.activity.coi ...

  7. spring clound gateway 上传文件,中文文件名乱码解决办法

    先说解决办法吧: 有三种解决办法 1 ,zuul官方给出了解决方案,使用/zuul开头的请求可以避免中文名乱码以及支持大文件上传 域名是 testgateway.com  接口是  api/image ...

  8. OpenCL如何获取最小线程并行粒度

    由于OpenCL是为各类处理器设备而打造的开发标准的计算语言.因此跟CUDA不太一样的是,其对设备特征查询的项更上层,而没有提供一些更为底层的特征查询.比如,你用OpenCL的设备查询API只能获取最 ...

  9. rally使用tempest进行测试

    安装 通过Rally进行Tempest测试,执行如下命令创建tempest实例,Rally会自动同步tempest代码至本地: rally verify create-verifier --name ...

  10. Python安装以及简单使用教程

    以windows版本举例: 1.首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载P ...