Управление процессором: спортивный автомобиль против автобуса
На заре кибернетической эры компьютеры могли быть размером с грузовой контейнер: до 2,4 метров в ширину, 2,5 метра в высоту и 12 метров в длину! К 1980-м годам они уменьшились до размеров холодильников, благодаря использованию микрочипов (правильное название этих элементов — интегральная схема). Это миниатюрное, но мощное электронное устройство, изготовленное из полупроводникового материала и содержащее множество транзисторов. Причиной стало одно из самых удивительных и точных предсказаний в истории технологий от 1965 года, когда Гордон Мур построил график количества транзисторов — крошечных переключателей, которые можно представить, как «атомы» компьютерного оборудования, — которые могли поместиться на каждом микрочипе за предыдущие несколько лет. Именно тогда он заметил, что это число удваивалось каждый год, благодаря чему и предсказал, что ежегодное удвоение будет продолжаться десятилетиями — это было самое смелое, но удивительно точное заявление, известное как закон Мура. Рисунок в его оригинальной статье предполагал, что компьютеры в конечном итоге будут продаваться вместе с предметами личного пользования, такими как пуговицы и губная помада. В 1976 году компания Apple Computer исполнила пророчество Мура, выпустив в продажу домашние компьютеры.
Для всех, кто поверил закону Мура в 1970-х, это означало, что в конечном итоге самые быстрые компьютеры в мире будут помещаться на одном микрочипе, поскольку расстояние между компонентами сокращается, а значит, и электрическим сигналам потребуется меньше времени для достижения ими своих границ. Предсказанная закономерность развития микропроцессорной техники действовала десятилетиями, благодаря чему люди смогли разработать более быстрые компьютеры с растущим количеством более совершенных транзисторов. Чтобы разместить больше транзисторов на кристалле, транзисторы должны были стать ещё меньше и, следовательно, быстрее. Более быстрые компьютеры позволили достичь многих технологических достижений, которыми мы пользуемся сегодня. Например, они сделали возможным появление высокопроизводительных серверов, смартфонов и умных часов, которыми многие из нас сейчас пользуются. Чтобы человечество продолжило следовать по этому увлекательному пути, потребуются ещё более мощные компьютеры, особенно если нам нужны вычислительные мощности серверов, объединённых в единые нейросети, которые выполняют задачи так же хорошо, или даже лучше, чем люди – их называют обобщённым термином «искусственный интеллект».
При сборке компьютеров одним из важных решений является выбор языка, который компоненты используют для связи между собой, называемого набором инструкций. В 1980 году важным вопросом стала дилемма, нужно ли менять наборы инструкций по мере быстрого совершенствования компьютеров. В то время большинство разработчиков считали, что необходимо продолжать добавлять транзисторы, следуя закону Мура, чтобы давать новым компьютерам более сложные инструкции. К счастью, люди склонились к тому мнению, что необходимо сохранять инструкции простыми… и это оказалось наиболее успешным методом.
Архитектор проектирует здания, поэтому, по образу и подобию, мы называем человека, проектирующего компьютер, компьютерным архитектором. Различаются физические элементы компьютерных систем и программы, которые на них работают. То «железо», из которого собираются компьютерные системы, называют аппаратным обеспечением (потому что их сложно изменить), а программы скрипты управления – программным обеспечением. Важным решением в архитектуре компьютера является выбор языка, используемого программным обеспечением и оборудованием для взаимодействия. Этот язык называется набором инструкций, а «слова» называются инструкциями. Простейшими примерами инструкций являются функции, которые вы видите на клавишах калькулятора: сложение, вычитание, умножение, деление. Компьютерные программы состоят из миллионов таких инструкций, выполняемых миллиарды раз в секунду.
Важным вопросом компьютерной архитектуры в 1980 году было то, должен ли набор инструкций для однокристального компьютера следовать стилю больших многокристальных компьютеров или изменить его природу, чтобы лучше соответствовать быстро совершенствующимся микропроцессорам (процессор - это часть компьютерного оборудования, которая выполняет арифметические вычисления, поэтому процессор внутри одной микросхемы был разумно назван микропроцессором). Тогда большинство разработчиков считали, что следует использовать принцип закона Мура для постоянного увеличения числа транзисторов, чтобы обеспечить компьютерам более сложные инструкции (CISC). В ответ им была написана статья под названием «В пользу компьютера с сокращённым набором команд (RISC)», в которой утверждалось, что вместо этого следует сохранять инструкции простыми и краткими. Возникший в результате спор между RISC и CISC привёл к жарким спорам в сообществе создателей компьютерной архитектуры. Одни защищали сторону RISC в дебатах на нескольких очевидных примерах, чтобы подразнить оппонентов. Для наглядного сравнения был использован алгоритм сравнения между эффективностью большого, но тяжёлого и медленного автобуса для представления CISC, а небольшой, лёгкий, быстрый и современный спортивный автомобиль — для воплощения архитектуры RISC.
Чтобы понять аргумент RISC против CISC, давайте рассмотрим эти два транспортных средства. Что доставит 10 пассажиров между двумя городами за меньшее время: маленький быстрый спортивный автомобиль или большой, медленный автобус, вмещающий больше людей? Ответ зависит от того, сколько поездок потребуется и как долго они будут продолжаться. При измерении быстродействия аппаратного обеспечения было выяснено, что программы, использующие словарь RISC, считывали за одинаковое время примерно на треть больше инструкций, чем CISC (больше «поездок»). Это происходило потому, что они считывали их в 4–5 раз быстрее (более быстрые «поездки»). Именно поэтому RISC оказался в три–четыре раза быстрее CISC по быстродействию взаимодействия с «железом»! Идеи быстродействия RISC-архитектуры в конечном итоге победили и сегодня практически все смартфоны, планшеты и умные часы используют именно её - а 99% всех микропроцессоров, поставляемых сегодня для этих устройств, — RISC-процессоры.
После десятилетий планомерного удвоения числа транзисторов на кристалле, закон Мура наконец-то перестал действовать - число транзисторов продолжает расти, но гораздо медленнее, чем раньше. Программисты по-прежнему рассчитывают на выпуск более быстрых компьютеров для разработки нового, более требовательного, программного обеспечения, которое понравится пользователям, например, более сложных видеоигр. Так как же архитектор компьютерных систем может проектировать более быстрые компьютеры без существенной помощи закона Мура?
Остаётся только создавать специализированные компьютеры, предназначенные для узкого класса программного обеспечения. Идея заключается в том, чтобы выделить аппаратные ресурсы микрочипа для ускорения операций, важных для одного приложения, но не для большинства других. Например, предположим, что приложению требуется гораздо больше операций умножения, чем обычно, но меньше операций деления. Компьютер, ориентированный на умножение, может сократить количество оборудования, необходимого для операций деления, и использовать сэкономленные ресурсы для ускорения умножения. Ведущие специалисты в этой области предсказали, что следующее десятилетие станет Золотым веком компьютерной архитектуры, отчасти потому, что архитекторам придётся проектировать множество микропроцессоров узкого назначения.
Тогда возникает вопрос: «Каким приложениям необходима такая помощь»? Примерно в то же время, когда закон Мура начал замедляться, возникла важная область развивающегося искусственного интеллекта (ИИ). Одна из причин этого прогресса заключается в том, что компьютеры наконец стали достаточно быстрыми, чтобы превзойти альтернативы в прямых соревнованиях. Примерами являются системы, в числе которых есть такая, которая победила чемпиона мира среди людей в игре под названием го, или ИИ, который решил давнюю проблему в биологии под названием сворачивание белка.
Разрабатывая микропроцессоры исключительно для сферы ИИ, можно продолжать создавать гораздо более быстрые компьютеры (специальные мощные вычислительные устройства с несколькими независимыми линиями питания, для бесперебойной работы, называются серверами и размещаются, как правило, в специализированных дата-центрах), несмотря на ослабление закона Мура. В 2016 году первый коммерческий микрочип для ИИ был в 30 раз быстрее обычных микропроцессоров! Это направление продолжает стремительно развиваться, а потенциальное влияние таких микрочипов на общество — одна из причин, по которой стоимость компании NVIDIA, производящей их, резко выросла за последний год. Если у вас есть персональный игровой компьютер, он, вероятно, оснащён графическим процессором, с большой долей вероятности именно этого производителя. Как следует из названия, графический процессор (GPU) — это узкоспециализированный процессор, используемый для генерации графики, которую вы видите в видеоиграх и фильмах. Они хорошо справляются с обработкой графики и задачами искусственного интеллекта, но не с приложениями, выходящими за рамки этого узкого диапазона.
Эти устройства содержат сотни процессоров и работают быстрее, поскольку могут параллельно обрабатывать больше инструкций в секунду. NVIDIA изобрела язык программирования CUDA, чтобы упростить программирование графики, и вскоре исследователи использовали CUDA для программирования искусственного интеллекта (ИИ). Таким образом, вторым шагом к становлению архитектором компьютеров станет освоение быстрых программ на этом языке. Сегодня большинство специалистов этой сферы имеют высшее образование в области компьютерных наук. Кроме того, профессия компьютерного архитектора требует изучения необычных аппаратных возможностей графических процессоров, которых нет в обычных компьютерах.
все статьи