1、计算机系统组成
1.1、计算机硬件组成
- 计算机:由控制器、运算器、存储器、输入设备、输出设备五大基本部件组成。
(1)控制器
控制器是分析和执行指令的部件,依据机器指令进行统一指挥控制计算机各部件协调工作的中心部件。
-
程序计数器PC:存储下一条要执行指令的地址。
-
指定寄存器IR:存储即将执行的指令
-
指令译码器ID:对指令的操作码进行分析解释
-
时序部件:时序控制信号
(2)运算器
运算器又称运算逻辑单元,在控制器控制下完成各种算数运算和逻辑运算。
(3)其余部件
部件名称 | 常见部件 | 备注 |
---|---|---|
主存储器 | 内存条 | 操作信息&中间计算结果 |
辅助存储器 | 机器硬盘、U盘 | 数据长期存储 |
输入设备 | 键盘、鼠标、扫描仪 | |
输出设备 | 显示器、大引起、显示器 |
- 注意事项:辅助存储器、自动控制和检测系统中使用的数模转换装置即可做输入设备又可做输出设备。
1.2、Flynn分类
- 分类方式:根据不同的指令流-数据流组织方式,把计算机系统分成四类。
- 指令流:机器执行的指令序列。
- 数据流:由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。
(1)单指令流单数据流
- 案例:51单片机、老式PC机(286、486、奔腾)
(2)单指令流多数据流
- 案例:并行处理机、阵列处理机、超级向量处理机,一条加法指令通过不同的数据加和进行相关计算
(3)多指令流单数据流
- 案例:不可能实现
(4)多指令流多数据流
- 案例:服务器集群形式
1.3、复杂指令集系统 VS 精简指令集系统
- 注意事项:RISC基本采用Cache来提高指令速度,包括指令Cache和数据Cache。
1.4、总线
- 总线:一组能为多个部件分时共享的公共信息传送线路,按照总线功能可分为三类。
- 共享:总线上可以挂接多个部件,各个部件之间相互交换的信息都可以通过这组公共线路传送。
- 分时:同一时刻只允许有一个部件向总线发送信息。
(1)地址总线:传递地址信息
(2)数据总线:传递数据信息
(3)控制总线:传送各种控制信号
2、存储器系统
2.1、层次化存储结构(考点:存储层级)
- 系统分级:高速缓冲存储器(Cache)、主存、辅存三级
(1)CPU:寄存器存储。
(2)Cache:Cache访问速度最快,用来存放当前最急需处理的程序和数据,以便快速地向 CPU 提供指令和数据。
(3)主存:CPU直接访问,存取速度快但容量较小,一般用来存放当前正在执行的程序和数据。
(4)辅存:设置在主机外部,存储容量大但存取速度较慢。
2.2、存储器存取方式
- 存储方式:顺序存取、直接存取、随机存取、相联存储
(1)顺序存取
对数据的访问必须按特定的线性顺序进行
- 典型案例:磁带存储器
(2)直接存取
每个数据块都拥有唯一的地址标识,读写装置可以直接移动到目的数据块所在位置进行访问
- 典型案例:磁盘存储器
(3)随机存取
存储器的每一个可寻址单元都具有自己唯一的地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。
- 典型案例:主存储器
(4)相联存取
每个单元都有自己的读写装置,读写时间也是一个常数。使用相联存取方式,可以对所有的存储单元的特定位进行比较,选择符合条件的单元进行访问
- 典型案例:Cache
2.3、主存储器
2.3.1、主存类型(!!)
- 主存种类:随机存取存储器和只读存储器。
(1)随机存取存储器RAM
- 特点:既可写入又可以读出,但断电后信息无法保存。
- 业务场景:电脑/手机内存
(2)只读存储器ROM
- 特点:只能读取不能写入,断电后信息不会丢失。
- 业务场景:U盘、光盘
2.3.2、主存编址(!!)
(1)存储器编制单位:本质上就是将芯片组成存储器,每个内存地址可以存储多少bit的信息。
- 8×4存储器
- 8代表:有8个地址空间
- 4代表:每个地址空间有4个bit位置信息
(2)内存地址计算方式
- 答案:内存地址从 AC000H 到 C7FFFH,则共有 C7FFFFH-AC000H=1BFFFH(还需要+1) 个地址单元(转换为十进制后,为 112KB)。如果该内存地址按字(16bit)编址,则共有 112KB×16 位(容量)。假设该内存由 28 片存储器芯片构成,已知构成此内存的芯片每片有 16KB 个存储单元,则该芯片每个存储单元存储(112KB×16)/(28×16KB)=4位。
2.4、辅助存储器
2.4.1、磁带存储器
顺序存取设备,存取时间较长,但存储容量大,便于携带,价格便宜,主要用于资料的归档保存。
2.4.2、硬盘存储器
(1)机械臂
- 核心:机械臂上面有磁头可改变盘片磁性
(2)盘片
- 核心:盘片上是磁性介质,存储值0和1,磁性介质呈环状。
(3)写入数据过程
- 核心:本质上是对盘片上磁性介质的一个极性转换过程。
(4)读取数据过程
- 核心:本质上是对盘片上磁性介质极性的读取
(5)柱面
- 核心:存储容量=磁头数✖磁道(柱面)数✖每道扇区数✖每扇区字节数
(6)读写数据耗时
①寻道时间:磁头移动到目标磁道所需时间。
②等待时间:等待读写的扇区转到磁头下方所用时间。
③读写时间:数据开始位置到达磁头后,到数据结尾的磁头位置所花费时间。
- 磁盘访问时间(存取时间) = 寻道时间+旋转延迟时间
2.5、Cache存储器
- 核心:在CPU 和内存之间设置小容量的 Cache。
2.5.1、基本原理 - 采用相联存储器CAM
(1)存放原理
依据是程序的局部性原理,将目前常用或将要用到的信息预先放在 Cache 中,读出数据时,不是给出其存储单元的地址,而是直接给出该数据或者该数据的一部分内容。
(2)读取原理
当 CPU 需要读取数据时,首先在 Cache 中查找是否有所需内容,如果有,则直接从 Cache 中读取;若没有,再从内存中读取该数据,然后同时送往 CPU 和 Cache。
2.5.2、替换算法
- 含义:当Cache已存满数据后,新数据必须替换(淘汰)Cache中的某些旧数据。
(1)随机算法
(2)先进先出
(3)LRU算法:即最少使用原则。
2.5.3、写操作
- 核心:读写数据一致性,即保证缓存在 Cache 中的数据与内存中的内容一致。
(1)写直达:数据写Cache同时写回内存,缺点-存取速度慢。
(2)写回:数据写Cache后并不立即写入内存单元,而是当该块从Cache中被淘汰时才写回内存,缺点-可能出现脏数据。
(3)标记法:对 Cache 中的每一个数据设置一个有效位,若为“l”则直接从 Cache 中取数,否则,从内存中取数。
2.5.4、Cache访问命中率
t3=h × t1 + (1 - h) × t2
h: 对Cache访问命中率
t1: Cache周期时间
t2: 主存储器周期时间
- 例题:假设CPU执行某段程序时,cache完成存取的次数1900次,主存完成存取的次数100次。已知:Cache的存取周期为50ns,主存的存取周期为250ns。求Cache-主存系统的访问命中率和平均给访问时间。
2.5.5、局部性原理
(1)空间局部性
- 含义:空间复杂度
(2)时间局部性
- 含义:时间复杂度
(3)工作集理论
- 含义:进程运行时被频繁访问的页面集合
3、流水线
(1)流水线简介
流水线技术把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行工作
(2)流水线周期
流水线应用过程中,会将需要处理的工作分为 N 个阶段,最耗时的那一段所消耗的时间为流水线周期。
(3)计算流水线执行时间(!!)
流水线执行时间=第1条指令的执行时间+(n-1) 流水线周期*
- n代表:需要处理的任务数量
例:某计算机系统,一条指令的执行需要经历取指(2ms)、分析(4ms)、执行(1ms)三个阶段,现要执行 100 条指令,利用流水线技术需要多长时间?
①理论上来说,1条指令的执行时间为:2ms+4ms+1ms=7ms。
所以:理论流水线执行时间=2ms+4ms+1ms+(100-1)*4=403ms。
②而实际上,真正做流水线处理时,考虑到处理的复杂性,会将指令的
每个执行阶段的时间都统一为流水线周期,即1条指令的执行时间为:4ms+4ms+4ms=12ms。
所以:实际流水线执行时间=4ms+4ms+4ms+(100-1)*4=408ms。
(4)流水线吞吐率
流水线的吞吐率(代表实际完成情况. Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。
- 流水线吞吐率:代表实际完成情况
- 流水线最大吞吐率:代表最快速度1/t
(5)流水线加速比
流水线加速比是指不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。