Motorola 68000 series

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:23, 10 декабря 2016.
(перенаправлено с «M68k»)
Motorola 68000
Дизайнер Motorola
Биты 32-bit
Представлен 1979
Дизайн CISC
Порядок байтов Big
Регистры
Общее назначение 8 × 32-бит + 7 адресных регистров
FPU (Floating Point Unit) 8 × 80-bit если присутсвует FP

MC680x0/680x0/0x0/m68k/68k/68K — семейство CISC-микропроцессоров компании Motorola, основной конкурент процессоров семейства Intel x86 в персональных компьютерах 1980-х и ранних 90-х. В начале 2000-х годов, перестав использоваться как основа персональных компьютеров, семейство продолжает использоваться в секторе встраиваемых решений (хотя это семейство морально устарело и для этого сектора, ибо многими фирмами производятся более доступные и производительные процессоры/контроллеры: ARM, AVR32, PIC32 (он же MIPS) и прочие на основе RISC архитектур). Характерно то, что наиболее современная серия микроконтроллеров DragonBall MX (позже переименованная в i.MX, а также известная как MC9328MX) предназначена для тех же применений, что и ранние серии DragonBall, но основана на процессорном ядре ARM9 или ARM11 вместо Motorola 68000.

Предсерийный чип XC68000, произведённый в 1979 г..

Область применения

Линейка процессоров m68k использовалась на различных системах, от калькуляторов Texas Instruments, TI-89, военных терминалов связи до критичных систем управления Спейс Шаттла.

На базе процессоров m68k было построено множество платформ персональных компьютеров, самыми известными из которых являются: Apple Macintosh, Commodore Amiga и Atari ST. Надо отметить, что популярный КПК Palm также изначально использовал процессоры Motorola.

На сегодняшний день, на базе старших моделей этой популярной процессорной линейки (сегодня, чаще всего используются Freescale ColdFire и DragonBall) проектируются в основном embedded-решения и некоторые КПК. Архитектура m68k поддерживается операционными системами Debian Linux, NetBSD и OpenBSD, также, энтузиастами иногда обновляются и другие дистрибутивы Linux. Проприетарные ОС AmigaOS 4 и MorphOS поддерживают архитектуру m68k на уровне JIT-эмуляции).

Архитектура

Язык ассемблера M68k схож с ассемблером PDP-11 и VAX. Несмотря на исключение в виде разделения регистров общего назначения на специализированные регистры адресов и регистры данных, архитектура 68000 во многом — 32-битная версия PDP-11.

Набор инструкций значительно более «ортогонален», чем у многих процессоров, появившихся как ранее (как i8080), так и после (как семейство x86) (на самом деле архитектура x86 появилась за год до выхода первого процессора M68000). На практике это означает, что возможно свободно комбинировать операции и операнды, со всем богатством режимов адресации, не задумываясь об ограничениях совместимости конкретной операции и набора операндов. Эта особенность существенно облегчает программирование на ассемблере 68k, в определённой степени приближая его к языкам высокого уровня, а также существенно облегчает создание кода компиляторами[1].

Инструкции 68k можно разделить на несколько крупных групп:

  • Операции с памятью (Load&store — Move.B, Move.W, Move.L);
  • Арифметика (Add, Sub, Mul, Div);
  • Побитное смещение (влево и вправо, логическое и арифметическое);
  • Циклические битовые сдвиги (ROR, ROL, ROXL, ROXR);
  • Логические операции (And, Or, Not, EOr);
  • Конверсия типов (байт в слово и наоборот);
  • Условное и безусловное ветвление (Bra, BCS, BEq, BNE, BHI, BLO, BMI, BPL, etc.);
  • Вызов подпрограмм и возврат из них (BSR, RTS);
  • Управление стеком (push, pop);
  • Вызов и обработка прерываний;
  • Обработка ошибок и исключений.

Процессоры семейства Motorola 68k

  • Первое поколение
Motorola MC68000FN8.jpg
    • Motorola 68000 — 32-разрядное ядро; 68000 транзисторов; 16-битная шина данных/24-битная шина адресов; частота 8-16 МГц; 64 или 68 контактов.
      • DIP версии
        • Motorola 68000L
        • Motorola 68000L8
        • Motorola 68HC000P8
        • Motorola 68000P8
        • Motorola 68000P12
        • Motorola 68000P12F
        • Motorola 68HC000P12F
      • PGA версии
        • Motorola 68HC000RC10
        • Motorola 68000R12
      • PLCC версии
        • Motorola 68000FN8
        • Motorola 68HC000FN8
        • Motorola 68000FN10
        • Motorola 68HC000FN12
        • Motorola 68HC000FN12F
        • Motorola 68EC000FN16
        • Motorola 68HC000FN16
    • Motorola 68008 — 32-разрядное ядро; 70000 транзисторов; 8-битная шина данных/20-битная шина адресов; частота 8-10 МГц; 48 контактов.
    • Motorola 68010 — 32-разрядное ядро; усовершенствование MC68000; 84000 транзисторов; 16-битная шина данных/24-битная шина адресов; частота 8-12 МГц; 64 или 68 контактов.
    • Motorola 68012
  • Второе поколение (32-разрядные шины доступа к данным)
    • Motorola 68020
    • Motorola 68EC020
    • Motorola 68030
    • Motorola 68EC030
  • Третье поколение (конвейерные)
Motorola 68040
    • Motorola 68040
    • Motorola 68EC040
    • Motorola 68LC040
  • Четвёртое поколение (суперскалярные)
    • Motorola 68060
    • Motorola 68EC060
    • Motorola 68LC060
  • Семейства — потомки m68k
    • Motorola CPU32 (также известны как Motorola 68330)
    • Motorola 68360 (также известны как QUICC)
    • ColdFire
    • Motorola DragonBall

История улучшения

  • 68010
    • Виртуальная поддержка памяти (рестартуемые инструкции)
    • Режим петли" для более быстрой памяти строки и библиотеки примитивов
  • 68020
    • 32-битный адрес и арифметико-логическое устройство (ALU)
    • Три этапа трубопровода
    • Кэш команд 256 байт
    • Неограниченное слово и длинное слово доступа к данным (см выравнивание)
    • способность 8 × многопроцессорная
    • Изображение большего размера умножим (32 × 32 -> 64 бит) и поделить (64 ÷ 32 -> 32 бит частное и 32 бита остаток) инструкции, и битовое поле Манипуляции
    • Режимы адресации добавлен масштабируемую индексацию и еще один уровень косвенности
    • Низкая стоимость, EC = 24-битный адрес
  • 68030
    • Разделение команд и кэш данных 256 байт каждый
    • На чипе блок управления памятью (MMU) (68851)
    • Низкая стоимость EC = Нет MMU
    • Пакетный интерфейс памяти
  • 68040
    • Кэши команд и данных по 4 Кб каждая
    • Шесть этап трубопровода
    • На чипе с плавающей точкой (FPU)
    • FPU не хватает IEEE трансцендентной функции способности
    • эмуляции FPU работает с 2E71M и более поздних версиях чипов
    • Низкая стоимость LC = Нет FPU
    • Низкая стоимость EC = Нет FPU и MMU
  • 608060
    • Кэши команд и данных по 8 Кбайт каждый
    • 10 ступенчатый конвейер
    • Два цикла единиц целого умножения
    • Отделение прогнозирования
    • Трубопровод двойной инструкции
    • Инструкции в блоке формирования адреса (AGU) и тем самым поставляет результаты в два цикла перед АLU
    • Низкая стоимость LC = MMU
    • Низкая стоимость EC = No ММУ & FPU
Год CPU Чит Частота (макс) [в MHz] Разрядность Блок управления памятью Плавающая точка
1979 68000 64-pin dual in-line package (DIP), 68-pin LCC, 68-pin pin grid array (PGA) 8–20 24 - -
1982 Motorola 68010 64-pin DIP, 68-pin PLCC, 68-pin PGA 8–16.67 24 Motorola 68451 -
1984 Motorola 68020 114-pin PGA 12.5–33.33 32 Motorola 68851 Motorola 68881
- Motorola 68020 100-pin QFP 16.7–25 24 -
1987 Motorola 68030 132-pin QFP (max 33 MHz), 128-pin PGA 16–50 32 MMU 68881
Motorola 68030 132-pin QFP, 128-pin PGA 25 32 - Motorola 68881
1991 Motorola 68040 179-pin PGA, 184-pin QFP 20–40 32 MMU FPU
Motorola 68040 PGA, 184-pin QFP 20–33 32 MMU -
Motorola 68040 20–33 32 - -
1994 Motorola 68060 206-pin PGA 50–75 32 MMU FPU
Motorola 68060 206-pin PGA, 208-pin QFP 50–75 32 MMU -
Motorola 68060 206-pin PGA 50–75 32 - -

Примечания

  1. Motorola 680x0 [Электронный ресурс] : Материал из Википедии — свободной энциклопедии: — Режим доступа:https://ru.wikipedia.org/wiki/Motorola_680x0