目录
声明:文中涉及的照片均来自计算机组成原理(上)_哈尔滨工业大学_中国大学MOOC(慕课)~
1. 计算机组成原理概论
计算机:数字电子计算机
组成:计算机硬件系统的逻辑实现
原理:不以具体机型为依托的,基本实现原理。
计算机组成原理:掌握如何实现的具体细节。
1.1 计算机系统简介
计算机系统由两大部分组成:硬件和软件。软件又包括系统软件和应用软件。
系统软件可以管理整个计算机系统:
- 语言处理程序(将高级语言转换为机器可以懂的指令)
- 操作系统
- 服务性程序(比如数学库、MPI服务程序进行并行之间的通信)
- 数据库管理系统
- 网络软件
应用软件是按照任务需要编制成的程序。
可以简单将软硬件看作一个层次结构,硬件为软件提供接口,系统软件又为应用软件形成接口,来完成不同的程序。
对于计算机的物理结构层次,我们这门课主要研究逻辑层和微电路层的具体实现方式。
计算机系统的指令层次如下图所示
操作系统可以管理软硬件的资源。
计算机系统结构定义了系统软硬件的交界面,定义了哪些功能由软件实现,哪些功能由硬件实现,定义为==程序员所见到的计算机系统的属性概念性的结构与功能特性==。(指令系统,数据类型,寻址技术,I/O机理),即程序员需要理解的东西。
计算机组成:实现计算机体系结构所体现的属性,即具体指令的实现。
1.2 计算机的基本组成
1.2.1 冯诺依曼结构
上图实线表示数据流动,虚线表示控制反馈。
- 计算机结构由五大部件组成:存储器、运算器、控制器、输入设备、输出设备。
- 以运算器为中心,==程序存储在存储器中==。
- 指令和数据以同等地位保存在存储器中,可以按照地址寻找。
- 指令和数据由二进制表示,指令由操作码和地址码组成,操作码指明指令要干什么,地址码指明操作数的地址。
冯诺依曼结构以运算器为中心,容易形成瓶颈。我们可以使用存储器作为中心来进行优化,但是还不够。
1.2.2 现代计算机硬件框图
指令和数据都是保存在存储器中的。
1.2.3 存储器的基本组成
MAR是存储器地址寄存器,保存了存储单元的地址和编号,长度反映存储单元的个数。
MDR是存储器数据寄存器,保存了要存入存储体的数据或刚从存储体拿出来的数据,长度反映存储字长。
利用MAR和MDR来将数据放入存储器。
1.2.4 运算器的结构
ALU(算术逻辑单元),通常是一个组合电路,输入撤销,输出也撤销,因此需要加上寄存器保存参与运算的计算。
数据寄存器X保存输入参数,ACC为累加寄存器,保存结果,乘法可能使得数据位数保存不下,使用MQ寄存器保存低位。
上表中存放了不同运算中,运算器的工作过程,以乘法为例,操作过程如下:
- 首先将被乘数取出来放到ACC中
- 从指令中的乘数地址M中取出乘数,送入MQ中
- 将被乘数送到X中
- 将ACC清零
- 完成乘法操作,结果由ACC和MQ保存
这些操作的过程顺序是由控制器来控制完成的。
1.2.5 控制器的基本结构
控制器的功能是解释指令(完成指令)、保证指令的按序执行。
下面以取数指令为例分析指令执行过程(取数送到ACC中)
- PC保存指令的地址,送到MAR进行寻址
- MAR根据地址到存储体中找到保存的指令
- MDR从存储体中取出指令
- 送到IR中,IR存放要执行的指令
- IR将操作码送入CU中进行分析
- 同时将地址码送到MAR中找这个数的数据
- MAR根据地址到存储体中找到要取的数
- MDR保存从存储体中取出的数
- CU控制下,将要取的数送到ACC中。
CU分析控制这些步骤的过程。
1.3 计算机硬件的主要技术指标
- 机器字长:CPU一次能处理数据的位数,与CPU中寄存器位数有关。
- 运算速度:主频、核数以及每个核支持的线程数、CPI(执行一条指令所需的时钟周期数)、MIPS(每秒执行百万条指令)、FLOPS(每秒浮点运算次数)。
- 存储容量:主存容量(可使用存储单元个数×存储字长来表示存储体容量,MAR * MDR)(也可使用字节数来表示)、辅存容量(字节数表示)。
2. 计算机的发展以及应用
2.1 计算机的发展史
第一台计算机,1946年ENIAC,十进制运算。
电子技术的发展与计算机体系结构技术的发展对计算机的发展产生了决定性作用。
根据硬件技术来对计算机进行划分代
电子管→晶体管→中小规模集成电路→大规模集成电路→超大规模集成电路
软件技术的发展:机器语言(面向机器)、汇编语言(面向机器)、高级语言(面向问题)。
2.2 计算机的应用
- 科学计算和数据处理
- 工业控制和实时控制
- 网络技术
- 虚拟现实
- 办公自动化和管理信息系统
- CAD/CAM/CIMS
- 多媒体技术
- 人工智能
3. 系统总线
3.1 总线(bus)的基本概念
总线是连接各个部件的信息传输线,是各个部件共享的传输介质,是信号的公共传输线。
如果使用单总线结构(系统总线),那么同时只能有一对部件进行信号传输,效率较低,使用双总线结构效率会更高。
上面的结构,无法在I/O和主存之间进行直接的信息传输,必须要通过CPU。
3.2 总线的分类
- 片内总线:芯片内部的总线。
- 系统总线:计算机各部件之间的信息传输线。可分为:
- 数据总线,双向的,一般小于等于机器字长和存储字长。
- 地址总线,单向的,与存储地址、I/O地址有关。
- 控制总线,双向(CPU发出存储器读写指令,总线允许,中断确认等;CPU接收中断请求、总线请求)
- 通信总线:计算机之间或计算机和其它设备之间的通信,并行通信总线和串行通信总线。
3.3 总线的特性和性能指标
总线印刷到电路板上(主板),其他设备插板插到主板上。
总线的性能指标:
- 总线宽度:数据线根数,同时可以传输多少位。
- 标准传输率:每秒传输的最大字节数MBps
- 时钟同步/不同步
- 总线复用:地址线与数据线是否可以复用
- 信号线数:地址线、数据线和控制线的总和
- 总线控制方式
- 其他指标:负载能力等
3.4 总线结构
增加了DMA(直接存储器访问)总线,外部设备直接访问存储器内存。高速设备直接通过DMA访问主存。
CPU与cache通过局部总线进行相连,扩展总线将外部设备连接。
高速设备和低速设备分离,分别连接到高速总线和扩展总线上。
PCI高速总线来连接高速设备,PCI总线可以通过桥来进行扩展。
3.5 总线控制
3.5.1 总线判优控制
通过是否能对总线发出占用请求,我们将设备分为主设备(主模块)和从设备(从模块)。主设备可以对总线有控制权,从设备响应从主设备发来的总线命令。
总线判优控制可以分为两种:集中式和分布式。下面介绍几种集中式的总线判优控制结构。
主设备通过BR申请总线的控制权,有设备在使用总线,则设置BS。总线控制部件通过BG来链式查询这些接口是否提出了BR,遇到了BR则交出控制权。
因此,优先顺序则为BG的查询顺序。这种结构对电路故障特别敏感,尤其是BG,如果BG后面出了问题,会导致后面的设备一直不会响应。
数据线用于数据的传输,地址线用于从设备的查找。通过设备地址线来查找某个设备是否发出总线请求。计数器的值通过设备地址线进行传输,来查找某个设备是否发出请求。可以自定义计数器的计数方式,来改变从哪个设备先查询等。
为每个I/O接口增加了BR和BG,通过排队器来进行优先级排队。这种方式使用的线数较多。
3.5.2 总线通信控制
为了解决通信双方(主从设备)协调配合的问题。
总线的传输周期(完成一次主从设备完整可靠的传输所需要的时间):
- 申请分配阶段:主设备申请,总线决定
- 寻址阶段:主设备向向从设备给出地址和命令
- 传数阶段:主设备和从设备进行交换数据
- 结束阶段:主从设备撤销有关信息
- T1,主设备给出地址信号
- T2,给出从设备的读命令信号
- T3,从设备给出数据,输出到总线,完成数据交换
- T4,撤销地址信号,结束周期
强制同步,如果设备之间速度不同,快的设备需要等慢的设备。
不互锁:不管从设备是否接收到请求信号,过段时间主设备都会撤销请求。不管主设备是否接收到应答信号,从设备多段时间都会撤销应答。
半互锁和全互锁针对上面进行改进。
增加等待响应信号,当wait为低电平,则等待一个T。
使用分离式通信来将总线空闲的时间也充分利用起来。
4. 存储器
4.1 概述
按照存取方式对存储器进行分类:
- 存取时间与物理地址无关(随机访问):随机存储器、只读存储器。
- 存取时间与物理地址有关(串行访问):顺序存取存储器(磁带)、直接存取存储器(磁盘)。
按照在计算机中的作用分类:
存储器的层次结构:
- 寄存器包括体系结构寄存器和非体系结构寄存器。
- 一部分缓存放在了CPU之中。
缓存——主存层次,使用硬件方法连接到一个整体(对程序员透明,即不需要了解),速度较快,解决CPU和主存之间速度差距较大的问题,缓存即为cache,CPU可以直接从缓存调用数据,cache和主存也进行数据交换。使用主存储器的实地址和物理地址。
主存——辅存层次,使用软硬件结合方式连接,容量较大,解决容量不足问题。这个层次称为虚拟存储器,使用虚地址和逻辑地址。