Программируемые калькуляторы - умному достаточно

Сегодня мы опять возвращаемся к теме программируемых калькуляторов. Небольшая дискуссия в комментариях неожиданно нашла своё продолжение, и сегодня мы публикуем статью, присланную нам Михаилом Степанищевым, главным инженером НПП “СЕМИКО”.

Другой путь

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

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

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

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

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

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

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

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

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

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

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

С выпускаемыми нашим предприятием изделиями можно ознакомиться на сайте mk.semico.ru. Фактически, ЭВМ “Электроника МК-152″ - это программируемый микрокалькулятор с портами последовательного и параллельного ввода-вывода. Встроенный язык команд является развитием системы команд советских микрокалькуляторов “Электроника МК-61″, “МК-52″.

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

Первый вопрос обычно звучит так - “зачем было воспроизводить это убожество, а если уж воспроизвели для коллекционеров, то почему не МК-52 на 100%, неужели трудно было микропрограмму проэмулировать?”

МК-152 в документации намеренно назван не просто программируемым микрокалькулятором, а клавишной электронной вычислительной машиной. По возможностям ЭВМ значительно превышает прототипы, имеет связь с внешними устройствами, часы реального времени, таймеры, дисковую операционную систему и т.п.

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

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

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

Система команд калькуляторов обладает удивительной емкостью. Например, программа вычисления корней квадратного уравнения на языке МК имеет длину всего 24 байта. Аналогичная программа на Си под DOS после компиляции займет около 24 килобайт. На современном объектно-ориентированном языке программирования нетрудно составить аналогичную программу длиной 24 мегабайта, требующую как минимум гигабайт оперативной памяти, которая будет работать на Pentium IV раз в сто медленнее, чем аналог на советском калькуляторе.

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

Язык МК уникален также своей однозначностью. Выпустить сборник полезных прикладных программ на другом языке практически невозможно. Даже BASIC, задуманный как простой язык для обучения программированию, не способен выполнить эту роль. Он имеет такое количество диалектов, что любую опубликованную программу проще переписать заново, чем адаптировать.

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

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

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

Второе замечание к МК-152, опуская отдельные обороты, звучит так: “солидные зарубежные фирмы предлагают настоящие продвинутые калькуляторы раскрученных брендов по значительно меньшим ценам. А вы отечественные производители, что уже само по себе не круто, так почему же не сделали еще сложнее, но в разы дешевле”.

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

Принципиальное отличие МК-152 от импортных калькуляторов заключается в том, что в нем есть стандартные порты и нет лишних функций и библиотек подпрограмм. Для операций, которые в системе команд МК реализовать невозможно, используются регистры функций - аналоги прерываний DOS и BIOS в персональных компьютерах. Все, что может быть реализовано в программе пользователя, в ней и выполняется.

Типичный пример - гиперболические функции. Практически в каждом зарубежном калькуляторе они есть, но много ли пользователей сможет объяснить что это и зачем. А те, кто понимает, без труда составят на ЭВМ программу вычисления sh(x) длиной семь байт (она есть в справочнике по расчетам на микрокалькуляторе В.П. Дьяконова): Fex, B ↑, F1/x, -, 2, ÷, С/П. Даже те, кто не знал или забыл, глядя на программу поймут или вспомнят, что sh(x) = (ex - 1/ex)/2.

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

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

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

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

Цена нашей продукции складывается из стоимости комплектующих и затрат на производство. К сожалению, существенно снизить издержки в ближайшее время не реально. Однако, приобретая ЭВМ, пользователь получает функционально законченное изделие и может использовать этот инструмент в дальнейшем по своему усмотрению. Никакие затраты на лицензирование программного обеспечения, бесконечные апгрейды и абонентскую плату ему не угрожают.

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

Специализированные дополнительные принадлежности для МК-152 также не требуются. Стыковочные параметры ЭВМ приведены в документации. К ней, через последовательный и параллельный порты, может быть подключено любое стандартное или самодельное устройство. Даже сменный электронный диск можно собрать самостоятельно из доступных компонентов, руководствуясь схемой.

Еще одно замечание звучит так: “так ведь это можно на КПК или на десктопе проэмулировать”.

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

Наше изделие находится в стороне от непрерывного ряда все более усложняющихся зарубежных калькуляторов, плавно переходящих в КПК. Настолько плавно, что для некоторых моделей калькуляторов есть версии DOOMа и других игр. Любые сравнения ЭВМ с моделями из этого ряда должны сопровождаться пониманием, что это всего лишь проекция на одну ось. ЭВМ же следует рассматривать и по другой координате - управляющих машин, представителями которых сейчас являются промышленные контроллеры. А это совсем другие подходы, да и цены тоже.

Ну и самое странное, хотя и нередко высказываемое, замечание: “использование 8051 - это убого и не современно”.

В ЭВМ стоит современный представитель серии - микросхема W77LE516 с тактовой частотой 22 МГц. Развитая система команд, и достаточные размеры памяти позволили уместить всю управляющую программу во внутреннем ПЗУ, что значительно увеличило надежность устройства в целом. Именно W77LE516 выбрана еще по двум критериям. В отличие от 8051, цикл шины занимает не 12 тактов, а 4. При этом, длительность цикла может варьироваться для обмена с медленными устройствами, такими как индикатор.

Система команд серии iMCS-51 весьма удобна и хорошо продумана. О чем уже было написано в статье Р.В. Абраша “О вкусах не спорят…”. Успешная реализация ЭВМ на контроллере этой серии говорит сама за себя.

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

Почему использование в зарубежных калькуляторах 16/32-х разрядных процессоров и соответствующих объемов внутренней памяти для получения практически тех же рабочих характеристик устройства считается некоторыми более “продвинутым” и “современным” подходом - совершенно непонятно.

И в заключение хочется обратить внимание инженеров на ряд преимуществ МК-152 по сравнению с другой вычислительной техникой.

Взаимодействие с любым оборудованием через последовательный или параллельный порт типичная задача для МК-152. Параллельный порт может функционировать в различных режимах, в том числе в режиме непосредственного управления отдельными сигналами. Последовательный порт работает с различными скоростями обмена и длиной слова 8 и 9 бит. Необходимые для этого функции реализованы как программно, так и аппаратно. Поэтому изготовление различных стендов и проверочных устройств не вызывает затруднений.

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

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

МК-152 может неограниченное время работать непрерывно. Большой объем памяти электронного блокнота и возможность обмениваться данными с другими ЭВМ позволяют создать распределенные системы накопления и обработки информации.

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

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

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

гл. инженер НПП “СЕМИКО”
Степанищев Михаил Борисович

Источник: Берлога инженера