Top Banner
S. Ribaric, AIOR 1 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav • DMA (Direct Memory Access) – Izravni pristup memoriji • Iznimke i prekidi
38

12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

Dec 27, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 1

12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA

• Nacini izmjene podataka izmedu racunala i vanjske logike• Ulazno-izlazni podsustav• DMA (Direct Memory Access) – Izravni pristup memoriji• Iznimke i prekidi

Page 2: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 2

Nacini izmjene podataka izmedu racunala i vanjske logike:

• Programirani U/I- uvjetni- bezuvjetni

• Prekidni U/I prijenos

• Izravni pristup memoriji (DMA)

Page 3: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 3

•Programirani U/I- uvjetni- bezuvjetni

• Prekidni U/I prijenos

Page 4: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 4

Izravni pristup memoriji (DMA)

Page 5: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 5

Ulazno-izlazni sustav (U/I sustav)

Zadatak: Prijenos informacije (podataka) izmedu memorijeili CPU-a i vanjskog svijeta

U/I sustav: - U/I uredaji (periferni uredaji)- upravljacka jedinica U/I uredaja- programska oprema (“drajveri”) posebno

dizajnirana za podršku U/I operacija

Page 6: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 6

Klasifikacija U/I sustava prema ukljucenosti CPU-a u izvodenjeU/I operacija:

• U/I operacije pod potpunim upravljanjem CPU-aCPU izvodi programe koji zapocinju, vode i završavaju U/Ioperacije

• U/I uredaj može imati sklopove koji generiraju zahtjeve zaposluživanje – prekidni U/I prijenos

Page 7: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 7

Uvjetni programirani U/I prijenosKoraci:1. Procitaj status U/I uredaja2. Ispitaj statusi utvrdi da li je uredaj spreman za prijenos3. Ako nije spreman vrati se n KORAK 1.

ako je spreman zapocni prijenos

Page 8: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 8

WAIT: TSK 1

JMP WAIT

IN 2

Page 9: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 9

WAIT: IN 1 ; Procitaj I/O status i unesi ga u acc.CPI READY ; Usporedi ga usputno s maskomJNZ WAIT ; Ako je zastavica Z≠ 0 skoci na WAITIN 2 ; procitaj podatak s vrata 2

Programski odsjecak za Intel 8080

Page 10: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 10

• U/I uredaj (podržan dodatnim sklopovima) ima sposobnost prijenosa bloka podataka bez intervencije CPU-a:

- U/I uredaj (ili upravljacki sklop U/I uredaja) generiraadrese podataka koji se prenose (npr. glavnom sabirnicom)

- ima sklopovlje za zahtijevanje sabirnice

CPU još uvijek je odgovoran za zapocinjanje prijenosa svakogbloka podataka

• DMA – sve ili skoro sve funkcije upravljanja U/I mogu bitiprenijete s CPU-a na posebnu U/I jedinicu – U/I procesor iliU/I kanal

Page 11: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 11

• U/I uredaj izvodi prijenos bez izvodenja programa u CPUCPU i U/I uredaj komuniciraju samo kada CPU treba U/I uredaju predati upravljanje sabirnicom

Izravni pristup memoriji

Page 12: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 12

Veliki racunalni sustavi

Page 13: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 13

Mali racunalni sustavi

Page 14: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 14

U/I krug

Page 15: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 15

Multiprogramiranje – dopušta da se nekoliko nezavisnih programa odvija istodobno u istom racunalu – npr. jedan od programa podržava U/I prijenos

Kratka povijest:

C. Strachey (1959.) – obrada dodjeljivanjem vremena (engl.timeshared)

TX-2, Lincoln Lab., (1957.) - prekidni sustav za upravljanjeU/I operacijama

CDC 6600 (1964.) - periferijski U/I procesori

Page 16: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 16

Izravan pristup memoriji (DMA)

Page 17: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 17

Koraci:

1. CPU izvodi dvije I/O instrukcije – definira sadržaje IOAR iDC – faza inicijalizacije

2. Kad je U/I uredaj spreman za prijenos aktivira DMA request/CPU ceka slijedecu DMA ispitnu tocku i oslobada sabirnicu podataka i adresnu sabirnicu/

3. CPU generira DMA acknowledge4. U/I uredaj prenosi5. Ako DC nije 0 a uredaj U/I nije više spreman za slanje ili

primanje podataka tada DMA vraca upravljanje CPU-u takoda dezaktivira DMA request linju

6. Ako je DC = 0 , U/I uredaj vraca upravljanje CPU-u. U/Iuredaj može poslati zahtjev za prekid CPU-u. CPU “zaustavlja” U/I uredaj ili zapocinje novi DMA prijenos

Page 18: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 18

Ispitne tocke za DMA i prekid tijekom instrukcijskogciklusa

Page 19: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 19

Prekidi

Vrste prekida:• U/I prekidi – aktivirani kao zahtjev za U/I operacijom

– aktiviran nakon uspješnog (ili neuspješnog)završetka U/I operacije /npr. dojava “kanalslobodan” nakon završetka prijenosa ili nastupgreške/

• Prekidi izazvani vremenskim sklopovima (engl. timer interrupts)

• Prekidi zbog grešaka u sklopovima (npr. ispad napajanja, greškaparnosti u memoriji)

• Programski prekidi (engl traps)• SVC (Supervisory Calls) – preklop iz korisnickog nacina u

nadgledni nacin rada)

Page 20: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 20

U/I prekidi – tipovi prekidnih sustava

Tip 1. Jednorazinski s jednim prioritetom (Single-level, single priority)

• sve linije za zahtijevanje prekida su vezane kao logicko ILI na jedan ulaz (prekidni bistabil)

Page 21: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 21

Tip 1. – nastavak

- nakon pohranjivanja minimalnog konteksta prekidna rutina(koja zapocinje na unaprijed definiranoj memorijskoj lokaciji)mora prepoznati uzrocnika prekida!

- to cini tako da ispituje status pojedinih U/I uredaja prozivanjem(engl. polling)

Page 22: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 22

Tip 2. Višerazinski s jednim prioritetom (Multiple-level, Single-priority)

• pored postavljanja prekidnog bistabila IFF (kao u slucaju 1.)

svaki U/I uredaj nakon slanja zahtjeva za prekid šalje i kod za identifikaciju uzrocnika prekida (selekcijski kod). Kod se postavlja nakon što su svi prijašnji prekidi bili potvrdeni

• jedan prioritet odnosi se na prioritet na sklopovskoj razini,

Razlika izmedu Tipa 1. i Tipa 2.:

Tip 2. zahvaljujuci selekcijskom kodu dopušta brže raspoznavanje izvora prekida

Page 23: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 23

Tip 3. Jednorazinski s više prioriteta (Single-level, Multiple-priority)

• Kao i u Tipu 1. postoji samo jedan prekidni bistabil ali su uredaji U/I smješteni na prekidnoj liniji po prioritetnom redu• Kada uredaj zahtijeva posluživanje on sprecava prekide drugih uredaja nižeg prioriteta• ustroj uredaja uzduž zajednicke linije prekida odgovara shemiulancavanja (engl. daisy chaining)

Page 24: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 24

Tip 4. Višerazinski s više prioriteta (Multiple-level, Multiple-priority)

• Kombinacija Tipova 2. i 3.• Uredaji su rasporedeni ulancano (kao u Tipu 3.)• Za vrijeme potvrde prekida šalje se selekcijski kod

Page 25: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 25

Uvjeti za prihvacanje prekida

Page 26: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 26

Tipicni koraci tijekom prekida:

1. CPU identificira izvor prekida2. CPU dobiva ili odreduje adresu prekidnog programa3. PC i SR (“minimalni kontekst”) se pohranjuju4. U PC se smještava adresa prekidnog programa5. Izvodi se prekidni program6. Iz prekidnog programa upravljanje se prenosi na prekinuti

program izvodenjem instrukcije tipa RTI (RETURN FROM INTERRUPT ) ili RTE (RETURNFROM EXCEPTION) cime se obnavlja stanje procesora

Page 27: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 27

Prekidni sustav s jednom prekidnom linijom

Page 28: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 28

Prekidni sustav s više prekidnih linija

Page 29: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 29

Linije za potvrdu prihvacanja prekida (idealizirano)

Page 30: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 30

Ulancavanje (Daisy Chain)

Page 31: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 31

Vektorski prekidni sustav

Page 32: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 32

Mikroprocesor MC 68000 odgovara na prihvaceni zahtjev za (sklopovski) prekid na sljedeci nacin (sažetak):1. Sadržaj SR se pohranjuje interno;2. Zastavica S u registru SR se postavlja u 1;3. Zastavica pracenja T postavlja se u 0;4. Prekidne zastavice I0, I1 i I2 poprimaju vrijednosti razine

prihvacenog prekida;5. Mikroprocesor izvodi sabirnicki ciklus potvrde prekida:

- procesor obavještava vanjske uredaje da je prekid prihvacenFC0 = 1, FC1 = 1; FC2 = 1;

- adresne linije A1-A3 poprimaju vrijednost stanja na linijamaza zahtijevanje prekida;- procesor pribavlja vektorski broj što ga postavlja na sabirnicu podataka vanjski uredaj – uzrocnik prekida. Vektorski broj za sklopovski prekid nalazi se u rasponuod 64 – 255;

Page 33: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 33

6. Pohranjuje se minimalni kontekst;7. PC se puni sa cetiri bajta iz odgovarajuce pozicije u tablici

vektora iznimaka koja je smještena u nultoj stranici memorije(prvih 1024 bajtova);

Format vektora iznimke:rijec 0: znacajnijih 16-bitova rijec 1: manje znacajnih 16-bitova (vektor iznimke predstavlja adresu prve instrukcije prekidnogprograma)

Adresa vektora iznimke (mjesto gdje se on nalazi u nultoj stranici) dobiva se pomocu vektorskog broja koji se posmiceza dva mjesta ulijevo!

Page 34: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 34

Višestruko ulancavanje

Page 35: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 35

Vektorska prekidna shema

Page 36: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 36

Upravljacki sklop prioritet prekida s maskiranjem

Page 37: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 37

Primjer ulancane konfiguracije (vektorski prekidni sustav)

Page 38: 12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • …...12. ULAZNO-IZLAZNI PODSUSTAV RACUNALA • Nacini izmjene podataka izmedu racunala i vanjske logike • Ulazno-izlazni podsustav •

S. Ribaric, AIOR 38

Primjer ulancane konfiguracije (vektorski prekidni sustav)/nastavak/