Witam.
Noszę się powoli z zamiarem przestawienia na 64-bitową platformę. Zasadność takiego posunięcia jest raczej oczywista. Przygotowania zacząłem od poszukiwania odpowiedniego systemu operacyjnego. Z różnych względów nie będzie to winda - lepiej przystosowane do pracy 64-bitowej wydają mi się systemy uniksowe, więc na 99.9% postawię na jedną z dystrybucji Linuksa (Gentoo?). Problem zaczął się podczas poszukiwania CPU. Zgłębiając tajniki 64-bitowej architektury procesorów natrafiłem na szereg niejasności, które utrudniają dokonanie wyboru, zaś sprzeczne informacje pomieszane z marketingowym bełkotem jeszcze bardziej zaciemniają sytuację. W związku z powyższym mam kilka pytań:
1. procesory z architekturą AMD64 uchodzą za "natywnie 64-bitowe". Co to znaczy?
2. architektura EM64T jest kopią powyższej. Czy jest to równocenna pod względem architektonicznym i wydajnościowym technologia (zestaw instrukcji, rozmiary i liczba rejestrów itd.), czy też jest to "zwykła nakładka" na 32-bitowe procesory, umożliwiająca wykonywanie 64-bitowego kodu? (A może w ogóle nie ma różnicy jako takiej, pomiędzy "nakładką" a "natywnymi" 64 bitami?) Biorąc jako punkt odniesienia procesory AMD64 jako "natywnie 64-bitowe", czy procesory EM64T są obciążone jakimś narzutem dodatkowych instrukcji (emulacja 64-bitowej pracy(?)) podczas wykonywania 64-bitowego kodu?
3. czy ew. narzut przekłada się na różnice w wydajności pracy w 64-bitowym środowisku (64-bit OS, aplikacje 32- i 64-bit (przy dostępie do źródeł aplikacji zawsze istnieje możliwość rekompilacji))
4. czy istnieją jakieś różnice natury programistycznej?
5. jak kształtuje się stosunek wydajność/cena?
Dlaczego tyle pytań? Początkowo jedynym wyjściem wydawał się procek AMD, które uchodziły za tańsze, oszczędniejsze, i nie ustępujące specjalnie wydajnością i klasą intelowym kościom (zwłaszcza 64-bitowym). Pojawienie się Core 2 Duo zburzyło trochę ten pogląd. W dalszym ciągu uważa się go za procek 32-bitowy (z nakładką EM64T), choć niezbyt to do mnie przemawia. W wielu testach bije na głowę inne procesory, ale nie udało mi się dotrzeć do testów innych niż na grach i aplikacjach w środowisku 32-bitowym. O sprawowaniu się tego układu w zastosowaniach 64-bitowych nie wiadomo nic, a jest to sprawa kluczowa (biorąc pod uwagę przesiadkę na 64-bitowy OS). Cały czas jestem bardziej ukierunkowany na AMD, ale perspektywa wydania ciężkich pieniędzy na zmianę sprzętu zmusza mnie do rozpatrzenia C2D jako alternatywy, tym bardziej, że:
- procesor ten pozwala na wykonywanie 64-bitowego kodu (powyższe pytania pozostają jak najbardziej aktualne)
- posiada sporą wydajność przy niewielkim apetycie na prąd
- nie ma specjalnie wygórowanej ceny (ze wględów technicznych i finansowych przesiadka odbędzie się najwcześniej za parę miesięcy - możliwa obniżka cen do tego czasu)
Wybór procesora wiąże się jednocześnie z typem gniazda (socket 775 / AM 2), a co za tym idzie, perspektywą upgrade'ów platformy w oparciu o dane gniazdo (a może lepiej wymieniać wszystko naraz?). Inną kwestią jest wielordzeniowość procesora (czy opłaca się dokładać do dodatkowego rdzenia?). Główne zastosowanie maszyny zasadniczo się nie zmieni - praca/rozrywka/granie (niewykluczone, że do grania posłuży emulowanie windy). Programistą nie jestem z zawodu, ani z wykształcenia i traktuję to bardziej jako hobby (co chyba jednak nie przesądza niczego).
Jeśli ktoś posiada jakąś wiedzę/doświadczenie w tej materii i jest w stanie rozjaśnić trochę wątpliwości, będę wdzięczny. Nie oczekuję podania gotowych modeli, zestawów i cen. Stawiam na stole swoją niewiedzę w temacie i chcę ja obalić.