Dlaczego 64-bity!?

data: 04-06-2006 | autor: Uran | kategoria: Artyku³y

Sporo czasu minê³o od mojej ostatniej publikacji. Lato i jesieñ s± dla mnie okresem bardzo intensywnej pracy zawodowej. Ca³kiem zwyczajnie, w nawale obowi±zków s³u¿bowych i domowych, brakowa³o mi czasu i ochoty aby zasi±¶æ za klawiatur±. Teraz mogê nadrobiæ redaktorskie zaleg³o¶ci. Zastanawia³em siê na jaki temat tym razem napisaæ kilka(?) s³ów. Czy dokona³em trafnego wyboru? Z tak± nadziej± pozdrawiam wszystkich Czytelników i wierzê, ¿e i tym razem felieton siê spodoba.

Wstêp

To bardzo dobre pytanie! A odpowied¼ wcale nie jest ³atwa i oczywista. Zanim spróbujê jej udzieliæ popatrzmy na fakty, które mia³y miejsce w niedalekiej przesz³o¶ci. Na pocz±tku 2003 roku, za spraw± IBM, pojawi³ siê 64-bitowy PowerPC 970, natychmiast u¿yty w stacjach roboczych serii G5 firmy Apple, reklamowanych jako najszybsze komputery ¶wiata. Nieco pó¼niej, tego samego roku pojawi³ siê Opteron, pierwszy przedstawiciel CPU 64-bit wyprodukowany przez AMD i w zasadzie przeznaczony do pracy w serwerach. Jednak szybko okaza³o siê, ¿e nie ma sobie równych w osi±ganiu maksymalnych FPS w grach komputerowych! Na rynku serwerów królowa³o w tym czasie 64-bit Italium 2. Jednocze¶nie Intel udowadnia³, ¿e stosowanie technologii 64-bit w zastosowaniach biurowo-domowych mija siê z celem i nie bêdzie przedmiotem zainteresowania firmy. Jak siê niebawem okaza³o, Opteron spu¶ci³ straszne lanie konkurentowi (cena, wydajno¶æ) i AMD zaczê³a powoli dominowaæ na rynku serwerów, a jedynym problemem zaczê³y byæ mo¿liwo¶ci produkcyjne, o wiele mniejsze od konkurencyjnego giganta. Natychmiast da³a siê zauwa¿yæ zmiana frontu Intel’a, który rozpocz±³ wprowadzanie technologii 64-bit do swoich flagowych produktów. Wszystko to jest opisane w moich poprzednich felietonach i nie widzê sensu aby siê powtarzaæ. Pomiñmy te¿ milczeniem teorie spiskowe Intel-Microsoft, maj±ce na celu opó¼nienie wprowadzenia na rynek oprogramowania i technologii 64-bit, gdy¿ s± to jedynie spekulacje, których nie sposób udowodniæ. Wa¿ne jest to, ¿e wreszcie powsta³a wersja 64-bit OS, przeznaczona wy³±cznie dla procesorów AMD. Oczywi¶cie tylko w wersji beta, a docelowy Longhorn nie pojawi siê przed 2006 r. Ale jednak kiedy¶ ujrzy ¶wiat³o dzienne i odpowied¼ na tytu³owe pytanie powinna byæ udzielona. Wprawdzie fakt, ¿e Longhorn powstaje ju¿ sugeruje, ¿e u¿ywanie 64-bit OS ma sens nie tylko do obs³ugi serwerów i specjalizowanych programów naukowych, ale równie¿ biurowo-domowych. Zw³aszcza tych multimedialnych, oczywi¶cie z grami komputerowymi na czele. Jednak nie wyja¶nia kwestii podstawowej: dlaczego? Próbê odpowiedzi przedstawiam P.T. Czytelnikom, zaznaczaj±c jednocze¶nie, ¿e tak jak poprzednie moje felietony, jest ona kompilacj± materia³ów znalezionych w ró¿nych artyku³ach publikowanych w sieci, a wiele zagadnieñ zwi±zanych z tematem znacznie upraszcza lub wrêcz pomija. To pozwala (moim zdaniem) na¶wietliæ ca³o¶æ zagadnienia i nie po¶wiêcaæ zbyt wiele uwagi szczegó³om. Kto jest ich ciekawy - niech u¿yje Google!

Architektura 64-bit

Intuicja podpowiada, ¿e powinna byæ dwa razy lepsza (cokolwiek to znaczy) od architektury 32-bit. Kto chocia¿ trochê zna konstrukcjê wspó³czesnych CPU wie doskonale, ¿e bêd±c one nominalnie procesorami 32-bit, zawieraj± w swojej strukturze rejestry 32, 64, 80 a nawet 128 bitowe. Jaka jest wiêc zasada klasyfikacji procesorów, która okre¶la do jakiej grupy je zaliczamy? Przyjêto, ¿e decyduje o tym rozmiar tzw. GPR (General Purpose Registers). S³u¿± one g³ównie do przechowywania adresów. Tak na marginesie: w architekturze x86 jest ich 8, natomiast architektura PC oferuje ich 32. Wiadomo ju¿ co musi byæ koniecznie zmienione: rejestry GPR musz± mieæ rozmiar 64-bit. Pozosta³e, niezbêdne zmiany s± do¶æ oczywiste: wszystkie rejestry ALU (Arithmetic Logic Unit), przetwarzaj±ce dane zawarte w innych rejestrach, musz± równie¿ przej¶æ na rozmiar 64-bit. Co to oznacza w praktyce pokazuje poni¿szy rysunek, który przedstawia 2-bit ALU, pozwalaj±ce wybieraæ warto¶æ na wyj¶ciu R, w funkcji 2 bitów wej¶ciowych "a" i "b" oraz kodu Op okre¶laj±cego wykonywan± operacjê: "0" aby wykonaæ logiczne AND (i), "1" aby wykonaæ logiczne OR (lub) i "2" aby wykonaæ logiczne dodawanie. Retenue entrante i Retenue sortante oznaczaj±, odpowiednio, wprowadzane i zapamiêtane dane z innego ALU, oraz zapamiêtane dane, wychodz±ce z aktualnie pracuj±cego ALU, zale¿ne od stanu bitów "a" i "b". Liczba niezbêdnych bramek logicznych (czyli tranzystorów, które musz± zostaæ wytworzone w strukturze rdzenia CPU) ¶ci¶le wi±¿e siê z rozmiarem bitowym operandów, na których wykonywane s± dzia³ania. Jest to najbardziej kosztowny element zmiany architektury z 32-bit na 64-bit, jednocze¶nie "przy okazji" zwiêkszaj±cy ilo¶æ wydzielanego ciep³a. W ¶wietle powy¿szego jest chyba równie¿ oczywiste, ¿e rozmiary wszystkich szyn transportuj±cych dane te¿ musz± ulec podwojeniu. Natomiast, byæ mo¿e ku zaskoczeniu wielu Czytelników, rozmiary wykonywanych instrukcji wcale nie musz± ulec zmianie!


Architektura 64-bit bez problemu mo¿e pracowaæ, wykorzystuj±c kod operacji 32-bit. Co nie oznacza, ¿e nie mo¿na, a raczej nawet trzeba, tworzyæ oprogramowanie w pe³ni wykorzystuj±ce mo¿liwo¶ci nowej architektury.

Co oferuje architektura 64-bit?

Czemu ma wiêc s³u¿yæ proponowana zmiana?! Zacznê od niezbyt odkrywczego i do¶æ nieciekawie brzmi±cego stwierdzenia, ¿e samo przej¶cie na architekturê 64-bit nie powoduje automatycznego wzrostu prêdko¶ci wykonywania aplikacji 32-bit. Co gorsze, jest du¿a szansa, ¿e zaobserwujemy efekt odwrotny. Niektóre aplikacje 32-bit bêd± wykonywa³y siê d³u¿ej, co wi±¿e siê z pewn± specyfik± jêzyków wysokiego poziomu, np. C, gdzie rozmiar instrukcji nie jest ¶ci¶le zdefiniowany i zale¿y od rozmiaru warto¶ci ca³kowitej (int), jakiej¶ danej oraz konkretnej implementacji. Je¿eli w wyniku tego rozmiar wszystkich przeprowadzanych operacji zostanie okre¶lony na 64-bit, to zajm± one wiêcej pamiêci, w tym równie¿ cache. W rezultacie aplikacja bêdzie wykonywa³a siê d³u¿ej. Problem rozwi±zano definiuj±c w procesorze rozmiar danych aplikacji 32-bit na 32-bit! Mas³o ma¶lane, ale okaza³o siê skuteczne. Piêknie, ale gdzie s± wreszcie jakie¶ korzy¶ci ze zwiêkszenia liczby kosztownych tranzystorów i wzrostu ilo¶ci wydzielanego ciep³a?! Pierwsz± korzy¶ci± jest mo¿liwo¶æ dzia³ania na o wiele wiêkszych liczbach. W praktyce dotyczy to g³ównie kilku specjalizowanych aplikacji, stosowanych do obliczeñ naukowych (np. Maple). Drug± dziedzin±, gdzie doskonale sprawdza siê architektura 64-bit jest kryptografia. Ale jest jasne, ¿e te dziedziny stanowi± margines zastosowañ i nie ma co marzyæ o sukcesie na rynku masowym. A wiêc gdzie s± konfitury?! Otó¿ architektura 64-bit pozwala zapomnieæ o limicie 4 GB pamiêci RAM! Przypomnijmy, ¿e teoretycznie: 232=4,3 miliarda, natomiast 264=(4,3 miliarda)2. Nawet trudno sobie wyobraziæ tak± liczbê. W praktyce przestrzeñ adresowa A64 okre¶lana jest jedynie 48 bitami, ale i tak wynosi to 256 Tb. Jednak dla Jana Nowaka nie jest to czynnik decyduj±cy - jeszcze d³ugi czas aplikacje "domowe" nie bêd± wymaga³y posiadania na pok³adzie takiej ilo¶ci pamiêci. Obecnie 512 Mb, a w zastosowaniach biurowych nawet 256 Mb, statystycznemu u¿ytkownikowi spokojnie wystarcza. S± jednak programy graficzne (3D Studio max lub Maya), które maj± olbrzymi apetyt na RAM i powoli zbli¿aj± siê do teoretycznej granicy 4 Gb. Sprawa wygl±da zupe³nie inaczej je¿eli chodzi o rynek serwerów oraz stacji roboczych. Niewiarygodnie du¿e ilo¶ci sk³adowanych i przetwarzanych informacji ju¿ obecnie wymagaj± u¿ywania RAM w maksymalnie mo¿liwej dostêpnej ilo¶ci. Serwer z mo¿liwo¶ci± obs³ugi jedynie 4 GB RAM-u po prostu siê "udusi". Mówiê tu nie o serwerkach pracuj±cych na potrzeby Internetu osiedlowego, ale o maszynach o wiele potê¿niejszych, obs³uguj±cych ¶wiatowe centra us³ug sieciowych lub systemy informatyczne miêdzynarodowych korporacji. Stosuj±c ró¿ne triki oraz rejestry wewnêtrzne o wiêkszych ni¿ 32-bit rozmiarach obecne procesory 32-bit s± w stanie adresowaæ do 16 TB pamiêci. Ca³kiem sporo, ale co¶ za co¶. Oczywi¶cie chodzi o szybko¶æ. Tymczasem "prawdziwa" architektura 64-bit robi to o wiele szybciej i zupe³nie naturalnie, w ramach przypisanych sobie mo¿liwo¶ci technicznych. Ponadto jeszcze jedna rzecz wydaje siê byæ do¶æ wa¿na: lepiej dzisiaj przygotowaæ "miêkkie" przej¶cie pod potrzeby jutra, ni¿ zostaæ zaskoczonym wymaganiami, którym nie bêdziemy w stanie sprostaæ. A postêp i wymagania w tej akurat bran¿y rosn± w zawrotnym tempie.

Gdzie ta rewolucja?

Mówi±c szczerze, to powy¿sze wywody zapewne nie wywar³y na nikim piorunuj±cego wra¿enia. Na mnie te¿ nie! Gdybym w tym momencie zakoñczy³ felieton to zapewne Czytelnicy zgodnym chórem by orzekli, ¿e tym razem siê nie przemêczy³em i wyra¼nie obni¿y³em loty. Aby tego unikn±æ postanowi³em odpowiedzieæ na jeszcze jedno pytanie: dlaczego procesory A64 robi± tak± osza³amiaj±c± karierê?! I to pomimo, praktycznie bior±c, braku znacz±cego wsparcia ze strony producentów oprogramowania, systemu operacyjnego i sterowników. O faktycznym i realnym sukcesie mo¿na bêdzie mówiæ gdy pojawi siê pe³nowarto¶ciowy(?!) 64-bit OS (Longhorn). To, niestety, nie nast±pi zbyt szybko. ATI i nVidia doceniaj± wagê zagadnienia i powoli opracowuj± 64-bit sterowniki do swoich kart. Nie ¶piesz± siê, skoro i tak nie ma pe³nowarto¶ciowego ¶rodowiska, w którym mog³y by one pracowaæ. Na razie pojawiaj± siê ich wersje beta, z licznymi b³êdami, zmniejszaj±cymi wydajno¶æ. Poza aplikacjami naukowymi nie ma zbyt wiele programów u¿ytkowych w pe³ni wykorzystuj±cych mo¿liwo¶ci technologii 64-bit. Jednym z nich jest program "Panorama Factory 2.4", s³u¿±cy do ³±czenia w jedno panoramiczne zdjêcie, kilku fotek tej samej okolicy. Przeprowadzone testy wykaza³y


25% oszczêdno¶æ czasu w porównaniu do wersji 32-bit. W niektórych przypadkach wykonanie operacji ³±czenia by³o mo¿liwe jedynie w wersji 64-bit z uwagi na konieczno¶æ dostêpu procesora do zbyt du¿ych bloków pamiêci, oraz jego chêci do wykonywania zbyt wielu czynno¶ci jednocze¶nie. Jak na razie brak równie¿ gier napisanych specjalnie do pracy w ¶rodowisku 64-bit. Pokonanie wszystkich przeszkód jest jednak tylko kwesti± czasu. Miejmy nadziejê, ¿e nie siêgaj±cego poza 2006r. Wszystkie wymienione elementy musz± powstaæ i dzia³aæ niezawodnie, aby umo¿liwiæ zademonstrowanie na co naprawdê staæ te procesory. Nie mo¿na powiedzieæ, ¿e "w temacie" nic siê nie dzieje, ale dzieje siê o wiele za wolno. Trudno. Dobrze, ¿e w ogóle co¶ siê dzieje! Bez wpadania w przesadê, ale A64 wyprzedzi³y swój czas, nadaj±c nowy sens przestarza³ej technologii x86. Nie mam tu zamiaru umniejszaæ osi±gniêæ konkurencji, która mo¿e siê pochwaliæ np. Hyper Threadingiem, znacznie zwiêkszaj±cym wydajno¶æ w zastosowaniach multimedialnych, oraz wy¿sz± czêstotliwo¶ci± zegara. Co prawda, to prawda! Ale z kolei kompleksowe rozwi±zanie w A64 problemu komunikacji z pamiêci± poprzez umieszczenie jej kontrolera w CPU, rezygnacja z klasycznego FSB na rzecz Hyper Transportu i perspektywiczne spojrzenie na mo¿liwo¶æ pracy wielordzeniowej (prze³±cznik X-bar) wydaje siê o rekompensowaæ. Na dzieñ dzisiejszy, zw³aszcza w grach, procesory A64 nie maj± sobie równych. A jest to dziedzina, która bardzo silnie wp³ywa na zachowania rynku. Trzeba te¿ jasno powiedzieæ, ¿e pracuj±c z aplikacjami 32-bit procesory A64 nie maj± mo¿liwo¶ci wykazania swojej prawdziwej warto¶ci. Tak naprawdê lwi pazur mog± pokazaæ dopiero przy pracy w ¶rodowisku w pe³ni 64-bit. Powody s± dwa: dopiero wtedy s± dostêpne ich wszystkie rejestry oraz wreszcie pojawia siê mo¿liwo¶æ swobodnego operowania o wiele wiêkszymi blokami pamiêci! Takim ¶rodowiskiem s± systemy operacyjne obs³uguj±ce serwery. I jest to druga dziedzina, w której procesory A64 odnosz± zas³u¿ony sukces, pokonuj±c konkurencjê cen± i osi±gami. Dosz³o do tego, ¿e Dell, sztandarowy wspó³pracownik Intel’a, powa¿nie rozwa¿a produkcjê serwerów opartych o Opterony, chocia¿ oficjalnie g³osi, ¿e na procesory AMD brak zapotrzebowania na rynku! Co za hipokryzja! Có¿, w biznesie nie ma sentymentów, licz± siê pieni±dze!

Jak do tego dosz³o?

Kiedy in¿ynierowie AMD rozpoczêli pracê nad nowym (K8) procesorem, stanêli przed prawdziwym wyzwaniem. Jak rozwin±æ architekturê licz±c± sobie wiêcej ni¿ 20 lat, która obs³ugiwa³a 7 kolejnych generacji? I czy w ogóle jest to dobry pomys³? Odpowied¼ na pierwsze pytanie kryje siê w historii rozwoju technologii x86. Poczynaj±c od procesora 8080, który sta³ siê podstaw± konstrukcji procesora 8086, poprzez 80286, 80386, 80486 do Pentium. Ewolucja ta, tak naprawdê, by³a kwesti± wyboru koncepcji dzia³ania procesora: CISC (Complex Instruction Set Computer) lub RISC (Reduced Instruction Set Computer). Do 80386 w³±cznie, procesory Intel’a by³y procesorami CISC. No tak! Wtajemniczeni wiedz± w czym rzecz! Ale ca³a reszta?! Muszê w skrócie wyja¶niæ o co chodzi. Architektura CISC to procesor cechuj±cy siê: du¿± ilo¶ci± z³o¿onych i maj±cych zmienny format (mikrokodowanych) rozkazów, ma³ym zestawem rejestrów strukturalnych oraz zazwyczaj rozbudowanym sposobem adresowania. Podstawowe cechy architektury RISC to zastosowanie: niewielkiej listy prostych rozkazów, sta³ej d³ugo¶ci rozkazu, du¿ej ilo¶ci uniwersalnych rejestrów wewnêtrznych, uproszczenie trybów adresowania i, zazwyczaj, zastosowanie architektury load/store (³aduj/zapisz), czyli rozdzielenie rozkazów operuj±cych na pamiêci od reszty rozkazów. Wszystko jasne? Pewnie nie, ale pro¶ciej siê nie da! Aby wyja¶niæ pewne pojêcia, trzeba znaæ inne, które wymagaj± znajomo¶ci kolejnych, itd. B³êdne ko³o! Trudno! Nowo powsta³y Pentium, ze swoj± szyn± danych do pamiêci o szeroko¶ci 64-bit, móg³ jednocze¶nie wykonywaæ dwie instrukcje, poniewa¿ posiada³ równie¿ 2 jednostki ALU. By³o to dobre rozwi±zanie, ale tylko chwilowo! Intel u¶wiadomi³ sobie, ¿e bêdzie mia³ k³opot z konkurencj± (Apple, IBM, Motorola), która przesz³a na technologiê RISC, wyra¼nie zyskuj±c na szybko¶ci dzia³ania swoich CPU. Wtedy Intel wykona³ doskona³y ruch: przebudowa³ czê¶ciowo wewnêtrzn± architekturê procesora tak, aby nadchodz±ce do niego instrukcje x86 by³y dzielone na mniejsze "porcje" i wysy³ane do jednostek wykonawczych. Pozwoli³o to na pracê quasi RISC, podnosz±c znakomicie wydajno¶æ Pentium Pro, jednocze¶nie zapewniaj±c kompatybilno¶æ "wstecz" nowych CPU, gdy¿ pozosta³a czê¶æ procesora pozosta³a niezmieniona. Innymi s³owy Pentium Pro sta³ siê procesorem RISC, emuluj±cym procesor CISC! Podnosz±c czêstotliwo¶æ zegara CPU, Intel bez problemu móg³ rywalizowaæ na rynku z procesorami konkurencji. Tymczasem atak nadszed³ nie z platformy procesorów RISC, ale z najmniej spodziewanej strony - s³abej ekonomicznie AMD! Powsta³y Athlon dzia³a³ na podobnej zasadzie jak Pentium: dzieli³ nadchodz±ce instrukcje x86, ale posiada³ wiêcej jednostek wykonawczych, jednocze¶nie usi³uj±c zbli¿yæ siê mo¿liwo¶ciami w obliczeniach zmiennoprzecinkowych do osi±gniêæ procesorów RISC, co uda³o siê osi±gn±æ jedynie czê¶ciowo - g³ównie z uwagi na niewystarczaj±c± ilo¶æ wewnêtrznych rejestrów. Athlon, oczywi¶cie, nie móg³ konkurowaæ z takim procesorem jak Alpha 21264, ale czyni³ to z powodzeniem z procesorami Ultra Sparc i PowerPC. In¿ynierowie AMD postanowili dzia³aæ na zasadzie - im wiêcej, tym lepiej! Przyby³o dekoderów, jednostek wykonawczych i w rezultacie - pracy równoleg³ej wewn±trz procesora. Efekt: wzrost wydajno¶ci przy nie zmienionym zegarze. By³ taki moment, ¿e nowo powsta³e Athlony by³y wydajniejsze od intelowskiego Pentium! Kontratak giganta by³ szybki i skuteczny. Wzrost czêstotliwo¶ci FSB za³atwi³ sprawê, ale i tak procesory AMD dzielnie konkurowa³y z potentatem. Kto wie, czy w³a¶nie wtedy nie zrodzi³ siê w Intel’u fatalny pomys³ "za³atwienia" konkurenta czêstotliwo¶ci±. Okaza³ siê on drog± do nik±d, ale nie uprzedzajmy faktów. Przecie¿ w³a¶nie powstawa³ rdzeñ Willamette, wyposa¿ony w potê¿n± jednostkê do obliczeñ zmiennoprzecinkowych - FPU (Floating Point Unit) oraz nowe instrukcje SSE2, oferuj±ce obliczenia skalarne o podwójnej precyzji. Nie da siê ukryæ, ¿e w tym momencie jedynie Intel móg³ sobie pozwoliæ na tak szerok± modyfikacjê rdzenia. Oczywi¶cie chodzi³o o koszt wprowadzenia tak daleko posuniêtych zmian. Okaza³o siê jednak, ¿e wprawdzie wydajno¶æ nowego Pentium wzros³a, ale nie na tyle aby pozbawiæ AMD mo¿liwo¶ci konkurowania. G³ównie cen±, co by³o powodem licznych problemów AMD. W rezultacie walki konkurencyjnej, Athlona uczyniono jeszcze bardziej superskalarnym, a P4 - szybszym. Wprawdzie mo¿na naiwnie uwa¿aæ, ¿e wystarczy do rdzenia CPU do³o¿yæ jeszcze wiêcej jednostek wykonawczych, rejestrów, pipelines, zwiêkszyæ czêstotliwo¶æ pracy i problem jest rozwi±zany. Niestety to z³udzenie, wynikaj±ce z tej samej przyczyny, któr± opisuje stary przyk³ad: jeden cz³owiek buduje dom rok, dwóch - pó³ roku, czterech - w kwarta³ itd. Jednak nie da siê wybudowaæ domu w 1 dzieñ, bo przecie¿ 365 robotników nie jest w stanie pracowaæ jednocze¶nie, pomijaj±c oczywi¶cie wymagania wynikaj±ce z technologii. Jak wiêc "wydobyæ" wiêksz± wydajno¶æ z przestarza³ej architektury x86, której g³ównym fundamentem jest powolna szyna ISA? Jeszcze trochê cierpliwo¶ci. Wprawdzie za spraw± szyny PCI mo¿na by³o odes³aæ szynê ISA do muzeum, ale to w niczym nie zmienia³o problemów architektury. Wydawa³o siê, ¿e w 1993 roku procesory PowerPC wieszcz± koniec architektury Intel'a. Nic takiego siê nie zdarzy³o, pomimo wyra¼nych starañ Wielkiej Trójki (Apple, IBM, Motorola) aby tak siê sta³o, a procesor Alpha Digital zosta³ wykupiony przez Intel’a! Co nie uda³o siê takim potentatom, (równie¿ finansowym) jak mog³o siê udaæ firmie skazanej na kompatybilno¶æ z ISA x86 (lub PCI, co w sumie na jedno wychodzi)?! Bo przecie¿ ca³kiem zwyczajnie AMD nie by³o staæna tworzenie i promowanie nowej architektury! Zadanie wydawa³o siê niemo¿liwe do rozwi±zania. A jednak...

AMD64

Rozwi±zanie, jak to czêsto bywa, ukryte by³o w przesz³o¶ci! Poniewa¿ "wyduszenie" wiêkszej wydajno¶ci z architektury x86 by³o by trudne i bardzo kosztowne, AMD postanowi³ zmieniæ przedmiot swojego dzia³ania, oferuj±c wsparcie dla programów 64-bit. Nie by³a to technologia, której potrzebowa³ Jan Nowak, ale stacje robocze i serwery - jak najbardziej! Ponadto Intel (przynajmniej oficjalnie) od¿egna³ siê od adaptowania architektury x86 na potrzeby aplikacji 64-bit. AMD pozosta³a sama na placu boju, kreuj±c standardy, które wreszcie pozwoli³y nie ogl±daæ siê na to co zrobi konkurent. Przypomnê tu jedynie historiê technologii Clackamas, nastêpnie przechrzczonej na EM64T (Intel wreszcie siê po³apa³ co mu bezpowrotnie mo¿e umkn±æ) oraz bitu NX (No eXecute), oficjalnie uznanego przez Microsoft za obowi±zuj±cy. Aby przej¶æ na architekturê 64-bit, zachowuj±c jednocze¶nie pe³n± kompatybilno¶æ z 32- bit, AMD siêgnê³a do historii. Tak jak zrobi³ to Intel przechodz±c z 16-bit na 32-bit, AMD zaprojektowa³a rejestry GPR o wymiarze 64-bit. Ale, przeciwnie ni¿ Intel, in¿ynierowie AMD nie poprzestali na tej prostej operacji, lecz rozwi±zali podstawowy problem architektury x86, zwiêkszaj±c liczbê rejestrów GPR do 16. Mo¿liwo¶æ tak prosta, ¿e wcze¶niej nie zauwa¿ona! Ka¿dy procesor poza "oficjalnymi" rejestrami ma ich w swojej strukturze jeszcze spor± liczbê. Wykonuj± one ró¿ne zadania, wynikaj±ce g³ównie z rozwi±zywania problemów wynik³ych na skutek wykonywania instrukcji kodu. Nie s± one "widziane" przez kompilator i w konsekwencji nie mog± byæ u¿yte do poprawienia wydajno¶ci procesora. Wprawdzie procesory RISC maj± a¿ 32 rejestry GPR, ale i tak wzrost wydajno¶ci wynikaj±cy z prostego zabiegu jest spektakularny. Oczywi¶cie dla programów, które uwzglêdniaj± ich istnienie. A powstaje ich coraz wiêcej. Projekt Hammer "od¶wie¿aj±cy" star± architekturê musia³ rozwi±zaæ jeszcze jeden powa¿ny problem: FPU (Floating Point Unit), czyli jednostka obliczeñ zmiennoprzecinkowych. Pomimo wysi³ków in¿ynierów Intel’a i AMD wydajno¶æ tej jednostki by³a o wiele ni¿sza ni¿ w procesorach RISC. Problem wynika³ z architektury FPU, sk³adaj±cej siê z 8 rejestrów, zorganizowanych w pseudo stos. Na ka¿d± wykonywan± instrukcjê by³ u¿ywany tylko jeden operand, pozosta³e by³y sk³adowane na wierzcho³ku stosu. Aby rozwi±zaæ problem, AMD zaprojektowa³a rozszerzenie instrukcji, zwanych TFP (Technical Floating Point). Ich celem by³o osi±gniêcie wydajno¶ci FPU na poziomie najlepszych procesorów RISC. Aby to osi±gn±æ, AMD zrezygnowa³a z przestarza³ej koncepcji stosu, zastêpuj±c j± "p³ask±" konstrukcj± z wielu rejestrów. W rezultacie ta koncepcja nigdy nie zosta³a wdro¿ona, poniewa¿ AMD spostrzeg³, ¿e mo¿e zrobiæ co¶ o wiele lepszego! Po prostu u¿y³ instrukcji SSE2 Intel’a, które spe³nia³y t± sam± rolê, któr± mia³y spe³niaæ TFP! Tym prostym sposobem zyskali mo¿liwo¶æ korzystania przez swoje procesory z wszystkich optymalizacji przewidzianych dla SSE2 oraz specjalizowanego kompilatora. Niezale¿nie od tego AMD zwiêkszy³ do 16 ilo¶æ rejestrów o podwójnej precyzji, obs³uguj±cych obliczenia zmiennoprzecinkowe. Pozosta³e ulepszenia, wprowadzone w nowym rdzeniu wykonawczym, by³y niewielkie. Wyd³u¿ono nieznacznie pipeline (o 2 stopnie), co pozwoli³o ³atwiej podnosiæ czêstotliwo¶æ zegara, zwiêkszono rozmiar niektórych buforów, ulepszono algorytm dzia³ania oraz rozmiar rejestrów zajmuj±cych siê przewidywaniem skoków wykonywanego programu - z 4Kb do 16 KB. Wprowadzono równie¿ szereg ulepszeñ w organizacji pracy pamiêci cache L2 i L1, zwiêkszaj±c z 256 do 512 ilo¶æ wej¶æ do L2 i z 24 do 40 ilo¶æ wej¶æ do L1. Jednak¿e najwiêksze zmiany wprowadzono w systemie zarz±dzania pamiêci±. To by³ pomys³ pochodz±cy z procesora Alpha 21364 - kontroler pamiêci zintegrowano w rdzeniu procesora! Tradycyjne kontroler ten znajduje siê w mostku pó³nocnym (NB). Nawiasem mówi±c jest to jeden z powodów dla których standard BTX nie za bardzo siê nadaje do p³yt g³ównych obsadzonych procesorami AMD. Zmiana lokalizacji pozwala ogromnie zmniejszyæ czas dostêpu do pamiêci RAM. Testy wykaza³y, ¿e A64 ma czas dostêpu do pamiêci o 40% mniejszy ni¿ Athlon XP. W rezultacie wydajno¶æ wyra¼nie ro¶nie. Jest jednak pewna pu³apka w tym rozwi±zaniu: aby stosowaæ pamiêæ DDR2 (kiedy¶ bêd± one mia³y parametry 2-2-2-5, tak jak obecnie DDR1) trzeba generalnie przekonstruowaæ procesor i kontroler pamiêci. To nie jest zadanie ani ³atwe ani mo¿liwe do szybkiego rozwi±zania. Jednak AMD uzna³a, ¿e korzy¶ci przewa¿aj± nad niedogodno¶ciami. Ostatnim ulepszeniem by³o zast±pienie Hyper Transportem tradycyjnej szyny FSB (Front Side Bus). W zasadzie dzia³ania Hyper Transport jest podobny do szyny PCI-e, ³±cz±c bezpo¶rednio elementy przekazuj±ce sobie dane. Oczywi¶cie szybko¶æ przekazywania danych mo¿e byæ ustalana stosownie do potrzeb i mo¿liwo¶ci hardware. Wzrost czêstotliwo¶ci Hyper Transportu jest najprostszym sposobem zwiêkszenia wydajno¶ci procesora. Pierwsze Opterony pracowa³y z HT=800 MHz. Obecnie Opteron pracuje z HT=1 GHz, a jego wydajno¶æ wzros³a o oko³o 25%. Ca³kiem nie¼le, jak na konieczno¶æ ulepszenia i poprawienia wy³±cznie parametrów PCB! I w ten oto sposób niemo¿liwe sta³o siê mo¿liwe, przyprawiaj±c Intel’a o potê¿ny ból g³owy. A przecie¿ w odwodzie jest jeszcze procesor K9! To wielka niewiadoma (hyper threading?) ale sama perspektywa, ¿e prawdopodobnie w 2006 roku ujrzy on ¶wiat³o dzienne, ju¿ dzisiaj spêdza sen z powiek prezesów Intel’a. Czy bêd± mogli co¶ mu przeciwstawiæ? Po¿yjemy - zobaczymy!

Co dalej?

Niemal tradycyjnie stawiam to pytanie, ale któ¿ zna pe³n± odpowied¼? Jedna rzecz wydaje siê pewna: obaj konkurenci bêd± MUSIELI zmierzyæ siê z problemem przej¶cia na wymiar 65 nm. Wydaje siê te¿, ¿e obie firmy stawiaj± na procesory wielordzeniowe. Tutaj koñcz± siê podobieñstwa. Niezale¿nie od rewolucyjnych zmian w procesorach A64, kto¶ w AMD mia³ przeb³ysk geniuszu wprowadzaj±c do nich prze³±cznik X-bar, dziêki któremu po³±czenie kolejnych rdzeni w procesor wielordzeniowy jest banalnym zabiegiem. Niestety, obecna architektura A64 praktycznie wyklucza stosowanie Hyper Threadingu. W "rewan¿u" Intel ma potê¿ny problem w³a¶nie z po³±czeniem dwóch rdzeni w procesor dwurdzeniowy. Jak pewnie pamiêtacie, rzecz polega na koherencji danych zawartych w cache L2 obu rdzeni. Czyli jak zmienia siê dana zawarta w cache L2 jednego rdzenia, to powinna siê ona równie¿ zmieniaæ (na tak± sam±!) w cache L2 drugiego. AMD ma do tego celu X-bar i HT. Intel musi to za³atwiæ szybk± szyn± lub cache L3. Wed³ug ostatnich informacji dwurdzeniowe procesory Intel’a bêd± pracowa³y z wy³±czonym Hyper Threadingiem! Dlaczego? Podejrzewam, ¿e szyna ³±cz±ca cache L2 obu rdzeni nie jest w stanie obs³u¿yæ 4 procesorów z powodu zbyt ma³ej przepustowo¶ci. Ale to s± tylko moje domys³y. Zobaczymy niebawem jak to wszystko sprawdzi siê w praktyce, bo rywale zapowiadaj± procesory dwurdzeniowe na 2005 r. Ale jest faktem, ¿e AMD ju¿ zaprezentowa³a dzia³aj±c± próbkê dwurdzeniowego Opterona. Kompatybilnego z socketem 940! Czy mo¿na przeceniæ wagê tego faktu?! Prosta wymiana CPU na p³ycie serwera zapewni niebagatelny wzrost jego wydajno¶ci, oceniany na 30 - 55%. Platformy socket 939 zapewne równie¿, tylko nieco pó¼niej. Plotka g³osi, ¿e na analogicznym pokazie konkurent zaprezentowa³ raczej dwa procesory w jednym rdzeniu ni¿ procesor dwurdzeniowy. Subtelna, ale jak¿e istotna ró¿nica. Cierpliwo¶ci, do 2005 roku pozosta³o tylko 2 miesi±ce!

Grafika 64-bit

Jest jeszcze jeden element sk³adowy zagadnieñ 64-bit. Grafika! I nie chodzi mi tu o sterowniki i szybko¶æ dzia³ania ale o paletê barw, któr± bêdzie oferowa³a nowa technologia. Przecie¿ ju¿ obecnie s± to miliony kolorów! A ich ilo¶æ nieprawdopodobnie (przynajmniej teoretycznie) siê zwiêkszy. Nie jestem specjalist± w dziedzinie monitorów ale odnoszê wra¿enie, ¿e przy obecnych rozdzielczo¶ciach oferowanych przez technologie CRT lub LCD, praktyczne wykorzystanie powsta³ych mo¿liwo¶ci jest trudne do wyobra¿enia. Czy¿by mia³y to udostêpniæ dopiero hologramy? A mo¿e siê mylê? Widzê jeszcze inny problem. Obecne GPU pracuj±ce w ¶rodowisku 32-bit maj± tyle rejestrów i szyn o wiele wiêkszej szeroko¶ci, ¿e chyba jedynym sensownym kryterium (przynajmniej dla mnie) okre¶laj±cym ilu bitowa jest karta graficzna, jest przyjêcie wymiaru pakietu informacji graficznej przesy³anego szyn± PCI-e. I tutaj niespodzianka! Dane ATI maj± wymiar 32-bit, natomiast nVidii - 64 bit. Rozwi±zania techniczne nie s± moj± specjalno¶ci± i dlatego trudno mi oceniæ, jaki bêdzie mia³o to wp³yw na konstrukcjê przysz³ych GPU, które bêd± pracowa³y w ¶rodowisku w pe³ni 64-bit. Ale intuicja podpowiada, ¿e ATI ju¿ teraz ma nad czym my¶leæ i pracowaæ, aby w przysz³o¶ci nie daæ siê wyprzedziæ konkurentowi.

Zakoñczenie

Do pe³nego na¶wietlenia zagadnienia 64-bit brakuje w felietonie analizy mo¿liwo¶ci i ograniczeñ typowych procesorów RISC. Jednak postanowi³em "odpu¶ciæ". Trochê z lenistwa, a trochê z prze¶wiadczenia, ¿e procesory RISC te¿ dadz± sobie radê z aplikacjami 64-bit. Przecie¿ najnowszy, wielordzeniowy, prawdziwy SMT (Simultaneous Multi Threading) procesor IBM (Power5), mo¿e byæ wzorem rozwi±zywania problemów zwi±zanych z projektowaniem procesorów RISC. A wiêc raczej mo¿na byæ spokojnym o ich przysz³o¶æ w zastosowaniach 64-bit. A co s³ychaæ u AMD? Na chwilê obecn±, opieraj±c siê na informacjach z sieci wydaje siê, ¿e problemy zwi±zane z przej¶ciem na technologiê 90 nm maj± siê ku koñcowi. Mój niepokój budzi jedynie produkcja FX55 w technologii 130 nm. Moc rozpraszana tego CPU wynosi 104 W i jest o 1W wiêksza ni¿ konkurencyjnego Xeona, aka NOCONA! Zapewne jakie¶ racjonalne powody takiej decyzji istniej±. Gdy ¶wiat³o dzienne ujrzy FX55 w technologii 90 nm z mniejsz± moc± rozpraszan±, AMD zamknie wa¿ny etap swojej walki o wypromowanie procesorów 64-bit. Znaj±c pracowito¶æ i upór Azjatów mo¿na mieæ nadziejê, ¿e stanie siê to niebawem. Natomiast Intel ma wiêksze problemy. Oto najpowa¿niejsze: nie uda³o siê przekroczyæ zaczarowanej granicy 4 GHz, zrezygnowano z projektu procesora Tejas, diamentowa warstwa izolacyjna nie wytrzymuje wysokich temperatur i powoduje du¿e "wycieki" energii w rdzeniu, wreszcie architektura Prescott'a nie za bardzo nadaje siê do pracy wielordzeniowej.


Chyba wystarczy? Wprawdzie i w Intel’a s± zdolni in¿ynierowie, ale zawsze jest jaki¶ limit mo¿liwo¶ci usuniêcia problemów. Bez nowych rozwi±zañ k³opoty bêd± siê powiêkszaæ, a na samej reputacji i Dell'u nie da siê "jechaæ" zbyt d³ugo. Intel MUSI maksimum za 2 lata zaprezentowaæ nowy, doskona³y procesor. Lub przynajmniej w bardzo znacz±cy sposób zmodyfikowaæ rdzeñ Prescott'a. Tylko jako¶ nic nie s³ychaæ o takim przedsiêwziêciu. Czy¿by tajne/poufne?! W przeciwnym wypadku powy¿szy ¿art graficzny mo¿e zacz±æ nabieraæ realnego kszta³tu, a jedynym zmartwieniem AMD bêdzie znalezienie producentów swoich CPU, bo popyt przewy¿szy poda¿. Z praw ekonomii wynika, ¿e ich cena wtedy wzro¶nie! Hmm... Dobrze ¿yczê AMD, ale ta perspektywa niezbyt mi siê podoba! Jedno jest pewne: rozpocz±³ siê proces, który byæ mo¿e zakoñczy siê dopiero w momencie gdy bêdziemy przechodziæ na technologiê 128-bit.

URAN

Za zgod± dzikie.net

Zobacz te¿:

  1. Hyper Threading (HT)
  2. Procesory wielordzeniowe
  3. Nowe szaty króla- zakoñczenie, czyli trzy potwory i spó³ka!
  4. Budowa PC [podstawy]
  5. PCI Express

Oceñ ten tekst:   

Średnia ocena:

Autor: Ender | Data: 30-10-2009, 19:37:24

Bardzo ciekawy artyku³.

Autor (wymagane):
Treśæ (wymagane):
Przepisz kod z obrazka (wymagane):
   

Skarpety X-socks | Przyspieszanie komputera | Jak przyspieszyæ Internet | Przyspieszanie Wifi | aktywacja Windows 7 | nLite |
Nokia kalkulator | Jak zdj±æ Simlock za darmo