artykuły

Intel V8 - recenzja (prawie) na żywo

160
1 maja 2007, 17:03 Ryszard Sobkowski

Niespodzianka: dwie szyny FSB

Tak, to nie pomyłka – każdy z procesorów łączy się z chipsetem, a za jego pośrednictwem z pamięcią operacyjną RAM i systemem wejścia/wyjścia, za pośrednictwem własnej, indywidualnej szyny FSB! W konstrukcjach Intela rzecz dotychczas niespotykana.

Hmm... skądś znamy takie rozwiązanie. Czy to przypadkiem nie było coś takiego, co stanowiło sensację kilka lat temu?

Podobieństwo zewnętrzne jest spore, ale nie sposób było go uniknąć. Jednak różnice wewnętrzne są bardzo istotne. Indywidualne szyny – to znaczyłoby, że transmisje danych pomiędzy procesorami, jakie są konieczne w celu zachowania spójności zawartości pamięci cache, byłyby teraz dłuższe, ze względu na wnoszone przez chipset opóźnienie. Owszem, będą dłuższe, ale za to będą się odbywały tylko wtedy, kiedy będą niezbędne. Przeniesienie problemu spójności cache na układ northbridge chipsetu to łakoma rzecz w wieloprocesorowej konfiguracji SMP, zauważmy tylko, że każdy z procesorów Clovertown sam w sobie stanowi dwuprocesorową konfigurację SMP. Jednak w układzie AMD 762 wsparcie protokołu spójności cache przez sam chipset było jedynie śladowe.

Tymczasem w układzie Greencreek zastosowano bardzo skuteczne rozwiązanie, nazywane powszechnie snoop filtering, wykorzystywane dotychczas jedynie w konstrukcji chipsetów do maszyn z większą od czterech liczbą procesorów. Na czym ono polega? Tu musimy w skrócie wyjaśnić protokół utrzymania spójności cache, stosowany przez Intela w procesorach x86. Jest to protokół rozgłoszeniowy (żądanie snoop, czyli podglądania stanów, przesyłane jest do wszystkich procesorów w systemie, wszystkie na nie odpowiadają), z ewentualnym unieważnianiem zapisów w cache. Protokół operuje na czterech możliwych statusach dla każdego wiersza cache: Modified - Exclusive - Shared – Invalid i często nazywany jest protokołem MESI. W przypadku konfiguracji dwuprocesorowej rozgłaszanie i odbiór informacji stanowią stosunkowo nieznaczne obciążenie szyny FSB, a prostota protokołu sprawia, że opóźnienia są relatywnie niewielkie. W czteroprocesorowej konfiguracji SMP sytuacja staje się trudniejsza i obsługa protokołu spójności cache zaczyna angażować znaczącą część pasma przepływności szyny FSB. Nie koniec na tym – transmisje snoop pomiędzy procesorami muszą mieć niższy priorytet od transmisji burst pomiędzy procesorem a pamięcią RAM, co powoduje konieczność oczekiwania „pytającego” procesora przez okres kilkunastu cykli zegara szyny.

Filtracja rozgłaszania, jaką realizuje snoop filter, polega na wyeliminowaniu przesłań pomiędzy procesorami wtedy, kiedy nie są one niezbędne – chipset zawiera więc sporą pamięć skojarzeniową, w której przechowywane są informacje o aktualnym stanie zgodności cache. Dzięki takiemu rozwiązaniu, generowane przez protokół spójności cache obciążenie każdej z szyn FSB jest tylko nieznacznie większe niż w dwuprocesorowej konfiguracji SMP.

Poza podstawowym rozwiązaniem filtracji śledzenia spójności, w układzie Greencreek wbudowano również inne mechanizmy wspomagające obsługę protokołu MESI, jak śledzenie i rejestracja operacji DMA na pamięci RAM oraz wiele innych. Co to daje w praktyce? Według testów Intela snoop filtering przynosi co najmniej pięcioprocentowy wzrost wydajności w aplikacjach wrażliwych na pasmo przepływności pamięci dla konfiguracji zawierającej dwa procesory dwurdzeniowe. W przypadku dwóch procesorów czterordzeniowych zysk ten może nawet przekroczyć dziesięć procent.

3