´ vod 1 U V modernı´ dobeˇ, kdy je enormnı´ na´rust vyuzˇitı´ pocˇ´ıtacˇu˚, je potrˇeba se veˇnovat neusta´le´mu vy´voji sbeˇrnic a jejich komunikace s perifernı´mi zarˇ´ızenı´mi. Neˇkdy se jedna´ o sbeˇrnice, kdy celkovou rychlost pra´ce s pocˇ´ıtacˇem negativneˇ ovlivnˇuje pra´veˇ rychlost sbeˇrnic. Tato prˇehledova´ studie ma´ za u´kol se zaby´vat technicky´mi a programovy´mi mozˇnostmi komunikace mezi CPU a periferiemi. V minulosti bylo toto te´ma cˇasto podcenˇova´no a i v dnesˇnı´ dobeˇ se najde spousta lidı´, kterˇ´ı ota´zku komunikace s periferiemi podcenˇujı´, zejme´na pak s rozvojem perifernı´ch zarˇ´ızenı´. Cı´lem te´to pra´ce je navrhnout cca 15-ti stra´nkovy´ studijnı´ materia´l pro studenty informatiky.
2 Sbeˇrnice Patrˇ´ı mezi soucˇa´sti kazˇde´ho pocˇ´ıtacˇe i samotne´ho mikroprocesoru. Sbeˇrnice slouzˇ´ı pro prˇenos informace mezi mikroprocesorem a ostatnı´mi cˇa´stmi pocˇ´ıtacˇe, ale take´ mezi cˇa´stmi uvnitrˇ mikroprocesoru nebo take´ mezi pocˇ´ıtacˇem a okolı´m.
Logicke´ sı´teˇ jsou obvykle slozˇeny z jednoho obvodu, kde je jeho vy´stupnı´ signa´l prˇiveden na jeden nebo neˇkolik vstupu˚ dalsˇ´ıch obvodu˚. To znamena´, zˇe k vodicˇi, jı´mzˇ jsou prˇena´sˇeny informace, je prˇipojen pouze jeden jejı´ zdroj (budicˇ) a neˇkolik snı´macˇu˚. Dnes je v technice pocˇ´ıtacˇu˚ pouzˇit princip, kdy vsˇechny bloky pocˇ´ıtacˇe jsou paralelneˇ propojeny souborem vodicˇu˚ spolecˇnou sbeˇrnicı´ z anglicke´ho bus. Tyto bloky pocˇ´ıtacˇe jsou schopny informace snı´mat, ale i prˇeda´vat. Pro smysluplne´ prˇipojenı´ a k tomu, aby nedocha´zelo ke kolizi prˇipojenı´ neˇkolika zdroju˚ informace ke sbeˇrnici, musı´me urcˇit: • ktery´ blok bude informaci na sbeˇrnici doda´vat a ktery´ snı´mat, • kdy je informace na sbeˇrnici platna´. Mezi nejcˇasteˇjsˇ´ı u´cˇastnı´ky kazˇde´ho prˇenosu, uskutecˇneˇne´m na sbeˇrnici, by´va´ te´meˇrˇ vzˇdy mikroprocesor, ktery´ v teˇchto prˇ´ıpadech rovneˇzˇ urcˇuje dalsˇ´ı u´daje prˇenosu (naprˇ. smeˇr prˇenosu, druhe´ho u´cˇastnı´ka, kdy ma´ by´t informace na sbeˇrnici platna´ a dalsˇ´ı nutne´ u´daje). Sbeˇrnice deˇlı´me na adresovou, rˇ´ıdı´cı´ a datovou.
2.1
Adresova´ sbeˇrnice
Pokud chce mikroprocesor data cˇ´ıst nebo je zapisovat, musı´ neˇjaky´m zpu˚sobem sdeˇlit mı´sto cˇtenı´ i za´pisu. Toto mı´sto je identifikova´no adresou, ktera´ je prˇena´sˇena po adresove´ sbeˇrnici. Zdrojem te´to informace je mikroprocesor. Pocˇet bitu˚ adresove´ sbeˇrnice, neboli pocˇet vodicˇu˚, odpovı´da´ pocˇtu bitu˚ adresy. Mikroprocesor vytva´rˇ´ı tuto adresu a urcˇuje tak vyuzˇitelny´ adresovy´ prostor. Jako prˇ´ıklad na´m poslouzˇ´ı naprˇ. sˇestna´ctibitova´ adresova´ sbeˇrnice, ktera´ maxima´lneˇ adresuje 216 = 65536 adres. Univerza´lnı´ mikroprocesory majı´ obvykle dva adresove´ prostory. Jeden adresovy´ prostor pro adresova´nı´ pameˇti a druhy´ pro adresova´nı´ vstupu˚ a vy´stupu˚. Kazˇdy´ blok komunikujı´cı´ s mikroprocesorem musı´ by´t umı´steˇn v neˇktere´m z teˇchto dvou prostoru˚. Tyto prostory nejsou totozˇne´ a rozlisˇenı´ teˇchto adresovatelny´ch prostoru˚ zajisˇt’uje rˇ´ıdı´cı´ sbeˇrnice.
1
2.2
ˇ ´ıdı´cı´ sbeˇrnice R
ˇ ´ıdı´cı´ sbeˇrnice je souhrn jednotlivy´ch signa´lu˚ aktivnı´ch v ru˚zny´ch cˇasovy´ch okamzˇicı´ch s ru˚zny´m R vy´znamem, ktere´ mı´vajı´ ru˚zne´ zdroje. Neˇktere´ signa´ly jsou generova´ny mikroprocesorem, neˇktere´ mohou by´t ovlivnˇova´ny jiny´mi bloky. K jednotlivy´m bloku˚m jsou pak prˇivedeny pouze signa´ly jim patrˇ´ıcı´. Mezi nejcˇasteˇjsˇ´ı signa´ly rˇ´ıdı´cı´ sbeˇrnice patrˇ´ı naprˇ´ıklad: • Signa´l RESET, jezˇ je vybaven kazˇdy´ mikroprocesor. Aktivova´n uzˇivatelem nebo jiny´m prˇ´ıdavny´m obvodem. Tento signa´l uvede mikroprocesor do jeho vy´chozı´ho stavu, • Signa´l Memory Read (MR), zabezpecˇuje cˇasova´nı´ cˇtenı´ z pameˇtı´ cˇi jiny´ch bloku˚ do mikroprocesoru nebo pocˇ´ıtacˇe, • Signa´l Memory Write (MW), zabezpecˇuje cˇasova´nı´ za´pisu do pameˇtı´ cˇi jiny´ch bloku˚ z mikroprocesoru nebo pocˇ´ıtacˇe, • Signa´ly Input/Output Read/Write (IOR/IOW), slouzˇ´ı pro cˇtenı´ z, nebo za´pis do zarˇ´ızenı´, • Signa´l READY, urcˇuje prˇipravenost obvodu. ˇ ´ıdı´cı´ sbeˇrnice mu˚zˇe obsahovat i dalsˇ´ı rˇ´ıdı´cı´ signa´ly pro potrˇeby jednotlivy´ch bloku˚, ale ty se R ovsˇem lisˇ´ı pro ru˚zne´ mikroprocesory.
2.3
Datova´ sbeˇrnice
Slouzˇ´ı pro prˇenos vsˇech dat v pocˇ´ıtacˇi. Data jsou vzˇdy prˇena´sˇena mezi dveˇma bloky pocˇ´ıtacˇe. Typicky´m prˇ´ıkladem tohoto prˇenosu je prˇenos z pameˇti do mikroprocesoru. Mikroprocesor se u´cˇastnı´, azˇ na vy´jimku jako prˇijı´macˇ a vysı´lacˇ, vsˇech prˇenosu˚ v pocˇ´ıtacˇi. V praxi je nutne´, aby v jake´mkoliv okamzˇiku byl aktivnı´ pouze jeden vysı´lacˇ, jinak rˇecˇeno budicˇ sbeˇrnice. Prˇi nedodrzˇenı´ te´to podmı´nky by na datove´ sbeˇrnici dosˇlo k neurcˇitosti signa´lu, v horsˇ´ım prˇ´ıpadeˇ pak ke znicˇenı´ jednoho nebo obou vysı´lacı´ch obvodu˚. Proto je tedy nutne´ vybavit bloky prˇipojovane´ na datovou sbeˇrnici obvody, jimizˇ umozˇnuje odpojenı´ tohoto bloku od datove´ sbeˇrnice. Takove´ obvody nazy´va´me trˇ´ıstavovy´mi budicˇi sbeˇrnice, jejichzˇ princip a realizace je na obr. 1. Trˇ´ıstavove´ budicˇe sbeˇrnice mohou by´t jednosmeˇrne´ nebo obousmeˇrne´. Tyto budicˇe majı´ kromeˇ schopnosti oddeˇlovat od sbeˇrnice take´ du˚lezˇitou u´lohu vy´konove´ho posı´lenı´. Mezi nejdu˚lezˇiteˇjsˇ´ı parametry datove´ sbeˇrnice patrˇ´ı jejı´ sˇ´ırˇka neboli pocˇet bitu˚ a cˇasova´nı´. Sˇ´ırˇka datove´ sbeˇrnice uda´va´, kolik bitu˚ je schopno se prˇene´st najednou a patrˇ´ı mezi parametry vy´razneˇ ovlivnˇujı´cı´ rychlost komunikace. Ovsˇem nema´ vy´znam, aby bitova´ sˇ´ırˇka datove´ sbeˇrnice byla veˇtsˇ´ı jak bitova´ sˇ´ırˇka mikroprocesoru.
Jednou z mozˇnostı´ jak „usˇetrˇit“ pocˇet vodicˇu˚, je mozˇnost multiplexova´nı´ sbeˇrnic. Multiplexova´nı´ spocˇ´ıva´ ve vedenı´ signa´lu˚ dvou sbeˇrnic (nejcˇasteˇji adresove´ a datove´) ve spolecˇny´ch vodicˇ´ıch takovy´m zpu˚sobem, zˇe jsou jednotlive´ signa´ly aktivnı´ v ru˚znou dobu. Signa´ly rˇ´ıdı´cı´ sbeˇrnice urcˇujı´ vy´znam pra´veˇ prˇena´sˇeny´ch dat na multiplexovane´ sbeˇrnici.
Sbeˇrnice rozezna´va´me: 2
Obra´zek 1: Obousmeˇrna´ datova´ sbeˇrnice Vnitrˇnı´ sbeˇrnice mikroprocesoru – architektura je da´na prˇeva´zˇneˇ architekturou mikroprocesoru.
Vnitrˇnı´ sbeˇrnice pocˇ´ıtacˇe – propojuje mikroprocesor s ostatnı´mi prvky pocˇ´ıtacˇe a dovoluje tedy vytvorˇenı´ ru˚zny´ch usporˇa´da´nı´ pocˇ´ıtacˇe, optima´lnı´ cenoveˇ a funkcˇneˇ pro danou aplikaci.
Vneˇjsˇ´ı sbeˇrnice pocˇ´ıtacˇe – sbeˇrnice styku s okolı´m cˇi sbeˇrnice multiprocesorove´ho syste´mu se vyskytuje ve slozˇiteˇjsˇ´ıch syste´mech, sestaveny´ch z neˇkolika pocˇ´ıtacˇu˚. Sbeˇrnice jsou pro takovy´ u´cˇel poneˇkud rozsˇ´ırˇeny a upraveny pro rozhodova´nı´ o prioriteˇ podrˇ´ızeny´ch pocˇ´ıtacˇu˚. Priorita se mu˚zˇe v pru˚beˇhu algoritmu dynamicky meˇnit podle okamzˇity´ch potrˇeb syste´mu. Jindy se pomocı´ vneˇjsˇ´ı sbeˇrnice pocˇ´ıtacˇe prˇipojujı´ k dane´mu pocˇ´ıtacˇi dalsˇ´ı prˇ´ıdavna´ zarˇ´ızenı´.
3 Prˇipojenı´ zarˇ´ızenı´ ke sbeˇrnici a adresovy´ dekode´r Prˇenosy dat na sbeˇrnicı´ch se mohou uskutecˇnit rˇ´ızenı´m technicky´mi prostrˇedky nebo programovy´m rˇ´ızenı´m. Na prˇenosu dat rˇ´ızeny´m technicky´mi prostrˇedky se podı´lı´ mikroprocesor jen cˇa´stecˇneˇ nebo je u´plneˇ vyrˇazen. Takovy´ prˇenos je rˇ´ızen rˇadicˇem prˇ´ıme´ho prˇ´ıstupu do pameˇti (DMA), viz. kapitola 4.4. Vyuzˇ´ıva´ se pro prˇenosy velky´ch bloku˚ dat, naprˇ´ıklad pro prˇenos dat z prˇ´ıdavny´ch zarˇ´ızenı´ do pameˇti RAM.
Na prˇenosu dat programovy´m rˇ´ızenı´m se na tomto prˇenosu podı´lı´ vy´hradneˇ mikroprocesor tı´m, zˇe postupneˇ prova´dı´ instrukce u´cˇelneˇ serˇazene´ do segmentu rˇ´ıdı´cı´ho programu. Mezi velke´ vy´hody patrˇ´ı levna´ realizace a snadna´ zmeˇna algoritmu prˇenosu zmeˇnou prˇ´ıslusˇne´ho segmentu rˇ´ıdı´cı´ho programu. Mezi nevy´hody patrˇ´ı pak vlastnost pomalejsˇ´ıch mikroprocesoru˚, kde je celkoveˇ pomaly´ prˇenos. Prˇenos dat s programovy´m rˇ´ızenı´m je obecneˇ prˇenosem mezi dveˇma registry. U mikroprocesoru probı´ha´ velmi cˇasto mezi neˇktery´mi vnitrˇnı´mi registry, prˇ´ıpadneˇ mezi vnitrˇnı´m registrem a bunˇkou vneˇjsˇ´ı pameˇti. Prˇenosy mezi vnitrˇnı´mi a vneˇjsˇ´ımi registry lze rozdeˇlit na prˇenosy pameˇt’ove´ a vstupneˇ/vy´stupnı´. To znamena´, zˇe umozˇnˇuje-li architektura mikroprocesoru oba tyto prˇenosy, mı´vajı´ pak tyto dva adresove´ prostory (prostor pro adresova´nı´ pameˇti a vstupu˚/vy´stupu˚). Vy´beˇr prostoru je pak urcˇen prˇ´ıslusˇny´mi signa´ly pro urcˇity´ prostor.
3
Umı´steˇnı´ perifernı´ch zarˇ´ızenı´ do neˇktere´ho z teˇchto prostoru˚ nazy´va´me mapova´nı´m. Mezi vy´hody mapova´nı´ patrˇ´ı mapova´nı´ periferiı´ do V/V prostoru a spocˇ´ıva´ v rychlejsˇ´ım prˇ´ıstupu do tohoto prostoru, zpravidla instrukcemi vstupu (IN) a vy´stupu (OUT). Vy´hoda mapova´nı´ do pameˇt’ove´ho prostoru spocˇ´ıva´ ve veˇtsˇ´ım mnozˇstvı´ pouzˇitelny´ch instrukcı´ pro prˇenos dat (k dispozici jsou vsˇechny instrukce pouzˇ´ıvane´ pro pra´ci s pameˇtmi). Mapou pameˇti si mu˚zˇeme zna´zornit obsazenı´ dı´lcˇ´ıch u´seku˚ pameˇt’ove´ho prostoru jednotlivy´mi pameˇt’mi.
Pameˇt’ovy´ prostor by´va´ obsazen vı´ce jak jednou fyzickou pameˇtı´ nebo perifernı´m zarˇ´ızenı´m, a proto je nutne´ prˇi prˇenosech dat s mikroprocesorem rozhodnout, ktere´ zarˇ´ızenı´ je ke komunikaci urcˇeno. Tı´mto u´kolem je pra´veˇ poveˇrˇen adresovy´ dekode´r. Jeho vy´stupy jsou v podstateˇ signa´ly CS (Chip Select) pro jednotlive´ obvody. Signa´l CS prˇipojuje dany´ obvod k datove´ sbeˇrnici tak, zˇe jeho sbeˇrnici prˇepne ze stavu vysoke´ impedance do aktivnı´ho stavu.
Adresovy´ dekode´r mu˚zˇe by´t staveˇn jako dekode´r pro: • u´plne´ deko´dova´nı´ adresy, • neu´plne´ deko´dova´nı´ adresy, • linea´rnı´ prˇirˇazova´nı´ adresy, • univerza´lnı´ prˇirˇazenı´ deko´dovany´ch adres.
3.1
Adresovy´ dekode´r s u´plny´m deko´dova´nı´m adresy
Prˇi u´plne´m deko´dova´nı´ je jiste´ unika´tnı´ adrese ADRi prˇirˇazen pouze jeden signa´l DEADRi a obra´ceneˇ, kde jiste´mu signa´lu DEADRi odpovı´da´ pouze jedna adresa ADRi.
3.2
Adresovy´ dekode´r s neu´plny´m deko´dova´nı´m adresy
Pro adresova´nı´ dekode´ru s neu´plny´m deko´dova´nı´m adresy nejsou uvazˇova´ny neˇktere´ rˇa´dy adresy s tı´m, zˇe jiste´mu signa´lu DEADRi prˇ´ıslusˇ´ı adresovy´ prostor ADRi, kde i=1,2,3... Takto postaveny´ adresovy´ dekode´r je sice levneˇjsˇ´ı, ale vyzˇaduje pozorne´ prˇirˇazova´nı´ adres k jednotlivy´m adresovany´m obvodu˚m. S teˇmito dekode´ry se mu˚zˇete velmi cˇasto potkat prˇi prˇideˇlova´nı´ pameˇt’ovy´ch prostoru˚ k jednotlivy´m typu˚m pameˇtı´1 nebo te´zˇ prˇi prˇideˇlova´nı´ k prˇ´ıdavny´m periferiı´m v pocˇ´ıtacˇove´m syste´mu.
3.3
Adresovy´ dekode´r s linea´rnı´m prˇirˇazenı´m adresy
Jednotlive´ rˇa´dy adresy teˇchto dekode´ru˚ jsou pokla´da´ny prˇ´ımo za vy´stupnı´ vy´beˇrove´ signa´ly dekode´ru DEADRi = ADRi. Je to tedy nejlevneˇjsˇ´ı adresovy´ dekode´r. Jeho nevy´hodou je mozˇnost prˇipojit pouze m prˇ´ıdavny´ch zarˇ´ızenı´ u adresy s m rˇa´dy. 1
EPROM, RAM, FLASH atd
4
Kombinace zde popsany´ch typu˚ dekode´ru˚ patrˇ´ı v dnesˇnı´ dobeˇ mezi nejpouzˇ´ıvaneˇjsˇ´ı typy dekode´ru˚. Jinak se sestavı´ dekode´r pro prˇedem zna´mou aplikaci s konecˇnou, vı´ce nerozsˇirˇitelnou sestavou pocˇ´ıtacˇe a jinak pro prˇedem nezna´me´ aplikace s pozˇadavkem modulove´ rozsˇirˇitelnosti pocˇ´ıtacˇe. Univerza´lnı´ rˇesˇenı´ je zpravidla slozˇiteˇjsˇ´ı a drazˇsˇ´ı. Jednı´m z takovy´ch univerza´lnı´ch adresovy´ch dekode´ru˚ je na obr. 2, ktery´ ma´ v kazˇde´ adresnı´ lince Ai vlozˇen invertor a patrˇicˇneˇ konstruovany´ prˇepı´nacˇ P (naprˇ´ıklad DIP), u ktere´ho mu˚zˇeme libovolneˇ zvolit skutecˇnou vstupnı´ adresu. Toto nastavova´nı´ probı´ha´ jen prˇed zasunutı´m modulu do rozsˇirˇovane´ho pocˇ´ıtacˇe.
Obra´zek 2: Princip univerza´lnı´ho dekode´ru adresy
ˇ ´ızenı´ komunikace 4 R Existujı´ dva prˇ´ıpady zaha´jenı´ komunikace pocˇ´ıtacˇe nebo mikroprocesoru s periferiemi: Zaha´jenı´ komunikace z iniciativy programu Jde o prˇ´ıpad, kdy pocˇa´tecˇnı´m prˇ´ıkazem k zaha´jenı´ komunikace je instrukce probı´hajı´cı´ho programu. Prˇ´ıkladem mu˚zˇe by´t naprˇ´ıklad algoritmus programu, ktery´ potrˇebuje prˇijı´mat z, resp. vysı´lat do okolı´ informace. Nutnou podmı´nkou je schopnost dane´ periferie prˇijmout resp. vyslat informaci v dany´ okamzˇik nebo musı´ informaci v okamzˇik urcˇeny´ pocˇ´ıtacˇem vystavit. Prˇ´ıkladem teˇchto periferiı´ mohou by´t stavove´ spı´nacˇe nebo sdeˇlovacˇe2 . Zaha´jenı´ komunikace z iniciativy periferie Zaha´jenı´ komunikace z iniciativy periferie nasta´va´ v prˇ´ıpadeˇ, zˇe jista´ periferie chce poslat resp. prˇijmout svou informaci z resp. do pocˇ´ıtacˇe. Zde vsˇak nasta´va´ proble´m v nava´za´nı´ komunikace, nebot’se pocˇ´ıtacˇ mu˚zˇe nacha´zet v cˇinnosti, kdy ihned nemu˚zˇe s periferiı´ komunikovat. Pocˇ´ıtacˇ se vsˇak neˇjaky´m zpu˚sobem musı´ dozveˇdeˇt, zˇe je vyzˇadova´na komunikace a ktera´ periferie je inicia´torem vy´zvy. V prˇ´ıpadeˇ, zˇe je komunikace aktivovana´ periferiı´, ne pocˇ´ıtacˇem, lze postupovat neˇkolika zpu˚soby: • Obvodovy´m rˇesˇenı´m dane´ho perifernı´ho zarˇ´ızenı´. Urcˇitou operaci mu˚zˇe uskutecˇnit tak, anizˇ by o tom musel vlastnı´ pocˇ´ıtacˇ veˇdeˇt. Toto by´va´ rˇesˇeno pomocı´ obvodu˚ nı´zke´ a strˇednı´ integrace. • Pro inicializaci urcˇite´ operace zarˇ´ızenı´m pouzˇijeme prˇ´ıznakovy´ bit (Flag) nebo skupinu prˇ´ıznakovy´ch bitu˚. Tato hodnota je cˇtena pocˇ´ıtacˇem. Pokud je hodnota rovna 1, mu˚zˇe iniciovat urcˇitou operaci. Pomocı´ prˇ´ıznakovy´ch bitu˚ oznamuje perifernı´ zarˇ´ızenı´ svu˚j stav (prˇipraven, zanepra´zdneˇn, porucha atd.). Skupina prˇ´ıznakovy´ch bitu˚ vytva´rˇ´ı stavove´ slovo (Status Word). Pocˇ´ıtacˇ tedy nejprve prˇecˇte stavove´ slovo dodane´ periferiı´ a na za´kladeˇ analy´zy tohoto slova rozhodne o dalsˇ´ı cˇinnosti. Tomuto zarˇ´ızenı´ budeme rˇ´ıkat programove´ rˇ´ızenı´. 2
signalizacˇnı´ zarˇ´ızenı´
5
• Zarˇ´ızenı´, ktere´ chce inicializovat neˇjakou operaci, pomocı´ specia´lnı´ho signa´lu procesoru prˇerusˇ´ı pra´veˇ probı´hajı´cı´ program. Procesor prˇerusˇ´ı svou okamzˇitou cˇinnost a vykona´ pozˇadovanou akci komunikace. Pote´ se vra´tı´ tam, kde byl procesor prˇerusˇen a pokracˇuje v pu˚vodnı´ cˇinnosti. Pro obsluhu komunikace mezi vı´ce zarˇ´ızenı´mi tı´mto zpu˚sobem, musı´ mı´t mikroprocesor nebo pocˇ´ıtacˇ k dispozici obsa´hlejsˇ´ı syste´m prˇerusˇenı´. • Pokud operace, kterou chce perifernı´ zarˇ´ızenı´ inicializovat, spocˇ´ıva´ v prˇenosu bloku dat z perifernı´ho zarˇ´ızenı´ do pameˇti pocˇ´ıtacˇe nebo naopak, mu˚zˇe se tato operace uskutecˇnit pomocı´ prˇ´ıme´ho prˇ´ıstupu do pameˇti (DMA).
4.1
Technika V/V bran
Vstupneˇ/Vy´stupnı´ bra´na (z angl. Input/Output I/O) je obvodem, ktery´ zprostrˇedkova´va´ prˇeda´va´nı´ dat mezi sbeˇrnicı´ pocˇ´ıtacˇe a perifernı´m zarˇ´ızenı´m pocˇ´ıtacˇe. Ma´me zde mozˇnost pouzˇitı´ bra´ny s/bez pameˇtı´. Oba typy bran jsou vy´konove´ zesilovacˇe (budicˇe) jednosmeˇrneˇ nebo obousmeˇrneˇ rˇ´ızene´. Za´kladem bran by´va´ tzv. za´chytny´ registr (latch) s trˇ´ıstavovy´m vy´stupem. Na obr. 3 je zobrazena technika nepodmı´neˇne´ho vstupu a vy´stupu dat.
Obra´zek 3: Technika nepodmı´neˇne´ho vstupu a vy´stupu dat Prˇi vstupu vysˇle pocˇ´ıtacˇ signa´l RD, cˇ´ımzˇ prˇika´zˇe vstupnı´mu zarˇ´ızenı´ prˇedat data do vstupnı´ bra´ny pocˇ´ıtacˇe. Prˇi vy´stupu pocˇ´ıtacˇ vysˇle soucˇasneˇ data i signa´l W R a vy´stupnı´ zarˇ´ızenı´ prˇevezme data. Tento zpu˚sob je mimorˇa´dneˇ jednoduchy´ a prˇedpokla´da´ sta´lou prˇipravenost perifernı´ho zarˇ´ızenı´ komunikovat.
Technika podmı´neˇne´ho vstupu/vy´stupu je zobrazena na na´sledujı´cı´ch obra´zcı´ch, kde na obr. 4 je zobrazen vstup. Jsou-li poskytova´na platna´ data ze vstupnı´ho zarˇ´ızenı´, pak se za pomocı´ snı´macı´ho impulsu STB (strobe) nastavı´ hodnota Q = 1. Tento stav Q je oznacˇova´n jako indika´tor (angl. flag). Pokud je tento stav, kdy je Q = 1 platny´, jsou prˇeda´ny data pocˇ´ıtacˇem za pomocı´ impulsu RD a po uskutecˇneˇnı´ tohoto prˇenosu je tento indika´tor vynulova´n. Na´sledneˇ vy´stup podle obr. 5, kdy pocˇ´ıtacˇ vysˇle impuls W R pro prˇepis dat do vy´stupnı´ho zarˇ´ızenı´ a na´sledne´mu nastavenı´ indika´toru. Vy´stupnı´ zarˇ´ızenı´ po prˇevzetı´ dat impulsem ACK indika´tor nastavı´ na nulovou hodnotu. Touto hodnotou je pocˇ´ıtacˇi sdeˇleno, zˇe mu˚zˇe vyslat dalsˇ´ı data.
V obou prˇ´ıpadech jde o neu´plny´ (jednosmeˇrny´ korespondencˇnı´) rezˇim, kdy pomocı´ indika´toru jsou sdeˇlova´ny informace pouze pocˇ´ıtacˇi o zaha´jenı´ nebo ukoncˇenı´ prˇenosu a kdy vysı´lacˇ dat je povi6
Obra´zek 4: Technika podmı´neˇne´ho vstupu dat nen data udrzˇovat.
Obra´zek 5: Technika podmı´neˇne´ho vy´stupu dat Technika u´plne´ho (obousmeˇrne´ho korespondencˇnı´ho) rezˇimu vyuzˇ´ıva´ vyrovna´vacı´ pameˇti (registru), klopny´ obvod pracujı´cı´ jako semafor (jeho stav je testova´n vysı´lacˇem i prˇijı´macˇem dat). Prˇicha´zı´ zde i v u´vahu mozˇnost vza´jemne´ho blokova´nı´ (interlock). Tato technika je podrobneˇji popsa´na v hlavnı´m dokumentu te´to studie.
4.2
Programove´ rˇ´ızenı´ komunikace
Vyuzˇ´ıvajı´ se zde instrukce pro vstup a vy´stup ve spojenı´ s instrukcemi umozˇnˇujı´cı´ testova´nı´ logicky´ch promeˇnny´ch a instrukcı´ skoku˚.
Pouzˇitı´ principu programove´ho rˇ´ızenı´ je velmi jednoduche´ u teˇch pocˇ´ıtacˇu˚, ktere´ majı´ prˇ´ımo vneˇjsˇ´ı vstup prˇ´ıznakove´ho (stavove´ho) bitu a instrukce podmı´neˇny´ch skoku˚, umozˇnˇujı´cı´ veˇtvenı´ programu podle hodnoty prˇ´ıznakove´ho bitu.
7
Organizaci programove´ho vybavenı´ obsluhy komunikace musı´me prˇizpu˚sobit vzhledem k nasˇemu pozˇadavku na vcˇasne´ zjisˇteˇnı´ hodnot stavovy´ch bitu˚. Typicky´m prˇ´ıpadem jsou data z kla´vesnice, kdy informace nevyzˇadujı´ prˇ´ılisˇ cˇastou pozornost mikroprocesoru.
Program urcˇity´ch zarˇ´ızenı´ lze sestavit tak, zˇe vykona´va´ opakovaneˇ urcˇitou posloupnost instrukcı´. Tato posloupnost je vzhledem k rychlosti dnesˇnı´ch mikroprocesoru˚ a pocˇ´ıtacˇu˚ natolik kra´tka´, zˇe by nemeˇlo cˇinit proble´my snı´mat stavovy´ bit mnohem cˇasteˇji naprˇ. kazˇdy´ch 10ms. Pokud tato doba trva´nı´ je delsˇ´ı, mu˚zˇeme toto testova´nı´ zarˇadit vı´cekra´t (naprˇ. vola´nı´m podprogramu) do posloupnosti instrukcı´ algoritmu programu. Jiste´ prˇ´ıpady mohou vzniknout, kdy mikroprocesor prˇi urcˇite´ fa´zi komunikace s perifernı´m zarˇ´ızenı´m nastavı´ stavovy´ bit a bude v urcˇite´ kra´tke´ dobeˇ vyzˇadovat odezvu na tento stav, jsou rˇesˇeny cˇekacı´ smycˇkou. Tı´m je mı´neˇno, zˇe pocˇ´ıtacˇ testuje dany´ stavovy´ bit, dokud nebude nastaven.
4.3
ˇ ´ızenı´ komunikace pomocı´ prˇerusˇenı´ R
Syste´m prˇerusˇenı´ mikroprocesoru usnadnˇuje programove´ rˇ´ızenı´ spolupra´ce s perifernı´mi zarˇ´ızenı´mi prˇedevsˇ´ım ve fa´zi zjisˇt’ova´nı´ zˇa´dosti o obsluhu. Jakmile perifernı´ zarˇ´ızenı´ pozˇaduje od pocˇ´ıtacˇe obsluhu (naprˇ. prˇenos dat, ru˚zna´ hla´sˇenı´ atd.), aktivuje prˇerusˇovacı´ signa´l vstupujı´cı´ do mikroprocesoru. Po zjisˇteˇnı´ zˇa´dosti o obsluhu procesor prˇerusˇ´ı pra´veˇ probı´hajı´cı´ program a prˇejde do obsluzˇne´ho programu. Po jeho dokoncˇenı´ se procesor vra´tı´ do pu˚vodnı´ho mı´sta v programu, kde byl prˇerusˇen a pokracˇuje v dalsˇ´ım prova´deˇnı´ hlavnı´ho programu, v ktere´m byl prˇerusˇen.
U tohoto rˇ´ızenı´ vsˇak nasta´va´ proble´m prˇi obsluze vı´ce zarˇ´ızenı´ a je tak potrˇeba rozsa´hlejsˇ´ıho prˇerusˇovacı´ho syste´mu. Informace, ktere´ zarˇ´ızenı´ zˇa´dalo o obsluhu je nejcˇasteˇji poskytnuta ve formeˇ vektoru prˇerusˇenı´, cozˇ je adresa prˇ´ıslusˇne´ho obsluzˇne´ho programu.
Neˇktere´ mozˇnosti identifikace zarˇ´ızenı´ zˇa´dajı´cı´ho o obsluhu: 1. Pozˇadavky na obsluhu jednotlivy´ch zarˇ´ızenı´ jsou logicky secˇteny a procesor prˇecˇte stavove´ slovo obsahujı´cı´ identifikacˇnı´ znak zarˇ´ızenı´ zˇa´dajı´cı´ o obsluhu. Pokud o obsluhu zˇa´da´ vı´ce jak jedno zarˇ´ızenı´ najednou, musı´me toto prˇijetı´ pozˇadavku˚ programoveˇ osˇetrˇit. 2. Pozˇadavky na obsluhu zarˇ´ızenı´ jsou opeˇt logicky secˇteny a signa´l potvrzenı´ zˇa´dosti od mikroprocesoru je se´rioveˇ veden prˇes vsˇechna perifernı´ zarˇ´ızenı´. Priorita je tedy da´na zarˇazenı´m jednotlivy´ch zarˇ´ızenı´ vu˚cˇi tomuto signa´lu. Pokud nastane zˇa´dost o prˇerusˇenı´, procesor vysˇle potvrzujı´cı´ signa´l nejprve prvnı´mu zarˇ´ızenı´ (zarˇ´ızenı´ s nejvysˇsˇ´ı prioritou). Pokud toto zarˇ´ızenı´ nezˇa´dalo o prˇerusˇenı´, je tento signa´l propusˇteˇn da´l. Jakmile signa´l dojde k zarˇ´ızenı´, jezˇ pozˇadavek o prˇerusˇenı´ vydalo, je nutne´ zabra´nit dalsˇ´ımu pru˚chodu tohoto signa´lu k dalsˇ´ım zarˇ´ızenı´m. Procesoru prˇeda´me vektor prˇerusˇenı´, tj. adresu, na ktere´ se nacha´zı´ obsluzˇny´ podprogram. Tento zpu˚sob jizˇ vyzˇaduje prˇ´ıdavne´ rˇesˇenı´ technicky´mi prostrˇedky. 3. Dalsˇ´ı mozˇnostı´ je pouzˇitı´ rˇadicˇe prˇerusˇenı´, jehozˇ princip spocˇ´ıva´ ve vysla´nı´ identifikacˇnı´ho znaku dane´ho zarˇ´ızenı´ azˇ po prˇijetı´ zˇa´dosti o prˇerusˇenı´. Da´le pak v prˇirˇazova´nı´ priority a jejı´
8
dynamicke´ zmeˇny jednotlivy´m zarˇ´ızenı´m prˇi vı´ce zˇa´dostech najednou a take´ zajisˇt’uje maskova´nı´ zdroju˚. Zˇa´dosti o prˇerusˇenı´ jsou nejprve porovna´ny s registrem masky, ktery´ rozhoduje o jejich maskova´nı´. Tyto zˇa´dosti jsou nejprve ulozˇeny v registru zˇa´dosti o prˇerusˇenı´. Pote´ jsou prˇijaty tyto pozˇadavky na prˇerusˇenı´ blokem priorit, rozrˇazeny podle jejich priority a vybra´n jeden pozˇadavek s nejvysˇsˇ´ı prioritou. Tento pozˇadavek s nejvysˇsˇ´ı prioritou, ktery´ posˇle procesoru kompletnı´ informace o adrese, na ktere´ je program obsluhy prˇerusˇenı´. Tento program je potrˇeba prˇed jeho cˇinnostı´ naprogramovat. Naprogramova´nı´ spocˇ´ıva´ v nastavenı´ priority jednotlivy´ch zdroju˚, masky a v neposlednı´ rˇadeˇ i adresy obsluhy prˇerusˇenı´ prˇ´ıslusˇny´m zdroju˚m.
4.4
Prˇ´ımy´ prˇ´ıstup do pameˇti DMA
V pocˇ´ıtacˇi existujı´ uda´losti, na ktere´ nelze reagovat jinak nezˇ prˇerusˇenı´m. Princip operace spocˇ´ıva´ v proste´m prˇesunu informacı´ z perifernı´ho zarˇ´ızenı´ do hlavnı´ pameˇti nebo naopak. To lze realizovat vy´hodneˇji formou prˇ´ıme´ho prˇ´ıstupu do pameˇti oznacˇovane´ zkratkou DMA (z anglicke´ho vy´razu Direct memory access).
Princip DMA spocˇ´ıva´ v prˇ´ıme´m prˇesunu informacı´ bez u´cˇasti procesoru mezi vyrovna´vacı´m registrem perifernı´ho zarˇ´ızenı´ a hlavnı´ pameˇtı´. Tedy procesor se vu˚bec neu´cˇastnı´ tohoto prˇesunu a tudı´zˇ nemusı´ ukoncˇovat sve´ aktua´lneˇ beˇzˇ´ıcı´ programy, anizˇ by je prˇerusˇoval. Jedinou nutnou podmı´nkou je „uvolneˇnı´ “ sbeˇrnice pro procesor, to znamena´, zˇe procesor na dobu prˇesunu prˇepne vsˇechny budicˇe sbeˇrnic do trˇetı´ho (vysokoimpedancˇnı´ho) stavu. Sbeˇrnice nemohou zu˚stat po dobu prˇesunu bez rˇ´ızenı´. A pra´veˇ tomu zabranˇuje existujı´cı´ dalsˇ´ı blok, ktery´ je schopny´ generovat adresu a urcˇovat okamzˇiky prˇesunu dat po datove´ sbeˇrnici. Tento blok se oznacˇuje jako blok DMA, neˇkdy te´zˇ oznacˇovany´ kana´l DMA.
Prˇ´ıklad struktury bloku DMA vidı´me na obr. 6. V tomto bloku pro prˇ´ımy´ prˇ´ıstup do pameˇti jsou urcˇeny trˇi registry pro styk se sbeˇrnicemi oznacˇene´ jako:
• registr dat – obsahuje slovo, jezˇ ma´ by´t prˇesunuto z perifernı´ho zarˇ´ızenı´ do hlavnı´ pameˇti nebo naopak, • registr adresy – slouzˇ´ı pro uchova´nı´ adresy hlavnı´ pameˇti, cozˇ je adresa, na kterou bude zapsa´no slovo nebo ze ktere´ bude dane´ slovo prˇecˇteno, • cˇ´ıtacˇ prˇesunu˚ – pozˇadovany´ pocˇet slov, ktere´ majı´ by´t jesˇteˇ prˇesunuty v ra´mci jednoho spojenı´ mezi perifernı´m zarˇ´ızenı´m a hlavnı´ pameˇtı´. Blok DMA mu˚zˇe pracovat ve dvou rezˇimech: • prˇesouva´nı´ dat mezi perifernı´m zarˇ´ızenı´m a hlavnı´ pameˇtı´ jednotliveˇ, • prˇesouva´nı´ dat v blocı´ch. 9
Obra´zek 6: Struktura bloku pro prˇ´ımy´ prˇ´ıstup do pameˇti (DMA) Cela´ operace prˇ´ıme´ho prˇ´ıstupu do pameˇti obvykle probı´ha´ v neˇkolika krocı´ch: 1. Naprogramova´nı´ procesorem bloku DMA. 2. Blok DMA spustı´ perifernı´ zarˇ´ızenı´ a cˇeka´, azˇ bude toto perifernı´ zarˇ´ızenı´ prˇipraveno bud’ data prˇijmout nebo vyslat, jakmile perifernı´ zarˇ´ızenı´ ozna´mı´ bloku DMA, zˇe je prˇipraveno zˇa´dat blok DMA o prˇ´ımy´ prˇ´ıstup do pameˇti. 3. Procesor nejprve dokoncˇ´ı strojovy´ cyklus a pote´ reaguje na zˇa´dost o DMA. Prˇ´ımy´ prˇ´ıstup k pameˇti se pak uskutecˇnˇuje pru˚beˇzˇneˇ beˇhem norma´lnı´ cˇinnosti procesoru tak, zˇe blok DMA vysı´la´ data synchronneˇ s fa´zı´ hodin Φ1 , zatı´mco procesor pouzˇ´ıva´ pameˇt’vzˇdy ve fa´zi Φ2 . 4. K prˇ´ıme´mu prˇ´ıstupu do pameˇti mu˚zˇe dojı´t v okamzˇiku, kdy vysˇle procesor vybrane´ jednotce signa´l ACK a uvolnı´ sbeˇrnice. Vybrana´ jednotka pak vysˇle na adresovou sbeˇrnici obsah sve´ho registru adresy, na datovou sbeˇrnici obsah sve´ho registru dat a cˇeka´ na provedenı´ jednoho cyklu pameˇti. Pak zveˇtsˇ´ı obsah registru adresy o jednicˇku a zmensˇ´ı obsah cˇ´ıtacˇe prˇesunu˚. Nenı´-li obsah cˇ´ıtacˇe prˇesunu˚ dosud nulovy´, testuje, zda perifernı´ zarˇ´ızenı´ jizˇ prˇesunulo nove´ slovo do registru dat. Pokud nebylo prˇesunuto nove´ slovo, ukoncˇ´ı se docˇasneˇ prˇesun dat a prˇestane vysı´lat zˇa´dost o DMA a tı´m prˇeda´ rˇ´ızenı´ procesoru. 5. Procesor da´le pokracˇuje v prova´deˇnı´ sve´ho programu azˇ do okamzˇiku, kdy neˇktery´ blok DMA vysˇle novou zˇa´dost o DMA, signalizujı´cı´ prˇipravenost dat z perifernı´ch zarˇ´ızenı´ v registru dat. 6. Pokud je obsah cˇ´ıtacˇe prˇesunu˚ nulovy´, blok DMA koncˇ´ı cely´ prˇesun a uvolnı´ sbeˇrnice. Navı´c mu˚zˇe vyslat zˇa´dost o prˇerusˇenı´, cˇ´ımzˇ si vyzˇa´da´ programovy´ za´sah procesoru, ktery´ spocˇ´ıva´ v nove´m naprogramova´nı´ jeho vnitrˇnı´ch registru˚. ˇ adicˇ DMA adresuje hlavnı´ pameˇt’a synchronizuje cˇinnost mezi sbeˇrnicı´ a perifernı´m zarˇ´ızenı´m, R zatı´mco data jdou mimo neˇj. Da´le existujı´ i takove´ prˇenosove´ subsyste´my, ktere´ jsou zalozˇeny na podobne´m principu jako u DMA. Majı´ jistou inteligenci a jsou schopny data i kontrolovat, opakovat 10
a prˇepracova´vat. Jde o kana´l, cozˇ je specia´lnı´ procesor urcˇeny´ ke spojenı´ hlavnı´ho procesoru s periˇ ´ıdı´ se kana´lovy´m programem. Kana´ly mohou by´t multiplexnı´ a selektorove´, ale fernı´mi zarˇ´ızenı´mi. R podrobneˇji o nich v kapitole 5.
5 Kana´lova´ architektura Jednotka mezi procesorem a rˇadicˇem perifernı´ho zarˇ´ızenı´ je oznacˇovana´ jako kana´l. Kana´l je specializovany´ programoveˇ rˇ´ızeny´ procesor, ktery´ je schopen se samostatneˇ rˇ´ıdit V/V operacemi. Mezi obvykle´ zpu˚soby propojenı´ patrˇ´ı jeho vyuzˇitı´ v architekturˇe pocˇ´ıtacˇe, naznacˇeno na obr. 7. Jeden syste´m mu˚zˇe obsahovat azˇ neˇkolik kana´lu˚, ktere´ jsou prˇipojeny na sbeˇrnici hlavnı´ pameˇti a procesoru. Hlavnı´ pameˇt’rˇ´ıdı´ „organiza´tor“ nebo „prˇideˇlovacˇ“ hlavnı´ pameˇti, jemuzˇ se kana´l musı´ podrˇ´ıdit jako kazˇdy´ jiny´ u´cˇastnı´k. Kazˇdy´ kana´l rˇ´ıdı´ perifernı´ sbeˇrnici, k nı´zˇ mohou by´t prˇipojena jednotliva´ perifernı´ zarˇ´ızenı´.
Obra´zek 7: Kana´lova´ architektura pocˇ´ıtacˇe U neˇktery´ch syste´mu˚ lze navı´c prˇipojit jeden kana´l k neˇkolika pocˇ´ıtacˇu˚m soucˇasneˇ, cˇ´ımzˇ lze vytva´rˇet vı´cepocˇ´ıtacˇove´ syste´my. Propojenı´m kana´lu˚ dvou ru˚zny´ch pocˇ´ıtacˇu˚ pomocı´ tzv. adapte´ru kana´l - kana´l, jezˇ se prˇipojuje na V/V sbeˇrnici, jsme schopni vytvorˇit vı´cepocˇ´ıtacˇove´ syste´my.
Vlastnı´ cˇinnost kana´lu beˇhem V/V operace je pak rˇ´ızena kana´lovy´m programem, prova´deˇny´m prˇ´ımo v kana´lu. Kana´lovy´ program je ulozˇen v hlavnı´ pameˇti a cˇte se po povelovy´ch slovech (CCW), ktera´ se jednotliveˇ prˇena´sˇejı´ do registru CCW v kana´lu, kde je rˇ´ızena jeho cˇinnost. Prova´deˇne´ operace jsou pouzˇity prˇedevsˇ´ım pro rˇ´ızenı´ prˇenosu dat mezi registrem perifernı´ho zarˇ´ızenı´ a hlavnı´ pameˇtı´.
5.1
Struktura a funkce kana´lu˚
Kana´l ma´ te´zˇ mozˇnost prˇ´ıme´ho prˇ´ıstupu do hlavnı´ pameˇti a v mnohe´m se nelisˇ´ı od DMA. Jednou z cˇa´stı´, kterou se odlisˇuje kana´l od DMA, je prˇ´ıtomnost vlastnı´ho rˇadicˇe, na´lezˇ´ıcı´ kana´lu, ktery´ mu
11
umozˇnˇuje prova´deˇt kana´lovy´ program. Vnitrˇnı´ struktura kana´lu je zna´zorneˇna na obr. 8. Struktura kana´lu je za´visla´ na tom, zda se jedna´ o selektorovy´ nebo o multiplexnı´ kana´l. Hlavnı´m rozdı´lem mezi selektorovy´m a multiplexnı´m kana´lem je to, zˇe multiplexnı´ kana´l mu˚zˇe obsluhovat vı´ce perifernı´ch zarˇ´ızenı´ soucˇasneˇ3 , kdezˇto selektorovy´ pouze jen jedno zarˇ´ızenı´. Selektorovy´ kana´l se pouzˇ´ıva´ k prˇipojenı´ velmi rychly´ch perifernı´ch zarˇ´ızenı´, prˇedevsˇ´ım disku˚. Pru˚beˇh prˇesunu dat rˇ´ızeny´ selektorovy´m kana´lem probı´ha´ tak, zˇe nejprve kana´l nava´zˇe spojenı´ s urcˇity´m perifernı´m zarˇ´ızenı´m, potom vyda´ prˇ´ıkaz ke spusˇteˇnı´ V/V operace, provede se prˇesun bloku dat z hlavnı´ pameˇti do perifernı´ho zarˇ´ızenı´ nebo naopak. Pote´ se spojenı´ ukoncˇ´ı. Po ukoncˇenı´ spojenı´ se mu˚zˇe nava´zat spojenı´ s dalsˇ´ım perifernı´m zarˇ´ızenı´m, ktere´ je na neˇj prˇipojeno. Beˇhem tohoto spojenı´ se prˇesune opeˇt cely´ blok dat. Selektorove´ kana´ly se prˇestaly pouzˇ´ıvat a nahradily je blokove´ multiplexnı´ kana´ly stejny´ch prˇenosovy´ch rychlostı´ a majı´ navı´c neˇktere´ dalsˇ´ı vy´hody.
Aby byl schopen prova´deˇt neˇkolik kana´lovy´ch programu˚ soucˇasneˇ, je rozdeˇlen kana´l na podkana´ly, ktere´ jsou prˇideˇleny jednotlivy´m perifernı´m zarˇ´ızenı´m. Podkana´lu˚ by´va´ azˇ 2564 . Multiplexnı´ kana´l se oznacˇuje jako slabikovy´ nebo blokovy´ podle toho, zda-li prˇesouva´ jednotlive´ slabiky nebo cele´ bloky mezi hlavnı´ pameˇtı´ a perifernı´m zarˇ´ızenı´m.
Obra´zek 8: Struktura kana´lu Slabikovy´ multiplexnı´ kana´l se pouzˇ´ıva´ pro obsluhu pomaly´ch zarˇ´ızenı´ jako je kla´vesnice, tiska´rna nebo komunikacˇnı´ linky cˇi spusˇteˇnı´ urcˇite´ho zarˇ´ızenı´. Prˇesun neˇkolika slabik po sobeˇ jdoucı´ch z jednoho perifernı´ho zarˇ´ızenı´ se oznacˇuje jako da´vkovy´ (burst mode). Mezi jeho vy´hody patrˇ´ı zvy´sˇena´ prˇenosova´ rychlost te´meˇrˇ o rˇa´d azˇ neˇkolika stovek tisı´c slabik za sekundu.
6 Vyhodnocova´nı´ priorit K rˇ´ızenı´ cˇinnosti pocˇ´ıtacˇove´ho syste´mu se cˇasto pouzˇ´ıvajı´ zˇa´dosti, cozˇ jsou signa´ly signalizujı´cı´ prˇipravenost zarˇ´ızenı´ vykona´vat urcˇitou cˇinnost5 . Tyto zˇa´dosti mohou prˇicha´zet z ru˚zny´ch zarˇ´ızenı´ ˇ esˇenı´m teˇchto zcela nekoordinovaneˇ a tı´m vznika´ nebezpecˇ´ı vza´jemne´ konkurence teˇchto signa´lu˚. R konfliktnı´ch situacı´ je zavedenı´ syste´mu priorit (prˇednostı´), ktere´ umozˇnˇuje procesoru rozhodova´nı´ 3
neˇkolik kana´lovy´ch programu˚ maxima´lnı´ pocˇet prˇipojitelny´ch perifernı´ch zarˇ´ızenı´ adresovatelny´ch ve standardnı´m styku 5 naprˇ. zˇa´dost o prˇerusˇenı´, zˇa´dost o DMA, zˇa´dost o sbeˇrnici apod.
4
12
o porˇadı´ jednotlivy´ch zˇa´dostı´.
Mezi nejzna´meˇjsˇ´ı metody vyhodnocenı´ priority zˇadatele jsou pouzˇ´ıva´ny druhy samostatny´ch zˇa´dostı´, zrˇeteˇzenı´ a cyklicky´ch vy´zev.
6.1
Samostatne´ zˇa´dosti
Samostatne´ zˇa´dosti jednotek se posı´lajı´ prˇ´ımo po radia´lnı´ch vodicˇ´ıch do procesoru. Ke kazˇde´mu vodicˇi „zˇa´dost“ je prˇirˇazen jeden vodicˇ s oznacˇenı´m „prˇideˇlenı´ “, probı´hajı´cı´ radia´lneˇ k zˇa´dajı´cı´ jednotce, viz. blokove´ sche´ma te´to metody na obr. 9.
Obra´zek 9: Samostatne´ zˇa´dosti Tı´mto jednoznacˇny´m prˇirˇazenı´m jednoho vodicˇe kazˇde´ jednotce je da´na informace procesoru, ktera´ jednotka zˇa´dala o sbeˇrnici. Vyhodnocenı´ priority se mu˚zˇe prove´st jednoduchy´m prioritnı´m dekode´rem. Jednotlive´ priority jsou prˇideˇleny pevneˇ, cozˇ umozˇnˇuje kombinacˇnı´mu obvodu zpracova´nı´ prˇicha´zejı´cı´ch zˇa´dostı´ s minima´lnı´m zpozˇdeˇnı´m. Dalsˇ´ı mozˇnostı´ je vyhodnotit prˇijate´ zˇa´dosti programem, ktery´ cyklicky prohleda´va´ registr, a v ktere´m jsou tyto zˇa´dosti zapsa´ny. Vy´hodou pouzˇitı´ programu je mozˇnost jeho snadne´ zmeˇny.
6.2
Zrˇeteˇzenı´
Pozˇadavky na obsluhu zarˇ´ızenı´ vysı´lajı´ vsˇechny jednotky po jedine´m vodicˇi, takzˇe procesor dosta´va´ zˇa´dost anonymneˇ a sa´m ji nemu˚zˇe vyhodnotit. Tyto pozˇadavky jsou opeˇt logicky secˇteny a signa´l potvrzenı´ zˇa´dosti od mikroprocesoru je se´rioveˇ veden prˇes vsˇechna perifernı´ zarˇ´ızenı´. Porˇadı´, v neˇmzˇ jsou jednotky tı´mto vodicˇem propojeny, odpovı´da´ porˇadı´ priorit (prvnı´ jednotka, na´sledujı´cı´ prˇ´ımo za procesorem, ma´ nejvysˇsˇ´ı prioritu, poslednı´ jednotka ma´ nejnizˇsˇ´ı prioritu). Po prˇ´ıchodu prˇideˇlovacı´ho signa´lu za´lezˇ´ı, zda jednotka zˇa´dala o prˇideˇlovacı´ signa´l. Pokud zˇa´dala, zablokuje prˇideˇlovacı´ signa´l a nepustı´ jej da´l a soucˇasneˇ potvrdı´ vy´beˇr. Potvrzenı´ vy´beˇru ucˇinı´ vygene13
Obra´zek 10: Vyhodnocenı´ priority zrˇeteˇzenı´m rova´nı´m sve´ adresy, kterou vysˇle do procesoru. Druhou mozˇnostı´ je vysla´nı´ jednobitove´ho signa´lu po zvla´sˇtnı´m vodicˇi, ktery´m je kazˇda´ jednotka spojena s procesorem. Pokud je sbeˇrnice prˇideˇlena urcˇite´ jednotce, pak vsˇechny jednotky za nı´ na´sledujı´cı´ musı´ cˇekat. Jednotka, ktera´ nezˇa´dala o prˇideˇlenı´, propustı´ prˇideˇlovacı´ signa´l beze zmeˇny a nijak na neˇj nereaguje.
6.3
Cyklicke´ vy´zvy
Obra´zek 11: Vyhodnocenı´ priority cyklicky´mi vy´zvami Trˇetı´ metodou vyhodnocova´nı´ priorit jsou cyklicke´ vy´zvy (polling). Jednotky vysı´lajı´ sve´ zˇa´dosti opeˇt po jednom vodicˇi sbeˇrnicove´ho typu, takzˇe procesor prˇijme zˇa´dost jako anonymnı´ (obr. 11). Namı´sto jednoho vodicˇe, ktery´ signalizuje prˇideˇlenı´ sbeˇrnice, je vsˇak pouzˇita skupina vodicˇu˚ „adresa jednotky“, schopna´ prˇena´sˇet adresu ktere´koliv z prˇipojeny´ch jednotek6 . Kdyzˇ procesor prˇijme zˇa´dost o prˇideˇlenı´ sbeˇrnice (a je-li prˇipraven te´to zˇa´dosti vyhoveˇt), zacˇne po adresovy´ch vodicˇ´ıch vysı´lat postupneˇ adresy vsˇech jednotek v prˇedem stanovene´m porˇadı´. Jakmile jednotka, ktera´ zˇa´dala o prˇideˇlenı´, rozpozna´ na adresovy´ch vodicˇ´ıch svou adresu, reaguje na ni jako signa´l „prˇideˇleno“, vysˇle do procesoru signa´l „potvrzenı´ vy´beˇru“ a stane se rˇ´ıdı´cı´ jednotkou. Dalsˇ´ı popis cˇinnosti je uveden v hlavnı´m dokumentu.
6
pro tento u´cˇel lze vyuzˇ´ıt te´zˇ cˇa´st adresove´ sbeˇrnice
14
7 Historie sbeˇrnic PC Typ XT bus ISA MCA EISA VESA Local BUS Opti Local BUS PCI AGP PCI-X PCI-Express
rok vyniku 1987 1984 1987 1988 1992 1992 1993 1992 2002 2004
Datova´ sˇ´ırˇka [bitu˚] 8 16 32 32 32 32 32/64 32 64 1–128
takt [MHz] 4,77 7,15 cˇi 8,33 10,22 8,33 25–66 25–66 20–66 66/133 66/133 250
Tabulka 1: Popis rozhranı´
15
Prˇenosova´ rychlost [MB/s] azˇ 2,38 azˇ 16,6 40 azˇ 33 azˇ 264 azˇ 264 132 azˇ 528 264–2112 533–1066 azˇ 32000