‘壹’ 计算机题目,根据指令寻址方式哪几种指令执行时间访问内存一次,哪几种指令执行需访问内存两次
指令进行有三个阶段:取指令;解码;执行;
立即寻址在取指令阶段,访问一次内存;在执行阶段,不需要访问内存;(一次)
直接寻址在取指令阶段,访问一次内存;在执行阶段,访问一次内存;(两次)
间接寻址在取指令阶段,访问一次内存;在执行阶段,访问两次内存;(三次)
寄存器直接寻址在取指令阶段,访问一次内存;在执行阶段,不需要访问内存;(一次)
寄存器间接寻址在取指令阶段,访问一次内存;在执行阶段,访问一内存;(两次)
注意一般问访问内存次数是指在执行阶段;
‘贰’ 对一个将页表放在内存中的分页系统: (1) 如果访问内存需要0.2μs,有效访问时间为多少
分页系统要访问两次:
1、第一次要访问页表,将页号换成页地址,并与偏移量相加,得出实际地址。
2、第二次要访问实际的地址的,所以所用时间是0.4μs,如果有快表,命中率为90%,则访问时间为0.2*90%+0.4*10%=0.18+0.04=0.22μs。
尽管在整个运行过程中程序引用的不同页面总数(也就是虚拟内存大小)可能超出物理存储器(DRAM)总大小,但是程序常常在较小的活动页面(active page)上活动,这个集合叫作工作集(working set)或常驻集(resident set)。在工作集被缓存后,对它的反复调用将使程序命中提高,从而提高性能。
(2)访问一次计算机内存所花的时间扩展阅读:
分页系统的时间计算:
辅助存储器会用分页的方式将文件存在经过平均分配大小的页上,等到随机存取存储器需要使用时再写回。如果在随机存取存储器释放数据过后还需要更新数据,系统必须将数据先写回后更新,再存入辅助存储器中。高性能的系统需要在替换随机存取存储器上的数据时消耗较少的时间,所以一般的系统会采取最近最少使用算法(LFU)来达到较高的效果。
‘叁’ 计算机访问一次内存,ssd硬盘,sata硬盘的时间大概分别是多少
我拿点数据作为大致的参考哈,不过不确定和当今时代的差别有多大;;
访问内存一次是100个时钟周期以上,
访问一次普通的硬盘在几十万盗数百万个时钟周期,
ssd速度是普通硬盘的十倍了,
访问一次L1 cache大概是十个时钟周期之内,
访问一次L2 cache在20个时钟周期之内,
访问一次L3 cache在40个时钟周期之内;
访问一次寄存器在3-5个时钟周期之内;
流水线寄存器在1个时钟周期之内,大概是20ps(1ps=10^-12s)