Motorola 6800

Перейти к навигацииПерейти к поиску
Motorola MC6800
Центральный процессор
Микропроцессор Motorola 6800
Микропроцессор Motorola 6800
Производство 1974
Производители
Частота ЦП 0,8—2 МГц
Технология производствамкм
Наборы инструкций72 инструкции
Разъём
Ядра
Заготовка для распайки выводов кристалла

Motorola 6800 — первый 8-разрядный микропроцессор фирмы Motorola. Его разработка была закончена в начале 1974 года, практически одновременно с микропроцессором Intel 8080. Однако из-за технологических трудностей его массовое производство началось лишь более полугода спустя после начала поставок 8080. Это привело к тому, что первые популярные микрокомпьютеры были сделаны на Intel 8080.

Система команд 6800 включает 72 документированные команды, использующие 7 методов адресации, а также несколько недокументированных бесполезных команд, из которых лишь команда «Halt and Catch Fire» (HCF) полезна при поиске дефектов шины адреса[1]. Возможно, это был первый микропроцессор с индексным регистром. Считается, что архитектура процессора 6800 заимствована у PDP-11.

Первая версия кристалла 6800 1974 года содержала 4000 транзисторов, но технология была устаревшей относительно конкурентов и процент выхода годных (ПВГ) микросхем при производстве низок. Через 1,5 года кристалл был переработан на более новую технологию (depletion-mode), что позволило резко увеличить ПВГ и одновременно поднять тактовую частоту до 2 МГЦ, но число транзисторов при этом увеличилось до 5000. С марта 1977 начался выпуск улучшенной версии 6800 — процессора 6802. Он не нуждался в задающем генераторе 6875 и имел внутри кристалла ОЗУ в 128 байт, но число транзисторов в нём увеличилось уже до 11 тысяч. 6808 — отбраковка 6802 без ОЗУ на кристалле.

На этом развитие и история самого процессора 6800 закончились. Микроконтроллеры, начиная с 6801 имели уже расширенную систему команд, а 6809, разработанный в 1979 году, — это несовместимый по кодам команд процессор, хотя при наличии исходного текста, программы написанные для 6800, перетранслируются под 6809, что упрощало апгрейд.

Программная модель

7 A0
7 B0
15 X0
15 PC0
15 SP0
7 CCR0

A — аккумулятор A
B — аккумулятор B
X — индексный регистр
PC — программный счётчик
SP — указатель стека
CCR — регистр флагов (Conditional Code Register)

Применение 6800

6800 как процессор для ЭВМ имел сравнительно скромный успех лишь в микрокомпьютерах первой волны (1975—1978). Роль сыграла случайность и субъективный фактор — ошибочный маркетинг (6800 вначале не продавался в розницу) и то, что разработчики процессоров Motorola в 70-е годы постоянно опаздывали. Злую шутку сыграли бывшие разработчики 6800, организовавшие свою фирму и выпустившие в 1975 году значительно более дешёвый процессор MOS 6502. Его агрессивный маркетинг, преувеличенная реклама и демпинговая ценовая политика существенно снизили использование 6800.

Хотя успех микроконтроллеров серии 680x (которые производятся до сих пор) доказал, что архитектура процессора и его система команд вполне конкурентны. В 1977 году 6800 на такте 2 МГц превзошёл вдвое по производительности процессор 8080, но другие конкуренты сработали лучше, — к тому времени появился Z80 с частотой 4 МГц. Процессор 6800 лишь проложил путь к ставшему самым лучшим 8-разрядным процессором 6809.

Процессор 6800 если и уступал по производительности процессору 8080, то немного. Это ещё раз проиллюстрировал созданный в конце 80-х успешный болгарский компьютер Пылдин-601. В нём уже устаревший на 15 лет болгарский клон 6800 на частоте всего 1 МГц работал с графикой 640x200 ничуть не медленнее, чем аналогичные машины, имеющие такой же экран, но использующие процессор 8080 на такте 2 МГц.

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

6800 в качестве процессора использовали компьютеры SWTPC 6800, MITS Altair 680 (дешёвый вариант Altair 8800), Ohio Scientific, Gimix, Smoke Signal Broadcasting, Midwest Scientific и Newbear 77/68 и игровая консоль APF MP1000. Некоторые из этих моделей были пиратскими клонами. Самым развитым и массовым был SWTPC 6800, но в целом большую часть рынка подобных изделий захватили процессоры 8080 и 6502.

Эти компьютеры полукустарным способом выпускали мелкие фирмы из нескольких десятков сотрудников и к 1978 году по мере появления первых массово выпускаемых промышленных изделий (VIC-20, TRS-80, Apple-II) все эти фирмы, кроме SWTPC, разорились и вышли из бизнеса. Фирма SWTPC продержалась до начала 80-х, хотя для этого процессор в компьютере пришлось заменить на более мощный 6809.

Помимо компьютеров, процессор 6800 нашёл применение в кассовых терминалах, автомобилях и игровых автоматах 70-х годов. Изделия на процессоре 6800 были более дешёвыми, чем аналогичные на Intel 8080, что вызывалось наличием у последнего 3 источников питания, большим числом БИС обрамления и тем, что код 8080 — менее компактный, что было важно при высокой стоимости ОЗУ и ПЗУ. Но при том же времени доступа к ОЗУ Intel 8080 обеспечивал бо́льшую производительность.

Дальнейшее развитие системы команд 6800 связано с микроконтроллерами. На этом рынке производным от 6800 микроконтроллерам удалось преуспеть.

Микроконтроллеры

6802 — процессор, но наличие внутри кристалла ОЗУ позволяло его использовать и как двухкристальный микроконтроллер, для чего он работал в паре с 6846, содержащим ПЗУ, таймер и порты.

Микроконтроллеры 6801, 6803 и 6805 ещё можно относить к процессорам 6800, хотя они и отличаются от 6800/6802 наличием дополнительных команд, тем не менее их можно использовать как процессор и построить на них компьютер, полностью совместимый с 6800. Последующие микроконтроллеры на базе 6800 уже не совместимы, имеют другую архитектуру и, строго говоря, не должны входить в семейство 6800.

Разработка однокристального микроконтроллера 6801 была закончена одновременно с 6802. Он объединял на одном кристалле улучшенный вариант 6802 (добавлено 10 новых команд, в том числе аппаратно реализованное умножение) с внутренним генератором, ПЗУ 2 кБ, ОЗУ 128 байт, последовательный интерфейс, один 16-разрядный таймер и 29 I/O портов. А 6803 — это вариант 6801 с внешним ПЗУ. Первый опыт применения 6801 в контроллере автомобиля оказался неудачным, — контроллер ощутимо увеличивал цену автомобиля. Высокая цена первых 6801 была обусловлена проблемами технологии из-за большого числа транзисторов на кристалле (их было 35 000, что больше, чем у 8086 и 8088). Чтобы исправить ситуацию, в 1979 был выпущен изначально разрабатывавшийся как «low cost» упрощённый вариант 6801 под именем 6805, который, благодаря низкой цене, получил широкое распространение (и выпускается до сих пор как 68HC05).

Но и 6801 не был заброшен. В начале 80-х его кристалл был переработан по новой технологии, что позволило в новой версии 6801/U4 не только многократно снизить цену, но одновременно существенно улучшить параметры. Hitachi выпустила более развитый клон 6801, имеющий доп. команды под именем HD63x01 (x — A/B/C — означают тактовую частоту), а затем — и полностью свой процессор HD63x03 (уже в DIP 64) в который добавлены два параллельных порта, второй таймер, удвоено ОЗУ и ПЗУ, введены режимы энергосбережения. Оба японских процессора прогоняют команды за меньшее число тактов.

В 1985 году в микроконтроллер 6801 был добавлен второй индексный регистр, улучшены битовые операции. Этот микроконтроллер под наименованием 68HC11 производился в множестве вариаций (и производится до сих пор), хотя из-за наличия второго индексного регистра логичнее считать его производным от 6809. В начале 90-х на смену 68HC05 пришёл 68HC08. В 1995 году на базе MC68HC11 был разработан MC68HC12. Но все эти микроконтроллеры имеют отношение к 6800 лишь по происхождению и имеют другую архитектуру и систему команд.

Микроконтроллеры, производные от 6800, широко использовались в автомобилестроении, контроллерах промышленного оборудования (роботизированные линии производства), а микроконтроллер 6803 в 1983 году был применён в качестве ЦП в бытовом компьютере TRS-80 MC-10 и в его европейском клоне Matra Alice (а также в более развитых версиях Alice 32 и Alice 90).

Периферия

  • MC6810 ОЗУ на 128 байт
  • MC6818 часы реального времени (использовались в IBM PC AT)
  • MC6820/6821 «PIA» адаптер параллельного интерфейса (GPIO / параллельный порт)
  • MC6828 «PIC» контроллер прерываний
  • MC6830 ПЗУ на 1 Кб
  • MC6840 счётчик/таймер
  • MC6843 контроллер дисковода
  • MC6844 DMA-контроллер
  • MC6845 контроллер ЭЛТ (использовался в MDA и CGA)
  • MC6846 ПЗУ + счётчик/таймер + порты I/O
  • MC6847 «VDG» — видеоконтроллер
  • MC6850 «ACIA» — адаптер асинхронного последовательного интерфейса
  • MC6852 «SSDA» — синхронный последовательный интерфейс
  • MC6854 «ADLC» — усовершенствованный связной контроллер
  • MC6860 модем на 600 бод
  • MC6862 модулятор для модема на 2400 бод
  • MC6870 задающий генератор для 6800
  • MC6875 улучшенная версия MC6870
  • MC6883 «SAM» — вспомогательная БИС для VDG 6847 и контроллер DMA

Клоны и производные

В НРБ производился полный клон процессора 6800 под названием СМ601, который использовался в промышленных контроллерах и одном бытовом компьютере. Японская фирма Hitachi, кроме выпуска по лицензии клонов микропроцессоров Motorola, разработала собственные улучшенные их версии — Hitachi 6301 и Hitachi 6303 с расширенным набором инструкций, которые могли выполнять код, написанный для 6800.

На основе 6800 были разработаны однокристальные контроллеры Freescale 68HC08, Freescale 68HC11 и Freescale 68HC12.

Примечания

  1. Wheeler, Gerry. Undocumented M6800 Instructions (англ.) // BYTE : magazine. — 1977. — December (vol. 2, no. 12). — P. 46—47. (англ.) Halt and Catch Fire instruction.

Ссылки