Procesor, mikroinštrukčný register,
strojový cyklus

Aritmeticko - logická jednotka
Shifter
Vnútroprocesorové registre a zbernice
Mikroinštrukčný register, mikroinštrukcia
Taktovanie, strojový cyklus
Čítanie a zapisovanie do pamäte
Príloha - schéma procesora
Odkazy na príbuzné témy


Sekvenčné obvody a logické hradlá vedia si pamätať svoj stav, preklopiť sa do iného stavu, spočítať dve binárne čísla, posúvať binárne číslo ... Vieme "zručnosti" týchto obvodov využiť a zostaviť počítačový systém.

Celý počítačový systém môžeme veľmi hrubo znázorniť v štyroch úrovniach. Zatiaľ sme "vybudovali" tú najnižšiu úroveň - logické obvody. Ideme stavať ďalšie "poschodie" - mikroprogramovanie. Najskôr rozoberieme jednotlivé časti mikroprocesora, potom ich spojíme do funkčného celku.


OPERAČNÝ SYSTÉM
STROJOVÉ INŠTRUKCIE
MIKROPROGRAMOVANIE
LOGICKÉ OBVODY


Aritmeticko - logická jednotka     Nahor

Aritmeticko - logická jednotka (ďalej ALU) je riadená signálmi F0 a F1, ktoré umožňujú 4 možné operácie - buď na zbernicu R púšťa obsah zbernice A, alebo vykoná logický súčet čísel na zberniciach A, B, alebo vykoná logický súčin čísel na zberniciach A, B, alebo na zbernicu R dáva negáciu čísla zo zbernice A. Tieto 4 logické operácie stačia pre vykonanie ľubovoľnej aritmetickej, či logickej operácie. "Zručnosti" ALU ozrejmuje nasledujúca tabuľka:


F0 F1R
0 0A
0 1A+B
1 0A&B
1 1not(A)

ALU pracuje až s 80 bitovým registrom, musí vykonať spomínané operácie s každým jedným bitom zo zbernice A, resp. zberníc A a B. Zapojenie logických hradiel pre jeden bit znázorňuje nasledujúca schéma:


FYZIKÁLNA SCHÉMA ALU SCHEMATICKÁ ZNAČKA ALU


Pre realizáciu ďalších matematických operácií (násobenie, delenie) je nutný posun binárneho čísla do ľava resp. prava o 1 bit. Logický obvod pre posúvanie sa nazýva shifter.



Shifter     Nahor

Shifter (SH) je riadený riadiacimi signálmi F2 a F3, ktoré umožňujú 3 možné operácie (kombinácia 1,1 je nedovolená) - buď na zbernicu S púšťa obsah zbernice R, alebo vykoná posun do ľava či prava - t. j. na zbernicu S dáva posunuté číslo zo zbernice R daným smerom. "Zručnosti" shiftra ozrejmuje nasledujúca tabuľka, fyzikálna schéma znázorňuje zapojenie logických hradiel pre tri susedné bity zo zbernice R:


F2 F3S
0 0R
0 1posun do Ľ
1 0posun do P
1 1nedef.

FYZIKÁLNA SCHÉMA POSÚVAČA SCHEM. ZNAČKA POSÚVAČA

Keďže ALU v súčinnosti so shiftrom vykonáva napr. násobenie dvoch binárnych čísel na niekoľko desiatok krokov, medzivýsledky sa uchovávajú vo vnútroprocesorových registroch, ktoré sa prenášajú vnútornými zbernicami A, B, S.



Vnútroprocesorové registre a zbernice     Nahor

Mikroprocesor počas svojej práce vystačí so 16 pracovnými registrami, z ktorých v danom čase je len práve jeden pripojený na zbernicu A - dátová zbernica, práve jeden na zbernicu B - adresová zbernica a len práve jeden pripojený na zbernicu S - systémová zbernica. Okrem týchto "cestičiek" signálov súčasťou je množstvo tzv. riadiacich zberníc, ktoré po procesore "roznášajú" riadiace signály z mikroinštrukčného registra. Keďže rýchlosť zberníc a registrov je veľmi vysoká, je potrebné riadenie výpočtu, aby výsledok "nepredbehol" svoj výpočet. Funkciu závor plnia tzv. vyrovnávacie registre, ktoré "podržia" číslo a pustia ho ďalej až v dovolenom čase.


VNÚTROPROCESOROVÉ REGISTRE - SCHÉMAREGISTERVYUŽITIE
reg.0 - A - accumulator (zhromažďovač medzivýsledkov)
reg.1 - B - base (prístup k poliam)
reg.2 - C - counter (pošet prechodov pri práci s blokmi)
reg.3 - D - date (všeob. údaje - čo sa nvmestí do A)
reg.4 - SI
reg.5 - DI
- source index a destination index (adresy operandov pri práci s blokmi)
reg.6 - BP
reg.7 - SP
- base pointer (ukazateľ na vybrané miesto v zásobníku) a stack pointer (ukazateľ vrcholu zásobníka)
reg.8 - F - flags (príznakový register)
reg.9 - IP - instruction pointer (ukazuje na na kód nasledujúcej inštrukcie)
reg.10 - reg.15
CS,DS,SS,ES,FS,GS
- segmentové registre (slúžia na zväčšenie adres. pamäte)

Časti registrov, prístupných pre programátora cez svoje názvy, sa z dôvodu kompatibility s nižšími systémami rozlišujú písmenami L - low (dolných 8 bitov), H - hight (16 bitov) a EX - extended (32 bitové slovo), napr. pre accumulator - AL, AH (spolu sa označuje AX), EAX, pre base - BL, BH (BX), EBX a pod. (Pozri obrázok)



O tom, ktoré registre sú pripojené k jednotlivým zberniciam, akú funkciu budú plniť aritmeticko - logická jednotka a shifter a či sa výsledok operácie bude zapisovať do registrov, či do operačnej pamäte, rozhodujú riadiace signály, uložené v mikroinštrukčnom registri.



Mikroinštrukčný register, mikroinštrukcia     Nahor

32 riadiacich signálov tvoria jednu mikroinštrukciu. Všetky mikroinštrukcie (až 256) sú uložené v pamäti - v mikroinštrukčnom speichri a vytvárajú mikroinštrukčnú sadu. Vysvetlíme si význam jednotlivých bitov (sprava) v mikroinštrukčnom registri:




  • ADR - 8 bitov, ktoré určujú adresu nasledujúcej mikroinštrukcie v nasledujúcom strojovom cykle
  • A - BUS - 4 bity, určujúce adresu registra, ktorý bude pripojený na údajovú (dátovú) zbernicu A.
  • B - BUS - 4 bity, určujúce adresu registra, ktorý bude pripojený na adresovú zbernicu B.
  • S - BUS - 4 bity, určujúce adresu registra, ktorý bude pripojený na systémovú zbernicu S.
  • ENS (Enable S) - Ak bit obsahuje hodnotu 1, budú registre pripojené k zbernici S a bude sa do nich zapisovať. Ak bit obsahuje hodnotu 0, registre budú od zbernice S odpojené.
  • MS (Memory select) - Ak bit obsahuje hodnotu 1, bude sa komunikovať s operačnou pamäťou. Ak bit obsahuje hodnotu 0, komunikácia s operačnou pamäťou nenastane, medzivýsledok sa zapíše do registrov.
  • RD/WR (Read / Write) - Ak bit obsahuje hodnotu 1, bude sa z pamäte čítať a načítaný údaj sa zapíše do vybraného registra. Ak bit obsahuje hodnotu 0, bude sa do pamäte zapisovať.
  • MAR (Memory address register) - vyrovnávací register, ktorý sa aktivuje pri komunikácii s pamäťou a obsahuje adresu, odkiaľ treba čítať, resp. kam treba zapísať údaj, ktorý "čaká" v registri MBR
  • MBR (Memory buffer register) - vyrovnávací register, ktorý sa aktivuje pri komunikácii s pamäťou a obsahuje údaj, ktorý treba zapísať do pamäte, alebo ktorý sa načítal z pamäte a zapíše sa do registra.
  • SH (Shifter) - Riadiace signály pre shifter (dovolené sú 00, 01, 10) - viď vyššie pravdivostnú tabuľku pre shifter.
  • ALU (Aritmetic - logical unit) - Riadiace signály pre ALU (povolené sú všetky kombinácie 00, 01, 10, 11 ) - viď vyššie pravdivostnú tabuľku pre ALU.
  • COND (Conditions) - Riadiace signály ovplyvňujúce výber nasledujúcej mikroinštrukcie na základe výslekov danej operácie, určuje podmienky skokov pri výbere mikroinštrukcie.
  • A-MUX (A - multiplexor) - Ak bit obsahuje hodnotu 0, budú sa "púšťať" údaje do ALU zo zbernice A. Ak bit obsahuje hodnotu 1, budú sa "púšťať" údaje do ALU z pamäte - z registra MBR.

Taktovanie, strojový cyklus     Nahor

Výpočet, či iné operácie, ktoré CPU vykonáva, je potrebné časovo synchronizovať, preto sa mikroinštrukcia vykonáva v taktoch. Hodiny na základnej doske udávajú základnú taktovaciu frekvenciu a časové pulzy sú privedené do procesora. Jedna mikroinštrukcia sa vykonáva v 4 taktoch, ktoré tvoria jeden strojový cyklus (MC - machine cycles). Jednotlivé logické obvody procesora sú pripojené na jednotlivé takty a sú "otvorené" iba v danom takte. V jednom strojovom cykle sa vykoná jedna mikroinštrukcia, každý strojový cyklus trvá 4 takty. Pozri schému mikroprocesora. Čo sa deje v jednotlivých taktoch a ktoré obvody sú v daných taktoch aktívne?


  • 1. takt - Riadiace signály aktuálnej mikroinštrukcie z MIR "otvoria" registre (jeden na A - bus, jeden na B - bus), údaje z týchto registrov sa dostanú po zberniciach A, B do vyrovnávacích registrov, kde "čakajú" na druhý takt. Riadiace signály z MIR nastavia všetky logické obvody aj tie, ktoré budú aktívne až v nasledujúcicgh taktoch.
  • 2. takt - Otvoria sa vyrovnávacie registre A,B, ALU vykoná príslušnú operáciu, údaje prejdú cez sifter a "čakajú" na zbernici S.
  • 3. takt - Slúži pre komunikáciu s pamäťou. Komunikácia nastane len vtedy, ak bit MS v mikroinštrukcii má hodnotu 1, inak sa v tomto takte nerobí nič. Tento takt otvára vyrovnávacie registre MAR a MBR, ktoré sprostredkúvajú prenos dát z CPU do pamäte a naopak.
  • 4. takt - V tomto takte sa otvorí register (podľa signálu S-bus v MIR) pre zápis dát zo zbernice S (buď sú to dáta priamo z ALU, alebo z pamäte). Súčasne sa vyberie z pamäte mikroinštrukcií jedna, ktorá bude aktívna v nasledujúcom strojovom cykle a nakopíruje sa do mikroinštrukčnúho registra.

Ako súvisí taktovacia frekvencia s počtom vykonaných strojových inštrukcií a strojových cyklov? Ak napr. pracuje procesor s frekvenciou 1GHz=1 000 000 000 taktov za 1 sekundu, je schopný vykonať 250 000 000 strojových cyklov a ak v priemere nejaká strojová inštrukcia sa vykonáva na 25 strojových cyklov, tak takýchto inštrukcií je schopný procesor vykonať za 1 sekundu až 10 miliónov. Samotné strojové inštrukcie ako aj údaje sa však čítajú z pamäte a výsledky sa tiež zapisujú do pamäte. Keďže pamäte sú pomalšie oproti rýchlosti procesora, komunikácia s pamäťou sa realizuje opakovaním 3. taktu, čím sa počet vykonaných inštrukcií zmenšuje. Komunikáciu s pamäťou si vysvetlíme na konkrétnom príklade.



Čítanie a zapisovanie do pamäte     Nahor

Keďže pamäte sú pomalšie oproti procesoru, komunikácia s pamäťou sa realizuje opakovaním 3. taktu a to buď synchrónne, alebo asynchrónne. Synchónne riešenie opakuje 3. takt nastavený na istý počet krát - tzv. Wait state, čo na jednej strane môže zdržiavať výpočet (ak je počet opakovaní dosť veľký), alebo pri nedostatočnom počte opakovaní 3.taktu sa čítanie, či zápis nestihne zrealizovať, čo spôsobí chybu. Asynchrónne riešenie vyžaduje navyše ďalší signál READY z pamäte, ak už ukončí proces čítania, či zápisu a procesor môže pokračovať strojový cyklus 4. taktom.

Komunikáciu s pamäťou si demonštrujeme na nasledujúcich príkladoch mikroinštrukcie:

Príklad 1. Chceme zapísať obsah registra r2 (C) do pamäťového miesta, ktorého adresa sa nachádza v registri r1 (B). Odpovedajúca mikroinštrukcia má tvar:

V 1. takte sa obsahy registrov r1 a r2 nakopírujú do zberníc A, B, "zastanú" vo vyrovnávacích registroch A, B. V 2. takte sa registre otvoria, ALU a shifter pustí obsah zbernice A na zbernicu S a do registra MBR, obsah zbernice B sa nakopíruje do registra MAR. Tie sa otvoria až v 3. takte, v ktorom prebieha samotná komunikácia - zápis údaja z registra MBR na miesto v pamäti, na ktoré "ukazuje" MAR. Vo 4. takte sa nevykoná nič (do registrov sa nezapisuje), len sa pripraví do MIR nasledujúca mikroinšrukcia.

Príklad 2. Chceme do registra r3 (D) uložiť údaj z pamäťového miesta, ktorého adresa sa nachádza v registri r4 (SI). Odpovedajúca mikroinštrukcia má tvar:

V 1. takte sa obsah registra r4 nakopíruje na zbernicu B, "zastane" vo vyrovnávacom registri B. V 2. takte sa registre A, B otvoria, ALU a shifter pustí obsah zbernice A (prázdny) na zbernicu S, obsah zbernice B sa nakopíruje do registra MAR - adresa, z ktorej sa bude čítať. MAR sa otvorí v 3. takte, v ktorom prebieha samotná komunikácia - načítanie údaja z pamäte do registra MBR (z miesta v pamäti, na ktoré "ukazuje" MAR). Vo 4. takte sa údaj z MAR dostáva cez multiplexor, ALU a Shifter na zbernicu S a zapíše sa do registra r3, súčasne sa naloaduje do MIR nasledujúca mikroinšrukcia.



Odkazy na príbuzné témy     Nahor
Procesory
Schémy CPU
Delenie procesorov
Typológia procesorov výrobcovia
Výrobcovia, parametre, charakteristiky, recenzie CPU
Technológia MMX, hyperthreading
Architektúra PC - obrázky



Predchádzajúca téma Obsah Nasledujúca téma

© Jana Machová