Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 34
Текст из файла (страница 34)
VLIW-архитектуру можно рассматривать как статическую суперскалярную, поскольку распараллеливание кода производится на этапе компиляции, а не динамически во время исполнения, т. е. в машинном коде VLIW присутствует явный параллелизм.
Одним из примеров воплощения идей VLIW может служить предложенная Intel в содружестве с HP концепция 64-разрядной архитектуры микропроцес-^ сора IA-64 (Intel 64-bit Architecture, 64-разрядная архитектура Intel). Для ее обозначения использована аббревиатура EPIC (Explicitly Parallel Instruction Computing, вычисления с явным параллелизмом команд).
Процессор, разработанный на базе этой концепции, отличающийся следующими особенностями:
□ большое количество регистров: 128 64-разрядных регистров общего назначения (целочисленных), плюс 128 80-разрядных регистров арифметики плавающей запятой, плюс 64 1-разрядных предикатных регистра;
□ масштабируемость архитектуры до большого количества функциональных устройств. Это свойство представители фирм Intel и HP называют "на! следственно масштабируемым набором команд" (inherently scaleable in-l struction set);
□ явный параллелизм в машинном коде: поиск зависимостей между команд дами производит не процессор, а компилятор;
□ предикация (predication): команды из разных ветвей условного ветвления снабжаются предикатными полями (полями условий) и запускаются на выполнение параллельно;
□ загрузка по предположению (speculative loading): данные из медленной основной памяти загружаются заранее.
Формат команды IA-64 включает код операции, три 7-разрядных поля операндов — 1 приемник и 2 источника (операндами могут быть только регистры), особые поля для вещественной и целой арифметики, 6-разрядное предикатное поле.
Команды IA-64 упаковываются (группируются) компилятором в "связку" длиною в 128 разрядов. Связка содержит 3 команды и шаблон, в котором указаны зависимости между командами в связке (можно ли с командой кх запустить параллельно к2, или же к2 должна выполниться только после А:,), а
Глава 7. Эволюция архитектур микропроцессоров и микроЭВМ
225
также между другими связками (можно ли с командой £3 из связки сх запустить параллельно команду k4 из связки с2 )■
Одна такая связка, состоящая из трех команд, соответствует набору из трех функциональных устройств процессора. Процессоры IA-64 могут содержать разное количество таких блоков, оставаясь при этом совместимыми по коду. Ведь благодаря тому, что в шаблоне указана зависимость и между связками, процессору с N одинаковыми блоками из трех функциональных устройств будет соответствовать командное слово из Nx3 команд (N связок). Таким образом, обеспечивается масштабируемость IA-64.
Предикация — способ обработки условных ветвлений. Суть этого способа — компилятор указывает, что обе ветви выполняются на процессоре параллельно. Если в исходной программе встречается условное ветвление, то команды из разных ветвей помечаются различными предикатными регистрами (команды имеют для этого предикатные поля), далее они выполняются совместно, но их результаты не записываются, пока значения предикатных регистров не определены. Когда, наконец, вычисляется значение условия ветвления, предикатный регистр, соответствующий "правильной" ветви, устанавливается в 1, а другой — в 0. Перед записью результатов процессор будет проверять предикатное поле и записывать результаты только тех команд, предикатное поле которых содержит предикатный регистр, установленный в 1.
Загрузка по предположению — это механизм, который предназначен снизить простои процессора, связанные с ожиданием выполнения команд загрузки из относительно медленной основной памяти. Компилятор перемещает команды загрузки данных из памяти так, чтобы они выполнились как можно раньше. Следовательно, когда данные из памяти понадобятся какой-либо команде, процессор не будет простаивать. Перемещенные таким образом команды называются командами загрузки по предположению и помечаются особым образом. Непосредственно перед командой, использующей загружаемые по предположению данные, компилятор вставляет команду проверки предположения.
Выводы
Основная особенность EPIC — распараллеливанием потока команд занимается компилятор, а не процессор.
Достоинства данного подхода:
□ упрощается архитектура процессора; вместо распараллеливающей логики на EPIC-процессоре можно разместить больше регистров, функциональных устройств;
□ процессор не тратит время на анализ потока команд на предмет возмож сти их параллельного выполнения— эту работу уже выполнил комп лятор;
□ возможности процессора по анализу программы во время выполнения раничены сравнительно небольшим участком программы, тогда как ко пилятор способен произвести анализ по всей программе;
□ если некоторая программа должна запускаться многократно, выгодн распараллелить ее один раз (при компиляции), а не каждый раз, когда он исполняется на процессоре.
Недостатки:
□ компилятор производит статический анализ программы, раз и навсег планируя вычисления. Однако даже при небольшом изменении начальн данных путь выполнения программы может сколь угодно сильно изм ниться;
□ серьезно увеличивается сложность компиляторов. Значит, увеличи число ошибок в них, время компиляции;
□ еще более увеличивается сложность отладки, т. к. отлаживать приде оптимизированный параллельный код;
□ производительность EPIC будет всецело зависеть от качества ком пил тора;
□ проблематичным пока видится преемственность программного обеспечения при переходе на новые поколения микропроцессоров (скомпилиро-j ванный код очень сильно "привязан" к конкретной архитектуре процес сора).
Тем не менее, представители Intel и HP называют EPIC концепцией следу щего поколения и противопоставляют ее CISC и RISC. По мнению Intel, тр~ диционные архитектуры имеют фундаментальные свойства, ограничивающи производительность.
Производители RISC-процессоров не разделяют подобного пессимизм Кстати, в 1980-х годах, когда возникла концепция RISC, прозвучало mhofJ" заявлений, что концепция CISC устарела, имеет фундаментальные свойства, ограничивающие производительность. Но процессоры, причисляемые к CISC (например, семейство *86), широко используются до сих пор, их производительность растет.
В действительности же, все эти аббревиатуры — CISC, RISC, VLIW, EPIC обозначают только идеализированные концепции. Реальные современные микропроцессоры трудно подвести исключительно под какой-либо из перечисленных выше классов. Просто в наиболее совершенных современных
Глава 7. Эволюция архитектур микропроцессоров и микроЭВМ
227
процессорах заложено большое число удачных идей, использующих многие рассмотренные здесь концепции.
7.6. Однокристальные микроЭВМ
При рассмотрении процессов эволюции современных процессоров и ЭВМ, прежде всего, обращают внимание на увеличение производительности системы (быстродействие процессора). Некоторые из путей повышения быстродействия были обсуждены в предыдущих разделах, другие, реализующие параллелизм на уровне процессов (мультипроцессоры, векторные, массивно-параллеЛьные, компьютерные сети [И, 12], нейроматричные процессоры, и др.), выходят за рамки настоящей книги.
Однако всегда существовали и существуют задачи, для решения которых вовсе не требуется высокое быстродействие процессора и мощная система команд. На первый план здесь выступают другие характеристики: стоимость, надежность, малые габариты, способность работать в экстремальных климатических условиях, при значительных перепадах питающего напряжения и на фоне высокого уровня электромагнитных помех, с автономным питанием.
Для получения таких характеристик растущие возможности интегральной технологии можно использовать не для увеличения разрядности и вычислительной мощности процессора, а размещая на кристалле, наряду с простым (на первых порах— восьмиразрядным) процессором, все другие устройства, входящие в состав ЭВМ: регистры, различные типы памяти (на первых порах— небольшого объема), тактовый генератор, порты параллельного и последовательного обмена, различные внешние устройства (таймеры, АЦП и др.).
При этом получается полностью "самодостаточный" кристалл БИС (СБИС) однокристальной микроЭВМ (некоторые авторы используют термин микроконтроллер, учитывая, что основная сфера применения подобных изделий — управляющие системы, работающие в реальном времени).
В настоящее время многие фирмы (Motorola, Intel, Microchip, Zilog и др.) выпускают широкую номенклатуру подобных однокристальных микроЭВМ (ОМЭВМ), отличающихся разрядностью, системой команд, типами и объемом памяти, составом и характеристиками внешних устройств. Большинство ОМЭВМ выпускается с 8-разрядным процессором, но на рынке присутствуют и 16- и даже 32-разрядные ОМЭВМ.
Базовые принципы архитектуры ОМЭВМ можно проиллюстрировать на примере 8-разрядных ОМЭВМ. Далее кратко отметим некоторые особенности этих контроллеров. Подробнее архитектура ряда ОМЭВМ и примеры их применения описаны в [4].
Контроллеры разных фирм, несмотря на кажущиеся различия, имеют мно общих черт, определяющих тенденции развития современных ОМЭВМ м лой и средней производительности. Попробуем отметить некоторые из них.
□ Все без исключения контроллеры имеют встроенные тактовые гене торы; для запуска большинства из них используют одну из четырех ва можных внешних цепей: источник внешних тактовых импульсов, кварц' вый резонатор, LC-цепь, RC-цепь. Последние две можно использоваг лишь в системах, где точностью временных привязок можно пренебречь Большинство контроллеров имеют в своем составе динамические элемен ты памяти, что ограничивает допустимую тактовую частоту не тольк сверху, но и снизу (обычно — до 1 МГц). ОМЭВМ Motorola использук на кристалле только статические элементы памяти, что позволяет работат" на произвольно низких системных тактовых частотах. Снижение тактово частоты контроллера целесообразно при управлении инерционными об ектами, если необходимо отслеживать достаточно длительные времени задержки (от долей секунды до десятков секунд).
□ Процессоры большинства ОМЭВМ реализуют классическую ("интелло скую") систему команд, включающую одно- и двухадресные команды операциями над ячейками памяти и регистрами, с использованием разн" образных способов адресации (прямая, регистровая, косвенно-реги ровая, индексная, непосредственная). Предусмотрен широкий вы? команд передачи управления, в т. ч. вызовы подпрограмм. Во многих ко троллерах реализовано умножение и деление. Процессоры семей MCS-51 и МС68НС11 имеют развитую систему операций с битами.
□ Память большинства ОМЭВМ организована по гарвардской архитектур предполагающей различные адресные пространства для памяти програм и памяти данных (исключение составляют лишь контроллеры фир\ Motorola, традиционно поддерживающие единое адресное пространство Такое решение снижает риск потери управления при выполнении п граммы, но ограничивает возможности по распределению ресурсов пам системы.
□ На кристалле могут располагаться различные типы памяти: масочное однократно программируемое ПЗУ, ППЗУ со стиранием ультрафиоле вым излучением, электрически стираемое ППЗУ (флэш-память), ОЗУ ( гистры).
□ Многие параллельные порты контроллеров допускают двунаправленн обмен, часто возможно независимое программирование линий порта ввод или вывод. Допускается выбор типа выхода— обычный ТТЛ-выв или вывод с открытым коллектором (стоком). Большинство линий по"
Гпава 7. Эволюция архитектур микропроцессоров и микроЭВМ
имеют одну или несколько альтернативных функций, выбор которых осуществляется программно.
□ Важным элементом ОМЭВМ являются системы контроля времени, представленные различными счетчиками с управляемыми коэффициентами пересчета и возможностью выбора источника счетных импульсов: тактовый генератор — в режиме таймера и внешний вывод — в режиме счетчика внешних событий. Более мощные контроллеры имеют в своем составе таймерные системы, включающие несколько модулей сравнения, автозахвата, ШИМ (широтно-импульсная модуляция) и др.
□ Последовательные каналы включаются обычно в старшие модели семейств. Предусматриваются либо универсальные синхронно-асинхронные приемопередатчики, программируемые на работу в определенном режиме, либо отдельные блоки SCI (UART) — асинхронный приемопередатчик и SPI— синхронный периферийный интерфейс, работающие независимо друг от друга.
□ Средства работы с аналоговыми сигналами включают в себя компараторы, многоканальные 8-разрядные аналого-цифровые и реже — цифроаналого-вые преобразователи.
□ Подсистема прерываний включает несколько внешних радиальных входов и большое число внутренних прерываний, которые генерируются в системе контроля времени, АЦП, последовательных и параллельных каналах.
В современных микроконтроллерах предусматривается широкий набор специальных средств, повышающих надежность и эффективность функционирования систем управления. Прежде всего, это т. н. сторожевой таймер WDT (Watch-Dog Timer), который предотвращает аварийное зацикливание программы. В некоторых контроллерах предусматриваются специальные схемы, следящие за правильной работой тактового генератора. В системах с автономным питанием большое значение имеют средства энергосбережения. Большинство контроллеров программно можно переводить в специальные режимы пониженного энергопотребления (в состоянии ожидания) с остановкой основных подсистем (в т. ч. иногда и тактового генератора), но с сохранением контекста задачи. Выход из таких режимов возможен по разрешенному прерыванию или по сбросу (часто системный сброс реализуется как одно из прерываний).
16- и 32-разрядные ОМЭВМ построены обычно по модульному принципу. На внутрикристальный системный интерфейс могут подключаться процессоры различной вычислительной мощности, различные модули памяти, контроллеры параллельного и последовательного обмена, модули АЦП и ЦАП, таймерные сопроцессоры и сопроцессоры ввода/вывода. В зависимости от требований решаемой задачи пользователь может выбрать подходящую конфигурацию кристалла ОМЭВМ. В качестве примера коротко рассмотрим семей ство 32-разрядных микроконтроллеров фирмы Motorola.
Отличительной особенностью ОМЭВМ фирмы Motorola является модульн технология построения многофункциональных устройств на одном кристал ле. Определен стандарт внутрикристальной межмодульной шины 1MB и множество наборов системных модулей, из которых собирается ОМЭВМ: