Файл: Ландау И.Я. Применение ЦВМ для проектирования ЦВМ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.06.2024

Просмотров: 78

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Труднее всего сформулировать требования к основно­ му элементу вычислительного комплекса — центрально­ му процессору. Очевидно, что чем больше емкость опера­ тивной памяти и быстродействие процессора, тем мень­ ше требовании предъявляется к выбору алгоритмов ре­ шения задач проектирования и технике программиро­ вания (даже при медленных алгоритмах и плохих про­ граммах задачу удается решить за приемлемое время). Однако АСП не является уникальной системой — систе­ ма такого типа необходима любой организации, занима­ ющейся разработкой ЦВМ, и заводам, изготавливающим машины. Поэтому при выборе технической базы АСП нужно ориентироваться на достаточно массовую маши­ ну, обладающую минимально необходимыми для реше­ ния задач проектирования параметрами. Поскольку речь идет о проектировании сложных цифровых уст­ ройств, для АСП необходим процессор с быстродействи­ ем не менее 30—40 тыс. операций/с, развитой системой команд (особенно логических операций и операций уп­ равления) и объемом оперативной памяти 10— 15 тыс. слов. Эти требования определяются в основном задачами моделирования, построения тестов и проекти­ рования печатного монтажа — при меньших быстродей­ ствиях и объеме памяти время выполнения их недопу­ стимо растет. В большинстве отечественных работ по автоматизации проектирования используются ЦВМ БЭСМ-4 и М-220, характеристики которых близки к ука­ занным.

В последнее время (1970— 1971 гг.) начался выпуск машин агрегатной системы средств вычислительной тех-" ники (АСВТ), а также ЕС ЭВМ; такие модели как

М4030 АСВТ и ЕС 1030 следует считать наиболее подхо­ дящими в качестве технической базы АСП. Благодаря агрегатному принципу построения и унифицированной

130

системе внешних связей AGBT позволяет строить вычис­ лительные комплексы различной конфигурации и изме­ нять конфигурацию путем доукомплектования комплек­ са нужными устройствами без изменения остального оборудования и программ. Работа центрального процес­ сора в этих машинах совмещается по времени с работой внешних устройств, что .позволяет .повысить эффективное быстродействие системы; возможность многопрограмм­ ной работы позволяет подключать графопостроители и пульты с ЭЛТ, не занимая практически времени процес­ сора на их обслуживание. Ряд удобств для программи­ рования задач проектирования дает богатый набор команд (в том числе команды обработки символьной информации и возможность работы с операндами пере­ менной длины). Развитая система аппаратного контроля обеспечивает достоверность результатов счета, что на­ много облегчает программирование.

Эффект от автоматизации проектирования значительно повы­ шается при одновременной автоматизации процессов изготовления цифровых устройств. К ним относятся:

выполнение проводного монтажа; изготовление фотошаблонов для печатных плат; сверление отверстий в печатных платах; контроль монтажа; проверка электронных схем.

Вопрос автоматизации изготовления ЦВМ достаточно сложен и выходит за рамки данной книги, поэтому мы ограничимся кратким рассмотрением таких устройств.

Станки для автоматического выполнения проводного монтажа предназначены для укладки провода тю прямой между соединяемы­ ми контактами. Соединение провода с контактом осуществляется круткой. Панель с -разъемами укрепляется на столе станка, над которым движется монтажная головка с запасом провода; движение головки управляется перфолентой. Более распространены устройства для полуавтоматического монтажа (рис. 4-4). В них головка нахо­ дится в руках .монтажника; на специальном табло указывается но­ мер контакта, к которому требуется подвести провод. Если монтаж­ ник по ошибке подключает провод к другому контакту, то не вклю­ чается монтажная головка. Данные о соединяемых контактах вво­ дятся с перфоленты.

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

Для прозвонки монтажа и проверки электронных схем исполь­ зуются автоматические тестеры, которые представляют собой спе­ циализированные ЦВМ. Исходные данные для такого устройства (программа проверки) готовятся па перфоленте при выпуске мон­ тажных таблиц или трассировке печатной платы (для прозвоню! монтажа) или путем 'моделирования работы логической схемы (для


контроля и диагностики электронных схем). Одно из таких

устройств — агрегатное

устройство

программного контроля (АУПК)

[Л. 42] — показано на

рис. 4-5.

Проверяемый блок подключается

к АУПК, затем на него подаются заданные наборы сигналов. АУПК анализирует ответные сигналы и фиксирует (на цифровом индикато­ ре) появление неправильного ответа. Для проверки схем, не имеющих разъемных соединений (прозвонка печатной платы до установки модулей), используются специальные устройства для подключения тестера к проверяемой схеме.

Существенным звеном технических средств АСП являются устройства для размножения документации. Текстовые документы, получаемые на АЦПУ, могут быть скопированы на кальку с по­ мощью ксеропрафических аппаратов типа РЭМ или ЭРА. Поскольку шрифт АЦПУ неудобен для печатания штампов на документах, це­ лесообразно печатать страницы документа без штампа, а штампы оформлять в виде рамки, в которую вставляется страница при ко­ пировании. Весьма удобно для размножения машинных документов устройство изготовления копий с форм вычислительных - машин CFP фирмы Rank Xerox. Это устройство не требует предваритель­ ного разрезания рулона иа страницы, позволяет делать на каждой копии стандартную надпечатку, переносимую с прозрачного транс­ паранта, и дает возможность получать до 30 копий с каждой стра­ ницы оригинала. Таким образом, при использовании подобного устройства отпадает необходимость в кальках, и в качестве оригина­ ла в архиве можно хранить рулон, отпечатанный на АЦПУ.

4-2. НЕКОТОРЫЕ ОСОБЕННОСТИ ПРОГРАММИРОВАНИЯ ЗАДАЧ ПРОЕКТИРОВАНИЯ ЦВМ

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

Массивы промежуточных результатов в большинстве программ строятся так, что в каждом машинном слове хранится несколько величин. Это позволяет сократить необходимый объем памяти, поскольку разрядность пе­ ременных в задачах АСП (номер контакта, номер эле­ мента, тип элемента и т. д.) обычно невелика. Примером такой свертки данных могут служить описки, показанные на рис. 3-5. Свертка данных позволяет уменьшить объем запоминающего устройства, но приводит к увеличению времени счета, поскольку при обработке массивов при­ ходится заниматься «распаковкой» и «упаковкой» зна­ чений разных переменных, хранящихся в одном машин­ ном слове. Для сокращения числа упаковок й распако­

1 33


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

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

Кроме указания длины массива в таблице распреде­ ления памяти целесообразно ввести специальный признак конца массива (обычно для этого используется ячейка, все разряды которой равны 0 или 1). Наличие признака конца во многих случаях упрощает составление обраба­ тывающих программ и позволяет ускорить их работу. Особенно удобен такой признак при обработке массива ис­ ходных данных, длина которого, как правило, неизвестна.

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

из этих массивов.

Непосредственный

поиск элемента

в массиве,

хранящемся во внешнем

запоминающем

устройстве,

резко увеличивает время счета;

для ускоре­

ния такого

поиска

заранее (при создании

массива) со­

ставляется его каталог, Каталог представляет собой спи­

134


сок, каждая строка, которого указывает наименование элемента основного массива и адрес его в массиве. Длина каталога намного меньше длины основного массива (на­ пример, в списках СЗ, С4, С5 на рис. 3-5 каждый эле­ мент—-группа может занимать несколько десятков слов), поэтому он может быть размещен в оперативной памяти. Для ускорения поиска по каталогу он упорядочивается по возрастанию (убыванию) названия элементов. Спосо­ бы построения таких каталогов аналогичны методу по­ строения списков цепей и элементов при компоновке, описанному в гл. 3.

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

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

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

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

135

в.ес.ное описание алгоритма, а формальным его описани­ ем — программа; таким образом, окончательную проверку алгоритма приходится производить при отлад­ ке программы. Большие объемы входных данных и про­ межуточных результатов и большой объем вычислении требуют экономного использования оперативной памяти и составления эффективных программ. Этого нельзя до­ стигнуть при использовании языков программирования высокого уровня (АЛГОЛ, ФОРТРАН), поэтому про­ граммировать задачи АСП приходится на уровне .машин­ ных языков типа мнемокодов. Сложность программ и сжатые сроки разработки их требуют обычно распреде­ ления .работы над программой между несколькими про; граммистами. Все это затрудняет отладку программ. Требования же к качеству отладки (т. е. к надежности выдаваемых результатов) в программах АСП гораздо выше, чем в обычных вычислительных программах или программах для экономических расчетов, поскольку большой объем выходной информации не позволяет про­ контролировать ее вручную (да и сам характер ре­ зультатов счета часто не дает возможности организовать такую проверку). Таким образом, все ошибки могут по­ пасть в производство и выявлять их придется при налад­ ке устройства. Найти ошибку при этом чрезвычайно трудно, поскольку она может быть вызвана разными причинами.

Разработка и отладка сложных логических программ облегчается при использовании метода блочного про­ граммирования [Л. 7]. Сущность блочного программиро­ вания заключается в том, что программа разбивается на небольшие блоки, связь между которыми осуществляется через управляющую программу (блок-программу). Каж­ дый блок выполняет некоторую обособленную функцию и имеет один вход и один выход; проверка условий и

ветвление вычислительного

процесса производятся

в блок-программе (которая

эквивалентна блок-схеме

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

симо, что позволяет ускорить разработку.

Другое правило, также облегчающее программиро­ вание, заключается в обязательном составлении содержа­

136


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

При разработке сложных программ никакие правила программирования и отладки не гарантируют отсутствия ошибок в «отлаженной» программе. Более того, можно гарантировать, что ошибки в такой программе останутся и будут выявляться во время эксплуатации. Поэтому в программах конструкторского проектирования необхо­ димо контролировать результаты счета для того, чтобы в выпускаемую документацию не попали ошибки, кото­ рые могут привести ,к неправильной работе устройства. Способы выполнения такого контроля определяются спецификой решаемой задачи. Так, при трассировке пе­ чатного монтажа достаточно убедиться, что ни один из проводников не .пересекает проводников других цепей и полученная система печатных проводников, переход­ ных отверстий и перемычек соответствует исходному списку соединений. При трассировке проводного монта­ жа достаточно преобразовать полученные монтажные таблицы к исходному списку соединений и т. д. Такой контроль не только предотвращает выдачу неверных ре-' зультатов из-за ошибок в программе, но и позволяет проконтролировать работу машины во время счета.

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

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

10— 504

137