Architektura systemów komputerowych
Plan wykładu. Praca potokowa. 2. Projekt P koncepcja potoku: 2.. model ścieżki danych 2.2. rejestry w potoku, 2.3. wykonanie instrukcji, 2.3. program w potoku. Cele Poznanie pojęcia pracy potokowej. Poznanie techniki projektowania procesora z przetwarzaniem potokowym.
Praca potokowa
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego Czynności w produkcji samochodów: Wydajność produkcyjna: samochód w ciągu 4 godzin, 6 samochodów na dzień, 80 samochodów na miesiąc, 260 samochodów na rok. godzina godzina godzina godzina
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego Czynności w produkcji samochodów: Wydajność produkcyjna: samochód w ciągu 4 godzin, 6 samochodów na dzień, 80 samochodów na miesiąc, 260 samochodów na rok. zakończenie produkcji spawanie montaż rozpoczęcie produkcji zakończenie produkcji malowanie testowanie spawanie montaż rozpoczęcie produkcji malowanie testowanie czas
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego Taśma produkcyjna samochodów: dostawa części spawanie godzina montaż godzina malowanie godzina testowanie godzina Wydajność taśmy produkcyjnej: pierwszy samochód jest składany w ciągu 4-ch godzin opóźnienie potoku następne samochody powstają co godzinę, - 2 samochodów powstanie pierwszego dnia produkcji, - 24 samochody powstaną każdego następnego dnia, w miesiącu fabryka wyprodukuje 77 samochodów, rocznie powstanie 8604 samochody.
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego Taśma produkcyjna samochodów: dostawa części Auto Auto 2 Auto 3 Auto 4 spawanie spawanie montaż spawanie montaż malowanie testowanie malowanie testowanie montaż spawanie malowanie testowanie montaż spawanie ukończenie auta malowanie testowanie montaż ukończenie auta 2 malowanie testowanie... czas
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Praca potokowa to cykl połączonych ze sobą operacji, w których wyniki poprzedniej stają się argumentami dla następnej. Pojęcia: rodzaje potoków specyfika pracy potoku implementacje
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Praca potokowa to cykl połączonych ze sobą operacji, w których wyniki poprzedniej stają się argumentami dla następnej. Pojęcia: rodzaje potoków specyfika pracy potoku implementacje W odniesieniu do komputerów pojęcie potoku powiązane jest z: procesorem potok instrukcyjny wymaga podziału pracy CPU na etapy, w których wynik wykonania rozkazu zostaje skompletowany po wykonaniu wszystkich etapów, związanych z daną instrukcją, układem GPU spotykane w większości procesorów graficznych, składający się z wielu bloków funkcjonalnych lub całych procesorów specjalizowanych. Potok graficzny jest zoptymalizowany pod kontem wykonywania operacji graficznych, np.: operacji teksturowania, manipulacji światłami oraz kolorami, odwzorowania perspektywy itp., oprogramowaniem jest funkcją systemu operacyjnego, umożliwiając komunikację (wymianę danych) między uruchomionymi aplikacjami. Przykładem jest potok nazwany lub nienazwany systemu UNIX / Linux.
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Praca potokowa to cykl połączonych ze sobą operacji, w których wyniki poprzedniej stają się argumentami dla następnej. Pojęcia: rodzaje potoków specyfika pracy potoku implementacje Zastosowanie potoku nie powoduje zmniejszenia czasu potrzebnego na wykonanie czynności, natomiast zwiększa znacznie wydajność systemu. Jednocześnie obecność potoku powoduje: powstawanie opóźnień w propagacji sygnałów (wyników), zwiększone zapotrzebowanie na komponenty służące do budowy systemu, takie jak: jednostki wykonawcze, moduły pamiętające, bufory i magistrale, itp.. W odniesieniu do komputerów pojęcie potoku powiązane jest z: procesorem potok instrukcyjny wymaga podziału pracy CPU na etapy, w których wynik wykonania rozkazu zostaje skompletowany po wykonaniu wszystkich etapów, związanych z daną instrukcją, układem GPU spotykane w większości procesorów graficznych, składający się z wielu bloków funkcjonalnych lub całych procesorów specjalizowanych. Potok graficzny jest zoptymalizowany pod kontem wykonywania operacji graficznych, np.: operacji teksturowania, manipulacji światłami oraz kolorami, odwzorowania perspektywy itp., oprogramowaniem jest funkcją systemu operacyjnego, umożliwiając komunikację (wymianę danych) między uruchomionymi aplikacjami. Przykładem jest potok nazwany lub nienazwany systemu UNIX / Linux.
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Praca potokowa to cykl połączonych ze sobą operacji, w których wyniki poprzedniej stają się argumentami dla następnej. Pojęcia: rodzaje potoków specyfika pracy potoku implementacje Istnieją trzy główne metody implementacji potoku: potok rejestrowy synchroniczny, potok rejestrowy asynchroniczny, potok niebuforowany. Dla rozwiązań niebuforowanych proces sterowania jest tak zaprojektowany, że przekazywanie danych następuje tylko podczas ich stabilność. W każdym przypadku szybkość pracy potoku zależy od jego najwolniejszego stopnia. Zastosowanie potoku nie powoduje zmniejszenia czasu potrzebnego na wykonanie czynności, natomiast zwiększa znacznie wydajność systemu. Jednocześnie obecność potoku powoduje: powstawanie opóźnień w propagacji sygnałów (wyników), zwiększone zapotrzebowanie na komponenty służące do budowy systemu, takie jak: jednostki wykonawcze, moduły pamiętające, bufory i magistrale, itp.. W odniesieniu do komputerów pojęcie potoku powiązane jest z: procesorem potok instrukcyjny wymaga podziału pracy CPU na etapy, w których wynik wykonania rozkazu zostaje skompletowany po wykonaniu wszystkich etapów, związanych z daną instrukcją, układem GPU spotykane w większości procesorów graficznych, składający się z wielu bloków funkcjonalnych lub całych procesorów specjalizowanych. Potok graficzny jest zoptymalizowany pod kontem wykonywania operacji graficznych, np.: operacji teksturowania, manipulacji światłami oraz kolorami, odwzorowania perspektywy itp., oprogramowaniem jest funkcją systemu operacyjnego, umożliwiając komunikację (wymianę danych) między uruchomionymi aplikacjami. Przykładem jest potok nazwany lub nienazwany systemu UNIX / Linux.
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Wydajność systemu można przedstawić jako liczbę produkcji w jednostce czasu. Wydajność jest zależna architektury danego systemu. Przypadki: architektura liniowa architektura potokowa
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp Wydajność systemu można przedstawić jako liczbę produkcji w jednostce czasu. Wydajność jest zależna architektury danego systemu. wydajność przetwarzania Przypadki: architektura liniowa architektura potokowa potok instrukcji zakończenie produkcji spawanie montaż zakończenie produkcji malowanie testowanie spawanie rozpoczęcie produkcji montaż malowanie testowanie rozpoczęcie produkcji czas wykonania jednego zadania = n jednostek czasu, czas wykonania jednego podzadania jednostka czasu, wydajność systemu = n zadań w jednostce czasu. czas
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Auto Auto 2 Auto 3 Auto 4 spawanie Wydajność systemu można przedstawić jako liczbę produkcji w jednostce czasu. Wydajność jest zależna architektury danego systemu. Przypadki: architektura liniowa architektura potokowa montaż malowanie testowanie spawanie montaż malowanie testowanie spawanie montaż malowanie testowanie spawanie montaż malowanie testowanie ukończenie auta ukończenie auta 2... czas wykonania pierwszego zadania = n jednostek czasu (opóźnienie), liczba zadań wykonanych w czasie T = T n wydajność systemu = (n ) T zadań w jednostce czasu. czas
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Wydajność systemu można przedstawić jako liczbę produkcji w jednostce czasu. Wydajność jest zależna architektury danego systemu. Przypadki: architektura liniowa architektura potokowa Współczynnik zwiększenia wydajności: wydajność architektury potokowej wydajność architektury liniowej = (n ) T n = n n(n ) n dla T T
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Potok instrukcji zwiększa wydajność procesora w zakresie liczby wykonywanych instrukcji w jednostce czasu. Pojęcia: koncepcja stopnie potoku
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania potok instrukcji Potok instrukcji zwiększa wydajność procesora w zakresie liczby wykonywanych instrukcji w jednostce czasu. Pojęcia: koncepcja stopnie potoku W procesorach najpowszechniej stosuje się potok instrukcji, którego etapy nazywane stopniami, odpowiadają fazom cyklu rozkazowego CPU. Procesor jest urządzeniem synchronicznym, rozpoczynającym każdą z czynności zgodnie z taktami zegara systemowego. Zazwyczaj koncepcja potoku zakłada rozpoczynanie akcji w każdym jego stopniu w tym samym momencie, kiedy zegar systemowy zmienia stan, generując kolejny takt. Architektura potoku zależy od różnych czynników, w ogólności: od modelu ISA procesora, od architektury CPU, uwzględnia ograniczenia zasobów wykonawczych procesora. Nowoczesne procesory posiadają mocno rozbudowane potoki instrukcyjne złożone z ponad 20 stopni, które realizują również zadania optymalizacyjne pracy potoku.
Praca potokowa wprowadzenie do zagadnienia przetwarzania potokowego wstęp wydajność przetwarzania Potok instrukcji zwiększa wydajność procesora w zakresie liczby wykonywanych instrukcji w jednostce czasu. Pojęcia: koncepcja stopnie potoku W procesorach najpowszechniej stosuje się potok instrukcji, którego etapy nazywane stopniami, odpowiadają fazom cyklu rozkazowego CPU. W podstawowej konfiguracji potok powinien zawierać nastę- Procesor jest urządzeniem synchronicznym, pujące stopnie: rozpoczynającym każdą z czynności zgodnie pobranie rozkazu: z taktami zegara systemowego. Zazwyczaj - adres w RAM określa rejestr PC / IP, koncepcja potoku zakłada rozpoczynanie - pobranie rozkazu (opcodu i ewentualnie argumentu), akcji w każdym jego stopniu w tym samym dekodowanie rozkazu i pobranie wartości rejestrów: momencie, kiedy zegar systemowy zmienia - wybranie rejestrów biorących udział w operacjach, stan, generując kolejny takt. Architektura poto- wskazanie dodatkowych argumentów, ku zależy od różnych czynników, w ogólności: pobranie argumentów z pamięci (opcjonalnie): od modelu ISA procesora, - obliczenie adresu efektywnego argumentu w RAM, od architektury CPU, - pobranie argumentu do rejestru tymczasowego, uwzględnia ograniczenia zasobów wykonaw wykonanie rozkazu: czych procesora. - wykonanie obliczeń lub przekształceń, Nowoczesne procesory posiadają mocno roz- wykonanie operacji na pamięci RAM, budowane potoki instrukcyjne złożone - wyznaczenie adresu następnej instrukcji, z ponad 20 stopni, które realizują również zapisanie wyników: zadania optymalizacyjne pracy potoku. - zapisanie do rejestrów procesora wyników obliczeń, - zapisanie adresu następnego rozkazu do rejestru PC / IP. potok instrukcji
Projekt P koncepcja potoku: model ścieżki danych
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU Schemat blokowy ścieżki danych IP STAN OPR IR IR0 NAT RAM RFILE ADR R/W L H MAR 00 2 3 CS SEG 0
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF (predecode) IP STAN OPR IR IR0 NAT RAM RFILE ADR R/W L H MAR 00 2 3 CS SEG 0
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID (predecode) IP STAN OPR IR IR0 NAT RAM RFILE ADR R/W L H MAR 00 2 3 CS SEG 0
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC (predecode) IP STAN OPR IR IR0 NAT RAM RFILE ADR R/W L H MAR 00 2 3 CS SEG 0
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC OF (predecode) IP STAN OPR IR IR0 NAT RAM RFILE ADR R/W L H MAR 00 2 3 CS SEG 0
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC OF EX (predecode) (reg-mem) IP STAN OPR IR IR0 NAT RAM RFILE ADR R/W L H MAR 00 2 3 CS SEG 0
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC OF EX (predecode) (reg-mem) IP STAN OPR NAT IR0 IR RFILE RAM L ADR R/W H 00 2 3 SEG 0 CS MAR WB
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC OF EX (predecode) (reg-mem) IP IR NAT R/W RAM H L RFILE IR0 MAR 00 2 3 SEG 0 CS WB rodzaj instrukcji rej rej, rej rej, seg rej, mem jmp / bra IF ns ns ns ns ns ID AC OF EX ns 2ns ns 2ns ns 2ns ns ns ns 2ns ns 2ns brak operacji w potoku (nop) WB S 4ns ns 5ns ns 5ns ns 7ns 4ns
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC OF EX (predecode) (reg-mem) IP IR H L RFILE IR0 MAR 00 2 3 SEG 0 CS Wykonanie rozkazów bez potoku: 0 2 3 4 5 6 7 8 9 0 2. NAT WB R/W RAM R0 R0 R R R2 [0] R2 0.... czas (ns) IF ID AC OF EX WB IF ID AC OF EX WB czas potrzebny na wykonanie rozkazu = 7 ns czas potrzebny na wykonanie 3 rozkazów = 2 ns IF ID AC...
Projekt P model ścieżki danych architektura potokowa projektowanego na wykładzie CPU IF ID AC OF EX (predecode) (reg-mem) IP IR L RFILE IR0 MAR H 00 2 3 SEG 0 CS Wykonanie rozkazów w potoku: 0 2 3 4 5 6 7 8 9 0 2. NAT WB R/W RAM R0 R0 R R R2 [0] R2 0.... czas (ns) IF ID AC OF EX WB IF ID AC OF EX WB IF ID AC OF EX WB czas wykonania 3 rozkazów = 9 ns współczynnik zwiększenia wydajności = 2 = 2.33 9
Projekt P koncepcja potoku: rejestry w potoku
Projekt P rejestry w potoku rodzaj i rozmieszczenie rejestrów dodatkowych w potoku Schemat ścieżki danych z rejestrami potoku IF / ID ID / AC IP L RFILE STAN OPR NAT IR0 IR EX / WB RAM H ADR R/W 2 3 MAR 0 00 OF / EX CS SEG AC / OF
Projekt P rejestry w potoku rodzaj i rozmieszczenie rejestrów dodatkowych w potoku Schemat ściezki danych z rejestrami potoku IF / ID ID / AC IP EX / WB L RFILE NAT IR0 IR H RAM R/W 2 3 MAR 0 00 OF / EX CS SEG AC / OF AC RA OF LDRA RB LDRB RADR LDRADR Między stopniami AC/OF znajdują się dodatkowo 4 inne rejestry.
Projekt P koncepcja potoku: wykonanie instrukcji
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: R0 R0 R bajt bajt 2 Słowo instrukcji: 00 0 0000 00 00 0 00 rejestr = R ($B = ) rejestr = R0 ($A = 0) kod funkcji (fun = ) opcode instrukcji ($R = 0) read $A read $B set $R fun: $A $B REG, RFILE WR WB EX / WB EX OF / EX MEM ADR, MEM READ OF AC / OF ADR AC ID / AC ID, REG, RFILE READ ID IF / ID IM0, IM IF write $R
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: R0 R0 R IF / ID ID / AC IP L RFILE STAN OPR NAT IR0 IR EX / WB RAM H ADR R/W 2 3 MAR 0 00 OF / EX CS SEG AC / OF
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: R R xor DS:[R3 2] bajt Słowo instrukcji: 0 0 0000 bajt 2 bajt 3 0 0 00 00 0000 rejestr = R3 ($B = 3) selektor = DS ($S = ) rejestr = R ($A = ) kod funkcji (fun = xor) opcode instrukcji ($R = ) read $A read $B read $S set $R $O read mem[adr] adr: $S $B NAT fun: $A $O REG, RFILE WR WB EX / WB EX OF / EX MEM ADR MEM READ OF AC / OF ADR AC ID / AC ID, REG, RFILE READ SEG READ ID IF / ID IM0, IM, IM2 IF write $R
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: R R xor DS:[R3 2] IF / ID ID / AC IP L RFILE STAN OPR NAT IR0 IR EX / WB RAM H ADR R/W 2 3 MAR 0 00 OF / EX CS SEG AC / OF
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: DS:[02] R2 bajt bajt 2 Słowo instrukcji: 0 0 0 0000 rejestr = R2 ($B = 2) selektor = DS ($S = ) opcode instrukcji read $B read $S adr: $S NAT mem write REG, RFILE WR WB EX / WB EX OF / EX MEM ADR MEM READ OF AC / OF ADR AC ID / AC ID, REG, RFILE READ SEG READ ID IF / ID IM0, IM IF
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: DS:[02] R2 IF / ID ID / AC IP L RFILE STAN OPR NAT IR0 IR EX / WB RAM H ADR R/W 2 3 MAR 0 00 OF / EX CS SEG AC / OF
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: ja CS:[IP56] bajt bajt 2 Słowo instrukcji: xx 00 00000 fun = above opcode instrukcji IP adr calc REG, RFILE WR WB EX / WB EX OF / EX MEM ADR MEM READ OF AC / OF ADR AC ID / AC ID, REG, RFILE READ SEG READ ID IF / ID IM0, IM IF
Projekt P wykonanie instrukcji działanie potoku podczas wykonania instrukcji procesora Rozkaz: ja CS:[IP56] IF / ID ID / AC IP L RFILE STAN OPR NAT IR0 IR EX / WB RAM H ADR R/W 2 3 MAR 0 00 OF / EX CS SEG AC / OF
Projekt P koncepcja potoku: program w potoku
Projekt P program w potoku praca procesora z wypełnionym potokiem Program: R0 DS:[00] R R - R0 ja 3 DS:[R20] R3 R2 32 jmp 250...
DS:[R20] R3... OF / EX AC / OF wykonano R0 00 EX / WB REG, RF WR MEM OF / EX EX / WB REG, RF WR EX / WB REG, RF WR OF / EX MEM AC / OF ADR IF / ID ID, REG SEG ID / AC Program: EX / WB REG, RF WR OF / EX MEM MEM ADR ADR AC / OF IF / ID ID, REG SEG ID / AC IF / ID ID, REG SEG ID / AC AC / OF ADR IF / ID ID, REG SEG ID / AC IM ja 3 IM R R - R0 IM R0 DS:[00] IM Projekt P program w potoku praca procesora z wypełnionym potokiem czas
Projekt P program w potoku praca procesora z wypełnionym potokiem Program: DS:[R20] R3 R2 32 IF / ID ID / AC IP 2 3 H EX / WB L RFILE STAN OPR NAT IR0 IR 0 ADR RAM OF / EX MAR R0 DS:[00] 00 AC / OF R R - R0 CS SEG ja 3 jmp 250
Koniec wykładu