当前位置:网站首页>【NVMe2.0b 11】NVMe Reset

【NVMe2.0b 11】NVMe Reset

2022-06-22 03:19:00 BGONE

3.7Resets

3.7.1NVM Subsystem Reset

3.7.1.1Single Domain NVM Subsystems

NVM Subsystem Reset The scope of depends on NVM Whether the subsystem supports multiple domains . Where multiple domains are not supported NVM In the subsystem ,NVM Subsystem Reset The scope of is the whole NVM Subsystem .

NVM Subsystem Reset Start... Under the following conditions :

  • Main power supply NVM Subsystem ;
  • take 4E564D65h(“NVMe”) Write the value of NSSR.NSSRC Field ;
  • Use NVMe Management Interface Method requests defined in the specification ; or
  • Supplier specific events occur .

When NVM Subsystem Reset occurs , Whole NVM The subsystem will be reset . This is included in the composition NVM Start on all controllers of the subsystem Controller Level Reset, Disable and constitute NVM Associated with all controllers of the subsystem Persistent Memory Region, And where applicable NVMe Any transport specific operation defined in the transport specification .

NVM Occurs when the subsystem is powered on NVM Subsystem Reset from NVM Subsystem Reset After CSTS.NSSRO Initial value report for field . The host software can use this field to determine whether the sudden loss of communication with the controller is due to NVM Subsystem Reset Or some other situation .

The host software writes NSSR.NSSRC Field to start NVM Subsystem Reset Is an optional function of the controller , from CAP.NSSRS The status of the field indicates . By not forming NVM One or more controllers of the subsystem provide this capability, Implementation can protect NVM Subsystems are protected from unintentional NVM Subsystem Reset.

Lead to NVM Subsystem Reset The occurrence of a supplier specific event is intended to allow the realization of a serious NVM Recover from subsystem internal errors , This error will prevent normal operation from continuing ( for example , Fatal hardware or firmware error ).

3.7.1.2Multiple Domain NVM Subsystems

NVM Subsystem Reset The scope of depends on NVM Whether the subsystem supports multiple domains . In support of multiple domains NVM In the subsystem ,NVM Subsystem Reset The scope of is the controller in the domain or the whole NVM Subsystem .

Start... On the domain under the following conditions NVM Subsystem Reset:

  • To the domain Power supply ;
  • value 4E564D65h( namely “NVMe”) Is written to one of the controllers in the domain NSSR.NSSRC Field ; or
  • A vendor specific event has occurred in this domain .

When NVM Subsystem Reset occurs , The entire domain is reset . This includes starting on all controllers in the domain Controller Level Reset, Disable the Persistent Memory Region, And where applicable NVMe Any transport specific operation defined in the transport specification .

perhaps , Support for multiple domains NVM In the subsystem NVM Subsystem Reset The entire... May be reset NVM Subsystem . NVM Subsystem Reset By NVM Subsystem Reset After CSTS.NSSRO Initial value report for field . The host software can use this field to determine whether the sudden loss of communication with the controller is due to NVM Subsystem Reset Or some other situation .

The host software writes NSSR.NSSRC Field to start NVM Subsystem Reset Is an optional function of the controller , from CAP.NSSRS The status of the field indicates . Implementations can protect the domain from unintentional... By not providing this functionality to one or more controllers in the domain NVM Subsystem Reset.

3.7.2Controller Level Reset

The following method starts Controller Level Reset:

  • NVM Subsystem Reset;
  • Controller Reset (i.e., CC.EN from ‘1’ To ‘0’); and
  • Transfer specific reset type ( Refer to the applicable NVMe Transport binding standard ), If any .

Controller Level Reset Including the following operations :

  • The controller stops processing any unfinished Admin or I/O command ;
  • all I/O Submission Queues Be deleted ;
  • all I/O Completion Queues Be deleted ;
  • The controller enters Idle state . After completion ,CSTS.RDY clear 0;
  • All in the first 3.1.3 Both the controller register and the internal controller state defined in section are reset , Except for :
      o For controllers that use memory based transfers :
         - Admin Queue register (AQA、ASQ or ACQ) Not as Controller Reset Part of the ;
         - Controller Memory Buffer Memory Space Control register (CMBMSC) Reset , But it is neither Controller Reset Neither Function Level Reset Part of ; and
         - Persistent Memory Region Memory Space Control Upper register (PMRMSCU) and Persistent Memory Region Memory Space Control Lower register (PMRMSCL) Not as Controller Reset Part of the .

          o For controllers that use message based transport :
                No exceptions

In addition Controller Reset All but Controller Level Reset Under the circumstances ,controller The register will follow the applicable NVMe Transport binding The definition of the specification is reset .

To be in Controller Level Reset Then go on , Host should :

  • Update transfer specific status and controller register status as appropriate ;
  • take CC.EN Set to “1”;
  • wait for CSTS.RDY Set to “1”;
  • Use... As needed Admin commands Configure the controller ;
  • Create... As needed I/O Completion Queues and I/O Submission Queues;
  • Continue normal I/O operation .

Be careful , except Controller Reset All but Controller Level Reset Will cause the controller to lose communication with the host immediately . In these cases , The controller cannot instruct any abort or update any completion queue entries .

3.7.3Queue Level Reset

The host can be reset I/O Submission and I/O Completion Queues To reset and / Or reconfigure them . Execute by deleting and then re creating the queue queue level reset. In the process , The host should wait for all the corresponding unhandled Submission Queue(s) Completion .

To execute on a controller that uses a memory based transport model queue level reset, The host will Delete I/O Submission Queue or Delete I/O Completion Queue Submit the command to Admin Queue, Specifies the identifier of the queue to delete . After the queue delete command operation completes successfully , The host submits Create I/O Submission Queue or Create I/O Completion Queue Command to recreate the queue . As part of the create operation , The host can modify the properties of the queue . Be careful , If the I/O Completion Queue perform queue level reset, Then I/O Completion Queue Delete in use... Before resetting I/O Completion Queue Of I/O Submission Queue, And rebuilding I/O Completion Queue Then recreate I/O Submission Queue. No corresponding I/O Completion Queue Of I/O Submission Queue The behavior of is undefined . To execute on the controller using a message based transport model queue level reset, The host will Disconnect The command is sent to the... To be deleted I/O Queue. stay Disconnect After the command completes successfully , The host submits QID No 00h Of Connect Command to recreate I/O Submission Queue and I/O Completion Queue. As Connect Part of the order , The host can modify I/O Properties of the queue .

The host shall ensure the corresponding I/O Submission Queue or I/O Completion Queue Idle before deleting the queue . Submit queue deletion Command causes the controller to abort any pending commands ; This may ( May not be ) Causes completion queue entries to be issued for aborted commands .

原网站

版权声明
本文为[BGONE]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206220300088047.html