A R C H I T E K T U R A K O M P U T E R Ó W
P R O J E K T
Temat: Jednostka arytmetyczno-logiczna procesora 8 - bitowego
Spis treści:
I Założenia projektu i sposób wykonania
II Rozwiązanie układu i wykonanie
Schemat blokowy jednostki ALU
Opis poszczególnych bloków
NAND
SUMA
KOMPARATOR
REJESTRY
Rejestr WEJŚCIOWY
Rejestr WYJŚCIOWY
Rejestr FLAG
Multiplekser
Słowo sterujące
Podsumowanie
Bibliografia
I Założenia projektu i sposób wykonania
Zadaniem naszym jest zaprojektowanie jednostki arytmetyczno-logicznej (ALU). Układ ma wykonywać proste operacje arytmetyczne (dodawanie), operacje logiczne (funkcja NAND, przesuw cykliczni i logiczny) i komparację.
Lista rozkazów ALU:
ADD A,rx
A: = A + rx Dodaj rejestr do zmiennej
SUB A,rx
A: = A - rx - C Odejmij rejestr od zmienne z przeniesieniem, ustawia C jeśli przeniesienie
INC A
A: =A + 1 Inkrementuj zmienna
INC rx
rx: = rx + 1 Inkrementuj zawartość rejestru
DEC A
A: = A - 1 Dekrementuj zmienna
DEC rx
rx: = rx - 1 Dekrementuj zawartość rejestru
NOT A
Negacja zmiennej
RL
Przesuń w lewo
RLC
Przesuń w lewo przez przeniesienie
RR
Przesuń w prawo
MOV rx,A
rx: = M[A] Prześlij do rejestru
CLR A
A: = #0 Zeruj zmienna
CLR C
C: = #0 Zeruj bit przeniesienia
SETB C
C: = #1 Ustaw bit przeniesienia
JMP etykieta
Skocz bezwarunkowo
CJNA rx,etykieta
Porównaj A z rejestrem, skocz, gdy nie są identyczne.
DJNZ rx,etykieta
Dekrementuj wartość rejestru, skocz gdy nie zero.
JC etykieta
Sprawdź C, skocz, gdy zero.
JNC etykieta
Sprawdź C, skocz, gdy nie zero.
JAZ etykieta
Sprawdź A, skocz, gdy zero.
JANZ etykieta
Sprawdź A, skocz, gdy nie zero.
2. Opis poszczególnych bloków
Bloki ALU mogą być łączone kaskadowo, czas propagacji przeniesienia w takim układzie jest równy sumie czasów propagacji przez poszczególne bloki, a więc w przypadku większej liczby bitów czas wykonywania operacji będzie długi. Aby skrócić czas propagacji przeniesień, należy generować przeniesienia równoległe we wszystkich modułach.
2.1 Blok NAND
Jest to najprostszy z bloku jednostki ALU. Składa się z ośmiu bramek dwu wejściowych NAND. Na poszczególnych bitach wejść A i B realizowana jest funkcja logiczna NAND.
Parametry:
A=8
T=1
Złożoność: A*T=8
Schemat układu:
2.2 Blok SUMA
Blok sumy składa się z 3 sumatorów 4bitowych, o krótkim czasie propagacji przeniesień, oraz układu multipleksującego wybierającego 4 starsze bity sumy w zależności od przeniesienia z młodszej 4 bitowej części sumy
Każdy z modułów sumatora ma następującą budowę:
Parametry:
A=42
T=7
A*T=294
Sumator równolegle oblicza 2 cząstkowe sumy starszej części wyniku (dla opcji przeniesienia z młodszej części 0 i 1) i sumę cząstkową młodszej części wyniku, po czym na podstawie przeniesienia z młodszej części sumy następuje poprzez układ multipleksujący wybór właściwej z dwóch alternatywnych starszych części sumy. Układ multipleksujący wybiera również przeniesienie z najwyższej pozycji sumy
Schemat ideowy sumatora:
Parametry:
A= 136
T= 8
A*T=1088
Blok sumy Ma skomplikowaną budowę, ale dzięki krótkiej ścieżce propagacji przeniesienia udało się znacznie przyspieszyć uzyskanie końcowego wyniku.
2.3 Blok KOMPARATOR
Parametry:
A= 17
T= 3
A*T= 51
2.4 REJESTRY
2.4.1 Rejestr WEJŚCIOWY A i B
Pojedynczy rejestr składa się z ośmiu przerzutników typu D. Dokonuje zapamiętania wartości wejścia A,B
Wykonanie pojedynczego przerzutnika typu D:
Parametry:
A=4
T=2
Złożoność: A*T=8
Schemat rejestrów A i B:
Parametry rejestru 8-bitowego :
A=4*8=32
T=2
Złożoność: A*T=64
Złożoność rejestrów A i B: A*T=128
2.4.2 Rejestr WYJŚCIOWY
Pełni funkcję bufora wyjściowego wyniku operacji SUMY lub NAND, jest zarazem układem który ma możliwość przesuwu cyklicznego lub logicznego.
Sterowanie rejestrem zapewniają bity słowa sterującego X3 do X6.
Bitem X3 aktywujemy rejestr gdy dokonuje zapisu lub przesunięcia, bit X4 określa czy przesunięcie logiczne ma być dopełniane zerem lub jedynką, bit X5 pozwala dokonać wyboru rodzaju przesunięcia (cykliczne,logiczne), a X6 - Wybór zapisu lub przesunięcia.
Parametry:
A=2+8*3+8*4=58
T=6
Złożoność: A*T=348
2.4.3 Rejestr FLAG
Jest to 4 bitowy rejestr określający stan układu ALU
L,M,K - bity zapamiętujące stan porównania przez komparator bajtu A i B,
Cy - bit przeniesienia z bloku SUMY
Parametry:
A=4*4=16
T=2
Złożoność: A*T=32
3. Multiplekser
Ma za zadanie wybór słowa które ma być zapisywane w rejestrze wyjściowym. Przy X2=0 zostanie wybrany wynik z bloku SUMA, a przu X2=1 z bloku NAND.Składa się z ośmiu prostych multiplekserów 1 bitowych.
Parametry:
A=2*8=16
T=2
Złożoność: A*T=32
Schemat układu:
4. Słowo sterujące
Składa się z 6 bitów:
X1 - tryb pracy komparatora
0 - NKB
1 - U2
X2 - sterowanie multiplekserem
0 - realizowana funkcja SUMY
1 - realizowana funkcja NAND
Sterowanie rejestrem wyjściowym:
X3 - 1 - rejestr dokonuje zapisu lub przesunięcia
X4 - Obsługuje przesunięcie logiczne
1 - dopełnia liczbę „1”
0 - dopełnia liczbę „0”
X5 - Rodzaj przesunięcia
0 - cykliczne
1 - logiczne
X6 - Wybór zapisu lub przesunięcia
0 - przesunięcie
1 - zapis
5. Podsumowanie
Zamiast stosować różne bloki funkcjonalne, z których każdy wykonuje pewne mikrooperacje, a ponadto przechowuje informację, można zbudować uniwersalny blok kombinacyjny, mogący wykonywać pełny zestaw mikrooperacji. Taki uniwersalny blok nosi nazwę jednostki arytmetyczno-logicznej (ang. Arythmetic-Logic Unit - ALU). Jednostka taka zwykle współpracuje z zespołem rejestrów, służących wyłącznie do przechowywania operacji.
Stworzona przez nas jednostka ALU nie jest może wzorcowym przykładem tego układu ale w pewien sposób realizuje te założenia.
6. Bibliografia
Książki:
Biernat J., Architektura komputerów
Horowitz P., Hill W., Sztuka Elektroniki tom 2
Strony internetowe:
www.iit.edu Illinois Insstitute of Technology
Praca pochodzi z serwisu www.e-sciagi.pl
2
13
REJESTR
WEJŚCIOWY A
KOMPARATOR
Σ
REJESTR WYJŚCIOWY
Z FUNKCJĄ PRZESUWU
MULTIPLEKSER
REJESTR FLAG
4 BITOWY
SŁOWO STERUJĄCE
L M K Cy
X1 X2 X3 X4 X5 X6
B
C
A
II Rozwiązanie układu i wykonanie
1. Schemat blokowy jednostki ALU
A7 B7 A6 B6 A5 B5 A4 B4 A3 B3 A2 B2 A1 B1 A0 B0
C7 C6 C5 C4 C3 C2 C1 C0
Cy
Cy
K
K
M
M
L
L
C
D0 Q0
D1 Q1
WY7 WY6 WY5 WY4 WY3 WY2 WY1 WY0
D2 Q3
D3 Q3
X6
X5
C
A7 A6 A5 A4 A3 A2 A1 A0
A7 A6 A5 A4 A3 A2 A1 A0
D0 Q0
D1 Q1
X2
X4
WE7 WE6 WE5 WE4 WE3 WE2 WE1 WE0
D2 Q3
D3 Q3
X3
D0 Q0
D1 Q1
D2 Q3
D3 Q3
D4 Q4
D5 Q5
D6 Q6
D4 Q4
D5 Q5
D6 Q6
D7 Q7
D7 Q7
REJESTR
WEJŚCIOWY B
C
B7 B6 B5 B4 B3 B2 B1 B0
B7 B6 B5 B4 B3 B2 B1 B0
D0 Q0
D1 Q1
D2 Q3
D3 Q3
D4 Q4
D5 Q5
D6 Q6
D7 Q7
D
C
Q
C
D Q