430 likes | 438 Views
Explore the development of computer technology from mechanical calculators to electronic devices. Learn about key inventions, such as Babbage's Analytical Engine and the first electronic digital computer (ENIAC).
E N D
4.2. Tietotekniikan historiaa 1/3 Tietokoneet mekaanisia sähkömekaanisia elektronisia • roomalaisilla ja kreikkalaisilla abakus • helmitaulun alkeismuoto, keksittiin satoja vuosia eKr • 1600-luku: • logaritminen asteikko (1. analoginen manuaalinen laskukone) • 1642 Blaise Pascalin mekaanisen laskukoneen piirustukset (vasta 1790 1. toteutus) • 1700-luku: • Teollisuusvallankumous: laskulaitteitta tarvittiin yhä enemmän • Laivojen ja siltojen rakentamisessa, topografiassa, • talouselämän laskennassa • rei’itetty metallirumpu kudonnan ohjaamiseen • 1800-luku: aritmometri (Thomas) – alkeislaskin • (sähkö)mekainen: koostui hammaspyöristä, akseleista ja vivuista • lukujen asettaminen ja siirtäminen laskuriin • kierrosten laskuri • tuloksen laskuri • tuloksen nollaus • toimi pyörittämällä kahvaa käsin tai sähkön voimalla
Tietotekniikan historiaa 2/3 • Charles Babbage 1830-luvulla: • Difference Engine No 1:n mallikappale (ei ikinä valmistunut) • Analyyttinen kone • ohjelmoitava mekaaninen laskin, jopa muistilla! • antoi palautteen, jonka avulla laskennan aikana syntyneitä välituloksia voitaisiin käyttää hyväksi koneen ohjaamisessa. • toimintaohjeiden ja alkutietojen syöttö reikäkorteilla • Babbage oli aikaansa edellä: tuohon aikaan analyyttisen koneen rakentaminen ei ollut vielä teknisesti mahdollista. • 1800-loppu/1900-alku: • analogiset sähkömekaaniset laskukoneet • Krylovin differenssiyhtälöiden laskukone 1904
Tietotekniikan historiaa 3/3 • 1940-luku – ensimmäinen electroninen digitaalinen kone ENIAC • engl. Electronic Numerical Integrator And Computer • ensimmäinen täysin elektroninen yleiskäyttöinen tietokone • Yhdysvaltain armeijan rakentama, käytettiin ballistiikan laskutoimituksiin • pystyi suorittamaan sekunnissa 100 000 yhteenlaskua, mutta vain 357 kertolaskua, tai 38 jakolaskua. • painoi yli 30 tonnia ja täytti suuren huoneen • koneessa oli lähes 18000 elektroniputkea, satoja tuhansia muita komponentteja ja yli viisi miljoonaa käsintehtyä juotosta. • ENIACin tehontarve oli 160 kilowattia, mutta silti sen muistiin mahtui vain noin 80 merkin verran informaatiota!!! • kuitenkin pystyi tekemään sellaisia laskuja, joiden käsin laskemiseksi ihmisikää ei olisi riittänyt • puolijohteiden käyttöönotto • Ensimmäinen transistori v. 1947 ja integroitu piiri v. 1958
Puolijohde on aine, joka johtaa hyvin huonosti tai ei lainkaan sähköä • tärkeimpiä puolijohteita pii (Si) ja germanium (Ge) • etenkin matalissa lämpötiloissa toimii eristeensä • elektroneja on juuri tarvittu määrä, kaikki ovat kovalenttisessa sidoksessa (ks kuva s. 110) • sähköjohtavuus paranee lämpötilan kasvaessa • energian kasvaessa elektronit purkautuvat sidoksesta ja lähtevät pois omalta paikaltaan • syntyy vaeltava elektroni, joka kuljettaa -varausta ja sen jättämä vaeltava aukko, joka kuljettaa -varausta 4.2.1 Puolijohteet
4.2.1 Puolijohteet • Johtavuutta voidaan parantaa myös huumaamalla puolijohde vierailla kiderakenteeseen sopivilla atomeilla (epäpuhtauksilla) • jos puolijohteeseen lisää donoriainetta (antimoni, arseeni, fosfori), jolla on 5 valenssielektronia, tulee 1 elektroni liikaa – syntyy n-aine • jos lisää akseptoriainetta (indium, boori, gallium), jolla on 3 valenssielektronia, tulee 1 elektronin vaje – syntyy p-aine
4.2.1 Puolijohteet Rakennetaan n- ja p-aineista ’komponentti’, ns. np-liitos (sivu 110):
4.2.2 Puolijohdekomponentit • Jos np-liitokseen kytketään sähkövirta myötäsuuntaan, liitos johtaa sähköä. • Jos sähkövirta kytketään vastasuuntaiseksi, liitos eristää sähköä. Tämä tarkoittaa: np-liitos johtaa sähköä toiseen suuntaan, mutta eristää toiseen suuntaan kyseessä on diodi. (DI(kaksi)-elektrODI) Nuoli osoittaa sähkövirran suunnan, joka on p-aukkojen liikkumisen suunta
4.2.2 Puolijohdekomponentit… • Kahdesta np-liitoksesta puolestaan saadaan ns. bipolaarinentransistori (TRANsfer=siirtää + reSISTOR=vastus) • elektroninen kytkin, joka: • joko päästää signaalin itsensä läpi (ja välittää 1) • tai ei pästä (ja välittää 0:n) • sen keksivät v. 1947 Bell-laboratorion tutkijat Bardeen, Brattain ja Shockley. • saivat Nobel-palkinnon v. 1956.
Transistori • kolme kytkentäkohtaa: kollektori (C), emitteri E ja kanta (B) • C:n ja E:n välinen virta säädetään B:n ja E:n välisellä virralla • jos virtaa kulkee välillä B-E, niin virtaa kulkee myös välillä C-E • kantakytkentä siis ohjaa sähkövirran pääsyä transistorin läpi
4.2.3 Loogiset piirit • Loogiset piirit (logical circuits) rakennetaan transistorien ja diodien avulla boolen algebran toteuttamiseksi • Perusperiaate: transistori on sähköisesti ohjattavissa oleva kytkin. • 0 V = virta ei kulje = False • 5 V = virta kulkee = True • reaalimaailman abstraktio! • Loogiset piirit siis jäljittelevät loogisia totuusarvoja TruejaFalse, mistä syystä niitä kutsutaan tällä nimellä.
4.2.3 Loogiset piirit • Portti (gate): looginen piiri, joka toteuttaa jotain logiikan perusfunktiota: portti antaa määrätyillä syöttötiedoilla eli true/false –arvoilla määrätyn tuloksen (true tai false) • Niinpä mm. seuraavia portteja on olemassa: AND, OR ja NOT.
OR (+ -laskutoimitus) Esimerkiksi OR-portti toteuttaa loogisen OR- operaation, se saadaan kahdella diodilla: • merkitään syötteet: x ja y ja tulos: z. • totuusarvotaulukko OR-operaatiossa, T=True, F=False: x y z ELI x y z F F F 0 0 0 F T T 0 1 1 T F T 1 0 1 T T T 1 1 1
NOT (! -laskutoimitus) Vastaavasti NOT-operaation toteuttaa yksi transistori (ks. monisteen kuva): x z ELI x z F T 0 1 T F 1 0
AND (* -laskutoimitus) AND-operaatioon tarvitaan kaksi transistoria (ks. monisteen kuva): x y z ELI x Y z F F F 0 0 0 F T F 0 1 0 T F F 1 0 0 T T T 1 1 1
Boolen algebran toteutusta • Loogiset piirit ovat aidosti modulaarisia, ja käytännössä niitä voi yhdistellä vapaasti kuten lego-palikoita. • tietokoneen laskenta on 0:ien ja 1:sten käsittelyä, ja niinpä kaikki sen toiminnot (laskutoimitukset, muisti, ohjaus jne) pitäisi pystyä toteuttamaan loogisilla piireillä (jotka käsittelevät 0:ia ja 1:siä kukin omalla tavallaan) • tietokone onkin yksi valtava looginen piiri • transistorit ja diodit jäävät tässä alemmalle abstraktiotasolle (loogisten porttien sisään) • tällä korkeammalla loogisella tasolla ainoastaan yhdistellään loogisia portteja
Loogisten piirien käyttö • Rakennussääntöjä: • signaalin haaroitus on sallittua • signaali kopioituu identtisenä jokaiseen haaraan • kahta signaalia ei saa yhdistää muuten kuin portin avulla • signaalien yhdisteleminen on siis aina looginen operaatio • haaroituskohdat vahvennetaan umpinaisilla ympyröillä • jos kaksi signaalilinjaa risteävät yhtymättä, jätetään risteyskohta vahventamatta
xor • vähemmälläkin perusporttimäärällä tullaan toimeen, esimerkkinä XOR, joka toteutettavissa AND-, NOT-, ja OR-porteilla:
xor piirin toiminta selviää syöttämällä bitit syöttölinjoille kaikissa mahdollisissa yhdistelmissäja kuljettamalla bitit piirin läpi jos syöttöbittejä on n, yhdistelmiä tunnetusti 2n XOR x Y z 0 0 0 0 1 1 1 0 1 1 1 0
Esimerkki piirisuunnittelusta Boolen algebraa hyödyntäen Muodosta looginen piiri, joka toteuttaa funktion f(x,y,z): • 3 syötebittiä • 1 tulostebitti Funktio on tosi(1), kun: x=0 JA y=1 JA z=1 TAI x=1 JA y=0 JA z=1 TAI x=1 JA y=1 JA z=0
Esimerkki piirisuunnittelusta Boolen algebraa hyödyntäen Tarkastellaan siis totuustaulun rivejä, joissa f=TOSI (1): (NOT x AND y AND z) OR (x AND NOT y AND z) OR (x AND y AND NOT z), ts. f(x,y,z)=!xyz + x!yz+ xy!z Tästä saadaan s. 115 piiri.
!xyz+x!yz+xy!z = (osittelu1) • = !xyz+x(!yz+y!z) = (XOR-piiri) • = !xyz+x(yz) 0+0=0, 0+1=1, 1+0=1, 1+1=1; 0*0=0, 0*1=0, 1*0=0, 1*1=1; !0=1, !1=0.
Piirien sieventämistä.. !xyz+x!yz+xy!z: 6 AND-, 3 NOT-, ja 2 OR-porttia 11 yhteensä-> !xyz+x(yz): 3 AND-, 1 NOT-, 1 OR-portti ja 1 XOR-portti 6 yhteensä: -> - sama toiminnallisuus!
Nyt huomataan, että g=1, kun x=1 (riippumatta y:stä ja z:sta) ja toisaalta g=1, kun y=z=1 (riippumatta x:stä). Eli g=1, kun x=1 TAI y=1 JA z=1 g(x,y,z)=x OR (y AND z) = x + yz. Sama tulos saadaan soveltamalla Boolen lakeja (ks sivu 116)
4.3. Tietokoneen komponentteja • Tietokone on periaatteessa hyvin suuren määrän portteja sisältävä looginen piiri. • Rakenne on modulaarinen ja hierarkinen • Abstraktiotasoja • Puolijohteet->np-liitos • np-liitos->diodi, transistori • elektroniset komponentit>loogiset portit • AND, OR, NOT.. • loogiset portit->loogiset piirit • puolisummain, kiikku • loogiset piirit->tietokonekomponentit • kokosummain, rekisteri
Välttämättömiä komponentteja ovat: • Aritmetiikkayksikkö: • huolehtii peruslaskutoimituksista (minimivaatimus) • + ja – toteutetaan komponenteissa suoraan • * ja / :ta varten kirjoitetaan matalan tason ohjelmia, joilla ohjataan komponentteja • muut operaatiot (esim. SQRT, potenssilasku) toteutetaan korkeamman tason kielillä (ja näin olleen ne eivät liity aritmetikkayksikköön suoraan) • Muisti: • ohjelmakoodi ja –tilat on tallettettava käskyinä ja muuttujina muistiin • Väylät - tiedonsiirtokanavia: • tieto-, ja osoiteväyliä – tiedon siirtoa rekisterien ja keskusmuistin välillä • ohjausväylä – tukee ohjelmoitavuutta: osa tiedosta on käsittelyä ohjaavaa tietoa • Loogisten vertailujen yksikkö: • mahdollistavat muiden ohjausrakenteiden käytön kun peräkk. • minimissään vastaa: A=0? tai A<0? • Kello: • tahdistaa koneen toiminnot • määrää koneen nopeuden • elektr.komp. aiheuttavaat viiveen elektronien siirrolle, siksi nopeutta ei voi nostaa äärettömiin • Syöttö ja tulostus: • esim. näppäimistö ja näyttö.
4.3.1 Yhteenlasku • Yhteenlasku toteutetaan samalla periaatteella kuin laskettaessa kynän ja paperin kanssa lukuja allekkain yhteen. • Yhdellä kertaa vain kaksi lukua: Esim. 10-järjestelmä: 1 1 3476 Yhdellä kerralla laskettavana 852 on siis 2 tai 3 numeroa (muistinro). 4328
Merkitään kahden binäärinumeron x ja y yhteenlaskua seuraavasti x+y = ms, missä m on muistinumero ja s on summa. Totuustaulu on silloin: Sivun 114 taulukosta nähdään, että m= x AND y (x*y) ja s=x XOR y
Piiri, jossa on AND-portti ja XOR-portti, on nimeltäänpuolisummain, ja toteuttaa em. toiminnot: • Piiri, jossa on AND-portti ja XOR-portti, on nimeltäänpuolisummain, ja toteuttaa em. toiminnot:
Kokosummain • algoritmi toteutettu loogisessa piirissä! • esim. 0101 + 0111 • puolisummainten muistibiteistä vain toinen päällä, siksi OR riittää (tai XOR)
Vähennyslasku • Koska a-b = a+ (-b), voidaan vähennyslasku toteuttaa kokosummaimen avulla, kunhan toinen yhteenlaskettava (b) muunnetaan vastaluvukseen. • Vastaluku: muutetaan bitit komplementeikseen ja lisätään tulokseen luku 1.
Puolivähennin • Puolivähennin toteuttaa kahden bitin erotuksen e=x-y, l=lainaus. • kokelie rakentaakokovähennin kotona
4.3.3 Kiikku • Muisti = jokin tapahtuma riippuu paitsi syötteestä, myös aiemmin tapahtuneesta • muistia toteuttavalla piirillä on oltava historia (voimassaoleva tila, joka riippuu aiemmasta toiminnosta) • Pienin iformaation yksikkö on bitti • Niinpä yksinkertaisimman muistipiirin tehtävä on säilyttää siihen jollain ajanhetkellä tallennettu tieto: luku 0 tai 1. • Tällaista muistipiiriä kutsutaan nimellä kiikku (flip-flop).
muistiosa • toteuttaa historian: tietyllä syötteellä (x,y) palauttaa aikaisemmin tallennetun arvon • ohjausosa (x,y) • ohjaa muistiosaa • syötteet • C (control) ja D (data) • tuloste M • totuustauluC D x y Mt Mt+1
4.3.4 Rekisteri • Rekisterillä tarkoitetaan muistilaitetta, johon voidaan tallentaa määrätyn mittainen bittijono, tyypillisesti 16 bittiä tai 32 bittiä. Rekisterin koko = ns. tietokoneen sanan pituus. • Seuraava kuva esittää 4-bittistä rekisteriä, joka on aika harvinainen • (käytössä esim. HP:n graafisissa laskimissa) • Neljän bitin tallentamiseen tarvitaan neljä kiikkua. • 32 bitin tallentamiseen – 32 kiikkua
sama väylä tietojen lukemiseen ja kirjoittamiseen • R ja W ohjausbittejä • kun W=1 (R=0), C=1 ja x3x2x1x0 kirjoittuu kiikkuihin • kiikun tulos irrotetaan väylän linjasta (loogisesti *0) • kun R=1 (W=0), C=0, AND antaa 1 tai 0 riippuen kiikun arvosta, tulokset kirjiotetaan väylän linjoille
4.3.5 Väylät • Komponentit siirtävät dataa pitkin johtoja, jotka ovat loogisesti yhdistetty väyliksi • Tietoväylä: tiedon ja ohjelmien siirtoon • väylän leveys =johtojen lkm = tietokoneen sanakoko) • Ohjausväylä: laitteistoa ohjaavan tiedon siirtoon • esim. luku tai kirjoitus • Osoiteväylä: määrää minne tai mistä tieto siirretään. • esim. rekisteristä johonkin keskusmuistin muistipaikkaan • rekisteri on prosessorin suoraan käyttämää nopea muistipaikka
4.3.6 Kello • ohjaussignaaleilla määrätään aktiiviset komponentit ja tietyllä hetkellä sallitut toiminnot • esim. milloin rekisteri voi tallentaa luvun • mikä komponentti voi siirtää tietoaan väylään • Ohjausväylän tarvitsema ohjaussignaali saadaan (periaatteessa) yksinkertaisesta laitteesta, joka tuottaa ns. sakara-aaltoa, vuoron perään lukuja 0 ja 1. • Yhden kellosignaalin aikana tietokoneessa tapahtuu aina yksi alkeistapahtuma. Mitä suurempi kellon taajuus on, sen nopeammin tietokone toimii.
4.3.6 Kello… • Esim. jos kellotaajuus on 1 MHz (megahertsiä), on kellotaajuus 1000 000 sykäystä/sek. • Nykyisin tyypillinen mikrotietokoneen kellotaajuus on 1-2 GHz (gigahertsiä), 1GHz= 1000 MHz.