poniedziałek, 21 maj 2012
NEXT / Artykuły / NEXT 1/2007 / Artykuły z NEXT 1/2007 / 64-bitowa układanka

NEXT 1/2007 - 64-bitowa układanka

64-bitowa układanka - ikonka architektura procesorów

Data: 19 wrzesień 2007
Identyfikator: 070101

Coraz więcej osób zastanawia się, czy może skorzystać z 64-bitowego systemu operacyjnego i odpowiednich aplikacji oraz czego w efekcie należy się spodziewać. Dlaczego rezygnacja ze środowiska 32-bitowego jest tak ważna, jakie przynosi zyski i jakie problemy mogą się pojawić?

Strona 1 z 5
< Poprzednia 1 2 3 4 5 Następna >
64-bitowa układanka - rozkładówka

Zdaniem redaktora

Michał Szulowski
redaktor działu Hardware magazynu NEXT, testuje sprzęt od ponad 10 lat


Optymalizowanie kodu aplikacji zawsze zabiera mnóstwo czasu, jednak pozwala osiągnąć bardzo dobre efekty. Ma szczególne znaczenie w przypadku programów, które są wykorzystywane do najbardziej czasochłonnych obliczeń. Nic więc dziwnego, że mimo konieczności poniesienia znacznych kosztów na optymalizację, inwestowanie w 64-bitowe aplikacje opłaca się użytkownikom programów. Obecnie najlepsze wyniki daje połączenie optymalizacji kodu dla platform 64-bitowych z możliwością podziału zadań między poszczególne jądra procesora. Niestety, większość programistów wychodzi z założenia, że produkt powinien jak najszybciej być gotowy do sprzedaży, bo konkurencja może wprowadzić swój wyrób szybciej. W efekcie często rezygnują ze szczegółowej optymalizacji kodu, a programy słabe wypierają te lepsze, zoptymalizowane.

Aby zrozumieć istotę zmian wprowadzonych przez 64-bitowy tryb pracy, należy poznać nieco historii. Najpopularniejsze obecnie procesory o architekturze x86 wywodzą się w prostej linii z układów scalonych wykorzystywanych w kalkulatorach. Nic więc dziwnego, że podstawowym działaniem, jakie potrafiły na początku wykonywać, było dodawanie i mnożenie. Oczywiście, procesor zastosowany w pierwszych komputerach IBM PC miał już bardziej rozwiniętą listę rozkazową, jednak założenia konstrukcyjne niewiele się zmieniły.

Do wykonywania podstawowych działań wystarczał pojedynczy rejestr, tzw. akumulator, w którym zapisywany był młodszy bajt wyniku działania, zastępując jeden z operandów. Oprócz tego dostępny był rejestr pomocniczy BX, licznik pętli CX oraz rejestr DX, w którym zwracany był starszy bajt wyniku. Pozostałe cztery, tzw. rejestry specjalne, wykorzystywane były do adresowania pamięci, przy pobieraniu lub zapisywaniu danych.

Procesory od 8086 do 80386 pracowały synchronicznie z pamięcią, więc czas dostępu do danych w niej przechowywanych nie był dużym utrudnieniem – oczekiwanie na informacje trwało w większości instrukcji kilkanaście taktów. Wraz z rozwojem procesorów, czyli od pojawienia się układów i486 DX2, częstotliwość pracy procesora zaczęła rosnąć znacznie szybciej niż częstotliwość pamięci, co powodowało wydłużenie czasu oczekiwania na dane. Współczesne CPU pracują od 6 do 15 razy szybciej niż pamięć. Powoduje to powstawanie bardzo dużych opóźnień i gdyby nie stosowanie różnego rodzaju pamięci podręcznych oraz rozmaitych technik zmian kolejności przetwarzania ciągu instrukcji, obserwowalibyśmy ogromne zmniejszenie szybkości działania procesora. Dlatego bardzo istotne jest udostępnienie możliwości lokalnego przechowywania danych w rejestrach procesora.

Najważniejsze bloki funkcjonalne procesora

W strukturze procesora można wyróżnić wiele specjalizowanych bloków funkcjonalnych. Kolorami rozróżnione są generacje procesorów, w których wprowadzono poszczególne moduły.

Karkołomne sztuczki

W procesorach o architekturze x86 będących przedstawicielami CISC liczba rejestrów na­dal jest ograniczona. W 32-bitowym trybie pracy dostępne są jedynie 4, tylko ich długość została zwiększona z 8 do 32 bitów.

Tymczasem współczesne procesory typu  RISC mają od 32 do 64 rejestrów ogólnego przeznaczenia, a typu  VLIW – nawet 128. Tak duża liczba wynika z szybkości dostępu do przechowywanych danych – większość operacji może zostać wykonana w pojedynczym takcie zegara sterującego.

Próbą rozwiązania problemu opóźnień jest powiększenie pamięci podręcznej. Jednak nawet jeśli informacje znajdują się w  cache pierwszego poziomu, wówczas przestój procesora przy odwoływaniu się do nich trwa kilka taktów. Jeżeli dane muszą być pobrane z pamięci podręcznej drugiego poziomu, wówczas traconych jest kilkanaście do kilkudziesięciu taktów, co zależy od konkretnego modelu procesora. W kolejnych generacjach procesorów wprowadzono jeszcze inne sposoby obejścia tego ograniczenia. Najważniejsze z nich polegają na zmianie kolejności wykonywania instrukcji ( OoOE), tak by procesor nie czekał na pobranie danych z pamięci, a operował na tych, które są dostępne szybciej. Jest to jednak dość trudne do zrealizowania, a skuteczność działania nie jest stuprocentowa, bo często występują zależności kolejnych operacji od wyniku poprzedniego działania. W efekcie układy, które realizują wszelkie próby obejścia problemu, są bardzo złożone i zajmują duży fragment powierzchni w strukturze krzemowej, a to podnosi koszt wytworzenia procesora i zwiększa zużycie energii.


Tagi: procesory  
Ocena: ..... (aktualna: 5,0; liczba głosów: 2)    (aby ocenić, musisz się zalogować w serwisie)

< Poprzednia 1 2 3 4 5 Następna >

Podobne artykuły:

Komentarze:

Redakcja nie ponosi odpowiedzialności za treść komentarzy.
Komentarze wyświetlane są poczynając od najstarszych.

06.10.2007, 13:49
pytanie

jak sprawdzić ilo ma sie bitiwy procesor
  windows_xp_2003 ie
07.10.2007, 00:00
duzo niedomowien

w zasadzie nic nie wspomniano o procesorach intela. Wciaz nie wiem czy sa:
1 w pelni 64-bitowe
2 wydajniesze w srodowisku x64 od AMD
3 dlaczego pod linuxem 64 nie moge odpalac programow 32 bitowych skoro jest emulacja 64 bitow
moim zdaniem artykul zbyt teoretyczny a za malo przydatnych, praktycznych informacji
temat bardzo ciekawy
  windows_xp_2003 firefox
29.10.2007, 23:11
LOL

Intel w środowisku x64!?
no... ciekawostka - oni są jak M$ (oby żyli w ciekawych czasach!) - mają własne standardy na takie okazje (EM64T).
Pod linuksem potrzebujesz jeszcze 32-bitowych bibliotek do odpalenia takich programów - wtedy działają bez zarzutu,
a co do treści merytorycznej artykułu - bardzo dobry - zwłaszcza, że to pierwszy taki w magazynie ;)
  windows_xp_2003 firefox
04.11.2007, 14:44
troszku za mało konkretów

przydałoby się troszku rozbudować ten temat. dobrze by było zrobić porównanie technologii wykonania procesorów np intel zrobił wiele procków z różnymi jądrami może by tak tabele porównawczą? i taką samą dla AMD. nie coby porównywać te 2 firmy bo to byłoby nie współmierne, bo to są dwie różne technologie. ogólnie temat jest bardzo ciekawy lecz ogólnikowy
  windows_xp_2003 firefox
Niezalogowany

Aby mieć dostęp do niektórych części serwisu NEXT (np. forum dyskusyjnego, oceny numeru, newslettera), musisz posiadać konto w naszym serwisie. Zachęcamy do darmowej rejestracji!

Jeżeli posiadasz już konto w serwisie, to zaloguj się.