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

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

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

Bevezetés az informatikába

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

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

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

2016/08/31 02:45 1/6 Hardver alapok

2017/12/16 21:33 1/7 Hardver alapok

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

Processzor (CPU - Central Processing Unit)

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

Labor gyakorlat Mikrovezérlők

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

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

Számítógép architektúra

Labor gyakorlat Mikrovezérlők

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

Digitális technika VIMIAA01 9. hét

A 32 bites x86-os architektúra regiszterei

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

Nagy Gergely április 4.

Informatika érettségi vizsga

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

Központi vezérlőegység

Labor gyakorlat Mikrovezérlők

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

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

Digitális technika VIMIAA02 9. hét

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

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

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.

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

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

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

SzA19. Az elágazások vizsgálata

Adatok ábrázolása, adattípusok

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

7. Fejezet A processzor és a memória

A Texas Instruments MSP430 mikrovezérlőcsalád

Összeadás BCD számokkal

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Jelfeldolgozás a közlekedésben

Digitális Rendszerek és Számítógép Architektúrák (BSc államvizsga tétel)

Számítógép architektúrák I. Várady Géza

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

Véges állapotú gépek. Steiner Henriette

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

Assembly programozás levelező tagozat

SZORGALMI FELADAT. 17. Oktober

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

A számítástechnika fejlődése

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

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Számítógépek, számítógép rendszerek

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Architektúra, megszakítási rendszerek

Informatikai alapismeretek földtudományi BSC számára

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Digitális rendszerek. Digitális logika 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.

Assembly. Iványi Péter

A mikroszámítógép felépítése.

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

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

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

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

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

IT - Alapismeretek. Feladatgyűjtemény

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

VEZÉRLŐEGYSÉGEK. Tartalom

3.6. HAGYOMÁNYOS SZEKVENCIÁLIS FUNKCIONÁLIS EGYSÉGEK

1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat

I+K technológiák. Beágyazott rendszerek Dr. Aradi Szilárd

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

Máté: Assembly programozás

XII. PÁRHUZAMOS ÉS A SOROS ADATÁTVITEL

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

elektronikus adattárolást memóriacím

Assembly. Iványi Péter

Digitális rendszerek. Mikroarchitektúra szintje

1. Generáció( ):

A TMS320C50 és TMS320C24x assembly programozására példák

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

Alapismeretek. Tanmenet

Egyszerű RISC CPU tervezése

ARM Cortex magú mikrovezérlők

Mintavételes szabályozás mikrovezérlő segítségével

Vezérlésfolyam gráf és X86 utasításkészlet

Programozási segédlet DS89C450 Fejlesztőpanelhez

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Hardver Ismeretek IA32 -> IA64

Szupermikroprocesszorok és alkalmazásaik

MEM 5. A DIGITÁLIS ADATTÁRAK (MEMÓRIÁK) A FÉLVEZETŐ ALAPÚ MEMÓRIÁK

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

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

A számítógép fő részei

OPERÁCIÓS RENDSZEREK. Elmélet

Átírás:

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

Az adatok feldolgozását végezhetjük olyan általános rendeltetésű digitális eszközökkel, amelyeket megfelelő szoftverrel (programmal) vezérelünk. A mai digitális technikában Ilyen eszközök a mikroprocesszorok, a mikrovezérlők és a szignál processzorok. Összetettségüket tekintve ezek az eszközök a nagyon nagy integráltságú (VLSI) kategóriába tartoznak. A programmal történő vezérlés lehetővé teszi a kívánt algoritmus végrehajtását lépésről lépésre. 2

VI.1. SZOFTVERES ADATFELDOLGOZÓ EGYSÉG ÁLTALÁNOS FELÉPÍTÉSE A szoftveres adatfeldolgozó egység adatokat fogad, tárol, dolgoz fel és továbbít a kimenet felé, programmal meghatározott algoritmus szerint. Az ilyen adatfeldolgozó egység (nevezik digitális számítógépnek is) általános rajzát az ábrán láthatjuk. 3

4

KÖZPONTI FELDOLGOZÓ EGYSÉG (CPU) 5

A műveleteket az ALU (arithmetic-logic unit aritmetikai-logikai egység) hajtja végre. A lehetséges műveleteket/utasításokat rendszerint úgy alakítják ki, hogy minél kevesebb írást kelljen végezni a memóriába, illetve minél kevesebb olvasást kelljen végezni a memóriából. Ezt a célt szolgálják az ALU különböző regiszterei, a velük végzett műveletek sokkal gyorsabbak. 6

Az ALU regiszterek közül kiemelendő az ún. akkumulátor (Akku), rendszerint itt tároljuk az egyik vagy az egyetlen operandust és a művelet végeredményét is. Az ALU működését az CU (control unit vezérlő egység) irányítja. Ennek fő része az utasítás dekódoló és végrehajtó egység, de néhány regiszter is tartozik hozzá. 7

A PC (program counter programszámláló) regiszter a következő végrehajtandó utasítás memória-címét tartalmazza. Sorban végzett utasításoknál minden utasítás elvégzésekor növelni kel eggyel a programszámláló tartalmat. Szükség esetén a szoftver ugrásokat végezhet, ilyenkor a programszámlálóba a következő utasítás címét kell betölteni. 8

Az IR (instruction register utasítás regiszter) fogadja a memóriából érkező műveleti kódokat és operandusokat (amelyekkel műveletet kell végezni). Az itt megjelenő utasítás-kódot érzékeli az utasítás dekódoló és végrehajtó egység, majd az ALU-val elvégezteti a műveletet. Az MA regiszter a memória címeket tárolja, az MD regiszter az írandó vagy a kiolvasott adatokat tartalmazza. 9

VI.2. OPERATÍV MEMÓRIA A szoftveres adatfeldolgozó egység a félvezető memóriában tárolt program alapján működik és a memóriában tárolt adatokat dolgozza fel. Ilyen értelemben szükség van adatmemóriára és programmemóriára. Ezek együttesen alkotják az operatív memóriát. 10

A Neumann János általa javasolt megoldásnál (Neumann architektúra) ugyanabban a memóriaegységben tároljuk a programokat és az adatokat is. Az elektronikus számítógépek fejlesztésének hajnalán ez tűnt a célszerű megoldásnak, mert egyszerűsíti a hardvert. 11

Idővel elterjedt a Harvard architektúra is, amely elkülöníti a programmemóriát az adatmemóriától. Ez ugyan több hardvert kíván, de gyorsítani tudja a működést. Lehetséges egy időben beolvasni az utasítást a programmemóriából és a vele kapcsolatos adato(ka)t az adatmemóriából. 12

A memória és a CPU az ábra szerint kapcsolódik egymáshoz. A címvonalak és az adatvonalak mellett szükség van bizonyos vezérlőjelekre is, amelyek meghatározzák az adatforgalom irányát és engedélyezik a kommunikációt. A címvonalak száma a memória kapacitásától függ: n címvonallal 2 n adatot lehet megcímezni, pl. 16 címvonalra 64 kb nagyságú memóriát lehet kötni. Az adatvonalak száma a szóhosszal egyenlő. 13

14

VI.2. A SZOFTVERES ADATFELDOLGOZÓ EGYSÉG MŰKÖDÉSE A különböző egységek időbeli összehangolását az órajel végzi, ezért erről szólunk először. Ezt követően áttekintjük, hogy milyen lépések szükségesek egy-egy utasítás végrehajtásához, majd csoportosítjuk az utasításokat, áttekintjük az adatok címzésének hagyományosan használatos módozatait. 15

AZ ÓRAJEL SZEREPE A CPU egy szinkron működésű állapotgép: a végrehajtott összes művelet pontos időrendben történik. A szinkronizálást az órajel végzi. Az órajel egy periodikus négyszögjel, rendszerint néhány MHz-től néhány 100MHz-ig terjedhet a frekvenciája. Egyes processzorok egy órajel ciklus alatt egy utasítást végeznek el. Mások a külső órajelet leosztják bizonyos arányban és a műveletek egyes részleteit végzik csak a külső órajel egy periódusában. 16

AZ UTASÍTÁSOK VÉGREHAJTÁSA Ha például egy adatot be szeretnénk olvasni az akkumulátor regiszterbe, az a következő lépésekből áll: Ø A programszámláló (PC) tartalma az MA címregiszterbe kerül. Ennek hatására az adatvonalakon megjelenik az utasítás kódja és az MD regiszteren keresztül az utasítás regiszterbe (IR) kerül. Ø A programszámláló értéke eggyel nő, hogy a következő memória rekeszre mutasson, ahol a beolvasandó adat van tárolva. 17

Ø Az utasítás dekódoló és végrehajtó egység értelmezi a művelet kódját. Ø A beolvasandó adat címe a programszámlálóból (PC) az MA regiszterbe jut, onnan pedig a memória címvonalaira. Az adatvonalakon megjelenő adat az MD regiszteren keresztül beíródik az akkumulátorba. Ø A programszámláló (PC) értéke megint eggyel nő, hogy a következő utasításra mutasson és elkezdődjön annak végrehajtása. 18

Típustól függően egyes processzorok mindössze néhányszor tíz utasítást (műveletet) tudnak végrehajtani, ezt a megközelítést RISC (reduced instruction set csökkentett utasítás készlet) architektúrának nevezzük. Más CPU-k ismerhetnek néhány száz utasítást is. Az utasítás kód hosszabb vagy rövidebb az utasítások száma szerint. 19

A következő utasítás csoportokat szokásos megkülönböztetni: Ø bináris aritmetikai műveletek (összeadás, kivonás...), Ø logikai műveletek (ÉS, VAGY...), Ø regiszter műveletek (jobbra-balra léptetés, inkrementálás, dekrementálás...) 20

Ø biteken végzett műveletek (a regiszter egyes bitjeinek nullára vagy egyesre állítása...) Ø adatátviteli műveletek (a memória és a regiszterek vagy a kimeneti/bemeneti egységek és a regiszterek között). Ø ugró utasítások (feltételes vagy feltétel nélküli). 21

CÍMZÉSI LEHETŐSÉGEK Az utasítások végrehajtása közben a CPU egy vagy több operanduson végez műveletet. Az operandusok lehetnek valamelyik regiszterben vagy a memóriában. Az operandusokat megfelelő címek megadásával érjük el. A címzés egyszerű, ha valamelyik belső regiszter vesz részt a műveletben, ilyenkor már rendszerint az utasítás kódja tartalmazza a címet. Más esetekben a címet a memóriából kell beolvasni. 22

A gyakorlatban a következő címzési módszerek terjedtek el: Direkt regiszter címzés: a műveleti kód rámutat egy regiszterre, amelyben az operandus van. 23

Direkt rekesz címzés: az operandus a memóriában van, a memóriarekesz címe része az utasításnak (címrész lehet az utasítást követő rekeszben is). 24

Indirekt memória címzés: az utasítás címrészében egy memóriarekesz címe van. Az operandus címe az illető memóriarekeszből olvasható ki. Indirekt regiszter címzés: az utasítás címrészében egy regiszterre hivatkozunk, ebben a regiszterben van a memóriarekesz címe. 25

26

Relatív bázisregiszteres címzés: az utasítás címrésze egy regiszterre mutat, de tartalmaz egy eltolási értéket is. Az operandust tartalmazó memóriarekesz címét a regiszter tartalmának és az eltolási értéknek az összeadásával kapja a CPU. 27

Közvetlen (immediate) címzés: az operandus az utasítás része vagy a memóriában közvetlenül az utasítás utáni rekeszben van. 28

A GÉPI NYELV Az adatfeldolgozó egység (mikroprocesszor, mikrovezérlő) memóriájába tölthető utasítássor bináris kódokból áll. Az ilyen programot gépi nyelven történő programozásnak nevezzük. Az egyes utasítás kódok bitsorait a processzor közvetlenül értelmezni tudja és végrehajtja. Például a 0010 bitsor értelmezhető összeadásként, a 0011 bitsor pedig kivonásként. Gépi programozás esetén az operandusok és az operandusok címei is bináris formában vannak jelen. 29

AZ ASSEMBLY NYELV Tekintettel a gépi nyelven történő programozással kapcsolatos nehézségekre, a gépi kódokat rövid szavakkal (mnemonik) helyettesítjük. Például, az összeadási utasítást a bináris kód helyett ADD szóval írjuk le, a regiszter tartalmának eggyel történő növelését INC szóval stb. Az operandusoknak is nevet adunk, pl. az akkumulátor regisztert A-val jelöljük, a C operandus címét ADRC-vel stb. 30

Az assembly nyelven írt programok rendszerint három oszlopból állnak, esetleg kommentár is beilleszthető a harmadik oszlop után, ahogyan az ábrán láthatjuk. Az első oszlopba címkéket írunk, amelyeket fordítás közben az assembler memóriacímekkel fog helyettesíteni. A második oszlopban vannak az utasítások mnemonikjai, a harmadik oszlopban az operandusok nevei. 31

32

Az assembly program nem tölthető közvetlenül a processzor memóriájába, hanem le kell fordítani gépi nyelvre. Ezt egy fordítóprogram, az assembler végzi. A fordítás valójában egyszerű helyettesítésekből áll. Az assembly nyelv és az assembler is géptől függő, az egyik processzorra írt programot nem-, vagy csak átalakítások árán tudjuk telepíteni másik gépre. Időben kritikus programokat, pl. perifériák kezelését szokták ma is assembly nyelven írni. 33

MAGASABB SZINTŰ PROGRAMNYELVEK Ismerve a gépi nyelvvel és az assembly nyelvvel kapcsolatos nehézségeket, célszerű a programozást olyan, magasabb szintű, nyelven végezni, amely egyrészt nem gépfüggő, másrészt közelebb van az emberi nyelvhez, ill. az emberi gondolkodáshoz. Ilyen nyelvek a C, C+, UNIC, JAVA... A magasabb szintű nyelven írt programot is gépi nyelvre kell fordítani, ahhoz, hogy futtatni lehessen. Az ilyen fordítóprogramot compiler-nek nevezzük. A fordítás vagy egy lépésben történik, vagy a magasabb szintű nyelvről először assembly nyelvre, majd a második lépésben gépi nyelvre. 34

VI.3. MIKROPROCESSZOR CSALÁDOK Az első mikroprocesszorok órajel frekvenciája 100 khz nagyságrendű volt, mindössze néhány kbyte memóriát tudtak címezni, 16 vagy 18 kivezetéssel készültek. 1974-ben jelent meg az Intel 8080-as mikroprocesszora, amely már 64 kbyte-ot tudott címezni, 2 MHz-es órajellel működött, meglehetősen bő utasításkészlettel rendelkezett. 35

MOTOROLA 6800 A Motorola cég kevéssel az Intel 8080-as után (1974) vezette be 6800-as típusjelzésű, nyolcbites mikroprocesszort. Az itt alkalmazott architektúra fontos pedagógiai szempontból is, de a később megjelenő 68HC05, 68HC08 és 68HC11 jelzésű mikrovezérlők megértéséhez is. A 40 kivezetéses tokozásban 16 bites címvonalas és nyolc adatvonalas CPU helyezkedik el. 36

A modern mikroprocesszorokban és mikrovezérlőkben szokásos regiszterek mind jelen vannak már ebben a processzorban: programszámláló (PC program counter), veremmutató (SP - stack pointer), két akkumulátor regiszter (ACCA és ACCB), index regiszter, állapotregiszter (CCR-condition code register). 37

Háromféle megszakítás lehetséges: nem letiltható, letiltható és szoftveres. A szoftveres megszakítás azonnali ugrásokat tesz lehetővé olyan alprogram címre, amelyet a főprogramnak nem szükséges ismernie. A mikrovezérlő az ugrás címét a memóriában őrzött megszakítás vektorból olvassa ki. A címek 16 bitesek, így két memóriarekeszt foglalnak el a következő táblázat szerint: 38

AZ INTEL 8086 MIKROPROCESSZOR CSALÁD Az 1978-ban bevezetett 8086-os család a hírnevét jórészt annak köszönheti, hogy az IBM a személyi számítógépeihez ezt a mikroprocesszort választotta. A számítógépipar fejlődésével párhuzamosan folyt a mikroprocesszor továbbfejlesztése is: megjelentek a 32 bites (80386, Pentium) és a 64 bites (Itanium) változatok. Az egyszerűbb alkalmazásokra készült a 8088-as, kívülről szemlélve nyolcbites változat. 39

A 16 bites regiszterek egy részénél az egyes byte-ok külön is kezelhetők. A memóriatartományt 1 Mbyte-ra tervezték (20 címvonal). A 20 bites címet egy 16 bites cím és egy pointer regiszter tartalmának összeadásával kapjuk. Ez az eljárás szegmentált memóriához vezet, és némileg bonyolítja a memória elérését, de az utasítások megfelelő kialakításával definiálták, hogy melyik regiszterek segítségével hozható létre a teljes cím. 40

41