spr aok ilona2, Wojskowa Akademia Techniczna (WAT) INFORMATYKA, SEM1, Architektura i Organizacja Komputerów [AOK]


WOJSKOWA AKADEMIA TECHNICZNA

LABOLATORIUM BUDOWY KOMPUTERÓW

Z ĆWICZENIA LABORATORYJNEGO

NR 3 wersja 2

Prowadzący mgr inż. Artur Miktus

Temat ćwiczenia: Mikroprogram pobrania rozkazu. Pobieranie rozkazów w formacie zwykłym dla adresowania pośredniego.

Grupa: I2Y3S1

Wykonała: Ilona Paziewska

Data wykonania ćwiczenia: 27.11.2012r

Celem ćwiczenia było: badanie organizacji i działania komputera LabSag przy pobieraniu rozkazów w formacie zwykłym dla adresowania pośredniego. Podczas wykonywania symulacji pracy procesora na komputerze laboratoryjnym wykonano cztery pobrania rozkazów.

1. Pamięć operacyjna

WARTOŚCI PAMIĘCI OPERACYJNEJ DLA DRUGIEJ WERSJI TRZECIEGO ZADANIA OKREŚLONE DLA STUDENTA O NUMERZE 6

Stan początkowy rejestrów

A 106

LR 126

RI 20

Stan pamięci operacyjnej

W komórkach 0-4, 16, 26, 131 i 255 pamięci operacyjnej znajdują się dane o odpowiednich wartościach dziesiętnych. Natomiast w komórkach 126-130 znajdują się rozkazy w formacie zwykłym.

Adres

Zawartość(bin)

Hex

Wartość

0

0000000011011100b

00DCh

220

1

0000000011101100b

00ECh

236

2

0000000011110110b

00F6h

246

3

0000000000000010b

0002h

2

4

0000000000000001b

0001h

1

16

0000000000000100b

0004h

4

26

0000000000000011b

0003h

3

131

1011110011011010b

BCDAh

-17190

255

0000000001100110b

0066h

102

Tabela 1. Zestawienie wartości poszczególnych komórek Pamięci Operacyjnej.

Adres

Zawartość(bin)

hex

OP

X

S

I

DA

126

0001001000000010b

1202h

2

0

1

0

2

127

1000110100000110b

8D06h

17

1

0

1

16

128

0101101100000000b

5B00h

11

0

1

1

0

129

0000111100000110b

0F06h

1

1

1

1

6

130

0110001011001110b

62CEh

12

0

1

0

206

Tabela 2. Zestawienie wartości danych rozkazów zwykłych komórek Pamięci Operacyjnej.

Nr komórki

Operacja

Kod operacji

Tryb adresowania

Rezultat wykonania rozkazu

126

SUS

2

Względne

Wynik działania różnicy zawartości akumulatora i zawartość komórki pamięci operacyjnej o adresie określonym w rejestrze adresu efektywnego. Wynik umieszczony w akumulatorze.

127

BAQ

17

Modyfikacja

Operacja skoku, jeśli jest nadmiar zawartości akumulatora. Przekazania sterowania do licznika rozkazów o adresie zawartym w rejestrze adresu efektywnego.

128

TXA

11

Względne

Prześlij zawartość rejestru indeksowego do akumulatora.

129

ADS

1

Niedozwolone

Wynik działania sumy zawartości akumulatora i zawartość komórki pamięci operacyjnej o adresie określonym w rejestrze adresu efektywnego. Wynik umieszczony w akumulatorze.

130

TMQ

12

Względne

Prześlij zawartość mnożnika do rejestru akumulatora.

Tabela 3. Zestawienie rozkazów w formacie zwykłym z określonym trybem ich adresowania i określeniem rezultatu wykonania rozkazu.

Objaśnienia:

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

Niewyszczególnione przeze mnie komórki PAO są wyzerowane.

Rozkaz pierwszy (Adres 126):
Nazwa mnemoniczna: SUS
Pełna nazwa: Odejmowanie
Tryb adresowania: Adresowanie względne RAE=LR+DA
Spodziewany rezultat: A-PAO[RAE] → A

Rozkaz drugi (Adres 127):
Nazwa mnemoniczna: BAQ
Pełna nazwa: Skocz, jeśli nadmiar A
Tryb adresowania: Modyfikacja
RAE=PAO[LR+RI]8-15] Spodziewany rezultat: jeśli OFF=1; RAE→LR
Rozkaz trzeci (Adres 128):
Nazwa mnemoniczna: TXA Pełna nazwa: Prześlij RI do A
Tryb adresowania: Adresowanie względne R
AE=PAO[LR+DA]8-15 Spodziewany rezultat: jeśli RI→A

Rozkaz czwarty (Adres 129):
Nazwa mnemoniczna: ADS
Pełna nazwa: Dodawanie
Tryb adresowania: niedozwolone
RAE=PAO[0]
Spodziewany rezultat: jeśli A+PAO[RAE]→A

Rozkaz piąty(Adres 130):
Nazwa mnemoniczna: TMQ
Pełna nazwa: Prześlij MQ do A
Tryb adresowania: Adresowanie względne RAE=LR+DA
Spodziewany rezultat: MQ → A

Pamięć Mikroprogramu

0 Test ___ TINT ___ Brak przerwania

NA ___ 48

48 S1 ___ OLR ___ LR -> BUS

D1 ___ IRAP ___ BUS -> RAP

S3 ___ ORBP ___ RBP -> BUS

D3 ___ IRR ___ BUS -> RR

C1 ___ RRC ___ Rozpoczęcie RRC

49 S1 ___ ORR ___ RR -> BUS

D1 ___ ILK ___ BUS -> LK

S2 ___ IRAE ___ SUMA -> RAE

D2 ___ NSI ___ LR+1 -> LR

C2 ___ CEA ___ Oblicz adres efektywny

Test ___ TIND ___ Adresowanie pośrednie

NA ___ 50

50 S1 ___ ORAE ___ RAE -> BUS

D1 ___ IRAP ___ BUS -> RAP

S3 ___ ORBP ___ RBP -> BUS

D3 ___ IX ___ BUS -> X

C1 ___ RRC ___ Rozpoczęcie RRC

51 S2 ___ OX ___ X -> BUS

D2 ___ IBI ___ BUS -> RAE

C2 ___ OPC ___ OP /AOP+32/ -> RAPS

Cykl rozkazowy rozpoczyna się pobraniem i wykonaniem mikrorozkazu z komórki o adresie w PM np. 0, która zawiera mikrooperacje testu TINT. Następnie przechodzimy do komórki o adresie określonym w NA, czyli 48. Tam znajduję się mikrorozkaz, którego mikrooperacje powodują zainicjowanie cyklu odczytu z pamięci, załadowanie rejestru buforowego RBP zawartością adresowanej komórki. Zawartość RBP przesyłana jest do RR, umożliwiając dekodowanie kodu operacji i wyznaczenie adresu argumentów. W komórce 49 pamięci, do rejestru pomocniczego LK przesyłana jest część pola DA rozkazu zwykłego. Następnie obliczany jest adres efektywny argumentu, uwzględniająca stan bitów X i S oraz pola DA rozkazu. Wynik tego działania, wysyłany jest do RAE. Później LR jest zwiększany o 1. Jeśli mamy do czynienia z adresowaniem pośrednim, test TIND przekazuje sterowanie do mikrorozkazu o adresie 50. Wtedy w RAE znajduje się adres adresu argumentu. W kolejnym mikrorozkazach zawartość rejestru pomocniczego przesyłana jest do RAE wykorzystując rejestr pomocniczy X.. Kod operacji jest dekodowany w mikrorozkazie 51.

Log z wykonanego ćwiczenia laboratoryjnego.

Log zapisano we Wtorek, 2012-11-27

-------------------- 0 --------------------

TAKT=0 RBPS:=000000020030

TAKT=1 TAKT=2 TAKT=5 TAKT=6 TAKT=7

Test ___ TINT ___ Brak przerwania

RAPS:=0030h\ 48

-------------------- 48 --------------------

TAKT=0 RBPS:=5006C4000000

TAKT=1

S1 ___ OLR ___ LR -> BUS BUS:=007Eh\ 126

D1 ___ IRAP ___ BUS -> RAP RAP:=007Eh\ 126

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1 RBP:=1202h\ 4610

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=1202h\ 4610

D3 ___ IRR ___ BUS -> RR RR:=1202h\ 4610

RAPS:=0031h\ 49

-------------------- 49 --------------------

TAKT=0 RBPS:=68C801830032

TAKT=1

S1 ___ ORR ___ RR -> BUS BUS:=1202h\ 4610

D1 ___ ILK ___ BUS -> LK LK:=0002h\ 2

C2 ___ CEA ___ Oblicz adres efektywny

l:=0002h\ 2 r:=007Eh\ 126 aa:=0080h\ 128

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=0080h\ 128

D2 ___ NSI ___ LR+1 -> LR LR:=007Fh\ 127

IA=0 TAKT=7

Test ___ TIND ___ Adresowanie pośrednie

RAPS:=0002h\ 2

Zmiana zawartości rejestru RAPS - nowa wartość to 0

-------------------- 0 --------------------

TAKT=0 MAV=1 RBPS:=000000020030

TAKT=1 TAKT=2 TAKT=5 TAKT=6 TAKT=7

Test ___ TINT ___ Brak przerwania

RAPS:=0030h\ 48

-------------------- 48 --------------------

TAKT=0 RBPS:=5006C4000000

TAKT=1

S1 ___ OLR ___ LR -> BUS BUS:=007Fh\ 127

D1 ___ IRAP ___ BUS -> RAP RAP:=007Fh\ 127

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1 RBP:=8D06h\ -29434

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=8D06h\ -29434

D3 ___ IRR ___ BUS -> RR RR:=8D06h\ -29434

RAPS:=0031h\ 49

-------------------- 49 --------------------

TAKT=0 RBPS:=68C801830032

TAKT=1

S1 ___ ORR ___ RR -> BUS BUS:=8D06h\ -29434

D1 ___ ILK ___ BUS -> LK LK:=0006h\ 6

C2 ___ CEA ___ Oblicz adres efektywny

l:=0006h\ 6 r:=0014h\ 20 aa:=001Ah\ 26

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=001Ah\ 26

D2 ___ NSI ___ LR+1 -> LR LR:=0080h\ 128

IA=0 TAKT=7

Test ___ TIND ___ Adresowanie pośrednie

RAPS:=0032h\ 50

-------------------- 50 --------------------

TAKT=0 MAV=1 RBPS:=900624000000

TAKT=1

S1 ___ ORAE ___ RAE -> BUS BUS:=001Ah\ 26

D1 ___ IRAP ___ BUS -> RAP RAP:=001Ah\ 26

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1 RBP:=0003h\ 3

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=0003h\ 3

D3 ___ IX ___ BUS -> X X:=0003h\ 3

RAPS:=0033h\ 51

-------------------- 51 --------------------

TAKT=0 RBPS:=03A801600000

TAKT=1

C2 ___ OPC ___ OP /AOP+32/ -> RAPS TAKT=2 TAKT=5 TAKT=6

S2 ___ OX ___ X -> BUS BUS:=0003h\ 3

D2 ___ IBI ___ BUS -> RAE RAE:=0003h\ 3

IA=0 TAKT=7

RAPS:=000Bh\ 11 ***** BŁĄD ***** OCENA=5 RAPS:=0011h\ 17

Zmiana zawartości rejestru RAPS - nowa wartość to 0

-------------------- 0 --------------------

TAKT=0 MAV=1 RBPS:=000000020030

TAKT=1 TAKT=2 TAKT=5 TAKT=6 TAKT=7

Test ___ TINT ___ Brak przerwania

RAPS:=0030h\ 48

-------------------- 48 --------------------

TAKT=0 RBPS:=5006C4000000

TAKT=1

S1 ___ OLR ___ LR -> BUS BUS:=0080h\ 128

D1 ___ IRAP ___ BUS -> RAP RAP:=0080h\ 128

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1 RBP:=5B00h\ 23296

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=5B00h\ 23296

D3 ___ IRR ___ BUS -> RR RR:=5B00h\ 23296

RAPS:=0031h\ 49

-------------------- 49 --------------------

TAKT=0 RBPS:=68C801830032

TAKT=1

S1 ___ ORR ___ RR -> BUS BUS:=5B00h\ 23296

D1 ___ ILK ___ BUS -> LK LK:=0000h\ 0

C2 ___ CEA ___ Oblicz adres efektywny

l:=0000h\ 0 r:=0080h\ 128 aa:=0080h\ 128

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=0080h\ 128

D2 ___ NSI ___ LR+1 -> LR LR:=0081h\ 129

IA=0 TAKT=7

Test ___ TIND ___ Adresowanie pośrednie

RAPS:=0032h\ 50

-------------------- 50 --------------------

TAKT=0 MAV=1 RBPS:=900624000000

TAKT=1

S1 ___ ORAE ___ RAE -> BUS BUS:=0080h\ 128

D1 ___ IRAP ___ BUS -> RAP RAP:=0080h\ 128

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1

RBP:=0F06h\ 3846 ***** BŁĄD ***** OCENA=4 RBP:=5B00h\ 23296

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=5B00h\ 23296

D3 ___ IX ___ BUS -> X X:=5B00h\ 23296

RAPS:=0033h\ 51

-------------------- 51 --------------------

TAKT=0 RBPS:=03A801600000

TAKT=1

C2 ___ OPC ___ OP /AOP+32/ -> RAPS TAKT=2 TAKT=5 TAKT=6

S2 ___ OX ___ X -> BUS BUS:=5B00h\ 23296

D2 ___ IBI ___ BUS -> RAE RAE:=5B00h\ 23296

IA=0 TAKT=7

RAPS:=0001h\ 1 ***** BŁĄD ***** OCENA=4 RAPS:=000Bh\ 11

Zmiana zawartości rejestru RAPS - nowa wartość to 0

-------------------- 0 --------------------

TAKT=0 MAV=1 RBPS:=000000020030

TAKT=1 TAKT=2 TAKT=5 TAKT=6 TAKT=7

Test ___ TINT ___ Brak przerwania

RAPS:=0030h\ 48

-------------------- 48 --------------------

TAKT=0 RBPS:=5006C4000000

TAKT=1

S1 ___ OLR ___ LR -> BUS BUS:=0081h\ 129

D1 ___ IRAP ___ BUS -> RAP RAP:=0081h\ 129

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1 RBP:=0F06h\ 3846

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=0F06h\ 3846

D3 ___ IRR ___ BUS -> RR RR:=0F06h\ 3846

RAPS:=0031h\ 49

-------------------- 49 --------------------

TAKT=0 RBPS:=68C801830032

TAKT=1

S1 ___ ORR ___ RR -> BUS BUS:=0F06h\ 3846

D1 ___ ILK ___ BUS -> LK LK:=0006h\ 6

C2 ___ CEA ___ Oblicz adres efektywny

XRO=1

l:=0000h\ 0 r:=0000h\ 0 aa:=0000h\ 0

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=0000h\ 0

D2 ___ NSI ___ LR+1 -> LR LR:=0082h\ 130

IA=0 TAKT=7

Test ___ TIND ___ Adresowanie pośrednie

RAPS:=0032h\ 50

-------------------- 50 --------------------

TAKT=0 MAV=1 RBPS:=900624000000

TAKT=1

S1 ___ ORAE ___ RAE -> BUS BUS:=0000h\ 0

D1 ___ IRAP ___ BUS -> RAP RAP:=0000h\ 0

C1 ___ RRC ___ Rozpoczęcie RRC

MAV=0 TAKT=2 TAKT=5 TAKT=6 IA=1 RBP:=00DCh\ 220

IA=0 IA=0 TAKT=7

S3 ___ ORBP ___ RBP -> BUS BUS:=00DCh\ 220

D3 ___ IX ___ BUS -> X X:=00DCh\ 220

RAPS:=0033h\ 51

-------------------- 51 --------------------

TAKT=0 RBPS:=03A801600000

TAKT=1

C2 ___ OPC ___ OP /AOP+32/ -> RAPS TAKT=2 TAKT=5 TAKT=6

S2 ___ OX ___ X -> BUS BUS:=00DCh\ 220

D2 ___ IBI ___ BUS -> RAE RAE:=00DCh\ 220

IA=0 TAKT=7

RAPS:=000Ch\ 12 ***** BŁĄD ***** OCENA=4 RAPS:=0001h\ 1

************************************************************

Symulację zakończono o godzinie 14:58:32.

Ocena końcowa : 4

Ilość błędów : 4

Algorytm obliczania zawartości RAE dla rozkazów w formacie zwykłym:

0x08 graphic

Tabela przedstawiająca opis działania algorytmu graficznego zaprezentowanego powyżej:

1 rozkaz: SUS OP=2 X=0 S=1 I=0 DA=2

Zadanie

LOG

START

X=0 S=0? => NIE

X=0 S=1 ?=> TAK

SUMA_L = LR; SUMA_R = DA

RAE = LR + DA= 128

RAE>256? => NIE

STOP

l:=0002h\ 2 r:=007Eh\ 126 aa:=0080h\ 128

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=0080h\ 80

2 rozkaz: BAQ OP=17 X=1 S=0 I=1 DA=6

Zadanie

LOG

START

X=0 S=0? => NIE

X=1 S=0? => TAK

SUMA_L = DA; SUMA_R = RI

RAE = PAO[DA + RI] = 6+ 20 = 26

RAE>256? => NIE

STOP

l:=0006h\ 6 r:=0014h\ 20 aa:=001Ah\ 26

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=001Ah\ 26

3 rozkaz: BXN OP=11 X=0 S=1 I=1 DA=0

Zadanie

LOG

START

X=0 S=0? => NIE

X=1 S=0? => NIE

X=0 S=1? => TAK

SUMA_L = LR; SUMA_R = DA

RAE =PAO[LR + DA] = 128

RAE>256? => NIE

STOP

l:=0000h\ 0 r:=0080h\ 128 aa:=000Eh\ 128

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=0080h\ 128

4 rozkaz: BAZ OP=1 X=1 S=1 I=1 DA=6

Zadanie

LOG

START

X=0 S=0? => NIE

X=1 S=0? => NIE

X=0 S=1? => NIE

SUMA_L = 0; SUMA_R = 0

RAE = PAO[0] = 0

RAE>256? => NIE

STOP

l:=0000h\ 0 r:=0000h\ 0 aa:=0000h\ 0

TAKT=2 TAKT=5 TAKT=6

S2 ___ IRAE ___ SUMA -> RAE RAE:=0000h\ 0

12



Wyszukiwarka