计算机系统概述

CPI:每执行一条指令所需的时钟周期数
CPU执行时间=CPU时钟周期数/主频=(指令条数*CPI)/主频

数据的表示和计算

海明码

信息位n,校验位k满足:n+k<=2k-1

大小端存储

  • 小端存储:先存低位字节,后存高位字节
  • 大端存储:先存高位字节,后存低位字节

ox1245678存储在int型变量中,在内存的表现形式如下:
image.png

C语言各个类型所占字节数

类型 16位 32 位 64位
char 1(字节) 1 1
short int 2 2 2
int 2 4 4
unsigned int 2 4 4
float 4 4 4
double 8 8 8
long 4 4 8
long long 8 8 8
unsigned long 4 4 8

算数移位

  • 正数
    • 原码反码补码:添0
  • 负数
    • 原码:添0
    • 反码
      • 左移:添0
      • 右移:添1
    • 补码:添1

      逻辑移位

      所有位都参与移动,无论左移、右移,都是添0

      进制转换

二进制B;八进制O;十进制D;十六进制H;

  • 非十进制数到十进制数的转换:按相应的权值表达式展开
  • 十进制到非十进制数的转换
    • 对整数:除n取余
    • 对小数:乘n取整
  • 二进制与十六进制数之间的转换
    • 每4位二进制码对应1位十六进制数
    • 整数部分不够4位时在高位(左侧)补 0;小数部分不够4位时在低位(右侧)补 0

例题

1011.11B=()D =1×23+0×22+1×21+1×20+1×2-1+ 1×2-2 =8+2+1+0.5+0.25 =11.75
5B.8H=()D =5×161+11×160+8×16-1 =80+11+0.5 =91.5
25.5D=()H = 11001.1B= 19.8H
11001010.0110101B=()H =CA.6AH

机器数的表示与运算

有符号数和无符号数取决于程序员的定义,对于需要使用负数的程序,就选择有符号数。0——正数 1——负数

  • 原码:最高位为符号位,其余为真值部分
  • 反码
    • 若X>0 ,则 [X]反=[X]原
    • 若X<0, 则 [X]反= 对应原码的符号位不变,数值部分按位求反
  • 补码
    • 若X>0, 则[X]补= [X]反= [X]原
    • 若X<0, 则[X]补= [X]反+1

[B]补转为[-B]补:全部位(含符号位)取反,末位加一
负数补码->原码:数值位取反加一(对应原码的符号位不变)

例题:X= – 52= – 0110100

[X]原=10110100
[X]反=11001011
[X]补= [X]反+1=11001100

符号数的算术运算

通过引进补码,可将减法运算转换为加法运算。
即: [X+Y]补=[X]补+[Y]补 [X-Y]补=[X+(-Y)]补 =[X]补+[-Y]补。
注:运算时符号位须对齐

例题:66-51=66+(-51)=15

用二进制补码运算:
[+66]补= [+66]原= 01000010
[-51]原=10110011
[-51]补=11001101
[+66]补+ [-51]补= 00001111

例题:X=-52=-0110100,Y=116=+1110100,求X+Y=?

[X]原=10110100
[X]补= [X]反+1=11001100
[Y]补= [Y]原=01110100
[X+Y]补= [X]补+ [Y]补 =11001100+01110100 =01000000 X+Y=+1000000

异或:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

各个校验方式的纠错能力

  • CRC循环冗余校验码:默认一串数据只错一位,
  • 海明码:可以发现错误位置和错误个数,为自动纠错提供依据
  • 奇偶校验码不具有纠错能力

    IEEE754

    数符总是隐含表示。阶码用移码表示,移码是在真值X上加一个常数(偏置值)。偏置值=2n-1,其中n为阶码。尾数用原码表示。
类型 数符 阶码 尾数数值 总位数 偏置值 真值
短浮点型 1 8 23 32 127 image.png
长浮点型 1 11 52 64 1023 image.png
临时浮点型 1 15 64 80 16383

浮点数加减

  1. 对阶
  2. 尾数求和
  3. 规格化
  4. 舍入
  5. 溢出判断
  6. C语言类型转换

    单位换算

    数据存储

  • K->M->G->T->P->E->Z,依次是103倍
  • 1GB=210MB=230B
  • 1MB=220B
  • 1B(字节,Byte)=8bits(比特)

    时间

  • 1ps(皮秒)=10-12s

  • 1ns(纳秒)=10-9s
  • 1μs(微秒)=10-6s
  • 1ms(毫秒)=10-3s

    CPU 中央处理器

  • 运算器

    • ALU 算数逻辑单元
    • ACC 累加寄存器
    • PSW 程序状态字寄存器
    • CT 计数器
    • 移位器
    • 通用寄存器
    • 暂存寄存器
  • 控制器
    • CU 控制单元
      • PC 程序计数器
      • IR 指令寄存器
    • MAR 存储器地址寄存器
    • MDR 存储器数据寄存器
    • 指令译码器
    • 时序系统
    • 微指令信号发生器

      输入输出系统

      VRAM容量=分辨率灰度级位数
      VRAM带宽=分辨率
      灰度级位数*帧率
      磁盘读取时间=寻道时间+延迟时间(旋转半周的时间)+传输时间+其他时间

      参考

【1】计算机组成原理@唐塑飞