| NXP i.MX8M | NXP i.MX8 | Marvell | MediaTek | Rockchip | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Solo | Dual | Quad Life | Quad | Quad | Quad Plus | Quad Max | Armada 1500U | MT8693 | RK3399 | |
| CPU | ARM Cortex-A53 | 2x ARM Cortex-A53 | 4xARM Cortex-A53 | 4xARM Cortex-A53 | 4xARM Cortex-A53 | ARM Cortex-A72/4x ARM Cortex-A53 | 2xARM Cortex-A72/4xARM Cortex-A53 | 4xARM Cortex-A53 | 2xARM Cortex-A72/4xARM Cortex-A53 | 2xARM Cortex-A72/4xARM Cortex-A53 |
| Taktfrequenz | 1,5 GHz | 1,5 GHz | 2 GHz/unbekannt | 2 GHz/unbekannt | ||||||
| L2-Cache | 256 KB | 512 KB | 1 MB | 1 MB | 1 MB | 1 MB/1 MB | 1 MB/1 MB | 1 MB | unbekannt | 1 MB/512 KB |
| Coprozessor | ARM Cortex-M4 | 2x ARM Cortex-M4 | - | - | 2x ARM Cortex-M0 | |||||
| GPU | VeriSilicon GC7000 NanoUltra | VeriSilicon GC7000 Lite | 2xVeriSilicon GC7000 Lite XSVX | VeriSilicon GC7000 XS | Imagination PowerVR GX6250 | ARM Mali-T860MP4 | ||||
| DSP | - | HiFi4 | VeriSilicon ZSP800 | unbekannt | - | |||||
| DRAM | 16/32 bit LPDDR-4-3200, DDR3L-2132 | 64 bit LPDDR4-3200 | LPDDR3, DDR4-2133
| 2xLPDDR3 | 16/32 bit LPDDR4, LPDDR3, DDR3, DDR3L | |||||
| Datendurchsatz DRAM max. | 12,8 GB/s | 25,6 GB/s | 17,1 GB/s | unbekannt | unbekannt | |||||
| Ethernet | RGMII | 2xRGMII | GbE | - | GbE | |||||
| PCIe | 2xGen2 (1 Leitung) | 2xGen2 (2 Leitungen) | 1xGen2 (1 Leitung) | unbekannt | 1xGen 2 (1 Leitung) | |||||
| USB | 2xUSB 3.0.+PHY | USB 3.0./2xUSB 3.0+PHY | USB 2.0./3.0 | 2xUSB 2.0. | 2xUSB 3.0.+PHY/2xUSB 2.0.+PHY | |||||
| SATA | - | SATA 3.0. | SATA 3.0. | unbekannt | - | |||||
| Display | HDMI 2.0a, 4 MIPI DSI | HDMI 2.0a, 2x4 MIPI DSI, 2xLVDS | HDMI 2.0. | HDMI 2.0. | HDMI 2.0., 2x4 MIPI DSI | |||||
| Kamera | - | 2x4 MIPI CSI | - | - | 2x4 MIPI CSI | |||||
| Security | HW-Verschlüsselung | |||||||||
| Leistungsaufnahme (typisch)* | 2 W | 2,25 W | 2,4 W | 2,9 W | 3,4 W | 4,9 W | 5,8 W | 2,4 W | 5,9 W | 5,9 W |
| Fertigung | TSMC 28 nm HPC | Samsung 28 nm FD-SOI | TSMC 28 nm HKMG | |||||||
| Preis (US-Dollar)* | 15 | 16 | 17,5 | 19,5 | 33 | 35 | 39 | 15 | 19 | 18 |
| Massenfertigung ab | Q4 2017 | 2 HJ 2018 | 2015 | 2016 | 2016 | |||||
Vergleich der NXP-Familie i.MX8 mit der Konkurrenz. )*: Schätzung DESIGN&ELEKTRONIK. Preisangaben beziehen sich auf Abnahme von 1000 Stück.
Die Applikationsprozessoren weisen 256 KB bis 1 MB L2-Cache auf, die Cortex-M4 hingegen sind mit 256 KB TCM (tightly coupled memory, eng angebundener Speicher) ausgestattet, um ein deterministisches Verhalten zu ermöglichen. Als GPU kommen beim i.MX8M die von Vivante entwickelten und seit dem Kauf der Firma durch VeriSilicon im Januar 2016 als GC7000 bezeichnete IP-Blöcke zum Einsatz, und zwar als schwächere NanoUltra oder als Lite. Beide können bis zu 1 GHz getaktet werden und dabei bis zu 16/32 GFlops/s Gleitkommaoperationen ausführen oder bis zu 130/267 Mio. Dreiecke/s aufbauen. Die in den i.MX8-Modellen eingesetzten Dual-GPUs des Typs Lite XSVX und XSVX verdoppeln bzw. vervierfachen diese Rechenleistung und besitzen zusätzliche Instruktionen, mit denen die Bildverarbeitung bis zu 800 % schneller wird.
Alle GPUs unterstützen dabei OpenGL/ES 3.1, Open CL 1.2. und das Vulkan-3D-API. Vulkan – zunächst Next Generation OpenGL oder glNext genannt – ist eine offene Computergrafik-Programmierschnittstelle, bei der mehr Rechenleistung durch hardwarenähere Programmierung als bei OpenGL erzielt wird. Dies entspricht einem geringeren Abstraktionsgrad der Schnittstelle. Auf diese Weise sollte der für OpenGL notwendige Treiberüberbau reduziert werden.
Video-Engine und Display-Controller des i.MX8M können ein 4K-UltraHD-Display oder zwei 1080p-HD-Displays mit jeweils 60 Frames/s treiben. Als Videoformate können MPEG2, MPEG4p2, MJPEG, HEVC/H.265, H.264, H.263, VP9, VP8, VC-1, RV9 und AVS mit teilweiser Hardware-Unterstützung dekodiert werden. Als Display-Schnittstellen stehen ein HDMI 2.0a-Port mit HDCP2.2. für das digitale Rechtemanagement sowie eine MIPI-DSI-Schnittstelle zur Verfügung. Die i.MX8 haben zusätzlich noch zwei LVDS-Schnittstellen, sodass sogar vier 1080p-HD-Displays getrieben werden können. Dazu kann noch externer 4K-Content z. B. von einem Handy oder Tablet verarbeitet werden.
Die beiden 4-Leitungs-MIPI-CSI-Kameraschnittstellen ermöglichen den Anschluss von bis zu sechs Kameras und damit eine 360-Grad-Vollabdeckung für maschinelles Sehen. Die i.MX8 weisen im Gegensatz zu den i.MX8M zusätzlich einen Audio-DSP von Tensilica mit 64 KB TCM auf.
Kein ECC auf DRAM-Schnittstelle
Gegebenenfalls kann man nachvollziehen, dass NXP aus ökonomischen Gründen beim preissensitiven i.MX8M auf fehlererkennende/fehlerkorrigierende Codes (ECC) auf der DRAM-Schnittstelle verzichtet hat. Diese fällt mit einem 16/32-bit-DRAM-Controller für LPDDR4, DDR3 und DDR3L vergleichsweise schmal aus und stellt bei maximal 3200 Speichertransfers/s eine maximale Datenrate von 12,8 GB/s bereit. Dieser Wert mag für die Cortex-A53-Cluster und die eingesetzten GPUs noch akzeptabel sein, für die Cortex-A72 und Dual-GPUs ist es zu wenig. Folgerichtig wird bei den i.MX8 ein 64-bit-Speichercontroller für DDR4 und LPDDR4 verwendet, der ebenfalls bei 3200 Speichertransfers/s den Datendurchsatz auf maximal 25,6 GB/s erhöht. Warum NXP bei den i.MX8, die ja auch auf sicherheitskritische Industrieanwendungen zielen, allerdings auf ECC bei den DRAMs verzichtet hat, erschließt sich uns nicht. Hier sollte u. E. überdacht werden, bei zukünftigen Produkten nachzulegen. Bei den L2-Caches und den TCMs der Cortex-M4 wurde ECC hingegen implementiert. Als weitere Speicher können NAND-Flash, SDIO, eMMC und XIP über eine Quad-SPI-Schnittstelle angebunden werden.
Verschlüsselung auf dem Bus
Alle Chips weisen eine Verschlüsselungs-Engine mit Zufallsgenerator und Echtzeituhr auf. Sicherer Speicher existiert nicht nur für die Ablage von Schlüsseln, sondern auch in Form von SRAM mit 32 KB. Sichere JTAG-Ports für das Debugging sollen im Feld Attacken mittels Tampering verhindern.
Die i.MX8 gehen jedoch weit über die i.MX8M hinaus. Sie haben In-Line-DRAM-Verschlüsselung, d. h. alle Daten und Code in externem RAM können verschlüsselt über den Bus geschickt werden. Dazu gibt es noch vier Pins, über die Tamper-Erkennungs-Sensoren angeschlossen werden können, die z. B. merken, wenn das Gehäuse aufgebohrt wird.
Neben den in der Tabelle dargestellten I/O-Schnittstellen sind beim i.MX noch eine Quad-SPI-Schnittstelle für den Anschluß von FPGAs und zwei 12-bit-A/D-Wandler mit jeweils 16 Kanälen zu erwähnen. Dazu gibt es bei allen Varianten die üblichen seriellen Schnittstellen UART, I2C, SPI und PMIC. Es gibt insgesamt drei Temperaturbereiche: –20 °C bis +85 °C, –40 °C bis +105 °C und ausschließlich für die i.MX8 –40 °C bis +125 °C.
Die Konkurrenz (fast) ausgestochen
Für i.MX8M und i.MX8 wurden insgesamt drei Wettbewerber ausgesucht, der Armada 1500 Ultra von Marvell mit ebenfalls vier bis 1,5 GHz getakteten Cortex-A53, der MT8693 sogar mit zwei 2,0 GHz getakteten Cortex-A72 und der RK3399 von Rockchip mit ebenfalls 2 Cortex-A72 mit einer maximalen Taktfrequenz von 2,0 GHz. Diese 3 Chips haben einen großen Vorteil: Sie sind bereits heute erhältlich. Wenn allerdings Time-to-Market nicht so kritisch ist, lohnt es sich in den meisten Fällen, auf die i.MX8 zu warten.
Bei Marvell/MediaTek fehlt es an den Kameraschnittstellen, ebenso am HDMI-2.0.a-Standard. Hier kann man dem RK3399 nichts vorwerfen, beides ist vorhanden. Die GPUs (VeriSilicon GC7000XS bei Marvell, Imagination PowerVR GX6250 bei MediaTek) schlagen die GC7000 Lite beim i.MX8M leicht, dafür sind die Dual-GC7000-SXVX des i.MX8 deutlich überlegen. Hier kann der RK3399 punkten, die ARM Mali-T860MP4 wird mit 600 MHz getaktet und kommt auf 81,6 GFLOPS/s. Selbst wenn die GC7000 Lite mit 800 MHz getaktet würde, käme die Dual-Core-Ausführung nur auf 64 GFLOPS/s.
Bei allen drei Konkurrenten fehlen die Cortex-M4-Coprozessoren. Marvells hat zwar einen VeriSilicon-DSP ZSP800 auf dem Chip, dieser ist aber dediziert nur für Audio-Anwendungen nutzbar. Wenn dort Bedarf besteht, kann der NXP-Kunde die i.MX8 mit dem Tensilica-DSP kaufen, der deutlich leistungsstärker als der immerhin schon zehn Jahre alte ZSP800 ist. Der Rockchip hat zwei Cortex-M0 an Bord, die zwar bei hohen Interruptlasten und deterministischen Anwendungen helfen, denen jedoch die DSP-Instruktionen des M4 abgehen. Marvell, Rockchip als auch MediaTek Verschlüsselungsblöcke an, die Datenverschlüsselung auf dem DRAM-Bus fehlt jedoch, ebenfalls mit Ausnahme von Rockchip die mögliche Anbindung von LPDDR4-Speicher, bei MediaTek und Rockchip vermisst man noch eine SATA-Schnittstelle z.B. für Daten-Logging und bei MediaTek ganz besonders eine Ethernet-Schnittstelle. Die CAN-Schnittstellen sprechen auch für den i.MX8, immerhin hat der Rockchip als einiziger Wettbewerber einen 10-bit-SAR-A/D-Wandler mit 6 Kanälen an Bord.
Was die i.MX8 ebenfalls attraktiv macht, ist die Skalierbarkeit. Wenn der MT8693 zu rechenstark ist, muss man auf den MT8685 ausweichen, der vier 32-bit-Cortex-A7 implementiert hat. Gleiches gilt für Rockchip. Und nur NXP bietet einen so weitreichenden Temperaturbereich an.
Fazit
Zusammengefasst kann es nach dem Stand von heute eine Empfehlung für den i.MX8 und mit Abstrichen für den RK3399 geben: Wenn man nicht schon heute mit seinem Design beginnen muss, ist der i.MX8 die erste Wahl gegenüber seinen in die Jahre gekommenen Mitbewerbern von Marvell und MediaTek. Die Frage ist natürlich, wird es auch von Marvell/MediaTek bis zur Massenfertigung der NXP-Chips neue SoCs geben, welche dem i.MX8 zusetzen können. Dies ist heute noch nicht abzusehen. Der RK3399 glänzt mit hoher Rechenleistung auf CPU- und vor allen Dingen GPU-Seite sowie zahlreichen I/O-Schnittstellen und DRAM-Optionen, leider fehlen jedoch SATA, CAN und eine Skalierbarkeit in der Familie, wie sie der i.MX8 bietet. Wenn man nicht mehr bis 2018 warten will oder kann, ist der RK3399 sicher Stand heute eine gute Alternative. Aber auch NXP kann ja noch mal nachlegen, z. B. mit ECC auf der DRAM-Schnittstelle. ■