第6章 存储器层次结构

第6章 存储器层次结构 18 Dec 2017
-- The Memory Hierarchy

6.1 Storage Technologies 581
6.2 Locality 604
6.3 The memory hirarchy 609
6.4 cache memories 614
6.5 writing Cache-friendly code 633
6.6 putting it together: The impact of caches on
program performance 639
6.7 summary 648
--------------------------------------------------

# 6.1 存储技术

6.11 随机访问存储器 (random-access memory, RAM)

SRAM is used for cache memories. DRAM(dynamic RAM)
is used for the main memory plus the frame buffer of a
graphics system.

1. 静态RAM (SRAM)

晶体管,只要有电,双稳定状态,像个倒立的钟摆

2. 动态RAM

3. 传统的DRAM

DRAM芯片中的单元(位)被分成d个超单元,每个超单元
都由w个DRAM单元组成。超单元被组织成一个r行c列的列阵。
这样可减少引脚(pin)数。

4. 内存模块(memory module)

DRAM芯片封装在内存模块中,插到主板扩展槽上。

5. 增强的DRAM

基于传统的DRAM单元,以提高速度

+ 快页模式DRAM(Fast Page Mode DRAM, FPM DRAM).

连续访问同一行时,可以直接从行缓冲区中读取,而不是
丢弃后,再从新缓冲。

+ 扩展数据输出DRAM( Extended Data Out DRAM, EDO DRAM).

是FPM DRAM的增强的形式,允许CAS(列访问脉冲)在时间
上靠的更紧一点.

+ 同步DRAM( Synchronous DRAM, SDRAM).

控制信号是同步的.

+ 双倍数据速率同步DRAM( Double Data-Rate Synchronous
DRAM, DDR SDRAM).

+ 视频RAM( video RAM, VRAM).

用于图形系统的帧缓存区. 与FPM DRAM类似。区别是:
1. VRAM是输出是对内部缓冲区的整个内容移位得到的。
2. 可以同时读和写。

6. 非易失性存储器(ROM,read-only memory)

如果断电,DRAM和SRAM会丢失信息(volatile).

+ PROM(programmble ROM,可编程ROM)只能编程一次。
+ 可擦写可编程ROM(Erasable Programmable ROM, EPROM).
+ 闪存(flash memory),基于EEPROM(Electrically EPROM).

7. 访问主存

6.1.2 磁盘存储

the CPU issues commands to I/O devices using a tech-
nique called memory-mapped I/O.

In a system with memory-mapped I/O, a block of
addresses in the address spcace is reserved for commu-
nicating with I/O devices. Each of these addresses is
known as an I/O port. Each device is associated with (or
mapped to) one or more when it is attached to the bus.

6.2 locality

LOcality is typically described as having two distinct
forms: temporal locality and spatial locality.

6.2.1 locality of references to program data
6.2.2 locality of instruction fetches
6.2.3 summary

- 重复引用相同的变量的程序有良好的时间局部性
- 对于具有步长为k的引用模式的程序,步长越小,空间
局部性越好。
- 对于取指令来说,循环有好的时间和空间局部性。循环体
越小,循环迭代次数越多,局部性越好.

6.3 memory hierarchy

1. 缓存命中(cache hits)
2. 缓存不命中:如果第k层中没有缓存数据对象d,叫cache miss.

此时,第k层缓存从第k+1层缓存中取出包含d的快,如果第k层
已满,可能就会覆盖现存的一个快 -- 替换(replacing)或驱逐
(evicting).

替换策略:随机替换或最近最少使用(LRU,least recent use)

4. 缓存管理

存储器层次结构的本质是,每一个存储设备都是较低一层的缓
存。

在每一层上,某种形式的逻辑必须管理缓存。即某个东西要将
缓存划分成快,在不同的层之间传送快,判定是否命中,并处理之
。管理缓存的逻辑可以是硬件,软件,或两者的结合。

6.3.2.小结

6.4 高速缓存存储器

高速缓存的结构可用元组(S,E,B,m)来描述。
容量 C = S x E x B
S: 组的个数。E:行的个数。B:块是大小。
m:总位数。

t = m-(s+b) //t 标记位

6.4.2 直接映射高速缓存

根据每个组的高速缓存行数E,告诉缓存被分配为不同的类。
每组只有一行(E=1)的为直接映射高速缓存(direct-mapped)

高速缓存确定请求是否命中,再抽取出被请求的字的过程:
1. 组选择;2. 行匹配;3. 字抽取.

Conflict Misses in Direct-Mapped Caches

Conflict misses in direct-mapped caches typically
occur when programs access arrays whose sizes are a
power of 2.

6.4.3 Set Associative Caches

A cache with 1 < E < C/B is often called an E-way
set associative cache.

6.4.4 Fully Associative Caches

A fully associative cache consists of a single set
(i.e.,E = C/B) that contains all of the cache lines.

6.4.5 issue with writes

write-through \ write-back
write-allocate \ no-write-allocate

6.4.6 Anatomy of a real cache hierarchy

+ A cache holds instructions only is called i-cache
+ holds program data only called d-cache.
+ holds both called unified cache.

6.5 良好的优化

+ 对局部变量反复引用是好的
+ 步长为1是好的

对多维数组,空间局部性尤为重要。

原文地址:https://www.cnblogs.com/oh-mine/p/8667140.html

时间: 2024-10-12 12:35:45

第6章 存储器层次结构的相关文章

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

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

[CSAPP笔记][第六章存储器层次结构]

第六章 存储器层次结构 在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置. 虽然是一个行之有效的模型,但没有反应现代系统实际工作方式. 实际上,存储器系统(memory system)是一个具有不同容量,成本和访问时间的存储设备的层次结构. CPU寄存器保存着最常用的数据.(0周期) 靠近CPU的小的,快速的高速缓存存储器(cache memory)作为一部分存储在相对慢速的主储存器(main memory,简称主存)中的数据和指令的缓冲区.(1~30周期)

深入理解计算机系统 第六章 存储器层次结构

为什么要学习存储器的层次结构? 如果我们理解了系统是如何将数据在存储器层次结构中上上下下移动的,那么我们就可以编写自己的应用程序,使得它们的数据项存储在层次结构较高的地方,在那里 CPU 能更快地访问到它们. 局部性原理 计算机程序倾向于引用临近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身.这种倾向性,被称为局部性原理. 有良好局部性的程序比局部性差的程序运行地更快.且在现代计算机系统的各个层次,从硬件到操作系统.再到应用程序,它们的设计都利用了局部性. 缓存相关术语介绍 缓存命

计算机系统:第6章(存储器层次结构)

参考材料:深入理解计算机系统,第六章 6.1.1 随机访问存储器RAM 1.静态RAM(SRAM)与动态RAM(DRAM) 首先.要有的基本概念:SRAM存储一个位的结构要六个晶体管,DRAM存储一个位的结构为一个电容(DRAM可达到较SRAM更高的密度).因此SRAM比DRAM更加昂贵,带来的效果是访问更快.(一个桌面系统SRAM不超过几兆字节,DRAM可有几百到几千兆字节) 然后.一个高级点的概念.SRAM有稳定状态,DRAM(电容)有很多情况形成漏电使得DRAM需要每过一个周期时间就要通过

第六章、存储器层次结构

存储器层次结构 6.1存储技术   6.1.1随机访问存储器    随机访问存储器分为两类:静态和动态 1.静态RAM 静态RAM 的基本存储电路为触发器,每个触发器存放一位二进制信息,由若干个触发器组成一个存储单元,再由若干存储单元组成存储器矩阵,加上地址译码器和读/写控制电路就组成静态RAM.但由于静态RAM 是通过有源电路来保持存储器中的数据,因此,要消耗较多功率,价格也较高. 2.动态RAM 每一个比特的数据都只需一个电容跟一个晶体管来处理,相比之下在SRAM上一个比特通常需要六个晶体管

存储器层次结构 --《深入理解计算机系统》第六章读书笔记

1.几种存储技术 随机访问存储器RAM,RAM又分为两类:静态的SRAM和动态的DRAM. 静态SRAM特点:容量较小,速度较之动态DRAM要快很多,故而价格也较高.一般用作CPU与内存的缓存. 动态DRAM特点:容量较大,速度比SRAM慢,价格相对较低.一般用作系统内存. 磁盘存储,存盘属于外部I/O设备,其特点是存储容量大,但读取速度更慢,价格也更加便宜.一般而言,从磁盘上读信息的时间为毫秒级,从DRAM读比从磁盘读快10万倍,从SRAM读比从磁盘读快100万倍. 因为磁盘的构造是一个圆盘,

存储器层次结构

第七周:学习任务教材第六章 了解存储设备的类型和特点:重点理解局部性原理和缓存思想在存储层次结构中的应用 重点练习题: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

什么是内存(一):存储器层次结构

今年以来,内存条价格暴涨,已经跃升为新的新一代理财产品,所以今天就和大家讨论一下内存的话题,主要内容就是在程序运行过程中,内存的作用以及如何与CPU,OS交互. 我们先来讨论:计算机的运行究竟是在做什么?来看一下经典的冯诺依曼结构.计算机科学虽然飞速发展了几十年,但是依旧遵循冯诺依曼结构. 冯诺依曼结构 图1:冯诺依曼结构 数学家冯诺依曼提出的 体系结构包含以下几个要点: 把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存. 计算机的数制采用二进制. 计算机应该按照程序顺序执行.

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

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