Motorola 6809

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
1 MHz процесор Motorola 6809P, що виготовлений в 1983.

Motorola 6809 — 8-розрядний мікропроцесор, випущений компанією Motorola в 1979 році. Мав значну перевагу перед своїм попередником, Motorola 6800, а також перед процесором MOS Technology 6502, створеним оригінальної командою розробників 6800, що пішли з компанії Motorola.

Опис[ред. | ред. код]

Серед значних удосконалень, що з'явилися в процесорі 6809, були два 8-розрядних акумулятора (A і B, які могли об'єднуватися в один 16-розрядний регістр D), два 16-розрядних індексних регістра (X і Y) і два 16-розрядних покажчика стека (V і S). Індексні регістри та регістри покажчика стека дозволяли використовувати різноманітні методи адресації.

Процесор 6809 зберігав зворотну сумісність з Motorola 6800 на рівні програмного коду. Проте, число команд було знижено з 78 до 59. Деякі команди були замінені загальнішими, для забезпечення сумісності асемблер замінював старі команди їх новими аналогами під час трансляції. Набори команд і регістрів мали велику ортогональность, що робило написання програм для процесора простішим у порівнянні з процесорами Motorola 6800 або 6502.

Серед інших можливостей була присутня одна з перших апаратних реалізацій інструкції множення, повна 16-розрядна арифметика та швидка система перериваннь. Процесор був сильно оптимізував і працював до п'яти разів швидше, ніж процесори серії Motorola 6800. У процесорі збереглася недокументированная інструкція тестування шини адреси, що з'явилася в процесорі 6800. Вона дозволяла обійти обмеження деяких контролерів пам'яті і отримала назву Halt and Catch Fire (HCF).

На відміну від багатьох процесорів того часу, процесор не використовував мікрокод. Його кінцевий автомат і керуюча логіка були в основному реалізовані у великій ПЛМ і асинхронної випадкової логіці (загальна риса ранніх конструкцій, а також RISC-процесорів). Тому один машинний цикл виконувався лише за один такт, що було перевагою перед, наприклад, процесором Zilog Z80 (одним з головних конкурентів 6809). Наприклад, команда ADDA 63 виконувалась за три такти на 6809, тоді як виконання аналогічної команди ADD A, 63 процесора Z80 вимагало семи тактів. Теоретично для досягнення однакової продуктивності при виконанні цієї операції Z80 вимагав мінімум удвічі більше високої частоти. Однак, більш синхронний дизайн Z80 дозволяв використовувати більш високу (в 3-5 разів) тактову частоту в порівнянні з 6809, Motorola 6800 або Motorola 6502, без необхідності використання більш швидкодіючої пам'яті (що часто було головним обмеженням).

Було випущено кілька версій процесора, розрахованих на різну тактову частоту — 6809 (1 МГц), 68A09 (1.5 МГц) і 68B09 (2 МГц). Звичайні версії процесора вбудований генератор тактової частоти, що вимагає тільки зовнішнього кварцового резонатора. Також існували версії з буквою E в кінці позначення (6809E, 68A09E, 68B09E), що вимагають використання зовнішнього генератора тактової частоти. Згодом сторонні виробники, зокрема компанія Hitachi, випустили більш швидкодіючі варіанти процесора.

Історія[ред. | ред. код]

Процесор 6809 іноді називають концептуальним попередником сімейства процесорів Motorola 68000, що є помилкою. Обидва проекти розроблялися паралельно і були завершені в 1979 році. Між ними є певна схожість — зокрема, гнучкість методів адресації і велика ортогональность. Також є певна схожість мнемонік та синтаксису асемблера. Але процесор 6809 розвивав ідеї процесора Motorola 6800, тоді як процесор 68000 був повністю новою розробкою. Версія 68000 з восьмирозрядний шиною даних (Motorola 68008) призначалася для використання в майбутніх 8-розрядних системах, тому 6809 швидко став еволюційним тупиком.

Команда розробників процесора вважала, що майбутнім користувачам процесора можуть знадобитися ПЗП з готовим кодом для вирішення поширених завдань, таких, як обчислення з плаваючою точкою. Це могло дозволити розробникам систем на основі процесора не витрачати час на розробку власного коду. Так як розробники процесора не могли заздалегідь знати, де буде розташований код ПЗП в адресному просторі системи, пристрій процесора було орієнтовано на можливість виконання рентрабельних підпрограм, що розташовуються в будь-якому місці адресного простору. Ця можливість не була використана в зазначених цілях на практиці. Єдиним випущеним компанією Motorola ПЗП з кодом стала мікросхема MC6839, що містить код для обчислень з плаваючою точкою. Однак, такий пристрій процесора дозволило створити такі просунуті операційні системи, як OS-9 і UniFlex, які використовували можливість виконання реентрабельного коду, не прив'язаного до конкретними адресами в пам'яті.

Процесор 6809 був застосований у двопроцесорній комп'ютері Commodore SuperPET і в унікальній ігрової консолі Vectrex 68A09. Модифікація 6809E використовувалася в домашніх комп'ютерах TRS-80 Color Computer (CoCo), Acorn System 2, 3 і 4 (як опціональна альтернатива 6502), Fujitsu FM-7 (два 6809), Dragon 32/64 (клони CoCo), а також у SWTPC, Gimix, Smoke Signal Broadcasting та інших системах з шиною SS-50, включаючи кілька систем для розробки серії EXORmacs самої компанії Motrola. У Франції компанія 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.

Джерела[ред. | ред. код]

Література[ред. | ред. код]

  • 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.