冯·诺依曼计算机以运算器为中心。并发
1.计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。ui
2.指令和数据以同等地位存放在存储器中,并可按地址寻访。spa
3.指令和数据均用二进制数表示。对象
4.指令由操做码和地址码组成,操做码用来表示操做的性质,地址码用来表示操做数在存储器中的地址。blog
5.指令在存储器中按顺序存放。一般,指令是顺序执行的,在特定条件下,可根据运算结果或根据特定的条件改变执行顺序。ip
6.机器以运算器为中心,输入输出设备与存储器之间的数据传输经过运算器完成。内存
冯·诺依曼模型要求程序必须存储在内存中,现代计算机的存储单元用来存储程序及其响应数据,这就意味着数据和程序应该具备相同的格式,这是由于它们都存储在存储器中。ci
实际上它们都是以二进制形式存储在内存中的。it
现代计算机已在冯·诺依曼体系结构的基础上转化为以存储器为中心。io
计算机的5大部件在控制器的指挥下,有条不紊的完成各项任务。
1. 运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器中。
2.存储器用来存放数据和程序。
3.控制器用来控制、指挥程序和数据的输入、运行以及处理运算结果。
4.输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式。
5.输出设备可将机器运算结果转换为人们熟悉的信息形式。
因为运算器和控制器在逻辑关系和电路结构上联系紧密,在大规模集成电路技术成熟后,将运算器和控制器集成在同一个芯片上,合称为中央处理器(CPU, Central Processing Unit)。
此外,CPU中还有一些寄存器组。即CPU由运算器、控制器、寄存器组构成。
因为运算器和控制器被集成为CPU,因此可认为现代计算机由三大部分组成:CPU、I/O设备(Input/Output Equipment)、主存储器(MM, Main Memory)。
算术逻辑单元 (ALU, Arithmetic Logic Unit) 用来完成算术运算和逻辑运算。
控制单元(CU, Control Unit)用来解释存储器中的指令,并发出各类操做指令来执行指令。
这里讨论的是主存,即内存。
主存储器包括存储体、MAR、MDR、各类逻辑部件及控制电路。
一个主存储器(内存条)由多个存储体组成,一个存储体中有许多存储单元,一个存储单元中有若干个(八、1六、32个等)存储元件;
每一个存储元件能存储一个二进制数 “0” 或 “1”;
一个存储字能够表示一个二进制数、十进制数、十六进制数、一串字符、ASCII码、一条指令等。
如:存储字0011011001111101,表示16位的二进制数,表示十进制数13949,表示十六进制数367DH,表示两个ASCII码“6”和“}”,表示某条指令。
指令与数据保存在存储器中;
如,将编写好的程序的各条指令预先存入各存储单元,当运行程序时,只要给出程序首条指令在主存中的首地址,而后采用程序计数器加1的方法,自动造成下一条指令所在存储单元的地址,机器即可自动完成整个程序的运行。
又如,当须要重复使用某个数据或某条指令时,只要指出其相应的存储单元地址号便可,没必要占用更多的存储单元重复存放同一数据或同一指令,从而提升存储空间利用率。
MAR(Memory Address Register), 存储器地址寄存器。
MDR(Memory Data Register),存储器数据寄存器。
运算器功能:执行各类算术运算和逻辑运算操做的部件。
运算器的基本操做包括加、减、乘、除四则运算;与、或、非、异或等逻辑运算;以及移位、比较和传送等操做。
|
累加器 ACC (Accumulator) |
MQ (Multiplier-Quotient Register) 乘商寄存器 |
X 操做数寄存器 |
加法 |
被加数 |
—— |
加数 |
和 |
|||
减法 |
被减数 |
—— |
减数 |
差 |
|||
乘法 |
乘积高位 |
乘数 |
被乘数 |
乘积低位 |
控制器的功能:解释指令,保证指令的按序执行。
PC:程序计数器 (Program Counter)。
IR:指令寄存器 (Instruction Register)。
1.取指令:命令存储器读出一条指令。
动做部件:程序计数器PC。
存放当前将要执行指令的地址,具备计数功能(PC)+1→PC,便可造成下一条指令地址。PC与主存的存储器地址寄存器MAR之间有一条直接通路。
PC→MAR→M→MDR→IR
动做部件:指令寄存器IR。
存放当前将要执行的指令;将IR中指令的操做码送至CU,用来分析;将IR中指令的地址码送至存储器的MAR,做为操做数的地址。
OP(IR):IR中指令的操做码。OP(IR)→CU
AD(IR):IR中的指令地址码。AD(IR)→MAR
2.分析(解释)指令:分析该指令要完成那些操做,明确操做数的地址。
动做部件:控制单元CU。
分析当前指令所须要完成的操做。
3.执行指令:根据操做数所在的地址和指令的操做码完成某种操做。
动做部件:控制单元CU。
发出各类微操做命令序列,控制全部被控对象完成动做。