图拉丁吧 关注:7,773,836贴子:130,289,041

intel近几代I/O设计变迁深入分析:巨大成本换来的低延迟

取消只看楼主收藏回复

本帖谢绝任何转载,请要脸
图片来自wikichip,文字和分析由终结之谷瀑布桃园群成员大蛤蜊创作@蛤蜊vongolaagg
本人修改整理,并在直播时候根据吧友的提问进行发挥和增加
长文,慢更,建议先读之前读我另一篇精品贴【Ryzen CPU Zen1 Zen + 真实PCI-E通道分配分析】
因为这种分析法似乎是我最近首创,所以不读那个,即便大佬也有些地方看不懂,并且这文章引用了很多那篇的结论
连接在2L的回复中给出

原图传不上来的晶片电镜,镇楼


IP属地:北京1楼2019-05-12 09:14回复
    有问题的话,大家随时问,优质提问我会直接在帖子里说
    长帖,慢更
    另外,申精


    IP属地:北京2楼2019-05-12 09:15
    收起回复
      广告
      立即查看
      近期受瀑布对Zen内部PCIe通道的解析,忍不住想写点什么,那就趁着这波热度,研究一下Intel芯片的内部构造和mesh
      说在前面,本人不是什么内部人员,对CPU的研究也是完全出于个人爱好,所以难免有所错误矛盾,还望大家指出谅解
      最早Intel发布shylake服务器CPU和X299的时候我就一直有一个疑问,为啥这U的三缓是24.75mb这么个奇葩数,小数点后面还能数两位
      吧友们不妨猜一猜


      IP属地:北京5楼2019-05-12 09:18
      收起回复
        首先,我们要知道无论哪个CPU,一缓二缓都是核心自带的
        我们通俗的说,一缓是零钱,二缓是整钱,都在手里,零钱虽少,但是方便不找零
        或者说,每颗核心只能在自己的一缓二缓中读写数据
        而三缓一般就是多个核心共享,就好像你和你老婆共享存款
        首先你要有一个女朋友


        IP属地:北京6楼2019-05-12 09:24
        收起回复
          换句话说,三缓除了和L1和L2一样的作用以外,很大的作用是满足核心与核心之间的交换数据
          所以两个核心,你和你老婆都有这笔存款的密码
          但是你的小金库是藏在鞋底下,她不知道(真的不知道?)
          zen架构AMD的CPU是4个核心共享一个8MB的三级缓存

          zen的基础模块为zp,8核,4+4,现在我们叫CCX
          每个核心有512K的L2,每四个核心共享分8M的L3


          IP属地:北京15楼2019-05-12 09:39
          收起回复

            NUMA这玩意略微高深一点,这里不过多阐述,你们这里暂时理解为一块die
            l1分为l1i和l1d,这图仍然是amd的
            我们必须知道一点:L1\L2\L3缓存都在CPU晶片之中
            这种寸土寸金的地方,要用来做存储,虽然快,但是成本也很高的
            我可以告诉你们,L1\L2\L3占用的面积,比core占用的都不少


            IP属地:北京17楼2019-05-12 09:46
            收起回复
              假设L1成本是100,L2是10,L3是1
              速度同样也是100、10、1的关系
              那我们花100块钱,造出容量比为1:10:100容量大小的L1\2\3
              90%会用到的数据只有1的大小
              99%会用到的数据只有10的大小
              99.9%会用到的数据只有100的大小
              所以L1就能大幅提速,而后预测到接下来用到的数据在L1中没有
              就提前从L2中拷贝,L3同理
              相比于用10000块钱做L1来得到100的容量,我们用300块就得到了类似的效果
              这个其实实常识,具体算式我就不写了


              IP属地:北京21楼2019-05-12 09:52
              收起回复
                而Intel这边,每颗核心都拥有自己的三缓
                只不过每颗核心的三缓被Ring(环)串联起来,这也是为什么Intel的U被称为环形架构

                图中环绕L3的蓝线便是Ring总线
                最左边是核显,最右边是外部IO,中间是8个核心
                与此同时为了减少离system agent(系统代理)较远的核心处理数据效率低下,还在每颗核心上加了一个CMS,用于减少跨核心读取数据的时间
                换句话说,不论是核显、SA还是每个核心,都有专用于连接Ring总线的物理结构CMS


                IP属地:北京26楼2019-05-12 10:18
                收起回复
                  广告
                  立即查看
                  @shyp15
                  @心啴
                  技术贴注定只有少数人能看懂,也只有少数人有时间看,也没啥内涵,回复也不会多,沉贴乃大势所趋,他是它才是贴吧的灵魂。
                  希望得到加精支持,否则确实很难坚持。
                  shyp15似乎很少见到,水婵啥时候成吧主了


                  IP属地:北京29楼2019-05-12 10:22
                  回复(13)
                    注意啊,这里说的是处理(或链接)效率,不是计算效率,理论计算效率每颗核心都是一样的
                    Intel还在shylake这代的服务器U改变了L1 L2 L3直接的交互模式

                    可以看到无论哪代,L1l(一级指令)和L1D(一级数据)和L2都是Non-Inclusive(非包含关系)
                    换句话说,L1L和L1D里面的数据都是不一样的
                    但是Broadwell中L1D\L1L\L2的数据都会存储在L3中
                    所以说shylake这代L1和L2之间的带宽没有变化


                    IP属地:北京32楼2019-05-12 10:27
                    收起回复
                      所以,你们猜为啥会设计成1.375MB,而不是1.5,或者是1.2之类的?=
                      回答正确有神秘奖励哦


                      IP属地:北京38楼2019-05-12 10:56
                      回复(13)

                        我们看到,右边的Skylake设计中,L2和L3的链路变成了两条,于是速度翻倍
                        L2的缓存大小也增加到了1MB,从前是256K
                        之前说过在skylake之前,256kb的L2,实际占用了512kb
                        现在Non-Inclusive时代的skylake,假设晶体设计没变化,L3应该变成了2.5M+256K
                        也就是2.75M,而把他们做一个Raid0呢?速度不就翻倍了,这不就是双链路
                        intel认为L3的速度比容量重要,所以舍弃了一半容量,变成了1.375
                        也就是晶体内部被分为两个镜像,互相拷贝,均有一个对外链路,所以对外速度翻倍


                        IP属地:北京48楼2019-05-12 12:32
                        收起回复
                          简单地说,intel增大了L2的大小,提高了L3的速度,但是减少了L3的大小。
                          理论上因为每颗核心都自带三缓,Intel可以组合任意大小的三缓,只需要增减核心数就行了
                          但是,Intel怎么会耐得住寂寞,就这样呢?
                          上半年Intel悄悄上架了shylake-x refresh
                          其中i9 9820x、9800x和9900x的三缓极为特殊
                          9820x和9900x都是10核,理论三缓应该是13.75MB但实际上,9820x的三缓是16


                          IP属地:北京49楼2019-05-12 12:34
                          收起回复
                            所以说这种帖子图吧没人看吗,沉的飞快
                            回帖的都是群里来的托


                            IP属地:北京50楼2019-05-12 12:37
                            收起回复
                              广告
                              立即查看
                              9820x和9900x都是10核,理论三缓应该是13.75M
                              但实际上,9820x的三缓是16.5M,9900x是19.25M
                              分别是理论上12核和14核的三缓大小
                              所以说,为啥他们的三缓大小不复合他们的架构设计?
                              原因很简答,你吃黄瓜都是从一头开始吃,哪有从中间啃断了变成两根的


                              IP属地:北京54楼2019-05-12 12:43
                              收起回复