深入理解计算机系统之存储器层次结构学习笔记

一、存储技术

  (一)随机访问存储器

随机访问寄存器(RAM)分为静态随机访问寄存器(SRAM)和动态随机访问寄存器(DRAM)。静态RAM可以作为高速缓存寄存器,动态RAM可以用作主存以及图形系统的帧缓冲区。静态RAM将每一个位存储在一个双稳态的存储器单元里,构成静态RAM 的电路可以无限期的保持在两个不同的电压配置或状态之一。动态RAM将每一个位存储为对电容的充电,所以动态RAM要比静态RAM对干扰的敏感度更高。构成动态RAM的电路被干扰后就不会恢复了。

1 传统的DRAM

常规DRAM芯片中的单元被分成了d个超单位(supercall),每个超单位都是由w个DRAM单元组成的。一个d*w的DRAM总共存储了dw位信息。超单元被组织成一个r行r列的长方形矩阵列,rc=d。每个DRAM被连接到存储控制器这个电路,该电路能一次传w位到每个DRAM芯片或一次从每个DRAM芯片传出w位。下图是一个128位16*8的DRAM芯片的高级视图。

要读取图中的超单元(2,1),存储控制器将把2发送出去,DRAM的响应是将2行的整个内容都拷贝到内部缓冲区。接下来,存储控制器将发送1,DRAM的响应是从缓冲区中拷贝出单元(2,1)中的八位并将它们发送到存储控制器。

2 存储器模块

DRAM 芯片包装在存储器模块中,它是直接插到主板的扩展槽上的,常见的包装包括168个引脚的双列直插存储器模块,其以64位为块传送数据到存储控制器和从该控制器中传出数据,还包括72个引脚的单列直插存储器模块,它是以32位为块传送数据的。

3增强的DRAM

快页模式DRAM(FPM DRAM)、扩展数据输出DRAM(EDO DRAM)、双倍数据速率同步DRAM (DDR SDRAM)、Rambus DRAM(RDRAM)、视频RAM

4 非易失性存储器

非易失性存储器不同于DRAM与SRAM,它在断电后也仍然可以保存它的信息。ROM和闪存就是非易失性存储器。

4.1 ROM以能够被重编程的次数和它们进行重编程所用的机制来区分的

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

可擦写可编程ROM(EPROM):EPROM能够被擦写和重编程的次数的数量级可以达到1000次。

电子可擦除PROM(EEPROM):EEPROM能够被擦写和重编程的次数的数量级可以达到100000次。

4.2

闪存:闪存是基于EEPROM的非易失性存储器,是一种较为普遍的非易失性存储器。

5 访问主存

数据流通过称为总线的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU与主存之间的数据都是由总线事务来完成的,总线事务包括读事务和写事务。

(二)磁盘存储

磁盘是用来保存大量数据的存储设备,能比基于RAM的存储器存更多的数据,但是读取数据的速度却远远低于基于RAM的存储器。

1 磁盘构造

磁盘是由盘片构成的。每个盘片上是由一组成为磁道的同心圆组成的。每个磁道被划分为一组扇区。扇区之间存在间隙。

2 磁盘容量

磁盘容量是由以下因素决定的:记录密度、磁道密度、面密度

3磁盘操作

传动臂通过寻道操作将读写头定位到相应的磁道上。磁盘以扇区大小的块来访问数据,对于扇区的访问时间有三个部分:寻道时间、旋转时间和传送时间。

4逻辑磁盘块

现代磁盘构造呈现为一个简单的视图,一个B个扇区大小的逻辑块的序列,编号为0,1......,B-1.磁盘中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际磁盘扇区的映射关系。

5连接到I/O设备

像图形卡、监视器、鼠标、键盘和磁盘这样的I/O设备,都是通过I/O总线连接到CPU和主存的。

6访问磁盘

CPU使用一种称为存储器映射I/O的技术向I/O设备发出命令。在使用存储器映射I/O的系统中,地址空间有一块地址是为与I/O设备通信保留的,每个这样的地址称为一个I/O端口。当一个设备连接到总线时,它与一个或多个端口相关联。

(三)固态硬盘

固态硬盘(SSD)是一种基于闪存的存储技术。一个SSD包由一个或多个闪存芯片和闪存翻译层组成,闪存芯片替代传统旋转磁盘中的机械驱动器,而闪存翻译是一个硬件/固件设备,扮演与磁盘控制器相同的角色,将对逻辑块的请求翻译成对底层物理设备的访问。

二 局部性  

一个计算机程序通常具有良好的局部性,也就是说,它们倾向于引用于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。局部性通常有两种不同的形式:时间局部性和空间局部性。

  对程序数据引用的局部性

一个连续向量中,每隔k个元素进行访问,就被称为步长为k的引用模式。步长为的引用模式是程序中空间局部性常见和重要的来源。一般而言,随着步长的增加,空间局部性下降。

三 存储器层次结构

所有的现代计算机系统中都使用存储器结构层次来使得软件和硬件互相补充。

一般而言,从高层往底层走,存储设备变得更慢、更便宜和更大。

(一)存储器层次结构中的缓存

一般而言,高速缓存是一个小而快速的存储设备,它作为存储在更大也更慢的存储设备中的数据对象的缓冲区域。使用高速缓存的过程称为缓存。

(二)存储器层次结构概念小结

概括来说,基于缓存的存储器层次结构行之有效,是因为较慢的存储设备比较快的存储设备更便宜,还因为程序往往展现局部性:利用时间局部性和利用空间局部性。

四 高速缓存存储器

早期计算机系统的存储结构只有三层:CPU寄存器、DRAM主存储器和磁盘存储。不过,由于CPU和主存之间逐渐增大的距离,系统设计者被迫在CPU寄存器文件和主存之间插入了一个小的SRAM高速缓存存储器,称为L1高速缓存。随着CPU和主存之间的性能差距不断增大,系统设计者在L1高速缓存更大的高速缓存,称为L2高速缓存。有些现代计算机还包括一个更大的高速缓存,称为L3缓存。

(一)通用的高速缓存存储器结构

一般而言,高速缓存的结构可以用元组(S,E,B,m)来描述。高速缓存的大小(或容量)C指的是所有块的大小的和。标记位和有效位不包括在内。因此,C=S*E*B。

(二)直接映射高速缓存

根据E(每个组的高速缓存行数)高速缓存被分为不同的类。每个组只有一行(E=1)的高速缓存称为直接映射高速缓存。

(三)组相联高速缓存

直接映射高速缓存中冲突不命中造成的问题是源于每个组只有一行这个限制,组相联高速缓存放松了这条限制,所以每个组都保存多余一个的高速缓存行。

(四)全相联高速缓存

一个全相联高速缓存是由一个包含所有高速缓存行的组。

 

  

时间: 2024-11-03 01:23:15

深入理解计算机系统之存储器层次结构学习笔记的相关文章

《深入理解计算机系统》第一章学习笔记

信息就是位+上下文 源程序:就是一个由0和1组合的位(bit)序列,8位组成一字(byte),每个字节表示某个文本字符. 系统中所有的信息--包括磁盘文件.存储器中的程序.存储器中存放的用户数据以及网络上传送的数据,都是由一串位表示的.区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文. C语言的起源: 由Dennis Ritchie在1969年~1973年创建的. 美国国家标准学会(American National Standards Institute,ANSI)在1989年颁布了

《深入理解计算机系统》第四周学习笔记

一.知识点总结 1.信息存储 练习题2.4 0x503c+0x8=0x5044 0x503c-0x40=0x4ffc 0x503c+64=0x503c+0x40=0x507c 0x50ea-0x503c=0xae 1)字长:指明整数和指针数据的标称大小.一个字长为w的机器的虚拟地址范围为0~2^(w-1),程序最多访问2^w个字节 int .char 4字节,单精度float 字节,双精度double 8字节 2)小端法:最低有效字节在最前面的顺序存储 大端法:最高有效字节在最前面的顺序存储 练

《深入理解计算机系统》 Chapter 7 读书笔记

<深入理解计算机系统>Chapter 7 读书笔记 链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(货被拷贝)到存储器并执行. 链接的时机 编译时,也就是在源代码被翻译成机器代码时 加载时,也就是在程序被加载器加载到存储器并执行时 运行时,由应用程序执行 链接器使分离编译称为可能. 一.编译器驱动程序 大部分编译系统提供编译驱动程序:代表用户在需要时调用语言预处理器.编译器.汇编器和链接器. 1.将示例程序从ASCⅡ码源文件翻译成可执行目标文件的步骤 (1)运

第六章存储器层次结构 学习报告

第六章 存储器层次结构 在简单模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置. 实际上,存储器系统是一个具有不同容量.成本和访问时间的存储设备的层次结构.CPU寄存器保存着最常用的数据.靠近CPU的小的.快速的高度缓存存储器作为一部分存储在相对慢速的主存储器中的数据和指令的缓冲区域.       存储器层次结构是可行的. 6.1  存储技术 6.1.1 随机访问存储器 随机反问存储器分为两类:静态的(SRAM)和动态的(DRAM). 1.静态RAM SRA

《深入理解计算机系统》 第一章读书笔记

最近开始啃CSAPP,买了英文版,看得比较慢.只有先理解系统才能在更多方面学的更明其实质 Chapter1: * 一份hello.c代码的编译分为四个阶段:1.Pre-processor:编译预处理,就是把#include后面的库代码加入到程序中,生成hello.i的文件. 2.Complier:用编译器把hello.i的C代码翻译成汇编语言,并生成:hello.s文件.(汇编语言是高级语言转为机器码的一个中间过程) 3.Assembler:汇编机把汇编语言翻译成机器二进制代码,生成hello.

存储器层次结构

第七周:学习任务教材第六章 了解存储设备的类型和特点:重点理解局部性原理和缓存思想在存储层次结构中的应用 重点练习题:6.2,6.3,6.4,6.8,6.9,6.10,6.11,6.12, 6.13 存储器层次结构 实际上,存储器系统是一个具有不同容量和成本和访问时间的存储设备的层次结构. CPU寄存器保存着最常用的数据. 三种常见存储技术: RAM/ROM/磁盘 6.1.1随机访问存储器 随机访问存储器分为两类:静态和动态. 静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵的多. S

单片机 学习笔记(一)

最近,正在学习 ARM ,所以随便学习一下单片机,帮助理解. 在<ARM学习笔记一 入门篇>中提到过,嵌入式处理器分为三种:嵌入式微处理器 .嵌入式微控制器.嵌入式DSP :其中嵌入式微控制器 就是 单片机,它将 CPU.存储器和其他外设封装在一起 . 80C51 系列: 80C51 是 MCS-51 系列中的一个典型品种:以 8051 为基核开发出的 CMOS 工艺单片机产品统称为 80C51系列. 以下是 8051 的内部结构: 8051 的基本构成:  CPU:由运算和控制逻辑组成,同时

CSAPP(4):存储器层次结构

存储器系统(memory system)是一个具有不同容量.成本和访问时间的存储设备的层次结构. (一)存储设备的种类 (二)访问主存 读写操作由CPU上的总线接口电路发起. 根据上图中的数据流,对于读操作: 1.CPU将地址A放到系统总线上,然后I/O桥将信号传递给存储器总线: 2.主存感觉到存储器总线上的地址信号,从存储器总线读地址,从DRAM取出数据字,并将数据写到存储器总线.I/O桥将信号翻译为系统总线信号传递. 3.CPU感觉到系统总线上的数据,从总线上读数据. 对于写操作: 1.CP

【转】FragmentTest学习笔记1

原文网址:http://blog.csdn.net/hishentan/article/details/20734489 源码部分: BookContent.java [java] view plaincopy package com.example.bookdetailfragment; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; impor