Potokowość: Różnice pomiędzy wersjami

[wersja nieprzejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
Stepa (dyskusja | edycje)
m +lnk
Co to za buźki?. To jest encyklopedia czy czat?
Linia 9:
[Fetch]->[Decode]->[Load]->[Execute]->[Store]
 
W powyższym 5 stopniowym potoku wykonanie jednej instrukcji zabiera co najmniej 5 cykli zegarowych - przejście przez wszystkie stopnie potoku. Jednak ze względu na jednoczesną pracę wszystkich stopni potoku jednocześnie wykonywanych jest 5 rozkazów procesora, każdy w innym stadium wykonania. Oznacza to że taki procesor w każdym cyklu zegara rozpoczyna i kończy wykonanie jednej instrukcji (nie tej samej :-)) i statystycznie wykonuje rozkaz w jednym cyklu zegara. Każdy ze stopni potoku wykonuje mniej pracy w porównaniu do pojedynczej logiki, dzięki czemu może wykonać ją szybciej - z większą [[częstotliwość|częstotliwością]] - tak więc dodatkowe zwiększenie liczby stopni umożliwia osiągnięcie coraz wyższych częstotliwości pracy. Szczytowym osiągnięciem tej techniki jest procesor [[Intel]] [[Pentium 4]] posiadający aż 22 stopniowy potok i osiągający grubo ponad 3 [[Gigaherc|GHz]] zegar. Podstawowym wrogiem techniki potoku są rozkazy skoku powodujące w najgorszym wypadku potrzebę przeczyszczenia całego potoku i wycofania rozkazów które następowały zaraz po instrukcji skoku i rozpoczęcie zapełniania potoku od początku od adresu do którego następował skok. Taki rozkaz skoku może powodować ogromne opóźnienia w wykonywaniu programu - tym większe im większa jest długość potoku - co dla wspomnianego procesora [[Pentium 4]] oznacza stratę co najmniej kilkudziesięciu cykli zegara. Dodatkowo szacuje się że dla [[ISA (procesory)|modelu programowego]] [[x86]] taki skok występuje co kilkanaście rozkazów. Z tego powodu niektóre [[ISA (procesory)|architektury programowe]] (np. [[SPARC]]) zakładały zawsze wykonanie jednego lub większej ilości rozkazów następujących po rozkazie skoku, tzw. skok opóźniony.
 
== Zobacz też: ==