Страница произведения
Войти
Зарегистрироваться
Страница произведения

До и после Победы. Книга 3. Перелом. Часть 2


Статус:
Закончен
Опубликован:
25.05.2018 — 25.05.2018
Читателей:
1
Аннотация:
Вынесены главы 24-50
Предыдущая глава  
↓ Содержание ↓
  Следующая глава
 
 

Третьей командой была команда на подогрев подложки. Она не начинала работать, пока не начинал работать насос высокого давления, то есть вторая команда блокировала продолжение программы, так как для нее еще не наступили условия выполнения. Можно было бы поставить нагрев подложки второй командой, до команды ННД, и тогда она начала бы нагрев раньше начала полной откачки. Но смысла не было — предварительная откачка шла более получаса, и все это время поддерживать температуру подложки смысла не было. Вот когда начинал работу насос высокого давления, нагрев подложки позволял частично ее дегазировать. По этой причине она не имела инструкций по ожиданию полной откачки. Как и четвертая команда — предварительный нагрев исходного материала — ему дополнительная дегазация тоже не помешает. А вот пятая команда — постепенный нагрев до высокой температуры — уже должен был дождаться достижения нужного вакуума — и только тогда нагреватель включался на более высокую температуру. Причем первые четыре команды имели признак "продолжать действие", то есть по достижении заданного значения они не прекращали свою работу, поддерживая нужные давление и температуру, хотя и снимали сигнал "готов" — он блокировал только последующие команды, а раз они уже были в работе, то и блокировать их не должны.

Так система и продолжала работать — насосы периодически увеличивали или уменьшали интенсивность откачки, по мере того, как давление в камере то росло из-за выхода газов из материалов и стенок, то снова падало, нагреватель подложки тоже периодически то включался то отключался, поддерживая ее температуру, а нагреватель материала отрабатывал свой график температур — там уже основным фактором для ожидания стало время поддержания температуры.

Хотя и их самих скоро пришлось кодировать. Исследователям, а за ними и производственникам потребовалось не просто выдерживать графики, а изменять температуру по нужному закону, причем на разных отрезках законы могли быть разными — то требовалась обычная прямая линия, то это должна быть сначала плавно, а потом все резче возрастающая кривая, или наоборот — чем ближе к конечной точке, тем плавнее должна была возрастать температура. Да, сами графики мы могли поддерживать, вот только для каждого требовался операционник, а то и не один. Поэтому вслед за номером устройства мы добавили еще позицию для алгоритма работы этого устройства, а так как они пока отрабатывали отдельными устройствами, то эту позицию в команде стали называть еще и номером субустройства. Ведь, скажем, для разных кривых требовались разные операционники, а то и их группы, если график был слишком сложный и его требовалось апроксимировать более простыми линиями. Поэтому номер субустройства, он же — алгоритм работы — и включал в работу нужный операционник, и уже тот управлял нагревом, а сама позиция устройства, получается, говорила теперь только о том, с какого входа надо брать показания для сравнения. Ну и еще — в какой регистр записать номер субустройства и значение для сравнения. Сама схема, естественно, была еще жесткой, и если требовались графики изменения температуры с другими кривыми, то переставлялись и перекоммутировались блоки управляющего устройства, соответственно, программы для одной конфигурации не подходили для другой. Так что ручной работы тоже требовалось немеряно, но это все-таки было проще, чем вручную отрабатывать каждый эксперимент, к тому же схема управляющего устройства и отлаженная для него рабочая программа становились своеобразным "опытом", который отторгался от человека и становился доступен другим людям — только поменяй конфигурацию на нужную да поставь на запуск программу. Мы нарабатывали библиотеку "программ", пусть они пока частично и кодировались коммутацией блоков.

А сама программа и управляющая схема продолжали усложняться о мере усложнения техпроцесса. Так, для графика нагрева ввели обратную связь по характеристикам осаждаемой пленки — ее сопротивлению, пропусканию света, и вообще реакции на свет — ведь нагревали не просто так, а чтобы получить пленки нужных характеристик. Соответственно, было разумным по этим характеристикам и вести контроль, а не просто по времени работы. То есть добавились процедуры контроля. Сначала все пытались запихать их на ту же перфоленту, что и основная программа — добавить туда позиции для значений сопротивления, фототока, степени прозрачности. То есть предполагалось, что эти значения будут измеряться в процессе работы очередной команды или после ее окончания с тем, чтобы либо продолжить ее работу до достижения нужных показателей, либо перейти к следующей команде, если эти значения уже достигнуты. То есть уже в саму команду для устройства добавлялись новые номера устройств для измерения нужных значений, которые должны были выдавать сигнал готовности, достижения показателей, прежде чем будет переход к следующей команде. Для этого добавили еще одну служебную дорожку, которая указывала, что цифра на этой позиции — это маска устройства, которое должно будет выдать сигнал готовности, а следующая цифра — значение для этого устройства, которое оно будет сравнивать с измеренным сигналом. Скажем, команда нагрева состоит из номера самой операции — то есть "нагреватель", значения температуры, которое заносилось в его регистр для ЦАП, номера операционника, который реализовывал нужный график изменения температуры — этот же операционник получал значение с выхода термометра и ЦАП и выполнял их преобразования, чтобы выдержать заложенный в него график, затем в команде следовала позиция с номером омметра, измеряющего сопротивление напыляемого слоя, позиция для его значения, позиция с номером вольтметра для измерительного фотоэлемента, позиция с его значением — вот такая была длинная команда, причем количество субустройств в общем случае было различным, что заставляло подумать над тем, а как вообще отделить команды одну от другой. В конце концов просто ввели отдельную дорожку с признаком окончания команды — все действия были последовательны, устройства — те же омметр и вольтметр — были взаимосвязаны, то есть использовались только при нагреве согласно схеме их включения, поэтому управляющая схема, обнаружив окончание старой команды, прокручивало перфоленту на следующую позицию, откуда брала номер устройства и заносила его в регистр очередной команды, и уже потом последующие позиции с номерами субустройств относились к этому устройству и соответственно схемой выбирались регистры именно этих субустройств. Следующая позиция после номера субустройства — маска ожидания запуска устройства данной команды, затем — целевое значение — это было прошито жестко в схеме считывания. А затем шел дополнительный набор отслеживаемых параметров — номер параметра — те же вольтметр или омметр — и значение для него. И уже внутренняя схема нагревателя отслеживала выдачу сигнала "готов" с этих четырех выводов — температуры, времени, омметра и вольтметра — сколько позиций было установлено масками ожидания — и только после этого выдавала сигнал "работу закончил". Ну а уж управляющая схема определяла, что если в ее маске ожидания была единица в этом устройстве, то есть она ждала окончания этой команды — тогда уж оно запускало следующую команду, которая и выставила эту единицу.

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

Набивку перфолент выполняли сами студенты. Вскоре им надоело перенабивать перфоленты каждый раз, меняя разве что константы — сами-то программы менялись нечасто, а вот конкретные параметры — довольно значительно — ведь даже по одной температуре надо было проводить десятки опытов с шагом в десять градусов, а для каждой температуры — еще и с разным временем — с шагом, скажем, в одну минуту — перфолент получалось просто невообразимое количество — десятки и сотни. Неудивительно, что творческие личности вскоре взвыли от такой работы и постарались как-то ее упростить. Ну народ и начал творить. Первое, что они сделали — это составили "бланковую" программу — перфоленту с командами, но без значений. И отдельно стали набивать перфоленты со значениями. А уже потом совмещать два в одном — протягивали обе перфоленты на двух аппаратах, а общий результат пробивался на третьем — эту перфоленту уже и заряжали в исследовательскую систему. А чтобы понимать — откуда надо брать значение — стали на бланковой перфоленте пробивать служебную дорожку — есть единица — берем с одного аппарата, нет — с другого. Это уже исключало необходимость повторной набивки вручную самой программы — номеров устройств, субустройств, масок ожидания — оставалось только набить перфоленты с самими значениями. Но на ленте значений надо было оставлять соответствующие им позиции пустыми. "А чего бы не сэкономить бумагу ?" — подумали наши гении. И ввели на "бланковой" перфоленте еще одну дорожку — теперь, встретив единицу в этой дорожке, управляющая схема брала число с перфоленты значений — и протягивала обе перфоленты, забирая значение со второй перфоленты, а ленту команд просто протягивая дальше. А если отверстия не было, забирала номер устройства с ленты команд, а ленту значений не трогала, пока на ленте команд снова не встретится единица. А потом еще немного подумали — и подключили оба считывателя напрямую к исследовательской системе — то есть заменили предыдущий вариант с набивкой сводной ленты сразу чтением исходных лент, без создания сводной. Да, потребовалось два аппарата, но зато вышла экономия на перфолентах — и на самой бумаге, и на ее пробивке — теперь требовалась только отдельная лента команд и отдельные ленты значений, причем те — уже без пропусков под команды. Так мы постепенно приходили к Гарвардской архитектуре. Хотя тут про такое вообще не слышали — все-таки секретные штуки, но вот я как-то ляпнул в разговоре — так и прижилось. А потом и разведка подтвердила, что да, еще в конце тридцатых была предложена эта схема в Гарварде. Про меня в очередной раз зашептали "Ну точно разведчик ...".

Ну а уж для перевода из десятичных в двоичный код народ сначала составил таблицу всех чисел до 1023 и набивал по ней вручную. Потом ее набили на перфоленте, которую протягивали до нужного числа — всего-то пять метров на двух бобинах, жали кнопку — и сигналы со считывающих датчиков поступали на пробивочную машину. но с такой длинной лентой ускорение получалось только если нужные значения были рядом, что получалось не всегда, поэтому ее разбили на ленты для каждой сотни, вставляли нужную и протягивали до нужного числа — надо, скажем, триста семьдесят два — брали полуметровую ленту с числами от трехсот до трехсот девяноста девяти, протягивали до нужного числа — и вперед. Потом народ понял, что каждый раз менять ленту тоже как-то занудно. Тогда сделали несколько считывателей, в каждом установили по длинной ленте на все 1024 числа — и брали значения с них — ведь шаг изменения значений одной переменной невелик — пять-десять-двадцать единиц, самих переменных тоже немного — три-пять-семь, поэтому достаточно семи считывателей максимум, и на каждом протягивать свою ленту — установили начальные значения на всех считывателях, и затем последовательно нажали на каждом кнопку — на ленте значений последовательно пробились нужные двоичные цифры. Потом сдвинули одну из лент, чей шаг отрабатывается — и снова последовательно пробили значения — и так далее. Получалось довольно быстро. Но и эту схему автоматизировали. Действительно — "Чего это мы будем жать кнопки на всех аппаратах ?" — ну и добавили схему с механическим переключателем, которая по нажатию всего одной кнопки пробивала значения со всех аппаратов — главное теперь было не запутаться в смене значений на лентах-источниках — для каждой надо было выставить нужный шаг значений. А потом еще подумали, и подключили эти ленты к самой установке, и теперь было достаточно перед каждым экспериментом установить нужные начальные значения на лентах, а уж схема выбора считывателя последовательно проходила ленты и брала с них значения — ленты как бы организовывали вложенные циклы прохода по своим переменным — температуре, давлению, сопротивлению и так далее. Правда, это безобразие вскоре прекратили — все-таки надо было сохранять значения, при которых проходил эксперимент — и для истории, и чтобы повторить без необходимости настройки. Поэтому на время вернулись к предыдущей схеме с готовыми лентами значений, пока кому-то не пришла в голову мысль сдавать в архив не сами ленты, а параметры считывателей — начальное значение и шаг — количество потребной бумаги снова уменьшилось.

Причем, несмотря на секретность, сведения о цифровых схемах просачивались в народ, поэтому вскоре мы обнаружили в одной из лабораторий самодельный блок с АЦП и счетчиком, которые моделировали работу с перфолентой — просто теперь последовательные значения для перебора параметров при экспериментах выдавались не с пробитой ленты, а с этого АЦП. Причем устройство было незасекреченным, и счетчики применили не в лабораториях, занимающихся технологией изготовления цифровых микросхем, что было бы естественно, а в совсем посторонней области — просто два друга играли вместе в волейбольной команде, вот и зацепились языками за тему генерации последовательностей значений для экспериментов. А в лаборатории цифровиков было много бракованных микросхем этих счетчиков, где работали, скажем, только два разряда из четырех, да и рассыпухи хватало, вот друг-цифровик и сделал из них своему другу несколько микросхем счетчиков на два, три, а то и на один разряд — и потом просто соединили их последовательно, получая нужные сетки разрядностей, а где не хватало, добивали рассыпухой, а то и на лампах, да еще подпирали снизу начальным напряжением выходные усилители, и так получали набор значений в нужном диапазоне напряжений. Так эти ухари, чтобы скрыть свою деятельность, одновременно пробивали и перфоленты, только теперь они были не источниками значений для установки, а лишь документированием процесса исследований — типа "правила не нарушили, все задокументировано", ага. То есть в нашей системе безопасности появилась новая дыра, и что делать с этой вольницей, было совсем непонятно — вроде бы делали благое дело, но вместе с тем сведения о цифровых микросхемах все больше утекали наружу. В данном случае, ладно — "все свои". Но мог оказаться и не свой. Пришлось возглавить и это направление — мы стали выпускать блоки с такими цифровыми счетчиками, пряча сами цифровухи уже стандартным способом среди других элементов, а работу счетчиков пока залегендировали магнитной записью значений — якобы теперь они записаны на магнитную пленку — внутри даже были соответствующие лентопротяжные механизмы с бобинами, сделанные из брака, и они даже работали. Ну, выглядели работающими — шуршали двигателями кода работали цифровые счетчики. А вот лезть внутрь, как и обычно, можно было только сотрудникам с соответствующим допуском.

123 ... 2122232425 ... 434445
Предыдущая глава  
↓ Содержание ↓
  Следующая глава



Иные расы и виды существ 11 списков
Ангелы (Произведений: 91)
Оборотни (Произведений: 181)
Орки, гоблины, гномы, назгулы, тролли (Произведений: 41)
Эльфы, эльфы-полукровки, дроу (Произведений: 230)
Привидения, призраки, полтергейсты, духи (Произведений: 74)
Боги, полубоги, божественные сущности (Произведений: 165)
Вампиры (Произведений: 241)
Демоны (Произведений: 265)
Драконы (Произведений: 164)
Особенная раса, вид (созданные автором) (Произведений: 122)
Редкие расы (но не авторские) (Произведений: 107)
Профессии, занятия, стили жизни 8 списков
Внутренний мир человека. Мысли и жизнь 4 списка
Миры фэнтези и фантастики: каноны, апокрифы, смешение жанров 7 списков
О взаимоотношениях 7 списков
Герои 13 списков
Земля 6 списков
Альтернативная история (Произведений: 213)
Аномальные зоны (Произведений: 73)
Городские истории (Произведений: 306)
Исторические фантазии (Произведений: 98)
Постапокалиптика (Произведений: 104)
Стилизации и этнические мотивы (Произведений: 130)
Попадалово 5 списков
Противостояние 9 списков
О чувствах 3 списка
Следующее поколение 4 списка
Детское фэнтези (Произведений: 39)
Для самых маленьких (Произведений: 34)
О животных (Произведений: 48)
Поучительные сказки, притчи (Произведений: 82)
Закрыть
Закрыть
Закрыть
↑ Вверх