综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章存储技术正文
 
ADSP-BF535存储器的分级管理机制及其性能评估
发布日期:2005-04-07 作者:杨波 王跃科 杨俊 邢克飞 来源:电子器件

摘  要:存储器的管理机制及其性能直接决定DSP的性能。文章首先分析了ADSPBF535的存储器分级管理机制,对各个区域的存储器进行了详细讲解。其次,针对该DSP的L1、L2,进行了并行指令和FFT运算的性能评测。再次,进行了多种存储器之间的DMA数据传输测试,给出了具体的速度指标。评测数据证明了BF535具有优良的存储器性能,为Blackfin系列DSP的工程应用设计提供了重要的数据参考。
  关键词:ADSP-BF535;存储器;分级;并行指令;FFT;DMA

  ADSP-BF535是美国AD公司和Intel公司联合推出的一款定点DSP,属于Blackfin系列产品中的旗舰产品。在推出初期,该DSP被命名为ADSP-21535;2002年底,AD公司在中国开始大规模推广Blackfin系列产品,并在2003年初改进制造工艺和提高处理器主频,将其改命名为ADSP-BF535。其具有RISC指令结构,运作高效,性能优异,主频最高工作在350 M,具有1个40 bit的Shifter(移位寄存器),2个16 bit的MAC(乘加器)和2个40bit的ALU(算术逻辑单元),2个40 bit的Accumulator(累加器),4个8 bit的视频处理单元,16个地址寻址单元,在芯片内部集成了308 k byte的RAM,并支持各种外部RAM的扩展应用。
  BF535具有丰富的外部接口:①32 bit/33M/3.3V、兼容PCI2.2标准的主从PCI总线接口;②1个集成的USB1.1兼容的设备接口;③2个SPI兼容接口;④2个全双工的SPORT口(同步串口);⑤2个UART(异步串口);⑥4个定时/计数器,其中3个支持PWM(脉宽调制)模式;⑦16个双向PF(Program-mable Flag,可编程标志)I/O引脚;⑧1个看门狗电路;⑨实时时钟。这些接口的集成,充分满足了软件工程的多样性的扩展设计要求。其中,接口①~⑤均可以通过DMA通道或者系统总线接口与各存储器之间传输数据,数据的传输率与总线速度的分频设计和各存储器的响应时间有关。
  值得一提的是,BF535还可以动态地控制电压输入,内核电压VDD可以工作在0.9~1.5 V的范围,外部I/O接口则固定工作在3.3 V。与此同时,其可以用软件设置的方式动态改变内部锁相环的频率,调整DSP的核心和接口运行速度,减少芯片功耗。这种灵活的电源管理设计,十分适合于移动产品的 设计与开发。BF535的功能框图如图1所示。



  在存储器管理方面,BF535有其独特的统一寻址设计。从图1的框图中可以看出,芯片集成了256k byte的系统RAM(L2),在DSP的核心处理器-Blackfin core里面集成有更高速度的52 k byte的L1RAM,External Port(外部端口)控制器还支持Flash、SRAM和SDRAM等多种存储器的扩展。除了对外部接口提供DMA传输外,在各种存储器之间,BF535也提供了DMA控制器,并且留有专用的内部总线带宽,允许数据在各种存储器之间高速传输。由于DSP所有内核与外设的数据操作和传输都不可避免地涉及到存储器,则存储器的性能直接决定了DSP的运算性能。本文的重点即是分析BF535的存储器管理机制,并进行相关的性能测试和指标评定。


1 BF535的存储器管理机制
  BF535的存储器管理使用32 bit寻址,把所有DSP资源虚拟为一个统一的4GB的地址空间。地址空间的各部分存储器按照分级结构排列,以提供较高的性能价格比。一些快速、低延迟的存储器的位置接近处理器核心,低成本低性能的存储器则远离核心。BF535的存储器分为片内、片外存储器和内存映射的I/O资源,这些存储器都具有独立的地址空间。BF535存储器地址配置空间如图2所示。



  片内的空间一共有285 Mbyte的地址空间,范围在0xEF000000~0xFFFFFFFF,包括L1(一级缓存)、L2(二级缓存)、MMR(Memory-Mapped Regis-ters,内存映射寄存器组)和引导ROM。这些空间并不是全部存在实际的物理存储器,有许多是保留的
地址。
  L1作为DSP的一级缓存,速度最快,可以和BF535的内核一样,运行在350 M的高速上。它分为三部分:L1指令缓存、L1数据缓存和中间结果缓存。其中,L1指令缓存为16 k byte,范围在0x-FFA00000~0xFFA04000,只能存放指令;L1数据缓存为32 k byte,分成两个16 k的数据块,范围在0xFF800000~0xFF804000和0xFF900000~0xFF904000,只能存放数据;中间结果缓存为4 k字节,范围在0xFFB00000~0xFFB01000。L1指令缓存既可以作为SRAM,也可以配置为4路联合设置的cache。L1数据缓存能够配置成双路联合设置的Cache或者SRAM;中间结果缓存只能够作为SRAM使用,通常被系统使用为堆栈。指令缓存和数据缓存都可以通过DMA方式灌入数据;对于中间结果缓存,DMA方式不能使用。
  L2作为DSP的二级缓存,空间相对较大,有256k byte,范围在0xF0000000~0x F003FFFF。它是一个统一的指令和数据存储器,能够根据系统设计要求同时存放代码和数据。L2具有DSP核心同样的带宽,但是延迟时间较长,访问L2单个独立的地址时系统最多需要经过7个周期的延时,这使得它的综合访问速度大大下降。所以,如果程序比较大,必须在L2中编写程序时,通常将核心算法程序放在L1中,或者是将L1配置为L2的cache。这样,速度可以大大加快。但是根据硬件实测,将L1配置为L2的cache时,在某些情况下程序运行不稳定,如DMA操作不能正常结束、访问部分地址空间速度突然大幅度减慢等。因此,不推荐使用cache。
  BF535的外部空间分成两大部分:PCI空间与EBIU(External Bus Interface Unit,外部总线接口单元)空间。前者占据了0x30000000~0xEEFFFFFF地址段,当存在实际的设备时该段空间才有意义;它隶属于指定的PCI外设,不能够作为存储器独立存在,因此在存储器分级管理机制中并不涵盖PCI的内存空间。后者访问空间达768 M,占据了0~0x2FFFFFFF的地址段,支持同步RAM和异步RAM等多种存储器。
  在外部存储器中,SDRAM存取速度较快,作为BF535的存储器分级管理机制的第三级,它的空间分布在存储器空间的起始位置:0x00000000~0x23FFFFFF之间,分成4个Bank,每个Bank的容量允许在16 M到128 Mbyte之间调整。BF535所集成的SDRAM控制器既允许单个Bank的SDRAM接口工作,也允许4个Bank同时工作。当4个Bank同时以128 Mbyte工作时,可以为系统提供高达512 M
byte的SDRAM空间。每个Bank空间都是可独立编程的,而且DSP在硬件设计上为各Bank间提供了无缝连接,无论各个Bank的实际物理内存大小是否相同,相邻的Bank地址都是连续的。这就意味着,即使不同的Bank使用不同大小的存储器,控制器也能够把所有Bank管理成一个连续的地址空间,以便处理器将所有的SDRAM视为单一的存储器。这样,在产品开发初期时,开发者可以在各个Bank上用小容量的SDRAM试验,然后再升级成大容量的存储器,开发过程中只需简单地把SDRAM空间视为一个连续的最多512 Mbyte的物理地址空间即可。
  异步RAM空间的访问速度最慢,作为BF535的存储器分级管理机制的第四级,分布在0x24000000~0x2FFFFFFF之间,分成四个Bank,支持SRAM、ROM、EPROM、FLASH、FIFO等。无论使用设备的实际存储器大小如何,每个Bank的空间都固定占据64Mb。这样,异步RAM空间Bank间的地址一般是离散的,只有4个Bank均装满64 Mb的存储器时,地址空间才能全部连续。
  根据上面的BF535的不同级别的存储器管理机制可知,在设计高速运算、传输和大容量存储时,需要对不同速度的存储器进行性能测试,以保证实际电路的正确运行。接下来的,作者基于AD公司的EZ-Kit评估板,使用Visual DSP++3.0的开发环境,针对L1、L2和SDRAM等存储器进行性能评估,并对多种存储器之间的数据传输进行测试和分析。
2 存储器的关键性能测试与分析  
   
1) L1、L2的并行指令测试
  在DSP存储器的访问性能指标测试上,首先需要考虑的是DSP核心的各个寄存器直接访问内部存储器的性能,这是DSP运算速度最重要的指标。由于BF535是改进型的哈佛结构,支持并行指令,而并行指令能够在一个周期内完成多条指令操作,因此该方面需要重点测试。表Ⅰ中测试了在不同的存储器环境下,双乘加运算的同时,进行单RAM16 bit存取数据和双RAM16 bit存取数据的速度指标。测试方法:运行0x1000次并行指令运算测量实际周期数。DSP核心时钟fCCLK为300 MHz,测试样本数目为15。


  对于并行指令操作,由表Ⅰ中的测试数据可以得出以下结论:
  (a)Visual DSP++3.0的软件仿真速度是以最快速度仿真的,即全速运行。
  (b)寻址指针指向L1数据缓存时,能够做到全速运行。即在一个核心时钟周期内,能够完成一条并行指令;在作双乘加运算的同时,无论是双16 bit存取还是单16 bit存取,存取速度均约是300 M字/秒。
  (c)寻址指针指向L2时,不能够全速运行,而且读写速度不对称。进行单16 bit写操作时,速度是全速的1/3,约100 M字/秒的存储速度;进行单16 bit读操作时,速度是全速的1/9,约33 M字/秒的读取速度。并且,经作者进一步测试,即使在以上的
并行指令中去掉双乘加操作,速度也没有任何改善。因此,在L2中进行数据存取时,需要考虑性能的折扣与不对称性。
  (d)程序的位置在L1指令缓存和L2中时,实测的性能差别不大。所以对于在作连续的大数据块并行指令运算时,程序本身处于L1指令缓存或者L2的重要性并不大。但是,据实测,在作离散的数据访问时,程序处于L2时的速度显著比处于L1指令缓存中慢。
  (e)对于L1数据缓存,在对其中的RAM进行双16 bit数据存取操作时,和单16 bit操作消耗时间是相同的;但是,对于L2,双16 bit数据存取操作是单  16 bit操作的2倍时间。这就意味着,对L2的双16bit并行操作和两次独立的单16 bit操作无区别,性能没有提升。
  (f)对于双16 bit存取操作,当I0和I1分别指向L1数据缓存和L2时,运算速度应当介于I0、I1同时指向L1或者L2之间。
    2) L1、L2的FFT运算测试
  在系统的分析设计中,特别如通信、雷达、图像传输、声纳等应用环境中,不可避免地进行频谱分析。FFT是信号频谱分析处理不可或缺的强大算法工具,也是DSP性能测试的重要指标。由于作FFT运算时,通常是在性能最优的存储器中进行,外部的RAM不是必要的外设配置,而且性能也不如L1数据缓存和L2,因此应当选择后两者作为测试对象。作者针对两者进行1024点的复数FFT测试,为了使其性能测试具有通用性和可验证性,下文使用AD公司提供的函数CFFTN作为评测对象,该函数的内核是纯汇编编写,效率在95%以上。函数原型声明如下:


  函数的引用方式为CFFTN(in,t,out,w,wst,2048,0,0)。因为复数包含实部和虚部,因此对于1024点FFT,该函数参数中的FFT缓冲的长度为2048。表Ⅱ给出了CFFTN参数放在不同存储器区域的FFT测试数据。之所以需要进行这样的测试,是因为L1数据缓存的资源比较稀缺,合理使用L2,有助于在DSP性能和L1的资源消耗间找到一个平衡点。测试环境:DSP核心时钟fCCLK为300MHz,测试样本数目为15。

 

  从表Ⅱ中可以看出,当数据全部在L1中处理时速度最快,大约是全部在L2中处理速度的5.67倍。当部分参数在L2中时,处理的速度介于前两者之间。其中,输出数组out放在L1数据缓存中时FFT性能显著提高,旋转因子表数组w的位置对FFT性能影响也较大。因此,应当优先保证这两个参数在L1数据缓存中配置空间。
  3) 各存储器内部与之间的DMA传输的性能测试
  BF535支持不同存储器之间的块数据DMA传  输,带宽为32 bit,支持32 bit(双字)、16 bit(字)和8bit(byte)三种DMA传输方式。需要注意的是,当传输以16 bit和8 bit传输进行,只用到了部分的DMA带宽资源,剩下的资源将被浪费掉。表Ⅲ给出了32bit DMA传输模式下的速度指标,对于16 bit和8 bit传输时,传输速度保持不变,但是单位分别改为字/秒和字节/秒。在存储器DMA的同时,BF535可以同时进行其他操作,只要DSP核心不访问DMA正在读写的地址区域,就不会引起总线冲突。认识到这一点,对于提高BF535的效率而言至关重要。测试环境:DSP核心时钟fCCLK为300M Hz;系统时钟fSCLK为fCCLK的2.5倍分频,工作在120M;SDRAM为PC133标准。测试样本数目为15。

  
  从表Ⅲ中的实测数据可以看出,DMA的速度均在18.7 M双字/秒以上,最高速度达46.9M双字/秒,满足绝大多数高速数据采集系统的速度要求。从表Ⅲ的数据同时可以得出以下结论:
  (a) DMA双向速度不对称,将源地址和目的地址交换以后,传输速度会发生变化。低速存储器区域向高速区域传输时,要比反向传输快。
  (b) 存储器区域内部DMA速度一般比区域之间DMA要慢,如L1→L1比L1→L2和L1→SDRAM都要慢一些。其它区域也有类似现象。
  (c) 对于同种存储器内传输,高速存储器区域内部DMA速度并不一定快,如L1→L1 DMA比L2→L2慢一些。对于同种存储器内,DMA传输速度并不比通过核心寄存器访问存储器占优势,如后者在L1数据缓存内完成一次32位数据的搬移,速度可以到75M双字/秒。
3 结束语  
  本文对BF535的存储器机制进行了分析和评估,测试数据证明,BF535具有优良的存储器性能。文章基于BF535测试,对AD公司的Blackfin系列的其它产品也有重要的参考作用;对于已经推出的BF532和即将推出的BF531、BF533而言,这三者的核心设计和BF535没有任何区别。主要的变化有:根据不同的用户群,对BF535的外部接口进行了简化,对L1和L2进行了增加或者减少,在DSP的核心运行速度上也进行了调整。开发者在使用后续产品时,根据上面所提供的测试数据,适当换算一下即可估算出其它产品的存储器性能。实践证明,这种估算方法是真实可信,行之有效的。
 
参考文献
[1] ADInc.,ADSP-21535 Blackfin DSP Hardware Reference [R],November 2002.
[2] ADInc.,Blackfin DSPInstruction Set Reference[R],Octo-ber 2002.
[3] ADInc.,ADSP-21535 EZ-KITLITE.Evaluation SystemManual[R],May 2002.
[4] ADInc.,EE-171:ADSP-21535 Multi-cycle Instruc-tions and Latencies[R],September 10,2002.
[5] ADInc.,ADSP-21535 Preliminary Data Sheet(Rev.7-02)[R],June 2002.
[6] ADInc.,NR002556B:Blackfin ADSP-21535 Anomalylist[R],December 2002.

 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
谢谢,现在还没有相关信息...
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号