xianshan分支预测单元基础与top层介绍

xianshan分支预测单元基础与top层接口介绍

  • 2 xianshan BPU分支预测器总体架构
    • 2.1 分支预测器块思想
    • 2.2 多预测器
    • 2.3 多流水线
    • 2.4 取值目标队列--FTQ
      • 2.4.1 BPU预测结果内部重定向
      • 2.4.2 FTQ2BPU 重定向请求
      • 2.4.4 BPU的update请求
    • 2.5 总结

在这里重点介绍xianshan分支预测单元BPU的基础思想和工作原理,具体包括:分支预测块思想、多预测器、多流水线结构以及取值目标队列FTQ的作用;

2 xianshan BPU分支预测器总体架构

在这里插入图片描述

从xianshan BPU的总体架构图:可以明确看出含有多个预测器组件 + 多流水线;

2.1 分支预测器块思想

如前文所讲:分支预测器一般步骤来说:先根据给定的PC预测出该 PC 所对应的指令的相关信息,如是否是条件分支指令、是否是跳转指令。对于条件分支指令,会预测出是否会跳转以及跳转的目标地址,而对于跳转指令,则会预测出跳转目标。
缺点:这属于一条指令一条指令的进行预测,其效率较低,导致前端指令供给较慢;
xianshan BPU的策略是每次预测一个指令块;即给定一个PC,xianshan会预测出以这个PC开始的一个分支预测块(其包含若干条指令),来进行预测:是否存在分支指令、分支指令的位置、是否跳转以及跳转目标等信息。这样可以一次性预测出多条指令,将该预测结果送往取指单元IFU进行指导取指。
在预测块产生后,分支预测块还会生成执行完本预测块后跳转到的 PC,接着 BPU 会根据该 PC 继续产生下一个分支预测块
具体例子:
在这里插入图片描述
理解上面图–BPU的分支预测块的xianshan BPU的基本预测流程:
当CPU执行到0x20000118时,BPU具体经历如下步骤:
1.BPU得到输入PC 0x20000118;
2.BPU产生以0x20000118为开始的分支预测块,具体执行:
1.预测若干多条指令,并预测其中指令的条件分支指令;
2.预测中的条件分支指令,预测是否会跳转以及若taken它的跳转地址(比如0x20000110);
3.BPU将PC输出为0x20000110,并继续产生下一个分支预测块;

2.2 多预测器

xianshan BPU使用多个预测器组件,这些预测器都产生BPU的预测结果;例如:uFTB来生成基础的预测结果供后续使用;TAGE消耗时钟周期更长但是会产生更精确的预测结果;
这个后续会进行详细介绍;TBD;

2.3 多流水线

通过上面总体架构图可以指导,多个预测器组件并行开始执行,有的需要1个周期,有的需要2~3个周期,因此S1,S2,S3三个阶段都会产生预测结果;
这个可以通过仿真看看结果;------

2.4 取值目标队列–FTQ

背景:因为BPU和IFU性能上的差距,BPU产生预测结果速度更快。因此需要队列来缓存一下;
BPU 与 IFU 之间添加一个取值目标队列(FTQ)作为缓冲。FTQ本质上存储的元素是一个个数据项----BPU产生的预测结果存入到这里,然后IFU来从FTQ来取预测结果。
在这里插入图片描述
理解上述图:这个TBD;
FTB预测器中的FTB项(基本数据结构)–FTB项是由FTQ来更新的;

2.4.1 BPU预测结果内部重定向

从上面多流水线可知道:香山分支预测器BPU会有S1,S2,S3三个流水级预测结果同时输出;
FTQ如何使用这个阶段的输入预测结果呢?
对于S1,S2和S3通道输出的结果过程?
在这里插入图片描述
其中S2中的0x4x表示产生的不是0x4地址的其他地址而已;这个图能够理解了;感觉S3少一个输出,这样就能解释的通了;S3和S2产生的预测结果相同;
考虑假如S3和S2的预测地址也不一样的情况;---->首先再改过来,接着uFTB写入第二个项作为基础,再继续轮回可以继续改第二次的结果;

a.在第一个周期,一个新的PC 0x4 被送入,能在一周期内产生预测结果的预测器(叫做 uFTB)在 s1 接口输出了他的预测结果,并且结果指示下一个 PC 为 0xf,其他接口还无输出
b.在第二周期,PC 被设置为了 0xf,而 uFTB 也产生了 0xf 的预测结果,并从 s1 通道送出。与此同时,两周期预测器产生了上一轮 0x4 地址的预测结果,并从 s2 通道送出。
在这里插入图片描述
第二周期S2产生的0x4预测结果,已经在上一周期被S1所输出即放在FTQ中的表项中;需要做的并不是根据 s2 的预测结果,放置一个新的 FTQ 项,而是 对比 s2 预测结果和上一周期 s1 预测结果是否有差异,如果有差异则覆盖上一阶段 s1 接口放置的 FTQ 项;
因此S2和S3通道额外增加两个信号–redirect信号;如果该信号有效说明此时该阶段的预测结果与之前的预测结果产生差异,并且需要覆盖之前某个位置的 FTQ 项。

2.4.2 FTQ2BPU 重定向请求

无论再精确的分支预测器也不总是正确的–即S3预测的也是错误的,这种不正确会导致后续流水线中填充错误的指令,因此需要有一种机制来纠正这种错误–重定向。
后端执行模块如果发现分支预测错误,即发出重定向请求----让处理器的状态恢复到执行错误指令之前的状态。这对于我们来说,只需要关注BPU和FTQ在重定向时是怎样恢复状态的即可。
在这里插入图片描述

2.4.4 BPU的update请求

背景:现在BPU已经有了纠错能力,但是BPU中得不到更新数据,即如果无法获取指令的位置、类型、是否发生跳转以及跳转地址等信息,BPU 将得不到训练,并导致准确度大幅降低。
在这里插入图片描述
当后端执行完 FTQ 中的某一项时,该项会被标识为已提交,接下来 FTQ 将该项的更新信息,通过 Update 通道发往BPU。

2.5 总结

该节主要介绍BPU对外交互的所有主要接口,以及 FTQ 对于 BPU 的作用。介绍了预测结果接口、重定向接口、更新接口的 BPU已经可以支撑 BPU 的所有对外交互了。

[ref]
https://open-verify.cc/xs-bpu/docs/basic/01_xsbpu_basic/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559518.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数学建模算法与应用 第8章 时间序列分析

目录 8.1 确定性时间序列分析方法 Matlab代码示例:移动平均法提取趋势 8.2 平稳时间序列模型 Matlab代码示例:差分法与ADF检验 8.3 时间序列的Matlab相关工具箱及命令 Matlab代码示例:ARIMA模型的建立 8.4 ARIMA序列与季节性序列 Matl…

开发环境搭建之NVM管理NODE安装

由于项目繁多前端node环境代码不统一、所以安装切换不同版本node、所以在此记录一下安装过程: 下载NVM工具 nvm zip github下载安装包 简单粗暴一看就会、直接从官网下载zip安装包、然后执行命令安装所需node版本即可 下载之后直接安装: 安装完成之…

linux执行脚本的时候为什么要写成 ./脚本名 而不是用脚本名直接执行

原因: 一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH…

查询v$asm_disk等待enq: DD - contention

1.两个节点查询v$asm_disk均卡住,等待enq: DD - contention,阻塞源头为rbal进程,rbal进程未发生阻塞,未在异常等待事件上。 2.阻塞源头RBAL,在CPU上运行。没有在做rebalance磁盘平衡。 3.diag诊断日志中,阻…

python实现3D立柱图demo

import matplotlib.pyplot as plt import numpy as np plt.rcParams["font.sans-serif"] ["SimHei"] # 设置字体 plt.rcParams["axes.unicode_minus"] False # 该语句解决图像中的“-”负号的乱码问题# 数据 regions [东北, 中南, 华东, 华…

飞腾CPU技术发展分析

飞腾CPU剖析 CPU:信创根基,国之重器 国产CPU市场呈现三大领军阵营:x86、ARM以及其他创新架构。鲲鹏与飞腾在ARM阵营中引领风潮,依托ARM技术授权研发高性能处理器;海光与兆芯则以x86架构为基石,深入挖掘其潜…

数学建模算法与应用 第7章 数理统计与方法

目录 7.1 参数估计与假设检验 Matlab代码示例:均值的假设检验 7.2 Bootstrap方法 Matlab代码示例:Bootstrap估计均值的置信区间 7.3 方差分析 Matlab代码示例:单因素方差分析 7.4 回归分析 Matlab代码示例:线性回归 7.5 基…

Registry私有仓库可视化

Docker Registry 是一个用于存储和分发 Docker 镜像的服务,它支持构建私有仓库来管理组织内部的应用程序和镜像。然而,默认的 Docker Registry 并没有提供图形界面,这使得管理镜像变得不太直观。为了方便管理和查看私有仓库中的镜像&#xff…

显卡 3090 vs v100

1.3090 Date: 2020 AmperePielines/ Cuda cores: 10496 2.V100 Date: 2018 VoltaPielines/ Cuda cores: 5129 3.结构 & Core比较: v100优点: v100功耗小v100较快的双精度(fp64)和混合精度(fp16fp32)pcie版的NVLink与2080ti完全一致 v100缺点: 不支持整数格式计算&…

机器学习笔记-2

文章目录 一、Linear model二、How to represent this function三、Function with unknown parameter四、ReLU总结、A fancy name 一、Linear model 线性模型过于简单,有很大限制,我们需要更多复杂模式 蓝色是线性模型,线性模型无法去表示…

水下图像增强(论文复现)

本文所涉及所有资源均在 传知代码平台 可获取。 目录 概述 一、论文思路 二、模型介绍: 三、实现方法 四、复现过程(重要) 部署方式 概述 2021年11月,提出一种用于水下图像增强的U型Transformer模型,这是首次在水下图像增强任务中使用Transfo…

MySQL 对其他服务器授权

MySQL 对其他服务器授权 MySQL默认情况下,只允许本地连接,即 localhost ,如果其他服务器需要连接到 MySQL,需要MySQL 对这个服务器授权语法格式: grant 权限 on 数据库对象 to ⽤户 1. 使用下面 SQL,创建用户,并授权 -- 创建⽤户yulin, 并设置密码, 此步可省略 CREATE USER…

SpringBoot 整合 阿里云 OSS图片上传

一、OOS 简介 ‌阿里云OSS(Object Storage Service)是一种基于云存储的产品,适用于存储和管理各种类型的文件,包括图片、视频、文档等。‌ 阿里云OSS具有高可靠性、高可用性和低成本等优点,因此被广泛应用于各种场景&…

叉车毫米波雷达防撞技术,保护叉车作业安全

在叉车作业频繁的仓库与物流中心,安全隐患往往隐藏于细微之处,稍有不便可能引发重大事故。我们的叉车毫米波防撞系统方案,正是针对这一痛点而精心设计的创新之作。该系统通过集成的毫米波雷达技术,实现了对叉车周边环境的实时、精…

实时开放词汇目标检测(论文复现)

实时开放词汇目标检测(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 实时开放词汇目标检测(论文复现)概述模型框架使用方式配置环境训练和评估训练评估 演示效果Gradio Demo 概述 YOLO-World是由腾讯人工智能实验…

应急响应:DHCP$DNS劫持实战

目录 DHCP DHCP安全性: DHCP常见的攻击手段: DNS DNS常见的攻击方式: DNS&DHCP攻击实战演练: 环境配置: 利用: 排查: 防御: DHCP 介绍: DHCP(…

前端开发基础NodeJS+NPM基本使用(零基础入门)

文章目录 1、Nodejs基础1.1、NodeJs简介1.2、下载安装文件1.3、安装NodeJS1.4、验证安装2、Node.js 创建第一个应用2.1、说明2.2、创建服务脚本2.3、执行运行代码2.4、测试访问3、npm 基本使用3.1、测试安装3.2、配置淘宝npm镜像3.3.1、本地安装3.3.2、全局安装3.4、查看安装信…

解数独Python

怎样解数独? Python def setBoardFunc(puz): global grid print("Original Sudoku") for i in range(0, len(puz), 9): row puz[i:i9] temp [] for block in row: temp.append(int(block)) g…

小程序知识付费的优势 知识付费服务 知识付费平台 知识付费方法

在信息爆炸的时代,知识如同繁星点点,璀璨而散落。如何在这片知识的海洋中精准捕捞,成为现代人追求自我提升的迫切需求。小程序知识付费,正是这样一座桥梁,它以独特的优势,让智慧触手可及,轻触未…

视频流媒体解决方案,Liveweb国标GB28181视频监控汇聚平台

Liveweb视频监控国标平台指的是基于GB/T 28181协议的视频联网平台,可以对接各种符合国标GB/T 28181协议的视频平台、NVR录像机、网络监控摄像头、执法记录仪、应急布控球、移动单兵、无人机等设备。通过国标平台的联网,方便管理分布在不同地点的视频监控…