perinnöistä aikaisemmat mallit, kuten Babbage on ero moottorin ja mainframe punch card systems 1970, on merkittävä vaikutus nykypäivän tietojärjestelmien. Minun ensimmäinen artikkeli tässä historiallinen sarja, Tietokone historia ja nykyaikaiset tietokoneet ylläpitäjille, olen keskustellut useita esiasteita nykyaikaisen tietokoneen ja luetellaan ominaisuudet, jotka määrittävät, mitä me kutsumme tietokoneen tänään.,
tässä artikkelissa käsittelen keskitettyä prosessointiyksikköä (CPU), mukaan lukien sen komponentit ja toiminnot. Monet aiheet viittaavat takaisin ensimmäiseen artikkeliin, joten muista lukea se, jos et ole jo.
central processing unit (CPU)
CPU nykyaikaisissa tietokoneissa on ruumiillistuma ”mill” in Babbage on ero moottorin. Termi central processing unit alkunsa jo vuonna sumujen tietokoneen aikaa, kun yksi massiivinen kaappi sisälsi piiri tarvitse tulkita kone-tason ohjelma, ohjeet ja suorittaa toimintoja toimitetut tiedot., Keskusyksikkö suoritti myös kaiken käsittelyn kaikkiin kiinnitettyihin oheislaitteisiin. Oheislaitteita olivat tulostimet, kortinlukijat ja varhaiset tallennuslaitteet, kuten rumpu-ja levyasemat. Moderni oheislaitteet on merkittävä määrä laskentatehoa itseään ja pois-ladata joitakin käsittely tehtäviä CPU. Tämä vapauttaa suorittimen tulo – / lähtötehtävistä siten, että sen teho kohdistuu käsillä olevaan ensisijaiseen tehtävään.
varhaisissa tietokoneissa oli vain yksi suoritin ja ne pystyivät suorittamaan vain yhden tehtävän kerrallaan.,
säilytämme aikavälillä CPU tänään, mutta nyt se viittaa prosessori paketti tyypillinen emolevy. Kuvassa 1 on vakiona Intel-prosessoripaketti.
Kuva 1: Intel Core i5-prosessori paketti (Jud McCranie via Wikimedia Commons, CC BY-SA 4.0).
tässä ei oikeastaan ole muuta nähtävää kuin itse prosessoripaketti. Prosessoripaketti on siru, joka sisältää prosessorin(suoritimet) suljettuna metalliastiaan ja asennettuna pieneen painettuun piirilevyyn (PC)., Paketti yksinkertaisesti pudotetaan paikalleen emolevyn suorittimen pistorasiaan ja kiinnitetään lukitusvivun järjestelyllä. SUORITINJÄÄHDYTIN kiinnittyy prosessoripakettiin. On olemassa useita erilaisia fyysisiä pistorasioita, joissa on tietty määrä yhteystietoja, joten oikean paketin saaminen emolevyn pistorasiaan on välttämätöntä, jos rakennat omia tietokoneita.
miten suoritin toimii
katsotaan suoritinta tarkemmin. Kuva 2 on käsitteellinen kaavio hypoteettisesta suorittimesta, jotta voit visualisoida komponentit helpommin., RAM-muistia ja järjestelmäkelloa varjostetaan, koska ne eivät kuulu suorittimeen ja ne näytetään vain selkeyden vuoksi. Myöskään suorittimen kellon ja ohjausyksikön välisiä yhteyksiä suorittimen komponentteihin ei piirretä. Riittää, kun sanotaan, että kellon ja ohjausyksikön signaalit ovat erottamaton osa jokaista muuta komponenttia.
Kuva 2: yksinkertaistettu käsitteellinen kaavio tyypillinen CPU.
Tämä muotoilu ei näytä erityisen yksinkertaiselta, mutta todellisuus on vielä monimutkaisempi., Tämä luku riittää tarkoituksiimme olematta liian monimutkainen.
aritmeettislooginen yksikkö
aritmeettislooginen yksikkö (ALU) suorittaa aritmeettisia ja loogisia toimintoja, jotka ovat työn tietokone. A-ja B-rekistereissä on syöttötiedot, ja akku saa toiminnan tuloksen. Opetusrekisterissä on ohje, jonka ALU: n on tehtävä.
esimerkiksi kahta numeroa lisättäessä yksi numero sijoitetaan a-rekisteriin ja toinen B-rekisteriin. ALU suorittaa lisäyksen ja laittaa tuloksen kertymään., Jos toimenpide on looginen, vertailtavat tiedot sijoitetaan syöttörekistereihin. Vertailun tulos, 1 tai 0, laitetaan kertymään. Onko tämä looginen tai aritmeettinen operaatio, varaajan sisältö on sitten sijoitettu osaksi välimuistin sijainti varattu ohjelman tulos.
on olemassa muunlainen toiminta, jonka ALU suorittaa. Tuloksena on muistissa oleva osoite, jonka avulla voidaan laskea uusi sijainti muistissa lastausohjeiden aloittamiseksi. Tulos sijoitetaan ohjeosoittimen rekisteriin.,
Ohje rekisteröidä ja osoitin
ohje osoitin määrittää sijainnin muistiin, joka sisältää seuraavan opetuksen, joka suoritetaan CPU. Kun CPU suorittaa toteuttamista nykyinen ohje, seuraava ohje on ladattu osaksi opetusta rekisteröidä muistista sijainti huomautti, että opetusta osoitin.
sen Jälkeen, kun ohje on ladattu osaksi opetusta rekisteröidy, ohje rekisteröidä osoitinta kasvatetaan yhdellä opetus-osoite. Inkrementoinnin avulla se voi olla valmis siirtämään seuraavan ohjeen opetusrekisteriin.,
välimuisti
suoritin ei koskaan suoraan pääse RAM-muistia. Nykyaikaisissa suorittimissa on yksi tai useampi välimuistikerros. Suorittimen kyky suorittaa laskelmia on paljon nopeampi kuin RAM: n kyky syöttää dataa suorittimelle. Syyt tähän eivät kuulu tämän artikkelin, mutta aion tutkia sitä tarkemmin seuraavassa artikkelissa.
Välimuisti on nopeampi kuin järjestelmän RAM-muistia, ja se on lähempänä CPU, koska se on prosessori siru. Välimuisti tarjoaa tietojen tallennuksen ja ohjeet, joiden avulla suoritin ei voi odottaa tietojen noutamista RAM-muistista., Kun CPU tarvitsee tietojen—ja program-ohjeet pidetään myös data—välimuistin määrittää, onko tiedot on jo asuinpaikka ja tarjoaa sen CPU.
Jos pyydettyjä tietoja ei ole välimuistista, se haetaan RAM-muistia ja käyttää ennustavia algoritmeja liikkua enemmän tietoja RAM-välimuisti. Välimuistin ohjain analysoi pyydetyt tiedot ja yrittää ennustaa, mitä muita tietoja tarvitaan RAM. Se lataa odotetut tiedot välimuistiin., Pitämällä joitain tietoja lähempänä suoritinta RAM-muistia nopeammassa välimuistissa suoritin voi pysyä kiireisenä eikä tuhlata dataa odottavia syklejä.
yksinkertaisessa SUORITTIMESSAMME on kolme välimuistitasoa. Tasoilla 2 ja 3 on suunniteltu ennustaa, mitä tietoja ja program ohjeita tarvitaan ensi, liikkua, että tietoja RAM-muistia, ja siirrä se lähemmäs SUORITTIMEN olla valmis, kun sitä tarvitaan. Nämä välimuistin koot vaihtelevat tyypillisesti 1 MB 32 MB, riippuen nopeus ja käyttötarkoitus prosessorin.
tason 1 välimuisti on lähimpänä SUORITTINTA. SUORITTIMESSAMME on kahdenlaisia L1-välimuisteja., L1i on ohje välimuistin, ja L1d on data cache. Tason 1 välimuistikoot vaihtelevat tyypillisesti 64 KB: stä 512 KB: hen.
Muistinhallintayksikkö
muistinhallintayksikkö (MMU) hallinnoi tiedon virtausta päämuistin (RAM) ja suorittimen välillä. Se tarjoaa myös muistin suojaus vaaditaan moniajo ympäristöissä ja muuntaminen välillä virtuaalimuistin osoitteet ja fyysiset osoitteet.
suorittimen kello ja ohjausyksikkö
kaikki suorittimen komponentit on synkronoitava toimimaan sujuvasti., Ohjausyksikkö suorittaa tämän toiminnon nopeudella määräytyy kellotaajuudella ja on vastuussa ohjata toimintaa muiden yksiköiden käyttämällä ajoitus signaaleja, jotka ulottuvat koko SUORITTIMEN.
Random access memory (RAM)
Vaikka RAM-muistia, tai keskusmuistin, näkyy tässä kaaviossa ja seuraava, se ei ole todella osa CPU. Sen tehtävänä on tallentaa ohjelmia ja tietoja niin, että ne ovat käyttövalmiita suorittimen niitä tarvitessa.
Miten se toimii
Suorittimia työtä sykli, joka hallinnoi ohjausyksikkö ja synkronoida tietokoneen kello., Tätä sykliä kutsutaan suorittimen ohjesykliksi, ja se koostuu sarjasta nouda/dekoodaa/suorita komponentteja. Ohje, joka voi sisältää staattisia tietoja tai osoittimia muuttuviin tietoihin, haetaan ja sijoitetaan opetusrekisteriin. Ohje puretaan, ja kaikki tiedot sijoitetaan A-ja B-tietorekistereihin. Ohje toteutetaan A-ja B-rekisterien avulla, jolloin tulos laitetaan akkuun. Suoritin lisää sitten ohjeosoittimen arvoa edellisen pituudella ja alkaa uudelleen.
suorittimen perusopetussykli näyttää tältä.,
Kuva 3: perus CPU opetusta sykli.
nopeuden tarve
vaikka perusyksikkö toimii hyvin, tällä yksinkertaisella syklillä toimivia suorittimia voidaan käyttää entistä tehokkaammin. On olemassa useita strategioita lisäämällä PROSESSORIN suorituskykyä, ja katsomme kaksi niistä täällä.
ahtopaineen säätö ohje cycle
Yksi ongelma aikaisin CPU suunnittelijat on ollut hukkaan aikaa eri CPU osia., Yksi ensimmäisistä strategioista suorittimen suorituskyvyn parantamiseksi oli suorittimen opetussyklin osien päällekkäisyys suorittimen eri osien hyödyntämiseksi täydellisemmin.
esimerkiksi, kun nykyinen ohje on dekoodata, seuraava on haettu ja sijoitettu osaksi opetusta rekisteröidä. Heti kun näin on tapahtunut, ohjeosoitin päivitetään seuraavan ohjeen muistiosoitteella. Päällekkäisten opetussyklien käyttöä havainnollistetaan Kuvassa 4.,
Kuva 4: CPU opetusta jakson kanssa päällekkäin.
Tämä muotoilu näyttää mukavalta ja sileältä, mutta esimerkiksi I / O: n odottaminen voi häiritä virtausta. Joilla ei ole asianmukaisia tietoja tai ohjeita kätkön vaatii MMU löytää oikeat ja siirrä ne CPU, ja että voi kestää jonkin aikaa. Tietyt ohjeet vievät myös enemmän suorittimen syklejä täydentymään kuin toiset, mikä häiritsee sujuvaa päällekkäisyyttä.
kuitenkin tämä on tehokas strategia suorittimen suorituskyvyn parantamiseksi.,
Hyperthreading
toinen suoritinten suorituskyvyn parantamiseen tähtäävä strategia on hyperthreading. Hyperthreading saa yhden prosessorin ytimen toimimaan kuin kaksi Suorittinta tarjoamalla kaksi data-ja opetusvirtaa. Lisäämällä toinen ohje osoitin ja opetusta rekisteröityä meidän hypoteettinen SUORITIN, kuten Kuvassa 5, aiheuttaa se toimi kuin kaksi Prosessoria, suorittamalla kaksi erillistä opetusta purojen aikana jokaisen käskyn aikana. Myös, kun yksi suoritus stream pysähtyy odottaessaan tietoja-jälleen, ohjeet ovat myös tietoja-toinen suoritus stream jatkaa käsittelyä., Jokainen hyperthreadingia toteuttava ydin vastaa kahta Suorittinta sen kyvyssä käsitellä ohjeita.
Kuvio 5: käsitteellinen kaavio CPU hypersäikeistys.
muista, että kyseessä on hyvin yksinkertaistettu kaavio ja selitys hypoteettisesta SUORITTIMESTAMME. Todellisuus on paljon monimutkaisempi.
lisää terminologiaa
olen kohdannut paljon erilaista suorittimen terminologiaa., Terminologian määrittelemiseksi hieman selkeämmin tarkastellaan itse suoritinta käyttämällä lscpu
– käskyä.
yllä esitetty Intel-suoritin on paketti, joka kytkeytyy yhteen pistorasiaan emolevyllä. Prosessoripaketti sisältää kuusi ydintä. Jokainen ydin pystyy hypersäikeistys, joten jokainen voi suorittaa kaksi samanaikaista viestiketjut yhteensä 12 Suorittimia.
Omat määritelmät:
- Core – ydin on pienin fyysinen laitteisto-yksikkö pystyy suorittamaan tehtävä käsittely. Siinä on yksi ALU ja yksi tai kaksi tukirekisteriä., Toinen Rekisteri-ja tukipiirikokoelma mahdollistaa hyperthreadingin. Yksi tai useampi ydintä voidaan yhdistää yhdeksi fyysiseksi kokonaisuudeksi.
- CPU – looginen laitteistoyksikkö, joka kykenee käsittelemään yhden teloitusketjun. Moderni termiä central processing unit viittaa koko säikeiden määrä, että prosessori paketti pystyy suorittamaan samanaikaisesti. Yksiydinprosessori, joka ei tue hyperthreadingia, vastaa yhtä suoritinta. Tällöin suoritin ja ydin ovat synonyymejä., Yhdellä ytimellä varustettu hyperthreading-prosessori vastaa toiminnallisesti kahta Suorittinta. Kahdeksan ydintä sisältävä hyperthreading-prosessori vastaa toiminnallisesti 16 Suorittinta.
- paketti-fyysinen komponentti, joka sisältää yhden tai useamman ydimen, kuten kuvassa 1.
- Processor – 1) laite, joka käsittelee ohjelman ohjeita datan manipuloimiseksi. 2) käytetään usein synonyyminä paketille.,
- Socket – Joskus käytetään toista synonyymi paketti, mutta sen tarkemmin viittaa fyysiseen liitäntään emolevy, johon prosessori paketti on asetettu.
termejä socket, processor ja package käytetään usein vaihdellen, mikä voi aiheuttaa sekaannusta. Kuten näemme lscpu
komento tulokset edellä, Intel tarjoaa meille oma terminologia, ja olen sitä mieltä, että arvovaltainen lähde., Todellisuudessa me kaikki käytämme näitä termejä eri tavoin, mutta niin kauan kuin ymmärrämme toisiamme missä tahansa vaiheessa, sillä on todella merkitystä.
Huomaa, että prosessorin yläpuolella on kaksi 1-Tason välimuistit 512 KiB kukin, yksi ohjeet (L1i) ja yksi data (L1d). Taso 1 välimuisti on lähinnä CPU, ja se nopeuttaa asioita on ohjeita ja tietoja erillistä tässä vaiheessa. Tason 2 ja tason 3 välimuistit ovat suurempia, mutta ohjeita ja tietoja on rinnakkain kussakin.
mitä tämä kaikki tarkoittaa?
hyvä kysymys., Pääkehysten alkuaikoina jokaisella tietokoneella oli vain yksi suoritin, eikä se kyennyt pyörittämään useampaa kuin yhtä ohjelmaa samanaikaisesti. Keskusyksikköön voi ajaa palkkalistoilla, sitten varaston kirjanpito, asiakkaan laskutus, ja niin edelleen, mutta vain yksi sovellus voi ajaa kerrallaan. Jokaisen ohjelman piti päättyä ennen kuin järjestelmäoperaattori ehti aloittaa seuraavan.
jotkut varhaiset yritykset ajaa useita ohjelmia kerralla ottivat yksinkertaisen lähestymistavan ja niiden tavoitteena oli yhden suorittimen parempi hyödyntäminen., Esimerkiksi, program1 ja program2 olivat täynnä, ja program1 juoksi, kunnes se oli tukossa odottaa I/O-tapahtumaan. Siinä vaiheessa program2 kesti, kunnes se estettiin. Tätä lähestymistapaa kutsuttiin moniprosessoinniksi ja se auttoi hyödyntämään täysin arvokasta tietokoneaikaa.
Varhainen yritykset moniajo kaikki mukana kytkentä toteuttamisen yhteydessä yhden SUORITTIMEN hyvin nopeasti, välillä toteutus purojen useita tehtäviä. Tämä käytäntö ei ole totta multitasking kuten ymmärrämme sen, koska todellisuudessa vain yksi kierre toteutus käsitellään kerrallaan. Sitä kutsutaan oikeammin aikajakoksi.,
nykyaikaiset tietokoneet, älykelloista ja tableteista supertietokoneisiin, kaikki tukevat todellista multitaskingia useilla suorittimilla. Useiden suorittimien avulla tietokoneet voivat suorittaa monia tehtäviä samanaikaisesti. Kukin suoritin suorittaa omat tehtävänsä samaan aikaan kuin kaikki muut suorittimet. Kahdeksanydinprosessori, jossa on hyperthreading (eli 16 Suorittinta), voi suorittaa 16 tehtävää samanaikaisesti.
lopulliset ajatukset
katsoimme konseptoitua ja yksinkertaistettua suoritinta oppiaksemme hieman rakenteista. Olen tuskin rasvaton pinta prosessori toiminnallisuutta tässä artikkelissa., Voit oppia lisää ottamalla upotetut linkit tutkimiimme aiheisiin.
muista, että tämän artikkelin diagrammit ja kuvaukset ovat puhtaasti käsitteellisiä eivätkä edusta mitään varsinaista suoritinta.
seuraava osa tämän sarjan, katson RAM-muistia ja levyasemat kuten erilaisia varastointi-ja miksi kukin on tarpeen nykyaikaiset tietokoneet.