计算机组成原理 (4)

如果断电,那么一段时间后将丢失所有数据

计算机组成原理


对于32位系统,计算机内存最大为 232 = 430 = 4GB,对于64为系统,计算机内存最大为 264 = 234 x 230 = 234GB

辅助存储器——磁盘

表面是可磁化的硬磁特性材料

移动磁头径向运动读取磁道信息

计算机组成原理


计算机的辅助存储器常用算法

先来先服务算法

最短寻道时间优先

与磁头当前位置有关

优先访问离磁头最近的磁道

扫描算法(电梯算法)

循环扫描算法

计算机的高速缓存 高速缓存的工作原理

  :是指存放在一个存储单元中的二进制代码组合
  字块:存储在连续的存储单元中而被看作是一个单元的一组字节
  一个字快有32位,一个字快共B个字,主存中共M个字块,则主存总字数=B*M,主存总容量(bits)=B*M*32。字的地址包含两部分:前m位指定字快的地址,后b位指定字在字快中的地址。

计算机组成原理


例子:假设主存用户空间容量位4G,字快大小为4M,字长为32位,则对于字地址中的快地址m和块内地址b的位数,至少应该是多少?
  由于1G=1024M,所以4G=4096M,由于字快大小为4M,所以字快数为:\(4096\div4=1024\),所以字快地址m=\(\log_2 1024=10\),块内字数为\(4M\div32bit=1048576bit\),块内地址b=\(\log_2 1048576=20\),所以快地址m的位数至少为10,块内地址b的位数最少为20。

  我们已经知道在CPU与主存之间存在高速缓存,当CPU需要的数据在缓存里时,则CPU直接从高度缓存中读取数据即可,不需要去访问主存,但当CPU需要的数据不在缓存里时,则需要去主存拿。由于CPU的处理速度远远快于主存的读取速度和数据传输速度,所以这样会导致CPU空转来等待数据传输,造成资源上的浪费。所以我们尽可能的让CPU去高速缓存中读取数据,因此我们需要一个量化指标,这个量化指标就是命中率。命中率是衡量缓存的重要性能指标,理论上CPU每次都能从高速缓存中读取数据的时候,命中率为1。假设访问主存次数为\(N_m\),访问Cache次数为:\(N_c\),则命中率h为:\(h=\frac{N_c}{N_c+N_m}\)。现在来看看访问效率e,假设访问主存时间为\(t_m\),访问缓存时间为\(t_c\),则访问Cache-主存系统的平均时间为:\(t_a=ht_c+(1-h)t_m\),则访问效率e为:\(e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}\)

例子:假设CPU在执行某段程序时,共访问了Cache命中2000次,访问主存50次,已知Cache的存取时间为50ns,主存的存取时间为200ns,求Cache-主存系统中的命中率、访问效率和平均访问时间。
    命中率:\(h=\frac{N_c}{N_c+N_m}=\frac{2000}{2000+50}=0.97\)

    访问效率:\(e=\frac{t_c}{t_a}=\frac{t_c}{ht_c+(1-h)t_m}=\frac{50}{0.97\ast50+(1-0.97)200}=0.917=91.7\%\)

    平均访问时间:\(0.97\ast50+(1-0.97)200=54.5ns\)

高速缓存的替换策略

  由于高速缓存的运行需要良好的缓存替换策略。什么是缓存替换策略呢?就是当高速缓存中没有数据时,需要从主存中载入所需要的数据。高速缓存中常见的替换策略:

随机算法

先进先出算法(FIFO)

最不经常使用算法(LFU)

优先淘汰最不经常使用的字快

需要额外的空间记录字快的使用频率

最近最少使用算法(LRU)

优先淘汰一段时间内没有使用的字快

有多种实现方法,一般使用双向链表

把当前访问节点置于链表前面(保证链表头部节点是经常使用的)

计算机的指令系统

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdyxp.html