Kysymys:
Miksi enemmän transistoreita = enemmän prosessointitehoa?
Oli
2010-10-25 15:04:20 UTC
view on stackexchange narkive permalink

Wikipedian mukaan käsittelyvoima liittyy vahvasti Mooren lakiin:

http://fi.wikipedia.org/wiki/Mooren_laki

Transistoreiden määrä, jotka voidaan sijoittaa edullisesti integroidulle piirille, on kaksinkertaistunut noin kahden vuoden välein. Suuntaus on jatkunut yli puoli vuosisataa, ja sen odotetaan pysähtyvän vasta vuonna 2015 tai myöhemmin. Monien digitaalisten elektronisten laitteiden ominaisuudet ovat vahvasti sidoksissa Mooren lakiin: käsittelynopeus, muistikapasiteetti, anturit ja jopa digitaalikameroiden pikselimäärä ja koko. Kaikki nämä parantuvat myös (karkeasti) eksponentiaalisilla nopeuksilla.

Koska joku, jolla on jonkin verran taustaa tietokonearkkitehtuurissa, en ymmärrä, miksi useamman transistorin heittäminen suorittimeen lisäisi sen teho, koska viime kädessä ohjeet luetaan karkeasti peräkkäin. Voisiko kukaan selittää, mikä osa puuttuu?

Enemmän transistoreita = enemmän rinnakkaisuutta
Se on totta riippumatta siitä, kuinka monta ydintä prosessorilla on.
Joo. Enemmän transistoreita tarkoittaa, että voit laittaa enemmän rinnakkaisia ​​suoritusyksiköitä. Suurempi välimuisti. Syvemmät putkistot.
Välimuisti on iso. Uskon, että välimuistille omistettujen piin kiinteistöjen osuus on kasvanut. Suurin osa nykyaikaisten prosessorien suorituskyvystä johtuu välimuistista, ja välimuisti toimii vain silloin, kun paikkakuntaa on, mutta mitä suuremmat välimuistit, sitä rennompi on vaatimus paikallisuudesta (isompia sovelluksia, joissa on enemmän hassuja muistin käyttömalleja, nopeutetaan edelleen).
Ajattele vain kerrointa.Riittävästi transistoreita voit käyttää täydellistä hakutaulukkoa ja suorittaa koko kertolasku yhdessä vaiheessa.Kun transistoreita on vähemmän, sinun on tehtävä asioita, kuten toistuva lisäys.
Viisi vastused:
JustJeff
2010-10-25 16:29:00 UTC
view on stackexchange narkive permalink

Monet asiat, jotka antavat sinulle enemmän virtaa, tarvitsevat vain enemmän transistoreita niiden rakentamiseen. Laajempi väylä skaalaa transistorin määrän lähes kaikissa prosessorikomponenteissa. Nopeat välimuistit lisäävät transistoreita välimuistin koon mukaan. Jos pidennät putkea, sinun on lisättävä vaiheita ja monimutkaisempia ohjausyksiköitä. Jos lisäät suoritusyksiköitä putkilinjan pullonkaulan lievittämiseksi, kukin niistä vaatii lisää transistoreita, ja sitten kohdistettujen suoritusyksiköiden pitämiseen tarvittavat ohjausobjektit lisäävät vielä enemmän transistoreita.

Asia on, että piirissä kaikki tapahtuu rinnakkain. Ohjelmistomaailmassa oletuksena on, että asiat ovat peräkkäisiä, ja ohjelmistosuunnittelijat pyrkivät kovasti hankkimaan ohjelmistoon rinnakkaisuuden, jotta se voi hyödyntää laitteiston rinnakkaista luonnetta. Rinnakkaisuus tarkoittaa vain, että samanaikaisesti tapahtuu enemmän tavaroita, mikä vastaa suunnilleen nopeutta; mitä enemmän asioita voidaan tehdä rinnakkain, sitä nopeammin saat asiat valmiiksi. Ainoa todellinen rinnakkaisuus on se, mitä saat, kun sinulla on enemmän transistoreita töissä.

Paul A. Clayton
2012-10-20 11:54:52 UTC
view on stackexchange narkive permalink

Ensimmäisiä ohjeita ei välttämättä suoriteta peräkkäin edes muulla kuin VLIW ISA: lla, suorituksen on oltava vain peräkkäinen. Järjestyksessä oleva superskalaarinen toteutus voi suorittaa useamman kuin yhden käskyn rinnakkain toisen kanssa. Tätä varten laitteiden dekoodausohjeita on lisättävä (laajennettava), laitteita on lisättävä samanaikaisesti suoritettavien ohjeiden tietojen riippumattomuuden varmistamiseksi, suoritusresursseja on lisättävä ja rekisteritiedostoporttien määrää on yleensä lisättävä. Kaikki nämä lisäävät transistoreita.

Tilauksesta poikkeava toteutus, joka sallii myöhempien ohjeiden suorittamisen ennen aikaisempia, kunhan tiedoista ei ole riippuvuutta, käyttää lisälaitteistoa ohjeiden ajoitukseen heti kun tiedot tulevat saataville ja lisäävät rekisterien ja laitteiden nimeämistä uudelleen niiden kartoittamiseksi, allokoimiseksi ja vapauttamiseksi (lisää transistoreita), jotta vältetään kirjoittamisen jälkeiset ja kirjoituksen jälkeiset riskit. Tilauksen ulkopuolinen suorittaminen antaa prosessorille mahdollisuuden välttää jumitusta.

Kuormien ja varastojen uudelleenjärjestäminen tilauksen ulkopuolisessa prosessorissa edellyttää, että aikaisemmat ohjelmajärjestyksessä olevat varastot välittävät tulokset myöhemmille sama osoite. Tämä tarkoittaa osoitteiden vertailulogiikkaa sekä varastointia myymälöiden osoitteille (ja koille) (ja tietojen tallennustilaa), kunnes myymälä on sitoutunut muistiin (välimuisti). (ISA: lla, jolla on vähemmän heikko muistijohdonmukaisuusmalli, on myös tarkistettava, että kuormat on järjestetty oikein muiden prosessorien - enemmän transistoreiden - myymälöihin nähden.)

Putkilinjaus lisää joitain lisäohjauksia ja puskurointia ja estää logiikan uudelleenkäytön käskyjen käsittelyn eri osissa, mutta antaa käskyn käsittelyn eri osien olla päällekkäisiä ajoissa eri ohjeiden suhteen.

Putkisto ja superskaarin toteutus lisäävät kontrollivaarojen (eli ehdollisten haarojen ja hyppyjen) vaikutusta. Putkisto (ja myös tilauksen ulkopuolinen toteutus) voi viivästyttää kohteen saatavuutta jopa ehdottomissa hyppyissä, joten laitteiden lisääminen kohteiden (ja ehdollisten haarojen suunnan) ennustamiseksi sallii ohjeiden noutamisen jatkua odottamatta tarvittavien tietojen saataville. Tarkemmat ennustimet vaativat yleensä enemmän transistoreita.

Tilauksesta poikkeavalla prosessorilla voi olla toivottavaa sallia muistin kuormituksen suorittaminen ennen kuin kaikkien edellisten myymälöiden osoitteet on laskettu, joten jotkut laitteisto tällaisen spekulaation käsittelemiseksi vaaditaan, mukaan lukien mahdollisesti ennakoija.

Välimuistit voivat vähentää viiveitä ja lisätä muistihakemusten kaistanleveyttä, mutta lisätä transistoreita tietojen tallentamiseen ja tunnisteiden tallentamiseen (ja tunnisteiden vertaamiseen pyydetty osoite). Lisälaitteita tarvitaan myös korvauskäytännön toteuttamiseksi. Laitteiston ennakkohaku tuo lisää transistoreita.

Toiminnallisuuden toteuttaminen laitteistossa eikä ohjelmistossa voi lisätä suorituskykyä (vaatii enemmän transistoreita). Esimerkiksi TLB-hallinta, monimutkaiset operaatiot, kuten kertolasku- tai liukulukuoperaatiot, erikoistuneet toiminnot, kuten laskevat johtavat nollat. (Kommenttien lisääminen lisää myös komentojen dekoodauksen monimutkaisuutta ja tyypillisesti myös suorituksen monimutkaisuutta - esim. Ohjaamaan mitä suorituslaitteiston osia käytetään.)

SIMD / vektoritoiminnot lisäävät työ, joka suoritetaan käskyä kohti, mutta vaatii enemmän tallennustilaa (laajemmat rekisterit) ja käyttävät yleensä enemmän suoritusresursseja.

(Spekulatiivinen monisäikeisyys voi myös sallia useiden prosessorien suorittaa nopeammin yhden kierteisen ohjelman. Ilmeisesti suorittimien lisääminen siruun lisää transistorin määrää.)

Kun käytettävissä on enemmän transistoreita, tietokonearkkitehdit voivat myös tarjota ISA: lle enemmän ohjelmistolle näkyviä rekistereitä, mikä voi vähentää muistikäytöjen taajuutta, joka on yleensä hitaampaa kuin rekisterin käyttö ja johon liittyy jonkin verran epäsuoraa suuntausta (esim. siirtymän lisääminen pinon osoittimeen), mikä lisää viivettä.

Integrointi - mikä lisää sirujen transistoreiden määrää, mutta ei järjestelmässä - vähentää tiedonsiirron viivettä ja lisää kaistanleveyttä, mikä ilmeisesti sallii suorituskyvyn kasvun. (Myös virrankulutus pienenee, mikä voi johtaa parantuneeseen suorituskykyyn.)

Jopa käskyjen suorittamisen tasolla transistoreiden lisääminen voi parantaa suorituskykyä. Esimerkiksi kantoaallonvalitsin lisää ylemmät bitit kahdesti rinnakkain eri olettamusten kanssa alemmista bitteistä, valitsemalla oikean ylemmän bitin summan, kun suoritus alemmista bitteistä on käytettävissä, vaatii ilmeisesti enemmän transistoreita kuin yksinkertainen ripple carry summain, mutta vähentää viivettä koko summan tuottamisessa. Vastaavasti kerroin, jossa on yksi rivi kantoa säästäviä summaimia, käyttää vähemmän transistoreita (mutta on hitaampaa) kuin Dadda (tai Wallace) -puun kerroin, eikä sitä voida liittää putkilinjaan (joten se olisi replikoitava, jotta toinen kerroin voi aloittaa suorituksen aikaisemman moninkertaistaminen oli käynnissä).

Yllä oleva saattaa olla uuvuttavaa, mutta ei tyhjentävää!

Erinomainen vastaus uudelta kaverilta!
Thomas O
2010-10-25 15:31:29 UTC
view on stackexchange narkive permalink

Transistoreiden määrä ei välttämättä korreloi suuremman prosessointitehon kanssa, mutta useammalla transistorilla prosessori voi suorittaa entistä monimutkaisempia ohjeita. Esimerkiksi prosessori, jolla on SSE, käyttää muita transistoreita näiden monimutkaisten ohjeiden toteuttamiseen (esimerkiksi lisäämällä useita numeroita yhdessä jaksossa.)

Alan Kay laski, että koska hän työskenteli Smalltalkin parissa Xerox PARC: ssä, olemme menettäneet 18 vuoden transistorin kaksinkertaistumisen väärän arkkitehtuurin ja ohjelmistojen tehottomuuden vuoksi, koska tietokoneet eivät todellakaan ole niin nopeita kuin transistoreiden kaksinkertaistaminen ehdottaa.
Leon Heller
2010-10-25 16:18:36 UTC
view on stackexchange narkive permalink

Toinen tekijä: kun lisäät transistoreita tietylle alueelle, ne pienenevät, mikä tekee niistä nopeampi.

Kun transistorit lähestyvät ja lähestyvät toisiaan, saat muita ei-toivottuja vaikutuksia, kuten lisääntyneen vuotovirran, joten se on kompromissi suorituskyvyn ja pienen tehon välillä - useimmat valmistajat näyttävät pyrkineen suorituskykyyn.
smashtastic
2010-10-25 17:55:21 UTC
view on stackexchange narkive permalink

Mikroprosessorit ovat kehittyneet merkittävästi viime vuosina, kuten pidemmät putkilinjat, ennakoiva haaroitus ja siruvälimuisti ovat kaikki lisänneet prosessoriin liittyviä monimutkaisuuksia.

Varmista, että suorittimen käsittelyn, hakemisen, purkamisen perusteet , ALU, kirjoitus on edelleen sama, mutta nopeuttamiseksi käytetään pidempiä putkilinjoja. Pidemmät putket lisäävät suorituskykyä jatkuvalle koodin suorittamiselle, mutta aiheuttavat myös suurempia osumia, kun koodi haarautuu. Korjaava, ennakoiva haarautuminen. Ennakoiva haarautuminen on liikesalaisuus, jonka Intel ei normaalisti paljasta sen täydellistä toimintaa, vaan yksinkertaisesti käyttää sitä pitämään suorituskyky mahdollisimman korkeana suorittimissa.

Välimuisti on paljon nopeampi kuin RAM, mutta mitä siirtää RAM-muistista välimuistiin ja välimuistista takaisin RAM-muistiin ??? Se on jälleen omaa tavaraa, mutta se vie jälleen transistoreita toteutettavaksi.

Joten ylimääräiset transistorit menevät esimerkiksi pidempään putkistoon, ennakoiviin haaran algoritmeihin, välimuistiin ja muistialgoritmeihin.

Tässä ei mainita monisydämisiä prosessoreita ja jaettua muistia / resurssien käyttöohjaimia



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...