ECU存储安全之深入理解Flash

目录

陌生的存储器

两种类型的Flash

NAND Flash原理介绍

NOR Flash原理介绍 

NAND与NOR的比较

NAND子类之EMMC


陌生的存储器

传统安全领域的工程师刚开始接触车联网安全的时候,会遇到一些“常识性”的壁垒,其中之一就是各种类型的存储器。当我们和BSP工程师沟通安全启动的时候,我们需要确认启动的过程,接着在此基础上构建安全启动的验签逻辑。而启动的过程,基本上就是CPU从一个存储器的指定地址开始执行,然后将存储在其他存储器上的下一阶段代码搬运到内存中执行。而其中让新入行的安全工程师费解的问题,就是各种类型的存储介质的使用场景。为什么在NOR Flash可以用来存储芯片的初始化代码,为什么嵌入式linux系统的固件一般存储在emmc上,为什么很少使用NAND Flash存储代码等等。

对于传统安全领域的工程师来说,接触存储器的陌生感是可以理解的。因为车联网涉及的范围实际上是十分广泛的,从硬件到软件,再到无线安全,车联网安全涵盖了安全领域的方方面面。而我们很多传统领域的工程师的工作经验基本上都局限在其中的一个方面。因此,车联网安全为我们扩展能力圈提供了很好的机会。

两种类型的Flash

Flash用途与EEPROM相似,但成本远低于EEPROM。EEPROM由浮栅晶体管阵列组成,Falsh则可以看作RAM的反义词(即Flash为非易失性存储介质)。从实现原理来分类,Flash主要有两种:

  • Nor Flash
  • NAND Flash

NAND Flash原理介绍

NAND Flash使用与非门实现(NAND即与非的意思),是与门和非门的叠加。与非门既可以实现由LOW到HIGH的变换,也可以实现由HIGH到LOW的变换,因此可以实现擦除后重写:

ECU存储安全之深入理解Flash_第1张图片

与非门及或非门的物理实现为浮栅晶体管存储单元,Flash则将信息存储在这些存储单元中。在 NAND  Flash中,多个存储单元(通常为 8 个单元)串联连接:

ECU存储安全之深入理解Flash_第2张图片

NAND Flash的物理组成由大到小的结构包括芯片、晶体、平面、块、页五种不同的结构,五种结构的组成逻辑如下图所示:

ECU存储安全之深入理解Flash_第3张图片

NOR Flash原理介绍 

NOR Flash使用或非门实现(NOR即或非的意思),或非门也可以实现LOW\HIGH的双向变换:

ECU存储安全之深入理解Flash_第4张图片

在 NOR Flash的 中,每个存储单元的一端连接到source line,而另一端直接连接到 NOR 门的bit line,这种物理连接使得NOR Flash可以实现随机地址访问:

ECU存储安全之深入理解Flash_第5张图片

而或门只能实现又LOW到HIGH的变换,因此或门多用于实现ROM存储,而与非门和或非门均可用来实现EEPROM:

ECU存储安全之深入理解Flash_第6张图片

NAND与NOR的比较

NOR Flash 提供了足够的地址线来映射整个存储空间,这使得NOR Flash具有随机访问的特性,以及较快的数据读取速率,基于这两点优势,NOR Flash更加适合存储代码,并且能够作为就地执行(XIP)存储器。NOR Flash的另一个优势是在零件的生命周期之内 ,能够100%地保证bit位的正确性。但也正因为提供了如上所述的优势,NOR Flash需要更大的单元尺寸(相同的容量下),需要更高的每比特成本,以及更慢的写入和擦除速度。

NAND Flash相比于NOR Flash来说容量更大,成本更低。但是NAND Flash不提供随机访问的外部地址总线,不能随机访问,因此不能实现XIP。

NAND Flash的另一个主要缺点是存在坏块。 NAND 闪存通常具有 98% 的好位(good bit),因此零件的生命周期内容易出现bit位损坏的现象,需要在设备中实现纠错码 (ECC) 功能。

ECU存储安全之深入理解Flash_第7张图片

在读写速率的表现上,NOR Flash的读速度比NAND Flash快一些,但NAND Flash的写入速度比NOR Flash快很多。在擦除速率的表现上,NAND Flash的擦除速度比NOR Flash的擦除快很多(可能得益于NAND Flash以块为单位进行操作),因此NAND Flash适合于存储大量的数据。

NAND子类之EMMC

NAND Flash有三种常见的形式:

  1. rawNAND Flash,常见于SSD、USB和一些移动设备,使用单独的内存芯片实现驱动、译码以及纠错功能;
  2. oneNAND Flash,常见于一些移动设备和USB驱动,使用单独的芯片实现驱动核译码,单独的芯片实现ECC;
  3. eMMC ,常见于移动设备、USB设备和内存卡等,eMMC 将所有功能集成在同一个芯片,使得eMMC 可以作为块设备使用。

eMMC (Embedded Multi Media Card)是MMC协会订立、主要针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC在封装中集成了一个控制器,提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。——百度百科

eMMC实际上是一个规范存储器的标准,用来统一各家NAND Flash(三星、KingMax、东芝)的使用接口。关于eMMC的原理和实现,我们将在接下来的章节中详细介绍。

你可能感兴趣的:(车联网安全,储存器,安全,物联网,iot,flash)