第一章 计算机概论
1. 冯诺依曼计算机特点及其框架图
- 计算机由运算器、存储器、控制器和输入输出设备五部分构成。
- 指令与数据以同等地位存放在存储器内,并可按地址寻访。
- 指令与数据均以二进制数表示。
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 指令在存储器中按顺序存放。通常,指令是按顺序执行,在特定条件下,可以根据运算结果或根据设定的条件改变执行顺序。
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成。
2.现代计算机的组成框图
CU(control unit)是控制单元,解释存储器中的指令,并发出各种操作命令来执行指令;
ALU(arithmetic logic unit)是算术逻辑单元简称算逻部件,用来完成算术逻辑运算。
计算机有条不紊地自动工作都是在控制器的统一指挥下完成。
3.细化的计算机组成框图
1. 主存储器
-
主存储器(主存):存放数据和程序
存储体M、各种逻辑部件(MAR
是memory address register-存储器地址寄存器、MDR
是memory data register-存储器数据寄存器)及控制电路。
-
MAR反映存储单元个数,MDR反映存储字长。设MAR=4,MDR=8,可知:存储单元的数量有16,每一个存储单元的存储字长为8。
-
存储器M里面有很多存储单元,一个存储单元又包含很多存储元件,一个存储元件能寄存一位二进制代码‘0’/‘1’。
-
其中一个存储单元可存储一串二进制代码,这一串代码称作一个 存储字
,其位数成为 存储字长
,一个存储字可以代表一个二进制数、一串字符或者一条指令。为每一个存储单元赋予一个编号,作为其地址号
。
-
主存工作就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读入),即按地址存取方式
。
优势:
1. 可以按顺序自动完成实现编好的程序的操作。
2. 当反复使用某个数据或某条指令时,可以指出其地址号,而不用重复存放该数据或指令,提高存储空间。
3. 由于指令和数据都是用地址号来反映,所以取指令和取数据操作可视为完全相同,这样可以用一套控制线路完成两种操作。
2. 运算器
- 运算器至少包括3个寄存器(ACC:累加器,MQ:乘商寄存器,X:操作数寄存器)和一个算术逻辑单元ALU(
不是寄存器
)。
- 加减法(M为存储器任一地址号)
ACC存放的是被加数(被减数),M存放的数被送至X寄存器中。两数通过算术逻辑单元ALU中,完成计算。[M] -> X
[ACC] +(-) [X] -> ACC
- 乘法
M存放的数被送至乘商寄存器MQ中,ACC存放的数被送至操作数寄存器X中,两数通过算术逻辑单元ALU中,完成计算,将乘积的高位放置在ACC中,低位放在MQ中。注意ACC中的数送至X后,要置0,因为不清0,结果的高位会累加可能会造成溢出导致结果的不准确。
[M] -> MQ
[ACC] -> X
0 -> ACC
[X]*[MQ] -> ACC//MQ
- 除法
ACC存放的是被除数,M存放的数被送至X寄存器中。两数通过算术逻辑单元ALU中,完成计算。商放置在MQ中,余数放在ACC中。
[M] -> X
[ACC] / [X] -> MQ
[ACC] % [X] ->ACC
3. 控制器
由程序计数器PC
(存放当前欲执行指令的地址,具有自动加1的功能,可自动形成下一条指令的地址),指令寄存器IR
(存放当前指令)以及控制单元CU
组成。
4. 计算机工作的全过程
- 首先要知道,要把一个问题它的运算步骤写成计算机一一对应的机器指令,完成运算程序的编写。即把有序的指令和数据输入到主存的第0至第N号单元中,并置pc=0。
- 启动机器后,计算机自动按顺序完成指令。
- 首先PC=0,其内容0送至MAR,命令存储器做读操作,将读出的内容(第一条指令)存入MDR。由MDR送至IR,完成第一条指令(由操作码和地址码构成)的取指过程。
- OP(IR)(指令的操作码)送至CU,经分析得出操作码为取数指令,于是CU将IR中存放的AD(IR)(指令的地址码)传给MAR,命令存储器读出对应地址中的数据放入MDR,MDR再将数据传至ACC,至此 第一次取数操作完成。
- 此时PC完成自动加一的操作,开始下一条指令的处理,直至执行完停机指令后,机器自动停机。
5. 计算机硬件的主要技术指标
1. 机器字长
CPU一次能处理数据的位数,与CPU中的寄存器位数有关。字长越长,数的表示范围越大,精度越高。若字长较短,那么运算位数比较多的数据时,就要多次运算才能完成,会影响机器的运算速度。但一味追求字长,造价会很昂贵。
2. 存储容量:主存容量+辅存容量
- 主存容量: 存储容量=存储单元个数*存储字长。如MAR=16,MDR=2,那么存储容量为
64k*2
位
- 辅存容量一般用字节数(Bite)表示。
3. 运算速度
- 主频(并不能说明问题,存在空转问题)
- 吉普森法,会考虑每条指令的执行时间以及他们在全部操作中所占的百分比。即
- 现在的运算速度普遍采用单位时间内执行指令的平均条数来衡量。用MIPS(百万条指令)为单位,或者CPI(执行一条指令所需的时钟周期),或者FLOPS(浮点运算次数每秒)来衡量运算速度。
6. 思考题
1. 计算机如何区分指令和数据
答:1.可以按照不同时间段来区分,在取指令阶段取出的肯定是指令,在执行指令阶段取出的就是数据;2. 通过地址来源区分,由PC提供的存储单元地址取出的是指令,由AD(IR)指令地址码提供的存储单元地址取出的就是操作数。
第二章
1.一些常识
- 第一台机械计算机是由法国的
帕斯卡
发明,有一系列齿轮组成,用发条作为动力,只能做6位加法和减法。为纪念他,一门高级语言命名为PASCAL
- 世界上第一台计算机
ENIAC
,于1946年在美国宾夕法尼亚大学诞生,标志计算机时代的到来。
- 1958年,中国第一台电子管计算机诞生。
- 2002年8月,“龙芯1号”问世,中国第一个CPU。
- 图灵:计算机科学之父、人工智能之父,是计算机逻辑的奠基者。
- 冯诺依曼:现在电子计算机之父
- 目前我国运算最快的计算机是:神威-太湖之光
2. 计算机发展阶段
是如何断代的?
答:主要以组成计算机基本电路的元器件
为依据,如电子管、晶体管、集成电路等。
1. 第一代电子管计算机(1946-1957)
- 运算速度:5千~4万 次/秒。
- 内存容量:数KB
- 使用机器语言或汇编语言编写程序
2. 第二代晶体管计算机(1958-1964)
- 运算速度:每秒几十万次
- 内存容量:几十KB
- 出现了FORTRAN等高级语言。
- 与第一代计算机相比,其体积小,成本低,功能强。
3. 第三代集成电路计算机(1965-1971)
- 运算速度:每秒几十万次到几百万次
- 体积越来越小,价格越来越低,软件越来越完善。
4.第四代超大规模集成电路计算机(1972-至今)
- 运算速度:每秒几百万次~几亿 次/秒
3.摩尔定律
-
定义:集成电路上可以容纳的晶体管数目在大约每经过18个月便会增加一倍。
-
是否一直有效?
答:不会一直有效。
1. 首先,集成电路的容量是有限的,无法容纳大数目的晶体管。并且晶体管自身也不会无止境的缩小其体积。
2. 由于集成度的不断提高,它的制作成本也不断提高。
3. 其次,晶体管分布过于密集的话,当进行数据处理时,电流之间的干扰会很大,影响计算机运行效率;晶体管分布过多的话发热量也比较大,容易产生爆炸。
第三章 系统总线
1. 总线定义
连接多个部件的信息传输线,是各个部件共享的传输介质。在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接受相同的信息。
总线由许多传输线或通路组成,每条线可以一位一位地传输二进制代码,若干位传输线可以同时传输若干位二进制代码。
2. 总线结构框图
1. 单总线结构框图
- 优点:在I/O设备和主存交换信息时理论上不占用CPU;结构简单。
- 缺点:但是在I/O设备和主存交换信息时,由于速度差异过大,CPU只能等待总线空闲,效率很低;设置总线判优逻辑,也会影响整机的工作速度。
2. 面向CPU的双总线结构框图
- 优点:I/O设备通过I/O接口挂到I/O总线上,更便于增删设备;能够按运行速度将设备分离。
- 缺点:在I/O设备和主存交换信息时仍然要占用cpu,会影响cpu的工作效率。
3. 以存储器为中心的双总线结构框图
优点:在单总线基础上又开辟一条CPU与主存之间的总线,称作存储总线,其速度高,提高传输效率,又减轻系统总线的负担;保证在I/O设备和主存交换信息时不占用cpu。
3.总线分类
1. 片内总线(芯片内部)
- 长度短
- 并行运输
- 制造材料昂贵且不能更改
2. 系统总线
1. 数据总线(双向)
数据总线用来传输各功能部件之间的数据信息。其位数与机器字长、存储字长有关,称作数据总线宽度,是衡量系统性能一个重要参数。
2. 地址总线(单向)
由CPU输出。
主要用来指出数据总线上的原数据或目的数据在主存单位的地址或I/O设备的地址。
有多少根地址总线,对应的存储单元个数就是2^n根。
3. 控制总线(可双可单)
如何使各部件能在不同时刻占有总线使用权,要靠控制总线来完成。
(入CPU):设备提出中断请求
(出CPU):存储器读写命令
3.通信总线
用于计算机系统之间或计算机系统与其他系统之间的通信。
并行适合短距离通信,串行适合长距离通信。
4.总线性能指标
- 总线宽度:数据线的根数(一位是一根)
- 总线宽带:总线的数据传输速率,每秒传输的最大字节数(MBps)
- 时钟同步/异步
- 总线复用:一条信号线上分时传送两种信号。如地址总线与数据总线。
- 信号线数
5.总线标准(可能小题)
- ISA总线
优:独立于CPU的总线时钟,因此CPU可以采用比总线频率更高时钟,有利于CPU性能的提高。
劣:没有支持总线仲裁的硬件逻辑,不能支持多台主设备系统;所有数据传送必须通过CPU或DMA接口来管理。
- EISA总线
在ISA基础上,分离出了总线控制权,能够支持多个总线主控器。
- VESA总线:基于CPU总线演化而来。
- PCI总线
1. 高性能:提供了一个高速数据传输通道,与CPU时钟频率无关
2. 良好的兼容性
3. 支持即插即用、多主设备能力
4. 具有与处理机和存储器子系统完全并行操作能力
- RS-232C总线(网线制作标准)
- USB总线
1. 真正即插即用,可以在不关机情况下地对外设实行安装和拆卸。
2. 有很强的连接能力
3. 标准统一,实现了接口的统一
4. 生命力强,不存在专利版权问题。
6.总线结构
举例:PCI总线支持更多高速运行设备,具有即插即用特性,低速设备则依旧挂在ISA、EISA总线上。
- 双总线结构(适用于大、中型计算机系统)
CPU把一部分权利下放给通道,可对I/O设备进行统一管理,实现外部设备与存储器的数据传送,吞吐量会很大。
- 三总线结构(注意DMA总线)
任一时刻只能使用一种总线,主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时才使用。
另一形式:Cache可以与CPU和主存进行传输信息;I/O设备与主存传输信息不用经过CPU;利用扩展总线可支持很多i/o设备,工作效率明显提高。
- 四总线结构
多了一条高速总线,将高速i/o设备与系统总线和局部总线相连,使设备与CPU联系更密切。
7.总线判优控制
当多个主设备要使用总线时,就要判优和仲裁,确定哪个主设备能使用总线。
集中控制优先权仲裁方式:
1.链式查询(2)
优点:结构简单;容易扩充设备
缺点:对电路很敏感,只要有线路断开,之后的设备就无法通信;离总控制部件远(优先级别低)的设备很难受到相应。
2.计数器定时查询(log2 n)
优点:预先知道有多少台设备n;计数从上一次计数终止点开始,可以实现循环。
缺点:电路敏感不如链式查询;增加控制线(设备地址)数,控制比较复杂。
3. 独立请求方式(2n)
优点:响应速度快;优先次序控制灵活
缺点:控制线数量多,控制比较复杂