Иван Савватеев @SIISII
Микроконтроллеры, цифровая электроника, ОС…
Information
- Rating
- 2,048-th
- Location
- Солнечногорск, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity
Specialization
Embedded Software Engineer
Lead
Микроконтроллеры, цифровая электроника, ОС…
Не, z/Architecture -- это именно что продолжение Системы 360 -- через Систему 370, 370-XA, ESA/370 и ESA/390. Каждое новое поколение добавляло новые фишки, но полная программная совместимость прикладного кода сохранялась (вот совместимость на системном уровне была утрачена при переходе от 370 к 370-XA -- и IBM как раз поступила очень разумно, не потащив кучу старья и дальше, и предпочтя просто модифицировать код ОС -- ведь на прикладных программах изменения никак не сказались, как впрочем, и на 95% системного кода). Сейчас там, конечно, больше тыщи команд (против 144 изначально), но, в общем-то, они вполне в мозги лезут -- потому что вполне логичны, по большей части. Я, конечно, наизусть не скажу команды, скажем, векторной обработки, -- я для современных мэйнфреймов я и не писал, но их относительно немного, это не бесконечные MMX, SSE и прочие AVX, так что, если бы я их использовал постоянно, я б запомнил без проблем (ну а если б использовал изредка -- без проблем находил бы нужные команды в руководстве по архитектуре, оно не особо объёмное).
Что касается разброда и шатаний в рамках Системы 360 -- это я в курсе, естественно. Но, прямо скажем, это неудивительно: хотя сама архитектура была эпохальной, появилась-то она в переходный период (собственно, во многом его и определив), вот и страдали экспериментами. А вот какого лешего, например, чехи сделали ублюдочную ЕС-1021, этого и они сами, надо полагать, не поняли: вроде и Система 360, а на системном уровне совместимости нет, половины команд прикладного уровня тоже нет... И ведь это уже начало 1970-х было -- казалось бы, можно учесть чужой (IBMовский) опыт и не бегать по граблям...
Насчёт системы команд IA-32. Я в данном случае говорю не про вместимость черепной коробки, а про гадостность именно системы команд на базовом уровне. Например, "MOV EAX, константа" может кодироваться несколькими разными способами (а в 64-разрядной, кажется, только в RAX можно загрузить 64-разрядную константу, в остальные регистры -- фигвам); строковые операции обязательно используют ESI, EDI и ECX, использование в качестве базовых одних регистров влечёт к обращению через один сегментный регистр, а других -- через другой (и не всегда это можно подменить префиксами), длина команды не может быть определена простыми средствами и т.д. и т.п.; для деления в 8086 использовались строго определённые регистры и регистровые пары -- не помню, исправили это в 80386 или уже позже... И вся эта дурь тянется для совместимости и дальше. Причём, замечу, если некоторые косяки системы команд Системы 360 простительны -- она формировалась в первой половине 1960-х, в условиях ещё полнейшего архитектурного хаоса, то идиотизм архитекторов Интел просто поражает: они собрали практически все возможные глупые решения, но делали это уже в середине 1970-х! Более того, переходя, уже в 1980-х, на 32-разрядную систему команд, они поступили не как DEC, у которой VAX-11 "идеологически" подобен PDP-11, но на уровне кодирования команд и прочего не имеет никакой совместимости для обеспечения эффективности реализации, -- они решили тянуть прямую совместимость с откровенно уродской системой команд 8086 (сравните её, скажем, с 68000 и Z8000 -- все три этих микропроцессора являются современниками), а не оставить её чисто для 16-разрядного режима, в 32-разрядном переключаясь на новую, эффективно закодированную систему команд (VAX-11 могла выполнять прикладные программы PDP-11 именно таким путём).
Восьмеричная система, кстати, никак не напрягает, это вопрос привычки; для PDP-11 она была естественней: восемь регистров, восемь режимов адресации... Я легко прыгал с одной на другую в зависимости от того, приходилось ли иметь дело с СМкой или ЕСкой.
Насчёт терминалов. А Вы гляньте, когда появился VT100 и на чём он был сделан. IBM делала технику много раньше, на другом технологическом уровне, и для того времени всё было очень даже круто (хотя временами переусложнено -- тут соглашусь). Редактировать там, кстати, можно было не строку, а весь экран. Ну а что до ЖабаСкрипта... Он появился, по историческим меркам, вчера -- а не в эпоху мамонтов :) Вот игры -- да, бяда-бяда, но в IBM сидели скучные дяди, ориентированные исключительно на бизнес-задачи :) (Кстати, в змейке на СМке для меня всё один раз закончилось надписью "кролики кончились" :) ).
Это понятно; я к тому, что, если б у машины что-то не в порядке было с напряжением питания подложек, то микросхемы должны были бы гореть оптом, а не по штуке в месяц. Думаю, это просто ранняя серия микросхем была, ещё недостаточно надёжная (возможно, потому "золотая", типа военная, машина попала на гражданское предприятие -- подозреваю, что вояки в те годы ещё предпочитали нормально работающую ферритовую память). Но ремонтировал не я, я де-факто системщиком был и просто ковырялся в железе ради собственного удовольствия, поэтому не знаю, выходили ли из строя повторно уже заменённые микросхемы, или же дохли только те, что были установлены на заводе (микросхемы из ЗИПа были относительно новые -- примерно 1985 года выпуска или даже несколько позже; сама история имела место в конце 80-начале 90-х).
Для уровня технологий СССР -- да, но не для уровня технологий IBM, от которой мы отставали лет на 10. Поэтому если сравнивать 486, то с современной ему продукцией именно IBM.
Ну, тогда б они дохли пачками, а они отбрасывали копыта строго по одной. Так что вряд ли дело было в напряжении смещения.
Позвольте не согласиться :) В именно мэйнфреймовых процах, ведущих свою генеалогию от Системы 360, почти всё стройно, чётко и понятно до сих пор, хотя их расширяли многократно -- начиная с той же системы команд и её кодирования. Попробуйте, например, определить длину кода команды для IA-32: она может составлять от 1 до 15 байтов включительно, и для определения необходимо проанализировать несколько начальных байтов, причём нельзя заранее сказать, сколько именно. А вот что в Системе 360, что в z/Architecture длина кода команды однозначно определяется двумя старшими битами первого байта кода команды (1, 2 или 3 полуслова). То же касается положения полей номеров регистров и смещений в коде команды: имеется всего несколько вариантов; соответственно, схема выборки и декодирования команд и вычисления адресов операндов очень проста и не занимает, грубо говоря, половину процессора. Упрощается и жизнь программиста: в общем и целом, регистры имеют действительно общее назначение -- а в 8086 у них у всех назначение было разное, что с появлением IA-32 лишь было ослаблено, но не изжито полностью (и, естественно, тянется до сих пор для совместимости). Ужасна и системная архитектура с сегментами, дескрипторами и прочим -- недаром в реальных ОС почти все эти возможности не используются (и были выпилены AMD при разработке 64-разрядного расширения архитектуры). Полный идиотизм -- возможность считывания системной информации (адресов таблиц дескрипторов, кажется -- не помню подробности) из пользовательского кода, потому что соответствующие команды являются непривилегированными (из-за этого до появления специальной поддержки была невозможна реализация виртуальных машин -- а на Системе 370 для неё было достаточно обычной поддержки виртуальной памяти). Вот что PowerPC -- монстр, тут я согласен, но это совершенно другая архитектура.
Кстати говоря, 3270 не просто так появились. Стояла задача к одной относительно слабой машине подключать десятки, а то и сотни пользователей -- и эти терминалы успешно данную задачу решали, поскольку многие функции выполняли автономно, а не как, скажем, в PDP-11, она же СМ ЭВМ, где на каждое нажатие клавиши на терминале дёргался процессор машины -- что, естественно, сильно ограничивало возможности совместной работы. Скажем, когда кто-то на СМ-4 запускал компиляцию сколько-нибудь сложной программы, текстовые редакторы других пользователей начинали подтормаживать -- а для 3270 (он же ЕС-7927) тормоза возникали лишь в ситуациях, когда реально был нужен ответ машины, а не при простом редактировании текста, выполняемым чисто автономно. По сути, та же самая концепция реализуется современными веб-браузерами: пока ты на своём компе заполняешь формочку, удалённый сервер не дёргается, запрос ему отправляется лишь при нажатии тобой некоей кнопки.
И, между прочим, система команд PDP-11 и VAX-11 приятней, чем Системы 360, про интеловских ублюдков вообще молчу :) Но на системном уровне архитектура мэйнфреймов в общем и целом и мощнее, и стройнее.
И, кстати, про виртуализацию: на мэйнфреймах для неё не требовалось никакой специальной поддержки -- если она была, некоторые вещи ускорялись, но не более того. Ну а на IA-32 aka x86 без специальной поддержки она вообще невозможна в силу кривизны архитектуры. Вообще, архитектурно Интел за всю жизнь ничего вменяемого не сделал, похоже -- сплошь извраты и бег по граблям (которые потом мужественно преодолевались на уровне микроархитектуры).
Ну, понятно, что 486-й делал советские мэйнфреймы -- но это машины совсем разных эпох. Он точно так же уделает IBMовский мэйнфрейм конца 1970-х -- чему ЕС-1066 примерно соответствовала и по производительности, и по технологичности. Но я говорю про архитектуру, а не про конкретные реализации. Никакая суперсовременная персоналка даже близко не подойдёт по производительности к современному мэйнфрейму z/Architecture -- а они ж являются прямым продолжением Системы 360 и сохраняют совместимость снизу-вверх на уровне прикладного кода. Что же машин на базе GPU, то, думается, сравнение не совсем корректно: их "аналоги" на рассыпухе -- скорей, Cray и прочие суперкомпьютеры начала 80-х. Всё ж там упор на матричные вычисления и прочий SIMD; если задача не допускает распараллеливания, любой GPU сольёт по производительности даже отнюдь не блестящему по характеристикам обычному процу аналогичного технологического уровня.
Кстати, о памяти. Если в ЕС-1035 стояли К565РУ1 на 4 Кбита, и они постоянно дохли (спасал только контроль и коррекция с помощью кода Хэмминга), то в ЕС-1130 стояли уже К565РУ7 на 256 Кбит, если память не изменяет, -- и проблем не было, насколько помню, Вообще, у этой машины единственной реальной проблемой был её "пульт управления" на ублюдочной ЕС-1842 или как там её -- вот с этим дерьмом регулярно что-то случалось. Хотя, конечно, гонять тесты с персоналки было проще и удобней, чем с железного пульта ЕС-1035.
А я, наоборот, после ЕСок и СМок от ПК дико плевался: архитектурно они жуткие уроды -- что процессор, что компьютер в целом.
Да, насчёт необходимости подтягивания базы транзистора к земле в ДТЛ Вы, конечно, правы:
В отличие от ТТЛ, где с этим справляется входной транзистор:
Ну, десятки киловатт жрала вся машина -- со всей кучей дисков, лент и прочая. Если сам процессор -- то поменьше (иногда сильно, иногда не очень сильно). Например, контроллер дисков ЕС-5551 весит полтонны и жрёт 1 кВА, каждый дисковод ЕС-5056 -- всего лишь 260 кг, но зато 1,5 кВА...
Ну, не плевать -- просто не мгновенно сгорят. Питание на выход, выдающий нуль, -- да, убивает. Из той же, в общем-то, серии. Новичкам, наверное, действительно проще с КМОПами современными экспериментировать -- они идиотоустойчивей :)
В аналоговом режиме -- да. В чисто цифровом -- принципиально не отличается от ДТЛ. Хотя могу быть не прав, в аналоговой электронике не силён :)
Ну, UNIVAC и прочая -- на лампах, а не на транзисторах. Может, нейросетка развлекается? :)))) (Ну а если школьник интересующийся -- пущай учит, ну а то, что глупость сморозил, -- фигня, все время от времени морозят.)
К 155-й -- скорей, 555 и 531, а 1533 -- это уже к 555 (а 1531 -- к 531). Но вообще, мы там дискутировали про КМОП и ТТЛ.
В порядке придирок :)
1) Как мне кажется, описывая принцип работы логического элемента, лучше б пояснить, что входной транзистор работает не транзистором, а просто связкой диодов (по сути, схема ТТЛ-элемента "в лоб" повторяет схему ДТЛ).
2) У эмиттерного повторителя на базе не делитель напряжения, как "правильно", а лишь резистор, подтягивающий базу к питанию. Тоже неплохо б было разжевать, почему.
Ну и спасибо за полезные статьи, интересующейся молодёжи поможет.
Что сам степпер 70-х был сильно проще, это понятно, но всё ж это не было оборудование, доступное чуть ли не каждому второму обладателю гаража (вот сейчас такой же степпер, пожалуй, действительно многие частные лица могли бы себе позволить -- правда, к нему ещё много что нужно). С Интелом пример интересный, но хотелось бы знать, что именно они на том оборудовании выпускали. Как понимаете, стоимость производства условной SN7400 и столь же условного i8080 сильно различалась: два десятка транзисторов и 5000 -- очень большая разница и в плане требований к оборудованию, и к исходным материалам, и в плане выхода годных кристаллов. И, опять-таки, вопрос "первопроходства": первый степпер, надо полагать, стоил намного дороже, чем он же, но поставленный на поток; ну а Интел первым в истории производителем микросхем не была. Ну а в СССР главной проблемой была полностью государственная экономика без какой-либо реальной конкуренции и частной инициативы; соответственно, развитие могло идти только в соответствии с решениями ЦК, а там далеко не всегда решения принимались правильные и своевременные (иначе б 91-го не было бы, но не будем углубляться в политику).
Ещё как требовало. Это сейчас тогдашнее оборудование кажется примитивным, а тогда... Ну и стоило оно соответствующе -- как и производимая на нём продукция.
Ну, производили ли микросхемы в Тбилиси, я не знаю -- вроде б нет (самолёты производили -- в войну там обстроили авиаремонтный завод, ну а после войны переоборудовали в авиастроительный, что вполне вписывалось в политику "индустриализации национальных окраин", но, прямо скажем, было довольно бессмысленным с экономической точки зрения: грузин банально слишком мало, чтоб полноценное авиапроизводство организовывать, особенно с учётом того, что почти все они заняты в сельском хозяйстве, причём последнее из-за климата куда-нибудь в Новосибирск перенести слегка затруднительно :) ). Но, скажем, 1800-ю серию делали в Вильнюсе, и она исчезла очень быстро по понятным причинам, про Баку Вы упомянули, а были и Минск, и Киев, и Воронеж, и ещё десятка два, если не больше, городов...
Возможно, действительно, связано с приёмкой. Про нашу "золотую" ЕС-1035 говорили, что она "военная", хотя это было сугубо гражданское предприятие (ВЦ швейной фабрики). Ещё есть мысль, что надёжность могла зависеть от производителя микросхем. 155-ю серию производил много кто -- и не факт, что всё достаточно качественно. (В авиастроении точно была эта проблема: Су-25 тбилисского производства были ужасны, ибо местные рабочие половину года были заняты своими виноградниками, а не какими-то там самолётами :) ).
Кстати, круглосуточная эксплуатация должна б уменьшать количество проблем: компоненты предпочитают сгорать в момент включения/выключения...