¿Qué protocolo de E / S (como USB, PCIe o SATA) es actualmente el mejor para aprender para la verificación de SOC?

El número de protocolos ha aumentado dramáticamente en los últimos 5 a 10 años y cada uno de ellos también se revisa después de unos años a medida que evolucionan los diseños.

Los siguientes son una categoría de protocolos sabios que actualmente se usan ampliamente junto con alguna referencia a dónde puede leer más.

Protocolos relacionados con la memoria:

  1. Memoria principal: DDR3 y DDR4 SDRAM – Protocolo de interfaz DRAM estándar
  2. Memoria móvil: LPDDR, E / S amplia, MCP de memoria: protocolos de interfaz DDR de baja potencia utilizados en dispositivos móviles y dispositivos de baja potencia
  3. Protocolo de interfaz MMC / eMMC (tarjeta multimedia): se utiliza principalmente en la electrónica de consumo actual y es una interfaz de memoria no volátil
  4. Protocolo de tarjeta SD (tarjeta digital segura)
  5. HMC (Hybrid Memory Cube) Memoria que utiliza tecnología de interconexión 3D para aumentar la densidad.
  6. Memoria de ancho de banda alto – Wikipedia – Interfaz de memoria más amplia para acceder a DRAM apilada
  7. Universal Flash Storage (UFS): este es un estándar de transferencia de datos de JEDEC, diseñado para conectar dispositivos con gran capacidad de almacenamiento a dispositivos móviles

Protocolos relacionados con el procesador

  1. Protocolos AMBA – APB, AHB, AXI, ACE, CHI – Lea esto para obtener detalles y especificaciones

Protocolos relacionados con la interfaz

  1. USB: USB 2.0, USB 3.0, USB tipo C: bus serie universal
  2. PCIE (Peripheral Component Interconnect Express)
  3. Ethernet 10G, 100G, 400G
  4. WiFi, BlueTooth, Zigbee: diferentes protocolos para la comunicación inalámbrica
  5. UART, I2C, SPI: periféricos de baja velocidad utilizados en sistemas informáticos
  6. Protocolos MIPI: una colección de especificaciones de interfaz de MIPI Alliance para interconectar componentes en un dispositivo móvil: módems, cámara, pantalla, antena, periféricos, etc. Aquí encontrará una buena lectura
  7. SATA (Serial Advanced Technology Attachment): interfaz serie desde el host a las unidades de disco duro, SSD y unidades ópticas: se utiliza principalmente en PC
  8. SAS (Serial Attached SCSI): interfaz serie utilizada para un almacenamiento más grande, principalmente en servidores empresariales
  9. NVMe (memoria no volátil): este es un nuevo protocolo de comunicación para acceder a los SSD mucho más rápido que la interfaz SATA tradicional.

Protocolos relacionados con el sistema / subsistema

  1. CCIX (interconexión coherente de caché para aceleradores): un nuevo protocolo de interconexión estándar para conectar múltiples procesadores, GPU, aceleradores, FPGA, etc.

¿Cuál es una prioridad para aprender?

Es imposible aprender todo esto y no todos son importantes a menos que trabaje específicamente en cualquier diseño relacionado.

Pocos protocolos que son ampliamente utilizados y más importantes son los protocolos DDR, PCIe, USB y el protocolo AXI, que son buenos para aprender.

Si trabaja específicamente en subsistemas móviles, entonces los protocolos de comunicación inalámbrica y MIPI se vuelven importantes

Si trabaja específicamente en sistemas relacionados con el almacenamiento, entonces SATA / SAS / NVMe se vuelve relevante

Si trabaja en SOC basados ​​en ARM o subsistemas de CPU, entonces más protocolos AMBA se vuelven relevantes.

Espero que esto ayude. Aprender a cada uno es una gran tarea en sí misma y no estoy familiarizado con muchos.

Cualquiera de estos si sabe que será mucho más fácil aprender los otros dos. Dado que los protocolos en serie tienen las capas en común como física, enlace, aplicación y capa de protocolo con pocas funcionalidades diferentes.

Por ejemplo, en USB si aprende el concepto de codificación / decodificación 8b / 10b, codificador / decodificador, serializador / deserializador, sincronización de caracteres, bloqueo de bits, que será común para los otros protocolos seriales.

Entonces, si aprende alguno de ellos, estará bien y cubrirá automáticamente al menos la mitad de las porciones de los demás.

SATA es más para aplicaciones de almacenamiento, periféricos PCIe de banda alta. Tal vez soy un poco parcial porque llevo más de 17 años en USB, pero el USB también es de alto rendimiento. Pero tiene la ventaja adicional de que existen muchas clases de dispositivos, almacenamiento, audio, video, … Y cada vez se usa más USB para depurar el silicio (más datos que el protocolo JTAG lento), lo cual es relevante para la verificación de SoC en la simulación y más tarde en el silicio real. Mi apuesta sería USB debido a la amplia gama de usos.