Ewolucja systemu Intel

Przewidywanie lokalizacji kolejnego rozkazu jest dość trafne co wynika z sekwencyjnej natury programu. Problem pojawia się gdy procesor napotyka na rozkaz skoku lub rozgałęzienia, wówczas kolejka musi zostać opróżniona i na nowo wypełniona w cyklach pobrania kodu. Dalsze przyśpieszenie przetwarzania wymaga skrócenia czasu dostępu ponieważ nie jest możliwe wyeliminowanie przesłań procesor – pamięć. Rozwiązaniem jest zastosowanie szybkich pamięci podręcznych typu cache. Użycie pamięci podręcznej zawierającej kopie pewnego spójnego obszaru pamięci głównej przewidziano już w systemach opartych o procesory 80386, dla których opracowano odpowiedni sterownik. Dalsze zwiększenie wydajności procesora można uzyskać poprzez wbudowanie pamięci podręcznej L1 w struktury procesora, jak ma to miejsce w przypadku procesorów 486DX i późniejszych, oraz pamięci L2 tak jak w procesorze Pentium Pro (P6 – 256/512 kB) Radykalne skrócenie czasu dostępu do pamięci przez użycie pamięci podręcznych uwidacznia kolejną barierę szybkości przetwarzania którą jest konieczność sekwencyjnego kierowania rozkazów do potoku przetwarzania. Ponieważ jednak niektóre rozkazy mogą być wykonywane współbieżnie, to zastosowanie w Pentium podwojenie potoku (pojedynczego we wcześniejszych procesorach 80x86) umożliwia pewne przyśpieszenie przetwarzania. Taki potok nazywamy super skalarnym.