Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций Комп схем и АК 2011.doc
Скачиваний:
705
Добавлен:
10.02.2016
Размер:
13.66 Mб
Скачать

24.3. Контрольные вопросы

1. Характерные особенности RISC-архитектуры .

2. Назначение механизма перекрывающихся регистровых окон .

3. Характерные особенности архитектура ARM.

4. Назначение предиката в ARM.

5. Дополнительные технологии в ARM.

6. Технологии Thumb и Thumb2.

7. Технология Jazelle.

8. Технология NEON.

9. Технология VFP.

10. Система безопасности TrustZone Technology.

11. Упрощённая архитектура ядра ARM7TDMI.

12. Thumb декодирование и декомпрессия.

13. Блок-схема ядра ARM1020T.

Тема 18. Суперкомпьютеры. Параллельные вычислительные системы Лекция 25

25.1. Смена приоритетов в области высокопроизводительных вычислений

Потребности человека к производительности вычислительных систем постоянно растут. Одним из возможных решений является разработка и применение систем с массовым параллелизмом — кластеров, Grid-систем, многопроцессорных комплексов, систем на многоядерных процессорах.

Происходит смена приоритетов при разработке процессоров, систем на их основе и, соответственно, программного обеспечения. Направле­ние смены приоритетов связано с преодолением трёх, так называемых "стен", когда на смену прежним истинам приходят новые:

  • Энергетическая стена. Старая истина — энергия не стоит ничего, транзисторы дороги. Новая истина — дорога энергия, транзисто­ры не стоят ничего.

  • Стена памяти. Старая истина — память работает быстро, а опера­ции с плавающей запятой медленны. Новая истина — системную производительность сдерживает память, операции выполняются быстро.

  • Стена параллелизма на уровне команд. Старая истина — производи­тельность можно повысить за счет качества компиляторов и таких архитектурных усовершенствований, как конвейеры, внеочередное выполнение команд, сверхдлинное командное слово (Very Long Instruction Word, VLIW), явный параллелизм команд (Explicitly Parallel Instruction Computing, EPIC) и др. Новая истина — естест­венный параллелизм, команды допустимы и длинные, и короткие, но выполняются они параллельно, на разных ядрах.

Можно говорить о двух заметно разнящихся между собой тенденциях в процессе увеличения числа ядер. Одна носит название мультиядерность (multi-core). В этом случае предполагается, что ядра являются высокопроизводительными и их относительно немного, но согласно закону Мура их число будет периодически удваиваться. Основных недостатков два: первый — высокое энергопотребление, второй — высокая сложность чипа и, как следствие, низкий процент выхода готовой продукции. При производстве 8-ядерного процессора IBM Сell только 20% производимых кристаллов являются годными. Другой путь — многоядерность (many-core). В таком случае на кристалле собирается на порядок большее число ядер, но имеющих более простую структуру и потребляющих миливатты мощности. Сейчас количество ядер варьируется от 40 до 200, и если закон Мура будет выполняться и для них, то можно ожидать появления процессоров с тысячами и десятками тысяч ядер.

Традиционным средством повышения производительности процессоров всегда было увеличение тактовой частоты, но рост потребления энергии и проблемы с отводом тепла заставили разработчиков вместо этого наращивать количество ядер. Однако, многоядерные процессоры, если все сводится к размещению большего числа классических простых ядер на одной подложке, нельзя воспринимать как решение всех проблем. Их чрезвычайно сложно программировать, они могут быть эффективны только на приложениях, обладающих естественной многопоточностью.

Энергетическая стена, стена памяти и стена параллелизма на уровне команд являются прямым следствием фон-неймановской архитектуры. Из-за технологических ограничений Джоном фон Нейманом была избрана схема, в основе которой лежит управляемый поток команд, программа, выбирающая необходимые для команд данные. Этим определяется канонический состав архитектурных компонентов, составляющих любой компьютер, — счетчик команд, код операции и адреса операндов; он остается неизменным по сей день. Все мыслимые и немыслимые усовершенствования архитектуры фон Неймана в конечном счете сводятся к повышению качества управления потоком команд, методам адресации данных и команд, кэшированию памяти и т.п. При этом последовательная архитектура не меняется, но сложность ее возрастает. Очевидно, что представление о компьютере как об устройстве, выполняющем заданную последовательность команд, лучше всего подходит для тех случаев, когда объем обрабатываемых данных невелик, а данные являются статическими. Но в современных условиях приходится сталкиваться с приложениями, где относительно небольшое количество команд обрабатывает потоки данных. В таком случае целесообразно предположить, что компьютером может быть и устройство, которое имеет каким-то образом зашитые в него алгоритмы и способно обрабатывать потоки данных. Такие компьютеры могли бы обладать естественным параллелизмом, а их программирование свелось бы к распределению функций между большим числом ядер.

Можно допустить существование следующих альтернативных схем. Одна, фон-неймановская, предполагает, что вычислительным процессом управляет поток команд, а данные, в основном статичные, выбираются из каких-то систем хранения или из памяти. Вторая схема основывается на том, что процессом вычислений управляют входные потоки данных, которые на входе системы попадают в подготовленную вычислительную инфраструктуру, обладающую естественным параллелизмом. С точки зрения реализации первая схема гораздо проще, кроме того, она универсальна, программы компилируются и записываются в память, а вторая требует специальной сборки нужной для определенной задачи аппаратной конфигурации. Вторая схема старше; пример тому — табуляторы, изобретенные Германом Холлеритом и с успехом использовавшиеся на протяжении нескольких десятилетий. Корпорация IBM достигла своего могущества и стала одной из самых влиятельных компаний в США, производя электромеханические табуляторы для обработки больших массивов информации, не требующей выполнения логических операций. Их программирование осуществлялось посредством коммутации на пульте, а далее устройство управления в соответствии с заданной программой координировало работу остальных устройств.

От машины фон Неймана антимашина отличается наличием одного или нескольких счетчиков данных, управляющих потоками данных. Она программируется с использованием потокового обеспечения (Flowware), а роль центрального процессора в ней играют один или несколько процессоров данных (Data Path Unit, DPU). Центральной частью антимашины может стать память с автоматической последовательностью (Auto-Sequence Memory)(рис.18.1).

Асимметрия между машиной и антимашиной наблюдается во всем, за исключением того, что антимашина допускает параллелизм внутренних циклов, а это значит, что в ней решается проблема параллельной обработки данных. В антимашине доступ к памяти обеспечивается не по адресу команды или фрагмента данных, записанному в соответствующий регистр, а посредством универсального генератора адресов (Generic Address Generator, GAG). Его преимущество в том, что он позволяет передавать блоки и потоки данных. В то же время компиляция, посредством которой создается специализированная под определенную задачу система, заключается в объединении нужного количества настроенных процессоров данных в общий массив (Data Process Array, DPA), на котором выполняются алгоритмы Flowware и который может быть реконфигурируемым.

Методология GAG непоследовательна, а потому обладает такими достоинствами, как возможность работы с двумерными адресами, что дает неоспоримые преимущества при работе с видеоданными и при выполнении параллельных вычислений. Счетчик данных (data counter) — альтернатива счетчику команд в машине фон Неймана; его содержимым управляет Flowware. Для новой методологии придумано и новое название — twin.paradigm; оно отражает симбиоз вычислительных ядер двух классов как обычных центральных процессоров, построенных по фон-неймановской схеме, так и процессоров данных, реализующих антимашины.

Рис.25.1. Антимашина

Главные отличия антимашины от машины фон Неймана в том, что антимашина по природе своей параллельна и к тому же нестатична — ее нужно программировать индивидуально, а не просто загружать различные программы в универсальную машину. Существуют наработки, которые хотя бы могут дать представление о том, как и из чего можно собрать антимашину. Реализовать ее можно средствами реконфигурируемого компьютинга.

Теоретически возможно существование трех подходов к созданию реконфигурируемых процессоров.

Специализированные процессоры (Application-Specific Standard Processor). Процессоры, имеющие набор команд, адаптированный к определенным приложениям.

Конфигурируемые процессоры (Configurable Processor). Своего рода "заготовки" для создания специализированных процессоров, содержат в себе необходимый набор компонентов, адаптируемый к требованиям приложений. В таком случае проектирование специализированного процессора оказывается проще, чем с чистого листа.

Динамические реконфигурируемые процессоры (Dynamically Reconfigurable Processor). Процессоры, содержащие стандартное ядро и расширяющее его возможности устройство, которое может быть запрограммировано в процессе исполнения; обычно это бывает программируемая логическая матрица (Field Programmable Gate-Array, FPGA).

В качестве еще одного пути развития вычислительных средств, сочетающего в себе и переход к параллельным системам и процессорам, и управление данными, можно назвать постепенный переход к системам на базе или с применением искусственного интеллекта. Действительно, если рассмотреть традиционное сравнение характеристик систем искусственного интеллекта с традиционными программными системами, видно, что в них подразумевается и адаптивность структуры, и высокий уровень параллелизма — таким образом, есть потенциальная возможность наиболее полно использовать возможности многоядерных архитектур.

Также следует отметить, что интерес к системам на базе искусственного интеллекта (ИИ) возрос — это связано отчасти и с успехами в области полупроводниковой техники, позволяющими получать достаточно компактные устройства, которые имеют достаточно ресурсов для поддержания приложений ИИ. Одним из направлений ИИ, близкого по структуре к параллельным системам, являются искусственные нейронные сети, которые обладают рядом свойств, делающих их незаменимыми во многих приложениях. Применительно к задачам — это способность к обобщению, выявлению скрытых закономерностей, способность настраиваться на задачу, отсутствие необходимости выстраивать аналитические модели. Применительно к организации вычислений — нейросети позволяют наиболее полно использовать аппаратные ресурсы системы (в частности, для параллельной системы возможна наиболее полная загрузка вычислительных ядер).