Juni 2019

You are browsing the site archives by month.

In gespannter Erwartung: Raspberry Pi 4 ante portas

Update 2019-06-30: Ethernet-Anbindung korrigiert, USB3-Anbindung präzisiert, Cachegrößen nachgepflegt, USB-Strombegrenzung aus dem Datenblatt erwähnt, Dual-Head-Unklarheit bezüglich 4K@60Hz erwähnt.

Die Raspberry Pi Foundation hat mal wieder alle überrascht (und vorher auch reichlich Nebelkerzen geworfen, im Einklang mit Broadcom): der brandneue Raspberry Pi 4 ist ab sofort verfügbar, und er basiert weiterhin auf einem Broadcom-Chip. Nach dem RPi 3B+ wurde ja reichlich spekuliert, dass die Broadcom-Reihe nun ausgereizt sei und man möglicherweise sogar auf einen anderen SoC-Hersteller wechseln müsse. Pustekuchen.

Was steckt drin, vor allem im Unterschied zum 3B+? Die Kurzfassung: ein BCM2711 (Quad-Cortex A72@1,5 GHz), Gigabit Ethernet über einen schnellen internen Bus angebunden, USB3.0 über PCIe, Dual-Head mit je 4K@60Hz-Unterstützung (einzelne Quellen sprechen allerdings auch davon, dass im Dual-Head-Betrieb nur je 4K@30Hz möglich wären, eventuell ist das aber nur eine vorübergehende Treiberschwäche), und Modelvarianten mit 1, 2 oder 4 GiB RAM das zudem als LPDDR4-2400 ausgeführt ist. Und da man wegen der 2x microHDMI für Dual-Head-Unterstützung sowieso nicht mehr kompatibel zu den alten Gehäusen sein konnte, hat man die Stromversorgung nun auf USB Typ C umgestellt – endlich nicht mehr peilen, wie rum der microUSB-Stecker rein muss…warum man auch noch die Position von Ethernet und USB getauscht hat, erschließt sich hingegen nicht direkt, eventuell wegen der Positionierung der PoE-Pins.

Also: neues Netzteil (das offizielle Netzteil leistet 15W – durch 2x USB3 statt den bisherigen USB2 liegt allein der Stromverbrauch bei voller Auslastung durch angeschlossene USB-Geräte ja schon 800mA höher, weil USB3 900mA zusichert, gegenüber 500mA bei USB2 – irritierenderweise redet das vorläufige Datenblatt von einem Limit in Summe über alle 4 Buchsen von 1,1A – das ist so niedrig, dass ich einen Druckfehler vermute), neues Gehäuse, neue HDMI-Kabel sind angesagt. Die microHDMI-Buchsen liegen relativ nah beieinander, von einer Adapterlösung microHDMI-auf-Standard-HDMI würde ich nach erster Betrachtung eher abraten, das könnte platztechnisch eng werden.

Was kann man über die Performance sagen? Eigentlich nur Gutes. Obwohl die CPU taktmäßig nur einen kleinen Sprung gemacht hat, gilt der Cortex-A72 pro MHz als deutlich leistungsfähiger gegenüber dem vorher verwendeten Cortex-A53 im Pi 3. Grob sagt man dem Cortex-A53 etwa 2,3 DMIPS/MHz nach, dem Cortex-A72 hingegen 4,6 DMIPS/MHz. Erreicht wird das durch die üblichen Maßnahmen, die die x86-Welt seit Jahren vormacht: tiefere Pipeline, bessere branch prediction, ausgefuchsteres Out-Of-Order-Execution-Handling, mehr Parallelisierung beim instruction decoding. Und weil gleichzeitig ein Prozess-Shrink bei der Fertigung mit einfloss (28nm statt 40nm), soll der Stromverbrauch sich weiterhin in einem ähnlichen Rahmen wie bisher bewegen. Erste Messungen zeigen ähnlichen Stromverbrauch bei Volllast und etwas Höheren in Ruhe – welcher Anteil da auf die CPU entfällt, was auf den neuen Videocore VI und was auf den Rest vom Board – keiner weiß es im Moment.

Zu den CPU-Caches gibt es ebenfalls positive Details zu vermelden. Der Cortex-A72 hat 48 KiB instruction cache und 32 KiB data cache zu bieten auf der L1-Ebene, und 1 MiB L2-Cache – das ist deutlich mehr als der Cortex-A53 des RPi 3 B(+) zu bieten hatte (16 KiB I+16 KiB D-L1, 512 KiB L2). Die ersten Linux-Benchmarks zeigen einen Nettogewinn von 60-80%, was darauf hinweist, dass sowohl das schnellere RAM als auch die größeren Caches ausreichen, um die CPU-internen Fortschritte nicht über Gebühr auszubremsen.

Dadurch, dass nun das Gigabit-Ethernet endlich vom USB2 weg ist und an einen eigenen High-Speed-Bus direkt am SoC angedockt wurde, steigert sich der Netzwerkdurchsatz laut ersten Messungen nahe an das theoretische Maximum von 1 Gbit/s, während vorher eher so 300 MBit/s angesagt waren. Und vor allem kollidiert das nicht mehr mit dem USB-Massenspeicher – bisherige Pis hatten alles an einem einzigen USB-Kanal.

USB3 ist für heutige Massenspeicher wie schnelle SSDs natürlich auch ein gewaltiger Fortschritt, von theoretisch 480 MBit/s auf 4 GBit/s Durchsatz. Durch die Anbindung sowohl des USB2-Hosts und des USB3-Hosts über PCIe ist hier eine signifikante Performanceverbesserung drin. Mal sehen, was davon in der Praxis übrigbleibt, bei Konkurrenz-ARM-Boards gab es da öfter mal böse Überraschungen.

Das neue RAM-Maximum von 4 GiB ist vermutlich aus RISC OS-Sicht die unwichtigste Verbesserung – schon das eine GiB ist doch die meiste Zeit leer. Aber wer weiß, wenn es mal eine aktuelle Browser-Portierung gibt…ob RISC OS überhaupt so ohne weiteres mit den 4 GiB klarkommen wird, ist momentan noch unklar – bisher lag das Maximum bei 2 GiB. Der Preisaufschlag für 4 GiB statt 1 GiB liegt z.B. bei Reichelt Elektronik bei nicht ganz zu vernachlässigenden 21€.

Für RISC OS ebenfalls nicht so interessant, aber bei Einsatz als Mediacenter nützlich: die eingebauten Hardware-Decoder im neuen Videocore VI können nun H.265 in 4K@60Hz decodieren.

Und der Vollständigkeit halber: Bluetooth ist jetzt bei 5.0 angelangt gegenüber 4.2 beim Vorgängermodell. WLAN wie bisher – 802.11ac in der 2,4- oder 5-GHz-Variante.

Ich bin gespannt, wie die Praxis-Benchmarks unter der besonderen RISC OS-Situation aussehen werden. Es steht zu erwarten, dass die bisherigen Performancekönige Titanium und IGEPv5 zumindest CPU-technisch die Krone abgeben müssen, da deren Cortex-A15 typischerweise mit 3,5 DMIPS/MHz eingeordnet wird. Ebenso spannend, an welchen Stellen RISC OS das Gebotene wirklich ausnutzen kann – der TCPIP-Stack ist nicht bekannt für Top-Performance, mal sehen was da vom echten Gigabit übrig bleibt. USB3-Unterstützung gibt es im USB-Stack bisher noch gar nicht – umso wichtiger, dass das USB-Stack-Update-Bounty mal in die Gänge kommt. Bei Bluetooth und WLAN bleibt die Situation so traurig wie zuvor. Ob der Cortex-A72 ein paar Überraschungen bereithält, wie es beim Cortex-A53 bei einigen ARMv8-“undefined behaviour”-Dingen passiert ist, ist noch unbekannt.

Nicht unwichtig für uns RISC OSler: die Foundation sichert zu, dass der RPi 4 bis Januar 2026 “in production” bleiben wird. Wenn das mal keine guten Zukunftsaussichten sind. Denn es wird zunehmend unwahrscheinlich, dass es bei 32bit ARM-Geräten in der Zukunft noch große Sprünge geben wird, weil der Rest der Welt mit Riesenschritten zu AArch64 wechselt. Was aus RISC OS-Sicht im Prinzip einem Wechsel auf x86 oder AMD64 entspricht.

Außerhalb der RISC OS-Welt ist der RPi nun wieder ein ernstzunehmender Kandidat für allerhand Anwendungsfälle, die zuletzt eher zur Konkurrenz abgewandert sind – vom NAS übers Mediacenter bis zum Desktop-Ersatz ist der RPi 4 nun für alle Anwendungsfälle gerüstet. Denn entscheidende Performanceschwächen wurden allesamt behoben. Es bleibt spannend.

30 Jahre Acorn A3000

Vor 30 Jahren (genauer: im Mai 1989) kündigte Acorn die Verfügbarkeit des A3000 an. Im Prinzip ein abgespeckter Archimedes A310 im damals gängigen Tastaturgehäuse (auch One-Box-Design genannt) ähnlich der zeitgenössischen Homecomputer-Konkurrenz wie dem Amiga 500 oder dem Atari ST 520/1040. Gegenüber der doch recht preisintensiven Archimedes-Geräte war der angekündigte Preis von 649 britischen Pfund geradezu sensationell niedrig – gegenüber einem Amiga 500 allerdings immer noch ziemlich hoch. In Deutschland wurden angesichts des damaligen Pfundkurses nahezu unvermeidliche 2199 DM veranschlagt.

Aber es war ja kein schäbiger 16-bittiger 68000er, sondern ein “echter” Archimedes – ARM2, 8 MHz, 1 MiB RAM. Ein “reinrassiger 32bit-RISC-Computer”, der, wie sich später herausstellte, gar nicht so reinrassig war, sondern einen sparsamen 26bittigen Program Counter sein Eigen nannte, um gleich noch 6 Flag-Bits darin unterzubringen, vermutlich um die typischerweise kritischen Interrupt-Latenzzeiten möglichst niedrig zu halten. Später fiel das Acorn (oder genauer deren Nachfolgern und den treuen Usern) auf die Füße, weil es größere Handstände beim Sprung von 26bit auf 32bit erforderte und – nach dem StrongARM-Update – die zweite große RISC OS-Software-Krise auslöste, und zum RISC OS-Split in die 26bit-Welt (RISC OS 4 und SIX) und die 32bit-Welt (RISC OS 5) führte. Aber ich schweife ab.

Wie schaffte Acorn damals diesen Kampfpreis? Durch allerhand Entfernen überflüssiger bis als weniger wichtig betrachteter Features. Beispielsweise wurde die Erweiterungsfähigkeit des A3000 gegenüber A3xx/A4xx stark eingeschränkt – statt 4 Podules konnte nur noch eines betrieben werden, und zudem stand dort nur 5V statt wie zuvor auch +/-12V zur Verfügung. Überhaupt war das ganze Design eher stromsparend ausgelegt, das Netzteil lieferte sparsame 22W. Die Floppy war 5V only, man sparte sogar am Anschlusskabel: statt den vollen 34 Polen hatte das Flachbandkabel nur 32 davon. Der serielle Port war zwar als Buchse herausgeführt, aber die beiden entscheidenden Chips (65C51 und LT1133) glänzten durch Abwesenheit und mussten ggf. nachgerüstet werden. Um auch intern Erweiterungskarten zu unterstützen, erfand Acorn kurzerhand eine 8-bit-Version der eigentlich 16-bittigen Podules und nannte sie “Mini-Podules”. Nominell konnte man die 1 MiB RAM on board nur mit einem zusätzlichen MiB auf 2 MiB erweitern. Alle Chips bis auf die genannten für die serielle Schnittstelle, die vier ROMs und der Controller für die Tastatur (ein 8051 – Intel inside!) waren eingelötet, was spätere Upgrades z.B. des ARM2 auf den ARM3 doch sehr erschwerte, zumal im Tastaturgehäuse recht wenig Bauhöhe zur Verfügung stand. Nur der Slot für die Econet-Erweiterung – der war natürlich heilig und auch im A3000 zu finden.

Serienmäßig wurde der A3000 mit dem damals fast brandneuen RISC OS 2 ausgeliefert – nach dem anfänglichen Arthur-Desaster der originalen Archimedes-Reihe ein würdiges Betriebssystem, stabil, leistungsfähig, multitaskingfähig, schnell. Erst 1992 wurde es durch RISC OS 3.10 abgelöst, mit dem der A3000 selbstverständlich aufgerüstet werden konnte.

Anno 1990 gab es dann – ungewöhnlich für Acorn in der nach-8bitter-Zeit – eine vollständig eingedeutschte Version des A3000. Deutsche Tastatur (ohne die roten Funktionstasten, die für die damaligen Acorns beinahe identitätsstiftend waren und denen noch heute gehuldigt wird http://shop.elesar.co.uk/index.php?route=product/product&path=18_63&product_id=61), deutsche Handbücher, und einige der vorwiegend englischen Softwarehäuser brachten deutsche Versionen ihrer Programme heraus. Tatsächlich war das für mich – angesichts meiner heutigen Vorliebe für die englische Sprache in allen Computerdingen überraschend – der Trigger für den Einstieg in die Acorn-Welt. Der deutsche Distributor für Süddeutschland, Anagram Systems aus München, bot einen Schülerrabatt von 200 DM an, und so fand ein A3000 in der Grundausstattung für 1999 DM den Weg in mein Computerzimmer und gesellte sich zum guten alten Schneider CPC (übrigens eine interessante Parallele – der CPC464 hatte in der englischen Variante auch eine sehr bunte Tastatur, die von Schneider für den deutschen Markt durch etwas weniger Auffälliges ersetzt wurde). Wie damals üblich kostete ein vernünftiger Monitor dazu praktisch ähnlich viel – NEC MultiSync 3D, 1333 DM. Damit war mein Budget restlos ausgeschöpft.

Weil bei 1 MiB RAM und nur mit einer 800 KiB-Floppy die Dinge oft etwas länger dauerten, konnte ich ausdauernd in den überraschend gut übersetzten deutschen Handbücher schmökern, insbesondere das BBC-BASIC-Handbuch war wirklich erstklassig. Zwei interessante Fehler in der Übersetzung sind mir im Gedächtnis geblieben: im “Welcome Guide” ging das Ohm-Symbol verloren, und so stand neben dem 3,5mm-Kopfhörer-Anschluss der erklärende Text “Anschluss für 32 persönliche Kopfhörer”. Und im “User Guide” stand als Erklärung für das CLI-Kommando “*spool on”: “Schaltet die automatische Spulfunktion ein”. Nicht hilfreich.

Der Spieltrieb wurde mit dem unvermeidlichen Zarch befriedigt, aber auch E-Type und Conqueror waren meine Favoriten. Ebenso Interdictor 2 und später das grandiose Spheres of Chaos. Nachdem ich mir dann die deutsche Version von Pipedream 3 von Colton Software gegönnt hatte (ein sehr intelligentes Produkt, das äußerst elegant eine Textverarbeitung mit einer Tabellenkalkulation integrierte), wurde klar, dass z.B. bei intensiver Nutzung der Outline-Fonts man mit 1 MiB RAM und Floppy nicht glücklich wurde. Und so kamen als Upgrades relativ schnell 4 MiB RAM, SCSI-Mini-Podule und 105MB-Quantum-SCSI-Platte ins Haus nebst externem SCSI-Gehäuse, das später auch noch einen leisen Canon-Lüfter verpasst bekam – echte Qualität, funktioniert heute noch. Damit konnte man arbeiten.

Während die A4xx-Modelle (A410/1, A420/1, A440/1) der Archimedes-Reihe z.B. dank der möglichen Coprozessor-Schnittstelle im Full-Features-Podule, der Unterstützung für Full-Width-Podules, MFM- bzw. ST506-Festplattencontroller on board, 4 Podule-Slots, gesockelter ARM-CPU und offizielle Erweiterbarkeit bis 4 MiB RAM sowie dem High-Resolution-Monochrom-Monitor-Modus noch ausreichend Alleinstellungsmerkmale hatte, sah Acorn für den A3xx keine Zukunft mehr – mit Erscheinen des A3000 wurde die Produktion nach knapp 2 Jahren eingestellt. Der A4xx wurde dann auch erst Ende 1991 durch den A5000 würdig ersetzt – der bereits Mitte 1990 erschienene A540 (der letzte “echte” Archimedes), in dem der ARM3 debüttierte, war eher dem Profi-Bereich vorbehalten und war über doppelt so teuer, auch dank SCSI-Podule serienmäßig und damals unvorstellbar großer 100 MiB-Platte.

Der A3000 bekam dann schließlich im September 1992 gleich zwei Nachfolger – der A3010 zielte mit seinen zwei eingebauten Joystickports nebst HF-Modulator für den direkten Fernseher-Anschluss auf den Heimcomputermarkt, der A3020 war eher für den Schulmarkt gedacht. Es war gleichzeitig die Geburtsstunde des “SoC”: der ARM250 vereinte in einem Chip die CPU (ARM2), den Memory-Controller (MEMC), den Video-Chip (VIDC) und den IO-Controller (IOC). Aber wer es darauf anlegte, konnte den A3000 durchaus entsprechend aufrüsten, um weiter mitzuhalten: das Sockeln des ARM2 ermöglichte die Verwendung des ARM3 bis zur 36 MHz-Variante, der VIDC-Enhancer erlaubte das Hochschrauben des Pixeltakts auf 36 MHz für 800×600 Bildpunkte bei 16 Farben und 56 HZ (SVGA!), mit der Möglichkeit eines externen echten Podules war die Erweiterbarkeit sogar besser als beim A3010 und A3020 (beispielsweise mit einem schnellen SCSI-Podule), und die Econet-Schnittstelle wurde für allerhand Erweiterungen vom Sound-Sampler über ein SCSI-Interface bis zum Joystick-Interface zweckentfremdet. Wer löten konnte, konnte gar die DD-Floppy auf HD aufrüsten – WD1772 gegen ein höher taktbares Exemplar tauschen, Taktfrequenz verdoppeln, ein wenig Software-Magie, und natürlich eine HD-fähige Floppy – fertig. Dazu gab es für mehr CPU-Bumms das Turbo-Upgrade von Ingmar Weigel http://legacy.huber-net.de/TurboA3000.zip, das es erlaubte, den ARM2 nebst dem RAM-Bus auf bis zu 16 MHz hochzuschrauben, sofern es RAM und auch die ROMs vertrugen. 12 MHz ging aber immer, 13,3 MHz fast immer. Das war nicht nur für die reine CPU- und RAM-Geschwindigkeit gut, sondern erlaubte auch das erheblich bequemere Arbeiten bei hohen Auflösungen oder Farbtiefen, da die CPU nicht ständig durch das Video-DMA ausgebremst wurde. Anno 1992 kam mein erster Laserdrucker dazu, zusammen mit dem CC TurboDriver und CCs Impression Style DTP-Software konnte man damit richtig seriöse Dokumente erstellen.

Der mir bekannte Maximalausbau des A3000 bestand aus einem auf 40 MHz übertakteten ARM3, VIDC-Enhancer, Turbo-A3000-Upgrade mit 16 MHz, HD-Floppy-Umbau, Gamer’s Upgrade (ein 4-Joystick-Port-Ausbau, der sich an den I2C-Bus ankoppelte und damit keine der wertvollen “offiziellen” Schnittstellen belegte), Econet, 4-Podule-Backplane mit nachgelöteter Decoder-Logik für den gleichzeitigen Betrieb aller Podules, gesockeltem MEMC und 8 MiB-RAM-Upgrade. Dieser Über-A3000 wohnte dann allerdings in einem handgedengelten Tower-Gehäuse, denn im Tastaturgehäuse war schlicht nicht ausreichend Platz für all diese Upgrades. Und die Hauptplatine war weit gereist: der Besitzer wohnte in Holland, er hatte mir damals das Board geschickt für den Umbau für das Turbo-Upgrade, dann ging es nach England zu Simtec für das Sockeln von ARM2 und MEMC und Einbau des 8 MiB-Upgrade, das eigentlich für den A4xx bestimmt war, und wieder zurück nach Holland.

Mein eigener A3000 war dagegen fast schon konventionell aufgerüstet: Selbst gelötetes Turbo-Upgrade auf 13,3 MHz, selbst gelöteter VIDC-Enhancer, 4 MiB RAM (es stellte sich bald heraus, dass Acorn mit dem “2 MiB RAM max” geflunkert hatte und alle Signale für ein 4-MiB-Upgrade an der RAM-Expansion-Stiftleiste verfügbar waren), LogikJoy-2-Port-Joystick-Interface im Econet-Slot, HCCS-SCSI-Mini-Podule, Serial Upgrade, und schließlich das Dual Serial Podule mit zwei 16550er für anständige Geschwindigkeiten am seriellen Port, denn der serienmäßige 6551 schaffte nur schäbige 19200 Baud, für die gerade anbrechende ISDN-Zeit definitiv zu wenig. Das Podule leistete auch später im Risc PC noch gute Dienste, denn wem reichte schon ein einziger serieller Port? Das HD-Floppy-Upgrade hatte ich zwar geplant und auch alle notwendigen Bauteile beschafft, aber nie durchgeführt. Meine ersten Schritte im Internet habe ich auch mit dem A3000 gemacht, mit einem 2400bps-Modem über einen Einwählzugang an der Uni Stuttgart nebst selbstgedengeltem SLIP-Dialler. Für Telnet und FTP waren 2400bps gerade noch so erträglich, und mein Hauptaugenmerk lag damals DFÜ-technisch noch im Fido-Netz, wo ich dank Binkley und FidoMail einen Fido-Point bei der Piraten-Box von Alexander L. Kastl betrieb.

Erst 1995 wurde mein A3000 durch einen Risc PC 700 abgelöst, als das RAM zu eng, die CPU zu langsam und die Grafik zu schwach wurde. Und die langsam übermächtige Konkurrenz aus der PC-Welt schien durch die PC-Karte durch den Risc PC elegant mit RISC OS vereinbar, das ich inzwischen doch liebgewonnen hatte. Aber das ist eine andere Geschichte – hier gibt es den passenden Artikel zur Würdigung des Risc PC zu seinem 25-jährigen Jubiläum http://riscosblog.huber-net.de/2019/04/25-jahre-acorn-risc-pc/.