Mieszko Krzykowski | 17 listopada 2008, 13:23

Intel Atom kontra VIA Nano – pojedynek wagi piórkowej

Mniejszy może... mniej

Core 2 Extreme, Core i7, Phenom i nadchodzący Deneb – wyścig wydajności wciąż trwa. Procesory w naszych domowych komputerach są coraz wydajniejsze, mają coraz więcej rdzeni, coraz większe układy chłodzenia i pobierają coraz więcej prądu. Okazuje się jednak, że większość użytkowników komputerów nie potrzebuje czterech rdzeni i 4 GHz zegara procesora, a rachunki za prąd chciałaby mieć jak najniższe. Specjalnie dla takich osób powstały niedawno dwa procesory korzystające z dwóch zupełnie nowych architektur: Intel Atom i VIA Nano. Pojedynek między nimi jest o tyle nietypowy, że nie wygrywa tutaj ten, który jest wydajniejszy, a ten, który jest tańszy i zużywa mniej prądu, zapewniając wystarczającą wydajność.

Atom jak „Ale TO Małe!”

Takie słowa wypowiada większość osób widzących Atom pierwszy raz na własne oczy. Nic w tym dziwnego, bo rdzeń Atoma mieści się na powierzchni niecałych 26 mm2 i jest umieszczony na podstawce o rozmiarze 22×22 mm. Stało się to możliwe dzięki procesowi 45 nm Intela oraz temu, że rdzeń Atoma tworzy 47 milionów tranzystorów. Dla porównania, rdzeń Wolfdale'a znany z 45-nanometrowych dwurdzeniowych procesorów Intela to 410 milionów tranzystorów upakowanych na 107 mm2.

Projektantami tej architektury są ludzie, którzy wcześniej „popełnili” niesławną architekturę NetBurst. Dostali oni za zadanie stworzenie procesora, który będzie wystarczająco wydajny, aby obsłużyć system operacyjny, przy zachowaniu pełnej kompatybilności z zestawem instrukcji x86, jak najmniej prądożerny i możliwie tani w produkcji. Panowie z Austin zaczęli projektowanie Atoma od deski kreślarskiej. Stworzyli pierwszy procesor Intela, który miał być nastawiony nie na wydajność, a na maksymalną energooszczędność, pamiętając przy tym, że dowolny pomysł zostanie zaakceptowany pod warunkiem, że da co najmniej 1% wydajności kosztem co najwyżej 1% większego poboru prądu.

Tym, co odróżnia Atoma od innych współczesnych procesorów, jest to, że jest on procesorem z In-Order Execution, czyli wykonuje instrukcje w takiej kolejności, w jakiej je otrzymuje. Jest to swoisty powrót do przeszłości Intela, gdyż firma ta nie miała w sprzedaży takiego procesora od czasów pierwszych Pentium. Cały mechanizm optymalnej zamiany kolejności wykonywania instrukcji w dużej mierze stoi za wydajnością współczesnych procesorów. Dlaczego więc zrezygnowano z niego w Atomie?

Powód jest bardzo prosty. Nie jest to konieczne do działania procesora, a kosztuje dużą liczbę tranzystorów i znacząco wpływa na ilość zużywanego przez procesor prądu. Paradoksalnie, przejście do czystego IOE, bez kilku sztuczek, miałoby zły wpływ właśnie na pobór prądu. Wynika to z największej słabości procesorów wykonujących instrukcje w kolejności. Gdy jakaś instrukcja potrzebuje danych z pamięci, to procesor, zanim otrzyma potrzebne informacje, robi... nic, a pobiera prąd, jakby pracował pełną parą. Aby jak najbardziej ograniczyć częstość występowania takich sytuacji (czas oczekiwania na dane z pamięci może trwać nawet kilkaset cykli zegara), projektanci Atoma przedsięwzięli kilka kroków, aby był on bardziej zrównoważony.

Pierwszy z tych kroków jest dość oczywisty: duży rozmiar pamięci podręcznej drugiego poziomu. Może 512 kB nikogo już nie szokuje w czasie, gdy procesory mają po 12 MB pamięci podręcznej, jednak wystarczy rzucić okiem na rdzeń Atoma, aby zobaczyć, że słowa „duży rozmiar” są w tym przypadku adekwatne.

Widzimy, że mimo wszystko pamięć podręczna zajmuje sporą część całego układu. Im większy rozmiar pamięci podręcznej, tym mniejsze prawdopodobieństwo, że procesor będzie musiał szukać potrzebnych danych w pamięci RAM.

Drugi krok to sztuczka typowa dla procesorów wykonujących instrukcje OoO (ang. Out of Order). Nazywa się to SIR (ang. Safe Instruction Recognition). Działa to w ten sposób, że gdy procesor zajmuje się działaniem zmiennoprzecinkowym, które wymaga danych z pamięci zewnętrznej, to przygląda się następnej instrukcji. Jeśli ma ona wszystkie potrzebne informacje i jest operacją wykonywaną na liczbach całkowitych, a przy tym nie jest zależna od obecnie wykonywanej instrukcji, to może ona zostać wykonana w tak zwanym międzyczasie. Proste, ale skuteczne i pozwala pożytecznie wykorzystać wolne cykle zegara procesora.

Następnym rozwiązaniem mającym pomóc w zapobieganiu sytuacjom, w których procesor zużywa prąd w oczekiwaniu na dane, jest Simultaneous Multi-Threading, znany także jako Hyper Threading. Wszystkim zapewne kojarzy się to z Pentium 4 i technologią, która wtedy dawała bardzo niewiele, ale za to ładnie wyglądała na slajdach marketingowych. Tutaj sytuacja jest zupełnie inna. Kosztem 200 mW TDP (0,2 W!) można zyskać do 50% wzrostu wydajności w aplikacjach wielowątkowych (co oczywiście sprawdziliśmy). Gdy w pierwszym wątku jakaś instrukcja oczekuje na dane z pamięci, to procesor przełącza się na drugi wątek, który może zacząć wykonywać swoje instrukcje. Dzięki takiemu przełączaniu się procesora pomiędzy wątkami jednostki wykonawcze procesora są używane znacznie efektywniej, potok wykonawczy nie staje w oczekiwaniu na dane (chyba że oba wątki muszą oczekiwać na dane, co zdarza się bardzo rzadko), a procesor nie zjada prądu na marne. Żyć, nie umierać.

Cięć mających zapewnić Atomowi niski pobór mocy kosztem wydajności jest oczywiście więcej. Atom jest procesorem stosunkowo „wąskim”, bo w jednym cyklu zegara może zakończyć jedynie dwie instrukcje (czyli jego maksymalny teoretyczny współczynnik IPC wynosi 2). Zmniejszono też liczbę jednostek wykonawczych. Zabrakło wyspecjalizowanych jednostek mnożenia i dzielenia liczb całkowitych. Działania te są obsługiwane przez zmiennoprzecinkowe jednostki SIMD, co oczywiście odbija się na szybkości ich wykonywania.

To nie koniec energooszczędnych optymalizacji wprowadzonych w Atomie. Dosłownie wszystko w nim zostało zrobione tak, aby maksymalnie zmniejszyć zapotrzebowanie na prąd i ilość wydzielanego ciepła. Niesymetryczna pamięć podręczna pierwszego poziomu (24 kB dla danych i 32 kB dla instrukcji), sposób „rozprowadzania” zegara po procesorze, zwiększenie liczby etapów potoku wykonawczego do 16, niskie stany energetyczne w uśpieniu... I wiele, wiele innych rzeczy. Od razu widać, że Atom jest bardzo przemyślaną konstrukcją.

Są dwie główne odmiany Atoma: jedna o nazwie kodowej Silverthorne, przeznaczona do urządzeń MID (Mobile Internet Device) i UMPC (Ultra-Mobile PC), druga o nazwie Diamondville, przeznaczona do netbooków i nettopów. TDP Atomów w zależności od modelu wynosi od 0,65 W (Atom Z500 800 MHz) do 4 W (Atom 230 1,6 GHz). Jest jeszcze dwurdzeniowa wersja Atoma 230 z numerem 330, która jak łatwo się domyślić, ma TDP na poziomie 8 W. Dla porównania, najsłabszy Core 2 Solo ULV ma TDP 5,5 W, jednak jest przy tym znacznie droższy w produkcji od Atoma.