Програма „развитие на човешките ресурси 2007-2013 министерство на образованието и науката



Дата12.04.2017
Размер117.92 Kb.
#19002

ОПЕРАТИВНА ПРОГРАМА

„РАЗВИТИЕ НА ЧОВЕШКИТЕ РЕСУРСИ” 2007-2013

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

Схема BG051PO001-4.3.05 „Развитие на професионалното образование и обучение в сътрудничество с работодателите”

Инвестира във вашето бъдеще!

Договор: BG051PO001-4.3.05 – 0022

Име на проект: „Образователни паркове за развитие на професионално знание и компетенции в областта на компютърните технологии и системи в колаборация с IT сектора“

Бенефициент: Професионална гимназия по компютърни технологии и системи – гр. Правец

ДЕЙНОСТ 6. Разработване на електронно съдържание за специализираните
професионални курсове, заложени за професионално обучение в
4
образователни парка

КОМПЮТЪРНИ АРХИТЕКТУРИ III



TEMA: Архитектура на процесори EPIC (Explicitly Parallel Instruction Computing)

Паралелното изпълнение на инструкции може да се раздели на три основни задачи (1) проверка на инструкциите, връзките между тях и групиране на тези от тях, които могат да се изпълняват паралелно (2) разпределяне на инструкциите върху отделните хардуерни изпълнителни устройства (3) инициализиране на инструкциите и стартиране на инструкциите. Според класификацията на Рау и Фишер задачите са: определяне на зависимости (determine dependencies), определяне на независимости (determine independencies) и свързване на ресурси. Четирите основни класа паралелни архитектури се различават именно по това каква част от задачите се изпълняват на ниво софтуер и каква на ниво хардуер.

Таблица 1: Сравнение на четирите основни вида архитектури с паралелна обработка на инструкциите


 

Grouping

Fn unit asgn

Initiation

Superscalar

Hardware

Hardware

Hardware

EPIC

Compiler

Hardware

Hardware

Dinamic VLIW

Compiler

Compiler

Hardware

VLIW

Compiler

Compiler

Compiler



В показаната таблица се различават суперскаларни архитектури, EPIC архитектури, динамични VLIW архитектури и VLIW архитектури. Суперскаларните архитектури са традиционно решение за паралелно изпълнение на инструкции. При тях, както е посочено и по-горе, е необходимо инструкциите да се декодират, да се определят зависимостите, да се групират независимите инструкции и да се разпределят върху хардуерните изпълнителни устройства, като всичко това се изпълнява хардуерно. Компилаторът генерира проста последователност от инструкции, която би могла да се изпълни върху процесор с един инструкционен конвейр.

Като противоположност може да се приеме VLIW архитектурата. Тук цялата поддръжка на паралелизма се дължи на компилаторите, които изпълняват и трите задачи. Хардуерните устройства само изпълняват групираните в слотове подоперации на всяка инструкция. Проблем се явява преносимостта на приложения. Когато компилаторът компилира приложението той го подготвя за паралелна обработка на специфична архитектура, с даден брой изпълнителни устройства, определени закъснения на отделните операции, памет, регистри и други. Така полученото приложение може да се изпълнява само върху процесори с дадената архитектура.

В таблицата се вижда, че съществуват и междинни типове. Те са с ограничени отговорности на софтуера и хардуера за осигуряване на паралелно изпълнение. При тези архитектури компилаторът открива и групира инструкциите според зависимостите им, така че да могат да се изпълняват конкурентно. Не се съставя, обаче, конкретен план на изпълнението според хардуера. Тези архитектури според терминологията на Фишер и Рау се наричат независими архитектури (independence architecture) или още познати като EPIC архитектури. По този начин EPIC архитектурите представляват комбинация от предимствата на суперскаларните и VLIW архитектурите. Първата архитектура от този е представена 1988 година. Използва я Бъртън Смит в Horizon. При нея всяка инструкция съдържа разстоянието до най-близката независима инструкция. А тенденцията да се добавят допълнителни битове за по-късна употреба е започната още през 1978 година от Лии Хакби. Терминът EPIC произлиза от Explicitly Parallel Instruction Computing.

Друг вид междинна архитектура между суперскаларните процесори и VLIW процесорите са динамичните VLIW процесори. При тях откриването на зависимостите между инструкциите и разпределянето на инструкциите за съответните изпълнителни устройства се извършва от компилатора, но инициализирането по време на съответните инструкции се извършва от хардуера на системата. Така се използват предимствата на компилатора за откриване на зависимости, а също така и се дава възможност на хардуерът да реагира своевременно на различни събития, които се случват по време на изпълнението и компилаторът няма как да предвиди. Например компилаторът няма как да предвиди, че дадена, нужна на програмата, информация не се намира в кеша и в резултат изпълнението на инструкцията ще се забави.



Фигура 1. Преминаване от софтуер към хардуер при различните архитектури
Показани са различните нива, на които компилаторът може да предава инструкциите за изпълнение към хардуера. С прекъсната линия е показана възможността на компилаторът да се връща към по-горни стъпки с цел да постига по-добри резултати на следващите нива.

Нека илюстрираме казаното до тук с примери. Да си представим че имаме една машина с 2 load/store устройства, аритметично-логическо устройство и управляващо устройство с закъснения съответно 2, 2, 1, 2. Да се опитаме да изпълним простата операция на C C = A + B. Кодът са суперскаларен процесор ще представлява:

Load R1,A


Load R2,B
Add R3,R1,R2
Store C,R3

Хардуерът трябва да декодира инструкциите и да оцени, че зарежданията в регистри R1 и R2 са независими операции и могат да се изпълнят паралелно, докато операциите по събиране и съхраняване на резултата в паметта са зависими от всички останали и трябва да се изпълнят след останалите.

Ако се вгледаме в същата програма за VLIW архитектура ще открием, че компилаторът е напълно планирал и групирал инструкциите. Дори ги е разпределил върху различните устройства за описаната архитектура. Така планираният код няма да може да се използва за процесор с един инструкционен конвейр, докато този за суперскаларният ще може. В следващата таблица е показан планът за изпълнение на инструкциите за описаното устройство.

Таблица 2: План за изпълнение на инструкциите

1d/st unit 0

1d/st unit 1

integer alu

branch unit

Load R1,A

LoadR2,B

nop

nop

nop

nop

nop

nop

nop

nop

Add R3,R1,R2

nop

Store C,R3

nop

nop

nop


Вижда се слабата натовареност, която се осигурява за устройствата. От 16 полета за операции за дължина на инстукцията четири операции, едва четири са запълнени. Много процесори използват алгоритми за компресиране, с помощтта на които се получава по-голямо запълване. Използват го производители като Lucent StarCore, Philips TriMedia, Sun MAJC. Ако добавим прихващане на събития като липси в кеша, грешки и други архитектурата става динамична VLIW архитектура.

При EPIC инструкциите се съдържа информация за групиране на зависимите инструкции, като например идентификационни номера. Например:

Load R1,A


Load R2,B
Add R3,R1,R2
Store C,R3

Хардуерът на системата има възможността да разпредели инструкциите така, че двете зареждания да се изпълняват едновременно. Вижда се, че все още инструкциите не са разпределени по устройства.

Аналогия на описаното в документа можем да направим с конструирането на дървен стол. Да приемем че проектирането на дизайна на стола е програма, а физическото оформяне и сглобяване на отделните елементи е хардуер. Дизайнерът ще изпрати план на работилницата, която от своя страна е аналогия на процесора. Ако в работилницата има няколко машини и работници ще се наложи разпределянето на работата между тях. Трябва да се състави план на изпълнение, разпределящ задачите и изясняващ кои от тях могат да се изпълняват успоредно.

Таблица 3: Примерен план за работа в работилница



table saw

band saw

hand saw

Hammer

Cut Brace

Cut leg 0

 

 

Cut Top

Cut leg 1

 

Nail leg 0 to brace

 

 

 

Nail leg1 to brace

 

 

 

Nail legs to top


При аналогия със суперскаларния модел конструктор взима от дизайнера модела и планира работата в работилницата. При VLIW модела дизайнерът и ръководителят на работилницата са един и същи човек. Съставя се едновременно дизайна и се определя коя задача от кого ще се извърши. В работилницата единствено се извършва конкретната работа по плана. Да се работи в друга работилница с различен персонал и оборудване е невъзможно. (Аналогия с динамичната VLIW архитектура може да се направи, като в плана не е уточнено коя задача кога във времето ще започне и например оформянето на краката на стола започва след като парчетата дърво за отрязани.)

И да завършим с EPIC модела. При него на работилницата се представя дизайна на стола и независимите операции, които могат да се извършват. Например изрязването на крака, седалка и облегалка могат да се извършват паралелно, но за да започне сглобяването на целия стол е необходимо частите да са изрязани вече. Не се уточнява конкретните задачи от кого ще се изпълняват. Така същия документ представен на друга работилница ще доведе до конструирането на същия стол.

Изводи


От направените сравнения се вижда, че няма единен и категоричен победител сред системните архитектури и използваните инструкции. Всяка от тях има своите предимства и съответни недостатъци. За дадени нужди определена система инструкции е по-добра, за други - друга. Когато се избира какво да се използва трябва много внимателно да се анализира сложността на използвания хардуер и сложността на компилатора. Те, както става ясно от изложеното по-горе, взаимно се допълват и заместват. Комбинациите сложен хардуер – прост компилатор и обратното са двете крайности, които могат да се изберът. На практика, обаче, съществуват множество варианти, намиращи се между крайните състояния. Те са толкова, на колкото отделни и разграничими части може да се раздели процесът на превеждане на една програма от език за програмиране на високо ниво до машинен език.

Интерес представляват моментните тенденции и преминаването на масовото използване от един тип архитектура към друг. Тези процеси са временни и обратими във времето. Дължат се на моментното развитие на техниката. В определени периоди преимуществено се развива софтуерът, в други хардуерът. Това до голяма степен определя и сложността им, а и тяхната цена, което води до съответната тенденция при производителите.

Забелязва се все повече употреба на системи инструкции, при които варират ролите на компилаторът и хардуерната поддръжка. Това е добър вариант, тъй като позволява употреба според съответните нужди на потребителя. Вероятно тази тенденция ще се запази по-продължително време, докато отново при непрекъснатото съревнование софтуер-хардуер някой не вземе решителна преднина.

Примерни изпитни въпроси


1.Към кой тип инструкции се числят not, and, or, xor, shiftL и shiftR?

  • Инструкции за логическа обработка

  • Инструкции за аритметична обработка

  • Инструкции за трансвер на данни

  • Инструкции за конвертиране на данните

  • Към друг тип

2. Кога се появява системата инструкции RISС?



  • През 70-те години на 20 век

  • През 80-те години на 20 век

  • През 90-те години на 20 век

  • През 21 век

3. Какво означава съкращението VLIW?

  • Тип инструкции за пренос на данни

  • Very Large Instruction Word

  • Тип инструкции за съхранение на данни

  • Very Long Instruction Word

4. Дължината на една VLIW инструкция е:

  • Минимална

  • Варираща

  • Фиксирана

  • Максимална

5. Кои блокове липсват в блоковата схема на VLIW процесора, за разлика от тази на суперскаларния процесор?

  • Dispatcher

  • Recorder Buffer

  • Instruction Cache

  • Data Cache

  • Register File

6. Съкращението EPIC означава:



  • Система инструкции с фиксирана дължина

  • Система инструкции с варираща дължина

  • Electronic Privacy Information Center

  • Explicitly Parallel Instruction Computing

7. При коя от изброените архитектури се характеризира с най-сложен хардуер:

  • VLIW

  • Superscalar

  • Dynamic VLIW

  • EPIC

8. При коя от изброените архитектури се характеризира с най-сложен компилатор:



  • VLIW

  • Superscalar

  • Dynamics VLIW

  • EPIC

9. При кои тип архитектура кодът на дадена програма е най-кратък?

  • VLIW

  • RISС

  • CISС

  • Дължината на кода не зависи от типа използвана архитектура

10. При VLIW архитектурите:

  • Кешът е общ за всички изпълнителни устройства

  • Всяко изпълнително устройство има отделен кеш за данни

  • Няма кеш за данни

  • Нито едно от посочените

Дата: 30.04.2014 г. Изготвил:

/Ивайло Иванов/





Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница