Erste Mikrocontroller von Intel Quark für das IoT

Mit seinen ersten drei Mikrocontrollern springt Chip-Riese Intel ins Haifischbecken IoT. Dort warten schon Dutzende ARM-basierte Wettbewerber. Unsere Analyse zeigt: Wird x86-Kompatibilität nicht unbedingt benötigt, brauchen die Platzhirsche ST, NXP & Co. keine Angst zu haben.

Mit den ersten drei Quark-Derivaten D1000, D2000 und Quark SE will Intel nicht nur IoT-Anwendungen, sondern auch Industriesteuerungen, Medizingeräte und smarte Sensoren bestücken. Die Eigenschaften der drei Familien zeigt Tabelle 1.

  Quark D1000Quark D2000Quark SE
Taktfrequenz CPU (MHz)  32 (33 mit externem Quarz)  
Cache ( Befehle/Daten in KB)  8/8 
DSP/FPU  KeineARC EM4
Flash-Speicher in KB  36/4 Code/Daten192/192 CPU/EM4
SRAM (KB)  880
A/D-Umsetzer SARKanäle 19 
 Auflösung (bit) 12/10/8/6 
 MSPS2.4/2.8/3.3/ 4.1 2.4/2.8/3.3
Komparatoren  19 
Timer  3 
Watchdog-Timer  1 
Echtzeithur  1 
I²C  12/2 CPU/EM4
I²S  Keine2
PWM Keine2Keine
I/Os  2 UART, 2 SPI, GPIO 
USB  Keine1.1 Device
Gehäuse  6 mm QFN-4010 mm BGA-144
Listenpreis (1000 Stück) 2,60 Dollar3,00 DollarUnbekannt
Massenproduktion Q4 2015Q1 2016Q2 2016

 

Tabelle 1: Die drei Quark-MCUs im Vergleich Quelle: Intel

Die SE-Variante enthält zusätzlich einen DSP-Sensor-Hub und eine »neuronale« Engine für einen Musterabgleich; dazu später mehr.Als erstes fällt ins Auge: Anders als bei vielen MCUs von STMicroelectronics, NXP, TI, SiLabs u. a. fehlt auf dem Chip die drahtlose Konnektivität. Quark benötigt daher einen externen Transceiver, Intel jedoch verfügt nicht über eine eigene ZigBee- und Thread-Technologie. Und: Die maximale Taktfrequenz der CPU beträgt 32 MHz (33 MHz mit externem Quarz), was mit Blick auf die Rechenleistung Fragezeichen aufwirft.

Intel hat den x86-Befehlssatz so weit wie möglich abgebildet. Weggelassen wurden für die Zielanwendungen unnötige Architekturerweiterungen, welche die geringe Größe des neuen Prozessors und seine geringe Leistungsaufnahme gefährden würden. Bei diesem 32-bit-x86-Core übertrumpft Einfachheit die Komplexität neuester Prozessoren aus Santa Clara, greift Intel doch tatsächlich auf die fünfstufige Pipeline des 80486 zurück. Zur Erinnerung: Die 486er-Generation wurde 1989 veröffentlicht und dominierte den PC-Markt von ungefähr 1992 bis 1995 (Bild 1). Der Pentium-kompatible Befehlssatz ohne MMX-, SSE- und 64-bit-Erweiterungen belässt die Verlustleistung der neuen Mikrocontroller auf Minimum.

Bei jedem Taktzyklus holt die CPU vier Bytes aus dem Befehlscache. Anders als beim Standard-Cache des 80486 hat Quark jedoch separate Caches für Befehle und Daten. Der Befehlscache ist 8 KB groß. Eine Sprungvorhersage hat die CPU nicht, sie decodiert einfach Befehle in der Programmfolge bis eine Verzweigung erreicht wird; aufgrund der somit kurzen Pipeline beträgt die Latenzzeit für eine Verzweigung nur zwei Taktzyklen.

Im Gegensatz zu modernen x86-CPUs führt Quark x86-Befehle direkt ohne Übersetzung in Micro-Ops aus. Daher benötigen komplexe x86-Befehle, wie diejenigen, die mit Daten im Speicher operieren, mehrere Taktzyklen in der Ausführungsstufe. Die Pipeline wird dann so lange blockiert, bis solche Befehle vollständig abgearbeitet sind. Da die Anweisungen immer in der Original-Reihenfolge ausgeführt werden, schreibt die CPU nach Abschluss eines Befehls die Ergebnisse einfach in den Registersatz zurück, ein Neuordnungspuffer ist logischerweise nicht erforderlich.

Systemmanagementmodus

Obwohl Quark auf den 80486 zurückzuführen ist, enthält die CPU einige Erweiterungen, die Intel dem ursprünglichen Pentium-Design (P54C) hinzugefügt hat, z. B. den CPUID-Befehl und den Systemmanagementmodus (SMM). Der SMM ist einer der wesentlichen Betriebsmodi neben Real-Mode, Protected-Mode und virtuellem 8086-Mode.

Aktiviert wird der SMM sobald ein externer nicht-maskierbarer Systemmanagementinterrupt (SMI) erkannt wird. Dies öffnet einen separaten und geschützten Adressraum (Systemmanagement-RAM, SMRAM), der normalerweise batteriegepuffert ist. Dort wird der CPU-Status gespeichert. Die CPU schaltet in einen Real-Mode mit erweiterten Limits und arbeitet im SMRAM weiter (trotzdem kann auf den gesamten physischen Speicher zugegriffen werden), bis sie auf die Instruktion RSM (Resume from System Management Mode) stößt. Daraufhin wird der Status der CPU wiederhergestellt, der SMRAM-Adressbereich geschlossen und die CPU führt die Ausführung der Befehle genau an der Stelle fort, wo sie durch den SMM unterbrochen wurde.

Der SMM ist für die Hardware-Kontrolle, das Energiemanagement und herstellerspezifische Anwendungen gedacht. Die im SMM ausgeführte Firmware unterbricht das Betriebssystem und die laufenden Anwendungen in transparenter Art und Weise. Interrupts sind im SMM gesperrt, sodass erst nach dem Austritt daraus eine Bearbeitung erfolgen kann. Insbesondere kann eine verschachtelte Ausführung des SMM nicht passieren, da das Auftreten eines SMIs während der Ausführung im SMM nicht möglich ist.

Quark enthält keine Silizium-fressende Erweiterungen wie MMX, SSE und dessen SIMD-Nachfolger. Quark ist ein reines 32-bit-Design mit keinem der neuen Register und Funktionen, die in neueren 64-bit-x86-Architekturen enthalten sind. Aus Kostengründen kann Intel bei Quark-MCUs nicht von seinen Top-Fertigungsprozessen profitieren. Vermutlich wird der Chip mit 90 nm oder 130 nm Strukturbreite in einer Foundry gefertigt. Im Ergebnis kommt die CPU auf 1,2 DMIPS/MHz, während ARMs Cortex-M4 zwischen 1,27 und 1,95 DMIPS/MHz liegt. Quark dürfte damit hinsichtlich der Rechenleistung pro Taktzyklus (IPC) eher auf dem Niveau eines ARM Cortex-M0+ liegen. Nimmt man EEMBCs Benchmark CoreMark, für den Intel keine offiziellen Zahlen veröffentlicht hat, soll Quark bei rund 2,3 CM/MHz liegen – während der Cortex-M4 auf 3,4 CM/MHz kommt.