Skip to content

第一章 计算机系统概述

第一节 计算机硬件的发展

  • 微型计算机的发展以微处理器技术为标志

第二节 计算机系统层次结构

「计算机系统」组成

  • 计算机系统 = 软件 + 硬件
    • 硬件,有型的物理设备
    • 软件,硬件上运行的程序和相关的数据及文档

「计算机系统」 冯 · 诺依曼机的特点

  1. 存储程序 的工作方式
  2. 计算机硬件系统的组成
    1. 运算器
    2. 存储器
    3. 控制器
    4. 输入设备
    5. 输出设备
  3. 指令和数据同等地位存储在存储器中
    • 形式上没有区别,但计算机应能区分它们
  4. 指令和数据均用二进制代码表示
    • 指令 = 操作码(操作的类型) + 地址码(操作数的地址)

「计算机系统」存储程序基本思想

  • 事先编制好的程序和原始数据送入主存后才能执行
  • 一旦程序被启动执行
    • 就无须操作人员的干预
    • 计算机会自动逐条执行指令
    • 直至程序执行结束

「功能部件」主存储器(内存储器)

主存储器(内存储器)

  • 主存的特点
    • CPU 可直接访问
    • 按地址存取方式:按存储单元的地址进行存取
  • 主存最基本构成
    • image.png

辅助存储器(外存储器)

  • 外存:帮助主存储器记录更多信息,数据必须调入主存后,才能为CPU所访问

「功能部件」存储相关概念

  • 存储体、存储元件、存储单元的关系
=n×=n×n×(01)
  • 存储体 存放二进制信息。
  • 存储字 存储单元存储的一串二进制代码,该代码的位数为存储字长
  • 存储字长 可以是1B(8bit) 或是字节的偶数倍。
  • MAR 用于寻址,位数对应存储单元的个数。
  • MDR 位数与存储字长相等,一般为字节的2次幂的整数倍。

TIP

  • MARMDR 虽然是存储器一部分,在现代计算机中却是存在于CPU中的
  • 高速缓存(Cache) 也存在于CPU中

「功能部件」运算器

  • 计算机的执行部件
  • 进行算术运算(加减乘除)和逻辑运算(与、或、非、异或等)
  • 运算器核心为算术逻辑单元 ALU(Arithmetic and Logical Unit)
  • 运算器包含部件
    • 通用寄存器,用于暂存操作数和中间结果
      • 必备的三个寄存器
        • 累加器 (ACC)
        • 乘商寄存器 (MQ)
        • 操作数寄存器 (X)
      • 变址寄存器 (IX)
      • 基址寄存器 (BR)
    • 程序状态寄存器(PSW)
      • 也称标志寄存器
      • 用于存放ALU 运算得到的一些标志信息处理机的状态信息
      • 如结果是否溢出、有无产生进位或借位、结果是否为负等

「功能部件」控制器

  • 计算机的指挥中心
  • 控制器的组成
    • 程序计数器(PC)
    • 指令寄存器(IR)
    • 控制单元(CU)

程序计数器(PC)

  • 存放当前欲执行指令的地址
  • 具有自动加1的功能(这里的 “1” 指一条指令的长度)
  • 即可自动形成下一条指令的地址
  • 与主存的 MAR之间有一条直接通路

指令寄存器(IR)

  • 存放当前的指令
  • 内容来自主存的MDR
  • 操作码 OP(IR) 送至 CU,用以分析指令并发出各种微操作命令序列;
  • 地址码 Ad(IR) 送往 MAR,用以取操作数。

CPU(中央处理器)

  • CPU 包含的部件

    • 运算器(ALU)
      1. 算术单元(Arithmetic Unit)
        1. 负责执行算术运算,如加法、减法、乘法、除法等。
      2. 逻辑单元(Logic Unit)
        1. 负责执行逻辑运算,如与、或、非等。
      3. 数据寄存器(Data Register)
        1. 存储 ALU 中正在进行计算的数据。
      4. 控制单元(Control Unit)
        1. 控制 ALU 的操作模式和执行流程,根据指令中的操作码确定执行何种操作。
      5. 状态寄存器(Status Register)
        1. 存储 ALU 的状态信息,如零标志、进位标志等。
      6. 选择器(Multiplexer)
        1. 用于选择操作数,根据指令的需求选择相应的输入数据。
      7. 运算结果寄存器(Result Register)
        1. 存储 ALU 计算得到的结果。
    • 控制器(CU)
      1. 指令寄存器(Instruction Register,IR)
        1. 存储当前正在执行的指令。
      2. 指令译码器(Instruction Decoder)
        1. 对指令进行解码,确定指令的操作类型以及操作数的来源。
      3. 时序逻辑单元(Timing and Control Logic)
        1. 负责产生各种时序信号,控制CPU内部各个部件的工作时序。
      4. 地址生成器(Address Generator)
        1. 生成内存地址,用于从内存中读取指令和数据。
      5. 状态寄存器(Status Register)
        1. 存储CPU的状态信息,如条件码、中断使能状态等。
      6. 程序计数器(Program Counter,PC)
        1. 存储下一条要执行的指令的地址,用于指示CPU应该执行哪条指令。
      7. 分支单元(Branch Unit)
        1. 负责处理分支指令,确定分支条件并更新程序计数器。
  • CPU中控制器发出的控制信号,可以控制

    • 如何修改 PC 以得到下一条指令的地址
    • ALU 执行什么运算
    • 主存是进行读操作还是写操作(读/写控制信号)

CPU和主存之间的联系

  • CPU 和主存之间通过一组总线相连
  • 总线包含什么?
    • 地址线
      • MAR 中的地址信息会直接送到地址线
      • 用于指向读/写操作的主存存储单元
    • 控制线
      • 根据读/写信号线,指出
        • 数据是从 CPU 写入主存,还是从主存读出到 CPU
      • 控制数据流向
        • MDR 数据直接送到数据线
        • 数据线数据接收到 MDR
    • 数据线

image.png

第三节 计算机软件

「计算机软件」系统软件

  • 操作系统(OS)
  • 数据库管理系统(DBMS)
  • 语言处理程序
  • 分布式软件系统
  • 网络软件系统
  • 标准库程序
  • 服务性程序

「计算机软件」三个级别的语言

  1. 机器语言
  2. 汇编语言
  3. 高级语言
    • 计算机无法直接理解高级语言,用翻译程序转化为机器语言
    • 汇编程序(汇编器):汇编成机器语言
    • 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。
    • 编译程序(编译器):将高级语言程序翻译成汇编语言机器语言程序。

「计算机软件」软硬件逻辑功能等价性

  • 硬件实现的性能要优于软件实现的性能

「计算机软件」计算机系统层次结构

image.png

  • 层次之间的关系紧密

  • 下层是上层的基础

  • 上层是下层的扩展

  • 软件和硬件之间的界面就是指令集体系结构(ISA)

  • 什么是 ISA

    • 定义了一台计算机可以执行的所有指令的集合
    • 每条指令规定了计算机执行什么操作
    • 以及所处理的
      • 操作数存放的地址空间
      • 操作数类型

第四节 计算机系统的工作原理

「计算机系统」“存储程序”工作方式

  • 程序执行前
    • 需要将程序所含的指令和数据,送入主存
  • 一旦程序被启动执行
    • 就无须操作人员的干预
    • 自动逐条完成指令的取出和执行任务

「计算机系统」“存储程序”执行步骤

  • 程序执行前
    • 程序第一条指令的地址存放到PC
    • 取指令时,将PC的内容作为地址访问主存
  • 每条指令执行过程
    • 都需要计算下条将执行指令的地址,并送至 PC
    • 若当前指令为
      • 顺序型指令
        • 下条指令地址PC的内容加上当前指令的长度
      • 转跳型指令
        • 下条指令地址指令中指定的目标地址
  • 当前指令执行完
    • 根据PC的值到主存中取出的是下条将要执行的指令
      • 因而计算机能周而复始地自动取出并执行一条一条的指令。

「计算机系统」从源程序到可执行文件

  • UNIX 系统中的GCC编译器程序
    • 将源程序文件hello.c -> 可执行目标文件hello

image.png

  • 处理过程的四个阶段
    1. 预处理阶段
    2. 编辑阶段
    3. 汇编阶段
    4. 链接阶段

「计算机系统」程序执行过程的描述

image.pngimage.png

「计算机系统」指令执行过程的描述

  • 可执行文件代码段
    • 由一条一条机器指令构成的
    • 指令是用 0 和 1 表示的一串 0/1 序列
    • 用来指示 CPU 完成一个特定的原子操作
  • 机器指令的举例
    • 取数指令:从存储单元中取出一个数据送到CPU的寄存器
    • 存数指令:将CPU 寄存器的内容写入一个存储单元
    • ALU 指令:将两个寄存器的内容进行某种算术或逻辑运算后送到一个 CPU 寄存器

「指令过程描述」取数指令信息流程

  • 取数指令取出的操作数送至运算器的ACC 中的信息流程
  • 取指令:PCMARMMDRIR
    • 根据 PC 取指令到 IR
      • PC 的内容送 MAR
      • MAR 中的内容直接送地址线,同时控制器将读信号送读/写信号线
      • 主存根据地址线上的地址和读信号,从指定存储单元读出指令,送到数据线上
      • MDR数据线接收指令信息,并传送到 IR
  • 分析指令:OP(IR)CU
    • 指令译码并送出控制信号
      • 控制器根据 IR 中指令的操作码,生成相应的控制信号,送到不同的执行部件
      • 在本例中,IR 中是取数指令,因此读控制信号被送到总线的控制线
  • 执行指令:Ad(IR)MARMMDRACC
    • 取数操作
      • IR 中指令的地址码送 MAR,MAR 中的内容地址线
      • 同时控制器读信号送读/写信号线,从主存中读出操作数
      • 操作数通过数据线送至 MDR, 再传送到 ACC 中
  • 每取完一条指令,还须为取下条指令做准备,计算下条指令的地址
    • (PC)+1PC

「指令过程描述」数据通路与运算时的括号问题?

  • 注意
    • (PC)指程序计数器 PC 中存放的内容
  • 数据通路时括号可省略
    • 因为只是表示数据流经的途径,而不强调数据本身的流动
    • PCMAR 相当于 (PC)MAR
    • 程序计数器中的值经过数据通路送到 MAR
  • 运算时括号不能省略
    • (PC)+1PC 不能写为 PC+1PC
  • 当题目中 (PC)MAR 的括号未省略时,最好也不要省略