Upload
elsa
View
132
Download
10
Embed Size (px)
DESCRIPTION
Arhitektura računara. GLAVA 2 Jednoprocesorski računarski sistemi. Timarac Igor, 2006. 2.5 Arhitektura personalnog računara *. 2.5.1 Uvod. 2.5.2 ISA magistrala *. Standardizovana je 1987. godine Sastoji se od 98 linija podijeljenih u dva segmenta segment I - PowerPoint PPT Presentation
Citation preview
Arhitektura računaraGLAVA 2
Jednoprocesorski računarski sistemi
Timarac Igor, 2006
2.5 Arhitektura personalnog računara*
2.5.1 Uvod
Keš memorija
CPU
Slotovi na PCI magistrali
PCI kontroler
CPU magistrala (100 MHz, 64 bita) Kontroler keš
memorije
Osnovna memorija
Kontroler memorije
Kontroler proširene magistrale
PCI magistrala (33/66 MHz, 32/64 bita)
ROM sistema
SCSI kontroler
USB kontroler
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) karakteristično za XT računar poznat kao PC magistrala (8 linija podataka i 20
adresnih linija) segment II
36 linija dodano kod AT računara magistrala podataka proširena za još 8 linija
(ukupno 16) adresna magistrala proširena za još 4 linije (ukupno
24)
Relativno jednostavna magistrala (linije su uglavnom baferovani signali mikroprocesora)
2.5.3 PCI magistrala*
Razvijena 1993. godine
Omogućava nezavisnost sistema od tipa i broja procesora
Omogućava prelazak na procesore novije generacije i korištenje multiprocesorskih arhitektura bez potrebe redefinisanja magistrale
2.5.3 PCI magistrala*
32-bitna magistrala, s mogućnošću proširenja na 64-bitnu
Takt magistrale je 33 MHz, s mogućnošću udvostručenja 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 podržava automatizovano konfigurisanje PCI uređaja (Plug And Play - PnP)
Svaki PCI uređaj 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 uređaja
2.5.4 Memorijski podsistem*
Intelovi (i kompatibilni) mikroprocesori omogućavaju 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 ploči za čuvanje BIOS programa i podataka Sadržaj ROM-a obično 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 omogućavaju komunikaciju s periferalom, i ovaj ROM se mapira u RAM memoriju
2.5.4 Memorijski podsistem*
Memorijske komponente
RAM (Random-Access Memory)
Statički RAM (SRAM)
Skup registara (najčešće 8-bitni) sa zajedničkim ulazima i izlazima Svaki bit memoriše se pomoću zasebnog flip-flopa Izbor registra (u koji se upisuje ili iz kojeg se čita podatak) vrši se pomoću
adresnog dekodera integrisanog u čipu zajedno sa registrima Upis ili čitanje izvodi se dovođenjem odgovarajućeg upravljačkog signala
(R/W*, OE*) Upisani sadržaj ostaje memorisan sve dok se ne promijeni na isti način ili ne
isključi napajanje, nije potrebno osvježavanje pa se zato zove statički Služi 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)
Dinamički RAM (DRAM)
Osnovna RAM memorija računara Bit se memoriše pomoću jednog tranzistora i jednog kondenzatora Manja potrošnja (2-4 puta) i manje dimenzije (2-10 puta) od SRAM-a Potrebno osvježavanje (zbog pražnjenja kondenzatora) PC vrši osvježavanje DRAM-a svakih 15 s Memorijske lokacije DRAM-a su 9-bitne (9-i bit je bit parnosti) DRAM se ugrađuje 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
Vektori prekida00000000h
00000400hBIOS RAM
000004FFh
DOS i korisnički programi
000A0000hVideo RAM (grafički način rada)
000B0000hVideo RAM (monohromatski)
000B8000hVideo RAM (kolor)
ROM BIOS na karticama
Gornji memorijski blok
Specifikacija proširene memorije000C0000h
Sistemski ROM BIOS
Visoka memorija
Proširena memorija
000F0000h
00100000h
00100FF0h
FFFFFFFFh
2.5.5 I/O podsistem*
I/O podsistem personalnog računara može se grubo podijeliti na:
uređaje masovne memorije (hard diskovi, flopi diskovi, kompakt diskovi, strimeri, ...) spoljašnji I/O uređaje (tastatura, miš, štampač, skener, zvučna kartica, ...) interne I/O uređaje (tajmeri, brojači, razni kontroleri, ...)
2.5.5 I/O podsistem*
Organizacija I/O podsistema
I/O uređaji komuniciraju s procesorom preko odgovarajućih kola za spregu (interfejs) koja su spojena na sistemsku magistralu.
Zadaci interfejsa I/O uređaja: usklađivanje prirode podataka i signala koje koristi I/O uređaj sa onima koje koristi
računar, usklađivanje brzine razmjene podataka između računara i I/O uređaja, sinhronizacija rada I/O uređaja sa komandama koje stižu iz računara, pojednostavljenje upravljanja radom uređaja.
2.5.5 I/O podsistem
Komunikacija procesora s periferalom može da se odvija putem:
Specijalnih registara (posebnih adresibilnih ćelija) koji se nalaze u svakom I/O interfejsu.
Tipično to su: DATA IN (prihvata podatke sa magistrale) DATA OUT (šalje podatke na magistralu) CONTROL (omogućava upravljanje periferalom) STATUS (sadrži statusnu informaciju o periferalu).
Pri tome se koriste posebne instrukcije za upis i očitavanje (IN i OUT). Tada govorimo o izolovanom I/O prenosu.
Adresnog prostora u rezervisanoj oblasti osnovne memorije (memorija se fizički nalazi na interfejsu uređaja, ali joj se pristupa kao da je riječ o RAM memoriji fizički smještenoj na matičnoj ploči).
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
FFFFF
I/O00000
FFFFF
0000
FFFF
2.5.5 I/O podsistem*
I/O memorijski prostor personalnog računara
2.5.5 I/O podsistem
Tehnike komunikacije s I/O uređajima
Postoje tri osnovne tehnike komunikacije s I/O uređajima:
programirani I/O prenos, prekidna tehnika, DMA prenos.
2.5.5 I/O podsistem
Programirani I/O prenos
Jednostavna tehnika komunikacije između procesora i I/O uređaja.
Najjednostavniji oblik I/O prenosa je komunikacija bez sinhronizacije procesor šalje I/O uređaju po unaprijed isprogramiranom redoslijedu i dinamici
podatke, pri čemu se ne vodi računa da li je periferal ispravno prihvatio i obradio podatke
Primjer: Napisati asemblerski program koji na I/O port 304h šalje testnu ASCII sekvencu "ABCDE..VWXYZ" bez sinhronizacije (hendšejkinga)
PROGRAM SEGMENT 'CODE'
ASSUME CS:PROGRAM
ASSUME DS:PROGRAM
POCETAK EQU 41h ; ‘A’
KRAJ EQU 5Bh ; ‘Z’+1
START:
MOV AX,PROGRAM
MOV DS,AX
MOV DX,304h
MOV AL,POCETAK
PETLJA:
OUT DX,AL
INC AL
CMP AL,KRAJ
JNZ PETLJA
MOV AH,4Ch
INT 21h
PROGRAM ENDS
END START
2.5.5 I/O podsistem
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 hendšejkinga.
PODACI SEGMENT 'DATA'
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
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 prenos sa sinhronizacijom Procesor vodi računa o stanju i mogućnostima I/O uređaja, tako da nijedan od podataka
koji se prenosi ne smije biti "preskočen" U ovom slučaju procesor se obraća I/O uređaju, zadaje mu komandu, šalje podatak i sl. i
potom od periferala očekuje povratnu informaciju Ovakva komunikacija gdje postoji sinhronizacija (dogovaranje) procesora i periferala
naziva se hendšejking (engl. handshake - rukovati se). Tipično se može sresti kod komunikacije procesor - štampač
Primjer: Napisati asemblerski program koji na I/O port 304h šalje testnu sekvencu 0, 1, 2 ... 9 u sedmosegmentnom kodu, koristeći hendšejking - naredni podatak slati tek nakon što periferal potvrdi da je spreman (tada je na portu 305h podatak 0002h).
PODACI SEGMENT 'DATA'
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 SI,0
MOV BX,OFFSET TABELA
PETLJA: MOV AL,SI
XLAT
MOV DX,304h
OUT DX,AL
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
2.5.5 I/O podsistem
Prekidna tehnika I/O prenosa
Tehnika programiranog I/O prenosa nije efikasna, jer procesor troši vrijeme (vrteći se u petlji) neprestano ispitujući status periferala, pa se češće koristi prekidna tehnika
Periferal procesoru saopštava zahtjev za prekid. Sve dok nema zahtjeva, procesor može da obavlja neki drugi posao.
Tek kad primi zahtjev periferala, procesor prekida s poslom koji je obavljao i opslužuje (servisira) zahtjev periferala pokretanjem i izvršavanjem odgovarajuće prekidne procedure (rutine).
Tabela vektora prekida (256 četvorobajtnih vektora) zauzima prvih 1kB memorije. Svaki vektor sadrži adresu (segment i offset) pripadajuće prekidne procedure. Niža dva bajta sadrže offset, a viša dva bajta baznu adresu segmenta.
Sistem prekida kod personalnog računara čine: Prekidi procesora Sistemski prekidi (BIOS i DOS) Hardverski prekidi i Opšti korisnički prekidi
2.5.5 I/O podsistem
Procesorski prekidi
Prva 32 prekida (INT 00h do INT 1Fh) “rezervisana” su za procesorske prekide
Tip 0: Dijeljenje s nulom Tip 1: Prekid korak-po-korak
(debugger) Tip 2: NMI (Non-Maskable
Interrupt) Tip 3: Breakpoint Tip 4: Overflow (poziva se
instrukcijom INTO)
2.5.5 I/O podsistem
Sistemski prekidi
Sistemski prekidi obuhvaćaju 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 odgovarajućim registrima:
MOV AH, 2
MOV DL, ‘A’
INT 21h
Po završetku procesiranja prekidne rutine rezultat se takođe vraća u odgovarajućem registru ili registrima.
2.5.5 I/O podsistem
Sistemski prekidi
Funkcije DOS prekida 21
Fn. Parametri Rezultat Napomena
01h AH=01h AL=ASCII znak
Čita znak sa tastature (znak se prilikom kucanja ispiše na ekranu) i smješta ga u AL registar
02h AH=02h
DL=ASCII znak
Ispisuje znak iz DL registra na ekran
09h AH=09h
DS:DX=adresa stringa
Ispisuje string na ekran (string mora završiti znakom ‘$’)
2.5.5 I/O podsistem
Primjer:
Napisati asemblerski program koji učitava string (niz znakova) sa tastature sve dok se ne pritisne ENTER, a zatim provjerava da li je učitani string palindrom (palindrom je riječ koja se isto čita i od početka prema kraju i od kraja prema početku, npr. ANA).
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 (?)
PODACI ENDS
STEK SEGMENT STACK
DW 100 DUP (?)
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
CMP AL,13
JZ POREDI
INC SI
PUSH AX
JMP CITAJ
POREDI:
MOV SI,OFFSET STRING
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 priključenih periferala
Upravljanje prekidima vrši se programabilnim kontrolerom prekida (npr. 8059A XT ili 2 x 8259A kod AT i novijih)
Najviši prioritet ima nulta linija (Interrupt ReQuest) IRQ0, a najniži IRQ15
Prekidi se mogu maskirati (onemogućiti) upisivanjem odgovarajućeg sadržaja u registar maskiranja prekida kontrolera. Ako su prekidi omogućeni procesor potvrđuje prijem zahtjeva za prekid pomoću 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 računara