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 指令格式
编码
- 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...