Введение

Архитектура набора команд RISC 88000 (сокращенно m88k) — архитектура набора команд RISC, разработанная компанией Motorola в 1980-х годах. Процессор MC88100 поступил на рынок в 1988 году, примерно на два года позже конкурирующих SPARC и MIPS. Из-за позднего старта и значительных задержек с выпуском второго поколения MC88110, m88k добился весьма ограниченного успеха за пределами платформы MVME и встраиваемых систем управления. Когда Motorola присоединилась к альянсу AIM в 1991 году для разработки PowerPC, дальнейшая разработка 88000 была прекращена.

Предыстория

Motorola вошла в 1980-е годы, занимая сильные позиции; их недавно представленный Motorola 68000 значительно превосходил любой другой микропроцессор на рынке, а его 32-битная архитектура естественно подходила для развивающегося рынка рабочих станций. Intel не проявляла агрессивной активности в 32-битном сегменте, а компании, которые это сделали, в частности National Semiconductor, допустили ошибки при выпуске продукции и оставили Motorola контролировать все, что не принадлежало Intel. В то время Intel занимала около 80% всего компьютерного рынка, а Motorola контролировала 90% остального. В начале 1980-х годов появилась концепция RISC. Сначала в отрасли развернулись острые дебаты о том, действительно ли эта концепция повысит производительность, или же более длинные программы машинного кода замедлят выполнение из-за дополнительных обращений к памяти. Все эти споры прекратились к середине 1980-х годов, когда появились первые рабочие станции на базе RISC: новейшая Sun 3/80 с процессором Motorola 68030 частотой 20 МГц обеспечивала около 3 МИПС, в то время как первая Sun 4/260 на базе SPARC с процессором SPARC частотой 16 МГц – 10 МИПС. Hewlett Packard, DEC и другие крупные производители начали переходить на платформы RISC. Этот сдвиг на рынке мог лишить Motorola доступа к рынку рабочих станций, одному из ее немногих оплотов и наиболее прибыльных сегментов. Apple оставалась единственным крупным клиентом компании за пределами рынка рабочих станций; другие пользователи 68000, в частности Atari Corporation и Commodore International, испытывали трудности на рынке, который быстро стандартизировался на совместимых с IBM PC компьютерах.

Подход Motorola

RISC-дизайн был сознательной попыткой адаптировать процессор к типам операций, вызываемых компиляторами на данной платформе, в случае Unix-рабочих станций – языку программирования C. В основополагающем проекте IBM 801 было отмечено, что компиляторы обычно не используют подавляющее большинство доступных инструкций, а вместо этого применяют самые простые версии, зачастую потому, что они выполняются быстрее. Однако предоставление других вариантов этих базовых инструкций также увеличивало нагрузку на основную версию. Исключение неиспользуемых инструкций из процессора устраняло эту накладную нагрузку и освобождало значительное место на кристалле. Это позволило увеличить количество регистров процессора, что оказало гораздо большее влияние на производительность, чем удаление специальных инструкций. По этой причине концепцию RISC можно считать обусловленной реальным проектированием компиляторов. В статьях Motorola о дизайне 88000 упоминаются инструкции с одноцикловым выполнением, большие файлы регистров процессора и другие характерные черты концепции RISC, но само слово "RISC" даже один раз не используется. Поскольку на рынок уже вышли существующие RISC-проекты, компания решила не конкурировать с ними, а вместо этого создать самый мощный в мире процессор. Для этого они изучили конструкторскую документацию одного из самых быстрых компьютеров предыдущего поколения – суперкомпьютера CDC 6600. В частности, они переняли концепцию таблицы результатов (scoreboard) 6600. Таблица результатов позволяла ЦП анализировать использование регистров инструкциями и немедленно запускать те, которые не зависели от предыдущих вычислений, еще не завершенных; это позволяло переупорядочивать инструкции, чтобы те, у которых были необходимые данные, могли выполняться, пока другие загружали данные из кэша или памяти. Такая перестановка инструкций могла повысить эффективность использования ресурсов на 35%. В конструкции также использовались отдельные шины данных и инструкций. Это было дорого с точки зрения количества выводов; как кэш инструкций, так и кэш данных имели 32 вывода для адреса и 32 вывода для данных, что означало, что вся система использовала 128 выводов на "P-шине". Эта конструкция основывалась на наблюдении, что лишь около трети операций связаны с памятью, а остальные оперируют данными, уже прочитанными из памяти. Это значительно упрощало выделение отдельного пути для инструкций к внешнему кэшу инструкций. Кэши и связанные с ними блоки управления памятью (MMU) изначально были внешними, контроллер кэша можно было подключить к шинам данных или инструкций, и на каждой шине можно было использовать до четырех контроллеров. Внутри располагались три 32-битные шины, подключенные к внутренним блокам различными способами, в зависимости от необходимости чтения и записи данных в регистры. Еще одной особенностью новой конструкции была встроенная поддержка специализированных сопроцессоров, или "специальных функциональных устройств" (SFU). Помимо внутренних команд, поддерживаемых по умолчанию, в ней было предусмотрено несколько блоков по 256 инструкций, которые могли использоваться сопроцессорами. Это было направлено на разработчиков, желающих настроить систему; новые функциональные устройства можно было добавлять, не затрагивая существующую архитектуру набора команд, обеспечивая программную совместимость основной функциональности. Каждый 88000 поставлялся с уже установленным SFU1 – блоком операций с плавающей точкой (FPU). Инструкции ветвления и перехода включают в себя опцию отложенного ветвления (.n), которую можно указать, чтобы гарантировать выполнение следующей последовательной инструкции перед инструкцией целевого адреса ветвления, независимо от условия ветвления. Размещение инструкции ветвления или другой инструкции, которая может изменить указатель инструкции, в слоте задержки ветвления не рекомендуется для обеспечения будущей совместимости.

Релиз

К 1987 году стало широко известно, что Motorola разрабатывает собственный RISC-процессор. В компьютерной индустрии он назывался "78000" – в честь более раннего 68000, а при выпуске в апреле 1988 года получил название 88000. Из-за сложности конструкции процессор не поместился на один чип. 68030, выпущенный годом ранее, содержал 273 000 транзисторов, включая арифметико-логическое устройство (ALU) и блок управления памятью (MMU) на одном чипе, а блок вычислений с плавающей запятой (FPU) предлагался как отдельный чип. В отличие от него, 88000 объединял ALU и FPU на чипе MC88100, содержащем 750 000 транзисторов, а блок управления памятью (MMU) и 16 КБ статической RAM-памяти кэша – на чипе MC88200, также содержащем 750 000 транзисторов. В отличие от 68030, где FPU был действительно необязательным, для создания работоспособной системы на базе 88000 требовался как минимум один чип MC88200. Системы могли включать несколько чипов MC88200, что позволяло создавать более крупные кэши и обеспечивать несколько путей доступа к основной памяти для повышения производительности. Ориентированный на высокопроизводительный сегмент рынка, он позиционировался как самый быстрый 32-битный процессор в мире на момент выпуска. Работающий на частоте 20 МГц, он демонстрировал производительность 34 000 Dhrystones или 17 VUPS, по сравнению с примерно 12 MIPS для 12,5 МГц SPARC той же эпохи в SPARCstation, или около 3,3 MIPS для 20 МГц 68030. Также была доступна версия с частотой 25 МГц, обеспечивающая производительность 21 MIPS и 48 387 Dhrystones. В то время Motorola продвигала 88000 исключительно на высокопроизводительном рынке, включая такие области, как "телекоммуникации, искусственный интеллект, графика, трехмерная анимация, моделирование, параллельная обработка и суперкомпьютеры", при этом предполагалось, что существующая серия 68k продолжит использоваться на рынке рабочих станций. Однако большинство потенциальных клиентов проигнорировали 88000, и система не получила широкого распространения.

Повторное высвобождение

Поскольку оригинальный выпуск практически не использовался за пределами продуктов Motorola, а эти традиционные клиенты начали переходить на другие RISC-архитектуры, компания перевыпустила процессор в виде одного чипа – MC88110. В конце 1980-х годов несколько компаний активно рассматривали серию 88000 для дальнейшего использования, включая NeXT, Apple Computer и Apollo Computer, но все отказались от этой архитектуры к моменту выхода 88110 в 1992 году. Предпринялась попытка популяризировать систему через группу 88open, подобно тому, что Sun Microsystems делала со своей архитектурой SPARC. Однако, судя по всему, она не имела практического успеха.

Оставление

В начале 1990-х годов Motorola присоединилась к проекту AIM по созданию новой RISC-архитектуры, основанной на архитектуре IBM POWER. В новую архитектуру PowerPC были интегрированы некоторые особенности 88000 (например, совместимый интерфейс шины), чтобы предоставить своим клиентам возможность обновления. После этого от 88000 отказались как можно быстрее.

Архитектура

Как и 68000 до него, 88000 считался "чистой" архитектурой. Это полностью 32-битная архитектура с загрузкой/сохранением, имеющая отдельные кэши инструкций и данных (архитектура Гарварда) и отдельные шины данных и адреса. Она обладает небольшим, но мощным набором команд и использует плоское адресное пространство. Необычной особенностью архитектуры является то, что как целочисленные, так и инструкции с плавающей точкой используют один и тот же набор регистров.

Реализация

Первой реализацией архитектуры 88000 ISA стал микропроцессор MC88100, включавший в себя интегрированный блок FPU. С ним использовались MMU MC88200 и контроллер кэша. Идея разделения функций заключалась в упрощении создания многопроцессорных систем: один MC88200 мог поддерживать до четырех MC88100. Однако это также означало, что для создания самой простой системы с одним процессором требовались оба чипа и значительное количество соединений между ними, что увеличивало стоимость. Вероятно, это стало еще одной важной причиной ограниченного успеха 88000. Эта проблема была решена в более поздней модели MC88110, выполненной по суперскалярной архитектуре, которая объединила процессор, FPU, MMU и кэш L1 в одном корпусе. Дополнительная модификация, выполненная по запросу проекта *T Массачусетского технологического института, привела к созданию MC88110MP, включающего в себя внутричиповую коммуникацию для использования в многопроцессорных системах. Версия, способная работать на частоте до 100 МГц, планировалась как MC88120, но так и не была выпущена. В начале 1990-х годов велась разработка реализации для встраиваемых приложений MC88300, но в конечном итоге проект был закрыт. Компания Ford Motor Company планировала использовать эти чипы, поэтому ей был предложен дизайн PowerPC в качестве замены, который она и приняла.

Продукты и применения

Motorola выпустила серию одноплатных компьютеров, известных как серия MVME, для создания систем, готовых к использованию "из коробки", на базе 88000, а также компьютеры серии 900, использующие эти платы MVME. В отличие от корпусных или стоечных систем, компьютеры серии 900 устанавливались друг на друга и соединялись между собой кабелями, напоминающими шины. Эта концепция не получила распространения. Основных сторонних пользователей было немного. Наиболее широкое применение они нашли в серии Data General AViiON. Они были достаточно популярны и до сих пор используются в ограниченном количестве. Для более поздних моделей DG перешла на Intel. Encore Computer построила свою машину Encore 91 на базе m88k, а затем представила полностью переработанную конструкцию как серию Infinity 90, но точное количество проданных машин неизвестно. Encore перешла на Alpha. Tektronix представила свою линейку графических рабочих станций XD88 в апреле 1989 года. GEC Computers использовала MC88100 для создания GEC 4310, одного из компьютеров серии GEC 4000, но проблемы с управлением памятью привели к тому, что он работал менее эффективно, чем их более ранние компьютеры серии GEC 4000 на основе gate array и Am2900. В модели BBN Butterfly TC 2000 использовался процессор MC88100, который масштабировался до 512 процессоров. Linotype Hell использовала 88110 в своих рабочих станциях "Power", работающих с растровым графическим редактором DaVinci для обработки изображений. MC88110 был включен в некоторые версии так и не выпущенной машины NeXT, рабочей станции NeXT RISC, но проект был отменен вместе со всеми аппаратными проектами NeXT в 1993 году. 4-процессорные машины OMRON LUNA 88K из Японии использовали m88k и некоторое время использовались в проекте ядра Mach в Университете Карнеги-Меллона. В начале 1990-х годов Northern Telecom использовала MC88100 и MC88110 в качестве центрального процессора в семействе телефонных коммутаторов DMS SuperNode. Большинство других пользователей были значительно меньше. Alpha Microsystems первоначально планировала перейти на архитектуру 88K с Motorola 68000 и внутренне создала машину на ее основе, работающую под управлением UNIX System V, но позже от нее отказались в пользу более поздних производных 68K. NCD использовала 88100 (без 88200) в своих 88K X Терминалах. Dolphin Server, выделившаяся из угасающей Norsk Data, создавала серверы на базе 88k. В период с 1988 по 1992 год было поставлено около 100 систем. Virtuality использовала MC88110 в аркадной машине виртуальной реальности SU2000 в качестве графического процессора, с одним MC88110 на экран каждой гарнитуры виртуальной реальности. В области встраиваемых компьютеров "Трехканальный VMS Computer" в F 15 S/MTD использовал три 88000 в тройном резервированном компьютере.

Поддержка операционной системы

Motorola выпустила свою собственную версию UNIX System V, System V/88, для систем на базе 88000. Было два основных выпуска: Release 3.2 Version 3 и Release 4.0 Version 3. Системы Data General AViiON работали под управлением DG/UX. Существуют порты OpenBSD для систем MVME, рабочих станций LUNA 88K и систем Data General AViiON. По крайней мере один неофициальный экспериментальный порт NetBSD существует для систем MVME.