artykuły

Intel Haswell – anatomia procesorów nadchodzącej generacji

Haswell pod lupą, część 1.

43 11 marca 2013, 07:36 Mateusz Brzostek

Nowa generacja procesorów Intela trafi na rynek za parę miesięcy. Twórcy mikroarchitektury o nazwie roboczej „Haswell” określają ją jako największą zmianę w tej dziedzinie od czasów Nehalema, czyli od ponad czterech lat. Przyjrzyjmy się, jakie nowe rozwiązania techniczne przyniosą te układy.

Spis treści

Niniejszy artykuł jest pierwszą częścią opisu technicznego procesorów Haswell. Skupimy się w nim na organizacji logicznej procesora i zmianach w mikroarchitekturze. Oprócz modernizacji samego rdzenia procesora Haswell nastąpiły zasadnicze zmiany w produkcji i fizycznej budowie układu – tym zajmiemy się niebawem w drugiej części.

Rdzeń Haswell zostanie wykorzystany przez Intela w każdej linii produktów. Układy z tym rdzeniem mają się znaleźć w tabletach z lepszej półki, ultraprzenośnych laptopach, komputerach biurkowych i serwerach. Rdzeń x86 jest tylko jednym z elementów budowy takiego czipu: w zależności od potrzeb krzemowe jądra będą zawierały różne konfiguracje rdzeni Haswell, pamięci podręcznych ostatniego poziomu, układów graficznych, kontrolerów RAM itp.

Ewolucja rdzenia x86

Choć teoretycznie Haswell to całkiem nowa architektura, tradycyjnie zapożycza bardzo dużo z poprzednich. Prześledźmy drogę instrukcji, od pobrania jej z pamięci do zapisania jej wyniku.

Front-end – pobieranie, dekodowanie i kolejka instrukcji

Ogólna budowa tej części procesora pozostała taka sama jak w Sandy Bridge. Przypomnijmy, że w tej drugiej architekturze zastosowano dodatkowy bufor, przechowujący zdekodowane ciągi instrukcji w postaci mikrooperacji. Kiedy w kolejce pojawia się wcześniej wykonywana grupa instrukcji, można pominąć pobieranie instrukcji z pamięci podręcznej L1I i wysyłanie ich do dekodera, a zamiast tego pobrać gotowe, zdekodowane mikrooperacje z tego bufora. Ta technika jednocześnie zwiększa wydajność (bo instrukcja jest szybciej wydawana jednostkom wykonawczym) i oszczędza energię (bo dekoder zużywa jej więcej niż dodatkowy bufor mikrooperacji). Poza tym ze wspomnianego bufora można pobrać w jednym transferze 32 B instrukcji, dwa razy więcej niż z pamięci L1I. To przyspiesza pobieranie rozbudowanych instrukcji SIMD (na przykład AVX).

Kolejny raz zwiększono pulę instrukcji do przekolejkowania. Procesor obserwuje ich ciąg i decyduje, które można wykonać poza kolejnością. Haswell wybiega w przyszłość w tych spekulacjach o 1/3 dalej niż Nehalem oraz Westmere i o 1/7 dalej niż Sandy Bridge oraz Ivy Bridge. Pewnym usprawnieniom (jak zwykle sekretnym) poddano też jednostkę przewidywania skoków.

Strona:
bulimen_78Zobacz profil
Poziom ostrzeżenia: 0%
bulimen_782013.03.11, 07:54
-7#1
w takim razie jednak poczekam na haswella, przenosiny z obecnoego 2600K (4,7) na Ivy byłyby zarówno zbyt kosztowne jak i miąły za mały efekt skoku wydajności,
swietny art, sporo szczegółów technicznych,
jak zawsze przy kazdej nowej architekturze, minie troche czasu zanim uda się ją wykorzystać w software, ale cieszy wzrost wydajności pojedynczego rdzenia, niezależny od software i tego czy software został skompilowany od nowa.
DyziorekZobacz profil
Poziom ostrzeżenia: 0%
Dyziorek2013.03.11, 08:03
-2#2
bulimen_78 @ 2013.03.11 07:54  Post: 642352
w takim razie jednak poczekam na haswella, przenosiny z obecnoego 2600K (4,7) na Ivy byłyby zarówno zbyt kosztowne jak i miąły za mały efekt skoku wydajności,
swietny art, sporo szczegółów technicznych,
jak zawsze przy kazdej nowej architekturze, minie troche czasu zanim uda się ją wykorzystać w software, ale cieszy wzrost wydajności pojedynczego rdzenia, niezależny od software i tego czy software został skompilowany od nowa.


Hmm, tylko ta energooszczędność może kompletnie położyć OC. Będzie fajny proc do laptopów i małych desktopów (hej producenci GPU - róbcie więcej niskoprofilowych wydajnych kart )
HashiZobacz profil
Poziom ostrzeżenia: 0%
Hashi2013.03.11, 08:13
-5#3
Haswell obsługuje też instrukcje FMA, czyli mnożenie dwóch liczb i dodawanie wyniku do trzeciej, wszystko w jednej instrukcji. Dzięki FMA dwie operacje trwające w sumie osiem cykli można zastąpić jedną. Dodatkowo zyskujemy precyzję, bo zamiast dwóch zaokrągleń (wyniku mnożenia i wyniku dodawania) następuje tylko jedno: końcowego wyniku.
Warto zauważyć, że FMA to operacje żywcem przeniesione ze świata procesorów graficznych do instrukcji x86, a AVX2, jako sposób na wektorowe przetwarzanie danych, jest koncepcyjnie podobny do sposobu, w jaki pracują GPU. Paradoksalnie AVX2 może być dla Intela krokiem w kierunku unifikacji CPU i GPU – oczywiście w odległej przyszłości. Wykorzystanie zalet instrukcji AVX2 i FMA wymaga, rzecz jasna, co najmniej skompilowania od nowa, a najlepiej dokładnej optymalizacji oprogramowania. Sporo czasu upłynie, zanim zauważymy korzyści w popularnych programach.

Fused multiply–add w CPU:
HP PA-8000 (1996) and above
Hitachi SuperH SH-4 (1998)
SCE-Toshiba Emotion Engine (1999)
Intel Itanium (2001)
STI Cell (2006)
Fujitsu SPARC64 VI (2007) and above
(MIPS-compatible) Loongson-2F (2008).[7]
AMD Evergreen GPUs (2009) and above
NVidia Fermi GPUs (2010) and above
Intel MIC (2012)
Podobnie instrukcje multimedialne/wektorowe były w prockach konsumenckich lata dekadę temu (np EE PS2). To pokazuje w którą stronę idzie rynek oraz uświadamia że w cenie procesorów Intela nie ma nowatorskich rozwiązań a płaci się za monopol. Ich procki powinny mieć zakres cen 50-400pln max.
arvalZobacz profil
Poziom ostrzeżenia: 0%
arval2013.03.11, 08:56
13#4
Dla mnie najciekawsza nowa funkcja to 'connected standby' czyli możliwość przejścia komputera w stan częściowego uśpienia. Procesor wchodzi w taki specjalny tryb i cały komputer wydaje się wyłączony. Ale wybrane aplikacje mogą zarejestrować się jako 'usługi connected standby' i dalej pracować. Przykładowo poczta może się odbierać lub Steam będzie mógł pobierać pliki, ewentualnie SkyDrive będzie mógł hostować nasze pliki na żądanie. Całość przy teoretycznie wyłączonym komputerze.

Karta graficzna będzie wyłączona, wiatraki nie będą pracowały, komputer będzie praktycznie w uśpieniu a pomimo tego wybrane przez nas aplikacje którym udzielimy prawa pracy w trybie 'standby' dalej będą mogły działać

Tego typu rozwiązania od zawsze były obecne w telefonach i sprzęcie mobilnym który większość czasu jest w takim stanie IDLE. Haswell wprowadzi te rozwiązania na desktopy
GrLTZobacz profil
Poziom ostrzeżenia: 0%
GrLT2013.03.11, 09:13
-10#5
arval @ 2013.03.11 08:56  Post: 642358
Dla mnie najciekawsza nowa funkcja to 'connected standby' czyli możliwość przejścia komputera w stan częściowego uśpienia. Procesor wchodzi w taki specjalny tryb i cały komputer wydaje się wyłączony. Ale wybrane aplikacje mogą zarejestrować się jako 'usługi connected standby' i dalej pracować. Przykładowo poczta może się odbierać lub Steam będzie mógł pobierać pliki, ewentualnie SkyDrive będzie mógł hostować nasze pliki na żądanie. Całość przy teoretycznie wyłączonym komputerze.

Karta graficzna będzie wyłączona, wiatraki nie będą pracowały, komputer będzie praktycznie w uśpieniu a pomimo tego wybrane przez nas aplikacje którym udzielimy prawa pracy w trybie 'standby' dalej będą mogły działać

Oh yay... antywir też? Bo jak nie to widzę nową generację wirusów w natarciu :)
Po za tym... kod się wykonuję, a wiatraki nie pracują? Hmmm... ciekawe... nawet po wyłączeniu karty graficznej i zredukowaniu zegara CPU do minimum [jakieś 600-800mhz?] to nie wiem czy ciepła nie będzie za dużo w skrzynce. Bo porządny cooler to jeszcze od biedy jakoś da radę z pasywnym chłodzeniem CPU.
*Konto usunięte*2013.03.11, 09:22
-5#6
poczekam jeszcze 2 lata i kupię w normalnej cenie
arvalZobacz profil
Poziom ostrzeżenia: 0%
arval2013.03.11, 09:22
GrLT @ 2013.03.11 09:13  Post: 642359
arval @ 2013.03.11 08:56  Post: 642358
Dla mnie najciekawsza nowa funkcja to 'connected standby' czyli możliwość przejścia komputera w stan częściowego uśpienia. Procesor wchodzi w taki specjalny tryb i cały komputer wydaje się wyłączony. Ale wybrane aplikacje mogą zarejestrować się jako 'usługi connected standby' i dalej pracować. Przykładowo poczta może się odbierać lub Steam będzie mógł pobierać pliki, ewentualnie SkyDrive będzie mógł hostować nasze pliki na żądanie. Całość przy teoretycznie wyłączonym komputerze.

Karta graficzna będzie wyłączona, wiatraki nie będą pracowały, komputer będzie praktycznie w uśpieniu a pomimo tego wybrane przez nas aplikacje którym udzielimy prawa pracy w trybie 'standby' dalej będą mogły działać

Oh yay... antywir też? Bo jak nie to widzę nową generację wirusów w natarciu :)
Po za tym... kod się wykonuję, a wiatraki nie pracują? Hmmm... ciekawe... nawet po wyłączeniu karty graficznej i zredukowaniu zegara CPU do minimum [jakieś 600-800mhz?] to nie wiem czy ciepła nie będzie za dużo w skrzynce. Bo porządny cooler to jeszcze od biedy jakoś da radę z pasywnym chłodzeniem CPU.


Nie. Zwykłe aplikacje Win32 nie będą mogły pracować w 'connected standby'. Są one pisane jako jeden proces więc musiałby zostać całkowicie przebudowane. Z trybu 'connected standby' będą mogły skorzystać tylko aplikacje Metro/Modern. Taka aplikacja budowana jest jako dwa niezależne elementy. Aplikacja właściwa oraz niezależna usługa przystosowana do pracy w trybie 'connected standby'. Tak jak na telefonach z WP7 gdzie masz też osobno aplikację z interfejsem GUI a osobno w niej moduł przykładowo do pobierania danych z sieci lub odtwarzania muzyki który potrafi działać w tle.

Tryb 'connected standby' jest specjalnym trybem systemu operacyjnego i ma mocne ograniczenia na usługi. Ich czas pracy, ograniczenie zużywania energii. Oraz oczywiście wymaga odpowiedniego procesora takiego jak Haswell lub CloverTrail

Tak wygląda lista dozwolonych operacji w 'connected standby':

◾Playing music
◾Downloading a file from or uploading it to a website
◾Keeping live tiles alive with fresh content
◾Printing
◾Receiving a VoIP call
◾Receiving an instant message
◾Receiving an email
◾Sharing content (like uploading photos to Facebook)
◾Synchronizing content with a tethered device (like syncing photos)

Tak więc twój 'teoretycznie wyłączony' komputer będzie potrafił odebrać rozmowę na Skype i się włączyć tak jak potrafią to zrobić telefony
KenjiroZobacz profil
Poziom ostrzeżenia: 0%
Kenjiro2013.03.11, 10:00
-1#8
O, drukowanie w 'connected standby'? Czyli w zasadzie wywołanie połowy systemu Windows, wraz z GUI i setką innych pierdół - mam na myśli każdy jeden dzisiejszy sterownik drukarki. Nie mówiąc o możliwościach wykonania obcego kodu (np. sterownik EPS może mieć taką 'ukrytą' opcję).
Jeśli żaden antywirus nie będzie panować nad transferem danych, to będzie wesoło.

Poza tym co ze scenariuszem, gdzie ktoś zainstaluje złośliwą aplikację, która przy przejściu komputera w tryb 'connected standby' nagle ma większe uprawnienia niż przed chwilą? W sandboksy made by MS nie wierzę - wszyscy wiedzą jak ich ActiveX wyglądał.
lolek.oloZobacz profil
Poziom ostrzeżenia: 0%
lolek.olo2013.03.11, 10:10
arval @ 2013.03.11 09:22  Post: 642362
GrLT @ 2013.03.11 09:13  Post: 642359
(...)

Oh yay... antywir też? Bo jak nie to widzę nową generację wirusów w natarciu :)
...


Nie. Zwykłe aplikacje Win32 nie będą mogły pracować w 'connected standby'. Są one pisane jako jeden proces więc musiałby zostać całkowicie przebudowane. Z trybu 'connected standby' będą mogły skorzystać tylko aplikacje Metro/Modern. Taka aplikacja budowana jest jako dwa niezależne elementy. Aplikacja właściwa oraz niezależna usługa przystosowana do pracy w trybie 'connected standby'. Tak jak na telefonach z WP7 gdzie masz też osobno aplikację z interfejsem GUI a osobno w niej moduł przykładowo do pobierania danych z sieci lub odtwarzania muzyki który potrafi działać w tle.

Tryb 'connected standby' jest specjalnym trybem systemu operacyjnego i ma mocne ograniczenia na usługi. Ich czas pracy, ograniczenie zużywania energii. Oraz oczywiście wymaga odpowiedniego procesora takiego jak Haswell lub CloverTrail

Tak wygląda lista dozwolonych operacji w 'connected standby':

◾Playing music
◾Downloading a file from or uploading it to a website
◾Keeping live tiles alive with fresh content
◾Printing
◾Receiving a VoIP call
◾Receiving an instant message
◾Receiving an email
◾Sharing content (like uploading photos to Facebook)
◾Synchronizing content with a tethered device (like syncing photos)

Tak więc twój 'teoretycznie wyłączony' komputer będzie potrafił odebrać rozmowę na Skype i się włączyć tak jak potrafią to zrobić telefony

Nie jestem specjalistą, ale podobnie jak 'GrLT' widzę tu znakomite pole do popisu dla nowych wirusów(podobnie było we wspomnianych komórkach).
Kenjiro @ 2013.03.11 10:00  Post: 642363
...
Jeśli żaden antywirus nie będzie panować nad transferem danych, to będzie wesoło.

Poza tym co ze scenariuszem, gdzie ktoś zainstaluje złośliwą aplikację, która przy przejściu komputera w tryb 'connected standby' nagle ma większe uprawnienia niż przed chwilą? W sandboksy made by MS nie wierzę - wszyscy wiedzą jak ich ActiveX wyglądał.

Dokładnie.

karlito123Zobacz profil
Poziom ostrzeżenia: 0%
karlito1232013.03.11, 10:10
11#10
seba12a @ 2013.03.11 09:22  Post: 642361
poczekam jeszcze 2 lata i kupię w normalnej cenie

Chyba sobie żartujesz. Procesory praktycznie nie tanieją, a za dwa lata to one mogą nawet zacząć drożeć bo ich produkcja zostanie zakończona. Poza tym zobaczysz specyfikacje Broad Wella, a później Sky Lake i Ci przejdzie chęć na ten procek :). A co do artykułu, to nareszcie teksty jak za dawnych lat, techniczne i ciekawe
Zaloguj się, by móc komentować
1