SKRYPT Ak1


Spis treści

1. WPROWADZENIE DO MIKROPROGRAMOWANIA 8

  1. mikroprogramowanie - rys historyczny 8

  2. Techniki mikroprogramowania 11

1.3 Charakterystyka komputera LAB-AS - - 16

2. FORMATY DANYCH I ROZKAZÓW. REJESTRY 17

21 Format danych 17

  1. Formaty rozkazów 17

  2. Rejestry i pamięć główna 19

  1. Blok pobrana rozkazu 19

  1. Blok wykonawczy 20

  2. Blok pamięci głównej 21

3. metody adresacji i lista rozkazów 24

  1. Metody adresacji.. 24

  2. LISTA ROZKAZÓW 25

  3. Definicje rozkazów , 27

  1. Rozkazy działań arytmetycznych 27

  2. Rozkazy przesłań 28

  3. Rozkazy skoku 29

  4. Operacje logiczne , , 31

  5. Rozkazy przesunięć 37

  1. JEDNOSTKA ARYTMETYCZNO-LOGICZNA ALU 35

  1. CYKLE KOMPUTERA, SYNCHRONIZACJA 38

5.1 Generator impulsów synchronizujących procesora 38

  1. podcykle generatora impulsów synchronizujących procesora 38

  2. Tryby pracy komputera LAB-AS 39

6. PAMIĘĆ STAŁA 40

6.1 Format słowa pamięci stałej 40

  1. sygnaŁy przesłań międzyrejestrowych

  2. Sygnały sterujące

  3. Jednostka pamięci stałej

  4. Warunki zmiany zawartości RAPS

  5. Testy ,

7. PRZYKŁADY MFKROPROGRAMOW...

7.1 Przykładowy mikroprogram. realizujący rozkaz ADS 52

  1. Przykładowy mi kropr ogram, realizujący rozkaz UDA.. 53

  1. Propozycje rozszerzenia listy rozkazów 54

  1. instrukcja eksploatacyjna 55

8.1 Specyfikacja narzędzi symulatora komputera LAB-AS 55

8.2 Proces symulacji dzialania komputera lab-AS 55

8.3 Edytor pamięci operacyjnej 56

8.4 EDYTOR PAMIĘCI STAŁEJ

8.5 Symulator komputera LAB-AS 62

9. WYKONANIE ĆWICZENIA 67

PRZEBIEC CWICZEŃ LABORATORYJNYCH

    1. ĆWICZENIE LABORATORYJNE NR 1. MlKROPROGRAM POBRANIA ROZKAZU

    2. ĆWICZENIE LABORATORYJNE NR 2. PRZESŁANIA I ROZKAZY ARYTMETYCZNE

0x08 graphic
1 0,3 ĆWICZENIE LABORATORYJNE NR 3. ROZKAZY SKOKU

1 0.4 ĆWICZENIE LABORATORYJNE NR 4. ROZKAZY LOGICZNE I PRZESUNIĘĆ ...

1 0.5 ĆWICZENIE LABORATORYJNE NR 5. ROZKAZY MNOŻENIA

1 0.6 ĆWICZENIE LABORATORYJNE NR 6. ROZKAZY DZIELENIA

SPIS LITERATURY...

Wykaz rysunków

Rys. 1. Schemat blokowy mikroprogramowanej jednostki sterującej wg

WlLKESA ,

Rys. 2. Brak kodowania

Rys, 3. Częściowe kodowanie... 12

rys. 4. pełne kodowanie 13

Rys. 5. Mikroprogramowanie a nanoprogramowanie, 14

Rys. 6. Format liczby 17

Rys. 7. Format zwykły rozkazu , 17

Rys. B. Format rozszerzony rozkazu 18

Rys. 9. Schemat bloku pobrania rozkazu IF 20

Rys. 10. Schemat blokowy jednostki wykonawczej E., ..21

rys. 11. schemat blokowy przepływu informacji w pamięci głównej pao 23

Rys. 12. Format słowa pamięci stałej , 40

Rys. 13. Schemat blokowy jednostki pamięci stałej (sterującej) 46

Rys. 14. Proponowana zawartość pamięci sterowania komputera LAB-as... 49

Rys, 15. Panel sterujący programu LAB-SAG 56

Rys. 16. Edytor pamięci operacyjnej PAO ...57

Rys. 17. Wprowadzanie danej 5S

Rys. 18. Wprowadzanie rozkazu w formacie zwykłym 5-

Rys. 19. Wprowadzanie rozkazu w formacie rozszepzon/ 5n

Rys. 20. Edytor pamięci sterowania PS. e^

Rys. 21. Wybór mikrooperacji z kolumny S1 l 1

Rys. 22. Wybór mikrooperacji z kolumny ALU bi

Rys. 23. Edycja zawartości rejestru RAPS 63

Rys. 24. Wykonanie mikrooperacji OLR 64

Rys. 25. Wygląd ekranu phogramu po przekroczeniu granicznej liczby

BŁĘDÓW 65

Rys. 26. Okno podglądu logu z wykonania ćwiczenia laboratoryjnego 66

TABELE

Tabela 1. Metody adresacji ,

Tabela 2. Lista rozkazów komputera LAB-AS w formacie zwykłym

Tabela 3. Lista rozkazów komputera LAB-AS w formacie rozszerzony

Tabela 4. Rozkazy arytmetyczne. ,

Tabela 5. Rozkazy przesłań

Tabela 6. Rozkazy skoku

Tabela 7. Rozkazy logiczne.

Tabela 8. Rozkazy przesunięć.

Tabela 9. Funkcje jednostki arytmetyczno-logicznej ALU

Tabela 10. Sygnały przesunięć rejestrów

Tabela 11. Sygnały sterujące kolumny S1 i D1

Tabela 12. Sygnały sterujące kolumny S2 i D2

Tabela 13. Sygnały sterujące kolumny S3 i D3

Tabela 14. Sygnały sterujące z kolumny C1

TaBela 15. Znaczenie polaD2 przy obecności w polu C1 kodu SHT

Tabela 16. Sygnały sterujące z kolumny C2

Tabela 17. Nazwy testów i ich kody oraz warunki pozytywności

WSTĘP

Celem ćwiczeń laboratoryjnych opisywanych w niniejszej "Instrukcji Laboratoryjnej" jest praktyczne opanowanie przez studentów umiejętności tworzenia miniprogramów dla komputera ze sterowaniem mikroprogramowym

Dla prawidłowego przebiegu zajęć, studenci są zobowiązani do szczególnie uważnego przestudiowania rozdziałów od 2 do S niniejszej instrukcji, zawierających opis architektury logicznej mikroprogramowanego komputera LAB-A3. W celu dokładnego zrozumienia treści tych rozdziałów wskazane jest po Ich przeczytaniu napisanie i zakodowanie kilku mikroprogramów. Jako pomoc mogą posłużyć przykłady umieszczone w rozdziale 7.

Rozdział 8 zawiera prosty opis współpracy użytkownika z programem symulującym Komputer LAB-AS, Określono w nim również zakres automatycznej oceny ćwiczących (wykonywanej przez symulator),

W rozdziale 10 opisane są tematy kolejnych ćwiczeń laboratoryjnych.

0x08 graphic
0x08 graphic
1. Wprowadzenie do mikroprogramowania

1 Mikroprogramowanie - rys historyczny

Mikroprogramowanie to technika projektowania i realizacji sterowania w komputerze, w której poszczególne rozkazy są wykonywane jaka mi kroprogramy, złożone z poleceń, zwanych mikro rozkazami, zapamiętywanych w pamięci sterowania Każdy mikrorozkaz może składać się z jednej bądź wielu mikrooperacji.

Zarys tej techniki, opracowany w drugiej połowie tat 40 podczas prac nad komputerem EDSAC (ang Electronic Delay Storage Auiomatic Calculator), został po raz pierwszy publicznie przedstawiony w 1951 roku przez M.V. WiEkesa w lipcu 1951 \ a następnie szerzej opisany w artykule M.V, Wifkesa i J.B. Stringera „Mjcroprogramming and the Desjgn oi the Controf Circuits in an Electronic Digita* Computer" ', publikowanym w 1953 roku,

WJIkes i Slringer przewidzfeii w swojej pracy podział jednostki sterującej na dwa zasadnicze bloki:

1. blok rejestrów sterowania (ang. control register unit), w tym rejestru do przechowywania adresu następnego rozkazu do wykonania (licznik rozkazów} oraz rejestru do przechowywania bieżącego, wykonywanego rozkazu (rejestr rozkazów).

2. blok sterowania sekwencją wykonywanych mikrorozkazów (ang. micro-control unit), który składa się z dekodera (angr decoding tree), dwóch matryc diodowych (ang. rectifier matrices) i dwóch dodatkowych rejestrów pomocniczych (Rys. 1),

0x08 graphic
* M.V, Wilkes, The Bgst Way to De&tgn an Autamated Gaiculating Madime, Manchesier Umv. Coniputer Inaugural Ccsif. 1951, pp. 15-18 "J Proc Cambridge Phil. Soc, pL. 2, vol. 40, April 19S3. pp, 230-33&.

0x08 graphic
1. Schemat blokowy mikroprogramowanej jednostki sterującej wg Wilkesa.

Kwadrat z literą „g" na Rys, 1 oznacza bramkę (ang. gale), odpowiednio blokującą lub przepuszczającą dany sygnał. Sekwencja impulsów sterujących {ang. control pulses) z pominiętego na rysunku generatora jest podawana na wejście dekodera Każdy impuls jest kierowany na jedną z linii wyjściowych dekodera, odpowiednio do liczby, przechowywanej w rejestrze I. Unie wyjściowa dekodera prowadzą do matrycy diodowej A, z której wyjścia stanowy sygnały sterujące bramkami, skojarzonymi z poszczególnymi mikrooperacjami. Wobec tego jedna linia wejściowa matrycy A odpowiada jednemu mikrorozkazowi. Adres mikro-rozkazu musi być umieszczony w rejestrze I w celu skierowania impulsu sterującego do odpowiednich linii sterujących. Linie wyjściowe dekodera są również, połączone z matrycą diodową B, której wyjścia są połączone z rejestrem II. W tej matrycy jest zakodowany adres następnego mi kro rozkaz u, który jest przesyłany właśnie do rejestru II. Bezpośrednio przed podaniem na wejście dekodera następnego impulsu sterującego, bramka między rejestrami I i II jest otwierana, aby przesiać z rejestru II do rejestru I adres następnego mikrorozkazu do wykonano.

Dla prawidłowego sterowania wykonywaniem sekwencji mikrorozkazów konieczne jest zapewnienie możliwości warunkowej zmiany kolejności realizowanych mikrorozkazów. Środkiem dla realizacji lego celu jest, oznaczony na Rys. 1 jako X, dwuwejściowy przerzutnik, na2ywany ,, przerzutnikiem warunkowym'' {ang. conditional (lip-ilop). Jest on umieszczony między matrycami A i B i może być ustawiony przez wcześniejszy mikrorozkaz na podstawie zawartości wybranego rejestru. Z tego przerzutnika do matrycy B wiodą dwa osobne wyjścia, tworzące dwa osobne adresy następnych mikrorozkazów, z których jeden będzie przekazany do rejestru II, co daje możliwość warunkowej zmiany kolejności wykonywanych mikrorozkazów.

Zespół pracowników Cambridge Universily opracował w 1957 roku pierwszy w świecie mikroprogramowany komputer, EDSAC2, w którym zastosowano macierz o wymiarach 8x6 elementów, zbudowaną z rdzeni magnetycznych. Jednak trudności technologiczne, napotkane przy budowie szybkich pamięci mikroprogramów spowodowały, ze do końca lat 50 mikroprogramowanie nie miało szans na skuteczną rywalizację ze sterowaniem układowym. Prace, prowadzone w laboratorium IBM w Hursley w Wielkiej Brytanii pod kierunkiem Johna Fairclougha, doprowadziły jednak do przyjęcia przez projektantów IBM pomysłu realizacji sterowania za pomocą tej nowe techniki w komputerach IBM SystenV3G0 Za wyjątkiem dwóch początkowych modeli M75 i M95, następne tzn. M30, M40, M50 i M65 były mikroprogramowane. Rozmiary pamięci mikroprogramów wynosiły od 4 (dla modelu M30) do 2.75 {dla modelu M65) Ksłów, o szerokości odpowiednio od 50 do 87 bitów. Czasy cyklu pamięci sterowania malały od 750 do 200 ns, podczas gdy czasy cyklu pamięci głównych malały odpowiednio od 1500 do 750 ns"1. Za ciekawostkę można uznać fakt. iz Model 25 serii Sysiem/360 i późniejsze modele System/370 były wyposażone w co najmniej jeden fragment zapisywalnej pamięci sterowania, dla zapisu poprawek kodu i umożliwienia mikrodiagnostyki. Tak naprawdę IBM w/nalazł 8-calową dyskietkę i odpowiedni napęd dla ulepszenia dystrybucji poprawek mikrokodu do swoich komputerów: dyskietka taka została po raz pierwszy zastosowana w IBM System/370 Model 145, który posiadał zapisywalną pamięć sterowania (ang. wrilable control storę, WCS] o rozmiarze 16 Kslów 32-bitowych Późniejsze przykłady maszyn mikroprogramowanychto DEC PDP-11 (za wyjątkiem PDP-11/20), DEC VAX 11/780, Intel 8080, Zilog Z80, Intel 8086, Motorola MC68000, Motorola MC6B02O. Bardziej współczesne procesory, stosowane w komputerach klasy PC, jak Intel Penlium II, Pentium 4 czy AMD K6-2, również stosują pewną formę mikroprogramowania -proste rozkazy, składające się zwykle z kilku mikrooperacji (nazywanych uops bądź Rops), są realizowane przez bezpośrednie generowanie przez dekodery właściwych sygnałów sterujących. Dopiero bardziej złożone rozkazy są realizowane jako sekwencje makroinstrukcji, pobieranych z pamięci sterowania'. Należy jednak wspomnieć, ze współczesne procesory RISC są bez wyjątku sterowane nie mikroprogramowo, ale sprzętowo (układowo).

1.2 Techniki mikroprogramowania

0x08 graphic
Każda mikrooperacja, występująca w mikrorozkazie może powodować:

  1. przesłanie zawartości wybranego rejestru na magistralę;

  2. wykonanie operacji przez jednostkę a rytm etyczno-logiczną;

  3. przestanie zawartości magistrali lub stałej do wybranego rejestru;

  4. rozpoczęcie lub zakończenie określonego działania przez inny element komputera (np. rozpoczęcie cyklu odczytu z pamięci operacyjnej)

Każdy mikrorozkaz może składać się z co najmniej dwóch rodzajów pól. pola, zawierającego informację o niezbędnych sygnałach sterujących i pola, zawierającego informację o adresie następnego mikrorozkazu do wykonania. Informacje te muszą być zorganizowane w sposób umożliwiający zarówno efektywne wykorzystanie pamięci sterowania, jak i odpowiednią szybkość dekodowania.

Możliwe są trzy sposoby kodowania;

brak kodowania: każdy bit mikrorozkazu steruje bramka lub grupą bramek,

  1. Rys. 2;

  2. częściowe kodowanie, poszczególne bity mikrorozkazu są połączone w grupy,
    każda grupa, dekodowana przez osobny dekoder, steruje innymi elementami
    komputera, (Rys. 3);

3. pełne kodowanie: jeden, ogólny dekoder (Rys. 4).

0x01 graphic

rys. 3

Rozwiązanie, w którym każdy bit (pole sterujące) określa jedną mikrooperację do wykonania, określa się mianem mikroproaramowania_poziomego (ang, horizontal microprogramrning). Zaletą tego rozwiązania fest możliwość wykorzystania równoległej pracy podzespołów (można nimi sterować niezależnie), oraz duża szybkość - nie występują stopnie pośrednie - dekodery. Ponieważ jednak zwykle wdanym (akcie niewiele podzespołów komputera pracuje równoległy wiele bitów pamięci sterowania zawiera zera - powoduje to niewielki stopień wykorzystania pamięci sterowania, a w rozwiązaniu tym z reguły występuje długie słowo mikrorozkazu.

Drugim typowym rozwiązaniem jest mikroproaramowanie pionowe (ang. vertical microprogramming), w którym mikrorozkaz jest podzielony na zakodowane pola sterujące, z których każde wymaga dekodera i steruje niezależnym zbiorem bramek. Rozwiązaniem skrajnym jest tu występowanie tylko jednego pola sterującego i wtedy dla zakodowania n sygnałów sterujących można użyć jedynie log2n bitów w mikrorozkazie. Powoduje to skrócenie słowa mikrorozkazu, a więc; oszczędność pamięci, ale wiąże się z wydłużeniem czasu generacji sygnałów sterujących, gdyż zachodzi konieczność zdekodowania poszczególnych pól sterujących mikrorozkazu. Komplikuje się budowa jednostki sterującej, ponieważ potrzebne są dodatkowe dekodery. Mniejsza jest tu również możliwość wykorzystania równoległości działania poszczególnych bloków funkcjonalnych komputera.

Rozwiązaniem pośrednim, w którym występują zarówno elementy mikroprogramowania poziomego, jak i pionowego jest nanoprogramowanie, użyte na przykład w minikomputerze Nanodata QM-1, który został udostępniony użytkownikom bez własnej listy rozkazów: był reklamowany jako riuniversal emulation engme" lub „user-microprogrammable compuler". Przy okazji należy wspomnieć, że termin emulacja oznacza interpretację poszczególnych rozkazów danego komputera za pomocą sekwencji mikrorozkazów, tworzących mikroprogramy, odpowiadające treści tych rozkazów. Pokrewny, ale często mylony termin symulacja oznacza w organizacji komputerów interpretację rozkazów jednego komputera za pomocą sekwencji rozkazów drugiego komputera.

Rys, 5. Mikroprogramowanie a nanoprogramowanie.

Jeśli słowo pamięci sterowania ma w bitów, a zapisanych jest n mikrorozkazów, pamięć sterowania musi mieć w * n bilów. Jeśli jednak tylko m mikrorozkazów we wszystkich, realizowanych mikroprogramach jest unikalnych, można do ich

zapamiętania użyć mniejszei nanopamięci, o rozmiarach m ' w. Każdy mikrorozkaz w oryginalnej pamięci może być zastąpiony adresem tego słowa w nanopamięci. które przechowuj ten mikrorozkaz. Ponieważ w nanopamięci jest tylko m słów, szerokość słowa pamięci adresów musi wynosić jedynie k = iog2 m, zaokrąglone oczywiście w razie konieczności w górę do liczby całkowitej. Działania takiej pamięci można opisać następująco: rozkaz maszynowy, a konkretnie kod operacji ewentualnie pola trybów adresowania są użyte do wyznaczenia adresu słowaw pamięci adresów. Wybrane słowo tej pamięci wskazuje na „nanorozkaz", który jestładowany do odpowiedniego rejestru, dla wygenerowania sygnałów sterujących Po zakończeniu wykonywania bieżącego rozkazu maszynowego cykl jest powtarzany.

Przykład 1

Niech początkowo wszystkie mikroprogramy, realizujące listę rozkazów danego komputera są przechowywane w pamięci sterowania złożonej z 4D96 komórek 100-bitowych. Po analizie mikrozkazów zapisanych w tej pamięci, znaleziono jedynie 128 różnych mikrorozkazów. Wobec tego pamięć adresów będzie miała 4096 stów 7-bitowych (27 = 128), a pamięć nanoprogramów 128 słów 100-bitowych. Stosując

nanoprogramowanie, zaoszczędzono

(4096 * 100} - [ (4096 * 7) + (128 * 100) = 409 600- (28 672 + 12800) = 368128

bitów pamięci sterowania.

Zasadniczą wadą nanoprogramowania jest dłuższy w porównaniu

mikroprogramowaniem czas wykonania — dwa poziomy pamięci sterowania to dwa dostępy do tych pamięci, które nie mogą zachodzić na siebie w czasie.

1.3 Charakterystyka komputera LAB-AS

LAB-AS jest komputerem jednoadresowym, 16-bitowym, ze sterowaniem mikroprogramowym. Jego pamięć operacyjna PAO składa się z 256 słów 16-bitowych Pamięć stalą'' PS zawiera 256 stów 48-bitowych. Próba odwołania się do wyższych adresów pamięci operacyjnej niż 255, spowoduje wymuszenie przez sterowanie, w rejestrze adresowym pamięci RAP, adresu = (RAP MOD 256). Pamięć operacyjna wymaga regeneracji '.

  1. Termin pamięć stała odnosi się do bloku pamięci, w którym przechowywane są mikroprogramy

  2. Regeneracja pamięci to proces wymagający realizacji operacji odczytu z każdej komórki pamięci co określony kwant czasu, niezależnie od aktualnych żądań na magistrali adresowej. Operacja ta jest realizowana przez blok MMU (ang Memory Management Unit).



Wyszukiwarka

Podobne podstrony:
06 pamięć proceduralna schematy, skrypty, ramyid 6150 ppt
geodezja satelitarna skrypt 2 ppt
Mój skrypt 2011
Mechanika Techniczna I Skrypt 2 4 Kinematyka
MNK skrypt
bo mój skrypt zajebiaszczy
praktyka skrypt mikrobiologia id 384986
Leki przeciwbakteryjne skrypt
Patrologia Ćwiczenia Skrypt
Mechanika Techniczna I Skrypt 4 2 4 Układ belkowy złożony
Biochemia skrypt AGH
Prawo publiczne gospodarcze, Skrypt 2015
jezyk C skrypt cz 1
kontrola skrypt
eb1 zadania ze skryptu

więcej podobnych podstron