存储、冯诺伊曼和哈佛结构之间的关系

一 存储分类

1 用途

  存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存,港台称之为记忆体)。外储存器是指除计算机内存及CPU缓存以外的储存器,此类储存器一般断电后仍然能保存数据。常见的外存储器有硬盘、软盘、光盘、U盘等。

2 电写电读

  易失性存储器(Volatile Memory,VM):电源开启时资料存在,电源关闭则资料立刻流失(资料挥发掉),例如:SRAM、DRAM、SDRAM、DDR-SDRAM 等。
  非易失性存储器(Non-Volatile Memory,NVM):电源开启时资料存在,电源关闭资料仍然可以保留,例如:ROM、PROM、EPROM、EEPROM、Flash ROM、FRAM、MRAM、RRAM、PCRAM 等。
在这里插入图片描述

二 随机存取存储器RAM

1 RAM

  随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
  存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储单元的工作原理,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。

2 SRAM

  SRAM速度非常之快,可以说SRAM是目前存储最快的设备了,性能这么好,用脚想想就知道很贵,所以一般SRAM只用在对存储性能要求很苛刻的地方了,比如CPU的一级缓冲和二级缓冲。

3 DRAM

  DRAM是我们这些做硬件设计的攻城狮们最常见的一种存储了,DRAM发展到今天,已经经历了5代了,每一代都会在性能方面有很大的提升,主要是在工作频率和节能方面。

4 SDRAM

  SDRAMS(ynchronous Dynamic Random Access Memory,同步动态随机存储器),同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

5 DDR

  准确的将应该叫DDR(Dual Data Rate) SDRAM,双倍速率同步动态随机存储器,什么叫双倍速率呢?就是说DDR采用可降低干扰的差分时钟信号作为同步时钟,DDR在时钟的上升沿和下降沿均可进行数据的传输,所以内存的速率是SDRAM的2倍,相同的时间内运行速率更快,用户体验上升了一个台阶。举个栗子:DDR333,其工作频率为333/2=166MHZ,也就是说时钟的频率为166MHZ,但是由于DDR可以两边同时传输数据,所以对于DDR而言,其运行时钟为333MHZ。可能这边有点绕哈,看不懂的不要管后面这部分,只需要知道DDR333它的时钟频率为166MHZ就OK了,也就是说DDR333内存所能达到的最高工作频率为166MHZ。
  自从DDR出现之后,后面它妈就又给它生了很多的弟弟,DDR2、DDR3、DDR4就相继降临了,当然后面出生的性能比前面的就强大很多了,具体表现就是:
  1、时钟频率提高了,也就是所跑起来更快了,数据传输速率更快了;
  2、更加节能了,DDR的工作电压为2.5V,DDR2为1.8V,DDR3为1.5V,DDR4为1.2V。
在这里插入图片描述

6 LPDDR

  它的全称是Low Power Double Data Rate SDRAM,是DDR的一种,又称为mDDR(Mobile DDR SDRAM),是美国JEDEC固态技术协会(JEDEC Solid State Technology Association)面向低功耗内存而制定的通信标准,以低功耗和小体积著称,专门用于移动式电子产品。
  相对于 pc 内存已经发展到DDR4,而手机上采用的LPDDR RAM是“低功耗双倍数据速率内存”的缩写,与桌面平台的DDR4内存相比,面向移动平台的LPDDR4,其能够在带来等效的性能(速度)的同时,兼顾更少的能源消耗。
  LPDDR的运行电压(工作电压)相比DDR的标准电压要低,从第一代LPDDR到如今的LPDDR4,每一代LPDDR都使内部读取大小和外部传输速度加倍。其中LPDDR4可提供32Gbps的带宽,输入/输出接口数据传输速度最高可达3200Mbps,电压降到了1.1V。至于最新的LPDDR4X,与LPDDR4相同,只是通过将I / O电压降低到0.6 V而不是1.1 V来节省额外的功耗,也就是更省电。 `

三 只读存储器ROM

1 ROM

  ROM(Read-Only Memory,只读存储器)内部的资料是在ROM的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能验证写入的资料是否正确,不能再作任何修改。如果发现资料有任何错误,则只有舍弃不用,重新订做一份。ROM是在生产线上生产的,由于成本高,一般只用在大批量应用的场合。

2 PROM

  PROM(Programmable ROM,可编程ROM)。最初从工厂中制作完成的PROM内部并没有资料,用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改,若是出了错误,已写入的芯片只能报废。PROM的特性和ROM相同,但是其成本比ROM高,而且写入资料的速度比ROM的量产速度要慢,一般只适用于少量需求的场合或是ROM量产前的验证。

3 EPROM

  EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12~24V,随不同的芯片型号而定)。EPROM的型号是以27开头的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。

4 EEPROM

  EEPROM(Electrically Erasable Programmable ROM),电可擦除只读存储器,是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。

四 闪存(Flash)

1 概述

  关于闪存和ROM的区别,并不是很清晰,各有说法,在此单独拿出说明。
  FLASH(Flash Memory)存储器又称闪存,属于非易失性存储设备(Non-volatile Memory Device)(与此相对应的是易失性存储设备(Volatile Memory Device)),它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),数据删除不是以单个的字节为单位而是以固定的区块为单位(NOR Flash为字节存储。),区块大小一般为256KB到20MB。通俗地说,它就相当于电脑中的硬盘,运行内存在断电后不会保留存储的数据,而要长期保持数据不丢失还是需要将数据从内存写入到硬盘当中。对于电脑这样的桌面设备,我们可以塞进去一块硬盘,而对于手机这样的移动设备,显然就不现实了。
  于是,1984年,东芝公司的发明人舛冈富士雄首先提出了快速闪存存储器(此处简称闪存)的概念。特点是非易失性,其记录速度也非常快,同时体积小,因此后来被广泛运用于数码相机,掌上电脑,MP3、手机等小型数码产品中。Intel是世界上第一个生产闪存并将其投放市场的公司,当时为NOR闪存,后来日立公司于1989年研制了NAND闪存,逐渐替代了NOR闪存。值得一提的是,如今广泛用于PC上的SSD和手机的ROM,本质上是一家人,都是NAND闪存。
  U盘里一般用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
  关于 flash 更详细的介绍在这里

2 UFS和eMMC

  闪存规格eMMC和UFS,其中,eMMC的全称为“embedded Multi Media Card”,即嵌入式的多媒体存储卡。是由MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。简单说,就是在原有内置存储器的基础上,加了一个控制芯片,再以统一的方式封装,并预留一个标准接口,以便手机客户拿来直接使用。2015年前所有主流的智能手机和平板电脑都采用这种存储介质。
在这里插入图片描述
  2011年电子设备工程联合委员会(Joint Electron Device En gineering Council,简称JEDEC)发布了第一代通用闪存存储(Universal Flash Storage,简称UFS)标准,即UFS 2.0的前身。不过第一代的UFS并不受欢迎,也没有对eMMC标准产生明显的影响。
  到了2013年,JEDEC在当年9月发布了UFS 2.0的新一代闪存存储标准,UFS 2.0闪存读写速度理论上可以达到1400MB/s,不仅比eMMC有更巨大的优势,而且它甚至能够让电脑上使用的SSD也相形见绌。于是后来逐渐在高端设备市场上取代eMMC,成为移动设备的主流标配。而实际上,UFS 2.0共有两个版本,其中一个是HS-G2,也就是目前的UFS 2.0。然而,另个一个版本则为HS-G3,可以称为UFS 2.1,其数据读取速度将飙至1.5G/s,也就是UFS 2.0的两倍。
在这里插入图片描述
  那么UFS和eMMC有什么区别呢?区别在于,UFS 2.0的闪存规格则采用了新的标准,它使用的是串行接口,很像PATA、SATA的转换。并且它支持全双工运行,可同时读写操作,还支持指令队列。相比之下,eMMC是半双工,读写必须分开执行,指令也是打包的,在速度上就已经是略逊一筹了。而且UFS芯片不仅传输速度快,功耗也要比eMMC 5.0低一半,可以说是当下以及日后旗舰手机闪存的理想搭配。

五 FQA

  问题1:为什么DRAM要刷新,SRAM则不需要?
  答:这是由RAM的设计类型决定的,DRAM用了一个T和一个RC电路,导致电容会漏电和缓慢放电,所以需要经常刷新来保存数据。
  问题2:为什么使用DRAM比较多、而使用SRAM却很少?
  答:(1)因为制造相同容量的SRAM比DRAM的成本高的多,正因为如此,才使其发展受到了限制。因此目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存。仅有少量的网络服务器以及路由器上能够使用SRAM。(2)存储单元结构不同导致了容量的不同:一个DRAM存储单元大约需要一个晶体管和一个电容(不包括行读出放大器等),而一个SRAM存储单元大约需要六个晶体管。DRAM和SDRAM由于实现工艺问题,容量较SRAM大,但是读写速度不如SRAM。
  问题3:用得最多的DRAM有什么特点呢?它的工艺是什么情况?(通常所说的内存就是DRAM)
  答:(1)DRAM需要进行周期性的刷新操作,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随机访问”是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。(2)DRAM和SDRAM由于实现工艺问题,容量较SRAM大。但是读写速度不如SRAM,但是现在,SDRAM的速度也已经很快了,时钟好像已经有150兆的了。那么就是读写周期小于10ns了。(3)SDRAM虽然工作频率高,但是实际吞吐率要打折扣。以PC133为例,它的时钟周期是7.5ns,当CAS latency=2 时,它需要12个周期完成8个突发读操作,10个周期完成8个突发写操作。不过,如果以交替方式访问Bank,SDRAM可以在每个周期完成一个读写操作(当然除去刷新操作)。(4)其实现在的主流高速存储器是SSRAM(同步SRAM)和SDRAM(同步DRAM)。目前可以方便买到的SSRAM最大容量是8Mb/片,最大工作速度是166MHz;可以方便买到的SDRAM最大容量是128Mb/片,最大工作速度是133MHz。
  问题4:用得比较少但速度很快,通常用于服务器cache的SRAM有什么特点呢?
  答:(1)SRAM是静态的,DRAM或SDRAM是动态的,静态的是用的双稳态触发器来保存信息,而动态的是用电子,要不时的刷新来保持。SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。(2)SRAM其实是一种非常重要的存储器,它的用途广泛。SRAM的速度非常快,在快速读取和刷新时能够保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。所以SRAM的电路结构非常复杂。(3)从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。
最后要说明的一点:SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。

六 哈佛结构和冯·诺依曼结构

1 哈佛结构

海海海
  程序首先躺在 flash 里面,分为3个段,代码段、数据段,bss段,控制器读取到 CPU 内部通用寄存器,cpu 的机制会在内存中给他们各自分配好内存空间,比如代码段代码执行过程,CPU 对内部 IROM(Internal ROM) 进行直接读取并解析指令后初始化部分 DDR,指令会自动在内存上分配代码段(在内存上分配的还有其他4个段),将 flash 上的代码(如SD卡、nand flash等) cp 到内存的代码段,然后 cpu 读取并执行解析代码,数据 CPU 的运算器会工作,在 DDR 的堆和栈中不断的存取数据,再根据解析下一行或下几行的代码的要求,访问指定地址的空间,去存放等操作。因为要处理数据,放入内存中运行时,会有多出2部分(堆和栈)用来处理数据,DDR和flash也是外设(实际的硬件),他们也需要一段代码去初始化他们的寄存器,使他们能被使用,所以一般会有一段启动代码在IROM,CPU上电就会运行里面的代码,这是硬件设计好的。

2 冯·诺伊曼结构

在这里插入图片描述
  普林斯顿结构(von Neumann architecture),是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实作通用图灵机的计算装置,以及一种相对于平行计算的序列式结构参考模型(referential model)。
  本结构隐约指导了将储存装置与中央处理器分开的概念,因此依本结构设计出的计算机又称储存程式型电脑。

参考链接

Flash,RAM,ROM区别:https://blog.csdn.net/xiao_peng117/article/details/81335925
【DDR3/EMMC】两者的区别和【UFS/eMMC/LPDDR】三者的关系:https://blog.csdn.net/feifei_csdn/article/details/80669913

发布了67 篇原创文章 · 获赞 26 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/essity/article/details/102716061