Комментарии 34
Спасибо, очень интересные статьи!
А можно пояснить для людей, не заставших ферритовую эпоху, зачем вообще нужны трансформаторы в трансформаторном ПЗУ? Не проще было бы просто соединить выходы перемычками с источниками напряжения, соответствующими логическим 1 и 0, чем вести проводник внутри или в обход трансформатора?
Если кратко -- нельзя, нужна та или иная изоляция выходов дешифратора друг от друга, чтоб на вход регистра данных (регистра микрокоманды, в данном случае) поступал сигнал, соответствующий лишь одной линии дешифратора. Можно сделать ПЗУ на, скажем, диодах и перемычках -- только в те годы оно стоило бы многократно дороже трансформаторной (или конденсаторной, как у IBM) конструкции.
Дешевле всё устройство, несмотря на то, что трансформаторы дороже диодов. Потому что трансформаторов при прочих равных требуется меньше в разы.
В-третьих, становится проще, дешевле и быстрее процесс разработки: при обнаружении ошибок в выдаваемых управляющих сигналах надо лишь внести изменения в микропрограммную память, а не перекраивать схемы процессора.
Я бы пожалуй порядок поменял бы. Вот этот пункт — один из самых важных. У нас была одна (не из первых) ЕС-1061, но при этом микропрограммы все еще содержали ошибки. При этом если мы сумели их воспроизвести (хотя бы на уровне ОС), и показать разработчику (НИИ ЭВМ Минск), то разработчик мог выпустить новую микропрограмму. И вуа-ля, ставим ленточку, загружаем — нету ошибок больше, профит. Понятно что за ленточкой все еще нужно было ехать в Минск, но по сравнению с выпуском новой платы или микросхемы — это явный прогресс.
То есть, у 1061 микропрограммная память была не на феррите?
ЕС-1061 -- это уже 1980-е годы, ферритовая память уже ушла. Как конкретно там реализовано, я не знаю -- с ними дела не имел и даже не видел. Но уже у ЕС-1035 (конец 1970-х) управляющая (микропрограммная, грубо говоря) память -- мало того, что полупроводниковая, но ещё и на ОЗУ.
Я никогда не лез в эту область, так что точно не знаю. Но думаю что таки нет.
Про EC-1061 не скажу, а у ЕС-1046 в 1988 году микропрограмма загружалась при перезагрузке машины с ленты - не большая кассета.
Первой ЕСкой с загружаемыми микропрограммами была ЕС-1035, а это конец 1970-х. В ЕС-1045 часть микропрограммной памяти была загружаемой, часть -- постоянной, но с этой машиной я, можно считать, не работал. Ну а про ЕС-1046 только слышал.
Кассета. Насколько помню — примерно как VHS.
В ЕС-1061 помню ошибку в реализации команды MVCL - писала лишний байт. В результате после ассемблирования в памяти команд DC/DS появлялся мусор. Явно проявилось при старте VTAM (segment fault с 0С4). Был выезд к заказчику и разбор дампа. Заказчик отправил результаты и микропрограмму поправили.
От программистов занимающие установкой ОС, слышал, что для ОС СВМ была разработан механизм загрузки микропрограмм с целью изменения логики выполнения некоторых команд, в частности команды супервизор SVS, а также возможность добавления новых команд. Данный механизм был сделан для ЕС 1036, а вот для других машин не знаю.
Для СВМ ЕС, она же VM/370, машина могла предоставлять средства поддержки, ускорявшие некоторые аспекты виртуализации. Что-то было, например, уже в ЕС-1035, но доступная мне версия СВМ (более поздняя) этим пользоваться не умела. Технически могли и специализированные версии микропрограмм выпускать для тех машин, где микропрограммная память загружаемая. Но виртуализация работала и без какой-либо поддержки -- просто некоторые вещи выполнялись медленнее (это на IA-32 aka x86 без специальной железной поддержки виртуализация вообще невозможна -- из-за жуткой кривизны архитектуры).
ЕС-1036? Я за свою довольно длительную практику кажется таких ни одной не видел. То есть модель довольно редкая, по моим ощущениям. Ради чего для нее делать свое расширение микропрограмм? Чтобы куда его потом деть?
Ну то есть, теоретически это скорее всего возможно, но выглядит не очень осмысленно. Кроме всего прочего, на машинах ЕС вполне нормально работала родная VM/SP, без изменений вообще. Все изменения, насколько я знаю, кроме локализации, вообще сводились к коду обработки ошибок оборудования, которые были у родных машин свои, в остальном же все было совместимо.
В общем, ничего не могу исключить, но практическая польза от расширения системы команд не особо усматривается со стороны.
ЕС-1036, насколько знаю, -- несколько осовремененная ЕС-1035; основное техническое отличие -- прикрутили кэш-память, что позволило поднять производительность.
Ну а как именно работали средства взаимодействия машины с СВМ, сказать могут только разработчики, надо полагать: это не документировалось в тех руководствах, что попадали простым эксплуатантам. Более того, даже обычное расширение системы команд (Система 370 на месте ж не стояла, ну и мы "догоняли", но не "перегоняли") не документировалось; скажем, пришла к нам ЕС-1130, у которой был ряд новых команд, в частности, TPROT -- а информации нуль. Логику некоторых из них я по микропрограммам и схемам восстанавливал, тырнетов же не было, чтоб просто скачать IBMовскую документацию.
Было такое, и как раз на ЕС 1036. Делаешь себе виртуальную машину со своей любимой ОС и своими любимыми командами -- по крайней мере, по документации было всё гладко.
С практической пользой тяжелее, но в комплекте шёл пакет расширения для числовых расчетов.
ЕС 1036, 1046 и 1066 -- аналоги IBM 303x, в которых изначально присутствует функциональность расширения команд. Для первых двух читал соответствующую документацию, жаль, руки не дошли попробовать на практике.
Вот такая ЕС1020 была в нашей школе. (1982 год). Я для нее писал программы машинной графики для принтера. На PL/1. Программировать было интересно, но крайне неудобно. Надо было перфорировать программу самому. Потом сдавать операторам. Они запускали и выдавали распечатанный результат. В большинстве случаев это было сообщение об ошибке. А потом по кругу пока не получишь результат.
И так как персональные компьютеры уже были, хоть и медленнее, я эту затею бросил и начал программировать для ПК.
То что у школ было фигово с техникой — не удивляет. На 1982 год сама ЕС-1020 уже была старье (я кажется вообще такой модели никогда не видел — у нас самой слабой была 1022). И к этому году у нас практически везде уже были терминалы. Так что такого неудобства уже не было — и в сравнении с DOS скажем в VM/SP CMS было программировать комфортнее. Хотя потом этот баланс удобства стал явно двигаться в сторону персоналок, и очень скоро. Так что в среднем, выбрав ПК в то время, вы не прогадали.
создатели же ЕС ЭВМ предпочитали трансформаторную.
Честно? Без понятия :) Я не застал столь старые машины и имел дело уже только с ПЗУ на микросхемах. Правда, подозреваю, что древние контроллеры дисков ЕС-5551, доставшиеся "по наследству" нашим ЕС-1035 от ЕС-1022 вместе с 16 дисководами ЕС-5052 и ЕС-5056 (сами старые машины отправили в утиль ещё до моего прихода, а вот периферию оставили), были тоже микропрограммными, но внутрь их я никогда не лазил: за те лет 5, что они работали в моём присутствии, ни одной поломки не было, а соответственно, открывать их стойки не было нужды (работает -- не трожь!).
Некий народ несколько лет назад жаловался - есть групповой контроллер терминалов от IBM S/370 , но нет к нему софта на дискетах. А было бы ферритовое ПЗУ, то и искать не надо было)
Ферритовое -- оно, вообще-то, ОЗУ :) Хотя можно и чистое ПЗУ сделать, но устройство у него будет другим. Ну а вся поддержка имелась прямо в осях, а не на "дискетах". Кстати говоря, благодаря особенностям системы ввода-вывода мэйнфреймов, можно было подключить неизвестное для ОС устройство и нормально с ним работать из прикладной программы -- есно, это была задача не для рядового прикладного программиста, но технически решалась без проблем.
Трансформаторное ПЗУ это лишь вариант ферритового, так как ферритовые элементы присутствуют. Вопрос сисмематики. Строго говоря, не уверен, что в ЕСках или оригиналах от IBM были ПЗУ (ДЗУ) на биаксах или сердечниках-ммс.
Ну, принципиальная разница в том, что в трансформаторном ПЗУ информацию не изменишь, не внеся физических изменений в конструкцию, ну а ферритовое -- именно ОЗУ, а не ПЗУ, просто оно не теряет информацию при отключении питания.
Трансформаторное ПЗУ это лишь вариант ферритового, так как ферритовые элементы присутствуют
Нет, это разные виды памяти, там отличается сам физический принцип работы. В трансформаторном ПЗУ записанные данные определяются укладкой проводов, в ферритовых — намагниченностью сердечника.
Инженеры IBM, судя по доступным документам, любили использовать так
называемую конденсаторную постоянную память, создатели же ЕС ЭВМ
предпочитали трансформаторную.
Был пост Кена Шириффа про трансформаторную память микрокоманд в IBM S/360
http://www.righto.com/2019/11/tros-how-ibm-mainframes-stored.html
Но, что интересно, в документации на ранние модели Системы 360 говорится уже про конденсаторную память. Может, в разных моделях использовали разную?..
О, увидел в этом посте: "The TROS module I have was used on the low-end System/360 Model 20 computer..." -- т.е. речь у него о модели 20, на которую я вообще не смотрел -- это "недосистема 360", сия модель несовместима с настоящими машинами Системы 360, поэтому я и не пытался вникать в документацию на неё.
По Википедии https://en.m.wikipedia.org/wiki/Transformer_read-only_storage применялась также в Model 40. Кстати у Шириффа в статье, а также в патенте, на который ведет ссылка из Вики, хорошие иллюстрации
Добавлю сюда кое-какую документацию по микропрограммированию от IBM
Процессор ЭВМ ЕС-1020. Микропрограммное управление