硬件设计---认识存储器篇

    技术2026-01-16  8

    1、概述

    在高速电路设计中,存储器也是必不可少的哦,无论是缓存大量数据还是固化程序或者运行操作系统都需要存储器做硬件支持,一般按照易失性来分类的话,一般存储器总的来说可以分为两类,一类是ROM,属于非易失性存储器,也叫只读存储器,掉电后数据不丢失;一类是随机存储器,属于易失性存储器,一般也叫随机存储器,掉电后数据丢失(除了F-RAM,掉电不丢失,属于非易失性存储器)。随着存储技术的发展市面上有多种成熟存储器类型,各有特色,适合应用在不同的场所,我们先有大致的认识后,选型时才方便pick呀。

    2、非易失性存储器

    顾名思义非易失性存储器即掉电后数据不易丢失,常见有PROM、EPROM、EEPROM、FLASH等,ROM(Read only memory)也叫只读存储器,这是因为刚开始的ROM用户只能读无法写入,存储器的内容在厂商生产时已经确定好了,后来随着技术的进步,ROM可以多次读写,只是名字沿用至今了。

    2.1、PROM

    早期ROM只能读无法写入,数据需要在厂商生产时就确定,这给硬件设计带来许多不便之处,后来一次可编程ROM出现即PROM,相比早期ROM,其可以进行一次编程。PROM出厂时存储器内容为全1(或全0),通过电流熔断熔丝的方式实现将存储单元改写为0(或1)的操作,这样就实现了编程的目的,但缺点时只能改写一次,熔丝熔断是不可逆过程。

    2.2、EPROM

    EPROM时紫外线擦除可编程寄存器,相较PROM其可以进行多次编程,只需要紫外线照射就可以恢复到初始状态,前提是要有透明封装和紫外线光源,并且EPROM正常工作时还不能暴露在光源下,用起来也不是特别方便,所以后来又出现了EEPROM。

    2.3、EEPROM

    EEPROM是电可擦除可编程寄存器,以字节为单位进行数据擦除,相较EPROM,是使用电擦除编程数据,不容易受外界条件干扰,对电路设计和在线调试提供了极大的方便,槽点比较少了,但是一般EEPROM容量通常比较小,一般为几K到几百K容量,使用I2C/SPI总线控制,我们常用其做单板信息存储。

    2.4、FLASH

    FLASH也可以说是加强版EEPROM,体现在读写数据速率上,并且采用块擦除方式,可以将一整块数据一次性擦除,一般我们用其存储大容量底层程序或软件程序,容量一般为几兆到几千兆,常使用SPI/DUAL SPI/QUAD SPI总线控制,常用FLASH分为NAND FLASH和NOR FLASH。

    2.4.1、NAND FLASH

    NAND FLASH地址数据引脚复用,高密度大容量使得其适合上层大容量软件存储,运行时程序需要导入外部SDRAM后执行,擦除和写入速度快,允许存在坏块。在此基础上发展的存储器还有emmc、ssd、sd、tf、u盘等。 ① MMC:即Multi media card多媒体卡,MMC是一种接口协议,支持MMC和SPI两种模式,符合这种接口协议的存储器可称为MMC卡,后续的emmc、tf、sd等都是在此基础上对封装、尺寸、引脚等做了变化演化出的规范。 ② eMMC:Embeded multi media card,内嵌式多媒体存储卡,常用在高速电路设计中,相当于nand flash+ctrl控制器+标准接口,优势就是封装中集成了控制器以便提供标准接口。

    ③ SD:Secure digital memary card:即安全数码卡,在mmc基础上发展而来,强调数据安全,可以设置存储权限,支持SD和SPI两种模式。

    ④ TF:又称micro SD,小尺寸的快闪存储器,支持SD和SPI两种模式,常用在一些便携性设备上,TF卡可以通过适配器转换为SD卡。 ⑤ SSD:固态硬盘,大容量,基于nand flash存储原理,但是主控算法不同使得其读写速度很快。 ⑥ U盘:相当于SD卡+USB接口

    2.4.2、NOR FLASH

    NOR FLASH有独立的地址数据引脚,由于读取数据方便,程序可直接在片内运行,无需导入SDRAM等高速存储器件,适用于引导程序存储,但是读写速度较慢,通常高速电路设计中我们常在FPGA上挂载NOR FLASH作为引导程序存储器。

    2.5、F-RAM

    铁电随机存储器,属于非易失性存储器,其结合了RAM和ROM的优势,相比传统非易失性存储器,具有高速、低功耗、常寿命的特点。

    3、易失性存储器

    易失性存储器即掉电后数据丢失,RAM也叫随机存储器,RAM可以总的分为为两类,静态随机SRAM和动态随机存储器DRAM,SDRAM是在DRAM基础上发展而来的,及同步动态随机存储器,随着技术发展后面又出现了DDR SDRAM,采用双倍数据速率DDR技术即在数据上升沿和下降沿都传输数据,使得数据速率加倍,同时也采用了数据预存取技术,DDR2、DDR3、DDR4主要是预存取位数不同,使得同数据速率情况下内核速率降低,从而降低存储器功耗,数据速率也得到大幅度提升(下文均以美光DDR为例子)。

    3.1、SRAM

    静态随机存储器,具有静止存取功能的内存,无需动态刷新电路就能保存内部数据,SRAM速度非常快,但是集成度低功耗大,所以只在速率要求很高的地方使用,比如CPU的一级缓存、二级缓存。

    3.2、DRAM

    DRAM数据只能保持很短的一段时间,为了保存数据,DRAM采用电容存储,每隔一段时间就需要刷新一次,如果没有被刷新,存储数据就会被丢失。

    3.2.1、SDRAM

    ① SDRAM:同步动态随机存储器,基于DRAM发展而来的,动态是指工作时需要不断刷新电路来保持数据,同步是指memory工作需要同步时钟,随机是指可以自由指定地址进行数据的读写。支持单端时钟,且数据只在时钟上升沿进行判定,时钟频率即为数据传输速率。

    ② DDR SDRAM:即double data rate SDRAM,数据在时钟上升沿和下降沿都要判决数据,这样数据传输速率为时钟频率的两倍,数据预存取为2bit,这使得核心频率等于时钟频率。通常采用2.5V供电,相较SDRAM增加了数据选通功能单端DQS,且数据采用差分时钟CK/CK#,以便提供稳定时钟边沿。

    ③ DDR2 SDRAM:数据预存取为4bit,数据速率为时钟频率两倍,内核频率为时钟频率一半,通常采用1.8V供电,相比较DDR SDRAM增加DQS#差分数据选通,增加ODT功能,即在DQ、DQS引脚上集成片上终结电阻,减少信号反射,得到比较好的信号质量。

    ④ DDR3:数据预存取为8bit,数据速率为时钟频率两倍,内核频率为时钟频率四分之一,通常采用1.5V供电,相比较DDR2 SDRAM增加TDQS信号、ZQ校准。

    ⑤ DDR4:数据预存取为8n bit,数据速率为时钟频率两倍,内核频率为时钟频率4n 分之一,通常采用1.2V供电,相比较DDR3 SDRAM增加DBI信号等,采用bank group技术,提高预存取bit,两个独立group bank可以将预存取bit提高到16bit。

    DDR内核频率、时钟频率、数据速率之间关系:

    ⑥ DDR5::数据预存取为16n bit,数据速率为时钟频率两倍,内核频率为时钟频率8n 分之一,通常采用1.1V供电,采用判决反馈均衡等技术,数据速率高达6400Mbps

    4、存储器主要参数

    主要包括存储容量、读写速率、数据带宽、控制接口等;

    5、存储容量计算

    5.1、micron某flash 存储容量组成:

    容量=1024 x 64KB=16384 x 4KB=262144 x 256 x 8=512Mb

    5.2、DDR存储容量计算

    计算方式一(错误): 64K x 8 x 1K x 8(Row Addressing x Bank Addressing x Column Addressing x x8 Configuration)= 4Gb(512 Megx8)

    计算方式二(正确): 64K x 8 x (1K/8) x 8 x 8(Row Addressing x Bank Addressing x (Column Addressing / 8) x8 Configuration x 8-bit Prefetch)= 4Gb(512 Megx8)

    因为Column Address并没有全部用于地址寻址,而是分出三位用于burst order功能,所以1K/8是实际列地址范围,因DDR3数据预取为8因此还需要x8。

    详细解释可以看这篇BK https://blog.csdn.net/chenzhen1080/article/details/82951277

    Processed: 0.011, SQL: 9