artykuły

W 80 rdzeni dookoła przyszłości

95
18 lutego 2007, 20:22 Ryszard Sobkowski

Mikroarchitektura – 80 chudziutkich jąderek

Popatrzmy teraz bardziej wnikliwie na architekturę miniaturowych jednostek obliczeniowych Processing Engine. Nie zniechęcajcie się obrazkiem!

Schemacik

Dwie 32-bitowe jednostki zmiennoprzecinkowe FPMAC z funkcją mnożenia, pracujące w trybie akumulacji (to znaczy, że wynik operacji trafia do rejestru, w którym znajdował się jeden z operandów), współpracują z zestawem 32 rejestrów, zorganizowanym tak, że możliwe jest równocześnie dokonanie sześciu odczytów i czterech zapisów. 2-kilobajtowa pamięć RAM danych (D MEM) dostępna jest przez 64-bitową szynę zarówno dla zespołu rejestrów, jak i dla układu RIB – Router Interface Block.

Zwraca uwagę brak jakiegokolwiek dekodera instrukcji – elementu, do którego obecności przywykliśmy w klasycznej architekturze procesorów. Dekodera instrukcji nie ma, ponieważ odczytywane z pamięci I MEM instrukcje sterują jednostkami procesora bezpośrednio. W Processing Engine zastosowano bardzo uproszczoną architekturę VLIW – Very Long Instruction Word, w bardziej wyrafinowanych formach znaną nam z procesorów Transmeta i Intel Itanium. W 96-bitowym słowie instrukcji może być zawarte do sześciu poleceń, adresowanych do poszczególnych układów funkcjonalnych. Możliwe jest więc równoczesne wydanie instrukcji dla obu jednostek FPMAC oraz dwóch instrukcji zapisu i dwóch odczytu z pamięci D MEM, a także kombinacje tych instrukcji z rozkazami przeznaczonymi dla routera. Prościej, a zarazem skuteczniej, chyba się tego zrobić nie da.

Ale jedna cecha układu PE stanowi o tym, że od Polaris do rzeczywistego Terascale Computing jest jeszcze dość odległa droga. To fakt, że jednostki FPMAC są jedynie 32-bitowe – w większości dzisiejszych zastosowań konieczne są natomiast obliczenia zmiennoprzecinkowe z podwójną precyzją...

3