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

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

0,1
Рейтинг
51
Подписчики
Отправить сообщение

P5 -- не архитектура, а микроархитектура. Ну а архитектура у Пентиумов та же самая, что и у 80386, 486, Пентиумов-2-3-4 и Коре, и официально она называется IA-32.

Причём микрокод, конвейер и суперскалярность друг другу не противоречат.

Сам злостный ностальгатор и фанат PDP-11, исключительно красивая штука

Как по мне, самая лучшая по совокупности факторов система команд маленькой 16-разрядной машины.

А вот 32-разрядный VAX-11 с той же идеологией я считаю неудачным решением. DEC его позиционировала как "супер-мини", но в результате получилось и не супер, и не мини: слишком дорогой и сложный по сравнению с PDP-11, но при этом имеющий низкую производительность без каких-либо шансов на её кардинальное увеличение. Основная причина -- сложное кодирование команд с длиной кода команды от 1 до 36 байт. Вот попробуй сделать даже не суперскалярный, а просто конвейерный процессор с такой кодировкой :)

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

Но вот группа MIPS/Хеннесси в Стенфорде в 1978-1980 показала, что большинство сложных инструкций редко используются,

Ага, и именно поэтому у современных RISC-процессоров бывают сотни, а то и тысячи команд -- вне всякого сомнения, все они очень широко используются :)

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

А нет ли реальных исследований, который показывают, насколько быстро выполняется какое-нибудь шифрование AES и т.п. на "обычном" RISC-процессоре с помощью обычных команд и на, скажем, процессоре современного мэйнфрейма IBM, где такое шифрование -- это одна команда? (ну хорошо, две команды: шифрование идёт порциями, и после каждой процессор приостанавливает команду шифрования, давая возможность программе проанализировать, не следует ли ей отвлечься на что-то другое, поэтому для шифрования всех данных после команды шифрования нужен ещё условный переход на команду шифрования).

сишная конструкция p++ = q++ делается одной инструкцией процессора

А в ARMах она делается двумя командами процессора, например:

LDR  R0,[R1],#4
STR  R0,[R2],#4

В плане автоинкремента-автодекремента он даже гибче, чем PDP-11 (вот косвенного автоинкремента/автодекремента нет -- но они почти никогда и не нужны были, особенно косвенный автодекремент, который в VAX-11 выкинули вообще).

Когда копировал, а когда и очень существенно переделывал. Скажем, КР1810ВМ86М поддерживает не только все команды 8086, но ещё и команды 80186/286 вроде PUSHA/POPA, а также совместно с внешней микросхемой обладает способностью адресовать больше мегабайта памяти (своего рода недо-MMU).

В реальной реальности прошлого, учитывая очень небольшой объём доступной оперативной памяти (нередко порядка 30 Кбайт на всё про всё, а то и меньше), таблицы символов и т.д. и т.п. хранили во внешней памяти -- на дисках и/или лентах. Работало всё, конечно, очень медленно -- но работало.

Редко, но бывает, что нельзя сразу написать освобождающий код. В таком случае лично я сразу же пишу TODO в точке выделения про то, что надо слепить освобождение -- ну и время от времени проверяю, какие TODO у меня имеются. Помогает от склероза :)

Вообще, можно создать компилятор без динамического выделения памяти; так писали, например, компиляторы Фортрана на самом Фортране в 1960-70-е (у тогдашнего Фортрана динамической памяти нет в принципе, насчёт современных версий ничего не скажу). Но это, скажем так, весьма геморройно :)

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

Кстати говоря, а М-20, М-220, БЭСМ-3 и БЭСМ-4 в плане программирования -- совсем-совсем разные машины? Или некая степень совместимости на уровне машинных команд и т.п. имеется? (Система 360 -- первый случай официального анонса будущей программной совместимости, но де-факто разные, но совместимые машины к тому времени уже иногда встречались, вот и интересно, не являются ли таковыми и указанные советские).

Хм... А с какой радости информация на магнитном барабане не сохранялась-то? Он же магнитный, как и диск с лентой, и предназначен же как раз для хранения информации... (ну, были извраты вроде использования барабана в качестве ОЗУ на "уралах", но и там информация никуда без питания не терялась -- просто это были не файлы, выражаясь современным языком, а содержимое ОЗУ машины).

Насчёт мировой новизны сказать ничего не могу: не знаю, как у них было на тот момент, но частота АЦП и сейчас выглядит весьма немаленькой, а уж в начале 1980-х... Похоже, Ваша диссертация была таки реально научной работой, а не как нередко бывает, увы.

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

А откуда тогда браться интересующимся такой техникой? Очень многое ж в школьном или даже дошкольном возрасте формируется. Я, например, увлёкся электроникой в 6 лет (мама "радиокубики" купила), потом всякие разные радиоприёмники (этого хватало), быстро по книгам разобрался с релейной автоматикой (в ~10 лет удивил пришедших ремонтировать лифт мужиков, сообщив им, какая релюшка не работает -- у меня была пара книг по лифтам со схемами, в т.ч. той модели, что стояла в нашем доме, так что я на слух всю его работу знал, мы жили на последнем этаже и из прихожей все шелчки были отлично слышны). Компьютер увидел в 13 лет в школе (Агат), ну а первые цифровые микросхемы для меня украли на ВЦ одного вуза из ЗИПа тамошних ЭВМ, когда мне было 14 и я учился работать на СМ-4 (удалось договориться матери, она преподавателем в вузе была, хотя в совершенно другой области) -- до этого был знаком с этой темой исключительно по книгам. Позднее я и сам воровал их из ЗИПа по месту работы. Ну а покупать возможность появилась лишь перед распадом СССР, да и то не везде (в Москву приезжал -- покупал на тогда ещё Тушинском радиорынке). Вот и читай в таких условиях переводы американских книг типа Хоровица с Хиллом про то, что в вашу Мухосрановку-на-Аляске заказать тоже можно, но доставят за 3 недели, а не за 3 дня, как в Нью-Йорк :)

В общем, достаточно погано было в СССР с условиями для подобного творчества, к сожалению...

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

Ну так TI и сейчас продолжает производство изрядной части своей серии SN74 (которая у нас стала 155-й) -- а она родом тоже из 1960-х.

Замечу, что на микроконтроллерах -- в частности, на упомянутом ядре Cortex-M4 -- обычно нет проблем с промахами мимо кэша за отсутствием самого кэша. Он имеется у наиболее мощных микроконтроллеров (например, обычно присутствует у Cortex-M7), но у более слабых его наличие -- редкость.

Ну а само наличие (или отсутствие) кэшей и их влияние на производительность учитывать точно стоит. В частности, именно из-за них неверно игнорировать размеры программ и данных по принципу "у современных ПК 100500 Гбайт ОЗУ, так что будем отводить под каждый bool не 1 бит, а 4 байта".

На самом деле, настоящий терминал -- это отдельная железка, которую использует человек для работы с машиной:

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

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

Перенос из 3-го в 4-й бит результата (из младшего полубайта в старший) необходим для десятичных операций. Если десятичные операции широкие (выполняются не над одной десятичной цифрой, а, скажем, сразу над восемью, закодированными в 4-байтовом слове), такие переносы нужны из каждой тетрады (полубайта).

Да можно было написать, что работает, например, на 777 ЭГц...

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

На это я отвечу, что Вы -- лжец, поскольку я:

  • не "хейтю" высшее образование, а лишь утверждаю, что для большинства профессий оно не является обязательным -- причём не является обязательным именно формальное образование (диплом), а не наличие знаний и умений;

  • не утверждаю на основе своего опыта, что "всем остальным оно тоже не нужно" -- мой опыт лишь указывает на то, что оно не для всех обязательно (и замечу попутно, что Ваш опыт ровно такой же "крайне ограниченный субъективный", как и мой);

  • не утверждаю, что ни у кого не получится получить знания в вузе -- хотя утверждаю, что научить невозможно, если человек не учится сам.

Так что это не у меня позиция неконструктивная, а Вы приписываете другим свои домыслы.

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

А вот у меня опыт близок к противоположному. Да, у тех, кто без диплома, зачастую хватает дыр -- но те из них, которые имеют живой интерес к самому делу (а не чисто к заработку), быстро навёрстывают недостающее, когда видят реальную в том необходимость. А дипломированные... Да, они нередко могут меня поучить высшей математике и куче другой теории, которую я либо забыл за отсутствием практической в ней необходимости, либо вообще не знал, но на практике зачастую самостоятельно ничего сложней условного Хелловорлда они сделать не в состоянии (а уж про сделать эффективно я вообще молчу) -- как раз потому, что изучали теорию без должного подкрепления практикой. Но да, ни с кем из вчерашних (а не 30-летней давности) выпускников МФТИ или Бауманки мне общаться не приходилось -- думается, среди них процент дипломированных идиотов будет поменьше, чем среди закончивших "обычные" вузы.

Заметьте, что Вы, по сути, как раз доказываете этим своим постом ненужность высшего образования в нынешнем его виде. Если "большинство студентов не осваивают даже 10% тех материалов" и "большинство студентов (да почти все 100%) совсем не заинтересованы в том, чтобы реально учиться ", зачем тогда вузы вообще нужны-то? И что это за преподаватели такие, которые "больше всего боятся хорошо подготовленных студентов, поскольку к занятиям с такими студентами приходится готовиться, изучать новое, быть готовым отвечать на сложные и каверзные вопросы"? Зачем нужно такое образование?

1
23 ...

Информация

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

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

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