Siitä lähtien, kun näin tämän binäärisen mekaanisen yhteenlaskukoneen, olen ajatellut, että jonkinlainen mekaaninen tietokone voisi olla mahdollista rakentaa. Vasta lähiaikoina olen alkanut suunnitella tällaista laitetta ja miettiä sellaiselle toimivaa toimintamekanismia. Tarkoitus olisi, että tämän mekaanisen tietokoneenkin toimintaperiaate tulisi perustumaan ylhäältä tippuviin marmorikuuliin, jotka kytkisivät mekaanisia flipflopeja eri asentoihin. Suunnitteluun käytän tätä ohjelmaa.
Yhteen- tai vähennyslaskukone on yksinkertainen toteutukseltaan, mutta pelkkä yhteen- ja vähennyslaskumahdollisuus ei tee laitteesta tietokonetta. Ohjelmoitavuus ja yleiskäyttöisyys on tärkeä osa tietokonetta. Mietin, kuinka saisin toteutettua jonkinlaisen program counter ja instruction decoder systeemin. Viimeisin ideani tähän ongelmaan olisi yllä olevassa kuvassa. Ylhäällä olevat neljä flipflopia on järjestetty siten, että kun marmorikuula tippuu ylimpään flipflopiin, se matkaa johonkin flipflopien alla olevasta neljästä reitistä. Ja tämä tapahtuu järjestyksessä. Uusi kuula menee aina seuraavaan reittiin ja viimeisen reitin jälkeen koko homma alkaa taas alusta. Näiden reittien lopussa on kytkimet, jotka on kiinnitetty "langoilla" haluttujen komentoväylien "oviin" instruction decoderissa. Tällaisen tietokoneen ohjelmointi tapahtuisi siis yhdistelemällä lankoja program counterin ja instruction decoderin välillä.
Tietokoneen matemaattiset laskutoimitukset perustuvat ainakin tällä hetkellä kahteen komentoon: +1 ja -1. Toisin kuin marble adding machinessa, jossa lasketaan kerralla yhteen kokonainen bittijono, tässä koneessa voi lisätä tai vähentää vain yhden yksikön kerralla. Koneen muistina toimii yksi tai useampi rekisteri, johon voi käyttää joko yhteen- tai vähennyslaskua. Tämän kaksoiskäyttötarkoituksen vuoksi rekisterillä on kaksi puolta, jossa kummassakin on yhtä monta flipflopia. Näiden flipflop-parien asennot pitäisi olla aina samat. Toistaiseksi en ole saanut suunniteltua kunnon mekanismia, joka saisi flipflopit liikkumaan samoihin asentoihin, mutta jotain olen yrittänyt. Oikealla olevassa kuvassa nykyinen toteutus nelibittisestä rekisteristä.
Vielä on monia asioita toteuttamatta. Ainakin ehdolliset hypyt olisi tärkeä saada koneeseen. Rekisteritkin saattavat vielä kokea uudistuksen, ellei niitä saa tuosta kehitettyä monikäyttöisemmiksi. Saa nähdä miten tämä projekti jatkuu. Mutta nyt voisi maistua kuppi kahvia...
Ei kommentteja:
Lähetä kommentti