ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH. dr inż. Małgorzata Langer B9, pok. 310 Instytut Elektroniki

Podobne dokumenty
Architektura komputerów

Architektura komputerów

Architektura komputerów

LEKCJA TEMAT: Zasada działania komputera.

Architektura komputera

Struktura i działanie jednostki centralnej

Urządzenia zewnętrzne

Organizacja typowego mikroprocesora

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

Architektura komputerów

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

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

Magistrala systemowa (System Bus)

Standard transmisji równoległej LPT Centronics

Architektura komputerów

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

Mikroprocesor Operacje wejścia / wyjścia

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

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

Architektura typu Single-Cycle

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

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

Architektura komputerów Wykład 2

Architektura systemów komputerowych. dr Artur Bartoszewski

WPROWADZENIE Mikrosterownik mikrokontrolery

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

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Programowanie w językach asemblera i C

UKŁADY MIKROPROGRAMOWALNE

Budowa systemów komputerowych

MIKROKONTROLERY I MIKROPROCESORY

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Działanie systemu operacyjnego

Wstęp do informatyki. Interfejsy, urządzenia we/wy i komunikacja. Linie magistrali

ARCHITEKTURA PROCESORA,

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH. dr inż. Małgorzata Langer

LEKCJA TEMAT: Współczesne procesory.

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

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Urządzenia wejścia-wyjścia

organizacja procesora 8086

Budowa Mikrokomputera

Architektura komputerów

Działanie systemu operacyjnego

Budowa komputera Komputer computer computare

Podstawy Informatyki Układ sterujący

Projektowanie. Projektowanie mikroprocesorów

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

2. Architektura mikrokontrolerów PIC16F8x... 13

Przykładowe pytania DSP 1

Programowanie Mikrokontrolerów

Programowanie Niskopoziomowe

Architektura komputerów

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

Wykład Mikroprocesory i kontrolery

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

Architektura systemów komputerowych

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Układy wejścia/wyjścia

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Dotyczy jednostek operacyjnych i ich połączeń stanowiących realizację specyfikacji typu architektury

Architektura potokowa RISC

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

System mikroprocesorowy i peryferia. Dariusz Chaberski

dr inż. Jarosław Forenc

Działanie systemu operacyjnego

Działanie systemu operacyjnego

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

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

LICZNIKI PODZIAŁ I PARAMETRY

LEKCJA. TEMAT: Funktory logiczne.

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

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

Projekt prostego procesora

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

dwójkę liczącą Licznikiem Podział liczników:

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Sterowniki Programowalne (SP)

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]

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Tranzystor JFET i MOSFET zas. działania

Kurs Zaawansowany S7. Spis treści. Dzień 1

Wybrane bloki i magistrale komputerów osobistych (PC) Opracował: Grzegorz Cygan 2010 r. CEZ Stalowa Wola

Architektura komputerów

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

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

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

Transkrypt:

ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH część 3 dr inż. Małgorzata Langer B9, pok. 310 Instytut Elektroniki

Podstawowa architektura systemu mikroprocesorowegow aspekcie jego budowy Projektant systemu wybiera architekturę maszyny w oparciu o koszt i korzyści płynące z możliwej zoptymalizowanej organizacji przy wykorzystaniu dostępnych elementów sprzętu (hardware) i oprogramowania (software). Każdy element może być wdrożony w różnych postaciach zależnie od postawionych wymagań i dostępnej (lub wybranej) technologii. W SZCZEGÓLNOŚCI BUDOWA SYSTEMU MUSI ODZWIERCIEDLIĆ WSZYSTKIE MINIMALNE WYMAGANIA POSTAWIONE PRZEZ ASPEKT ORGANIZACJI PRACY (poprzedni wykład) 2

Parametry podstawowe dla konstrukcji Wybrany zestaw instrukcji Długość słowa Ustalone formaty instrukcji i danych Sposób zaprojektowania (i technologia) rejestrów i pamięci Ścieżka przepływu danych i instrukcji Projekt jednostki arytmetycznej i logicznej Mechanizm I/O Generowanie sygnałów sterujących Projekt jednostki sterującej 3

Wykonanie programu Po załadowaniu kodu obiektu do pamięci, można rozpocząć jego wykonywanie poprzez ustawienie licznika programu na adres startu i aktywację (przycisku, rozkazu, ) START Instrukcje są wtedy pobierane z pamięci i kolejno wykonywane, aż pojawi się instrukcja HLT, albo wcześniej wystąpi błąd (i wtedy: co dalej? ) Wykonywanie instrukcji składa się z dwóch etapów: - pobieranie instrukcji - wykonanie instrukcji 4

Pobieranie instrukcji Słowo z instrukcją musi zostać pobrane z pamięci do rejestru instrukcji (IR) W tym celu zawartość licznika programu (PC) przeniesiona zostaje do MAR i wykonana zostaje operacja odczytu pamięci słowo zostaje przeniesione do MBR Następnie instrukcja zostaje przeniesiona do IR, a wewnętrzna logika sterowania musi dodać 1 do zawartości PC, aby wskazywał instrukcję następną Taka sekwencja pobierania instrukcji jest niezmienna obowiązuje dla wszystkich instrukcji 5

Wykonywanie instrukcji Po zdekodowaniu kodu instrukcji (opcode) następuje faza wykonywania, unikalna dla każdej instrukcji Najczęściej jest to sekwencja operacji, jeżeli potrzeba, z wczytywaniem danych, obliczaniem adresu, itp. Po fazie wykonywania maszyna wraca do fazy pobierania Jeżeli instrukcja używa trybu pośredniego adresowania, potrzebna jest faza dodatkowa do obliczenia efektywnego adresu tzw. Faza opóźniająca (defer phase) POBIERANIE, WYKONYWANIE ORAZ OPÓŹNIENIE (ewentualnie) SKŁADAJĄ SIĘ NA CYKL INSTRUKCJI 6

Ścieżki przepływu pomiędzy rejestrami Faza pobierania i obliczania adresu (A) adres; (I) instrukcja; 1 zwiększenie o 1 7

Struktura magistrali Połączenia rejestrów mogłyby być realizowane jako każdy indywidualnie ze wszystkimi potrzebnymi NIEREALNE! Lub przy pomocy MAGISTRALI (bus), która łączy wszystkie rejestry Single bus magistrala pojedyncza wszystkie dane i adresy płyną przez jedną magistralę Multibus wiele magistral każda przeznaczona do wyznaczonych transferów, np. oddzielna dla danych a inna dla adresów MULTIBUS pozwala na równoległy przepływ operacje wykonywane równolegle 8

Przykładowa struktura magistrali w ASC [S.G.Shiva; Computer Organization, Design and Architecture] Przy wykonywaniu np. dodawania BUS1 i BUS2 podadzą składniki a wynik zostanie podany na BUS3 9

Czas przesyłu Dane wchodzą do rejestru przy dodatnim (rosnącym) zboczu zegara Sygnał zegarowy jest generowany przez jednostkę sterującą (oraz inne sygnały sterujące do wyboru źródła i przeznaczenia) Zegar musi mieć podłączenie do wszystkich rejestrów Czas potrzebny na przeniesienie jednostki danych ze źródła do przeznaczenia poprzez ALU jest czasem TRANSFERU REJESTRU Częstotliwość zegara musi być maksymalnie taka, aby podczas okresu zegara zakończył się najwolniejszy transfer CZAS TRANSFERU REJESTRU DECYDUJE O PRĘDKOŚCI PRZETWARZANIA 10

Praca przy pojedynczej magistrali W takiej strukturze konieczne są rejestry buforowe. Przy dodawaniu, albo jeden ze składników, albo wynik, musi być zapisany w buforze, zanim można go przesłać do rejestru przeznaczenia Przy pojedynczej magistrali konieczne są więc dodatkowe transfery NIEKTÓRE OPERACJE BĘDĄ WYMAGAŁY WIĘCEJ CZASU Praca komputera z pojedynczą magistralą jest WOLNIEJSZA niż z multibus 11

ALU jednostka arytmetyczna i logiczna ALU jest strukturą, która wykonuje wszystkie działania arytmetyczne i logiczne W PROSTYM KOMPUTERZE zestaw instrukcji musi obejmować przynajmniej: - dodawanie dwóch liczb - obliczanie uzupełnienia dwójkowego do liczby - przesuwanie zawartości akumulatora o jeden bit w prawo, lub w lewo - bezpośredni transfer dowolnego ze swoich wejść na wyjście, aby umożliwić operacje przesyłu danych, typu IR MBR oraz MAR IR 12

Minimalny zestaw instrukcji: Założenie 1: Jednostka sterująca maszyny dostarczy odpowiednie sygnały sterujące do ALU, aby wykonać operacje (identyfikowane jako nazwy instrukcji) Założenie 2: Mamy 3 magistrale BUS1 i BUS2 na wejścia, BUS3 wyjście ALU; pozycje bitów numerowane są od lewej (15) do prawej (0) ADD: BUS3 BUS1 + BUS2 COMP: BUS3 BUS SHR: BUS3 BUS1 15 BUS1 15-1 SHL: BUS3 BUS 14-0 0 TRA1: BUS3 BUS1 TRA2: BUS3 BUS2 13

ADD Obwód dodawania musi się składać z 15 sumatorów pełnych i jednego półsumatora dla najmniej znaczącego bitu (0) Wyjście sumy każdego bitu jest bramkowane w bramce AND z sygnałem sterującym ADD Wyjście przeniesienia z każdego bitu jest wejściem na wejście bitu przeniesienia kolejnego bardziej znaczącego bitu. (Pół-sumator nie posiada wejścia na bit przeniesienia, a najbardziej znaczący sumator (15) bit przeniesienia podaje jako znacznik błędu do rejestru stanu PSR) Zawartość bitów akumulatora na magistrali BUS1 dodawana jest do zawartości MBR na BUS2 i zawartość zapisana zostaje w akumulatorze 14

Obwód dla pojedynczego bitu Bit 0 dla SHR nie jest podłączony do bitu mniej znaczącego BUS3, więc sygnał jest tracony 15

COMP Logiczny obwód to 16 bramek NOT, po jednej dla każdego bitu BUS1 Otrzymujemy w ten sposób uzupełnienie jedynkowe do liczby. Wyjście z każdej bramki NOT jest bramkowane na bramce AND z sygnałem COMP Wynik pośredni jest zawartością akumulatora i wynik zostaje zapisany w akumulatorze Dwójkowe uzupełnienie to uzupełnienie jedynkowe i dodanie 1 do wyniku (TCA uzupełnienie dwójkowe z zapisem w akumulatorze) 16

SHR Przesuwanie w prawo odbywa się poprzez połączenie każdego bitu BUS1 do sąsiadującego mniej znaczącego bitu BUS3 Transfer jest bramkowany przez sygnał sterujący SHR Najmniej znaczący bit z BUS1 (BUS1 0 ) jest tracony w procesie przesuwania Najbardziej znaczący bit BUS3 15 jest wypełniony bitem znaku 17

SHL Przesuwanie w lewo odbywa się poprzez połączenie każdego bitu BUS1 do sąsiadującego bardziej znaczącego bitu BUS3 Transfer jest bramkowany przez sygnał sterujący SHL Najbardziej znaczący bit z BUS1 (BUS1 15 ) jest tracony w procesie przesuwania Najmniej znaczący bit z BUS3 (BUS3 0 ) zostaje wypełniony zerem 18

Schemat logiczny ALU dla typowego bitu 19

Rejestr stanu - PSR Bity PSR są uaktualniane równocześnie z aktualizacją akumulatora C N Z O I Zapisywane są następujące bity: - C bit przeniesienia (C out ) przy dodawaniu bit przeniesienia z najbardziej znaczącej pozycji - 15 - N znak ujemny (bit BUS3 15 ) - Z bit zera (gdy wszystkie bity BUS3 są zerami) - O bit przepełnienia (gdy podczas dodawania suma przekracza (2 15 1), czyli gdy oba bity znaku składników są jedynkami, a wyniku zerem lub odwrotnie), (lub przy SHL, gdy zmienia się bit znaku) - I przerwanie bit podawany z układu sterującego Architektura komputerów, część 5 20

CPU Central Processing Unit Jest to połączenie ALU i jednostki sterującej Jego funkcją jest GENEROWANIE SYGNAŁÓW STERUJĄCYCH potrzebnych przez inne bloki urządzenia, WE WCZEŚNIEJ OKREŚLONEJ KOLEJNOŚCI, tak, aby spowodować sekwencję działań wywoływanych przez każdą instrukcję Schemat blokowy Uwaga: CLOCK jest podłączony do wszystkich rejestrów 21

CPU DATA przerzutnik ułatwiający handshake (nawiązanie kontaktu) między CPU a urządzeniami I/O RUN przerzutnik ustawiany sygnałem START (np. z zewnętrznego panelu sterującego) aby uaktywnić dowolną mikrooperację STATE dwubitowy rejestr stanu umożliwiający rozróżnienie trzech faz (pobierz, opóźnij, wykonaj) 22

SYGNAŁY CPU Wejścia zewnętrzne: z rejestrów (PSR, IR, indeksowych), urządzeń I/O Wejścia wewnętrzne: zawartości (bity przerzutników) danych, rejestru stanu (STATE), rejestru RUN, zegar (CLOCK) Sygnały generowane na potrzeby wewnętrzne: sygnały zmiany stanu (pobierz, opóźnij, wykonaj, reset dla DATA, reset dla RUN) WYJŚCIA: - do pamięci (READ, WRITE) - do ALU (TRA1, TRA2, ADD, COMP, SHR, SHL) - do I/O (INPUT, OUTPUT) - do magistrali 23

Sygnały CPU do struktury magistrali ACC do BUS1 MAR do BUS1 IR 7-0 do BUS1 PC do BUS1 1 do BUS1-1 do BUS1 INDEX do BUS2 MBR do BUS2 1 do BUS2 SWITCHBANK do BUS2 BUS3 do ACC BUS3 do INDEX BUS3 do MAR BUS3 do MBR BUS3 do PC BUS3 do MONITOR BUS3 do IR DIL do ACC ACC do DOL 24

WEJŚCIE / WYJŚCIE Nawet najprostszy komputer musi posiadać przynajmniej jedno urządzenie wejściowe (np. klawiatura) i jedno wyjściowe (np. wyświetlacz, lub drukarka) Najprostszym jest programowalne urządzenie I/O RWD podczas wykonywania tej instrukcji CPU wydaje komendę urządzeniu wejściowemu do przesłania słowa danych i czeka Kiedy urządzenie wejściowe ma gotowe słowo w buforze danych, informuje o tym CPU CPU bramkuje wtedy przepływ danych do ACC poprzez DIL (data input line) 25

WEJŚCIE / WYJŚCIE WWD CPU bramkuje wyjściowe słowo danych z ACC do DOL (data outputline), wydaje komendę urządzeniu wyjściowemu do przyjęcia danych i czeka Gdy urządzenie wyjściowe poprzez swoje bramki umieści słowo danych w swoim buforze informuje CPU o akceptacji danych. CPU może przystąpić do wykonywania następnej instrukcji Wymieniane sygnały informacyjne handshaking W obu operacjach największy czas zabiera czekanie urządzenia I/O są zawsze znacznie wolniejsze od CPU WNIOSEK: Programowalne urządzenia I/O są co prawda bardzo proste, ale bardzo wolne. W takim schemacie CPU nie może podczas czekania robić nic innego (nie otrzymało sygnału o zakończeniu instrukcji) 26

Rodzaje jednostek sterujących Każdy cykl instrukcji składa się z trzech faz, a każda z faz składa się z sekwencji mikrooperacji Mikrooperacja może oznaczać jedno z następujących działań: - pojedynczy transfer rejestru (zawartość jednego rejestru przeniesiona do innego rejestru) - złożony transfer rejestru, zatrudniający ALU (np. suma z dwóch rejestrów przeniesiona do trzeciego rejestru przeznaczenia) - operacja zapisu do pamięci lub odczytu z pamięci Jednostki sterujące mogą być: - wykonaną strukturą bramek, przerzutników i połączeń, która generuje sygnały sterujące (HCU hardwared control unit) - programowalną jednostką, gdzie mikrooperacje dla każdej instrukcji są zapisane w pamięci (MCU microprogrammed control unit) sygnały sterujące są generowane poprzez dekodowanie mikroinstrukcji 27

HCU może być: SYNCHRONICZNE każda operacja jest sterowana zegarem; stan jednostki sterującej można określić znając stan zegara Częstotliwość zegara musi być taka, że odległość między kolejnymi pulsami musi pozwolić na wykonanie najwolniejszej mikrooperacji. ASYNCHRONICZNE zakończenie jednej operacji wyzwala początek następnej; nie istnieje sygnał zegarowy Konstrukcja jest nieco bardziej skomplikowana, ale ograniczone funkcjonalnie asynchroniczne HCU mogą być znacznie szybsze od ich synchronicznych odpowiedników 28

Pamięć a prędkość procesora Czas dostępu pamięci równy jest dwóm czasom transferu rejestru Podczas odczytu, jeżeli adres jest bramkowany do MAR razem z instrukcją READ, dane będą dostępne w MBR na koniec następnego czasu transferu rejestru Podczas zapisywania, jeżeli dane i adres są odpowiednio dostarczone do MAR i MBR, z sygnałem sterującym WRITE, pamięć kończy zapisywanie danych z końcem drugiego czasu transferu rejestru Zawartość MAR nie może zostac zmieniona aż do zakończenia instrukcji READ lub WRITE 29

Charakterystyki czasowe pamięci 30

Cykl maszynowy W synchronicznych układach sterujących czas pomiędzy kolejnymi impulsami zegara takt - (czas transferu rejestru) jest określony przez operację transferu najwolniejszego rejestru. W przypadku ASC jest to sumator w ALU. Takt, inaczej czas transferu rejestru, nazywany jest czasem cyklu procesora, lub małym cyklem Przejście pomiędzy stanami pobierz, opóźnij, wykonaj konstrukcyjnie uważa się za dodatkowy mały cykl (CP 4 ) Główny cykl procesora składa się z kilku cykli małych Cykl instrukcji składa się z jednego lub więcej głównych cyklów procesora 31

MCU Mikroprogramy odpowiadające każdej instrukcji przechowywane są w pamięci ROM (Read Only Memory) Nazwa CROM oznacza pamięć sterującą Control ROM; µcu microcontrol unit µcu jest zwykle prostym HCU, którego funkcją jest wykonywanie mikroprogramów zawartych w CROM W CROM mikroprogram zapisywany jest w postaci binarnej Czas wymagany do wykonania instrukcji jest funkcją ilości mikroinstrukcji w danej sekwencji (każda mikroinstrukcja pobierana jest w dwóch taktach (czas transferu najwolniejszego rejestru + czas dostępu CROM) EMULACJA dowolnego procesora w złożonych systemach komputerowych polega na wpisaniu do pamięci mikroprogramów i tym samym utworzenie namiastki CROM 32

Schemat blokowy MCU 33

URZĄDZENIA PERYFERYJNE sposób obsługi Tryb programowalnych I/O jest nie tylko wolny (procesor wciąż CZEKA), ale nie zawsze możliwy do realizacji (np. gdy urządzenie I/O musi zgłosić ALARM i wymaga natychmiastowej obsługi a dzieje się to w sposób całkowicie nieprzewidywalny) PRZEPŁYW INFORMACJI pomiędzy dowolnym I/O a procesorem składa się z następujących kroków: - wybór urządzenia i sprawdzenie jego gotowości - inicjacja transferu (jeżeli urządzenie jest gotowe) - transfer informacji - zakończenie Kroki te mogą być kontrolowane tylko przez procesor, tylko przez urządzenie, lub i przez procesor i urządzenie 34

W zależności od tego, gdzie jest kontrola Istnieją trzy tryby I/O: 1. Programowany I/O 2. Tryb przerwań I/O 3. Bezpośredni dostęp do pamięci (DMA Direct memory access) 35

Ogólny model I/O 36

Ogólny model I/O Komunikacja ASC peryferia przebiega po liniach DIL (wejście) oraz DOL (wyjście). W praktyce jest to jedna, dwukierunkowa magistrala danych Przerzutnik DATA w jednostce sterującej koordynuje działania I/O Jeżeli (prawie zawsze) jest więcej urządzeń I/O, każde z nich musi mieć swój numer lub adres Wykorzystuje się tu wolny operand z instrukcji RWD i WWD (pole 8 bitów) a nawet 11 bitów (bo w tych instrukcjach wolne są również pole indeksowe i pośrednie) 4 bity pozwalają na 16 urządzeń wejścia i 16 wyjścia 37

Ogólna struktura I/O Adres urządzenia niesiony jest przez magistralę danych i dekodowany przez każde urządzenie. Tylko jedno urządzenie ma zgodny adres i uczestniczy w dalszej operacji Magistrala danych jest dwukierunkowa, Magistrala sterująca niesie sygnały sterujące od CPU oraz stanu generowane przez interfejsy urządzenia (DEVICE BUSY, ERROR, ) 38

Adresy Struktura taka, jak na poprzednim slajdzie wyraźnie oddziela obszar adresów pamięci od obszaru adresów I/O (oddzielne magistrale) tryb IZOLOWANEGO I/O Może być wspólna szyna dla pamięci i urządzeń I/O i wtedy adresy I/O są częścią obszaru adresów pamięci Pamięć CPU Urządz.1 Urządz.N Wspólna magistrala systemowa I/O z mapowaną pamięcią (memory-mapped I/O) 39

Adresy uwaga Pojedyncza (fizycznie) magistrala nie zawsze świadczy o mapowaniu pamięci dla I/O. Można multipleksować adresy do I/O i pamięci na tej samej magistrali poprzez odpowiednie sygnały sterujące (logicznie odpowiada to dwóm magistralom) 40

Interfejs urządzenia Interfejs urządzenia I/O jest unikalny dla danego urządzenia. Zależy od sposobu prezentacji danych, nośnika, konstrukcji, itd. Każdy interfejs zawiera sterownik otrzymujący sygnały sterujące (rozkazy) od CPU i raportujący CPU stan urządzenia Sygnały stanu, to np.: DEVICE BUSY, DATA READY, itp. W interfejsie znajduje się dekoder adresu wybierającego urządzenie Najczęściej jest przetwornik dekodujący odczytane dane i umieszczający je w buforze (skąd zostaną pobrane jako input data) lub pobierający umieszczone w buforze dane (output data), i dekodujący je do formatu zapisu na zewnętrznym medium (np. ASCII do drukarki, 0/1 na nośnik magnetyczny) 41

Interfejs zasadnicze funkcje Główne funkcje interfejsu urządzenia I/O to: - taktowanie (timing) (urządzenie I/O posiada inną prędkość działania niż CPU) - sterowanie - konwersja danych - wykrywanie błędów - korekta błędów 42

Sekwencja operacji - READ Nie ma znaczenia które urządzenie (również CPU) rządzi przy sterowaniu magistralą. Gdy komunikują się dwa urządzenia, zawsze jedno z nich jest MASTER a drugie SLAVE Przesył danych po magistrali może być synchroniczny lub asynchroniczny; wobec CPU urządzenia peryferyjne działają najczęściej asynchronicznie MASTER aktywuje sygnał READ i umieszcza ADRES urządzenia SLAVE (z którego chce odczytać dane). Wszystkie urządzenia podłączone do magistrali dekodują adres, tylko jedno w krótkim czasie (jakim?) ma umieścić dane na magistrali. Aby powiadomić MASTER, że dane już są do pobrania, SLAVE musi przesłać ACK (acknowledge) potwierdzenie o gotowości. Po stwierdzeniu sygnału ACK, MASTER bramkuje dane do swoich wewnętrznych rejestrów 43

Sekwencja operacji - WRITE MASTER aktywuje sygnał WRITE i umieszcza ADRES urządzenia SLAVE (na którym chce zapisać dane) na liniach adresowych magistrali. Podczas gdy urządzenia dekodują adres, MASTER umieszcza dane na magistrali danych. Po pewnym czasie wybrany SLAVE bramkuje dane do swojego bufora i odpowiada sygnałem ACK (data accepted) Po wykryciu sygnału ACK, MASTER usuwa dane i sterujący sygnał WRITE z magistrali Sekwencja wydarzeń opisujących transfer nazywana jest protokołem lub handshake 44

Transfer synchroniczny Transfer asynchroniczny 45

Sterowanie tryb programowanego I/O Procesor 1. Wybiera urządzenie i sprawdza stan urządzenia 3. Jeżeli urządzenie nie jest gotowe powrót do kroku 1; jeżeli gotowe, do 4 4. Daje sygnał do urządzenia o zainicjowaniu przesyłu danych. W przypadku OUTPUT bramkuje dane na linii danych i ustawia linię sterującą wyjście 6. Przy INPUT akceptuje dane; przy OUTPUT usuwa dane z linii danych 7. Odłącza urządzenie (usuwa adres z linii adresowych) Sterownik urządzenia 2. Sygnalizuje procesorowi, że jest lub nie jest gotowe 5. Przy OUTPUT sygnalizuje procesorowi, że dane zostały przyjęte; przy INPUT gromadzi dane i sygnalizuje procesorowi, że są gotowe na liniach danych W danym momencie urządzenie może być albo w trybie OUTPUT, albo INPUT 46

Przerwania (InterruptmodeI/O) Dla poprawy efektywności (aby CPU nie czekał bezczynnie), część czynności kontrolnych przenoszone jest do urządzenia. Procesor wysyła do sterownika urządzenia rozkaz OUTPUT lub INPUT i powraca do przetwarzania następnych instrukcji Sterownik urządzenia odpowiednio zbiera dane z lub przesyła do urządzenia i PRZERYWA procesorowi w jego przetwarzaniu CPU OBSŁUGUJE PRZERWANIE, tzn. odłącza urządzenie jeżeli transfer jest zakończony Również sama inicjalizacja transferu może rozpocząć się od urządzenia przerwaniem; wtedy CPU podczas handshaking określa, czy jest to INPUT, czy OUTPUT 47