Seuraa 
Viestejä131
Liittynyt13.8.2016

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?

Sivut

Kommentit (25)

Ab Surd Oy
Seuraa 
Viestejä9473
Liittynyt13.7.2015

Se ohjelma on yhtä lailla aineellinen tai aineeton kuin tilamuutoksetkin. Ohjelma on niitä nollia ja ykkösiä muistissa, siis muistiyksiköiden tiloja jotka antavat eri jännitteen johtimiin. Siitä ettepäi se on vain puolijohde-elektroniikkaa.

Neutroni
Seuraa 
Viestejä28671
Liittynyt16.3.2005

Tietokoneohjelma on käytännössä ihan fyysisiä sähkövarauksia (elektroneja) fyysisissä muistisoluissa (kondensaattoreissa). Ne "aineetomat" nollat ja ykköset ovat vain nimiä tietyille varaustasoille. Prosessori lukee niitä varauksia ja ne määräävät miten prosessori toimii, eli ohjaa varauksia muualla piirissä. Prosessorin pohjasta lähtee toista tuhatta sähköliitäntää, joita pitkin niitä varauksia ohjataan oheislaitteille, joiden prosessorit sitten järjestelevät lisää varauksia ja ohjaavat niillä näytön pikseleitä, äänisignaalia ohjaavaa AD-muunninta, kovalevyjen moottoreita ja lukupäitä ja kaikkea mitä tietokoneeseen on kytketty, mikä voi olla vaikka puolen valtakunnan laajuinen rautateiden turvalaitejärjestelmä.

Ab Surd Oy
Seuraa 
Viestejä9473
Liittynyt13.7.2015

Jos nykytekniikan monien abstraktiotasojen ja tekniikoiden sekä työkalujen kerroksellisuus ja kirjo hämärtää ymmärtämistä, niin kannattaa lähteä tutustumaan tietokoneiden historiaan alkupäästä lähtien. Ensimmäiset olivat ohjelmoitava laskimia jopa ihan analogielektroniikalla. Ohjelma saattoi olla vaikkapa joukko kytkimiä käännettyinä tiettyyn asentoon tai hieman edistyneempänä reikäkortteja, jotka ajoivat saman asian. Siis ihan mekaanisia laitteistoa, joissa joukko kytkinten asentoja oli se ohjelma ja/tai syötedata. Se, että nykyisin ohjelma on niinikään sähköinen tallenne jopa samalla koneella itsellään, jota ollaan ohjelmoimassa, ei ole kuin tekniikan kehittymistä.

nova
Seuraa 
Viestejä131
Liittynyt13.8.2016

Tietokoneohjelma on sen kirjoitusvaiheessa pelkkää tekstiä ruudulla. Miten sitten teksti/käskyt AND, OR, NOR, NOT .. saavat logiikkapiirien tilan vaihtumaan? Siis tuota mietin, että miten se ohjelma voi muuttua tekstivaiheesta jännitemuutoksiksi muistiin?

Neutroni
Seuraa 
Viestejä28671
Liittynyt16.3.2005

Tietokoneohjelma on kirjoitusvaiheessakin lukuja muistissa. Joka kirjainta vastaa tietty koodi. Tekstieditori muotoilee kirjainjonot näppäimien painallusten mukaan ja piirtää niistä kirjainjonoista kuvan tekstistä, joka sitten lähetetän käyttöjärjestelmän ikkunointisysteemille, edelleen näytönohjaimelle, joka antaa näytölle "ohjeet" pikselimatriisin piirtämiseksi. Ihmisen aivot sitten tulkitsevat ne kirjaimiksi ja tekstiksi.

Käännettäessä kääntäjä muuttaa ne tekstit konekieleksi, joka on prosessoria ohjaavaa binäärikoodia. Prosessori lukee sitä, tulkitsee luvut käskyiksi, osoitteiksi ja dataksi tietyllä tavalla ja suorittaa käskyt. Tietyt bitit aritmeettis-loogisissa käskyissä kertovat aritmeettis-loogiselle yksikölle (ALU) millainen operaatio datoille tehdään. ALU on täynnä dekoodereja ja transistoreja, jotka muodostavat databittien välille halutun operaation. Niiden lisäksi on käskyjä, joilla dataa siirretään muistista prosessorin reksitereihin tai päinvastoin, hyppykäskyjä, joilla ohjelman suoritus voi haarautua, liukulukukäskyjä, jotka käsittelevät desimaalilukuja, ja niin edelleen.

https://en.wikipedia.org/wiki/Arithmetic_logic_unit

https://en.wikipedia.org/wiki/Assembly_language

-

o_turunen
Seuraa 
Viestejä12547
Liittynyt16.3.2005

nova kirjoitti:
Tietokoneohjelma on sen kirjoitusvaiheessa pelkkää tekstiä ruudulla. Miten sitten teksti/käskyt AND, OR, NOR, NOT .. saavat logiikkapiirien tilan vaihtumaan? Siis tuota mietin, että miten se ohjelma voi muuttua tekstivaiheesta jännitemuutoksiksi muistiin?

Kyllä se ohjelma on jännitetasoina muistissa jo tekstivaiheessa. Se, miten ohjelma ajatusvaiheesta siirtyy tekstivaiheeseen, tapahtuu näppiksellä, jossa sähköiset kytkimet siirtävät ajatukset ja näpyttelyn jännitetasoiksi.

Eikä kaikissa tietokoneissa ole mitään ruutua. Minäkin olen näpertänyt sellaisen tietokoneen, jossa oli vipukytkimiä ja ledejä. Eli jännitetason ohjaimia ja näyttöjä. Digitaalipiirien manuaalista sitten katsottiin, mikä kytkinyhdistelmä mitäkin AND-, OR- tms. käskyä vastasi. Ja  kellopulssipainiketta painaen käsky meni muistiin.

Voihan tuohon värkätä jonkun tulkkiohjelman näppistä tai näyttöä varten, mutta ei se ole ollenkaan välttämätöntä.

Korant: Oikea fysiikka on oikeampaa kuin sinun klassinen mekaniikkasi. Jos olet eri mieltä kanssani olet ilman muuta väärässä.

Ab Surd Oy
Seuraa 
Viestejä9473
Liittynyt13.7.2015

nova kirjoitti:
Tietokoneohjelma on sen kirjoitusvaiheessa pelkkää tekstiä ruudulla. Miten sitten teksti/käskyt AND, OR, NOR, NOT .. saavat logiikkapiirien tilan vaihtumaan? Siis tuota mietin, että miten se ohjelma voi muuttua tekstivaiheesta jännitemuutoksiksi muistiin?

Yleinen konteksti ja asiain suhteet onkin jo edellä selitetty. Sananen vielä tuosta kääntämisestä.

Assembly-kieli on matalan tason kieli, jossa on liuta käskysanoja ko. prosessoriarkkitehtuurille laadittuna. Ne ovat vain ihmistä varten keksittyjä, jotta koodia on helpompi tuottaa ja ymmärtää. Ne vastaavat yksi yhteen tai yksi moneen varsinaisia prosessorin käskykannan komentoja, jotka siis ovat vain binäärilukuja, ei muuta. Assemblyssä yksi käsky on yhdestä kolmeen sanaa pitkä, jossa varsinaisen komennon yhteydessä voi olla myös dataa tai viittaus datan sijaintiin. Yleensä ottaen yksi käsky on yksi looginen operaatio tai laskutoimitus.

Assembly-kielestä kääntäminen on suoraviivainen operaatio, jossa ASCII-muotoinen tekstianalyysin korvataan käskyn binärikoodilla ja tarvittava data ja muuttujaviittaukset yms koodataan sopivaan talletettavaan ja suoritettavaan binäärimuotoon.

Korkeamman tason ohjelmointikíelet, joissa on mutkikkaampia rakenteita, ovat sitten jännempi juttu. Tässä täysin mahdoton mitenkään ymmärrettävästi valaista kokonaan, mutta kuitenkin periaatetasolla hieman niistäkin. Keskiössä on kielioppi. Ohjelmointikíelet ovat kuin kielet muutenkin, ainoastaan formaaleja ja tarkoituksenmukaisen suppeita. Niillä on tietyt kielille yhteiset ominaisuutensa. Esimerkiksi lauseiden tietty sanajärjestys, joka määrittää semantiikan eli lauseen tulkinnan. Tässä on eri paradigmoja, mutta tavanomaisin ja helpoin käsittää lienee imperatiivinen datan ja ohjelman erottava suppeahkon sanaston suljettu kieli, kuten C, Java, Python ja vastaavat. Kolmannen sukupolven kielistä puhutaan. Näissä ohjelma voidaan ajatella puurakenteena perustuen kielioppiin eli kielen formalismiin. Kääntäminen perustuu siihen, että ensin ohjelmakoodi parsitaan eli etsitään ja erotellaan kielen varatut sanat, datailmaisut, muuttujat ja sen sellainen, ja sitten sovitetaan näitä kielen sääntöihin eli koostetaan se puurakenne kääntäjän muistissa. Lopuksi puurakenne serialisoidaan korvaten esim. silmukkakäskyt ehto- ja hyppykäskyillä ja datat ja muuttujat muunnetaan viittauksiksi rekistereihin tai muistiin tarvittavine operaatioineen. Saadaan yleensä välituotteena Assembler-koodi joka sitten edelleen käännetään kohdeprosessorille eri työkalulla.

nova
Seuraa 
Viestejä131
Liittynyt13.8.2016

Kun ohjelma ladataan levyltä muistiin, niin mikä siinä ohjelmakoodissa saa logiikkapiirin kytkimissä muutokset aikaan, siis asettumaan tilohinsa 1 ja 0? Onko levylle kirjoitetussa ohjelmakoodissa magneettisia pisteitä, jotka logiikkapiirille tai muistiin luettaessa asettavat kytkimet vaadituille 5v ja 0V tasoille: 1 tai 0?

Pauli
Seuraa 
Viestejä148
Liittynyt24.11.2014

nova kirjoitti:
Kun ohjelma ladataan levyltä muistiin, niin mikä siinä ohjelmakoodissa saa logiikkapiirin kytkimissä muutokset aikaan, siis asettumaan tilohinsa 1 ja 0? Onko levylle kirjoitetussa ohjelmakoodissa magneettisia pisteitä, jotka logiikkapiirille tai muistiin luettaessa asettavat kytkimet vaadituille 5v ja 0V tasoille: 1 tai 0?

Voisi olla järkevää lähteä avaamaan tätä mikrokontrolleri tasolta. Esim open source Arduino laudoilla. Hyvin paljon käytetty ns Hello World sovellus mikrokontrollerissa on laittaa laitteessa kiinni oleva led päälle. Led voi olla Esim osoitteessa pin(1) ja ohjelmakoodissa voit laittaa ledin päälle komennolla pin(1)=high, odottaa vaikka sekunnin komennolla wait(1000) ja sqmmuttaa ledin pin(1)=low. Vilkkuva tsydeemi tulee sitten korkeamman käsitteen luupilla, Esim

While(1=1) { //looginen ehto joka on aina tosi
Pin(1)=high //led päälle
Wait(1000) //odota 1000 ms, eli sekunti
Pin(1)=low //led pois
Wait(1000) //odota sekunti
} //luuppi, ja koska While ehto on tosi, luupilla jatkuu niin kauan kuin virta on päällä

Pauli
Seuraa 
Viestejä148
Liittynyt24.11.2014

Eli pin(1)=high asettaa pin 1:een esim 3.3 V tai 5 V jännitteen riippuen systeemistä. Pin(1)=low, asettaa taasen jännitteen esim 0 V. Nyt esim liiketunnistin voi asettaa output pinninsä low tilasta high tilaan huomatessaan liikettä ja rele kytkee valon päälle. Kun liike loppuu ja on odotettu asetettu aika, output pinnin arvoksi laitetaan 0 ja valo sammuu.

James Randi
Seuraa 
Viestejä338
Liittynyt27.2.2015

Voisiko tuollainen mikrokontrolleri olla vastaus erittäin paljon tehoa vaativan yksinkertaisen ongelman selättämiseksi. Nykyisissä PC:ssä prosessorin tehot ovat jotain luokkaa 3-4 GHz ja kaikki muu läppärissä on turhaa krääsää.

Jos siis ostaisi mikrokontrollerin, jonka teho olisi 40 000 GHz, niin onko tuollaisia hirmuja olemassa ja jos on, selviääkö muutamalla tuhatlappusella?

Vai onko mikrokontrollerit tarkoitettu pieneen näpertelyyn?

---Mielestäni seksuaalisesta suuntautumisesta ei ole kysymys vaan Randin taustasta.Toisen maailmansodan aikana Randi tuli persraiskatuksi natsien toimesta jonka seurauksen Randi traumatisoitui ja lähti myöhemmin siitä selvittyään omalle "kostoretkelle" harjoittamalla samanlaista toimintaa alaisiinsa ja lähipiiriin. Randi miljoonan taalan "kostoretki"

---Paljastan matemaattiset valheesi!

Lyde19
Seuraa 
Viestejä3225
Liittynyt7.7.2013

Siis Trolli, mutta kiva trolli.

Tilasin ebaysta pari ESP8266 mikrokontrolleri modulia. Näissä on sisäänrakennettuna wifi liitäntä ja sen ohjelmisto.
Alle kympin hinnalla saa eri malleja tuosta modulista. Näistä pystyy tekemään langattomasti nettiin liittyviä härpäkkeitä hyvin pienellä vaivalla.

Jakob
Seuraa 
Viestejä934
Liittynyt11.7.2015

Lyde19 kirjoitti:
Siis Trolli, mutta kiva trolli.

Tilasin ebaysta pari ESP8266 mikrokontrolleri modulia. Näissä on sisäänrakennettuna wifi liitäntä ja sen ohjelmisto.
Alle kympin hinnalla saa eri malleja tuosta modulista. Näistä pystyy tekemään langattomasti nettiin liittyviä härpäkkeitä hyvin pienellä vaivalla.

Tuohan onkin hieno, näköjään Arduinolla voi ohjelmoida joka on tuttu minullekin.

Olisikohan tuon uudemmalla versiolla ESP32:lla jotain merkittävä etuja?

James Randi
Seuraa 
Viestejä338
Liittynyt27.2.2015

Haistakaa vattu, mikä trulli?

Teknistä edtettä ei ole, että läppärin prossu jauhaisi 40 000 GHz kellotaajuudella. Tässäkin (taas) on kysymys bisneksestä. Rahastetaan ensin kaikki 3-4 GHz prossuilla ja siirrytään sitten parin vuoden perästä rahastamaan 4-6 GHz prosessoreilla.

2*x vuotta + 2 GHz = 40 000 Ghz

Eli saadaan odottaa 40 000 vuotta, ennen kuin prosessorit on rahastettu niin, että tarjolla on 40 000 GHz prosessoreita.

Haistakaa vittu ja työntäkää mikrokontrollinenne perseisiinne.

---Mielestäni seksuaalisesta suuntautumisesta ei ole kysymys vaan Randin taustasta.Toisen maailmansodan aikana Randi tuli persraiskatuksi natsien toimesta jonka seurauksen Randi traumatisoitui ja lähti myöhemmin siitä selvittyään omalle "kostoretkelle" harjoittamalla samanlaista toimintaa alaisiinsa ja lähipiiriin. Randi miljoonan taalan "kostoretki"

---Paljastan matemaattiset valheesi!

JPI
Seuraa 
Viestejä25289
Liittynyt5.12.2012

Ab Surd Oy kirjoitti:
Se ohjelma on yhtä lailla aineellinen tai aineeton kuin tilamuutoksetkin. Ohjelma on niitä nollia ja ykkösiä muistissa, siis muistiyksiköiden tiloja jotka antavat eri jännitteen johtimiin. Siitä ettepäi se on vain puolijohde-elektroniikkaa.

Juu, selväähän tuo. Mutta on ne ohjelmat AIKA aineetonta siinä vaiheessa kun liikkuvat vaikkapa radioaaltoina langattomissa tietoverkoissa.
😁

3³+4³+5³=6³

Sivut

Suosituimmat

Uusimmat

Uusimmat

Suosituimmat