Выпуск компанией Apple компьютеров на базе ARM чипа собственной разработки породил много волнений в сети интернет. Многие удивились, многие не поняли но есть и те, для кого новость не стала неожиданностью. Давние фанаты техники Apple и люди интересующиеся историей ИТ знают — компания переходит с одной архитектуры на другую уже не в первый раз. Каждый раз причины для смены ЦПУ были примерно одинаковы — представленные на рынке решения не удовлетворяли высоким требованиям Apple. В 1994 г. Apple совершила переход с процессоров Motorola 680×0 на на процессоры PowerPC разработанные по новой для тех времен архитектуре RISC, а в 2006 г. Apple снова сменила архитектуру ЦП на этот раз выбор пал на x86 процессоры Intel. Обратимся к истории и посмотрим как проходил процесс перехода от одной архитектуры к другой.
О процессорах 68k
Motorola 68000
В конце 70-х, начале 80-х 16-битные процессоры Intel не доминировали на рынке, несмотря на растущую популярность линейки IBM PC. Главным конкурентом «интеловских» кристаллов считалась серия процессоров Motorola 68000.
Проект Motorola 68k стартовал в 1976 году — тогда же, когда началась разработка 16-битного процессора Intel 8086. Сама же линейка процессоров Motorola 68000 была представлена в 1979 году. В основе процессоров лежал дизайн CISC, а многие архитектурные особенности были позаимствованы у компьютера PDP-11. Motorola 68000 нельзя однозначно отнести к категории 16- или 32-разрядных устройств. Хоть кристалл и имел 32-битное ядро, шина данных была 16-ти разрядной. У Motorola получился этакий гибрид. Само собой, что процессор Motorola 68000 имел совершенно иную систему команд, нежели процессоры с архитектурой x86. Набор инструкций кристалла считается более «ортогональным», чем x86. Это означает, что операции и операнды можно свободно комбинировать, не обращая внимания на ограничения, связанные с совместимостью конкретной операции и набора операндов. Преимуществом такого подхода является легкость программирования на ассемблере Motorola 68000. Что касается других технических характеристик, то, как мы уже говорили, Motorola 68000 работал с 16-битной шиной данных и 24-разрядной шиной адресов. Его частота составляла от 8 МГц до 20 МГц, а количество транзисторов — 68 000 штук.
Процессор Motorola 68000 применялся во многих компьютерах и устройствах, в высокопроизводительных калькуляторах Texas Instruments и десктопах Commodore Amiga, Sinclair QL и Atari ST, игровых приставках Sega Mega Drive, Neo Geo, однако многим он запомнился по первым компьютерам Apple. Так, разные версии этого «камня» применялись в первых персональных компьютерах Apple: Lisa и Macintosh.
Motorola 68020
В 1984 году, за несколько месяцев до появления i386, Motorola выпустила свой первый полностью 32-битный чип 68020. Процессор производился по 2-мкм техпроцессу и насчитывал 190 000 транзисторов. Его тактовая частота составляла от 12 до 33 МГц., «двадцатый» работал с полноценными 32-битными внешними шинами данных и адресов, а также поддерживал новые инструкции и режимы адресации. При этом время выполнения некоторых инструкций было сокращено. Также 68020 стал первым процессором в линейке Motorola 68k со встроенной кэш-памятью первого уровня. Правда, ее объем составлял всего 256 байт. Увы, 68020 не имел встроенного FPU, хотя интерфейс кристалла обеспечивал поддержку до 8 сопроцессоров. Что касается производительности, то при частоте 33 МГц результат составил 5,36 млн инструкций в секунду. Главной областью применения процессора вновь стали компьютеры Apple: Macintosh II и Macintosh LC. Помимо этого, Motorola 68020 также «прописался» в системах Sun 3, Hewlett-Packard 8711, Sinclair QL и Alpha Microsystems AM-2000.
Motorola 68030
В 1987 году в продаже появился следующий процессор компании Motorola 68030. Он был полностью 32-разрядным. Шина данных в 68030 стала динамической, она могла функционировать в 8-, 16- и 32-битных режимах. Также появился синхронный режим работы шины данных и адресной шины, что увеличило скорость передачи данных. Производительность процессора возросла и за счет дополнительных 256 байт кэш-памяти первого уровня, сокращения времени доступа к кэшу инструкций и добавления блока управления памятью. Как и в случае с моделью 68020, «тридцатый» не имел встроенного сопроцессора. Что касается технических характеристик, то они во многом совпадали с таковыми у предшественника. Тактовая частота процессора варьировалась от 16 МГц до 50 МГц. Во втором случае производительность «камня» составляла порядка 18 миллионов инструкций в секунду. 68030 применялся всё в тех же компьютерах Apple Macintosh II и Commodore Amiga, а также в системах Next Cube, Sun 3/80, Atari TT и Atari Falcon.
Motorola 68040
Процессор Motorola 68040, который стал доступен в 1990 году, привнес намного больше архитектурных изменений, нежели его предшественники. Так, впервые появился встроенный сопроцессор. В «сороковом» сохранилась поддержка блока управления памятью, который появился в предыдущем поколении «камней». Объем кэша-памяти инструкций и кэш-памяти данных был увеличен до 4 Кбайт каждый. Принцип работы процессора основывался на вычислительных конвейерах, которые состояли из шести стадий. С появлением встроенного сопроцессора и увеличением объема кэш-памяти чип значительно усложнился. При одинаковой частоте производительность модели 68040 превышала скорость CPU прошлых поколений более чем в четыре раза. При этом кристалл сильно грелся, причем разработчики так и не смогли решить эту проблему. Отсюда тактовая частота процессора никогда не превышала отметки 40 МГц. По своим возможностям Motorola 68040 был сопоставим с Intel i486 и при одинаковой частоте даже превосходил его в скорости. Однако свои обороты в то время набирал оверклокинг, а 486-й выгодно отличался от «мотороловского» чипа как раз своим разгонным потенциалом. Как и прежде, Apple широко использовала процессоры Motorola в своих компьютерах. Например, 68040 стал основой High-End-системы Macintosh Quadra. Macintosh Centris и Performa также использовали процессоры семейства 68040. Плюс на базе «сорокового» были построены компьютеры Amiga 4000/4000T, а также некоторые серверы Alpha Microsystems и HP.
Архитектура ЦП
CISC
CISC (Complete Instruction Set Computing) — тип архитектуры процессора с полным набором команд. Основоположником CISC-архитектуры считается фирма IBM с архитектурой IBM/360. Основную идею CISC-архитектуры отражает ее название — «полный набор команд». В данной архитектуре стремятся иметь отдельную машинную команду для каждого возможного (типового) действия по обработке данных.
Исторически CISC-архитектура была одной из первых. Совершенствование процессоров шло по пути создания вычислительных машин, способных выполнять как можно больше разных команд. Это упрощало работу программистов, которые писали программы на языке ассемблера (то есть практически на уровне машинных команд). Использование сложных команд позволяло сократить размер и время разработки программы.
В итоге сложились следующие черты организации CISC-процессоров:
- большое количество различных машинных команд (сотни), каждая из которых выполняется за несколько тактов центрального процессора;
- устройство управления с программируемой логикой;
- небольшое количество регистров общего назначения;
- различные форматы команд с разной длиной;
- преобладание двухадресной адресации;
- развитый механизм адресации операндов, включающий различные методы косвенной адресации.
CISC-подход, однако, привел к тому, что некоторые команды стало невозможно выполнять чисто аппаратными средствами (при разумной сложности таких средств). В результате в процессорах появились блоки, «на лету» заменяющие наиболее сложные команды последовательностями из более простых команд. Мало того, практика показала, что многие сложные команды при написании программ оказывались просто не востребованы. Наконец, из-за высокой сложности команд и их обилия устройство управления ВМ приходилось строить только на основе программируемой логики, то есть с применением «медленной» управляющей памяти. Последнее обстоятельство существенно ограничивало возможности наращивания тактовой частоты процессора. Все эти факторы привели к повороту в сторону RISC-архитектуры. В то же время целый ряд несомненных достоинств CISC-архитектуры сохраняют ее актуальность (прежде всего, в глазах разработчиков программных приложений). Именно поэтому ведущие фирмы-производители (Intel, AMD, IBM и др.) в своих последних разработках, по-прежнему, не отказываются от CISC-подхода.
RISC
RISC (Restricted (Reduced) Instruction Set Computer — компьютер с сокращенным набором команд) — архитектура процессора, в которой быстродействие увеличивается за счет упрощения инструкций, чтобы их декодирование было более простым, а время выполнения — короче. В процессорах с RISC-архитектурой используется ограниченный набор быстрых команд. Каждая команда RISC-процессора должна выполняться за один машинный такт. Это облегчает повышение тактовой частоты и делает более эффективной суперскалярность (распараллеливание инструкций между несколькими исполнительными блоками). В таких микропроцессорах содержится меньшее количество транзисторов, что снижает их стоимость и энергопотребление. При этом, как правило, повышается их производительность.
Первые попытки движения по направлению к RISC были сделаны еще в 1975 году командой инженеров IBM под руководством Джона Кока. Требовалось разработать специализированный процессор для управления телефонной станцией, в качестве прототипа была использована машина IBM/360, и при анализе ее работы выяснилось, что на самом деле в процессе исполнения задействовано ограниченное подмножество всего набора команд. Тогда и возникла идея сократить его. В итоге появился проект универсального вычислительного устройства IBM 801 Project. По одним источникам, этому проекту не уделялось большое внимание, по другим, он был сильно засекречен. Так или иначе, первые публикации, связанные с ним, появились только в 1982 году. В 1986-м на основе проекта 801 все же была сделана рабочая станция IBM RT PC, не имевшая заметного коммерческого успеха. Но на основании полученного опыта была создана и в феврале 1990 года запущена в производство новая станция RS/6000 на базе процессора POWER (Performance Optimized With Enhanced RISC). Независимо от Кока в 1980 году у двух академических ученых — Джона Хеннесси из Стэндфордского университета и Дэвида Паттерсона из Университета Беркли появились аналогичные соображения по поводу сокращения числа команд.
Первоначальной идеей Паттерсона, которая затем воплотилась в масштабный проект Berkeley RISC, стало исследование работы Motorola 68000. В ходе наблюдений выяснилось, что программы попросту не использовали подавляющее большинство инструкций, заложенных в процессор. Например, система Unix при компиляции использовала лишь 30% команд. Поэтому в рамках проекта Berkeley RISC планировалось создать такой процессор, который бы содержал лишь самые необходимые инструкции.
После нескольких лет исследований и разработки было выпущено несколько образцов процессоров, название которых и дало имя всей архитектуры. Сама аббревиатура RISC расшифровывается как Restricted (Reduced) Instruction Set Computer, что переводится как «компьютер с сокращенным набором команд». «Сокращенный набор команд» вовсе не означает, что количество инструкций меньше, чем число команд CISC-кристаллов. Разница состоит в том, что любая инструкция платформы RISC является простой и выполняется за один такт (по крайней мере, должна выполняться), тогда как на выполнение CISC-инструкции могло уходить несколько десятков тактов. При этом длина команды является фиксированной, например, 32 бита. Также у RISC имеется гораздо больше регистров общего назначения. Плюс для этой архитектуры характерна конвейеризация. Именно ее использование (вкупе с упрощенными командами) позволяет эффективно наращивать тактовую частоту процессоров RISC.
Итог
Бизнес по разработке и производству процессоров никогда не был основным для компании Motorola. В конце 80-х, начале 90-х стало понятно что Motorola не справляется предоставлять новые процессоры архитектуры 680×0 для своих потребителей, одним из которых была компания Apple. Последние и в линейки процессоры 68030 и 68040 не содержали в себе ничего принципиально нового а были скорее попыткой выжать максимум из устаревшей архитектуры. В это же время процессоры от Intel набирали обороты и PC на их основе становились все мощней и при этом обходились покупателям намного дешевле яблочной техники. Apple не хотела терять своих потребителей и в подобной ситуации оставался только один выход — переходить на процессоры другой архитектуры. В то время набирал обороты новый способ построения архитектуры процессора — RISC, инженеры Apple решили сделать ставку на новые технологии и стали искать подходящий процессор.