Главный элемент любого компьютера, ноутбука, смартфона и прочих электронных устройств — это процессор. Это мозг, благодаря которому цифровые камеры делают снимки, плееры играют музыку, аниматоры создают новые «Аватары» и «Игры престолов». Как устроен этот мозг? И как он справляется со всеми этими задачами? В сегодняшней статье мы постараемся разобраться с этими вопросами.
Мы максимально упростим объяснение, чтобы избавить вас от лишних деталей и донести суть технологий. И мы даже не будем пытаться объяснить, что именно происходит в процессоре, когда вы кликаете по виртуальной кнопке в компьютерной игре. Если задуматься, сегодняшние системы управления ракетами, смартфоны и еще миллионы разнообразных программ и устройств сегодня существуют как раз потому, что программистам не приходится задумываться о механике вычислительных процессов. Достаточно того, что все работает, как надо, а почему и как — неважно.
От программ к микроэлектронике
Это стало возможным благодаря так называемой абстракции. Программисты работают с виртуальными объектами — это высший уровень абстракции, который лежит на максимальном удалении от мира машин и ближе всего к миру человеческому. Чуть ниже располагается уровень операционной системы, где понятные человеку объекты преобразуются в компьютерные процессы. Вы двигаете мышью — операционная система задействует свои механизмы, которые отвечают за отслеживание курсора и контроль кликов.
Если спуститься еще ниже, вы будете иметь дело с аппаратной составляющей — оперативной памятью, видеокартой, тем же процессором. Это компьютерные шестеренки, чье вращение распределяет ресурсы, которые в свою очередь питают операционную систему, а та в свою очередь обеспечивает работу приложений. Здесь виртуальные процессы переходят в техническую плоскость. Если капнуть на материнскую плату кислотой, она повредит какие-то определенные чипы, и в компьютере начнет сбоить функция, за которую отвечают пораженные элементы. Когда вы приходите к компьютерному мастеру и жалуетесь, что у вас зависает какая-то программа, он может представить, какие у этой проблемы могут быть материальные причины — отследить ее корни по уровням абстракции.
Внутреннее устройство процессора
Внутри каждого процессора есть два основных блока: блок контроля (управляющее устройство, УУ) и блок логики (арифметически-логическое устройство, АЛУ). Сейчас мы не будем погружаться в детали их работы, главное, что нужно понимать — при выполнении компьютерных программ команды поступают в блок контроля, который разбирается с инструкциями, обращается к разным элементам компьютера за необходимыми данными и передает их на обработку в блок логики.
Блок логики умеет проводить операции с числами. Результат своей работы он возвращает в блок контроля, который распоряжается ими дальше, в соответствии с условиями программы, которую он выполняет. Такое разделение обязанностей позволяет процессору эффективно распоряжаться временем — один блок руководит процессами, работает с памятью и прочими функциональными элементами компьютера, второй решает математические задачи.
В принципе, такая схема применяется в любой командной работе. Всегда есть руководитель, который занимается организационными вопросами, общается с внешним миром, добывая необходимые ресурсы и данные, и есть специалисты, которые работают с этими ресурсами и данными, добиваясь поставленных целей.
Рабочий цикл центрального процессора
Все рабочие операции внутри процессора организованы в повторяющийся цикл: получить инструкцию из памяти, прочитать и понять команду, выполнить ее. Этот бесконечный цикл раз за разом повторяется, пока включен ваш компьютер. За его контроль отвечает специальный счетчик, который физически встроен в микросхему — этот элемент, как дирижер, отсчитывает такты, позволяя процессору четко выполнять нужную работу.
Именно отсюда взялось понятие тактовой частоты, которое обозначает, сколько раз за одну секунду этот дирижер взмахнет своей палочкой. Первый взмах — процессор получает инструкцию. Второй взмах — читает и понимает команду. Третий взмах — выполняет ее. Если в вашем компьютере или смартфоне стоит процессор с тактовой частотой в 2 Гигагерца (смешная цифра по нынешним временам), каждую секунду в нем происходит два миллиарда взмахов. Такая фантастическая скорость операций позволяет современным компьютерам показывать сверхчеткое видео с чистейшим звуком, отрисовывать трехмерные пространства в играх и выполнять множество других операций, для которых мы и покупаем компьютеры.
Несмотря на всю широту возможностей, набор инструкций, с которыми работает процессор, довольно небольшой. Он может прочитать или записать данные в указанную ячейку памяти, провести с ними какие-то операции, запомнить полученный результат, сравнить его с каким-то числом и предпринять то или иное действие в зависимости от того, что окажется больше. Вся магия происходит потому, что эти операции можно проводить бесконечно и очень быстро, выполняя условия алгоритмов, которые пишут программисты.
На таких, в общем-то несложных принципах и работает мозг вашего компьютера, на практике доказывая древнюю мудрость: терпение и труд все перетрут.