2012 408真题解析----计组43题,涉及I/O,Cache,主存部分

一.前置知识

DMA的基本概念

DMAC对数据传送的控制是建立在掌握系统总线的使用权基础上的

正常工作下,系统总线的使用权归CPU所有
DMAC要控制DMA传送,必须要从CPU得到总线使用权

DMAC传送的过程

1.总线申请阶段
2.总线响应阶段
3.数据传送阶段
4.传送结束阶段

DMA方式和中断控制方式的区别

DMA的优先权高于中断的优先权(因为DMA可以在指令周期(总线周期结束)内获取总线控制权,而中断需要在指令周期结束后

DMA传送方式
  • 停止CPU访问方式(连续方式)
  • 周期挪用方式(单字节方式)
  • DMA与CPU交替访问方式(透明DMA方式)
 周期挪用

   在这种方法中,每当I/O设备发出DMA请求时,I/O设备便挪用或窃取总线占用权一个或几个主存周期,而DMA不请求时,CPU仍继续访问主存。
    I/O设备要求DMA传送会遇到三种情况,一种是此时CPU不需访问主存(如CPU正在执行乘法指令,由于乘法指令执行时间较长,此时CPU不需访问主存),故I/O设备访存与CPU不发生冲突。第二种情况是I/O设备要求DMA传送时,CPU正在访存,此时必须待存取周期结束时刻,CPU才能将总线占有权让出。第三种情况是I/O设备要求访存时,CPU也要求访存,这就出现了访存冲突。此刻,I/O访存优先于CPU访存,因为I/O不立即访存就可能丢失数据,这时I/O要窃取一二个存取周期,意味着CPU在执行访存指令过程中插入了DMA请求,并挪用了一二个存取周期,使CPU延缓了一二个存取周期再访存。
   与CPU暂停访存的方式相比,它既实现了I/O传送,又较好地发挥了主存与CPU的效率,是一种广泛采用的方法。
    应该指出,I/O设备每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制级权。因此,尽管传送一个字对主存而言只占用一个主存周期,但对DMA接口而言,实质上要占2—5个主存周期(由逻辑线路的延迟特性而定)。因此周期挪用的方法比较适合于I/O设备的读写周期大于主存周期的情况。

 这里做一个小总结:

  • CPU此时不访存,直接占用
  • CPU正在访存,等待访存周期完成
  • CPU与DMA同时请求访存:此时CPU将总线控制权让给DMA
暂停CPU访问方式
 

CPU放弃了对总线的控制权,放弃了对主存的访问。控制简单CPU处于不工作状态或保持状态,未充分发挥CPU对主存的利用率,这里是I/O一块数据块只发出一次请求,一次占用总线控制权到底

DMA与CPU交替访问

CPU工作周期:C1专供DMA访存,C2专供CPU访存不需要申请、建立和归还总线的使用权(还没有考过,但是应该有所了解,此时DMA请求次数为0)

DMA传送过程

DMA请求和DMA中断请求的区别:

DMA请求表示DMA将要和主存进行一个字的传输

DMA中断请求表示DMA和主存已经完成一整块的传输

 

二.解题思路

(1)MIPS=\frac{f}{CPI}=80M/4=20M,由题目背景知Cache的命中率为99%,则Cache的缺失率为0.01,平均每秒的缺Cache次数20M*1.5*0.01=0.3M=300000,若要满足CPU的访存要求.访存的次数我们已知是0.3M次,要满足访存要求,则主存带宽为0.3M*16B=4.8MB/s(直接访存在Cache缺失后发生)

(2)在上题中,我们知道每秒缺失Cache的次数为300000次,则平均每秒产生300000*0.000005=1.5次缺页,页面大小为4KB,每秒需要I/O的数据为4KB*1.5=6KB,磁盘I/O接口发出的DMA请求次数至少为6KB/4B=1.5K次=1536次

注:I/O接口与CPU的数据交换以块为单位,I/O设备与I/O接口的数据交换以字为单位(我认为是缓冲区),在周期挪用方式下,缓冲区充满一次发出一次DMA请求,这里对CPU介入I/O的时机做一个补充

(3)DMA控制器使用存储器总线的优先级更高,因为DMA准备好了块后,如果不及时获得存储器总线则会产生丢失数据的风险(这是DMA不丢失数据的保证)

(4)采用4体低位交叉存储模式,存储体周期为50ns,启动每个存储体的时间为50ns/4=12.5ns,每一次访存,由存储器总线大小为32位,即4B可得,最大带宽为4B/12.5ns=320000B/s

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
组成原理课后答案第三章 3. 用16K×8位的DRAM芯片组成64K×32位存储器,要求: (1) 画出该存储器的组成逻辑框图。 (2) 设存储器读/写周期为0.5μS, CPU在1μS内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少? 解:(1)组成64K×32位存储器需存储芯片数为       N=(64K/16K)×(32位/8位)=16(片)      每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15 A14经2:4译码器产生片选信号 ,逻辑框图如下所示:  (2)依意,采用异步刷新方式较合理,可满足CPU在1μS内至少访问内存一次的要求。     设16K×8位存储芯片的阵列结构为128行×128列,按行刷新,刷新周期T=2ms,则异步     刷新的间隔时间为:                  则两次刷新的最大时间间隔发生的示意图如下    可见,两次刷新的最大时间间隔为tmax      tmax=15.5-0.5=15 (μS)    对全部存储单元刷新一遍所需时间为t R      t R =0.5×128=64  (μS) 6.用32K*8位的EPROM芯片组成128K*16位的只读存储器,试问: (1)数据寄存器多少位? (2)地址寄存器多少位? (3)共需多少个EPROM芯片? (4)画出此存储器组成框图。 解:(1)系统16位数据,所以数据寄存器16位 (2)系统地址128K=217,所以地址寄存器17位 (1) 共需要8片 (2)组成框图如下 8. 存储器容量为64M,字长64位,模块数m = 8,分别用顺序方式和交叉方式进行组织。存储周期T = 100ns,数据总线宽度为64位,总线周期τ = 10ns .问顺序存储器和交叉存储器的带宽各是多少? 解:信息总量: q = 64位 ×8 =512位   顺序存储器和交叉存储器读出8个字的时间分别是:    t2 = m T = 8×100ns =8×10 (s)    t1 = T + (m - 1) = 100 + 7×10 = 1.7 ×10 (s)   顺序存储器带宽是:    W2 = q / t2 = 512÷(8×10 )= 64 ×10 (位/ S)   交叉存储器带宽是:    W1 = q / t1 = 512÷(1.7 ×10 )= 301 ×10 (位/ S) 9. CPU执行一段程序时, cache完成存取的次数为2420次,主存完成存取的次数为80 次,已知cache存储周期为40ns,主存存储周期为240ns,求cache/主存系统的效率和平均访问时间。 解:先求命中率h    h=nc/(nc +nm )=2420÷(2420+80)=0.968   则平均访问时间为ta    ta=0.968×40+(1-0.968) ×240=46.4(ns)    r =240÷40=6   cache/主存系统的效率为e    e=1/[r+(1-r)×0.968]=86.2% 13、一个组相联cache由64个行组成,每组4行,主存储器包含4k个块,每块128个字。求表示内存地址的格式 64行,4行一组,共64/4=16组;主存储器有4K个块,每块128字,共2的19次方个字,所以需要19个地址位,因为块长128,所以低7位表示内偏移,因为块编号对16取余是组号,所以用4位表示对应组号,地址中的最8位无法用cache决定,保留,所以8 4 7 第四章 4.指令格式结构如下所示,试分析指令格式及寻址方式特点。 解:指令格式及寻址方式特点如下:   ① 双字长二地址指令;   ② 操作码OP可指定 =64条指令;   ③ RS型指令,两个操作数一个在寄存器中(16个寄存器之一),另一个在存储器中;   ④ 有效地址通过变址求得:E=(变址寄存器)± D,变址寄存器可有16个。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值