360 likes | 643 Views
Przetwarzanie informacji (2). Wykład Jacka FLORKA ( http://ii1.ap.siedlce.pl/~florek/sk ) Ewa Banachowicz Zakład Biofizyki Molekularnej. SYSTEM LOGICZNY. 1. Bloki funkcjonalne komputera. Układy logiczne wykonujące jedną lub kilka operacji przetwarzania informacji
E N D
Przetwarzanieinformacji (2) Wykład Jacka FLORKA (http://ii1.ap.siedlce.pl/~florek/sk ) Ewa Banachowicz Zakład Biofizyki Molekularnej SYSTEM LOGICZNY 1
Bloki funkcjonalne komputera • Układy logiczne wykonujące jedną lub kilka operacji przetwarzania informacji • Bloki funkcjonalne zbudowane są z bramek i przerzutników • Grupy bloków: • Arytmetyczne (sumator, komparator, licznik, rejestr) • Komutacyjne (multiplekser, demultiplekser, dekoder)
PODZIAŁ UKŁADÓW LOGICZNYCH Układy logiczne można podzielić (w zależności od przyjętego kryterium) na: • układy kombinacyjne • układy sekwencyjne Def.1. Układem kombinacyjnym nazywamy taki układ cyfrowy, w którym stan wejść jednoznacznie określa stan wyjść układu. Def.2. Układem sekwencyjnym nazywamy taki układ cyfrowy, w którym stan wyjść zależy od stanu wejść oraz od poprzednich stanów układu. • układy asynchroniczne • układy synchroniczne Def.3. Układem asynchronicznym nazywamy taki układ cyfrowy, dla którego w dowolnym momencie jego działania stan wejść oddziaływuje na stan wyjść. Def.4. Układem synchronicznym nazywamy taki układ cyfrowy, dla którego stan wejść wpływa na stan wyjść w pewnych określonych odcinkach czasu zwanych czasem czynnym, natomiast w pozostałych odcinkach czasu zwanych czasem martwym stan wejść nie wpływa na stan wyjść.
PODZIAŁ UKŁADÓW LOGICZNYCH układy kombinacyjne: • układy zbudowane z bramek • bloki kombinacyjne • sumatory • komparatory • dekodery, kodery, transkodery • multipleksery, demultipleksery • ..... • układy matrycowe • ........ układy sekwencyjne: • przerzutniki • rejestry • liczniki • ..... A={X,Y,: XY} X- zbiór stanów sygnałów wejściowego Y - zbiór stanów sygnałów wyjściowego - funkcja opisująca działanie układu A={X, Y, S, : XxSS, : XxSY} X- zbiór stanów sygnałów wejściowego Y - zbiór stanów sygnałów wyjściowego S - zbiór stanów wewnętrznych - funkcja przejść (określa zmiany stanów układu wszystkich wzbudzeń) - funkcja wyjść (przyporządkowuje sygnały wyjściowe stanom układu i wzbudzeniom)
PRZERZUTNIKI wejścia informacyjne wejście zegarowe wyjścia wejścia programujące Def.1. Przerzutniki są podstawowymi elementami układów sekwencyjnych, których zasadniczym zadaniem jest pamiętanie jednego bitu informacji Posiada co najmniej dwa wejścia i z reguły dwa wyjścia Zasadnicze typy przerzutników: RS, JK, D i T
SYNCHRONICZNY PRZERZUTNIK RS S Q Q R wejście ustawiające (SET) wyjście proste zegar CK wyjście zanegowane wejście zerujące (RESET) CK S R Q asynchroniczny Q czas
Hazard • Idealne bramki logiczne- stan wyjścia jest funkcją logiczną stanów wejściowych. • Rzeczywista bramka logiczna pracująca w dowolnej sieci ma pewną budowę wewnętrzną (składa się zwykle z kilku tranzystorów, diod i oporników). Elementy te nie pracują dowolnie szybko. Przeładowanie stanu na wyjściu bramki wymaga pewnego czasu, który nazywamy czasem propagacji sygnału przez bramkę. Czas propagacji jest bardzo krótki i wynosi kilka nanosekund (w szybkich procesorach osiąga on poziom pikosekund). W prostych sieciach nie odgrywa on większej roli. Jednak w sieciach złożonych, gdzie sygnały wędrują różnymi drogami, czasy propagacji wprowadzają różne opóźnienia w działaniu poszczególnych elementów sieci, co może prowadzić przy źle zaprojektowanej sieci logicznej do błędów w jej działaniu
Taktowanie procesora • Jednym ze sposobów walki z hazardem jest wprowadzenie synchronizującego sygnału zegarowego - tzw. taktowania. Sygnał zegarowy jest sygnałem cyfrowym pulsującym z określoną częstotliwością pomiędzy stanami 0 i 1, zwykle kilkaset MHz. Wszystkie elementy sieci synchronizują się do tego sygnału. Okres taktu zegarowego musi być tak dobrany, aby w sieci zanikły hazardy i ustaliły się sygnały wyjściowe bramek logicznych. Stan sieci jest następnie analizowany przy końcu taktu zegarowego. Ze sposobu tego korzystają wszystkie współczesne komputery częstotliwość taktowania procesora.
Informacja cyfrowa • Zmienna binarna – zmienna o wartościach 1 i 0 • Wektor informacji cyfrowej – wektor o elementach binarnych, np.: 0111 • Informacja cyfrowa – informacja przedstawiona za pomocą ciągu wektorów informacji cyfrowej • Adresowanie wektora informacji cyfrowej-wzajemnie jednoznaczne przypisanie kazdemu wektorowi innego w.i.c. zwanego adresem
Reprezentacja czasowa w.i.c. • Bitowo-równoległa – wszystkie bity wektor są dostępne jednocześnie (na równoległych liniach magistrali lub w rejestrze) • Bitowo-szeregowa – poszczególne bity pojawiają się na tej samej linii lub w tym samym przerzutniku, w kolejnych „okienkach czasu”
REJESTRY rejestr CLK We 3 We 2 We 1 We 0 a 3 a 3 a 3 a 3 a 2 a 1 a 0 a 2 a 2 a 2 a 1 a 1 a 1 a 0 a 0 a 0 Def.1. Rejestrem nazywamy układ cyfrowy przeznaczony do krótkoterminowego przechowywania niewielkich informacji lub do zamiany postaci informacji z równoległej na szeregową lub odwrotnie. Wprowadzanie równoległe - wszystkie bity słowa informacji wprowadzamy jednocześnie , w jednym takcie zegara Wprowadzanie szeregowe - informację wprowadzamy bit po bicie (jeden bit na jeden takt zegara) rejestr rejestr rejestr ... CLK CLK CLK T1 T2 T3
LICZNIKI • Def.1. Licznikiem nazywamy układ cyfrowy, na którego wyjściu pojawia się zakodowana liczba impulsów podanych na jego wejście zliczające. • Musi być znany: • stan początkowy licznika (zero) • pojemność licznika • kod zliczania • Rodzaje liczników: • liczące w przód (następnikowe) • liczące w tył (poprzednikowe) • rewersyjne (mozliwość zmiany kierunku zliczania) • szeregowe (asynchroniczne) • równoległe (synchroniczne) Q3 Q0 Q2 Q1 D0 - D3 - wejścia danych CLK - wejście zegarowe CLR - wejście zerujące LD - wejście sterujące do wpisywania danych z wejść D0-D1 CEP - wejście dostępu (umożliwia zliczanie) CET - wejście dostępu (umożliwia powstanie przeniesienia TC) Q0 - Q3 - wyjścia TC - wyjście przeniesienia (umożliwia rozbudowę) CEP TC CET LICZNIK CLK LD CLR D2 D1 D3 D0
MAGISTRALE DANYCH Def.1. Magistralą nazywamy zestaw linii oraz układów przełączających, łączących dwa lub więcej układów mogących być nadajnikami lub odbiornikami informacji. Przesyłanie informacji zachodzi zawsze pomiędzy dokładnie jednym układem będącym nadajnikiem a dokładnie jednym układem będącym odbiornikiem, przy pozostałych układach odseparowanych od linii przesyłających. NAD Układ odseparowany ODB
Przetwarzanie informacji można zrealizować dwoma sposobami: • Specjalizowany układ cyfrowy: SPECJALIZOWANYUKŁAD CYFROWY WYNIKI DANE • System mikroprocesorowy (maszyna cyfrowa): MASZYNA CYFROWA PROGRAM WYNIKI DANE PRZETWARZANIE INFORMACJI Wszelkie procesy zamierzonego przetwarzania informacji przebiegają według ustalonego algorytmu PROCES PRZETWARZANIA DANE POCZĄTKOWE WYNIKI KOŃCOWE ALGORYTM
Organizacja maszyny cyfrowej MASZYNA CYFROWA PAMIĘĆ ZEWNĘTRZNA WYNIKI PAMIĘĆ OPERACYJNA PROGRAM BLOK PRZETWA-RZANIA UKŁADY WY URZĄDZENIA ZEWNĘTRZNE UKŁADY WE URZĄDZENIA ZEWNĘTRZNE STEROWANIE DANE PROCESOR JEDNOSTKA CENTRALNA
SYSTEM MIKROPROCESOROWY Liczba linii wyznacza możliwości adresowania np. liczba linii 20 to można zaadresować 220 komórek SZYNA ADRESOWA Liczba linii określa długość słowa procesora (8, 16, 32, .... (+biyt detekcji i korekcji błędów) SZYNA DANYCH SZYNA STEROWANIA Kilkanaście (kilkadziesiąt) linii UKŁADYWE/WY PROCESOR PAMIĘC ZEGAR DANEPROGRAMYWYNIKI ... Centralna jednostka przetwarzająca (CPU) URZ. ZEWN. MONITORY, DRUKARKI, CZYTNIKI,... Uniwersalny układ przetwarzający informację i sterujący pracą pozostałych elementów systemu UŻYTKOWNIK
PRZEPŁYW DANYCH W SYSTEMIE MIKROPROCESOROWYM Adres PROCESOR PAMIĘĆ Odczyt Dane 1 1 1 1 2 2 2 2 3 3 3 3 3 4 4 4 4 Adres PROCESOR PAMIĘĆ Z PROCESORA DO PAMIĘCI Z PAMIĘCI DO PROCESORA Zapis Dane Adres Adres Z WEJŚCIA DO PROCESORA UKŁADWY-WE PROCESOR UKŁADWY-WE PROCESOR Z PROCESORA NA WYJŚCIE Odczyt Dane Zapis Dane
ARCHITEKTURA PROCESORA • Schemat blokowy procesora • Rejestry • Blok arytmetyczno-logiczny (ALU) • Układ sterowania 8
SCHEMAT BLOKOWY PROCESORA JEDNOSTKA WYKONAWCZA Zadaniem jednostki wykonawczej jest wykonywanie operacji arytmetycznych i logicznych w zależności od wewnętrznych sygnałów sterujących rejestry części wykonawczej ALU DANE WYNIKI wewnętrzne sygnały sterujące zewnętrzne sygnały sterujące PROGRAM rejestrrozkazów dekoderrozkazów układ sterowania Jednostka sterująca z programu dekoduje rozkaz i na jego podstawie generowane są wewnętrzne i zewnętrzne sygnały sterujące JEDNOSTKA STERUJĄCA
BLOK ARYTMETYCZNO-LOGICZNY • Blok arytmetyczno-logiczny (ALU) - jest uniwersalnym układem kombinacyjnym, który realizuje operacje matematyczne i logiczne w zależności od zaprogramowanej operacji tj. rozkazu umieszczonego w programie. • 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) • Argumentami rozkazów są najczęściej dwa słowa binarne, od długości których mówi się o liczbie bitów ALU. A0 - A3 F0 - F3 B0 - B3 S0 - S3 M
UKŁAD STEROWANIA Zwykle 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
ROZKAZY I TRYB ADRESOWANIA • Cykl rozkazowy • Lista i format rozkazu • Tryb adresowania • Sposób prezentowania rozkazu 9
CYKL ROZKAZOWY PROCESORA 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 Def.1. 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. cykl pobrania argumentu I cykl pobrania argumentu II cykl pobrania rozkazu cykl zapisu wyniku Pamięć POBRANIE ROZKAZU POBRANIE ARGUMENTU II POBRANIE ARGUMENTU I ZAPIS WYNIKU CPU OBLICZANIEADRESU ARGUMENTUII OBLICZENIE ADRESU PRZEZNACZE-NIA DEKODOWANIE ROZKAZU OBLICZANIEADRESU ARGUMENTUI WYSŁANIE ADRESU ROZKAZU WYKONANIE ROZKAZU
CYKL ROZKAZOWY PROCESORA pamięć procesor 1 kod rozkazu szyna danych szyna adresowa kod rozkazu 4 2 kod rozkazu PC(AD) 3 kod rozkazu RR kod rozkazu • Faza pobrania: • 1. adresowanie: podanie zawartości licznika rozkazów PC (rejestru adresującego pamięć AD) na magistralę adresową • 2. odczyt zaadresowanej komórki pamięci do rejestru rozkazów (RR) • 3. zwiększenie zawartości licznika rozkazów • Faza wykonania: • 4. zdekodowanie kodu rozkazu i wytworzenie sygnałów sterujących realizujących dany rozkaz Cykl von Neumana w przypadku rozkazów wielobajtowych • Czas trwania fazy pobierania rozkazu (pobierania argumentu) zależy od rodzaju procesora i rodzaju rozkazu (argumentu). • Np. • Jeżeli procesor jest 8-bitowy, kod rozkazu 8-bitowy, adres argumentu 16-bitowy to faza pobrania rozkazu składa się z trzech cykli odczytu pamięci: • odczyt kodu - pobranie rozkazu • odczyt jednego bajtu adresu • odczyt drugiego bajtu adresu • Jeżeli procesor i rozkaz są 32-bitowe to wystąpi jedna faza pobrania rozkazu Rozpatrzmy przykład wykonania programu dodawania dwóch liczb 16-bitowych stałopozycyjnych w komputerze 16-bitowym. Pamięć jest 16-bitowa, kod rozkazu 12-bitowy a adres 20-bitowy (kod rozkazu i adres można zatem umieścić w 2 komórkach pamięci)
LISTA ROZKAZÓW Def.1. 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 rozkazy w postaci kodów binarnych instrukcje maszynowe instrukcje w FORTRANie Def.2. 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)
TRYB ADRESOWANIA Def.W trybie adresowania indeksowego z przemieszczeniem adres argumentu przechowywanego w pamięci obliczany jest jako suma zawartości rejestru określonego w kodzie rozkazu i wartości umieszczonej w kodzie rozkazu, zwanej przemieszczeniem Kod rozkazu REJESTR Określenie rejestru wartość Kod operacji Przemieszczenie PAMIĘĆ Argument
UKŁDY WEJŚCIA/WYJŚCIA WSPÓŁADRESOWALNE Z PAMIĘCIĄ PAMIĘĆ OPERACYJNA I/O Np. karta graficzna CPU MEMR MEMW MEMR MEMW MEMR MEMW Szyna adresowa Def. W przypadku układów współadresowalnych z pamięcią operacyjną wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą adresu (istnieje potrzeba wydzielenia w pamięci przestrzeni dla adresów układów we/wy). Sygnały sterujące są wspólne dla pamięci i układów we/wy.
UKŁDY WEJŚCIA/WYJŚCIA IZOLOWANE PAMIĘĆ OPERACYJNA I/O Np. sterownik dysku twardego CPU MEMR MEMW IOR IOW MEMR MEMW IOR IOW Sygnały sterujące dla pamięci Sygnały sterujące dla układów we/wy Szyna adresowa Def. Dla izolowanych układów we/wy wybieramy obiekt, na którym dokonujemy operacji (komórka pamięci lub rejestr układu we/wy), za pomocą sygnałów sterujących. Przestrzenie adresowe pamięci układów we/wy są rozdzielone
OPERACJE WEJŚCIA/WYJŚCIA Def. Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych do realizacji wymiany informacji pomiędzy mikroprocesorem i pamięcią z jednej strony a układem wejścia/wyjścia z drugiej. • Operacje wejścia/wyjścia mogą być realizowane: • od początku do końca przy udziale procesora - przesyłana informacja przepływa przez rejestry procesora, który także steruje każdym krokiem realizacji operacji - są to operacje z bezpośrednim sterowaniem przez mikroprocesor • poprzez zainicjowanie operacji przez procesor, który następnie przekazuje nadzór nad realizacją operacji innemu układowi (zarządcy magistrali) - są to operacje z pośrednim sterowaniem przez mikroprocesor (z bezpośrednim dostępem do pamięci - DMA).
OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESOR • Operacje wejścia/wyjścia z bezpośrednim sterowaniem przez mikroprocesor : • bezwarunkowe operacje wejścia/wyjścia • operacje z testowaniem stanu układu wejścia/wyjścia • operacje z przerwaniem programu Def. 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. Def. 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.
OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORoperacje z przerwaniem programu Operacje wejścia/wyjścia z przerwaniem programu eliminują wady operacji z testowaniem stanu układu. Procesor wykonuje program główny oczekując na zgłoszenie gotowości. Zgłoszenie powoduje przerwanie wykonywania programu głównego i zapamiętanie informacji potrzebnej do późniejszego powrotu do programu głównego. Procesor przechodzi do wykonania programu obsługi przerwań (ISR - interrupt service routine) - następuje wymiana informacji z układem we/wy. Po zakończeniu wymiany (programu obsługi przerwania) procesor kontynuuje przerwany program główny. Program główny INSTRUKCJA 1 Zgłoszenie przerwania INSTRUKCJA 2 INSTRUKCJA 3 INSTRUKCJA 4 INSTRUKCJA 11 INSTRUKCJA 12 Zapamiętanie stanu rejestrów procesora Odtworzenie stanu rejestrów procesora INSTRUKCJA 5 Początek programu obsługi przerwania INSTRUKCJA 6 INSTRUKCJA 7 INSTRUKCJA 8 INSTRUKCJA 9 RET 10
OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORoperacje z przerwaniem programu W przypadku pojawienia się jednoczesnego kilku zgłoszeń od urządzeń we/wy sytuacja może się komplikować. Dlatego stosuje się tzw. sterownik przerwań. • Główne zadania sterownika przerwań: • pośredniczenie w przyjmowaniu zgłoszeń przerwań pomiędzy procesorem i układami we/wy • przyjmowanie zgłoszeń od wielu układów we/wy (procesor posiada tylko jedno wejście zgłoszenia przerwań) • wybór spośród wielu zgłoszeń tego, które zostanie obsłużone • sygnalizowanie wyboru przez podanie adresu układu we/wy, z którym zostanie dokonana wymiana (adresu programu obsługi przerwania realizującego tą wymianę, a właściwie numer pozycji w tablicy wektorów przerwań) • wygenerowanie sygnału zgłoszenia przerwania bezpośrednio do procesora
OPERACJE Z BEZPOŚREDNIM STEROWANIEM PRZEZ MIKROPROCESORoperacje z przerwaniem programu - tablica wektorów przerwań Pamięć operacyjna Początek IRS Tablica wektorów przerwań Adres początku programu obsługi przerwania CS Sterownik przerwań IP Numer przerwania CS IP CS IP CS IP CS IP
Procesory Pierwszy procesor 4004 4 bitowy, 1971 r. na zamówienie japońskiej firmy ETI, przeznaczony do kalkulatora Procesor zawarty był w pojedynczym układzie, składał się z około 2300 tranzystorów upakowanych na powierzchni 10 mikrometrów i pracował z częstotliwością 108 KHz.
Procesory Procesor 8086 16 bitowy, 1976 r., firma INTEL Procesor 8088 8 bitowy, wykorzystujący 16bitowe rejestry Do komputerów PC XT i AT 1MB przestrzeń adresowa Zegar 4.77 – 10 MHz