计算机组成800H是多大,《计算机组成与结构》郝尚富第七章作业.doc

1. CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求

1 cache的命中率;

2 cache/主存系统的效率;

3 平均访问时间。

解:

(1)命中率

(2)平均访问时间:

(3)访问效率

2.有一个cache的容量为2K字,每块为16字,问: 。

(1)该cache可容纳多少个块?

(2)如果主存的容量是256K字,则有多少个块?

(3)主存的地址有多少位? cache的地址有多少位?

(4)在直接映射方式下,主存中的第i块映射到cache中哪一个块?

解:

(1)cache的容量为2K字,每块为16字,则cache中有2048/16=128块

(2)如果主存的容量是256K字,则有2561 024/16=16384个块。

(3)因为主存的容量是256K=218字,所以主存的地址有18位。cache的容量为2K

字,所以cache的地址有11位。 ,

(4)在直接映射方式下,主存中的第i块映射到cache中第I mod l28个块中。

3.一个虚拟存储器有8个页面,页面大小为1 024字,内存有4个页面框架,页面的内容为:

虚页号 0 1 2 3 4 5 6 7

实页号 3 1 - - 2 - 0 -

(1)以下哪些虚拟地址将引起页面失效?

(2)对应以下虚拟地址的主存地址是什么?

(a)0 (b)3728 (c)1023 (d)1024 (e)1025 (f)7800 (g)4096

解:题中所给地址对应的主存页面、页内地址、页面失效情况如表所示。

因为页面大小为1 024字,内存有4个页面框架,所以内存地址格式为:

11 10 9

页面

页内地址

实页面为0、页内地址0的虚拟地址所对应的主存地址是:00 0000000000=000H

实页面为0、页内地址1023的虚拟地址所对应的主存地址是:00 1111111111=3FFH

实页面为1、页内地址0的虚拟地址所对应的主存地址是:01 0000000000=400H

实页面为1、页内地址1023的虚拟地址所对应的主存地址是:01 1111111111=7FFH

实页面为2、页内地址0的虚拟地址所对应的主存地址是:10 0000000000=800H

实页面为2、页内地址1023的虚拟地址所对应的主存地址是:10 1111111111=BFFH

实页面为3、页内地址0的虚拟地址所对应的主存地址是:11 0000000000=C00H

实页面为3、页内地址1023的虚拟地址所对应的主存地址是:11 1111111111=FFFH

实页面为1、页内地址1的虚拟地址所对应的主存地址是:01 0000000001=401H

虚页号 0 1 2 3 4 5 6 7

实页号 3 1 - - 2 - 0 -

地址 虚页面 实页面 页内地址 主存地址 实访问情况

0 0 3 0 C00H 有效

3728(E90H) 3 - 656(290H) - 页面失效

1023(3FFH) 0 3 1023 FFFH 有效

1024(400H) 1 1 0 400H 有效

1025(401H) 1 1 1 401H 有效

7800(1E78H) 7 - 632(278H) - 页面失效

4096(1000H) 4 2 0 800H 有效

5.设主存容量4MB,虚存容量1GB,页面大小为4KB。

(1)写出主存地址格式。

(2)写出虚拟地址格式。

(3)页表长度为多少?

解:

(1)主存地址格式为:

21 12 11 0

页号(10位)

页内地址(12位)

(2)虚拟地址格式为:

29 12 11 0

页面号(18位)

页内地址(12位)

(3)页表长度为。

3.设某计算机的cache采用4路组相联映像,己知cache容量为16KB,;主存容量为2MB,每个字块有8个字,每个字有32位。请回答:

(1)主存地址为多少位(按字节编址),各字段如何划分(各需多少位)?

(2)设cache起始为空,CPU从主存单元0,1,……,100。依次读出101个字(主

存—次读出一个字),并重复按此次序数读11次,问命中率为多少?

(3)若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍?

解:

(1)●主存容量为2MB,技字节编址,所以主存地址为21位。

●每个字块有8个字,每个字有32位(4个字节),所以字块的大小为8*4=32个字节,需要5位地址;

●cache采用4路组相联映像,所以组内块号需要2位地址;

●cache容量为16KB=214B,每个组有4路32B=27B,214B/27B=27,所以组号地址为7位;

●主存害量为2MB=221B,221B/214B=27,所以主存高位地址为7位;

共地址格式如下:

(2)由于每个字块有8个字,所以CPU的0,1,……,100字单元分别在字块0—字块1l和字块12中,采用4路组相联映像将分别映像到第0组—第12组中,但cache起始为空,所以第一次读时没命中,但后面10次可以命中。

所以:命中率:10/11=91%

(3)设cache将所有数据读一次的访存时间为T,则主存的时间为5T。

有cache则访存时间:10T+5T=15T

无cache则访存时间:115T

所以:速度提高倍数=55/15=3.67倍

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的代码,可以在其中加入修改目标地址和块长度的部分,具体修改如下: ``` DATA SEGMENT BUFF1 DB 2000 DUP(?) BUFF2 DB 2000 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, 800DH ; 复位 OUT DX, AL ; 存储器到存储器,则读通道0,写通道1,字节数写入通道1字节数寄存器 MOV DX, 8000H ; 源地址 LEA AX, BUFF1 OUT DX, AL MOV AL, AH OUT DX, AL MOV DX, 8002H ; 目标地址 LEA AX, BUFF2 OUT DX, AL MOV AL, AH OUT DX, AL MOV DX, 8003H ; 块长度,注意需要减1 MOV AX, 0FFH ; 修改块长度为100H,即0FFH+1=100H OUT DX, AL MOV AL, AH OUT DX, AL MOV DX, 800BH ; 设置两个通道的工作方式 MOV AL, 10001000B OUT DX, AL MOV AL, 10000101B OUT DX, AL MOV DX, 800AH ; 通道0允许,以下可理解为通道0当成设备, ; 通道1为内存,因此不再设置通道1 MOV AL, 00000000B OUT DX, AL MOV DX, 8008H ; 设置控制寄存器 MOV AL, 00000001B OUT DX, AL MOV DX, 8009H ; 发软件请求,用于存储器到存储器 MOV AL, 00000100B OUT DX, AL ; 修改目标地址为8800H MOV DX, 8002H LEA AX, BUFF2 + 800H ; 目标地址 = BUFF2 + 800H OUT DX, AL MOV AL, AH OUT DX, AL ; 修改块长度为100H MOV DX, 8003H MOV AX, 0FFH OUT DX, AL MOV AL, AH OUT DX, AL ... MOV AH, 4CH INT 21H CODE ENDS END START ``` 需要注意的是,修改目标地址和块长度的部分需要在原代码的基础上进行,因此可能需要理解原代码的含义和作用才能正确进行修改。另外,实际的实现可能需要根据具体的应用场景进行调整和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值