计算机系统概述---1.1计算机基本工作原理

目录

1.1.1 冯·诺依曼结构基本思想

1.1.2 冯·诺依曼机基本结构

1.1.3 程序和指令的执行过程


1.1.1 冯·诺依曼结构基本思想

1945年,冯·诺依曼发表了全新的存储程序通用电子计算机方案,宣告了现代计算机结构思想的诞生。

''存储程序"的方式的基本思想是:将程序和数据事先存入主存储器中,计算机在工作时按一定顺序从存储器中取出指令加以执行。

从计算机诞生以来,尽管硬件技术已经经历了电子管,晶体管,集成电路和超大规模集成电路4个发展阶段,计算机体系结构也取得了巨大的发展,但绝大部分通用计算机的硬件组成依然具有冯·诺依曼结构特征。

冯·诺依曼结构基本思想主要包括以下几个方面:

1.采用“存储程序”工作方式

2.计算机由运算器,控制器,存储器,输入设备和输出设备5个基本部件组成

3.存储器不仅能存放数据,也能存放指令,形式上数据和指令没有区别,但计算机应能区分他们;控制器应能自动执行指令;运算器应能进行算数运算,也能进行逻辑运算;操作人员可以通过输入/输出设备使用计算机

4.计算机内部以二进制形式表示指令和数据;每条指令有操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序

1.1.2 冯·诺依曼机基本结构

根据冯·诺依曼结构基本思想,可以给出一个模型计算机的基本硬件结构

 模型机中主要包括:

 1.用来存放指令的数据的主存储器,简称为主存内存; 

2.用来进行算术逻辑运算的部件,即算数逻辑部件(简称ALU),在ALUop的控制下,ALU可以对输入端A和B进行不同的运算,得到结果F;

3.用于自动逐条取出指令并进行译码的部件,即控制部件(简称CU),也称控制器

4.用来与用户交互的输入设备输入设备

为了临时存放从主存取来的数据或运算结果,需要若干通用寄存器,组成通用寄存器组(GPRs),ALU两个输入端A和B的数据来自通用寄存器;ALU会产生标志信息,例如是否为0,是否为负,这些信息会记录在专门的标志寄存器中;从主存取来的指令需要临时存储在指令寄存器(IR);CPU为了按序读取指令,还需要一个程序计数器(PC),在执行指令的过程中,自动计算出下一条指令的地址并送到PC中保存。我们把这些互相组成的电路成为中央处理器(CPU),简称处理器

CPU需要从通用寄存器中取数据到ALU运算,或把ALU的运算结果保存到通用寄存器中,因此,需要给每个通用寄存器编号;同理,主存中每个单元也需要编号,成为主存单元地址(主存地址)。通用寄存器和主存都属于存储部件,通常计算机中的存储部件从0开始编号。

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

1.1.3 程序和指令的执行过程

冯·诺依曼结构计算机的功能通过执行程序来实现,程序的执行就是所包含指令的执行

指令用来指示CPU完成特定操作,例如:取数指令从主存单元中取出数据并存放到通用寄存器中;存数指令将通用寄存器的内容写入主存单元;加法指令将两个通用寄存器内容相加送入结果寄存器;传送指令将一个通用寄存器内容送到另一个通过寄存器。

指令通常被划分为若干个字段,有操作码,地址码等字段。操作码字段指出指令的操作类型,如取数,存数等等;地址码字段指出指令所处理的操作数的地址,如寄存器编号,主存单元编号等等。

下面将举例一个简单的例子来说明计算机上程序和指令的执行过程

假定一台字长为8位的模型机;有4个通用寄存器r0~r3,编号分别位0~3;有16个主存单元,编号为0~15。每个主存单元和CPU中的ALU,通用寄存器,IR,MDR的宽度都是8位,PC和MAR的宽度都是4位;总线中有4位地址线,8位数据线和若干位控制线。该模型机每条指令8位,指令分为R型和M型2种,如图

op为操作码字段,R型指令的op为0000,0001时,分别定义为传送和加操作,M型指令的op为1110和1111时,分别定义为取数和存数操作;rs和rt为通用寄存器编号;addr为主存单元地址

R[r]表示编号为r的通用寄存器的内容,M[addr]表示地址为addr的主存单元内容,“←”表示从右向左传送数据。例如指令1110 0110的功能为R[0]←M[0110],表示将6号主存单元(0110转化为十进制为6)中的内容取到0号寄存器

若要实现z=x+y,x和y分别在主存5号和6号单元中,结果z存放在7号单元中,则相应程序在主存单元中初始内容如图(Ii表示第i条指令)

 “存储程序”工作方式规定,程序执行前,需将程序包含的指令和数据先送入主存,一旦程序启动,计算机必须能够不需干预的情况下自动完成程序。每条指令的执行过程包括:从主存取指令,对指令进行译码,PC增量,取操作数并执行,将结果送主存或寄存器保存。

每条指令执行过程中,都需要计算下条将执行指令的主存地址,并送到PC中。顺序型指令,则下条指令地址为PC的内容加上当前指令的长度;跳转型指令,则下条指令地址为指令中指定的目标地址。

下图为实现z=x+y的每条指令执行过程

指令执行各阶段都有若干个微操作,微操作需要相应的控制信号进行控制

 例如:取数阶段R[0]←M[addr] 微操作有:MAR←addr;控制线←Read;R[0]←MDR

ALU操作信号ALUop可以控制ALU进行不同的运算。例如,ALUop←mov时,ALU的输出F=A;ALUop←add时,ALU的输出F=A+B

微操作中Read,Write,mov,add等微操作控制信号都是控制部件对op字段进行译码后送出的。每条指令执行中,微操作具有先后顺序关系,需要定时信号进行定时。通常,CPU所以微操作都是由时钟信号进行定时,时钟信号的宽度为一个时钟周期。一条指令的执行时间包含一个或多个时钟周期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值