AOK LAB3 SPRAWKOZDANIE

background image

Wojskowa Akademia Techniczna

im. Jarosława Dąbrowskiego

Laboratorium

Architektury i Organizacji Komputerów

Prowadzący

mgr. inż. Artur Miktus

Sprawozdanie z ćwiczenia laboratoryjnego

nr 3

Temat: Mikroprogram pobrania rozkazu. Pobieranie rozkazów w trybie

zwykłym dla adresowania pośredniego.

Wykonał : Adrian Kępa

Nr : 14

Grupa : I3X6S1

Data wykonania ćwiczenia : 07.11.2013

background image

[1]

Pamięć operacyjna

Stan początkowy rejestrów

A

14

LR

154

RI

10

Stan pamięci operacyjnej

Adres

Zawartość [DEC]

Zawartość [HEX]

Zawartość[BIN]

0

230

00E6

0000000011100110

1

24

0018

0000000000011000

2

34

0022

0000000000100010

3

3

0003

0000000000000011

4

2

0002

0000000000000010

24

1

0001

0000000000000001

34

4

0004

0000000000000100

255

103

0067

0000000001100111

Lista rozkazów

Adres

Mnemonik

OP

X

S

I

DA

154

MUL

3

0

0

1

2

155

BXP

18

0

1

1

0

156

BXN

20

1

0

1

14

157

BAZ

23

1

1

0

14

158

LDX

9

0

1

0

214

Pozostałe komórki w PAO są wyzerowane.

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

[1]

background image

[2]

Rozkazy

Rozkaz pierwszy

Adres : 154
Mnemonik : MUL
Pełna nazwa : Mnożenie
Opis działania : A * PAO[RAE] -----> A||MQ

Rozkaz drugi

Adres : 155
Mnemonik : BXP
Pełna nazwa : Skocz jeśli RI dodatni
Opis działania : Jeśli RI > 0; RAE -----> LR

Rozkaz trzeci

Adres : 156
Mnemonik : BXN
Pełna nazwa : Skocz jeśli RI ujemny
Opis działania : Jeśli RI < 0; RAE -----> LR

Rozkaz czwarty

Adres : 157
Mnemonik : BAZ
Pełna nazwa : Skocz jeśli A = 0
Opis działania : Jeśli A = 0; RAE -----> LR

Rozkaz piąty

Adres : 158
Mnemonik : LDX
Pełna nazwa : Ładuj rejestr indeksowy
Opis działania : Ładuj rejestr indeksowy zawartością komórki o adresie w RAE

[2]

background image

[3]

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

[3]

background image

Mikroprogram pobrania rozkazu ma za zadanie pobrać i zdekodować podane w zadaniu rozkazy.
Początkowo przeprowadzona jest mikrooperacja testu TINT w komórce o adresie 0 w PM.
Następnie z komórki o adresie 48 zostaje zainicjowany cykl odczytu z pamięci oraz załadowanie
rejestru buforowego RBP zawartością adresowanej komórki a w następnym kroku zawartość RBP
zostaje przesłana do rejestru rozkazów(RR). W komórce 49 zostaje przeprowadzone przesłanie do
rejestru pomocniczego(LK) mniejsza część pola DA rozkazu zwykłego. Dalej obliczany jest adres
efektywny argumentu, z uwzględnieniem bitów X,S oraz pola DA danego rozkazu. Natępnie wynik
tego działania zostaje przesłany do RAE, a licznik rozkazów(LR) zostaje zwiększony o 1.
W wypadku gdy naszego rozkazu dotyczy adresowanie pośrednie, test TIND przekazuje sterowanie
mikrorozkazowi w komórce o adresie 50. W tym momencie RAE zostaje adresem argumentu a w
kolejnych mikrorozkazach zawartość rejestru pomocniczego jest do niego przesyłana.
Do komórki o adresie 50 sterowanie jest przekazywane także w sytuacji gdy rozkaz jest
rozszerzony.

[4]

Log z wykonanego zadania

Log zapisano w Czwartek, 2013-11-07

-------------------- 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:=009Ah\ 154

D1

___ IRAP ___

BUS -> RAP

RAP:=009Ah\ 154

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=1902h\ 6402

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=1902h\ 6402

D3

___ IRR ___

BUS -> RR

RR:=1902h\ 6402

RAPS:=0031h\ 49

-------------------- 49 --------------------
TAKT=0

RBPS:=68C801830032

TAKT=1
S1

___ ORR ___

RR -> BUS

BUS:=1902h\ 6402

D1

___ ILK ___

BUS -> LK

LK:=0002h\ 2

C2

___ CEA ___

Oblicz adres efektywny

l:=0002h\ 2

r:=0000h\ 0

aa:=0002h\ 2

TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=0002h\ 2

D2

___ NSI ___

LR+1 -> LR

LR:=009Bh\ 155

IA=0

TAKT=7

Test

___ TIND ___

Adresowanie pośrednie

RAPS:=0032h\ 50

[4]

background image

-------------------- 50 --------------------
TAKT=0

MAV=1 RBPS:=900624000000

TAKT=1
S1

___ ORAE ___ RAE -> BUS

BUS:=0002h\ 2

D1

___ IRAP ___

BUS -> RAP

RAP:=0002h\ 2

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=0022h\ 34

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=0022h\ 34

D3

___ IX ___

BUS -> X

X:=0022h\ 34

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:=0022h\ 34

D2

___ IBI ___

BUS -> RAE

RAE:=0022h\ 34

IA=0

TAKT=7

RAPS:=0003h\ 3

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:=009Bh\ 155

D1

___ IRAP ___

BUS -> RAP

RAP:=009Bh\ 155

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=9300h\ -27904

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=9300h\ -27904

D3

___ IRR ___

BUS -> RR

RR:=9300h\ -27904

RAPS:=0031h\ 49

-------------------- 49 --------------------
TAKT=0

RBPS:=68C801830032

TAKT=1
S1

___ ORR ___

RR -> BUS

BUS:=9300h\ -27904

D1

___ ILK ___

BUS -> LK

LK:=0000h\ 0

C2

___ CEA ___

Oblicz adres efektywny

l:=0000h\ 0

r:=009Bh\ 155 aa:=009Bh\ 155

TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=009Bh\ 155

D2

___ NSI ___

LR+1 -> LR

LR:=009Ch\ 156

IA=0

TAKT=7

Test

___ TIND ___

Adresowanie pośrednie

RAPS:=0032h\ 50

[5]

background image

-------------------- 50 --------------------
TAKT=0

MAV=1 RBPS:=900624000000

TAKT=1
S1

___ ORAE ___ RAE -> BUS

BUS:=009Bh\ 155

D1

___ IRAP ___

BUS -> RAP

RAP:=009Bh\ 155

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=9300h\ -27904

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=9300h\ -27904

D3

___ IX ___

BUS -> X

X:=9300h\ -27904

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:=9300h\ -27904

D2

___ IBI ___

BUS -> RAE

RAE:=9300h\ -27904

IA=0

TAKT=7

RAPS:=0012h\ 18

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:=009Ch\ 156

D1

___ IRAP ___

BUS -> RAP

RAP:=009Ch\ 156

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=A50Eh\ -23282

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=A50Eh\ -23282

D3

___ IRR ___

BUS -> RR

RR:=A50Eh\ -23282

RAPS:=0031h\ 49

-------------------- 49 --------------------
TAKT=0

RBPS:=68C801830032

TAKT=1
S1

___ ORR ___

RR -> BUS

BUS:=A50Eh\ -23282

D1

___ ILK ___

BUS -> LK

LK:=000Eh\ 14

C2

___ CEA ___

Oblicz adres efektywny

l:=000Eh\ 14 r:=000Ah\ 10 aa:=0018h\ 24
TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=0018h\ 24

D2

___ NSI ___

LR+1 -> LR

LR:=009Dh\ 157

IA=0

TAKT=7

Test

___ TIND ___

Adresowanie pośrednie

RAPS:=0032h\ 50

[6]

background image

-------------------- 50 --------------------
TAKT=0

MAV=1 RBPS:=900624000000

TAKT=1
S1

___ ORAE ___ RAE -> BUS

BUS:=0018h\ 24

D1

___ IRAP ___

BUS -> RAP

RAP:=0018h\ 24

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=0001h\ 1

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=0001h\ 1

D3

___ IX ___

BUS -> X

X:=0001h\ 1

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:=0001h\ 1

D2

___ IBI ___

BUS -> RAE

RAE:=0001h\ 1

IA=0

TAKT=7

RAPS:=0014h\ 20

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:=009Dh\ 157

D1

___ IRAP ___

BUS -> RAP

RAP:=009Dh\ 157

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=BE0Eh\ -16882

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=BE0Eh\ -16882

D3

___ IRR ___

BUS -> RR

RR:=BE0Eh\ -16882

RAPS:=0031h\ 49

-------------------- 49 --------------------
TAKT=0

RBPS:=68C801830032

TAKT=1
S1

___ ORR ___

RR -> BUS

BUS:=BE0Eh\ -16882

D1

___ ILK ___

BUS -> LK

LK:=000Eh\ 14

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:=009Eh\ 158

IA=0

TAKT=7

Test

___ TIND ___

Adresowanie pośrednie

RAPS:=0032h\ 50

***** BŁĄD *****

OCENA=5

RAPS:=0017h\ 23

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

[7]

background image

-------------------- 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:=009Eh\ 158

D1

___ IRAP ___

BUS -> RAP

RAP:=009Eh\ 158

C1

___ RRC ___

Rozpoczęcie RRC

MAV=0 TAKT=2

TAKT=5

TAKT=6

IA=1

RBP:=4AD6h\ 19158

IA=0

IA=0

TAKT=7

S3

___ ORBP ___ RBP -> BUS

BUS:=4AD6h\ 19158

D3

___ IRR ___

BUS -> RR

RR:=4AD6h\ 19158

RAPS:=0031h\ 49

-------------------- 49 --------------------
TAKT=0

RBPS:=68C801830032

TAKT=1
S1

___ ORR ___

RR -> BUS

BUS:=4AD6h\ 19158

D1

___ ILK ___

BUS -> LK

LK:=0056h\ 86

C2

___ CEA ___

Oblicz adres efektywny

XRO=1
l:=00D6h\ 214 r:=009Eh\ 158 aa:=0074h\ 116
TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=0074h\ 116

D2

___ NSI ___

LR+1 -> LR

LR:=009Fh\ 159

IA=0

TAKT=7

Test

___ TIND ___

Adresowanie pośrednie

RAPS:=0009h\ 9

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

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

Symulację zakończono o godzinie 13:20:43.
Ocena końcowa : 5
Ilość błędów :

1

Podczas wykonywania ćwiczenia laboratoryjnego popełniłem jeden błąd polegający na wpisaniu
błędnej wartości do komórki RAPS. W komórkę RAPS została wpisana błędna wartość 50 która
oznaczałaby przejście do 50 wiersza pamięci mikroprogramu w celu kontynuacji pobierania
rozkazu o adresacji pośredniej (bit I = 1). Kolejne błędy tego typu nie miały miejsca z powodu
zwiększonej ostrożności i odpowiedniej analizy typu adresowania pobieranych rozkazów.

[8]

background image

[5]

Algorytm obliczania RAE

dla rozkazów zwykłych

[9]

background image

[6]

Opis działania algorytmu

Przedstawiony algorytm ma zastosowanie dla rozkazów w trybie zwykłym.
Jeśli bity X = S = 0 to lewe wejście sumatora (LALU) przyjmuje wartość pola DA rozkazu, a prawe
wejście sumatora (RALU) przyjmuje wartość 0.

Gdy bit X = 1 a bit S = 0 to LALU przyjmuje wartość pola DA a RALU wartość rejestru
indeksowego (RI).

W sytuacji gdy bit X = 0 a bit S = 1 LALU przyjmuje również wartość DA a RALU wartość
licznika rozkazów (LR).

Wynik będący sumą powyższych kombinacji musi być mniejszy od 256. Jeżeli tak nie jest, flaga
odpowiadająca za sygnalizację nadmiaru (XRO) zostaje ustawiona na 1 a suma powinna być
modyfikowana tak długo aż uzyska wartość mniejszą od 256.

W przypadku wystąpienia kombinacji bitów X = S = 1 czyli adresowania zabronionego, zarówno
LALU jak i RALU przyjmują wartość 0.

Następnie wartość wyliczonej sumy jest zapisywana w rejestrze adresu efektywnego (RAE).
Sprawdza się również bit I odpowiadający za adresowanie pośrednie. Jeśli I = 1 następuje wtedy
odczytanie zawartości z komórki w PAO której adres znajduje się w RAE. Wartość tej komórki
zostaje wpisana do rejestru X a następnie z niego przypisana do RAE, algorytm zostaje zakończony.

W przypadku gdy bit I = 0 oznacza to adresowanie bezpośrednie, więc końcowa wartość RAE nie
ulegnie zmianie i algorytm zostaje zakończony.

[10]

background image

[7]

Porównanie wyników

teoretycznych z praktycznymi

Rozkaz pierwszy

MUL [Adres = 154] [OP = 3] [X = 0] [S = 0] [I = 1] [DA = 2]

X = S = 0 [PRAWDA]
LALU = DA = 2
RALU = 0
SUMA = 2
SUMA < 256 [PRAWDA]
RAE = SUMA = 2

(...)
l:=0002h\ 2

r:=0000h\ 0

aa:=0002h\ 2

TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=0002h\ 2

(...)

Rozkaz drugi

BXP [Adres = 155] [OP = 18] [X = 0] [S = 1] [I = 1] [DA = 0]

X = S = 0 [FAŁSZ]
X = 1 ^ S = 0 [FAŁSZ]
X = 0 ^ S = 1 [PRAWDA]
LALU = DA = 0
RALU = LR = 155
SUMA = 155
SUMA < 256 [PRAWDA]
RAE = SUMA = 155

(...)
l:=0000h\ 0

r:=009Bh\ 155 aa:=009Bh\ 155

TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=009Bh\ 155

(...)

Rozkaz trzeci

BXP [Adres = 156] [OP = 20] [X = 1] [S = 0] [I = 1] [DA = 14]

X = S = 0 [FAŁSZ]
X = 1 ^ S = 0 [PRAWDA]
LALU = DA = 14
RALU = RI = 10
SUMA = 24
SUMA < 256 [PRAWDA]
RAE = SUMA = 24

[11]

background image

(...)
l:=000Eh\ 14 r:=000Ah\ 10 aa:=0018h\ 24
TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___

SUMA -> RAE RAE:=0018h\ 24

(...)

Rozkaz czwarty

BAZ [Adres = 157] [OP = 23] [X = 1] [S = 1] [I = 0] [DA = 14]

X = S = 0 [FAŁSZ]
X = 1 ^ S = 0 [FAŁSZ]
X = 0 ^ S = 1 [FAŁSZ]
X = 1 ^ S = 1 [PRAWDA]
Tryb zabroniony!
LALU = 0
RALU = 0
SUMA = 0
SUMA < 256
RAE = SUMA = 0

(...)
l:=0000h\ 0

r:=0000h\ 0

aa:=0000h\ 0

TAKT=2

TAKT=5

TAKT=6

S2

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

(...)

Rozkaz piąty

LDX [Adres = 158] [OP = 9] [X = 0] [S = 1] [I = 0] [DA = 214]

X = S = 0 [FAŁSZ]
X = 1 ^ S = 0 [FAŁSZ]
X = 0 ^ S = 1 [PRAWDA]
LALU = DA = 214
RALU = LR = 158

SUMA = 372
SUMA < 256 [FAŁSZ]
Nadmiar!
SUMA = 372 – 256 = 116
SUMA < 256 [PRAWDA]
RAE = SUMA = 116

(...)
l:=00D6h\ 214 r:=009Eh\ 158 aa:=0074h\ 116
TAKT=2

TAKT=5

TAKT=6

S2

___ IRAE ___ SUMA -> RAE RAE:=0074h\ 116

(...)

Na podstawie powyższych zapisów stwierdzam że powyższy algorytm obliczania RAE jest
poprawny, wyniki teoretyczne odpowiadają wynikom otrzymanym podczas symulacji
przeprowadzonej na laboratoriach.

[12]


Wyszukiwarka

Podobne podstrony:
WDA Lab3 Sprawko, WAT, semestr III, Wprowadzenie do automatyki
sprawko z lab3 z auto by pawelekm
sprlab3PA, AGH WIMIR AiR, Semestr 3, PA, laborki, sprawko lab3 PA
t sprawko lab3
SPRAWKO ASK, WAT, SEMESTR I, AOK, LAB
AOCZEK, AOK SPRAWKO L5 6, addi
sprawko lab3 metro
sprawko z lab3 z auto by pawelekm
sprawko lab3
lab3
El sprawko 5 id 157337 Nieznany
LabMN1 sprawko
lab3 kalorymetria
Obrobka cieplna laborka sprawko
Ściskanie sprawko 05 12 2014
1 Sprawko, Raport wytrzymałość 1b stal sila
Instrukcja Lab3
lab3 6

więcej podobnych podstron