当前位置:网站首页>[nvme2.0b 8] nvme queue arbitration mechanism
[nvme2.0b 8] nvme queue arbitration mechanism
2022-06-22 03:19:00 【BGONE】
NVMe Queue arbitration mechanism
3.4 command Submission and Completion Mechanism
This section describes the mechanism for issuing and completing commands . It also describes how the host software builds commands and completes command processing .
Only in the controller state attribute (CSTS.RDY) The controller indicated in is ready and the appropriate... Has been created I/O Submission Queue(s) and I/O Completion Queue(s) after , The host should submit the command .
3.4.1 Command sequencing requirements
Do not belong to fused Operational command ( Please refer to the first 3.4.2) section ) And in accordance with atomic Operation requirements ( Please refer to the first 3.4.3 section ) Treat as a separate entry , Without reference to the same I/O Submission Queue Or submit to another I/O Submission Queues The order of . for example , The controller is not responsible for checking NVM Command Set Read or Write Ordered LBA To ensure any sort between commands . If LBA x submitted Read, And also for LBA x submitted Write, The completion order of these commands cannot be guaranteed (Read May be done first or Write May be completed first ). If there is a sort requirement between these commands , Then host software or related applications are required to enforce a higher order than the controller level .
3.4.2Fused Operations
Fused This is done by combining two simpler commands “ The fusion ” Implement more complex commands together . this feature It's optional ;Figure 275 Medium Identify Controller data structure Medium FUSES The field indicates the feature Support for . stay fused In operation , There are the following requirements :
- The commands should be executed sequentially as an atomic unit . The controller behaves as if nothing else was done between the two commands ;
- The operation ends when an error is encountered in any command . If the first command in the sequence fails , The second command in the sequence will be aborted . If the second command in the sequence fails , The completion state of the first command is sequence specific , And where applicable I/O Command Set canonical Fused Operation Section defines ;
- The command should be in the same Submission Queue Insert adjacent to each other in . If the first command is in Submission Queue In the last slot of , Then the second command should be Submission Queue The first slot in the , As part of the surround . In the memory based transmission queue model ,Submission Queue Tail The doorbell pointer update shall indicate two commands as part of a doorbell update . In the message based transmission queue model , Command encapsulation shall be submitted in sequence .
- To stop fused operation , The host should submit one for each command Abort command ;
- The controller issues a completion queue entry for each command .
Whether the command is fused Part of the operation is in Figure 86 The order shown Dword 0 Of Fused Operation(FUSE) Field indicates .FUSE The field also indicates that each command is fused The first command in the operation is the second command . If FUSE Field is set to not 0 Value and the controller does not support the requested fused operation , The controller shall use Invalid Field in Command Status code abort command .
For applicability and other details ( If there is ), See each I/O Command Set standard .
3.4.3Atomic Operations
The definition of atomic operations is command set specific . For applicability and other details ( If there is ), See each I/O Command Set standard .
3.4.4Command Arbitration
After submitting the command to the controller ( Please refer to the first 1.5.13 section ), The controller transmits the submitted command to the controller , To use vendor specific algorithms for subsequent processing .
When the command is accessing or modifying the controller and / Or namespace state while processing command ( for example , Accessing or modifying Feature Set or accessing or modifying logical blocks ).
When the completion queue entry of the command has been published to the corresponding completion queue , Command complete . After completion , All controller states and... Made by this command / Or namespace state changes are globally visible to all subsequently submitted commands .
The candidate command is a submitted command , The command has been transmitted to the controller that the controller considers to be ready for processing . Controller from each Submission Queue Select the command to process from the commit command pool of . form fused The operating commands shall be processed by the controller in sequence . The controller can select candidate commands to be processed in any order . The order in which commands are selected for processing does not mean the order in which commands are completed .
Arbitration is a method used to determine that the controller starts processing the submission queue of the next candidate command . Once you have chosen... Using arbitration Submission Queue, The arbitration burst setting will determine that the controller can start from this before arbitrating again Submission Queue Maximum number of commands to start processing . One fused The operation can be considered as one or two commands of the controller .
All controllers shall support polling command arbitration mechanism . The controller may optionally implement an emergency priority level and / Or a weighted cycle of supplier specific arbitration mechanisms .Controller Capabilities attribute (CC.AMS) Medium Arbitration Mechanism Supported Field indicates the optional arbitration mechanism supported by the controller .
In order to make effective use of nonvolatile memory , Parallel execution comes from Submission Queue Multiple commands of are usually advantageous . For those using weighted polling or polling arbitration with an emergency priority level Submission Queues, The host software can be configured Arbitration Burst Set up .Arbitration Burst The setting indicates that the controller can be selected from a specific Submission Queue Maximum number of commands to start at one time . Allow for delay requirements , It is recommended that the host software will Arbitration Burst Set the configuration as close as possible to the recommended value of the controller ( stay Figure 275 in Identify Controller data structure Of Recommended Arbitration Burst Field ). Please refer to the first 5.27.1.1 section .
3.4.4.1Round Robin Arbitration( Polling arbitration )
If the polling arbitration mechanism is selected , The controller shall be installed on all Submission Queues( Include Admin Submission Queue) Execute polling command arbitration between . under these circumstances , all Admin Submission Queue Are given equal priority . The controller can be controlled according to Arbitration Burst Set each... From each round Submission Queue Select multiple candidate commands for processing .

3.4.4.2Weighted Round Robin with Urgent Priority Class Arbitration( Weighted polling arbitration with emergency priority )
In this arbitration mechanism , There are three strict priorities and three weighted cyclic priorities . If Submission Queue A The strict priority of is higher than Submission Queue B, be Submission Queue A All candidate commands in should be in Submission Queue B Start processing before the candidate command in starts processing .
The highest strict priority is Admin class , It includes submitting to Admin Submission Queue Any order of . This class is submitted to any other Submission Queue Compared to , With the highest strict priority .
The next highest strict priority is Urgent class . Any assigned to Urgent Priority I/O Submission Queue When the command is submitted to Admin Submission Queue after , And get the service before any command is submitted to the weighted polling priority . The host software is putting any Submission Queue Assigned to Urgent Be careful when prioritizing , Because there is a problem in the weighted polling priority I/O Submission Queues“ Starve to death ” The possibility of , Because in Urgent He Fei Urgent I/O Submission Queues There is no fair agreement between them . The lowest strict priority is weighted polling (Weighted Round Robin) class . This class consists of three weighted polling priorities (High、Medium and Low) form , They use weighted polling arbitration to share the remaining bandwidth . The host software passes Set Features Command control high 、 Weight of medium and low service categories . The polling method is used in multiple... Assigned to the same weighted polling level Submission Queues Arbitration in . Each round can be from each Submission Queue The number of candidate commands to start processing is Arbitration Burst Set or remaining weighted polling points , Whichever is less .

3.4.4.3 Supplier specific arbitration
Suppliers can choose to implement a supplier specific arbitration mechanism . Their mechanisms are outside the scope of this specification .
边栏推荐
- [6. high precision multiplication]
- Will it take three months or half a year to buy financial products in 2022?
- [percona toolkit] series of Pt table checksum and Pt table sync data verification and repair artifacts
- What is an SSL certificate and what are the benefits of having an SSL certificate?
- BOM attribute, method and event application cases
- C2-qt serial port debugging assistant 2021.10.21
- Force buckle 160 Intersecting linked list
- [summary of leetcode weekly competition] summary of the 298th weekly competition of leetcode (6.19)
- 【NVMe2.0b 5】NVM Subsystem
- Classic case of JS operation node (three-level linkage)
猜你喜欢
![[9. submatrix sum]](/img/97/32f11e2f26a1f313c808fcc1cd27b3.png)
[9. submatrix sum]

VS正在加载符号导致程序启动变慢

Right and left vertical time axis with serial number
![[crawler notes 1] environment construction and necessary tools selenium](/img/58/e11951ce1b240fb4ac1398cb1a8b50.png)
[crawler notes 1] environment construction and necessary tools selenium
![[percona toolkit] series of Pt table checksum and Pt table sync data verification and repair artifacts](/img/1f/89cc2ec9ae6c967791994acac55c04.png)
[percona toolkit] series of Pt table checksum and Pt table sync data verification and repair artifacts

【NVMe2.0b 5】NVM Subsystem

Markdown is proficient in Elementary Grammar and is compatible with marktext
![[microservices | Nacos] quickly realize the configuration center function of Nacos, and complete configuration update and version iteration](/img/20/4c4a062ac7a4d265cde236ee677ac1.png)
[microservices | Nacos] quickly realize the configuration center function of Nacos, and complete configuration update and version iteration

libuv异步任务逻辑和uv_queue_work()

JS special effects in the construction of animated web pages
随机推荐
Force buckle 461 Hamming distance
Redis6.0 new features (Part 2)
Implementation of epoll+threadpool high concurrency network IO model
Use the serialize common command
【NVMe2.0b 6】NVMe 队列模型
记一则服务器内存泄漏解决过程
360edr planing
[microservices | Nacos] quickly realize the configuration center function of Nacos, and complete configuration update and version iteration
Redis configuration and optimization
Sword finger offer 37 Serialized binary tree
Wxml template syntax, wxss template style, global configuration, page configuration, and network data request
libuv异步任务逻辑和uv_queue_work()
Force buckle 142 Circular linked list II
【爬虫笔记1】环境搭建和必要工具Selenium
【leetcode周赛总结】LeetCode第298场周赛总结(6.19)
Starting WDA with tidevice
Typora + picGo 配置图床实现图片自动上传
为什么在高并发下很容易就被setInterval给坑了
uv_ Run process
Typora + picgo configure the drawing bed to realize automatic uploading of pictures