Non-Uniform Memory Access

Од Википедија, слободната енциклопедија
Прејди на: содржини, барај

Non-Uniform Мемориски Пристап[уреди]

Не-единствен мемориски пристап или Не-единствена мемориска архитектура е дизајн на компјутерска меморија користена во мултипроцесорите, каде што времето за пристап до меморијата зависи од локацијата на меморијата во однос на процесорот. Со NUMA, процесорот може да пристапи до сопствената локална меморија побрзо од нелокалната меморија, тоа е, меморија локална за друг процесор или меморија поделена помеѓу повеќе процесори. Архитектурата NUMA во скалата на архитектури, логички следува после архитектурата на симетричното мултипроцесирање (SMP). Нивниот комерцијален развој дошол како резултат на работат на Burroughs (подоцна Unisys), Convex Computer(подоцна Hewlett-Packard), Silicon Graphics, Sequent Computer System, Data General и Digital во текот на ’90 години. Техниките развиени од овие компании подоцна ќе бидат вклопени во оперативните системи на Unix, и оние слични на него, и на некој начин во Windows NT.

Основен концепт[уреди]

Модерните процесори работат значително побрзо отколку главната меморија на која тие се прикачени. Во раните денови на пресметувањето и процесирањето на податоците, процесорот работел побавно отколку неговата меморија. Со настапувањето на првиот супер-комјутер и брза пресметка во ’60 години, се преминало на погорно ниво на процесирање. До тогаш, процесорите “гладувале за податоци”, морале да закочат додека чекале пристапот до меморијата за биде завршен. Многу од дизајните на суперкомпјутери во периодот на ’80 и ’90 години биле фокусирани на обезбедување на мемориски пристап со голема брзина, како спротивност на брзите процесори, дозволувајќи им да работат на големи количества на податоци со брзина на која други системи не можат да им се приближат. Огранигувањето на бројот на мемориски пристапи го овозможи клучот за обезбедување на висок перформанс од модерните компјутери. Oва значи инсталирање на постојано растечка големина на кеш-меморија со голема брзина и користење на по софистицирани алгоритми за да се избегнат “кеш-пропусти”. Но драматицното зголемување на големината на оперативните системи и на апликациите кои работат на нив, генерално ги имаат совладано овие подобрувања на кеш-процесирањето. Мултипроцесорските системи го прават проблемот знацително полош. На овој начин, во еден одреден момент само еден процесор може да пристапи до меморијата. NUMA се обидува да го лоцира овој проблем преку обезбедување посебна меморија за секој процесор, избегнувајќи го судирот кога неколку процесори се обидуваат да пристапат до истата меморија. За проблеми кои вклучуваат ширење на податоци (заедничко за сервери и слични апликации), NUMA може да го подобри перформансот преку единствена поделена меморија , преку поделбана мемориските банки. Секако, не секој податок завршува ограничен на една задача, што значи дека повеќе од еден процесор може да ги бара истиот податок. За справување со овие случаеви, NUMA системите вклучуваат дополнителен хардвер или софтвер за движење на податоците помеѓу мемориските банки. Оваа операција предизвикува ефект на успорување на процесорите прикачени на тие банки, така да целосната брзина зголема преку НУМА ќе зависи од точниот број на задачи кои се извршуваат на системот во одреден момент.

Ќеш кохерентна NUMA (ccNUMA)[уреди]

Скоро сите архитектури на процесорите користат мал износ на многу мала не-поделена меморија позната како КЕШ. Со НУМА, одржувањето на кохерентноста на кеш меморијата преку поделена меморија, има значајни административни трошоци. Иако наједноставна да се издизајнира и изгради, некохерентните-кеш NUMA системи стануваа премногу сложени да програмираат во стандардниот програмерски модел на VON NEUMANN архитектурата. Како резултат на тоа, сите НУМА компјутери продадени на пазарот користат специјално наменски хардвер за да ја одржуваат кохерентноста на кешот, и така се сврстуваат како ќеш кохерентна NUMA, или ccNUMA. Типично, ова се случува со користење на интер-процесорска комуникација помеѓу кеш контролерите за да се задржи конзистентен мемориски облик кога повеќе од еден кеш ја меморија истата моемориска локација. Од таа причина, ccC може да работи лошо кога повеќе процесори се обидуваат да пристапат до истата мемориска област во брз редослед. Подршката од оперативниот систем за NUMA се обидува да ја намали фрекфенцијата на овој тип на пристап преку алокација на процесорите и меморијата на начин близок за NUMA и преку избегнување на алгоритми за распоредување и заклучување кои го прават пристапот кој не е блисок на NUMA потрабен. Алтернативно, кеш-кохеренстност протоколите како MESIF протоколот се обидува да ја намали потребната комуникација за одржување на кеш-кохерентноста. Scalable Coherent Interface (SCI) е IEEE стандард кој го дефинира протоколот за кеш кохерентност за да се избегнат ограничувањата за скаларност пронајдени во раните мултипроцесорски системи. SCI е користен како основа за Numascale, NumaConnect технологијата. Сегашните ccNUMA системи се мултипроцесорски системи базирани на AMD Opteron, кој може да биде применет без екстерна логика, и Intel Italium, кој бара чип-сетови за да го подржи НУМА. Примери на ccNUMA чип-сетови се SGI Shub (Super hub), Intel E8870, HP sx2000, и оние пронајдени во системите базирани на NEC Itanium. Раните ccNUMA системи како оние од Silicon Graphics базирани на MIPS процесорите и DEC Alpha 21364 (EV7) процесорот. Интел го објави воведувањето на НУМА во неговиот x86 и Itanium сервери во доцната 2007 со Nehalem и Tukwila процесори. И двете семејста на процесори ќе делат заеднички чип-сет; интерконекцијата е нарецена Quick Path Interconnect (QPI).

Референци[уреди]

Оваа статија оригинално е базирана на материјали од Free On-line Dictionari of Computing, кој е лиценциран под GFDL.

Надворешни Линкови[уреди]