Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
22
ROZDZIAŁ1.WPROWADZENIE
Hierarchicznepamięci
Hierarchiapamięciskładasięzwielupoziomówpamięcioróżnejprędkości
irozmiarach,przyczympoziomynajbliższeprocesorowinajszybsze,ale
najmniejsze.Średniczasdostępudopamięciwprogramiezmniejszasię,jeśli
większośćtychdostępówjestrealizowanaprzezszybszepoziomytejhierarchii.
Zarównorównoległość,jakidostępnośćhierarchiipamięcizwiększająpotencjalną
wydajnośćkomputera,alemuszązostaćwłaściwiezaprzęgnięteprzezkompilator,
abyzapewnićrzeczywistywzrostwydajnościaplikacji.
Hierarchiepamięciwystępująwewszystkichtypachkomputerów.Procesor
zazwyczajmaniewielkąliczbęrejestrówmieszczącychpokilkabajtów,kilka
poziomówpamięcipodręcznej(buforów)zawierającychodkilo-domegabajtów,
pamięćfizycznąowielkościodmega-dogigabajtów,anakonieczasadniczy
magazyn(pamięćdyskową)orozmiarachgigabajtówipowyżej.Odpowiednio
prędkośćdostępumiędzysąsiadującymipoziomamihierarchiimożeróżnićsięod
dwóchdotrzechrzędówwielkości.Wydajnośćsystemujestczęstoograniczananie
tyleprzezszybkośćprocesora,ileprzezsprawnośćpodsystemupamięci.Podczas
gdytradycyjnekompilatoryskupiałysięnaoptymalizowaniuwykonywaniukodu
przezprocesor,obecniewiększynaciskjestkładzionynazapewnieniewiększej
efektywnościhierarchicznejpamięci.
Wydajneużywanierejestrówjestzapewnenajważniejszympojedynczym
problememprzyoptymalizacjiprogramu.Wodróżnieniuodrejestrów,któ-
rymiprogramymogąjawniezarządzać,buforyipamięcifizyczneukryte
przedzestawamiinstrukcjiizarządzaneprzezsprzęt.Możnasięprzeko-
nać,żezasadyzarządzaniabuforowaniemimplementowaneprzezsprzętnie
efektywnewniektórychprzypadkach,szczególniewkodzienaukowym,
którywykorzystujewielkiestrukturydanych(zazwyczajtablice).Możliwe
jestusprawnienieefektywnościhierarchiipamięciprzezzmianęukładuda-
nychlubzmianękolejnościinstrukcjiodwołującychsiędotychdanych.Mo-
żemyrównieżzmienićukładsamegokodu,abypoprawićwydajnośćbuforów
instrukcji.
1.5.3.Projektynowycharchitekturkomputerów
Wewczesnychlatachprojektowaniakomputerówkompilatorybyłyzazwyczaj
tworzonedopieropozbudowaniusamychmaszyn.Tosięzmieniło.Ponieważ
normąjestdziśprogramowaniewjęzykachwysokiegopoziomu,wydajnośćsys-
temukomputerowegojestdeterminowananietylkoprzezjegofizycznąprędkość,
lecztakżetym,jakdobrzekompilatorymogąwykorzystaćjegofunkcjonalno-
ści.Tymsamymprzyprojektowaniunowoczesnycharchitekturkomputerów
kompilatorytworzonenaetapieprojektowaniaprocesora,skompilowanyzaś
koduruchamianynasymulatorachsłużydoocenianiaproponowanychfunkcji
architektonicznych.