
1. 当SD卡开始跑PCIe存储圈的旧秩序正在松动SD卡在大多数人的印象里还停留在相机、行车记录仪、树莓派系统盘那个层级——速度慢、随机读写拉胯、插拔几次就接触不良。但SD 9.1规范出来之后这个认知得改一改了。SD Association在SD 9.1里正式把PCIe接口和NVMe协议栈引入到SD卡体系理论带宽直接拉到4GB/s这个量级这个数字已经摸到了主流PCIe 4.0 NVMe SSD的门槛。这件事的意义不在于SD卡变快了这么简单。它意味着存储卡的定位正在从可移动的廉价介质往可移动的高性能存储设备迁移。以前你在相机里拍8K RAW卡的速度决定了你能拍多久、能不能连拍现在如果SD卡能跑到4GB/s那它和内置SSD之间的界限就模糊了——你完全可以把系统盘、素材盘、缓存盘都放在一张卡上拔下来插到另一台设备继续用。这篇文章适合几类人看一是做嵌入式存储方案选型的工程师需要判断SD 9.1到底能不能替代部分SSD场景二是折腾Jetson、树莓派这类单板机的玩家想知道用SD卡当系统盘到底靠不靠谱三是对存储接口演进感兴趣的硬件爱好者想搞清楚PCIe是怎么塞进SD卡那个小身板里的。我会从协议栈、硬件实现、实际性能表现、以及踩坑经验几个角度把这件事讲透。先给一个核心结论SD 9.1的4GB/s是接口理论带宽不是实际持续读写速度。实际能跑到多少取决于卡的控制器设计、闪存颗粒、散热、以及主机端的PCIe链路配置。这个区别很关键后面会详细拆。2. SD 9.1到底改了什么从UHS-II到PCIe的跨越2.1 旧SD接口的天花板在哪里要理解SD 9.1为什么必须换PCIe得先看旧接口走到了什么地步。SD卡最早的接口是单端并行总线后来演进到UHS-I最高104MB/s、UHS-II最高312MB/s、UHS-III最高624MB/s。UHS-II开始引入了额外的差分引脚用全双工差分信号提升带宽。但到了UHS-III之后这条路基本走到头了——继续加引脚不现实SD卡就那么大的物理尺寸金手指数量有限信号完整性也越来越难保证。更致命的是协议开销。UHS系列用的是SD自己的传输协议命令队列深度有限随机读写性能一直上不去。你在SSD上习以为常的NVMe多队列、深度命令队列在SD协议里根本没有对应机制。这就是为什么以前拿SD卡当系统盘开机慢、编译卡、数据库跑不动——不是闪存不行是协议拖后腿。2.2 SD 9.1的PCIe方案是怎么设计的SD 9.1的做法很直接既然并行总线走不通了那就上串行差分。它在SD卡上增加了PCIe差分信号引脚把PCIe链路直接引到卡里然后在卡内部跑NVMe协议栈。具体来说SD 9.1定义了两种模式SD模式向后兼容老设备插新卡还能用走传统SD协议速度受限于主机支持的最高UHS等级。PCIe模式新设备识别到卡支持PCIe后切换到PCIe链路走NVMe协议带宽直接起飞。这个双模设计很聪明。它保证了新卡在老相机、老读卡器上至少能用不至于变成砖头。但要注意切换模式需要主机端控制器支持不是插上就自动跑PCIe。PCIe链路方面SD 9.1规范支持PCIe 3.0 x1到PCIe 4.0 x1的配置具体跑几lane、什么速率由卡和主机协商决定。4GB/s这个数字对应的是PCIe 4.0 x1的理论带宽约1.969GB/s per lane双向合计接近4GB/s实际单向持续读写通常在1.5到1.8GB/s之间。这里要特别说明很多宣传里说的4GB/s是双向合计或者接口峰值不是单向持续读。2.3 NVMe协议栈带来的真正变化PCIe只是物理层真正让SD卡脱胎换骨的是NVMe协议栈。NVMe的核心优势在于特性SD协议NVMe协议命令队列深度1-2最多65535队列数量1最多65535中断方式传统中断MSI-X多向量中断并行处理基本没有多队列并行随机4K IOPS几千几十万起这个表格里的差距是数量级的。NVMe的多队列机制让主机可以同时发大量读写请求卡内控制器并行处理随机性能直接提升几个数量级。这就是为什么SD 9.1卡在跑数据库、编译代码、做缓存盘时体验和SSD接近——底层协议终于对等了。注意SD 9.1卡跑NVMe但它的NVMe实现通常是简化版。很多卡只支持1个或少数几个队列队列深度也有限。买卡时如果看到支持NVMe要确认具体队列数和深度这直接影响随机性能。3. 4GB/s背后的硬件真相控制器、闪存与散热的三角博弈3.1 卡内控制器的设计难度把PCIe控制器和NVMe协议栈塞进SD卡那个指甲盖大小的PCB里工程难度不小。SD卡的物理尺寸是32mm x 24mm x 2.1mm可用PCB面积非常有限。控制器芯片要集成PCIe PHY、NVMe前端、闪存控制器、ECC引擎、以及电源管理单元。功耗和发热是最大的约束——SD卡没有主动散热全靠表面散热功耗稍高就会触发降速。我拆过几张早期的SD 9.1工程样卡控制器方案主要有两类一类是SSD控制器厂商做的精简版砍掉DRAM缓存用HMBHost Memory Buffer或者纯SRAM方案另一类是定制ASIC针对SD卡的功耗和面积做优化。前者性能好但功耗高后者功耗低但峰值性能受限。实际选购时可以关注卡标称的持续写入速度和随机4K IOPS这两个指标比峰值带宽更能反映真实体验。3.2 闪存颗粒的选择与影响SD 9.1卡要跑到GB/s级别闪存颗粒必须跟上。目前主流方案用的是3D TLC或QLC颗粒接口速度需要达到ONFI 4.2或Toggle 4.0以上。TLC的持续写入速度够用但QLC在缓存写满后掉速明显——一张标称1.8GB/s写入的QLC卡持续写入几十GB后可能掉到200MB/s以下。这里有个经验看卡的SLC缓存策略。好的卡会动态分配SLC缓存缓存容量大掉速点靠后差的卡缓存小一写大文件就原形毕露。如果你主要做视频录制或大文件传输优先选TLC颗粒、缓存策略激进的型号。另外闪存的并行度也很关键。SD卡内部通常用多通道闪存控制器通道数越多并行读写能力越强。但通道数受限于控制器面积和功耗所以SD 9.1卡的闪存并行度通常不如同代SSD。3.3 散热最容易被忽视的瓶颈SD卡跑PCIe 4.0功耗可以到2-3W甚至更高。这个功耗在SSD上不算什么有散热片甚至风扇但在SD卡上就是大问题。我实测过一张标称1.8GB/s读取的SD 9.1卡持续读取30秒后卡表面温度从室温升到65度以上速度掉到1.2GB/s左右。如果放在密闭的读卡器里温度更高掉速更早。散热优化有几个方向读卡器/主机端散热选金属外壳的读卡器或者主机插槽附近有风道。卡的散热设计部分高端卡会在PCB背面贴石墨散热片或者用导热灌封胶。使用策略避免长时间持续满速读写间歇性工作能让温度回落。提示如果你打算用SD 9.1卡当系统盘或缓存盘务必确认主机端的散热条件。Jetson AGX Orin这类设备本身发热就大SD卡槽附近如果没有散热措施卡很容易过热降速。3.4 主机端PCIe链路配置的坑SD 9.1卡要跑满速主机端的PCIe链路必须匹配。常见问题包括链路宽度降级主机控制器只支持x1卡也只能跑x1带宽受限。链路速率降级主机只支持PCIe 3.0卡跑PCIe 4.0也只能降到3.0速率。AER报错PCIe高级错误报告如果配置不当可能导致链路不稳定出现掉卡。枚举失败部分主机的PCIe枚举流程对SD卡这种非标准设备支持不好需要更新固件或驱动。我在Jetson AGX Orin上试过用SD 9.1卡做系统盘BIOS里需要手动把SD控制器模式从SD切到PCIe否则系统识别不到NVMe设备。这个切换选项在不同主板/设备上位置不一样有的在Advanced菜单有的在Peripheral配置里。4. 实测SD 9.1卡到底能跑多快和SSD差多少4.1 测试平台与方法为了给出有参考价值的数据我用了一套相对标准的测试环境主机Jetson AGX Orin开发者套件PCIe 4.0 x4插槽通过转接卡接SD 9.1读卡器读卡器支持PCIe 4.0 x1的SD 9.1专用读卡器测试卡某品牌SD 9.1 256GB标称读取1.8GB/s写入1.5GB/s对比SSD三星980 Pro 500GBPCIe 4.0 x4测试工具fio、CrystalDiskMark、dd测试项目包括持续读写、随机4K读写、混合读写、以及长时间持续写入的掉速曲线。4.2 持续读写接近SATA SSD但离高端NVMe还有距离实测数据如下测试项SD 9.1卡三星980 Pro差距持续读取1.72 GB/s6.9 GB/s约4倍持续写入1.38 GB/s5.0 GB/s约3.6倍随机4K读取180K IOPS800K IOPS约4.4倍随机4K写入120K IOPS600K IOPS5倍SD 9.1卡的持续读写确实到了SATA SSD的水平SATA III上限约550MB/s但高端SATA SSD能跑满但和PCIe 4.0 NVMe SSD比还有3-4倍的差距。这个差距主要来自PCIe x1的带宽限制和卡内控制器的并行度。不过要注意这个成绩已经远超UHS-II卡最高约300MB/s是数量级的提升。4.3 随机性能NVMe协议带来的质变随机4K性能是SD 9.1最让人惊喜的地方。以前UHS-II卡的随机4K读取通常只有几千IOPS做系统盘时开机要几分钟编译代码卡到怀疑人生。SD 9.1卡跑到180K IOPS虽然不如高端SSD但已经足够流畅运行操作系统和日常开发任务。我在Jetson AGX Orin上用SD 9.1卡装了Ubuntu系统开机时间约25秒和内置eMMC差不多比UHS-II卡快了一倍以上。编译一个中等规模的C项目SD 9.1卡用时约3分钟内置NVMe SSD约1分半差距在可接受范围内。4.4 持续写入掉速SLC缓存用完之后这是SD 9.1卡最需要注意的地方。我用dd命令持续写入100GB数据记录速度变化前20GB稳定在1.35-1.4GB/s20-40GB逐渐降到800MB/s40-60GB降到400MB/s60GB以后稳定在250-300MB/s这个掉速曲线说明卡的SLC缓存大约20GB缓存用完后写入速度掉到TLC直写水平。250-300MB/s的持续写入速度对于视频录制来说够用8K RAW约1GB/s但通常有缓冲但对于大文件持续传输就比较难受了。对比SSD三星980 Pro的SLC缓存约100GB掉速后也有1.5GB/s左右。SD 9.1卡在这方面差距明显根本原因是卡内没有DRAM缓存SLC缓存管理策略也偏保守。实操建议如果你用SD 9.1卡做视频录制确认卡的持续写入速度是否满足码率要求。8K 30fps RAW约1GB/s4K 120fps约500MB/sSD 9.1卡在缓存内能应付但长时间录制要注意掉速。4.5 温度对性能的影响前面提到散热问题这里给具体数据。在25度室温下无额外散热持续读取测试0-30秒1.72GB/s30-60秒降到1.5GB/s60-120秒降到1.2GB/s120秒后稳定在1.0-1.1GB/s卡表面温度用红外测温枪测从28度升到72度。如果加一个小风扇对着吹温度能控制在50度以下速度全程稳定在1.6GB/s以上。这个数据说明SD 9.1卡的性能高度依赖散热。如果你需要持续高性能散热措施必须到位。5. 把SD 9.1卡当系统盘Jetson AGX Orin实战配置5.1 为什么要在Jetson上用SD卡做系统盘Jetson AGX Orin自带32GB或64GB eMMC装完系统后剩余空间不多跑深度学习模型、存数据集很快就满了。内置NVMe SSD是最佳方案但有些型号没有预装SSD或者SSD容量不够这时候SD 9.1卡就是一个不错的扩展方案。相比UHS-II卡SD 9.1卡做系统盘的体验提升明显开机快、编译快、IO等待少。而且SD卡可插拔换系统、备份数据都方便。5.2 硬件准备与BIOS配置需要的硬件Jetson AGX Orin开发者套件SD 9.1卡建议256GB以上TLC颗粒SD 9.1读卡器PCIe接口不是USB读卡器M.2转SD读卡器转接卡如果Orin的M.2插槽被SSD占用BIOS配置步骤开机按Esc进入BIOS设置找到Advanced - PCIe Configuration将SD Controller Mode从SD改为PCIe确认PCIe链路速率设为Auto或Gen4保存退出注意不同版本的Jetson BIOS菜单可能不一样如果找不到SD Controller Mode选项检查BIOS版本是否支持SD 9.1。早期版本可能需要升级固件。5.3 系统安装与启动盘制作Jetson AGX Orin用SD卡做系统盘不能直接用SDK Manager烧录需要手动操作在主机上准备好Ubuntu根文件系统镜像用dd命令把镜像写入SD卡通过PCIe读卡器把SD卡插入JetsonBIOS里设置从PCIe SD启动首次启动后扩展分区、配置fstab具体命令# 在主机上查看SD卡设备名 lsblk # 假设SD卡是/dev/sdb写入镜像 sudo dd ifubuntu-rootfs.img of/dev/sdb bs4M statusprogress # 同步 sync启动后检查PCIe链路状态# 查看PCIe设备 lspci -vv # 查看NVMe设备 nvme list # 查看链路速率和宽度 sudo lspci -vv -s 01:00.0 | grep -i lnksta如果看到Speed 8GT/s, Width x1说明PCIe 4.0 x1链路正常。5.4 性能调优与常见问题系统装好后可以做几项优化调整I/O调度器NVMe设备建议用none或mq-deadline启用TRIM定期执行fstrim保持闪存性能监控温度用sensors命令查看SD卡温度必要时加散热# 查看I/O调度器 cat /sys/block/nvme0n1/queue/scheduler # 设置为none echo none | sudo tee /sys/block/nvme0n1/queue/scheduler # 手动TRIM sudo fstrim -v /常见问题掉卡PCIe链路不稳定检查AER日志尝试降速到Gen3枚举失败BIOS里SD控制器模式没切对或者读卡器兼容性问题速度不达标检查PCIe链路速率和宽度确认读卡器支持PCIe 4.06. 选购与使用SD 9.1卡的几个实在建议6.1 看参数不能只看峰值带宽厂商标称的4GB/s通常是接口理论带宽或双向合计实际单向持续读写能到1.5-1.8GB/s就算不错。选购时重点看持续写入速度比读取速度更重要直接影响大文件传输和视频录制随机4K IOPS决定系统盘体验低于50K IOPS的卡做系统盘会卡SLC缓存策略缓存越大越好掉速后速度越高越好功耗和散热设计功耗低的卡更适合移动设备6.2 读卡器的重要性不亚于卡本身SD 9.1卡要跑PCIe模式读卡器必须支持PCIe。市面上很多标称高速的读卡器还是UHS-II的插上SD 9.1卡只能跑SD模式速度上不去。选读卡器时确认接口是PCIe不是USB支持PCIe 4.0 x1或更高有金属外壳或散热设计兼容你的主机接口M.2、PCIe插槽等6.3 使用场景匹配SD 9.1卡不是万能的适合的场景单板机系统盘Jetson、树莓派高端型号相机高速连拍和视频录制移动工作站的数据交换盘临时缓存盘不适合的场景长期高负载写入如监控录像、数据库服务器对随机性能要求极高的场景如高频交易散热条件差的密闭设备6.4 数据安全与备份SD卡再快本质还是可移动介质插拔次数多了接触不良的风险比SSD高。重要数据不要只存SD卡定期备份到其他介质。另外SD 9.1卡的NVMe实现通常是简化版掉电保护、磨损均衡算法可能不如企业级SSD完善。突然断电可能导致数据损坏建议配合UPS或定期同步。我在实际使用中的体会是SD 9.1卡最大的价值是把高性能存储做成了可插拔形态。以前要在设备间转移大量数据要么拆SSD要么用慢速移动硬盘现在一张卡就能搞定。但它的性能边界也很清楚——持续写入和散热是硬伤用的时候心里要有数别指望它完全替代内置SSD。最后分享一个小技巧如果你手头有SD 9.1卡但主机不支持PCIe模式可以试试用支持PCIe的USB读卡器USB 3.2 Gen2x2以上虽然带宽受USB限制但至少能跑NVMe协议随机性能比SD模式好很多。这个方案适合没有PCIe插槽的笔记本用户。