基于标签的PPM预测算法教材.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于标签的PPM预测算法 A PPM-like,tag-based predictor 1.摘要 本篇文章中提出的预测是一个源于PPM的,基于标签的全局历史预测。它的特性可以分为5个表,每个表都引用不同的历史长度进行索引,该预测是由具有最长匹配的历史关联加减饱和的计数器给出。要使这种预测获得更为理想的结果,我们进行的更新必须非常谨慎的进行。为此,我们推荐了一个新的更新策略,可以有效的降低预测过程当中的错误率,我们也提出了一个新的方法使hash函数可以在计算机硬件中得以运用。 本文目的:对PPM算法做以更新,以降低压缩预测过程中的错误率。 2.概述 在本文中,我们所提出的预测是一个源于PPM的预测算法,PPM在最初是用于分支的,现在已经演变出了很多对其的更新算法,使得该预测的准确性进一步提高。 关于PPM,我们可做以大致的回顾:PPM算法,是一种基于概率统计模型的自适应压缩算法,此算法根据已编码符号在不同阶中的频度统计信息来预测当前符号的概率。 在如下的图1中,有5个基本表,我们可以通过这5个表来表示我们提出的这种更新后的预测,它可以看成是一个关于PPM4阶的近似值。 2.概述 2.概述 在上图中,最左边的一个表我们记为表0,表0是一个双模态的预测器,含有4k的记录,我们可以用最少12位的分支PC(program counter 程序计数器/指令计数器)来对其记录进行索引。表0的每一个记录均包含一个3位的加减饱和计数器,此时我们还需有一个m位的计数器(m即代表meta prediction),此类计数器的功能我们将会在第4部中做以介绍,表0中总共的存储量为4k*(3+1)=16k. 另外的几个表我们分别记为表1-表4,这些表均用分支PC与一些全局历史数据来进行索引,具体来讲:表1-表4分别在80比特的全局历史数据下使用了最近的10、20、40、80比特的数据进行索引。 当全局历史数据的大小大于索引数据大小时,我们可以通过一个XOR式的指令将全局历史数据折叠压缩成一组新的连续的历史数据,然后再通过一个gshare预测函数将其压缩。对此我们可以举例如下: 2.概述 eg:表3中我们用40比特的历史数据对其进行索引,此索引可以通过如下的方法进行实现: 在上式中的连接符号表示压缩算法XOR。 在第4部分中我们将会精确地对我们上述的函数做以描述。 在图1中,表1-表4都含有1k的条目,而且,每个条目含有8比特的标签和3比特的加减饱和计数器,以及一个u位的数据,它的功能我们也将会在第4部分中做以介绍,则对于每一个条目,总共有12比特的数据大小,所以,我们可知,表1-表4每一个表都使用了1k*(3+8+1)=12k大小的数据。 综上所述,图1中通过预测总共的存储量为16k+4*12k=64k比特。 3.正在获得的预测 在我们进行预测的时候,这5个表的预测值均同时的接近。当数据接近这几个表得预测值时,每个表均以8比特的标签进行计算,用于计算8比特的hash函数与任何一个用于对表的索引都有不同之处,但是却有着相同的输入PC和全局历史数据。 当数值已开始接近时,我们就从表1-4中获得了四个8比特的标签和5个从表0-4的预测的比特数(这里预测到的比特数是3位饱和计数器中最重要的)我们总共可以得到4*8+5=37比特的数据。然后这37比特的数据将会减少到一个0/1的最终的预测上,这些数据都是3位饱和计数器中最重要的一部分,而且这些数据都与最长匹配的历史长度相关。 3.正在获得的预测 也就是说,我们预测的过程即如下过程: (1)如果我们在表4中所计算的标签数据与存信息的标签相匹配,那么我们则使用表4中的预测作为最终的预测。 (2)否则,如果如果我们在表3中所计算的标签数据与存储信息的标签所匹配,那么,我们将使用表3中的预测。接下来的过程以此类推。 (3)最终,如果存在一个标签数据与表1—4中的均不匹配,那么,最终的预测数据就为表0中的数据。 4.预测的更新 我们在对数据进行预测以后,需要对此进行适当的更新,在数据预测的更新阶段,即在后期的传输阶段,我们以实例加以说明时,我们需要记住哪一个是我们的预测值,而且还需要知道哪一个表中的预测是我们可以得到的,以及这种预测是否是正确。 对于上述文章中数据预测的更新大致我们会分为以下几种: (1)对3位饱和计数器的更新: 此时,我们在第X个表中更新3位饱和计数器,我们所提供的最终预测也就只是用到了这个计数器,此种更新方法为一个经典的方法。即就是,当分支数据跳转以后,计数器就会随之增加,反之则减少,计数器的取值分布在0到7之间,一般情况下,人们更喜欢使用2位饱和计数器取代3位饱和计数器,然而,在我们所提出的预测中3位饱和计数器具有更低的错误率。 预测的更新 (2)分配新的记录:

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档