AMDs Zen-Architektur zeigt sich in Compiler-Quellcode
AMDs nächste CPU-Architektur, welche die Bulldozerfamilie ablösen wird, zeigt sich erstmals im Quellcode der GNU-Binutils, die für den GCC-Compiler benötigt werden.
Ein AMD-Mitarbeiter stellte dort nun einen Patch ein, um einen “znver1”-Prozessor zu unterstützen. AMD kürzt seine Architekturcodenamen immer auf zwei Buchstaben ab, Bulldozer lief z.B. unter “BD”, da Zen aber nur drei Buchstaben lang ist, ist der Zusammenhang nicht allzu schwer zu erkennen. Weiter erfährt man Details zu den unterstützten Befehlssätzen, AMD scheint dabei mehr oder minder mit Intels Haswell-Generation gleichziehen zu wollen, außer AVX2 werden weitere kleine Befehlssatzerweiterungen unterstützt:
- CpuADX/ADCX: Neue Instruktionen zur Unterstützung großer Integerzahlen
- RDRAND: Kryptografie: Sicherer Pseudozufallszahlengenerator (SP 800–90A)
- RDSEED: Non-deterministischer Zufallsbitgenerator (SP 800–90B & C) (Details)
- SHA: Sicherer Hash-Algorithmus (Details)
- XSAVEC: Sichern der Processor Extended States mit Compaction (Details)
- XSAVES: Sichern des Processor Extended States Supervisor (Details)
- CLFLUSHOPT: Ermöglicht effizientes Cacheflushing (Details)
Zusätzlich bringt AMD einen eigenen, neuen Befehl namens “CLZERO”:
New CLZERO instruction support.
* clzero has opcode “0F 01 FC”.
* clzero gets enabled with CPUID, 8000_0008, EBX[0] =1.
* clzero instruction zero’s out the 64 byte cache line specified in rax. Bits 5:0 of rAX are ignored
Außerdem schneidet AMD wieder alte Zöpfe ab. Strich Bulldozer schon die 3DNow!-Instruktionen, geht es nun XOP und Konsorten an den Kragen. Nachdem XOP mehr oder minder Bestandteil von AVX2 geworden ist, dort aber sogar 256-Bit-Operationen möglich sind, ist es überflüssig und wird nicht mehr unterstützt. Gleiches gilt für die Trailing-Bit-Manipulation-Befehle (TBM), die erst mit AMDs Piledriver eingeführt wurden. Vermutlich reicht AMD die Funktionalität des durch Intel eingeführten BMI2-Befehlssatzes, den AMD schon ab Excavator unterstützt. Die Light-Weight-Profiling-Befehle (LWP) werden ebenfalls eingestellt. Widersprüchlich ist die Unterstützung der FMA4-Befehle. In der Patcherklärung schreibt der Programmierer, dass auch dies gestrichen werden würde:
TBM, FMA4, XOP, LWP: ISAs are not supported.
.. im Patchcode ist es aber noch enthalten:
+ { “CPU_ZNVER1_FLAGS”,
“Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuSYSCALL|CpuRdtscp|Cpu387|Cpu687|CpuFISTTP|CpuNop|CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a|CpuABM|CpuLM|CpuFMA|CpuFMA4|CpuBMI|CpuF16C|CpuCX16|CpuClflush|CpuSSSE3|CpuSVME|CpuSSE4_1|CpuSSE4_2|CpuAES|CpuAVX|CpuPCLMUL|CpuLZCNT|CpuPRFCHW|CpuXsave|CpuXsaveopt|CpuFSGSBase|CpuAVX2|CpuMovbe|CpuBMI2|CpuRdRnd|CpuADX|CpuRdSeed|CpuSMAP|CpuSHA|CpuXSAVEC|CpuXSAVES|CpuClflushOpt|CpuCLZERO” },
Wie man sieht, ist der Patch also noch mit heißer Nadel gestrickt und sicherlich nicht das letzte Wort. Festzustellen ist aber, dass AMD an Zens Softwareunterstützung arbeitet, die neue Architektur also näher kommt.
Über weitere Befehlssatzdetails informierte bereits unser alter Artikel: AMDs SSE5 ist tot — lang lebe AVX.
Danke an isigrim für den Forenbeitrag.
Quelle: AMD Starts Linux Enablement On Next-Gen “Zen” Architecture — Phoronix.