全面解读C64x+ 对 C64 内核的性能提升

发布时间:2012-06-30 阅读量:1796 来源: 发布人:

中心议题:
    *  新增49条指令
    *  新增软件流水缓存(SPLOOP Buffer)
    *  支持紧凑指令(Compact Instructions)
    *  支持特权系统

引言:目前已上市的TI高性能DSP如TM320C6455(下文简称为C6455)及SoC如TMS320DM6443/6(下文简称为DM6443/6)都采用C64+的内核,C64x+内核一方面延续C64内核优势,另一方面从结构上及性能上做了改进,以提高处理能力。本文主要从内核结构及指令上介绍C64+内核相对于C64内核的性能提升,以让业内工程师在基于C64+的内核应用开发过程中,能够充分利于其性能。


TI所推出的C64x+内核完全兼容C64x,这有利于基于C64x的程序向C64x+移植。结构上同样是64个通用寄存器,支持32bit、40bit、64bit的数据类型,也支持8bit和16bit打包数据类型,其中A0-A2,B0-B2都可做条件寄存器。其中一侧的功能单元(A或B侧)可以访问到另外一侧(B或A侧)的通用寄存器中的操作数。指令上兼容C64x内核的所有指令,而在其它性能上做了如下提升。

1. 新增49条指令

以乘法功能单元(M unit)为例,该单元的的改进,新增指令加大了乘法运算带宽,支持32bit乘法,和复数乘法,使每周期16×16的MAC数达8个。如下面例子所示:

对于C64x和C64x+,两个复数复数乘法((dre+dim*i)*(cre+cim*i)=pre+pim*i)操作分别如下,

对于C64x使用下列两条指令实现,
DOTP2 dre_dim, cim_cre, pim  ;dre_dim和cim_cre分别是将两个复数的实
;虚部两个16bit的有符号数打包出来的结果
;组成一个32bit的数,放入一个通用寄存器中。
DOTPN2 dre_dim, cre_cim, pre  

而对于C64x+只需下列一条指令就可以实现,
CMPY dre_dim, cre_cim, pre:pim  ; pre:pim是一个寄存器对,分别存放复数乘法
;结果的实部和虚部。

 
图1
 

 


对于这种情形,如果流水线排好,可以看出C64x+ 比C64x可以减少大约一半左右的复数乘法周期数,同时也会减少一条指令所占用的程序空间。其它还有如ADDSUB和ADDSUB2、新的数据打包解包指令如DPACKX2,也大大提升DSP在处理DCT和FFT变换方面的性能,其它指令在提升DSP的处理性能方面就不做详细介绍。如果使用这些新指令,以处理256点的FFT变化为例,部分指令变化如图1所示,C64x+需要803个执行周期,而C64x需要1246个执行周期;C64x+的程序大小为664 bytes而C64x大小为1000 bytes。由此可见C64x+必将大大提升TI的DSP在流媒体方面的处理能力。

2. 新增软件流水缓存(SPLOOP Buffer)

C64x架构中充分利用软件流水(Software Pipeline)进一步提升DSP的处理性能,它一方面可以克服多周期指令的延时所造成的对CPU处理性能的影响;另一方面还可以在流水线运行阶段每个周期输出一个或多个处理结果。C64x+继续延续该性能优点,并进行改进,出现SPLOOP (Software Pipelined Loop),在硬件上还有软件流水缓存(SPLOOP Buffer)对其进行支持。SPLOOP充分利用C64x+内核中的SPLOOP Buffer,将软件流水中的循环核(Loop Kernel)拷入其中,有如下几个优势:   

编译出来的代码,由于prolog和epilog代码段不需要直接代码标识,所以可以减少代码的尺寸;

不同于C64x的软件流水,可以中断;
   
由于循环核已经被拷入SPLOOP Buffer,一方面可以减少对L1P Cache的访问频繁程度,由此节省CPU对L1P Cache的带宽,另一方面也可以降低CPU的功耗;
   
每次循环内核的执行结束跳转到下次执行开始处时是绝对跳转,由此不需要跳转指令的支持;

SPLOOP Buffer最多可以放 14个执行包 (execute packets),在程序编译过程中,CCS会自动将可以放入CPU中SPLOOP Buffer的指令用特殊指令代替,因此对于C/C++代码来说,使用很方便。

3. 支持紧凑指令(Compact Instructions)

C64x DSP只支持标准的取指包(如图2A所示),而C64x+支持带“头”的取指包(如图2B所示),指令包头标注了该指令包中其它7个字中,哪些是32 bit的操作码,哪些是16 bit的操作码。支持紧凑指令一方面可以节省程序存储空间;另一方面也因此可以增加程序Cache的命中率。如图3两段程序实现相同的操作,都需9个指令周期,图A是在C64内核的存储结果,需要48 bytes,图B是在C64x+内核的存储结果只需要32 bytes。


图2


图3
 

 


4. 支持特权系统

考虑到目前越来越多的客户在TI的C6000系列DSP上运行操作系统,同时越来越多的C6000系列DSP用于终端设备中(IP STB中使用DM642/3,DM6446/3),为支持处理系统异常及其存储空间非法访问的鲁棒性,C64+开始支持特权系统。

特权系统将操作模式分为完全超级用户执行模式和两级系统模式。在完全超级用户执行模式下, 程序可以完全访问所有的控制寄存器,不需运行非特权的程序。而两级系统模式分为超级用户执行模式和普通用户模式。操作系统运行于超级用户执行模式,系统不信任的API运行于普通用户模式下。


图4

由上述性能提升点可见,C64+内核的性能提升具有一定的应用针对性,一方面加强在流媒体方面的处理能力;另一方面提升对操作系统的支持的鲁棒性。同时也通过支持紧凑指令存储和取指的方式来减少系统工程编译出来的代码尺寸。图4为使用C64+内核的TMS320C6455的结构,可以看出该DSP除片上存储空间比C6416分别提高一倍之外(L2 Memory达到2MB,L1P和L1D都为32KB),其内核在执行性能和代码大小上分别比C64内核提高20%和20%-30%。相信TI的C64+内核让业内工程师感受到TI在提升其DSP处理性能方面的承诺!

相关资讯
半导体产业升级战:三星电子新一代1c DRAM量产布局解析

在全球半导体产业加速迭代的背景下,三星电子日前披露了其第六代10纳米级DRAM(1c DRAM)的产能规划方案。根据产业研究机构TechInsights于2023年8月22日发布的行业简报,这家韩国科技巨头正在同步推进华城厂区和平泽P4基地的设备升级工作,预计将于2023年第四季度形成规模化量产能力。这项技术的突破不仅标志着存储芯片制程进入新纪元,更将直接影响下一代高带宽存储器(HBM4)的市场格局。

蓝牙信道探测技术落地:MOKO联手Nordic破解室内定位三大痛点

全球领先的物联网设备制造商MOKO SMART近期推出基于Nordic Semiconductor新一代nRF54L15 SoC的L03蓝牙6.0信标,标志着低功耗蓝牙(BLE)定位技术进入高精度、长续航的新阶段。该方案集成蓝牙信道探测(Channel Sounding)、多协议兼容性与超低功耗设计,覆盖室内外复杂场景,定位误差率较传统方案降低60%以上,同时续航能力突破10年,为智慧城市、工业4.0等场景提供基础设施支持。

财报季再现黑天鹅!ADI营收超预期为何股价暴跌5%?

半导体行业风向标企业亚德诺(ADI)最新财报引发市场深度博弈。尽管公司第三财季营收预期上修至27.5亿美元,显著超出市场共识,但受关税政策驱动的汽车电子产品需求透支风险显露,致使股价单日重挫5%。这一背离现象揭示了当前半导体产业面临的复杂生态:在供应链重构与政策扰动交织下,短期业绩爆发与长期可持续增长之间的矛盾日益凸显。

全球可穿戴腕带市场首季激增13%,生态服务成决胜关键

根据国际权威市场研究机构Canalys于5月23日发布的调研报告,2025年第一季度全球可穿戴腕带设备市场呈现显著增长态势,总出货量达到4660万台,较去年同期增长13%。这一数据表明,消费者对健康监测、运动管理及智能互联设备的需求持续升温,行业竞争格局亦同步加速重构。

RP2350 vs STM32H7:性能翻倍,成本减半的MCU革新之战

2025年5月23日,全球领先的半导体与电子元器件代理商贸泽电子(Mouser Electronics)宣布,正式开售Raspberry Pi新一代RP2350微控制器。作为RP2040的迭代升级产品,RP2350凭借双核异构架构(Arm Cortex-M33 + RISC-V)、硬件级安全防护及工业级性价比,重新定义了中高端嵌入式开发场景的技术边界。该芯片通过多架构动态切换、可编程I/O扩展及4MB片上存储等创新设计,解决了传统微控制器在实时响应能力、跨生态兼容性与安全成本矛盾上的核心痛点,为工业自动化、消费电子及边缘AI设备提供了更具竞争力的底层硬件方案。