På skjermen til høyre ser du hvordan det ser ut når en av maskinene skal tolke bildet på skjermen til venstre. Mathias Ose viser resultatet. Foto: Kai T. Dragland, NTNU

Tre måneder på å gjøre det umulige

Går det an å bygge en datamaskin på tre måneder? Ja, åpenbart, hvis du ikke vet at oppgaven er umulig.

DATAMASKINER: – Vi har gitt dere en umulig oppgave, men dere vet ikke at det er umulig, så da går det bra likevel.

Førsteamanuensis Gunnar Tufte under presentasjonen av maskinene. Foto: Kai T. Dragland, NTNU

Førsteamanuensis Gunnar Tufte under presentasjonen av maskinene. Foto: Kai T. Dragland, NTNU

Sånn pleier førsteamanuensis Gunnar Tufte ved NTNU å presentere oppgaven for fjerdeårsstudentene sine.

Han ber dem om å lage en datamaskin på tre måneder.

Nå er det vel mange mekkere som fnyser av dette og sier at de kan sette sammen en maskin i løpet av noen timer. Men de lager ikke komponentene selv. Nei, studentene bestilte ikke alle delene fra en eller annen nettsjappe. De lagde alt på egenhånd.

Tufte holder til ved Institutt for datateknikk og informasjonsvitenskap, Fakultet for informasjonsteknologi, matematikk og elektroteknikk. Det gjør også de mange svært dyktige studentene.

De kunne velge mellom to typer prosessorer som de skulle lage. Oppgaven var ellers svært fri. To prosjekter ble utviklet i år, av to grupper med studenter.

– Omfang og kompleksitet kan sammenlignes med å konstruere en litt eldre PC, sier Tufte.

Var ikke forberedt

Her er det altså ingen bønn. Studentene må utvikle, designe og konstruere en datamaskin ut fra en vag spesifikasjon.

Øyvind Kjerland, Peter Aaser og Arnstein Kleven var blant studentene som tok på seg oppgaven. Foto: Kai T. Dragland, NTNU

Øyvind Kjerland, Peter Aaser og Arnstein Kleven var blant studentene som tok på seg oppgaven. Foto: Kai T. Dragland, NTNU

– Selv om vi alle går fjerde år og har hatt mange fag på NTNU, var ingen av oss egentlig forberedt på en så omfattende og kompleks oppgave. Ingen av oss kan si at vi var spesialister før vi begynte, sier Arnstein Kleven.

Det er da også meningen at de ikke skal vite alt.

– Friheten i prosjektet gjorde at vi måtte finne ut veldig mye selv, rett og slett at vi ble kastet ut på dypt vann. Ingen av oss visste strengt tatt hva vi drev med, og vi hadde ikke noen typisk sjekkliste med ting som skulle gjøres, sier Kleven.

Samarbeid nødvendig

– Det meste av det de møter av utfordringer i dette prosjektfaget er helt nytt for dem, sier førsteamanuensis Tufte.

Noe av det studentene gjør er:

·        Designe og implementere sin egen prosessor.

·        Definere maskinkode.

·        Designe kretskort.

·        Programmere sin egen mikroprosessor.

·        Designe kretskort rundt sin egen prosessor, som Tufte sier kan sammenlignes med å designe et hovedkort for en litt eldre PC.

·        Teste på logikk og elektronisk nivå.

Samarbeid er så klart nødvendig for løse en oppgave som normalt kunne ha tatt flere år. Studentene arbeidet gruppevis og fikk i utgangspunktet en felles karakter.

Det ferdige resultatet V.E.C.T.O.R -3000. Foto: Kai T. Dragland, NTNU

Det ferdige resultatet V.E.C.T.O.R -3000. Foto: Kai T. Dragland, NTNU

– De deler seg som regel opp i ei programvaregruppe, ei prosessordesigngruppe og ei kretskortgruppe for å rekke alt, forklarer Tufte.

Og sånn var det denne gangen også. Kleven sier at det fysiske kretskortet som komponentene kunne ligge på ble designet av en i gruppa som hadde bakgrunn fra elektro.

Koprosessoren og hovedprosessoren ble programmert av studenter med bakgrunn fra data.

Dessuten måtte folk fra gruppa designe selve prosessoren som behandler videostrøm. Denne jobben ble gjort av datastudenter, mens grensesnittet med HDMI-utgang ble gjort av en student med bakgrunn i kybernetikk.

– Til tross for lite erfaring tror det skjer store ting med FPGA, eller rekonfigurerbare prosessorer, sier student Peter Aaser. (Se faktaboks)

Detaljer for de mest interesserte

  • Peter Aaser fra Datamaskinprosjektet sier at selve prosessoren ble implementert på en såkalt FPGA (field programmable gate array/rekonfigurerbar prosessor).
  • FPGAer er raske, energieffektive, men tar lang tid å programmere.
  • I en FPGA kan man «brenne om» logikken, og lage sin egen prosessor som kan rekonfigureres. Forskjellen er litt som en brennbar CD kontra en USB pinne.
  • FPGAen kan ofte gjøre en jobb veldig energieffektivt, noe som betyr at den er billig i drift, miljøvennlig, og at den ikke går varm selv om vi ikke har kjøling på kortet. Dette er kjempenyttig i for eksempel roboter som har begrenset batteri og spesifikke behov.
  • Prosessoren i PC-en din er en såkalt ASIC (Application specific integrated circuit), det vil si at all logikken er brent inn i silikonet.

Det skjer i takt med at det blir lettere å utvikle kode som syntetiseres til hardware. Dette takket være mer moderne språk og verktøy, som for eksempel programmeringspråket Chisel.

– Dette blir kanskje altfor tungt, men gisten av det er at rekonfigurerbar prosessor-teknologi er i vinden, og at det er noe vi er flinke på ved NTNU, sier Aaser.

Mye arbeid

– Studentene møter, og må bruke, designverktøy som industrien bruker med helt andre krav til kunnskap og brukerterskel enn for verktøy som er tilpasset undervisning, sier Tufte.

De møter også tøffe tidsfrister. For eksempel må kretskortet sendes til produksjon i Kina allerede i begynnelsen av oktober for at det skal bli tid til montering og testing.

– Arbeidsmengden lå på rundt 40 – 50 timer uka, med avbrekk når andre deler av prosjektet ikke var klart, sier Kleven.

Yaman Umuroglu er vitenskaplig assistent. Sammen med Tufte selv er han med på å få det hele til å gå rundt.

–  År etter år skjer det mirakler i faget, med tanke på hvor mye studentene får gjort med begrensede ressurser og lite kunnskap fra før om datamaskinkonstruksjon. Det er nesten litt magisk hvordan en datamaskin fungerer, helt til man tar dette faget og blir eksponert for alle detaljene, sier Umuroglu.

Ettertraktet

Kanskje er det ikke så rart at disse studentene er ettertraktet. I slutten av november ble de ferdige produktene presentert under en samling på NTNU der representanter fra flere bedrifter var til stede i det lille forelesningsrommet.

Denne gjengen gjorde det umulige. De bygget datamaskiner på tre måneder. Øverst: Helmer Njærheim, Øyvind Kjerland, Fredrik Haave, Jonas Halland, Christian De Frene. Midten: Mathias Ose, Peter Aaser, Mattis Asp, Arnstein Kleven, Anders Lima, Håvard Lian. Nederst: Øyvind Robertsen, Jonatan Lund og Truls Fossum. Foto: Kai T. Dragland, NTNU

Denne gjengen gjorde det umulige. De bygget datamaskiner på tre måneder. Øverst: Helmer Njærheim, Øyvind Kjerland, Fredrik Haave, Jonas Halland, Christian De Frene. Midten: Mathias Ose, Peter Aaser, Mattis Asp, Arnstein Kleven, Anders Lima, Håvard Lian. Nederst: Øyvind Robertsen, Jonatan Lund og Truls Fossum. Foto: Kai T. Dragland, NTNU

– Lokal og internasjonal industri er særs interessert i disse studentene. Det var representanter fra ARM, Xilinx, ATMEL og Nordic Semiconductor der, sier Tufte.

Industrien er altså svært begeistret for dette faget og det studentene får til. Mange folk i bransjen har selv tatt dette faget. De lærer at det ikke er magi som skal til, men hardt arbeid og samarbeid, og at de i grunnen kan lage hva som helst. Sånn er det å bli utfordret ordentlig.

Kleven er også fornøyd med sluttresultatet til gruppa.

– Vi fikk til veldig mye på kort tid og vi klarte å lage en fullverdig datamaskin på tre måneder. Selv om vi ikke fikk systemet til å fungere helt som planlagt innen fristen, er det et resultat av høye ambisjoner, og vi var veldig nære i å få alt til å virke perfekt, sier han.

V.E.C.T.O.R-3000

Én gruppe lagde V.E.C.T.O.R -3000, en generell datamaskin med støtte for prosessering og fremvisning av vektorgrafikk.

«V.E.C.T.O.R. – 3000», en datamaskin for vektorgrafikk. Foto: Kai T. Dragland, NTNU

«V.E.C.T.O.R. – 3000», en datamaskin for vektorgrafikk. Foto: Kai T. Dragland, NTNU

– Datamaskinprosjektet er uten tvil det faget jeg har tatt med brattest læringskurve, men også høyest læringsutbytte, sier Øyvind Robertsen, som tilhørte den gruppa.

De fleste datamaskiner og skjermer baserer seg i dag på såkalt rastergrafikk, der piksel-rutenettet på en skjerm er representert i minnet til datamaskinen som en todimensjonal liste av fargeverdier.

– Datamaskinen vår baserer seg på vektorgrafikk, der en scene bestående av matematisk definerte primitiver (linjer og kurver) avgjør hva som vil vises på skjermen til enhver tid. For å faktisk vise frem vektorgrafikk bruker vi et oscilloskop som støtter nettopp dette, sier Robertsen.

Om du skjønte noe av dette, kan faget være noe for deg.