学习计时:共11小时
读书:5小时
代码:2小时
作业:2小时
博客:2小时
第六章 存储器层次结构
快页模式DRAM:许对同一行连续的访问可以直接从行缓冲区得到服务。
扩展数据输出DRAM:允许单独的CAS信号在时间上靠的更紧密一点。
同步DRAM:用驱动存储控制器相同的外部时钟信号的上升沿来替代许多的异步信号,比异步的更快。
双倍数据速率同步DRAM:通过使用两个时钟沿作为控制信号,使得DRAM的速度翻倍。
SSD优点:随机访问时间比旋转磁盘更快,能耗更低,更结实。SSD缺点:容易磨损,较贵,容量通常只是旋转磁盘的1%
1.存储器层次结构的中心思想是:对于每个k,位于k层的更快更小的存储设备作为位于(k+1)层的更大更慢的存储设备的缓存。第(k+1)层的存储器被划分成连续的数据对象片,称为块;数据总是以块大小为传送单元在相邻两层之间来回拷贝的;在任何时刻,第k层的缓存包括第(k+1)层块的一个子集的拷贝。
2.缓存命中:当程序需要第k+1层的某个数据对象d时,首先在当前存储的第k层的一个块中查找d,如果d刚好在第k层中,则称为缓存命中。缓存不命中:如果k层中没有缓存数据d,则称为缓存不命中,此时要从k+1层取出包含d的块,可能会覆盖(替换/驱逐)现在的一个块(牺牲块)。决定该替换哪个快是缓存的替换策略来控制的。
3.缓存不命中的种类:强制性不命中/冷不命中:第k层的缓存为空(称为冷缓存),任何访问都会不命中。冲突不命中:放置策略为将第k+1层的块限制放置在第k层块的一个小的子集中。容量不命中:每个阶段访问缓存块的某个相对稳定不变的集合,称为这个阶段的工作集。
4.缓存管理:指某个东西要将缓存划分成块,在不同层之间传递块,判定是命中还是不命中,并处理他们。
L1高速缓存:2~4个时钟周期。L2高速缓存:10个时钟周期。L3高速缓存:30~40个时钟周期
1.S:这个数组中有S=2^s个高速缓存组。E:每个组包含E个高速缓存行。B:每个行是由一个B=2^b字节的数据块组成的。m:每个存储器地址有m位,形成M=2^m个不同的地址
2. 有效位:每个行有一个有效位,指明这个行是否包含有意义的信息。标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块。组索引位:s。块偏移位:b
1、根据E(每个组的高速缓存行数)划分高速缓存为不同的类,E=1的称为直接映射高速缓存。
3.组选择:高速缓存从要抽取的字的地址中抽取出S个组索引位,这些位被解释成一个对应于一个组号的无符号整数。
4. 行匹配:当且仅当设置了有效位,而且高速缓存行标记与w的地址中的行标记相匹配时,这一行中包含w的一个拷贝。
5. 字抽取:块偏移位提供了所需要的字的第一个字节的偏移。
6. 直接映射高速缓存中不命中时的行替换:需要从存储器层次结构中的下一层取出被请求的块,然后将新的块存储在组索引位指示的组中的一个高速缓存行中。
每个组都保存有多于一个的高速缓存行。一个 1<E<C/B 的高速缓存通常称为E路组相联高速缓存。
1.组选择:组索引位标识组
2. 行匹配和字选择:行匹配更复杂,必须检查多个行的标记位和有效位,字选择与前面一样。
3. 不命中时的行替换:缓存不命中时,高速缓存从存储器中取出包含这个字的块,替换行时,如果没有空行,按照替换策略替换。
1. 组选择:只有一个组,没有组索引位。
2. 行匹配和字选择:与组相连高速缓存是一样的,但规模大很多,因此只适合做小的高速缓存,例如虚拟存储系统中的翻译备用缓冲器。
1. 直写,立即将w的高速缓存块协会到紧接着的低一层中。
2. 写回,只有当替换算法要驱逐更新过的块时,才写到紧接着的低一层中
3. 写分配:加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。
4. 非写分配:避开高速缓存,直接把这个字写到低一层中。
3相联度的影响:降低了高速缓存由于冲突不命中出现抖动的可能性
1. 让最常见的情况运行的快。
2. 在每个循环内部缓存不命中数量最小。
存储器山那个图像感觉半知半解,希望老师能做系统讲解。
本章节主要讲存储器及相关结构,相对易懂,但仍然存在一些问题,我会在今后的学习中继续加油,力争上游。