当前位置:首页 > 体育 >

总线可以分为哪三个层次(总线按层次和位置分为哪三类)

来源:原点资讯(www.yd166.com)时间:2023-04-29 10:29:28作者:YD166手机阅读>>

在上面SGL例子中,共有3个SGL段,用到了4种SGL描述符。Host需要往SSD中读取13KB的数据,其中真正只需要11KB数据,这11KB的数据需要放到3个大小不同的内存中,分别是:3KB,4KB和4KB。

4.3.3 比较PRP与SGL

无论是PRP还是SGL,本质都是描述内存中的一段数据空间,这段数据空间在物理上可能连续的,也可能是不连续的。Host在命令中设置好PRP或者SGL,告诉Controller数据源在内存的什么位置,或者从闪存上读取的数据应该放到内存的什么位置。

SGL和PRP本质的区别在于,一段数据空间,对PRP来说,它只能映射到一个个物理页,而对SGL来说,它可以映射到任意大小的连续物理空间,具有更大的灵活性,也能够描述更大的数据空间。如下图:

总线可以分为哪三个层次,总线按层次和位置分为哪三类(17)

5. NVMe协议定义的命令5.0 命令执行过程

命令由host提交到内存中的SQ队列中,更新TDBxSQ后,NVMe控制器通过DMA的方式将SQ中的命令(怎么取,如何取,取多少,因设计而异)取到控制器缓冲区,执行命令;执行完成后,根据执行状态,组装完成命令,仍然通过DMA的方式将完成命令写入内存CQ的队列中;NVMe控制器通过MSI-X中断方式通知host已完成命令;最后,host处理CQ命令,更新控制器中HDBxCQ,标识着命令真正完成。

5.1 命令分类

命令分为Admin指令与NVM指令(I/O指令)。

Admin指令只能提交到Admin Controller中,主要负责管理NVMe控制器,也包含对NVM的一些控制指令。

NVM 指令只能提交到I/O Controller中,主要负责完成数据的传输。

在1.0e版本中,Admin指令有15条(3条与NVM相关),NVM指令有6条;在1.3d版本中,Admin指令有15条(3条与NVM相关),NVM指令有11条。

5.2 命令通用格式

命令均为64字节,具有相同的格式,某些字段根据命令的不同有不同的定义。

Dword0

CID、传输方式、聚合操作、操作码

1

NID(命名空间ID)

2

保留

3

保留

4、5

元数据指针(MPTR)

6-9

数据指针(DPTR)

10-15

根据命令指定

完成命令同样具有相同的格式,某些字段根据命令的不同有不同的定义。

Dword0

根据命令指定

1

保留

2

SQID、SQ头指针

3

状态域、P位、CID

5.3 Admin 指令

Admin指令与NVM指令根据放置的的队列组(Queue Pair)来区分,Admin指令在Admin CQ与SQ里,NVM指令在I/O CQ与SQ里。

通过Dword0中的8位操作码定义不同指令,注意并不是绝对的顺序增加(eg,没有03h)。每一种指令都对应有其完成命令,通过SQID(提交队列ID) CID(命令ID)唯一标识完成的命令。

操作码

指令

作用

00h

删除I/O SQ,

释放SQ空间

01h

创建 I/O SQ,

保存host分配给SQ的地址、队列优先权、队列大小

02h

获取日志,

返回所选日志页于缓冲区

04h

删除 I/O CQ,

释放CQ空间

05h

创建 I/O CQ,

保存host分配给CQ的地址、中断向量、队列大小等

06h

Identify

返回关于controller与namespace能力和状态的数据结构(2k字节)

08h

撤销,

用来撤销之前完成的指令,best-effort

09h

设置features

根据FID设置相应的features

0Ah

获取 features,

根据FID返回队列数量、仲裁信息等

0Ch

异步事件请求,

Controller向host报告运行信息(error or health)

10h

固件激活,

验证下载的镜像,提交到Firmware Slot(1-7)中

11h

固件镜像下载,

下载固件镜像

Note:

  • Admin队列是通过配置ASQ等寄存器创建的
  • 先创建CQ再创建SQ
5.4 NVM指令

NVMe控制器读写的最小单元是LB,层次图如下:

总线可以分为哪三个层次,总线按层次和位置分为哪三类(18)

NVM指令与Admin指令结构完全相同,也是通过Dword0中的8位操作码来定义不同指令。

操作码

指令

作用

00h

Flush

将数据(和元数据)提交到NVM中,所有命令都要执行

01h

Write

将数据(和元数据)写入NVM中

02h

Read

读NVM中的数据(和元数据)

04h

Wirte Uncorrectable

标记无效数据块

05h

Compare

比较从NVM端读出的数据和比较数据缓冲区的数据

09h

Dataset Management

标识一定范围数据的特点,eg,频繁读、频繁写(提升性能)

6 控制器结构

控制器从功能上可以分为三类,I/O、Admin和Discovery。

总线可以分为哪三个层次,总线按层次和位置分为哪三类(19)

在实现过程中,Admin 控制器只有一个,负责管理控制器及其他控制功能。控制器只是抽象的概念,应用于具体的实现中,可能是一个具体的模块,也可能多个模块。

控制器主要的作用是实现对NVMe定义命令的翻译,从而实现数据传输、状态控制等功能。

6.1 命令执行过程

1. host将命令(1条或者多条)写入提前分配好的SQ中;

2. 更新对应SQ的DB寄存器;

3. NVMe控制器取SQ中命令(通过HDB和TDB可以判断是否有未完成命令);

4. NVMe控制器执行命令;

5. NVMe 控制器在命令完成后,将完成命令(可能执行成功,也可能失败,但都会返回完成命令)写入host内存SQ对应的CQ中;

6. NVMe 控制器根据实现的中断方式,提醒host命令已完成;

7. host响应中断,处理完成命令;

8. host 更新对应CQ的DB寄存器。

总线可以分为哪三个层次,总线按层次和位置分为哪三类(20)

栏目热文

总线分为哪三大类(总线有哪五种)

总线分为哪三大类(总线有哪五种)

第一章 计算机系统概论电子数字计算机的分类(P1)通用计算机(超级计算机、大型机、服务器、工作站、微型机和单片机)和专用...

2023-04-29 10:29:39查看全文 >>

总线通信由哪三部分组成(通讯总线分为哪三类)

总线通信由哪三部分组成(通讯总线分为哪三类)

Hi,大家好,我是小光~距离通信考试只剩最后几天时间了,你的《综合能力》复习的怎么样?小光特地整理了《通信工程师考前冲刺...

2023-04-29 10:02:53查看全文 >>

总线有哪几个部分(总线包括哪三种)

总线有哪几个部分(总线包括哪三种)

计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识...

2023-04-29 10:29:33查看全文 >>

总线部分有哪五个部分(总线结构包括哪些)

总线部分有哪五个部分(总线结构包括哪些)

计算机系统的五大部件之间连接的方式有两种,一种是各部件之间使用单独的连线,称为分散连接。一种是将各部件连到一组公共信息传...

2023-04-29 10:39:47查看全文 >>

战争论谁翻译的最好(战争论知名翻译版本)

战争论谁翻译的最好(战争论知名翻译版本)

在风云激荡的20世纪20年代,上海共产党早期组织在上海法租界霞飞路(今淮海中路)新渔阳里6号的石库门房子里创办了中共历史...

2023-04-29 10:12:51查看全文 >>

总线结构可以划分什么(总线有哪几部分组成)

总线结构可以划分什么(总线有哪几部分组成)

总线在哪里我们之前已经很多次提到“总线”这个词,那么总线是什么?它又在哪里呢?图1所示为主板上CPU与北桥之间的总线。总...

2023-04-29 10:28:46查看全文 >>

滑雪各种技巧(滑雪技巧初学者)

滑雪各种技巧(滑雪技巧初学者)

滑雪运动对于很多人来说,都极具休闲性和运动性。快放假了,滑雪场上又活跃着一大批滑雪者。作为从来没有滑过雪或者对滑雪运动并...

2023-04-29 10:24:55查看全文 >>

滑雪技巧的难度(滑雪技巧零基础)

滑雪技巧的难度(滑雪技巧零基础)

15米,大约是普通居民住宅五层楼的高度,也是一名自由式滑雪空中技巧运动员腾空时的垂直落差距离。而在这个落差时间内,运动员...

2023-04-29 10:39:27查看全文 >>

滑雪10大技巧(滑雪技巧与动作要领)

滑雪10大技巧(滑雪技巧与动作要领)

2018新雪季已经开始啦!各大滑雪场也已经改良完毕!没看到的小伙伴复习一下昨天的内容↓↓↓现在越来越多的人愿意尝试滑雪这...

2023-04-29 10:05:47查看全文 >>

滑雪技巧教程(滑雪入门技巧图解)

滑雪技巧教程(滑雪入门技巧图解)

滑雪有毒越滑越上瘾所以会滑雪的人当然爱滑雪怎奈这世上的人和人总是有差别的萌新们羡慕地看着滑雪大佬从中高级雪道上旋转跳跃俯...

2023-04-29 10:22:26查看全文 >>

文档排行