Обновить
68
0.2
Иван Савватеев@SIISII

Микроконтроллеры, цифровая электроника, ОС…

Отправить сообщение

Именно переносимость в рамках единой архитектуры обеспечивает кучу удобств пользователям и живучесть самой архитектуры. Процессоры современных ПК технически способны выполнять код, созданный для первого IBM PC (1981 год), а процессоры современных мэйнфреймов z/Architecture -- прикладной код, созданный ещё для Системы 360 (1964 год). Но, естественно, совместимость имеет место только "снизу вверх": не будет программа, использующая команды, появившиеся в 80286, работать на 8086, а вот наоборот -- запросто.

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

Для прогнозирования изменения погоды важна именно динамика. Если давление стабильно низкое, а погода хорошая -- да, "глаз бури", но корабль в нём может находиться долго -- если направление перемещения и скорость циклона и корабля совпадают :) Если давление низкое, погода хорошая, но давление потихоньку повышается -- значит, из "глаза" подходим к "стенке", и скоро будет буря. Ну а если давление высокое, но быстро понижается -- мы приближаемся к внешней стороне циклона, и тоже будет буря.

Это переводная статья; возможно, оригинал был написан через год-другой после появления первых QLC.

Скажите спасибо искусственному идиоту. Точней, тем естественным идиотам, которые его типа развивают.

На самом деле, для любого программиста, даже если он этого не осознаёт.

Да, если ты пишешь переносимым образом (строго следуя стандарту) на каком-нибудь C++ (не говоря уже о Питоне или Жабе), ты сможешь перекомпилировать программу компилятором для другой архитектуры -- и всё будет работать (ну ладно, не всё и не всегда, но обычно таки будет). Однако взять уже скомпилированный модуль для одной архитектуры и использовать его с другой невозможно, переносимость будет лишь на уровне исходного текста, -- т.е. архитектура всё равно оказывается важной.

С другой стороны, даже если модуль скомпилирован под одну микроархитектуру, он благополучно может выполняться без перекомпиляции на процессорах любых других микроархитектур, лишь бы:

а) эти микроархитектуры реализовывали одну и ту же архитектуру (между процессорами архитектуры AMD64, разработанными Intel и AMD, объектный или выполняемый модуль переносится, а между, скажем, AMD64 и ARM64 -- нет);

б) данный скомпилированный модуль не использует необязательные расширения архитектуры, реализованные в одной микроархитектуре, но отсутствующие в другой (скажем, разные версии SSE);

в) данный код не полагается на особенности конкретной микроархитектуры (например, не манипулирует моделезависимыми регистрами).

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

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

Архитектура не меняется уже четверть века -- и называется AMD64/Intel 64. А Zen 1-2-3-100500 -- это микроархитектуры.

А ещё проблема современного осеписательства в том, что любой более-менее современный ПК -- очень громоздкая, запутанная и далеко не всегда хорошо документированная конструкция. В частности, сколько-нибудь приличную ОС (в техническом плане приличную -- про поддержку приложений, популярность среди пользователей и т.д. я не говорю) невозможно сделать, не реализовав в (почти) полном объёме ACPI -- а это тот ещё объём работы, усугубляемый тем, что если не все, то очень многие BIOSы кривые и нередко содержат ошибки -- которые, естественно, официально и публично не документированы и ты вынужден разбираться с ними методом научного тыка (сделал всё по спецификации -- а оно не работает, и сиди разбирайся: ты накосячил или BIOS кривой).

Ну а в плане сложности... Лично я сложность полноценной поддержки ввода-вывода в ОС оцениваю в 80-90% от общей сложности системы. Поддержка процессов и потоков, управление памятью, примитивы синхронизации, даже многопроцессорность -- это полная ерунда по сравнению с современным вводом-выводом.

Так что, если нет задачи создать ОС именно под ПК, то, как по мне, лучше тренироваться на мощных микроконтроллерах: там можно сделать всё то же самое, кроме виртуальной памяти (за отсутствием MMU), но всё намного лучше документировано и проще в работе. Ну а купить отладочную плату с приличным МК -- не велика проблема.

Я скромно ответил: "Это не мнение автора, а факты истории" И получил -2.

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

Софтверная симуляция с помощью программного симулятора на уровне регистровых передач (RTL level). К таким софтверным симуляторам относится Synopsys VCS и Cadence Xcelium.

А менторовский МоделСим/КвестаСим? Вроде ж, тоже позволяет RTL симулировать и смотреть, что получится. Или есть какие-то принципиальные отличия?

Если ситуация улучшается, значит, вы чего-то не заметили (с) :)

А с эмуляцией/симуляцией в русском языке полный хаос, увы. Поэтому на практике надо либо из контекста понимать, либо уточнять специально.

Вообще-то, дискеты -- что 8", что 5,25" -- для хранения чего-то серьёзного никогда не использовались, поскольку у них и ёмкость была мизерной, и надёжность никакая. Все данные хранились на жёстких дисках и/или магнитных лентах -- и большая их часть была содрана с IBMовских и DECовских. Например, наши ЕС-5050, 5052, 5055, 5056 (7,25 Мбайт) "в девичестве" были IBM 2311, ЕС-5061 (29 Мбайт) -- IBM 2314, ЕС-5066 (100 Мбайт), ЕС-5067 и 5080 (200 Мбайт) -- IBM 3330 разных модификаций. С СМовскими приводами та же история только там в основе лежали DEC RK02, RK06, RP-что-то-там... ПК же с дискетами, но без жёстких дисков были... игрушками, по большому счёту, не годящимися для серьёзной работы. (Да, что-то разрабатывали на, скажем, ДВК-1 и ДВК-2, но почти всё "настоящее" разрабатывалось на "настоящих" СМ-4, СМ-1420, СМ-1600, а не на ДВКшках, ну и т.д.). Ну а ПК, выросшие из IBM PC, -- это уже другой этап истории.

Ну, память вас подводит. Может, эти видео вам немного освежат её:

Не подводит-с. Я неоднократно в своей жизни сталкивался с контрастом между Москвой (вот где был вкуснейший хлеб!) и регионами, между тем же Ижевском и Волгодонском или Тирасполем (Приднестровье)...

А видео -- извините, тупая советская пропаганда про то, что у нас "всё хорошо".

Проблема сандаликов? Да, известная проблема социализма

И школьных ботинок тоже. И в старшеподростковом возрасте тоже. Ушла с распадом СССР -- стали завозить всякое забугорное, и выбор появился.

Как-то вы на радиодетали перешли с гнилой картошки. Впрочем, вы почему-то забываете, что технические новинки сначала идут в производство, и только при удовлетворении потребностей производства остальное идёт в свободную продажу. Что же вас это так удивляет?

То, что их не было в продаже не только в 1980-м, но и, скажем, в 1985-м году -- хотя сами микросхемы типа К155ЛА3 и им подобных производились ещё в конце 1960-х. Так что это не "технические новинки", это замечательная советская экономика.

Самое забавное, что вы даже не задумываетесь о том, что было, что воровать. А ведь это прямо противоречит вашему заявлению о том, что ничего не было ("купить было нельзя").

Извините, но Вы -- брехло, причём брешете прямо в соседних предложениях. Сами цитируете, что я написал: "купить было нельзя", и т ут же врёте, будто я утверждал, что ничего не было. Было -- но на предприятиях, а не в продаже для простых смертных, потому и воровали все. Спасибо вашему социализму.

Ну, из той информации об СССР, которой вам забили голову - конечно ничего хорошего. Только вот было на самом деле совсем не так, как вы думаете.

И опять Вы являетесь лжецом. Никто мне голову не забивал, большинство моей родни чуть ли не буквально дрочили на советскую власть. А я её сначала не понимал (поскольку говорят одно, а вокруг я вижу другое), а потом стал ненавидеть. И ненавижу до сих пор.

Давайте вернёмся к этому разговору лет через 5-10

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

Угу, а у нас даже у БЭСМ-6 -- магнитные барабаны мизерной ёмкости. Позднее к ней приделали магнитные диски, да, как были они и на Эльбрусах -- вот только это были диски от ЕС ЭВМ, т.е. скопированные с IBMовских.

Мне, например, 53 года, и жизнь в позднем СССР я помню весьма неплохо. Например, воспоминания об Ижевске в 1979-м году (мне 6-7 лет было) -- это похороны товарища Суслова (первые "гонки на лафетах", которые я запомнил), а в магазинах -- ряды вкуснейшего берёзового сока, жутко невкусный хлеб неопределённого цвета, полугнилая картошка... и всё! Нет, голодать никто не голодал, но мясо, например, купить была большая проблема. А вот когда я приезжал к родственникам в Ростовскую область (Волгодонск и его окрестности), в плане пожрать там было всего завались -- но на рынке, что и не удивительно: Удмуртия -- это вам не одна из самых плодородных областей РСФСР.

Купить подходящую обувь на меня в Вашем хвалёном СССР было невозможно от слова совсем: у меня нога слишком широкая, и приходилось брать на два размера больше.

Про радиодетали и говорить нечего: даже в Ижевске с его радиозаводом купить логические микросхемы было нельзя -- их не было в принципе; что-то появляться стало перед распадом Союза -- когда всё стали воровать практически в открытую. Ну а осваивал я цифровую электронику на ворованных микросхемах, да: ребята из местного университета, узнав о моём интересе, украли пригоршню с ЗИПа местных ЭВМ. Позднее и уже в других местах для меня воровали другие, а потом воровал и я сам.

В общем, я лично считаю, что реально ничего хорошего в СССР не было. И даже пресловутую социалку я считаю злом: она порождает лень, безделье, тунеядство и т.д. и т.п. Принцип должен быть простой: не можешь заработать на жизнь -- сдохни. Единственное, что действительно плохо -- это распад страны, но никак не крах "советской власти", "социализма" и прочей мерзости.

Как не крути это двойные стандарты, двойная мораль.

Это у Вас двойные стандарты -- у IBM всё замечательно, а всё остальное -- отстой.

Я нигде не говорил, что у IBM всё хорошо, а у нас всё плохо. Я говорил лишь и продолжаю говорить, что ничего реально выдающегося у нас не было, развивать было нечего, и вопрос был в том, копировать ли чужую архитектуру или делать с нуля свою.

С ASCII в версиях начиная с OS/390 (это 90-е годы) все в порядке, поддерживается на все 100.

И Вы смеете себя называть системным программистом? Раз уж речь шла об архитектуре, т.е. о том, что реализует аппаратура, любому реальному системному программисту, а не обладателю кучи бумажек о законченных курсах, понятно, что речь идёт о поддержке режима ASCII в Системе 360, которая была упразднена в момент перехода к Системе 370. Изучайте матчасть -- в данном случае бит 12 в PSW Системы 360.

Например каких? Я приводил ссылку из Вики где БЭСМ-6 сравнивался с CDC, а не с ИБМ. Да производительность CDC была выше, но не за облаками.

Не за облаками? Даже по приведённым Вами цифрам CDC 6600 выдавала 3 млн. оп/с, т. е. была втрое быстрее, чем БЭСМ-6 (и при этом имела 60-, а не 48-разрядное слово -- надо полагать, и точность, и диапазон представимых чисел у неё были больше), при этом она была выпущена на три года раньше. А CDC 7600, по Вашим же цифрам, была уже в 10, а в пике -- в 35 раз быстрей БЭСМ-6. Это "не за облаками"?

дописываю за Вас... и без поддержки со стороны государства, которую всю бросили на ЕС ЭВМ. После БЭСМ-6 и Урал-16 уже ничего своего не было. И это понятно.

Написали полную ложь. Эльбрусы государство поддерживало руками и ногами.

Какой Вы умный, а Борич Малиновский дурак. В "принципах работы" что вс1 по Вашему расписано?. Не смешите, Там расписано только то что нужно знать для работы с ИБ МФ, но не про ИБМ МФ на уровне железа. Чтобы такое железа сделать надо было повторить всю разработку, проектирвание, технологию. И запустить это в СЕРИЙНОЕ ПРОИЗВОДСТВО.

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

Не знаю кто такой Ярмухамедов, но, а какже иначе могло быть если "внутрифирменной конструкторской документации" не было, а были лишь "принципы работы"?

Один из создателей ЕС-1033, его статья есть на сайте виртуального компьютерного музея.

ИБМ МФ клонировали (не копировали) и "другие" американцы, и англичане и японцы. Но только до определенного момента и этот момент настал довольно быстро после начала сокрушительного успеха ИБМ МФ. Это было давно, дркгими словами, и все "копировщики" "отпали". На сегодня производить ИБМ МФ может только ИБМ. Китайцы не могут и не смогут никогда. Это не кроссовки и даже не авионосец.

Чушь написали. Если есть подходящие фабрики для физического производства, разработать за разумное время по силу весьма многим коллективам -- в принципе, любому, кто свои суперскалярные процессоры клепает. Если же фабрик нет -- всё упрётся в физическую невозможность производства, а не разработки. У нас, вон, Эльбрус (современный VLIW) разработали -- вот только производить оказалось негде.

Ну а отпали "копировщики" совсем по другим причинам: во-первых, никто не мог предоставить клиентам того же сервиса, что IBM (хотя машины сделать лучше, чем IBM, могли -- у Амдала, во всяком случае, они постоянно были лучше по своим характеристикам), а во-вторых, это в 60-70-е архитектура юридически не защищалась, а дальше пошли патенты и прочие ограничения что на железо, что на софт. Выпускать Систему 370 ещё можно, а ESA/390 -- уже нельзя-с. Вот Intel и AMD друг у друга копировать имеют полное право -- н только поскольку ими в своё время было заключено соответствующее соглашение.

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

Я не называл никаких конкретных архитектур. И по смыслу этого обсуждения речь идет об ЭВМ 60-х. ИБМ МФ, CDС, БЭСМ, Урал. Все эти ЭВм были нацелены примерно на одно и тоже и у них были разные архитектуры.

Мой ответ был на Ваше утверждение, что архитектура роли не играет. Ещё как играет! А Ваш ответ, извините, -- демагогия. Или Вы настолько невежественны, что не знаете, что перечисленные Вами архитектуры ориентированы на разные задачи? ИБМовские -- прежде всего, бизнес-приложения (т.е. десятичная арифметика, обработка строк, интенсивный ввод-вывод), а научно-технические расчёты для них были всё-таки вторичными -- недаром в Системе 370 десятичную арифметику сделали обязательной частью системы команд, а вот вещественная стала таковой намного позже (хотя были отдельные модели, заточенные именно над научные расчёты -- 91-я, например). CDC -- топовые числодробилки, как у нас БЭСМ. Урал -- вроде как, в первую очередь управляющие машины, но точно не рекордные числодробилки и не "экономические".

А они что были очень старые? Их жизнь еще только началась. Вокруг был хаос. Электроника и микроэлектроника еще только делали свои первые шаги. Лампы еще не остыли.

А Вам уже было понятно что это тупиковые машины? Вам сколько было в конце 60-х?

Речь о том, что постоянно утверждают, что надо было развивать БЭСМ, Мински и Уралы. Вот на это я и возражаю: эти машины -- тупик, ничего путного из них было сделать нельзя (как тупиком была и какая-нибудь IBM 1401, несмотря на всю её жуткую популярность в начале 1960-х), и в любом случае нужны были новые архитектуры, а им, как и машинам близкого времени с запада место в музее. Утащенные с запада или свои собственные -- это уже второй вопрос.

Вы, если не ошибаюсь, сказали что де тогда делали числодробилки для военных и траекторий полета на Луну. Я надо было для экономических и других расчетов. Факт, не спорю. Но кто и что мешало из хорошей числодробилки сделать посредственную для бухгалтерских расчетов? Никто, но что? Может холодная война?

Технически -- да, БЭСМ-6 могла посредственно решать "бухгалтерские" задачи (и даже наверняка с большей производительностью, чем ЕС-1020, а может, и ЕС-1030, несмотря на свою очень неэффективную для таких вещей систему команд -- всё ж миллион оп/с, это вам не хухры-мухры). Вот только такие задачи решать требовалось не в двух десятках НИИ на всю страну, а на тысячах, если не десятках тысяч предприятий, в бухгалтериях районо и прочих мелких конторках, и в каждой из них поставить по БЭСМ никаких денег не хватит -- не говоря о том, какой штат был нужен для её обслуживания, сколько места они занимали и т.д. и т.п. По сути, нужны были сравнительно небольшие машины, ориентированные именно на такие задачи. Отчасти такой была Минск-23, но, как и вся техника 1-2 поколений, она была практически нерасширябельной, ни с чем не совместимой и т.д. и т.п. А вот архитектура Системы 360 в этом плане была как раз универсальной и достаточно хорошо подходила под любые задачи, кроме задач реального времени (из-за ввода-вывода).

1
23 ...

Информация

В рейтинге
2 435-й
Откуда
Солнечногорск, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем
Ведущий