硬件投机及多发射-ZJUArcLab.pdfVIP

  • 70
  • 0
  • 约3.55万字
  • 约 87页
  • 2017-06-05 发布于四川
  • 举报
硬件投机及多发射-ZJUArcLab

硬件投机及多发射 浙大计算机陈文智 chenwz@zju.edu.cn 2014年11月 2014/11/9 1 3.7 Reducing Branch Costs with Dynamic Hardware Prediction(2.3) 1-bit Branch-Prediction Buffer 2-bit Branch-Prediction Buffer Correlating Branch Prediction Buffer Branch Target Buffer Return Address Predictors 2014/11/9 2 概述  本节内容: 通过硬件动态预测转移指令的行为来 减少转移代价  基本思想: 设置一预测branch指令行为(即转移成 功与否)的硬件,取出Branch指令的同时,取出其 预测结果(转移成功或不成功).  若预测为不成功,则下一节拍就立即取出下一条指令, 无任何停顿.  若预测为成功,则继续执行Branch指令,计算出转移地 址,此时有一个stall,存在delay slot. 2014/11/9 3  Branch动态预测特别适用于用静态调度方法即在 compiling阶段无法解决(预测)的情况。  如本次转移方向取决于其它的branch结果,即存在关联 (correlation)关系的时候。  转移预测的效率与下列因素有关:  预测的正确率  转移的代价,指预测正确时的代价,和预测出错时的代 价。  转移的代价与下列因素有关:  流水线的结构(如硬件安排方式等)  预测器的类型(将在下面介绍不同预测器的效率)  预测失败时,恢复的策略。 2014/11/9 4 3.7.1 Basic Branch predication and Branch-Predication Buffers 最简单的动态转移预测器就是采用转移预测 缓冲器,缓冲器中储存预测信息,又可称为 转移历史表。这是一个小的存储器,由转移 指令地址的低位来索引。 介绍两种转移预测缓冲器方案:一位预测器 (one-bit)和两位预测器(two bits) 2014/11/9 5 一、一位转移预测缓冲器one-bit predictor  建立一个只有一位的缓冲器,存放当前程序的转移行为,并 用转移指令的低位读取;根据其中的值预测当前转移指令的 行为;预测命中值不变,预测失败则修改缓冲器内的值 0 :不转移 转移指令 0/1 预测行为 低位地址 1 :转移 预测失败取反 2014/11/9 6 存在问题:  由于预测缓冲器单元,是由转移指令的低位地址索引的,因此 该单元的信息可能由另一条低位地位与本条Branch指令相同的

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档