详细的计算机存储层次结构图,必知必会-存储器层次结构

本文介绍了计算机存储器的层次结构,从快到慢包括CPU寄存器、高速缓存、主存和磁盘。讨论了随机访问存储器(RAM)的类型,主存与CPU的交互过程,以及磁盘存储的工作原理。文章强调了程序的局部性原理在存储效率中的关键作用,并阐述了存储器层次结构如何利用这一原理提升性能。
摘要由CSDN通过智能技术生成

相信大家一定都用过各种存储技术,比如mysql,mongodb,redis,mq等,这些存储服务性能有非常大的区别,其中之一就是底层使用的存储设备不同。作为一个程序员,你需要理解存储器的层次结构,这样才能对程序的性能差别了然于心。今天带大家了解下计算机系统存储器的层次结构。

存储技术

首先了解下什么是存储器系统?

实质上就是一个具有不同容量、成本和访问时间的存储设备的层次结构。从快到慢依次为:CPU寄存器、高速缓存、主存、磁盘;

这里给大家介绍一组数据,让大家有一个更清晰的认识:

如果数据存储在CPU寄存器,需要0个时钟周期就能访问到,存储在高速缓存中需要4~75个时钟周期。如果存储在主存需要上百个周期,而如果存储在磁盘上,大约需要几千万个周期! -- 出自 CSAPP

接下来一起深入了解下计算机系统涉及的几个存储设备:

随机访问存储器

随机访问存储器(RAM)分为静态RAM (SRAM) 和动态RAM(DRAM)。SRAM的速度更快,但也贵很多,一般不会超过几兆字节,通常用来做告诉缓存存储器。DRAM就是就是我们常说的主存。

访问主存

数据流是通过操作系统中的总线的共享电子电路在处理器和DRAM之间来来回回。每次CPU和主存之间的数据传送都是通过一系列复杂的步骤完成,这些步骤成为总线事务。读事务是将主存传送数据到CPU。写事务从CPU传送数据到主存。

总线是一组并行的导线,能携带地址、数据和控制信号。下图展示了CPU芯片是如何与主存DRAM连接的。

1460000021036904

那么我们在加载数据和存储数据时,CPU和主存到底是怎样交互实现的呢?

首先来看一个基本指令,加载内存数据到CPU寄存器中:

movq A,%rax

将地址A的内容加载到寄存器%rax中,这个命令会使CPU芯片上称为总线接口(bus interface)的电路在总线上发起读事务,具体分为三个步骤:

CPU将地址A放到系统总线上,I/O桥将信号传递到内存总线。详情看下下图a

主存感觉到内存总线上的地址信号,从内存总线读地址,从DRAM取出数据字&#x

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值