Apr 302013
 

I denne og et par efterfølgende posts vil jeg beskrive designet for det der måske er verdens mindste computer. Specifikationerne er små og få, og ligeså er de komponenter der skal til at bygge den. Selv om der måske kun er begrænset anvendelighed for denne computer vil den ikke desto mindre give et godt indblik i, hvordan computerlogik konstrueres. Jeg vil også med afsæt i dette komme ind på, hvordan (silicium baserede) computere ikke skaber information, men kun kan smide information væk... Underligt som det nu kan lyde er dette ganske nyttigt alligevel og jeg vil drage nogle paralleller til hvordan vores hjerne (carbon-computeren) virker.

Specifikationerne for designet er -

  • 3 bit input - 1 databit og 2 bit til instruktionen
  • 3 bit output - 1 databit og de resterende 2 bit output bruges til et instruktionsregister. Mere herom senere.
  • 4 unikke instruktioner til at manipulere input med og generere output.
  • Logikken kan bygges med 2 (to!) stk integrerede kredse - 1 stk 2-input NAND chip og 1 x 3-input NAND chip. Strømkreds, input givere og output givere er ikke med i designet men skulle kunne laves enkelt af de fleste.

Hvad er en computer?
Definitionen fra wikipedia er passende i denne henseende:

"A computer is a general purpose device that can be programmed to carry out a finite set of arithmetic or logical operations."

Vi vil kigge på de logiske operationer der kan komme på tale med vores 1-bit computer, og se hvorfor termen "finite set" (endeligt antal) er vigtigt.

Da vi har 1 bit at gøre godt med (input = 0 eller 1) er spørgsmålet hvad vi kan gøre med denne information? Jeg vil sætte 4 systemer op og vise at dette er de eneste 4 systemer der er mulige, dvs vi har et endeligt antal logiske operationer. I det efterfølgende vil jeg benævne input bits med bogstaver a,b,... I 1-bit computerens tilfælde har vi kun input på a. Output benævnes med f.

  • Uanset hvilket input a er givet, smid tallet væk og sæt output f = 0. Vi vil kalde denne model S(0) af årsager der bliver klar om lidt.
  • Hvis a=0, sæt f=1 og hvis a=1, sæt f=0. Vi kalder denne model S(1). Dette svarer til den logiske operation f=NOT(a).
  • Sæt f=a. Vi kalder denne model S(2). Dette svarer til en simpel overførsel af input bitten til output.
  • Uanset hvilket input a er givet, smid tallet væk og sæt output f = 1. Vi kalder denne model S(3).

Dette er de eneste 4 systemer der kan laves med en 1-bit computer! Lad mig stille tallene lidt anderledes op, så det ses hvorfor.

input
a   1 0
Model S(x)  Output Operation
S(0) f= 0 0 f=0
S(1) f= 0 1 f=NOT(a)
S(2) f= 1 0 f=a
S(3) f= 1 1 f=1

Tallene i venstre kolonne svarer til værdien af det binære tal til højre udtrykt i vores 10-talssystem. Givet der kun er 1 bit til rådighed til input (a=0 eller a=1) ses det umiddelbart at der ikke er andre operationer der kan producere andre unikke output, end dem der allerede er skrevet her.

Uden at komme nærmere ind på detaljerne kan det siges at disse logiske operationer forholdsvist nemt kan implementeres med diskrete komponenter.

  • S(0) implementeres ved at trække output f til Nul i en strømkreds.
  • S(1) implemeteres ved at sende input a gennem en inverter til output f.
  • S(2) implementeres ved at sende input a gennem en buffer til output f.
  • S(3) implementeres ved at trække output f til V+ i en strømkreds.

Problemet med disse systemer er dog at de er hardwiret til at udføre én og kun én logisk operation. Det ville være mere praktisk, hvis vi kunne bygge en computer der kan udføre alle 4 forskellige operationer. Det er muligt og det vil jeg beskrive i næste post.

 

 

 

Sorry, the comment form is closed at this time.