系统架构设计-计算机组成与体系结构
Posted 小毕超
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统架构设计-计算机组成与体系结构相关的知识,希望对你有一定的参考价值。
一、计算机硬件的组成
控制器。控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令。控制器的组成包含如下:
- 程序计数器PC:存储下一条要执行指令的地址;
- 指令寄存器IR:存储即将执行的指令;
- 指令译码器ID:对指令中的操作码字段进行分析解释;
- 时序部件:提供时序控制信号。
运算器。运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。
二、计算机系统分类
1. 存储程序的概念
“存储程序”的概念是冯•诺依曼等人于1946年6月首先提出来的,它可以简要地概括为以下几点:
- 计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成。
- 计算机内部采用二进制来表示指令和数据。
- 将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。
2. Flynn 分类
1966年,Michael.J.Flynn 提出根据指令流、数据流的多倍性特征对计算机系统进行分类(通常称为 Flynn 分类法),有关定义如下。
- 指令流:指机器执行的指令序列;
- 数据流:指由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据。
3. 复杂指令集系统CISC和精简指令集系统 RISC
CISC 指令系统的特点
- 指令数量众多。指令系统拥有大量的指令,通常有 100~250 条。
- 指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。而大部分复杂指令却很少使用。
- 支持很多种寻址方式。支持的寻址方式通常为 5~20 种。
- 变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。
- 指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。
- 以微程序控制为主。CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电路实现控制器,通常采用微程序控制。
RISC 指令系统的特点
- 指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用复杂指令。只提供了 LOAD(从存储器中读数)和 STORE(把数据写入存储器)两条指令对存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。
- 指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方式。
- 指令长度固定,指令格式种类少。因为 RISC 指令数量少、格式少、相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。
- 以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合逻辑)来构建控制器。
- 单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,例如, LOAD/STORE 指令因为需要访问存储器,其执行时间就会长一些。
- 优化的编译器:RISC 的精简指令集使编译工作简单化。因为指令长度固定、格式少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。
- CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。
大多数 RISC 采用了 Cache 方案,使用 Cache 来提高取指令的速度。而且,有的 RISC 使用两个独立的 Cache 来改善性能。一个称为指令 Cache,另一个称为数据 Cache。这样,取指令和取数据可以同时进行,互不干扰。
三、层次化的存储结构
存储器中数据常用的存取方式有顺序存取、直接存取、随机存取和相联存取四种。
- 磁带存储器采用顺序存取的方式
- 磁盘存储器采用直接存取的方式
- 主存储器采用随机存取的方式
- Cache 采取相联存取的方式
如上题,计算有多少个地址单元和存储位,首先根据题目为AC000H到C7FFFH,那么首先计算中间相差多少内存,即 C7FFFH + 1 - AC000H = 1C000H,由于1k 转为 2 进制的话为 10000000000,而1C000H 转为二进制为 0001 1100 0000 0000 0000 ,后者除以前者即 1110000 ,再将 1110000 化为十进制即 0111 0000 => 64 + 32 + 16 = 112 即第一个选B,又因为内存地址按字(16bit)编制,由28片存储器芯片构成,即一个存储单元存储: 112 * 16 / 28 * 16 = 4,即选A。
磁盘存储
一台硬盘驱动器中有多个磁盘片,每个盘片有两个记录面,每个记录面对应一个磁头,所以记录面号就是磁头号。
磁盘访问时间(存取时间) = 寻道时间+旋转延迟时间
上题,由题意可知磁道被划分为11个物理块,磁盘旋转周期为33ms,即一个物理块需要3毫秒,又因为使用单缓冲区,每个记录需要3ms,即直接读取一个物理块 需要 3 + 3 = 6ms 的时间,但由于是使用磁盘结构,需要考虑寻到时间,可以分析当磁头在R0的开始处时,读取数据需要花费3ms 读取数据,然后还需3ms 放入缓冲区中,在放入缓冲区时磁盘的旋转是不会停止的即R0读取和放入缓冲区结束,磁头应该在R2的开始处,此时读取R1的数据需要磁盘旋转一周到R1的开始处,就需要耗费 (11 - 1)3 = 30ms的时间,即读取后面的都该如此,即总时长应该为 (30 + 3 + 3) * 10 + (3 + 3 )= 366 ms,此时即为最长时间,由上面的分析可以看出耗时主要在 寻转一周 到上一个物理块的地方,加入没有这个处理速度肯定会大大提高,那怎么优化呢,分析下,上面的情况,就是每个物理块都是顺序排列的,读完R0 ,R1就被转过去了,读完R1 而 R2又被转过去了,那如果改为 间隔着放的,R0读完放入缓冲区被来到R2的开始处,将R2换为R1,同理下面都换位,就没有旋转一周的时间,那此时耗时就为 (3 + 3) 11 = 99ms。
四、流水线
流水线技术把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。
计算流水线执行时间
流水线执行时间=第1条指令的执行时间+(n-1)*流水线周期
流水线的吞吐率
流水线的最大吞吐率
流水线的加速比
流水线的效率
五、性能评测
性能指标,是软、硬件的性能指标的集成。在硬件中,包括计算机、各种通信交换设备、各类网络设备等;在软件中,包括:操作系统、协议以及应用程序等。
以上是关于系统架构设计-计算机组成与体系结构的主要内容,如果未能解决你的问题,请参考以下文章