您当前的位置:五五电子网电子知识单片机-工控设备综合-其它基于龙芯2F的Glibc库优化 正文
基于龙芯2F的Glibc库优化

基于龙芯2F的Glibc库优化

点击数:7463 次   录入时间:03-04 11:45:41   整理:http://www.55dianzi.com   综合-其它
进行改进,采用二分方的思想,使用表达式n1=(n<<16)|(n>>16)和x=(((n1&0xff00ff00)& gt;>8)|(n1&0xff00ff)<<8))。其中计算n1的表达式可以由编译器编译为一条循环移位指令,这样改进的实现共需要两次与,三次移位与一次或运算,省去了一次移位与两次或运算。
    算法接下来的操作是消息扩散与迭代计算,计算公式分别如图3和图4所示。


   d.JPG
    我们对其计算过程进行层数为2的循环展开。对于迭代计算过程,循环展开之后还可以继续进行赋值传递优化,减少运算量和迭代次数。循环展开层数增加时,循环次数减小,但增加了循环内的计算量,寄存器的数目满足不了中间结果的保存,需要读写内存,反而造成性能的下降。经过实验确定,层数为2是一个较好的选择。
    表2是改进前后SHA256算法的性能对比,取数据大小从64B到2kB倍增。

e.JPG

4 总结
    Glibc库是Linux系统最底层的运行库,是所有应用程序赖以执行的基础环境。本文基于龙芯2F平台对Glibc库中的字符串与内存处理函数、数据转换函数、哈希表查找函数以及加密函数进行了代码优化,大部分函数的优化比率达到30%以上,对龙芯2F平台的整体运行性能提升具有重要意义。
 



上一页  [1] [2] 


本文关键字:暂无联系方式综合-其它单片机-工控设备 - 综合-其它