您当前的位置:五五电子网电子知识电工技术电工文摘SOP中自定义外设和自定义指令性能分析 正文
SOP中自定义外设和自定义指令性能分析

SOP中自定义外设和自定义指令性能分析

点击数:7535 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   电工文摘

3.1  验证平台的硬件系统

  采用以CycloneII系列EP2C35为核心芯片的SOPC开发系统,来搭建实验所需要的硬件平台。在这个硬件平台中,需要添加系统工作需要的外设,包括NiosII CPU、Timer、Avalon三态桥,外部RAM接口和Flash等。在该硬件系统中,首先要加入自己定制的外设逻辑,同时在NiosII CPU中加入开发的自定义指令。在同一系统中同时加入实现相同功能的自定义外设和自定义指令是为了得到对比结果。系统时钟设置在50 MHz。在本设计中,有大量的数据从SSRAM传输到CRC处理模块中,这些数据在传输过程中不需要进行算术逻辑运算,如果通过CPU来操作,会消耗大量的CPU时间。为了提高CPU的工作效率,采用DMA(直接存储器访问)来完成。利用DMA控制器方式,在CRC自定义外设和SSRAM存储器之间建立一条DMA传输通道,让硬件自动读取数据信息。在DMA传输过程中,首先通过中断由CPU对DMA进行初始化设置,打开DMA传输通道,使DMA在没有CPU干预的情况下进行传输。然后DMA直接将SSRAM存储器中的数据传输到CRC处理模块中,直到数据传输完成。所添加的DMA通道,读端口通过Avalon三态桥连接到了SSRAM,写端口连接到了自定义外设CRC,如图3所示。

按此在新窗口浏览图片
图3  CRC验证硬件平台

  特别注意的是,在该硬件平台中,要加入一个时间标记服务定时器high_res_timer(也就是经常说的“时间戳”)。该服务可以帮助设计人员查找出耗时最长的功能函数,定位优化目标,检测某个功能部件的运行情况。在这里,主要是利用该“时间戳”来测量CRC32不同方式的执行时间,为分析各种方式的性能差异奠定基础。

3.2  软件开发

  在NiosII IDE开发环境中,分别使用自定义外设、自定义指令和软件的方式来实现CRC32。

  ①  软件实现方式:数据的读取、处理、保存等全部由软件来实现。
  ②  用户自定义指令方式:处理过程使用CRC32自定义指令来完成。
  ③  用户自定义外设方式:使用DMA通道完成数据的读取、保存,NiosII处理器控制外设完成CRC32的处理。

  完成上面的工作后,编译工程,下载到SOPC开发板中。从NiosII控制台中,可以看到如下输出信息,如图4所示。

按此在新窗口浏览图片
图4  NiosII IDE控制台输出信息

4  性能对比和分析

  在NiosII IDE上面可以观察到用软件、自定义指令、自定义外设实现CRC32的各种情况。这几种方式的运行结果是相同的,但用软件实现的时间是12 381.33 ms,采用优化的软件设计时间是8 393.02 ms,采用自定义指令的时间是164.69 ms,而采用自定义外部设备时则用了12.08 ms。从结果可以分析出,纯用软件来执行,运行速度最低;如果把标准指令序列实现的核心功能由一条用户自定义指令来实现,可以明显提高系统的执行效率;如果采用自定义外设,即将软件实现的功能全部由硬件来实现,则速度又大大提高。从图5中可以更清楚地看到这种对比: 从左到右依次是软件方式、改进软件方式、自定义指令方式、自定义外设方式。由此可知,自定义外设执行效率最高,其次是自定义指令。

按此在新窗口浏览图片
图5  各种方式执行时间和效率对比图

  从实现机理上来讲,自定义外设可以看作是和NiosII并行运行的一个硬件加速逻辑,中间CPU参与过程很少,这就为系统“全面加速”提供了坚实的基础;而自定义指令由于硬件逻辑连接到NiosII处理器的算术逻辑单元上,只能实现“局部”加速。从实现结果来说,实现同样的功能,自定义外设的执行效率是自定义指令的十几倍以上;而随着系统频率的升高,这个差距会越来越大。如果系统在120 MHz,差距会在50倍左右。

结语

  本文对SOPC系统中自定义外设和自定义指令的性能进行了详细对比,并且给出了对比的详细参数。在SOPC系统中,如果实时性要求非常高,那么采取自定义外设加DMA来完成系统中的关键处理模块无疑是最佳选择。

上一页  [1] [2] 


本文关键字:外设  电工文摘电工技术 - 电工文摘

《SOP中自定义外设和自定义指令性能分析》相关文章>>>