1、1SoC存储子系统存储子系统2目录目录 1、存储子系统简介、存储子系统简介 2、常用的存储器 3、外部存储器控制器EMI 4、SD/MMC控制器 5、存储子系统性能优化3 核心是解决容量、速度、价格间的矛盾,建立起多层存储结构。一个金字塔结构的多层存储体系 充分体现出容量和速度关系 Cache主存层次:解决CPU与主存的速度上的差距;主存辅存层次:解决存储的大容量要求和低成本之间的矛盾。多层存储结构概念多层存储结构概念4SoC中存储系统层次性结构中存储系统层次性结构芯片级芯片级板级板级嵌入式处理器核(寄存器)嵌入式处理器核(寄存器)紧密耦合存储紧密耦合存储器器TCMTCM片上片上SRAMSRA
2、M片外片外SDRAMSDRAM、SRAMSRAMFLASHFLASH及其他非易失存及其他非易失存储器储器CacheCache每每bitbit价格降低价格降低容量增大容量增大存取时间增大存取时间增大访问频度降低访问频度降低存取能耗增大存取能耗增大5目录目录 1、存储子系统简介 2、常用的存储器、常用的存储器 3、外部存储器控制器EMI 4、SD/MMC控制器 5、存储子系统性能优化6随机存取存储器RAM a.静态RAM 同步SRAM 在统一时钟的控制下同步操作,一般支持突发操作 FIFO 先进先出 Multi-SRAM 具有多数据端口 非挥发 SRAM(NV SRAM)静态加后备电源 类SRAM
3、 用动态RAM,内部加刷新电路 b.动态RAM SDRAM DDR II SDRAM DDRIII SDRAM只读存储器ROMa.掩膜式ROM b.可编程的PROM c.可用紫外线擦除、可编程的EPROM d.可用电擦除、可编程的E2PROM等 e.在线编程擦除的FLASH半导体存储器的分类半导体存储器的分类7 按构成存储器的器件和存储介质分类 半导体存储器 磁盘和磁带等磁表面存储器 光电存储器 按存取方式分类 随机存储器RAM(Random Access Memory)只读存储器ROM(Read-Only Memory)串行访问存储器(Serial Access Storage)按在计算机中
4、的作用分类 主存储器(内存)辅助存储器(外存)高速缓冲存储器 存储器的分类存储器的分类8RAMSRAM面积大速度快DRAM需要隔一定的周期进行刷新面积小(13个晶体管)速度慢SDRAM Synchronous Dynamic Random Access Memory(同步动态随机存储器)数据的读写需要时钟来同步DDR SDRAM Double Data Rate Synchronous Dynamic Random Access Memory(双数据率同步动态随机存储器)允许在时钟脉冲的上升沿和下降沿传输数据,这样不需要提高时钟的频率就能加倍提高SDRAM的速度 9FLASH NOR FLAS
5、H 容量小 价格贵 可以按位读写 NAND FLASH 容量大 价格便宜 不能按位读写,需要按block进行读写10NOR FLASHNOR技术(亦称为Linear技术)闪速存储器是最早出现的Flash Memory,目前仍是多数供应商支持的技术架构。它源于传统的EPROM器件在擦除和编程操作较少而直接执行代码的场合,尤其是纯代码存储的应用中广泛使用,如PC的BIOS固件、移动电话、硬盘驱动器的控制存储器等。NOR技术Flash Memory具有以下特点:程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行,而无需先将代码下载至RA
6、M中再执行;可以单字节或单字编程,但不能单字节擦除,必须以块为单位或对整片执行擦除操作,在对存储器进行重新编程之前需要对块或整片进行预编程和擦除操作。由于NOR技术Flash Memory的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。11NAND FLASH技术技术NAND技术 Flash Memory具有以下特点:以页为单位进行读和编程操作,1页为256或512B(字节);以块为单位进行擦除操作,1块为4K、8K或16KB。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。
7、数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,将很快突破每兆字节1美元的价格限制。芯片包含有失效块,其数目最大可达到335块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。Samsung公司在2019年底开发出世界上第一颗1Gb NAND技术闪速存储器基于NAND的存储器可以取代硬盘或其他块设备。12NOR 与与 NAND FLASH的比较的比较NORNAND性能比较读取速度稍快擦除和写入速度远远大于NOR flash擦除Nor器件时是以64128KB的块
8、进行的,执行一个写入/擦除操作的时间为15s;擦除Nand器件是以832KB的块进行的,执行相同的操作最多只需要4ms。接口差别Nor Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内容的每一字节。用作程序存储器Nand器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。Nand的读和写操作采用固定大小的块,这一点有点像硬盘管理此类操作。容量和成本小,116MB,成本高,存储代码非常大,Nand Flash的单元尺寸几乎是Nor器件的一半。由于生产过程更为简单,Nand结构可以在给定的尺寸内提供更高的容量。16MB512B以上,存储数据可靠性和耐用
9、性可擦写10万次可擦写100万次存在位反转和坏区的问题,需要进行EDC/ECC算法校验和坏区标识管理易用性可以非常直接地使用基于Nor的闪存,像SRAM存储器那样连接,并可以在上面直接运行代码。由于需要I/O接口,Nand要复杂得多。各种Nand器件的存取方法因厂家而异。在使用Nand器件时,必须先写入驱动程序,才能继续执行其它操作。13SEP3203的片外存储器的片外存储器14Flash存储器接口存储器接口 Flash设计实例 Nor Flash Nand Flash15主存储器的主要技术指标主存储器的主要技术指标存储容量 存储器可以容纳的二进制信息量称为存储容量(寻址空间,由CPU的地址线
10、决定)实际存储容量:在计算机系统中具体配置了多少内存。存取速度:存取时间是指从启动一次存储器操作到完成该操作所经历的时间,又称为读写周期。可靠性:可靠性是用平均故障间隔时间来衡量(MTBF,Mean Time Between Failures)功耗:通常是指每个存储元消耗功率的大小 166管管SRAMWLBLVDDM5M6M4M1M2M3BLQQP485178x8SRAM阵列阵列18单管单管DRAMM1CSWLBLCBLVDD2VTWLXsensingBLGNDWrite 1Read 1VDDVDD/2VDD/2 Write:Cs is charged or discharged by ass
11、erting WL and BL.Read:Charge redistribution takes places between bit line and storage capacitanceVoltage swing is small;typically around 250 mV.19ROMWLBLWLBL1WLBLWLBLWLBL0VDDWLBLGND二极管二极管ROMMOS ROM 1MOS ROM 220读写时序读写时序Write c y c l eRead ac c e s sRead ac c e s sRead cy c l eWrite a c c e s sData wr
12、 i t t e nData va l i dDATAWRITEREAD读出时间:从存储器中读出数据所需要的时间,等于从提出读请求到数据在输出端上有效读出时间:从存储器中读出数据所需要的时间,等于从提出读请求到数据在输出端上有效之间的延时。之间的延时。写入时间:从提出写请求到最终把输入数据写入存储器之间所经过的时间。写入时间:从提出写请求到最终把输入数据写入存储器之间所经过的时间。读读/写周期时间:在前后两次读或写操作之间所要求的最小时间间隔。这一时间通常大于存写周期时间:在前后两次读或写操作之间所要求的最小时间间隔。这一时间通常大于存取时间。取时间。21DRAM和和SRAM时序比较时序比较A
13、ddressbusRASRAS-CAS timingRow Add r e s sAddressBusAddress t r a nsi tioninitiat e s m e mo ry op erationAddressColumn A d d r essCASDRAM TimingSRAM Timing地址变化启动存储器操作地址变化启动存储器操作22SRAM接口时序(接口时序(SRAM,FLASH)SRAM和和Nor Flash的读时序的读时序tCS_WAIT:地址有效后片选保持为高电平(无效)的时间tCS_HOLD:片选从低电平变为高电平之后保持高电平的时间tOE_WAIT:片选有效后
14、OE保持高电平所需要的时间tOE_HOLD:OE信号从低电平到高电平后保持高电平所需要的时间tOE_EN:OE信号保持低电平(有效)需要的时间SRAM和和Nor Flash的写时序的写时序tCS_WAIT:地址有效后片选保持为高电平(无效)的时间tCS_HOLD:片选从低电平变为高电平之后保持高电平的时间tWE_WAIT:片选有效后WE保持高电平需要的时间tWE_HOLD:WE信号从低电平到高电平后保持高电平所需要的时间tWE_EN:WE信号保持低电平(有效)需要的时间SDRAM芯片内部组织结构芯片内部组织结构芯片内部分为四个Bank每个Bank又分为4096页每页包含256个单元,每个单元为
15、16位即4Banks4096行256单元16Bits每个Bank为2M字节,整个芯片为8M字节。因为每个单元是16位,所以需要两个芯片才能构成32位系统。SDRAM是多bank结构,其中一个bank在进行预充电期间,另一个bank马上可以被读取,这样当进行一次读取后,又马上去读取已经预充电bank的数据时,就无需等待,而是可以直接读取了。这就大大提高了存储器的访问速度。为了实现这个功能,SDRAM需要增加对多个bank的管理,实现控制其中的bank进行预充电。在一个具有两个以上bank的SDRAM中,一般会有实现bank选择的引脚,用来实现在多个bank之间的选择。对SDRAM数据读取要在敏感
16、放大器中进行,将要读取的页(Page)内容存放在敏感放大器的过程称为激活(Active)。每个Bank只有一个敏感放大器,也就是只能有一页数据处于被激活状态。对其他页数据读取时,需要进页预充电(Precharge),将敏感放大器的内容写回到SDRAM的存储体中,再激活(Active)需要读取的页数据。因此,SDRAM芯片进页访问时,必须根据当前操作地址对应Bank的状态来发出不同的命令。SDRAM的这种页组织特性使得访问不同页的存储单元时,由于需要进页预充电(Precharge)和激活(Activation)的换页操作,造成了存储单元访问时间不同,这个过程带来的延时可能是读取时间的几倍至几十倍
17、。CONTROLLOGICROW DECODERCOLUMN DECODERCELL ARRAYBANK#0SENSE AMPLIFIERROW DECODERCOLUMN DECODERCELL ARRAYBANK#1SENSE AMPLIFIERROW DECODERCOLUMN DECODERCELL ARRAYBANK#2SENSE AMPLIFIERROW DECODERCOLUMN DECODERCELL ARRAYBANK#3SENSE AMPLIFIERSDRAM典型参数典型参数结构参数Bank数目4每个Bank中行数目1024每个行中列数目256单元大小16位总大小8M字节时
18、序参数Bank预充电延迟(Precharge)2个时钟周期行激活延迟(Active)4个时钟周期CAS延迟2个时钟周期行刷新参数每次刷新的行的数目1行每两次刷新的间隔390个时钟周期刷新一个行的延迟8个时钟周期每次退出刷新状态的延迟1个时钟周期27SDRAM 存储器引脚信号及接口时序存储器引脚信号及接口时序SDRAM是随机存储器中价格最低的一种,在大多数计算机系统中用做主存储器;数据以电荷形式储存在电容上,并会在几ms内泄漏掉。为了长期保存,SDRAM必须定期刷新;但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器;工作时序比较复杂 A0A10:地址输入引脚,当ACTI
19、VE命令和READ/WRITE命令时,来决定使用某个bank内的某个基本存储单元。CLK:时钟信号输入引脚CKE:Clock Enable,高电平时有效。当这个引脚处于低电平期间,提供给所有bank预充电和刷新的操作/CS:芯片选择(Chip Select,这个引脚就是用于选择进行存取操作的芯片/RAS:行地址选择(Row Address Select)/CAS:列地址选择(Column Address Select)/WE:写入信号(Write Enable)DQ0DQ15:数据输入输出接口BA:Bank地址输入信号引脚,BA信号决定了激活哪一个bank、进行读写或者预充电操作。28DDR
20、SDRAM DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升沿进行数据传输;而DDR内存则是一个时钟周期内传输两次数据,它能够在时钟的上升沿和下降沿各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。DDR SDRAM内存的频率可以用工
21、作频率和等效频率两种方式表示,工作频率是内存实际的工作频率,但是由于DDR SDRAM内存可以在脉冲的上升沿和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍。29DDR2 SDRAMDDR2(Double Data Rate 2)SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然同时采用了在时钟的上升/下降沿同时进行数据传输的基本方式,但DDR2内存却拥有两倍于上一代DDR内存预读取能力(既:4bit数据读预取)。DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行,
22、比传统DDR内存可以处理的2bit数据高了一倍。换句话说,虽然DDR2和DDR一样,都采用了在时钟的上升沿和下降沿同时进行数据传输的基本方式,但DDR2拥有两倍于DDR的预读取系统命令数据的能力。也就是说,在同样100MHz的工作频率下,DDR的实际频率为200MHz,而DDR2则可以达到400MHz。30DDR3 SDRAMDDR3内存将工作在更高的频率下,这也意味着更快的数据传输速度和整机系统性能的又一次提升。除此以外,DDR3内存还有低功耗的优点,其访问延迟也比DDR2内存有了可观的下降。DDR3采用了8bit预取与4倍时钟频率。DDR3的结构设计可以说“借鉴”了很多DDR2的成份,DD
23、R3实现数据频率的大幅度提升就在于DDR3采用5bit预取机制以及4倍的时钟频率,这是其比DDR2速度更快的主要原因。DDR3不仅在带宽指标上优胜于DDR2,而且比DDR2有着更低的访问延迟。31SLC/MLC Nand前面介绍的Nand Flash是SLC技术的Nand Flash。SLC全称为Single-Level Cell,单层单元闪存。SLC每一个单元储存一位数据,生产成本较高,晶片可重复写入十万次。SLC技术的优点是擦写次数达10万次,寿命长;功耗低;写入速度快。SLC技术的缺点是造价成本比较高;单颗芯片容量有限制。MLC 全称为Multi-Level Cell,多层单元闪存,ML
24、C每一个单元可储存两位数据,数据密度比较高。MLC技术是今后NAND Flash的发展趋势,就像CPU单核心、双核心、四核心一样,MLC技术通过每Cell存储更多的bit来实现容量上的成倍跨越,直至更先进的架构问世。而SLC短期内仍然会是市场的佼佼者,但随着MLC技术的不断发展和完善,SLC必将退出历史的舞台。32DDR4目前的DDR3内存最高标准频率为2133MHz,电压则有标准版1.5V、节能版1.35V两种。DDR4将继续沿着高频率、低电压之路前进。DDR4内存会带来频率的大幅提升,更会有1.2V低电压、更好的对等保护和错误恢复等技术。DDR4内存将会拥有两种规格。其中使用Single-
25、endedSignaling信号的DDR4内存其传输速率已经被确认为1.63.2Gbps,而基于差分信号技术的DDR4内存其传输速率则将可以达到6.4Gbps。由于通过一个DRAM实现两种接口基本上是不可能的,因此DDR4内存将会同时存在基于传统SE信号和差分信号的两种规格产品。DDR4内存将会是Single-endedSignaling(传统SE信号)方式DifferentialSignaling(差分信号技术)方式并存。33SDXC存储卡存储卡SDXC存储卡不但拥有超高的容量,而且其数据传输速度非常快。SDXC存储卡最大的传输速度预期能够达到300MB/s。SDXC存储卡拥有超高容量,不过
26、其数据安全性能如何暂时未清楚。技术指标:(1)SDXC 存储卡的目前最大容量可达 64GB,理论上最高容量能达到2TB。(2)支持UHS 104,一种新的超高速SD接口规格,新SD存储卡标准Ver.3.00种的最高标准,其在SD接口上实现每秒104MB的总线传输速度,从而可实现每秒 35MB 的最大写入速度和每秒 60MB 的最大读取速度。(3)UHS104提供传统的SD接口-3.3V DS(25MHz)/HS(50MHz),支持UHS104的新SDHC存储卡和现有的SDHC对应设备相兼容。(4)SDXC存储卡只和装有exFAT文件系统的SDXC对应设备相兼容。它不能用于SD或SDHC对应设备
27、。(5)采用最可靠的CPRM 版权保护技术。(6)UHS104是一种新的超高速接口规格,数据总线传输速率为每秒104MB。这是SD新存储卡标准Ver.3.00中的最高标准。(7)SDXC 存储于2009 年4 月被SD 协会定义为下一代SD存储卡标准,为满足大容量存储媒体的不断增长的需求,为丰富的存储应用提供更快的数据传输速率。新SDXC存储卡标准和提供4GB到32GB容量的SDHC存储卡标准相比,其所实现的容量可超越32GB,最大可达 2TB(TB:terabyte,万亿字节,1TB=1024GB)。34目录目录 1、存储子系统简介 2、常用的存储器 3、外部存储器控制器、外部存储器控制器E
28、MI 4、SD/MMC控制器 5、存储子系统性能优化35EMI的作用的作用 连接在AHB总线上,管理片外存储器,如FLASH、SRAM、DDR等SDRAMEMI片内片外SRAMFLASH36EMI在在SoC芯片中的位置芯片中的位置E M I地址映射表地址映射表addressdescriptionsize0 x000000000 x03FFFFFF EMI(nCSA)64Mbytes(前16M有效)0 x040000000 x07FFFFFF ESRAM 64Kbytes 0 x100000000 x10000FFF INTC 4Kbytes 0 x100010000 x10001FFF PMC
29、 4Kbytes 0 x100020000 x10002FFF RTC/WD 4Kbytes 0 x100030000 x10003FFF TIMER 4Kbytes 0 x1000B0000 x1000BFFF MMC/SD 4Kbytes 0 x1000E0000 x1000EFFF USBD 4Kbytes 0 x1000F0000 x1000FFFF GPIO 4Kbytes 0 x110000000 x11000FFF EMI 4Kbytes 0 x110010000 x11001FFF DMAC 4Kbytes 0 x110020000 x11002FFF LCDC 4Kbytes
30、 0 x110050000 x11005FFF AMBA 4Kbyte 0 x200000000 x23FFFFFF EMI(nCSA)64Mbytes(前16M有效)0 x240000000 x27FFFFFF EMI(nCSB)64Mbytes(前16M有效)0 x280000000 x2BFFFFFF EMI(nCSC)64Mbytes(前16M有效)0 x2C0000000 x2FFFFFFF EMI(nCSD)64Mbytes(前16M有效)0 x300000000 x33FFFFFF EMI(nCSE)64Mbytes 0 x340000000 x37FFFFFF EMI(nCSF
31、)64Mbytes 38EMI 控制器EMI控制器(EXTERNAL MEMORY INTERFACE,简称EMI)支持SRAM、SDRAM、ROM、NOR FLASH及NAND FLASH。芯片的外部存储接口模块提供了对这些外部存储器的读写接口,并且可以通过配置相关寄存器,灵活的实现对不同外部存储器的操作片选信号和地址范围,普通SRAM接口:提供6个可配置的片选信号:CSA、CSB、CSC、CSD、CSE、CSF,用来实现对ROM、SRAM、NOR FLASH的片选。其中CSE、CSF与SDRAM片选信号复用 每个片选支持的最大寻址范围为64M。每个片选可配的起始地址.启动片选可以选配16位
32、总线或32位总线支持SDRAM接口 提供2个相互独立的与sram复用的片选信号:SD_CSE,SD_CSF,作为SDRAM的片选,与SRAM/ROM/FLASH的片选CSE CSF复用.每个片选支持有4个bank的SDRAM,并支持同时激活(active)最多达4个BANK。根据选用的SDRAM型号,tRC、tRP、tRCD、CAS latency可配置。提供SDRAM的低功耗模式,及自刷新功能。支持NAND FLASH 接口 提供一个片选:nand_cs 只支持整个page的操作。就是每次读写都是一个page。通过配置地址寄存器,控制字寄存器。然后对数据寄存器进行访问,从而完成对NAND F
33、LASH 的操作。支持从NAND Flash 直接进行系统启动 支持ECC校验的一位纠错 只支持8位数据线的NAND FLASH39SRAM控制器控制器IP的设计的设计 接口信号 AHB Slave接口信号 输出给SRAM的控制信号40AHB接口(标准接口(标准SLAVE)信号名信号名 位数位数 I/O描描 述述hclk1I 时钟信号hresetn1I 复位信号hsel1I 操作选择信号hwrite1I 读写操作htrans2I 总线传输类型Idle/busy/noseq/seqhburst3I 总线burst长度hwdata32I 写数据haddr32I 地址hsize2I 传输位宽hrda
34、ta32O 读数据hready1O 总线响应hresp2O 总线响应41片外片外SRAM存储器接口(标准)存储器接口(标准)信号名信号名位数位数 I/O描述描述SRAM_CSn1OSRAM片选SRAM_WEn1OSRAM写信号SRAM_OEn1OSRAM读信号SRAM_ADDRnOSRAM地址SRAM_DATA16IO SRAM数据SRAM_BEn2OSRAM字节选择EMI模块中的寄存器设计模块中的寄存器设计CSA片选配置寄存器CSB片选配置寄存器CSC片选配置寄存器CSD片选配置寄存器CSE片选配置寄存器CSF片选配置寄存器SDRAM时序配置寄存器1SDRAM时序配置寄存器2REMAP配置寄
35、存器NAND FLASH地址寄存器1NAND FLASH地址寄存器2NAND FLASH控制寄存器NAND FLASH状态寄存器NAND FLASH错误地址寄存器1NAND FLASH错误地址寄存器2NAND FLASH配置寄存器1NAND FLASH配置寄存器2NAND FLASH中断寄存器NAND FLASH完成ECC校验寄存器NAND FLASH空闲寄存器NAND FLASH ID寄存器NAND FLASH数据寄存器43寄存器举例寄存器举例-片选配置寄存器片选配置寄存器 片选信号的地址范围 WE信号从低电平到高电平后保持高电平所需要的cycle WE信号保持低电平(有效)需要的时钟周期数
36、 片选有效后WE保持高电平需要的时钟周期数 OE信号从低电平到高电平后保持高电平所需要的cycle OE信号保持低电平(有效)需要的cycle 片选有效后OE保持高电平所需要的cycle 片选从低电平变为高电平之后保持高电平的cycle 地址有效后片选保持为高电平(无效)的cycle 片选功能使能44SRAM控制器结构控制器结构45SRAM控制器模块划分控制器模块划分 BUS Interface 处理AHB接口信号 区分寄存器操作、存储器操作 Register 控制存储器地址范围、位宽 控制存储器访问的方式 SRAM FSM 处理有效的存储器操作 考虑各种传输类型 Burst长度、数据位宽、读
37、/写 控制输出信号的时序 SRAM Interface 根据FSM的控制输出相应的信号给SRAM 匹配总线位宽和SRAM位宽46SRAM控制器控制器FSM的设计的设计 Idle状态 读数据准备状态 读数据状态 写数据准备状态 写数据状态47EMI模块设计小结模块设计小结 挂接在AHB总线上 接口信号 AHB总线接口信号 片外存储器SRAM控制信号 子模块划分 总线接口模块 SRAM接口模块 SRAM状态机:根据寄存器的配置控制存储器的访问方式(时序、各种传输类型等)48目录目录 1、存储子系统简介 2、常用的存储器 3、外部存储器控制器EMI 4、SD/MMC控制器控制器 5、存储子系统性能优
38、化SD/MMC的读写时序的读写时序50功能描述功能描述兼容SD Spec ver1.01/1.10和MultiMediaCard Spen ver4.X/3.X支持SD/MMC 1bit/4bit/8bit modes支持MMCplus和MMCmobile,支持CEATA specifications(ver1.0)支持所有命令集,包括MMCA stream write and read支持任意block数据长度SD时钟最高工作在25MHz支持SD/MMC卡热插拔支持数据CRC16和命令CRC7校验51结构框图结构框图SDIO控制器的寄存器设计控制器的寄存器设计SDIO时钟控制寄存器:此寄存器
39、用以设置SD控制器和卡的工作时钟频率,以及输出的SD卡时钟开关控制。注意设置的是分频因子,SD的工作频率为总线频率经过分频后的值,建议频率为:初始化过程小于400KHz,数据传输过程小于25MHzSDIO的软件复位控制寄存器:用于软件复位SDIOSDIO命令参数寄存器:用于设置SD命令参数SDIO的命令控制寄存器:用于设置SD命令代号,命令反馈类型,有否数据传输和控制命令发出。SDIO的数据块长度寄存器:用于设定数据传输的数据块(BLOCK)的大小SDIO的数据块数目寄存器:用于设定当前要传输的数据块个数,即数据传输总量与单个数据块长度的比。SDIO传输模式选择寄存器:用于设定数据传输的方向(
40、对SD卡读还是写),以及数据传输的宽度(1bit/4bit)SDIO响应寄存器0-3:SDIO命令响应寄存器共有四组,每组32位,共128位。SDIO读超时控制寄存器:用来设置SDIO认为读超时的周期数SDIO中断状态寄存器:用于标志各种正常或异常状态的产生SDIO中断状态屏蔽寄存器:用于屏蔽或使能各种中断信号SDIO接收FIFO:数据接收FIFO的入口地址SDIO发送FIFO:数据发送FIFO的入口地址53目录目录 1、存储子系统简介 2、常用的存储器 3、外部存储器控制器EMI 4、SD/MMC控制器 5、存储子系统性能优化、存储子系统性能优化54Memory wall 笔记本电脑中各子系
41、统占功耗的比例56 核心是解决容量、速度、价格间的矛盾,建立起多层存储结构。一个金字塔结构的多层存储体系 充分体现出容量和速度关系 Cache主存层次:解决CPU与主存的速度上的差距;主存辅存层次:解决存储的大容量要求和低成本之间的矛盾。多层存储结构多层存储结构57如何提高存储子系统的性能?如何提高存储子系统的性能?充分利用片上存储器SRAM eSRAM是一个内嵌20KByte 读写零等待的RAM,支持32位,16位,8位数据读写操作。需要频繁访问的程序和数据(ASIC工程中心的数篇博士学位论文)操作系统核心代码,比如中断处理程序 CPU的MMU和Cache技术 编写C程序时尽量访问寄存器,少
42、访问片外存储器 嵌入式系统高级C语言编程,北京航空航天大学出版社,凌明编著Cache和和SPM在系统中的位置在系统中的位置高速低速高速高速块传输低速高速高速字、字节访问处理器内核Cache主存SDRAM写缓冲器处理器内核EMI写缓冲器主存SDRAMSPM读缓冲器AddressSpaceAddressSpaceCache和和SPM的比较的比较CacheSPM硬件实现硬件实现相对复杂,需要附加Tag memory和Tag comparor硬件实现简单,就是基本的SRAM 地址从地址上看对程序员透明,自动保存处理器需要访问的指令和数据 从地址上看程序员可见,通过软件指定,借助编译器的优化,实现程序布
43、局 控制方式硬件控制,自动处理主存和处理器之间代码和数据的传送 通过在程序中内插复制代码完成SPM上代码和数据存储 相同容量下功耗高 低 访问时间命中时为一个cycle不命中时为十几个cycle 一个cycle 相同容量下面积大 小 SPM布局优化技术流程图布局优化技术流程图2 2存储子系统存储子系统性能仿真模型性能仿真模型二进制程序二进制程序程序划分器程序划分器SPM分配器分配器链接器链接器存储子系统存储子系统性能仿真模型性能仿真模型新二进制程序新二进制程序访问记录访问记录全局全局配置信息配置信息节点列表节点列表选中节点列表选中节点列表优化前运行时间优化前运行时间前后比较前后比较得出优化结果得出优化结果1 13 34 45 5链接信息链接信息2 2优化后运行时间优化后运行时间