基于PCIe的NVMe学习

一:基本概念

1.UltraScale:是Xilinx ZYNQ 系列产品

2.spec:大家现在别纠结于具体的命令,了解一下就好。老板交代干活的时候,再找spec一个一个看吧————猜测估计是命令表之类的。

3.TLP报文部分:

二:pcie相关知识

1.但PCIe是可以最多32条道的(x32)

2.全双工模式

3.pcie拓扑结构:所有pcie的设备均挂在pcie总线上,谁要使用需要得到总线相关的使用权。

4.PCIe Endpoint,就是PCIe终端设备,比如PCIe SSD,PCIe网卡

5.Host与PCIe设备之间,或者PCIe设备与设备之间,数据传输都是以Packet(Transaction Layer Packet)形式进行的.

6.事务层根据比如软件层的需求,产生四种不同的TLP请求分别为:

  1. Memory 

  2. IO

  3. Configuration

  4. Message

7.RC是树的根,或者主干,它为CPU代言——所有的配置空间(Configuration)的访问,都是Host发起的,确切的说是RC发起的

8.一个TLP最大载重是4KB,数据长度大于4KB的话,就需要分几个TLP传输。

三:ssd相关知识

1.现在很多SSD都开始使用PCIe接口——为了追求速度更快,上限速度就是pcie的接口速度

2.SSD——半双工

四:NVMe相关知识

1.NVMe是一种Host与SSD之间通讯的协议,它在协议栈中隶属高层——在三国的话,就是诸葛亮的角色

2.军师设计好计谋,就交由手下五虎大将去执行——虎将PCIe去完成任何命令。

3.虽然NVMe的命令可能可以由别的接口协议完成,但NVMe与PCIe合作形成的战斗力无疑是最强的。

4.AHCI和SATA的协议犹如刘备去指挥虎将PCIe——垃圾。还需诸葛(NVMe)来指挥。

5.所有SATA接口的SSD,你去看性能参数,会发现都不会超过600MB/s——垃圾。

6.NVMe有两种命令:一种叫Admin Command,用以Host管理和控制SSD。二种叫I/O Command,用以Host和SSD之间数据的传输。

7:命令有了,那么,Host又是怎么把这些命令发送给SSD执行呢——?

8:NVMe有三宝如下图——DB ,SQ,CQ

9:如上图,RC(root complex)就是CPU的代言人,小蜜。

10.

说,NVMe处理命令需要几步?答:八步:

第一步:Host写命令到SQ;

第二步:Host写DB,通知SSD取指;

第三步:SSD收到通知,于是从SQ中取指;

第四步:SSD执行指令;

第五步:指令执行完成,SSD往CQ中写指令执行结果;

第六步:然后SSD发短信通知Host指令完成;

第七步:收到短信,Host处理CQ,查看指令完成状态;

第八步:Host处理完CQ中的指令执行结果,通过DB回复SSD:指令执行结果已处理,辛苦您了!

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

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

相关文章

关于Yii2基础controller和model的封装

如题,在实战项目中我们我们经常会要使用相同的逻辑,比如post/get获取参数,接口返回、参数校验等,因此可以将其封装起来调用。 这里分为根目录下的控制器controllers和处理数据库的models两个文件,其他业务逻辑放在modu…

MapReduce\Shuffle

MapReduce\Shuffle MapReduce 是一种编程模型,用于处理和生成大数据集。这个模型由两个主要步骤组成:Map步骤和Reduce步骤。 Map步骤:在这个步骤中,输入数据集被分割成多个独立的数据块,然后每个数据块被分配给一个M…

云桌面和桌面云是什么?中国桌面云市场谁在领跑?

当我们谈论云桌面和桌面云时,确实很容易产生混淆。它们都涉及到云计算技术在个人计算环境中的应用,但具体的应用场景和侧重点有所不同。 云桌面:虚拟化的桌面环境 云桌面是一种基于云计算的虚拟化技术,它允许用户通过互联网访问一…

Visual Studio开发环境的搭建

1.引言 Visual Studio是微软公司开发的一款强大的集成开发环境(IDE),它可以帮助开发人员进行各种编程任务,包括设计、开发、测试、调试和部署应用程序。典型功能包括: 代码编辑器。提供高效、智能的代码编辑器&#x…

Docker的私有仓库Harbor

Harbor概述 1.Harbor定义 私有,自定义用户的形式登陆仓库,拉取或者上传镜像。(内部管理的用户) Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。 2.Docker Harbor…

【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码)

【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码) 基本概念移动平均(Moving Average, MA):指数平滑法(Exponential Smoothing):季节性调整(Seasonal Adju…

SpringCloud系列(六)| 聊聊负载均衡

一、负载均衡概述 上一篇文章中,我们在集成OpenFeign的过程中提示我们需要加入了一个依赖就是: spring-cloud-starter-loadbalancer。 顾名思义,这个包的作用就是用来做负载均衡的。 简单解释一下什么是负载均衡,就是当我们的服…

Java8新特性:Lambda表达式

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

图像识别的精度与效率优化研究

基于深度学习的图像识别算法研究 摘要:随着深度学习技术的快速发展,基于深度学习的图像识别算法已经成为计算机视觉领域的研究热点。本文将介绍基于深度学习的图像识别算法的基本原理、研究进展和应用领域,并探讨其未来的发展趋势。 一、引言…

AI 搜索将如何影响 SEO

用户可以与之交互的 AI 搜索结果是肯定的。搜索营销人员要么对此感到生气,什么都不做,要么他们可以调查即将发生的事情并做好准备。 Google SGE 和 Bing 提供了相当相似的 AI 方法,是传统搜索和聊天机器人的混合体。 但这并不一定是当今 AI…

HarmonyOS--基础组件Text

Text组件 可以包含Span子组件。 接口 Text(content? : string | Resource) string: Text(我是ttttt) Resource: Text($r(app.string.aaaaaa)) 先找限定词目录,找不到内容 找base目录 属性 除支持通用属性外,还支持以下属性: 名称 参数…

全国合作商标服大赛决赛完整规则流程

本文是全国合作商标服大赛决赛完整规则流程,有需要的朋友可以参考下。 一、抢答比拼 1、政策管理考核题 系统评分。抢答题共15题/条线:单选10题,多选5题,基础分100分 单选答对10分/答错-5分,多选答对20分/答错-10分…

Mozilla 推出 Solo:借助 AI 帮助零编程用户创建网站

Mozilla 近日推出名为 Solo 的全新项目,面向没有任何编程经验的用户,通过融入 AI 能力,所创建的网站可以媲美专业开发者的开发效果。 Mozilla 表示该项目主要针对中小型企业、个体户,在官方演示中,用户只需要输入文本、…

SAP ABAP 使用cl_md_bp_maintain=>maintain更新BP税号CN0的数据,更新结果都会变成CN5类型问题处理

SAP ABAP 使用cl_md_bp_maintain>maintain更新BP税号CN0的数据,更新结果都会变成CN5类型,CN1类型一切正常。 1、BP税号 2、跟踪方法中代码 查看底层逻辑,发现CN0都被强制替换成CN5了,BP GUI界面还能正常使用CN0. 查询NOTES&a…

QT -CloudViewer工具

QT -CloudViewer工具 一、演示效果二、关键程序三、程序下载 一、演示效果 二、关键程序 void CloudViewer::doOpen(const QStringList& filePathList) {// Open point cloud file one by onefor (int i 0; i ! filePathList.size(); i) {timeStart(); // time startmycl…

快速排序(为什么不叫二分排序呢)

干完工作的时候突然想起来快速排序我一直没学,就去看了一下别人写的博客,用的就是二分查找的思想,而且感觉挺像插入排序的。 插入排序是寻找最大,小值,而快排是确定一个数的左右区域。 package com.qx;import java.u…

个人封装的 Controller 的返回值封装类

虽然结构都是 code、msg、data 三个参数。 但友好且可控的封装&#xff0c;能更好的约束后续研发人员的扩展。 package com.example.demo.utils;import lombok.Data;import java.io.Serializable;/*** author Rain* date 2023/11/30*/Data public class Result<T> impl…

【INTEL(ALTERA)】 quartus F-Tile HDMI 英特尔 FPGA IP设计示例无法正常工作怎么办

项目场景&#xff1a; quartus F-Tile HDMI 英特尔 FPGA IP设计示例无法正常工作。 原因分析&#xff1a; 由于英特尔 Quartus Prime Pro Edition 软件版本 22.4 中存在一个问题&#xff0c;对 SystemPLL IP 的更改导致 rx_tmds_clk 无法切换/保持在较低水平。 如果此时钟无…

Java 创建事件(Event)、事件监听器(EventListener)、事件发布(publishEvent)详解

在Java中&#xff0c;创建事件&#xff08;Event&#xff09;、事件监听器&#xff08;EventListener&#xff09;和事件发布&#xff08;publishEvent&#xff09;的工作原理涉及到观察者设计模式。这种设计模式用于实现对象之间的松耦合通信。事件&#xff08;Event&#xff…

Layui继续学习

1、简单评论区代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>社区评论区</title> <link rel"stylesheet" href"https://cdn.staticfile.org/layui/2.6.8/css/…