我飘了,我美了,我得瑟了,今天早上买了两碗豆浆~~~不过我都喝了,还是舍不得倒掉一碗

 因为这几天有个行业大佬帮忙推荐了我的公众号,带来了些朋友关注。小弟受宠若惊,再次感谢贵人相助。正如前面所提,我是希望大家多多转发,一是弥补我的不足,指出我的错误,避免误导大家。二是希望更多的BMC从业人员汇聚起来,壮大这个行业,扩充这个领域。我会一直在这个领域做下去,相信自己还有欠缺之处,还需要大家批评指教。让暴风雨来得更猛烈些吧~~~

 前面两篇聊了BMC软件,本来这次想聊软件厂商呢。不过一下子来了这么多朋友,不拿出点压箱底的东西有点对不住各位。来,先表演个胸口碎大石。如第一篇自我介绍中所提,BMC软件是刚踏入这个行业时候做的,最近几年都是BMC硬件,即BMC芯片。正好也有朋友留言“希望能讲下BMC ARM系统里面的一些功能和使用”,那这次先聊聊BMC芯片,软件厂商放在后面给大家汇报。所以说,大家的留言,我能看到,一定会在后面的文章中答复。

 从广义上讲,BMC是一个SoC系统,它分为BMC芯片和BMC软件两个层面。它不依赖于整机系统上的其他硬件(如CPU、内存、硬盘等)或软件(如BIOS、OS、CPLD等),而是作为一个完全独立的系统存在。之前在讲软件的时候,考虑了需求拆解。就是把客户的需求拆解开,哪些是软件来实现的,哪些是硬件来实现。软件实现的时候对硬件有什么要求。我们用同样的方式来看芯片硬件。

 我在网上找到了这张图,某度搜索“服务器bmc”,在搜索结果的第一页最下面就有这个图。所以这个图是网上找的,绝对不是我公开的。如果相关公司觉得有问题,可以随时和我说,我删除。不过27xx都上官网了,这上市好几年的26xx没那么太保密了吧。

图片

 BMC芯片,本质就是一个SoC芯片。往小里说,类似MCU;往大里说,类似CPU。咱们先看这个图的上半部分:

图片

 做芯片的朋友应该知道,SoC芯片的架构简单来说,就是处理器核、内部片上总线、再加上外围一圈接口模块。所以首先要有个处理器核,图中即为ARM Cortex A7双核。该ARM核的配置为32+32K的L1 cache,256K的L2。同时还配了一个Cortex M3的小核作为协处理器。现在大部分BMC芯片都是使用的ARM核。但随着国产化的呼声越来越大,逐渐有用RISC-V核做BMC芯片的。5年前考虑用RISC-V核的时候,领导觉得生态还不行,没想到现在发展这么快。我都知道好几家用RISC-V做BMC的了。也有大厂在进行软件方面的研究。这以后是个必然趋势。

 图里几个箭头线表示的是片上总线,使用ARM A7核一般都是AXI总线。利用片上总线连接把所有功能模块连接在一起,类似城市间的高速公路。处理器核加片上总线这是运行程序最基本的系统,可以简单认为是BMC软件运行的基础,所以BMC芯片要有这些模块。

 因为BMC运行的程序比较复杂,一般跑操作系统,不同于MCU仅依靠片上的存储空间就能跑起来,所以BMC芯片外面要挂一个内存,现在基本都是DDR4颗粒了。因此芯片里面还要有个DDR接口模块,如上图中的DDR3/4模块。一般这种高速接口分控制器和物理PHY两部分,可以简单理解为一个是管逻辑算法的,一个是管物理接口电气特性的。

 前面提到需求的时候,Web显示之类的都需要网络功能,那BMC芯片要有网口吧。所以上图有个RGMII/RMII。RGMII是千兆网口,是BMC自己独立的网口。RMII是百兆网口,是兼容NCSI接口的,可接主板带内网口的。可能为了前后面板的需求,26xx搞了4个网口,但用的不多,在27xx上又减少了。

 BMC的需求里面有log日志保存,保存到哪里呢?外部Flash是一种介质,还有就是外部的SD卡,SD卡毕竟插拔方便嘛(但会有运输风险)。之前都是考虑SD卡,随着存储的数据变多变快,现在有些大厂对Emmc的需求逐渐提高了。甚至27xx上用到了UFS。不过这种高速接口对于芯片来说都是Money啊。可能有的朋友没概念,等后面找个机会给大家把BMC芯片的成本算一算。

 KVM over IP,这是BMC最重要的需求之一,Keyboard-Video-Mouse。Video就是显卡嘛,PCIe接口,后面会提到。Keyboard和Mouse,键盘鼠标的接口,看看自己PC机就知道了,基本就是USB接口。所以BMC一定要有USB接口。记住这个USB接口的需求是USB device接口,即USB从设备。这个USB作为从设备插到主机上,从主机端看到是键盘鼠标插上了。因为只是接键盘鼠标,协议是USB2.0即可,实际USB1.1就满足HID了。最早的BMC只有USB从设备(device)接口,后来中国台湾的那家公司加上了USB主设备(master)接口。一开始,做整机系统的同事没用到USB master接口,觉得没什么用,没人会在BMC上插个接鼠标键盘。现在系统厂商逐渐都想办法用上这个接口了。如运维啊、其他板卡数据传输啊,都离不开USB master接口。所以我之前说“感觉BMC领域是个乙方决定甲方应用的领域”(有个朋友的留言问这个),感觉大家都是基于BMC芯片已有的接口来增加整机系统的功能。更有甚者,27xx搞了一堆USB3.0 master。唉,这些高速接口都要单独采购IP(芯片领域对独立的、经过验证的、可复用模块称为IP,一段代码或者是一块电路)的,都是百万级的Money。

  明天开会,今晚不能太晚了。以上都是一家之言,如有不对,请批评指正。谢谢各位看官。明晚继续。

更多推荐