同步传输——该方式以稳定的速率发送和接收信息,保证数据的连续和及时,用于数据传输正确性要求不高而对实时性要求高的外设,例如麦克风、喇叭、电话等。
第6章 存储系统
〔习题6.1〕简答题
〔解答〕
① 因为各种存储器件在容量、速度和价格方面存在矛盾。速度快,则单位价格高;容量大,单位价格低,但存取速度慢。故存储系统不能采用一种存储器件。
② Cache中复制着主存的部分内容。当处理器试图读取主存的某个字时,Cache控制器首先检查Cache中是否已包含有这个字。若有,则处理器直接读取Cache,这种情况称为高速命中;若无,则称为高速缺失。
③ 标签存储器保存着该数据所在主存的地址信息。
④ 主存块与Cache行之间的对应关系称“地址映射”, Cache通过地址映射确定一个主存块应放到哪个Cache行组中。
⑤ 写入策略用于解决写入Cache时引起主存和Cache内容不一致性的问题。
⑥ 存取时间是指从读/写命令发出,到数据传输操作完成所经历的时间;存取周期表示两次存储器访问所允许的最小时间间隔。存取周期大于等于存取时间。
⑦ 虚拟存储器是由操作系统利用辅助存储器、以磁盘文件形式建立的、在主存储器与辅助存储器之间的一个存储器。
⑧ DRAM芯片容量大、芯片小,高集成度,引脚数量少。故DRAM芯片将地址引脚分时复用,即用一组地址引脚传送两批地址。第一批地址称行地址,第二批地址称列地址。
⑨ 译码电路中只有部分地址线参与译码会造成地址重复,也就是一个存储单元占有多个存储器地址。 ⑩页表项的P位称为存在位(Present),表示该页面是否在物理存储器中。 〔习题6.2〕判断题 〔解答〕
① 错 ⑥ 错
② 对 ⑦ 错
③ 对 ⑧ 对
④ 对 ⑨ 错
⑤ 对 ⑩ 对
〔习题6.3〕填空题
〔解答〕
① 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;
- -37
for(i=0; i 函数中的变量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:通过掩膜工艺、将要保存的信息直接制作在芯片当中,以后再也不能更改。 - -38 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: again1: ; 代码段 mov ax,9000h mov ds,ax mov ah,55h push ax mov bx,0 mov al,ah mov [bx],al dec bx ; 写入 ; 先用55H - -39 again2: next2: done: 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 ; 显示偏移地址 ; 显示段地址 ; 读出 ; 检测 〔习题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行对应哪个主存块。 〔习题6.17〕 高速缓存的写入操作有几个很近似的英文词汇,它们分别表示什么含义? (1)Write Through (2)Write Back (3)Write Around (4)Fetch on Write - -40