Tietokonearkkitehtuuri
Tietokonetekniikassa tietokonearkkitehtuuri on tietokonejärjestelmän käsitteellinen suunnittelu ja perustavanlaatuinen toimintarakenne. Se on teknisiä piirustuksia ja toiminnallinen kuvaus kaikista suunnitteluvaatimuksista (erityisesti nopeuksista ja yhteyksistä), se on tietokoneen eri osien suunnittelua ja toteuttamista - keskittyen pääasiassa tapaan, jolla keskusyksikkö (CPU) toimii sisäisesti ja jolla se käyttää muistin osoitteita.
Se voidaan määritellä tieteeksi ja taiteeksi, jossa laitteistokomponentteja valitaan ja yhdistetään toisiinsa, jotta voidaan luoda tietokoneita, jotka täyttävät toiminnalliset, suorituskyky- ja kustannustavoitteet.
Tietokonearkkitehtuuriin kuuluu ainakin kolme pääalaluokkaa:
- Käskykokonaisuusarkkitehtuuri eli ISA (Instruction Set Architecture) on laskentajärjestelmän abstrakti malli, jonka konekielen (tai assembler-kielen) ohjelmoija näkee ja joka sisältää käskykokonaisuuden, muistin osoitetilat, prosessorirekisterit sekä osoite- ja dataformaatit.
- Mikroarkkitehtuuri, joka tunnetaan myös nimellä Tietokoneen organisaatio, on alemman tason yksityiskohtainen kuvaus järjestelmästä, joka riittää kuvaamaan täydellisesti kaikkien laskentajärjestelmän osien toiminnan ja sen, miten ne on kytketty toisiinsa ja miten ne toimivat keskenään ISA:n toteuttamiseksi. Esimerkiksi tietokoneen välimuistin koko on organisatorinen kysymys, jolla ei yleensä ole mitään tekemistä ISA:n kanssa.
- Järjestelmäsuunnittelu, joka sisältää kaikki muut tietokonejärjestelmän laitteistokomponentit, kuten:
· Järjestelmien väliset yhteydet, kuten tietokoneväylät ja kytkimet.
· Muistiohjaimet ja hierarkiat.
· prosessorin kuormituksen vähentämismekanismit, kuten suora muistin käyttö.
· Moniprosessoinnin kaltaiset kysymykset.
Kun sekä ISA että mikroarkkitehtuuri on määritelty, varsinainen laskentajärjestelmä on suunniteltava laitteistoksi. Tätä suunnitteluprosessia kutsutaan toteutukseksi. Toteutus on yleensä laitteistosuunnitteluprosessi.
Täytäntöönpano voidaan jakaa edelleen kolmeen osaan, jotka eivät kuitenkaan ole täysin erillisiä:
- Logiikan toteuttaminen: Mikroarkkitehtuurissa määriteltyjen lohkojen suunnittelu, pääasiassa rekisterisiirto- ja porttitasoilla.
- Piirin toteuttaminen: Transistoritason suunnittelu peruselementeille (portit, multiplekserit, flip-flopit jne.) sekä joillekin suuremmille lohkoille (ALU:t, välimuistit jne.), jotka voidaan toteuttaa tällä tasolla tai jopa alemmalla fyysisellä tasolla suorituskykysyistä.
- Fyysinen toteutus: Fyysiset piirit piirretään, eri piirikomponentit sijoitetaan piirin pohjapiirustukseen tai levylle ja niitä yhdistävät johdot reititetään.
Suorittimien osalta koko toteutusprosessia kutsutaan usein suorittimen suunnitteluksi; se voi olla myös joukko toisiinsa liittyviä suorittimen suunnitteluja, kuten RISC ja CISC.
Lisää alamääritelmiä
Jotkut tietokonearkkitehtuurin harjoittajat käyttävät hienojakoisempia alaluokkia:
- Makroarkkitehtuuri: Arkkitehtuurikerrokset, jotka ovat abstraktimpia kuin mikroarkkitehtuuri, esimerkiksi ISA.
- Käskykanta-arkkitehtuuri (ISA): Kuten edellä on määritelty.
- UISA (Microcode Instruction Set Architecture): Koneiden perhe, joissa on eri laitteistotason mikroarkkitehtuurit, voi käyttää yhteistä mikrokoodiarkkitehtuuria, ja siksi niitä kutsutaan UISA-arkkitehtuuriksi.
- Kokoonpano ISA: Älykäs assembleri voi muuntaa useille suorittimille yhteisen abstraktin assemblerointikielen hieman erilaiseksi konekieleksi eri suorittimien toteutuksia varten.
- Ohjelmoijan näkyvä makroarkkitehtuuri: Esimerkiksi C-, C++- tai Java-standardit määrittelevät kolme erilaista selkeää ohjelmointirajapintaa, jotka poikkeavat taustalla olevien ISA-, UISA- ja mikroarkkitehtuurien välisistä eroista.
- Nasta-arkkitehtuuri: Mikroprosessori: Toiminnot, jotka mikroprosessorin odotetaan tarjoavan laitteistoalustan näkökulmasta. Esimerkiksi signaalit, joita prosessorin odotetaan lähettävän käskyn suorittamisen aikana.
Esimerkkejä tietokonearkkitehtuureista
- Intelin ja AMD:n valmistama x86.
- Sun Microsystemsin ja muiden valmistama SPARC.
- PowerPC, jonka ovat valmistaneet Apple, IBM ja Motorola.
Aiheeseen liittyvät sivut
- Tietokonelaitteisto
- Ohjelmistoarkkitehtuuri
- Mikroarkkitehtuuri
Kysymyksiä ja vastauksia
K: Mitä on tietokonearkkitehtuuri?
V: Tietokonearkkitehtuuri on tietokonejärjestelmän käsitteellinen suunnittelu ja perustavanlaatuinen toimintarakenne. Siihen kuuluu kaikkien suunnitteluvaatimusten, kuten nopeuksien ja liitäntöjen, tekniset piirustukset ja toiminnallinen kuvaus, jotta voidaan luoda tietokoneita, jotka täyttävät suorituskyky-, kustannus- ja toiminnalliset tavoitteet.
K: Mitkä ovat tietokonearkkitehtuurin kolme tärkeintä alaluokkaa?
V: Tietokonearkkitehtuurin kolme tärkeintä alaluokkaa ovat käskykanta-arkkitehtuuri (Instruction Set Architecture, ISA), mikroarkkitehtuuri (tunnetaan myös nimellä Computer Organization) ja järjestelmäsuunnittelu.
K: Mitä ISA sisältää?
V: Käskykanta-arkkitehtuuriin (Instruction Set Architecture, ISA) kuuluu laskentajärjestelmän abstrakti malli, jonka konekielen tai assembler-kielen ohjelmoija näkee. Siihen sisältyvät käskykokonaisuus, muistin osoitetilat, prosessorirekisterit sekä osoite- ja dataformaatit.
K: Mitä mikroarkkitehtuuri sisältää?
V: Mikroarkkitehtuuriin kuuluu alemman tason yksityiskohtainen kuvaus järjestelmästä, joka riittää kuvaamaan täydellisesti kaikkien laskentajärjestelmän osien toiminnan sekä sen, miten ne on liitetty toisiinsa ja miten ne ovat vuorovaikutuksessa keskenään ISA:n toteuttamiseksi.
K: Mitä järjestelmäsuunnittelu sisältää?
V: Järjestelmäsuunnitteluun kuuluvat kaikki muut laskentajärjestelmän laitteistokomponentit, kuten järjestelmien väliset yhteydet, kuten tietokoneväylät ja kytkimet, muistinohjaimet, suorittimen kuormituksen poistomekanismit, kuten suora muistin käyttö, moniprosessorikysymykset jne.
K: Miten toteutus jaetaan kolmeen osaan?
V: Toteutus voidaan jakaa seuraaviin osiin: looginen toteutus, joka sisältää mikroarkkitehtuurissa määriteltyjen lohkojen suunnittelun rekisteri- tai porttitasolla; piirien toteutus, joka sisältää transistoritason suunnittelun peruselementtejä tai suurempia lohkoja varten; fyysinen toteutus, joka sisältää fyysisten piirien piirtämisen, eri piirikomponenttien sijoittamisen piirin pohjapiirustukseen tai piirilevylle ja niitä yhdistävien johtojen reitityksen.