расталкуйте как пользоваться мк

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: расталкуйте как пользоваться мк

Сообщение SII »

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

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

Кстати говоря, по сравнению с другими 8-разрядными процессорами система команд 6502 отнюдь не была упрощённой, а по разнообразию и гибкости видов адресации превосходила если не все, то большинство (в частности, безоговорочно превосходит 8080), поэтому этот вариант также отпадает. Хотя главное всё-таки в том, что РИСК -- это не просто сокращённый набор команд, а сокращённый вполне определённым способом (полный отказ от операций регистр-память и память-память, а также от любых команд со сложным алгоритмом исполнения, в частности от деления и -- на том этапе -- умножения) и с определённой целью: обеспечить максимальную производительность за счёт упрощения выборки, декодирования и исполнения отдельно взятых команд с применением конвейера (для него, собственно, и потребовалась фиксированная длина кода команды, иначе резко усложняется процесс выборки и декодирования команды). По сравнению с 16-разрядными 8086/8088 она, конечно, была более скромной, но сравнение процессоров принципиально разного класса попросту некорректно (в сравнении с 32-разрядным VAX-11 можно назвать сокращённой систему команд почти любого процессора, включая и тоже 32-разрядный, но появившийся лет на 10 позже 80386, и тоже 32-разрядные, но появившиеся намного раньше мэйнфреймы ИБМ, и 60-разрядные мэйнфреймы CDC -- весьма оригинальные машинки, весьма популярные в конце 1960-х -- начале 1970-х...; ну а если откинуть всякие SSE и тому подобные векторные расширения системы команд современных процессоров, то по богатству системы команд с VAXом вообще, пожалуй, никто не сравнится).
В те годы доступные для сборки компьютеры были на основе 8080. Получается, что я пересел на 8080 по вине обстоятельств.
Я несколько раньше столкнулся с 6502: в 1985 или 86-м, и активно имел с ним дело до 1989-го включительно, а потом эпизодически занимался "агатами" (главным образом чинил :) ). Второй машиной у меня были СМ ЭВМ (советские аналоги PDP-11) -- вероятно, наиболее удачные по системе команд 16-разрядные машины всех времён и народов. Потом уже были 8080, ЕС ЭВМ (аналоги ИБМовских мэйнфреймов), персоналки... В общем, после знакомства, причём весьма глубокого (с 15 лет де-факто системщиком работал на СМках, хотя юридически, конечно, был всего лишь сначала оператором ЭВМ, а потом -- техником-программистом, ведь без ВО в СССР занять инженерную должность невозможно было в принципе) с другими архитектурами 8080 произвёл на меня крайне неблагоприятное впечатление, ну а как я плевался, когда столкнулся с 8088, передать невозможно вообще никакими словами... Писать же на ассемблере 8080 пришлось на Роботроне-1715. Там вообще-то стоял Z80, но программы писались для одноплатных промышленных контроллеров на 8080, так что, можно считать, что работал именно на нём.
Реклама
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: расталкуйте как пользоваться мк

Сообщение Goldsmith »

SII писал(а):Понятное дело, что на 32-разрядном VAX-11 какая-нибудь вычислительная программа будет во много раз короче, чем на 6502: и разрядность в 4 раза выше, и умножение с делением имеются, и операции с плавающей запятой...
И плюс еще трехадресная система команд: например, в команде сложения можно было указать, что с чем сложить и куда поместить результат, не затрагивая слагаемые. И это при 13-ти режимах адресации для каждого из операндов без ограничений.

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

Жаль, что в процессе эволюции не всегда выживают лучшие.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Реклама
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: расталкуйте как пользоваться мк

Сообщение Goldsmith »

eufs писал(а):С бейсиком все понятно, но он в ПЗУ был, с асмом - тоже (можно че-то быстрое написать),а для чего был применим Си в Спектруме?
Сначала вспомним время пика популярности ZX Spectrum. Начало перестройки, новую ВАЗ-2109 свободно обменивают на трехкомнатную "хрущевку", а клон IBM PC AT286 стоит как 2-3 "девятки". Полноценная персоналка доступна лишь крупным предприятиям, где доступ к ней расписан в три смены. (Меня самого в те годы сманили из военного НИИ в частную фирму тем, что подарили фантастическую по тем временам 386-ю в приличной комплектации, устоять было просто невозможно).

В этих условиях по экономическим соображениям ZX Spectrum применяли не только как игровой/школьный компьютер, но и для реальных задач. Кое-где на нем даже вели бухгалтерию. У меня были многочисленные заказы на подключение Spectrum и к измерительным стендам, и к медицинскому оборудованию, и к коммунальной технике (всякие счетчики, расходомеры и т.п.).

Для всех этих задач требовалось разрабатывать программы. Чуть раньше SII весьма справедливо описал все "прелести" уродливой аритектуры 8080 и вытекающие из них все "прелести" столь же уродливой системы команд, а Z80 недалеко ушел от предшественника, хоть и был кое-в чем получше. Поскольку к тому времени у меня уже был многолетний опыт промышленного программирования на более серьезных компьютерах, я привык, решая прикладную задачу, думать именно о задаче, а не о жонглировании байтиками из регистра в регистр или ячейку памяти. Поэтому в большинстве случаев ассемблер отпадал, кроме тех случаев, где он действительно уместен (работа с оборудованием на нижнем уровне, критические по времени/объему секции кода и т.п.).

Вполне естественно, что выбор пал на С.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
eufs
Опытный кот
Сообщения: 772
Зарегистрирован: Вс апр 10, 2011 02:24:06
Откуда: г.Северодонецк

Re: расталкуйте как пользоваться мк

Сообщение eufs »

Goldsmith писал(а): ...Поскольку к тому времени у меня уже был многолетний опыт промышленного программирования на более серьезных компьютерах...
И наверняка на Си
Goldsmith писал(а): Вполне естественно, что выбор пал на С.
Просто Вы его уже знали к тому времени, когда пришлось писать программы на Спектрум.
Для решения большенства задач из тех, что Вы описали вполне достаточно было бейсика(для интерфейса)+ассемблерные модули.
Программирование на ассемблере не сводится к
...жонглированию байтиками из регистра в регистр или ячейку памяти.

Точнее - для кого как.
C0FFEE=‭12648430‬
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: расталкуйте как пользоваться мк

Сообщение ploop »

Я смотрю холивар уже затронул серьёзные вещи, и тут конца ему не будет. Давайте опустим.
Embedded-системы сильно отличаются от "взрослых" собратьев, и принципы разработки там совсем другие.
Реклама
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: расталкуйте как пользоваться мк

Сообщение Goldsmith »

ploop писал(а):Embedded-системы сильно отличаются от "взрослых" собратьев, и принципы разработки там совсем другие.
Не так уж сильно. Общих принципов и методик гораздо больше, чем мелких различий. Просто к embedded-программированию почему-то традиционно было принято относиться несерьезно, типа большая программа все равно не влезет, а маленькую можно и так сваять как попало. Промышленые технологии появились лет 5 назад, не более, и в литературе найти их пока непросто.

Но в теме для начинающих, да еще без особых планов на продолжение, обсуждать эти вопросы неуместно, тут полностью согласен.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
Реклама
eufs
Опытный кот
Сообщения: 772
Зарегистрирован: Вс апр 10, 2011 02:24:06
Откуда: г.Северодонецк

Re: расталкуйте как пользоваться мк

Сообщение eufs »

Вот-вот. Пора холивар заканчивать...
C0FFEE=‭12648430‬
Аватара пользователя
Goldsmith
Опытный кот
Сообщения: 736
Зарегистрирован: Пн янв 10, 2011 03:06:36
Откуда: Ростов-на-Дону
Контактная информация:

Re: расталкуйте как пользоваться мк

Сообщение Goldsmith »

На самом деле никаким холиваром тут и близко не пахнет. Холивар - это когда придурковатые фанаты спорят, что круче: Windows или Linux, ассемблер или С, PIC или AVR, красное или синее, православие или католицизм..., причем ни у кого нет разумных доводов, кроме луженой глотки (или неутомимых пальцев, если дискуссия письменная). А тут всего лишь разные мнения, причем подкрепленные какими-то обоснованиями.

Всегда интересно выслушать другую сторону и, возможно, что-то принять к сведению. Вполне вероятно, что я действительно упустил какие-то важные особенности принципов разработки firmware, и понимание этих принципов помогло бы мне в дальнейшей работе. Или, наоборот, поделился бы тем, что мне удалось раскопать в очень немногих толковых книгах и статьях на эту тему (не станете ведь возражать, что 99% книг по МК годятся лишь на кульки для семечек?), а также в процессе переписки с некоторыми корифеями в этой области.

Просто этот вопрос выходит далеко за рамки данной темы самого начального уровня. Но не торопитесь с расклейкой ярлыков, это вы всегда успеете: далеко не каждая точка зрения, альтернативная лично вашей, есть холивар.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
eufs
Опытный кот
Сообщения: 772
Зарегистрирован: Вс апр 10, 2011 02:24:06
Откуда: г.Северодонецк

Re: расталкуйте как пользоваться мк

Сообщение eufs »

Я никого не хотел обижать. Поступило предложение заканчивать. Давайте создадим отдельную тему типа CИ vs ASM или BASIC vs Си и продолжим, если есть о чем продолжать. Уже прозвучали нормальные доводы и аргументы, для тех кто не определился будет полезно. А холиваром тему назвали некоторые еще в начале.
C0FFEE=‭12648430‬
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»