计算机组成原理-复习笔记
💯

计算机组成原理-复习笔记

时间
Dec 30, 2022 06:05 AM
Tags
notes
Brief Info
一部分知识点整理,比较细碎
1946年第一台通用电子计算机 ENIAC,之后第一台VonNeumann计算机 EDSAC,第一台小型机 PDP-1,第一个系列计算机IBM 360
评价计算机性能的指标
  • 吞吐率:单位时间内完成的任务数量
  • 相应时间:完成任务的时间
  • 衡量性能:
    • MIPS: million instructions per second
    • CPI: cycle per instruction
    • CPU Time: CPU全速工作时完成该进程所花费的时间
    • CPU Clock: 时钟频率
指令系统分类
  • 复杂指令集 CISC
  • 精简指令集 RISC
  • 超长指令字 VLIW (Very Long Instruction Word)
    • 并发运行多条短指令
    • 例如Intel 安腾指令集
RISC-V 指令系统
  • RV32I 基础整数指令
  • RV32F 单精度浮点指令
  • RV32D 双精度浮点指令
  • 特权指令 扩展指令
RISC-V 指令格式
notion image
编码
  • ASCII: 7位 占用一个字节
  • UNICODE: 16位
  • UTF-8: 变长字符编码
    • 字符长度由首字节确定
      除首字节均以10开始,自同步,可扩展性强
  • 点阵字体;矢量字体:利用曲线表示
浮点数
  • 加减向较大的阶码靠近,之后原码加减,然后格式化,最后舍入
码距
  • 任意两个合法码之间最少二进制位不同
  • 合理增大码距可以提高发现错误的能力
  • 奇偶校验码为2,海明码为4
奇偶校验码
  • 用于并行码检错
  • K位数据码+1位校验码,使得1的位数保持偶数/奇数
  • 电路实现为全部异或
海明校验码
  • 用于多位并行数据检错纠错
  • K位数据码1,r个校验位,使得能发现并改正k+r位中任何一位出错;或者发现但无法改正任何二位同时出错
  • 需要满足(发现并改正一位错误)或者(r-1位用于校验,码距为3,单独设一位用于区分是1位还是2位出错,能发现两位错误)
  • 实现方案
    • 校验位排列在2的幂次方位,其余为数据位
    • 数据位由其组成的幂次进行校验
    • S为自己和自己进行异或,表示出错的P
全加器
超前进位
查找表
  • 本质上是一个RAM,结果事先写入RAM,之后输入地址进行查找
【AM2901】
指令系统
  • 5种类型部件:运算器,控制器,存储器,输入设备,输出设备
  • 寻址方式
    • 立即数寻址:取指同时取到操作数
    • 直接寻址:根据地址码字段寻得指令地址
    • 寄存器寻址
    • 变址寻址:变址寄存器+偏移量
    • 相对寻址:PC+偏移量
    • 间接寻址:地址的地址
    • 基址寻址:基址寄存器+偏移量
    • 堆栈寻址:SP
RISC-V 指令系统
  • 推荐但不强制地址对齐
  • 小端机结构
  • 算数指令
    • 忽略溢出问题,高位被截断,低位写入到目标寄存器中
    • 乘积分高低32位,用mul和mulh获取
    • 除法div模rem
  • 分支与跳转指令
    • 比较指令 slt set less than sltu slti sltiu
    • 跳转指令Imm末尾有一个隐含的0
    • lui+addi注意,addi可能会出现符号扩展的情况,这就需要lui的时候在最后加上1
    • jal:PC跳到PC+imm,使用20位imm,末尾有一个隐含的0,实际跳转范围为个位置,每个位置2字节;或者说为个32-bit的指令
    • jalr:PC跳到rs1+offset,并把返回地址写入rd
CPI:cycle per instruction,每条指令平均使用的CPU周期
单周期:必须使用最长的指令的周期(加速比为优化每种指令的时长)
多周期
  • 两种不同类型的控制器
    • 硬连线:采用组合逻辑线路
    • 微程序:打表,存储控制信号,根据指令执行的步骤读出要用的信号组合
流水线
  • 流水线效率受限于用时最长的阶段(时钟周期不能短于最慢的流水段)
  • 衡量流水线性能指标
    • 吞吐率:单位时间执行指令的数量
    • 加速比:与串行执行时速度提高的比率(非段数)
数据冲突写后写只会发生在流水线不只一个流水段可以进行写,或者暂停某条指令执行允许之后执行。
按访问方式分类存储器
  • 随机访问存储器 RAM
  • 顺序访问存储器 SAM
    • 磁带
  • 直接访问存储器 DAM
    • 随机+顺序,磁盘
  • 关联访问存储器 CAM
层次存储满足的原则:
  • 一致性原则:同一信息值相同
  • 包含性原则:内层信息一定被包含在外层中
动态存储器:
  • 用金属氧化物半导体的单个MOS管来存储一位信息,存在T的源极寄生电容CS中。
  • 破坏性读出
    • 预充电延迟:把刚读到的内容写回去
  • 需要定期刷新
    • 每次刷新一行,分为集中刷新和分散刷新
  • 快速分页组织
    • 锁存前一次行地址,之后仅送列地址
  • 读写时序,RAS_L需要有效,CAS_L早晚都行
  • 存储容量高,访问速度慢,能耗低,成本低
静态存储器:
  • 速度快,存储密度低,出入共用管脚,能耗高,成本高,同时送行列地址
Cache
  • 缺失损失:替换较高层数据块的时间+将该块交付给处理器的时间
  • 参数对性能的影响
    • 块大小
    • 替换策略:LRU(替换最少被用到的),FIFO(队列),RND(随机)
    • 接入方式
  • 不命中写策略?
  • 提升存储访问性能:
    • 提高命中率
    • 缩短缺失访问时间
    • 提高Cache本身速度
  • 必然缺失:首次/进程切换——访问足够多可
    • 容量缺失:数据集超过Cache大小——增加容量
      冲突缺失:多个映射到一个——增加相连组数
      无效缺失:其它进程修改了主存数据
段式存储管理
  • 段是共享和保护的最小单元
磁盘
  • 寻道时间
  • 旋转延迟:平均为旋转半周的时间
  • 传输时间
  • 磁盘控制器延迟
  • 额外开销在总开销中比例较大 ⇒ 一次传输大量数据比较有效
    • 将页面存放在相邻扇区可以避免额外的寻道开销
RAID
  • RAID0
    • 分成多个带(strip),每个带若干扇区。
  • RAID1
    • 四块主磁盘四块辅助磁盘,每次写两次,读任意一个。读性能提高两倍。
  • RAID2
    • 使用海明码,字节拆分成半字节(4位)加上3位海明码,七个驱动器磁头同步旋转
  • RAID3
    • 对每个字计算一个校验位,写到校验驱动器上。需要严格同步。对整个磁盘崩溃能够恢复。
      对随机读写不友好,校验盘负载沉重
  • RAID4
    • 3的基础上加上0的分带,按strip进行校验,所有位异或起来形成校验带。有了更好的空间局部性,不需要对字进行校验也不需要驱动器同步,可以防止整块盘崩溃,但对部分数据出错纠错性能差。同时校验盘损坏更快了。
  • RAID5
    • 4基础上。将校验盘分在不同的盘上。减少校验盘负担。但是修复变困难了。
  • RAID6
    • 二维校验,P为同一行全部相加,Q为另一个一阶多项式
SSD
  • 有限擦除次数,按页读写按快擦除
  • FTL完成逻辑地址到物理地址的转换和磨损均衡
总线
  • 多主设备总线提高事务数量
    • 仲裁重叠:在当前事务为下一事务仲裁
      总线占用:在没有其他主设备请求总线的情况下,某主设备一直占用总线

Loading Comments...