Introduktionskurs i Datateknik

Relevanta dokument
HF0010. Introduktionskurs i datateknik 1,5 hp

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Datorhistoria Introduktion till PBL

Grundläggande datavetenskap, 4p

Grundläggande programmeringsteknik Datorsystem

Introduktionskurs i Datateknik

Det finns en hemsida. Adressen är

2-14 Binära talsystemet-fördjupning Namn:

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Introduktionskurs i Datateknik

Mattias Wiggberg Collaboration

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Programmering för alla!

Föreläsning 1: Intro till kursen och programmering

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Föreläsning 1: Intro till kursen och programmering

Programmering för alla!

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Introduktion till programmering

Digitalteknik EIT020. Lecture 15: Design av digitala kretsar

Jacquards vävstol, 1801

Datorteknik. Föreläsning 7 Historia och framtid. Institutionen för elektro- och informationsteknologi, LTH

Du kan även lyssna på sidorna i läroboken: Teknik direkt s Lyssna gör du på inläsningstjänst.

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Datorn föds.

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Inledande programmering med C# (1DV402) Introduktion till programmering

Datormetaforen. Från människa till dator Från dator till människa o.s.v.

Föreläsning 2. Operativsystem och programmering

Teknikutveckling. Bakomliggande orsaker och historik. Varför teknik? Vad driver fram teknik?

BERÄKNINGSKONSTENS HISTORIA - Från kulram till dator

ENKEL Programmering 3

IT för personligt arbete F5

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

Digital Aritmetik Unsigned Integers Signed Integers"

Introduktion till programmering och Python Grundkurs i programmering med Python

Charles Babbage och Ada Lovelaces datorer

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

2-13 Binära talsystemet Namn:

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens

1642 uppfann Blaise Pascal världens första mekaniska räknemaskin. Den kunde både addera och subtrahera. Den kan ses som en föregångare till datorn.

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

Inledning. Statistisk Programmering. UNIVAC 1107 (sextio- och sjuttiotal) Hålkorten. Att använda dator

Grundläggande digitalteknik

Digital- och datorteknik

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Anna Eckerdal,

Programmering från början

3-3 Skriftliga räknemetoder

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

F2 Binära tal EDA070 Datorer och datoranvändning

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Assemblerprogrammering del 1

5:3 Datorn och datorns delar

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

32 Bitar Blir 64 Sammanfattning

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Digitala System: Datorteknik ERIK LARSSON

Imperativ programmering

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Datorteknik. Den digitala automaten. En dator måste kunna räkna! Register och bussanslutning

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

TDDE44 Programmering, grundkurs

Digital- och datorteknik

Digital- och datorteknik

LV6 LV7. Aktivera Kursens mål:

Så fungerar en dator

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Program som ska exekveras ligger i primärminnet. Processorn hämtar instruk7on för instruk7on. Varje instruk7on, som är e= antal 1:or och 0:or, tolkas

Datorsystemteknik DAV A14 Föreläsning 1

Kort beskrivning av Sveriges första dator BESK

Digital elektronik CL0090

Läsminne Read Only Memory ROM

Digitalteknik och Datorarkitektur 5hp

Mer datorarkitektur. En titt I datorn Minnen

Föreläsning 3.1: Datastrukturer, en översikt

Kontrollskrivning Mikrodatorteknik CDT S2-704

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Intel Pentium. Intel khz. 32 million 2600MHz. Copyright 2005 Benny Thörnberg, Mattias O Nils

Föreläsning 5 5DV086 - Programspråk

Datorsystemteknik DAV A14 Föreläsning 1

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Datorarkitekturer med operativsystem ERIK LARSSON

Närliggande allokering Datorteknik

DIGITALA TAL OCH BOOLESK ALGEBRA

Programmering i ett historiskt perspektiv. Växjö 16 november 2017 Mats Hansson

Programmering. Den första datorn hette ENIAC.

Innehålls förteckning

Målsättning med kursen

Transkript:

HF0010 Introduktionskurs i Datateknik F1: Vad är en dator? A. Cajander, STH

Introduktionskurs i Datateknik F1: Vad är en dator? F2: programmeringsspråk? L1: Hour of code, alla kan programmera, Diplom! L2: Visuell programmering av svårare problem! F3: Webbprogrammering JavaScript! L3: IDE, Web sida & JavaScript!

Introduktionskurs i Datateknik ALLTID ALLTID ALLTID ALLTID ALLTID ALLTID Läs på/följ - kursinfo i Canvas! ALLTID ALLTID ALLTID ALLTID

Kursmål Sidor märkta med den här symbolen innehåller begrepp som är extra! viktiga för dina fortsatta studier! Central Processing Unit (CPU) Maskinkod, Källkod, Assembler, Binära tal/algebra & Abstraktion Program Counter (PC) 0000 Arithmetic-Logic Unit (ALU) Adress Instruktion /Data Memory (ROM, RAM) #0000 0000 0000: 1100 0100 0101 (40bit) 0011 #0000 0000 0001: #0000 0000 0010: #0000 0000 0011: #0000 0000 0100: Adress Instruktion/Data Sekvens #1111 1111 1111: Harvard vs von Neumann arkitektur 16 Begrepp du bör känna till efter föreläsning #1!

Pedagogik Vi börjar från noll och försöker förstå helheten! Bra, gratis, bok att ha vid sidan om http://www.nand2tetris.org

Rätt komplex pryl

Rätt komplex pryl Likheter ur användarsynpunkt?!

Rätt komplex pryl abstraktion/gränssnitt! Bägge styrs med en ratt (men de går lite olika fort)!

Rätt komplex pryl abstraktion/gränssnitt! SW Källkod Maskinkod PROGRAM KOMPILATOR OPERATIVSYSTEM ASSEMBLER Assemblerkod HW Hårdvara vad kan en dator egentligen göra?!,och hur?!

Människan som dator, papper & penna! y=x 2 +2 Beräkning Kontroll Hjärnan Instruktioner 1:t=x*x 2:y=t+2 3:x=x+1 4:Igen! x, t, y 1:0, 0, 2 2:1, 1, 3 3:2, 4, 6 Resultat (Minne!) 1. Papper med instruktioner 2. Hjärnan tolkar första instruktionen 3. Hjärnan utför första instruktionen 4. (Mellan-)resultat dokumenteras! 5. Hjärnan tolkar nästa instruktion (Sekvens!) Krux: Begränsad beräkningshastighet, 10 sek/operation. Notorisk förmåga att göra fel (distraherad, trött )!

i en ny tid som behövde tabeller! 1794 fick G. F. Prony i uppdrag av Franska staten att leda en satsning att beräkna bl.a. Logaritmtabeller för alla naturliga tal mellan 1 och 200.000 med 19 decimaler! Ca 100 personer arbetade parvis i 2 år och resultatet blev 17 gigantiska böcker med ca 8 millioner siffror. Sen började man med sin och cos (Tabellerna innehöll trots alla ansträngningar ett antal fel )

Den mekaniska eran: 1623-1945 Byggstenar I Blaise Pascal (1623-1662) + - Basen 10 Gottfried Leibniz (1646-1716) * / Facit 1954

Den mekaniska eran: 1623-1945 Byggstenar I 1 Rocking Segments http://www.hpmuseum.org/mechwork.htm

Den mekaniska eran: 1623-1945 Byggstenar I 4 Stepped Drum(s) Pigg mellan 9 och 0 för att göra +1 på nästa sifferposition om tal>9! http://www.hpmuseum.org/mechwork.htm

Den mekaniska eran: 1623-1945 Byggstenar I Curt Herzstark (July 26, 1902 - October 27, 1988)

Den mekaniska eran: 1623-1945 Byggstenar II Utvecklades 1801--05 11000 enbart i F 1811! Joseph Marie Jacquard (Lyon, 1752 - Oullins, 1834)

Den mekaniska eran: 1623-1945 Kontroll Den första datorn Beräkning Hjärnan Charles Babbage 1791-1871 1:t=x*x 2:y=t+2 3:x=x+1 4:Igen! x, t, y 1:0, 0, 2 2:1, 1, 3 3:2, 4, 6 Resultat (Minne!) Basen The Analytical Engine 10 Instruktioner (Kontroll) Beräkning The Mill The Store Resultat The Mill Addition = 1 sekund Multiplikation = 1 minut 1000 st 50 siffriga tal Tryckpress

Den mekaniska eran: 1623-1945 + - * / Load Store Den första datorn Ada King, Countess of Lovelace, 1840 Beräkna (ab+c)d

Den mekaniska eran: 1623-1945 Sverige!!! log(x) Pehr (Per) Georg Scheutz (1785 1873) -53-55F, -59GB & -60USA Martin Wiberg (1826 1905) -75 log(x)

(En 110 år lång parentes) Folkräkning i USA 1880 Tog 8 år att genomföra Ny folkräkning 1890, drastiskt större befolkning Herman Hollerith (1860 1929) 1ÅR! IBM 2001

Den mekaniska eran: 1623-1945 Harvard Mark I 1939-44, -59 Basen 10 4,5 ton 2.4*0.6*16m 3.500 Reläer 2.225 Räkneverk 1.464 Brytare 72st, 23 siffriga mekaniska ackumulatorer 800 km kabel 3.000.000 Lödpunkter Mekaniken drevs av en 4kW elmotor! MTBF bra >10 instruktioner/sek (+/-) Felfri! Howard Aiken (1900 1973) (Atombomben)

Den mekaniska eran: 1623-1945! Harvard Mark I 1939-44, -59 Med MARK I uppstod på riktigt yrket programmerare men också en otroligt viktig princip: Abstraktion. Programmeraren behövde inte förstå hur den otroligt komplicerade maskinen var byggd, utan bara vad den kunde utföra, i form av dess instruktionsrepertoar! Instruktionsrepertoaren på den här nivån kallas maskinkod och är ytterst unik för varje familj av datorer. En maskininstruktioner är alltid ett unikt mönster av vanligtvis 4 till 64 bitar (MARK I: 24 bitar) En instruktion Abstraktion används överallt inom dataoch telekommunikation för att dölja bort komplexitet genom att i stället erbjuda enkla och väl beskrivna gränssnitt! Kvinnan på bilden är Grace Hopper, även känd som Amazing Grace, hon var tillsammans med Richard Milton Bloch och Robert Campbell MARK I:s första programmerare.

Den mekaniska eran: 1623-1945 Harvard Mark I 1939-44, -59 Från Grace loggbok 450909 när hon plockat bort den döda insekten satt hon upp en lapp att maskinen var sanerad (debugged)!

Den mekaniska eran: 1623-1945 Så här långt Väsen Homo Sapiens Hårdvara Programmering NEJ 0.1 inst/s Felben. NEJ 1 inst/s Felfri (Slitage) (Att byta program innebar att någon för hand bytte det band av hålkort som var önskat program!) 10 RAST Data 10 1834 Babbage Analytical Engine 1944 Aiken Harvard Mark I Programhantering Kugghjul & reläer 10 Hålremsa NEJ 10 inst/s Felfri MASKINKOD & ABSTRAKTION

Den första generationen: 1946-1954 Krux & Innovationer Problem med de mekaniska datorerna : Beräkningshastigheten begränsas av mekaniska krav. Mekaniken är inte helt tillförlitlig. Lee de Forest (1873 1961) Triod 1906

Den första generationen: 1946-1954 ENIAC 1943-46--55 Basen 10 30 ton 2.4*0.9*30m 17.468 Rör 7.200 Dioder 1.500 Reläer 70.000 Resistanser 10.000 Kapacitanser 5.000.000 Lödpunkter 150.000 Watt! MTBF 6-60 timmar 1000 instruktioner/sek Felfri! (Artilleritabeller, Vätebomben) Två nya koncept >>>

1: Stored program concept! Harvard Architecture Beräkning Kontroll Hjärnan 1:t=x*x 2:y=t+2 3:x=x+1 4:Igen! x, t, y 1:0, 0, 2 2:1, 1, 3 3:2, 4, 6 Resultat (Minne!) Instruktioner John von Neumann (1903 1957) von Neumann Architecture Beräkning Kontroll Hjärnan 001:t=x*x 002:y=t+2 003:x=x+1 100:0, 0, 2 101:1, 1, 3 102:2, 4, 6 Resultat (Minne!) Instruktioner och data i samma adressrymd!

2: Binära talsystemet! Decimala talsystemet Positionssystem med 10 symboler (0..9) 10 3 10 2 10 1 10 0 Tusental Hundratal Tiotal Ental 5 4 2 3 =5*1000+4*100+2*10+3*1=5423 10 Binära talsystemet Positionssystem med 2 symboler (0..1) 2 3 2 2 2 1 2 0 Åttatal Fyrtal Tvåtal Ental 1 0 1 0 =1*8+0*4+1*2+0*1=10 10

2: Binära talsystemet 7 + 6 =? 7 10 = 4 + 2 + 1 = 1 1 1 2 6 10 = 4 + 2 + 0 = 1 1 0 2 111 +110??? Ok, vi kan skriva tal binärt, men går det att räkna binärt?!

2: Binära talsystemet 7 + 6 =? 7 10 = 4 + 2 + 1 = 1 1 1 2 6 10 = 4 + 2 + 0 = 1 1 0 2 111 111 +110 +110?????1 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 =?

2: Binära talsystemet 7 + 6 =? 7 10 = 4 + 2 + 1 = 1 1 1 2 6 10 = 4 + 2 + 0 = 1 1 0 2 1 1 111 111 111 283 +110 +110 +110 +334?????1?01 617 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = (2) = 10 = 0 + 1 i minne!

2: Binära talsystemet 7 + 6 =? 7 10 = 4 + 2 + 1 = 1 1 1 2 6 10 = 4 + 2 + 0 = 1 1 0 2 1 11 111 111 111 111 +110 +110 +110 +110?????1?01 1101 = 8 + 4 + 0 + 1 = 13 10 1 + 1 + 1 = (3) = 11 = 1 + 1 i minne! Wow, det går att räkna!

2: Adderare Grind AND HE1026 Digitalteknik IOR Boolsk algebra XOR NOT

2: Grindar realiserade med rör IBM NOT Gate

2: Allt kunde nu byggas av rör Minne Register Processor Aritmetik (En enda grind kostade i början ca 5000SEK!) i stället för kugghjul!

men observera: Programmet skulle fortfarande kunna vara detsamma! Maskinkoden döljer bort hur den underliggande maskinen är konstruerad, i detta fall är den baserad på elektriska rör i stället för kugghjul så instruktionerna utförs ca 1000ggr snabbare! Detta tack vara att maskinkoden erbjuder en abstrakt bild av den underliggande datorn Instruktionerna är fortfarande + - * / samt Load och Store! Utförda på samma sätt som om du skulle ha utfört beräkningarna!

-46..49--61 EDVAC & IAS 1K,44Bit Central Processing Unit (CPU) -45..51--58 4K,40Bit Basen Beräkning Kontroll Hjärnan 001:t=x*x 002:y=t+2 003:x=x+1 100:0, 0, 2 101:1, 1, 3 102:2, 4, 6 Resultat (Minne!) Program Control Unit (PCU) Program Counter (PC) 00 Instruction Register (IR) 11 Arithmetic-Logic Unit (ALU) + Accumulator Register (AC) - * / 2! Adress Instruktion/Data Memory #000 0000 0000: 1100 0100 0101 (40bit) 0011 #000 0000 0001: #000 0000 0010: #000 0000 0011: #000 0000 0100: Adress Instruktion/Data #111 1111 1111: Sekvens CPU, ALU, PC, Adress, basen 2/16, IR, AC, Sekvens!

Gränssnitt A = A + 1 (Maskinkod) 1001 0001 1001 0001 0000 0000 0000 0001 1001 0001 0000 0000 0001 rätt tröttsamt & felbenäget

Symbolic programming, assembler Maskinkod assembler! Maskinkod anv. prog! Anv. prog. källkod! (=text!) Assembler DATOR #1 Assembler Indata DATOR #2 Anv. prg! Utdata Alla maskininstruktioner döps till ett kort namn. Alla typer av konstanter kan ges förklarande namn.!

Exempel: Microchip assembler (IoT) Notera förhållandet 1:1 CLRF = CLear File 0 1 1 0 1 0 1 0 TRISD = File 0xF95 1 0 0 1 0 1 0 1 HE1028 Mikrodatorteknik

Utvik: RAM/ROM & basen 16 Hur vet vi vad det binära talet i en minnescell betyder? 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 * 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 1110 1111 0100 1101 1111 0000 0000 0000 1111 1111 * 0000 0000 1111 1111 1111 1111 0100 0001 0100 0010

Utvik: RAM/ROM & basen 16 Hur vet vi vad det binära talet i en minnescell betyder? 0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 * 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 1110 1111 0100 1101 1111 0000 0000 0000 1111 1111 * 0000 0000 1111 1111 1111 1111 0100 0001 0100 0010 Instruktion: GOTO 32 10 Konstant: 0 Konstant: 255 Konstant: -1 (2-komplement) Bokstav: A Bokstav: B Attans, det måste vi göra själva! (Hur lagras ett stort tal?)

Utvik: RAM/ROM & basen 16 Alla datorminnen fungerar på så sätt att det går att ange en valfri adress och går det bara att läsa innehållet så är det ett Read Only Memory (ROM) går det att välja mellan att läsa eller skriva så är det ett Read Write Memory (RWM) av historiska skäl så kallas RWM i dag alltid Random Access Memory (RAM)! Det är otroligt tröttsamt att skriva stora binära tal därför användes basen 8, och numer basen 16 i stället! Basen 8 8 symboler 0,1..7 64 8 1 2 5 5 8 10101101 2 = 172 10 A D 16 16 8 4 2 1 1 100 1 10 Basen 16 16 symboler 0,1..9,A,B,C,D,E,F

Dec Bin Hex Oct 0 0000 0000 00 000 Utvik: RAM/ROM & basen 16 1 0000 0001 01 001 2 0000 0010 02 002 3 0000 0011 03 003 4 0000 0100 04 004 5 0000 0101 05 005 6 0000 0110 06 006 7 0000 0111 07 007 8 0000 1000 08 010 9 0000 1001 09 011 10 0000 1010 0A 012 11 0000 1011 0B 013 12 0000 1100 0C 014 13 0000 1101 0D 015 14 0000 1110 0E 016 15 0000 1111 0F 017 16 0001 0000 10 020 10/1 8/4/2/1 16/1 64/8/1

Utvik: RAM/ROM & basen 16 NÄR ÄR 12 7 = 2 SANT?

Utvik: RAM/ROM & basen 16 NÄR ÄR 12 7 = 2 SANT? I basen 12! 1*12-tal+2*1-tal=14, 14/7=2!!!

Så här långt Väsen Hårdvara Programmering Programhantering Data Homo Sapiens 1834 Babbage Analytical Engine 10 Kugghjul & reläer 10 Maskinkod /Hålremsa NEJ NEJ 0.1 inst/s Felben. 1 inst/s Felfri (Slitage) 1944 Aiken Harvard Mark I Kugghjul & reläer 10 Maskinkod /Hålremsa NEJ 10 inst/s Felfri Rör! Rör! Rör! -46 ENIAC 10-49 EDVAC -51 IAS 2! 2! Maskinkod Assembler Assembler NEJ NEJ NEJ 1000Hz/20 1000Hz/1k 1000Hz/4k

Vad vi lärt oss så här långt SW PROGRAM KOMPILATOR OPERATIVSYSTEM Källkod Maskinkod ASSEMBLER Assemblerkod Hårdvara vad kan en dator egentligen göra?!,och hur?! HW

Rev history 150206 0.1 AC Skapad. 150305 0.5 AC Utkast #1, remiss NB. 150429 0.8 AC Utkast #2, remissrunda. 150507 0.9 AC Återkoppling inkluderad, nytt labbintro sist. 150817 1.0 AC Inkluderat övning. 160608 1.1 AC Utökat avsnittet om talsystem. 160614 1.2 AC Inkluderat abstraktion, flyttat modern historia till föreläsning #2. 160701 2.0 AC Finputs HT16. 170726 2.1 AC Mindre förbättringar HT17 (binära tal).