存储器的层次结构学习记录

重要知识点

三种常见的存储技术

RAM,ROM,磁盘。

随机访问存储器(RAM)

  • 分类:静态RAM(SRAM)和动态RAM(DRAM)。
  • 两类RAM区别:静态RAM比动态RAM更快,但也贵得多且功耗更大。
  • SRAM的特点:SRAM每个位都存储在一个双稳态的存储器单元里,因此其存储单元具有双稳态特性,只要有电,它就会永远保持它的值。即使有干扰,例如:电子噪音,来扰乱电路,当干扰消除时,电路就会恢复到稳定值。
  • DRAM的特点:DRAM将每一个位存储为对每个电容的充电。所以其存储器单元对干扰非常敏感。当电容的电压被扰乱之后,它就永远不会恢复了。暴露在光线下会导致电容电压改变。

非易失性存储器(ROM)

  RAM断电会丢失它们的信息,所以它们是易失的,而ROM即使断电后也仍然保存着它们的信息。由于历史原因,虽然ROM中有的类型即可以读也可以写,但是它们整体上都称为只读存储器。ROM是以它们能够被重编程(写)的次数和它们进行重编程所用的机制进行区分。

  • PROM(Programmable ROM)只能被编程一次。PROM的每个存储单元都有一种熔丝,它只能用高电流熔断一次。
  • EPROM(Erasable Programmanble ROM 可擦写可编程ROM)能够擦除和重新编程的数量级能够达到1000次。
  • EEPROM(Electrically Erasable PROM 电子可擦除ROM)能够被编程的次数的数量级可以达到次。
  • FLASH(flash memory 闪存)是一类非易失性存储器,基于EEPROM,它已经成为了一种重要的存储技术。

访问主存

  数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传送都是通过一系列的步骤来完成的,这些步骤称为总线事物。

  • 读事物:从主存传送数据到CPU。
  • 写事物:从CPU传送事物到主存。
  • 总线:一组并行的导线,能携带地址、数据和控制信号。

    |--可分为数据总线、控制总线、地址总线、系统总线、存储总线、I/O总线等。如下图所示:

磁盘存储

  磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千千兆字节。

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

  磁盘的每个表面是由一组称为磁道的同心圆组成的。每个磁道被划分为一组扇区。每个扇区包含相等数量的数据位(通常是512字节),这些数据编码在扇区上的磁性材料中。扇区之间由一些间隙分隔开,这些间隙中不存储数据位。间隙存储用来标识扇区的格式化位。磁盘制造商通常用术语柱面来描述多个盘片驱动器的构造,这里,柱面是所有盘片表面上到主轴中心的距离相等的磁道距离的集合。

磁盘容量

一个磁盘上可以记录的最大位数称为它的最大容量,或者简称为容量。磁盘容量是由以下因素决定的:

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

计算公式如下:

磁盘操作

磁盘用读/写头来读写存储在磁性表面的位,而读写头连接到一个传动臂的一端。

寻道:通过沿着传动臂,驱动器将读/写头定位在盘面上的任何磁道上。

磁盘以扇区大小的块来访问数据。对扇区的访问时间有三个主要的部分:

  1. 寻道时间:为了读取某个目标扇区的内容,传动臂首先将读/写头定位到包含目标扇区的磁道上。移动传动臂在盘面上所需时间称为寻道时间。
  2. 旋转时间:一旦读/写头定位到了期望的磁道,驱动器等待扇区的第一个位旋转到读/写头下。这个步骤的性能依赖于当读/写头到达目标磁道时盘面的位置和磁盘的旋转速度。在最坏的情况下,读写头刚刚错过了目标扇区,必须等待磁盘转一整圈。因此最大旋转延迟如下:

  3. 传送时间:当目标扇区的第一个位位于读/写头下时,驱动器就可以开始读或者写该扇区的内容了。一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目。因此,我们可以粗略第估计一个扇区以秒为单位的平均传送时间如下:

逻辑磁盘块

  为了对操作系统隐藏磁盘构造的复杂性,现代磁盘将它们的构造呈现为一个简单的视图,一个B个扇大小的逻辑块序列,编号为0,1,…,B-1。磁盘中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际(物理)磁盘扇区之间的映射关系。

操作系统的I/O操作的具体过程

例:当读一个磁盘扇区的数据到主存,操作系统会发送一个命令道磁盘控制器,让它读某个逻辑块号。控制器上的固件执行一个快速表查找,将一个逻辑块号翻译成一个(盘面,磁道,扇区)的三元组,这个三元组唯一地标识了对应的物理扇区,控制器上的硬件解释这个三元组,将读/写头移动到适当的柱面,等待扇区移动到读/写头下,将读/写头感知到的位放到控制器上的一个小缓冲区中,然后将它们拷贝到主存中。

局部性原理

  一个编写良好的计算机程序常常具有良好的局部性。也就是说,它们倾向于引用临近与其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。这种倾向性被称为局部性原理。

  局部性通常有两种不同的形式:

  • 时间局部性:在一个具有良好时间局部性的程序中,被引用过一次的存储器位置很可能在不远的将来多次引用。
  • 空间局部性:在一个具有良好的空格局部性的程序中,如果一个存储器位置被引用一次,那程序可能在不远的将来引用附近一个位置的存储器。

  数据引用局部性:对于具有步长为k的引用模式的程序,步长越小,空间局部性越好。具有步长为1的引用模式的程序有很好的空间局部性。在存储器以大步长跳来跳去的程序空间局部性会很差。

  取指令局部性:对于取指令来说,循环有好的时间和空间局部性。循环体越小,循环迭代次数越多,局部性越好。

存储器的层次结构

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

高速缓存结构

  若一个计算机系统,其中每个存储器地址有m位,形成M=个不同的地址。如下图所示,这样的一个机器的高速缓存被组织成一个S=个高速缓存组的数组。每个数组包含E个高速缓存行。每一行是由一个B=字节的数据块组成的,一个有效位指明这个行是否包含有意义的信息,还有t=m-(b+s)个标记位(是当前块的存储器地址的位的一个子集),它们唯一地标识存储在这个高速缓存行中的块。

    高速缓存确定一个请求是否命中,然后抽取出被请求的字的过程,分为三步:1)组选择,2)行匹配,3)字抽取。

分类:

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

2.组相连高速缓存:每个组都保存多于一行的高速缓存行(1<E<C/B)。

3.全相连高速缓存:由一个包含所有高速缓存行的组(即E=C/B)组成。

遇到的问题及解决方法

问题:

磁盘为什么需要转两圈才能读完一个扇区?

解决方法:

    在博客园提问。因为磁盘有两面。

家庭作业

6.29

由练习题6.13图得

组7中命中的十六进制存储器地址为:

(1101111011100)=0x1BDC

(1101111011101)=0x1BDD

(1101111011110)=0x1BDE

(1101111011111)=0x1BDF

组5中命中的十六进制存储器地址为:

(0111000110100)=0x0E34

(0111000110101)=0x0E35

(0111000110110)=0x0E36

(0111000110111)=0x0E37

组4中命中的十六进制存储器地址为:

(1100011110000)=0x18F0

(1100011110001)=0x18F1

(1100011110010)=0x18F2

(1100011110011)=0x18F3

(0000010110000)=0x00B0

(0000010110001)=0x00B1

(0000010110010)=0x00B2

(0000010110011)=0x00B3

组2中没有命中的存储器地址。

6.30

A.


CT


CT


CT


CT


CT


CT


CT


CT


CI


CI


CO


CO

B.


操作


地址


命中?


读出的值(或未知)



0x409



-



0x40A



-



0x833



0xD0

参考资料

《深入理解计算机系统》第6章存储器层次结构。

时间: 2024-10-18 20:11:09

存储器的层次结构学习记录的相关文章

程序的机械级表示学习记录

程序的机械级表示学习记录 X86的三代寻址方式 DOS时代的平坦模式,不区分用户空间和内核空间,很不安全. 8086的分段模式. IA32的带保护模式的平坦模式. 对于机械级编程的两种重要抽象 ISA:机械级程序的格式和行为,定义为指令集体系结构,它定义了处理器状态.指令的格式,以及每条指令对状态的影响. 虚拟地址:机器级程序使用的存储器地址,提供的存储器模型看上去是一个非常大的数组.存储器系统的实际实现是将多个硬件存储器和操作系统软件组合起来的. 在GCC中获得汇编代码与反汇编 获得汇编代码:

UWP学习记录3-设计和UI之样式

UWP学习记录3-设计和UI之样式 1.颜色 在系统的“设置”>“个性化”>“颜色”里,提供了主题色选择.选定主题色后,会根据颜色亮度的 HSB 值创建浅色和深色的主题色. 应用可使用阴影变量创建可视化层次结构和提供交互指示.在 XAML 中,主要主题色显示为名为 SystemAccentColor 的主题资源. 这些色调可用作 SystemAccentColorLight3.SystemAccentColorLight2.SystemAccentColorLight1.SystemAccen

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

Objc基础学习记录5

NSMutableString类继承的NSString类. NSMutableString是动态的字符串. 1.appendingString 方式: 向字符串尾部添加一个字符串. 2.appendingFormat:可以添加多个类型的字符串. int,chat float,double等 3.stringWithString 创建字符串, 4.rangeOfString 返回str1在另一个字符串中的位置. 5.NSMakeRange(0,3) 字符串0位到3位. 6.deleteCharac

Windows API 编程学习记录&lt;二&gt;

恩,开始写Windows API编程第二节吧. 上次介绍了几个关于Windows API编程最基本的概念,但是如果只是看这些概念,估计还是对Windows API不是很了解.这节我们就使用Windows API 让大家来了解下Windows API的用法. 第一个介绍的Windows API 当然是最经典的MessageBox,这个API 的作用就是在电脑上显示一个对话框,我们先来看看这个API的定义吧: int WINAPI MessageBox(HWND hWnd, LPCTSTR lpTe

Windows API 编程学习记录&lt;三&gt;

恩,开始写API编程的第三节,其实马上要考试了,但是不把这节写完,心里总感觉不舒服啊.写完赶紧去复习啊       在前两节中,我们介绍了Windows API 编程的一些基本概念和一个最基本API函数 MessageBox的使用,在这节中,我们就来正式编写一个Windows的窗口程序. 在具体编写代码之前,我们必须先要了解一下API 编写窗口程序具体的三个基本步骤:             1. 注册窗口类:             2.创建窗口:             3.显示窗口: 恩,

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

Python学习记录-2016-11-29

今日学习记录: 心灵鸡汤: 要有合适自己的目标,一个目标一个目标实现,切忌好高骛远: 最好的投资就是投资自己: 实现梦想 学习,学习,再学习: Talk is cheap. 从本身而言,余三十而立之年,从事测试行业7七年有余,一年半华为外包路由器,两年无线wifi测试,一年半网管软件测试,一年自动化测试经理,推行公司自动化测试进程,从开始的TCL,到现在的python,工欲善其事必先利其器,所以自己来学习,总体我认为我的目标是一直前进的,不断变化的,但是方向并没有大的错误,有些累,所以近期有些懈

python 系统地学习记录

由头: python值得一学. 尝试一下写学习记录,看看效果. 1.记录一些不熟悉或者重要的知识点. 2.记录一些遇到的问题,标签 Question. 书:python基础教程(第2版) Chapter 1:基础知识 本章的内容熟悉即可. 比较重要的是字符串,单双引号转义,str,repr... Time 1.5 h  2015.8.31 23:09 版权声明:本文为博主原创文章,未经博主允许不得转载.