96SEO 2026-02-19 21:54 8
。

他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范#xff08;相当于通讯协议中的应用层#xf…1.
ExpressNVMe或称非易失性内存主机控制器接口规范(Non-Volatile
express),是一个逻辑设备接口规范。
他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范相当于通讯协议中的应用层用于访问通过PCI-ExpressPCIe总线附加的非易失性内存介质虽然理论上不一定要求
总线协议。
此规范目的在于充分利用PCI-E通道的低延时以及并行性还有当代处理器、平台与应用的并行性在可控制的存储成本下极大的提升固态硬盘的读写性能降低由于AHCI接口带来的高延时彻底解放SATA时代固态硬盘的极致性能
1NVMe其实与AHCI一样都是逻辑设备接口标准是接口标准不是接口不是接口不是接口因为很重要所以说三次NVMe全称Non-Volatile
Express非易失性存储器标准是使用PCI-E通道的SSD一种规范NVMe的设计之初就有充分利用到PCI-E
2SSD的并行性可以充分被主机的硬件与软件充分利用相比与现在的AHCI标准NVMe标准可以带来多方面的性能提升。
说到NVME就不得不提PCIePCIe模拟高速接口可以理解为县道省道高速等道路其实就是数据的物理通路不同的接口速率上限不同这里可以用SATA作为类比。
NVME是传输层协议和命令集可以理解为小汽车跑车专业赛车等该协议提供了命令的执行流程寄存器配置和命令集配置格式等。
NVMe是一种协议是一组允许SSD使用PCIe总线的软硬件标准。
可以这么说NVMe是允许存储设备与服务器连接的语言而PCIe是实际的物理连接。
①NVMe是为SSD所生的。
NVMe出现之前SSD绝大多数走的是AHCI和SATA的协议后者其实是为传统HDD服务的。
与HDD相比SSD具有更低的延时和更高的性能AHCI已经不能跟上SSD性能发展的步伐了已经成为制约SSD性能的瓶颈.
SATA现在最高带宽就是600MB/snvme使得性能有数倍的提升
③NVMe可以把最大队列深度从32提升到64000SSD的IOPS能力也会得到大幅提升
Command占用64字节。
其中Command的前4个字节规定如下。
Command
Identifier作为识别这个Command的标志Opcode通常包含Command类型如读写identify等
Opcode在这两类的基础上进行划分。
下图是部分管理Command的Opcode定义
有两种SQ和CQ一种是Admin另外一种是I/O前者放Admin命令用以Host管理控制SSD后者放置I/O命令用以Host与SSD之间传输数据。
系统中只有一对Admin
SQ/CQ却可以很多多达6553564K减去一个SQ/CQHost端每个Core可以有一个或者多个SQ但只有一个CQ。
给每个Core分配一对SQ/CQ好理解为什么一个Core中还要多个SQ呢一是性能需求一个Core中有多线程可以做到一个线程独享一个SQ二是QoS需求什么是QoSQuality
Service服务质量。
实际系统中用多少个SQ取决于系统配置和性能需求可灵活设置I/O
SQ/CQ深度可以是2-65536(64K)。
队列深度也是可以配置的。
AHCI只有一个命令队列且队列深度是固定的32Linux的NVMe驱动采用一个Core独占一个Queue由Completion
Queue组成的方式。
这种设计避免了一个队列被多个Core竞争访问大家都各自使用自己的Queue互不干扰。
队列用来存放NVMe
Controller交流的基本单元应用的I/O请求也要转化成NVMe
Command。
每条命令大小是64字节每条命令完成状态是16字节每个SQ或者CQ有两个DB:
SQ位于Host内存中Host要发送命令时先把准备好的命令放在SQ中然后通知SSD来取CQ也是位于Host内存中一个命令执行完成成功或失败SSD总会往CQ中写入命令完成状态。
Host发送命令时不是直接往SSD中发送命令的而是把命令准备好放在自己的内存中那怎么通知SSD来获取命令执行呢Host就是通过写SSD端的DB寄存器来告知SSD的
1.BIO封装成的Command会顺序存入Submission
Index。
每存入一个CommandHost就会更新Queue对应的Doorbell寄存器中的Tail值
3.NVMe没有规定Command存入队列的执行顺序Controller可以一次取出多个Command进行批量处理所以一个队列中的Command执行顺序是不固定的可能导致先提交的请求后处理
Command和对应数据步骤3待处理完成后步骤4将结果存入Completion
Queue中取出然后把队列的head值加1并调用上层的Callback函数完成BIO处理
DB的同时也是在告知SSD你返回的命令完成状态信息我已经处理同时表示谢意。
这里有一个对Host不公平的地方Host对DB只能写还仅限于写SQ
1.SSD在取指的时候是偷偷进行的Host对此毫不知情。
Host发了取指通知后它并不清楚SSD什么时候去取命令取了多少命令。
怎么破
这是SSD往CQ中写入的命令完成状态信息16字节。
是的SSD往CQ中写入命令状态信息的同时还把SQ
DB的信息告知了Host这样Host对SQ中Head和Tail的信息都有了轻松玩转SQ
2.Controller写入Command后只有中断触发通知Host没有类似于Head/Tail机制告诉Host可以取哪些Completion
bit初始化为0SSD在往CQ中写入命令完成条目时会把”P”写成1。
记住一点CQ是在Host端的内存中Host可以检查CQ中的所有内容当然包括”P”了。
Host记住上次的Tail然后往下一个一个检查”P”就能得出新的Tail了。
就是这样。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback