Digitális technika VIMIAA01

Hasonló dokumentumok
Digitális technika VIMIAA02 7. hét Fehér Béla BME MIT

Digitális technika VIMIAA02 7. hét

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

Digitális technika VIMIAA02 9. hét

Összetett feladatok megoldása

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

Digitális technika VIMIAA01 9. hét

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4

Véges állapotú gépek (FSM) tervezése

Digitális technika VIMIAA02

Digitális technika VIMIAA02

Digitális technika VIMIAA01 5. hét

Szekvenciális hálózatok és automaták

Digitális technika (VIMIAA02) Laboratórium 5.5

Véges állapotú gépek (FSM) tervezése

Bevezetés az informatikába

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 1

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

A fealdatot két részre osztjuk: adatstruktúrára és vezérlőre

Digitális technika (VIMIAA02) Laboratórium 3

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

Digitális technika (VIMIAA01) Laboratórium 4

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

Összeadás BCD számokkal

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

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

SZORGALMI FELADAT. 17. Oktober

Digitális technika VIMIAA02 6. EA Fehér Béla BME MIT

Újrakonfigurálható eszközök

Digitális technika VIMIAA02 6. EA

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

Véges állapotú gépek (FSM) tervezése

b. Következő lépésben egészítse ki az adatstruktúrát a teljes rendezéshez szükséges további egységekkel és készítse el a teljes mikroprogramot!

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Mikrorendszerek felépítésének általános modellje

Bevezetés az informatikába

Digitális technika (VIMIAA01) Laboratórium 9

Adatok ábrázolása, adattípusok

5. Hét Sorrendi hálózatok

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

VEZÉRLŐEGYSÉGEK. Tartalom

Digitális technika (VIMIAA01) Laboratórium 9

Kiegészítő segédlet szinkron sorrendi hálózatok tervezéséhez

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

Hardver leíró nyelvek (HDL)

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.

Digitális technika VIMIAA01

Egyszerű RISC CPU tervezése

Digitális technika VIMIAA01

Újrakonfigurálható eszközök

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

Adatfeldolgozó rendszer tervezése funkcionális elemekkel

Dr. Oniga István DIGITÁLIS TECHNIKA 9

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

A MiniRISC processzor

Digitális rendszerek. Mikroarchitektúra szintje

Digitális technika (VIMIAA02) Laboratórium 2

Előadó: Nagy István (A65)

Digitális technika VIMIAA01

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Digitális technika VIMIAA02 1. EA

1. Kombinációs hálózatok mérési gyakorlatai

7.hét: A sorrendi hálózatok elemei II.

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg. Olvasható aláírás:...minta VIZSGA...

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

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

DIGITÁLIS TECHNIKA (VIMIAA02)

Számlálók, adatfeldolgozó egységek

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

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

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Digitális technika HF2 Elkészítési segédlet Gépi szintű programozás

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

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Elvonatkoztatási szintek a digitális rendszertervezésben

Digitális technika VIMIAA hét

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Digitális technika (VIMIAA02) Laboratórium 12

Digitális technika (VIMIAA02) Laboratórium 12

Mikrorendszerek tervezése

Labor gyakorlat Mikrovezérlők

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

következő: 2.)N=18 bites 2-es komplemens fixpontos rendszer p=3 Vmin+ =delta r=2^(-p)=2^(-3)=

SzA19. Az elágazások vizsgálata

DIGITÁLIS TECHNIKA II

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Digitális technika - Ellenőrző feladatok

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

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

6. hét: A sorrendi hálózatok elemei és tervezése

Átírás:

BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 Fehér Béla BME MIT

Digitális rendszerek tervezése Kombinációs logikák Logikai függvények, Kétszintű realizáció, SOP, POS, minimalizálás Többszintű realizáció, több kimenetű hálózatok Funkcionális elemek, modulszintű építkezés Műveleti idő: t pmax maximális jelterjedési idő Szinkron sorrendi hálózatok Órajel él vezérelt működés, DFF: mintavételezés, tartás Kimeneti érték korábbi állapotok függvénye is Véges állapotú vezérlő, tetszőleges állapotátmenetek Multifunkciós regiszterek, számlálók, memóriák Műveleti sebesség korlátja: T clk t cqmax + t pmax + t su Az órajel ütemez, minden műveletre T clk idő jut

Összetett digitális rendszerek Regiszterek + Kombinációs logikák RTL Regisztertranszfer szintű tervezési modell A változók aktuális értékét az első regiszter mintavételezi és egy teljes órajel periódusnyi ideig stabilan tartja A valódi műveletvégzés, adat átalakítás, adat transzformáció a kombinációs logikai hálózatban történik A számított/generált eredményt a második regiszter mintavételezi és tárolja a következő számításokhoz

RTL Regisztertranszfer szintű tervezési modell Nagymértékben támogatott a Verilog HDL nyelvben Egyértelmű modell a szinkron regiszterek működésének leírására Élvezérelt működés always @ (posedge clk) Nemblokkoló értékadás <= Gazdag operátorkészlet és adat formátumok a különböző műveletekhez Normál és előjeles (2 C) számábrázolás, tetszőleges adatméret, előjel kiterjesztés, számrendszerek Logikai műveletek bitekre, bitvektorokra Aritmetikai műveletek, léptetések, {} operátor Kombinációs logikák viselkedési leírása

RTL Regisztertranszfer szintű tervezési modell Minden eddig tanult ismeretünket felhasználjuk A bonyolult feladatokat magas szintű specifikációval írjuk le, együttesen kezelve a teljes algoritmust Különböző specifikációs módszerek: HLSM: Magasszintű állapotvezérlő ASM: Algoritmikus állapotvezérlő A tervezésnél az eddigi bitváltozókon felül összetett változókat, bitvektorokat is használunk FSM + adat Az algoritmusok végrehajtását sok esetben szekvenciális módon, lépésenként szervezzük, előírt ütemezés és a működés során generálódó feltételek szerint

RTL Regisztertranszfer szintű tervezési modell Két fontos alrendszert különböztetünk meg ADATSTRUKTÚRA + VEZÉRLÉS

A vezérlési alrendszer ugyanaz az FSM, amit eddig is terveztünk, de A bemeneteket megkülönböztetjük, mint Külső parancsjelek: START, STOP, egyéb üzemmód, Belső státuszjelek (az adatstruktúrából): pl. TC=1?, A>B? A kimeneteket is megkülönböztetjük Belső vezérlőjelek (az adatstruktúrába): INC, LD, ADD, EN Külső jelzések: READY, ERROR, VALID

Az FSM tulajdonságai Mindig SZINKRON FSM, Globálisan lehet Moore, lehet Mealy, vagy vegyes is Általánosan igaz, hogy a Moore típus választása több állapotot igényel, de tisztább tervezés, megvalósítás Az állapotregiszter kódolásának módja a működés szempontjából közömbös (1-az-N-ből, bináris, stb.)

Az adatstruktúra, azaz az adatfeldolgozó rész Itt történik a tényleges műveletvégzés, tehát a kívánt funkcionalitás végrehajtása Az adatstruktúra elemei: Adatregiszterek: az algoritmus változóinak aktuális értékét tárolják, méretük alkalmazásfüggő Funkcionális egységek: az ismert/tanult műveletvégzők, mint összeadó, komparátor, shifter, paritásgenerátor, stb. Adatútválasztók: Multiplexer hálózatok, feladatuk, ugyanaz, mint a multifunkciós regiszterek esetén

Az adatstruktúra, azaz az adatfeldolgozó rész Az elsődleges adat bemenet és adat kimenet formátuma alkalmazásfüggő (bitvektor/ok) Az adatfeldolgozás lehet többlépcsős, azaz az egyes részfeladatokat végrehajtó funkcionális egységeket regiszterek választják el egymástól Az adatstruktúra státuszjelei a vezérlőbe jutnak, a vezérlőből származó belső vezérlőjelek pedig a feltételek szerint működtetik az adatstruktúrát

Specifikációs módszerek A HLSM, azaz magas szintű állapotgép Lényegében a megismert állapotdiagram kiegészítése magasszintű műveletvégzési előírásokkal Egy példa: szódavíz automata (lehetne a folyosói kávéautomata is, de ott túl nagy a választék, sok gomb, a bonyolultság eltakarná a lényeget) Interfészek: Bitvektorok: s: a szóda ára, a: a bedobott pénzérmék értéke Bitek: c: pénzérme bevétele, d: pohár szóda kiadása Pl. s = 50, a szóda ára, a fizetés módja 3 érmével, a = 20, 20, 10, ekkor c 3 pulzus 010..010..010, azaz 3 érme bevétele, ezalatt belül egy tot változó a 0-20-40-50 értékeket veszi fel, végül d a 010-t adja

A HLSM, azaz magas szintű állapotgép Az állapotdiagramon a szokásos bit jelek mellett megjelennek magasszintű értékadások és műveletek is (ezért hívjuk HLSM-nek) Ilyenek pl. 8 bites akkumulátor, tot = tot + a Összetett feltételvizsgálat not (c) and (tot < s) A HLSM alapján az adatstruktúra származtatható Megjegyzés: A példa nem ad visszajárót, és nem jelzi, ha kifogyott a szóda

Az adatstruktúra felépítése Szükséges komponensek: 8 bites regiszter a bedobott érmék összegének tárolására (tot) 8 bites összeadó az eddigi érmék összegének számolására 8 bites komparátor, ellenőrzi, hogy elegendő-e már a pénz? Adatutak kialakítása a rendszer működéséhez Az egyes komponensek vezérlőjeleinek azonosítása (tot_clr, tot_ld) A rendszer státuszjeleinek azonosítása (tot_lt_s) Megtervezhető? Viselkedési leírással egyszerű

Az adatstruktúra Verilog HDL kódja 4 bites változókkal

Az adatstruktúra kiegészítése a vezérlővel Külső parancs jel: c érme bedobás érzékelőjele Külső vezérlő jel: d pohár szóda kiadása Belső vezérlőjelek: tot_clr, tot_ld, összeg regiszter vezérlése, törlés, töltés Belső státuszjel: tot_lt_s, az eddig bedobott összeg kevesebb, mint a szóda ára Itt a vezérlő már egyszerű FSM, bitszintű jelekkel

A vezérlő egység Az állapotdiagram ugyanaz, 4 állapot, köztük az eddigi állapotátmenetekkel, ugyanaz a topológia Minden bemeneti és kimeneti jel egy bites A magas szintű műveleteket a hozzájuk tartozó vezérlőjel ill. státuszjel reprezentálja A működés órajel vezérelt Meg tudjuk tervezni? 2 bites állapot regiszter Állapot átmeneti logika specifikálása viselkedési leírással Kimeneti jelek állapothoz rendelve Moore modell

A vezérlő egység

A HLSM jó módszer a specifikálásra Lényegében ugyanaz az eszközkészlet, amit eddig használtunk, megismertünk A kezdeti specifikációt egy állapotdiagramban fogalmazzuk meg, kis kiegészítéssel Ezek a kiegészítések az eddigiekhez képest: Több bites bemeneti és kimeneti jelek Belső tárolók a változók számára Aritmetikai műveletek, a logikai műveletek mellett Természetesen a HLSM specifikálása, felépítése gyakorlatot és tapasztalatot igényel De nem igényli a működés elemi lépésekre bontását, meghagyja a hardver párhuzamos működésének lényegét

Az ASM, azaz algoritmikus állapotvezérlő Az ASM egy folyamatábra jellegű specifikáció A működés itt is órajel vezérelt (digitális HW), minden állapotváltozás egy-egy órajelet igényel Az ASM erősen strukturált jellegű, nem annyira szabad szerkezetű, mint egy HLSM Az állapotátmenetek nem tetszőlegesek (mint a HLSMnél), hanem egy (esetleg kettő, de nem tetszőleges számú) következő állapotra korlátozottak, hasonlóan a számítógépes algoritmusok stílusához Ebből következően nem annyira hatékony HW tervezéshez, mint a HLSM, de segít bevezetni a későbbiekben a programvezérelt processzor működését

Az ASM, azaz algoritmikus állapotvezérlő Az ASM leírás elemei: Állapot doboz: Azonosítja az állapotot, a kódját és végrehajtja az állapotváltozók és a Moore típusú kimenetek megújítását Feltétel doboz: Az adatstruktúra vagy a következő állapot logika működését vezérli Kimeneti doboz: Az esetleges feltételes értékadások művelete, jellemzően Mealy típusú kimenetekhez

Az ASM, azaz algoritmikus állapotvezérlő Az ASM blokk szerkezete: Minden eddigi FSM állapot egy ASM blokk lesz (egyértelmű megfeleltetés) Az ASM blokkban mindig van állapotdoboz (következik a fenti megjegyzésből) Az ASM blokk tartalmazhat egy vagy több feltételvizsgálatot és feltételes értékadást A tipikus használati mód nagyon egyszerű ASM blokkokkal dolgozik.

Az ASM algoritmikus állapotvezérlő Példa: Egy n bites adat aktív bitjeinek megszámolása (Ones_count/Popcount) 8 állapot, 8 ASM blokk S0: Várakozás START jelre S1,S2,S3: Változók inicializálása S4, S5, S6: Számolás ciklusban, amíg még van aktív bit ( 1 -es) S7: érték kijelzés, kész jelzés, új ciklusra visszatérés Láthatóan egyszerű ASM blokkok Nagyon elemi feladatlebontás, mint a mikroprocesszorok gépi utasításai

Az ASM algoritmikus állapotvezérlő Ez így inkább SW jellegű, lépésenkénti végrehajtás, egy időben egy művelet A HW párhuzamos, időben konkurens viselkedését visszacsempészhetjük S0 ugyanaz, vár START-ra S1 minden változót inicializál S2 csak vizsgál, kell-e művelet S3 inkrementál, ha igen S4 lépteti az adatot és tesztel: ha nem kész, vissza S2-be (adatfüggő ciklus) S5: érték kijelzés, kész jelzés, új ciklusra visszatérés

Az ASM algoritmikus állapotvezérlő Az állapotok száma csökkenthető, Mealy típusú ASM blokk(okk)al Ez jelentős módosítás, komplex ASM blokk kell hozzá S0 ugyanaz, vár START-ra S1 minden változót inicializál S2 az adatvizsgálat alapján feltételesen inkrementál és ha az adat nem nulla, akkor annak léptetése után nem 0, ismétli önmagát ciklusban, amíg még van 1 értékű (számolandó) bit S3: érték kijelzés, kész jelzés, új ciklusra visszatérés

Az ASM algoritmikus állapotvezérlő Az ASM specifikáció is kellően rugalmas, jelentős tervezői szabadságot ad, de inkább a SW jellegű, sorrendi elemi utasításokon alapuló végrehajtás megtervezését támogatja Az elemi ASM blokkokkal építkezve könnyű az áttérés a gépközeli SW algoritmusok tervezésének tanulására Az ASM modellben a jellemző állapotátmenetek: CONT: folytatás JUMP: ugrás tetszőleges állapotra (saját magára is) CJMP: feltételes ugrás tetszőleges állapotra Feltétel nem teljesülése esetén CONT

Az ASM algoritmikus állapotvezérlő A vezérlő ebben az esetben lehet egy egyszerű számlálón alapuló vezérlőegység (nem szükséges a sokkal általánosabb FSM felépítés) Az állapotátmenetek vezérlése: CONT: state <= state + 1; // default next_state JUMP : state <= new_state; // controlled next_state CJMP : if (COND) then state <= new _state else state <= state +1 Ezt a feladatot egy törölhető, tölthető bináris felfelé számláló tudja biztosítani Nevezhetjük állapotszámlálónak vagy akár utasításszámlálónak is

Összefoglalva A bonyolult digitális rendszereket adatstruktúra és vezérlő szemlélettel tudjuk hatékonyan tervezni Két hatékony specifikációs módszer: HLSM: Megőrzi a HW teljes párhuzamosságát ASM: Inkább sorrendi jellegű, elemi műveletsorozat Mindkét esetben több bites változókra építve funkcionális adatstruktúrát hozunk létre + vezérlés A vezérlő lehet Moore, vagy Mealy típusú, vagy akár kevert módon működő Az ASM specifikációnál a Mealy típusú ASM blokk bonyolult feladatokra képes, de nem könnyű kialakítani, tervezése rutint igényel

Megjegyzés: Egyszerűbb esetekben nem különböztetjük meg explicit módon az adatstruktúrát és vezérlőt Az adatstruktúra viselkedési leírásában, a beépített feltételeket, mint vezérlési feltételeket kiértékelve tudjuk a kívánt működési állapotokat elérni Ez egy intuitív tervezési módszer. Sokszor nagyon ésszerű, gazdaságos, magától értetődően jó megoldásokat eredményez, de odafigyelést igényel. Gyakran nehéz az egyes speciális feltételek korrekt kezelése, és így hajlamosak leszünk kisebb engedményekre, kompromisszumokra (pl. INIT állapotban kiadott READY jelzés)

Processzor adatstruktúrák ADATSTRUKTÚRA + VEZÉRLÉS Vezérlés: Minden feladatra egységes általános elv De természetesen egyedi állapotdiagram, jelek, stb. Adatstruktúra: Egyedi felépítés, feladatorientált kialakítás Megmaradt a HW párhuzamos, időben konkurens működése

Processzor adatstruktúrák ADATSTRUKTÚRA + VEZÉRLÉS Adatstruktúra: Ahány feladat, annyi architektúra Lehetne itt is általánosítani? Valószínűleg igen Feladjuk a párhuzamos működés előnyét az egyszerű tervezhetőség érdekében Sok elemi művelet időben sorban egymás után

Processzor adatstruktúrák Milyen legyen az általános adatstruktúra? Komponensek: adattárolók, műveletvégzők, huzalozás Adattárolók: Regiszterek: bármelyik adat bármikor elérhető Regisztertömb: korlátozott számú adat érhető el (1,2,3) Stack: csak a stack teteje érhető el (1,2) Műveletvégzők: Egyedi elemek, közvetlen egyedi bemenetekkel Többfunkciós egység, funkcióválasztással és bemeneti operátor kiválasztással (ADD/SUB/COMP, AND/OR/XOR) Általános státuszjelek a művelet eredményéről (Z/C/N/V) Huzalozás: Bemenet/ kimenet kiválasztás/aktiválás Belső adatutak, operandus kiválasztás

Processzor adatstruktúrák Az általános adatstruktúra? Szabványosítás: Adatméret: minden adat azonos méretű pl. 8 bit Egyedi jelek lehetnek egy bitvektor elemei, beolvasunk 8 bitet, maszkoljuk a kívánt pozíciót Az eddigi külső vezérlőjelek (pl. START) is adatbemenetként kezelhetőek, beolvashatóak, tesztelhetőek és a teszt eredménye szerint használhatóak a vezérlési feladatra A kimeneti jelek hasonlóan egységesen kezelhetők, 8 bites bitvektorok közvetlenül, egyedi bitek bitpozíció beállítással kiadhatók A vezérlő egység kimenete (pl. READY) is így kezelhető

Processzor adatstruktúrák Típustervek az általános adatstruktúrára STACK ACC 2REG 3REG Összehasonlítás, elemzés, hatékonyság vizsgálat egy egyszerű példa alapján, figyelembe véve az utasításszó méretét

Processzor adatstruktúrák Mintapélda: Fibonacci sorozat generálása F n = F n-1 + F n-2, és F 0 = 0, F 1 = 1 8 biten : 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 Vizsgált verziók: Hardver: Verilog HDL, 2 db REG + ADD Stack alapú + program Akkumulátor alapú + program 2 Regisztercímes + program 3 Regisztercímes + program Szempontok: sebesség, kódméret

Processzor adatstruktúrák Verilog HDL hardver realizáció HW költség: 2 db 8 bites regiszter + 1 db 8 bites ADD Ha engedélyezett, minden órajelre egy új F n érték

Processzor adatstruktúrák Szoftver realizációk!!!!!!pseudó KÓD!!!!! Stack alapú adatstruktúrával Program méret: 6 (keskeny) utasításszó Utasítás formátum: műv_kód (nincs regisztercím) Végrehajtás: 3 utasításonként egy új érték

Processzor adatstruktúrák Szoftver realizációk!!!!!pseudó KÓD!!!!! Akkumulátor alapú adatstruktúrával Program méret: 12 (kis méretű) utasításszó Utasításformátum: ACC = ACC műv REG1 (1 regiszter cím) Végrehajtás: 8 utasításonként egy új érték

Processzor adatstruktúrák Szoftver realizációk!!!!!pseudó KÓD!!!!! 2 címes Regisztertömb alapú adatstruktúrával Program méret: 7 (közepes méretű) utasításszó Utasításformátum: REG1 = REG1 műv REG2 (2 reg. cím) Végrehajtás: 5 utasításonként egy új érték

Processzor adatstruktúrák Szoftver realizációk!!!!!pseudó KÓD!!!!! 3 címes Regisztertömb alapú adatstruktúrával Program méret: 7 (nagyméretű) utasításszó Utasításformátum: REG3 = REG1 műv REG2 (3 reg. cím) Végrehajtás: 5 utasításonként egy új érték

Processzor adatstruktúrák Szoftver realizációk!!!!!!pseudó KÓD!!!!! 3 címes Regisztertömb alapú adatstruktúrával, hatékonyabb programkialakítással Program méret: 9 (nagyméretű) utasításszó Utasításformátum: REG3 = REG1 műv REG2 (3 reg. cím) Végrehajtás: ~2 utasításonként egy új érték!!!!

Processzor adatstruktúrák A vizsgálatok alapján egy adott mintafeladat különböző feltételekkel realizálható A megvalósítás fontos jellemzője (költsége): a program teljes memória igénye ( memory footprint ) Asztali vagy nagygépes környezetben nem kritikus De persze nem elhanyagolható Beágyazott vagy mobil környezetben ma is fontos!! Pl. Internet of Things eszközök memória korlátja A konkrét esetre, átlagos adatokkal: 6 bit utasításkód (~50 utasítás), 4 bit reg. cím (16 reg.) Stack: 6 ut.* 6 bit = 36 program memória bit, Akkum:12 ut.* (6+4) bit=120 program memória bit, 2 címes: 7 ut.* (6+4+4) bit = 98 program memória bit 3 címes: 7 ut.* (6+4+4+4) bit = 126 prog. mem. bit

Processzor vezérlés Az általános adatstruktúra jól használható, de képességei korlátosan érvényesíthetők Egy ütemben egy változó módosulhat Ez erősen szekvenciális végrehajtást jelent Az ASM működési modell bőven elegendő Nem jelent lényeges előnyt az általános FSM tetszőleges állapotátmeneti képessége ASM állapotátmenetek: CONT: folytatás ( ez az alapértelmezett mód) JUMP: ugrás tetszőleges állapotra (saját magára is) CJMP: elágazás, feltételes ugrás tetszőleges állapotra Feltétel nem teljesülése esetén CONT

Processzor vezérlés ASM algoritmikus állapotvezérlővel A vezérlő ebben az esetben lehet egy egyszerű számlálón alapuló vezérlőegység: programszámláló (PC, Program Counter) Az állapotátmenetek vezérlése: CONT: PC <= PC + 1; JUMP : PC <= LABEL; CJMP : if (COND) then PC <= LABEL else PC <= PC +1 Ezt a feladatot egy inicializálható, tölthető bináris felfelé számláló tudja biztosítani RESET-re PC = 0, vagy a csupa 1, azaz 0xFFFF

Processzor vezérlés ASM algoritmikus állapotvezérlővel A vezérlőjelek tehát nem közvetlenül a PC értékéből származnak, (annak állapota nem direktben kódolja azokat), hanem a PC tartalma megcímzi és kiolvassa a programmemóriában található utasítás szót (FETCH), és ez tartalmazza a kódolt vezérlőjeleket (annyi biten, amennyi a formátumba belefér), ezt az utasítás dekóder értelmezi (DECODE) és juttatja el az adatstruktúra felé végrehajtásra (EXECUTE). Tehát az adatstruktúra vezérlőjel generálás folyamata: PC új érték FETCH DECODE EXECUTE Ez történik a processzor vezérlő egységében

Processzor műveletvégzés Regisztertömb alapú adatstruktúra kiegészítése be- /kimeneti interfésszel (memória, periféria) Általános tulajdonságok: Minden adatot először beírunk a regisztertömbbe Műveletet csak a regiszter adatokon végzünk Létezik közvetlen adat programkódból A részeredményeket visszaírjuk A végeredményt kiadjuk Ezt hívjuk LOAD/STORE felépítésnek A regisztertömb mérete Szélesség: 8/16/32/64 bit Mélység: 16/32/64 regiszter Több regiszter több címbit (utasításméret) Több regiszter kevesebb adatmozgatás 32 bites utasításnál jó kompromisszum

Processzor műveletvégzés Az adatstruktúra műveleti egysége: ALU: Aritmetikai Logikai Unit Műveleti képességek (utasítás készlet) Aritmetikai (ADD, SUB, INC, DEC.) Logikai (AND, OR, XOR, NOT ) Léptetés (SHL, SHR, ASH ) Forgatás (ROL, ROR, ) Feltétel vizsgálat (COMP, TST, ) Egyszerű adatmozgatás (MOV) Minden művelet a szabványos adatméreten 8 / 16 / 32 / 64 bit, az adott rendszer jellemzője Kisebb adatméret: eredmény maszkolása Nagyobb adatméret: Átvitelbit használatával kiterjesztett műveletvégzés

Processzor műveletvégzés ALU felépítése 1. verzió: Minden feladatra külön áramkör, a kimeneten MUX hálózattal nem gazdaságos 2. verzió: Sok feladat egyetlen összeadóval + a bemeneten speciális kiegészítés az adatelőkészítésre Kivonás: Kettes komplemens képzéssel Inkrementálás: 1 hozzáadása (pl. Ci) Dekrementálás: 1 kivonása Léptetés balra: önmagával összeadás Konkrét áramköri megoldások eltérőek Közös vonás: Néhány bites vezérlés: FUN Operandus kiválasztás: REG1, REG2 Bemenet/kimenet előválasztás

Összegzés Tetszőleges digitális rendszer: Általános rendszerterv: adatstruktúra + vezérlés Processzoros rendszerek: Általános processzor adatstruktúra + ASM alapú egyszerűsített processzor vezérlőegység A vezérlési állapot indirekt megadása: PC (programmemória cím) programtár olvasás (aktuális utasítás) dekódolt vezérlő jelek származtatása és végrehajtás Továbblépés: PC = PC +1 vagy esetleg (feltételes) ugrás Egységesített adatméret és be-/kimeneti interfészek LOAD/STORE működés, külső vagy memória adatok regiszterbe töltődnek használat előtt

Digitális technika 8. EA vége