首页 >> 知识 >> 计算机组成原理(第三版)唐朔飞

计算机组成原理(第三版)唐朔飞

目录 第四章4.1解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。4.2 计算机中哪些部件可用于存储信息,按其速度、容量和价格/位排序说明。4.3存储器的层次结构主要体现在什么地方,为什么要分这些层次,计算机如何管理这些层次?4.4 说明存取周期和存取时间的区别。4.5什么是存储器的带宽?若存储器的数据总线宽度为32位,存取周期为200ns,则存储器的带宽是多少?4.6机字长为32位,存储容量是64KB,按字编址其寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。4.7 一个容量为16 K×32 位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1 K×4位,2K×8位,4 K×4位,16 K×1位,4 K×8位,8 K×8位4.8试比较静态RAM和动态RAM。4.9什么叫刷新?为什么要刷新?说明刷新有几种方法。4.10 半导体存储器芯片的译码驱动方式有几种?4.11一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,读/写周期为0.1μs。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?4.12画出用1024×4位的存储芯片组成一个容量为64Kx8位的存储器逻辑框图。要求将64K分成4个页面,每个页面分16组,共需多少片存储芯片?4.13 设有一个64K×8位的RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。4.14某8位微型计算机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:4.15设CPU共有16根地址线,8根数据线,并用 M R E Q ‾ overline{MREQ} MREQ​(低电平有效)作访存控制信号, R / W ‾ R/overline W R/W作读/写命令信号(高电平为读,低电平为写)。现有这些存储芯片:ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位)及74138译码器和其他门电路(门电路自定)。4.16CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连。4.17 写出1100、1101、1110、1111对应的汉明码。4.18 已知接收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?4.19 已知接收到下列汉明码,分别写出它们所对应的欲传送代码。4.20 欲传送的二进制代码为1001101,用奇校验来确定其对应的汉明码,若在第6位出错,说明纠错过程。4.21 为什么在汉明码纠错过程中,新的检测位 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​的状态即指出了编码中错误的信息位?4.22某机字长为16位,常规的存储空间为64K字,若想不改用其他高速的存储芯片,而使访存速度提高到8倍,可采取什么措施?画图说明。4.23设CPU共有16根地址线,8根数据线,并用 M / I O ‾ M/overline{IO} M/IO作为访问存储器或I/O的控制信号(高电平为访存,低电平为访I/O), W R ‾ overline{WR} WR(低电平有效)为写命令, R D ‾ overline{RD} RD(低电平有效)为读命令。设计一个容量为64KB的采用低位交叉编址的8体并行结构存储器。现有右图所示的存储芯片及74138译码器。画出CPU和存储芯片(芯片容量自定)的连接图,并写出图中每个存储芯片的地址范围(用十六进制数表示)。4.24一个4体低位交叉的存储器,假设存取周期为 T,CPU每隔1/4存取周期启动一个存储体,试问依次访问64个字需多少个存取周期?4.25 什么是程序访问的局部性?存储系统中哪一级采用了程序访问的局部性原理?4.26计算机中设置Cache的作用是什么?能不能把Cache的容量扩大,最后取代主存,为什么?4.27Cache制作在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?4.28设主存容量为256K字,Cache容量为2K字,块长为4。4.29假设CPU执行某段程序时共访问 Cache命中4800次,访问主存200次,已知Cache的存取周期是30ns,主存的存取周期是150ns,求Cache的命中率以及 Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少?4.30一个组相联映射的Cache由64块组成,每组内包含4块。主存包含4096块,每块由 128字组成,访存地址为字地址。试问主存和 Cache 的地址各为几位?画出主存的地址格式。4.31 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试向主存地址为ABCDEH的存储单元在Cache中的什么位置?4.32设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即Cache每组内共有4个字块)的Cache组织。4.33简要说明提高访存速度可采取的措施。4.34反映主存和外存的速度指标有何不同?4.35画出RZ、NRZ、NRZ1、PE、FM写入数字串1011001的写电流波形图。4.36以写入10010110为例,比较调频制和改进调频制的写电流波形图。4.37 画出调相制记录01100010的驱动电流、记录磁通、感应电势、同步脉冲及读出代码等几种波形。4.38磁盘组有6片磁盘,最外两侧盘面可以记录,存储区域内径22cm,外径33cm,道密度为40道/cm,内层密度为400位/cm,转速3600r/min。4.39某磁盘存储器转速为3000r/min,共有4个记录盘面,每毫米5道,每道记录信息12288字节,最小磁道直径为230mm,共有275道,求:4.40 采用定长数据块记录格式的磁盘存储器,直接寻址的最小单位是什么?寻址命令中如何表示磁盘地址?4.41设有效信息为110,试用生成多项式G(x)=11011将其编成循环冗余校验码。4.42 有一个(7,4)码,生成多项式G(x)=x³+x+1,写出代码 1001的循环冗余校验码。4.43磁表面存储器和光盘存储器记录信息的原理有何不同?4.44 试从存储容量、存取速度、使用寿命和应用场合方面比较磁盘、磁带和光盘存储器。

第四章 4.1解释概念:主存、辅存、Cache、RAM、SRAM、DRAM、ROM、PROM、EPROM、EEPROM、CDROM、Flash Memory。

答: 主存:主存储器,用于存放正在执行的程序和数据。 CPU 可以直接进行随机读写,访问速度较高。 辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。 Cache :高速缓冲存储器,介于 CPU 和主存之间,用于解决 CPU 和主存之间速度不匹配问题。 RAM :半导体随机存取存储器,主要用作计算机中的主存。 SRAM :静态半导体随机存取存储器。 DRAM :动态半导体随机存取存储器。 ROM :掩膜式半导体只读存储器。由芯片制造商在制造时写入内容,以后只能读出而不能写入。 PROM :可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。 EPROM :可擦除可编程只读存储器。允许用户写入信息,之后用某种方法擦除数据,可进行多次重写。 EEPROM :电擦写可编程只读存储器。 CDROM :只读型光盘。 Flash Memory :闪速存储器。或称快擦型存储器。

4.2 计算机中哪些部件可用于存储信息,按其速度、容量和价格/位排序说明。

答: 计算机中寄存器、Cache、主存、硬盘可以用于存储信息。一般来说,速度越高,价格就越高;容量越大,价格就越高,而且容量越大,速度必越低。人们追求大容量、高速度、低价位的存储器,可惜这是很难达到的。寄存器通常都制作在 CPU 芯片内,寄存器中的数直接在 CPU 内部参与运算,CPU 内可以有十几个、几十个寄存器,它们的速度最快,价位最高,容量最小。主存用来存放将要参与运行的程序和数据,其速度与 CPU 速度差距较大,为了使它们之间速度更好地匹配,在主存与 CPU 之间插入了一种比主存速度更快、容量更小的高速缓冲存储器 Cache,显然其价位要高于主存。所以,按其速度、容量和价格/位排序如下: 按速度由高至低排序为:寄存器、Cache、主存、硬盘: 按容量由小至大排序为:寄存器、Cache、主存、硬盘; 按价格/位由高至低排序为:寄存器、Cache、主存、硬盘。

4.3存储器的层次结构主要体现在什么地方,为什么要分这些层次,计算机如何管理这些层次?

答: 存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。 Cache-主存层次在存储系统中主要对 CPU 访存起加速作用,即从整体运行的效果分析, CPU 访存速度加快,接近于 Cache的速度,而寻址空间和位价却接近于主存。 主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。 综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。 主存与CACHE 之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现, 即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。 因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

4.4 说明存取周期和存取时间的区别。

答: 存取周期和存取时间的主要区别是:存取时间仅为完成一次操作的时间,而存取周期不仅包含操作时间,还包含操作后线路的恢复时间。 即:存取周期=存取时间+恢复时间

4.5什么是存储器的带宽?若存储器的数据总线宽度为32位,存取周期为200ns,则存储器的带宽是多少?

答: 存储器的带宽指单位时间内从存储器进出信息的最大数量。 存储器带宽= 1/200ns ×32位 = 160M位/秒 = 20MB/秒 = 5M字/秒 注意 :字长32位,不是16位。(注: 1 n s = 1 0 − 9 s 1ns=10^{-9} s 1ns=10−9s)

4.6机字长为32位,存储容量是64KB,按字编址其寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。

答: 存储容量是 64KB 时,按字节编址的寻址范围就是 64K , 如按字编址,其寻址范围为: 64KB/32位=(64 * 1024* 8)/32=16*1024=16K 主存字地址和字节地址的分配情况:如图

4.7 一个容量为16 K×32 位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?1 K×4位,2K×8位,4 K×4位,16 K×1位,4 K×8位,8 K×8位

答: 地址线和数据线的总和 = 14 + 32 = 46根; 选择不同的芯片时,各需要的片数为: 1K×4:(16K×32) / (1K×4) = 16 ×8 = 128 片 2K×8:(16K×32) / (2K×8) = 8 ×4 = 32片 4K×4:(16K×32) / (4K×4) = 4 ×8 = 32片 16K×1:(16K×32)/ (16K×1) = 1 ×32 = 32 片 4K×8:(16K×32)/ (4K×8) = 4 ×4 = 16 片 8K×8:(16K×32) / (8K×8) = 2 ×4 = 8 片

4.8试比较静态RAM和动态RAM。

答: 静态RAM是靠双稳态触发器来记忆信息的;动态RAM是靠MOS电路中的栅极电容来记忆信息的。 由于电容上的电荷会泄漏,需要定时给与补充,所以动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM。另外,内存还应用于显卡、声卡及CMOS等设备中,用于充当设备缓存或保存固定的程序及数据。

解析:静态RAM的特点:是在不断电的条件下,其中的信息保持不变,因而不必定期刷新,其中的信息可读可写,但断电后信息就会丢失。 1、静态RAM 用触发器作为存储单元存放1 和0,存取速度快,只要不掉电即可持续保持内容不变。 2、,静态RAM的集成度较低,并且静态RAM无须考虑保持数据而设置的刷新电路,故扩展电路较简单。 动态RAM:是绝大多数现代台式计算机的标准计算机内存,它是一种易失性存储器,需要用电压定期刷新,否则,它会丢失存储在上面的信息。

特性SRAMDRAM存储信息触发器电容破坏性读出非是需要刷新不要需要送行列地址同时送分两次送运行速度快慢集成度低高发热量大小存储成本高低功耗高低可靠性高低可用性使用方便不方便适用场合高速小容量存储器大容量主存 4.9什么叫刷新?为什么要刷新?说明刷新有几种方法。

答: 刷新:对 DRAM 定期进行的全部重写过程; 刷新原因:因电容泄漏而引起的 DRAM 所存信息的衰减需要及时补充,因此安排了定期刷新操作; 常用的刷新方法有三种:集中式、分散式、异步式。 集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新,存在 CPU 访存死时间。 分散式:在每个读 /写周期之后插入一个刷新周期,无 CPU 访存死时间。 异步式:是集中式和分散式的折衷。

4.10 半导体存储器芯片的译码驱动方式有几种?

答: 半导体存储器芯片的译码驱动方式有两种:线选法和重合法。 线选法:地址译码信号只选中同一个字的所有位,结构简单,费器材; 重合法:地址分行、列两部分译码,行、列译码线的交叉点即为所选单元。这种方法通过行、列译码信号的重合来选址,也称矩阵译码。可大大节省器材用量,是最常用的译码驱动方式。

4.11一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,读/写周期为0.1μs。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?

答: 采用集中刷新方式刷新间隔为:2ms,其中刷新死时间为:256×0.1μs=25.6μs 采用分散刷新方式刷新间隔为:256×(0.1μs+0.1μs)=51.2μs 采用异步刷新方式刷新间隔为:2ms

4.12画出用1024×4位的存储芯片组成一个容量为64Kx8位的存储器逻辑框图。要求将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位 地址分配: 存储器逻辑框图:

4.13 设有一个64K×8位的RAM芯片,试问该芯片共有多少个基本单元电路(简称存储基元)?欲设计一种具有上述同样多存储基元的芯片,要求对芯片字长的选择应满足地址线和数据线的总和为最小,试确定这种芯片的地址线和数据线,并说明有几种解答。

答: 存储基元总数 = 64 K × 8 位 = 512 K 位 = 2 19 位 64K × 8位 = 512K位 = 2^{19}位 64K×8位=512K位=219位; 如要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成2的幂的关系,可较好地压缩线数。 设地址线根数为a,数据线根数为b, 则片容量为: 2 a × b = 2 19 ; b = 2 19 − a ; 2^a × b = 2^{19};b = 2^{19-a}; 2a×b=219;b=219−a; 若a = 19,b = 1,总和 = 19+1 = 20; a = 18,b = 2,总和 = 18+2 = 20; a = 17,b = 4,总和 = 17+4 = 21; a = 16,b = 8 总和 = 16+8 = 24;

4.14某8位微型计算机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:

(1)该机所允许的最大主存空间是多少? (2)若每个模块板为32K×8位,共需几个模块板? (3)每个模块板内共有几片RAM芯片? (4)共有多少片RAM? (5)CPU如何选择各模块板? 答: (1)该机所允许的最大主存空间是: 2 18 × 8 位 = 256 K × 8 位 = 256 K B 2^{18} × 8位 = 256K×8位 = 256KB 218×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位)片内地址(12位) 4.15设CPU共有16根地址线,8根数据线,并用 M R E Q ‾ overline{MREQ} MREQ​(低电平有效)作访存控制信号, R / W ‾ R/overline W R/W作读/写命令信号(高电平为读,低电平为写)。现有这些存储芯片: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)各芯片二进制地址分配如下:

CPU和存储器连接逻辅图及片选逻辑如下图所示:

4.16CPU假设同上题,现有8片8K×8位的RAM芯片与CPU相连。

(1)用74138译码器画出CPU与存储芯片的连接图。 (2)写出每片RAM的地址范围。 (3)如果运行时发现不论往哪片RAM写入数据,以A000H为起始地址的存储芯片都有与其相同的数据分析故障原因。 (4)根据(1)的连接图,若出现地址线 A 13 A_{13} A13​与CPU断线,并搭接到高电平上,将出现什么后果? 答: (1)CPU与存储器芯片连接逻辑图: (2)地址空间分配图: RAM0:0000H-1FFFH RAM1:2000H-3FFFH RAM2:4000H-5FFFH RAM3:6000H-7FFFH RAM4:8000H-9FFFH RAM5:A000H-BFFFH RAM6:C000H-DFFFH RAM7:E000H-FFFFH

(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片(RAM5)都有与其相同的数据,则根本的故障原因为:该存储芯片的片选输入端很可能总是处于低电平。 假设芯片与译码器本身都是好的,可能的情况有: ①该片的 C S ‾ overline{CS} CS端与 W E ‾ overline{WE} WE端错连或短路: ②该片的 C S ‾ overline{CS} CS端与CPU的 M R E Q ‾ overline{MREQ} MREQ​端错连或短路; ③该片的 C S ‾ overline{CS} CS端与地线错连或短路。

(4)如果地址线A13与CPU断线,并搭接到高电平上,将会出现A13恒为“1”的情况。此时存储器只能寻址A13=1的地址空间(奇数片),A13=0的另一半地址空间(偶数片)将永远访问不到。若对A13=0的地址空间(偶数片)进行访问,只能错误地访问到A13=1的对应空间(奇数片)中去。

4.17 写出1100、1101、1110、1111对应的汉明码。

答: 有效信息均为n=4位,假设有效信息用 b 4 b 3 b 2 b 1 b_4b_3b_2b_1 b4​b3​b2​b1​表示 校验位位数k=3位, ( 2 k > = n + k + 1 ) (2^k>=n+k+1) (2k>=n+k+1) 设校验位分别为 C 1 、 C 2 、 C 4 C_1、C_2、C_4 C1​、C2​、C4​,则汉明码共4+3=7位,即: C 1 C 2 b 4 C 4 b 3 b 2 b 1 C_1C_2b_4C_4b_3b_2b_1 C1​C2​b4​C4​b3​b2​b1​ 校验位在汉明码中分别处于第1、2、4位 序号 1     2     3     4     5     6     7 名称 C 1    C 2    b 4    C 4    b 3    b 2    b 1 egin{array}{c|c} 序号 &1 2 3 4 5 6 7 \ hline 名称&C_1 C_2 b_4 C_4 b_3 b_2 b_1 end{array} 序号名称​1   2   3   4   5   6   7C1​  C2​  b4​  C4​  b3​  b2​  b1​​​ C 1 = b 4 ⊕ b 3 ⊕ b 1 C 2 = b 4 ⊕ b 2 ⊕ b 1 C 4 = b 3 ⊕ b 2 ⊕ b 1 C_1=b_4oplus b_3oplus b_1\ C_2=b_4oplus b_2oplus b_1\ C_4=b_3oplus b_2oplus b_1 C1​=b4​⊕b3​⊕b1​C2​=b4​⊕b2​⊕b1​C4​=b3​⊕b2​⊕b1​ 当有效信息为1100时, C 1 C 2 C 4 C_1C_2C_4 C1​C2​C4​=011,汉明码为0111100。 当有效信息为1101时, C 1 C 2 C 4 C_1C_2C_4 C1​C2​C4​=100,汉明码为1010101。 当有效信息为1110时, C 1 C 2 C 4 C_1C_2C_4 C1​C2​C4​=000,汉明码为0010110。 当有效信息为1111时, C 1 C 2 C 4 C_1C_2C_4 C1​C2​C4​=111,汉明码为1111111。

4.18 已知接收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?

答: 假设接收到的汉明码为: C 1 C 2 b 4 C 4 b 3 b 2 b 1 C_1C_2b_4C_4b_3b_2b_1 C1​C2​b4​C4​b3​b2​b1​ 序号 1     2     3     4     5     6     7 名称 C 1    C 2    b 4    C 4    b 3    b 2    b 1 egin{array}{c|c} 序号 &1 2 3 4 5 6 7 \ hline 名称&C_1 C_2 b_4 C_4 b_3 b_2 b_1 end{array} 序号名称​1   2   3   4   5   6   7C1​  C2​  b4​  C4​  b3​  b2​  b1​​​ 纠错过程如下: P 1 = C 1 ⊕ b 4 ⊕ b 3 ⊕ b 1 P 2 = C 2 ⊕ b 4 ⊕ b 2 ⊕ b 1 P 4 = C 4 ⊕ b 3 ⊕ b 2 ⊕ b 1 P_1=C_1oplus b_4oplus b_3oplus b_1\ P_2=C_2oplus b_4oplus b_2oplus b_1\ P_4=C_4oplus b_3oplus b_2oplus b_1 P1​=C1​⊕b4​⊕b3​⊕b1​P2​=C2​⊕b4​⊕b2​⊕b1​P4​=C4​⊕b3​⊕b2​⊕b1​ 如果收到的汉明码为1100100,则 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=110,说明代码有错,第6位( b 2 b_2 b2​)出错,有效信息为:0110 如果收到的汉明码为1100111,则 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=111,说明代码有错,第7位( b 1 b_1 b1​)出错,有效信息为:0110 如果收到的汉明码为1100000,则 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=011,说明代码有错,第3位( b 4 b_4 b4​)出错,有效信息为:1000 如果收到的汉明码为1100001,则 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=100,说明代码有错,第4位( C 4 C_4 C4​)出错,有效信息为:0001

4.19 已知接收到下列汉明码,分别写出它们所对应的欲传送代码。

1100000(按偶性配置) 1100010(按偶性配置) 1101001(按偶性配置) 0011001(按奇性配置) 1000000(按奇性配置) 1110001(按奇性配置) 答: (一)假设接收到的汉明码为 C 1 C 2 b 4 C 4 b 3 b 2 b 1 C_1C_2b_4C_4b_3b_2b_1 C1​C2​b4​C4​b3​b2​b1​, 序号 1     2     3     4     5     6     7 名称 C 1    C 2    b 4    C 4    b 3    b 2    b 1 egin{array}{c|c} 序号 &1 2 3 4 5 6 7 \ hline 名称&C_1 C_2 b_4 C_4 b_3 b_2 b_1 end{array} 序号名称​1   2   3   4   5   6   7C1​  C2​  b4​  C4​  b3​  b2​  b1​​​ 按偶性配置则: P 1 = C 1 ⊕ b 4 ⊕ b 3 ⊕ b 1 P 2 = C 2 ⊕ b 4 ⊕ b 2 ⊕ b 1 P 4 = C 4 ⊕ b 3 ⊕ b 2 ⊕ b 1 P_1=C_1oplus b_4oplus b_3oplus b_1\ P_2=C_2oplus b_4oplus b_2oplus b_1\ P_4=C_4oplus b_3oplus b_2oplus b_1 P1​=C1​⊕b4​⊕b3​⊕b1​P2​=C2​⊕b4​⊕b2​⊕b1​P4​=C4​⊕b3​⊕b2​⊕b1​

(1)如接收到的汉明码为1100000, P 1 = 1 ⊕ 0 ⊕ 0 ⊕ 0 = 1 P_1=1oplus0 oplus0 oplus0=1 P1​=1⊕0⊕0⊕0=1 P 2 = 1 ⊕ 0 ⊕ 0 ⊕ 0 = 1 P_2=1oplus0 oplus0 oplus0=1 P2​=1⊕0⊕0⊕0=1 P 4 = 0 ⊕ 0 ⊕ 0 ⊕ 0 = 0 P_4=0oplus0 oplus0 oplus0=0 P4​=0⊕0⊕0⊕0=0 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=011第3位出错,可纠正为1110000,故欲传送的信息为1000

(2)如接收到的汉明码为1100010, P 1 = 1 ⊕ 0 ⊕ 0 ⊕ 0 = 1 P_1=1oplus0 oplus0 oplus0=1 P1​=1⊕0⊕0⊕0=1 P 2 = 1 ⊕ 0 ⊕ 1 ⊕ 0 = 0 P_2=1oplus0 oplus1 oplus0=0 P2​=1⊕0⊕1⊕0=0 P 4 = 0 ⊕ 0 ⊕ 1 ⊕ 0 = 1 P_4=0oplus0 oplus1 oplus0=1 P4​=0⊕0⊕1⊕0=1 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=101,第5位出错,可纠正为1100110,故欲传送的信息为0110。

(3)如接收到的汉明码为1101001, P 1 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0 P_1=1oplus0 oplus0 oplus1=0 P1​=1⊕0⊕0⊕1=0 P 2 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0 P_2=1oplus0 oplus0 oplus1=0 P2​=1⊕0⊕0⊕1=0 P 3 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0 P_3=1oplus0 oplus0 oplus1=0 P3​=1⊕0⊕0⊕1=0 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=000,传送无错,故欲传送的信息为0001

(二)假设接收到的汉明码为 C 1 C 2 b 4 C 4 b 3 b 2 b 1 C_1C_2b_4C_4b_3b_2b_1 C1​C2​b4​C4​b3​b2​b1​, 序号 1     2     3     4     5     6     7 名称 C 1    C 2    b 4    C 4    b 3    b 2    b 1 egin{array}{c|c} 序号 &1 2 3 4 5 6 7 \ hline 名称&C_1 C_2 b_4 C_4 b_3 b_2 b_1 end{array} 序号名称​1   2   3   4   5   6   7C1​  C2​  b4​  C4​  b3​  b2​  b1​​​ 按奇性配置则: P 1 = C 1 ⊕ b 4 ⊕ b 3 ⊕ b 1 ‾ P 2 = C 2 ⊕ b 4 ⊕ b 2 ⊕ b 1 ‾ P 4 = C 4 ⊕ b 3 ⊕ b 2 ⊕ b 1 ‾ P_1=overline{C_1oplus b_4oplus b_3oplus b_1}\ P_2=overline{C_2oplus b_4oplus b_2oplus b_1}\ P_4=overline{C_4oplus b_3oplus b_2oplus b_1} P1​=C1​⊕b4​⊕b3​⊕b1​​P2​=C2​⊕b4​⊕b2​⊕b1​​P4​=C4​⊕b3​⊕b2​⊕b1​​

(4)如接收到的汉明码为0011001, P 1 = 0 ⊕ 1 ⊕ 0 ⊕ 1 ‾ = 1 P_1=overline{0oplus1 oplus0 oplus1}=1 P1​=0⊕1⊕0⊕1​=1 P 2 = 0 ⊕ 1 ⊕ 0 ⊕ 0 ‾ = 1 P_2=overline{0oplus1 oplus0 oplus0}=1 P2​=0⊕1⊕0⊕0​=1 P 4 = 1 ⊕ 0 ⊕ 0 ⊕ 1 ‾ = 1 P_4=overline{1oplus0 oplus0 oplus1}=1 P4​=1⊕0⊕0⊕1​=1 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=111,第7位出错,可纠正为0011000,故欲传送的信息为1000

(5)如接收到的汉明码为1000000, P 1 = 1 ⊕ 0 ⊕ 0 ⊕ 0 ‾ = 0 P_1=overline{1oplus0 oplus0 oplus0}=0 P1​=1⊕0⊕0⊕0​=0 P 2 = 0 ⊕ 0 ⊕ 0 ⊕ 0 ‾ = 1 P_2=overline{0oplus0 oplus0 oplus0}=1 P2​=0⊕0⊕0⊕0​=1 P 4 = 0 ⊕ 0 ⊕ 0 ⊕ 0 ‾ = 1 P_4=overline{0oplus0 oplus0 oplus0}=1 P4​=0⊕0⊕0⊕0​=1 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=110,第6位出错,可纠正为1000010,故欲传送的信息为0010

(6)如接收到的汉明码为1110001 P 1 = 1 ⊕ 1 ⊕ 0 ⊕ 1 ‾ = 0 P_1=overline{1oplus1 oplus0 oplus1}=0 P1​=1⊕1⊕0⊕1​=0 P 2 = 1 ⊕ 1 ⊕ 0 ⊕ 1 ‾ = 0 P_2=overline{1oplus1 oplus0 oplus1}=0 P2​=1⊕1⊕0⊕1​=0 P 4 = 0 ⊕ 0 ⊕ 0 ⊕ 1 ‾ = 0 P_4=overline{0oplus0 oplus0 oplus1}=0 P4​=0⊕0⊕0⊕1​=0 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​=000,传送无错,故欲传送的信息为1001

4.20 欲传送的二进制代码为1001101,用奇校验来确定其对应的汉明码,若在第6位出错,说明纠错过程。

答: 欲传送的二进制代码为 1001101,有效信息位数为 n = 7 ext{n}=7 n=7 位,则汉明校验的校验位为 k 位,则: 2 k > = n + k + 1 , k = 4 2^k>=n+k+1 , k=4 2k>=n+k+1,k=4 ,进行奇校验设校验位为 C 1 C 2 C 4 C 8 C_1C_2C_4C_8 C1​C2​C4​C8​, 汉明码为 C 1 C 2 b 7 C 4 b 6 b 5 b 4 C 8 b 3 b 2 b 1 C_1C_2b_7C_4b_6b_5b_4C_8b_3b_2b_1 C1​C2​b7​C4​b6​b5​b4​C8​b3​b2​b1​, 序号 1      2      3      4      5     6     7      8      9     10    11 名称 C 1    C 2    b 7    C 4    b 6    b 5    b 4    C 8    b 3    b 2    b 1 egin{array}{c|c} 序号 &1 2 3 4 5 6 7 8 9 10 11\ hline 名称&C_1 C_2 b_7 C_4 b_6 b_5 b_4 C_8 b_3 b_2 b_1 end{array} 序号名称​1    2    3    4    5   6   7    8    9   10  11C1​  C2​  b7​  C4​  b6​  b5​  b4​  C8​  b3​  b2​  b1​​​ C 1 = b 7 ⊕ b 6 ⊕ b 4 ⊕ b 3 ⊕ b 1 ‾ = 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 ‾ = 1 C_1=overline{ b_7oplus b_6oplus b_4oplus b_3oplus b_1}=overline{1oplus 0oplus 1oplus 1oplus 1}=1 C1​=b7​⊕b6​⊕b4​⊕b3​⊕b1​​=1⊕0⊕1⊕1⊕1​=1 C 2 = b 7 ⊕ b 5 ⊕ b 4 ⊕ b 2 ⊕ b 1 ‾ = 1 ⊕ 0 ⊕ 1 ⊕ 0 ⊕ 1 ‾ = 0 C_2=overline{ b_7oplus b_5oplus b_4oplus b_2oplus b_1}=overline{1oplus 0oplus 1oplus 0oplus 1}=0 C2​=b7​⊕b5​⊕b4​⊕b2​⊕b1​​=1⊕0⊕1⊕0⊕1​=0 C 4 = b 6 ⊕ b 5 ⊕ b 4 ‾ = 0 ⊕ 0 ⊕ 1 ‾ = 0 C_4=overline{ b_6oplus b_5oplus b_4}=overline{ 0oplus 0oplus 1}=0 C4​=b6​⊕b5​⊕b4​​=0⊕0⊕1​=0 C 8 = b 3 ⊕ b 2 ⊕ b 1 ‾ = 1 ⊕ 0 ⊕ 1 ‾ = 1 C_8=overline{ b_3oplus b_2oplus b_1}=overline{ 1oplus 0oplus 1}=1 C8​=b3​⊕b2​⊕b1​​=1⊕0⊕1​=1 故传送的汉明码为 10100011101,若第 6 位(B5)出错,即接收的码字为10100111101,则 P 1 = C 1 ⊕ b 7 ⊕ b 6 ⊕ b 4 ⊕ b 3 ⊕ b 1 ‾ = 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 ⊕ 1 ‾ = 0 P_1=overline{ C_1 oplus b_7 oplus b_6 oplus b_4 oplus b_3oplus b_1}=overline{1oplus1oplus0oplus1oplus1oplus1}=0 P1​=C1​⊕b7​⊕b6​⊕b4​⊕b3​⊕b1​​=1⊕1⊕0⊕1⊕1⊕1​=0 P 2 = C 2 ⊕ b 7 ⊕ b 5 ⊕ b 4 ⊕ b 2 ⊕ b 1 ‾ = 0 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 ‾ = 1 P_2 =overline{ C_2 oplus b_7 oplus b_5 oplus b_4 oplus b_2 oplus b_1} =overline{0oplus1oplus1oplus1oplus0oplus1}=1 P2​=C2​⊕b7​⊕b5​⊕b4​⊕b2​⊕b1​​=0⊕1⊕1⊕1⊕0⊕1​=1 P 4 = C 4 ⊕ b 6 ⊕ b 5 ⊕ b 4 ‾ = 0 ⊕ 0 ⊕ 1 ⊕ 1 ‾ = 1 P_4 =overline{ C_4 oplus b_6 oplus b_5 oplus b_4} =overline{0oplus0oplus1oplus1}=1 P4​=C4​⊕b6​⊕b5​⊕b4​​=0⊕0⊕1⊕1​=1 P 8 = C 8 ⊕ b 3 ⊕ b 2 ⊕ b 1 ‾ = 1 ⊕ 1 ⊕ 0 ⊕ 1 ‾ = 0 P_8 =overline{ C_8 oplus b_3 oplus b_2 oplus b_1 }=overline{1oplus1oplus0oplus1}=0 P8​=C8​⊕b3​⊕b2​⊕b1​​=1⊕1⊕0⊕1​=0 P 8 P 4 P 2 P 1 = 0110 P_8P_4P_2P_1 =0110 P8​P4​P2​P1​=0110说明第6位出错,对第6位取反即完成纠错。

4.21 为什么在汉明码纠错过程中,新的检测位 P 4 P 2 P 1 P_4P_2P_1 P4​P2​P1​的状态即指出了编码中错误的信息位?

答: 因为证明码中的检验位是由公式 2 k > = n + k + 1 2^{k}>=n+k+1 2k>=n+k+1 得到冗余位长度(位数),其中 冗余的位数即冗余的长度有多少 bit 的长度, n= 数据位数。 k得到后冗余位数(即检验位)分别加在原数据的2的0次方到k次方这些位置上,由此公式获得的k位二进制数必然大于 n,即绝对可以指定 n 位原始数据中任意出错位的位置。 之后再将0~ n进行二进制列表,对应检验位的末位从0~n的二进制的末位开始进行判断那些数相应位置含1。并标识出这些数,同时进行奇校验或者偶校验,进行判断到底每一位检验位填写0或者是1。由于多次对原数据的各位的状态(0、1 状态)进行了校验才得到了检验位的状态,故而检验位状态包含了原数据的正确信息,一旦数据出错检验位状态会随之改变并自动指出出错信息位。

4.22某机字长为16位,常规的存储空间为64K字,若想不改用其他高速的存储芯片,而使访存速度提高到8倍,可采取什么措施?画图说明。

答: 若想不改用高速存储芯片,而使访存速度提高到8倍,可采取八体交叉存取技术,如下图所示: 8体交叉访问时序如下图:

4.23设CPU共有16根地址线,8根数据线,并用 M / I O ‾ M/overline{IO} M/IO作为访问存储器或I/O的控制信号(高电平为访存,低电平为访I/O), W R ‾ overline{WR} WR(低电平有效)为写命令, R D ‾ overline{RD} RD(低电平有效)为读命令。设计一个容量为64KB的采用低位交叉编址的8体并行结构存储器。现有右图所示的存储芯片及74138译码器。画出CPU和存储芯片(芯片容量自定)的连接图,并写出图中每个存储芯片的地址范围(用十六进制数表示)。

答: 8体低位交叉并行存储器的每个存储体容量为 64KB/8=8KB 因此,应选择8KB RAM芯片,芯片地址线13根(A0-A12),数据线8根(D0-D7), 用138译码器进行存储体的选择。设计如下:

4.24一个4体低位交叉的存储器,假设存取周期为 T,CPU每隔1/4存取周期启动一个存储体,试问依次访问64个字需多少个存取周期?

答: 本题中,只有访问第一个字需一个存取周期,从第二个字开始,每隔1/4存取周期即可访问一个字,因此,依次访问64个字需: 存取周期个数=(64-1)×(1/4)T+T=(63/4+1)T=15.75+1=16.75T

4.25 什么是程序访问的局部性?存储系统中哪一级采用了程序访问的局部性原理?

答: 所谓程序访问的局部性即程序执行时对存储器的访问是不均匀的,这是由于指令和数据在主存的地址分布不是随机的,而是相对地簇聚。 存储系统的Cache—主存级和主存—辅存级都用到程序访问的局部性原理。 对Cache—主存级而言,把CPU最近期执行的程序放在容量较小、速度较高的Cache中。 对主存—辅存级而言,把程序中访问频度高、比较活跃的部分放在主存中,这样既提高了访存的速度又扩大了存储器的容量。

4.26计算机中设置Cache的作用是什么?能不能把Cache的容量扩大,最后取代主存,为什么?

答: 计算机中设置 Cache 的作用是解决 CPU 和主存速度不匹配问题。 不能将 Cache 的容量扩大取代主存,原因是 (1)Cache 容量越大成本越高,难以满足人们追求低价格的要求; (2)如果取消主存,当 CPU 访问 Cache 失败时,需要将辅存的内容调入 Cache 再由 CPU 访问,造成 CPU 等待时间太长,损失更大。

4.27Cache制作在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处?

答: Cache 做在 CPU 芯片内主要有下面几个好处: (1)可提高外部总线的利用率。因为 Cache 在 CPU 芯片内,CPU 访问 Cache时不必占用外部总线。 (2)Cache 不占用外部总线就意味着外部总线可

网站地图