第14话
去年圣诞节前就把所有学科都学完了,今年开始到毕业就全职留在林肯实验室参与SAGE项目。
刚开始知道SAGE项目还是第一学期艾尔·杰克逊学长提到过的。如今学长已经毕业去了通用电气公司上班,想想时间过得还真快,转眼已经变成了当年的学长。
林肯实验室为了开发SAGE项目,成立了很多个小组。我被分到的是数据传输小组,是组长乔治·米切尔的助理。我们小组主要任务是开发一套可靠的协议,确保从全国各地雷达站和指挥中心之间传递的数据不会因为传输错误而导致致命的判断失误。
组长乔治·米切尔和艾尔学长是同期同学,乔治毕业后选择留在MIT教学和研究。我刚来林肯实验室的时候,乔治没少给我讲SAGE项目的情况:如果把SAGE防空系统当作一个人体,那数据就是血液;计算机是大脑;雷达站是手脚。全国各地的雷达站会将扫描数据集中传送到有计算机的指挥中心,指挥中心处理分析这些数据,判断是否是敌机,并且可以实时将敌机位置显示到雷达显示器上,提供指挥中心参考。
乔治问我你知道我们数据传输组难点在哪吗?我说提升传输速度把,曾经艾尔学长跟我讨论过这个问题。乔治说你跟艾尔挺熟的?我说他原来帮过我不少,我刚去电子研究实验室就是艾尔学长教我怎么维护的飓风计算机。乔治说你也在电子研究实验室待过?我说待过呀,在模拟飞行系统项目组。乔治说我也在电子研究实验室做过项目,当时是约翰·麦卡锡教授负责的编程语言解释器的研究项目。我说难道你参与了FORTRAN语言的开发?乔治说你知道FORTRAN语言?我说听过讲座,但是具体没学过。乔治说怪不得杰伊·福雷斯特教授选择了你来做这个项目,不简单呀。我说没有没有,都是听说过皮毛,没有深入研究过。
乔治说既然你有基础,那我就简单说了,雷达站有着各自不同的硬件和通信模式,因此我们需要设计一套标准化的格式,使它们的信号能够被统一解析。目前要处理的数据包括雷达探测到的目标信息(位置、速度、高度等);拦截指令和任务分配;系统状态和警报信息。这些信息经过调制解调器转换为适合电话线路传输的形式,在雷达站和指挥中心之间传递。为了增加数据传输的可靠性,采用了冗余设计和错误检测机制。冗余你知道什么意思把?
我说知道,是香农教授的通信理论里提到的,为了增加信息传输准确度,将信息长度增加,比如发送一个“OK”,实际上连续发送了三个”OKOKOK”。乔治说没错,香农教授也参与设计了这一套通信格式。我想香农教授怎么安排的时间,怎么哪里都有他的影子。
乔治说SAGE系统的核心——AN/FSQ-7计算机,虽然还是真空管计算机,但相对于飓风计算机,又增加了CRT显示器,和控制台打字机,增强了与人交互能力。该计算机是由MIT设计开发,IBM公司承接制造的大规模商用的计算机。
我说CRT显示器?计算机可以和电视连在一起了?乔治说这个也是SAGE项目的主要成果,目的是可以直观呈现雷达传送过来的数据,和计算出来的飞行路线。如果不是以图形位置的形式展示,计算机只输出数据,那损失了实时性,不能满足实时做决策的核心需求,这个设计应该是当今全球最先进的。我说SAGE系统只有我们这一台AN/FSQ-7计算机?乔治说SAGE系统部署了1个战斗中心和22个指挥中心,每个中心有一台AN/FSQ-7计算机,加上MIT的一台计算机,总共24台AN/FSQ-7计算机,规模之大是前所未有的。
艾尔学长和其他前辈将电话线的传输速度从600比特每秒,优化到了1200比特每秒,这1200比特大概就等于150个字母的长度。但这种速度还是不能满足毫秒级传输数据和计算的要求。于是组长乔治就提出了几个继续优化的方向:压缩数据大小,多条线路并行传输,单条线路同时传输多个数据。
我说压缩数据这个我应该可以做。乔治说嗯?你有想法了?能简单说说思路吗?我说统计数据中出现频率高的字符,用短编码表示;而频率低的字符用长编码表示。这种方法理论上可以减少传输的数据量。
乔治沉思了一会说天才啊小马,我之前尝试通过建立数学模型,将编码问题转化为一个优化问题,然后利用线性规划、非线性规划来求解这个优化问题。但是这种方法非常复杂,当数据量较大时,计算时间会变得非常长。你这种思路如果实现了,又简单,效率还高。
我说没有没有,这是我从《无线电工程师学会会刊》上看到的一片论文。作者也是咱们学校的大卫·霍夫曼博士,论文名字叫《一种构造最小冗余编码的方法》。乔治说还是得靠你们年轻人啊。我说您也不大呀,都当上组长了,年少有为老乔治。乔治说你这是夸我呢,还是夸我呢。
