嵌入式工程师必备,存储器知识总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式工程师必备,存储器知识总结相关的知识,希望对你有一定的参考价值。

嵌入式工程师必备,存储器知识总结

1、存储器的概念

 

(1) 存储器:存储器是计算机硬件系统的记忆设备,用来存放程序(软件)和各种数据。现在计算机硬件系统的核心就是存储器和CPU

 

(2) DMA:一种可以让存储器与IO设备进行数据存取的方式。设计理念就是为了在IO设备与存储器进行数据存取时不去打扰CPU

2存储器的分类

(1) 按照存储器的介质分类

1.1 半导体存储器:由半导体组成的存储器称为半导体存储器,半导体的存储器体积小,功率低,存取时间短,但是电源消失时,所存储的数据也会丢失,是一种易失性存储器;

 

1.2 磁材料存储器:由磁材料做成的存储器称为磁性存储器,在金属或塑料上涂抹一层磁性材料,用来存放数据,特点是非易失即断电后不数据不消失,存取速度比较慢;

 

1.3 盘存储器:光盘存储器使用激光在磁光材料上进行读取,特点是非易失性,耐用性好,记录密度高。现在多用在计算机系统中用作外部存储。

 

(2) 按照存储器的数据存取方式分类

2.1 随机存储器(Random Access Memory RAM)RAM(随机存储器)是一种可以读可以写的存储器,它的任何一个存储单元的内容都可以随机存取,而且存取的时间与物理位置无关,我们的内存(主存)就是这种RAM(随机存储器)

 

2.2 只读存储器(Read Only Memory ROM)ROM(只读存储器)是一种只能写入一次原始信息,写入之后,只能对去内部的数据进行读出,而不能随意重新写入新的数据去改变原始信息;

 

2.3 串行访问数据存储器:在对存储器的存储单元进行读写操作时,必须要按照存储单元的物理位置先后寻址地址,这种存储器就为串行访问存储器。这种存储器在存取数据时,需要按照存储器的存储单元的位置显示进行存取。

 

(3) 按照其在计算机系统中的作用

3.1 主存储器(主存):通常指我们所说的内存,它可以直接与CPU交换数据的存储器,特点速度快,容量小,价格高。主存采用半导体制作,所以是易失性存储器;

 

3.2 辅助存储器(辅存):通常指我们所说的外存,用来存放当前没有使用的程序和数据,它不能直接与CPU交换数据,需要加载到主存。特点速度慢,容量大,价格便宜。辅存属于非易失性存储器;

 

3.3 缓冲存储器(缓存):主要用到俩个速度不同的部件之中,现在基本用在CPU与主存之间,起到缓存的作用。

技术分享

3、存储器的层次

(1) 存储器的层次按照它的3个指标即速度,容量,每位价格进行划分分别是:

寄存器=>缓存=>主存=>磁盘=>光盘

 

越是上层的存储器它的容量越小,速度越快,每位价格越高,越是下层的存储器容量越大,速度越慢,每位价格越低。

 

寄存器是CPU中的一个存储器CPU实际上是拿寄存器中的数进行运算和控制,它的速度最快,价格最高。缓存也被设置到了CPU中。

 

(2) 缓存与主存主要是为了解决CPU与主存速度不匹配的问题,因为CPU速度要快与主存,而缓存也快与主存,只要将CPU近期要使用的数据调入到缓存中,CPU直接从缓存中获取数据,来提升数据的访问速度,降低CPU的负荷。主存与缓存的数据调动是由硬件自己完成的。

 

(3) 主存与辅存主要用来解决存储系统的容量问题,辅存比主存速度低,并且不能被CPU之间访问,但它容量大,当CPU需要运行程序时,将辅存的数据调入到主存,CPU在来访问。主存和辅存之间的数据调动由硬件和操作系统共同完成。

技术分享

4、主存功能

 

主存储器是能由CPU直接编写程序访问的存储器,它存放需要执行的程序与需要处理的数据,只能临时存放数据,不能长久保存数据。

 

组成:

存储体(MPS):由存储单元组成(每个单元包含若干个储存元件,每个元件可存一位二进制数)且每个单元有一个编号,称为存储单元地址(地址),通常一个存储单元由8个存储元件组成;

地址寄存器(MAR):由若干个触发器组成,用来存放访问寄存器的地址,且地址寄存器长度与寄存器容量相匹配(即容量为1K,长度无2^10=1K);

地址译码器和驱动器

数据寄存器(MDR):数据寄存器由若干个触发器组成,用来存放存储单元中读出的数据,或暂时存放从数据总线来的即将写入存储单元的数据【数据存储器的宽度(w)应与存储单元长度相匹配】。

技术分享

主要技术指标:

存储容量:一般指存储体所包含的存储单元数量(N);

存取时间(TA):指存储器从接受命令到读出写入数据并稳定在数据寄存器(MDP)输出端;

存储周期(TMC):两次独立的存取操作之间所需的最短时间,通常TMCTA长;

存取速率:单位时间内主存与外部(如CPU)之间交换信息的总位数;

可靠性:用平均故障间隔时间MTBF来描述,即两次故障之间的平均时间间隔。

5、高速缓冲存储器(缓存)

1)高速缓冲存储器的设计理念:为了解决由于IO设备向主存请求的级别高于

CPU向主存请求,也就是说IO设备在使用主存时,CPU要等待IO设备访存,导致 CPU工作效率降低,可以在CPU与主存之间加一级缓存,这样CPU可以从缓存中获取数据,另外主存的速度要低于CPU,缓存也是为了解决这俩个硬件设备速度不匹配的问题。

 

2)程序访问的局部性:即程序的数据和指令在主存中是连线存放的,并且有些指令和数据往往被多次调用,循环什么的,这样CPU在访问主存时只要将近期需要使用的数据和指令放到Cache中,就可以在一定时间内一直访问Cache,称缓存命中。

 

3)缓存的工作原理:将主存和缓存分成若干个块,每个块存储的容量都是相同的,任何时刻都有一些主存的块处在缓存块中,可以将缓存当成主存的一个映射,CPU在读取主存的某个字时都会先去缓存中访问,有二种可能,一是缓存中有当前字,CPU直接访问(CPU与缓存通常一次传送一个字)称为缓存命中;另一种是所需的字不在cache中,此时需要将该字所在的主存整个块一次调入Cache(缓存与主存是按照字块传送)称为缓存不命中。

 

4)主存与缓存之间数据的调入是由机器硬件自动完成的,用户编程时使用的只是主存地址,也就是说cache对我们来说是透明的。

 

5)我们平时在写程序时所说的缓存指的是主存到辅存(或者说是内存到硬盘之间设立一个类似于缓存的区域)来减少磁盘的IO提升性能,而这里的缓存指的是CPU与主存之间的。

6ROMRAM

RAM(随机存储器)。可读出,也可写入,随机存取,意味着存取任一单元所需的时间相同,当断电后,存储内容立即消失,称为易失性。

 

ROM(只读存储器)。定义:ROM一旦有了信息,不易改变,结构简单,所以密度比可读写存储器高,具有易失性。

 

分类:

固定掩模型ROM(不能再修改)

● PROM可编程之读存储器(由用户写入,但只允许编程一次)

● EPROM可擦除可编程只读存储器(可用紫外线照射擦除里面内容)

● E2PROM电擦除可编程只读存储器(由电便可擦除里面内容)

7、辅助存储器(外存)

技术分享


(1) 辅存概念与设计理念:辅助存储器主要为了给主存提供程序和数据的输入和用来在计算机脱机时保存所有的计算机数据.属于非易失性存储器,通常辅存也称为外存,由硬磁盘和软磁盘,磁带,光盘等.形成了主辅层次存储器。

 

(2) 硬磁盘(硬盘):现在计算机采用的辅存多采用硬磁盘(硬盘),即在一组圆形的盘面上涂抹磁性材料。通过这个硬盘的运作和磁头进行读写,磁头划的一个圈称为磁道,硬盘存取数据时是直接存取的,分为俩部分一是找到相应的磁道,然后是磁头开始读写。

技术分享

(3)硬盘组成:硬盘由磁盘驱动器,磁盘控制器,盘片组成。

技术分享

磁盘分区表(partitiontable):利用参考对照磁柱号码的方式来切割硬盘分区!在分割表所在的64 bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。若将硬盘以长条形来看,然后将磁柱以直条图来看,那么那64 bytes的记录区段有点像底下的图示:

技术分享


上图中我们假设硬盘只有400个磁柱,共分割成为四个分割槽,第四个分割槽所在为第301400号磁柱的范围。

 

由于分割表就只有64 bytes而已,最多只能容纳四笔分割的记录,这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。根据上面的图示与说明,我们可以得到几个重点资讯:

 

其实所谓的『分割』只是针对那个64 bytes的分割表进行配置而已!

硬盘默认的分割表仅能写入四组分割资讯<主要分割与扩展分配最多可以有四条(硬盘的限制)>

这四组分割资讯我们称为主要(Primary)或延伸(Extended)分割槽;

扩展分配最多只能有一个(操作系统的限制)

逻辑分割是由扩展分配持续切割出来的分割槽,如果扩展分配被破坏,所有逻辑分割将会被删除;

能够被格式化后,作为数据存取的分割槽为主要分割与逻辑分割。扩展分配无法格式化;

分割槽的最小单位为磁柱(cylinder)

逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63)SATA硬盘则有11个逻辑分割(5号到15)

当系统要写入磁碟时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理。

8、内存与外存的比较

技术分享

希望帮到大家!

本文出自 “12294774” 博客,请务必保留此出处http://12304774.blog.51cto.com/12294774/1882544

以上是关于嵌入式工程师必备,存储器知识总结的主要内容,如果未能解决你的问题,请参考以下文章

网络总结知识点(网络工程师必备)四

网络总结知识点(网络工程师必备)二

网络总结知识点(网络工程师必备)一

2021Java开发工程师必备知识,Java后端学习主流知识学习系列(建议先收藏)

STM32中常用的C语言知识点总结!

vue基本知识点总结—面试必备