www.eprace.edu.pl » ia64 » Główne idee IA-64 » Współpraca Kompilatora z procesorem

Współpraca Kompilatora z procesorem

Kluczową ideą cechującą architekturę IA-64 to przesunięcie wszystkich możliwych zadań z procesora do kompilatora. Takie podejście daje możliwość takiego przygotowania kodu wykonywalnego, którego procesor nie będzie musiał już analizować. Dzisiejsze procesory analizują kod w poszukiwaniu sposobów wykonania go równolegle, lub aby przewidzieć możliwe w najbliższym czasie skoki. Podejście bazujące na przerzuceniu tych zadań do kompilatora, powoduje możliwość lepszego przeanalizowania kodu. Kompilator ma do dyspozycji kod źródłowy, a nie tylko wykonywalny, oraz dużo więcej czasu na obliczenia. Mechanizmy zastosowane w procesorach są tak skonstruowane, aby praca poświęcona na analizę była z nawiązką wyrównana przez oszczędności które są poczynione, gdyż inaczej jest to nie opłacalne. Kompilator nie ma takiego ograniczenia. Jedynym problemem jest właściwe przekazanie informacji z kompilatora do procesora.

IA zawiera mechanizmy takie jak: pola template w paczkach instrukcji, wskazówki co do przewidywania skoków, oraz podpowiedzi jakie dane ładować do cache, które pozwalają kompilatorowi na optymalne przygotowywanie kodu wykonywalnego. Dodatkowo IA pozwala skompilowanemu programowi na zarządzanie zasobami procesora korzystając z informacji czasu wykonania. Taki mechanizm pozwala na zminimalizowania opóźnień systemu związanymi ze skokami oraz niecelnymi zapisami danych do cache.

Każdy zapis oraz odczyt z pamięci w IA ma 2 bitowe pole podpowiedzi w cache, w którym kompilator koduje przewidywaną częstotliwość dostępu do tej porcji danych. Niektóre dane które mogą być wykorzystywane tylko raz przez cały czas wykonywania programu, natomiast inne mogą być potrzebne bardzo często. Pole przewidywanej częstotliwości dostępu służy właśnie do tego, aby procesor na tej podstawie decydował o ewentualnym załadowaniu części pamięci do cache. Taka technika pozwala na lepsze zarządzanie pamięcią cache, zredukowanie chybionych zapisów do pamięci, szczególnie iż w obecnym czasie zwiększają się dysproporcje pomiędzy szybkością pamięci cache oraz zwykłej.



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.