信息安全系统设计基础第六周学习总结-吕松鸿

第6章 存储器层次结构

6.1存储技术

6.1.1随机访问存储器

分为两类:静态(SRAM)和动态(DRAM)。

(1)SRAM:高速缓存存储器,既可以在CPU芯片上,也可以在片下。

(2)DRAM:主存以及图形系统的帧缓冲区。

1.静态RAM

SRAM将每个位存储在一个双稳态的存储器单元里。每个单元是用一个六晶体管电路来实现的。该电路有一个属性:可以无限期地保持在两个不同的电压配置或状态之一。

2.动态RAM


每位晶体管数


相对访问时间


持续的?


敏感的?


相对花费


应用


SRAM


6


1x




100xx


高速缓存存储器


DRAM


1


10x




1x


主存,帧缓冲器

3.传统的DRAM

(1)单元(位)被分成d个超单元,每个超单元都由w个DRAM单元组成。

(2)一个d*w的DRAM总共存储了dw位信息。

(3)超单元被组织成一个r行c列的长方形阵列,rc=d.每个超单元有形如(i,j)的地址。

(4)行地址i:RAS  ;列地址:CAS

注意:RAS和CAS请求共享相同的DRAM地址引脚。

4.存储器模块

(1)双列直插存储器模块:168个引脚,以64位为块传送数据到存储控制器和从存储控制器传出数据。

(2)单列直插存储器模块:72个引脚,以32位为块传送数据。

5.增强的DRAM

  • 快页模式DRAM
  • 扩展数据输出DRAM
  • 同步DRAM
  • 双倍数据速率同步DRAM
  • Rambus DRAM
  • 视频DRAM

6.非易失性存储器

只读存储器ROM

(1) 区分:以它们能够被重编程的次数和对他们进行重编程所用的机制来区分的。

PROM(可编程ROM):只能被编程一次。

EPROM(可擦写可编程ROM):

(1) 紫外线光照射过窗口,EPROM单元就被清除为0.

(2) 通过使用一种把1写入EPROM的特殊设备来完成对EPROM编程。

EEPROM(电子可擦除PROM):

(1) 不需要一个物理上独立的编程设备。

(2) 能够被编程的次数的数量级可以达到10^5.

FLASH(闪存):

固态硬盘:基于闪存的磁盘驱动器。

7.访问主存

(1)总线:一组并行的导线,能携带地址、数据、和控制信号。

6.1.2磁盘存储

1.磁盘构造

(1)由盘片构成,每个盘片有两面或者称为表面,表面覆盖着磁性记录材料,盘中央有一个可以旋转的主轴,使得盘片以固定的旋转速率旋转,磁盘通常包含一个或者多个这样的盘片,冰封装在一个密封的容器内。

(2)每个表面由一组称为磁道的同心圆组成的。每个磁道被划分为一组扇区,每个扇区包含相等数量的数据位(512字节),扇区之间由一些间隙分隔开,间隙间不存储数据位。间隙存储用来标识扇区的格式化位。

2.磁盘容量

(1)最大容量(容量):一个磁盘上可以记录的最大位数。

(2)决定因素:

  • 记录密度:磁道一英寸的段中可以放入的位数。
  • 磁道密度:从盘片中心出发半径上一英寸的段内可以有的磁道数。
  • 面密度:记录密度与磁道密度的乘积。

(1)公式:

3.磁盘操作

(1)磁盘是以扇区大小的块来读写数据。

(2)访问时间:

  • 寻道时间:移动传动臂所需的时间。通常3~9ms,一次寻道的最大时间可达20ms。
  • 旋转时间:依赖于当读/写头到达目标磁道时盘面的位置和磁盘的旋转速度。

最大旋转延迟:T(max rotation) = (1/RPM)*(60secs/1min)

平均旋转时间:T(avg rotation)=1/2T(max rotation)

l  传送时间:一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目。

T(avg transfer)= (1/RPM)*(1/(平均扇区数/磁道))*(60secs/1min)

注意:

  • 访问一个磁盘扇区中512个字节的时间主要是寻道时间和旋转延迟。
  • 寻道时间和旋转延迟大致相等,估计磁盘访问时间可将寻道时间x2

4.逻辑磁盘块

(1)一个B个扇区大小的逻辑快的序列,编号为0,1,….,B-1。

(2)磁盘中有一个小的硬件/固件设备,称为磁盘控制器。维护着逻辑块号和实际磁盘扇区之间的映射关系。

5.连接到I/O设备

(1)系统总线和存储器总线是与CPU相关的。

(2)第三方I/O设备

  • 通用串行总线控制器:是一个连接到USB总线的设备的中转机构。
  • 图形卡(适配器):包含硬件和软件逻辑,负责CPU在显示器上画像素。
  • 主机总线适配器:将一个或多个磁盘连接到IO总线,使用的是一个特别的主机总线接口定义的通信协议。

6.访问磁盘

a)CUP通过将命令、逻辑块号和目的存储器地址写到与磁盘相关联的存储器映射地址,发起一个磁盘读。

b)直接存储器访问:磁盘控制器读扇区,并执行到主存的DMA传送

c)当DMA传送完成时,磁盘控制器用中断的方式通知CPU

6.2局部性

两种形式:时间局部性和空间局部性

6.2.1对程序数据引用的局部性

1.顺序引用模式:步长为1的引用模式。

2.c数组在存储器中是按照行顺序来存放的。

6.2.2取指令的局部性

1.代码区别于程序数据的一个重要属性是在运行时它是不能被修改的。

2.当程序正在执行时,CPU只从存储器中读出它的指令。CPU决不会重写或修改这些指令。

6.2.3局部性小结

  • 重复引用同一个变量的程序有良好的时间局部性。
  • 对于具有步长为k的引用模式的程序,步长越小,空间局部性越好。具有步长为1的引用模式的程序有很好的空间局部性。在存储器中以大步长跳来跳去的程序空间局部性会很差。
  • 对于取指令来说,循环有好的空间和时间局部性。循环体越小,循环迭代次数越多,局部性越好。

6.3存储器层次结构

存储技术:不同存储技术的访问时间差异很大。速度较快的技术每字节的成本要比速度较慢的技术高,而且容量较小。CPU和主存之间的速度差距子在增大。

计算机软件:一个编写良好的程序倾向于展示出良好的局部性。

6.3.1存储器层次结构中的缓存

存储器层次结构的中心思想:对于每个k,位于k层的更快更小的存储设备作为位于k+1层的更大更慢的存储设备的缓存。

1.缓存命中

当程序需要第k+1层的某个数据对象d时,首先在当前存储在第k层的一个块中查找d,如果d刚好缓存在第k层中,就称为缓存命中。

2.缓存不命中

(1)即第k层中没有缓存数据对象d。

这时第k层缓存会从第k+1层缓存中取出包含d的那个块。如果第k层缓存已满,就可能会覆盖现存的一个块

覆盖一个现存的块的过程称为替换或驱逐。

3.缓存不命中的种类

(1)强制性不命中/冷不命中

即第k层的缓存是空的(称为冷缓存),对任何数据对象的访问都不会命中。

(2)冲突不命中

由于一个放置策略:将第k+1层的某个块限制放置在第k层块的一个小的子集中,这就会导致缓存没有满,但是那个对应的块满了,就会不命中。

(3)容量不命中

当工作集的大小超过缓存的大小时,缓存会经历容量不命中,就是说缓存太小了,不能处理这个工作集。

4.缓存管理

某种形式的逻辑必须管理缓存,而管理缓存的逻辑可以是硬件、软件,或者两者的集合。

6.3.2存储器层次结构概念小结

6.4高速缓存存储器

早期计算机系统的存储器层次结构只有三层:CPU寄存器、DRAM主存储器和磁盘存储。

L1高速缓存(一级缓存):SRAM高速缓存存储器。位于CPU寄存器文件和主存之间,访问速度2-4个时钟周期。

L2高速缓存:位于L1高速缓存和主存之间,访问速度10个时钟周期

L3高速缓存:位于L2高速缓存和主存之间,访问速度30或40个时钟周期

6.4.1通用的高速缓存存储器结构

1.高速缓存是一个高速缓存组的数组(S,E,B,m)

S:这个数组中有S=2^s个高速缓存组

E:每个组包含E个高速缓存行

B:每个行是由一个B=2^b字节的数据块组成的

m:每个存储器地址有m位,形成M=2^m个不同的地址

2.标记位和有效位

(1)有效位:每个行有一个有效位,指明这个行是否包含有意义的信息

(2)标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块

(3)组索引位:s

(4)块偏移位:b

6.4.2直接映射高速缓存

每个组只有一行(E=1)的高速缓存称为直接映射高速缓存。

高速缓存确定一个请求是否命中,然后取出被请求的字的过程,分为三步:

  • 组选择
  • 行匹配
  • 字抽取

1.组选择

(1)高速缓存从w的地址中间抽取出s个组索引位。

组索引位:一个对应于一个组号的无符号整数。

2.行匹配

注意,判断缓存命中有两个充分必要条件:

  • 该行设置了有效位
  • 高速缓存行中的标记和w的地址中的标记相匹配

3.字选择

4.缓存不命中时的行替换

5.后台运行中的直接映射高速缓存

  • 标记位和索引位连起来唯一的标识了存储器中的每个块
  • 映射到同一个高速缓存组的块由标记位唯一地标识

6直接映射高速缓存中的冲突不命中

(1)抖动:高速缓存反复的加载和驱逐相同的高速缓存块的组。

(2)原因:这些块被映射到了同一个高速缓存组。

(3)解决方法:在每个数组的结尾放B字节的填充(B字节是一个块的长度,一行是一个块,相当于分开了行)从而使得他们映射到不同的组。

6.4.3组相联高速缓存

E路组相联高速缓存:1<E<C/B

1.组选择

和直接的一样。

2.行匹配和字选择

(1) key:标记和有效位。

(2) value:块的内容。

3.不命中时的行替换

有空行替换空行,没有空行,应用替换策略:

(1)   随机替换

(2)   最不常使用策略LFU:替换在过去某个时间窗口内引用次数最少的那一行。

(3)   最近最少使用策略LRU:替换最后一次访问时间最久远的那一行。

6.4.4全相联高速缓存

1.组选择

只有一个组,默认组0,没有索引位,地址只被划分成了一个标记和一个块偏移。

2.行匹配和字选择

(1)同组相联。

(2)只适合做小的高速缓存。

6.4.5有关写的问题

1.直写:立即将w的高速缓存块写回到紧接着的低一层中。

(1)缺点:每次写都会引起总线流量。

2.写回;尽可能的推迟存储器更新,只有当替换算法要驱逐更新过的块时,才把它写到紧接着的低一层中。

(1)优点:由于局部性,显著得减少总线流量。

(2)缺点:增加了复杂性。

3.写不命中的处理方法

(1)写分配:加载相应的低一层中的块到高速缓存中,然后更新这个高速缓存块。

(2)非写分配:避开高速缓存,直接把这个字写在低一层中。

6.4.6一个真实的高速缓存层次结构的解剖

1.高速缓存既保存数据,也保存指令。

  • 只保存指令的:i-cache
  • 只保存程序数据的:d-cache
  • 既保存指令又保存数据的:统一的高速缓存

6.4.7高速缓存参数的性能影响

  • 不命中率 = 不命中数量/引用数量
  • 命中率 = 1 - 不命中率
  • 命中时间
  • 不命中处罚:因为不命中所需要的额外的时间

参考资料

《深入理解计算机系统》

时间: 2024-10-25 17:31:38

信息安全系统设计基础第六周学习总结-吕松鸿的相关文章

信息安全系统设计基础第三周学习总结-吕松鸿

第2章 信息的表示和处理 (一).三种重要的数字表示 无符号数:编码基于传统的二进制表示法(大于或者等于零的数字). 补码:编码是表示有符号整数的最常见方式(为正或者为负的数字). 浮点数:编码是表示实数的科学记数法的以二为基数的版本. 整数的表示虽然只能编码一个相对较小的数值范围,但是是精确的:而浮点数虽然可以编码一个较大的数值范围,但是这种表示是近似的表示. 大量的计算机安全漏洞都是由于计算机运算的微妙细节引发的. (二).信息存储 计算机最小的可寻址的存储器单位——字节 一个字节的值域:0

信息安全系统设计基础第十周学习总结-吕松鸿

第八章 异常控制流 平滑:指在存储器中指令都是相邻的. 突变:出现不相邻,通常由诸如跳转.调用.和返回等指令造成. 异常控制流ECF:即这些突变. 关于ECF: 1.ECF是操作系统用来实现I/O.进程和虚拟存器的基本机制 2.应用程序通过使用一个叫做陷阱或者系统调用的ECF形式,向操作系统请求服务 3.ECF是计算机系统中实现并发的基本机制 4.软件异常机制——C++和Java有try,catch,和throw,C中非本地跳转是setjmp和longjmp 第一节 异常 异常是异常控制流的一种

信息安全系统设计基础第八周学习总结-吕松鸿

第10章 系统级I/O I/O:在主存和外部设备之间拷贝数据的过程. 10.1Unix I/O 一个Unix文件就是一个m个字节的序列: B0,B1,B2…Bk…B(m-1) 1.所有的输入输出都能以一种统一且一致的方式来执行: (1)打开文件 a.描述符:内核返回一个小的非负整数,它在后续对此文件的所有操作中标识这个文件. b. Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入(描述符为0).标准输出(描述符为1).标准错误(描述符为2). (2)改变当前的文件设置. (3)读写文

信息安全系统设计基础第十三周学习总结-吕松鸿

第九章 虚拟存储器 虚拟存储器是计算机系统最重要的概念之一,它是对主存的一个抽象 三个重要能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存 它为每个进程提供了一致的地址空间,从而简化了存储器管理 它保护了每个进程的地址空间不被其他进程破坏 9.1 物理和虚拟寻址 1.物理地址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每字节都有一个唯一的物理地址PA. 根据物理地址寻

信息安全系统设计基础第五周学习总结-吕松鸿

第四章  处理器体系结构 4.1 Y86指令集体系结构 4.11程序员可见的状态 1.程序员可见状态: Y86程序中的每条指令都会读取或修改处理器状态的某些部分. 2.“程序员”: 既可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器. 3.程序寄存器: (1)8个,%eax.%edx.%ebx.%esi.%edi.%esp和%ebp. (2)处理器的每个程序寄存器存储一个字. (3)寄存器%esp被入栈,出栈,调用和返回指令作为栈指针. (4)其他情况,有三个一位的条件码:ZF,SF和

20135223何伟钦—信息安全系统设计基础第六周学习总结

第四章:处理器体系结构 ISA指令集体性结构——处理器支持的指令和指令的字节编码 HCL硬件控制语言—描述处理器设计 Y86——定义一个指令集体系结构,包括定义各种状态元素.指令集和他们的编码.一组编程规范和异常事件处理. 一.Y86指令集体系结构 (一)程序员可见的状态 1.Y86程序 每条指令都会读取或修改处理器状态的某些部分 2.程序员 可以是用汇编代码写程序的人,也可以是产生机器级代码的编译器. 3.处理器状态(类似于IA32) ①8个程序寄存器,%eax,%ecx,%edx,%ebx,

信息安全系统设计基础第六周学习总结

第六章 存储器层次结构 1.存储技术 三种常见存储技术:RAM/ROM/磁盘 (1)随机访问存储器RAM 两类:静态RAM(SRAM)和动态RAM(DRAM) 静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵很多. 静态RAM SRAM将每个位存储在一个双稳态的存储器单元里,每个单元是用一个六晶体管电路来实现的. 这个电路的一个属性:它可以无限制地保持在两个不同的电压配置或状态之一.其他任何状态都是不稳定的. - 特点:由于SRAM的双稳态特性,只要有电,它就会永远地保持它的值,即使有

20135234马启扬-——信息安全系统设计基础第六周学习总结

处理器体系结构 4.1 Y86指令集体系结构 4.1.1程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态. 4.1.2 Y86指令 4个指令:irmovl,rrmovl,mrmovl,rmmovl,分别显示地指明源和目的的格式 4个整数操作指令:addl,subl,andl,xorl 7个跳转码指令jmp,jle,jl,jne,jge,jg 6个条件传送指令cmovle,cmovl,cmove,cmovge,cmovg call指令将返回地址入栈,然后

20145216史婧瑶《信息安全系统设计基础》第九周学习总结

20145216史婧瑶<信息安全系统设计基础>第九周学习总结 教材内容总结 第十章 系统级I/O 输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程. 第一节 Unix I/O 这一节涉及到操作系统的基本抽象之一--文件.也就是说,所有的I/O设备都被模型化为文件,而所有的输入输出都被当做对相应文件的读/写.相关的执行动作如下: 1.打开文件: 应用程序向内核发出请求→要求内核打开相应的文件→内核返回文件描述符 文件描述符:一个小的非负整数,用来在后续对此文件的所有操作中标识这个文件.有