内存的一家亲戚 and 生存技能

一、内存是什么

首先来区分一下内存与外存

 

1.内存的物理意义

        计算机系统中用于存储的访问的硬件设备。

2.功能

外存与CPU进行沟通的桥梁,暂存CPU的运算数据、与硬盘等外部存储器交换的数据。

  

二、内存的类型

1.只读存储器(ROM)

 定义:

ROM是一种非易失性存储器,数据在断电后不会丢失。ROM用于存储固件和启动程序等永久性数据。

 类型:

可编程只读存储器(PROM)

可擦除可编程只读存储器(EPROM)

电可擦除可编程只读存储器(EEPROM)

2.随机存取存储器(RAM)

定义:
RAM是一种易失性存储器,数据在断电后会丢失。RAM用于存储正在运行的程序和数据。

类型:包括动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
DRAM:需要周期性刷新来保持数据,通常用于计算机的主内存
SRAM:不需要刷新,速度更快,但成本更高,通常用于缓存

三、内存管理

1.内存的分配

静态分配:在编译时分配内存,分配大小固定,如全局变量、静态变量。

动态分配:在运行时分配内存,分配大小可变,如通过 `malloc`、`calloc`、`realloc`(C语言)或 `new`(C++)等函数分配内存。

2.内存地址

定义

        内存地址是内存单元的唯一标识,用于访问特定的存储位置。每个内存单元都有一个唯一的地址。

作用

        CPU通过内存地址来访问和操作内存中的数据。

分类

        物理地址:实际的内存硬件地址。其中每个字节都可以通过与之对应的地址进行访问。

        逻辑地址:用户程序使用的地址

  • CPU
  • TLB(转址旁路缓存 Translation Lookaside Buffer):加速地址翻译的过程
  • MMU(内存管理单元 Memory Management Unit): 负责虚拟地址到物理地址的转换

平常加载程序的顺序是

  1. 操作系统把程序从磁盘加载到内存中(程序一开始是在磁盘中存放的)
  2. CPU去执行程序的第一条指令但是这个指令现在在物理内存中
  3. cpu取指令取的是该指令的虚拟地址,由MMU翻译为物理地址
  4. 这个读物理地址的请求将通过总线,传送到相应的物理内存中,然后物理内存把该指令发送给CPU

3.虚拟内存

定义:虚拟内存是一种内存管理技术,允许操作系统使用硬盘上的空间作为扩展内存,提供更大的内存空间给进程。

作用:虚拟内存使得程序可以使用比实际物理内存更大的地址空间,并实现内存保护和隔离。

tip:假如没有虚拟内存,则会有进程空间不隔离的问题,比如进程A会改写进程B的内容造成进程B崩溃。并且会有内存效率和内存不足的问题,物理内存有限,如果进程在休眠,不需要用的内存但是还是占用了物理内存,新的进程可能会因为内存不足而起不来。

4. 内存管理单元(MMU)

定义:内存管理单元是负责处理内存地址转换和内存保护的硬件组件。

作用:将虚拟地址转换为物理地址,实现虚拟内存管理和内存保护。

关系:

物理内存到虚拟内存的映射工作是由 MMU(内存管理单元)这颗硬件实现的。

四、内存运算的基本过程

1. 指令获取(Fetch)

过程:CPU从内存中获取下一条要执行的指令。指令的地址由程序计数器(PC)指示。

步骤:

1. 将程序计数器的值发送到内存地址总线。

2. 内存控制器将对应的指令读取到指令寄存器(IR)。

3. 程序计数器递增,指向下一条指令。

2. 指令解码(Decode)

过程:CPU解码从内存中获取的指令,以确定要执行的操作和操作数。

步骤:

1. 指令寄存器中的指令被送到指令解码器。

2. 指令解码器解析指令,确定操作码(Opcode)和操作数。

3. 指令执行(Execute)

过程:CPU根据解码后的指令执行相

步骤:

1. 如果指令涉及数据操作(如加法、减法),CPU从寄存器或内存中获取操作数。

2. CPU执行指令指定的操作(如算术运算、逻辑运算、数据传输等)。

3. 执行结果存储回寄存器或内存。

4. 数据存储(Store)

过程:如果指令涉及将数据写回内存,CPU将结果存储到指定的内存地址。

步骤:

1. 将要写入的数据送到内存数据总线。

2. 将目标内存地址送到内存地址总线。

3. 内存控制器将数据写入指定地址的内存单元。

五、内存与CPU的交互

1. 寄存器

定义:寄存器是CPU内部的高速存储单元,用于临时存储数据和指令。

作用:寄存器用于执行快速的算术和逻辑运算,减少对内存的访问次数,提高运算速度。

2.缓存(Cache)

定义:缓存是介于CPU和主内存之间的高速存储器,用于存储经常访问的数据和指令。

作用:减少CPU对主内存的访问次数,提高系统整体性能。

层次结构:

L1缓存:位于CPU内部,访问速度最快,容量较小。

L2缓存:位于CPU和主内存之间,访问速度适中,容量较大。

L3缓存:在多核处理器中共享,访问速度较慢,容量最大。

3. 内存管理单元(MMU)

定义:内存管理单元是负责处理内存地址转换和内存保护的硬件组件。

作用:将虚拟地址转换为物理地址,实现虚拟内存管理和内存保护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值