解读《深入理解计算机系统(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的引用模式(存储器所有缓存都是将数据存储为连续的块(空间局部性))

小结

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

相关文章
|
Web App开发 前端开发 JavaScript
WebGL:开始学习 / 理解 WebGL / WebGL 需要掌握哪些知识 / 应用领域 / 前端值得学WebGL吗
WebGL:开始学习 / 理解 WebGL / WebGL 需要掌握哪些知识 / 应用领域 / 前端值得学WebGL吗
849 0
|
算法 网络虚拟化 内存技术
408王道计算机组成原理强化——存储系统大题
408王道计算机组成原理强化——存储系统大题(下)
2931 2
408王道计算机组成原理强化——存储系统大题
|
SQL 存储 调度
从 Volcano 火山模型到 Pipeline 执行模型,阿里云数据库 SelectDB 内核 Apache Doris 执行模型的迭代
一个合适的执行模型对于提高查询效率和系统性能至关重要。本文全面剖析 Apache Doris Pipeline 执行模型的设计与改造历程,并在 2.1 版本对并发执行模式与调度模式进一步优化,解决了执行并发受限、执行及调度开销大等问题。
63484 3
从 Volcano 火山模型到 Pipeline 执行模型,阿里云数据库 SelectDB 内核 Apache Doris 执行模型的迭代
|
存储 NoSQL 网络协议
PG内核解读-第1节PostgreSQL系统概述
本文整理自阿里云数据库开源社区Maintainer于巍(花名漠雪),在PostgreSQL数据库内核解读系列的分享。本篇内容主要分为四个部分: 1. 本系列教程介绍 2. PostgreSQL概述(历史、架构) 3. PostgreSQL安装启动 4. PostgreSQL常用命令、调试
PG内核解读-第1节PostgreSQL系统概述
|
11月前
|
存储 索引 Python
字典是怎么实现的,它的底层结构长什么样子?
字典是怎么实现的,它的底层结构长什么样子?
269 2
|
存储 缓存 Java
02.计算器存储器的原理
计算器存储器的原理
569 9
02.计算器存储器的原理
|
存储 传感器 缓存
计算机组成原理系列(三):计算机存储器结构体系详解
你是不是经常被以下名词弄得晕头转向。**ROM/RAM/DRAM/SRAM/SDRAM/DDR SDRAM**等等,下面,我尽力以上图为参考,从上到下,说明各个层次存储器的特点和区别,并对它们的工作原理做一些简要的说明
|
存储 缓存 并行计算
【软件设计师备考 专题 】CPU和存储器的组成、性能和基本工作原理
【软件设计师备考 专题 】CPU和存储器的组成、性能和基本工作原理
314 0
|
存储 数据处理 数据库
计算机中的单位详解
计算机中的单位详解
1906 0
|
Docker 容器
http: server gave HTTP response to HTTPS client解决方案
http: server gave HTTP response to HTTPS client解决方案
1855 0