Procesory z bardzo długą instrukcją

Idea procesorów z bardzo długą instrukcją od lat nie mogła doczekać się realizacji technicznej; pierwsze pojawiły się dopiero teraz.

Idea procesorów z bardzo długą instrukcją od lat nie mogła doczekać się realizacji technicznej; pierwsze pojawiły się dopiero teraz.

Procesor z bardzo długą instrukcją (Very Long Instruction Word - VLIW) nie jest rozwiązaniem nowym. Jego idea była rozważana już w latach 70., ale z powodu braku możliwości technicznych cieszyła się zainteresowaniem jedynie w kręgach akademickich. Postępy technologiczne i konieczność stałego zwiększania wydajności komputerów zachęciły producentów do ponownego rozważenia możliwości realizacji tej idei.

Problemy z RISC-iem

Procesory RISC (w kręgach wtajemniczonych nazywane demonami szybkości) tym różnią się od procesorów CISC (ze względu na swą skomplikowaną architekturę nazywane mózgowcami - brainiacs), że w każdym cyklu zegara wykonują co najmniej jedną stosunkowo prostą instrukcję.

Pierwszy procesor RISC pojawił się w latach 70. i mógł wykonywać tylko jedną instrukcję w każdym cyklu zegarowym. Dopiero na początku lat 90. pojawiły się konstrukcje superskalarne, zawierające kilka jednostek funkcjonalnych, zdolne do wykonywania od 2 do 6 instrukcji w jednym cyklu zegara.

Stało się to możliwe z chwilą wbudowania w procesor więcej niż jednej jednostki wykonawczej (np. po dwa moduły stałoprzecinkowe i moduły zmiennoprzecinkowe oraz jeden moduł rozgałęzień) i szerokiej szyny wprowadzania instrukcji z pamięci podręcznej. Teoretycznie procesor może wykonać jednocześnie tyle instrukcji, ile ma jednostek wykonawczych. Wymaga to jednak skomplikowanego mechanizmu rozdzielania instrukcji na poszczególne jednostki. W praktyce jednocześnie wykonuje się nie więcej niż 4 instrukcje, a jeśli wziąć pod uwagę konieczność uwzględnienia skoków w programie i wprowadzenia wyników wykonania jednej instrukcji jako danych wejściowych do innych, to realne zrównoleglenie wykonywania rzadko przekracza dwa (dwie instrukcje w jednym cyklu zegara).

Nawet jeśli z pamięci podręcznej udałoby się wprowadzić do procesora kilkanaście instrukcji, to w jednym cyklu zegarowym nie ma możliwości przeanalizowania, które jednostki wykonawcze nie są zajęte, przesłania im instrukcje do wykonania i połączenia ich wyników. Dlatego współczesne procesory RISC na ogół wykonują tylko od 4 do 6 jednostek wykonawczych i tyle instrukcji mogą zrealizować jednocześnie (przynajmniej w teorii).

Utrudnieniem jest także konieczność ścisłego sprzężenia metod kompilacji programów z architekturą procesora w celu dostarczenia w programie optymalnego ciągu instrukcji.

Co to jest procesor VLIW?

Współczesna technologia umożliwia wbudowanie w jeden układ scalony procesora kilkunastu lub kilkudziesięciu jednostek wykonawczych. Obniżenie kosztów pamięci statycznych, używanych jako pamięć podręczna, pozwala na obudowanie procesora szeroką szyną, umożliwiającą dostarczanie kilkusetbitowego słowa w jednym cyklu zegarowym. Jednakże nie udaje się wykorzystać tych możliwości w typowej konstrukcji RISC. Powodem jest ograniczenie w dekodowaniu instrukcji i rozdzielaniu ich na różne jednostki wykonawcze.

Aby uniknąć konieczności sprzętowego decydowania, która jednostka wykonawcza ma realizować konkretną instrukcję, konstruktorzy procesorów z bardzo długim słowem zdecydowali się na rozwiązanie radykalne: usunęli całkowicie moduł rozdzielający instrukcje z procesora. Zadanie to teraz musi wykonać kompilator, dostarczając długie słowa-instrukcje odpowiednio zestawione z krótszych instrukcji maszynowych. Jeżeli więc w procesorze jest 16 jednostek wykonawczych, kompilator musi w każdym słowie umieścić instrukcję dla każdej jednostki, nawet jeśli jest to instrukcja typu: „nic nie rób". Procesor VLIW nie analizuje już ciągu instrukcji, ale przesyła je bezpośrednio do odpowiedniej jednostki wykonawczej.

Ponieważ procesor VLIW nie musi analizować instrukcji, jego cykl zegarowy może być krótszy niż w przypadku procesora RISC. Biorąc zaś pod uwagę, że wykonuje on kilkanaście instrukcji w jednym cyklu, łatwo udaje się osiągać wydajność przetwarzania liczoną w gigainstrukcjach na sekundę (GIPS).

Jak długie jest słowo procesora VLIW? Jeżeli miałby on 16 jednostek wykonawczych, z których każda posługuje się instrukcją 4-bajtową (32 bity), otrzymujemy długość słowa równą 512 bitom. Przy obecnych możliwościach technologicznych nie będzie większych problemów ze zmieszczeniem 32 jednostek wykonawczych na kostce układu scalonego.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200