INF-103 Fra brukergrensesnitt til maskinvare

Like dokumenter
INF-103. Velkommen til. Første time. Fra brukergrensesnitt til maskinvare. eller Datamaskinen på tvers. Andre time

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

INF1070. Velkommen til. Datamaskinarkitektur. Motto: Hvordan bygger man en datamaskin? INF1070

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

INF2100. Dagens tema: Flink-maskinen Litt datamaskinhistorie. Registre og lagre. Instruksjoner. Flass-koden

Datamaskinenes historie Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

INF2270 Datamaskinarkitektur

Velkommen. Velkommen til INF2270. Datamaskinarkitektur. Motto: Datamaskinen på tvers

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema

Datamaskinenes historie Når, hvor og hvorfor ble de første datamaskiner laget? Hvordan har utviklingen gått? Hva inneholder en datamaskin?

Forhistorien Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema INF1070 INF1070 INF1070

INF2270 Datamaskinarkitektur

INF2270 Datamaskinarkitektur

Dagens tema: Maskinkode. Litt datamaskinhistorie Hva er maskin- og assemblerkode? x86-prosessoren Programkode og variabler

ISO Dagens tema. Tegn. Uttrykk. I Minila lagres kun heltall, men de kan tolkes som tegn. Det siste om Minila.

Anbefalt litteratur: Pensum-bøker: Forelesere: Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

Hvordan fant man på å lage datamaskiner?

IN 147 Program og maskinvare. Velkommen til IN 147. Program- og maskinvare

Velkommen til INF Introduksjon til operativsystemer og datakommunikasjon

2 Parser. 1 Skanner. 4 Kodegenerator. 3 Sjekker. Oversikt Datamaskinhistorie x86 Kodegenerering Setninger Uttrykk.

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Spørsmål: Hvilken datamaskin var den første? Svaret Det avhenger av hva man mener med en datamaskin. Ifi. Spørsmålet Analoge Digitale Videre

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

Hvordan en prosessor arbeider, del 1

En oppsummering (og litt som står igjen)

Spørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Spørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre

Datamaskinens oppbygning

Spørsmål: Hvilken datamaskin var den første? Svaret. Det avhenger av hva man mener med en datamaskin. Spørsmålet Analoge Digitale Videre

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Spørsmål: Hvilken datamaskin var den første?

Datasystemer og informasjonssystemer

Oversikt Deklarasjoner Typesjekk Programmering Datamaskinhistorie x86 Kodegenerering

Datamaskinen LC-2. Dagens tema. Tall i datamaskiner Hvorfor kan LC-2 lagre tall i intervallet ? Hvorfor er det akkurat celler i lageret?

Dagens tema. Datamaskinen LC-2 En kort repetisjon. Binære tall Litt om tallsystemer generelt. Binære tall. Heksadesimale og oktale tall

Velkommen til INF1060. Introduksjon til operativsystemer og datakommunikasjon

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Forelesning 5. Diverse komponenter/større system

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Velkommen til. IN1010 Objektorientert programmering Våren 2018

Datasystemer og informasjonssystemer

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

Velkommen til INF2100 Jeg er Dag Langmyhr

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

INF1400 Kap4rest Kombinatorisk Logikk

TDT4105 Informasjonsteknologi, grunnkurs

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Datamaskinarkitektur våren 2009

Maskinvaredelen av INF 103: oversikt og innhold (1)

Dagens tema. LC-2 LC-2 er en «ekstrem-risc»; den har 16 instruksjoner og 3 adresseringsmåter.

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til IKT. Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Generelt om operativsystemer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Velkommen til INF2100

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

Velkommen til. INF våren 2017

IN1010 Objektorientert programmering Våren 2019

Kapittel 3: Litt om representasjon av tall

Velkommen til MAT1030!

MAT1030 Diskret Matematikk

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

DRI Datasystemer og informasjonssystemer

VELKOMMEN TIL MAT-INF 1100

MAT1030 Forelesning 3

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Hvordan blir jeg en ordentlig informatikkstudent? Kurs i studiestrategier med fokus på INF1000

Læringsmål og pensum. v=nkiu9yen5nc

Datasystemer og informasjonssystemer

IN 147 Program og maskinvare

Oppsummering av digitalteknikkdelen

TDT4160 OG IT2201 DATAMASKINER GRUNNKURS EKSAMEN

Kort om kursene INF1100 og MAT-INF1100L

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO

INF1000 Eksamensforberedelser og -tips. Høst 2014 Siri Moe Jensen

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

Velkommen til BIOS1100

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Programmeringsspråket C

Introduksjon til kurset og dets innhold

Norsk informatikkolympiade runde

TDT4160 AUGUST, 2008, 09:00 13:00

TDT4110 Informasjonsteknologi, grunnkurs

Reelle tall på datamaskin

Kort om kursene IN1900, MAT-IN1105, IN-KJM1900

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Transkript:

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