存储器12. 画出用 1024×4 位的存储芯片组成一个容量为 64K×8 位的存储器逻辑框图要求将 64K 分成 4 个页面,每个页面分 16 组,指出共需多少片存储芯片解:设采用 SRAM 芯片,则:总片数 = (64K×8 位) / (1024×4 位)= 64×2 = 128 片题意分析:本题设计的存储器结构上分为总体、页面、组三级,因此画图时也应分三级画首先应确定各级的容量:页面容量 = 总容量 / 页面数 = 64K×8 / 4 = 16K×8 位,4 片 16K×8字串联成 64K×8 位组容量 = 页面容量 / 组数 = 16K×8 位 / 16 = 1K×8 位,16 片 1K×8位字串联成 16K×8 位组内片数 = 组容量 / 片容量 = 1K×8 位 / 1K×4 位 = 2 片,两片 1K×4位芯片位并联成 1K×8 位存储器逻辑框图:(略) 14. 某 8 位微型机地址码为 18 位,若使用 4K×4 位的 RAM 芯片组成模块板结构的存储器,试问:(1)该机所允许的最大主存空间是多少?(2)若每个模块板为 32K×8 位,共需几个模块板?(3)每个模块板内共有几片 RAM 芯片?(4)共有多少片 RAM?(5)CPU 如何选择各模块板?解:(1)该机所允许的最大主存空间是:2 18 × 8 位 = 256K×8 位 = 256KB(2)模块板总数 = 256K×8 / 32K×8 = 8 块(3)板内片数 = 32K×8 位 / 4K×4 位 = 8×2 = 16 片(4)总片数 = 16 片×8 = 128 片(5)CPU 通过最高 3 位地址译码输出选择模板,次高 3 位地址译码输出选择芯片。
地址格式分配如下:模板号 ( 3 位 ) 芯片号 ( 3 位 ) 片内地址 ( 1 2 位 )15. 设 CPU 共有 16 根地址线,8 根数据线,并用 (低电平有效)作访MREQ存控制信号, 作读写命令信号(高电平为读,低电平为写) 现有下列存W/R储芯片:ROM(2K×8 位,4K×4 位,8K×8 位) ,RAM (1K×4 位,2K×8 位,4K×8 位) ,及 74138 译码器和其他门电路(门电路自定) 试从上述规格中选用合适芯片,画出 CPU 和存储芯片的连接图要求:(1)最小 4K 地址为系统程序区, 4096~16383 地址范围为用户程序区2)指出选用的存储芯片类型及数量3)详细画出片选逻辑解:(1)地址空间分配图:系统程序区(ROM 共 4KB):0000H-0FFFH用户程序区(RAM 共 12KB):1000H-3FFFH( 2)选片:ROM :选择 4K×4 位芯片 2 片,位并联RAM:选择 4K×8 位芯片 3 片,字串联(RAM1 地址范围为:1000H-1FFFH,RAM2 地址范围为 2000H-2FFFH, RAM3 地址范围为:3000H-3FFFH) ( 3)各芯片二进制地址分配如下:A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0ROM1,2 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 10 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0RAM1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 10 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0RAM2 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 10 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0RAM3 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1CPU 和存储器连接逻辑图及片选逻辑如下图(3)所示:C P UR O M 1 R A M 1 R A M 2 R A M 37 4 1 3 8R O M 2D 0D 3D 4D 7A 1 1A 0A 1 5A 1 4A 1 3A 1 2G 1ABC. . .. . .. . .. . .. . .O EO EC S C SR / W R / W R / W C S. . . . . . . . . . . . . . .......R / WM R E QP D / P R O GG 2 BG 2 AY 7Y 3Y 2Y 1Y 0...图(3)25. 什么是“程序访问的局部性”?存储系统中哪一级采用了程序访问的局部性原理?答:程序运行的局部性原理指:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;在空间上,这些被访问的程序和数据往往集中在一小片存储区;在访问顺序上,指令顺序执行比转移执行的可能性大 (大约 5:1 )。
存储系统中 Cache-主存层次和主存 -辅存层次均采用了程序访问的局部性原理28. 设主存容量为 256K 字,Cache 容量为 2K 字,块长为 41)设计 Cache 地址格式,Cache 中可装入多少块数据?(2)在直接映射方式下,设计主存地址格式3)在四路组相联映射方式下,设计主存地址格式4)在全相联映射方式下,设计主存地址格式5)若存储字长为 32 位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式解:(1)Cache 容量为 2K 字,块长为 4,Cache 共有2K/4=211/22=29=512 块,Cache 字地址 9 位,字块内地址为 2 位因此,Cache 地址格式设计如下:Cache 字块地址(9 位) 字块内地址(2位)(2)主存容量为 256K 字=2 18 字,主存地址共 18 位,共分 256K/4=216块,主存字块标记为 18-9-2=7 位直接映射方式下主存地址格式如下:主存字块标记(7 位) Cache 字块地址(9 位) 字块内地址(2位)(3)根据四路组相联的条件,一组内共有 4 块,得 Cache 共分为512/4=128=27 组,主存字块标记为 18-7-2=9 位,主存地址格式设计如下:主存字块标记(9 位) 组地址(7 位) 字块内地址(2位)(4)在全相联映射方式下,主存字块标记为 18-2=16 位,其地址格式如下:主存字块标记(16 位) 字块内地址(2位)(5)若存储字长为 32 位,存储器按字节寻址,则主存容量为256K*32/4=221B,Cache 容量为 2K*32/4=214B,块长为 4*32/4=32B=25B,字块内地址为 5 位,在直接映射方式下,主存字块标记为 21-9-5=7 位,主存地址格式为:主存字块标记(7 位) Cache 字块地址(9 位) 字块内地址(5位)在四路组相联映射方式下,主存字块标记为 21-7-5=9 位,主存地址格式为:主存字块标记(9 位) 组地址(7 位) 字块内地址(5位)在全相联映射方式下,主存字块标记为 21-5=16 位,主存地址格式为:主存字块标记(16 位) 字块内地址(5位)30. 一个组相连映射的 CACHE 由 64 块组成,每组内包含 4 块。
主存包含4096 块,每块由 128 字组成,访存地址为字地址试问主存和高速存储器的地址各为几位?画出主存地址格式解:cache 组数: 64/4=16 ,Cache 容量为: 64*128=213 字,cache 地址13 位主存共分 4096/16=256 区,每区 16 块主存容量为:4096*128=2 19 字,主存地址 19 位,地址格式如下:主存字块标记(8位)组地址(4 位) 字块内地址(7 位)第 6 章 计算机的运算方法19. 设机器数字长为 8 位(含 1 位符号位) ,用补码运算规则计算下列各题 1)A=9/64, B=-13/32,求 A+B 2)A=19/32,B=-17/128 ,求 A-B 3)A=-3/16,B=9/32 ,求 A+B 4)A=-87 ,B=53,求 A-B 5)A=115,B=-24,求 A+B 解:(1)A=9/64= 0.001 0010B, B= -13/32= -0.011 0100B[A]补=0.001 0010, [B]补=1.100 1100[A+B]补= 0.0010010 + 1.1001100 = 1.1011110 ——无溢出A+B= -0.010 0010B = -17/64( 2)A=19/32= 0.100 1100B, B= -17/128= -0.001 0001B[A]补=0.100 1100, [B]补=1.110 1111 , [-B]补=0.001 0001[A-B]补= 0.1001100 + 0.0010001= 0.1011101 ——无溢出A-B= 0.101 1101B = 93/128B(3)A= -3/16= -0.001 1000B, B=9/32= 0.010 0100B[A]补=1.110 1000, [B]补= 0.010 0100[A+B]补= 1.1101000 + 0.0100100 = 0.0001100 —— 无溢出A+B= 0.000 1100B = 3/32(4) A= -87= -101 0111B, B=53=110 101B[A]补=1 010 1001, [B]补=0 011 0101, [-B]补=1 100 1011[A-B]补= 1 0101001 + 1 1001011 = 0 1110100 —— 溢出(5)A=115= 111 0011B, B= -24= -11 000B[A]补 =0 1110011, [B]补=1,110 1000[A+B]补= 0 1110011 + 1 1101000 = 0 1011011——无溢出A+B= 101 1011B = 9120. 用原码一位乘、两位乘和补码一位乘(Booth 算法) 、两位乘计算 x·y。
1)x= 0.110 111,y= -0.101 110;(2)x= -0.010 111,y= -0.010 101;(3)x= 19,y= 35;(4)x= 0.110 11, y= -0.111 01解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值1)[x] 原 =0.110111,[y] 原 =1.101110,x*=0.110111 , y*=0.101110原码一位乘:部分积 乘数 y* 说明0.000 000+0.000 000101 110 部分积初值为 0,乘数为 0 加 00.000 000 0.000 000+0.110 111010 111右移一位乘数为 1,加上 x*0.110 1110.011 011+0.110 111101 011右移一位乘数为 1,加上 x* 1.010 0100.101 001+0.110 111010 101右移一位乘数为 1,加上 x*1.100 0000.110 000+0.000 000001 010右移一位乘数为 0,加上 00.110 0000.011 000+0.110 111000 101右移一位乘数为 1,加上 x*1.001 1110.100 111 100 010右移一位即 x*×y*=0.100 111 100 010,z0=x0 y0=0 1=1,[x×y]原 =1.100 111 100 010,x·y= -0. 100 111 100 010原码两位乘:[-x*] 补 =1.001 001,2x*=1.101 110部分积 乘数 y* Cj 说明000 . 000 000+001 . 101 11000 101 1100 部分积初值为 0,C j=0根据 yn-1ynCj=100,加 2x*,保持 Cj。