Свежий номер №27 (404)  / Мелочевка
 
Дата публикации: 23.07.2001

Юрий Ревич, revich@computerra.ru

 
1
Врезка 1  >>

«Вы познакомились с большим количеством программ на языке ассемблера. При работе с ними мы постоянно придавали большое значение самому процессу программирования, а не особенностям микропроцессора 8088…»
П. Нортон, Д. Соухэ. «Язык ассемблера для IBM PC»

Если в известный психологический тест, в котором нужно назвать первое приходящее на ум слово в ответ на некое понятие, произнесенное собеседником (поэт - Пушкин, фрукт - яблоко и т. д.), включить слово «микропроцессор», то вы с фатальной неизбежностью получите в ответ «Пентиум». Фирма, которая выдумывает имена процессорам Intel, не зря ест свой хлеб - ее придумки хорошо звучат и легко запоминаются. Конечно, главную роль здесь играет тот факт, что чипы семейства Pentium - самые распространенные процессоры для персональных компьютеров. Но являются ли они самыми распространенными среди микропроцессоров (МП) вообще? Отнюдь нет. Процессоров «не для ПК», которые чаще называют микроконтроллерами (МК), выпускается гораздо больше.

По прогнозу Ассоциации полупроводниковой промышленности (SIA) общий рынок полупроводниковых приборов в 2001 году составит 209 млрд. долларов, из них на долю процессоров для ПК придется 40 миллиардов, а на долю других микропроцессоров - 22 миллиарда 1. Если учесть, что рядовой процессор для ПК стоит несколько десятков, а то и сотен баксов, а обычная цена МК - единицы долларов, станет ясно, что даже при двукратном превосходстве объемов продаж в денежном выражении по количеству изготовленных экземпляров МК опережают процессоры для ПК в несколько раз. Что же представляет собой этот огромный рынок?

Как-то мне пришлось по электронной почте пересылать программу для МК, которая умела многое. По уравнению состояния воды она на основе данных с датчика давления рассчитывала истинную глубину, отображала ее на четырехразрядном индикаторе, контролировала состояние кнопок на пульте, связывалась с внешним компьютером по интерфейсу RS-232, отрабатывая при этом команды загрузки в память новых коэффициентов, непринужденно переходила из режима градуировки (скорость передачи 9600 бод, 8-битный формат) в режим ежесекундной посылки новых значений глубины во внешние устройства по интерфейсу RS-485 (57600 бод, 9-битный формат), успевая при всем при этом раз в секунду опрашивать по SPI-протоколу два канала 16-битного АЦП, который преобразовывал аналоговые сигналы с датчика давления и температуры, заносить их во флэш-память… и еще кое-что - всего и не перечислишь. Когда заказчики на том конце провода спросили меня, а все ли файлы я им переслал, их недоумение было мне понятно: программа занимала в исходном ассемблерном тексте 6674 байта, а скомпилированная в hex-формат вообще сжималась до 905 байт (правда, надо исключить отсюда таблицы пересчета глубины в давление, которые занимали во флэшке почти 4 Кбайт).

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

Все вышесказанное хорошо иллюстрирует тот факт, что споры насчет того, какая ОС требует меньше дискового пространства - Windows или Linux, есть споры пустые, так как реализация, к примеру, функции связи с последовательным UART-портом в программе под той же Windows занимает лишних килобайт сто, а в микроконтроллере на это ушло примерно восемь байт кода (ну ладно, плюс еще байта четыре начальной инициализации порта). Конструктор навороченной системы контроля нефтяных скважин, реализованной на микропроцессоре фирмы Siemens, как-то говорил мне, что он впервые понял в процессе разработки, какая все-таки гадость эти ОС для ПК: они сделали собственную ОС (с графическими функциями для вывода на CRT-монитор!) и уместили ее в 8 Кбайт памяти процессора…

Прогресс в области микропроцессоров не для ПК не столь стремителен, как у «старшего брата», это и понятно - потребитель другой, реклама на него действует иначе, да и у существующих типов МП имеется еще значительный потенциал. Моральное старение МК происходит медленнее, чем у МП для ПК. Разработчики не стесняются применять чипы, выпущенные еще лет двадцать назад - они вполне годятся, к тому же использование старых наработок в части подпрограмм удешевляет и ускоряет проектирование. Еще несколько лет назад вполне можно было встретить устройства на основе 8080 (помните «Радио-86РК»?). И его бы продолжали выпускать, но уж больно он неудобен схемотехнически: три напряжения питания, да еще включи их в определенной последовательности… Зато семейство его собрата под общим названием 8051 сама даже сама Intel перестала развивать, но оно производится в огромном количестве модификаций множеством фирм во всем мире, включая именитые Atmel и Philips (и в СССР оно тоже выпускалось под серийным наименованием 1816 - правда, не уверен, что выпускается до сих пор). А всего, говорят, в мире существует более семидесяти семейств микропроцессоров…

Основным направлением развития «меньших братьев» было, в отличие от «старших», не увеличение быстродействия и даже не увеличение разрядности. В самом деле, много ли быстродействия требуется, чтобы считать аналоговый сигнал с датчика температуры, перевести его в цифровую форму и высветить на индикаторе? Стоимость чипа, умеющего выполнять подобные действия, порой не превышать одного-двух долларов, и он имеет «смешные» с точки зрения индустрии ПК тактовые частоты в 1-10 МГц, чего более чем достаточно. А оптимизированные по количеству занимаемой памяти (или, наоборот, по быстродействию) процедуры, позволяющие выполнять на 8-разрядном чипе аж 32-разрядные операции, бережно передаются программистами друг другу: зайдите на любой соответствующий форум в Интернете… Зато такие чипы не зря когда-то обозвали в отечественной литературе «МикроЭВМ»: если Pentium не умеет ничего, кроме как перемалывать числа, то МК стоимостью доллара в три имеет и UART-порт (а то и не один), и встроенный многоканальный АЦП, и аналоговый компаратор, и несколько таймеров с изощренным управлением…

Вершиной всей этой индустрии для меня на сегодняшний день служат разработки фирмы Atmel (приверженцев иной платформы прошу не бросать в меня камни). 8-разрядные контроллеры семейства AVR со встроенной флэш-памятью программ и данных (МК обычно имеют не фон-неймановскую, как у РС, а гарвардскую архитектуру, когда области программ и данных в памяти разделены - что, впрочем, довольно условное разделение) резко снизили необходимый порог компетентности специалистов и упростили и удешевили процесс разработки МК-устройств почти до уровня написания программ на «Паскале». Макет вашего устройства (c уже установленным в схему процессором) вы соединяете программатором с компом (подойдет любой старенький ХТ, программисты со стажем любят при этом использовать исключительно заточенный под это дело DOS-редактор MultiEdit), загружаете программу, проверяете работу схемы, тут же правите, компилируете, загружаете снова - и все это, не отсоединяя программатора и не отходя от рабочего стола. Причем программатор стоит долларов двенадцать, и никто вообще-то не мешает вам изготовить его самостоятельно. Другие семейства МК пока лишь подтягиваются к этому, но многие разработчики предпочитают программные эмуляторы, что не лишено смысла, если схема сложная и ее макет изготовить затруднительно. Так, для этих самых AVR есть программный комплекс AVR-Studio, который позволяет писать программы на Си (Си-компиляторы есть и для других распространенных семейств, в первую очередь для 8051 и PIC). Но тут та же ситуация, что и в «большом» мире: разрабатывая программы для МК на СИ, вы теряете компактность кода (впрочем, программисты, пишушие софт для ПК, в связи с увеличением емкости жестких дисков и удешевлением памяти уже давно об этом забыли, а вот те, кто имеет дело с МК, очень даже помнят).

Я не упоминаю специализированные МК - типа DSP, скажем, потому, что «Компьютерра» о них недавно писала. Но напоследок хочу сделать одно замечание. Лет пятнадцать-двадцать назад кто-то обронил крылатую фразу: «микропроцессоры придуманы раньше, чем области применения для них». Поразительно, как складывается судьба изобретений. Телефон и телевидение, автомобиль и самолет, голографию, фотонные ракеты, сверхпрочные сплавы, атомную бомбу, подводную лодку - все это изобретать не надо. В том смысле, что уже изобретено и часто - еще на заре цивилизации. Надо только выдумать способ, которым это делается. Идея компьютера в роли калькулятора витала в воздухе с тех пор, как мы научились считать. А вот идея компьютера как компьютера и тем более идея микропроцессора как некоего «мозга» технических устройств в воздухе не носилась. Не зря люди мысленно летали на Марс и разговаривали на расстоянии задолго до появления хотя бы самых слабых намеков на техническую реализацию этих идей. Даже атомная бомба была предсказана фантастами в деталях. А вот роботы-киберы в фантастической литературе появились не раньше ENIAC. И очень характерна история, которую приводит в мемуарах Гордон Мур, автор известного закона и основатель фирмы Intel. Мур признавался, что поначалу ни он, ни его сотрудники не понимали, что именно они изобрели в 1971 году, когда был создан первый микропроцессор 4004. «Поначалу, - вспоминает бывший директор Intel по маркетингу, - мы относились к этому чипу лишь как к средству увеличения продаж микросхем памяти и решили вложить в него деньги исходя именно из этой посылки». Когда в середине семидесятых один из сотрудников выдвинул идею «компьютера для домохозяек», Мур спросил: «И кому же такое понадобится?». «Домохозяйкам, - ответил сотрудник. - Они могли бы таким образом хранить кулинарные рецепты». Мур удивился: «И только- то?» Поскольку сотрудник не нашелся, что добавить, больше в фирме Intel к этому вопросу не возвращались. И лишь позднее стало ясно, что возможности, которые кроются в этом изобретении, принципиально шире, чем просто автоматизация вычислений. Вот тогда и начался информационный век, в котором мы сегодня живем.

Врезка 1
Врезка 2

[i40420]


1 (обратно к тексту) - Следует учитывать, что прогноз был подготовлен SIA еще до наступления кризиса в IT-индустрии. Сегодня эти цифры следует уменьшить процентов на 20-25. - Прим. ред. темы

 
1
Врезка 1  >>


Юрий Ревич (фотография) Юрий Ревич
revich@computerra.ru
 
Занимался проектированием измерительных приборов для научных исследований. Много раз бывал в научных морских экспедициях. Увлечения: политика, история, англо-американский детектив.


<<  Встроенные системы: "инженерное" интервью
Все материалы номера
"Поворот все вдруг"  >>