Moderni mikrokontrolleri olisi melko vaikea suunnitella transistoritasolta. Transistoreita käytetään logiikkaporttien tekemiseen alimman tason rakennuspalikoina. Yksinkertaisin portti on NOT-portti, joka kääntää tulotason: logiikasta 0 tulee 1 ja päinvastoin. NOT-portti on rakennettu kahdella transistorilla:
Ylätransistori johtaa, jos sen tulo (pieni piste) on matala, alempi transistori (ei pistettä), jos sen tulo on suuri. Joten jos käytät suurta tuloa, alempi transistori suorittaa kytkimenä toimimalla ja vaihtaa lähdön Q arvoksi Vss (se on sinun -) tai matalalle tasolle. Olemme kääntäneet syötteen. Muut portit perustuvat siihen. Otetaan esimerkiksi NAND-portti. Siinä on kaksi tai useampia tuloja, ja lähtö on matala, jos kaikki tulot ovat korkeita. Kaikissa muissa tapauksissa panos on suuri.
Tämä on 2-tuloinen NAND-portti, näet silti osan invertteristä siinä. Jos molemmat tulot ovat korkeat, molemmat pohjatransistorit johtavat, ja lähtö tehdään matalaksi Vss-yhteyden kautta. Jos jompikumpi tuloista on matala, ainakin yksi ylimmistä transistoreista johtaa ja ulostulo tehdään korkeaksi sen yhteyden kautta Vdd: hen (se on sinun +). Meillä on toimiva NAND-portti. Ja niin jatkuu, voimme rakentaa XOR-portin käyttämällä 4 NAND-porttia, ja muu monimutkaisempi logiikka on rakennettu rakennuspalikoiden yhdistelmästä. Tarvitset rakennuspalikan rekisteritoiminnon luomiseen: osa, joka voi pitää tilansa, kuten muisti.
Jos käsky haluaa lukea RAM-muistista, ensin on dekooderi. Porttien yhdistelmän avulla se saa aikaan useita signaaleja, joita se tarvitsee käskyn suorittamiseen. Yksi niistä on välittää luettava RAM-osoite osoiteväylälle. (Bussit ovat signaalikanavia, esimerkiksi 8-bittisen ohjaimen osoiteväylällä voi olla esimerkiksi 16 rinnakkaista johtoa. Bussit ovat tapa järjestää asiat. Ilman niitä ohjaimen suunnittelu muuttuisi erittäin tehottomaksi.) Toinen signaali aktivoi RD: n rivi ("read"), joka ilmoittaa RAM-muistille, että sen pitäisi sijoittaa tiedot tietokantaan. Vielä yksi signaali lukitsee nämä tiedot rekisteriin.
Tärkeä asia on ajoitus. Et voi lukita tietoja, jos et ole antanut RAM-muistille aikaa sijoittaa niitä väylään. Kaikki tehdään samalla logiikalla rakennuspalikoista, jotka puolestaan on rakennettu transistoreista.
"Transistorit lisäävät jotenkin laskennan nopeutta"
Ei ole muuta kuin transistorit ja niiden liitännät. Transistorit itsessään eivät lisää nopeutta. Totta on kuitenkin se, että tekniset parannukset mahdollistavat nopeammat transistorit ja nopeammat transistorit tarkoittavat nopeampaa laskentaa. Jotkut näistä parannuksista ovat ainutlaatuisia tekniikan vaiheita, jotka voit tehdä vain kerran. Mutta skaalaus on toinen tekijä, ja he ovat toistaneet sitä siitä lähtien, kun ensimmäiset IC: t suunniteltiin. 40 vuotta sitten IC: llä olisi tyypillisesti 5-8 \ $ \ mu \ $ m ominaisuuskoko. Nykyään voimme tuottaa jopa 22 nm: n ominaisuuksien koon. (DNA: n halkaisija on 15 nm.) Pienemmillä ominaisuuksilla transistorin fysikaaliset ominaisuudet muuttuvat, jotta se voi vaihtaa nopeammin. Moore näki tässä jatkuvassa mittakaavassa trendin, joka tunnettiin nimellä Moore's Law. Tämä ei voi jatkua ikuisesti ilman, että joudutaan harppaamaan käytettyä tekniikkaa. 80-luvulla pelättiin, että silloin käytetyn tekniikan rajat olisivat noin 200-300 nm, koska litografiaprosessi ei välttämättä toimi aallonpituuksilla näkyvän valon alapuolella. Mutta litografia on edelleen tekniikka, jota nykyiset stepperit käyttävät.