AURIXTC4x 微控制器的并行处理单元(PPU)简介

并行处理单元(PPU)是集成在英飞凌AURIX™ TC4x微控制器系列中的协处理器。(找元器件现货上唯样商城)PPU旨在卸载主CPU的信号处理、滤波和其他数学运算,从而为要求严格的应用程序(例如实时控制、传感器信号处理和轨迹规划等)提供高计算能力和缩短执行时间,并且能支持实现简单的神经网络算法。

 

本文将简要介绍PPU的内部结构、功能和应用领域。

 

1. PPU内部结构

 

707d8f5724044482ad3b3cb8f58e84a2.png

 

 

 

 

 

 

 

 

 

 

 

 

图1.  TC4x微控制器示意框图

图1是TC4x 微控制器示意框图,图中右上角是PPU的简化结构,由标量核(scalar core),向量核(vector core/SIMD core),一级缓存,及其它系统资源组成。

01

标量核(Scalar Core):标量核用于执行大量的标量运算,以及任务调度。标量核支持多种算术运算和逻辑运算,还支持硬件浮点运算,从而实现更高的计算效率。另外,标量核提供丰富的硬件功能安全机制,可以辅助实现高功能安全等级的任务。

02

向量核(Vector core/SIMD Core):向量核是 PPU 的另一个重要功能模块,专门用于执行向量运算。向量核支持多种向量算术运算、逻辑运算和专用信号处理,支持整型数和浮点运算,从而实现更高的计算效率。向量核还支持多级流水线和 SIMD(single instruction multiple data,单指令多数据)指令,对不同数据同时执行同样的操作,通过并行执行多个向量运算来提高效率。

03

一级缓存:一级缓存是PPU用于保存计算输入和输出数据的存储空间。由于结构上和运算核紧密耦合,该缓存可以在PPU 的执行过程中对状态进行快速读写,并且有EDC/ECC保护,从而实现更高的执行效率和更高的可靠性。

04

其它系统资源:包括用于快速数据搬运的DMA,共享内存区等等。

 

 

2. SIMD 和VLIW指令

 

 

 

 

 

 

 

 

 

 

 

 

2.1 SIMD(Single Instruction Multiple Data)指令

 

SIMD(Single Instruction Multiple Data)指令是一种并行指令,可以同时对多个不同数据进行相同的操作。这种指令可以大幅提高计算效率,特别是在执行向量运算时效果更为明显。

PPU 的 SIMD 指令集包括多种运算指令,如数学运算、逻辑运算等。这些指令都是并行指令,可以同时对多个数据进行操作,从而大幅提高计算效率。例如,PPU 的 SIMD 加法指令可以一次性对多个数据进行加法运算,从而实现更高的计算速度。

 

下面是一个示例,假设有两个向量 A 和 B,每个向量包含 16 个 16 位整数 ,要计算 A 和 B 的和。如果使用不支持SIMD指令的标量核,代码示例如下,需要进行16次循环运算,将不同的A[i]、B[i] 数据依次顺序进行加法操作,相当费时。

 

 

 

而如果使用支持SIMD指令的 PPU进行运算,则可以一次完成,假设PPU位宽是256bit(=16*16bit):

 

 

由此可见,支持SIMD指令的PPU在进行向量运算时,通过降低同样运算的处理次数,从而有效节省运算时间,提高处理效率。

 

2.2 VLIW(Very Long Instruction Word)指令

 

VLIW(Very Long Instruction Word)是一种处理器的并行架构,允许在单个时钟周期内,由处理器的不同部件同时执行多个操作。

 

例如,如果要执行两个复向量A和B的乘法 ,结果存储在向量C中。

 

 

C语言实现如下:

 

 

如果在标量核上运算,会顺序执行下列代码,并循环多次:

 

 

PPU内的向量核有三个处理单元,包括两个浮点运算器,和一个读取/存储部件用于将RAM中的数据搬运到核内寄存器。这三个部件可以同时运行,形成指令层面的并行机制,从而实现VLIW指令。

 

上列代码由PPU处理,可以将第4和第5行的乘法运算分别分配给两个浮点运算器同时处理,如下红框所示。而在下个指令周期内,第7,8,9行的指令可以分配给三个部件同时处理,如下蓝框所示。从而将原先需要12条指令周期运行的代码缩短到9条(12-1-2=9)指令周期,提高执行效率。

 

 

 

3.  应用场景

 

 

 

 

 

 

 

 

 

 

 

 

 

PPU适用于不同应用场景,图2 列出了三种较常见的算法。第一种是将时域信号转变为频域信号,以提取频率信息的快速傅里叶变换(FFT)。FFT 在数字信号处理中得到了广泛的应用,如音频信号处理、毫米波雷达信号处理等。

 

图2. PPU实现的算法

 

b1974337c50a49d4aabcd84ad1cb8a90.png 

 

第二种是多层感知算法,它是一种基于人工神经网络的机器学习算法,可以用于分类、回归和模式识别等应用。MLP 由多个神经元组成,每个神经元都包含多个输入和一个输出。MLP 通过学习输入和输出之间的映射关系,从而实现对新数据的预测和分类。MLP 在机器学习和数据挖掘中得到了广泛的应用。除此之外,MLP 还可以用于控制和优化问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值