¿La dirección del dispositivo PCI en realidad significa la dirección de la ranura? ¿Y cuándo obtiene la ranura PCIe su dirección?

0

Me gustaría aclarar cómo funciona el espacio de direcciones de configuración en PCI y PCIe. Es decir, un periférico PCI en un bus se dirige con el par device:function (el bus o el domain:bus no están incluidos, ya que solo se considera 1 bus). ¿Cómo se determina la dirección device ? ¿Qué lo establece?

Según la respuesta a esta pregunta en superusuario y en otros textos, la dirección device es en realidad la dirección de la ranura PCI y, por lo tanto, debe conectarse en el hardware durante la fabricación. ¿Es correcto?

Entonces, ¿cómo se define esta dirección en el caso de PCIe?

De la misma respuesta:

  

cada dispositivo tiene su propia conexión en serie punto a punto individual a su dispositivo ascendente

- por lo tanto, en PCIe, cada ranura está conectada a un dispositivo de conmutación ascendente en topología en estrella. ¿Y las direcciones de las ranuras son reasignadas por el interruptor al reiniciar? (Entonces, cuando se enciende, el conmutador llama a los dispositivos en cada ranura y si hay una respuesta, ¿el conmutador asigna device a la ranura?) Como en la misma respuesta:

  

(por lo tanto, cada puente, incluido el "complejo raíz" de nivel superior, le dice a cada dispositivo cuál será su ID de dispositivo)

¿O también se resuelven en hardware / firmware del switch? (Y el interruptor siempre tiene una dirección device asignada a esos cables que van a una ranura).

Parece que para que la capacidad de conexión en caliente sea más fácil, cada ranura debe tener una dirección permanente en el bus (en la "red" del conmutador PCIe).

    
pregunta xealits

1 respuesta

1

El "ID de dispositivo" es un valor que se lee en uno de los registros del dispositivo. No tiene nada que ver con la forma en que se conecta el dispositivo, y varios dispositivos pueden tener la misma ID.

Lo que esa respuesta llama "ID de dispositivo" en realidad es el número de ranura.

Un conmutador PCI-E pretende tener dos niveles de buses PCI, uno entre el dispositivo ascendente y un puente para cada puerto descendente, y uno con una conexión 1: 1 para cada puerto. Por lo tanto, la conexión física PCI-E es punto a punto, pero el bus virtual dentro del conmutador tiene muchos dispositivos y, por lo tanto, muchos números de ranura.

Los números de ranura describen conexiones físicas y nunca cambian.

    
respondido por el CL.

Lea otras preguntas en las etiquetas