1.4 Crime and Punishment

2023-10-25 17:18
文章标签 1.4 crime punishment

本文主要是介绍1.4 Crime and Punishment,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很多时候,一个架构师选择Load/StoreSpeculation的终极方法是掷硬币,只是在用一只很有技巧的手去投掷这个硬币。这些猜测是无限追求完美的人群,在屈服于最终的命运安排之后使用的赌徒方式。有人质疑这种掷硬币和闭着眼睛猜有什么区别。闭着眼睛猜确实是一种办法,只是当你睁开双眼发现迷失后,知道归时之路。

Load/StoreSpeculation的结果可能正确,也可能错误。如果最终结果是正确的,是一次成功的投机,如果错误会带来一定的惩罚。如果一次投机将导致不可收拾的系统惩罚,其最终结果不如不进行这些猜测。片面追求投机而忽略惩罚只是莽夫所为。合理的预测执行与失败后可以承担的惩罚是一个大的权衡。投机是人类与生俱来的。在投机的成功率越高,相应的惩罚越低时,这个天性就更加容易暴露。

Speculation策略需要在成功率和惩罚间进行取舍。让我无限制的悔棋,从理论上说我可以战胜一切对手。只是这个对手如果是李昌镐,至死我也下不完一盘棋,所以我将目标设为悔棋十步,去挑战那位每次只能胜我一目半目的邻居。采用十步悔棋规则后,那位邻居每次战至中盘,即与我签订城下之盟。

溯本求源,我们重新讨论为什么会出现Load/Store Speculation。为简化起见,我们仅在此讨论Load Speculation而忽略Store Speculation。在现代处理器系统中,存储器Load请求所需的Latency相对于CPU的主频在不断提高,使得存储器瓶颈问题更加突出一些。使用Load Speculation的主要原因是为了掩盖这些Load Latency,尽量的让执行延时较长的存储器读指令笨鸟先飞早入林。如何决定让那只笨鸟先飞是一个较为复杂的预测过程。在讲述这些预测之前,我们首先讨论这些预测的基本实现机制和预测失败的后继处理方法。

我们简单回顾ConfidenceCounter机制,Confidence Counter是一种常用的,判断是否应该进行预测的加权处理方式。除了Load/Store Speculation实现之外,Confidence Counter也广泛应用于Branch Prediction领域,是一种已经得到证明的,行之有效的方式。其实现机制与N-bit Saturating Counter(BimodalPredictor)类似。Confidence CounterSaturationPredict ThresholdMisprediction PenaltyIncrement for Correct Prediction四个参数[14][15]组成。

我们以{31(Saturation),30(Threshold), 15(Penalty), 1(Increment)}为例简要说明Confidence Counter的使用方法。假设在一个应用中,Confidence Counter的初值为29,此时指令流水线将不会进行Load Speculation操作。如果指令流水线发现执行的最终结果为真时,Confidence Counter将加1(Increment);当Confidence Counter的值等于或者超过Threshold时,指令流水线开始进行Load Speculation;如果Confidence Counter的值为31(Saturation)时,结果为真时也保持不变;如果预测失败后,Confidence Counter将一次减去15(Penalty),直到逐步加1到达Threshold后才能触发Load Speculation

BranchPrediction

这篇关于1.4 Crime and Punishment的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284034

相关文章

USACO Section 1.4 Packing Rectangles

题意: 已知4个矩形的l和w  矩形可以旋转和平移  用一块最小面积的新的矩形覆盖4个矩形 求最小的面积  以及新矩形的l和w 思路: 题目已经给出6种摆放方式  按它的方式摆即可 我们要枚举4个矩形是否旋转(只转90度)过  然后枚举每种摆放方式中矩形的编号 代码中的枚举方法是二进制枚举旋转  全排列枚举编号 最后计算所有情况中的答案 第6种摆放方式比较难想  大致思路就是

xmlSchema 1.0 - 1.4 各个版本免费下载

xmlSchema 1.0 - 1.4 各个版本免费下载: 附网址  http://www.java2s.com/Code/Jar/x/DownloadXmlSchema132jar.htm

使用RMBG-1.4进行抠图(背景移除)

使用RMBG-1.4进行抠图(背景移除) 说明: 首次发表日期:2024-08-28RMBG-1.4 Hugging Face 地址: https://huggingface.co/briaai/RMBG-1.4 准备工作 创建环境并安装依赖:: # 如果`~/.local/lib/python3.10/site-packages`里面存在python模块,需要禁用。## 可以直接删除

Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules (

用eclipse开发web项目不能加载到tomcat6.0服务器,很是郁闷,后来在网上找到了解决办法。 同我前面的文章,地址:http://memory4bh.iteye.com/blog/2082721 通过修改Project facets配置,把web Module设置为3.0,则不能添加到tomcat 6中, 而且通过Project facets无法修改web MOdule。如下:在ecl

Nacos安装部署(版本1.4.8)

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。针对 Nacos 1.4.8版本的安装部署,我将详细介绍其步骤和注意事项。 一、环境准备 JDK版本: 确保系统中已安装Java JDK 1.8及以上版本。Nacos基于Java开发,JDK版本不兼容可能导致启动

第一章 python数据结构和算法--1.4 查找最大或最小的 N 个元素 问题

问题 怎样从一个集合中获得最大或者最小的 N 个元素列表? 解决方案 heapq 模块有两个函数:nlargest() 和 nsmallest() 可以完美解决这个问题。 import heapqnums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]print(heapq.nlargest(3, nums)) # Prints [42, 37, 2

DEAP 1.4.1 documention

创建类型 本教程展示了如何使用 `creator` 创建类型,并使用 `toolbox` 进行初始化。 适应度 提供的 `Fitness` 类是一个抽象类,需要 `weights` 属性才能发挥作用。最小化适应度使用负权重,而最大化适应度使用正权重。例如,以下代码在 `creator` 中创建了一个单目标最小化适应度 `FitnessMin`: creator.create("Fitnes

1.4.1 CSS 样式 background 详解

背景图(background-image)   background-image 属性允许指定一个图片展示在背景中。可以和 background-color 连用,因此如果图片不重复地话,图片覆盖不到地地方都会被背景色填充。代码很简单,只需要记住,路径是相对于样式表的,因此以下的代码中,图片和样式表是 在同一个目录中的。   background-image: url(image.jpg)

Aidlux 1.4 部署homeassistant core 2024.6实录

1 Aidlux 安装 Index of /apk/ (aidlux.com) 基于debain 10.1,改不了内核参数用不了docker,用initd管理而不是systemd,阉割版系统很多安装依赖项要自己摸索补全。 # 1 由于您的系统使用的是 SysVinit 而不是 systemd,更改时区。sudo cp /etc/localtime /etc/localtime.backup

1.4自然语言的分布式表示-word2vec实操

文章目录 0写在前面1数据准备2CBOW模型结构的实现3交叉熵损失函数的前向计算3.1关于cross_entropy_error的计算3.2关于softmax 0写在前面 代码都位于:nlp;其他相关内容详见专栏:深度学习自然语言处理基础_骑着蜗牛环游深度学习世界的博客-CSDN博客; 1数据准备 输入是上下文,目标是中间的单词 因此对于下图所示的小的语料库来说,可以构