引言


依旧是开篇小故事。计算机组成原理,清朝的教材,建国的教室,刚毕业的老师,流水账式的授课,以及那些永远起不来的下午……这是我对这学期这门课所有的印象。就在所有人在纠结这到底是专业课还是水课时,计组老师笑眯眯地宣布,等出完卷子他会给我们划重点透题,前提是在这之前的教评(大学都这样恶心,教评在期末之前)……大家都默契的一笑,原来还是水课嘛。教评不出意外满分,但当他用不到5分钟的时间在课本上圈圈点点了几个公式和知识点后光速离场的那一刻,所有人都是懵的——他画的加起来都不够及格线的,更别说还不是原题。三天速通计组83分(实际是两天),完美诠释了我是怎么考上大学的()。好在最后一切顺利,遂将随手笔记整理放出。

后来考完才知道,这货是把他觉得难的题透出来了,只是想不挂科,谁让你拔高喂!(吐槽)

该部分只适用于大题速成,建议先看期末速成视频,通一遍基础知识点!!!

笔记为咲楓自用,如有错误,还请指正。

正文


CPU与主存的一些指标

CPU

  • CPI:执行一条指令所需的平均时钟周期数
  • CPU执行时间=程序指令数×CPI/时钟频率
  • MIPS:每秒百万(10^6)指令数
    即时钟频率(MHz)/CPI

主存

  • 主存带宽:单位时间内从主存储器读出的二进制信息量(B/s)

Cache命中率

若Cache初态为空,则每个字块第一次读取必未命中
命中率为 h=命中次数/总次数
主存-Cache平均访问时间为 t(a)=h×t(c)+(1-h)×t(m)
效率为 e=t(a)/t(c)
提高倍数为 b=t(m)/t(a)-1

Cache与主存的三种映射(设计主存地址)

主存地址=标记+Cache块号+块内地址

  • 全相联映射
    主存地址的格式为

    标记 块内地址
    地址数
  • 直接映射
    主存地址的格式为

    标记 Cache块号 块内地址
    块数 地址数
  • 组相联映射
    主存地址的格式为

    标记 Cache组号 块内地址
    块数/每组块数 地址数

主存与CPU的连接

  1. 系统程序区->ROM,用户地址区->RAM
  2. 首选位扩展(由数据线体现,每片控制一定的位数,即数据线)
  3. ROM的地址线每个芯片都连(系统程序区一般为最小地址)
  4. 74138译码器的三个输入位(ABC)分别对应用于RAM的三根地址线,芯片对应的输出位编号由其三根地址线的地址决定,均为低电平。输入位G1为高电平(没有连5V),G2A(非)、G2B(非)为低电平(一般连MREQ(非)和最后一根地址线)。低电平用画圈表示
  5. RAM均连R/W线,ROM均连PD(非)/Progr线

CPU用于外设的时间占比

  1. 求单位时间传输字数/块数
    • 每秒传输字数 = 传输速率 ÷ 每字字节数
    • 块数 = 平均传输长度 ÷ 每字字节数
  2. 计算每字/块 CPU 时间
    • 轮询/中断/DMA各自的周期数 × 每周期时间
      1. 程序查询方式
        每传输一字,CPU要查询一次
      2. 中断方式
        中断时传输,例如每中断传输一字
      3. DMA方式
        通过硬件(DMA处理器)实现主存与I/O设备间的直接数据传输,无需CPU干预
      4. 通道方式
        与CPU分时使用主存,实现CPU运算与I/O设备并行工作
      5. 处理机方式
  3. 求每秒 CPU 总时间
    • 每秒传输字数/块数 × 每字/块 CPU时间
  4. CPU占用比率
    • CPU总时间 / 总时间(1秒)

原码反码补码移码

  • 整数

    原码 反码 补码 移码
    正数 相同 相同 相同 补码符号位取反
    负数 符号位取1 其余取反 反码+1 补码符号位取反
  • 小数

    1. 小数 x2进1
    2. 分数(分母为2的n次方)
      分子二进制移位

定/浮点数及运算

定/浮点数

  • 定点数
    小数点的位置固定
    机器数表现形式
    • 纯整数

      数符 , 数值
    • 纯小数

      数符 . 尾数
  • 浮点数
    • 表示形式 N=S×r^j
      机器码表现形式

      阶符 , 阶码 ; 数符 . 尾数
      j S
    • 32位短浮点数(IEEE754)

      1. 10->2
      2. 二进制科学计数法
        符号位首位
        阶码8位,采用移码(E=e+127)的方式
        尾数23位
      3. 2->16
      阶符 , 阶码 ; 数符 . 尾数
      移码 原码
    • 转十进制
      上面反过来

      注意正负号

定/浮点数运算

定点数

  • 加减运算(变形补码表示,运算符2位)
    溢出判断
    数符异或1为溢出
    • 01 上溢
    • 10 下溢
  • 乘法
    1. 部分积初始值为0.0…,乘数为y*(即|y|)
    2. 乘数最后一位为1,加x*;为0,加0
    3. 部分积与乘数右移顺承,即部分积最后一位为乘数第一位,乘数最后一位舍去
    4. 重复23步骤,直至原乘数消耗完毕,部分积与乘数为结果绝对值
    5. xy数符异或,判断正负
  • 除法
    1. 被除数(余数)为x*,商为0.0…
    2. 加上[-y*]补
    3. 正数商1,负数商0,左移
    4. 重复23步骤,直至原被除数(余数)消耗完毕,商为结果绝对值
    5. xy数符异或,判断正负

浮点数

  • 浮点加减运算(机器补码表示,运算符2位)
    1. 对阶
      小阶向大阶看齐,小阶尾数右移
    2. 尾数求和
    3. 规格化
      • 左规
        当尾数出现00.0xxx或11.1xxx时,尾数左移,阶码-1
      • 右规
        当尾数出现01.xxx或10.xxx时,尾数右移补1,阶码+1
    4. 舍入
      • “0舍1入”法
      • “恒置1”法
    5. 溢出判断
      阶符异或1为溢出
      • 01 上溢
      • 10 下溢

中断屏蔽及CPU执行程序轨迹(铅笔)

若中断处理次序为 4->1->3->2

中断源\屏蔽字 1 2 3 4
1 1 1 1 0
2 0 1 0 0
3 0 1 1 0
4 1 1 1 1

优先处理次序高的服务,若有剩余时间则处理未完成的低次序服务

#计算机组成原理 #study

结语


祝各位考的开心。(好冷的笑话)

借物表