存储系统

时间:2024-04-03 20:35:06

主存储器的性能指标

存储容量:指存储器可容纳的二进制信息量,描述存储容量的单位是字节或位。

存储速度:由以下3个方法来衡量。
存取时间(Memory Access Time--TA):指启动一次存储器操作到完成该操作所需的全部时间。存取时间愈短,其性能愈好。通常存取时间用纳秒(ns=10-9s)为单位。
存储周期(Memory Cycle Time--TC):指存储器进行连续两次独立的存储器操作所需的最小间隔时间。
通常存取周期TC大于存取时间TA ,即TC≥TA。

存储器带宽:是单位时间里存储器所能存取的最大信息量,存储器带宽的计量单位通常是位/秒(bps)或字节/秒,它是衡量数据传输速率的重要技术指标。

存储器的价格:用每位的价格来衡量。

存储系统

存储系统

存储系统

命中率定义:在M1存储器中访问到的概率
   存储系统
其中: N1:是对M1存储器的访问次数

         N2:是对M2存储器的访问次数

访问效率:

存储系统

存储系统

当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些位置上?   
 (映像规则)
当所要访问的块在高一层存储器中时,如何找到该块?
(查找算法)
当发生失效时而且高存储器一层已满,应替换哪一块?
(替换算法)
当进行写访问时,应进行哪些操作?

 (写策略)

存储系统

存储系统

存储系统存储系统

存储系统

存储系统

存储系统

存储系统

替换算法

随机法    先进先出法(FIFO)  最近最少使用法(LRU)

堆栈法:

存储系统

 

比较对法 :
存储系统

 

写回法WB(Write-Back),写回法又称为抵触修改法。   

写直达法,写直达法又称为写通过法WT(Write-  through)

比较写回法与写直达法的优缺点如下:(1) 可靠性:写直达法要优于写回法。
   这是因为写直达法能够始终保持Cache是主存的正确副本。如果Cache发生错误,可以从主存得到纠正。而写回法当发生 上述两种情况时,在一段时间内,Cache并不是主存的正确副本。(2) 与主存的通信量:一般情况下,写回法少于写直达法。原因可以从两方面来分析。
       由于Cache的命中率一般很高,对于写回法,CPU的绝大多数写操作只需写Cache,不必写主存。
       写回法的优点是速度快,“写”操作能以   Cache 存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达 Cache ,不到达主存,因而所使用的存储器频带较低。

①"不按写分配法",这种方法在发生写Cache不命中时,只把所要写的字写入主存,而包括所写字在内的一个块不从主存读入Cache。
  ②"按写分配法",这种方法在写Cache不命中时,除了完成把所写字写入主存之外,还要把包括所写字在内的一个块从主存读入Cache。
       这两种方法效果对于写回法和写直达法有所不同,但差别不大。目前,一般在写回法中采用按写分配法,而在写直达法中采用不按写分配法。
存储系统
混合Cache与分离Cache 
    (1) 指令数据混合Cache(称为统一Cache或混合Cache):同时提供数据和指令,但它有可能会称为瓶颈。例如,当按流水方式工作的处理器执行Load或Store指令时,可能会同时请求一个数据字和一个指令字,导致CPU等待。
    解决这个问题的一个简单的方法:
    将单一的 Cache 分为两个 Cache :一个专门存放指令,另一个专门存放数据

    分离的Cache:将单一的Cache分为两个Cache,一个专门存放指令,另一个专门存放数据。21064有一个8KB的指令Cache,其结构和8KB数据Cache几乎一样。
     提高了系统对存储系统和CPU之间数据通道带宽的要求;能分别对他们进行优化。
     结果:指令Cache的失效率比数据Cache的低;
     消除了因Cache中的指令块和数据块互相冲突而引起的失效。

Cache失效对于一个CPI较小而时钟频率较高的CPU来说,影响是双重的:
CPIexecution越低,固定周期数的Cache失效开销的相对影响就越大。
在计算CPI时,失效开销的单位是时钟周期数。因此,即使两台计算机的存储层次完全相同,时钟频率较高的CPU的失效开销较大,其CPI中存储器停顿这部分也就较大。

      因此Cache对于低CPI、高时钟频率的CPU来说更加重要。 

三种失效(3C)
强制性失效(Compulsory miss)
当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache,这就是强制性失效。 
     (冷启动失效,首次访问失效)
容量失效(Capacity miss ) 

如果程序执行时所需的块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,就会发生失效。这种失效称为容量失效。

冲突失效(Conflict miss)
在组相联或直接映象Cache中,若太多的块映象到同一组(块)中,则会出现该组中某个块被别的块替换(即使别的组或块有空闲位置),然后又被重新访问的情况。这就是发生了冲突失效。

       (碰撞失效,干扰失效)

相联度越高,冲突失效就越少;
强制性失效和容量失效不受相联度的影响;
强制性失效不受Cache容量的影响,但容量失效却随着容量的增加而减少;
表中的数据符合2:1的Cache经验规则,即大小为N的直接映象Cache的失效率约等于大小为N/2的2路组相联Cache的失效率。

 

Cache优化技术

8种用于降低失效率

增加Cache块大小。增加块大小利用了程序的空间局部性。
增加Cache的容量。
提高相联度,降低冲突失效
伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。

 硬件预取技术。在处理器提出访问请求前预取指令和数据。
6. 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
7. 编译器优化,通过对软件的优化来降低失效率。
8. Victim Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。

5种用于减少失效开销
4种用于减少命中时间 

存储系统

 

22)通过避免地址变换加快命中:利用地址的物理部分进行索引。

存储系统

存储系统

存储系统

单体多字存储器           

多体交叉存储器:

高位交叉编译

存储系统

存储系统

 

避免存储体冲突:顺序交叉和取模交叉的地址映象举例

存储系统