VLIW: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Nallimbot (dyskusja | edycje)
→‎Procesory VLIW: błąd gramatyczny
Linia 12: Linia 12:


== Procesory VLIW ==
== Procesory VLIW ==
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 jednostki, na której ma być wykonywana. Rezultatem tego jest pojedynczy wielki [[op-code]] (stąd nazwa "Very Long").
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 [[op-code]] (stąd nazwa "Very Long").


Procesor [[TriMedia]] firmy [[Royal Philips Electronics|Philips]] jest przedstawicielem architektury VLIW, tak samo jak [[Intel]] [[Itanium]] [[IA-64]].
Procesor [[TriMedia]] firmy [[Royal Philips Electronics|Philips]] jest przedstawicielem architektury VLIW, tak samo jak [[Intel]] [[Itanium]] [[IA-64]].

Wersja z 01:14, 3 lut 2010

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

Opis

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

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

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 op-code (stąd nazwa "Very Long").

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

Komentarz

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 sprzętowym 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ż