NVMe2.0三种传输模型

NVMe2.0协议介绍了三种传输模型:内存模型、消息模型和消息/内存模型。内存模型主要用于PCIe,而消息模型适用于NVMe-over-Fabric(NVMe-oF)。命名空间是NVMe控制器的基本单位,可通过管理命令创建和删除。NVMe-oF在多路径I/O和命名空间共享上与内存模型相似,但有特定的网络中断和流控机制。Discovery服务允许主机发现NVM子系统和路径。此外,安全性包括fabric secure channel和NVMe in-band authentication。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下内容基于NVMe2.0协议规范,第2章NVMe Base Specification – NVM Expresshttps://nvmexpress.org/developers/nvme-specification/

 

NVMe三种传输模型:

包括内存模型、消息模型、消息/内存模型(图片来自NVMe官方文档)

命名空间:

一个NVMe控制器可以支持多个命名空间,每个命名空间有一个namespace ID。

一个命名空间只对应一种I/O命令集。

命名空间通过Namespace Management和Capacity Management命令被创建和删除。

一个命名空间的capability和设置通过Identify Namespace结构体、IO命令集中的Identify Namespace结构体和Independent Identify Namespace结构体来表示。

基于内存的传输模型

与NVMe1.x一致,用于PCIe,不详细解释。

可参考(12条消息) NVMe 协议详解(一)_IFappy的博客-CSDN博客_nvme协议

基于消息的传输模型

用于NVMe-oF。与内存模型有以下不同:

1,I/O SQ和CQ之间是1对1的关系,不支持多个SQ对1个CQ。

2,没有定义Controller对host的中断,需要主机网络接口做这个中断的工作。

3,对于I/O SQ和CQ的创建与删除采用不同的机制。

4,不支持位于分离的缓冲区中的meta data,即不支持Metadata Pointer字段。

5,不支持PRP,支持SGL。Admin, I/O, Fabrics命令集都支持SGL。

6,不支持CQ流控。

7,只要host和controller约定好,可以禁用SQ流控。

NVM 子系统端口

一个NVM子系统可包含1至(64Ki-16)个controllers。

一个NVM子系统可包含一个或多个NVM子系统port。

一个NVM子系统port是子系统与网络之间的协议接口。1至多个物理网络接口可以形成一个协议接口,也就是一个NVM子系统port。

每个子系统port有一个16-bit标识符Port ID。每个子系统port由NQN和Port ID来唯一标识。

NQN是NVM Subsystem NVMe Qualified Name。

一个NVM子系统中的不同ports可以支持不同的NVMe传输。

一个NVM子系统port可以支持多个NVMe传输,前提是more than one NVMe Transport binding specifications exist for the underlying fabric,例如,一个port可以同时支持iWARP和RoCE。

在子系统中,controller和port之间可以自由分配。但是一旦建立连接,一个controller就和这个port建立了绑定。(一个controller只能绑定一个port,一个port可以和多个controller绑定)

一个controller一次只能关联一个host。

多个hosts可以通过同一个port连接不同的controllers。

NVMe-oF在多路径I/O和共享命名空间方面,与基于内存的传输模型相同。

探索服务(Discovery)

Discovery Service提供以下服务:

(1)为host发现NVM子系统及其命名空间;

(2)发现到一个NVM子系统的多条路径;

(3)发现静态配置的控制器;

(4)建立到Discovery controller的永久连接;(????)

(5)接收来自Discovery controller的异步事件通知。

Discovery Service是一个只能包含Discovery controller的NVM子系统,不支持其他类型的控制器。

Authentication

包括fabric secure channel和NVMe in-band authentication.

### 回答1: Z-Score归一化是一种数据预处理方法,通过计算数据的Z-Score值,将数值属性的分布转换为标准正态分布。具体实现过程如下: 1. 计算数据属性的平均值mean和标准差stddev。 2. 对于每个数据点,将其原始值减去mean,再除以stddev。 3. 获得的结果就是Z-Score归一化后的值。 应用到Iris数据集中的数值属性,就是将每一列的数据进行上述的操作。 ### 回答2: Z-Score归一化是一种常用的数值属性归一化方法,它可以将数据集中的数值属性转化为具有均值为0,标准差为1的分布。下面是将Iris数据集中的数值属性进行Z-Score归一化的步骤及原因: 第一步,计算每个数值属性的均值和标准差。对于Iris数据集,我们可以分别计算花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)、花瓣宽度(petal width)的均值和标准差。 第二步,对每个数值属性进行Z-Score归一化。对于每个属性,我们可以使用以下公式计算归一化后的值: 归一化值 = (原始值 - 属性均值) / 属性标准差 第三步,将归一化后的值替换原始值。通过进行Z-Score归一化,我们将原始数据集转化为了具有均值为0,标准差为1的分布,使得不同数值属性具有相同的尺度,方便后续的数据分析和建模操作。 通过Z-Score归一化可以消除数值属性之间的差异,使得数据集更具可比性。在处理Iris数据集时,使用Z-Score归一化可以确保不同数值属性在归一化后具有相同的权重,避免某些属性对模型的影响过大。此外,进行归一化还可以有效地去除异常值对整体数据分布的影响,提高模型的稳定性和性能。 ### 回答3: 在进行Z-Score归一化前,首先需要了解Iris数据集和Z-Score归一化的概念。 Iris数据集是一个经典的机器学习数据集,包含了150个样本,每个样本具有4个数值属性:花萼长度、花萼宽度、花瓣长度和花瓣宽度。该数据集用于分类问题。 Z-Score归一化是一种常用的数据预处理方法,它通过计算每个样本在属性上的均值和标准差,然后对每个样本的每个属性值减去均值,再除以标准差。这样可以使得每个属性的值符合标准正态分布,即均值为0,标准差为1。 对于Iris数据集中的数值属性进行Z-Score归一化的步骤如下: 1. 首先计算每个属性的均值和标准差。分别计算花萼长度、花萼宽度、花瓣长度和花瓣宽度的均值和标准差。 2. 对于每个样本的每个属性值,减去对应属性的均值,然后除以对应属性的标准差。这样可以得到归一化后的属性值。 3. 这样,通过Z-Score归一化,每个属性的值都变为符合标准正态分布的值。 需要注意的是,Z-Score归一化是对数值属性进行归一化的一种方法,不适用于类别属性或者其他非数值型属性。另外,在进行Z-Score归一化时,需要对每个属性进行独立的归一化,而不是对整个数据集进行统一的归一化。 通过Z-Score归一化,可以将不同属性的值转化为均值为0,标准差为1的标准正态分布。这不仅可以提高分类算法的性能,还可以减少不同属性之间的偏差,使其具有更好的可比性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值