Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет chistyakov ([info]chistyakov)
@ 2005-06-11 16:11:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Прежде, чем именовать себя программистом, надо знать, что такое ЭВМ
Стала ясной причина научно-технического невежества "программистов".

Оказывается, они не знают, что такое ЭВМ. Что для неё характерно? Что именно отличает ЭВМ от, например, термореле утюга? Почему программируемая логическая матрица (ПЛИС -- программируемая логическая интегральная схема, "плиска") не является ЭВМ, а самый захудалый микропроцессор является?

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

В приступе педагогической щедрости формулирую единственный существенный признак ЭВМ:

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

Это ВСЁ! И все чудеса, связанные с ЭВМ, проистекают из этого существенного признака и без него невозможны.

Остальное, включая даже прерывания, уже подробности. ЭВМ без прерываний -- тоже ЭВМ.

Теперь можно смело садиться программировать. Без мистики и фанатизма.
Бог в помощь, господа программисты! Знание -- сила.

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

{+}


(Добавить комментарий)

Мнэ-э-э...
[info]levsha@lj
2005-06-11 09:35 (ссылка)
Это называется "фон-неймановская архитектура", ЕМНИП.

(Ответить) (Ветвь дискуссии)

Re: Мнэ-э-э...
[info]psergant@lj
2005-06-11 09:38 (ссылка)
Фон-Неймановская и Гарвардская архитектура различаются только способами хранения кодов и данных.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Значит, спутал чего-то.
[info]levsha@lj
2005-06-11 09:50 (ссылка)
Требование последовательности выполнения команд сформулировал вроде бы фон Нейман, нет?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Не совсем
[info]psergant@lj
2005-06-11 10:47 (ссылка)
Машина фон Неймана (http://www.wikiznanie.ru/wiki/article/Машина_фон_Неймана)
Просто и та, и другая архитектура предусматривает последовательное выполнение команд. В контексте последовательности выполнения используется (у нас, по крайней мере) термин "машина фон Неймана". А термины "архитектура" - по отношению доступа к памяти.
Гарвардская
Image
фон-Неймановская
Image

(Ответить) (Уровень выше) (Ветвь дискуссии)

Ага.
[info]levsha@lj
2005-06-11 11:18 (ссылка)
Ну, я собственно, из-за совпадения имен собственных спутал. Спасибо за разъяснения.

(Ответить) (Уровень выше)

Re: Мнэ-э-э...
[info]ex_chistyak@lj
2005-06-11 09:50 (ссылка)
По-моему, да, у американцев. ЕМНИП, опять же:). Там у них ещё различают ЭВМ гарвардского и принстонского типа, в одной из них программа и данные хранятся в разных памятях, а другой -- в единой памяти. Фон-неймановская архитектура, по-моему, это где память едина. И в любой момент программа может быть обработана как данные, а данные использованы как программа.
Но всё это подробности.

Главное:
программа хранится в памяти и исполняется последовательно, но эта последовательность условно нарушаема.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Мнэ-э-э...
[info]tkatchev@lj
2005-06-11 11:51 (ссылка)
Ужасаюсь преставить, что будет, когда вы узнаете про нейронные сети.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Мнэ-э-э...
[info]ex_chistyak@lj
2005-06-11 12:10 (ссылка)
>...когда вы узнаете про нейронные сети.

Я про них знаю. Ещё ничего не случилось пока. А чем опасно это знание?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Это очень,
[info]psergant@lj
2005-06-11 14:31 (ссылка)
очень опасное знание для неподготовленного ума. Незрелый ум, овладевший этим знанием, считает, что он знает ответы на все вопросы Вселенной, и может решить любую задачу, используя это знание. Кроме того, он уверен, что ретрограды овладеть этим знанием не могут, ибо они, как и сказано - ретрограды. Когда я закончил институт и пришел на работу, мне попалась новенькая книга об алгоритмах адаптивной фильтрации, явно написанная неретроградом. Между тем, начальник мой был явный ретроград, и не хотел даже слышать о том, чтобы использовать облюбованный мной алгоритм в разработке. А еще полный тезка автора книги!
Потом чуть со стыда не сгорел.

(Ответить) (Уровень выше) (Ветвь дискуссии)

:)
[info]ex_chistyak@lj
2005-06-11 15:46 (ссылка)
Наш жизненный опыт близок, оказывается. Я тоже молодым занимался фильтрацией. Конкретно, нединейной фильтрацией, в стиле Кульмана-Тихонова. Очень эффективный матаппарат для синтеза всяких следящих колец с комплексированием от разных датчиков. Главное, не абсолютизировать. Но по молодости чего только не нафантазируешь. Хорошо, ретрограды кругом:)

Кстати, пара фильтров на том матаппарате у меня в автопилоте считается среди прочего:)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Э-э-э?
[info]psergant@lj
2005-06-11 16:02 (ссылка)
Калмана?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Э-э-э?
[info]ex_chistyak@lj
2005-06-11 16:29 (ссылка)
Не-а. Калман-Бьюси -- это частный случай нелинейной фильтрации при линейной связи сигнала с оцениваемыми параметрами.
Именно КУльман, через "У". Николай, отчество забыл, Карлович, кажется, русский немец. Он в МИЭМе в70х..80х преподавал. Василия Ивановича Тихонова-то Вы знаете, ясно дело. "Статистическая радиотехника", "Выбросы случайных процессов"... Он в Жуковке преподавал. Большой авторитет.




(Ответить) (Уровень выше) (Ветвь дискуссии)

В.И.Тихонова
[info]psergant@lj
2005-06-11 16:48 (ссылка)
я только по книге знаю. И то - в сети. Стыдно.
Статистическая радиотехника (http://dsp-book.narod.ru/tichSTR/tichSTR.htm)
Но в любом случае я бы на его лекции не попал, я в институт только в 80-м поступил.

(Ответить) (Уровень выше)

Re: Э-э-э?
[info]leonid_@lj
2005-06-14 13:09 (ссылка)
о, фильтр Калмана на незрелый мозг действует страшно. я им в 1991-1992 прогнозировал вероятность инициирования разряда молнии при вхождении самолета в предгрозовое облако, и еще цены на водку в ближайшем магазине.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Э-э-э?
[info]ex_chistyak@lj
2005-06-14 13:34 (ссылка)
Не-а. Я ещё на рубеже 70-80х переболел этой ветрянкой. "Голос Америки" нелинейным фильтром принимал. Получалось. Но хуже, чем обычным приёмником.

:)

(Ответить) (Уровень выше)

:)
[info]psergant@lj
2005-06-11 09:37 (ссылка)
А кто такие носители идеологии "виртуальных машин"?

(Ответить) (Ветвь дискуссии)

О носителях вируса идеологии "виртуальных машин"
[info]ex_chistyak@lj
2005-06-11 10:41 (ссылка)
Это практически все "программисты". Что делают и как понимают (это, правда, редкость уже)?

1. На реальном "железе" ЭВМ (машины) программист №1 пишет некоторую программу -- операционную систему.
2. Программист уже работает не с реальным "железом", а с виртуальной машиной=реальная машина+ОС. В ассемблере появляются виртуальные команды, которых в реальной машине нет, а виртуальная, их понимает. То есть понимает-то виртуальные команды ОС, которая такие команды "эмулирует", то есть заставляет железо выполнить некоторую последовательность реальных команд, эффект от которых эквивалентен попавшейся виртуальной команде. Работа программиста облегчилась. Пока всё хорошо...
3. Далее приходит ещё программист №3 и пишет транслятор с языка высокого уровня, опираясь на виртуальную машину достигнутого уровня. Кстати, транслятор с языка может быть написан совсем на другой машине, скорее всего, на персоналке. Транслятор (компилятор) переводит текст языка высокого уровня на ассемблер виртуальной машины (реальная+ОС) или прямо на машинный язык. Теперь работа программистов №4 и последющих облегчилась радикально. Программисты пишут на языке высокого уровня, транслятор всё это переводит, ЭВМ исполняет, программисты борзеют. Ведь у них появилась лёгкая в овладении виртуальная машина=реальная машина+ОС+транслятор с языка высокого уровня. Для программиста, если язык алгоритмический, такая машина выглядит всё ещё как устройство, последовательно выполняющее программу.
4. Потом приходит целая толпа программистов, которые пишут всё новые языки и программы на них. Степень виртуальности повышается, степень понимания сути снижается, надёжность катастрофически уменьшается...

.....
Очередная виртуальная ЭВМ выглядит как штука куда надо тыкать мышкой, а она всё сделает.

Типа так.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Такого
[info]psergant@lj
2005-06-11 11:00 (ссылка)
народу не надо. Народу некуда тыкать мышкой - у народа необслуживаемые системы.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Почему же не надо?
[info]ex_chistyak@lj
2005-06-11 11:44 (ссылка)
В итоге, допустим, виртуальная ЭВМ становится такой: сюда воткнуть видеокабель, сюда воткнуть интерфейс от диска. На диске будет писать видео в цифре кольцом. Чем не виртуальная машина? Хорошая, если у кого потребность такая есть.

Просто причина возникновения этого обсуждения такова. Когда нарастает много слоёв вот этих виртуальных машин, то люди просто перестают понимать, что там внутри происходит в реальности. И даже отрицают принцип последовательного исполнения программы. Говорят, она сама всё сразу делает:) Если же мы жаждем надёжности, то не следует громоздить много виртуальщины. По возможности надо быть ближе к реальному железу ЭВМ и её окружения. Степень достоверности описания железа, как правило, гораздо выше, чем у программ, создающих эти слои.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Если бы
[info]psergant@lj
2005-06-11 13:57 (ссылка)
молодые специалисты моего отдела услышали эту фразу "Степень достоверности описания железа, как правило, гораздо выше, чем у программ" они бы решили, что речь идет об одном из языков описания аппаратуры - VHDL или VERILOG, и немедленно бы ткнули носом меня, старого, тупого и ограниченного ретрограда, об этих языках не подозревающего.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Смешно
[info]ex_chistyak@lj
2005-06-11 15:18 (ссылка)
Языков наплодили, виртуальщики хреновы. Я даже и не подозревал, что такие есть. Наверное, для автоматизации проектирования опять же? Чтобы совсем тупые могли быстро работать.

Я больше люблю когда на русском:)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Ага.
[info]psergant@lj
2005-06-11 15:34 (ссылка)
Есть. Для автоматизации? С одной стороны это верно. С другой - это просто несколько другой взгляд на проектирование аппаратуры, вызванный небывалым приплодом программистов и объемностью проектов. Эти языки описывают поведенческую модель схемы, почти как ТЗ. У себя мы нашли, как я думаю, приличный компромисс - пишем на этом языке функциональные блоки и объединяем их на уровне схем. Тут есть небольшое затруднение - объем ПЛИС столь велик, что практически все функции изделия сосредоточены в нескольких микросхемах. Соответственно, Э3 и Э4 не дают возможности представить работу устройства, они только дают возможность регулировщику обеспечить соответствие железа схеме. Собственно регулировка происходит на уровне САПР, т.к. 99% схемы находятся внутри ПЛИС.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Ага.
[info]ex_chistyak@lj
2005-06-11 15:56 (ссылка)
Ясно.

Насчёт понимания изделия по электрической схеме аналогично. Ушли давно те времена:(. У меня не плиски, а микропроцессоры. Вся суть -- в программах. А схемы только для того, чтобы печатные платы развести.
Для понимания сути дела теми, кому читать программу не под силу (а это, считай все:) пользуемся таблицами решений, рисунками, просто таблицами и просто текстом на русском языке. Взял я сейчас ещё моду гипертексты писать, типа локальных сайтов со ссылками делать. Что-то удобно, а что-то нет. Проблема:( Документирование сложных вещей всегда проблема... Если не для военпредов по ГОСТу, конечно, а для людей, которым с этим работать.

{+}

(Ответить) (Уровень выше)

...практически все функции изделия сосредоточены в нес
[info]ex_chistyak@lj
2005-06-11 15:57 (ссылка)
А Вам не говорили ещё: "Да у Вас же там ничего нет!" Это чтоб денег не платить:)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Было:)
[info]psergant@lj
2005-06-11 16:13 (ссылка)
Когда мы пять лет тому ужали систему управления одной заводской железякой с трех стоек (одна из них - СМ-4) до одной 19" корзины 3U в Евромеханике. Большую ее часть занимал резервированный блок питания с аккумулятором.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Было:)
[info]ex_chistyak@lj
2005-06-11 16:39 (ссылка)
Это что! У нас вот вся система бортового оборудования управления (БОУ) ДПЛА весит 200 г с навигацией, автопилотом, траекторным управлением, двумя командными и одной телеметрической радиолиниями. Когда заглядываают в чрево ДПЛА ГрАНТ, то БОУ не сразу замечают. Пусто там. Реально пусто во чреве... Очень негативно многие воспринимают:).
А 19 дюймовая стойка у нас тоже есть:). В наземке.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Было:)
[info]psergant@lj
2005-06-11 16:54 (ссылка)
А телевизионное оборудование? Или оно как полезная нагрузка?
Да, 200 г - это сильно. Очень сильно.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Было:)
[info]ex_chistyak@lj
2005-06-11 17:29 (ссылка)
ТВ мы именуем "целевая нагрузка". Так повелось с первого советского ДПЛА "Пчела". Что это значит, каждый толкует по-своему. Я толкую так, что это то, что мы несём, чтобы работать по цели.
А структура БРЭО ДПЛА, как мы его делим, именно такова:
БРЭО=БОУ+целевая нагрузка
ну, а дальше ниже:
БОУ=САУ+программно диагностическая ЭВМ
САУ=материнская плата+микроЭВМ "Котлета-2"+измерительная плата... и т.д.

А 200 г, да. Лет пять назад это было действительно сильно. Сейчас и 20 г принципиально возможно сделать. Если бы я владел электронной промышленностью! А так не хочется залезать слишком на передовую элементную базу, мало ли... Диктовать начнут. Я принципиально пользуюсь только общедоступной и массовой комплектацией, причём чем она проще, тем лучше. Не люблю зависимости.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Было:)
[info]psergant@lj
2005-06-11 18:17 (ссылка)
20г - это повод подумать о микроДПЛА. Кстати, это Вы имеете ввиду установку кристаллов без корпусов?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Было:)
[info]ex_chistyak@lj
2005-06-12 02:33 (ссылка)
>...кристаллов без корпусов?

Это да, в первую очередь. Хотя я не знаю, как это делается, и где брать голые кристаллы. Опыта такого у меня нет ещё. Поделитесь?

Но есть ещё одна проблема. У нас весь продольный канал управления основан на высокоточном колебательном баровысотомере (разр. способность ~10 см). Это такой бочонок массой 30 г. Вот бы его загнать в микромеханику, то есть изготовить такой же, но из кварца и маленький. Требуется, конечно, разработка и испытания. Тут денег надо до фига, а фиг кто даст.

А таки да. МикроДПЛА. Мы бы и уже сечас могли б сделать массой до 1 кг, с пьезобариком, конечно. И с упрощённой САУ.

{+}

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

(Комментарий удалён)
Re: Было:)
[info]ex_chistyak@lj
2005-06-12 17:48 (ссылка)
Спасибо. Очень информативно. Много думай пошла.

Так Вы таки на "Новой" работаете. Это платформа электрички так называется, я вижу Вы не поняли меня:). Эту контору так и называли в других ведомствах: "на Новой". А ещё -- "Гусев-Рязанский" (директор -главный инженер) :).

А НИИРС, это который на Нижегородской? Или то МНИИРС? Терпеть не могу аббревиатур. Ни уму, ни сердцу. Лучше уж народные названия, или п/я А-1251, что ли. Я все п/я знал, с которыми сталкивался, не поверите:)

Хорошо, спасибо.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Ага.
[info]psergant@lj
2005-06-12 19:33 (ссылка)
Рядом с Птичьим рынком.
Насчет платформы "Новой" - да, но не знал, что так называется по платформе. Сами мы люди не местные. Беженцы, блин.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Ага.
[info]ex_chistyak@lj
2005-06-13 01:07 (ссылка)
>...Сами мы люди не местные

А местные обычно и не знают народных названий фирм, на которых они работают. Они же этими названиями не пользуются и говорят про неё просто "фирма" или "контора". "Сухие" называют себя "фабрика [полусухого]", например.
У нас себя называли "Кулон", потому что было внятное словесное имя корабельного типа, а не АБВГД.

(Ответить) (Уровень выше)

А я вот...
[info]levsha@lj
2005-06-11 09:58 (ссылка)
работаю с такой фиговиной как PLC. Куды ее отнесть?

(Ответить) (Ветвь дискуссии)

А что это, PLC?
[info]ex_chistyak@lj
2005-06-11 10:16 (ссылка)
Плиска, что ли? Я плиски именую устройствами жёсткой логики. Хотя их можно перегпрограммировать. В смысле поменять внутреннюю схему.

Проверьте по определению:)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]levsha@lj
2005-06-11 10:47 (ссылка)
Programmable Logical Controller(s). Применяются главным образом в промавтоматизации. Такой себе ящик, к нему подключаются датчики, исполнительные механизмы, операторские терминалы и по коммуникациям -- писюги и/или другие контроллеры. Входы: по необходимости дискретные и/или аналоговые. Имеет сколько-то памяти для программы и данных, флешку для скидывания данных в случае экстренного отключения. У большинства (кроме специализированных самоделов и самых маленьких и простых моделей) модульная структура: модули расширения ввода/вывода, памяти, управления специфическими объектами, обсчитывания всякой чистой логики.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)

Это ЭВМ. Однозначно
[info]ex_chistyak@lj
2005-06-11 11:18 (ссылка)
Может быть, даже несколько ЭВМ. Скорее всего несколько. Раз есть программа, исполняемая(!) последовательно, то там есть и ЭВМ.

Многозадачность ЭВМ достигается только двумя путями: пространственным, когда применяется несколько ЭВМ, пусть в одном корпусе и даже на одном кристалле, и временным, когда единственная ЭВМ поочерёдно исполняет то одну программу, то другую, то третью. Можно, конечно, и сразу оба метода применить.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Ага.
[info]levsha@lj
2005-06-11 11:25 (ссылка)
А внутре у ней неонка, ага. Т.е. ЭВМ там есть, и не одна (процессоров точно не один, и от разных производителей к тому же), но мы сильно глубоко не копали (фирма гарантирует надежность железа и фирмваре; ОС там закрытая и проч). Я просто хотел сказать, что ваше определение ЭВМ всякие многозадачные расширения вроде как исключает. Ну, или не принимает в рассмотрение как метасистему над ЭВМ.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Ага.
[info]ex_chistyak@lj
2005-06-11 11:48 (ссылка)
Угу. ЭВМ последовательна принципиально. Бывает много вместе работающих ЭВМ. Бывает, что они ещё и на одном кристалле. Ну, и что, правда?

(Ответить) (Уровень выше)

Re: Это ЭВМ. Однозначно
[info]potan@lj
2005-06-14 07:22 (ссылка)
А как быть с архитектурами, где один процессор распределяет задания, а несколько их выполняют. Это одна ЭВМ или несколько?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Это ЭВМ. Однозначно
[info]dtmf_1@lj
2005-07-04 06:36 (ссылка)
Это уже кластер:)))))))

(Ответить) (Уровень выше)

А это смотря
[info]psergant@lj
2005-06-11 10:30 (ссылка)
что Вы в нее грузите. Мы, например, помимо жесткой логики (жестких вычислителей) грузим и структуры и DSP, и управляющие процессоры. А есть матрицы, где уже на кристалле размещены ядра процессоров - 32 бит голдфайер, например, или 68000.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Тогда плиска становится ЭВМ
[info]ex_chistyak@lj
2005-06-11 10:43 (ссылка)
Если там есть процессор, способный выполнять заложенную в памяти программу, команда за командой...

(Ответить) (Уровень выше) (Ветвь дискуссии)

Конечно, становится,
[info]psergant@lj
2005-06-11 10:57 (ссылка)
но только частично. Мы это называем вычислительной системой - там полно как параллельных вычислителей - например, цифровые фильтры, которые выполняют всего одно действие с последовательностью данных, так и последовательные вычислители, действующие по загружаемой в память программе. Но это один из вариантов - максимально толстый. Это внедрение процессоров в матрицы. Есть еще подход - на кристалл контроллера - AVR навешивается логика ПЛИС. Это так называемая SoC система на кристалле. Думаю, где-то они встретятся.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Конечно, становится,
[info]ex_chistyak@lj
2005-06-11 11:34 (ссылка)
Это у Вас там несколько ЭВМ с внешними (по отношению к архитектуре ЭВМ, а не к её корпусу:)жёстким устройствами.

>...цифровые фильтры, которые выполняют всего одно действие с последовательностью данных

А что за действие? Вопрос не связан с темой:).

(Ответить) (Уровень выше) (Ветвь дискуссии)

Совершенно примитивное.
[info]psergant@lj
2005-06-11 14:07 (ссылка)
Y:=Σ(k(i)*X(i))
выполняемое одновременно по всем i.


(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Совершенно примитивное.
[info]ex_chistyak@lj
2005-06-11 15:25 (ссылка)
Не совсем понял. А Y -- это тоже Y(i)? Или сумма произведений k(i)*X(*)? Каков высший смысл такой фильтрации?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Совершенно примитивное.
[info]psergant@lj
2005-06-11 15:53 (ссылка)
Это основная операция фильтра с конечной импульсной характеристикой. Алгоритм такой -
1. получаем одно число из внешнего устройства и задвигаем его в регистр сдвига, каждая ячейка которого может хранить многоразрядное число. Ячеек в таком регистре может быть от двух до нескольких сотен, в зависимости от задачи.
2. Умножаем число X(i) в каждой ячейке регистра (i) на некий коэффициент k(i), жестко связанный с номером ячейки регистра.
3. суммируем все произведения в одно число и выдаем наружу.
Все эти операции делаются за один такт для неочень скоростных устройств (тут проще применисть сигнальный процессор) или с помощью конвейера, где каждое устройство выполняет только одну функцию, в том порядке, в котором я перечислил.
Общий смысл этого действия следующий - любой фильтр имеет т.н. импульсную характеристику - отклик на воздействие дельта-импульсом. Если мы представим входной сигнал, как непрерывную последовательность дельта-импульсов с разной амплитудой (Котельников), то выходной сигнал будет равен сумме откликов на каждый такой импульс. Так вот, коэффициенты k(i) и есть записанная импульсная характеристика фильтра.
Вообще, функция Y:=Σ(k(i)*X(i)) это краеугольный камень всей цифровой обработки сигналов. С помощью этой же вункции вычисляется и одно значение корелляционной функции сигнала, записанного в регистр сдвига и опорного сигнала, представленного последовательностью коэффициентов.
Ничего сверхъестественного.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Совершенно примитивное.
[info]ex_chistyak@lj
2005-06-11 16:20 (ссылка)
(краснея) Значок суммы поперву не разглядел. Я вообще-то РТФ МЭИ заканчивал...
Спасибо.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Прошу прощения.
[info]psergant@lj
2005-06-11 16:35 (ссылка)
Привычка к проповедям сработала. У нас те, кто занимается автоматическим управлением, не хотят признавать что управление - то же цифровая! обработка! сигналов! Что есть ересь:), ибо аналоговых систем уже нету.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Прошу прощения.
[info]ex_chistyak@lj
2005-06-11 17:10 (ссылка)
Я управление и измерение не разделяю. Для меня это одна и та же наука. А аналога да, уже практически нету нигде. У нас в комплексе телевизионный канал аналоговый только остался. Но я не хочу его на цифровой менять, потому что аналоговый оказывается энергетически выгоднее. Ну, конечно, датчики некоторые на борту аналоговые по своему принципу действия, но их сигналы оцифровываются не далее, чем в 1 см от датчика:).

(Ответить) (Уровень выше) (Ветвь дискуссии)

Завидно мне.
[info]psergant@lj
2005-06-11 17:21 (ссылка)
Мы-то, по основной специальности (та стойка, о которой я говорил, это, можно сказать, халтура - подработка во славу рыночной экономики) нам приходится иметь дело с железками, которые разработали наши предшественники, в те времена, когда цифровой обработки не было. Поэтому датчики находятся дальше, чем хотелось бы, но качество их исполнения и работы изумляет.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Завидно мне.
[info]ex_chistyak@lj
2005-06-11 18:10 (ссылка)
Понятно. Вы, как я понял, работаете на большой советской фирме. Там с новизной туго теперь стало. Потому что денег много надо. Нам-то легче. Не так уж всё и дорого, на самом-то деле, и спрашивать разрешения ни у кого не надо.
А советскую инженерную школу я тоже очень ценю. Я сам родом оттуда.

Ну, спокойной ночи, ложусь. Спишемся ещё. Есть у меня одна мысль по Вашей части.

(Ответить) (Уровень выше)

По первому вопросу.
[info]psergant@lj
2005-06-11 14:19 (ссылка)
Да, несколько. Около десяти штук. Начиная от совсем примитивных - выполненные на PIC12C625 устройстве управления синтезатором частоты и заканчивая парой "Шарков", считающих баллистику.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: По первому вопросу.
[info]ex_chistyak@lj
2005-06-11 15:30 (ссылка)
>...считающих баллистику...

О! Наши пошли! Секрет небось? А то интересно, что это, люблю я такие штучки всякие.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Все это для народного хозяйства.
[info]psergant@lj
2005-06-11 15:59 (ссылка)
Я такие штучки тоже очень люблю.

(Ответить) (Уровень выше)

Мн-э-э...
[info]levsha@lj
2005-06-11 11:45 (ссылка)
Это у вас однокристалльные контроллеры?.. Я не по той части.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Мн-э-э...
[info]ex_chistyak@lj
2005-06-11 12:08 (ссылка)
Однокристальные микроконтроллеры у меня используются. Несколько штук на каждый ДПЛА. А что значит "не по этой части"?

(Ответить) (Уровень выше) (Ветвь дискуссии)

"Не по той части..."
[info]levsha@lj
2005-06-11 12:11 (ссылка)
потому что они у меня Большие и Многокристалльные. Ну ЭВМ, в общем. PLC просто часто путают с монокристаллками из-за синонимичности -- и то, и другое "контроллер".

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: "Не по той части..."
[info]ex_chistyak@lj
2005-06-11 12:58 (ссылка)
Угу. У Вас там в этой плиске не ЭВМ, а целая система, содержащая много всяких ЭВМ и др. устройств. Что значит, что Вы ей и занимаетесь? Вы её к какой-то задаче приставляете?

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

{+]

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]levsha@lj
2005-06-11 13:59 (ссылка)
Автоматизацией техпроцессов занимаемся. Прокатные станы, разнообразные конвейеры, коксотушильные вагоны и прочая, и прочая. Просто в нашей области лабать на коленке каждый раз решение выходит довольно дорого, а экономия на желзе съедается за счет глюков, которые находятся постфактум в процессе эксплуатации. Соответственно, легче взять за основу хорошо изученный и обкатанный контроллер и его уже совать куд ни попадя. Просто не под всякую задачу это подходит, да и в пиэлсишном семействе не без урода.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-11 15:11 (ссылка)
Я понял. Так у Вас принято. Мне бы всё-таки не хотелось утрачивать "право первородства". Хочу всё знать:). И ни от кого не зависеть.

Кстати, "лабать на коленке" необязательно. Можно просто "свою линию гнуть", развивать свой собственный инструментарий из года в год, а когда возникает нужда, то быстро его применять. Надо только всё время нарабатывать, нарабатывать, нарабатывать заделы. Впрочем, жизнь конкретна.

Вообще-то наши задачи близки. Одна область. Управление объектами реального мира. Это, конечно, не колготки на складе учитывать, чем занимается большинство "программистов".

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

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]rocket_surgeon@lj
2005-06-12 04:22 (ссылка)
Первый настоящий микропроцессор 4004 был продолжением линии каких то полузаказных ASIC для прокатного стана или чего то в этом роде. Насчет программируемой логики: четкая граница между автоматами (statefull machines) и комбинаторными устройствами проходит по критерию наличия/отсутствия обратных связей. Т.е. в общем случае следует классифицировать например ROM с обратными связями и клокингом - как настоящий компьютер. Еще. В предложенном определении компьютера не упоминается ввод/вывод. В таком случае это скорее определение машины Тьюринга, что есть не совсем компьютер.

(Ответить) (Уровень выше)


[info]nyq@lj
2005-06-11 12:58 (ссылка)
Э-э-э, маленькая поправочка:
"плиска" называется так потому что она ПЛИС - Программируемая Логическая Интегральная Схема, по-английский она сокращается как (F)PGA - (Field) Programmable Gate Array, а не как PLSS

(Ответить) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-11 13:17 (ссылка)
Да-да, Вы правы. Меня сбило с толку ещё сокращение PLC (см. в комментах).
Удаляю фигню:)

(Ответить) (Уровень выше) (Ветвь дискуссии)

И такое есть.
[info]psergant@lj
2005-06-11 14:13 (ссылка)
Программабле лоджик сёкетс.

(Ответить) (Уровень выше)


[info]vilife@lj
2005-06-11 14:59 (ссылка)
где же тут всунуться с комментом ?
ни одного знакомого слова -)

определение признака очень порадовало
исключительно педагогическое -)

(Ответить) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-11 15:19 (ссылка)
Спасибо за комплимент:). А почему ни одного слова не понимаешь? Устала, наверное?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]vilife@lj
2005-06-12 11:43 (ссылка)
Надеюсь, не очень разочарую сказав, что на первом курсе схлопотала тройку по информатике. Думаю, имея в запасе сформулированное правило, я бы не ударила в грязь лицом уже тогда -)
Немного устала от перенасыщенной жизни. Но как же иначе, коль есть возможность себя проявлять изо дня в день -)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-12 12:43 (ссылка)
Смотри, не растраться. Отдыхать тоже надо. Я вон в санатории реабилитируюсь. В Переделкино, где Чуковский свои сказки писал:)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]vilife@lj
2005-06-12 13:14 (ссылка)
Спасибо !
На мой счет можно не волноваться, я из подзарядных батареек: много работаю, много отдыхаю, много ем, много сплю.
Доброго отдыха, Маленький Комарик ! -)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-12 15:13 (ссылка)
Спасибо. Но берегись всё равно. Батарейки кончаются иногода. У меня уже третий отказ, инфаркт:)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]vilife@lj
2005-06-14 17:55 (ссылка)
Спасибо. Понимаю. Хрупкая уж очень. Одной бравадой и голым оптимизмом выживаю -)
Ух. Серию отказов пора прекращать. Дорогу согласию!

(Ответить) (Уровень выше)


[info]rocket_surgeon@lj
2005-06-12 03:20 (ссылка)
Вижу Вы сильно обижены на каких-то программистов. Посему возникли мысли о пользе абстрактно "программистского" образа инженерного мышления. Есть ли таковая польза вообще. Почти никогда не приходится заниматься чистыми паттернами и алгоритмами для обработки идеальных структур, каждый программист это специализированный эксперт в прикладной области. Суть претензий адресованных "программистам" со стороны "настоящих" инженеров в упреке за незнание что такое машина. Я и сам готов упрекнуть тех из программистов, которые не знают про регистры CPU, прерывания и прочий низкий уровень. Но и великого вреда от незнания низкого уровня нет. Что замечательно в западной computer science и всей компьютерно-железячной истории, в противоположность отечественной авиапромышленности например - так это триумф индустриализма.

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

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

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

Compatibility - backward and forward, Reusability, Plug-n-play, и еще всякого такого из словарей - это чему авиа КБэшникам надо поучиться у программистов.

(Ответить) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-12 04:03 (ссылка)
Спасибо за обширный комментарий. С интересом его прочитал. Отвечать подробно не буду уж, извините, сейчас дела, а потом забудется всё, увы. Вы можете у меня в ЖЖ ещё посмотреть, там грызня с "программистами" у меня периодически вспыхивает:). Мои позиции довольно ясно, по-моему, там обозначены.

>...И детали собирали как обычно доколочивая мягкими молотками чтобы края раскроеных деталей совпадали

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

{+}

(Ответить) (Уровень выше)


[info]jayrandom@lj
2005-06-27 08:53 (ссылка)
Мне кажется, пример с виртуальными машинами неплохо перекликается с концепцией Иерархии Лингвистик (http://www.tertia-roma.ru/gematrii.html). ("Кто-то изобретает молотки, а кто-то ими гвозди заколачивает").

Может быть даже стоит включить этот пример в статью - я поговорю с Мишей.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]rocket_surgeon@lj
2005-06-27 21:39 (ссылка)
Еще жив структруальнейший из лингвистов некто Хомский. В каком-то унивеситете в Массачусетсе работает. Засоряет незрелые головы социализмом

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]jayrandom@lj
2005-06-28 04:15 (ссылка)
Это правда. Но для нас Хомский навечно останется автором 4-этажной схемы формальных языков в теории компиляции (регулярные, контекстно-свободные, контекстно-зависимые и общего типа). Никакой социализм не отменяет его прошлых заслуг :)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-28 04:46 (ссылка)
Просто те, кто привык думать логически, неизбежно приходят к социализму.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]jayrandom@lj
2005-06-28 06:37 (ссылка)
:)))

(Ответить) (Уровень выше)


[info]potan@lj
2005-06-14 05:47 (ссылка)
Ой, ну нельзя же так.
Машины редукции графов теперь перестали быть ЭВМ. Машины потока данных тоже не достойны этого гордого названия.
Даже многопроцессорные комплексы с трудом могут притендовать на этот титул.

Ну и нафига все это? Что бы показать "вредность" введения уровней абстракции?

(Ответить) (Ветвь дискуссии)


[info]dottedmag@lj
2005-06-14 05:58 (ссылка)
Из коммента, что из производства ДПЛА ушли квалифицированные программисты,в банки и куда-то еще можно сделать вывод, что показать хочется, что за низкую зарплату можно набрать только програмиистов, которые могут делать надежные программы только в идеально-модульно-структурном стиле, а на все остальное у них образования не хватает.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Зачем передёргивать?
[info]ex_chistyak@lj
2005-06-14 06:15 (ссылка)
Cj

>...из производства ДПЛА ушли квалифицированные программисты,в банки и куда-то еще

С чего Вы взяли, что эти ребята были квалифицированными программистами? Не были они ими. Мне приходилось их за ручку водить.

С чего Вы взяли, что они ушли в банки? Тогда банков ещё не было никаких. Это теперь они оказались в банках, поскольку не нашли ничего такого, чем стоило дорожить в профессиональной жизни, а при крахе СССР поплыли по течению. Не думаю, что когда они шли в математики, они мечтали стать сисадминами (то есть, эксплуатационниками) и придатками к бухгалтерским программам, правда?

С чего Вы взяли, что их зарплата была низкой? Она в их глазах была недостаточной.

К тому же, творцы не за зарплату работают. Само придёт, если будешь достоин. И не мало, уверяю Вас.

{+}

(Ответить) (Уровень выше)


[info]ex_chistyak@lj
2005-06-14 06:24 (ссылка)
>...програмиистов, которые могут делать надежные программы только в идеально-модульно-структурном стиле, а на все остальное у них образования не хватает

Это были бы очень хорошие программисты, да. Образование, что ли, запретить. Или... Идея! ПОРОТЬ!

:)

(Ответить) (Уровень выше)


[info]ex_chistyak@lj
2005-06-14 06:06 (ссылка)
Что такое машины редукции данных? Исполняемая программа в них есть? Можно её перепрограммировать на какую-нибудь другую задачу? Если да, то это ЭВМ. Если этот предмет может только редуцировать данные тем или иным, пусть перепрограммируемым способом (не знаю, что это значит), то это устройство -- не ЭВМ. Это редуктор данных и всё.

Бывает, что ЭВМ несколько, правда. Так что много процессорные и многомашинные системы -- это несколько сопряжённых ЭВМ.

А на фига? Просто пояснить, что все уровни абстракции не в воздухе болтаются, а реализуются вот таким способом, команда за командой. Без мистики.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2005-06-14 06:35 (ссылка)
В машинах редукции графов программа представляет из себя граф, который надо редуцировать. Последовательность шагов, которая приводет к редукции, произволна. Тем не менее результат предопределен (в том числе такая программа может быть интерактивной - то есть редукция может порождать операции ввода-вывода).
Потоки данных так же не декларируют последовательность операций. Но Вам бы ими стоило заинтрисоваться - пасвалеподобные языки к ним подходят значительно лучше, а вот с C-шных указателей им плохеет :-)).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-14 10:51 (ссылка)
Спасибо. Но чтобы сказать, ЭВМ это или нет, надо понять, а может такой предмет (редуктор графов) исполнять другую программу, кроме редукции графов. Например, моделировать движение самолёта или вычислять дисперсию случайной величины? Подозреваю, что нет. Если, конечно, этот редуктор сам не реализован на ЭВМ.

В Паскале указатели тоже есть, но я их избегаю.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2005-06-14 11:17 (ссылка)
Вопрос строится не корректно. Это все равно что спрашивать "а может ли ЭВМ делать что-либо еще, кроме интерпретации команд из памяти".
Сама испролняемая программа является графом, а не последовательностью команд. Даже если она моделирует движение самолета или вычисляет дисперсию.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-14 11:34 (ссылка)
>...Сама исполняемая программа является графом, а не последовательностью команд

Программа, являющаяся графом, может решить любую задачу? Или только представимую в виде графа? Любая ли задача может быть представлена в виде графа?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2005-06-14 11:43 (ссылка)
Да, конечно.
Тезис Черча: "Все, что может быть вычисленно, может быть вычисленно на машине Тьюрьнга".
Есть несколько моделей алгоритмов, эквивалентных МТ (а машины фон-Неймана близки именно к ней). Наиболее популярны лямбда-исчисление Черча (редукция графов - частный вид, который относительно легко реализовать аппаратно) и алгорифмы Маркова. Все, что можно сделать на одной из них, делается и на всех остальных.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-14 12:09 (ссылка)
А вот скажите, пожалуйста, любой ли из этих "методов Черча" требует ПОСЛЕДОВАТЕЛЬНОСТИ операций? То есть должно ли вычисление обязательно состоять из шагов? Как обычная программа? То есть, требование ПОСЛЕДОВАТЕЛЬНОСТИ операций, "команда за командой", существенно или нет? Или можно обойтись без него?
И второе. Существенно ли требование нарушений этой последовательности, условные операторы "если то, иначе это"? КОгда мы говорим "алгоритм", то без условных ветвлений не обойтись.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2005-06-14 12:23 (ссылка)
В лямбда-исчислении может быть применена любая возможная редукция - результат от этого не зависит. Нормальная последовательность редукций гарантированно завершается, если завершается хоть какая-нибудь. Редукции можно проводить параллельно - это и делает лямбда-исчисление привлекательным.
В нормальных алгорифмах Маркова производится строго первая замена из возможных - в некоторой степени можно говорить о последовательности действий.
В машинах потоков данных (к сожалению я не знаю хорошей математической модели для них) последовательность действий определяется событиями, такими как "готовы данные из АЦП" или "сложение двух чисел завершилось". (Кстати, многие современные процессоры налету переводят последовательность команд в граф потока данных и выполняют именно его. А программист видет фонНеймовскую виртуальную машину :-).)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-14 13:26 (ссылка)
Фон Нейман ни причём вообще. Выделяю три существенных признака ЭВМ:
1. Способность выполнять некоторые операции (команды) друг за другом.
2. Наличие памяти последовательностей команд (программ).
3. Способность условно изменять ход программы.
Всё.

(Ответить) (Уровень выше)


[info]igde@lj
2005-06-15 07:14 (ссылка)
Хм. Машина редукции графов последовательно выполняет одну редукцию за другой. То есть, имеет место "выполнение программы, заложенной в памяти,команда за командой". Правда, отсутствуют "команды способные условно прерывать последовательность выполнения программы".

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2005-06-15 07:37 (ссылка)
Последовательность редукций не задается. Если возможно применить несколько редукций, их порядок не важен.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]igde@lj
2005-06-15 07:53 (ссылка)
Но ведь все равно редукции будут применяться в определенном порядке.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2005-06-15 08:22 (ссылка)
Во первых последовательность может меняться при замене железа (например при изменении числа арифметических устройств).
Во вторых система может быть "мультизадачной" - редуцировать паралельно несколько графов. В этом случае порядок редукции конкретного графа может зависить от того, кто редуцируется рядом.
В третьих машина редукции может быть реализованна ввиде нескольких модулей, подключенных к сети. И на порядок редукции будут влиять сетевые задержки.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]igde@lj
2005-06-16 02:12 (ссылка)
Ну, это все уже подробности, вроде прерываний.

(Ответить) (Уровень выше)


[info]leonid_@lj
2005-06-14 13:12 (ссылка)
идеальная ЭВМ с точки зрения американца имеет одну кнопку - MAKE MONEY. кнопка - потомц что человек должен работать.

(Ответить)

Задачка.
[info]potan@lj
2005-06-15 04:07 (ссылка)
Вы прокутируете ДПЛА, примерно такого-же типа как сейчас. Но появилось дополнительное требование - придется летать в условиях высокой радиации и возможно применение противником оружия, основанного на электромагнитном импульсе. Это приводит к тому, что работу компьютера нельзя считать надежной - в любой момоент содержимое оперативной памяти может быть частично или полностью разрушено. Вам сделали устройство памяти, защищенное от такого воздействия (скажем микромеханическое), но медленное, дорогое и тяжелое.
Вам надо научиться сохранять в нем наиболее важные данные, что бы быстро востанавливаться после сбоя.
На сколько это хорошо программируется на Oberon?

(Ответить) (Ветвь дискуссии)

Re: Задачка.
[info]ex_chistyak@lj
2005-06-19 08:32 (ссылка)
Физическая реализация ЭВМ (электроника, механика, пневматика...) не имеет никакого значения для алгоритмического языка, каковыми являются Паскаль, Оберон... и даже "Си".

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Задачка.
[info]potan@lj
2005-06-20 04:40 (ссылка)
Имеет.
Физическая реализация не позволяет защитить систему от сбоя. Расчитывать можно только на сохранения некоторого количества данных, значительно меньших, чем оперативная память, необходимая для текущих расчетов.
Востановление после сбоя реализуется программно.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Задачка.
[info]ex_chistyak@lj
2005-06-20 16:27 (ссылка)
Решается конкретно по случаю. Успех достигается умом. А также упражнением:)

(Ответить) (Уровень выше)


[info]vap@lj
2005-07-05 13:33 (ссылка)
ЭВМ -- это такая вещь, которая обладает способностью последовательно выполнять, команда за командой, программу, заложенную в её памяти. Причём в наборе команд ЭВМ существуют команды (хотя бы одна команда), способные условно прерывать последовательность выполнения программы и начинать последовательное выполнение программы с нового места.
Когда-то очень давно, узнав, что есть такой язык Паскаль, я очень удивился - как можно программировать без номеров строк и как тогда указывать оператору GOTO, к которой строке перейти?

(Ответить) (Ветвь дискуссии)

:)
[info]ex_chistyak@lj
2005-07-05 14:01 (ссылка)
>...как тогда указывать оператору GOTO, к которой строке перейти?

В итоге выяснилось, что употребление goto -- дурной тон (структурное программирование). И это правильно, человеку не под силу разобраться в программе с безвозвратными переходами. ЭВМ-то что...

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: :)
[info]vap@lj
2005-07-05 14:13 (ссылка)
В итоге выяснилось, что употребление goto -- дурной тон
А потом выяснилось, что некачественная (в пределе - ее отсутствие) инкапсуляция данных и операций - тоже дурной тон, и ровно по той же причине :)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: :)
[info]ex_chistyak@lj
2005-07-05 14:54 (ссылка)
Ну, структурное программирование как раз и не отрицает инкапсуляции, наоборот. К сожалению, ограниченность ресурсов, которая бывает в дешёвых микропроцессорных системах, не позволяет провести инкапсуляцию "до дна". Приходится держать довольно большой массив глобальных переменных. Искупается сокращением количества "программистов".

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: :)
[info]vap@lj
2005-07-05 15:33 (ссылка)
Ограниченность ресурсов крайне слабо относится к инкапсуляции. Инкапсуляция - свойство языка, а машинный код (и его требования к ресурсам) в общем случае не изменяется.
Например, простое добавление модификатора static к описанию статической переменной в файле на Си делает эту переменную невидимой снаружи того же объектного файла, и является простейшим приемом инкапсуляции. Но машинный код с появлением этого модификатора не изменится ни на байт.

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

Другой вопрос - это кадровая политика. Нет смысла брать на работу в низкоуровневый embedded-проект людей, которые по складу ума более годны для высокоуровневой работы, и наоборот.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: :)
[info]ex_chistyak@lj
2005-07-05 16:22 (ссылка)
Я с Вами совершенно не согласен по многим затронутым Вами вопросам, но, увы, сейчас у меня нет времени Вам ответить подробно.
Коснусь только "программистов". Как Вы поняли, это для меня самый ненавистный сорт людей. Я люблю инженеров. Инженер может решить любую задачу, в том числе, и программируя ЭВМ. "Программист" же просто не в состоянии понять, что требуется, а сосредоточивается на самом процессе программирования.

(Ответить) (Уровень выше)

Re: :)
[info]ex_chistyak@lj
2005-07-05 16:37 (ссылка)
Я с Вами совершенно не согласен по многим затронутым Вами вопросам, в том числе и по переменным static, но, увы, сейчас у меня нет времени Вам ответить подробно. Просто, мне кажется, что Вы не представляете себе, что означает словосочетание "ограниченные ресурсы".
Коснусь только "программистов". Как Вы поняли, это для меня самый ненавистный сорт людей. Я люблю инженеров. Инженер может решить любую задачу, в том числе, и программируя ЭВМ. "Программист" же просто не в состоянии понять, что требуется, а сосредоточивается на самом процессе программирования.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: :)
[info]vap@lj
2005-07-05 19:42 (ссылка)
Просто, мне кажется, что Вы не представляете себе, что означает словосочетание "ограниченные ресурсы".
Это понятие, как и любое, введенное человеком, можно трактовать по-разному. В рамках данного обсуждения, в применении к обсуждению "затрат ресурсов на синтаксические и архитектурные рюшечки", для меня ограниченные ресурсы - это, упрощенно, 512-4096 байт ОЗУ и 8-128К программного Flash. То, что ниже (скажем, когда все ОЗУ - это 32 регистра, и стека вообще нет) - действительно может потребовать принципиально другого подхода, но там и уровень сложности доступных для решения задач позволяет со сложностью просто не бороться.

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

Пример того, для чего программист-системщик нужен: стоит на Мурманском шоссе недалеко от Питера два комплекса, наш и конкурентов. Проекты одного уровня сложности и в чем-то даже перекрывающиеся по функциональности. Недели три назад была сильная гроза. Оба комплекса получили по сбою, но аппаратура уцелела. Однако, у конкурентов сбой сразу стал отказом, а наш всего лишь не прошел периодическое самотестирование и автоматически перезапустился еще до того, как нам дозвонились о проблеме.
Резюмирую вышесказанное: программист-системщик - это инженер по сложности и смежным вопросам. Он занимается в числе прочего и задачами надежности, в том числе обеспечением того, чтобы сбой не становился отказом. Думаю, излишне говорить, что "просто инженер, заодно еще и программирующий" вряд ли нормально обеспечит это - он просто не будет знать ни о наличии проблемы, ни о типовых путях ее решения. В каждом деле нужны специалисты. Что, конечно же, не отменяет необходимости знать смежные области и быть способным решать часть проблем самостоятельно - к примеру, я, программист, вполне могу на равных обсуждать и править P-CAD-овскую схему железки с нашим аппаратчиком, или, к примеру, собственноручно спаять себе домой программатор, не бегая для этого в цех, а наш программист-гуевщик со знанием дела обсуждает со мной сетевые протоколы и способен указать на проблему в них.

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

(Ответить) (Уровень выше)

ЭВМ и не только.
[info]bofhland@lj
2005-08-26 13:36 (ссылка)
Признаться, вы привели довольно чёткое определение; простое и понятное. Оно прекрасно подходит для обучения людей основам Computer Science: для студентов младших курсов, техникумов, для школьников.
Можно сказать, это определение классическое. Но оно не лишено недостатков -- именно поэтому.
И выше с вами спорили многие не потому, что оно такое уж и плохое, а по той причине, что реалии 70-х, когда такой подход к ЭВМ был господствующим, сегодняшним реалиям уже не соответствуют.

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

И, заметьте, я вовсе не имею в виду квантование. И не о каких абстракциях над реальным "железом" ЭВМ речи тоже не идёт.
Параллельность, таким образом, предусмотрена в современных компьютерах ещё на уровне аппаратного обеспечения.

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

(Ответить)

Хе-хе-хе.
[info]a_bronx@lj
2005-08-29 01:46 (ссылка)
Описав свойства и поведение ЭВМ, вы дали её объектно-ориентированное определение. И теперь любой может воспользоваться им, чтобы написать себе новую "виртуальную" ЭВМ... :))

(Ответить)