Koncepcja RISC
Transkrypt
Koncepcja RISC
Witold Komorowski, dr inż. Witold Komorowski: RISC Koncepcja RISC i przetwarzanie potokowe Witold Komorowski: RISC RISC koncepcja architektury i organizacji komputera Witold Komorowski: RISC Aspekty opisu komputera Architektura – „Jak się zachowuje?” Organizacja – „Jak działa?” Realizacja – „Z czego jest zrobiony?” Witold Komorowski: RISC Problemy projektantów Realizacja tranzystory, układy scalone, oporniki, wolty, mikroampery, gigaherce, nanosekundy... ELEKTRONIKA Organizacja bramki, przerzutniki, sumatory, rejestry, multipleksery, pamięci, sterowniki, procesory... STRUKTURA Architektura rozkazy, operacje, argumenty, adresy, przerwania... PROGRAMOWANIE Witold Komorowski: RISC Architektura listy rozkazów (IS Architecture) Software Interfejs Hardware Witold Komorowski: RISC Wymagania użytkownika Wydajność (performance) czyli szybkość wykonywania programów Witold Komorowski: RISC Czas wykonania programu (t) = = liczba wykonanych rozkazów (IC) x x liczba cykli zegara potrzebnych do wykonania rozkazu (CPI) x x czas cyklu zegara (1/f) t = IC * CPI * 1/f Witold Komorowski: RISC Czynniki wpływające na wydajność IC Realizacja (technologia) Organizacja (struktura) Architektura (lista rozkazów) Oprogramowanie (kompilator) Witold Komorowski: RISC CPI f Organizacja komputera Model von Neumann'a M CPU I/O Memory Central Processing Unit Input/Output Witold Komorowski: RISC Cykl rozkazowy Pobranie rozkazu z pamięci Witold Komorowski: RISC Wykonanie rozkazu w procesorze Cykl rozkazowy Pamięć zawsze wolniejsza niż procesor! M CPU Przechowuje program Pobiera rozkazy Przechowuje dane Witold Komorowski: RISC Dekoduje rozkazy Wykonuje operacje I/O Cykl rozkazowy von Neumann’s bottleneck M CPU Przechowuje program Pobiera rozkazy Przechowuje dane Witold Komorowski: RISC Dekoduje rozkazy Wykonuje operacje I/O Sekwencja rozkazów 1. rozkaz Pobranie Czas dostępu do pamięci Wykonanie 2. rozkaz Pobranie Wykonanie Czas cyklu Czas Witold Komorowski: RISC Możliwości przyspieszenia sekwencji rozkazów * Skrócenie cyklu rozkazowego (szczególnie fazy odczytu z pamięci) * Współbieżne wykonywanie różnych faz kolejnych rozkazów Witold Komorowski: RISC Podstawowe zmiany organizacji •Pamięć buforowa: skrócenie średniego czasu dostępu •Przetwarzanie potokowe: zwiększenie częstości kończenia rozkazów Witold Komorowski: RISC Pamięć buforowa (cache) Cache Hit Main Miss Duża Mała Wolna Bardzo szybka Dość tania Droga Witold Komorowski: RISC CPU Praktyczne efekty stosowania pamięci cache Cache Main Hit > 98% Duża Mała Wolna Bardzo szybka Dość tania Dość droga Witold Komorowski: RISC CPU Potok rozkazów (pipeline) 1. rozkaz Pobranie Wykonanie Pobranie 2. rozkaz Wykonanie Pobranie Czas cyklu 3. rozkaz Wykonanie Pobranie Czas między zakończeniem kolejnych rozkazów Witold Komorowski: RISC 4. rozkaz Wykonanie Wczesne realizacje Jednostka komunikacji BIU Pamięć Bufor (6 B) Potok 2-stopniowy w μP 8086 (r.1978) Jednostka wykonawcza EU CPU Witold Komorowski: RISC Potok wielostopniowy Czas cyklu 1. Czas pomiędzy rozkazami F1 F2 F3 F4 2. F3 3. F2 4. CPI = 1 F1 5. 6. Takty zegara Witold Komorowski: RISC Koncepcja tradycyjna Cel Środki Zapełnienie „luki semantycznej” Sterowanie mikroprogramowe Efekt Rozbudowane listy rozkazów, formaty i sposoby adresowania Skomplikowany układ sterowania, spowolnione działanie Witold Komorowski: RISC CISC Complex Instruction-Set Computer Koncepcja RISC (Reduced Instruction-Set Computer) Cel Środki Szybkie wykonywanie rozkazów Potokowość, pamięć cache Efekt Stała długość rozkazu, prosty układ sterowania Prymitywne rozkazy, model LOAD - STORE, skomplikowany kompilator Witold Komorowski: RISC Genealogia RISC RISC I D.Patterson, C.Sequin Berkeley (1980 – 1981) SPARC Sun Microsystems (1987) MIPS J.Hennessy Stanford (1981 – 1984) MIPS R2000 MIPS Computer Systems (Silicon Graphics) IBM 801 G.Radin IBM (1975 – 1982) Transputer D.May, I.Barron INMOS (1983) Witold Komorowski: RISC RS/6000 V9 SPARC (1994) MIPS32, MIPS64 (MIPS Technologies) PowerPC Power4 (+ Motorola) (2000) CISC vs RISC Architektura CISC RISC Liczba Maksymalna Liczba różnych długość Adresacja sposobów długości rozkazu pośrednia adresowania rozkazu [bajty] IBM 370 3 5 8 Nie VAX 56 21 57 Tak MC 68000 11 12 22 Nie IA-32 12 7 16 Nie SPARC 1 2 4 Nie MIPS 1 1 4 Nie RS/6000 1 4 4 Nie Witold Komorowski: RISC CISC vs RISC Architektura CISC RISC Liczba Maksymalna Liczba różnych długość Adresacja sposobów długości rozkazu pośrednia adresowania rozkazu [bajty] IBM 370 3 5 8 Nie VAX 56 21 57 Tak MC 68000 11 12 22 Nie IA-32 12 7 16 Nie SPARC 1 2 4 Nie MIPS 1 1 4 Nie RS/6000 1 4 4 Nie Witold Komorowski: RISC Potok 5-stopniowy I cache IF D cache ID EX Load/Store WB (AC) MA Register file IF – Instruction fetch ID – Instruction decode EX/AC – Execution / Address calculation Witold Komorowski: RISC MA – Memory access WB – Write back Bezkonfliktowe przetwarzanie potokowe 1. IF ID EX MA WB 2. IF ID EX MA WB 3. IF ID EX MA WB 4. IF ID EX MA WB 5. IF ID EX MA WB 6. IF ID EX MA WB Takty zegara Witold Komorowski: RISC Zakłócenia potoku Konflikt zasobów (równoczesne żądanie dostępu do pamięci) Konflikt danych (opóźniona aktualizacja danych w pamięci) Konflikt sterowania (realizacja skoków) Witold Komorowski: RISC Konflikt zasobów 1. rozkaz 1. czyta/zapisuje dane z/do pamięci IF ID AC MA WB 2. IF ID EX MA WB 3. IF ID EX MA WB 4. IF ID EX MA WB 5. IF ID EX MA WB 6. IF rozkaz 4. jest z pamięci odczytywany ID EX MA WB Takty zegara Witold Komorowski: RISC Rozwiązanie konfliktu zasobów Pamięć danych i rozkazów Pamięć danych Architektura Princeton (von Neumann’a) Witold Komorowski: RISC Procesor centralny Procesor centralny Pamięć rozkazów Architektura Harvard (na poziomie pamięci cache) Konflikt danych 1. t1 IF ID EX MA WB 2. IF ID EX MA WB t2 t3 t4 t5 t6 r1 t7 r2 + r3 r5 t8 r1 + r4 t9 Takty zegara Rozkaz 2. w takcie t5 wymaga danych, które będą zapisane w rejestrze przez rozkaz 1. dopiero w takcie t6.! Witold Komorowski: RISC Rozwiązanie konfliktu danych (nieefektywne) 1. t1 IF ID EX MA WB 2. IF ID ~~ ~~ EX MA WB 3. IF ID ~~ ~~ EX MA WB t3 t4 t5 t6 t2 r1 t7 r2 + r3 t8 t9 r5 r1 + r4 t10 Takty zegara Następuje wstrzymanie potoku na dwa takty Witold Komorowski: RISC Rozwiązanie konfliktu danych przez wyprzedzanie argumentów IF ID Rozkaz „r1 EX r2 + r3” IF Rozkaz „r5 MA WR r2 + r3 ID EX MA r1 + r4” Wynik jest przekazywany „drogą na skróty” (forwarding) do następnego rozkazu Witold Komorowski: RISC WR Konflikt sterowania 1. IF ID EX MA WB 2. IF ID AC MA WB 3. IF ID EX MA WB 4. IF ID EX MA WB 5. IF ID EX MA WB 6. IF „Kara za skok” Skok warunkowy efektywny Opróżnienie potoku z niepotrzebnych rozkazów 3. i 4. ID EX MA WB Takty zegara Witold Komorowski: RISC Łagodzenie konfliktów sterowania * Skoki opóźnione (delayed branch) * Przewidywanie skoków (branch prediction) Witold Komorowski: RISC Skoki opóźnione Każdy rozkaz skoku zmienia adres docelowy dopiero po następnym rozkazie Przykład opóźnionego rozkazu CALL add r1,r5,r7 sub r2,r3,r2 call tamtam nop inc r4 Witold Komorowski: RISC Po optymalizacji: add r1,r5,r7 call tamtam sub r2,r3,r2 inc r4 Przewidywanie skoków Tablica skoków (Branch Target Buffer, BTB) Licznik rozkazów Adres rozkazu Adres docelowy Stan … … … … … … α σ s … … … … … … Witold Komorowski: RISC Algorytm predykcji Nieefektywny Będzie efektywny s=01 Efektywny Nieefektywny Będzie efektywny s=00 Będzie nieefektywny s=10 Efektywny Efektywny Nieefektywny Efektywny Witold Komorowski: RISC Nieefektywny Będzie nieefektywny s=11 Everything should be made as simple as possible, but not one bit simpler. Albert Einstein Witold Komorowski: RISC Procesory superskalarne i przetwarzanie out-of-order Pobieranie rozkazów Dekodowanie rozkazów Przydział rozkazów Jednostka wykonawcza 1 Jednostka wykonawcza 2 Kompletacja Witold Komorowski: RISC Jednostka wykonawcza k Działanie procesora superskalarnego Kod źródłowy Kompilator Kod liniowy Procesor Sprzętowe zrównoleglenie rozkazów Witold Komorowski: RISC Koncepcja VLIW (Very Long Instruction Word) Grupa rozkazów – „bardzo długie słowo rozkazowe” MUL Jednostka stp. Witold Komorowski: RISC FADD Jednostka zmp. LD BRC Jednostka pam. Jednostka obsługi skoków Działanie procesora VLIW Kod źródłowy Kompilator Programowe (statyczne) zrównoleglenie kodu Witold Komorowski: RISC Kod równoległy Procesor Realizacja techniki EPIC (Explicitly Parallel Instruction Computing) Procesor Itanium (IA-64) • „Wiązka” trzech 41-bitowych rozkazów RISC • 128 rejestrów stp. 64-bitowych • 128 rejestrów zmp. 82-bitowych • Obszar 264 adresów (16 EB) • 22 jednostki funkcyjne • potok 8-stopniowy Witold Komorowski: RISC Itanium2, 2002 Więcej… Witold Komorowski: RISC Tanenbaum, A.: * Strukturalna organizacja systemów komputerowych. Helion, 2006 (wyd. 5.) [50] Stallings, W.: * Organizacja i architektura systemu komputerowego. WNT 2004 (wyd. 3.) [46] Biernat, J.: * Architektura komputerów. WPWr, 2005 (wyd. 4.) [18] Komorowski, W.: * Instrumenta computatoria. Helion, 2000 [12] Komorowski, W.: * Krótki kurs architektury i organizacji komputerów. Mikom, 2004 [12] Witold Komorowski: RISC ... wydaje mi się to jakoś nierealne, że tak szybko i tak daleko doszliśmy. Nie wiadomo zresztą, po co. Stanisław Lem Witold Komorowski: RISC