论文部分内容阅读
在传统的体系结构下,字符类型是一种最基本的类型,而字符串则被拆分成一个个的字符操作,多次操作以及由于不定长而产生的控制跳转都使得其需要大量的时间消耗。随着大数据时代的到来,软件应用的重心由数值计算不断地向业务处理转移,而大部分业务应用的最基本变量都是由字符和字符串组成,海量字符操作所带来的繁重负担已不可忽视。 当前,通用加速器和专用加速器在针对字符操作的问题上有很大的不适应性,因此,为了缓解字符操作为大数据应用领域带来的负担,本文从硬件结构设计角度进行了深入的研究。通过对大数据领域中最具有代表性的Terasort、Grep/KMP和WordCount三个应用深入分析,针对性的设计并实现了字符操作加速结构。 本文的主要研究内容和贡献包括: 典型大数据算法特征分析与提取。选取了大数据应用中的基本字符操作算法进行分析和热点评估,归纳提取出定长字符串比较、定长字符串拷贝、非定长字符串比较、非定长字符串拷贝和字符连续比较五个核心操作; 字符操作加速方法及结构设计: 提出了一种基于cache line的面向字符操作的加速方法——TCC(Text CacheComputing),该方法适应于具有地址连续性的基本操作; 基于TCC方法设计实现了加速字符串操作部件——TCSU(Text-Cache-basedString Unit)。通过TCSU部件加速,大幅度降低了程序执行指令数和访存次数,并提高了算法执行速度。基于Terasort、WordCount和Grep传统算法的实验评估结果显示,加速比分别达到2.98、1.7和2.59倍; 基于TCC方法设计实现了加速连续字符连续操作部件——TCCU(Text-Cache-based Char Unit)。通过TCCU部件加速,KMP程序指令执行数降低了20倍,整体运行速度提高了12.8倍。