You are on page 1of 26

Arhitektura raunara

GLAVA 2

Jednoprocesorski raunarski sistemi

Timarac Igor, 2006

2.5 Arhitektura personalnog raunara*


2.5.1 Uvod
CPU
Kontroler ke memorije Ke memorija

CPU magistrala (100 MHz, 64 bita)

PCI kontroler

Kontroler memorije Osnovna memorija

PCI magistrala (33/66 MHz, 32/64 bita) ROM sistema SCSI kontroler USB kontroler

Kontroler proirene magistrale

Slotovi na PCI magistrali

ISA magistrala (8 MHz, 8/16 bita) Sat realnog vremena Kontroler prekida Kontroler tastature DMA Serijski port(ovi) Paralelni port(ovi) Slotovi na ISA magistrali

2.5.2 ISA magistrala*


Standardizovana je 1987. godine Sastoji se od 98 linija podijeljenih u dva segmenta segment I 62 linije (54 signalne i 8 za napajanje i uzemljenje) karakteristino za XT raunar poznat kao PC magistrala (8 linija podataka i 20 adresnih linija) segment II 36 linija dodano kod AT raunara magistrala podataka proirena za jo 8 linija (ukupno 16) adresna magistrala proirena za jo 4 linije (ukupno 24) Relativno jednostavna magistrala (linije su uglavnom baferovani signali mikroprocesora)

2.5.3 PCI magistrala*


Razvijena 1993. godine Omoguava nezavisnost sistema od tipa i broja procesora Omoguava prelazak na procesore novije generacije i koritenje multiprocesorskih arhitektura bez potrebe redefinisanja magistrale

2.5.3 PCI magistrala*


32-bitna magistrala, s mogunou proirenja na 64-bitnu

Takt magistrale je 33 MHz, s mogunou udvostruenja takta na 6 MHz


Maksimalna brzina prenosa 528 MB/s Konektor: 124-pinski (32-bitna magistrala) 188-pinski (64-bitna magistrala)

2.5.3 PCI magistrala*


PCI magistrala podrava automatizovano konfigurisanje PCI ureaja (Plug And Play PnP) Svaki PCI ureaj posjeduje konfiguracioni adresni prostor (256 bajtova) organizovan u 64 konfiguraciona etvorobajtna registra Prvih 16 konfiguracionih registara je definisano standardom Ostalih 48 registara stoji na raspolaganju i koristi se prema potrebama ureaja

2.5.4 Memorijski podsistem*


Intelovi (i kompatibilni) mikroprocesori omoguavaju nezavisno adresiranje (pristup) memorijskog i I/O prostora.

2.5.4 Memorijski podsistem*


Memorijske komponente ROM (Read-Only Memory)

Kapaciteti od 64kB do 8MB Vrijeme pristupa: 100ns - 200ns Kod PC ROM se koristi na sistemskoj ploi za uvanje BIOS programa i podataka Sadraj ROM-a obino se, zbog smanjenja vremena pristupa, kopira u RAM ROM koriste i neke periferne kartice (video kartica, disk kontroler, ...), u njihovom ROM-u nalaze se dodatne rutine i podaci koji omoguavaju komunikaciju s periferalom, i ovaj ROM se mapira u RAM memoriju

2.5.4 Memorijski podsistem*


Memorijske komponente RAM (Random-Access Memory)

Statiki RAM (SRAM) Skup registara (najee 8-bitni) sa zajednikim ulazima i izlazima Svaki bit memorie se pomou zasebnog flip-flopa Izbor registra (u koji se upisuje ili iz kojeg se ita podatak) vri se pomou adresnog dekodera integrisanog u ipu zajedno sa registrima Upis ili itanje izvodi se dovoenjem odgovarajueg upravljakog signala (R/W*, OE*) Upisani sadraj ostaje memorisan sve dok se ne promijeni na isti nain ili ne iskljui napajanje, nije potrebno osvjeavanje pa se zato zove statiki Slui za realizaciju eksterne ke memorije PC-a Kapaciteti: od 256kB do 1MB Vrijeme pristupa: od 10ns do 25ns

2.5.4 Memorijski podsistem*


Memorijske komponente RAM (Random-Access Memory)

Dinamiki RAM (DRAM)


Osnovna RAM memorija raunara Bit se memorie pomou jednog tranzistora i jednog kondenzatora Manja potronja (2-4 puta) i manje dimenzije (2-10 puta) od SRAM-a Potrebno osvjeavanje (zbog pranjenja kondenzatora) PC vri osvjeavanje DRAM-a svakih 15 s Memorijske lokacije DRAM-a su 9-bitne (9-i bit je bit parnosti) DRAM se ugrauje u obliku SIMM modula (Single-In-Line Memory Modules), postoje: 30-pinski: 9-bitne komponente 9 ipova paraleno vezanih (8+1 bit parnosti) npr. 16 MB = 9 * 16 Mb 72-pinski: 36-bitne komponente = 32bita + 4bita parnosti Vrijeme pristupa: n*10ns

2.5.4 Memorijski podsistem*


Organizacija memorijskog prostora
FFFFFFFFh Proirena memorija 00100FF0h 00100000h 000F0000h

Visoka memorija Sistemski ROM BIOS ROM BIOS na karticama Gornji memorijski blok Specifikacija proirene memorije Video RAM (kolor) Video RAM (monohromatski) Video RAM (grafiki nain rada) DOS i korisniki programi

000C0000h 000B8000h 000B0000h 000A0000h

000004FFh 00000400h 00000000h BIOS RAM Vektori prekida

2.5.5 I/O podsistem*

I/O podsistem personalnog raunara moe se grubo podijeliti na: ureaje masovne memorije (hard diskovi, flopi diskovi, kompakt diskovi, strimeri, ...) spoljanji I/O ureaje (tastatura, mi, tampa, skener, zvuna kartica, ...) interne I/O ureaje (tajmeri, brojai, razni kontroleri, ...)

2.5.5 I/O podsistem*


Organizacija I/O podsistema I/O ureaji komuniciraju s procesorom preko odgovarajuih kola za spregu (interfejs) koja su spojena na sistemsku magistralu. Zadaci interfejsa I/O ureaja: usklaivanje prirode podataka i signala koje koristi I/O ureaj sa onima koje koristi raunar, usklaivanje brzine razmjene podataka izmeu raunara i I/O ureaja, sinhronizacija rada I/O ureaja sa komandama koje stiu iz raunara, pojednostavljenje upravljanja radom ureaja.

2.5.5 I/O podsistem


Komunikacija procesora s periferalom moe da se odvija putem: Specijalnih registara (posebnih adresibilnih elija) koji se nalaze u svakom I/O interfejsu. Tipino to su: DATA IN (prihvata podatke sa magistrale) DATA OUT (alje podatke na magistralu) CONTROL (omoguava upravljanje periferalom) STATUS (sadri statusnu informaciju o periferalu). Pri tome se koriste posebne instrukcije za upis i oitavanje (IN i OUT). Tada govorimo o izolovanom I/O prenosu.
FFFFF

FFFFF

FFFF 00000 0000

I/O

Adresnog prostora u rezervisanoj oblasti osnovne memorije (memorija se fiziki nalazi na interfejsu ureaja, ali joj se pristupa kao da je rije o RAM memoriji fiziki smjetenoj na matinoj ploi). Pri tome se koriste iste instrukcije i za pristup portu i za pristup memoriji, pa govorimo o memorijski mapiranom I/O prenosu.

I/O

00000

2.5.5 I/O podsistem*


I/O memorijski prostor personalnog raunara

2.5.5 I/O podsistem


Tehnike komunikacije s I/O ureajima

Postoje tri osnovne tehnike komunikacije s I/O ureajima: programirani I/O prenos, prekidna tehnika, DMA prenos.

2.5.5 I/O podsistem PROGRAM SEGMENT 'CODE'


Programirani I/O prenos
ASSUME CS:PROGRAM ASSUME DS:PROGRAM POCETAK EQU 41h ; A KRAJ EQU 5Bh ; Z+1

Jednostavna tehnika komunikacije izmeu procesora i I/O ureaja. START:


MOV AX,PROGRAM MOV DS,AX Najjednostavniji oblik I/O prenosa je komunikacija bez sinhronizacije

procesor alje I/O ureaju po unaprijed isprogramiranom redoslijedu i dinamici MOV DX,304h podatke, pri emu se ne vodi rauna da li je periferal ispravno prihvatio i obradio MOV AL,POCETAK podatke Primjer: Napisati asemblerski program koji na I/O port 304h alje testnu ASCII sekvencu "ABCDE..VWXYZ" bez sinhronizacije (hendejkinga)
PETLJA: OUT DX,AL INC AL CMP AL,KRAJ JNZ PETLJA MOV AH,4Ch INT 21h PROGRAM ENDS END START

PODACI SEGMENT 'DATA' 2.5.5 I/O podsistem TABELA DB 3Fh, 06h , 5Bh, 4Fh, 66h, 6Dh, 7Dh, 27h, 7Fh, 6Fh PODACI ENDS PROGRAM SEGMENT 'CODE' ASSUME CS:PROGRAM,DS:PODACI START: MOV AX,PODACI MOV DS,AX MOV DX,304h MOV SI,0 MOV BX,OFFSET TABELA

Programirani I/O prenos Primjer: Napisati asemblerski program koji na I/O port 304h alje testnu sekvencu 0, 1, 2 ... 9 pripremljenu za ispis na sedmosegmentnom displeju (na port slati 7-segmentni kod) bez hendejkinga.

PETLJA: MOV AL,SI XLAT OUT DX,AL INC SI CMP SI,10 JNZ PETLJA
MOV AH,4Ch INT 21h PROGRAM ENDS END START

2.5.5 I/O podsistem


Programirani I/O prenos I/O

PODACI SEGMENT 'DATA' TABELA DB 3Fh, 06h, 5Bh, 4Fh, 66h, 6Dh, 7Dh, 27h, 7Fh, 6Fh PODACI ENDS

U ovom sluaju procesor se obraa I/O ureaju, zadaje mu komandu, alje podatak i sl. i potom od periferala oekuje povratnu informaciju PETLJA: MOV AL,SI XLAT Ovakva komunikacija gdje postoji sinhronizacija (dogovaranje) procesora i periferala MOV DX,304h naziva se hendejking (engl. handshake - rukovati se). Tipino se moe sresti kod OUT DX,AL komunikacije procesor - tampa
MOV DX,305h TEST: IN AX,DX CMP AX,2 JNZ TEST INC SI CMP SI,10 JNZ PETLJA MOV AH,4Ch INT 21h PROGRAM ENDS END START

PROGRAM SEGMENT 'CODE' ASSUME CS:PROGRAM,DS:PODACI prenos sa sinhronizacijom START: MOV AX,PODACI MOV DS,AX Procesor vodi rauna o stanju i mogunostima I/O ureaja, tako da nijedan od MOV SI,0 podataka koji se prenosi ne smije biti "preskoen" MOV BX,OFFSET TABELA

Primjer: Napisati asemblerski program koji na I/O port 304h alje testnu sekvencu 0, 1, 2 ... 9 u sedmosegmentnom kodu, koristei hendejking - naredni podatak slati tek nakon to periferal potvrdi da je spreman (tada je na portu 305h podatak 0002h).

2.5.5 I/O podsistem


Prekidna tehnika I/O prenosa Tehnika programiranog I/O prenosa nije efikasna, jer procesor troi vrijeme (vrtei se u petlji) neprestano ispitujui status periferala, pa se ee koristi prekidna tehnika Periferal procesoru saoptava zahtjev za prekid. Sve dok nema zahtjeva, procesor moe da obavlja neki drugi posao. Tek kad primi zahtjev periferala, procesor prekida s poslom koji je obavljao i opsluuje (servisira) zahtjev periferala pokretanjem i izvravanjem odgovarajue prekidne procedure (rutine). Tabela vektora prekida (256 etvorobajtnih vektora) zauzima prvih 1kB memorije. Svaki vektor sadri adresu (segment i offset) pripadajue prekidne procedure. Nia dva bajta sadre offset, a via dva bajta baznu adresu segmenta. Sistem prekida kod personalnog raunara ine:
Prekidi procesora Sistemski prekidi (BIOS i DOS) Hardverski prekidi i Opti korisniki prekidi

2.5.5 I/O podsistem


Procesorski prekidi Prva 32 prekida (INT 00h do INT 1Fh) rezervisana su za procesorske prekide
Tip 0: Tip 1: Tip 2: Tip 3: Tip 4: Dijeljenje s nulom Prekid korak-po-korak (debugger) NMI (Non-Maskable Interrupt) Breakpoint Overflow (poziva se instrukcijom INTO)

2.5.5 I/O podsistem


Sistemski prekidi Sistemski prekidi obuhvaaju prekide koji pripadaju BIOS-u (Basic I/O System) i operativnom sistemu (npr. DOS). Ove rutine pozivaju se sa INT instrukcijom, pri emu se potrebni parametri nalaze u odgovarajuim registrima:
MOV AH, 2 MOV DL, A INT 21h

Po zavretku procesiranja prekidne rutine rezultat se takoe vraa u odgovarajuem registru ili registrima.

2.5.5 I/O podsistem


Sistemski prekidi Funkcije DOS prekida 21

Fn. 01h

Parametri AH=01h

Rezultat AL=ASCII znak

Napomena ita znak sa tastature (znak se prilikom kucanja ispie na ekranu) i smjeta ga u AL registar Ispisuje znak iz DL registra na ekran Ispisuje string na ekran (string mora zavriti znakom $)

02h

AH=02h DL=ASCII znak AH=09h DS:DX=adre sa stringa

09h

PODACI SEGMENT 'DATA' PORUKA DB 13,10, 'UNESITE STRING', 13,10,'$' JESTE DB 13,10, 'TO JE PALINDROM', 13,'$' NIJE DB 13,10, 'TO NIJE PALINDROM, 13,'$' STRING DB 100 DUP (?) Primjer: PODACI ENDS

2.5.5 I/O podsistem

CMP AL,13 JZ POREDI INC SI PUSH AX JMP CITAJ

POREDI: Napisati asemblerski program koji uitava string (niz znakova) sa tastature sve dok se ne STEK SEGMENT STACK SI,OFFSET STRING pritisne ENTER, a zatim provjerava da li je uitani MOV string palindrom (palindrom je rije koja DW 100 DUP (?) se isto ita i od poetka prema kraju i od kraja prema poetku, npr. ANA).

TOS DB ? STEK ENDS

PROGRAM SEGMENT 'CODE' ASSUME CS:PROGRAM, DS:PODACI, SS:STEK START: MOV AX,PODACI MOV DS,AX MOV AX,STEK MOV SS,AX MOV SP, OFFSET TOS MOV AH,09h MOV DX,OFFSET PORUKA INT 21h MOV SI,OFFSET STRING MOV AH,01h CITAJ: INT 21h MOV [SI],AL

NASTAVI: MOV AL,[SI] CMP AL,13 JZ JESTEP POP BX CMP AL,BL JNZ NIJEP INC SI JMP NASTAVI JESTEP: MOV DX,OFFSET JESTE JMP ISPIS NIJEP: MOV DX,OFFSET NIJE ISPIS: MOV AH,09h INT 21h MOV AH,4Ch INT 21h PROGRAM ENDS END START

2.5.5 I/O podsistem


Hardverski prekidi
Intelovi mikroprocesori 80x86 (i njima kompatibilni) posjeduju dva ulaza za prekid: INTR maskable NMI non-maskable Na ulaz INTR dolaze zahtjevi za prekid od prikljuenih periferala Upravljanje prekidima vri se programabilnim kontrolerom prekida (npr. 8059A XT ili 2 x 8259A kod AT i novijih) Najvii prioritet ima nulta linija (Interrupt ReQuest) IRQ0, a najnii IRQ15 Prekidi se mogu maskirati (onemoguiti) upisivanjem odgovarajueg sadraja u registar maskiranja prekida kontrolera. Ako su prekidi omogueni procesor potvruje prijem zahtjeva za prekid pomou linije INTA, a kontroler tada na magistralu podataka izbacuje kod zahtjeva za prekid kojim je definisan prekidni vektor

2.5.5 I/O podsistem


Hardverski prekidi Tabela hardverskih prekida kod personalnog raunara

You might also like