版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章C6000系列DSPs的集成外设与硬件开发1a第五章C6000系列DSPs的集成外设与硬件开发1a(1)片内程序存储器和数据存储器(2)外部存储器接口(EMIF)的设计(3)直接存储器访问(DMA)和扩展的直接存储器访问(EDMA)(4)多通道缓冲串口(McBSP)(5)主机口(HPI)和PCI接口(6)芯片的设置和其他片内集成外设2a(1)片内程序存储器和数据存储器2a片内的集成外设C6713两级内部存储器片内存储器总容量264KB增强的DMA(EDMA)控制器有主机接口(HPI)16bit1外部存储器接口(EMIF)32bit1BOOT设置有多通道缓冲串口(McBSP)2McASP2中断选择器有32bit定时器2省电逻辑(Power-down)有GPIO有内部集成的电路模块I2C总线2组锁相环(PLL)控制器有TMS320C6713–225MHzAudioDSPMcBSP1ORTMS320C6713Floating-PointDSPC67xTMDSP
CoreLevel1ProgramCache
4KBytesORMcBSP02TimersLevel2Cache/Memory256KBytesSRAMLevel1DataCache
4KBytesMcASP0ORHPIGPIOEMIFEnhancedDMAController(EDMA)16ChannelIIC1IIC0McASP1PLLPowerDownLogicBootConfiguration3a片内的集成外设C6713两级内部存储器片内存储器总容量264存储器映射C6000DSP系统通过EMIF(外部存储器接口)可以使用外部存储器。L1P、L1D、L2分别由各自的控制器控制C6000DSP总的存储地址范围为4GB(相应使用32位内部地址表示00000000~FFFFFFFF)。每种存储器映射都被分为片内程序存储器、片内数据存储器、片外存储器、片内外设空间C6211/C6711/C6713只有1种存储器映射方式:片内存储器始终位于地址0处,可以当作程序或数据存储空间C6211/C6711/C6713的存储器映射方式只需2位进行设置,即通过对主机口的HD[4:3]设置引导方式,利用电阻上拉或下拉设置引导方式4a存储器映射C6000DSP系统通过EMIF(外部存储器接口)TMS320C6713存储器映射存储器组描述组大小十六进制地址范围内部RAM(L2)192KB00000000~0002FFFF内部RAM/Cache64KB00030000~0003FFFF保留256KB~24MB00040000~017FFFFFEMIF寄存器256KB01800000~0183FFFFL2寄存器128KB01840000~0185FFFF保留128KB01860000~0187FFFFHPI寄存器256KB01880000~018BFFFFMcBSP0寄存器256KB018C0000~018FFFFFMcBSP1寄存器256KB01900000~0193FFFF存储器组描述组大小十六进制地址范围Timer0寄存器256KB01940000~0197FFFFTimer1寄存器256KB01980000~019BFFFF中断向量寄存器512B019C0000~019C01FF配置寄存器4B019C0200~019C0203保留516B~256KB019C0204~019FFFFFEDMARAM和EDMA寄存器256KB01A00000~01A3FFFF保留768KB01A40000~01AFFFFFGPIO寄存器16KB01B00000~01B03FFF保留240KB01B04000~01B3FFFF5aTMS320C6713存储器映射存储器组描述组大小十六进制地存储器组描述组大小十六进制地址范围I2C0寄存器16KB01B40000~01B43FFFI2C1寄存器16KB01B44000~01B47FFF保留16KB01B48000~01B4FFFFMcASP0寄存器16KB01B4C000~01B4FFFFMcASP1寄存器16KB01B50000~01B53FFF保留160KB01B54000~01B7BFFFPLL寄存器8KB01B7C000~01B7DFFF保留520KB~4MB01B7E000~01FFFFFFQDMA寄存器52B02000000~02000033保留52B~16MB02000034~02FFFFFF保留720MB03000000~2FFFFFFF存储器组描述组大小十六进制地址范围McBSP0数据64MB30000000~33FFFFFFMcBSP1数据64MB34000000~37FFFFFF保留64MB38000000~3BFFFFFFMcASP0数据1MB3C000000~3C0FFFFFMcASP1数据1MB3C100000~3C1FFFFF保留64MB~1GB3C200000~7FFFFFFFEMIFCE0256MB80000000~8FFFFFFFEMIFCE1256MB90000000~9FFFFFFFEMIFCE2256MBA0000000~AFFFFFFFEMIFCE3256MBB0000000~BFFFFFFF保留1GBC0000000~FFFFFFFF6a存储器组描述组大小十六进制地址范围I2C0寄存器16KB01621x/671x/64x的片内2级存储器片内采用2级高速缓存结构,程序和数据拥有各自独立的高速缓存。L1P:片内的第1级程序cache L1D:片内的第1级数据cacheL2:程序和数据共享的第二级cache由各自的控制器控制McBSP1ORTMS320C6713Floating-PointDSPC67xTMDSP
CoreLevel1ProgramCache
4KBytesORMcBSP02TimersLevel2Cache/Memory256KBytesSRAMLevel1DataCache
4KBytesMcASP0ORHPIGPIOEMIFEnhancedDMAController(EDMA)16ChannelIIC1IIC0McASP1PLLPowerDownLogicBootConfiguration7a621x/671x/64x的片内2级存储器片内采用2级高速缓C6713的功能框图8aC6713的功能框图8aC6713CPUProgramfetchDatapathADatapathBL1programcache(L1P)controllerL1datacache(L1D)controllerCacheRAM4KBCacheRAM4KBProgramAddress(32bit)ProgramData(256b)DA1addressST1storedataST2storedataLD1loaddataLD2loaddataDA2address直接映射双路组相联L2cachecontrolleraddressdatasnoopaddressaddressdatadatasnoopaddressRAM64KBEDMA数据地址32bit;数据8,16,32bit9aC6713CPUProgramfetchDatapat直接映射cache:包含能缓存特定的高级存储器的唯一Cache行。这并不意味着该cache像它所缓存的存储器一样包含很多行,而是指一个存储器地址只能由专门的行来缓存。例如,一个存储器地址被缓存在直接映射cache位置A,清除cache之后再缓存,它还是只能被缓存在位置A。侦听snoop:是一种高级存储器查询低级存储器以确定两者是否含有同一地址的数据的方法。在两级存储器系统中,当数据从高级存储器中移出时,必须侦听低级存储器来确定逐出的地址是否与低级存储器中的同一地址不一致。相联(associative):是在每一组(set)中行帧的数目。行帧是Cache中保存缓存数据(一行)、联合寻址标记和行状态数据的一个位置。状态数据指明该行有效或重写。重写指的是Cache的一行保存的数据有效且被CPU修改过,但是这种修改没有在下一更高级内存中更新10a直接映射cache:包含能缓存特定的高级存储器的唯一CachC6713DSP的片内存储器配置内部存储器结构存储器总量(KB)程序存储器L1P(KB)数据存储器L1D(KB)Unified存储器L2(KB)哈佛结构(L1)Unified(L2)2644(Cache)(L1P)4(Cache)(L1D)64(映射/Cache)192(映射)注意:L1P和L1D相互独立,只能作为Cache被CPU访问L2是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可整体作为第2级Cache,或者是二者按比例的一种组合11aC6713DSP的片内存储器配置内部存储器结构存储器总量(K621x/671x片内存储器结构
片内cacheRAM结构2级缓存L1P容量4KBL1P结构直接映射L1PCPU访问时间单周期L1P行容量64BL1P存储体构造1256bit存储体L1P读缺失的分配L1P中分配一行L1P读命中的分配L1P中读取数据L1P写缺失的分配不支持L1P写L1P写命中的分配支持L1P写L1PL2申请2次存取/L1P行L1P协议读分配L1P存储器单周期RAML1PL2申请时CPU阻塞5周期L1D容量4KBL1D结构2路组联想L1DCPU访问时间单周期L1D行容量32BL1D置换策略2路LRU(最近很少使用)L1D存储体构造64bit宽度双口RAML1D读缺失的分配L1D中分配一行L1D读命中的分配L1D中读取数据L1D写缺失的分配L1D中不分配,数据送入L1DL1D写命中的分配数据送入L1D命中区L1DL2申请2次存取/L1D行L1D协议读分配L1DL1D申请时CPU阻塞4周期12a621x/671x片内存储器结构 片内cacheRAM结621x/671x片内存储器结构(续1)
L2容量64KBL2cache容量0/16/32/64KBL2SRAM容量64/48/32/16/0KBL2结构1/2/3/4路组联想L2行容量128BL2置换策略1/2/3/4路LRUL2存储体构造4*64bitbankL2-L1P协议一致性监听使无效L2-L1D协议一致性监听L2协议读/写分配L2读缺失的分配EDMA读数据,存入L2L2读命中的分配从L2读数据L2写缺失的分配EDMA读数据,存入L2中LRU的行,并用新数据修改L2写命中的分配数据写入命中的L2区域L2L1P读总线宽度256bitL2L1D读总线宽度128bitL1DL2写总线宽度32bitL1DL2驱逐总线宽度128bitL2EDMA读总线宽度64bitL2EDMA写总线宽度64bit13a621x/671x片内存储器结构(续1) L2容量64KBL分配(allocate):是在Cache中寻找一个位置来存储新的、未缓存的数据的过程缺失:所请求的存储器地址的数据不在cache时将发生cache缺失。当数据是从高一级cache获取时,缺失会导致CPU阻塞命中:所请求的存储器地址的数据刚好在cache时将发生cache命中。Cache命中可使CPU阻塞时间最小化,因为从cache中获取数据比从源存储器中快得多。读分配:仅对读缺失在Cache中分配空间。写缺失不会导致空间分配的发生,而是数据将被传递到高一级缓存中。LRU(leastrecentlyused):对于相联Cache,LRU分配是指选择哪一行帧来分配空间的方法。当寻址映射集中的全部行包含有效数据时,就分配哪个最近最少被读或被写的行来存储新的数据,或者说最近最多使用的行被保留14a分配(allocate):是在Cache中寻找一个位置来存储Cache高速缓冲存储器Cache存储器是一种加速内存或磁盘存取的装置。Cache工作原理:使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,Cache能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速。Cache和主存都分成块,每块由多个字节组成。Cache数据是主存数据的副本;Cache标记指出主存的哪些块存放在Cache中。由主存地址的低位部分作为Cache的地址访问Cache数据;用主存的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较,如果相等,说明访问的Cache数据有效,称Cache命中;如果不相等,说明访问的Cache数据无效,称Cache不命中,或访问失效。此时,需要访问主存,并且将包括此数据的一块信息装入Cache。如果Cache已经被装满,则需要根据某种替换算法,用此块信息替换Cache中原来的某块信息。15aCache高速缓冲存储器Cache存储器是一种加速内存或磁CPU内建L1cache与主机板上的L2cache硬盘的高速缓存L1cache与CPU同频率运作,比L2CACHE提供更快速的存取效能。16aCPU内建L1cache与主机板上的L2cache硬盘Cache通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签相同的存储块进行访问。Cache的基本结构如下:(1)直接映像Cache:地址仅需比较一次。在直接映像Cache中,由于每个主存储器的块在Cache中仅存在一个位置,因而把地址的比较次数减少为一次。其做法是,为Cache中的每个块位置分配一个索引字段(setindex),用Tag字段区分存放在Cache位置上的不同的块。单路直接映像把主存储器分成若干页,主存储器的每一页与Cache存储器的大小相同,匹配的主存储器的偏移量可以直接映像为Cache偏移量(offset)。17aCache通常由相联存储器实现。相联存储器的每一个存储块都具(2)组相联Cache使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块位置,因而可以增加命中率和系统效率。使用两组各自独立的Cache效能通常比只使用一组较佳,这称为2-WaysAssociate,同样的,使用四组Cache则称为4waysAssociate,但更多组的Cache会使得算法相对的复杂许多。18a(2)组相联Cache18aC6713的L1PDirectmappedCache;容量为4KB行大小为64B(2个取指包宽度),可以缓存64组(或128个取指包);直接映射给外存中某个地址的内容L1P的地址解析:CPU发出的32位取指地址分为(1)Tag段(12~31位):Cache中缓存数据的惟一标记(2)setindex段(6~11位):指令数据在Cache中映射位置的索引(3)Offset段(0~5位):确定取指包在Cache中字节偏移地址L1P的控制:用各寄存器实现(1)CSR(CPU控制状态寄存器)中的PCC字段:5~7位(2)L1PFBAR(L1PFlush基址寄存器):32位(3)L1PFWC(L1PFlush字计数寄存器):低16位(4)CCFG(Cache配置寄存器)CPU访问L1P过程(1)命中L1P:单周期返回需要的取指包(2)没有命中L1P,而命中L2:CPU将被阻塞5个周期(3)没有命中L2:CPU将被阻塞,直到L2从外部存储空间取得相应取指包,送入L1P,再送入CPU19aC6713的L1PDirectmappedCache;举例:32位程序地址为0x801ef183划分为:偏移量:0x3setindex:0x6Tag:0x801efCache模式CSR中的PCC值描述Cache使能000b/010b其他值直接映射cache保留L1P模式设置对一个地址的任何最初的程序获取都会导致cache缺失L1P中数据无效性的控制(1)写1到CCFG的IP位:在操作过程中会阻塞CPU对L1P的访问(2)向L1PFBAR写一个字地址(为起始地址)。向L1PFWC写无效字的个数:落在L1PFBAR~L1PFBAR+L1PFWC-1范围内的行为无效。不会阻塞任何正在进行的CPU访问20a举例:32位程序地址为0x801ef183划分为:CacheC6713的L1D2-waysetassociativecache;容量为4KB每一路组的行大小为32B,可以缓存64组L1D的地址解析:CPU发出的32位物理地址分为(1)Tag段(11~31位):该地址数据的一个惟一标记(2)setindex段(5~10位):确定该组在L1D中的位置(3)Word段(2~4位):选择组中相应的字(4)Offset段(0~1位):字偏移地址L1D的控制:用各寄存器实现(1)CSR(CPU控制状态寄存器)中的DCC字段(2)L1DFBAR(L1DFlush基址寄存器)(3)L1DFWC(L1DFlush字计数寄存器)(4)CCFG(Cache配置寄存器)CPU访问L1D过程(1)命中L1D:单周期返回需要的数据(2)没有命中L1D,而命中L2:CPU将被阻塞4个周期(3)没有命中L2:CPU将被阻塞,直到L2从外部存储空间取得相应数据,送入L1D,再送入CPU21aC6713的L1D2-waysetassociativC6713的L2容量为64KBL2由CCFG寄存器的L2Mode段配置为5种模式L2的控制:用各寄存器实现(1)CCFG(Cache配置寄存器)(2)L2FBAR(L2Flush基址寄存器)(3)L2FWC(L2Flush字计数寄存器)(4)L2CBAR(L2clean基址寄存器)(5)L2CWC(L2clean字计数寄存器)(6)L2FLUSH(L2Flush寄存器)(7)L2CLEAN(L2clean寄存器)16Kbytes16Kbytes16Kbytes16KbytesL2MemoryBlockbaseaddress00000000H00004000H00008000H0000C000H1114-waycache3-waycache¼SRAM2-waycache½SRAM1-waycache¾SRAMAllSRAM011010001000L2mode(CCFG的0~2位)22aC6713的L2容量为64KBL2的控制:用各寄存器实现1L2控制器处理的申请来自3个方向:L1P,L1D和EDMA。来自L1P的只有读请求,它们之间是1条256位宽的单向数据总线。L1D和L2间的接口包括一条L1D到L2的写总线和一条L2到L1D的读总线。L2和EDMA间是一条64位的读/写总线L1D的行大小是L1D和L2间总线宽度的2倍,因此每次L1D的读请求需要进行2次,L1D对L2的每次存取需要2个周期如果L2包含所需数据,L1D的读缺失将在4个周期后得到数据。L1P的读缺失将在5个周期后得到数据。L2SRAM分为多个存储体(Bank),只要数据在不同的bank中,就可以同时进行2个存取访问23aL2控制器处理的申请来自3个方向:L1P,L1D和EDMA。C6713片内Cache控制寄存器的地址分配寄存器地址(byte)寄存器助记符寄存器名01840000HCCFGCache配置寄存器01844000HL2FBARL2Flush基址寄存器01844004HL2FWCL2Flush字计数寄存器01844010HL2CBARL2clean基址寄存器01844014HL2CWCL2clean字计数寄存器01844020HL1PFBARL1PFlush基址寄存器01844024HL1PFWCL1PFlush字计数寄存器01844030HL1DFBARL1DFlush基址寄存器01844034HL1DFWCL1DFlush字计数寄存器01845000HL2FLUSHL1PFlush寄存器01845004HL2CLEANL2clean寄存器24aC6713片内Cache控制寄存器的地址分配寄存器地址(byC6713存储器属性寄存器的地址分配寄存器地址(byte)寄存器助记符寄存器名01848200HMAR0CE0:80000000H~80FFFFFFH01848204HMAR1CE0:81000000H~81FFFFFFH01848208HMAR2CE0:82000000H~82FFFFFFH0184820CHMAR3CE0:83000000H~83FFFFFFH01848240HMAR4CE1:90000000H~90FFFFFFH01848244HMAR5CE1:91000000H~91FFFFFFH01848248HMAR6CE1:92000000H~92FFFFFFH0184824CHMAR7CE1:93000000H~93FFFFFFH控制外存某一段空间的高速缓存使能寄存器地址(byte)寄存器助记符寄存器名01848280HMAR8CE2:A0000000H~A0FFFFFFH01848284HMAR9CE2:A1000000H~A1FFFFFFH01848288HMAR10CE2:A2000000H~A2FFFFFFH0184828CHMAR11CE2:A3000000H~A3FFFFFFH018482C0HMAR12CE3:B0000000H~B0FFFFFFH018482C4HMAR13CE3:B1000000H~B1FFFFFFH018482C8HMAR14CE3:B2000000H~B2FFFFFFH018482CCHMAR15CE3:B3000000H~B3FFFFFFH25aC6713存储器属性寄存器的地址分配寄存器地址(byte)寄McBSP1ORTMS320C6713Floating-PointDSPC67xTMDSP
CoreLevel1ProgramCache
4KBytesORMcBSP02TimersLevel2Cache/Memory256KBytesSRAMLevel1DataCache
4KBytesMcASP0ORHPIGPIOEMIFEnhancedDMAController(EDMA)16ChannelIIC1IIC0McASP1SDRAM/SBSRAM/异步存储器(SRAM、Flash等)26aMcBSP1ORTMS320C6713Floating-PC6713芯片的EMIF接口总线宽度32bit存储空间数目4(CE0~CE3)可寻址空间(MB)512同步时钟独立的ECLKIN访问支持的字长8/16/32bitCE1空间支持的存储类型所有类型存储器控制信号所有控制信号复用系统允许同时拥有的同步存储器SDRAM和SBSRAM增补的寄存器SDEXTROM/Flash异步存储器访问PipelineSBSRAM访问特点:(1)系统需要提供一个外部时钟。该外部时钟由ECLKIN输入后产生EMIF接口的时钟信号ECLKOUT.(2)SBSRAM、SDRAM、异步接口的信号合并复用。系统中允许同时具有这3种类型的存储器(3)CE1空间支持所有的3种存储器接口(4)同步存储器接口提供4word突发访问模式(5)SDRAM接口更加灵活,支持更广泛的SDRAM配置27aC6713芯片的EMIF接口总线宽度32bit存储空间数目C6713EMIF接口特点1.数据总线宽度:32bit2.存储空间:4个(CE0~CE3)3.每个存储空间寻址范围:256MB4.时钟:外部ECLKIN引脚输入或内部SYSCLK3提供,最高时钟频率为100MHz5.可访问的数据宽度:8/16/32bit6.支持的存储器类型:SDRAM/SBSRAM/异步存储器(SRAM、Flash等)7.各类存储器控制信号:复用引脚,自动切换28aC6713EMIF接口特点28a29a29a30a30a31a31a字节定位(1)C621x/C671x片内数据的存取是32位,访问片外的8/16bit数据:EMIF自动完成数据打包和解包处理。例:向外部8位存储器写1个32bit数据EMIF自动将数据解包为4个8bit,依次写入目的地址N、N+1、N+2和N+3(2)Littleendian:对齐EMIF的最低有效位Bigendian:对齐EMIF的最高有效位(3)Endian模式设置:由复位时引脚HD8的状态决定。HD8=0为Bigendian;HD8=1为littleendian;(4)对SEED-6713在缺省情况(跳针JP11开路)下,工作在littleendian模式,JP11短路时,工作在Bigendian模式32a字节定位32aEMIF读/写时序的控制由其片上的存储映射的寄存器控制33aEMIF读/写时序的控制由其片上的存储映射的寄存器控制33aRsv15R,+0Rsv14RW,+0Rsv13RW,+1Rsv12RW,+1BUSREQ11R,+0ARDY10R,+xHOLD9R,+xHOLDA8R,+xNoHOLD7RW,+0Rsv6R,+1Rsv5R,+1CLK1EN4RW,+1CLK2EN3RW,+1Rsv2R,+0Rsv1R,+0Rsv0R,+0GBLCTL寄存器:完成对整个片外存储空间的公共参数的设置Writesetup3128RW,+1111Writestrobe2722RW,+111111WriteHold2120RW,+11Readsetup1916RW,+1111TA1514R,+11ReadStrobe138RW,+111111MTYPE74RW,+00101WriteholdMSB3RW,+0Readhold20RW,+011CExCTL寄存器:控制相应存储空间的存储类型和接口时序;x=0~334aRsv15R,+0Rsv14RW,+0Rsv13RW,+1RSDCTL寄存器Reserved3126R,+100000XRFR2524RW,+00Counter2312R,+010111011100PERIOD110RW,+010111011100Rsv31R,+0SDBSZ30RW,+0SDRSZ2928RW,+00REFN25INIT24W,+1TRCD23RW,+0100TRP19RW,+1000SDCSZ2726RW,+00RW,+12016TRC1512RW,+1111Reserved110R,+0000000000001SLFRFRRW,+0SDTIM寄存器Rsvd31R,+0WR2RD20RW,+1WR2DEAC19RW,+0118WR2WR17RW,+1R2WDQM16RD2WR14RW,+101RD2DEAC12RW,+1110RD2RD9RW,+1THZP8RW,+10TWR6RW,+01TRRD4RW,+1TRAS1RW,+111TCL021RW,+111511753RW,+1SDEXT寄存器35aSDCTL寄存器Reserved3126R,+100000EMIF的具体使用通过EMIF外扩多种类型的存储器、外设和存储扩展总线,如SDRAM、SBSRAM、Flash、UART、USB、模板控制/状态寄存器和存储器扩展总线。它们分别映射到EMIF的4个存储空间CE[3:0]中同步接口设计特点:(1)同步访问:读写操作需要时钟类型:SDRAM(synchronousdynamicRAM)SBSRAM(synchronousburststaticRAM)(2)动态存储:芯片需要定时更新36aEMIF的具体使用通过EMIF外扩多种类型的存储器、外设和存SDRAM芯片简介:以ISSI公司的IS42S16400芯片为例64Mb(8MB)的16位高速SDRAM芯片。它的同步接口和完全流水线的内部结构使其拥有极大的数据传输速率,可以工作在高达133MHz时钟频率下,刷新频率每64ms为4096次。该SDRAM芯片内部有4个存储体(bank),通过行、列地址分时复用系统地址总线,对不同存储体内不同页面的具体存储单元进行读写访问寻址。在进行读操作之间,必须预先激活SDRAM内对应的存储体,并选择存储器的某一行,然后送入列地址读取需要的数据。从输出列地址到SDRAM返回相应数据之间存在一个存取延迟。如果访问新的页面,则先需要关闭所有的存储体,否则已打开的页面将一直有效。在写操作之前,由于已经预先激活了有关的行地址,因此可以在输出列地址的同时输出数据,没有延迟。42S16400提供自刷新模式的设置,可以使芯片运行在低功耗的状态下,从而大大减少嵌入式系统的功率消耗。
37aSDRAM芯片简介:以ISSI公司的IS42S16400芯片EMIF支持对SDRAM的直接接口(1)EMIF可以灵活设置SDRAM地址的结构参数:列地址数目(页的大小)、行地址数目(每个bank中页的数量)、存储体的数量(打开页面数量)(2)最多能够同时激活SDRAM中4个不同的页,它们可以集中在一个CE空间中,也可以跨越多个CE空间,一个存储体只能打开一页EMIFECLKIN/CEnECLKOUT/SDRAS/SDCAS/SDWE/BE[3:0]EA[13]EA[12]EA[11:2]ED[31:0]16MbitSDRAM/CSCLK/RAS/WE/CASCKEVccDQM[3:0]A[11]A[10]A[9:0]D[31:0]外部时钟38aEMIF支持对SDRAM的直接接口(1)EMIF可以灵活设C621x/C671xSDRAM信号描述EMIF信号SDRAM信号SDRAM功能描述/BE[3:0]DQM[3:0]输入/输出缓冲控制信号。高电平时,使能写操作,并在读期间将输出置于高阻态。在读时,具有一个2时钟周期的等待,而在写时等待周期为0。DQM引脚可以用作位选通脉冲,并连接到/BE输出/CE[3:0]/CS片选和命令使能。在命令被锁存到SDRAM时,/CS必须是有效的(低电平)。CE1空间支持所有的3种存储器接口ECLKOUTCLKSDRAM时钟输入。C6713可在ECLKIN或内部SYSCLK3(使用PLL输出作为参考时钟的可变成的分频时钟)下运行。EA[12]A[10]在ACTV命令期间用作一个行地址位/SDCAS/CAS列地址选通信号和命令输入。在CLK的上升边沿被锁存,以确定当前的操作。在时钟边沿期间,仅仅在/CS有效时才有效/SDRAS/RAS行地址选通信号和命令输入。在CLK的上升边沿被锁存,以确定当前的操作。在时钟边沿期间,仅仅在/CS有效时才有效/SDWE/WE写选通信号和命令输入。在CLK的上升边沿被锁存,以确定当前的操作。仅仅在/CS有效时才有效CKE时钟使能,被连接到高电平39aC621x/C671xSDRAM信号描述EMIF信号SDC621x/C671x支持的SDRAM配置SDRAMSizeBankWidthDepthMaxAddressableDevices/CEspace(MB)ColumnRowBankPre-addressaddressselectcharge16Mbit242M816MSDRAMA9-A0A10-A0A11A10EMIFEA11-EA2EA12-EA2EA13EA12281M48MSDRAMA8-A0A10-A0A11A10EMIFEA10-EA2EA12-EA2EA13EA12216512K24MSDRAMA7-A0A10-A0A11A10EMIFEA9-EA2EA12-EA2EA13EA1264Mbit444M864MSDRAMA9-A0A11-A0A13-A12A10EMIFEA11-EA2EA13-EA2EA15-EA14EA12482M432MSDRAMA8-A0A11-A0A13-A12A10EMIFEA10-EA2EA13-EA2EA15-EA14EA124161M216MSDRAMA7-A0A11-A0A13-A12A10EMIFEA9-EA2EA12-EA2EA15-EA14EA12432512K18MSDRAMA7-A0A10-A0A12-A11A10EMIFEA9-EA2EA12-EA2EA15-EA14EA1240aC621x/C671x支持的SDRAM配置SDRAMBankC621x/C671x支持的SDRAM配置(续)SDRAMSizeBankWidthDepthMaxAddressableDevices/CEspace(MB)ColumnRowBankPre-addressaddressselectcharge128Mbit484M464MSDRAMA9-A0A11-A0A13-A12A10EMIFEA11-EA2EA13-EA2EA15-EA14EA124162M232MSDRAMA8-A0A11-A0A13-A12A10EMIFEA10-EA2EA13-EA2EA15-EA14EA124321M116MSDRAMA7-A0A11-A0A13-A12A10EMIFEA9-EA2EA13-EA2EA15-EA14EA12256Mbit4816M4128MSDRAMA9-A0A12-A0A14-A13A10EMIFEA11-EA2EA14-EA2EA16-EA15EA124164M264MSDRAMA8-A0A12-A0A14-A13A10EMIFEA10-EA2EA14-EA2EA16-EA15EA1241aC621x/C671x支持的SDRAM配置(续)SDRAMBC621x/C671x的SDRAM接口接口宽度32,16,8bitSDSRAM时钟ECLKOUT用于SDRAM时序参数的寄存器SDCTL、SDTIM、SDEXTSDRAM控制信号与SBSRAM、异步接口控制信号复用打开的页面数任意CE空间打开4个页面可编程的SDRAM配置列、行、和存储器组大小突发访问模式支持使用4字突发执行SDRAM突发模式后台刷新否预加载引脚EA[12]SDRAM自刷新模式否页面替换随机42aC621x/C671x的SDRAM接口接口宽度32,16,EMIF支持的SDRAM命令命令功能DCABDeactivate,关闭所有的存储体(bank),也称为prechargeDEAC关闭单个存储体ACTV激活所有的存储体,并选择存储器的某一行READ输入起始的列地址,并开始读操作WRT输入起始的列地址,并开始写操作MRSModeregisterset,设置SDRAM模式寄存器REFRRefresh,使用内部地址自动进行周期性刷新43aEMIF支持的SDRAM命令命令功能DCABDeactivaSDRAM的控制命令的真值表SDRAM32-bitEMIFCKE/CS/RAS/CAS/WEA[19:16]A[15:11]A10A[9:0]SDCKE/CE/SDRAS/SDCAS/SDWEEA[21:18]EA[17:13]EA12EA[11:2]ACTVHLLHH0001bBank/RowRowRowREADHLHLHXBank/ColLColWRTHLHLLXBank/ColLColMRSHLLLLLL/modemodemodeDCABHLLHLXXHXDEACHLLHLXBank/XLXREFRHLLLHXXXXH=high=1b;L=Low=0b;Bank=存储器组地址;Row=行地址;col=column=列地址X=前一次的值;Mode=模式选择44aSDRAM的控制命令的真值表SDRAMCKE/CSSDRAM初始化复位后,任何CE空间都不会配置为SDRAM.在设置INIT位为1而执行SDRAM初始化之前,CPU应该初始化所有CE空间寄存器(CExCTL)和SDRAM扩展寄存器(SDCTL、SDTIM、SDETX)如果系统不存在SDRAM,则不应该写1到INIT位当某个CE空间配置为SDRAM空间后,必须首先进行初始化。用户不需要控制初始化的每一个步骤,只需要向EMIFSDCTL寄存器的INIT位写1,申请对SDRAM作初始化。然后,EMIF就会自动完成所需要的各步操作。初始化操作不能在进行SDRAM存取过程中进行。当INIT位被置1后,EMIF执行如下步骤: (1)发送一条DCAB命令到所有配置为SDRAM的CE空间 (2)发送8条刷新命令 (3)发送一条MRS命令到所有配置为SDRAM的CE空间45aSDRAM初始化复位后,任何CE空间都不会配置为SDRAM.SDRAM监视页面边界SDRAM是一个分页的存储器,因此EMIF的SDRAM控制器监测访问SDRAM时行地址的情况,避免访问时发生行越界。为了完成这个任务,EMIF在内部有四个页面寄存器,自动保存当前打开的行地址,然后与后续存取访问的地址进行比较。对于所有的C6000器件,终止当前的访问不是一个强制有效SDRAM行被关闭的条件。EMIF会让有效行打开直到需要关闭它。这样会减少有效和无效反复变化的开销,并允许接口完全用于存储器访问的地址定位一旦发现存取访问发生了页面越界,EMIF会自动执行DCAB操作,然后再开始新的行访问46aSDRAM监视页面边界SDRAM是一个分页的存储器,因此EMSDRAM刷新模式SDRAM控制寄存器(SDCTL)的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命令前后,页面信息总是无效的,因此一个刷新周期总会产生一个页面信息丢失。47aSDRAM刷新模式SDRAM控制寄存器(SDCTL)的RFECLKOUT/CEnREFR/BE[3:0]EA[15:2]EA[12]/SDRAS/SDCAS/SDWE一个SDRAM刷新的时序图48aECLKOUT/CEnREFR/BE[3:0]EA[15:2SDRAM有效页关闭-DCAB命令(关闭所有的存储体)DCAB命令在一次硬件复位后或当SDRAM控制寄存器(SDCTL)的INIT=1时执行SDRAM总是在一次REFR和MRS命令之前要求这个周期当一个页面边界被超越时,会声明一个DCAB命令。在执行DCAB命令期间,EA[12]被驱动为高电平,以确保所有SDRAM有效组被关闭ECLKOUT/CEnDCAB/BE[3:0]EA[15:2]EA[12]/SDRAS/SDCAS/SDWE49aSDRAM有效页关闭-DCAB命令(关闭所有的存储体)DCASDRAM有效页关闭-DEAC命令(关闭单个存储体)DEAC命令会关闭存储器组选择信号所指定的单个SDRAM页面当一个页面边界被超越时,DEAC命令被执行用来关闭所打开的页面。EMIF仍然支持DCAB命令,以便在REFR和MRS命令之前关闭所有页面ECLKOUT/CEnDEAC/BE[3:0]EA[21:13]EA[12]/SDRAS/SDCAS/SDWEBankEA[11:2]50aSDRAM有效页关闭-DEAC命令(关闭单个存储体)DEACSDRAM激活命令(ACTV)在读或写新的SDRAM行之前,EMIF会自动执行ACTV命令ACTV命令会打开一页存储器,允许将来的最小的等待时间的读写访问EMIF在发布一条ACTV命令时,在声明一条读或写命令之前,将会有一个tRCD的延迟ECLKOUT/CEn/BE[3:0]EA[15:0]/SDRAS/SDCAS/SDWEEA[12]ACTV写写写ED[31:0]BE1BE2BE3EA1EA2EA3D1D2D3行地址存储器组激活/行地址TRCD=3EMIF周期51aSDRAM激活命令(ACTV)在读或写新的SDRAM行之前,缺省配置:SDRAM容量为2M32位,此时焊接电阻R22和R24,不焊接R23和R25最大配置:SDRAM容量为4M32位,此时焊接电阻R23和R25,不焊接R22和R24SDRAM映射到C6713的CE0存储空间,工作频率为100MHz,支持8/16/32位访问,字节地址为80000000~80FFFFFF配置:CE0CTL寄存器将CE0空间配置为32位SDRAM存储器接口SDCTL、SDTIM、SDEXT寄存器设置SDRAM的读/写时序和参数SEED6713的SDRAM的接口52a缺省配置:SDRAM容量为2M32位,此时焊接电阻R22和EMIF接口信号与SDRAM配置SDRAM被映射到C6713的/CE0存储空间,工作频率为100MHz,支持8/16/32位访问,字节地址为80000000~80FFFFFF.在对SDRAM进行读/写访问前,需通过EMIF的CE0控制寄存器CE0CTL将CE0空间配置为32位SDRAM存储器接口,及通过SDCTL、SDTIM、SDEXT等寄存器设置SDRAM的读写时序和参数53aEMIF接口信号与SDRAM配置SDRAM被映射到C6713SBSRAM接口SBSRAM:synchronousBurstStaticRAM同步突发静态存储器优点:支持同步突发访问,读写速度高,属于静态RAM,不需要刷新类型:flowthrough结构和pipeline结构(工业标准)SBSRAM接口:C621x/C671x接口宽度SBSRAM时钟SBSRAM控制信号突发访问模式可编程的延迟31,16,8bitECLKOUT与SDRAM、异步控制信号使用支持,4wordburst不支持54aSBSRAM接口SBSRAM:synchronousBuC6713的SBSRAM接口EMIF信号SBSRAM信号SBSRAM功能/SSADS/ADSC同步地址触发,使得新的外部地址被片内锁存。如果/CS有效,则进行读/写操作/SSOE/OE输出使能,使能数据I/O驱动/SSWE/WE写使能,允许写操作ECLKOUTCLKSBSRAM时钟,频率为1或1/2CPU时钟频率55aC6713的SBSRAM接口EMSBSRAM被映射到C6713的/CE2存储空间,工作频率为100MHz,支持8/16/32位访问,字节地址为A0000000~A0FFFFFF.SBSRAM受模板控制寄存器DECCTL中的SBEN位(D4位)控制,当SBEN=0时,SBSRAM无效。当SBEN=1时,SBSRAM有效。复位后,SBEN=0在对SBSRAM进行读/写访问前,需通过EMIF的/CE2控制寄存器CE2CTL将/CE2空间配置为32位SBSRAM存储器接口56aSBSRAM被映射到C6713的/CE2存储空间,工作频率第五章C6000系列DSPs的集成外设与硬件开发57a第五章C6000系列DSPs的集成外设与硬件开发1a(1)片内程序存储器和数据存储器(2)外部存储器接口(EMIF)的设计(3)直接存储器访问(DMA)和扩展的直接存储器访问(EDMA)(4)多通道缓冲串口(McBSP)(5)主机口(HPI)和PCI接口(6)芯片的设置和其他片内集成外设58a(1)片内程序存储器和数据存储器2a片内的集成外设C6713两级内部存储器片内存储器总容量264KB增强的DMA(EDMA)控制器有主机接口(HPI)16bit1外部存储器接口(EMIF)32bit1BOOT设置有多通道缓冲串口(McBSP)2McASP2中断选择器有32bit定时器2省电逻辑(Power-down)有GPIO有内部集成的电路模块I2C总线2组锁相环(PLL)控制器有TMS320C6713–225MHzAudioDSPMcBSP1ORTMS320C6713Floating-PointDSPC67xTMDSP
CoreLevel1ProgramCache
4KBytesORMcBSP02TimersLevel2Cache/Memory256KBytesSRAMLevel1DataCache
4KBytesMcASP0ORHPIGPIOEMIFEnhancedDMAController(EDMA)16ChannelIIC1IIC0McASP1PLLPowerDownLogicBootConfiguration59a片内的集成外设C6713两级内部存储器片内存储器总容量264存储器映射C6000DSP系统通过EMIF(外部存储器接口)可以使用外部存储器。L1P、L1D、L2分别由各自的控制器控制C6000DSP总的存储地址范围为4GB(相应使用32位内部地址表示00000000~FFFFFFFF)。每种存储器映射都被分为片内程序存储器、片内数据存储器、片外存储器、片内外设空间C6211/C6711/C6713只有1种存储器映射方式:片内存储器始终位于地址0处,可以当作程序或数据存储空间C6211/C6711/C6713的存储器映射方式只需2位进行设置,即通过对主机口的HD[4:3]设置引导方式,利用电阻上拉或下拉设置引导方式60a存储器映射C6000DSP系统通过EMIF(外部存储器接口)TMS320C6713存储器映射存储器组描述组大小十六进制地址范围内部RAM(L2)192KB00000000~0002FFFF内部RAM/Cache64KB00030000~0003FFFF保留256KB~24MB00040000~017FFFFFEMIF寄存器256KB01800000~0183FFFFL2寄存器128KB01840000~0185FFFF保留128KB01860000~0187FFFFHPI寄存器256KB01880000~018BFFFFMcBSP0寄存器256KB018C0000~018FFFFFMcBSP1寄存器256KB01900000~0193FFFF存储器组描述组大小十六进制地址范围Timer0寄存器256KB01940000~0197FFFFTimer1寄存器256KB01980000~019BFFFF中断向量寄存器512B019C0000~019C01FF配置寄存器4B019C0200~019C0203保留516B~256KB019C0204~019FFFFFEDMARAM和EDMA寄存器256KB01A00000~01A3FFFF保留768KB01A40000~01AFFFFFGPIO寄存器16KB01B00000~01B03FFF保留240KB01B04000~01B3FFFF61aTMS320C6713存储器映射存储器组描述组大小十六进制地存储器组描述组大小十六进制地址范围I2C0寄存器16KB01B40000~01B43FFFI2C1寄存器16KB01B44000~01B47FFF保留16KB01B48000~01B4FFFFMcASP0寄存器16KB01B4C000~01B4FFFFMcASP1寄存器16KB01B50000~01B53FFF保留160KB01B54000~01B7BFFFPLL寄存器8KB01B7C000~01B7DFFF保留520KB~4MB01B7E000~01FFFFFFQDMA寄存器52B02000000~02000033保留52B~16MB02000034~02FFFFFF保留720MB03000000~2FFFFFFF存储器组描述组大小十六进制地址范围McBSP0数据64MB30000000~33FFFFFFMcBSP1数据64MB34000000~37FFFFFF保留64MB38000000~3BFFFFFFMcASP0数据1MB3C000000~3C0FFFFFMcASP1数据1MB3C100000~3C1FFFFF保留64MB~1GB3C200000~7FFFFFFFEMIFCE0256MB80000000~8FFFFFFFEMIFCE1256MB90000000~9FFFFFFFEMIFCE2256MBA0000000~AFFFFFFFEMIFCE3256MBB0000000~BFFFFFFF保留1GBC0000000~FFFFFFFF62a存储器组描述组大小十六进制地址范围I2C0寄存器16KB01621x/671x/64x的片内2级存储器片内采用2级高速缓存结构,程序和数据拥有各自独立的高速缓存。L1P:片内的第1级程序cache L1D:片内的第1级数据cacheL2:程序和数据共享的第二级cache由各自的控制器控制McBSP1ORTMS320C6713Floating-PointDSPC67xTMDSP
CoreLevel1ProgramCache
4KBytesORMcBSP02TimersLevel2Cache/Memory256KBytesSRAMLevel1DataCache
4KBytesMcASP0ORHPIGPIOEMIFEnhancedDMAController(EDMA)16ChannelIIC1IIC0McASP1PLLPowerDownLogicBootConfiguration63a621x/671x/64x的片内2级存储器片内采用2级高速缓C6713的功能框图64aC6713的功能框图8aC6713CPUProgramfetchDatapathADatapathBL1programcache(L1P)controllerL1datacache(L1D)controllerCacheRAM4KBCacheRAM4KBProgramAddress(32bit)ProgramData(256b)DA1addressST1storedataST2storedataLD1loaddataLD2loaddataDA2address直接映射双路组相联L2cachecontrolleraddressdatasnoopaddressaddressdatadatasnoopaddressRAM64KBEDMA数据地址32bit;数据8,16,32bit65aC6713CPUProgramfetchDatapat直接映射cache:包含能缓存特定的高级存储器的唯一Cache行。这并不意味着该cache像它所缓存的存储器一样包含很多行,而是指一个存储器地址只能由专门的行来缓存。例如,一个存储器地址被缓存在直接映射cache位置A,清除cache之后再缓存,它还是只能被缓存在位置A。侦听snoop:是一种高级存储器查询低级存储器以确定两者是否含有同一地址的数据的方法。在两级存储器系统中,当数据从高级存储器中移出时,必须侦听低级存储器来确定逐出的地址是否与低级存储器中的同一地址不一致。相联(associative):是在每一组(set)中行帧的数目。行帧是Cache中保存缓存数据(一行)、联合寻址标记和行状态数据的一个位置。状态数据指明该行有效或重写。重写指的是Cache的一行保存的数据有效且被CPU修改过,但是这种修改没有在下一更高级内存中更新66a直接映射cache:包含能缓存特定的高级存储器的唯一CachC6713DSP的片内存储器配置内部存储器结构存储器总量(KB)程序存储器L1P(KB)数据存储器L1D(KB)Unified存储器L2(KB)哈佛结构(L1)Unified(L2)2644(Cache)(L1P)4(Cache)(L1D)64(映射/Cache)192(映射)注意:L1P和L1D相互独立,只能作为Cache被CPU访问L2是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可整体作为第2级Cache,或者是二者按比例的一种组合67aC6713DSP的片内存储器配置内部存储器结构存储器总量(K621x/671x片内存储器结构
片内cacheRAM结构2级缓存L1P容量4KBL1P结构直接映射L1PCPU访问时间单周期L1P行容量64BL1P存储体构造1256bit存储体L1P读缺失的分配L1P中分配一行L1P读命中的分配L1P中读取数据L1P写缺失的分配不支持L1P写L1P写命中的分配支持L1P写L1PL2申请2次存取/L1P行L1P协议读分配L1P存储器单周期RAML1PL2申请时CPU阻塞5周期L1D容量4KBL1D结构2路组联想L1DCPU访问时间单周期L1D行容量32BL1D置换策略2路LRU(最近很少使用)L1D存储体构造64bit宽度双口RAML1D读缺失的分配L1D中分配一行L1D读命中的分配L1D中读取数据L1D写缺失的分配L1D中不分配,数据送入L1DL1D写命中的分配数据送入L1D命中区L1DL2申请2次存取/L1D行L1D协议读分配L1DL1D申请时CPU阻塞4周期68a621x/671x片内存储器结构 片内cacheRAM结621x/671x片内存储器结构(续1)
L2容量64KBL2cache容量0/16/32/64KBL2SRAM容量64/48/32/16/0KBL2结构1/2/3/4路组联想L2行容量128BL2置换策略1/2/3/4路LRUL2存储体构造4*64bitbankL2-L1P协议一致性监听使无效L2-L1D协议一致性监听L2协议读/写分配L2读缺失的分配EDMA读数据,存入L2L2读命中的分配从L2读数据L2写缺失的分配EDMA读数据,存入L2中LRU的行,并用新数据修改L2写命中的分配数据写入命中的L2区域L2L1P读总线宽度256bitL2L1D读总线宽度128bitL1DL2写总线宽度32bitL1DL2驱逐总线宽度128bitL2EDMA读总线宽度64bitL2EDMA写总线宽度64bit69a621x/671x片内存储器结构(续1) L2容量64KBL分配(allocate):是在Cache中寻找一个位置来存储新的、未缓存的数据的过程缺失:所请求的存储器地址的数据不在cache时将发生cache缺失。当数据是从高一级cache获取时,缺失会导致CPU阻塞命中:所请求的存储器地址的数据刚好在cache时将发生cache命中。Cache命中可使CPU阻塞时间最小化,因为从cache中获取数据比从源存储器中快得多。读分配:仅对读缺失在Cache中分配空间。写缺失不会导致空间分配的发生,而是数据将被传递到高一级缓存中。LRU(leastrecentlyused):对于相联Cache,LRU分配是指选择哪一行帧来分配空间的方法。当寻址映射集中的全部行包含有效数据时,就分配哪个最近最少被读或被写的行来存储新的数据,或者说最近最多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 插画职业规划课程设计
- 电压和电压表课程设计
- 接纳自我课程设计
- 混凝土管方包施工方案
- 互联网产业承包合同书范本
- 产学研合作研究合同
- 企业并购整合入股分红协议书
- 个人光伏贷款还款合同
- 人力资源续签协议书
- 二手房屋抵押贷款合同
- 《SQL基础知识培训》课件
- 2017版高中物理新课标解读
- 通过游戏培养幼儿的社交能力
- 建筑常用玻璃入门知识
- 癌症晚期护理查房课件
- 幼儿园公开课:中班语言《跑跑镇》有声动态课件
- 小学道德与法治人教部编版(新)五年级下册(2020)-红军不怕远征难1.0-公开课
- 医院人事工作制度-劳务派遣人员管理办法全套
- 排污许可证申请与核发技术规范 酒、饮料制造工业(HJ 1028-2019)
- 守株待兔-幼儿成语故事
- 消防操作考核表
评论
0/150
提交评论