计算机系统-存储器层次结构

存储

补充:内存和主存的区别,cache,寄存器之间的关系

1.     
寄存器:中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。寄存器是CPU内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。

2.    内存包含的范围非常广,一般分为只读存储器(ROM)、随机存储器(RAM)和高速缓存存储器(cache)。

3.     
Cache :即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache的出现缓解了CPU和内存之间运算速度差异的情况。

金字塔结构

寄存器

高速缓存cache

内存ram

磁盘

脱机存储器

读取数据的流程:CPU  <— > 寄存器<— > 缓存<— >内存

寄存器的工作方式很简单,只有两步:(1)找到相关的位,(2)读取这些位。

内存的工作方式就要复杂得多:

(1)找到数据的指针。(指针可能存放在寄存器内,所以这一步就已经包括寄存器的全部工作了。)

(2)将指针送往内存管理单元(MMU),由MMU将虚拟的内存地址翻译成实际的物理地址。

(3)将物理地址送往内存控制器(memory controller),由内存控制器找出该地址在哪一根内存插槽(bank)上。

(4)确定数据在哪一个内存块(chunk)上,从该块读取数据。

(5)数据先送回内存控制器,再送回CPU,然后开始使用。

随机访问存储器RAM:ramdom-access memory

RAM一般封装成芯片形式,基本单元是cell单元,多个RAM芯片构成内存

SRAM:静态随机访问存储器

每个单元保存一位(bit),只要保持供电,将会永远保持它的值;应用于高速缓存(cache),相对价格贵(100倍)

DRAM:动态随机存储器

每位存储是对一个电容的放电。每10-100ms重新刷新存储器的每一位;应用于主存,图形系统帧缓冲区

DRAM芯片结构:d*wDRAM 分成d个超单元,每个超单元由w个DRAM单元组成

读取DRAM超单元(2,1)内容:

行访问脉冲RAS选中行2,整个行2 拷贝到内部行缓冲器

列访问选通脉冲CAS选中列1

将超单元(2,1)的内容从超单元读取出来,通过数据线发送到存储控制器。设计成二维矩阵降低了引脚数量,简化了硬件设计,缺点是分两步进行增加了访问时间。

存储器模块

存储器模块由多个DRAM芯片的组合而成

主存:存储器模块+存储控制器

增强的DRAM有更好的交互逻辑接口和更快的I/O

非易失性存储器:

DRAM和SRAM都是易失性存储器,断电后信息丢失。

断电后依然能保存其信息为非易失性存储器:

l  只读存储器ROM:仅在生产时可写

l  可编程ROM:只能被编程一次

l  可擦写PROM:可擦除和重编程上千次

l  电子可擦除EEPROM:可写10^5次

l  闪存FLASH:部分可擦除的EEPROM,大约100000次会损伤

访问主存(事务)

总线事务:一系列完成CPU和主存间的数据传输的步骤

事务:一系列对系统中数据进行访问和更新的操作所组成的一个程序,执行逻辑单元

四个特性:

l  原子性:要么全执行,要么全不执行

l  一致性:执行结果必须是使系统从一个一致性状态转变到另一个一致性状态

l  隔离性:不同事务并发操作相同数据时,每个事务都有各自完整的数据空间

l  持久性:事务一旦提交,他对对应数据状态变更应该是永久性的

读事务(加载):从主存读数据到cpu

写事务(存储):从cpu写数据到主存

总线:一组并行的导线,能携带地址,数据和控制信号。由多个设备共享,事务占用总线。

读事务过程:movl A,%eax

CPU将地址A放到存储器总线上

主存从存储总线读取A,取出数据字X,

再将X放到总线上

CPU从总线读出字X,并将X复制到寄存器%eax中

磁盘构造(机械硬盘)

盘片:由重叠的一组覆盖磁性记录材料的盘片构成

主轴:5400-15000转,盘片中央,可旋转

磁头:读写工具,每个面有一个磁头

磁道:若干同心环状磁道,肉眼看不见,并不是紧挨的。

扇区:每个磁道被间隙等分为若干个弧段,这些弧段就是扇区

柱面:相同编号的磁道形成一个圆柱,称为柱面

磁盘容量:

容量:可以保存的最大位数,即最大容量。1gb=10^9nytes

容量的大小取决于以下因素:

记录密度:磁道中一英寸的段中可放入多少位数

磁道密度:自盘片中心发出半径为

面密度:记录密度和磁道密度的乘积

扇区sector划分:

旧硬盘:每个盘面上的track划分为等量的sector,优点是便于数据读取,缺点是位于盘面外部的track太大,存在浪费。

新硬盘:多区记录技术multiple zone recording。MZR将磁盘不同的track划分为多个zone。同一zone的track具有等量的sector。扇区数由该区最里面的磁道包含的扇区数确定,位于盘面外侧zone的track划分的sector要比内存的zone的track多。

计算磁盘容量:

磁盘容量=字节数平均盘区数磁道数表面数盘片数/(扇区磁道表面盘片磁盘)

磁盘访问:

磁盘以扇区为单位来读写数据,对扇区的访问时间由三个部分组成:

寻道时间:读写头移动,定位到目标扇区的磁道上方

旋转时间:盘面逆时针旋转,等待目标扇区第一位数据到达读写头下部的时间

传送时间:读写该扇区的时间,与旋转速度和每条磁道的扇区数目有关。

主轴带动盘面转动,磁头实现数据读写

平均访问时间=寻道时间+旋转时间+传送时间

主要由寻道时间和旋转时间确定。、

逻辑磁盘区

现代磁盘将复杂的扇区结构简单抽象为:一组可用的扇区被视为一个逻辑块序列,编号为0,1,2----

磁盘控制器维护着逻辑块号和实际物理扇区之间的映射关系

磁盘控制器是一个硬件设备,将逻辑块号翻译为一个(盘面,磁道,扇区)的三元组,以唯一表示对应的物理扇区。允许控制器给每一个区预留一组柱面作为备用。

I/O总线-连接I/O设备

访问磁盘

磁盘-主存-CPU

对磁盘的数据访问,并不是直接从磁盘到CPU,而是通过存储器作为桥梁。CPU采用存储器映射I/O技术向I/O设备发送命令。

I/O端口:内存地址空间中一块用于与I/O设备通信保留的,这块地址称为内存的I/O端口。

设备与I/O端口的映射,设备连接到总线后,该设备与内存的一个或多个I/O端口关联。从而实现映射。

读一个磁盘扇区的过程:

Cpu不干预主存的数据传送过程

一个GHZ的CPU时钟周期是1ns,读磁盘的16ms时间内,CPU可以在内部执行1600万,不可能让CPU等待。

DMA传送:设备自己执行读或写总线事务,不需要CPU干涉的过程,就是DMA。

固态硬盘(SSD)-不再依靠旋转

固态硬盘的优势是五机械的移动部件,随机访问更快,能耗更低,更结实。缺点是可能会磨损。

局部性:以前用过的还接着用!

缓解了CPU-主存间的执行速度差异

局部性原理:一个编写良好的程序倾向于引用最近引用过的数据本身,或者引用临近于其最近引用过的数据本身,或者引用临近于其最近引用过的数据项的数据项。

时间局部性:最近被引用过的数据可能很快被多次引用

空间局部性:一个存储位置被引用了一次,很可能其附近存储位置就会被引用

重复引用同一个变量的程序有良好的时间局部性。

对于步长为k的引用模式的程序,步长越小,空间局部性越好。

具有步长为1的引用模式的程序有很好的空间局部性,大长步的跳来跳去的程序空间局部性会很差。

对于取指令来说,循环有好的时间和空间局部性。

存储器层次结构:

高速缓存cache

一个小而快的存储设备,作为存储在更大,更大设备中的数据对象的缓冲区域

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

由于局部性,相对于层次k+1的数据,程序倾向于频繁访问层次k的数据

Big
Idea :存储器层次结构创建了一个价格接近最底层存储层次大容量存储。而读取数据的速率最接近顶层的存储层次。

命中,需要块b中的数据,而b就在cache中。

不命中:b不在cache中,从主存中取出块b。块b被放入cache。

冷不命中:强制不命中。如果缓存为空。则对任何数据的访问都是不命中。

冲突不命中:采用严格的放置策略。第k

+1层的某个块被限制的放入第k层块的一个小的子集中。如k+1层的块i必须放在k层的imod4块中。缓存够大,但是所需的多个数据块被映射到同一个缓存块中,导致发生冲突不命中。

容量不命中:需访问相对稳定不变的数据集合,这个块的集合称为这个阶段的工作量,工作集超过缓存大小。

小结:CPU与主存及大容量存储设备之间的速度差异持续扩大。因此要编写良好的程序,保证局部性。存储层次结构正是利用了局部性,基于缓存,以缩小上述差异。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值