《深入理解计算机系统》 第六章 存储器层次结构 读书笔记

来源:互联网 发布:什么是淘宝众筹 编辑:程序博客网 时间:2024/04/28 09:24

0、存储器层次结构的主要思想

存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构,主要由CPU、高速缓存存储器、主存、磁盘构成。一个存储器层次是下一层次的缓存(从集合论上看可理解为子集)。

由于成本原因,主存无法用快速访问的SRAM制造。又由于编写良好的程序具有局部性的特点,它更倾向于频繁访问某一层次上的存储设备。所以与CPU直接访问DRAM主存相比,利用存储器层次化的系统在(少数次)访问底层存储设备的更大开销(指的是CPU等待存取的时钟周期)可以通过多数次访问高速缓存得到补偿。存储器层次结构的整体效果就是存储器池的成本与层次结构底层最便宜的存储设备相当,但是却以接近于层次结构顶部存储设备的高速率向程序提供数据。


1、存储技术

1.0、易失性存储器

1.0.0、SRAM和DRAM

1.0.1、传统的DRAM与增强的DRAM

传统DRAM

     如下图,每个方块代表由w位(一般为8位,这样一个超单元就表示一个字节)bit组成的超单元,整个DRAM由d个超单元组织成二维阵列构成。DRAM中的数据以超单元为单位访问。通过地址引脚传入的RAS(行访问选通脉冲)和CAS(列访问选通脉冲)访问某个超单元,然后加载目标所在行到内部行缓冲区,通过8位的数据引脚输出目标。

     之所以将超单元组织成二维阵列而非线性数组,是为了减少地址的位数,尽管需要付出增加一个传入地址的代价。

增强的DRAM:快页模式DRAM(FPM DRAM) ,扩展数据输出DRAM (EDO DRAM),同步DRAM(SDRAM),双倍数据速率同步DRAM(DDR SDRAM)

1.0.2、存储器模块:

将b个DRAM芯片包装成一个存储器模块,b字节数据被同时存取。缓存中常提到的块就是这样一个存储器模块的一个访问单位。



1.0.3、访问主存:数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回。总线间数据传送的步骤称为总线事务。

1.1、非易失性存储器

1.1.0、ROM(只读存储器)

       实际上ROM中有的类型既可以读也可以写,仍称之为“只读存储器”是历史原因。存在ROM中的程序称为固件,当一个计算机系统通电以后,它会运行存储在ROM中的固件。一些系统在固件中提供了少量基本的输入输出函数。

ROM可按照它们能够被重编程的次数和对它们进行重编程所用的机制分类为:

PROM(可编程ROM),EPROM(可擦写可编程ROM),闪存(基于EEPROM),固态硬盘(SSD,基于闪存)


1.1.1、磁盘

1.1.1.0、磁盘构造


1.1.1.1、磁盘操作

寻道、旋转、读取

时间开销主要是寻道时间和旋转延迟造成。

1.1.1.2、逻辑磁盘块

磁盘中有一个小的硬件/固件设备,称为磁盘之气空啊,维护着逻辑块号和实际物理磁盘扇区之间的映射关系。

1.1.2、固态硬盘(SSD)

固态硬盘结构:闪存翻译层与磁盘控制器作用相同,一个闪存由B个块序列组成,每个块由P页组成。通常页的大小是512~4KB,块是由32~128页组成。数据是以页为单位读写

的。只有在一页所属的整个块被擦除后(有效内容拷贝到其他块)才可写这一页。


闪存由半导体存储器构成,没有移动的部件,因而随机访问时间比旋转磁盘快,能耗更低,同时也更结实。不过闪存块在反复读写后会磨损,所以闪存块有使用寿命

1.2、存储技术趋势


2、程序的局部性

时间局部性:被引用过一次的存储器位置很可能在不远的将来再被多次引用。

空间局部性:被引用过一次的存储器位置附近的数据可能在不远的将来被引用。

取指令的局部性:指令也是存储在存储器中的,循环的时间和空间局部性是好的。循环体越小,迭代次数越多,局部性越好。


3、存储器的层次结构



3.0、缓存

3.0.0、概念

第k+1层的存储器被划分成连续的数据对象片,称为块。每个块都有唯一的地址或名字以区别于其他块。数据总以块大小为传送单元在第k层和第k+1层之间来回拷贝。虽然在层析结构中任何一对相邻的层次之间块大小是固定的,但是其他的层次对之间可以有不同的块大小。第k层存储的块集合是第k+1层的子集的拷贝。

3.0.1、缓存不命中

类别:冷不命中,冲突不命中,容量不命中。

策略:替换(或称驱逐)一个现存块,替换策略有随机替换策略、最近最少被使用替换策略等。

3.1、通用的高速缓存存储器结构(层次对间地址空间“多对少”的映射策略)

3.1.0、可用(S,E,B,m)来描述一个高速缓存的结构。如下图,右图每种不同色代表一个块,且块映射到不同组。


3.1.1、分类:直接映射高速缓存、全相联高速缓存、组相联高速缓存(前两者的折中)

3.1.2、访问某个存储器地址的过程:逐级访问各存储器层次,进行三步——组选择,行匹配,字抽取(若命中)——直到命中

3.2、关于写操作

直写与非写分配:直写是指命中后立即将目标字所在命中块写回到紧接着低一层中;非写分配是指不命中时直接将目标字写到低一层中。

写回与写分配:写回是指命中后延迟更新低一层直到命中块被驱逐;写分配是指不命中时加载响应的低一层中的块到高速缓存中,然后更新这一高速缓存块(试图利用写的空间局部性)。

3.3、高速缓存参数的性能影响:

与性能相关的一些量化指标:不命中率、命中率、命中时间、不命中处罚。

高速缓存参数对性能的影响:缓存大小的影响,块大小的影响,相联度的影响,写策略的影响。


4、一个真实的高速缓存层次结构:


5、编写高速缓存友好代码:a、让最常见的情况运行得快;b、在每个循环(程序的时间开销主要在循环,多重循环主要看内层循环)内部缓存不命中的数量最小

6、存储器系统的性能----存储器山





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁四个月宝宝有点斜颈怎么办? 六个月的宝宝脖子有点歪怎么办 情感交叉擦腿综合症心里治疗怎么办 坐月子受风了胳膊腿疼怎么办 劲椎手术两个月双腿疼痛麻这怎么办 手机里存的照片删除了怎么办 买了好几双鞋子都不防滑怎么办 电脑平车车加绒过厚不起线怎么办 碰见那种看不起人的店员应该怎么办 在食品厂上班載卫生帽头发痒怎么办 工司没给员工上保险离职后怎么办 货物被香港律政司扣了怎么办 室友考研要跟我考一样的学校怎么办 药流第一天才吃了一粒米非司怎么办 药流半月同房第二天大出血怎么办 口臭想让它变得不臭怎么办 来单位干了几天不满意想离职怎么办 药流吃药期间吃什么吐什么怎么办 养狗家里味道大怎么办养花有用吗 第一天上班站的脚疼怎么办 入职没有人事所需要的证书怎么办 入职第一天后不想去了怎么办 警察在执法过程中殴打群众怎么办 肾结石打了3天针痛得厉害怎么办 征兵体检过了到部队退兵怎么办 圆通快递要求退回结果被签收怎么办 新生儿蛋蛋淹了破皮了怎么办 要是和同学玩的时候打到睾丸怎么办 睾丸撞了一下里面碎了怎么办 睾丸被蚊子咬了挠坏流水疼怎么办 沐浴乳大量的灌注到尿道里怎么办 当电脑显示有文件损害时怎么办? 电脑上的压缩包手机上打不开怎么办 第五人格多酷账号退出了怎么办 更新显卡驱动时屏幕关闭了怎么办 不知道杯孕做了两次C丁怎么办 小说签约后更不到要求的字数怎么办 电脑中了感染病毒杀不干净怎么办 电脑下载的软件有病毒了怎么办 电脑强制关机后开不了机怎么办 受刺激后出现精神异常该怎么办