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

p
ei muokkausyhteenvetoa
(kh)
p
'''Transport Triggered Architecture''' (TTA) on eräs tietokoneen [[suoritin|suorittimen]] suunnittelufilosofia.
 
TTA menee vieläkin pidemmälle kuin [[VLIW]] vastuun siirtämisessä laitteistolta kääntäjälle; VLIW-käskykannalla ohjelmakoodi vain 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.
add R0, R1 -> R2
 
koostuu TTA_suorittimellaTTA-suorittimella kolmesta datansiirrosta.
 
R0 -> adder.operand
TTA-suorittimen suurimmat hyödyt saadaan siitä että paljastamalla suorittimen sisäiset väylät käskykannassa näiden väylien ja näiden väylien yhteyksien laskentayksiöihin määrää voidaan vähentää suuresti, ja siten saada suorittimesta pienempi, vähävirtaisempi ja suurempaan kellotaajuuteen kykenevä kuin vastaava [[VLIW]]-suoritin. Toinen merkittävä hyöty on muokattavuus; TTA-suorittimesta on helppo suunnitella erilaisia versioita joissa esim. laskentayksiköitä on lisäilty, ja käskykantaa on helppo laajentaa koska uusi käsky on vain uusi kohde jonne dataa voidaan siirtää.
 
TTAn haittapuolia ovat suorittimen huono sopeutuminen dynaamisiin tilanteisiin; keskeytysten toteuttaminen TTAlla on hyvin hankalaa ja koska mitään käskyjen uudelleenjärjestelyjä itse suorittimella ei voida tehdä, välimuistihuti pysäyttää koko suorittimen. Lisäksi TTAn konekielikoodi vie verrattaen paljon tilaa, koska yhden laskuoperaation suorittamiseen joudutaan yleensä tekemään vähintään 2 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.
TTAn haittapuolia ovat suorittimen huono sopeutuminen dynaamisiin tilanteisiin;
keskeytysten toteuttaminen TTAlla on hyvin hankalaa ja koska mitään käskyjen uudelleenjärjestelyjä itse suorittimella ei voida tehdä, välimuistihuti pysäyttää koko suorittimen. Lisäksi TTAn konekielikoodi vie verrattaen paljon tilaa, koska yhden laskuoperaation suorittamiseen joudutaan yleensä tekemään vähintään 2 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.