LABSAG wprowadzenie 2012

background image

LABSAG - wprowadzenie

AOK I zajęcia laboratoryjne 1

Artur Miktus

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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:

background image

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:

background image

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:

background image

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:

background image

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:

background image

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:

background image

• 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:

background image

Artur Miktus

14

Architektura komputera LABSAG:

background image

Przykłady rozkazów w formacie zwykłym

15

Artur Miktus

Przykłady rozkazów w formacie rozszerzonym

background image

Ekran trybu uruchomienia komputera LABSAG.

Artur Miktus

16

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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.

background image

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).

background image

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

background image

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

background image

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

background image

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

background image

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.

background image

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

background image

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

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 48

Krok 1: OLR: LR-> BUS

Artur Miktus

34

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 48

Krok 2: IRAP: BUS-> RAP

Artur Miktus

35

background image

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

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 48

Krok 4: ORBP: RBP-> BUS

Artur Miktus

37

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 48

Krok 5: IRR: BUS -> RR

Artur Miktus

38

background image

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

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 49

Krok 1: ORR: RR-> BUS

Artur Miktus

40

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 49

Krok 2: ILK: BUS -> LK (uwaga, rejestr LK jest 7-bitowy)

Artur Miktus

41

background image

Przykład

pobierania

rozkazu ADS komputera LABSAG.

RAPS = 49

Krok 3: CEA: oblicz adres efektywny

Artur Miktus

42

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

Artur Miktus

52

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron