计算机组成原理和系统结构

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。

    如果最终发现只是一个校验组中的校验结果不符,则直接可以知道是对应校验组中的校验码在传输过程中出现了差错,因为所有校验码所在的位是只由对应的校验码进行校验;
如果发现多组校验结果不正确,则查看这些组中公共校验的数据位(只有数据位才可能被几个校验码进行校验),以最终确定是哪个数据位出了差错(海明码只能检查一位出错);
最后,对所找到的出错数据位取反即可实现纠错。

计算机组成原理和系统结构_第1张图片

三、海明码计算示例

原信息码: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,控制部分多个,处理和存储是多个

你可能感兴趣的:(软考)