170 likes | 361 Views
AVR-Ydin. ATmega328P. Kimmo Lepikkö & Joonas Äijälä. TTE1snL. 22.11.2011. Johdanto . Arduino Unon ytimenä toimii ATmega328P Y din on 8-bittinen Ytimen päätehtävä on varmistaa ohjelman oikea suoritus : Ytimen täytyy saada suora yhteys muistiin Suorittaa laskutoimituksia
E N D
AVR-Ydin ATmega328P Kimmo Lepikkö & Joonas Äijälä • TTE1snL • 22.11.2011
Johdanto • Arduino Unon ytimenä toimii ATmega328P • Ydin on 8-bittinen • Ytimen päätehtävä on varmistaa ohjelman oikea suoritus : • Ytimen täytyy saada suora yhteys muistiin • Suorittaa laskutoimituksia • Ohjata oheislaitteita sekä hoitaa keskeytykset
Sisäinen rakenne • Ydin jaetaan kolmeen pääosaan: • ALU (aritmeettislooginen yksikkö) • Rekisterit (lippurekisteri ja yleiskäyttöiset rekisterit) • Ohjausosa
ALU • Suorittaa kolmenlaisia operaatioita: • Aritmeettiset operaatiot : Esimerkiksi plus-, vähennys-, kerto- sekä jakolaskut
Loogiset operaatiot Esimerkiksi AND, OR, NOT, XOR
Bittimuunnos operaatiot 00010111 siirtovasemmallayhdellä =00101110
Rekisterit • Toimivat tiedon väliaikaisena varastopaikkana • Ytimessä on monta erilaista rekisteriä: • Lippurekisteri • Yleiskäyttöiset rekisterit • Muut rekisterit
Lippurekisteri: • Tiedot viimeisimmistä ytimessä suoritetuista operaatioista • Bitit (0-7)
Lippurekisterit • Bitti 0 – C: Carry eli ylivuotolippu • Bitti 1 – Z: Zero • Bitti 2 – N: Negative • Bitti 3 – V: Kahden komplementin ylivuoto • Bitti 4 – S: Sign eli merkkibitti • Bitti 5 – H: HalfCarry • Bitti 6 – T: Bit Copy Storage eli varastopaikka • Bitti 7 – I: GlobalInterruptEnable
Yleiskäyttöiset rekisterit • 32kpl 8bit • Suora yhteys prosessoriin (nopeita) • Operaatiot suoritetaan yhden kellojakson aikana • Rekistereitä voidaan yhdistää
Ohjelmalaskuri • Rekisteri, jossa on seuraava suoritettavan käskyn osoite Käskyrekisteri • Rekisteri johon tallennetaan kulloinkin suoritettava käsky Pino-osoitin • Rekisteri joka osoittaa keskusmuistin pinon huipun osoitteeseen
Ohjausosa Käskydekooderi • Muuntaa käskyrekisterin käskyn ohjaussignaaliksi • Hoitaa prosessorin ajoituksen
Yhteenveto • Yksinkertaistettu silti vaativaa logiikkaa • Kolmeen osaan jako: • ALU = laskenta • Rekisterit = tilapäisten muistipaikkojen osoitteet • Ohjausosa = signaalien ohjaus
Lähteet: • Mikrotietokonetekniikka: http://www.oamk.fi/~pekkar/sul_tk_perusteet/Kirja/Luku3_Mikroprosessori.pdf • Atmel: http://www.atmel.com/dyn/products/product_docs.asp?category_id=163&family_id=607&subfamily_id=760&part_id=4198 • Wikipedia: Artikkelit aiheista(Stack Pointer, Instruction Register, Instruction Decoder, Program Counter, ALU) http://en.wikipedia.org/wiki/Arduino#Hardware • http://www.partco.biz/verkkokauppa/article_info.php?articles_id=12