- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Журнал "Компьютерра" №728 - Компьютерра
Шрифт:
Интервал:
Закладка:
Патриарх i8051 совершил в свое время переворот прежде всего тем, что это был первый computer-on-chip, содержащий на кристалле практически все, что требуется для автономного функционирования: встроенную память программ, четыре восьмиразрядных параллельных порта ввода-вывода, два 16-разрядных таймера-счетчика, универсальный последовательный интерфейс, и систему внутренних и внешних прерываний. В дальнейшем он породил большое число подражаний самого разнообразной структуры и назначения; в том числе выпускались (а может, даже и продолжают выпускаться - в продаже, во всяком случае, имеются) его клоны и в нашей стране в виде серий 1816 и 1830.
Система команд x51 основана на работе АЛУ с единственным регистром-аккумулятором, плюс еще один вспомогательный регистр, который штатно используется для команд аппаратного умножения и деления, но годится и для хранения какой-нибудь переменной. Такая конструкция подразумевает широкое использование стека. Для программных переменных предполагается расположение в памяти данных, которая может иметь самую разнообразную конфигурацию (если учесть возможность подключения внешней памяти до 64 кбайт), поэтому в архитектуре х51 имеется огромное количество однотипных инструкций, различающихся только способом адресации.
Хотя все МК x51 давно делаются по КМОП-технологии, с электрической точки зрения все выходные линии портов х51 совместимы с TTL-уровнями, и часть из них имеет выходы с "открытым коллектором". Достоинством архитектуры может считаться наличие упомянутых аппаратных инструкций умножения и деления и важной для электронных устройств операции десятичной коррекции. Однако канонический х51 имеет один крупнейший недостаток: длительность выполнения команд у него кратна машинному циклу, который занимает целых 12 тактов. Т. е. устройство с тактовой частотой 12 МГц будет иметь быстродействие всего 1 миллион простых инструкций в секунду (MIPS). Значительное число более современных модификаций х51 может выполнять инструкции быстрее: для примера можно привести серию фирмы Atmel под названием 89LP, где машинный цикл равен всего одному такту.
Семейство PICВ отличие от x51, имеющих CISC-подобную архитектуру, МК семейства PIC фирмы Microchip, впервые появившиеся в конце 1980-х годов, имеют RISC-архитектуру с действительно "сокращенным набором команд": их всего 33-35 штук. Команда здесь выполняется за 4 такта, а не за 12, в архитектуре имеется набор оперативных регистров, позволяющих хранить переменные без обращения к памяти (правда, без регистра-аккумулятора тут не обошлось). В PIC-контроллерах впервые были опробованы такие инновации, как встроенное многоканальное АЦП, широкий диапазон напряжения питания (от 2 В), ШИМ-режим работы таймера (который годится, например, для синтеза звука или управления шаговыми двигателями) и прочие штучки, которые ныне уже стали стандартными для универсальных контроллеров.
Электрически порты PIC совместимы с портами х51. В принципе архитектура PIC (пусть на меня ее приверженцы не обижаются) есть довольно половинчатая и компромиссная попытка улучшить архитектуру х51: так, ревностное следование концепции RISC в микроконтроллерах совершенно необязательно и набором всего из 33 команд пользоваться не всегда удобно. Но PIC появились крайне вовремя, когда кроме штампованных клонов 8051 и его предшественника 8048, по сути, никто ничего не предлагал. По этой причине (а также из-за демократической торговой и ценовой политики Microchip) "пики" и сейчас занимают не менее 14% такого консервативного рынка, как производство 8-разрядных МК.
Семейство AVRФирма Atmel сыграла в электронной промышленности роль, в некотором роде сравнимую с ролью Apple в производстве ПК: она не находится на первых ролях, но всегда отличалась передовыми инновациями. Сейчас на рынке 8-разрядных МК она имеет около 6%. Фирму основал в начале 1980-х Джордж Перлегос, известный тем, что руководил в Intel направлением энергонезависимой памяти: при его непосредственном участии были разработаны первые типы электрически стираемых кристаллов EEPROM. В 80-е годы Atmel попыталась занять ведущее место на этом быстрорастущем рынке, и остается до сих пор одним из ведущих производителей flash- и EEPROM-чипов для установки в схемы различных устройств (например, нередко можно встретить Flash BIOS на чипах Atmel).
В конце 1980 х Atmel в числе других оказалась втянута в патентные разборки с энергонезависимой памятью, инициированные Intel, из которых вышла даже с некоторой прибылью, оказавшись обладателем лицензии на производство х51-совместимых МК, в каковой области и поныне является одной из ведущих. В 1993 году Atmel стала инициатором переворота в отрасли, начав производство МК AT89C51 со встроенной flash-памятью программ, что оказалось значительно удобнее одноразовых "прожигаемых" кристаллов или УФ-стираемых, требующих длительной "ручной" процедуры очистки.
В 1995 году два норвежских студента из г. Тронхейма, Альф Боген и Вегард Воллен, выдвинули идею 8-разрядного RISC-ядра, которую предложили руководству Atmel. Ядро это, названное AVR по именам разработчиков (Alf - Vergard - RISC), было разработано без оглядок на существовавшие решения, и вполне заслуживает название революционного. В AVR-ядре типовые инструкции выполняются за один такт, причем в обеспечение этого имеется элементарный конвейер с одновременным выполнением инструкции и выборкой следующей (потому команды ветвления выполняются за два такта - конвейер "тупо" полагает, что условие ветвления не выполнится). Первоначальное ядро состояло всего из 32 тысяч транзисторов.
В работе над ядром приняла участие упоминавшаяся фирма IAR System, разработчик С-компиляторов. Возможно, поэтому главной особенностью AVR стал решительный разрыв с характерными для существовавших ранее архитектур с инструкциями, выполнявшимися через специальный регистр-аккумулятор: большинство команд здесь может непосредственно оперировать с регистрами общего назначения (которых имеется аж 32 штуки), в ряде случаев вообще не нуждаясь в обращении к ОЗУ. Потому структура ассемблерных программ для AVR стала подозрительно напоминать программы на языке высокого уровня, где операторы работают не с ячейками памяти и регистрами, а с абстрактными переменными и константами. Мало того, в ряде младших моделей нельзя даже напрямую работать со стеком - для программы он при таком количестве регистров-переменных оказывается попросту ненужным, и используется лишь аппаратно при вызове подпрограмм.
Сделать шажок к переходу от ассемблера на С при такой архитектуре значительно проще: фактически оставалось лишь упаковать то, что знаменитый программист Дейкстра назвал "лапшой условных и безусловных переходов", в привычные циклы с предусловием/постусловием или операторы выбора. Именно по этим причинам архитектура AVR считается наиболее приспособленной к программированию на С.
Причем различные способы адресации, имеющие такое важное значение в архитектуре х51, здесь разбросаны по совершенно разным командам, и программист вообще может не изучать соответствующий раздел инструкции. Количество команд в архитектуре AVR довольно большое, 120-130 штук, но противоречия с RISC-концепцией здесь нет - 30-40% команд есть лишь псевдонимы, введенные для удобства программиста. Причем инструкций деления и умножения, в полном соответствии с RISC-концепцией, канонический AVR не предусматривает: лишь позднее для более "продвинутых" моделей появилась возможность аппаратного умножения.
Другим большим плюсом AVR стал впервые введенный последовательный интерфейс занесения программы в память кристалла, благодаря чему МК стало можно программировать прямо в готовой схеме, без каких-либо специальных программаторов: в принципе достаточно чисто софтверного решения на ПК, соединяющегося через LPT со схемой пятью проводочками. Не стоит и говорить, что из-за подобной фичи AVR снискали себе горячую любовь отечественных (и не только) радиолюбителей. Позднее таким интерфейсом были вынуждены обзавестись и другие популярные семейства МК.
К недостаткам AVR можно отчасти отнести то, что электрически выводы портов по уровням сигналов являются КМОП-совместимыми: это повышает помехоустойчивость (порог различения низкого-высокого уровня лежит в районе середины питания, а не ближе к нулю, как у х51), но вызывает ряд проблем (вполне, впрочем, решаемых) совместимости с различными стандартными интерфейсами. Не очень логично и построение некоторых команд в области операций с битами. Но в целом архитектура AVR, несомненно, более прогрессивна и если бы в этой отрасли моды менялись так же быстро, как это происходит в области ПК, то AVR имела бы все шансы на первенство.
По счастью, отрасль производства МК гораздо более консервативна: в рекламе стиральной машины не запишешь, что она построен на "новейшем 32-разрядном чипе", и никого по большому счету не волнует, какую архитектуру предпочитает разработчик данного бытового устройства. Потому у инженера оказывается значительно больше свободы применять то, что ему привычно и нравится, и меньше зависимости от рекламных веяний и монополизма производителей платформ. В области МК исключена ситуация, когда кто-то впаривает недоработанный и неудобный стандарт, пользуясь своим положением на рынке: разработчики просто пожмут плечами и отвернутся к другому производителю, или будут продолжать применять то, что применяли издавна. И это несомненный плюс отрасли, который в конечном итоге играет на руку потребителям, удешевляя и упрощая конечные устройства.