CSAPP:第六章 存储器层次结构
存储器层次结构
关键点:内存
6.1 随机访问存储器
随机访问存储器(Random-Access Memory,RAM)分为两类:静态的和动态的。静态RAM(SRAM)比动态RAM(DRAM)更快,但也贵的多。SRAM用来作为高速缓存存储器,既可以在CPU芯片上,也可以在片下。DRAM用来做主存以及图形系统的帧缓冲区。
- 1. 静态RAM
SRAM将每个位存储在一个双稳态的存储器单元里,具有双稳态性,只要有电,它就会永远地保持它的值。即使有干扰来扰乱电压,当干扰消除时,又会恢复到稳定状态 - 2. 动态RAM
DRAM将每个位存储为对一个电容的充电。DRAM存储器可以制造得非常密集--每个单元由一个电容和一个访问晶体管组成。但是与SRAM不同,DRAM存储器单元对干扰非常敏感。当电容的电压被扰乱后,它就不会恢复了 - 3. 传统的DRAM
DRAM芯片中的单元(位)被分成d个超单元,每个超单元都由w个DRAM单元组成。一个d * w的DRAM总共存储了dw位信息。超单元被组织成一个r行c列的长方型阵列,这里rc = d。每个超单元有形如(i,j)的地址,这里的i表示行,j表示列。
如图6-3展示的是一个16x8的DRAM芯片组织,有d = 16个超单元,每个超单元有w = 8位,r = 4行,c = 4列。带有阴影的方框表示地址(2,1)处的超单元,信息通过称为引脚(pin)的外部链接器流入和流出芯片。每个引脚携带一个1位信号。 - 4. 内存模块
DRAM芯片封装在内存模块中,它插到主板的扩展槽上。如下图展示了一个内存模块的基本思想。示例模块用8个64Mbit的8M x 8的DRAM芯片,总共存储64MB,这8个芯片编号为0~7.每个超单元存储主存的一个字节,而相应超单元地址为(i,j)的8个超单元来表示主存中字节地址A处的64位字。
要取出内存地址A处的一个字,内存控制器将A转化成一个超单元地址(i,j),并将它发送到内存模块,然后内存模块再将i和j广播到每个DRAM。作为响应,每个DRAM输出它的(i,j)超单元的8位内容,模块中的电路收集这些输出,并把它们合并成一个64位字,再返回给内存控制器。
- 5. 增强的DRAM
- 快页模式DRAM(异步)
- 扩展数据输出DRAM(异步)
- 同步DRAM(SDRAM)
- 双倍速率同步DRAM(Double Data-Rate Synchronous DRAM,DDR SDRAM).
- 视频RAM(VRAM)
- 6. 非易失性存储器
如果断电SRAM和DRAM会丢失它们的信息,从某种意义上说,它们是易失性的。非易失性存储器,即使在掉电后,仍然保存着它们的信息。现在有很多种非易失性存储器,但是整体上都被称为只读存储器(Read-only Memory,ROM).- PROM(可编程ROM)
- EPROM(可擦写可编程,Erasable Programmable ROM)
- EEPROM(电子可擦除PROM)
- FLASH(闪存,SSD就是基于闪存的磁盘驱动器)
存储在ROM设备中的程序通常被称为固件(fireware)。当一个计算机通电后,它会运行在ROM中的固件。
- 7. 访问主存
数据流通过总线的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传输都是通过一系列步骤完成的,这些步骤称为总线事务。读事务(从主存传送数据到CPU),写事务(从CPU传送数据到主存)
6.2 局部性
一个良好的计算机程序常常具有良好的局部性。也就是它们倾向于引用临近于其他最近引用过的数据和数据项。这种倾向被称为局部性原理。
- 时间局部性:在一个具有良好时间局部性的程序中,被引用过一次的内存位置,很可能在不远的将来再次多次被引用。
- 空间局部性:在一个具有良好空间局部性的程序中,被引用过一次的内存位置,很可能在不远的将来引用附近其他位置的内存。
6.3 存储器层次结构
计算机存储结构如下图,一般而言从高层往底层走,存储设备变得更慢、更便宜和更大。在最高层是L0,是少量快速的CPU寄存器,CPU可以在一个时钟周期访问它们,接下来是一个或者多个中型基于SRAM的高速缓存存储器,可以在几个时钟周期访问。然后是一个大的基于DRAM的主存,可在几十到几百个时钟周期内访问,接下来是慢速的本地磁盘,最后系统可能还包含了远程服务器。

CSAPP:第六章 存储器层次结构的更多相关文章
- [CSAPP笔记][第六章存储器层次结构]
第六章 存储器层次结构 在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置. 虽然是一个行之有效的模型,但没有反应现代系统实际工作方式. 实际上,存储器系统(memo ...
- 【深入理解计算机系统CSAPP】第六章 存储器层次结构
6 存储器层次结构 存储器系统(memory system)是一个具有不同容量.成本和访问时间的存储设备的层次结构.CPU 寄存器保存着最常用的数据.靠近 CPU 的小的.快速的高速缓存存储器(cac ...
- csapp第六章笔记-存储器结构
目录 随机访问存储器(Random-Access-Memory) 静态RAM 动态RAM 增强的DRAM 非易失性存储器 磁盘存储 磁盘构成 磁盘容量 磁盘操作 逻辑磁盘块 访问磁盘和连接I/O设备 ...
- 【CSAPP笔记】11. 存储器层次结构
在没有专门研究存储器系统之前,我们依赖的存储器模型是一个很简单的概念,也就是把它看成一个线性数组,CPU 能在一个常数时间内访问任何一个存储器位置.虽然在研究别的问题时,这是一个有效的模型,但是它不能 ...
- CSAPP阅读笔记-存储器层次结构-第六章-P400-P462
6.1 存储技术 1.随机访问存储器(RAM),是易失性存储器,掉电存储信息会丢失,与之相对的是非易失性存储器(ROM),它掉电后存储信息不丢失,但前者访问速度较快,但容量有限,通常只有几百或几千兆字 ...
- [CSAPP笔记][第九章虚拟存储器][吐血1500行]
9.虚拟存储器 为了更加有效地管理存储器且少出错,现代系统提供了对主存的抽象概念,叫做虚拟存储器(VM). 虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互. 为每个进程提供一个 ...
- [CSAPP笔记][第一章计算机系统漫游]
计算机系统漫游 我们通过追踪hello程序的生命周期来开始对系统的学习—–从它被程序员创建,到系统上运行,输出简单的消息,然后终止.我们沿着这个程序的生命周期,简要介绍一些逐步出现的概念,专业术语和组 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (30) ------ 第六章 继承与建模高级应用之多对多关联
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第六章 继承与建模高级应用 现在,你应该对实体框架中基本的建模有了一定的了解,本章 ...
- 【windows核心编程】 第六章 线程基础
Windows核心编程 第六章 线程基础 欢迎转载 转载请注明出处:http://www.cnblogs.com/cuish/p/3145214.html 1. 线程的组成 ① 一个是线程的内核 ...
随机推荐
- SSM+Netty项目结合思路
最近正忙于搬家,面试,整理团队开发计划等工作,所以没有什么时间登陆个人公众号,今天上线看到有粉丝想了解下Netty结合通用SSM框架的案例,由于公众号时间限制,我不能和此粉丝单独沟通,再此写一篇手记分 ...
- 【Spring】31、Spring的EL表达式
一.简介 Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用JD ...
- JQuery禁止/恢复按钮readonly和disabled小结
禁止/恢复按钮 其实就是更改 <input> 的属性. 禁用 id 为 btn 的按钮: 代码如下 复制代码 $("#btn").attr({"disabl ...
- windows 上用 docker 部署aspnetcore 2.0
首先下载docker for windows 并且 安装. 这其中需要显卡支持虚拟化 windows系统升级到专业版 bois 启用虚拟 通过vs2017 创建一个net core ap ...
- file 文件上传,下载,删除
html: <div class="col-md-4 col-sm-4"> <div class="portlet light bordered&quo ...
- web移动端,需要清楚设备像素比devicePixelRatio的应用
我们这里所说的devicePixelRatio其实指的是window.devicePixelRatio, 被所有WebKit浏览器以及Opera所支持. 概念 devicePixelRatio ,它是 ...
- Python 一键commit文件、目录到SVN服务器
一键commit文件.目录到SVN服务器 by:授客 QQ:1033553122 实现功能 1 测试环境 1 代码show 1 实现功能 一键提交文件.目录到svn 测试环境 Win7 64位 ...
- Android-简单总结一下图片压缩
最近项目需要用到图片压缩,所以简单总结一下.大致分为三种压缩. 图片质量压缩. 意思就是降低图片的质量,针对文件处理,但本身的像素点并不会减少. 本来像素点是这样的,经过算法计算,若一个像素点周围所存 ...
- Visual Studio Team Services Demo Generator简介
Visual Studio Team Services Demo Generator简介 Visual Studio Team Services Demo Generator能够帮助我们在Visual ...
- idea2018版tomcat基本配置
前言 在配置tomcat之前,要先创建一个javaweb的工程 打开idea的主界面,在菜单中点击File,出现以下的图 点击选择 Application Server 点击选择 Tomcat Ser ...