计算机组成原理-海明码
- 格式:docx
- 大小:16.52 KB
- 文档页数:1
第1章计算机系统概论5. 冯诺依曼计算机的特点是什么解:冯诺依曼计算机的特点是:P8(1)计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;(2)指令和数据以同同等地位存放于存储器内,并可以按地址访问;(3)指令和数据均用二进制表示;(4)指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;(5)指令在存储器中顺序存放,通常自动顺序取出执行;(6)机器以运算器为中心(原始冯诺依曼机)。
7. 解释下列概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
解:课本P9-10(1)主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。
(2)CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了Cache)。
(3)主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
(4)存储单元:可存放一个机器字并具有特定存储地址的存储单位。
(5)存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
(6)存储字:一个存储单元所存二进制代码的逻辑单位。
(7)存储字长:一个存储单元所存储的二进制代码的总位数。
(8)存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。
(9)机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。
(10)指令字长:机器指令中二进制代码的总位数。
8. 解释下列英文缩写的中文含义:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS解:全面的回答应分英文全称、中文名、功能三部分。
第1章计算机组成原理考试大纲第一章计算机体系结构和计算机组成冯。
诺伊曼体系的特点Amdahl定律第二章数制和数制转换各种码制的表示和转换浮点数的表示补码加减法布思算法浮点数的加减法海明码的计算练习:5,6,7,8,101、已知X=19,Y=35,用布思算法计算X×Y和X×(-Y)。
2、使用IEEE 754标准格式表示下列浮点数:-5,-1.5,1/16,-6,384,-1/32。
3、已知X=-0.1000101×2-111,Y=0.0001010×2-100。
试计算X+Y,X-Y,X×Y和X/Y。
4、某浮点数字长12位,其中阶符1位,阶码数值3位,尾符1位,尾数数值7位,阶码和尾数均用补码表示。
它所能表示的最大正数是多少?最小规格化正数是多少?绝对值最大的负数是多少?5、求有效信息位为01101110的海明码校验码。
第三章练习:5解释下列概念:PROM,EPROM,E2PROM,Flash memory,FPGA,SRAM和DRAM。
第四章总线的分类总线操作周期的四个传输阶段总线仲裁的概念及其分类异步通信方式的种类总线的最大传输率第五章存储器的分类存储容量的扩展RAID的概念、特点以及分类Cache的地址映射Cache的写策略Cache的性能分析3C练习:4,5,71.一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?用下列存储芯片时,各需要多少片?1K×4位,2K×8位,4K×4位,16K×l位,4K×8位,8K×8位2.现有1024×l的存储芯片,若用它组成容量为16K×8的存储器。
(1)实现该存储器所需的芯片数量?(2)若将这些芯片分装在若干块板上,每块板的容量为4K×8,该存储器所需的地址线总数是多少?几位用于选片?几位用作片内地址?(3)画出各芯片的连接逻辑图。
1.1计算机是一种能自动地、高速地对各种数字化信息进行运算处理的电子设备。
1.2冯诺依曼计算机体系结构的基本思想是存储程序,也就是将用指令序列描述的解题程序与原始数据一起存储到计算机中。
计算机只要一启动,就能自动地取出一条条指令并执行之,直至程序执行完毕,得到计算结果为止。
按此思想设计的计算机硬件系统包含:运算器、控制器、存储器、输入设备和输出设备。
各部分的作用见教材:P10—P121.3计算机的发展经历了四代。
第一代:见教材P1第二代:见教材P2第三代:见教材P2第四代:见教材P21.4系统软件定义见教材:P12—13,应用软件定义见教材:P121.5见教材:P14—151.6见教材:P111.7见教材:P6—81.8硬件定义见教材:P9软件定义见教材:P12固件定义见教材:P131.91)听觉、文字、图像、音频、视频2)图像、声音、压缩、解压、DSP1.10处理程度按从易到难是:文本→图形→图像→音频→视频第二章2.227/64=00011011/01000000=0.0110110=0.11011×2-1规格化浮点表示为:[27/64]原=101,011011000[27/64]反=110,011011000[27/64]补=111,011011000同理:--27/64=--0.11011×2-1规格化浮点表示为:[27/64]原=101,111011000[27/64]反=110,100100111[27/64]补=111,1001010002.3 模为:29=10000000002.4 不对,8421码是十进制的编码2.5浮点数的正负看尾数的符号位是1还是0浮点数能表示的数值范围取决于阶码的大小。
浮点数数值的精确度取决于尾数的长度。
2.61)不一定有N1>N2 2)正确2.7 最大的正数:0111 01111111 十进制数:(1-2-7)×27最小的正数:1001 00000001 十进制数:2-7×2-7最大的负数:1001 11111111 十进制数:--2-7×2-7最小的负数:0111 10000001 十进制数:--(1-2-7)×272.81)[x]补=00.1101 [y]补=11.0010[x+y]补=[x]补+[y]补=11.1111无溢出x+y= -0.0001[x]补=00.1101 [--y]补=00.1110[x-y]补=[x]补+[--y]补=01.1011 正向溢出2)[x]补=11.0101 [y]补=00.1111[x+y]补=[x]补+[y]补=00.0100 无溢出x+y= 0.0100[x]补=11.0101 [--y]补=11.0001[x-y]补=[x]补+[--y]补=10.0110 负向溢出3) [x]补=11.0001 [y]补=11.0100[x+y]补=[x]补+[y]补=10.0101 负向溢出[x]补=11.0001 [--y]补=00.1100[x-y]补=[x]补+[--y]补=11.1101 无溢出X-y=-0.00112.91)原码一位乘法|x|=00.1111 |y|=0.1110部分积乘数y n00.0000 0.1110+00.000000.0000→00.00000 0.111+00.111100.11110→00.011110 0.11+00.111101.011010→00.1011010 0.1+00.111101.1010010→00.11010010P f=x f⊕y f=1 |p|=|x|×|y|=0.11010010所以[x×y]原=1.11010010补码一位乘法[x]补=11.0001 [y]补=0.1110 [--x]补=11.0001 部分积y n y n+100.0000 0.11100→00.00000 0.1110+00.111100.11110→00.011110 0.111→00.0011110 0.11→00.00011110 0.1+11.000111.00101110[x×y]补=11.001011102)原码一位乘法|x|=00.110 |y|=0.010部分积乘数y n00.000 0.010+00.00000.000→00.0000 0.01+00.11000.1100→00.01100 0.0+00.00000.01100 0→00.001100P f=x f⊕y f=0 |p|=|x|×|y|=0.001100所以[x×y]原=0.001100补码一位乘法[x]补=11.010 [y]补=1.110 [--x]补=00.110部分积y n y n+100.000 1.1100→00.0000 1.110+00.11000.1100→00.01100 1.11→00.001100 1.1所以[x×y]补=0.0011002.101)原码两位乘法|x|=000.1011 |y|=00.0001 2|x|=001.0110部分积乘数 c000.0000 00.00010+000.1011000.1011→000.001011 0.000→000.00001011 00.0P f=x f⊕y f=1 |p|=|x|×|y|=0.00001011所以[x×y]原=1.00001011补码两位乘法[x]补=000.1011 [y]补=11.1111 [--x]补=111.0101 部分积乘数y n+1000.0000 11.11110+111.0101111.0101→111.110101 11.111→111.11110101 11.1所以[x×y]补=111.11110101 x×y=--0.000010112)原码两位乘法|x|=000.101 |y|=0.111 2|x|=001.010 [--|x| ]补=111.011 部分积乘数 c000.000 0.1110+111.011111.011→111.11011 0.11+001.010001.00011→000.100011P f=x⊕y f=0 |p|=|x|×|y|=0.100011所以[x×y]原=0.100011补码两位乘法[x]补=111.011 [y]补=1.001 [--x]补=000.101 2[--x]补=001.010 部分积乘数y n+1000.000 1.0010+111.011111.011→111.111011 1.00+001.010001.00011→000.100011所以[x×y]补=0.1000112.111) 原码不恢复余数法|x|=00.1010 |y|=00.1101 [--|y| ]补=11.0011部分积商数00.1010+11.00111101101 0←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←01.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]原=0.1100 余数[r]原=0.0100×2—4补码不恢复余数法[x]补=00.1010 [y]补=00.1101 [--y]补=11.0011 部分积商数00.1010+11.001111.1101 0←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←10.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]补=0.1100 余数[r]补=0.0100×2—42)原码不恢复余数法|x|=00.101 |y|=00.110 [--|y| ]补=11.010 部分积商数00.101+11.01011.111 0←11.110+00.11000.100 0.1←01.000+11.01000.010 0.11←00.100+11.01011.110 0.110+00.11000. 100所以[x/y]原=1.110 余数[r]原=1.100×2—3补码不恢复余数法[x]补=11.011 [y]补=00.110 [--y]补=11.010 部分积商数11.011+00.11000.001 1←00.010+11.01011.100 1.0←11.000+00.11011.110 1.00←11.100+00.11000.010 1.001+11.01011.100所以[x/y]补=1.001+2—3=1.010 余数[r]补=1.100×2—32.121)[x]补=21101×00.100100 [y]补=21110×11.100110小阶向大阶看齐:[x]补=21110×00.010010求和:[x+y]补=21110×(00.010010+11.100110)=21110×11.111000 [x-y]补=21110×(00.010010+00.011010)=21110×00.101100 规格化:[x+y]补=21011×11.000000 浮点表示:1011,11.000000规格化:[x-y]补=21110×00.101100 浮点表示:1110,0.101100 2)[x]补=20101×11.011110 [y]补=20100×00.010110小阶向大阶看齐:[y]补=20101×00.001011求和:[x+y]补=20101×(11.011110+00.001011)=20101×11.101001 [x-y]补=20101×(11.011110+11.110101)=20101×00.010011 规格化:[x+y]补=21010×11.010010 浮点表示:1010,11. 010010规格化:[x-y]补=21010×00.100110 浮点表示:1010,00.1001102.13见教材:P702.141)1.0001011×262)0.110111*×2-62.151)串行进位方式C1=G1+P1C0G1=A1B1,P1=A1⊕B1C2=G2+P2C1G2=A2B2,P2=A2⊕B2C3=G3+P3C2G3=A3B3,P3=A3⊕B3C4=G4+P4C3G4=A4B4,P4=A4⊕B42)并行进位方式C1=G1+P1C0C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02.16参考教材P62 32位两重进位方式的ALU和32位三重进位方式的ALU 2.17“1”第三章3.1见教材:P79 3.2 见教材:P833.3与SRAM 相比,DRAM 在电路组成上有以下不同之处:1) 地址线的引脚一般只有一半,因此,增加了两根控制线RAS 、CAS ,分别控制接受行地址和列地址。
1. 1计算机是一种能自动地、高速地对各种数字化信息进行运算处理的电子设备。
1. 2冯诺依曼计算机体系结构的基本思想是存储程序,也就是将用指令序列描述的解题程序与原始数据一起存储到计算机中。
计算机只要一启动,就能自动地取出一条条指令并执行之,直至程序执行完毕,得到计算结果为止。
按此思想设计的计算机硬件系统包含:运算器、控制器、存储器、输入设备和输出设备。
各部分的作用见教材:P10—P121. 3计算机的发展经历了四代。
第一代:见教材P1第二代:见教材P2第三代:见教材P2第四代:见教材P21.4系统软件定义见教材:P12—13,应用软件定义见教材:P121.5见教材:P14—151.6见教材:P111.7见教材:P6—81.8硬件定义见教材:P9软件定义见教材:P12固件定义见教材:P131.91)听觉、文字、图像、音频、视频2)图像、声音、压缩、解压、DSP1.10处理程度按从易到难是:文本→图形→图像→音频→视频第二章2.1各数的原码、反码、补码和移码见下表:2.227/64=00011011/01000000=0.0110110=0.11011×2-1规格化浮点表示为:[27/64]原=101,011011000[27/64]反=110,011011000[27/64]补=111,011011000同理:--27/64=--0.11011×2-1规格化浮点表示为:[27/64]原=101,111011000[27/64]反=110,100100111[27/64]补=111,1001010002.3 模为:29=10000000002.4 不对,8421码是十进制的编码2.5浮点数的正负看尾数的符号位是1还是0浮点数能表示的数值范围取决于阶码的大小。
浮点数数值的精确度取决于尾数的长度。
2.61)不一定有N1>N2 2)正确2.7 最大的正数:0111 01111111 十进制数:(1-2-7)×27最小的正数:1001 00000001 十进制数:2-7×2-7最大的负数:1001 11111111 十进制数:--2-7×2-7最小的负数:0111 10000001 十进制数:--(1-2-7)×272.81)[x]补=00.1101 [y]补=11.0010[x+y]补=[x]补+[y]补=11.1111无溢出x+y= -0.0001[x]补=00.1101 [--y]补=00.1110[x-y]补=[x]补+[--y]补=01.1011 正向溢出2)[x]补=11.0101 [y]补=00.1111[x+y]补=[x]补+[y]补=00.0100 无溢出x+y= 0.0100[x]补=11.0101 [--y]补=11.0001[x-y]补=[x]补+[--y]补=10.0110 负向溢出3) [x]补=11.0001 [y]补=11.0100[x+y]补=[x]补+[y]补=10.0101 负向溢出[x]补=11.0001 [--y]补=00.1100[x-y]补=[x]补+[--y]补=11.1101 无溢出X-y=-0.00112.91)原码一位乘法 |x|=00.1111 |y|=0.1110部分积乘数 y n00.0000 0.1110+00.000000.0000→00.00000 0.111+00.111100.11110→00.011110 0.11+00.111101.011010→00.1011010 0.1+00.111101.1010010→00.11010010P f=x f⊕y f=1 |p|=|x|×|y|=0.11010010所以[x×y]原=1.11010010补码一位乘法 [x]补=11.0001 [y]补=0.1110 [--x]补=11.0001 部分积 y n y n+100.0000 0.11100→00.00000 0.1110+00.111100.11110→00.011110 0.111→00.0011110 0.11→00.00011110 0.1+11.000111.00101110[x×y]补=11.001011102)原码一位乘法 |x|=00.110 |y|=0.010部分积乘数 y n00.000 0.010+00.00000.000→00.0000 0.01+00.11000.1100→00.01100 0.0+00.00000.01100 0→00.001100P f=x f⊕y f=0 |p|=|x|×|y|=0.001100所以[x×y]原=0.001100补码一位乘法 [x]补=11.010 [y]补=1.110 [--x]补=00.110部分积 y n y n+100.000 1.1100→00.0000 1.110+00.11000.1100→00.01100 1.11→00.001100 1.1所以[x×y]补=0.0011002.101)原码两位乘法 |x|=000.1011 |y|=00.0001 2|x|=001.0110部分积乘数 c000.0000 00.00010+000.1011000.1011→000.001011 0.000→000.00001011 00.0P f=x f⊕y f=1 |p|=|x|×|y|=0.00001011所以[x×y]原=1.00001011补码两位乘法 [x]补=000.1011 [y]补=11.1111 [--x]补=111.0101部分积乘数 y n+1000.0000 11.11110+111.0101111.0101→111.110101 11.111→111.11110101 11.1所以[x×y]补=111.11110101 x×y=--0.000010112)原码两位乘法 |x|=000.101 |y|=0.111 2|x|=001.010 [--|x| ]补=111.011 部分积乘数 c000.000 0.1110+111.011111.011→111.11011 0.11+001.010001.00011→000.100011P f=x⊕y f=0 |p|=|x|×|y|=0.100011所以[x×y]原=0.100011补码两位乘法 [x]补=111.011 [y]补=1.001 [--x]补=000.101 2[--x]补=001.010 部分积乘数 y n+1000.000 1.0010+111.011111.011→111.111011 1.00+001.010001.00011→000.100011所以[x×y]补=0.1000112.111) 原码不恢复余数法 |x|=00.1010 |y|=00.1101 [--|y| ]补=11.0011部分积商数00.1010+11.00111101101 0←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←01.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]原=0.1100 余数[r]原=0.0100×2—4补码不恢复余数法 [x]补=00.1010 [y]补=00.1101 [--y]补=11.0011 部分积商数00.1010+11.001111.1101 0←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←10.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]补=0.1100 余数[r]补=0.0100×2—42)原码不恢复余数法 |x|=00.101 |y|=00.110 [--|y| ]补=11.010 部分积商数00.101+11.01011.111 0←11.110+00.11000.100 0.1←01.000+11.01000.010 0.11←00.100+11.01011.110 0.110+00.11000. 100所以[x/y]原=1.110 余数[r]原=1.100×2—3补码不恢复余数法 [x]补=11.011 [y]补=00.110 [--y]补=11.010 部分积商数11.011+00.11000.001 1←00.010+11.01011.100 1.0←11.000+00.11011.110 1.00←11.100+00.11000.010 1.001+11.01011.100所以[x/y]补=1.001+2—3=1.010 余数[r]补=1.100×2—32.121)[x]补=21101×00.100100 [y]补=21110×11.100110小阶向大阶看齐: [x]补=21110×00.010010求和:[x+y]补=21110×(00.010010+11.100110)=21110×11.111000 [x-y]补=21110×(00.010010+00.011010)=21110×00.101100 规格化:[x+y]补=21011×11.000000 浮点表示:1011,11.000000规格化:[x-y]补=21110×00.101100 浮点表示:1110,0.101100 2)[x]补=20101×11.011110 [y]补=20100×00.010110小阶向大阶看齐:[y]补=20101×00.001011求和:[x+y]补=20101×(11.011110+00.001011)=20101×11.101001 [x-y]补=20101×(11.011110+11.110101)=20101×00.010011 规格化:[x+y]补=21010×11.010010 浮点表示:1010,11. 010010规格化:[x-y]补=21010×00.100110 浮点表示:1010,00.1001102.13见教材:P702.141)1.0001011×262)0.110111*×2-62.151)串行进位方式C1=G1+P1C0 G1=A1B1, P1=A1⊕B1C2=G2+P2C1 G2=A2B2, P2=A2⊕B2C3=G3+P3C2 G3=A3B3, P3=A3⊕B3C4=G4+P4C3 G4=A4B4, P4=A4⊕B42)并行进位方式C1=G1+P1C0C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02.16参考教材P62 32位两重进位方式的ALU和32位三重进位方式的ALU 2.17第三章3.1见教材:P793.2 见教材:P833.3与SRAM相比,DRAM在电路组成上有以下不同之处:1)地址线的引脚一般只有一半,因此,增加了两根控制线RAS、CAS,分别控制接受行地址和列地址。
计算机组成原理习题及答案简答题1.什么是存储程序原理?按此原理,计算机应具有哪几大功能?1.请问:存储程序原理就是用户事先编号的程序先取走主存中,然后cpu在从主存中抽出指令、运转指令。
按此原理,计算机应当具备输入输出设备,即为能够把程序和数据通过输入输出设备送进主存中;还应当具备存储设备,即为内存能够存储程序和数据;最后应当具备控制器和运算器,即cpu能够从主存中抽出程序和数据,并按顺序一条一条抽出、继续执行。
2.存储器与cpu相连接时,应当考量哪些问题?2.答:应考虑(1)合理选择存储芯片,要考虑芯片的类型和数量尽量使连线简单方便;(2)地址线的连接,将cpu地址线的低位与存储芯片的地址线相连,以选择芯片中的某一单元,儿高位则在扩充存储芯片时用,用来选择存储芯片;(3)数据线的连接,cpu的数据线与存储芯片的数据线不一定相等,相等时可直接连接,不相等时要对存储芯片进行扩位,使其相等连接;(4)读/写控制线的连接,高电平为读,低电平为写;(5)片选线的连接,cpu的高位地址来产生片选信号。
3.什么叫做地址重合区,什么情况下可以产生地址重合区?3.答:存储系统中的某些存储单元有多个地址,这种现象叫地址重叠区。
原因是,存储系统是由多个芯片组成的,在产生片选信号时,如果只用部分高位地址来产生片选信号,则有一部分高位地址线没用,这样这部分地址线的值就不确定,可以为0也可以为1,所以存储芯片的地址空间也不确定了,出现了重复值,产生了地址重叠区。
4.什么叫“对准字”和“未对准字”,cpu对二者的访问有何不同?4.请问:cpu出访的数据类型存有字节,半字,字和双字。
若字长为32十一位,则字节8十一位,半字16十一位,字32十一位,双字64十一位。
对准字就是存储这四种数据类型时,字节的初始地址任一,半字的初始地址为2的倍数,字的初始地址为4的倍数,双字的初始地址为8的倍数。
未对准字就是四种数据类型在存储时都任一,无论从哪个存储单元已经开始都可以。
主机:CPU、存储器和输入输出接口合起来构成计算机的主机。
CPU:中央处理器,是计算机的核心部件,由运算器和控制器构成。
运算器:计算机中完成运算功能的部件,则ALU 和存放器构成。
外围设备:计算机的输入输出设备,包含输入设备、输出设备和外存储设备。
数据:编码形式的各种信息,在计算机中作为程序的操作对象。
指令:构成计算机软件的根本元素,表示成二进制数编码的操作命令。
透明:在计算机中,从某个角度看不到的特性称该特性是透明的。
位:计算机中的一个二进制的数据代码〔0 或者1〕,是数据的最小表示单位。
字:数据运算和存储单位,其位数取决于计算机。
字节:衡量数据量以及存储器容量的根本单位,1 字节等于8 位二进制信息。
字长:一个数据字包含的位数,普通为8 位、16 位、32 位和64 位等。
地址:给主存储器不同的存储位置指定的一个二进制编号。
存储器:计算机中存储程序和数据的部件,分为内存和外存两种。
存储器的访问:对存储器中数据的读操作和写操作。
总线:计算机中连接功能单元的公共路线,是一束信号线的集合。
硬件:由物理元器件构成的系统,计算机硬件是一个能够执行指令的设备。
软件:由程序构成的系统,分为系统软件和应用软件两种。
兼容:计算机部件的通用性。
操作系统:主要的系统软件,控制其他程序的运行,管理系统资源并且为用户提供操作界面。
汇编程序:将汇编言语程序翻译成机器言语程序的计算机软件。
汇编言语:采用文字方法〔助记符〕表示的程序设计言语,其中大局部指令和机器言语中的指令一一对应。
编译程序:将高级言语的程序转换成机器言语程序的计算机软件。
解释程序:解释执行高级言语程序的计算机软件,,解释并执行源程序的语句。
系统软件:计算机系统的一局部,进行命令解释、操作管理、系统维护、网络通信、软件开辟和输入输出管理的软件。
应用软件:完成应用功能的软件,特意为解决某个应用领域中的具体任务而编写。
指令流:在计算机的存储器与CPU 之间形成的不断传递的指令序列。
“计算机组成原理”中信息校验码的探讨【摘要】本文针对“计算机组成原理”中信息校验码的特点,结合多年从事“计算机组成原理”课程的教学经验,探讨了一种“计算机组成原理”结合实例,使用实例法讲解了信息校验码的难点问题。
【关键词】“计算机组成原理”;实例法;信息校验码0 引言“计算机组成原理”是计算机相关专业的一门核心专业基础课,主要讨论计算机基本的部件构成和组成方式,也包括基本的运算操作原理和单元设计思想、操作方式及其实现,“模拟电子技术”、“数字逻辑”是它的先导课程,它的后继课程如“操作系统”、”编译原理”、“汇编语言程序设计”等,它学好与否直接影响着后继课程的学习,“计算机组成原理”在这些课程之间起着承上启下的作用[1-4]。
学习过程中学生普遍感到“计算机组成原理”课程涉及的内容多、抽象、难度大、难学、难懂,“教师难教,学生怕学”的现象在各高校普遍存在,如何把握课程的主线和重点培养学生的学习兴趣、提高教学效果,是从事本课程教学的教师在不断探讨的问题[1];结合多年“计算机组成原理”的教学经验,对学生难理解的信息校验问题提出实例教学法。
1 信息校验问题信息校验问题95%的学生对奇偶校验是能正确理解,但是对海明码校验只有50%的学生能正确理解,如何让更多学生顺利理解海明校验码以及其他校验方法,是一直上课教师思考的问题。
结合遇到的一个问题,通过这个问题的解决,可以让同学们更好的理解海明校验码。
1.1 问题的提出问题如下,有1000瓶一模一样的药,其中至多有一瓶是毒药或者没有毒药,任何喝下毒药的生物都会在一星期之后死亡。
现在,有10只小白鼠和一星期的时间,如何检验出哪瓶瓶子里有毒药或者证明没有毒药?1.2 解决问题算法小白鼠喝了药后,有中毒和不中毒2种情况,一个星期后,有死亡和未死亡2种情况,符合二进制的特征。
在二进制中,10位二进制数可以表示的范围为0000000000至1111111111,转换为十进制为0~1023。
计算机组成原理--海明码的编码和校验⽅法(易懂)海明码(也叫汉明码)具有⼀位纠错能⼒。
本⽂以1010110这个⼆进制数为例解释海明码的编码和校验⽅法。
编码 确定校验码的位数x 设数据有n位,校验码有x位。
则校验码⼀共有2x种取值⽅式。
其中需要⼀种取值⽅式表⽰数据正确,剩下2x-1种取值⽅式表⽰有⼀位数据出错。
因为编码后的⼆进制串有n+x位,因此x应该满⾜2x-1 ≥ n+x 使不等式成⽴的x的最⼩值就是校验码的位数。
在本例中,n=7,解得x=4。
确定校验码的位置 校验码在⼆进制串中的位置为2的整数幂。
剩下的位置为数据。
如图所⽰。
位置1234567891011内容x1x21x3010x4110 求出校验位的值 以求x2的值为例。
为了直观,将表格中的位置⽤⼆进制表⽰。
位置00010010001101000101011001111000100110101011内容x1x21x3010x4110 为了求出x2,要使所有位置的第⼆位是1的数据(即形如**1*的位置的数据)的异或值为0。
即x2^1^1^0^1^0 = 0。
因此x2 = 1。
同理可得x1 = 0, x3 = 1, x4 = 0。
位置00010010001101000101011001111000100110101011内容01110100110 因此1010110的海明码为01110100110。
校验 假设位置为1011的数据由0变成了1,校验过程为: 将所有位置形如***1, **1*, *1**, 1***的数据分别异或。
***1: 0^1^0^0^1^1 = 1 **1*: 1^1^1^0^1^1 = 1 *1**: 1^0^1^0 = 0 1***: 0^1^1^1 = 1 以上四组中,如果⼀组异或值为1,说明该组中有数据出错了。
***1 **1* 1***的异或都为1,说明出错数据的位置为1011。
海明码简单分析确定校验位个数海明码的码组长度需要符合:2^r – 1 (r代表校验位个数)为什么是这个公式呢?因为:只有这样才能保证校验位⾜够覆盖整个需要校验的码组。
欢迎共阅第一章名词解释:1. 中央处理器:主要由运算器和控制器组成。
控制部件,运算部件,存储部件相互协调,共同完成对指令的执行。
2. ALU :对数据进行算术和逻辑运算处理的部件。
3. 数据通路:由操作元件和存储元件通过总线或分散方式连接而成的进行数据存储,处理和传送的路径。
3.第二章名词解释:1. 定点数:计算机中小数点固定在最左(或右)边的数2.汉字输入码:汉字用相应按键的组合进行编码表示3.汉字内码:计算机内部进行汉字存储,查找,传输和处理而采用的存储方式,两个字节表示一个内码4.大端方式:数据字的最低有效字节存放在大地址单元中5.边界对齐:要求数据的地址是相应的边界地址。
6.海明码:将数据按照某种规律分成若干组,对每组进行相应的奇偶检测。
简答题:为什么浮点数要采用规格化来表示?尽量多的表示有效位数,提高浮点数运算的精度。
第三章即数、基址寻址、变址寻址等等,找到数据后送入cpu,根据操作吗确定要进行什么样的操作4.操作数在寄存器中的寻址方式:寄存器寻址5.操作数在存储器中的寻址方式:直接,间接,寄存器间接,偏移,变址,相对,基址,堆栈寻址6.变址寻址方式,基址寻址方式各自的作用和区别?作用:变:对数组元素的访问:基:程序重定位,扩展指令的寻址空间(短地址访问大空间)区别:1)具体应用场合不同,前者面向用户,后者面向系统2)使用方式不同,前者指令中的形式地址是基准地址,后者指令中的形式地址为偏移量。
7.为何分支指令的转移目标地址通常用相对寻址方式?不用指明基准地址,节省空间大小;访问空间有限,避免跨度太大。
8.转移指令和转子调用指令有什么区别?转移指令有无条件和条件转移指令,用于改变程序执行的顺序,转移后不再返回来执行,所以无需保存返回地址。
转子指令是一种子程序调用指令,执行技术时,必须返回到转子指令后面的指令执行,需保存返回地址。
第五章名词解释:段间接编码法,把能同时执行的微命令尽可能多的安排在一条微指令中,优点:程序短,并行性高,适合于高速度的应用场合。
1、浮点数:尾数*2阶码步骤:①把十进制转化成二进制,写成如上形式②把尾数和阶码求补码(阶码还可以求移码)③写成浮点数的表示格式:⑴阶码+尾数(数符+尾数值)⑵数符+阶码+尾数值④注意规格化2补码①正数:补码=原码②负数:补码=除符号位,其他数全部取反,末位加12、[-x]补=[x]补包括符号位全部取反,末位加13、移码=补码的符号位取反4、补码一位乘法①y n=y n+1,只右移一位部分积②y n=0,加[x]补,再右移一位;y n=1,加[-x],再右移一位。
补5、海明码:步骤①根据题目中收端的N=k+r≤2r—1(N为校验码位数)②按位置标出Pi和Bi③分别求出Pi的值④写入海明码数中。
纠错①计算Gi,得出的二进制数转化为十进制数,G1G2G3=000表示无错②等于几就是第几个数字错③将错的数字取反@表示异或㈠11位校验码中,P1=b1@b2@b4@b5@b7;P2=b1@b3@b4@b7;P3=b2@b3@b4;P4=b5@b6@b7㈡纠错中,G1=P1@b1@b2@b4@b5@b7;G2=P2@b1@b3@b4@b7;G3=P3@b2@b3@b4;G4=P4@b5@b6@b76、高速缓存的基本原理①CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。
一个块由若干定长字组成的。
②当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。
此时cache控制逻辑依据地址判断此字当前是否在cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
步骤:①把十进制转化成二进制,写成如上形式②把尾数和阶码求补码(阶码还可以求移码)③写成浮点数的表示格式:⑴阶码+尾数(数符+尾数值)⑵数符+阶码+尾数值④注意规格化2补码①正数:补码=原码②负数:补码=除符号位,其他数全部取反,末位加16、[-x]补=[x]补包括符号位全部取反,末位加17、移码=补码的符号位取反8、补码一位乘法①y n=y n+1,只右移一位部分积②y n=0,加[x]补,再右移一位;y n=1,加[-x],再右移一位。
计算机组成原理-作业参考答案(1)第1章计算机系统概论5. 冯•诺依曼计算机的特点是什么?解:冯•诺依曼计算机的特点是:P8(1)计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;(2)指令和数据以同同等地位存放于存储器内,并可以按地址访问;(3)指令和数据均用二进制表示;(4)指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;(5)指令在存储器中顺序存放,通常自动顺序取出执行;(6)机器以运算器为中心(原始冯•诺依曼机)。
7. 解释下列概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
解:课本P9-10(1)主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。
(2)CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了Cache)。
(3)主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
(4)存储单元:可存放一个机器字并具有特定存储地址的存储单位。
(5)存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
(6)存储字:一个存储单元所存二进制代码的逻辑单位。
(7)存储字长:一个存储单元所存储的二进制代码的总位数。
(8)存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。
(9)机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。
(10)指令字长:机器指令中二进制代码的总位数。
8. 解释下列英文缩写的中文含义:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS解:全面的回答应分英文全称、中文名、功能三部分。
第1章计算机系统概论5. 冯•诺依曼计算机的特点是什么?解:冯•诺依曼计算机的特点是:P8(1)计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;(2)指令和数据以同同等地位存放于存储器内,并可以按地址访问;(3)指令和数据均用二进制表示;(4)指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;(5)指令在存储器中顺序存放,通常自动顺序取出执行;(6)机器以运算器为中心(原始冯•诺依曼机)。
7. 解释下列概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
解:课本P9-10(1)主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。
(2)CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了Cache)。
(3)主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
(4)存储单元:可存放一个机器字并具有特定存储地址的存储单位。
(5)存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
(6)存储字:一个存储单元所存二进制代码的逻辑单位。
(7)存储字长:一个存储单元所存储的二进制代码的总位数。
(8)存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。
(9)机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。
(10)指令字长:机器指令中二进制代码的总位数。
8. 解释下列英文缩写的中文含义:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS解:全面的回答应分英文全称、中文名、功能三部分。