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