ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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 |