КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Реализации
Преимущества и недостатки Архитектура VLIW. VLIW (англ. very long instruction word — «очень длинная машинная команда») — архитектура процессоров с несколькимивычислительными устройствами. Характеризуется тем, что одна инструкция процессора содержит несколько операций, которые должны выполняться параллельно. Фактически это «видимое программисту» микропрограммное управление, когда машинный код представляет собой лишь немного свёрнутый микрокод для непосредственного управления аппаратурой. В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения между ними работы решается аппаратно. Это сильно усложняет дизайн процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство должно выполнять какую команду. VLIW можно считать логическим продолжением идеологии RISC, расширяющей её на архитектуры с несколькими вычислительными модулями. Так же, как в RISC, в инструкции явно указывается, что именно должен делать каждый модуль процессора. Из-за этого длина инструкции может достигать 128 или даже 256 бит. Рассмотрим работу модельного VLIW-процессора с двумя арифметическо-логическими устройствами (АЛУ). Пусть нам надо сложить четыре числа, находящиеся в регистрах R1, R2, R3 и R4. Тогда псевдокод может выглядеть так: R5=R1+R2, R6=R3+R4; каждое АЛУ складывает свою пару чисел R0=R5+R6, NOP; первое АЛУ находит сумму, второе простаиваетПодход VLIW сильно упрощает архитектуру процессора, перекладывая задачу распределения вычислительных устройств на компилятор. Поскольку отсутствуют большие и сложные узлы, сильно снижается энергопотребление. В то же время, код для VLIW обладает невысокой плотностью. Из-за большого количества пустых инструкций для простаивающих устройств программы для VLIW-процессоров могут быть гораздо длиннее, чем аналогичные программы для традиционных архитектур. Архитектура VLIW выглядит довольно экзотической и непривычной для программиста. Из-за сложных внутренних зависимостей кода, программирование на уровне машинных кодов для VLIW-архитектур человеком вручную является достаточно сложным. Приходится полагаться на оптимизацию компилятора. Одни из первых VLIW-процессоры появились в конце 1980-х и были разработаны компанией Cydrome.[1] В чистом виде архитектуру VLIW имеют процессоры TriMedia фирмы Philips и семейство DSP C6000 фирмы Texas Instruments.[2] Микропроцессор Transmeta Crusoe содержит слой двоичной совместимости с архитектурой x86, который компилирует инструкции во внутренний формат процессора (code morphing). Ядро Crusoe является VLIW-процессором.[3] Микропроцессор Intel Itanium имеет 64-битную систему команд EPIC-процессора с явным параллелизмом, которая является одним из вариантов VLIW. Многопроцессорный вычислительный комплекс «Эльбрус-3» и микропроцессоры серии «Эльбрус» («Эльбрус 2000», «Эльбрус S») являются VLIW-процессорами.[4] Процессоры, выпускаемые фирмой Tilera, также имеют VLIW-архитектуру.[5] VLIW также получила хорошее распространение на рынке GPU, так, видеопроцессоры AMD/ATI Radeon начиная с R600 и до современных имеют VLIW архитектуру.[6] [7]В последнем поколении (Southern Islands) компания AMD/ATI отошла от подхода VLIW[8] Компилятор как приложение, распараллеливающее программу. Автоматический Распараллеливатель это инструмент для поиска участков допускающих параллельное исполнение в коде, написанном на последовательном языке программирования. В некоторых случаях Автоматический Распараллеливатель модифицирует код для увеличения числа таких участков или же их размеров. Автоматический Распараллеливатель использует библиотеки, поддерживающие стандартOpenMP для исполнения параллельного кода, в текущей реализации используется библиотека libgomp. Однако, Автоматический Распараллеливатель может быть перенесен на любую библиотеку, поддерживающую все необходимые интерфейсы. Текущая реализация распараллеливает только цикловые участки, в ближайшем будущем также предполагается распараллеливать и секции (ациклические части последовательной программы), в частности, содержащие вызовы. В настоящее время Автоматический Распараллеливатель работает только с GCC, код которого был нами модифицирован. Чтобы использовать Автоматический Распараллеливатель Вам нужно иметь:
Модифицированный gcc компилятор доступен как приложение для x86 Linux, так и в исходных кодах. Автоматический распараллеливающий блок является продуктом, изолированным от gcc. Он создан на основе Универсальной Библиотеки Трансляции и является нашей интеллектуальной собственностью. Автоматический распараллеливающий модуль доступен как приложение для x86 Linux. Пучок команд. Структура пучка. Предикативный регистр.
Дата добавления: 2014-01-05; Просмотров: 449; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |