0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DSP篇:专用处理器比较分析(2022)

智能计算芯世界 来源:专用处理器比较分析 2023-05-22 09:48 次阅读

专用处理器 (或专用加速器), 顾名思义, 就是用于处理 “特定应用” 的处理器, 相对于通用处理器而言, 这类处理器性能更高、功耗更低、通常价格也更便宜, 但是使用范围也相对有限。 计算芯片产业在过去 50 年的发展历程中, 比较成功的专用处理器门类只有数字信号处理器 (DSP)、图形处理器(GPU) 和网络处理器 (NPU), 这是 20 世纪 90 年代就已经基本定型的格局。

AI芯片专利技术研发态势

在过去 5 年中, 用于处理深度学习神经网络处理器 (AI 芯片) 也开始快速发展, 比较成功的案例包括 Google 公司的张量处理器 TPU、寒武纪公司的 DianNao 系列深度学习处理器 [5] 等。 专用处理器的最终目标不是替代通用 CPU, 而是与现有的通用 CPU 技术协作, 即将部分 CPU 运行效率低下的应用卸载 (offloading) 到用加速器上运行, 通过构建异构计算平台来高效地处理计算任务。 从产业生态的视角来看, 相比于通用处理器的硬件与软件分离的 “水平” 模式, 专用加速器更注重软硬协同的 “垂直” 发展模式。

c372916c-f82f-11ed-90ce-dac502259ad0.png

从芯片的效能和适应性两个维度来刻画芯片的特征。 这里效能指的是单位功耗下提供的计算能力, 适应性就是通常意义下的通用性。 业界通常将数据处理芯片大体分为三大类: 处理器芯片、ASIC(application specifific integrated circuit) 芯片和 FPGA (fifield programmable gate array) 芯片。

处理器芯片包括 CPU, GPU, DSP 等, 是用户可编程的芯片; ASIC 是面向特定应用 (application-specifific) 的专用集成电路 [8], 通常也称之为全定制芯片, 不可编程; FPGA 器件属于专用集成电路中的一种半定制电路, 是可 “编程” 的逻辑列阵, 利用查找表来实现组合逻辑, 但 FPGA 的 “编程” 与处理器芯片的软件编程不同, 主要是配置逻辑, 可以理解为硬件编程。

从相对性能来看, ASIC 芯片最好, 处理器芯片最差, FPGA 介于二者之间; 但是从应用的适应性来看, 处理器芯片最好, FPGA 次之, ASIC 芯片最差。

值得注意的是这种分类标准并不是按照电路制造工艺, 例如处理器芯片和 ASIC 芯片本质上都是全定制的集成电路, 处理器芯片本质也是一种 ASIC, 但与通常意义上 ASIC 的最大差别还在于是否具有指令集, 有指令集的就更类似传统的处理器, 反之就归类为 ASIC. 此外, 处理器芯片由于其使用广泛、出货量大, 与软件生态联系尤其紧密, 所以将其独立为一个大的类别。

无论是 DSP、GPU、AI 芯片、NPU, 还是现在更新的各种 “XPU”, 都是处理数据的芯片, 最终都需要执行二进制代码的程序来完成计算。 因此专用处理器设计也大都需要涉及如下 6 方面内容:

(1) 约定二进制代码的格式, 即指令;

(2) 需要将指令变换为机器码, 即汇编;

(3) 为了提高编程方便程度, 需要将高层程序语言转换为汇编语言, 即编译;

(4) 为了提高编程的效率, 提供了各种编程环境, 即集成开发环境 (integrated development environment, IDE);

(5) 充分复用高度优化的代码, 即应用程序库;

(6) 为了方便程序调试, 还需要提供各种仿真工具, 即仿真器 (emulator)。

c3a3270a-f82f-11ed-90ce-dac502259ad0.png

所以, 从系统抽象层次来看, 与通用处理器几乎没有区别。 但是不同的 DSIC 侧重点不同, 有些 DSIC 只提供 API (application programming interface) 方式的调用, 例如早期的 GPU, 将编译、汇编等过程全都凝结在运行时库中,从用户角度看, 调用过程与使用 OpenCL [9] 中的 “内建核函数 (built-in kernels)” 类似,与调用普通的库函数过程相同; 虽弱化的可编程性, 但是强化了用户使用的便利性。 但也有些 DSIC, 如 DSP, 使用了大量底层编程, 虽编程难度高, 但方便精确地性能调优。

DSP: 灵活的数据格式

DSP 也许是最早出现的专用集成电路。 DSP 的使用范围非常广, 从简单的 MP3 播放器到最新一代的 5G 通信都有使用场景。 常见的 DSP 大多带有丰富的外设接口, 例如 PCIe、以太网UARTI2C等, 尤其在很多嵌入式设备中, 丰富的外设接口对于提高系统的集成度、降低成本和功耗都有很大帮助, 所以很多 DSP 产品也演变成带有丰富外设接口的 SoC (system on chip) 芯片, 如图 2(a) 所示。

但是 DSP 最大的特点还是进行数字信号处理的核。 大多数 DSP 由于使用场景多为移动设备, 或者只是作为 CPU 系统的数据输入前端, 在系统中的地位并不高, 通常在功耗、散热等方面都不可能给予太高容限, 所以功耗敏感、计算位宽对 DSP 很重要, 定点、浮点, 半精度、单精度、双精度, 16 位、24 位、32 位、40 位等各种数据格式规范 “五花八门”。 在寻址上, DSP 对于数据对齐方式也最灵活, 设置了大量专门的指令对数据进行对齐操作。

TI 公司是 DSP 芯片的龙头, 被媒体评为是半导体行业利润率最高的公司。 2019 财年营业总收入144 亿美金, 税后净利润高达 50 亿美金, 利润率高达 35%. 作为比较, 同期 Intel 收入 720 亿美金, 利润率 29%; 英伟达总营收 110 亿美金, 利润率 25%. TI 公司的 DSP 主要分为 3 大系列: C2000 系列,集成了 AD 转换、Flash 存储等, 主要用于控制马达、变频器等工控产品; C5000 系列, 16 位定点, 主要用于便携声音、视频、机顶盒等设备; C6000 系列, 采用了 VLIW (very long instruction word) 架构, 每秒执行指令峰值可达百亿条, 主要用于数字通信、图像增强、传输、加密解密等对性能要求更高的场景。 下面就以比较复杂的 C6678 为例做简要介绍, 其顶层架构如图 2 所示。

1、通过 VLIW 架构提高性能

在 C6000 系列的 DSP 中, 采用了超长指令字 (VLIW) 技术, 性能的提升主要是通过引入 SIMD(single instruction multiple data) 来实现。 从 2 路 16 位、4 路 8 位 SIMD 操作, 到 8 路 16 位、4 路 32 位向量操作。 为了支持较宽的向量化操作, C66x 系列 DSP 设置了 8 个功能单元、两组寄存器堆文件、两条独立数据通路; 每组寄存器文件包含 32 个 32 位通用寄存器, 而且可以支持 8, 16, 32, 40, 64 位等非常灵活的数据位宽打包存储。 例如一个完整 32 位寄存器连同相邻寄存器的低 8 位存储一个 40 位的浮点数, 同时相邻寄存器的高 24 位还可以用于存其他的数。 乘法器支持 128, 40, 64 位数据。 显然支持那么多 “非标” 的定点和浮点数, 如何来安排寄存器的分配成为一个很有挑战的问题。

2、指令缓存和程序缓存分离

将指令与数据分离也就是著名的 “哈佛结构”, 一级程序缓存 (L1P) 采用直接映射, 一级数据缓存(L1D) 采用多路组相连。 这样导致了缓存替换策略的不同, L1P 采用新缓存行替换同一位置的旧缓存行, 采用读 – 分配 (read-allocate) 策略。 相较而言, L1D 复杂的多, 采用了最近最少使用 (least recently used, LRU) 替换策略和回写 (writeback) 机制: 当数据被更新时, 并不立即更新相应的缓存位置和存储器地址, 而只做 “dirty” 标记, 只有数据被替换出缓存, 或者手动启动一致性操作指令, 或出现长距离访问 (此时所有高速缓存的局部性都极有可能被破坏), 才会写回到存储器。 这也说明指令的局部性是比数据的局部性显著得多, 而且对于核而言, 指令缓存是只读的, 而数据缓存可读可写, 从这个意义上看, 将二者分开也是有好处的。 此外, DSP 的缓存还支持很多先进的管理功能, 例如强制冻结模式(freeze mode), 可以防止中断程序破坏已经建立在缓存中的数据局部性, 降低中断恢复后 “冷启动” 性能开销。 这些操作也全都由程序员来完成。

3、硬件指令支持一致性管理

多核并不是 CPU 的 “专利”, C6000 系列也提供多核的 DSP, 由于多核引入会导致数据一致性的问题, C66x 系列 DSP 也提供了栅栏指令 (MFENCE) 来处理缓存回写, 强制或阻止一致性操作的执行等, 方便程序员管理数据一致性。

4、硬件化的带宽管理防止运行阻塞

DSP 核中还设置了硬件化带宽管理, 负责管理一级数据缓存 (L1D)、一级程序缓存 (L1P)、二级缓存 (L2)、寄存器配置总线等 4 类资源的访问优先级。 访问发起方包括 DSP、外部 DMA (enhanced direct memory access, EDMA)、内部 DMA (internal direct memory access, IDMA)、数据一致性操作。

管理按照每次访问授予优先级, 而不是按照访问类型固定优先级, 通过设置竞争强度计数器来反映对资源的 “饥渴” 程度, 即便是最低优先级的访问, 随着等待时间增加, 优先级就会逐渐升高, 当达到最长等待周期数, 就会强制授予一次访问。 而这些都是硬件管理的, 程序员只能设置最长等待时间, 不能设置竞争计数器。 这样的硬件化维护资源公平性的设置在 CPU 中并不常见。

由以上分析可以看出, DSP 作为一类典型的专用处理器, 其结构与数字信号处理需要丰富的 IO接口便于集成, 强大的浮点处理能力支持高带宽的信号处理, 还提供了丰富的底层数据通路的控制手段方便专业用户的性能调优。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18304

    浏览量

    222406
  • asic
    +关注

    关注

    34

    文章

    1158

    浏览量

    119293
  • 神经网络
    +关注

    关注

    42

    文章

    4576

    浏览量

    98891
  • 数据处理
    +关注

    关注

    0

    文章

    512

    浏览量

    28254
收藏 人收藏

    评论

    相关推荐

    dsp和嵌入式微处理器的区别和联系 嵌入式微处理器应用领域分析

    嵌入式微处理器(Embedded Microprocessor)和数字信号处理器(Digital Signal Processor,简称DSP)是两种常见的微处理器架构。它们在应用领域
    的头像 发表于 04-21 09:50 218次阅读

    dsp与单片机,嵌入式微处理器的区别

    处理器DSP)是一种专门用于处理数字信号的处理器。它具有高效处理数字信号的能力,适用于音频、视频、通信和其他信号
    的头像 发表于 04-21 09:48 186次阅读

    dsp和嵌入式微处理器的区别和联系

    是一种专门用于数字信号处理(Digital Signal Processing)的处理器。数字信号处理是一种通过对数字信号进行算法运算来处理分析
    的头像 发表于 04-21 09:35 148次阅读

    基于嵌入式RISC-V处理器核轻松实现DSP扩展设计

    基于已开发的嵌入式或应用处理器核 (如L31等)
    的头像 发表于 02-28 13:35 456次阅读
    基于嵌入式RISC-V<b class='flag-5'>处理器</b>核轻松实现<b class='flag-5'>DSP</b>扩展设计

    芯来科技正式发布首款专用处理器产品线Nuclei Intelligence系列

    本土RISC-V CPU IP领军企业——芯来科技正式发布首款针对人工智能应用的专用处理器产品线Nuclei Intelligence(NI)系列,以及NI系列的第一款AI专用RISC-V处理器CPU IP——NI900系列内核
    的头像 发表于 02-26 10:15 498次阅读
    芯来科技正式发布首款<b class='flag-5'>专用处理器</b>产品线Nuclei Intelligence系列

    如何高效的把ad7768转换结果采集到处理器内部?

    )的转换结果采集到处理器内部?比如使用DSP等方式? 如果使用你们的DSP哪款比较合适呢?型号实在太多很难分辨,我的需求就是把7768以最大速率转换的结果全部获取到
    发表于 12-14 08:27

    简单认识数字信号处理器

    数字信号处理器 (Digital Signal Processor, DSP)是一种专用处理器,它在架构上对数字信号处理 (Digital
    的头像 发表于 11-30 09:07 586次阅读
    简单认识数字信号<b class='flag-5'>处理器</b>

    数字化应用中的多核DSP(下)

    DSP是对数字信号进行高速实时处理专用处理器。在当今的数字化的背景下,DSP以其高性能和软件可编程等特点,已经成为电子工业领域增长最迅速的产品之一,人们对其性能、功耗和成本也提出了越
    的头像 发表于 10-31 17:06 391次阅读

    数字化应用中的多核DSP(上)

    DSP是对数字信号进行高速实时处理专用处理器。在当今的数字化的背景下,DSP以其高性能和软件可编程等特点,已经成为电子工业领域增长最迅速的产品之一,人们对其性能、功耗和成本也提出了越
    的头像 发表于 10-31 17:04 326次阅读

    DSP和ML功能融合到低功耗通用处理器

    随着各种类型的物联网和嵌入式系统对信号处理的需求不断增加,我们看到市场上出现了许多新的芯片,它们结合了数字信号处理器(DSP)和通用处理器来满足这些日益增长的
    发表于 08-23 06:51

    一个典型DSP系统的组成 dsp处理器的特点有哪些

    DSP处理器以其高性能运算能力、并行计算能力、专用指令集和架构设计、高速数据存储和传输能力、低功耗设计和实时性等特点,成为执行数字信号处理任务的重要工具和设备。它们广泛应用于音频、视频
    的头像 发表于 08-21 15:27 2436次阅读

    Arm应用处理器电源管理的变迁-硬件设计

    Arm应用处理器始终以极佳的能效,低功耗应用于包括手机在内的移动设备,因而它们的低功耗设计,电源管理是重要的设计考虑。
    发表于 08-08 10:11 1278次阅读
    Arm应<b class='flag-5'>用处理器</b>电源管理的变迁-硬件设计

    dsp处理器是专门用于什么方面的处理器

    DSP处理器(Digital Signal Processor)是一种专门用于数字信号处理处理器。与通用用途的微处理器(如普通的中央
    发表于 07-27 17:21 3137次阅读

    什么是专用处理器专用处理器的设计方法和工具介绍

    on some external data source, usually memory or some other data stream”。专用处理器就是针对特定应用或者领域的处理器,类似于是我们经常说的Domain Specific Architecture的概念
    发表于 07-17 14:14 1059次阅读
    什么是<b class='flag-5'>专用处理器</b>?<b class='flag-5'>专用处理器</b>的设计方法和工具介绍

    浅析专用处理器设计的6个关键技术

    无论是 DSP、GPU、AI 芯片、NPU, 还是现在更新的各种 “XPU”, 都是处理数据的芯片, 最终都需要执行二进制代码的程序来完成计算。
    发表于 05-22 09:50 396次阅读
    浅析<b class='flag-5'>专用处理器</b>设计的6个关键技术