BUDOWA I DZIAŁANIE MIKROPROCESORA



Podobne dokumenty
organizacja procesora 8086

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Organizacja typowego mikroprocesora

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Architektura komputerów

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Programowanie niskopoziomowe

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Sprzęt i architektura komputerów

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

LEKCJA TEMAT: Zasada działania komputera.

Architektura komputerów

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Sprzęt i architektura komputerów

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Budowa komputera Komputer computer computare

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa Mikrokomputera

LEKCJA TEMAT: Współczesne procesory.

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Logiczny model komputera i działanie procesora. Część 1.

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Architektura komputerów. Asembler procesorów rodziny x86

Procesory rodziny x86. Dariusz Chaberski

ARCHITEKTURA PROCESORA,

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Procesory. Schemat budowy procesora

Technika mikroprocesorowa I Wykład 2

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Struktura i działanie jednostki centralnej

Architektura systemów komputerowych

Architektura komputera

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Architektura komputerów

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

UTK jednostki wykonawczej EU (Ex ecution Unit), jednostki steruj c ej CU,

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Mikroprocesor Intel 8088 (8086)

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

WPROWADZENIE Mikrosterownik mikrokontrolery

MIKROKONTROLERY I MIKROPROCESORY

Architektura systemów komputerowych. dr Artur Bartoszewski

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Architektura komputerów

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Przerwania, polling, timery - wykład 9

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Magistrala systemowa (System Bus)

Projektowanie. Projektowanie mikroprocesorów

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Architektura mikroprocesorów TEO 2009/2010

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Metody obsługi zdarzeń

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

SYSTEM MIKROPROCESOROWY

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

drklaus 1 Model funkcjonalny komputera struktura, funkcje, komputer dr inż. Rafał KLAUS STRUKTURA I DZIAŁANIE KOMPUTERA

Programowanie Niskopoziomowe

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

2. Architektura mikrokontrolerów PIC16F8x... 13

Architektura komputerów. Układy wejścia-wyjścia komputera

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Lista instrukcji mikroprocesora Programowanie w assemblerze

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura komputerów

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

Architektura typu Single-Cycle

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Układy wejścia/wyjścia

Technika mikroprocesorowa I Wykład 1

Mikroprocesory rodziny INTEL 80x86

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

Architektura komputerów wer. 7

Urządzenia zewnętrzne

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Wykład Mikroprocesory i kontrolery

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Podstawy Techniki Mikroprocesorowej

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Przykładowe pytania DSP 1

Technologie Informacyjne Wykład 3

Transkrypt:

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)