Строительный блокнот Развитие полупроводниковой электроники ней средой. Для этого служат периферийные устройства. И, наконец, устройство должно работать по определенным правилам. Совокупность таки.ч правил составляет программу его работы. -Чему же тут удивляться? - спросите вы. - Схема, показанная на рис. известна давным-давио. Например, по такой схеме были построены станки Жаккарда, появившиеся еще в XVIII веке. Удивляться можно лишь одному. Тому, что сегодня все, изображенное Н2 рис. 1.1, помещается в корпусе наручных часов и в течение года, а то и больше питается от одной батарейки размером с копеечную монету. Необычно малые размеры, масса, потребление энергии - все это послужило поводом к тому, чтобы современные устройства переработки информации получили названия с приставкой мнкро . В частности, сегодня мы достаточно часто сталкиваемся со словом микропроцессор. В большинстве случаев, когда говорят микропроцессор, имеют в виду систему, показанную на рис. 1,1, при условии, что она действительно заслуживает приставки микро . Одна нз целей всего последующего изложения как раз н состоит в том, что же следует, а что не следует называть микропроцессором. Но эта цель не главная. Главная цель -это разобраться в том, как работают современные устройства типа показанных на рис. 1,1 н чему мы обязаны столь бурным прогрессом в области устройства переработки информации. Начнем с главного. Посмотрим, в чем состоят те правила, которым должна подчиняться работа всякого устройства, перерабатывающего информацик*. 1-2. Последовательности действий, программы, алгоритмы Чта такое алгоритм? Существует распространенное мнение, что алгоритм - это нечто, изучаемое в специальных разделах математики н реализуемое исключительно на электронных вычислительных машинах (мы будем в дальнейшем использовать сокращение ЭВМ). На самом деле понятие алгоритма гораздо шире. Оно применимо к чрезвычайно обширному кругу процессов, происходящих в искусственных н естественных системах. К понятию алгоритма приходят всякий раз, когда возникает необходимость описать некоторую последовательность действий, выполняемых по определенным правилам. Правда в большинстве случаев мы не отдаем себе отчета, что речь идет именно об алгоритме. Поэтому имеет смысл начать с того, чтобы ответить на поставленный вопрос н разобраться, что же такое алгоритм. За примерами далеко ходить не приходится. Взять хотя бы обыкновенный лифт. Опуская второстепенные детали, работу лифта можно описать как некоторую последовательность действий, выполняемых по определенным правилам. Во избежание недоразумений оговоримся сразу же, что действия выполняют устройства лифта, а не пассажиры. Правила сводятся к следующему: 1. Проверь, совпадает лн номер нажатой кнопки с номером этажа, на котором находится кабина. Если да, переходи к выполнению правила 2. Если нет, переходи к выполнению правила 4, 2. Если двигатель работает, останови его н включи тормозное устройство. Переходи к выполнению правила 3. 3. Если дверь кабины закрыта, включи механизм открывания двери. Переходи к выполнению правила 1. 4. Проверь, закрыта ли дверь кабины. Если да, переходи к выполнению правила 6. Если нет, переходи к выполнению правила 5. 5. Включи механизм закрывания двери. Выжди некоторое время и переходи к выполнению правила 4. 6. Проверь, меньше ли номер нажатой кнопки номера этажа, на котором находится кабина. Если да, переходи к выполиенню правила 8. Если нет, переходи к выполнению правила 7. 7. Проверь, больше ли номер нажатой кнопки номера этажа, иа котором находится кабина. Если да, переходи к выполнению правила 9. Если нет, переходи к выполнению правила I. 8. Включи двигатель на спуск. Переходи к выполнению правила I. 9. Включи двигатель на подъем. Переходи к выполнению правила I. Всего девять правил. Они повторены на рнс. 1.2 в виде структурной схемы. Мы советуем внимательно просмотреть рис. 1.2 и убедиться, что структурная схема полностью соответствует нашему словесному описанию. Возможно, те, кто знаком хотя бы с началами программирования для ЭВМ (а таких, наверное, большинство), встретят эти слова с улыбкой, усмотрев здесь попытку распространить иа не совсем обычную область методику и термниологню, принятые у программиста ЭВМ. Но не надо спешить с выводами. Следуйте нашему совету и внимательно продумайте перечень правил. в результате можно сделать следующие выводы. Во-первых, видно, что имеются по меньшей мере две разновидности правил. Правила первого типа предусматривают выполнение конкретных действий: включи двигатель, включи механизм открывания дверей. На структурной схеме эти правила обведены прямоугольной рамкой-такова общепринятая символика. Прн выполнении правил первого типа всегда что-то меняется: включенный электродвигатель выключается, закрытая дверь открывается и т. п. Можно сказать, что правила первого типа диктуют изменение состояния системы. Правила второго типа ие предусматривают выполнения конкретных действий. Их содержание состоит в принятии решения. На структурной схеме эти правила обведены ромбовидной рамкой. Решения принимаются каждый раз в зависимости от того, удовлетворяется или не удовлетворяется, некоторое условие, причем вид такого условия изменяется от правила к правилу (открыта ли дверь, включен ли двигатель и т. п.). Что касается самих решений, то во всех правилах они однотипны: если условие удовлетворяется, переходи к выполнению правила такого-то, в противном случае переходи к выполнению правила такого-то. Не теряя общности рассуждений, мы можем назвать правила первого типа безусловными операторами, а правила второго типа - условными операторами. Во-вторых, каждое данное правило содержит указание (в явной илн в неявной форме) на то, какое правило должно выполняться вслед за ним. Существует условие, согласно которому при отсутствии специального указания вслед за правилом с таким-то номером должно выполняться правило, номер которого на единицу больше. Такая последовательность выполнения правил называется естественной. Наличие явного нлн неявного указания может привести к нарушению естественной последовательности. Опять-таки не теряя общности, мы можем назвать последовательность правил программой работы системы (лифта), случаи же иарушення естественной последовательности выполнения правял--переходами по программе. Переходы могут совершаться как вперед, т. е. к правилам с более высокими номерами, так и назад, т. е. к правилам с более низкими номерами. Заметим, что каждое правило в последовательности однозначно идентифицируется своим номером. Номер правила в последовательности правил называют также его адресом. Рнс. 1 2. Структурная схема алгоритма управления лифтом Третье наблюдение, которое можно сделать, изучая приведенную последовательность правил, особенно важно. Чтобы понять, в чем тут дело, обратим прежде всего внимание на то, что система (лифт), работу которой описывает последовательность правил, функционирует непрерывно в течение достаточно длительного интервала времени (возможно, несколько лет). Если бы мы поставили себе целью описать каждое отдельное действие, совершаемое системой, соответствую-8
|