Найти тему
space cowboy

История ARM, часть 1: Создание первого чипа

Оглавление

оригинальная статья https://arstechnica.com/gadgets/2022/09/a-history-of-arm-part-1-building-the-first-chip/

Шел 1983 год, и компания Acorn Computers была на вершине мира. К сожалению, неприятности были не за горами.

Небольшая британская компания прославилась тем, что выиграла контракт с Британской радиовещательной корпорацией на производство компьютера для национального телевизионного шоу. Продажи компьютера BBC Micro стремительно росли и превысили 1,2 млн. единиц.

Реклама BBC Micro в журнале. Слоган: "The Shape of Things to Come" ("Облик грядущих событий").
Реклама BBC Micro в журнале. Слоган: "The Shape of Things to Come" ("Облик грядущих событий").

Но мир персональных компьютеров менялся. Рынок дешевых 8-битных микрокомпьютеров, которые родители покупали для помощи детям в выполнении домашних заданий, становился насыщенным. А новые машины из-за океана, такие как IBM PC и готовящийся к выпуску Apple Macintosh, обещали значительно большую мощность и простоту использования. Acorn нужно было как-то конкурировать, но у нее не было денег на исследования и разработки.

Зарождение идеи

Софи Уилсон, одна из разработчиц BBC Micro, предвидела эту проблему. Она добавила слот под названием "Tube", через который можно было подключить более мощный центральный процессор. Процессор со слотом мог бы взять на себя управление компьютером, оставив исходную микросхему 6502 свободной для других задач.

И какой процессор ей выбрать? Уилсон и ее коллега Стив Фурбер рассматривали различные 16-разрядные варианты, такие как 80286 от Intel, 32016 от National Semiconductor и 68000 от Motorola. Но ни один из них не был полностью удовлетворительным.

В более позднем интервью Музею истории вычислительной техники Уилсон пояснила: "Мы могли видеть, что все эти процессоры делают и чего они не делают. Первое, что они не делали, - не использовали систему памяти. Второе, что они не делали, - это то, что они не были быстрыми; они не были просты в использовании. Мы привыкли программировать 6502 в машинном коде и надеялись, что сможем достичь такого уровня мощности, что, написав на языке более высокого уровня, можно будет добиться тех же результатов".

Но какова была альтернатива? Могла ли крошечная компания Acorn создать свой собственный процессор с нуля? Чтобы выяснить это, Уилсон и Фурбер отправились на завод National Semiconductor в Израиле. Они увидели сотни инженеров и огромное количество дорогостоящего оборудования. Это подтвердило их подозрения, что такая задача может оказаться им не по силам.

Затем они посетили Western Design Center в городе Меса, штат Аризона. Эта компания производила всеми любимый 6502 и разрабатывала его 16-разрядного преемника - 65C618. Уилсон и Фурбер нашли там не более чем "бунгало в пригороде" с несколькими инженерами и студентами, составляющими схемы с помощью старых компьютеров Apple II и кусочков липкой ленты.

Неожиданно оказалось, что создание собственного процессора вполне возможно. Небольшая команда Уилсона и Фурбера и раньше создавала заказные микросхемы, например, графические микросхемы и микросхемы ввода/вывода для BBC Micro. Но эти микросхемы были более простыми и имели меньшее количество компонентов, чем центральный процессор.

Несмотря на трудности, высшее руководство Acorn поддержало их усилия. Более того, они не ограничились простой поддержкой. Соучредитель Acorn Герман Хаузер, имевший степень доктора физики, передал команде копии научных работ IBM, в которых описывался новый, более мощный тип процессора. Он назывался RISC, что расшифровывалось как "reduced instruction set computing"(вычисления с сокращенным набором инструкций).

Пойти на РИСК

Что именно это означает? Чтобы ответить на этот вопрос, давайте пройдемся по супер упрощенному курсу о том, как работают процессоры. Все начинается с транзисторов - крошечных устройств, похожих на сэндвич, изготовленных из кремния, смешанного с различными химическими веществами. Транзисторы имеют три разъема. Когда напряжение подается на вход затвора, он позволяет электричеству свободно проходить от входа источника к выходу стока. При отсутствии напряжения на затворе ток прекращается. Таким образом, транзистор работает как управляемый переключатель.

-2

Транзисторы можно объединять в логические затворы. Например, два последовательно соединенных транзистора образуют затвор "И", а два параллельно соединенных - затвор "ИЛИ". Эти затворы позволяют компьютеру делать выбор, сравнивая числа.

Но как представлять числа? Компьютеры используют двоичную систему счисления (Base 2), приравнивая небольшое положительное напряжение к цифре 1, а отсутствие напряжения - к 0. Эти 1 и 0 называются битами. Поскольку двоичная арифметика очень проста, легко создать двоичные сумматоры, которые могут складывать 0 или 1 с 0 или 1 и хранить как сумму, так и дополнительный бит переноса. Числа, превышающие 1, могут быть представлены путем добавления большего числа сумматоров, работающих одновременно. Количество одновременно доступных двоичных разрядов является одним из показателей "разрядности" микросхемы. 8-разрядный процессор, например 6502, обрабатывает числа 8-разрядными кусками.

Арифметика и логика составляют большую часть работы процессора. Но человеку необходимо знать, что ему делать. Поэтому каждый процессор имеет набор инструкций, который представляет собой список всех способов перемещения данных в память и из памяти, выполнения математических вычислений, сравнения чисел и перехода к различным частям программы.

Идея RISC заключалась в том, чтобы резко сократить количество инструкций, что позволило бы упростить внутреннюю конструкцию процессора. Насколько радикально? В 16-разрядной микросхеме Intel 80286 было всего 357 уникальных инструкций. В новом наборе инструкций RISC, который создавала Софи Уилсон, их будет всего 45.

Для достижения этого упрощения Уилсон использовала архитектуру "Load and store". Традиционные (сложные) процессоры имели различные инструкции для сложения чисел из двух внутренних "Регистров" (небольших участков памяти внутри самой микросхемы) или для сложения чисел по двум адресам во внешней памяти, или для комбинаций каждого из них. Инструкции RISC-чипов, напротив, работали только с регистрами. Отдельные инструкции переносят ответ из регистров во внешнюю память.

Это означало, что программы для RISC-процессоров обычно требовали больше инструкций для получения одного и того же результата. Как же они могут быть быстрее? Один из ответов заключается в том, что более простая конструкция может работать на более высокой тактовой частоте. Но другая причина заключается в том, что более сложные инструкции требуют больше времени для выполнения. Упростив их, можно добиться того, что каждая инструкция будет выполняться за один такт. Это позволило использовать так называемую конвейеризацию(pipelining).

Как правило, процессор обрабатывает инструкции поэтапно. Он должен получить инструкцию из памяти, декодировать ее, а затем выполнить. RISC-процессор, который разрабатывала компания Acorn, должен был иметь трехступенчатый конвейер. В то время как одна часть микросхемы выполняла текущую инструкцию, другая часть получала следующую и так далее.

Недостатком RISC-проекта было то, что, поскольку программы требовали большего количества инструкций, они занимали больше места в памяти. В конце 1970-х годов, когда разрабатывалось первое поколение процессоров, 1 мегабайт памяти стоил около 5 тыс. долл. Поэтому любой способ уменьшить объем памяти для программ (а наличие сложного набора инструкций позволяло это сделать) был очень ценен. Именно поэтому такие микросхемы, как Intel 8080, 8088 и 80286, имели так много инструкций.

Но цены на память стремительно падали. К 1994 году 1 мегабайт будет стоить менее $6. Таким образом, дополнительная память, необходимая для RISC-процессора, в будущем станет гораздо меньшей проблемой.

Чтобы еще больше обезопасить новый процессор Acorn, команда решила отказаться от 16 бит и перейти сразу к 32-разрядной конструкции. Это фактически упростило внутреннее устройство микросхемы, поскольку не нужно было так часто разбивать большие числа, и можно было обращаться ко всем адресам памяти напрямую. (На самом деле, в первом чипе из 32 адресных линий было задействовано только 26 выводов, поскольку 2 в степени 26, или 64 МБ, было смехотворным объемом памяти для того времени).

Теперь команде требовалось лишь придумать название для нового процессора. Рассматривались различные варианты, но в итоге он был назван Acorn RISC Machine, или ARM.

На ARM вся надежда

Разработка первого чипа ARM заняла 18 месяцев. Чтобы сэкономить деньги, команда потратила много времени на тестирование конструкции, прежде чем воплотить ее в кремнии. Фурбер написал эмулятор процессора ARM на интерпретируемом языке BASIC для BBC Micro. Конечно, это было невероятно медленно, но зато помогло доказать концепцию и убедиться в том, что набор инструкций Уилсон будет работать так, как задумано.

По словам Уилсон, процесс разработки был амбициозным, но простым.

"Мы думали, что сошли с ума", - говорит она. "Мы думали, что у нас ничего не получится. Но мы все время убеждались, что на самом деле нет никакой остановки. Нужно было просто делать работу".

Фурбер занимался в основном компоновкой и дизайном самого чипа, а Уилсон сосредоточилась на наборе инструкций. Но на самом деле эти два вида работы были тесно переплетены. Выбор кодовых чисел для каждой инструкции не является произвольным. Каждое число выбирается таким образом, чтобы при переводе его в двоичные разряды соответствующие провода на шине команд активировали нужные схемы декодирования и маршрутизации.

Процесс тестирования стал более зрелым, и Уилсон возглавила группу, которая написала более совершенный эмулятор. "С симуляторами чистых инструкций мы могли иметь вещи, которые выполняли сотни тысяч инструкций ARM в секунду на втором процессоре 6502", - пояснила она. "Мы могли написать очень большой объем программного обеспечения, перенести BBC BASIC на ARM и все остальное, второй процессор, операционную систему. И это вселяло в нас все большую уверенность. Некоторые из этих программ работали лучше, чем все, что мы когда-либо видели, несмотря на то, что мы интерпретировали машинный код ARM. Сам машинный код ARM был настолько высокопроизводительным, что результат интерпретации машинного кода ARM часто был лучше, чем компилированный код на той же платформе".

Эти удивительные результаты подтолкнули небольшую команду к завершению работы. Проект первого процессора ARM был отправлен на производство в американскую компанию VLSI Technology Inc., занимающуюся производством полупроводников. Первую версию микросхемы доставили в Acorn 26 апреля 1985 года. Уилсон вставил ее в разъем Tube на BBC Micro, загрузил портированную на ARM версию BBC BASIC и протестировал ее с помощью специальной команды PRINT. Микросхема ответила: "Hello World, I am ARM", и команда открыла бутылку шампанского.

Первый ARM чип
Первый ARM чип

Давайте отвлечемся на минуту и подумаем, какое это было потрясающее достижение. Вся команда разработчиков ARM состояла из Софи Уилсон, Стива Фурбера, еще нескольких дизайнеров микросхем и группы из четырех человек, занимавшихся написанием программного обеспечения для тестирования и верификации. Этот новый 32-разрядный процессор, основанный на передовой RISC-конструкции, был создан менее чем 10 людьми, и он сработал правильно с первого раза. В отличие от этого, компания National Semiconductor вплоть до 10-й ревизии 32016 все еще находила ошибки.

Как это удалось команде Acorn? Они спроектировали ARM так, чтобы он был как можно более простым. Микросхема V1 имела всего 27 000 транзисторов (у 80286 их было 134 000!) и изготавливалась по 3-микрометровому техпроцессу - это 3000 нанометров, или примерно в тысячу раз меньше, чем у современных процессоров.

-4

Каким бы впечатляющим ни был первый ARM-процессор, важно отметить, чего в нем не хватало. У него не было встроенной кэш-памяти. В нем не было схем умножения и деления. В нем также отсутствовал блок вычислений с плавающей запятой, поэтому операции с нецелыми числами выполнялись медленнее, чем могли бы. Однако при работе с числами с плавающей запятой помогало использование простого barrel shifter. Чип работал на очень скромной частоте 6 МГц.

И как же хорошо показал себя этот маленький ARM V1? В бенчмарках он оказался примерно в 10 раз быстрее Intel 80286 с той же тактовой частотой и эквивалентен 32-разрядной Motorola 68020, работающей на частоте 17 МГц.

ARM-чип также был разработан для работы при очень низком энергопотреблении. Уилсон объяснила, что это была исключительно мера экономии - команда хотела использовать пластиковый корпус для чипа вместо керамического, поэтому установила максимальный уровень энергопотребления в 1 Вт.

Но инструменты, которыми они располагали для оценки мощности, были примитивными. Благодаря простоте конструкции и низкой тактовой частоте реальное энергопотребление составило 0,1 Вт.

Более того, на одной из первых тестовых плат, к которой команда подключила ARM, было нарушено соединение, и он вообще не был подключен к питанию. Когда они обнаружили неисправность, то были очень удивлены, поскольку процессор все это время работал. Он включался только из-за утечки электричества с микросхем поддержки.

Невероятно низкое энергопотребление ARM-чипа, по словам Уилсона, было "полной случайностью", но впоследствии это стало важным.

Собирая новый компьютер

Итак, у компании Acorn была потрясающая технология, на годы опередившая своих конкурентов. Несомненно, за этим должен был последовать финансовый успех, не так ли? Если вы следите за историей компьютеров, то, вероятно, догадываетесь об ответе.

К 1985 году продажи BBC Micro начали сходить на нет, потесненные дешевыми Sinclair Spectrum с одной стороны и клонами IBM PC с другой. Acorn продала контрольный пакет акций своей компании компании Olivetti, с которой ранее сотрудничала в создании принтера для BBC Micro. Вообще, если вы продаете свою компьютерную фирму компании, производящей печатные машинки, это не очень хороший знак.

Acorn продавала плату разработки с микросхемой ARM исследователям и любителям, но она была ограничена рынком существующих владельцев BBC Micro. Компании требовался совершенно новый компьютер, который бы действительно продемонстрировал возможности нового процессора.

Прежде чем это сделать, необходимо было немного модернизировать оригинальный ARM. ARM V2 был выпущен в 1986 году, в него была добавлена поддержка сопроцессоров (например, сопроцессора с плавающей запятой, который был популярным дополнением к компьютерам того времени) и встроенные схемы аппаратного умножения. Он был изготовлен по 2-микронному техпроцессу, что позволило Acorn увеличить тактовую частоту до 8 МГц без увеличения энергопотребления.

Но одного процессора было недостаточно для создания полноценного компьютера. Поэтому команда создала микросхему графического контроллера, контроллера ввода-вывода и контроллера памяти. К 1987 году все четыре микросхемы, включая ARM V2, были готовы, как и прототип компьютера, в который они были установлены. Чтобы отразить его передовые мыслительные возможности, компания назвала его Acorn Archimedes.

Одна из первых моделей  Acorn Archimedes
Одна из первых моделей Acorn Archimedes

Учитывая, что на дворе был 1987 год, от персональных компьютеров ожидалось нечто большее, чем просто подсказка для ввода инструкций BASIC. Пользователям требовались красивые графические интерфейсы, как на Amiga, Atari ST и Macintosh.

Для разработки операционной системы нового поколения для Archimedes компания Acorn создала удаленную группу разработчиков программного обеспечения в Пало-Альто (Калифорния), где располагался центр Xerox PARC. Она называлась ARX и обещала вытесняющую многозадачность и поддержку нескольких пользователей. ARX была медленной, но главная проблема заключалась в том, что она опаздывала. Очень поздно.

Acorn Archimedes готовился к выпуску, а у компании не было операционной системы для работы на нем. Это была кризисная ситуация. Поэтому руководство Acorn отправилось на встречу с Полом Феллоузом, руководителем команды Acornsoft, написавшим кучу языков для BBC Micro. Они спросили его: "Сможете ли вы и ваша команда написать и выпустить операционную систему для Archimedes за пять месяцев?".

Пять месяцев - не такой уж большой срок для создания операционной системы с нуля. Быстро созданная ОС была названа "Project Arthur", возможно, в честь известного британского компьютерщика Артура Нормана, а возможно, и как сокращение от "ARm by THURsday!". Она начиналась как расширение BBC BASIC. Ричард Мэнби написал программу "Arthur Desktop" на BASIC, просто как демонстрацию того, что можно сделать с помощью оконного менеджера, разработанного командой. Но времени было в обрез, и демонстрационная программа была записана в память для чтения (ROM) первой партии компьютеров.

скриншот ОС Arthur
скриншот ОС Arthur

Первые модели Archimedes поступили в продажу в июне 1987 года, причем на некоторых из них еще сохранялся фирменный знак BBC. Компьютеры были безусловно быстрыми, а по цене - очень выгодными: начальная цена составляла 800 фунтов стерлингов, что в то время равнялось примерно 1300 долл. Это выгодно отличалось от Macintosh II, который в 1987 году стоил 5500 долларов и обладал аналогичной вычислительной мощностью.

Но на Macintosh были установлены программы PageMaker, Microsoft Word и Excel, а также масса других полезных программ. Archimedes же был новой компьютерной платформой, и на момент его выпуска программного обеспечения было не так много. Компьютерный мир стремительно сходился к совместимым IBM PC и Macintosh (и еще несколько лет к Amigas), и все остальные оказались вытеснены. Компьютеры Archimedes получили хорошие отзывы в британской прессе и обрели горячих поклонников, но за первые пару лет было продано менее 100 000 систем.

Семя растет

Компания Acorn быстро приступила к исправлению ошибок в Arthur и работе над заменой операционной системы RISC OS, которая обладала более современными возможностями. RISC OS была выпущена в 1989 году, а вскоре за ней последовала новая ревизия процессора ARM - V3.

Чип V3 был построен по 1,5-микрометровому техпроцессу, что позволило уменьшить размер ядра ARM2 примерно до четверти доступной площади кристалла. Это позволило разместить 4 килобайта быстрой кэш-памяти первого уровня. Тактовая частота также была увеличена до 25 МГц.

Хотя эти улучшения были впечатляющими, инженеры, такие как Софи Уилсон, считали, что чип ARM можно продвинуть еще дальше. Но возможности Acorn были ограничены быстро сокращающимися ресурсами. Чтобы реализовать эти мечты, команде ARM необходимо было искать внешнего инвестора.

И тогда в дверь вошел представитель другой компьютерной компании, названной в честь популярного фрукта.