Procesor jednocyklowy
1
Procesor jednocyklowy
Założenia konstrukcyjne
Układ pobierania instrukcji
Układ przygotowania argumentów
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH
ALU, skoki, pamięć danych
struktury procesorów
Synchronizacja pracy
ASK SP.01
Zagadnienia implementacyjne
2
Procesor wielocyklowy
© Dr inż. Ignacy Pardyka
Założenia konstrukcyjne
Budowa
UNIWERSYTET
Działanie
JANA KOCHANOWSKIEGO
w Kielcach
3
Koncepcje poprawy funkcjonalnej
Optymalizacja struktury
Rok akad. 2011/2012
Koncepcja procesora potokowego
4
Literatura
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 1 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 2 / 27
Procesor jednocyklowy Założenia konstrukcyjne Procesor jednocyklowy Założenia konstrukcyjne
Założenia konstrukcyjne MIPS: formaty instrukcji
format rejestrowy R:
prosty model programowy
6 5 5 5 5 6
realizacja w postaci układu sekwencyjnego
op rs rt rd shamt func
jednokrotna zmiana stanu po zakończeniu instrukcji
wykonywanie instrukcji przez układ kombinacyjny
przykład: MIPS (uproszczony)
architektura Harvard
pamięć programu: ROM format ze stałą natychmiastową (immediate) I:
pamięć danych: RAM
adresowanie bajtowe 6 5 5 16
op rs rt offset
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 3 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 4 / 27
Procesor jednocyklowy Układ pobierania instrukcji Procesor jednocyklowy Układ przygotowania argumentów
Układ pobierania instrukcji Układ przygotowania argumentów
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 5 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 6 / 27
Procesor jednocyklowy ALU, skoki, pamięć danych Procesor jednocyklowy ALU, skoki, pamięć danych
ALU i sumator skoków Pamięć danych
zapis do pamięci
instrukcja SW (store word)
adres operandu wyznacza ALU
ALU wykonuje operacje na argumentach wejściowych
zawartość rejestru wskazanego w polu rt instrukcji zapisywana do
kod operacji: sygnały z jednostki sterującej po zdekodowaniu instrukcji
pamięci pod wskazany adres
operacje arytmetyczne
StoreData => WrD(32 bity)
operacje logiczne
odczyt z pamięci
obliczanie adresu odwołania do pamięci (tryby adresowe!)
instrukcja LW (load word)
np. suma zawartości rejestru bazowego i przemieszczenia
adres operandu wyznacza ALU
sprawdzanie warunku (porównanie argumentów)
dana odcztana z pamięci spod wskazanego adresu zapisywana do
sumator skoków generuje potencjalny adres docelowy skoku
rejestru wskazanego w polu rt instrukcji
warunkowego
układ zapisu do rejestru rezultatu ALU lub odczytanej danej z
adres = incPC + offset × 4
pamięci
numer rejestru docelowego w polu rd lub rt instrukcji
rezultat z ALU (przez multiplekser) kierowany do wskazanego rejestru
Result => WrData(32 bity)
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 7 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 8 / 27
Procesor jednocyklowy ALU, skoki, pamięć danych Procesor jednocyklowy Synchronizacja pracy
ALU, skoki, pamięć danych Synchronizacja pracy
pod wpływem zbocza zegarowego
zapis do PC wartości nextPC
zapis do rejestru docelowego wyniku operacji w ALU lub danej
odczytanej z pamięci
zapis danej odczytanej z rejestru (wskazanego w polu rt) do pamięci
danych
po zboczu zegara
pobieranie następnej instrukcji spod adresu wskazanego przez PC
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 9 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 10 / 27
Procesor jednocyklowy Synchronizacja pracy Procesor jednocyklowy Synchronizacja pracy
Schemat funkcjonalny procesora Sterowanie pracÄ… procesora
Instruction [25 0] Jump address [31 0]
Shift
left 2
26 28
0 1
PCSrc
M M
PC+4 [31 28]
u u
1 x x
ALU
M Add 1 0
Add result
u
x Add
RegDst Shift
ALU
4 0
Add Jump left 2
result
4
Branch
Shift
RegWrite
MemRead
left 2
Instruction [31 26]
Control MemtoReg
ALUOp
Instruction [25 21]
Read
MemWrite
register 1 Read
MemWrite
Read
PC ALUSrc
data 1
address Instruction [20 16] Read
ALUSrc MemtoReg
RegWrite
register 2 Zero
Instruction
Read
1
ALU ALU
Instruction [25 21]
[31 0] 1
Read Read
Write data 2
result Address 1
M Read
register 1
PC
register M data Read
u address
Instruction M
u data 1
Instruction [15 11] Instruction [20 16]
x
Write u Read
x
memory Zero
Registers
0 x register 2
data
Instruction
0
0 Registers ALU
Read ALU
Data 0 [31 0]
0 Read
Write Write
M data 2 result Address 1
data
RegDst memory Instruction register M
data u
M
u
16 32 memory x
Sign
Instruction [15 0] Instruction [15 11] u
Write x
1 Data x
extend data
1
ALU
memory
MemRead 0
Write
control
data
16 32
Instruction [5 0]
Instruction [15 0]
Sign
extend
ALU
ALUOp control
Instruction [5 0]
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 11 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 12 / 27
Procesor jednocyklowy Zagadnienia implementacyjne Procesor wielocyklowy
Zagadnienia implementacyjne
1
Procesor jednocyklowy
Założenia konstrukcyjne
Układ pobierania instrukcji
Układ przygotowania argumentów
problemy:
ALU, skoki, pamięć danych
okres zegara musi być wystarcząjąco długi dla realizacji instrukcji
Synchronizacja pracy
wymagających dostępu do pamięci
odrębne pamięci danych i instrukcji powiększają koszt (dawniej było to Zagadnienia implementacyjne
b. istotne)
2
Procesor wielocyklowy
nadmiarowość kosztownych bloków jednostki wykonawczej
Założenia konstrukcyjne
niska wydajność
rozwiÄ…zanie nie stosowane w praktyce Budowa
Działanie
rozwiÄ…zania:
procesor wielocyklowy
3
Koncepcje poprawy funkcjonalnej
architektury potokowe
Optymalizacja struktury
architektury superskalarne
Koncepcja procesora potokowego
jednostki wielordzeniowe
4
Literatura
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 13 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 14 / 27
Procesor wielocyklowy Założenia konstrukcyjne Procesor wielocyklowy Budowa
Założenia konstrukcyjne Budowa
uniwersalne bloki funkcjonalne
model programowy typu CISC
w cyklu rozkazowym stosowane do realizacji różnych mikrooperacji
argumenty w pamięci lub w rejestrach
instrukcje realizowane etapami (fazy)
wynik zapisywany do rejestrów lub do pamięci
w każdej fazie blok wykonuje jedną czynność
instrukcje o różnych długościach
liczba faz zależna od złożoności instrukcji
pamięć na zewnątrz procesora
czasy wykonania instrukcji zróżnicowane
pamięć połączona z procesorem za pomocą magistrali (szyny)
sterowanie: złożony automat synchroniczny
magistrala adresowa (address bus)
wzrost złożoności strukturalnej (więcej multiplekserów)
magistrala danych (data bus)
magistrala sterujÄ…ca (control bus)
wspólna pamięć programu i danych (architektura Princeton)
wewnÄ…trz procesora:
wielokrotne wykorzystanie ALU
jednostka sterujÄ…ca
do inkrementacji PC
zestaw rejestrów
do wykonywania operacji arytmetycznych i logicznych
ALU
do obliczania adresu docelowego skoku
jednostka interfejsu magistrali
rejestr IR ładowany kopią instrukcji z pamięci (faza pobrania)
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 15 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 16 / 27
Procesor wielocyklowy Działanie Koncepcje poprawy funkcjonalnej
Działanie
1
Procesor jednocyklowy
Założenia konstrukcyjne
Układ pobierania instrukcji
Układ przygotowania argumentów
ALU, skoki, pamięć danych
w poszczególnych fazach pracuje tylko część bloków funkcjonalnych
Synchronizacja pracy
procesora
Zagadnienia implementacyjne
pobranie instrukcji interfejs magistrali
dekodowanie instrukcji jednostka sterujÄ…ca
2
Procesor wielocyklowy
pobranie argumentów rejestry lub interfejs szyny
Założenia konstrukcyjne
wykonanie operacji ALU
Budowa
zapis wyniku rejestry lub interfejs szyny
Działanie
przez większość czasu większość bloków funkcjonalnych pozostaje
3
Koncepcje poprawy funkcjonalnej
bezczynna
Optymalizacja struktury
Koncepcja procesora potokowego
4
Literatura
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 17 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 18 / 27
Koncepcje poprawy funkcjonalnej Optymalizacja struktury Koncepcje poprawy funkcjonalnej Optymalizacja struktury
Dodatkowe ścieżki danych Optymalizacja pobierania instrukcji
w trakcie realizacji fazy dekodowania interfejs szyny jest bezczynny
w tym czasie można go zaangażować do pobierania następnej instrukcji
pobieranie instrukcji z wyprzedzeniem (prefetch) przez jednostkÄ™
pojedyncza ścieżka danych wymaga min. 6 faz:
interfejsu szyny
pobranie instrukcji jedna fazy
dodatkowy rejestr PC (scanPC)
dekodowanie instrukcji jedna faza
dodatkowy rejestr instrukcji pobieranej na zapas
pobranie argumentów dwie fazy
scanPC inkrementowany po pobraniu instrukcji
wykonanie operacji jedna faza
jednostka sterująca pobiera następną instrukcję z rejestru prefetch
zapis wyniku jedna faza
nie wymaga w tym celu odrębnej fazy zegara
zwiększając liczbę ścieżek można zmniejszyć liczbę faz
w przypadku instrukcji skoku zapisany w PC adres następnej instrukcji
np. przez połączenie bezpośrednie rejestrów z ALU
jest różny od zawartości scanPC
konieczne jest więc kopiowanie PC do scanPC
konieczna jest faza pobrania instrukcji
implementacja np. w MC68000 (1979 r.)
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 19 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 20 / 27
Koncepcje poprawy funkcjonalnej Optymalizacja struktury Koncepcje poprawy funkcjonalnej Optymalizacja struktury
Optymalizacja pobierania instrukcji Kolejka instrukcji
Kolejka instrukcji Opóznienia skoków
instrukcje CISC mają różną długość
interfejs magistrali może być bezczynny podczas kolejnych faz:
instrukcje skoku (przekazania sterowania) wykonują się dłużej od
pobierania argumentów, wykonywania operacji, zapisu wyniku
instrukcji nie modyfikujÄ…cych PC
w tym czasie można go zaangażować do pobierania kolejnych instrukcji
opóznienie skoku (branch penalty) spowodowane jest koniecznością
pobierane instrukcje zapisywane sÄ… w buforze FIFO
unieważnienia kolejki i dodatkowej fazy pobrania następnej instrukcji z
dodatkowy rejestr PC (scanPC)
dodatkowy bufor FIFO (kolejka) instrukcji pobieranych na zapas pamięci
scanPC inkrementowany po pobraniu instrukcji
skoki stanowiÄ… 7 - 14% instrukcji w programach
jednostka sterująca pobiera kolejne instrukcje z czoła kolejki
obniżenie wydajności
w przypadku instrukcji skoku zapisany w PC adres następnej instrukcji
metody redukcji opóznienia skoku
jest różny od adresu instrukcji z czoła kolejki
ograniczanie liczby skoków w programie
konieczne jest więc kopiowanie PC do scanPC
wykrywania krótkich pętli (procesory M68k)
unieważnienia się więc cała kolejka rozkazów
bufor cykliczny
niezbędna faza pobrania instrukcji
implementacja np. w MC68010, Intel 8086, 80286, i386
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 21 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 22 / 27
Koncepcje poprawy funkcjonalnej Koncepcja procesora potokowego Koncepcje poprawy funkcjonalnej Koncepcja procesora potokowego
Koncepcja procesora potokowego Procesor potokowy
potokowy procesor jednocyklowy etapy potoku
każdy układ pracuje przez różny czas (propagacja sygnału z wejścia
IF: Instruction fetch ID: Instruction decode/ EX: Execute/ MEM: Memory access WB: Write back
register file read address calculation
na wyjście)
0
M
u
po jednokrotnej zmianie stanu wyjścia każdego układu struktury
x
1
procesora pozostają stałe do czasu zakończenia instrukcji
przez pozostały czas do końca cyklu instrukcji układ nie pracuje (tylko
podtrzymuje stan) Add
Add
4 Add
do utrzymania ustalonych wartości można użyć rejestrów result
Shift
w procesorze wydziela się podzespoły o zbliżonych czasach propagacji left 2
Read
sygnałów, np.
register 1
PC Address
Read
data 1
Read
Zero
PC i dostęp do pamięci instrukcji register 2
Instruction Registers ALU
Read ALU
0 Read
Write
data 2 result Address 1
data
register M
zestaw rejestrów i układ rozszerzania danej Instruction
M
u Data
memory u
Write x
memory
x
data
1
ALU i sumator skoków 0
Write
data
dostęp do pamięci danych 16 32
Sign
extend
układ zapisu wyniku
w miejscach linii cięcia wprowadza się rejestry złożone z
przerzutników D rejestry potokowe
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 23 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 24 / 27
Koncepcje poprawy funkcjonalnej Koncepcja procesora potokowego Koncepcje poprawy funkcjonalnej Koncepcja procesora potokowego
Procesor potokowy Procesor potokowy
praca procesora w cyklu rozkazowym rejestry potokowe
0
typowe etapy: IF, ID/OF, EX, MEM, WB
M
u
x
1
po zmianie PC pobierana jest instrukcja i zapamiętywany jest stan
wszystkich sygnałów w rejestrze potokowym
IF/ID ID/EX EX/MEM MEM/WB
po każdym etapie stan sygnałów zapisywany jest w rejestrze
Add
Add
potokowym danego etapu 4 Add
result
Shift
left 2
po zapamiętaniu stanu bloki funkcjonalne mogą być wykorzystane do
Read
register 1
PC Address
przetwarzania następnej instrukcji, która będzie na tym etapie Read
data 1
Read
Zero
register 2
Instruction
realizacji Registers ALU
Read ALU
memory 0 Read
Write
data 2 result Address 1
data
register M
M
u Data
u
Write x
realizacja pojedynczej instrukcji w 5 cyklach zegara memory
x
data
1
0
Write
data
w każdym cyklu procesor rozpoczyna nową instrukcję
16 32
Sign
extend
w każdym cyklu procesor kończy kolejną instrukcję
maksymalna wydajność: jedna instrukcja na cykl zegarowy
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 25 / 27 © Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 26 / 27
Literatura
Literatura
A. S. Tanenbaum, Strukturalna organizacja systemów komputerowych,
Helion, 2006.
J. Biernat, Architektura komputerów, OWPW, 2005.
D. Patterson, J. Hennessy, Computer organization and design, Elsevier
97108/Patterson
2005.
Figure 06.12
G. Mazur, Architektura systemów komputerowych,
http://wazniak.mimuw.edu.pl.
R. Hyde, Profesjonalne programowanie, Helion, 2005.
R. Hyde, Asembler. Sztuka programowania, Helion, 2004.
© Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/2012 27 / 27
Instruction
Wyszukiwarka
Podobne podstrony:
lab01 ASK 01 PawelKopec AdrianMakuch01 ASK Tematy referatów 2012t informatyk12[01] 02 101r11 012570 01introligators4[02] z2 01 nBiuletyn 01 12 2014beetelvoiceXL?? 01012007 01 Web Building the Aptana Free Developer Environment for Ajax9 01 07 drzewa binarneSP KARTA ODPOWIEDZIPronator Quadratus tape SPwięcej podobnych podstron