Author: Франке К.
Tags: компьютерные технологии вычислительная техника микропроцессоры программирование эвм учебное пособие переводная литература энергоатомиздат микро эвм
ISBN: 5-283-02439-3
Year: 1988
К. Франке Энергоатомиздат
К. Франке Введение в микро-ЭВМ Перевод с немецкого В. Н. Грасевича Под редакцией Л. А. Ильяшенко Москва Энергоатомиздат 1988
ББК 32.97 Ф83 УДК 681.31—181.48 Рецензент В. Н. Грасевич KLAUS FRANKE EINFUHRUNG IN DIE MIKRORECHENTECHNIK VEB Verlag Technik, 1984 Франке К. Ф83 Введение в микро-ЭВМ: Пер. q нем. — М.: Энер- гоатомиздат, 1988. — 160 с.: ил. ISBN 5-283-02439-3 Приведены основные сведения о принципе действия и устройстве ЭВМ, главных элементах и способах обработки информации, принципах и методах связи ЭВМ с внешними устройствами в зависимости от характера и сложности решае- мой задачи. Описаны аппаратные и программные средства микро-ЭВМ. Приведены примеры использования микро-ЭВМ. Для инженеров и техников, знакомящихся с возможнос- тями использования микро-ЭВМ в системах управления и конт- роля. Может быть полезна студентам вузов и учащимся сред- них учебных заведений. 1502000000-011 ф---------------- 051(01)-88 103-88 ББК 32.97 Производственное издание Франке Клаус ВВЕДЕНИЕ В МИКРОсЭВМ Редактор издательства А. А. Устинов ." , Художественные редакторы Л. Т, Кирьянов, Ю. В. Созанская Технический редактор Н. П. Собакина Корректор Р. К. Шилова ИБ № 2492 Сдано в набор 31.08.87. Подписано в печать 24.02.88. Формат 84X108’/s2. Бумага типографская № 3. Гарнитура литературная. Печать высокая. Ус'л. печ. д. 8,4. Усл. кр.-отт. 8,72. Уч.-изд. л. 8,72. Тираж 60 000 экз. Заказ 935. Цена 60 к. Энергоатомиздат, 113114, Москва, М-114, Шлюзорая наб., 10 Владимирская типография Союзполиграфпрома при Госкомиздате СССР 600000, г. Владимир, Октябрьский проспект, д. 7 ISBN 5.-283-02439-3 © VEB Verlag Technik, Berlin, 1984 © Перевод на русский язык, Энергоатомиздат, 1988
ПРЕДИСЛОВИЕ ПЕРЕВОДЧИКА Бурное развитие вычислительной техники и проник- новение ее во все сферы деятельности человека опреде- лили выпуск научно-технической литературы по различ- ным аспектам создания и использования ЭВМ для спе- циалистов всех уровней, студентов й учащихся. Однако литературы по вычислительной технике всё еще недоста- точно. • Предлагаемая читателю книга К. Франке в некоторой мере восполняет этот пробел. Она посвящена актуально- му направлению использования^ микро-ЭВМ в системах реального времени, например в задачах контроля и уп- равления оборудованием, технологическими, биологиче- скими и другими процессами. Вопросы применения микрсГ-ЭВМ сложны и много- гранны. Однако автор й не претендует на их исчерпыва- ющее разъяснение. Он осраничивается кругом сведений, позволяющих читателю самостоятельно изучить основы .вычислительной техники и ознакомиться с проблемами .использования микро-ЭВМ. Для читателей, прежде не занимавшихся вычислительной техникой и только при- ступающих к ее освоению, такие вопросы могут оказаться непростыми. Следует отметить, что в процессе перевода с немецкого таблиц, рисунков й схем, содержащих раз- личные команды, встретились определенные трудности, так как приходилось решать, что нужно переводить на русский язык, а что оставлять в соответствии с ориги- налом на английском, как это принято в издаваемой у нас литературе. Однако эти трудности, на наш взгляд, были преодолены и не будут служить помехой при ра- боте с книгой. В. Н. Грасевич Предисловие к русскому изданию После того, как моя книга была хорошб встречена в нашей стране, для меня большая честь и радость узнать, что круг ее читателей увеличится во много" раз благо- даря изданию на русском языке. ’ 3
Основное назначение книги — отражение тех ifepe- мен, которые вызвала микроэлектроника в отношении к вычислительной технике, а также в методах обучения работе на ЭВМ. Принцип действия микро-ЭВМ остался прежним, тем же, что и у вычислительных машин стар- шего поколения. Однако’ уменьшение размеров и суще- ственное сокращение стоимости сделали— микро-ЭВМ продуктом массового производства и применения, приве- ли к революционным изменениям во всех областях тех- ники. В настоящее время существуют две области при- менения микро-ЭВМ: персональные компьютеры на рабочих местах для рационализации проектирования (например, САПР), канцелярских и редакторских работ и административ- ного управления (обработка текстов, цифровые бан- ковские системы), а также в сфере обучения и развле- чений (компьютерные игры); использование одноплатных или однокристальных ЭВМ в различных машинах и аппаратах. В первой из указанных областей микро-ЭВМ вклю- чаются пользователем в производственную систему, ок- .ружаются требуемыми для нее периферийными устрой- ствами. Здесь работающему на ЭВМ не нужно иметь специальных знаний о внутренней структуре машины. Он должен освоить работу на диалогоориентированном языке программ или с описанием поставленной задачи на языке более высокого уровня. Во второй области при- менения микро-ЭВМ от работающего, напротив, требу- ется глубокое проникновение в техническую сторону де- ла, во взаимосвязи между ЭВМ и программой ее работы. Микро-ЭВМ здесь не вспомогательное средство, оно скорее предмет работы. Знания о конструкциях функ- циональных элементов, принципах их действия и пара- метрах необходимы для наиболее полного использова- ния возможностей ЭВМ. Данная книга должна способствовать этому позна- нию творческих возможностей использования ЭВМ. Она предназначена для. читателя, который должен быть на- столько знаком с основами микро-ЭВМ, чтобы само- стоятельно использовать ее в своей практической дея- тельности. При этом изложение сознательно ограничено функциональной .областью, от описания электронной элементной базы мы отказались. Карл-Маркс-Штадт февраль 1987 г. Клаус Франке 4
ПРЕДИСЛОВИЕ Развитие микроэлектроники привело к широкому распространению цифровых ЭВМ (компьютеров). Мик- ро-ЭВМ функционально не отличаются от своих пред- шественников—.цифровых вычислительных автоматов первого поколения, больших и малых ЭВМ, но они выз- вали коренные изменения почти во всех областях тех- ники. Микро-ЭВМ позволяют вести обработку информации непосредственно на месте, что ведет к децентрализации использования ЭВМ и внедрению их в машины и прибо- ры самого различного назначения. Эти перемены определили следующие точки зрения, которые следует иметь в виду в системе технического образования. До сих пор ЭВМ были конечным продук- том: наряду с аппаратными средствами изготовитель поставлял обычно объемные пакеты программ (опера- ционные системы) для профилирования ЭВМ на опре- деленную сферу использования. Поэтому от человека требовалось только уметь подготовить задачу для фор- мирования программы (чаще на языках высокого уров- ня). Использование возможностей, предоставляемых микро-ЭВМ, повлекло за собой необходимость более глубоких знаний технической части ЭВМ, а также их аппаратных и программных средств. Микро-ЭВМ нЬ яв- ляются больше лишь вспомогательным инструментом (средством), а сами становятся орудием труда. Изуче- ние функциональных элементов ЭВМ, их рабочих режи- мов, структуры и показателей быстродействия должны стать поэтому составной частью по крайней мере всех инженерно-технических дисциплин, в которых потен- циальные возможности ЭВМ используются хотя бы ча- стично. В книге не дается указаний о применении микро-ЭВМ. Только правильная оценка возможностей технических систем позволит определить соответствующие сферы их использования. Свой вклад в решение такой задачи дол- жна сделать настоящая книга. Она предназначена для 5
читателей, которые знакомы с микро-ЭВМ и микропро- цессорной техникой настолько, что смогут самостоятель-, но определить возможности их применения и оценить полученный результат. Поэтому в ней не описываются конкретные типы интегральных микросхем, а проана- лизировано состояние техники и обсуждены основные вопросы, связанные с использованием микро-ЭВМ и программированием для них. Я не могу не поблагодарить профессора М. Крауса за идею написать эту книгу, а также -профессора П. Фея и доктора Г. Штерля за полезные советы и обсуждение рукописи во время работы над книгой. Особая благодар- ность инженерам М. Вумпф и С. Вендав из издательства VEB Verlag Technik за сотрудничество, а также инжене- ру Г. Рейгану за тщательную подготовку рисунков.. Клаус Франке
ВВЕДЕНИЕ История электронной вычислительной техники берет свое начало только с середины этого столетия, но на основе этой техники при беспримерных темпах развития было создано такое многообразие типов ЭВМ, в том числе микро-ЭВМ, что необходимо провести вначале обзор предыдущих этапов ее "развития и областей ис- пользования (рис. B.I). В развитии электронной вычислительной техники можно выделить четыре этапа, которые рассматривают обычно во взаимосвязи с применяемой на каждом из них элементной базой (электронные лампы, дискретные транзисторы, интегральные микросхемы разной степени интеграции), причем на первых трех этапах возникло понятие поколения вычислительных машин. Первые цифровые вычислительные машины, изготов- ленные с использованием электронных ламп (1-е поко- ление ЭВМ), были созданы исключительно для выполне- ния объемных научно-технических'расчетов. Эти установ- ки имели гигантские по сегодняшним масштабам размеры, отличались больщим энергопотреблением, требовали вы- соких капитальных и эксплуатационных расходов, но имели производительность такую же, как у нынешних средних настольных или карманных ЭВМ. Однако с их появлением родился новый тип машин, структура и принцип действия которых по-прежнему отражают свойства современной вычислительной техники. Исходя из начального их назначения (для обработки чисел), од- новременно возникло и широко распространилось поня- тие «вычислитель» (компьютер), хотя по существу при- менение этих машин дарно распространилось и. на дру- гие задачи. Такие изменения области использования последовали уже на втором этапе. Разработка и промышленный вы- пуск транзисторов сделали возможным построение вы- числительных устройств меньших размеров, ‘ а также снижение их стоимости, уменьшение эксплуатационных расходов и, как следствие, более широкое использование 7
I этап Числовые I автоматы । ЭВМ 1-го I поколения । ИВМ Семейбтво ЭВМ | 3-го поколения (универсальные ЭВМ, большие ЭВМ) । I I Механические, бухгалтерские ' вычислитель- ные машины 1955 _____________________ JL этап | ЭВМ 2-го поколения 1965 Шэтап 1975 2Fэтап | ИВМ, малые ЭВМ | Мини- ЭВМ Микро- ЭВМ Настоль- ныв ^ЭВМ Карманные* настольные Бытовые Области примс- нения Научно- техниче- ские расчеты 1 Цвнтралиэо- I ванная I обработка * \данных. Бан-\ ки данных,. системы бухгалтер- ского учета процессами, машинами, приборами —> Канцелярские 4-J Терминалы Децентрализован* | ные системы ’ обработки дан- | ных, текстов, научно-техниче- ских расчетов, . проектные рабо- ты, Терминалы a Рис. ВЛ. Этапы развития и области применения электронной вычис- лительной техники их в промышленности и в народном хозяйстве (2-е по* коление). Соединение вычислительных машин с механи- ческими устройствами ввода на перфокартах привело к со’зданию устройств, преимущественно предназначен- ных Аля экономических расчетов. Соответственно возни- кло понятие электронной вычислительной машины (ЭВМ) для обработки массивов данных, где в отличие от научно-технических расчетов требуются хранение (на- копление, запоминание), ввод и вывод больших масси- вов чисел, тогда как процессы обработки (вычислитель- ные операции) отступают на задний план. На втором этапе были предприняты также первые попытки использовать вычислительную машину для уп- равления промышленными процессами (управляющие вычислительные машины — УВМ), где к ним предъяв- лялись принципиально иные требования. Такие ЭВМ в первую очередь наблюдали за измеряемыми показате- лями процессов, чтобы по ним рассчитать исполнитель- ные команды, которые либо прямо управляют процес- сом, либо (как это было характерно на II эта- 8
пе) 'помогают оператору его вести. При этом всегда должно было удовлетворяться обусловленное • дина- микой процесса требование обеспечения приемле- мого интервала времени между получением и вы- дачей информации. Таким образом, возникла новая си- туация: результаты расчетов могли быть использованы лишь тогда, когда они не только верны, но и своевре- менно подготовлены для использования. При таком на- значении ЭВМ было введено понятие обработки инфор- мации в реальном времени. С технической точки зрения ЭВМ должны быть оборудованы специфическими уст- ройствами для ускорения их готовности к получению ин- формации (систёмы прерывания) и повышения их на- дежности. В противоположность ЭВМ для обработки массивов данных, которые должны решать одну за дру- гой самые различные задачи многих пользователей и поэтому постоянно загружены различными програм- мами, -управляющие ЭВМ все время работают с одной программой. Разделение на ЭВМ для обработки дан- ных и управляющие ЭВМ проводится на следующем этапе развития, хотя технические различия обоих типов ЭВМ в дальнейшем снова исчезнут. Отличительными для III этапа являются ЭВМ единой серии (ЕС ЭВМ). Возможность использования инте- гральных микросхем, связанная с улучшением структу- ры ЭВМ, привела к дальнейшему улучшению их габа- ритно-стоимостных показателей. Для таких машин характерна модульная конструкция, состоящая из цент- ральных устройств (процессоров) повышенной' произво- дительности и многообразия различных устройств вво- да-вывода (УВВ), а также памяти большой емкости на магнитных дисках и лентах. Впервые возникла возмож- ность составлять приспособленную для соответствующе- го конкретного назначения конфигурацию ЭВМ. Хотя эти установки применяют пока преимущественно для целей обработки экономической информации, в силу их технических особенностей они могут быть использованы как для научно-технических расчетов, так и для управле- ния процессами (универсальные ЭВМ). В каждом случае речь идет о вычислительных маши- нах, которые в силу своих размеров и • требований к микроклимату нуждаются в отдельном помещении (вычислительные центры). На третьем этапе линия управляющих ЭВМ частично снова сливается с линией 9
ЭВМ для обработки данных, но в то же время направ- ление управляющих ЭВМ продолжает развиваться само- стоятельно и далее. Появились меныпие по объему (но неизбежно и по производительности) установки. При этом возникли новые понятия: малые ЭВМ, малые уп- равляющие ЭВМ, малогабаритные ЭВМ, мини-ЭВМ. С появлением малых ЭВМ возникло еще одно на- правление использования электронной вычислительной техники; децентрализованная обработка данных и.‘ ис- пользования ЭВМ в непосредственной близости от ра- бочих мест. Недостатки вычислительных центров, осо- бенно ограниченный доступ пользователей и длительное время прохождения программ, могут быть при этом в некоторых случаях уменьшены. Кроме того, на третьем этапе зародилось направление создания супер-ЭВМ. Це- левой установкой при разработке эти^с машин было ji остается достижение максимальной производительно- сти вычислительных процессов (нескольких сотен мил- лионов операций в секунду), несмотря на. экономические ограничения со стороны нынешнего состояния электро- ники. Они являются подлинными наследниками ЭВМ первого поколения в том смысле, что предназначены для выполнения научно-технических расчетов конечных объе- мов (например, в научных исследованиях, при модели- ровании сложных систем). Для того чтобы продемонст- рировать производительность и необходимость таких ЭВМ, рассмотрим следующий пример. Для предварительного расчета глобального развития погоды с помощью математической модели, приближен- но отражающей физические процессы в атмофере, после ввода в ЭВМ информации о действительном состоянии погоды для ее суточного прогноза нужно выполнить 1010—1011 вычислительных операций. Средняя ЭВМ третьего поколения с характерным быстродействием 300 000 операций в секунду требует для этой цели от 10 до 100 машинного времени. Следовательно, прогноз погоды опоздает на несколько дней. Супер-ЭВМ со 100 миллионами операций в секунду производит эту ра- боту за 2—20 мин. В 70-е годы берет начало IV этап развития ЭВМ, который отмечен созданием микро-ЭВМ. Собственно говоря, микро-ЭВМ является логическим следствием раз- вития интегральной схемотехники»., когда стало техни- чески возможным сосредоточить значительное число 10
функциональных устройств на одном элементе и, таким образом, изготовить по этой технологии большие блоки или всю ЭВМ в целом. В функциональном смысле они не отличаются от других типов ЭВМ и образуют самый нижний их уровень. Тем не менее они совершили пере- ворот в электронике, так что теперь следует• говорить о новом этапе электронно-вычислительной техники. Но- вое качество микро-ЭВМ состоит в том, что производи- тельные вычислительные машины поставляют в виде модулей или конструктивных элементов и больше не изготовляют, как было до сих пор. Поэтому стало воз- можным развитие прежде всего двух направлений: де- централизации вычислительной мощности и встраивания ЭВМ в оборудование и приборы. Рассмотрим первое. Так как до нынешнего уровня развития соотношение стоимости и производительности говорило в пользу больших вычислительных установок, то господствовала тенденция возрастающей централиза- ции мощности ЭВМ. В соответствии с этим' как при об- работке данных, так и при научно-технических расчетах передача, ввод и вывод информации должны были выполняться либо физически в форме отдельных носи- телей данных, либо электрически с помощью устройств передачи данных на вычислительный центр или из него. В управляющих ЭВМ обработать параллельно многие возможные задачи одной централизованной 'машине затруднительно, так как это приведет к значительному увеличению кабельных связей между ЭВМ и перифери- ей. С появлением микро-ЭВМ снова произошел возврат к процессам, где с экономической точки зрения стано- вится возможной дополнительная децентрализация вы- числительной мощности ЭВМ. Преимущества децентра- лизации в первую очередь состоят в следующем: в об- ласти вычислительной' техники и обработки данных — возможность использования на рабочем месте содержи- мого запоминающих и обрабатывающих информацию устройств; в области управления процессами — функ- циональная развязка задач управления и, таким обра- зом, лучший обзор при разработке и обслуживании си- стемы, а также повышенная надежность из-за ограни- ченного влияния отказов ЭВМ. Одй&ко децентрализация необязательно ведет к по- явлению многочисленных изолированных ЭВМ. Напро- тив, во многих случаях для построения иерархической 11
Оператор УН ЗУ * оператор-ЭВМ Управляющее устройство (ЭВМ) f ЭВМ-объект \ Д Объект Д Рис. 1.1. Обобщенная структу- ра систем реального времени вычислительной структуры требуется обмен информа- цией между децентрализо- ванными ЭВМ. Объединение s их в многомашинную вычис- лительную систему (при ло- кально концентрированном расположении микро-ЭВМ) или вычислительную сеть (при расположенных на рас- стоянии и связанных лини- ями связи ЭВМ) представ- ляет собой общую картину этого этапа развития вычис- лительной техники. - Рассмотрим второе направление. Снижение объема и стоимости открывает разнообразные области примене- ния ЭВМ, общей характерной чертой которых является объединение приборов и оборудования с ЭВМ. На рис. 1.1 показана структура управляющей маши- ны. Если мы вводим в соответствии с понятием «управ- ление процессом» упраадение приборами и машинами всех видов, это будет соответствовать как изначальному, так и современному назначению микро-ЭВМ. Нельзя не заметить, что разработчики ЭВМ сами именно так используют эти устройства (в первую очередь — разра- ботчики счетных бухгалтерских машин, малых вычисли- тельных машин; преимущества большой степени инте- грации в возрастающей степени используются в больших ЭВМ). Смысл определения «микро-ЭВМ является ЭВМ на базе схем с большой степенью интеграции (БИС)» справедлив только для короткой переходной фазы, так как в общем смысле' в будущем будут существовать только микро-ЭВМ. Тогда, естественно, возникают воп- росы: что же является типичным для микро-ЭВМ и нуж- • но ли самостоятельное направление развития микро- ЭВМ? Для ответа на них проведем прежде всего анализ важнейших направлений использования микро-ЭВМ в вычислительной технике. Следует выделить три основ- ных направления. Во-первых, децентрализованные ЭВМ для универ- сальных или специальных проектных ‘ работ. Область применения этих ЭВМ простирается от программируе- мых карманных ЭВМ и персональных ЭВМ до высоко- 12
производительных систем. Хотя по своему объему они часто выполняются в виде настольных ЭВМ, но в силу их развитий периферии (например, цветные графиче- ские дисплеи, графопостроители) и вследствие исполь- зуемых программных систем с большой емкостью памя- ти (дисковая память, накопители на гибких магнитных дисках) с ними можно прямо на рабочем месте решать большую часть задач, решаемых до сих пор на вычис- лительных центрах. Во-вторых, устройства совершенствования канцеляр- ской работы и относящиеся сюда системы связи. Они могут рассматриваться в соответствии с первым на- правлением как децентрализация научно-технических расчетов (здесь речь идет о децентрализации обработки данных). Замена механических или электромеханиче- ских машин электронными устройствами на основе мик- ро-ЭВМ и децентрализованной обработки канцелярских данных и их хранение будут важнейшими направле- ниями развития данной области в последующие годы. При этом следуют одновременно преобразования в тех- нике связи, так как напрашивается подключение такого канцелярского компьютера к сети связи и появляются расширенные* возможности обмена текстовой и иллюст- ративной информацией по электрическим каналам (те- лексные и факсимильные, служба, дисплейное отобра- жение информации). В-третьих, терминалы расширяющихся информацион- ных систем.'Хотя рассмотренные до сих пор устройства первого направления предусмотрены для децентрализо- ванного использования, возможности их связи с после- дующими системами или с центральной ЭВМ через уст- ройства передачи данных совсем не означают, что за- траты значительно увеличатся. Поэтому они являются конечными пунктами (терминалами) расширяющейся информационной системы (банки данных, информацион- но-поисковые системы, вычислительные системы бухгал- терского учета). Для ряда специальных исследований необходимо создавать функционально ориентированные терминалы на базе микро-ЭВМ, например, сервисная служба резервирования мест на транспорте, терминаль- ные посты сберкасс и банков, кассовые терминалы и т. д. Общим для всех направлений является то, что в сво- ей основе они содержат одну или несколько микро-ЭВМ и к выполняемым функциям приспособлены периферией 13
и программными средствами. Таким образом, разработ- чики поставляют как аппаратно, так и программно ча- стично завершенное вычислительное устройство. Эти устройства доходят до пользователя, не требуя при их применении никаких знаций ни о принципе действия, ни ©'программировании используемой внутри них микро- ЭВМ. Это справедливо также для многих систем из об- ласти управления промышленными объектами, как, на- пример, промышленными роботами, станками с число- вым программным управлением, управляемыми от ЭВМ1 устройствами измерений и испытаний. Такие знания до сих пор нужны были лишь ограниченному (хотя и постоянно меняющемуся) кругу специалистов, зада- чами которых являются разработка и развитие этих си- стем. Кроме того, ЭВМ производятся в форме интеграль- ных микросхем или целых комплектов, являющимися для электронной промышленности конечным, а для за- дач пользователя •— промежуточным продуктом. ' Возможности применения микро-ЭВМ должны опре- деляться в первую очередь специалистами в соответст- вующих областях. Для этого надо формировать знания об аппаратных и программных аспектах микро-ЭВМ у значительно более широкого круга лиц, чем это дела- лось до сих пдр. Важной особенностью IV этапа развития электрон- ной вычислительной техники является, таким образом, то, что ЭВМ становятся обычными, доступными постав- ляемыми потребителям функциональными устройствами (в этом они сопоставимы с такими устройствами * как электродвигатель, вентилятор, коробка передач) и, сле- довательно, принцип их действия, характеристики и воз- можности использования следует отнести к основным элементам знаний инженеров и техников, занимающихся: разработкой систем управления. Через десять лет после появления первого микропро- цессорного комплекта элементов выпускается их уже свыше 140 миллионов штук ежегодно. Микро-ЭВМ — это цифровая ЭВМ, построенная с применением электронных схем высокой степени инте- грации, которая изготовляется как промежуточный про- дукт и укомплектовывается пользователем аппаратными и (или) программными средствами в каждом конкретном случае по-разному. Отсюда вытекают следующие аспек- 14
ты изучения микропроцессорной техники, рассматри- ваемые в книге. Во-первых, пользователь микро-ЭВМ должен распо- лагать знаниями о ее программной и аппаратной сто- ронах. Развитие вычислительной техники до настоящего времени не требовало от пользователя знаний аппарат- ных средств ЭВМ. Вычислительные машины использо- вались как вспомогательное средство, и для этой цели конфигурация их. определялась разработчиками: ЭВМ снабжали системой программ (операционной системой), так что в лучшем случае пользователю требовалось расширение имеющихся программных средств. Л4икро- ЭВМ и ее блоки, наоборот, разрабатываются самим поль- зователем и поэтому как аппаратные, так и программ мные их средства выполняют ориентированными на ре- шение конкретных задач. Такие системы требуют от пользователей соответствующей профессиональной под- готовки. Во-вторых, пользователь микро-ЭВМ должен распо- лагать знаниями о ее функциональных особенностях. Следствием высокой степени интеграции функциональ- ных устройств, вызванной успехами микроэлектроники, явилось существенное упрощение разработки аппарат- ных средств. От пользователя не требуется глубоких знаний в области электроники. Поэтому в книге от рас- смотрения электронных основ микропроцессорной тех- ники сознательно отказались. Внутреннее устройство элементов и полупроводниковая технология интересны для пользователя постольку, поскольку этим определя- ются некоторые основные параметры (например, ско- рость переключений, потребляемая мощность, плотность записи информации). Решающими, напротив, являются внешние функциональные проявления, позволяющие композицией элементов и модулей определить оптималь- ную конфигурацию ЭВМ для рассматриваемого случая. В-третьих, пользователь микро-ЭВМ имеет дело с системами реального времени. Интеграция ЭВМ в уст- ройствах, применение их для. автоматизации технических или технологических процессов или учасАя в выполняе- мых человеком процессах проектирования всегда тре- буют введения временных условий при отработке про- грамм. Поэтому в гл. 1 мы прежде всего глубже проана- лизируем использование ЭВМ в системах реального времени. , , 15
ГЛАВА 1 ОСНОВНЫЕ ПОЛОЖЕНИЯ 1.1. Системы реального времени Прежде всего следует отметить, что микро-ЭВМ осо- бенно широко используются как устройства управления оборудованием и процессами, и при этом возникает не- обходимость переработки информации в реальном мас- штабе времени. Требования, предъявляющиеся к управляющей ЭВМ, могут быть разделены на две категории. 1. Реакция ЭВМ на определенное событие (входной сигнал) Должна следовать через строго заданный -про- межуток времени. Для этого ЭВМ должна располагать устройством измерения времени (большей частью вы- полняется аппаратно). 2. Реакция ЭВМ на событие не должна превосходить строго заданный временной интервал, т. е. должна сле- довать как можно скорее. При заданном быстродействии ЭВМ требуется правильно согласовать число поручае- мых машиной заданий и организовать действия ЭВМ так, чтобы ее возможности использовались наиболее эффективно. Цель настоящего параграфа состоит в том, чтобы ввести основные определения и привести примеры мно- гочисленных задач переработки информации в системах реального времени, которые могут быть решены одними и.теми же техническими и организационными средствами. 1.1.1. Основная структура систем реального времени Обобщенная основная структура систем реального времени приведена на рис. 1.1 и предназначена для удержания объекта' (устройства, машины, процесса и т. д) в заданном рабочем состоянии под управлением оператора. Приведенная структура позволяет предполо- жить, что оператору принадлежит в системе активная роль. В действительности ядром такой системы перера- 16
ботки информации является введенная как управляю- щее устройство ЭВМ, программирование которой тесно связывает ее взаимодействие как с объектом, так и с опе- ратором. Роль последнего состоит лишь в том, чтобы передать в управляющую ЭВМ по ее запросу определен- ные параметры, которые при программировании ЭВМ могут рассматриваться как разрешенные степени сво- боды системы. Таким образом, сфера действий операто- ра с самого начала предопределяется программирова- нием управляющей ЭВМ. Из рис. 1.1 видно, что для связи управляющей ЭВМ с объектом и оператором требуются периферийные уст- ройства: исполнительные ИУ для воздействия на объект; измерительные (датчики Д) для реализации обратных связей на управляющую ЭВМ по состояние объекта; задающие ЗУ и устройства индикации У И для взаимо- действия с оператором. Функция оператора в некоторых устройствах принад- лежит человеку, но чаще ее выполняет ЭВМ более вы- сокого уровня. Исполнительные сигналы на объект и сигналы индикации оператору образуют при этом множество выходных сигналов (результат действий) управляющей ЭВМ, в то время как измерительные и за- дающие сигналы являются ее входной информацией. Другими словами, система реального времени включает в себя две системы связи, управляемые от одной ЭВМ; ЭВМ — объект и оператор — ЭВМ. Они существенно различаются с точки зрения быстродействия. В ходе диалога оператор — ЭВМ, особенно если имеет место диалог человека — ЭВМ, время реакции допустимо в пределах нескольких секунд. В обмене информацией между управляющей ЭВМ и объектом оно устанавлива- ется значительно меньшим. 1.1.2. Основные типы систем реального времени Из приведенной на рис. 1.1 обобщенной структуры получают многообразные конкретные технические си- стемы. Рассмотрим с одновременной классификацией приведенные ниже примеры электронного управления, характерные для использования микро-ЭВМ. В зависи- мости от преобладания тех или иных коммуникационных связей (измерительных, управляющих, задающих и ре- гистрируемых сигналов) различают следующие основ- ные типы систем реального времени. 2—935 17
Рис. 1.2. Разомкнутая управ- . ляющая система Рис. 1.3. Замкнутая управляю* щая система Разомкнутые системы управления. Эти системы (рис. 1.2) характеризуются отсутствием измерений сигналов, используемых в обратных связях. Основной информа- ционный поток представляет собой задающие сигналы. Такое решение основывается на том, что управляющие сигналы оказывают на данный объект О детерминиро- ванное влияние и, следовательно, никакой последующий контроль не нужен. Что касается степени связи с оператором On, то здесь можно указать на существование значительных различий. Системы, организующие периодические - или однократные очень длительные действия, например уп- равление светофором без измерения транспортного пото- ка, работают почти без вмешательства оператора. Здесь его действия ограничены, как правило, подключением и отключением системы или сменам^ долговременных программ. Полной противоположностью этому являются управ- ляемые оператором системы. Рассмотрим, например, электронную пишущую машинку. Оператор воздейст- вует на клавиатуру, и на ЭВМ (УВМ) поступают управ- ляющие сигналы, которые затем попадают на печатаю- щее устройство (объект) для печатания знаков и пози- ционирования элементов печатающей системы. У оператора складывается впечатление, что объект уп- равляется прямо по его сигналам, но в действительности управляющим устройством (ЭВМ) произведен разрыв прямой связи между оператором и объектом. В резуль- тате открываются совершенно новые рабочие качества, к которым относятся повышение комфортности рабочего ’места, устранение вероятности ошибок и неточных дей- ствий Обслуживающего персонала. У электронных пишу- щих машинок, к примеру, имеется возможность вывода на печать всего предварительно отредактированного текста набором специального кода на клавиатуре. 18
Последующая модификация систем реального време- ни получается, если выполнить обратную связь ЭВМ с опе- ратором введением устройств индикации (штриховая линия на рис. 1.2). Остановимся на примере с пишущей машинкой. Если позаботиться о том, чтобы в ходе печа- ти на табло (индикаторном устройстве, дисплее) возни- кало построчное или постраничное изображение, полу- чится существенно более комфортабельное рабочее ме- сто, чем обычно, так как в этом случае оператор может корректировать свои действия. Следующий вариант влияния оператора на систему управления получается, например, при использовании ЭВМ в радио и телеприемниках или записывающей ап- паратуре. ДЛя того чтобы можно было предусмотреть включение каналов через длительные интервалы време- ни, ЭВМ программируется так, что задания пользовате- ля запоминаются, время коммутации сравнивается с временем установленных в ЭВМ часов и затем на объект посылается управляющий сигнал, требующий включения, отключения или выбора канала. Отличие от вышеприведенных примеров состоит в том, что, кроме функционального отделения оператора от объекта, мож- но установить любой технически реализуемый интервал между командами оператора и выдачей сигналов управ- ления. Замкнутые системы регулирования (системы управ- ления с обратной связью). Для этих систем характерным является наличие замкнутого контура связи между уп- равляющей ЭВМ и объектом (рис. 1.3). Влияние на объект управляющего сигнала наблюдается и соответ- ственно корректируется при сравнении с заданным целе- вым значением (установкой). В таких системах имеются и широкие вбзможности управления со стороны опера- тора. Автоматическая стабилизация имеет место, если це- левое значение задается один раз или изменяется толь- ко через большие интервалы времени. При этом про- цесс задания либо отпадает (целевое значение фиксиру- ется программистом в программе управляющей ЭВМ), либо обеспечивается единичным или редко посылаемы- ми сигналами. Рассмотрим в качестве примера задачу регулирования климата в помещении. Управляющая ЭВМ получает в определенные моменты данные, напри- мер, о температуре и влажности воздуха и затем сигна- 2* 19
лами управления стремится' установить эти параметры на заданном уровне с заданной точностью, воздействуя на соответствующие агрегаты, несмотря на колебания условия окружающей среды. О следящем регулировании говорят, если целевое значение регулируемой величины изменяется задающей системой с заметной для системы управления скоростью. Типичным примером таких устройств являются системы регулирования положения в управляемых машинах и промышленных роботах. В этих системах часто требу- ется выполнение большого числа движений от электри- ческого или гидравлического приводов с высокими ско- ростью и точностью. Рассмотрим в качестве примера движение руки робота вокруг оси со скоростью 18О.град/с и точностью позиционирования 1°. Если управ- ляющей ЭВМ будет задано от задающего устройства новое (целевое) положение, она включит управляющим сйгналом привод и будет следить за поступающими от системы измерения сигналами об истинном положении руки путем опроса. За секунду должны быть выполнены по меньшей мере 180 измерений, поступление измерен- ного сигнала в ЭВМ может происходить с интервалами в 5,5 мс. Вводимая в ЭВМ текущая информация о поло- жении сравнивается с целевым значением, и после вы- числения отклонения либо продолжается движение с полной скоростью, либо вводится торможение, чтобы, несмотря на инерционность подвижных масс, целевое значение контролируемой величины было достигнуто без перерегулирования. В промежутках между вводами из- меряемых’ значений по мере необходимости произво- дится отработка программы в управляющей ЭВМ, по которой рассчитывают новые сигналы. При обычных рабочих скоростях обработка информации в современ- ных микро-ЭВМ за 5,5 мс может быть выполнено по меньшей мере 2000—3000 команд. Следующий класс регулирующих систем — системы оптимального регулирования — характерны тем, что в них нужна не установка требуемого состояния, а дол- жен быть сформирован критерий качества, исходя из многих переменных состояния. Цель состоит в том, что- бы систематическими пробами (измерениями требуемых сигналов) достичь такого состояния объекта, при кото- ром критерий качества будет самым высоким. Управ- ляющая ЭВМ в определенные моменты времени захва- 20
Рис. 1.5. Диалоговая система Рис. 1.4. Система измерений и исследований тывает измеряемые величины, по которым рассчитывает мгновенные значения критерия качества и затем незна- чительно изменяет управляющую величину. Влияние такого изменения отслеживает теперь ЭВМ. При отри- цательном влиянии* соответствующую управляющую ве- личину можно будет снизить, при положительном она продолжает меняться далее в том же направлении. Измерительные и испытательные системы. От них требуется наблюдение за объектом. Главные потоки ин- формации формируются .измеряемыми и регистрируемы- ми сигналами (рис. 1.4). Вычислительной машине (по- нятие управляющей ЭВМ в таких системах частично не соответствует действительности) поручаются захват измеряемых сигналов и их обработка, а также форми- рование сигналов индикации. По уравнению с прямой регистрацией измеряемых величин при этом возникает возможность раздельно запоминать изменение во вре- мени сигналов на конечном интервале времени, а затем представлять их для повторяющихся процессов регист- рации и обработки информации (формирования сред- них значений, усреднение предельных и т. д.), а также определять взаимосвязь многих измеряемых величин (расчет произведений, критериев качества). Рассмотрим пример из области медицинской техни- ки— запись электрокардиограммы (ЭКГ). Прямое из- мерение (запись ЭКГ с помощью шлейфового прибора или электронной трубки) хотя и позволяет охватить во всех деталях мгновенные значения сигналов, однако из-за большого объема информации неприменимо для длительных или параллельных наблюдений нескольких пациентов. Использование ЭВМ, которая анализирует и затем обнаруживает отклонения от нормального со- стояния пациентов, создает, Таким образом, совершенно новые возможности. ~Так, можно послать сигнал тревоги 21
при переходе заданных граничных значений (в отделе- ниях интенсивной терапии), через продолжительные интервалы времени регистрировать отклонения пара- метров ЭКГ пациентов или записывать кратковремен-• ную и случайную аритмию с момента ее возникновения, а затем выдавать по первому требованию любую инфор- мацию. t . В области измерительной техники внедрение вычис- лительных машин также привело к созданию нового по- коления приборов. Осциллограф — универсальный из- мерительный прибор, позволяющий получать изображе- ния изменяющихся, периодических сигналов. При. однократно возникающих сигналах нужно применять спе- циальные осциллографы с памятью. Сопряжение осцил- лографа с ЭВМ приводит к тому, что измерение еди- ничных процессов сводится к ординарному случаю. Измеряемые величины считываются и вводятся в ЭВМ, там преобразуются и запоминаются в последовательно- сти их измерения. Индикационное устройство может быть при этом полностью отключено от измеряемого процесса. Любое сжатие или растяжение временной оси, начало изображения только после возникновения опре- деленного состояния сигнала (например, достижения- импульсом разрушающего значения), параллельное из- мерение нескольких сигналов — все это лишь некоторые примеры их применения. Конечно, возможности такого измерительного прибора ограничены скоростью обработ- ки информации в ЭВМ, разрешающей способностью аналого-цифрового преобразования сигналов. Если тре- буется изобра.жение двоичных^сигналов, то преобразова- тель на входе в ЭВМ может* быть исключен. Такие специальные осциллографы со встроенными ЭВМ назы- ваются логическими анализаторами. Если разделенные в классических методах измере- ния датчики измеряемых величин и индикаторные уст- ройства связать через вычислительную машину, то появляется возможность воздействовать на исследуемый объект сигналами управления от ЭВМ (штриховая ли- ния на рис. 1.4), что являете?! более высокой ступенью автоматизации измерений и экспериментальных иссле- дований. Диалоговые системы. Для многих систем реального времени характерно то, что в них имеется явно выра- женное взаимодействие оператора и вычислительной 22
машины (рис. 1.6). Тщательный анализ позволяет, од- нако, установить, что основная структура, приведенная на рис. 1.1, все-таки сохраняется, но в ней объект ока-, зывается только информационной стороной. • Наиболее четко это выражено в моделях. Такие си- стемы создаются чаще всего для безопасного изучения реальных процессов и устройств (например,, модели усло- вий полета). Моделируется только объект, поведение которого, т.е. взаимная связь между выходными (изме- ряемыми) и входными (управляющими) величинами, определяется вычислительной машиной с соответствую- щим программным обеспечением. Последняя может быть использована самостоятельно, но возможно моде- лирование на ЭВМ управляющего устройства и объекта одновременно. К этой категории относятся также многие, построен- ные на базе микро-ЭВМ электронные игры. Они явля- ются не чем иным, как моделями систем обслуживания. Следующий логический шаг состоит в том, чтобы создать такие системы, в которых бы. моделировались умственные способность и деятельность людей. Рассмот- рим в качестве примера карманную ЭВМ с фиксиро- ванным набором функций. Она включает в себя микро- ЭВМ, клавишное устройство и видеотерминал. При этом ЭВМ запрограммирована так, что, опрашивая последо- вательно всю клавиатуру и обнаружив нажатую клави- шу, она запускает соответствующие программы обра- ботки данных. Эти программы могут выполнять различ- ные задания. При вводе первой цифры, например, она отражается на индикаторе и ее значение запоминается в соответствующем регистре. При вводе следующих их индикация смещается и значение, соответствующее де- сятичному представлению, вычисляется заново. Если же окажется, что нажата функциональная клавиша (напри- мер, sin), то запустится подпрограмма, вычисляющая ее значение. Общйя программа, которая содержится в карман- ной микро-ЭВМ, раскладывается на две составляющие: 1) управляющую программу, которая управляет диа- логом с пользователем. По ней определяется нажатая клавиша, активизируется требуемая программа обра- ботки и включается устройство индикации; 2) программы обработки; определяющие загрузку карманной ЭВМ и образующие управляемый (или регу- 23
лируемый) объект системы. По сравнению с управляю- щей эти программы принадлежат нижнему уровню, ко- торый активизируется по мере необходимости для вы- полнения специальных заданий, после чего управление снова передается управляющей программе. Отличие от других типов систем реального времени состоит, таким образом, в том, что в последних развяз- ка между объектом и управляющей ЭВМ должна вы- полняться необязательно аппаратно, а чаще програм- мными средствами самой ЭВМ. Поэтому сюда включается широкий класс информа-' ционных, информационно-поисковых и вычислительных систем бухгалтерского учета, в которых гарантировано обращение через ЭВМ многих пользователей (операто-- ров) к одному или нескольким объ’ектам,.и по мере не- обходимости могут выполняться соответствующие функ- ции запоминания й переработки информации. 1.1.3. Многоуровневые иерархические системы Стремление к автоматизации приводит обычно к си- стемам реального времени, которые являются сочета- нием осужденных выше основных типов и, следователь- но, представляют собой сложные системы. До сих пор была характерна тенденция сосредото- чения на одной ЭВМ по возможности большего числа функций. Это приводило к структурам, показанным на рис. 1.6: центральная УВМ управляет многими (часто функционально не связанными друг с другом) отдель- ными объектами О{—Ot или используется одновремен- но несколькими операторами Оп1—Onj (пользователя- ми). Снижение стоимости, объема и энергопотребления, а также конфигурационные особенности УВМ, опреде- Рис. 1.6. Структура централизованного управления 24
СИП подвижных осей Рис. 1.7. Структура управления промышленным роботом с отдель- ными ЭВМ ляемые назначением микро-ЭВМ, приводят к много- уровневым системам путем децентрализации расширяю- щихся функций управления.. На рис. 1.7 приведен пример структуры управления промышленным роботом, где только для перемещения в рабочем пространстве захватов 01—Об требуется уп- равление шестью высокоскоростными прецизионными приводами, а следовательно, и таким же числом систем управления позиционированием. При децентрализован- ном управлении каждой подвижной системе (объекту) соответствует отдельная УВМ, которая несет на себе функции управления движением (текущим положением) под контролем ЭВМ высшего уровня (УВМв)и инфор- мирует ее по каналу индикации о действительных со- стояниях системы управления положением (СУП). Эта ЭВМ высшего уровня является оператором для управ- ляющих ЭВМ системы управления положением. Если в технологическую линию установить несколько таких роботов, иерархия расширится, в то время как регуля-_ торы отдельных роботов снова становятся объектами для последующих ЭВМ более высокого уровня. Тогда можно йсходить из того, что в пределе иерархия завер- шается на самом высоком уровне человеком в роли опе- ратора (рис. 1.8). Поэтому ЭВМ может быть как уп- равляющей, так и контролёром и даже объектом в за- висимости от того, на каком уровне ее рассматривать. 25
Рис. 1.8. Иерархическая управляющая система Следует отметить, что хотя указания о подлежащих выполнению функциях следуют сверху вниз, информа- ция о их выполнении поступает обычно снизу вверх. Это значит, что при разработке программ для управляющих ЭВМ устанавливается определенный уровень в зависи- мости от того, какое управляющее воздействие возмож- но со стороны последующего, более высокого, и какая информация (сигналы индикации) может быть вызвана сверху. Такая децентрализация не приводит к сложным системам, как это могло бы показаться из структурной схемы, а, напротив, вызывает упрощение проектных ра- бот вследствие привязки к объекту управляющей струк- туры; существенно повышается и надежность. 1.1.4. Схемная или программируемая логика управления До сих пор мы исходили из того, что управляющее устройство реализуется на ЭВМ. Несмотря на это, сле- дует рассмотреть альтернативные решения, чтобы уста- новить условия целесообразности и возможности введе- ния управляющей ЭВМ. Обратим внимание прежде всего на простую задачу управления, показанную на рис. 1.9. Привод металло- 26
Рис. 1.9. Пример задачи управления Сигнал Сигнал управления,. ФЭ, Исполни- ИиЯ.. тельный сигнал, ****”* Л/ О 1 О о Г 7 7 О О О о о 7 О а / обрабатывающего станка, сблокированный с защитным устройством рабочей зоны, включается кнопкой К толь- ко вручную (Л1 = 1). Для сигнализации о состоянии это- го защитного устройства служит фотоэлемент ФЭ. Если защитное устройство включено, появляется сигнал фо- тоэлемента (£2=1). Включение станка (Ei = l) без исправного ограждения оповестит оператора об ошибке предупредительным сигналом СП 02 = 1). Система уп- равления СУ в этом случае должна предотвратить рабо- ту двигателя М привода 01 = 0). . Взаимосвязь между входными и выходными величи- нами в реализованном устройстве, управления задана таблицей истинности, т. е. записана аналитически в виде комбинационных логических функций (рис. 1.9). Этот пример характерен для широкого класса задач управ- ления, в которых состояние выходной величины зависит в каждый момент времени от состояний на входе, при- чем предшествующая сйтуация не оказывает влияния на последующие события. Для реализации таких управляю- щих устройств существуют следующие возможности.* Применение логических элементов. Для построения регуляторов (контроллеров) промышленностью давно выпускаются (еще до изготовления интегральных микро- схем) комплекты основных логических элементов (И, ИЛИ, инверторы, триггеры и т.д.). Проектирование та- ких регуляторов требует следующей последовательности действий: определение реализуемых логических функций связи А,=1(Е\, Е2,..., Еп) между выходными и вход- ными величинами из заданной постановки задачи; по- строение удовлетворяющей этим функциям электриче- ской схемы на основе имеющегося ассортимента основ- 27
Рис. 1.10. Варианты реализации электронной системы управления: а — на логических элементах; б — на элементах памяти; в — с УВМ них элементов; изготовление и комплектование печатных плат. На рис. 1.10, а приведена схема для рассмотренного примера. Программирование (получение логической функции) управляющего устройства обеспечено здесь способом монтажных соединений логических элементов. Изменение их взаимных связей позволяет реализовать некоторые другие функции. Такие варианты устройств управления называют мон- тируемыми или чисто аппаратными решениями. Они отличаются высоким быстродействием. Время запазды- вания между изменениями на входе и выходе определя- ется суммой времен запаздывания последовательно про- ходимых логических элементов; в зависимости от серии оно находится в пределах от 10 др 150 нс. Для них ха- рактерным является также функциональная жесткость, так как незначительное изменение поставленного зада- ния требует нового проекта со всей отмеченной выше последовательностью действий. Применение запоминающих устройств. В электрон- ных запоминающих устройствах при подаче определен- 28
ного входного сигнала (адреса) может быть считана лкн бая строка из памяти. Следовательно, если использо- вать входные сигналы в качестве адресов элемента памяти и позаботиться о том, чтобы точно в адресуемой строке находилось* нужное для получения выходного сигнала содержимое в соответствии с заданной табли- цей истинности, та поставленную задачу управления можно также решить (рис. 1.10,6). Запаздывание в таких устройствах обусловлено так называемым временем обращения в память. Оно в зави- симости от полупроводниковой технологии может ме- няться от 5Q до. 500 нс. Преимущества таких устройств состоят в том, что аппаратные средства (монтаж эле- ментов памяти на печатных платах) не зависят от вы- полняемых функций, так как функции устанавливаются только содержимым элемента памяти. Однако путем соответствующего подключения выводов элемента па- мяти на печатной плате могут быть решены разнооб- разные задачи управления. Элементы памяти изготов- ляют как постоянные запоминающие устройства (ПЗУ), содержимое которых предусматривается изготовителем в соответствии с требованиями заказчика, или как про- граммируемые запоминающие устройства (ППЗУ, сти- раемые ППЗУ). Реализация последнего способа назы- вается также независимой от изготовителя. Применение ЭВМ (решающих элементов). В этом случае используют широко распространенные заранее изготовленные аппаратные средства в форме работоспо- собных вычислителей (например, вычислительных моду- лей). Выполняемые функции устанавливаются програм- мой (программное регулирование). В рассматриваемом примере программа должна вы- полнять следующие функции (рис. 1.10, в): циклический опрос входных переменных, т. е. ввод информации об изменениях на входе; вычисление требуемых входных величин; выдачу результата. Преимущество метода в том, что при одних и тех же аппаратных средствах можно реализовать несколько раз- личных задач управления (по сравнению с применением элементов памяти) только путем изменения программы ил и-ее части. Такая высокая.степень гибкости связана с определенным недостатком: запаздывание обусловле- но временем прохождения программы и заметно выше (до.20%), чем в случае чисто аппаратного решения. 29
Если сравнить все три приведенных варианта, можно установить следующее. Применимость программируемых управляющих устройств для .решения различных задач и связанное с этим снижение затрат на проектирование говорят в пользу ЭВМ. Ограничения на их применение реже определяются экономическими факторами, а ча- ще — меньшим быстродействием по сравнению с аппа- ратными решениями. Для тех задач, которые предъявля- ют высокие требования к скорости реакции управляю- щих устройств, может оказаться предпочтительным построение жестких регуляторов. 1.2. Устройство и принцип действия ЭВМ Название вычислительная машина (компьютер) со- ответствует изначальной области их применения — вы- полнению научно-технических расчетов. Для понимания же устройства и принципа действия целесообразно, на- против, прежде всего отказаться от всяких ассоциаций такого использования ЭВМ или же связать понятие вы- числительйои машины с настольными и карманными вычислительными машинами. Для ЭВМ больше подходит определение их как про- граммно управляемых электронных устройств, способ- ных перерабатывать, запоминать, выдавать в окружаю- щую среду и воспринимать из нее информацию. В соответствии с этим определением ЭВМ состоит из следующих функциональных устройств (рис. 1.11): центрального процессора ЦП (для переработки инфор- мации, управления обработкой программ); памяти (для запоминания информации, вывода УВВ (для обмена Рис. 1.11. Функциональные устройства ЭВМ программ); устройства ввода- информацией с окружающей средой). Следует уточнить, что в этом случае понима- ют под информацией. 1.2.1. Представление информации в ЭВМ Информация в вычисли- тельных устройствах может представляться и обрабаты- ваться двоичными словами конечной длины (слова дан- 80
ных, данные). Для упрощения . предположим вначале, что разрядность слова в ЭВМ определенного типа посто- янна, т. е. информация всегда передается, перерабатыва- ется и запоминается в следующей форме: Бит#—1 Бит#—2 Бит 2 Бит 1 Бит О Двоичное сло- во О 1 О # двоичных знаков (бит) В каждую ячейку слова помещается один двойчный знак (бит), который может принимать значение 0 или 1. Такое представление информации обусловлено тем, что существующие ныне ЭВМ создаются на базе элементов, которые могут находиться только в двух электрических состояниях. При слове, содержащем N бит, можно об- разовать 2" вариантов двоичных слов, т. е. получить 2м различных состояний. Рассмотрим в качестве примера случай N=3. Полу- чим восемь различных двоичных слов: ООО, 001, 010, 011, 100, 101, 110, 111. Каждому и^щих теперь может быть поставлен в соответствие любой, но только один смысл. Так, эти слова могут быть использованы для кодирова- ния восьми числовых значений (0, 1, 2,..., 7 или —4, —3, —2,..., О,..., +3), букв (Л, В, С,.., И) различных цветов предмета или сигналов управления каким-либо устройством, двигателем, нагревателем и т. д. Соответствие (или набор правил), устанавливающее способ представления данных в ЭВМ, называется кодом. Таким образом, понятие ЭВМ можно ввести конкретнее. Электронная вычислительная машина — это прог- раммно управляемое электронное устройство для пере- работки, запоминания и ввода-вывода двоичных слов конечной (чаще постоянной) длины, которым может быть поставлен в соответствие любой смысл. Соответ- ствие численных значений представляет собой частный случай. Очевидно, что разрядность слова является важной характеристикой ЭВМ. Для различных типов машин она различна. Электронные вычислительные машины третье- го поколения (ЕС ЭВМ) имеют, например, стандартную длину слова 32 бит, большинство управляющих и мини- ЭВМ— 16 бит. В то же время выпускаются микро-ЭВМ с разрядностью слова 4, 8, 16 или 32 бит, причем боль- 31
шей частью у них процессоры 8- или 16-разрядные. Возникает вопрос: как можно или нужно выбирать разрядность ЭВМ? Ниже приведена взаимосвязь неко- торых пар чисел, откуда видно, как удвоение разрядно- сти слова приводит к экспоненциальному росту числа кодированных состояний. Длина слова W Число двоичных слов 2^ 4 16 8 256 16 65 536 32 4 294 367 296 Прежде всего' следует отметить, что разрядность сло- ва выбирается в соответствии с числом состояний, ко- торое в каждом конкретном случае бывает различно. Рассмотрим некоторые примеры. 1. Для того чтобы закодировать десятичные цифры, достаточно использовать 4-разрядные слова. Кодовая таблица может иметь следующий вид. • 0 0000 1 0001 2 0010 3 ООП 4 0100 5 0101 6 ОНО 7 0111 8 1000 9 1001 Остаются лишними шесть двоичных слов, не исполь- зуемых в этом случае: 1010, 1011, 1100, 1101, Г110, 1111. Приведенное соответствие используется часто’и назы- вается двоично-десятичным кодом. 2. Кодирование полного набора знаков для записи текстов (прописные и строчные буквы, цифры, специаль- ные знаки) требует уже 7-разрядных слов. Поэтому введена соответствующая кодовая таблица в качестве международного стандарта. 3. Если нужно закодировать в ЭВМ рациональные числа, то при возрастающем диапазоне их представле- ния‘необходима большая разрядность слов.'Представ- ление всех шестизначных положительных и отрицатель- ных чисел с фиксированной запятой (запятая в любом месте, но фиксирована) требует, например, наличия 1 999 999 чисел (состояний) и, таким образом^ разряд- ности слова 21 бит. Из приведенных примеров видно, что при использо- вании ЭВМ для обработки чисел с целью расширения области их представления (тем самым повысить точ- 82
ность вычислений) нужны слова как можно большей длины. Этому положению следует противопоставить то, что длина слова в решающей мере определяет техниче- ские затраты и, следовательно, стоимость ЭВМ. Элект- ронная ячейка памяти может запомнить только один бит, логические элементы перерабатывают только одно- разрядные двоичные слова. Поэтому все они должны на- бираться параллельно N раз. В качестве коммуника- ционной связи между группами элементов нужны шины из проводников. Следовательно, при проектировании ЭВМ необходи- мо идти на компромисс между длиной слова и быстро- той вычислений. Это часто приводит к тому, что опреде- ляемого длиной слова множества различных слов недо- статочно, чтобы закодировать в каждом требуемом случае нужные состояния, что особенно, важно при чис- ленных расчетах. Выход может быть только в том, что- бы для представления информации привлекать несколь- ко двоичных слов. Так как за один шаг ЭВМ обычно мо- гут переработать, передать и запомнить двоичное слово только стандартной длины, такие процессы нужно вы- полнять последовательными во времени шагами. Вместо одной команды уже нужна программа для выполнения элементарных (микро) операций. Следовательно; время выполнения операции значительно увеличится. Отметим, что, несмотря на конечную длину слова, в ЭВМ. можно вводить и обрабатывать любое число со- стояний (любой диапазон представления чисел). Но если число состояний превосходит область, .заданную длиной слова ЭВМ, это ведет к снижению быстродейст- вия. На быстродействие ЭВМ в значительной мере влияет способ кодирования. Для задач управления вычисли- тельные процессы играют обычно чрезвычайно важную роль. Целесообразно рассмотреть только простейшую возможность кодирования десятичных чисел — в двоич- ном коде без знака. В этом случае каждый разряд слова данных приво- дится к основанию 2 с возрастающими значениями пока- зателеи степени. 1 0 Бит N— 1 /V — 2 2 1 0 ' 1 1 0 Двоичное ело- во Значение 2лг-1 2" 2? 2' 2° 3-935 33
Следовательно, таким кодированием можно предста- вить натуральные числа в пределах от 0 до (2N—1). Рассмотрим некоторые примеры кодирования 8-раз- рядных слов, часто используемых в микро-ЭВМ, в кото- рых представляемая числовая область растянута собт- ветственно от 0 до 255. При этом справедливы следую- щие соотношения: 10 110 0 11 + 128 +32 +16 +2 +1 =179 0 10 0 1 10 0 +64 +8 +4 =76 11*111111 - +129 +64 +32 +16 +8 +4 +2 + 1 =255 1.2.2. Циклы команд Из представленных на рис. 1.11 функциональных уст- ройств активной частью ЭВМ, подлинным ядром ее, яв- ляется центральный процессор. Центральным процессо- ром (ЦП) называется такое функциональное устройство ЭВМ, управляемое тактовыми импульсами, которое спо- собно в бесконечной последовательности выполнять по- сылаемые ему команды. Каждый процессор имеет опре- деленный состав команд, т. е. некоторое количество слов, которые юн понимает и способен выполнить. Он начина- ет свою работу при возникновении тактового импульса и непрерывно проходит так называемый цикл команды. Под циклом команды (командным циклом) понимает- ся отрезок времени, необходимый для ее выполнения. За это время процессор должен выпблнить следующие операции (рис. 1.12). Во-первых, вызвать команду. Для нее процессор рас- полагает местом в памяти — регистром команд. Поэтому команда из памяти программы сначала загружается в этот регистр. Во-вторых, ее выполнить. Срдержимое регистра "ко- манд тотчас анализируется процессором, декодируется и выполняется в типовой для каждого процессора после- 34
Взаимодеаствая Рис. 1.12. Цикл команды и виды взаимодействий в ее цикле довательности элементарных шагов — микрокоманд. При этом в зависимости от ее содержания нужны либо дей-. ствия внутри процессора, либо процессы обмена данны- ми, взаимодействия с элементами памяти (считывание или запись) или с каналами ввода-вывода (выдача или ввод информации). Продолжительность этого, этапа мо- жет быть различной. В-третьих, определить адрес следующей команды. Прежде чем запустить следующий цикл, нужно устано- вить соответствующий адрес программной памяти. Есте- ственно предположить, что команды расположены в про- грамме в непрерывной последовательности. Тогда адрес должен быть увеличен на единицу. Одного этого недоста- точно, потому что в таком случае принцип действия ЭВМ не отличался бы от известных автоматов, управляемых последовательной программой (у автоматов память вы- полнялась на вращающихся перфорированных бараба- нах). Однако новое качество, программно управляемого автомата состоит в том, что он способен обеспечить вет- вление программ. Это значит, что в зависимости от ранее полученного результата обработки информации (ну- левой результат, переполнение разрядной сетки) возмож- но альтернативное продолжение программы, при кото- ром специальными командами (командами переходов) программистом может быть обеспечено ветвление по 3* 35
меньшей мере в двух направлениях. При выполнении ус- ловий перехода по ранее полученному результату будет иметь место адрес не последующей команды, а новый, содержащийся в слове команды. Таким образом созда- ется основа дальнейшего счета в следующих циклах до тех пор, пока в программе не последует новая команда перехода. Так как адресов перехода может быть и пройденный ранее адрес команды, то можно программировать и цик- лы. В-четвертых, осуществить проверку запросов пре- рывания. С помощью команд переходов можно програм- мировать только ветвления программ, следующие в де- терминированные моменты времени, т. е. когда процессор при последовательной отработке программы доходит до команды перехода. Однако во многих случаях работы в реальном времени нужно как можно скорее среагиро- вать на определенные события, возникающие вне процес-" сора случайно. Поэтому в такой ситуации должен про- изойти переход к подпрограмме, выполняемой как необ- ходимая реакция ЭВМ. Это означает, что осуществляется прерывание текущей программы. В соответствии со слу- чайным характером этот вид ветвления в программе не пцедусмотрен: он должен в каждом из многочисленных случаев распознаваться и осуществляться специальными аппаратными средствами. Такие устройства ЭВМ назы- ваются системами прерывания и являются (по крайней мере частично) составной частью каждого ЦП. Само собой разумеется, что возникший запрос прерывания (сигнал прерывания) прерывает работу про- цессора не сразу. После того как выполнится текущая команда и определится адрес последующей, перед запус- ком нового цикла всегда проводится проверка: возникло ли в промежутке между этими циклами требование пре- рывания (рис. 1*12) ? Если да, то последующий адрес сохраняется в специально предусмотренной для этого об- ласти памяти, а системой прерывания вырабатывается предусмотренный для каждого конкретного случая на- чальный адрес подпрограммы обслуживания прерыва- ния. Таким образом, гарантируется, что после ее выпол- нения сохраненный первоначальный адрес следующей команды извлекается (разумеется, с временной задерж- кой) и прерванная программа может быть продолжена без потери информации. 36
Таким образом, следует различать прекращение по- следовательного выполнения программы по командам йерехода и по возникающим требованиям прерывания. В обоих случаях последствие одинаково: продолжение программы следует не в соответствии с последующей командой программной памяти, а по предусматриваемо- му программистом адресу; Но по существу здесь имеют- ся значительные различия. Командами перехода осуще- ствляется детерминированное ветвление программы как реакция на определенные события, возникающие по ходу выполнения. Прерывания, напротив, являются ветвлени- ями программы вследствие случайных событий, появля- ющихся независимо от выполняемой программы, как не- обходимая реакция ЭВМ на события вне процессора. • Способность прерывания является решающим инстру- ментом обработки информации в реальном времени. Про- пускная способность систем прерывания (например, тре- буемое время перехода к подпрограмме) является поэто- му важнейшим параметром ЭВМ. Вернемся еще раз к циклу команды. Запуск- текущих повторяющихся циклов осуществляется поступающими от процессора тактовыми импульсами. Для любой зада- чи нужно определенное количество тактовых периодов. Каждый этап выполняемой программы требует у боль- шинства процессоров различное число тактов, соответст- вующее объему выполняемой работы. Следовательно, время выполнения команд хотя и различно, но всегда со- ставляет целое число периодов тактовых импульсов (рис. 1.13). Тактовые импульсы образуют синхронный времен- ной растр, в соответствии с которым протекают не толь- ко все внутренние этапы передачи и обработки данных,- но также и процессы ввода-вывода информации. Цикл N | Цикл | Цикл N+Z | N+5 Время Выполне- J i er i пт | 9Т лил команд V(z,5mkc) 1 (г, 75 мкс) 1 (2,25мкс) Рис. 1.13. Тактовые импульсы процессора и циклы команд 37
Тактовые импульсы Циклы команд < f I I I III II jjinjuinnnnjinnnnnnnnnjinjinnjin^ ' Й \вы^нение | j* Sg N N+1 | некие * N+Z N+3 Совмещение циклов &g «§5 N Выполнение N+i k V//7/A I Оживи- I ние Выпол- нение N+Z TT^' g kzw»- данае гн-з I&5 Рис. 1.14. Совмещение циклов Частота тактовых импульсов определяет одновремен- но быстродействие ЭВМ и выбирается, следовательно, как можно большей. Однако она ограничена временем задержки и распространения сигналов. Поэтому глав- ной целью дальнейшего развития технологии-изготовле- ния интегральных схем является повышение допустимой частоты тактовых имп/льсов. В настоящее время микро-ЭВМ и микропроцессорные комплексы работают чаще всего с тактовой частотой до 10 МГц. До сих пор при рассмотрении циклов команд мы ис- ходили из того, что все четыре задачи выполняются по- следовательно одна за другой. Точный анализ показыва- ет, что за один цикл команды возможно как выполнить параллельно определенные процессы, так й совместить определенные задачи следующих один за другим циклов, для того чтобы повысить быстродействие. На рис. 1.14 показано как еще на этапе выполнения одной команды вызывается уже следующая, которая поступает для вы- полнения, конечно же, только в случае отсутствия требо- вания прерывания. 38
Память УВВ Стек /7/7 СК Адрес команды Команда | 1 ' ГЛ ' I госи ?~УпппС Адрес Регистры 'Установка I адреса следующей команды | ЛЛГ I I - О | 'Действие =3 Данные АЛУ РК Т X- ------/ Требования прерываний ГТИ Рис. 1.15. Структура ЭВМ 1.2.3, Элементы ЭВМ Из последовательности действий в цикле команды (рис. 1.12) можно непосредственно определить необхо- димые для ЭВМ и процессора элементы. На рис. 1.15 приведена структурная схема ЭВМ. Рисунок является одновременно важной основой для обсуждения в следу- ющей главе аппаратных средств микро«ЭВМ. Рассмотрим сначала расположенные в левой его по- ловине модули, которые служат для организации выпол- нения цикла текущей команды: регистр команд (РК) хранит в течение цикла выполняемую команду и постав- ляет входную информацию для дешифратора (ДК), ко- торый вырабатывает управляющие сигналы для прочих модулей ЭВМ в соответствии с тактовыми импульсами, поступающими от генератора тактовых импульсов (ГТИ). Таким образом, ДК является сложным модулем, определяющим структуру последовательности команд ЭВМ. Требуемая в конкретном случае последовательность команд (системная программа) хранится в программной памяти (ПП). В начале цикла команды она считывает- ся из ПП и передается в РК. Ранее был подготовлен ад- 39
pec программной памяти в регистре адреса команды (счетчике команд — СК). Содержимое СК после этого либо отсчитывается последовательно, либо вводит- ся новая последовательность адресов команд, если в этом цикле декодирована команда перехода. Система прерываний (СП) воспринимает требование прерывания и после того, как выполнится текущая ко- манда, содержимое счетчика команд сохраняется и ус- танавливается начальный адрес обслуживания прерыва- ния. Сохранение содержимого счетчика команд и воз- можной дополнительной информации о состоянии ЦП к моменту прерывания осуществлятся в специальной об- ласти памяти — стеке (памяти состояния). Справа на рис. 1.15 показаны те модули, которые предназначены для реализации собственных рабочих за- дач ЭВМ. Ядром ЭВМ является арифметическо-логичес- кое устройство (АЛУ). Управляющим сигналом, посы- лаемым дешифратором команд, в этом модуле выполня- ется по необходимости логическая или арифметическая операция с одним или двумя операндами, результатом которых является новое двоичное слово. Этот процесс происходит очень быстро, обычно за один период такто- вых импульсов. Таким образом, объем реализуемых этим модулем функций в решающей мере определяет произво- дительность ЭВМ. Часто экономят на АЛУ для сниже- ния аппаратных затрат и предусматривают минимальный объем операций, особенно арифметических. Арифметиче- ские действия более высокого порядка выполняются про- граммно последовательностью основных простых опера- ций. Экономия на этой части аппаратных средств приводит к высоким затратам на программирование и снижению быстродействия ЭВМ. Двоичные слова (данные, рперанды) для обработки в АЛУ поступают из определенных ячеек памяти-данных, где сохраняется и результат. Так как для процессов пе- редачи (взаимодействий) между АЛУ и памятью дан- ных (ПД) нужно несколько периодов тактовых импуль- сов, часто малая часть ПД помещается вблизи АЛУ и на- зывается в этом случае регистром временного хранения данных. Доступ к нему осуществляется очень быстро, что приводит в конечном счете к уменьшению времени вы- полнения команд. Между памятью данных, регистром временного хранения и АЛУ нужно, следовательно, уста- новить магистраль для передачи данных, ведущую ко 40
всем портам ввода-вывода (ВВ). Порты ВВ являются устройствами связи между ЭВМ и внешними устройства- ми. Их функция наиболее просто может быть объяснена следующим образом: порты ВВ являются областями па- мяти соответствующего слова, с которыми в отличие от областей памяти данных процессора могут производиться только операции считывания (порт ввода) или записи (порт вывода). Соответственно противоположные дейст- вия осуществляются со стороны внешних устройств. Для выбора из всей совокупности определенной цели необходимо задание адреса как для ПД, так и для пор- тов ВВ. Такая адресная информация передается ДК. Приведенная на рис. 1.15 схема поясняет расчленение ЭВМ на- две основные части: управляющую (относящие- ся к ней модули имеют штриховую окантовку), запуска- емую тактовыми импульсами, проходящими циклы команд в синхронном режиме, и управляемую (относя- щиеся к ней модули имеют сплошную окантовку), кото- рая в соответствии со считываемой из программной памя- ти последовательностью команд побуждается к выполне- нию определенных операций обработки и передачи информации между АЛУ, программной памятью и порта- ми ВВ. Связь между этими частями осуществляется глав- ным образом по сигналам системы управления, кроме двух случаев. Для выполнения условных переходов не- обходима обратная связь правой части с модулем, опре- деляющим адрес следующей команды, чтобы передать признаки (выставить флаг) последнего'результата. А кро- ме того, для управляющей части должна иметься воз- можность вернуться к содержимому регистров. Рис. 1.15 поясняет прежде всего возможные функцио- нальные связи между модулями ЭВМ. Практическая их реализация может быть совсем иной. Так, различные ти- пы памяти могут объединяться в блок памяти и соответ- ственно этому подсоединяться совместно на .общую маги- страль связи (см. гл; 2). 1.2.4. Система команд центрального процессора Количество команд, которые может выполнить ЭВМ, определяется устройством ЦП, особенно ДК и АЛУ. Изучение составов команд различных ЭВМ позволяет прежде всего предположить, что каждая из них обладает своими особенностями. В действительности же многооб- разие в значительной мере определяется различными спо- 41
собами обозначений и представлений. В соответствии с единым принципом^ действия и возможностью электрон- ной реализации существует элементарный состав команд, присущих почти каждому отдельному процессору. Кроме того, значительные различия могут иметь внешнее про- явление в виде дополнительных команд, выражающих специфические особенности процессора, и тем самым де- лают возможным его специальнее конкретные примене- ния. Собственно говоря, точное знание состава команд ну- жно только узкому кругу разработчиков программ. Сточ- ки зрения эффективности программирования в дальней- шем будем ориентироваться, на использование при про- граммировании языков высокого уровня. К э.тому следу- ет заметить: программа на ЭВМ должна состоять из команд, имеющихся в составе команд процессора. Следо- вательно, каждая программа, записанная на языке высо- кого уровня, должна выводиться на процессорный уровень одним или несколькими этапами ее перевода. По- этому для понимания принципа действия и оценки произ- водительности ЭВМ нужно располагать основными све- дениями относительно составов команд. Только тогда станет понятно, почему для ЭВМ с быстродействием 100000 операций в секунду нужно в конечном счете зна- чительное время вычислений при "решении кажущихся- простыми задач. Далее познакомимся с основными структурами соста- ва команд, исходя из их типов, а в качестве примера при- ведем простой эталонный состав команд. В соответствии с назначением можно разделить со- став команд на следующие группы — типы команд. Команды обработки1. Они управляют АЛУ и приво- дят к тому, что в результате обработки одного или двух операндов получается новый результат. Наряду с видом выполняемой операции (например, сложение, умножение, деление) в команде должны содержаться указания о ме- сте в памяти или о положении регистров, с которых вы- зываются операнды или в. которых сохраняется резуль- тат. Таким образом, нужно задать самое большее три адреса. Чтобы снизить это число (в конечном счете — уменьшить длину слова команды), предпринимают опре- 1 Их называют еще командами арифметических и логических операций. (Примеч. пер.). 42
деленные ограничения относительно • допустимых мест операндов. Тогда можно ввести подразделение процессо- ров на двухадресные и одноадресные. Первые всегда за- поминают результат на месте первого операнда. Таким образом, в команде достаточно указать лишь два адреса, но сообщаться будет первый операнд. Одноадресный — это такой процессор, в котором с са- мого начала установлено определенное место в памуГги (регистр). Этот регистр -еще называют аккумулятором (регистром результата). Следовательно, в команде не- обходимо задать только один адрес для второго операн- да, но перед обработкой надо прежде всего передать первый операнд в аккумулятор. Команды обработки нашего эталонного состава команд сведены в табл. 1.1 исходя из того, что имеется Таблица 1.1. Эталонный состав команд обработки данных . Арифметическо-логические операции с одним операндом — ИНКР Повысить операнд на 1 (инкрементировать) —ДЕКР Понизить операнд на 1 (декрементировать) —НЕ Логическое побитное отрицание операнда Арифйетическо-яогические операции с двумя операндами —СЛОЖ Сложить операнд с содержимым аккумуля- тора —ВЫЧ Вычесть операнд из содержимого аккуму- лятора —И Логическая побитная операция И операнда . с содержимым аккумулятора —ИЛИ Логическая побитная операция ИЛИ опе- ранда с содержимым аккумулятора Операция Адрес операнда —Регистр N. Адрес регистра N, содержащего операнд (прямая адресация) —(Регистр N). Адрес регистра .N, содержаще- Го адрес ячейки памяти, в ко- торой находится операнд (кос- венная адресация) одноадресный процессор, т. е. задается только адрес ре- гистра второго операнда, а центральному процессору присуще только минимальное количество команд. Запи- 43
сывая команды в таблицу, следует отметить, что внутри ЭВМ они, как и вся информация, кодируются двоичными словами. Для внешнего представления программы жела- тельно, однако, использовать мнемоническую запись, т. е. применять такую последовательность букв, при которой непосредственно выражается функция команды. При этом следует вступить в компромисс между затратами на запись и возможностью понять ее. Поэтому в практике программирования используют в основном сокращенные формы записи, в основе которых лежит английская тер- минология. Так как в книге должны быть охвачены в пер- вую очередь важные особенности системы команд ЭВМ, мы сознательно использовали подробное, отличающееся от практики изложение команд. Команды передачи данных. По ним осуществляется передача слова данных между ячейками памяти или ре- гистрами и всегда содержится задание двух адресов ис- точника и назначения. К этой группе команд можно отнести также команды ввода-вывода, по которым осуще- ствляется передача данных между регистрами и порта- ми ВВ. В табл. 1.2 приведены примеры состава команд операций передачи данных. Команды ветвления программ. Они позволяют задани- ем нового последующего адреса команды закончить от- работку программы и перейти в другое место памяти. Речь идет о специальной команде перехода JUMP, дей- ствие которой уже обсуждалось (см. 1.2.2). Смотря по тому, следует ли этот переход без* предва- рительных условий или только при возникновении опре- деленных свойств полученного ранее результата, разли- чают безусловные и условные переходы. Для этой цели в процессоре должны запоминаться свойства результата. Это происходит в специальных одноразрядных ячейках памяти, содержимое которых указывает на свойства ре- зультата, поэтому они называются битами флагов. Ти- пичным примером таких проверяемых свойств, которые запоминаются как биты флагов и могут быть использо- ваны при условных переходах, являются результаты: равный нулю (флаг нуля); превосходящий представля- емую числовой областью длину слова (флаг переполне- ния). Реализуемые команды перехода по значению бит флагов приведены в табл. 1.3 . Команда перехода вводит новое, содержимое счетчи- ка команд. Часто у программиста возникает необходи- 44
Таблица 1.2. Эталонный состав команд передачи данных ПЕРЕ- ДАТЬ Адрес назначе ния Адрес источни- ка ЗАГрУ- Регистр Я Контсятан* ЗИТЬ н та ВВЕСТИ Порт JV ВЫВЕС- Порт N Операция передачи данных. Содер- жимое указанного адресом источ- ника передается в указанный ад- рес назначения. После передачи по обоим адресам находится одина- ковое содержимое. Источником и назначением могут быть как (ре- гистры, так и ячейки памяти Операция загрузки. Регистр загру- жается словом, которое для по- стоянной величины указывается в команде. В регистре может нахо- диться только "Двоичное слово 8 бит. Но в слове команды должны задаваться для упрощения деся- тичные числа, крторые необходи- мо преобразовать в двоичные, прежде чем слово команды пере- дано в память программы Операция ввода. Содержимое пор- та ввода N передается в аккуму- лятор Операция вывода. Содержимое ак- кумулятора передается в порт вы- вода ДО мость ветвления: в определенное место последовательной отработки программы вводится ее часть, которая может находиться в любом месте программной памяти (Техни- ка использования подпрограмм). Хотя для этого нужен переход, но следует обеспечить, чтобы после отработки подпрограммы последовал возврат в основную програм- му. Такая задача решается парой команд: ВЫЗОВ под- программы (CALL, переход с обязательным возвратом) и ВОЗВРАТ в основную программу (RETURN). Коман- да ВЫЗОВ по принципу действия соответствует команде перехода, но сохраняет содержимое счетчика команд, пе- резаписывая его в память состояния. В конце выполняе- мой подпрограммы должна стоять команда ВОЗВРАТ, действие которой состоит в том, что сохраненное в па- мяти состояние извлекается снова в счетчик команд и тем самым продолжается выполнение прерванной про- граммы. 45
Таблица 1.3. Эталонный состав команд ветвления программ Виды условий Ноль Не ноль Перенос .Нет переноса Команда перехода. При выполне- нии условия в счетчик команд за- сылается адрес, и тем самым про- должается выполнение программы с имеющейся по этому адресу команды. В противном случае вы- полняется следующая за коман- дой перехода команда Команда вызова. Переход с обяза- тельным возвратом CALL. При вы- полнении условия в счетчик команд загружается адрес после отправки на хранение в память состояния имевшегося в нем со- держимого. В остальном действие то же, что при команде ПЕРЕХОД Команда возврата RETURN. По- следний сохраняемый в памяти состояния адрес возвращается в счетчик команд, продолжаемся вы- полнение прерванной командой вызова программы Безусловное ветвление Нулевой результат Ненулевой результат Возникает перенос в результате Нет переноса в результате Команды управления. Они служат для влияния на действия центрального процессора, особенно для измене- ния хода цикла команд. Некоторые типовые примеры представлены в табл. 1.4. Команды разрешения и запре- та б л и ц а 1.4. Основной состав команд управления Разрешение прерывания Запрет прерывания HALT NOP Прерывание разрешено Прерывание запрещено Команда останов. Процессор пребывает в состоянии ожидания столь долго, пока не возникает прерывание Команда без действия (операций) та прерывания делают возможным включение и отклю- чение системы прерываний. При этом возникает возмож- ность установить, может ли следующая команда преры- вания быть отработана без помех. Команды NOP (нет 46
Команды обработки данных коп. Адрес 2-со операнда (у одноадресное со процессора) коп Адрес 1-го опе- ранда/резулыпат Адрес 2-ео операнда Адрес Адрес назначения источника Команды передачи данных Команду ветвления коп Адрес назначения Адрес источника КОП Адрес следую- щей команды КОП Команды управления' Рис. 1.16. Структура слов команд операции) и HALT (останов процессора) изменяют ход цикла команды. В течение команды NOP выполняется весь цикл, но без какого бы то ни было действия (затра- чивается лишь время), после признания команды HALT начинаются циклы команд, которые признают только требования прерывания. Следовательно, в состоянии HALT процессору могут посылаться только требования прерываний. В соответствии с типом команд в ее каждом слове должны содержаться различные задания. По меньшей ме- ре необходим код операции (КОП). Он указывает на действие, подлежащее выполнению. Если для этой части используются восьмиразрядные слова, можно закодиро- вать 256 различных действий; иногда, как уже отмеча- лось, необходимо задание адреса (рис. 1.16). Поэтому слова команд имеют различную длину. Но возникает противоречие* с тем, что память программы состоит из ячеек с постоянной длиной слова, которая', как правило, совпадает с длиной слова данных. В соответствии с этим большинство слов команды требует нескольких ячеек программной памяти. Посылка команды в начало цикла требует поэтому нескольких операций считывания. Важ- но распознать КОП и на основании этого вести управле- ние процессором. Косвенная адресация. До сих пор мы исходили из то- го, что требуемое задание адреса содержится в самом слове команды. Но это значит, что программист задать адрес может только жестко. Однако на практике очень часто требуется составлять более короткие программы, если в их состав входят такие, которые работают с кос- 47
венной адресацией. Косвенная — значит в слове коман- ды вместо задания требуемого адреса содержится только указание на регистр, где следует его искать. Преиму- щество метода в том, что адреса теперь являются содер- жимым ячеек памяти и, следовательно, работа с ними происходит по командам (они передаются командами пе- редачи, обрабатываются командами обработки данных и т.д.). При записи указание косвенного адреса произ- водится использованием скобок. Команда ADD89 показывает, что к содержимому ячей- ки памяти (регистра) 89 следует прибавить содержимое аккумулятора. По сравнению с этим запись ADD (89) оз- начает, что к содержимому аккумулятора прибавляется содержимое ячейки памяти, адрес которой находится в регистре 89. 1.2.5. Связь ЭВМ 4 внешними устройствами В § 1.1 было показано, что в системах реального вре- мени к управляющей ЭВМ подключают большое число устройств, вырабатывающих входные (измерительные и задающие) и принимающих выходные сигналы (управ- ляющие и индикационные). Техническое их исполнение для нас несущественно, поэтому обратимся к важнейшим проблемам, возникающим при связи ЭВМ с внешними устройствами. Подсоединение к УВВ ЭВМ чуждых системе уст- ройств требует обычно специальных электронных согла- сующих элементов с поясняемыми ниже основными функциями. Согласование уровней сигнала, подавление помех и мероприятия по защите против повреждения элементов при перегрузках на входах и выходах ЭВМ. Сигналы ВВ по своей природе являются электронными. Это объ- ясняется тем, что уровни сигналов соответствуют не- скольким вольтам (обычно 0—5 В) и они могут переда- вать только малые нагрузки. Кроме того, входы и выходы интегральных микросхем чувствительны к перегруз- кам (перенапряжениям от помех), которые могут при- вести к необратимой потере функциональных свойств. Отсюда следуют недостатки электронных и микро- электронных устройств по сравнению с классической управляющей техникой на базе реле: высокая чувстви- тельность к напряжениям помех, индуцируемым электро- 48
магнитными полями (например, при коммутациях на силь- ' поточных установках); частые ошибки при сигналах низкого уровня; необходимость защиты электронных эле- ментов от перенапряжений (осуществляется обычно так называемыми оптическими связями); необходимость усилителей мощности выходных сигналов для воздейст- вия на исполнительные и индикационные устройства. Недостатки электронной техники в настоящее время особенно ощутимы, так как радикально изменяются спо- собы проектирования систем управления. На предшест- вующем этапе развития каждая реализуемая коммута- ционная функция требовала дополнительной печатной платы при создании жесткой системы управления; ха- рактерными при проектировании являлись ограничения на обрабатывающую информацию часть устройства, на чис- ло вводимых и выводимых величин. В этом смысле при применении микро-ЭВМ ограничения оказываются зна- чительно более низкими, так что в качестве новых узких мест четко выкристаллизовываются возможности приме- нения подходящих измерительных и исполнительных устройств и согласующих электронных элементов. Следо- вательно, занимаемая площадь, а также стоимость уст- ройств согласования, хотя они и выполняют незначитель- ные вспомогательные функции, иногда многократно пре- восходит те же показатели самих ЭВМ. Преобразование сигналов. Следующей задачей явля-» ется обеспечение возможности ввода и вывода сигналов путем их преобразования. Напомним, что представление информации внутри ЭВМ базируется на двоичных сло- вах. Соответственно нужен пословный В В двоичных слов, т. е. в самой простой для реализации форме; но в таком виде поступают очень немногие внешние сигна- лы. Мож^но провести следующую принципиальную ч их классификацию: аналоговые, двоичные, дискретные. Двоичные сигналы принимают только два состояния и служат, следовательно, для передачи состояний ВКЛЮ- ЧЕНО и ВЫКЛЮЧЕНО выключателей, оптических и акустических приемников или измерительных и испол- нительных устройств с двухуровневыми состояниями (рис. 1.17,а). Кроме того, они возникают в тактовых, им- пульсных и счетных системах. Ввод-вывод двоичнцх сиг- налов не требует никаких преобразований. Следует лишь установить, будет ли на один порт ВВ подан один дво- ичный сигнал, который и составит при этом полное сло- 4—935 49
Лиж t- Вьгкл. L 3-11 2-10 1=01 O=OD a) t ДИ/-, A I I I I I 'I A I I I I I 'l I о ГТ]д1о(71 g f7, l «Tt| if ♦ I । i । । i ПТПдЛд.д fT в) t S| г) t Рис. 1.17. Типы сигналов: а — двоичные; б — многоступенчатые дискретные; в — двоично кодированные дискретные; г — аналоговые с много- ступенчатой аппроксимацией во ЭВМ (из которого затем нужен только один бит), или несколько двоичных сиг- налов будет произвольно со- средоточено на общем порте ВВ. •Если УВВ принимает только конечное число раз- личных состояний, то полу- чится цифровая система (на- пример, клавишные устрой- ства, позиционные измери- тельные системы с конечным., уровнем и т.д.). Передача информации о состоянии мо- жет следовать с помощью многоуровневого сигнала (рис. 1.17,6). Но предпочтительнее все же использовать коди- рованную передачу параллельных двоичных сигналов (рис. 1.17,в). При этом опять двоичными сигналами мо- гут быть закодированы две различные величины. Таким образом, последняя форма прямо соответствует формату ввода-вывода ЭВМ. Имеется предпосылка использова- ния более коротких или равных длине этого формата слов. Дискретные сигналы с большим числом уровней делятся между несколькими портами ВВ и не могут, сле- довательно, вводиться в обращение Только одной опера- цией ВВ. Аналоговые сигналы принципиально не передаваемы при представлении информации в формате ВВ ЭВМ. Аналоговый сигнал (рис. 1.17, г) «может принимать бес- конечно много значений и должен бы, следовательно, быть закодирован двоичным словом бесконечной длины. Решение может состоять только в преобразовании инфор- мации, при которой аналоговый сигнал приближается по форме к дискретному. Эта задача решается аналого-циф- ровыми преобразователями, которые также очень широ- ко распространены как интегральные схемы (см. § 2.1). Согласование ЭВМ и периферии по быстродействию (синхронизация). В качестве следующей проблемы свя- зи между ЭВМ и внешними устройствами следует назвать 50
согласование их различных рабочих скоростей. В случае последовательной отработки команд ЭВМ не в состоя- нии непрерывно выдавать или принимать информацию. В этой связи время прохождения программ ввода и вы- полнения между ними необходимых задач организации и обработки данных требует дискретного принципа ра- боты от ЭВМ и управляющих устройств. Причем интер- валы времени между операциями могут колебаться в ши- роких пределах, зависимых непременно от конкретных условий. При непрерывных сигналах это приводит к по- следующему сокращению информации, при котором по ходу процесса снимаются только пробы и соответственно на стороне вывода могут формироваться лишь ступенча- тые сигналы. Оказывается, что хотя непрерывное пред- ставление сигнала и является наглядной моделью, но для этого случая непригодной и нереальной. Ни одна техни- ческая система не может вырабатывать бесконечно плот- ную последовательность изменений состояния или обес- печить их с бесконечной скоростью. В каждом конкрет- ном случае нужно оценивать, достаточна ли ’скорость реакции ЭВМ в сравнении с динамикой (скоростью изме- нений) внешнего процесса. Наиболее просто это .устано- вить при двоичных или дискретных сигналах. Хотя здесь имеется обычно зависимость продолжительности сигнала от времени, интерес в действительности представляют только те моменты времени, при которых возникает из- менение состояния. Вычислительная машина должна быть об этом соответственно информирована. Чтобы узнать об изменениях состояния входного сиг- нала предлагаются два следующих метода. Во-первых, принцип опроса. Тогда ЭВМ производит съем текущего значения сигнала, при котором цикличе- ски выполняются операции ввода с непосредственным анализом (программа ввода В на рис. 1.18,а). Недостат- ком является то, *что ЭВМ постоянно загружена наблю- дениями (программа В запускается также при отсутст- вии каких бы то ни было изменений состояния) и период опроса сигнала для конкретного случая может быть слишком большим, чтобы машина могла в промежутках между опросами выполнять активные действия (время задержки Тэ). Во-вторых, принцип обслуживания по требованию (метод прерываний). Простая электронная схема гаран- тирует, что всякое изменение состояния входного сигна- 4* 51
Входной сигнал Принцип опроса 7"пр Ввод 'ад Период опроса Вдод Ввод t а) тп Следование программы Принцип прерывание __ Завершение /пвкищей с\ программы и запуск ПОП а/ Рис, 1.18. Распознавание изменения состояний на входных линиях ЭВМ d ла вырабатывает требование прерывания ТП для ЭВМ,ч которая тотчас информируется об этом. Машина преры- вает выполнение текущей программы и запускает про- грамму обслуживания прерывания, по которой осущест- вляется ввод,анализ и обработка переменного состояния. В этом случае обеспечивается загрузка ЭВМ только при возникновении изменения состояния, а реакция может возникать быстрее (время Тцр на рис. 1.18). Предпосыл- кой для обоих методов (а также для использования ЭВМ вообще) является то, что изменения сигналов по сравнению с быстродействием ЭВМ следуют очень редко (можно считать, что временные интервалы должны быть в 10—100 раз больше, чем время выполнения команды). До сих пор мы обсуждали только ввод информации. При выводе ее следует отличать устройства, которые подчиняются любому временному режиму ЭВМ, т. е. мо- гут принимать информацию в любой момент времени и с любой скоростью, а также сами определяют момент* времени для ее приема и скорость вывода. В последнем случае с процессом вывода всегда связан процесс ввода, в котором ЭВМ должна быть информирована сигналом готовности приема. Относительно реализации такого вво- да снова возникают обе рассмотренные выше возможно- сти: сигнал готовности либо может контролироваться ЭВМ по программе ввода, либо к моменту готовности он вызывает прерывание. 52
1.3. Алгоритмизация Использование ЭВМ предполагает, что решаемая за- дача разделяется на последовательность таких простых функций, которые принципиально выполнимы машиной. Этот процесс называется алгоритмизацией, а его резуль- тат— алгоритмом. Под программированием понимают, напротив, превращение алгоритма в понимаемый, ис- пользуемый в зависимости от обстоятельств ЭВМ язык. Алгоритмирование может быть представлено следующим образом. 1. Постановка задачи. Наряду с качественным по воз- можности обширным описанием решаемой задачи долж- ны быть установлены количественные условия (напри- мер, критические условия реального времени). 2. Системное проектирование. Оно состоит из проек- тирования аппаратных и программных средств. 3. Программирование. Здесь осуществляется превра- щение алгоритма в программу. (Этот этап требует лишь тогда значительной творческой доли, когда это приводит к предельному использованию аппаратных средств, в про- тивном случае задачи можно существенно схематизиро- вать и затем выполнить на ЭВМ). К микрорасчленению процессов проектирования нуж- но сделать два замечания. Во-первых, два первых этапа выполнимы, в принципе, независимо от типа ЭВМ, т. е. хотя и предполагают при- нятие принципиальных решений по конфигурации аппа- ратных средств и знаний самих операций, которые ЭВМ может выполнить, но не требуют никаких детальных све- дений о составе команд. Такое мнение программистами принимается не безоговорочно. Само собой разумеется, Ито детальные знания о свойствах вводимых, аппаратных средств (например, длина слова, состав команд, емкость памяти ЭВМ) находятся в жесткой связи с процессом алгоритмизации и предотвращают, например, разработ- ку алгоритмов, приводящих к неэффективным програм- мным решениям. Но возникает опасность с самого на- чала ввести специфические для ЭВМ ограничения, дела- ющие невозможным преобразование алгоритма в программу для других ЭВМ. Во-вторых, процесс проектирования протекает сверху вниз, ка,к правило, не один раз и является поэтому всег- да итеративным. Так, может потребоваться повторная 53
разработка аппаратных средств, а также, как следствие, изменение структуры программы, если с ранее разрабо- танными не могут быть выполнены все требования. Со- блюдение определенных пределов времени прохождения программы оказывается критическим в системах реаль- ного времени. Рабочие тесты также часто обнаруживают проектные ошибки, что заставляет проводить повторную отработку одного или нескольких этапов проектирования. Рациональная организация процесса проверки про- грамм является на сегодня важнейшим направлением развития вычислительной техники и осуществляется пу- тем подготовки проектной системотехники и использова- ния новых языков программирования. Несмотря на все успехи и частично также эйфорическое представление, следует иметь в виду, что при такой работе в будущем останутся в значительной мере нужными инициативные и эвристические компоненты. 1.3.1. Представление алгоритмов структурными схемами Алгоритмизировать — значит разложить задачу или ее часть в хпоследовательность таких действий, из кото- рых понятно, что они реализуемы в основном посредством ЭВМ. Для представления алгоритма существуют различные методы. Наиболее распространено представление струк- турной схемой программы. В примере на рис. 1.19 приве- дены и объяснены все применяемые условные обозначе- ния. Можно установить следующую взаимосвязь между условным обозначением на схеме и получающейся затем из нее машинной программой. Действия формируются од- ной или несколькими следующими одна за другой коман- дами операций по обработке, передаче данных и управ- лению. Условия выполняются командами условного перехода (или последовательностью команд, которая за- вершается -Какой операцией). Стрелки обозначают коман- ду безусловного перехода, однако она может опускаться тогда, когда первая команда последующего действия при- соединена без разрыва к предшествующей (в программ- ной памяти на рис. 1.19 требуется только одна такая команда безусловного перехода — обратный переход пос- ле третьего действия). Структурные схемы являются подходящим средством записи для систем ввода информации человеком по мень- 54
Рис. 1.19. Структурная схема представления алго- ритма условными обо- значениями шей мере до тех пор, пока не превышен объем одной страницы. Для связи с ЭВМ с целью автоматической (или поддерживаемой от ЭВМ) дальнейшей обработ- ки они, напротив, не явля- ются достаточно пригодны- ми средствами. Поэтому больше ориентируются на Г Старт: имя \ I ~ | Действие 1 | ДЛ Условие Частичный алгоритм I I V другие методы, например на представление алгоритма формальным языком или в табличной форме. 1.3.2. Простой пример проектирования Рассмотрим в качестве примера проектирование си- стемы управления автоматическим открыванием двери. На рис. 1.20 приведена схема управления. Фотодиод ФД указывает, что вход в дверной проем открыт. Двер- ная задвижка ДЗ может открываться или закрываться двигателем 7И, управляемым от системы управления САУ Mt причем о достижении конечных положений сиг- нализируют выключатели ВД7 или В,К2. Таким образом, задача состоит в следующем. При активизации фотодио- да дверь следует открыть, держать в таком положении в течение времени То и за- тем закрыть. Если фотодиод продолжает находиться в активном состоянии, то уд- линяется время открытого состояния или, если уже идет процесс запирания, он приостанавливается и начи- нается новый цикл. Решаю- Рис. 1.20. Схема автоматического управления дверью (ап- паратная часть) 55
щее требование реального времени состоит в том, что по- сле затемнения фотодиода дверь должна быть открыта через время Т. Следующий шаг—выполнение проектирования си- стемы, начинающееся с первой разработки аппаратной структуры. Сопряжение ЭВМ с внешними устройствами осуществляется тремя входными (фотодиода ФД и ко- нечных выключателей ВК1, ВК2) и двумя выходными сигналами (включить двигатель «Вперед» — «Назад»), как показано на рис. 1.20. Эти сигналы двоичные. Сле- довательно, никакое их преобразование не нужно и мож- но напрямую подсоединить сигналы к портам ввода и вы- вода ЭВМ. Для ЭВМ в этом случае достаточно минимальное ос- нащение внешними аппаратными устройствами. Забегая вперед, отметим, что управляющее устройство построено на одной интегральной схеме. Теперь для аппаратного обеспечения нужно разрабо- тать программные средства. Прежде всего следует попы- таться реализовать программным путем обработку вход- ной информации, особенно важно распознать активиза- цию фотодиода методом циклического опроса (см. 1.2.5). . На рис. 1.21, а приведены требуемые для этого основ- ные структуры программы. После включения системы первой частью программы должно быть установлено сна- чала основное состояние (дверь закрыта). Затем нужно выполнить в бесконечной циклической последовательно- сти два действия: считать входной сигнал; рассчитать требуемую реакцию и выдать соответствующий управля- ющий сигнал. Принцип опроса и соответствующая структура про- граммы применимы только тогда, когда программный цикл в самом неблагоприятном случае протекает настоль- ко быстро, что всякая активизация фотодиода не остает- ся незамеченной. Выполнимость этих требований может быть проверена лишь после составления программы, что позволит определить время выполнения операций. Теперь проектирование следует продолжить поша- говым уточнением блоков программ на основе вырабо- танных ранее алгоритмов. Считывание входных сигналов состоит из единствен- ного действия. Так как все они передаются по проводам й подключены к одному порту ввода, эта часть задачи выполняется одной командой ввода. 56
a) Старт Установить основное состояние Считывание входных сигналов Рис. 1.21. Последовательность разработки алгоритма: а — основная структура; б — уточнение; в — частичный алгоритм Выполняемая затем часть программы сложнее. Оче- видно, что реакции управляющей ЭВМ, которые будут нужны при определенных входных сигналах, зависят от состояния, в котором находится система. Их четыре: 1—дверь закрыта; 2— дверь открывается; 3 — дверь открыта; 4 — дверь закрывается. При этом прежде всего надо определить истинное состояние системы. Для этого, запоминая числа 1, 2, 3, или 4, указывающие состояния системы, в ячейке памяти данных ЭВМ (или в регистре), сохраняется состояние Z. Ячейка назначается при подготовке основного со- стояния Z=1 (дверь закрыта). При этом схема на пер- вом шаге уточняется и уже выглядит, как на рис. 1.21, б. Определение истинного состояния системы может быть реализовано за счет последовательного выполне- 57
ния трех условий (рис. 1.21,в). Для дальнейшего уточ- нения части программы «Реакция в состоянии I» сле- дует установить отдельно, какое действие (управляю- щий /сигнал) должно быть вызвано входным-и сигнала- ми в каждом из четырех состояний. Это показано в табл. 1.5. Общий алгоритм управления дверью приведен на рис. 1.22. Более подробно следует объяснить реализацию вре- мени задержки То для состояния 3. При этом в ЭВМ используется последующий счет таймером Г, для кото- рого резервируется ячейка (регистр) в памяти данных. Это число назначается равным нулю при наступлении состояния 3 и после этого с каждым циклом возрастает на 1, если никто в дальнейшем не активизирует фото- диод. Так как время выполнения цикла в программе можно точно рассчитать, задают конечное значение Ттах, соответствующее требуемому времени задержки То, что является сигналом для перехода в состояние 4. Если, однако, кто-либо в дальнейшем активизирует фотоэле- мент, счетчик времени сбрасывается в 0 и соответствен- но время задержки удлиняется. Последний шаг проектирования требует преобразо- вания представленного на рис. 1.22 алгоритма в про- грамму ЭВМ. Каждая представленная на ней операция может быть выполнена по одной или нескольким ко- мандам. Здесь этот шаг не рассмотрен (см. гл. 3), од- нако следует отметить некоторые результаты, чнужные для окончательных испытаний на пригодность4 приме- ненного принципа. Преобразование алгоритма для вы- полнения на микро-ЭВМ приводит, например, к про- грамме из 64 команд. Самый длительный цикл (на рис. 1.22 обозначен штрихпунктирной линией) содержит 23 команды и требует 30 мкс для его выполнения. Та- ким образом определяется самый длинный интервал оп- роса (неблагоприятный случай). Теперь следует проверить, достаточна ли частота оп- роса для того, чтобы не пропустить никакой активиза- ции фотодиода. Необходимо оценить продолжитель- ность самого короткого импульса, вырабатываемого им. Быстро бегущий человек (скорость 30 км/ч) вызывает импульс длительностью 24 мс, т. е. такой импульс прой- дет через ЭВМ 800 раз. Таким образом не только подтверждается, что вы- бранный подход к решению этой задачи управления 58
Рис. 1.22. Структурная схема полного алгоритма управления дверью 59
g Таблица 1.5. Управляющие действия в зависимости от входной 4 ситуации и текущего состояния в примере автоматического управления дверью Событие Состояния Дверь закрыта | Дверь открывайся Дверь открыта | Дверь закрывается ФД включен « Включение двига- теля вперед. Изме- нение состояния: Z-2 е—я Таймер: Т=0 Двигатель выключить. Включение • двигателя вперед. Изменение сос- тояния: Z=2 ВК1 включен Двигатель выклю- чить Установить таймер Т=0 Изменение состоя- ния: Z=3 •—* BR2 включен “Т — — Двигатель выключить. Изменение состояния: Z=1 Все входы отклю- чены —’ Содержимое таймера повы- шается T-f-l. Проверить, ДО- СТИГЛО ли содержимое тай- мера конечного значения Ттах. Если да, то включить двигатель «Назад*. Изме- нение состояния: Z=4
удовлетворителен, но очевидно, что данной задачей ЭВМ в дальнейшем не будет загружена. Следует сделать сле- дующие дополнительные замечания. Могут непременно возникнуть сомнения: не проще ли для такой задачи управления дать жесткое решение на электронных элементах и нужна ли для этого обяза- тельно ЭВМ? В этой связи следует пояснить значение слова проще. Решающими в конце концов являются общие экономические затраты, которые будут опреде- лять стоимость изготовления, зависящие от количества интегральных элементов, а не от их внутренней струк- туры. Следовательно, развитие системы управления с простейшей схемной структурой имеет меньшее значе- ние, чем многократные поиски решения с наименьшим числом элементов. Хотя очевидно, что в приведенном примере приме- ненная микро-ЭВМ не загружена, однако это не явля- ется основанием ставить под сомнение ее применение; следует посмотреть, нет ли еще выгодных задач, кото- рые ЭВМ могла бы взять на себя дополнительно. Не говора о том, что такая ЭВМ могла бы управлять, многими дверьми (в случае, если появляется такая не- обходимость), вполне целесообразно выполнение ею других функций при управлении одной дверью. Таким способом могли бы быть дополнительно проверены функ- циональные возможности двигателя и выбор направле- ния движения, а в случае ошибки вызваны соответст- вующие аварийные сигналы (световые или звуковые, выводимые на ЭВМ более высокого уровня или диспет- черу). Такая повышенная производительность ЭВМ должна служить как для расширения комфортности управления, так и для определения ошибок (самоконтроля). ГЛАВА 2 АППАРАТНЫЕ СРЕДСТВА МИКРО-ЭВМ В § 1.2. мы .познакомились с принципом действия ЭВМ и необходимыми функциональными устройствами (аппаратными средствами): Здесь остановимся на рас- смотрении возможностей, предоставляемых микроэлект- роникой для реализации аппаратных средств микро-ЭВМ 61
и как следствие функциональных особенностей самих микро-ЭВМ. Технология изготовления интегральных схем позво- ляет поместить на одном полупроводниковом кристалле от 104 до 105 транзисторов. При этом принципиально возможно расположить все функциональные устройства ЭВМ (при определенных ограничениях на ее рабочие параметры) на одной БИС, но это не единственный путь. Существует три концепции, используемые при реали- зации ЭВМ на основе БИС. Во-первых, однокристальные ЭВМ. Все их функцио- нальные устройства содержатся в одном элементе. Они занимают малую площадь, но вместе с тем при этой кон- цепции структура ЭВМ и, ее рабочие параметры зада- ются уже изготовителем элементов в относительно уз- ких пределах, что связано в первую очередь с объемом' памяти и числом портов ВВ. В будущем станет возмож- ным реализация на одном кристалле нужного для пре- обладающего числа практических случаев объема па: мяти. Однокристальные ЭВМ всегда будут составлять низший класс ЭВМ, но вследствие их рентабельности они наиболее распространены. Во-вторых, микропроцессоры и БИС для одноплат- ных ЭВМ (микропроцессорные комплекты). В этом случае при разработке систем достигается значительно большая гибкость, когда на одну БИС возлагается толь- ко часть функций ЭВМ и таким образом возникает воз- можность разрабатывать для конкретных назначений функционально ориентированные ЭВМ (микропроцес- сорная концепция). Естественно, функциональные уст- ройства самого центрального процесса расположены на одном элементе, который называется микропроцессором. Кроме того, выпускают -элемёнты блоков памяти и си- стем ВВ, так что в совокупности возникнет комплект, делающий возможным построение ЭВМ на одной или нескольких печатных платах* (одноплатные ЭВМ, си- стемы микро-ЭВМ). Объем памяти, а также число и тип каналов ВВ могут в зависимости от конкретных целей изменяться в широких пределах. Неизменными оста- ются состав команд и длина слова ЭВМ, так как эти параметры устанавливаются заданной БИС централь- ного процессора. В-третьих, элементы для центральных процессоров (секционированные процессоры). Процессор расчленяют 62
для построения на удббные компоненты, представляю- щие собой широкую номенклатуру БИС. Поэтому состав команд и длину слова можно подбирать индивидуально для конкретного назначения, а также создавать пользо- вателем специальные процессоры. Расчленение процес- сора выполняется при этом так, что имеется в наличии чаще всего два блока для управляющей части (микро- программно управляемые,-управляющие блоки и микро- программная память), а также один арифмет||ческо-ло- гический блок с длиной слова 2 или 4 бита. Но послед- ний блок можно выполнить в виде набора секций, т.е. возможна секционированная реализация слова ЭВМ любой длины. Рассмотренная структура, очевидно, предпочтитель- нее при разработке ЭВМ, так как обеспечивает большую гибкость в составлении программ, но она дороже в изго- товлении. Проектирование системы с однокристальными ЭВМ почти целиком ограничено разработкой программы. При микропроцессорной концепции главной задачей явля- ется все же разработка программы, а необходимые аппа- ратные средства не очень сложны. Использование сек- ционирования предполагает, напротив, глубокое проник- новение во взаимосвязь аппаратных и программных средств. Развитие микропроцессорной техники началось с микропроцессорной концепции и “следует предполо- жить, что этот промежуточный вариант долгое время сохранит за собой ведущее место. Для массового приме- нения ЭВМ с низкой производительностью самым целе- сообразным вариантом, однако, являются однокристаль- ные ЭВМ. Поэтому в дальнейшем будем обсуждать только системы, позволяющие понять основы построения однокристальных ЭВМ. * 2.1. Микропроцессорные системы (элементы одноплатной ЭВМ) 2.1.1. Модульная концепция. Общая шина В § 1.2 были рассмотрены требуемые для ЭВМ уст- ройства (рис. 1.15) и сделан вывод, что центральный процессор является ядром ЭВМ и связи от него идут к программной памяти, памяти данных и управления, 63
а также к портам ВВ. Если теперь эти устройства со- брать на одной БИС, а память и систему ВВ распредет лить на последующие схемы, то возникают следующие -требования к ним. Во-первых, возможность взаимосвязи этих устройств в той форме, когда гарантирована модульная концепция, следовательно, возможны различные уровни расширения ЭВМ. Во-вторых, снижение числа проводников связей меж- ду устройствами. Последнее требование является основ- ным, так как от числа требуемых шин зависят соответ- ственно размеры схем и затраты на их изготовление. Прямое преобразование показанной на рис. 1.15 струк- туры исходит в основном из множества коммуникацион- ных связей между центральным процессором и прочими устройствами. Поэтому решение проблемы в этом случае состоит в том, что предусматривается только единствен- ный путь взаимосвязей — так называемая общая шина микро-ЭВМ (ОШ ЭВМ). Она состоит из определенного количества соедини- тельных проводников, которые образуют стержень мик- ро-ЭВМ. к этой однородной линии связи подключают все блоки и тем самым обеспечивают внутренние связи ЭВМ. Возможно нанизывание элементов одного за дру- гим и построение из выпускаемых БИС или блоков при- способленной для каждого конкретного случая ЭВМ. Структура такой ЭВМ показана на рис. 2.1, а. Простей- шая структура включает в себя: центральный процес- сор (микропроцессор МП); модуль памяти программ,, данйых, информации состояния (стека); модуль ввода- вывода (УВВ). Кроме того, система часто расширяется с помощью внешних блоков: модулей счетчиков времени (часов), таймеров; арифметических модулей; специаль- ных процессоров. Сосредоточение соединений между блоками на еди- ной внутренней системе передачи данных основано на необходимости снижения числа выводов микросхем, что является специфической особенностью аппаратных средств микро-ЭВМ; поэтому хотя модульная структура оказывается выгодной, но она же накладывает ограни-» чения на возможности связей между модулями, вслед- ствие чего не может выполняться несколько таких свя- зей одновременно, и поэтому теряется быстродействие по сравнению с другими формами реализации ЭВМ. 64
ОШ ЭВМ Рис. 2.1. Микропроцессорная система: а —ее структура; б — техническая реализация одноплатной ЭВМ с элемента» ми расширения Следует отметить, что на рис. 2.1, а показана струк- тура конкретной микро-ЭВМ. Подсоединенные на шину модули могут состоять как из единичных БИС, так и из нескольких микросхем и блоков. Общая шина мнкро- ЭВМ может быть выполнена в виде определенного ко- личества проводников на печатной плате или в виде об- 6—935 65
щего разъема на корпусе для нескольких печатных плат. Но, как правило, предусмотрено размещение всех блоков ЭВМ (в ограниченном объеме) на одной плате, а также предусмотрены специальные печатные платы расширения системы для создания ее более высоких уровней (рис. 2.1,6). Подсоединенные на ОШ ЭВМ модули при взаимо- действии бывают активные и пассивные. Активные мо- дули могут вызвать обмен информацией с другими, в то время как пассивные принимают участие во взаимосвя- зях лишь по требованию. До сих пор мы знакомились с центральным процессором как с активным модулем, который в ходе цикла команды всегда взаимодействует с программной памятью (вызывает команду) и в случае, если это нужно для ее выполнения, обеспечивает обмен информацией между памятью данных и етеком или портами ВВ. В соответствии со своей активной ролью он определяет режим работы ОШ ЭВМ и, следователь- но, взаимодействие всех модулей внутри ЭВМ. Следует пояснить, как протекает процесс взаимосвя- зи между элементами и формируется ОШ ЭВМ. Исходить нужно из того, что на ОШ ЭВМ подсоеди-7 нен один активный модуль (микропроцессор) и боль- шое число пассивных. Активный всегда должен начи- нать процесс взаимодействия выдачей информации об адресе, чтобы выбрать партнера из всех пассивных мо- дулей, которые, в свою очередь, последовательно следят за посланным на шину адресом и подключаются при возникновении действенного для них адресного сло- ва. Выбранный пассивный модуль выдает затем содер- жащееся по этому адресу слово данных или принимает посланное процессором. Что- бы указать, например, на- правление обмена информа- цией и определенные момен- ты времени ее приема, ак- тивным модулем вырабаты- ваются дополнительные уп- равляющие сигналы. При этом получаются представленные на рис. 2.2 соотношения: адресные и уп- ош звм Рис. 2.2. Общая шина и связи модулей равляющие сигналы направ- лены всегда от активного модуля к пассивным, в то 66
Адресная шана Шина адрвсоВ/данных Рис. 2.3. Варианты выполнения общей шины: а — раздельные шины адреса, данных и управления; б — мультиплексирован- ная по времени шина адресов/данных; в — шина последовательной передачи данных Ринин адреса/данных Линии тактовых импульсов и управления время как передача слова данных должна быть воз- можна в обоих нанравлениях (двунаправленная), хотя, безусловно, существуют модули, которым в зависимости от ситуации, нужно только одно направление передачи. Первая форма реализации ОШ ЭВМ состоит в том, что для всех этих отдельных сигналов применяют парал- лельно расположенные проводники. Шину расчленяют соответственно на три части: адреса, данных и управле- ния (рис. 2.3, а). Общее число проводников шин опре- деляется, главным образом, длинами слов адреса (раз- рядностью адресной шины) и данных* (разрядностью шины данных). Поскольку число подсоединяемых БИС все-таки огра- ничено (например, их должно быть не больше 40), то очень быстро возникают ограничения и на эти парамет- ры. У 16-разрядных микропроцессоров с большим объе- мом адресов необходимо проводники шины использовать многократно, когда, например, адреса и данные переда- ются одни за другими разделенными по времени после- довательными пачками (мультиплексированная по вре- мени шина) (рис. 2.3,6). Этим, конечно же, усложня- ется взаимодействие элементов, что означает необходимость реализации дополнительных действий внутри интегральной схемы. Если взаимодействие между модулями осуществля- ется последовательной передачей данных (все биты пе- редаются один за другим с определенными временными интервалами), то значительно снижается число выводов и размеры микросхем. При этом ОШ ЭВМ преобразу- ется в один проводник (рис. 2.3, в). Правда, нужны до- полнительные включения для преобразования формата б* 67
ЧТЕНИЕ/ВВОД *—уША ТГЪ Длительность процесса чтения SI ШУ Сигнал RE АЛ Адрес УпраОленив Данные- <= Выбор 1 Наибольшее время достала • Прием данных пассивного}*------—-------И активным < модуля ▼ ♦ модулем а) Слада данных => 1 t I t ЗАПИСЫВЫВОД ША -тт^т- ~~~ I ШУ Сигнал WRITE Управление^ Данные Адрес =ф t I I Слова данных Выбор [Наибольшее время доступа'Прйсм сигнала пассивного к--------—---------Н пассивным модуля ч ▼ модулем «5: 6) Рис. 2.4. Временное диаграммы процессов взаимодействия; а — операция чтения или ввода; б — операция записи или вывода ПФ во всех интегральных микросхемах, так как внутри- модульные процессоры обработки, запоминания и пере- дачи осуществляются параллельно. В настоящее время применяют главным образом две первые формы реали- зации. На рис. 2.4 показано прохождение сигнала во време- ни при взаимодействиях через ОШ ЭВМ первого типа. При операции считывания (информация направля- ется в активный модуль) адреса и сигналы управления ЧИТАТЬ (READ) выдаются активным модулем по ши- нам адреса ША и управления ШУ. Опрашиваемый пас- сивный модуль через необходимое для признания адреса и протекания внутренних процессов время (время обра- щения) выдает информацию (слово данных) на шину данных ШД. При разработке активных модулей это время запаздывания следует учитывать, так как опро- 68
сить шину данных и принять информацию возможно только после некоторой более длительной паузы. Затем сигнал READ возвращается и освобождает шину для следующих взаимодействий, так как последовательность прохождения сигнала требует двух-трех периодов такто- вых импульсов и продолжается в микропроцессорных системах, выполненных по МОП-технологии, в зависимо- сти от тактовой частоты 0,2—1 мкс. Во время операции записи (передача информации к пассивному* модулю) активным модулем выдается ад- рес, данные и управляющий сигнал ЗАПИСЬ (WRITE). Опрашиваемый пассивный модуль с некоторым запаз- дыванием воспринимает информацию. Активный сразу же снова прекращает эту передачу и некоторое время задерживает свой сигнал. Отличительной чертой этой формы взаимодействия является то, что с противоположной стороны не происхо- дит никакого квитирования при приеме и формации. Активный модуль, напротив, с самого начала принимает во внимание установленное при операциях записи и счи- тывания время запаздывания. 2.1.2. Модуль памяти Каждая микро-ЭВМ нуждается по меньшей мере в устройстве памяти для программы. Кроме того, может потребоваться расширение имеющегося в микропро- цессоре состава регистров памятью данных или ячейка- ми памяти для информации о состоянии процессора. Рассмотрим сначала принципиальные организацион- ные формы электронных запоминающих устройств (рис. 2.5). Универсальным типом памяти является память со свободным доступом RAM1 (оперативное запоминающее устройство — ОЗУ). Она содержит определенное число ячеек, которые могут избираться адресом произвольно и в которые записывают данные, а затем сколь угодно раз считывают, ничего не разрушая. Направление пото- ка данных устанавливается сигналом управления (ЧТЕ- НИЕ или ЗАПИСЬ). Ясно, что доступ к этому устрой- ству памяти свободный. 1 RAM (Random Acces Memory) — память с произвольным до- ступом (англ.). 69
RAM Статиче- ские ОЗУ динамиче- ские ОЗУ FIFO-ламять Масоч- ные ПЗУ ППЗУ СППЗУ ЭСППЗУ Рис. 2.5. Организация доступа LIFO-память в различных типах памяти Другие приведенные на рис. 2.5 типы памяти явля- ются частными случаями, происходящими в результате некоторых функциональных упрощений или расширений. Постоянное запоминающее устройство (ПЗУ или ROM*) является упрощенным типом ОЗУ, имеющим также сво- бодный доступ, но возможный лишь при операциях счи- тывания. Его содержимое должно, следовательно, быть уже постоянно готово к моменту ввода в микро-ЭЙМ. Запоминающие устройства типа LIFO1 2 или FIFO3, на- против, не обладают никаким свободным доступом. Та- ким образом, в этом случае для операций записи или чтения не нужны никакие адреса, устанавливаемые вне устройств. Память типа FIFO дает возможность форми- ровать очередь, в которой операциями записи данные запоминаются одни за другими, а операцией считывания считывается по мере необходимости стоящее в очереди 1 ROM (Read Only Memory)—память только для чтения (англ.). 2 LIFO (Last in First Out) — последний вошел, первый вы- шел (англ.). ’ FIFO (First in First Out) — первый вошел, первый вышел (англ.). 70
первым слово и затем стирается. Такая память всегда нужна, если элементы — источники данных и элемен- ты — назначения данных имеют различное быстродей- ствие, которое должно быть согласовано установкой промежуточного буфера в запоминающем устройстве. Адреса для имеющегося теперь первого свободного для записи места в памяти и соответственно следующего считываемого места формируются самим элементом па- мяти; с переполнением выдается внешний сигнал. Па- мять типа LIFO имеет по отношению к FIFO обратную организацию доступа, где по мере надобности последнее слово в памяти данных при требовании считывания вы- дается первым и затем стирается (поэтому называется магазинной памятью, стеком). Само собой разумеется, что в таких типах памяти на основании специфической организации доступа каждое слово может быть счита- но только один раз. Памяти типа LIFO пригодна для запоминающих уст- ройств состояния, a FIFO нужна для специальных за- дач ввода-вывода или при сопряжении ЭВМ. Для памя- ти данных и программ подавляющей части задач запо- минания преобладают запоминающие устройства с произвольным доступом. До сих пор, однако, не уда- валось изготовить ОЗУ на микроэлектронной основе, которые одновременно удовлетворяли бы всем требова- ниям в одном элементе памяти. Поэтому в настоящее время производят и устанавливают в микро-ЭВМ не- сколько различных типов ОЗУ. Наиболее рентабельны динамические ОЗУ. Они име- ют, однако, недостаток: содержимое ячеек памяти сохра- няется только несколько миллисекунд и в процессе счи- тывания снова обновляется. Следовательно, ячейка па- мяти не может длительно оставаться без доступа. (Здесь следует снова принять во внимание, что для электрон- ных устройств миллисекунды являются достаточно дли- тельным временем, микропроцессор успевает за это время обрабатывать по меньшей мере 1000 команд). Если обновление обеспечивается не программно обус- ловленным доступом, то следует позаботиться, чтобы все ячейки памяти считывались циклически (только с целью сохранения их содержимого). Большинство мик- ропроцессоров вырабатывают для этого специальные сигналы обновления, так что эти задачи выполняются без потери быстродействия. Если таких сигналов нет, 71
применяют специальные блоки обновления. Если их со- бирают на динамических элементах, то они внешне вы- глядят как статическая память и называются псевдо- статическими элементами ОЗУ. Элементы статических ОЗУ сохраняют все содержи- мое, пока приложено питающее напряжение. Для их из- готовления требуется, правда, больше транзисторов на одну ячейку памяти, чем у динамических ОЗУ, поэтому объем памяти оказывается меньшим. Для автоматического действия ЭВМ необходимо, чтобы в памяти после отключения любой длительности сохранялась по меньшей мере стартовая программа. Часто также важно сохранить общую постоянную про- грамму. Поэтому элементы ОЗУ подпитываются от до- полнительного источника (аккумуляторов), чтобы при исчезновении или отключении напряжения сети они взя- ли на себя все электроснабжение. Микроэлектроника предлагает еще один путь — ис- пользование постоянных запоминающих устройств (ПЗУ). Элементы ПЗУ выпускаются в нескольких ис- полнениях. Если содержимое памяти задается в процес- се производства специальным внутренним монтажом, они- называются масочно программируемыми. Использо- вание такого ПЗУ предполагает, что не нужны никакие изменения содержимого и элементы с одинаковым со- держимым требуются в большом количестве. Поэтому их используют в случае применения микро-ЭВМ, напри- мер, в сфере товаров широкого потребления. Если эти условия не выполняются, то применяют элементы ПЗУ, которые можно после их изготовления одно- или много- кратно программировать (ППЗУ — программируемые постоянные запоминающие устройства). Наиболее рас- пространенной версией ППЗУ до сих пор являются сти- раемые ППЗУ, которые программируются электричес- кими сигналами и могут быть снова стерты ультрафио- летовым облучением. Для этих целей их не помещают полностью в пластиковый или керамический корпус, а предусматривают кварцевое окно. Запись (програм- мирование) и стирание выполняются пользователем, но для этого нужно специальное оборудование. Между тем производят также ЭСППЗУ, которые записываются и стираются электрическими методами. В них ближе всего идеальная память, содержимое которой не исчеза- ет, а память может электрическим путем сколь угодно 72
часто записываться и стираться. Правда, процесс запи- си (стирать и программировать) требует значительно большего времени (в пределах миллисекунд), чем при динамических и статических ОЗУ, так что в качестве подлинной памяти записи или чтения они непригодны и вводятся в систему только как считываемая память. Подводя некоторый итог, следует еще раз заметить, что многообразие современных, вводимых в микропро- цессорную технику элементов памяти обусловлено тем, что современная микроэлектроника не позволяет до сих пор изготовить такие элементы со свободным доступом, неисчезающей, обладающей высокой плотностью памяти и низкой стоимостью. В вычислительной технике широко используется память на магнитных сердечниках, кото- рая вследствие своих технологических особенностей и параметров здесь неприменима. Элементы памяти и составленные из них модули ха- рактеризуются следующими параметрами. 1. Объемом памяти. С N-разрядными адресами мож- но выбрать 2N мест в памяти. Поэтому память элемента является всегда степенью с основанием 2. Объем памяти в последние годы увеличивается очень быстро. В настоя- щее время достигнуты следующие уровни: статические элементы ОЗУ: 1,8, 16 Кбит; динамические и псевдоста- тические ОЗУ: 16, 64, 256 Кбит; СППЗУ: 1,2,4,8 Кбайт; электрические стираемые ППЗУ: 8 Кбайт. 2. Временем обращения. Между установкой адреса и окончанием процесса считывания или записи имеется (зависящее от технологии изготовления) время задерж- ки. У современных наиболее распространенных элемен- тов памяти, выполненных по МОП-технологии, это вре- мя обращения лежит в пределах от 50 до 500 нс. 3. Разрядностью памяти. Элементы выполняются с различной разрядностью слова. Они имеют обычно разрядность 1, 4 или 8 бит (1 байт). Разрядность вызы- ваемого слова модуля памяти должна быть равной раз- рядности шины данных, для чего в случае необходимо- сти требуется параллельное соединение нескольких эле- ментов памяти. На рис. 2.6 показано устройство модуля памяти дан- ных или программы. Элемент памяти (а также парал- лельно включенные элементы при недостаточной разряд- ности слова) может быть в большинстве случаев под- соединен прямо на проводники шины. Однако, так как 73
он обычно меньше, чем мак симально адресуемая об- ласть памяти, возможно (ес- ли нужно) подключить на шину несколько модулей. Но тогда потребуется модуль дешифратора адреса, кото- рый в случае необходимости распознает, расположен ли требуемый адрес внутри от- дельной адресной области. Только в этом случае он ак- тивизирует по линии выбора элемента (кристалла) от- дельный элемент памяти. Рассмотрим пример. Если микропроцессор распола- гает 16 адресными линиями (16-разрядной адресной ши- ной), то можно вызвать 64 К (21в=65536) ячеек памя- ти. Если вводится элемент памяти 4 К, то имеется воз- можность подключить на шину до 16 модулей памяти. При этом следует обеспечить элементы памяти 12 ад- ресными линиями (212 = 4 К). Оставшиеся четыре долж- ны быть подключены соответственно на модуль дешиф- ратора адреса 24 = 16. Иначе говоря, поступающая по ад- ресной шине информация состоит из двух адресов: модуля (4 бит), чтобы его выбрать, и адреса для выбо- ра ячеек в памяти внутри. ША ШУ Дешифратор Адрес* ОЗУ ПЗУ ППЗУ 72 Запись Утонив Данные При ПЗУ и ППЗУ запись отсутствует Рис. 2.6. Устройство модуля памяти Ф 2.1.3. Модуль центрального процессора (микропроцессор) Процессорный модуль в соответствии с рассматри- ваемой структурой микро-ЭВМ (не будем обращать вни- мания на маловажные дополнительные электронные устройства) образуется одной БИС — микропроцессо- ром. Так как процессор является активным ядром ЭВМ и им определяются многие показатели, на его долю при- ходится, следовательно, при отмеченной модульной структуре доминирующее положение. Именно поэтому часто употребляют такие понятия, как микропроцессор- ная техника, микропроцессорные системы, микропро- цессорное управление, хотя взятый отдельно микропро- цессор принципиально является недееспособным элемен- том, а должен быть укомплектован прежде всего 74
Инициализа- ция (RESET) Ожидание Сиеналы прорывания Управление доступам к шине О +S& ТИ 5Ъ ТИ Рис. 2.7. Типовые выводы микропроцессоров другими устройствами (по меньшей мере программной памятью и питанием). Его внутренняя структура не от- личается от рассмотренного в § 1.2 устройства централь- ного процессора (см. рис. 1.15), только множество ка- налов связи между процессором и остальными функцио- нальными устройствами и при микропроцессоре должно быть снижено до одного-единственного (через ОШ ЭВМ), чтобы ограничить число присоединений элемента. На рис. 2.7 приведены типовые подсоединяемые вы- воды для такого элемента, их можно разделить на три группы.* К первой относятся входы; необходимые для обеспечения работоспособности (напряжение питания, тактовые импульсы ТЯ). Ко второй (их больше, они показаны справа на рисунке) — образующие ОШ ЭВМ и шину управления ШУ (двунаправленной может быть только шина данных ШД). И, наконец, сигналы управ- ления (в основном входы), которые, будучи единствен- ным воздействием, позволяют запускать циклы команд с помощью тактовых импульсов. Этими выводами огра- ничивается требуемая еще при такой концепции микро- ЭВМ разработка программных средств. Прежде чем рассмотреть подробнее возможности управления, сле- дует сопоставить важнейшие параметры микропроцес- сора. Возможности обработки и объем состава команд. (Что может микропроцессор?) Этими параметрами в ко- нечном счете устанавливается, на какие элементарные операции должна быть расчленена задача обработки информации (алгоритмизация, программирование). Чем ниже возможности обработки и меньше состав команд, тем длиннее последовательность команд. Таким образом 75
возникают ограничения к формату данных и требуемым операциям обработки для каждого типа процессора. Быстродействие. (Сколь быстро работает микропро- цессор?) Время, нужное микропроцессору для выполне- ния одной команды, может колебаться в широких пре- делах в зависимости.от ее типа. Это связано с принци- пом работы общей шины. Каждое взаимодействие с другим блоком ЭВМ требует определенного числа тактовых импульсов. При этом для времени выполне'ния команды в конечном счете решающим является выпол- нение дополнительно многих таких взаимодействий. Адресное пространство для элементов памяти и вво- да-вывода. (Как многие ячейки памяти и порты ВВ мо- гут обратиться прямо к микропроцессору?) Этот пара- метр определяет способность системы к развитию. Вось- миразрядные микропроцессоры оснащены обычно 16-разрядной адресной системой, так что могут прямо обращаться к 64 Кбайт (65 536) ячейкам памяти, 16- разрядной располагает лишь 20 (более 1 Мбайт ячеек памяти) или 23 бит (более 8 Мбайт ячеек памяти). Ес- ли число требуемых адресов ячеек памяти превосходит определенные адресным пространством границы, воз- можности введения микропроцессора в системы реаль- ного времени с высоким быстродействием становятся уже проблематичными, так как нужны внешние допол- нительные элементы памяти (расширение памяти на- копителями на гибких и жестких магнитных дисках). Но с этим неизбежно связаны увеличение времени обращения, более сложная организация программного обеспечения и меньшая надежность (они представ- ляют собой электромеханические системы). Парамет- ры некоторых микропроцессоров приведены в табл. 2.1. Режимы микропроцессора также не отличаются от рассмотренных в § 1.2. Выполнение циклов команд про- исходит всегда в соответствии с тактовыми импульсами. Конечно же, этот процесс подвержен влиянию управля- ющих сигналов (см. рис. 2.7). Сигналы прерывания. Активизацией входов прерыва- ния осуществляются уход из предусмотренной програм- мой последовательности отработки команд и запуск спе- циальной программы обслуживания прерывания. Необ- ходимые для этого системы прерывания обычно только частично содержатся в микропроцессоре. Дополнитель- 76
Таблица 21. Параметры некоторых микропроцессоров Длина слова, биты' Тип микропро- цессора ’ Адресное пространство Время выполнения команды, мкс 8 8080А 8085 Z80 Z80B U880 М6800 MCS650X 64 Кбайт 1.5/3,75» 0,8/5,2 1,0/5,8 0,7/4,2 1,6/9,2 1,0/2,5 0,5/3,5 16 Z8002 1АРХ86/10 MC68000 1АРХ286/10 Z8001 384 Кбайт 1 Мбайт 16 Мбайт 16 Мбайт 48 Мбайт 0,3/51,5 0,2/19 0,375/12 0,2/17,6 0,3/51,5 32 • 1АРХ432 MC68020 16 Мбайт 4 Гбайт 1,25/200 0,12/5,8 • В числителе — наименьшее, в знаменателе — наибольшее. ные аппаратные средства должны быть реализованы от- дельно, вернее, размещены в другом элементе. Сигнал инициализации (СБРОС, RESET). Всегда заботятся о систематизированных действиях микропро- цессора. Можно исходить из того, что при вводе в дей- ствие (подключение питающего напряжения и тактовых импульсов) в ячейках памяти микропроцессорных эле- ментов, а также в счетчике команд окажется случайное содержимое. Тогда отработка программ началась бы со случайного места в памяти. Кратковременная активиза- ция сигнала RESET действует теперь так, что содержи- мое счетчика команд и, возможно, последующих внут- ренних регистров будет выдаваться по определенному назначению (например, нулевое содержимое счетчика команд означает, что запуск состоится с нулевой ячейки памяти) /Эти сигналы могут быть поданы вручную (кла- виша RESET). Но для того чтобы предусмотреть, что ни в коем случае после подключения питающего напря- жения не будет обработки команд в случайной последо- вательности, надо дополнительно ввести соответствую- щую электронную схему, которая при включении пита- ющего напряжения выдает блокирующий сигнал (авто- матическая блокировка). 77
Сигнал для расширения во времени цикла команды '(ожидание, пошаговый режим). Имеются две возмож- ности. Партнеры при взаимодействии с микропроцессо- ром не в состоянии среагировать за выделенное для это- го время. При рассмотрении режимов ОШ ЭВМ показа- но, что никакого квитирования при приеме информации пассивным модулем, как правило, не существует. Для большинства элементов в силу их быстрой реакции та- кая необходимость не возникает. Однако если должен быть включен пассивный модуль, реагирующий медлен- нее, у микропроцессора есть управляющая линия ОЖИ- ДАНИЕ, которая служит для того, чтобы цикл взаимо- действия продолжался до тех пор, пока этот ввод снова станет пассивным. Для целей тестирования нужна по- шаговая отработка программы. Активизация входа ОЖИДАНИЕ осуществляется пользователем, и может быть предусмотрен режим системы с любым увеличени- ем времени. Управляющие сигналы доступа к шине осуществля- ют также останов работы процессора и, кроме того, от- ключают все передающие линии от ОШ ЭВМ. Это нуж- но в том случае, если к шине подключено несколько активных модулей (многопроцессорные системы), кото- рые могут работать попеременно. 2.1.4. Модули ввода-вывода Обмен информацией между микропроцессором и внешними устройствами представляет собой довольно сложную задачу из-за многообразия элементов блоков и приборов, необходимых в качестве УВВ в различных задачах. В вычислительной технике для этого использу- ют такие обобщенные понятия, как периферия УВВ, внешние устройства. Конструкторам и проектировщикам технологической установки затруднительно представить эти функционально сложные, большие по объему объ- екты в качестве периферии управляющей ЭВМ. Однако для анализа потока информации и разработки систем управления ими такое представление необходимо. Классифицировать УВВ микро-ЭВМ можно согласно приведенной основной структуре системы реального вре- мени (см. рис. 1.1) следующим образом. 1. Индикаторные и задающие устройства ввода в си- стеме человек (оператор) — ЭВМ, которые выполнены 78
в виде ключей, переключателей, клавишных панелей, световых перьев и пр., и устройства вывода — в виде светодиодов для устройства дисплейных элементов, ин- дикаторов на электронно-лучевой трубке, печатающих устройств, графопостроителей и других. 2. Измерительные (сенсоры) и исполнительные уст- ройства, в которых элементы ввода представляют собой аналоговые и дискретные измерительные сигналы физи- ческих величин (давление, температура, сила), оптичес- кие и акустические системы распознания, а устройства вывода — аналоговые и дискретные системы потоков энергии и вещества (вентили, системы защиты, электри- ческие и гидравлические приводы). Необходимо также ввести различия по удаленности, так как одинаковое УВВ отличаются различными ис- полнениями связей — местными или удаленными. К УВВ относятся также внешние запоминающие уст- ройства расширения памяти, потому что совместная ра- бота ЭВМ и внешних запоминающих устройств проис- ходит после выполнения таких же условий подключения, как при всех прочих вышеприведенных УВВ, а положе- ние и функциональное назначение внешней памяти в си- стеме не может зависеть от типа модулей запоминающих устройств, подключаемых прямо на ОШ ЭВМ. Из приведенного многообразия типов вытекают раз- личные условия, после выполнения которых должен осу- ществляться обмен информацией между микро-ЭВМ и УВВ. Рассмотрим сначала диапазон скоростей, пред- лагаемый микропроцессором для выполнения ввода и вывода информации. Операции ввода и вывода являются взаимодействием между активным модулем микропроцессора и пассив- ным ВВ. Они осуществляются каждый раз в соответст- вии с представленными на рис.2.4 временными диаграм- мами. Содержащиеся в программе команды ВВ приво- дят к тому, что микропроцессор обращается по шине адреса к соответствующему модулю, а по шине данных передает двоичное слово из регистра микропроцессора к УВВ или наоборот. Тогда ввод-вывод выполняется пословно (разрядность слова соответствует разрядности шины данных), но протекание этого процесса во време- ни определяется микропроцессором и осуществляется в течение нескольких периодов тактовых импульсов. При этом микропроцессор, с одной стороны, в состоянии 79
Рис. 2.8. Связь микро-ЭВМ с внешними устройствами: в— аппаратно специфический модуль ВВ; б — модуль интерфейса ВВ выполнить по меньшей мере 100 000 таких операций в секунду, а с другой — сигналы адреса и данных по- ступают на шины настолько кратковременно, что боль- шинство внешних устройств не успевают на это среаги- ровать. Поэтому обычно необходимы специальные блоки свя- зей (модули ВВ) между микро-ЭВМ и УВВ для согла- сования различных временных соотношений, а часто также для преобразования сигналов (рис. 2.8, а). Преж- де всего обратимся к вопросу о возможностях, представ- ляемых микроэлектронными элементами для реализа- ции таких модулей. Из рис. 2.8, а очевидно, что в соответствии с сущест- вующими с двух сторон индивидуальными интерфейса- ми для каждой шины микро-ЭВМ и каждого УВВ необ- ходимы были бы для связей специальные элементы. Раз- работку и изготовление интерфейсов ВВ осуществляют в соответствии с тремя концепциями. Во-первых, универсальные элементы ВВ (универ- сальный периферийный интерфейс). В этом случае до- стигают самой большой гибкости, когда в качестве эле- мента связи используют ЭВМ (однокристальные ЭВМ). Разработкой одной специфической программы для каж- дого УВВ можно с помощью одного элемента связать самые различные УВВ. Во-вторых, аппаратно специфические элементы ВВ. Для УВВ, которые в больших количествах вводятся в микропроцессорные системы (например, накопители на гибких магнитных дисках, клавишные устройства), экономически целесообразно изготовлять специальные элементы управления вводом-выводом (контроллеры на гибких магнитных дисках или катодно-лучевые), обору- 80
дованные с одной стороны интерфейсом ОШ ЭВМ, а с другой — необходимым для конкретного УВВ интер- фейсом. В-третьих, интерфейсно специфические элементы ВВ. Здесь используют давно известный метод разделения электронных связей на две структурные группы и воз- никающий при этом дополнительно промежуточный ин- терфейс (рис. 2.8,6). Таким способом можно снизить многообразие типов интерфейса ВВ до нескольких ос- новных. Правда, УВВ должны быть снабжены соответ- ствующими дополнительными электронными элементами для реализации такого интерфейса. Преимущество в .том, что необходимы при этом только несколько типов элементов, которые осуществляют связь между шиной микро-ЭВМ, с одной стороны, и этим промежуточным интерфейсом — с другой. Степень стандартизации таких интерфейсов ВВ раз- лична. Существуют международные стандарты (напри- мер, IEC — шина управляемой от ЭВМ измерительной системы), национальные и стандарты фирм-изготовите- лей. В дальнейшем остановимся на рассмотрении функ- ционально ограниченных интерфейсов, которое сюда не входят. Квазипараллельный интерфейс (рис. 2.9) образован из определенного количества двоичных линий ВВ, где каждая имеет свое собственное назначение. Поэтому из- менения сигналов на этих линиях происходят, как пра- вило, неодновременно. В качестве примера на рис. 2.9 представлена схема управления кассетным магнито- фоном. Модуль ВВ на стороне вывода при этом типе интер- фейса должен осуществлять только функции захвата, при которых поступающее кратковременно на шину данных выводимое слово будет приниматься в ячейку памяти 5 (захват памяти, защелка) и как статически эталонный сигнал удерживаться столь долго, пока не будет выдано новое (эталонный сигнал). Со стороны ввода элемент в простейшем случае бе- рет на себя только коммутационные действия. Коман- дой ввода кратковременно на шину данных подключа- ется электронный коммутатор (рис. 2.9). Действие ко- манды состоит в считывании всех эталонных сигналов, принадлежащих в этот момент линиям ввода. Модифицированная форма ввода состоит в том, что 6-935 81
Рис. 2.9. Модуль квазипараллельного интерфейса: INT — требования прерывания; ДА — дешифратор адреса функция захвата и в этом случае берет на себя элемент. Состояние линий ввода в определенный момент времени воспринимается. УВВ" и сохраняется до следующей за- тем команды. Момент захвата определяется дополни- тельным сигналом интерфейса STROB (момент считы- вания). Момент ввода в ЭВМ определяется текущей про- граммой. Однако возникает проблема сделать ЭВМ такой «внимательной», чтобы было подготовлено для ввода новое слово, для чего элементы В В снабжают специальным выходом прерывания INT (рис. 2.9), кото- рый оповещает о появлении нового вводимого слова и поэтому может применяться в качестве сигнала пре- рывания для центрального процессора. Параллельный интерфейс (рис. 2.10) передает сигна- лы в форме двоичных слов. Если разрядность слова ВВ 82
ОШ ЭВ* ША ШУ П^д Модуль вывода. DAY /нт Прерывание ! Команда вывода I READY lb Прием I Готовность приема READY-] Готовность приема Модуль ввода Готовность приема Данные имеются, | Прием j ЛАУ Команда ввода S) INT I I READY. Прерывание Параллельный интерфейс (метод рукопожатия): вывода; б — модуль ввода; 5 —защелки памяти; ДА— дешифра* УР — управление рукопожатием ЛАУ Рис. 2.10. а — модуль тор адреса; меньше или равна разрядности слова ЭВМ, они пред- ставляют собой прямое продолжение шины данных УВВ. В отличие от квазипараллельного интерфейса отдельные двоичные линии ввода или вывода не владеют никаки- ми самостоятельными’ функциями, и изменения состоя- ний сигналов на всех линиях происходят одновременно. Такой интерфейс предполагает, как правило, такти- рование приемников, т. е. передача новых символов (двоичных слов, эталонных сигналов) должна быть объ- явлена источником информации, дополнительным такто- 6* 83
вым сигналом наличия данных DAV. Если, кроме того, надо принять во внимание ограниченную способность приема приемником, то тогда нужен следующий сигнал, направленный к источнику, сообщающий о готовности к приему (READY). На .рис. 2.10, а приведен пример модуля вывода, че- рез который к ЭВМ подключено печатающее устройст- во. Командой вывода символ для печати прежде всего захватывается, а затем передается кодированным дво- ичным словом. Если от печатающего устройства подает- ся сигнал готовности к приему (READY-1), то следует передача кода символа на параллельные линии, а печа- тающее устройство информируется об этом активизаци- ей сигнала наличия данных DAV. Оно квитирует пере- дачу символов возвратом сигнала READY. Элемент вывода реагирует на это возвратом сигнала готовности данных, печатающее устройство сообщает об этом акти- визацией сигнала READY. Такой двусторонний обмен сигналами называется методом рукопожатия и дает «возможность согласования различных по быстродействию микро-ЭВМ и медленных УВВ. Со стороны микро-ЭВМ нужно, конечно, распо- знавать возникновение новой готовности к .приему, при этом может последовать следующая команда вывода. Поэтому либо должно постоянно сканироваться состоя- ние готовности линий со стороны ЭВМ (следовательно, они должны быть подключены к порту ввода и считы- ваться командой ввода), либо изменение их состояния вызывать сигнал прерывания. Таким образом, элемент параллельного вывода вы- полняет более обширный объем действий. Наряду с функциями захвата должны быть гарантированы управление рукопожатием УР, формирование сигналов прерывания INT и функции ввода для управления руко- пожатием. На рис. 2.10,6 приведен параллельный модуль ввода и временная диаграмма процесса прерывания на приме- ре клавишного устройства. Нажатием клавиши выдается код символа на параллельные линии. Кроме того, акти- визируется сигнал наличия данных DAV. Модуль ввода активизирует затем сигнал INT, для того чтобы обра- тить внимание микро-ЭВМ на требование ввода с кла- виатуры. После его признания и запуска специальной программы обслуживания прерываний через определен- 84
Рис. 2.11. Последовательный ин- терфейс вывода ное время выполняется ко- манда ввода с клавиатуры, по которой избирается тре- буемый модуль ввода и вво- дится символ. Затем модуль ввода активизацией своей линии READY - квитирует прием сигнала и таким об- разом сигнализирует об об- новленной готовности (тре- бовании) приема символа. Если между микро-ЭВМ и УВВ должно быть боль- шое расстояние, то целесо- образно применение после- довательного интерфейса. Он необходим, когда инфор- мация передается по линиям связи. Рассмотрим прежде все- го последовательный, модуль вывода (рис. 2.11). При ко- манде вывода выданное ши- ной данных слово должно быть, прежде всего, снова о О о о 1 1 о 1 о 1 1 1 о I дав г/глляшишляпшшлг t захвачено и затем выдано на линию побитно в твердо установленной последова- тельности и с определенными тактовыми интервалами '(последовательно). Тактовые импульсы ТИ вырабатыва- ются генератором тактовых импульсов ГТ И. Но здесь тотчас возникает вопрос: каким образом добиться сог- ласования скоростей? При одной-единственной линии интерфейса пословное управление нереализуемо, а вве- дение встречно-направленной второй линии невы- годно. Обычно выхоДят из положения, стандартизуя ряд скоростей передачи (например, 300, 600, 1200, 2400 бит/с), из которого для конкретного случая выби- рают подходящую. Собственные генераторы тактовых импульсов модуля ВВ и удаленного УВВ служат для их согласования. Передающую частоту выравнивают по 85
более медленному взаимодействующему партнеру или часто ограничиваются каналами передачи. В каждом случае она, как правило, значительно меньше, чем час- тота вывода из микро-ЭВМ. Соответственно процессору необходимо сообщение о разрешении вывода нового слова. В отличие от параллельного интерфейса оно поступа- ет не от приемника, а от модуля интерфейса. Здесь мо- гут быть снова выбраны обе возможности: выработка сигнала прерывания или опрос состояния по команде ввода. Но последовательная передача данных требует, например, решения еще следующих проблем: синхрони- зации между источником и назначением (уравнивание частот, находящихся на расстоянии тактовых генерато- ров и распознавание начала и окончания последователь- но передаваемых двоичных слов); распознавания оши- бок при передаче и соответствующих мероприятий для их устранения. Необходимо регламентировать заданную последовательность методом обмена информации, на- пример самым простым стартстопным (рис. 2.12,а). Начало символа отмечается стартовым битом (состоя- ние 0), а окончание — соответственно одним или двумя стоповыми битами (состояние 1). При атом синхрони- iS Знак1 J Ь \падза. it! 3hbkZ j tj iHagaa --------------------: 'М I I I I I I I вбит a) Начальная синхронизация (Z знака) . _____Блок_______ Пауза г| ! । SYH*Знак 1 \ Знак Z { {Знак я 'SYН i I inn rinn_r । ilhi г iiniiri тггпттплУи1гпл_Ш дЬцт Q) Рис. 2.12 Методы передачи данных: а — стартстопный; б — синхронизации; в — HDLC-(SDLQ-метод «6
зация между источником и назначением гарантирована, и символы могут быть переданы асинхронно (допусти- мы любые пробелы). Недостатков этого метода, а именно необходимости многих бит для целей синхронизации (до и после каж- дого символа), лишена синхронная передача (рис. 2.12,6). Здесь биты передаются без пробелов, и, таким образом, больше не существует никакой отметки о на- чале или окончании каждого слова. Поэтому устанав- ливается специальный знак синхронизации SYN для фиксации приемника в начале передачи, который ис- пользуется, кроме того, для заполнения пробелов. Рассмотренные до сих пор методы основаны на по- символьной передаче данных. Формирование большого объема (блока) данных (около 1000 бит) и их надеж- ная передача должны быть связаны с последующими сигналами управления. Однако в будущем будут выпол- няться процедуры, заранее ориентированные поблочно, например HDLC- или SDLC- метод (рис. 2.12, в). При этом согласовывается единственный сигнал управления F (флаг). Он служит для определения начала и конца блока и заполнения пробелов между блоками. Аналоговые входные или выходные сигналы для представления информации внутри ЭВМ непригодны и требуют аналого-цифрового или соответственно циф- ро-аналогового преобразования. Рассмотрим сначала принцип построения модуля вв’ода аналогового сигнала (рис. 2.13). Он представлен бесконечно плотной ступен- чатой последовательностью значений. Последующие превращения в дискретный сигнал в аналого-цифровом преобразователе (АЦП) могут состоять только в преоб- разовании информации по обеим координатам. Пробы с текущего сигнала снимают через интервалы Г, и изме- ренные значения при этом квантуют, т. е. представляют более или менее грубым растром с N различными уров- нями. Из аналогового сигнала при этом образуется, оче- видно, промежуточный ступенчатый, который на следу- ющей ступени кодирования превращается в л-разрядное кодированное слово и является выходным для АЦП. Оказывается, что при п бит могут быть закодированы 2п различных уровней (например 8-разрядным словом— 256 уровней амплитуд). Для этого АЦП необходимо оп- ределенное время (время преобразования), зависящее от типа электронной технологии. 87
Рис. 2.13. Аналоговый фейс ввода интер- Параметрами АЦП являются: 1) быстродействие, т. е. время преобразования, определяющее верхние гра- ницы частоты опроса аналогового сигнала, 2) точность, определяемая разрядностью слова. От нее зависит чис- ло уровней квантования и точность преобразования зна- чений сигнала. 4 Поэтому при разработке систем нужно оценить тре- буемую в каждом конкретном случае точность и затем выбрать подходящий АЦП. Само собой разумеется, что технические затраты и стоимость преобразователей растут при снижении времени преобразования и повышении числа уровней, а для этих параметров существуют определенные грани- цы. Впрочем, выпускается достаточный ассортимент АЦП и специальные устройства нужны только для осо- бых целей. Следует, конечно, иметь в виду, что микро- ЭВМ может воспринимать поступающие от АЦП коди- рованные слова с ограниченной скоростью, и с этой 88
ОЩ ЭВМ ША ШУ сигнал <-— Рис. 2.14. Аналоговый интерфейс вывода Преобразователь . данныс/аб'рвс стороны также налагаются ограничения на их разреша- ющую способность. Таким образом, назначение АЦП состоит в том, что- бы вместо аналогового интерфейса обеспечить парал- лельный (рис. 2.13). Более простым является обратное преобразование, т. е. получение аналогового сигнала из последовательно- сти выдаваемых ЭВМ двоичных слов. Соответствующий модуль вывода (рис. 2.14) содержит цифро-аналоговый преобразователь (ЦАП). Передаваемое командой выво- да двоичное слово преобразуется на электронном пути в JV-ступенчатый квантованный дискретный сигнал. Так как частота вывода ограничена программой вы- вода и в конечном счете конечным быстродействием ЭВМ, то дискретный сигнал появляется по обоим коор- динатам. При этом понятие ЦАП является почти стро- гим, так как функция, собственно говоря, ограничена декодированием, т. е. преобразованием параллельного двоичного слова в многоступенчатый сигнал. Его можно сгладить только включаемым затем фильтром. Однако часто этого не требуется, так как последующие устрой- ства вывода имеют возможность подключаться в силу своей инерционности без такого сглаживания. Приведенные рассуждения показали, что, несмотря на трудности стандартизации, значительное число раз- личных требований при связи ЭВМ с внешними устрой- ствами принято во внимание и, таким образом, заклю- 89
чей компромисс между ассортиментом и назначением. Часто изготавливают элементы ВВ, уже представляю- щие собой определенные основные типы (например, па- раллельный или последовательный интерфейс), но предназначенные еще для различных видов использо- вания. Они выполнены так, что внутри модуля содер- жится управляющий регистр, который должен загру- жаться только командой вывода для установления конкретного назначения элемента. Таким образом, раз- работчику системы предоставляется возможность охва- тить широкий круг задач при ограниченном выборе эле- ментов, а также осуществить функциональные переклю- чен*ия в течение обработки программы. Со стороны ЭВМ предусмотрено, что эти модули имеют два адреса: нор- мальный адрес для операций ВВ и адрес для регистра регистров управления программирующего элемента. 2.1,5. Модули счетчиков времени—таймеров При использовании ЭВМ для управления системами реального времени почти всегда от машины требуется «чувство» времени, т. е. один раз в определенный момент времени или периодически через равные интервалы ини- циировать определенные действия (запуск специальной программы), измерять интервалы времени между двумя внешними событиями и т. д. Формирование временных интервалов (времени не- чувствительности, ожидания) может быть обеспечено аппаратно. При этом используют то обстоятельство, что операционное время для команды точно известно и по- стоянно при стабилизированной частоте основных так- товых импульсов процессора. Тогда допустимо програм- мировать такую последовательность команд незначи- тельного объема, при которой время прохождения про- граммы может варьироваться в широких пределах (от микросекунд до часов и суток). Если ЭВМ при выполнении своей программы дости- гает такой временной подпрограммы, она в течение оп- ределенного времени занимается ее реализацией; таким образом, создается кажущаяся пауза, до тех пор пока ЭВМ не завершит временную подпрограмму и продол- жит выполнение основной программы. Машинй в тече- ние этой паузы не реагирует даже на прерывание, так как иначе не будет соблюдена никакая точная уставка 90
времени. В дальнейшем таким способом может быть при необходимости сформирована только одна выдержка времени. Таким образом, как измерение интервалов времени (останов часов), так и измерение абсолютного времени суток требуют введения дополнительных аппаратных средств. Возможен, например, следующий метод. От- дельный внешний генератор тактовых импульсов выда- ет базовые тактовые импульсы стабилизированной час- тоты настолько высокой, насколько этого требует время решения (например, миллисекундный тактовый им- пульс). Этот импульс формирует для ЭВМ входной сиг- нал (сигнал прерывания). На восходящем фронте так- тового импульса работа ЭВМ прерывается и иницииру- ется переход к специальной программе обслуживания прерывания — ПРОГРАММЕ ЧАСОВ. Она действует так, что содержимое избранных, предусмотренных для хранения ПРОГРАММЫ ЧАСОВ, ячеек памяти далее наращивается. Для такого последующего хода часов требуются немногие команды, так что при этом ЭВМ будет мало загружена и, следовательно, используемые временные периоды оказываются по меньшей мере в 100—1000 раз больше, чем периоды тактовых импуль- сов процессора. Таким способом надежно обеспечивает- ся возможность постоянно считывать другими програм- мами точное время с жестко заданных мест в памяти данных или состава регистров процессора. Чтобы совсем освободить ЭВМ от этой вспомогатель- ной работы, можно расширить состав аппаратных средств специальными датчиками времени (таймерами). Они представляют собой электронные устройства и со- стоят в основном из блока счетчиков, автоматически увеличивающих, содержимое ячейки памяти на единицу при возникновении тактового импульса. Если теперь та- кой блок счетчика развить, чтобы можно быЛо подклю- чить на ОШ ЭВМ и затем как ячейку памяти постоянно записывать и считывать, то получим часы, -ход которых больше не загружает ЭВМ (рис. 2.15, а). Таким обра- зом, различие с вышеприведенными часами состоит в том, что их такт больше не вызывает прерывания ЭВМ, а содержимое регистра изменяется непосредствен- но, а также в том, что регистр установлен не в памяти данных, а в специальном модуле датчика времени, ко- торый может адресоваться и считываться как порт ВВ. 91
Рис. 2.15. Модуль таймера: а — принцип ввода в ЭВМ; б — структура узла ЭВМ с таймером Рассмотренный основной принцип показывает, что электронные счетчики времени таймеры обладают ря- дом дополнительных качеств, в том числе возможностью управляться (программироваться) с помощью специаль- ных управляющих слов (кодов). На рис. 2.15, б показан пример такой *схемы. Для нее характерны следующие свойства: в качестве начального такта применяют по выбору либо внешний, либо сокращенный делителем ос- новной такт процессора, причем делитель может быть настроен на различные значения; если счетчик достига- ет своего конечного состояния, он выдает один внешний импульс, формирует сигнал прерывания и начинает за- тем свои действия по выбору: или с согласованного на- чального значения, или с остановки; начальное значение задается произвольным. С помощью одного такого модуля можно решать множество различных задач. Рассмотрим некоторые примеры. Функция будильника. Командой вывода регистр счетчика загружается начальным значением, и затем снимается запрет для тактирования сокращенными де- лителем тактами системы. По прошествии времени, за- висящего от начального значения и уставки делителя (времени пробуждения), счетчик достигает своего ко- 92
вечного значения и информирует об этом микропроцес- сор сигналом прерывания. Тактовый генератор. Часто в микропроцессорной си- стеме нужны дополнительные такты (например, для по- следовательного интерфейса). Чтобы при этом сэконо- мить на установке отдельных тактовых генераторов, ис- пользуют выводы модуля таймера. Программирование выполняется, как и в случае будильника, но сигнал INT не подключается и элемент программируется так, что при переполнении счетчика снова загружается началь- ное значение. После запуска датчик времени работает при этом полностью автономно и вырабатывает пери- одическую последовательность импульсов, частота кото- рых может, однако, постоянно изменяться загрузкой других параметров в элемент датчика времени. Останов часов. Таймер устанавливается на ноль и запускается. При возникновении события, следствием которого должна быть остановка, содержимое счетчика считывается по команде чтения. Область счета регистра соответствует разрядности шины данных и тем самым строго ограничена (например, до 256 в 8-рядной систе- ме). Однако возможно простое расширение, при котором выход предшествующего датчика представляет собой тактовый вход последующего. 2.1.6. Специальнее модули Общие свойства всех до сих пор рассмотренных мо- дулей состоят в том, что они являются партнерами микропроцессора при взаимодействиях, могут быть до- ступны по адресам, содержащимся в командах, и в со- стоянии обмениваться словами данных. Различие заклю- ,чается в выполняемых с этими данными операциях. В модулях памяти они сохраняются неизменными, в пор- те вывода захватываются и одновременно попадают на ведущие вне системы линии или загружаются в специ- альный регистр управления модулем, выходные линии которого определяют его внутренний режим, чтобы уста- новить один из многих вариантов действий (программи- руемый модуль). Возникает вопрос: возможны ли дополнительные по- лезные операции, для которых могут быть разработаны специальные пассивные модули? Понятным является выполнение математических операций, например вычис- 93
Рис. 2.16. Арифметический про* цессор: 0П1, 0П2 — регистры операндов н (или) результатов ление функций с одним опе- рандом (ех, sinx) или bij- числительных операций вы- сокого уровня (умножение, деление, возведение в сте- пень и т.д.). Каждая такая задача принципиально мог- ла бы выполняться програм- мным арифметическо-логи- ческим устройством цент- рального процессора (где на элементарные, содержа- ОШ ЭВМ ША ШИ функции раскладываются щие команды из состава команд процессора, напри- мер сложение и вычитание). Но тогда для решения необходимо значительное время на выполнение опе- раций. Если ввести специальный модуль, позволяю- щий быстро выполнить заданную математическую функцию (например, sinx), то возможен следующий ре- жим: операнд х передается KOMaHAoibaanHCH такому мо- дулю синуса, который вычисляет значение функции sin х и отправляет его в регистр результата. Следующей за этим командой считывания результат посылается в микропроцессор. Вместо вычислений функции после- довательностью действий процессора (по программе си- нуса!), теперь программа состоит только из двух команд передачи данных (записи и считывания в специальном модуле). Если определение функции выполняется аппа- ратно, то результат получается сразу. Если внутри мо- дуля заключена снова ЭВМ (специализированная одно- кристальная), то, чтобы получить результат, нужно не- сколько шагов, при этом сначала надо подождать сообщения модуля о готовности (опрос циклом ожида- ния или сигналом прерывания). К стандартному составу некоторых микропроцессор- ных комплектов относятся среди прочих арифметические процессоры, созданные для такого круга задач. Отличие их только в том, что они поставляются для выполнения большого количества операций и поэтому от микропро- цессора кроме операндов должно быть дополнительно
передано управляющее слово, которым выбирается тре- буемая для выполнения операция (рис. 2.16). Плохо ос- нащенные для числовой обработки микропроцессоры могут быть дополнены таким пассивным модулем; про- изводительность микро-ЭВМ в этом случае значительно повысится. 2.1.7. Система прерываний Управление системами реального времени требует от управляющей ЭВМ немедленной реакции при возникно- вении какого-либо события во внешних устройствах. Для этого требуется постоянно следить за множеством соединительных линий. Мы уже видели, что такое сле- жение может быть выполнено периодическим опросом с помощью команд ввода. Но тогда принудительно по- лучаются только конечные интервалы опроса, которые могут стать слишком большими, особенно, если событие распознается, ЭВМ отрабатывает требуемую реакцию и при этом на некоторое время прерывает опрос. В каж- дом случае для такого опроса необходима лишь малая часть возможностей процессора. Поэтому благоприятное решение заключается в том, что такие задачи вводят аппаратно. Используемая для этого часть центрального процессора называется соответственно системой преры- вания, а сигналы на линиях слежения — сигналами пре- рывания. Рассмотрим вначале, чем могут быть вызваны требо- вания прерывания и какая в принципе реакция может на это последовать. Соответственно различают сигналы прерывания: внешние прямое сообщение от внешнего устройства о двоичном событии (аварийная сигнализа- ция) ; внутренние — сообщение о готовности иди требо- вании обслуживания пассивных модулей (УВВ, датчика времени и т. д.); исключительные состояния внутри про- цессора (TRAP-прерывание высшего приоритета) — ложная команда, нежелательный операнд (деление на ноль) и другие. Первый и второй типы прерываний являются в об- щем асинхронными по отношению к тактовым импуль- сам ЭВМ и представляют собой в конечном счете боль- шое количество входных сигналов процессора (см. рис. 2.1). Система прерываний на возникающее требование 96
прерывания должна вызывать следующие основные дей- ствия: по возможности быстрое прерывание обработки текущей программы таким образом, чтобы позднее мож- но было ее продолжить без потери информации; запуск специальной программы обслуживания прерывания. Теперь рассмотрим, как эти задачи решаются микро- процессором. Узким местом при реализации полной си- стемы прерывания на микропроцессорных элементах снова оказывается ограниченное число связей. Так, не- возможно предусмотреть достаточное количество входов для прямого подсоединения каждого источника преры- вания. Компромиссом здесь является использование микро- процессором обычно двух или трех входов, причем один из них является всегда так называемым обобщенным входом прерывания (векторное прерывание). Все источ- ники прерывания в конечном счете подключаются к не- му. При возникновении требования прерывания микро- процессор заканчивает выполнение текущей команды программы полностью, но к этому моменту у него нет никакой информации о конкретной причине прерывания, поэтому он не может тотчас запустить обслуживающую программу. Он должен сначала многократно осведо- миться о причине прерывания, в ходе чего добиться взаи- модействия со специальным модулем управления пре- рываниями (контроллером прерываний). Для этого микропроцессор выставляет специальное сочетание адресов (подтверждение прерывания) и полу- чает переданное от модуля прерываний по шине данных кодированное слово (так называемый вектор прерыва- ния), чем источник прерывания распознается одно- значно. Тем самым определяется стартовый адрес дей- ствительной программы обслуживания прерывания, за- носится в счетчик команд и программа запускается. Для ввода векторного прерывания в микропроцессо- ре существует главный переключатель, с помощью кото- рого можно вообще игнорировать прерывания. Срабаты- вает он по двум командам (см. эталонный состав команд в табл. 1.4). Таким образом, система прерываний может лишь ча- стично содержаться в самом микропроцессоре (МП). Как только в разрабатываемых микро-ЭВМ причин пре- рывания оказывается больше, чем входов, должен встраиваться модуль управления прерываниями (рис. 96
ОШ ЭВМ Рис. 2.17. Реализация системы прерывания с помощью модуля управления прерыванием 2.17), который а) формирует сигнал векторного преры- вания; б) осуществляет подготовку и выдачу на шину данных вектора прерывания после опроса ее микропро- цессором; в) определяет приоритет при одновременном появлении более чем одного требования прерывания. Приоритет может быть установлен жестко, но сущест- вуют решения, при которых он устанавливается управ- ляющим регистром заново в текущей программе. Име- ется также возможность маскировать входы прерыва- ния, т. е. отключать их порознь. Для этой цели нужен один регистр, который загружается маской прерывания программно, и в которой определенный бит относится к соответствующему входу и w управляет включением и отключением прерываний. Выбор допустимого в кон- кретный момент времени сигнала прерывания происхо- дит селективно. Блок управления со стороны элементов микро-ЭВМ осуществляется в виде: отдельного элемента (контрол- лера прерывания) и отдельного блока управления пре- рывания. Первая форма приведена на рис. 2.17т Управление прерыванием осуществляется отдельным пассивным мо- дулем, выполненным на одном элементе. Недостатком системы является необходимость установки последую- щего элемента, а подключаемым может быть опять-таки ограниченное число источников прерывания. Во втором варианте этого избегают тем, что с само- го начала на каждом элементе, содержащем источник прерываний (например, элементе ввода-вывода, тайме- 7—935 97
ОШ ЗВМ ША ША Ш9 мп Запрет z прерывании овщид запрет г |- лреры- I L да май I / Вектор прерывания ТА t I • X " • Пасси Оные модули о источниками прерываний 01Е TH Отдельное управление прерыванием INT та IS INT ГА Статическая цепь приоритета. Рис. 2.18. Система прерываний с раздельным управлением прерыва- ниями ре), по мере необходимости устраивается собственный блок управления. Однако функционально можно обусло- вить только формирование вектора прерываний, а мас- кирование устраивается непосредственно на источнике, в то время как выбор приоритета и формирование век- тора прерывания могут быть выполнены на более высо- ком уровне. Следовательно; в каждом случае нужно сов- местное включение таких отдельных управлений преры- ваниями. На рис. 2.18 приведен часто применяемый для этих целей принцип жестких схем приоритета. Здесь каждое распределенное управление прерываниями располагает тремя подсоединениями. Выход INT является действи- тельным требованием прерывания, которое соответствен- но объединено со всеми последующими сигналами (логи- ческое соединение по схеме ИЛИ). По одному входу IE и выходу IA предназначено для формирования приори- тета по следующему принципу. При возникновении требования прерывания активи- зируются выходы INT и IA. Микропроцессор тотчас ин- формируется об этом по обобщенному входу и, если нет никакого запрета, прерывает свою работу. Затем вызы- вается операция считывания вектора прерывания. Од- нако этот ’процесс может относиться теперь не к одно- му определенному модулю, а должен быть общим тре- бованием всех источников прерывания. Поэтому согла- суется адрес подтверждения прерывания, на который 98
могут реагировать все модули. Теперь на операцию счи- тывания отвечает только один модуль с высшим приори- тетом, прочие же, у который активен вход 1Ё, при таком принципе приоритета запрещаются {daisy-chain — принцип маргаритки). До тех пор, пока не возникнут какие-либо требования, все входы IE пассивны. Однако как только один модуль затребует прерывания, он акти- визирует свой выход JA, который согласно рис. 2.18 со- единится со входом следующего модуля и тем самым запрета все модули более низкого приоритета. После полного выполнения программы обслуживания преры- вания в конце ее устанавливается специальная команда возврата для того, чтобы запреты ниже расположенных по приоритету блоков снова были отменены (выход IA снова будет пассивным). 2.1.8. Реализация устройств памяти состояния Запуск специфической для каждой причины преры- вания программы обслуживания является только поло- виной выполняемой работы. Для того чтобы суметь про- должить позже выполнение прерванной программы, надо обеспечить сохранение состояния процессора на момент прерывания. Под состоянием процессора будем понимать совокуп- ность содержимого регистров к моменту прерывания. Изменением программы должно измениться содержимое счетчика команд, а последующей обработкой программы обслуживания прерывания может поменяться содержи- мое остальных регистров. Идеальным было бы, если сохранение состояния про- цессора полностью взяла бы на себя система прерыва- ний. Однако в большинстве случаев это обеспечивается только частично (например, сохранение лишь содержи- мого счетчика команд). Остальные регистры должны сохраняться специальными командами передачи данных, которые при этом надо каждый раз включать в начале каждой программы обслуживания прерывания. Независимо от аппаратной реализации устройства для этого всегда нужно соответствующее пространство памя- fu. Функционально лучше всего подходит память типа LIFO, так как задача состоит только в том, чтобы на короткое время помочь организовать «склад» двоичных слов (содержимого регистров) для того, чтобы затем их 7* 99 5
снова установить в регистрах. Память типа LIFO (ма« газинная, складская память, стек) точно выполняет эту задачу. При операциях записи данные в последователь- ности их поступления запоминаются, а при операциях считывания записанное последним слово считывается первым. Следует всегда помнить, что последовательность стека при считывайии обратная. На рис. 2.5 показан принцип устройства LIFO-памя- ти. Оно состоит из ограниченного числа ячеек и управ- ления доступом в память, которым во внутренних регист- рах подготавливаются действительные последующие ад- реса записи или считывания. При операции записи сначала содержимое такого адресного регистра повыша- ется на единицу, а затем слово данных помещается в указанную ячейку памяти; при считывании адресуемое этими регистрами место считывается. Адресный регистр указывает на место, записанное последним (следующая операция считывания), и называется соответственно ука- зателем стека. Прежде чем установить возможность реализации та- кого устройства памяти состояния, следует пояснить, какая емкость памяти (глубина стека) нужна при этом. Можно было бы принять глубину стека равной числу регистров, предназначенных для хранения информации. Но это достаточно, только если в зависимости от необ- ходимости допускается лишь один уровень прерывания. Во многих системах реального времени требуется непре- менно гарантированное неоднократное их выполнение. Значит, в ходе обработки одной программы обслужива- ния прерываний может отсутствовать запрет на после- дующее требование прерывания и, таким образом, последующим требованием прерывания выполняемая про- грамма прерывается и запускается следующая. Вследст- вие случайного характера прерываний точное определе- ние глубины стека невозможно и в основу должен быть положен скорее самый неблагоприятный случай. Реализация устройств памяти состояния может вы- полняться в следующих вариантах (рис. 2.19). Если го- ворить об устройстве, • показанном на рис. 2.19, б, то оно едва ли выполнимо, хотя в этом случае доступ ор- ганизован довольно просто: не требуется никакого ука- зания адреса. Недостатком является необходимость вве- дения дополнительного элемента. Если LIFO-память сосредоточена в микропроцессоре, то получается корот- ки
Рис._2.19. Варианты реализации памяти состояния: а — внутренний стек; б — применение отдельного элемента LIFO-памяти; в — стек в ОЗУ кий и притом быстрый путь передачи данных (рис. 2.19, а), но глубина памяти неизбежно ограничена. Та- кой принцип йрименяется в некоторых микропроцессо- рах, однако чаще используется следующий вариант (рис. 2.19, в). Это компромиссное решение. Во избежа- ние введения обособленных LIFO-элементов для памя- ти данных используют ОЗУ, предназначенные для памя- ти данных, а внутри микропроцессора устанавливают только управление доступом (указатель стека УС и не- обходимая для последующего счета логика). Преиму- щество заключается в том, что наряду с уменьшением типов элементов для такого устройства памяти исполь- зуют часть области ОЗУ и можно легко приспособиться к конкретному случаю применения ЭВМ. К недостаткам использования ОЗУ следует отнести затрату времени на процессы передачи данных, из-за чего время прохожде- ния программы значительно больше, а производитель- ность микро-ЭВМ прГи использовании ее в реальном вре- мени заметно ограничена. 2.1.9. Мультипроцессорные системы До сих пор мы исходили из того, что на ОШ ЭВМ подключен только один активный модуль — микропро- цессор. Для повышения производительности целесообразно к той же шине подключить последующие активные мо- дули, тогда некоторые или все пассивные модули (па- мять, порты ввода-вывода) могут использоваться сов- местно. При этом.надо иметь в виду, что хотя подклю- 101
Требование шаны Разрешение шаны МП Актив- ff-MoOgj» ныв модула г II S-модуль 1 1 3-модуль 2 S-модуль л ША ШД ШУ Пассивные Г модули | .imW ГКНгЭД^/1 1 § Ж Рис. 2.20. Микропроцессорная JV1/S-система чить можно любое количество активных модулей, работать всегда будет только один. Точнее говоря, в одном коммуникационном цикле шину может занимать лишь один активный модуль. Следовательно, модули должны поделить шину и свои взаимодействия выпол- нять во времени раздельно — один за другим временное мультиплексирование. Однако для этого необходимо предоставить всем активным модулям возможность под- ключения и отключения своих выходных линий и ввести определенное ранжирование. Поэтому активные модули следует делить на ведущие (Master) и ведомые (Slave). Ведущие М-модули являются центральными процес- сорами, которые выполняют собственный цикл команды и при этом вырабатывают требования для последую- щего взаимодействия. Ведомые (S-модули) занимают промежуточное место между пассивными и активными модулями, поскольку они активизируются только М-мо- дулем и только на ограниченное время. На рис. 2.20 приведена принципиальная структура мультипроцессорной M/S-системы. Микропроцессор ис- пользуется в качестве М-модуля для управления досту- пом к шине по управляющей линии (см. также рис. 2.7). Входная линия, чаще обозначаемая как захват шины или HOLD, побуждает его перейти в состояние ожидания после окончания текущего взаимодействия и одновре- менно отделиться от шины. Это достигается специаль- ным уровнем передачи, которая вообще может нахо- диться в трех состояниях (тристабильные выходы)? J02
Рис. 2.21. М-мультисистем а двоичных состояний 0 и 1, а также в состоянии большого сопротивления? Последующее отключение оповещается сигналом квитирования (подтверждение захвата шины). Теперь микропроцессор остается в этом состоянии ожит Дания до тех пор, пока не поступил сигнал запроса; S-модулям присуща, напротив, линия запроса, по кото- рой при необходимости ойи требуют шину и подключа- ется к передаче только при получении подтверждения. Такой метод доступа к шине называется захватом цикла, так как S-модули при необходимости каждый раз могут отключать микропроцессор и захватывать его цикл взаимодействий. Метод применим, когда, число захва- тываемых циклов в среднем остается относительно ма- лым и работа микропроцессоров ограничивается несу- щественно. Если, напротив, несколько М-модулей подключены к одной шине (М-мультишина), то никакого взаимного контроля активных модулей не существует и все они по- дают на шину собственные запросы. Решение в этом случае определяется вышестоящей инстанцией, т. е. шиной, которая анализирует все запросы и, действуя по определенным правилам, предоставляет разрешение на подключения соответствующего М-модуля (рис. 2.21). Возникает вопрос: на чем, собственно, основано по- вышение производительности микропроцессоров, когда в зависимости от условий только один процессор мо- жет быть активным, а все остальные должны быть пассивны? Если одинаковые микропроцессоры расположены так, как показано на рисунке, то, в самом деле, никакое су- щественное улучшение управления невозможно. Един- 103
ственное преимущество состоит в том, что переключе- нием процессоров большое число программ может обра- батываться как бы параллельно (в'действитёльности же поочередно и во взаимосвязи между собой); однако со- стояние процессоров (содержимое счетчиков -команд, ре- гистров) при этом не должно сохраняться в стеке. Напротив, введение специальных процессоров иногда значительно повышает производительность. Но для ка- ких задач выгодно подключать специальные активные модули на шину? Анализ программ ЭВМ позволяет установить, что, к примеру, ввод (и вывод) больших массивов данных от медленно действующих периферий- ных устройств является всегда повторяющейся задачей. Ее решение-ири пословной передаче, как это предлагает микропроцессор, и методом опроса или прерывания при- водит к значительным программным и временным за- тратам. Поэтому первый шаг для повышения произво- дительности ЭВМ сводится к введению отдельных про- цессоров ввода-вывода (контроллеры ввода-вывода, устройства прямого доступа к памяти, называемые в СМ ЭВМ каналами или канальными устройствами -управления). Рассмотрим в качестве примера элемент прямого до- ступа к памяти (ПДП). Она образует активный модуль с S-функциями (рис. 2.22), т. е. может загружаться в пассивном состоянии управляющей информацией и по- сле этого активизироваться, чтобы самостоятельно вы- полнять ограниченное количество задач, например пере- давать массив данных из памяти к порту вывода или наоборот, а также из одной области памяти в другую. В случае передачи массива из запоминающего уст- ройства к устройству вывода (например, печатающему устройству) модулю ПДП от микропроцессора должны быть переданы адрес порта вывода и начальный адрес области памяти, размеры блока и вид выполняемых многими управляющими словами функций. Эти парамет- ры загружаются в специальные регистры управления элементами. После передачи последующего управляю- щего слова активизации модуль ПДП будет активным, он тем временем сначала запрашивает шину и таким об- разом требует ее освобождения. После подтверждения освобождения микропроцессором шины элемент ПДП запускает два собственных сообщения, адресует снача- ла элемент памяти и посылает слово данных, чтобы за- 104
Требование шины Рис. 2.22. Модуль ПДП тем адресовать порт вывода и выдать слово данных. За- тем он снова освобождает шину и повторяет процесс, но только в случае, если устройство вывода подготовлено к приему следующего слова. Микропроцессор больше не загружается опросом или обслуживанием прерываний и пословным выводом; возникает некоторое время ожи- дания выполнения цикла устройством ПДП, но оно со- ставляет часть обычно необходимого для отработки вре- мени. 2.2. Однокристальные ЭВМ Использующая микропроцессорные комплекты мо- дульная конструкция ЭВМ характеризуется высокой гиб- костью при проектировании аппаратных средств, но име- ет и недостаток: при очень малом объеме ЭВМ состоит из нескольких блоков (микропроцессор, устройства па- мяти программ и данных, порты BB)j и при этом, как 105
правило, требуется отдельная печатная плата для микро- ЭВМ. Чтобы уменьшить габариты модульных систем, выпус- кают комбинированные элементы, в которых, к приме- ру, вместе расположены запоминающее устройство, пор- ты ВВ или ПЗУ, таймер. Однако модульный принцип при этом сохраняется, а вся конструкция реализуется уже в виде двух или трех блоков. Сосредоточение блоков ЭВМ в одном элементе (кри- сталле) ч при малой площади ведет к заметной потере гибкости. Поэтому однокристальные ЭВМ в первую оче- редь предусматриваются для внедрения в установки и аппараты широкого применения в качестве управля- ющих элементов или «искусственного интеллекта». Ти- пичная архитектура однокристальной ЭВМ приведена' на рис. 2.23. Программа в однокристальную микро-ЭВМ заклады- вается уже при ее изготовлении. Для изделий, изготов- ляемых малыми партиям#, существуют специальные од- нокристальные микро-ЭВМ со стираемыми ППЗУ. Объ- ем памяти таких ЭВМ не превышает 1—4 Кбайт, но в будущем наверняка будет увеличиваться. Объем памяти данных обычно невелик—12Й байт. Важными при использовании ЭВМ являются число и вид интерфейсов ВВ. Так как нет никакой простой воз- можности расширения интерфейсов ВВ, в однокристаль- ных ЭВМ пытаются достичь определенной степени гиб- Подключвния вв Рис. 2,23. Однокристальная микро-ЭВМ. 106
кости программируемостью имеющихся в наличии портов ВВ. Для обеспечения работы портов в различных режи- мах в специальный внутренний регистр управления про- граммой вводится командное слово. Таким образом, од- нокристальная ЭВМ может быть приспособлена для вы- полнения различных задач. Стационарную конструкцию образуют один последовательный интерфейс ВВ и один или несколько таймеров. Кроме того, выпускаются одно- кристальные ЭВМ для прямого соединения с аналоговым интерфейсом (АЦП и ЦАП). По составу команд и быстродействию однокристаль- ные ЭВМ нельзя ни в коем случае считать менее произ- водительными; .их недостатки—ограниченный объем па- мяти и число подключаемых ВВ. Быстродействие машин составляет от 500000 до' 1 млн. операций в секунду при разрядности слова 8 бит. » Возможности управления ограничиваются чаще всего сигналом инициализации (RESET), причем автоматиче- ская инициализация при подключении питающего напря- жения, как правило, реализована уже на элементе и не- которых входах прерывания. В противоположность мик- ропроцессорной концепции здесь есть система прерываний СП, но не существует никакого векторного прерыва- ния, так как нет возможности задавать вектор прерыва- ния. Существуют три направления использования одно- кристальных ЭВМ. Во-первых, в изделиях массового про- изводства промышленности средств транспорта, в произ- уПоргпОд— — — Порт 1 • й=Я \ Внешня) Порт Z | арода ПортЗ> Рис. 2.24. Варианты использования однокристальной микро-ЭВМ: а — одноэлементная ЭВМ; б — как основной элемент модульно развивающейся микро-ЭВМ 107
водстве товаров народного потребления, когда изготов- ление специальных (встроенных) однокристальных ЭВМ оказывается экономически целесообразным; во-вторых, в качестве универсального промежуточного изделия; в-третьих, как основного блока микропроцессорной си- стемы. В последнем направлении ЭВМ предусматривается возможность развития структуры. В этом случае ЭВМ следует дополнить шиной-интерфейсом (развитие внут- ренних шин), к которой могут подключаться последую- щие элементы памяти, УВВ и специальные модули. Так как необходимого для этого числа присоединений недо- статочно, производят переключение функций порта ВВ однокристальной ЭВМ. Как правило, два порта ВВ спе- циальным внутренним управляющим словом преобразу- ются в адресную шину данных (рис. 2.24). ГЛАВА 3 ПРОГРАММНЫЕ СРЕДСТВА МИКРО-ЭВМ За проектированием для заданного назначения необ- ходимой структуры аппаратных средств микро-ЭВМ сле- дуе'т разработка программного обеспечения. Посылае- мым программой из памяти словом команды определя- ются действия ЭВМ на период цикла команды (для микро-ЭВМ его продолжительность составляет от одной до нескольких микросекунд). Запоминанием соответст- вующей последовательности . команд в такой програм- мной памяти в общем .устанавливается заданный режим ЭВМ. ' . Требуемая последовательность действий ЭВМ опре- деленного назначения называется ее программой. При обширных, программах применяют выражение «систем- ная или общая программа», чтобы иметь еще возмож- ности расчленения массива на подпрограммы. Под про- граммированием понимают процесс разработки програм- мы, который должен быть выполнен до ввода ЭВМ в действие. Следует отметить, что сами понятия «программа» и «программирование» неравнозначны. Например, гово- рят о выборе программы бытовой машины, о программи- ровании станка с числовым управлением или о свободно 108
Рис. 3.1. Модель оболочки программируемом промыш- ленном роботе. Поэтому вы- бор определенного рабочего режима устройства из мно- гих (иногда бесконечно мно- гих) возможных путей, т. е. процесс программирования, является, в действительно- сти, с точки зрения рассмот- ренных выше систем реаль- ного времени, вводом слу- жебных команд. Таков про- граммирование устройства не следует путать с програм- мированием* встроенной в это устройство ЭВМ. Вправляемая от SBM система (Процесс, оборудование). Ввод вывод Индикация состояния а требо- вание заданий Задающие команды (Программи- рование оборудо- вания) Для того чтобы отметить существующие между ними различия, рассмотрим так называемую модель оболочки (рис. 3.1). Ядро управляемой от ЭВМ Системы (устрой- ства) образуется аппаратными средствами ЭВМ и в си- лу своей структуры и принципа действия имеет многоце- левое назначение. Для реализации определенной системы реального времени ЭВМ снабжена специальной пе- риферией (как измерительными и исполнительными, так и задающими и регистрирующими элементами) и си- стемной программой. Эти» компоненты образуют совме- стно своеобразную оболочку вокруг аппаратного «ядра». Модель должна пояснять, как при этом из ЭВМ универ- сального назначения получаются специализированные устройства, и само ядро ЭВМ соответствует понятию оператора установки, т. е. больше не изменяется ни ап- паратно, ни программно. Возможное воздействие может осуществляться только через задающую периферию. Од- нако задающие команды уже запланированы в выпол- няемой программе. Они ожидаются к определенному мо- менту времени и анализируются (интерпретируются) пос- ле ввода очередной подпрограммы. Следовательно, вы- полняются специфические действия, содержащиеся в ви- де подпрограммы в программной памяти ЭВМ. Таким образом, программируемость различных устройств ЭВМ определяется программируемостью самой ЭВМ. 109
Ранее мы предполагали, что при проектировании си- стемы возможна итеративная разработка аппаратных и программных средств, причем программные средства определяются в последнюю очередь. В сложных систе- мах этот процесс может протекать многократно. Но про- граммные средства принципиально зависят от аппарат- ных. Однако часто лишь в ходе или после разработки программных средств становится очевидным, что требо- вания со стороны пользователя не могут быть удовлет- ворены (например, слишком велико время выполнения программы) и поэтому нарушаются условия реального времени. Следовательно, необходимо изменение аппа- ратных средств и затем снова программных. Развитие вычислительной техники вело до сих пор к преимуще- ственно пестрому составу аппаратных средств, а ЭВМ выпускали как цельный конечный продукт. При этом приспособляемость к конкретным задачам пользователя ограничивалась в первую очередь программными сред- ствами, что также повлекло за собой раздельную разра- ботку аппаратных и программных средств. Области использования управляющей ЭВМ в каждом случае определялись способностями программиста. Мо- дульная структура аппаратных средств микро-ЭВМ, на- против, предполагает высокую степень гибкости ЭВМ. Вследствие низкой стоимости аппаратных средств роль программного обеспечения все более возрастает. Так, в литературе по вычислительной технике часто ука- зывается-на то, что в будущем именно оно будет опреде- лять экономическую целесообразность введения ЭВМ. Поэтому необходимо и дальше развивать технологию программного обеспечения. Можно выделить три подхода к использованию про- граммных средств. 1. Для элементов, выпускаемых большими партиями, стоимость в значительной мере определяется затратами на аппаратные средства. В этом случае стоимость оди- ночного программного обеспечения раскладывается на всю партию. 2. Для устройств, изготавливаемых в малых сериях, приоритетом при оценке экономичности обладают про- граммные средства. 3. При использовании больших или сложных систем на первое место выходят наглядность и простота при разборке, контроле и корректировке, а также простота 110
обслуживания. Следует отметить, что при этом затраты на аппаратные и программные средства распределены равномерно. Э.1. Машинная программа Содержащаяся в памяти программа может состоять только из кодированных слов (команд), которые «пони- мает» центральный процессор (микропроцессор). Сле- довательно, состав команд этого процессора определяет вид применяемых Команд и их точное кодирование. Ко- дированные слова называют машинными командами. Как бы ни вьцюлнялась разработка программы програм- мистом, конечным ее продуктом в каждом случае дол- жна быть последовательность таких машинных команд. Она также называется машинной программой, так как зависит от используемого в каждом случае типа машины (прбцессора). 3.1.1. Примеры программ Рассмотрим некоторые примеры машинных прог- рамм. Отметим только, что здесь не ставится задача де- тального изучения разработки программ на машинном уровне. Программирование на машинном языке требу- ет больших затрат времени и сосредоточенности от про- граммиста. Вместе с этим следует иметь некоторое пред- ставление о том, как работает ЭВМ. Покажем, на какие элементарные шаги должна быть в конечном счете раз- ложена задача для решения на ЭВМ или как процессор должен выполнять поступающие друг за другом коман- ды для решения хотя бы простейших задач. Поскольку программирование на машинном .языке за- висит от используемого конкретного процессора, пред- ложим следующее: а) применяемая микро-ЭВМ> имеет разрядность обра- батываемой информации 8 бит; б) состав команд соответствует приведенному в §1.2 эталонному составу; рассматривается одноадресный про- цессор, т. е. результат и первый операнд всегда рас- полагаются в одном определенном регистре — аккуму- ляторе; в) слова команд должны иметь постоянную разряд- ность — 16 бит и занимать при этом две следующих од- 111
на за другой ячейки памяти. (В действительности слова различных команд' имеют различную длину.) Кроме того, следует иметь в виду, что разработанные в последующих примерах программы составляют обычно только часть общей программы, поэтому пока еще не известно, в каком месте программной памяти начинать их размещение. Только когда имеются все программы, может быть составлена общая программа, и тогда' зада- ют конкретные значения адресов в программной памяти. Для качественной оценки задают время выполнения от- дельных команд, которое приблизительно^соответствует реальному значению в используемой ЭВМ или микропро- цессоре, выполненных преимущественно по МОП-техно- логии. Пример 1. Рассмотрим программное решение приве- денного в § 1.1 примера для сопоставления принципиаль- ных форм реализации электронного управления. Привод производственной машины должен был быть включен только вручную, для чего было введено защитное устрой- ство, о положении которого сообщает фотоэлемент обзо- ра рабочего пространства (см. рис. 1.9). На рис. 3.2, а приведена лежащая в основе аппаратная структура. Ручной коммутатор (кнопка К) и электронный комму- татор фотоэлемента ФЭ подключены на линии 0 и 7 порта ввода. Остальные линии портов ввода и соотвбт- Рис. 3.2. Запуск двигателя: а — аппаратная структура; б — структурная схема программы 112
ственно вывода частично понадобятся еще для других входных или выходных сигналов, которые для рассмат- риваемого примера не играют никакой роли. В ячейке 16 памяти данных должно постоянно храниться состоя- ние порта вывода. Такое мероприятие необходимо, так как этот порт не может считываться процессоррм и, сле- довательно, отображение (копия) его текущего состояния всегда должно сохраняться в памяти данных, чтобы в любое время быть доступным для считывания. На рис. 3.2,6 структурной схемой отражены выполняемые подпрограммой ЗАПУСК ДВИГАТЕЛЯ* этапы. Из при- веденных в табл. 2.1 команд составляется машинная программа (табл. 3.1). Когда установлена последовательность команд, сле- дующий рабочий шаг при разработке программы состо- ит в том, чтобы, исходя 413 таблицы кодов, определить соответствующие кодированные слова используемых ко- манд. Они вводятся затем в программную память. В ре- зультате оказывается, что программа содержит девять команд .(конечно, здесь речь идет о подпрограмме зада- чи управления). Получается, что при невыполненных условиях пуска (ручной переключатель или устройство защиты замкнуты), программа требует 8 мкс, в против- ном случае—17 мкс. Уже этот пример показывает, что программирование на машинном языке требует от программиста высокой степени сосредоточенности. Так, в программную память нужно непрерывно записывать текущие адреса, чтобы можно было считать соответствующие адреса перехода. При этом оставляют адреса переходов сначала откры- тыми, так как они получаются только в последующем развитии разработки программы и соответственно толь- ко тогда могут быть внесены в прошедшие ранее команды. ' ' Если после первой разработки программы обнару- живаются ошибки и требуется изменить соответствую- щие команды, дополнить их или убрать, то последова- тельность адресов в программной памяти может изме- ниться, и все адреса переходов нужно исправить. •Поэтому для облегчения работы целесообразно сна- чала вводить лишь символические адреса. Вместо кон- кретных численных значений вводятся для этих адресов программной памяти символы (последовательность букв или комбинации букв и цифр), образующие проме- 8-935 113
X Таблица 3.1. Машинная программа к примеру Л Адрес Команды х+о Х+2 Х+4 ВВОД Порт 1 (2 мкс) ЗАГРУЗИТЬ Регистр 1 1000 0001 (2 мкс) И Регистр 1 (1 мкс) Х+6 ПЕРЕЙТИ Ноль Y (3 мкс)
Комментарий Текущее состояние всех сигналов в порте ввода 1 пере- дается 'В аккумулятор. (В качестве адреса программной памяти устанавливается сначала адрес X.) Регистр 1 загружается двоичным словом 1000 0001 Содержимое аккумулятора (состояние порта ввода 1) обрабатывается в соответствии с логической функцией И с двоичным словом регистра 1. Содержимое регистра 1 служит в этом случае маской, т. е. 1 содержится в раз- рядах, которые представляют интерес для последующей обработка. В нашем случае — это разряды 0 и 7, так как обе линии подключены к ним. Результат команды находится в аккумуляторе и отличен от 0 только тогда, когда обе входные линии к моменту команды ввода на- ходятся в состоянии 1. (Таким образом, как приводится в действие ручной переключатель, так и вводится за- щитное устройство.) Если результат равен нулю (нет воздействия на ручной переключатель либо введено защитное устройство), сле- дующие команды пропускаются и программа продолжа- ется с адреса У. (Этот адрес'при записи строки про-
00 Х+8 Х4-Ю i Х+12 Х+14 Х+16 г Г = X + 18. ПЕРЕДАТЬ Дккумулятор Регистр 16 (2 мкс) - ЗАГРУЗИТЬ Регистр 1 0000 0001 2 (мкс) ИЛИ Регистр 1 1 (мкс) ВЫВЕСТИ Порт 1 (2 мкс) ПЕРЕДАТЬ Регистр-16 Аккумулятор 1 2 (мкс) Следующая команда
граммы еще неизвестен и должен поэтому сначала ос- таваться открытым; он может быть введен только в дальнейшем.) Следующие кдманды осуществляют запуск двигателя. Сначала из ячейки 16 памяти данных посылается в ак- кумулятор последнее установленное состояние порта вы- вода. Регистр 1 загружается двоичным словом 0000 0001 Операцией ИЛИ содержимого аккумулятора с содержи- мым регистра 1 все. биты, кроме первого, остаются неиз- менным^. Только первый бит становится единицей Команда передает содержимое аккумулятора в порт вы- вода 1. При этом линия управления двигателем активи- зируется Новое состояние порта вывода снова передается в ре- гистр 16 памяти данных. Программа заканчивается На этом месте программной памяти находится первая команда следующей подпрограммы, которая решает сле- дующую задачу в рамках общей, программы, а также осуществляется запрограммированный выше условный переход, т. е. только теперь может быть внесен адрес перехода Х+18
«уточные интервалы. Точно так в программу вводят требуемые константы. Поэтому программу на первом этапе разработки можно записать, как показано в табл. 3.2. Таблица 3.2. Программа с символическими адресами Адрес Команда Комментарий ВВЕСТИ Порт 1 ЗАГРУ- ЗИТЬ Регистр 1 МАСКА И Регистр 1 ПЕРЕЙТИ Ноль Адрес 1 Вместо записи текуще- го адреса в программной памяти вводится адрес 1, по которому осуществ- ляется переход. Кроме того, константы имеют общее обозначение МАС- КА и ЗАПУСК ДВИГА- ТЕЛЯ, а их конкретное значение на этом этапе программирования не ус- танавливается ПЕРЕ- Аккуму- Ячейка ДАТЬ лятор 16 ЗАГРУ- Регистр Запуск ЗИТЬ 1 двигателя ИЛИ Регистр 1 ВЫВЕСТИ Порт 1 ПЕРЕ- Ячейка Аккуму- ДАТЬ *16 лятор Адрес 1 Следующая команда Этот метод упрощает работу при программировании. Мы будем использовать его с самого начала. Однако перед запоминанием программы в программной памяти нужны только два шага. Наряду с поиском кодирован- ных слов для команд надо заменить все символические адреса и константы их реальными значениями. Пример 2. Пусть поставленная в первом примере за- дача должна быть расширена так, что через 200 мс пос- ле запуска первого двигателя запускается второй. 116
Без применения таймера эта задача может быть ре- шена так: после выдачи команды на запуск для перво- го привода следует часть программы, которая требует для своего выполнения точно 200 мс и не выдает в те- чение этого времени никаких команд. Затем следует команда для запуска второго привода. Таким образом, необходимо определить по возможно- сти самую короткую последовательность команд (потреб- ность в объеме программной памяти), которая даст ра- боту нашей ЭВМ на соответствующем интервале вре- мени. (Вспомним, что за 200 мс микропроцессор обрабатывает or 100 000 до 200 000 команд!) Для этого годятся циклы программы (рис. 3.3). Программа для простого цикла записана в табл. 3.3. Ее длительность Т=(2+4.УВ) мкс. Наибольшая задержка времени Т зависит теперь от диапазона счета, который может быть введен для устав- ки времени (УВ). У 8-разрядной ЭВМ диапазон счета содержит в себе все числа от 0 до 255, у 16-разрядной— от 0 до 65 535. При заданных в табл. 3.3 временах вьь полнения команд получают следующие диапазоны вре- мени: 8-разрядная микро-ЭВМ (6—1026) мкс; 16-раз- рядная микро-ЭВМ 6 мкс — 262 146 мс. (Интервал однократного прохождения команд в цикле cocfaвляeт 4 мкс.) {ВРЕМЕННАЯ ПРОГРАММА*)} I ЗАГРУЗИТЬ УВ I Рис. 3.3. Структурные . схемы программ формирова- ния временной за- держки с одним (а) и с двойным цик- лом (б) ( ВРЕМЕННАЯ ПРОГРАММА} | ЗАГРУЗИТЬ ~| 117
Таблица 3.3. Программа простого цикла задержки Адрес Команда Комментарий Адрес 2 Регистр 1 загружается двоичным словом УВ Численное значение У В понижается на 1 Пока содержимое регист- ра 1 не равно 0, коман- дой условного перехода выполняется возврат по адресу 2. При этом обе команды повторяются столько раз, пока содер- жимое регистра 1 не ста- нет равным 0. После это- го продолжается выпол- нение следующей коман- ды. ЗАГРУ- ЗИТЬ Регистр 1 УВ (2 мкс) ДЕКРЕМЕНТ Регистр 1 (1 мкс) ПЕРЕЙ- ТИ Не ноль Адрес 2 (3 мкс) Следующая команда /Таким образом, требуемая задержка времени 200 мс была бы невыполнима в 8-разрядной ЭВМ с таким про- стым циклом в программе. Время можно значительно повысить путем показанного на рис. 3.3, б удвоения чис- ла циклов. В таком случае программа задержки вре- мени, приведенная, в табл. 3.4, состоит из шести команд. Время ее выполнения ,Т=2-|-УВ1 (6-J-4 УВ2) мйс. Таким образом, наибольшее'программируемое время задержки составляет: у 8-разрядной ЭВМ — 263,682 мс; у 16-разрядной ЭВМ — 17 180, 262 402 с (около 4 ч 46 мин). Если в вышеупомянутой программе положить УВ1 = =2002 мкс и УВ2=246мкс, то получится требуемое вре- мя задержки 200 мс. Пример 3. В режиме управления ЭВМ оператором почти всегда требуется передача сообщений от ЭВМ опе- ратору, чтобы по ним контролировать определенные си- туации, запрашивать задающие команды и т. д. Устрой- ствами вывода служат при этом дисплеи, индикацион- ные, печатающие устройства и т. д. 118
Таблица 3.4. Программа с двойным циклом Адрес Команда Комментарий Адрес 3 Адрес 4 (1 мкс) Регистры 1 и 2 загружа- ются уставками по вре- мени УВ1 и УВ2 Вычитание 1 из содер- жимого регистра 2 и пов- торение до тех пор, пока содержимое не станет равным О ПЕРЕЙ- ТИ Не ноль Адрес 4 ДЕКРЕМЕНТ Регистр 1 (1 мкс) ПЕРЕЙ- ТИ Не ноль Адрес 3 (3 мкс) Следующая команда После этого вычитание I из содержимого регист- ра 1 Обратный переход по ад- ресу 3 и при этом снова загрузка регистра 2, по- ка содержимое регистра 1 не станет равно 0. Про- цесс повторяется УВ1 раз, затем продолжается выполнение программы Следовательно, должны быть разработаны подпро- граммы, осуществляющие подачу текста в устройство вывода. Необходимо иметь также показанную на рис. 3.4, а структуру аппаратных средств (сначала без сиг- нала ГОТОВ). Для выводимого текста в памяти данных зарезервировано пространство из 250 ячеек, начиная с адреса 3500. В первой ячейке памяти (адрес 3500) дол- жна при этом быть указана длина выводимого текста. Задача вывода текста могла бы быть прежде всего осуществлена с помощью программы, приведенной в табл. 3.5, в соответствии со структурной схемой, пока- занной на рис. 3.4, б. 119
INT 8-разрядный МП' Порт ввода 7 Порт ввода Z 'Порт выпада z*> 7 Буфер ' текста Код знака порт вывода Б Устройство вывода (в биг) а) £ Рис. 3.4. Вывод текста: « — аппаратная структура; б — блок-схема при отсутствии ограничения ски*» рости вывода; в — структурная схема в режиме'опроса 120
Таблица 3.5. Программа вывода текста Адрес Команда Комментарий Содержимое ячейки памяти данных 3500 передается в регистр 3. Согласно догово- ренности на этом месте сто- ит длина текста ПЕРЕ- ДАТЬ Регистр 3 Ячейка 3500 * (2 мкс) Начальный адрес области памяти текста загружается в регистры 1 и 2. (Так как адрес памяти состоит из бо- лее чем 8 бит, из двух ЗАГРУ- ЗИТЬ Регист- ры 1J2 3501 (2 мкс) 8-разрядных регистров обра- зуется 16-разрядный адрес.) Команда передает требуе- мый знак из памяти данных в аккумулятор. Нужный ад- рес памяти данных указы- вается при этом парой ре- t Адрес 5 ПЕРЕ- ДАТЬ Аккуму- лятор Регист- ры 2,2 - (2 мкс) гистров 1 и 2 (косвенная ад- ресация) Символ через порт 3 пере- дается устройству вывода ВЫВЕС- ТИ Порт 2 (2 мкс) Содержащий в паре регист- ров 1, 2 адрес повышается на 1 и выполняется обрат- ный счет в регистре 3. При этом адрес . памяти данных и остающаяся длина текста корректируются ДЕКРЕ- МЕНТ Регист- ры 1,2 (1 мкс) ДЕКРЕ- МЕНТ Регистр 3 л (1 мкс) Условным переходом по ад- ресу 5 этот процесс повто- ряется до тех пор, пока не будут выведены все знаки (длина текста равна 0) г ПЕРЕЙ- ТИ Не ноль Адрес 5 (3 мкс) Следующая команда 121
При заданном времени выполнения команд устрой- ству вывода каждые 9 мкс передается один знак. Это соответствует затратам времени на запись около 600 мкс на каждую строку (60—80 знаков), соответственно около Юме на страницу. Можно сказать иначе: скорость вы- вода управляющей ЭВМ составляет около 11СГ000 знаков в секунду (50—100 страниц в секунду). Подключенное напрямую индикационное устройство было бы в состоянии принять знаки с такой скоростью. Хотя тогда следует предположить, как это принято в данном примере, что текст в пределах одной страницы ограничен. Механическим печатающим устройством с та- кой скоростью знаки не обрабатываются (если не встро- ена дополнительно электронная память текста). При наличии такой неравноценной пары (электрони- ка — механика) необходима синхронизация между ЭВМ и устройством вывода, чтобы «навязать» машине мед- ленный режим. При этом можно выбирать, как показано в 2.2.5, варианты, обеспечивающие как обслуживание по принципу опроса, так и требование прерывания. Рассмотрим сначала, какие изменения программы нужны в первом случае. Со стороны программных средств должна быть предусмотрена обратная связь от печата- ющего устройства к-ЭВМ (см. рис. 3.4, а—подключение сигнала ГОТОВ на порт ввода). Перед выводом знака следует проверить, имеется ли готовность приема, если нет — опрос повторить. Для этого надо расширить рас- сматриваемую программу (в соответствии с табл. 3.6) четырьмя командами. В результате можно установить, что программно принцип опроса обеспечивается довольно просто. Нуж- но запрограммировать только один цикл ожидания. Од- нако недостаток метода состоит в том, что при малых скоростях печати процессор в течение всего времени пе- чати блокируется. Рассмотрим для этого численный при- мер. При заданных в табл. 3.5 временах выполнения ко- манд интервал опроса линии ГОТОВ составляет 8 мкс (длительность выполнения цикла). При постоянной готов- ности устройства вывода каждые 17мкс мог^бы выда- ваться один знак (длительность выполнения программы с адресом 5 до последней команды). Если подключается механическое печатающее устройство, которое не может вывести более 25 знаков в секунду, один знак печатается через каждые 40 мс. Следовательно, после каждого вы- 122
Таблица 3.6. Программа вывода текста с циклом ожидания 'Адрес Команда Комментарий Адрес 5 Обе первые команды ос- таются наименьшими (см, табл. 3.5) Ввод текущего состояния порта ввода 2 в аккуму- лятор « В регистр 4 загружается слово маски, что совмест- но с последующей коман- дой И проверяет состоя- ние сигнала ГОТОВ и иг- норирует прочие входы А Если результат равен 0, то имеется готовность приема и опрос обрат- ным переходом по адре- су 5 повторяется до тех пор, пока сигнал ГОТОВ не примет состояние 1 Затем следуют в неизме- няемой последовательно- сти прочие приведенные в табл. 3.5 команды ПЕРЕ- ДАТЬ Регистр 3 3500 Т - ” - -л ЗАГРУ- ЗИТЬ Регист- ры 1,2 3501 ВВЕСТИ ПОр> 2 . (2 мкс) ЗАГРУ- ЗИТЬ Регистр 4 МАСКА -(2 мкс) И Регистр 4 • X (1 мкс) ПЕРЕЙ- ТИ Ноль Адрес 5 (3 мкс) ПЕРЕ- ДАТЬ Аккуму- лятор Регист- ры 1,2 123
вода знака 4999 раз будет выполняться цикл ожидания, так как по линии ГОТОВ не сообщается о готовности к приему. Лишь после цикла ожидания в течение 9 мкс ЭВМ выводит следующий знак. Иначе говоря, при такой организации вывода ЭВМ затрачивает свыше' 99,9 % времени,на ожидание готовности вывода. Поэтому принцип опроса может применяться только тогда, когда ЭВМ в течение этого времени не имеет для решения никаких критических с точки зрения срочности задач. В противном, случае следует применять принцип обслуживания по требованию (принцип прерываний). Для этого сигнал ГОТОВ используется аппаратно в ка- честве сигнала прерывания (рис. 3.4, а). Со стороны программных средств программа вывода должна быть построена как программа обслуживания прерываний (ПОП). Рассмотрим последовательность дальнейших действий. На каждое сообщение ГОТОВ (требование прерыва- ния) печатающее устройство каждый раз выдает требу- емый единичный знак. В. соответствии с этим ПОП дол- жна выполнить только приведенные в табл. 3.7 действия в течение 12 мкс (при положенных в основу вышеприве- денных численных значениях) из каждых 40 мр. В про- тивоположность программе-с циклом ожидания при’об- служивании по принципу опроса, которым ЭВМ была занята полностью, здесь для программы печати требует- ся только 0,3 % мощности ЭВМ, так как в паузах между прерываниями выполняются другие программы. Конечно, ПОП, как правило, не так просто реализо- вать. Предположим, что регистры 1 и 2 постоянно оста- ются в резерве для ПОП и, таким образом, их не разре- шается использовать в других программах в течение всего времени между прерываниями. Однако такое огра- ничение при недостаточном в большинстве случаев чис- ле регистров нежелательно. Поэтому ПОП в-дальней- шем должна бытд> расширена так, что перед выполнением представленной в табл. 3.7 последовательности команд свободными оказываются только используемые в ПОП регистры и они загружаются нужным для ПОП содер- жимым. Случайное содержимое регистров, имеющееся к моменту прерывания, необходимо сохранить в ячейках памяти данных и вместо этого постоянно запрашивать содержимое третьего регистра для зарезервированных ячеек памяти данных ПОП. После ввода знака для печа- 124
Таблица 3.7. Программа обслуживания прерываний для вывода текста Адрес Команда Комментарий ПЕРЕ- ДАТЬ Аккуму- лятор Регист- ры 1,1 (2 мкс) ВЫВЕС- ТИ Порт 3 , (2 мкс) ИНКРЕ- МЕНТ Регист- ры 1,2 ж (1 мкс) ДЕКРЕ- МЕНТ Регистр 3 - (1 мкс) ПЕРЕЙ- ТИ Ноль Адрес 1 . (3 мкс) ВОЗВРАТ (3 мкс) Вызвать код символа из памяти данных в акку- мулятор Вывести в. порт выво« да 3 Установить адрес памя- ти и длины текстов для следующего выполнения программы Если содержимое регист- ра 3 становится нолем {значит вывести весь текст), то следует перей- ти к программе, которая задерживает последние прерывания от печатаю- щего устройства (здесь глубже не рассматрива- ется!) Командой возврата сох- раняемое при прерывани- ях содержимое счетчика команд вызывается снова и, таким образом, про- должается прерванная программа 125
ти процедура выполняется в обратном порядке. Это оз- начает, что содержимое регистров, выработанное ПОП последним, снова выставляется в память данных и прер- ванная программа загружается снова. Только тогда за- канчивается ПОП и продолжается прерванная програм- ма. Таким образом, приведенную в табл. 3.7 ПОП следует расширить 14 командами передачи данных. Перед пер- вой командой в табл. 3.7 сначала нужны четыре коман- ды передачи данных, чтобы сохранить содержимое акку^ мулятора, регистров 1, 2 и 3 в памяти данных и три команды передачи для вызова,в регистры 1, 2 и 3 акту- альных для ПОП величин. Нркно вставить и семь соот- ветствующих обратных команд ВОЗВРАТ. Длительность ПОП, таким образом, повышается на 28 мкс, т. е. загрузка ЭВМ программной печати состав- ляет в действительности 0,1 %. Хотя это всегда прене- брежимо малая величина в общем балансе, очевидно, что при таком организационном принципе нужна зна- чительная доля времени для вспомогательной работы (сохранение и загрузка регистров). Однако при таких структурах программ, требующих большого числа прерываний и, следовательно, согласо- ванных по времени переключений регистров, ЭВМ мож- но загрузить достаточно полно. Улучшение внутренней структуры ЭВМ и подготовка производительных машин- ных команд, упрощающих такие задачи, являются от- правным пунктом при разработке ЭВМ или процессоров для использования их в реальном времени. Так, для не- которых процессоров вводятся команды, которые сразу извлекают или возвращают все регистры из памяти данных, или набЬры регистров многократно располага- ют в процессоре так, что должны производиться только их переключения. 3.1.2. Размещение программ До сих пор мы предполагали следующее: у програм- мы имеется свое место в программной памяти микро- ЭВМ;, такая программа памяти реализуется постоянны- ми ячейками памяти так, что даже после исчезновения или отключения питающего напряжения она сохраня- ется; перед первым вводом ЭВМ в работу программа за- гружается в память. ’ е 126
Такие допущения правомерны для большинства мик- ро-ЭВМ. Однако многое меняется, если, во-первых, про- грамма превышает емкость программной памяти. В од- нокристальной ЭВМ имеется узко ограниченная емкость программной памяти (например, 2 Кбайт). Хотя в мик- ропроцессорных системах емкость может модульно рас- ширяться, но в конечном счете она ограничена емкостью адресов микропроцессора. Во-вторых, программа не яв- ляется инвариантной во времени. Она либо еще не пол- ностью отлажена к моменту ввода в работу ЭВМ, хотя уже охвачены все функции и поэтому со временем могут понадобиться дополнения, либо с самого начала заду- мано введение ряда функций только при использова’нии ЭВМ, которая затем программируется индивидуально. Последний случай встречается при использовании ЭВМ для обработки данных, и в основном в научно- технических расчетах. Только пользователь решает, ка- кие конкретные задачи должны выполняться ЭВМ. Тре- буемые изменения программы заменой элементов ПЗУ или ППЗУ во время больших интервалов времени еще рассматриваются как допустимый вариант, ‘но исклю- чаются при частых изменениях. Решение состоит в том, что некоторые части про- грамм в любое время могут быть заданы простыми средствами извне, для чего применяют внешние запоми- нающие устройства. В микропроцессорной технике до- минирует дисковая память. Из-за длительного поиска меньше подходят устройства на магнитной ленте, кото- рые однако работают быстрее, чем распространенные до сих пор запоминающие устройства на перфолентах. Их общим недостатком является то, что имеющиеся у них механические элементы во многих случаях рабо- тают недостаточно надежно. Поэтому в определенных случаях нужны внешние устройства памяти с чиста электронным решением, такие, как; например, устанав- ливаемые внутри ЭВМ элементы ОЗУ, ПЗУ, либо запо- минающие устройства на магнитных доменах (bubble- memory) . Внешние устройства памяти не следует считать про- сто расширением программной памяти. Для процессора они являются скорее УВВ, так как по-прежнему речь идет о том, что центральный процессор в течение отра- ботки своего цикла команды может вызывать следую- щую только из программной памяти ЭВМ. 127
в) Память программы Память программы ПЗУ(ППЗУ) Резидент- ная часть программы ПЭУ(ППЗУ) Загрузчик ОЗУ Загружаемая часть ОЗУ. Загружаемая часть Рис. 3.5. Размещение программ: а — для систем реального времени; б — с внешними запоминающими устрой* ствами; в — универсальное использование ЭВМ Тогда возникает вопрос — как вообще могут дейст- вовать внешние программы? Эту. проблему (не простую и с точки зрения.техники программирования) поясняет рис. 3.5. На рис. 3.5, а приведен вначале характерный для си- стем реального времени случай. Вся программа распо- лагается в программной памяти и остается неизменной во время существования всей системы. Для программной памяти применяются предпочтительно элементы ПЗУ. На рис. 3.5, б показан случай, когда вследствие слишком большого объема памяти нужны внешние за- поминающие устройства. Программа не может быть те- перь просто разделена., а остаток передан во внешнее запоминающее устройство. Уже на стадии ее разработ- ки нужно идти другим путем. В каждом случае требу- ется предусмотреть наличие в программной памяти со- ответствующей команды, сразу после включения си- стемы. Кроме того, ЭВМ снабжается специальной программой, которая анализирует, какую часть основ- 128
ной программы нужно отработать следующей и какую, в случае отсутствия .программной памяти, вызвать из внешнего запоминающего устройства. Эта управляющая памятью программа, разумеется, должна постоянно на- ходиться в программной памяти. На рис. 3.5,6 показа- но такое разделение памяти: определенная часть про- граммы постоянно находится в программной памяти (резидентной) и реализована соответственно на ПЗУ или ППЗУ. Остальная часть размещается на элементах ОЗУ. Подлежащие обработке части программы вызы- ваются из внешней памяти и размещаются в простран- стве памяти ЭВМ соответствующими операциями вво- да. Таким образом, эта часть памяти используется мно- гократно и управляется специальной программой. Запрограммировав один раз такое управление -про- граммой, получаем практически неограниченный объем программной памяти. Изменения программ возможны без особых проблем, при этом заменяется содержимое внешних устройств памяти (гибких дисков, кассет с маг- нитной лентой и т. д.). Однако метод обладает существенными недостатка- ми. Так, значительно повышается время выполнения программы из-за необходимости его затрат на опреде- ленные переходы (время выполнения программы управ- ления памятью, длительность ввода от внешнего уст- ройства памяти) и, следовательно, снижается производи- тельность ЭВМ. Кроме того, заметно снижается надеж- ность системы вследствие использования электромеха- нических устройств памяти (отказы устройств, поломки). Не последнюю роль играет значительное повышение стоимости систем и при таких устройствах памяти. Поэтому в системах реального времени до тех пор, пока это возможно технически, применяется первый вариант (рис. 3.5, а). Если, однако, использование внешних уст- ройств памяти неизбежно, то рациональным разделени- ем программы добиваются некоторого улучшения наз- ванных параметров (например, хранение в памяти ЭВМ часто используемых или в решающей мере определяю- щих готовность системы программ). При универсальном использовании . ЭВМ, напротив, разделение устройств памяти получается таким, как это показано на рис. 3.5, в. Здесь в качестве основной нужна только выполняемая программа. После включе- ния ЭВМ она предназначена для ввода и запуска какой- 9—935 129
либо программы извне (от внешнего устройства памяти, а также с клавишного устройства ввода). Преобладаю- щая часть программной памяти образована соответст- венно элементами ОЗУ, и лишь малая доля реализована на ПЗУ или ППЗУ. Однако в последнем случае выпол- нение программы (часто называемой начальным загруз- чиком) прерывается. При дальнейших рассуждениях примем, что вся про- грамма помещается в программную память ЭВМ, так как это является стандартным случаем при введении ЭВМ в системы управления. 3.2. Языки программирования Рассмотренные примеры продемонстрировали объем необходимых знаний для записи программы на языке ЭВМ (процессора). С самого начала развития вычислительной техники приступили к созданию простых, легко изучаемых и не- зависимых от типа ЭВМ языков программирования. В результате появилось великое множество машинных языков, однако- создать единый универсальный язык, удовлетворив все требования, до сих’пор не удалось. Языки программирования можно разделить на языки ассемблера (машинно-ориентированные) и языки про- граммирования высокого ур'овня (проблемно-ориентиро- ‘ванные). Имеющиеся для каждого типа ЭВМ языки ассембле- ра тесно привязаны к их машинным языкам. Проблем- но-ориентированные языки высокого уровня, напротив, от типа машины не зависят. 3.2.1. Разработка и трансляция программ Независимо от того, существует ли программа на языке ассемблера или на языке высокого уровня, она может быть введена в программную память ЭВМ только тогда, когда будет переведена (транслирована) на ма- шинный язык. Так как процесс трансляции описывается (алгорит- мизируется) точно, проведение- его можно поручить ЭВМ. Программы трансляции для языка ассемблера назы- ваются ассемблерами, для языков высокого уровня — компиляторами. 130
Основное направление при использовании языков уровня выше машинного состоит в том, чтобы выполнить всю работу программирования в два этапа. Первый охватывает творческую часть, которую выполняет программист. На втором этапе выполняется рутинная работа. Она может протекать автоматически, т. е. вы- полняться на ЭВМ. (Однако следует отметить-, что гра- ницу между творческой и рутинной работой не следует устанавливать достаточно строго. Постоянно имеется возможность снизить долю творческой работы, т. е. не- прерывно расширять роль ЭВМ в процессе разработки программ.) Программные системы для перевода работы программиста (ставшие теперь программами трансля- ции) требуют большого объема памяти. Да сих пор в' вычислительной технике обычно выполняли трансля- цию на таких же или даже на тех же машинах, для ко- торых предназначена машинная программа. Необходи- мость других' решений вряд ли могла возникнуть, так как ЭВМ, в том числе и ЕС ЭВМ, предусматривали ча- стую смену пользователей и, следовательно, могли вы- полнять и перевод программы. В микро-ЭВМ, напротив, иная ситуация. Если, к примеру, должна быть разрабо- тана программа для однокристальной ЭВМ, распола- гающей программной памятью свыше 2 Кбайт, то такая маленькая ЭВМ не используется как переводчик языка. Таким образом, совершенно обычным и непременным является применение для разработки программ другой ЭВМ.. Поставленную задачу может выполнить любая универсальная ЭВМ (требуемые программы трансляции называются в таком случае кросс-ассемблерами или кросс-компиляторами), а также микро-ЭВМ того же типа, оборудованная специально для целей разработки программ расширенной памятью, внешними запоминаю- щими устройствами и удобными* УВВ. -Такие системы называются развивающимися системами (рис. 3.6). Не- зависимо от тогд, какая из двух возможностей исполь- зована, ^ля трансляции программы требуются три шага. 1. Написанный на определенном языке текст про- граммы, так называемая программа-источник. Ее вво- дит программист вручную с клавишного устройства. Введенная последовательность знаков запоминается ЭВМ в определенной области памяти и образует при этом взаимосвязанный массив данных (исходный файл). 2. После выполнения ввода командой, исходящей 9* 131
' Внешняя память Компилятор Развитие Управляющие программы Ассемблер ППЗУ Видеотерминал л Микро- л. Я ЭВМ. ? ±, Загруженный машинной ввпЯ программой — элемент памяти , программы Печатающее Выдача устройство листинга программы Рис. 3.6. Развивающаяся система микро-ЭВМ всегда с клавишного устройства, запускается процесс трансляции, т. е. программа трансляции (ассемблер или компилятор). Эта программа ан&лизирует симйол за символом исходного файла и вырабатывает из них Ма- шинные команды. В конечном счете машинная програм- ма помещается в память как последующий массив данных. 3. Затем машинную программу можно вывести раз- личными способами. Для целей документации требу- ется, например, полный вывод исходного текста и отно- сящейся к нему машинной программы на печатающее устройство (листинг программы). Возможно также сра- зу загрузить элементы ППЗУ (стираемых ППЗУ) ма- шинной программой цутем подключения к ЭВМ спе-- циального программирующего устройства. , В каждом случае после выполнения трансляции в распоряжении имеется машинная программа. Соот- ветствующие элементы могут устанавливаться готовыми, и первую отладку программы можно выполнять на той же ЭВМ (системе). При обнаружении ошибок проце'сс необходимо повторить в соответствующем порядке. В дальнейшем процесс разработки программ посто- янно совершенствуется. Значительных улучшений мож- но достичь, если развивающейся системе трансляции передать 'последующие вспомогательные функции, при которых наряду с ассемблером и различными компиля- торами подготавливались бы другие системы программ. В первую очередь здесь надо назвать функции ре- /32
дактора. Редактором называется система программ, ко- торая' делает возможным прямые ввод и коррекцию текста программы-источника в диалоговом режиме. Программист может в принципе отказаться от бумаги,' карандаша и ластика и использовать дисплей. Он вво- дит на него последовательность своих указаний. На' дисплей программист выводит записанную программу, комментарий к ней, контролируемое выражение, причем постоянно ему предоставляется возможность по команде скорректировать, любую следующую строку (вычерк- нуть, вставить, переставить и т.д.). Таким образом в па- мяти ЭВМ возникают созданные’исходные тексты про- грамм, которые затем в случае необходимости могут быть еще изменены. Можно достичь последующего ускорения разработки программ, если текст переведенной машинной програм- мы ввести в развивающуюся ЭВМ. Если в качестве последней применить другой тип ЭВМ, то сначала не- обходимо системой программ смоделировать ЭВМ (мо- делирующая программа); Если применена ЭВМ (про- цессор) того же типа, получаются относительно простые условия, так как она может непосредственно исполь- зоваться для обработки полученных машинных про- грамм. Однако дополнительно надо создать возмож- ность наблюдения за отработкой программ. Это должна быть, к примеру, программа с возможностью отра- ботки по отдельным командам или наперед задаваемая команда с последующим указанием на дисплее или пе- чатающее устройстве возникшего к тому времени со- стояния (содержимого регистров или ячеек памяти). Затем обработка программы может быть продолжена. Таким образом выявляются ошибки программы. Тре- буемая для управления такими действиями система программ называется часто отладчиком. Но следует подчеркнуть, что таким способом в большинстве случаев получить тест невозможно, так как тестируемая про- грамма выполняется в «чужом окружении*. Так, часто на развивающейся ЭВМ нельзя воспроизвести имею- щиеся в реальной системе УВВ (устройства измерения, исполнительные и т. д.) и временные соотношения в них. 133
3.2.2. Язык ассемблера (машинно-ориентированное программирование) Программирование на языке, ассемблера соответст- вуем программированию на машинном языке и ограни- чено в основном тремя условиями. Во-первых, программисту нужно кодировать машин- ные команды, значит, различные комбинации нулей и единиц знать не нужно. Вместо них он может задавать более легко запоминающиеся в памяти обозначения (мнемоники). Так, введенный в § 2.2 эталонный состав команд записан исключительно мнемоническими выра- жениями. Программа трансляции (ассемблер) заме- няет их соответствующими кодированными словами ма- шинных команд. Во-вторых, программист может применять символи- ческие адреса программной памяти. Программа трансу ляции сама включает определенные машинны*е команды" и заменяет символические адреса реальными. В-третьих, применяют в исходном тексте символи- ческие указания адресов памяти и данных, но, само со- бой разумеется, в конце текста программы сообщают ассемблеру конкретные величины. Для этого существу- ют специальные псевдодирективы. Отсюда вытекают основные свойства языка ассемб- лера. Он привязан к определенному типу ЭВМ (процес- сора), полностью отражает ее состав команд и архитек- туру (состав регистров, организацию памяти состояния и системы прерывания, способы адресаций и т.д.). Два процессора с одинаковым языком ассемблера относятся к одному и тому же типу и могут отличаться в крайнем случае только рабочей скоростью. В процессе перевода структура программы остается неизменной, так как каж- дая записанная директив*а соответствует машинной команде. Полученная после перевода машинная програм- ма настолько хороша (или плоха), насколько точно она записана программистом на языке ассемблера. Хотя программист на уровне ассемблера продолжает* изуче- ние специфических для каждого из типов микро-ЭВМ или микропроцессора составов команд, он одновременнб получает аппаратно обусловленные показатели, внут- реннюю структуру и режим. Возможно получение про- грамм, оптимальных по времени и (или) объему памяти. Это также является основой для применения такого 134
уровня программирования в задачах, который приводит либо к короткому времени выполнения программы, либо к ограниченным по объему памяти программе и дан- ным. В системах реального, времени эти параметры ча- сто 'играют «доминирующую роль. При вводе однокри- стальной ЭВМ, к примеру, квалификация программи- стов может решить, реализуема ли предложенная постановка задачи "При имеющемся в наличии объеме памяти и с* имеющимися элементами. Язык ассемблера имеет и очевидные недостатки. В первую очередь следует отметить, что написанные на этом языке программы могут выполняться только с од- ним и тем же типом процессоров. Если одинаковые или подобные задачи решают на другой ЭВМ, то нужно подготовить новую программу. Кроме того, написанные на этом языке программы плохо документируются. Это значит, что в исходном тексте имеется конкретное дей- ствие одной команды в течение выполнения программы, но только при этом алгоритм, лежащий в основе програм- мы, трудно распознаваем-. (Даже составивший исходную программу программист чаще всего не в состоянии сра- зу разобраться в своей собственной программе в после- дующие моменты времени.) Поэтому особенно важно при программировании на языке ассемблера рассматри- вать текст программы с дополнительными комментария- ми. Такая документация программы, безусловно, нужна, чтобы сохранить назначение и особенности программы для последующих ее ‘модификаций, применения в дру- гих системах программ. 3.2.3. Языки высокого уровня Недостатки программирования «а ассемблере в зна- чительной степени устраняются при использовании язы- ков высокого уровня. Очевидное преимущество здесь заключается в универсализации программы (исходного текста) в том смысле, что она переводится компилято- ром на самые разные машинные языки и поэтому может выполняться на любой ЭВМ. При этом достигается но- вая качественная ступень разработки программных средств. Выгодно, например, создавать библиотеки про- грамм, где они собираются и хранятся для разнооб- разного использования. Для языков высокого уровня характерна высокая 135
плотность программы и лучшая документируемость ис- ходного текста. Так, относительно длинные последова- тельное™ машинных команд можно описать немногими словами текста, которые одновременно делают ясным выражение цели такой последовательности команд. Первые попытки создания программирования более высокого, чем машинный, уровня возникли уже на этапе, когда ЭВМ вводились исключительно для научно-тех- нических расчетов. Сначала возникли языки, которые должны были особенно, облегчить программирование алгоритмов для численных расчетов (преобразования формул), например FORTRAN' и ALGOL. Для обра- ботки доминировавших на следующем этапе коммерче- ских задач (обработка данных) позже был введен язык COBOL. Главной задачей этих языков является упрощение & ускорение процессов программирования пользовате- лями. ЭВМ. Им нужно изучить только предназначенный для их специфического круга проблем язык и не забо- титься об особенностях располагаемой в разных ситуа- циях ЭВМ. Однажды написанные' программы можно реализовать и на других ЭВМ. Языки относительно про- сты и пригодны для любого случайного пользователя (программиста). Отсюда вбзникло также часто приме- няемое название проблемно ориентированных языков. Между тем говорят обычно о языках программиро- вания высокого уровня. Это основано на том, что новые языки больше не ориентированы на специальные задачи, а должны поднять на более высокий уровень во много рае и более универсальную работу программных средств. Они предназначены не для случайных пользователей, а для профессиональных программистов. Поэтому тре- бованиями к ним являются эффективность программи- рования, уровень документируемости и, конечно, воз- можности последующего использования однажды соз- данной программы при- изменении аппаратных средств. В качестве .примера таких языков высокого уровня следует назвать PL/М и PLZ (разработаны специально для микро-ЭВМ разработчиками этих машин), CHILL и ADA (специально для проектирования систем реаль- ного времени), PASCAL (разработан первоначально для развития программных средств). Целью книги не является обсуждение определенного языка программирования. Попытаемся еще раз объяснить 136
сущность языков. высокого уровня, чтобы установить различие между ними и машинными языками. Сначала следует установить, что многие языки про- граммирования высокого уровня отличаются один от другого меньше, чем это кажется на первый взгляд. Их многоообразие получается главным образом из-за раз- личных форм представления и описания. Основное их назначение состоит в том, чтобы описать алгоритмы исключительно в.текстовой форме. Все дол- жно быть представлено символами, последовательностя- ми символов (словами) и последовательностями слов (конструкций предложений), для чего предпочтительны комбинации текстов и графический элементов. Приме- ром таких комбинаций является постоянно применяемые структурные схемы как средство описания алгоритмов. При разработке языков программирования высокого уровня исходят из того, что алгоритмы составляются из следующих основных элементов: последовательности (следование во времени одного за другим выполняемых действий); ветвления (разделение на две альтернатив- ных ветви в.зависимости от выполнения условия); цик- лы (многократное повторение ветви программы, причем выход изч цикла опять зависит от выполнений условия). Если теперь с такими основными элементами совме- стить определенное текстовое представление, то можно заменить смесь графического и текстового представле-^ ния структурной схемы последовательностью слов. Полу-* чится программа на языке программирования высокого уровня. При последовательных программах преобразова- ния просты. Они выполняются в соответствии с рис. 3.7, а. Рис. 3.7. Представление алгоритмов в форме структурных схем и с помощью языков высокого уровня: а — последовательно; б — альтернативно ветвящихся; в — в цикле 137
Таблица^ 3.8. Машинная программа, выполненная компилятором для одной директивы. Команда ПЕРЕДАТЬ Аккумуля- тор Ячейка А ПЕРЕДАТЬ Регистр 1 .Ячейка В СЛОЖИТЬ Регистр 1 Комментарий Содержимое ячейки па- мяти 1 передается в ак- кумулятор, затем содер- жимое ячейки В — в ре- гистр 1. Эти передачи нужны, так как сложе- ние выполнимо только между аккумулятором и регистром. Затем резуль- тат должен быть передан в зарезервированную для Y ячейку памяти. (Ре- альные адреса А, В и вводятся самим компи- лятором.) ПЕРЕДАТЬ Ячейка Аккумуля- тор Каждая директива программы на языке высокого уровня программой трансляции, компилятором преобра- зуется в последовательность машинных команд. Так, простая директива Y=A-j-B компилятором переведена в представленную в табл. 3.8 машинную программу. Предполагается, что обработка должна выполниться на ЭВМ с используемым ранее (табл. 1.1) эталонным составом команд, а операнды,?! и В, так же как и ре- зультат У, в каждом случае должны быть кодированы одним словом ЭВМ. Рисунки 3.7, бив показывают, что альтернативные решения (ветвления программ) и циклы в программах могут быть описаны структурными схемами или конст- рукциями предложений, типичными для языков про- граммирования высокого уровня. На рис. 3.8 объединены все элементы одним алгорит- мом. При этом очевидно, что языки высокого уровня ПО- 138 ,
Нет 4 Директива 11 \Дар8кгпи0а2 ♦ " Нет А& [дирелтгшРа программирования вы- Рис. 3.8. Структурная схема и . описание языком высо- кого уровня (пример) зволяют плотнее представить программы, чем языки ас- семблера. Но от них требу- ется также еще и другое — необходимая для системы реального времени програм- ма формируется из опреде- ленного количества подпро- грамм, которые размещают- ся одна за другой во взаи- мосвязи-. Чтобы уметь опи- сать такую крупную струк- туру, подготавливают опре- деленные элементы и кон- струкции предложений на яз сокого уровня. Таким образом, использование языков высокого уров- ня предпочтительно. Однако большинство программ до сих пор пишется на языке ассемблера. Для этого проти- воречия имеется ряд оснований. К субъективным при- чинам относятся существующие до сих пор привычки про- граммирования, недостаточные знания языков высокого уровня и т. д. Существенной объективной причиной яв- ляется недостаток, характерный для всех языков высо- кого уровня (соответственно — их компиляторам). Каждый компилятор является в конечном счете толь- ко изготовляемым с конечной затратой времени продук- том, встраиваемым в программу алгоритмом трансля- ции. Поэтому не следует надеяться, что такому машин- ному переводчику может, быть передан кругозор и опыт, которыми располагает обычный программист. Способ действия компилятора состоит лишь в том, чтобы про- анализировать шаг за шагом директивы языка высокого уровня и каждому типу директив поставить в соответст- вие заранее предусмотренную последовательность ма- шинных команд, в зависимости от обстоятельств незна- чительно модифицированных. В результате трансляции появляются машинные программы, которые в своей мик- роструктуре обнаруживают стандартизированный вид и являются длиннее, требуют поэтому как большего ме- 139
ста в памяти, так и большего времени выполнения, чем сформулированные на языке ассемблера. Решение о выборе уровня программирования должно приниматься только по объективным критериям. Ими являются: время выполнения программы, требуемый объем памяти, необходимые затраты времени на процесс программирования (от формирования алгоритма до от- ладки и документирования программы), возможность чтения (документируемость) исходного текста для вне- сения различных поправок при. необходимости изменений программы или ее расширения, возможность удлинения программы на других аппаратных средствах. Если определяющими являются два первых критерия, целесообразно программировать на языке ассемблера. Решение о выборе уровня программирования должно приниматься не для всей программы, а только для мо- дулей подпрограмм. Так, вся программа может состав- ляться одновременно из программируемых частей на языке ассемблера и из сформированных на языках вы- сокого уровня модулей. Так или иначе объединение мо- дулей происходит на самом низком уровне, т. е. на уров- не машинных программ (значит, после соответствующе- го процесса трансляции). 3.3. Структурирование программных систем , После рассмотрения программных решений ограни- ченной части задач и различных возможностей разработ- ки программ познакомимся со структурным построением всей программы. Предположим, что рассматривается ис- пользование ЭВМ в реальном времени, когда вся про- грамма постоянно располагается в программной памяти (см. 4.1.2). 3.3.1. Основная структура Основная структура системы программ реального времени приведена на рис. 3.9. Включением системы (подключением питающего напряжения или последую- щим ручным воздействием) сначала запускается ее часть, задачей которой является инициализация системы (за- пуск). При изучении микропроцессоров и однокристаль- ных ЭВМ мы видели, что для такого запуска системы аппаратным Иутем имеется управляющий вход RESET, активизацией которого дается старт программы с опре- 140
СИСТЕМУ ВКЛЮЧИТЬ (BESET) r-'t-n Г I ПИ |(*=фд Требования прерываний ) ( INTгЛ ( INTn [ П0П1 I I ПОПЕ I Я47/7Я | I I • ♦ • 1 CAIL ♦ ♦ | ПП7 | | ПП2 $=$CALL С HET } ( НЕТ'} ЛПт Tzizr Рис. 3.9. Основные компоненты программ реального времени деленного адреса программной памяти (например, ячей" ка 0). По этому адресу находится соответственно первая команда программы инициализации (ПИ), которая бе- рет на себя две следующие, задачи: программирование гибких аппаратных компонент и установление начально- го состояния системы. Если аппаратно введен модуль (элемент) для загруз- ки внутреннего регистра управления (например, про- граммируемый элемент функций ВВ, таймер), то требу- ются операции, которые целесообразно поместить вна- чале системы программ. То же самое относится и к некоторому внутреннему регистру процессора (например, заполнение указателя стека для определения положения памяти состояния внутри памяти данных). Таким обра- зом, первая команда служит для фиксации внутренней структуры ЭВМ. Затем следует установление основного состояния всей системы (начального состояния исполни- тельных и индикационных действий). Рассмотрим в канестве примера систему,( имеющую дисплей в качестве устройства индикации. При включе- нии таких устройств, как правило, в их памяти устанав- ливается случайное содержимое, несущее в себе некото- 141
рую информацию, что и определяет случайное изображе- ние на экране. Поэтому часть задачи ПИ должна состоять в разгрузке этой области памяти (запись пустых символов). Этот процесс требует только нескольких мил- лисекунд времени для выполнения программы (вся ини- циализация занимает доли секунды). После программы инициализации следует собственно центральная часть программы, ответственная за выпол- нение конкретной задачи управления. Назовем ее снача- ла главной программой (ГП). Следовательно, в этой ча- сти ЭВМ находится до тех пор, пока она работает. Ис- ключением являются только программы обслуживания прерываний и подпрограммы. Если при разработке аппаратных средств предусмот- рено определенное количество сигналов прерывания, то в системе программ должно существовать такое же ч(ис- ло ПОП, поскольку каждое требование прерывания нуж- дается в специфической реакции. В течение ПИ преры- вания еще запрещены, чтобы они не .смогли нарушить необходимую предварительную работу.. Однако с запус- ком главной программы запрет снимается. Только теперь при требовании прерывания запускается ПОП. После того как выполнены необходимые срочные мероприятия, следует обратный переход RET в то место, на котором была прервана главная программа. Как показано на рис. 3.9, ПОП протекают альтернативно главной программе (ее еще часто называют основной), так как только она выполняется, если не активизируются никакие ПОП. Подпрограммы образуют нижний, 'отдельный про- граммный уровень. Они не что иное, как последователь- ность команд, которые, хотя и в разных местах, много- кратно требуются на протяжении всей программы. Одна- ко вносятся они в программную память для экономии ее объема лишь один раз и вызываются по мере необходи- мости. На рис. 3.10 показан пример программной памя- ти. Помещенная слева программа в трех местах содер- жит одну и ту же последовательность команд (они обо- значены буквами). Следовательно, их можно считывать как подпрограммы. В соответствующие промежутки, правда, надо вставить одну команду вызова подпрограм- мы (CALL), которая осуществляет ветвление программы в подпрограмму. В конце ПП должна стоять команда возврата (RET), осуществляющая продолжение главной программы со следующей -аа командой рызова команды. 142
Рис. 3.10. Уплотнение программы использованием ПП Таким способом в конечном счете достигается та же по- следовательность програм- мы, но программная память уплотняется. В приведенном примере экономится шесть ячеек памяти, так как пона- добились дополнительные ячейки для команд вызова и возврата. Очевидно, такой способ выгоден при больших ПП или частых вызовах’ПП. 3.3.2. Некоторые примеры Исследуем на оснований- примеров, может ли назван- ный главной программой уровень всей программы быть в последующем под- разделенным структурно? По существу, это важный уровень, так как процессор в течение всей продолжи- тельности включения систе- мы работает в этой главной программе, за исключением коротких интервалов време- ни выполнения ПИ, ПОП и ПП. Пример 1. Предположим ситуацию, когда светофор должен действовать кругло- суточно с жесткой последо- Са&ержамое намята вательностью включений. Важным показателем является то, что никакие внешние вмешательства (кроме включе- ния системы) не должны приниматься во внимание со стороны ЭВМ. Главная программа тогда выполняет две операции: вывод состояния включения сигнальных ламп и реализацию определенной длительности задержки вре- мени, пока не станет разрешено следующее состояние включения. 1 143
4 г" I Вывод: Состояние 1 1 I I Выдержка времени Т1 I ♦ ------------------- | Вывод: Состояние 2. | i | Выдержка Времени TZ | I __________i_________ | Вывод: Состояние N | Направления \ Выдержка времени TN | Рис. З.Ц. Управление светофором: а — структурная схема ГП; б — структура общей программы После конечного числа таких последовательностей процесс периодически-повторяется (рис. 3.11). Следова* тельно, главная программа образована бесконечно по* вторяемым циклом. Все выполнение программы.полно- стью, детерминировано. Для экономии емкости програм- мной памяти следовало бы потребовать установить реализацию времени задержки в форме подпрограммы. Реализация рассогласования времени может при этом вы- полняться в соответствии с рассмотренным в § 3.1 мето- дом (пример 2). Пример 2. Для гарантии независимой от нагрузки по- стоянной частоты вращения электропривода нужно иметь приведенную на рис. 3.12, а систему. . 1. Интервал времени Г, в поступающей от измери- тельного устройства последовательности импульсов яв- ляется мерой мгновенной частоты вращения. .Микро- ЭВМ имеет задание определить его и сравнить с задан- ной величиной и, как только возникнет рассогласование, скорректировать управляющее напряжение, которое слу- жит для двигателя М задающей величиной. 2. Микро-ЭВМ должна быть снабжена для этой цели таймером ТМ (см. § 2.2), требуемый режим которого ус- тановлен (запрограммирован) программой инициализа- 144
Критическое по Времена действие (RESET) (JNT) ~т~ Л» , | ПИ | | поп I * ГП C*^ I HALT 0) Рис. 3.12. Регулирование частоты вращения: а —аппаратная структура; б — структурная схема программы; в —структура программы с прерываниями; г — структура программы с опросом ции. Регистр счета циклически отсчитывает последую- щий такт, полученный делением внутри ЭВМ стабилизи- рованного основного такта ЭВМ. Счетчик перебирает все состояния и начинает очередной перебор снова с ну- ля. Запуск таймера после однократной инициализации не требует никакой последующей активизации про- грамму. 3. Операция считывания может постоянно осуществ- ляться процессором. Следовательно, при повторяющих- ся командах считывания разность содержимых регистра счета в процессе считывания пропорциональна интер- валу временй. Структура программы может быть выбрана теперь согласно двум возможностям, существующим для распоз- навания импульсов, прерываниям или опросам. Метод прерывания. Каждый импульс измерительно- го устройства расценивается как требование прерыва- ния и вызывает запуск ПОП, которая должна выпол- нять приведенные на рис. 3.12,6 шаги для того, чтобы решить задачу регулирования. 10-935 145
Рассмотрим с помощью некоторых конкретных значе- ний баланс времени этой программы: заданная частота вращения должна составлять 3000 об/мин. Измерительное устройство выдает за один оборот де- сять импульсов. Следовательно, требования прерывания возникают с интервалом 2 мс. Время выполнения ПОП при требуемом рабочем объеме от 20 до 40 машинных команд составляет около 50 мкс. Отсюда загрузка ЭВМ составляет А = 50 мкс/(2 мс) = 25 -10~3 = 2,5 %. Возникают вопросы: что делает процессор во время пауз и какие задачи имеет главная программа, когда вся работа ПОП уже закончена? Здесь по сравнению с пер- вым примером имеется другой граничный случай: главная программа вырождается в загрузчика пробелов. Единст- венная ее задача состоит в ожидании сигнала прерыва- ния. Главная программа состояла бы из трех команд, при- веденных в табл. 3.9. Вся программа имеет структуру, приведенную на рис. 3.12, в (ПОП включает в себя изме- рение и регулирование). Метод опроса. На порт ввода подключается измери- тельное устройство. Структура программы изменяется в соответствии с рис. 3.12, г. Перед начальной рабочей программой (РП), реализующей задачи измерения и ре- гулирования, помещается программный модуль, постоян- но опрашивающий линии порта, ввода, подключенный к устройству измерения частоты вращения. Теперь надо запрограммировать цикл ожидания, как в § 3.1 (при- мер 3). Значительное различие между обоими вариантами ре- шения состоит в том, что в последнем случае ЭВМ загру- жена на 100%, но при этом 97,5 % времени выполняют- ся циклы ожидания. Собственно рабочее время, таким образом, как и при принципе прерывания, составляет также около 2,5 %. Пример 3. Так как при регулировании двигателя 97,5 % времени ЭВМ занята ожиданием, напрашивается решение передать ей еще дополнительные задачи» Поэто- му рассмотрим случай, когда возникает необходимость одновременно регулировать несколько двигателей на од- ной установке. Структура аппаратных средств изменяется теперь в том отношении, что для каждого двигателя в со- 146
Таблица 3.9. Требуемая главная программа (регулирование частоты вращения) Адрес Команда Комментарий Адрес 6 Отключение запрета пре- рывания. Процессор пе« реходит в состояние ос- танова. Его единственная активность проявляется опросом сигналов преры- вания Требование прерывания осуществляет запуск ПОП После выполнения ПОП по команде возврата сле- дует продолжение глав- ной программы. Коман- дой перехода здесь осу- ществляется безусловный переход в начало про- граммы ответствии с его особенностями должны существовать ввод прерывания и вывод управляющего сигнала. Можно было бы попытаться предоставить, как в пре- дыдущем примере, выполнение программы случаю. Каж- дый импульс прерывал бы тогда ее прямое выполнение, запускал свою ПОП и вызывал исполнительный процесс. Паузы снова были бы связаны через главную программу с ожиданием (HALT). При такой организации хода про- цесса мы бы столкнулись с ситуацией, когда поступают два и больше требований прерывания, из-за чего возник- ло бы наслоение нескольких ПОП. (Многие ПОП «пос- сорились» бы из-за обладания процессором.) Аппаратно реализуемы лишь следующие возможности вмешаться в этот «спор». Тотчас после старта ПОП включается запрет преры- вания, при котором первой командой. ПОП он програм- мируется. Только после окончания ПОП (командой воз- врата) продолжается главная программа, тем самым от- меняется первая команда прерывания. При этом один раз ю* 147
М1 Периоду 2 мс Изморенные сигналы ЬрерыНания Программа ! .п** ! ! п<* । 1 I I I wo zoo JMT1 INTZ JNT3 — попз П1 П0П2 —। П0П2 III Г///22И 13 —E2d M1 I fezZZ=ZZEZZa^2 I j ^77777771 М3 S) f-t iawy-i ffdpo sn rz И „ | } 1 мг Задержка 9П ЬлД7А d ZZZ3 nz L,.— -. г/^/д • M3 fa=xzzzS •> Рис. 3.13. Прохождение программы во времени (пример 3): а —с запретом прерываний в ходе ПОП; б —с ранжированием отработки ПОП; в —с управляющей программой УП запущенная ПОП может обрабатываться без ее прерыва- ния. Но запрет прерывания не означает, что теряются требования прерывания. Процессор просто не принимает их во внимание, но они остаются и приводят сразу после разрешения прерывания к новому прерыванию (рис. 3.13, а). Если не нужен никакой запрет прерывания, то каж- дым Последующим сигналом выполняется прерывание те- 148
кущей ПОП и запуск новой. Таким образом, при самом неблагоприятном случае (что маловероятно) все ПОП располагаются'одна в другой (рис. 3.13,6). Если ПОП продолжается-до последней команды (команды возвра- та), процессор автоматически продолжит выполнение по- следней прерванной программы. Таким образом, запу- щенная первой ПОП неизбежно закончится последней. Для обоих вариантов общим является то, что невозмож- ны никакие точные сведения о фактическом времени от- работки одного требования прерывания, оно полностью зависит от случая; В течение первого варианта перед ЭВМ образуется очередь требований прерывания, в ходе второго возникает очередь внутри ЭВМ еще не выполнен- ных до конца ПОП. Теперь проанализируем,. какой метод пригоден для нашего примера. При заданных двух численных значени- ях ЭВМ была бы полностью загружена только при под- ключении бколо 50 двигателей, когда не было бы никаких пауз. Но, с другой стороны, из рис. 3.13, а и б очевидно, что уже при параллельном регулировании небольшого ко- личества двигателей могут получиться такие времена ожидания, что точное регулирование больше не гаранти- руется. Критическим является время задержки между возникновением импульса (требованием прерывания) и приемом состояния таймера, так как это запаздывание оказывается ошибкой Измерения частоты вращения. Поэтому в первом методе из-за ' времени ожидания между требованием прерывания и стартом ПОП, а во втором' из-за прерывания ПОП еще до того как принято состояние таймера могут возникнуть значительные ошиб- ки при измерении частоты вращения. Поэтому должен быть выделен один из двух методов. Более приемлемые соотношения получаются при их сочетании: в течение кри- тической по времени начальной части, ответственной за считывание состояния таймера,' ПОП для прерываний запрещена (первый метод), но затем снова освобожда- ется (второй метод). Таким способом достигается то, что случайное время ожидания между требованием прерыва- ния и стартом ПОП (и, таким образом, -измерением вре- мени) значительно снижается. Однако несмотря на это, вычисление исполнительного сигнала может значительно задержаться, так что могут возникнуть нежелательные запаздывания между измерением и исполнительным про- цессом. 149
Следовательно, предоставляемыми от аппаратных средств возможностями вообще нельзя получить никако-. го удовлетворительного решения. Поэтому попытаемся добиться другой организации протекания процесса управ- ления программными средствами. 3.3.3. Программная организация управления Исходя из Полученных в рассмотренных примерах сведений, примем следующие обобщения. Если возникающие в системе реального времени под- задачи запускать прерываниями, то это может привести к их наслоению и, таким образом, к случайным длитель- ностям отработки, которые при известных обстоятельст- вах нарушают требуемые в каждом конкретном случае временные условия. Вероятность этого тем больше, чем выше загрузка ЭВМ. Таким образом, этот принцип при- меним лишь тогда, когда либо имеются некритические условия реального времени, либо загрузка ЭВМ даже при параллельной обработке нескольких задач остается еще очень малой. В противном случае выход состоит в том, что созда* ется инстанция более высокого уровня, в задачу которой входит наблюдение и управление последовательностью отработки подпрограмм. В случае однопроцессорной си- стемы это . может быть выполнено только управляющей процессом программой (а также программой монитора, супервизором). Она занимает среди всех программ цент- ральное место и. присоединяется непосредственно к про- грамме инициализации. . - ' ' Чтобы пояснить принципиальные задачи и режимы та- кой программы, следует развить рассмотренный в 3.3.2 третий пример. Для точного измерения частоты вращения и быстрого останова каждого двигателя надо бы добиться следующей организации процесса. Вызванные импульсами прерывания должны быть тот- час приняты, а текущее состояние таймера запоминается, чтобы понизить ошибку измерения (выполнение критиче- ских во времени действий); исполнительные сигналы должны вычисляться последовательно, по мере возникно- вения требований прерываний (обслуживание по прин- ципу FIFO). Чтобы организовать процесс таким образом больше нельзя всю работу выполнять программой обслуживания 150
прерываний. Необходимо многократно выполнить раз- ложение на две программы. Программа ИЗМЕРЕНИЕ И на рис. 3.14 •выполняет критические во времени дей- ствия, которые ограничива- ются считыванием состояния таймера» следовательно, она протекает как ПОП. Все другие действия (сравнение установленного и - истинного значений, расчет и выдача исполнительных величин) выполняются программой РЕГУЛИРОВАНИЕ (Р на рис. 3.13, 3.14). Она может быть запущена непременно с задержкой и не должна следовать непосредственно за программой ИЗМЕРЕНИЕ. Такой, осуществляющей поддержку процесса аппа- ратно, является задача программ управления .процессо- ром, где получается егр распределение поставленными за- дачами (программами). При этом получается представленная на рис. 3.14 структура всей программы. Программой управления про- цессом выделяются на верхний уровень только програм- мы обслуживания прерываний ИЗМЕРЕНИЕ. Програм- мы РЕГУЛИРОВАНИЕ ставятся управляющими на нижнем уровне и должны в совокупности называться ра- бочими. Ниже их располагается уровень подпрограмм (на рисунке не показан). Временная диаграмма, позволяющая сравнить оба ва- рианта, приведена на рис. 3.13, в. Пока нет никакой дру- гой работы, процессор занят программой управления про- цессом (УП), переходит в состояние останова, когда не выполняются никакие действия, и ждет требований пре- рывания. Как только возникает сигнал прерывания от двигателя'Af/, тотчас запускается соответствующая ПОП. Эта программа запрещает последующие приемы преры- ваний, считывает текущее состояние таймера (при такой организации это считается добавочной активностью), обеспечивает (отдает на хранение в память) сообщение в УП, по которому объявляется необходимость отработки программы регулирования Р. двигателя (объявление РП 151
программой отработки прерываний). При этом заканчи- ваются самые срочные действия и ПОП переводит про- цессор в УП. Программа управления процессом (как всегда она со- храняет свою режиссуру) сначала исследует, есть ли со- общения для РП. Если только сообщение есть, эта РП запускается. Если появляется несколько сообщений, то УП по заданному правилу выбирает самую срочную РП и запускает ее. Если никакого сообщения для РП нет, то УП снова переходит в состояние ожидания. Во всех трех случаях как можно скорее должен бкть снят запрет пре- рываний (например, с запуском РП и .перед входом УП в состояние ожидания). Каждое требование прерывания осуществляет при этом остановку РП и старт другой ПОП двигателя М,. После окончания этой ПОП продол- жается, однако, не прерванная РП, а всегда только запу- щенная. УП, которая, кроме того, снова решает, какая РП должна быть запущена или продолжена, так как все РП рассматриваются как одинаково срочные (см. рис. 3.13,6). Сравнение трех вариантов позволяет установить, что время отработки процесса регулирования в случаях рис. 3.13, а и б почти одинаково. Присущий случаю на рис. 3.13, а недостаток, когда ошибка измерения возника- ет из-за времени ожидания вследствие длительного за- прета прерывания, на рис. 3.13, в устраним. Одним словом, если программирование систем реаль- ного времени ведет к случаю, когда несколько программ для гарантии выполнения требований реального времени претендуют на процессор, а аппаратная сторона системы прерываний не предлагает никаких удовлетворительных решений, только тогда следует пытаться программно ре- ализуемым путем управления процессом достичь лучшего результата. Введенная программа содержит для этого одну из собственных рабочих программ более высокого уровня. Однако такое решение небезусловно. Программа уп- равления процессом требует времени процессора и места в программной памяти. Поэтому в зависимости от обстоя- тельств нужно оценивать, соответствуют ли организаци- онные затраты (в вычислительной технике существует обычно понятие капитальные затраты) достигаемому по- вышению производительности. (Существует опасное,ть нагрузить ЭВМ задачами управления в такой мере, что 152'
ее собственная полезная производительность становится равной нулю.) Если же эти мероприятия тоже не ведут к успеху, то содержащуюся в рабочем объеме задачу нужно решать не е имеющейся структурой ЭВМ (аппаратных средств), а выбрать производительные аппаратные компоненты. 3.4. Универсальная концепция программ реального времени (многофункциональность) Обобщим проблемы структурирования всей програм- мы на основании примеров предыдущего параграфа и введем метод анализа, обычный для разработки про- грамм развитых систем реального времени. 3.4.1. Понятие задачи Анализ последнего из*приведенных примеров позво- ляет установить еще один факт. Хотя для каждого из регулируемых двигателей нужны в зависимости от об- стоятельств один собственный вход прерывания,' собст- венная выходная линия и собственные ячейки- памяти для установленных действительных значений величин и мгновенного состояния исполнительных величин, вы- полняемые действия в подпрограммах ИЗМЕРЕНИЕ и РЕГУЛИРОВАНИЕ идентичны. Поэтому нет никаких оснований вводить для каждого контура регулирования свою разработанную программу. Для дальнейших рассуждений предположим, что не- пременно может возникнуть ситуация, когда в опреде- ленный момент времени при определенном состоянии хо- да программы может быть использована одна и та же рабочая программа для решения различных задач. Ра- зумеется, в однопроцессорной системе в определенное время (в определенной программе) отрабатывается лишь одна в зависимости от обстоятельств задача. Другие за- дачи, использующие ту же программу, находятся в со- стоянии ожидания, т. е. они либо только сформированы, либо могут быть даже частично выполненными, но затем прерваны и могли бы быть восстановлены затем теку- щей программой монитора. Практикуемая до сих пор теория, согласно которой все' действия ЭВМ выполнялись как последовательность во времени отрабатываемых одна за другой программ, ока- " 153
зывается для такого режима нецелесообразной. На этом основании было введено другое соображение, основанное на понятии задачи (сокращение от расчетной задачи). Под задачей понимается отдельная подзадача, реали- зуемая программой,, выполняющая действия над множе- ством входных и вырабатывающая выходные данные. Тогда появляется возможность использовать различные процессы как различные программы и массивы данных. Реализуемые в каждом конкретном случае действия нужно расчленить соответственно на множество таких задач. Отработка программ является для такой задачи детерминированным процессом. Последовательность вы- полнения, напротив, большей частью будет процессом случайным. Задачи могут конкурировать между со- бой за захват процессора и, возможно, остального обо- рудования. При этом под оборудованием понимают все аппаратные устройства (память, УВВ и т.д.), необходи- мые для ее выполнения. * Чтобы, несмотря на случайный характер вызова за- дач, гарантировать упорядоченную последовательность отработки (в смысле соблюдения критических времен- ных условий), нужна программа монитора, называемая также многофункциональной управляющей программой или управляющей программой реального времени. 3.4.2г Взаимодействие задач Рассмотрим простейший случай, когда все действия могут быть разрешены одной задачей. Тогда излишне вводить управляющую программу (примеры 1 и-2 § 3.3). . Если нужно подразделение на несколько задач, то между ними могут возникать различные взаимодействия. Предельная ситуация состоит в том, что задачи полно- стью независимы одна от другой, как это имело место, в примере 3 § 3.3. Единственная точка соприкосновения* задач РЕГУЛИРОВАНИЕ имела тот смысл, что они кон- курировали за обладание процессором. Задача програм- мы монитора состояла тогда только в их координации. Такой случай возникает всегда, когда ради лучшей за- грузки ЭВМ преобладает одна задача. По существу за- дачи разрешимы на ЭВМ с раздельными процессорами без обмена информацией между ними. В большинстве случаев существует, однако, причин- ная связь между задачами. Так, одна из них может иметь 154
одну или (в зависимости от выполнения заданных усло- вий) несколько различных последующих или одной задаче могут понадобиться данные или оборудование, ис- пользуемые еще и другими, и т.д. Тогда возникают ко- оперирующие задачи. Управляющая .программа монито- ра предназначена наряду с координацией (подчинение всех задач одной) еще для выполнения синхронизации (соблюдение необходимой последовательности во време- ни). Третий пример в дальнейшем должен быть модифи- цирован так, чтобы в'сегда, когда двигатель не регули- руется до заданной величины (выход его из строя,-пере- грузка), сообщение ОТКАЗ ДВИГАТЕЛЯ выдавалось печатающим устройством или дисплеем. По сравнению с показанной на рис. 3.14 структурой здесь добавляется задача, предусматривающая вывод текста (в § 3.1 была- установлена требуемая машинная программа). Кроме того, надо модифицировать рабочую програм- му РЕГУЛИРОВАНИЕ. Должны быть предприняты дей- ствия, которыми определяется, превосходит ли отклонение регулируемой величины заданное предельное значе- ние и не может ли оно снизиться за несколько исполни- тельных процессов. Если такая ситуация возникает у дви- гателя Mi, то задача РЕГУЛИРОВАНИЕ должна вы- звать задачу ОТКАЗ ДВИГАТЕЛЯ многофункциональ- ной управляющей программе. Если теперь не возникает больше никакой срочной задачи, то запускается эта программа и выдается сооб- щение об отказе. Следует иметь в виду, что она по срав- нению с другими требует длительного времени (механи- ческому печатному' устройству в зависимости от допус- тимой скорости печати для .этой цели требуется до 2 с). Задача сообщения об отказе будет отменена, когда ее вытесняет из процессора требование прерывания, воз- никающее в системах измерения частоты вращения; Пос- ле обработки ' ПОП .многофункциональной управля- ющей программой снова решается, какую задачу про- должать. К тому же она получает самый низкий приори- тет и только тогда запускается снова, когда никакая программа. РЕГУЛИРОВАНИЕ не ожидает доступа к процессору. Здесь кооперация между задачами состоит в том, что независимые одна от другой задачи регулирования мо- гут выполнять задачу ОТКАЗ в общей последующей про- грамме. Может возникнуть ситуация, когда несколько 1S6
задач регулирования требуют одновременно решать за- дачу вывода. Тогда эти требования должны удовлетво- ряться последовательно, так как, возможно смещение текстов на устройстве вывода.. Отсюда ясно, что ряд раз- личных условий, вытекающих из специальных случаев использования, принимаются во внимание управляющей программой при управлении задачами. 3.4.3. Состояния задач Введем следующую основную модель, согласно кото- рой в каждый момент времени задачи могут находиться в одном из трех состояний (рис. 3.15). 1. Активная. Соответствующая задаче программа на- ходится в обработке в процессоре. (Задача считает.) 2. Ввод. Задача находится в положении ожидания и требует предоставления процессора (задача готова к счету). 3. Вывод. К этому моменту времени процессор зада- че не нужен. Переходы между состояниями вызываются последо- вательностью специфических событий, приведенных в табл. 3.10;' • / 3.4.4. Многофункциональные управляющие программы После предварительного изучения состояний, кото- рые может занимать процессор, и событий, приводящих к их изменению, можно теперь установить точнее, ка- кие программные компоненты должна содержать управ- ляющая программа монитора, т. е. какую, структуру со- держит приведенный на рис. 3.14 программный блок, на- / ввод ' [(подготовка l/г решению) Вывод Рис. 3.15. Состояния задачи 156 Активная (решаемая) званный управляющей про- граммой монитора. Это по- казано на рис. 3.16.* Рас- смотрим его подробнее. Главной задачей про- граммы является выбор при- оритетной задачи из общего количества поступающих (решаемых) задач и запуск соответствующей РП. Эта часть многофункциональной управляющей программы должна быть названа соот- ветственно ядром програм-
Таблица 3.10. Переходы состояний задач и их причины Переход Причины Активная->вывод / 1. Задача окончена и покидает процессор 2. Задача еще не окончена, но требует для дальнейшего выполнения обору- дования или подхода внешнего собы« тия. Так как яри этом с большой веро- ятностью возникает время ожидания, задача добровольно покидает процес- сор Вывод->ввод Ввод->активная •• Задача может быть включена (заявле- на): а) программой - обслуживания прерыва- ний, которая запускается на основа- нии внешнего события; б) программой обслуживания прерыва- ний, которая запускается на основа- нии внутреннего события' (например, прерыванием таймером); в) другой рабочей программой. . Программа управления монитора ана- лизируёт все состояния ввода имею- щихся задач. Задача с высшим прио- ритетом определяется и запускается Актнвная->ввод Активная задача '•управляющей про- граммой в принудительном пррядке возвращается в состояние ввода за- дачей с высшим приоритетом. Такая ситуация может возникнуть, когда в ходе отработки одной задачи следует прерывание, ^рторое при его отработ- ке (ПОП) осуществляет заявку новой задачи, так. что после этого возника- ет другая структура приоритетов мы. Из табл. 3.10 следует, что ядро должно быть акти- визировано при следующих четырех событиях: во-пер- вых, рабочая программа окончена и возвращает процес- сор управляющей программе Конец РП; во-вторых, ра^ бочая программа возвращает процессор управляющей программе, ждущей событие Ожидание РП; в-третьих, программа обслуживания прерывания окончена и воз- 167
Рис. 3.16. Структура многофункциЪнальной управляющей программы вращает процессор управляющей программе (Конец ПОП); в-четвертых, программа инициализации законче- на и должна быть запущена первая РП (Конец-ПИ). Для принятия решения ядру необходима информа- ция обо всех имеющихся задачах. Для этой цели в оп- ределенных ячейках программной памяти для каждой из них предусмотрены слова состояния, в которых отме- чаются текущие показатели каждой задачи, например их состояния, приоритеты, адреса начала или продолжения/ соответствующих РП и т.д. Таким образом, каждой за- даче требуется несколько ячеек памяти, которые в об- щем следует назвать блоком состояния задачи. Множе-. ство блоков образуют входную информацию ядра. Стратегия выбора ядром последующей задачи может быть реализована по-разному и зависит от рабочей си- туации. Возможны сл.едующие варианты. 1. Принцип FIFO. Задачи запускаются в порядке их объявления. * 2. Циклическое распределение, т. е. в соответствии с постоянно установленной последовательностью. 3. Статический приоритет. Задачи получают постоян- но установленный уровень приоритета, являющийся ре- шающим при их выборе. 4. Динамический приоритет. Задачи запускаются в со- ответствии с уровнем их приоритета, но он устанавлива- ется не постоянно, а моЖет изменяться в течение работы системы. После того как ядро выбрало задачу, оно должно со- здать необходимые предпосылки для старта РП, т. е. за- грузить в регистры процессора возможные начальные ве- личины, и, наконец, командой безусловного перехода в счетчик команд процессора передать начальный адрес 158
или адрес продолжения РП. Этой последней командой ядро вручает управляющую программу процессора рабо- чей программе. Управляющая программа получает снова процессор только тогда, когда либо оканчивается РП, либо он по своей воле уходит в состояние ожидания (состояние вы- вода) или вследствие требования прерывания запуска- ется и оканчивается ПОП. Наряду с ядром управляющую программу окружает ряд программ для создания, изменения и управления блоком состояния задач. Речь идет о подпрограммах, таю как они вызываются РЦ и ПОП, чтобы в зависимости от обстоятельств производить специфические записи и из- менения в блоках состояния задач. Рассмотрим некото- рые примеры: а) программа обслуживания прерываний должна иметь возможность объявлять последующую задачу Р,-, обработка которой необходима на основании требова- ния прерывания. Для этой цели она вызывает програм- му ОБЪЯВЛЕНИЕ и передает i-й номер задачи. Про- грамма ОБЪЯВЛЕНИЕ изменяет затем состояние с ВЫ- ВОДа на ВВОД в блоке состояния, и задача включается .в число пригодных для решения. Командой возврата RET в конце программы ОБЪЯВЛЕНИЕ'следует Обрат- ный переход в ПОП; б) далее должна существовать возможность ввести задачу ЗАГРУЗИТЬ оборудование, сначала вызвав со- стояние загрузки' и затем освободив его (возврат обору- дования ВО)\ в) задача должна иметь возможность о'тключать дру- гие задачи. Все эти и ряд других функций выполняются специ- альной программой, которая может запускаться про- граммой обслуживания прерываний или РП по команде вызова. После выполнения заданий продолжается про- грамма, которая ее вызвала. В отличие от устанавливае- мых до сих пор на самом нижнем уровне подпрограмм эти программы являются составной частью управляющих' программ. Доступ к подпрограммам называется вызовом управляющей программы. Подпрограммы являются при этом средством взаимодействия между задачей и управ- ляющей программой.
Список литературы 1. Matschke J. Von der einfachen Logikschaltung zum Mikrorechner, 2 Aufl. Berlin: VEB Verlag Technik, 1984. 2. Schwarz W., Meyer G., Eckardt D. Mikrorechner. Wirkungsweise, Programmierung, Applikation. 3 Aufl. Berlin: VEB Verlag Tech- nik,. 1984. 3. Kleser H., Meder M. Mikroprozessortechnik. Aufbau und Anweh- dung des Mikroprozessorsystem U 880. 2 Aufl. Berlin: Verlag Technik, 1984. 4. Lampe B., Jorke G., Wengel N. Algorithmen der Mikrorechentectp nik. Maschinenprogrammirung und Interpretertechniken des U 880. Berlin: VEB Verlag Technik, 1983. 5. Classen L. Programmierung des Mikrorechnersystems U 880— К 1520. Reihe Automatisierungstechnik. Bd. 192. 3 Aufl. Berlin: VEB Verlag Technik, 1983. 6. Oefler U., Classen L. Mikroprozessor—Betriebsysteme, Problemori- entierte Programmierung U 880 (K 1520). Reihe Automatisierungs- technik. Bd. 201.2 Aufl. Berlin: VEB Verlag Technik, 1984. 7. TOpfer H., Kriesel W. Automatisierungstechnik—Gegewart und Zu- kunft. Reihe Automatisierungstechnik. Bd. 200. Berlin: VEB Ver- lag Technik, 1982. 8. Neumann P. Mikrorechner in Automatisierungsanlagen. Reihe Automatisierungstechnik. Bd; 202. • Berlin: VEB Verlag Technik, . 1983. 9. Werner D. Programmierung von Mikrorechnern. Berlin: VEB Ver- lag Technik, 1983. # 10. Lober Ch., Will G. Mikrorechner in der Messtechnlk. Berlin: VEB Verlag Technik, 1983.
Содержание Предисловие переводчика .... 3 Предисловие к русскому изданию 3 Предисловие ................................... 5 Введение ............................................. 7 Глава 1 Основные положения .... 16 1.1. Системы реального времени ... 16 1.2. Устройство и принцип действия ЭВМ 30 1.3. Алгоритмизация............... 53 Глава 2 Аппаратные средства микро-ЭВМ ................61 2.1. Микропроцессорные системы (элементы одноплатной ЭВМ) 63 2.2. Однокристальные ЭВМ ... ............105 Глава 3 Программные средства микро-ЭВМ 10S 3.1. Машинная программа..............................111 3.2. Языки программирования..........................130 3.3. Структурирование программных систем.............140 3.4. Универсальная конвенция программ реального времени (многофункциональность)..............................153 Список литературы . . .... «160