Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 13
Текст из файла (страница 13)
В конце программы номер клиента увеличивается на 1; при этом в ЗУ автоматически поступает информация о том, чтб именно заказал и получил данный клиент за истекший период, после чего происходит заполнение накладной. Программа будет выполняться так, что после оформления накладных для всех клиентов произойдет автоматическая остановка и переход к новой программе. Естественно, на практике обработка происходит не так просто, как имеет место в рассмотренной выше программе. Одно- временно с оформлением накладных, естественно, ведутся бухгалтерские книги отдела снабжения н т.
д., так что система обработки расходует на всю эту деятельность значительное время, особенно если речь идет о тысячах клиентов. В данном примере необходимость команды ветвления очевидна. Здесь используется переход, так как в конце программы всегда проверяется, все ли клиенты при оформлении своих накладных ознакомились, например, с ценой. Разумеется, это не единственная возможная команда перехода — количество их может исчисляться сотнями. Чтобы узнать, все ли клиенты ознакомлены с ценами, требуется выполнить сравнение номера клиента, который при каждом условном переходе увеличивается на 1, и общего числа клиентов, которое хранится в ЗУ. При совпадении чисел условный переход не производится и программа останавливается. ЭВМ в процессе оформления накладных будет постоянно возвращаться в начало программы, чтобы осуществлять непрерывное управление процессом и его проверку.
Если во время выполнения программы произойдет какой-либо сбой, то он вызовет переход из управляющей программы в программу восстановления, которая управляет процессами, происходящими при аварийной остановке, и обеспечивает безопасные условия работы. При контроле процесса управления обычно применяется одна или несколько команд сравнения; при этом соответствующие величины сравниваются с граничными (предельными) значениями, которые хранятся в ЗУ в виде констант. Как известно, управляющая ЭВМ обычно не останавливается вообще, так как процессы контроля и управления в ней являются непрерывными. При каждом изменении какой-либо величины производится проверка на превышение предельных значений и, если такое превышение зафиксировано, происходит переход в программу восстановления.
Другая возможность — отключение обнаруженного отказавшего элемента и включение резервного элемента с выдачей сообщения иа панель управления о восстановлении работоспособности. При этом процесс обработки не прерывается. 2.6. Аппаратурное и программное обеспечение Систему обработки данных можно эффективно использовать только тогда, когда она соответствующим образом запрограммирована. Программа обычно состоит нз следующих друг за другом команд, которые хранятся в программном ЗУ, допускающем только считывание (ПЗУ). Программа ЭВМ и обрабатываемые данные, которые также хранятся в ЗУ, образуютпрограммное обеспечение ЭВМ.
Электронные схемы выполняют все операции и хранение данных, а также ввод и вывод данных, Глава 2 т. е. реализуют то, что называется аппаратурным обеспечением. Между программным и аппаратурным обеспечением лежит «пограничная» область — фирменное обеспечение. Это обеспечение, как мы уже видели при рассмотрении МП с разрядно-модульной организацией, представляет собой микропрограммы для элементарных решающих устройств в биполярном исполнении. Как известно, набор следующих друг за другом команд, ко. торые обеспечивают требуемые специальные операции в необходимом порядке следования, называется алгоритмом.
Использование при программировании команд ЭВМ в двоичном коде является довольно трудоемкой задачей, поэтому были предприняты попытки кодировать команды так, чтобы соответствующий буквенный код указывал требуемую операцию или функцию. Такое буквенное обозначение обычно называют мнемоническим или семантическим. Так, например, определенные команды по передаче данных задаются мнемонически в виде МОЧ, т. е. трех букв английского глагола МОЧЕ, который переводится как «пересылать, перемещать».
МОЧ в качестве команды передачи данных легко запоминается, так же как команда суммирования АЭО (абб — прибавлять), команда вычитания 51)В (зиЫгас( — вычитать) и команда перехода ЛМР ()ншр— прыгать, перескакивать). Б м —— ь ! Восьмороннос орсдстооооние дв ро бз Шсстнодаотсросеос ореВстаеленае ~со бьс Рис. 2.6.
Представление 8-разрядной двоичной информапии (иомаиды нлн операнда) восьмеричными и шесснадпатеричиыми числами. При программировании текст записывается в мнемонических камзолах, т. е. на языке ассемблера, а затем соответствующие им двоичные коды легко находятся из таблиц команд. В процессе кодирования каждые три или четыре бита двоичного кода объединяются и представляются восьмеричной или шестнадцатеричной цифрой соответственно (рис. 2.6). эвм Более профессиональный подход к преобразованию мнемонической символики в требуемый двоичный код заключается в использовании ЭВМ, которая имеет программу перевода мнемонического кода в машинный. Такая программа называется программой ассемблирования, или просто ассемблером.
Эта программа не только переводит код, но и осуществляет адресацию однобайтовых, двухбайтовых и трехбайтовых команд. При ассемблировании область ЗУ, отводимая программе, определяется адресом, который вводится в начале выполнения программы и обозначается через ОКО (Ог(ц(п — начало). Во время программирования не требуется постоянно указывать какие-либо определенные участки ЗУ, где должны храниться соответствующие команды. При программировании для целей адресации используются символические имена и метки; при этом мнемонические обозначения используются в качестве значений адресов, которые позже при ассемблировании определяются ЭВМ.
Метки могут быть, например, типа 1.00Р (цикл), 316ХА1. (сигнал) и 310ХА1. Р01г(Т (сигнальная точка). Константы также можно обозначать с помощью аналогичных символических имен. Наличие меток позволяет производить быструю подготовку программы для использования в другом участке ЗУ, т.
е. заново ассемблировать и присваивать ей новый начальный адрес. Если для ввода программы применяется перфолента, то последующая операция ассемблирования будет выполняться с более высокой скоростью. Другая форма ввода программ связана с так называемым редактором, который позволяет вводить при помощи телетайпа команды в машинном коде в виде шестнадцатеричных цифр. На перфоленте телетайпа пробиты шестнадцатеричные цифры в коде АЯСП.
После ввода информации с перфоленты при помощи устройства чтения код АЗСП необходимо преобразовать обратно в двоичный код, для чего требуется специальная программа. Система с перфолентой позволяет осуществить достаточно простой поиск ошибок в соответствующей программе, так как телетайп печатает дубликат правильно пробитой частипрограммы вплоть до той позиции, где находится ошибка. Эту ошибку можно затем исправить с клавиатуры, после чего дубликат ленты печатается далее вплоть до следующей ошибки. Вставить пропущенные команды по этому методу нельзя, так как в таком режиме нужно иметь доступ к ассемблеру, который загружает адреса команд и символических имен.
Редактор в общем случае имеет в своем распоряжении информацию о предварительной обработке данных до определенного качественного уровня, что позволяет ему переходить к оптимальному варианту обработки данных. Конкретно это выра- Глава 2 жается в том, что в программу вводятся все необходимые коррекции и данные на различных приоритетных уровнях. Редакторы могут иметь различные возможности в зависимости от конкретного применения. При предварительной обработке программ, написанных на ассемблере, можно ограничиться применением телетайпа и простой формы редактирования. Более сложные варианты программы-редактора используются при корректировании программ в системах высокого уровня, где ввод данных происходит с терминала, снабженного алфавитно-цифровой клавиатурой и видеодисплеем. При этом предварительную обработку можно вести как в режиме автономного доступа (оН-Впе), так и в режиме прямого доступа (оп-Впе) к вычислительной системе.
2.7. Прерывание — вмешательство в процесс последовательного выполнения програмМы ЭВМ является системой, которая, вообще говоря, не нуждается в контактах с внешними устройствами, кроме случаев, когда ее «внимание» необходимо привлечь к каким-либо особенностям процесса вычисления.
В первые годы развития техники ЭВМ, когда она использовалась разработчиками, ввод информации производился с применением переключателей и устройств для чтения перфолент, а результаты вычислений печатались на переделанной электрической пишущей машинке. О таких периферийных устройствах, как дисковые ЗУ, быстрые принтеры, перфораторы, видеодисплеи и т. д., в то время не было и речи. Процесс вычислений в ЭВМ, еще очень медленный по сравнению с современными ЭВМ, почти не нарушался, за исключением периода выдачи информации на пишущую машинку в течение относительно короткого интервала времени. Позднее ЭВМ начали применять для обработки административно-управленческих данных и появилась необходимость в осуществлении связи с большим числом периферийных устройств.
В этих условиях прерывания процесса решения стали отнимать много времени, поэтому была начата разработка таких систем связи, которые обеспечивали бы минимальные потери времени на прерывание. Примеры прерываний можно легко найти в сфере организационно-производственной деятельности. Например, мастер, остановив одного из своих подчиненных во время работы и спросив, не может ли он помочь заведующему мастерской выполнить определенную операцию, не ждет пассивно ответа, а продолжает выполнять свою основную работу. «Прерванный» работник выполняет указание мастера н затем возвращается к своей основной работе.
ввм Поведение различных устройств в системе обработки данных похоже на поведение участников этого эпизода. Центральная ЭВМ является системой высокого уровня, которая «командует» устройствами более низкого уровня. Система высокого уровня не ждет ответа от системы низшего уровня. После того как система низшего уровня выполнила соответствующее указание, она сообщает об этом системе высокого уровня и, если ей необходимо получить какие-либо дополнительные данные, она должна располагать сведениями, где они находятся. Устройство низшего уровня «стучится в дверь», однако оно должно подождать, пока ему не дадут разрешение на вход.