基于C66x+国产FPGA高速数据处理板架构

目录
概述
C66x处理器内核
C66x流水线结构
概述
C66X DSP是最新一代定点和浮点DSP,由4个乘法器组成,以实施单精度浮点运算。C66X DSP内核可同时运行多大8项浮点乘法运算,加之高达1.4GHz的时钟频率,使其具有很高的浮点处理性能。将多个C66x DSP内核与其他内核融合,即可创建出具有初中性能的多核片上系统器件。本文以TMS320C6678为例,介绍C66x内核。

TMS320C6678具有8个C66x内核,内核工作主频最高可达1.4GHz,理论上具有179.2(22.4x8)GFLOP和358.4(44.8x8)GMAC的处理性能。每个处理器内部有多级存储器:C66x内核中有L1P、L1D、L2SRAM;多核共享存储器为MSM SRAM。处理器具有多核导航器、网络协处理器、数据包加速器、信号量、PLL等多核共享的一些外部资源,同时提供如SRIO、PCIE、EMIF等多种外部接口。C6678的处理器架构如下图所示:

在这里插入图片描述
C66x处理器内核
C66x内核是C6678处理器的核心,用于完成高性能处理任务。

 

C66x内核由以下组件组成:C66xDSP、一级程序存储器控制器(L1P)、一级数据存储器控制器(L1D)、二级存储器控制(L2)、外部存储器控制器(EMC)、扩展存储器控制器(XMC)、带宽管理(BWM)、中断控制器和休眠控制器(PDC)组成。内核结构如下:

C66xDSP由8个功能单元,2个寄存器组和2条数据通路组成,结构如下图所示。两个寄存器组共有64个寄存器,分为A和B两组,每组由32个32-bit寄存器组成。通用寄存器可以用来存放数据,也可以当作地址指针。所支持的类型有8-bit打包数据,16-bit打包数据,32-bit数据,40-bit数据和64-bit数据,乘法支持128-bit数据。

8个功能存储单元(.L1 .S1 .M1 .D1 .L2 .S2 .D2 .S2),每个功能单元的每个时钟周期都能够执行一条指令。.S单元执行通常的移位、分支及比较程序,.L单元执行通常的算数及逻辑程序;所有乘法指令都在.M单元执行(一个.M单元包含16组16x16bit乘法器,1个周期内可执行一次单精度浮点乘法运算,4个周期可执行一次双精度浮点乘法运算)。.D单元主要完成从存储器加载(load)数据到寄存器堆(register file),并从寄存器堆保存(store)结果到存储器。

C66x流水线结构
计算机流水线(Pipeline)是Intel首次在486芯片中开始使用的。在CPU中把指令的执行分成若干个不同的功能单元来实现,由若干个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成若干步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。

C66x DSP的流水结构共分三个阶段:指令预取(Fetch)、指令解码(Decode)、指令执行(Execute)。各阶段的详细流水线结构如下:


阶段    流水名称    含义
Fetch    PG    Program address generate:产生程序地址
PS    Program address send:发送程序地址
PW    Program (memory) access ready wait:等待程序内存响应
PR    Program fetch packet receive:接收从内存传回的指令包
Decode    DP    Instruction dispatch:将指令分配到相应的功能单元
DC    Instruction decode:将指令在相应的功能单元进行译码
Execute    E1    执行指令,不同指令拥有不同的执行流水操作
...
E5
Fetch阶段的流水操作图示:

Decode 阶段的流水操作图示:

Execute 阶段的流水操作图示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值