【CHI】(三)网络层

网络层负责确定目标节点的NodeID。本章包含以下部分:

  • 系统地址映射,SAM
  • 节点ID
  • 目标ID确定
  • 网络层flow示例

1. System address map

        系统中每个Requester(包括RN和HN)必须有一个System Address Map(SAM)来决定一个request的target ID。SAM的范围可能只是简单的为所有发送的requests提供一个固定的node ID。SAM具体的结构和格式是由具体实现决定的。

        SAM必须可以对全地址空间进行解码,CHI协议建议所有没有对应物理组件的地址都应该分配个一个agent代理,该agent可以对这些无用地址的访问提供恰当的error响应。

2. Node ID

        每一个连接到总线Port的组件都会被分配一个node ID,用于标识ICN上packets包路由的源节点和目的节点。一个Port可以有多个node IDs,但是一个node ID只能分配给一个Port,即ID唯一。 CHI协议支持的NodeID位宽为7~11bits,由具体实现决定,但是一个系统中所有组件的NodeID位宽必须一致,至于每个组件的NodeID值也是由具体实现决定的。

3. Target ID determination

本节描述对于不同的message types,如何决定target ID。包含以下部分:

  • Request messages的Target ID的确定
  • Response messages的Target ID的确定
  • Snoop request messages的Target ID的确定

3.1 Request messages的Target ID的确定

        为了对RN的request的TgtID进行映射,CHI协议要求SAM逻辑应该在RN或ICN中实现。如果在ICN中,ICN可能会对RN发送的Request packet的TgtID进行重新映射。

Request message的TgtID使用SAM由以下行为决定:

1.非PCrdRetrun:

  • 如果请求没有使用预分配的信用证credit,,那么TgtID的决定方式是:

——DVMOp操作用单独方式决定;

——除了DVM操作的其它request是由address来决定。但是PrefetchTgt相对于其它请求有不同的地址映射方式,对于RN发出同地址的两笔请求,PrefetchTgt总是指向SN,其它request总是指向HN;

  • 如果请求使用预分配的信用证credit,那么请求的TgtID是由RetryAck的SrcID决定的,即原始请求的TgtID。

2.对于PCrdRetrun:

  • RN发送该命令的TgtID必须等于PCrdGrant中提供的SrcID。

        从RN发送的transactions,除了PrefetchTgt是发往SN-F,CHI协议期望Snoopable transaction发往HN-F,Non-snoopable transaction发往HN-I或HN-F。当然Snoopable transaction也可以发往HN-I,但这样可能会导致error,比如软件编程错误。在这种情况下,HN-I仍需要对符合协议的行为返回响应,但这样会导致一致性无法保证。

        HN上也可能使用SAM逻辑来对每一笔request进行映射决定发往哪个SN。

3.2 Response messages的Target ID的确定

     组件在收到message后需要回Response packets,Response packets的TgtID是由收到message的SrcID、HomeNID、ReturnNID、FwdNID中的一个决定的。下表为对于Response message中每个Response packet的TgtID和接收到的message的决定TgtID的域之间的关系:

  

3.3 Snoop Request messages的Target ID的确定

     Snoop request没有包含TgtID,协议没有定义snoop request的TgtID,是由实现具体实现确定。

4. Network layer flow examples

本小结举几个简单的网络层传输transaction flow例子。包含以下内容:

  • Simple flow
  • Flow with interconnect based SAM
  • Flow with interconnect based SAM and Retry request

4.1 Simple flow

图3-1为一个简单的transaction flow,描述了requests和responses的TgtID是如何决定的。

 

在图3-1中,不需要重新映射的TgtID分配的步骤是:

  1. RN0使用内部SAM向HN0发送一个TgtID的RN0请求。——ICN不会重新映射节点ID。
  2. HN0查找内部SAM以确定目标SN节点。
  3. SN0接收该请求并发送一个数据响应。——数据响应包具有来自请求ReturnNID的TgtID。
  4. RN0接收来自SN0的数据响应。
  5. 如果需要,RN0发送一个CompAck响应,其TgtID来自数据响应包中的HomeNID,以完成事务。

4.2 Flow with interconnect based SAM

        图3-2为在ICN上发生对请求的TgtID进行重映射的传输场景,重映射只发生在请求的TgtID上,transaction flow的其它packet的TgtID和simple flow类似,不需要remap:

 

在图3-2中,使用重映射逻辑进行TgtID分配的步骤如下:

  1. RN0使用内部SAM向RN0发送TgtID为HN0的RN0的请求。
  2. ICN会将请求TgtID从HN0重新映射到HN1。SrcID仍然设置为原始请求程序RN0。
  3. HN1查找内部SAM以确定目标SN节点。ReturnNID被设置为匹配原始请求程序RN0。
  4. SN0接收该请求并发送一个数据响应。——数据响应包具有来自请求ReturnNID的TgtID,并将HomeNID设置为匹配重新映射的主节点。
  5. RN0接收来自SN0的数据响应。
  6. 如有必要,RN0发送来自数据响应包中HN1的HomeNID,以完成事务。

4.3 Flow with interconnect based SAM and Retry request

图3-3为请求被retry的情况:

上图中重新映射TgtID且请求被retry步骤如下:

  1. 互连将RN0提供的TgtID重新映射到HN1。
  2. 请求接收RetryAck响应。——RetryAck和PCrdGrant响应从接收到的请求中的SrcID中获取TgtID信息。
  3. 一旦同时收到RetryAck和PCrdGrant响应,RN0将重新发送该请求。——retry请求中的TgtID与接收到的重新尝试请求中的SrcID或原始请求中的TgtID相同。TgtID必须再次通过重映射逻辑()。
  4. 事务流的其余部分中的数据包以基于互连的SAM的流类似的方式获得TgtID。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PSO-KELM的时间序列数据预测(含对比实验)

前段时间有粉丝私信想让我出一期对时间序列预测的文章,所以今天它来了。 时间序列数据,如股指价格,具有波动性、非线性和突变的特点,对于这类数据的预测往往需要可靠强健的预测模型,而传统的机器学习算法如SVM、BP等…

c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)

//这个发送端代码 #include "reg51.h" #include "myheader.h" #define uchar unsigned char long int sleep_i0; long int main_i0; void main() {uchar sendx[6]{2,0,2,3,8,1};sleep(2000);TMOD0x20;TH10XF4;//根据波特率计算公式这里需要设置为这么多才能…

02 基于51单片机的LED闪烁实验

目录 前言 一、整体目录结构 二、代码展示 三、main.c代码解析 四、下载到单片机中 总结 前言 前面我们已经学会了点亮一个led的实验,今天我们来实现LED闪烁。前面我们讲到想要让LED亮的话,只要给单片机引脚高电平就好了,如果给LED低电平的话…

竞赛项目 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &#x…

Android 面试笔记整理-Binder机制

作者:浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道…

LeetCode 1631. Path With Minimum Effort【最小瓶颈路;二分+BFS或DFS;计数排序+并查集;最小生成树】1947

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

流量日志分析--实操

[鹤城杯 2021]流量分析 <--第一道流量分析不难,主要就是布尔盲注的流量包分析,直接查看http请求包即可我们可以通过观察看到注入成功的响应长度不同,这里成功的为978字节,失败的994字节.不要问为什么.其实也可以直接判断.978的流量比994的少了非常多 显然就是成功的(因为这里…

LeetCode--HOT100题(26)

目录 题目描述&#xff1a;142. 环形链表 II&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;142. 环形链表 II&#xff08;中等&#xff09; 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返…

antd中Switch组件的使用

<Switch> 是 Ant Design 中的一个组件&#xff0c;用于在开关之间切换。checkedChildren 是 <Switch> 组件的一个属性&#xff0c;用于指定在开关打开时显示的文本或 React 元素。 以下是 <Switch> 组件的基本语法&#xff1a; import { Switch } from ant…

【大数据】一些基本概念

一、数据库、数据仓库、数据湖 1.什么是数据库 (Database, DB) 数据库是指长期储存在计算机中的有组织的, 可共享的数据集合 就是存储数据的仓库 数据库有三个特点: 永久存储, 有组织, 可共享 数据库是一种结构化数据存储技术&#xff0c;用于存储和管理有组织的数据。数据库…

在 Linux 中使用 cp 命令

cp 命令是 Linux 中一个重要的命令&#xff0c;你可能经常会用到它。 正如名称所示&#xff0c;cp 代表 复制copy&#xff0c;它被用于 在 Linux 命令行中复制文件和目录。 这是一个相对简单的命令&#xff0c;只有几个选项&#xff0c;但你仍有必要深入了解它。 在展示 cp …

使用GUI Guider工具开发嵌入式GUI应用 (3) - 使用label组件

使用GUI Guider工具开发嵌入式GUI应用 (3) - 使用label组件 文章目录 使用GUI Guider工具开发嵌入式GUI应用 (3) - 使用label组件引言在GUI Guider工程中创建label组件编译MCU工程并下载到开发板 引言 本节讲述在GUI Guider中&#xff0c;应用各种UI的基本元素&#xff0c;并顺…

(十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模型),也可…

datawhale49期-task02:安装MMSegmentation

task02:安装MMSegmentation 运行环境&#xff1a;window11 ,GPU RTX 4060、CUDA v11.8 1. Pytorch环境 步骤 1. 创建一个 conda 环境&#xff0c;并激活 conda create --name openmmlab python3.8 -y conda activate openmmlabStep 2. 参考 official instructions 安装 PyTor…

详谈数据库InnoDB引擎与MyISAM引擎

目录 1. 简单了解什么是存储引擎? 2. InnoDB 引擎概述 3. MyISAM 引擎概述 4. InnoDB 与 MyISAM 的一些区别 1. 简单了解什么是存储引擎? 相信很多人在听到存储引擎这个名字的时候可能会有些疑惑&#xff0c;听着名字就觉得有些难&#xff0c;导致很多人没有兴趣了解它&a…

【算法题】螺旋矩阵IV (求解n阶折线蛇形矩阵)

一、问题的提出 n阶折线蛇形矩阵的特点是按照图1所示的方式排列元素。n阶蛇形矩阵是指矩阵的大小为nn&#xff0c;其中n为正整数。 题目背景 一个 n 行 n 列的螺旋矩阵可由如图1所示的方法生成&#xff0c;观察图片&#xff0c;找出填数规律。填数规则为从 1 开始填到 nn。 …

HTTP 协议的基本格式和 fiddler 的用法

目录 一. HTTP 协议 1. HTTP协议是什么 2. HTTP协议的基本格式 HTTP请求 首行 GET和POST方法&#xff1a; 其他方法 经典面试题&#xff1a; URL Header(请求报头)部分 空行 ​HTTP响应 状态码总结: 二、Fiddler的用法 1.Fidder的安装 2.Fidder的使用 一. HTTP 协议 1. H…

如何在 iOS 上安装并使用 ONLYOFFICE 文档

借助 iOS 版文档应用&#xff0c;您可在移动端设备上访问存储于 ONLYOFFICE 账户中的文件&#xff0c;查看和编辑现有文本文档、电子表格和演示文稿&#xff0c;创建新文档并对其进行整理&#xff0c;以及连接第三方云存储服务。您可与其他门户网站用户协作编辑文档&#xff0c…

多环境_部署项目

多环境&#xff1a; 指同一套项目代码在不同的阶段需要根据实际情况来调整配置并且部署到不同的机器上。 为什么需要&#xff1f; 1. 每个环境互不影响 2. 区分不同的阶段&#xff1a;开发 / 测试 / 生产 3. 对项目进行优化&#xff1a; 1. 本地日志级别 2. 精简依赖&a…

图像的镜像变换之c++实现(qt + 不调包)

1.基本原理 1.水平镜像变化 设图像的宽度为width&#xff0c;则水平镜像变化的映射关系如下&#xff1a; 2.垂直镜像变化 设图像的宽度为height&#xff0c;则垂直镜像变化的映射关系如下&#xff1a; 2.代码实现&#xff08;代码是我以前自学图像处理时写的&#xff0c;代码很…