1、流水线:指令流水线,运算流水线
流水线的运行时间=各阶段运行时间和+(N条指令-1)*最长阶段的时间
流水线的吞吐率TP=指令条数/流水线的运行时间
流水线的加速比S=不使用流水线/使用流水线所用时间之比。
流水线的效率指的是流水线的设备利用率。=n个任务所占用的时空区/k个流水段总的时空区或E=TP*t
2、高速缓冲存储器
调各CPU与内存存取速度之间巨大差异。
命中率:平均存取周期=命中率*cache存取周期+(1-命中率)*主存存取周期
存储过程:
写通:写cache时同时写到主存
写回:CPU修改cache后,并不立刻写到主存
标记法:cache每一个数据设置一个有效位,与主存中数据比较,当与主存相同时就置位
地址映像:
直接映像:cache分页对应主存也分页,并且要分组,cache里的页与主存里的组对应。
全相联映像:记录格式是主存页号+cache页号对应。
组相联映像:主存的区号+主存页号+cache页号
3、内存编址和存储相关的计算问题
编址:其实是根据总线数来进行编址。
磁盘容量的计算:
磁道数=(外半径-内半径)*道密度*记录面数
注:硬盘的内圈与外圈记录数据量是一样的。0磁道在最外圈。
非格式化容量=位密度*II*最内圈直径*总磁道数
格式化容量=每道扇区数*扇区容量*总磁道数
平均传输速率=每道扇区数*扇区容量*盘片转数
存取时间=寻道时间+等待时间
4、数制、校验码、并行计算等问题:
进制的表示与转换:
按权展开法可以作为N进制的数转成十进制的数的通用方法。
如:10010.01=1X2^4+1X2^1+2^-2
十进制转成其他进制的数--短除法
整数部分,对X短除取余倒序
小数部分,与X相乘取整正序
定点整数的原码:
定点是相对于浮点小数而言的。固定小数点在整个数之后就是定点整数。
定点小数的原码:
一样,正数 与原码一样,负数的原码是符号位是1,其他一样。
反码:正数与原码、补码,一样
负数的反码,符号位不变,绝对值部分按位取反。
补码:
负数的补码,是在符号位不变,反码的基础上加1
移码:
只需要把补码的符号位取反就可以得到。注:移码只用于表示浮点数的阶码,所以只用于整数。
原码、补码、反码表示数的范围:原码和反码的范围都是-127 ~127
而 补码的
范围是 -128至127.
根据补码的几条规定即可推出上述结论:
1 若二进制每位全为0,则表示数0
2 若最高位(即符号位)为0,表示正数
3 若最高位为1, 表示是负数,而该负数的绝对值是多少呢?将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。
例如,二进制的 10000000 的最高位为1, 所以它表示的是负数。是负的多少呢?我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128, 故计算机中的10000000表示的是-128
循环检验码:CRC校验
模二除法:指在除法运算过程中不计进制的除法,类似于异或运算。0-1=1,但不管借位。
过程为:指定一个二进制的多项式,把原始报文+二进制多项式位数减1后,与二进制多项式进行模二除法,得余数。
发送时,用原始报文+余数发送。校验时:用接收到的 原始报文+余数 /二进制多项式,若整除,则认为是正确的。不整除则认为是错误的。
海明码:
它实际上是一种多重奇偶校验码。
一个可以有多个校验位,具有检测并纠正一位错误代码的纠错码,所以也仅用于信道特性比较好的环境中,如以太局域网。它的检错、纠错基本思想如下:
(1)将有效信息按某种规律分成若干组,每组安排一个校验位通过异或运算进行校验,得出具体的校验码
(2)在接收端同样通过异或运算看各组校验结果是否正确,并观察出错的校校组,或者多个出错的校验组的共同校验位,得出具体的出错比特位
(3)对错误位取反来将其纠正
编码步骤:
海明码计算要按以下步骤来进行:计算校验码位数→确定校验码位置→确定校验码
1. 计算校验码位数
2^k-1>=k+n,其中k为校验位,n为数据位。求出最小的k即为校验位的位数。
2. 确定校验码位置
海明码的校验码的位置必须是在2n次方位置(n从0 开始,分别代表从左边数起分别是第1、2、4、8、16……),信息码也就是在非2n次方位置
3. 确定校验码
校验位置选择原则:第i位校验码从当前校验码位开始,每次连续校验i位后再跳过i位,然后再连续校验i位,再跳过i位,以此类推。确定每个校验码所校验的比特位:
P1校验码位校验的码字位为:第1位(也就是P1本身)、第3位、第5位、第7位、第9位、第11位、第13位、第15位,……。
P2校验码位校验的码字位为:第2位(也就是P2本身)、第3位,第6位、第7位,第10位、第11位,第14位、第15位,……。
P3校验码位校验的码字位为:第4位(也就是P4本身)、第5位、第6位、第7位,第12位、第13位、第14位、第15位,第20位、第21位、第22位、第23位,……。
Pn校验码位校验的码字位为:第2n-1位(也就是Pn本身)、第2n-1+1位、第2n-1+2位、第2n-1+3位、……、第2n-1位,第3×2n-1位、第3×2n-1+1、……、第2×2n-1位,第5×2n-1位、第5×2n-1+1位、第3×2n-1位,……、第7×2n-1位、第7×2n-1+1位、……、第4×2n-1位,……,第(2m-1) 2n-1位、……第m×2n-1位
最后每组通过异或逻辑运算(与偶校验原理一样),使每组的运算结果为0,即可得出第i位校验码的值
4. 实现校验和纠错
把以上这些校验码所校验的位分成对应的组,则在接收端的对各校验位再进行逻辑“异或运算”,如果采用的是偶校验,正常情况下均为0。
如果最终发现只是一个校验组中的校验结果不符,则直接可以知道是对应校验组中的校验码在传输过程中出现了差错,因为所有校验码所在的位是只由对应的校验码进行校验;
如果发现多组校验结果不正确,则查看这些组中公共校验的数据位(只有数据位才可能被几个校验码进行校验),以最终确定是哪个数据位出了差错(海明码只能检查一位出错);
最后,对所找到的出错数据位取反即可实现纠错。
三、海明码计算示例
原信息码:10011101
(1)确定校验码位数
原始信息码一共8,根据前面的表可得知校验码位数为4
(2)确定校验码位置
??1?001?1101
(2)计算机各位校验码
Pn校验码位校验的码字位为:第2n-1位(也就是Pn本身)、第2n-1+1位、第2n-1+2位、第2n-1+3位、……、第2n-1位,第3×2n-1位、第3×2n-1+1、……、第2×2n-1位,第5×2n-1位、第5×2n-1+1位、第3×2n-1位,……、第7×2n-1位、第7×2n-1+1位、……、第4×2n-1位,……,第(2m-1) 2n-1位、……第m×2n-1位
P1(n=1):1、3、5、7、9、11 #----检验的bit位,下同
1 1 0 1 1 0 #----对应位的值,下同
P2(n=2):2、3、6、7、10、11
1 1 0 0 1 1
P3(n=3):4、5、6、7、12
0 0 0 1 1
P4(n=4):8、9、10、11、12
1 1 1 0 1
最终得出插入校验码后的信息码为:111000111101
计算机分类:
单指令流单数据流SISD
单指令流多数据流SIMD,控制部分一个,处理和存储是多个
多指令流多数据流MIMD,控制部分多个,处理和存储是多个