(8)存储系统的刷新地址提供给所有DRAM芯片。
(9)FPM DRAM芯片中的快页读写方式就是猝发传送方式。 (10)ROM芯片的烧写或擦写就是指对ROM芯片的编程。 〔解答〕
① 错 ⑥ 错
② 对 ⑦ 错
③ 对 ⑧ 对
④ 对 ⑨ 错
⑩ 对
〔习题6.3〕填空题
(1)计算机存储容量的基本单位:1 B(Byte)=__________b(bits),1KB=__________B,1MB=__________KB,1GB=__________MB,1TB=__________GB=__________B。
(2)80486片上Cache的容量是__________,采用__________路组合地址映射。
(3)在半导体存储器中,RAM指的是__________,它可读可写,但断电后信息一般会__________;而ROM指的是__________,正常工作时只能从中__________信息,但断电后信息__________。
(4)存储结构为8K×8位的EPROM芯片2764,共有__________个数据引脚、__________个地址引脚。用它组成64KB的ROM存储区共需__________片芯片。
(5)对一个存储器芯片进行片选译码时,有一个高位系统地址信号没有参加译码,则该芯片的每个存储单元占有__________个存储器地址。
(6)半导体__________芯片顶部开有一个圆形石英窗口。U盘、MP3播放器、数码相机、多媒体手机等设备一般采用半导体__________芯片构成存储器。
(7)在8088处理器系统中,假设地址总线A19~A15输出01011时译码电路产生一个有效的片选信号。这个片选信号将占有主存从__________到__________的物理地址范围,共有__________容量。
(8)8086和80286使用16位数据总线,主存分成偶数地址和奇数地址两个存储体。80386和80486处理器使用__________位数据总线,利用4个字节允许信号区别__________个存储体。Pentium及以后的IA-32处理器使用__________位数据总线,主存由__________个存储体组成。
(9)高速缓冲存储器的地映址射有____________、____________和____________方式。Pentium的L1 Cache采用____________映射方式。
(10)已知IA-32处理器某个段描述符为0000B98200002000H,则该段基地址=__________,段界限=__________。
〔解答〕
① 8,1024,1024,1024,1024,240 ② 8KB,4
③ 随机存取存储器,丢失,只读存储器,读取,不会丢失 ④ 8,13,8 ⑤ 2
⑥(UV-)EPROM,Flash Memory ⑦ 58000H,5FFFFH,32KB ⑧ 32,4,64,8
⑨ 直接映射,组合相关映射,全相关映射,2路组合相关映射 ⑩ 00820000H,02000H
〔习题6.4〕举例说明存储访问的局部性原理。
〔解答〕
处理器访问存储器时,无论是读取指令还是存取数据,所访问的存储单元在一段时间内都趋向于一个较小的连续区域中,这就是存储访问的局部性原理。
例如,求平均值的函数。 long mean(long d[], long num) {
long i,temp=0;
for(i=0; i - -45 return (temp); } 函数中的变量temp体现了时间局部,因为每次循环都要使用它。顺序访问数组d[]的各个元素(相邻存放在主存),体现了空间局部。循环体内的指令顺序存放,依次读取执行体现了空间局部;同时重复执行循环体,又体现了时间局部。 〔习题6.5〕简述存储系统的层次结构及各层存储部件特点。 〔解答〕 为解决容量、速度和价格的矛盾,存储系统采用金字塔型层次结构,单位价格和速度自上而下逐层减少,容量自上而下逐层增加。 存储系统的各层存储部件自上而下依次是:CPU寄存器、高速缓存、主存存储器(RAM/ROM),辅助存储器如磁盘、光盘等。CPU寄存器、高速缓存器集成在CPU芯片上,对用户来说,是透明的,它们用于暂存主存和处理器交互的数据,以减少频繁读取主存而影响处理器速度;主存储器则可和处理器直接交换数据,而辅助存储器必须经过主存存储器,才可与处理器进行数据交换。 〔习题6.6〕在半导体存储器件中,什么是SRAM、DRAM和NVRAM? 〔解答〕 SRAM是静态读写存储器芯片,它以触发器为基本存储单元,以其两种稳定状态表示逻辑0和逻辑1。 DRAM是动态读写存储器芯片,它以单个MOS管为基本存储单元,以极间电容充放电表示两种逻辑状态,需要不断刷新保持信息正确。 NVRAM多指带有后备电池的SRAM芯片,这种芯片采用CMOS制造工艺设计以减少用电。 〔习题6.7〕SRAM芯片的片选信号有什么用途?对应读写控制的信号是什么? 〔解答〕 片选信号CS:片选有效时,才可以对该芯片进行读/写操作;无效时,数据引脚呈现高阻状态、与系统数据总线隔离,并可降低内部功耗。 读控制信号OE:在芯片被选中的前提下,若OE有效,则芯片将允许地址信号选择的存储单元内的数据输出到数据引脚上。 写控制信号WE:在芯片被选中的前提下,若WE有效,则芯片将数据引脚上的数据写入地址信号选择的存储单元内。 〔习题6.8〕DRAM为什么要刷新,存储系统如何进行刷新? 〔解答〕 DRAM以单个MOS管为基本存储单元,以极间电容充放电表示两种逻辑状态。由于极间电容的容量很小,充电电荷自然泄漏会很快导致信息丢失,所以要不断对它进行刷新操作、即读取原内容、放大再写入。 存储系统的刷新控制电路提供刷新行地址,将存储DRAM芯片中的某一行选中刷新。实际上,刷新控制电路是将刷新行地址同时送达存储系统中所有DRAM芯片,所有DRAM芯片都在同时进行一行的刷新操作。 刷新控制电路设置每次行地址增量,并在一定时间间隔内启动一次刷新操作,就能够保证所有DRAM芯片的所有存储单元得到及时刷新。 〔习题6.9〕什么是掩摸ROM、OTP-ROM、EPROM、EEPROM和Flash ROM? 〔解答〕 掩膜ROM:通过掩膜工艺、将要保存的信息直接制作在芯片当中,以后再也不能更改。 - -46 OTP-ROM:该类芯片出厂时存储的信息为全“1”,允许用户进行一次性编程,此后便不能更改。 EPROM:一般指可用紫外光擦除、并可重复编程的ROM。 EEPROM:也常表达为E2PROM,其擦除和编程(即擦写)通过加电的方法来进行,可实现“在线编程”和“在应用编程” Flash ROM:是一种新型的电擦除可编程ROM芯片,能够很快擦除整个芯片内容。 〔习题6.10〕请给出教材图6-7中138译码器的所有译码输出引脚对应的地址范围。 〔解答〕 Y0~Y7的地址范围依次是: E0000H~E3FFFH,E4000H~E7FFFH,E8000H~EBFFFH,EC000H~EFFFFH,F0000H~F3FFFH,F4000H~F7FFFH,F8000H~FBFFFH,FC000H~FFFFFH。 〔习题6.11〕什么是存储器芯片的全译码和部分译码?各有什么特点? 〔解答〕 全译码:使用全部系统地址总线进行译码。特点是地址唯一,一个存储单元只对应一个存储器地址(反之亦然),组成的存储系统其地址空间连续。 部分译码:只使用部分系统地址总线进行译码。其特点:有一个没有被使用的地址信号就有两种编码,这两个编码指向同一个存储单元,出现地址重复。 〔习题6.12〕区别如下各个主存名称的含义:常规主存,扩展主存,扩充主存;上位主存区UMA和上位主存块UMB,高端主存区HMA,影子主存。 〔解答〕 常规主存:8088和8086提供20个地址线A19~A0,寻址1MB的存贮空间,其中,最低640KB的系统RAM区被称为常规主存或基本主存。 扩展主存:IA-32处理器在1MB之后的主存空间都作为RAM区域使用,被称为扩展主存。 扩充主存:处理器不可以直接访问,利用“体交换技术”实现处理器访问。 上位主存区UMA:在常规主存其后384KB(A0000H~FFFFFH)主存称为上位主存区UMA。 上位主存块UMB:上位主存区UMA没有被使用部分,被开辟为上位主存块UMB。 高端主存区HMA:在实方式下,通过控制A20开放,程序可以访问的1MB之后的64KB区域。 影子主存:PC机启动后可以将ROM-BIOS映射到RAM中,这部分用作ROM-BIOS、并被操作系统设置为只读的RAM区域。 〔习题6.13〕开机后,微机系统常需要检测主存储器是否正常。例如,可以先向所有存储单元写入数据55H(或00H)、然后读出看是否还是55H(或00H);接着再向所有存储单元写入数据AAH(或FFH)、然后读出看是否还是AAH(或FFH)。利用两个二进制各位互反的“花样”数据的反复写入、读出和比较就能够识别出有故障的存储单元。利用获得的有故障存储单元所在的物理地址,如果能够分析出该存储单元所在的存储器芯片,就可以实现芯片级的维修。试利用汇编语言编写一个检测常规主存最高64KB(逻辑地址从9000H∶0000H到9000H∶FFFFH)的程序,如果发现错误请显示其逻辑地址。 〔解答〕 again: ; 代码段 mov ax,9000h mov ds,ax mov ah,55h push ax mov bx,0 mov al,ah ; 先用55H - -47 again1: again2: next2: done: 〔习题6.14〕什么是LRU替换算法?80486片内Cache中,如果3个替换算法位B2B1B0=010,则将替换哪个Cache行,并给出你的判断过程。 〔解答〕 LRU算法是近期最少使用、即选择最长时间未被使用的数据块进行替换的算法。 B0=0,说明最近访问了L2/L3行,所以应该替换L0或L1行。B1=1,说明最近访问了L0行,所以应该替换L1。因为LRU算法是选择最长时间未被访问的Cache行进行替换。 〔习题6.15〕高速缓冲存储器Cache的写入策略是解决什么问题的?有哪两种写入策略,各自的写入策略是怎样的? 〔解答〕 写入策略用于在写命中时Cache与主存内容保持一致。 直写式写入策略指处理器对Cache写入的同时,将数据也写入到主存,这样来保证主存和Cache内容一致。它简单可靠。 回写Cache只有在行替换时才可能写入主存,写入主存的次数,会少于处理器实际执行的写入操作数。回写Cache的性能要高于直写Cache,但实现结构略为复杂。 〔习题6.16〕80486片上8KB Cache的标签存储器为什么只需要21位? 〔解答〕 80486片上Cache共有8KB容量,采用4路组合地址映射方式。对于4GB容量的主存来说,以Cache路为单位,可以分成4GB÷2KB=232÷211=221个Cache路。这样每个Cache行只要设计一个21位的标签存储器,记录该Cache行映射到哪个主存的Cache路。再结合直接映射的组号就可以明确该Cache行对应哪个主存块。 mov [bx],al dec bx jnz again1 mov al,[bx] cmp al,ah jz next2 dispcrlf push ax mov ax,ds call disphw mov al,':' call dispc mov ax,bx call disphw pop ax dec bx jnz again2 pop ax cmp ah,0aah jz done mov ah,0aah jmp again ; 写入 ; 读出 ; 检测 ; 显示段地址 ; 显示偏移地址 ; 后用0AAH - -48