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