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通过电容存储数据,必须隔一段时间刷新一次 | 如果断电,一段时间后将丢失所有数据
- 辅助存储器 -- 磁盘
- 表面是可磁化的硬磁特性材料
- 移动磁头径向运动读取磁道信息
- 磁盘磁道算法: 先来先服务算法 | 最短寻道时间优先 | 扫描算法(电梯算法) | 循环扫描算法
- 主存储器 -- 内存(RAM,随机存取存储器,Random Access Memory)
- 计算机的高速存储器
- 高速缓存的工作原理
- 字: 是指存在一个存储单元中的二进制代码组合
- 字块: 存储在连续的存储单元中而被看作是一个单元的一组字
- 命中率是衡量缓存的重要性能指标
- 理论上CPU每次都能从高速缓存取数据的时候,命中率为1
- 高速缓存的替换策略
- 随机算法
- 先进先出算法(FIFO)
- 把高速缓存看作是一个先进先出的队列
- 优先替换最先进入队列的字块
- 最不经常使用的算法(LFU)
- 优先淘汰最不经常使用的字块
- 需要额外的空间记录字块的使用频率
- 最近最少使用算法(LRU)
- 优先淘汰一段时间内没有使用的字块
- 有多种实现方法, 一般使用双向链表
- 把当前访问节点置于链表前面(保证链表头部节点是最近使用的) 3. 计算机的CPU
- 高速缓存的工作原理
- 计算机的指令系统
- 机器指令的形式
- 机器指令主要由两部分组成: 操作码、地址码
- 操作码: 指明指令要完成的操作、操作码的位数反映机器的操作种类
- 地址码: 直接给出操作数或者操作数的地址、分三地址指令,二地址指令和一地址指令、零地址指令
零地址指令: 在机器指令中无地址码, 空操作、停机操作、中断返回操作等
- 机器指令主要由两部分组成: 操作码、地址码
- 机器指令的操作类型
- 数据传输类型: 寄存器之间、寄存器与存储单元、存储单元之间传送; 数据读写、交换地址数据、清零置一等操作
- 算术逻辑操作: 操作数之间的加减乘除运算、操作数的与或非等逻辑位运算
- 移位操作: 数据左移(乘2)、数据右移(除2)、完成数据在算术逻辑单元的必要操作
- 控制指令: 等待指令、停机指令、空操作指令、中断指令等
- 机器指令的寻址方式
- 指令寻址: 顺序寻址、跳跃寻址
- 数据寻址: 立即寻址、直接寻址、间接寻址
- 立即寻址 | 速度快 | 地址码位数限制操作数表示范围: 指令直接获得操作数-无需访问存储器
- 直接寻址 | 寻找操作数简单 | 地址码位数限制操作数寻址范围: 直接给出操作数在主存的地址-寻找操作数简单,无需计算数据地址
- 间接寻址 | 操作数寻址范围大 | 速度较慢: 指令地址码给出操作数地址的地址-需要访问一次或多次主存来获取操作数
- 机器指令的形式
- 计算机的控制器 | 协调和控制计算机运行的
- 程序计数器 | 用来存储下一条指令的地址、循环不断的从程序计数器中拿出指令,当指令拿出指向下一条指令
- 时序发生器 | 电气工程领域用于发送时序脉冲,CPU依据不同的时序脉冲有节奏的进行工作
- 指令译码器 | 控制器的主要部件之一,翻译操作码对应的操作以及控制传输地址码对应的数据
- 各种寄存器 | 指令寄存器、主存地址寄存器、主存数据寄存器、通用寄存器 | 从主存或高速缓存取计算机指令、保存当前CPU正要访问的内存单元的地址、保存当前CPU正要读取的主存数据、用于暂时存放或传送数据或指令,可保存ALU的运算中间结果,容量比一般专用寄存器要大
- 总线 |
- 计算机的运算器 | 用来进行数据运算加工
- 数据缓冲器 | 输入缓冲输出缓冲 | 输入缓冲暂时存放外设送过来的数据、输出缓冲暂时存放送往外设的数据
- ALU | 算术逻辑单元,是运算器的主要组成 | 常见的位运算(左右移、与或非等) | 算术运算(加减乘除等)
- 通用寄存器 | 用于暂时存放或传送数据或指令 | 可保存ALU的运算中间结果
- 状态字寄存器 | 存放运算状态(条件码、进位、溢出、结果正负等) | 存放运算控制信息(调试跟踪标记位、允许中断位等)
- 总线
- 指令执行过程
- 取指令 | 从缓存取指令 送到指令寄存器
- 分析指令 | 指令译码器译码 发出控制信号 程序计数器+1
- 执行指令 | 装载数据到寄存器 ALU处理数据 记录运算状态 送出运算结果
- CPU的流水线设计
- 大大提升CPU的综合利用率