{"id":20255,"date":"2015-10-06T19:02:08","date_gmt":"2015-10-06T17:02:08","guid":{"rendered":"http:\/\/www.planet3dnow.de\/cms\/?p=20255"},"modified":"2015-10-22T14:49:33","modified_gmt":"2015-10-22T12:49:33","slug":"analyse-der-vermuteten-zen-architektur","status":"publish","type":"post","link":"https:\/\/www.planet3dnow.de\/cms\/20255-analyse-der-vermuteten-zen-architektur\/","title":{"rendered":"Analyse der vermuteten Zen-Architektur"},"content":{"rendered":"<p>Schon im M\u00e4rz wuss\u00adten wir \u00fcber ein ers\u00adtes Code\u00adfrag\u00adment zu AMDs kom\u00admen\u00adder Zen-Archi\u00adtek\u00adtur zu <a href=\"http:\/\/www.planet3dnow.de\/cms\/14479-zen-zeigt-sich-in-compiler-quellcode\/\">berich\u00adten<\/a>. Erst\u00admals wur\u00adde hier der Befehls\u00adsatz ange\u00adge\u00adben, der alle moder\u00adnen Erwei\u00adte\u00adrun\u00adgen bis <span class=\"caps\">AVX2<\/span> und <span class=\"caps\">FMA<\/span> umfasst. Unser Foren\u00admit\u00adglied Dres\u00adden\u00adboy hat in sei\u00adnem eng\u00adlisch\u00adspra\u00adchi\u00adgen Blog nun \u00fcber wei\u00adte\u00adre Details berich\u00adtet und ein Block\u00adschalt\u00adbild ent\u00adwor\u00adfen, wel\u00adches Zen nach aktu\u00adel\u00adlem Wis\u00adsens\u00adstand, gew\u00fcrzt mit eini\u00adgen Ver\u00admu\u00adtun\u00adgen, zei\u00adgen k\u00f6nn\u00adte. Auf des\u00adsen Basis haben wir eine detail\u00adlier\u00adte Dar\u00adstel\u00adlung erstellt und zie\u00adhen einen Ver\u00adgleich mit Skylake:<\/p>\n<figure id=\"attachment_20259\" aria-describedby=\"caption-attachment-20259\" style=\"width: 1341px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/Zen.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20259\" src=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/Zen.png\" alt=\"Architekturskizze nach AMDs Compilerpatch. Fehldarstellungen aufgrund von Copy-Paste-Fehlern im Code sind m\u00f6glich!\" width=\"1341\" height=\"912\"><\/a><figcaption id=\"caption-attachment-20259\" class=\"wp-caption-text\">Archi\u00adtek\u00adtur\u00adskiz\u00adze nach AMDs Com\u00adpi\u00adler\u00adpatch.<br>Fehl\u00addar\u00adstel\u00adlun\u00adgen auf\u00adgrund von Copy-Pas\u00adte-Feh\u00adlern im Code sind m\u00f6glich!<\/figcaption><\/figure>\n<p><span style=\"text-decoration: underline;\"><strong>Archi\u00adtek\u00adtur\u00adbe\u00adschrei\u00adbung<\/strong><\/span><br>\nAuf\u00adfal\u00adlend ist erst ein\u00admal die Brei\u00adte des Designs. Mit 10 Ports, von denen 8 direkt zu Aus\u00adf\u00fch\u00adrungs\u00adein\u00adhei\u00adten (blau) f\u00fch\u00adren, setzt man ein deut\u00adli\u00adches Zei\u00adchen. \u00c4lte\u00adre Semes\u00adter wer\u00adden sich viel\u00adleicht an Alphas <span class=\"caps\">EV8<\/span> erin\u00adnern, der ers\u00adten CPU-Archi\u00adtek\u00adtur, f\u00fcr die <a href=\"http:\/\/www.planet3dnow.de\/artikel\/diverses\/doping\/index.shtml\"><span class=\"caps\">SMT<\/span><\/a> imple\u00admen\u00adtiert wer\u00adden soll\u00adte. Aus dem Chip wur\u00adde am Ende zwar nichts, aber das noch brei\u00adte\u00adre EV8-Design, bestehend aus 8 INT-Pipes, 4 AGUs und 4 FPU-Pipes, zeigt, dass f\u00fcr <span class=\"caps\">SMT<\/span> vie\u00adle Aus\u00adf\u00fch\u00adrungs\u00adports kein Hin\u00adder\u00adnis, son\u00addern im Gegen\u00adteil ide\u00adal sind. Aus die\u00adsem Grund soll\u00adte auch AMDs Zen (sehr) gut mit zwei\u00adfa\u00adchem <span class=\"caps\">SMT<\/span> ska\u00adlie\u00adren, da die Wahr\u00adschein\u00adlich\u00adkeit, dass sich zwei Threads einen Port strei\u00adtig machen, sinkt, je brei\u00adter das Design aus\u00adge\u00adf\u00fchrt wird. Eigent\u00adlich ist es bis auf sel\u00adte\u00adne Spe\u00adzi\u00adal\u00adf\u00e4l\u00adle fast unm\u00f6g\u00adlich, da die h\u00e4u\u00adfig genutz\u00adten Ein\u00adhei\u00adten wie Addie\u00adrer und Mul\u00adti\u00adpli\u00adzie\u00adrer (jeweils f\u00fcr <span class=\"caps\">INT<\/span> und Floats) dop\u00adpelt zur Ver\u00adf\u00fc\u00adgung ste\u00adhen und an ver\u00adschie\u00adde\u00adnen Ports h\u00e4n\u00adgen. Intel hat im Ver\u00adgleich nur 4 Ports ins\u00adge\u00adsamt, an wel\u00adchen sowohl alle <span class=\"caps\">INT-<\/span> als auch alle FP-Ein\u00adhei\u00adten h\u00e4n\u00adgen, was die Ver\u00adtei\u00adlung der Instruk\u00adtio\u00adnen ein\u00adschr\u00e4nkt. Aller\u00addings kann man mit <span class=\"caps\">SMT<\/span> immer\u00adhin Pro\u00adfit aus den immer vor\u00adhan\u00adde\u00adnen Cache- und Spei\u00adcher\u00adla\u00adten\u00adzen zie\u00adhen. Wenn ein Thread auf Daten war\u00adten muss, hat der ande\u00adre schlie\u00df\u00adlich auto\u00adma\u00adtisch alle Ports zur Verf\u00fcgung.<\/p>\n<p>Doch wo bei Zen Licht ist, ist nat\u00fcr\u00adlich auch Schat\u00adten. Intels enges Port-Design und der gemein\u00adsa\u00adme <span class=\"caps\">INT<\/span>+FP-Scheduler erm\u00f6g\u00adlich\u00adten z.B., dass die FP-Ein\u00adheit die Daten\u00adlei\u00adtun\u00adgen zum Cache der am sel\u00adben Port h\u00e4n\u00adgen\u00adden INT-Ein\u00adheit (und umge\u00adkehrt) ver\u00adwen\u00adden kann. Schlie\u00df\u00adlich kann im sel\u00adben Takt kein Befehl an die jeweils ande\u00adre Aus\u00adf\u00fch\u00adrungs\u00adein\u00adheit erfol\u00adgen. Bei <span class=\"caps\">AMD<\/span> ist das nicht der Fall, d.h. dass <span class=\"caps\">AMD<\/span> f\u00fcr vol\u00adle 256 Bit zum Cache den dop\u00adpel\u00adten Auf\u00adwand h\u00e4t\u00adte, qua\u00adsi 512 Lei\u00adtun\u00adgen ver\u00adle\u00adgen m\u00fcss\u00adte. Das scheint <span class=\"caps\">AMD<\/span> im Moment noch zu viel zu sein. 256-Bit-x86-Befeh\u00adle wer\u00adden wie \u00fcblich in soge\u00adnann\u00adte Dou\u00adbles deco\u00addiert, d.h. sie wer\u00adden in 2 Sub\u00adin\u00adstruk\u00adtio\u00adnen (Macro\u00adOps) zer\u00adlegt, was logi\u00adscher\u00adwei\u00adse 128-Bit-Instruk\u00adtio\u00adnen sein m\u00fcs\u00adsen. Aus dem Grund kann man dann das \u00fcbli\u00adche AMD-Cache\u00adde\u00adsign erwar\u00adten: dual-por\u00adted mit 128 Bit f\u00fcr Lese\u00adope\u00adra\u00adtio\u00adnen, ein\u00adfach f\u00fcr Schrei\u00adb\u00adope\u00adra\u00adtio\u00adnen (gr\u00fcn). Die Adres\u00adsen wer\u00adden dabei von zwei Adress\u00adge\u00adnerie\u00adrungs-Units (AGUs) berechnet.<\/p>\n<p style=\"text-align: left;\"><!--nextpage--><\/p>\n<p style=\"text-align: left;\">Die INT-Rechen\u00adwer\u00adke beschr\u00e4n\u00adken sich auf das \u00dcbli\u00adche: Alle vier ALUs k\u00f6n\u00adnen die Stan\u00addard\u00adbe\u00adfeh\u00adle abar\u00adbei\u00adten, die drit\u00adte Inte\u00adger Exe\u00adcu\u00adti\u00adon Unit (<span class=\"caps\">IEU2<\/span>) ver\u00adf\u00fcgt \u00fcber eine Inte\u00adger\u00addi\u00advi\u00adsi\u00adons- und <span class=\"caps\">IEU1<\/span> \u00fcber eine Inte\u00adger\u00admul\u00adti\u00adpli\u00adka\u00adti\u00adons-Ein\u00adheit, <span class=\"caps\">IEU0<\/span> und <span class=\"caps\">IEU3<\/span> k\u00f6n\u00adnen auch noch Call-Befeh\u00adle abar\u00adbei\u00adten. Erw\u00e4h\u00adnens\u00adwert ist, dass die bei Bull\u00addo\u00adzer ver\u00adwen\u00adde\u00adten <a href=\"http:\/\/www.planet3dnow.de\/cgi-bin\/newspub\/viewnews.cgi?id=1328302051\">AGLUs <\/a>kei\u00adne Erw\u00e4h\u00adnung mehr fin\u00adden, die dort abge\u00adar\u00adbei\u00adte\u00adte LEA-Instruk\u00adti\u00adon wird in den nor\u00adma\u00adlen ALUs berechnet:<\/p>\n<figure id=\"attachment_20353\" aria-describedby=\"caption-attachment-20353\" style=\"width: 778px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_INT.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20353\" src=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_INT.png\" alt=\"Zens INT-Einheiten laut Compiler-Quellcode\" width=\"778\" height=\"613\" srcset=\"https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_INT.png 778w, https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_INT-300x236.png 300w, https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_INT-624x492.png 624w\" sizes=\"auto, (max-width: 778px) 100vw, 778px\"><\/a><figcaption id=\"caption-attachment-20353\" class=\"wp-caption-text\">Zens INT-Ein\u00adhei\u00adten laut Compiler-Quellcode<\/figcaption><\/figure>\n<p style=\"text-align: left;\">Bei den FP-Ein\u00adhei\u00adten ist die Sache etwas weni\u00adger \u00fcber\u00adsicht\u00adlich. Grob kann man eine Zwei\u00adtei\u00adlung erken\u00adnen, die ers\u00adten bei\u00adden Ein\u00adhei\u00adten <span class=\"caps\">FP0<\/span> und <span class=\"caps\">FP1<\/span> arbei\u00adten Vec\u00adtor-Mul\u00adti\u00adpli\u00adka\u00adtio\u00adnen (<span class=\"caps\">SSE<\/span>\/<span class=\"caps\">AVX<\/span>) und MMX-Addi\u00adtio\u00adnen ab, w\u00e4h\u00adrend <span class=\"caps\">FP2<\/span> und <span class=\"caps\">FP3<\/span> f\u00fcr Vec\u00adtor-Addi\u00adtio\u00adnen zust\u00e4n\u00addig sind. <span class=\"caps\">FP3<\/span> ver\u00adf\u00fcgt au\u00dfer\u00addem \u00fcber eine Divi\u00adsi\u00adons\u00adein\u00adheit, alte x87-Instruk\u00adtio\u00adnen wer\u00adden an <span class=\"caps\">FP0<\/span> und <span class=\"caps\">FP3<\/span> geschickt; <span class=\"caps\">FP1<\/span> und <span class=\"caps\">FP2<\/span> sind die Kan\u00addi\u00adda\u00adten f\u00fcr logi\u00adsche Berech\u00adnun\u00adgen mit <span class=\"caps\">AVX<\/span>. Zwar gibt es auch eine FMA-F\u00e4hig\u00adkeit, aller\u00addings die\u00adse wird \u2014 wie die bereits erw\u00e4hn\u00adten 256-Bit-Befeh\u00adle \u2014 nur mit Dou\u00adbles imple\u00admen\u00adtiert. Bei <span class=\"caps\">FMA<\/span> arbei\u00adtet die Add-Ein\u00adheit <span class=\"caps\">FP3<\/span> ent\u00adwe\u00adder mit den Mul\u00adti\u00adpli\u00adka\u00adtor\u00adre\u00adchen\u00adwer\u00adken an <span class=\"caps\">FP1<\/span> oder <span class=\"caps\">FP2<\/span> zusam\u00admen. Wie\u00adso die Adder von <span class=\"caps\">FP2<\/span> nicht ber\u00fcck\u00adsich\u00adtigt wer\u00adden, ist im ers\u00adten Moment unklar. Dres\u00adden\u00adboy fie\u00adlen auf den zwei\u00adten Blick hin\u00adge\u00adgen die War\u00adte\u00adzy\u00adklen der bei\u00adden Mul\u00adti\u00adpli\u00adka\u00adtor\u00adein\u00adhei\u00adten auf. Laut den Ein\u00adtr\u00e4\u00adgen in besag\u00adtem Code\u00adfrag\u00adment k\u00f6n\u00adnen die\u00adse nur alle f\u00fcnf Tak\u00adte Befeh\u00adle ent\u00adge\u00adgen\u00adneh\u00admen. Ein ein\u00adzel\u00adner Adder w\u00e4re rech\u00adne\u00adrisch also genug, um im Schnitt alle 2,5 Tak\u00adte ein Add-Ergeb\u00adnis zur FMA-Berech\u00adnung zur Ver\u00adf\u00fc\u00adgung zu stellen:<\/p>\n<figure id=\"attachment_20354\" aria-describedby=\"caption-attachment-20354\" style=\"width: 512px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_FPU.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20354\" src=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_FPU.png\" alt=\"Zens FPU laut Compiler-Quellcode\" width=\"512\" height=\"524\" srcset=\"https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_FPU.png 512w, https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/ZEN_FPU-293x300.png 293w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\"><\/a><figcaption id=\"caption-attachment-20354\" class=\"wp-caption-text\">Zens <span class=\"caps\">FPU<\/span> laut Compiler-Quellcode<\/figcaption><\/figure>\n<p>Soll\u00adte sich die\u00adser Umstand bewahr\u00adhei\u00adten, kann man gleich\u00adwohl auch wei\u00adte\u00adre Schluss\u00adfol\u00adge\u00adrun\u00adgen zie\u00adhen: Seit dem <span class=\"caps\">K7<\/span> waren AMDs FPUs immer \u201cful\u00adly pipe\u00adlined\u201d, d.h. sie konn\u00adten die Befeh\u00adle wie am Flie\u00df\u00adband abar\u00adbei\u00adten, mit\u00adun\u00adter also jeden Takt Befeh\u00adle ent\u00adge\u00adgen\u00adneh\u00admen. Nur die klei\u00adne Mul\u00adti\u00adpli\u00adka\u00adti\u00adons\u00adein\u00adheit der Puma-Ker\u00adne war nicht \u201cful\u00adly pipe\u00adlined\u201d. Der Code k\u00f6nn\u00adte also ein Indiz daf\u00fcr sein, dass sich <span class=\"caps\">AMD<\/span> im Fal\u00adle von Zens Aus\u00adf\u00fch\u00adrungs\u00adein\u00adhei\u00adten im Cat-Regal bedient hat. Wie schwer die\u00adser Umstand aus Leis\u00adtungs\u00adsicht ins Gewicht fal\u00adlen wird, bleibt abzu\u00adwar\u00adten. Immer\u00adhin gibt es je zwei Ein\u00adhei\u00adten statt nur einer, au\u00dfer\u00addem wird <span class=\"caps\">AMD<\/span> sicher\u00adlich die umlie\u00adgen\u00adden Puf\u00adfer, Caches, etc. opti\u00admie\u00adren, um die Ein\u00adhei\u00adten bes\u00adser aus\u00adlas\u00adten zu k\u00f6n\u00adnen. Solan\u00adge man den Kern nicht mit <span class=\"caps\">SMT<\/span> belas\u00adtet, k\u00f6nn\u00adte das also durch\u00adaus in einer guten <span class=\"caps\">IPC<\/span> resultieren.<\/p>\n<p style=\"text-align: left;\">Ins\u00adge\u00adsamt f\u00e4llt am Design der <span class=\"caps\">FPU<\/span> auf, dass die Ein\u00adheit \u201c<span class=\"caps\">FP2<\/span>\u201d eher schwach mit Aus\u00adf\u00fch\u00adrungs\u00adein\u00adhei\u00adten aus\u00adge\u00adstat\u00adtet ist, w\u00e4h\u00adrend <span class=\"caps\">FP3<\/span> eher zu vie\u00adle hat. Even\u00adtu\u00adell liegt hier noch ein Feh\u00adler im Code vor, z.B. w\u00e4re die FMA-F\u00e4hig\u00adkeit eher bei <span class=\"caps\">FP2<\/span> sinn\u00advoll, um alle Ports aus\u00adba\u00adlan\u00adciert zu halten.<\/p>\n<p style=\"text-align: left;\"><!--nextpage--><\/p>\n<p style=\"text-align: left;\">Dres\u00adden\u00adboy, der im wirk\u00adli\u00adchen Leben Mat\u00adthi\u00adas Wald\u00adhau\u00ader hei\u00dft, betrach\u00adte\u00adte ein\u00adgangs das Ent\u00adwick\u00adlungs\u00adteam und konn\u00adte eini\u00adge Ent\u00adwick\u00adler iden\u00adti\u00adfi\u00adzie\u00adren, die auch bei AMDs Cat-Archi\u00adtek\u00adtur\u00adfa\u00admi\u00adlie mit\u00adge\u00adzeich\u00adnet haben. Jene erf\u00e4hrt nicht nur Ver\u00adwen\u00addung in AMDs eige\u00adnen Kabi\u00adni- und Bee\u00adma-APUs, son\u00addern fin\u00addet sich auch in den aktu\u00adel\u00adlen Spiel\u00adkon\u00adso\u00adlen von <a href=\"http:\/\/www.planet3dnow.de\/cgi-bin\/newspub\/viewnews.cgi?id=1361409941\">Sony<\/a> und Micro\u00adsoft. So ist es nicht \u00fcber\u00adra\u00adschend, dass bei Zen eini\u00adge Par\u00adal\u00adle\u00adlen zu den Kat\u00adzen zu fin\u00adden sind wie die oben genann\u00adten Mul\u00adti\u00adpli\u00adka\u00adti\u00adons\u00adein\u00adhei\u00adten. Denn auch wenn AMDs Inge\u00adnieu\u00adre anga\u00adben, \u201cfrom scratch\u201d, also mit allen Frei\u00adhei\u00adten, die neue Archi\u00adtek\u00adtur ent\u00adwi\u00adckelt zu haben, las\u00adsen sich nat\u00fcr\u00adlich eini\u00adge Par\u00adal\u00adle\u00adlen zu Excava\u00adtor und Puma zie\u00adhen. Betrach\u00adtet man die rei\u00adne Anzahl der Aus\u00adf\u00fch\u00adrungs\u00adein\u00adhei\u00adten, k\u00f6nn\u00adte man sogar direkt mit Intels aktu\u00adel\u00adlen Archi\u00adtek\u00adtu\u00adren gleich\u00adzie\u00adhen, wobei nat\u00fcr\u00adlich nicht davon aus\u00adzu\u00adge\u00adhen ist, dass die\u00adse Bl\u00f6\u00adcke iden\u00adtisch auf\u00adge\u00adbaut sind. In der n\u00e4chs\u00adten Tabel\u00adle haben wir die Roh\u00adda\u00adten der ver\u00adschie\u00adde\u00adnen Archi\u00adtek\u00adtu\u00adren aufgef\u00fchrt:<\/p>\n<table style=\"height: 341px;\" width=\"599\">\n<thead>\n<tr>\n<td><\/td>\n<td><span class=\"caps\">K10<\/span><\/td>\n<td>Puma<\/td>\n<td>Steam\u00adrol\u00adler<\/td>\n<td>Excava\u00adtor<\/td>\n<td>Zen<\/td>\n<td>Has\u00adwell<\/td>\n<td>Sky\u00adla\u00adke<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Frontend\u00addurch\u00adsatz<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>4<\/td>\n<td>4\u20135<\/td>\n<td>5\u20136<\/td>\n<\/tr>\n<tr>\n<td>INT-Ein\u00adhei\u00adten<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>4<\/td>\n<td>4<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>FPU-Ein\u00adhei\u00adten<\/td>\n<td>3x <span class=\"caps\">SSE128<\/span><\/td>\n<td>2x <span class=\"caps\">AVX128<\/span><\/td>\n<td>2x <span class=\"caps\">FMA128<\/span><\/td>\n<td>2x <span class=\"caps\">FMA128<\/span><\/td>\n<td>4x <span class=\"caps\">AVX128<\/span><\/td>\n<td>2x <span class=\"caps\">FMA256<\/span><\/td>\n<td>2x <span class=\"caps\">FMA256<\/span>\/512<\/td>\n<\/tr>\n<tr>\n<td>AGUs<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td><span class=\"caps\">INT<\/span>+FP-Portanzahl<\/td>\n<td>6<\/td>\n<td>4<\/td>\n<td>4<\/td>\n<td>4<\/td>\n<td>8<\/td>\n<td>4<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>L1D-Cache<\/td>\n<td>64 kB<\/td>\n<td>32 kB<\/td>\n<td>16 kB<\/td>\n<td>32 kB<\/td>\n<td>32 kB?<\/td>\n<td>32 kB<\/td>\n<td>32 kB<\/td>\n<\/tr>\n<tr>\n<td>L2-Cache<\/td>\n<td>512 kB<\/td>\n<td>512 kB<\/td>\n<td>2048 kB<\/td>\n<td>1024 kB<\/td>\n<td>512 kB<\/td>\n<td>256 kB<\/td>\n<td>256 kB<\/td>\n<\/tr>\n<tr>\n<td>L1-Latenz<\/td>\n<td>3<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>4<\/td>\n<td>?<\/td>\n<td>4<\/td>\n<td>&nbsp;4<\/td>\n<\/tr>\n<tr>\n<td>L2-Latenz<\/td>\n<td>10<\/td>\n<td>24<\/td>\n<td>20<\/td>\n<td>19<\/td>\n<td>?<\/td>\n<td>11<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>L3-Latenz<\/td>\n<td>45<\/td>\n<td>\u2013<\/td>\n<td>(67)<\/td>\n<td>(67)<\/td>\n<td>?<\/td>\n<td>34<\/td>\n<td>44<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Wir haben Zens <span class=\"caps\">FPU<\/span> als \u201c4x <span class=\"caps\">AVX128<\/span>\u201d auf\u00adge\u00adf\u00fchrt, da 256-Bit- und FMA-Befeh\u00adle in 128-Bit-H\u00e4pp\u00adchen zer\u00adlegt wer\u00adden und 4x 128 Bit den Maxi\u00admal\u00addurch\u00adsatz dar\u00adstel\u00adlen. Augen\u00adf\u00e4l\u00adlig in der Tabel\u00adle sind auch die \u00c4hn\u00adlich\u00adkei\u00adten zwi\u00adschen Zen und Puma. Zen wirkt wie ein dop\u00adpel\u00adter Puma-Kern. Bis auf die AGUs wur\u00adde alles ver\u00addop\u00adpelt, aller\u00addings wur\u00adden die\u00adse auch gegen\u00ad\u00fcber Puma ver\u00adbes\u00adsert. Die bei\u00adden Zen-AGUs k\u00f6n\u00adnen \u2013 wie auch die aktu\u00adel\u00adlen Bull\u00addo\u00adzer-AGUs \u2013 Adres\u00adsen f\u00fcr Lade- und Schrei\u00adb\u00adope\u00adra\u00adtio\u00adnen erzeu\u00adgen, bei den Cat-Archi\u00adtek\u00adtu\u00adren gibt es dage\u00adgen nur eine spe\u00adzi\u00adel\u00adle Schreib- und eine Lade-AGU.<\/p>\n<p><b><u>Cache\u00adgr\u00f6\u00ad\u00dfe<\/u><\/b><\/p>\n<p>Bei den Caches gibt es ein\u00addeu\u00adti\u00adge Anga\u00adben: 32 kB <span class=\"caps\">L1D-<\/span> und 512 kB L2-Cache. Das klingt plau\u00adsi\u00adbel und ent\u00adspricht eben\u00adfalls dem, was man von der Cat-Archi\u00adtek\u00adtur\u00adfa\u00admi\u00adlie gewohnt ist. Aller\u00addings muss dies noch nicht das letz\u00adte Wort sein. Die\u00adse Wer\u00adte \u00e4ndert man ger\u00adne noch kurz vor dem offi\u00adzi\u00adel\u00adlen Release. Die L2-Gr\u00f6\u00ad\u00dfe ent\u00adspricht jedoch zumin\u00addest fr\u00fc\u00adhe\u00adren Ger\u00fcch\u00adten, k\u00f6nn\u00adte sich also durch\u00adaus bewahrheiten.<\/p>\n<p style=\"text-align: left;\"><!--nextpage--><\/p>\n<p>Zu Intels Sky\u00adla\u00adke gab es vor Kur\u00adzem erst neue Daten samt einem Archi\u00adtek\u00adtur\u00adsche\u00adma, das wir ger\u00adne wiedergeben:<\/p>\n<figure id=\"attachment_20285\" aria-describedby=\"caption-attachment-20285\" style=\"width: 732px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20285\" src=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake2.png\" alt=\"Intels Skylake-Architektur\" width=\"732\" height=\"520\" srcset=\"https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake2.png 732w, https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake2-300x213.png 300w, https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake2-624x443.png 624w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\"><\/a><figcaption id=\"caption-attachment-20285\" class=\"wp-caption-text\">Intels Sky\u00adla\u00adke-Archi\u00adtek\u00adtur<\/figcaption><\/figure>\n<p>Neben der fort\u00adbe\u00adstehen\u00adden Schmal\u00adheit des Design, das von Intel in den letz\u00adten Jah\u00adren schon nach und nach ver\u00adbrei\u00adtert wur\u00adde \u2013 anhand der Port\u00adnum\u00admern kann man z.B. erken\u00adnen, dass Port 5 (Pen\u00adryn), 6 (Has\u00adwell) und 7 (Sky\u00adla\u00adke) erst nach\u00adtr\u00e4g\u00adlich ins Design auf\u00adge\u00adnom\u00admen wur\u00adden \u2013 fal\u00adlen v.a. eini\u00adge Ver\u00adschlech\u00adte\u00adrun\u00adgen auf. So ver\u00adschlech\u00adter\u00adten sich <span class=\"caps\">L2-<\/span> und L3-Laten\u00adzen, au\u00dfer\u00addem redu\u00adzier\u00adte Intel die L2-Asso\u00adzia\u00adti\u00advi\u00adt\u00e4t von acht\u00adfach auf vier\u00adfach, wodurch die Tref\u00adfer\u00adra\u00adte sank. Das \u00fcber\u00adrascht schon, denn bis\u00adher ging es immer in die ande\u00adre Rich\u00adtung. Intel gab zur L2-Asso\u00adzia\u00adti\u00advi\u00adt\u00e4t an, dies aus Ener\u00adgie\u00adspar\u00adgr\u00fcn\u00adden ge\u00e4n\u00addert zu haben. Trotz der ange\u00adspro\u00adche\u00adnen Nach\u00adtei\u00adle steigt die Leis\u00adtung gegen\u00ad\u00fcber der Vor\u00adg\u00e4n\u00adger\u00adge\u00adne\u00adra\u00adti\u00adon wei\u00adter an, denn nat\u00fcr\u00adlich gab es auch Ver\u00adbes\u00adse\u00adrun\u00adgen, vor\u00adnehm\u00adlich wur\u00adden die inter\u00adnen Puf\u00adfer vergr\u00f6\u00dfert:<\/p>\n<figure id=\"attachment_20345\" aria-describedby=\"caption-attachment-20345\" style=\"width: 547px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20345\" src=\"http:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake3.png\" alt=\"Skylakes Verbesserungen der internen Puffer\" width=\"547\" height=\"233\" srcset=\"https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake3.png 547w, https:\/\/www.planet3dnow.de\/cms\/wp-content\/uploads\/2015\/10\/skylake3-300x128.png 300w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\"><\/a><figcaption id=\"caption-attachment-20345\" class=\"wp-caption-text\">Sky\u00adlakes Ver\u00adbes\u00adse\u00adrun\u00adgen der inter\u00adnen Puffer<\/figcaption><\/figure>\n<p>Wie man hier sieht, wur\u00adde dann doch nicht gekle\u00adckert, son\u00addern wei\u00adter\u00adhin geklotzt. Ins\u00adbe\u00adson\u00adde\u00adre die Ver\u00adgr\u00f6\u00ad\u00dfe\u00adrung der Allo\u00adca\u00adti\u00adon-War\u00adte\u00adschlan\u00adge f\u00e4llt auf. Hat\u00adte San\u00addy Bridge noch 28 Ein\u00adtr\u00e4\u00adge pro Thread und Has\u00adwell eine gleich gro\u00ad\u00dfe War\u00adte\u00adschlan\u00adge f\u00fcr alle zwei Threads, besitzt Sky\u00adla\u00adke nun wie\u00adder getrenn\u00adte Ein\u00adtr\u00e4\u00adge pro Thread und zwar gleich 64. Ins\u00adge\u00adsamt wur\u00adde die Kapa\u00adzi\u00adt\u00e4t damit mehr als ver\u00addop\u00adpelt. Bef\u00fcllt wer\u00adden die\u00adse War\u00adte\u00adschlan\u00adgen vom Front\u00adend, wobei von Intels \u00b5Op-Cache nun 6 Ope\u00adra\u00adtio\u00adnen pro Takt kom\u00admen k\u00f6n\u00adnen. Eben\u00adfalls \u00fcber\u00adpro\u00adpor\u00adtio\u00adnal bedacht wur\u00adden die Sche\u00addu\u00adler-Ein\u00adtr\u00e4\u00adge, die um mehr als die H\u00e4lf\u00adte von 60 auf 97 zuleg\u00adten. Es zeigt sich also, dass man am Cache\u00adsys\u00adtem durch\u00adaus spa\u00adren kann \u2014 wenn man die Daten\u00adzu\u00adgrif\u00adfe schon intern durch aus\u00adrei\u00adchend dimen\u00adsio\u00adnier\u00adte War\u00adte\u00adschlan\u00adgen abfe\u00addern kann. Der Grund, aus dem man nicht von Beginn an so gro\u00ad\u00dfe Puf\u00adfer vor\u00adsah, ist nat\u00fcr\u00adlich der Her\u00adstel\u00adlungs\u00adpro\u00adzess. Neue, klei\u00adne\u00adre Struk\u00adtu\u00adren ver\u00adgr\u00f6\u00ad\u00dfern das Tran\u00adsis\u00adto\u00adren\u00adbud\u00adget der CPU-Archi\u00adtek\u00adten und gro\u00ad\u00dfe Puf\u00adfer sind dann eine gute Anlage.<\/p>\n<p>Ent\u00adfernt erin\u00adnert die Vor\u00adge\u00adhens\u00adwei\u00adse an Excava\u00adtors Cache\u00adde\u00adsign. Dort erm\u00f6g\u00adlich\u00adte der ver\u00adgr\u00f6\u00ad\u00dfer\u00adte L1-Cache einen klei\u00adne\u00adren L2-Cache ohne Performance-Einbu\u00dfen.<\/p>\n<p style=\"text-align: left;\"><!--nextpage--><\/p>\n<p>Soll\u00adte es sich bei den Com\u00adpi\u00adler-Anga\u00adben nicht um Copy-Pas\u00adte-Daten der Kat\u00adzen\u00adker\u00adne han\u00addeln, muss man davon aus\u00adge\u00adhen, dass <span class=\"caps\">AMD<\/span> sich bei den Aus\u00adf\u00fch\u00adrungs\u00adein\u00adhei\u00adten bei<a href=\"http:\/\/www.planet3dnow.de\/cms\/9323-kabini-fuer-sockel-am1-athlon-5350-im-test\/subpage-amds-jaguar-kerne\/\"> Jagu\u00adar und Co.<\/a> bedient hat. Das mag auf den ers\u00adten Blick ent\u00adt\u00e4u\u00adschen, muss aber kein Defi\u00adzit sein. Immer\u00adhin konn\u00adten die Cat-Archi\u00adtek\u00adtu\u00adren gut mit Bull\u00addo\u00adzers <span class=\"caps\">IPC<\/span> mit\u00adhal\u00adten und FP-Mul\u00adti\u00adpli\u00adka\u00adtio\u00adnen sind in Pro\u00adgramm\u00adcode eher sel\u00adten. Das Glei\u00adche gilt f\u00fcr AVX256-Befeh\u00adle. End\u00adan\u00adwen\u00adder wer\u00adden mit vier 128-Bit-Ein\u00adhei\u00adten bes\u00adser als mit zwei 256-Bit-Ein\u00adhei\u00adten bedient sein. 128-Bit-SSE-Code ist schlicht noch zu stark ver\u00adbrei\u00adtet. Bekommt man also die dop\u00adpel\u00adte Anzahl 128-Bit-Ein\u00adhei\u00adten, soll\u00adte dies schon f\u00fcr eine deut\u00adli\u00adche Ver\u00adbes\u00adse\u00adrung ausreichen.<\/p>\n<p>Wich\u00adtig ist in ers\u00adter Linie das Umfeld, in wel\u00adchem sich die Rechen\u00adein\u00adhei\u00adten wie\u00adder\u00adfin\u00adden. Das oben zitier\u00adte \u201cfrom scratch\u201d bezieht sich v.a. auf die Grund\u00adstruk\u00adtur des gesam\u00adten Designs. Die\u00adse ist dank der schie\u00adren Brei\u00adte aus\u00adrei\u00adchend zukunfts\u00adsi\u00adcher, ver\u00admut\u00adlich w\u00fcr\u00adde sogar vier\u00adfa\u00adches <span class=\"caps\">SMT<\/span> gut ska\u00adlie\u00adren. Ein\u00adzel\u00adne Ein\u00adhei\u00adten wie die FP-Mul\u00adti\u00adpli\u00ader kann man in sp\u00e4\u00adte\u00adren Designs ver\u00adbes\u00adsern oder aus\u00adtau\u00adschen. Des\u00adwei\u00adte\u00adren sind schon deut\u00adli\u00adche IPC-Ver\u00adbes\u00adse\u00adrun\u00adgen <a href=\"http:\/\/www.planet3dnow.de\/cms\/14973-amd-investorentag-am4-40-ipc-fuer-zen\/\">gegen\u00ad\u00fcber den aktu\u00adel\u00adlen Excava\u00adtor-Ker\u00adnen ver\u00adspro\u00adchen wor\u00adden<\/a>.<\/p>\n<p>Even\u00adtu\u00adel\u00adle IPC-stei\u00adgern\u00adde Design\u00adknif\u00adfe \u00e4u\u00dfern sich auch nicht not\u00adwen\u00addi\u00adger\u00adwei\u00adse in den Com\u00adpi\u00adler\u00adquel\u00adlen. Wie Intels Sky\u00adla\u00adke zeigt, sind die Dimen\u00adsio\u00adnie\u00adrung der inter\u00adnen War\u00adte\u00adschlan\u00adgen und der Puf\u00adfer wich\u00adtig. Dort kann man auch bei <span class=\"caps\">AMD<\/span> auf\u00adgrund des erst\u00admals ver\u00adwen\u00adde\u00adten 14-nm-Pro\u00adzes\u00adses ein deut\u00adli\u00adches Wachs\u00adtum erwar\u00adten, ins\u00adbe\u00adson\u00adde\u00adre im Ver\u00adgleich zur eher spar\u00adta\u00adnisch aus\u00adge\u00adstat\u00adte\u00adten Cat-Archi\u00adtek\u00adtur\u00adfa\u00admi\u00adlie. Gleich\u00adwohl ist auch der Ener\u00adgie\u00adbe\u00addarf von Bedeu\u00adtung, wie Intels Design\u00adent\u00adschei\u00addun\u00adgen zei\u00adgen. In die\u00adsem Sin\u00adne w\u00e4re es eben\u00adfalls kein Feh\u00adler, Zens Rechen\u00adein\u00adhei\u00adten von der Jagu\u00adar-Archi\u00adtek\u00adtur abzuleiten.<\/p>\n<p>Zu guter Letzt soll trotz\u00addem noch\u00admals dar\u00adauf hin\u00adge\u00adwie\u00adsen wer\u00adden, dass der Com\u00adpi\u00adler\u00adcode nicht der Weis\u00adheit letz\u00adten Schluss dar\u00adstellt. Es k\u00f6nn\u00adten sich durch\u00adaus Feh\u00adler dar\u00adin ein\u00adge\u00adschli\u00adchen haben. Alle Anga\u00adben sind also mit Vor\u00adsicht zu genie\u00dfen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Schon im M\u00e4rz wuss\u00adten wir \u00fcber ein ers\u00adtes Code\u00adfrag\u00adment zu AMDs kom\u00admen\u00adder Zen-Archi\u00adtek\u00adtur zu berich\u00adten. Erst\u00admals wur\u00adde hier der Befehls\u00adsatz ange\u00adge\u00adben, der alle moder\u00adnen Erwei\u00adte\u00adrun\u00adgen bis <span class=\"caps\">AVX2<\/span> und <span class=\"caps\">FMA<\/span> umfasst. Unser Foren\u00admit\u00adglied Dres\u00adden\u00adboy hat in sei\u00adnem eng\u00adlisch\u00adspra\u00adchi\u00adgen Blog nun \u00fcber wei\u00adte\u00adre Details berich\u00adtet und ein Block\u00adschalt\u00adbild ent\u00adwor\u00adfen, wel\u00adches Zen nach aktu\u00adel\u00adlem Wis\u00adsens\u00adstand, gew\u00fcrzt mit eini\u00adgen Ver\u00admu\u00adtun\u00adgen, zei\u00adgen k\u00f6nn\u00adte. Auf des\u00adsen Basis haben wir eine detail\u00adlier\u00adte Dar\u00adstel\u00adlung erstellt und zie\u00adhen einen Ver\u00adgleich mit Sky\u00adla\u00adke. (\u2026) <a class=\"moretag\" href=\"https:\/\/www.planet3dnow.de\/cms\/20255-analyse-der-vermuteten-zen-architektur\/\">Wei\u00adter\u00adle\u00adsen&nbsp;\u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":20350,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"ngg_post_thumbnail":0,"footnotes":""},"categories":[12,2,8],"tags":[966,108,581,656],"class_list":["post-20255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aktuelles","category-artikel","category-prozessoren","tag-amd","tag-cpu","tag-skylake","tag-zen","entry"],"share_on_mastodon":{"url":"","error":""},"_links":{"self":[{"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/posts\/20255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/comments?post=20255"}],"version-history":[{"count":63,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/posts\/20255\/revisions"}],"predecessor-version":[{"id":20740,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/posts\/20255\/revisions\/20740"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/media\/20350"}],"wp:attachment":[{"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/media?parent=20255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/categories?post=20255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.planet3dnow.de\/cms\/wp-json\/wp\/v2\/tags?post=20255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}