《2022年TMSC高速SRIO接口设计 2.pdf》由会员分享,可在线阅读,更多相关《2022年TMSC高速SRIO接口设计 2.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、TMS320C6455高速 SRIO 接口设计引 言数字信号处理技术已广泛应用于通信、雷达、声纳、遥感、图形图像处理和语音处理等领域。随着现代科技的发展,尤其是半导体工艺的进入深亚微米时代,新的功能强劲的高性能数字信号处理器(DSP)也相继推出,如ADI(美国模拟器件)公司的TigerSHARC 系列和 TI(德州仪器)公司的C6000 系列,但是,要实现对运算量和实时性要求越来越高的DSP 算法,如对基于分数阶傅立叶变换的 Chirp 信号检测与估计,合成孔径雷达(SAR)成像,高频地波雷达中的自适应滤波和自适应波束形成等算法,单片DSP 仍然显得力不从心。这些挑战主要涉及两个主题:一是计算
2、能力,指设备、板卡和系统中分别可用的处理资源。采用多DSP、多 FPGA 系统,将是提高运算能力的一个有效途径。二是连接性,从本质上说就是实现不同设备、板卡和系统之间的“快速”数据转移。对于一些复杂的信息系统,对海量数据传输的实时性提出了苛刻的要求,多 DSP 之间、DSP 与高速 AD 采集系统、DSP 与 FPGA 间的高速数据传输,是影响信号处理流程的主要瓶颈之一。TI 公司最新推出的高性能TMS320C6455(下文称 C6455)处理器,具有高速运算能力的同时集成了高速串行接口SRIO,方便多 DSP 以及 DSP 与 FPGA 之间的数据传输,在一定程度上满足了高速实时处理和传输的
3、要求。本文在多 DSP+FPGA 通用信号处理平台的基础上,深入研究了多DSP 间,DSP 与 FPGA 间的 SRIO的数据通信和加载技术的软硬件设计与实现。这些技术包括了目前SRIO 接口的各种应用方式,可作为 SRIO 接口及 C6455 开发提供参考 1-3。1 C6455 特性及 SRIO 标准介绍C6455 是目前单片处理能力最强的新型高性能定点DSP,它是 TI 公司基于第三代先进VeloviTI VLIW(超长指令字)结构开发出来的新产品。最高主频为 1.2GHz,16 位定点处理能力为9600MMAC/s。C6455 建立在增强型 C64x+DSP内核基础之上,代码尺寸平均缩
4、短了20%至 30%,周期效率提高了 20%。C6455 不仅是内核的增强和运算速度的提升,相比以前的芯片,集成了丰富的外围接口,如千兆以太网控制器,66 MHz PCI 总线接口,最重要的是增加了新的外设接口SRIO,全双工工作时,四个端口峰值速率每秒高达25 Gbits,解决了 DSP 高速数据传输的瓶颈,降低了开发多处理器系统的难度 4-5。RapidIO 是新一代高速互连技术,已于2004 年被国际标准化组织(ISO)和国际电工协会(IEC)批准为 ISO/IEC DIS 18372标准。RapidIO 互连定义包括两类技术:面向高性能微处理器及系统互连的 Parallel Rapid
5、IO接口;面向串行背板、DSP 和相关串行控制平面应用的Serial RapidIO接口。SRIO 支持编程模型包括基本存储器映射IO 事务、基于端口的消息传递和基于硬件一致性的全局共享分布式处理器。SRIO 互连架构是一个开放的标准,满足了嵌入式基础实施在应用方面的广泛需要。可行的应用包括多处理器、存储器、网络设备中的存储器映射I/O 器件、存储子系统和通用计算平台。这一互连技术主要作为系统内部互连,支持芯片到芯片和板到板的通信,可以实现从1Gbps 到 60Gbps 的性名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 9 页 -能水平,在高速互连方面将会有广阔的发展前景6。2
6、 C6455 间的 SRIO 通信2.1 C6455 间的接口互连C6455 内嵌了 SRIO 模块,拥有 4 个全双工的 port(端口),支持SRIO 1x/4x 串行协议。每个port 支持 1.25Gbps、2.5Gbps、3.125Gbps 的波特率,每个port 可以单独构成1x 模式,也可以四个 port 共同构成 4x 模式。SRIO 采用的是 CML(电流型逻辑)电平,布线时必须遵循布线约束。为了最小化来自接收方100 欧终端电阻的反射,差分对应该具有50 欧的阻抗,并且差分走线必须等长。在接收端串接耦合电容,隔离直流偏置。图1 是两片 C6455 之间 SRIO 接口设计。
7、2.2 包格式SRIO 的传输操作是基于请求和响应机制,包(packet)是系统中端点器件的通信单元。图2是一次传输操作的流程图。首先由发起者产生一个传输请求,请求包被传输到相邻的交换器件,从而进入交换结构,通过交换机构这个完整的请求包被转发到目标器件。目标器件根据请求完成相应操作后,发送相应的响应包,经过交换机构传回到发起者。此时一个完整的传输过程完成。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 9 页 -SRIO 有三个层的协议共同组成,每层协议在包中都有体现。图3 给出典型的请求包和响应包的包格式示意图。请求包以物理层字段开始。S 位指示这是一个包还是一个控制符号,Ac
8、kID 表明交换结构器件将使用控制符号来确认哪一个包,Prio 字段指示用于流量控制的包优先级,TT 为目标地址和源地址字段指示传输地址的机制类型、报应被递送到的器件的地址和产生包的器件的地址,Ftype 表示正被请求的事务,长度字段等于编码后事务的长度,SRIO 事务数据的有效载荷长度从1 到 256 字节不等,源事务 ID 指示发送器件的事务ID,SRIO 器件在两个端点器件间最多允许256 个未完成的事务。对于名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 9 页 -存储器映射事务,跟随在源事务ID 后面的是器件偏移地址字段,用于指示数据的存放地址,CRC 为校验码。响应包
9、与请求包类似,状态字段指示是否成功完成了事务,目标事务ID 字段的值与请求包中断事务 ID 字段的值相等。2.3 SRIO 基本读写和门铃操作根据包的格式的不同,将事务划分成很多类型,其中最重要的类型有三种:NREAD(基本读操作)、NWRITE(基本写操作)、DOORBELL(门铃操作)。通过这三种类型的组合就可以完成所有的存储器读写操作。在介绍读写操作之前,先介绍一下与SRIO 有关的 DMA 操作。在 C6455 上,SRIO 数据传输和 DMA 传输是结合的。此DMA 与 EDMA 方式是独立的,当进行 SRIO 传输时,DMA 以自动方式启动。对与发送方来说,DMA 将数据从 L2
10、SRAM 搬移到 SRIO端口,对于接收方来说,DMA 将数据从 SRIO 端口搬移到 L2 SRAM 内存。因此,在进行传输时,读写地址是直接显示在包里的,而且此地址就是被读写的DSP 的地址。换句话说,DSP 可以对另一片DSP 的 L2 SRAM 直接进行读写操作。图4 就是自动 DMA 的传输操作。读写操作和门铃操作主要由图5 中的 7 个寄存器进行控制,这些寄存器里的值会自动加入到包中。在 SRIO 总线上,每个 SRIO 设备都有一个相应的设备地址,设备地址好比一个SRIO 设备的 ID,用于区别不同的SRIO 设备。当 SRIO 总线上的一个 SRIO 设备进行读写访问时,它发送
11、的包就含有设备地址,只有自身设备地址与包的设备地址符合的SRIO 设备才会对此次传输做出响应。SRIO Address MSB和 SRIO Address LSB共同构成 64-bit 寻址,指示的是被访问SRIO 设备的地址。开发板上只用到 32-bit 寻址,因此,SRIO Address MSB为 0,SRIO Address LSB指示的是被访问的DSP 的地址。DSP address指示的是本地DSP 的地址。Byte_count 这一项给出的是传输字节数,一次读写操作(可以是很多包)最多可以传送4Kbytes 的数据。DestID 是目标设备的ID 号,用来区分SRIO 总线上的设
12、备。Drbll Info 用于门铃事件,通过此位段的设置,从而向目标 DSP 产生中断。Packet Type 用来指示此次传输的类型,例如NREAD、NWRITE 和 DOORBELL 等。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 9 页 -图 6 是 SRIO 模块的 NREAD、NWRITE 和 DOORBELL 程序编写流程图。首先初始化 SRIO 端口,此过程主要需要配置和使能PLL 模块,使能并配置接收模块,使能并配置发送模块,使能并配置中断模块。配置这些模块特别要注意的是使主DSP 和从 DSP 的时钟模块工作在相同的波特率。初始化完成后,查询 SRIO 链路
13、是否成功建立,如果SRIO 链路没有建立,则重新初始化SRIO 端口,直到SRIO 链路建立为止。链路建立后就可以进行读写操作和门铃操作,两片DSP 之间可以进行高速的数据传输。实际测试表明,DSP 间的数据传输可工作于1x 和 4x 模式,每种模式可以正常工作于每通道 3.125Gbps 的传输速率。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 9 页 -3 C6455 间的 SRIO 加载3.1 C6455 引导模式在 C6455 的地址空间 0 x00100000 到 0 x00107FFF集成了 32K 的内部 ROM。此 ROM 中固化了一段“boot loader”
14、的引导代码,它主要作用是在DSP 上电时,对 DSP 进行必要的配置,以便辅助 HPI/PCI/SRIO等接口进行加载;另外,它还可以将代码从外部存储器读到内部L2 SRAM,以完成代码加载。C6455 复位和上电时的引导模式主要有:NO BOOT 模式,主机引导模式,FLASH 引导模式,主I2C 引导模式,从 I2C 引导模式,SRIO 引导模式。C6455 的 EMIFA 端口引脚 EMIFA 0:19和 ABA1:0被复用作配置引脚,和专用引脚PCI_EN 一起构成 C6455 的硬件配置引脚。采用哪种引导模式,由复位或上电时采样管脚BOOTMOOD3:0 来决定 7-9。表 1 是引
15、导模式选择方式。对被加载的从 DSP 来说,设置 BOOTMOOD3:0=1x00,此时为 SRIO 引导模式,SRIO 被配置成四个 1x 端口,由 port0 对从 DSP 进行加载。另外,差分晶振选择125M 的时钟源。上电后,固化在从DSP 内部 ROM 的“boot loader”对从 DSP 进行一些必要的初始化配置:使能全局中断,SRIO 的中断管脚被使能,使从DSP 可以接收来自主DSP 的中断;boot loader 配置 PLL1 模块为 15 倍频,也就是使内核工作在750MHz;boot loader 初始化从DSP 的 SRIO 端口,使 SRIO 的时钟模块配置成1
16、.25G。主 DSP 对 SRIO 端口进行初始化配置,并将时钟模块配置成1.25G。此时主 DSP 与从 DSP 之间互相发送同步信息,直到链路建立。链路成功建立以后,主DSP 执行 NWRITE 操作,将待加载程序装载到 L2 SRAM 内存中。代码装载完成后,执行门铃操作,向从DSP 发送中断,从 DSP 收到中名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 9 页 -断后脱离“挂起”状态,从地址0 x800000 处运行程序,加载过程结束。图7 便是 SRIO 引导过程。实测表明,主 DSP 通过 FLASH 加载完成后,可通过SRIO 接口对从 DSP 完成加载。4 C
17、6455 与 FPGA 等构建 SRIO 网络SRIO 与微处理器总线类似,它在硬件中完成存储器和器件寻址以及分组处理,降低了用于I/O处理的开销,减小了延迟。一个运行于3.125 Gbps 的 4 通道 SRIO 链路能在完全保持数据完整性的前提下提供 25 Gbps 的流量,保障了海量数据传输的实时性。SRIO 网络建立在两个“基本模块”基础之上:端点设备(Endpoint)和交换设备(Switch)。有两种连接方式,一种是简单的端点到端点互联,一种是端点到交换设备的互联,端点设备负责收发数据包,交换设备负责在端口之间传递数据包,但不负责数据包的解释。通过Switch 交换,可以构建一个C
18、PU,DSP 以及 FPGA 不同平台互联互通的数据传输网,进行共享式或分布式处理。图8 给出了 SRIO 网络的构建模块。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 9 页 -C6455 具有很强的处理能力,但对于并行算法,采用FPGA 可以达到更高的效率。本文以SRIO 为桥接,设计了一个 C6455 和 Xilinx Virtex-4 FPGA两者相结合的处理平台,C6455 和 Virtex-4 都有丰富的接口,该平台不但实现了C6455 与 Virtex-4 之间的数据传输,还实现了PCI、网络 MAC、USB等不同协议域之间建立数据流。结构如图9 所示。SRIO
19、系统由一块主C6455 管理,可加载另外 2 片 C6455,也可建立 SRIO 到 SRIO,PCI 到 SRIO,MAC 到 SRIO 等数据流。Xilinx 公司根据最新的RapidIO v1.3规范设计了其端点IP 解决方案,同时集成了 PCIe,以太网 MACs 等 IP 核,PCIe 的 32/64 位地址空间(基地址)可自动映射至 34/66 位SRIO 地址空间(基地址)。PCIe 应用程序通过内存或I/O 读写与 C6455 通信。这些事务均可通过流写入、原语和确认读/写事务(SWRITEs,ATOMIC,NREADs,NWRITE/NWRITE_Rs)等 I/O 操作映射至
20、SRIO 空间。以实现从 PCIe 到 SRIO 或从 SRIO 向 PCIe 的转换,从而在各个协议域之间建立数据流。5 结 论名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 9 页 -在 C6455 等高端 DSP 中,SRIO 已逐渐成为主流数据互连方式之一。SRIO 具有引脚少、I/O 处理开销低、可达 3.125Gbps 高速率等优势,C6455 间的 SRIO 通信设计和基于SRIO 的加载技术提高了系统设计的灵活性,而基于DSP 和 FPGA 的 SRIO 网络设计降低了多处理器集成的难度,可方便进行共享式或分布式处理,构成具备共享带宽和强大处理能力的通用处理平台,从而更好地解决“强大计算能力”和“快速数据传输”两大挑战。名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 9 页 -