计组例题一、有一个(7,4)码,写出代码0011的海明效验码,画出效验电路(1)求信息码001的海明效验码。①确定海明效验位的位数因为是(7,4)码,所以N=7,K=4,效验位的位数为3。②确定效验位的位置:位号(1∽7)为2的权值的那些位,即:20、21、22的位置作为效验位,即:1234567P1P2D3P3D2D1D0④效验位的形成P1=D3⊕D1⊕D0=0⊕1⊕1=0P2=D3⊕D2⊕D0=0⊕0⊕1=1P3=D3⊕D2⊕D1=0⊕0⊕1=1所以:信息码0011的海明效验码为:0011110。(2)海明效验逻辑电路如图所示。②H7H6H5H4H3H2H1D3D2D1P3D0P2P10011第一组(P1)√√√√第二组(P2)√√√√第三组(P3)√√√√D3D2D1D0=1无错=0有错H7H6H5H3001101010110011100003:8译码器(设译码器高电平有效)S3S2S1奇偶形成线路奇偶形成线路奇偶形成线路H7H6H5H4H7H6H3H2H7H5H3H1二、求有效信息1010、0111的CRC校验码,并求循环余数,说明校验原理,画出译码与纠错电路。(1)求有效信息1010的CRC校验码①确定校验位的位数设R为校验位的位数,则整个码字的位数应满足不等式:N=K+R≤2R-1设R=3,则23-1=7,N=4+3=7,不等式满足。所以R最小取3。②选一个R+1位的生成多项式G(x),如G(x)=1011③在有效信息后面添R个0。然后用它和G(x)进行模2除法运算,所得的余数即为所求的校验位。运算过程如下:10011011101000010111000101111余数为011,所以,所求的CRC校验码为:1010011(2)求循环余数:在上面11余数的基础上添0继续进行模2除,如下:101111第一个余数110第二个余数1100余数循环次序如下:1011111第三个余数01111011111101011101101第四个余数101010001000110111第五个余数10第六个余数100第七个余数1000101111第一个余数(3)校验原理G(x)=1011时的1010(7,4)循环码的出错模式(4)译码与纠错电路校验的原理是根据余数来判断出错位,取反即可纠错,译码与纠错电路如下。接收方将收到的码字信息逐位送入译码电路计算余数,在码字信息全部进入译码电路后,寄存器R0,R1,R2中就寄存了余数。D1D2D3D4D5D6D7余数出错位正确1010011000无错误11111100000010111101100010000010000101111101111110010111010111010010117654321RR0⊕R2R3⊕接收码字输入端3:8译码器(设译码器高电平有效)000001010100011D1’D2’D3’D4’⊕⊕⊕⊕=1有错D1D2D3D4=0无错三、某16位机的主存采用半导体存贮器,地址码为20位,若使用8K×8位SRAM芯片组成该机所允许的最大主存空间,并选用模块板结构形式。问:①若每个模板为64K×16位,共需几个模块板?②每个模块内共有多少片RAM芯片?③主存共需多少RAM芯片?CPU如何选择模块板?解:①由于主存地址码给定20位,所以最大空间为220=1M,主存的最大容量为1MW。现在每个模块板的存贮容量为64K×16,所以主存共需1024K/64K=16块板。②每个模块板的存贮容量为64K×16,现用8K×8位的SRAM芯片。每块板采用位并联与地址串联相结合的方式:即用2片SRAM芯片拼成8K×16位(共8组),用地址码的低13位(A0~A12)直接接到芯片地址输入端,然后用地址码的高3位(A15~A13)通过3:8译码器输出分别接到8组芯片的片选端,共8×2=16个SRAM③根据前面所得,共需16个模板,每个模板上有16片芯片,故主存共需16×16=256片芯片(SRAM)。CPU选择各模块板的方法是:A12~A0为芯片内部地址,A15A14A13为模块板内部的芯片选择地址,A19A18A17A16通过4:16译码器输出选择各模块。WED15~D08K×88K×88K×88K×88K×88K×88K×88K×8A12~A0Y0Y1Y2Y3Y4Y5Y6Y7使能端EABC3:8译码器(74LS138)A13A14A15A15~A0D15~D064K×16的模块条使能端E读/写控制端WE读/写控制端WED15~D0CPU64K×16的模块64K×16的模块64K×16的模块64K×16的模块A15~A0Y0Y1Y14Y154:16译码器存储器控制端MREQA16A17A18ABCDA19四、用8K×8位的ROM芯片和8K×4位的RAM芯片组成存储器,按字节编址,其中RAM的地址为0000H~5FFFH,ROM地址的地址为C000H~FFFFH,设计出此存储器组成结构图及与CPU的连接图。解:RAM的容量为:8K×3=24K,RAM用8K×4的芯片组成,需8K×4的芯片6片;ROM的容量为:214=16K。ROM用8K×8的芯片组成,需8K×8的芯片2片。五、用16K×8的芯片设计一个64K×16的存储器。当B=0时访问16位数;当B=1时访问8位数。【解答】由于要求存储器能按字节访问,即:64K×16=128K×8=217×8,所以地址线需17根,数据线为16根。先设计一个模块将16K×8扩展成16K×16,内部地址为A14~A1,如图所示。设偶存储体选中时C=1;奇存储体选中时D=1;WED7~D0CPU8K×48K×48K×48K×8ROM8K×8ROM8K×48K×48K×4A12~A0Y0Y1Y2Y3Y4Y5Y6Y7MREQABC3:8译码器(74LS138)A15~A13设计方案真值表BA0CD说明A14~A10011访问16位数16K×816K×80100不访问CS1CS21010访问偶存储体偶存储体奇存储体1101访问奇存储体单个模块的扩展图由此真值表可得:C=A0D=AB064K×16的存储器的存储器需要四个模块,因此需用2:4译码器,译码器的输出一般是低电平有效,设经反相后的输出分别为Y3、Y2、Y1、Y0则:CS1、CS2、CS3、CS4、CS5、CS6、CS7、CS8的表达式分别为:CS1=YC0CS3=YC1CS5=YC2CS7=YC3CS2=YD0CS4=YD1CS6=YD2CS8=YD3六、一个组相联映象Cache由64个存储块构成,每组包含4个存储块。主存包含4096个存储块,每块由8字组成,每字为32位。存储器按字节编址,访存地址为字地址。(1)Cache地址位数和地址格式。(2)写出主存地址位数和地址格式。(3)画出组相联映像方式的示意图。(4)主存地址18AB9H映射到Cache的哪个字块?【解】(1)Cache由64个存储块构成,每块由8字组成,每字为32位,存储器按字节编址,所以Cache容量=64×8字×4B=211B,所以Cache的地址总数为11位。每组包含4个存储块,所以组内块号为2位;Cache有64/4=16个组,所以组号为4位。(3)组相联映像方式的示意图如图所示。由于访存地址为字地址,所以块内字节地址无用,图中由主存高位地址和组内块号组成标记,分别与由组号选中的组中的四个标记进行比较,比较符合即可访问相应的字块。(4)主存地址18AB9H=11000101010111001方法1:组号为0101,所以主存地址18AB9H可以映射到Cache的第5组中的字块21、字块22、字块23或字块24。第0块第1块1区组cache(r=2)0标记字块0标记字块1标记字块2标记字块3第15块1标记字块4标记字块5标记字块6标记字块7第16块第17块14标记字块56标记字块57标记字块58标记字块59第31块15标记字块60标记字块61标记字块62标记字块63第4079块比较第4080块64区主存高位地址组内块号组号块内地址第4095块16111098540组相联映像方式的示意图方法2:块内地址位11001;块号位i=110001010101;设Cache的块号为j,因为j=(imod24)×22+k0≤k≤22-1所以j=(110001010101mod24)×22+k=0101×22+k=5×4+k所以主存地址18AB9H可以映射到Cache的第5组中的字块21、字块22、字块23或字块24。七、设主存容量64KB,虚存容量1MB,页面大小为512B。(1)写出主存地址格式(2)写出虚拟地址格式(3)页表的长度为多少?(4)画出虚实地址转换示意图【相关知识】虚拟存储器的地址格式和虚实地址转换过程。(3)每一个虚页面号在页表中有一项,所以页表的长度为211=2048(4)虚实地址转换示意图如图所示:虚地址页面号页内地址页表起址寄存器005H150H1000H虚页面号物理页号特征位其它位000H0001H50H1005H45H17FEH07FFH70H145H1其它位左移9位实地址8B50H(补)八、设某机器的指令长度为16位,包括4位基本操作码字段和三个4位地址字段,其格式如下图所示。①画出扩展图②画出指令译码逻辑。解:①操作码的扩展如下:15121187430OPCODEA1A2A30000××××××××××××15条三地址指令1110××××××××××××11110000××××××××15条二地址指令11111110××××××××111111110000××××15条一地址指令111111111110××××111111111111000016条零地址指令1111111111111111②指令译码逻辑如图所示九、指令系统与控制器(寻址方式)指令寄存器××××××××××××××××4:16译码器4:16译码器4:16译码器4:16译码器…………15条三地址指令15条二地址指令15条一地址指令16条零地址指令译码开始寻址方式名称IX有效地址E寻址范围立即000E=(PC)Data=D1个单元相对001E=(PC)+D(7位)PC附近-64∽63共128个单元变址010E=(IX)+D(16位)64K个单元寄存器011E=R(D部分为寄存器编号)决定CPU中有多少个可用的寄存器直接100E=D(7位)data=(D)128个单元相对间接101E=((PC)+D)(16位)64K个单元变址间接110E=((IX)+D)(16位)64K个单元寄存器间接111E=(R)(16位)64K个单元其中寄存器R(16位),IX为变址寄存器,PC为程序计数器(16位),在变址和相对寻址时,位移量D可正可负。