Tietojenkäsittelytieteen esittely Tietojenkäsittelytieteen historiaa Teemu Kerola + Laskukone = Tietokone Tietokone Ohjelmointi kutomakone Ohjelmoitava tietokone Teknologia laskimet 1 2 (loom) Basile Bouchon, Ranska, 1725 kudontamalli reikäpaperilla muisti tappientyöntäjän piti käsin painaa paperin rivi ohjaustappeja vasten kunkin loimiasennon kohdalla ohjelma talletettuna reikänauhalla, suoritus vielä manuaalinen, ihmisen tekemä http://www.cvmt.com/metiersus.htm 3 Jacques de Vaucanson, Ranska, 1744 automaattinen, ei tappientyöntäjää ohjaus paperinauhalta, joka oli sylinterin päällä kutomatyöntekijät vastustivat onnistuneesti de Vaucanson keksi myös ensimmäisen robotin, huilua soittavan androidin 1737 (click) http://www.cvmt.com/metiersus.htm 4 Joseph-Marie Jacquard, Lyon, Ranska, 1801 patentti 1801 valmistui 1806 http://www.deutsches-museum.de/ ausstell/meister/e_web.htm Jacquard loom http://hybrid.concordia.ca/ ~valerie/img/jacquard-loom.jpg 5 en vastustus Silkkityöläiset heittivät puukenkiä ( sabot ) rikkoakseen kutomakonelaitteistoa sen julkisessa esittelyssä Lyonissa kutomakoneet valtasivat silkkimarkkinat 1810: 3000 kpl, 1813: 14000 kpl, 1835: 30000 kpl Silkkityöläisten kapina Lyonissa 1831 26000 sotilasta tykkeineen lopettavat kapinan verisesti, yli 800 kuolee Toinen kapina 1834 kaupunki miehitetään jälleen, yli 300 kuoli http://www.spartacus.schoolnet.co.uk/scjacq2.jpg 6 Tietojenkäsittelytieteen esittely, S2003 1
Jacquardin kutomakone Reikäkortit monimutkaisetkin mallit helppo kuvata ja tallettaa korttien käyttö automaattista, joten monimutkaisia kankaita voitiin tuottaa edullisesti vähemmän koulutettujen työntekijöiden avulla Lävistysasema, ohjelmointi http://www.history.rochester.edu/ steam/hollerith/loom.htm mallien talletus ja käyttö koneellisesti luettavassa muodossa binäärilogiikka en ohjelmointiprosessi (3) Tavoitteen määrittely koristenauha piirrettynä Ohjelman toteutus ihmisen ymmärtämällä suunnittelukielellä loimiasennot kudonnan eri vaiheissa Lävistys eli ohjelman esitys koneen ymmärtämään muotoon reikäkortit lävistettyinä muodostavat lopullisen ohjelman tavoite suunnittelu toteutus 7 9 Deutches Museum, Munich Logiikka 5x30cm (pahvi, puu) reikäkortit seuraava kortti sidottu edelliseen kortit ikuisessa loopissa reikäkortti = koneen tila Photograph by George P. Landow = käsky rinnakkaisprosessointia: jopa 18 silkkinauhaa samanaikaisesti tuotannossa, 1 ohjain Ohjelmisto-piratismia ja teollisuusvakoilua reikäkorttipakkoja varastettiin kilpailijoilta en myöhempi historia 1784: moottori, Edmund Cartwright operaattori korvattu koneella härkä 1787, höyrykone 1789 1800-luku: metalliset reikäkortit 1992 (?): elektroninen Jacquard ei enää reikäkortteja kotikudonta http://weaving.tronrud.no/ teollisuuden kangasmallien prototyypit 2004 pääosa maailman kudonnasta edelleen mekaanisilla Jacquard kutomakoneilla tietokoneeseen kytketyt korttienlävistäjät automatisoivat käytännön ohjelmointia 10 11 Laskenta Laskukone: calculator aluksi vain yhteenlasku sitten myös vähennyslasku yhteenlaskun avulla 3 numerolla: X-Y = X + (1000-Y) lopulta kertolasku monella yhteenlaskulla ja myös jakolasku algoritmisesti kuten koulussa, mutta koneella Koneen käyttäjä: computer ongelma: miten korvata computer koneella? 12 Mekaaniset laskukoneet Leonardo da Vinci, 1500-luvun alussa? Codex Madrid suunnitelma löytyi 1967 Madridin kansalliskirjastosta tuskin rakennettu Wilhelm Schickard, 1623 6 nroa, +/- laskut jotenkin ensimmäinen toimiva 2 protoa Keplerin käytössä http://www.webcom.com/calc/ http://jeff560.tripod.com/schick.jpg 13 Tietojenkäsittelytieteen esittely, S2003 2
Mekaaniset laskukoneet (jatk.) Blaise Pascal, 1642, Pascaline aritmeettinen kone vain yhteenlasku, vähennyslasku algoritmisesti ensimmäinen kunnolla toimiva 50 kpl, monia säilynyt eri valmistajia vielä 1900-luvulla esim. The Lightning Adding Machine, 1908 Mekaaniset laskukoneet (jatk.) Goffried Leibniz, Stepped Reckoner, 1672 + - * / Leibniz wheel eli stepped drum 2 prototyyppiä http://www.hpmuseum.org/mechwork.htm http://www.thocp.net/ http://www.tcf.ua.edu/az/ hardware/pascaline.htm ITHistoryOutline.htm 14 http://www.dotpoint.com/xnumber/mechanical1.htm 15 Mekaaniset laskukoneet (jatk) Thomas de Colmar, 1820 (Piano) Arithmometer Leibniz wheel toteutus hankala lukujen syöttö liukukytkimillä iso, ei siirrettävä näitä valmistettiin vielä 1920 http://www.thocp.net/hardware/aritmometer.htm Mekaaniset laskukoneet (jatk) Willgodt T. Odhner,1878 pin wheel toteutus plus, miinus, kerto, jako saman tyyppisiä laskimia tehtiin vielä 1972, kunnes elektroniset laskimet valtasivat markkinat Busicom Model HL-21 http://www.vintagecalculators.com/ html/odhner.html 16 http://home.vicnet.net.au/~wolff/ http://www.arcula.demon.co.uk/ calculators/pinwheel/pinwheel.htm bcalc1.htm 17 Automaattisen laskennan perusidea Välitulos- Hae seuraava toiminto (käsky) ihminen näppäilee tai antaa lue jostakin muistista Suorita se automaattisesti Ihminen mekaanisesti, mekaanisten releiden avulla elektronisesti muisti sähköiset releet, elektroniputket, transistorit lue tarvittava data jostakin talleta välitulokset (samaan?) johonkin kirjoita lopputulos johonkin Ohjelmamuisti Datamuisti vs. tietokone (3) oli tietokone reikäkorteilta luettiin ohjelma, jonka mukaan sitten toimittiin operaattori oli kutoja? oli varhainen sulautettu järjestelmä kiinteä ohjelma, joka kontrolloi tuotantolaitosta (kangaspuuta) reikäkorteilta luettiin data eli toiminnan ohjauskomennot Kumpi tulkinta on oikea? ohjelma suoritin kangaspuut ohjauskomennot ohjelma suoritin kangaspuut 18 19 Tietojenkäsittelytieteen esittely, S2003 3
Varhaiset toimivat tietokoneet (3) Ohjelmoitavat laskimet ohjelma luetaan suoritusaikana ulkoisesta muistista (kone siis ohjaa, ei ihminen) muutama nopea rekisteri välitulosten talletukseen Yhden ohjelman koneet ohjelma ladattu etukäteen sisäiseen muistiin erillinen, nopeampi muisti välituloksille (rekisterit) Von Neumann koneet ohjelma ja välitulokset saman teknologian muistissa laskenta voi muuttaa/vaihtaa ohjelmaa lennossa! Muisti: ohjelma ja data 21 Z1 ohjelmoitava laskin (2) Konrad Zuse (1938) Ensimmäinen ohjelmoitava binäärijärjestelmään perustuva tietokone Sähkömoottori, 1Hz kellotaajuus Mekaaninen kontrolli ja muisti, mekaaniset releet toteutettu metalliliuskojen avulla Ohjelma reijitetyltä filminauhtalta Ei toiminut kunnolla Tuhoutui piirustusten kera 1943 Berliinin kontrolli pommituksissa ja muistibitti -kuvat Zusen rakentama kopio Berliinin tekniikan museossa Z1 muistibitti http://irb.cs.tu-berlin.de/~zuse/ Konrad_Zuse/en/Rechner_Z1.html Z1 kontrolli 23 Bombe - yhden ohjelman kone Alan Turing & Gordon Welchman, Englanti, elektro-mekaaninen, proto 1940 nopea, toimiva malli 1943 Ohjelma: etsi ratkaisua saksalaiseen Enigma salakirjoituskoodiin brute force etsintä annetulle data-alueelle Lev. 2 m, syv. 60 cm, kork. 2 m Emuloi 10 Enigmaa Koneita tehtiin yli 200 kpl (Englannissa ja USA:ssa) http://members.aol.com/historycd/tinysamples.htm 24 Colossus yhden ohjelman kone Max Newman, Tom Flowers, Englanti Ensimm. elektroninen? Mark II, 1944 (tuotanto) Ohjelma: etsi ratkaisu saksalaiseen bittiperustaiseen Lorentz SZ 40 ( Fish/Tunny ) salakirjoituskoodiin 2500 tyhjiöputkea emuloi Lorenz ia ja avainkombinaatioita kaksi eri ohjelmaa, eri osiot kokonaisratkaisuun Ei aritmetiikka-operaatioita, paino n. 1t Tuotanto 10 kpl Merkitys olisi ollut isompi (tkt:lle), ellei salainen projekti http://www.computersciencelab.com/ ComputerHistory/History.htm 25 ENIAC yksi ohjelma J. P. Eckert ja John Mauchly, 1946 1500 relettä, 18000 tyhjiöputkea, 70000 vastusta, 5000000 juotosta, 30 tonnia Nopeus 5000 yhteenlaskua / sek. ensimmäinen elektroninen 20 numeron muisti (alkuaan) Ohjelmointi alkuaan käsin langoittamalla computer ei kone, vaan koneen käyttäjä Vetypommin kehitys Sama tiimi kehitti sitten EDVACin Mauchly Eckert http://www.computersciencelab.com/ ComputerHistory/History.htm 26 Von Neumann koneet eli yleiskäyttöiset koneet EDVAC Electronic Discrete Variable Automatic Computer prototyyppi, Mauchly & Eckert, rakennus alkoi 1944 valmistui vasta 1952 (!) John von Neumann in memo (USA, 1945), mutta Mauchly & Eckert in idea yhteinen muisti ohjelmalle ja datalle suoritin, jossa aritmeettis-looginen yksikkö kontrolliyksikkö, joka ohjaa toimintoa ALU CU Muisti von Neumann 27 Tietojenkäsittelytieteen esittely, S2003 4
EDSAC Maurice Wilkes, Englanti, 1949 Electronic Delay Storage Automatic Calculator ohjelma ja data samassa muistissa muistin koko 512 sanaa, elohopeaviiveputkiteknologia 4m * 5m huone, 12 KW teho Ensimmäinen toimiva yleiskäyttöinen tietokone Muisti Ohjelmiston synty väylä 28 Varhaisten koneiden ohjelmointi Konekieli kaikki varhaiset koneet peräkkäisyys, ehdolliset valinnat, silmukat, aliohjelmat, ohjelmakirjastot joka konetyypille omansa Kääntäjä A-0 (1951), Grace Hopper Harvard Mark III koneelle "Women turn out to be very good programmers for one very good reason. They tend to finish up things, and men don't very often finish." Amiraali Hopper 29 Intel 4004, 1971 (1) Federico Faggin (Intel), Masatoshi Shima (Busicom) Ensimmäinen mikroprosessori suorittavat piirit ja laskennan kontrolli samalla lastulla 4-bittinen, laskinta varten Japanilainen tilaaja Busicom tyytymätön lopputulokseen oikeudet Intelille $60000:lla 4004 8008 8080 8086 8088 20286 Pentium 4 http://people.smu.edu/rmonagha/ http://www.etedeschi.ndirect.co.uk/museum/picts/141pf-ad.jpg 4004chip.jpg 30 Tietojenkäsittelytieteen nykytila Uusia tietojenkäsittelytieteen ja sen sovellusten alueita tulee koko ajan Tekoäly, neuroverkot DNA-laskenta, kvantti-laskenta Hyvin suuret tietokannat, tiedon louhinta Semanttinen verkko, hyperavaruudet, grid-laskenta Huomaamattomat koneet (ubiquitous computing) Ohjelmien ja laitteiden oikeellisuus (edelleen tulossa!) Uudet langattomat verkot, paikkatietoiset palvelut Kulutustavarat verkossa (jääkaappi, hella, polttimo, ) Puheentunnistus, kieliteknologia Kuvankäsittely, 3D-mallinnus, pelit, pelit, pelit 31 Tietojenkäsittelytieteen nykytila (jatk.) Lähes kaikki tärkeimmät tutkijat (eli tähän asti tärkeimpien keksintöjen tekijät) ovat edelleen elossa ja tuotteliaana Uusia tulee koko ajan katso ympärillesi! Digitaalinen kone bitti: 0 tai 1 laske tulos annetulle syötteelle -- Loppu -- Neil Gershenfeld Kvanttikone qubitti: 0, 1, tai molemmat jollain todennäköisyyksillä laske tulos kaikille mahdollisille syötteille 32 33 Tietojenkäsittelytieteen esittely, S2003 5