Formato del comando - 4.2 envío de cola de entrada

4.2 Presentación de la cola de entrada - Formato del comando
Cada comando es de 64 bytes de tamaño.
Comando DWORD 0, Espacio de nombres Identificador, metadatos puntero, PRP Entrada 1, Entrada 2 PRP, SGL Entrada 1, y metadatos SGL Segmento Puntero tienen definiciones comunes para todos los comandos de administración y comandos de NVM. Metadatos Pointer, PRP Entrada 1, PRP de entrada 2, y metadatos SGL Segmento puntero no son utilizados por todos los comandos. Comando Dword 0 se define en la Figura 10.

 

 

 

El formato del comando 64 bytes para el comando set de administración y NVM conjunto de comandos se define en la figura 11. Cualquier E / S adicionales conjunto de comandos define en el futuro puede utilizar un tamaño de comando alternativo o formato.
SGL no serán utilizados para los comandos de administración en NVMe más de PCIe.

 

 

 

 

 

 Además de los campos definidos en común para todos los comandos de administración y NVM, comandos específicos de administración y NVM vendedor puede soportar el número de DWords de transferencia de datos y el número de DWords en los campos de transferencia de metadatos. Si se admite, el formato del comando específico para la administración de proveedores Comandos específicos de mando y NVM de proveedores se define en la figura 12. Para más detalles, ver la sección 8.7.

 

 Formato del comando - 4.2 envío de cola de entrada

El tamaño de cada comando son 64bytes.
Para los comandos de administración y comandos para NVM, Comando DWORD 0, Espacio de nombres Identificador, metadatos puntero, 1 entrada de PRP, PRP Entrada 2, Entrada 1 SGL y metadatos SGL Segmento puntero tiene la misma definición. No todos los comandos utilizarán metadatos puntero, 1 entrada de PRP, PRP Entrada 2 y metadatos SGL segmentPointer. Comando Dword véase la definición de 0 Figura 10.

 

 

La Figura 11 se define en un formato de comandos para el conjunto de comandos y el 64-byte de administración NVM conjunto de comandos. Se define en el futuro cualquier E / S conjunto de comandos adicional se puede utilizar otro tamaño o formato de comando.
Comandos de administración NVMe SGL no se puede utilizar en el PCIe.

 

 

 

Además de definir los comandos comunes a todos los campos y NVM admin, admin y NVM proveedores Comandos específicos también pueden apoyar Número de DWords de transferencia de datos y el número de DWords en el campo de transferencia de metadatos. Si se admite, la figura 12 define administración específica del proveedor del sistema y NVM proveedor específico formato de comando Comandos. Para obtener más información, véase el capítulo 8.7. 

 

 4.3 Región Física Página de entrada y la lista

Una entrada de página región física (PRP) es un puntero a una página de memoria física. PRPs se utilizan como una dispersión / reunir mecanismo para las transferencias de datos entre el controlador y la memoria. Para habilitar a cabo eficiente de las transferencias de datos orden entre el controlador y el anfitrión, entradas de PRP son de un tamaño fijo.
El tamaño de la página de memoria física se configura mediante el software de servidor en CC.MPS. La figura 13 muestra la disposición de una entrada de PRP que consta de una dirección de página Base y un desplazamiento. El tamaño del campo de compensación se determina por el tamaño de página de memoria física configurada en CC.MPS.

 

 La definición de una entrada de PRP se describe en la Figura 14.

 

 Una lista de páginas región física (Lista PRP) es un conjunto de entradas de PRP en una sola página de memoria contigua. Una lista de PRP PRP describe entradas adicionales que no podrían ser descritas dentro del propio comando. Cualquier entrada de PRP que se describen en el comando no se duplican en una lista de PRP. Si la cantidad de datos para la transferencia requiere de múltiples páginas de memoria Lista PRP, entonces la última entrada de PRP antes del final de la página de memoria deberá ser un puntero a la siguiente lista de PRP, lo que indica el segmento siguiente de la lista de PRP. La figura 15 muestra la disposición de una lista de PRP.

Dependiendo de la definición del comando, la primera entrada de PRP contenida dentro del comando puede tener una desviación distinta de cero dentro de la página de memoria. La primera entrada de la Lista PRP (es decir, el primer puntero a una página de memoria que contiene las entradas de PRP adicionales) que si está presente es típicamente contenida en el 2 ubicación de entrada de PRP dentro del comando, se Qword alineados y también puede tener una desviación distinta de cero dentro de la página de memoria.
PRP entradas contenidas dentro de una lista de PRP deberán tener una página de memoria de corrección de 0h. Si una segunda entrada de PRP está presente dentro de un comando, se debe tener una página de memoria de corrección de 0h. En ambos casos, las entradas están alineados página de memoria basado en el valor en CC.MPS. Si el controlador recibe una desviación distinta de cero para estas entradas de PRP el controlador debe devolver un error de PRP Offset no válida.
Las listas de PRP serán mínimamente tamaño con entradas envasados ​​a partir de la entrada 0. Si se requieren más páginas Lista PRP, a continuación, la última entrada de la lista de PRP contiene la dirección de página base de la siguiente página Lista de PRP. La siguiente página Lista de PRP será alineado página de memoria. El número total de entradas de PRP requeridos por un comando está implícito en el tamaño parámetros de comandos y páginas de memoria.

Región física y la entrada Página 4.3 Lista
física Región de página (PRP) es el punto de entrada al puntero de página de memoria física. PRP se utilizó entre el controlador y la transmisión de datos de memoria en
dispersión / mecanismo de agregación (dispersión / agrupación). Para lograr la transferencia de datos eficiente entre el controlador y el anfitrión revueltos, se fija el tamaño de la entrada de PRP
dado.
tamaño de página de memoria física configurado por el software de host, que se encuentra CC.MPS campo. Figura 13 muestra el diseño de una entrada de PRP, la entrada de una dirección de base y un desplazamiento de página. tamaño de campo de desplazamiento está configurado por un tamaño de página de memoria física CC.MPS determinado.

 

 de entrada de PRP se define como se muestra en la Fig.

 

 Lista de páginas Región física (Lista PRP) de entrada de PRP es una sola página de un grupo de memoria contigua. tabla PRP PRP describe entradas adicionales no pueden ser descritas en el orden en sí. Cualquier PRP comandos de entrada se describen en la tabla no se repetirá en el PRP. Si los datos a transmitir requiere una pluralidad de PRP tabla de páginas de memoria, PRP entonces la última entrada antes del final de la página de memoria debe ser un puntero a la siguiente mesa de PRP, PRP tabla que indica la siguiente sección. La figura 15 muestra la disposición de mesa de PRP.

 

 La definición de la orden, el primer comando en una entrada de PRP puede tener una desviación distinta de cero en las páginas de memoria. PRP entrada de la tabla primer comando (es decir, un puntero apunta a la primera página de memoria que contiene PRP entrada adicional) PRP Entrada 2 si la posición está típicamente en el comando, debe ser alineación Qword, y, posiblemente, las páginas de memoria tiene una desviación distinta de cero.

página de memoria la lista de entrada de PRP PRP desplazamiento siempre debe 0h. Si existe el segundo comando en la entrada de PRP, entonces su página de memoria siempre debe compensar 0h. En ambos casos, las entradas se basan en el valor CC.MPS para alinear la página de memoria. Si el controlador recibe el PRP tiene unas entradas de compensación distintos de cero, el controlador debe devolver un error no válido PRP Offset.
PRP tamaño debe ser el tamaño mínimo de la mesa, y las entradas de la entrada de embalaje cero (Pack). Si necesita más tabla de páginas PRP, entonces la tabla PRP de la última página que contiene la dirección base (Dirección Página Base) PRP tabla siguiente página. PRP tabla siguiente página debe estar alineada páginas de memoria. El número total de entrada de comandos PRP requerido se incluye en los parámetros de tamaño de página de memoria y los comandos de ellos.

Supongo que te gusta

Origin www.cnblogs.com/hswy/p/12669065.html
Recomendado
Clasificación