curs ASC 2012-2013
-
Upload
bercu-constantin-bogdan -
Category
Documents
-
view
55 -
download
0
description
Transcript of curs ASC 2012-2013
Curs -ASC
Structura şi funcţionarea calculatorului
• 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.
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).
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)
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.
Structura şi funcţionarea calculatorului - continuare
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ă.
– 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
A. Componenta hardware. Blocuri funcţionale
Registre, memorii, porturi de intrare/iesire
Structura de baza a unui microcalculatorMemorie dateMemorie program
De la / la periferice
Microrocesor
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
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ă.
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.
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
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.
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.
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
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
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)
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
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.)
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.
Structură de calculator, formată din UCP şi memorie principală, cu indicarea circuitelor tampon la interfaţa procesorului cu exteriorul
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.
Exemplu• Dezvoltarea funcţională a unui µP pe
16 biţi de uz general tipic– Structura registrelor
• Structura registrelor pentru Intel 8086
• 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).
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
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
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
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
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.
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).
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ă
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.
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).
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).
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).
Componenta hardware ; blocurile funcţionale(continuare)
• UCP (eng CPU) - UNITATEA CENTRALĂ DE PRELUCRARE• MEMORIA• I/O - DISPOZITIVELE DE INTRARE/IEŞIRE
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ă.
Magistrale ale sistemului
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).
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)
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
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
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.
• 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)
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
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).
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.
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.
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ă.
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.
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.
• 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
• 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
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)
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.
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
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
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
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
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
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)
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
Adresarea memoriei –
• calculul adresei fizice
: [ + + ]Registru segment
Registru de baza
Registru index
Deplasament
Adresa de offsetAdresa de segment
Exemple
Figura Adresa fizica şi adrese logice
Fie baza de segment = 6020H şi offset-ul = 4267H
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.
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)
• 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
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.
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
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.
Î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.
Î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.
Î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.
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.
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ă.
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
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).
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
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
ARHITECTURA
SISTEMELOR DEDICATE
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
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
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
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
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,
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
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
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
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ă
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
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