Architektura Systemów Komputerowych - Instrukcja do laboratorium nr 5
Autor: Mariusz Wiśniewski


  1. Architektura systemu komputerowego - model RTL
    Mikroprocesor jest układem sekwencyjnym składającym się z bloków funkcyjnych. Typowy układ mikroprocesora zawiera następujące elementy:
    • układ pobierający instrukcje,
    • układ sterujący (wykonujący instrukcję),
    • układ arytmetyczno-logiczny,
    • blok uniwersalnych rejestrów,
    • blok akumulatora,
    • układy sterujące przepływem danych na magistralach.

    Pomiędzy poszczególnymi blokami występują ściśle określone zależności. Każdy z bloków posiada odpowiednie wejścia i wyjścia oraz linie sterujące. Komunikacja między blokami odbywa się z użyciem sygnałów elektrycznych, których wartość jest oznaczana następująco:
    1, H - logiczny stan wysoki, odpowiada przepływowi prądu elektrycznego,
    0, L - logiczny stan niski, odpowiada brakowi przepływu prądu elektrycznego.
    Wymienione stany logiczne służą do kodowania wartości cyfrowych i odpowiadają jednemu bitowi danych. Należy to rozumieć w taki sposób, że mający jedno wejście układ jest w stanie zakodować 1 bit informacji, więc wartość 0 lub 1, natomiast układ mający 8 wejść potrafi zakodować 28 informacji (każda linia może pracować w dwóch stanach, linii jest 8).

    Mikroinstrukcją nazywa się niepodzielną operację, która jest wykonywana przez mikroprocesor. Najczęściej jest to wzbudzenie jednego z bloków funkcyjnych mikroprocesora. Rozkazy mikroprocesora są zbudowane z jednej lub wielu mikroinstrukcji, które są wykonywane w odpowiednich cyklach pracy danego mikroprocesora. Poniżej został przedstawiony układ rejestrów i sumator oraz mikrooperacje jakie można wykonać przy pomocy tego układu.



    Założenia:
    • Multiplekser jest przekaźnikiem, działa natychmiastowo,
    • Rejestr na wyjściu stale generuje pamiętaną wartość, podczas narastającego zbocza zegara i przy wartości LD=1 następuje zapamiętanie w rejestrze danych znajdujących się na wejściu.
    • Sumator działa natychmiastowo i ma dwa wejścia.

    Poniżej zostały przedstawione przykładowe operacje oraz mikrooperacja właściwe dla danego rozkazu:
    1. A = WE
         t0: ADR1=0, ADR2=0
         t1: LDA=1

    2. B = WE
         t0: ADR1=0, ADR2=1
         t1: LDB=1

    3. A = A+B
         t0: ADR3=1
         t1: LDRwy=1
         t2: ADR1=1, ADR2=0
         t3: LDA=1

  2. Zadania do samodzielnego wykonania

    Zadania należy wykonać dokładnie tak, jak to zostało zrobione w punkcie 1 instrukcji.

    1.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: B = A+B,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, C = WE, D = WE, WY=A, WY=B, WY=C, WY=D, A=A+B, C=D+A,
      gdy jest dostępny jeden sumator.
    2.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: A = WE+B,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, WY=A, WY=B, A=A+B, B=2*B,
      gdy jest dostępny jeden sumator, a rejestry są połączone w blok i mają wspólne wejście i wyjście (zrealizowane przy pomocy multiplekserów).
    3.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: B = WE+B,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, WY=A, WY=B, A=B, B=A, A=2*A,
      gdy dostępny jest jeden sumator, a rejestry są połączone w blok i mają wspólne wejście i wyjście (zrealizowane przy pomocy multiplekserów).
    4.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: WY = A+B,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, C = WE, WY=A, WY=B, WY=C, A=A+B+C,
      gdy dostępny jest jeden sumator.
    5.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: WY = WE+B,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, C = WE, D = WE, WY=A, WY=B, WY=C, WY= D, A=2*B, C=3*D, D=4*A,
      gdy dostępny jest jeden sumator.
    6.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: WY = B, B = WE,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, C = WE, WY=A, WY=B, WY=C, A=A+2*B, B = B+2*C,
      gdy dostępny jest jeden sumator.
    7.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: A = 2*B,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, WY=A, WY=B, A=2*A+2*B, B=3*A+3*B,
      gdy dostępny jest jeden sumator.
    8.
    1. Wyznaczyć dla układu z instrukcji mikrooperacje dla rozkazu: B=WE+A,
    2. Zaprojektować układ realizujący operacje:
      A = WE, B = WE, C = WE, WY=A, WY=B, WY=C, A=2*B+3*C, B = 5*C,
      gdy dostępny jest jeden sumator.