Серия Motorola 68000 (также известная как 680x0 , m68000 , m68k или 68k ) — это семейство 32-разрядных микропроцессоров с комплексным набором команд (CISC) . В 1980-х и начале 1990-х годов они были популярны в персональных компьютерах и рабочих станциях и были основными конкурентами микропроцессоров Intel x86 . Они были наиболее известны как процессоры, используемые в ранних Apple Macintosh , Sharp X68000 , Commodore Amiga , Sinclair QL , Atari ST и Falcon , Atari Jaguar , Sega Genesis (Mega Drive) и Sega CD , Philips CD-i , Capcom System I (Arcade), AT&T UNIX PC , Tandy Model 16/16B/6000 , Sun Microsystems Sun-1 , Sun-2 и Sun-3 , NeXT Computer , NeXTcube , NeXTstation и NeXTcube Turbo , ранних рабочих станциях Silicon Graphics IRIS, Aesthedes , компьютерах от MASSCOMP , калькуляторах Texas Instruments TI-89 / TI-92 , Palm Pilot (все модели работали под управлением Palm OS 4.x или более ранней версии), Control Data Corporation CDCNET Device Interface, VTech Precomputer Unlimited и Space Shuttle . Хотя ни один современный настольный компьютер не базируется на процессорах серии 680x0, производные процессоры по-прежнему широко используются во встраиваемых системах .
Motorola прекратила разработку архитектуры серии 680x0 в 1994 году, заменив ее архитектурой PowerPC RISC , которая была разработана совместно с IBM и Apple Computer в рамках альянса AIM .
68010 :
68020 :
68030 :
68040 :
68060 :
Линейка процессоров 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, Model 16/16B/6000 от Tandy , Sun-1 , Sun-2 , Sun-3 от Sun Microsystems , NeXT Computer , Silicon Graphics (SGI) и многих других. Существовала версия CP/M для 68000 под названием CP/M-68K, которая изначально предлагалась в качестве операционной системы Atari ST, но Atari выбрала Atari TOS . Было доступно множество системно-специфичных портов CP/M-68K, например, TriSoft предлагала порт CP/M-68K для Tandy Model 16/16B/6000.
Также, и, возможно, самое важное, первые несколько версий интерпретаторов PostScript от Adobe были основаны на 68000. 68000 в Apple LaserWriter и LaserWriter Plus работал быстрее, чем версия, использовавшаяся тогда в компьютерах Macintosh. Быстрый 68030 в более поздних интерпретаторах PostScript, включая стандартное разрешение LaserWriter IIntx, IIf и IIg (также 300 точек на дюйм), более высокое разрешение LaserWriter Pro 600 series (обычно 600 точек на дюйм, но ограничено 300 точками на дюйм при минимальной установленной оперативной памяти) и очень высокое разрешение Linotronic imagesetters, 200PS (1500+ точек на дюйм) и 300PS (2500+ точек на дюйм). После этого Adobe в основном предпочитала RISC для своего процессора, так как ее конкуренты со своими клонами PostScript уже перешли на RISC, часто AMD серии 29000. Первые интерпретаторы Adobe PostScript на базе 68000 и их аппаратное обеспечение были названы в честь американских ракет и снарядов времен Холодной войны : Atlas, Redstone и т. д.
Сегодня эти системы либо устарели (в случае Atari), либо используют другие процессоры (в случае Macintosh, Amiga, Sun и SGI). Поскольку пик доли рынка этих платформ пришелся на 1980-е годы, их первоначальные производители либо больше не поддерживают операционную систему для этого оборудования, либо вышли из бизнеса. Однако операционные системы Linux и NetBSD по-прежнему поддерживают процессоры 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). Новаторская серия Quantel Paintbox ранней 24-битной системы рисования и эффектов была первоначально выпущена в 1981 году и за время своего существования использовала почти весь диапазон процессоров семейства 68000, за исключением 68060, который так и не был реализован в ее конструкции. Другой претендент на арене видео, система Abekas 8150 DVE, использовала 680EC30, а Play Trinity, позже переименованная в Globecaster, использует несколько 68030. Видеографическая система Bosch FGS-4000/4500, выпускаемая Robert Bosch Corporation, позже BTS (1983), использовала 68000 в качестве основного процессора; он управлял несколькими другими для выполнения 3D-анимации на компьютере, который мог легко применять затенение по Гуро и Фонгу. Он работал под управлением модифицированной операционной системы Motorola VERSAdos .
Люди, знакомые с 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). Флаг «расширение» (X) заслуживает особого упоминания, поскольку он отделен от флага переноса . Это позволяет отделить дополнительный бит из арифметических, логических и сдвиговых операций от переноса для управления потоком и связывания.
Хотя у 68000 был «режим супервизора», он не соответствовал требованиям виртуализации Попека и Голдберга из-за единственной инструкции «MOVE from SR», которая копирует регистр состояния в другой регистр, будучи непривилегированной, но чувствительной. В Motorola 68010 и более поздних моделях это было сделано привилегированным, чтобы лучше поддерживать программное обеспечение виртуализации.
Набор инструкций серии 68000 можно разделить на следующие основные категории:
В Motorola 68020 добавлены некоторые новые инструкции, включающие в себя некоторые незначительные улучшения и расширения состояния супервизора, несколько инструкций для программного управления многопроцессорной системой (которые были удалены в 68060), некоторая поддержка языков высокого уровня, которые не использовались часто (и были удалены из будущих процессоров 680x0), более крупные инструкции умножения (32×32→64 бита) и деления (64÷32→32 бита частное и 32 бита остаток), а также манипуляции с битовыми полями.
Стандартные режимы адресации :
Плюс: доступ к регистру состояния , а в более поздних моделях и к другим специальным регистрам.
В Motorola 68020 был добавлен режим масштабируемого индексирования адресов, а также добавлен еще один уровень косвенности ко многим ранее существовавшим режимам.
Большинство инструкций имеют суффиксы из букв и точек, что позволяет выполнять операции с 8-битными байтами («.b»), 16-битными словами («.w») и 32-битными длинными числами («.l»).
Большинство инструкций являются диадическими , то есть операция имеет источник и пункт назначения, а пункт назначения меняется. Известными инструкциями были:
Motorola в основном использовала четные номера для крупных изменений ядра ЦП, таких как 68000, 68020, 68040 и 68060. 68010 был переработанной версией 68000 с незначительными изменениями ядра, а 68030 был переработанной версией 68020 с некоторыми более мощными функциями, ни одна из которых не была достаточно значительной, чтобы классифицироваться как крупное обновление ядра.
Не было 68050, хотя в какой-то момент это был проект в Motorola. Нечетные выпуски всегда были реакцией на проблемы, поднятые в предыдущей четной части; следовательно, в целом ожидалось, что 68050 снизит энергопотребление 68040 (и, следовательно, рассеивание тепла), улучшит обработку исключений в FPU, будет использовать меньший размер элемента и оптимизирует микрокод в соответствии с использованием инструкций программой. Многие из этих оптимизаций были включены в 68060 и были частью его целей проектирования. По ряду причин, вероятно, из-за того, что 68060 находился в разработке, что Intel 80486 не продвигался так быстро, как предполагала Motorola, и что 68060 был требовательным проектом, 68050 был отменен на ранней стадии разработки.
Также нет никакой ревизии 68060 , поскольку Motorola находилась в процессе перехода от линеек процессоров 68000 и 88k к своему новому бизнесу PowerPC , поэтому 68070 так и не был разработан. Если бы это было так, это был бы переработанный 68060, вероятно, с улучшенным FPU (конвейеризация широко обсуждалась в Usenet).
Существовал ЦП с обозначением 68070 , который был лицензированной и несколько более медленной версией 16/32-битного 68000 с базовым контроллером DMA, хостом I²C и последовательным портом на кристалле. Этот 68070 использовался в качестве основного ЦП в Philips CD-i . Однако этот ЦП был произведен Philips и официально не входил в линейку 680x0 Motorola.
Процессор 68060 четвертого поколения обеспечивал эквивалентную функциональность (хотя и не совместимость по набору команд и архитектуре) большинству функций микроархитектуры Intel P5 .
Персональные компьютеры XT/370 и AT/370 на базе ПК, совместимые с IBM, включали в себя два модифицированных процессора Motorola 68000 с пользовательским микрокодом для эмуляции инструкций мэйнфрейма S/370 . [19] [20]
Компания Edge Computer Corp из Аризоны, как сообщается, основанная бывшими конструкторами Honeywell, производила процессоры, совместимые с серией 68000, которые, как утверждалось, имели «производительность в три-пять раз больше — и время работы от 18 до 24 месяцев — преимущества» по сравнению с собственной продукцией Motorola. [21] В 1987 году компания представила серию Edge 1000 «32-разрядных суперминикомпьютеров, реализующих набор инструкций Motorola в архитектуре мэйнфрейма Edge», использующих два независимых конвейера — конвейер выборки инструкций (IFP) и конвейер исполнения операндов (OEP), — полагаясь на блок предсказания ветвлений с кэшем ветвлений на 4096 записей, извлекающий инструкции и операнды по нескольким шинам. [22] Соглашение между Edge Computer и Olivetti впоследствии привело к тому, что последняя представила продукты в своей собственной линейке «Linea Duo», основанной на машинах Edge Computer. [23] Впоследствии компания была переименована в Edgcore Technology Inc. [24] : 12 (также сообщалось как Edgecore Technology Inc. [25] ). За сделкой Edgcore с Olivetti в 1987 году на поставку процессора E1000 компании последовала в 1989 году еще одна сделка с Philips Telecommunications Data Systems на поставку процессора E2000, который поддерживал набор инструкций 68030 и, как сообщается, предлагал рейтинг производительности 16 VAX MIPS. [26] Аналогичные сделки с Nixdorf Computer и Hitachi были также подписаны в 1989 году. [27] [28]
Edge Computer, как сообщается, заключила соглашение с Motorola. [25] Несмотря на растущую конкуренцию со стороны продуктов RISC, Edgcore стремилась выделить свою продукцию на рынке, подчеркивая свой «альянс» с Motorola, используя маркетинговую кампанию, основанную на баснях Эзопа с «лисой (Edgecore), которая взбирается на спину жеребца (Motorola), чтобы срывать фрукты с верхних ветвей дерева». [29] Были использованы и другие темы народных сказок, такие как Красная Шапочка . [30] Поскольку инвесторы компании отказались финансировать компанию дальше, а ряд компаний были вовлечены в переговоры с другими сторонами, Arix Corp. объявила о приобретении Edgcore в июле 1989 года. [28] Arix, как сообщается, смогла возобновить свою сделку с Hitachi в 1990 году, тогда как будущее предыдущих сделок с Olivetti и Philips оставалось под некоторым сомнением после приобретения Edgcore. [31]
В 1992 году компания International Meta Systems (IMS) анонсировала процессор на базе RISC, IMS 3250 , который, как сообщается, мог эмулировать «Intel 486 или Motorola 68040 на полной собственной скорости и за часть их стоимости». Работающий на частоте100 МГц , предположительно были разработаны эмуляции25 МГц 486 и30 МГц 68040, включая поддержку блока с плавающей точкой, с продуктом, нацеленным на середину 1993 года производства по себестоимости за единицу50–60 долларов . [32] На фоне очевидного распространения поддержки эмуляции в таких процессорах, как PowerPC 615 , в 1994 году IMS, как сообщается, подала заявку на патент на свою технологию эмуляции, но не нашла ни одного лицензиата. [33] Повторные задержки с выпуском этого продукта, в одном случае вызванные «необходимостью улучшить возможности обработки речи чипом», [34] по-видимому, привели к тому, что компания попыталась представить другой чип, Meta6000, намереваясь конкурировать с продуктами Intel P6. [35] В конечном итоге IMS обанкротилась, продав патенты судебному истцу TechSearch, который в 1998 году попытался подать в суд на Intel за нарушение патента IMS. [36] Сообщается, что TechSearch проиграла дело, но подала апелляцию, а также пыталась подать в суд на Intel за «клевету и оскорбление» на основании комментариев представителя Intel, который в своих выступлениях в прессе неблагоприятно охарактеризовал бизнес-модель TechSearch. [37]
После прекращения выпуска основных процессоров 68000, семейство 68000 в некоторой степени использовалось в версиях микроконтроллеров и встроенных микропроцессоров. Эти чипы включают те, что перечислены в разделе «другие» выше, то есть CPU32 ( он же 68330 ), ColdFire , QUICC и DragonBall .
С появлением технологии FPGA международная команда разработчиков оборудования воссоздала 68000 со многими улучшениями в качестве ядра FPGA. Их ядро известно как 68080 и используется в ускорителях Amiga под маркой Vampire. [38]
В своих текстовых приключениях Magnetic Scrolls использовали подмножество инструкций 68000 в качестве основы для виртуальной машины .
В 1980-х и начале 1990-х годов, когда 68000 широко использовался в настольных компьютерах, он в основном конкурировал с архитектурой Intel 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 и других.