Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Hasonló dokumentumok
Bevezetés az informatikába

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Digitális rendszerek. Utasításarchitektúra szintje

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Az AVR ATmega128 mikrokontroller

1. Az utasítás beolvasása a processzorba

Aritmetikai utasítások I.

A számítógép alapfelépítése

Számítógépek felépítése, alapfogalmak

1 Doszpi

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

DSP architektúrák dspic30f család memória kezelése

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

A mikroprocesszor felépítése és működése

Egyszerű RISC CPU tervezése

A Számítógépek felépítése, mőködési módjai

Számítógépek felépítése, alapfogalmak

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

A MiniRISC processzor

Máté: Assembly programozás

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Számítógépek felépítése

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Assembly programozás levelező tagozat

7. Fejezet A processzor és a memória

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

A 32 bites x86-os architektúra regiszterei

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Bevezetés az informatikába

Beágyazott vezérlők tervezése dspic33 eszközökkel MPLAB-X

Architektúra, megszakítási rendszerek

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Mechatronika és mikroszámítógépek

Adatelérés és memóriakezelés

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás

Beágyazott vezérlők tervezése dspic33 eszközökkel MPLAB-X

Az integrált áramkörök kimenetének kialakítása

1. ábra: Perifériára való írás idődiagramja

A Texas Instruments MSP430 mikrovezérlőcsalád

Programozott soros szinkron adatátvitel

SzA19. Az elágazások vizsgálata

Központi vezérlőegység

DSP architektúrák dspic30f család

Máté: Számítógép architektúrák

Programozás alapjai. 10. előadás

ARM (Advanced RISC Machine)

Máté: Számítógép architektúrák

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

A MiniRISC processzor

Mikrokontrollerek. Tihanyi Attila május 8

Assembly Utasítások, programok. Iványi Péter

Máté: Számítógép architektúrák

A 6502 mikroprocesszor

A MiniRISC processzor

Összeadás BCD számokkal

Az interrupt Benesóczky Zoltán 2004

Bevezetés az assembly nyelvbe

Digitális rendszerek. Mikroarchitektúra szintje

Labor gyakorlat Mikrovezérlők

PIC18xxx utasításkészlet

ARM Cortex magú mikrovezérlők

Assembly. Iványi Péter

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Assembly utasítások listája

Máté: Számítógép architektúrák

Digitális technika VIMIAA02 9. hét

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Assembly. Iványi Péter

Mikrorendszerek tervezése

Nagy Gergely április 4.

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

Adatok ábrázolása, adattípusok

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Számítógép architektúrák

Labor gyakorlat Mikrovezérlők

Informatika 1 2. el adás: Absztrakt számítógépek

Bevezetés az assembly nyelvbe

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT

Mechatronika és mikroszámítógépek

Mutatók és mutató-aritmetika C-ben március 19.

Máté: Számítógép architektúrák

Mechatronika és mikroszámítógépek

Labor gyakorlat Mikrovezérlők

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

Jelfeldolgozás a közlekedésben

Számítógép felépítése

Máté: Számítógép architektúrák

Egyszerű számítógép működése

Arduino bevezető Szenzorhálózatok és alkalmazásaik

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

INTEL 8085 gépi utasításkészlete

Érzékelők és beavatkozók I.

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Bevezetés a számítástechnikába

Átírás:

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

ATmega128 CPU Single-level pipelining Egyciklusú ALU működés Reg. reg., reg. konst. közötti műveletek 32 x 8 bit általános célú regiszter Egyciklusú elérési idő 3 x 16 bit címregiszter 16 és 32 bit hosszú utasítások A programmemória 16-bites szó szervezésű A teljes programmemóira közvetlenül címezhető 4 kbyte SRAM A veremtár az SRAM-ban foglal területet, így csak az SRAM mérete és használata korlátozza 64 I/o és 160 Ext. I/O regiszter Két részre osztott programmemória: boot, app. 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 2

ALU I. Utasítások futásának időzítése Egy utasítás futtatása (execute) párhuzamosan fut a következő utasítás betöltésével (fetch). Ez az ún. single-level pipelining, így elérhető az 1 MIPS/MHz 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 3

ALU II. ALU műveletek időzítése Egy ALU által elvégzett művelet egy ciklus alatt lefut. Operandusok betöltése a regiszterekből (Register Operands Fetch) ALU művelet futtatása (ALU Operation Execute) Az eredmények visszaírás a regiszterekbe (Result Write Back) 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 4

ALU III. Az ALU a műveletvégzések során frissíti a státusz regisztert (SREG), amely az alábbi jelzőbiteket (flag)tartalmazza I Global Interrupt Enable: globális megszakítás engedélyezése T Bit Copy Storage: tetszőleges regiszter egy bitjének tárolására szolgál, amely utána elágazó utasítások feltétele lehet H Half Carry Flag: félátvitel jelzőbit, amely az alsó négy bitről a felső négyre történő átvitelt jelzi. S Sign Bit: előjel bit, az N és V bitek kizáró vagy kapcsolata V Two s Complement Overflow Flag: kettes komplemens túlcsordulás N Negative Flag: negatív jelző bit, értéke az eredmény legfelső bitje Z Zero Flag: nulla jelzőbit, melynek értéke egy, ha az eredmény nulla C Carry Flag: átvitel jelzőbit 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 5

Általános célú regiszterek 32 darab 8-bites regiszter, melyek közvetlenül kapcsolódnak az ALU-hoz, így bármely regisztereken végezhető művelet A regiszterek egyenrangúak, két kivétellel LDI (Load Immediate) utasítás csak a felső 16 regiszterre (R16-R31) van értelmezve Az X, Y, Z 16-bites regiszterek megfelelnek az R26-R27, R28-R29, R30-R31 regiszterpároknak 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 6

Egyéb fontos CPU regiszterek Program Counter (PC): 16-bites programszámláló, amely az aktuális utasítás helyére mutat a programmemóriában Stack Pointer (SP): 16-bites veremtár mutató, mely két 8-bites regiszterrel (SPH, SPL) van megvalósítva. A veremtárnak az SRAM-ban (>$0060 memóriacím) kell helyet lefoglalni a felhasználói programban. A mutató értéket a PUSH utasítás eggyel csökkenti, míg a POP növeli. A szubrutin és megszakítás hívások esetén a PC értéke itt tárolódik, és innen töltődik vissza a RET vagy RETI hatására. RAM Page Select Z (RAMPZ): Csak a legkisebb helyiértékű bit használatos belőle. Meghatározza, hogy az SRAM alsó, vagy felső 64 kb-ját címzi-e a Z regiszter, amennyiben az adott AVR típus ezt támogatja. Az ATmega128 csak max. 64 kb SRAM-ot támogat, ezért itt a 128 kb programmemória megfelelő részeit lehet kiválasztani vele MCU Control Register (MCUCR): külső memória kezelés, alvó módok beállítása, IT vektor áthelyezés MCU Control and Status Register (MCUCSR): reset jelzőbitek, JTAG engedélyezés Oscillator Calibration Value (OSCCAL): belső RC oszcillátor kalibrációs érték XTAL Divide Control Register (XDIV): az órajel leosztására használható External Memory Control Register A & B (XMCRA, B): külső memória vezérlés 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 7

Fuse bitek A Flash programmemória konfigurációs bitjeit ún. fuse (biztosíték) biteknek hívjuk. Programozott állapotban 0 értéket vesznek fel. ATmega103 kompatibilitási mód Watchdog engedélyezés Debug, JTAG, SPI programozási módok engedélyezése Oszcillátor és indulási idők konfigurálása Tápfeszültség figyelés (Brown out detector) engedélyezése Reset vector, boot memória terület beállítása EEPROM védelem beállítása 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 8

Programmemória 128 kb Flash alapú memória 64k x 16 bit szervezésű (így elég a 16 bites programszámláló) 10 000 írási/törlési ciklus élettartam Két részből áll: Alkalmazás Boot (levédhető bootloader készíthető) Programozási módok: SPI, JTAG, Parallel Programming Self-Programming 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 9

Adatmemória Az adatmemória alsó címein közvetlenül elérhető a 32 általános célú regiszter Fizikailag nem az adatmemóriában helyezkednek el A következő terület tartalmazza a 64 I/O regisztert, melyek elérhetők direkt I/O címzéssel, vagy általános címzési módokkal I/O direkt címzés (IN/OUT utasítás, 6 bites címtartomány) esetén $00-val kezdődnek a címek! Az alsó 32 I/O regiszter (5 bites címtartomány) bitenként is elérhető a megfelelő utasításokkal Ezt követi a 160 Extended I/O regiszter Ez a terület I/O direkt címzéssel nem érhető el, csak általános címzési módokkal! E felett helyezkedik el a belső SRAM, valamint az (opcionális) külső SRAM A külső SRAM használatát külön engedélyezni kell A külső SRAM címei folytatólagosak, a címzési módok pedig megegyeznek a belső SRAM-mal A belső SRAM elérési ideje két órajel ciklus bájtonként, míg a külsőé három órajel ciklus 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 10

Címzési módok I. Azonnali adatmegadás (Immediate Addressing Data) Bit címzés (Bit Addressing) Egy regiszter közvetlen címzése (Register Direct, Single Register) Két regiszter közvetlen címzése (Register Direct, Two Registers) I/O közvetlen címzése (I/O Direct Addressing) Adatmemória közvetlen címzés (Direct Data Addressing) Adatmemória közvetett címzése (Data Indirect Addressing) Adatmemória közvetett címzése eltolással (Data Indirect with Displacement) Adat közvetett címzése előzetes csökkentéssel (Data Indirect Addresing with Pre-Decrement) Adat közvetett címzése utólagos növeléssel (Data Indirect Addresing with Post-Increment) Programmemória konstans címzése (Program Memory Constant Addressing) Programmemória konstans címzése utólagos növeléssel (Program Memory Constant Addressing with Post-Increment) Programmemória közvetlen címzése (Direct Program Memory Addressing) Programmemória közvetett címzése (Indirect Program Memory Addressing) Programmemória relatív címzése (Relative Program Memory Addressing) 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 11

Címzési módok II. Azonnali adatmegadás Az operandus egy 8 bites szám (pl.: LDI R16, 0x55) Bit címzés Az operandus az utasítás által meghatározott adatbájt adott sorszámú bitje (pl.: BCLR 7) Egy regiszter közvetlen címzése Az operandus és az eredmény is ugyanabban a regiszterben tárolódik (pl.: INC R16) Két regiszter közvetlen címzése Az operandus az Rr és Rd regiszterekben, az eredmény az Rd a regiszterben tárolódik (pl.: ADD R17,R16) Egy regiszter közvetlen címzése Két regiszter közvetlen címzése 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 12

Címzési módok III. I/O közvetlen címzése Az alsó 64 I/O regiszter közvetlen címzésére szolgál. Az I/O regiszter 6 bites címét A-val jelöltük, míg a cél/forrás regiszterek Rr/Rd lehetnek (Pl.: IN R16,PINE) Adatmemória közvetlen címzése Az adatbájt 16-bites címe az utasítás utolsó két bájtjában helyezkedik el. A forrás/cél regiszter Rr/Rd lehet. (Pl.: LDS R16, 0x0500) I/O közvetlen címzése Adatmemória közvetlen címzése 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 13

Címzési módok IV. Adatmemória közvetett címzése Az adatbájt 16-bites címe az X, Y, vagy Z regiszterben helyezkedik el. A forrás/cél regiszter Rr/Rd lehet. (Pl.: LD R16, X) Adatmemória közvetett címzése Adatmemória közvetett címzése eltolással Az adatbájt címe az Y, vagy Z regiszternek és egy 6 bites eltolásnak (q) az összege. A forrás/cél regiszter Rr/Rd lehet. (Pl.: LDD R16, Y+0x10) Adatmemória közvetett címzése eltolással 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 14

Címzési módok V. Adat közvetett címzése előzetes csökkentéssel Az adatbájt 16-bites címe az X, Y, vagy Z regiszterben helyezkedik el, és értéke eggyel csökken a művelet előtt. A forrás/cél regiszter Rr/Rd lehet. (Pl.: LD R16, -X) Adat közvetett címzése utólagos növeléssel Az adatbájt 16-bites címe az X, Y, vagy Z regiszterben helyezkedik el, és értéke eggyel nő a művelet után. A forrás/cél regiszter Rr/Rd lehet. (Pl.: LD R16, +X) Adat közvetett címzése előzetes csökkentéssel Adat közvetett címzése utólagos növeléssel 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 15

Címzési módok VI. Programmemória konstans címzése A cím a Z regiszterben kerül megadásra, amelynek legkisebb helyiértékű bitje definiálja, hogy a felső vagy az alsó bájt kerüljön a Rd célregiszterbe. (Pl.: LPM R16,Z) Programmemória konstans címzése Programmemória konstans címzése utólagos növeléssel Ugyanaz mint az előző címzési mód, majd a címzés után a Z értéke eggyel növekszik. (Pl.: LPM R16, Z+) Programmemória konstans címzése utólagos növeléssel 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 16

Címzési módok VII. Programmemória közvetlen címzése A program futása az utasítás az alsó 16 (22) bitjén megadott címen folytatódik. (Pl.: JMP ide) Programmemória indirekt címzése A program futása a Z regiszterben megadott címen folytatódik. (Pl.: IJMP) Programmemória relatív címzése A program futása a PC+k+1 címen folytatódik. A k értékét az utasításban kell megadni -2048 és 2047 között (Pl.: RJMP 0x010) Programmemória közvetlen címzése Programmemória indirekt címzése Programmemória relatív címzése 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 17

Utasítások fajtái Aritmetikai és logikai utasítások Összeadás, kivonás, szorzás, törtszámok szorzása ÉS, VAGY, Kizáró VAGY, komplemens kód Regiszter növelése, csökkentése, törlése, beírása Elágazások Feltétel nélküli ugrások Szubrutin és interrupt hívások, visszatérések Feltételes ugrások az aritmetikai műveletek eredményének (SREG) megfelelően Adatmozgató utasítások Adatmemória és regiszterek között Programmemória és regiszterek között I/O-k és regiszterek között Bit szintű utasítások Eltolás, forgatás, alsó és felső 4 bit felcserélése SREG, I/O, Rr regiszetrek bitjeinek törlése, beírása MCU vezérlés No-operation, sleep mode, watchdog reset Break (csak a debugger számára) 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 18

Vége Köszönöm a figyelmet! 2015.04.30. Dr. Bécsi Tamás: Járműfedélzeti rendszerek I. 19