¿Qué significa "publicado" en la transacción PCIE publicada?

7

¿Qué es la etymology de la palabra "publicado" en "transacción PCIE publicada"? He trabajado con PCIE y entiendo la diferencia entre las transacciones PCIE" publicadas "y las" no publicadas ", pero no entiendo qué significa la palabra" publicado " . ¿De dónde viene "publicado"? ¿Qué significa realmente?

    
pregunta Ross Rogers

3 respuestas

6

Sé poco sobre PCI, pero me parece que lo principal de las transacciones publicadas es que no tienes control sobre ellas una vez que se inician.
Un poco como enviar un mensaje por correo ( post !): Una vez que el mensaje está en el buzón, queda fuera de su control.
Otros sistemas también utilizan post , por ejemplo, el sistema de mensajería de Windows sabe publicar y enviar . Cuando envías un mensaje de Windows, tienes el control hasta que el mensaje haya sido manejado, cuando lo envías, lo colocas en la cola de mensajes, y listo. Sin retroalimentación, sin reconocimiento.

    
respondido por el stevenvh
13

Para conocer las Transacciones Publicadas de PCIe, debe comprender qué es una "escritura publicada" para las PCI heredadas y qué es una lectura de PCI heredada.

Para una lectura de PCI heredada, y de hecho se lee en la mayoría de los buses, la CPU envía un comando de lectura y la dirección de lectura espera a que el dispositivo responda con los datos y una señal de "Hecho" de algún tipo. Básicamente es una cosa tipo Comando y Respuesta.

Las escrituras normales en un bus PCI heredado, y muchos otros buses, son similares, excepto que el comando es la señal de escritura + dirección + datos y la respuesta es simplemente "hecho". El problema con esto es que para muchos sistemas el "hecho" no es necesario y solo toma tiempo. Si el periférico al que está escribiendo puede aceptar escrituras a toda velocidad, entonces no se necesita en absoluto.

Una "escritura publicada" es una escritura que no espera a una "finalización". La CPU asume que el ciclo de escritura se completará con cero estados de espera, por lo que no espera a que se complete. Esto acelera la escritura considerablemente. Para empezar, no tiene que esperar la respuesta realizada, sino que también permite una mejor canalización de la ruta de datos sin mucha penalización de rendimiento.

En la tierra PCIe se publican todas las escrituras. Pero PCIe las llama "transacciones publicadas" porque hay muchos tipos de escrituras (escrituras de memoria, escrituras de E / S, escrituras de configuración, etc.). También hay un par de otras transacciones que no tienen una respuesta.

La razón por la que se publican todas las escrituras es porque la naturaleza serial y basada en paquetes de PCIe hace que la "respuesta" sea muy lenta. Es común que una sola palabra leída tome varios microsegundos para completarse. Entonces, a pesar de que el bus está funcionando a 2.5 gigabits / segundo, solo podría obtener unos 4 megabytes / segundo si se lee una sola palabra. Cambie eso a escrituras publicadas de una sola palabra y el ancho de banda llegará a unos 60 megabytes / segundo. Cambie a escrituras publicadas de varias palabras y tendrá hasta unos 250 megabytes / segundo.

No hay tal cosa como una lectura publicada, en ningún bus, porque todas las lecturas requieren una respuesta (a.k.a. los datos que estás leyendo).

    
respondido por el user3624
1

Ayuda a comprender que un controlador de bus PCI forma una interfaz entre un bus local del procesador, es decir, la estructura del bus nativo de la CPU y el bus del adaptador PCI. Supongamos que su CPU quiere escribir datos en un dispositivo PCI; no hay selecciones de dispositivos que se ejecuten directamente desde el decodificador de dirección de bus nativo hacia una tarjeta PCI enchufada, por lo que lo que sucede es que la CPU escribe en una parte de su espacio de dirección física local que se decodifica en el controlador de bus PCI. Cuando el maestro del bus PCI ve el ciclo de escritura, bloquea la dirección y los datos, momento en el cual el resto de la transacción de E / S se desacopla de la CPU. La CPU es libre de seguir su camino, haga lo siguiente, b / c en este punto, el ciclo se ha 'publicado' en el controlador de bus PCI; El controlador de bus PCI luego administra la selección del dispositivo correcto y finaliza el ciclo de E / S.

    
respondido por el JustJeff

Lea otras preguntas en las etiquetas