题目
44.(15分)某计算机采用页式虚拟存储管理方式,按字节编址。CPU进行存储访问的过程如题44图所示。
根据题 44 图回答下列问题。
(1)主存物理地址占多少位?
(2)TLB采用什么映射方式?TLB用 SRAM还是DRAM实现?
(3)Cache采用什么映射方式?若 Cache 采用 LRU替换算法和回写(Write Back)策略,则 Cache 每行中除数据(Data)、Tag 和有效位外,还应有哪些附加位? Cache总容量是多少?Cache 中有效位的作用是什么?
(4)若CPU给出的虚拟地址为0008 C040H,则对应的物理地址是多少?是否在 Cache 中命中?说明理由,若 CPU给出的虚拟地址为 0007 C260H,则该地址所在主存块映射到的 Cache组号是多少?
(1)物理地址由实页号和页内地址拼接,因此其位数为 16+12=28;或直接可得 20+3+5=28。
(2)TLB采用全相联映射,可以把页表内容调入任一块空 TLB项中,TLB中每项都有一个比较器,没有映射规则,只要空闲就行。TLB采用静态存储器 SRAM,读写速度快,但成本高,多用于容量较小的高速缓冲存储器。
(3)图中可以看到,Cache 中每组有两行,故采用 2 路组相联映射方式。因为是2路组相联并采用 LRU 替换算法,所以每行(或每组)需要1位 LRU 位;因为采用回写策略,所以每行有1 位修改位. (脏位), 根据脏位判断数据是否被更新, 如果脏位为1则需要写回内存. 28 位物理地址中 Tag字段占20位,组索引字段占3位,块内偏移地址占5位,故Cache共有23=8组,每组2行,每行有 25=32B;故Cache 总容量为8×2×(20+1+1+1+32×8)=4464位=558字节。
Cache 中有效位用来指出所在 Cache 行中的信息是否有效。
(4)虚拟地址分为两部分∶ 虚页号、页内地址;物理地址分为两部分∶实页号、页内地址。利用虚拟地址的虚页号部分夫香找 TLB 表(缺失时从页表调入),将实页号取出后和虚拟地址的页内地址拼接,就形成了物理地址。虚页号 008CH恰好在 TLB 表中对应实页号 0040H(有效位为 1,说明存在),虚拟地址的后 3 位为页内地址 040H,则对应的物理地址是0040040H。物理地址为 0040040H,其中高20位 00400H为标志字段,低5位 00000B为块内偏移量,中间 3位 010B为组号2,因此将 00400H与 Cache 中的第2组两行中的标志字段同时比较,可以看出,虽然有一个Cache 行中的标志字段与00400H相等,但对应的有效位为 0,而另一Cache 行的标志字段与00400H不相等,故访问 Cache 不命中。
因为物理地址的低 12位与虚拟地址低 12 位相同,即为 0010 0110 0000B。根据物理地址的结构,物理地址的后八位. 01100000B的前三位 011B是组号,因此该地址所在的主存映射到Cache 组号为3。

多做几道

41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。假设从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法∶
①设最短路径初始时仅包含初始顶点,令当前顶点u为初始顶点;
② 选择离u最近且尚未在最短路径中的一个顶点v,加入最短路径中,修改当前顶点u=v;
③ 重复步骤②,直到u是目标顶点时为止。
请问上述方法能否求得最短路径?若该方法可行,请证明之;否则,请举例说明。
42. (5分)已知一个带有表头结点的单链表,结点结构为
Data/link
假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算法;查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的 data 域的值,并返回1∶否则,只返回0。要求∶
1)描述算法的基本设计思想。
2)描述算法的详细实现步骤。
3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C、C++或 Java 语言实现),关键之处请给出简要注释。
43.(8分)某计算机的CPU主频为 500Mz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为 0.5MB/s,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断服务程序包含 18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。
1)在中断方式下,CPU用于该外设I/O的时间占整个CPU时间的百分比是多少?
2)当该外设的数据传输率达到5MB/s 时,改用DMA 方式传送数据。假定每次 DMA传送块大小为 5000B,且DMA预处理和后处理的总开销为 500个时钟周期,则 CPU用于该外设 I/O 的时间占整个 CPU时间的百分比是多少(假设 DMA与CPU 之间没有访存冲突)?
44.(13 分)某计算机字长为16位,采用16位定长指令字结构,部分数据通路结构如下图所示,图中所有控制信号为1时表示有效、为 0时表示无效。例如,控制信号MDRinE 为1表示允许数据从 DB打入 MDR,MDRin为1表示允许数据从内总线打入 MDR。假设 MAR 的输出一直处于使能状态。加法指令"ADD(R1),RO"的功能为(RO)+(R1))→(R1),即将R0中的数据与 R1的内容所指主存单元的数据相加,并将结果送入 R1的内容所指主存单元中保存。
下表给出了上述指令取指和译码阶段每个节拍(时钟周期)的功能和有效控制信号。请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号。
时钟:功能/有效控制信号
C1:MAR←(PC)/PCout, MARin
C2:MDR←M(MDR) PC←(PC)+1/MemR, MDRinE, PC+1
C3:IR←(MDR)/MDRout, IRin
C4:指令译码/无
45.(7分)三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。
P1每次用 produce()生成一个正整数并用 putO)送入缓冲区某一空单元中;P2每次用 getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义(要求用伪代码描述)。

该科目易错题

该题目相似题