Parte 3 Flashcards
Que transacciones comprende la capa de TLP?
IO read/write Configuration r/w Completion Messages AtomicOp
Que paquetes comprende la capa de enlace DLLP?
Power management
Link flow control
Vendor-specific
Menciona las 3 ventajas de un protocolo basado en paquetes (packet-based protocol)?
- El formato del paquete es bien definido
- Los símbolos del granado definen los límites (inicio/fin)
- Con el CRC se protege el paquete completo
Que significa que el formato del paquete está bien definido?
Para facilitar el chequeo de errores como de paridad se debe conocer el tamaño y formato en el header.
Y se incluye información de los TLPs como los símbolos de tramas, CRC y número de secuencia del paquete.
Los símbolos de la trama definen los límites del paquete de que manera?
En generaciones PCI gen1 y gen2 la codificación es 8b/10b por lo que los TLPs y DLLPs tienen símbolos de control que definen un START y END del paquete.
En gen 3 + donde la codificación es 128/130b no se utilizan más estos símbolos de control.
Cuál es la ventaja de implementar CRC para proteger el paquete?
Al detectar un error en el receptor el paquete se puede reenviar ya que se guarda una copia en el Retry Buffer hasta que se ha recibido un acknowledged por parte del receptor.
En el lado del transmisor como es que se ensambla un TLP?
- Target address (routing information)
- Source information (requester ID, tag)
- Transaction type / packet type
- Data payload size
- Traffic class (priority)
- Attributes of the request (no-snoop, Relaxed ordering, etc)
- Pasa al Retry buffer
- Se integra el STP
Cuál es la función del Retry Buffer?
Almacena una copia del paquete hasta que el receptor emite un Ack
Qué es el campo STP?
En gen 1 y gen 2 se es necesario indicar un inicio y un final, en gen 3 el STP (Start TLP) es un token que contiene la información del tamaño del paquete se inserta al comienzo de la trama y por tal motivo ya no es necesario los símbolos de start/stop.
Como se efectúa el desamblado de un paquete en el receptor?
Se hace lo opuesto al assembly.
La capa física deserealiza, decodifica y une los stripped bytes, los caracteres del STP de control se consumen en esta capa.
El DLL calcula el CRC si coincide con el del TLP recibido revisa el sequence number si no hay errores se remueve la sección retorna un Ack DLLP y avanza el TLP.
Finalmente en la capa de transacciones el TLP es decodificado y la información llega al core del device.
Que ocurre si se retorna un not acknowledge? Nack
Del Retry buffer se reenvía el paquete
Según la estructura del TLP de que longitud es el header?
Puede ser de 3DW o 4DW
12 o 16 bytes
Según la estructura del TLP de que longitud es el dato? Payload
Es opcional puede ser de hasta 1024 DW que lo especifica el Byte Enable o byte-aligned con las direcciones de inicio y fin.
Cuál es el tamaño del campo Digest / ECRC.?
Es opcional cuando existe y es de 1 DW
Menciona los códigos para el campo Format?
000 3DW no-data
001 4DW no-data
010 3DW with data
011 4DW with data
Que significan las siglas ECRC?
End-to-end Cíclic redundancy check
Como se origina el ECRC de los TLPs?
Los dispositivos calculan el ECRC y lo aplican a todos los TLPs que se originan.
Si se incluye ECRC se debe incluir AER (advanced error reporting)
Cuales dos bits se pueden modificar en el trayecto?
El bit 0 del campo type
El bit Error / Poisoned (EP)
El bit 0 del campo type como se cambia en el trayecto ?
Pasa a ser cero cuando se presenta una transacción de configuración y cruza por el bridge así pasa de ser type 1 a type 0
De que forma cambia el bit Error / poisoned EP?
Puede cambiar cuando un TLP logra pasar por la fab sin complicaciones y se detectan errores en los datos por lo que se perciben como corruptos.
Quien revisa el ECRC?
El último dispositivo que recibirá el TLP.
En que consiste revisar el ECRC?
El LCRC es para verificar que no haya errores en la transmisión pero se podría dar el caso que algunos errores se enmascaren por lo que al tener un ECRC aumenta la probabilidad que los errores sean detectados.
Principal ventaja de usar byte enable. ? BE
Permite al dispositivo identificar el primer DW habilitado y el último DW que será empleado (first / last) y así saber cuales son los bytes de interés que están dentro de esos DW transferidos.
Que bits o campos construyen el Transaction Descriptor?
Transaction ID
Transaction Attributes
TC
Cuál es la función de emplear un transaction descriptor ?
Para que en todo momento se pueda identificar al propietario de la transacción, este descriptor es único así se asegura que el paquete correcto llegue al destino correcto.
Cómo está compuesto el transaction ID?
Lo forman la combinación del Requester ID (bus, dev, fn number) Y el TAG field del TLP
Cuales son los atributos de una transacción ?
ID-based ordering
No-snoop
Relaxed Ordering
Que significan las siglas RCB?
Read Completion Boundary
Cuál es la longitud del header para los requests de configuración?
Los paquetes de configuración siempre van con un header de 3Dws
De que transacciones se espera el retorno de un completion con dato?
De los memory reads, IO Reads y Configuration reads
De que transacciones se espera un completion sin dato?
IO writes y configuration writes
Que códigos se usan para los completion [7:5]?
000b = SC 001b = UR 010b = CRS 100b = CA
Menciona los tipos de completion?
- Successful Completion (SC)
- Unsupported Request (UR)
- Configuration Request Retry Status (CRS)
- Completer Abort (CA)
Que es el UR?
Cuando el completer no reconoció el completion indica un error, la definición depende de la spec.
Que es el CRS y cuando surge?
Los CRS solo son para requests de configuración otra respuesta es ilegal y se trata como malformed TLP
Cuál es la longitud del header de los mensajes?
Usan un header de 4DWs aunque dejen campos sin usar.
En que modelo de transacciones se clasifican los mensajes?
La mayoría de las veces son tratados como Posted memory-writes transactions.
Cuales son los 9 grupos de los mensajes enviados en el byte 7?
- INTx Interrupt Signaling
- Power management
- Error signaling
- Locked transaction support
- Slot power limit support
- Vendor-defined messages
- Ignored messages (related to hot-plug support)
- Latency Tolerance Reporting (LTR).
- Optimized buffer flush and fill (OBFF)
Cuantos canales virtuales (VC) soporta PCIe?
Hasta 8
De 0-7
Que capas intervienen en el FC?
Las funciones de FC se comparten entre la capa de transacción y de enlace (DLL), la primera tiene los contadores y la segunda envía y recibe la información.
Que tipo de transacciones fluyen por los canales virtuales del FC buffers?
Memory writes y mensajes (Posted)
Memory reads, configuration r/w, IO r/w (non-posted)
Completions r/w
Que porciones o secciones pueden tener las transacciones como memory writes?
Header + data
Que porción lleva una memory read?
Solo header
En que orden se debe enviar la secuencia de Flow control DLLs?
- Posted
- Non-posted
- Completions
Cuál es el tamaño del header credits?
Maximum header size + Digest
4DWs para completions
5DWs for requests
Cuál es el tamaño del data credits?
4DWs aligned 16 bytes
Como se debe identificar que se asignó infinit credits en el device?
Con el valor de 00h
Que significan las siglas DLCMSM?
Data Link Control and Management State Machine
Que indica la señal Link-up?
Indica que la capa física ha terminado de entrenar el link (link training) y da paso a la inicialización del FC.
Como se da la inicialización del Flow control?
Ya que se entreno el link en la capa física, la inicialización ocurre en cada link en el sistema a través de un handshake entre los dispositivos de los extremos del link.
Que estados se encuentran dentro del estado DL_active?
FC_init1
FC_init2