DM816x芯片级资源.docx
《DM816x芯片级资源.docx》由会员分享,可在线阅读,更多相关《DM816x芯片级资源.docx(24页珍藏版)》请在冰点文库上搜索。
DM816x芯片级资源
1.芯片级资源
1)介绍
主要包括如下资源:
●微处理器单元(MPU)子系统,这个子系统是基于带Neon扩展的ARMCortex-A8微处理器
●DSP子系统(DSPSS),包括C674x宏模块和相关的内存
●高清视频协处理器(HDVICP2)系统MMU
●系统MMU
●SGX350图形子系统,用作3D图形加速
●高清视频处理子系统(HDVPSS),用作视频捕捉和显示
●L3和L4互联
●设备时钟和FlyingAdderPLLs
●错误定位模块,用于通用目的的内存控制器
●协处理器间的通讯,带有邮箱和自旋锁组件
●控制模块,对所有芯片级的控制和配置寄存器
●电源、复位、时钟管理
●中断控制器
●Boot模块和引导过程
2)MPU子系统
1.2.1介绍
MPU子系统操作ARM核、L#互联、中断控制器之间的交易,MPU子系统是个硬宏,集成Cortex-A8处理器,还包括协议转换、仿真、中断处理和调试增强。
Cortex-A8是一个ARMv7兼容的,双流、定序执行引擎,具有L1和L2缓存,带有NEONSIMD媒体处理单元。
中断控制器包括在MPU子系统里,用来处理系统的Host中断请求
MPU子系统包括CoreSight兼容的逻辑,允许调试子系统存取Cortex-A8调试和仿真资源,包括嵌入式跟踪宏单元。
MPU子系统有三个功能时钟域,包括Cortex-A8使用的高频时钟域,高频域通过异步桥与设备的其它部分隔离。
图1-1MPU子系统
1.2.2特征
●ARM处理器
⏹Cortex-A8版本R3P2
⏹ARM架构,版本7ISA
⏹双流,定序执行管线
⏹L1和L2指令和数据CACHE:
32KB、4-way,带有128位接口的16-word行
⏹集成L2CACHE:
256KB,16-word行,与L1之间是128位带ECC/奇偶校验接口
⏹包括NEON媒体协处理器,它实现先进的SIMD媒体处理结构
⏹包括VFP协处理器,它实现VFPv3结构和全兼容IEEE754标准
⏹扩展接口,使用AXI协议,配置到128数据宽
⏹包括嵌入式跟踪宏单元,支持非扩散调试
⏹实现ARMv7调试,带有观测点和断点寄存器,和32位先进的外设总线(APB)从接口道CORESight调试系统。
●加密
⏹对CortexA8的SECMON接口
⏹加密状态机器
⏹防火墙
⏹加密RAM和ROM
●AXI2OCP
⏹支持OCP2.2
⏹在两个端口上单个请求多数据协议
⏹多目标,包括三个OCP端口(128位、64位、32位)
●中断控制器
⏹支持128个中断请求
●仿真与调试
⏹兼容CoreSight结构
●时钟产生
⏹通过PRCM
●DFT
⏹集成PBIST控制器,用来测试L2tag和数据RAM、L1I和L1D数据RAM和OCMRAM
1.2.3MPU子系统集成
MPU子系统集成了如下子模块:
Cortex-A8处理器:
提供一个高处理能力,包含NEON技术用于移动多媒体加速。
ARM通过一个AXI总线与AXI2OCP桥通讯和接收来自MPU子系统中断控制器的中断。
中断控制器:
处理模块中断
AXI2OCP桥:
允许ARM(AXI)、INTC(OCP)和模块(OCPL3)之间进行通讯
I2Async桥:
这是个OCP到OCP接口间的异步桥接口。
这是在AXI2OCP桥与MPU子系统之间的接口,T2Async桥外部到MPU子系统。
时钟分频器:
提供要求的分频时钟到MPU子系统内部模块,并有一个来自SYSCLK2的时钟输入,它送到电源、复位、时钟管理模块。
在线仿真:
它全兼容CoreSight结构并是能调试能力
1.2.4MPU子系统时钟和复位分布
1.2.5ARM子芯片
1.2.6AXI2OCP和I2Async桥
1.2.6.1桥的概述
AXI2OCP桥,用来连接ARMA8的AXI总线与OCP原生L3互联(64位宽)、EMIFOCP端口(128位宽)、中断控制器和加密状态机。
它转换AXI和OCP之间的协议,维护AXItags到OCPTagID之间的映射。
一个内存区域必须为中断操作者保留,桥被要求多一些最小的地址译码以便确定向哪儿提出请求。
AXI2OCP桥和目标模块(EMIF、L3)操作在不同的时钟域,在它们之间的接口必须通过一个异步桥以便合适地同步到对方的时钟域。
桥到L3是通过一个异步接口来完成,包含I2Async和T2Async模块。
在MPU子系统边的I2Async模块有一个OCP端口,它与T2Async之间的传输是异步的,并路由到L3,
T2Async在MPU子系统外(注意,在I2Async和T2Async之间的接口不是OCP通讯规程)。
1.2.6.2主要特征
●在C014.P里,目标500MHz操作频率,操作电压是1.0V
●通过一个128位的OCP端口和异步桥连接到EMIF
●通过64位OCP端口和异步桥连接到L3互联
●通过32位OCP端口连接到中断控制器(仅支持单个交易)
●对管线请求,支持单个请求多数据突发模式(数据握手)
●支持多重要请求
●支持加密、仿真、引导模式转换
●排它性的存取被转换为桥里的非排它的读写
图1-5AXI2OCP与L3桥的概略图
1.2.6.3AXI到OCPTag影射
表1-5读通道AXIID到OCPTag的映射
AXIID
请求类型
OCP线程
OCPTag
重要请求
4b’0000
NC/SO[1]数据装载
Thread_Mx
5’b00000
9(一个集成或总共到8Neon)
4b’0001
器件数据装载
Thread_Mx
5’b00001
1
4b’0011
外设
N/A
N/A
1
4b’1110
可Cache行填充进L1D
Thread_Mx
5’b01110
1
4b’0100
取NC/SO[1]指令
Thread_Mx
5’b00100
1
4b’0101
取器件指令
Thread_Mx
5’b00101
1
4b’1111
行填充进L1I$(行是L2不可Cache的)
Thread_Mx
5’b01111
1
4b’0110
NC/SO[1]表Table-Walk请求(指令、数据或PLE)
Thread_Mx
5’b00110
1
4b’1000
可Cache行填充(I、D、TLB、PLE)#1,除了行填充进L1D
Thread_Mx
5’b01000
1
4b’1001
可Cache行填充(I、D、TLB、PLE)#2,除了行填充进L1D
Thread_Mx
5’b01001
1
4b’1010
可Cache行填充(I、D、TLB、PLE)#3,除了行填充进L1D
Thread_Mx
5’b01010
1
4b’1011
可Cache行填充(I、D、TLB、PLE)#4,除了行填充进L1D
Thread_Mx
5’b01011
1
4b’0010
保留
N/A
N/A
N/A
4b’0111
4b’1100
4b’1101
4b’0000
NC/SO[1],或WT存储
Thread_Mx
5’b10000
直到8
4b’0001
器件写
Thread_Mx
5’b10001
4b’0011
外设写
N/A
N/A
4b’1000
驱逐#1(包括PLE)
Thread_Mx
5’b11000
1
4b’1001
驱逐#2(包括PLE)
Thread_Mx
5’b11001
1
4b’1010
驱逐#3(包括PLE)
Thread_Mx
5’b11010
1
4b’1011
驱逐#4(包括PLE)
Thread_Mx
5’b11011
1
4b’0010
保留
N/A
N/A
N/A
4b’0100
4b’0101
4b’0110
4b’1100
4b’1101
4b’1110
4b’1111
1.2.7中断控制器
HostARM中断控制器(AINTC)负责对所有来自外设服务请求按照优先级产生nIRQ或nFIQ给Host。
中断类型(nIRQ或nFIQ)和中断输入的优先级是可编程的,AINTC与Monza处理器的接口通过AXI端口指向HASS。
它有能力处理128个请求,它能进行引导和优先级处理作为nFIQ或nIRQ中断请求。
AINTC的总的特点:
●多达128级的中断输入源
●每个中断的单独优先级
●每个中断能引导到nFIQ或nIRQ
●nFIQ和nIRQ的独立的优先级排序
●加密掩模标志
1.2.8电源管理
1.2.9HostARM地址映射
区域
地址范围
尺寸
内部存储器(存取没有路由到外部OCP端口)
BOOTROM(128KB)加密
0x40000000–0x4001FFFF
1MB
公共ROM(48KB)
0x40020000–0x4002BFFF
保留
0x4002C000–0x400FFFFF
保留
0x40200000–0x402EFFFF
1MB
加密/公共SRAM(64KB)
0x402F0000–0x402FFFFF
内部保留(在HASS器件上没有实现的自动Back-End端口)
保留
0x40100000–0x401FFFFF
1MB
私有外设映射(存取没有路由到外部OCP端口)
ARM中断控制器(AINTC)
0x48200000–0x48200FFF
4KB
保留
0x48201000–0x4827FFFF
508KB
保留
0x48281000–0x482FFFFF
508KB
128位OCP主端口0(通过DMM到EMIFs)
EMIF0/EMIF1CS0
0x80000000–0xBFFFFFFF
1GB
保留(EMIF0/EMIF1CS1)
0xC0000000–0xFFFFFFFF
1GB
64位OCP主端口1(到L3)
BOOT空间
0x00000000–0x00FFFFFF
1MB
L3
0x00000000–0x5FFFFFFF
(1.5GB–1MB)
Tiler
0x60000000–0x7FFFFFFF
256MB
1.2.10ARM编程模型
用于MPU配置的寄存器更为详细描述见电源、复位、时钟管理、和中断控制器。
1.2.10.1时钟控制
时钟配置设置,见电源、复位、时钟管理模块(PRCM)。
1.2.10.2MPU电源模式变化
MPU电源域的不同电源模式:
●基本的上电复位
●MPU进入掉电模式
●MPU推出掉电模式
●MPU从断电到上电
1.2.10.2.1上电复位
1.2.10.2.2MPU进入待机模式
按照下面的操作顺序,MPU进入掉电模式,并能够初始化上电,或者将器件从掉电模式唤醒。
●ARM核仅通过软件进入待机模式(CP15-WFI)
●ARM内核检测到待机后,MPU模块内部要求MPU子系统进入IDLE。
●MPU待机输出由PRCM断言
●PRCM现在能请求INTC进入IDLE模式,来自INTC的响应送到PRCM
注意:
INTCSWAKEUP输出是到PRCM的纯硬件信号,用于它的IDEL请求状态,和IDEL响应握手
注意:
在调试模式,ICE-Crusher能阻止MPU子系统进入IDLE模式
1.2.10.2.3MPU退出待机模式
MPU退出待机模式,按照操作的顺序,可以初始化上电荷唤醒器件
●PRCM在DPLL编程期间必须启动时钟
●通过DPLL输出的状态,检测有效的时钟
●通过INTC激发一个中断,将ARM核从STANDBYWFI模式唤醒
1.2.10.2.4MPU从断电到上电
●MPU上电,NEON上电,核上电应该按照规定的顺序以最小化上电期间的最小电流。
注意,核域必须上电复位在MPU复位之前
●复位顺序必须按照基本的上电复位顺序描述的那样
1.2.10.3NEON电源模式变化
当NEON电源域变化被配置为自动硬件监视模式(CM_CLKSTCTRL_NEON[1:
0]的CLKTRCTRK_NEON位为0x3),它不会进入IDLE模式,除非MPU进入待机模式,因为在NEON和MOU域之间的硬件休眠是独立的。
在那种情况下,为了NEON电源域变化发生,MPU域必须也被配置为自动硬件监视模式(CM_CLKSTCTRL_MPU[1:
0]的CLKTRCTRL_MPU位必须设为0x3)。
完整的编程模型,见ARMCortex-A8技术参考手册。
3)C674x子系统
1.3.1概述
DSP子系统(如图1-7)包括Ti标准的TMS320C674x宏模块和一些内部块(L1P,L1D和L2),DSP子系统支持一个从端口和一个主端口,它连接到L3互联,它还提供三个主端口用于直接存取到HDVICP2子系统(HDVICP2和HDVICP2SL2端口),这一节提供DSP子系统的概述和随后与之相关的考虑。
●内存映射
●中断
●电源管理
内部结构是下面组件的一个组合:
●高性能DSP派生品,集成了一个宏模块,包括本地L1和L2CACHE,内存控制器用于音频处理和通用目的图像和视频处理。
●L1和L2共享Cache
●专用的扩展数据内存存取(EDMA)引擎,下载/上载数据来自/去内存和外设扩展到子芯片。
●专用的内存管理(MMU)用于L3互联地址空间。
●本地互联网络。
●专用的SYSC和唤醒产生器(WUGEN)模块负责电源管理,时钟产生和连接到电源、复位、和时钟管理模块(PRCM)。
更详细的信息见《TMS320C674xDSP模块参考手册》(SPRUFK5),《TMS320C674xDSPCPU和指令集参考手册》(SPRUFE8),以及《TMS320C674xDSPCache用户指南》(SPRUG82)。
图1-7TMS320C674x宏模块框图
1.3.2C674xDSP特征和选项
C6000器件每个周期,执行8个32位指令,C674xCPU组成64个通用目的的32位寄存器和8个功能单元。
这个8个功能单元包含:
●两个乘法器
●6个算逻单元
C6000系列有一个完整的优化的开发工具,包括一个高效的C编译器,一个汇编优化器用于简化汇编语言编程和计划,一个基于Windows的调试接口用于可视化代码执行特征,一个硬件仿真板,兼容TIXDS510和XDS560模拟器接口。
C6000器件的特点:
●先进的VLIWCPU带8个功能单元,包括两个乘法器和6个算术单元。
⏹每个周期执行8个指令,相对于典型的DSP性能高出10倍
⏹允许设计者开发高效率的类RISC代码,以节省开发时间
●指令包
⏹串行或并行执行的8个指令代码尺寸相等
⏹减少代码尺寸,程序的存取和电源的消耗
●大部分指令可以条件执行
⏹减少分支的代价
⏹增强了并行机制,提高性能
●在独立的功能单元高性执行代码
⏹工业上最高效的C编译器
⏹工业上第一个汇编优化器,用于快速开发和改善并行处理能力
●8/16/32位数据支持,为不同应用,提供高效内存支持
●40位算术优化增加了额外的精度,为声音合成和别的计算敏感应用
●主要算术操作支持饱和和规则化
●域的操作和指令,提取、置位、清除、以及位计数支持通用操作,适应控制和数据操作的应用。
C674x器件还具有额外的扩展的能力和特征:
●每个乘法器每个周期可以执行2个16x16位或4个8x8位的乘法
●4倍8位或两倍16位指令扩展了对数据流的支持
●支持非对齐的32bit(word)和64bit(双字)内存存取
●特殊的通讯设置指令用于增加寻址通用操作和误差校正代码
●位计数和选转硬件扩展了对位级算法的支持
●紧凑指令:
通用指令(AND、ADD、LD、MPY)有16位版本以减少代码尺寸
●保护模式操作:
一个特权程序执行的2级系统,以支持根高能力的操作系统和系统特征,比如内存保护
●错误检测的意外支持和程序重定向,提供鲁棒代码运行支持
●硬件支持模循环操作以减少代码尺寸
●每个乘法器能执行32x32位的乘法
●增加的指令用于支持复数乘法以允许每个周期多达8个的16位乘/加/减运算
●SPLOOP,硬件Buffer,实现硬件控制管线,导致更小的代码尺寸和可中断紧循环,以改善决策。
C674x器件通过改善代码尺寸和增加浮点运算使得性能得以增强和扩展:
●单精度(32位)和双精度(64位)IEEE浮点运算的硬件支持
●执行包能跨界取
●增加到64个寄存器(每个数据通道32个)
●S单元浮点加和减能力
●混合精度乘指令
●32x32bit整数乘,32bit或64bit结果
C6000的VelociTi结构使得它们成为第一款使用先进的VLIW的货架式DSP,通过增加指令级的并行机制获得高性能。
一个传统的VLIW结构组成如下:
并行运行的多个执行单元、单周期执行乘法指令。
并行机制是高性能的关键,它使得这些DSP的能力超过传统的设计性能,VelociTi是一款高度确定性的结构,对指令的存取、执行、和存储限制较少,它的结构灵活,这有利于TMS320C6000优化编译器的效率,VelociTi的先进特征,还包括:
●指令打包:
减少代码长度
●所有指令都可以有条件执行
●可变宽度指令:
数据类型的灵活性
●全管线分支:
0耗费分支
1.3.3DSP子系统功能描述
1.3.4TMS320C674x宏模块
1.3.4.1L1程序内存控制器(PMC)
1.3.4.2L1数据内存控制器
1.3.4.3统一的L1/L2Cache
1.3.4.4内部DMA(IDMA)控制器
1.3.4.5特性MMU
1.3.4.6中断控制器
1.3.4.6.1NMI中断
1.3.4.7Power-Down控制器(PDC)
1.3.4.8带宽管理(BWM)
1.3.5先进的事件触发(AET)
4)HD视频协处理器子系统(HDVCP)
1.4.1HDVICP2概述
HDVICP2是图像和视频硬件加速子系统。
HDVICP2支持精度达1080p/i60fps(或120场)。
HDVICP2子系统支持下面Codec标准,也就是说,标准的所有功能被加速(不需要DSP干预)。
●H.264:
BP/MP/HP编码和解码
●H.264:
FastProfile/ECDO编码和解码
●MPEG-4:
SP/ASP编码/解码(不支持低版本,如3.11和4.x)
●H.263:
Profile0和3解码,Profile0编码
●SoresonSpark:
V0和V1解码(不支持编码)
●MPEG-2SP/MP编码和解码
●MPEG-1编码和解码
●VC1/WMV9/RTV:
SP/MP/AP编码和解码
●ON2VP6/VP7解码
●RV8/9/10解码
●AVS1.0编码和解码
●JPEG(也包括MJPEG)Baseline编码和解码
●H264-AnnexH(MVC)
HDVCP2子系统由下面组成:
●一个主(primary)和一个辅(secondary)管理器(sequencer):
ICONT1和ICONT2,包括内存和中断控制,对这些管理器,ICONT1和ICONT2是等同的。
●一个视频DMA引擎:
vDMA
●一个熵编码/解码:
ECD3
●一个运动补偿引擎:
MC3
●一个变换和量化计算引擎:
CALC3
●一个loop滤波(deblockingfilter)加速引擎:
iLF3
●一个运动估计引擎:
iME3
●一个帧内预测引擎:
iPE3
●共享级(L2)接口和内存(256KB)
●局部互联
●消息接口,用于在同步盒之间进行通讯
●邮箱(MailBox)
●调试模块,用于跟踪事件和软件instrumentation:
SMSET
Ti选择eXpressDSPDigitalMedia(xDM)标准作为与HDVICP2的主要软件接口。
xDM标准定义了应有程序编程接口(APIs),通过它,应用程序启动一个特定的Codec,比如视频、图像、语音和音频(又称VISA(Video、Image、Speech、Audio)的编解码。
1.4.1.1HDVICP2功能描述
图1-11显示了HDVICP2子系统的框图:
1.4.1.2同步盒(SyncBox)
SyncBox是一个可配制的模块,它负责调度内置在HDVICP2子系统里的所有硬件模块,它处理所有的同步、数据共享、各加速器之间的参数传递。
它还提供了使用异步消息的可能。
1.4.2ICONTS
ICONT模块是一个基于ARM968E-S的微处理器,带有32KB紧耦合的指令内存(TCM)和16KB紧耦合的数据内存。
它包括一个中断控制器(INTC)、一个局部数据搬移器(mover)、它自己的用于同步其它模块的任务的SyncBox模块、相关的SyncBox处理者(handler)。
两个一样的ICONT实例:
ICONT1和ICONT2存在在HDVICP2子系统中,他们典型地能用于执行高级处理(在帧或Slice级),控制宏块级的边界框计算和其它vDMA处理任务。
对任何一个ICONT,软件能做等同的映射处理。
1.4.3vDMA
vDMA是一个DMA引擎,执行外部内存到共享L2内存的数据传输。
vDMA还能够执行在SL2里的内存和在外部的内存之间的copy。
1.4.4iME3
iME3加速器也执行视频编码的运动估计,iME3有自己的内置SyncBox模块用于同其它模块的任务进行同步。
iME3比较当前宏块和参考区域,提供参考区域中的一个area,这个area同当前宏块的差异最小,它还以半像素或1/4像素精度插值产生1/2和1/4像素块,另外,iME3支持在插值块中搜索最佳匹配块。
也即支持1/2和1/4像素精度的运动估计。
1.4.5iPE3
iPE3加速器用来执行视频编码的帧内预测,iPE3有自己的内置SyncBox模块,用来同其它模块进行任务的同步,LSE传输数据从内部内存到共享L2内存。
iPE3支持2个模块,取决于视频标准:
1)对于H264和AVS,作为空域帧内预测估计。
它用给定的帧内预测模式,按照原是宏块来创建帧内预测宏块,然后选择一个最小COST的模式并推荐为以俄国优化的帧内预测模式。
2)对MEPG-1/2/4和VC-1,作为空域Activity,它按照特定的块尺寸来计算原始灰度样本的空域activity,这个模式用来提供原始灰度像素的信息,这个值用来确定编码方式,这个值可以用来决定编码的宏块参数,比如编码模式和量化参数。
1.4.6MC3
MC3加速器用来执行运动补偿,MC3有两个内置的SyncBox模块用于与其它HWAs的任务的同步。
,LSE用来传输数据从内部内存到共享L2内存。
1.4.7CALC3
CALC3加