《计算机组成原理》复习笔记
1.1.2 计算机系统的层次结构
5级层次结构,由上到下依次为
虚拟机器M4(高级语言机器):用编译程序翻译成汇编语言程序
虚拟机器M3(汇编语言机器):用编译程序翻译成机器语言程序
虚拟机器M2(操作系统机器):用机器语言解释操作系统
传统机器M1(机器语言机器):用微程序解释机器指令
传统机器M0(微指令系统):由硬件直接执行微指令
1.1.3 计算机组成与计算机体系结构
两个抽象概念:
计算机体系结构:能被程序员见到的计算机系统的属性,即概念性的结构与功能特性。
例如,使用机器语言编程的程序员所看到的传统机器的属性,包括指令集、数据结构、存储器寻址结构、I/O机理等,大都属于抽象的属性。
计算机组成:如何实现计算机体系结构所体现的属性,包含许多对程序员来说是透明的(即不清楚怎样实现,但可以用)硬件细节。
1.2.1 冯·诺伊曼计算机的特点
1.2.2 计算机的硬件框图
典型的冯诺依曼计算机是以运算器为中心的:
(Page 9 图1.7 典型的冯诺依曼计算结构框图)
数据从输入设备进入运算器,运算后结果进入输出设备并输出。同时在运算过程中,存储器与运算器交换数据。存储器也向控制器传送数据。
控制器对I/O设备、运算器、存储器都有控制作用,这些器件对控制器进行反馈。
现代的计算机已经转化为以存储器为中心:
Page 9 图1.8以存储器为中心的计算机结构框图
输入设备直接传送数据给存储器,存储器和运算器交换数据后传送给输出设备输出数据。同时存储器向控制器传送数据。
控制器与各部件的控制与反馈关系不变。
其中各部件的功能:
由于运算器和控制器在逻辑关系和电路结构上十分相近,故在大规模集成电路制作工艺出现后,这两大部件一般集成在同一芯片上,将它们合成中央处理器(Central Processing Unit, CPU)。CPU与主存储器合起来称为主机,I/O设备成为外部设备。
(见Page 10 图1.9 现代计算机的组成框图)
1.2.3 计算机的工作步骤
几大部件,一一解释:
包括 存储体M,MDR(Memory Address Register,存储器地址寄存器),MAR(Memory Data Register,存储器数据寄存器),
存储体M:
由存储单元组成,每个存储单元包含若干存储元件(存储基元、存储元),每个存储元寄存一位二进制代码0/1,所以一个存储单元存储一串二进制代码,这串二进制代码的位数成为存储字长。
由于数据和指令都存放在存储体内,各自所占用的存储单元不同,因此,当需要反复使用某个数据或某条指令时,只要指出其相应的单元地址号即可,而不必占用更多的存储单元重复存放同一个数据或同一条指令,大大提高了存储空间的利用率。此外由于指令和数据都由存储单元地址号来反映,因此取一条指令和取一个数据的操作完全可视为是相同的,这样就可使用一套控制线路来完成两种截然不同的操作。
为了适应指令和数据字长的可变性,存储子长、指令字长、数据字长三者可各不相同,但必须都是字节的整数倍。
运算器最少包括3个寄存器和一个算术逻辑单元(ALU)
三个寄存器:
ACC:累加器
MQ:乘商寄存器
X:操作数寄存器
完成一条指令操作的三阶段:
取指阶段:控制器命令存储器读出一条指令
分析阶段:控制器对指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指出操作数的地址
执行阶段:根据操作数所在的地址以及指令的操作码完成某种操作
控制器由 程序计数器(Program Counter, PC)、指令寄存器(Instruction Register, IR)、控制单元(Control Unit, CU)组成
PC:存放当前欲执行指令的地址;与主存的MAR有一条直接通路。具有自动+1的功能,即可自动形成下一条指令的地址。Ad(IR)送至存储器的MAR。
IR:存放当前的指令,IR的内容来自主存的MDR。
CU:分析指令。IR中的操作码OP(IR)送至CU。
1.3.2 存储容量
存储器的容量包括主存容量和辅存容量。单位一般为字节B。
1.3.3 运算速度
机器的运算速度普遍采用单位时间内执行指令的平均条数衡量。MIPS(百万条指令每秒)作为计量单位。
第三章 系统总线
3.1 总线的基本概念
3.2 总线的分类
3.2.1 片内总线
芯片内部的总线,比如CPU芯片内部,寄存器与寄存器之间,寄存器与算逻单元之间都由片内总线连接。
3.2.2 系统总线
系统总线是指CPU、主存、I/O设备各大部件之间的信息传输线。也称板间总线。
按总线传输信息的不同,分为数据总线、地址总线、控制总线。
传输功能部件之间数据信息,双向传输。
指出数据总线上的源数据或目的数据在主存单元的地址或者I/O设备的地址。由CPU输出,单向传输。
地址总线的位数与存储单元的个数有关。
发出各种控制信号的传输线。
3.3 总线特性及性能指标
3.3.2 总线性能指标
3.5 总线控制
3.5.1 总线判优控制
只有主设备对总线有控制权,从设备只能响应主设备发来的总线命令。
总线判优控制可分为集中式和分布式,其中常见的集中式有三种
只需3根线就能实现总线控制,容易扩充设备。单对电路故障很敏感,且优先级别低的设备很难获得请求。
在链式查询中,离总线控制部件最近的设备具有最高的优先级。
需要2+log2(n)条线。
一旦设备优先次序被固定,设备的优先级就按0-n的顺序降序排列,固定不变。
也可以从上一次计数的终止点开始,总体来看是一种循环。
计数器初始值也可以由程序设置,故优先次序可以改变。
需2n条线。
总线控制部件中有一个排队电路,可根据优先次序确定响应哪一台设备的请求。
响应速度快,优先次序控制灵活。但线路多,总线控制更复杂。
3.5.2 总线通信控制
各部件分时共享总线。
完成一次总线操作的时间称为总线周期,一般有四个阶段:
总线通信控制解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。通常有四种方式:
通信双方由统一时标控制数据传送。时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
读命令:
T1:主模块发地址
T2:主模块发读命令
T3:从模块提供数据
T4:主模块撤销读命令,从模块撤销数据。
写命令:
T1:主模块发地址
T1.5:主模块提供数据
T2:主模块发写命令,从模块接收到命令后,必须在规定时间内将数据总线上的数据写到地址总线所指明的单元中。
T4:主模块撤销写命令和数据等信号。
优点:统一明确,模块间配合简单一致。
缺点:部件速度各不相同时,必须按照最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
数据传输率:总线每秒传输的字节数
主模块发出请求信号后,不必接到从模块的回答信号,而是经过一段时间,确认从模块已经收到请求信号后,便撤销其请求信号。
从模块接到请求信号后,在条件允许是发出回答信号,并且经过一段时间,确认主模块已收到回答信号后,主动撤销回答信号。
(?怎么确认的?)
主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号;有互锁关系。
从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔一段时间以后自动撤销其回答信号,无互锁关系。
主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号;有互锁关系。
从模块在接到请求信号后发出回答信号,必须等待获知主模块的请求信号已经撤销后,再撤销其回答信号。
双方存在互锁关系。
异步串行通信的数据传送速率用波特率来表示。
波特率:单位时间内传送二进制数据的位数,单位bps(bit/s),记作波特。
异步串行通信没有同步时钟,也不需要再数据传送中传送同步信号。约定字符格式为:1个起始位(低电平),5~8个数据位,1个奇偶检验位,1/1.5/2个终止位(高电平)。其中,数据位从左到右传送顺序是:字符的最低位到最高位。
比特率:单位时间内,传送二进制有效数据的位数,单位bps。
为了提高速度,讲异步串行传送中的附加位去掉,就可以采用同步传送。在同步传送时,数据块开始处要使用同步字符SYN来指明。
插入时钟周期。