MC680x0/680x0/0x0/m68k/68k/68K — семейство CISC-микропроцессоров компании Motorola, основной конкурент процессоров семейства Intelx86 в персональных компьютерах 1980-х и первой половине 90-х. Перестав использоваться как основа персональных компьютеров в начале 2000-х, семейство продолжает использоваться в секторе встраиваемых решений (хотя это семейство морально устарело и для этого сектора, ибо многими фирмами производятся более доступные и производительные процессоры/контроллеры: ARM (в частности, STM32), AVR32, PIC32 (он же MIPS) и прочие на основе RISC-архитектур). Характерно то, что наиболее современная серия микроконтроллеров DragonBall MX (позже переименованная в i.MX, а также известная как MC9328MX) предназначена для тех же применений, что и ранние серии DragonBall, но основана на процессорном ядре ARM9 или ARM11 вместо Motorola 68000.
Линейка процессоров m68k использовалась на различных системах, от калькуляторов Texas Instruments (TI-89 Titanium, TI-92, Voyage 200), военных терминалов связи ВМФ США AN/USQ-83,[1] до критичных систем управления Спейс Шаттла.[2]
На 2020 год на базе старших моделей этой популярной[3][4] процессорной линейки (чаще всего используются Freescale ColdFire v5x и DragonBall) проектируются в основном embedded-решения. Архитектура m68k поддерживается операционными системами Debian Linux[5], NetBSD (архитектуры amiga, atari, cesfic, hp300, luna68k, mac68k, mvme68k, news68k, next68k, sun3, x68k)[6] и OpenBSD (архитектуры amiga[7] и mac68k[8]), также, энтузиастами иногда создаются и обновляются дистрибутивы Linux[9]. Проприетарные ОС AmigaOS 4 и MorphOS поддерживают архитектуру m68k на уровне JIT-эмуляции. Также обновляется классическая AmigaOS для m68k: 1 октября2018 компания Hyperion Entertainment выпустила[10]AmigaOS 3.1.4, а 30 июня2019 года выпустила[11][12] обновлённую AmigaOS 3.1.4.1, которая на 2020 год продаётся через дилерскую сеть[13]. В 2020 году началась разработка AmigaOS 3.2 для архитектуры классической Amiga m68k[14].
Архитектура
Язык ассемблера M68k схож с ассемблером PDP-11 и VAX. Несмотря на исключение в виде разделения регистров общего назначения на специализированные регистры адресов и регистры данных, архитектура 68000 во многом — 32-битная версия PDP-11. Несмотря на то, что система команд с самого начала описывает 32-битную машину, первое поколение процессоров (до 68020) имело 16-битное АЛУ, из-за чего иногда процессор описывается как имеющий смешанную битность 16/32. При этом 32-битные команды с данными выполнялись в несколько действий с 16-битным АЛУ, но блок адресации сразу был 32-битным, поэтому индексация памяти и вычисления адресов не страдали по быстродействию с самого начала. Когда в 68020 АЛУ сделали 32-битным, то ничего не надо было делать с уже существующим кодом, чтобы он начал работать «на полной скорости 32 бит».
Набор инструкций значительно более «ортогонален», чем у многих процессоров, появившихся ранее (как i8080). На практике это означает, что возможно свободно комбинировать операции и операнды, со всем богатством режимов адресации, не задумываясь об ограничениях совместимости конкретной операции и набора операндов. Эта особенность существенно облегчает программирование на ассемблере 68k, в определённой степени приближая его к языкам высокого уровня, а также существенно облегчает создание кода компиляторами.
Инструкции 68k можно разделить на несколько крупных групп:
Операции с памятью (Load&store — Move.B, Move.W, Move.L);