计算机组成原理笔记

计算机组成原理

第一章 概述

  • 软件:系统软件,应用软件

  • 计算机发展:1946年ENIAC,电子管时代->晶体管时代->中小规模集成电路时代->大规模集成阶段

  • 冯诺依曼结构:

    • 五大组成部分:输入,输出,运算,控制,存储
    • 指令和数据以同等地位存放在存储器中,按址寻访
    • 指令有操作码和地址码
    • 存储程序
    • 运算器为中心
  • 现代计算机结构:

    • 存储器为中心
    • CPU=运算器+控制器
  • 主存储器的组成:存储体+MAR(地址寄存器)+MDR(数据寄存器)

  • 取指令->分析指令->执行指令

    • 取指令:pc计数器拿到指令索引值,去MAR寄存器翻译为存储体中的地址,放在MDR传输至IR(指令寄存器)
    • 分析指令:在IR处分析指令,指令由地址码和操作码组成
    • 执行指令:分析完指令,交由控制单元CU协调运算
  • 计算机系统的多层结构:高级程序语言在高级虚拟机器中翻译为汇编语言,经过汇编语言机器翻译为机器语言,下层还有微指令机器

  • 编译程序:全部高级语言一次性翻译为机器语言
    解释程序:将高级语言一句一句翻译

  • 性能指标

    • MAR位数:反应存储单元个数
    • MDR位数:存储字长,每个存储单元的大小
    • CPI:clock cycle per instruction,一条指令所需的时钟周期数
    • IPS:instruction per second,平均每秒执行多少指令
    • FLOPS:float-point operations per second,每秒执行浮点计算次数
    • 数据通路带宽:数据总线一次传输数据的位数
    • 吞吐量:单位时间处理请求的数量
    • 响应时间:发送请求到完成请求的时间

第二章 数据的表示和运算

  • 进位计数制
  • 8421码,余三码,2421码
  • 字符与字符串
    • 英文字符:ASCII码,七位二进制
    • 汉字字符:区位码,94*94格子,为了防止与控制通信字符冲突加上20H成为国标码,为了在计算器存储继续加上80H成为机内码
  • 奇偶校验:校验位由各位模2加运算得到
  • 汉明码:n位信息位,k位校验位,需要满足 2 k > = n + k + 1 2^k>=n+k+1 2k>=n+k+1,校验位分别填在1,2,4,8等位置上,校验位上的值由它对应的几个位异或运算得到,检测错误时将这些码和对应的校验码异或运算得到1则出错
  • CRC(循环冗余校验码):生成多项式的最高次幂就是校验码位数,记为r,将码字左移r位,进行除法得到校验位。
  • 定点数的表示
    • 无符号数:没有正负
    • 原码:符号位0表示正数,1表示负数,整数表示范围为 − ( 2 n − 1 ) 到 2 n − 1 -(2^n-1)到2^n-1 (2n1)2n1,0有+0和-0两种,小数标识范围为 − ( 1 − 2 − n ) 到 1 − 2 − n -(1-2^{-n})到1-2^{-n} (12n)12n
    • 反码:正数的反码和原码相同,负数的反码为在原码基础上数值位全部取反,表示范围与原码一样,0也有+0和-0
    • 补码:正数补码与原码相同,负数补码为反码末尾加一,0只有全0这种表示,特殊规定[x]补=1,0000000表示-2^7
    • 移码:表示整数,补码的基础上符号位取反,可用于比较绝对值
    • 已知[x]补求[-x]补的技巧:所有位取反,末位加一
    • 算术移位
      • 反码:对于正数补0,负数补1
      • 补码:右移补1,左移补0
    • 加减运算
    • 乘法运算
      • 原码一位乘法:绝对值相乘,符号位是符号异或得到
      • 补码一位乘法:进行n轮加法和移位,最后再进行一次加法,初始时辅助位置为0,若辅助位减去最低位为-1,则加上[-x]补;若为0,则加上0,若为1,则加上[x]补,加一次后acc寄存器和mq寄存器算术右移一位
    • 除法运算
      • 恢复余数法:acc存储被除数,通用寄存器存储除数,默认商1,如果得到负数则恢复,逻辑左移一位,符号位异或运算得到,左移n次,上商n+1次
      • 原码加减交替法:若商1得到负数,直接商0,余数左移一位再加上除数
      • 补码交替加减法:余数和除数同号商1,余数左移一位减去除数;若异号,商0,余数左移一位加上除数,重复n次
      • 强制类型转换:不改变数据内容,改变解释方式,在计算机中补码形式保存,short占2字节,int占4字节
  • 数据的存储和排列
    • 大端存储:先存储高字节数据
      小端存储:先存储低字节数据
    • 边界对齐
  • 浮点数
  • 算术逻辑单元

第三章 存储系统

  • RAM:随机存取存储器

  • SAM:顺序存取存储器

  • DAM:直接存取存储器

  • CAM:相联存储器,按内容查找,例如快表

  • ROM:只读存储器,bios存在ROM中

  • 主存储器的基本组成

    • 半导体元器件原理:mos管和电容,通过译码器将MAR翻译为高电平,选通字选线,计算金属引脚时考虑数据线,地址线,片选线,读写控制线

    • DRAM和SRAM

      类型SRAMDRAM
      存储材料触发器栅极电容
      是否破坏
      是否重写
      运行速度
      集成度
      发热
      成本
      是否易失
      是否刷新
      行列地址一次两次
    • DRAM的刷新:分散刷新,集中刷新,异步刷新,不需要CPU介入

    • DRAM的地址线复用技术:将地址线减半,分为行地址和列地址两次导通

  • MROM:掩模式只读存储器,不可重写

  • PROM:可编程只读存储器,可以写一次

  • EPROM:可进行多次重写
    UVEPROM:紫外线照射擦除
    EEPROM:电擦除

  • Flash:闪存,读速度比写速度快

  • 主存储器与CPU的连接

  • 存取周期:存取时间+恢复时间

  • 双端口RAM与多模块存储器

    • 低位交叉编址可以提高存取效率,使得存取时间为T+(n-1)r,T为存取周期,r是读取时间,为了让流水线不间断,应该让m>=T/r
    • 双通道内存:低位交叉编址原理
  • Cache

    • 局部性原理:未来用到信息可能就在现在信息邻近位置,这是空间局部性;未来要用到的信息很可能就是现在用到的信息,这是时间局部性
    • cashe与主存映射
      • 全相联映射:主存块可以放在cache任意位置,利用率高,但是查找慢
      • 直接映射:每个主存块只能放到一个特定的位置,查找快,但是利用率低
      • 组相联映射:cache分为若干组,每个主存块可以放到对应组的任一快上,综合上面两种优缺点
    • cache替换算法
      • 随机算法(RAND):cache满了,随机挑选一块淘汰
      • 先进先出算法(FIFO),没有用到局部性原理,频繁的换入换出,“抖动现象”
      • 最近最久未使用(LRU),命中率最好
      • 最不经常使用(LFU)
    • cache写策略:如何保持副本与原本一致性?
      • 写命中
        • 写回法:对cache写命中时,不立即写入主存,该cache被淘汰时再写回,是否被修改用脏位标记
        • 全写法:写直通法,cache修改时,同时修改主存对应块,可增加写缓冲减少访存次数
      • 写不命中
        • 写分配法:对cache写未命中时,把主存块调入cache,在cache中修改,可配合写回法使用
        • 非写分配法:对cache写未命中时只写入主存,不调入cache,搭配全写法使用
    • 多级cache
  • 页式存储

  • 虚拟存储器

    • 页式虚拟存储器
    • 段式虚拟存储器
    • 段页式虚拟存储器

第四章 指令系统

  • 指令字长:一条指令的字长,可能变化
  • 机器字长:CPU进行一次运算的位数
  • 存储字长:一个存储单元中的位数
  • 指令的分类
    • 按照操作类型
      • 数据传送:LOAD,STORE
      • 算术逻辑
      • 移位操作
      • 转移操作
      • 输入输出操作
    • 按照操作码分:定长操作码与可变长操作码
    • 按照指令长度分:定长指令字结构与变长指令字结构
    • 按照指令含地址个数
      • 零地址指令:不需要操作数,例如空操作,停机,关中断指令
      • 一地址指令:只需要一个操作数,例如加一减一取反运算,求补;或者原地操作
      • 二地址指令:(A1)OP(A2)->A1,访存四次,取指令->读A1->读A2->写A1
      • 三地址指令:(A1)OP(A2)->A3,访存四次,取指令->读A!->读A2->写A3
      • 四地址指令:(A1)OP(A2)->A3,A4=下一条指令的地址,访存四次
  • 扩展操作码:用1111表示扩展位,不允许短码是长码的前缀,操作码唯一,对于频繁的操作,采用较短的操作码,这与哈弗曼树类似
  • 指令寻址:
    • 顺序寻址
    • 跳跃寻址
  • 数据寻址:确定地址码的真实地址,用寻址特征区分不同的寻址方式,有效地址(EA)
    • 直接寻址:直接送入MAR,访存一次
    • 间接寻址:访存三次,EA=(A)
    • 寄存器寻址:操作数存在寄存器中,执行阶段不用访存
    • 寄存器间接寻址
    • 隐含地址:隐含给出操作数地址
    • 立即寻址:又称为立即数,采用补码表示,这个就是内存地址,用#标识,访存一次
    • 基址寻址:EA=(BR)+A,BR为基址寄存器,面向操作系统
    • 变址寻址:EA=(IX)+A,IX为变址寄存器,面向用户
    • 基址寻址&变址寻址复合:EA=(IX)+((BR)+A)
    • 相对寻址:EA=(PC)+A
    • 堆栈寻址:操作数存在堆栈中,隐含使用堆栈指针(SP)作为操作数地址 ,硬堆栈不必访存,软堆栈需要访存1次
    • CISC:complex instruction set computer,一条指令完成一个复杂的基本功能,X86架构,台式机,笔记本,功耗高
    • RISC:reduced instruction set computer,一条及指令完成一个基本动作,多条指令组合完成一个复杂的基本功能,ARM架构,用于手机,平板,功耗低

第五章 CPU

  • CPU的功能
    • 指令控制:取指令,分析指令,执行指令
    • 操作控制:指令送去相应部位
    • 时间控制
    • 数据加工
    • 中断处理
  • 运算器基本结构
    • 算术逻辑单元:ALU,实现算数逻辑运算
    • 通用寄存器组:AX,BX,CX,SP等,用于存放操作数
    • 暂存寄存器:暂存从主存读取的数据,因为直接放入通用寄存器会破坏其原有数据
    • 累加寄存器:用于实现加法运算
    • 程序状态字寄存器(PSW):例如OP表示溢出,SF表示符号标志,ZF表示零标志,CP是进位标志
    • 移位器:移位运算
    • 计数器:控制乘除运算的操作步数
  • 控制器基本结构
    • 程序计数器
    • 指令寄存器
    • 指令译码器
    • 微操作信号发生器
    • 时序系统
    • 存储器地址寄存器:存放所访问主存单元的地址
    • 存储器数据寄存器
  • 指令周期:去除一个指令并执行花费的时间,包含取指令周期(包括取指令和分析指令)和执行周期,CPU内部最小单位是CPU时钟周期;对于含有间接地址的指令,还有间址周期
    机器周期:例如完成取指令用到的时间就是机器周期,多个机器周期组成一个指令周期
    取指周期:根据PC内容取出指令存放在IR中
    间址周期:根据IR中指令地址区操作数有效地址
    执行周期:根据指令操作码和操作数做出相应操作
    中断周期:保存断点,送中断向量,处理中断请求
  • 空指令:只做取指令和分析指令
  • 执行方案
    • 单指令周期:所有指令执行时间相同,指令间串行
    • 多指令周期:不同类型的指令执行步骤不同,指令间串行
    • 流水线方案:隔一段时间启动一条指令,多条指令处于不同阶段,同时进行
  • 数据通路-单总线结构
    • 寄存器之间数据传送:三态门控制输入输出
    • 微操作流程
  • 数据通路-专用通路结构
  • 硬布线控制器设计
  • 安排微操作时序-取址周期的原则
    • 先后顺序不得随意更改
    • 被控对象不同的微操作尽量在一个节拍完成
    • 时间短的微操作尽量在一个节拍内完成允许有先后顺序
  • 微程序控制器:一条微指令包含多条微命令(微操作)
    • 水平型微指令:一条微指令可以定义多个并行的微命令,微程序短,执行速度快,但是微指令长,编写麻烦
      微指令编码方式,称为微指令控制方式,是指如何对微指令控制字段进行编码,以形成控制信号,编码目的是保证速度情况下,尽量缩短微指令字长
      • 直接编码(直接控制)方式:在微指令控制字段中,每一位代表一个微操作命令,置为一表示控制信号有效,这种方式简单直观,执行的速度快,并行性好,但是微指令字长过大,造成CM(控制存储器)过大
      • 字段直接编码方式:将微指令控制字段分为若干段,每段经过译码后发出控制信号微命令字段分段的原则是:
        • 互斥性微命令在同一段,相容性命令在不同段中
        • 每个小段包含信息位不能太多
        • 每个小段留出一个状态,表示本字段不发出任何微命令,例如3位的小段,只能表示7个互斥微操作
      • 字段间接编码方式:第一层译码器译码后又经过一层译码
    • 垂直型微指令:一条微指令只能定义一条微命令,微指令短,简单,规整,便于编写,但是微程序长,执行速度慢,效率低
    • 混合型微指令
    • 指令流水线
      • 顺序执行方式,控制简单,硬件代价低
      • 一次重叠执行方式:上一次和下一次重叠一个阶段,各部件利用率提高了,但是需要更多硬件,控制过程相对麻烦一点
      • 二次重叠执行方式:下一次和上一次重叠两个阶段
      • 性能指标:
        • 吞吐率:单位时间完成任务数,理想最大吞吐率为1/△t
        • 加速比:完成同样的任务,不使用流水线与使用流水线用时比例
        • 效率:设备利用率
      • 影响流水线的因素
        • 数据相关(数据冲突),解决方有硬件方法阻塞stall和软件方法NOP(空操作)
        • 控制相关(控制冲突):改变PC值和转移指令时
      • 流水线分类
      • 五段式流水线

第六章 总线

  • 总线仲裁
    • 集中仲裁:总线控制器判断选择主设备使用总线
      • 链式查询方式:总线允许、总线请求、总线忙三根线,可以按照优先级排列链接设备,扩充容易,结构简单,但是对故障敏感,优先级难以改变
      • 计数器查询方式:用一个计数器控制使用权,消除了链式查询对故障敏感的缺点
      • 独立请求方式:每个设备有自己的请求线和允许线,总线控制器带有排队器,响应速度快
    • 分布仲裁方式:不需要中央仲裁器,每个设备有自己的仲裁号表示优先级
  • 总线传输四个阶段
    • 申请分配:传输请求和总线仲裁
    • 寻址阶段
    • 传输阶段
    • 结束阶段
  • 主设备从设备通信方式
    • 同步定时方式:传送速度快,逻辑简单,适用于总线长度较小,可靠性较差
    • 异步定时方式:可靠性好,但是比较复杂
      • 不互锁方式:主设备发出请求信号后,等待一段时间就撤销,从设备收到请求信号后,发出回答信号,一段时间后撤销,双方通信不存在互锁
      • 半互锁方式:主设备发出请求信号,等到从设备发出回答信号才撤销,从设备发出一段时间后自动撤销
      • 全互锁方式:主设备发出请求信号收到从设备回答信号后撤销,从设备得知主设备撤销请求信号后撤销回答信号,彼此存在全互锁
    • 半同步方式:从设备发出wait信号
    • 分离式通信
  • 总线标准
    • ISA:系统总线
    • EISA:系统总线
    • FBS:前端总线
    • QPI:系统总线
    • VESA:局部总线
    • PCI:并行

第七章 输入输出系统

  • IO控制方式
    • 程序查询方式:CPU轮询检查IO控制器中的状态寄存器,检测到已完成再取数据
    • 程序中断方式:等键盘输入时去执行其他程序,当键盘输入完成时IO控制器发送中断请求,CPU响应中断请求
    • DMA控制方式:直接内存访问,通过DMA总线与高速IO设备相连,CPU向DMA接口发出主存地址,磁盘地址,读写数据量等参数
    • 通道控制方式:通道可以识别一系列通道指令
  • IO系统组成
    • IO硬件:包括外部设备,IO接口,IO总线等
    • IO软件:IO指令,包括操作码,命令码,设备码;通道指令,通道程序是提前放在主存中的
  • VRAM容量=分辨率* 灰度级位数;VRAM带宽=VRAM容量* 刷新率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值