Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység Dr. Istenes Zoltán ELTE-TTK
4. előadás tartalma ALU áramköri megvalósítása logikai áramkörök összeadó áramkörök vezérlő egységek megvalósítása huzalozott vezérlők mikroprogramozott vezérlők
A központi feldolgozó egység feladata, kapcsolata a többi egységgel részei, felépítése működése megvalósítása (ALU+CU+regiszterek)
Az aritmetikai logikai egység működése, megvalósítása Arithmetical Logical Unit - ALU
Cél : A szükséges aritmetikai és logikai műveletek (+ - AND XOR) megvalósítása Módszer : egyszerű „építőkövekből” összeépítve...
„és” „vagy”
Elemi logikai kapuk AND OR NOT x y x.y 0 0 0 0 1 0 1 0 0 1 1 1 x y x+y 0 0 0 0 1 0 1 0 0 1 1 1 x y x+y 0 0 0 0 1 1 1 0 1 1 1 1 x -x 0 1 1 0 x x x.y x+y x -x y y x x 1 & 1 -x x x.y x+y y y
Logikai kapuk NAND XOR NOR x y x NAND y 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 x y x XOR y 0 0 0 0 1 1 1 0 1 1 1 0 NOR x y x NOR y 0 0 1 0 1 0 1 0 0 1 1 0 x x y y x y
Multiplexer (2 bemenetű) s0 z 0 d0 1 d1 d0 z d1 d0 MUX s0 z d1 s0
Multiplexer (4x 2 bemenetű) y3 x2 y2 x1 y1 x0 y0 MUX z3 MUX z2 MUX z1 MUX z0 s
Multiplexer (4 bemenetű) s1 s0 z 0 0 d0 0 1 d1 1 0 d2 1 1 d3 d0 MUX d1 MUX z d2 MUX d3 d0 MUX d1 z d2 s0 s1 d3 s0 s1
4 bites logikai függvények (AND, XOR) áramkör MUX z3 MUX z2 MUX z1 MUX z0 s
Félösszeadó (1bites) 1/2+ x XOR y bemenet kimenet x y s c 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 x s y x.y c x 1/2+ s s = sum (összeg) c = carry (átvitel) y c
Teljes-összeadó (1bites) bemenet kimenet x y cin s cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 x 1/2+ y s 1/2+ cin cout x y cin 1+ s cout cin = carry in cout = carry out
4 bites teljes összeadó („terjedő átvitel”, ripple carry) y3 x3 y2 x2 y1 x1 y0 x0 c0 c3 c2 c1 1+ 1+ 1+ 1+ c4 s3 s2 s1 s0 cin y3 x3 y2 x2 y1 x1 y0 x0 4 bites összeadó cout s3 s2 s1 s0
Kivonás kettes komplemenssel 5 0101 +2 +0010 7 0111 2 0010 -2 1101 egyes komplemens -2 1110 kettes komplemens összeadás 5 0101 -2 +1110 3 0011 kivonás
4 bites összeadó/kivonó áramkör x3 x2 x1 x0 cin A 4 bites teljes összeadó y3 y2 y1 y0 MUX z3 z2 z1 z0 C MUX B MUX MUX cout s
4 bites 4 műveletes ALU 4 x aritmetikai 4 egység (+/-) 4 4x 2 bemenetű multiplexer 4 4 y 4 z logikai egység (AND/XOR) 4 4 4 s0 s1
Buszok (sínek) Adatsín Címsín Vezérlő sín külső / belső sínek (a CPU-hoz képest) busz-szélesség
„Kapuzás”, vezérlés „A” egység „B” egység „C” egység RA WB WC sín
Kétirányú busz „egység” x1 x2 xn C y1 y2 yn „sín”
A vezérlő egység Control Unit - CU
A vezérlő egység feladata, működése A vezérlő feladata : az adott utasítás alapján a szükséges elemi műveleteket kiváltó vezérlőjelek megfelelő sorrendben való előállítása, illetve a szükséges címek képzése. Vezérlő típusok : huzalozott vezérlők mikroprogramozott vezérlők [Szám. alap. pp103]
Egy töltő utasítás elemi lépései (példa) LDA X azaz (X) -> AC : (PC) -> adatsín, adatsín -> címsín, címsín -> MAR címdekódolás, mem(MAR) -> MDR (MDR) -> adatsín, adatsín -> IR IR(op.kód) -> dekódolás IR(címrész) -> címsín, címsín -> MAR (MDR) -> adatsín, adatsín -> AC [Cserny pp120] címsín MAR MEM AC PC IR „kapuzás” MDR adatsín
Huzalozott vezérlő egység megvalósítása
Számláló reset 2 bites számláló q0 CLK q1 q1 1 1 1 1 q0 1 1 1 1 CLK 1 1 1 1 1 q0 1 1 1 1 CLK 1 1 1 1 1 1 1 1
Demultiplexer (1 ből 4) bemenet kimenet e s1 s0 y0 y1 y2 y3 0 x x 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 1 ből 4 demultiplexer y0 y1 y2 y3 e s0 s1
utasítás végrehajtás - kapuk vezérlése 1. utasítás elérés k4,k0,k1,k2 2. operandus elérés k3,k0,k1,k7 3. utasítás végrehajtás k5,k9 4. következő... ... utasítástól függően címsín k4 k0 vezérlő k8 PC k6 ALU k3 k9 MEM k5 MK OP ACC TMP k1 k2 k7 adatsín
Kapuk vezérlése megfelelő sorrendben 1. utasítás elérés k4,k0,k1,k2 2. operandus elérés k3,k0,k1,k7 3. utasítás végrehajtás k5,k9 4. következő... ... demultiplexer az utasítás lépései clk k0 k1 k2 k3 k4 k5 ... ... MK ... ... ... a megfelelő utasítás számláló demultiplexer
Mikroprogramozott vezérlő egység megvalósítása
Mikroprogramozott vezérlő műveleti kód MAR mikro program tár következő mikro utasítás címe mikro utasítás ... vezérlő jelek
Mikroprogramozott vezérlő programja (példa) 1. utasítás elérés k4,k0,k1,k2 2. operandus elérés k3,k0,k1,k7 3. utasítás végrehajtás k5,k9 4. következő... ... mikro program tár műveleti kód ... 1110100000 110 01 1101000100 110 10 0000010001 110 11 ... ... 110 00 110 01 110 10 110 11 mikro utasítás memória címek k0123456789 következő mikro utasítás címe vezérlő jelek
Huzalozott és mikroprogramozott vezérlők összehasonlítása gyorsabb egyszerűbb Mikroprogramozott: lassabb (ROM kiolvasás) emuláció kompatibilitás speciális utasítások pld. : IBM 370, VAX 11, MC68000
Regiszterek
Regiszterek szerinti osztályozás Általános regiszter készletű Akkumulátoros Verem alapú [Rafi 1.4.2 pp10-16]
Regiszterek Általános célú regiszterek Dedikált (speciális célú) regiszterek státusz regiszter (Status Register SR / Program Status Word PSW) utasítás regiszter (Instruction Register IR) utasítás számláló (Program Counter PC) verem mutató (Stack Pointer SP)
Összefoglalás