1、a1第五章 C6000系列DSPs的集成外设与硬件开发a2(1)片内程序存储器和数据存储器 (2)外部存储器接口(EMIF)的设计 (3)直接存储器访问(DMA)和扩展的直接存储器访问(EDMA)(4)多通道缓冲串口(McBSP)(5)主机口(HPI)和PCI接口 (6)芯片的设置和其他片内集成外设 a3片内的集成外设C6713两级内部存储器片内存储器总容量264KB增强的DMA(EDMA)控制器有主机接口(HPI)16bit1外部存储器接口(EMIF)32bit1BOOT设置有多通道缓冲串口(McBSP)2McASP2中断选择器有32bit定时器2省电逻辑(Power-down)有GPIO有
2、内部集成的电路模块I2C总线2组锁相环(PLL)控制器有TMS320C6713 225MHz Audio DSPMcBSP1ORTMS320C6713 Floating-Point DSPC67xTM DSP CoreLevel 1 Program Cache 4K BytesORMcBSP 02 TimersLevel 2 Cache/Memory256K Bytes SRAMLevel 1 Data Cache 4K BytesMcASP 0 ORHPIGPIOEMIFEnhanced DMA Controller(EDMA)16 ChannelIIC 1IIC 0McASP 1PLLPo
3、wer Down LogicBoot Configurationa4存储器映射 C6000DSP系统通过EMIF(外部存储器接口)可以使用外部存储器。L1P、L1D、L2分别由各自的控制器控制 C6000DSP总的存储地址范围为4GB(相应使用32位内部地址表示0000 0000FFFF FFFF)。每种存储器映射都被分为片内程序存储器、片内数据存储器、片外存储器、片内外设空间 C6211/C6711/C6713只有1种存储器映射方式:片内存储器始终位于地址0处,可以当作程序或数据存储空间 C6211/C6711/C6713的存储器映射方式只需2位进行设置,即通过对主机口的HD4:3设置引导方
4、式,利用电阻上拉或下拉设置引导方式a5TMS320C6713存储器映射存储器组描述组大小十六进制地址范围内部RAM(L2)192KB0000 00000002 FFFF内部RAM/Cache64KB0003 00000003 FFFF保留256KB24MB0004 0000017F FFFFEMIF寄存器256KB0180 00000183 FFFFL2寄存器128KB0184 00000185 FFFF保留128KB0186 00000187 FFFFHPI寄存器256KB0188 0000018B FFFFMcBSP0寄存器256KB018C 0000018F FFFFMcBSP1寄存器2
5、56KB0190 00000193 FFFF存储器组描述组大小十六进制地址范围Timer 0寄存器256KB0194 00000197 FFFFTimer 1寄存器256KB0198 0000019B FFFF中断向量寄存器512B019C 0000 019C 01FF配置寄存器4B019C 0200019C 0203保留516B256KB019C 0204 019F FFFFEDMA RAM和EDMA寄存器256KB01A0 000001A3 FFFF保留768KB01A4 000001AF FFFFGPIO寄存器16KB01B0 000001B0 3FFF保留240KB01B0 4000
6、01B3 FFFFa6存储器组描述组大小十六进制地址范围I2C0寄存器16KB01B4 000001B4 3FFFI2C1寄存器16KB01B4 400001B4 7FFF保留16KB01B4 800001B4 FFFFMcASP0寄存器16KB01B4 C00001B4 FFFFMcASP1寄存器16KB01B5 000001B5 3FFF保留160KB01B5 400001B7 BFFFPLL寄存器8KB01B7 C00001B7 DFFF保留520KB4MB01B7 E00001FF FFFFQDMA寄存器52B0200 00000200 0033保留52B16MB0200 003402
7、FF FFFF保留720MB0300 00002FFF FFFF存储器组描述组大小十六进制地址范围McBSP0数据64MB3000 000033FF FFFFMcBSP1数据64MB3400 000037FF FFFF保留64MB3800 00003BFF FFFFMcASP0数据1MB3C00 00003C0F FFFFMcASP1数据1MB3C10 00003C1F FFFF保留64MB1GB3C20 00007FFF FFFFEMIF CE0256MB8000 00008FFF FFFFEMIF CE1256MB9000 00009FFF FFFFEMIF CE2256MBA000 00
8、00AFFF FFFFEMIF CE3256MBB000 0000BFFF FFFF保留1GBC000 0000FFFF FFFFa7621x/671x/64x的片内2级存储器 片内采用2级高速缓存结构,程序和数据拥有各自独立的高速缓存。L1P:片内的第1级程序cacheL1D:片内的第1级数据cache L2:程序和数据共享的第二级cache 由各自的控制器控制McBSP1ORTMS320C6713 Floating-Point DSPC67xTM DSP CoreLevel 1 Program Cache 4K BytesORMcBSP 02 TimersLevel 2 Cache/Mem
9、ory256K Bytes SRAMLevel 1 Data Cache 4K BytesMcASP 0 ORHPIGPIOEMIFEnhanced DMA Controller(EDMA)16 ChannelIIC 1IIC 0McASP 1PLLPower Down LogicBoot Configurationa8C6713的功能框图a9C6713 CPUProgram fetchData path AData path B L1 program cache(L1P)controller L1 data cache(L1D)controllerCache RAM4KBCache RAM4
10、KBProgram Address(32bit)Program Data(256b)DA1 addressST1store dataST2store dataLD1 load dataLD2 load dataDA2 address直接映射双路组相联 L2 cache controlleraddressdatasnoop addressaddressdatadatasnoop addressRAM64KBEDMA数据地址32bit;数据8,16,32bita10直接映射cache:包含能缓存特定的高级存储器的唯一Cache行。这并不意味着该cache 像它所缓存的存储器一样包含很多行,而是指一
11、个存储器地址只能由专门的行来缓存。例如,一个存储器地址被缓存在直接映射cache位置A,清除cache之后再缓存,它还是只能被缓存在位置A。侦听snoop:是一种高级存储器查询低级存储器以确定两者是否含有同一地址的数据的方法。在两级存储器系统中,当数据从高级存储器中移出时,必须侦听低级存储器来确定逐出的地址是否与低级存储器中的同一地址不一致。相联(associative):是在每一组(set)中行帧的数目。行帧是Cache 中保存缓存数据(一行)、联合寻址标记和行状态数据的一个位置。状态数据指明该行有效或重写。重写指的是Cache的一行保存的数据有效且被CPU修改过,但是这种修改没有在下一更高
12、级内存中更新a11C6713DSP的片内存储器配置内部存储器结构存储器总量(KB)程序存储器 L1P(KB)数据存储器 L1D(KB)Unified 存储器L2(KB)哈佛结构(L1)Unified(L2)2644(Cache)(L1P)4(Cache)(L1D)64(映射/Cache)192(映射)注意:L1P和L1D相互独立,只能作为Cache被CPU访问(1)L2是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可整体作为第2级Cache,或者是二者按比例的一种组合a12621x/671x片内存储器结构片内cache RAM 结构2级缓存L1P容量4KBL1P结构直接映射
13、L1P CPU访问时间单周期L1P 行容量64BL1P存储体构造1256bit存储体L1P读缺失的分配L1P中分配一行L1P读命中的分配L1P中读取数据L1P写缺失的分配不支持L1P写L1P写命中的分配支持L1P写L1PL2申请2次存取/L1P行L1P协议读分配L1P存储器单周期RAML1P L2申请时CPU阻塞5周期L1D容量4KBL1D结构2路组联想L1D CPU访问时间单周期L1D 行容量32BL1D置换策略2路LRU(最近很少使用)L1D存储体构造64bit宽度双口RAML1D读 缺失的分配L1D中分配一行L1D读命中的分配L1D中读取数据L1D写缺失的分配L1D中不分配,数据送入L1
14、DL1D写命中的分配数据送入L1D命中区L1DL2申请2次存取/L1D行L1D协议读分配L1D L1D申请时CPU阻塞4周期a13621x/671x片内存储器结构(续1)L2容量64KBL2 cache容量0/16/32/64KBL2 SRAM容量64/48/32/16/0KBL2结构1/2/3/4路组联想L2行容量128BL2置换策略1/2/3/4路LRUL2存储体构造4*64bit bankL2-L1P协议一致性监听使无效L2-L1D协议一致性监听L2协议读/写分配L2读缺失的分配EDMA读数据,存入L2L2读命中的分配从L2读数据L2写缺失的分配EDMA读数据,存入L2中LRU的行,并用
15、新数据修改L2写命中的分配数据写入命中的L2区域L2 L1P读总线宽度256bitL2 L1D读总线宽度128bitL1DL2写总线宽度32bitL1DL2驱逐总线宽度128bitL2 EDMA读总线宽度64bitL2 EDMA写总线宽度64bita14分配(allocate):是在Cache中寻找一个位置来存储新的、未缓存的数据的过程缺失:所请求的存储器地址的数据不在cache时将发生cache 缺失。当数据是从高一级cache获取时,缺失会导致CPU阻塞命中:所请求的存储器地址的数据刚好在cache时将发生cache 命中。Cache命中可使CPU阻塞时间最小化,因为从cache中获取数据
16、比从源存储器中快得多。读分配:仅对读缺失在Cache中分配空间。写缺失不会导致空间分配的发生,而是数据将被传递到高一级缓存中。LRU(least recently used):对于相联Cache,LRU分配是指选择哪一行帧来分配空间的方法。当寻址映射集中的全部行包含有效数据时,就分配哪个最近最少被读或被写的行来存储新的数据,或者说最近最多使用的行被保留a15Cache 高速缓冲存储器 Cache存储器是一种加速内存或磁盘存取的装置。Cache工作原理:使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,Cache能够使得读写的动作先在快速的装
17、置上完成,如此会使系统的响应较为快速。Cache和主存都分成块,每块由多个字节组成。Cache数据是主存数据的副本;Cache标记指出主存的哪些块存放在Cache中。由主存地址的低位部分作为Cache的地址访问Cache数据;用主存的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较,如果相等,说明访问的Cache数据有效,称Cache命中;如果不相等,说明访问的Cache数据无效,称Cache不命中,或访问失效。此时,需要访问主存,并且将包括此数据的一块信息装入Cache。如果Cache已经被装满,则需要根据某种替换算法,用此块信息替换Cache中原来的某块信息。a16CP
18、U内建L1 cache与主机板上的L2 cache 硬盘的高速缓存 L1cache与 CPU 同频率运作,比 L2 CACHE提供更快速的存取效能。a17 Cache通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签相同的存储块进行访问。Cache的基本结构如下:(1)直接映像Cache:地址仅需比较一次。在直接映像Cache中,由于每个主存储器的块在Cache中仅存在一个位置,因而把地址的比较次数减少为一次。其做法是,为Cache中的每个块位置分配一个索引字段(set index),用Tag字
19、段区分存放在Cache位置上的不同的块。单路直接映像把主存储器分成若干页,主存储器的每一页与Cache存储器的大小相同,匹配的主存储器的偏移量可以直接映像为Cache偏移量(offset)。a18(2)组相联Cache 使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率。使用两组各自独立的Cache效能通常比只使用一组较佳,这称为 2-Ways Associate,同样的,使用四组Cache则称为4ways Associate,但更多组的Cache会使得算法相对的复杂许多。a19C6713 的L1P Direct mapped Cache;容量为
20、4KB 行大小为64B(2个取指包宽度),可以缓存64组(或128个取指包);直接映射给外存中某个地址的内容 L1P的地址解析:CPU发出的32位取指地址分为(1)Tag段(1231位):Cache中缓存数据的惟一标记(2)set index 段(611位):指令数据在Cache中映射位置的索引(3)Offset段(05位):确定取指包在Cache中字节偏移地址 L1P的控制:用各寄存器实现(1)CSR(CPU控制状态寄存器)中的PCC字段:57位(2)L1PFBAR(L1P Flush基址寄存器):32位(3)L1PFWC(L1P Flush字计数寄存器):低16位(4)CCFG(Cache
21、配置寄存器)CPU访问L1P过程(1)命中L1P:单周期返回需要的取指包(2)没有命中L1P,而命中L2:CPU将被阻塞5个周期(3)没有命中L2:CPU将被阻塞,直到L2从外部存储空间取得相应取指包,送入L1P,再送入CPUa20举例:32位程序地址为0 x801ef183划分为:偏移量:0 x3set index:0 x6Tag:0 x801efCache 模式CSR 中的PCC值描述Cache 使能000b/010b其他值直接映射cache保留L1P模式设置对一个地址的任何最初的程序获取都会导致cache缺失L1P中数据无效性的控制(1)写1到CCFG的IP位:在操作过程中会阻塞CPU对
22、L1P的访问(2)向L1PFBAR写一个字地址(为起始地址)。向L1PFWC写无效字的个数:落在L1PFBAR L1PFBAR+L1PFWC-1范围内的行为无效。不会阻塞任何正在进行的CPU访问a21C6713 的L1D2-way set associative cache;容量为4KB每一路组的行大小为32B,可以缓存64组L1D的地址解析:CPU发出的32位物理地址分为(1)Tag段(1131位):该地址数据的一个惟一标记(2)set index 段(510位):确定该组在L1D中的位置(3)Word段(24位):选择组中相应的字(4)Offset段(01位):字偏移地址L1D的控制:用各
23、寄存器实现(1)CSR(CPU控制状态寄存器)中的DCC字段(2)L1DFBAR(L1D Flush基址寄存器)(3)L1DFWC(L1D Flush字计数寄存器)(4)CCFG(Cache配置寄存器)CPU访问L1D过程(1)命中L1D:单周期返回需要的数据(2)没有命中L1D,而命中L2:CPU将被阻塞4个周期(3)没有命中L2:CPU将被阻塞,直到L2从外部存储空间取得相应数据,送入L1D,再送入CPUa22C6713 的L2 容量为64KB L2由CCFG寄存器的L2Mode 段配置为5种模式L2的控制:用各寄存器实现(1)CCFG(Cache配置寄存器)(2)L2FBAR(L2 Fl
24、ush基址寄存器)(3)L2FWC(L2 Flush字计数寄存器)(4)L2CBAR(L2 clean基址寄存器)(5)L2CWC(L2 clean字计数寄存器)(6)L2FLUSH(L2 Flush寄存器)(7)L2CLEAN(L2 clean寄存器)16K bytes16K bytes16K bytes16K bytesL2 MemoryBlock base address0000 0000H0000 4000H0000 8000H0000 C000H1114-way cache3-way cache SRAM2-way cache SRAM1-way cache SRAMAll SRAM
25、011010001000L2 mode(CCFG的02位)a23L2控制器处理的申请来自3个方向:L1P,L1D和EDMA。来自L1P的只有读请求,它们之间是条位宽的单向数据总线。L1D和L2间的接口包括一条L1D到L2的写总线和一条L2 到L1D的读总线。L2和EDMA 间是一条位的读写总线L1D的行大小是L1D和L2间总线宽度的倍,因此每次L1D的读请求需要进行次,L1D对L2的每次存取需要个周期如果L2包含所需数据,L1D的读缺失将在个周期后得到数据。L1P的读缺失将在5个周期后得到数据。L2SRAM分为多个存储体(Bank),只要数据在不同的bank 中,就可以同时进行个存取访问a24
26、C6713片内Cache控制寄存器的地址分配寄存器地址(byte)寄存器助记符寄存器名0184 0000HCCFGCache配置寄存器0184 4000HL2FBARL2 Flush基址寄存器0184 4004HL2FWCL2Flush字计数寄存器0184 4010HL2CBARL2 clean 基址寄存器0184 4014HL2CWCL2clean字计数寄存器0184 4020HL1PFBARL1P Flush基址寄存器0184 4024HL1PFWCL1P Flush字计数寄存器0184 4030HL1DFBARL1D Flush基址寄存器0184 4034HL1DFWCL1D Flush
27、字计数寄存器0184 5000HL2FLUSHL1P Flush寄存器0184 5004HL2CLEANL2 clean寄存器a25C6713存储器属性寄存器的地址分配寄存器地址(byte)寄存器助记符寄存器名0184 8200HMAR0CE0:8000 0000H 80FF FFFFH0184 8204HMAR1CE0:8100 0000H 81FF FFFFH0184 8208HMAR2CE0:8200 0000H 82FF FFFFH0184 820CHMAR3CE0:8300 0000H 83FF FFFFH0184 8240HMAR4CE1:9000 0000H 90FF FFFFH
28、0184 8244HMAR5CE1:9100 0000H 91FF FFFFH0184 8248HMAR6CE1:9200 0000H 92FF FFFFH0184 824CHMAR7CE1:9300 0000H 93FF FFFFH控制外存某一段空间的高速缓存使能寄存器地址(byte)寄存器助记符寄存器名0184 8280HMAR8CE2:A000 0000H A0FF FFFFH0184 8284HMAR9CE2:A100 0000H A1FF FFFFH0184 8288HMAR10CE2:A200 0000H A2FF FFFFH0184 828CHMAR11CE2:A300 0000
29、H A3FF FFFFH0184 82C0HMAR12CE3:B000 0000H B0FF FFFFH0184 82C4HMAR13CE3:B100 0000H B1FF FFFFH0184 82C8HMAR14CE3:B200 0000H B2FF FFFFH0184 82CCHMAR15CE3:B300 0000H B3FF FFFFHa26McBSP1ORTMS320C6713 Floating-Point DSPC67xTM DSP CoreLevel 1 Program Cache 4K BytesORMcBSP 02 TimersLevel 2 Cache/Memory256K
30、Bytes SRAMLevel 1 Data Cache 4K BytesMcASP 0 ORHPIGPIOEMIFEnhanced DMA Controller(EDMA)16 ChannelIIC 1IIC 0McASP 1SDRAM/SBSRAM/异步存储器(SRAM、Flash等)a27C6713芯片的EMIF接口总线宽度32 bit存储空间数目4 (CE0CE3)可寻址空间(MB)512同步时钟独立的ECLKIN访问支持的字长8/16/32bitCE1空间支持的存储类型所有类型存储器控制信号所有控制信号复用系统允许同时拥有的同步存储器SDRAM和SBSRAM增补的寄存器SDEXTRO
31、M/Flash异步存储器访问Pipeline SBSRAM 访问特点:(1)系统需要提供一个外部时钟。该外部时钟由ECLKIN输入后产生EMIF接口的时钟信号ECLKOUT.(2)SBSRAM、SDRAM、异步接口的信号合并复用。系统中允许同时具有这3种类型的存储器(3)CE1空间支持所有的3种存储器接口(4)同步存储器接口提供4word 突发访问模式(5)SDRAM接口更加灵活,支持更广泛的SDRAM配置a28C6713 EMIF接口特点1.数据总线宽度:32bit2.存储空间:4个(CE0CE3)3.每个存储空间寻址范围:256MB4.时钟:外部ECLKIN引脚输入或内部SYSCLK3提供
32、,最高时钟频率为100MHz5.可访问的数据宽度:8/16/32bit6.支持的存储器类型:SDRAM/SBSRAM/异步存储器(SRAM、Flash等)7.各类存储器控制信号:复用引脚,自动切换a29a30a31a32 字节定位(1)C621x/C671x 片内数据的存取是32位,访问片外的8/16bit 数据:EMIF自动完成数据打包和解包处理。例:向外部8位存储器写1个32bit数据 EMIF自动将数据解包为4个8bit,依次写入目的地址N、N+1、N+2 和N+3(2)Little endian:对齐EMIF的最低有效位 Big endian:对齐EMIF的最高有效位(3)Endian
33、 模式设置:由复位时引脚HD8的状态决定。HD8=0为Big endian;HD8=1为little endian;(4)对SEED-6713在缺省情况(跳针JP11开路)下,工作在little endian模式,JP11短路时,工作在Big endian 模式a33EMIF读/写时序的控制由其片上的存储映射的寄存器控制a34Rsv15R,+0Rsv14RW,+0Rsv13RW,+1Rsv12RW,+1BUSREQ11R,+0ARDY10R,+xHOLD9R,+xHOLDA8R,+xNo HOLD7RW,+0Rsv6R,+1Rsv5R,+1CLK1EN4RW,+1CLK2EN3RW,+1Rsv
34、2R,+0Rsv1R,+0Rsv0R,+0GBLCTL寄存器:完成对整个片外存储空间的公共参数的设置Write setup3128RW,+1111Write strobe2722RW,+111111Write Hold2120RW,+11Read setup1916RW,+1111TA1514R,+11Read Strobe13 8RW,+111111MTYPE7 4RW,+00101Write hold MSB3RW,+0Read hold20RW,+011CExCTL寄存器:控制相应存储空间的存储类型和接口时序;x=03a35SDCTL寄存器Reserved3126R,+1000 00XR
35、FR2524RW,+00Counter2312R,+0101 1101 1100PERIOD11 0RW,+0101 1101 1100Rsv31R,+0SDBSZ30RW,+0SDRSZ29 28RW,+00REFN25INIT24W,+1TRCD23RW,+0100TRP19RW,+1000SDCSZ27 26RW,+00RW,+12016TRC1512RW,+1111Reserved110R,+0000 0000 00001SLFRFRRW,+0SDTIM寄存器Rsvd31R,+0WR2RD20RW,+1WR2DEAC19RW,+0118WR2WR17RW,+1R2WDQM16RD2WR
36、14RW,+101RD2DEAC12RW,+1110RD2RD9RW,+1THZP8RW,+10TWR6RW,+01TRRD4RW,+1TRAS1RW,+111TCL021RW,+111511 753RW,+1SDEXT寄存器a36EMIF的具体使用 通过EMIF外扩多种类型的存储器、外设和存储扩展总线,如SDRAM、SBSRAM、Flash、UART、USB、模板控制/状态寄存器和存储器扩展总线。它们分别映射到EMIF的4个存储空间CE3:0中同步接口设计 特点:(1)同步访问:读写操作需要时钟 类型:SDRAM(synchronous dynamic RAM)SBSRAM(synchron
37、ous burst static RAM)(2)动态存储:芯片需要定时更新a37SDRAM芯片简介:以ISSI公司的IS42S16400芯片为例64Mb(8MB)的16位高速SDRAM芯片。它的同步接口和完全流水线的内部结构使其拥有极大的数据传输速率,可以工作在高达133MHz时钟频率下,刷新频率每64ms为4096次。该SDRAM芯片内部有4个存储体(bank),通过行、列地址分时复用系统地址总线,对不同存储体内不同页面的具体存储单元进行读写访问寻址。在进行读操作之间,必须预先激活SDRAM内对应的存储体,并选择存储器的某一行,然后送入列地址读取需要的数据。从输出列地址到SDRAM返回相应数
38、据之间存在一个存取延迟。如果访问新的页面,则先需要关闭所有的存储体,否则已打开的页面将一直有效。在写操作之前,由于已经预先激活了有关的行地址,因此可以在输出列地址的同时输出数据,没有延迟。42S16400提供自刷新模式的设置,可以使芯片运行在低功耗的状态下,从而大大减少嵌入式系统的功率消耗。a38EMIF支持对SDRAM的直接接口(1)EMIF可以灵活设置SDRAM地址的结构参数:列地址数目(页的大小)、行地址数目(每个bank中页的数量)、存储体的数量(打开页面数量)(2)最多能够同时激活SDRAM中4个不同的页,它们可以集中在一个CE 空间中,也可以跨越多个CE空间,一个存储体只能打开一页
39、EMIFECLKIN/CEnECLKOUT/SDRAS/SDCAS/SDWE/BE3:0EA13EA12EA11:2ED31:016Mbit SDRAM/CSCLK/RAS/WE/CASCKEVccDQM3:0A11A10A9:0D31:0外部时钟a39C621x/C671x SDRAM信号描述EMIF 信号SDRAM信号SDRAM功能描述/BE3:0DQM3:0输入/输出缓冲控制信号。高电平时,使能写操作,并在读期间将输出置于高阻态。在读时,具有一个2时钟周期的等待,而在写时等待周期为0。DQM引脚可以用作位选通脉冲,并连接到/BE输出/CE3:0/CS片选和命令使能。在命令被锁存到SDRA
40、M时,/CS必须是有效的(低电平)。CE1空间支持所有的3种存储器接口ECLKOUTCLKSDRAM时钟输入。C6713可在ECLKIN或内部SYSCLK3(使用PLL输出作为参考时钟的可变成的分频时钟)下运行。EA12A10在ACTV命令期间用作一个行地址位/SDCAS/CAS列地址选通信号和命令输入。在CLK的上升边沿被锁存,以确定当前的操作。在时钟边沿期间,仅仅在/CS有效时才有效/SDRAS/RAS行地址选通信号和命令输入。在CLK的上升边沿被锁存,以确定当前的操作。在时钟边沿期间,仅仅在/CS有效时才有效/SDWE/WE写选通信号和命令输入。在CLK的上升边沿被锁存,以确定当前的操作
41、。仅仅在/CS有效时才有效CKE时钟使能,被连接到高电平a40C621x/C671x支持的SDRAM配置SDRAMSize Bank Width DepthMax Addressable Devices/CE space(MB)Column Row Bank Pre-address address select charge16M bit2 4 2M8 16MSDRAM A9-A0 A10-A0 A11 A10EMIF EA11-EA2 EA12-EA2 EA13 EA122 8 1M4 8MSDRAM A8-A0 A10-A0 A11 A10EMIF EA10-EA2 EA12-EA2 EA
42、13 EA122 16 512K2 4MSDRAM A7-A0 A10-A0 A11 A10EMIF EA9-EA2 EA12-EA2 EA13 EA1264M bit4 4 4M8 64MSDRAM A9-A0 A11-A0 A13-A12 A10EMIF EA11-EA2 EA13-EA2 EA15-EA14 EA124 8 2M4 32MSDRAM A8-A0 A11-A0 A13-A12 A10EMIF EA10-EA2 EA13-EA2 EA15-EA14 EA124 16 1M2 16MSDRAM A7-A0 A11-A0 A13-A12 A10EMIF EA9-EA2 EA12-
43、EA2 EA15-EA14 EA124 32 512K1 8MSDRAM A7-A0 A10-A0 A12-A11 A10EMIF EA9-EA2 EA12-EA2 EA15-EA14 EA12a41C621x/C671x支持的SDRAM配置(续)SDRAMSize Bank Width DepthMax Addressable Devices/CE space(MB)Column Row Bank Pre-address address select charge128M bit4 8 4M4 64MSDRAM A9-A0 A11-A0 A13-A12 A10EMIF EA11-EA2 EA
44、13-EA2 EA15-EA14 EA124 16 2M2 32MSDRAM A8-A0 A11-A0 A13-A12 A10EMIF EA10-EA2 EA13-EA2 EA15-EA14 EA124 32 1M1 16MSDRAM A7-A0 A11-A0 A13-A12 A10EMIF EA9-EA2 EA13-EA2 EA15-EA14 EA12256M bit4 8 16M4 128MSDRAM A9-A0 A12-A0 A14-A13 A10EMIF EA11-EA2 EA14-EA2 EA16-EA15 EA124 16 4M2 64MSDRAM A8-A0 A12-A0 A14
45、-A13 A10EMIF EA10-EA2 EA14-EA2 EA16-EA15 EA12a42C621x/C671x的SDRAM接口接口宽度32,16,8bitSDSRAM时钟ECLKOUT用于SDRAM时序参数的寄存器SDCTL、SDTIM、SDEXTSDRAM控制信号与SBSRAM、异步接口控制信号复用打开的页面数任意CE空间打开4个页面可编程的SDRAM配置列、行、和存储器组大小突发访问模式支持使用4 字突发执行SDRAM突发模式后台刷新否预加载引脚EA12SDRAM自刷新模式否页面替换随机a43EMIF支持的SDRAM命令命令功能DCABDeactivate,关闭所有的存储体(ban
46、k),也称为prechargeDEAC关闭单个存储体ACTV激活所有的存储体,并选择存储器的某一行READ输入起始的列地址,并开始读操作WRT输入起始的列地址,并开始写操作MRSMode register set,设置SDRAM模式寄存器REFRRefresh,使用内部地址自动进行周期性刷新a44SDRAM的控制命令的真值表SDRAM32-bitEMIFCKE /CS /RAS /CAS /WE A19:16 A15:11 A10 A9:0SDCKE /CE /SDRAS /SDCAS /SDWE EA21:18 EA17:13 EA12 EA11:2ACTVH L L H H 0001b B
47、ank/Row Row RowREADH L H L H X Bank/Col L ColWRTH L H L L X Bank/Col L ColMRSH L L L L L L/mode mode modeDCABH L L H L X X H XDEACH L L H L X Bank/X L XREFRH L L L H X X X XH=high=1b;L=Low=0b;Bank=存储器组地址;Row=行地址;col=column=列地址X=前一次的值;Mode=模式选择a45SDRAM初始化 复位后,任何CE空间都不会配置为SDRAM.在设置INIT位为1而执行SDRAM初始化之前
48、,CPU应该初始化所有CE空间寄存器(CExCTL)和SDRAM扩展寄存器(SDCTL、SDTIM、SDETX)如果系统不存在SDRAM,则不应该写1到INIT位 当某个CE空间配置为SDRAM空间后,必须首先进行初始化。用户不需要控制初始化的每一个步骤,只需要向EMIF SDCTL寄存器的INIT位写1,申请对SDRAM作初始化。然后,EMIF就会自动完成所需要的各步操作。初始化操作不能在进行SDRAM存取过程中进行。当INIT位被置1后,EMIF执行如下步骤:(1)发送一条DCAB命令到所有配置为SDRAM的CE空间(2)发送8条刷新命令(3)发送一条MRS命令到所有配置为SDRAM的CE
49、空间a46SDRAM监视页面边界 SDRAM是一个分页的存储器,因此EMIF的SDRAM控制器监测访问SDRAM时行地址的情况,避免访问时发生行越界。为了完成这个任务,EMIF在内部有四个页面寄存器,自动保存当前打开的行地址,然后与后续存取访问的地址进行比较。对于所有的C6000器件,终止当前的访问不是一个强制有效SDRAM行被关闭的条件。EMIF会让有效行打开直到需要关闭它。这样会减少有效和无效反复变化的开销,并允许接口完全用于存储器访问的地址定位 一旦发现存取访问发生了页面越界,EMIF会自动执行DCAB操作,然后再开始新的行访问a47SDRAM刷新模式 SDRAM 控制寄存器(SDCTL
50、)的RFEN位选择EMIF的SDRAM刷新模式RFEN=0:所有EMIF刷新被禁用,并且用户必须确定刷新是在一个外部器件中执行。RFEN=1:EMIF执行SDRAM刷新。刷新命令(REFR)为所有被选择使用SDRAM的CE空间使能所有CE信号(使用CE空间控制寄存器CExCTL的MTYPE位段)在REFR之前,自动执行一个DCAB命令,确保所有选择的CE 空间无效。在DCAB命令之后,EMIF开始以SDTIM寄存器的PERIOD字段设置的值进行定时刷新。在一个REFR命令前后,页面信息总是无效的,因此一个刷新周期总会产生一个页面信息丢失。a48ECLKOUT/CEnREFR/BE3:0EA15