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 .
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ä.
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 )).
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 .
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ä.
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:
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 .
prosessoritekniikat | Digitaaliset|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkkitehtuuri | |||||||||
Ohjesarjan arkkitehtuuri | |||||||||
koneen sana |
| ||||||||
Rinnakkaisuus |
| ||||||||
Toteutukset | |||||||||
Komponentit | |||||||||
Virranhallinta |