Компьютерный мир стремительно меняется. Настольные ПК уступили первые строчки в рейтингах продаж ноутбукам, а они вот-вот могут отдать рынок планшетам и другим мобильным устройствам. 10 лет назад мы ценили чистые мегагерцы, настоящую мощь и производительность. Теперь, чтобы завоевать рынок процессор должен быть не только быстрым, но и экономичным. Многие считают, что архитектурой XXI века является ARM. Так ли это?
Новое – хорошо забытое старое
Журналисты вслед за пиарщиками ARM нередко преподносят эту архитектуру как нечто совершенно новое, что должно похоронить убеленную сединами х86.
На самом деле ARM и х86, на базе которой построены процессоры Intel, AMD и VIA, устанавливаемые в ноутбуки и настольные ПК, практически ровесники. Первый чип х86 увидел свет в 1978 году. Проект ARM официально стартовал в 1983, но при этом базировался на разработках, которые велись практически одновременно с созданием х86.
Первые ARM впечатляли своим изяществом специалистов, но со своей относительной низкой производительностью не могли бы завоевать рынок, который требовал высоких скоростей и не обращал внимание на эффективность работы. Должны были сложиться определенные условия, чтобы популярность ARM резко пошла вверх.
На рубеже восьмидесятых и девяностых с их относительно недорогой нефтью были востребованы огромные внедорожники с мощными 6-литровыми двигателями. Мало кого интересовали электромобили. Но в наше время, когда баррель нефти стоит больше $100, большие машины с прожорливыми движками нужны только богатым, остальные спешат пересесть на экономичные автомобили. Похожее случилось и с ARM. Когда встал вопрос мобильности и экономичности, архитектура оказалась сверхвостребованной.
«Рисковый» процессор
ARM представляет собой RISC-архитектуру. В ней используется сокращенный набор команд – RISC (reduced instruction set computer). Архитектура этого типа появилась в конце семидесятых, примерно тогда же, когда Intel предложила свою х86.
Один из первых чипов ARM производства компании Acorn
Экспериментируя с различными компиляторами и процессорами с микрокодной реализацией, инженеры заметили, что в некоторых случаях последовательности простых команд выполнялись быстрее, чем одна сложная операция. Было решено создать архитектуру, которая предполагала бы работу с ограниченным набором простейших инструкций, декодирование и выполнение которых занимало бы минимум времени.
Компьютер BBC Micro
Один из первых проектов RISC-процессоров был реализован группой студентов и преподавателей из Университета Беркли в 1981 году. Как раз в это время британская компания Acorn столкнулась с вызовом времени. Она выпускала весьма популярные на Туманном Альбионе образовательные компьютеры BBC Micro на базе процессора 6502. Но вскоре эти домашние ПК стали проигрывать более совершенным машинам. Acorn рисковала потерять рынок. Инженеры компании, познакомившись со студенческими работами по RISC-процессорам, решили, что справиться с созданием собственного чипа будет достаточно просто. В 1983 году стартовал проект Acorn RISC Machine, который позднее превратился в ARM. Через три года был выпущен первый процессор.
Первые ARM
Он был крайне простым. Первые чипы ARM даже были лишены команд умножения и деления, которые представлялись набором более простых инструкций. Другой особенностью чипов стали принципы работы с памятью: все операции с данными могли осуществляться только в регистрах. При этом процессор работал с так называемым регистровым окном, то есть мог обращаться лишь к части из всех доступных регистров, которые были в основном универсальными, а их работа зависела от режима, в котором находился процессор. Это позволило в самых первых версиях ARM отказаться от кэша.
Кроме того, упрощая наборы команд, разработчики архитектуры смогли обойтись без ряда других блоков. Например, в первых ARM начисто отсутствовал микрокод, а также модуль выполнения операций с плавающей запятой – FPU. Общее число транзисторов в первом ARM составляло 30 000. В аналогичных х86 их было в несколько раз, а то и на порядок больше. Дополнительная экономия энергии достигается за счет условного выполнения команд. То есть та или иная операция будет выполнена, если в регистре есть соответствующий факт. Это помогает процессору избежать «лишних телодвижений». Все инструкции выполняются последовательно. В результате ARM потерял в производительности, но не существенно, при этом значительно выиграл в энергопотреблении.
Основные принципы построения архитектуры остаются теми же, что и в первых ARM: работа с данными только в регистрах, сокращенный набор команд, минимум дополнительных модулей. Все это обеспечивает архитектуре низкое энергопотребление при относительно высокой производительности.
С целью ее увеличения ARM в течение последних лет внедрила несколько дополнительных наборов инструкций. Наряду с классической ARM, существуют Thumb, Thumb 2, Jazelle. Последняя предназначена для ускорения выполнения Java-кода.