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

Podobne dokumenty