Справочник - Материнские платы и процессоры

         

И все это ради мегагерц


Процессор является одним из тех устройств, в которых логика функционирования неразрывно связана с технологией производства. Подтверждает это и вторая часть определения из БСЭ, где говорится о логической структуре процессоров. О ней и пойдет речь дальше.

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

Первый из этапов - предварительная обработка данных, которая заключается в размещении их в оперативной памяти или кэше процессора. Далее идет стадия преобразования данных в код, понятный процессору. Этот процесс происходит в предпроцессоре, передающем данные преобразованного формата (внутренний формат процессора) в постпроцессор, где и происходит их обработка. Завершается работа четырехступенчатого конвейера обратной записью в кэш либо оперативную память.

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

Но в том-то и дело, что это в идеале, ведь вычислительный конвейер процессора мало чем отличается от калькулятора, способного вычислить все, если вы правильно поставите ему задачу.
Так и конвейер полностью полагается на работу других блоков процессора, в числе которых блок предсказания ветвлений, позволяющий обрабатывать данные спекулятивно, то есть заранее, не дожидаясь выполнения множественных циклов и других логических операторов, коими наполнен код любой программы. Все задачи, исполняемые процессором, можно разделить на две большие части. Первая из них - целочисленные операции (как правило, офисные приложения) и операции с плавающей точкой (мультимедийные приложения). Первый тип обрекает нас на большое количество переходов, предсказание которых очень трудно, и коэффициент правильного предсказания в таких приложениях весьма низок. Как следствие, при их выполнении существует постоянная необходимость заполнения конвейера правильными инструкциями (как только осуществляется неверный переход, содержимое конвейера обнуляется и он загружается заново, что приводит к существенным временным потерям). И прежде чем мы получим результат первого вычисления, пройдет несколько десятков процессорных тактов (например, для Pentium 4 Prescott - 31), что при большом количестве таких ошибок пагубно отразится на производительности. В частности, на офисных приложениях новый процессор теряет до 20-30% своей производительности в сравнении с аналогичными моделями Pentium III. Второй тип задач - мультимедийные приложения, напротив, характеризуется очень малым количеством переходов и высокой степенью их предсказания, и, как следствие, на них процессор с конвейером любой длины может реализовать всю свою мощь наилучшим образом. Если учесть, что пользователю не столь важно ускорение работы офисных программ, которым зачастую достаточно производительности процессоров двух-, трехлетней давности, то процессоры с удлиненным конвейером видятся, пожалуй, наиболее перспективными разработками. Это отражают и характеристики современных процессоров - и в продукции компании Intel, и AMD (в меньшей степени) чувствуется все большая ориентация на мультимедийные приложения. Об этом могут говорить и постоянно удлиняющиеся конвейеры, и поддержка SIMD-инструкций (Single Instruction Multiple Data), позволяющих за один такт выполнять однотипные, часто встречающиеся в потоковых приложениях алгоритмы.

Содержание раздела