1.1.2 冯·诺依曼机的基本结构

根据冯·诺依曼结构的基本思想,可以给出一个模型计算机的基本硬件结构。如图1.1所示,模型机中主要包括:用来存放指令和数据的主存储器,简称主存内存;用来进行算术逻辑运算的运算器,即算术逻辑部件(Arithmetic Logic Unit,ALU),在ALU操作控制信号ALUop的控制下,ALU可以对输入端AB进行不同的运算,得到结果F;用于自动逐条取出指令并进行译码的部件,即控制部件(Control Unit,CU),也称控制器;用来和用户交互的输入设备和输出设备。

图1.1 模型机的基本硬件结构

在图1.1中,为了临时存放从主存取来的数据或运算的结果,还需要若干通用寄存器(General Purpose Register),组成通用寄存器组(GPRs),ALU两个输入端AB的数据来自通用寄存器;ALU运算的结果会产生标志信息,例如,结果是否为0(零标志ZF)、是否为负数(符号标志SF)等,这些标志信息需要记录在专门的标志寄存器中;从主存取来的指令需要临时保存在指令寄存器(Instruction Register,IR)中;CPU为了自动按序读取主存中的指令,还需要有一个程序计数器(Program Counter,PC),在执行当前指令的过程中,自动计算出下一条指令的地址并送到PC中保存。通常把控制器、运算器和各类寄存器互连组成的电路称为中央处理器(Central Processing Unit,CPU),简称处理器

CPU需要从通用寄存器中取数据到ALU中进行运算,或把ALU运算的结果保存到通用寄存器中,因此,需要给每个通用寄存器编号;同样,主存中每个单元也需要编号,称为主存单元地址,简称主存地址。通用寄存器和主存都属于存储部件,计算机中的存储部件从0开始编号,例如,图1.1中4个通用寄存器的编号分别为0、1、2、3,16个主存单元编号为0~15。

为了从主存取指令和数据,CPU需要通过传输介质和主存相连。通常把连接不同部件进行信息传输的介质称为总线,其中包含用于传输地址信息、数据信息和控制信息的地址线、数据线和控制线。CPU访问主存时,需先将主存地址、读/写命令分别发送到总线的地址线、控制线,然后通过数据线发送或接收数据。CPU发送到地址线的主存地址应先存放在主存地址寄存器(Memory Address Register,MAR)中,发送到数据线或从数据线获取的信息存放在主存数据寄存器(Memory Data Register,MDR)中。