книги / Робот. Компьютер. Гибкое производство
.pdfним миром: с устройствами печати и отображения инфор мации, внешними запоминающими устройствами (накопи телями на магнитных лентах и дисках), разнообразными датчиками, исполнительными механизмами и т. д. Все блоки системы связаны общей шиной (ОШ), состоящей из электрических линий, по которым передаются сигналы адресов, данных и управления.
В общем случае основной цикл работы микропроцес сора состоит из двух частей: выборки команды и ее ис полнения. В фазе выборки устройство управления посы лает в память сигнал чтения и адрес текущей команды. Этот адрес вырабатывается специальным устройством, ко торое называется программным счетчиком. Считанная команда поступает в устройство управления, запоминает ся и расшифровывается. Далее начинается фаза испол нения. Одновременно происходит изменение состояния программного счетчика, например, путем добавления еди ницы. После завершения текущего цикла микропроцессор автоматически переходит к выполнению следующей команды и т. д.
Микропроцессоры обычно имеют достаточно широкий набор элементарных команд (до 100 и более), необхо димый для организации процесса обработки информации. Реализуемые при этом функции в основном связаны с пересылкой и обработкой данных, а также с передачей
управления. При пересылках данные не |
изменяются, |
а только перемещаются, например между |
регистрами, |
входящими в состав арифметико-логического устройства, и памятью. Важная роль отводится способам адресации данных. Рассмотрим наиболее распространенные.
При способе с непосредственной адресацией данные выбираются из ячейки, следующей сразу после команды. Для этого после фазы выборки команды в программный счетчик добавляется единица и полученный адрес ис пользуется для считывания данных. Далее состояние программного счетчика снова изменяется, чтобы подгото виться к выборке следующей команды.
Способ с абсолютной адресацией обличается от преды дущего тем, что за командой следуют не сами данные, а их адрес. В этом случае приходится выполнять два об ращения в память: сначала за адресом, а потом уже за данными.
Существуют регистровые способы адресации для рабо ты с данными, расположенными в регистрах арифметикологического устройства. Команды, использующие такие
101
способы, выполняются быстрее, поскольку отсутствуют дополнительные обращения в память.
Широко применяются косвенные способы, при кото рых в указываемых командой ячейках или регистрах на ходятся адреса данных.
Для обработки последовательностей данных (таблиц, матриц) используются автоинкрементные и автодекре ментные способы адресации. Они позволяют автоматиче ски изменять состояние источника адреса с заданным ша гом (положительным или отрицательным соответственно). В целом развитые способы адресации позволяют в значи тельной степени повысить эффективность написания и выполнения программ.
Обработка информации осуществляется непосредствен но в арифметико-логическом устройстве. Практически во всех универсальных микропроцессорах единовременно можно обрабатывать не более двух операндов, используя арифметические и логические операции, а также опера ции сдвига. В процессе выполнения операций могут выра батываться специальные признаки —флажки: переполне ния разрядной сетки, равенства результата нулю, отри цательного результата и т. д. Эти флажки запоминаются
втак называемом регистре состояния и используются в дальнейшем для ветвления программы.
Вкаждом микропроцессоре имеется группа команд, выполняющих функции передачи управления. Такие команды позволяют изменять последовательный порядок прохождения программы путем записи в программный счетчик произвольного значения адреса, т. е. переходить
влюбую точку программы. С помощью команд перехода
можно организовать циклическое выполнение повторяю щихся частей программы, что дает существенную эконо мию памяти. Для выхода из цикла и для ветвления про граммы используются команды, которые осуществляют переход только нри выполнении определенных условий. Условия, которые могут быть проверены,—это, в частно сти, значения флажков арифметико-логических операций. Наличие команд условного перехода позволяет реализо вать принятие решений в ходе выполнения программы, что обеспечивает значительное увеличение возможностей микропроцессора.
Таким образом, микропроцессорную систему теорети чески можно запрограммировать на выполнение любых алгоритмов, хватило бы только программной памяти. Поистине микропроцессор универсален. Следовательно,
102
его можно использовать и в задачах робототехники. Мало того, широкие области применения микропроцессоров по зволяют воспользоваться преимуществами массового про изводства: тиражировать их миллионами экземпляров, обеспечив резкое снижение стоимости. Действительно, се рийно выпускаемые микропроцессоры стоят всего не сколько рублей.
Но во что же обходится такая универсальность? Прежде всего она приводит к низкой эффективности
обработки данных: подавляющую часть времени микро процессор тратит на организацию своей собственной ра боты. Такая избыточность заложена как на уровне эле ментарной команды, так и на уровне всей программы. В цикле выполнения команды можно считать «лишними» те действия, которые не связаны с непосредственной об работкой данных. А именно: выборка команды, ее рас шифровка, действия, реализующие сложные способы ад ресации, дополнительные внутренние пересылки и дру гие. На уровне последовательности команд —программ ном уровне —появляются команды, вообще не относя щиеся к обработке. К таковым, в частности, можно от нести любую из команд передачи управления.
Рассмотрим простейший пример: ввод данных от внеш него устройства в память системы. Программный цикл этой процедуры будет состоять из следующей последова тельности команд.
1.Чтение регистра состояния устройства ввода-выво да. Конкретный разряд этого регистра сигнализирует о том, что в регистр приема (также входящий в состав устройства ввода-вывода) поступила очередная порция информации от внешнего устройства.
2.Проверка состояния интересующего разряда с по мощью логической операции. Например, путем логическо го произведения с константой, содержащей нули во всех разрядах, кроме проверяемого. При этом значение флаж ка равенства результата нулю будет соответствовать со стоянию проверяемого разряда.
3.Условный переход в п. 1 при равенстве указанного флажка нулю. Эти три команды образуют программный цикл ожидания поступления данных от внешнего устрой ства. С приходом данных условие перехода выполнено не будет и программа продолжит работу.
4.Чтение регистра приема в микропроцессор.
5.Запись полученных данных в память с использова нием косвенно-регистрового способа адресации (адрес располагается в одном из регистров).
103
6.Увеличение состояния адресного регистра на еди ницу, чтобы подготовиться к записи следующего слова данных.
7.Уменьшение состояния другого регистра —реги
стра-счетчика переданных слов на единицу. Флажок равенства результата нулю будет сигнализировать об окочании процедуры ввода.
8. Условный переход в п. 1 при равенстве флажка нулю, т. е. повторение цикла для ввода следующей пор ции данных от внешнего устройства. В противном случае окончание процедуры ввода (выход из цикла).
Очевидно, скорость ввода данных будет ограничивать ся длительностью указанного цикла. Например, для мик
ропроцессора |
серии К580 |
время такого |
цикла превысит |
30 мкс. В то |
же время |
быстродействие |
памяти (время |
выполнения одной операции записи или чтения) для ука занного микропроцессора составляет всего 0,5 мкс. Таким образом, скорость программного ввода оказывается в 60 раз ниже потенциально возможной. При формате входных данных 8 бит (8 разрядов), что соответствует одному байту, она не будет превышать 30 кбайт/с.
Такая скорость значительно меньше той, которая тре буется в задачах видеоанализа для ввода изображений в память микросистемы. Изображения поступают с телека меры в последовательном виде. Сначала передаются эле менты первой строки, затем второй и т. д. В простейшем случае изобрая^ение состоит из 256X256 элементов, каж дый из которых кодируется одним битом (черное или бе лое). Такая бинарная картинка передается с темпом 8 млн элементов в секунду, что соответствует скорости поступления видеоданных 1 Мбайт/с.
Каким же образом удается обеспечить столь высокое быстродействие? Ответ на этот вопрос однозначный: за счет использования специализированных аппаратных средств.
Специализированные аппаратные средства
Фактически любая вычислительная система обработки информации представляет собой совокупность аппарат ных и программных средств. Они не могут существовать независимо, поскольку для управления аппаратными сред ствами необходима программа, а для реализации про граммных алгоритмов требуется аппаратура. При этом важно отметить, что любой процесс обработки информа
104
ции может быть реализован как программно, так и ап паратно.
В микропроцессорных системах явно преобладают про граммные средства, т. е. специализация системы для решения конкретной задачи в основном осуществляется на программном уровне. На аппаратном уровне изменя ются лишь количественные показатели: емкость памяти, число портов ввода-вывода, состав периферийных устройств и т. д. Этим и объясняется тот факт, что доля затрат на создание программного обеспечения микропро цессорных систем целевого назначения может достигать 80% и более.
До создания первого микропроцессора (в 1971 г.) ма лые устройства управления и обработки информации (на пример, устройство управления приводом) выполнялись в основном аппаратно на элементах малой и средней сте пени интеграции. Благодаря успехам в области полупро водниковой технологии удалось повысить степень инте грации схем до уровня^ позволяющего разместить на кристалле кремния целиком маленький процессор — мик ропроцессор. Для обширного списка задач быстродействие программного способа обработки оказалось вполне прием лемым. Это позволило заменить многочисленные аппарат но реализованные устройства, содержащие сотни инте гральных схем, компактными, дешевыми и более универ сальными микросистемами.
Дальнейшее расширение областей применения микро процессоров связано с повышением их производительно сти. Наиболее очевидным способом ускорения обработки информации является переход к более высоким тактовым частотам. Работы в этом направлении успешно развива ются и главным образом связаны с улучшением техноло гического процесса и с поиском новых полупроводниковых материалов.
Быстродействие микропроцессоров можно также под нять за счет применения новых структурных решений. Например, путем параллельного выполнения ряда Фаз командного цикла. Так, в микропроцессоре KM181QBM86 одновременно обрабатывается текущая команда и выби раются из памяти следующие. Однако за это приходится расплачиваться усложнением аппаратуры.
Наконец, совершенствование микропроцессоров связа но со специализацией их собственных аппаратных средств. Появление сложных способов адресации есть не что иное, как перенесение часто повторяющихся частей
105
программы на аппаратный уровень п реализация их в виде одной команды. Это и ускоряет вычисления, и уп рощает программирование.
Вернемся к рассмотренному ранее примеру, в котором приведен программный цикл ввода данных. Команда 5, реализующая косвенно-регистровый способ адресации, и команда 6, выполняющая инкрементирование (увели чение) адреса, могут быть заменены одной командой с автоинкрементным способом адресации. Далее, команда 7 (декремент счетчика циклов) и команда 8 (условный переход по состоянию счетчика циклов) также часто ис пользуются вместе. В микро-ЭВМ «Электроника-60» эта
последовательность реализована в виде |
одной команды. |
В ряде микропроцессоров благодаря |
аппаратной под |
держке с помощью одной команды выполняются такие действия, как двоично-десятичные операции, арифмети ческие операции с фиксированной и плавающей запятой (включая умножение и деление). Существуют также ма тематические сопроцессоры, реализованные в виде от дельных кристаллов, которые, кроме перечисленных опе раций, выполняют тригонометрические преобразования,
ит. д.
Вцелом можно отметить общую тенденцию перевода хорошо проверенных и наиболее употребимых программ ных процедур на аппаратный уровень, что способствует дальнейшему росту производительности.
Однако возможности микропроцессоров не беспредель ны. Основные трудности связаны с архитектурой —архи тектурой фон Неймана, которая уже 40 лет неизменно используется в большинстве компьютеров. Последователь ная природа этой архитектуры представляет для разра ботчиков принципиальное ограничение, которое не позво ляет обеспечить повышепие производительности сверх
определенного уровня. В то же время существует потреб ность увеличить быстродействие примерно на три порядка величины (при соизмеримых габаритах и стоимости), чтобы решать все более сложные задачи робототехники, связанные с управлением, моделированием и особенно с видеоанализом. Поэтому необходимо более критически подойти к модному в настоящее время лозунгу: «Микро процессоры могут все!»
Чтобы более реально понять суть проблемы, представь те себе, что вы должны выполнять определенные задания с книгой инструкций в руках. Примерно так же, как это делает микропроцессор под управлением программной па
106
мяти. Если обед вам еще и удастся приготовить, то уп равление движущимся по городу автомобилем будет уже непосильной задачей. Как подойти к ее решению? Навер ное, вместо того, чтобы упражняться в развитии навыков быстрого чтения и придумывать приспособления для автоматического листания страниц, надо просто на учиться ездить. Научиться так, как это делает шофер — специалист своего дела, без всяких инструкций. Поэтому реальным путем создания высокопроизводительной вычис лительной техники, удовлетворяющей требованиям робото технических систем, является переход к использованию специализированных аппаратных средств, которые ориен тированы на выполнение конкретных функций с макси мальным быстродействием.
Однако не следует кидаться из одной крайности в другую и полностью переходить на аппаратный уровень. Необходимо искать ту «золотую середину» в соотношении аппаратных и программных средств, которая позволит объединить преимущества обоих подходов. Обладая про граммной гибкостью, микропроцессоры эффективно справ ляются с алгоритмически сложными процедурами, такими, как: системное управление, обеспечение интерактивного режима, работа со стандартными периферийными устрой ствами, диагностика, контроль и т. д. Специализирован ные аппаратные средства наилучшим образом подходят для высокоскоростного выполнения алгоритмически про стых, но многократно повторяющихся операций. Напри мер, в видеоанализе таковыми могут быть: ввод-вывод изображений, предварительная обработка локальным опе ратором, выделение информативных параметров и т. д.
В большинстве микропроцессорных систем предусмот рена возможность подключения специализированных ап паратных средств. Одним из наиболее распространенных приемов является способ прямого доступа в память (ПДП). Рассмотрим принцип его действия на примере выполнения процедуры ввода-вывода информации.
Основная идея состоит в том, что обмен данными вы полняется не микропроцессором, а специализированным устройством —контроллером ввода-вывода. Контроллер физически подключается к общей шине системы. Перед началом обмена микропроцессор загружает в него необ ходимые параметры: направление обмена (ввод или вы вод), стартовый адрес памяти и размер передаваемого блока данных. Для вхождения в активный режим кон троллер посылает сигнал запроса в микропроцессор, ко
107
торый, завершив выполнение текущей команды, отвечает сигналом разрешения ПДП, останавливается и логически отключается от шины. Далее контроллер выполняет об мен самостоятельно, формируя адреса, данные и управ ляющие сигналы, причем делает это значительно быстрее программы. Высокая скорость достигается за счет парал лельной работы ряда аппаратных узлов: регистра адреса, счетчика переданных данных, схем синхронизации, логики анализа окончания процедуры и т. д. После завершения обмена управление вновь возвращается микропроцес сору.
Аналогичным образом можно подключать специали зированные аппаратные средства обработки, а также соз давать мультимикропроцессорные системы. Складывается впечатление, что способ ПДП является универсальным решением всех проблем, связанных со стыковкой аппа ратных и программных средств. Однако это глубокое за блуждение. Существуют и другие эффективные способы. В целом можно сказать, что построение систем целевого назначения во многом зависит от класса решаемых задач (от основных технических характеристик, которые необ ходимо обеспечить), от динамики и уровня развития эле ментной базы и от многих других факторов, которые труд но, а иногда и просто невозможно формализовать.
Рассмотрим конкретную область применения специа лизированных аппаратных средств —видеоанализ. Ука занная область выбрана не случайно, поскольку от ус пешного решения задач видеоанализа во многом зависит создание функционально развитых интеллектуальных робототехнических систем. Требуемая в таких системах производительность обработки видеоинформации настоль ко велика, что вопрос выбора вычислительных средств однозначно решается в пользу спецаппаратуры, других вариантов практически нет.
Ввод-вывод в системах видеоанализа
Первой проблемой, с которой сталкивается разработчик систем видеоанализа, является ввод-вывод изображе ний [2]. Требуемая для реализации этой процедуры ско рость передачи данных может достигать 10 Мбайт/с и более, в зависимости от разрешающей способности как по числу элементов разложения, так и по числу градаций уровня яркости и цветности изображения.
108
Рис. 2. Способ вво да-вывода с пред варительной буфе ризацией
Рис. 3. Способ вво да-вывода с ис пользованием пря мого доступа в па мять
Проанализируем способ с предварительной буфериза цией (рис. 2), который заключается в следующем. Перво начально ввод видеоданных с ТВ-камеры (ТВК) осуще ствляется в специальную буферную память (БП), пара метры которой (быстродействие, формат, емкость)" рассчитаны с целью обеспечить запись кадра изображе ния в реальном масштабе времени. Далее информация пересылается в микросистему с помощью стандартного устройства ввода-вывода. Аналогично организуется вы вод: данные сначала пересылаются в буферную память, из которой затем выводятся в нужном темпе на устрой ство отображения ТВ-монитор (ТВМ).
109
Рис. 4. Способ ввода-вывода с использованием видео памяти
Рассмотренный способ имеет следующие недостатки. Во-первых, появляется избыточность по аппаратуре, по скольку буферная память и память микросистемы дубли руют друг друга. Во-вторых, затрачивается дополнитель ное время на обмен данными между ними. Например,
пересылка |
изображения 256X256X1 бит со скоростью |
30 кбайт/с |
(скорость программного ввода-вывода) займет |
более 250 мс, что в 12,5 раз больше длительности одного кадра —20 мс.
Несмотря на указанные недостатки, такой путь явля ется фактически единственным, если микросистема имеет «закрытую» (с аппаратной точки зрения) структуру, т. е. не допускает подключения к своей внутренней шине дополнительных устройств.
В системах, свободных от данного ограничения, появ ляется возможность применения более эффективных спо собов ввода-вывода изображений. Один из них заключа ется в использовании механизма прямого доступа в па мять (рис. 3). Режим ПДП позволяет периферийному устройству (ТВ-камере или ТВ-монитору) с помощью соответствующего контроллера (КПДП) произвести за хват внутренней шины и в реальном масштабе времени осуществить обмен данными непосредственно с памятью микросистемы, минуя микропроцессор, который на время выполнения этой процедуры блокируется. Следовательно, отпадает необходимость в использовании буферной памя ти, что позволяет сократить объем аппаратуры и избежать
110