AMDs Zen-Architektur zeigt sich in Compiler-Quellcode

AMDs n채chs짯te CPU-Archi짯tek짯tur, wel짯che die Bull짯do짯zer짯fa짯mi짯lie abl철짯sen wird, zeigt sich erst짯mals im Quell짯code der GNU-Binu짯tils, die f체r den GCC-Com짯pi짯ler ben철짯tigt werden.

Ein AMD-Mit짯ar짯bei짯ter stell짯te dort nun einen Patch ein, um einen 쐚nver1-Prozessor zu unter짯st체t짯zen. AMD k체rzt sei짯ne Archi짯tek짯tur짯code짯na짯men immer auf zwei Buch짯sta짯ben ab, Bull짯do짯zer lief z.B. unter BD, da Zen aber nur drei Buch짯sta짯ben lang ist, ist der Zusam짯men짯hang nicht all짯zu schwer zu erken짯nen. Wei짯ter erf채hrt man Details zu den unter짯st체tz짯ten Befehls짯s채t짯zen, AMD scheint dabei mehr oder min짯der mit Intels Has짯well-Gene짯ra짯ti짯on gleich짯zie짯hen zu wol짯len, au횩er AVX2 wer짯den wei짯te짯re klei짯ne Befehls짯satz짯er짯wei짯te짯run짯gen unterst체tzt:

  • CpuADX/ADCX: Neue Instruk짯tio짯nen zur Unter짯st체t짯zung gro짯횩er Integerzahlen
  • RDRAND: Kryp짯to짯gra짯fie: Siche짯rer Pseu짯do짯zu짯falls짯zah짯len짯ge짯ne짯ra짯tor (SP 80090A)
  • RDSEED: Non-deter짯mi짯nis짯ti짯scher Zufalls짯bit짯ge짯ne짯ra짯tor (SP 80090B & C) (Details)
  • SHA: Siche짯rer Hash-Algo짯rith짯mus (Details)
  • XSAVEC: Sichern der Pro짯ces짯sor Exten짯ded Sta짯tes mit Com짯pac짯tion (Details)
  • XSAVES: Sichern des Pro짯ces짯sor Exten짯ded Sta짯tes Super짯vi짯sor (Details)
  • CLFLUSHOPT: Erm철g짯licht effi짯zi짯en짯tes Cache짯flus짯hing (Details)

Zus채tz짯lich bringt AMD einen eige짯nen, neu짯en Befehl namens CLZERO:

New CLZERO ins짯truc짯tion support.
* clze짯ro has opcode 0F 01 FC.
* clze짯ro gets enab짯led with CPUID, 8000_0008, EBX[0] =1.
* clze짯ro ins짯truc짯tion zero셲 out the 64 byte cache line spe짯ci짯fied in rax. Bits 5:0 of rAX are ignored

Au횩er짯dem schnei짯det AMD wie짯der alte Z철p짯fe ab. Strich Bull짯do짯zer schon die 3DNow!-Instruktionen, geht es nun XOP und Kon짯sor짯ten an den Kra짯gen. Nach짯dem XOP mehr oder min짯der Bestand짯teil von AVX2 gewor짯den ist, dort aber sogar 256-Bit-Ope짯ra짯tio짯nen m철g짯lich sind, ist es 체ber짯fl체s짯sig und wird nicht mehr unter짯st체tzt. Glei짯ches gilt f체r die Trai짯ling-Bit-Mani짯pu짯la짯ti짯on-Befeh짯le (TBM), die erst mit AMDs Piledri짯ver ein짯ge짯f체hrt wur짯den. Ver짯mut짯lich reicht AMD die Funk짯tio짯na짯li짯t채t des durch Intel ein짯ge짯f체hr짯ten BMI2-Befehls짯sat짯zes, den AMD schon ab Excava짯tor unter짯st체tzt. Die Light-Weight-Pro짯fil짯ing-Befeh짯le (LWP) wer짯den eben짯falls ein짯ge짯stellt. Wider짯spr체ch짯lich ist die Unter짯st체t짯zung der FMA4-Befeh짯le. In der Patch짯er짯kl채짯rung schreibt der Pro짯gram짯mie짯rer, dass auch dies gestri짯chen wer짯den w체rde:

 TBM, FMA4, XOP, LWP: ISAs are not supported.

.. im Patch짯code ist es aber noch enthalten:

+ { CPU_ZNVER1_FLAGS,
쏞pu186|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 sicher짯lich nicht das letz짯te Wort. Fest짯zu짯stel짯len ist aber, dass AMD an Zens Soft짯ware짯un짯ter짯st체t짯zung arbei짯tet, die neue Archi짯tek짯tur also n채her kommt.

횥ber wei짯te짯re Befehls짯satz짯de짯tails infor짯mier짯te bereits unser alter Arti짯kel: AMDs SSE5 ist tot lang lebe AVX.

Dan짯ke an isig짯rim f체r den Forenbeitrag.

Quel짯le: AMD Starts Linux Ena짯blem짯ent On Next-Gen 쏾en Archi짯tec짯tu짯re Pho짯ro짯nix.

Dis짯kus짯si짯on im Forum