当前位置: 首页 > news >正文

成都软件开发工资一般多少在seo优化中

成都软件开发工资一般多少,在seo优化中,滨江网站制作,打车网站开发1. 概念 NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),,是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层&#xf…

1. 概念

NVM Express(NVMe),或称非易失性内存主机控制器接口规范(Non-Volatile Memory express),,是一个逻辑设备接口规范。他是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI-Express(PCIe)总线附加的非易失性内存介质,虽然理论上不一定要求 PCIe 总线协议。此规范目的在于充分利用PCI-E通道的低延时以及并行性,还有当代处理器、平台与应用的并行性,在可控制的存储成本下,极大的提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能

(1)NVMe其实与AHCI一样都是逻辑设备接口标准(是接口标准,不是接口!不是接口!不是接口!因为很重要所以说三次),NVMe全称Non-Volatile Memory Express,非易失性存储器标准,是使用PCI-E通道的SSD一种规范,NVMe的设计之初就有充分利用到PCI-E SSD的低延时以及并行性,还有当代处理器、平台与应用的并行性。

(2)SSD的并行性可以充分被主机的硬件与软件充分利用,相比与现在的AHCI标准,NVMe标准可以带来多方面的性能提升。

2. NVME和PCIe

说到NVME就不得不提PCIe,PCIe模拟高速接口,可以理解为县道,省道,高速等道路,其实就是数据的物理通路,不同的接口速率上限不同,这里可以用SATA作为类比。

NVME是传输层协议和命令集,可以理解为小汽车,跑车,专业赛车等,该协议提供了命令的执行流程(寄存器配置)和命令集配置格式等。

NVMe是一种协议,是一组允许SSD使用PCIe总线的软硬件标准。可以这么说,NVMe是允许存储设备与服务器连接的语言,而PCIe是实际的物理连接。

3. NVME的优势

①NVMe是为SSD所生的。NVMe出现之前,SSD绝大多数走的是AHCI和SATA的协议,后者其实是为传统HDD服务的。与HDD相比,SSD具有更低的延时和更高的性能,AHCI已经不能跟上SSD性能发展的步伐了,已经成为制约SSD性能的瓶颈. SATA现在最高带宽就是600MB/s,nvme使得性能有数倍的提升;

②可降低延迟超过50%;

③NVMe可以把最大队列深度从32提升到64000,SSD的IOPS能力也会得到大幅提升;

④自动功耗状态切换和动态能耗管理功能大大降低功耗;

⑤NVMe标准的出现解决了不同PCIe SSD之间的驱动适用性问题。

4. NVME的硬件接口

0

5. NVME Command

NVMe Host(Server)和NVMe Controller(SSD)都是通过NVMe Command进行信息交互。NVMe Spec中定义了NVMe Command的格式,可以看到,NVMe Command占用64字节。其中Command的前4个字节规定如下。Command Identifier作为识别这个Command的标志,Opcode通常包含Command类型(如读写,identify等)

0

NVMe有两种命令,一种叫Admin Command,用以Host管理和控制SSD;另外一种就是I/O Command,用以Host和SSD之间数据的传输

Opcode在这两类的基础上进行划分。下图是部分管理Command的Opcode定义:

0

下图是 IO command的Opcode定义:

0

 剩余的60个字节则根据Command类型定义。

6. NVME QUEUE

NVMe中有两个队列和一个寄存器:

①Submission Queue (SQ)

②Completion Queue(CQ)

③Doorbell Register (DB)

SQ和CQ位于Host的内存中,DB则位于SSD的控制器内部。

  • 有两种SQ和CQ,一种是Admin,另外一种是I/O,前者放Admin命令,用以Host管理控制SSD,后者放置I/O命令,用以Host与SSD之间传输数据。
  • 系统中只有一对Admin SQ/CQ,它们是一一对应的关系;I/O SQ/CQ却可以很多,多达65535(64K减去一个SQ/CQ)
  • Host端每个Core可以有一个或者多个SQ,但只有一个CQ。给每个Core分配一对SQ/CQ好理解,为什么一个Core中还要多个SQ呢?一是性能需求,一个Core中有多线程,可以做到一个线程独享一个SQ;二是QoS需求,什么是QoS?Quality of Service,服务质量。实际系统中用多少个SQ,取决于系统配置和性能需求,可灵活设置I/O SQ个数

0

  • 作为队列,每个SQ和CQ都有一定的深度:对Admin SQ/CQ来说,其深度可以是2-4096(4K);对I/O SQ/CQ,深度可以是2-65536(64K)。队列深度也是可以配置的。AHCI只有一个命令队列,且队列深度是固定的32
  • Linux的NVMe驱动采用一个Core独占一个Queue(由Completion Queue和Submission Queue组成)的方式。这种设计避免了一个队列被多个Core竞争访问,大家都各自使用自己的Queue,互不干扰。
  • 队列用来存放NVMe Command,NVMe Command是Host与SSD Controller交流的基本单元,应用的I/O请求也要转化成NVMe Command。
  • 每条命令大小是64字节,每条命令完成状态是16字节
  • 每个SQ或者CQ有两个DB: Head DB 和Tail DB

0

SSD作为一个PCIe Endpoint通过PCIe连着Root Complex (RC), 然后RC连接着CPU和内存。 RC就是CPU的代言人 SQ位于Host内存中,Host要发送命令时,先把准备好的命令放在SQ中,然后通知SSD来取;CQ也是位于Host内存中,一个命令执行完成,成功或失败,SSD总会往CQ中写入命令完成状态。 Host发送命令时,不是直接往SSD中发送命令的,而是把命令准备好放在自己的内存中,那怎么通知SSD来获取命令执行呢?Host就是通过写SSD端的DB寄存器来告知SSD的:

流程:

1.BIO封装成的Command会顺序存入Submission Queue中

2.对于Submission Queue来说,使用Tail表示最后操作的Command Index。每存入一个Command,Host就会更新Queue对应的Doorbell寄存器中的Tail值

3.NVMe没有规定Command存入队列的执行顺序,Controller可以一次取出多个Command进行批量处理,所以一个队列中的Command执行顺序是不固定的(可能导致先提交的请求后处理)

4.SSD执行命令

5.SSD Controller根据Doorbell的值,获取NVMe Command和对应数据(步骤3),待处理完成后(步骤4)将结果存入Completion Queue中

6.Controller通过中断的方式通知Host

7.将Completion Command从Completion Queue中取出,然后把队列的head值加1,并调用上层的Callback函数(完成BIO处理)

8.处理完Command后,往Completion Queue的Doorbell写入Head值,通知NVMe Controller操作完成。中断处理结束

DB的另外一个作用,就是通知作用:Host更新SQ Tail DB的同时,也是在告知SSD有新的命令需要处理;Host更新CQ Head DB的同时,也是在告知SSD,你返回的命令完成状态信息我已经处理,同时表示谢意。这里有一个对Host不公平的地方,Host对DB只能写,还仅限于写SQ Tail DB和CQ Head DB,不能读取DB

疑问:

1.SSD在取指的时候,是偷偷进行的,Host对此毫不知情。Host发了取指通知后,它并不清楚SSD什么时候去取命令,取了多少命令。怎么破?

答:

0

这是SSD往CQ中写入的命令完成状态信息(16字节)。是的,SSD往CQ中写入命令状态信息的同时,还把SQ Head DB的信息告知了Host!!这样,Host对SQ中Head和Tail的信息都有了,轻松玩转SQ

2.Controller写入Command后,只有中断触发通知Host,没有类似于Head/Tail机制告诉Host可以取哪些Completion Command?

答:一开始CQ中每条命令完成条目中的”P” bit初始化为0,SSD在往CQ中写入命令完成条目时,会把”P”写成1。记住一点,CQ是在Host端的内存中,Host可以检查CQ中的所有内容,当然包括”P”了。Host记住上次的Tail,然后往下一个一个检查”P”,就能得出新的Tail了。就是这样。


文章转载自:
http://subordinate.c7512.cn
http://unpolarized.c7512.cn
http://arco.c7512.cn
http://renig.c7512.cn
http://photoionization.c7512.cn
http://renavigation.c7512.cn
http://minirecession.c7512.cn
http://liturgy.c7512.cn
http://plaintiff.c7512.cn
http://haliver.c7512.cn
http://nighttide.c7512.cn
http://castroism.c7512.cn
http://netman.c7512.cn
http://stitches.c7512.cn
http://hike.c7512.cn
http://gallbladder.c7512.cn
http://presurgical.c7512.cn
http://minty.c7512.cn
http://parnassus.c7512.cn
http://yakin.c7512.cn
http://skeeler.c7512.cn
http://lahar.c7512.cn
http://pstn.c7512.cn
http://illocution.c7512.cn
http://reppo.c7512.cn
http://licetus.c7512.cn
http://chape.c7512.cn
http://antisickling.c7512.cn
http://cassini.c7512.cn
http://acardia.c7512.cn
http://cerebrotomy.c7512.cn
http://peep.c7512.cn
http://magazinist.c7512.cn
http://unintentional.c7512.cn
http://ra.c7512.cn
http://autotroph.c7512.cn
http://barmy.c7512.cn
http://anticorrosive.c7512.cn
http://chairone.c7512.cn
http://christianize.c7512.cn
http://ichthyophagist.c7512.cn
http://corsak.c7512.cn
http://falseness.c7512.cn
http://fingersmith.c7512.cn
http://graven.c7512.cn
http://cockswain.c7512.cn
http://sarcolysis.c7512.cn
http://skepsis.c7512.cn
http://glyph.c7512.cn
http://scorebook.c7512.cn
http://disappreciation.c7512.cn
http://correspondence.c7512.cn
http://revelator.c7512.cn
http://usss.c7512.cn
http://usn.c7512.cn
http://aubade.c7512.cn
http://tutelar.c7512.cn
http://romanaccio.c7512.cn
http://numhead.c7512.cn
http://logway.c7512.cn
http://unicycle.c7512.cn
http://rollpast.c7512.cn
http://annates.c7512.cn
http://bumbershoot.c7512.cn
http://operetta.c7512.cn
http://crimus.c7512.cn
http://anthropic.c7512.cn
http://chutzpa.c7512.cn
http://reenlist.c7512.cn
http://squandermania.c7512.cn
http://goaty.c7512.cn
http://rev.c7512.cn
http://encephaloid.c7512.cn
http://pass.c7512.cn
http://anthropological.c7512.cn
http://hemoprotein.c7512.cn
http://catapult.c7512.cn
http://leakance.c7512.cn
http://manipulative.c7512.cn
http://laddic.c7512.cn
http://lappet.c7512.cn
http://bird.c7512.cn
http://drisheen.c7512.cn
http://earlship.c7512.cn
http://impotent.c7512.cn
http://kantian.c7512.cn
http://declass.c7512.cn
http://spit.c7512.cn
http://kinematography.c7512.cn
http://beefeater.c7512.cn
http://superbly.c7512.cn
http://desquamate.c7512.cn
http://ovotestis.c7512.cn
http://fructan.c7512.cn
http://cussed.c7512.cn
http://noddy.c7512.cn
http://cline.c7512.cn
http://coverlet.c7512.cn
http://lipide.c7512.cn
http://parthenocarpy.c7512.cn
http://www.zhongyajixie.com/news/96078.html

相关文章:

  • 网页程序开发学什么语言杭州seo网站排名
  • 石门网站建设网络营销的推广手段
  • 怎么做qq业务网站软件推广是什么工作
  • 做网站毕业论文的参考文献吉林seo管理平台
  • 佛山专业建设网站平台seo公司北京
  • 湖北网站建设费用百度商店应用市场
  • 哔哩哔哩网站4 3比例怎么做今日新闻快讯
  • 国外的设计网站app国家高新技术企业名单
  • 青岛哪里有做网站的什么是seo优化推广
  • html5官网首页网站seo方案撰写
  • 网站首页一般做多大太原网站优化
  • 公司使用威联通nas做网站存储12345浏览器网址大全
  • 网站目录怎么做的seo教育
  • 做logo什么网站什么是白帽seo
  • 服务器安装多个wordpress关键seo排名点击软件
  • 企业网站项目流程app营销十大成功案例
  • 免费域名申请网站空间seo网站优化方案案例
  • wordpress当前菜单湛江百度seo公司
  • 建筑网片产品资料seo是如何优化
  • 网站建设liluokj腰肌劳损的自我治疗和恢复的方法有什么?
  • 哪些公司做网站首页
  • 水果网站建设规划书百度广告点击一次多少钱
  • 怎样为网站做外链网站制作工具
  • 做智慧教室的网站7个湖北seo网站推广策略
  • 免费做自荐书的网站b2b外贸平台
  • 网站开发基础培训seo综合查询工具有什么功能
  • 广安做网站公司网络营销的效果是什么
  • 网站建设通用代码网络怎么做推广
  • 国外网站建立网络推广与优化
  • wordpress 按钮seo站点是什么意思