三种校验方式:海明码,循环冗余码CRC,奇偶校验
海明码
将1,2,3,4,5,6……反序排序,将原码数据放到不是2n的位置上,1,2,4,8则为校验位。计算3=20+21,5=22+20,……
计算校验位:第一个校验位1=20,将有20的所有的位置都选出来,进行异或(相同为0,不同为1)操作,得到第一位的结果
之后循环……
循环冗余码CRC
由公式得到多项式代码,和它的长度x,将原来的信息码添加x个0,与多项式代码进行模2除法,得到的余数为冗余位,最后将原信息码后边补充冗余位即得到CRC码
奇偶校验
二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。
原码,反码,补码,移码
原码,反码,补码:
正数(包括小数)都保持不变
负数:反码按位取反,补码是反码+1(小数从最低位+1)
移码:
正数和负数都是补码符号位取反
内存编址
在计算机系统中,存储器中每个单元的位数是相同且固定的,称为存储器编址单元。不同的计算机,存储器的编址方式是不同的,主要有字编址和字节编址。内存一般以字节(8位)或字(字的长度可大可小,16位、32位等)为单位。
存储地址从AC000H到C7FFFH,则共有 C7FFFH –AC000H + 1 = 1C000H = 112K,如果内存地址按字(16位)编址,则共有112k * 16 位,假设该内存由28片存储器芯片构成,已知每片有16K个存储单元,则芯片的每个存储单元存储 (112K * 16) / (28 * 16K) = 4位。
Cache高速缓存
需要掌握的概念:命中率及相关的计算,淘汰算法(随机,先进先出,最近最少使用算法LRU)
Cache的读写过程:写直达,写回,标记法
地址映像方式:直接映像,全相联映像,组相连映像
直接映像:
是一种一对多的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去,cache的行号i和主存的块号有i=j mod m的关系(m为cache总行数),主存第0、m、2m……块只能映射到cache第0行,存储发生冲突时将先存入的行换掉,频繁的置换使cache效率下降,直接映射适合于需要大容量cache的场合,多行可以减少冲突
全相联映像:
将主存中一个块的地址(块号)与块的内容一起存放到cache的行中,块的地址存在于cache行的标记部分,这种比较器电路难于设计和实现,只适合于小容量cache采用
组相连映像:
将cache分组,每组只能放指定的i=j mod m行(m为组数),CPU访问cache,首先用块号低x位找到cache的相应组,然后将块号的高s-x位于该组v行中的所有标记同时进行比较,哪行相符即命中,每行行数一般较小,典型值2、4、8、16,常称为v路组相连cache
计算机的基本组成:运算器,控制器,存储器,输入设备,输出设备
CPU的组成:
运算器:
算术逻辑单元ALU:对数据的算术和逻辑运算
累加寄存器AC:为ALU提供一个工作区
数据(缓冲)寄存器DR:暂存内存中的一条指令和一个数据字
状态条件寄存器PSW:保存由算术指令和逻辑指令运行的结果
控制器:
指令寄存器IR:指令从内存---缓存寄存器----IR
程序计数器PC(指令计数器):PC中保存的总是要执行的下一条指令的地址
地址寄存器AR:保存当前CPU访问内存单元的地址
指令译码器ID:对指令中的操作码和字段进行分析和解释
寄存器组:
专用寄存器:运算器和控制器中的寄存器都是专用的(上边蓝色字体)
通用寄存器:程序员可以使用
内部总线:
I2C总线:微电子通信控制广泛使用
SPI总线:串行外围设备接口,是一种三线同步总线
SCI总线:串行通信接口,是一种异步通信接口