Naturalnym, wykorzystywanym powszechnie sposobem na zwiększenie wydajności procesora jest zastosowanie w nich architektury wielordzeniowej. W obecnie produkowanych wielordzeniowych procesorach wykorzystuje się prostą w sprzętowej i programowej implementacji architekturę SMP (Symmetric MultiProcessing), która pozwala na symetryczne, jednoczesne przetwarzanie wielu wątków na kilku procesorach lub rdzeniach należących do jednego układu. Rdzenie w układach wielordzeniowych współdzielą ze sobą zasoby komputera, takie jak: pamięć operacyjna RAM, pamięć masowa (m.in. dyski twarde, pamięć flash, napędy optyczne) oraz interfejsy I/O. Co ważne, w architekturze SMP rdzenie (lub procesory) komunikują się ze sobą używając wspólnej magistrali systemowej. Charakterystyczną cechą architektury SMP jest to, że procesory (lub rdzenie) do poszczególnych zadań przydzielane są przez system operacyjny.
Wszystkie produkowane obecnie układy wielordzeniowe są tak naprawdę kilkoma połączonymi na jednej strukturze krzemowej niezależnymi procesorami, zwanymi tutaj rdzeniami lub jądrami. Każdy z rdzeni procesora wielordzeniowego jest identyczny i komunikuje się z pozostałymi jądrami za pomocą jednej wewnętrznej magistrali systemowej. Obecnie produkuje się procesory dwu-, trzy-, cztero-, sześcio-, ośmio- i dwunastordzeniowe. Układy z pojedynczym rdzeniem obecnie spotkać można już jedynie w najprostszych netbookach.
Struktura krzemowa procesora AMD Bulldozer z zaznaczonymi blokami architektury
Bardzo ciekawe rozwinięcie architektury wielordzeniowej przygotowali inżynierowie firmy AMD w wypadku procesorów z rdzeniem Bulldozer (np. ośmiordzeniowy układ AMD FX-8150). Zastosowano tutaj modułową, znaną dokładnie z architektury serwerów konstrukcję. Każdy z modułów (który tak naprawdę jest niezależnym, dwurdzeniowym procesorem) zawiera dwa rdzenie wraz ze wszystkimi potrzebnymi do ich działania elementami – w tym pamięcią cache L2. Ponieważ moduły zawierające dwa rdzenie są w bardzo dużym stopniu niezależne, bardzo łatwo jest skalować cały układ produkując procesory o dowolnej parzystej liczbie rdzeni. Resztę procesora stanowi pamięć cache L3, kontrolery magistrali systemowej Hyper-Transport i kontroler pamięci.
Mikroarchitektura procesora AMD Bulldozer
Mikroarchitektura dwurdzeniowego modułu układu AMD Bulldozer
Nieco wcześniej bardzo podobnie do modułowości procesorów wielordzeniowych podeszli inżynierowie Intela. W wypadku najnowszej architektury Sandy Bridge rdzenie procesorów są również niezależne, ale „przypięte” zostały one do znacznie bardziej zintegrowanego „systemowego” otoczenia, a mianowicie jednostki nazywanej agentem systemowym (ang. system agent), która zastąpiła mostek północny montowany niegdyś na płytach głównych. Poza agentem w rdzeniu procesora znalazł się kontroler pamięci i układ graficzny.
Modułowa mikroarchitektura układu Intel Sandy Bridge
Jak widać w kolejnych generacjach procesorów zgodnych z architekturą x86 pojawiają się coraz to nowsze elementy odmładzające tę architekturę. Nic nie wskazuje na to, żeby układy zgodne z listą rozkazów x86 miały odejść do lamusa. W najbliższym czasie powinniśmy doczekać się kolejnych jej rozszerzeń związanych ze strumieniowym i wektorowym przetwarzaniem danych.
Lubisz cykl hardcore IT? Poleć go znajomym na Facebooku (kliknij "Lubię to!" na górze artykułu) oraz przeczytaj inne artykuły:
Procesory wielordzeniowe - co szykuje przyszłość? | Intel Thunderbolt - transfer danych na całego | OLED - ekrany przyszłości |
Komentarze
831. AMD64 zostało opracowane przez AMD, a nie w kooperacji z Intelem. Intel promował rozwiązanie swoje i HP pod tytułem IA64. Intel za pomocą cross license zyskał prawo do własnej implementacji instrukcji x86-64 i zrobił to w formie EM64T. Ale w opracowaniu tej technologii nie kiwnął paluszkiem :)
2. MMX mapowało WSZYSTKIE swoje 64 bitowe rejestry (a nie część) na 80 bitowe rejestry x87 (ST0-ST7) a dodatkowo operowało jedynie na liczbach stałopozycyjnych więc rola była ogółem niewielka, a rewolucja żadna (choć Intel z MS, a później kolejno AMD, IDT itp. starali się z MMX zrobić super bohatera). Małe rewolucje to 3DNow!, SSE, a trochę większa SSE2.
3. Rdzenie RISC - tutaj też trochę fantazja ponosi. Mikrokod ma każdy procesor, czy to CISC, czy RISC, czy VLIW, czy SIMD. Mikrokod ma to do siebie, że jest RISC like - tzn. zazwyczaj jednej instrukcji RISC odpowiada 1 mikrooperacja (ale nie zawsze!) Nowoczesny x86 nadal nie ma w środku tylu rejestrów co typowe RISC. Jedyne eksperymenty z jądrem RISC to AMD K5, K6 i Nx586 - pozostałe proce to łączenie zalet CISCa i RISCa (pipeline, superscalar, register rename etc. etc), ale nie jądro RISC.
4. K5 nie opierało się o nx586 tylko AM29k, dopiero K6 bazowało na projekcie nexgena, którego AMD przejęło. Wszystkie te konstrukcje łączyła świetna wydajność pure x86, natomiast daremne FPU x87 o ile w ogóle było.
Pejsbuk tu, pejsbuk tam...
Chowajcie szybciutko ten artykuł, bo komuś pomyliło się TLB(Translation Lookaside Buffer) z mechanizmem Branch prediction!!!
Moim zdaniem to nie K5 ale K6 który powstał gdy AMD przejęło NextGena
Szczgółowy opis architektury Sandy Bridge
http://realworldtech.com/page.cfm?ArticleID=RWT091810191937
Szczegółowy opis architektury Bulldozer
http://realworldtech.com/page.cfm?ArticleID=RWT082610181333
Ta ma przeszło 30 lat a jak wiadomo 30 lat w świecie techniki to milenium w normalnym świecie ;)
Twierdzenie że to artykuł dla hardkorowców jest śmieszne.
Umieszczajcie artykuły poruszające tematy mniej oklepane ale dotyczące równie ciekawych koncepcji - VLIW, FPGA, OOP, AOP, problematyka tworzenia aplikacji wielowątkowych, pamięć transakcyjna, tworzenie gramatyki języka i działanie kompilatora, metaprogramowanie itp
Niestety na chwilę obecną jest nudny przekładaniec: budowa CPU, budowa GPU, budowa CPU, budowa GPU, itd
AMD lata świetności za sobą.
Premiera Bulldozera tylko to potwierdziła. 6-cio rdzeniowy procesor z nową architekturą gorszy od poprzednika...tyle o AMD. Hector i Rory sprowadzą świetną niegdyś firmę na kozi róg.
Rezyganacja Dirka Meyera oznacza end świetnej niegdyś firy.
Intel obecnie będzie liderem CPU - x86.
Moim zdaniem powinno się już odejść od x86, ale nie w stronę ARM.
ARM nie ma układów zamiany instrukcji i jeynąich zaletą jest energooszczędność.
Powinno się stworzyć nową listę instrukcji ale pod kątem oprogramowania - jak to miało mniejsce w 1978 roku.
Intel mający ogrom środków powinien coś zdziałać, bo w końcu rozwój ich produktów stanie w raz z procesem technologicznym.