【系统分析师之路】第一章 计算机组成与体系结构
主要考察的内容有:Flynn分类法,CISC与RISC,流水线技术,存储系统,校验码,并行处理。
- CISC与RISC
指令系统类型 | 指令特点 | 寻址方式 | 实现方式 | 对编译系统要求 | 其他 |
CISC(复杂) | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | 低 | 研制周期长 |
RISC(精简) | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器,硬件电路 | 高 | 优化编译,有效支持高级语言 |
计算机还没有大规模通用的时候,就提出了CISC复杂指令系统。它会根据不同的用户做不同的指令,而且指令的数量会相当的多。为了通用 就需要对指令系统进行精简化,把乘法指令看成是多个加法指令的相加,这样就不需要乘法指令了。在复杂指令中,有些指令的使用率不会很高,而精简指令系统为了追求高效率,使用了硬布线逻辑。目前精简指令系统是主流。RISC要比CISC的速度快,原因是它比CISC使用了更多的寄存器。
- Flynn分类法
体系结构类型 | 英文 | 处理器 | 主存模块 | 控制部分 | 关键特征 | 代表 |
单指令流单数据流 | SISD | 1个 | 1个 | 1个 | 适用于单片机 | 单处理器系统 |
单指令流多数据流 | SIMD | 多个 | 多个 | 1个 | 各处理器以异步的方式执行同一条指令 | 并行处理器,阵列处理器,超级向量处理器 |
多指令流单数据流 | MISD | 1个 | 多个 | 多个 | 被证明是不可能,至少不实际 | 目前没有,文献中说流水线计算机为此类 |
多指令流多数据流 | MIMD | 多个 | 多个 | 多个 | 能够实现作业,任务,指令等各级全面并行 | 多处理器系统,多计算机 |
Flynn分类法是计算机体系结构分类法,它由两个指标:一个是指令流一个是数据流组成。以数字化穷举的方式一共列出了四个分类,其中单指令流单数据流已经基本看不到了,除了在嵌入式单片机中还在使用外;而多指令单数据流这个分类,目前只有理论价值。
例题3解析:利用高速通信网络将多台高性能工作站或微型机互联构成机群系统,主要用于中粗粒度的并行进程的高效并行处理。其多机并行处理是在进程级,任务级上进行的。这种机群系统显然是属于MIMD。
- 流水线技术
流水线技术是通过并行硬件来提高系统性能的常用方法,它其实是一种任务分解技术。如果每个子任务所需的时间不同,则其速度取决于其执行速度最慢的一个。流水线的关键在于“重叠执行”。
影响流水线的主要因素有三个:转移指令,共享资源访问的冲突,响应中断。
流水线技术概念 | 提高性能的常用方法。特点有:并行硬件,任务分解,重叠执行。 |
流水线的吞吐率概念 | ThroughPut rare。单位时间内流水线所完成的任务数量或输出的结果数量。 |
流水线加速比概念 | Speedup ratio。不使用流水线的时间 / 使用流水线的时间 |
解析:4个数据的实际处理时间是15T,所以其吞吐率就是4/15。4个数字实际使用时空区为4×6T,而总的时空区为4×15T。故流水线的效率就是4×6T / 4×15T。吞吐率就是指这里一共吃进去4个数据,吃完这四个数据总共用了15T的时间,相除就是实际的吞吐率。而流水线的效率是指实际使用的时间4×6T除以真正使用的时间4×15T
- 存储系统
主存分为两类:随机存取存储器和只读存储器。 随机存取存储器有DRAM和SRAM两种,而ROM,PROM,EPROM,E2PROM这些都是属于只读存储器。ROM哪怕是掉电了,依然是可以存储相应的信息的。
主存储器 | ||
英文 | 名称 | 定义说明 |
RAM | 随机存取存储器 | 它可以分为动态RAM和静态RAM两种。DRAM中的信息会逐渐消失。SDAM是信息不会消失只要不断电。 |
ROM | 只读存储器 | 用于系统BIOS或者是微程序控制。 |
PROM | 可编程存储器 | 只能进行一次写入操作的ROM |
EPROM | 可擦除的PROM | 既可读又可写,可以多次写入。写入前用紫外线照射15分钟来擦去数据。 |
E2PROM | 电可擦除EPROM | 与EPROM相比,其他都一样,只是在写入数据前,不需要将数据都擦去后再写入 |
FlashMem | 闪速存储器 | 其性能在EPROM和E2PROM之间,删除速度远快于EPROM,但还不能进行字节级的删除操作。 |
CAM | 相联存储器 | 是一种基于数据内容进行访问的数据设备。其他都是基于地址的访问。因为是基于数据,所以速度比其他的主存储器方式来说要快很多。 |
辅助存储器 | ||
英文 | 名称 | 定义说明 |
Tape | 磁带存储器 | 顺序存储的设备,存储的容量大,存取时间长,价格便宜 |
HardDisk | 磁盘存储器 | 磁盘的存取时间包括:寻道时间和查找时间。 |
RAID | 廉价磁盘冗余阵列 | 用多个较小的磁盘存储器替换单一大容量的磁盘存储器,RAID一共分八个等级 |
CD-ROM | 光盘存储器 | 利用激光束在记录表面存储信息 |
Cache存储器 | ||
Cache特点 | 提高CPU数据输入输出的速率,突破冯诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。 | |
Cache概念 | 使用Cache改善系统性能的依据是程序的局部性原理,因为Cache是计算机体系中访问速度最快的层次。 | |
寄存器 | ||
定义 | CPU内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,寄存器有累加器(ACC)。 |
解析:主存最大容量为4GB且按字节编址,由于2的32次方=4GB,所以主存地址就是32位。因为每块8个字,每个字32位,并且将Cache中每4块分为一组,则每组的大小为32/8×8×4=128B,Cache容量为16KB,共可分成16KB / 128=128组。由于128等于2的七次方,所以组号应为7位。
设主存的存取周期为h,因Cache的速度是主存的5倍,所以Cache的存取周期为1/5h,且Cache的命中率为0.95,则采用了Cache以后,平均存取周期为h×(1-95%)+1/5h×95%,因为速度提高了1/0.24=4.17倍。
磁盘存储器相关的公式:
1 | 磁盘数据传输速率 | 一个磁道上记录的字节数 / 磁盘每转一圈所需要的时间 |
2 | 磁盘存储总量 | 总磁盘数 × 每面磁道数 × 每道扇区数 × 每个扇区存储的字节数 |
3 | Cache访问命中率 | Cache周期时间 × 内存周期时间 × 未命中率 (1 - h) ※h为命中率 |
例题2解析:如果不采用流水线的方式,则平均一条指令的执行时间为:6+7+8+9+6=36纳秒。而采用了流水线以后,平均一条指令的执行时间为9纳秒(取五级中时间最长的那一级)。因此最大的加速比为 36 / 9 = 4。若每一级的时间均为7纳秒,那么加速比为7×5/7 = 5
- 存储系统的局部性原理
局部性原理:存储体系中速度快的存储设备成本代价高,而速度慢的成本低但是相应的速度不快, 为了解决多级存储体系中量和速之间的矛盾的一个解决方案,于是就引入了局部性原理。局部性原理包括:时间局部性,空间局部性和工作集原理三部分所组成。
时间局部性 | 反复调用的内容一次放入Cache,这样就不用反复读内存了。 |
空间局部性 | 当程序访问某一个空间之后立即访问他邻近的空间。 |
工作集原理 | 运行时需要频繁访问的页面集合打包起来,频繁访问可以一起调入进来并且短时间不被替换出去,来提高效率 |
- 内存编址
主存的编址就是把相应的芯片组成存储器。内存在逻辑上是一个个格子,格子占有空间,可以用来存储数据,每个格子有编号,编号就是内存的地址,地址和格子空间是一一对应且永久绑定的。程序运行时,CPU只关心地址,不关心这个地址所代表的空间在哪里,怎么分布这些实体问题。有地址就一定能够找到对应的内存单元(内存单元:包括内存地址和空间)。地址是固定的,空间中存储的东西是变动的,内存编址以字节为单位。 比如给定一个内存地址7,其对应的空间大小就是固定的8bit,是定死的。
计算内存编址的例题:
内存地址从AC000H到C7FFFH,共有(C7FFFH-AC000H+1)/1024 K = 132个地址单元。如果该内存地址按字16bit编址,由28片存储器芯片构成。已经构成此内存的芯片每片有16K存储单元,则该芯片每个存储单元存储(132个地址单元×16bit / 28片×16K)位。
磁盘是一个环形的盘片,并涂上特殊的材质来保护数据,其中保护数据的是盘面。
磁道:磁盘上一圈一圈的同心圆。为了读取信息必须先把磁头定位到相应的磁道上面。这个定位磁头的时间就叫做寻道时间。
等待时间:等待读写的扇区转到磁头下方的所用的时间。
寻道时间:是指磁头移动到磁道所需的时间
存取时间=寻道时间+等待时间(平均定位时间+转动延迟)
磁道:就是一圈一圈的同心圆。磁头首先要定位到磁道上面才行。这个消耗时间就是寻道时间。
扇区:一个磁道上面会有很多扇区,磁盘上物理块其实就是扇区。磁盘转一圈的时间就是平均延迟时间。
磁盘的磁头一直是在转动的,旋转延迟时间就是等待时间,寻道时间就是寻找磁道的时间,存取时间等于等待时间+寻道时间。
- 并行处理
并行处理 | 定义 |
超级标量处理机 | 配置了多个功能部件和指令译码电路,采取了多条流水线,还有多个寄存器端口和总线,因此可以同时执行多个操作以并行处理来提高机器速度。 |
超级流水线处理机 | 不能调整指令的执行次序,由编译程序解决优先问题。其他与超级标量计算机是一样的。 |
超长指令字处理机 | 单指令流多操作码多数据的系统结构。把能并行执行的操作组合在一起,成为一条有多个操作段的超长指令。 |
向量处理机 | 有巨型计算机(浮点运算)和向量协处理机(采用流水线工作)两种类型。 |
多处理机系统 | 具有两个或两个以上的处理机,共享IO子系统,共享主存或高速通信网络,协同求解一个个复杂的问题。 |
大规模并行处理机 | 也叫做阵列处理机。MPP是众多的微处理器(从几百到上万)组成的大规模并行系统。 |
对称多处理器 | 它与MPP最大的差别在于其存储系统。SMP有一个统一的共享主存空间。多机系统又可以分为紧耦合和松耦合系统两类。 |
解析:用单台处理机顺序计算题目中的表达式时,可以先将表达式变换为:f = a + e(b+e(c+ed))。如果是顺序工作图,那么他们的流程图如图所示一共有六层。
如果是并行处理的话,那么只需要四步就可以了。具体可以参见下面的图。
- 虚拟存储器
虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。虚拟存储器指的是主存-外存层次,它以透明的方式为用户提供了一个比实际主存空间大得多的程序地址空间。