fyty8888@163.com

我设想的未来计算机硬件架构

作者:
安徽新天源建设咨询有限公司
最后修订:
2020-07-30 15:03:43

摘要:

目前的计算机硬件结构,是以CPU为中心,以芯片组配合CPU,各种功能卡或者集成或者独立插卡形式组合成的。这种结构存在弊端,就是:

1、各种功能组件是有层次结构的,固定的层次结构难以适应多变的需求,比如普通用户对硬盘传输速度需求不高,而对硬盘传输速度需求高的用户却发现,现有硬盘传输接口速度达不到要求。

2、各种旧的投资在升级硬件后难于再利用,只能抛弃。

3、硬件一部分损坏,除了维修,没有别的办法,难于部分更换。

为此,我提出一个以光传输为中心的分列板卡的硬件结构。这种结构,将计算机硬件各功能部分,拆成一个个标准尺寸的小板,通过光传输联系到一个总控设备上,将各种需要处理的信息,通过光信号在各功能部件间传输。

一、某些需要说明的东西

计算机的各组件应该采取平等的态度对待,具体就是把主板的概念抛弃,用一条统一的光通路链接各组件,而各组件采取小板的形式呈现。每个板子分配一个64位地址,其中高32位为硬件类型,低32位为在机器里的同类型编号。各组件以类似局域网形式链接。

好处就是,比如CPU板,可以任意的添加和异构化组合,比如Intel结构的CPU板只需要更换成AMD结构的CPU 板就使整个机器改换。同样道理,添加CPU板则使机器多CPU化,甚至一个板子上集成多核,使用多个板子则CPU核将依次增加,相当容易。:)而且如果以 后升级CPU,旧的板子不需要拿下,还可以使用。

二、硬件通讯架构

建立一个中心光交换节点S,有设备1、2,每个设备都有输入和输出两条通讯链路与S连接,此时结构图如下。

 

假设1需要传送数据到2,1发送含有地址的数据包到S,S发现目的是2的数据,发送数据到2的输入端,然后进入2。如果目的地址是全1信号,则为广播到所有设备的信号,如果低32位全1,则为广播到所有相同类型设备的信号。

整个数据信号采取光信号形式传送,假设信号为10Gbps,则整个链路的传送速度是很快的,不排除技术进步使信号比特率达到更高速度的可能。可以考虑把每个设备的光传送部分独立为可更换可兼容形式,方便以后的升级。

如果技术的进步达到一定程度,甚至可每链路并行传送多条信号,比如单路输入输出信号10Gbps,因为光信号不会相互干扰,则并行64路信号能轻易达到640Gbps,不过多并行的光信号会遇到同步的问题。

为了使整个系统的速度不会受影响,应该限制系统最大的设备板的数量,当然这个限制可根据机器的用途和总的S交换带宽来规定,比如家用级最大不超过32块,服务器级不超过128块等等。 

三、设备板及其分类

每个设备板的尺寸应该做统一的规定,以方便将来插在统一的接口上和系统连接,系统连接的接口应该是数据传送和电源的统一接口,电源部分应该支持热插拔。板子 上应该存在能自动确定板子地址的电路或者能手动跳线设定地址的电路(某些特殊板子比如CPU、内存板子可考虑能手动更改地址的可能,以方便系统确定优先板 的位置)。

标准尺寸的板子可称为标准板或者全长板,还可以定制半尺寸或者1/4尺寸板子用在小尺寸的设备上比如闪存等。

另外,某些设备需要散热,比如CPU、GPU,需要的厚度很大,我们可以把设备板的厚度规定一定的数值,标准厚度的称为1U板,两个标准厚度的称为2U板,依次类推。需要屏蔽电磁干扰的设备则可覆盖屏蔽金属层。

为了方便连接设备板,对应的机箱内部应该相抽屉一样分成若干层,每层有凹槽和接口两部分组成,设备在用力推入后,能依靠弹力锁定在接口上,并用凹槽支撑。标准的1U板应该是在立式机箱里平行于地面的,如现在的PCI卡一样,方便散热。而厚度大的板子如CPU、硬盘等,可考虑单独于其他设备板,平行于机箱的侧 板放置,甚至如现在的标准3.5寸存储设备的位置可划拨给厚设备板使用。当然,如硬盘等,采取传统的卡式用电缆链接的也可以,不过,每设备都应该联在独立的设备卡上。(本来应该有个图片的,来说明实际机器里板子的物理形态和连接,可惜需要CAD做图,来不及啊,呵呵)

四、传统可称为BIOS的部分

因为所有的硬件都在不同的设备板上,此时统一控制的方法只能放弃,除了系统通讯链路的两端有简单的控制芯片外,每个设备板上都需要自己的单独控制。内存闪存上应该有简单控制芯片,而CPU板上则必须有更复杂的控制。

所以传统的BIOS部分应该分布在了各系统板上,而且在系统运行过程中独立发挥作用。

为了统一系统控制,还应该考虑,在系统通讯链路部分增加一个闪存存储部分,来设定系统参数、存储系统相关信息。这个部分的容量应该能支持很大的数据存储,并且损坏掉后只能影响系统的启动速度,系统没有这个部分,可自我检测运行。当然也要能可廉价更换。

五、核心的CPU

关键的CPU板,除了CPU插槽、CPU之外,应该包括供电部分,数据传输等传统必需的部分,还要包括一个可写的存储单元,此单元在板子上不可写,但可独立 取下(带电情况下),并连接系统的USB部分来更新其中的内容。存储单元的地址在CPU板初始加电后被映射入内存空间,内容是一段程序,支持CPU板正常 的初始化和设置。正常启动后,则不再需要(此时可以取下)。

每个板子能支持多核CPU,每个CPU核都能控制该板,象多个CPU板一样工作。

因为系统里可能存在多个CPU板,且运算能力不同,所以必须存在一个机制来决定哪个板子在系统里起控制作用,这可以制定一个参数,存储在CPU板子里,参数 的大小决定CPU板子的运算能力的大概强度,或者简单的参数大的运算能力大,然后系统启动时,所有CPU板子都广播自己的参数,选举出参数大的做主控CPU板子。

六、存储系统的构成

存储系统比较复杂,目前的技术不能找到一种廉价高速的存储方式,所以还要有昂贵高速的内存和廉价低速的外存。

内存和外存必须区别对待。

对于外存,采取一般的设备板方式对待。需要考虑的是,本文方式下的外存储器最好是带比较大的缓存,方便快速的响应系统的其他设备的高速通讯需求。

对于内存板,考虑到很可能各种技术和形态的内存存在,必须有一种机制规划整个的系

统的内存,可以考虑在CPU板上建立映射机制,把不同的内存板映射到不同的内存空间。具体的映射方式考虑和内存的容量和速度有关。

考虑到可能最终的通讯速度和内存速度不匹配。CPU板最好是带有比较大的三级缓存器,比如64M。 :)

对于一般化的设备,我想比较方便的方式是按照现在的USB设备和系统链接的方式来设计,但是,这种方式的设备支持和设备间通讯的速度应该是没有当前USB系统的种种限制的。如果未来无线的速度能达到很大的数值,可考虑一部分的设备板以无线方式连接到系统。

七、系统启动流程

系统加电后,每块设备板都自我初始化,然后广播自己的设备地址,然后选举出主CPU板。主CPU板接过控制权,将开始各设备的高级的询问和设定,内存板的整合,找到表明为启动设备的板,装入启动代码。期间其他CPU板将开始以多线程类似的方式协助主CPU板工作,甚至可能会开始第二操作系统的启动。 :)

启动过程中遇到的任何错误和导致停机的信号,都会以特殊系统广播的方式在通讯链路里循环广播(可被交换节点S捕捉到,并能显示出来),致命错误会一直广播直到断电。

八、可能遇到的困难

1、可能要重新设计现有的CPU的硬启动流程。

2、多种设备混合通讯,能否做到对主设备板,比如CPU通讯的实时响应。

3、随机加入和退出的设备板,必须以稳妥的方式对待,比如一个CPU板突然坏掉就可能是致命的,特别是如果是主CPU板。

4、电源系统的设计需要重新进行。

5、各设备板必须有一种速度很大并稳定的方式进行通讯,这种方式能以廉价的方法提高速度,目前我认为光通讯比较好。 :)

九、优缺点

优点是扩展容易,管理简单,能有效隔离干扰,对高发热设备能有效的和其他设备隔离,提供好的散热环境,升级也变得极简单。

缺点是可能不好找到廉价的高速光交换手段,现在的硬件设计都要变更,低端软件要重新编写。