北京航空航天大学第二十四届“冯如杯”学生创意大赛参赛作品第二十四届“冯如杯”学生创意大赛关于《三体》中人列计算机的实现2014年3月27日摘要本文讨论了计算机的基本数字逻辑电路结构与相关的功能模块,分析了使用人列实现计算的可行性,揭示了计算实现方式的多样性,为初等计算机教育提供教育素材,为下阶段的研究提供了基础理论的支持。
关键词人列计算机;逻辑电路引言当下社会生产力高度建立在以计算机技术为基石的科学技术体系上。
计算机的组织结构精密有序,本文通过探讨计算机基本单元的结构,尝试实现《三体》中关于人列计算机的构想。
第一部分绪论1.1起源1.1.1人列计算机与《三体》人列计算机的起源来自刘慈欣的科幻小说《三体》,它描绘了三千万个智慧生物个体在有序的组织下实现整体较高计算与处理能力的景象。
1.1.2过往的尝试为了给2007年成都国际科幻奇幻大会献礼,开幕式中举行了小规模的人列计算机演示活动。
另外在2010年,大连海事学院的计算机与信息技术学院的学生社团也尝试小规模实现计算功能模块。
1.2可行性1.2.1逻辑可行性人列计算机的逻辑可行性基于人的对信息处理和传递的可行性,人具有最基本的逻辑判断能力,拥有可编程执行的能力。
人可以快速处理简单的二值信息(0和1),并可以快速执行信息逻辑处理,并可以在短时间内把处理过的信息结果传递到下游回路中去。
1.2.2操作可行性人可以模拟计算机物理层面的活动,通过有序的编制和指令,人阵列可以实现任意复杂水平的计算机结构。
第二部分互补金属氧化物半导体晶体管的人列实现通用计算机中,CMOS技术是大多数集成电路的实现基础。
因此,我们选择CMOS 晶体管作为最小电路人列实现。
2.1互补金属半导体晶体管的结构2.1.1组成结构CMOS工艺的基础是MOS(金属氧化物半导体)晶体管,MOS晶体管由衬底,导电多晶硅栅极,二氧化硅绝缘层,源极,漏极与沟道组成。
2.1.2工作原理MOS晶体管(绝缘栅场效应管)分为n沟道晶体管与p沟道晶体管。
n沟道晶体管正常工作时,漏极的电压比源极的高。
当栅极电压比源极电压高出晶体管阈值电压,且漏极电压比源极电压足够大时,栅极绝缘层下面的一层薄衬底就会在源极与漏极之间形成一个导电层,这就允许在源极和漏极之间有电流通过,此时称晶体管处于导通状态(ON)。
如果栅极与源极的电压小于阈值,沟道将消失,阻塞电流通过,这种情况称晶体管处于截至状态(OFF)。
P沟道晶体管正常工作时,当栅极电压输入为0时,源极和漏极之间存在通路,当栅极电压输入为高时,该通路不存在。
P沟道晶体管传导1的能力比传导0的能力要强,n沟道晶体管传导0的能力比传导1的能力要强,因此设计电路时分别使用两种晶体管来达到最好的电路性能。
2.2人列实现方式与相关分析2.2.1 n沟道晶体管人列实现经过类比n沟道晶体管中关键部件的功能,人列实现至少需要3个个体来实现。
2.2.2 p沟道晶体管人列实现与p沟道晶体管相同,它也需要3个个体来实现。
第三部分门电路的人列实现3.1门电路的结构3.1.1简单CMOS门电路的结构简单的CMOS门电路包括与非门和或非门(非门,或是称反相器也是简单门电路,可以视为仅有唯一扇入与唯一扇出的与非门或是或非门。
),理论上所有的逻辑结构都可以用与非逻辑和或非逻辑来实现。
所有的逻辑函数都可以通过“译码-组合”电路来实现,但是该电路在扇入扇出的线路数多的时候布线非常庞大,尽管理论上“列举”出所有该函数的映射必然可以如实表达出该逻辑函数,现实电路设计中,往往通过优化的办法来缩小实现该逻辑函数所需要的电路设计规模。
3.1.1.1 CMOS非门(NOT)电路(反相器)的结构CMOS非门(反相器)由1个n和p沟道晶体管构成。
3.1.1.2 CMOS与非门(NAND)电路的结构CMOS与非门由2个n和p沟道晶体管构成。
3.1.1.3 CMOS或非门(NOR)电路的结构CMOS或非门由2个n和p沟道晶体管构成。
3.1.2复合CMOS门电路的结构复合门由与非门或是或非门这样的简单门电路组合构成。
3.1.2.1 CMOS与门(AND)电路的结构CMOS与门由与非门和非门串联而成,由3个n和p沟道晶体管构成。
3.1.2.2 CMOS或门(OR)电路的结构CMOS由或非门和非门串联而成,由3个n和p沟道晶体管构成。
3.1.2.3 CMOS异或门(XOR)电路的结构异或门由6个n和p沟道晶体管组成。
3.1.2.4 CMOS异或非门(XNOR)电路的结构异或非门(同或门)由6个n和p沟道晶体管组成。
3.2人列实现方式与分析3.2.1简单CMOS门电路的人列实现3.2.1.1 CMOS非门(NOT)电路(反相器)的人列实现非门电路如果在晶体管层面进行人列实现,则需要8个个体组成阵列:显然,该人列设计过于繁琐与冗杂,但是人的能动性大于物理层面的活动,因此,可以利用1个个体的逻辑取反能力来达到该电路原本要求实现的逻辑功能,并且实现简洁的要求,尽管这会增加单个个体所要掌握逻辑处理的种类与复杂性:3.2.1.2 CMOS与非门(NAND)电路的人列实现对与非门进行晶体管层面的模拟分析之后,发现至少需要14个个体才能相对正确的模拟出其物理层面的活动,人列结构如下:与非门精简后的相同,精简后的与非门仅需3个个体作为逻辑判断:3.2.1.3 CMOS或非门(NOR)电路的人列实现或非门的人列结构与与非门刚好水平对称,也需要14个个体组成实现:精简后结构相同为:3.2.2复合CMOS门电路的人列实现3.2.2.1 CMOS与门(AND)电路的人列实现CMOS与门的电路人列,需要22个个体阵列实现。
精简之后可以为:3.2.2.2 CMOS或门(OR)电路的人列实现和CMOS与门相类似,CMOS或门所需的人列实现所需个体数为22个。
精简之后可以成为:3.2.2.3 CMOS异或门(XOR)电路的人列实现异或门的结构复杂性大于之前所述的逻辑门,其CMOS的布线比较复杂,因此人列模拟分析之后,其人列结构比较冗杂,尤其是充当传输线路的人列,整体阵列规模较大。
130个个体组成整个阵列,其中核心阵列个体(非传输线路功能个体)为40个,由此可以发现,随着电路结构和布线方式的复杂化,人员冗余会变大,非核心逻辑判断个体所占中个体数会增大。
这会导致运行的过程中增加延时的时长,也会增大运行出错的可能性,这对整体性能有比较大的不利影响。
精简之后,可以表达成和之前相同的结构:3.2.2.4 CMOS异或非门(XNOR)电路的人列实现同或门(异或非门)的人列实现和异或门相同,唯一的区别是人列组织编程的时候,四个信息记录个体被储存相反的恒定数据。
精简之后,也可以表达成和之前相同的结构:以上是构成小规模集成电路(SSL)的基础结构。
第四部分简单功能模块(functional block)的人列实现4.1译码器译码器是用来对输入数据作区分和提取的电路功能结构,是实现逻辑函数的基础模块4.1.1.1 2-4译码器2-4译码器作为最基本的译码器形式,它需要的核心人列阵列如果采用精简模式排布,需要14个个体来组成(不包括传输线路所需的个体)。
4.1.1.2带使能的2-4译码器该电路设计中只使用了最大扇入为2的门电路,(人列计算机并不适合使用多线路扇入,因为阵列的排布需要人与人之间保持一定的距离,而电子线路则在这方面的限制比较小,仅有工艺水平的限制和最大门驱动数的限制)这种情况下,核心人阵所需要的个体数为26。
4.2编码器编码的过程与译码的过程刚好相反,编码器通过对最小逻辑数值进行处理,生成目的逻辑变量。
编码器会出现输入非法变量的情况,所以无论是在电子计算机设计中,还是在现在的人列计算机设计中都力图避免这种情况出现。
实际计算机设计的时候往往采用优先编码的办法,规定指定变量为优先变量进行编码。
下面是四输入优先编码器的逻辑图:可以分析在精简模式下,它的核心人列阵列所需个体数量为19个。
4.3多路复用器多路复用器也是一种基本的功能模块,它用于从多条线路中利用译码出的使能信号来控制输出的选定线路:在精简模式下,该人列实现的核心阵列个体需要35个。
4.4半加器半加器作为最基本的算术电路,具有很重要的逻辑结构意义。
这是一位的半加器的逻辑电路图:精简模式下,它所需要的人列阵列组成中核心逻辑个体有6个4.5全加器半加器并没有考虑到前一位的进位,因此由两个半加器组成的全加器实现了考虑本位进位的能力,成为完整的基本算术电路:这个一位全加器电路会成为其他算术运算电路的基础,在精简模式下的人列实现阵列中,它需要15个核心逻辑处理个体来实现。
4.6加减法器加减法器的减法能力可以通过对被减数取补来实现,通过一位译码器可以实现加法和减法的选择。
通过全加器的叠加实现了具有判断溢出的4位加减法器:这个功能模块初步实现了小规模的电路集成(Small Scale Integration),精简模式下,人列分析其核心逻辑个体的所需数目为72个。
4.7锁存器4.7.1SR锁存器SR锁存器是最简单的时序电路,精简模式下它的人列阵列需要6位核心逻辑个体构成。
加入控制电路之后:加入控制电路的SR锁存器可以实现在规定时刻内接受读写的功能,精简模式下,它的人列实现需要12个核心逻辑个体。
4.7.2D锁存器D锁存器克服了SR锁存器同时读入时导致的不稳定状态,使置位与复位的输入信号始终相反。
他的人列核心逻辑个体为13个。
4.8触发器触发器是正式的具有数据自我读写运算能力的功能模块,与SR锁存器和D锁存器分别对应的有:4.8.1SR主从式触发器它的人列实现核心逻辑个体在精简模式下需要25个。
4.8.2D触发器它的人列实现核心逻辑个体在精简模式下需要25个。
4.9寄存器寄存器是具有一定规模的触发器组合,是电子计算机的基本数据存储单位。
4.9.1带清零的4位寄存器显然,该寄存器阵列的复杂程度可以用人列实现的核心逻辑个体数来衡量:78个核心逻辑个体。
上述寄存器并未考虑和其他寄存器并列放置时,用译码后的使能信号的传递,因而如下的寄存器可以实现这个功能。
4.9.2带并行加载的4位寄存器该寄存器的人列实现,在精简模式下,需要至少144个核心逻辑个体来组成。
这是迄今我们得到的最复杂的功能单元。
第五部分简单算术逻辑运算单元5.1简单算术逻辑单元的运行对指令中的地址译码,加载内存中的数据到寄存器中。
对指令进行译码可以得到指令所指示的应该启用的指定功能模块,或是执行逻辑操作,或是执行算术操作。
运算结果会在下一个时刻加载到寄存器中。
这是最基本的实现自动计算的流程结构。
5.2简单算术逻辑单元的实现在人列实现中,我们通过找到各个处理单元的运行时间的最大数,以它作为一个标准运算周期,来协调运行各个模块的整体运转。