Potokowość: Różnice pomiędzy wersjami
[wersja nieprzejrzana] | [wersja nieprzejrzana] |
Usunięta treść Dodana treść
Rozbudowanie |
m Mała poprawka |
||
Linia 11:
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ś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 [[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śc 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.
*[[Superskalarność (procesory)]]
*[[ISA (procesory)]]
*[[Wykonywanie spekulatywne (procesory)]]
[http://cse.stanford.edu/class/sophomore-college/projects-00/risc/pipelining/ Przykład pipeliningu]
|