Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.5.ZASTOSOWANIATECHNOLOGIIKOMPILATORÓW
21
1.5.2.Optymalizacjearchitekturkomputerów
Błyskawicznaewolucjaarchitekturkomputerówrównieżdoprowadziładonieda-
jącegosięzaspokoićzapotrzebowaniananowetechnologiekompilatorów.Niemal
wszystkiewysokowydajnesystemywykorzystujątesamedwiepodstawowe
techniki:równoległośćihierarchiepamięci.Równoległośćmożemyzauważyćna
wielupoziomach:napoziomieinstrukcji,gdywieleoperacjijestwykonywanych
wtymsamymczasie,inapoziomieprocesora,gdyróżnewątkitejsamejaplikacji
wykonywaneprzezróżneprocesory.Hierarchicznapamięćjestodpowiedzią
napodstawoweograniczeniepolegającenatym,żepotrafimykonstruowaćbar-
dzoszybkielubbardzowielkiepamięci,alenietakie,którebyłybyjednocześnie
szybkieiwielkie.
Równoległość
Wszystkienowoczesnemikroprocesorywykorzystująrównoległośćnapoziomie
instrukcji.Jednaktentyprównoległościjestzwykleniewidocznydlaprogra-
misty.Programypisanetak,jakbywszystkieinstrukcjebyływykonywane
sekwencyjnie;sprzętdynamiczniesprawdzazależnościmiędzyinstrukcjamiwse-
kwencyjnymstrumieniuiwywołujejerównolegle,gdytomożliwe.Wniektórych
przypadkachkomputerzawierasprzętowyprogramszeregujący,którymoże
zmienićuporządkowanieinstrukcjiwceluzwiększeniarównoległościwykonywa-
niaprogramu.Niezależnieodtego,czysprzętzmieniakolejnośćinstrukcji,czy
nie,kompilatorymogązmieniaćwcelubardziejefektywnegowykorzystania
równoległościnapoziomieinstrukcji.
Równoległośćnapoziomieinstrukcjimożerównieżjawniewystępowaćwzbio-
rzeinstrukcji.KomputeryVLIW(VeryLongInstructionWordbardzodługie
słowoinstrukcji)zawierająinstrukcje,któremogąwywoływaćwieleoperacji
równoległych.DobrzeznanymprzykłademtakiejarchitekturyjestIntelIA64.
Wszystkiewysokowydajnemikroprocesoryogólnegoprzeznaczeniazawierają
równieżinstrukcje,którepozwalająoperowaćnawektorachdanychjednocześnie.
Opracowanezostałytechnikikompilacjiautomatyczniegenerującekoddlatakich
maszynnapodstawieprogramówsekwencyjnych.
Systemywieloprocesorowestałysięponadtopowszechne.Nawetkompu-
teryosobistezwyklezawierająwieleprocesorów(rdzeni).Programiścimogą
samipisaćwielowątkowykoddlasystemówwieloprocesorowych,alekodrów-
noległymożebyćteżautomatyczniegenerowanyprzezkompilatorzkonwen-
cjonalnychprogramówsekwencyjnych.Tegotypukompilatorukrywaprzed
programistąszczegóływyszukiwaniarównoległościwprogramie,rozpraszania
obliczeńwcałejmaszynieiminimalizowanieniezbędnejsynchronizacjiiko-
munikacjimiędzyprocesorami.Wieleaplikacjiinżynierskichinaukowychjest
bardzoobciążającychobliczeniowoimogąogromnieskorzystaćnaprzetwarza-
niurównoległym.Zostaływięcopracowanetechnikizrównoleglaniapozwala-
jąceautomatycznietłumaczyćsekwencyjneprogramynaukowenakodwielo-
procesorowy.