Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3501

.pdf
Скачиваний:
4
Добавлен:
15.11.2022
Размер:
6.07 Mб
Скачать

Ограниченная пропускная способность интерфейса МП снижаем производительность МПС и приводит к тому, что обычно МПС работают с небольшим числом источников и потребителей информации

.

Построение микропроцессорных систем с использованием различных микропроцессорных комплектов

Все элементы МП с программируемой логикой - операционное устройство (ОУ), управляющая память (УП) и блок микропрограммного управления (БМУ) - могут размещаться на одном кристалле, т. е. весь МП может быть выполнен в виде одной микросхемы. Так реализованы МП в отечественных сериях микропроцессорных комплектов К580 и К1810. Управляющая память МП такого типа хранит набор микропрограмм, записанный в нее уже на этапе изготовления микросхемы на заводе. Каждая микропрограмма представляет собой последовательность микрокоманд, обеспечивающую выполнение некоторой несложной операции. При поступлении в микропроцессор команды из оперативной памяти (ОП) в УП находится соответствующая команде микропрограмма и путем последовательного считывания ее микрокоманд осуществляется прием из ОП операндов, выполнение над ними некоторых простейших действий и вызов из ОП очередной команды. В МП серии К580 такие микропрограммы содержат от 4 до 17 микрокоманд. Применение МП, выполненного на одной микросхеме, естественно, упрощает построение МПС, сокращая число используемых в ней элементов. Кроме того, упрощается процесс программирования, так как от программиста не требуется записывать выполняемые в каждом такте микрокоманды. Составляя программу, он оперирует командами, т. е. хранящимися в МП группами микрокоманд, которые соответствуют командам. Однако такое облегчение программирования сопровождается существенным снижением скорости решения задачи. Это связано со следующим. Система команд, которой снабжается микропроцессор при его заводском изготовлении, универсальна в том смысле, что она позволяет программировать решение любой задачи. Но при решении конкретной задачи такая фиксированная система команд может оказаться неэффективной: пользование ею потребует большого числа команд, на выполнение которых МП будет затрачивать много времени. Программа оказывается более эффективной (требующей меньшей емкости памяти для ее хранения и меньшего времени для исполнения), если для ее построения используется специально подобранная для данной конкретной задачи система команд. Такой прием с введением новых составленных программистом команд (т. е. модификация системы команд) оказывается невозможным в МП, реализованных в виде одной микросхемы.

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

450

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

Рассмотрим, к каким изменениям в структуре МП приводит обеспечение указанной выше возможности программирования на языке микрокоманд.

При создании микросхемы приходится решать трудную проблему сокращения числа выводов. В представленном на рисунке 2 варианте с совмещением в общей микросхеме всех элементов микропроцессора (ОУ, БМУ, УП) эта задача решается обычно путем мультиплексирования шин. Например, в МП серии К580 для 8-разрядных выходов и входов используются общие выводы, которые переключаются в зависимости от направления передачи данных либо на ввод либо на вывод данных; в МП серии К1810, оперирующем шестнадцатиразрядными данными и двадцатиразрядными адресами ОП, кроме объединения входов и выходов данных предусматривается использование этих выводов и для части разрядов адресной информации (при этом, очевидно, необходимо предусмотреть выдачу адреса и выдачу или прием данных в различные временные интервалы).

Для того, чтобы, разработчик микропроцессорного устройства имел возможность программировать на языке микрокоманд, он должен иметь доступ к УП для записи в нее составленных микропрограмм. Такой доступ можно обеспечить, если УП вынести из микросхемы процессора, как показано на рисунке 178.

Рис.177

451

Из сравнения схем на рисунках 177 и 178 видно, что вариант на рисунке 3 потребует в микросхеме, содержащей ОУ и ЕМУ, предусмотреть существенно большее число выводов, чем в микросхеме ка рисунке 177. Это связано с необходимостью иметь в варианте на рисунке 178 выводы для передачи в УП адреса и входы для приема микрокоманды из УП.

Рис. 178.

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

Рис. 179.

Так как обеспечение высокого быстродействия требует отказа от мультиплексирования шин, то и в данном варианте число выводов в микросхеме ОУ окажется недопустимо большим. Число выводов можно сократить, если построить микросхему ОУ на небольшое число разрядов обрабатываемых данных (2-, 4-, 8- разрядных данных) и обеспечить возможность наращивать разрядность ОУ путем объединения соответствующего числа микросхем, как показано рисунке 180.

452

Рис. 180.

Основные этапы разработки микропроцессорной системы

Проектирование специализированной системы (МПС) содержит обычно три этапа:

I) выбор элементов к составление структурной, функциональной и принципиальной схем;

2)распределение памяти и присвоение элементам, к которым в процессе выполнения программы необходимо обращаться, соответствующих кодов и адресов;

3)составление и отладка программы.

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

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

Если МПС предназначается для обработки сигналов, определяющим обычно является быстродействие МП и его разрядность. До последнего времени преимущество в этом смысле имели разрядно-модульные МП с микропрограммным управлением (например, типа К1804), но в настоящее время разработаны весьма совершенные специализированные однокристальные МП для цифровой обработки сигналов типа TMS 320, которым во многих случаях и следует отдать предпочтение.

Если МПС предназначена для реализации алгоритмов управления, важнейшим фактором при выборе МПК является возможность его сопряжения с объектами управления. Поскольку в системах связи таковыми

453

часто являются электромеханические устройства, обладающие большой инерционностью, к быстродействию МП здесь предъявляются сравнительно невысокие требования, и в таких системах во многих случаях можно использовать однокристальные МП типа К580, К1810 и другие или микроконтроллеры, например типа К1816, которые позволяют строить достаточно простые и экономичные схемы.

Если МПС предназначена для построения информационно-справочной системы, определяющим требованием обычно является возможность подключения к МП ЗУ большой емкости.

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

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

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

Выполнение второго этапа начинается с распределения адресного поля между ОЗУ, ПЗУ и ВУ. Если ЗУ имеет емкость 2k слов (байтов), для адресации его ячеек используются k линий шины адреса (ША) МПС, обычно линии A0-Ak-1 (в МПС на базе К1810ВМ86, k = 16). Выбор (селекция) ОЗУ или ПЗУ осуществляется с помощью одной из неиспользованных линий ША, (например, А15 = 0 может соответствовать ОЗУ, а А15= 1 - ПЗУ).

Для адресации ВУ, подсоединяемых к МПС через порты, обычно используются младшие разряды ША. (В МПС на базе К1810ВМ86 - восемь разрядов.) Применение одних и тех же адресов и линий ША для ЗУ и ВУ возможно, поскольку обращение к этим, устройствам осуществляется с

454

помощью разных команд МП, т. е. для селекции ЗУ или ВУ используются генерируемые в МПС управляющие сигналы.

Если в качестве портов применяются многорежимные буферные регистры и их не более восьми, то каждому порту ставится в соответствие одна линия ША, по которой передается сигнал, выбирающий этот порт (иными словами, каждый порт кодируется унитарным кодом). Если портов в МПС более восьми (в МПС на базе МП KI810BM86 - 9...65536), они кодируются различными двоичными кодами и для выбора используется дешифратор.

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

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

На третьем этапе составляется программа работы устройства. При этом, если решаемая задача простая (программа содержит до 100 команд), используется язык ассемблера выбранного МП, который позволяет непосредственно получить двоичные («объектные») коды команд, записываемых далее в ПЗУ. Если же задача достаточно сложная, то используется тот или иной язык высокого уровня; выбор языка определяется тем, какие имеются в распоряжении разработчика средства отладки программ и их трансляции в машинные коды выбранного МП. Система команд МП позволяет, как правило, нить ту или иную операцию алгоритма множеством способов. Поэтому составленную программу, даже если она правильно решает поставленную задачу, необходимо, тщательно проанализировать возможности оптимизировать с целью уменьшения емкости используемой памяти и времени выполнения.

13.4. Многопроцессорные системы

Классификация систем параллельной обработки данных

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

455

которые полезно знать не только разработчикам, но и пользователям компьютеров.

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

Параллельные ЭВМ часто подразделяются по классификации Флинна на машины типа SIMD (Single Instruction Multiple Data - с одним потоком команд при множественном потоке данных) и MIMD (Multiple Instruction Multiple Data - с множественным потоком команд при множественном потоке данных). Как и любая другая, приведенная выше классификация несовершенна: существуют машины прямо в нее не попадающие, имеются также важные признаки, которые в этой классификации не учтены. В частности, к машинам типа SIMD часто относят векторные процессоры, хотя их высокая производительность зависит от другой формы параллелизма - конвейерной организации машины. Многопроцессорные векторные системы, типа Cray Y-MP, состоят из нескольких векторных процессоров и поэтому могут быть названы MSIMD (Multiple SIMD).

Классификация Флинна не делает различия по другим важным для вычислительных моделей характеристикам, например, по уровню "зернистости" параллельных вычислений и методам синхронизации.

Можно выделить четыре основных типа архитектуры систем параллельной обработки:

1) Конвейерная и векторная обработка.

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

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

456

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

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

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

Модели вычислений на векторных и матричных ЭВМ настолько схожи, что эти ЭВМ часто обсуждаются как эквивалентные.

3) Машины типа MIMD. Термин "мультипроцессор" покрывает большинство машин типа MIMD и (подобно тому, как термин "матричный процессор" применяется к машинам типа SIMD) часто используется в качестве синонима для машин типа MIMD. В мультипроцессорной системе каждый процессорный элемент (ПЭ) выполняет свою программу достаточно независимо от других процессорных элементов. Процессорные элементы, конечно, должны как-то связываться друг с другом, что делает необходимым более подробную классификацию машин типа MIMD. В мультипроцессорах

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

Базовой моделью вычислений на MIMD-мультипроцессоре является совокупность независимых процессов, эпизодически обращающихся к

457

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

4) Многопроцессорные машины с SIMD-процессорами.

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

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

Многопроцессорные системы за годы развития вычислительной техники претерпели ряд этапов своего развития. Исторически первой стала осваиваться технология SIMD. Однако в настоящее время наметился устойчивый интерес к архитектурам MIMD. Этот интерес главным образом определяется двумя факторами:

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

2.Архитектура MIMD может использовать все преимущества современной микропроцессорной технологии на основе строгого учета соотношения стоимость/производительность. В действительности практически все современные многопроцессорные системы строятся на тех же микропроцессорах,

458

которые можно найти в персональных компьютерах, рабочих станциях и небольших однопроцессорных серверах.

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

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

Всетях с коммутацией каналов и в сетях с коммутацией пакетов по мере возрастания требований к обмену следует учитывать возможность перегрузки сети. Здесь межпроцессорный обмен связывает сетевые ресурсы: каналы, процессоры, буферы сообщений. Объем передаваемой информации может быть сокращен за счет тщательной функциональной декомпозиции задачи и тщательного диспетчирования выполняемых функций.

Таким образом, существующие MIMD-машины распадаются на два основных класса в зависимости от количества объединяемых процессоров, которое определяет и способ организации памяти и методику их межсоединений.

К первой группе относятся машины с общей (разделяемой) основной памятью, объединяющие до нескольких десятков (обычно менее 32)

459

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]