Inicio Artículos PCIe® hace realidad hoy el coche del mañana

PCIe® hace realidad hoy el coche del mañana

pcie microchip

Richard Herbert, Automotive Networking Product Marketing Manager – Microchip Technology

Introducción

El desarrollo de Sistemas Avanzados de Ayuda a la Conducción (ADAS, por Advanced Driver Assistance Systems) de tipo básico se ha generalizado. Ahora bien, para disponer de funciones avanzadas (algunas de las cuales ni siquiera imaginamos) que unan diversos niveles de complejidad es necesario que los vehículos cuenten con SoC de alto rendimiento y que los conecten a una interfaz de comunicación estándar para que los datos procesados puedan ser compartidos como conjuntos de datos estructurados para otras funciones del vehículo.

Esto podría posibilitar el funcionamiento coordinado de diferentes funciones del vehículo; por ejemplo, poniendo los datos de detección de peligro procedentes de las cámaras y el radar a disposición de los faros delanteros para identificar elementos presentes en la calzada, el radio de una curva o la aparición de un peatón. PCIe® permite compartir los datos entre varios SoC para asumir diversas funciones del vehículo, mientras que el modelo de software utilizado aprovecha la mayor capacidad en las nuevas generaciones de PCIe, las generaciones de SoC, y en última instancia de las generaciones de plataformas para automóviles. El objetivo de que las plataformas actuales estén preparadas para el futuro durante varios años impulsa la adopción de tecnologías PCIe.

Historia de PCIe

La historia de PCI se remonta a varias generaciones hasta el bus de la interfaz informática en paralelo, utilizada en muchos servidores, PC integrados y domésticos para interconectar periféricos. PCIe, que se definió y estandarizó dentro del PCI SIG (Special Interest Group), permitió conectar numerosos dispositivos a un solo SoC. Al principio eran sobre todo dispositivos x86 de Intel o AMD conectados a una red, un periférico de alta velocidad o un controlador gráfico. Luego evolucionó a partir de los buses de datos de 32 bit a 64 bit de 32 MHz a 64 MHz, y finalmente pasó a tener un formato en serie. PCIe permitió establecer conexiones de datos a alta velocidad a través de una conexión diferencial: una para transmitir y una para recibir. Un par de conexiones diferenciales suele recibir el nombre de carril (lane). Estos carriles se pueden agrupar en puertos dependiendo del periférico o del SoC conectado y su anchura puede ser desde un carril por puerto hasta 16 o 32 carriles por puerto.

tabla pcie microchip

Ventajas de una red Ethernet

En el ejemplo del PC, la jerarquía de la conectividad es sencilla ya que hay un solo SoC potente conectado a varios periféricos de alta velocidad. Con los servidores pasaba lo mismo, pero debido a la evolución de los servidores resultaba ventajoso disponer de dos SoC muy cercanos que compartieran periféricos para acceder a almacenamiento, memoria de alta velocidad, y a veces a datos. Estos son los cimientos de los conmutadores o switches PCIe. Un conmutador o switch PCIe permitirá el acceso independiente y por separado a un SoC (denominado Complejo Raíz) en un sistema con varios SoC a un conjunto común de periféricos conocidos como Puntos Finales. Cada SoC cree que tiene un acceso independiente a estos periféricos gracias a la función NTB (Non-Transparent Bridging). Un SoC que utilice un conmutador PCIe en este tipo de sistema aprovecha la conectividad de los datos a muy alta velocidad y con una latencia muy baja, generalmente a una distancia corta.

Compárese esto con Ethernet, que se basa en un estándar desarrollado por el IEEE, es totalmente compatible con las versiones anteriores y está destinado a dispositivos situados a metros de distancia a través de redes troncales que en la actualidad son de 100Mb/s o 1000Mb/s y aumentarán hasta 10Gb/s en el futuro. Además, Ethernet ha sido desarrollada en el seno de la Open Alliance para incorporar funciones específicas del automóvil como Indicadores de Calidad de Señal y el modo Activo/Inactivo (Wake/Sleep). La conmutación basada en la Capa 2 del MAC (Media Access Control) permite que un paquete vaya desde cualquier punto, a través de interfaces físicas a diferentes velocidades de Ethernet, en los dispositivos conmutadores hasta cualquier punto del vehículo. La naturaleza homogénea de una red Ethernet ubicua es una ventaja, de ahí que cuente con un amplio respaldo entre los usuarios de la industria.

La capacidad de Ethernet de funcionar a una velocidad relativamente elevada y distancias más largas, así como de admitir mejoras en el estándar, la diferencia respecto a PCIe que funciona en distancias más cortas, a velocidades más altas de los datos y con una sobrecarga relativamente sencilla. Sin embargo, no deberíamos dar por hecho que una sustituye a la otra, sino que ambas opciones se han establecido con solidez en los vehículos por todas estas razones.

PCIe permite conectar varios dispositivos

Si bien he descrito dos situaciones en las cuales los SoC se pueden comunicar entre sí, la llegada del Nivel 3 de ADAS, y de niveles superiores, está uniendo todas las piezas. Los sistemas de seguridad crítica incorporan a menudo datos de cámaras en directo en sus procesos de decisión, por lo que no solo es imprescindible disponer de datos de vídeo en directo que no estén comprimidos, sino que se debe evitar la latencia adicional que se genera al formar una trama Ethernet o de otro tipo. En la mayoría de los casos, los datos de la cámara están conectados directamente a las interfaces apropiadas de vídeo en el SoC. Puede haber más de un SoC que compartan esta carga de trabajo o adquisición en tiempo real, así como coprocesamiento de transmisiones de vídeo. También existen aceleradores que admiten flujos de trabajo y conjuntos de datos de inteligencia artificial y aprendizaje automático.

Es primordial reducir la latencia de la transferencia de datos en esta computación de alto rendimiento dentro del vehículo, en la que a menudo se comparte el mismo conjunto de datos, y esta reducción se puede efectuar en el ámbito de PCIe. El dispositivo que permite compartir los datos entre varios complejos raíz del SoC y dispositivos como unidades SSD y tarjetas de interfaz de red es un conmutador PCIe, que también ofrece las funciones NTB descritas antes. La estructura puede facilitar opciones más sencillas de conectividad, pero es la capacidad de definición del software y la configuración que ofrezca el conmutador PCIe las que permiten aprovechar al máximo los recursos del sistema. Compartir los recursos es una característica fundamental del sistema que los fabricantes OEM desean utilizar activamente.

Un conmutador PCIe también aporta ventajas destacables a la hora de diseñar sistemas cuyo coste a veces está optimizado y cuya seguridad siempre es crítica.

Un conmutador PCIe puede permitir la conexión modularizada de los SoC, que puede estar instalado al menos parcialmente cuando sale de fábrica, y luego es actualizado por un distribuidor que añade otros módulos. Si bien todos los vehículos admitirán actualizaciones y mejoras inalámbricas, el uso de HPC también abre la posibilidad de que el fabricante OEM obtenga ingresos de los posteriores propietarios del mismo vehículo. Por ejemplo, se pueden crear nuevas fuentes de ingresos más allá del primero o el segundo propietario ofreciendo unas mayores prestaciones o actualizaciones de sus funciones. Ha nacido el “Coche como servicio”.

No se puede ignorar el elemento de seguridad crítica. Un conmutador PCIe también permite instalar otras unidades similares en el mismo vehículo de modo que, si se produce un fallo en una de ellas, es gestionado por un sistema en funcionamiento para evitar una avería grave.

PCIe proporciona un modelo de software escalable

El modo de funcionamiento de PCIe en todos estos sistemas es muy parecido. Todos los SoC utilizan transacciones comunes para mover datos de la memoria al espacio de direcciones de un dispositivo PCIe en algún lugar del conmutador. Esto se puede efectuar entre SoC y entre generaciones de PCIe y ha sido así desde la aparición de PCI.

Por encima de todo esto, la configuración del conmutador PCIe se puede realizar de manera que adopte la configuración máxima incluso si en la fábrica se le dota de un subconjunto de módulos o recursos. Por ejemplo, se podría adaptar un SoC pero permitir la actualización de tres, o bien añadir una sola unidad SSD pero permitir la incorporación de otra más tarde, e incluso la incorporación posterior de un conmutador PCIe de recuperación al sistema.

A partir del conmutador PCIe podemos facilitar la evolución futura del sistema. El software del SoC para PCIe puede permanecer estático y los recursos del desarrollador del OEM se pueden centrar en las funciones del usuario proporcionadas en el módulo SoC adaptado. El conmutador PCIe será el único elemento del sistema relacionado con las actualizaciones del rendimiento y del propio sistema, utilizando para ello funciones asumidas por el propio conmutador y no necesariamente por los SoC.

Entre los ejemplos de posibles actualizaciones se encuentra la incorporación de un Complejo Raíz Virtual que permita al conmutador identificar otros SoC a lo largo de la vida útil de una plataforma, y por tanto intercambiar los SoC disponibles, e incluso añadir mejoras para autorizar el acceso del SoC a los recursos de manera segura una vez autentificado.

Un segundo ejemplo es un mecanismo conocido en los centros de datos para permitir el acceso de varios SoC a unidades de estado sólido, de modo que el acceso de cada SoC sea independiente, protegido y gestionado por un mecanismo denominado SR-IOV (Single Root IO Virtualisation). Esto se suele llevar a cabo por medio de un complejo stack de software en el SoC, pero también se puede realizar a partir de un solo driver del conmutador. Se trata de otro ejemplo en el que la complejidad de desarrollo del software se ve simplificada y singularizada, pero sigue siendo accesible por el driver PCIe estandarizado del SoC.

ethernet pcie microchip

Diferentes maneras de ampliar la capacidad de PCIe

Como se ha señalado antes, los SoC se pueden instalar como unidades intercambiables en un backplane que contenga el conmutador PCIe. El sistema puede estar completo al principio o a lo largo de futuras expansiones. La conectividad de PCIe también se puede ampliar añadiendo backplanes o chasis e interconectándolos de alguna manera. La conectividad de PCIe se suele obtener mediante pistas en la placa de circuito de impreso del backplane y soldando los conectores a poca distancia. ¿Pero qué ocurre si se necesita un segundo chasis? En muchos casos resulta más fácil añadirlo como una segunda unidad completa en lugar de actualizar una unidad ya instalada. Es posible que el segundo chasis admita funciones de próxima generación, como una actualización de Nivel 4 al vehículo suministrado de fábrica con Nivel 2. O bien podría actualizar sus prestaciones con una mayor fiabilidad (funcionamiento en espera y recuperación).

Resulta más sencillo dejar un espacio separado en el vehículo y cablearlo que quitar dispositivos para acceder a una unidad ya instalada. La conectividad conectorizada y cableada pasa a ser, por tanto, un requisito. Además, aunque siempre es posible hacerlo a lo largo de varios metros en el dominio de Ethernet, sería a expensas del ancho de banda de los datos. Aplicarlo a alta velocidad en un cable corto podría ser la respuesta para lograr esta actualización idónea.

Microchip ha estado desarrollando una tarjeta de referencia PCIe para Automoción que incorpora conectores H-MTD estándar y utiliza productos de cableado para centros de datos, no específicos para automoción. Esto se llevó a cabo para evaluar el uso de los componentes disponibles en el mercado para que PCIe pueda llegar a una distancia mayor y ayudar a nuestros clientes a conocer las exigencias de la conformidad con EMC en estos sistemas. En las pruebas realizadas se logró cubrir varios metros de distancia por medio de enlaces PCIe de 3ª y 4ª Generación.

Seguridad funcional en el sistema PCIe con SoC de alto rendimiento

Muchos SoC avanzados del tipo utilizado en la conducción autónoma y semiautónoma admiten niveles más elevados de seguridad funcional, por ejemplo ASIL nivel D. El nivel D necesita varios núcleos en paralelo cuyo coste es prohibitivo para muchos de los SoC con un rendimiento suficientemente avanzado para ofrecer la función ADAS. La descomposición y la división funcional es necesaria en los componentes ASIL nivel B para que el sistema obtenga la certificación de nivel C o superior. PCIe ofrece muchas protecciones que posibilitan esta certificación del sistema en enlaces a nivel de contenedor físico y virtual, así como a través de conexiones de datos internas. Esta protección inherente, la descomposición funcional, la división y la capacidad de disponer de unidades en espera o recuperación en un sistema, como hemos explicado antes, abren la posibilidad de proporcionar asistencia al conductor de Nivel 3 a un OEM moderno en este ámbito de seguridad crítica y es algo que todo fabricante desea ver.

Cuando todo se une: Conclusión

Si bien puede parecer que el objetivo final es la conducción autónoma de Nivel 4, un OEM quiere que su plataforma permita añadir funciones y servicios de modelos a partir del Nivel 2 o 3 de ADAS. Esto obliga a pensar más en la escalabilidad y la ampliación que en el suministro previo para asumir cargas de trabajo más exigentes en el futuro. Ofrecer escalabilidad del SoC, potenciar los recursos compartidos a lo largo del tiempo e incorporar el chasis adicional que contiene los conmutadores PCIe permite disponer de una plataforma base común para varios modelos y plataformas durante los muchos años de vigencia del modelo. El consumidor utilizará un “Coche como servicio” basado en el vehículo definido por software utilizando el centro de datos sobre ruedas. Todo esto ya es factible en la actualidad.