OAK. Komputer sterowany układowo

Transkrypt

OAK. Komputer sterowany układowo
OAK. Komputer sterowany układowo
Rejestr bity nazwa
DR
8
Data register
AR
8
Address register
AC
8
Accumulator
IR
8
Instruction reg.
PC
8
Program counter
TC
3
Timing register
Memory = 256 * 8 (bajt)
funkcja
Przechowywanie danych programu
Zawiera adres operanda
Rejestr procesora
Zawiera kod operacji
Zawiera adres instrukcji
Sequence register (steruje taktami)
PC
DR
AR
AC
IR
Operation
decoder
D1-D8
Timing
decoder
T0-T7
Control
logic
gates
Control
outputs
TC
T0: DR  M[PC]
Pobranie rozkazu przy Timingu 0
T1: IR  DR; PC  PC + 1 Te operacje wykonują się współbieżnie przy timingu 1
TC  0;
Powoduje reset timingu
Wszystkie operacje są synchronizowane wspólnym zegarem.
Przesłanie do rejestru IR kodu rozkazu powoduje ustawienie D1, ..., D6 według binarnego
kodu operacji 000001, ..., 000110.
Dalsze timingi T2, T3, T4, ..., sterują wykonaniem cząstkowych operacji.
Dane z pamięci zawsze trafiają do rejestru DR (data register).
Ogólne zasady pisania mikroprogramów tego komputera.
1. Każdy rozkaz jest wykonywany w skończonej ilości taktów: T0, T1, T2, ..., Tn.
2. W mikroprogramach wolno używać wyłącznie operacji wymienionej w poprzedniej
tabelce.
3. Zapis DiTj określa warunek: kiedy wykonujemy rozkaz Di w takcie Ti.
4. W ramach każdego taktu mogą być wykonywane tylko te instrukcje, które działają na
różnych rejestrach.
5. W ostatnim takcie jest wykonywana instrukcja: TC  0.
6. Każdy rozkaz jest wykonywany wtedy, gdy zmienna Di, odpowiadająca kodowi
rozkazu, jest ustawiona na 1,.
7. Pierwsze dwa takty realizowane przez każdy rozkaz tego komputera oznaczają
wykonanie następujących operacji:
T0: DR  M[PC]
T1: IR  DR; PC  PC + 1
i muszą być zapisane w rozwiązaniu.
8. Jeżeli w danym takcie Ti jest wykonana mikrooperacja DR  M[PC], to w
następnym takcie musi być wykonana mikrooperacja PC  PC + 1.
Zadania.
1.
Zamiana rozkazu
na rozkaz
AC  AC + OPRD
AC  AC + M[ADRS]
ADI OPRD
ADD ADRS
D4
D4T2: DR  M[PC]
D4T3: AR  DR; PC  PC + 1
D4T4: DR  M[AR]
D4T5: AC  AC + DR; TC  0
2.
3.
4.
5.
6.
Zamiana rozkazu
na
ADI OPRD
ADM ADRS
AC  AC + OPRD
M[ADRS]  AC + M[ADRS]
Zamiana rozkazu
na
LDI OPRD
LDM ADRS
AC  OPRD
AC  M[ M[ADRS] ]
Zamiana rozkazu
na
STA ADRS
STM ADRS
M[ADRS]  AC
M[ M[ADRS] ]  AC
Zamiana rozkazu
na
INP
INPUT ADRS
AC  INR
M[ADRS]  INR
Zamiana rozkazu
na rozkaz
ADI OPRD
SUB OPRD
AC  AC + OPRD
AC  AC – OPRD
D4
D3
D6
D7
D4
Wskazówka: AC – OPRD = –(–AC + OPRD).
7.
8.
9.
Zamiana rozkazu
na rozkaz
ADI OPRD
SUBM ADRS
Zamiana rozkazu
na
ADI
OPRD
MSUB ADRS
Zamiana rozkazu INA
na
SUBA
Wskazówka: AC = – (–AC)
AC  AC + OPRD
AC  AC – M[ADRS]
D4
AC  AC + OPRD
M[ADRS]  AC – M[ADRS]
AC  AC + 1
AC  AC – 1
D1
D4