Серия Motorola 68000 - Motorola 68000 series

Motorola серии 68000
Дизайнер Motorola
Биты 32-битный
Введено 1979 ; 42 года назад ( 1979 )
Дизайн CISC
Разветвление Код состояния
Порядок байтов Большой
Регистры

Серия Motorola 68000 (также известная как 680x0 , m68000 , m68k или 68k ) представляет собой семейство 32-разрядных микропроцессоров компьютера со сложным набором команд (CISC) . В 1980 - х и начале 1990 - х годов, они были популярны в персональных компьютерах и рабочих станциях и были основными конкурентами Intel «s x86 микропроцессорах. Они были наиболее известны как процессоры, использовавшиеся в ранних версиях Apple Macintosh , Sharp X68000 , Commodore Amiga , Sinclair QL , Atari ST , Sega Genesis (Mega Drive), Capcom System I (Arcade), AT&T UnixPC , Tandy Model 16 / 16B / 6000 , Sun Microsystems Sun-1 , Sun-2 и Sun-3 , компьютер NeXT , калькуляторы Texas Instruments TI-89 / TI-92 , Palm Pilot (все модели под управлением Palm OS 4 .x или более ранней версии) и Space Shuttle . Хотя ни один из современных настольных компьютеров не основан на процессорах серии 680x0, производные процессоры по-прежнему широко используются во встроенных системах .

Motorola прекратила разработку архитектуры серии 680x0 в 1994 году, заменив ее архитектурой PowerPC RISC , которая была разработана совместно с IBM и Apple Computer в рамках альянса AIM .

Члены семьи

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

68010 :

  • Поддержка виртуальной памяти (перезапускаемые инструкции)
  • 'режим цикла' для более быстрых примитивов строк и библиотек памяти
  • инструкция умножения использует на 14 тактов меньше

68020 :

68030 :

  • Разделить кэш инструкций и данных по 256  байт каждый
  • На чипе блок управления памятью (MMU) (68851)
  • Низкая стоимость EC = без MMU
  • Интерфейс пакетной памяти

68040 :

  • Кеши инструкций и данных по 4  КБ каждый
  • Шестиступенчатый конвейер
  • Встроенный блок с плавающей запятой (FPU)
  • FPU отсутствует IEEE трансцендентной функции способность
  • Эмуляция FPU работает с чипами 2E71M и более поздних версий.
  • Низкая стоимость LC = без FPU
  • Низкая стоимость EC = без FPU или MMU

68060 :

  • Кеши инструкций и данных по 8 КБ каждый
  • 10-ти ступенчатый конвейер
  • Двухцикловый блок целочисленного умножения
  • Прогноз ветвления
  • Конвейер с двумя инструкциями
  • Инструкции в блоке генерации адреса (AGU) и, таким образом, выдача результата за два цикла до ALU
  • Низкая стоимость LC = без FPU
  • Низкая стоимость EC = без FPU или MMU

Карта функций

Год Процессор Упаковка Частота (макс.) [В МГц] Биты адресной шины MMU FPU
1979 г. 68000 64-контактный двухрядный корпус (DIP) , 68-контактный LCC , 68- контактный решетчатый массив (PGA) 8–20 24 - -
1982 г. 68010 64-контактный DIP , 68-контактный PLCC , 68-контактный PGA 8–16,67 24 68451 -
1984 68020 114-контактный PGA 12,5–33,33 32 68851 68881
- 68 EC 020 100-контактный Quad Flat Package (QFP) 16,7–25 24 - -
1987 г. 68030 132-контактный QFP (макс. 33 МГц ), 128-контактный PGA 16–50 32 MMU 68881
68 EC 030 132-контактный QFP , 128-контактный PGA 25 32 - 68881
1991 г. 68040 179-контактный PGA , 184-контактный QFP 20–40 32 MMU FPU
68 LC 040 PGA , 184-контактный QFP 20–33 32 MMU -
68 EC 040 20–33 32 - -
1994 г. 68060 206-контактный PGA 50–75 32 MMU FPU
68 LC 060 206-контактный PGA , 208-контактный QFP 50–75 32 MMU -
68 EC 060 206-контактный PGA 50–75 32 - -

Основные виды использования

В качестве основного процессора Sega Genesis использовала 68000 с тактовой частотой 7,67 МГц.

Линия процессоров 680x0 использовалась во множестве систем, от современных высокопроизводительных калькуляторов Texas Instruments (линии TI-89 , TI-92 и Voyage 200 ) до всех членов серии Palm Pilot , на которых работает Palm. OS 1.x - 4.x (OS 5.x - на базе ARM ) и даже радиационно-стойкие версии в критических системах управления космического корабля "Шаттл" .

Тем не менее, семейство процессоров 680x0 стало наиболее известным как процессоры для современных настольных компьютеров и игровых консолей, таких как Apple Macintosh , Commodore Amiga , Sinclair QL , Atari ST , SNK NG AES / Neo Geo CD , Atari Jaguar. , Commodore CDTV и ряд других. Процессоры 680x0 также были предпочтительными в 1980-х годах для рабочих станций и серверов Unix, таких как UNIX PC от AT&T , Tandy Model 16 / 16B / 6000 , Sun-1 от Sun Microsystems , Sun-2 , Sun-3 , NeXT Computer , Silicon Graphics. (SGI) и многие другие. Существовала 68000 версия CP / M под названием CP / M-68K, которая изначально предлагалась в качестве операционной системы Atari ST, но вместо этого Atari выбрала Atari TOS . Многие системные порты CP / M-68K были доступны, например, TriSoft предложила порт CP / M-68K для Tandy Model 16 / 16B / 6000.

Кроме того, что, возможно, наиболее важно, первые несколько версий интерпретаторов Adobe PostScript были основаны на 68000. 68000 в Apple LaserWriter и LaserWriter Plus работал быстрее, чем версия, используемая тогда на компьютерах Macintosh. Быстрый 68030 в более поздних интерпретаторах PostScript, включая LaserWriter IIntx, IIf и IIg со стандартным разрешением (также 300 dpi), LaserWriter Pro 600 с более высоким разрешением (обычно 600 dpi, но ограничен до 300 dpi с минимальной установленной RAM) и очень высокий разрешение Linotronic фотовывода, то 200PS (1500+ точек на дюйм) и 300ПС (2500+ точек на дюйм). После этого Adobe обычно предпочитала RISC для своего процессора, поскольку ее конкуренты с их клонами PostScript уже перешли на RISC, часто это AMD серии 29000. Первые интерпретаторы Adobe PostScript на базе 68000 и их оборудование были названы в честь американских ракет и ракет времен холодной войны : Atlas, Redstone и т. Д.

Сегодня эти системы либо являются конечными (в случае Atari), либо используют другие процессоры (в случае Macintosh, Amiga, Sun и SGI). Поскольку пиковая доля этих платформ на рынке приходилась на 1980-е годы, их оригинальные производители либо больше не поддерживают операционную систему для этого оборудования, либо прекратили свою деятельность. Однако операционные системы Linux , NetBSD и OpenBSD по- прежнему включают поддержку процессоров 68000.

Процессоры 68000 также использовались в консолях Sega Genesis (Mega Drive) и SNK Neo Geo в качестве основного процессора. Другие консоли, такие как Sega Saturn, использовали 68000 для обработки звука и других задач ввода-вывода, в то время как Atari Jaguar включал 68000, который предназначался для базового управления системой и обработки ввода, но из-за необычного ассортимента разнородных процессоров Jaguar также был часто используется для запуска игровой логики. Многие игровые платы также использовали 68000 процессоров, включая платы от Capcom, SNK и Sega.

Микроконтроллеры семейства 68000 используются в самых разных приложениях. Например, микроконтроллеры CPU32 и ColdFire производятся миллионами в качестве контроллеров автомобильных двигателей.

Многие проприетарные системы редактирования видео используют 68000 процессоров. В этой категории мы можем назвать MacroSystem Casablanca, которая представляла собой черный ящик с простым в использовании графическим интерфейсом (1997 г.). Он был предназначен для рынка любительских и любительских видеооператоров. Стоит также отметить его более ранний, более крупный и более профессиональный аналог, названный "DraCo" (1995 г.). Революционная серия 24-битной системы рисования и эффектов Quantel Paintbox была первоначально выпущена в 1981 г., и за время ее существования использовалась почти весь спектр процессоров семейства 68000, за единственным исключением 68060, который никогда не был реализован в его конструкции. Другой конкурент на арене видео, система Abekas 8150 DVE, использовала 680EC30, а Trinity Play, позже переименованная в Globecaster, использует несколько 68030. Система видеографики Bosch FGS-4000/4500 производства Robert Bosch Corporation, позже BTS (1983), использовала 68000 в качестве основного процессора; он заставил нескольких других выполнять 3D-анимацию на компьютере, который мог легко применять затенение Гуро и Фонга. Он работал под управлением модифицированной операционной системы Motorola Versados.

Архитектура

Регистры Motorola серии 68000
3 1 ... 2 3 ... 1 5 ... 0 7 ... 0 0 (битовая позиция)
Регистры данных
D0 Данные 0
D1 Данные 1
D2 Данные 2
D3 Данные 3
D4 Данные 4
D5 Данные 5
D6 Данные 6
D7 Данные 7
Регистры адресов
A0 Адрес 0
A1 адрес 1
A2 Адрес 2
A3 Адрес 3
A4 Адрес 4
A5 Адрес 5
A6 Адрес 6
Указатели стека
A7 / USP Указатель стека (пользователь)
A7 '/ SSP Указатель стека (руководитель)
Счетчик команд
ПК Счетчик команд
Регистр статуса
  1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (битовая позиция)
  Т S M 0 я 0 0 0 Икс N Z V C SR

Люди, знакомые с PDP-11 или VAX, обычно чувствуют себя комфортно с серией 68000. За исключением разделения регистров общего назначения на специализированные регистры данных и адреса, архитектура 68000 во многих отношениях является 32-битным PDP-11.

У него был более ортогональный набор инструкций, чем у многих процессоров, которые были до (например, 8080) и после (например, x86). То есть обычно можно было свободно комбинировать операции с операндами, а не ограничиваться использованием определенных режимов адресации с определенными инструкциями. Это свойство сделало программирование относительно простым для людей, а также упростило написание генераторов кода для компиляторов.

Серия 68000 имеет восемь 32-битных регистров данных общего назначения (D0-D7) и восемь адресных регистров (A0-A7). Последний адресный регистр является указателем стека , и ассемблеры принимают метку SP как эквивалентную A7.

Кроме того, он имеет 16-битный регистр состояния. Старшие 8 бит - это системный байт, и его модификация является привилегированной. Младшие 8 бит - это пользовательский байт, также известный как регистр кода состояния (CCR), и его изменение не является привилегированным. Операции сравнения, арифметические и логические операции 68000 изменяют коды условий, чтобы записывать их результаты для использования в последующих условных переходах. Биты кода состояния - это «ноль» (Z), «перенос» (C), «переполнение» (V), «расширение» (X) и «отрицательный» (N). Флаг «extend» (X) заслуживает особого упоминания, потому что он отделен от флага переноса . Это позволяет отделить дополнительный бит арифметических, логических операций и операций сдвига от переноса для потока управления и связывания.

Хотя 68000 имел «режим супервизора», он не отвечал требованиям виртуализации Попека и Голдберга из-за единственной инструкции «MOVE from SR», которая копирует регистр состояния в другой регистр, будучи непривилегированным, но чувствительным. В Motorola 68010 и более поздних версиях это было сделано привилегированным, чтобы лучше поддерживать программное обеспечение виртуализации.

Набор команд серии 68000 можно разделить на следующие широкие категории:

В Motorola 68020 добавлены некоторые новые инструкции, которые включают некоторые незначительные улучшения и расширения для состояния супервизора, несколько инструкций для управления программным обеспечением многопроцессорной системы (которые были удалены в 68060), некоторая поддержка языков высокого уровня, которые мало использовались. (и был удален из будущих процессоров 680x0), большие инструкции умножения (32 × 32 → 64 бит) и деления (64 ÷ 32 → 32-битное частное и 32-битный остаток), а также манипуляции с битовыми полями.

Стандартные режимы адресации :

  • Зарегистрируйтесь прямо
    • регистр данных, например "D0"
    • адресный регистр, например "A0"
  • Зарегистрировать косвенный
    • Простой адрес, например (A0)
    • Адрес с постинкрементом, например (A0) +
    • Адрес с предварительным декрементом, например - (A0)
    • Адрес с 16-битным смещением со знаком, например 16 (A0)
    • Косвенный регистр с индексным регистром и 8-битным смещением со знаком, например 8 (A0, D0) или 8 (A0, A1)
    Обратите внимание, что для (A0) + и - (A0) фактическое значение приращения или уменьшения зависит от размера операнда: при доступе к байтам адресный регистр изменяется на 1, слово на 2 и длинное на 4.
  • ПК (счетчик программы) относительный со смещением
    • Относительное 16-битное смещение со знаком, например 16 (ПК). Этот режим был очень полезен для независимого от позиции кода.
    • Относительное с 8-битным смещением со знаком с индексом, например 8 (PC, D2)
  • Абсолютная ячейка памяти
    • Либо число, например "4000 долларов", либо символическое имя, переведенное ассемблером.
    • Большинство ассемблеров использовали символ «$» для шестнадцатеричного числа вместо «0x» или завершающего символа H.
    • Существовали 16- и 32-битные версии этого режима адресации.
  • Немедленный режим
    • Данные, хранящиеся в инструкции, например "# 400"
  • Быстрый немедленный режим
    • 3-битный беззнаковый (или 8-битный подписанный с помощью moveq) со значением, сохраненным в коде операции
    • В addq и subq 0 эквивалентно 8
    • например, moveq # 0, d0 был быстрее clr.l d0 (хотя оба сделали D0 равным 0)

Плюс: доступ к регистру состояния и, в более поздних моделях, к другим специальным регистрам.

В Motorola 68020 добавлен режим масштабированного адресации индексации и добавлен еще один уровень косвенного обращения ко многим ранее существовавшим режимам.

Большинство инструкций имеют суффиксы точечных букв, позволяющих выполнять операции с 8-битными байтами («.b»), 16-битными словами («.w») и 32-битными длинными («.l»).

Большинство инструкций являются двоичными , то есть у операции есть источник и место назначения, а место назначения изменяется. Примечательными инструкциями были:

  • Арифметика: ADD, SUB, MULU (беззнаковое умножение), MULS (знаковое умножение), DIVU, DIVS, NEG (аддитивное отрицание) и CMP (своего рода сравнение, выполняемое путем вычитания аргументов и установки битов состояния, но не сохраняет результат)
  • Десятичная арифметика с двоичным кодом : ABCD, NBCD и SBCD
  • Логика: EOR (исключающее ИЛИ), И, НЕ (логическое НЕ), ИЛИ (включающее ИЛИ)
  • Сдвиг: (логический, т.е. сдвиг вправо помещает ноль в самый старший бит) LSL, LSR, ( арифметический сдвиг , то есть знаковое расширение самого старшего бита) ASR, ASL, (вращается через eXtend, а не через eXtend) ROXL, ROXR, ROL, ROR
  • Битовый тест и манипуляции с памятью или регистром данных: BSET (установлено в 1), BCLR (очищено в 0), BCHG (инвертировать) и BTST (без изменений). Все эти инструкции сначала проверяют бит назначения и устанавливают (очищают) бит CCR Z, если бит назначения равен 0 (1), соответственно.
  • Управление многопроцессорностью : TAS, test-and-set , выполняет операцию неделимой шины, позволяя использовать семафоры для синхронизации нескольких процессоров, совместно использующих одну память
  • Поток управления: JMP (переход), JSR (переход к подпрограмме), BSR (переход относительного адреса к подпрограмме), RTS (возврат из подпрограммы ), RTE (возврат из исключения , т. Е. Прерывание), TRAP (запуск программного исключения, аналогичный к программному прерыванию), CHK (условное программное исключение)
  • Ветвь: Bcc (где «cc» указывает один из 14 тестов кодов состояния в регистре состояния: равно, больше, меньше, перенос и большинство комбинаций и логических инверсий, доступных из регистра состояния). Остальные два возможных условия (всегда истинно и всегда ложно) имеют отдельную мнемонику инструкций: BRA (всегда переходить) и BSR (переход к подпрограмме).
  • Decrement-and-branch: DBcc (где «cc» было как для инструкций ветвления), который, при условии, что условие было ложным , уменьшает младшее слово D-регистра и, если результат не был -1 ($ FFFF) , с разветвлением до пункта назначения. Такое использование -1 вместо 0 в качестве конечного значения позволило легко кодировать циклы, которые не должны были ничего делать, если счет был 0 для начала, без необходимости в другой проверке перед входом в цикл. Это также облегчило вложение DBcc.

68050 и 68070

68050 не было, хотя в какой-то момент это был проект Motorola. Релизы с нечетным номером всегда были реакцией на проблемы, поднятые в предыдущей части с четным номером; следовательно, в целом ожидалось, что 68050 снизит энергопотребление 68040 (и, следовательно, рассеивание тепла), улучшит обработку исключений в FPU, использует меньший размер функции и оптимизирует микрокод в соответствии с программным использованием инструкций. Многие из этих оптимизаций были включены в 68060 и были частью его проектных целей. По ряду причин, вероятно, что 68060 находился в разработке, что Intel 80486 не продвигался так быстро, как предполагала Motorola, и что 68060 был требовательным проектом, 68050 был отменен на раннем этапе разработки.

Также нет пересмотра 68060 , поскольку Motorola находилась в процессе перехода от линейки процессоров 68000 и 88k к своему новому бизнесу PowerPC , поэтому 68070 так и не был разработан. Если бы это было так, это был бы пересмотренный 68060, вероятно, с улучшенным FPU (конвейерная обработка широко обсуждалась в Usenet).

Motorola в основном использовала четные числа для основных изменений ядра ЦП, таких как 68000, 68020, 68040 и 68060. 68010 был переработанной версией 68000 с небольшими изменениями ядра, и аналогично 68030 был переработанным 68020 с некоторыми более мощными функции, ни одна из которых не является достаточно значительной, чтобы классифицировать ее как серьезное обновление ядра.

Был процессор с обозначением 68070 , который был лицензированной и несколько более медленной версией 16/32-битного 68000 с базовым контроллером DMA, хостом I²C и встроенным последовательным портом. Этот 68070 использовался в качестве основного процессора в Philips CD-i . Однако этот процессор был произведен Philips и официально не входил в линейку Motorola 680x0.

Последнее поколение

68060 4-го поколения обеспечивает эквивалентную функциональность (хотя и не совместимость с архитектурой набора команд) с большинством функций микроархитектуры Intel P5 .

Другие варианты

IBM-совместимые мэйнфреймы Personal Computers XT / 370 и AT / 370 на базе ПК включали по два модифицированных процессора Motorola 68000 с индивидуальным микрокодом для имитации инструкций мэйнфрейма S / 370 .

После прекращения существования основных процессоров 68000 семейство 68000 в некоторой степени использовалось в версиях микроконтроллеров и встроенных микропроцессоров. Эти микросхемы включают те, которые перечислены выше в разделе «прочее», то есть CPU32 (он же 68330 ), ColdFire , QUICC и DragonBall .

С появлением технологии FPGA международная команда разработчиков оборудования воссоздала 68000 с множеством улучшений в качестве ядра FPGA. Их ядро ​​известно как 68080 и используется в ускорителях Amiga марки Vampire.

Magnetic Scrolls использовали подмножество инструкций 68000 в качестве основы для виртуальной машины в своих текстовых приключениях .

Конкуренты

Рабочий стол

В 1980 - х и начале 1990 - х годов, когда 68000 широко используются в настольных компьютерах, в основном конкурировали с Intel «s x86 архитектуры , используемой в совместимых с IBM PC . Процессоры 68000 поколения 1 конкурировали в основном с 16-битными 8086 , 8088 и 80286 . Поколение 2 конкурировало с 80386 (первый 32-разрядный процессор x86), а поколение 3 - с 80486 . Четвертое поколение конкурировало с линейкой Pentium P5 , но оно не было так широко распространено, как его предшественники, поскольку большая часть старого рынка 68000 либо прекратила свое существование, либо почти прекратила свое существование (как в случае с Atari и NeXT), либо была преобразована в более новую. архитектуры ( PowerPC для Macintosh и Amiga , SPARC для Sun и MIPS для Silicon Graphics (SGI)).

Встроенный

Есть десятки архитектур процессоров, которые успешно применяются во встроенных системах . Некоторые из них представляют собой микроконтроллеры, которые намного проще, меньше и дешевле, чем 68000, в то время как другие относительно сложны и могут запускать сложное программное обеспечение. Встроенные версии 68000 часто конкурируют с архитектурами процессоров, основанными на PowerPC , ARM , MIPS , SuperH и других.

использованная литература

Библиография

  • Хау, Деннис, изд. (1983). Бесплатный онлайн-словарь по вычислительной технике . Имперский колледж Лондон. http://foldoc.org . Проверено 4 сентября 2007 года.

внешние ссылки