26
Arhitektura računara GLAVA 2 Jednoprocesorski računarski sistemi imarac Igor, 2006

Arhitektura računara

  • 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

Page 1: Arhitektura računara

Arhitektura računaraGLAVA 2

Jednoprocesorski računarski sistemi

Timarac Igor, 2006

Page 2: Arhitektura računara

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

Page 3: Arhitektura računara

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)

Page 4: Arhitektura računara

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

Page 5: Arhitektura računara

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)

Page 6: Arhitektura računara

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

Page 7: Arhitektura računara

2.5.4 Memorijski podsistem*

Intelovi (i kompatibilni) mikroprocesori omogućavaju nezavisno adresiranje (pristup) memorijskog i I/O prostora.

Page 8: Arhitektura računara

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

Page 9: Arhitektura računara

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

Page 10: Arhitektura računara

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

Page 11: Arhitektura računara

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

Page 12: Arhitektura računara

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, ...)

Page 13: Arhitektura računara

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.

Page 14: Arhitektura računara

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

Page 15: Arhitektura računara

2.5.5 I/O podsistem*

I/O memorijski prostor personalnog računara

Page 16: Arhitektura 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.

Page 17: Arhitektura računara

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

Page 18: Arhitektura računara

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

Page 19: Arhitektura računara

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

Page 20: Arhitektura računara

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

Page 21: Arhitektura računara

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)

Page 22: Arhitektura računara

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.

Page 23: Arhitektura računara

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 ‘$’)

Page 24: Arhitektura računara

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

Page 25: Arhitektura računara

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

Page 26: Arhitektura računara

2.5.5 I/O podsistem

Hardverski prekidi

Tabela hardverskih prekida kod personalnog računara