计算机组成原理复习
冯诺依曼计算机特点
- 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成
- 指令与数据以同等地位存放在存储器,并可按地址寻访
- 指令与数据均以二进制数表示
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
- 指令在存储器中顺序存放。通常也顺序执行,在特定条件下,可根据运算结果或设定条件改变执行顺序
- 机器以运算器为中心,输入输出设备与存储器间的数据传递通过运算器完成
细化的计算机组成框架
主存储器
- 主存储器包括存储体M、各种逻辑部件及控制电路。存储体由许多存储单元组成,每个存储单元包含若干个存储元件(称存储元、存储基元),每个存储元件能寄存以为二进制代码
- 主存的工作方式是按存储单元的地址号来实现对存储字各位的存(写)、取(读)。这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)
- 为了能实现按址访问的方式,主存中还需要配置两个寄存器MAR和MDR
MAR
(Memory Address Register)
是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数(如MAR为10 位,则由210=1024个存储单元,记为1K)MDR(Memory Data Register)
是存储器数据寄存器,用来存放从存储体的某个单元取出的代码或者准备往某个存储单元存入的代码,其位数与存储字长相等
- 现代计算机为了适应指令和是字长可变,其长度不由存储字长来确定,而是由字节的个数来表示,1个字节(byte)被定义为8位(bit)二进制代码组成,此时存储字长、指令字长、数据字长三者可不相等,但必须是字节整数倍
运算器
- 运算器最少包括3个寄存器(现代计算机内部往往设有通用寄存器组)和一个算术逻辑部件(ALU)。其中ACC为累加器、MQ为商乘寄存器、X为操作数寄存器,这三个寄存器完成不同运算时,所放的操作数也各不相同
- ACC在加法运算中存储被加数以及和;在减法运算中存储被减数以及差;乘法运算中存储乘积高位;在除法运算中存储被除数以及余数,MQ在乘法运算中存储乘数以及乘积低位;在除法运算中存储商,X在加法运算中存储加数;在减法运算中存储减数;在乘法运算中存储被乘数;在除法运算中存储除数
控制器
- 控制器是计算机的神经中枢,由他指挥各部件自动、协调地工作。具体而言它首先要命令存储器读出一条指令,称为取址过程。接着对该指令分析,指出该指令要完成的操作,并按寻址特征指明操作数的地址,称为分析过程。最后根据操作数所在的地址及指令的操作码完成操作,称为执行过程。
- 控制器由程序计数器(Program Counter,PC)、指令寄存器(Instruction Register)以及控制单元(Control Unit,CU)
- PC用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,并具有自动加1功能,即可自动形成下一条指令的地址。
- IR用来存放当前的指令,IR的内容来自主存的MDR,IR中的操作码(OP(IR))送至CU,记作OP(IR)→CU,用来分析指令;其地址码(Ad(IR))作为操作数的地址送至存储器的MAR,记作
Ad(IR)→MAR
- CU用来分析当前指令所需要完成的操作,并发出各种微操作命令序列,用以控制所以被控的对象
I/O设备
CPU工作过程
控制单元在时序脉冲的作用下,将指令计数器里所指向的指令地址(这个地址是在内存里的)送到地址总线上去,然后CPU将这个地址里的指令读到指令寄存器进行译码。对于执行指令过程中所需要用到的数据,会将数据地址也送到地址总线,然后CPU把数据读到CPU的内部存储单元(就是内部寄存器)暂存起来,最后命令运算单元对数据进行处理加工。周而复始,一直这样执行下去!
计算机硬件主要的技术指标
-
机器字长 机器字长是指CPU一次能处理数据的位数,通常与CPU的寄存器位数有关
-
存储容量 存储器的容量应该包括主存容量和辅存容量,主存容量是指主存中存放二进制代码的总位数
存储容量 = 存储单元的个数 X 存储字长
MAR的位数反映存储单元的个数(如MAR为10 位,则由210=1024个存储单元,记为1K),MDR的位数等于存储字长,现代计算机常用字节来描述容量的大小,因为一个字节等于8 位二进制代码,故可以用字节数反映主存容量。
- 运算速度
早期用完成一次加法或乘法所需的时间来衡量运算速度即普通法
后来采用吉普森法,综合考虑每条指令的执行时间以及它们在全部操作中所占的百分比
TM为机器运行速度;fi为第i种指令站全部操作的百分比;t为这种指令的执行时间
现代计算机普遍采用单位时间内执行指令的平均条数来衡量,并用MIPS(Million Instruction Per Second,百万条指令每秒)。也可以用CPI(Cycle Per Instruction)即执行一条指令所需的时钟周期(机器主频的倒数)。或者用FLOPS(Floating Point Operation Per Second,浮点运算次数每秒)
总线的基本概念
总线和总线信息传输的特点
总线是连接多个部件(模块)的信息传输线,是各部件共享的传输介质。而且在某以时刻允许一个部件向总线发送信息,但多个部件可以同时从总线上接收相同的信息
总线的传输周期
总线的传输周期是指一次总线操作所需的时间,简称总线周期(包括申请阶段、寻址阶段、传送阶段和结束)
总线宽度
总线宽度又称总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数。
总线带宽
总线宽度可以理解为总线的传输速率,即单位时间内总线上传输数据的位数,通常用每秒发送字节数衡量,其单位为MBps(兆字节每秒)。
总线特征
总线特征是指机械特征、电气特征、功能特征以及数据特征。
总线标准
总线标准为计算机系统各模块的互联提供一个标准界面(接口),该界面对它两端的模块是透明的,即界面的任一方需根据总线标准的要求来实现自身一方的接口功能,而不必考虑对方与界面的接口方式
总线的主设备(模块)
总线主设备是指获得总线控制器的设备。
总线的从设备(模块)
总线的从设备是指被主设备访问的设备,只能响应从主设备发来的各种总线命令。
总线的分类(按连接部件分类)
- 片内总线:芯片内的总线,如CPU芯片内寄存器与寄存器,寄存器与算逻单元ALU的连接
- 系统总线:又称板级总线,连接CPU、主存、I/O设备(通过I/O接口)各部件之间的信息传输线,系统总线按传输信息的不同,可分为三类:
- 数据总线:用来传输各功能部件之间的数据信息,属于双向传输总线,其位数与机器字长、存储字长有关
- 地址总线:主要用来指出数据总线上的源数据或目的数据所在的主存单元的地址或I/O设备的地址,地址总线上的代码用来指明CPU欲访问的存储单元或I/O端口的地址,由存储输出,单向传输。地址线位数与存储单元的个数有关。
- 控制总线:用来发出各种控制信号的传输线。数据总线、地址总线都是被挂在总线上所有部件共享,如何使各部件能在不同时刻占有总线使用权。需要依靠控制总线完成,通常对任一控制线而言它的传输是单向的,但对应控制总线总体,可认为是双向的
常见的控制信号
时钟:用来同步各种操作。 复位:初始化所有部件。 总线请求:表示某部件获得总线使用权。 总线允许:表示需要获得总线使用权的部件已获得了控制权。 中断请求:表示某部件提出中断请求。 中断响应:表示中断请求一被接收。 存储器写:将数据总线的数据写至存储器指定地址单元内。 存储器读:将指定存储单元中的数据读到数据总线上。 I/O读:从指定I/O端口将数据读到数据总线上。 I/O写:将数据总线上的数据输出到指定I/O端口内。 传输响应:表示数据已被接收,或已将数据送至数据总线上
- 通信总线:连接计算机系统之间或计算机与其他系统其他系统之间的信息传输线,通信总线按传输方式可分为俩类
串行通信:是指数据在单条1位宽的传输线上,一位一位地按顺序分时传送 并行通信: 是指数据在多条并行1位宽的传输线上,同时由源传送到目的地.
串行通信和并行通信数据传输速率都与距离成反比。但并行通信适用于近距离的数据传输,串行通信适用于远距离的数据传输。