服务器不知别内存_INTEL x86服务器体系架构(一)

题跋,为什么要写?

在IT技术圈儿里摸爬滚打了二十余年,也经历了产业的辉煌和沉静,如今我还在坚守着手艺人的清高。呵呵,说实在的,这样真的挺傻。

精力已经不如年轻时,毕竟年龄到了。但同样的,知识和经验也积累到目前这个程度,似乎也有些通达了。即使是圈里再出啥新概念或新产品,摆在眼前,自己琢磨个把月时间,咱也有信心将之盘个通透。

私下里,司内有同事喊我为大神,虽然他们多半是调侃我的学究脾气,但自己总是惶恐,总想着要做个全套的样子。留下些足迹吧,尽量的往大神的路上靠一靠,将来回首,也可以告慰一下自己的心。所以想从这个月开始,起笔写两个系列的技术系列专题,就从这两年接触的小领域开始。
一个系列是intel x86服务器体系架构,基于intel EDS资料,展开从haswell到skylake的前世今生,以及CPU内部结构变化。

自从intel CPU内包括了内存控制器以及直连PCIE等uncore部分,Intel X86的体系特征尤为明显。既然Intel已经规定好了体系结构、定义好了对外接口,那么基于Intel Xeon CPU的服务器品牌厂商也就主要做以下几个方面的工作:

1、服务器散热和供电布局,将体系所包含的一系列的物理部件规划到主板不同的位置。

2、根据市场需求,劈一劈PCIE rootport,或进行PCIE switch扩展。将南桥引出若干SATA接口,USB接口。做好辅助性的外围控制代码定义。

3、实现日志输出接口,实现维护界面等RAS可维护性方面的工作。

最后贴上自己的标签。

既然服务器都要遵从Intel规定好的体系架构,所以若真出了严重硬件问题,归根结底还要探出头去看intel CPU架构里最核心、最底层的,那些五花八门的寄存器,然后依据intel错误处理机制来判断问题原因。当然,如果服务器厂商的研发部门不争气,例如将BMC里的个性化程序写的三天一挂死的这种,就不在本文讨论之列了。呃,类似这类产品bug,真的不能算技术,最多最多只能算"产品特点",而且出了服务器厂商的大门,更是要被当做笑料了。

另一个方面是Linux内核。准备以Linux crash分析为主线,先展开memory 物理地址和程序addr space映射。——主要是这玩意儿既抽象,网上的资料又说的云里雾里,会让没有内核开发经验的人看的云里雾里不知所云。不过说起来也好理解:物理内存就像实实在在存在的大脑,而程序地址空间就如虚拟世界,有限的大约1升容量的“大脑”,却能承载近乎无限的“虚拟世界”,靠的就是地址映射和内存调度。然后,若有精力,再展开与IO相关的FS,DEV,SCSI,PCI,以及层与层之间的BUFF和队列。唉,计算机里无论啥IO逻辑模块都要分层啊:网络七层, FC四层,pci三层。还有上面操作系统的UVFS,UDEV......一个io从头走到尾究竟要走几层啊?

这两个方面,无论对错,都是自己踏踏实实在沙滩上留下的一系列脚印,从无到有,证明自己曾到达过这里。就把这些脚印拓在心中吧,笑看脚下那日复一日的大浪起伏,潮起潮落。嗯,话说到这儿,不由得想起工作中的一个场景:某种型号的服务器,因设备尺寸太糙,引起了板卡间接口互相撞损。然后一堆司内技术大拿用了一周时间起着劲的开会,讨论、分析、深挖最究极层次的原因。嗯,这口活真的太浪。——像这一类的因果,咱也就不摆在桌面上当技术谈了吧,丢人。灯下锅底所谓有投入产出比的问题,估计大部分都是这类丢人丢脸的问题了吧。

下一篇Intel x86服务器正式篇,将从行业背景说起,嗯,届时就从下面三个ppt/图片开始。

1、IT技术的的层次发展

2、传统的IT设备是“宠物”?还是“畜生”?

3、intel 和 Redhat的 troubleshooting 方法论

你可能感兴趣的:(服务器不知别内存)