Кіріспе

Бір компьютер жүйесінде екі немесе одан көп орталық процессорды (CPU) пайдалану

Көппроцессорлылық – бір компьютер жүйесінде екі немесе одан көп орталық процессорды (CPU) пайдалану. 2009 жылғы оқулықта көппроцессорлы жүйе де осыған ұқсас сипатталған, бірақ процессорлар "жүйенің жадысының және кіріс-шығыс құрылғыларының кейбір немесе барлық бөлігін" ортақ пайдаланатынын атап көрсетілген; сондай-ақ, тығыз байланысты жүйе осы терминнің синонимі ретінде берілген. Операциялық жүйе деңгейінде көппроцессорлылық жүйеде бірнеше процесті бір мезгілде орындау үшін қолданылады, мұнда әр процесс жеке CPU немесе ядрода, бір процеске қарама-қарсы жұмыс істейді. Осы анықтама қолданылғанда, көппроцессорлылық кейде көпміндеттілікпен салыстырылады, ол тек бір процессорды пайдаланады, бірақ тапсырмалар арасында уақыт тілімдері бойынша ауысады (яғни, уақытты бөлісу жүйесі). Дегенмен, көппроцессорлылық – бірнеше процесті бірден, бір процессордан артық процессорды қолдана отырып, параллель түрде орындауды білдіреді. Осы мақаланың қалған бөлігінде көппроцессорлылық тек осы аппараттық мағынада қарастырылады. Флинн таксономиясында жоғарыда анықталған көппроцессорлар MIMD машиналары болып табылады. "Көппроцессор" термині көбінесе барлық процессорлар жадыны ортақ пайдаланатын тығыз байланысты жүйелерді білдіретіндіктен, көппроцессорлар MIMD машиналарының толық класын құрамайды, оларға хабар алмасатын көпкомпьютерлік жүйелер де кіреді.

Процессордың симметриясы

Көппроцессорлы жүйеде барлық процессорлар тең болуы мүмкін, немесе кейбіреулері арнайы мақсаттар үшін резервтелуі мүмкін. Аппараттық және операциялық жүйе бағдарламалық қамтамасыз ету дизайнының жиынтығы берілген жүйедегі симметрияны (немесе оның болмауын) анықтайды. Мысалы, аппараттық немесе бағдарламалық қамтамасыз ету талаптарына сәйкес, барлық аппараттық үзілістерге тек бір процессор ғана жауап беруі мүмкін, ал жүйенің қалған жұмысы процессорлар арасында тең бөлінеді; немесе ядролық режимдегі кодтың орындалуы тек бір процессормен шектелуі мүмкін, ал пайдаланушы режиміндегі код процессорлардың кез келген комбинациясында орындалуы мүмкін. Мұндай шектеулер қойылғанда көппроцессорлы жүйелерді жобалау оңайырақ, бірақ олар барлық процессорлар қолданылатын жүйелерге қарағанда тиімділігі төмен болады. Барлық процессорларды тең қарастыратын жүйелер симметриялық көппроцессорлық (SMP) жүйелер деп аталады. Барлық процессорлар тең емес жүйелерде жүйелік ресурстар бірнеше тәсілмен бөлінеді, оның ішінде асимметриялық көппроцессорлық (ASMP), біркелкі емес жадқа қол жеткізу (NUMA) көппроцессорлық және кластерлік көппроцессорлық.

Басты/көкті көп процессорлы жүйе

Мастер/құл мультипроцессорлы жүйеде мастер CPU компьютерді басқарады, ал құл CPU (лар) берілген тапсырмаларды орындайды. CPU-лар жылдамдық және архитектура жағынан мүлдем әртүрлі болуы мүмкін. Кейбір (немесе барлық) CPU-лар ортақ шинаны бөлісе алады, әрқайсысының жеке шинасы (жеке ресурстар үшін) болуы мүмкін, немесе олар ортақ байланыс жолынан басқа оқшауланған болуы мүмкін. Сол сияқты, CPU-лар ортақ RAM-ды бөлісе алады және/немесе басқа процессорлардың қол жеткізе алмайтын жеке RAM-ға ие болуы мүмкін. Мастер мен құл рөлі бір CPU-дан екіншісіне ауыса алады. Мейнфреймдік мастер/құл мультипроцессордың алғашқы екі мысалы – Bull Gamma 60 және Burroughs B5000. Микропроцессорлардың мастер/құл мультипроцессорлы жүйесінің алғашқы мысалы – 1982 жылғы ақпанда шыққан Tandy/Radio Shack TRS 80 Model 16 үстел компьютері, ол Microsoft-тың UNIX нұсқасы Xenix операциялық жүйесін (TRS XENIX деп аталады) қолданды. Model 16 екі микропроцессорға ие: 4 МГц жылдамдықпен жұмыс істейтін 8 биттік Zilog Z80 процессоры және 6 МГц жылдамдықпен жұмыс істейтін 16 биттік Motorola 68000 процессоры. Жүйе іске қосылғанда Z 80 мастер болып табылады және Xenix жүктеу процесі 68000 құлын инициализациялайды, содан кейін басқару 68000-ға ауыстырылады, одан кейін CPU-лар рөлдерін өзгертеді және Z 80 дискі, байланыс, принтер және желі, сондай-ақ пернетақта мен интеграцияланған монитордың барлық I/O операцияларына жауапты құл процессоры болады, ал операциялық жүйе мен қосымшалар 68000 CPU-да жұмыс істейді. Z 80 басқа да тапсырмаларды орындауға пайдаланылуы мүмкін. 1979 жылы шыққан бұрынғы TRS 80 Model II де мультипроцессорлық жүйе деп санауға болады, өйткені оның пернетақтасында Z 80 процессоры мен Intel 8021 микроконтроллері болды. 8021 Model II-ді бір жұқа иілгіш сыммен қосылған жеке ажыратылатын жеңіл пернетақтасы бар алғашқы үстел компьютері жүйесіне айналдырды, және ықтимал, арнайы микроконтроллерді қолданған алғашқы пернетақта, бұл екі қасиетті кейінірек Apple және IBM көшіріп алды.

Нұсқаулар мен деректер ағыны

Көппроцессорлы жүйелерде процессорлар бір нұсқаманы бірнеше контекстте (бір нұсқама, көп дерек немесе SIMD, көбінесе векторлық өңдеуде қолданылады), бір контекстте бірнеше нұсқама тізбегін (көп нұсқама, бір дерек немесе MISD, қатеге төзімді жүйелерде резервтеу үшін қолданылады және кейде конвейерлік процессорларды немесе гиперпотоктілікті сипаттау үшін қолданылады) немесе бірнеше контекстте бірнеше нұсқама тізбегін (көп нұсқама, көп дерек немесе MIMD) орындау үшін пайдаланылуы мүмкін.

Тығыз біріктірілген мультипроцессорлық жүйе

Тығыз байланысқан мультипроцессорлық жүйелерде шина деңгейінде қосылған бірнеше CPU болады. Бұл процессорлар ортақ орталық жадқа (SMP немесе UMA) қол жеткізе алады, немесе жергілікті және ортақ жады бар (SM) (NUMA) жад иерархиясына қатыса алады. IBM p690 Regatta – жоғары деңгейдегі SMP жүйесінің мысалы. Intel Xeon процессорлары бизнес-ПК үшін мультипроцессорлық нарықта үстемдік құрды және 2004 жылы AMD-нің Opteron процессорлар тізбегі шыққанға дейін x86 үшін жалғыз маңызды нұсқа болды. Процессорлардың екі тізбегі де өздерінің ішкі кэштеріне ие болды, бірақ ортақ жадқа қол жеткізуді қамтамасыз етті; Xeon процессорлары ортақ арна арқылы, ал Opteron процессорлары жүйелік RAM-ге тәуелсіз жолдар арқылы. Чиптік мультипроцессорлар, сондай-ақ көп ядролы есептеу деп те аталады, бір чипке орналастырылған бірнеше процессорды қамтиды және тығыз байланысқан мультипроцессорлық жүйенің ең жоғары деңгейі деп санауға болады. Көп процессорлы мейнфрейм жүйелері көбінесе тығыз байланысқан болады.

Ашық біріктірілген мультипроцессорлы жүйе

Ашық байланысқан мультипроцессорлық жүйелер (көбінесе кластерлер деп аталады) жоғары жылдамдықты байланыс жүйесі арқылы өзара байланысты бірнеше дербес, салыстырмалы түрде аз процессорлы, қанағаттандыратын компьютерлерге негізделген (Gigabit Ethernet жиі қолданылады). Linux Beowulf кластері – ашық байланысқан жүйенің мысалы. Тығыз байланысқан жүйелер жақсы өнімділік көрсетеді және физикалық тұрғыдан ашық байланысқан жүйелерден кішірек, бірақ тарихи тұрғыдан бастапқы инвестициялар жоғары болуы мүмкін және жылдам құнсыздануы мүмкін; ашық байланысқан жүйедегі түйіндер әдетте арзан, қанағаттандыратын компьютерлер болып табылады және кластерден шығарғаннан кейін дербес машиналар ретінде қайта пайдалануға болады. Электр энергиясын тұтыну да маңызды фактор. Тығыз байланысқан жүйелер кластерлерге қарағанда энергияны тиімдірек пайдаланады. Бұл тығыз байланысқан жүйелерде бастапқыда бірлесіп жұмыс істеу үшін жасалған компоненттерді пайдалану арқылы электр энергиясын тұтынуды айтарлықтай азайтуға болады, ал ашық байланысқан жүйелер мұндай жүйелерде пайдалану үшін арнайы ескерілмеген компоненттерді қолданады. Ашық байланысқан жүйелер әртүрлі жүйелерде әртүрлі операциялық жүйелерді немесе ОЖ нұсқаларын іске қосу мүмкіндігіне ие.