学位论文 > 优秀研究生学位论文题录展示

Glibc库在龙芯2F上的优化

作 者: 李恺
导 师: 顾乃杰
学 校: 中国科学技术大学
专 业: 计算机系统结构
关键词: 龙芯2F Glibc Cache失效 循环展开 指令调度
分类号: TP316.81
类 型: 硕士论文
年 份: 2010年
下 载: 65次
引 用: 0次
阅 读: 论文下载
 

内容摘要


Glibc库是Linux系统最底层的运行库,被系统中的绝大多数程序调用。因此其运行效率在整个系统中占重要地位。为了使Glibc库充分利用龙芯2F处理器的特性,提升龙芯平台上的整体性能与用户体验,本文针对龙芯2F平台对Glibc库进行优化。本文首先对Glibc库的函数构成进行了分析。Glibc库中的函数可大致分为两类,一类函数与系统调用和底层操作相关,如用户组,信号和基本IO等函数。另一类函数提供常用操作的实现,如字符串处理,数学计算等函数。两类函数中,前者主要是对系统调用接口的包装,对参数进行预处理。它们的处理流程相对固定,计算量较小。因此本文的优化工作主要着眼于常用操作函数,对其中的字符串与内存处理函数,数学计算函数,查找与排序函数以及加密函数进行了优化实现。针对各个函数的具体实现,本文提出了不同的优化方法,主要包括以下几种:访存优化,在考虑存储层次结构的基础上安排内存访问顺序,以对读入Cache的数据充分利用,减少Cache冲突失效与容量失效。此外,访存优化还包括对不同访存指令的合理使用以提高读取效率。该方法主要在排序函数及字符串处理函数的优化过程中使用。循环展开,该方法可以增加基本块的大小,减少分支判断的个数。具体实现时,需要考虑循环内的运算量及体系结构的寄存器个数限制。循环展开在各个部分的优化工作中都有应用。指令调度,对原来的语句进行局部调整,以便于利用龙芯2F的特有指令或充分利用处理器部件。主要体现在数学计算函数的优化过程中。此外,还经常需要对函数的原始实现流程进行改动,以便于展开后续的优化工作。实验表明,使用上述优化方法后,本文中大部分函数的优化比率达到了50%以上。

全文目录


摘要  4-5
ABSTRACT  5-10
第一章 绪论  10-16
  1.1 Glibc 库  10-11
    1.1.1 Glibc 库介绍  10-11
  1.2 龙芯2F 体系结构  11-14
    1.2.1 指令执行  11-13
      1.2.1.1 指令集  11-12
      1.2.1.2 功能部件  12
      1.2.1.3 乱序执行  12-13
    1.2.2 存储访问与管理  13-14
      1.2.2.1 Cache 结构与访问  13-14
      1.2.2.2 内存管理  14
  1.3 本文的研究内容和技术  14-15
  1.4 本文结构  15-16
第二章 字符串与内存处理  16-31
  2.1 函数介绍  16-21
  2.2 函数优化  21-30
    2.2.1 求字符串长度  21-22
    2.2.2 内存拷贝与复制  22-25
    2.2.3 字符串拷贝与连接  25-27
    2.2.4 字符串与内存比较  27-29
    2.2.5 字符串与内存查找  29-30
  2.3 小结  30-31
第三章 数学计算函数  31-41
  3.1 基本数据类型  31-32
  3.2 函数介绍与优化  32-40
    3.2.1 基本操作  32
    3.2.2 数字与字符串转换  32-40
    3.2.3 指数和对数函数  40
    3.2.4 三角函数  40
  3.3 小结  40-41
第四章 查找与排序  41-56
  4.1 查找函数  41-43
    4.1.1 数组查找  41
    4.1.2 二叉树查找  41-42
    4.1.3 哈希表查找  42-43
  4.2 排序函数  43-44
    4.2.1 函数原型介绍  43-44
    4.2.2 函数流程分析  44
  4.3 排序函数优化  44-55
    4.3.1 函数流程优化  47
    4.3.2 归并排序优化  47-51
    4.3.3 快速排序优化  51-55
  4.4 小结  55-56
第五章 加密函数  56-60
  5.1 函数介绍  56
  5.2 函数优化  56-59
  5.3 小结  59-60
第六章 总结和展望  60-62
  6.1 本文总结  60-61
  6.2 存在问题与研究展望  61-62
参考文献  62-65
致谢  65-66
在读期间发表的学术论文与取得的研究成果  66

相似论文

  1. 基于可重构平台的软硬件代码划分技术研究,TP332
  2. 面向空间目标轨道预测的定制处理器及其编译器的关键技术研究,V556
  3. 可配置TTA处理器编译器的指令调度技术研究与实现,TP314
  4. 芯片多线程处理器线程调度的性能测试与优化研究,TP332
  5. 并行计算的常用模型特征及其程序设计方法研究,TP338.6
  6. FT64-2核级汇编器的研究与实现,TP313
  7. ATLAS在龙芯2F上的访存优化,TP332
  8. 龙芯2F处理器评估板的设计与实现,TP332
  9. 保证Java精确异常的指令调度技术,TP312.2
  10. IA-64指令调度研究,TP303
  11. 基于防火墙设备的嵌入式Linux系统的研究,TP316.81
  12. 嵌入式linux系统中的内存泄漏的研究,TP316.81
  13. 基于龙芯2号结构特征对GCC的分析与优化,TP332
  14. 塔机有限元分析求解器的开发技术,TH213.3
  15. 龙芯Ⅰ编译器中的指令调度相关优化,TP332
  16. 全局无环指令调度研究,TP311.1
  17. 基于X流处理器的循环实现及优化,TP338.6
  18. 指令级并行编译的关键技术研究,TP314
  19. 基于EPIC体系结构的软件流水技术研究,TP311.52
  20. 面向存储级并行的多核处理器关键技术研究,TP332

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 操作系统 > 网络操作系统 > UNIX操作系统
© 2012 www.xueweilunwen.com