长江存储第二代3D闪存IO速度达3Gbps创史:明年量产
谈到NAND闪存,或者说以它为代表的SSD产品,多数人对速度的理解集中在像是SATA 3/PCIe 3.0等外部接口上,但其实闪存芯片也有内部接口,LGA/BGA都有引脚,所以就有引脚带宽,即I/O接口速度的概念,一定程度上可理解为内频。
今晨结束的Flash Memory Summit(闪存技术峰会)的首日Keynote上,长江存储(Yangtze Memory Technology,YMTC)压轴出场,介绍了新的3D NAND架构Xtacking。
长江存储称,数据产生的能力和贮存能力的增长是严重不对等的,2020年左右将产生47ZB(泽字节,470万亿亿比特),2025会是162ZB 。虽然多数数据可能是垃圾,但存储公司没有选择性,其唯一目标就是尽可能多地保存下来。
长江存储将NAND闪存的三大挑战划归为I/O接口速度、容量密度和上市时机 ,此次的Xtacking首要是提高I/O接口速度,且顺带保证了3D NAND多层堆叠可达到更高容量以及减少上市周期。
当前,NAND闪存主要沿用两种I/O接口标准,分别是Intel/索尼/SK海力士/群联/西数/美光主推的ONFi,去年12月发布的最新ONFi 4.1规范中,I/O接口速度最大1200MT/s(1.2Gbps)。
第二种标准是三星/东芝主推的Toggle DDR,I/O速度最高1.4Gbps。不过,大多数NAND供应商仅能供应1.0 Gbps或更低的I/O速度。
此次,Xtacking将I/O接口的速度提升到了3Gbps,实现与DRAM DDR4的I/O速度相当。
那么长江存储是如何实现的呢?
据长江存储CEO杨士宁博士介绍,Xtacking,可在一片晶圆上独立加工负责数据I/O及记忆单元操作的外围电路。存储单元同样也将在另一片晶圆上被独立加工。当两片晶圆各自完工后,Xtacking技术只需一个处理步骤就可通过数百万根金属VIA(Vertical Interconnect Accesses,垂直互联通道)将二者键合接通电路,而且只增加了有限的成本。
官方称,传统3D NAND架构中,外围电路约占芯片面积的20~30%,降低了芯片的存储密度。随着3D NAND技术堆叠到128层甚至更高,外围电路可能会占到芯片整体面积的50%以上。Xtacking技术将外围电路置于存储单元之上,从而实现比传统3D NAND更高的存储密度(长江的64层密度仅比竞品96层低10~20%)。
在NAND获取到更高的I/O接口速度及更多的操作功能的同时,产品开发时间可缩短三个月,生产周期可缩短20%,从而大幅缩短3D NAND产品的上市时间。
应用
长江存储称,已成功将Xtacking技术应用于其第二代3D NAND产品的开发。该产品预计于2019年进入量产,现场给出的最高工艺节点是14nm。
SD NAND 的 SDIO在STM32上的应用详解(上篇)
目录
上篇:
一.SDIO简介
二.SD卡简介/内部结构
1.SD卡/SD NAND引脚
2.SD卡寄存器
3.FLASH存储器
三.SDIO总线拓扑
中篇:
四.SDIO功能框图(重点)
1.SDIO适配器
2.控制单元
3.命令通道(重点)
4.数据通道
五.命令与响应
1.命令格式
2.命令类型
3.命令描述
4.响应类型
六.SD卡/SD NAND功能描述(重重点)
1.操作条件确认
2.卡识别模式
3.数据传输模式
下篇:
七.SDIO外设结构体
1.SDIO初始化结构体
2.SDIO命令初始化结构体
3.SDIO数据初始化结构体
八.SD卡读写测试实验
1.硬件设计
2.代码讲解
3.实验结果
一.SDIO简介
SDIO (Secure Digital Input and Output)全称安全数字输入/输出接口,在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和CE-ATA设备间提供了操作接口。
多媒体卡(MMC)
MMC(MultiMedia Card)卡由西门子公司和首推CF的SanDisk于1997年推出多媒体卡(MMC)是一种小型(24x32或18x1.4mm)可擦除固态存储卡,其全称为Multi-Media Card,特别应用于移动电话和数字影像及其他移动终端中。
SD卡:(Secure Digital Memory Card)
SD卡是一种基于半导体快闪记忆器的新一代记忆设备。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。SD卡数据传送和物理规范由MMC发展而来,大小和MMC差不多,但是容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。**
应用:SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。
SD I/O 卡
本身不是用于存储的卡,它是指利用 SDIO 传输协议的一种外设。比如 Wi-Fi Card,它主要是提供 Wi-Fi 功能,有些 Wi-Fi 模块是使用串口或者 SPI 接口进行通信的,但 Wi-Fi SDIO Card 是使用 SDIO 接口进行通信的,一般设计 SD I/O 卡是可以插入到 SD 的插槽
CE-ATA设备
CE-ATA 一种基于为了节省接口IO数量,专为轻薄 笔记本硬盘 设计的笔记本硬盘高速通讯接口。 一种使用MMC接口界面,ATA指令集的笔记本电脑 硬盘接口
结论:MMC卡是SD卡的前身,也就是说SD将取代MMC卡的地位,MMC卡也用的越来越少,所以我们后面只讲SD卡.
SDIO的主要功能:(关于不是SD卡的就不介绍了)1.与SD存储卡规格版本2.0全兼容(向前兼容)2.数据和命令输出使能信号,用于控制外部双向驱动器。
SDIO外设挂载在STM32的AHB总线。
这样一来,STM32(主机),就可以通过AHB总线,控制SDIO外设的寄存器进而控制SDIO外设读/写SD卡,SDIO外设向SD卡传输数据,或者向SD卡接收数据可以使用DMA进行传输(这样可以省去很多繁琐的步骤后面再讲)
当前版本的SDIO在同一时间里只能支持一个SD卡(这是ST公司限制的)
二.SD卡简介/内部结构
SD卡是一种基于半导体快闪记忆器的新一代记忆设备。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。SD卡数据传送和物理规范由MMC发展而来,大小和MMC差不多,但是容纳更大容量的存贮单元。SD卡与MMC卡保持着向上兼容,也就是说,MMC可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。**
应用:SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,所以有着广泛的应用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。因此不少数码相机也开始支持SD卡。
SD卡采用的是采用了NandFlash存储器,稍后解释NandFlash与NorFlash的区别。
1.卡容量
标准容量 SD 卡,支持最大 2GB 的容量。所有的物理规格文档都会定义这种。
高容量 SD 卡(SDHC),支持超过 2GB 的容量。本文档解释的规格最大为 32GB 容量。只有 SDIO支持 2.0 协议才能够识别这种高容量 SD 卡(而SDIO外设正好最高支持到2.0协议)。
STM32F10x 系列控制器只支持 SD 卡规范版本 2.0,即只支持标准容量 SD 和高容量SDHC 标准卡,不支持超大容量 (大于32GB)SDXC 标准卡,所以STM32可以支持的最高卡容量是 32GB。
2.速度等级我们定义了 4 个速度等级,来表示卡的最小速率:(实际上目前最高 Class10)● Class 0 – 这种卡不定义具体性能,代表了这个规范出来之前的所有卡● Class 2 – 最小 2MB/s 的性能● Class 4 – 最小 4MB/s 的性能● Class 6 – 最小 6MB/s 的性能● Class 8 – 最小 8MB/s 的性能● Class 10 – 最小 10MB/s 的性
SD卡的内部构造:
电源检测单元保证 SD 卡工作在合适的电压下,如出现掉电或上状态时,它会使控制单元和存储单元接口复位;
1.SD卡/SD NAND引脚
1)SD卡引脚
SD 卡使用 9-pin 接口通信,其中 3 根电源线、1 根时钟线、1 根命令线和 4 根数据线,具体说明如下:
CLK:时钟线,由 SDIO 主机产生,即由 STM32 控制器输出,最高 25MB/s 的接口速度(使用4条并行数据线);
CMD:命令控制线,SDIO 主机通过该线发送命令控制 SD 卡,如果命令要求 SD 卡提供应答(响应),SD 卡也是通过该线传输应答信息(即命令响应都是通过CMD命令控制线来串行传输的);
D0-3:数据线,传输读写数据;SD 卡可将 D0 拉低表示忙状态; VDD、VSS1、VSS2:电源和地信号。
2.SD卡寄存器
卡控制单元控制 SD 卡的运行状态,它包括有 8 个寄存器,接口驱动器控制 SD 卡引脚的输入输出
SD 卡总共有 8 个寄存器,用于设定或表示 SD 卡信息,这些寄存器只能通过对应的命令访问(STM32主机通过驱动SDIO外设通过CMD命令线向从机SD卡发送命令),SDIO 定义了 64 个命令,每个命令都有特殊意义,可以实现某一特定功能,SD 卡接收到命令后,根据命令要求对 SD 卡内部寄存器进行修改,程序控制中只需要发送组合命令就可以实现 SD 卡的控制以及读写操作。
1.CID 寄存器(重点了解)卡识别(CID)寄存器是一个 128 位的寄存器。包含了卡的识别信息,用于卡识别解析(具有唯一性)。每个读/写卡都有一个特殊的识别号。CID 寄存器的结构如下:
2.RCA 寄存器(重点了解)可写的 16 位SD卡相对地址寄存器,在SD卡的初始化期间,由SD卡向外发布的卡地址。这个地址用于卡初始化进程之后,主机同卡之间的交互寻址。(在主机向SD卡读写数据时,就是发送CMD7选择/取消选择 RCA 地址卡,就是靠RCA来确定主机与哪张卡通信)为啥不用上面的CID呢 ?答:因为它太长了128位呢,仅此而已
3.CSD 寄存器(2.0)CSD V2.0 只适用于高容量
4.SCR 寄存器作为 CSD 寄存器的补充,另一个配置寄存器称为 SD 卡配置寄存器(SCR)。SCR 提供了 SD 卡的特殊功能的信息。SCR 是一个 64bit 的寄存器,这个寄存器应该由 SD 厂家设置。
5.OCR 寄存器(重点了解)
32 位的操作条件寄存器(OCR)存储了卡的 VDD 电压描述。另外,还包括了状态信息位。如果卡的上电程序完成,一个状态位会被设置。寄存器还包括另一个状态位,在设置上电状态位后,用来表明卡的容量状态。
Bit31 – 卡上电状态位(busy),这个状态位在卡的上电流程完成后设置。Bit30 – 卡容量状态位(CCS),如果是高容量卡,设置为 1,如果是标准卡,设置为 0。
卡容量状态位只有在上电流程完成,且 Bit31 设置为 1 之后才有效。主机可以读取这个状态位来判断卡的种类
上面这些寄存器的只要了解即可,后面用的不多,等后面用到再讲这样就能有个更深刻的认识。
3.FLASH存储器
1)FLASH简介FLSAH 存储器又称闪存,它与 EEPROM 都是掉电后数据不丢失的存储器,但 FLASH存储器容量普遍大于 EEPROM,现在基本取代了它的地位。我们生活中常用的 U 盘、SD卡、SSD 固态硬盘以及我们STM32 芯片内部用于存储程序的设备,都是 FLASH 类型的存储器。在存储控制上,最主要的区别是 FLASH 芯片只能一大片一大片地擦写,而在“I2C章节”中我们了解到 EEPROM 可以单个字节擦写。
2)NOR FLASH 和 NAND FLASH的区别FLASH 存储器又分为 NOR FLASH 和 NAND FLASH
NOR 与 NAND 的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇区/块”为单位的。
而 NOR 与 NAND 特性的差别,主要是由于其内部“地址/数据线”是否分开导致的。由于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,而由于 NAND 的数据和地址线共用,只能按“块”来读写数据,所以不符合CPU指令译码要求。
所以NOR FLASH 一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。
而 NAND FLASH 一般应用在大数据量存储的场合,包括 SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。
总结一句话:NOR FLASH贵而精,NAND FLASH大而便宜
所以我们的SD卡用 NAND FLASH 作为存储单元
存储单元是存储数据部件,存储单元通过存储单元接口与卡控制单元进行数据传输
三.SDIO总线拓扑
总线上的通信是通过传送命令和数据实现。在SD卡总线上的基本操作是命令/响应结构(主机发送命令给SD卡,SD卡是否进行响应,主机发生命令和SD卡响应都是通过命令线(CMD)传输的(有一个响应例外等下说)),这样的总线操作在命令或总线机制下实现信息交换。
在SD/SDIO存储器卡上传送的数据是以数据块的形式传输;在MMC上传送的数据是以数据块或数据流的形式传输;
SD 卡总线有一个主机,多个SD卡,时钟线(CLK),电源(VDD)和地信号(VSS)是所以卡共用。命令线(CMD)和数据线(DAT0-3)信号是根据每张卡的。
理论上主机可以与多张卡进行数据交互,虽然可以共用总线,但不推荐多卡槽共用总线信号,要求一个单独 SD 总线应该连接一个单独的 SD 卡。即STM32只能接一张SD卡
SDIO 不管是从主机控制器向 SD 卡传输,还是 SD 卡向主机控制器传输都只以 CLK 时钟线的上升沿为有效。SD 卡操作过程会使用两种不同频率的时钟同步数据:识别卡阶段:时钟频率 FOD,最高为 400kHz数据传输模式:时钟频率FPP,默认最高为 25MHz如果通过相关寄存器配置使 SDIO 工作在高速模式,此时数据传输模式最高频率为 50MHz
为什么卡识别阶段的频率低?卡识别的时候为了兼容识别不同版本的SD卡
SD 总线通信是基于命令和数据传输的。通讯由一个起始位(“0”),由一个停止位(“1”)终止,SD 通信一般是主机发送一个命令(Command),从设备在接收到命令后作出响应(Response),如有需要会有数据(Data)传输参与。
SD 数据是以块形式传输的,SDHC 卡数据块长度一般为 512 字节,数据可以从主机到卡,也可以是从卡到主机。数据块需要 CRC 位来校验数据。CRC 位由 SD卡系统硬件生成。STM32 控制器可以控制使用单线或 4 线传输(D0-D3)。
SD 数据传输支持单块和多块读写,它们分别对应不同的操作命令,多块写入还需要使用命令来停止整个写入操作。数据写入前需要检测 SD 卡忙状态,因为 SD 卡在接收到数据后存储到存储区(NandFlash)过程需要一定操作时间。SD 卡忙状态通过把 D0 线拉低表示。
数据传输:
使用 4 数据线(D0~D3)传输时,每次传输 4bit 数据,每根数据线都必须有起始位、终止位以及CRC 位,CRC 位每根数据线都要分别检查,并把检查结果汇总然后在数据传输完后通过D0 线反馈给主机。SD 卡有两种数据包格式。
1.常规数据(8bit 宽):常规数据发送是先低字节,再高字节的顺序,但是每个字节则是先高位后低位
数据位在四线顺序排列发送,DAT3 数据线发较高位,DAT0 数据线发较低位。
2.宽位数据(SD 存储寄存器):宽位数据从高位开始传输。
对 SD 卡而言宽位数据包发送方式是针对 SD 卡 SSR(SD 状态)寄存器内容发送的,SSR 寄存器总共有 512bit,在主机发出ACMD13 命令后(当然在发送ACMD13 之前需要发送CMD55 ) SD 卡将 SSR 寄存器内容通过数据线发送给主机。
【本文转载自CSDN,作者:rivencode】
全文目录内容分为三篇【上/中/下】原文链接跳转如下:
SD NAND 的 SDIO在STM32上的应用详解(上篇): http://www.longsto.com/news/58.html
SD NAND 的 SDIO在STM32上的应用详解(中篇): http://www.longsto.com/news/59.html
SD NAND 的 SDIO在STM32上的应用详解(下篇): http://www.longsto.com/news/60.html
相关问答
从形状怎么区分emmc和 nand ?一般emmc比nand尺寸要小,另外可以从芯片上的型号或者从形状的端子类型去区分,一般emmc的端子类型是BGA全局引脚,而nand的端子类型是LGA下沉引脚或者GBGA伴送引...
用51单片机对nandflash进行读写以实现大容量存储要注意什么?实没啥需要特别注意的。要说的话对于初学者需要注意电源别弄错了;如果电源域不同,则需要确认管脚电气参数是否匹配,必要时添加接口转换芯片;剩下的就是按照...
在线的老铁帮个忙呗!!性价比高STM公司,STM排名怎么样大家...[回答]STM32F103里面挑,你去www.stmcu.org看资料,淘宝看价格M3内核降低了系统存储要求,同时快速的中断处理能够满足控制领域的高实时性要求,使基于该内核...
10元买的16G的U盘会好用吗?奇客敢100%确定的是:不好用。先来算一下U盘成本:USB2.0主控板:0.6元/片(最廉价产品,安国芯邦低端主控芯片)闪存颗粒:16g/4.5元(一般是有坏块的打磨片,...所以...
嵌入式Flash读写操作该如何进行设计?Flash存储芯片的通讯方式以SPI居多,在实现flash读写时就是要实现SPI的通讯协议,与EEPROM不同的是,SPI在操作时是按照PAGE页进行整页擦除写入的,这一点需要注...
诸位前辈!给推荐推荐,矿用小型挖掘机可进电梯,小型挖掘机...[回答]企业主要产品:目前企业的主要产品以服务于农民的微型挖掘机为主,适合家用,农场用,果园用。同时还适合小型工程,园林绿化等。公司主要技术负责人从事...
硬盘上怎么辨别sata还是sas-ZOL问答机械硬盘和固态硬盘指的是其读写的原理,机械硬盘是主控控制机械臂,在旋转的磁性盘片上面读写,ssd是主控向nandflash进行读写操作;sas和sata,这是接口;包含关系...
flash烧录和ic烧录?,IC烧录原理如何选??[回答]一、定义上的区别1、Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。2、NORF...
帮个忙同志们,我想知道:揭阳质量好的CC2642模块,CC2642模...[回答]接下来实现利用CC2642控制板上的SPI接口NANDFlash和EEPROM。涉及到了所有CC2642的资源。ccs例程中的SPI接口来调试FLASH。使能DMA实现和更底层的通...
升级固态问题,是换一个nvme的固态还是加块sata的固态?很高兴回答你的问题,如果你只想知道是否满足NVME固态盘的升级条件,可以直接跳过知识点看最下方,那里有完整的验证方法。如果你想知道固态盘选型知识,避免在...