第1章 计算机系统知识
1.2 计算机体系结构
分类
- 宏观上按处理机的数量
① 单处理机
② 并行处理与多处理系统
③ 分布式处理系统 (松耦合) - 微观上按并行程度
Flynn分类法、冯泽云分类法、Handler分类法、Kuck分类法
1.2.1 CISC和RISC
概念:指令集体系结构(ISA)是指一个处理器支持的指令和指令的字节级编码
-
CISC (Complex Instrunction Set Computer,复杂指令集计算机)
进一步增强原有指令的功能,用更为复杂的新指令取代由原先子程序完成的功能,实现软件功能的硬化,导致机器的指令系统越来越庞大而复杂。普遍使用微程序控制器。(微处理器x86属于CISC)
缺点: -
RISC (Reduced Instrunction Set Computer,精简指令集计算机)
通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周执行,并通过优化编译,提高指令的执行速度,通用寄存器数量相当多,采用硬线控制逻辑,不用或少用微码控制,优化编译程序,导致机器的指令系统进一步精炼而简单。采用流水线技术。(ARM处理器属于RISC)
RISC关键技术:
① 重叠寄存器窗口技术
② 优化编译技术
③ 将流水及超标量技术
④ 硬布线逻辑与微程序相结合在微程序技术中
RISC采用的流水技术:
① 超流水线(Super Pipeline)只限于指令级并行
② 超标量(Super Scalar)以空间换时间
③ 超长指令字(Very Long Instruction Word,VLIW)
一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。
1.2.2 流水线技术
概念:
-
指令控制方式
① 顺序方式
优点:控制简单
缺点:速度慢,各部件利用率低
② 重叠方式
优点:速度有所提高,控制也不太复杂
缺点:会出现冲突、转移和相关等问题
③ 流水方式
一次重叠只是把一条指令解释分解为两个子过程,而流水则是分解为更多的子过程
-
流水线的种类
-
流水的相关处理
相关分为局部性相关和全局性相关
解决局部性相关:推后法和通路法
解决全局性相关:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理 -
吞吐率和流水建立时间
流水线周期
各子任务中执行时间最长的(最慢的)子任务的执行时间。
流水线执行完 n 条指令所需要的时间
Tn = 执行一条指令所需时间 + (n-1) * 流水线周期
吞吐率
是指单位时间里流水线处理机流出的结果数。对指令而言,就是单位时间里执行的指令数。如果各段流水的操作时间不同,则流水线的吞吐率是最长流水段操作时间。
吞吐率:p=1/max(∆t1,∆t2,…∆tm),即最长子过程所用时间的倒数。
例题1:一条指令的执行过程可以分解为取指、分析和执行三步,在取指时间 t 取指=3△t,分析时间 t 分析=2△t,执行时间 t 执行=4△t 的情况下,若按串行方式执行,则10条指令全部执行完需要( )△t。若按照流水方式执行,则执行完10条指令需要( )△t。
串行:(3+2+4)* 10 = 90
流水:(3+2+4)+(10-1)*4= 126
例题2:某指令流水线由5段组成,第1、3、5段所需时间为△t, 第2、4段所需时间分别为3△t、2△t,那么连续输入n条指令时的吞吐率(单位时间内执行的指令个数)TP为()。
解:
① 流水线周期 = 3
② 流水线执行完 n 条指令所需要的时间 = (3+3+2)+(n-1)*3
③ 吞吐率 = n/((3+3+2)+(n-1)*3)
例题3
1.2.3 处理机
概念:并行性包括同时性和并发性。同时性是指两个或两个以上的事件在同一时刻发生;并发性是指两个或两个以上的事件在同意时间间隔内连续发生。
- 陈列处理机 单指令流多数据流计算机
- 并行处理机 分为SIMD和MIMD,其中SIMD有共享存储器和分布存储器
- 多处理机 多指令流多数据流计算机
- 其他计算机 计算机集群
1.3 存储系统
计算机系统中的CPU内部对通用寄存器的存取操作是最快的,其次是Cache,内存的存取速度再次
cache和主存可以构成cache存储系统,主存和磁盘构成虚拟存储系统
1.3.1 高速缓存
• 高速缓存 (Cache) 是随着CPU 与主存之间的性能差距不断增大而引入的,其容量较小,但速度较快,一般比主存快5~10倍。
• 主要作用:调和CPU 的速度与内存存取速度之间的差异,从而提升系统性能。
• 存储的内容:CPU 近期可能会需要的信息,使用的是程序的局部性原理,是主存内容的副本,因此CPU 需要访问数据和读取指令时要先访问Cache,若命中则直接访问,若不命中再去访问主存。
• 评价Cache性能的关键指标:Cache的命中率,影响命中率的因素有其容量、替换算法、其组织方式等。Cache的命中率随容量的增大而提高(非线性)。基于成本和性能方面的考虑,Cache是为了解决相对较慢的主存与快速的CPU之间工作速度不匹配问题而引入的存储器。
• 主存地址与Cache 地址之间的转换工作由硬件完成。
• 例:CPU 的速度要远快于打印机的速度,为解决这个速度不匹配的问题,可以使用缓存技术,释放CPU 的等待。
- 高速缓存的地址映像
CPU 工作时给出的是主存的地址,要从Cache 存储器中读写信息,就需要将主存地址转换成Cache 存储器的地址,这种地址的转换叫作地址映像。
直接映像
主存的块只能映像到Cache存储器 的相同块号中,整个Cache 地址与主存地址的低位部分完全
相同,由主存地址中的区内块号可得到要访问的Cache存储器中的块,而块内地址就是主存地址中
给出的低位地址。
优点:硬件简单,不需要相联存储器,访问速度快(无需地址变换)
缺点:Cache 块冲突概率高导致Cache 空间利用率很低。
例:主存容量为1MB,高速缓存容量为16KB,块的大小为512B
全相联映像
指主存中任一块都可以调入到Cache 中任一块的空间,也就是说,当主存中的一块需要调入
Cache 时,可根据当时Cache 的块占用或分配情况,选择一个块给主存存储,所选的Cache 块
可以是Cache 中的任意一块。
优点:块冲突概率低(块冲突次数最少),Cache空间利用率高
缺点:相联目录表容量大导致成本高、查表速度慢
组相联映像
对上述两种方式的折中处理,对Cache 分组,实现组间直接映射,组内全相联。主存的任何区的0组只能存到Cache 的0组中,1组只能存放到1组中,依此类推。而组内的块可以存入Cache 中相同组的任一块中。
优点:较低的块冲突概率、较高的块利用率,同时得到较快的速度和较低的成本。
公式:
主存地址位数=区号+组号+主存块号+块内地址
Cache地址位数=组号+组内块号+块内地址
- 高速缓存的替换算法
(1)随机替换算法
(2)先进先出替换算法
(3)近期最少使用替换算法
(4)优化替换算法
- 高速缓存的性能分析
设Hc 为Cache 的命中率,tc 为Cache 的存取时间,tm 为主存的访问时间,则Cache 存储器的等效加权平均访问时间ta为:ta=Hctc+(1-Hc)tm
Cache的命中率与Cache容量的关系是: Cache 容量越大,则命中率越高,随着Cache容量的增加,其失效率接近0% ( 命中率逐渐接近100%)。但是,增加Cache容量意味着增加
Cache的成本和增加Cache的命中时间。
1.3.2 虚拟存储器
- 在概念上,可以将主存存储器看作一个由若干个字节构成的存储空间,每个字节(称为一个存储单元)有一个地址编号,主存单元的该地址称为物理地址(plhysical address)。(当需要访问主存中的数据时,由CPU给出要访问数据所在的存储单元地址,然后由主存的读写控制部件定位对应的存储单元,对其进行读(或写)操作来完成访问操作。)
- 虚拟存储器实际上是一种逻辑存储器。
- 常用的虚拟存储器由主存-辅存两级存储器组成。
1.3.3 相联存储器
- 相联存储器是一种按内容访问的存储器。
- 转换检测缓冲区/相联存储器/快表 能够不访问页表,实现快速将虚拟地址映射到物理地址的硬件机制
- 相联存储器可用在高速缓冲存储器;在虚拟存储器中用来作段表、页表或快表存储器;用在数据库和知识库中
1.3.4 磁盘阵列技术
磁盘存取时间包括寻道时间,定位扇区的时间(也就是旋转延迟的时间)以及读取数据的时间(也就是传输时间),如果磁盘转速提高了一倍,则旋转延迟时间减少一倍。
在Windows系统中,磁盘碎片整理程序可以分析本地卷,以及合并卷上的可用空间使其成为连续的空闲区域,从而使系统可以更有效地访问文件或文件夹。
1.3.5 存储域网络
- 概念:网络把一个或多个服务器与多个存储设备连接起来,每个存储设备可以是RAID、磁带备份系统、磁带库和CD-ROM库等,构成了存储域网络(Storage Area Network, SAN)。
- 优点: 解决了服务器对存储容量的要求,使多个服务器之间共享文件系统和辅助存储空间,避免数据和程序代码的重复存储,提高辅助存储器的利用率。 另外,SAN还实现了分布式存储系统的集中管理,降低了大容量存储系统的管理成本,提高了管理效率。
- 存储域网络是连接服务器与存储设备的网络