Eltávolításra kerül az Alpha támogatás

Címkék

John Baldwin megkezdte a FreeBSD -CURRENT ágából az Alpha processzoros gépek működéséhez szükséges részek eltávolítását.
Mint azt a fejlesztők jelezték, ma már kevesen használják közülük ezt a portot és azok, akik néha-néha lefordítják sem ellenőrzik teljeskörűen az OS működését. Az új, portolást igénylő funkciókat pedig már nincs aki megírja erre a platformra, lényegében gazdátlanná vált.

A fentiek értelmében a következő nagyobb kiadás, a 7.0 már nem fog Alphákon futni. A többi ágból tervezett kiadások továbbra is tartalmazni fogják a platform támogatásához szükséges kódot.

Hozzászólások

Azért zárták le az Alpha fejlesztését, hogy helyet csináljanak az Itaniumnak. Aztán persze a project szarba szökkent, úgyhogy gyönyörűen kicsináltak egy architektúrát, ami végre kivezethetett volna a 8086 és az XT bevezetése óta összetalicskázott baklövésekkel (=PC) való kompatibilitás őrületéből.

Van nalunk a cegnel egy ex-Compaq fejes. O azt mondta, hogy azert tettek le az Alpha fejleszteserol, mert 2003-2005 kornyeken kifogyott volna a szufla. Ertsd az x86-oson mar akkor latszott, hogy nagyobb potenciallal rendelkezhet. Ezt szepen mutatja az is, hogy azert a Power5 es az Itanium2 is lenyegesen jobb potenciallal bir, mint az Alpha (ha megelelolegezzuk az EV-8-nak azt a teljesitmenyt, amit vartak tole).

Nekem sot, ha megnezed az Alphanak is volt egy komoly megtorpanasa olyan 500-700MHz kornyeken (ekkor talan a Samsung gyartotta). A hatranyt amit ez ido alatt osszeszedett mar nem birta ledolgozni. Onnantol kezdve abbol a nimbuszbol elt, hogy a megjelenesekor 3-szor olyan magas orajelen ment, mint a cutting-edge Pentiumok (166MHz vs 500MHz). Azert lassuk be ez az elony gyorsan elolvadt.

Plusz az 500 MHz-es, EV56-os core-ral szerelt Miata-m lebegőpontos számításban abszolut skálán hármas szorzóval lehagyta a 2.4GHz-es P4-et.
Plusz a buszrendszere full 64-bit, és ha a belső cache-nél nagyobb adatmennyiségről van szó, akkor mire az egyező órajelen futó Intel meg AMD nekiindul, az Alpha már sétálva hozza visszafelé a célszalagot.
Plusz az interrupt-alrendszere nem az XT 8 csatornás vezérlőjének a továbbpatkolásával keletkezett.
Plusz nem azzal szenvedsz, hogy hogyan rögzítsd rá a kétkilós réz hűtőtornyot úgy, hogy ne tépje le a procit foglalatostól.
Plusz itt egy regiszter-dump Alpha-n és P4-en, lehet sírva fakadni:


(gdb) info reg
v0             0x0      0
t0             0x0      0
t1             0x120010e08      4831907336
t2             0x120008e80      4831874688
t3             0x2      2
t4             0x625f706475637673       7088507915272943219
t5             0x5f00000000000000       6845471433603153920
t6             0x76     118
t7             0x160059260      5905945184
s0             0x1fffff878      8589932664
s1             0x1ffffffe0      8589934560
s2             0x1      1
s3             0x1fffff710      8589932304
s4             0x160038000      5905809408
s5             0x1600169f0      5905672688
fp             0x1fffff6b8      8589932216
a0             0x1      1
a1             0x1fffff710      8589932304
a2             0x1fffff720      8589932320
a3             0x20     32
a4             0x5f     95
a5             0x160046f08      5905870600
t8             0x115b   4443
---Type <return> to continue, or q <return> to quit---
t9             0x160042128      5905850664
t10            0xf6566aa        258303658
t11            0x3ff    1023
ra             0x120000828      4831840296
t12            0x120000b90      4831841168
at             0xffffffffc3e00000       -1008730112
gp             0x120018e80      4831940224
sp             0x1fffff6b8      8589932216
zero           0x0      0
fpcr           0x800000000000000        576460752303423488
pc             0x120000ba8      4831841192
vfp            0x0      0

----


(gdb) info reg
eax            0x0      0
ecx            0x40156194       1075143060
edx            0xbffffb04       -1073743100
ebx            0x40154e80       1075138176
esp            0xbffffa70       0xbffffa70
ebp            0xbffffa78       0xbffffa78
esi            0x1      1
edi            0xbffffb0c       -1073743092
eip            0x8048394        0x8048394
eflags         0x282    642
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51

----
Plusz nincsenek benn olyan sufnituning tranyó-melléforrasztós patkók, mind pl. hogy amikor az FPU-t használod, akkor nem használhatod az MMX-et, mert ugyanazon regiszterekből dolgozik.
Plusz amikor tervezni kezdték, akkor GB-ról még szó sem volt, viszont mégsem telt be a címtartománya, hogy külön workaround-ot kelljen beépíteni a 4GB átlépéséhez.

Ez _tervezve_ volt, irgalmatlan jól össze is rakták, megy, mint a golyó, tényleg profi munka, nem pedig egy ótvar XT-t patkolgattak, hogy ugyan bírja még a versenyt egy kicsit.
Csak hát, ahogy anno a Motorola procik esetén, itt is a marketing elb@szta az egészet.

Van élet az intelen túl is, és ha ismerkedtél egy kicsit ilyennel, akkor eléggé sivárványos látni, hogy mi is van a péécéében.

A dolog elvi reszevel egyetertek, a lebegopontos tesztet megneznem. Kerek-perec hulyesegnek tartom az eredmenyedet.

http://www.netlib.org/lapack/lug/node71.html

Ezek valodi meresek, egy eleg hiteles forrasbol. A Miata a Pentium III-nal hol erosebb - hol gyengebb proci lebegopottyben. Az alap matematikai kernelekben gyorsabb (akar 2x is), de a komplikaltabb feladatoknal (sajatertek, sajatvektor, SVD) a P3 jobb ugy 20-30%-al furgebb, de neha meg a P2 is jobban muzsikal.

http://www.tacc.utexas.edu/~kgoto/

Esetleg erdemes ezt megnezni. Talan a leggyorsabb matematikai kernel irojanak oldala: Pentium4 2.25GHz teljesitmenye DGEMM (matrixszorzas): ~4GFlops, Compaq Alpha 667MHz ~1.3GFlops.

A matrixmeretek boven 4000 oszlopig mentek, ami testverek kozott 500 megasnal nagyobb matrixmeretet jelent. Szoval ez mar nem csak a cache hatokore, boven dolgozott a memoriabusz is.

Az Alpha buszatol meg nem kell hanyatt szedulni, mert konkretan az EV-7 busza volt a Duronban is. A hetedik es nyolcadik generacios AMD procik es az Itaniumok masodik sorozata nagyon sokat felhasznalt az Alpha technologiaibol, de hidd el sok szempontbol mar tulleptek a nagynevu oson.

Talan az Alpha egyetlen monumentalis alkotasa az L2 cache lehetett, ami valami 7 utas asszociativ elven ment. Ez kurva draga dolog lehetett, nem csoda, hogy nemigen masoltak le. Mernoki szempontbol kicsit overkill lehetett, mert ehhez mar direkt kellett olyan kodot fejleszteni, amivel demonstralni lehet a rendszer elonyeit....

A regiszterek szama meg az assemblyben kodolo parszaz ember kivetelevel senkit nem erdekel. De most idecibalhatnank az Itanium 2 regiszterkeszletet, es akkor mar az lenne a legmenobb e-penis. Nem ettol fugg egy architektura eletkepessege (lasd a p4 rohejesen keves regiszterrel milyen jol fogy).

Jó, egy 'csalást' elismerek: a pentiumon gcc-t használtam (-O3-mal), az alpha-n meg compaq c-t (-O4-gyel, fast floating point lib-bel), valamint 64bites lebegőpontossal mértem, amit az alpha egy művelettel kezel. A gcc az alpha-n is siralmasan lassú kódot generált, ugyanígy a rendes 80 bites lebegőpontos számításnál is esett valamennyit a teljesítmény, bár nem akkorát, mint a ccc->gcc viszonylatban. Abban igazad van, hogy úgy lett volna fair, ha vagy mindkét helyen a gcc-t használom (csak akkor azt is mérem, hogy melyiket milyen jól támogatja), vagy a pentiumon az icc-vel mérek.
Amúgy a méréseim adatai és a használt források:
https://herba.elte.hu/~simon.gabor/alpha_meres.tgz

Az eltén van a gép, a tápfeszt is onnan kapja.
Múlt héten is kirúgták alóla a sámlit, tegnap is, azt meg nem merem beállítani, hogy delej feljövetelekor automatice induljon, mert azokból a tyúkbélhúzó drótostótokból kinézem, hogy elkezdik ki-be kapcsolgatni a megszakítót, én meg nem szeretném, hogy a táp egyszer csak feladja az osztályharcot, és azt mondja, hogy akkor onnantól bajlódjon a 230V-tal az alaplap.
Ezért aztán az ilyen mókáknál telefon be a tanszékre, csak most épp mindenki terepgyakorlaton van, nekem meg nem lenne jó bemennem, mert még a végén csúnya szavakat mondanék a villanyszerelő bácsiknak.
Mindegy, közben kiraktam otthonra, bocs a lassúságért, egy rongyos adsl végén lóg a gép:
https://fules.dyndns.org/alpha_vs_amd.tgz

Hat elso ranezesre baromi slendrian az ugy...

Most csak a Pentium-Alpha viszonylataban sorolnam, ami szerintem problemas:
- O4 (Alpha) vs. O3 (Penti) flag miert volt?
- SSE/SSE2 kapcsolo miert hianyzik?
- Miert mered az egesz futasi idot? Miert nem csak a belso ciklust? Igy kis ertekeknel nagyon sok minden torzitja az adataidat.
- Egyeb flagek nem segitettek volna?
- ...

Majd meg megnezem a kodot, aztan irok....

- O4 ill. O3: azért volt, mert a használható teljesítményt akartam mérni, ui. hiába gyors egy proci, ha a fordító trehány
- msse3: Ezt kifelejtettem, igazad van.
- teljes futási idő: igazából az 1..10 sec időtartományon gondoltam mérni a dolgokat, ahol ezek a torzítások elhanyagolhatóak lennének, csak amikor egyes architektúrákon ez tízszer annyi ideig tartott volna, akkor inkább lefelé bővítettem a skálát. Egyébként igaz, a kisebb időeredményű tesztek megbízhatatlanabbak.
- egyéb flagek: lásd msse3

Meg egy aprosag: problemasnak erzem a 3.0-as gcc sorozat hasznalatat. Kodgeneralas teren mind az elodje, mind az utodai SOKKAL jobbak voltak. Es ez megint az x86-os procik hatranyara valik. A helyedben vagy 2.95-ot vagy 3.4-et hasznalnek.

Ha nem banod, akkor en is lefuttatok egy-ket merest. Aztan majd kuldok eredmenyt.

Lenne egy offtopic kerdesem: mennyiert jutottal hozza a Miatahoz? Hol szerezted?

Nem akarom vedeni az x86 archot, mert telleg eleg gaz, de azert kicsit korrigalnam az osszehasonlitasodat:

- a regiszterek szama, ha igy nezzuk, tobb, de pl. az x86-nal nem latom az fpu, es sse regisztereket kilistazva... valamint az alpha-nal vannak vicces resziszterek, mint pl. a zero, ami a mips-hez hasonloan konstans erteku, tehat nem nagyon szamit regiszternek, csak egy workaround a cpu azon "hibajara" hogy eleg benan kezeli a konstansokat.

- az mmx vs. fpu "problema" anno egy workaround volt, ami azert kellett hogy a mar meglevo multitask os-ek (win9x) ne basszak szet a regisztereket, ezek ugyanis taszk valtaskor csak a cpu, fpu regisztereket mentettek le (az mmx-et meg nem ismertek). igy az mmx az fpu regiszterbe tarolt, hogy az os lementse/visszatoltse oket jol. az sse-nel ez mar nincsen. volt is gaz az sse-vel, regebbi windozok eleg rosszul viszonyulnak hozza, patchelni kellett rendesen...
(pl. ezert is van kikapcsolva az sse support a win32-es mplayerben)

- a 4gb memorialimit is egy erdekes kerdes. ugyebar az alpha-kat anno nem olcso otthoni/irodai gepnek terveztek, mint az xt-ket. es az xt tervezeskor a 4gb epp olyan elerhetetlen vegtelen meretnek tunt 20 eve... mellesleg a 64 bites x86 procik mar szepen cimzik a memoriat 4gb-on tul is.

sajnos a pc-knel kimaradt egy olyan szintu valtas mint anno a mac-eknel, amikor kidobtak a regi 68xxx procit es lecsereltek powerpc-re, majd raktak az os-be egy emulaciot hogy a regi appok is menjenek. pc-nel maradt a vegtelen kompatibilitas a legelso xt-ig visszamenoleg... ki kene dobni az egeszet, csinalni egy uj procit a regi nyugok nelkul, egy normalis memoriabuszt stb, majd portolni ra a winxp-t es a tobbi os-t, rakni belejuk egy cpu emut es kesz... csak ez egyreszt sokba kerulne, ki kene dobniuk az eddig fejlesztett x86 procit/chipeket, masreszt az intel es amd sose tudna megegyezni egy kompatibilis cuccban, az m$ meg nem fog 1-nel tobbet tamogatni.

A'rpi

Én a 386 kijövetelekor csodálkoztam, hogy mi a f.f.-ért nem hajítják ki a kompatibilitást, ott a v86 mód, gyönyörűen lehetett volna emulálni a 8086-ot meg a 286-ot, ha már muszáj.
Ui1.: Kb. ezidőtájt láttam valami apple gépen ablakban pc emulációt, aminek a dos debug-jában megírt copper effekt rendesen futott. Mondom ablakban...
Ui2.: Nem tudom, sírjak-e vagy röhögjek, amikor pentium-N gépek biosában látom az 'Enable A20' opciót. Vajon a billentyűzetvezérlőn keresztül még mindig lehet resetelni a procit? (Anno ez azért kellett, mert a 286 nem bírt visszajönni abból a kvázi-védett módból, ahol nem volt rendes tárvédelem, és a szegmensek továbbra is max. 64k-sok lehettek...)

Kicsit el vagy tevedve, az A20 - mint a neve is mutatja: Address bit 20 - nem a procit resetelte, hanem megnyitotta az utat az 1MB (2^20) folotti memoriahoz. Es az XMS driver (himem.sys pl) engedelyezte altalaban.
Amugy azt lehet valasztani a BIOS-okban, hogy ez az osregi kompatibilis modban (billentyuzetvezerlon kereszztul) vagy "fast" modban (franc tudja hogy, de nyilvan gyorsabban :)) menjen.

Amugy a legjobb mode a flatreal volt (386-tol folfele), amikor a procit atkapcsoltad vedett modba, kikapcsoltad a 64k-s szegmenshatart, aztan visszakapcs real mode-ba. Igy nyugodtan hasznalhatok voltak a dos, bios interruptok stb, debuggolni is lehetett turbo debuggerrel :) , de kozben a 32 bites regiszterekkel ki lehetett cimezni az egesz memoriaba... mexunt a 64k limit.

A'rpi

Az A20-at nem a proci reset kapcsán mondtam. Amúgy, csak a korrektség kedvéért :), nem a >1M-hoz nyitotta meg az utat, hanem a páratlan megabyte-okhoz, hiszen ez csak egy egybites érték volt, ami hozzá-és-elődött az A20 címvonalhoz, így az 1..2M címeken is a 0..1M látszott, a 3..4M-n a 2..3M, stb.
A proci reset-es játék meg az volt, hogy a bill.vezérlő egyik lábát visszakötötték a proci reset-jére, és az azt vezérlő bitet kellett 6 us-ig (ha jól emlékszem) meghúzva tartani a reset-hez. (Érdekes mellékhatások voltak, amikor a 386-oson <6us -re húzta meg az ember. Mintha a mikrokód csak félig inicializálódott volna, vagy berúgott volna a proci, voltak utasítások, amik eléggé hektikusan működtek onnantól, csak hát túlnyomórészt egyszerűen kifagyott a gép :).)
A realflat tényleg szép volt, csak az így áttrükközött descriptor-cache-ek egész a szelektor-reg következő módosításáig éltek, azaz gyakorlatilag az fs-t meg a gs-t lehetett erre használni, a többit a dos/bios elpiszkálta. De azért ez is szép volt...

Ellenben kezd kicsit olyan "Elaggott Programozók Nosztalgiaklubja"-jelleget ölteni a dolog, úgyhogy abba is hagyom, mielőtt még előásnám az Enterprise-t a sufniból :).

A PC-knel szerintem nem nagyon lehetett volna ilyen valtast megkockaztatni. Az uj procik sosem voltak olyan atutoen jok, hogy az emulacio szepen mukodhessen.

Azert a 68xxx -> PowerPC valtasban boven volt annyi tartalek, hogy a regi appok emulacioban is legalabb olyan jol menjenek, mint a korabbi generacion nativan.

Masfelol az a szoftvermennyiseg, aminek emulacioban kellett futnia lenyegesen kisebb lehetett, mint a PC-n.