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
[email protected]
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, huzalozott vagy pedig mikroprogramozott. 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)
futószalag szuperskalár mikroprogramozott
Szekvenciális (centralizált)
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. 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
MK
Címrész
külső cím Control Memory
CMAR
S clock DEC
c0 c 1 c 2 c 3 c4 C mátrix Control
a a a a a 4 3 2 1 0
külső feltétel
A mátrix Address
Vezérelt objektum
Feltételes utasítások végrehajtása
Mikroutasítások szerkezete Kétszintű horizontális mikroutasítás
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
Nanotár
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
Kódolt horizontális mikroutasítás ... Kódolt mező Kódolt mező Kódolt mező
Dekódoló Vezérlőbitek
Dekódoló
Következő mikroutasítás címe
Dekódoló
Vezérlőbitek Vezérlőbitek
Vezérlőbitek
Vertikális mikroutasítás 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 MPC CM CMDR DEC
multiplexer mikroprogram számláló, a CM címregisztere control memory - mikroprogramtár control memory adatregisztere vezérlőjelek dekódere Külső cím MUX
load MPC
COND feltételek vagy állapotok
inc
CM mikroprogramtár
Ugrási cím CMDR Külső feltétel kiválasztása
DEC Vezérlőjelek
Mikroprogram adatregiszter
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.
Következő mikroutasítás címe
... Vezérlőbitek
Kódolt mező Kódolt mező Kódolt mező
Dekódoló Vezérlőbitek
Dekódoló
Következő mikroutasítás címe
Dekódoló
Vezérlőbitek Vezérlőbitek
Típus
Vezérlőrész hossza (bit)
Szerkezet
IBM 360/Model 50
90
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
PDP 8
128
Hosszú vezérlő szó. 128-féle elemi művelet
M68000
68
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.
CPU RAM
Operatív tár
PC
Feltételek
Clk Reset
MAR DEC
Ütemező
IR
MDR
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ó; 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