Nach einer sehr deutlichen Einordnung der Aufnahmezeit kommen wir im Wesentlichen zu den Unterschieden zwischen x86 und ARM. Natürlich wird auch geklärt, was das ist. Gegen Ende gibt es noch ein paar Meinungen und Weissagungen zum Thema KI.
Shownotes
Rückbezug STP011: grundsätzliche Beschreibung von Maschinensprache
siehe Beispiel unter dem obenstehenden LinkMaschinensprache ist spezifisch für die Prozessorarchitektur, genauer die Befehlssatzarchitektur (instruction set architecture, ISA)x86: PCs, Notebooks, Server, Supercomputer, Apple Macs bis 2020ARM: Smartphones, Tablets, Apple Macs seit 2020, Einplatinencomputer (SBC) wie Raspberry PiEmbedded: AVR, MIPS, etc.Hochleistungsrechnen: neben x86 noch Power und SPARCNeuentwicklungen: RISC-V, LoongArchWarum ist die Wahl der ISA wichtig?
ISA beschreibt nominal, wie ein CPU die Bits in einer ausführbaren Binärdatei (sprich: die kodierte Form der Maschinensprache) zu interpretieren hatdaraus als Konsequenz Festlegung von Hardware-Parametern wie der Adressbreite oder der Anzahl und Größe der verfügbaren RegisterDesignentscheidungen in der ISA wirken sich auf die maximal erreichbare Performance und auf die Energieeffizienz ausklassischerweise Gegenüberstellung zweier verschiedener Design-Philosophien: Complex Instruction Set Computing (CISC) und Reduced Instruction Set Computing (RISC) (die Grenzen verschwimmen aber in der Praxis)historischerweise war CISC die Domäne großer CPU-Hersteller, die sich ein kompliziertes Design leisten konnten, um dem Programmierer Arbeit abzunehmen (z.B. Intel); und RISC die Domäne kleiner CPU-Hersteller, die aus möglichst wenig Arbeitseinsatz möglichst viel erreichen wolltenWas steht in einem Maschinencode-Befehl drin?
grundsätzlich eine Operation, die ausgeführt wird (z.B. "Addition zweier 64-Bit-Zahlen")als Quellen für Argumente und Ziel für das Ergebnis: entweder Register, Speicher oder Immediate-ArgumenteBeispiel CISC: 20 verschiedene Ausführungen des ADD-Befehls in x86-64Beispiel RISC: 2 verschiedene Ausführungen des ADD- bzw. ADDI-Befehls in RISC-V (RV32I)wenn RISC wie bei RISC-V eine Load/Store-Architektur verwendet, muss man also im Zweifelsfall Argumente erst aus dem Speicher in Register ladendadurch tendenziell mehr Maschinencode, aber weniger Komplexität in der CPUAbwägungen zwischen Energieeffizienz (ARM) und Performance (x86)
aktueller ARM-Befehlssatz (A64) hat durchgängig 4 Byte große Befehle, was das Dekodieren vereinfacht; x86-Befehle haben eine variable Breite zwischen 1 und 15 Bytex86 hat eine lange Pipeline, um u.a. die komplexen Befehle in kleinere Teilschritte (Micro-Operations) zu zerlegen oder bestimmte häufige Befehlssequenzen in effizientere Gruppen (Macro-Operations) zu fusionieren und damit die Performance zu steigern; ARM-Prozessoren machen das nicht und sparen dadurch Energieaufwandx86 hat für bestimmte Rollen designierte Spezialregister, die je nach Befehl feste Bedeutungen haben; ARM (und RISC allgemein) verwendet für fast alles 31 General-Purpose-Register