BUDOWA I DZIAŁANIE MIKROPROCESORA I. Budowa mikroprocesora 1. Schemat blokowy mikroprocesora 2. Jednostka arytmetyczno-logiczna 3. Rejestry a) Rejestry mikroprocesorów Zilog Z80 i Intel 8086 b) Typy rejestrów c) Wykorzystanie stosu 4. Układ sterowania 5. Magistrale II. Działanie mikroprocesora 1. Cykl rozkazowy mikroprocesora 2. Tryby adresowania 3. Wymiana danych z urządzeniami zewnętrznymi a) Operacje ze sprawdzaniem gotowości urządzeń b) Wymiana z przerwaniami c) Wymiana z bezpośrednim dostępem do pamięci (DMA) 4. Tryby pracy 5. Procesory w komputerach personalnych
BUDOWA MIKROPROCESORA Mikroprocesor jest centralnym elementem systemu komputerowego wykonanym w postaci układu scalonego. Wykonuje on operacje arytmetyczne i logiczne na pobranych z zewnątrz (z innych bloków systemu komputerowego) danych według zadanego programu. Mikroprocesor jest układem sekwencyjnym synchronicznym µp wykonuje operacje na słowach. Słowo elementarna jednostka informacji przesyłana pomiędzy zespołami µp; długość słowa 4, 8, 16, 32, 64 bity Produkowane µp różnią się znacznie strukturą logiczną (organizacyjną). Zawierają jednak pewne, powtarzające się (podstawowe) podzespoły: arytmometr (jednostka arytmetyczno logiczna, ALU); rejestry (układy pamięci); wewnętrzne szyny łączące magistrale; układ sterowania i synchronizacji.
Schemat blokowy mikroprocesora Większość mikroprocesorów zawiera następujące podzespoły: jednostkę arytmetyczno-logiczną ALU akumulator A licznik rozkazów PC zestaw rejestrów roboczych R i dostępnych programowo niedostępnych programowo rejestr rozkazów IR wskaźnik stosu SP układy sterowania CU magistralę danych magistrale adresową magistralę sterującą
Jednostka arytmetyczno-logiczna ALU Blok arytmetyczno-logiczny (ALU) - układ realizujący zaprogramowane operacje arytmetyczne i logiczne, takie jak: suma logiczna, iloczyn logiczny, różnica symetryczna (suma modulo dwa), negacja słowa (uzupełnienie do 1), dodawanie arytmetyczne (binarne, dziesiętne), odejmowanie, porównywanie, przesunięcie słowa w lewo i w prawo o jeden bit. ; warunkuje moc obliczeniową µp W trakcie wykonywania operacji arytmetycznych ALU tworzy znaczniki wyniku zwane flagami zapisując je w rejestru stanu (znaczników). Ich analiza pozwala programowi wychwycić sytuacje anormalne Rozkazy mogą dotyczyć operacji dwuargumentowych: operacji arytmetycznych (dodawanie i odejmowanie) operacji logicznych (sumowanie mnożenie, sumowanie mod 2, itp.) operacji jednoargumentowych (np. negowanie bitów lub przesuwanie zawartości rejestrów) ALU jest funkcjonalnie powiązane z jednym z rejestrów roboczych - akumulatorem
Dostępne programowo rejestry procesora I8086 FLAGS AX BX CX DX SI DI BP SP IP CS 15 0 15 7 0 AH BH CH DH AL BL CL DL Rejestr stanu(flagowy) Akumulator Rejestr bazowy Rejestr zliczający Rejestr danych Rejestr indeksowy źródła Rejestr indeksowy przeznaczenia Wskaźnik bazy Wskaźnik stosu Rejestr programu Rejestry ogólnego przeznaczenia Rejestry wskaźnikowe i indeksowe Licznik rozkazów Rejestry podstawowe Wszystkie te rejestry można traktować jako pary rejestrów 8-bitowych z niezależnym dostępem do części mniej (low) oraz bardziej znaczącej (high). Poszczególne rejestry przyjmują wtedy nazwy: AL, AH, BL, BH, CL, CH, DL, DH. Taka organizacja rejestrów pozwala na wykonywanie w prosty sposób zarówno operacji 8-bitowych, jak i 16-bitowych. Dla wielu rozkazów szczególną funkcję pełni akumulator AX (lub AL). Rozkazy wykorzystujące rejestr AX (w przeciwieństwie do rozkazów wykorzystujących pozostałe rejestry) mają zwarty kod, a czas ich wykonania jest najkrótszy. DS ES Rejestr danych Rejestr dodatkowy Rejestry segmentowe SS Rejestr stosu
Dostępne programowo rejestry procesora I8086 FLAGS AX BX CX DX SI DI BP SP IP CS DS ES SS 15 0 15 7 0 AH BH CH DH AL BL CL DL Rejestr stanu(flagowy) Akumulator Rejestr bazowy Rejestr zliczający Rejestr danych Rejestr indeksowy źródła Rejestr indeksowy przeznaczenia Wskaźnik bazy Wskaźnik stosu Rejestr programu Rejestr danych Rejestr dodatkowy Rejestr stosu Rejestry ogólnego przeznaczenia Rejestry wskaźnikowe i indeksowe Licznik rozkazów Rejestry segmentowe Mikroprocesor 8086 posiadają dwa rejestry wskaźnikowe i dwa indeksowe - wszystkie 16-bitowe. Mogą być one wykorzystane jako argumenty większości rozkazów arytmetycznych i logicznych. SP jest to rejestr wskaźnikowy stosowany do adresowania danych w obrębie wydzielonego obszaru pamięci, zwanego segmentem stosu Rejestr SP jest modyfikowany przy standardowych operacjach prowadzonych z wykorzystaniem stosu. Rejestr BP podobnie jak rejestr bazowy BX może być źródłem jednego ze składników (adresu bazowego) adresu efektywnego. Bywa też wykorzystywany podczas operacji niestandardowych np. przy pobieraniu parametrów przekazywanych przez stos. Oba rejestry indeksowe SI, DI mogą wchodzić w skład sumy dającej w wyniku adres efektywny, z tym że po wykonaniu rozkazu wykorzystującego indeksowany tryb adresacji podlegają automodyfikacji (zwiększeniu/zmniejszeniu o jeden lub dwa).
Dostępne programowo rejestry procesora I8086 FLAGS AX 15 0 15 7 0 AH AL Rejestr stanu(flagowy) Akumulator BX CX BH CH BL CL Rejestr bazowy Rejestr zliczający Rejestry ogólnego przeznaczenia DX SI DI BP SP DH DL Rejestr danych Rejestr indeksowy źródła Rejestr indeksowy przeznaczenia Wskaźnik bazy Wskaźnik stosu Rejestry wskaźnikowe i indeksowe Rejestr IP (instruction pointer) łącznie z rejestrem segmentowym CS adresuje kolejne rozkazy przeznaczone do wykonania. IP CS Rejestr programu Licznik rozkazów IP wskazuje adres względem początku segmentu programu (offset). DS ES Rejestr danych Rejestr dodatkowy Rejestry segmentowe SS Rejestr stosu
Dostępne programowo rejestry procesora I8086 FLAGS AX BX CX DX SI DI BP SP IP CS DS ES SS 15 0 15 7 0 AH BH CH DH AL BL CL DL Rejestr stanu(flagowy) Akumulator Rejestr bazowy Rejestr zliczający Rejestr danych Rejestr indeksowy źródła Rejestr indeksowy przeznaczenia Wskaźnik bazy Wskaźnik stosu Rejestr programu Rejestr danych Rejestr dodatkowy Rejestr stosu Rejestry ogólnego przeznaczenia Rejestry wskaźnikowe i indeksowe Licznik rozkazów Rejestry segmentowe Rejestry segmentowe wykorzystywane są do adresowania pamięci operacyjnej. Pamięć o maksymalnej wielkości 1 MB jest dzielona na logiczne segmenty nie większe niż 64kB. Adresy wewnątrz segmentu są co najwyżej dwubajtowe i mogą być generowane przez 16-bitowe rejestry np. SI, DI, BP, SP. Rejestry segmentowe zawierają adresy początkowe segmentów CS (code segment register) - rejestr segmentowy programu wskazuje segment programu, z którego aktualnie są pobierane kolejne rozkazy do wykonania DS (data segment register) - rejestr segmentowy stosu wskazuje segment, w którym są zapamiętane zmienne używane w programie ES (extra segment register) - rejestr segmentowy dodatkowy wskazuje dodatkowy segment danych SS (stack segment register) - rejestr segmentowy stosu wskazuje segment pamięci, w którym jest zdefiniowany stos.
Rejestry rejestr znaczników flagowych 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF Rejestr znaczników (flagowy) - rejestr przeznaczony do przechowywania dodatkowych cech wyniku operacji (np. znak, przekroczenie zakresu, znak parzystości,...) w postaci tzw. flagi (znacznika). Każdy znacznik jest bitem w rejestrze, który wskazuje czy określony stan wystąpił. Znaczniki mogą być wykorzystywane przez procesor lub programistę na dwa sposoby: ustawienie znacznika dla zapamiętania określonego stanu po wykonaniu rozkazu testowanie znacznika celem umożliwienia decyzji o sposobie dalszego postępowania (przetwarzania danych) Znaczniki stanu: Znaczniki CF - flaga kontrolne: przeniesienia lub pożyczki, ustawiana przy przekroczeniu zakresu długości słowa, TF- znacznik w którym pracy zapisywany krokowej jest - ustawienie wynik (1 1 wystąpiło pozwala przeniesienie) na wykonanie przez procesor po PF wykonaniu - flaga parzystości każdego rozkazu (1) wskazuje przerwania na parzystą i przejście lub nieparzystą do specjalnych liczbę procedur bitów o obsługi wartości jedynki IF- znacznik zezwolenia na przerwanie - ustawienie 1 powoduje odblokowanie systemu AF przerwań - flaga w przeniesienia procesorze pomocniczego (0 - procesor ignoruje jest wykorzystywana przerwania) przy działaniach na liczbach DF - znacznik w kodzie kierunku BCD. - Ustawiana umożliwia jest realizację gdy następuje przetwarzania przeniesienie łańcuchów lub pożyczka (ciągu słów) z najstarszego przy rosnących bitu adresach pierwszej (1) tetrady lub malejących wyniku adresach (0) ZF IOPL - flaga Poziom zera - ochrony sygnalizująca, instrukcji że wynikiem wejścia-wyjścia ostatnio wykonywanej operacji jest zero SF NT - flaga Znacznik znaku, zadania ustawiana zagnieżdżonego gdy najstarszy bit wyniku jest równy 1 (operacje liczb ze znakiem - kod U2) OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla operacji arytmetycznych (operacje liczb ze znakiem - kod U2)
Rejestry ogólnego przeznaczenia Rejestry ogólnego przeznaczenia - rejestry przeznaczone do przechowywania dowolnych danych i wykonywania operacji (arytmetycznych i logicznych), ale jednocześnie spełniające pewne funkcje specjalne. Szczególną funkcję pełni akumulator Akumulator - rejestr funkcjonalnie związany z ALU, przeznaczony do przechowywania jednego z operandów (argumentów) wykonywanej operacji oraz wyniku operacji (czasami wynik może być umieszczany w innym rejestrze). W mikroprocesorze może być kilka takich rejestrów.
Rejestry kontrola zawartości akumulator rejestr bazowy rejestr zliczający rejestr danych wskaźnik stosu rejestr indeksowy źródła wskaźnik bazy rejestr indeksowy przeznaczenia rejestr flagowy (znaczników) rejestr danych rejestr stosu rejestr programu wskaźnik rozkazów rejestr dodatkowy
Wykorzystanie stosu Wskaźnik stosu(sp) - rejestr zawierający adres ostatniej zapełnionej komórki stosu (wierzchołka stosu) Stosem nazywamy wyróżniony obszar w pamięci używany wg reguł: informacje zapisane są na stos do kolejnych komórek (pod kolejnymi adresami), przy czym żadnego adresu nie wolno pominąć odczytujemy informacje w kolejności odwrotnej do ich zapisu informacje odczytujemy z ostatnio zapełnionej komórki, natomiast zapisujemy do pierwszej wolnej Czyli obowiązuje reguła LIFO - ostatni wchodzi pierwszy wychodzi Stos może być również zorganizowany sprzętowo przez wydzielenie w mikroprocesorze odpowiedniego zbioru rejestrów mogących pracować jako pamięć LIFO (rozwiązanie sprzętowe jest szybsze) stos lub stos Adres Program główny 101 Instrukcja 102 Instrukcja 103 Call 104 Instrukcja 105 Instrukcja 106 Instrukcja 107 Instrukcja Wywołanie podprogramu I (adres 104 na stos) 1002 Instrukcja 1003 Instrukcja 1004 Call 1005 Instrukcja 1006 Instrukcja 1007 Return Powrót z podprogramu I (do adresu 104 odczytanego ze stosu) Wywołanie podprogramu II (adres 1005 na stos) 2001 Instrukcja 2002 Instrukcja 2003 Return Powrót z podprogramu II (do adresu 1005 odczytanego ze stosu)
Układ sterowania Układ sterowania CU dekoduje zawartość rejestru rozkazów i generuje wewnętrzny sygnały sterujące zapewniające właściwy przebieg operacji zdefiniowanej kodem rozkazu Często (a może najczęściej) procesor wykonuje rozkazy nie w jednym kroku (jak np. dodawanie) ale w wielu krokach (np. mnożenie lub dzielenie jako ciąg dodawań i przesunięć) W tym celu potrzebny jest złożony automat sekwencyjny, generujący odpowiednie ciągi słów podawanych na wejścia sterujące układu ALU - układ sterowania. Cechy takiego automatu to: konieczność posiadania bardzo dużej liczby stanów dostosowanych do wymaganej liczby wykonywanych rozkazów; konieczność zapewnienia synchronizacji pracy układu sterowania i wykonawczego (uwzględnienie czasów wykonywania poszczególnych operacji). W praktyce realizowane są jako: generatory sekwencyjne układy mikroprogramowalne
Magistrale Adresowa Danych Sterująca
Rozkazy Rozkazem (instrukcją maszynową) nazywamy najprostszą operację, której wykonania programista może zażądać od procesora Rozkazy (jak inne informacje) są przechowywane w systemie mikroprocesorowym w postaci kodów binarnych Listą rozkazów nazywamy zestaw wszystkich instrukcji maszynowych (rozkazów), jakie potrafi wykonać dany procesor rozkazy przesłań rozkazy arytmetyczne i logiczne rozkazy sterujące (skoki, wywołania podprogramów, pętle, itp.) inne (np. sterowanie pracą koprocesora, rozkazy testujące, operacje w trybie chronionym) Formatem rozkazu nazywamy sposób rozmieszczenia informacji w kodzie rozkazu Kod rozkazu: musi zawierać określenie rodzaju wykonywanej operacji (kod operacji) - w pierwszym bajcie (bajtach) kodu rozkazu może zawierać operandy i/lub adresy operandów wykonywanych operacji
Cykl rozkazowy mikroprocesora Realizując program, system mikroprocesorowy wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania, a następnie realizacji rozkazu Czas potrzebny na odczytanie kodu rozkazu z pamięci, na pobranie argumentów, na wykonanie rozkazu i przesłanie wyniku operacji nazywa się cyklem rozkazowym (instrukcyjnym) Cykl rozkazowy składa się zwykle z faz pobierania (kodu rozkazu, pobierania argumentu) i wykonania rozkazu Postać rozkazu określa, które podzespoły mikroprocesora będą brać udział w jego realizacji
Cykl rozkazowy mikroprocesora FAZA POBIERANIA ROZKAZU MA IR PC PC MD PC+1 wysłanie na magistralę adresową MA stanu licznika rozkazów PC wpisanie do rejestru rozkazów IR kodu operacji/rozkazu z magistrali danych MD zwiększenie przez układ sterowania CU o 1 stanu licznika rozkazów PC OPERACJE WEWNĘ- TRZNE FAZA WYKONYWANIA ROZKAZU DEKODOWANIE ROZKAZU WYKONANIE ROZKAZU generacja sekwencji sygnałów sterujących ewentualna modyfikacja stanu licznika rozkazów określenie adresu pamięci lub układu we/wy operacja zapisu/odczytu do/z pamięci lub układu we/wy przebieg różny dla różnych rozkazów
Cykl rozkazowy mikroprocesora cykl pobrania rozkazu cykl pobrania argumentu I cykl pobrania argumentu II cykl wykonania rozkazu Pamięć POBRANIE ROZKAZU POBRANIE ARGUMENTU I POBRANIE ARGUMENTU II ZAPIS WYNIKU CPU WYSŁANIE ADRESU ROZKAZU DEKODOWANIE ROZKAZU OBLICZANIE ADRESU ARGUMENTU I OBLICZANIE ADRESU ARGUMENTU II WYKONANIE ROZKAZU OBLICZENIE ADRESU PRZEZNACZENIA
Lista rozkazów Program dla wszystkich standardowych mikrokomputerów jest w pełni uporządkowanym zbiorem rozkazów, które będą wykonane w porządku sekwencyjnym (z wyjątkiem rozkazów, które celowo zmieniają tę kolejność wykonania). Adres komórki pamięci obecnie wykonywanego rozkazu jest zawarty w liczniku rozkazów (PC). Rozkaz typowych mikrokomputerów składa się z dwóch części: kodu operacji, określającego jego działanie, adresu (adresów) argumentów, określającego położenie w pamięci argumentów, na których mają być wykonywane operacje. Na ogół w mikroprocesorach są realizowane trzy typy rozkazów: manipulacji danymi; wejścia/wyjścia; sterowania wykonaniem programu.
Lista rozkazów - rozkazy manipulacji danymi MOV X, Y [Rejestr (X)] [Rejestr (Y)] MOV X, AdrPam [Rejestr (X)] [Pamięć (Z)] MOV AdrPam, X [Pamięć (Z)] [Rejestr (X)] MOV X,Dana [Rejestr (X)] Dana MOV AdrPam, Dana [Pamięć (Z)] Dana ADD X, Y [Rejestr (X)] [Rejestr (X)] + [Rejestr (Y)] ADD X, AdrPam [Rejestr (X)] [Rejestr (X)] + [Pamięć (Z)] ADD X, 17' [Rejestr (X)] [Rejestr (X)] + Dana
Lista rozkazów - Rozkazy wejścia/wyjścia Rozkazy wejścia/wyjścia IN X, Nr_Portu [Rejestr (X)] [Nr_Portu] OUT Nr_Portu, X [Nr_Portu] [Rejestr (X)] Rozkazy sterujące wykonywaniem programu JMP Tam JMPZ Tutaj [PC] AdrPam Tam Jeśli (ostatni wynik = 0), to [PC] AdrPam Tutaj Jeśli nie, [PC] [PC] + 1
Tryby adresowania Trybem adresowania nazywamy sposób określenia miejsca przechowywania argumentów rozkazu Argumenty rozkazu (dotyczy zarówno danych jak i wyników) mogą być przechowywane w rejestrach pamięci kodzie rozkazu Rozróżniamy następujące tryby adresowania (rozróżnia się co najmniej 19 trybów ale zostały one odpowiednio pogrupowane) adresowanie bezpośrednie adresowanie pośrednie adresowanie względne adresowanie bezwzględne adresowanie indeksowe Niech: MOV a, b oznacza przesłanie danych z b do a MOV a, [b] oznacza przesłanie danych z miejsca którego adres zapisano w b do a
Wymiana danych z urządzeniami zewnętrznymi Praca komputera wymaga wymiany danych pomiędzy jednostką centralna a urządzeniami zewnętrznymi. Wymianę danych między urządzeniami zewnętrznymi a mikroprocesorem można realizować jako: operacje z bezpośrednim sterowaniem przez mikroprocesor - przesyłana informacja przepływa przez rejestry procesora, który także steruje każdym krokiem realizacji operacji - są to operacje: bezwarunkowe we/wy, ze sprawdzeniem gotowości urządzeń zewnętrznych, z przerwaniami, operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim dostępem do pamięci - DMA) procesor inicjuje wymianę a następnie przekazuje nadzór nad realizacją operacji innemu układowi (zarządcy magistrali). Każde urządzenie zewnętrzne dołączone jest za pomocą interfejsu do wszystkich szyn mikrokomputera
Operacje we/wy z bezpośrednim udziałem procesora Bezwarunkową operacją wejścia/wyjścia nazywamy taką operację, przy realizacji której mikroprocesor nie sprawdza gotowości układu wejścia/wyjścia do tej wymiany. Są to operacje najprostsze realizowane tylko w niektórych przypadkach np. przesłanie sygnału do wyświetlania informacji za pomocą zestawu diod elektroluminescencyjnych. Przy realizacji operacji wejścia/wyjścia z testowaniem stanu układu wejścia/wyjścia, mikroprocesor sprawdza sygnał (np. określony bit kontrolny) gotowości układu do wymiany. W przypadku potwierdzenia gotowości do wymiany przez układ jest ona realizowana. Operacje te są stosowane np. przy współpracy z przetwornikiem A/C - procesor cyklicznie przepytuje przetwornik (tzw. pętla przepytywania) do chwili uzyskania zgłoszenia gotowości. Przy realizacji operacji wejścia/wyjścia z przerwaniami, urządzenie we/wy wystawia sygnał z żądaniem obsługi co prowadzi do przerwania przez procesor obsługi programu głównego i przejście do podprogramu obsługi układu wejścia/wyjścia.
Wymiana z przerwaniami Przy obsłudze urządzeń zewnętrznych za pomocą przerwań należy zapewnić: zapamiętanie stanu procesora występującego w chwili przyjęcia sygnału żądania przerwania; identyfikację źródła sygnału przerwania (sygnały żądania przerwania mogą być generowane przez wiele urządzeń zewnętrznych) niezbędną do przekazania sterowania obsługi właściwemu podprogramowi; określenie priorytetu przerwań w przypadku równoczesnego pojawienia się większej liczby sygnałów żądania przerwania; ustalenie procedury postępowania dla przypadków, w których podczas obsługi przerwania zgłaszają się sygnały żądania przerwania od innych urządzeń zewnętrznych; odtworzenie stanu procesora i powrót do realizacji przerwanego programu głównego. Program główny Zgłoszenie przerwania Odtworzenie stanu rejestrów procesora INSTRUKCJA 1 INSTRUKCJA 2 INSTRUKCJA 3 INSTRUKCJA 4 INSTRUKCJA 11 INSTRUKCJA 12 INSTRUKCJA 5 INSTRUKCJA 6 INSTRUKCJA 7 INSTRUKCJA 8 INSTRUKCJA 9 RET 10 Zapamiętanie stanu rejestrów procesora Początek programu obsługi przerwania
Wymiana z przerwaniami Rozkaz n Rozkaz n+1 zapamiętaj stan systemu Rejestry Stos Rozkaz n+2 Wykonaj obsługę przerwania Rozkaz n+3 Rozkaz n+4 odtwórz stan systemu Stos Rejestry Rozkaz n+5
Wymiana z przerwaniami Z punktu widzenia miejsca powstania przerwania można podzielić na: zewnętrzne związane ze stanem urządzeń zewnętrznych (maskowalne), wewnętrzne (np.: wystąpienie błędu) Przerwania maskowalne można zablokować Zadanie ustalenia kolejności obsługi urządzeń zewnętrznych generujących sygnały żądania przerwania rozwiązuje się przez nadanie tym urządzeniom odpowiednich priorytetów. Można to realizować zarówno programowo jak i sprzętowo. W rozwiązaniu programowym mikroprocesor po sprawdzeniu rejestru przerwań przekazuje sterowanie do podprogramu odpowiadającego źródłu przerwania o najwyższym priorytecie. Przy sprzętowej realizacji systemu przerwań każde urządzenie zewnętrzne ma odpowiadający mu podprogram obsługi umieszczony w określonym obszarze pamięci. Adres komórki pamięci zawierającej pierwszy rozkaz podprogramu obsługi przerwania tworzony jest na podstawie wektora adresu przerwania. Identyfikacja źródła przerwania odbywa się w ten sposób, że mikroprocesor po przyjęciu sygnału żądania przerwania generuje sygnał potwierdzenia przerwania IACK. W odpowiedzi na ten sygnał źródło przerwania wysyła na magistralę danych odpowiadający mu wektor adresu przerwania. Pobrany przez mikroprocesor (lub wyznaczony) wektor adresu przerwania jednoznacznie identyfikuje źródło przerwania i umożliwia przejście do odpowiadającego mu podprogramu obsługi.
Wymiana z przerwaniami Układ przerwań może być zorganizowany jako jedno- lub wielopoziomowy. W jednopoziomowej strukturze przerwań nie ma możliwości zawieszenia realizowanego podprogramu przez sygnał żądania przerwania pochodzący od urządzenia o wyższym priorytecie Priorytet Czas IRQ2 IRQ3 IRQ3 IRQ1 IRQ1 IRQ2
Wymiana z przerwaniami W wielopoziomowej strukturze przerwań urządzenie zewnętrzne o wyższym priorytecie ma możliwość przerwania realizowanego podprogramu obsługi urządzenia zewnętrznego o niższym priorytecie Priorytet Czas IRQ2 IRQ3 IRQ3 IRQ1 IRQ1 IRQ2
Wymiana z bezpośrednim dostępem do pamięci Wymiana z bezpośrednim dostępem do pamięci umożliwia najszybsze przesyłanie danych między pamięcią a urządzeniami zewnętrznymi (np. dyskami lub monitorami ekranowymi). Wymiana z bezpośrednim dostępem do pamięci odbywa się bez udziału mikroprocesora. Jego rolę w tym przypadku pełni specjalizowany układ wejścia/wyjścia, tzw. Sterownik DMA (ang. direct memory access controller DMAC ). Sterownik taki należy przygotować programowo, tzn. umieścić w odpowiednich jego rejestrach informacje niezbędne do planowanego przesłania danych (jak np. kierunek transmisji, liczbę słów, obszar pamięci, z którego będą pobierane dane lub do którego dane będą wysłane itp.). Niezależnie od sposobu realizacji przy bezpośrednim dostępie do pamięci wymaga się, aby kontrolę nad magistralami na czas przesyłania przejął sterownik DMA. W przypadku gdy ze sterownikiem DMA współpracuje wiele urządzeń zewnętrznych i kilka z nich jednocześnie żąda bezpośredniego dostępu do pamięci, pojawia się konieczność ustalenia priorytetu. Realizuje się to podobne jak w układach przerwań.
Wymiana z bezpośrednim dostępem do pamięci Bezpośredni dostęp do pamięci realizować można przez: blokowanie pracy mikroprocesora na pełny czas transmisji danych; mikroprocesor musi na czas transmisji między urządzeniami zewnętrznymi a pamięcią przerwać realizację programu (praca DMA jako Master), wymiana danych między urządzeniami zewnętrznymi a pamięcią odbywa się niejako na raty i zachodzi tylko w tych taktach zegarowych, w których mikroprocesor nie wykorzystuje magistrali systemowej (nie komunikuje się z pamięcią lub układem wejścia/wyjścia). Występuje tu więc równoległa praca mikroprocesora i sterownika (praca DMA jako Slave). wykradanie niektórych taktów zegarowych lub całych cykli maszynowych mikroprocesora i wykorzystywanie ich do przesłania w trybie DMA; CPU zawieszenie HOLD Inicjowanie operacji STEROWNIK DMA PAMIĘĆ OPERACYJNA I/O MEMR IOR MEMW IOW MEMR MEMW IOR IOW Określa: wielkość bloku do transmisji sposób transmisji (blokowa, pojedynczymi słowami, na żądanie) adres pierwszej komórki bufora pamięci rodzaj operacji (zapis, odczyt) Szyna adresowa
Tryby pracy DMA DMA jako Slave Programowanie lub badanie stanu sterownika Adres µ P Dane Sterownik DMA Pamięć We -Wy Sterowanie DMA jako Master Przesyłanie informacji Adres µ P Dane Sterownik DMA Pamięć We -Wy Sterowanie
Parametry charakteryzujące procesor Podstawowymi parametrami wpływającymi na wydajność procesora (szybkość wykonywania operacji przez procesor) są: Liczba rdzeni Szybkość (częstotliwość taktowania) określana częstotliwością zegara ( mierzona w MHz) Szerokość magistrali danych (liczba przesyłanych jednocześnie bitów), (8, 16, 32, 64 bity) Częstotliwość taktowania magistrali danych (Szybkość przekazywania danych do urządzeń wejściowych i wyjściowych) Wielkość pamięci CACHE pierwszego poziomu (L1) i drugiego poziomu (L2) Wewnętrzna konstrukcja oraz lista rozpoznawanych i wykonywanych instrukcji elementarnych
Ranking procesorów wg opłacalności 19.12.2011
Ranking procesorów wg wydajności 19.12.2011
Podstawowe parametry procesora Intel Core
Podstawowe parametry procesora Intel Core i5 mobile
Procesory AMD
Istotne pojęcia x86 to zbiorcze oznaczenie procesorów produkowanych przez firmę Intel oraz innych konkurujących z nią firm które bazowały na wspólnej architekturze CISC. Do rodziny x86 zaliczamy wszystkie procesory Intela serii 8086, 286, 386, 386, 486, Pentium, Pentium II, Pentium III, Celeron, Pentium IV, Core 2 oraz procesory AMD: 5k86K5, 5k86SSA/5, Duron, Athlon, Opteron, Phenom. Architektura procesorów z rodziny x86 jest już obecnie znacznie przestarzała, ciągnie się za nią za nią wiele problemów związanych ze zgodnością wstecz - każdy nowy procesor musi być zdolny do wykonywania kodu, napisanego dla pierwszego z procesorów tej rodziny. Pierwotne procesory o architekturze CISC zostały zastąpione przez znacznie wydajniejsze konstrukcje, wykorzystujące wewnętrznie architekturę RISC. CISC (Complex Instruction Set Computer) - architektura procesora wykorzystująca złożoną listę rozkazów. Charakterystyczne dla tego typu architektury jest to, że na wykonanie jednej instrukcji potrzeba więcej niż jednego cyklu zegara systemowego RISC (Reduced Instruction Set Computer) - architektura procesora o uproszczonej liście rozkazów o stałej długości. W jednym cyklu zegarowym można zawsze wykonać co najmniej jedną instrukcję. U podstaw idei RISC leży dążenie do zwiększenia wydajności procesorów przy zastosowaniu tej samej technologii półprzewodnikowej. Dzięki rozbiciu przetwarzania rozkazu na kilka prostych etapów, które mogą być wykonywane przez stosunkowo proste i w znacznym stopniu autonomiczne jednostki, bardziej nadające się do zrealizowania w nowocześniejszej technologii niż złożona i bardziej związana struktura procesora CISC, łatwiej można skonstruować CPU z większą częstotliwością zegara taktującego. Dlatego procesory RISC są dużo wydajniejsze od procesorów CISC.
Istotne pojęcia Przetwarzanie potokowe - rozbicie wykonywania pojedynczej instrukcji na kilka następujących po sobie faz (pobieranie, dekodowanie, pobieranie argumentów, wykonanie instrukcji, zapis). Wielopotokowość - umiejętność pobrania przez jednostkę wykonawczą kolejnej instrukcji przed zakończeniem wykonywania poprzedniego rozkazu. Oznacza to, że pojedynczy moduł może przetwarzać równocześnie co najmniej dwa potoki, będące w różnych stadiach realizacji. Superskalarność - cechy architektury, które pozwalają na wykonanie co najmniej dwóch instrukcji jednocześnie. Superskalarność procesorów najczęściej uzyskuje się, zwielokrotniając liczbę jednostek wykonawczych. SIMD (Single Instruction Multiple Data) - rozwiązanie umożliwiające wykonanie tej samej operacji arytmetycznej (mnożenie, dzielenie, dodawanie lub odejmowanie) na kilku parach operandów (liczbach) równocześnie. RTC-(real time clock) zegar czasu rzeczywistego (z podtrzymaniem bateryjnym ), którego zawartość jest automatycznie przepisywana do pamięci komputera w chwili startu systemu. CTC zegar systemowy wywołuje tzw.zegarowe przerwanie sprzętowe na linii IRQ0, które jest obsługiwane poprzez procedurę INT 08h. Licznik ten jest podstaw owym źródłem informacji o upływającym czasie, wykorzystywanym przez system operacyjny Hyper Trading tryb współbieżny wielowątkowy Turbo Boost - w momencie, gdy nie wszystkie rdzenie procesora są wykorzystane, jeśli jeden z nich przejdzie w tryb głębokiego uśpienia - system może zwiększyć częstotliwość taktowania pozostałych rdzeni ponad częstotliwość domyślą. Dzięki temu szczególnie aplikacje jedno-wątkowe będą mogły pracować nieco szybciej niż na standardowej częstotliwości taktowania
AMD
AMD AMD K10 - Barcelona (4 rdzenie)