04计组课后习题:存储器

第4章 存储器

教材课后思考题与习题:

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

  • 主存:主存储器,用于存放正在执行的程序和数据。CPU可以直接进行随机读写,访问速度较高。
    • RAM:(Random Access Memory),随机存取存储器,是一种可读/写存储器,一般用于计算机的主存。
      • SRAM:(Static RAM),静态随机存储器
      • DRAM:(Dynamic RAM),动态随机存储器
    • ROM:(Read Only Memory),掩膜式半导体只读存储器
      • PROM:(Programmable ROM),可编程只读存储器
      • EPROM:(Erasable Programmable ROM),可擦写可编程只读存储器
      • EEPROM:(Electrically Erasable Programmable ROM),用电可擦除可编程只读存储器
  • 辅存:辅助存储器,作为主存的后备存储器,不直接与CPU交换信息,容量比主存大,速度比主存慢。
    • CDROM:只读型光盘
  • Cache:为解决主存和CPU的速度匹配,提高访存速度的一种存储器,设在CPU和主存之间,存放CPU近期要用的信息。
  • Flash Memory:闪速存储器。或称快擦型存储器

 

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

计算机中的寄存器、Cache、主存、硬盘可以用于存储信息,这个顺序:速度从高到低、容量从小到大、价格从高到低。

 

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

  • 存储器的层次结构主要体现在下面两个层次上:Cache—主存、主存—辅存。

  • ”Cache—主存“层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

  • ”主存—辅存“层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

  • 综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。

  • 主存与Cache之间的信息调度功能全部由硬件自动完成。而主存与辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部分通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

 

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

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

 

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

  • 存储器带宽:单位时间内存储器存取的信息量,单位用:字/秒 or 字节/秒 or 位/秒
  • 带宽计算:1/200ns ×32位  = 160M位/秒 = 20MB/秒 = 5M字/秒

 

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

  • 按“字”编址寻址范围:64KB /(32/8) = 16K
  • 按“字节”编址寻址范围:就是64K
  • 字地址与字节地址的分配情况如下图:

 

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

1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位

  • 地址线总数:log2(16×1024) = 14根
  • 数据线总数:32根
  • 1K×4位:16K×32) / (1K×4) = 16×8 = 128片;每组8片,共16组。每次读出一个存储字,只需选中一组芯片(8片)。
  • 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都属于随机存储器,即在程序的执行过程中既可读出信息又可写入信息。但静态RAM靠触发器原理存储信息,只要电源不掉电,信息就不会丢失;

  • 动态RAM靠电容存储电荷原理存储信息,即使电源不掉电,由于电容要放电,信息也会丢失,故需再生。

 

4.9 什么叫刷新?为什么要刷新?说明刷新有几种方法。

  • 动态RAM靠电容存储电荷原理存储信息,电容上的电荷要放电,信息即丢失。为了维持所存信息,需要再一定时间(2ms)内,将所存信息读出再重新写入(恢复),这一过程称为刷新,刷新是一行一行进行的,由CPU自动完成。
  • 刷新方式有三种:
    • 集中刷新:即在2ms时间内,集中一段时间对存储芯片的每行刷新一遍,在这段时间里不能对存储器进行访问,即所谓的死时间。
    • 分散刷新:是将存储系统周期分为两半,前半段时间用来读/写操作,后半段时间用来刷新操作,显然整个系统的速度降低了,但分散刷新没有存储器的死时间。
    • 异步刷新:为集中刷新和分散刷新的结合。这种刷新可在2ms时间内对存储芯片的每一行刷新一遍,两行之间的刷新时间间隔为 2ms/芯片的片数。

 

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位的存储芯片组成一个容量为64K×8位的存储器逻辑框图。要求将64K分成4个页面,每个页面分16组,指出共需多少片存储芯片。

  • 将存储器分成若干个容量相等的区域,每一个区域可看作一个页面。假设采用SRAM芯片:
    • 总片数:64K×8位 / (1024×4位)= 128片

  • 本题设计的存储器结构上,分为‘总体’、‘页面’、‘组’三级,因此画图时,也应分成三级画,首先应确定各级的容量:
    • 页面容量:64K×8位 / 4 = 16K×8位
    • 组容量:页面容量 / 组数 = 16K×8位 / 16 =  1K×8位
    • 组内片数:组容量 / 片容量 = 1K×8位 / (1K×4位) = 2片
  • 因此地址分配:页面号(2位)+组号(4位)+组内地址(10位)

  

 

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

  • 存储基元总数:64K×8位 = 64×2×10×8 = 512K位 = 2^19位。
  • 如果要满足地址线和数据线总和最小,应尽量把存储元安排在字向,因为地址位数和字数成2的幂关系,可较好的压缩线数。设地址线根数为a,数据线根数为b,则片容量为:(2^a)× b = 2^19位,b = 2^(19-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;

                   ……     ……

               由上可看出:芯片字数越少,芯片字长越长,引脚数越多。芯片字数减1、芯片位数均按2的幂变化。

               结论:如果满足地址线和数据线的总和为最小,这种芯片的引脚分配方案有两种:地址线 = 19根,数据线 = 1根;或地                 址线 = 18根,数据线 = 2根。

 

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

(1)该机所允许的最大主存空间是多少?

(2)若每个模块板为32K×8位,共需几个模块板?

(3)每个模块板内共有几片RAM芯片?

(4)共有多少片RAM?

(5)CPU如何选择各模块板?

  1. 该机所允许的最大主存空间是:2^18 × 8位 = 2^8 × 1K × 8位 = 256K × 8位 = 256KB
  2. 模板快总数:256K × 8位 / (32K ×8位)= 8块
  3. 板内片数:32K × 8位 / (4K×4位) = 16片
  4. 总片数:16片 × 8快 = 128片
  5. CPU通过最高3位地址译码输出选择模板,次高3位地址译码选择芯片。地址格式分配如下:

 

4.15 设CPU共有16根地址线,8根数据线,并用MREQ(低电平有效)作访存控制信号,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步,根据题目的地址范围写出相应的二进制地址码: 

CPU共16根地址线,8根数据线。最小4K(即 2^12)为系统程序区,则其地址的二进制码为:

0000 0000 0000 0000

... ...

0000 1111 1111 1111

CPU寻址时,以上地址范围是系统程序区,大小为:4KB。用户程序的二进制地址码范围为:

0001 0000 0000 0000

... ...

0011 1111 1111 1111

CPU寻址时,以上地址范围是用户程序区,大小为:12KB

 

  • 第2步,根据地址范围的容量以该范围在计算机系统中的作用,选择存储芯片

存储系统程序:2片  4K × 4 的ROM芯片,位扩展

存储用户程序:3片  4K × 8 的RAM芯片,字扩展

 

  • 第3步,分配CPU地址线

将CPU的低12位 A11 ~ A0 与 2片  4K × 4 的ROM芯片的地址线相连;

将CPU的低12位 A11 ~ A0与 3片  4K × 8 的RAM芯片的地址线相连;

剩下的高位地址与访存控制信号 MREQ共同产生存储芯片的片选信号。

 

  • 第4步,形成片选信号

由74138译码器输入逻辑关系可知,必须保证控制端G1为高电平,-G2A 与 -G2B 为低电平,才能使译码器正常工作。根据第1步写出的存储器地址范围得出,A15始终为低电平,而访存控制信号 MREQ 是低电平有效。因此将74138译码器的控制端 G1接 +5V, -G2A,-G2B分别接 A15和 -MREQ。

CPU的A14,A13,A12分别接在译码器的 C,B,A 端;使其输出 -Y0作为ROM的片选信号。输出-Y1,-Y2,-Y3分别作为串联的3片RAM的片选信号。

 

 

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

(1)用74138译码器画出CPU与存储芯片的连接图;

(2)写出每片RAM的地址范围;

(3)如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,分析故障原因。

(4)根据(1)的连接图,若出现地址线A13与CPU断线,并搭接到高电平上,将出现什么后果?

如果运行时发现不论往哪片RAM写入数据后,以A000H为起始地址的存储芯片都有与其相同的数据,则根本故障原因为:该存储芯片的片选输入端很有可能总是处于低电平。可能的情况有:

  • 该片的 -CS端 与 -WE端 连错或短路
  • 该片的 -CS端与 CPU的 -MREQ端 错连 或 短路
  • 该片的 -CS端与地线错连或短路,在此假设芯片与译码器本身都是好的。
  • 译码器故障等。

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

 

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

有效信息位均为n=4位,假设有效信息用b4b3b2b1表示

校验位位数 k=3位(2^k >= n+k+1

设校验位分别位c1、c2、c3,则汉明码共 4 + 3 = 7位,即c1c2b4c3b3b2b1

校验码在汉明码中分别处于第1、2、4位

c1=b4⊕b3⊕b1

c2=b4⊕b2⊕b1

c3=b3⊕b2⊕b1

当有效信息为1100时,c3c2c1=110,汉明码为0111100。

当有效信息为1101时,c3c2c1=001,汉明码为1010101。

当有效信息为1110时,c3c2c1=000,汉明码为0010110。

当有效信息为1111时,c3c2c1=111,汉明码为1111111。

 

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

假设接收到的汉明码为:c1’  c2’  b4’  c3’  b3’  b2’  b1’

纠错过程如下:

P1=c1’⊕b4’⊕b3’⊕b1’

P2=c2’⊕b4’⊕b2’⊕b1’

P3=c3’⊕b3’⊕b2’⊕b1’

如果收到的汉明码为1100100,则p3p2p1=011,说明代码有错,第3位(b4’)出错,有效信息为:1100

如果收到的汉明码为1100111,则p3p2p1=111,说明代码有错,第7位(b1’)出错,有效信息为:0110

如果收到的汉明码为1100000,则p3p2p1=110,说明代码有错,第6位(b2’)出错,有效信息为:0010

如果收到的汉明码为1100001,则p3p2p1=001,说明代码有错,第1位(c1’)出错,有效信息为:0001

 

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

(1)1100000(按偶性配置)

(2)1100010(按偶性配置)

(3)1101001(按偶性配置)

(4)0011001(按奇性配置)

(5)1000000(按奇性配置)

(6)1110001(按奇性配置)

(一)假设接收到的汉明码为C1’C2’B4’C3’B3’B2’B1’,按偶性配置则:

P1=C1’⊕B4’⊕B3’⊕B1’

P2=C2’⊕B4’⊕B2’⊕B1’

P3=C3’⊕B3’⊕B1’

1)如接收到的汉明码为1100000,

P1=1⊕0⊕0⊕0=1

P2=1⊕0⊕0⊕0=1

P3=0⊕0⊕0=0

P3P2P1=011,第3位出错,可纠正为1110000,故欲传送的信息为1000。

2)如接收到的汉明码为1100010,

P1=1⊕0⊕0⊕0=1

P2=1⊕0⊕1⊕0=0

P3=0⊕0⊕0=0

P3P2P1=001,第1位出错,可纠正为0100010,故欲传送的信息为0010。

3)如接收到的汉明码为1101001,

P1=1⊕0⊕0⊕1=0

P2=1⊕0⊕0⊕1=0

P3=1⊕0⊕1=0

P3P2P1=000,传送无错,故欲传送的信息为0001。

(二)假设接收到的汉明码为C1’C2’B4’C3’B3’B2’B1’,按奇性配置则:

P1=C1’⊕B4’⊕B3’⊕B1’⊕1

P2=C2’⊕B4’⊕B2’⊕B1’⊕1

P3=C3’⊕B3’⊕B1’⊕1

4)如接收到的汉明码为0011001,

P1=0⊕1⊕0⊕1⊕1=1

P2=0⊕1⊕0⊕1⊕1=1

P3=1⊕0⊕1⊕1=1

P3P2P1=111,第7位出错,可纠正为0011000,故欲传送的信息为1000。

5)如接收到的汉明码为1000000,

P1=1⊕0⊕0⊕0⊕1=0

P2=0⊕1⊕0⊕0⊕1=0

P3=0⊕0⊕0⊕1=1

P3P2P1=100,第4位出错,可纠正为1001000,故欲传送的信息为0000。

6)如接收到的汉明码为1110001,

P1=1⊕1⊕0⊕1⊕1=0

P2=1⊕1⊕0⊕1⊕1=0

P3=0⊕0⊕1⊕1=0

P3P2P1=000,传送无错,故欲传送的信息为1001。

 

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

欲传送的二进制代码为1001101,有效信息位数为n=7位,则汉明校验的校验位为k位,则:2^k >= n+k+1,k=4,进行奇校验设校验位为C1C2C3C4,汉明码为C1C2B7C3B6B5B4C4B3B2B1,

C1=1⊕B7⊕B6⊕B4⊕B3⊕B1=1⊕1⊕0⊕1⊕1⊕1=1

C2=1⊕B7⊕B5⊕B4⊕B2⊕B1=1⊕1⊕0⊕1⊕0⊕1=0

C3=1⊕B6⊕B5⊕B4=1⊕0⊕0⊕1=0

C4=1⊕B3⊕B2⊕B1=1⊕1⊕0⊕1=1

   故传送的汉明码为10100011101,若第6位(B5)出错,即接收的码字为10100111101,则

P1=1⊕C1’⊕B7’⊕B6’⊕B4’⊕B3’⊕B1’=1⊕1⊕1⊕0⊕1⊕1⊕1=0

P2=1⊕C2’⊕B7’⊕B5’⊕B4’⊕B2’⊕B1’=1⊕0⊕1⊕1⊕1⊕0⊕1=1

P3=1⊕C3’⊕B6’⊕B5’⊕B4’=1⊕0⊕0⊕1⊕1=1

P4=1⊕C4’⊕B3’⊕B2’⊕B1’=1⊕1⊕1⊕0⊕1=0

P4P3P2P1=0110说明第6位出错,对第6位取反即完成纠错。

 

4.21 为什么在汉明码纠错过程中,新的检测位P4P2P1的状态即指出了编码中错误的信息位?

答:汉明码属于分组奇偶校验,P4P2P1=000,说明接收方生成的校验位和收到的校验位相同,否则不同说明出错。由于分组时校验位只参加一组奇偶校验,有效信息参加至少两组奇偶校验,若果校验位出错,P4P2P1的某一位将为1,刚好对应位号4、2、1;若果有效信息出错,将引起P4P2P1中至少两位为1,如B1出错,将使P4P1均为1,P2=0,P4P2P1=101,

 

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

解:

机器字长为16位,说明CPU一次能处理的数据位数是16位,不过这和本题无关。

存储空间为64K字,如果是采用单个存储体,每个存取周期的时间内,该单个存储体能向CPU提供 1个存储字长(具体是几位题干未给出)的二进制代码。

现在,若想不改用高速存储芯片,而使访存速度提高到8倍,也就是希望在一个存取周期的时间内,向CPU提供8个存储字长的二进制代码,则可采取八体交叉存取技术,8体交叉访问的结构图 和 时序图:

由下图可知,每隔1/8 个存期周期就可在存储总线上获得一个数据。

 

4.23 设CPU共有16根地址线,8根数据线,并用 M/IO 作为访问存储器或I/O的控制信号(高电平为访存,低电平为访I/O),WR(低电平有效)为写命令,RD(低电平有效)为读命令。设计一个容量为64KB的采用低位交叉编址的8体并行结构存储器。现有下图所示的存储器芯片和138译码器。

                        

画出CPU和存储器芯片(芯片容量自定)的连接图,并写出图中每个存储芯片的地址范围(用十六进制数表示)。

解答:

8体低位交叉并行存储器的每个存储体的容量:64KB / 8 = 8KB,因此选择 8KB 的 RAM芯片。

8体存储器的低位交叉,地址编址范围如下图:

方案1:8体交叉编址的CPU和存储芯片的连接图:

注:此设计方案只能实现八体之间的低位交叉寻址,但并不能实现八体并行操作。

 

方案2:八体交叉并行存取系统体内逻辑如下图:

 

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

解答:

只有访问第1个字需要一个存取周期,从第2个字开始,每隔1 / 4存取周期即可访问一个字,因此,依次访问64个字需:

存取周期个数 = (64-1)× (1/4)T + T = 16.75T

与常规存储器的速度相比,加快了 (64 - 16.75)T = 47.25T

注:4体交叉存取虽然从理论上讲可讲存取速度提高到4倍,但实现时哟由于并行存取的分时启动需要一定的时间,故实际上只能提高到接近4倍。

 

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

解答:

程序运行的局部性原理指:

  • 在一小段时间内,最近被访问过的程序和数据很可能再次被访问;
  • 在空间上,这些被访问的程序和数据往往集中在一小片存储区;
  • 在访问顺序上,指令顺序执行比转移执行的可能性大(大约 5:1)。

存储系统中Cache - 主存 层次采用了程序访问的局部性原理。

 

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

解答:

计算机中设置Cache主要是为了加速CPU访存速度。

不能把Cache的容量扩大到最后取代主存,主要因为Cache和主存的结构原理以及访问机制不同(主存是按地址访问,Cache是按内容及地址访问)。

 

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

Cache做在CPU芯片内主要有下面几个好处:

  • 可提高外部总线的利用率。因为Cache在CPU芯片内,CPU访问Cache时不必占用外部总线;
  • Cache不占用外部总线就意味着外部总线可更多地支持 I/O 设备与主存地信息传输,增强了系统地整体效率;
  • 可提高存取速度。因为Cache 与 CPU 之间地数据通路大大缩短,故存取速度得以提高。

将指令Cache和数据Cache分开有如下好处:

  • 可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作地完成;
  • 指令Cache可用ROM实现,以提高指令存取地可靠性;
  • 数据Cache对不同数据类型的支持更为灵活,即可支持整数(例32位),也可支持浮点数据(如64位)。

 

4.28 设主存容量为256K字,Cache容量为2K字,块长为4。

(1)设计Cache地址格式,Cache中可装入多少块数据?

(2)在直接映射方式下,设计主存地址格式。

(3)在四路组相联映射方式下,设计主存地址格式。

(4)在全相联映射方式下,设计主存地址格式。

(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。

解答:

  1. Cache中可装入块数:2K字 / 4字 = 2×2^10 / 4 = 2^9 = 512块,因此缓存块的地址需要9位。每一块4个字,且访存地址为字地址,因此块内地址为2位。
  2. 主存容量为 256K字 = 2^18字。因此主存地址共18位。直接映射方式下,由于Cache中共有512块,因此主存中需要分区成512个区,512个区 ×(每个区 y个字块)×4字 = 256K 字 =  2^18字。得 y = 2^7,即每个区域需要2^7个字块。因此直接映射方式下主存地址格式为:
    主存字块标记(7位)缓存块地址(9位)字块内地址(2位) 
    缓存块地址:可以找到主存块中的哪一个区域;主存字块标记:可以找到主存某个区域下的哪一块;字块内地址:可以找到某个块的某个块的哪一个字
  3. 四路组相连映射时,对Cache进行分组,每个组中共有4个块,因此可以讲Cache分成512 / 4 = 2^7 组,因此Cache组地址需要7位。四路组相连下地址格式为:
    主存字块标记(9位)组地址(7位)字块内地址(2位) 
    映射的时候,也需要将主存分为2^7个区域,每个区域则需要有2^9个块,每个块有4个字。映射规则:主存每个区域的第 i 块,都可以映射到Cache的第 i 组中去。
  4. 全相连映射下,主存地址格式为:主存字块标记(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位)

 

4.29 假设CPU执行某段程序时共访问Cache命中4800次,访问主存200次,已知Cache的存取周期为30ns,主存的存取周期为150ns,求Cache的命中率以及Cache-主存系统的平均访问时间和效率,试问该系统的性能提高了多少倍?

解答:

命中率 H = 4800 / (4800 + 200) = 0.96

Cache - 主存 的平均访问时间 ta = 0.96 × 30ns + (1 - 0.96)× 150ns = 34.8ns

访问效率 e = tc / ta × 100% = 86.2%

性能为原来的 150ns / 34.8ns = 4.31倍,即提高了 3.31倍。

 

4.30 一个组相连映射的CACHE由64块组成,每组内包含4块。主存包含4096块,每块由128字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。

解:cache组数:64/4=16 ,Cache容量为:64*128=213字,cache地址13位

主存共分4096/16=256区,每区16块

主存容量为:4096*128=219字,主存地址19位,地址格式如下:

主存字块标记(8位)

组地址(4位)

字块内地址(7位)

 

4.31 设主存容量为1MB,采用直接映射方式的Cache容量为16KB,块长为4,每字32位。试问主存地址为ABCDEH的存储单元在Cache中的什么位置?

解:主存和Cache按字节编址,

Cache容量16KB=214B,地址共格式为14位,分为16KB/(4*32/8B)=210块,每块4*32/8=16B=24B,Cache地址格式为:

Cache字块地址(10位)

字块内地址(4位)

主存容量1MB=220B,地址共格式为20位,分为1MB/(4*32/8B)=216块,每块24B,采用直接映射方式,主存字块标记为20-14=6位,主存地址格式为:

主存字块标记(6位)

Cache字块地址(10位)

字块内地址(4位)

主存地址为ABCDEH=1010 1011 1100 1101 1110B,主存字块标记为101010,Cache字块地址为11 1100 1101,字块内地址为1110,故该主存单元应映射到Cache的101010块的第1110字节,即第42块第14字节位置。或者在Cache的第11 1100 1101 1110=3CDEH字节位置。

 

4.32 设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即Cache每组内共有4个字块)的Cache组织。

(1)画出主存地址字段中各段的位数。

(2)设Cache的初态为空,CPU依次从主存第0,1,2,…,89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?

(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍?

解:

(1)根据每字块有8个字,每字32位(4字节),得出主存地址字段中字块内地址为3+2=5位。

         根据Cache容量为16KB=214B,字块大小为8*32/8=32=25B,得Cache地址共14位,Cache共有214-5=29块。

         根据四路组相联映射,Cache共分为29/22=27组。

         根据主存容量为4MB=222B,得主存地址共22位,主存字块标记为22-7-5=10位,故主存地址格式为:

主存字块标记(10位)

组地址(7位)

字块内地址(5位)

(2)由于每个字块中有8个字,而且初态为空,因此CPU读第0号单元时,未命中,必须访问主存,同时将该字所在的主存块调入Cache第0组中的任一块内,接着CPU读第1~7号单元时均命中。同理,CPU读第8,16,…,88号时均未命中。可见,CPU在连续读90个字中共有12次未命中,而后8次循环读90个字全部命中,命中率为:(90*8 - 12)/(90*8) = 0.984

 

(3)设Cache的周期为t,则主存周期为6t,没有Cache的访问时间为6t*90*8,有Cache的访问时间为t(90*8-12)+6t*12,则有Cache和无Cache相比,速度提高的倍数为:(6t*90*8)/ { (90 * 8 - 12)t + 6t * 12 }  - 1 = 5.54

 

4.33 简要说明提高访存速度可采取的措施。

解答:提高访存速度可采取三种措施:

(1)采用高速器件。即采用存储周期短的芯片,可提高访存速度。

(2)采用Cache。CPU最近要使用的信息先调入Cache,而Cache的速度比主存快得多,这样CPU每次只需从Cache中读写信息,从而缩短访存时间,提高访存速度。

(3)调整主存结构。如采用单体多字或采用多体结构存储器。

 

4.34 反映主存和外存的速度指标有何不同?

由于主存采用RAM,所以其主要速度指标 存期周期对所有存储单元来说是个常数,寻址时间很短且不受单元物理位置影响。另外,主存的存期周期、存取时间、带宽等几个常用速度指标之间是相关的。

外存主要采用DAM 或 SAM,其寻址时间较长,且信息所存物理位置绝对有关,因此外存的速度通常受寻址时间和数据传输时间两个因素决定,需要用平均寻址时间和数据传输率两个指标来共同描述。

而平均寻址时间和数据传输率分别描述了外存的两个性质完全不同、时间段完全不同的操作,这两个指标之间没有多少相关性。

 

38. 磁盘组有6片磁盘,最外两侧盘面可以记录,存储区域内径22cm,外径33cm,道密度为40道/cm,内层密度为400位/cm,转速3600转/分,问:

(1)共有多少存储面可用?

(2)共有多少柱面?

(3)盘组总存储容量是多少?

(4)数据传输率是多少?

 

 

39. 某磁盘存储器转速为3000转/分,共有4个记录盘面,每毫米5道,每道记录信息12 288字节,最小磁道直径为230mm,共有275道,求:

(1)磁盘存储器的存储容量。

(2)最高位密度(最小磁道的位密度)和最低位密度。

(3)磁盘数据传输率。

(4)平均等待时间。

 

 

  • 93
    点赞
  • 614
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
单片微型计算机(Single-Chip Microcomputer),简称单片机。就是将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)和其他多种功能器件集成在一块芯片上的微型计算机。 单片机的主要特点有:(1)可靠性高(2)便于扩展(3)控制功能强(4)低电压、低功耗(5)片内存储容量较小,除此之外,单片机还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点 0.2 当前单片机的主要产品有:Intel的8051系列、Motorola的M68HC系列、Philips(飞利浦)的80C51系列、台湾义隆公司(EMC)EM78系列单片机、美国Microchip公司的PIC单片机系列、Atmel公司的AT90系列单片机Ubicom公司的Scenix单片机、日本爱普生科技公司的Epson单片机、Zilog公司的Z86系列、美国国家半导体公司NSCOP8单片机、台湾Winbond(华邦)的W78系列等。 MCS-51为主流产品。 MSP430的功能较强。是一种特低功耗的Flash微控制器。主要用于三表及超低功耗场合。 EM78系列单片机采用高速CMOS工艺制造,低功耗设计为低功耗产品,价格较低。具有三个中断源、R-OPTION功能、I/O唤醒功能、多功能I/O口等。具有优越的数据处理性能,采用RISC结构设计。 Microship单片机是市场份额增长较快的单片机。它的主要产品是PIC系列8单片机。CPU采用RISC结构,运行速度快,价格低适于用量大、档次低、价格敏感的产品。 Motorola是世界上最大的单片机生产厂家之一,品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。 AVR是增强RISC内载Flash的单片机,单片机内部32个寄存器全部与ALU直接连接,突破瓶颈限制,每1MHz可实现1MIPS的处理能力,为高速、低功耗产品。端口有较强的负载能力,可以直接驱动LED。支持ISP、IAP,I/O口驱动
第一章 操作系统概论 1. 什么是操作系统?请说明操作系统在计算机系统中的作用和地。 操作系统是计算机系统中的一个系统软件, 它是这样一些程序模块的集合: 它们能够有 效地组织和管理计算机中的硬件和软件资源, 合理地控制计算机工作流程, 控制程序的执行, 并向用户提供各种服务功能,使用户能够灵活、方便、有效地使用计算机, 并使整个计算机 系统能高效地运行。 2. 操作系统管理计算机系统的哪些资源? 硬件和软件资源。 3. 请从资源管理角度说明操作系统的主要功能。 进程管理(处理器管理)、存储管理、文件管理、作业管理、设备管理 4. 操作系统有哪些基本特征? 并发性:计算机系统中同时存在若干个正在运行着的程序; 共享性:操作系统程序和多个用户程序共享系统中的各种资源 随机性:操作系统的运行是在一种随机的环境下进行的 5. 比较 Windows 、 UNIX、 Linux 操作系统的体系结构,有什么异同? Windows 体系结构是分成的模块系统, 主要层次有硬件抽象层 HAL、 内核、 执行体和大 量的子系统集合; UNIX 操作系统的系统架构图,其最里层是硬件,作为整个系统的基础;其次是操作系 统内核,包括进程管理、 存储器管理、设备管理和文件管理四个资源管理功能;往外一层是 系统调用接口,及操作系统与用户的接口 shell 以及编译程序等;最外层是应用程序 Linux 系统有四个主要部分,及内核、 shell、文件系统和用户程序。 6. Android 操作系统有什么特点? Android 操作系统分为四层,从高层到低层分别是应用程序层、应用框架层、系统运行 库层和 Linux 内核层。 以 Linux 为核心的手机操作平台,是一款开放式操作系统 7. 手机操作系统通常提供哪些功能?
### 回答1: 数字系统设计与Verilog HDL课后习题主要是通过解答一系列与数字系统设计和Verilog HDL相关的问题,来巩固和加深对该课程的理解和掌握。以下是对该类习题的回答。 数字系统设计是一门研究数字信号处理和计算机硬件体系结构的学科,而Verilog HDL是一种硬件描述语言,用于描述和模拟数字电子电路。课后习题对于学生们来说是巩固知识、提高理解的重要环节。这些习题可能涉及到多种主题,包括逻辑门、组合逻辑电路、时序逻辑电路、状态机以及存储器等。 为了解答这些习题,我们需要首先深入理解相关的概念和原理。然后,我们可以利用Verilog HDL来完成相应的电路设计、仿真和验证。在设计过程中,需要用到逻辑门、模块和端口的定义、数据类型的声明和赋值、时序的控制和状态的转换等。通过编写Verilog代码并进行仿真和验证,可以验证电路的功能和性能。 完成习题后,我们应该进行详细的检查和讨论,确保我们的解答正确,并且能够清楚地解释我们的思路和过程。如果有错误或不确定的地方,我们可以寻求教师或同学们的帮助。 总的来说,数字系统设计与Verilog HDL课后习题一个重要的学习环节,通过解答这些习题,我们可以加深对数字系统设计和Verilog HDL的理解和应用,并且提高自己的设计和解决问题的能力。通过不断的练习和实践,我们可以逐渐掌握这门学科的核心知识和技能。 ### 回答2: 数字系统设计是一门涉及到电子数字系统的设计与实现的课程,而Verilog HDL则是一种硬件描述语言,广泛应用于数字系统设计中。在学习数字系统设计与Verilog HDL课程后,我们需要进行一些习题来巩固所学的知识。 这些课后习题通常包括以下内容: 1. 门电路设计:设计各种逻辑门电路,如与门、或门、非门等,可以通过Verilog HDL编写代码,完成门电路的设计实现,并通过仿真验证其功能正确性。 2. 组合逻辑电路设计:设计复杂的组合逻辑电路,如加法器、多路选择器、镜像电路等。同样使用Verilog HDL编写代码,并通过仿真验证其正确性。 3. 时序逻辑电路设计:设计时序逻辑电路,如触发器、计数器、状态机等。通过学习时序逻辑电路的设计原理和方法,我们可以通过编写Verilog HDL代码来实现这些电路,并通过仿真验证其正确性。 4. FPGA设计:了解FPGA(现场可编程门阵列)的基本工作原理和使用方法,通过Verilog HDL编写代码,将设计好的数字电路实现在FPGA芯片上,通过实际验证其正确性。 5. RTL综合和时序约束:学习如何使用RTL(寄存器传输级)综合工具将Verilog代码综合为逻辑门级的网表,以及如何设置时序约束以确保设计的性能和正确性。 通过完成这些习题,我们能够更加熟练地掌握数字系统设计和Verilog HDL的基本原理和应用技巧,提高我们的设计和仿真能力,为我们在实际工程中设计与实现数字系统打下坚实的基础。 ### 回答3: 数字系统设计与Verilog HDL是一门涉及硬件描述语言Verilog及数字系统设计的课程。以下是这门课后习题的回答: 1. Verilog是一种硬件描述语言,用于设计和描述数字系统。它是一种用于建模和模拟电子系统的语言,可用于设计电路和电子系统,并在FPGA等可编程逻辑器件上实现。 2. 了解数字系统设计原理对于使用Verilog进行硬件描述至关重要。在数字系统设计中,我们需要考虑到时钟、寄存器、组合逻辑等元件的设计与实现。 3. Verilog HDL语言分为结构化和行为化两种描述方式。结构化描述方法将电路看作是由各种逻辑门和触发器构成的组合,行为化描述方法则注重电路的功能行为,以逻辑表达式和时序关系描述。 4. 在Verilog HDL中,可以使用模块实例化的方式实现复杂电路组合。模块可以嵌套实例化,并通过端口连接进行通信。模块之间的通信是通过信号(wire)或寄存器(reg)进行的。 5. 在数字系统设计中,时序逻辑是一种基本的设计模块。时序逻辑使用触发器(flip-flop)或寄存器来存储和传输数据,这使得系统能够跟踪时间和状态。 6. 使用Verilog HDL进行数字系统设计时,需要注意时序逻辑电路中的时序延迟问题。时序延迟可能导致信号到达目标电路的时间差,对系统性能产生影响,因此需要合理设计电路以满足时序约束。 7. Verilog HDL具有高度的可重用性和可扩展性。通过模块化设计,我们可以将复杂电路划分为多个子模块,并通过端口通信,提高代码的可维护性和可复用性。 总而言之,数字系统设计与Verilog HDL课后习题涉及到了数字系统设计原理、Verilog HDL语言及其应用、模块化设计和时序约束等内容。通过完成这些习题,我们可以进一步掌握数字系统设计和Verilog HDL语言的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值