我本想先以linux 内核和crash分析系列开始,但是后来却发现linux 内核的相关内容已经中断了几个月了。若要写这一系列总结,我需要重新系统化的review一遍,又需要一段时间。而最近几个月正好在看intel 寄存器,intel架构的参考资料和学习笔记就在手边,脑子里的相关的思路也比较清晰,所以就想换一下topic,趁着热乎说说X86服务器intel purley架构,就当趁热拿出来黄金万两,爽一下朋友圈。

不要问我公众号的文档是不是原创了——肯定是原创。否则也不好意思发出来,否则也不敢用调侃的语气评论怪现象。

另外公众号内容中有可能引用或涉及了某些上游的文档内容,而这些文档已被标注成confidential,所以这些文档的引用,我无法详细的说明文档名称,只能以简写来标注,见谅。

1 洗脑的方法论

前几个月,我从redhat的一片文档里看到了文档中引用的troubleshooting方法论,很好:

3. 我眼中的Intel x86架构(一)

最近又从intel 相关的文档里又看到了intel的诊断思路方法论,图很好,很好:

3. 我眼中的Intel x86架构(一)

其实intel这副图和上面redhat的图,又是一样一样的。这一部分的内容,本想放到后面 intel skyX cpu 寄存器诊断里作为引言来讲。

在这里先引用一下,首先暗示我是做苦逼售后出身。然后我想说,公众号中的技术内容,都是我自己看资料、自己琢磨出来的(——没办法,某司提供不了底层架构的培训)。从现在到将来,上面的思维导图其实早已融入到了自己的骨子里。自己看资料和琢磨就相当于“信息收集”,而目前所写下的文档,相当于“确定假设”、也就相当于“立”。我一直认为:“假设”是有可能会错的。但确立假设毕竟是认知过程中的里程碑,有了假设,总比一直混沌迷糊、脑中空空要强好多。——正如亚里士多德的好多“假设”,从现在的高度来看都是错的,甚至是可笑的,但是总不能掩盖这些“假设”在那个时代的里程碑意义。

若我周围走在前面的大牛,能发现我的“假设”有错,请指出、并帮我破而再立,跪谢。但着重希望届时大牛们话能说全,不要留个半句故作玄虚,这样会憋死人的。或者我也会在实践中发现之前的错误而破而后立——就如同intel debug方法论中向上反馈的那个箭头(if it is no, Formulate New hypothesis) 。

2 Intel 服务器Xeon cpu的历史

一说到某某产品的体系架构,一般都是从long long ago, 挖祖坟开始。原因无外乎两点,第一点,大家都喜欢听故事,所以一个枯燥的Topic要从讲历史故事开始,才能多吸引一些人气。否则,一开始就开始讲枯燥无味的技术,说到半截,寥寥几个听众却都跑去看钢管舞去了,演讲的人多少有些尴尬。另一点,是为了装逼,显示笔者在圈子里德高望重,字里行间暗示自己是个老不死,呃,老衲是你爸爸的战友……

可是摸着良心说,我真的不能算和x86服务器很相熟。毕竟从前我是搞小机和存储的。就借着之前的高度和相通的一些经验来看待x86 intel架构吧。

我曾经听过司内一些人讲intel 的xeon cpu的发展,我觉得bra bra一通摆活,还不如下面这副图来的痛快:

3. 我眼中的Intel x86架构(一)

上图所谓的 haswell,broadwell,skylake等等就是intel xeon的cpu代号;而Grantley,Purley,whitley 是intel 平台代号;

  • CPU代号,代表着某一代CPU;

  • 平台代号,代表搭配某一代CPU的主板chipset结构;

主板Chipset结构,以PCH的型号为主要代表;比如,Purley平台的PCH是c620外号Lewisburg;Grantley 平台的PCH是c610 外号Wellsburg;

上图后面的红框,明显画的很糙,对,那是我后画的。因为网上论坛有说从skylake 14nm往后,intel 想直接推10nm,结果好像研发制程除了点问题(“晶体管做太小确实会加重量子隧穿效应导致漏电?”——网上的传言不明觉厉),所以临时改了后面的路线图,我根据各种信息补画了后面的图,补充的内容究竟是对错,要看未来产品发展。

另外,CPU的指标里还有很重要的,具体某款cpu的型号,多少核,多少线程,多少Mhz,多少功率;各种平台的指标里还有CPU sock接口类型,多少针等等。这些指标还是查表吧,我背不下来啊。

我接触X86架构的时间点,沾了点Grantley 尾巴,重点是在purley平台。所以后面的内容基本都是基于purley平台+skylake CPU的,偶尔出现一些Grantley平台+haswell的内容,也是为了做个对比。

3 啥叫PCH

PCH全称为Platform Controller Hub。

不知从哪一代开始,intel xeon CPU就将快速IO设备例如内存控制器(IMC)和PCIE root port(IIO root port)等部件集成到了cpu内部,intel称为 cpu uncore modules;——也有人将以上内容说为:目前的intel cpu集成了北桥。

而一些慢速设备,例如sata磁盘接口,usb接口,主板集成网卡等io设备,一股脑的扔给了PCH上。PCH作为中控,直接连接这些慢速设备——所以也有人说PCH就是传统的南桥。(当然PCH本质上也可以认为是多个PCIE Lanes,所以也可以有PCIE root port)。

打个比方,intel CPU就相当于中央朝廷,PCH就相当于安西都护府。皇帝看着顺眼的(速度快的IO)放在朝廷里(CPU uncore部分)任职;皇帝看着不顺眼的(速度慢的IO)就发配到安西都护府(PCH),由安西都护府负责,然后安西都护府定期给朝廷打个报告。而安西都护府和朝廷之间的沟通通道,就是DMI3——相当于PCIE3x4 lanes(以后描述里,就把lanes这个词省了吧,每次写都累)。

当然PCH安西都护府也并不是一直处于边缘地位,要知道biosMe也是连接到PCH上的;BMC(ipmitool)是连接到PCH上的。

(以后若有时间,要将PCH的坑补上,毕竟是26个lanes。)

相关文章:

  • 2021-08-07
  • 2021-08-22
  • 2021-09-05
  • 2022-12-23
  • 2021-06-19
  • 2021-12-14
  • 2021-04-23
猜你喜欢
  • 2021-12-13
  • 2021-08-09
  • 2021-05-13
  • 2021-07-23
  • 2022-01-09
  • 2021-11-23
  • 2021-11-20
相关资源
相似解决方案