Makroskalarne procesory Apple

A5 Procesor w środku
Apple uzyskało właśnie patent na Makroskalarną architekturę procesorów i optymalizację programów do nich.
Po co to cholerstwo?



Obecnie procesory optymalizowane są pod wykonywanie jednocześnie (w jednym cyklu zegara) wielu instrukcji (czyli jednocześnie zaczyna wykonywać jakby całe zdanie, a nie każdy wyraz osobno). Daje to znaczne przyśpieszenie ale pod pewnymi warunkami - programy muszą być zoptymalizowane pod odpowiednią długość kolejki (zdania). Jak nie są, to albo „zdanie” nie mieści się w kolejce procesora, albo zostaję „wolne” niewykorzystane miejsce. Jeszcze gorzej jest gdy w środku „zdania” po przecinku okazuje się, że dalsza część już nie ma znaczenia: („Jeżeli chcesz herbaty, to powiedz czy zwykłą czy aromatyczną”), ale ja chcę kawy - czyli druga część zdania którą procesor się już zajął nie ma sensu - a i tak została napoczęta przez procka i czas na jej analizę został zmarnowany. Kompilatory starają się współpracować z procesorami i w takich przypadkach - ale jak już pisałem, często starsze programy nie pasują w pełni do nowych procesorów „długościami” kolejek.
Apple sobie „wymyśliło”, że procesor (tak jak obecne) będzie zoptymalizowany do wykonywania pętli (które są w zasadzie główną częścią programów) ale w procesorze będą dodatkowe rejestry dla danych i instrukcji „zapasowych” właśnie na przypadek, gdy zachce mi się kawy a nie herbaty ;-)
Wymagać to będzie współpracy z kompilatorem, który będzie musiał przygotowywać alternatywne fragmenty programu, ale dzięki tej optymalizacji pustych miejsc w kolejce procesora będzie znacznie mniej i co ważne, jeżeli powstaną nowe procesory skalarne lepsze od swoich poprzedników to i tak ich pojemniejsze bebechy będą miały się czym pożywić przy konsumpcji starszych programów (skompilowanych już pod technologię macroskalarną). W tych programach będą po prostu te nadmiarowe kawałki kodu - a procek użyje ich ile mu się tam zmieści.

I tu mamy kolejnego asa w rękawie u Apple: własny system tworzenia programów, „własny” język, własne narzędzia, własny XCode, własne zasady narzucone programistom. Dzięki temu, wystarczy, że Apple wprowadzi nowy kompilator do XCode i większość programów wystarczy jeszcze raz przekompilować, i z minimalnym nakładem dodatkowej pracy uzyskać zoptymalizowany kod. Do tego Apple ma największe doświadczenie w zmianie technologii i architektury procesorów (Z Motoroli na PowerPC, z PowerPC na Intela i teraz na ARM w iUządzeniach).

To w takim sporym swojskim uproszczeniu - ja mały Kazio sobie wyobraża ;-)

Pytaniem pozostaje, czy i kiedy patent zostanie zaimplementowany w realnym Świecie...