DSP芯片中

核心提示TMS320C54x和ADSP218x性能比较--技术资料--中国IC网 http://www.ic37.com/document/18345.htm 摘要:TI(Texas Instruments)公司的TMS320C54X系列和ADI

TMS320C54x和ADSP218x性能比较--技术资料--中国IC网 http://www.ic37.com/document/18345.htm 摘要:TI(Texas Instruments)公司的TMS320C54X系列和ADI(ANALOG Devices Inc.)公司的ADSP218X系列是目前应用广泛的两款主流16位定点DSP芯片。以Geffe发生器和MD5算法的实现为例,通过对这两款芯片性能的详细比较,分析研究了它们各自优缺点。 关键词:DSP芯片 TMS320C54X ADSP-218X 性能比较 从1982年第一片数字信号处理器(DIGITAL Signal Processor,DSP)TMS320C10产生以来,经过二十年的发展,DSP以其卓越的性能、独有的特点,已成为通信、计算机、消费类电子产品等领域的基础器件。业内人干预言,DSP将是未来集成电路中发展最快的电子产品,并成为电子产品更新换代的决定因素,它将彻底变革人们的作、学习和生活方式。 DSP[6][8][9]具有两种算术结构:定点和浮点。从理论上讲,虽然浮点DSP的动态范围比定点DSP大,且更适合于DSP的应用场合,但定点运算的DSP器件的成本较低,对存储器的要求也较低,而且耦电较省。定点运算的可编程DSP器件仍是市场上的主流产品。据统计,目前销售的DSP器件中的80%以上属于16位定点可编程DSP器件。其中,TI公司的TMS320C54X系列和ADI公司的ADSP-218X系列是目前广泛使用的主流定点DSP芯片。下面就以它们为研究对象,结合Geffe发生器[7]和MD5算法的实现,对其性能进行分析比较。由于TI的TMS320VC5402和ADI的ADSP-2186N是使用较多的两款,硬件性能指标又相近,有很好的可比性,所以编程实现时选择它们为具体芯片。虽然两款DSP芯片都提供C编译器,但是因为效率都不高,这里我们就不作讨论。下面的论述都是基于直接用汇编语言编程的。 1 Geffe发生器与MD5算法 先简单介绍一眄两个算法。Geffe发生器是一种密钥序列发生器,它利用线性反馈移位寄存器(LINEAR Feedback Shift Register,LFSR)产生序列密码。Geffe发生器使用了三个LFSR,它们以非线性方式结合,其中两个LFSR作为复合器的输入,第三个LFSR控制复合器的输出。因为运算量很大,所以LFSR用软件实现起来比较慢,但是用汇编语言实现比用C语言实现快。 MD5(MD,即Message Digest)是一个单向散列函数,它对输入消息产生128位散列值(或消息摘要)。该算法需要进行大量的移位和逻辑操作,用DSP实现比较方便。 2 TMS320C54X系列与ADSP-218X系列性能比较 2.1 硬件结构[1][4][5] TMS320C54X系列采用改进的Harvard结构体系,有一组程序总线和三组数据总线、高度并行性的算术逻辑单元ALU、乘法/累加器MAC、桶形移位器、缓冲串口、专用硬件逻辑、片内存储器、片内外设和高度专业化的指令集等等。支持32位长操作数指令,支持并行存储和并行装入的算术指令。 ADSP-218X系列借装了TMS320X系列的优缺点,重新设计。它也是采用改进的Harvard结构体系。ALUMAC、桶形移位器这三个独立的运算部件均可以单周期操作。还有丰富的双缓冲串口、中断(分外中断和内中断)等。在TMS320C54x系列中,程序存储区和数据存储区是混在一起的,而ADSP-218X系列从物理上就将两者分开,这就使多功能指令操作显得非常方便。因此,ADSP-218X系列程序实现更有高效性。 两款芯片主要技术指标的比较如表1所示。

请问PCI与PCI-E的区别

第1章 绪论

1.1 FPGA概述

1.1.1 FPGA发展的简要回顾

1.1.2 FPGA与ASIC

1.2 可编程逻辑器件的基本概念

1.3 简单可编程器件(sPLD)的结构

1.4 高密度可编程逻辑器件

1.4.1 复杂可编程逻辑器件CPLD

1.4.2 现场可编程门阵列FPGA

1.4.3 CPLD和FPGA的区别

1.4.4 FPGA/CPLD厂家简介

1.5基于FPGA的设计流程与设计方法

1.5.1 基于FPGA的设计流程

1.5.2 自顶向下和自底向上的设计方法学

1.5.3 基于IP核的设计

1.6 EDA技术简介

第2章 可编程逻辑器件

2.1 Altera器件概述

2.1.1 FPGA系列简介

2.1.2 EPLD系列简介

2.1.3 结构化ASIC器件

2.1.4 FPGA器件的配置芯片

2.2 Altera的EPID器件系列

2.2.1 EPLD器件的特性

2.2.2 MAX9000器件的结构

2.2.3 MAX II器件的结构

2.3 Altera的FPGA器件

2.3.1 简单FPGA器件

2.3.2 复杂FPGA器件

2.3.3 新型FPGA器件1

2.4 Xilinx公司产品简介1

2.4.1 Xilinx CPLD器件

2.4.2 Xilinx FPGA器件的特性

2.4.3 Xilinx FPGA器件的结构

2.5 Lattice公司产品简介

2.5.1 I,attice CPLD器件系列

2.5.2 Lattice FPGA产品系列

2.5.3 FPSC产品系列1

2.5.4 低密度PLD产品系列

2.5.5 其他产品

2.6 Actel公司产品简介

2.6.1 Flash FPGA器件

2.6.2 反熔丝FPGA器件

2.6.3 航空航天和军用器件

窘3章 FPGA设计入门

3.1 系统的抽象层次与高级硬件描述语言Verilog

3.2 用Verilog语言建立数字电路模型

3.2.1 代码的书写风格

3.2.2 可综合代码的编码风格

3.2.3 时序电路的设计

3.3 模块设计

3.4 系统规范

3.4.1 系统规范的内容

3.4.2 选择FPGA

第4章 设计验证

4.1 验证综述

4.1.1 验证的概念

4.1.2 验证和测试

4.1.3 自顶向下和自底向上的验证方法

4.1.4 主要验证技术 1

4.1.5 验证工具的介绍

4.1.6 验证计划和流程

4.2 功能验证

4.2.1 验证程序(Testbench)的组成

4.2.2 实用构造Trestbench技术

4.3 基于断言的验证

4.4 时序验证

4.4.1 静态时序分析概述

4.4.2 静态时序分析中的基本概念

4.4.3 假路径和多周期路径

4.4.4 时序验证中的系统任务

第5章 ModeISjm工具介绍

5.1.ModelSim概述

5.1.1 基本仿真流程

5.1.2 工程仿真流程1

5.1.3 多数据库仿真流程1

5.1.4 调试工具

5.2 ModelSim工程

5.2.1 创建一个新工程

5.2.2 编译和加载设计

5.2.3 利用文件夹组织工程

5.2.4 在工程中进行仿真配置

5.2.5 关于工程的其他基本操作

5.2.6 Proiect标签页及菜单简介1

5.2.7 指定文件属性和工程设置

5.3 设计库

5.3.1 设计库简介

5.3.2 使用设计库工作

5.3.3 导入FPGA设计库

5.4 Verilog基本仿真

5.4.1 创建工作的设计数据库

5.4.2 编译设计

5.4.3 运行仿真

5.4.4 设置断点与源代码单步执行

5.4.5 结束仿真

5.4.6 增量编译

5.5 在Verilog仿真中连接第三方资源库

5.5.1 仿真连接资源库

5.5.2 永久性映射资源库

5.6 使用波形窗口 1

5.6.1 向波形窗口添加项目

5.6.2 波形显示的图像缩放

5.6.3 在波形窗口中使用游标

5.6.4 存储波形窗口格式

5.6.5 WLF文件(Datasets)

5.7 使用数据流(dataflow)窗口进行调试

5.7.1 编译并加载一个例子

5.7.2 观察设计的连接性

5.7.3 跟踪事件

5.7.4 追踪未知态

5.7.5 在dataflow窗口中显示层次结构

5.8 存储器的查看与初始化

5.8.1 编译和装入设计举例

5.8.2 查看存储器

5.8.3 保存存储器数据到一个文件

5.8.4 初始化一个存储区

5.8.5 交互式调试命令

5.9 使用性能分析器仿真

5.9.1 性能分析器简介及本节的设计文件

5.9.2 编译、加载例子的设计

5.9.3 运行仿真

5.9.4 使用数据改进性能

5.9.5 过滤并保存数据

5.10 仿真代码覆盖情况

5.10.1 编译、加载例子的设计

5.10.2 在主窗口中查看统计

5.10.3 在源代码窗口中查看统计

5.10.4 在信号窗口中查看状态翻转统计

5.10.5 指定不进行覆盖率统计的行或文件

5.10.6 创建代码覆盖率报告

5.11 波形比较过程

5.11.1 波形比较器简介及本节的设计文件

5.11.2 创建参考数据文件和测试数据文件

5.11.3 比较仿真运行

5.11.4 查看比较数据

5.11.5 保存和重装比较数据.

5.12 ModelSim自动运行

5.12.1 创建简单的DO文件

5.12.2 使用“启动DO文件”运行ModelSim

5.12.3 命令行方式运行ModelSim

5.12.4 与ModelSim一起使用Tcl

5.13 使用ModelSim进行后仿真

第6章 Quartus集成环境

6.1 Quartus II软件概述

6.1.1 Quartus II软件的安装

6.1.2 Quartus II软件工具授权

6.2 Quartus II设计流程简介

6.3 设计输入

6.3.1 创建一个工程

6.3.2 创建一个设计

6.3.3 Quartus使用举例

6.4 配置设计工程的编译约束1

6.4.1 使用Assignment Editor

6.4.2 使用引脚规划器(Pin Planner)1

6.4.3 使用Settings对话框

6.5 综合设计

6.5.1 使用QuartusII Verilog HDL及VHDL集成综合工具

6.5.2 使用其他EDA综合工具 1

6.5.3 “Analysis&Synthesis”的控制 1

6.6 布局布线

6.6.1 执行一个完整的增量编译

6.6.2 分析布局布线结果

6.6.3 布局布线的优化

6.7 基于模块的设计

6.7.1 Quartus II基于模块化的设计流程

6.7.2 使用逻辑锁区域(LogicLock Regins)

6.7.3 在自顶向下增量编译流程中使用区域逻辑锁

6.7.4 在自底向上逻辑锁流程中保存中间综合结果

6.7.5 在EDA工具中集中使用逻辑锁

6.8 Quartus II的时序分析(17lining Analysis)

6.8.1 在Quartus II软件中执行时序分析

6.8.2 进行前期的时序评估

6.8.3 查看时序分析结果

6.8.4 使用第三方EDA工具进行时序分析

6.9 时序逼近(Timing Closure)

6.9.1使用时序逼近底层图(Timing Closure Floorplan)

6.9.2使用时序优化顾问

6.9.3使用网表优化实现时序逼近

6.9.4使用L,ogicLock Regins实现时序逼近

6.9.5使用增量编译达到时序逼近

6.10 功率分析(Power Analysis)

6.1l 对器件的编程与配置

6.12 调试

6.12.1 使用SignalTap II逻辑分析仪

6.12.2 使用SignalProbe信号探针

6.12.3 使用In-System Memory Content Editor

6.12.4 使用寄存器传输级查看器(RTL Viewer)

6.12.5 使用芯片编辑器 1

第7章 FPGA设计实例

7.1 74181ALU运算器设计

7.1.1 74181ALU的功能说明

7.1.2 逻辑电路

7.1.3 Verilog程序设计

7.1.4 ALV运算器的功能验证

7.2 伪随机序列设计

7.2.1 m序列

7.2.2 9位的LFSR计数器

7.2.3 数字序列的扰码

7.2.4 循环冗余校验

7.3 SDH解帧器设计

7.4.8b/10b编码设计

7.4.1 8b/10b编码技术

7.4.2 8b/10b编码器的设计

7.4.3 程序代码简介

7.4.4 Testbench程序设计

第8章 AItera系统级的SOPC开发

8.1 Altera II的使用

8.2 SOPC开发流程概述

8.2.1 应用系统需求分析 1

8.2.2 使用SOPC Builder建立SOPC系统设计

8.2.3 Nios II监控软件的开发

8.2.4 灵活运用SOPC开发流程

8.3 Altera Nios CPU简介

8.4 Altcra Nios外设组件简介

8.5 Altera 1C20 Demo板介绍

8.6 Altera 1C20试验板上的SOPC系统开发实例

8.6.1 开发实例功能介绍

8.6.2 开发设计步骤

附录频率计系统的设计

参考文献

……

南桥PCI-E通道数是指芯片组中的南桥部分理论上所能支持的PCI Express Lanes的最大数量。南桥中的PCI-E通道可以用来连接扩展插槽以及其它的设备,而且具有许多灵活性,例如6个PCI-E通道可以做成6个PCI Express X1插槽或者2个PCI Express X1和1个PCI Express X4插槽。更大的南桥PCI-E通道数显然具有更大的扩展能力和灵活性。由于目前正处在PCI Express总线的初级阶段,不少南桥都还不支持PCI-E,就算支持其PCI-E通道数也极为有限,一般都在2条、4条或者6条。随着PCI Express总线的逐渐普及,南桥PCI-E通道数也会逐渐增多。

这是两种总线(bus)

AGP(Accelerated Graphics Port,图形加速端口)是一种为了提高视频带宽而设定的总线规范,其视频信号传输的速度可以从PCI的133MB/s提升到AGP 2X 的532MB/s、AGP 4X(1998年) 的1.2Gb/s以及AGP 8X(2000年)的2.4Gb/s 。最早在个人PC上出现的AGP系统,就是被誉为旷世经典的Intel 440LX/BX芯片组。

严格上说,AGP不是一个具有概念上的总线,而是一个从PCI总线中抽离出来的独立的单一总线技术,AGP设计的初衷就是为了让图形数据越过带宽严重不足的PCI总线,直接和MCH连接进入系统的图形子系统。AGP使用了32位的数据总线以及频率达66MHz的双时钟技术,允许AGP在一个时钟周期(工作脉冲波的上升沿和下降沿)之内传输双向的数据,达到133M×4B/s=532MB/s的突发数据传输率。在数据的传输过程中,AGP采用了demultiplexing circuit多信号分离技术,并通过sideband address(边带寻址)提高随机内存访问的质量。在AGP的规范中,还确立了pipeline(流水线)的概念,大幅缩短了内存的信号等待时间,提高图形系统的工作效率。

在AGP从PCI总线上分离出来后,PCI总线的负荷大大减轻,但PCI总线依然要承担起南北桥之间的通信、普通的PCI设备、IDE、I/O(串口、并口、PS/2)和USB设备的通信。为了改善这种拥挤不堪的PCI总线架构,Intel、VIA和SiS用新型的高速连接方式取代了南北桥之间的PCI总线,分别让IDE、各种I/O和USB分别使用专用连接方式连接到南桥芯片。在这方面,各大芯片制造开发商是八仙过海各显神通,如Intel的Hublink连接技术;AMD的采用HyperTransport技术直接取代原有的133MB/sPCI总线;VIA的Via-link以及SIS南北桥之间的MuTIOL技术。2001年前后推出的南北桥芯片组已经开始将磁盘驱动、USB、100/1000MB LAN 整合到南桥中--形式各异的总线分离技术导致了总线标准的极端混乱,各芯片组各自为政。在PCI总线上的众多问题逐步显露:IRQ 共享冲突,只能支持有限的10套设备同步时钟数据传输受到信号失真的限制,工作电压无法轻易降低,工作频率难以进一步,PCI总线已经接近了其性能的极限。另一方面,现代的多媒体电脑在大型的3D游戏、实时的视频采集、VOD视频点播、1000Mbps以太网、HD-TV的播放等方面的需求日益增大,即使从PCI总线中脱离出来,Raid系统、千兆以太网甚至AGP 8x也面临空前严峻的挑战。

PCI Express--PC总线的彻底革命

毫无疑问,PCI Express总线创新的概念给PC总线带来的革命是颠覆性的,受惠的不仅在显卡,千兆网、Raid系统、高清晰的视频采集卡……这些数据吞吐量巨大的设备也将会在PCI Express架构的速度与带宽下得到重生。PCI Express架构原生于Intel的3GIO(3dr Generation I/O)概念,并由PCI-SIG于2002年7月23日经过审核后正式公布,推出命名为PCI Express 1.0版本的规范,根据Roadmap,2006年该组织将会推出2.0的PCI Express规范。

在PCI Express规范中,主要的革新在于采用了彻底的串行模式代替了传统的设备之间的并行传输模式,在终端设备的上层取代了原始的Multi-Drop而添加了全新的Switch转换器单元,支持在不同的终端之间以及系统总线之间的直接串行连接而不需要向总线请求带宽,最低层的PCI Express传输初始的速度达到了2.5Gb/s 。在物理传输层的改进方面则采用了全新的分散式传输协议,在高速传输下的数据被经过充分的排序以及优化以确保传递到目标的完整性。在架构上,PCI Express采用了信道的串行模式,以link为单位进行信道的计算,物理层支持X1-X32,在台式机上的应用,主要有用于取代目前AGP显卡的PCI Express X16以及用于取代目前CPI接口的PCI Express X1、X2,而针对服务器上的设备则有PCI Express X4、X8、X12。PCI Express架构的建立,相比起PCI总线具有更高的弹性以及更加合理地分配带宽。以x1带宽模式为例,每个通道只需4根线即可实现调整数据传输,发送和接收数据的信号线各一根,另外各一根独立的地线。实际上,在单通道PCIExpress总线接口插槽中是18针而不是4针引脚,其余的14针都是通过4根芯线相互组合得到的。在PCI Express的传输机构上,两个设备之间通过串行连接,分别以2组线为一个单位,原始的PCI Express连接为单通道双工模式,2线用于发送,2线用于接收的四线传输,在这种基本的PCI Express连接单元上包含两个低电压、分离驱动的信号:一个传送和一个接收。PCI Express被定义为7层的传输架构,Physical物理层是最底层最基本的传输层,主要负担起数据的拆分以及信道的分配作用,随后,以保证信号在PCI Express连接上顺利进行的link连接层,会对信号排序以及加上CRC校验码,其中的流控制协议会在传输终点的缓存有空闲的时候才会将信号流发送给Transaction传输层进行数据的发送,避免了数据的重新审核,有效地节省了带宽。Transaction传输层主要是接受来自S/W软件层的读写要求,并向link连接层发出数据申请。至于S/W以及Config/OS这两个最表面的软件操作层则由操作系统以及使用软件的操作,实现操作员和硬件之间的交流作用。

在PCI Express核心层技术中,物理传输层的革新对整个架构的传输速度以及带宽的提升起到最为关键的作用,针对此,我们就详细解释一下PCI Express体系中的物理传输层。

高达8GB/s的双向传输带宽:

PCI Express的物理传输层主要由Lane以及link组成,link由2个或以上的Lane组成,Lane由两条单项传输的线路构成,实现接收和发送的同时执行。在PCI Express规格中,以一个Lane信道实现的通信称为X1 link,PCI Express X1则表明有1组link,X1 link在双向传输的时候速度为500MB/s,而PCI Express的最高规格X32则可以达到16GB/s的传输速度。就目前而言,应用规格最高的显卡PCI Express X16 传输速度为双向模式下的8GB/s,相当于普通PCI总线速度的60倍。在传输的过程中,被传输的数据首先会被Byte Stripping(字节分解),然后采用了可以避免电路之间的EMI以及Lane之间信号串扰问题的LFSR(Linear Freeback Shift Register)算法对字节数据进行加密,字节被分解之后,会经过8b/10b(8位/10位)编码转换成10位的数据,并将时钟频率直接嵌套到传输的数据当中,避免了传统PCI总线因为要进行独立时钟频率和数据信号的同步调节而引起的效率下降问题。接下来,10位的数据会经过并行-串行的转换,最后在驱动电路中经过为传输高带宽数据而设计Deemphasis(去加重频应复原)之后送往各条Lane输出。

在PCI Express中,每条Lane传输的数据为2.5Gbps,在经过8b/10b编码转换后,其实际的传输速度就是2.5Gbps/10=250MB/s。

 
友情链接
鄂ICP备19019357号-22