前言
本文对SD/SDIO/EMMC做简单介绍,目标是对其有初步的了解和认识。
SD/SDIO传输模式
SD传输模式有以下3种:
SPI mode(required)
1-bit mode
4-bit mode
SDIO同样也支持以上3种传输模式。依据SD标准,所有的SD(记忆卡)与SDIO(外围)都必须支持SPI mode,因此SPI mode是「required」。此外,早期的MMC卡(使用SPI传输)也能接到SD插糟(SD slot),并且使用SPI mode或1-bit mode来读取。SD的MMC Mode
发展过程
SDIO
SD
EMMC
扇区(block)是驱动可以操作的最小单位,是磁盘级别的。一个磁盘扇区(sector)512个字节(现在有4K的了),扇区(sector)是磁盘的最小存储单位,
块(block)是文件系统层的,mkfs时可以设置块的大小.磁盘块(block)应该是类似FAT的簇大小的概念,是操作系统中分配磁盘容量的最小单位. 块(block)是数据存储的最小单位!
我的理解,512字节和520字节(针对EMC)所指的不是block,而是硬盘扇区的大小。在EMC存储中,每个硬盘在出厂前就被格式化成每扇区520 字节(其中512字节可存放数据,另外8字节是存储FLARE的元数据。其他存储设备的硬盘一般默认都是每扇区512字节的。
至于block的大小,在一般情况下,我觉得应该等同于strip大小。只有在创建了RAID之后才会有block的概念。stripe 和 strip之间的区别的确容易混淆,我是这么理解的,一个RAID中所有磁盘的strip合起来就是stripe。
在创建RAID的时候,会让你选择Stripe size 以及Block size,
- CRC Status Token
在写数据传输中,eMMC Device 接收到 Host 发送的一个 Data Block 后,会进行 CRC 校验。
如果校验成功,eMMC 会在对应的 Data Line 上向 Host 发回一个 Positive CRC status token (010)。
如果校验失败,则会在对应的 Data Line 上发送一个 Negative CRC status token (101)。
读数据时,Host 接收到 eMMC Device 发送的 Data Block 后,也会进行 CRC 校验,但是不管校验成功或者失败,都不会向 eMMC Device 发送 CRC Status Token。
Positive CRC status token
Negative CRC status token