计算机组成原理第九次笔记(外存+Cache)

1.磁盘存储器的优点:存储容量大,单位价格低;记录介质可重复使用;记录信息可重复使用;非破坏性读出。
缺点:存储速度慢,机械结构复杂。
2.磁盘存储器的组成:磁盘驱动器、磁盘控制器、盘片。
3.磁盘存储器的存储区域:一块硬盘由多个记录面组成,每个记录面划分为若干磁道,每条磁道可划分为若干扇区。
磁头数:即盘面数,一个磁头对应一个扇面。
柱面数:表示一个盘面上的磁道数。
扇区数:表示一个磁道上的扇区数。
4.记录密度:道密度:磁盘半径方向上的磁道数量和柱面数相等。
位密度:磁道单位长度上能记录的二进制数的个数。
面密度:道密度和位密度的乘积。
5.平均存取时间:平均存取时间可理解为找到记录数据具体所在位置的时间,选择磁头的时间可忽略不计首先移动磁头找到所在磁道,在磁道上旋转找到扇区头所在位置之后传输数据,所以平均存取时间可分为寻道时间+旋转延迟时间+传输时间。
6.数据传输率:数据传输率=磁道容量×磁道转一圈时间。
7.磁盘阵列RAID
RAID:将多个独立的物理磁盘组成一个逻辑磁盘,数据在物理盘上分割交叉存储、并行访问。当一块物理块失效后不会影响整体存储。
RAID0:将多个数据块存放在不同物理磁盘中。
RAID1:采用两个磁盘同时保存一块数据,当一块失效后可使用另一块的数据,会导致存储空间的降低。
8.固态硬盘:基于闪存(ROM),随机写很慢,如果所写的位置上已有数据则需要将该块数据移到另一块上再写;没有要移动的部件所以随机访问的时间要比磁盘快。
9.程序局部性:
时间局部性:一个程序段被执行后,可能短时间内再次被执行一次。
空间局部性:一个程序端被执行后,其相邻的程序端接下来很有可能被执行。
10.Cache的基本工作原理:将最近执行过的程序从主存中复制一份放入Cache中,当CPU执行时会根据访存地址优先查看Cache,若Cache未命中再查主存,并把该数据块放入Cache。
Cache替换的四大问题:数据查找、地址映射、替换策略、写入策略。
11.Cache映射方式:
主存的地址表示
丨------------------丨--------丨
块号 块内地址
(1)直接映射(只能存放再固定位置,当位置有数据时即替换,有行号):主存块号 modCache总行数=Cache行号。
直接映射的地址表示
丨-------丨---------丨--------丨
TAG 行号 块内地址
其中TAG位和行号为主存的块号拆成的两部分,数值是一样的。
行号为log2Cache行数,TAG位为块号的前部分。
CPU查找先查找行号找到Cache所在组再对比TAG位若相同则命中,不同则从主存找到该块数据替换之。
直接映射的优点是可以快读定位出替换地址。缺点是利用率低。
(2)全相联映射:主存的每一块都可以装入Cache的任何位置。
全相联映射的地址表示
丨----------------丨----------丨
TAG 块内地址
全相联的优点是灵活、冲突率低、空间利用率高、利用率高。缺点是找到标记的速度慢,需要从头到尾找,成本高。
(3)组相联映射:二者的折中方式,先微观上将多个块合为一组,再宏观上将多个组进行分类。每组有r个Cache块成为r路组相联。
Cache组号=主存组号 mod组数
组相联的地址表示
丨---------丨-------丨-------丨
TAG 组号 块内地址
组相联外部采用直接映射,组内采用全相联映射。
当CPU找数据时,先根据块号的后几位找所在组,再在组内依次寻找到所找数据,若找不到数据或有效位为0则从主存调入.
12.Cache的替换算法:
当采用全相联或组相联方式时可能会有多个位置可以被替换,所以需要一种替换算法找到应被替换的位置。
(1)随机算法(RAND random):任意找到一个位置替换之,会导致命中率低。
(2)先进先出算法(FIFO Frist IN Frist OUT):顾名思义。
(3)近期最少使用算法(LRU Least Recently Used):寻找长久未使用过的作为替换的行。平均利用率高于FIFO算法。当使用时需要额外的计数器来保存各行的使用情况。
计数器变化规则:命中时,将命中的行计数清零,其他比其低的加1。未命中时且有其他空行则所有行加1后调入Cache。若未命中时且无空行则替换数最大的那个,所有计数加一,换入行置0.
当常用存储区的块数大于Cache块数时采用LRU算法会导致频繁换入、换出,导致命中率低成为抖动。解决方法为减少常用存储区,更换Cache。
需要log2 行数(组数)个替换位。
(4)最不经常使用算法:将一段时间被访问次数最少的块移出,当命中时计数器加一。未命中且无空行时调出计数器值最小的值,若有多个相同的采用随机算法。
13.Cache的写策略
(1)全写法:当CPU对Cache写命中时,必须把数据同时写入Cache和主存,能随时Cache和主存的数据统一,但会增加访存次数,降低Cache的效率。
为了减弱全写法对Cache效率的影响采用写缓冲区,写时先将数据从Cache写入写缓冲区中,再让缓冲区慢慢将数据写入主存。写缓冲是一个FIFO队列。
(2)写回法:当CPU对Cache命中时,只将数据写回Cache不写入主存,当Cache换出时才整体写入主存,减少访存次数,但有隐患。需要一个脏位来记录是否改变。脏位为1时需要将Cache写回,反之则不需要。
对于CPU写不命中采用下面两种方法:
(3)写分配法:加载主存的块到Cache中,然后更新Cache块,通常和全写法共同使用。
(4)非写分配法:只写入主存,不调块进入Cache。通常和回写法共同使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值