Motorola 6809
Motorola 6809 | |
---|---|
Центральный процессор | |
Процессор Motorola 6809E с рабочей частотой 1 МГц, выпущен в 1983 году | |
Производство | 1977[1] |
Производители | |
Частота ЦП | 0,89—4 МГц |
Технология производства | HMOS, CHMOS, 6 мкм |
Наборы инструкций | Motorola 6809 |
Разъём | |
Ядра | |
Motorola 6809 — 8-разрядный микропроцессор (иногда называемый 8/16-разрядным), выпущенный компанией Motorola в 1979 году. Имел значительное превосходство над своим предшественником, Motorola 6800, а также перед процессором MOS Technology 6502, созданным оригинальной командой разработчиков 6800, ушедших из компании Motorola.
Описание
[править | править код]Среди значительных усовершенствований, появившихся в процессоре 6809, были два 8-разрядных аккумулятора (A и B, которые могли объединяться в один 16-разрядный регистр D), два 16-разрядных индексных регистра (X и Y) и два 16-разрядных указателя стека (U и S). Индексные регистры и регистры указателя стека позволяли использовать разнообразные методы адресации.
Процессор 6809 сохранял обратную совместимость с 6800 на уровне исходного кода. Однако, число команд было снижено с 78 до 59. Некоторые команды были заменены более общими, для обеспечения совместимости ассемблер заменял старые команды их новыми аналогами во время трансляции. Наборы команд и регистров имели большую ортогональность, что делало написание программ для процессора более простым по сравнению с процессорами 6800 или 6502.
Среди прочих возможностей присутствовала одна из первых аппаратных реализаций инструкции умножения, полная 16-разрядная арифметика и быстрая система прерываний. Процессор был сильно оптимизирован и работал до пяти раз быстрее, чем процессоры серии 6800. В процессоре сохранилась недокументированная инструкция тестирования шины адреса, появившаяся в процессоре 6800. Она позволяла обойти ограничения некоторых контроллеров памяти и получила название Halt and Catch Fire (HCF).
В отличие от многих процессоров того времени, процессор не использовал микрокод. Его конечный автомат и управляющая логика были в основном реализованы в большой ПЛМ и асинхронной произвольной логике (общая черта ранних конструкций, а также RISC-процессоров). Поэтому один машинный цикл выполнялся всего за один такт, что являлось преимуществом перед, например, процессором Zilog Z80 (одним из главных конкурентов 6809). Например, команда ADDA 63
выполнялась за три такта на 6809, тогда как выполнение аналогичной команды ADD A,63
процессора Z80 требовало семи тактов. Теоретически для достижения одинаковой производительности при выполнении этой операции Z80 требовал минимум вдвое более высокой частоты. Однако, более синхронный дизайн Z80 позволял использовать более высокую (в 3-5 раз) тактовую частоту по сравнению с 6809, 6800 или 6502, без необходимости использования более быстродействующей памяти (что часто являлось главным ограничением).
Было выпущено несколько версий процессора, рассчитанных на разную тактовую частоту — 6809 (1 МГц), 68A09 (1,5 МГц) и 68B09 (2 МГц). Обычные версии процессора имели встроенный генератор тактовой частоты, требующий только внешнего кварцевого резонатора. Также существовали версии с буквой E в конце обозначения (6809E, 68A09E, 68B09E), требующие использования внешнего генератора тактовой частоты. Впоследствии сторонние производители, в частности компания Hitachi, выпустили более быстродействующие варианты процессора.
История
[править | править код]Процессор 6809 иногда называют концептуальным предшественником семейства процессоров Motorola 68000, что является заблуждением. Оба проекта разрабатывались параллельно и были завершены в 1979 году. Между ними есть определённое сходство — в частности, гибкость методов адресации и большая ортогональность. Также есть некоторое сходство мнемоник и синтаксиса ассемблера. Но процессор 6809 развивал идеи процессора 6800, тогда как процессор 68000 являлся полностью новой разработкой. Версия 68000 с восьмиразрядной шиной данных (Motorola 68008) предназначалась для использования в будущих 8-разрядных системах, поэтому 6809 быстро стал эволюционным тупиком.
Команда разработчиков процессора полагала, что будущим пользователям процессора могут потребоваться ПЗУ с готовым кодом для решения распространённых задач, таких, как вычисления с плавающей точкой. Это могло позволить разработчикам систем на основе процессора не тратить время на разработку собственного кода. Так как разработчики процессора не могли заранее знать, где будет расположен код ПЗУ в адресном пространстве системы, устройство процессора было ориентировано на возможность выполнения реентрабельных подпрограмм, располагаемых в любом месте адресного пространства. Эта возможность не была использована в указанных целях на практике. Единственным выпущенным компанией Motorola ПЗУ с кодом стала микросхема MC6839, содержащая код для вычислений с плавающей точкой. Однако, такое устройство процессора позволило создать такие продвинутые операционные системы, как OS-9 и UniFlex, которые использовали возможность выполнения реентрабельного кода, не привязанного к конкретным адресам в памяти.
Процессор 6809 был применён в двухпроцессорном компьютере Commodore SuperPET и в уникальной игровой консоли Vectrex (68A09). Модификация 6809E использовалась в домашних компьютерах TRS-80 Color Computer (CoCo), Aamber Pegasus, Acorn System 2, 3 и 4 (как опциональная альтернатива 6502), Fujitsu FM-7 (два 6809), Dragon 32/64 (клоны CoCo), а также в SWTPC, Gimix, Smoke Signal Broadcasting и других системах с шиной SS-50, включая несколько систем для разработки серии EXORmacs самой компании Motorola. Во Франции компания Thomson SA выпустила большую серию компьютеров на основе процессора 6809E — TO7, TO7/70, TO8, TO8D, TO9, TO9Plus, MO5, MO6, MO5E и MO5NR.
Процессор также применялся в ряде аркадных игровых автоматов начала 1980-х годов. В частности, его часто использовала компания Williams Electronics, например, в таких аркадных хитах, как Defender, Joust, Sinistar и Robotron: 2084. Эта компания также использовала процессор во многих своих пинбол-машинах, впоследствии создав на его основе специализированную плату Williams Pinball Controller.
Компания Microware разработала специальную операционную систему OS-9 (не имеет отношения к Mac OS 9) для процессора 6809. Впоследствии она была портирована на процессоры Motorola 68000, Intel 80386 и PowerPC.
Компания Hitachi выпустила усовершенствованную версию процессора, Hitachi 6309. Он отличался наличием дополнительных регистров и команд, включая команды блочного копирования, дополнительные команды умножения и команды деления с аппаратной реализацией. Этот процессор использовался для неофициального расширения компьютеров CoCo 3. Была разработана специальная версия OS-9 под названием NitrOS-9, поддерживающая дополнительные возможности процессора.
Hitachi также выпускала собственные компьютеры с процессором 6809, предназначенные для внутреннего японского рынка — MB6890 и более поздний S1. Эти компьютеры также экспортировались в Австралию. Там MB6890 получил прозвище «Peach» (персик), вероятно в качестве иронического указания на популярность компьютеров Apple II. Компьютер S1 отличался присутствием аппаратуры, расширяющей адресное пространство процессора (64 КБ) до 1 мегабайта, представленного в виде 4-килобайтных страниц. Аналогичная аппаратура присутствовала в компьютерах компаний SWTPC, Gimix и некоторых других. Компания Technical Systems Consultants разработала Unix-подобную операционную систему, uniFlex, которая работала только на таких компьютерах. Операционная система OS-9 Level II также использовала преимущества такого метода управления памятью. Большинство других компьютеров того времени использовали для увеличения объёма адресуемой памяти технику переключения страниц, когда в большую часть адресного пространства (например, 16 КБ) включалась часть доступной памяти.
В настоящее время компании Motorola и Hitachi не производят процессоры 6809 или их варианты. Существуют VHDL-реализации процессора, предназначенные для встраиваемых применений с использованием программируемой логики и способные работать на частотах до 40 МГц. Некоторые команды 6809 также присутствуют в процессорах Freescale.
Технические характеристики
[править | править код]- Тактовая частота (МГц): от 0,89 до 4, первоначально выпускались с частотой 1; 1,5 и 2 МГц.
- Разрядность регистров: 8/16 бит
- Разрядность шины данных: 8 бит
- Разрядность шины адреса: 16 бит
- Объём адресуемой памяти: 64 Кбайт
- Адресное пространство I/O: Нет
- Количество транзисторов: 9 000
- Техпроцесс (нм): 6000 (6 мкм) (по другим данным, 5 мкм)
- Площадь кристалла (кв. мм): 21
- Максимальное тепловыделение: 1 Вт
- Напряжение питания: +5 В
- Разъём: нет (микросхема припаивалась к плате)
- Корпус: 40-контактный керамический или пластиковый DIP, позже — 44-контактный PLCC
Источники
[править | править код]- Leventhal, Lance (1981). 6809 Assembly Language Programming. Osborne/McGraw-Hill. ISBN 0-931988-35-7.
- Warren, Carl D (1980). The MC6809 Cookbook. TAB Books, Inc. ISBN 0-8306-9683-0.
Примечания
[править | править код]- ↑ Описание Motorola 6809 . CPU-Collection.de. Дата обращения: 8 июня 2011. Архивировано из оригинала 24 марта 2012 года.
Ссылки
[править | править код]- 6809 Emulation Page — документация и утилиты (англ.)
- Статьи из журнала BYTE (январь-февраль 1979) Архивная копия от 15 февраля 2010 на Wayback Machine (в формате PDF) — написаны Terry Ritter и Joel Boney, участвовавшими в разработке процессора 6809 (англ.)
- Группа Usenet, посвящённая процессору 6809 (англ.)
- Эмулятор 6809 на основе системы SWTPC 6809 (англ.)
- Набор команд процессоров 6809/6309 (в формате PDF) (англ.)
- An JavaScript emulation of Motorola 6809 CPU (англ.)