软硬件融合技术内幕 基础篇 (1) —— 小霸王学习机能当服务器吗?

2022-09-08 17:13:04 浏览数 (1)

在上期,我们研究了鹿晗和黄子韬如何在小霸王学习机里面化身超级战士“魂斗罗”打败外星人,拯救地球,也打开了一段尘封已久的回忆。

话分两头,某军事论坛由于经常故障无法登录,被网友们嘲讽为使用小霸王学习机做服务器。那么,实际上如果真的使用小霸王学习机作为服务器,会怎么样呢?

在不懈的努力之下,方老师的学生小V搞到了一张小霸王学习机的电路图纸,如下图:

贴错图了,是这个图:

这张图太复杂啦,让我们简化一下:

图中的CPU和PPU的作用,在上一期已经进行了解释。CPU和PPU上各挂载了2KB的SRAM(静态RAM,和我们现在常见的DDR DRAM区别以后再讲),分别作为主运行内存和显存。

在CPU的地址总线和数据总线上还挂着ROM,也就是游戏卡里面的黑色芯片。

出于成本考虑,小霸王学习机是没有磁盘系统的,运行的程序烧写在ROM里面。同样,由于降成本的要求,小霸王学习机的系统资源非常紧张,无法运行操作系统 (哪怕是最简单的uC-OS这样的操作系统),系统复位后会从ROM固定的地址读取程序指令开始运行。如果插入的游戏卡上的ROM内容是《魂斗罗》,那么系统运行的就是《魂斗罗》游戏。

此外,小霸王学习机还有键盘和游戏手柄等外部IO设备,用这些设备可以操纵游戏的角色。

我们再对比一下Intel V7服务器的内部框图:

这台服务器的处理器是两块Intel Xeon Scalable 3代 Gold 5318Y,每块处理器有24个物理内核,48个硬件线程 (Hyper-Thread,这个概念会在以后解释)。

每颗Intel Xeon Scalable 3代 CPU有8个DRAM通道,支持DDR4 DRAM标准,每个DRAM通道支持2个DRAM模组(大白话曰:内存条),整机可支持32条内存,总计6TB RAM。

两颗CPU之间的通道叫做UPI(Ultra Path Interconnect),可以让一颗CPU上的指令访问另一颗CPU上挂载的内存或其他PCIE、IO设备(实际上都是通过地址空间访问,这个问题以后会讲到),也就是所谓的跨NUMA访问。

CPU对外设的标准接口叫做PCI-E接口。PCI-E是Peripheral Component Interconnect-Express的缩写,从1992年诞生以来逐渐改进,从并行总线演进为高速串行总线,目前的PCI-E 4.0标准支持单向32GB/s,双向64GB/s的传输。

我们知道,服务器实质上也是一台计算机。按照大前辈冯·诺依曼的理论,计算机除了控制器、运算器(在CPU内部)和存储器(也就是DDR内存)以外,还需要输入输出设备。服务器的输入输出设备有几种:

  1. 系统盘,操作系统程序储存在系统盘中,启动时BIOS从系统盘的0扇区(MBR, Main Boot Record)读取并执行引导程序,引导程序再读取操作系统可执行文件,引导操作系统;
  2. 数据盘,操作系统及应用的数据会利用数据盘进行存储(如TDSQL的索引文件和数据库文件);
  3. 键盘,鼠标,显示器等用户界面设备;
  4. BMC(Baseboard Manager Controller,基板管理控制器),用于对服务器进行远程管理,即使服务器的CPU/RAM等关键部件故障,BMC也可以监控这些组件的状态并上报给远程管理员;

在出现NVMe技术以前,所有的系统盘和数据盘分为两种接口。一种是SATA接口,经过IO Hub(俗称南桥),再经过PCI-E总线,挂载到CPU上,另一种是SAS接口,需要经过HBA控制器,再经过PCI-E总线,挂载到CPU上,如下图所示:

而在NVMe技术出现后,可以直接将SSD固态盘通过PCI-E总线挂在CPU上:

我们在前期也给大家解析过NVMe技术,链接在此:《云存储技术硬核内幕(33) ——旧制度与大革命》

此外,键盘、鼠标和BMC等外设也都挂载在南桥芯片上。

显示器接在哪里呢?

由于Intel Xeon处理器没有集成Intel的核芯GPU,服务器是通过BMC芯片上集成的VGA控制器输出VGA信号的。出于成本考虑,服务器不会自带HDMI等高清显示能力,除非增加相关的GPU卡。

好了,让我们看一看现代的服务器和小霸王学习机的部件对比:

服务器

小霸王学习机

中央处理器(CPU)

XEON 5318Y

理光2A03(6502改)

图形处理器(GPU)

BMC芯片内置

理光2C02

内存

DDR,最大6TB

SRAM,2KB

系统程序存储

SSD盘(SATA或NVMe)

ROM(游戏卡)

外设

键盘,鼠标

键盘,游戏摇杆,射击枪

可见,现代服务器运行程序所依赖的硬件部件,在小霸王学习机里面都是具备的。

那么,小霸王学习机能不能真的充当服务器(如果能忍受缓慢的运行速度)呢?

答案是肯定的。

1936年,著名计算机科学家图灵发表了一篇论文《On Computable Numbers, with an Application to the Entscheidungsproblem》,在论文中提出了一个计算模型——图灵机。只要一台计算机能够实现图灵机的功能,也就是所谓的“图灵完备”的,就能够完成所有的计算任务。

由于小霸王学习机是图灵完备的,因此,它可以运行服务器所需要的指令(只是速度很慢)。

对图灵完备的解释是一个很有意思的话题,请看下期。

0 人点赞