Central processing unit (Suomi)

0 Comments
Katso myös: Prosessori suunnittelu

lohkokaavio perus asennettu yksi suoritin-CPU tietokone. Mustat viivat osoittavat datavirtaa, kun taas punaiset viivat osoittavat ohjausvirtaa; nuolet osoittavat virtaussuunnat.

juotettu CPU”s piiri on joukko perustoiminnot. se voi suorittaa, kutsutaan käskykanta. Tällaisia toimintoja voivat olla esimerkiksi kahden numeron lisääminen tai vähentäminen, kahden numeron vertailu tai hyppääminen ohjelman eri osaan., Jokainen peruskäyttö on edustaa tietyn yhdistelmä bittiä, joka tunnetaan nimellä kone kieli opcode; suoritettaessa ohjeita kone-kielellä ohjelma, CPU päättää joka toiminta suorittaa ”dekoodaus”, että opcode. Täydellinen kone kieli-ohje koostuu opcode ja, monissa tapauksissa, lisää bits joka määrittää argumentteja käyttö (esimerkiksi numerot voidaan tiivistää tapauksessa lisäksi toiminta). Monimutkaisuuden asteikkoa ylöspäin menevä konekieliohjelma on kokoelma konekielisiä ohjeita, joita suoritin suorittaa.,

varsinainen matemaattinen operaatio kunkin opetusta suoritetaan kombinaatio logiikka piiri sisällä CPU”s-prosessori, joka tunnetaan nimellä aritmeettislooginen yksikkö tai ALU. Yleensä suoritin suorittaa ohjeen noutamalla sen muistista, käyttämällä ALU: ta operaation suorittamiseen ja tallentamalla sen jälkeen tuloksen muistiin., Vieressä on ohjeet kokonaisluku matematiikka ja logiikka toimintoja, eri kone-ohjeet ovat olemassa, kuten lastaus tiedot muistista ja tallentaa sen takaisin, aluevaltaus toimintaa, ja matemaattisia operaatioita liukulukuina suorittaa CPU”s floating-point unit (FPU).

Ohjaus unitEdit

Main artikkeli: ohjausyksikkö

ohjausyksikkö (CU) on osa CPU, joka ohjaa toiminnan prosessori., Se kertoo tietokoneen muistiin, aritmeettiseen ja logiikkayksikköön sekä tulo-ja tulostuslaitteisiin, miten prosessorille lähetettyihin ohjeisiin vastataan.

se ohjaa muiden yksiköiden toimintaa antamalla ajoitus-ja ohjaussignaaleja. Suurin osa tietokoneresursseista on CU: n hallinnoimia. Se ohjaa tiedonkulkua suorittimen ja muiden laitteiden välillä. John von Neumann otti ohjausyksikön osaksi von Neumannin arkkitehtuuria., Nykyaikaisissa tietokonemalleissa ohjausyksikkö on tyypillisesti suorittimen sisäinen osa, jonka kokonaisrooli ja toiminta ovat olleet muuttumattomia sen käyttöönoton jälkeen.

aritmeettislooginen unitEdit

Main artikkeli: aritmeettislooginen yksikkö

Symbolinen edustus on ALU ja sen tulon ja lähdön signaalit

aritmeettislooginen yksikkö (ALU) on digitaalinen piiri sisällä suoritin, joka suorittaa kokonaisluku aritmeettinen ja biteittäin loogisia operaatioita., Tulot ALU tietoja sanoja käytettäväksi (ns. operandit), tilan tietoja aiemmista operaatioista, ja koodi ohjausyksikkö, jossa ilmoitetaan, mitkä toiminta tehdä. Riippuen opetusta on toteutettu, tekijät voi tulla sisäinen CPU rekisterit tai ulkoinen muisti tai ne voivat olla vakioita syntyy ALU itse.

Kun kaikki tulosignaalit ovat asettuneet ja lisätyistä kautta ALU-piiri, tulos suoritettu operaatio näkyy ALU”s lähdöt., Tulos koostuu sekä data-sana, joka voidaan tallentaa rekisteriin tai muistiin, ja tilan tiedot on tyypillisesti tallennettu erityinen, sisäinen CPU rekisteröidä varattu tätä tarkoitusta varten.

Osoite sukupolvi unitEdit

Main artikkeli: Osoite sukupolvi yksikkö

Osoite sukupolvi yksikkö (AGU), joskus kutsutaan myös osoite laskenta unit (ACU), on suoritusyksikkö sisällä CPU, joka laskee osoitteita käytetään CPU pääsyn tärkein muistia., Ottaa osoite laskelmat hoitaa erillinen piiri, joka toimii rinnakkain muiden CPU, CPU syklejä tarvitaan suorittamista eri kone ohjeita voidaan vähentää, jolloin suorituskyvyn parannuksia.

suorittaessaan eri toimintoja, Prosessorit täytyy laskea muisti osoitteita tarvitaan hakemalla tiedot muistista; esimerkiksi,-muisti kannat array elementtejä on laskettava ennen kuin SUORITTIMEN voi noutaa tietoja todellinen muistipaikkaa., Ne, osoite-sukupolven laskelmat sisältävät eri kokonaisluku laskutoimituksia, kuten yhteen -, vähennys -, modulo-operaatioiden, tai vähän vuoroja. Usein muistiosoitteen laskemiseen liittyy useampi yleiskäyttöinen koneohjaus, joka ei välttämättä Pura ja suorita nopeasti. Sisällyttämällä on AGU osaksi CPU suunnittelu, yhdessä käyttöön erikoistunut ohjeet, jotka käyttävät AGU, eri osoite sukupolven laskelmat voivat olla purettu muusta CPU, ja voi usein olla teloitettiin nopeasti yhdellä CPU sykli.,

AGU: n ominaisuudet riippuvat tietystä suorittimesta ja sen arkkitehtuurista. Niinpä jotkut AGUs toteuttaa ja paljastaa lisää osoite-laskennan toimintaa, kun taas joissakin on myös kehittyneempiä erikoistunut ohjeet, joka voi toimia useita operandit kerrallaan. Lisäksi, jotkut CPU arkkitehtuurit sisältävät useita AGUs niin enemmän kuin yksi osoite-laskennan toiminta voidaan suorittaa samanaikaisesti, jolloin edelleen suorituskyvyn parannuksia, joita hyödyntämällä superscalar luonne advanced CPU malleja., Esimerkiksi Intel sisältää useita AGUs osaksi Sandy Bridge ja Haswell microarchitectures, jotka lisäävät kaistanleveys, SUORITTIMEN muistin osajärjestelmä, jonka avulla useita muisti-yhteys ohjeet, jotka toteutetaan rinnakkain.

Memory management unit (MMU)Muokkaa

Main artikkeli: Memory management unit

Kaikkein high-end mikroprosessorit (desktop, kannettava tietokone, palvelin-tietokoneet) on memory management unit, kääntäminen loogiset osoitteet fyysisiksi RAM-osoitteet, joka tarjoaa muistin suojaus ja henkilöhaku kykyjä, hyödyllisiä virtuaalinen muisti., Yksinkertaisemmat suorittimet, erityisesti mikrokontrollerit, sisältävät yleensä MMU: n.

CacheEdit

CPU välimuisti on laitteisto-välimuisti käyttää CPU (central processing unit) on tietokoneen vähentää keskimääräiset kustannukset (aikaa tai energiaa) käyttää tietoja päämuistista. Välimuisti on pienempi, nopeampi Muisti, lähempänä suorittimen ydintä, joka tallentaa kopioita tiedoista usein käytetyistä päämuistipaikoista. Useimmat Prosessorit ovat eri riippumaton välimuistit, mukaan lukien opetus ja tietojen välimuistit, jossa data välimuisti on yleensä järjestetty hierarkia enemmän välimuistin tasot (L1, L2, L3, L4, jne.,).

kaikilla moderneilla (nopeilla) suorittimilla (harvoja erikoistuneita poikkeuksia lukuun ottamatta) on useita SUORITINKÄTKÖJÄ. Ensimmäinen Suorittimia, että käytetään cache oli vain yhden tason välimuisti, toisin kuin myöhemmin 1-tason välimuistit, se ei ole jaettu L1d (data) ja L1i (ohjeet). Lähes kaikissa nykyisissä suorittimissa, joissa on kätköjä, on jaettu L1-välimuisti. Niissä on myös L2-välimuistit ja isompien suorittimien osalta myös L3-välimuistit. L2-välimuisti ei yleensä ole jaettu ja toimii yhteisenä arkistona jo jaetulle L1-välimuistille. Moniydinprosessorin jokaisella ytimellä on oma L2-välimuisti, eikä sitä yleensä jaeta ytimien kesken., L3-välimuisti ja korkeamman tason kätköt jaetaan ytimien kesken, eikä niitä jaeta. L4-välimuisti on tällä hetkellä melko harvinainen, ja se on yleensä dynaamisella satunnaiskäyttömuistilla (DRAM), eikä staattisella satunnaiskäyttömuistilla (SRAM), erillisellä suulakkeella tai sirulla. Se oli myös perinteisesti kanssa L1, kun taas isompi pelimerkkejä on sallittu integrointi ja yleensä kaikki välimuistin tasot, lukuun ottamatta mahdollisesti viimeinen taso. Jokainen ylimääräinen välimuistin taso on yleensä suurempi ja optimoitu eri tavalla.,

Muita kätköjä on olemassa (sitä ei lasketa kohti ”cache size” tärkeimmistä välimuistit mainittu edellä), kuten translation lookaside buffer (TLB), joka on osa memory management unit (MMU), että useimmat Prosessorit ovat.

kätköt ovat yleensä kooltaan kahden suuruisia: 4, 8, 16 jne. KiB tai MiB (suuremmille ei-L1-kokoisille), joskin IBM z13: ssa on 96 KiB L1-ohjekätkö.

Kello rateEdit

Main artikkeli: kellotaajuus

Useimmat Prosessorit ovat synkroninen piirejä, mikä tarkoittaa, että ne työllistävät kellon signaalin tahdissa heidän peräkkäisiä toimintoja., Kello signaali on valmistettu ulkoinen oskillaattori piiri, joka tuottaa johdonmukainen määrä pulsseja joka toinen muodossa säännöllinen neliö aalto. Taajuus kellon pulsseja määrittää nopeus, jolla CPU suorittaa ohjeita ja, näin ollen, sitä nopeammin kello, enemmän ohjeet KESKUSYKSIKKÖ suorittaa kunkin toinen.

moitteettoman toiminnan varmistamiseksi CPU, kellon aika on pidempi kuin enintään aikaa tarvitaan kaikki signaalit etenevät (siirrä) kautta CPU., Asettaa kellon ajan arvo sekä edellä pahimmassa tapauksessa etenemisviive, on mahdollista suunnitella koko CPU ja miten se liikkuu tietoja noin ”reunat” nouseva ja laskeva kello signaali. Tämän etuna on suorittimen merkittävä yksinkertaistaminen sekä suunnittelunäkökulmasta että komponenttimäärän näkökulmasta. Siinä on kuitenkin myös se haitta, että koko suorittimen on odotettava hitaimpia alkuaineitaan, vaikka jotkin osat siitä ovat paljon nopeampia. Tätä rajoitusta on suurelta osin kompensoitu erilaisilla prosessorien parallelismin lisäämismenetelmillä (KS.alla).,

pelkät arkkitehtoniset parannukset eivät kuitenkaan ratkaise kaikkia maailmanlaajuisesti synkronisten suorittimien haittoja. Esimerkiksi kellosignaaliin liittyy minkä tahansa muun sähkösignaalin viivästyksiä. Yhä monimutkaisempien suorittimien korkeammat kellotaajuudet vaikeuttavat kellosignaalin pitämistä vaiheittain (synkronoitu) koko yksikössä. Tämä on johtanut monet nykyaikaiset Prosessorit vaativat useita samanlaisia kellon signaalit toimitetaan välttää viivästyttää yhden signaalin merkittävästi tarpeeksi aiheuttaa CPU toimintahäiriö., Toinen suuri ongelma, kun kellojen hinnat nousevat dramaattisesti, on suorittimen haihduttama lämmön määrä. Jatkuvasti vaihtuva kello saa monet komponentit vaihtumaan riippumatta siitä, käytetäänkö niitä tuolloin. Yleensä vaihtuva komponentti käyttää enemmän energiaa kuin staattisessa tilassa oleva elementti. Siksi kellotaajuuden kasvaessa kasvaa myös energiankulutus, jolloin suoritin vaatii enemmän lämmöntuottoa suorittimen jäähdytysratkaisujen muodossa.,

Yksi tapa käsitellä kytkentä tarpeettomia osia kutsutaan clock gating, johon liittyy poistaminen käytöstä kellon signaalin tarpeettomat osat (tehokkaasti poistaa ne käytöstä). Tätä pidetään kuitenkin usein vaikeana toteuttaa, eikä se näin ollen näe yleistä käyttöä hyvin pienitehoisten mallien ulkopuolella. Yksi merkittävä viimeaikainen suorittimen suunnittelu, joka käyttää laajaa kellon gating on IBM PowerPC-pohjainen Xenon käytetään Xbox 360; näin, tehovaatimukset Xbox 360 ovat huomattavasti vähentyneet., Toinen tapa puuttua joihinkin maailmanlaajuisen kellosignaalin ongelmiin on kellosignaalin poistaminen kokonaan. Kun irrotat global kello signaali tekee suunnittelu prosessia huomattavasti monimutkaisempi monin tavoin, asynkroninen (tai clockless) malleja kuljettaa merkitty etuja virrankulutus ja lämmöntuotto verrattuna vastaavia synkroninen malleja. Vaikka melko harvinaista, kokonaisia asynkronisia suorittimia on rakennettu ilman globaalia kellosignaalia. Kaksi merkittävää esimerkkiä tästä ovat ARM compliant AMULET ja MIPS R3000 yhteensopiva MiniMIPS.,

sen Sijaan täysin poistamaan kellon signaalin, jotkut CPU mallit mahdollistavat tiettyjä osia laitteen asynkroninen, kuten käyttämällä asynkronisen ALUs yhdessä superscalar pipelining saavuttaa joitakin aritmeettinen suorituskykyä voittoja. Vaikka ei ole täysin selvää, onko täysin asynkroninen malleja voi suorittaa vertailukelpoinen tai parempi taso kuin niiden synkroninen kollegansa, se on selvää, että he tekevät ainakin excel yksinkertaisempi matemaattisia toimintoja., Tämä yhdistettynä niiden erinomaiseen virrankulutukseen ja lämmöntuotto-ominaisuuksiin tekee niistä erittäin sopivia sulautetuille tietokoneille.

Jännitteen säädin moduleEdit

Main artikkeli: Jännitteen säädin moduuli

Monet nykyaikaiset Prosessorit ovat die-integroitu power hallinta moduuli, joka säätelee on-demand-jännitteen syöttö CPU piiri, jolloin se pitää tasapaino suorituskyvyn ja virrankulutuksen.

kokonaisluku rangeEdit

jokainen suoritin edustaa numeerisia arvoja tietyllä tavalla., Esimerkiksi, jotkut varhaiset digitaaliset tietokoneet edustettuina numerot tuttu decimal (base 10) numero järjestelmä arvoja, ja toiset ovat käyttäneet enemmän epätavallinen esityksiä, kuten komponentin (pohja kolme). Lähes kaikki nykyaikaiset suorittimet edustavat numeroita binäärimuodossa, ja jokaista numeroa edustaa jokin kaksiarvoinen fyysinen määrä, kuten” korkea ”tai” matala ” jännite.

kuuden-bittinen sana, joka sisältää binary-koodattu esitys desimaalin arvo 40. Useimmat nykyaikaiset Prosessorit käyttää sanaa koot, jotka ovat potenssiin kaksi, esimerkiksi 8, 16, 32 tai 64 bittiä.,

Liittyvät numeerinen edustus on koko ja tarkkuus kokonaislukuja, että CPU voi edustaa. Jos binary CPU, tämä on mitattu määrä bittejä (merkitsevät numerot binary-koodattu kokonaisluku), että CPU voi prosessi yhdessä työvaiheessa, joka on yleisesti kutsutaan sana koko, hieman leveys -, data-polun leveys, kokonaisluku tarkkuus, tai kokonaisluku kokoa. Suoritin ” s kokonaisluku koko määrittää alue kokonaisluku arvot se voi suoraan toimia., Esimerkiksi 8-bittinen suoritin voi suoraan manipuloida kokonaislukuja, joita edustaa kahdeksan bittiä, joiden vaihteluväli on 256 (28) diskreettiä kokonaislukuarvoa.

Kokonaisluku välillä voi myös vaikuttaa määrä muistipaikkaa CPU voi suoraan osoite (osoite on kokonaisluku, joka edustaa tiettyyn muistipaikkaan). Jos esimerkiksi binäärinen suoritin käyttää 32 bittiä edustamaan muistiosoitetta, se voi suoraan osoittaa 232 muistipaikkaa. Tämän rajoituksen kiertämiseksi ja useista muista syistä jotkin suorittimet käyttävät mekanismeja (kuten pankkien vaihtoa), joiden avulla lisämuistiin voidaan puuttua.,

suuremmilla sanakooilla varustetut suorittimet vaativat enemmän piirejä ja ovat näin ollen fyysisesti suurempia, maksavat enemmän ja kuluttavat enemmän tehoa (ja tuottavat siten enemmän lämpöä). Seurauksena, pienempi 4 – tai 8-bittinen mikro käytetään yleisesti nykyaikaisissa sovelluksissa, vaikka Prosessorien kanssa paljon suurempi sana kokoja (esimerkiksi 16, 32, 64, jopa 128-bittinen) ovat käytettävissä. Kun vaaditaan suurempaa suorituskykyä, suuremman sanakokonaisuuden (suuremmat tietoalueet ja osoitealueet) hyödyt voivat kuitenkin olla haittoja suuremmat. Suorittimella voi olla sanakokoa lyhyempiä sisäisiä datapolkuja koon ja kustannusten pienentämiseksi., Esimerkiksi, vaikka IBM: n System/360: n käskykanta oli 32-bittinen käskykanta, System/360 Malli 30 ja Malli 40 oli 8-bittinen data polkuja aritmeettinen looginen yksikkö, niin, että 32-bit lisää tarvitaan neljä sykliä, yksi kutakin 8 bittiä tekijät, ja vaikka Motorola 68000-sarjan käskykanta oli 32-bittinen käskykanta, Motorola 68000 ja Motorola 68010 oli 16-bit data polkuja aritmeettinen looginen yksikkö, niin, että 32-bit lisää tarvitaan kaksi jaksoa.,

saada joitakin etuja tarjoamia sekä alemmat ja ylemmät vähän pituudet, monet käskykannat ovat erilaisia bit leveydet kokonaisluku ja liukuluku tiedot, jolloin Prosessorit toteuttamisessa käskykanta on hieman eri leveyksiä eri osia laitteen. Esimerkiksi IBM System/360: n käskykanta oli ensisijaisesti 32 bit, mutta tuettu 64-bittinen liukuluku arvot helpottaa suurempaa tarkkuutta ja valikoima liukulukuja., System/360 Malli 65-vuotiaita oli 8-bit adder desimaalin ja kiinteän pisteen binary aritmeettinen ja 60-bit adder kelluva-point arithmetic. Monet myöhemmin CPU malleja käyttää vastaavia sekoitettu hieman leveyttä, varsinkin kun prosessori on tarkoitettu yleiskäyttöön käyttö, jossa kohtuullinen tasapaino kokonaisluku ja liukuluku valmiudet on tarvitaan.,

ParallelismEdit

Main artikkeli: rinnakkaislaskennan

Malli subscalar CPU, jossa se kestää viisitoista kello jaksoa loppuun kolme ohjeet

kuvaus peruskäyttö CPU tarjosi edellisessä osassa kuvataan yksinkertaisin muoto, että CPU voi kestää. Tämä tyyppi CPU, yleensä nimitystä subscalar, toimii ja suorittaa yhden käskyn yhden tai kaksi paloja tiedot kerrallaan, joka on pienempi kuin yhden käskyn kellojaksoa kohti (IPC < 1).,

Tämä prosessi aiheuttaa luonnostaan tehottomuutta Osalaajuisissa suorittimissa. Koska vain yksi käsky suoritetaan kerrallaan, koko CPU on odotettava, että ohje loppuun ennen siirtymistä seuraavaan käskyyn. Tämän seurauksena subscalar-suoritin saa” ripustettua ” ohjeisiin, jotka vievät useamman kuin yhden kellosyklin suorituksen loppuun. Jopa lisäämällä toinen execution unit (ks. alla) ei paranna suorituskykyä paljon, pikemminkin kuin yksi reitti on ripustaa, nyt kaksi reitit ovat ripustaa ja useita käyttämättömiä transistoreita on lisääntynyt., Tämä muotoilu, jossa CPU”s suorittamisen resursseja voi käyttää vain yksi ohje kerrallaan, voi vain mahdollisesti päästä skalaari suorituskyky (yhden käskyn kellojaksoa kohti, IPC = 1). Kuitenkin suorituskyky on lähes aina subscalar (vähemmän kuin yhden käskyn kellojaksoa kohti, IPC < 1).

Yrittää saavuttaa skalaari ja parempi suorituskyky on johtanut erilaisia suunnittelumenetelmiä, jotka aiheuttavat CPU käyttäytyä vähemmän lineaarisesti ja enemmän rinnakkain., Kun viitataan rinnakkaista Prosessoria, kaksi termejä käytetään yleensä luokitella nämä suunnittelun tekniikoita:

  • opetus-tason rinnakkaisuus (ILP), joka pyrkii lisäämään nopeutta, jolla ohjeet on teloitettiin sisällä CPU (eli lisätä käyttö-die toteutuksen resurssit);
  • tehtävä-tason rinnakkaisuus (TLP), jota varten lisätä useita säikeitä tai prosesseja, että CPU voi suorittaa samanaikaisesti.,

Jokainen menetelmä eroaa sekä tapoja, joilla ne on toteutettu, sekä suhteellinen tehokkuus heillä on varaa lisätä CPU”s suorituskykyä hakemuksen.

Opetus-tason parallelismEdit

Main artikkeli: Opetus-tason rinnakkaisuus

Perus viiden vaiheen putki. Parhaassa tapauksessa tämä putki voi ylläpitää suorittaneita yhden käskyn kellojaksoa kohti.,

Yksi helpoimmista menetelmistä saavuttaa lisääntynyt rinnakkaisuus on aloittaa ensimmäiset askeleet opetusta noudettaessa ja dekoodaus ennen opetusta päättyy suorittamista. Tämä on yksinkertaisin tekniikka tunnetaan opetusta pipelining, ja käytetään lähes kaikissa nykyaikaisissa yleiskäyttöiset Prosessorit. Pipelining mahdollistaa useamman kuin yhden ohjeen suorittamisen milloin tahansa hajottamalla suoritusreitin erillisiin vaiheisiin., Tämä erottaminen voi olla verrattuna kokoonpanolinjalla, jossa ohje on tehty enemmän täydellinen jokaisessa vaiheessa, kunnes se poistuu toteutus putki-ja on eläkkeellä.

Pipelining ei, kuitenkin, esitellä mahdollisuutta tilanteessa, jossa tulos edellisen toiminta on tarpeen suorittaa seuraava toimenpide; ehto usein kutsutaan tietojen riippuvuus konflikti. Selviytymään tämän, lisää on huolehdittava tarkistaa tällaisia ehtoja, ja viive osa opetusta putki, jos näin tapahtuu., Luonnollisesti, toteutuksessa tämä edellyttää ylimääräisiä piiri, niin liukuhihna-prosessorit ovat monimutkaisempia kuin subscalar niitä (joskaan ei kovin merkittävästi niin). A liukuhihna prosessori voi tulla hyvin lähes skalaari, esti vain putki torit (ohje menoja enemmän kuin yhden vuorokauden aikana vaiheessa).

yksinkertainen superscalar putki. Hakemalla ja toimittamalla kaksi ohjetta kerrallaan voidaan suorittaa enintään kaksi ohjetta kellojaksoa kohti.,

Edelleen parantamiseen, kun ajatus opetusta pipelining johti kehitystä menetelmä, joka vähentää vapaata aikaa CPU osia entisestään. Mallit, jotka on sanottu olevan superscalar ovat pitkän ohjeita putki ja useita identtinen toteutus yksiköissä, kuten load-store-yksiköitä, aritmeettis-loogisesta yksiköstä, floating-point yksiköitä ja osoite sukupolven yksiköt. Vuonna superscalar putki, useita ohjeet on luettu ja kulunut, jotta lähettäjä, joka päättää, onko ohjeita voidaan suorittaa rinnakkain (samanaikaisesti)., Jos näin on, ne lähetetään käytettävissä oleviin suoritusyksiköihin, jolloin useita ohjeita voidaan suorittaa samanaikaisesti. Yleensä, enemmän ohjeet superscalar CPU pystyy lähettämään samanaikaisesti odottamassa toteuttamista yksikköä, enemmän ohjeet valmistuu tiettynä aikana.

suurimpana vaikeutena superscalar-suoritinarkkitehtuurin suunnittelussa on tehokkaan lähettäjän luominen., Lähettäjää täytyy pystyä nopeasti ja oikein määrittää, onko ohjeita voidaan suorittaa rinnakkain, sekä lähettää ne niin kuin pitää niin paljon suoritusyksiköistä kiireinen kuin mahdollista. Tämä edellyttää, että ohjeputki täytetään mahdollisimman usein ja aiheuttaa tarpeen superscalar-arkkitehtuureissa merkittäville määrille suorittimen välimuistia. Se tekee myös vaaran välttäminen tekniikoita, kuten branch prediction, spekulatiivinen suoritus, rekisteröi uudelleennimeäminen, out-of-order execution ja kaupallisen muisti tärkeää ylläpitää korkeaa suorituskykyä., Yrittämällä ennustaa, mitkä haara (tai polku) ehdollinen opetus kestää, CPU voi vähentää monta kertaa, että koko putki on odotettava, kunnes ehdollinen ohje on valmistunut. Spekulatiivinen suoritus tuottaa usein vaatimaton suorituskyky kasvaa suorittamalla osia koodia, joka voi olla tarvitaan kun ehdollinen operaatio on valmis. Out-of-order-toteutus muuttaa jonkin verran toimeksiantoa, jossa ohjeet suoritetaan tietojen riippuvuuksista johtuvien viivästysten vähentämiseksi., Myös siinä tapauksessa, single instruction stream, multiple data stream—tapaus, kun paljon dataa sama tyyppi on käsiteltävä—, nykyaikaiset prosessorit voi poistaa osia putken niin, että kun yksi käsky suoritetaan monta kertaa, CPU ohittaa noutaa ja purkaa vaiheissa ja näin lisää huomattavasti suorituskykyä tietyissä tilanteissa, erityisesti erittäin yksitoikkoinen ohjelma, moottorit, kuten video-luomiseen ohjelmisto ja kuvankäsittelyä.,

tapauksessa, jossa osa superscalar CPU on ja osa ei, osa, joka ei ole kärsii suorituskyvyn rangaistus, koska aikataulutus torit. Intel P5 Pentium oli kaksi superscalar ALUs, joka voi hyväksyä yhden käskyn kellojaksoa kohti jokainen, mutta sen FPU ei voinut hyväksyä yhden käskyn kellojaksoa kohti. Näin ollen P5 oli kokonaisluku superscalar mutta ei kelluva piste superscalar. Intel”s seuraaja P5 arkkitehtuuri, P6, lisätty superscalar kykyjä sen liukuluku ominaisuuksia, ja siten tuotti merkittävästi floating-point instruction suorituskykyä.,

Molemmat yksinkertainen pipelining ja superscalar suunnittelu lisätä CPU”s ILP antamalla yhden prosessori suorittaa suorittamisen ohjeet hinnat ylitti yhden käskyn kellojaksoa kohti. Useimmat nykyaikaiset SUORITINMALLIT ovat ainakin jonkin verran superscalareja, ja lähes kaikki viime vuosikymmenellä suunnitellut Yleiskäyttöiset suorittimet ovat superscalareja. Myöhempinä vuosina joitakin painopiste suunnittelussa korkea-ILP tietokoneet on siirretty pois CPU”s laitteisto ja sen ohjelmisto on käyttöliittymä, tai käskykanta-arkkitehtuuri (ISA)., Strategia hyvin pitkä instruction word (VLIW) aiheuttaa joitakin ILP tulla hiljaista suoraan ohjelmisto, vähentämällä työn CPU on suoritettava lisätä ILP ja siten vähentää muotoilu”s monimutkaisuus.

Tehtävä-tasolla parallelismEdit

– Tärkeimmät artikkelit: Multithreading ja Multi-core prosessori

Toinen strategia saavuttaa suorituskyky on suorittaa useita säikeitä tai prosesseja samanaikaisesti. Tämä tutkimusala tunnetaan rinnakkaislaskentana. Flynnin taksonomiassa tämä strategia tunnetaan nimellä multiple instruction stream, multiple data stream (MIMD).,

yksi tähän tarkoitukseen käytetty tekniikka oli moniprosessointi (MP). Alkuperäinen maku tämä tekniikka tunnetaan symmetric multiprocessing (SMP), jossa pieni joukko Suorittimia jakaa yhtenäistä käsitystä niiden muistin järjestelmä. Tässä järjestelmässä jokaisella suorittimella on lisälaitteisto, joka ylläpitää jatkuvasti ajan tasalla olevaa muistinäkymää. Välttelemällä tunkkaisia muistikuvia suorittimet voivat tehdä yhteistyötä samassa ohjelmassa ja ohjelmat voivat siirtyä suorittimesta toiseen., Lisätä yhteistyötä Suorittimia kuin kourallinen, järjestelmät, kuten non-uniform memory access (NUMA) ja hakemisto-perustuu johdonmukaisuuteen pöytäkirjat otettiin käyttöön 1990-luvulla. SMP-järjestelmissä on rajoitettu pieni määrä Suorittimia, kun NUMA-järjestelmät on rakennettu tuhansia suorittimia. Aluksi moniprosessointi rakennettiin käyttämällä useita erillisiä suorittimia ja lautoja suorittimien välisen yhteenliittämisen toteuttamiseksi., Kun prosessorit ja niiden yhteen ovat kaikki toteutettu yhden sirun tekniikka tunnetaan nimellä chip-level multiprocessing (CMP) ja single chip multi-core prosessori.

myöhemmin tunnustettiin, että hienorakeinen parallelismi oli olemassa yhdellä ohjelmalla. Yksittäinen ohjelma voi olla useita säikeitä (tai toimintoja), jotka voidaan suorittaa erikseen tai rinnakkain. Joitakin varhaisimpia esimerkkejä tämän teknologian toteutettu tulo / lähtö käsittely, kuten suora muisti access erillisenä säiettä laskenta Lanka., Yleisempi lähestymistapa tämä teknologia otettiin käyttöön 1970-luvulla, kun järjestelmät oli suunniteltu toimimaan useita laskenta säikeitä rinnakkain. Tämä tekniikka tunnetaan nimellä multi-threading (MT). Tämä lähestymistapa pidetään enemmän kustannustehokas kuin multiprocessing, koska vain pieni määrä komponentteja sisällä CPU on toistettu tukea MT toisin kuin koko CPU tapauksessa MP. MT: ssä suoritusyksiköt ja muistijärjestelmä kätköineen jaetaan useiden kierteiden kesken., Huonona puolena MT on, että laitteisto tukee multithreading on enemmän näkyvissä ohjelmisto kuin MP ja näin esimies ohjelmistot, kuten käyttöjärjestelmät on tehtävä suurempia muutoksia tukemaan MT. Yksi tyyppi MT, joka toteutettiin tunnetaan ajallinen multithreading, jossa yksi säiettä suoritetaan, kunnes se on pysähtynyt odottaa dataa palata ulkoiseen muistiin. Tässä järjestelmässä, CPU olisi sitten nopeasti yhteydessä vaihtaa toiseen lanka, joka on valmis toimimaan, kytkin usein tehdään yksi CPU kellon sykli, kuten UltraSPARC T1., Toinen tyyppi MT on samanaikainen multithreading, jossa ohjeet alkaen useita säikeitä suoritetaan rinnakkain yhden CPU kellon aikana.

useita vuosikymmeniä alkaen 1970-luvulla 2000-luvun alussa, painopiste suunnittelussa korkean suorituskyvyn yleiskäyttöiset Prosessorit oli pitkälti saavuttaa korkea ILP kautta tekniikat, kuten pipelining, välimuistit, superscalar toteutus, out-of-order execution, jne. Trendi huipentui suuriin, vallanhimoisiin suorittimiin kuten Intel Pentium 4: ään., 2000-luvun alussa, CPU suunnittelijat olivat esti saavuttamasta korkeampaa suorituskykyä ILP tekniikoita, koska kasvava epäsuhta SUORITTIMEN toimintataajuudet ja keskusmuistin toimintataajuudet sekä kasvavat CPU power hajoamista, koska enemmän esoteerinen ILP-tekniikoita.

CPU suunnittelijat sitten lainattu ideoita kaupallinen computing markkinoilla, kuten liiketoimi käsittely, jossa yhteenlaskettu suorituskyky useita ohjelmia, joka tunnetaan myös nimellä throughput computing, oli tärkeämpää kuin suorituskyky yhden säiettä tai prosessia.,

Tämä käänteinen painotus on osoituksena leviämisen dual ja enemmän core prosessori malleja ja erityisesti, Intel”s uudempia malleja muistuttava vähemmän superscalar P6-arkkitehtuuriin. Myöhään malleja useita prosessori perheet näyttely CMP, mukaan lukien x86-64-ja Opteron -, Athlon 64 X2 -, SPARC-UltraSPARC T1, IBM POWER4 ja POWER5, sekä useita pelikonsoli Suorittimia, kuten Xbox 360″s triple-core PowerPC-suunnittelu -, ja PlayStation 3″s 7-core Solu mikroprosessori.,

Tiedot parallelismEdit

– Tärkeimmät artikkelit: Vektori-prosessori ja SIMD

vähemmän yleinen, mutta yhä tärkeä paradigma-prosessorit (ja todellakin, computing yleensä) käsittelee tietojen rinnakkaisuus. Aiemmin käsiteltyjä suorittimia kutsutaan kaikki jonkinlaisiksi skalaarilaitteiksi. Kuten nimestä voi päätellä, vektoriprosessorit käsittelevät useita datakappaleita yhden ohjeen yhteydessä. Tämä on vastakohta skalaariprosessoreille, jotka käsittelevät yhtä tietoa jokaista ohjetta varten., Käyttämällä Flynn”s taksonomia, nämä kaksi järjestelmät käsittelevät tiedot ovat yleisesti nimitystä single instruction stream, multiple data stream (SIMD) ja single instruction stream, single data stream (SISD), vastaavasti. Suuri apuohjelma luoda prosessorit, jotka käsittelevät vektorit tiedot piilee optimoimalla tehtäviä, jotka vaativat yleensä sama toimenpide (esimerkiksi summa tai dot product) suoritetaan suuri joukko tietoja. Klassisia esimerkkejä tällaisista tehtävistä ovat multimediasovellukset (kuvat, video ja ääni) sekä monenlaiset tieteelliset ja tekniset tehtävät., Ottaa huomioon, että skalaari-prosessori on täydellinen koko prosessin noudettaessa, dekoodaus ja suorittamalla jokainen ohje ja arvo joukko tietoja, vektori prosessori voi suorittaa yhden toiminnon suhteellisen suuri joukko tietoja yhdellä opetusta. Tämä on mahdollista vain, jos sovellus pyrkii vaatimaan monia vaiheita, jotka soveltavat yhtä toimintoa suureen datasarjaan.

Useimmat aikaisin vektori-prosessorit, kuten Cray-1, liittyivät lähes yksinomaan tieteellistä tutkimusta ja salauksen sovelluksia., Koska multimedia on kuitenkin siirtynyt suurelta osin digitaaliseen mediaan, tarve jonkinlaiselle SIMD: lle yleiskäyttöisissä prosessoreissa on tullut merkittäväksi. Pian sen jälkeen, kun sisällyttäminen floating-point yksiköitä, alkoi tulla arkipäivää yleiskäyttöiset prosessorit, tekniset ja toteutukset SIMD suoritusyksiköistä myös alkoi näkyä yleiskäyttöiset prosessorit. Jotkin näistä varhaisista SIMD-spesifikaatioista-kuten HP ”s Multimedia Acceleration eXtensions (MAX) ja Intel”s MMX – olivat vain kokonaislukuja., Tämä osoittautui merkittävä este joidenkin ohjelmistojen kehittäjät, koska monet sovellukset, jotka hyötyvät SIMD pääasiassa käsitellä liukulukuina. Asteittain, kehittäjät hienostunut ja uusittava nämä varhaiset mallit osaksi yhteistä moderni SIMD tekniset tiedot, jotka liittyvät yleensä yksi käskykanta-arkkitehtuuri (ISA). Joitakin merkittäviä moderneja esimerkkejä ovat Intel ” s Streaming SIMD laajennukset (SSE) ja PowerPC-liittyvä AltiVec (tunnetaan myös nimellä VMX).


Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *