计算机组成原理重点总结

数值表示

原码,补码,反码,移码

  • 原码:正0 负1 + 机器数 [1111 1111 , 0111 1111]
  • 反码:正数为原码,负数原码取反(除符号位
  • 补码:正数为原码,负数反码+1(符号不变,最后一个1右边不变,左边取反
  • 移码:补码的符号位取反

浮点数转换

  1. 十进制转浮点数
    1. 转2进制
    2. 规格化:=x*2^n
    3. 偏置值+阶码真值n=[阶码]移
    4. 浮点数代码为:符号位;阶码;尾数
  2. 十六进制浮点数转十进制
    1. 分离符号位;阶码;尾数。
    2. 阶码真值n=[阶码]移-偏置值
    3. 规格化:=x*2^n
    4. 去规格化,换10进制

十进制数编码

  • 8421码:NBCD码,D=8b3+4b2+2b1+1b0,1010~1111非法

  • 2421码:D=2b3+4b2+2b1+1b0,对9自补码:取反可得到对9补码(2421表示

  • 余3码:8421码+0011,无权("1"不表示固定十进制数值),对9自补码

  • 格雷码:无权

    十进制 格雷码
    0 0000
    1 0001
    2 0011
    3 0010
    4 0110
    5 1110
    6 1010
    7 1011
    8 1001
    9 1000

压缩十进制数串:

​ 8421表示,一个字节存两个符号在最后,1100正,1101负

-2648表示为

0000 0010 0110 0100 1000 1101

数据校验

码距:任意两个码字之间最少变化而二进制数

奇偶校验:检测一位错误,码距2

  • 偶校验:1的个数为偶->0,1的个数为奇->1,逐位异或(相同=0,不同=1)
  • 奇校验:1的个数为偶->1,1的个数为奇->0,逐位异或取反,(不存在全0
  • 交叉奇偶

汉明码:校验位数K,信息位N
\[ 2^{K-1}\geq N+K+1 \]

  • 校验码Pi分配到2^(i-1)上,组成新序列
  • Dii位号ii=∑ [2^(P新的位号-1)],即:被娇艳的每一位的新位号=2^(校验他的各个校验位的位号-1)之和

循环冗余 CRC:左移N-1位,对产生多项式模2运算,余数加到原数据末尾

数值机器运算

补码加减:符号位参加运算

\[ [X+Y]_{补}= [X]_{补}+[Y]_{补} \]

\[ [X-Y]_{补}= [X]_{补}+[-Y]_{补} \]

溢出检测:

  1. 一个符号位:Xs=Ys=0,Ss=1正溢出;Xs=Ys=1,Ss=0负溢出
  2. 进位:进位记为Cs,C1C2...Cn。C1=1,Cs=0正溢出;C1=0,Cs=1负溢出
  3. 变形补码(双符号位):Ss1Ss2=00,11无溢出;01正溢;10负溢出

带符号数移位:

  1. 原码:符号位不变,正负数均以0补入
  2. 补码:符号位不变
    1. 正数:以0补入
    2. 负数:左移补0,右移补1(左塞1,右塞0)

定点乘法

原码一位乘法:3个寄存器:A存部分积高位,B存被乘数,C存乘数
\[ 乘积:P=\left | X \right |+\left | Y \right | \]

\[ 符号:P_{s}=X_{s}\oplus Y_{s} \]

  1. 取绝对值
  2. 乘数最低位=1,+被乘数;=0,+0
  3. 累加后的部分积和乘数右移一位
  4. 重复2,3
  5. 符号异或,右移Ny次为结果

补码一位乘法:Booth乘法

  1. 补码表示(被乘数和部分积取双符号位,乘数Y取单符号位)
  2. 乘数末尾增加附加位0
  3. 每求一次部分积右移一次,乘数最低两位决定操作
判断位 操作
0 0 部分积+0,右移一位
0 1 部分积+[X]补,右移一位
1 0 部分积+[-X]补,右移一位
1 1 部分积+0,右移一位

补码两位乘法:

  • 矫正法:按原码运算,根据结果矫正

  • Booth法:
    1. 补码表示(被乘数和部分积取三符号位)
      1. 乘数Y数值位数为偶,取2符号位,n/2+1次累加,n/2次移位,最后一次不移位
      2. 乘数Y数值位数为奇,取1符号位,(n+1)/2次位移累加,最后一次位移1位
      3. 总结:都是最后留下2位
    2. 同1位
判断位 操作
0 0 0 原部分积+0,右移两位
0 0 1 原部分积+[X]补,右移两位
0 1 0 原部分积+[X]补,右移两位
0 1 1 原部分积+2[X]补,右移两位
1 0 0 原部分积+2[-X]补,右移两位
1 0 1 原部分积+[-X]补,右移两位
1 1 0 原部分积+[-X]补,右移两位
1 1 1 原部分积+0,右移两位

定点除法

原码加减交替法:2符号位,3个寄存器,A存被除数,B存除数,C存商

  1. 求|X|,|Y|,[|Y|]变补;A=|X|,B=|Y|,C=0,CR=0
  2. A=A-B(+[|Y|]变补)
    1. A>=0正:Cn=1,A和C一起左移 1 位,A=A+B
    2. A<0负:Cn=0,A和C一起左移 1 位,A=A-B
  3. CR++
    1. CR != n:回到3
    2. CR == n:
      1. A>=0正:Cn=1
      2. A<0负:Cn=0,A=A+B(+|Y|)

补码加减交替法:2符号位,同上,以下[]均为补码

  1. 求[X]补,[Y]补,[-Y]补;A=[X],B=[Y],C=0,CR=0
    1. AB同号:A=A-B= [X] + [-Y](同号-B,异号+B
    2. AB异号:A=A+B= [X] + [Y]
    1. AB同号:Cn=1,A和C一起左移 1 位,A=A-B(同号-B,异号+B
    2. AB异号:Cn=0,A和C一起左移 1 位,A=A+B
  2. CR++
    1. CR != n:回到3
    2. CR == n:末位置1,Cn=1

考纲

简答

  1. 寻址方式

    答:寄存器寻址,立即寻址,直接寻址,间接寻址,相对寻址,基础寻址,变址寻址

    寄存器:位置:指定的寄存器。方法:地址码部分给出某个通用寄存器的编号,这个指定的寄存器中存放着操作数。

    立即:位置:地址码字段。方法:只要取出指令就取出了可以立即使用的操作数。

    直接:位置:主存储器。方法:指令中地址码字段给出的地址A就是操作数的有效地址。

    间接:位置:主存储器。方法:按指令的地址码字段先从主存中取出操作数的有效地址。

    变址:位置:主存储器。方法:变址寄存器中的内容与指令中给出的形式地址A相加,形成操作数有效地址。

    基址:位置:主存储器。方法:基址寄存器的内容与指令中给出的位移量; D相加,形成操作数有效地址。

    相对:位置:主存储器。方法:由程序计数器PC提供基准地址,指令中的地址码字段作为位移量D,两者相加后得到操作数的有效地址

  2. cache或虚拟存储器的地址映射方式

    直接映射,全相联映射,组相联映射

    1. 直接映射:
      • 特点:主存中每一个块只能被放置到Cache中唯一的一个指定位置,若这个位置已有内容,产生块冲突,原来的块将无条件被替换出去。
      • 优点:成本低,易实现,地址变换速度快
      • 缺点:不够灵活,Cache的块冲突概率最高,空间利用率最低
    2. 全相联映射:
      • 特点:让主存中任何一个块均可以装入到Cache中任何一个块的位置上。
      • 优点:方式灵活,Cache的块冲突概率最低、空间利用率最高
      • 缺点:地址变换速度慢,成本高
    3. 组相联映射:
      • 特点:将Cache分成若干组,主存中的块直接映像装入Cache中对应组内的任何一块位置上(组间采取直接映射,组内采取全相联映射)
      • 优缺点介于全相联映射和直接映射的优缺点之间。
    4. cache虚拟存储器异同
      • 同:都需要对地址或标记进行判断。当Cache或主存已满都要使用替换算法。
      • 异:Cache的容量小,保存的信息只是主存中最急需执行的若干块的副本。虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的存储空间。在这个大空间里,用户可以自由编程。虚拟存储器是利用辅助硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址指示的存储单元内容是否已装入主存。Cache是用主存地址的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较。若相等,说明访问Cache有效,称Cache命中,若不相等,说明访问Cache无效,称Cache不命中或失效。虚拟存储器的判断是如果已在主存中,则通过地址变换,CPU 可直接访问主存的实际单元;如果不在主存中,则把包含这个字的一页或一个程序段调入主存后再由CPU访问。
  3. 汉字国标码,区位码,机内码,字型码区别与联系

    国标码是一个四位十六进制数,区位码是一一个四位的十进制数,每个国标码或区位码都对应着一个唯一的汉字或符号,但因为十六进制数很少用到,所以常用的是区位码,汉字或字符在计算机内部的表示就是机内码

    国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,因此不方便在计算机中直接使用。汉字的机内码采用变形国标码

    汉字字型码用于汉字在显示屏或打印机输出

计算

  1. 定点数算术运算

  2. 浮点数算术运算

  3. 磁介质存储器性能参数计算

    • \[ 数据传输率=\frac{每一道的容量}{旋转一圈的时间}(b/s) \]

    • \[ 平均存取时间 T_{a}\approx \frac{0+道间移动时间\times (每一面磁道数-1)}{2} \]

    • \[ 非格式化容量=最大位密度\times 最内圈磁道周长\times 总磁道数 \]

    • \[ 格式化容量=每道扇区数\times 扇区容量\times 总磁道数 \]

  4. 显示器有关参数计算

    • \[ 视频带宽=水平分辨率\times垂直分辨率\times场频\times1.344 \]

      1. 字符显示器:

        1. \[ 字符窗口=(x+x_{字距})\times (y+y_{行距}) \]

        2. \[ 缓存容量(字节)=行数\times 每行字符数 \]

      2. CRT显示器:

        1. \[ 缓存容量=一帧内字符量 \]

        2. \[ 字符发生器容量(ROM)=可显示ASCII字符种类数\times 8(B) \]

        3. 缓存采用随机存储器,存放的是字符的ASCII码

        4. 缓存地址与屏幕位置:屏幕显示位置自左至右,从上到下,相应的缓存地址由低到高,每个地址码对应一个字符现实位置。屏幕坐标(X,Y),则缓存地址=(X*80+Y)

        5. 字符点阵存放在字库中,根据字符的ASCII码逐行读出点阵显示。

        6. 计数器

          1. 点:横向间隔+字间间隔
          2. 字:一行x个字符显示+水平回扫折合
          3. 行:纵向间隔+排间间隔
          4. 排:y列字符+垂直回扫这和
        7. 图形显示器需将Q每个像素的信息都存放在VRAM 中,而字符显示器只需将要显示的ASCII码存放在VRAM中,字符的点阵来自字符发生器ROM

  5. 总线有关参数计算

    \[ 总线带宽B=数据总线宽度W\times \frac{总线时钟频率F}{完成一次数据传送所用的时钟周期数N} \]

    \[ 例题考法:B= \frac {总线宽度(位)} {8(位/字节)} \times 工作频率 = 一个时钟周期传送的字节数(字节)\times 频率 \]

    • 带宽的影响因素有:
      1. 总线宽度
      2. 传送距离
      3. 总线发送和接收电路工作频率限制
      4. 数据传送形式

设计

  1. 存储器设计(选片,字位扩展

    • 位扩展:64k X 1 → 64k X 8
    • 字扩展:16k X 8 → 64k X 8
  2. 微程序 或 微操作序列设计
  3. 中断优先级设置及响应

你可能感兴趣的:(计算机组成原理重点总结)