进入百度app,青岛关键词优化排名,app定制开发制作报价,关键词全网搜索指数Error Handling
Error types 包含两种sub-packet级别的error, 和两种packe级别的error;
Packet level error Data Error, DERR □ 访问的地址是正确的#xff0c;但是访问的数据有错误#xff1b;通常是在数据崩溃的时候使用#xff0c;例如ECC#xf…Error Handling
Error types 包含两种sub-packet级别的error, 和两种packe级别的error;
Packet level error Data Error, DERR □ 访问的地址是正确的但是访问的数据有错误通常是在数据崩溃的时候使用例如ECCparity 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 □ 如果当前的状态是IRN不能缓存接收的数据 □ 如果当前状态不是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 typeRead 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需要能够处理这种场景