Seite 1: Ein Blick in die Zukunft? SiFive HiFive Unmatched angeschaut

sifive-hifive-unmatchedSeit Jahren dominieren x86-Designs, doch nicht nur die Power-Nische von IBM oder die aufstrebende Arm-Konkurrenz machen der etablierten Mikroprozessor-Architektur Druck. In vielen Bereichen könnte die offene Befehlssatzarchitektur (ISA) RISC-V zukünftig eine immer wichtigere Rolle spielen. Auf Basis des SiFive HiFive Unmatched wollen wir uns einmal etwas genauer mit diesem Thema beschäftigen.

Anders als die meisten Befehlssatzarchitekturen ist RISC-V nicht patentiert und kann daher weitestgehend frei verwendet werden. Selbst die kommerzielle Nutzung ist möglich. Kosten fallen für Unternehmen erst an, wenn mit dem Einsatz von RISC-V geworben wird oder wenn es darum geht Ressourcen der RISC-V Foundation in Anspruch zu nehmen. Entsprechend wird es aktuell einigen aufstrebenden Unternehmen recht einfach gemacht, hier mit eigenen Designs und Anpassungen auf sich Aufmerksam zu machen. Gestartet wurde RISC-V im Jahr 2010 an der Universität von Kalifornien in Berkeley unter der Leitung von Krste Asanovic und David A. Patterson – beide waren damals schon an zahlreichen Hard- und Softwareentwicklungen beteiligt. RISC-V war von Beginn an für den praktischen und einfachen Einsatz in Rechnern ausgelegt – die Einstiegshürde sollte so gering wie möglich sein. Der Name soll hier Programm sein: RISC steht für reduced instruction set computer.

Möglichst geringe Kosten und eine effiziente Befehlssatzarchitektur waren die beiden Zielsetzungen in der Entwicklung von RISC-V und sind auch noch immer die Stärken des Designs. Entsprechend haben einige Unternehmen schon länger RISC-V-Designs im Einsatz.

NVIDIA nutzt einen RV64IM-Core, der in der GPU für bestimmte Sicherheitsfunktionen verantwortlich ist. Western Digital nutzt verschiedene Kerne in seinen SSD-Controllern. Apple sucht aktuell Experten in diesem Bereich und wird RISC-V-Kerne vermutlich in zukünftigen A- und M-SoCs zum Einsatz bringen. Intel hat angekündigt ein Design von SiFive, einem Entwickler für RISC-V-Kerne, einsetzen zu wollen. OpenFive, eine Tochter von SiFive stellte bereits einen Interconnect-PHY für zukünftige Chiplet-Designs vor und auch ein HBM3-Subsystem steht bereit. Bei Google hat man mit dem OpenTitan einen Sicherheitschip entwickelt, der auf einen RISC-V-Mikrocontroller setzt. Bisher kamen hier Arm-Kerne zum Einsatz.

Das Interesse an RISC-V scheint also groß zu sein und es gibt auch schon konkrete Projekte, die umgesetzt wurden. RISC-V ist bereits ein fester Bestandteil unseres Alltags, wenngleich wir dies nicht so präsent präsentiert bekommen, wie dies bei x86 und Arm der Fall ist.

Das breite Spektrum von RISC-V zeigt sich auch darin, dass die European Processor Initiative (EPI) den Einsatz von Beschleunigern auf Basis von RISC-V plant und die ersten Samples auch bereits erhalten hat. Auch in China arbeiten zahlreiche Unternehmen an RISC-V-Kernen – unter anderem Huami, HiSilicon, Alibaba und Allwinner.

Während größere Unternehmen also bereits erste Schritte in die RISC-V-Welt gemacht haben, soll der Einstieg vor allem für kleinere Unternehmen einfacher gestaltet werden. Dabei möchte auch SiFive helfen und bietet mit dem HiFive Unmatched eine Entwickler-Plattform an.

Das SiFive HiFive Unmatched

Das HiFive Unmatched soll es Entwicklern einfach machen, den Einstieg in die RISC-V-Welt zu finden. Standard-Anschlüsse, Standard-Formfaktor und ein bereits bestehendes Software-Ökosystem sind die wichtigsten Faktoren. Natürlich spielen auch die Kosten eine Rolle. Das HiFive Unmatched kostet bei einem der exklusiven Vertriebspartner Mouser 572,57 Euro. Vergleichbare Entwicklungsplattformen sind entweder gar nicht erhältlich oder kosten bereits einen mittleren vierstelligen Preis.

Mit 170 x 170 mm kommt das SiFive HiFive Unmatched im Mini-ITX-Format daher. Der Einsatz von M.2, PCI-Express und einer Standard-ATX-Stromversorgung unterstreichen noch einmal die niedrigen Hürden für den Einsatz dieser Plattform. Im Lieferumfang befindet sich zudem eine I/O-Blende, Abstandshalter für die Montage, Schrauben für die M.2-Anschlüsse und eine microSD-Karte mit einem vorinstallierten Linux.

Alles weitere was zum Betrieb des SiFive HiFive Unmatched benötigt wird, ist ein Netzteil, welches eine Ausgangsleistung von 150 W liefert.

Unter dem kleinen Lüfter mit darunter befindlichem blauen Rahmen sitzt die zentrale Komponente des Unmatched: Der SiFive Freedom U740 SoC. Dieser besteht aus ingesamt fünf RISV-V-Kernen. Dabei handelt es sich wiederum um vier SiFive Essential U74 und einen SiFive Essential S7. Das U74MC-Design (Multi-Core-Design) wurde stetig weiterentwickelt und basiert inzwischen auf dem SiFive 21G2 Release. Die 64 Bit Quad-Core-Kerne (U74 / RV64GC) bieten unter anderem 32 kB an Instruction und ebenfalls 32 kB an Data Cache (L1-Cache). Der etwas abgespeckte S7 (RV64IMAC) muss mit 16 kB Instruction Cache und 8 kB DTIM (Data Tightly Integrated Memory) auskommen. Allen fünf Kernen stehen 2 MB an kohärentem L2-Cache zur Verfügung. Der Takt liegt bei maximal 1,2 GHz.

Unter dem zweiten Kühler, der allerdings passiv ausgeführt ist, befindet sich ein PCI-Express-Switch von ASMedia (ASM2824). Der das PCIe-x8-Interface des U740 SoC nimmt und daraus unter anderem den PCI-Express-Steckplatz, die M.2-Anschlüsse und eine weitere PCIe-USB-Bridge bedient.

Der PCI-Express-x16-Steckplatz ist über den eben erwähnten PCIe-Switch-Chip mit acht Lanes angebunden. SiFive verwendet hier PCI-Express 3.0. Über dem Steckplatz sind noch zwei M.2-Steckplätze zu erkennen, die über vier bzw. eine Lane angebunden sind. Da vom SoC nur acht Lanes kommen, müssen sich die Anschlüsse die zur Verfügung stehenden Lanes natürlich teilen.

Bei einem der M.2-Steckplätze handelt es sich um einen M.2-2280, der SSDs aufnehmen soll. Der zweite (E-Key) eignet sich für WLAN/Bluetooth-Module.

Der Arbeitsspeicher ist fest auf dem Board verlötet. Die Kapazität liegt bei 16 GB und es handelt sich um DDR4-1866. Ebenfalls onboard befindet sich ein 32 MB großer Flashspeicher. Neben der Möglichkeit, ein Betriebssystem auf einer microSD-Speicherkarte zu installieren, dürften die M.2-Steckplätze aber die präferierte Lösung für die meisten Entwickler sein.

Die Stromversorgung erfolgt über einen 24-Pin-ATX-Anschluss, der Start des Boards kann über einen Taster geschehen. Auch ein Reset ist hier möglich und für ein Entwickler-Board typisch gibt es natürlich auch JTAG-Anschlüsse sowie QSPI-, GPIO- und Power-Measurement-Pins.

An weiteren I/O-Anschlüssen zur Verfügung stehen der bereits erwähnte microSD-Kartenleser, 1x micro-USB 2.0, 1x Gigabit-Ethernet und 4x USB 3.2 Gen 1.

Ein Linux auf dem Unmatched und Messwerte

Nachdem wir uns nun die Hardware angeschaut haben, haben wir auch erste Gehversuche mit der Software gemacht. Per serieller Konsole kann SiFive HiFive Unmatched mit einem Host verbunden werden. Dabei lassen sich auch die Boot-Informationen überwachen, bevor das Betriebssystem in den Start geht. SiFive legt eine microSD-Karte bei, auf der sich ein FUSDK befindet.

Wir haben aber auch ein Ubuntu installiert, was in wenigen Schritten erledigt ist und dann von der NVMe-SSD ausgeführt wird.

Per serieller Konsole kann der Boot-Vorgang des SiFive HiFive Unmatched überwacht werden. Für die Installation des Ubuntu wird dieses zunächst auf einer SD-Karte installiert, von dort gebootet und dann auf das NVMe-Laufwerk kopiert. Danach läuft es natürlich deutlich schneller von dieser. Eine ausführliche Anleitung ist bei Canonical zu finden.

Was die Geschwindigkeit betrifft, bewegt sich das HiFive Unmatched auf Niveau eines Raspberry Pi. Repos sind noch ein kleines Problem, aber als Ziel einer Entwicklungsumgebung lässt sich das Board problemlos nutzen und ermöglicht es damit die ersten Schritte auf RISC-V-Hardware zu machen.

Über die Messpunkte auf dem Board haben wir versucht die Leistungsaufnahme des Prozessors bzw. des Boards zu ermitteln. Über den normalen Betrieb des SoCs haben wir hier eine Leistungsaufnahme von 5-6 W gemessen. Das gesamte Board kommt auf 25 bis 30 W.

Einige wenige Benchmarks im Vergleich zu einem Raspberry Pi 4 B mit 8 GB haben wir auch noch anzubieten. Darauf kommt ein Quad-Core-Prozessoren mit vier Arm-Cortex-A72-Kernen zum Einsatz. Diese kommen auf einen Takt von 1,5 GHz im Vergleich zu den 1,2 GHz des SiFive Freedom U740 SoC.

Stress-NG

CPU Stress

Operationen pro Sekunde
Mehr ist besser

Coremark

Coremark 666

Iterationen pro Sekunde
Mehr ist besser

Stress-NG

CPU Stress

Operationen pro Sekunde
Mehr ist besser

Die reinen CPU-Benchmarks sind nicht besonders berauschend. Beim SiFive HiFive Unmatched handelt es sich aber um eine reine Entwicklungs-Plattform, die natürlich ein gewisses Leistungsniveau erreichen muss, ihren Zweck in dieser Form aber allemal erfüllt.

Es ist aber auch möglich eine Grafikkarte auf dem Board einzusetzen. Empfohlen wird eine Karte der Radeon-RX-500-Serie. Auch dies haben wir ausprobiert und konnten damit sogar eine Runde des originalen DOOM und Quake Arena spielen. Die Leistung der Grafik ist hier natürlich eher durch die Grafikkare limitiert und der Compile-Vorgang des Source Codes war die eigentliche Herausforderung für das Unmatched.

Aber Leistungsziele sollen mit dem Board wie gesagt ohnehin nicht erreicht werden. Uns ging es hier vielmehr darum aufzuzeigen, dass eine RISC-V-Platform durchaus in der Lage ist, gewisse Standardanwendungen auszuführen.