高性能数字信号处理器TMS320C55x的6种并行处理应用

是一种高性能的数字信号处理器,其强大的并行处理能力能够进一步提高其运算能力。本文介绍了C55xDSP的内核结构以及用户自定义并行指令时必须遵守如下3条并行处理基本规则,并介绍了6种典型的并行处理应用。利用本文介绍的方法使用并行处理能力将有效提高程序执行效率,同时降低系统功耗。

德州仪器公司(TI)的TMS320C55x(简称C55x)DSP内核是在TMS320C54x(简称C54x)基础上开发出来的,并可以兼容C54x的源代码。C55x的内核电压降到了1V,功耗降到0.05mW/MIPS,是C54x的1/6。C55x的运行时钟可以达到 200MHz,是C54x的两倍,再加上C55x在C54x结构上作了相当大的扩展,程序执行时可以大量采用并行处理,这样使得C55x的实际运算能力可以达到300MIPS以上。

C55x DSP已越来越多地应用于各种手持便携终端当中。以下我们将通过详细介绍C55x的CPU内核结构,讨论其并行处理技术的应用。

C55x DSP是一款采用改良型哈佛结构,高度模块化的数字信号处理器拥有比普通DSP更为丰富的硬件资源,能够有效提高运算能力。其内核结构如图1所示。

整个处理器内部分为5个大的功能单元:存储器缓冲单元(M单元)、指令缓冲单元(I单元)、程序控制单元(P单元)、地址生成单元(A单元)和数据计算单元(D 单元),各个功能单元之间通过总线位程序数据总线位程序地址总线位的数据总线(B、C、D、E、F总线位的数据地址总线(BA、CA、DA、EA、FA总线)。这种高度模块化的多总线x DSP拥有超强的并行处理能力。

M单元主要管理数据区(包括I/O数据区)与中央处理器(CPU)之间的数据传送,使得高速CPU与外部相对低速的存储器之间在吞吐量上的瓶颈可以得到一定程度的缓解。

I单元从程序数据总线接收程序代码,并将其放入指令缓冲队列(IBQ)中,然后利用指令译码器将指令缓冲队列中的程序代码进行译码,最后再将译码后的指令送给P单元、A单元、D单元进行处理。

P单元主要是通过判断是否满足条件执行指令的条件来控制程序地址的产生,达到控制程序流程的目的。程序控制单元中还含有程序控制寄存器、循环控制寄存器、中断寄存器和状态寄存器等硬件寄存器。通过循环控制寄存器的设置,可以直接控制程序中的循环次数等,而不必像在普通DSP中一样在外部对循环条件进行判断,从而可以有效提高运行效率。

A单元的功能是产生读写数据空间的地址。地址生成单元由数据地址产生电路(DAGEN)、16位的算术逻辑单元(ALU)和一组寄存器构成。C55x DSP地址产生与其他功能模块分开,保证不会因为地址产生的原因使得单条指令需要在多个时钟周期内完成,提高了DSP的运行效率。A单元中的寄存器包括数据页寄存器、辅助寄存器、堆栈指针寄存器、循环寻址寄存器和临时寄存器等。

D单元是C55x DSP中主要的数据执行部件,完成大部分数据的算术运算工作。它由移位器、40位ALU、两个17位的乘累加器(MAC)和若干寄存器构成。数据计算单元的两个乘累加器能够并行使用,可以有效提高DSP运行效率。D单元中的寄存器包括累加器和两个用于维特比译码的专用指令寄存器。

如图1所示C55x DSP内核结构可知,整个处理器的地址及数据运算由P单元、A单元和D单元完成。这三个单元相对独立,各自通过总线与数据区及程序区相连。这种相互独立的模块化结构,在硬件特性上确保这三个单元在同一时钟周期内能够进行并行处理,完成各自不同的运算操作。

在C55x DSP指令集中有一些固定搭配的并行执行指令(主要是利用D单元双MAC结构的并行指令),这些被固定使用的并行指令之间使用“::”符号连接。除了这些固有的并行指令外,用户也可以根据CPU结构特征自行定义并行指令,并行的两条指令之间需使用“”符号连接,以区分指令集中的并行指令。

规则1: 保证不产生硬件冲突,包括操作数、寄存器、总线及各运算模块的冲突。在对C55x DSP的所有操作中,对P、A、D三个单元进行操作的指令类型有14类,这14类操作指令之间有很大一部分可以相互并行运行。经过我们对C55x DSP硬件电路结构的分析,在只考虑硬件模块冲突的情况下,我们得出如图2所示的C55xDSP并行处理能力分析图。图中将14类操作指令组成了一个14 ×14的矩阵,列出了每一类指令与其自身及其他13类指令并行执行的能力。图中画有(符号的空格代表不能并行执行,相反没有任何符号的空格代表可以并行执行。

在考虑并行处理的硬件冲突时,还需要考虑总线资源的冲突。总线资源的冲突通常发生在数据总线条数据总线条常量总线,各条总线与各运算模块的连接如图3所示。

数据总线中,C、D总线是读数据总线,通过这两条总线进行数据读取;E、F总线是写数据总线,通过这两条总线进行数据写操作;另外还有一条特殊的B总线,这条总线可以进行读或写操作,但是它只能被CDP寄存器使用,而其它辅助寄存器无法使用B总线。

两条常量总线分别是KA、KD总线。KA常量总线用于产生地址数据。P单元的KA常量总线负责产生程序地址,例如跳转指令B #RouTIne2中,常量#RouTIne2就是通过KA常量总线被送到P单元的。A单元的KA常量总线负责产生数据存储区地址,例如在指令 Mov*SP(#7),Brc0中,偏移量#7就是通过KA常量总线被送到A单元的。KD总线用于传送参与运算的常量数据,例如指令ADD #123,AC0中,常量123就是通过KD总线:受指令缓冲队列(IBQ)的限制,并行语句的总长度不能超过6个字节。 I单元中的译码器只能将IBQ中的1~6个字节的程序进行译码。如果一条并行语句的长度超过6个字节,则需要在两个时钟周期内对其进行两次译码。因此必须将两条并行语句的总长度限制在6个字节。

规则3:当需要寻址两个及以上数据存储区数据时,必须使用双重AR间接寻址方式。

采用双重AR间接寻址方式,可以通过使用2个不同的辅助寄存器(AR0~AR7)同时访问数据存储区中两个不同的数据。在这种寻址方式下,我们可以通过两条不同的数据总线,在同一时钟周期内寻址两个不同数据,并将其输入不同的运算模块进行计算。

在编程实现过程中,对每一个并行处理都进行仔细分析将能达到事半功倍的效果。下面是我们总结出的几种典型并行处理应用:

在C55x DSP的D单元中采用了双MAC的结构,其结构如图4所示。这里有3条数据总线(B、C、D数据总线)与两个MAC模块相连。在同一时钟周期里,可以同时通过3条数据总线将三个不同地址的数据传入两个MAC模块中进行并行计算。

通常情况下,两个MAC模块的运算总共需要4个数据,而这里的总线条,所以在并行使用双MAC结构时,两个MAC模块必须共用一组数据,而另外两组数据分别分配给两个MAC模块。这使得双MAC结构的并行应用受到一定的限制。

C55x的双MAC结构比较典型的应用如不同数据的相同算法处理和同一数据的不同算法处理。下面是对不同数据进行相同FIR滤波的实例:

的抽头系数。C55x DSP的指令集中还含有其它与双MAC模块并行处理的专用指令,在此就不再仔细分析。2. 存储区数据装载指令与存储指令的并行

A单元、P单元和D单元均可以对存储器中数据实现装载及存储。数据的装载与存储使用的是不同总线,不会发生硬件冲突,易于实现并行处理。以下是在D单元内实现两个数据装载与存储的实例:

此例是在D单元内对AC0进行存储并装载数据到AC1。程序执行时,将数据通过D总线数据通过E总线写入存储器,这样就避免了硬件冲突,满足并行规则1。两条指令总长度为4字节,小于IBQ6个字节的限制,满足了并行规则2。两条指令均采用双重间接寻址,满足了并行规则3。通过上机调试,这条并行指令确实能够正确编译并执行。

这是一个A单元ALU模块与D单元移位操作模块的并行处理实例。它在A单元完成16位加法运算,并将结果存放于AR1,同时在D单元完成对寄存器AC0的移位存储操作。这两条指令之间不存在硬件冲突,满足并行规则1。两条指令总共长度为5个字节,小于IBQ6个字节的限制,满足了并行规则 2。这里只使用了一个储器中的数据,不需要满足并行规则3的规定。通过上机调试,这条并行指令能够正确编译并执行。

这是一个D单元移位操作模块与D单元ALU模块的并行处理实例。它在移位操作模块中完成寄存器AC0的移位,然后将移位后的值通过E总线存储到存储器中,同时在ALU模块中完成寄存器AC0与AC1的加法运算,然后将结果存放于AC1。这两条指令不存在硬件冲突,满足并行规则1。两条指令总长度为5个字节,小于IBQ6字节的限制,满足并行规则2。这里只需使用一个存储器中的数据,不需满足并行规则3。通过上机调试,这条并行指令能够正确编译并执行。

P单元程序控制模块与其他的算术运算模块相对较独立,不易发生硬件冲突,便于进行并行处理。下面是一个程序控制指令与算术运算指令的并行:

RPTBLOCAL JUMP1 这是一个D单元ALU模块与P单元程序控制模块的并行实例。它在D单元ALU中将D总线,同时完成程序循环控制。程序执行中不存在硬件模块和总线;此例只使用一个存储器中的数据,不需要满足并行规则3。通过上机调试,这条并行指令能够正确编译并执行。

D单元拥有两条写总线(E、F总线),在通常情况下我们只使用了其中的一条写总线造成资源浪费。假如我们需要对某块数据存储区清零,通常的做法如下:

这段程序对存储区数据逐一清零,每次只使用了D单元的E总线个时钟周期才能完成。在这种情况下,如果我们充分利用E、F总线,将有效地降低这段程序的运算量。具体实现如下:

这段程序与上一段的最大不同点在于,一个时钟周期内通过E、F总线将两个初始数据同时传送到指定的数据区,同时初始化两个字的存储空间。这段程序只需要5个时钟周期就可以完成10个字的初始化,比普通做法节约一半的运算量,提高了使用效率。

点击右方佳嵌图标,可以看所有课程。我们将《嵌入式工程师-系列课程》分成两大阶段:第一阶段:《计算机体系结构》课程&n

在通信、雷达等系统中,特别是在3G无线基站等系统中,随着输入语音 数字和分组数据量急剧增加,系统的处….

如果交易达成,将彻底改变芯片市场格局。英伟达的创始人“皮衣教主”黄仁勋得到梦寐以求的CPU帝国,再加….

我国厨余垃圾处理器市场有非常广阔的发展潜力,按照10年达到10%的渗透率,2030年中国厨余垃圾处理….

近期,印度宣布一项全国竞赛,并鼓励使用印度自主研发的RISC-V微处理器设计。他们希望通过RISC-….

业内领先的高端光模块解决方案提供商苏州旭创科技有限公司今日宣布2020年上半年成功推出的100G/2….

其中,定位全面屏轻薄旗舰本的MateBook X采用轻量化镁铝合金一体化机身,重量轻至1kg、机身比….

作为一种先进的计量装置,智能电表能依托于现代计算机技术、通信技术以及计算机技术,对电能信息数据进行精….

在三个关键系统模块(处理器,内存和互连(I/O))之间需要互相协调,每个要都在更好的提升性能。

异步设计有许多种不同的途径,而前提是电路不受单一时钟控制。多数情况下,异步逻辑被用于通过专门的电路设….

DSP是对数字信号进行高速实时处理的专用处理器。在当今的数字化的背景下,DSP以其高性能和软件可编程….

目前,单车智能等级共有L0-L5等级别,全球尚处于L2和L3阶段,自动驾驶程度还不是很高,因此安全保….

随着大规模集成电路及高速数字信号处理器的发展,通信领域的信号处理越来越多地在数字域付诸实现。软件锁相….

技术快速发展的情况下,游戏本市场已经今非昔比。现在游戏本的价格都普遍为大众接受,同时消费者还可以根据….

从专利文件中来看,像扬声器和麦克风等电器元件将会被内置到卷曲后的直筒内部,同时摄像头被设计在的另外一….

5G 低时延、高可靠等特性打破了 4G 和光纤的局限,有效承载配网差动保护的技术要求,实现将故障隔离….

最近在做helloWorldAlg的移植学习,但是最后编译的时候,我用make mcfw_bios6 或者 make mcfw_bios6_all 或者make m…

1 引言 采用光纤陀螺的捷联惯性导航系统是一种极具发展潜力的导航系统,对于其核心部件的光纤陀螺,尤其是中高精度光…

变频技术作为现代电力电子的核心技术,集现代电子、信息和智能技术于一体。针对工频(我国为50 Hz)并….

天玑800U采用7nm制程,集成5G调制解调器,支持Sub-6GHz独立组网(SA)和非独立组网(N….

8月份除了手机新旗舰频发之外,手机厂商的新款笔记本也是层出不穷。前两天红米先后发布了两款笔记本,分别….

当今世界是一个高度数字化的世界,系统设计者们越来越倾向于将所有的处理过程数字化,这是由于数字技术的诸….

原子操作的概念来源于物理概念中的原子定义,指执行结束前不可分割(即不可打断)的操作,是最小的执行单位….

《漫威复仇者联盟》游戏将于太平洋时间 2020 年 9 月 4 日发布。作为《漫威复仇者联盟》的独家….

数字信号发生器是在电子电路设计、自动控制系统和仪表测量校正调试中应用很多的一种信号发生装置和信号源。….

随着全球卫星定位系统(GPS)的广泛应用,基于GPS的实时相量测量装置PMU(Phase Measu….

静力测量可用于许多不同的测量系统中。目前大多数工业控制系统、地质勘测系统以及建筑测量中所使用的计量设….

存储方面,POWER10采用突破性的Memory Inception新技术,可支持创建多个PB级别大….

大家好: 在调试dsplink时候,产生了一些疑问,希望得到帮助。 …

随着科学技术的高速发展,视频图像和语音数字化处理在军事、科研、工农业生产、医疗卫生等领域的应用越来越….

对数据存储业来说,磁盘驱动器生产商通过增加磁道密度(以每英寸的磁道数为单位)和磁盘转速(以每分钟转数….

当越来越多的服务器、数据资源和应用服务(Application,例如看网页,下电影)被集中起来,就变….

长期以来,IBM POWER一直是通过结合硬件和软件功能为混合云和本地工作负载提供各种灵活部署的领导….

另有消息称,英特尔已与台积电达成协议,向后者预订了明年18万片6nm芯片的产能。受此消息影响,截至北….

由于华为遭美方制裁、5nm麒麟单子受到影响,从理论上看,台积电可分配的5nm产能应该说没有之前那么紧….

ADS1274/ADS1278是德州仪器(TI)推出的多通道24位工业模数转换器(ADC),内部集成….

最近英特尔终于带来了一些好消息,除了下一代(第11代)酷睿处理器的工艺制程全面进军10 nm节点以外….

那么,这些新兴存储技术为什么会如此受期待呢?主要原因在于:随着半导体制造技术持续朝更小的技术节点迈进….

该系统的核心器件是TMS320F2812和MAX125。TMS320F2812是TI公司的一款高速D….

制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。这个….

大家好: 我现在使用的DM8127 RDK3.2版本,想在dsp中添加自己的识别算法。请问怎样调试啊?如果使用CCS的话应…

该公司还计划在2021年下半年宣布一个名为“ Alder Lake”的新10nm处理器系列,其中还将….

而异地同步测量是工程中经常用到的方法,如果用传统的授时模式,其时钟频率的产生是用晶体,而晶体会老化,….

在对新分区的设计进行分析时,控制算法不会足够频繁地运行来充分地保持检测精度。性能瓶颈在很大程度上归因….

短波通信是通过电离层反射来实现远程信息传输,因而其通信受地形限制小;其次通信成本低,灵活性强。但它也….

在数字波束形成技术的工程化过程中,也遇到了一些问题。主要包括:数据传输量太大,尤其当阵元数较多时,这….

250-E1S 是一种符合 E1.S SFF-TA-1006 EDSFF 规范的 PCIe 计算存储….

到目前为止,只有高通拥有足够的规模和专业技术为移动电话提供成功的系统级调制解调器到天线解决方案。 有….

现在电路板加工无论是较小(电阻、电容等)与较大(connector等)的电子零件都是走SMT制程了吗….

Linux 性能问题一直是程序员头上的“紧箍咒”,大多数时候,我们只能看到“症状”,却不知道从哪儿下….

2020年8月14日至16日,由工业和信息化部联合深圳市人民政府共同主办的第八届中国电子信息博览会 ….

本文将对英特尔 Tiger Lake SoC予以介绍,如果你想对它的具体情况一探究竟,或者想要增进对….

当我还是个孩子的时候,我在一个小镇上生活,从来没有看过计算机,那时的计算机和智能手机并不常见。 我记….

字符设备与块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般紧接着发生。块设备则….

ipadpro2020的a12zcpu是8核,GPU也是8核内存6GB而macbook air202….

橙色部分是 ST 自己的 SWIM 调试接口,可以实现非侵入式的调试,功能就是类似 ST-LINK ….

经过多年对 FinFET 晶体管技术的改进,Intel 正在重新定义该技术。据介绍,10nm Sup….

@Tony Tang您好,非常感谢您给我的Boot_DSP_on_SOC_V0.2代码,我已经成功在我的板子上ARM核启动DSP,…

CCS V6/CCS V7及以上添加CCS V5的软件仿真部分的方法及资料

请教下,dsp6747,norflash烧写,需要二次bootloader,bootloader我用AIS工具转换的,可以运行,跳转到hex6x.exe生成…

现有问题向大家求解: 裸板OMAPL138的ARM端代码是arm_demo1.out很大几百KB,DSP端代码是dsp_demo1.out。…

Tags:

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注