系统性计算机—永不死机的计算机


尽管以现代计算机为核心的技术在人类社会的演进中发挥着作用的作用,但与自然体系相比,前者仍然存在着巨大的差异。

传统计算机的工作模式是,从内存取走一条指令然后执行,再将结果放进内存,周而复始,靠程序计数器来控制。这种模式是确定的、同步的、串行的、中心化、精确的,是线性的因果关系,而自然系统却是随机的、异步的、并行的、分布式、模糊的,是循环的因果关系。传统计算机对于数字运算处理很有效,但是却不适合于并发操作。

这种差异使得计算机缺乏自然系统的某些关键优势,比如说适应能力,自修复能力,以及自组织能力。

那么,如果模仿自然界的这种体系组织来构造一种全新的计算机,是不是就可以让它具备这种能力呢?伦敦大学学院的Peter Bentley和Christos Sakellariou就是这样想的。

他们提出的Systemic computation(系统计算),是一种仿生的计算模式,强调的是要对基础元素及环境的相互作用进行整体分析,其核心理念是:

  1. 一切皆是系统
  2. 系统可包含或共享其他嵌套系统
  3. 系统可以转换,但永远不会被摧毁,也不会无中生有
  4. 系统之间的相互作用有可能导致系统根据环境系统进行转换
  5. 所有系统皆可充当环境,并可在某些环境中相互作用
  6. 系统的转换受系统的范围约束
  7. 计算就是转换

在他们按照这种理念构建的计算机当中,数据和功能是不可分离的—数据和处理数据的指令是结合在一起的。比方说这种计算机将外界温度与过热处理连接在一起。然后将结果分配到不同的被称为是“系统”的数字实体上。

每个“系统”都拥有自己的内存,上面存放了与功能相关的数据。根据系统计算的理念,系统只能与相同范围内的其他类似系统互相作用。而这些系统的运行靠的不是传统计算机的程序计数器来控制,其执行次数由随机数字生成器选定,以此来模拟自然的随机性。这些系统之间的执行优先级是一样的,会并发执行指令。系统之间并发、随机地进行相互作用,而系统的相互作用即可产生结果—听起来似乎不可思议,没有控制,随机发生,并行进行,然后一切都秩序井然?没错,这就是约翰•霍兰(John Holland)的《涌现—从混沌到有序》一书的主题。

具备了自然系统属性的计算机自然也拥有自愈、自组织的能力。关键的一点在于,这种计算机在其众多系统中拥有其指令集的多份拷贝。一旦某个系统损坏,计算机就会访问另一份干净的拷贝来修复代码。传统的计算机操作系统一旦无法访问哪怕一点的内存都会崩溃,而系统性计算机则不会这样,因为其独立的系统均自带内存。

这种仿生的计算机具有多种用途:

1) 可充当健壮的、自治的、自修复的、可在恶劣坏境中工作的计算设备。比方说卫星控制器、无人机,或者动态传感器网络。

2) 自适应、体化(embodied)、持续运行的设备。这种设备可以自我修复并适应不同的环境。比方说无论周边软硬件如何变化皆可保持运行的软件;或者可能遭遇无法预见的环境及问题的行星探测器。

3) 对随机、复杂、大规模并行的自然系统或物理交互系统建模。如神经网络、免疫生物学,或者黑洞的形成。

4) 仿生算法的高效快速实现。如遗传算法、发育法则、群体智能、人工免疫系统、神经网络等。

5) 对自然系统的计算分析。如分析信息流、结构性变化、系统转换的复杂性或可演进性等。

当然,这样的计算机不是那么容易造出来的。基于FPGA内置的并行性(现场可编程逻辑门阵列)以及TACM(三态内容寻址存储器)高效匹配能力,他们已经实现了一种大规模并行的非传统计算机结构。现在他们正在教计算机通过机器学习在环境变化时重写自身代码,与实用计算机系统仍有不小的距离。但是,正如将一颗种子放入土壤即可长成参天大树一样,这种计算机的形成自然也应该是由小生大,由简入繁。