LABSAG - wprowadzenie
AOK I zajęcia laboratoryjne 1
Artur Miktus
Prowadzący zajęcia laboratoryjne
• ppłk mgr inż. Artur Miktus
• http://www.ita.wat.edu.pl/~a.miktus/
• Miejsce pracy: Pokój 109/ 65
• tel. (22) 68 - 37-752
• Konsultacje: w piątki, godz. 15:05 - 15:45,
sala 109/ 65, po uprzedniej wiadomości
mailowej.
• Adres e-mail: a.miktus@ita.wat.edu.pl
2
Najważniejsze jest Państwa bezpieczeństwo, dlatego
Studenci powinni poznać:
• regulamin Laboratorium,
• przepisy przeciwpożarowe i bhp, obowiązujące
w trakcie zajęć,
które jednak nie zastąpią zdrowego rozsądku i dobrego
wychowania.
Poza tym wymagam
punktualności
– na początku
każdego 2-godzinnego bloku zajęć mogę zrobić
kartkówkę, spóźnieni lub nieobecni mają „0” do
średniej z zajęć.
Zasady
3
Artur Miktus
Jak obliczę uzyskaną przez daną osobę ocenę
zaliczeniową?
• JEŻELI(Średnia>=4,67;"5 bdb";
JEŻELI(Średnia>=4,27;"4,5 db+";
JEŻELI(Średnia>=3,67;"4 db";
JEŻELI(Średnia>=3,27;"3,5 dst+";
JEŻELI(Średnia>=2,67;"3 dst"; "2 ndst")))))
• Średnia
oznacza średnią arytmetyczną
ze wszystkich ocen, uzyskanych przez
Studentkę/ Studenta w semestrze.
4
Artur Miktus
Architektura komputera LABSAG:
Instruction Set Architecture – Architektura listy
rozkazów:
• W uproszczeniu
: obejmuje listę rozkazów,
zrozumiałych dla procesora.
• Bardziej precyzyjnie
: opisuje budowę i
współdziałanie poszczególnych elementów
systemu komputerowego, widzianego przez
programistę, stosującego język maszynowy.
Artur Miktus
5
Architektura komputera LABSAG:
W skład ISA wchodzą (część A):
• Model pamięci
– Rozmiar jednostki alokacji – najmniejszej „porcji” pamięci,
możliwej do zaadresowania (
w LabSag słowo 16-bitowe
);
– Jedno- lub wielowymiarowość pamięci – np. stosowanie
segmentacji (
w LabSag jednowymiarowa pamięć,
adresowana liczbą z zakresu 0..255
);
• Rejestry
– Rejestry ogólnego przeznaczenia (ang. general purpose
registers) – ich liczba, stopień uniwersalności
(
w LabSag: A, MQ, X – 16-bitowe
) ;
– Rejestry ogólnego przeznaczenia zmiennoprzecinkowe
(
w LabSag brak rejestrów zmiennoprzecinkowych
);
– Rejestry specjalizowane (
w LabSag LR, RR, RAE, ZNAK, OFF,
XRO i inne
)
Artur Miktus
6
W skład ISA wchodzą (część B):
• Typy danych
– Liczbowe:
• całkowite (ang. integer) (stałoprzecinkowe, z przecinkiem po cyfrze
dziesiętnej z wagą 1) ze znakiem czy całkowite bez znaku, 8-, 16-, 32-,
64-bitowe (
w LabSag liczby 16-bitowe, całkowite, ze znakiem, z
przedziału -32 768 : +32 767, kodowane w kodzie uzupełnieniowym do
2
);
• zmiennoprzecinkowe (ang. floating point) pojedynczej precyzji (32-
bitowe), podwójnej precyzji (64-bitowe)
(
w LabSag brak liczb zmiennoprzecinkowych
);
• BCD (ang. Binary Coded Decimal) liczby dziesietne, w których każda
cyfra jest kodowana dwójkowo np. 95
10
= 1001 0101
BCD
(
w LabSag brak liczb BCD
);
– Nieliczbowe:
znaki (ASCII – 7/8-bitowe, Unicode – 16-bitowe), łańcuchy
znaków (w tym zakończone zerem), zmienne logiczne (true,
false), pola bitowe (
w LabSag brak kodowania znaków ASCII i
łańcuchów znaków
);
Artur Miktus
7
Architektura komputera LABSAG:
W skład ISA wchodzą (część C):
• Kolejność bajtów w „słowach” danych
(ang. endianness)
Załóżmy, że przechowujemy w komórce pamięci
operacyjnej liczbę heksadecymalną o wartości
12345678h. Konwencja Big Endian zapamięta
najbardziej znaczące cyfry liczby (12) „jako
pierwsze”, pod najmniejszym adresem (00):
Artur Miktus
8
Architektura komputera LABSAG:
W skład ISA wchodzą (część D):
• Formaty instrukcji
– Stałej/ zmiennej długości (
w LabSag wszystkie
rozkazy są 16-bitowe
);
– Liczba operandów w tym liczba dopuszczalnych
argumentów w pamięci operacyjnej (
w LabSag 0,1
lub 2 argumenty, ich liczba i położenie wynikają z
definicji rozkazu
);
– Położenie, długość i sposób kodowania
poszczególnych pól instrukcji – kodu operacji,
adresów argumentów;
Artur Miktus
9
Architektura komputera LABSAG:
Formaty instrukcji w LabSag
(Położenie, długość i sposób kodowania
poszczególnych pól instrukcji – kodu operacji, adresów argumentów)
0 4 5 6 7 8 15
OP X S I DA
Rys. 1. Format zwykły rozkazu.
Gdzie:
OP - kod operacji
X - wskaźnik adresowania indeksowego
S - wskaźnik adresacji względnej
I
- wskaźnik adresacji pośredniej
DA - 8-bitowe pole adresu bezpośredniego
Patrz skrypt, str. 17 i 25 oraz
intranet http://www.ita.wat.edu.pl/~a.miktus/Labsag/skrypt-fragmenty.htm
Artur Miktus
10
Architektura komputera LABSAG:
Formaty instrukcji w LabSag cd
(Położenie, długość i
sposób kodowania poszczególnych pól instrukcji – kodu operacji, adresów
argumentów)
0 4 5 8 9 15
00000 AOP N
Rys. 2. Format rozszerzony rozkazu.
Gdzie:
bity 0-4 przyjmują wartość zero (jako informację o rozkazie rozszerzonym)
AOP - rozszerzony kod operacji na bitach 5-8 (4 bity, 16 kombinacji)
N - dodatnia liczba binarna (7 bitów, 128 kombinacji, 0 – 127)
Patrz skrypt, str. 18 i 26 oraz
intranet http://www.ita.wat.edu.pl/~a.miktus/Labsag/skrypt-fragmenty.htm
Artur Miktus
11
Architektura komputera LABSAG:
W skład ISA wchodzą (część E):
• Miejsce położenia argumentów rozkazów
arytmetycznych: akumulator, stos, rejestry, pamięć
(RR, RM, MM, r – rejestr (register), m – pamięć
(memory).
W LabSag zastosowana jest architektura akumulatorowa (co to znaczy?);
• Typy instrukcji
– Przesyłania danych;
– Arytmetyczne;
– Logiczne;
– Przesunięć arytmetycznych, logicznych, cyklicznych;
– Skoki bezwarunkowe (jump)/ warunkowe (branch), pętle
(loop), wywołania i powroty z procedur (call, ret)
• Obsługa przerwań
• Konwencja korzystania z usług systemowych.
Artur Miktus
12
Architektura komputera LABSAG:
• W skład ISA wchodzą (część F):
• Tryby adresowania argumentów (skrypt, str.
24)
• W formacie zwykłym bity X, S, I są wskaźnikami
określającymi metodę wyznaczenia adresu
efektywnego. Jeśli wartość wskaźnika jest równa 1, to
określona przez niego metoda jest stosowana do
wyznaczania adresu efektywnego.
• W formacie rozszerzonym nie ma bitów X, S, I.
Stosowane jest wtedy czasem adresowanie
natychmiastowe.
Artur Miktus
13
Architektura komputera LABSAG:
Artur Miktus
14
Architektura komputera LABSAG:
Przykłady rozkazów w formacie zwykłym
15
Artur Miktus
Przykłady rozkazów w formacie rozszerzonym
Ekran trybu uruchomienia komputera LABSAG.
Artur Miktus
16
Główne zasoby komputera LABSAG: jednostka arytmetyczno-logiczna,
rejestry, magistrale (bez podglądu zawartości pamięci operacyjnej PAO i
pamięci sterowania (PS), zwanej też pamięcią mikroprogramów.
Artur Miktus
17
Główne zasoby komputera:
1. Jednostka arytmetyczno – logiczna
ALU
(ang. arithmetic and logic unit )
z rejestrami wejściowymi : lewym
LALU
i prawym
RALU
oraz rejestrem wyjściowym ALU (niezręczność przy projektowaniu– symbol
ALU dotyczy w LabSag zarówno jednostki arytmetyczno-logicznej, jak i jej
rejestru wyjściowego).
Artur Miktus
18
Główne zasoby komputera LABSAG:
2. Rejestry, służące do kontaktu z pamięcią operacyjną PAO:
RAP
– Rejestr Adresowy Pamięci Operacyjnej (zapisujemy tam adres komórki
PAO, z której chcemy odczytać zawartość / do której chcemy zapisać zawartość);
RBP
– Rejestr Buforowy Pamięci Operacyjnej (zapisujemy tam nową zawartość
zaadresowanej w RAP komórki PAO/ PAO umieszcza tam zawartość odczytanej,
zaadresowanej w RAP komórki)
Artur Miktus
19
Główne zasoby komputera LABSAG:
3. Rejestry, służące do przechowywania argumentów i wyników działania
rozkazów:
A
– Akumulator („akumuluje” – gromadzi wyniki działania rozkazów
arytmetycznych i logicznych, zwykle jest również miejscem przechowania
jednego z argumentów dla wielu rozkazów;
X
– Rejestr Pomocniczy X, zwykle jest miejscem przechowania drugiego z
argumentów dla wielu rozkazów;
MQ
– rejestr mnożnika/ ilorazu, potrzebny dla przechowywania argumentów i
wyników „podwójnej długości” dla rozkazów mnożenia, dzielenia.
Artur Miktus
20
Główne zasoby komputera LABSAG:
4. Rejestry, służące do przechowywania adresów (części adresów) rozkazów:
LR
– Licznik Rozkazów, przechowuje adres komórki PAO, w której jest zapisany
następny rozkaz do wykonania;
RI
– Rejestr Indeksowy, używany czasem do obliczania adresów argumentów
(nie przez wszystkie rozkazy, zależy od użytego trybu adresowania).
RAE
– Rejestr Adresu Efektywnego, przechowuje adres argumentu dla rozkazu.
Artur Miktus
21
Główne zasoby komputera LABSAG:
5.
Magistrala
: Za jej pomocą są wewnątrz komputera przesyłane informacje,
w tym adresy rozkazów i argumentów, wartości argumentów, zawartości
komórek pamięci operacyjnej PAO.
Uwaga: okienko „BUS” nie jest rejestrem, to chwilowy stan magistrali . Może się
zmienić w następnym takcie zegarowym. Jeśli nic nie „wystawiamy” na
magistralę (np. zawartości wybranego rejestru), to stan magistrali wynosi
„zero”.
Artur Miktus
22
Główne zasoby komputera LABSAG:
6. Rejestry, służące do kontaktu z pamięcią sterowania PS, przechowującą
mikroprogramy (UWAGA: PS nie przechowuje rozkazów ani danych w
rozumieniu programu asemblerowego, od tego jest PAO!) :
RAPS
– Rejestr Adresowy Pamięci Sterowania (zapisujemy tam adres komórki
PS, z której chcemy odczytać zawartość w trakcie wykonania rozkazu, pobranego
z PAO);
RBPS
– Rejestr Buforowy Pamięci Sterowania (PS umieszcza tam zawartość
odczytanej, zaadresowanej w RAPS komórki PS)
Artur Miktus
23
Główne zasoby komputera LABSAG:
7.
RR
– Rejestr Rozkazów, służący do przechowania kopii zawartości
wskazywanej przez LR komórki pamięci operacyjnej PAO . Do niego podłączony
jest (niepokazany na rysunku) dekoder, który rozpoznaje pobrany z PAO do RR
rozkaz, dekoduje go i ustala sekwencję czynności składowych, potrzebnych do
wykonania pobranego rozkazu.
LK, ZNAK, XRO, OFF
: rejestry pomocnicze, opisane w skrypcie.
Artur Miktus
24
Odczyt z Pamięci Operacyjnej (PAO).
Artur Miktus
25
Załóżmy, że w
PAO są
umieszczone
od adresu 5
kolejno trzy
liczby: 100,
101 i 102
dziesiętnie.
Odczyt z Pamięci Operacyjnej (PAO).
Artur Miktus
26
Aby odczytać „do procesora”
zawartość komórki PAO
o adresie 5, musimy:
A)wpisać do
RAP
(rejestru adresowego
pamięci operacyjnej)
liczbę 5 (adres).
B) zainicjować odczyt
(sygnałem
RRC
)
C) w reakcji na RRC
pamięć operacyjna
„sama” umieści w
RBP
(rejestrze buforowym
pamięci operacyjnej)
liczbę 100 (zawartość
komórki PAO o adresie
równym 5).
Przykład
pobierania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, realizuje działanie: A + PAO[RAE] -> A
Stan początkowy rejestrów: A = 100, LR = 10.
Stan początkowy PAO:
PAO[5] = 20, PAO[10] = ADS, X=0, S=0, I=0, DA = 5
Mamy „
POBRAĆ
” rozkaz (pobrać z PAO do procesora), czyli:
1)
odczytać
zawartość komórki PAO, adresowanej przez LR i
przesłać odczytaną zawartość komórki PAO do RR.
2)
zdekodować
rozkaz {potocznie: ustalić,
co
rozkaz ma zrobić (kod
czynności)}.
3)
obliczyć adres efektywny
argumentu {potocznie:
na czym
rozkaz
ma wykonać daną czynność}.
4) wykonać inne czynności pomocnicze, opisane w skrypcie.
Mikroprogram pobrania rozkazu w skrypcie, str. 48, 49
(komórki 0 i 48-51 PS). Opis: strony 50 i 51 w skrypcie.
Artur Miktus
27
Przykład
kodowania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE] -> A
Kodowanie rozkazu:
OP: rozkaz o mnemoniku ADS ma wg. tabeli w skrypcie str.25 kod binarny
00001
bit X =
0
bit S =
0
bit I =
0
pole DA ma wartość dziesiętną 5, czyli binarnie na 8 bitach:
0000 0101
Składamy cały, 16-bitowy rozkaz:
00001
0
0
0
0000 0101
Grupujemy kod binarny, reprezentujący rozkaz dodawania w tetrady
(w grupy po 4 bity)
0000 1000 0000 0101
b
=
0 8 0 5
h
Czyli nasz rozkaz dodawania, zakodowany do postaci zrozumiałej dla komputera
LabSag, przybiera formę :
liczby szesnastkowej
0805 h
binarnej
0000 1000 0000 0101b.
Artur Miktus
28
Przykład
pobierania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, realizuje działanie: A + PAO[RAE] -> A
Zakładka „EDYCJA”: ustawiamy stan początkowy rejestrów: A, LR,
ewentualnie inne wskazane w zadaniu
Artur Miktus
29
Zakładka „Praca procesora”: przycisk „Makro”, naciśnięty po raz
pierwszy w danym uruchomieniu LabSag, powoduje pojawienie się
żądania podania nazwy pliku z logiem. Uwaga: brak logu z
uruchomienia oznacza
ocenę niedostateczną
za wykonanie danego
ćwiczenia!
Artur Miktus
30
Przykład
pobierania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, realizuje działanie: A + PAO[RAE] -> A
Nazwy plików:
Artur Miktus
31
Proponuję konwencję: male l jak „laboratorium”, numer zajęć, litery ur dla logu
uruchomienia (pao dla Pamięci Operacyjnej, pm dla Pamięci Mikroprogramów), znak
podkreślenia, dwucyfrowy numer w dzienniku osoby wykonującej ćwiczenie
laboratoryjne np. l2ur_07.sag oznacza log z uruchomienia laboratorium nr 2 przez
osobę nr 07 w danej grupie. Nazwy plików w stylu DOS tj. 8 znaków nazwy , kropka, 3
znaki rozszerzenia – domyślnie .sag.
Przykład
pobierania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, realizuje działanie: A + PAO[RAE] -> A
Mamy „
POBRAĆ
” rozkaz (pobrać z PAO do procesora), czyli:
1)
odczytać
zawartość komórki PAO, adresowanej przez LR i przesłać
odczytaną zawartość komórki PAO do RR.
Artur Miktus
32
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 0, Komunikat „ Log składuję… „
oznacza tworzenie logu z uruchomienia
.
Krok 1: sprawdzenie, czy nie było przerwania – jeśli nie, skok do
komórki 48 Pamięci Mikroprogramów, jeśli tak, obsługa tej sytuacji
(patrz skrypt).
Artur Miktus
33
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 48
Krok 1: OLR: LR-> BUS
Artur Miktus
34
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 48
Krok 2: IRAP: BUS-> RAP
Artur Miktus
35
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 48
Krok 3: RRC, przepisać zawartość komórki PAO [RAP] do RBP, dodając
„h” (hex) lub „b” (bin)
Artur Miktus
36
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 48
Krok 4: ORBP: RBP-> BUS
Artur Miktus
37
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 48
Krok 5: IRR: BUS -> RR
Artur Miktus
38
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 48
Krok 6: zwiększenie RAPS o 1, bo w kolumnie TEST nie było
skoku
Artur Miktus
39
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 1: ORR: RR-> BUS
Artur Miktus
40
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 2: ILK: BUS -> LK (uwaga, rejestr LK jest 7-bitowy)
Artur Miktus
41
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 3: CEA: oblicz adres efektywny
Artur Miktus
42
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 3: CEA: oblicz adres efektywny:
Faza 1:
na lewe wejście sumatora adresowego jest podawana:
1) zawartość pola DA rozkazu z RR (dla rozkazów w formacie
zwykłym)
albo
2) zawartość pola N rozkazu z RR (dla rozkazów w formacie
rozszerzonym)
albo
3) zero dla sytuacji szczególnych
Artur Miktus
43
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 3: CEA: oblicz adres efektywny:
Faza 2:
na prawe wejście sumatora adresowego jest podawana:
1) zero
albo
2) zawartość rejestru LR
albo
3) zawartość rejestru RI
w zależności od zastosowanego trybu adresowania (patrz tabela 1.
Metody adresacji. Na str. 24 skryptu).
Artur Miktus
44
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 3: CEA: oblicz adres efektywny:
Faza 3:
Obliczana jest suma wartości na lewym i prawym wejściu sumatora
adresowego, przy czym w przypadku uzyskania jako wyniku liczby
większej niż 255, suma jest „obcinana” do 8 bitów oraz jest
sygnalizowane przekroczenie dopuszczalnego zakresu adresowania
przez ustawienie flagi XRO na 1.
Artur Miktus
45
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 4: IRAE: SUMA -> RAE. Prześlij obliczony adres efektywny z
wyjścia sumatora adresowego (
Uwaga
, z ekranu „ginie” obliczona
wartość, trzeba ją zapisać/ zapamiętać) do RAE.
Artur Miktus
46
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 5: NSI: LR+1 -> LR. Zwiększ licznik rozkazów o 1 tak, aby w
przypadku bieżącego rozkazu różnego od skoku, LR pokazywało na
następny rozkaz do pobrania (w której pamięci?)
Artur Miktus
47
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = 49
Krok 6: TEST TIND, Adresowanie pośrednie? Do RAPS należy wpisać
odpowiednią liczbę, w zależności od formatu rozkazu w RR i jego
trybu adresowania (bit I = 1?) – patrz opis na str. 51 skryptu.
Artur Miktus
48
Przykład
pobierania
rozkazu ADS komputera LABSAG.
RAPS = ?
I co dalej?
Jeżeli Czytelniczka/ Czytelnik zechcieli przeczytać strony 51 i 52 skryptu,
prawdopodobnie jasne jest że:
1) jeżeli pobierany był rozkaz w formacie zwykłym, nie stosujący adresowania
pośredniego ( (1 ≤ OP ≤ 31) i (I = 0) ), to RAPS <- OP i przechodzimy do fazy
wykonania
rozkazu (laboratoria 5-6 i 7-8);
2) jeżeli pobierany był rozkaz w formacie zwykłym, stosujący adresowanie pośrednie
( (1 ≤ OP ≤ 31) i (I = 1) ), to RAPS = 50 i realizujemy czynności, potrzebne do
zastosowania trybu adresowania pośredniego (laboratorium 3);
3) jeżeli pobierany był rozkaz w formacie rozszerzonym (OP = 0, 1 ≤ AOP ≤ 15), to
RAPS = 50 i działamy tak, jak w pkt.2 – wynika to z treści mikroprogramu pobrania
rozkazu i działania testu TIND (laboratorium 4).
Radzę samodzielnie sprawdzić przed lab. 3-4, jakie są dalsze działania
mikroprogramu pobrania rozkazu dla punktów 2 i 3.
Artur Miktus
49
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, realizuje działanie: A + PAO[RAE] -> A
Stan początkowy rejestrów: A = 100, LR = 10.
Stan początkowy PAO:
PAO[5] = 20, PAO[10] = ADS, X=0, S=0, I=0, DA = 5
co oznacza „dodaj do bieżącej zawartości akumulatora zawartość
komórki PAO (o obliczonym na podstawie X,S,I, DA adresie) i wynik
dodawania prześlij do akumulatora”.
A
(= 100)
+ PAO[5]
(=20)
A, czyli po wykonaniu rozkazu
A = 120
.
Mikroprogram dodawania w skrypcie, str. 49 (komórki 52 i 53 PS).
Uwaga: wykonanie każdego rozkazu jest poprzedzone wykonaniem
mikroprogramu pobrania rozkazu – str. 48 w skrypcie, opis
wykonania na stronach 50 i 51.
Artur Miktus
50
Przykład
kodowania
rozkazu ADS komputera LABSAG (przypomnienie).
ADS: dodawanie, A + PAO[RAE] -> A
Kodowanie rozkazu:
OP: rozkaz o mnemoniku ADS ma wg. tabeli w skrypcie str.25 kod binarny
00001
bit X =
0
bit S =
0
bit I =
0
pole DA ma wartość dziesiętną 5, czyli binarnie na 8 bitach:
0000 0101
Składamy cały, 16-bitowy rozkaz:
00001
0
0
0
0000 0101
Grupujemy kod binarny, reprezentujący rozkaz dodawania w tetrady
(w grupy po 4 bity)
0000 1000 0000 0101
b
=
0 8 0 5
h
Czyli nasz rozkaz dodawania, zakodowany do postaci zrozumiałej dla komputera
LabSag, przybiera formę :
liczby szesnastkowej
0805 h
binarnej
0000 1000 0000 0101b.
Artur Miktus
51
Artur Miktus
52
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE] -> A
Stan początkowy rejestrów: A = 100, LR = 10.
Artur Miktus
53
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE] -> A
1. Pobranie rozkazu z komórki PAO (adresowanej zawartością LR) do RR
a) przesłanie adresu z LR do RAP
b) zainicjowanie odczytu z PAO sygnałem sterującym RRC
c) w RBP znajdzie się …?
Artur Miktus
54
Przykład
wykonania
rozkazu ADS komputera
LABSAG.
ADS: dodawanie, A + PAO[RAE] -> A
1. Pobranie rozkazu z komórki PAO
(adresowanej zawartością LR) do RR
a) przesłanie adresu z LR do RAP
b) zainicjowanie odczytu z PAO
c) w RBP znajdzie się
0805h czyli kod szesnastkowy rozkazu
dodawania „ADS X=0, S=0, I=0, DA=5”
Artur Miktus
55
Przykład
wykonania
rozkazu ADS komputera
LABSAG.
ADS: dodawanie, A + PAO[RAE] -> A
2. Zdekodowanie rozkazu w RR (rozpoznanie
położenia i znaczenia odpowiednich pól
rozkazu), ustalenie adresu argumentu (na
podstawie bitów X,S,I oraz pola DA) rozkazu
w RR. U nas X=S=I=0, DA=5, co oznacza , że
argument dodawany do bieżącej zawartości
akumulatora znajduje się w PAO[5]. Liczba
5
(
czyli adres
) znajdzie się w RAP, a po
odczytaniu zawartości komórki PAO o adresie
5
, komputer umieści w RBP liczbę
0014h czyli
20 dziesiętnie (zawartość)
.
Artur Miktus
56
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE] -> A
3. Przesłanie argumentu dodawania RBP (odczytanego z PAO[5] ) przez
magistralę do rejestru pomocniczego X.
Artur Miktus
57
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE} -> A
4. Przesłanie argumentów dodawania(z akumulatora A do LALU) i (z X
do RALU) .
Artur Miktus
58
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE} -> A
5. Obliczenie sumy argumentów z LALU i RALU i przesłanie wyniku do rejestru
wyjściowego jednostki arytmetyczno-logicznej ALU.
Artur Miktus
59
Przykład
wykonania
rozkazu ADS komputera LABSAG.
ADS: dodawanie, A + PAO[RAE} -> A
6. Przesłanie wyniku z rejestru wyjściowego jednostki arytmetyczno-logicznej
ALU przez magistralę do Akumulatora.
Artur Miktus
60
Mikroprogramowanie
Mikroprogramowanie to technika projektowania
i realizacji sterowania w komputerze, w której
poszczególne rozkazy są wykonywane jako
mikroprogramy
, złożone z poleceń, zwanych
mikrorozkazami
, zapamiętywanych w pamięci
sterowania. Każdy mikrorozkaz może składać
się z jednej bądź wielu
mikrooperacji
.
61
Artur Miktus
Mikrorozkaz
Każdy mikrorozkaz może składać się z co
najmniej dwóch rodzajów pól:
• pola, zawierającego informację o niezbędnych
sygnałach sterujących
• pola, zawierającego informację o adresie
następnego mikrorozkazu do wykonania.
62
Artur Miktus
Mikrooperacja
Każda mikrooperacja, występująca w mikrorozkazie może
określać:
• przesłanie zawartości wybranego rejestru na
magistralę;
• wykonanie operacji przez jednostkę arytmetyczno-
logiczną;
• przesłanie zawartości magistrali lub stałej do
wybranego rejestru;
• rozpoczęcie lub zakończenie określonego działania
przez inny element komputera (np. rozpoczęcie cyklu
odczytu z pamięci operacyjnej).
63
Artur Miktus
Tematyka zajęć laboratoryjnych
• Dziś: Wprowadzenie do komputera LABSAG. Mikroprogram
pobrania rozkazu dla rozkazów w formacie zwykłym, które
wykorzystują adresowanie bezpośrednie – 4h
• Mikroprogram pobrania rozkazu dla rozkazów w formacie
zwykłym, które wykorzystują adresowanie pośrednie oraz
dla rozkazów w formacie rozszerzonym – 4 h
UWAGA: konieczne własne mikroprogramy rozkazów:
• Mikroprogramy rozkazów przesłań i arytmetycznych - 4h
• Mikroprogramy rozkazów logicznych i skoków – 4h
64
Artur Miktus