在嵌入式系统的存储硬件设计中,一般采用三种存储器接口即NO RFlash存储器、Nand Flash存储器和SDRAM存储器。
- NORFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NORFlash的特点是芯片内执行(XIP,eXecuteInPlace),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。如uboot中的只读断可以直接在NORFlash上运行。
- NANDFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制地址和数据。由于时序较为复杂,所以一般CPU最好集成NAND控制器。另外由于NANDFlash没有挂接在地址总线上,所以如果想用NANDFlash作为系统的启动盘,就需要CPU具备特殊功能,如S3C2410在被选择为NANDFlash启动方式时会在上电时自动读取NANDFlash的4kb数据到地址0的SRAM中。如果CPU不具备这种特殊功能,用户不能直接运行NANDFlash上的代码,那可以采取其它方式,比如好多使用NANDFlash的开发板除了使用NANDFlash以外,还用一块小的NORFlash来运行启动代码。任何Flash器件的写入操作都只能在空或已擦出的单元内进行。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前要将目标块内所有的位都写为1。
- SDRAM是一个同步接口的动态随机存储存取内存(DRAM)。通常DRAM是一个有异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。相对于NOR Flash和Nand Flash,SDRAM的访问读写速度要快得多。