电子计算机怎样运算
很早以前,我国就有了算盘,它比笔算来得快而方便,以后又有了计算尺、手摇(或电动)计算机,它们比算盘算得更快。随着科学的不断发展,这些计算工具还远远不能满足使用者的要求。近代的许多计算问题,不仅计算复杂、计算量大,而且计算速度要求非常之快,这样的任务只能由电子计算机来完成了。
计算机为什么能够算题?不妨先看看人是怎样算题的。我们知道,各国发射第一颗人造卫星的重量如下表所示:
![]() |
如果要算一算,我国第一颗人造卫星的重量,是其他四国第一颗人造卫星重量总和的几倍?
一般总是先将算式写在纸上,即:
![]() 然后将分母的四个数加起来,得到139.22公斤,最后做个除法: 173.00公斤+139.22公斤=1.24(倍)。 如果用算盘来算这个题目,需要些什么条件呢? 第一,要有一个算盘; 第二,写算式、数据及答案所用的纸; 第三,写算式、数据及答案的笔和手; 第四,指挥计算、写字的大脑。 事实上,电子计算机也具备这四个条件,它是由类似作用的四个部分构成的: 一、运算器(相当于算盘); 二、存贮器(相当于纸); 三、控制器(相当于人的大脑); 四、输入和输出设备(相当于手和笔)。 电子计算机有了这四个部分,也就能够算题了。 运算器是完成具体计算任务的——四则运算和逻辑运算。它是根据控制器的命令,从存贮器取出所需要的数进行计算,算好的中间结果或答案,再送入存贮器存放起来。运算器是由双稳态电路(双稳态触发器)和各种“门”电路(与门、或门、反相门),按特定的各种逻辑构成的。 存贮器是存放数据和指令的。计算时,在控制器的控制下,接收输入设备送来的原始数据和指令,把计算所需的数及时送到运算器,等运算器算好中间结果或答案,就把它们贮存起来;另外,还要把指令逐一送到控制器,最后把答案送到输出设备印刷出来。存贮器是由记忆元件(大多采用磁芯、磁带、磁鼓、磁盘或磁棒等)和电子线路组成。随着大规模集成电路的发展,高速度、低功耗、高密度的半导体存贮器不断问世,目前大力发展的有双极型半导体存贮器和金属氧化物半导体存贮器。 输入设备是专门送原始数据和指令到存贮器的。一般都采用光电输入设备;也就是先将数及指令穿成穿孔纸带(或者穿孔卡片),再通过光电设备,把纸带上的孔变成电信号送入存贮器。穿孔纸带上的孔,按不同的组合,可以代表不同的数(0、1、2…9)或指令(加、减、乘、除),这就象电话一样,不同的电话号码,代表着各个工厂、公社、机关或学校等单位。目前,文字输入也在大力推广和不断发展中。 输出设备是将答案或所需要的中间结果,从存贮器(或直接取自运算器)取出来并显示在纸上,告诉算题的人。输出设备的种类很多,有快速打印机、电火花印刷机、静电印刷机、照相输出设备、x—y记录仪。 然而,运算器、存贮器、输入设备和输出设备,究竟是怎样相互联系来完成计算的呢?例如:数和指令该送到存贮器的什么地方?什么时候送?存贮器又该把哪里的数、指令分别送到运算器、控制器呢?又该什么时候送呢?运算器又怎样将答案送到存贮器或输出设备呢……。这一切全靠控制器来指挥了。控制器也是由双稳态电路和各种“门”电路组成的,不过,它只是组成控制逻辑,而不是运算逻辑。 控制器又如何来指挥呢?它只是根据人们事先编制好的“计算程序”来指挥的。 控制器同人又是怎样联系的呢?这就靠“计算控制台”了。它一般是由很多开关、指示设备、电传打字机、显示设备组成的;主要是完成启动计算机和观察算题过程正常与否?各部件工作正常与否?或者人为地修改某些数据、修改某些指令。
这里,我们仍以上面人造卫星的题目为例,再看看电子计算机是怎样进行具体运算的: 第一步是编制计算程序。也就是说,将x= 第二步是穿孔。根据计算程序将纸带穿成“穿孔纸带”。
第三步是具体运算。计算员通过“计算控制台”告诉控制器,将纸带上所记载的信号依次分别送入存贮器1~10号,101~105号。启动后,控制器命令“输入设备”开动,又命令“存贮器”将纸带中的内容依次存入1~10号、101~105号。输入设备送完纸带就自动关掉,并发“输入完毕”信号给控制器。存贮器存完数后,也发个“存数完毕”信号给控制器。控制器得到这两个信号,就知道指令、数据已放在规定的地方了。于是,它就正式照程序表的第一条指令进行运算(无特殊规定,总是自动地从第一条做起):这时,控制器命令存贮器将第1号单元的指令送给它,控制器中的操作码分析器马上得到"13”,一见“13”就知道是取数,又据地址码寄存器中为101,就知道是取101号的数。于是,命令存贮器将101号的数(83.6)送到运算器,同时又命令运算器收数。当存贮器、运算器各发出“送数完毕”、“收数完毕”信号时,第一条指令就做好了。这时,控制器再命存贮器将第2号指令送给它(
上面介绍的电子计算机是最简单的。目前,由于对大型电子计算机的运算速度要求越来越快,往往采用并行操作、先行流水作业、堆栈等先进技术。为了解决存贮器速度跟不上运算器速度的矛盾,就采取超前(先行)取指令、超前取数。也就是本条指令尚未执行完,下面的指令已预先从存贮器取出来放在“指令控制器”中,当本条指令执行完,马上能从“指令控制器”中取得下条指令,这比到时候再从存贮器去取要快得多。同样道理,也可实现超前取数。这些都由专门的“运算控制器”(简称“运控”)来进行控制。 那么,存贮器如何与“运控”打交道呢?怎样才能提前提供指令、提供数呢?又如何做到忙而不乱呢?这就靠“存贮访问控制器”(简称“存访”)来控制。 这样一来,存贮与运算的矛盾解决了,但这时,外部设备不是更显得老牛拖车了吗?要解决这一矛盾,一方面是提高外部设备本身的速度,另一方面,也可用“以多胜少”的办法,也即用很多设备同时对信息进行输入、输出。这好比—只万吨轮运来一船货物,为了快点卸完,就用很多卡车、吊车一起去卸运一样。那么多的外部设备又怎样和主机打交道呢?这将由“通道控制器”(简称“通道”)或者“信息交换控制器”(简称“交换器”)来控制。 为了提高效率、及时处理一些问题(例如发现明显的程序错误、数据超出允许范围、临时需要“人-机对话”等等),还增设了“中断控制器”(简称“中断”)。 采用这些技术后,电子计算机的确实现了一面计算、一面存取、一面输入、一面输出等并行操作。这与简单计算机相比,速度当然大大加快了,但结构也变得更复杂、更庞大,特别使“控制”变得更复杂、更广泛、更繁忙。于是将本来的单一控制器分成很多独立控制器——“运控”、“存访”、“通道”、“交换器”、“中断”等等。 尽管目前的大型电子计算机的速度已高达每秒几百万次、几千万次,但对有些题目还显得太慢,于是又出现了“双机系统”、“多机系统”,多台计算机一起来算。 但是,无论什么计算机,也不管它多么复杂、庞大,从物理上讲,它只不过是光、电、磁、机械之间互相转换而已,而这些东西是人们日常生活和工作中天天见面的,只要对它们有一定的了解,就可以从事计算机方面的工作。并没有什么神秘,更不是高不可攀。只要认认真真学习、踏踏实实工作、仔仔细细研究,一定能掌握计算机科学。 |