TC1728用户手册OVC,V1.20,2009-076-1V1.0,2011-12数据访问重叠(OVC)6数据访问重叠(OVC)数据重叠功能允许TriCore将对被称作“目标存储空间”的程序空间(段8H和AH)的数据访问重新定向到被称作“重叠存储空间”的另一个存储空间。根据单片机型号不同,有以下重叠存储器空间可用:•PMU中的重叠SRAM.•仿真存储空间(EMEM)1.•外部存储空间2.此功能可以实现如下的功能:例如,在程序运行过程中对应用程序中的测试和标定数据(通常存储在程序存储空间中)进行修改。由于地址解析由DMI实现,此功能只影响Tricore的数据访问(读、写)。指令读取和其他总线主机的访问(包括调试接口)不会被重新定向。特性和功能总结•16个重叠区域(块)可配置.•支持最大达8K字节的PMU中内嵌重叠SRAM(OVRAM).•支持最大达384K字节的重叠/标定空间(EMEM)1).•支持最大达2M字节的外部存储器重叠空间(EBUspace)2).•支持最大32K字节的在线数据获取和重叠功能.•支持为各个使能的重叠块设定不同的重叠存储空间.•重叠块的大小可根据重叠存储器选择:–OVRAM:16字节到2K字节.–EMEM1)和外部空间2):1K字节到128K字节.•所有准备好的重叠块只需通过对一个寄存器的写访问就能进行使能.•对DMI数据缓存的清除(使失效)可编程.6.1基本重叠功能控制本章介绍了与重叠存储器可用性无关的整体重叠功能。对于每个重叠块,可以有三种重叠的可能性:即重定向到PMU中的重叠SRAM存储器、重定向到外部存储器、重定向到仿真存储器EMEM(如果芯片内带有针对仿真器件的仿真扩展控制器EEC)。在以上所有情况中,使用的重定向的机制都是一样的。基本重叠机制如图6-1所示.1)只在仿真器件“ED”中可用2)只在带EBU的仿真器件中可用TC1728用户手册OVC,V1.20,2009-076-2V1.0,2011-12数据访问重叠(OVC)图6-1将对代码存储空间的数据访问重新定向到内部OVRAM或仿真存储空间(或外部存储空间)在TC1728中,目标存储空间(程序闪存,外部存储空间或OLDA区域,详见6.4.1)可以最多被划分成16个存储块以重新定向到重叠存储空间中去。目标存储器和重叠存储器的基地址以及重叠块的大小可以独立选择。可能的重叠块大小取决于选择的重叠存储器:在内部OVRAM中的重叠块小于EMEM和外部存储器中的重叠块。所有使能的重叠块可以通过对一个寄存器的访问同时被重叠(重新定向)。同时,DMI中的数据缓存也会被清除。图6‑2介绍了地址解析过程的操作,图中显示了指向内部重叠RAMOVRAM的重新定向。器件TC1728用户手册OVC,V1.20,2009-076-3V1.0,2011-12数据访问重叠(OVC)图6-2重定向至OVRAM的地址解析过程在每一个使能的重叠块控制逻辑中,三个寄存器用来保存重叠功能的控制信息:•重叠目标地址寄存器OTARx中保存目标重叠地址,决定了程序或OLDA存储空间将被重新定向的数据块的基地址•重定向地址寄存器RABRx中保存重叠存储空间在OVRAM、外部存储空间或EMEM(如果是仿真器件)的基地址以及相关的使能和控制位•重叠掩码寄存器OMASKx中保存的掩码,定义了重定向块的大小、用来检验地址是否匹配的地址位、以及哪些位来自重定向地址和哪些来自原数据地址重叠存储块的大小可以是最小块大小(内部存储器重叠为16字节,仿真存储器重叠为1k字节)的2n倍,n=0-7。块的起始地址可以是编程块大小的整数倍(自然页边界)。TC1728用户手册OVC,V1.20,2009-076-4V1.0,2011-12数据访问重叠(OVC)如果数据的段地址是AH或8H,原始数据地址的段偏移量与所有被寄存器RABRx使能的重叠段的目标基地址比较。这种按位比较受掩码内容的限制,忽略形成重叠块偏移量的地址位。如果结果不匹配,使用原数据地址来进行访问。如果结果匹配(如图6-2):•4位段地址(AH或8H)直接从数据地址中获得•指向重叠存储空间的段偏移地址的高位部分,设定成地址映射的预设值(RABRx寄存器中的固定位).•目标块地址中与重叠块基地址对应的部分,由对应的重叠块基地址位取代(RABRx中的OBASE的位对应掩码寄存器OMASKx中OMASK值为1的部分)•结合原始偏移量位形成完整地址,原偏移量位对应掩码OMASK中值为0的部分。6.2在线数据获取(OLDA)及其重定向标定还可以用存储范围最大达32K字节的OLDA存储器,是一个虚拟的存储空间,仅在被重定向到内部重叠空间或外部存储空间或仿真器件的EMEM存储空间时,才可以被访问。如果PMU使能了OLDA功能,直接指向OLDA存储空间(未重定向)的写操作并不会被执行,也不会产生总线错误陷阱。这种陷阱抑制功能只对非缓存区有效。如果没有重新定向到一个可用的物理存储空间,对OLDA区域的读操作会产生一个总线错误陷阱。虚拟的OLDA的基地址为A/8FE70000H,结束地址为A/8FE77FFFH。缓存地址空间也支持对OLDA区域的访问,但是并不会抑制写操作的总线错误陷阱。注意:在OTARx寄存器中,可以选择任意需要重定向的目标地址,同样也包括OLDA范围中的地址。但是OLDA区域的直接访问是由PMU来控制的。6.3重叠块的使能控制对于重叠操作的基本控制,OCON寄存器提供了以下功能:•16个使能位(SHOVENx),一位对应一个重叠块的配置,来支持对16个重叠块的连续和并行的使能;对16个块控制寄存器(RABRx)中单个使能位的映射功能与TC1766/96使能控制兼容。TC1728用户手册OVC,V1.20,2009-076-5V1.0,2011-12数据访问重叠(OVC)•一个通用的重叠启动位(OVSTRT),通过将映射使能位同时写入到16个块控制寄存器中,来启动所有使能的重叠配置;如果全为0则停止。•一个控制标志位(DCINVAL)(只写位),由CPU或者Cerberus置位,以清除(使失效)DMI中的缓存字段。•一个通用重叠停止位(OVSTP)(只写位),同时使16个块控制器中的重叠配置失效,但不会修改配置。•一个重叠配置状态位(OVCONF),由Cerberus通过JTAG口配置重叠寄存器时置位,当启动全局重叠(所有被使能的重叠块被重定向)后被CPU清除。重叠控制寄存器OCON高字节中的控制标志位的操作受到一个额外保护位的保护,支持不同用户对寄存器OCON的写操作但不会改变控制位的值。此外,OCON支持字节写访问,因此也支持字节保护功能。6.4目标和重叠存储空间在以下内容中,将介绍可用的目标和重叠存储空间、重叠存储空间块的选择和块的大小。内部重叠存储器OVRAM,仿真存储器EMEM的接口都位于PMU中。EMEM只能在仿真器件(ED芯片)中才可以被选择作为重叠块。6.4.1目标存储空间对任何对段8H和AH中数据的读写都会通过与全部16个OTARx寄存器(如果都使能了重叠功能)的比较,检测是否为有效的重叠目标地址。由于OTARx寄存器是可写的,所以段8H和AH中任何数据都可能被重新定向到重叠存储空间中。因此,以下的存储空间可以被选择作为重叠目标存储空间:•程序闪存ProgramFlash•数据闪存DataFlash•(虚拟的)OLDA存储区域•外部存储空间.6.4.2内部重叠空间内部重叠存储空间OVRAM的大小是8K字节。OVRAM的基地址是A/8FE80000H(非缓存区/缓存区).当块相对应的RABRx寄存器中的IEMS和EXOMS位为0时,OVRAM就会被选中用于重叠操作。在地址解析过程中,高19位地址被设置成A/8FE8H000B(段地址与原数据相同)。对于内部重叠,重叠块的大小可以是2nx16字节,n的范围从0~7(16字节到2K字节)。内部重叠存储空间OVRAM在量产器件与仿真器件上均可用。TC1728用户手册OVC,V1.20,2009-076-6V1.0,2011-12数据访问重叠(OVC)6.4.3仿真重叠存储空间在仿真器件“ED”芯片中,包含了一个384K字节的仿真存储器,可以通过对程序存储器或OLDA的重定向全部用做标定。它的基地址是A/8FF00000H。如果重叠块相关的寄存器RABRx中的位IEMS=1且EXOMS=0,仿真存储器EMEM就被选中作为重叠存储器。在地址解析过程中,高13位被设置成AFFH0B(非缓存区)或8FFH0B(缓存区)(段地址与原先数据相同)。对于仿真存储器EMEM的重叠,重叠块的大小为2nx1K字节,n的范围从0~7(1K字节到128K字节)。6.4.4外部重叠存储空间如果在仿真器件系统中有一个外部存储器可用,则它可以通过对程序空间或OLDA的重叠来实现标定功能。在块相关的RABRx寄存器中的位IEMS=1且EXOMS=1时,外部存储器被选中用于重叠操作。在地址解析时,高9位地址被设置成A0H1B(非缓存)或80H1B(缓存空间),段地址与原数据相同。为了重定向到外部EBU存储器,使用了与仿真存储空间重叠相同的块大小:2n1K字节,n的范围从0至7(1K字节至128K字节)。因此,支持的最大的重叠区域的大小是2MB。6.5修改重叠参数和启动重叠当修改重叠块的重叠参数时或者将一个重叠块从一个重叠存储空间至另一个存储空间时,必须保证,在参数被设置完成之前,对应的OVEN位必须被重置为0,然后再重新使能重叠块。否则,可能发生不可预料的访问重定向。当使用OCON寄存器中的OVEN标志位而不是各RABRx寄存器中的OVEN标志位的映射功能时,还特别支持同时启动所有已经被使能的重叠块的功能(见6.3章)。使用此功能,可以直接从一组重叠块切换到另外一组重叠块,这不受重叠存储空间特定重叠块使用的限制。TC1728用户手册OVC,V1.20,2009-076-7V1.0,2011-12数据访问重叠(OVC)注意:重叠控制不会阻止地址解析的错误设置,因此内存访问的地址可能解析到无法执行或被禁止的存储区域。6.6块优先级和访问性能如果同时在多个被使能的重叠块发生了匹配,最低序号的块将赢得竞争并进行地址解析。指向重叠存储空间的重定向的动态地址解析在执行时不会给性能带来负面影响。6.7重叠控制寄存器图6—3显示了所有的与重叠存储块控制相关的重叠控制寄存器。重叠控制寄存器概览图6-3重叠控制寄存器重叠控制寄存器的地址如下:表6-1OVC寄存器的寄存器地址空间模块基地址结束地址备注OVCF87FFB00HF87FFBFFHTC1728用户手册OVC,V1.20,2009-076-8V1.0,2011-12数据访问重叠(OVC)表6-2寄存器概览寄存器3缩写寄存器全称偏移地址访问模式4描述请见读写OTARx重叠目标地址寄存器x(x=0-15)0024H+x*CHU,SVSV图6-9RABRx重定向地址基地址寄存器x(x=0-15)0020H+x*CHU,SVSV图6-11OMASKx重叠掩码寄存器x(x=0-15)0028H+x*CHU,SVSV图6-16OCON重叠控制寄存器00E0HU,SVSV图6-20注意:对OVC地址空间内空/未使用寄存器地址的访问不会被执行也不会产生总线故障陷阱。寄存器描述16个重叠存储块中的任意一个(用字母x表示),都对应有三个寄存器来控制重叠操作和存储器选择:•重叠目标地址寄存器OTARx,保存了在内部Flash、外部存储器或OLDA存储器被重叠(并且需要与原始数据地址进行比较)的数据块的基地址。•重定向地址基地址寄存器RABRx,保存了将被使用的重叠存储器的基地址(带有固定地址位)、重叠存储器中的重叠存储块的基地址,以及一些控制位。•重叠掩码寄存器OMASKx,定义了RABRx中的哪些地址为将用作重叠存储器和重叠块的基地址,以及原数据地址中的哪些位将作为重叠块中的偏移地址(保持不变)。此外,还有OCON寄存器作为全局重叠控制之用。所有的重叠块和控制寄存器在应用复位之后都会被重置为