Millä tavoin tietokoneohjelma saa raudan tottelemaan? Siis miten tuo rajapinta on saatu toimimaan siten, että aineeton ohjelma saa jännite/tilamuutoksimuutoksia aikaan prosessorissa ja/tai muissa piireissä?
Eikö se mene niin, että ohjelmassa 0 tarkoittaa jännitettä 0 ja 1 tarkoittaa 5 V?
Eikö se mene niin, että ohjelmassa 0 tarkoittaa jännitettä 0 ja 1 tarkoittaa 5 V?
Vastaukset 7
Vanhimmat
Fysikaalinen rajapinta tietokoneen ja sen ohjelman välillä on transistori tai pikemminkin FET (kanavatransistori). Tietokone muodostuu logiikkapiireistä. Logiikkapiirit muodostuvat alimmalla tasolla yksittäisistä transistoreista. Ensimmäisissä tietokoneissa logiikkapiirit muodostuivat radioputkista, nykyisellään transistoreista, jotka on koottu mikropiireihin.
Tietokoneen logiikkapiirien tilaa ohjaa niinikään logiikkapiireistä rakennettuun muistiin ladattu ohjelma.
http://www.cs.tut.fi/etaopetus/titepk/luku14/tietokone_hist.html
https://www.tiede.fi/artikkeli/jutut/artikkelit/transistori_60_v_maailma_mullistui_puolivahingossa
Kun ohjelma ladataan levyltä muistiin, niin mikä siinä ohjelmakoodissa saa logiikkapiirin kytkimissä muutoksen aikaan? Onko levyn ohjelmakoodissa magneettisia pisteitä jotka logiikkapiirille luettaessa asettavat kytkimet esim 5v ja 0V tasoille: 1 tai 0?
Ensinnäkin siellä on ohjelmapointteri, joka kertoo mikä käsky seuraavaksi suoritetaan. Lukuja viedään rekistereihin ja lasketaan yhteen. Tämän hoitaa ALU (arithmetic-logic-unit). Tietokone tallentaa luvun binäärilukuna (jonono nollia ja ykkösiä) Ykkönen tarkoittaa sähkövirtaa ja 0 ei. Sitten siihen päälle on kehitelty erilaisia ohjelmointikieliä helpottamaan tätä ohjelmointia. Alkuperäinen ohjelmointihan oli ihan kellokorteilla. Huh, huh pitkälle on niistä ajoista tultu... Aina vaan ylempi ja ylempi rajapinta. Saa nähdä miten tekoälyn kanssa käy. Alkaneeko ohjailemaan sitten ihmisten rajapintoja?
Oisko kuitenkin ollut reikäkorteilla.
"Alkuperäinen ohjelmointihan oli ihan kellokorteilla"
Mitäs sitten tapahtui, jos tulikin vaikka sekunnin myöhässä? Paljonko se vaikutti yhteenlaskun tulokseen.
Itse en ole kellokorteilla ohjelmointia harrastanut, mutta reikäkorteilla kylläkin.
Lueppa ensin loogista porteista ja sitten logiikkapiireistä, sillä pääset alkuun.
Se raita on itse asiassa tilakone, jolla on karkeasti ottaen yhtä monta tilaa kuin siinä on transistoreja. Kellopiiristä tulee pulssi, joka saa tilat muuttumaan. Seutaavaksi tutustu vaikka intel 4040 piiriin ja opit siitä piirin ns. käskykannan. Siitä alkaa jo vähän ymmärtämään. Nykyään tietokoneen ohjelmointi tapahtuu korkeamman tason kielillää, jotka pääasiassa käännetään ohjelmallisesti koneen käskykannan muotoon,
Hyvä kysymys, mutta lähtökohtaoletus aineettomasta ohjelmasta on virheellinen. Ohjelmat eivät ole aineettomia, vaan tiettyjen aineellisten osasten keskinäisten suhteiden kokonaisuuksia. Ohjelmat ovat tietoa ja ei olisi edes mielekästä, etenkään tässä asiayhteydessä, puhua tiedosta, joka ei olisi aineellista ja joka siis ei olisi mitenkään käytettävissä tai käsiteltävissä ohjattavissa olevalla tai ohjausta aikaansaavalla tavalla.
Aineeton tieto olisi käsitekummajainen ja sen käsittely ei tietenkään myöskään kuluttaisi energiaa. Lisäksi, jos ohjelma olisi aineeton, niin sillä ei tietenkään voisi edes olla mitään vaikutusta mihinkään. Todellisessa maailmassa kuitenkin on vain energiaa kuluttavia ja oikeasti myös ainakin joskus tarkoitustaan vastaten toimiviakin rakenteita,eikä siis ikiliikkujan kaltaisia vaikutuskelvottoman ohjelmansa käsitteellisesti mystisesti ohjaamia rakenteita.
Tietokoneohjelmat ovat eräs ohjelmien päälajeista ja muina voidaan pitää esimerkiksi DNA:ta ja ihmisen itsensä toimintaa ohjaavia ihmisen muistiin tallentuneita rakenteita. Tietokoneohjelma voi esimerkiksi olla osa tietokoneen muistin tietynhetkisestä sisällöstä, joka sisältö edelleen ohjaa muistin sisällön muuntumista ja tiedon muuta käsittelyä. Tietokone käsittelee tietoa, joka on esitetty aineellisten osien tiloina. Esimerkiksi muutettaessa muistin sisältöä, tarvitaan energiaa ja tyhjennettäessä muistia, entropia lisääntyy objektiivisesti ja mitattavasti, toisin kuin olisi tilanne hypoteettisen ja mahdottoman aineettoman tiedon käsittelyn tapauksessa.
Jos tietokoneen muistin tietyllä osalla on tietty sisältö tai tila, niin on suhteellisen yksinkertaista kopioida tuota sisältöä tai muuntaa se johonkin muuhun muotoon, jolla tuotoksella on siihen ohjelman ohjaama suhde. Muistiin tallennetun ohjelman sisältö voi siis ohjata esimerkiksi sähkövirtoja, joita voidaan edelleen tarvittaessa vahvistaa, käyttää aikaansaamaan myös ohjaavien piirien ulkopuolista liikettä tai muiden fysikaalisten suureiden arvojen muutoksia jne.
Lisäksi ohjelma voi myös periaatteessa muuttaa omaa toimintaansa dynaamisestikin, muuttamalla rakennettaan, mutta vain alkuperäisen rakenteensa sallimilla tavoilla. Rajoitteena on lisäksi se, että ohjelma ei voi vähentää entropiaa paikallisesti lisäämättä sitä muualla, eikä tuottaa sellaista uutta tietoa, joka ei ole johdettavissa sen syötetiedoista.