Memoria de program Memoria de date Memoria RAM de uz general Registrii cu functiuni speciale (SFRs)
Fiecare bloc are propriul bus
Accesul la blocurile de memorie poate sa apara in acelasi ciclu sistem ORGANIZAREA MEMORIEI DE PROGRAM
MCU din familia Microchip mid-range au un contor
de program de: 13 biti => 213 = 8k spatiu de adresare 16 biti => 216 = 64k spatiu de adresare (56k enhanced) Instructiunile sunt organizate pe 14 biti si sunt ‘single word’ Rezulta un spatiu de adresare de: 8k * 14 biti 56k * 14 biti Spatiulde memorie de program este divizata in pagini de cate 2k fiecare ORGANIZAREA MEMORIEI DE PROGRAM ORGANIZAREA MEMORIEI DE PROGRAM Pentrua comuta intre paginile de memorie de program, trebuie modificati cei mai semnificativi biti din contorul de program (PC) Aceasta se face prin modificarea valorii unui registru special SFR numit program counter latch high (PCLATCH) Daca se executa instructiuni consecutive, contorul de program va trece de granitele paginii fara interventia utilizatorului Pentrudispozitive care au implementat mai putin de 8k de memorie de program, accesarea unei locatii peste cea fizica va cauza accesarea adresei din pagina fizica, ignorand bitii din PCLATCH ORGANIZAREA MEMORIEI DE PROGRAM Vectorul de reset Un reset va forta contorul de program la valoarea 00h Vom numi aceasta adresa “adresa vectorului de reset” Orice reset va sterge continutul registrului PCLATCH Vectorul de intrerupere Cand o intrerupere este recunoscuta, pc este fortat la adresa 04h. Vom denumi aceasta adresa: “adresa vectorului de intrerupere” Nu se modifica registrul PCLATCH Trebuie avut grija daca adresa de salt din intrerupere este in alt bank de memorie Inainte de a fi modificat de ISR, continutul PCLATCH trebuie salvat, astfel incat dupa revenirea din rutina de intrerupere, continutul sau sa poata fi restaurat CONTORUL DE PROGRAM (PC)
Contorul de Program (PC) specifica adresa
instructiunii care trebuie adusa pentru executie Are dimensiunea de 13 biti sau 16 biti pentru modelele enhanced Este compus din doi byte, unul mai semnificativ (PCH), altul mai putin semnificativ (PCL) PCL Este un registru care poate fi atat citit cat si scris PCH contine bitii <12:8> sau <15:8> din PC si nu poate fi direct citit si scris, ci numai prin intermediul registrului PCLATCH CONTORUL DE PROGRAM (PC)
SITUATIA 1 – Instructiune cu PCL ca destinatie.
Se arata cum PC este incarcat prin scrierea PCL cu rezultatul ALU si PCH din (PCLATH<4:0> ). CONTORUL DE PROGRAM (PC) SITUATIA 2 – Instructiunea GOTO Se arata cum PC este incarcat in timpul unei instructiuni GOTO 11 biti din adresa de salt si 2 biti din (PCLATH<4:3>). CONTORUL DE PROGRAM (PC) SITUATIA 3 – Instructiunea CALL Se arata cum PC este inarcat in timpul unei instructiuni CALL PC incarcat (PUSHed) in varful stivei, apoi incarcat cu 11 biti din adresa de salt si 2 biti din (PCLATH<4:3>). CONTORUL DE PROGRAM (PC)
SITUATIA 4 - Instructiuni tip Return
Se arata cum este incarcat PC in timpul unei instructiuni tip return, in care PC este incarcat (POPed) din virful stivei