- •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
Składniki komputera zawierające informację o stanie komputera
- składniki 10 i 11 zawierają informacje o sterowaniu wyjątkami,
- gałąź składnika 1 oznaczona Op=other wskazuje na następny stan gdy pole opcode instrukcji jest inne niż
w pozostałych gałęziach,
- gałąź składnika 7 oznaczona Overflow wskazuje jaka akcja zostanie podjęta gdy ALU sygnalizuje
przepełnienie.
2.Żądanie pobrania informacji z I/o
Wykonywanie programu użytkownika zazwyczaj wymaga korzystania z urządzeń wejścia i wyjścia, na przykład dysku. Pośrednikiem między procesorem a I/O jest system operacyjny. Musi się to odbywać za pośrednictwem systemu operacyjnego, który zarządza pracą wszystkich urządzeń. Aby procesor mógł wykonać jakąś operację I/O musi sprawdzać co pewien czas czy urządzenie zakończyło operację zleconą wcześniej. Ponieważ procesor wykonuje wiele programów i jest o wiele szybszy niż urządzenia I/O to takie oczekiwanie może trwać wiele cykli zegara i w tym czasie procesor wielokrotnie sprawdza stan urządzenia. Taki mechanizm kontaktowania się procesora z I/O powoduje marnowanie czasu procesora. Można go uniknąć wykorzystując mechanizm przerwania. Jeżeli urządzenie I/O chce zawiadomić procesor, że zakończyło jakąś operację lub, że wymaga ingerencji procesora to wywołuje przerwanie dotychczasowych czynności procesora. Informacja o tym, które urządzenie I/O wywołało przerwanie zostaje umieszczona w rejestrze przyczyn. Dzięki temu, gdy system operacyjny przejmuje kontrolę to już wie, które z urządzeń I/O wymaga jego interwencji i odpowiedniego działania. Dzięki zastosowaniu mechanizmu przerwań procesor unika częstego sprawdzania stanu urządzeń I/O, a zaoszczędzony czas zostaje przeznaczony na wykonywanie programu. Więcej informacji na temat organizacji urządzeń I/O znajduje się w następnej części.
Przetwarzanie potokowe (pipelining)
Jest to technika wykonywania programu polegająca na tym, że w tej samej chwili wykonywane są więcej niż jedna instrukcji. Jej celem jest globalne skrócenie czasu wykonania programu. Poprzednio omawiany, klasyczny sposób wykonywania instrukcji MIPS składał się z kolejno po sobie następujących krokach:
- pobranie instrukcji z pamięci,
- odczytanie rejestrów z równoczesnym dekodowaniem instrukcji,
- wykonanie operacji lub obliczenie adresu,
- pobranie (Access) operandu z pomięci danych,
- zapisanie wyniku w rejestrze.
Zatem potok MIPS składa się z 5 etapów. Tabela podaje czasy trwania każdego z nich dla kilku wybranych instrukcji. (slt = set less then, beq = branch on equal)
Instrukcja |
Pobranie instrukcji |
Odczytanie rejestru |
Operacja ALU |
Dostęp do danych |
Zapisanie w rejestrze |
Suma |
loadword (lw) |
200 |
100 |
200 |
200 |
100 |
800 |
storeword (sw) |
200 |
100 |
200 |
200 |
|
700 |
add, sub,and,or,slt |
200 |
100 |
200 |
|
100 |
600 |
branch (beq) |
200 |
100 |
200 |
|
|
500 |
