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

简介: 本章我们了解存储器层次结构、基本的存储技术(磁盘结构、固态硬盘结构、高速缓存存储器)等

image.png

前言:📫 作者简介:小明java问道之路,专注于研究计算机底层,就职于金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的设计和架构📫

🏆 Java领域优质创作者、阿里云专家博主、华为云享专家🏆

🔥 如果此文还不错的话,还请👍关注点赞收藏三连支持👍一下博主哦

本文导读

存储器系统(memory system)是一个具有不用容量、成本和访问时间的存储设备的层次结构。本章我们了解存储器层次结构、基本的存储技术(磁盘结构、固态硬盘结构、高速缓存存储器)等。

如果程序需要的数据在寄存器中,指令可以立即使用这些数据;如果数据存储在cache中,那么获取这些数据4~75个时钟周期;当数据存储在内存中,需要几百个时钟周期;如果数据存储在磁盘中,需要大约几千万个时钟周期。

image.png

重点解读:

一、机械磁盘

image.png

二、固态硬盘

image.png

三、存储器层次结构

存储技术和计算机软件基本稳定特性:一、高速存储器技术成本高、容量下、耗电大、易发热;二、CPU和主存之间的速度差距越来越大;三、一个编写良好的程序倾向于展示出良好的局部性

局部性原理:程序倾向于使用距离最近用过的指令/数据地址相近或相等的指令/数据。

局部性的两种形式:时间局部性:最近访问过的信息,很可能在近期还会被再次访问。重复引用相同变量的程序有良好的时间局部性。空间局部性:地址接近的数据项,被使用的时间也倾向于接近。对于具有步长为kk的引用模式的程序,步长越小,空间局部性越好。

这些特性互相补充,下图给出一条组织存储器系统的途径——存储器层次结构

image.png

四、高速缓存存储器

高速缓存存储器是小型的、快速的基于SRAM的存储器,是在硬件中自动管理的。下图为高速缓存存储器的总线结构图

image.png

书中介绍三类高速缓存结构:一、通用的高速缓存存储器组织结构(机器的高速缓存被组织成一个有S=2^s个高速缓存组的数组。每个组包含E个高速缓存行。每个行是由一个B=2b字节的数据块组成的,一个有效位指明这个行是否包含有意义的信息,还有t=m−(b+s)个标记位,它们唯一地标识存储在这个高速缓存行中的块) ;二、直接映射高速缓存(每个组只有一行的高速缓存称为直接映射高速缓存);三、组相联高速缓存(组相联高速缓存中的每个组都保存有多于一个的高速缓存行)

高速缓存参数的性能影响:(一)不命中率:不命中数量/引用数量;(二)命中率:1−1−不命中率;(三)命中时间:从高速缓存传送一个字到CPU所需的时间;(四)不命中处罚:由于不命中所需要的额外的时间。

五、编写高速缓存友好的代码

1、让常见的情况运行得快(专注在核心函数和内循环上)2、尽量减少每个循环内部的缓存不命中数量(对局部变量的反复引用(时间局部性)、步长为1的引用模式(存储器所有缓存都是将数据存储为连续的块(空间局部性))

小结

计算机中存储器是根据成本、作用、特性等等因素分层的,作为程序员需要了解存储器的结构以及如何编写对存储器友好的代码。

相关文章
|
3天前
|
算法 调度
计算机系统结构
【1月更文挑战第5天】计算机系统结构。
32 2
|
9月前
|
存储 缓存 Linux
计算机操作系统学习笔记(2)——存储器结构
计算机操作系统学习笔记(2)——存储器结构
158 0
|
编译器
【CSAPP数据段解析】汇编语言机械级编程
【CSAPP数据段解析】汇编语言机械级编程
87 0
【CSAPP数据段解析】汇编语言机械级编程
|
存储 Java
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
184 0
第一次笔记:计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
|
存储 Java
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
260 0
计算机硬件的工作原理 主存储器 运算器 控制器 计算机的工作过程 计算机系统的层次结构 三种级别的语言
|
安全 Java C++
解读《深入理解计算机系统(CSAPP)》第4章处理器体系结构
本章讲解指令集架构(ISA),在处理器行为(指令计划及其编码)和如何实现处理器之间提供了一层抽象。不同指令组织都遵循5个阶段,由SEQ处理器其中每个时钟周期执行一条指令,就会通过5个阶段(取值 -> 译码 -> 执行-> 防存 -> 回写)。流水线化通过让不同阶段并行操作,改进了系统吞吐量,在任意给定的一个时刻,多条指令被不同的阶段处理。
解读《深入理解计算机系统(CSAPP)》第4章处理器体系结构
|
缓存
现代操作系统的存储器结构
现代操作系统的存储器结构
83 0
现代操作系统的存储器结构
带你读《数字设计和计算机体系结构(原书第2版·ARM版)》之二:组合逻辑设计
采用一种独特的现代数字设计方法,先介绍数字逻辑门,接着讲述组合电路和时序电路的设计,并以这些基本的数字逻辑设计概念为基础,重点介绍如何设计实际的MIPS处理器。另外,在全书的实例中运用SystemVerilog和VHDL展示基于CAD的电路设计方法和技术。通过《数字设计和计算机体系结构(原书第2版)》,读者能够构建自己的微处理器,并能够自顶向下地理解微处理器的工作原理。
《数字逻辑设计与计算机组成》一 1.4 计算机体系结构
本节书摘来自华章出版社《数字逻辑设计与计算机组成》一 书中的第1章,第1.4节,作者:[美]尼克罗斯·法拉菲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1575 0
|
存储 缓存 内存技术
存储器层次结构 --《深入理解计算机系统》第六章读书笔记
1.几种存储技术 随机访问存储器RAM,RAM又分为两类:静态的SRAM和动态的DRAM。 静态SRAM特点:容量较小,速度较之动态DRAM要快很多,故而价格也较高。一般用作CPU与内存的缓存。
1373 0