Hexagon DSP SDK简介与HVX扩展(1)介绍

一、DSP与HVX简介

1、DSP

在介绍HVX前,先看DSP,DSP就是帮CPU分担工作的一种处理器,特性就是效率高,功耗低,能够有效抑制发热问题。
从8150开始,有四个单独的dsp,每个dsp用于特定的功能:

  1. 传感器(sDSP)
  2. 调制解调器(mDSP)
  3. 音频(aDSP)
  4. 计算(cDSP)

2、HVX

HVX 是Hexagon Vector eXtensions的简称,HVX是DSP中一个可选的协处理器,它为标量DSP单元添加了128字节的矢量处理功能(在HVX编程的时候很多处理都要128对齐)。标量硬件线程通过访问HVX寄存器文件(也称为HVX上下文)来使用HVX协处理器。现在一般就是cDSP才支持HVX,但也不是所有版本的cDSP都支持HVX。下面的图中可以看出,一些较低版本的aDSP也支持HVX。
注:HVX是V66特有的,所以要使用HVX编译的选项要选择V66版本。
在这里插入图片描述

3、cDSP内存子系统

cDSP有一个两级缓存子系统。
L1只能由标量单元访问(Scalar是标量单元),L2是标量单元的第二级内存,也是HVX协处理器的第一级内存。
向量单元支持各种加载/存储指令,包括对未对齐向量和每字节条件存储的支持。
在这里插入图片描述
CPU和DSP之间的通信是通过中断共享内存完成的。由于CPU和DSP不共享缓存,因此需要对它们之间处理的所有缓冲区执行维护操作。这些过程至少需要几百微秒。根据系统时钟设置和启用的CPU睡眠模式,每次调用DSP的开销可能会延长到几毫秒。因此,最好将大型任务卸载到DSP上,而不是调用它来处理小型的琐碎任务。
如何将这些任务从CPU读到DSP上呢?

4、FastRPC

将任务加载到DSP上的主要机制称为FastRPC。FastRPC通过透明地编组和解编组两个处理器之间交换的参数,方便了CPU和DSP之间的远程过程调用。在IDL文件中声明API。IDL语法允许定义函数调用的名称以及在应用程序和DSP处理器之间交换的每个参数的类型,idl文件如下图所示(具体的更详细的idl编程后面文章会说)
在这里插入图片描述
总之,将任务放到DSP上处理的过程,就是从CPU->FastRPC->DSP的调用过程,代码也是三部分:
CPU代码 -> FastRPC idl代码 -> DSP代码(这个图要始终牢记)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值