Tietokonearkkitehtuuri viittaa useisiin vastaaviin ideoihin tietojenkäsittelytieteen ja tekniikan aloilla. Ohjelmistotasolla se viittaa kokoonpanokielijärjestelmiin, jotka yhdistävät tietokoneen laitteiston eri osat yhdeksi toimivaksi järjestelmäksi. Laitteistoa käsiteltäessä sitä sovelletaan yhtä lailla laitteiston luomiseen ja hyödyntämiseen kuin tietokoneen komponenttien rakentamiseen. Jokainen näistä määritelmistä kuvaa samanlaista prosessia-ajatusta aloittaa toimimattomasta tietokonejärjestelmästä ja tehdä siitä toimiva-mutta ne kaikki katsovat prosessia eri näkökulmasta.
Tietokonearkkitehtuurin ohjelmistoversio on todennäköisesti vaikein ei-tekniselle henkilölle. Tietokonejärjestelmä suorittaa tuhansia tehtäviä kerrallaan, joilla ei ole mitään tekemistä käyttäjän kanssa. Nämä tehtävät muodostavat tietokoneen järjestelmien perustan. Se voi siirtää tietoja lyhytaikaisesta muistista pitkäaikaiseen muistiin tai tarkistaa ajan suhteessa aikataulutettuun tehtävään nähdäkseen, onko aika aktivoida.
Kaikki nämä tietokonearkkitehtuurin toiminnot perustuvat konekoodiin ymmärtääkseen, miten koneen eri osat on kytketty toisiinsa. Tämä koodi luo peruspiirustuksen tietokoneen laitteistosta, jota tehokkaammat ohjelmat käyttävät esimerkiksi prosessorin ajan ja muistiosoitteiden käyttämiseen. Tämä konekoodisuunnitelma määrittelee järjestelmän rakenteen ohjelmiston näkökulmasta.
Tietokonearkkitehtuurin ensimmäinen laitteistoversio on lomake, jota käytetään ohjelmistosuunnitelman luomiseen. Tämä arkkitehtuurimuoto keskittyy tapaan, jolla koneen eri osat lähettävät ja vastaanottavat tietoja voidakseen työskennellä yhdessä. Jos esimerkiksi muistimoduuli haluaa tiedot muotoiltua tietyllä tavalla, on tärkeää, että prosessori lähettää ne tässä muodossa, jotta tiedot voidaan tallentaa. Jos tietokoneen eri osat eivät pysty kommunikoimaan keskenään, järjestelmä ei toimi.
Tietokonearkkitehtuurin toinen laitteistoversio keskittyy yksittäisiin laitteistoihin. Tämä menetelmä vaatii suunnittelijoita katsomaan yksittäistä kappaletta ja määrittämään, miten se toimii. Lähes jokainen tietokonelaitteisto sisältää monimutkaiset ohjeet tietojen käsittelyyn, ohjeiden vastaanottamiseen ja komentojen antamiseen. Kaikki tämä tapahtuu laitteiston sisällä, mikä edellyttää täysin toteutettua kieltä ja komentojärjestelmää. Pohjimmiltaan jokainen laitteisto toimii kuin hyvin erikoistunut tietokone.
Koska jokainen näistä määritelmistä puhuu erilaisesta tietokonearkkitehtuurin piirteestä, ne kaikki päätyvät hyvin yhteen. Ensin suunnittelija tarkastelee laitteiston yksittäisiä osia ja päättää, miten ne toimivat. Seuraavaksi palat kootaan yhteen laitteistojärjestelmän muodostamiseksi. Lopuksi konekoodia käytetään näiden järjestelmien yhdistämiseen siten, että ohjelmat voivat olla vuorovaikutuksessa laitteiston kanssa.