目录
一、 冯·诺依曼机基本思想
二、计算机的功能部件
1、输出输入设备
2、存储器
3、运算器
4、控制器
三、指令执行过程的描述
一、 冯·诺依曼机基本思想
首先,第一个问题,冯·诺依曼是谁?小编第一次知道这个名字,并不是因为计算机,而是刘慈欣的《三体》小说,当时ETO里有一个破壁人的ID就叫冯·诺依曼,第一个完成了破壁任务。一想到另外两个破壁人ID叫做墨子和亚里士多德,我知道历史上的墨子和亚里士多德是谁,我于是推断出冯·诺依曼应该也是个牛人。
那么,冯·诺依曼到底干了什么?我们上一篇文章中讲到过,第一代计算机EDVAC是特别庞大复杂的机器,并且当时需要手动接线来控制运算。有一部电影叫《模仿游戏》,小编强烈建议大家看看,男主是计算机之父图灵,他当时为了算出德军的密码,造了一台特别大的破译器,当时手动操作接各种线路,可麻烦了。冯·诺依曼面对这种复杂的缺陷提出来了“存储程序”的概念,存储程序的基本思想是将事先编制好的程序和原始数据送入主存后才能执行,一旦程序被启动执行,就无需操作人员干预,计算机会自动逐条执行指令,直到程序结束。以此概念为基础设计的计算机称为“冯·诺依曼”机器。
我相信有很多读者表示不服,肯定要说,这存储程序的概念还需要想?这不是随便找个人就能想得出来吗?但是,如果把你扔到那个时代,你真的能想出来吗?万有引力大家现在都知道,但如果把你扔到十七世纪,你真的能代替牛顿发现万有引力吗?
冯·诺依曼机有下列特点:
a.采用“存储程序”的工作方式
b.计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成,更详细的请看小编下面写的内容。
c.指令和数据以同等地位存储在存储器中,且计算机能够区分二者
d.指令和数据均以二进制的形式表示。指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址
e.以运算器为中心(现代计算机以存储器为中心)
五大部件里面运算器与控制器合称为CPU,CPU与存储器又合称为主机。
二、计算机的功能部件
1、输出输入设备
我们把输出输入简称为I/O,即Input和Output。输入设备的功能为将程序和数据以机器所能识别和接受的信息形式输入计算机。常见的输入设备有键盘、鼠标、扫描仪、摄像机等等。
而输出设备则能将计算机处理的结果以人们所能接受或其他系统所要求的信息形式进行输出。常见的输出设备有显示器、打印机。
2、存储器
从这里开始到这篇文章的结束,将是本篇文章的难点,但是小编相信大家都能克服这些困难。存储器从形式上可以分为主存储器(又称内存储器)和辅助存储器(又称外存储器),比如说磁盘就是属于辅助存储器。CPU可以直接访问主存储器,而辅助存储器的信息必须调用主存后,才能被CPU访问。
从上面那幅图可以看出,主存又分为了三部分:存储体、MAR与MDR。大家先猜一猜,已知M代表的是memory(内存),R代表的是register(寄存器),那么A与D分别代表什么意思?
正确答案是A代表地址address而D代表数据data。怎么样,读者们有没有猜对呢?
所以MAR的中文全称是地址寄存器,MDR的全称是数据寄存器。存储体存放二进制信息,地址寄存器MAR存放访存地址,而数据寄存器MDR用于暂存要从存储器中读或写的信息。
另外,上篇文章最后挖的坑,主存储器的内存怎么运算?MAR用于寻址,其位数对应着存储单元的个数。比如说内存一共有512个单元,那么根据2的9次方为512,MAR有9位。而MDR的位数与存储字长相等,一般为字节的2次幂的整数倍。如果MAR为16位,MDR为32位。那么,根据上篇文章的公式主存容量= 存储单元×存储单元字长。那么,主存容量为bits,其中二的十次方又称为1k,所以可以化简为64k×32位。
同时特别容易搞错的一点是:存储字长、机器字长以及指令字长,三者未必相等!!
3、运算器
运算器是冯诺依曼机的中心,是计算机的执行部件,听这个名字就知道是极其重要的。以下是运算器的相关属性:
功能:计算机执行部件,对数据进行加工处理,能对数据进行加工处理,完成算术运算和逻辑运算。
核心:算数逻辑单元ALU
组成:由算术逻辑单元ALU、暂存寄存器、累加寄存器ACC、通用寄存器组、程序状态字寄存器PSW、位移器、计数器等组成。
特别容易错的一个点是,很多⼈看到程序状态字寄存器PSW,就想到这应该是控制程序的寄存器,那么应该是控制器的一部分。但实际上,PSW属于运算器的一部分,保留的是每次运算后的一些运算特性。
4、控制器
功能:计算机的指挥中⼼,由其指挥各个部件自动协调的进⾏工作
组成:程序计数器PC、指令寄存器IR、控制单元CU
程序计数器PC:⽤来存放当前欲执行指令的地址,(PC)+“1”可以形成下⼀条指令的地址,并且与MAR之间有⼀条直接通路
指令寄存器IR:⽤来存放当前的指令,其内容来自主存的MDR,其中OP(IR)代表操作码, 用于分辨出执行什么操作;AD(IR)代表地址码,用于取操作数
注意:指令在存储器内按顺序存放,通常,指令时顺序执行的,但在特定条件下可以根据
运算结果或根据设定的条件改变执行顺序
三、指令执行过程的描述
每条指令均是在取址、译码和执行的循环中完成的
取指令:PC->MAR->M->MDR->IR
分析指令:OP(IR)->CU
执行指令:Ad(IR)->MAR->M->MDR->ACC
形成下⼀条指令的地址:(PC)+1->PC
如果你觉得在看天书,别慌,第一章只是一个简介与总结的内容,后续会慢慢讲解这些过程的!