1. 概述
RK3399是低功耗、高性能处理器,用于计算、个人移动互联网设备和其它智能设备应用。基于Big.Little架构,它集成了双核Cortex-A72和四核Cortex-A53,具有独立的NEON协处理器。
许多内置的功能强大的硬件引擎为高端应用提供了优化的性能。RK3399支持多格式视频解码,包括H.264/H.265/VP9,高达4Kx2K@60fps,特别是H.264/H.265解码器支持10bits的编码,还支持H.264/MVC/VP8编码,高达1080p@30fps,高质量JPEG编解码,特殊的图像预处理和后处理。
内置的3D GPU使得RK3399弯曲兼容于OpenGL ES1.1/2.0/3.0/3.1,OpenCL和DirectX11.1。特殊的带MMU的2D引擎可以最大化显示性能并提供非常平滑的操作。
RK3399有高性能双通道外部内存接口(DDR3/DDR3L/LPDDR3/LPDDR4),能够支撑需要的的内存带宽要求,还提供了一套完整的外设接口以灵活支持各种应用。
2. 特点
2.1微处理器
l 双核ARM Cortex-A72多核处理器和4核ARM Cortex-A53 多核处理器,都是高性能、低功耗和缓存的(cached)应用处理器。
l 2个CPU族。Big族的双核Cortex-A72优化用于高性能,Little族的四核Cortex-A53优化用于低功耗。
l ARM结构v8-A指令集的全实现,ARM Neon高级SIMD(单指令多数据)支持加速多媒体和信号处理。
l ARMv8 加密扩展
l SCU确保每个族的多核之间的内存一致性
l CCI500确保两个族之间的内存一致性
l 每个Cortex-A72集成48KB L1指令缓冲和32KB L14-way 集相关的数据缓冲,每个Cortex A53集成32KB L1指令缓冲和32KB L1数据缓冲,缓冲结构是独立的4-way集相关。
l 1MB统一的L2 Cache用于Big族,512KB统一的L2 Cache用于Little族。
l 支持信任区域技术
l 完整Coresight调试解决方案
n 整个系统调试和跟踪的可见信
n ETM跟踪支持
n 入侵式和非入侵式
l 8个独立的电源域用于CPU核系统,以支持内部的电源切换和外部的On/Off,以满足不同的应用方案。
n PD_A53_L2:little族的第三个Cortex-A53+Neon+FPU+L1 I/D Cache
n PD_A53_L3:little族的第四个Cortex-A53+Neon+FPU+L1 I/D Cache
n PD_A53_L:SCU + L2 Cache控制器,包括PD_A53_L0,PD_A53_L1,PD_A53_L2,PD_A53_L3,little族的调试逻辑
l 两个隔离电压源,独立支持big族和little族的DVFS
l 2个隔离的支持DVFS的电压域,独立用于big族和little族。
2.2 内存组织
l 片内内存
n BootROM
n 内部SRAM
l 片外内存
n DDR3/DDR3L/LPDDR3/LPDDR4
n SPI NOR/NAND Flash
n eMMC5.1
n SD3.0/MMC4.51
2.3 内部存储器
l 内部BootROM
n 尺寸:32KB
n 支持系统从下面设备中boot:
u SPI接口
u eMMC接口
u SD/MMC接口
n 支持系统代码从下面接口下载:
u USB OTG接口
l 内部SRAM
n 尺寸:200KB
n 支持加密和非加密存取
n 加密和非加密空间可以通过软件来编程
n 加密空间可以是0KB、4KB、8 KB、12 KB、16 KB,。。。多达64KB,步长4KB
2.4 外部存储器或存储设备
l 动态内存接口(DDR3/DDR3L/LPDDR3/LPDDR4)
n 兼容JEDEC标准DDR3-1866/DDR3L-1866/LPDDR3-1866/LPDDR4SDRAM
n 支持2通道,每个通道是16或32bit数据宽度
n 每个通道支持2个Ranks(片选),总共4GB(最大)寻址空间,一个通道里的一个RANK的最大寻址空间也是4GB,软件可以配置。
n 32bit/64bit数据宽是软件可编程的。
n 可编程的定时参数支持不同厂家的DDR3/DDR3L/LPDDR3/LPDDR SDRAM
n 高级命令重定序和调度,最大化总线使用率
n 内置动态PHY漂移检测,以获得控制器上的动态漂移补偿。
n 可编程输出和ODT阻抗,具有动态PVT补偿。
n 低功耗模式化,比如DDR3/DDR3L/LPDDR3/LPDDR4SDRAM掉电和自刷新。
n 支持待机模式,自动门控DDR控制器时钟,以节电
n 支持基于硬件的DDR频率调制
l eMMC接口
n 完全兼容JEDEC eMMC5.1和eMMC5.0规范。
n 仅有一个eMMC接口。
n 后向兼容eMMC4.51和早期版本规范
n 支持HS400、HS200、DDR50和传统的操作模式。
n 支持eMMC boot序列,接收来自外部eMMC设备的boot数据。
n 通过停止接口时钟来处理FIFO过载和欠载。
n 使用8bit并行数据线支持3200Mbit/s的数据率(eMMC HS400)
n 使用8bit并行数据线支持1600Mbit/s的数据率(eMMC HS200)
n 使用8bit并行数据线支持832Mbit/s的数据率(eMMC DDR52模式)
n 1bit、4bit、8bit数据传输模式
n 命令CRC采用CRC7,数据CRC采用CRC16以维护数据完整性。
l SD/MMC接口
n 兼容SD3.0、MMC ver4.51
n 有2各MMC接口,可配置为SD/MMC或SDIO
n 通过自动停止卡时钟,以支持FIFO过载和欠载保护
n 支持CRC产生和错误检测
n 内置时钟频率分配控制,以提高可编程波特率
n 支持1到65535字节的块尺寸
n 数据总线宽4bits。
2.5 系统部件
l Cortex-M0
n 在RK3399里有两个Cortex-M0与Cortex-A72/Cortex-A53协同工作
n Thumb指令集组合高代码密度,具有32位性能
n 集成休眠模式以降低功耗
n 快速代码执行允许更低的处理器时钟或增加休眠模式时间
n 明确的高性能的中断处理,适合实时处理的应用
n 串行线调试方式减少了debug脚的数量
l CRU(时钟和复位单元)
n 支持RK3399里的每个单元的时钟控制
n 一个带24MHz时钟输入的晶振,8个内置的PLLs
n 支持整个SOC的全局软件复位控制,也具有每个部件也有独立的软件复位
l PMU(电源管理单元)
n 多个可配置的工作模式,以节省功耗:工作时钟频率的控制,工作时钟的自动门控,电源域的ON/OFF控制
n 在不同的模式下,有许多唤醒资源
n 6个独力的电压源
n 30各独立的电源域,能基于不同的应用场合软件控制上电或下电。
l Timer
n 14个片上64bits定时器,基于中断方式操作,用于非加密应用
n 12个片上64bits定时器,基于中断方式操作,用于加密应用
n 提供两种操作模式:自由运行和用户定义的计数
n 支持定时器工作状态可检查
n 固定的24MHz时钟输入
l PWM
n 4个片上PWMs,基于中断方式操作
n 可编程预置范围的运行,从总线时钟到之后的进一步比例降低
n 内置32bit定时/计数器
n 支持捕捉模式
n 支持连续模式或一次性模式
n 提供参考模式和输出不同占空比波形
l Watchdog
n SoC里有3个Watchdogs,它们是32bits计数器
n 计数器时钟来自APB总线时钟
n 计数器从一个预置值减到,表示发生了超时
n WDT能执行两种类型的操作,当超时发生时:
u 产生系统复位
u 先产生一个中断,如果不被服务程序按时清除,则第二次超时发生,并产生一个系统复位
u 可编程复位脉冲宽度
u 总共16个定义好的主超时周期范围
l Mailbox
n SoC里有2各邮箱,为多核之间的通讯服务
n 每个邮箱支持4各邮箱元素,每个元素包括一个数据字,一个命令字寄存器和一个标志位,这个标志位能代表一个中断。
n 提供32个锁定寄存器,供软件用来表示邮箱是否被占用。
l 总线结构
n 128bit/64bit/32bit多层AXI/AHB/APB复合总线结构
n 内置的CCI500支持2族cache一致性
n 内置5个AXI互连
u PERI低性能互连,具有1个128bit AXI master,7个64bit AXI masters,1个32bit AXI master,2个64bits AXI slaves,5个32bits AHB masters和许多32bits AHB/APB slaves
u PERI高性能互连,具有1个128bits AXI master,1个128bits AXI slave,4个32bit AHB masters和许多32bits AHB/APB slaves
u 显示互连,具有2个128bits AXI masters,2个64bits AXI masters和4个32bits AHB slaves。
u GPU互连,具有1个128bits AXI master和32bits APB slave
u VIDEO互连,具有1个128bits AXI masters,2个64bits AXI masters和4个32bits AHB slaves
n 灵活的不同的QoS解决方案,以改进总线带宽的使用
l 中断控制器
n 支持8 个PPI中断源和148 SPI中断源输入,来自RK3399里的不同部件
n 支持16个软件触发中断
n 中断级别是固定的,高级灵敏度用于SPI,低级灵敏度用于PPI
n 支持局部特定的外设中断(LPIs),这些中断由一个外设产生,写到控制器里的一个内存映射的寄存器里
n 2个AXI流中断接口,每个族独立
n 支持每个中断源的不同中断优先级,它们总是软件可编程的。
l DMAC
n 基于DMA的微码编程
n 特定指令集用于提高编程DMA传输的灵活性
n 支持DMA的链接列表功能,以便可以完成集散传输
n 支持内部指令cache
n 内置DMA管理线程
n 支持数据传输类型:内存到内存,内存到外设,外设到内存
n 使用中断输出信号的不同DMA事件发起DMA传输
n 在每个通道和不同中断数出之间的映射关系是软件可编程的
n 两个内置的DMA控制器,BUS_DMAC是用于总线系统,PERI_DMAC是用于外设系统
n DMAC0特征:
u 总共6个通道
u 来自外设的10个硬件请求
u 2个中断输出
u 双APB从接口,用于寄存器配置,设计为加密和非加密
u 每个DMA通道,支持信任区技术和可编程加密状态
n DMAC1特征:
u 总共8个通道
u 来自外设的20个硬件请求
u 2个中断输出
u 双APB从接口,用于寄存器配置,设计为加密和非加密
u 每个DMA通道,支持信任区技术和可编程加密状态
l 加密系统
n 支持信任区技术的有RK3399里的以下部件:
u Cortex-A72,支持加密和非加密模式,由软件切换
u Cortex-A53,支持加密和非加密模式,由软件切换
u 除了Cortex-A72和Cortex-A53外,SoC里的其它masters通过软件编程也能支持加密和非加密模式
u SoC里的某些slave部件仅能被加密master寻址,其它slave部件通过软件编程可以被加密或非加密master寻址
u 片内内存和部分空间仅能在加密模式下寻址,详细的尺寸由软件与TZMA(信任区内存适配器trustzone memory adapter)一起编程
u 外部DDR空间能划分为8各部分,每个不能能由软件编程为加密或非加密模式寻址
n 内置双通道加密和解密引擎
u 支持AES 128/192/256bitskey模式,ECB/CBC/CTR/XTS链模式,slave/FIFO模式
u 支持DES/3DES(ECB和CBC链模式),3DES(EDE/EEE key模式),slave/FIFO模式
u 支持SHA1/SHA256/MD5(带硬件填补)HASH函数,仅FIFO模式
u 支持169bit PseudoRandom Number Generator(PRNG)
u 支持256bit TrueRandom Number Generator(TRNG)
u 支持PKA 512/1024/2048bitExp Modulartor
n 支持加密boot
n 支持加密debug