Amiya · 2021年08月18日

FPGA中的RAM、ROM和CAM;ROM、RAM、DRAM、SRAM、FLASH

目前大多数FPGA都有内嵌的块RAM(Block RAM),可以将其灵活地配置成单端口RAM(DPRAM,Single Port RAM)、双端口RAM(DPRAM,Double Ports RAM)、伪双端口RAM(Pseudo DPRAM)、CAM(Content Addressable Memory)、FIFO等常用存储结构。FPGA中其实并没有专用的ROM硬件资源,实现ROM的思路是对RAM赋予初值,并保持该初值。所谓CAM,即内容地址存储器。CAM这种存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM是一个根据地址读、写数据的存储单元,而CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。CAM的应用也比较广泛,比如在路由器中的地址交换表等。

ROM、RAM、DRAM、SRAM、FLASH.....的区别?

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的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。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。

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

举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。

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

目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”,可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。

SRAM,DRAM,SDRAM区别

SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随机访问”是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。

SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。对称的电路结构使得SRAM的访问速度要快于DRAM。SRAM比DRAM访问速度快的另外一个原因是SRAM可以一次接收所有的地址位,而DRAM则使用行地址和列地址复用的结构。

SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。

从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。

aijishuimage.png

选择存储器需要考虑的设计参数有:包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。

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

关于SRAM有:SRAM(静态),DRAM(动态),SDRAM(同步(Synchronous)DRAM)

SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。“随机访问”是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。  

SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。对称的电路结构使得SRAM的访问速度要快于DRAM。SRAM比DRAM访问速度快的另外一个原因是SRAM可以一次接收所有的地址位,而DRAM则使用行地址和列地址复用的结构。

SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。

从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关

关于两者的应用方面
Static RAM(SRAM),指的是一种具有静止时存取功能,在不需要刷新电路的情况下依然可以保持内部存储数据的存储芯片。

一般来说有两个主要的规格:

  1. 一种是放置于单片机CPU与主存储之间的高速缓存,有两种规格,一种是会固定在电路主板上的高速缓存,另一种是插入电路卡槽的COAST扩充用的高速缓存。
  2. 第二种是内置于CMOS芯片146818的电路中,内部有128字节小容量的SRAM存储芯片,用于存储我们设置的配置数据,也有用于加速单片机CPU内部数据的传递,从80486CPU开始,基本上CPU内部会将SRAM设计进去作为高速缓存,SRAM存储芯片在读取数据上速度比较快,不需要刷新电路,目前在市场上,价格相对其他的DRAM还是高了点,主要用于高要求的行业中的应用,

基本特点

1.速度相对快,不需要刷新电路,可以提高整体工作效率。
2.SRAM集成度低,功耗高,相同的容量的情况下比DRAM等存储芯片体积大。

SRAM存储的应用

1.CPU与主存之间的高速缓存。
2.CPU内部的L1/L2或外部的L2高速缓存。
3.CPU外部扩充用的COAST高速缓存。
4.CMOS 146818芯片。

同步SRAM存储芯片在传统上的应用是搜索引擎,用于对算法的实现,长时间来这也是SRAM存储芯片在网络的主要作用。跟随着新的存储技术的出现,设计者为SRAM存储芯片找到新的应用领域。

现在对路由器跟交换机的要求已经不仅仅限制于FIB搜索,计数器需要对接收服务包的信息包数量进行跟踪,并从中获取统计数据从而解决账单编制问题,并通过统计来不间断监视网络,并完成对问题的检测及判定,并随着每个信息包处理量的递增,就必然采取包缓冲器来提高处理能力,除了上面提及到的以外,随着系统中存储器资源的增加,动态存储分配也是必需的,路由器或者交换机的这些附加功能正在重新定义这网络系统的设计。

具有更多新功能的网络系统

并随着IPv6和VRF的快速普及,对更宽、更深、更快和更高效系统的需求变得更为迫切。系统设计者必须能以最低的成本来满足网络系统的所有度量标准。这时,之前的同步SRAM已经难以满足需求了。所以这些功能需要借助DDR或QDR SRAM等速度更快、带宽更高的SRAM存储芯片来实现。

QDR 与 DDR SRAM

在由瑞萨、赛普拉斯IDT、NEC和三星公司组成的QDR协会的合作下开发出了QDR SRAM存储芯片,目的通过把SRAM存储芯片性能提升为原先的4倍用于满足那些不仅需要标准ZBT或NoBL SRAM的低延迟和满周期利用率,并还需要极大幅度提高工作频率的系统对带宽的要求。QDR SRAM存储芯片具有单独的读和写端口,设计里在每个数据引脚上以双倍数据速率各自独立地工作,因此能在一个时钟周期中传输4个数据字,因此4倍数据速率而得名。设计上采用分离的读/写端口从根本尚消除了SRAM与存储控制器之间对总线争用的冲突,这就是传统的公用I/O器件的问题所在。因此QDRII SRAM被称呼为回波时钟的源同步时钟,它们与数据输出由同一道生成。QDR SRAM采用了HSTL I/O标准,从而实现高速缓存操作。

QDR SRAM主要的应用在于面向那些需要在读和写操作之间进行转换,而DDR SRAM主主要的应用在于面向需要进行数据流式处理,此时,读和写操作之间的近期平衡为百分百的读操作或百分百的写操作。但在这种情况下,有一根QDR SRAM总线在百分之五十的时间里没被使用过。同时其它总线也是可能具有不平衡的近期读/写比例。这是督促人们对DDR公用I/O SRAM存储芯片开发的主要因素,在这种器件中,输入和输出数据端共同使用同一根总线。在从读操作向写操作转换的过程中,需要总线转向周期,并使得可用带宽减少。因此,对于某些系统来说,这必然产生了比QDR架构的平均总线利用率更优,控制信号几乎极少,而且又与QDR器件控制信号有些不同的地方。

SRAM、MRAM、pSRAM、 FLASH芯片、SDRAM(DDR1/DDR2/DDR3)各类存储器之间的区别和联系

储存有“储存资源“ 还有“储存方式”之分。描述语言可用的储存资源有寄存器还有片上内存(ROM RAM),然而变量与数组也是最简单也是最基础的“储存方式”。基于这些 ... 事实上,描述语言可以描述各种各样的“储存方式”。两者有什么区别,具体可见后面章节介绍。

作者:比特波特
原文链接:https://mp.weixin.qq.com/s/Zc5f1WFaSDVRiMfCS3k99Q
微信公众号:
hack电子.jpg
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
20186
内容数
1307
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息