计算机计算篇

284 阅读9分钟

1. 计算机的总线与IO设备

  • 计算机的总线
    • 总线的概述 | 解决不同设备之间的通信问题
      • 提供对外连接的接口
      • 不同设备可以通过USB接口进行连接
      • 连接的标准, 促使外围设备接口的统一

      例: USB | Universal Serial Bus | 通用串行总线
      PCI总线 | 显卡插槽
      ISA总线 Thunderbolt总线

    • 总线的分类
      • 片内总线
        • 芯片内部的总线
        • 寄存器与寄存器之间
        • 寄存器与控制器、运算器之间
      • 系统总线 | 计算机连接外围设备的总线 | CPU、主内存、IO设备、各个组件之间的信息传输线
        • 数据总线 +双向传输各个部件的数据信息
          • 数据总线的位数(总线的宽度,一般与CPU位数相同[32位64位])是数据总线的重要参数
        • 地址总线
          • 指定源数据或目的数据在内存中的地址
          • 地址总线的位数与存储单元有关

          地址总线位数=n, 寻址范围:0~2^n

        • 控制总线
          • 用来发出各种控制信号的传输线
          • 控制信号经由控制总线从一个组件发给另一个组件
          • 可以监视不同组件之间的状态(就绪/未就绪)
    • 总线的仲裁
      • 为了解决不同组件使用总线的冲突问题
      • 总线的方法
        • 链式查询
          • 好处:电路复杂度低,仲裁方式简单
          • 缺点: 优先级低的设备难以获取总线的使用权、对电路故障敏感
        • 计时器定时查询
          • 仲裁器对设备编号使用计数器累计计数
          • 接收到仲裁信号后,往所有设备发出计数值
          • 计数值与设备编号一致则获得总线使用权
        • 独立请求
          • 每个设备均有总线独立连接仲裁器
          • 设备可单独向仲裁器发送/接受请求
          • 当同时收到多个请求信号,仲裁器有权按优先级分配使用权
          • 好处: 响应速度快,优先顺序可动态改变
          • 缺点: 设备连线多,总线控制复杂
  • 计算机的输入/输出设别(IO设备)
    • 常见的输入输出设备
      • 字符输入设备

        键盘:
        薄膜键盘: 内部有一个薄膜连接
        机械键盘: 每个按键有独立的轴

        根据 段落感 声音 压力 键程 可以分为:
        黑轴
        红轴
        青轴
        茶轴
        电容键盘:

      • 图像输入设备

        鼠标
        数位板-输入板+压力笔
        扫描仪

      • 图像输出设备

        显示器 | CRT显示器、液晶显示器
        打印机
        投影仪

    • 输入输出接口的通用设计
      • 数据线 | 是IO设备与主机之间进行数据交换的传送线 | 单向数据线、双向数据线
      • 状态线 | IO设备状态向主机报告的信号线 | 主机查询设备是否已经正常连接并就绪 | 主机查询设备是否已经被占用
      • 命令线 | CPU向设备发送命令的信号线
      • 设备选择线 | 主机选择IO设备进行操作的信号线
    • CPU和IO设备的通信 | CPU速度与IO设备速度不一致
      • 程序中断
        • 当外围IO设备就绪时,向CPU发出中断信号--CPU有专门的电路相应中断信号

        提供低速设备通知CPU的一种异步的方式
        CPU可以高速运转同时兼顾低速设备的响应

      • DMA(直接存储访问) | 可以提高CPU的效率
        • DMA直接连接主存与IO设备
        • DMA工作时不需要CPU的参与 2. 计算机的存储器
  • 计算机的存储器概览
    • 存储器的分类
      • 按照存储介质分类
        • 半导体存储器 | 例: 内存、U盘、固态硬盘
        • 磁存储器 | 例: 磁带 磁盘
      • 按照存取方式分类
        • 随机存储器(RAM) | 随机读取、与位置无关
        • 串行存储器 | 跟位置有关、按顺序查找
        • 只读存储器(ROM) | 只读不写
    • 存储器的层次结构
      • 影响存储器层次结构因素
        • 读写速度 越大越好
        • 存储容量 越大越好
        • 价格 越低越好

        容量 + 价格 => 位价: 每比特位价格

      • 缓存 | 速度快价位高
      • 主存 | 速度适中位价适中
      • 辅存 | 速度慢价位低

      缓存-主存层次 - 原理: 局部性原理 | 在CPU与主存之间增加一层速度快(容量小)的Cache | 解决主存与CPU速度不匹配的问题
      局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
      主存-辅存层次 - 局部性原理 | 主存之外增加辅助存储器(磁盘、SD卡、U盘等) | 解决主存容量不足的问题

  • 计算机的主存储器和辅助存储器

    为什么计算机断电,内存数据丢失而磁盘数据不会丢失

    • 主存储器 -- 内存(RAM,随机存取存储器,Random Access Memory)
      • RAM通过电容存储数据,必须隔一段时间刷新一次 | 如果断电,一段时间后将丢失所有数据
    • 辅助存储器 -- 磁盘
      • 表面是可磁化的硬磁特性材料
      • 移动磁头径向运动读取磁道信息
      • 磁盘磁道算法: 先来先服务算法 | 最短寻道时间优先 | 扫描算法(电梯算法) | 循环扫描算法
  • 计算机的高速存储器
    • 高速缓存的工作原理
      • 字: 是指存在一个存储单元中的二进制代码组合
      • 字块: 存储在连续的存储单元中而被看作是一个单元的一组字
      • 命中率是衡量缓存的重要性能指标
      • 理论上CPU每次都能从高速缓存取数据的时候,命中率为1
    • 高速缓存的替换策略
      • 随机算法
      • 先进先出算法(FIFO)
        • 把高速缓存看作是一个先进先出的队列
        • 优先替换最先进入队列的字块
      • 最不经常使用的算法(LFU)
        • 优先淘汰最不经常使用的字块
        • 需要额外的空间记录字块的使用频率
      • 最近最少使用算法(LRU)
        • 优先淘汰一段时间内没有使用的字块
        • 有多种实现方法, 一般使用双向链表
        • 把当前访问节点置于链表前面(保证链表头部节点是最近使用的) 3. 计算机的CPU
  • 计算机的指令系统
    • 机器指令的形式
      • 机器指令主要由两部分组成: 操作码、地址码
        • 操作码: 指明指令要完成的操作、操作码的位数反映机器的操作种类
        • 地址码: 直接给出操作数或者操作数的地址、分三地址指令,二地址指令和一地址指令、零地址指令

        零地址指令: 在机器指令中无地址码, 空操作、停机操作、中断返回操作等

    • 机器指令的操作类型
      • 数据传输类型: 寄存器之间、寄存器与存储单元、存储单元之间传送; 数据读写、交换地址数据、清零置一等操作
      • 算术逻辑操作: 操作数之间的加减乘除运算、操作数的与或非等逻辑位运算
      • 移位操作: 数据左移(乘2)、数据右移(除2)、完成数据在算术逻辑单元的必要操作
      • 控制指令: 等待指令、停机指令、空操作指令、中断指令等
    • 机器指令的寻址方式
      • 指令寻址: 顺序寻址、跳跃寻址
      • 数据寻址: 立即寻址、直接寻址、间接寻址
        • 立即寻址 | 速度快 | 地址码位数限制操作数表示范围: 指令直接获得操作数-无需访问存储器
        • 直接寻址 | 寻找操作数简单 | 地址码位数限制操作数寻址范围: 直接给出操作数在主存的地址-寻找操作数简单,无需计算数据地址
        • 间接寻址 | 操作数寻址范围大 | 速度较慢: 指令地址码给出操作数地址的地址-需要访问一次或多次主存来获取操作数
  • 计算机的控制器 | 协调和控制计算机运行的
    • 程序计数器 | 用来存储下一条指令的地址、循环不断的从程序计数器中拿出指令,当指令拿出指向下一条指令
    • 时序发生器 | 电气工程领域用于发送时序脉冲,CPU依据不同的时序脉冲有节奏的进行工作
    • 指令译码器 | 控制器的主要部件之一,翻译操作码对应的操作以及控制传输地址码对应的数据
    • 各种寄存器 | 指令寄存器、主存地址寄存器、主存数据寄存器、通用寄存器 | 从主存或高速缓存取计算机指令、保存当前CPU正要访问的内存单元的地址、保存当前CPU正要读取的主存数据、用于暂时存放或传送数据或指令,可保存ALU的运算中间结果,容量比一般专用寄存器要大
    • 总线 |
  • 计算机的运算器 | 用来进行数据运算加工
    • 数据缓冲器 | 输入缓冲输出缓冲 | 输入缓冲暂时存放外设送过来的数据、输出缓冲暂时存放送往外设的数据
    • ALU | 算术逻辑单元,是运算器的主要组成 | 常见的位运算(左右移、与或非等) | 算术运算(加减乘除等)
    • 通用寄存器 | 用于暂时存放或传送数据或指令 | 可保存ALU的运算中间结果
    • 状态字寄存器 | 存放运算状态(条件码、进位、溢出、结果正负等) | 存放运算控制信息(调试跟踪标记位、允许中断位等)
    • 总线
  • 指令执行过程
    • 取指令 | 从缓存取指令 送到指令寄存器
    • 分析指令 | 指令译码器译码 发出控制信号 程序计数器+1
    • 执行指令 | 装载数据到寄存器 ALU处理数据 记录运算状态 送出运算结果
  • CPU的流水线设计
    • 大大提升CPU的综合利用率