408计组——1.计算机系统概述

408计组——1.计算机系统概述

计算机系统层次结构

计算机系统的组成

硬件系统 + 软件系统=计算机系统

功能同时能用软硬件实现,称为软硬件逻辑功能等价

功能使用频繁切硬件成本理想,硬件解决效率更高

计算机硬件的组成

  • 冯诺依曼计算机特点

    1. 采用“存储程序”的工作方式

    2. 由【运算器、存储器、控制器、输入输出设备】组成

    3. 指令、数据存储地位相同,按地址询问

    4. 指令、数据均由二进制码表示,由指令周期的不同阶段区分

    5. 指令由操作码和地址码组成

      • 操作数 or 地址码?

      操作数和地址码是同一个东西

      一条假设的汇编指令:

      ADD R1, [500]
      
      • 操作码(Opcode)ADD ​指出操作类型

      • 操作数(Operands)R1​ 和 [500]

        • R1​ 是寄存器地址,表示一个寄存器
        • [500]​ 是直接地址码,表示内存地址 500 处的内容
  • 存储程序基本思想

    事先编制好的程序和数据送入存储器后才能执行,无需干预自动执行,直到执行结束

计算机功能部件

输入输出设备

  • 输入设备

    将程序和数据以机器能识别接受的形式输入

    键盘鼠标扫描仪摄像机

  • 输出设备

    将计算机处理结果以人类可接受形式,或其他系统要求形式输出

    显示器打印机

存储器

主存储器(内存储器,主存)辅助存储器(外存储器,外存)

CPU 能直接访问为主存,外存帮助主存记录更多内容

外存内容调入主存才能被 CPU 访问

image

  • 存储元

    存放二进制信息的电子元件,一个存储元 1bit

  • 存储单元

    每个存储单元存放一串二进制代码

  • 存储字

    存储单元二进制代码的组合

  • 字长

    存储字长决定了从内存中读取或写入数据的基本单位

    数据字长和机器字长决定了处理器如何处理这些数据

    • 存储字长

      一个存储单元(或存储字)所包含的位数

      决定存储器一次可以存或读的数据量

    • 机器字长

      处理器内部用于处理数据和指令的标准位数

      通常是处理器寄存器的宽度

    • 指令字长

      一条机器指令的长度,通常以位或字节为单位

      决定了指令编码的复杂性和灵活性

    • 数据字长

      数据总线一次并行传输信息的次数,处理器一次能处理的数据位数

      通常和机器字长相同

  • 存储器地址寄存器(MAR)

    存放访存地址,经过地址译码后找到所选存储单元,用于寻址

    MAR 位数(=存储单元个数/地址码长度)反映最多可寻址的存储单元个数

  • 存储器数据寄存器(MDR)

    暂存存储器读写信息,位数等于存储字长

  • 时序控制逻辑

    产生存储器操作所需各种时序信号

运算器

image

  • 累加器(ACC, Accumulator)

    临时存储操作数和运算结果的寄存器

    • 暂存中间运算结果
    • 作为算术和逻辑运算的一个操作数
    • 加速数据处理,从累加器读取和写入数据比从内存中要快
  • 乘商寄存器(MQ, Multiplier Quotient Register)

    专门用于存储乘法和除法运算的中间结果

    • 乘法时:存储乘法操作的中间结果(乘积)
    • 除法时:存储被除数和商
  • 通用操作数寄存器(X, General Purpose Register)

    用于存储任意数据和地址的寄存器,任意用途,无专用

    • 存储中间运算结果
    • 存储临时数据
    • 存储函数参数和返回值
  • 算术逻辑单元(ALU, Arithmetic Logic Unit)

    处理器中执行算术和逻辑运算的核心组件

    • 算术运算
    • 逻辑运算:与、或、非、异或
    • 移位运算:算术移位、逻辑移位
    • 比较运算

控制器

image

  • 程序计数器(PC, Program Counter)

    存放下⼀条指令的地址,并跟踪下⼀条要执⾏的指令的地址

    • 指向下一条指令:存储下一条指令的地址,并在每次指令执行后更新,以指向下一条指令的地址
    • 控制程序流:值决定了程序执行的顺序,通过改变 PC 的值可以实现程序的跳转、函数调用和循环控制
    • 初始化和重置:在程序启动时,PC 通常被设置为程序的起始地址;在程序重置或中断时,PC 也会被设置为特定地址
  • 指令寄存器(IR, Instruction Register)

    存储当前正在执行的指令的寄存器

    • 存储当前指令、解码:内存中取出的指令将加载到 IR 中,处理器进行解码和执行
    • 控制信号生成:根据 IR 中的指令,控制单元 cu 生成相应的控制信号来指导处理器的各个部分执行具体操作
  • 控制单元(CU, Control Unit)

    协调和控制其他部件的操作,分析指令,给出控制信号

    • 指令解码:读取并解释从 IR 中取出的指令,生成相应的控制信号
    • 信号分配:根据解码结果,将控制信号发送到 ALU、寄存器、内存和 I/O 设备等
    • 控制流程:管理程序执行的顺序,控制指令的取指、解码、执行、写回等步骤
    • 中断处理:处理和响应外部或内部的中断信号,确保系统能够正确处理中断事件

计算机软件

  1. 软件

    1. 系统软件

      一组保证计算机系统高效、正确运行的基础软件,作为系统资源提供给用户使用

      操作系统、数据库管理系统、语言处理程序、分布式软件系统、网络软件系统等

    2. 应用软件

      用户为解决某个应用领域中的各类问题而编制的程序

      科学计算类程序、工程设计类程序、数据统计与处理程序

  2. 三个级别的语言

    1. 机器语言

      二进制代码语言,计算机唯一可以识别和执行的语言

    2. 汇编语言

      用英文单词和缩写代替二进制指令代码

      必须经过汇编程序翻译为机器语言才能在硬件执行

    3. 高级语言

      由编译程序编译为汇编程序,经过汇编操作得到机器语言程序

      c++ 等

  3. 翻译程序

    1. 汇编程序(汇编器)

      汇编语言程序——> 机器语言程序

    2. 解释程序(解释器)

      源程序语句按执行顺序,逐条翻译为机器指令,立即执行

    3. 编译程序(编译器)

      高级语言程序——> 汇编语言/机器语言

计算机系统的层次结构

image

  1. 微程序机器层

    硬件层,由机器硬件直接执行微指令

  2. 传统机器语言层

    实际机器层,微程序解释机器指令系统

  3. 操作系统层

    操作系统程序实现,操作系统程序由机器指令和广义指令组成

    广义指令用于扩展机器功能,由操作系统定义

    也称混合层

  4. 汇编语言层

    由汇编程序支持,可编写汇编语言程序

  5. 高级语言层

    面向用户,由高级语言编译程序支持,之上还有应用程序层

软硬件之间的间隔为指令集体系结构(ISA),定义计算机所有指令集合

规定计算机执行的操作,处理的操作数存放的地址空间,操作数类型

计算机系统工作原理

“存储程序”工作方式

  1. 从主存储器中取指令

    程序的第一条指令在执行前放入 PC

    取指令时,由 PC 中的地址访问主存,将指令加载到指令寄存器(IR)

  2. 对指令进行译码

    解析指令,确定操作码和操作数

  3. 计算下一条指令的地址

    1. 若为顺序型指令

      PC 的内容 + 当前指令长度

    2. 若为转跳型指令

      指令中指定的目标地址

  4. 操作数并执行

    根据解码结果,执行指令指定的操作

  5. 将结果送回存储器

image

翻译过程

  1. 预处理阶段

    预处理器将引用的库文件插入程序文件,生成源程序

  2. 编译阶段

    将源程序编译生成汇编语言源程序

  3. 汇编阶段

    将汇编语言源程序翻译成机器语言指令,并打包成可重定位目标文件(二进制文件)

  4. 链接阶段

    链接器将可重定位目标文件和标准库函数合并为可执行文件

指令执行过程

以取数指令说明

  1. 取指令

    PC → MAR → M → MDR → IR

    由 PC 取指令到 IR

  2. 分析指令

    OP(IR) → CU

    指令译码并送出控制信号

  3. 执行指令

    Ad(IR) → MAR → M → MDR → ACC

    取数操作

(IR)指 IR 中存放的内容

image

计算机性能指标

机器字长

32 位电脑,32 即机器字长,简称字长

计算机进⾏⼀次整数运算所能处理的⼆进制的位数

通常与 CPU 寄存器位数、ALU 有关

字长越长,数表示范围越大,字长常为 8 的整数倍

数据通路带宽

外部数据总线⼀次能并⾏传送信息的位数,⾮ CPU 内部数据总线宽度

主存容量

主存储器所能存储信息的最⼤容量,通常以字节来衡量【1B(字节) = 8bit(位)】

也可以⽤字数 x 字⻓表示(512K x 16 位)

  • MAR 位数反映存储单元个数

    16 位 MAR 即有 $2^{16}=65536$ 个存储单元(64K,1K=1024)

  • MDR 位数反映存储单元字长

    32 位 MDR,表示存储容量为存储单元个数 x MDR,即($64K\times 32位$)

运算速度

  1. 吞吐量

    系统在单位时间内处理请求的数量

  2. 响应时间

    ⽤户向计算机发送⼀个请求,到系统对该请求做出响应并获得所需结果的等待时间

  3. 主频

    每秒执⾏的时钟周期数量

    机器内部主时钟的频率

    越大,代表⼀个操作所需时间越少,CPU运⾏速度越快

  4. CPU时钟周期

    CPU中最小的时间单位,每个动作最少需要1个时钟周期的时间,单位s

    通常为节拍脉冲或T周期,即主频的倒数

    10Hz表示每秒10次 image

  5. CPI(Cyele Per Instruction)

    执行一条指令所需时钟周期数

    即单条指令时间

  6. IPS(Instructions Per Second)

    每秒执行指令数量

    主频/平均CPI

  7. CPU执行时间

    执行一个程序花费的时间

    = CPI x 时钟周期

    = CPI / 主频

    = 指令条数 x CPI / 主频

  8. 每秒执行多少百万条指令(MIPS,Million instructions per second)

  9. 每秒执行多少次浮点运算(FLOPS,Floating-point Operations Per Second)

基准程序

专门用于进行性能评价的一组程序