Procesory

Wielordzeniowce przyszłości – dwie drogi rozwoju

Tak więc wielordzeniowa architektura SMP ma spore ograniczenia, które za kilka lat mogą skutecznie zahamować dalszy rozwój wysokowydajnych systemów komputerowych. Dlatego naukowcy i inżynierowie z wielu firm związanych z produkcją sprzętu komputerowego już teraz intensywnie pracują nad procesorami wielordzeniowymi, które byłyby pozbawione wad systemów SMP. Co ciekawe, wszystkie opracowywane niezależnie technologie opierają się na założeniu, że wielordzeniowe procesory przyszłości będą wykorzystywać dziesiątki lub setki bardzo prostych, pracujących równolegle rdzeni. Wśród tych konstrukcji wyraźnie widać dwie tendencje – w pierwszym wypadku skorzystano z doświadczeń zdobytych przy konstruowaniu układów graficznych, w drugim z klastrów komputerowych.

Zacznijmy od konstrukcji opartych na na technologii kart graficznych. Architektura kart graficznych od początku pomyślana była w ten sposób, że urządzenia mają wykonywać relatywnie proste obliczenia na bardzo dużej liczbie danych. Chodzi przede wszystkim o przetwarzanie wierzchołków wielokątów i tekstur. Dlatego w układach graficznych stosuje się bardzo dużo prostych jednostek obliczeniowych, które pracują równolegle.

Dla przykładu, GeForce GTX 580 (architektura Fermi) dysponuje 512 zunifikowanymi shaderami nazywanymi też jednostkami CUDA (Compute Unified Device Architecture), będącymi tak naprawdę bardzo prostymi jednostkami obliczeniowymi typu RISC wykonującymi operacje typu SIMD (Single Instruction, Multiple Data), gdzie pojedyncze instrukcje kierują przetwarzaniem wielu strumieni danych. Każdy z tych miniprocesorów składa się z potokowej 32-bitowej jednostki arytmetyczno-logicznej ALU oraz 64-bitowej jednostki zmiennoprzecinkowej FPU działającej z pojedynczą i podwójną precyzją. Procesory te pogrupowane zostały w 16 bloków obliczeniowych nazywanych Streaming Multiprocessor  (każdy z nich zawiera po 32 miniprocesory), które skupiono ze względu na pozostałe niezbędne do generowania grafiki jednostki wykonawcze, w cztery moduły GPC (Graphics Processing Cluster).

Architektura Fermi
Architektura Fermi (GF100) wykorzystana m.in. w układzie graficznym GeForce GTX 580 (nazwa kodowa GF110) 

W każdym bloku obliczeniowym Streaming Multiprocessor (SM) znajduje się 16 jednostek LD/ST (Load/Store), dzięki którym możliwa jest obsługa pamięci cache i DRAM, a każdy blok SM może obsłużyć jednocześnie 32 wątki. Procesory CUDA w module SM wspólnie użytkują 64-kilobajtową pamięć cache L1, 16 KB pamięć uniform cache 16 KB oraz pamięć podręczna dla tekstur (12 KB). Wszystkie bloki SM mają do dyspozycji 768 KB pamięć cache L2. Jak widać architektura ta nie różni się w jakiś zasadniczy sposób od architektury procesorów.

Streaming Multiprocessor
Budowa bloku obliczeniowego Streaming Multiprocessor (SM) oraz procesorów CUDA w architekturze Fermi