计算机组成原理与体系结构
数据的表示
进制转换
image-20210413083704070
image-20210413083946062
image-20210413084239685
分割时,不足则高位补0
原码、反码、补码、移码
image-20210413091105813
image-20210413092014292
1、原码就是符号位加上真值的绝对值,即用第一位表示符号,其余表示值。
比如:[+1]原= 0000 0001 [-1]原= 1000 0001
因为第一位是符号位,所以8位二进制数的取值范围就是:(即第一位不表示值,只表示正负。)
[1111 1111 , 0111 1111] 即 [-127 , 127]
2、反码
反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
[+1] = [0000 0001]原= [0000 0001]反
[-1] = [1000 0001]原= [1111 1110]反
3、 补码
补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(也即在反码的基础上+1)
[+1] = [0000 0001]原= [0000 0001]反= [0000 0001]补
[-1] = [1000 0001]原= [1111 1110]反= [1111 1111]补
理解:https://zhuanlan.zhihu.com/p/91967268
注:
image-20210507183622034
浮点数运算
image-20210413113401277
计算机结构
image-20210413145506976
程序计数器:用于存放下一条指令所在单元的地址的地方。
指令寄存器:保存当前正在执行的一条指令。
指令译码器:主要作用是对指令进行译码。
累加寄存器:用来暂时存放算术逻辑运算部件ALU运算的结果信息。
数据寄存器:用来保存操作数和运算结果等信息,其目的是为了节省读取操作数所需占用总线和访问存储器的时间。
地址寄存器:用来保存当前CPU所访问的内存单元的地址,以方便对内存的读写操作。
Flynn分类
image-20210417082727426
CISC与RISC
image-20210417083051128
流水线
image-20210417092041760
流水线计算
流水线有 **k ** 个部分
80%的情况下使用理论公式,如果理论公式计算下没有正确答案再用实践公式
image-20210417090742299
image-20210504093329296
流水线吞吐率计算
image-20210417091437194
最大吞吐量率是指不考虑流水线建立时间的状态下,每一个流水线周期完成一次任务
流水线加速比
不使用流水线所用的时间:(2+2+1)* 100 = 500
image-20210417092108240
流水线效率
image-20210417094013799
层次化存储结构
image-20210417095508515
存储设备按访问速度排序为:通用寄存器 > Cache > 内存 > 硬盘
Cache的地址映像中,全相联映像块冲突最小,其次为组相联映像,直接映像块冲突最大。
Cache与主存的地址映像需要专门的硬件自动完成,使用硬件来处理具有更高的转换率。
image-20210417111135815
随机存取存储器在掉电之后数据将被清除
只读存储器在掉电之后仍然可以存储相应的信息
Cache高速缓存用来提高CPU访问主存(内存)数据或指令的效率,解决容量不匹配的问题,与外存无关。
主存 - 编址
image-20210417112016325
求地址单元:尾地址 - 首地址 + 1
一般选择用 (尾地址 + 1) - 首地址
第二空:
该内存地址共有 112K * 16 存储空间
则 112K * 16 = 28 * 16K * x
得出x = 4
磁盘结构与参数
image-20210417113206417
image-20210417114354722
image-20210417114439422
单缓冲区是只有一个缓冲区处理数据
磁盘旋转周期为33秒,总共有11个扇区,则一个扇区的旋转周期为3秒。
接下来介绍读取次序与逻辑:
读取R0(3s)-> 缓冲区进行数据处理(3s)-> 缓冲区数据处理完成后,读取指针在R2的开始处 -> 磁盘继续旋转直到落到R1的开始处(30s)->进行R1扇区的数据处理 ......(R0~R9的处理方式一样)
得出每一个扇区的处理时间为33s
R10的处理时间为 读取(3s)+ 缓冲区处理(3s) = 6s
则所有的处理时间为:(33 + 3)*10 + 6
优化存储后,不需要多余的扫描时间,每一个扇区处理完之后刚好处理下一个扇区
所以时间为:(3+3)*11 = 33