20135323符运锦-信息安全系统设计基础第七周学习总结
学习计时:共11小时
读书:5小时
代码:2小时
作业:2小时
博客:2小时
第六章 存储器层次结构
第一节 存储技术
随机访问存储器
- 1. 静态RAM(SRAM):用来作为高速缓存存储器,每个位存储在一个双稳态的存储器单元里。双稳态:电路可以无限期的保持在两个不同的电压配置或者状态之一。只要供电,就会保持不变。
- 2. 动态RAM(DRAM):用来作为主存以及图形系统的帧缓冲区。将每个位存储为对一个电容的充电,当电容的电压被扰乱之后,他就永远都不会再恢复了。暴露在光线下会导致电容电压改变。优势是密集度低,成本低。
- 3.传统的DRAM:DRAM芯片中的单元(位)被分成了d个超单元,每个超单元都由w个DRAM单元组成, 一个d*w的DRAM共存储dw位信息。超单元被组织成一个r行c列的长方形阵列,rc=d。每个超单元的地址用(i,j)来表示(从零开始)。设计成二维矩阵是为了降低芯片上地址引脚的数量。息通过称为引脚的外部连接器流入/流出芯片,每个引脚携带一个1位信号。DRAM芯片包装在存储器模块中,它是插到主版的扩展槽上的。
- 4.存储器模块:DRAM芯片包装在存储器模块中,是插在主板的扩展槽上的。168个引脚的双列直插存储器模块-以64位为块传送或传出数据。72个引脚的单列直插存储器模块-以32位为块传送数据。
- 5.增强的DRAM:
快页模式DRAM:许对同一行连续的访问可以直接从行缓冲区得到服务。
扩展数据输出DRAM:允许单独的CAS信号在时间上靠的更紧密一点。
同步DRAM:用驱动存储控制器相同的外部时钟信号的上升沿来替代许多的异步信号,比异步的更快。
双倍数据速率同步DRAM:通过使用两个时钟沿作为控制信号,使得DRAM的速度翻倍。
- 6.非易失性存储器:如果断电,DRAM和SRAM都会丢失信息。非易失型存储器:即使在关电后,也仍然保存着它们的信息;称为ROM。PROM:只能被编程一次。可擦写可编程ROM(EPROM):紫外线光照射过窗口,EPROM就被清除为0,被擦除和重编程的次数为1000次。电子可擦除ROM(EEPROM):不需要一个物理上独立的编程设备,因此可以直接在印制电路卡上编程,能够编程的次数为10^3。闪存:基于EEPROM,为大量的电子设备提供快速而持久的非易失性存储。当一个计算机系统通电之后,它会运行存储在ROM中的固件。
- 7.访问主存:总线是一组并行的导线,能携带地址、数据和控制信号。数据流通过总线在处理器和DRAM主存之间来回。控制线携带的信号会同步事务,并标识出当前正在被执行的事务的类型。CPU和主存之间的数据传送是通过一系列步骤来完成的,称为总线事务。.I/O桥、芯片组、主存:前两者之间通过系统总线连接;后两者通过存储器主线连接。在读写事务中,均是分三步完成。
磁盘存储
- 磁盘构造:磁盘由盘片构成,表面覆盖着磁性记录材料,中央有一个可以旋转的主轴 ,旋转速率大约为5400-15000每分钟。磁盘的每个表面是一组称为磁道的同心圆组成,每个磁道被划分为一组扇区,扇区之间由一些间隙隔开,间隙存储用来标识扇区的格式化位。磁盘是保存大量数据的存储设备;但读取速度慢。柱面:所有盘片表面到主轴中心距离相等的磁道的集合。
- 磁盘容量:一个磁盘上可以记录的最大位数称为最大容量,即容量。记录密度:磁道一英寸的段中可以放入的位数;磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数;面密度:记录密度与磁道密度的乘积。
- 磁盘操作:磁盘用读/写头来读写存储在磁性表面的位,读写头连接到传动臂,前后移动传动臂可以到达任何磁道,定位到了期望的道,磁道旋转每个位通过时就可读写该位。多个盘片针对每一个都有独立的读写头,且位于同一柱面上。对扇区的访问主要有三个部分:寻道时间:依赖于读/写头以前的位置和传动臂在盘面上移动的速度。旋转时间:驱动器等待目标扇区的第一个位旋转到读/写头下,依赖于盘面位置和旋转速度。最大旋转延迟。传送时间:依赖于旋转速度和每条磁道的扇区数目,平均传送时间。访问一个磁盘扇区内容的平均时间为平均寻道时间,平均旋转延迟和平均传送时间之和。
- 逻辑磁盘块:的是为了向操作系统隐蔽磁盘的结构复杂性。磁盘将其呈现为一个有B个扇区的逻辑块的序列;磁盘中有一个固件设备——磁盘控制器,维护者逻辑酷爱号和实际磁盘扇区之间的映射关系。操作系统是以逻辑块号为单位进行寻址操作的。
- 连接到I/O设备:输入输出设备都是通过I/O总线连接到CPU和主存的。与系统总线和存储器总线不同,它可以设计成与CPU无关的。通用串行总线:一个广泛的使用标准,用于连接各种外围I/O设备。图形卡(或适配器)包含硬件和软件逻辑,代表CPU在显示器上画像素。主机总线适配器将一个或多个磁盘连接到I/O总线,使用特别的主机总线接口定义的通信协议。其他设备,如网络适配器,插入到主板上空的扩展槽,从而连接到I/O总线。
- 访问磁盘:CPU使用一种称为存储器映射I/O的技术来向I/O设备发出命令的。在使用其的系统中,地址空间中,有一块地址是为与I/O设备通信保留的;叫做I/O端口
固态硬盘
- 固态硬盘是一种基于闪存的存储技术。一个硬盘包由一个或者多个闪存芯片和内存翻译层组成,闪存芯片替代旋转磁盘中的机械驱动器,而闪存翻译层将对逻辑块的请求翻译成对底层物理设备的访问
SSD优点:随机访问时间比旋转磁盘更快,能耗更低,更结实。SSD缺点:容易磨损,较贵,容量通常只是旋转磁盘的1%
存储技术趋势
- 不同的存储技术有不同的价格和性能折中。不同存储技术的价格和性能属性以截然不同的速率变化着。增加密度从而降低成本比降低访问时间更容易,DRAM和磁盘的性能滞后于cpu的性能。
第二节 局部性
对程序数据引用的局限性
- 时间局部性(temporal locality):被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。
- 空间局部性(spatial locality):如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
- 一个连续变量中,每隔k个元素进行访问,就被称为步长为k的引用模式。
取指令的局限性
- 程序指令是存放在存储器中的,CPU必须取出(读出)这些指令。
局限性小结
第三节 存储器层级结构
存储器层次结构中的缓存
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
3.
二、直接映射高速缓存
1、根据E(每个组的高速缓存行数)划分高速缓存为不同的类,E=1的称为直接映射高速缓存。
2
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. 在每个循环内部缓存不命中数量最小。
第六节 综合:高速缓存对程序性能的影响
参考资料
- www.Topsage.com(深入理解计算机系统)PDF
遇到的问题
存储器山那个图像感觉半知半解,希望老师能做系统讲解。
体会
本章节主要讲存储器及相关结构,相对易懂,但仍然存在一些问题,我会在今后的学习中继续加油,力争上游。