赞
踩
地址线:和CPU要访问的主存容量有关。
数据线:和计算机的字长有关。
片选信号:用于选择SRAM芯片,使其进入工作状态,同时禁用其他不需要工作的芯片,以节省系统资源。
MOS存储器:金属氧化物半导体存储器。分为:静态MOS存储器(SRAM),动态MOS存储器(DRAM)。
SRAM(静态MOS存储器):采用6管MOS存储单元,信息的保持需要通过不断地提供电流,电源不断,存储元的状态就不变,读取数据也不会破坏原有的状态。速度比DRAM更快,用于制成cache。
随机存储器RAM(Random Access Memory):可以按照地址随机读写数据存储单元,且存取访问时间与存储单元位置无关。断电后信息会丢失。
只读存储器ROM(Read Only Memory):存储器内的内容不允许修改,只能读其中内容。断电后信息不会丢失。
高速缓冲存储器(cache):是隐藏在寄存器和主存之间的一个高速小容量寄存器。一般采用静态RAM构成。
主存储器:简称主存,一般由半导体存储器构成,但主存不是单一的内存,还包括BIOS和硬件端口。
上图可以看到,高速缓存的速度仅次于寄存器,且是用SRAM制成,主存由DRAM制成,断电后数据会丢失。
字扩展:容量扩展或地址总线扩展,存储芯片的存储容量不能满足存储器对存储容量的要求时,采用字扩展。
课本p121 例4.1 :设计算机字长为64位,存储器容量为128MB,采用模数位8的存储器交叉方式进行组织,存储周期T=200ns,数据总线位宽为64位,总线传输周期t=25ns,若连续读8个字,分别计算顺序访问方式和交叉访问方式下存储器的带宽。
多体交叉存储器:由多个存储模块构成,这些模块的容量和存取速度相同(因为模块的结构是相同的)。
高位多体交叉:高位地址译码产生片选信号(如下图A20~0代表地址线,A20~18是高3位,传入3:8译码器产生片选信号CS,用于选择哪一块存储模块),低位地址直接选择一个存储模块内的不同存储单元(如图A17~0是低18位,因为每个存储模块都是256KB=2^18B,所以低位用于选择存储单元)。
高位多体交叉是顺序编址模式,这一点一定要牢记。相邻的地址在同一存储体内,不同存储体中的地址不相邻。
低位交叉方式:低位地址译码进行片选,高位地址选择存储模块内的不同存储单元(与上面的图恰好相反),这种编址方式被称为交叉编址模式。相邻的地址处在不同的存储器内,同一存储体中的地址不相邻。如下图所示:
直接相联映射:每一个主存块地址只能映射到cache中固定的行。
区比行大,一个区通常包含大量的行。内存中数据块的大小和cache中数据块的大小是相同的。
注意cache行的第二部分不是行索引,而是区地址。
每个缓存行只能映射到主存地址的唯一一个位置。主存地址如果index相同,但tag不同,那么会产生冲突,因为index代表了cache的行,tag代表了主存的区,如果cache行相同,而tag对应的区不同,不符合cache中每个缓存行只能映射到主存地址的唯一位置。
(假如数据的地址为444,每块64B,块号=地址/每块大小=444/64约等于6.多,所以在主存中的块号为6)
主存地址长度的计算:看主存的容量(如:4MB=2^22B,主存地址长22位)。
块内偏移地址长度的计算:cache每个块的容量(如:cache块长度8个字,每个字32位,那么cache长度为8x4B=32B=2^5B,所以偏移长度5位)。
区内行地址长度的计算:cache总容量/cache每个块的容量=cache内的行数(如:cache容量4MB,cache每个块32B,2^12/2^5=2^7,所以长度为7)。
cache命中率(h)计算:Nc是命中cache的次数,Nm是从主存中访问信息的次数:
cache/主存系统的平均访问时间(ta):h是cache的命中率,tc是cache存取数据的时间,tm是主存存取数据的时间。
存储系统的访问效率:tc表示命中cache时访问的时间,ta表示cache/主存系统的平均访问时间。
组相联映射:组相联映射将cache分成固定大小的组,每组有k行,称为k-路组相联。主存数据块首先采用直接相联映射的方式定位到cache中固定的组,然后采用全相联映射的方式映射到组内任何一个cache行,组相联映射规则如下:
本次考试整体难度较高:
简答题1:第5章指令系统——指令格式
简答题2:第2章数据信息的表示——校验
简答题3:第4章存储系统——DRAM存储器
简答题4:第4章存储系统——cache
简答题5:第9章输入输出系统——程序中断控制方式
综合题1:第3章运算方法与运算器——定点乘法运算、运算器
综合题2:第4章存储系统——cache
综合题3:第6章中央处理器——cpu
综合题4:第6章中央处理器——MIPS处理器
大家可以按照这个重点复习:第4章出现:3次,第6章出现:2次,第5章出现1次,第3章出现1次,第2章出现1次,第9章出现1次。
题1:C。解答:指令中可以只给出待访问数据的地址,然后通过地址访问数据。
题2:B。解答:CPI是每条指令要花费的时钟周期数。假设指令总数为M,时钟周期数为T。。
现在指令数减少40%(相当于原本60%)CPI增加20%(相当于原本120%)。变成下面公式:所以T相当于原本的0.72,是7秒2。
题3:D。解答:254 的二进制表示为:11111110。接下来将 uc 的值赋给一个有符号字符变量 c,变量c仍以11111110表示,只是此时代表的是补码表示-2。由于 c 是一个有符号字符变量,我们需要将其扩展为一个无符号短整型。这是通过符号扩展完成的,将符号位(最高位,这里是1)复制到扩展的位数。i 的二进制表示转换为十进制: 11111111 11111110
题4:
题5:A。TLB命中则页一定命中,但页命中cache不一定命中,因为页载入主存和数据库载入cache并不同步。
间址寻址:形式地址给出的是操作数的间接地址。所以形式地址指向的主存单元中的内容才是操作数的有效地址。比如形式地址D,那么(D)才是操作数的地址。
变址寻址:指定一个寄存器来存放变化的地址,所以形式地址字段D增加一个变址寄存器编号字段X,变址寄存器X与形式地址D之和为操作数的有效地址。X是寄存器的编号,(X)是寄存器的内容。(X)+D。
题6:C。先间接寻址,所以D是间接地址,(D)才是形式地址,然后变址寻址,所以操作数地址是(I)+(D)。
题7:C。因为寄存器中的内容只是一个偏移地址,要加上形式地址D才是操作数的地址。
题8:C。
解答:CISC处理器特点:采用微程序控制器。指令字长不固定。一般有8个以上的通用寄存器。支持多种寻址方式。对访存指令没有限制。Intel x86处理器采用的是CISC架构,特点类似。
题9:D。
解答:,RISC处理器特点:采用硬布线控制器。指令字长固定为32位。一般只有16个左右的通用寄存器。只支持简单的寻址方式,通常只有直接寻址和间接寻址两种。只支持简单的寻址方式,通常只有直接寻址和间接寻址两种。MIPS处理器采用RISC架构,特点类似。
题10:B。控制存储器也是按地址访问。在CPU内,存储微指令,是一种只读存储器。
题11:D。显然是突发传输。
题12:D。采用复用的方式,有可能产生冲突,反倒降低传输速率。
题13:C。同步时钟信号一般由发送端提供。
题14:C。B的执行中断隐指令的说法有误,中断隐指令是一个虚拟概念,本身并不存在。
题15:B。处于开中断,才能响应中断。
题目2:(1)作用是发现错误并纠正错误。(2)如果是奇校验,如果校验码中1的位数为偶数位那么出错。如果是偶校验,如果校验码中的1的位数为奇数那么出错。采用异或门。(3)n=n+k,可以引入总偶校验位的方式实现。
(补充一下:海明校验码:从H1到Hn共计n位,包含原始数据D1到Dk共计k位,(n,k)码,校验位从P1到Pn,包含r个偶校验组,n=k+r。r个校验组的r位检错信息构成一个检错码G1到Gr。满足关系n=k+r。G是校验组分组,G1(P1,D1....) G2(P2,D1...)G3(P3,D2....)...P1到Pn的求法是将校验组内的数据位进行求异或运算。)
(补充:G的计算是接收的数据的响应数据位和检错位的异或运算,如果结果为0表名数据大概率正确,如果Gi哪一位为1,说明里面的数据位有错误)
第3题解答:有6条行地址线可复用,只需6根地址线管脚。需要增加行选通信号RAS和列选通信号CAS。存储器按行刷新。在刷新间隔内完成刷新操作,刷新一次的时间是一个读写周期的时间。2ms内可进行:2000/0.25=10000次刷新。刷新64行=0.25us x 64行=16us。将2ms分成64个间断,每个间断大约31.25us,将最后的0.25us。
第4题解答:32位=4B,每块4个字,所以是4 x 4 =16B=2^4B,所以块内偏移w=4。用16KB=2^14B去除2^4B,可以得到区内的行地址是10位,1MB相当于2^20B,所以用20-4-10=6位就是区地址。ABCDE H转化为2进制后就是:1010 1011 1100 1101 1110按照地址细分表示就是:101010 1111001101 1110,在cache内块号:1111001101,块内地址:14。(解题方法就是将主存地址进行细分,表示为区号、区内行地址(cache容量除以每块的容量)和块内偏移,然后在cache中的位置就是用区内行地址和块内偏移进行表示)。4路组相联,块内偏移4位,主存地址20位不变,因为是4路组相联,所以每组有4行,每行的大小为16B,每组大小64B,16KB=2^14B/2^6B=2^8,所以组索引有8位,那么标记有8位。ABCDE H按照地址细分表示就是:10101011 11001101 1110。所以在cache中组号为:11001101,偏移量为14(解题方法就是将主存地址进行细分,表示为标记、组索引(用cache容量除以每行的容量再除以组数)和块内偏移,然后在cache中的位置就是用组索引和块内偏移进行表示)。
第5题解答:(1)处理顺序:C>A>D>B 解答:简易判断标准,1越多的越是优先处理。1是屏蔽中断请求信号,0是允许发送。首先进入A,转去执行C中断,C中断执行完转回执行A中断,A中断执行完,转去执行B中断,D是0所以允许中断,转去执行D中断,AC已执行完为0不影响,所以D中断执行完,转回执行B中断。所以顺序是CADB。(2)
三1、在这题中,C8就相当于符号位,C7就相当于最高数据位。比如有符号数相加:1.0101+1.0100所得的结果为10.1001,该数的最高位1就是C8,次高位0就是C7,因为这两位异或所得的结果为1,所以检测出溢出,大致就是这个意思。
对于无符号数:加入01000+01100=10100,因为最高位是符号位,所以正数相加变成负数产生了溢出,所以最高位的1就是C7。
三2、(1)16行 x 128B/行=2^11B=2KB
(2)B的访问命中率为0,A的访问命中率:96.87%(因为一个int占4B,一行128B大约可装32个int数据,第1个数据缺失,载入cache,所以缺失率1/32,命中率31/32)
三3、(1)时钟周期数100x10^6。首先算出CPU要访问磁盘多少次:10MB=10 x 1024KB=10x1024x4x256B,所以10MB就是40960个256B。然后算出每次访问的中断时间:中断占用时间1380时钟周期。最后用所有中断时间的总和去除以时钟周期的总数:40960x1380/10^8=56564800/100000000=56.56%,所以约占56.56%。(2)40960次x400个时钟周期=16384000。16384000/100000000=16.384%。所以约占16.384%。(3)结论:DMA方式要比程序中断方式占用更少的时钟周期数(占用率低),有利于提高CPU的效率和利用率(降低CPU负担)。
——————————————样卷2————————————————
题1:C。指令中有可能是数据的地址。
题2:C。
题3:D。每秒执行浮点运算的次数。
题4:A。short是2字节16位,65535的二进制1111 1111 1111 1111,转化为有符号数同样是16个1,因为在C语言中负数以补码表示,转化为原码是1000 0000 0000 0001所以是-1。
题5:C。k=8,要满足,只能r=4。
题6:B。只有DRAM要周期性刷新。
题7:B。CDROM是光盘,一般顺序读写。
题8:A。读取速度更快,写的时候要将先前的数据删除。
题9:A。sum被多次使用,并且具有循环。
题10:D。
题11:B。
题12:D。
题13:D。
题14:A。
题15:D。
题16:A。
题17:B。
题18:D
题19:A。
题20:B。
题21:D。
题22:C。
题23:A。需要等待跳转目标地址确定后才能继续执行下一条指令,要等待当前指令的计算结果完成,可能会导致流水线的阻塞。
题24:
题25:C。数据缓存寄存器和命令/状态寄存器(包括:中断请求、错误码、控制位、状态、命令)。
题26:C。
题27:A。
题28:B。
题29:B。
题30:D。
三1、(1)优化前:0.4x1+0.2x2+0.15x2+0.25x2=1.6。优化后:假设原本各类指令的数量为:A:40,B:20,C:15,D:25,A类指令减少一半,A:20,所以A类占比:25%,B类占比:25%,C类占比:,D类占比:。现在的CPI=0.25+0.5+0.375+0.625=1.75。
(2)优化前:MIPS=500/1.6=312.5。优化后:MIPS=500/1.75=285.71
结论:优化失败,CPI增加,MIPS减少,原因是不能降低CPI值小的指令,而应该将降低CPI值大的指令。
三2、
设主存容量为16MB(2^24B),按字节寻址,虚拟存储器存储容量为4GB(2^32B),采用页式虚拟存储器,页面大小为4KB(2^12B)完成下列各题:(1)计算物理页号,页内偏移,虚拟页号字段各多少位。解答:物理地址总共24位,页面偏移12位,所以物理页号12位。同理虚拟页号32-12=20位。(2)计算页表中页表项的数量:页表项与虚拟页号字段的位数相关,虚拟页号的字段为20位,所以页表项数量为2^20项。(3)
‘
虚拟存储器容量:2GB=B,31位。主存容量:4MB=B,22位。页大小:128KB=,17位。TLB是4路组相联,所以每组里面有4个页表项,总计4组。cache容量:16KB=B,14位。每块8个字,每字4B,所以是32B,因此B,是5位。cache映射同样是四路组相联。
(1)因为虚拟地址一共是31位,页内地址是17位,所以虚拟页号是14位。TLB的索引是2^2,所以是2位。TLB标记是虚拟页号(VPN)-TLB索引,所以是12位。
(2)物理地址是22位,物理地址的偏移地址和虚拟地址一样所以是17位,所以物理页号5位。
(3)cache的偏移地址是5位,组索引是7位,所以物理地址剩下的10位为cache标记。
(1)4420H=010001 00 00100000直接寻址 有效地址:0020H
(2)2244H=001000 10 01000100变址寄存器X2寻址 有效地址:1166H
(3)1322H=000100 11 00100010相对寻址 有效地址:1256H
(4)3521H=001101 01 00100001变址寄存器X1寻址 有效地址:0058H
三6、第一步:要分析指令的功能:将rt寄存器内的操作数左移shamt位,然后存入rd寄存器中。
第二步:看要增加或修改哪些数据通路:可以发现数据通路内部并没有左移器,所以必须要增加一个左移器(将MEM读出的数据送入左移器的数据输入端,然后将shamt送入左移器的移动位数端,然后将输出端与总线连接,方便寄存器获取)
第三步:看增加或修改哪些控制信号:考虑操作码:我们首先要为该指令分配一个新的操作码,用于执行左移操作。考虑控制信号:我们需要增加一个左移信号Shift,当Shift信号为1是,从rt寄存器中取出操作数送入左移器执行左移操作,然后将数据传入rd寄存器。可能需要增加rd寄存器的选择信号。
第四步:写出该指令执行的流程和每一步的控制信号:按照5步走:取指,译码,执行,访存,写回。
取指:首先从PC寄存器中取出指令的地址(PCout),然后送入AR寄存器(ARin),然后从MEM存储器中取出相应的指令(Read),将指令存入DR(DREin),再然后将指令存入IR(DRout),最后将指令特定位送入操作控制器。
译码:操作控制器根据指令生成相应的控制信号,选中rt寄存器的选择信号RegDst,然后将输入放到总线上。
执行:左移信号Shift为1时,左移器对shamt和需要左移的数据进行操作,实现数据的左移,然后将结果放到总线上。
访存:没有操作。
写回:寄存器接收数据,选择rd寄存器合适的位置写入(RegDst和RegWrite)。
第1步:将x,y分别表示出来。首先将x=6.25表示成二进制:110.01B。注意将小数点左移了3位,在小数点左边添上符号位(正数为0),所以结果是0.11001x,此时注意了11就是该数的移码,因为移码为5位所以在前面补3个0,所以是00011,因为最高位是阶码的符号位,因为是左移所以是负数。尾数小数点前是符号位,为正因此是0,后面是尾码,在11001后面补4个0即可。另外要注意的是尾数部分是用补码表示,因此如果是负数的话要将尾数转化为补码形式,在本题中-12.25可以先表示成12.25=(1100.01)二进制,然后将小数点左移4位,0.110001x,所以移码是在100前添上2个0,因为是左移所以是负数,结果为1,00100,尾数是0.110001000,因为12.25前是负数,所以尾数小数点前要加上1,同时小数点后要变成补码形式,取反加1,结果为:1,001111000。第2步:对阶。第3步:尾数求和。第4步:规格化。注意:尾数1.101000000此时是补码的形式,(因为前面带有1是负数),规格化一定要参照原码的真实值来,转化为原码小数点后是1.011000000,所以必须要向左规格化1位,阶码-1,因此是1,00011 1.01000000
知识点1: 小数想转化为二进制数:乘2,然后取整数部分。
知识点2:对阶的原则是:小的阶码要向大的阶码对齐,忽略符号,纯粹看大小。阶码增大小数点要向前移动一位,尾数缩小1倍,相当于是算术右移,要带符号。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。