《系列DSPs的集成外设.ppt》由会员分享,可在线阅读,更多相关《系列DSPs的集成外设.ppt(56页珍藏版)》请在三一办公上搜索。
1、1,第五章 C6000系列DSPs的集成外设与硬件开发,2,(1)片内程序存储器和数据存储器(2)外部存储器接口(EMIF)的设计(3)直接存储器访问(DMA)和扩展的直接存储器访问(EDMA)(4)多通道缓冲串口(McBSP)(5)主机口(HPI)和PCI接口(6)芯片的设置和其他片内集成外设,3,TMS320C6713 225MHz Audio DSP,4,存储器映射,C6000DSP系统通过EMIF(外部存储器接口)可以使用外部存储器。L1P、L1D、L2分别由各自的控制器控制C6000DSP总的存储地址范围为4GB(相应使用32位内部地址表示0000 0000FFFF FFFF)。每种
2、存储器映射都被分为片内程序存储器、片内数据存储器、片外存储器、片内外设空间C6211/C6711/C6713只有1种存储器映射方式:片内存储器始终位于地址0处,可以当作程序或数据存储空间C6211/C6711/C6713的存储器映射方式只需2位进行设置,即通过对主机口的HD4:3设置引导方式,利用电阻上拉或下拉设置引导方式,5,TMS320C6713存储器映射,6,7,621x/671x/64x的片内2级存储器,片内采用2级高速缓存结构,程序和数据拥有各自独立的高速缓存。L1P:片内的第1级程序cacheL1D:片内的第1级数据cache L2:程序和数据共享的第二级cache由各自的控制器控
3、制,8,C6713的功能框图,9,数据地址32bit;数据8,16,32bit,10,直接映射cache:包含能缓存特定的高级存储器的唯一Cache行。这并不意味着该cache 像它所缓存的存储器一样包含很多行,而是指一个存储器地址只能由专门的行来缓存。例如,一个存储器地址被缓存在直接映射cache位置A,清除cache之后再缓存,它还是只能被缓存在位置A。,侦听snoop:是一种高级存储器查询低级存储器以确定两者是否含有同一地址的数据的方法。在两级存储器系统中,当数据从高级存储器中移出时,必须侦听低级存储器来确定逐出的地址是否与低级存储器中的同一地址不一致。,相联(associative):
4、是在每一组(set)中行帧的数目。行帧是Cache 中保存缓存数据(一行)、联合寻址标记和行状态数据的一个位置。状态数据指明该行有效或重写。重写指的是Cache的一行保存的数据有效且被CPU修改过,但是这种修改没有在下一更高级内存中更新,11,C6713DSP的片内存储器配置,注意:L1P和L1D相互独立,只能作为Cache被CPU访问L2是一个统一的程序/数据空间,可以整体作为SRAM映射到存储空间,也可整体作为第2级Cache,或者是二者按比例的一种组合,12,621x/671x片内存储器结构,13,621x/671x片内存储器结构(续1),14,分配(allocate):是在Cache中
5、寻找一个位置来存储新的、未缓存的数据的过程,缺失:所请求的存储器地址的数据不在cache时将发生cache 缺失。当数据是从高一级cache获取时,缺失会导致CPU阻塞,命中:所请求的存储器地址的数据刚好在cache时将发生cache 命中。Cache命中可使CPU阻塞时间最小化,因为从cache中获取数据比从源存储器中快得多。,读分配:仅对读缺失在Cache中分配空间。写缺失不会导致空间分配的发生,而是数据将被传递到高一级缓存中。,LRU(least recently used):对于相联Cache,LRU分配是指选择哪一行帧来分配空间的方法。当寻址映射集中的全部行包含有效数据时,就分配哪个
6、最近最少被读或被写的行来存储新的数据,或者说最近最多使用的行被保留,15,Cache 高速缓冲存储器,Cache存储器是一种加速内存或磁盘存取的装置。Cache工作原理:使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,Cache能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速。Cache和主存都分成块,每块由多个字节组成。Cache数据是主存数据的副本;Cache标记指出主存的哪些块存放在Cache中。由主存地址的低位部分作为Cache的地址访问Cache数据;用主存的块号字段访问Cache标记,并将取出的标记和主存地址
7、的标记字段相比较,如果相等,说明访问的Cache数据有效,称Cache命中;如果不相等,说明访问的Cache数据无效,称Cache不命中,或访问失效。此时,需要访问主存,并且将包括此数据的一块信息装入Cache。如果Cache已经被装满,则需要根据某种替换算法,用此块信息替换Cache中原来的某块信息。,16,CPU内建L1 cache与主机板上的L2 cache,硬盘的高速缓存,L1cache与 CPU 同频率运作,比 L2 CACHE提供更快速的存取效能。,17,Cache通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每
8、一个标签同时进行比较,从而对标签相同的存储块进行访问。Cache的基本结构如下:(1)直接映像Cache:地址仅需比较一次。在直接映像Cache中,由于每个主存储器的块在Cache中仅存在一个位置,因而把地址的比较次数减少为一次。其做法是,为Cache中的每个块位置分配一个索引字段(set index),用Tag字段区分存放在Cache位置上的不同的块。单路直接映像把主存储器分成若干页,主存储器的每一页与Cache存储器的大小相同,匹配的主存储器的偏移量可以直接映像为Cache偏移量(offset)。,18,(2)组相联Cache使用了几组直接映像的块,对于某一个给定的索引号,可以允许有几个块
9、位置,因而可以增加命中率和系统效率。使用两组各自独立的Cache效能通常比只使用一组较佳,这称为 2-Ways Associate,同样的,使用四组Cache则称为4ways Associate,但更多组的Cache会使得算法相对的复杂许多。,19,C6713 的L1P,Direct mapped Cache;容量为4KB行大小为64B(2个取指包宽度),可以缓存64组(或128个取指包);直接映射给外存中某个地址的内容L1P的地址解析:CPU发出的32位取指地址分为(1)Tag段(1231位):Cache中缓存数据的惟一标记(2)set index 段(611位):指令数据在Cache中映射
10、位置的索引(3)Offset段(05位):确定取指包在Cache中字节偏移地址L1P的控制:用各寄存器实现(1)CSR(CPU控制状态寄存器)中的PCC字段:57位(2)L1PFBAR(L1P Flush基址寄存器):32位(3)L1PFWC(L1P Flush字计数寄存器):低16位(4)CCFG(Cache配置寄存器)CPU访问L1P过程(1)命中L1P:单周期返回需要的取指包(2)没有命中L1P,而命中L2:CPU将被阻塞5个周期(3)没有命中L2:CPU将被阻塞,直到L2从外部存储空间取得相应取指包,送入L1P,再送入CPU,20,举例:32位程序地址为0 x801ef183划分为:偏
11、移量:0 x3set index:0 x6Tag:0 x801ef,L1P模式设置,对一个地址的任何最初的程序获取都会导致cache缺失,L1P中数据无效性的控制(1)写1到CCFG的IP位:在操作过程中会阻塞CPU对L1P的访问(2)向L1PFBAR写一个字地址(为起始地址)。向L1PFWC写无效字的个数:落在L1PFBAR L1PFBAR+L1PFWC-1范围内的行为无效。不会阻塞任何正在进行的CPU访问,21,C6713 的L1D,2-way set associative cache;容量为4KB每一路组的行大小为32B,可以缓存64组L1D的地址解析:CPU发出的32位物理地址分为(
12、1)Tag段(1131位):该地址数据的一个惟一标记(2)set index 段(510位):确定该组在L1D中的位置(3)Word段(24位):选择组中相应的字(4)Offset段(01位):字偏移地址L1D的控制:用各寄存器实现(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从外部存储空间取得
13、相应数据,送入L1D,再送入CPU,22,C6713 的L2,容量为64KBL2由CCFG寄存器的L2Mode 段配置为5种模式,L2的控制:用各寄存器实现(1)CCFG(Cache配置寄存器)(2)L2FBAR(L2 Flush基址寄存器)(3)L2FWC(L2 Flush字计数寄存器)(4)L2CBAR(L2 clean基址寄存器)(5)L2CWC(L2 clean字计数寄存器)(6)L2FLUSH(L2 Flush寄存器)(7)L2CLEAN(L2 clean寄存器),23,L2控制器处理的申请来自3个方向:L1P,L1D和EDMA。来自L1P的只有读请求,它们之间是条位宽的单向数据总线
14、。L1D和L2间的接口包括一条L1D到L2的写总线和一条L2 到L1D的读总线。L2和EDMA 间是一条位的读写总线,L1D的行大小是L1D和L2间总线宽度的倍,因此每次L1D的读请求需要进行次,L1D对L2的每次存取需要个周期,如果L2包含所需数据,L1D的读缺失将在个周期后得到数据。L1P的读缺失将在5个周期后得到数据。,L2SRAM分为多个存储体(Bank),只要数据在不同的bank 中,就可以同时进行个存取访问,24,C6713片内Cache控制寄存器的地址分配,25,C6713存储器属性寄存器的地址分配,控制外存某一段空间的高速缓存使能,26,SDRAM/SBSRAM/异步存储器(S
15、RAM、Flash等),27,C6713芯片的EMIF接口,特点:(1)系统需要提供一个外部时钟。该外部时钟由ECLKIN输入后产生EMIF接口的时钟信号ECLKOUT.(2)SBSRAM、SDRAM、异步接口的信号合并复用。系统中允许同时具有这3种类型的存储器(3)CE1空间支持所有的3种存储器接口(4)同步存储器接口提供4word 突发访问模式(5)SDRAM接口更加灵活,支持更广泛的SDRAM配置,28,C6713 EMIF接口,特点1.数据总线宽度:32bit2.存储空间:4个(CE0CE3)3.每个存储空间寻址范围:256MB4.时钟:外部ECLKIN引脚输入或内部SYSCLK3提供
16、,最高时钟频率为100MHz5.可访问的数据宽度:8/16/32bit6.支持的存储器类型:SDRAM/SBSRAM/异步存储器(SRAM、Flash等)7.各类存储器控制信号:复用引脚,自动切换,29,30,31,32,字节定位(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
17、 模式设置:由复位时引脚HD8的状态决定。HD8=0为Big endian;HD8=1为little endian;(4)对SEED-6713在缺省情况(跳针JP11开路)下,工作在little endian模式,JP11短路时,工作在Big endian 模式,33,EMIF读/写时序的控制,由其片上的存储映射的寄存器控制,34,GBLCTL寄存器:完成对整个片外存储空间的公共参数的设置,CExCTL寄存器:控制相应存储空间的存储类型和接口时序;x=03,35,SDCTL寄存器,SDTIM寄存器,SDEXT寄存器,36,EMIF的具体使用,通过EMIF外扩多种类型的存储器、外设和存储扩展总线
18、,如SDRAM、SBSRAM、Flash、UART、USB、模板控制/状态寄存器和存储器扩展总线。它们分别映射到EMIF的4个存储空间CE3:0中,同步接口设计,特点:(1)同步访问:读写操作需要时钟类型:SDRAM(synchronous dynamic RAM)SBSRAM(synchronous burst static RAM),(2)动态存储:芯片需要定时更新,37,SDRAM芯片简介:以ISSI公司的IS42S16400芯片为例,64Mb(8MB)的16位高速SDRAM芯片。它的同步接口和完全流水线的内部结构使其拥有极大的数据传输速率,可以工作在高达133MHz时钟频率下,刷新频率
19、每64ms为4096次。该SDRAM芯片内部有4个存储体(bank),通过行、列地址分时复用系统地址总线,对不同存储体内不同页面的具体存储单元进行读写访问寻址。在进行读操作之间,必须预先激活SDRAM内对应的存储体,并选择存储器的某一行,然后送入列地址读取需要的数据。从输出列地址到SDRAM返回相应数据之间存在一个存取延迟。如果访问新的页面,则先需要关闭所有的存储体,否则已打开的页面将一直有效。在写操作之前,由于已经预先激活了有关的行地址,因此可以在输出列地址的同时输出数据,没有延迟。42S16400提供自刷新模式的设置,可以使芯片运行在低功耗的状态下,从而大大减少嵌入式系统的功率消耗。,38
20、,EMIF支持对SDRAM的直接接口,(1)EMIF可以灵活设置SDRAM地址的结构参数:列地址数目(页的大小)、行地址数目(每个bank中页的数量)、存储体的数量(打开页面数量)(2)最多能够同时激活SDRAM中4个不同的页,它们可以集中在一个CE 空间中,也可以跨越多个CE空间,一个存储体只能打开一页,39,C621x/C671x SDRAM信号描述,40,C621x/C671x支持的SDRAM配置,41,C621x/C671x支持的SDRAM配置(续),42,C621x/C671x的SDRAM接口,43,EMIF支持的SDRAM命令,44,SDRAM的控制命令的真值表,H=high=1b
21、;L=Low=0b;Bank=存储器组地址;Row=行地址;col=column=列地址X=前一次的值;Mode=模式选择,45,SDRAM初始化,复位后,任何CE空间都不会配置为SDRAM.在设置INIT位为1而执行SDRAM初始化之前,CPU应该初始化所有CE空间寄存器(CExCTL)和SDRAM扩展寄存器(SDCTL、SDTIM、SDETX)如果系统不存在SDRAM,则不应该写1到INIT位当某个CE空间配置为SDRAM空间后,必须首先进行初始化。用户不需要控制初始化的每一个步骤,只需要向EMIF SDCTL寄存器的INIT位写1,申请对SDRAM作初始化。然后,EMIF就会自动完成所需
22、要的各步操作。初始化操作不能在进行SDRAM存取过程中进行。当INIT位被置1后,EMIF执行如下步骤:(1)发送一条DCAB命令到所有配置为SDRAM的CE空间(2)发送8条刷新命令(3)发送一条MRS命令到所有配置为SDRAM的CE空间,46,SDRAM监视页面边界,SDRAM是一个分页的存储器,因此EMIF的SDRAM控制器监测访问SDRAM时行地址的情况,避免访问时发生行越界。为了完成这个任务,EMIF在内部有四个页面寄存器,自动保存当前打开的行地址,然后与后续存取访问的地址进行比较。对于所有的C6000器件,终止当前的访问不是一个强制有效SDRAM行被关闭的条件。EMIF会让有效行打
23、开直到需要关闭它。这样会减少有效和无效反复变化的开销,并允许接口完全用于存储器访问的地址定位一旦发现存取访问发生了页面越界,EMIF会自动执行DCAB操作,然后再开始新的行访问,47,SDRAM刷新模式,SDRAM 控制寄存器(SDCTL)的RFEN位选择EMIF的SDRAM刷新模式RFEN=0:所有EMIF刷新被禁用,并且用户必须确定刷新是在一个外部器件中执行。RFEN=1:EMIF执行SDRAM刷新。刷新命令(REFR)为所有被选择使用SDRAM的CE空间使能所有CE信号(使用CE空间控制寄存器CExCTL的MTYPE位段)在REFR之前,自动执行一个DCAB命令,确保所有选择的CE 空间
24、无效。在DCAB命令之后,EMIF开始以SDTIM寄存器的PERIOD字段设置的值进行定时刷新。在一个REFR命令前后,页面信息总是无效的,因此一个刷新周期总会产生一个页面信息丢失。,48,一个SDRAM刷新的时序图,49,SDRAM有效页关闭-DCAB命令(关闭所有的存储体),DCAB命令在一次硬件复位后或当SDRAM控制寄存器(SDCTL)的INIT=1时执行SDRAM总是在一次REFR和MRS命令之前要求这个周期当一个页面边界被超越时,会声明一个DCAB命令。在执行DCAB命令期间,EA12被驱动为高电平,以确保所有SDRAM有效组被关闭,50,SDRAM有效页关闭-DEAC命令(关闭单
25、个存储体),DEAC命令会关闭存储器组选择信号所指定的单个SDRAM页面当一个页面边界被超越时,DEAC命令被执行用来关闭所打开的页面。EMIF仍然支持DCAB命令,以便在REFR和MRS命令之前关闭所有页面,51,SDRAM激活命令(ACTV),在读或写新的SDRAM行之前,EMIF会自动执行ACTV命令ACTV命令会打开一页存储器,允许将来的最小的等待时间的读写访问EMIF在发布一条ACTV命令时,在声明一条读或写命令之前,将会有一个tRCD的延迟,ECLKOUT,52,缺省配置:SDRAM容量为2M32位,此时焊接电阻R22和R24,不焊接R23和R25,最大配置:SDRAM容量为4M3
26、2位,此时焊接电阻R23和R25,不焊接R22和R24,SDRAM映射到C6713的CE0存储空间,工作频率为100MHz,支持8/16/32位访问,字节地址为8000 000080FF FFFF,配置:CE0CTL寄存器将CE0空间配置为32位SDRAM存储器接口SDCTL、SDTIM、SDEXT寄存器设置SDRAM的读/写时序和参数,SEED 6713的SDRAM的接口,53,EMIF接口信号与SDRAM配置,SDRAM被映射到C6713的/CE0 存储空间,工作频率为100MHz,支持8/16/32位访问,字节地址为8000 000080FF FFFF.在对SDRAM进行读/写访问前,需
27、通过EMIF的CE0控制寄存器CE0CTL将CE0空间配置为32位SDRAM存储器接口,及通过SDCTL、SDTIM、SDEXT等寄存器设置SDRAM的读写时序和参数,54,SBSRAM接口,SBSRAM:synchronous Burst Static RAM同步突发静态存储器优点:支持同步突发访问,读写速度高,属于静态RAM,不需要刷新 类型:flow through 结构和pipeline结构(工业标准)SBSRAM接口:C621x/C671x,55,C6713的SBSRAM接口,56,SBSRAM被映射到C6713的/CE2 存储空间,工作频率为100MHz,支持8/16/32位访问,字节地址为A000 0000A0FF FFFF.SBSRAM受模板控制寄存器DECCTL中的SBEN位(D4位)控制,当SBEN=0时,SBSRAM无效。当SBEN=1时,SBSRAM有效。复位后,SBEN=0在对SBSRAM进行读/写访问前,需通过EMIF的/CE2控制寄存器CE2CTL将/CE2空间配置为32位SBSRAM存储器接口,