Смагин М.С. Вычислительные машины, системы и сети (1088253), страница 7
Текст из файла (страница 7)
структурный2. микропрограммный.При использовании структурного способа, в структуру функционального блока вводятся вычислительные узлы, предназначенные для выполнения операций, профильных для области специализации. Наиболее яркимпримером использования структурного способа специализации являются ужеупоминавшиеся процессоры обработки сигналов. В них присутствуют специальные узлы, выполняющие операцию умножения с накоплением за одинтакт. Эту операцию ещё называют операцией аккумулирования.При использовании микропрограммного способа в функциональныйблок изменения не вносятся, а блок управления перестраивается так, чтобыпредоставить пользователю специализированные машинные команды, соответствующие нужным ему операциям.
Для каждой такой команды разрабатывается последовательность микроопераций, которая, при использованииуправляющего автомата с микропрограммным управлением, записывается впамять микропрограмм. Если же блок управления построен на основе ЖВРСавтомата, то специализированная операция, наряду с операциями общего назначения, учитывается при разработке схемы преобразователя кодов микрооперации.Наиболее известным примером микропрограммной специализации вычислительных устройств является так называемая технология MMX (MultiMedia eXtensions), применявшаяся в ряде процессоров семейства X86.Слово «технология» в данном случае – чисто маркетинговый ход, поскольку никаких технологических изменений в сам процесс производства не42вносилось. ММХ – это дополнительный набор машинных инструкций, реализующих наиболее распространённые операции обработки мультимедийных данных.
Впервые данный набор инструкций появился в процессорах семейства Pentium MMX, вышедших на рынок в 1997 году. При этом никакихизменений в структуру функционального блока внесено не было, и данныеинструкции использовали для своей работы регистры функционального блока, предназначенные для специализированных математических вычислений.Дальнейшим развитием MMX стала технология SSE, которая представляет собой пример комбинации способов специализации вычислительных устройств. Помимо дополнительных инструкций в процессорах, поддерживающих данный набор инструкций, в функциональный блок были добавлены дополнительные регистры, специально предназначенные для работыс командами обработки мультимедийных данных.Впервые набор инструкций SSE появился в процессорах семействаPentium III, выпущенных в феврале 1999 года. На сегодняшний день используется гораздо более ёмкий набор инструкций SSE4, использованный в процессорах Intel Core 2 Duo, появившихся на рынке в начале 2008 года.Теперь вернёмся к структуре функционального блока и рассмотрим еёболее подробно.Простейший функциональный блок состоит из арифметическологического устройства (АЛУ) и двух регистров – регистра данных и регистра результата.
АЛУ представляет собой абстрактный блок, реализующий некий набор арифметических и логических операций. Это может быть сумматор, или умножитель или устройство, выполняющее или ту, или другую операцию в зависимости от состояния управляющего сигнала на входе. В случае,если регистров данных несколько, а это, как правило, так, в схему вводятсямультиплексоры данных, поступающих от регистров.43Рис.18 Типовая структурная схема функционального блокаВ общем случае, все узлы на данной схеме осуществляют приём внутренних управляющих сигналов от блока управления и передачу ему внутренних контрольных сигналов.
Поэтому они на схеме не указываются.АЛУ может быть и не одно. И вот здесь нам необходимо упомянутьещё одну систему классификации ЭВМ и устройств – классификацию поФлинну. Майкл Флинн, американский учёный в области компьютерных наук,предложил эту систему классификации в 1966 году, и она не теряет свой актуальности до сих пор.Основными классификационными критериями в системе Флинна является количество АЛУ в функциональном блоке вычислительного устройстваи способ организации их работы. Эта система разделяет ЭВМ по критериюколичества команд и данных. Самый примитивный случай, который мы уже44упоминали, АЛУ и два регистра, представляет собой систему, которая в любой момент времени может выполнять только одну команду над одним набором данных.
То есть, такую систему можно охарактеризовать как систему соднократностью команд и однократностью данных, или ОКОД. Поанглийски данный класс устройств обозначается как SISD, что значит SingleInstruction, Single Data.Теперь предположим, что у нас в функциональном блоке имеется неодно АЛУ, а несколько, причём каждое из них имеет отдельный набор сигналов управления и работает независимо от других. При этом регистр данных,по-прежнему один. Получается, что система может выполнить несколькоразных команд над одним и тем же набором данных. Иными словами, этосистема с многократностью команд и однократностью данных, или МКОД.По-английски данный класс устройств обозначается как MISD, что значитMultiple Instruction, Single Data.Рис.19 Структура функционального блока типа МКОД45Теперь предположим, что помимо нескольких АЛУ, у нас имеется недва регистра, а, как минимум, четыре или больше.
Вместе с тем, все АЛУ,имеющиеся в функциональном блоке, имеют один общий набор сигналовуправления. Получается, что система может в каждый момент времени выполнять одну и ту же команду над несколькими разными наборами данных.Про нё можно сказать, что это система с однократностью команд и многократностью данных, или ОКМД. По-английски данный класс устройств обозначается как SIMD, что значит Single Instruction, Multiple Data.Рис.20 Структура функционального блока типа ОКМДИ, наконец, если при наличии большого количества регистров, каждоеиз нескольких АЛУ имеет отдельный набор сигналов управления, то системаможет одновременно выполнять несколько различных команд над различными наборами данных.
Значит можно сказать, что это система с многократно46стью команд и многократностью данных или МКМД. По-английски данныйкласс устройств обозначается как MIMD, что значит Multiple Instruction, Multiple Data.Рис.21 Структура функционального блока типа МКМДТаким образом, любое из существующих вычислительных устройствможет быть отнесено к одному из четырёх классов:1. ОКОД (SISD);2. МКОД (MISD);3. ОКМД (SIMD);4.
МКМД (MIMD).47К классу ОКОД относятся несложные микроконтроллеры и простейшие процессоры, используемые, например, в калькуляторах или кассовыхаппаратах.Класс МКОД является гипотетическим. На сегодняшний день такихустройств не существует. В первую очередь потому, что в них не возниклапрактическая необходимость, т.е. не нашлось задач, для решения которыхбыли бы эффективны процессоры со структурой типа МКОД.К устройствам типа ОКМД относятся специализированные микропроцессоры. В первую очередь это процессоры обработки изображений, от которой требуется выполнять одинаковые операции над значениями яркости пикселей какого-либо участка изображения. Уже упоминавшаяся аббревиатураSSE расшифровывается как Streaming SIMD Extension, то есть, потоковоеОКМД-расширение процессора.Ну, и, наконец, к устройствам типа МКМД относится большинствопроцессоров общего назначения и мощных процессоров обработки сигналов.Рассмотрим класс МКМД более подробно.
Обратите внимание на то,что в функциональных блоках этого типа имеется несколько параллельно работающих АЛУ. Данные арифметико-логические устройства могут быть какпрозрачными для программиста, так и доступными для прямого управленияпрограммистом с помощью ассемблерных команд. В первом случае устройство управления должно автоматически определять, какие группы операций впотоке команд оно может выполнять параллельно, а во втором случае, обэтом должен думать программист, которому должна быть известна архитектура и структура процессора и он будет писать программу так, чтобы максимально использовать его возможности.Архитектуры первого типа часто называют суперскалярными, а архитектуры второго типа, – архитектурами типа VLIW.
VLIW расшифровывается как Very Long Instruction Word, – архитектура с очень длинным словом инструкции.48Очевидно, что в первом случае в структуре процессору необходимыспециальные узлы, предназначенные для анализа потока команд и управления им. Это усложнит его структуру и повысит стоимость, зато он будетудобнее для программиста, а значит, программы для него будут разрабатываться быстрее и стоить дешевле, чем для второго. Процессоры второго класса будут проще организованы и, следовательно, будет работать с более высокой тактовой частотой.
Но будут сложны для программистов, и программыдля них будут иметь более длительные сроки разработки.Надо сказать, что не только в вычислительной технике, но и в другихтехнических отраслях всегда идёт соревнование между простыми и надёжными устройствами, выполняющими ограниченный набор функций, и сложными и менее надёжными устройствами, обладающими более широкимфункционалом.
Данное соревнование всегда было и всегда будет, посколькуу каждого из типов устройств есть своя функциональная ниша, в которой егоне сможет заменить устройство другого типа. Чаще всего параллельная работа инженерных групп, исповедующих эти две полярные философии, приводит к тому, что у них начинается активный взаимный обмен идеями. В результате при разработке новых устройств начинают использоваться гибридные подходы, призванные использовать преимущества обеих философий, атакже избавиться от их недостатков.Это верно как в рамках развития устройств отдельных классов по классификации Флинна, так и в рамках развития микропроцессорной техники вцелом.В истории развития микропроцессоров эти две философии получилисвоё воплощение в виде двух классов вычислительных устройств – RISC иCISC.RISC расшифровывается как “Reduced Instruction Set Computer” или«Компьютер с сокращённым набором команд».
К данному типу относятсяпроцессоры, имеющие простую структуру и, соответственно, сокращённыйнабор машинных команд. Сокращённый набор команд означает простоту49устройства. Простота устройства для микропроцессора, - это надёжность,уменьшение энергопотребления и, соответственно, уменьшение рассеиваемой мощности и дешевизна.
Кроме того, это высокая тактовая частота, которая является, помимо технической характеристики, ещё и важным конкурентным преимуществом.Процессоры данного класса имеют следующие отличительные особенности:• Большое количество регистров;• Высокая тактовая частота;• Фиксированная длина и время выполнения машинных команд;• Сложность для программиста.CISC расшифровывается, как “Complex Instruction Set Computer” или«Компьютер с расширенным набором команд».