• 第 1 章 计算机组成与体系结构 1.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) 单指令流单数据流(Single Instruction stream and Single Data stream,SISD):SISD  其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。

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

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

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

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

     

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

    1. CISC 指令系统的特点

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

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

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

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

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

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

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

     

    1. 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 与外设一定的情况下,总线速度是制约计算机整体性能的最大因素。

    按总线功能来划分,又可分为地址总线、数据总线、控制总线三类,人们通常所说的总线都包括这三个组成部分,地址总线用来传送地址信息,数据总线用来传送数据信息,控制总线用来传送各种控制信号。

     

  • 相关阅读:
    不容易系列之二
    Unicode 和Ansi下的字符和字符串转换问题
    转:sizeof()用法汇总
    转:MultiByteToWideChar和WideCharToMultiByte用法详解
    addTarget原理
    SDWebImage底层实现原理
    自动释放池的原理
    最近比较烦
    练车记录
    明天出去游乐场玩耶。
  • 原文地址:https://www.cnblogs.com/lizhigang/p/11081889.html
Copyright © 2020-2023  润新知