APP下载

三值光学计算机

2019-07-03金翊王哲河刘玉静欧阳山沈云付彭俊杰

自然杂志 2019年3期
关键词:基元光学处理器

金翊,王哲河,刘玉静,欧阳山,沈云付,彭俊杰

①上海大学 计算机工程与科学工程与科学学院 光学计算机研究中心,上海 200444;②毫米波遥感技术国家级重点实验室,北京 100854

每一个可以上网的手机都有一个通用处理器(central processing unit,CPU)、一个数字信号处理器(digital signal processor,DSP)和一个图形渲染处理器(graphic processing unit,GPU)。现代社会每个人的日常生活几乎离不开电子处理器。用几十万个处理器搭建的超级计算机系统,更是人们解决尖端科学研究和大型工程中的计算问题,对复杂问题进行快速且有效决策的主要工具。显然,各种电子处理器已经成为社会运行、科学研究、工程建设和日常生活的基本保证和必需品。

人类对电子处理器的广泛使用,促使其得以迅猛发展,分化出通用处理器、图像处理器、数字信号处理器和嵌入式处理器等多个种类,而且它们体积越来越小,功耗越来越低,速度越来越快。纵观计算机发展史,人类对计算能力的需求总是在计算机的现有能力上再进一步,而更高的需求又推动计算机发展到更高层面,这种水涨船高、不断提升的发展模式永无止境,必定要将电子计算机推到其物理极限或工艺极限。2005年前后电子通用处理器的速度达到GHz量级,处理器位数到达64位,通过提高主频或位数来提高电子处理器能力的途径走到了终点。鉴于当时没有能力更强的处理器结构,于是处理器改为沿着同构多核、异构多核、减小体积和减少功耗等辅助方向发展,用更多的处理器组建更大规模的超级计算机,迄今,这些并不能有效提高处理器计算能力的研究仍占据着计算机发展的主体。

然而,科学界早已明了电子处理器的发展空间将很快触顶,对各种新型计算机的研究早已开始,且从未停止。几乎所有科学新发现都会唤起人们研发相应计算机的热情,于是基于细胞分裂演变和DNA编码的生物计算机,基于多种量子效应的量子计算机,基于高温超导体的超导计算机,基于细菌光学效应、半导体光强放大器、激光干涉原理、光波导、人造晶格、液晶材料和光偏振态的光学计算机等,不断出现,此起彼伏。在这些繁杂的新型计算机研究中,迄今只有三值光学计算机形成了完整的构造理论和构造技术[1-25],并具有可以稳定长时间运行的原型系统和延续传统方式的编程平台,达到了接续电子处理器向前发展的程度。

三值光学计算机具有处理器位数高达百万,处理器可以任意分割成许多小部分,每个小部分都能独立为一个应用程序服务,每个处理器位的硬件计算功能可以随时重构,其并行加法器在计算任意多位数的数据时都在3个指令周期完成,保持传统编程技术和耗能极少等优势,成为当今接续电子处理器的最好选择。

2017年3月18日23时47分,上海大学光学计算机研究中心的SD16实验机完成了第一个MSD(modified signed-digit representations)数并行加法运算,这一刻就是三值光学处理器的诞生之时,这个实验机也变身为0号原型机(图1)。0号原型机有192个三值光学处理器位,每一位都可以重构成一位任意的三值逻辑运算器,每4n+2位可以重构成一个n位的MSD数并行加法器。

图1 SD16原型机0号机

图2是SD16的2号原型机,它参加了第20届中国国际高新技术成果交易会等多次大型活动。它配有一个三值光学计算机体验系统,用于大众触摸这种新型计算机,已有数百人前来实验室亲身体验三值光学计算机的优秀品性。

图3是用6台SD16合并而成的1 152位三值光学计算机原型,它展现了三值光学处理器的可拼接性ü 用多个小处理器拼成位数更多的大处理器,而不形成复杂的多处理器。

这些原型系统拉开了三值光学计算机大舞台的序幕。向大众介绍这种新型计算机的基本理论、结构特点、应用特征和使用方法,为大众了解和接受这种计算机奠定知识基础是本文的主要目的。

图2 SD16原型机2号机

图3 1 152位SD16原型机

1 计算工具的物理本质

人类掌握计算技能之时,就对计算工具情有独钟。

目前已知的最古老计算工具是流行于中国战国时期(公元前722ü公元前221年)的算筹。当时的算筹多为竹制,长度约9 cm,宽度约0.6 cm,每271根为一束,横断面为三角形或正方形以区分负数和正数,或以黑红两色来区分正数和负数,也有木制、铁制、骨质、玉制和象牙算筹被发现。到东汉(公元25ü220年)时期,人们在算筹基础上发明了更方便和实用的计算工具üü算盘。在电子计算机普及前,算盘曾是商业和金融活动的必备工具,一度成为商贸活动的标志物。算盘的形态繁多,有立体、弧形和圆形等,材质有金、银、玉和木等,尺寸小到戒指大小,大到数米长,其中最常见的为木质方形。随着欧洲工业革命的发展,计算尺被发明出来,很快成为工程技术人员和科学家的心爱之物。在这个时期还有了机械计算机的样品,但没有计算尺使用方便。第二次世界大战中,随着给电报文本加密与破译之间较量的不断升级,机械计算机得到长足发展,也催生了电子计算机萌芽。半导体材料和器件的使用给电子计算机插上了腾飞的翅膀,集成电路制造工艺将电子处理器装进了每一部手机。

纵观琳琅满目的计算工具,它们具有共同的物理本质:用自身稳定且易于改变的物理状态表示信息,通过改变物理状态完成信息变换,当信息变换符合某种计算规则时,改变物理状态的器件就是相应的运算器,改变物理状态的操作就是运算器的工作过程。

算筹是用短棍在平面上方格中的位置和取向表达信息,用手移动短棍来变换信息。信息的变换符合加法运算时,这些算筹及放置算筹的平面方格构成加法器。移动短棍的顺序就是这个加法器的工作过程,这个工作过程可以用一张操作表和操作说明书固定下来,这个 表+说明书就是操作程序。

算盘用穿算珠的辊(称为档)的排位和算珠在档上的位置表达信息,用手拨动算珠来变换信息。信息的变换符合加法运算时,这些算珠和档构成加法器。拨动算珠的顺序就是这个加法器的工作过程,这个工作过程以操作说明书(习惯上称之为珠算口诀)的形式被固定下来,这个说明书就是运算的程序。

计算尺用动尺和定尺的相对位置表达信息,拖曳动尺来变换信息。信息的变换符合某一运算规则时,动尺和定尺就构成相应的运算器。拖曳动尺的顺序就是这个运算器的工作过程,描写拖曳过程的说明书就是程序。

机械计算机用齿轮啮合的相对位置表达信息,转动齿轮来变换信息。信息的变换符合某一运算规则时,齿轮总和就构成相应的运算器。转动齿轮的顺序就是这个运算器的工作过程,描写其操作过程的说明书就是程序。

电子计算机用电线的排序和电线上电平的高和低(对应于电线有电和没电)来表达信息,改变各个电线的电状态来变换信息。信息的变换符合某一运算规则时,电线及其改变电状态的器件总和就构成相应的运算器,改变电状态的操作顺序就是这个运算器的工作过程,描写其操作过程的说明书就是程序。

以此类推,光学计算机应该用光的某些物理状态表达信息,改变这些光状态来变换信息。当信息的变换符合某一运算规则时,改变光状态的器件就构成相应的运算器。操作这些器件的顺序就是这个运算器的工作过程,描写其操作顺序的专用文档就是程序。三值光学计算机正是按照这一规范思路进行研究和开发的。

光的物理状态有光强、波长、相位、传播方向和偏振方向5个主要方面。光强会随着传播距离和经过的光学界面数量而不断衰减,所以用几个光强值表示信息并不可靠,但无光态和有光态是极易分辨、抗衰减能力强、易于改变的两个光状态,适合在计算机中表示信息。波长在传播和经过光学界面时不易发生改变,但变换波长的方法比较繁琐,主要靠特殊材料吸收一种波长的光能量,然后发出另外一个波长的光。要找到合适的波长变换材料比较困难,而且转换过程伴有较大的能量损耗,因此波长不适合在计算机中表达信息。相位是两束相遇光线发生干涉现象的根源,利用干涉现象可以判断两束光线的相位关系,进而完成一些运算,但相位也随光束的传播距离而变,因此它不适合在计算机中表达信息。光的传播方向不会随传播距离而变,且可以用反射镜轻易地改变,因此有人用这种方法构造光学计算机,但操控反射镜含有机械运动过程,这种计算机的速度被制约在几十赫兹,失去了实际意义。光的偏振方向不随传播距离而变,且可以用旋光材料(如液晶、铌酸锂晶体等)轻易地改变,手机屏幕就是利用液晶的受控旋光能力显示出绚丽色彩。目前,高速液晶的旋光工作频率已经接近1 GHz,而铌酸锂晶体的旋光工作频率达到20 GHz。显然,偏振方向适合在计算机中表达信息,虽然判断一束光线的偏振方向比较麻烦,但判断两个偏振方向是否正交很却简单,只需一个固定好的偏振片。从工程易行性考虑,选择偏振方向正交的两个有光态在计算机中表达信息最为合适。

综上所述,适合在计算机中表达信息的光状态有无光态和偏振方向正交的两个有光态,共三个物理状态,于是光学计算机应该是三值计算机,故称之为三值光学计算机。

2 三值逻辑及其规范名称

随着电子计算机渗透到生活的各个角落,人们对二值逻辑运算已经熟知于心, 与、或、非 运算无人不知。然而,当事物可以选择的状态超过两个,达到n个时,事物之间的关系就不再是二值逻辑运算,而是n值逻辑运算。通常用真值表来确定或表达一个逻辑运算,或称逻辑关系。对于n值逻辑运算,其真值表可以写成表1所示的n行n列形式。该表的第1行表示A可以取集合{甲0,甲1,甲2,……,甲n-1}中的每一个值,第1列表示B也可以取集合{甲0,甲1,甲2,……,甲n-1}中的每一个值;第2行第2列的C(0,0)表示在A和B都取值 甲0 时,C的取值,C(0,0)也可以取集合{甲0,甲1,甲2,……,甲n-1}中的每一个值。显然,C(i,j),i、j=0,1,…,n-1,表示A取值 甲i,B取值 甲j时,C的取值。当各个C(i,j)都在{甲0,甲1,甲2,……,甲n-1}中取定一个值时,表1就定义(表达)了一个具体的n值逻辑运算。

表1 N值逻辑运行真值表

将C(i,j)中的一个(如C(0,0))改取不同值,而其他的C(i,j)不变,可以得到n个不同的逻辑运算。由于每个C(i,j)都可以单独改变,于是,总计有n(nhn)种不同的n值逻辑运算。在电子计算机中,n=2,则2(2h2)=16,即电子计算机中只有16种逻辑运算,它们分别被称为 与、或、非、异或、与非、或非……。在三值光学计算机中,n=3,则3(3h3)=19 683,即三值光学计算机中有19 683种逻辑运算。显然给每个逻辑运算起一个名字的做法在三值情况下行不通,当n大于3时就更不可行。导致迄今在表达n值逻辑运算时都采用真值表方式。然而,真值表对于交谈、书写、辨识都很不方便。随着三值光学计算机问世和流行,必须找到一种便于交谈、书写、阅读和辨识的三值逻辑运算名称,而且这一名称必须和三值逻辑运算一一对应,必须能够很方便地与对应的真值表相互转换。若这种命名方式能够直接扩展到n为任何值的情况则更好。

笔者在2017年建立了一种构造三值逻辑运算规范名称的方法,而且可以扩充到n为任意值的情况。每一个三值逻辑运算的规范名称都来自于该运算的真值表,两种表达方式一一对应,很容易转换。具体做法如下:

第1步:把真值表写成d、h、v顺序形式。其中d取代真值表中出现最多的符号,h取代出现次多的符号,v取代出现最少的符号。写出的表称为规范真值表,或标准真值表。

第2步:用规范真值表各列中h和v的行号值来构成 变换规则名 。其结构为:[1h行号,1v行号,2h行号,2v行号,3h行号,3v行号,缺失行] 。

行号规则为:

1、2、3ü h或v所在的行号;

4、5、6、7üüh或v所在行号值之和再加1;

缺失行:-d、-h、-vüü真值表中缺少d、h、v行;

缺失列:用X替代相应列的h和v行号。

第3步:在变换规则名前面加上表示取值特征的 变换类型名 。取值特征决定了推理过程中可以使用的数学运算规则。用L标示取值特征为逻辑型(logic),C标示取值特征为包含型(contain),D标示取值特征为数值型(digit)。同时在圆括号中给出实际使用的符号(x1, x2, x3),x1对应于d,x2对应于h,x3对应于v;用

例如:L(t,m,n)表示t、m和n是分别对应与d、h和v的实际符号,它们代表互不包含的三个事件。C(b, f<,

遵循上述三步可以方便地写出任何三值逻辑运算的规范名称。比如,计算机科学家Algirdas Avizienis 在1960年提出的MSD数并行加法器,可以通过表2给出的4个三值逻辑运算来实现。按步骤1,写出它们的规范真值表如表3,其中d取代0,h取代-1,v取代1。从表3很容易写出其规范名称为:

显然,规范名表达了真值表的所有信息,还增加了三个符号的取值特征信息,而且便于书写、辨识和交谈。

T 变换 W变换 T’变换 W’ 变换b a ī 0 1 b a ī 0 1 w t ī 0 1 w t ī 0 1 ī01 ī ī 0 ī 0 1 0 1 1 ī01 0 1 0 1 0 ī 0 ī 0 ī01 ī 0 0 0 0 0 0 0 1 ī01 0 ī 0 ī 0 1 0 1 0

表3 表2的三值逻辑运算的规范真值表

3 三值光学计算机的基本理论

由于数学上推证出e(e=2.71828 )值的编码效率最高,而3是最接近e的整数,在电子计算机的早期,学者们就开始研究三值电子计算机。苏联莫斯科大学С·Л·Соболев(索博)院士领导的小组最早做出了三值电子计算机,他们在1956年开始研究,1960年公布了名为 Cetyhb 的样机,1970年推出了更好的 Cetyhb 70 。然而, 有电、没电 是几乎不随传播距离而变且容易相互转换的两个电学物理状态,为追求 三值 而人为选择的第三个电位值,会随着传播距离或经过的电学元器件而变,并且与另一个电位值的相互转换比较复杂,这在物理上决定了三值逻辑运行的电子器件构造比二值逻辑运行电子器件复杂,工程实现的难度更大,从而决定了基于三值逻辑电子运算器的计算机的生命力不会超过二值电子计算机。虽然今天的社会评议往往将其未能流传下来归责于苏联政府,但是Cetyhb不能流传其实是物理上的必然结果。尽管如此,科学家对三值计算机的研究从未停止。

然而,光学计算机采用 三值 完全由光的物理特征决定,不掺杂人为因素,与三值的编码效率没有任何关系。它与二值电子计算机遵循了相同的物理原则,而与三值电子计算机分属不同的思想轨道。与三值光学处理器位数众多、处理器可分割成多个独立的小部分以及处理器位的计算功能可重构等优势相比,三值编码效率较高的优势实在不值一提。

三值光学计算机研究秉承 顺应自然 的原则,以计算机基本理论为指导,顺应光的物理特性,以现有的光学器件、电子器件、电子计算机和一切可以获取的材料为基础,发展出了新的计算机系统,丰富了计算机科学理论体系,建立了新型处理器结构和兼容传统的编程技术。三值光学计算机的多个新理论在电子计算机中未曾出现,这使熟知电子计算机的读者往往感到困惑。不以电子计算机的观念去套三值光学计算机的理论和结构可能是更快理解这种计算机的较好方式。

3.1 三值光学计算机的基本原理和起源

1999年冬季,笔者在与朋友谈论光纤通信时,忽然想到若构造光学计算机,可以使用两个偏振方向正交的有光态和无光态,用液晶改变光的偏振方向,用偏振片检查偏振方向,用液晶加偏振片实现有光态到无光态的转变,进而实现很多三值逻辑变换。数天后,闲聊中又将这个想法随意说出,何华灿教授睿智地洞察到这种计算机的光明前途,当即决定: 你放下所有研究,专门研究这种三值光学计算机。 这说明何华灿教授拉开了三值光学计算机研究的大幕,笔者只是在他指导下的一个实践者。17年后,这一个思想火花引出了三值光学计算机原型系统。

进入2000年,笔者进行了一系列原理性实验,证明了构建三值光学计算机的可行性,同时也认识到三值光学计算机将有很多很多用于计算的位数。但这个时期对如何将无光态转为有光态并没有明确的方法,只是想利用逻辑运算中符号的可对换性来避免由两个无光态输入产生一个有光态输出的运算器,后来采用了一个辅助光源来完成这类运算。在现今的三值光学处理器原型系统中将这个辅助光源用一个液晶像素来实现,从而使整个光学处理器浑然一体。

3.2 降值设计理论

在研究三值光学计算机的初期就断定它的处理器会有很多很多位,但那时笔者受电子计算机的影响,更关注如何利用光和光学器件来突破电子器件的速度瓶颈。同时,笔者也参照电子计算机的构造思路,首先研究如何构造三值逻辑运算器,在2003年构造了17个独立的三值逻辑光学运算器[4]。2005年,尚在读博士研究生的严军勇接受构造更多三值逻辑光学运算器的研究任务,他分析了已有的17种三值逻辑光学运算器,发现其中有几个基本光学结构。他写了一篇研究报告,建议先寻找到各种基本光学结构,再用这些基本结构去构造各种光学处理器。很可惜,他的报告在当时并没有得到笔者的认可。必须感谢他坚持了正确的观念,在他的反复提议下,笔者终于认识到这个想法的重要意义。到2007年我们建立了三值光学计算机走向成功的决定性理论ü降值设计理论和方法[26]。

降值设计理论指出:若表示信息的n个物理态中包含有D状态,则n(nhn)个两输入的n值逻辑运算器可以按照固定步骤从nhnh(n-1) 种最简基元中,组合不超过nh(n-1)个而成。每个最简基元的输出都是D态和另一个λi态,其中D状态是指与任一物理状态λi进行物理迭加后,结果仍是λi态的那个物理状态。例如:无光态与偏振方向正交的两个有光态中的任一个进行物理迭加,其结果还是那个有光态,故无光态就是三值光学计算机选用的三个光状态中的D状态。

每个最简基元的输出都只有D态和一个非D态,但各基元输出的非D态不相同,或产生非D态的输入状态不相同。即虽然每个最简基元的两个输入变量都是n值数据,但它的输出却是二值变量。于是设计n值逻辑运算器的任务蜕变成设计输出为二值的n值基元,这就是 降值 一词的来源。

再考虑到最简基元的输出只有一个非D态,这表明其逻辑运算规则中只有一种输入数据组合产生一种非D态,其他的输入数据组合都产生D态。这揭示出任何最简基元的结构都是:只允许输入一对特定的物理状态时产生特定的非D态并输出;而对输入的其他物理状态,都关闭该结构的输出端。

严格证明降值设计理论比较复杂,但在认知了这个理论之后来说明它的合理性并不困难。例如:表2中的Tÿ运算结果中包含7个0,1个1和1个-1,直接构造这样的三值逻辑运算器比较复杂,但是遵循降值设计理论,我们用D状态(无光态,用d表示)表示运算规则结果出现最多的符号0,用两个非D态(分别用h和v表示)分别表示两个出现次数较少的符号1和-1,则生成了表3中的Tÿ真值表 D(0, -1, 1)[002003] 。这个真值表表示:只在两个输入信号t和w都为h时,输出才为h;只在t和w都为v时,输出才为v。于是我们可以构造两个最简基元,一个基元在输入都为h时,输出h,输入其他状态时都输出d;另一个基元在输入都为v时,输出v,输入其他状态时都输出d。把这两个基元合在一起,就构成了T’运算器。因为任何时刻,t和w只能取一对具体的物理状态:当它们都取h时,第一个基元输出h,第二个基元输出d,d和h物理迭加后还是h,故输出为h;当t和w都取v时,第二个基元输出v,第一个基元输出d,v和d迭加后还是v,故输出为v。当t和w取其他值时,两个基元都输出d,则该运算器的输出为d。从这个例子可以看到基元的构造非常简单,因此按照降值设计理论,构造三值逻辑运算器的任务就变的非常简单。

三值逻辑运算的真值表为3行3列,共3h3个运算结果,每个运算结果可以取2个非d值,故三值逻辑运算的最简基元有3h3h2个。在将表2中用三个信息符号0、1、-1给出的真值表转换成表3中用物理状态d、h、v给出的同一个真值表时,先做了信息符号和物理状态间的对应选择ü 将出现最多的信息符号与d状态对应,即用d状态表达出现最多的信息。在这个选择之后,非d状态必定对应着出现次数较少的信息符号,于是实现该逻辑运算所需的最简基元数也就较少。显然,当三个信息符号都出现3次时,用d代表任何一个符号,都会有3h2个非d状态出现,这时需要的基元数量最多,达到3h2个。

降值设计理论揭示出:在处理器中,只需构造出足够数量的nhnh(n-1)种最简基元,当用户给出任何一种n值逻辑运算时,再用这些基元组合成相应的逻辑运算器。当用户的工作完成后,这些基元又可以用于构造其他运算器。于是,遵从降值设计理论构造的处理器具有计算功能的可重构性。

降值设计理论在电子计算机中未曾出现过,初次接触时会感到怪异,但是这个理论包括了二值电子计算机。当n=2时,降值设计理论告诉我们:共有16种逻辑运算,有4种最简基元:与、或非、两种异或,用不超过2个基元就可重构出16种二值逻辑运算的任一个。从表4给出的或非运算真值表可以看出:当A取0表达的信息时,运算结果总是0;当A取1表达的信息时,运算结果就是B的非。即表4对应的基元就是B的非门。同理,另一个或非门基元就是A的非门,由于A和B本身可以对换,即表4转置后表示相同的逻辑运算,所以这两个非门是相同的,取一个即可。同样的思路可以看出A和B的 与 运算等同于A、B分别取非之后,再求 或 (狄•摩根定理),于是二值逻辑运算的四个基元合并成了两个:非门、或门,也可以是非门、与门。这就是二值电子计算机只需构造出非门和另外一个逻辑门的理论根据。当然,目前二值计算机体系认为这个结论的理论根据是狄•摩根定理。不过在2008年,严军勇博士证明了狄•摩根定理就是降值设计理论在n=2时的特例。

表4 或非运算真值表

3.3 三值光学处理器的可重构结构

降值设计理论把构造19 683种三值逻辑光学运算器的艰巨任务简化成构造18种简单的二值输出逻辑运算基元,而且每种基元的非D态输出只对应着一种输入数据。当把18种基元设计完成时,可以惊奇地看到,它们有完全相同的主体结构üü两个偏振片夹一个旋光器!这个结构正被所有的液晶显示器使用,手机屏、电视屏、投影仪都是这种结构!也就是说人类早就做出了三值光学处理器的主体结构,只是 不识庐山真面目 !

18种基元的主体结构与显示器的结构相同意味着制造三值光学计算机的产业技术已经存在,这使三值光学处理器实物研究迈过了最大的难点。

18种基元的主体结构都是两个偏振片夹一个旋光器,但各基元的偏振片取向不同,或者旋光器的控制信号不同。用V和H分别表示两个正交的偏振片取向,则:有些基元的两个偏振片都是V取向,称为VV型基元;有些基元的两个偏振片都是HH取向,称为HH型基元;有些基元的光线入射侧偏振片为V取向,而光线出射侧偏振片为H取向,称为VH型基元;有些基元的光线入射侧偏振片为H取向,光线出射侧偏振片的为V取向,称为HV型基元。把类型相同的基元集中在一起,则光学处理器形成4个区域,分别是HH区、VV区、VH区和HV区, 如图4上部的液晶阵列 所示。需要某个类型的基元时,只需在相应的区域里取用像素即可,于是将这四个区域中位置相同的像素视为一个处理器位,并给每个处理器位配置一个锁存器Rp,用Rp的值来确定当前基元使用哪个区的像素。

给旋光器每个像素的控制信号输入端U设置一个异或门X(图4),X的一个输入端i接锁存器Rf的输出端。当Rf中保有1时,X对其另一个输入端bÿ的信号取反后输出,记为U=-bÿ;当Rf中保有0时,X将bÿ的信号直接输出,U=bÿ。于是给Rf中送入不同的值就改变了旋光器控制信号U的特性。

当某个运算的两个输入数据都是无光态,而运算结果是有光态时,该运算器就需要一个辅助光源来发出产生运算结果的光束。为使主光路信号发生器能取代辅助光源,给主光路输入信号A增加了异或门Y,Y的一个输入端j接锁存器Rg的输出端。当Rg中保有1时,Y对其另一个输入端a的信号取反后输出,记为A=-a;当Rg中保有0时,Y将a信号直接输出,A=a。考虑到需要辅助光源时,必定是因为该基元的主光路为无光态,于是给Rg写入1,则主光路会在此基元工作时变成辅助光源。当基元本身的主光路为有光态时,给Rg写入0,则主光路恢复正常。

图4 三值光学处理器结构

至此可以看到,给Rp、Rf和Rg写入不同的值就可以把处理器位构造成所需的运算基元,故将Rp、Rf和Rg合并在一起称为重构锁存器R[27-32]。

3.4 三值光学计算机的并行加法器

计算机要完成的计算有两类:逻辑运算和算术运算。三值计算机可以用硬件完成二值逻辑运算和三值逻辑运算,若完成超过三值的逻辑运算,就需要使用软件,其计算速度就会大幅下降。

在完成算术运算时,任何计算机都遇到进位延时问题,这是计算机科学家有史以来的痛 !虽然电子计算机用 先行进位结构 解决了4或5位二进制数据的加法进位延时,但位数多时这个方法行不通,导致了16位处理器就开始使用繁杂和低效的 流水线 工作方式,以容忍先行进位模块间的串行进位延时。为解决进位延时,20世纪40年代,计算机科学家就提出了设法隐藏进位的多种 冗余表达 加法思想。直到1960年,计算机学者Algirdas Avizienis(美籍立陶宛人,1932年出生在考纳斯市)在他的博士论文中给出了一种新的加法器结构,他用三层二进制加法器和-1、0、1三个符号来完成冗余二进制数并行加法运算。他称这个数值表达方式为MSD数。这个加法没有超过两位的连续进位!

1986年,Barry L. Drake、Richard P. Bocker等人将MSD并行加法器电路特性和操作方法变形为5个三符号替换规则,就是表2给出的5个三值逻辑运算:T、W、T'、W'和T2。考虑到三值光学处理器可以用硬件重构造出所有的三值逻辑运算器,当然可以构造出这5个三值逻辑运算器!2010年1月12日夜作者设计了第一款使用MSD数的光学并行加法器,2010年完成了实验,从而设计了第一台三值光学处理器原型,命名为 上大2011 (简称SD11)。

从2010年我们就开始考虑:为什么会是这5个三值逻辑运算器?别的逻辑运算器可以吗?2016年沈云付教授终于在数学上证明:只要一组三值逻辑运算满足特定条件,它们就一定能完成MSD数并行加法!我们称这组条件为沈氏充分定理。依据这个定理,沈教授找出了7类可以构造MSD并行加法器的三值逻辑运算器,进而设计了SJ-MSD加法器(沈云付-江家宝加法器),这个加法器比Avizienis的加法器节约25 %硬件。现在的三值光学处理器原型机(SD16)用的就是SJMSD加法器[33-44]。

3.5 三值光学计算机的存储器系统

众多的位数使三值光学处理器能够同时计算大批量数据,这表明它与存储器之间会频繁地交换大量数据。电子计算机的存储系统无法满足这种需要,必须为三值光学处理器研发新的存储系统,但新存储系统又不能脱离现有的存储芯片、存储器构造技术、文件管理技术和随机访问技术。2013年,笔者考虑到非易失随机存储芯片具有掉电不丢失信息和按随机给出的存储地址进行读写的双重特征(这正好满足计算机对存储系统的两个根本需要),提出了 双空间存储器结构。其基本思想为:在非易失随机存储器上同时构造以数据块为访问单位的 块空间 和以字为访问单位的 字空间 。块空间的特征是保存的数据不会在掉电时丢失,且块内数据为顺序访问方式,以文件为单位管理数据,显然它对应于当前的外存。字空间的特征是按随机给出的存储地址访问数据,以字或字节管理数据,它对应于当前的内存。也就是说,双空间存储器是把内存和外存落实到了同一个存储实体上,彻底消除了大量数据在内存和外存之间的拷贝过程,使非失性存储器(外存)中的数据直接被处理器进行随机访问。考虑到外存的容量巨大和内存隔层的消失,这种新的存储模式能够满足处理器和存储器频繁交换大量数据的需求。

为了使三值光学处理器的众多数据位与当前存储系统的较少数据位相匹配,在双空间存储器向三值光学处理器输入数据的通道上设立了位数扩展锁存器,而在光学处理器向双空间存储器输入数据的通道上设立了位数压缩锁存器。

一般而言,非易失性存储器的容量远远大于随机访问存储器的容量,即前者的地址值位数远远多于后者的地址值位数。实现两者地址相互映射的技术称为 内存空间推移技术 (图5)。

图5 内存空间推移技术示意图

在图5中,处理器地址总线的低s位AB(s-1)~0与双空间存储器的低s位CAB(s-1)~0直接相连,成为处理器访问存储器的窗口,称为映射窗。处理器地址总线的高n-s位AB(n-1)~s连接寻址推移锁存器组的选择输入端I(n-s)~0,于是AB(n-1)~s的值会选中一个推移锁存器,该锁存器会输出所保存的m位数据到推移锁存器组的输出端J(m-1)~0(m大于n-s),而J(m-1)~0与双空间存储器的高m位地址线CAB(m+s-1)~s直接相连。于是这个推移锁存器保存的值就是映射窗在双空间存储器上的当前位置。显然,每一个推移锁存器都保存了映射窗在双空间存储器上的一个位置。当处理器给出的随机地址的高n-s位改变时,另一个推移锁存器被选中,则映射窗被推移到双空间存储器的另一个位置。当改写一个推移锁存器保存的值后,这个推移锁存器对映射窗的定位位置就发生相应的改变。由于推移锁存器中的值可以取双空间存储器高m位的任何值,推移锁存器可以把映射窗移动到双空间存储器的任何位置,于是图5给出的结构可以将内存空间映射到双空间存储器的任何位置。

双空间存储器结构+位数扩展和压缩锁存器+内存空间推移技术+非易失随机存储芯片,构成了适合三值光学计算机的新型存储器系统[45-47]。

3.6 三值光学处理器编程技术

电子处理器不能被分割使用,也不能被重构,导致流行的各种编程语言都不能对处理器位进行分组和重构,所以现有的计算机编程技术都不能生成发挥三值光学处理器优势的应用程序。考虑到大众的编程习惯,三值光学计算机团队采取给传统编程语言增加将处理器位分组和重构两项能力的策略,形成同时适合于电子处理器和三值光学处理器的编程新技术。

按照常规思路,给程序语言增加对处理器位进行分组和重构功能的方法是构造两类新指令。然而,要给处理器位分组,必须知道在程序运行时处理器的使用情况,这是程序员在编写程序时不可知的信息。重构处理器又与处理器的硬件结构密切相关,让程序员确切掌握这些信息实在太难。因此,即便有了处理器位分组指令和处理器位重构指令,程序员也很难使用它们。另一方面,程序员使用光学处理器是为了计算他的数据,至于如何对处理器位分组,如何重构,并不是程序员关心的事情。从这两个方面考虑,三值光学计算机研究团队采用了 客户端-服务器 模式来构建同时适合两种处理器的编程新技术üü基于 运算-数据文件 的异构系统编程方式。

运算-数据文件是设立了专门格式的文本文件,以SZG为后缀来标识,又称为SZG文件。程序员将需要用三值光学计算机完成的运算写入*.SZG文件,包括运算规则和所有的原始数据;在程序的适当位置用文件传输命令将指定的*.SZG文件送给三值光学处理器;三值光学处理器的底层软件收到*.SZG文件后,解读其内容,从而知道程序员的要求;底层软件根据当前光学处理器的使用情况统筹安排各个SZG文件的计算任务,对光学处理器位进行分组和重构;底层软件将各个SZG文件携带的原始数据送入重构好的处理器的对应位置,光学处理器在不同位置上同时计算各个SZG文件的数据;底层软件收集光学处理器的计算结果,并将新数据接续不断地送入光学处理器进行计算,直到所有数据计算完毕;底层软件将所有计算结果整理成结果返回文件*-R.SZG,并将*-R.SZG送回应用程序;应用程序收到*-R.SZG文件,任务完成。

为了应对迭代计算等复杂的运算过程,团队还建立了从已有的SZG文件生成新SZG文件的命令,称为SZG文件链指令。于是新编程平台如图6所示。这个编程平台有两个处理器:一个是仅有百位,不可分割、不能重构的小处理器,当前的电子处理器就适合作为这一处理器,也可以专门构造一个小三值光学处理器来担当这个处理器,或者从一个位数很多的三值光学处理器中划定一个小部分来担当这个处理器。它的主要任务是为另一个位数很多的大处理器服务或分发计算任务,同时应对计算少量数据的需要。另一个是位数很多,处理器位可以分割成很多小段,处理器位的计算功能可以重构的大处理器,三值光学处理器正是这样的处理器。两个处理器各自带有合适的操作系统和各自的底层软件,二者在底层软件上相互交融;在操作系统和底层软件之上建立了SZG文件生成系统,包括初始SZG文件生成软件和SZG文件链指令,并对传统程序语言进行扩充,增加了传送SZG文件的命令。在这个平台上,程序员将对大量数据进行的计算任务写成SZG文件,将常规任务用传统方式处理,编制好的程序和SZG文件同时送到小处理器上,在小处理器上运行应用程序,当应用程序执行到送SZG文件给三值光学处理器的指令时,指定的SZG文件被送到大处理器进行快速计算。此时,两个处理器在一个程序中协同工作。当小处理器上运行多个程序时,这些程序也就共享一个大处理器。如果程序中没有送SZG文件到大处理器的命令,则该程序就是传统的电子计算机程序[48-55]。

图6 新型编程平台结构

4 三值光学计算机应用示例

从数万位的三值光学处理器中划分出386位,并不会影响这个处理器位数众多的特性,但可以将这386位构造成一个64位的并行二进制加法器、一个64位的二值与非运算器和一个64位的二值非运算器。光学处理器的这个386位小部分就与64位电子处理器的功能相同,或说它就是一个64位的处理器。

如果在数万位的光学处理器上重构出100个32位的乘加器,它就是一个100单元的GPU。于是所有使用100单元GPU进行加速运算的应用程序都可以在这个光学处理器上得到相同的加速,但光学处理器可以被随时更改结构,而GPU不能更改结构。

目前已经对快速傅里叶变换、元胞自动机、NP问题等高性能计算经典应用程序试用三值光学处理器进行了加速验算,得到了比较好的效果[56-64]。

5 结论

2017年3月18日23点47分首次完成并行MSD加法运算的三值光学计算机SD16拉开了计算机发展的新篇章。这种新型计算机具有处理器位数众多、处理器位可任意分组、各分组可独立使用、各处理器位的计算功能可重构等特性,这些特性使它的计算能力远远大于当前的电子处理器,它不仅可以取代电子处理器和GPU的工作,而且带来了大量数据并行计算的新模式,进一步提升了依靠计算来解决和研究复杂问题的能力。

考虑到当前还没有为三值光学计算机设计和制作的光学部件,团队正在研究将三值光学计算机建立的新理论和处理器新结构与电子电路集成制造工艺相结合,欲产出一种速度与当前CPU相当,但具有处理器位数很多、处理器位可任意分组、各处理器位分组可独立使用、处理器位的计算功能可重构、采用MSD数并行加法器的新型电子处理器。这种新型电子处理器将是实现三值光学计算机商品化的中间步骤,它将完全依靠中国的知识产权,由中国主导。

猜你喜欢

基元光学处理器
面向异构履带车辆的统一运动规划方法
滑轮组的装配
光学常见考题逐个击破
基于多重示范的智能车辆运动基元表征与序列生成
有级转向履带车辆的驾驶员操控行为模型
人体细胞内存在全新DNA结构
第2讲 光学知识专题复习
ADI推出新一代SigmaDSP处理器
光学遥感压缩成像技术
火线热讯