嵌入式系统学习(三)——存储器系统

存储器概述

存储器系统是计算机中负责存储和检索数据的关键组成部分,它由多个层次和部分组成,在CPU内部有寄存器和高速缓存、在主机内部有主存储器、在主机外部外部辅助存储器。通常主存储器通过系统总线与CPU连接,外部辅助存储器通过特定的接口电路和计算机主机连接。这些不同的存储部件协同工作,向CPU提供数据或保存来CPU的数据。

存储器类型

磁介质存储器

磁介质存储器是一种通过利用磁性材料的特性来存储数据的存储技术。磁介质存储器使用磁性材料,通常是氧化铁(Fe2O3)或钴合金等。这些材料在受到外部磁场的影响时,可以保持磁性,形成磁化的状态。磁介质存储器将存储的数据表示为磁性区域的磁化方向。这些磁性区域可以表示二进制的0和1,属于非易失性存储器。

磁介质存储器有许多应用方向:

  • 硬磁盘(Hard Disk Drive,HDD),也称机械硬盘是磁介质存储器的最常见应用之一。它包含一个或多个磁性盘片,通过读写头在盘片表面读写数据。硬磁盘广泛应用于个人电脑、服务器和大型存储系统。
  • 磁带: 磁带是一种线性存储媒体,数据在磁带上的磁性区域形成连续的轨道。磁带主要用于大容量、长期存储,例如数据备份和存档。
  • 磁卡: 尽管磁卡已经不太常见,但在过去被广泛用于存储小量数据,如信用卡、身份证等。
  • 磁性条形码: 一些存储介质,如磁性条形码,也使用磁性材料来存储数据。这种技术被用于一些磁性存储卡、门禁卡等。

磁介质存储器的优势在于它的容量相对较大,成本相对较低,而且数据可以长时间保持。然而,相较于固态存储(如闪存),磁介质存储器的读写速度较慢。随着技术的发展,存储领域也涌现了新的技术,如固态硬盘(Solid State Drive,SSD),它们在速度和耐用性方面提供了更好的性能。

半导体存储器

半导体存储器(semi-conductor memory)指以半导体器件作为存储介质的存储器。主要分为随机存储器RAM和只读存储器ROM两种类型。

RAM(Random Access Memory,随机存取存储器)型存储器的读写速度较快,之后所存储的内容就消失了;而ROM(Read Only Memory,只读存储器)型存储器具有非易失性,掉电后信息不丢失。鉴于RAM和ROM的特点,RAM 常用于存储运行程序及与之相关的动态数据;而ROM于存储一些固定的数据或者程序。

早期的 ROM 存储器只能读取数据(read only),后来ROM 器件逐渐发展出可一次性多次写入等新特性。从读写特性角度看,现在常用的ROM已经不再是只读的存储器
‘非易失性存储器”(Non-Volatile Memory, NVM)来描述更为合适,但习惯上很多资使用ROM这一称呼。

半导体存储器具有体积小、存储速度快、存储密度高等特点。由于本身就是半导体器储单元电路与输入输出接口电路很容易集成在同一芯片上,因而得到了广泛的应用。
在计算机主存技术中,半导体存储器已全部替代过去的磁性存储器。

光存储器

光存储器是一种利用激光或其他光源进行数据存储和检索的存储技术。这种存储器使用光来改变存储介质的性质,从而记录和读取数据。在数据记录过程中,激光记录的位置和参数被编码成数字数据。这些编码的方式可以是通过改变存储介质的反射率、折射率、磁性等方式来实现。在数据读取时,激光束被重新聚焦到存储介质的表面上。当激光束照射到已记录的区域时,通过检测反射或透射光的特性,可以识别存储介质上的数据。

光存储器具有高密度存储的优势,因为光束可以被聚焦到非常小的区域,使得数据的存储更加紧凑。这也使得光存储器适用于高容量的存储介质。

存储性能指标

存储容量

一颗存储芯片可容纳的存储单元总数通常称为该存储器的存储容量。存储容量用位数、宇数或字节数来表示。以位数表示时,存储器芯片容量=单元数×数据线位数。若该存储器芯片地址线位数为 n n n,则可编址的单元总数为 2 n 2^n 2n;若数据线位数为 m m m,则该存储器芯片容量为 2 n × m 2^n \times m 2n×m

存储单位之间的换算通常以二进制为基础。以下是一些常见的存储单位及其之间的换算关系:

  • 位(bit):是二进制的最小单位,表示0或1。
  • 字节(byte):8个位组成一个字节。
  • 千字节(KB):1024字节,即 2 10 2^{10} 210字节。
  • 兆字节(MB):1024千字节,即 2 20 2^{20} 220字节。
  • 吉字节(GB):1024兆字节,即 2 30 2^{30} 230字节。
  • 太字节(TB):1024吉字节,即 2 40 2^{40} 240字节。
存取时间和存取周期
  • 存储时间( T A T_A TA),也称存储器访问时间,指从启动一次存储器操作到完成该操作所消耗的时间。通常超高速存储器的存取时间小于 20 n s 20ns 20ns;中速存储器的存取时间为 100 → 200 n s 100 \to 200ns 100200ns之间;低速存储器的存取时间在 300 n s 300ns 300ns以上。
  • 存取周期( T M T_M TM),指连续启动两次独立的存储器操作所需要的间隔时间,因此可以得知,存取周期应该大于存储时间。
数据传输速率

数据传输速率( B M B_M BM),也称为带宽,指单位时间内能够传输的信息量,例如,某系统的数据总线位数为 M M M,存取周期为 T M T_M TM,则该系统的数据传输速率为: B M = M T M B_M=\frac{M}{T_M} BM=TMM,若 M = 32 M=32 M=32 T M = 100 n s T_M=100ns TM=100ns,则 B M = 320 M b / s = 40 M B / s B_M=320Mb/s=40MB/s BM=320Mb/s=40MB/s

只读存储器

ROM与RAM相比,最大的特点就是非易失性,一般用于固定的数据或者程序。ROM有许多类型,并非所有类型都是只能读取数据,ROM依据是否可编程、编程次数以及编程方式可以分为掩模ROM、可擦除可编程ROM、电可擦除可编程ROM等不同类型。

掩模ROM

掩模ROM(Mask ROM)是一种只读存储器类型,其中数据被硅片上的金属掩模决定,而不是通过可编程方式写入。这种存储器是在制造过程中使用特殊的掩膜技术来定义数据存储位的状态,因此也称为"掩膜可编程只读存储器"。

PROM

PROM是可编程只读存储器(Programmable ROM)的缩写。它是一种与掩模ROM相对应的存储器类型,具有一定的可编程性,允许在制造之后进行一次性的编程操作。一旦编程完成,数据就不能再被擦除或修改。编程方式一般有通过大电流将连接三极管的熔丝熔断,或者通过大电压将肖特基二极管构成的绝缘体击穿。

EPROM

EPROM(可擦除式可编程只读存储器,Erasable Programmable ROM)是一种可多次擦除和重新编程的存储器类型。与PROM不同,EPROM允许在需要时擦除存储的内容,并重新编程新的数据。

  • 擦除操作: EPROM可以通过特殊的操作进行擦除,使其存储的数据变为初始状态。擦除通常是通过暴露EPROM芯片中的存储单元到紫外线光源,这会使得存储单元中的电子被移除,将数据擦除为初始状态。
  • 编程方式: EPROM的编程是通过应用电压和电流来改变存储单元的状态。编程操作是非破坏性的,可以多次进行,但擦除是有限制的,通常在数百到数千次之间。

EEPROM

EEPROM(Electrically Erasable Programmable ROM)是一种可通过电信号进行多次擦除和重新编程的非易失性存储器类型。相比于EPROM,EEPROM的擦除操作是电子擦除,无需像EPROM那样使用紫外线。

Flash

Flash(闪存)是一种类似于EPROM的单管叠栅结构的存储单元。Flash既吸收了EPROM结构简单、编程可靠的优点、又保留了EEPROM用隧道效应擦除的快捷特性,且集成度更高。

随机存取存储器

RAM类型的存储器的工作特点是可随时从中快速的读取或写入数据,属于易失性存储器,当开关或断电时,其中的信息都会随之丢失。按照存储单元的特征,RAM分为动态随机存储器(DRAM)和静态随机存储器(SRAM)。

静态RAM

静态随机存取存储器(Static Random Access Memory,SRAM)的储存电路以双稳态触发器为基础,与动态RAM(DRAM)不同,SRAM的存储单元不需要定期刷新,因为它们不依赖于电荷的积累。这使得SRAM在速度上具有优势,因为在读取或写入数据时无需等待刷新操作,SRAM具有很快的访问速度。这使得它在需要快速存取临时数据的应用中非常有用,如缓存存储器等。此外,SRAM存储单元是稳定的,只有在电源关闭时才会丧失存储的数据。这使得SRAM在需要长时间保存数据的应用中很受欢迎。但SRAM集成度低,不适合大存储量要求的场景。

动态RAM

动态随机存取存储器(Dynamic Random Access Memory,DRAM)的存放信息靠的是储存电容,由于电容自身存在漏电现象,因此需要对电路进行刷新,即每隔一段时间就对原本是高电平的电容补充电荷,使其维持住高电平。也因此DRAM访问速度较慢,但其结构简单,容易集成,适合于有较大存储量要求的场景。

高速缓存

高速缓存(Cache)是计算机体系结构中一种用于提高存储器访问速度的临时性存储器层。它位于主存储器(RAM)和中央处理器(CPU)之间,用于存储最常用的数据和指令,以便在需要时快速提供给CPU。高速缓存的存在是为了弥补主存和CPU之间速度不匹配的差异。
Cache通常为半导体存储器,采用SRAM或其它访问速度高的易失性存储器。

当CPU访问存储器时,首先在Cache中查找所需信息,如果存在,直接从Cache中读取;如果不存在则到内存中获取,并按照预定策略更新Cache,将所需信息调入Cache。

虚拟存储器

虚拟存储器(Virtual Memory, VM)是一种计算机系统内存管理技术。其效果是让程
序员在编程时面向一个连续可用的地址空间,而程序运行时,可以被划分为多个分片,按需将一部分分片调入物理内存(Physical Memory,PM),其余部分暂时存储在辅助外存(磁盘)。

将外存中的信息块调入物理内存时,划分信息块有多种不同的方式。

段式虚拟存储器

将程序的地址空间划分为若干段,每个段可以具有不同的长度和属性,如主程序段、子程序段、数据段及堆栈段等。每个段都有一个基地址和长度,这样的设计使得程序的地址空间可以更加灵活地分割和管理。

这种管理方式中,虚地址由段号S和段内偏移地址D组成。虚拟地址与物理内存地址之间的映射关系记录在段表中,段表存放于内存中,CPU通过段表基址寄存器获得段表的起始地址,依据段号S在段表中查询该段的对应信息,段信息中的段起始地址与段内偏移地址D相加得到虚地址在物理内存中的实际地址。

  • 优点:段式存储管理易于实现存储器保护和多程序共享
  • 缺点:内存载入不同段时,易在段间形成空余的存储空间碎片,若某个段很大,从外存载入内存所需时间较长,容易卡顿。

页式虚拟存储器

将程序使用的虚拟内存地址空间划分为大小相等的区域,称为页,对应的,将主存空间划分为与页相同大小的若干物理块,称为页框。在为程序分配主存时,可以将程序的若干页分别装入多个相邻或者不相邻的页框中。

虚地址由虚页号P和页内偏移地址D组成。虚地址和物理地址之间的映射关系记录在页表中,页表记录每个页的页号,以及是否装人内存、是否在内存中被修改等各种标识信息。页表存放于内存中,CPU通过页表基址寄存器获取页表的起始地址,依据虚页号P在页表中查询该页在内存中的实际页号,由实际页号、页内偏移地址
D计算得到该虚地址在物理内存中的实际地址。由于页的大小是固定的,所以啦地址到实际物理地址的转换比段式管理情形要简单很多。

  • 优点:相比于段式管理,页式存储管理粒度更细致,故内存页碎片的浪费会小很多。同时因为页要比段小得多(Linux 下默认为4 KB),所以页在进行数据交换时,卡顿现象较段式管理有显著改善。所以,多数操作系统采用页式存储管理。由于页的大小是固定的,因此分页时只需指定页的起始位置。
  • 缺点:页式管理的缺点在于,页不是程序模块的自然对应,分页仅仅是由于系统管理的需要而不是用户的需要,页的保护和共享都不如段方便。

段页式虚拟存储器

段页式虚拟存储器先将程序按照自然逻辑关系分为若干段,再把每一个段分成若干页,这种方式结合了两种管理方法的优点,提高了主存利用率,也可以按段实现共享和保护。

虚地址由段号S、虚页号P、页内偏移D组成。段表中记录了页表长度和页表地址。通过段表基地址和段号S相加可以找到页表起始地址和页表长度,进而通过页表找到物理内存的实际页号,实际页号与偏移地址D相加可以得到虚地址对应的物理地址。

虚拟存储器的作用

虚拟存储器是计算机系统中的一项关键技术,具有多种重要作用,主要包括以下方面:

  • 扩展地址空间:虚拟存储器使得程序能够访问比实际物理内存更大的地址空间。程序可以被设计为使用比计算机物理内存更大的地址范围,而虚拟存储器通过将部分程序或数据存储在辅助存储器中,实现了对更大地址空间的支持。
  • 多任务处理:虚拟存储器使得多个程序能够同时存在于内存中,从而支持多任务处理。即使计算机的物理内存有限,虚拟存储器可以让操作系统有效地在多个程序之间切换,提高系统的并发性和用户体验。
  • 内存抽象和地址映射:虚拟存储器通过地址映射机制将程序的虚拟地址映射到物理地址,为程序提供了内存的抽象层。程序可以使用虚拟地址,而不需要关心实际内存的物理位置,简化了程序的开发和维护。
  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值