求阙新斋分享 http://blog.sciencenet.cn/u/Jacking 用博客记录成长的历程!

博文

计算机学习漫谈(10)——一台冯·诺依曼机器

已有 7335 次阅读 2010-12-16 21:33 |个人分类:计算机漫谈|系统分类:科普集锦| 计算机, 冯·诺依曼, 计算机系统

  

  说到计算机的发展,就不能不提到美籍匈牙利裔学者约翰·冯·诺依曼(John Von Neumann)。冯·诺依曼带给我们的是一个集合前人思想,启迪后人深思的计算机系统的思想,他给后来的计算机研发人员指明了方向,也奠定了现代计算机快速发展的基础。计算机的运行需要两个前提:一是任务描述,即描述计算机所要完成的任务,它是以程序(或代码)方式表达;二是计算机本身的运行能力,他是任务的具体执行者。1946年,冯·诺依曼集合巴贝奇、阿达、楚泽、斯蒂比兹,还有更为重要的阿兰·图灵这些计算机天才的思想,提出了计算机处理或程序的基本模型。

  为了更好的理解冯·诺依曼计算机模型,我们先来做一个简单的比喻,希望能够使我们更深入的理解计算机的基本结构。

  

  (1)一个冯·诺依曼工厂

一台计算机其实就像一个加工厂,如图1所示。一个加工厂需要的设备是:加工机器,仓库,物流和控制室。在进行加工生产过程中,第一步是通过物流部门的货车将原材料运输到工厂,存放在仓库中;第二步是工人从仓库中把原材料搬运到加工机器中;第三步加工机器进行生产加工;第四步是工人把生产出来的产品搬运到仓库中;最后是通过物流部分的货车将产品运送出去。而在整个加工过程中,每个环节都必须通过控制室来协调安排,比如要原材料的种类和数量,加工方式,产品存放位置等。

1 加工生产流程图

 

  

  (2)冯·诺依曼计算机结构

  在冯•诺依曼计算机中,最主要的部件是运算器、控制器、存储器和输入输出设备组成。其中,输入输出设备就是一个工厂的物流部门,负责数据的输入和输出;运算器就是工厂的加工机器,负责数据的运算;存储器就是工厂的仓库,负责数据的存储;控制器就是工厂的控制室,负责控制其他所有部件之间的协同工作。下面我们具体的介绍一下冯•诺依曼计算机模型。

 

2 冯·诺依曼模型示意图

  图2显示了该模型的基本组成,它有5个组成部分:内存、处理单元、输入、输出、控制单元。

  

  1、内存

  内存就是由各种门电路和锁存器组成的一个具有存储功能的电路。具有寻址空间和寻址能力两项指标,此外,内存的每个存储单元都具有一个“单元地址”,这相当于一栋楼的门号,是为了便于访问人对号入座的。而这个“单元地址”中存放的内容称为“单元内容”,“单元内容”就是存储在内存中的一串数据,它既可以表示操作指令,也可以表示需要被操作的数据。内存的作用是存储需要被执行的程序和需要被处理的数据。在内存的操作用,有读操作和写操作两种。

  读操作:首先将访问内存单元的地址放入CPU的内存地址寄存器(MAR),然后发送读信号通知内存,由此,内存将该单元中存放的数据传送至内存数据寄存器(MDR)。

  写操作:首先将被访问内存单元的地址放入内存地址寄存器(MAR),然后将要写入的数据放入内存数据寄存器(MDR),最后向内存发送写信号。由此,内存数据寄存器(MDR)的内容被写入内存地址寄存器(MAR)指向的单元。

  

  2、处理单元

  处理单元式处理信息的地方,它由各种各样的功能单元组成,每个功能单元又由各种各样的门电路组成。其中最简单的功能单元是ALU“算术逻辑运算单元”。ALU所能完成的功能是基本运算(如ANDSUBTRACT)和基本逻辑操作(如按位ANDORNOT)等。功能单元所能处理的量化大小通常称为计算机的“字长”。比如如果该计算机的功能单元能够处理的是16-bit字长的数据,则称这台计算机为16为机器。而现在普遍所用的计算机的字长通常是32bit,也称32位机器;对于专门用于计算的机器用的可能就是64位机器;而作为通信设备这些简单的处理器,可能用8为救足够了,不过这也是在发展的。

  通常,在设计中会为功能单元在其附近配置少量的存储器,用于储存它最近生成的中间计算结果。例如,在(A+B)·C的计算过程中,它可能会将A+B的结果保存在内存中,但随后与C相乘之时,还要再次从内存中读出来,这显然浪费了很多时间。所以,我们就在处理单元旁边配备了临时存储空间,用来存放A+B的结果,在进行下一步乘法运算时,直接从这个存储空间中间A+B的结果取出来用就行了。这样就避免了过于频繁地访问内存,提高了运算速度。这些临时存储空间称为缓存。现在的处理器已经做到采用二级缓存,甚至三级缓存了。缓存的要求是读取数据的速度要快,所以要采用特殊材料,价格也比较昂贵,所以无法做的很大。一般缓存大小在1MB2MB左右。

  

  3、输入和输出单元

  信息能够被计算机处理的前提是信息必须输入计算机。同样,信息被处理后的结果也必须通过显示、打印等方式输出至计算机外部。我们称这些相关的设备为输入/输出设备。输入输出设备的种类很多。其中我们通常普遍使用的输入设备有键盘、鼠标、扫描仪、读卡器等,输出设备有显示器、打印机等。而在早期,输入和输出设备都是依赖穿孔卡片,那个机器我们已经几乎没有机会看到了。

  

  4、控制单元

  控制单元所扮演的角色如同乐队的指挥,它用来控制其他所有单元之间的协同工作,是整个CPU的指挥控制中心,由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器0C(OperationController)三个部件组成。

 

  指令寄存器:用以保存当前执行或即将执行的指令的一种寄存器。指令内包含有确定操作类型的操作码和指出操作数来源或去向的地址。指令长度随不同计算机而异,指令寄存器的长度也随之而异。计算机的所有操作都是通过分析存放在指令寄存器中的指令后再执行的。指令寄存器的输人端接收来自存储器的指令,指令寄存器的输出端分为两部分。操作码部分送到译码电路进行分析,指出本指令该执行何种类型的操作;地址部分送到地址加法器生成有效地址后再送到存储器,作为取数或存数的地址。

 

  程序计数器:指明程序中下一次要执行的指令地址的一种计数器,又称指令计数器。它兼有指令地址寄存器和计数器的功能。当一条指令执行完毕的时候,程序计数器作为指令地址寄存器,其内容必须已经改变成下一条指令的地址,从而使程序得以持续运行。

 

    操作控制器:根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。CPU内的每个功能部件都完成一定的特定功能。信息在各部件之间传送及数据的流动控制部件的实现。通常把许多数字部件之间传送信息的通路称为“数据通路”。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,就是由“操作控制器”的部件来完成的。

  

  

  

  

  







https://wap.sciencenet.cn/blog-489092-394297.html

上一篇:计算机学习漫谈(9)——数字逻辑浅析
下一篇:计算机学习漫谈(1)——冯·诺依曼其人
收藏 IP: .*| 热度|

1 唐常杰

发表评论 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-12 08:37

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部