260 likes | 469 Views
Princípy počítačov. Strojový cyklus Inštrukčný cyklus Komunikácia procesora s okolím Typy inštrukcií Radič. Vypracoval : Mikuláš Šimko. Strojový cyklus ( mikroinštrukcie ). Postupnosť 4 taktov. Jednému cyklu odpovedá jedna mikroinštrukcia. I. takt II. takt III. takt IV. Takt
E N D
Princípy počítačov • Strojovýcyklus • Inštrukčnýcyklus • Komunikácia procesora • s okolím • Typy inštrukcií • Radič Vypracoval: Mikuláš Šimko
Strojový cyklus (mikroinštrukcie) • Postupnosť 4 taktov. Jednému cyklu odpovedá jedna mikroinštrukcia. • I. takt • II. takt • III. takt • IV.Takt • schéma
I. Takt Z hodiniek (clock) sa vyšle signál, ktorý určí, že do riadiaceho registra sa zapíšu nejaké hodnoty, ktoré určujú riadiace slovo (mikroinštrukciu – 32 bitov) Na koncoch spojov sa objavia signály podľa mikroinštrukcie. Spustí sa A-dekóder, B-dekóder, ktoré vyberajú jeden z registrov, ktorý sa pripojí na A-zbernicu a jeden ktorý sa pripojí na B-zbernicu. S-dekóder sa zaťiaľ nespustí!!!!
II. Takt Do vybraných registrov A,B sa skopíruje obsah zbernice A,B. Aktivuje sa ALU a SHIFTER. Výsledok z ALU sa objaví na S-bus. ALU(aritmetic logical unit) SHIFTER Komunikácia s pamäťou na základe signálu MS (memory select)
III. Takt Aktivuje sa register MAR, MBR (tu je vlastne prepojenie mikroprocesora s okolím - adresová a dátová zbernica). Vzhľadom k tomu, že MBR je obojsmerná, nevieme čo bude prebiehať. To rozhodne signál R / W :(R prenosdát do MBR) (W S-bus sazapíše do MBR) MAR – Memory Adress Register “vyrovnávací” register, pomocou neho sa pripája vnútorná konštrukcia počítača s adresovou zbernicou . MBR – Memory Buffer Register (číslo)– pripája sa k údajovej zbernici, musí pracovať obojsmerne (Rozumieme prenosdát z MBR) - musí fungovať pre zápis aj na čítanie R / W = 0,1 (0 – Read, 1 - Write) Či sa to pripájať k zbernici je dané cez enable. ENS– enable (1 – pripojiť, 0 – nepripojiť ) týmto signálom sa zapisuje do registra
IV. Takt Výsledok operácie z ALU je na S-bus. Od signálu ENS závisí či sa bude v 4. takteniečo diať. Ak je ENS = 0 (nič sa nedeje). Ak ENS = 1 S-bus sa skopíruje do registra ktorý aktioval S-dekóder. Na konci 4. taktu sa na základe signálu LOAD MIC (zväčší o 1) a riadiacej pamäte sa vyberie ďalšia mikroinštrukcia (riadiaci stav), ktorá sa prenesie do MIR (tým sa vlastne začne cylus opakovať). Niekedy nie je výhodné prechádzať inštrukcie postupne, ale je potrebné vykonať skoky. Aby bolo jasné či sa MIC zväčší o 1, alebo sa má vzkonať skok, o tom rozhoduje časť MICRO SEQUEN LOGIC. COND: vyrobí sa logická funkcia, ktorá : negative (ak je výsledok záporný) N Micro sequen logic signály z ALU Z zero (ak výsledok = 0) odpoveď pre signál LOAD
Inštrukčný Cyklus (page 1) INŠTRUKCIA –Príkaz dostupný programátorovi, postupnosť znakov čísel. - Pozostáva z – operačného kódu – čo sa bude robiť - operandov – rôzneho druhu, závisí to od typu procesora a adresového režimu, odkiaľ sa operandy vyberajú. ADRESOVÉ REŽIMY:IMMEDIATE (R1 4), DIRECT (R1 (4)), INDIRECT (R1 @(4)), REGISTER ( R1 R4), DIRECT REG. (R1 (R4)), INDIRECT REG. (R1 @(R4)), (R1 (R4)+), (R1 (R1 + 4)) Aby sme vedeli, ktorá inštrukcia sa má vykonať, musíme mať register, kde sú ich adresy. Ten sa volá PROGRAM COUNTER (PC) alebo ISTRUCTION POINTER (IP)
Inštrukčný Cyklus (page 2) VYKONANIE INŠTRUKCIE – 5 FÁZ – INŠTRUKČNÝ CYKLUS : 1. FÁZA :FETCH INSTRUCTION (FI)– spočíva v tom, že musíme zaistiť, o akú inštrukciu ide. Načíta sa operačný kód (adresa je v PC) do inštrukčného registra (IR)– ten uchováva oper. kód, vloží sa to čo bolo v PC (IR (PC)) 2. FÁZA : DEKÓDOVANIE (DI) – vyberie sa sekvencia mikroinštrukcií, ktoré realizujú výpočet inštrukcie (MIC dec.[IR]) – tabuľka inštrukcií. 3. FÁZA : DEKÓDOVANIE OPRANDOV (FETCH DATA)(FD) – načíta dáta (operandy) potrebné na vykonanie inštrukcie. 4. FÁZA : EXECUTION (EI)– vykoná sa inštrukcia. 5. FÁZA : WRITE DATA (WD) – zapíše sa výsledok
Inštrukčný Cyklus (page 3) Inštrukcie sa realizujú pomocov strojových cyklov. Závisí od procesora a inštrukcií : napr. procesor XT : - delenie – 170 cyklov - násobenie – 140 cyklov Na vykonanie jednotlivých fáz inštrukcie sa realizuje niekoľko stroj. cyklov. 1. Fáza (FI) – jeden stroj. cyklus 1.takt : PC B-bus MAR 2.takt : nič sa neudeje 3.takt : MAR adr.,MBR dáta, PC S-bus, S-bus IR 4.takt : MBR IR 2. Fáza (DI)– realizuje sa logickou funkciou, cez log. obvody; z obsahu IR sa adresa prepíše na MAR, tak sa určí mikroinštrukcia 3. Fáza (FD) – môže trvať niekoľko cyklov, závisí od počtu operandov (B-bus R3, S-bus MBR (R3)) 4. Fáza (EI) – závisí od vnútornej inštrukcie, môže sa aj preskočiť.
Inštrukčný Cyklus (page 4) Realizácia inštrukcií závisí od procesora : v mynulosti procesory CISC – veľa inštrukcií v súčastnosti procesory RISC – málo inštrukcií a rýchlo Procesor RISC – technológia zreťazenia (PIPELINING) – môže vykonávať viac inštrukcií v rôznych fázach : FI DI FD EI WD FI DI FD EI WD FI DI FD EI WD ZRÝCHLENIE DOSIAHNEME : 1.) pomocou CASCHE –(vyrovnávacia pamäť) signály HIT (údaj sa nachádza v casche) MISS (údaj chýba) ak nastane MISS, tak dáta z operačnej pamäte sa premiestnia do CASCHE(metóda LRU(Last Recently Used)) – málo využívané miesta v casche sa novími údajmi prepíšu - zápis WRITE TROUGH – píše aj do casche aj do hlavnej pamäte WRITE BACK – len do casche, po vyhotovení aj do oper. pamäte - niekedy sa casche realizuje aj v procesore processor casche casche HL. Pamäť 2.) pomocou vetvenia : (procesory pentium majú dva ALU) ALU ALU
TYPY INŠTRUKCIÍ(page 1) - akumulátor - base register (bázový reg.) Inštrukcia– príkaz, úkon prístupný programátorovi - postupnosť znakov (čísel) Procesor – obsahuje časť na vykonávanie a riadenie inštrukcií a časť na spojenie so zbernicou univerzálne registre - counter reg. (počítadlo) - data reg. (zápis hodnôt s kt. pracujeme) - source index (zdrojový index) - destination index (cieľ. index reg.) indexované registre smerníky - stack pointer (ukazuje na zásobníky) - base pointer (odovzdávanie parametrov procedúram) code segment - - instruction pointer (ukazovateľ programových inštrukcií) data segment - cs ip stuck segment - 32 = 2 = 4 MB adries extra segment -
TYPY INŠTRUKCIÍ(page 2) Do časti vykonávanie a riadenie inštrukcií patrí aj príznakový register (FLAG); aby sme mali predstavu, ako dopadla inštrukcia a či môžeme vykonať nejaké skoky, ukazuje stav procesora (je daný bitmi príznakového registra) každý bit má svoj význam. - Owerflow - pretečenie - Direction – smer, či sa budú bity robiť od nižšieho k vyššiemu alebo opačne - Interupt enable – povolenie prerušení - Trup – krokovanie pri preruľení - Sign - znamienko - Zero - nula - Auxilary cary – pomocný prenos - Parity bit – koľko 1 a koľko 0 - Cary - prenos
TYPY INŠTRUKCIÍ(page3) Inštrukcie prenosu– prenos a dočasné uloženie medzivýsledkov do pamäte, alebo akumulátora (dva argumenty : kam, odkiaľ) MOV AX(kam),(1000) (čo uložiť);MOVS SI(odkiaľ), DI (kam), CX (koľko) LOAD (z pamäte do proc.) STORE (z procesora do pamäte) XCHG (výmena registrov)(napr. XCHG AX, BX)– môže nastať problém pri prekrívaní zdroja a cieľa- treba kopírovať v opač. poradí (bit D vo FLAGS) Aritmetické inštrukcie– na vykonanie základných aritmetických operácií ADD AX, 100 (+) ; SUB BX,(50) (-) ; NEG AX ; INC, DEC (+1,-1) MUL – celočíselné násobenie ; DIV – celočíselné delenie Logické inštrukcie– binárna logika, AND – logický súčin OR – logický súčet XOR – negácia ekvivalencie NOT – negácia Inštrukcie porovnávania– na prácu s príznakovým registrom TST AX – testuje register (či je 0 alebo 1)– nastaví flags podľa AX CMP AX, BX – čo je väčšie AX alebo BX ( odčíta AX-BX na základe výsledku nastavý flags)
TYPY INŠTRUKCIÍ(page4) Inštrukcie posunu (rotácie)– ROL, ROR posun o 1 vpravo (vľavo) SHL(SHR)– posun bitov vľavo(vpravo) a pridanie 0 – násobenie(delenie) 2 SAL,SAR – aritmetický shift berie do úvahy záporné čisla Inštrukcie pre prácu so zásobníkom– zásobník slúži na dočasné sklad. PUSH AX – vlož do zásobníka to čo je v AX ( SP SP- 2 , (SP) AX ) POP BX – vyber zo zásobníka a vlož do BX ( BX (SP) , SP SP + 2 ) Inštrukcie súvisiace s riadením nepodmienené skoky – JMP 4000 – prenesie sa na adresu 4000 (absolútna adresácia IP 4000) - JMP (+-) 4000 – vzdiali sa (-) alebo priblíži sa (+) o 4000 (relatívna adresácia IP IP (+-) 4000) podmienené skoky – JC ... ak C=1 tak sa vykoná ... napr. JC 1000; C=1 potom IP 1000 - JNC … ak C=0 Inštrukcie zmeny riadenia volaním procedúry– adresa návratu sa ukladá do zásobníka. CALL 1000 tri kroky SP SP-2 ; (SP) IP ; IP 1000 návrat CALL je sprostredkovaný cez RET IP (SP) ; SP SP+2
TYPY INŠTRUKCIÍ(page 5) Iné inštrukcie NOP – nič nerobí; HALT – pozastaví procesor; CLC – vynuluje FLAGS; STC – nastavuje bity vo FLAGS; CLI – nepovolené prerušenie; STI – povolené prerušenie; IN – inštrukcia komunikácie s portami; IN AX(kam)–číslo portu; OUT – inštrukcia komunikácie s portami; OUT – číslo portu, BX; FADD, FDIV – inštrukcie práce s číslami s plávajúcou desatinnou čiarkou Inštrukcie riadené pomocou sw. prerušenia INT napr. INT 15 – číslo prerušenia - využíva tabuľku vekt. prerušení realizácia INT 15 : SP SP – 2 ; (SP) FLAG ; SP SP - 2 ; (SP) CS ; SP SP – 2 ; (SP) IP ; CS TAB[číslo preruš. * 4] ; IP TAB[číslo preruš. * 4 + 2] ; RET (návrat): IP SP ; SP SP + 2 ; CS (SP) ; SP SP + 2 ; FLAG (SP) ; SP SP + 2
KOMUNIKÁCIA PROCESORA SOKOLÍM (page 1) Základné súčasti počítača : procesor, operačná pamäť, vstupno – výstupné zariadenia, (zdroj napätia, zbernice) Zjednodušená schéma : VON NEUMANOVA ARCHITEKTÚRA: - Zbernica (BUS) pamäť vstupné jednotky operačná pamäť procesor aritmetická jednotka riadiaca jednotka výstupné jednotky vstupno-výstupné zariadenia • procesor komunikuje s okolím pomocou zberníc • zbernica : - dátová – obojsmerná • - adresová – z procesora von • - riadiaca - obojsmerná D Á T A D R R I A D pro ce sor A D R D Á T R I A D Proc Oper. pamäť
KOMUNIKÁCIA PROCESORA S OKOLÍM(page 2) Komunikácia s operačnou pamäťou–z pamäte čítame alebo do nej zapisujeme Zápis: 1.) mikroprocesor nastaví adresu miesta zápisu do pamäte 2.) dáta sa zapíšu na dátovú zbernicu 3.) v riadiacej zbernici sa write nastaví na 1 4.) MS (memory select) vyberie na zápis operačnú pamäť 5.) ak sa zapíše, riadiaca zbernica vyšle signál ready Čítanie: 1.)mikroprocesor nastaví adresu miesta čítania na adr. zbernici 2.) nastaví sa signál read 3.) MS do polohy 1 4.) čítané hodnoty prídu na dátovú zbernicu 5.)ready hovorí, že na dátovej zbernici sú žiadané dáta
KOMUNIKÁCIA PROCESORA S OKOLÍM(page 3) vstup-výstup (I/O) zariadenia nemôžu byť priamo pripojené na zbernicu. Radič komunikuje s procesorom pomocou portov (sú to vlastne registre, do kt. proc. niečo vloží a radič si to vyberie alebo nie) Komunikácia procesora s inými zariadeniami PROC RADIČ vstupno výstupné zariadenie - radiče sú špecifické – t.j. – iné zariadenie iný radič - radič mení signály tak, aby mu zariadenie rozumelo - každý port má špecifické číslo (to mu priradí radič) PORTY : - riadiace (len na zápis) - obojsmerné (aj čítanie aj na zápis) - komunikáciu s portami umožňujú signály IN, OUT
KOMUNIKÁCIA PROCESORA S OKOLÍM(page 4) Zápis do portu : 1.) procesor nastaví číslo portu na adresovú zbernicu, údaj na dátovú zbernicu. 2.) signál R/W do polohy W 3.)I/O select (signál ktorý hovorí radičom, aby sa pozreli na adresovú zbernicu, či tam nie je číslo jeho portu) 4.) ak áno, údaj sa zapíše do portu 5.) vyšle sa signál ready Čítanie z portu : 1.) číslo portu nastaví procesor na adresovú zbernicu 2.) signál R/W do polohy R 3.) jeden z portov zareaguje na signál I/O select 4.) údaj sa dostane na dátovú zbernicu 5.) vyšle sa signál ready
KOMUNIKÁCIA PROCESORA S OKOLÍM(page 5) Komunikácia cez porty je relatívne pomalá napríklad pri multimediálnych prenosoch. Tu sa využíva DMA (Direct Memory Access) prenos (aby sa neprenášalo z I/O proc pamäť, ale len I/O pamäť). Na to treba žiadosť z radiča do procesora a to signál HOLD na riadiacej zbernici. Signál HOLD sa z procesora potvrdí signálom HLDA (počas 4 taktov stroj. cyklu). Teraz sa môže zapisovať z I/O do RAM-ky. Rdič podobne ako procesor posiela dáta do pamäte. Rýchlosť zápisu závisí od prístupovej doby pamäte a množstvo zápisu závisí od šírky zbernice (8 bit – 1 byte , 16 bit – 2 byty). Možno dosiahnuť až 40 MB/s. Ak viac zariadení žiada o DMA, radič vyberia jeden podľa priorít alebo sa zrealizuje zreťazením. HLDA radič radič radič
KOMUNIKÁCIA PROCESORA S OKOLÍM(page 6) HARDWARE-ové PRERUŠENIE:- upozornenie pomocou signálu INTR (interupt request), čiže žiadosť o preušenie od niektorého zariadenia. Ak sa procesor stará o prerušenie, vyšle signál INTA (interupt acknowledge). Potom chceme aby procesor vykonal nejakú špeciálnu danú číslom prerušenia. Je to možné len po skončení inštr. cyklu. Na to sa procesor pozerá do príznakového registra cez príznakový bit I. Ak je I = 1 , tak sa preddefinovaná procedúra vykoná, ináč nie. Ak I = 1 – zistí sa číslo prerušenia a radič ho dopravý na dátovú zbernicu. potom do zásobníka vložíme FLAGS, CS, IP. (CS – v tom okamihu je tu adresa nasledujúcej inštrukcie, IP – ako pri sw. preruš) Ďalej I = 0 , -(ďalšie žiadosti zatiaľ nebudú akceptované)CS : IP sa nastavia podľa tab. vekt. prerušení CS=Tab[č.preruš. * 4] IP=Tab[č.preruš. * 4 + 2]. Na konci preruš. používame inštrukciu RTI. Maskovateľné preušenie – ak zakážeme prerušenie Synchrónne prerušenie – sw. prerušenie – napríklad delenie 0, adresovanie neprístupného miesta v pamäti, reset– nastaví procesor do počiatočného stavu
RADIČ (page 1) • zariadenie pomocou ktorého procesor komunikuje s inými zariadeniami • obsahuje porty – riadiace (riadia zariadenia) - stavové (informujú čo zariadenie urobilo) - údajové (na uchovávanie údajov) • mení signály tak aby im zariadenia rozumeli • pomocou inštrukcií IN, OUT sa aktivuje, pretože I/O zariadenia nemôžu byť priamo napojené na zbernicu, musí tam byť radič • ! – je tu problém : lebo vo všeobecnosti radič na inom počítači nebude fungovať ovládač– To sa vyriešilo pomocou ovládačov – driverov – t.j. Program, ktorý vie komunikovať so zariadením (radičom). Na jeho využitie treba nainštalovať ho do pamäte, ktorá sa nevymazáva. Umiestnenie ovládača sa dá univerzálne realizovať cez sw. prerušenie.
RADIČ (page 2) Zavádzanie ovládača :- uložím kód ovládača na miesto, kt. sa neprepisuje. Do tabuľky vektorových prerušení umiestnim na dohodnutú pozíciu – adresu ovládača v pamäti. Kód Driveru : Zavádzacia časť Výkonná časť uninstal • Základné ovládače sú umiestnené v ROM – BIOSE • Je potrebné nastaviť tabuľku prerušení na príslušné miesta (drivery pre: • klávesnicu, disk, reproduktory, monitor). Niektoré drivery sú uložené • priamo v ROM pamäti radiča. • Ovládače ktoré sú súčasťou operačného systému sú v súbore IO.SYS : • - drivery pre mechaniky A, B, C,... Tieto drivery rozlišujú stopy, sektory • - klávesnica, monitor, COM, LPT porty • CONFIG.SYS – obsahuje popis umiestnenie neštandardných driverov na • disku. Zmena v súbore sa prejavý až po rešterte. Ovládače možno • zavádzať aj dinamicky napr. DRIVER.EXE. Nemusí byť od začiatku • uložený v neprepisovateľnej časti pamäte (možno ho odinštalovať) • Ovládače kt. sa zaviedli cez BIOS, IO.SYS sú súčasťou oper. systému.
RADIČ(page 3) Využitie radiča :- aby sme mohli na disketu písať (čítať), treba aby radič poznal :1.) číslo povrchu (HLAVY) disku 2.) číslo stopy (cilindra) disku 3.) číslo sektora disku173556332 - pevný disk má niekoľko povrchov sektor (najmänšia časť pre zápis, čítanie) stopa (čísluje sa z vnútra vonku) 1 sektor 512 B (najmänšia časť) signál– pre roztočenie motora : MOTORON, DIRECT, STEP, SIDE 1/0, READ, WRITE, - pre roztočený motor : INDEX, TRACK0 - pre číslo povrchu činnosť :1.) spustenie motora 2.) porovnávam pozíciu hlavy s číslom stopy, tu na základe rozdielu reagujú signály /DIRECT, STEP 3.) nastavím signál SIDE podľa čísla povrchu 4.) čakám na signál, že disketa je v index. polohe 5.) čítam hlavičku stopy a porovnávam, či som tam kde som chcel byť