Ero sivun ”Transport triggered architecture” versioiden välillä

Wikipediasta
Siirry navigaatioon Siirry hakuun
[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
MystBot (keskustelu | muokkaukset)
p r2.7.1) (Botti lisäsi: fr:Transport triggered architecture
ZéroBot (keskustelu | muokkaukset)
p r2.7.1) (Botti lisäsi: ru:Transport triggered architecture
Rivi 29: Rivi 29:
[[en:Transport triggered architecture]]
[[en:Transport triggered architecture]]
[[fr:Transport triggered architecture]]
[[fr:Transport triggered architecture]]
[[ru:Transport triggered architecture]]

Versio 24. tammikuuta 2012 kello 01.40

Transport triggered architecture (TTA) on yksi tietokoneen suorittimen suunnittelufilosofioista.

TTA menee vieläkin pidemmälle kuin VLIW vastuun siirtämisessä laitteistolta kääntäjälle: VLIW-käskykannalla ohjelmakoodi määrittelee, mitkä käskyt saa suorittaa rinnakkain, mutta ei ota kantaa siihen, miten suoritin ne sisäisesti suorittaa, TTA-suorittimilla suorittimen sisäiset väylät näkyvät käskykannassa ja koko suoritinta ohjelmoidaan antamalla näille väylille käskyjä siirtää dataa.

Esimerkiksi kahden rekistereissä olevan luvun yhteenlasku, joka RISC-suorittimella olisi muotoa

add R0, R1 → R2

koostuu TTA-suorittimella kolmesta datansiirrosta:

R0 → adder.operand
R1 → adder.trigger
adder.result → R2

Siirroista ensimmäiset kaksi voidaan suorittaa samalla kellojaksolla ja siten sijoittaa samaan käskysanaan. Viimeinen siirto tulee sijoittaa myöhempään käskysanaan.

TTA-suorittimessa yhdessä käskysanassa voi olla niin monta siirtoa kuin suorittimella on väyliä.

TTA-suorittimen suurimmat hyödyt saadaan siitä, että paljastamalla suorittimen sisäiset väylät käskykannassa voidaan vähentää sekä väylien että väylien ja laskentayksiköiden välisten yhteyksien määrää. Näin suorittimien tehontarve laskee ja siitä saadaan pienempi ja suurempaan kellotaajuuteen kykenevä kuin vastaava VLIW-suoritin. Toinen merkittävä hyöty on muokattavuus: TTA-suorittimesta on helppo suunnitella erilaisia versioita, joissa esimerkiksi laskentayksiköitä on lisätty. Lisäksi käskykantaa on helppo laajentaa, koska uusi käsky voidaan toteuttaa lisäämällä toimilohko, joka puolestaan on vain uusi kohde, jonne dataa voidaan siirtää.

TTA:n haittapuolia ovat suorittimen huono sopeutuminen dynaamisiin tilanteisiin. Keskeytysten toteuttaminen TTA:lla on hyvin hankalaa, ja koska mitään käskyjen uudelleenjärjestelyjä itse suorittimella ei voida tehdä, välimuistihuti pysäyttää koko suorittimen. Lisäksi TTA:n konekielikoodi vie verraten paljon tilaa, koska yhden laskuoperaation suorittamiseen joudutaan yleensä tekemään vähintään kaksi datansiirtoa, jotka pitää erikseen koodata käskysanoihin. TTA-konekielikoodi on myös aina suoritinkohtaista, eikä minkäänlaista binääriyhteensopivuutta suorittimen eri mallien välillä ole.

Täyden tehon saaminen irti TTA-suorittimesta vaatii myös erittäin hyvän kääntäjän, koska kääntäjän vastuulla on enemmän kuin muiden suoritintyyppien tapauksissa.

Näistä syistä TTA-suorittimia kaavaillaan lähinnä signaaliprosessoreiksi eikä yleiskäyttöisiksi suorittimiksi. Toistaiseksi TTA-suorittimia on tutkittu yliopistojen tutkimusprojekteissa eikä niitä tiedetä vielä otetun käyttöön sovelluksissa.