Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Vezérlőegység Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu
Vezérlés A vezérlés célja az utasítás-végrehajtás elemi lépései során az adatutak megnyitása vagy lezárása, állapotjelzők beállítása vagy törlése a vezérlőpontokra küldött megfelelő sorrendű jelek segítségével.
Osztályozás/fejlődés A szekvenciális vezérlés elve vagy huzalozott, vagy pedig mikroprogramozott. Az utóbbi kettő tehát a napjaink vezérlésének az építőelemei. Más szavakkal a huzalozott és a mikroprogramozott vezérlés nem egy elavult elv, hanem ellenkezőleg: a napjaink vezérlésének az infrastruktúrája. A párhuzamos (decentralizált) vezérlés napjainkban is a szekvenciális (centralizált) vezérlés többszörözésével áll elő. Bár a szuperskalár hamarabb jelent meg, mint a futószalag technika, de az utóbbi hamarabb vált elterjedtté. Párhuzamos (decentralizált) Szekvenciális (centralizált) futószalag szuperskalár mikroprogramozott huzalozott 1947: az első elektronikus számítógép 1954: Wilkes 1964: CDC 6600 1967: IBM 360/91 t
Mikroprogramozott vezérlés Mikroprogramozott vezérlésről akkor beszélünk, amikor egy-egy gépi kódú utasítás végrehajtásának vezérlésére programozott vezérlőegységet használunk fel. A vezérléshez felhasznált programot nevezzük mikroprogramnak, amelynek egy-egy utasítása a mikroutasítás. A vezérlőegység azon részét, amely a műveleti vezérlést oldja meg, ezekben az esetekben mikrovezérlő egységnek nevezik. A mikrovezérlő a mikroprogram végrehajtásakor, a program utasításai alapján vezérlőjeleket ad ki, amelyek a számítógép vezérlési pontjaihoz kapcsolódó elemi műveletek, tevékenységek engedélyezésére szolgálnak. Bonyolult utasítások végrehajtásának vezérlésére szolgáló mikroprogramok feltételes vezérlésátadó és eljáráshívó mikroutasításokat is tartalmaznak. A feltételes vezérlésátadó (ugró) utasításokhoz külső feltételek teljesülését is vizsgálhatja a mikrovezérlő egység. Ha a mikroprogram RAM-ban helyezkedik el, elvileg cserélhető. Így ugyanazon hardveren másik utasításkészlet emulálható. Ez veszélyes művelet, ezért csak a fejlesztés fázisában alkalmazzák
A Wilkes-féle modell Egy mikroutasítás a legegyszerűbb formájában két fő részből áll: - a vezérlőmező, mely az aktiválandó vezérlési vonalakat tartalmazza - a címrész, amely az ezt követően végrehajtandó mikroutasításnak a Controll Memory-beli címét mutatja. IR külső cím MK Címrész CMAR Control Memory clock S DEC c c c c c 0 1 2 3 4 a a a a a 4 3 2 1 0 C mátrix Control külső feltétel A mátrix Address Vezérelt objektum Feltételes utasítások végrehajtása
Horizontális mikroutasítás Mikroutasítások szerkezete Kétszintű horizontális mikroutasítás... Következő mikroutasítás címe Következő mikroutasítás címe Nanoutasítás címe Vezérlőbitek A vezérlő mező minden bitje egy-egy vezérlési pont tiltására/engedélyezésére szolgál Többlépcsős utasításvégrehajtás Nanotár Kódolt horizontális mikroutasítás Kódolt mező Kódolt mező Kódolt mező Következő mikroutasítás címe... Vezérlőbitek Dekódoló Dekódoló Dekódoló Vertikális mikroutasítás ezérlőbitek Vezérlőbitek Vezérlőbitek Műveleti kód Operandus cím Kiegészítő rész Egy utasítás csak egyetlen vagy kis számú elemi műveletet végez.
A vezérlőegység felépítése MUX multiplexer MPC mikroprogram számláló, a CM címregisztere CM control memory - mikroprogramtár CMDR control memory adatregisztere DEC vezérlőjelek dekódere Külső cím COND MUX load MPC CM feltételek vagy állapotok inc mikroprogramtár Ugrási cím Külső feltétel kiválasztása CMDR DEC Mikroprogram adatregiszter Vezérlőjelek
Horizontális mikroprogramozás A vezérlési mező minden egyes bitje egy-egy vezérlési pontot engedélyezhet vagy tilthat. Ha a gépi utasítás feldolgozása több lépésben oldható meg csak, akkor a mikroutasítás tartalmazhatja a következő mikroutasítás címét is. hosszú formátum magas fokú párhuzamosságot képes kifejezni, minden vezérlőjel azonosítható a vezérlőinformáció lehet kódolatlan kódolt. Legszélső eset a vertikális mikroutasítás, amikor minden mikroművelethez egy opcode tartozik. Vezérlőbitek... Vezérlőbitek Kódolt mező Kódolt mező Kódolt mező Dekódoló Dekódoló Dekódoló Vezérlőbitek Vezérlőbitek Következő mikroutasítás címe Következő mikroutasítás címe Típus IBM 360/Model 50 PDP 8 M68000 Vezérlőrész hossza (bit) 90 128 68 Szerkezet 21 különböző célú önálló vezérlőmező, következő mikroutasítás címe, hibajelzésre szolgáló paritásbitt Hosszú vezérlő szó. 128-féle elemi művelet Kétszintű, horizontális mikroprogramozási mód. Összesen két utasításformátum: egy általános célú és egy ugróutasítás céljára szolgáló forma
Vertikális mikroprogramozás A mikroutasítások csak egy-egy elemi művelet végrehajtását engedélyezik. Így a gépi kódú utasítás feldolgozása több mikroutasítás egymás utáni végrehajtását igényli. A mikroprogram tartalmazhat mikroeljárást, mikroszubrutint hívó utasítást is, azaz felépítése teljesen hasonlóvá válik a makroszintű gépi kódú programokéhoz. Ebben az esetben, a mikroprogram automatikus végrehajtása miatt, a mikrovezérlőben mikroutasítás számláló regiszterre (MPC) is szükség van. rövid formátum; a vezérlőinformáció szélsőséges kódolása: minden mikroművelethez egy opkód tartozik IBM 370 Model 145 Az egyetlen mikroműveletet specifikáló mikroutasítás igen hasonlít a közönséges gépi kódú utasításhoz. A mikroutasítás formátuma négy bájtos, a következő megoszlással: Műveleti kód 1. operandus 2. operandus CM címzés A baloldali egy vezérlőmező (control field) vagy opcode, mely meghatározza a végrehajtandó mikroműveletet. A következő két bájt határozza meg az operandust. A leggyakrabban ezek a bájtok CPU regisztert címeznek. A jobboldali legszélső bájt a következő mikroutasítás címképzéséhez használt információt tartalmazza. Intel 8086/88 Vertikális mikroprogramozási módot alkalmaz, alapvetően hasonló felépítésű, többféle célú mikroutasítással dolgozva.
Huzalozott vagy áramköri vezérlőegység Szekvenciális logikai áramkörnek tekinthető, amely arra szolgál, hogy a vezérlőjelek egy specifikus szekvenciáját generálja. Tervezés igazságtábla logikai függvények egyszerűsítés (komponensek számának minimalizálása és a műveleti sebesség maximalizálása) megvalósítás tesztelés Amint megkonstruálták, a viselkedésének megváltoztatását csak újratervezése és az áramkörökkel való fizikai újra megvalósítása útján érhetjük csak el.
Megvalósítás Ütemező bemenetei a dekódoló, az előző utasítás feltétel-bitjei, a reset valamint - aszinkron működés esetén - a visszajelentő impulzusok, szinkron működés esetén pedig az órajel (clock). A feladata: egyfelől a vezérlőegység többi blokkjának; másfelől a vezérelt objektumok, azaz az operatív tár, az ALU, a sínrendszer és az I/O funkcionális egységeinek vezérlése Az ütemező a szükséges vezérlőjelek kibocsátásával megnyitja azokat a kapuáramköröket, amelyeken keresztül a kijelölt regiszterek tartalma a módosító áramkörökre kerül; megfelelő vezérlőjelekkel "közli" a módosító áramkörökkel a szükséges feladatukat; megnyitja azokat a kapuáramköröket is, amelyeken keresztül az eredmény a kijelölt regiszterbe kerül. Hardver megvalósítás programozható logikai áramkörökkel (PLA) történik. RAM Operatív tár PC MAR IR MDR DEC CPU Feltételek Clk Reset Ütemező Vezérelt objektumok Vezérlési pontok száma tipikusan 100-200
Előnyei, hátrányai Előnye - gyorsabb a mikroprogramozottnál, mivel további időt igényel a mikroutasításnak a Control Memory-ból való fetch-elése - kezdetben olcsóbb volt a mikroprogramozott vezérlőegységnél, mivel a Control Memory és az azt elérő áramkörök növelték a költségeket Hátránya - merev és nehezen áttekinthető - csak körülményesen, drágán módosítható; - tervezése és tesztelése, nyomkövetése drága A huzalozott vezérlést célgépekben és olyan számítógépekben érdemes alkalmazni, ahol a végrehajtási idő kiemelt fontosságú. Például, RISC processzorok