Съвременни проблеми на информатиката
Факултет по информационни технологии
Речник на термините в сборника"Компютърни системи"
Матрични изчислителни системи
Матричните изчислителни системи са най-често срещаните представители на класа SIMD, най-подходящи за решаване на проблеми, характеризиращи се с паралелизъм на независими данни. Матричната система се състои от много процесорни елементи, работещи паралелно и обработващи собствен поток от данни.
Целта на матричните изчислителни системи е обработката на големи масиви от данни. Матричните системи са базирани на масивен процесор, който се състои от масив от процесорни елементи (PE). Такива системи имат общо управляващо устройство, което генерира поток от команди, и голям брой PE, които работят паралелно и обработват всеки от своите потоци данни. Въпреки това, на практика, за да се осигури достатъчна ефективност на системата при решаването на широк кръг от проблеми, е необходимо да се организират връзки между процесорните елементи по такъв начин, че да се натоварят процесорите в максимална степен. Природата на връзките между SE определя различните свойства на системата. Подобна схема е приложима за векторни изчисления. Има значителна разлика между матрични и векторни системи. Матричният процесор интегрира много идентични функционални блокове (FB), логически комбинирани в матрица и работещи в SIMD стил. Не е толкова важно как е конструктивно изпълнена матрицата на процесорните елементи - на един чип или на няколко. Важен е самият принцип - FB са логично подредени в матрица и работят синхронно, тоест има само един команден поток за всички. Векторният процесор има вградени команди за обработка на вектори от данни, което позволяваефективно натоварване на тръбопровода от функционални блокове. На свой ред, векторните процесори са по-лесни за използване, тъй като инструкциите за обработка на вектори са по-удобен за човека програмен модел от SIMD.
Паралелната обработка на множество елементи от данни се осигурява от масив от процесорни елементи (MPE). Единичен команден поток, който управлява обработката на данни в MPE, се генерира от контролера на масива от процесорни елементи (CMP). CMP изпълнява последователен програмен код, изпълнява операциите на условни и безусловни скокове и превежда команди, данни и управляващи сигнали в MPE. Командите се обработват от елементите на процесора в режим на плътна синхронизация. Контролните сигнали се използват за синхронизиране на команди и трансфери, както и за управление на процеса на изчисление, по-специално, те определят кои PE от масива трябва да изпълняват операцията и кои не. Командите, данните и управляващите сигнали се предават от CMP към масива от процесорни елементи чрез разпръсквателната шина. Тъй като изпълнението на условни операции за разклоняване зависи от резултатите от изчисленията, резултатите от обработката на данни в масива от процесори се излъчват към CMP чрез резултантната шина.
За да предостави на потребителя удобен интерфейс при създаване и отстраняване на грешки в програми, такъв компютър обикновено включва преден VM (преден компютър). Ролята на такъв VM е универсален компютър, на който допълнително е възложена задачата да зарежда програми и данни в ILC. В допълнение, такова зареждане може да се извърши и директно от входно / изходни устройства, например от магнитни дискове. След зареждане, CMP започва да изпълнява програмата, излъчвайки съответните SIMD команди към MPE чрез шината за излъчване.
Разглеждайки PE масива, трябва да се има предвид, че засъхранение на множество набори от данни в него, в допълнение към набора от процесорни елементи, трябва да има много модули памет. Освен това в масива трябва да се реализира мрежа от взаимовръзки, както между PE, така и между процесорните елементи и модулите памет. По този начин терминът масив от процесорни елементи се разбира като блок, състоящ се от действителните процесорни елементи, модули памет и мрежа от връзки. Маскирането е възможно както на етапа на компилиране, така и на етапа на изпълнение, докато PE, изключени чрез задаване на съответните битове на маската на нула, са неактивни по време на изпълнение на командата.
Фронталната VM (FVM) свързва матричната система SIMD с външния свят, използвайки някой от мрежовите интерфейси, например Ethernet, както е в системата MasPar MP-1. Предната виртуална машина работи на операционна система, най-често подобна на UNIX. На FVM потребителите подготвят, компилират и отстраняват грешки в своите програми. Преди изпълнение програмите първо се зареждат от предния край на VM в контролера на масива от процесорни елементи, който изпълнява серийната част на програмата и разпределя паралелизираните инструкции и данни към процесорните елементи на масива. В някои VS, при създаване, компилиране и отстраняване на грешки в програми, CMP и предната VM се използват заедно. Различни компютри са подходящи за ролята на FVM. И така, в системата SM-2 работната станция SUN-4 действа като това, а в системата MasPar - DECstation 3000.
Контролер на масива на процесора
Контролерът на матрицата на процесорния елемент изпълнява сериенпрограмен код, изпълнява команди за разклоняване на програмата, превежда команди и управляващи сигнали към процесорни елементи. Когато се зарежда от FVM, програмата се въвежда чрез I / O интерфейса в паметта с произволен достъп на контролера на масива от процесорни елементи (RAM CMP). Командите за процесорни елементи и глобалната маска, формирани на етапа на компилация, също се зареждат чрез I / O интерфейса в командната и глобалната маска RAM (KGM RAM). След това контролерът започва да изпълнява програмата чрез извличане на една скаларна инструкция от KMP RAM или множество инструкции от KGM RAM. Скаларни команди - командите, които извършват операции върху скаларни данни, съхранявани в CMP, се изпълняват от централния процесор (CPU) на контролера. На свой ред командите, работещи с паралелни променливи, съхранени във всеки PE, се преобразуват в блока за извличане на команди в по-прости изпълнителни единици - нано-команди. Нанокомандите, заедно с маската, се изпращат през командната шина за PE, за да бъдат изпълнени в масив от процесорни елементи. Например, инструкция за добавяне на 32-битови думи в CMP на системата MRR се преобразува в 32 наноинструкции за еднобитово добавяне, които се обработват последователно от всеки PE. В повечето алгоритми по-нататъшният ред на изчисленията зависи от резултатите и/или флаговете на предишни операции. За да се осигури такъв режим в матричните системи, информацията за състоянието, съхранявана в процесорните елементи, трябва да бъде събрана в една дума и прехвърлена към CMP, за да вземе решение за разклоняване на програмата. Например в клаузата IF ALL (условие A) THEN DO B, оператор B ще бъде изпълнен, ако условие A е вярно във всички PE. За правилно активиране/деактивиране на елементи на процесора CMP трябва да знае резултата от проверката на условие A във всички PE. Такава информациясе предава на ILC чрез еднопосочна шина за резултати. В системата CM-2 тази шина се нарича GLOBAL. В системата MPP структура, наречена SUM-OR дърво, е организирана за същата цел. Всеки PE поставя съдържанието на своя еднобитов атрибутен регистър във входовете на дървото, което комбинира тази информация с помощта на логическа операция за добавяне и формира резултатна дума, използвана в MLC за вземане на решение.
Масив от процесорни елементи
В матричните SIMD системи широко разпространени са два основни типа архитектурна организация на масив от процесорни елементи. В първия вариант, известен като архитектура "обработващ елемент-обработващ елемент" ("PE-PE"), N обработващи елемента (PE) са свързани помежду си чрез комуникационна мрежа. Всеки PE е процесор с локална памет. Елементите на процесора изпълняват команди, получени от MLC чрез разпръсквателната шина и обработват данни, както съхранени в тяхната локална памет, така и идващи от MLC. Обменът на данни между елементите на процесора се осъществява чрез комуникационна мрежа, докато входно-изходната шина се използва за обмен на информация между PE и входно-изходните устройства. Резултатната шина се използва за транслиране на резултатите от отделни PE в контролера на масива от процесорни елементи. Благодарение на използването на локална памет, хардуерът на CS от разглеждания тип може да бъде изграден много ефективно. В много алгоритми дейността по пренос на информация е предимно локална, т.е. възниква между най-близките съседи. Поради тази причина архитектура, при която всеки PE е свързан само със своите съседи, е много популярна. MasPar MP-1, Connection Machine CM-2, GF11, DAP, MPP, STARAN, PEPE, ILLIAC IV могат да бъдат посочени като примери за изчислителни системи с разглежданата архитектура.
Вторият вид архитектура е "процесор-памет". В тази конфигурация двупосочна мрежа от връзки свързва N процесора с M модула памет. Процесорите се управляват от ILC чрез разпределителна шина. Обменът на данни между процесорите се осъществява както през мрежата, така и чрез модули памет. Преносът на данни между модулите памет и I/O устройствата се осигурява от I/O шината. Резултатната шина се използва за прехвърляне на данни от определен модул памет към CMP. Burroughs Scientific Processor (BSP), Texas Reconfigurable Array Computer TRAC могат да служат като примери за самолети с такава архитектура.
Структура на обработващ елемент
Повечето SIMD матрични системи използват прости RISC процесори с локална памет с ограничен капацитет като процесорни елементи. Например всеки PE от системата MasPar MP-1 се състои от четирибитов процесор с капацитет на паметта 64 KB. Системата MPP използва еднобитови процесори с 1 Kb памет всеки, докато в SM-2 процесорният елемент е еднобитов процесор с 64 Kb локална памет. Поради простотата на PE, масивът може да бъде реализиран като единична ултра-голяма интегрална схема (VLSI). Това дава възможност да се намали броят на връзките между микросхемите и съответно размерите на самолета. Така един VLSI в системата SM-2 съдържа 16 процесора (без блокове памет), а в системата MasPar MP-1 VLSI се състои от 32 процесора (също без блокове памет). В системата MP-2 има тенденция да се използват по-сложни микросхеми, по-специално 32-битови процесори с 256 KB памет всеки.
Неразделните компоненти на SE в повечето изчислителни системи са:
- аритметично логическо устройство (ALU);
- регистри на данни;
- мрежов интерфейс (SI), който можевключват регистри за пренос на данни;
- номер на процесора;
- регистър на флага за разрешаване на маска (F);
- локална памет.
Свързване и разединяване на процесорни елементи
Мрежи за взаимно свързване на процесорни елементи
Ефективността на мрежите за взаимно свързване на процесорните елементи до голяма степен определя възможната производителност на цялата матрична система. Използват се голямо разнообразие от мрежови топологии. Тъй като процесорните елементи в матричните системи работят синхронно, те също трябва да обменят информация по последователна схема и е необходимо да се осигури възможност за синхронно предаване от няколко PE източникакъм един PE приемник. Когато се използва само един регистър за пренос на данни за прехвърляне на информация в мрежовия интерфейс, това може да доведе до загуба на данни, поради което в редица самолети са предвидени специални механизми за предотвратяване на такава ситуация. И така, в системата SM-2 се използва оборудване, което комбинира съобщенията, получени от един PE. Обединението се осъществява чрез операции на аритметично и логическо събиране, наслагване на записи, намиране на по-малката и по-голямата от двете стойности. В някои SIMD системи, като MP-1, е възможно да се записват едновременно получени съобщения в различни локални клетки на паметта. Въпреки че трансферите на данни по мрежата се инициират само от активни PE, пасивните процесорни елементи също допринасят за тези операции. Ако активният PE инициира четене от друг PE, операцията се изпълнява независимо от състоянието на PE, от който се чете информация. Същото се случва и при запис.
Най-често срещаните топологии в матричните системи са решетъчни и хиперкубични. Така в ILLIAC IV, MRR и CM-2 всеки PE е свързан с четири съседни. В MP-1 и MP-2 всеки PE е свързан с осем съседни PE. В редица системи са реализирани многостепенни динамични мрежи от връзки (MP-1, MP-2, GF11).
Въпреки че изчислителната програма се съхранява в паметта на фронталната VM или понякога в MLC, входните и изходните данни на процесорните елементи и MLC могат също да се съхраняват във външна памет. Такива устройства с памет могат да бъдат свързани към масив от процесорни елементи и/или MLC чрез I/O канали или I/O процесори.
-
Литература
- Цилкер Б.Я. Организация на компютри и системи: учебник за университети / S.A. Орлов, Б.Я. Зилкер. - Санкт Петербург: Питър, 2011. - 688 с.