VLIW

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

VLIW (ang. Very Long Instruction Word) – nazwa architektury mikroprocesorów z bardzo długim słowem instrukcji.

Opis[edytuj | edytuj kod]

Już od samego początku historii procesorów starano się zwiększać moc obliczeniową oraz szybkość wykonywania programu poprzez zwiększanie liczby jednostek wykonawczych w procesorach. Dzięki temu przy dogodnych warunkach udawało się wykonać więcej niż jedną instrukcję w tym samym czasie. Poprawienie warunków równoległego (i szybszego) wykonywania instrukcji zostało osiągnięte przez wprowadzenie techniki wcześniejszego wykonania instrukcji (ang. Out-of-Order Execution). Wszystkie te mechanizmy zwiększania równoległości wykonywania instrukcji zaszyte były w logice mikroprocesorów. W przeciwieństwie do innych architektur mikroprocesorów, architektura VLIW charakteryzuje się maksymalnie daleko idącym uproszczeniem jednostek sterujących (CU) w samym mikroprocesorze. Logika została maksymalnie uproszczona aż do całkowitego zaniku niektórych elementów. Całą złożoność przepływu sterowania w mikroprocesorze, czyli wykonywania rozkazów (programu), przerzucono na barki oprogramowania – kompilatorów. Rezygnacja z całej tej logiki wymusiła dostarczenie do procesora wystarczającej liczby danych – sygnałów sterujących. Z tego powodu pojedyncze rozkazy posiadają w sobie już zdekodowane (lub wstępnie zdekodowane) sygnały sterujące, dane oraz, co najważniejsze, "instrukcje" dedykowane dla konkretnych jednostek wykonawczych mikroprocesora. Tak stworzona pojedyncza instrukcja procesora VLIW ma wielkość rzędu setek bitów – 256 lub więcej.

Historia[edytuj | edytuj kod]

Termin VLIW oraz sama koncepcja architektury, została stworzona przez prof. Josha Fishera w grupie badawczej na Uniwersytecie Yale we wczesnych latach 80. Przed wprowadzeniem architektury VLIW, zagadnienia projektowania jednostek funkcjonalnych i zrównoleglania na poziomie instrukcji w oprogramowaniu były dobrze ugruntowane w praktyce i rozwijane jako poziomy mikrokod. Innowacja Fishera skupiała się na zaprojektowaniu kompilatora, który mógłby wyprodukować poziomy mikrokod z programów napisanych w normalnych językach programowania. Fisher zauważył, że aby osiągnąć wysoką wydajność wymagane będzie poszukiwanie zrównoleglenia ponad tymi, które były znajdywane wewnątrz podstawowych bloków. Zaprojektował technikę planowania obszarowego (ang. region scheduling) aby zidentyfikować równoległość ponad podstawowymi blokami. Śledzenie planowania (ang. Trace Scheduling) jest taką właśnie techniką i uzależnia planowanie najpierw dla najbardziej prawdopodobnej ścieżki wstawiając specjalny kod kompensujący obsługujący spekulacyjne ruchy takie jak druga najbardziej prawdopodobna ścieżka i tak dalej aż planowanie zostanie zakończone.

Drugą innowacją Fishera było wskazanie, że architektura docelowego procesora powinna być zaprojektowana tak, aby stała się sensownym celem dla kompilatora – kompilator i architektura VLIW musi być współtworzona. Było to częściowo zainspirowane trudnościami, jakie Josh zaobserwował jeszcze w Yale kompilując dla architektur takich jak Floating Point Systems FPS164, które miały złożony model programowy (ISA), który oddzielał instrukcje inicjujące od instrukcji zapisujących rezultat działania – prowadząc do potrzeby bardzo skomplikowanego algorytmu sterującego. Josh stworzył zbiór podstaw opisujących poprawną architekturę VLIW, takie jak samooczyszczające się potoki, szerokie wieloportowe zestawy rejestrów i architekturę pamięci. Te podstawy pomogły kompilatorom tworzyć szybki kod. Obecne kompilatory są o wiele bardziej skomplikowane niż te z lat '80 XX wieku, tak więc dodanie jeszcze jednego kawałka do tego całego skomplikowania powinno być co najwyżej małym kosztem.

Fisher opuścił Yale w 1984 roku aby założyć firmę o nazwie Multiflow, razem ze wspólnikami Johnem O'Donnellem i Johnem Ruttenbergem. Multiflow produkował serię minisuperkomputerów VLIW o nazwie TRACE. Sprzedał pierwsze swoje maszyny w okolicach 1988 roku. Maszyna ta mogła wykonywać 28 operacji równolegle z każdą instrukcją. Firma Multiflow upadła w 1990 roku. Jednym z licencjobiorców tej technologii jest Hewlett-Packard, do którego dołączył Fisher po tym, jak jego firma upadła.

Procesory VLIW[edytuj | edytuj kod]

Obecnie procesory VLIW są oparte na architekturze RISC, zazwyczaj z czterema lub maksymalnie ośmioma jednostkami obliczeniowymi. Po normalnej kompilacji programu, kompilator VLIW porządkuje kod na ścieżki, które wprost nie posiadają jakichkolwiek zależności. Następnie są one dzielone na cztery lub więcej części (jeden dla każdej jednostki obliczeniowej CPU) i pakowane razem w większe instrukcje z dodatkową informacją odnośnie do jednostki, na której ma być wykonywana. Rezultatem tego jest pojedynczy wielki opcode (stąd nazwa "Very Long").

Procesor TriMedia firmy Philips jest przedstawicielem architektury VLIW, tak samo jak Intel Itanium IA-64.

Zobacz też[edytuj | edytuj kod]