第五章C66xCorePac
C66xCorePac的组成:
C66xDSP和相关C66xCorePac核;
一级和二级存储器(L1P,L1D,L2)
数据跟踪格式程序(datatraceformatter,DTF)
内嵌跟踪缓冲器(embeddedtracebuffer)
中断控制
Powerdowncontroller
外部存储器控制
扩展存储器控制
专用上电/休眠控制
C66xCorePac提供存储器保护,位宽控制及地址扩展。图5.1所示为C66xCorePac示
意图:
5.1存储器结构
每个TMS320C6678器件的C66xCorePac都包含一个512KB二级存储器(L2),一
个32KB一级程序存储器(L1P)和一个32KB数据存储器(L1D),该器件还包含一个
4096KB的多核共享存储空间。在C6678上的所有存储器在存储空间上都有相应的地址。
L1P和L1D缓冲器可以通过软件来设置。L1P配置寄存器(L1PCFG)的L1PMODE
字段可以配置L1P,L1D配置寄存器(L1DCFG)的L1DMODE字段可以配置L1D。
5.1.1L1P存储器
区域0是0Kbytes,禁止
区域1是32Kbytes,没有等待状态
5.1.2L1D存储器
区域0是0Kbytes,禁止;
区域1是32Kbytes,没有等待状态;
5.1.3L2存储器
存储器的总小为4096KB
每个核有512KB
在每个核中的本地起始地址为0x00800000h
L2存储器可以配置成全SRAM,全4通道相关联存储器,或者两者的结合。L2可配置位缓
冲的存储空间的大小是通过L2配置寄存器的L2MODE字段来控制的。图5-4所示位L2配
置成SRAM/缓冲可选方式。器件复位后L2默认配置位全SRAM。
在系统中所有的主处理器核都可以全局寻址。此外,局部存储器可以由协处理器通过“别名
地址”(aliadaddress)直接访问,其中MSBs都置为0。别名在C66xCorePac中处理,
并且允许通用代码在未修改核中运行。例如,地址0x10800000是C66xCorePac第0核的
L2存储器的全局基地址。C66xCorePac第0核能够访问用地址0x10800000或0x00800000
来访问该地址。而其它核只能用0x10800000访问。然而,0x00800000可以被其他核用来访
问各自的L2存储器。
对上面提到的第0核,其相应的地址为0x10800000,第1核为0x11800000,第2核为
0x12800000。局部地址只能被用来放置共享代码和数据。任何对某一特定核的代码/数据,
或者在运行器件被某一核指定的存储空间都只能用全局寻址。
5.1.4MSMCSRAM
C6678的MSMCSRAM特性如下:
存储空间大小为4096KB
MSMCSRAM可以配置成L2和/或者L3存储空间
允许外部地址从2GB扩展到8GB
添加了存储保护特性
MSMCSRAM通常被配置成全SRAM。当被配置成L2时,其中内容可以被缓存在L1P
和L1D中。当被配置成L3时,它的内容可以被缓存在L2中。对外部存储空间的扩展和存
储空间保护的更多细节,参考MulticoreSharedMemoryController(MSMC)forKeyStone
DevicesUrGuide(literaturenumberSPRUGW7).
5.1.5L3Memory
片上L3ROM大小为128KB。ROM中包含了用来引导器件的软件,这一部分不要求块访
问ROM。
5.2存储区保护
存储器保护允许操作系统定义谁有权访问L1D,L1P,和L2。为完成这一功能,L1D,
L1P和L2被分为页。L1P有16页,L1D有16页,L2有32页。在C66xCorePac中的L1D,
L1P和L2控制器有一组寄存器来定义每页存储器的许可权。
每一页可以配置有全正交用户(fullyorthogonalur),和超级用户读,写及执行许可。
此外,每一页可以被标志为局部访问或者全局访问。局部访问就是DSP直接访问L1D,L1P
和L2,而全局访问由DMA或者其它主系统初始化。注意由DSP计数器编程的EDMA和
IDMA是全局访问。对一个受保护器件,页可以被限制为安全访问(默认)或者对公共开放,
不安全访问。
器件上的每个DSP核及主处理系统都有一个自己的ID。这个ID可以定义存储页是局
部还是全局访问。
AIDx和LOCAL位用来定义页保护配置:
软件会在中断服务程序中处理错误。DSP或者DMA在没有获得允许时访问页将导致:
块访问-读操作返回0,写操作被忽略
在一个状态寄存器中捕获初始状态-ID,地址及地址类型都被保存
DSP信号事件会中断控制器(signaleventtoDSPinterruptcontroller)
软件会对这类事件采取正确响应,并复位存储控制器中的错误状态。对L1D,L1P和
L2存储器保护的更多细节参考C66xCorePacUrGuide(literaturenumberSPRUGW0).
5.3位宽管理器
当多个请求竞争一个C66xCorePac资源时,具有最高优先权的请求者会得到使用权。
以下4个资源由位宽管理器控制:
L1PSRAM/Cache
L1DSRAM/Cache
L2SRAM/Cache
存储空间对应寄存器配置总线(Memory-mappedregistersconfigurationbus)
操作的优先级由C66xCorePac中的寄存器来声明。这些操作有:
DSP初始化转移
用户可编程缓冲器一致性操作
IDMA初始化转移
在C66xCorePac外部初始化的系统外设操作优先级由优先级定位寄存器声明,没有优
先级定位寄存器的外设由它们自己的寄存器了编程定义它们的优先级。
(TheprioritylevelforoperationsinitiatedoutsidetheC66xCorePacbysystemperipherals
isdeclaredthroughthePriorityAllocationRegister(PRI_ALLOC)Systemperipheralswith
nofieldsinPRI_ALLOChavetheirownregisterstoprogramtheirpriorities)
5.4Power-DownControl(降功率控制?)
C66xCorePac支持其各个部件的降功率控制。C66xCorePac控制器可以用来降低L1P,
缓冲控制硬件和整个核的功率。降功率特性可以在系统设计时用来降低系统功率开销。
注意C6678对L2不支持降功率控制。
5.5C66xCorePac复位
表5-2所示为C6678的复位类型,及其复位影响是局部的,还是全局的。
5.6C66xCorePac修订
C66xCorePac的版本和修订可以在CorePac版本ID寄存器(MM_REVID,地址0x01810000h)
中读到。
第4章系统互连
对于TMS320C6678器件,C66x处理器核,EDMA3(EnhancedDirectMemory
Access3)和系统外设通过两个转换结构互连,该转换结构考虑到了低延迟和数据
在主从设备间的转换。该转换结构也考虑到主系统访问从系统时的无缝仲裁。
4.1内部总线,桥和转换结构(switchfabrics)
在器件中存在两种总线:数据总线和配置总线。某些外设既有数据总线接口又有配置总
线接口,而某些外设只有一种接口。此外,不同外设的总线接口位宽和速度是不同的。配置
总线主要用来访问外设的寄存器空间,而数据总线主要用来数据传输。然而,在某些情况下,
配置总线也可用来传输数据,同理,数据总线有时也可访问外设的寄存器空间。例如,DDR3
存储控制寄存器可以通过数据总线接口访问。
C66x处理器核、EDMA3以及各种系统外设可以分为两类模式:主模式和从模式。处
于主模式时,就可以初始化系统的读写传输并且数据的传输不依赖EDMA3。而处于从模式
时,数据的传输要依靠EDMA3。处于主模式的有EDMA3交通控制器,SRIO和EMAC。
处于从模式的包括:SPI,UART和I2C。
主从器件的通信有两种交换结构:数据交换结构和配置交换结构。数据交换结构即数据
交换中央资源(SCR),是一种高吞吐量的内部互连,主要用于系统间的数据通信。数据SCR
还可分为两个较小的SCR,一个通过256-bit数据总线互连超高速主从系统,可以运行在
1/2DSP主频,另一个通过128-bit数据总线互连主从系统,可以运行在1/3DSP主频。如果
外设与和SCR相连的本地总线宽度相匹配,就可以直接与数据SCR相连。而其它不匹配的
外设与数据SCR相连时需要有桥连接。
配置交换结构即配置交换中央资源,主要用来访问外设寄存器。配置SCR用运行在
1/3DSP主频的32-bit配置总线来连接C66x处理器核和在数据交换结构上的主从设备。和数
据SCR一样,某些外设也需要桥来连接配置SCR接口。
桥有多种功能:
在配置总线和数据总线之间转换
外设总线位宽和SCR总线位宽的转换
外设总线频率和SCR总线频率的转换
4.2数据转换结构连接
连接的详细信息在下表中给出:
4.3配置转换结构
所有的主模式器件都可以通过配置转换结构访问从模式器件。
4.4总线优先级
所有主模式外设交通优先级都在Teranet边界中定义。引进用户可编程优先级寄存器,
用软件通过TeraNet配置数据交通优先级。注意数值越低,优先级越高:PRI=000b=紧急,
PRI=111b=最低优先级。
所有其它主模式器件都直接提供自己的优先级,不需要默认优先级设置。例如CorePacs,
其优先级的设定通过软件设置UMC控制寄存器来完成。所有基于DMA打包的外设也有内
部寄存器来定义其优先级。
DMA打包的第二个端口是一个主模式端口,在IP中没有定义优先级的寄存器。这个端
口通信的优先级由PKTDMA_PRI_ALLOC寄存器描述,如图4-1和表4-3。
第二章DeviceOverview
2.1芯片特性
2.2DSP核概述
C66xDSP通过加强和新增特性,比C64x和C674x的特性有很大提高。有许多特性是
针对向量处理新增的。C64x+和C674xDSP对16-bit数据支持2条SIMD操作,对8-bit数
据提供4条SIMD操作。在C66x器件上,通过扩展SIMD指令的宽度,提高了向量处理能
力。C66xDSP可以处理128-bit的向量指令。例如,QMPY32指令可以执行两个32-bit数据
向量的元素对元素相乘。C66xDSP对浮点操作也支持SIMD。增强的向量处理能力加上原有
的指令并行等级,DSP程序员通过应用TI的C/C++优化编译器可以开发出更高级的并行
代码。
C66xDSP由8个功能单元,2个寄存器组核2条数据通路组成,如图2-1所示。两个
通用寄存器组共有64个寄存器,分为A和B两组,每组由32个32-bit寄存器组成。通用
寄存器可以用来存放数据,也可以当作地址指针。所支持的数据类型有,8-bit打包数据,
16-bit打包数据,32-bit数据,40-bit数据和64-bit数据。乘法也支持128-bit数据。40-bit
和64-bit长型数据存在寄存器对中,数据的32LSB存在一个偶数寄存器中,而剩下的8位
或32位存在下个较高寄存器(通常是奇数寄存器)。128-bit数据存在4个寄存器中,低32
位存在地址是4的倍数的寄存器中,剩下的数据存在相邻的更高的3个寄存器中。
8个功能单元(.M1,.L1,.D1,.S1,.M2,.L2,.D2,.S2)每个时钟周期能够执行一个指令。
所有的乘法指令都在.M单元执行。.S和.L单元执行通常的算术,逻辑和分支程序。.D单元
主要从存储器读取数据并从寄存器读取数据。
每个C66x的.M单元在每个时钟周期内都能够执行以下定点操作:4个32×32bit乘法,
16个16×16bit乘法,4个16×32bit乘法,88×8bit乘法,4个8×8bit乘法和一个加法,4
个16×16bit乘法及加减运算。对8-bit和32-bit的Galois字段也支持乘法。许多通信算法如
FFT及模式都需要复数乘法。每个C66x.M单元能够执行一个16×16bit复数乘法(没有取
整能力),2个16×16bit复数乘法(有取整能力),和一个32×32bit有取整能力的复数乘法。
C66x可以执行2个16×16bit和1个32×32bit复数乘法指令,该乘法指令是一个复数乘以
另一个复数的共轭,并有取整能力。通信信号处理也要求扩展矩阵处理。每个C66x.M单元
每个时钟周期可以执行一个[1*2]复数矩阵和一个[2*2]的复数矩阵。也支持该类型矩阵的共
轭相乘。
每个C66x.M单元也包含了C674x的浮点乘法指令,即每时钟周期一个单精度乘法,每
4周期一个双精度乘法。也支持混合精度乘法,即单精度数据和双精度数据相乘,两个单精
度值相乘得到一个双精度值。C66x的双精度乘法性能比C674x的双精度乘法性能高,表现
在每周期执行一个双精度乘法,并把延迟数从10减到4。每个C66x.M单元每个时钟周期
可以执行以下浮点操作:1,2或4个单精度乘法,或者复数单精度乘法。
.L和.S单元目前可以支持64-bit操作数。这就允许许多算术,逻辑和数据打包指令可
以在每周期执行更多的并行指令。并新增了一些指令,使得浮点加减法指令的性能提高,表
现在每周期可以执行一个双精度的加法或减法,整数和单精度数的转换可以在.L和.S单元
完成。通过利用长型操作数,新增的指令也可以完成双倍数据的转换。.L单元对逻辑指令
AND和OR操作另有附加指令,对复数数据的90度和270度旋转也有新增指令。同样也新
增了对复数求共轭的指令。
MFENCE是C66xDSP新增指令。其功能是产生DSP暂停,直到DSP触发存储器转换
完成,包括;
高速缓冲寄存器的行被填满(cachelinefills)
从L1D向L2,或者从CorePac向MSMC及其它系统终端的写操作
受损写操作返回(victimwritebacks)
块或全局一致性操作
高速缓存模式转换
高级XMC取指请求
在编程时,该指令对于等待这些请求到达它们的终点是一个简单的有用的机制。该指
令同样对单终点提供多条写路径,并且这些写路径有一定的顺序。并且也提供多处理
器算法的操作,这些多处理器算法依靠于命令顺序和手动一致性操作。
2.3存储空间地址分配摘要
详见原文2.3节的表2-2。
2.4引导顺序
引导顺序即指定哪个DSP的内部存储器来加载程序段和数据段。DSP的内部寄存器在
编程时设定一个预定值。在上电复位,软复位和系统复位后,引导顺序自动开始引导。单个
C66xCorePac的局部复位不会影响器件的硬件引导控制状态。
C6678支持几种引导处理,都是从ROM基地址开始执行的,包含了支持几种器件引导
模式的引导代码。引导过程中软件驱动和用BOOTMODE[12:0]器件配置输入来确定软件配
置必须完成。
2.5引导模式和PLL设置
该器件支持多种引导,大多数引导是软件驱动,用BOOTMODE[3:0]器件配置输入来确
定必须完成的软件配置。从硬件角度来看,有两种可能的引导模式:
公共ROM引导:C66xCorePac0从复位开始可用,从L3ROM基地址开始执行。
当引导过程完毕,C66xCorePac0从提供的引导入口点开始执行,而其它的C66x
CorePac从基于CorePac0产生的中断复位开始可用。
安全ROM引导(cureROMboot,受保护ROM引导):在受保护器件上,CorePac0
从复位开始可用,并且从受保护ROM开始执行。当CorePac0初始化完引导程序
后,在受保护ROM中的软件释放内部RAM页。C66xCorePac0负责在执行程序
前对引导加载映象的鉴定和译码请求。
由DEVSTAT寄存器中的BOOTMODE[12:0]字段来确定C66xCorePac0从公共ROM还
是受保护ROM引导。C66xCorePac读取该寄存器值,然后执行相应的引导程序。图2-2所
示为BOOTMODE[12:0]。
2.5.1引导器件字段
引导器件字段BOOTMODE[2:0]定义选择哪种器件来引导,表2-3所示为DSP支持的引导模
式
2.5.2器件配置字段定义
具体内容见原文,2.5.2节
2.5.3PLL引导配置设置
PLL默认设置由BOOTMODE[12:0]决定。表2-13所示为对各种输入时钟频率的设置。
这将把PLL设置为器件的最大时钟频率。
2.6二级引导程序
任何一种引导模式都可以加载二级引导程序。二级引导程序允许任何级别的用户使用当前的
引导模式并且可以定义一种完全的用户引导。
附注:
2.72.8有关硬件的引导配置引脚介绍定义,详见原文。
2.9有关软件开发支持环境,详见原文。
第三章,有关器件,外设在复位后的配置介绍,及器件状态控制寄存器的定义,上下拉电阻
等内容,详见原文
第六章,有关器件运行环境,电压电气特性。
第七章,有关TMS320C6678外设信息。
KeyStonememoryarchitecture
新的KeyStone结构包含8个C66xDSP核(CorePacs)。
Memoryimprovementforperformance
C66xCorePac的内存结构比以前的C6000TM系列有4个主要的提高:
1)不管多核和数据I/O有高的活跃性,所有级别的存储器都能有效运行;
2)多核间及数据I/O间缓存区的一致控制更容易;
3)存储器保护和地址扩展
4)为高级别存储器扩展对软件错误保护
执行效率Executionefficiency
C66xCorePac的存储子系统在功能上和最新的C64x+TM及C67xTMDSP是一致的。每
个片内L1存储器都是32KB,可以全部配置成缓冲器(默认),或作为SRAM映射到存储
空间,或配置成4KB,8KB和16KB缓冲的组合。L1P通常是直接映射的,L1D
L1Pisalwaysdirect-mappedandL1Disalwaystwo-wayt-associative.
相似的,片内第二级存储器(L2)有1MB的统一存储器(初始化为512KB或者1MB),也
可以全部配置成缓冲器(默认),或作为SRAM映射到存储空间,或配置成32KB,64KB,
128KB,256KB和512KB缓冲的组合。
本文发布于:2022-11-11 21:18:28,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/246.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |