
- •III Procesor główny
- •Schemat przepływu danych w cpu
- •Najprostszy system połączeń
- •Numery, wartości I adresy kolejnych wyrazów szeregu
- •Instrukcją komplementarną do load jest instrukcja store, której nazwa w mips jest sw (store word). Służy do zapisywania danych w pamięci, a jej format jest taki sam jak instrukcji lw.
- •Potok (strumień) (ang. Flowchart) czynności, które powinna wykonać instrukcja
- •Instrukcja iteracji
- •Inna trudność związana z procedurami w mips jest powodowana przez konieczność umieszczania na stosie zarówno liczb jak I bardziej złożonych struktur danych, na przykład ciągów liczbowych.
- •Operandy mips
- •Instrukcje języka asembler
- •Schemat ilustrujący realizację zbioru instrukcji mips
- •Poprzedni schemat uzupełniony o niektóre linie I urządzenia systemu sterowania
- •1.Nieznana instrukcja lub przepełnienie
- •Składniki komputera zawierające informację o stanie komputera
- •2.Żądanie pobrania informacji z I/o
- •Czasy w pikosekundach (10-9s) trwania każdego z etapów wybranych instrukcji
Schemat ilustrujący realizację zbioru instrukcji mips
Rysunek przedstawia przykład datapath dla architektury MIPS. Wykonanie każdej instrukcji rozpoczyna się od PC (licznika programu), który podaje adres instrukcji w pamięci przechowującej instrukcje. Po pobraniu instrukcji i odczytaniu jej pól wiadomo, z których rejestrów należy pobrać adresy danych. Z kolei po odczytaniu informacji z rejestrów znane stają się adresy danych, na których mają być wykonane operacje arytmetyczne albo operacje porównania.
Jeżeli to była instrukcja arytmetyczno-logiczna wynik z ALU musi zostać wpisany do rejestru. Jeżeli była to instrukcja odczytu to wynik z ALU jest wykorzystany jako adres w celu przeniesienia liczby z pamięci do rejestru, a jeśli była to instrukcja zapisu wynik jest wykorzystany do przeniesienia liczby z rejestru do pamięci. W każdym wypadku dane wychodzące z ALU lub pamięci zostają zapisane powrotem do rejestrów.
Jeżeli natomiast była to instrukcja porównania to wyjście z ALU określa adres następnej instrukcji. Adres pochodzi albo z ALU jako suma zawartości licznika programów i ofsetu albo z sumatora, który powiększa wartość licznika o 4.
Grubsze linie na rysunku reprezentują magistrale, strzałki ułatwiają orientację o kierunku przepływu informacji, kropki oznaczają punkty przecięcia linii.
Poprzedni schemat uzupełniony o niektóre linie I urządzenia systemu sterowania
Jednostka sterująca stanowi najtrudniejszy w projektowaniu i realizacji składnik CPU. Zarówno jeśli chodzi o poprawność jak i o szybkość działania.
Przerwania (wyjątki)
Jednym z najtrudniejszych do realizacji zadań jednostki sterującej jest reagowanie na wszystkie (oprócz rozgałęzień i skoków) zdarzenia przerywające normalny przebieg procesu wykonywania instrukcji.
W nazewnictwie takich zdarzeń panuje zamieszanie, są różnice poglądów na to, które zdarzenia nazwać wyjątkiem, a które przerwaniem. W architekturze MIPS wyjątkiem jest każde nieoczekiwane zdarzenie mające przyczynę wewnątrz procesora, a przerwaniem jest zdarzenie spowodowane działaniem czynników znajdujących się poza procesorem.
typ zdarzenia |
przyczyna |
nazwa w MIPS |
żądanie z I/O |
zewnętrzna |
przerwanie |
wywołanie syst. oper. |
wewnętrzna |
wyjątek |
przepełnienie arytmetyczne |
wewnętrzna |
wyjątek |
wywołanie nieznanej instr. |
wewnętrzna |
wyjątek |
wadliwe działanie sprzętu |
wewn. /zewn. |
wyjątek/przerwanie |
CPU musi posiadać mechanizmy wykrywania i reagowania na pojawienie się wyjątku lub przerwania. Mechanizmy te zależą od typu zdarzenia, zwrócimy uwagę na dwie grupy zdarzeń.
1.Nieznana instrukcja lub przepełnienie
Pierwsze czynności, które wykonuje MIPS to zapisanie adresu instrukcji powodującej wyjątek w rejestrze o nazwie licznik wyjątków programu (Exception Program Counter) i przekazanie sterowania do systemu operacyjnego na przeznaczony do takiego celu adres. W MIPS odbywa się to przez wywołanie specjalnej instrukcji ‘syscall’ (‘system calling’), od tej chwili procesor przechodzi w tryb nadzoru. System operacyjny podejmuje działania przewidziane na okoliczność powstałego wyjątku. Może to być wskazanie usterki w programie użytkownika (service to the user program), akcja na wypadek przepełnienia lub zatrzymanie wykonywania programu i komunikat o błędzie. Następnie system operacyjny może zakończyć program lub kontynuować jego wykonanie korzystając z informacji w EPC o miejscu, w którym należy ponowić wykonywanie programu. Powrót do wykonywania programu użytkownika następuje po wywołaniu specjalnej instrukcji ERET (Exception Return), która kończy tryb nadzoru i wskazuje adres zapisany w rejestrze EPC, od którego należy ponowić wykonywanie programu użytkownika.
Aby system operacyjny reagował poprawnie musi rozpoznać (oprócz instrukcji) również przyczynę powstania wyjątku. W architekturze MIPS informacje o możliwych przyczynach zawarte są w jednym z pól rejestru Przyczyn (Cause Register) .