C++ 并发编程指南(11)原子操作 | 11.6、计算机内存结构

文章目录

  • 一、计算机内存结构
    • 1、内存的基本组成
    • 2、内存的类型
    • 3、内存的结构层次
    • 4、CPU架构
    • 5、局部性原理
    • 6、总结

前言

在探讨计算机的运行效率和数据处理能力时,内存结构无疑是一个至关重要的部分。内存,作为计算机系统中的关键组件,承担着存储数据和指令以供处理器(CPU)快速访问的重要任务。

一、计算机内存结构

1、内存的基本组成

计算机内存的基本组成单元是存储单元。每个存储单元由一个电容和一个晶体管组成,其中电容用于存储数据,而晶体管则负责控制数据的读取和写入。这种设计使得内存能够在计算机运行时快速、准确地存取数据。

2、内存的类型

  • 静态随机存取存储器(SRAM):SRAM使用触发器来存储数据,因此具有较快的读写速度。然而,由于其制造成本较高,SRAM通常被用于高速缓存(Cache)等需要快速访问的场景。
  • 动态随机存取存储器(DRAM):DRAM使用电容来存储数据,虽然读写速度稍慢于SRAM,但其制造成本较低,因此被广泛应用于主存储器(内存条)中。DRAM需要周期性地进行刷新以保持数据的稳定性。

3、内存的结构层次

计算机内存结构通常呈现出一种层次化的特点,从高到低依次为:寄存器、高速缓存(Cache)、主存储器(内存条)和辅助存储器(如硬盘、固态硬盘等)。

  • 寄存器:寄存器是离CPU最近的存储单元,其读写速度最快。CPU可以直接访问寄存器中的数据,无需经过其他存储层次。寄存器通常用于存储CPU正在处理的数据和指令。
  • 高速缓存(Cache):高速缓存位于CPU和主存储器之间,用于缓存主存储器中常用的数据和指令。当CPU需要访问数据时,首先会检查高速缓存中是否存在所需数据。如果存在,则直接从高速缓存中读取数据,从而提高了数据的访问速度。高速缓存通常分为多个层次,如L1 Cache、L2 Cache和L3 Cache等。
  • 主存储器(内存条):主存储器是计算机系统中的主要内存,用于存储正在运行的程序和数据。主存储器通常由多个存储体组成,每个存储体中有许多存储单元。每个存储单元可以存储一个二进制数或一串二进制代码(称为存储字)。存储字的长度可以是8位、16位、32位等。主存储器通过地址线、数据线和控制线等接口与CPU相连,实现数据的快速读写。
  • 辅助存储器:辅助存储器包括硬盘、固态硬盘等存储介质,用于存储大量数据和程序。与主存储器相比,辅助存储器的读写速度较慢,但容量较大且价格相对较低。辅助存储器中的数据在需要时会被加载到主存储器中供CPU处理。

4、CPU架构

下面是一个的多核CPU架构图,如下:

在这里插入图片描述

  • Core:每个Core独享SB与L1
  • SB(Store Buffer):Store Buffer是一个缓冲区,用于暂存CPU的写操作,它允许CPU把数据先写入Store Buffer,然后继续执行其他操作,而不是等待数据被写入缓存或内存后再进行下一步。这样设计的好处是显著降低了内存写延迟对CPU性能的影响。
  • L1 Cache:存储了CPU近期可能访问的数据和指令,且两个L1 Cache独享一个L2 Cache

注意:上面的CPU架构只是部分CPU采用的架构,并不能代表全部。

为什么需要使用Cache?

如果没有Cache,CPU每执行一条指令就要到内存中取数据。执行一条指令只需要几个时钟周期,而取指令需要上百个时钟周期,这就将导致CPU大部分时间都处于等待状态,进而导致执行效率低下,引入了Cache主要解决CPU等待问题。

使用Cache会引入一些新的问题,例如:Cache的一致性、Cache的缺失等,为了解决这些问题,各CPU平台(ARM/X86/IA64)都有自己的解决方案。软件层面(编译器)也会有对应的优化,这导致了CPU执行的程序并不是你写的那个版本,只是从结果上看不出差异而已。

5、局部性原理

在计算机存储结构中,局部性原理是一个重要的概念。局部性原理包括时间局部性和空间局部性两个方面。时间局部性指的是如果一个数据项被访问了,那么它在不久的将来很可能还会被再次访问;空间局部性指的是如果一个数据项被访问了,那么与其相邻的数据项也很可能被访问。基于局部性原理,计算机内存结构通常采用缓存机制来提高数据的访问速度。

6、总结

计算机内存结构是计算机系统中的核心组成部分,其性能直接影响到计算机的运行效率和数据处理能力。通过对内存的基本组成、类型、结构层次以及局部性原理等概念的深入剖析,可以更好地理解计算机内存的工作原理和重要性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701632.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细分清Session,Cookie和Token之间的区别,以及JWT是什么东西

Cookie Cookie是一种小型的文本文件,由网站在用户访问时存储在其计算机或移动设备上,Cookie主要用于跟踪、识别和存储有关用户的信息。 简单来说Cookie就是用来存储某些后端发送给前端的数据,例如我们登陆后,后端会返回一个登录…

网站有存在哪些类型的漏洞,网站漏洞存在哪些危害,该怎么解决网站漏洞问题

在数字化日益发展的今天,随着互联网的普及和深入,网站安全已成为企业、组织乃至个人都必须高度重视的安全问题。而网站漏洞作为威胁网站安全的重要因素之一,其类型多种多样,不仅可能导致数据泄露、系统崩溃,还可能为黑…

CVPR2022人脸识别Partial FC论文及代码学习笔记

论文链接:https://openaccess.thecvf.com/content/CVPR2022/papers/An_Killing_Two_Birds_With_One_Stone_Efficient_and_Robust_Training_CVPR_2022_paper.pdf 代码链接:insightface/recognition/arcface_torch at master deepinsight/insightface G…

量化研究---A股赚钱日历,上证指数为例,提供源代码

今天把A股的全部数据导出做了一些赚钱日历分析,看那个月赚钱容易,那个月赚钱困难 导入需要的库 import pandas as pdimport matplotlib.pyplot as pltimport quantstats as qsfrom trader_tool.index_data import index_datafrom trader_tool import j…

BakedSDF: Meshing Neural SDFs for Real-Time View Synthesis 论文阅读

(水一篇博客) 项目主页 BakedSDF: Meshing Neural SDFs for Real-Time View Synthesis 作者介绍 是 Mildenhall 和 Barron 参与的工作(都是谷歌的),同时一作是 Lipman 的学生,VolSDF 的一作。本文引用…

五分钟“手撕”时间复杂度与空间复杂度

目录 一、算法效率 什么是算法 如何衡量一个算法的好坏 算法效率 二、时间复杂度 时间复杂度的概念 大O的渐进表示法 推导大O阶方法 常见时间复杂度计算举例 三、空间复杂度 常见时间复杂度计算举例 一、算法效率 什么是算法 算法(Algorithm):就是定…

24/05/14总结

签到2: 签到界面上有时间显示,签到码输入框,开始签到,当倒计时结束,老师端和学生端都会显示签到结果,所以签到结果需要建表:(签到了的学生和未签到的学生, 这次签到的时间…

Elasticsearch优化手段

ES 的默认配置已经提供了良好的开箱即用的体验,但是仍有一些优化手段去继续提升它的使用性能。 一 General recommendations 通用建议。 01 Dont return large result sets 不要返回大量的结果集。ES 是一个搜索引擎,擅长于返回匹配度较高的几个文…

1.柔性数组

1.柔性数组 我们先来介绍一下什么是柔性数组: 在C语言中,柔性数组(Flexible Array)并不是一个标准的术语,但它通常指的是结构体中最后一个元素是一个没有指定大小的数组。这种结构体设计允许在运行时动态分配数组的大…

ES6之正则扩展

正则表达式扩展 u修饰符(Unicode模式)y修饰符(Sticky或粘连模式)s修饰符(dotAll模式)Unicode属性转义正则实例的flags属性字符串方法与正则表达式的整合 javascript的常用的正则表达式 验证数字邮箱验证手机…

Linux 第三十一章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

TortoiseGit的安装

TortoiseSvn和TortoiseGit都是针对代码进行版本管理的工具,又俗称小乌龟,简洁而可视化的操作界面,免去繁琐的命令行输入。只需要记住常用的几个操作步骤就能快速上手。 TortoiseGit安装 1、TortoiseGit作为git的版本管理工具 ,但…