CHI中的error处理

Error Handling


Error types
        包含两种sub-packet级别的error, 和两种packe级别的error;
 

Packet level error
 Data Error, DERR
        □ 访问的地址是正确的,但是访问的数据有错误;通常是在数据崩溃的时候使用,例如ECC,parity check;
        该Data Error, 可以在DAT packet中的resperr, poison, data check域段反映;
        如果HN收到一个RN发送过来的请求或者snp data, 包含DERR, HN必须继续处理,要继续将该命令传播到SN;
Non-data Error, NDERR
       □ 和data err不相关的错误,都是NDERR, 协议并未规定所有的场景;
       □ 通常会有如下场景:
               □ 访问一个不存在的空间;
               □ 错误的访问命令,例如,写一个read-only的空间;
               □ 使用reserved的命令类型等等;
        □ 当HN收到一个NDERR命令时,可以,但是不推荐继续往SN传;
        □ Non-data err在RSP/DAT通道的resp err域段反映; 

Error response fields
该域段在response和data通道都有;

 □ 单个trans,不能既有ok, 也有exok;
□ Data resp, 要么没有NDERR, 要么都是NDERR;
□ 单个trans,可以既有ok, 也有DERR;
□ 单个trans,可以既有exok, 也有DERR;
□ 单个trans,可以既有OK, 也有NDERR;此场景出现在data和non-data resp同时返回的时候;
□ 单个trans,不能既有exok, 也有nderr;

Errors and transaction structure
□ 不管transaction是否包含error response,都必须按照与协议一致的行为完成。
□ 使用DMT的transaction的error handling和没有使用DMT相同请求的error handing处理流程一样。
□ requests或snoops没有机制传输errors,如果在ICN上检测错误,那么该request不能使用DMT或DCT。
□ 发生错误时,如果transaction包含data packets,则需要data packets的源发送正确数量的数据包,但不要求数据值有效。
□ transaction中resp域的cache state可以被error handling影响。
□ 如果transaction的响应没有包含合法的cache state,那么RespErr域必须把所有data packets指示为Non-data Error。
□ 不管是否存在error情况,data message的每个packet的Resp域在响应中必须有相同的值;
□ 当某个RN收到的snoopable resquest的响应,是non-data err时:
        □ 对于allocation trans
                □ 如果当前的状态是I,RN不能缓存接收的数据;
                □ 如果当前状态不是invalid的,则缓存的数据,不能够进行修改;
                □ 不管是上述那种情况,cacheline state都不能修改;
                □ 包含如下命令:
                        — ReadClean 
                        — ReadNotSharedDirty 
                        — ReadShared 
                        — ReadUnique 
                        — ReadPreferUnique 
                        — MakeReadUnique 
                        — CleanUnique 
                        — MakeUnique
        □ 对于deallocation trans;
                □ 同正常流程一样;
                □ 包含如下命令:
                        — WriteBack 
                        — WriteEvictFull 
                        — Evict 
                        — WriteEvictOrEvict
□ 对于Other transactions that do not change allocation
        □ Cacheline的状态,不能升级,可以降级;

□ Snpresp中,如果是non-data err,则cacheline状态必须是invalid, 返回响应的RN,必须invalid掉local cache copy;
□ 除此以外,如果snoop resp是forwarding的,带了non-data err, 那么被snoop的人,不要将data返回给原始RN;因此,如果compdata message已经返回给了RN, 那么返回给HN的snoop resp,就不能携带non-data err;

Error response use by transaction type
Read transactions
□ 读操作可能包含多个compdata packets;
□ 当错误指示,Poison, DERR, or NDERR置位时,表示数据corrupt;
□ 当respsepdata是non-data err时,所有的datasepresp都应该标记为non-data err, 而不能只标记其中一两个;
□ 参考协议每个命令在不同的响应中
(read receipt/compdata/compack/datasepresp/respsepdata),可以出现的状态;
Dataless transactions
□ Dataless trans也可以返回data error, 例如当其他component处理时产生了data corruption err;(HNF snoop时有data err返回);

Write transactions
□ Write trans,可以包含data err, 或者non-data err; 既可以从RN往completor送,也可以从completor往RN送;
□ Write data有错误,可以通过置位Poison or DERR来指示;
□ Compter往RN返回错误,可以通过compDBIDResp, 或者Comp resp;completer可以在收到writedata之前,就发送错误信号,比如cache lookup,数据损坏的场景;

Atomic transactions
略;

DVMOp
□ DVMOp 的响应,可以包含Non-data err和data err;
□ MN会将所有snoop resp的err进行合并,生成comp resp, 然后返回给RN;

Snoop transactions
□ Snoop trans的resp,可以指示data err;
□ Snoop trasn的resp, 可以混合OK和DERR;
□ Snoop的数据错误,可以通过Poison or DERR指示;
□ 不包含数据的Snoop trans resp, 可以有NDERR指示;
□ 被snoop的RN返回NDERR时,必须满足如下需求:
        □ Snoop trans resp中不能包含数据;
        □ 必须将当前cache中的copy invalid;
        □ Cache state返回invalid:
        □ 如果是forwarding snoop, 不要返回compdata给原始RN;

Poison
□ 该信号用来指示data中哪些bit时corrupted. 该bit跟随DAT通道传输;
□ 该poison支持:每64bits数据,1bit poison
□ 如果数据标记成poisoned;
         □    不能被RN所使用;
         □    允许存入cache;
□ Posion一旦被set, 就必须跟随data一起传输;
□ 当poison被检测到时,可以跳过poison的data;

Data Check
□ 每64bits 8bits的data check, 存储的是奇偶校验结果;
□ 如果Data packet的接受者不支持Posion或DataCheck特性,需要的话,ICN必须将其转换成DAT packet的Data Error。
□ 如果支持Posion和DataCheck特性,但接口不是相似的话,需要遵循如下原则:
        □ 如果Posion不支持的话,Posion必须映射成DataCheck或DERR。在这样的interface下,如果DataCheck支持的话,更期望将Posion映射成DataCheck,而不是DERR;在将Posion转为DataCheck的时候,8bytes块标记为Posion,每个DataCheck的8bits必须控制产生为parity error;
         □ 如果DataCheck不支持的话,DataCheck必须映射成Posion或DERR。在这样的interface下,如果支持Posion,更期望将DataCheck映射成Posion,而不是DERR;在将DataCheck转换为Posion的时候,在一个8byte chunk中,如果一个或多个DataCheck bits产生parity error,那么chunk的Posion bit必须置位。
注意:Posion和DERR的不同之处在于: 收到带Posion error的Data packet通常会被receiver推迟,但是DERR error通常不会被receiver推迟。
对在检测到Posion error时将其指示到Posion bits,对于Sender来说已经足够了,但是否将其RespErr置成DERR不是需要的。
对在检测到DataCheck error时将其指示到DataCheck bits,对于Sender来说已经足够了,但是否将其RespErr置成DERR不是需要的。
Posion和DataCheck的域段是独立的,一个类型的错误不要求另一个类型的域段置位;
在一个Data packet中,如果RespErr域段设置成DERR或NDERR,那么Posion和DataCheck的域段值不关心。


Quality of Service
 □ 系统中使用QOS机制来实现如下事情:
         □ 对于特定数据流,保证trans的最大latency;
         □ 对于请求数据流,保证最小的带宽;
         □ 对于特定的数据流,提供最优的带宽和延迟;
 □ 在总线中间节点的支持下,满足系统QoS需求的低latency或保证数据吞吐量需求主要是由transactions endpoint负责的。协议通过定义packets的QoS优先级值和使用defined credit机制控制request flow来支持这一点
 □ Qos一共4bits, 从源端带来;在典型使用模型中,此值取决于源类型和流量类别,QoS的升序值表示更高的优先级。源还可以根据某些累积的延迟和所需的吞吐量度量动态地改变该值。

 □ 当某个trans已经发送了,qos是某个值,这个时候,协议是允许它在发送一次,并使用不同的优先级的,当然,通常是优先级更高;completer需要能够处理这种场景;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车销售企业消费税,增值税高怎么合理解决?

《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 汽车行业一直处于炙手可热的阶段,这是因为个人或者家庭用车的需求在不断攀升,同时随着新能源的技术进一步应用到汽车领域,一度实现了汽车销量的翻倍。…

Java读取及生成pb文件并转换jsonString

Java读取及生成pb文件并转换jsonString 1. 效果图2. 原理2.1 Protocol Buffers是什么2.2 支持的语言2.3 根据.proto生成.java2.4 初始化及构建pb,读取,转jsonString 3. 源码3.1 address.proto3.2 PbParseUtil.java 参考 读取pb及生成pb文件pb文件转换jso…

【Unity细节】关于NotImplementedException: The method or operation is not implemented

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐关于NotImplementedException: The method or operation is not implemented.⭐…

中药配方煎药-亿发智能中药汤剂煎煮系统,智慧中药房的数字化升级

随着中药的普及,在治病、养生等方面都发挥这积极作用,但中药煎煮过程繁琐,如果有所差错将会影响药品的药性。为了满足当今用户对中药的需求,增强生产效率和业务水平,亿发中药煎配智能管理系统应运而生,为用…

机器学习深度学习——多层感知机的从零开始实现

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——多层感知机 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所帮助 为…

Linux Day03

一、基础命令(在Linux Day02基础上补充) 1.10 find find 搜索路径 -name 文件名 按文件名字搜索 find 搜索路径 -cmin -n 搜索过去n分钟内修改的文件 find 搜索路径 -ctime -n搜索过去n分钟内修改的文件 1)按文件名字 2)按时间 1.11 grep 在文件中过…

【Ajax】笔记-同源策略

同源策略(Same-Origin Policy),是浏览器的一种安全策略 同源(即url相同):协议、域名、端口号 必须完全相同。(请求是来自同一个服务) 跨域:违背了同源策略,即跨域。 ajax请求是遵循…

软件测试面试题——接口自动化测试怎么做?

面试过程中,也问了该问题,以下是自己的回答: 接口自动化测试,之前做过,第一个版本是用jmeter 做的,1 主要是将P0级别的功能接口梳理出来,根据业务流抓包获取相关接口,并在jmeter中跑…

BUU CODE REVIEW 1

BUU CODE REVIEW 1 考点&#xff1a;PHP变量引用 源码直接给了 <?phphighlight_file(__FILE__);class BUU {public $correct "";public $input "";public function __destruct() {try {$this->correct base64_encode(uniqid());if($this->c…

回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实…

git stash clear清空本地暂存代码

git stash clear清空本地暂存代码 git stash 或者 git stash list 查看本地暂存的代码。 清除本地暂存的代码修改&#xff1a; git stash clear git回退代码仓库版本_git回退到之前的版本会影响本地代码嘛_zhangphil的博客-CSDN博客git回退代码版本_git回退到之前的版本会影…

没有软件测试经验,怎样面试测试工作?

纸上得来终觉浅&#xff0c;所有的面试经验都是要自己去体验&#xff0c;他人说来的都是他人的经验。 同样&#xff0c;每个公司&#xff0c;面对的面试官都会有不同的问题&#xff0c;当然这些问题可能会大同小异&#xff0c;但是也需要自己总结得出&#xff0c;这样的经验不…

文件上传到远程服务器

文件上传 一、上传文件到本地 package com.ruoyi.system.knowledgebase;import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.system.domain.SzKnowledge; import com.ruoyi.system.service.ISzKnowledgeServi…

基于物联网、视频监控与AI视觉技术的智慧电厂项目智能化改造方案

一、项目背景 现阶段&#xff0c;电力行业很多企业都在部署摄像头对电力巡检现场状况进行远程监控&#xff0c;但是存在人工查看费时、疲劳、出现问题无法第一时间发现等管理弊端&#xff0c;而且安全事件主要依靠人工经验判断分析、管控&#xff0c;效率十分低下。 为解决上述…

vue生命周期的传统写法和setup语法糖写法

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;vue生命周期的传统写法和setup语法糖写法 文章目录 setup语法糖设计目的Vue2 与Vue3的生命周期对比vue3钩子函数beforeCreated和created被封装传统写法和语法糖写法的对比 setup语法糖设计目的 <…

容器部署jenkins定时构建于本地时间不一致

1. Dockerfile FROM jenkins/jenkins:2.411-jdk11 USER root #以下生成密钥方式为旧格式&#xff0c;因为新格式暂不能被"Publish over SSH--->Jenkins SSH Key"功能识别 RUN ssh-keygen -q -m PEM -t rsa -b 2048 -N -f /root/.ssh/id_rsa ADD ./apache-maven…

【Boost搜索引擎项目】

文章目录 一、项目流程二、项目展示 一、项目流程 1.编写数据去标签模块–parser.cc 将去标签之后干净文档以title\3content\3url\ntitle\3content\3url\n格式放入同一文件中。 2.建立索引模块–index.hpp 读取处理好的行文本文件进行分词、权重计算等操作&#xff0c;在内存中…

在linux上面部署activemq

1、下载 网址&#xff1a;ActiveMQ 注意&#xff1a;新版本5.17起 要求jdk11, 5.16兼容jdk8, 所以&#xff0c;确保已经安装 java11 或以上的版本 这里安装较新版&#xff1a;5.18.2&#xff0c;已经安装了java17 如何安装jdk17,请详见我的另一篇文章&#xff1a;linux…

Leetcode-每日一题【剑指 Offer II 075. 数组相对排序】

题目 给定两个数组&#xff0c;arr1 和 arr2&#xff0c; arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 示例&…

AI For Engineers 线上参会指南

AI For Engineers 线上参会指南 欢迎您报名参加 AI For Engineers&#xff1a;工程师 AI 全球会议&#xff0c;为了让各位参会者参会体验更佳&#xff0c;更好地利用本次会议收获更多。Altair 特别为各位准备了线上参会指南&#xff0c;一起来看看吧~ 会议时间&#xff1a;20…