curs ASC 2012-2013

95
Curs -ASC

description

ARHITECTURA SISTEMELOR DE CALCUL

Transcript of curs ASC 2012-2013

Page 1: curs ASC 2012-2013

Curs -ASC

Page 2: curs ASC 2012-2013

Structura şi funcţionarea calculatorului

Page 3: curs ASC 2012-2013

• Microcalculatorul, structurat ca o maşină “VON NEUMANN”, este un sistem programabil de prelucrarea informaţiei care are două componente inseparabile şi definitorii: – hardware şi software.

Page 4: curs ASC 2012-2013

Hardware

• Termenul desemnează componentele mecaniceşielectronice ale unui calculator (inclusivechipamentele periferice).

• Structura hardware a unui calculator conţine:

microprocesorul – dispozitiv de comandă,executie;

memoria (internă şi externă);

echipamente periferice (periferice de intrare, –periferice de ieşire).

Page 5: curs ASC 2012-2013

Componente de baz ă

• Porţi logice – dispozitive care produc rezultatul unei operaţii logice (and, or…)

• Circuite basculante bistabile (flip-flop) – circuite care au la ieşire una din cele două valori fizice posibile (0 sau 1). Ieşirea rămâne stabilă până când un impuls de la alt circuit are ca efect comutarea lui la cealaltă valoare – stochează un bit

• Cip – conţine milioane de cbb (circuite basculante bistabile)

Page 6: curs ASC 2012-2013

Tehnologie

• Cbb fiind electronice pot fi acţionate mai rapid decât cele pe suport magnetic sau optic. De aceea sunt folosite pentru construcţia componentelor interne ale calculatorului.

• Cele pe suport magnetic sau care folosesc laser sunt folosite pentru componente externe deoarece chiar dacă sunt mai lente au avantajul că păstrează informaţia şi după oprirea sursei de curent.

Page 7: curs ASC 2012-2013

Structura şi funcţionarea calculatorului - continuare

Page 8: curs ASC 2012-2013

Pe scurt …

• Structura unui microcalculator. Definitii– Componenta hardware ; blocurile funcţionale

• Unitatea Centrală de Prelucrare - µPUG, coprocesoare aritmetice, procesoare digitale de semnal, CISC, RISC.

• Memoria - formatul memoriei, conţinut / adresă, harta memoriei, “pagini“, "segmente“, memorie de date, memorie de program.

• Dispozitive de I/O - port de intrare/ieşire.• Magistrală – date, adrese, control.

– Componenta software• Sisteme de operare / Aplicaţii - instrucţiunea, setul de

instrucţiuni, program.• Nivele de abstractizare – limbaje de nivel înalt, limbaj de

asamblare, cod maşină.

Page 9: curs ASC 2012-2013

– Organizarea unităţilor de memorie programabile (registre, memorie);

– Reprezentarea informaţiei în sistemele digitale;

– Setul de instrucţiuni;– Formatul instrucţiunilor;– Moduri de adresare şi acces al

datelor şi instrucţiunilor;– Întreruperi caracteristice.

Arhitectura sistemelor de calculArhitectura unui sistem de calcul defineşte:

CE trebuie să facă maşina din punct de vedere logicISA (Instruction Set Architecture) Arhitectura Setului de Instrucţiuni

CUM se implementează ISA, implementare fizic ă

MO (Machine Organization) Organizarea Maşinii

Aplicaţii (ex. Netscape, Matlab, Word)

Sisteme de operare(ex. Unix, Windows)

Compilatoare

Asambloare

Procesor Memorie Dispozitive I/O

Magistrale de date şi control

Proiectare digitală

Proiectarea circuitelor

Tranzistoare, Layout-ul IC

Aspecte influenţate de arhitectura

setului de instrucţiuni

Page 10: curs ASC 2012-2013

A. Componenta hardware. Blocuri funcţionale

Registre, memorii, porturi de intrare/iesire

Page 11: curs ASC 2012-2013

Structura de baza a unui microcalculatorMemorie dateMemorie program

De la / la periferice

Microrocesor

Page 12: curs ASC 2012-2013

Arhitectura masinii von Neumann

Mem

UCmd

UAL

RG

InterfataI

EPI

InterfataO

EPO

Flux DateFluxCmd/Stari

UCPUC

MB

SCLegenda• UCP = {RG, UAL, UCmd} = Unitatea Centrala de Prelucrare• UC = {UCP, M} = Unitatea Centrala• MB = {UC, I/E} = Masina de Baza• SC = {MB, EP, Software de Baza} = Sistem de Calcul

Page 13: curs ASC 2012-2013

Diagrame bloc pentru exemplificarea deosebirilor dintre arhitecturile: (a)von Neumann şi (b) Harvard.

ArhitecturiArhitectura Harvard :

- organizare cu magistrale separate pentru date şi instrucţiuni este mai rapidă din punct de vedere al vitezei de funcţionare.- au o magistrală externă unică de date şi instrucţiuni, dar magistrale interne (şi circuite de memorie tampon locale) separate pentru date şi instrucţiuni.

Avantajele ale unei magistrale unice de date şi instrucţiuni (arhitectura Neumann): • folosirea unei memorie unice pentru stocarea datelor şi instrucţiunilor (memoria principală, externă procesorului).

• rezultă simplificarea UCP din punctul de vedere al automatului de adresare a memoriei şi al numărului de registre implicate. • creşte flexibilitatea sistemului, pentru că nu exista restricţii privind adresele de stocare a datelor şi instrucţiunilor în memoria principală.

Page 14: curs ASC 2012-2013

Caracteristicile de baza ale arhitecturii “Von Neumann”:

• Microprocesorul constituie Unitatea Centrală de Prelucrare a unui sistem având schema bloc funcţională din figură. El concentrează şi funcţia de prelucrare şi pe cea de comandă. Celelalte componente ale sistemului nu au “putere” de decizie.

• Memoria nu controlează şi nici nu e necesar să controleze semnificaţia informaţiei pe care o deţine şi modul în care este organizată logic.

• Legătura dintre blocuri este asigurată de magistral ă- trei componente funcţionale

• Funcţionarea sistemului se face pe baza unor programe alcătuite din secvenţe de instrucţiuni. Acestea sunt citite din memorie de către microprocesor, recunoscute şi apoi executate.

Page 15: curs ASC 2012-2013

Microprocesor (µP) (1)

• este "creierul" calculatorului.• controlează şi comandă toate operaţiile din calculator:

– Extrage in mod secvential (rând pe rând)instrucţiunile programelor(cu exceptia celor de ramificare) sidatele (operanzii) din memoriaprincipala (interna) a calculatorului,,

– Decodifică instructiunile– Executa instructiunile extrase si decodificate.– Transfera, daca este cazul, rezultatele din registrele CPU in memorie– Identifica urmatoarea instructiune de executatExeplificare:

• Citeste 1 instructiune din memorie• O decodifica• O executa

– Citeste eventualii operanzi » Ex: adunare – citeste cele doua numere

– Scrie eventual rezultatul in memorie• Trece la urmatoarea instructiune

• Microprocesorul are două componente principale:– unitatea de comandă (UC)– unitatea aritmetică şi logică (UAL).

Instruc ţiune : informaţie codificată (binar) prin care se impune microprocesorului desfăşurarea unei acţiuni specifice.

FIG. Schema bloc care indică funcţionarea ciclică a

procesorului

Page 16: curs ASC 2012-2013

Microprocesor (2)

• Unitatea de comandă (UC) controlează funcţionarea tuturor componentelor calculatorului.

• Unitatea aritmetică şi logică (ALU) realizează operaţiile aritmetice şi deciziile logice.

• Parametrii care caracterizează unitatea de comandă:– numărul de instrucţiuni,

– lungimea unei instrucţiuni

– viteza de execuţie.

Page 17: curs ASC 2012-2013

Microprocesor (3)

• Instrucţiunile la nivelul UC şi ALU (scriere, citire, operaţii logice) sunt instrucţiuni în cod-maşină.

• Un program este o secvenţă de astfel de instrucţiuni stocate în memoria internă

• Instrucţiunile în cod maşină şi sistemul de codificare constituie limbajul maşină care defineşte modul în care comunicăm calculatorului algoritmii pe care va trebui să îi execute.

Page 18: curs ASC 2012-2013

Ce este o instructiune?

• In limbaj de nivel inalt: c=a+b;

• In limbaj de asamblare (scris direct sau prin compilare):movf f,daddwf f,dmovwf f

• In limbaj masina (prin asamblor/ linker):01101111001001101110010

Portabil

Specific unui uPSET de INSTR

Page 19: curs ASC 2012-2013

Ex de set de instr: PIC16 uCByte Oriented Operations Bit Oriented Operations

addwf f,d

andwf f,d

clrf f

clrw -

comf f,d

decf f,d

decfsz f,d

incf f,d

incfsz f,d

iorwf f,d

movf f,d

movwf f

nop -

rlf f,d

rrf f,d

subwf f,d

swapf f,d

xorwf f,d

Add W and f

AND W with f

Clear f

Clear W

Complement f

Decrement f

Decrement f, Skip if 0

Increment f

Increment f, Skip if 0

Inclusive OR W with f

Move f

Move W to f

No Operation

Rotate Left f through Carry

Rotate Right f through Carry

Subtract W from f

Swap nibbles in f

Exclusive OR W with f

bcf f,b

bsf f,b

btfsc f,b

btfss f,b

Bit Clear f

Bit Set f

Bit Test f, Skip if Clear

Bit Test f, Skip if Set

Literal and Control Operations

addlw k

andlw k

call k

clrwdt -

goto k

iorlw k

movlw k

retfie -

retlw k

return -

sleep -

sublw k

xorlw k

Add literal and W

AND literal with W

Call subroutine

Clear Watchdog Timer

Go to address

Inclusive OR literal with W

Move literal to W

Return from interrupt

Return with literal in W

Return from Subroutine

Go into standby mode

Subtract W from literal

Exclusive OR literal with W

Page 20: curs ASC 2012-2013

Microprocesor (4)

• O instrucţiune cod-maşină are două câmpuri– Cod operaţie (ex. or, and,etc.)

– Operand (valoarea unui operand sau adresa valorii)

Page 21: curs ASC 2012-2013

Microprocesor (5)

• Pentru stocarea temporară a datelor cu care lucrează UC are registre – necesare pentru realizarea imediată a unor operaţii– Memoria internă – stocarea datelor necesare pe

termen scurt

– Memoria externă – stocare pe termen lung

Page 22: curs ASC 2012-2013

Registre

• Entitati de stocare a datelor:– registre:

• intim legate de UCP• adresate prin nume (ex: AX,BX, R0, R1, SP)• numar redus de registre (1..32)• timp de acces minim !!!• registre:

– generale: folosite pt. operatii aritmetice si logice– speciale: au functii determinate (ex: control, stare, pt.

adresare, pt. testare, etc.)

Page 23: curs ASC 2012-2013

Registre de baza• Registru de instructiune (RI). Dupa ciitirea instructiunii curente din mem, aceasta

este adusa in RI. Instructiune este formata din doua campuri: OPECODE si ADRESA

• Registru de functie (RF). Campul de OPECODE se transfer in RF pentru decodificare

• Registrul de adrese (RA). Contine adresa logica a operandului. Campul de Adresa din instructiune se transfera in RA.

• Registrul acumulator (ACC). Face parte din ALU fiind cea mai importanta componenta care contine un operand si apoi rezultatul in urma operatiilor logice si aritmetice

• Registrul operand. Face parte din ALU si are rolul de a memora temporar cel de-al doilea operand. Mai are si denumirea de registru tampon.

• Numaratorul de program (PC) – componenta a UC, se mai numeste si poiner de instructiuni. In faza de Fetch (extragere-aducere a codului operaţiei), la pasul 4 are loc incrementarea PC pt a indica adresa urmatoarei instructiuni de executat.

• Registrul de stare sau flag-uri. – set de biti de conditie, reprezentand diferite caracteristici ale rezultatului.

Page 24: curs ASC 2012-2013

Structură de calculator, formată din UCP şi memorie principală, cu indicarea circuitelor tampon la interfaţa procesorului cu exteriorul

Page 25: curs ASC 2012-2013

Execu ţia unui program – ciclul ma şină

• Extragere – UC solicită memoriei principale să furnizeze următoarea instrucţiune care va fi executată; UC are adresa de memorie a instrucţiunii care va fi executată în registrul contorului programului PC. UC plasează instrucţiunea din memorie în registrul de instrucţiuni (RI) şi incrementează registrul contorului programului PC, pentru a pregăti adresa următoarei instrucţiuni.

1. Decodificare – analiza câmpului cod- operaţie şi operand.

2. Execuţie – realizarea acţiunilor conform instrucţiunii decodificate

3. Reluarea ciclului.

Page 26: curs ASC 2012-2013

Exemplu• Dezvoltarea funcţională a unui µP pe

16 biţi de uz general tipic– Structura registrelor

• Structura registrelor pentru Intel 8086

Page 27: curs ASC 2012-2013

• Unitatea de execuţie:– prelucrează operanzii;– conţine registrele generale şi ALU;– acceptă informaţiile aferente instrucţiunilor deja aduse de către

BIU;– primeşte operanzii de la BIU;– trimite rezultatele la BIU;– conţine unitatea de control al microprocesorului.

• Unitatea de interfaţă cu magistrala:– furnizează (calculează) adrese pentru instrucţiuni şi date;– aduce instrucţiuni din memoria de program şi le stochează într-o

coadă;– întrerupe umplerea cozii de instrucţiuni când se impune

aducerea operanzilor sau trimiterea rezultatelor;– realizează structurarea logică a memoriei (de pildă: organizarea

segmentată a memoriei).

Page 28: curs ASC 2012-2013
Page 29: curs ASC 2012-2013

Registre - Modelul ISA x86 • Registre generale:

63 31 15 7 0

AH ALAXEAXRAX

BH BLBXEBXRBX

CH CLCXECXRCX

DH DLDXEDXRDX

DIEDIRDI

SIESIRSI

BPEBPRBP

SPESPRSP

R8-R15

Accumulator

Base index

Counter

Data

Destination index

Base pointer

Stack pointer

Source index

General purpose registers

Page 30: curs ASC 2012-2013

Registre - Modelul ISA x86

• Registre segment:

• Registre speciale:

CS15 0

DS

SS

ES

FS

GS

PC

Reg. stare (PSW)

31 16 15 0

Adresa segmentului Lungimea RPL 32 biti 20 biti 2 biti

EPC

EPSW

Page 31: curs ASC 2012-2013

Registre - Modelul ISA x86

PSWCF transport

PF paritate

AF transport auxiliar

ZF rezultat zero

SF semn

TF trasare

IF validare intreruperi mascabile

DF directia de transfer

OF depasire capacitate

PSW extinsIOPL nivel de privilegiu I/E

NT task imbricat

RF continuare in caz eroare

VM mod virtual 8086

AC verificare aliniere

VIF intrerupere virtuala

VIP validare intrerupere virtuala

ID indicator

Page 32: curs ASC 2012-2013

Exemple de arhitecturi de procesoare Intel x86

Procesor Structura/ Frecv.

Spatiu de memorie

Unitati de prelucrare

Tip executie Altele

8086/88 16 /5MHz 1Mo 2 biprocesor

80286 16/20MHz 16Mo 4 pipeline

80386 32/33MHz 4Go 6 pipeline mem. virt

80486 32/66MHz 4Go 8 pipeline mem. cache

Pentium 32/100MHz 4Go 12 2 linii pipeline

Pentium Pro

32/200MHz 4Go 12 superscalar MMX

PentiumII, III, IV

32/400MHz – 2GHz

4Go-64To 20 Superscalar, hyperthreading

SIMD

Dual –Corei7, i5, i3

64/2-3GHz 64To 2*124*12 ?

Multi-core GPU

Page 33: curs ASC 2012-2013

ex. µC Motorola 68000

Registrele de date:• Dimensiune de 32 biţi, sunt

accesabile pe 32, 16 sau 8 biţi.• Sunt registre de uz general,

sunt folosite în transferuri şi prelucrări de date.

• Pot fi folosite şi ca registre index.

Registrele de adrese:• Conţin adrese pe 24 biţi.

Organizarea memoriei:• Adresare liniară, AF=AE;• Harta memorie 224=16MB;• Formatul datelor.

Page 34: curs ASC 2012-2013

După principiile de bază ale arhitecturii care guvernează funcţionarea:

• procesoare cu set complex de instrucţiuni (CISC) numite microprocesoare "standard" sau simplu "microprocesoare";

• procesoare cu set redus de instrucţiuni (RISC).

Page 35: curs ASC 2012-2013

CISC - Complex Instruction Set Computer

• Procesoare de uz general: familia Intel 80x86 şi seria Motorola 68000. Seria 68000 este folosită de Apple Macintosh, puternic competitor IBM PC.

• Ambele familii, incluzând i386 şi 68040 sunt procesoare CISC pure. I386 este ultimul procesor CISC pur al familiei Intel. Există companii care produc CPU-uri compatibile cu seria 80x86, cele mai mari fiind AMD şi Cyrix.

• Caracteristici ale arhitecturilor CISC– Set amplu de instructiuni, peste 300;– Moduri de adresare complexe;– Folosirea de micro-instrucţiuni, execuţia instrucţiunilor presupune un număr variabil de stări.

• Folosirea microprogramelor pentru execuţia instrucţiunilor cod maşină

Page 36: curs ASC 2012-2013

CISC - Complex Instruction Set Computer

• Aspecte implicate de folosirea microprogramelor– Creşterea capacităţii necesare ROM pentru microcod reduce

spaţiul unităţilor logice de procesare şi implicit diminuează performanţele.

– Un dezavantaj semnificativ al unui set complex de instrucţiuni este acela că există instrucţiuni complexe rar folosite, instrucţiuni care ocupă o cantitate considerabilă de spaţiu disponibil pe chip în zona ROM de microcod.

Page 37: curs ASC 2012-2013

Caracteristici definitorii RISC(Reduced Instruction Set Computer)

Dezvoltarea arhitecturilor RISC are loc iniţial în două universităţi americane: Standford şi Berkeley.

1. Instrucţiunile se desfaşoară într-o singură stare: CPI = 1.

2. Unitatea de control este realizată prin “logică de tip cablat”.

3. Lungime fixă pentru formatul tuturor instrucţiunilor (uzual, de dimensiunea

operanzilor tipici).

4. Număr mic de instrucţiuni (sub 128).

5. Uniformitatea formatului instrucţiunilor (nu mai mult de 4 tipuri de formate).

6. Număr mic de moduri de adresare (sub 4).

7. Accesul memoriei se face numai cu instrucţiuni de tip “LOAD ” şi “STORE”.

8. Operaţiile de prelucrarea datelor folosesc numai registrele microprocesorului.

9. Un număr mare de “registre generale” (cel puţin 32).

Page 38: curs ASC 2012-2013

Avantajele RISC1. Realizarea fizică în structuri VLSI:- minimizarea ariei cipului dedicată Unităţii de control al microprocesorului (sub 10%);- mărirea ariei cipului disponibilă pentru registre generale;- mărirea “factorului de uniformitate” a cipului (număr total de circuite / număr de tipuri de circuite:

registre, UAL, numărătoare etc.);- posibilitatea utilizării altor tehnologii decât cea a siliciului (ex. GaAs).2. Mărirea vitezei de procesare:- prin realizarea Unităţii de control cu logică de tip cablat;- prin utilizarea unui număr mare de registre interne se reduce traficul cu memoria;- prin suprapunerea execuţiei instrucţiunilor;- prin utilizarea tehnicii “întârzierii salturilor” se previne golirea cozii de instrucţiuni.3. Scăderea costului şi mărirea fiabilităţii:- timp mai mic pentru proiectarea Unităţii de control;- timpul global de proiectare şi punere în fabricaţie este considerabil mai mic decât pentru CISC;- probabilitate mai mică de a avea erori de proiectare şi usurinţa de corectare;- lungimea standard a formatului instrucţiunilor elimină riscul depăşirii limitelor paginilor de către o

instrucţiune. Gestionarea paginilor devine mai uşoară.4. Suport pentru limbajele de nivel înalt:- realizarea compilatoarelor este mai simplă (număr mic de opţiuni în alegerea instrucţiunilor);- creşterea eficienţei prin utilizarea extensivă a operaţiilor de prelucrare în interiorul

microprocesorului;- tehnica “ferestrelor de registre” uşurează implementarea apelării subrutinelor (procedurilor).

Page 39: curs ASC 2012-2013

Dezavantajele RISC1. Numărul redus de instrucţiuni;

- rezultă că programele RISC sunt mai lungi decât cele CISC (în medie cu 30%).

2. Numărul mare de registre interne:- timp de acces mai mare;- utilizarea registrelor “pointer” pentru ferestre complică selecţia unui registru la decodare;- spaţiu mare pe cip;- tehnici complicate de gestionare a ferestrelor;- compilatoarele avansate folosesc mai eficient seturi reduse de registre;- salvarea registrelor în contextul multiprocesării (la trecerea de la un proces la altul) presupune timp mai îndelungat pentru stocare si recuperare în/din memorie.

3. Unitatea de control a microprocesorului realizată “cablat” - este mai puţin flexibilă şi mult mai greu de modificat.

4. Formatul redus al instrucţiunilor - face imposibilă adresarea directă a unei hărţi de memorie mare (de pildă, adrese fizice sau logice de 32 biţi).

Page 40: curs ASC 2012-2013

Componenta hardware ; blocurile funcţionale(continuare)

• UCP (eng CPU) - UNITATEA CENTRALĂ DE PRELUCRARE• MEMORIA• I/O - DISPOZITIVELE DE INTRARE/IEŞIRE

Page 41: curs ASC 2012-2013

Magistrala

• Magistrală - set de conexiuni fizice între blocuri prin care informaţia care circulă are o semnificaţie prestabilită. Din punct de vedere funcţional, există trei componente ale acesteia: 1. Magistrala de date, bidirecţională, permite circulaţia datelor

(operanzi/rezultate), a instrucţiunilor şi chiar a adreselor. 2. Magistrala de adrese, unidirecţională, permite microprocesorului

să localizeze informaţia în Memorie sau în Dispozitivele de intrare/ieşire; deci pe această magistrală circulă numai adrese.

3. Magistrala de control permite circulaţia, bidirecţională, a semnalelor de comandă şi control de la/la microprocesor, în calitatea sa de Unitate Centrală.

Page 42: curs ASC 2012-2013

Magistrale ale sistemului

Page 43: curs ASC 2012-2013

MEMORIA (1)MEMORIA este o secvenţă de locaţii pentru stocarea

informaţiei. Fiecare locaţie este definită prin două entităţi informaţionale:

• Con ţinutul , reprezentat de înşiruirea de cifre binare 0 sau 1 biţi; – Numere– coduri etc.

Numărul de cifre binare conţinute într-o locaţie depinde de modul în care microprocesorul organizează informaţia în memorie; mărimea unei locaţii va fi denumită formatul memoriei, exprimat în număr de biţi (ex: 8, 16, 32, 64 biţi).

• Adresa , reprezentând numărul de ordine al locaţiei, care permite identificarea sa în cadrul secvenţei de locaţii (există o corespondenţă biunivocă între fiecare locaţie de memorie şi adresa sa).

Page 44: curs ASC 2012-2013

Def: • "Harta memoriei ": totalitatea locaţiilor de memorie pe

care le poate adresa un microprocesor. • "Pagini " şi/sau "segmente ": subdiviziuni logice ale

hărţii memoriei, ale căror dimensiuni, fixe sau dinamice, sunt specifice modului în care un microprocesor anume organizează memoria.

Memoria (2)

Page 45: curs ASC 2012-2013

Memoria (3)

• Clasificări– După semnificaţia conţinutului memoriei microcalculatorului:

• Memoria de date conţine operanzi şi/sau rezultate; fizic, această porţiune de memorie este de tip RAM (cu scriere/citire).

• Memoria de program care conţine instrucţiuni; de regulă , (dar nu obligatoriu) această zonă este o memorie de tip ROM (memorie din care se poate doar citi).

– După condiţionarea sau nu de prezenţa alimentării:• rezidentă ROM; • volatilă RAM.

– După tehnologia folosită:• RAM - SRAM DRAM SDRAM

Page 46: curs ASC 2012-2013

Memoria (4)

• Oraganizare fizica– Permanente: ROM/PROM/EPROM/EEPROM/FLASH– Volatile: RAM/SRAM (statice)/ DRAM (dinamice)

• Organizare logica– Ierarhica – pe 3 nivele

• Rapida dar cu capacitate limitata = Cache• De lucru, mai lenta, cu capacitate mai mare = RAM• Memorii virtuale lente dar cu capacitate foarte mare

– Functionala: • RAM LIFO• RAM FIFO

Page 47: curs ASC 2012-2013

Memoria internă

• cuprinde spaţiul de memorare la care are accesprocesorul, fără să includă utilizarea canalelorde intrare-ieşire ale calculatorului.

• Programele împreună cu dateleşi rezultateleprelucrărilor sunt înregistrate în memoriainternă sub formă deşiruri de cifre binare.

• Parametrii memoriei interne sunt: capacitateamemorieişi timpul de acces.

Page 48: curs ASC 2012-2013

• Memoria :– interna (principala, operativa):

• memorie semiconductoare (EPROM/Flash, SRAM, DRAM)

• permite acces aleator (citire/scriere) la nivel de locatie (cuvant de date);

• timp de acces mediu (15ns-70ns), relativ constant• capacitate medie (64ko-2Go)• UCP are acces direct la memoria interna prin

intermediul magistralei sistem• spatiu liniar de adresare – locatiile sunt ordonate pe

baza de adresa• spatiul de memorie poate fi structurat pe segmente• la arhitecturile Harvard (ex: microcontroloare,

procesoare de semnal) – memorie separata pentru program si pentru date (2 spatii de adresare separate)

Page 49: curs ASC 2012-2013

Memoria internă

• Conţine cuvintele organizate în octeţi,fiecare având asociată o adresă prin carelocul său este determinat în mod unicx x x x x x x x

Bitul cel mai semnificativ

Bitul cel mai puţinsemnificativ

Page 50: curs ASC 2012-2013

Tipuri de memorie internă

Random Access Memory (RAM)

În această memorie se încarcă temporarprogramele şi datele curente care seprelucrează pe calculator.

Ea poate fiscrisă saucitită. Conţinutul săueste volatil. (Se poate pierde înurmadeconectării calculatorului de la reţea).

Page 51: curs ASC 2012-2013

Tipuri de memorie internăRandom Access Memory (RAM)

• Majoritatea adaptoarelor de tip VGA sau SVGA au încorporată o memorie RAM suplimentară necesară manipulării informaţiei afişate curent pe ecran şi creşterii vitezei de reîmprospătare a ecranului.

Page 52: curs ASC 2012-2013

Tipuri de memorie internăRandom Access Memory (RAM)

• ModuleleSIMM sunt plăci cu circuite imprimate având lipite pe ele cipuri de memorie.

• Pe un SIMM poate fi montat un număr variabil de cipuri, pe o singură faţă a plăcii sau pe amândouă.

• Pe una din laturile sale, modulul SIMM are un rând de contacte cositorite sau aurite.

• Modulele SIMM sunt montate în socluri speciale,prevăzute cu mecanisme de blocare care fixează modulul în soclu.

Page 53: curs ASC 2012-2013

Tipuri de memorie internă

CMOS este o memorie de tip RAM.

Spre deosebire de memoria RAMea are avantajulunui consummai mic şi ca urmare la deconectareacalculatorului ea rămâne alimentată printr-unacumulator din calculatorşi păstrează informaţiaînregistrată în ea.

Conţine informaţii pentru BIOS şi partea care semodifică.

Page 54: curs ASC 2012-2013

Tipuri de memorie internă

Read Only Memory (ROM)�Programele şi datele din acest tip de memorie sunt

scrise de producător prin tehnici speciale şi nu pot fi modificate de utilizator.

�Poate fi doar citită. �O parte din acest tip de memorie se declanşează la

pornirea calculatorului şi gestionează iniţializarea şi încărcarea sistemului de operare.

� La calculatoarele IBM-PC acestea conţin programele prin care se realizează comunicarea cu perifericele: BASIC INPUT OUPUT SYSTEM, BIOS.

Page 55: curs ASC 2012-2013

Tipuri de memorie internă

CACHE este o memorie specială ataşatămicroprocesorului care contribuie la mărirea vitezeicalculatorului prin două proprietăţi:

are timp de acces mic (similar registrelormicroprocesorului)

evită o serie de operaţii intermediare care apar încadrul memoriei RAMîn ceea ce priveşte accesulla microprocesor.

Page 56: curs ASC 2012-2013

• Memoria externa:• memorie pe suport magnetic (flopy-disck, hard-disck,

banda magnetica), suport optic (CD, DVD) sau semiconductor (memorii nevolatile, Flash, smart-card, etc.)

• accesul UCP la memoria externa se face prin intermediul unei interfete specializate, conectata pe magistrala

• timp de acces relativ mare (10ms-10s), variabil

• capacitate f. mare (1Go-1To), teoretic infinita

• acces aleatoriu la nivel de bloc (ex: sector) si secvential in interiorul blocului; la banda magnetica accesul este doar secvential

• memorie structurata pe unitati fizice (ex: sectoare) si logice (fisiere, directoare, clustere)

• nu exista suport la nivelul L.A. pentru accesul la locatiile memoriei externe; accesul se face prin rutine (drivere) prefabricate din SO

Page 57: curs ASC 2012-2013

• Execuţia unei instrucţiuni presupune mai multe etape, iar fiecare etapă este compusă la rândul ei din mai multe acţiuni elementare:

– Fetch – localizarea şi aducerea din memorie a codului instrucţiunii curente;• încărcarea în RA a adresei furnizate de PC; adr. disponibilă pe magistrala de adrese.• incrementarea PC.• semnal de citire din memorie (READ) pe magistrala de control.• de pe magistrala externă de date se înscrie valoarea în RD.• valoarea codului din RD este înscrisă în registrul de instrucţiuni RI.

– Decodificare – conţinutul RI individualizează instrucţiunea şi declanşează o secvenţă de acţiuni elementare pentru execuţie.

– Execuţie – activarea diverselor blocuri din UCP într-o ordine prestabilită şi/sau schimburi de informaţii cu memoria/porturile.

• UCµP trebuie să decidă în funcţie de codul primit care este formatul instrucţiunii curente (desfăşurarea pe locaţii de memorie succesive, imediat după cod, a întregii informaţii aferente execuţiei corecte a instrucţiunii).

Unitatea de comanda-control a µP

Page 58: curs ASC 2012-2013

Executia instructiunilor• Faze de executie :

– citire cod instructiune (instruction fetch IF)– decodificare instructiune (instruction decoding Dec)– citire operand (operanzi) (data fetch DF)– executie operatie (execution Ex)– scriere rezultat (write back WB)

• Cicluri de transfer :– ciclu de citire instructiune– ciclu de citire operand (optional)– ciclu de scriere rezultat (optional)=>durata unei instructiuni este determinata (in majoritatea cazurilor)

de numarul de cicluri care trebuie sa se execute• un ciclu = unu sau mai multe perioade de ceas• durata unei perioade de ceas = durata celei mai lungi cai in UCP

(suma intarzierilor produse in circ. combinationale care alcatuiesc calea unui semnal)

Page 59: curs ASC 2012-2013

Instruc ţiune– Fiecare instrucţiune este asociată în mod biunivoc cu un şir de cifre

binare; deoarece acestea "codifică" instrucţiunile, denumite coduri.

– O instrucţiune reprezintă cea mai simplă acţiune, cu rezultat bine precizat, din activitatea unui microcalculator a cărui unitate centrală de prelucrare a informaţiei este un microprocesor anume.

– Un microprocesor poate "recunoaşte" şi executa numai codurile corespunzătoare instrucţiunilor pentru care a fost construit.

• Totalitatea instrucţiunilor pe care un microprocesor le poate recunoaşte şi executa alcătuieşte setul de instrucţiuni al microprocesorului respectiv.

– Înşiruirea instrucţiunilor în memoria de program nu este haotică ci sub formă de programe, noţiune definită ca fiind o secvenţă de coduri de instrucţiuni organizate în mod logic şi coerent după un anumit algoritm, astfel încât întregul microcalculator să execute o sarcină prestabilită.

– Noţiunea de "sarcină" (task) nu trebuie confundată cu cea de program: sarcina unui microcalculator corespunde unei alocări dinamice a resurselor hardware şi software; există sarcini pentru a căror îndeplinire sunt necesare mai multe programe.

Page 60: curs ASC 2012-2013

Instructiuni in cod masina

• formatul instructiunilor (lungime+continut):– varianta 1 : fara operanzi in codul instructiunii

• operatia nu necesita operanzi sau operanzii sunt specificati implicit prin codul de operatie

– varianta 2 : un singur camp de operand in codul instructiunii

• operatia este unara (un operand) sau al doilea operand este implicit

– varianta 3: doua campuri de operanzi (sursa, destinatie)

– varianta4: trei campuri de operand (operand 1, operand 2, rezultat)

Cod operatie

Cod operatie Adresa/Data imed.

Cod operatie Adresa operand 1 Adresa op.2/Data imed.

Cod operatie Adresa operand 1 Adresa op.2/Data imed. Adresa rezultat

Page 61: curs ASC 2012-2013

Metode generice de acces la date• Metoda de acces : modalitatea de specificare (exprimare) a locatiei

instructiunii sau a operandului care urmeaza sa se acceseze

• Metode de acces pentru instructiuni:– secventiala : se citeste instructiunea de la adresa urmatoare

• PC=PC+lungimea_instructiunii_curente• ex: instructiuni aritmetice si logice

– directa : se citeste instructiunea de la adresa specificata in instructiunea curenta

• PC= adresa_directa• ex: instructiuni de salt, apel de rutine

– relativa : se citeste instructiunea de la o adresa relativa fata de adresa curenta (deplasamentul poate fi pozitiv sau negativ)

• PC= PC+deplasament• ex: instructiuni de salt, apel de rutine

– indirecta: instructiunea curenta specifica adresa adresei instructiunii urmatoare

Page 62: curs ASC 2012-2013

Exemple de metode de acces la date• Metode de acces la date:

– imediata: valoarea operandului este prezenta in codul instructiunii• ex: MOV AX, 1234H

– directa: adresa operandului este specificata in codul instructiunii• ex: MOV AX, [1234H]

– registru: operandul se afla intr-un registru intern al UCP• ex: MOV AX,BX

– indirecta : instructiunea contine adresa adresei operandului• ex: MOV AX, [SI+1234H]

– implicita: codul instructiunii implica utilizarea unui anumit registru, adresa de memorie sau adresa de adresa de memorie

• ex: PUSH AX ; implicit se foloseste SP ca registru de adresare– indexata : se acceseaza succesiv elementele unei structuri de

date de tip tablou• ex: MOV AX, [SI]

– altele: bazata, relativa, stiva

Page 63: curs ASC 2012-2013

Executia instructiunilor• Executie secventiala – CPI=5

• Executie pipeline - CPI=5..1

Instr. 1 Instr.2

Timp: T 2T 3T 4T 5T 6T 7T 8T 9T 10TIF Dec DF Ex WBIF Dec DF Ex WB

Instr.1

Instr.2

Instr.3Instr.4

Timp: T 2T 3T 4T 5T 6T 7T 8T

IF Dec DF Ex WB

IF Dec DF Ex WB

IF Dec DF Ex WB

IF Dec DF Ex WB

Page 64: curs ASC 2012-2013

Modelul ISA x86 – Moduri de lucru

• Modul real – modul de lucru 8086:– organizare pe 16 biti– spatiu maxim de memorie – 1 Mo– resursele hardware sunt direct accesibile programului utilizator

• Modul protejat : - mecanisme complexe de protectie a memoriei– registre pe 8, 16 si 32 biti– spatiu de adresare: 4Gocteti – adrese pe 32 biti– asigura un management mai bun al memoriei

• Modul “Virtual 8086” simularea executiei modului real in modul protejat

• Modul “long” pe 64 biti : modul natural de lucru al procesoarelor pe 64 biti– organizare pe 64 biti (registre, memorie)– spatiu fizic de adresare: 1Toctet) – adresa pe 40 biti– spatiu virtual de adresare 256 Tocteti –adresa pe 48 biti

Page 65: curs ASC 2012-2013

Modelul ISA x86-64 - Adresarea memoriei

• Modul “long”– mod de lucru posibil doar pe procesoarele pe

64 biti; se lucreaza cu registre pe 64 biti– in acest mod nu se poate emula modul real

(16 biti) sau virtual 8086– se pot executa programe pe 32 biti si 16 biti

protejat– adresarea memorie fizice – pe 40 biti

(1Toctet)– adresarea memoriei virtuale – pe 48 biti

(256Tocteti)

Page 66: curs ASC 2012-2013

Modelul ISA x86 - Adresarea memoriei

– modul real:

0

*16 +

Adr. segment Adr. offset

Adr. fizica

15 0 15 0

Memoria1M

Adr. offset

Adr. segment

Adr. fizica

1 2 3 4 0

5 6 7 8

1 7 9 B 8

Consecinte:

-lung. segment = 64Ko

-spatiu de memorie = 1Mo

-nu exista mec. de protectie

Page 67: curs ASC 2012-2013

Adresarea memoriei –

• calculul adresei fizice

: [ + + ]Registru segment

Registru de baza

Registru index

Deplasament

Adresa de offsetAdresa de segment

Page 68: curs ASC 2012-2013

Exemple

Figura Adresa fizica şi adrese logice

Fie baza de segment = 6020H şi offset-ul = 4267H

Page 69: curs ASC 2012-2013

Spaţiul dispozitivelor de intrare/ieşire I/OLegătura microcalculatorului cu lumea exterioară se face prinporturi. Există două moduri esenţiale de a concepe acestelegături cu perifericele: ca locaţii de memorie, ca porturipropriu-zise.Atât identificarea locaţiilor de memorie câtşi aporturilor se face folosindaceeaşi magistrală de adrese.Distincţia majoră între cele două modalităţi de acces seregăseşte la nivelul semnalelor specifice de pemagistrala decontrol.

• O unitate elementară de conversaţie cu exteriorul poartă numele de "port de intrare/ieşire".

• Între porturi şi locaţiile din Memorie există nişte similitudini: – Porturile sunt în esenţă tot locaţii de memorare a informaţiei,

adresabile; informaţia care se foloseşte uzual aici este alcătuită din operanzi/rezultate (date).

– Există o "hartă a porturilor" care poate sau nu să facă parte din harta memoriei.

Page 70: curs ASC 2012-2013

Porturi de intrare/iesire

• Porturi de intrare/iesire :– registre continute in interfetele de intrare/iesire, prin care UCP

controleaza transferul de date– tipuri de porturi:

• porturi de date : pentru transferul de date; pot fi de intrare, de iesire sau bidirectionale

• porturi de control : registre de iesire prin care se controleaza functionarea interfetei si a dispozitivului legat la interfata

• porturi de stare : registre de intrare prin care se poate testa starea interfetei si a dispozitivului legat la interfata

– accesul la porturi: • prin adresa si prin instructiuni dedicate (ex: IN, OUT); putine

instructiuni au acces direct la porturi de I/E• spatiu separat de adrese pentru memorie si pentru porturi de

I/E (exceptie: microcontroloarele)

Page 71: curs ASC 2012-2013

• Spaţiul dispozitivelor de intrare/ieşire– Accesarea porturilor ca porturi propriu-zise

– Accesarea porturilor ca locaţii de memorie

• Tehnici de intrare/ieşire uzuale

– Interogarea continuă (tehnica “polling”)

– Întreruperi

• Întreruperi caracteristice µPUG

– Accesul direct la memorie (controler DMA)

– Întreruperi nemascabile

– Întreruperi mascabile

– Întreruperi vectorizate

• Tipuri de întreruperi pentru µP Intel în modul real

Page 72: curs ASC 2012-2013

Spaţiul dispozitivelor de intrare/ieşire

� Accesarea porturilor ca locaţii de memorie

Caracteristici:� Cicluri maşină de acces în memorie;� Semnale pe magistrala de control folosite

pentru accesul în memorie: MEMR şi MEMW;

Avantaje - Dezavantaje:� Extind toate caracteristicile transferurilor de

date asupra instrucţiunilor I/O;� Extind utilizarea porturilor şi în cadrul

instrucţiunilor de prelucrări de date;� Consumă spaţiu din harta memoriei;� Timp mare de acces (formatul instrucţiunilor,

modurile de adresare).

� Accesarea porturilor ca porturi propriu-zise

Caracteristici:� Cicluri maşină specifice;� Semnale distincte pe magistrala de control:

IOR şi IOW;� Instrucţiuni specializate pentru transfer

IN d, portOUT port, d

unde d este acumulatorul implicit sau dedicat;� Moduri de adresare foarte restrictive pentru

porturi:� directă� indirectă prin registru.

� Harta porturilor este mult mai mică decât harta memoriei;

Avantaje - Dezavantaje:� Acces rapid la porturi;� Necesită coduri de instrucţiuni;� Necesită terminale de pe magistrala de

control.

Page 73: curs ASC 2012-2013

Sunt tehnici de sincronizare a microcalculatorului cu echipamenteleperiferice conectate prin intermediul porturilor. În principal există două mari categorii de tehnici de intrare / ieşire:

A. Sincronecu programul curent;B. Asincronecu programul în curs de desfăşurare.

Tehnici de intrare/ieşire uzuale (1/2)

A. Interogarea continu ă (tehnica “polling”)Caracteristici:

� Este o tehnică sincronă cu programul; ea presupune că porturile îşi pot manifesta disponibilitatea de conversaţie printr-un “cuvânt de stare”.

� Microprocesorul citeşte periodic starea porturilorpentru a surprinde momentul în care porturile sunt disponibile transferurilor de date.

� Singura cale fizică de comunicaţie este magistrala de date.

Avantaje:� Nu implică hardware suplimentar;

� Comunicarea cu perifericele se face sincron cu programul curent.

Dezavantaje:� Interogarea consumă timp;

� Se pierd posibile cereri de comunicare cu perifericele.

Spre exemplu, să presupunem că msb semnifică:

1 – port gata pentru conversaţie0 – port ocupat

Page 74: curs ASC 2012-2013

Tehnici de intrare/ieşire uzualeB. Întreruperi

Caracteristici:• Presupune că orişice eveniment

extern este în esenţă asincron cu activitatea curentă a calculatorului.

• Există o cale fizică de comunicare a porturilor cu µP pe care acestea pot trimite semnale unei intrări specializate (notată în figură cu INT).

Definiţii:• Cerere de întrerupere: semnal trimis unui terminal dedicat al microprocesorului prin care un periferic

(prin intermediul unui port) cere acces la resursele sistemului.

• Răspuns la o (accepatare) cerere de întrerupere: o secvenţă de acţiuni pe care microprocesorul o declansează părăsind programul normal de funcţionare.

• Rutina de deservire a unei întreruperi: un program prestabilit, aflat la o adresă prestabilită, prin care microprocesorul răspunde la o anumită cerere de întrerupere formulată de un anumit periferic.

Page 75: curs ASC 2012-2013

Întreruperi caracteristice µP

A. Cererea de acces direct la memorie

(DMA – Direct Memory Acces )

• Se constituie într-un tip aparte de întrerupere care nu se conformează procedurii generale de răspuns. Este o tehnică pur hardware care nu presupune nici un fel de pregătiri în programele microcalculatorului.

• Cererea este formulată pe un terminal specializat (denumit de regulă BUSRQ), are prioritate maximă şi răspunsul aşteaptă doar terminarea ciclului maşină curent.

• .• Microprocesorul “îngheţă” întreaga activitate internă; magistralele sale trec în stare highZ iar controlul

întregului microcalculator este preluat de un circuit specializat – controler DMA; acesta facilitează transferul informaţiei direct între memorie şi porturi.

Page 76: curs ASC 2012-2013

Întreruperi caracteristice µP

B. Întreruperi nemascabile• Cererea de întrerupere nemascabilă este formulată pe un terminal dedicat numit în general NMI.• Răspunsul aşteaptă terminarea instrucţiunii în curs de desfăşurare şi se conformează procedurii

generale de răspuns.• Are prioritatea imediat următoare cererii DMA.• Caracteristici:

– Nu poate fi invalidată de către utilizator;– Rutina de deservire are o localizare prestabilită, definită de fabricant, deci răspunsul răspunsul

este unic indiferent de perifericul care solicită această întrerupere.

C. Întreruperi mascabile� Cererea de întrerupere mascabilă este formulată pe un terminal dedicat INT� Răspunsul aşteaptă terminarea instrucţiunii curente şi se conformează procedurii generale de

răspuns.� Ca prioritate, urmează după întreruperile nemascabile.� Caracteristici:

� Poate fi invalidată de către utilizator (fanion / fanioane de validare a întreruperilor);� Rutina de deservire a întreruperii are o adresă care depinde de “modul de răspuns” prestabilit:

� “modul 0” – perifericul stabileşte adresa dar şi instrucţiunea de apel a rutinei de deservire a întreruperii;� “modul 1” – adresa rutinei de deservire a întreruperii este prestabilită;� “modul 2” – întreruperi vectorizate.

Page 77: curs ASC 2012-2013

Întreruperi caracteristice µP

Întreruperi vectorizate

Definiţie:

Se numeşte vector de întrerupere o adresă furnizată indirect de către perifericul care cere întreruperea, adresă unde se află rutina de deservire a cererii de întrerupere.

• Un periferic trimite, indirect, un vector de întrerupere dintr-o mulţime de vectori posibili, alegând astfel o rutinăde deservire din mai multe rutinepotenţiale.

• Se utilizează adresarea indirectă cu memoria folosind o tabela cu vectori de întrerupere.

Probleme generale pe care le pune mecanismul întreruperilor vectorizate:

1. Mărimea vectorului de întrerupere;

2. Dimensiunea informaţiei furnizată de periferic (“tip ”);

3. Mărimea tabelei cu vectori de întrerupere;

4. Localizarea tabelei cu vectori de întrerupere în harta memoriei.

Page 78: curs ASC 2012-2013

B. Componenta software

• Componenta software: o serie de programe organizate în moduri specifice.

Două categorii de software: 1. Sistemul de operare: totalitatea programelor care permit

utilizatorului accesul complet la resursele sistemului (exemple: UNIX, MS-DOS, etc.). Poate fi: rezident (permanent în memoria internă) sau încărcabil dintr-o memorie externă (operaţie denumită "bootstrap").

2. Software-ul utilizatorului, alcătuit din totalitatea programelor folosite pentru îndeplinirea unor sarcini specifice.

Page 79: curs ASC 2012-2013

Componenta software

• Clasificare:– Sisteme de operare

• Linux, DOS, Windows 9x / NT sever │ workstation / 2000 / XP

– Aplicaţii• Limbaje de programare: ASM, Cobol, Delphi, Fortran, Java, Pascal, Basic, C, C++; • Limbaje script: Tcl/Tk, Matlab, Perl;• Programare web HTML, Java, PHP, Perl;• Baze de date: FoxPro, ODBC, ORACLE;• Grafică: Adobe PhotoShop, AutoCAD, CorelDraw, FrontPage, Macromedia; • Procesoare de text: Microsoft Office, Microsoft Publisher;

• Def.– Instrucţiunea este informaţia codificată (binar) prin care se impune microprocesorului

desfăşurarea unei acţiuni specifice.– Setul de instrucţiuni este totalitatea instrucţiunilor pe care un microprocesor le poate

recunoaşte şi executa.– Program o secvenţă de coduri de instrucţiuni organizate în mod logic şi coerent după un

anumit algoritm, astfel încât întregul microcalculator să execute o sarcină prestabilită.

Page 80: curs ASC 2012-2013

Nivele de abstractizare

Limbaje de programare de nivel înalt (ex. C )

Limbaj de asamblare

Cod maşină

Desfăşurarea unor acţiuni specifice

Compilare

Asamblare

Interpretarea codurilor

Aspecte studiate

preponderent la laborator

Page 81: curs ASC 2012-2013

Limbaje de programare

� procedurale - atunci când rezolvarea problemeiurmează anumite etape şi utilizează nişte structurifundamentale (cum sunt: C, Pascal, etc.)

� neprocedurale - ele se bazează pe reguli şi sunt maiapropiate de limbajul şi modul de raţionare natural (cumsunt limbajele pentru inteligenţă artificială: Prolog, Lisp).

Page 82: curs ASC 2012-2013

Algoritm

• Set de paşi prin care se defineşte modul în care poate fi dusă la îndeplinire o anumită sarcină

• Un set ordonat de paşi executabili, descrişi fără echivoc, care definesc un proces finit

• Rezolvă o problemă• Sunt în formă conceptuală - trebuie să fie reprezentate

într-o formă în care pot să fie comunicate unui calculator – prin setul de instrucţiuni (gramatică şi limbaj) – limbaj de programare

• Reprezentarea algoritmilor în calculator -> program -> software

Page 83: curs ASC 2012-2013

Etape de bază care trebuie urmate pentru rezolvarea unei probleme pe calculator

� analiza problemei - se stabileşte exact cesubprobleme trebuie să rezolve programul

� programarea - reprezentarea problemelorîntr-un mod adecvat pentru rezolvarea cucalculator

� implementarea - scrierea programului carerezolvă problema într-un anumit limbaj deprogramare

Page 84: curs ASC 2012-2013

ARHITECTURA

SISTEMELOR DEDICATE

Page 85: curs ASC 2012-2013

ARHITECTURA SISTEMELOR DEDICATE

•execut ă instruc ţiunile din memorie;

•efecuteaz ă calcule sau procesare asupra datelor, corespunz ătorinstruc ţiunilor,

•ini ţializeaz ă schimbul de date cu perifericele.

Unitatea central ă (UC), microprocesorul

Ceasul•asigur ă efectuarea secven ţială a opera ţiilor şi este de obicei implementat printr-un oscilator cu quar ţ.

•stocheaz ă instruc ţinile din program;stocheaz ă datele (constante sauvariabile) utilizate de program;schimb ă date cu microprocesorul.

Memoria

Periferice

Magistrale

•asigur ă anumite servicii microprocesorului şi permite conexiunea cu exteriorul.

reţea de conexiuni între microprocesor şi celelelalteelemente componente.De date

De adrese

De control

Page 86: curs ASC 2012-2013

PROGRAMAREA SISTEMELOR DEDICATE

Program în limbaj de nivel

superior

Program în limbaj de

asamblare

Cod obiect

Compilator Asamblor

Linker

Program în limbaj de

asamblareCod

obiect

Asamblor

Program executabil

Loader

Sistem target

Emulator

Debuggerinstrument de tip cross-development

Program sursă

Sistem host

Page 87: curs ASC 2012-2013

Microcontrollere• procesoare specializate pentru aplicatii de control• circuite VLSI care incorporeaza aproape toate componentele unui

micro-sistem de calcul:– UCP– memorie de program– memorie de date– sistem de intreruperi– porturi de intrare/iesire digitale– convertoare analog-numerice si numeric analogice– interfete de comunicatie si de retea

Unitati de comanda cu microcontroller

Structuri hardware

Page 88: curs ASC 2012-2013

Microcontrolere (µC) - caracteristici:

• dimensiuni reduse (număr redus de pini) • consum mic• timp predefinit de execuţie a instrucţiunilor• arhitectură tip Harvard: separarea memoriei de program de

memoria de date• sistem de întreruperi simplu, adaptat componentelor periferice

(contoare, interfeţe, etc.) conţinute în circuit• cost redus• frecvenţe de lucru relativ mici (10-30 MHz)• performanţe de calcul modeste• set limitat de instrucţiuni în limbaj maşină• limitări în ceea ce priveşte capacitatea de memorare• restricţii privind posibilităţile de extindere a sistemului

Page 89: curs ASC 2012-2013

Familii de µC• Exemple:

– PIC – ARM– AVRO familie este caracterizata prin:– aceeasi arhitectura de baza– acelasi set de instructiuni– aceleasi instrumente de dezvoltare a programelor

• Diferente intre variante ale aceleiasi familii:– capacitate de memorie (pentru date si pentru program)– tipuri de interfete incluse– numar de porturi, contoare,

Page 90: curs ASC 2012-2013

Schema bloc a familiei de microcontrolere I 80C31

Intreruperi

Timer 2Sistem de întreruperi

ROM RAM Timer 14k-32 ko 128-512 o

Timer 0

UCP

Canal serial CNA CANGenerator de

ceas Port I/E *4

32 linii de I/E RS 232 Ieşire analogică Intrări analogice

WD

PWM

Reset Ieşire PWM

Page 91: curs ASC 2012-2013

Componente principale ale microcontrolerului

• UCP – unitatea central ă de prelucrare– asigură execuţia instrucţiunilor unui program

• ROM – memoria nevolatil ă– conţine programul de aplicaţie şi eventualele constante de program; – memoria poate fi de tip:

• PROM (se înscrie o singură dată), • EPROM (cu posibilitate de înscriere multiplă, off-line) • EEPROM (cu posibilitate de scriere în timpul funcţionării programului);

– dimensiunea memoriei variază funcţie de varianta constructivă de la 0 la 32ko; ea se poate extinde prin adăugarea unei memorii externe

• RAM – memoria de date– păstrează variabilele programului şi stiva; – în prima parte a memoriei locaţiile pot fi adresate ca registre interne (4 seturi a câte 8 registre); o

anumită zonă de memorie poate fi adresată la nivel de bit; – capacitatea memoriei depinde de varianta constructivă; – memoria RAM internă poate fi extinsă cu o memorie RAM externă

• sistemul de întreruperi– gestionează cererile interne şi externe de întrerupere; – sursele de întrerupere sunt: 2 linii externe de întrerupere, canal serial (recepţie sau transmisie de

caractere) şi contoare (timer 0,1,2)

• generatorul de ceas– generează semnalul de ceas necesar pentru funcţionarea UCP şi furnizează o frecvenţă de referinţă

pentru contoarele interne şi canalul serial

• porturile de intrare/ie şire– permit achiziţia sau generarea de semnale digitale; pot fi 4 sau 6 porturi a câte 8 semnale; – un semnal poate fi configurat ca intrare, ieşire sau semnal bidirecţional

Page 92: curs ASC 2012-2013

Componente principale ale microcontrolerului

• canalul serial– implementează protocolul de comunicaţie RS 232 (canal serial asincron, bidirecţional pe

caracter); la unele variante există un canal serial suplimentar care implementează protocolul I2C; acest protocol permite construirea unei magistrale seriale în locul celei paralele clasice

• timer 0, 1, 2– set de 2 sau 3 contoare utilizabile pentru generarea periodică a unor întreruperi (ex.: pentru ceas

de timp-real), pentru numărarea unor evenimente externe sau pentru generarea frecvenţei de transmisie serială

• CNA – convertor numeric/analogic– folosit pentru generarea unui semnal analogic; această componentă este prezentă numai la

variantele mai complexe

• CAN – convertor analog/numeric– folosit pentru achiziţia unor semnale analogice; pot fi citite prin multiplexare si 8 intrări analogice

• WD – contor Watch-Dog– utilizat pentru detectarea funcţionării anormale a UCP; – dacă contorul nu este reiniţializat periodic, se consideră o anomalie şi ieşirea contorului va

provoca o reiniţializare a procesorului

• PWM – ieşire cu modula ţie în l ăţime de impuls (Puls Width Modulation) – permite generarea unei comenzi asemănătoare unui semnal analogic, folosindu-se o ieşire

digitală; – prin aplicarea unui filtru trece jos se obţine un semnal analogic proporţional cu factorul de umplere

al impulsului generat

Page 93: curs ASC 2012-2013

Accesarea memoriei si a porturilor • Registrele interne fac parte din spatiul de memorie destinat datelor• Porturile de intrare/iesire, inclusiv cele de control si stare ocupa un loc

predefinit din spatiul de memorie (SFR – Special Function Register)

SFRFFh

7Fh

0 128o

128oBlocul 3Blocul 2Blocul 1Blocul 0

R0 R1 ... R7

Memoria date (RAM)

0

FFFFh

64ko

Harta memoriei interne şi externe

Memoria de program PROM, EPROM, EEPROM

FFFFh

0

internă(0-8ko)

externă(max 64ko)

internă externă

Page 94: curs ASC 2012-2013

Exemple:

Microcontrolere MicrochipPIC12xx, PIC16xx, PIC18xx, PIC32Fxx

www.microchip.com

Alegerea unei variante de microcontroler

http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74

Page 95: curs ASC 2012-2013

Exemplu: PIC16F87x (876, 877, 873)

• Caracteristici:– Structura pe 8 biti (date de 8 biti)– Instructiuni de 14 biti– Arhitectura Harvard, de tip RISC– Are numai 35 de instructiuni– Capacitate de stocare:

• 8k x 14 Flash EPROM (memorie de program)• 256x8 EEPROM• 368x8 SRAM (memorie de date)

– Interfata seriala UART si SPI– Convertor analog-digital de 10 biti cu 8 canale multiplexate– 3 timere din care 2 de 8 biti si unul de 16 biti– PSP – parallel Slave Port– WDT – watch-dog Timer– CCM (Capture Compare Module) si PWM– Programabil si depanabil prin doua fire (serial); ICD – in circuit debuger– Incapsulare: 28,40 sau 44 pini