Postavme si procesor

Adam Dej

Čo je procesor?

  • (Wikipedia) elektronický obvod ktorý vykonáva inštrukcie počítačového programu vykonávaním základných aritmetických, logických, kontrolných a vstupno-výstupných operácií

Čo presne postavíme?

  • Veľmi zjednodušený procesor
  • Pripojíme aj predpripravené periférie na demonštráciu
  • Výpočtový výkon drozofily

Tranzistor

N-channel

P-channel

P-channel

N-channel

MOSFET tranzistory

Gate

Drain

Source

Gate

Drain

Source

Aproximácia:
Zapnutý, ak

V_{gate} = V_{cc}
Vgate=VccV_{gate} = V_{cc}

Aproximácia:
Zapnutý, ak

V_{gate} = \text{GND}
Vgate=GNDV_{gate} = \text{GND}

Postavme NOT

vstup

výstup

GND

V_{cc}
VccV_{cc}

P-channel

N-channel

Logické hradlá

NOT

OR

AND

NOR

NAND

Sčítačka

0001011
0010001
0011100

+

=

eXclusive OR

A B OUT
0 0 0
0 1 1
1 0 1
1 1 0

Half adder

Demonštrácia

Komponenty procesora

Aritmeticko-logická jednotka

  • Vstupom sú operandy
  • Sčíta, odčíta, logický and, logický not...
  • Výstupom je výsledok

Naša bude vedieť iba zvýšiť a znížiť číslo o 1

Registre

  • Sme vypočítali...
  • Teraz by bolo dobré si to niekde pamätať
     
  • S-R Latch
  • D flip-flop

Demonštrácia

Inštrukčná sada

< > + - [ ] , .
00 00 05 B4 A0 47 8E 00 00 00

Inštrukčná sada

  • '>' - Posun hlavy o políčko doprava
  • '<' - Posun hlavy o políčko doľava
  • '+' - Pripočítaj 1 k momentálnej bunke
  • '-' - Odpočítaj 1 od momentálnej bunky
  • '[' - Ak je momentálna bunka '0' preskoč k vhodnej ']'
  • ']' - Ak momentálna bunka nie je '0', vráť sa k vhodnej '['
  • '.' - Vypíš obsah bunky na výstup
  • ',' - Načítaj vstup do bunky

Čo teda našemu procesoru ešte chýba?

  • ROM
  • RAM
  • Program counter
  • Memory counter
  • Zero detect
  • Skip counter
  • Vstup
  • Výstup

Srdce procesora:
kontrolná jednotka

Čo to je?

  • Načíta inštrukciu
  • Dekóduje ju
  • Ovláda kontrolné signály častí procesora

Cykly operácie

  • Fetch
    • Zvýš Program counter o 1
    • Dekóduj inštrukciu
  • Execute

Kontrolné signály v Execute cykle
Vykonanie '+'

  • RAM[MC] → BUS; BUS → A
  • A → IDU; Increment; BUS → RAM[MC]

Kontrolné signály vo Fetch cykle

  • PC.low → BUS; BUS → A
  • A → IDU; Increment, BUS → PC.low
  • A → IDU; Increment; IF ZERO:
    • PC.high → BUS; BUS → A
    • A → IDU; Incement; BUS → PC.high
  • ROM[PC] → IDU.nextInstruction

Ako to zostrojiť?

  • Veľa hradiel, posuvné registre
  • Mikrokódová jednotka

Po dokončení...

Ďakujem za pozornosť!

Otázky?

  • Simulácia logických obvodov: Logisim
  • Hotový procesor sa dá nájť na mojom Githube
  • Prezentácia "powered by": slides.com

adam-dej.github.io

Let's build a processor (SK)

By Adam Dej

Let's build a processor (SK)

Na tejto prednáške si popíšeme fungovanie elektronických obvodov schopných realizovať jednoduché logické funkcie. Popri tom si vysvetlíme princípy fungovania procesora tak, že budeme staviať jeho jednotlivé komponenty, ktorých spojením na konci vznikne náš vlastný jednoduhý procesor.

  • 256