Velkommen til INF-103 Fra brukergrensesnitt til maskinvare eller Datamaskinen på tvers Motto: Hva er det egentlig som skjer? Ark 1 av 23
Første time Introduksjon til kurset Hva handler kurset om? Forelesere Pensum Kursopplegg Andre time Kort historikk Hvordan oppsto de første datamaskinene? Hvordan arbeider en datamaskin? Ark 2 av 23
INF103 Fra brukergrensesnitt til maskinvare Sett fra brukerens side utfører datamaskinen mange avanserte programmer: Dypt inne i maskinen er alt som skjer at strøm i diverse transistorer slås av og på. Hva er sammenhengen? Ark 3 av 23
Datamaskinen er konstruert i ulike nivåer som bygger på hverandre (figur 1.6 i Patt&Patel-boken): Problem Algoritmer Programmeringsspråk Maskininstruksjoner Mikrokode Kretser Porter I kurset vil vi presentere de ulike nivåene og sammenhengen mellom dem. Ark 4 av 23
Forelesere Kjell Åge Bringsrud (kjellb@ifi.uio.no) fra guppen for distribuerte multimediasystemer. Carsten Griwodz (griff@ifi.uio.no) fra samme gruppe. Dag Langmyhr (dag@ifi.uio.no) fra forskningsgruppen objektorientering, modelering og språk. Sigbjørn Næss (sigbjorn@ifi.uio.no) fra gruppen for mikroelektronikksystemer. Ark 5 av 23
Lærebøker Irv Englander: The architecture of computer hardware and systems software. John Wiley & sons 2000; second edition, ISBN 0-471-36209-3 eller third edition, ISBN 0-471-07325-3. Yale Patt og Sanjay Patel: Introduction to computing systems. McGraw-Hill 2001. ISBN 0-07-237690-2. Hjemmeside Kursets hjemmeside http://www.ifi.uio.no/inf103/ er hovedkanalen for løpende informasjon om kurset. Lysark til forelesningene blir lagt på hjemmesiden. Ukeoppgaver legges ut hver uke; senere kommer også løsningsforslag. Viktige beskjeder dukker opp ved behov. Nyhetsgruppen ifi.inf103 gir muligheter for spørsmål og svar. Ark 6 av 23
Gruppeundervisning Hver uke blir det presentert diverse oppgaver for å underbygge det foreleste stoffet. Ukeoppgavene er også pensum! Tanken bak gruppene er at dere skriver ut oppgavene før samlingen og tar dem med, dere løser ikke oppgavene på forhånd, på de ukentlige samlingene deles dere inn i smågrupper på 3 5 personer som løser oppgavene i fellesskap; halvparten av gruppetimene er derfor på små terminalstuer. Ark 7 av 23
Obligatoriske aktiviteter Svært lite av kurset er obligatorisk, kun dette: Det er obligatorisk fremmøte på første forelesning. Registrering skjer utenfor salen etter forelesningen. Det er tre obligatoriske oppgaver som skal løses til fastsatte frister; følg med på hjemmesiden. Ark 8 av 23
Forventninger Hva kan dere forvente å få ut av å ta kurset? Kunnskap om hvorledes en datamaskin er bygget opp og fungerer. Dette vil gjøre dere til bedre programmerere og brukere av datamaskiner. Kjennskap til programmeringsspråket C og trening i å bruke dette. Lære å konstruere egne kretser. Skrive programmer som kommuniserer over et nettverk. Forstå hva et operativsystem er og hvorledes det fungerer. Ark 9 av 23
Våre forventninger til dere Programmeringsferdigheter Minimumskrav: Skrive et program som leser 100 tall og skriver ut summen og det største tallet. Arbeid Kurset er lagt opp til 20 timer arbeid per uke som for eksempel kan brukes slik: Forelesninger: Selvstudium/forberedelse forelesninger: Grupper: Programmering gruppeoppgaver: Annen programmering: Sum 4 t 4 t 4 t 4 t 4 t 20 t Ark 10 av 23
Datamaskinens historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin? Vår eksempelmaskin LC-2 Ark 11 av 23
Forhistorien (avsnitt 1.4 i Englander-boken) Det hele startet med kanoner. Det er mulig å beregne en prosjektilbane, men det er mye arbeid for en matematiker. U.S. Army Ordnance Department Ballistic Research Laboratory trengte data for dusinvis av nye kanoner i 1930-årene. Løsning Lag en arbeidsbeskrivelse, og la egne «beregnere» gjøre jobben (etter en kort opplæring). Fra en eldre utgave av Webster s Dictionary: computer n, one that computes; specif : an automatic electronic machine for performing calculations Ark 12 av 23
En typisk arbeidsbeskrivelse ➂ Tast 2,78 inn i regnemaskinen. ➃ Multiplisér tallet med 3,1415926535. Skriv svaret i rubrikk 28. ➄ Hvis tallet i rubrikk 71 er < 0, gå til punkt 88. ➅ Tast tallet i rubrikk 29 inn i regnemaskinen. ➆ Legg til 1. ➇ Gå til punkt 4.... 28 8.7336276 29 3 30 11 31 32 1,25 33 34. Ark 13 av 23
INF103 Fra brukergrensesnitt til maskinvare Problem Hver bane tok opptil 20 timer å beregne (selv med elektrisk bordregnemaskin), og man trengte 2 4000 ulike baner for hver kanon. Løsning Lag en maskin som gjør dette automatisk. Moore School of Electrical Engineering ved universitetet i Pennsylvania gjorde det med penger fra Ballistic Research Laboratory. Resultatet ble Eniac som ble ferdig i 1945. Den målte 2½ 1 30 m, veide 30 tonn og inneholdt 18 000 radiorør. Den kunne beregne en kulebane på drøyt 10 s. Ark 14 av 23
Oppbyggingen av Eniac Tanken bak Eniac var å kopiere en menneskelig beregner. Derfor fikk man Aritmetisk enhet («ALU») tilsvarte regnemaskinen. Den kunne de fire regneartene: + Regnemaskinen har et tall for videre beregning; datamaskinen har et register for dette. Minnet tilsvarte arket med mellomresultater. Datamaskinen kunne skrive innholdet av registeret til en celle i minnet, og hente innholdet av en celle tilbake til registeret. Programmet tilsvarte beregnerens arbeidsbeskrivelse. Det skulle følges helt slavisk. Ark 15 av 23
Programmet Et program for datamaskinen inneholdt de samme elementene som beregnerens arbeidsbeskrivelse: Aritmetiske operasjoner varmuligidefire regneartene; svaret kom i registeret. Mellomlagring av data skjedde ved at registeret ble kopiert til en angitt celle i minnet. Derfra kunne det hentes tilbake ved behov. Hopp til en angitt instruksjon var nødvendig for å kunne gå i løkker. Tester i forbindelse med hopp var typisk på om registeret var < 0, = 0 eller > 0. Programmene ble etter hvert kodet som tall (men Eniac ble kodet med kabler). Ark 16 av 23
Hvaerbeholdtidag? Alle disse instruksjonene finnes i dagens datamaskiner. I tillegg har vi fått flere registre (ofte 8 32), binær representasjon av tallene (i stedet for desimal), operasjoner på bit (skifting, masking) og flyt-tall som kan lagre svært store og svært små tall (som 6,02 10 23 ). Programmerer noen i maskinkode i dag? Maskinkode brukes når man har behov for ekstremt raske beregninger, for eksempel grafiske applikasjoner. (Og når man lager virus!) Kjennskap til det som skjer i maskinen vil imidlertid gjøre oss til mye bedre programmere og brukere! Ark 17 av 23
Generasjoner Det er vanlig å dele datamaskinene inn i generasjoner: Gen År Teknologi Størrelse Instr/sek Pris (2001-kr) 1 1945 60 Radiorør 10m³ 2000 50 mill 2 1960 68 Transistorer 650dm³ 500 000 40 mill 3 1968 78 Integrerte kretser 80dm³ 300 000 150 000 4 1978?? LSI og VLSI 2 20dm³ 10 9 10 000 Ark 18 av 23
Moores lov Tegner vi et diagram over utviklingen av ytelsen i forhold til prisen, ser vi at grovt sett blir ytelsen fordoblet hvert 1½ år. 6 10 5 1000 instruksjoner/$ 4 10 5 2 10 5 0 1950 1960 1970 1980 1990 2000 Ingen vet hvorfor det er slik, men dette kalles Moores lov etter mannen som formulerte den. Ark 19 av 23
Maskinen LC-2 I dette kurset skal vi bruke en maskin som kalles LC-2 («little computer number 2»). Den ser slik ut (figur 5.9 i Patt&Patel-boken): Ark 20 av 23
Inntil videre bruker vi et enklere bilde av maskinen: ALU N Z P Prosessor R0 R1 R2 R3 R4 R5 R6 R7 PC Registre 0 1 2 3 4 5 6 65529 65530 65531 65532 65533 65534 65535 Minne. ALU-en kan + (og litt annet), men ikke, eller. De 8 registrene kan lagre tall 0 til 65535 eller 32768 til 32767. De 65536 cellene i minnet kan lagre samme type tall. De tre flaggene N, Z og P kan lagre 0 eller 1. PC-registeret forteller hva som er neste instruksjon. Ark 21 av 23
Programutførelsen (4.2 i Patt&Patel-boken) (6.5 i Englander-boken) For hver instruksjon gjør prosessoren følgende: ❶ En programteller («Program counter», PC) angir hvor neste instruksjon ligger i minnet. Den leses, og PC økes. ❷ Instruksjonen dekodes og utføres. ❸ Gå til punkt 1 igjen. Dette kalles von Neumann-modellen etter opphavsmannen John von Neumann. Omtrent alle datamaskiner i dag er bygget etter denne modellen. Ark 22 av 23
Fredag fortsetter vi med Hvilke instruksjoner har en datamaskin? Hvordan lagres disse i datamaskinen? Hva er det binære tallsystemet? Det heksadesimale? Ark 23 av 23