Серия Motorola 68000

редактировать
Эта статья о семействе микропроцессоров. Первый такой микропроцессор в этом семействе см. В Motorola 68000.
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), ATamp;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.

СОДЕРЖАНИЕ
  • 1 Члены семьи
  • 2 История улучшений
  • 3 Карта функций
  • 4 Основные области применения
  • 5 Архитектура
  • 6 68050 и 68070
  • 7 Последнее поколение
  • 8 Другие варианты
  • 9 Конкуренты
    • 9.1 Рабочий стол
    • 9.2 Встроенный
  • 10 Ссылки
  • 11 Библиография
  • 12 Внешние ссылки
Члены семьи
История улучшений

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 от ATamp;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
31 ... 23 ... 15 ... 07 ... 00 (битовая позиция)
Регистры данных
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 Указатель стека (руководитель)
Счетчик команд
ПК Счетчик команд
Регистр статуса
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (битовая позиция)
Т 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 года.
внешние ссылки
Последняя правка сделана 2023-04-05 05:24:32
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте