Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Типовые структуры компьютерных систем




 

Классификация уровней программного параллелизма включает в себя шесть позиций:

· независимые задания,

· отдельные части заданий, программы и подпрограммы,

· циклы и итерации,

· операторы и команды,

· фазы отдельных команд.

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

Для каждого вида параллельных работ имеются структуры вычислительных средств, используемые в различных вычислительных системах. Верхние три уровня, включающие независимые задания, шаги или части заданий и отдельные программы, имеют единое средство параллельной обработки – мультипроцессирование, то есть многопроцессорные вычислительные системы, относящиеся к архитектуре МКМД. Программные циклы и итерации требуют использования векторной обработки (архитектура ОКМД). Операторы и команды, выполняемые ЭВМ, ориентированы на многофункциональную обработку (МКОД). Параллельная обработка фаз последовательно выполняемых команд приводит к организации конвейера команд, что реализовано во всех современных ЭВМ, включая ПК.

Рассмотрим возможные структуры вычислительных систем, которые обеспечивают перечисленные виды программного параллелизма.

 

ОКОД – структуры. Однопроцессорные структуры ВС

Можно перечислить много улучшений классической структуры ЭВМ, ставших в настоящее время определенными стандартами при построении новых ЭВМ: иерархическое построение памяти ЭВМ, появление сверхоперативной памяти и кэш-памяти, относительная и косвенная адресация памяти, разделение процессов ввода-вывода и обработки задач, появление систем прерывания и приоритетов и т.д.

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

Например, раньше только суперЭВМ объединяли в своем составе суперскалярную и векторную (матричную) обработку. Теперь же эти свойства характерны практически для всех современных микропроцессоров различных производителей (Pentium IV фирмы Intel, Athlon – фирмы AMD, Alpha фирмы Dell, Ultra Spark – фирмы Sun, PA-RISC фирмы Hewlett Packard, Power PC фирмы IBM, MIPS фирмы SGI и др.).

 


Если компьютер способен одновременно выполнять несколько последовательных команд программы, то он называется суперскалярным.

 

Суперскалярность обычно присуща RISC-процессорам (Reduced Instruction Set Computing, то есть процессорам с сокращенным набором команд.). Процессоры этого класса имеют значительно больший состав регистров общего назначения – регистров сверхоперативной памяти, что и определяет улучшенные возможности параллельной работы последовательности команд программы.

К RISC-архитектуре традиционно относят микропроцессоры фирм AMD и Dell. Упрощенный состав операций микропроцессора обеспечивает более простое построение его ядра и соответственно повышенную скорость работы. В RISC-структурах основу системы команд составляют наиболее употребительные, «короткие» операции типа алгебраического сложения. Сложные операции выполняются как подпрограммы, состоящие из простых операций. Это позволяет значительно упростить внутреннюю структуру процессора, уменьшить фазы дробления конвейерной обработки и увеличить частоту работы конвейера. Но здесь необходимо отметить, что за эффект приходится расплачиваться усложнением процедур обмена данными между регистрами сверхоперативной памяти и кэш-памяти с оперативной памятью.

Микропроцессоры фирмы Intel изначально относились к CISC-процессорам (Complete Instruction Set Computing – вычисления с полной системой команд). В компьютерах этой группы большую долю команд составляют команды типа «память-память», в которых операнды и результаты операций находятся в оперативной памяти. Время обращения к памяти и время вычислений соотносится примерно 5:1. В RISC-машинах с большой сверхоперативной памятью большой удельный вес составляют операции «регистр-регистр», и отношение времени обращения к памяти к времени вычислений составляет 2 к 1 [25].

Эволюция микропроцессоров показывает, что постепенно оба направления начинают сближаться, что и в схемах Pentium’ов последних выпусков отчетливо формируется RISC-ядро и расширяется сверхоперативная память. Однако испытания самых мощных микропроцессоров фирм Intel и AMD показали, что ядро Athlon примерно в два раза быстрее, чем у Pentium, но более медленная (примерно вдвое) кэш-память.

Суперскалярность затрагивает и организацию конвейера последовательно выполняемых команд: формирование адреса команды, выбор команды, формирование адресов и выбор операндов, выполнение команды, запись результата. Однако примитивная организация памяти компьютеров (память линейна и одномерна) не позволяет организовывать длинные и эффективные конвейеры. Линейные участки современных программ редко превышают 10-15 последовательно выполняемых команд. Поэтому конвейер часто перезапускается, что сильно снижает производительность компьютера в целом.

Многофункциональная обработка также нашла свое место при построении компьютеров. Например, даже в ПК, построенных на микропроцессорах Athlon и Pentium, могут включаться специализированные средства обработки: умножители, делители, сопроцессоры или блоки десятичной арифметики, сопроцессоры обработки графической и аудио-информации и др. Все они совместно с центральным процессором компьютера создают своеобразные микроконвейеры, целью которых является повышение скорости вычислений.

Другой модификацией классической структуры ЭВМ являются VLIW-компьютеры (Very Large Instruction Word – очень длинное командное слово). Компьютеры этого типа выбирают из памяти суперкоманды, включающие несколько команд программы. Здесь возможны варианты.

В самом простом случае это приводит к появлению буфера команд (кэш-команд) с целью ускорения конвейера операций. По этому принципу работает кэш-память 1-го уровня, часть которой используется для ускоренной выборки команд, а другая – для данных. В более сложных случаях в состав суперкоманд стараются включать параллельные команды, несвязанные общими данными. Если процессор ЭВМ при этом построен из функционально независимых устройств (устройства алгебраического сложения, умножения, сопроцессоры), то в этом случае обеспечивается максимальный эффект работы ЭВМ. Но это направление связано с кардинальной перестройкой процессов трансляции и исполнения программ. Здесь значительно усложняются средства автоматизации программирования.

VLIW-компьютеры могут выполнять суперскалярную обработку, то есть одновременно выполнять две или более команды. В целом ряде структур суперЭВМ использовалась эта идея. Отметим, что и в Pentium последних выпусков имеется возможность выполнения до десятка команд одновременно. Эта реализация имеет две цели:

· уменьшение отрицательного влияния команд деления вычислительного процесса путем выполнения независимых команд двух различных ветвей программы. При этом в какой-то степени исключаются срывы конвейера в обработке команд программы;

· одновременное выполнение нескольких команд (независимых по данным и регистрам их хранения), например, команд пересылки и арифметических операций.

Векторная или матричная обработка предполагает обработку одной командой нескольких комплектов операндов. Внутри одной архитектуры начинают просматриваться черты другой. Подобные команды относятся к архитектуре SIMD (Single Instruction – Multiple Data, одиночный поток команд – множественный поток данных). Истоки этой технологии можно обнаружить в операциях работы со строковыми (символьными) данными. Векторные процессоры имелись у всех суперЭВМ. В современных компьютерах, построенных на микропроцессорах, этот вид обработки реализован своеобразно.

Он получил название MMX- и SSE-технологий. Их введение связано с ориентацией на работу с видео-, аудио- и графической информацией. В приложениях с этими типами данных очень велика доля циклов, участков программ, повторяемых многократно. Занимая примерно 10% от объема всего приложения, на их выполнение может уйти до 90% общего времени выполнения [14]. Включение операций, относящихся к SIMD, позволяет значительно ускорить вычисления.

Технология MMX появилась в 1997 году в микропроцессорах Pentium Ii. В зависимости от контекста она расшифровывается как multi-media extensions (мультимедийные расширения) или как matrix math extensions (матричные математические расширения), что не особенно противоречит друг другу, если учесть, что операции этой группы работают с целыми числами.

MMX включает 57 различных команд, позволяющих выполнять следующие операции над несколькими операндами с изменяемыми форматами данных:

– арифметические операции типа сложения, вычитания, умножения и комбинация операций умножения и сложения;

– сравнение данных на равенство и по величине;

– преобразование форматов данных;

– логические операции над 64-битовыми операндами;

– пересылку данных между регистрами MMX, между регистрами MMX и регистрами CPU (центральным процессором), регистрами MMX и памятью;

– очистку и подготовку регистров MMX.

В качестве операндов этих новых операций можно использовать:

– упакованные байты (Packed byte) – 8 байтов;

– упакованные слова (Packed word) – четыре слова по 16 разрядов;

– упакованные двойные слова (Packed doubleword) – два двойных слова по 32 разряда;

– учетверенное слово (Quadword) – 64-битное слово.

Таким образом, одна команда MMX может одновременно обрабатывать 1, 2, 4 и 8 операндов различной разрядности. Для выполнения новых операций фирма Intel решила использовать в своих микропроцессорах блок плавающей арифметики FPU (Floating Point Unit). Место размещения операндов – младшие 64 разряда регистров MMX0-MMX7 (80-разрядные регистры FPU). Совмещение регистров MMX и FPU создавало ограничения на чередование команд MMX и FPU. Иногда приходилось сохранять, а затем восстанавливать состояния регистров разных приложений. Кроме того, выигрыш от применения операций MMX уменьшался за счет необходимости предварительной упаковки и последующей распаковки данных.

При появлении следующих поколений микросхем Pentium (Pentium III – 1999 г. и т.д.) было проведено обновление технологии MMX. Предварительно оно получило название MMX-2, а затем SSE (Streaming SIMD eXtensions – потоковые расширения SIMD).
В новые модели микропроцессоров был введен новый блок из восьми 128-разрядных регистров XMM (eXtended Multi Media). Операции с плавающей точкой аппаратно были полностью отделены от мультимедийных данных. Количество операций SSE было расширено на 70 новых инструкций в дополнение к существующим MMX.

Новый комплекс операций позволял эффективнее работать с данными мультимедиа. Новый формат регистров обеспечивал расширение числа операндов, одновременно обрабатываемых одной командой, и лучше соответствовал 80-битным стандартам MPEG-2, ускоряя вычисления.

В микропроцессоре Pentium IV он получил очередное расширение, получившее название SSE-2. Изменения определялись в основном введением новых типов 128-битных операндов:

– упакованных пар вещественных чисел двойной точности;

– упакованных целых чисел: 16 байт, 8 слов, 4 двойных слова по 32 разряда, 2 учетверенных слова по 64 разряда.

Все регистры можно использовать как в векторных, так и в скалярных инструкциях. Часть инструкций предназначается для управления эффективной работой кэш-память.

При появлении технологии MMX фирмы AMD и Cyrix (Via) лицензировали у Intel, переработали и стали использовать аналогичные решения в своих разработках. Первая реализация в К6-2 микропроцессорах фирмы AMD получила название 3Dnow!. Здесь была введена 21 инструкция для мультимедийных типов данных. В процессорах следующих поколений Athlon и Duron набор инструкций 3Dnow! претерпел изменение и был дополнен еще 5 операциями для обработки чисел с плавающей точкой и 19 операциями, аналогичными наборам SSE.

Увеличение в структурах процессоров числа регистров и объема быстродействующей кэш-памяти первого уровня позволяет осуществить параллельную обработку нескольких независимых друг от друга команд (Explitly Parallel Instruction Computing, EPIC).

Выпуск в конце 2002 г. нового процессора Pentium IV с тактовой частотой 3,06 ГГц, поддерживающего Hyper-Threading, то есть реализацию в одном физическом процессоре нескольких логических стал одним из впечатляющих достижений Intel. Это позволяет при задержках обработки одной программы (трейда – нити, подзадачи) переключаться на выполнение команд другой программы[6]. Для осуществления этого потребовалось увеличить число транзисторов ядра микропроцессора на 5 %, и получить выигрыш, соизмеримый с 30-процентным увеличением кэш-памяти. Новые микропроцессоры предполагается использовать не только в серверах, но и в настольных ПК.

 




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 1066; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.029 сек.