计算机系统组成
计算机硬件的组成
- 控制器
控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令。
- 程序计数器PC:存储下一条要执行指令的地址
- 指令寄存器IR:存储即将执行的指令
- 指令译码器ID:对指令中的操作码字段进行分析解释
- 时序部件:提供时序控制信号
- 运算器
运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。
- 算术逻辑单元ALU:数据的算术运算和逻辑运算
- 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
- 数据缓冲寄存器DR:写内存时,暂存指令或数据
- 状态条件寄存器PSW:存状态标志与控制标志(争议点:也有将其归为控制器的)
-
主存储器
主存储器也称为内存储器(通常简称为“内存”或“主存”)。存储现 场操作的信息与中间结果,包括机器指令和数据。 -
辅助存储器
辅助存储器也称为外存储器,通常简称为外存或辅存。存储需要长期保存的各种信息。 -
输入设备
输入设备的任务是把人们编好的程序和原始数据送到计算机中去,并 且将它们转换成计算机内部所能识别和接受的信息方式。常见的输入设备有键盘、 鼠标、扫描仪等 -
输出设备
输出设备的任务是将计算机的处理结果以人或其他设备所能接受的 形式送出计算机。目前,最常用的输出设备是打印机和显示器。
计算机系统结构的分类
- 单指令流单数据流(Single Instruction stream and Single Data stream,SISD)
- 单指令流多数据流(Single Instruction stream and Multiple Data stream,SIMD)
- 多指令流单数据流(Multiple Instruction stream and Single Data stream,MISD)
- 多指令流多数据流(Multiple Instruction stream and Multiple Data stream,MIMD)
- 指令流:指机器执行的指令序列
- 数据流:指由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出数据
复杂指令集系统与精简指令集系统
复杂指令系统计算机(Complex Instruction Set Computer,CISC)
增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统来实现。其特点如下:
- 指令数量众多
- 指令使用频率相差悬殊
- 支持很多种寻址方式
- 变长的指令
- 指令可以对主存单元中的数据直接进行处理
- 以微程序控制为主
精简指令系统计算机(Reduced Instruction Set Computer,RISC)
尽量简化指令功能,只保留那些功能简单,能在一个节拍内执行完成指令,较复杂的功能用一段子程序来实现。其特点如下:
- 指令数量少
- 指令的寻址方式少
- 指令长度固定
- 以硬布线逻辑控制为主
- 单周期指令执行,采用流水线技术
- 优化的编译器:RISC 的精简指令集使编译工作简单化
- CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个
总线
- 地址总线:用来传送地址信息
- 数据总线:用来传送数据信息
- 控制总线:用来传送各种控制信号
存储器系统
传统的存储器系统一般分为高速缓冲存储器(Cache)、主存、辅存三级
- 主存储器
主存可由 CPU 直接访问,存取速度快,但容量较小,一般用来存放当前正在执行的程序和数据。 - 辅助存储器
辅存设置在主机外部,它的存储容量大,价格较低,但存取速度较慢,一般用来存放暂时不参与运行的程序和数据,CPU 不可以直接访问辅存,辅存中的程序和数据在需要时才传送到主存,因此它是主存的补充和后援。
磁盘访问时间(存取时间) = 寻道时间+旋转延迟时间 - Cache存储器
当 CPU 速度很高时,为了使访问存储器的速度能与 CPU 的速度相匹配,又在主存和 CPU 间增设了一级 Cache。Cache 的存取速度比主存更快,但容量更小,用来存放当前最急需处理的程序和数据,以便快速地向 CPU 提供指令和数据。
当Cache产生了一次访问未命中之后,相应的数据应同时读入CPU和Cache。但是当Cache已存满数据后,新数据必须替换(淘汰)Cache中的某些旧数据。最常用的替换算法有以下三种:
- 随机算法。这是最简单的替换算法。随机法完全不管 Cache 块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。
- 先进先出(First In and First Out,FIFO)算法。按调入 Cache 的先后决定淘汰的顺序,即在需要更新时,将最先进入 Cache 的块作为被替换的块
- 近期最少使用(Least Recently Used,LRU)算法。LRU 算法是把 CPU 近期最少使用的块作为被替换的块
流水线
流水线技术把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行工作。在任一时刻,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。
- 流水线执行时间=第1条指令的执行时间+(n-1)*流水线周期
- 流水线的吞吐率(Though Put rate,TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。TP=任务数n/完成n个任务所用的时间
- 完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比