系统架构师--第1章 计算机组成与体系结构

第1章 计算机组成与体系结构

也许有人认为系统架构设计师不需要硬件或计算机底层原理的知识。因为这个层面的一 些处理往往已经封装好,不需要架构师重新进行规划。然而,事实并非如此,系统构建 于 硬件与操作系统之上,如果我们不对计算机底层原理有一定认识,会导致一系列安全与性能 问题。本章将从计算机的组成,计算机的指令系统,存储系统等方面展开论述。

1.1 计算机系统组成

计算机系统是一个硬件和软件的综合体,可以把它看成按功能划分的多级层次结构。

1.1.1 计算机硬件的组成

硬件通常是指一切看得见,摸得到的设备实体。原始的冯•诺依曼(VonNeumann)计 算机在结构上是以运算器为中心的,而发展到现在,已转向以存储器为中心了。图1-1所示 为计算机最基本的组成框图。

(1)控制器。

控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协 调工作的中心部件,所依据的是机器指令。

控制器的组成包含如下。 ① 程序计数器PC:存储下一条要执行指令的地址; ② 指令寄存器IR:存储即将执行的指令; ③ 指令译码器ID:对指令中的操作码字段进行分析解释; ④ 时序部件:提供时序控制信号。

(2)运算器。

运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功 能是在控制器的控制下完成各种算术运算和逻辑运算。

运算器的组成包含如下。 ① 算术逻辑单元ALU:数据的算术运算和逻辑运算; ② 累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据; ③ 数据缓冲寄存器DR:写内存时,暂存指令或数据; ④ 状态条件寄存器PSW:存状态标志与控制标志(争议点:也有将其归为控制器的)。

(3)主存储器。主存储器也称为内存储器(通常简称为“内存”或“主存”)。存储现 场操作的信息与中间结果,包括机器指令和数据。

(4)辅助存储器。辅助存储器也称为外存储器,通常简称为外存或辅存。存储需要长 期保存的各种信息。

(5)输入设备。输入设备的任务是把人们编好的程序和原始数据送到计算机中去,并 且 将它们转换成计算机内部所能识别和接受的信息方式。按输入信息的形态可分为字符 (包括汉字)输入、图形输入、图像输入及语音输入等。目前,常见的输入设备有键盘、鼠 标、扫描仪等。

(6)输出设备。输出设备的任务是将计算机的处理结果以人或其他设备所能接受的 形 式送出计算机。目前,最常用的输出设备是打印机和显示器。有些设备既可以是输入 设备, 同时也可以是输出设备,例如,辅助存储器、自动控制和检测系统中使用的数模转换装置等。

1.1.2 计算机系统结构的分类

计算机的发展经历了电子管和晶体管时代、集成电路时代(中小规模、大规模、超大规 模、甚大规模、极大规模)。目前,世界最高水平的单片集成电路芯片上所容纳的元器 件数 量已经达到80 多亿个。

1. 存储程序的概念 “存储程序”的概念是冯•诺依曼等人于1946年6月首先提出来的,它可以简要地概括为以 下几点:

(1)计算机(指硬件)应由运算器、存储器、控制器、输入设备和输出设备五大基本 部件组成。

(2)计算机内部采用二进制来表示指令和数据。

(3)将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作。这就是存 储程序的基本含义。冯•诺依曼对计算机世界的最大贡献在于“存储程序控制”概念的提出 和实现。六十多年来,虽然计算机的发展速度惊人,但就其结构原理来说,目前绝大多数计 算机仍建立在存储程序概念的基础上。通常把符合存储程序概念的计算机统称为冯•诺依曼 型计算机。当然,现代计算机与早期计算机相比,在结构上还是有许多改进的。 随着计算机技术的不断发展,也暴露出了冯•诺依曼型计算机的主要弱点:存储器访问 会成为瓶颈。目前,已出现了一些突破存储程序控制的计算机,统称为非冯•诺依曼型计算 机,例如,数据驱动的数据流计算机、需求驱动的归约计算机和模式匹配驱动的智能计算机 等。

2. Flynn 分类

1966 年,Michael.J.Flynn 提出根据指令流、数据流的多倍性特征对计算机系统进行 分类(通常称为 Flynn 分类法),有关定义如下。

(1)指令流:指机器执行的指令序列;

(2)数据流:指由指令流调用的数据序列,包括输入数据和中间结果,但不包括输出 数据。

Flynn 根据不同的指令流-数据流组织方式,把计算机系统分成以下四类。

(1)单指令流单数据流(SingleInstructionstream andSingle Datastream,SISD):SISD 其 实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对 一个操作部件分配数据。

(2)单指令流多数据流(SingleInstruction stream andMultiple Data stream,SIMD):SIMD 以并行处理机(矩阵处理机)为代表,并行处理机包括多个重复的处理单元,由单一指令部 件控制,按照同一指令流的要求为它们分配各自所需的不同数据。

(3)多指令流单数据流(MultipleInstruction stream andSingle Data stream,MISD):MISD 具有n个处理单元,按 n 条不同指令的要求对同一数据流及其中间结果进行不同的处理。 一个处理单元的输出又作为另一个处理单元的输入。这类系统实际上很少见到。有文献把流 水线看作多个指令部件,称流水线计算机是 MISD。

(4)多指令流多数据流(MultipleInstructionstreamandMultiple Data stream,MIMD): MIMD 是指能实现作业、任务、指令等各级全面并行的多机系统。如多核处理器、多处理机属于 MIMD。

1.1.3 复杂指令集系统与精简指令集系统

在计算机系统结构发展的过程中,指令系统的优化设计有两个截然相反的方向,一个是 增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬 件的指令系统来实现,这种计算机系统称为复杂指令系统计算机(ComplexInstructionSet Computer,CISC);另一个是尽量简化指令功能,只保留那些功能简单,能在一个节拍内执 行完成指令,较复杂的功能用一段子程序来实现,这种计算机系统称为精简指令系统计算机 (Reduced Instruction Set Computer,RISC)。

1. CISC 指令系统的特点 CISC 指令系统的主要特点如下:

(1)指令数量众多。指令系统拥有大量的指令,通常有 100~250 条。

(2)指令使用频率相差悬殊。最常使用的是一些比较简单的指令,仅占指令总数的20%, 但在程序中出现的频率却占80%。而大部分复杂指令却很少使用。

(3)支持很多种寻址方式。支持的寻址方式通常为 5~20 种。

(4)变长的指令。指令长度不是固定的,变长的指令增加指令译码电路的复杂性。

(5)指令可以对主存单元中的数据直接进行处理。典型的 CISC 通常都有指令能够直 接对主存单元中的数据进行处理,其执行速度较慢。

(6)以微程序控制为主。CISC 的指令系统很复杂,难以用硬布线逻辑(组合逻辑)电 路实现控制器,通常采用微程序控制。

2. RISC 指令系统的特点

RISC 要求指令系统简化,操作在单周期内完成,指令格式力求一致,寻址方式尽可能 减少,并提高编译的效率,最终达到加快机器处理速度的目的。

RISC 指令系统的主要特点 如下。

(1)指令数量少。优先选取使用频率最高的一些简单指令和一些常用指令,避免使用 复杂指令。只提供了 LOAD(从存储器中读数)和 STORE(把数据写入存储器)两条指令对 存储器操作,其余所有的操作都在 CPU 的寄存器之间进行。

(2)指令的寻址方式少。通常只支持寄存器寻址方式、立即数寻址方式和相对寻址方 式。

(3)指令长度固定,指令格式种类少。因为 RISC 指令数量少、格式少、相对简单, 其指令长度固定,指令之间各字段的划分比较一致,译码相对容易。

(4)以硬布线逻辑控制为主。为了提高操作的执行速度,通常采用硬布线逻辑(组合 逻辑)来构建控制器。

(5)单周期指令执行,采用流水线技术。因为简化了指令系统,很容易利用流水线技 术,使得大部分指令都能在一个机器周期内完成。少数指令可能会需要多周期,例如, LOAD/STORE 指令因为需要访问存储器,其执行时间就会长一些。

(6)优化的编译器:RISC 的精简指令集使编译工作简单化。因为指令长度固定、格式 少、寻址方式少,编译时不必在具有相似功能的许多指令中进行选择,也不必为寻址方式的 选择而费心,同时易于实现优化,从而可以生成高效率执行的机器代码。

(7)CPU 中的通用寄存器数量多,一般在 32 个以上,有的可达上千个。 大多数 RISC 采用了 Cache 方案,使用 Cache 来提高取指令的速度。而且,有的 RISC 使用两个独立的 Cache 来改善性能。一个称为指令 Cache,另一个称为数据 Cache。这样, 取指令和取数据可以同时进行,互不干扰。

1.1.4 总线

总线是一组能为多个部件分时共享的公共信息传送线路。

共享是指总线上可以挂接多个 部件,各个部件之间相互交换的信息都可以通过这组公共线路传送;

分时是指同一时刻只允 许有一个部件向总线发送信息,如果出现两个或两个以上部件同时向总线发送信息,势必导 致信号冲突。当然,在同一时刻,允许多个部件同时从总线上接收相同的信息。

按总线相对于 CPU 或其他芯片的位置可分为内部总线和外部总线两种。在 CPU 内部, 寄存器之间和算术逻辑部件 ALU 与控制部件之间传输数据所用的总线称为内部总线;外部 总线是指 CPU 与内存 RAM、ROM 和输入/输出设备接口之间进行通信的通路。由于 CPU 通过总线实现程序取指令、内存/外设的数据交换,在 CPU 与外设一定的情况下,总线速 度是制约计算机整体性能的最大因素。

按总线功能来划分,又可分为地址总线、数据总线、控制总线三类.

人们通常所说的总线都包括这三个组成部分,

地址总线用来传送地址信息,

数据总线用来传送数据信息,

控制总线用来传送各种控制信号。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值