各位做嵌入式开发的小伙伴有没有这种困扰,每当开会讨论开发板性能,各种参数配置,领导们侃侃而谈的rom、ram、ddr、nand-flash等一系列装X单词…到底是些什么东西,你都了解吗,赶紧来熟悉一波吧

内存

什么是内存?在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。

外存通常是磁性介质或光盘,像硬盘,软盘,CD等,能长期保存信息,并且不依赖与电来保存信息。

内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,一旦断电,其中的程序和数据就会丢失。

CPU 内存 硬盘

CPU如果直接从硬盘中抓数据,时间会太久。所以“内存” 作为中间人,然从硬盘里面复制一份进来,再让CPU直接到内存中拿数据做运算。这样会比直接去硬盘抓数据,快百万倍。
CPU里面有一个存储空间,叫Register(寄存器),运算时,CPU会从内存中把数据载入Register,再让Register中存的数字做运算,运算完再将结果存回内存中。毕竟CPU和内存是两片不同的芯片,没有在同一块芯片里直接抓数据块。
还有一个概念是Cache,这是CPU和内存之间的桥梁。
速度来讲,就是:CPU里面的Register > Cache > 内存 > 硬盘,速度越快,价格越高,容量越低。

ROM和RAM

ROM和RAM指的都是半导体存储器,都是计算机内部存储器的一种,ROM(只读存储器)是Read Only Memory的缩写,RAM(随机存取存储器)是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

RAM比较好理解,可以理解成我们常说的手机以及计算机的运行内存,RAM越大,能同时在内存中执行的程序就越多,性能一般是越好的。

ROM对于很多新手来说,可能会和硬盘理解混淆。那么ROM和硬盘到底有没有关系呢?要从早期发展历程说起,早期,乃至现在,我们的主要存储介质都是磁性存储,也就是磁盘,分为硬盘和软盘,硬盘不太适合做移动存储,因为其磁头容易损坏,不耐摔,而且体积较大,就算缩小容量仍然很难缩小其体积,软盘虽然用作移动介质还算方便,但其容量过于小,不够用,而光盘虽然容量大但不易擦写,同时体积也不够小,这时就很适合使用半导体存储介质–ROM和RAM,ROM用来嵌入电脑主板或者做移动存储介质就很合适了,其体积够小,提供的容量可以比光盘和软盘的大,速度也更快,但成本相对更高,而且早期的ROM因为技术不成熟所以无法擦写,出厂后就只能读数据,所以叫只读存储器,后来随着技术的发展,在ROM的基础上出现了新的半导体存储介质EPROM和EEPROM,这两种可擦写,这就不符合ROM的命名,但是由于是在ROM的技术上衍变出来的,所以延用了一部分原来的叫法,此时非易失的半导体存储介质开始得以广泛应用,被大量用于电脑主板的bios和嵌入式存储,而后来在这两种技术的发展上又发展出了NAND FLASH闪存,这就是我们现在用的U盘中用到的技术,同样,因为其体积小,容量和速度均不错,现在手机存储中的emmc颗粒也是用的这种技术,所以有手机厂商就把手机的存储容量约定俗成为ROM,其继承ROM断电不丢失数据的特性,而且有着较快的速度。

那么电脑硬盘和ROM有什么关系呢?由于ROM和硬盘都可以存储数据而且断电不会丢失,而有都广泛运用于电子产品中,所以有人就对两者产生了混淆。硬盘分为两种,一种是机械硬盘(即磁盘HDD),一种是固态硬盘(SSD),磁盘和ROM没什么关系,但是固态硬盘就不一样了,固态硬盘用到的颗粒也是基于NAND FLASH技术,和u盘以及手机存储有点相似,所以说硬盘和ROM还是有关系的,固态硬盘的存储颗粒是ROM技术发展的产物,但不能说ROM就是硬盘。

ROM和RAM的分类

RAM有两大类,一类称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是价格昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它也比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。

DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,下面会介绍其中一个DDR RAM。

ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦除,价格很高,写入时间很长,写入速度很慢。

DDR RAM(RAM的一种)

DDR=Double Data Rate双倍速率,DDR SDRAM=双倍速率同步动态随机存储器,DDR内存是在SDRAM内存基础上发展而来的。这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

Flash内存

Flash内存即Flash Memory,全名叫Flash EEPROM Memory,又名闪存,其存储特性相当于硬盘,它结合了ROM和RAM的长处,不仅具备了电子可擦除可编程(EPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。 在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。

目前Flash主要有两种NOR Flash和NAND Flash。

NAND FLASH

Nand-flash内存是flash内存的一种,1989年,东芝公司发表了NAND flash结构。其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。

Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。

NOR FLASH

NOR Flash的读取和我们常见的SDRAM的读取是类似的,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约成本。
intel公司1988年开发出了NOR FLASH技术,NOR的特点是芯片内执行,这样应用程序可以直接在flash闪存内运行,不必再把代码读取到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是其很低的写入和擦出速度大大影响了它的性能。

NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

总结一幅精华图

有这一篇就够了,带你理解嵌入式内存各种概念相关推荐

  1. Numpy 学习看这一篇就够了(整理+理解+精简)

    文章目录 一.Numpy的介绍 1.NumPy简介 2.NumPy的优点 3.NumPy的缺陷 二.Numpy 安装 1.安装 三.Ndarry对象 1.构造函数 np.array (默认深拷贝) n ...

  2. jvm有这一篇就够了,深入理解

    jvmHotSpot虚拟机对象探秘 对象的实例化 对象的内存布局 对象的访问定位 直接内存 执行引擎 StringTable 垃圾回收概述 垃圾回收相关算法 垃圾回收相关概念的概述 垃圾回收器 对象的 ...

  3. 【大数据】带你理解flink的state概念

    文章目录 一.概述 1.简介 2. State backend 2.1.MemoryStateBackend 2.2.FsStatebackend: 2.3. RocksDBStateBackend ...

  4. 这一篇就够啦,带你了解MySQL的常用技巧

    前言 相关mysql 博客链接 这一篇就够啦,带你了解MySQL,SQL层面的优化 https://blog.csdn.net/qq_42292373/article/details/10891617 ...

  5. api网关选型_如何轻松打造百亿流量API网关?看这一篇就够了(下)

    如何轻松打造百亿流量API网关?看这一篇就够了(上) 上篇整体描述了网关的背景,涉及职能.分类.定位环节,本篇进入本文的重点,将会具体谈下百亿级流量API网关的演进过程. 准备好瓜子花生小板凳开始积累 ...

  6. override java field_JavaPoet 看这一篇就够了

    Post Views: 13 JavaPoet 是用来生成 Java 代码的一个 Java Library. 学习 JavaPoet, 唯一也是最快的方法是自己动手生成一个 Java Code 文件. ...

  7. 史上最全的Linux常用——目录和文件管理命令——收藏这一篇就够了!(超全,超详细)

    史上最全的Linux常用--目录和文件管理命令--收藏这一篇就够了!(超全,超详细) Linux目录结构 命令 查看文件内容:-cat 查看文件内容:-more 查看文件内容:-less 查看文件内容 ...

  8. .NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

    写在前面 上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制,当然介绍的都是比较常用的功能.今天我再带着大家一起熟悉下一个ORM框架Dapper,实例代码的演示编写完成后我会通过Git ...

  9. .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新手朋友),但是转念一想不如来点猛的(考虑到急性子的朋友),让你通过本文的学习就能快速的入门ASP.NET Core.既 ...

最新文章

  1. R语言使用edit函数在Rsudio中生成数据编辑器(在windows中生成编辑器)、在编辑器中输出需要的数据生成最终的dataframe
  2. 新书上市 | C程序员! 这可能是你搞定指针最轻松的方式
  3. 收藏 | 图神经网络的解释性综述
  4. 【题意+分析】1043 Is It a Binary Search Tree (25 分)
  5. 伯克利计算机科学录取率,Berkeley的CS「加州大学伯克利分校计算机科学系」
  6. jupyter notebook 安装代码提示功能
  7. 【实习之T100开发】T100 单档程序开发(2)添加功能
  8. ORM框架之Mybatis(六)mybatis通用mapper
  9. 手动抛出异常_TestNG和SpringBoot2.1.6整合后,导致TestNG的断言异常无法抛出,是为什么?...
  10. 苹果手机验真假_简单三步教你辨别苹果二手机,识别率高达99%,特别适合新手
  11. java list 冒泡_JAVA List 排序 冒泡排序
  12. matlab 小波变换程序,matlab 小波变换
  13. 电脑远程开机pcie卡
  14. 联想电脑阻止c语言运行,联想电脑运行程序打不开怎么解决
  15. Linux下 安装白鹭(egret)引擎指南
  16. windows installer 窗口一直”正在取消“,无法关闭
  17. 普里姆算法解决修路问题
  18. Android Studio Canvas 实现鼠标贝塞尔曲线拖尾特效
  19. UI设计规范技巧——文件整理
  20. Linux 读书笔记 二

热门文章

  1. 联想yoga 720-12ikb笔记本一键U盘装win10系统教程
  2. 操作无法完成。键入的打印机名不正确,或者指定的打印机没有连接到服务器上...
  3. C#cad二次开发复制对象,可用于同一数据库内的块复制
  4. 万能函数SUMPRODUCT超实用的10种经典用法
  5. 从入局到腾飞 网易云信与在线教育的三年之约
  6. 这20首诗词献给天下程序员们
  7. 导出日历(导出ICS文件)(原创)
  8. centos7.8 LAMP搭建
  9. 如何将两个微信小程序合并_微信小程序--如何在两个页面之间传值
  10. 单层大尺寸Ti3C2-Mxene胶体分水散液