VLIW: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Stepa (dyskusja | edycje)
+lnk
RooBot (dyskusja | edycje)
m linkfix, Replaced: ang.ang.
Linia 1: Linia 1:
'''VLIW''' ([[ang.]] ''Very Long Instruction Word'') – nazwa architektury mikroprocesorów z bardzo dużym słowem instrukcji.
'''VLIW''' ([[język angielski|ang.]] ''Very Long Instruction Word'') – nazwa architektury mikroprocesorów z bardzo dużym słowem instrukcji.


== Opis ==
== Opis ==

Wersja z 09:31, 19 sie 2007

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

Opis

W przeciwieństwie do innych architektur mikroprocesorów, architektura ta charakteryzuje się maksymalnie daleko idącym uproszczeniem jednostek sterujących (CU) w samym mikroprocesorze. Już od samego początku historii procesorów starano się zwiększać moc obliczeniową a także 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 architekturze VLIW cała ta 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

Termin VLIW, i sama koncepcja architektury, została stworzona przez Prof. Josh Fisher w jego grupie badawczej na Uniwersytecie Yale we wczesnych latach 80. Przed wprowadzeniem architektury VLIW, pojęcie planowania(?) jednostek funkcjonalnych i zrównoleglania na poziomie instrukcji w oprogramowaniu było dobrze ugruntowane w praktyce jako rozwijanie poziomego mikrokodu. Innowacją Fishera skupiało się na zaprojektowaniu kompilatora który mógł wyprodukować poziomy mikrokod z programów napisanych w normalnych językach programowania. Zauważył że aby osiągnąć wysoką wydajność będzie wymagane poszukanie zrównoleglenia ponad tymi które były znajdywane wewnątrz ogólnych podstawowych bloków. Zaprojektował technikę planowania obszarowego (ang. region scheduling) aby zidentyfikować równoległość ponad podstawowymi blokami. Śledzenie Planowania (ang. Trace Scheduling) jest taka własnie 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ą Fisher'a było wskazanie że architektura docelowego CPU powinna być zaprojektowana, tak, aby być 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 inicjalizują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.

Fisher opuścił Yale w 1984 roku aby założyć firmę o nazwie Multiflow, razem ze wspólnikami Johnem O'Donnell i John Ruttenberg. 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żda instrukcją. Firma Multiflow upadła w 1990.

Jednym z licencjobiorców tej technologii jest Hewlett-Packard, do którego dołączył Fisher po tym jak jego firma upadła. Odkryli oni, że procesor może być znacząco uproszczony przez usunięcie skomplikowanej logiki sterującej z CPU i umieszczenie jej w kompilatorze. Obecne kompilatory są o wiele bardziej skomplikowane niż te z lat 1980, tak więc dodanie jeszcze jednego kawałka do tego całego skomplikowania powinien być co najwyżej małym kosztem.

Procesory VLIW

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

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

Sporo osób twierdzi (lecz nie ma co do tego ogólnej zgody) że wczesnymi problemami z procesorami VLIW było to że nie skalowały się dobrze dla pewnych punktów cenowych. Zarówno CISC jak i RISC mogą być zaimplementowane na różne sposoby, tak aby móc oszczędzić różną liczbę pieniędzy (jakkolwiek większość procesorów CISC jest zaimplementowana jako RISC ze sprzetowym modułem do translacji rozkazów). Architektura VLIW była postrzegana jako posiadająca mniejszą liczbę możliwości.

Transmeta zaadresowała ten problem poprzez załączenie warstwy binarnego kompilatora programowego (nazwanego przez firmę Code Morphing) w ich procesorach Crusoe będących implementacją architektury x86. Tak więc układ Transmety jest wewnętrznie procesorem VLIW.

Zobacz też