经营模式架构设计_关于profile的介绍和汇编代码级的优化问题

2019-11-05 15:27:02 北京网络公司
  程序设计的一些方法


  ● 分配功能单元。
  C6x的Debug工具提供了一个profile界面。在图9中,【北京做网站:15611115563】,包括了几个重要的窗口,左上角的窗口是显示出我们写的C语言,可以让我们知道现在做到了哪一步。右上角的窗口显示的是C6x所编译出来的汇编语言,同样的我们也可以知道现在做到了哪一步。左下角的窗口是命令列,是让我们下指令以及显示讯息的窗口。而中间的profile窗口就是在profile模式下最重要的窗口,它显示出的项目如下表:
  汇编代码级的优化可能会遇到的问题汇总
  ● 在软件流水线期间,处理流水线标号。

  字段            意义
  增大CACHE,可以明显的提高性能。但是C64X系列DSP中程序和数据还有CACHE共享片内RAM,因此增大CACHE,就减小了实际的片内可用空间,设计中需要注意。  TAG标签耗时:0.000746 秒




  优化过的程序往往不知道是否运行正确,这时就需要程序员来加以验证。验证时一般采用的办法就是通过测试序列来验证。测试序列指的是对于不同的算法所取的一组特殊的数据,这些数据可以准确的反映算法的特性。

  片内RAM与CPU——工作在同一时钟频率,比片外RAM性能高得多。因此把程序放在片内可以大大提高运行的速度。同时对于一些经常要用到的数据,放入片内,也会节省处理时间。


  表5:profile的各项参数[8]

  ● 分配寄存器的用法。

分享数:1589   关于profile的相关介绍
  在经过C代码的优化之后,还不能满足性能上的要求,则可以通过profile clock工具找出效率很低的部分,使用线性汇编重新改写。再通过汇编优化器编译,汇编优化器从输入的线性汇编代码中,完成以下功能:

  Count         被呼叫的次数
  测试序列中每组数据包括:输入数据和输出数据,通过对输入数据的运算,把结果与输出数据进行比较,判断程序的正确性。一些常见的算法,一般都提供了测试序列。还有一些,没有测试序列。这时就需要根据算法的特点,自己构造测试序列,进行验证。构造的时候,注意序列最好有几组,【北京做网站比较好的公司:15611115563】,数据最好有一定的长度,这样验证的更准确。


  1)优化结果的验证
  ● 寻找可以平行执行的CPU指令。


  3、CACHE的使用
  程序设计时,一切应以满足实际的要求为目标。在实际的设计中,除了优化能够提高性能以外,还可以采取其他的办法,利用DSP的特性,提高程序的运行性能,满足实际的设计要求。
  Inclusive     包含子程序的总执行clock数
  1、把程序和经常要用的数据放入片内RAM
  在汇编代码级的优化过程中,总是要对程序进行一定的改动的情况,【北京网站建设公司大全:15611115563】,这样经常会出现一些问题。问题汇总如下:

  优化中的问题
  对于C64X芯片,其片内RAM有1MB,但是对于一些大型的图像处理算法而言,仍可能是不够的,因此经常通过DMA技术,把需要用到的数据搬入片内,把不需要的搬到片外,可以大大的提高程序的运行速度。
  C64X系列DSP的内部存储空间有1MB,其中程序和数据还有CPU的二级缓存将共享这片空间,因此当程序的运行不正常时,很有可能就是内存泄漏造成的。因此,在程序设计中,应尽量不用指针,同时注意进行边界检测。


  Incl-Max    包含子程序的执行一次最大clock数Exclusive   不包含子程序的总执行clock数Excl-Max    不包含子程序的执行一次最大clock数利用这个profile模式我们可以用来分析程序中每个函数被呼叫的次数、执行的时脉数等等。用这个分析的结果,程序员就可以知道哪个函数所花费的时脉最多,是可以再改进的,而针对它来作最佳化。

关于profile的介绍和汇编代码级的优化问题



  2、通过DMA技术搬移数据
  TI提供的汇编优化器可以得到很高的效率,一般可以满足性能上的要求。



  2)内存泄漏的问题