Så fungerar en dator Mental bild av en dator Hårdvarumodell av en dator
Vad är en dator? En dator är en digital elektronisk maskin, och består av tre huvudkomponenter: processor, minne, enheter för in- och utmatning. Processorn, eller mikroprocessorn, kallas också Central Processing Unit, CPU. Det är processorn som utför de instruktioner som lagras i minnet. Minnet lagrar, förutom instruktioner, även data. Processorn instrueras att manipulera datat. En samling instruktioner som instruerar processorn kallas datorprogram. Ett operativsystem är en samling av speciella program, som kontrollerar de olika delar en dator består av. minne processor enheter för in- och utmatning
Vad gör en dator? Datorn manipulerar data med hjälp av instruktioner på ett förutbestämt sätt. Datat lagras binärt, i form av ettor och nollor. Då datorn startar laddas operativ- systemet in. Operativsystemet hjälper sedan till att ladda och köra applikationsprogram. Då ett applikationsprogram laddas, placeras instruktionerna, som utgör programmet, och data i minnet. Processorn utför instruktionerna i programmet i tur och ordning, i sekvens, och programmets data manipuleras på ett förutbestämt sätt. minne processor
Information på en bit papper! Minne – mental modell Information… …kan vara vad som helst …skrivs/ritas på papper …kan inte ändras! Information lagras i en låda, en minnesplats, och… …kan bara innehålla ett papper …kan undersökas/kopieras …befintligt pappret försvinner om det ersätts …det måste alltid vara ett papper i lådan nummer, bokstav, ord, en rapport, bok, bild, musik, animation, en samling av böcker, … Information på en bit papper!
En cirkels area och omkrets För att bestämma en cirkels area och omkrets… Hälsa användaren välkommen. Fråga användaren efter cirkelns radie. Beräkna cirkelns area som PI radie radie. Beräkna cirkelns omkrets som 2 PI radie. Rapportera area, omkrets och radie. Information som flödar från ett steg till ett annat måste lagras och behöver plats i ett minne. Startvillkor för de olika stegen som måste uppfyllas: Steg 3 kräver cirkelns radie, som fås i steg 2. Omöjligt att utföra steg 3 innan steg 2. Steg 5 kräver att steg 3 och 4 har utförts, och måste därmed komma sist. Steg 3 och 4 kan göras i vilken ordning som helst. Måste känna till att PI:s värde är 3,1415.
Metafor över datorns minne Datorn har flera minnesplatser För att enkelt kunna referera till en minnesplats, numreras (eller namnges) den – ge den en minnesadress. För att minska risk för fel, bestäm typ av information minnesplatserna kan innehålla. En minnesadress kan liknas vid en gatuadress, som hjälper brevbäraren att hitta rätt hus på en gata. Nummer används för "lågnivå", och meningsfulla namn för "högnivå". "Systemet" kontrollerar att det är rätt typ av information som placeras i lådan. Görs försök att placera information av fel typ i en låda meddelas ett fel.. lön (positivt decimaltal) namn (sträng) adress (sträng) radie (positivt heltal) bröllopsfoto (bild) ålder (heltal 0-150) Skulle även kunna ange om information kan ändras eller inte, d.v.s. är informationen konstant eller variabel. skattesats (decimaltal 0-27.5) ljusHastigeht (heltal = 300)
Algoritm för beräkning… …av en cirkels area och omkrets i termer av en minnesmodell. Vad behöver vi lagra? Den information som behöver kommas ihåg från ett steg till ett annat – startvillkor! Genom att titta på algoritmen kan vi identifiera minnesplatser, lämpliga namn, typer och om de är konstanter eller variabler. OBS! Värdet 2 är en konstant som inte namnges och kanske inte ens använder en minnesplats på detta sätt. radie (positivt heltal) area (positivt decimaltal) omkrets PI (konstant 3.1415) 2 (konstant 2.0)
Informationsflöde (dataflöde) Informationsflödet styrs av endast tre instruktioner: in – information (data) från yttre värld till minne ut – information (data) från minne till yttre värld tilldelning - från minne till minne minne ut in ALU Beräkningsenhet (Arithmetic and Logic Unit) tangentbord mus nätverk skärm skrivare nätverk
Flödeskontroll (modell 1 av 3) För att implementera en algoritm krävs en kontrollmekanism... …som bestämmer hur informationsflödet ska gå – det förutbestämda sätt som datat ska bearbetas. minne ut in ALU Kontroll De första datorerna hade kontrollmekanismer som bestod av fast dragna ledningar, eller i bästa fall med kopplingssladdar, som t.ex. ENIAC. För att ändra maskinens funktion var man tvungen att dra om ledningarna!
Så fungerar det bättre… Omkastare bestämmer hur data ska flöda in till och ut ur minnet. Omkastarnas positioner bestämmer funktionen. 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 2 3 4 5 6 7 8 9 10 11 1 2 3 minne 4 9 8 7 6 5 4 3 2 1 10 11 ut in Data kommer från in och läggs i den översta minnesplatsen. Data kommer från in och läggs i den mellersta minnesplatsen. Data kopieras från översta och mellersta minnesplatsen och behandlas av beräknings-enheten. Resultatet kopieras till den nedersta minnesplatsen. Ut kopierar datat från den nedersta minnesplatsen. 1 2 3 ALU 4
37+15=52 (1 av 4) Programräknare = 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 2 3 4 5 6 7 8 9 10 11 1 minne 1 ut in 37 Data kommer från in och läggs i den översta minnesplatsen. Data kommer från in och läggs i den mellersta minnesplatsen. Data kopieras från översta och mellersta minnesplatsen och behandlas av beräknings-enheten. Resultatet kopieras till den nedersta minnesplatsen. Ut kopierar datat från den nedersta minnesplatsen. ALU
37+15=52 (2 av 4) Programräknare = 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 2 3 4 5 6 7 8 9 10 11 minne 2 37 ut in 2 15 Data kommer från in och läggs i den översta minnesplatsen. Data kommer från in och läggs i den mellersta minnesplatsen. Data kopieras från översta och mellersta minnesplatsen och behandlas av beräknings-enheten. Resultatet kopieras till den nedersta minnesplatsen. Ut kopierar datat från den nedersta minnesplatsen. ALU
37+15=52 (3 av 4) Programräknare = 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 2 3 4 5 6 7 8 9 10 11 minne 4 37 37 3 ut in 15 15 7 3 Data kommer från in och läggs i den översta minnesplatsen. Data kommer från in och läggs i den mellersta minnesplatsen. Data kopieras från översta och mellersta minnesplatsen och behandlas av beräknings-enheten. Resultatet kopieras till den nedersta minnesplatsen. Ut kopierar datat från den nedersta minnesplatsen. 52 ALU 11 +
37+15=52 (4 av 4) Programräknare = 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 2 3 4 5 6 7 8 9 10 11 minne 37 ut in 15 4 8 52 52 Data kommer från in och läggs i den översta minnesplatsen. Data kommer från in och läggs i den mellersta minnesplatsen. Data kopieras från översta och mellersta minnesplatsen och behandlas av beräknings-enheten. Resultatet kopieras till den nedersta minnesplatsen. Ut kopierar datat från den nedersta minnesplatsen. ALU
Flödeskontroll (modell 2 av 3) Kännetecken Behöver endast tre grundtyper av kontrollinstruktioner (sekvens, val och repetition) Kontrollintruktionerna kan sparas i ett minne på samma sätt som data Tillåter att generella kontrollmekanismer kan skapas av de grundläggande kontrollinstruktionerna. Program- minne Instruktioner och därmed maskinens funktion kan snabbt och enkelt ändras. Kontroll minne ut in ALU Begränsning: minnet för programmet kan ta slut, vi kan använda dataminnet (eller tvärt om)
Flödeskontroll (3 av 3) Slutligen… …inse att program och data kan dela samma minne! Instruktioner lagras i sekventiellt numrerade minnesplatser (memory). En programräknare (Program Counter) håller ordning på vilken instruktion som ska utföras. Kontrollenheten (control) hämtar aktuell instruktion och utför den (genom att ändra omkastarna), stega fram programräknaren, hämtar nästa instruktion, o.s.v. Kontroll Program- räknare minne ut in ALU Hämta- Exekvera-cykeln Minnet innehåller både program och data
En dator förstår bara 1:or och 0:or - maskinkod Program och data Minnesplats Data Programmet startar 1 Data läses in och placeras på minnesplats 5 (tal1) 2 Data läses in och placeras på minnesplats 6 (tal2) 3 Data på minnesplats 4 och 5 adderas och summan placeras på minnesplats 7 (summa) 4 Programmet slut 5 (tal1) 37 6 (tal2) 15 7 (summa) 52 program summa = tal1 + tal2 data Data 0000 1111 0000 0000 0000 0001 1000 0000 0000 0101 0010 1000 0000 0000 0110 0011 0100 0100 0000 0100 0100 1110 0000 0000 0000 0101 0000 0000 0010 0101 0110 0000 0000 0000 1111 0111 0000 0000 0011 0100 programmerare program data minne En dator förstår bara 1:or och 0:or - maskinkod