Moniprosessori

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 29. huhtikuuta 2016 tarkistetusta versiosta . tarkastukset vaativat 16 muokkausta .

Moniprosessori ( englannin sanasta  multiprocessor, multiprocessing [1] ) on moniprosessoristen tietokonejärjestelmien alaluokka, jossa on useita prosessoreita ja yksi osoiteavaruus , joka näkyy kaikille prosessoreille. Flynnin taksonomiassa moniprosessorit kuuluvat SM -MIMD- koneiden luokkaan. Moniprosessori käyttää yhtä kopiota käyttöjärjestelmästä yhdellä taulukoilla, mukaan lukien taulukot, jotka seuraavat vapaita muistisivuja .

Luokitus

Prosessorien roolien mukaan moniprosessorijärjestelmässä ne erottavat toisistaan: symmetriset moniprosessorit (SMP) - kaikilla prosessoreilla on sama rooli ja niillä on sama pääsy muistiin ja oheislaitteisiin sekä asymmetriset moniprosessorit (AMP) - prosessorit eri rooleja tai käyttää oheislaitteita eri tavalla. AMP-tekniikka oli vain siirtymävaihetta 60-luvulla, kunnes SMP-tekniikka kehitettiin.

Muistin osoitusmenetelmän mukaan on olemassa useita moniprosessoreita , mukaan lukien: UMA (Uniform Memory Access), NUMA (Epäyhtenäinen Memory Access) ja COMA (Cache Only Memory Access).

Lisäksi moniprosessorit voivat olla homogeenisia , kun kaikki järjestelmän prosessorit ovat samoja, tai heterogeenisia , kun järjestelmän prosessorit ovat eri tyyppisiä.

Ohjelmointi

Moniprosessorien ohjelmointimallissa voidaan käyttää kahta ohjelmointimallia : monisäikeistystä , jossa jokaisessa prosessorissa käynnistetään suoritussäie, ja ne vaihtavat tietoja keskenään jaettujen muuttujien kautta jaetussa muistissa tai (monimutkaisempi) viestien välitys , kun erillinen prosessi käynnistetään jokaisessa prosessorissa, ja ne kommunikoivat keskenään vaihtamalla viestejä. Monisäikeistystä käytetään joko eksplisiittisesti (käännetyissä ohjelmointikielissä järjestelmäsovellusliittymien kautta (esim. C / C++ :ssa POSIX Threadsin kautta ja boost::threadin tai std::threadin kautta C++:ssa C++11-standardin jälkeen) tulkitetuissa kielissä ( Java ja C# ) kielikonstruktioiden avulla, joko implisiittisesti ( deklaratiivisesti kääntäjäohjeiden avulla ( OpenMP ) tai kääntäjän itsensä toimesta automaattisesti ( High Performance Fortran )).

Historia

Moniprosessorikoneet (SMP/UMA) tuotiin markkinoille 1980-luvun lopulla ja 1990 -luvun alussa, aluksi minisupertietokoneina ( esimerkiksi Alliant- , Convex- , Sequent- , Encore- ja Synapse - tuotteet ) . , sitten tietojenkäsittelynä . palvelimia ja sai nopeasti suosion palvelinlaitteistomarkkinoilla . Ensimmäiset Intel 80386- ja Intel 486 -prosessoreihin perustuvat x86 -arkkitehtuurilla varustetut moniprosessorit olivat Compaq SystemPro -palvelimet, jotka tulivat markkinoille vuoden 1989 lopulla - 1990 alussa. Tarjousten kasvu x86 - moniprosessoripalvelinmarkkinoilla johti Intelin luomaan MultiProcessor Specification [2] , josta tuli de facto standardi x86 SMP -koneille useiden vuosien ajan .

Esimerkkejä SMP/UMA-järjestelmistä vuonna 1998 [3]
Järjestelmä prosessori Maksimi prosessorit
SGI Power Challenge MIPS R10000 36
DEC AlphaServer 8400 Alfa 21164 neljätoista
Sun E6000 UltraSPARC II kolmekymmentä
Sun E10000 UltraSPARC II 64
HP/kupera esimerkki PA-8000 16
Cray-T90 Cray Vector 32

Ensimmäiset ccNUMA - tyyppiset moniprosessorit olivat Kendall Square Researchin KSR1- tietokone ja Denelcorin Denelcor HEP 1980-luvun puolivälissä.

Esimerkkejä ccNUMA-järjestelmistä vuonna 1998 [4]
Järjestelmä prosessori Prosessorit solmua kohti Maksimi prosessorit
Data Yleistä AV-20000 Pentium neljä 32
Seuraava numero NUMA-Q 2000 Pentium neljä 32
SGI Origin 2000 MIPS R10000 2 128
HP Exemplar X-Class PA-8000 16 256
HP 9000 V-luokka

Myös moniprosessoreita ilman välimuistin koherenssia (nccNUMA) luotiin:

Esimerkkejä nccNUMA-järjestelmistä vuonna 1998 [5]
Järjestelmä prosessori Prosessorit solmua kohti Maksimi prosessorit
Cray-T3E Alfa 21164 2 2048
BBN TC-2000 Motorola MC88100 yksi 256
BBN TC-2000 Motorola 604 2 512

Tietojenkäsittelyelektroniikan miniatyrisoinnin kehitys mahdollisti useiden prosessorien sijoittamisen yhteen pakkaukseen tai yhdelle sirulle (English chip-level multiprocessing, CMP), luoden moniytimisprosessoreja . Tämä mahdollisti prosessorien suorituskyvyn lisäämisen yksinkertaisesti lisäämällä yksinkertaisen suunnittelun laskennallisten ytimien määrää perinteisten yritysten kellotaajuutta lisäämisen tai yksiytimisen prosessorin laskennallisen putkilinjan monimutkaisuuden sijaan. Samaan aikaan moniytimiset prosessorit käyttävät muistia tehokkaammin, toimivat monisäikeisten sovellusten kanssa, kuluttavat vähän virtaa eivätkä kuluta paljon virtaa, mikä on ihanteellinen tietokeskusten skaalaus.

Noin vuodesta 2005 lähtien kaikki kuluttajatietokonemarkkinoille tarkoitetut prosessorit on julkaistu moniytimisissä versioissa , eli ne ovat pohjimmiltaan pienoismoniprosessoreja (tarkemmin sanottuna SMP-koneita, joissa on UMA-muisti, tietyin varauksin). Tämän suunnan edelleen kehittäminen johti moniytimien moniprosessorien syntymiseen - järjestelmiin, joissa on useita prosessoreita, ja nämä prosessorit puolestaan ​​sisältävät useita ytimiä. Palvelimien yleisin versio palvelinkeskuksissa vuodelle 2016 on palvelin, jossa on kaksi 8-ytimistä Intel Xeon- , Oracle SPARC- tai IBM POWER -luokan prosessoria , jotka tukevat myös useiden säikeiden samanaikaista suorittamista laitteistossa .

Katso myös

Kirjallisuus

Muistiinpanot

  1. "1930–35; moni- + prosessi + -ing 1 " - Dictionary.com Unabridged: " moniprosessori Arkistoitu 26. joulukuuta 2015 Wayback Machinessa "
  2. Moniprosessorimääritykset . Haettu 17. lokakuuta 2013. Arkistoitu alkuperäisestä 9. tammikuuta 2017.
  3. Severance_Dowd, 1998 , s. 260.
  4. Severance_Dowd, 1998 , s. 263.
  5. Severance_Dowd, 1998 , s. 264.

Linkit