计算机的产生与发展
本节架构
什么是计算机系统
硬件的发展
软件的发展
计算机硬件的基本组成
本节架构
早期的冯诺伊曼机
现代计算机结构
各个硬件的工作原理
主存储器的基本组成
注意字的大小是由计算机决定的,可能有8bit 16bit 32bit,一个字节就是8bit
运算器的基本组成
控制器的基本组成
计算机的工作流程
计算机系统的层次结构
三种级别的语言
计算机性能指标
本节架构
存储器的性能指标
系统整体的性能指标
数据的表示和运算
进位计数制
本节架构
BCD码
字符与字符串
本节架构
奇偶校验码
本节架构
海明校验码
本节架构
在第三步的时候,将都为1的归为一个分组,然后将这个分组内的所有的值进行异或即可求出该校验位的值
循环冗余校验码
本节架构
定点数的表示
本节架构
无符号数的表示
有符号数的定点表示
原码
在某些教材中源码可能会在符号位的后面加上一个逗号,其实这个逗号是不存在的是我们补充上去的,其次如果没有指定机器的字长可以不用补0
浮点机械数的表示方法
非标准化的浮点表示方式
标准化浮点数的表示方式
例题如下:
标准化浮点数需要注意的点:
1:数符与阶符都只有一位,其中数符表示的是位数的正负,阶符表示的是阶码的正负,阶码数值的长度有7位,尾数的长度有23位
2:阶码的如何求取?指数的移码-1
3:尾数如何求取?将数值化为1.几的形式,然后取小数部分,1.隐藏不显示
反码
补码
移码
移码的作用:可以将两个移码从前往后进行比较,谁先出现一,就谁大,以此类推
各种码的作用
就拿上面这道题进行举例,因为它是8bit所以天然的限定的是mod2的8次方,所以减一个数可以用加上其补码来代替,例如14-14=14+(-14的补码)
总的来说:补码的作用是将剑法运算转化为加法运算,移码的作用是方便进行数值的大小比较
移位运算
本节架构
移位运算
原码的算数移位
反码的算术移位
补码的算术移位
左移的时候需要将符号位用数据为替换,右移的时候符号位不变
算术移位的具体应用
就例如上面的-20*7,我们可以将7进行拆分,就可以得到三个数的相加,就可以将相乘运算转化相加运算以及移位运算
逻辑移位
逻辑移位的应用
循环移位
加减运算和溢出判断
本节架构
原码的加减运算
补码的加减运算
如何根据【X】补求【-X】补
溢出判断
方法1:单符号法(了解)
方法2:双进位法(掌握)
例题如下:
双进位法总结:
方法3:双符号位法(掌握)
移码的加减运算
注意:上面的n是不包含符号位的
移码和补码的混合运算
10进制的加法运算-BCD码加法
一般的10进制加法:结果依旧为BCD码
当结果发生溢出即和大于等于16:将得到的结果6,纠正结果
符号拓展
定点数原码乘法运算
本节架构
补码的校正法(了解)
与其他算法的区别就是在所有的位数右移后需要将加上【-x】补进行校正
补码的一位乘法(Booth算法)掌握
首先是乘数的问题:乘数的辅助位其实为0,其次逻辑右移的过程中,最低位会代替辅助位,因为已经村存在一个辅助位了,所以符号位只有一个
其次是被乘数的问题乘数采用双符号位
定点数原码除法运算
恢复余数法
其中n是指除数数值位的位数
在硬件中,因为无法判断大小,所以默认先上1,如果余数不对劲,然后回退为上一次的结果,这也就相当于完成了商0,并相减的操作
得到的结果要添加4个零,应为除数x后面右四个小数点
加减交替法
可是老师要恢复很麻烦,有没有什么办法,可以让不恢复直接得出下一次运算的结果,方法就是直接将该结果左移加上负数补就是我们相当于执行了恢复操作,得出下一次操作的运算数
定点数补码的除数运算(不要求掌握)
浮点数的加减运算
两个浮点数的加减运算:首先将两个数上对阶即后面所乘的10的部分要相同,并且小的向大的哪一边靠拢,然后将有效数值部分相加,并进行规格化(按题目要求),注意这里的舍人是指直接放弃掉
详细步骤:
那么如何判断位数是否需要左移一位?
如果尾数是以1.1 0.0开头的都需要进行左移
什么时候需要右规
双符号位不是00 11
浮点数的乘法(不考)
存储体系
高速缓冲存储器–cache
cache的特点
cache的作用我们可以将经常需要在主存中访问的文件放到cache中,这样可以提高访问的速度
两个关键的词语:
如果在cache中找到了备份则说cache被命中了,如果没有找到就说cache没有命中
cache的内容
cache的读写操作
在往cpu中写进数据的时候如果在cache中能找不到相应的数据则直接将该数据写进内存中,因为cache中可能cpu根本不需要用到这些内容
如果在cpu中能找到相应的地址则有以下的两种操作
cache的命中率,效率
命中率:即从cache中可以找到所需内容的概率,通过访问cache命中的次数除于总的访问次数就可以
得到需要命中率
平均访问时间:即求访问时间的均值,可以使用cache访问时间概率+主存访问时间概率之和
效率使用:平均访问时间除于总的运行时间即可求解
主存储器
用自己的化讲述一下上图的工作原理:首先上面的十个黑色的箭头指的是cpu与主存之间的通信的数据,
三个黄色的大箭头指的是数据通道,分别为数据通道,控制信号通道,地址信息通道
两着之间的交流大概为首先发出首先检测主存是否繁忙,如果不忙这发出读写信号,之后发出地址,最后往指定地址传送数据
主存储器按功能分类
随机读写存储器RAM
首先解释一下上图:首是RAM的大小,它的大小是由寄存单元的个数乘与每个寄存单元的位数,然后寄存单元的个数可以由随机存储器地址寄存器的位数求得,每个单元的大小可以由数据寄存存器的大小求得
其中数据寄存器与随机读写存储器是可以双向操作的
静态存储器(SRAM)
线性译码方式
双向译码方式
首先双向译码器的存储矩阵由很多块,而双向译码器的只有一块,并且存储单元的位数和块数相等
例题:
首先这个存储器由多少个单元:因为由10根地址线所以有2的10次方个单元,其次因为有4个数据线所以一个单元就是4位,所以这个存储器的大小就是1K*4,也就是是0.5K个字节
SRAM的特点
动态存储器(DRAM)
DRAM的刷新方式
集中式刷新
所有的单元集中到一个时间段进行刷新
异步式刷新
分散式刷新方式
SRAN和DRAM的对比
只读存储器ROM
主存储器与cpu的连接
存储器容量拓展的三种方法
位拓展
位拓展的原理就是使用多片存储器将他们连接起来从而达到一个存储单元存储更多比特的信息
例如使用两片1Kx4的SRAM芯片就可以构成1Kx8SRAM的芯片
字拓展
对于两片的字拓展使用一个与非门即可实现,但是如果想要使用多倍的拓展,就需要使用与非门了
字位拓展
高速存储器
双端口存储器
多体交叉存储器
首先要知道普通的存储器采用的是顺序编制
而交叉存储器采用的是交叉编址
存取周期=存储体存储数据的时间+总线的传输数据时间
例题:
提高存储速度的途径
高速缓冲存储器
cahce原理以及命中率(上面已经记录了这里就不重复)
cache地址映射
直接映射方式
解释一下上面的主存地址:首先是7位的主存标记:因为有127组,所以需要7位才能表示所有的组,其次是每一组内的第几行:因为一共有16行所以需要4位,最后就是块内地址:因为一共有521个字节,所以要表示块内地址至少需要9位
cpu如何匹配cache中的地址块?
例题:
第5中的组号实际上就是求有多少组?256/2=128 即需要7位才能表示出所有的组号,至于为什么能使用18去减掉我也不清楚
全相联映像方式
组相联映射
cache地址映射,替换,写策略及分层设计
cache的多层设计
虚拟存储器
第六章 指令系统
指令概述
寻址方式
上面的第一条指令的作用就是将1234H中的内容放到AX中去
上面的第2条指令的作用就是将1234H放到AX中去
第三条相当于2次寻址
立即数寻址
直接寻址
间接寻址
寄存器寻址
变址寻址
基址寻址