Информационные технологииStfw.Ru 🔍

Функции процессора

🕛 24.09.2009, 00:31
По мере появления новых процессоров их архитектура дополняется все новыми и новыми возможностями, которые позволяют повысить не только эффективность выполнения тех или иных приложений, но и надежность центрального процессора в целом. В следующих разделах представлено краткое описание различных технологий, включая режим управления системой, суперскалярное выполнение, технологии MMX и SSE.

SMM

Задавшись целью создания все более быстрых и мощных процессоров для портативных компьютеров, Intel разработала схему управления питанием. Эта схема позволяет процессорам экономно использовать энергию батареи и таким образом продлить срок ее службы. Такая возможность впервые была реализована в процессоре 486SL, который является усовершенствованной версией процессора 486DX. Впоследствии, когда возможности управления питанием стали более универсальными, их начали встраивать в Pentium и во все процессоры более поздних поколений. Система управления питанием процессоров называется SMM (System Management Mode - режим управления системой).
Будучи физически интегрированной в процессор, SMM функционирует независимо. Благодаря этому она может управлять потреблением мощности, в зависимости от уровня активности процессора. Это позволяет пользователю определять интервалы времени, по истечении которых процессор будет частично или полностью выключен. Данная схема также поддерживает возможность приостановки/возобновления, которая позволяет мгновенно включать и отключать мощность, что обычно используется в портативных компьютерах. Соответствующие параметры устанавливаются в BIOS.

Суперскалярное выполнение

В процессорах Pentium пятого и последующих поколений встроен ряд внутренних конвейеров, которые могут выполнять несколько команд одновременно. Процессор 486 и все предшествующие в течение определенного отрезка времени могли выполнять только одну команду. Технология одновременного выполнения нескольких команд называется суперскалярной. Благодаря использованию данной технологии и обеспечивается дополнительная эффективность по сравнению с процессором 486.
Суперскалярная архитектура обычно ассоциируется с микросхемами RISC (Reduced Instruction Set Computer - компьютер с упрощенной системой команд). Процессор Pentium - одна из первых микросхем CISC (Complex Instruction Set Computer - компьютер со сложной системой команд), в которой применяется суперскалярная технология, реализованная во всех процессорах пятого и последующих поколений.
Рассмотрим на примере установки электрической лампочки инструкции CISC.
1. Возьмите электрическую лампочку.
2. Вставьте ее в патрон.
3. Вращайте до отказа.
И аналогичный пример в виде инструкций RISC.
1. Поднесите руку к лампочке.
2. Возьмите лампочку.
3. Поднимите руку к патрону.
4. Вставьте лампочку в патрон.
5. Поверните ее.
6. Лампочка поворачивается в патроне? Если да, то перейти к п. 5.
7. Конец.
Многие инструкции RISC довольно просты, поэтому для выполнения какой-либо операции потребуется больше таких инструкций. Их основное преимущество состоит в том, что процессор осуществляет меньше операций, а это, как правило, сокращает время выполнения отдельных команд и соответственно всей задачи (программы). Можно долго спорить о том, что же в действительности лучше - RISC или CISC, хотя, по правде говоря, такого понятия, как “чистая” микросхема RISC или CISC, не существует. Подобная классификация не более чем вопрос терминологии.
Процессоры Intel и совместимые с ними можно определить как микросхемы CISC. Несмотря на это, процессоры пятого и шестого поколений обладают различными атрибутами RISC и разбивают во время работы команды CISC на более простые инструкции RISC.

Технология MMX

В зависимости от контекста, MMX может означать “multi-media extensions” (мультимедийные расширения) или “matrix math extensions” (матричные математические расширения). Технология MMX использовалась в старших моделях процессоров Pentium пятого поколения в качестве расширения, благодаря которому ускоряется компрессия/декомпрессия видеоданных, манипулирование изображением, шифрование и выполнение операций ввода-вывода - почти все операции, используемые во многих современных программах.
В архитектуре процессоров MMX есть два основных усовершенствования. Первое, фундаментальное, состоит в том, что все микросхемы MMX имеют больший внутренний встроенный кэш, чем их собратья, не использующие эту технологию. Это повышает эффективность выполнения каждой программы и всего программного обеспечения независимо от того, использует ли оно фактически команды MMX.

Другим усовершенствованием MMX является расширение набора команд процессора 57 новыми командами, а также введение новой возможности выполнения команд, называемой одиночный поток команд - множественный поток данных (Single Instruction - Multiple Data, SIMD).
В современных мультимедийных и сетевых приложениях часто используются циклы; хотя они занимают около 10% (или даже меньше) объема полного кода приложения, на их выполнение может уйти до 90% общего времени выполнения. Технология SIMD позволяет одной команде осуществлять одну и ту же операцию над несколькими данными, подобно тому как преподаватель, читая лекцию, обращается ко всей аудитории, а не к каждому студенту в отдельности. Применение SIMD позволяет ускорить выполнение циклов при обработке графических, анимационных, видео- и аудиофайлов; в противном случае эти циклы отнимали бы время у процессора.
Компанией Intel было добавлено 57 новых команд, специально разработанных для более эффективной обработки звуковых, графических и видеоданных. Эти команды предназначены для выполнения с высокой степенью параллелизма последовательностей, которые часто встречаются при работе мультимедийных программ. Высокая степень параллелизма в данном случае означает, что одни и те же алгоритмы применяются ко многим данным, например к данным в различных точках при изменении графического изображения.
Такие компании, как AMD и Cyrix, лицензировали у Intel технологию MMX и реализовали ее в собственных процессорах.
Инструкции SSE, SSE2 и SSE3
В феврале 1999 года Intel представила общественности процессор Pentium III, содержащий обновление технологии MMX, получившей название SSE (Streaming SIMD Extensions - поточные расширения SIMD). До этого момента инструкции SSE носили имя Katmai New Instructions (KNI), так как первоначально они были включены в процессор Pentium III с кодовым именем Katmai. Процессоры Celeron 533A и выше, созданные на основе ядра Pentium III, тоже поддерживают инструкции SSE. Более ранние версии процессора Pentium II, а также Celeron 533 и ниже (созданные на основе ядра Pentium II) SSE не поддерживают.
Инструкции SSE содержат 70 новых команд для работы с графикой и звуком в дополнение к существующим командам MMX. Фактически этот набор инструкций кроме названия KNI имел еще и второе название - MMX-2. Инструкции SSE позволяют выполнять операции с плавающей запятой, реализуемые в отдельном модуле процессора. В технологиях MMX для этого использовалось стандартное устройство с плавающей запятой.
Инструкции SSE2, содержащие 144 дополнительные команды SIMD, были представлены в ноябре 2000 года вместе с процессором Pentium 4. В SSE2 были включены все инструкции предыдущих наборов MMX и SSE.
Инструкции SSE3 были представлены в феврале 2004 года вместе с процессором Pentium 4 Prescott; они добавляют 13 команд SIMD, предназначенных для ускорения выполнения сложных математических операций, обработки графики, кодирования видео и синхронизации потоков данных. Инструкции SSE3 также содержат все инструкции MMX, SSE и SSE2.
Поточные расширения SIMD (SSE) содержат ряд новых команд для выполнения операций с плавающей запятой и целыми числами, а также команды управления кэш-памятью. Новые технологии SSE позволяют более эффективно работать с трехмерной графикой, потоками аудио- и видеоданных (DVD-воспроизведение), а также приложениями распознавания речи. В целом SSE обеспечивает следующие преимущества:
более высокое разрешение/качество при просмотре и обработке графических изображений;
улучшенное качество воспроизведения звуковых и видеофайлов в формате MPEG2, а также одновременное кодирование и декодирование формата MPEG2 в мультимедийных приложениях;
уменьшение загрузки процессора и повышение точности/скорости реагирования при выполнении программного обеспечения для распознавания речи.

Инструкции SSE и SSE2 особенно эффективны при декодировании файлов формата MPEG2, который является стандартом сжатия звуковых и видеоданных, используемым в DVD. Следовательно, оснащенные SSE процессоры позволяют достичь максимальной скорости декодирования MPEG2 без использования дополнительных аппаратных средств (например, платы декодера MPEG2). Кроме того, процессоры, содержащие набор инструкций SSE, значительно превосходят предыдущие версии процессоров при распознавании речи.
Одним из основных преимуществ SSE по отношению к MMX является поддержка операций SIMD с плавающей запятой, что очень важно при обработке трехмерных графических изображений. Технология SIMD, как и MMX, позволяет выполнять сразу несколько операций при получении процессором одной команды. В частности, SSE поддерживает выполнение до четырех операций с плавающей запятой за цикл; одна инструкция может одновременно обрабатывать четыре блока данных. Для выполнения операций с плавающей запятой инструкции SSE могут использоваться вместе с командами MMX без заметного снижения быстродействия. SSE также поддерживает упреждающую выборку данных (prefetching), которая представляет собой механизм предварительного считывания данных из кэш-памяти.
Обратите внимание: наилучшие результаты применения новых инструкций процессора обеспечиваются только при их поддержке на уровне используемых приложений. Сегодня большинство компаний, занимающихся разработкой программного обеспечения, модифицировали приложения, связанные с обработкой графики и звука, что позволило в более полной мере использовать возможности SSE. Например, графическое приложение Adobe Photoshop поддерживает инструкции SSE, что значительно повышает эффективность использования оснащенных SSE процессоров. Поддержка инструкций SSE встроена в DirectX 6.1 и в самые последние видео- и аудиодрайверы, поставляемые с операционными системами Windows 98 Second Edition, Windows Me, Windows NT 4.0 (с пакетом обновления 5 или более поздним) и Windows 2000.
Инструкции SSE являются расширением технологий MMX, а SSE2 - расширением инструкций SSE. Таким образом, процессоры, поддерживающие SSE2, поддерживают также SSE, а процессоры, поддерживающие инструкции SSE, в свою очередь, поддерживают оригинальные команды MMX. Это означает, что стандартные приложения MMX могут выполняться практически на любых системах.
Первые процессоры производства AMD с поддержкой расширений SSE3 -это 0,09-микронные версии Athlon 64, а также все версии двухъядерных процессоров Athlon 64 X2.

3DNow!, Enhanced 3DNow! и 3DNow! Professional

Технология 3Dnow! разработана компанией AMD в ответ на реализацию поддержки инструкций SSE в процессорах Intel. Впервые (май 1998 года) 3DNow реализована в процессорах AMD K6, а дальнейшее развитие - Enhanced 3Dnow! - эта технология получила в процессорах Athlon и Duron. Новая технология 3DNow! Professional впервые появилась в процессорах Athlon XP. Компания AMD лицензировала технологию MMX от Intel и реализовала полноценную поддержку инструкций MMX в процессорах K6, Athlon и Duron. Не желая дополнительно лицензировать инструкции SSE, в AMD разработали новый набор расширений для инструкций MMX, получивший название 3DNow!. Аналогично SSE/SSE2, технологии 3DNow!, Enhanced 3DNow! и 3DNow! Professional предназначены для ускорения обработки трехмерной графики, мультимедиа и других интенсивных вычислений.
Технология 3DNow! представляет собой набор из 21 инструкции SIMD, которые оперируют массивом данных в виде единичного элемента. В Enhanced 3DNow! к существующим добавлены 24 новые инструкции (19 SSE и 5 DSP/коммуникационных инструкций), что составляет в итоге 45 инструкций. Будучи расширением MMX, технология 3DNow! предоставляет функциональные возможности, аналогичные инструкциям SSE процессоров Pentium III и Celeron. Согласно данным компании AMD, технология 3DNow! расширяет возможности MMX наравне с SSE, однако использует для этого меньшее количество инструкций и менее сложную архитектуру. Технологии обработки данных 3DNow!, Enhanced 3DNow! и 3DNow!

Professional хотя и подобны SSE, но несовместимы на уровне инструкций, поэтому производителям программного обеспечения необходимо отдельно реализовать их поддержку. Последняя версия 3DNow! - 3DNow! Professional - добавляет 51 инструкцию SSE к набору команд 3DNow! Enhanced, благодаря чему процессоры AMD в полной мере поддерживают все возможности SSE. К сожалению, это не относится к инструкциям SSE2, которые на данный момент поддерживаются только процессорами Pentium 4 и Celeron 4.
Технология 3Dnow!, как и SSE, поддерживает операции SIMD с плавающей запятой, а также позволяет выполнять до четырех операций с плавающей запятой за один цикл. Инструкции 3DNow! для операций с плавающей запятой могут использоваться вместе с командами MMX без заметного снижения быстродействия. Поддерживается и упреждающая выборка данных - механизм предварительного считывания данных из кэш-памяти.
Наравне с SSE инструкции 3DNow! в полной мере поддерживаются различными программными продуктами, в частности Windows 9x, Windows NT 4.0 и более новыми операционными системами Microsoft. В процессорах последнего поколения Athlon XP и Athlon 64 реализована полноценная поддержка инструкций SSE за счет применения технологии 3DNow! Professional.
Динамическое выполнение
Этот метод впервые использован в микросхемах P6 (процессорах шестого поколения) и позволяет процессору параллельно обрабатывать сразу несколько команд, что сокращает время, необходимое для выполнения той или иной задачи. Это технологическое новшество включает ряд функций.
Предсказание множественного перехода (ветвления). Предсказание потока выполнения программы через несколько ветвлений.
Анализ потока команд. Назначение выполнения команд по мере готовности, независимо от их порядка в оригинальной программе.
Упреждающее выполнение. Увеличение скорости выполнения за счет опережающего просмотра счетчика команд и выполнения тех команд, к которым, вероятно, потребуется обратиться позже.
Предсказание перехода
Функция предсказания перехода, ранее применявшаяся только в универсальных процессорах старших моделей, позволяет процессору при высокоскоростном выполнении команд сохранять конвейер заполненным. Специальный модуль выборки/декодирования, включенный в процессор, использует высокооптимизированный алгоритм предсказания перехода, позволяющий предсказывать направление и результат команд, выполняемых через несколько уровней ветвлений, обращений и возвратов. Этот модуль напоминает шахматиста, который разрабатывает несколько различных стратегий перед началом шахматной партии, предсказывая ответные действия противника на несколько ходов вперед. Благодаря предсказанию результатов выполнения команды инструкции могут выполняться практически без задержек.
Анализ потока данных
Функция анализа потока команд используется для исследования потока данных, проходящих через процессор, и выявления любых возможностей выполнения команды с изменением заданной ранее последовательности. Специальный процессорный модуль отправки/выполнения контролирует команды и позволяет выполнять их в таком порядке, который оптимизирует использование модулей множественного суперскалярного выполнения. Возможность изменять последовательность выполнения команд позволяет сохранить занятость модулей даже в случае промаха кэш-памяти или обработки каких-либо информационно-зависимых команд.

Упреждающее выполнение

Способность процессора выполнять команды с помощью опережающего просмотра существующего счетчика команд называется упреждающим выполнением. Модуль отправки/выполнения, включенный в процессор, анализирует поток данных для выполнения всех команд, существующих в буфере (накопителе) команд, и сохранения результатов в буферных регистрах. После этого модуль изъятия анализирует содержимое пула команд на предмет наличия завершенных команд, не зависящих от данных, получаемых при выполнении других команд, или команд, имеющих неразрешенные предсказания перехода. Результаты выполнения обнаруженных завершенных команд передаются в память модулем изъятия или соответствующей стандартной архитектурой Intel в том порядке, в котором они были получены. Затем команды удаляются из буфера.
В сущности, динамическое выполнение устраняет зависимость от линейной последовательности команд. Выполнение команд с изменением их последовательности позволяет максимально загрузить модуль выполнения и сократить время ожидания, необходимое для получения данных из памяти. Несмотря на то что порядок предсказания и выполнения команд может быть изменен, их результаты передаются в исходном порядке, для того чтобы не прерывать и не изменять течение программы. Это позволяет процессорам P6 выполнять программы, оптимизированные для архитектуры Intel, точно так же, как это делали P5 (Pentium) или процессоры более ранних версий, но на целый порядок быстрее!

Архитектура двойной независимой шины

Эта архитектура (Dual Independent Bus - DIB) впервые была реализована в процессоре шестого поколения и предназначалась для увеличения пропускной способности шины процессора и повышения производительности. При наличии двух независимых шин данных для ввода-вывода процессор получает доступ к данным с любой из них одновременно и параллельно, а не последовательно, как в системе с одной шиной. Вторая, или фоновая (backside), входная шина процессора с DIB применяется кэш-памятью второго уровня, поэтому она может работать значительно быстрее, чем в том случае, если бы ей пришлось использовать (совместно с процессором) основную шину.
В архитектуре DIB предусмотрено две шины: шина кэш-памяти второго уровня и шина, соединяющая процессор и основную память (FSB). Процессоры Pentium Pro, Celeron, Pentium II/III/4, Athlon и Duron могут использовать обе шины одновременно, благодаря чему снижается критичность такого параметра, как пропускная способность шины. Благодаря архитектуре двойной шины кэш-память второго уровня более современных процессоров может работать на полной скорости в ядре процессора на независимой шине, используя при этом основную шину центрального процессора (FSB) для обработки текущих данных, поступающих на микросхему и отправляемых ею. Шины работают с разной тактовой частотой. Шина FSB, или главная шина центрального процессора, соединена с системной платой, а шина кэш-памяти второго уровня - непосредственно с ядром процессора. При увеличении рабочей частоты процессора увеличивается тактовая частота кэш-памяти второго уровня.
Для реализации архитектуры DIB кэш-память второго уровня перемещена с системной платы в один корпус с процессором, что позволило приблизить быстродействие кэш-памяти второго уровня к быстродействию встроенной кэш-памяти, которое значительно превосходит быстродействие памяти, помещаемой на системную плату. Чтобы поместить кэш в корпус процессора, понадобилось модифицировать гнездо процессора.
Архитектура DIB также позволяет системой шине выполнять одновременно несколько транзакций (а не одну последовательность транзакций), благодаря чему ускоряется поток информации внутри системы и повышается эффективность. Все средства DIB повышают пропускную способность почти в три раза по сравнению с процессором, имеющим архитектуру одиночной шины.

Технология Hyper-Threading

Такие операционные системы, как Windows NT 4.0/2000/XP Professional/2003 Server и Linux, в полной мере поддерживают компьютеры с двумя или более установленными физическими процессорами, дающими подобным системам большой прирост производительности
по сравнению с однопроцессорными компьютерами. Тем не менее двухпроцессорные компьютеры и системные платы всегда были на порядок дороже их однопроцессорных “сородичей”, а добавление второго процессора в поддерживающую подобную модернизацию систему приводило к возникновению различных сложностей, связанных с подбором одинаковой тактовой частоты и конфигурационных параметров для двух процессоров. Новейшая технология Hyper-Threading (HT) компании Intel позволяет одному процессору одновременно обрабатывать два независимых потока команд. Другими словами, HT превращает один физический процессор в два виртуальных.
Изначально технология HT была представлена в семействе серверных процессоров Xeon в марте 2002 года. Данная технология дала возможность виртуально вдвое увеличить количество процессоров многопроцессорных серверов. Затем HT появилась в предназначенных для рабочих станций процессорах Xeon с тактовой частотой шины 533 МГц, после чего в ноябре 2002 года дебютировала в процессоре Pentium 4 с тактовой частотой 3,06 ГГц, ориентированном на рынок домашних/офисных ПК. Технологию HT также поддерживают все процессоры Pentium 4 с частотой шины 800 МГц (частота от 2,4 до 3,8 ГГц), а также Pentium 4 Extreme Edition и двухъядерный Pentium Extreme Edition. В то же время двухъядерные процессоры Pentium D технологию HT не поддерживают.
Принцип работы
Поддерживающий HT процессор имеет два набора общих регистров, регистры управления и другие системные компоненты. В то же время логические процессоры совместно используют кэш-память, вычислительные блоки и шины данных/ввода-вывода. При выполнении программ каждый логический процессор обрабатывает один поток (рис. 3.2).
Один процессор
Два физических процессора
Поток 1
Простой процессора
Поток 2

Процессор с поддержкой HT

Процессор, поддерживающий HT, позволяет заполнить время простоя выполнением другого процесса, тем самым увеличивая многозадачность и быстродействие многопоточных приложений
Совместное использование процессорных компонентов приводит к тому, что быстродействие системы с процессором HT меньше быстродействия систем c двумя физическими процессорами. Однако выполнение нескольких приложений или одного многопоточного приложения в системе с процессором HT демонстрирует прирост производительности примерно на 25% по сравнению с обычным однопроцессорным компьютером.

Требования к использованию

Технология HT, доступная для настольных систем, впервые появилась в процессоре Pentium 4 c тактовой частотой 3,06 ГГц. Более быстродействующие процессоры Pentium 4 и процессоры Pentium 4 с тактовой частотой шины 800 МГц также поддерживают HT. Тем не менее одного лишь процессора недостаточно для реализации этой технологии в компьютере. Существуют и другие требования. Поддерживающая HT системная плата (набор микросхем). Может понадобиться обновление BIOS.
Поддержка BIOS включения/отключения HT. Если технология Hyper-Threading не поддерживается установленной операционной системой, HT необходимо отключить средствами BIOS. Совместимая с HT операционная система, например Windows XP Home или Professional. При использовании режима HT в программе Device Manager (Диспетчер устройств) будет показано два процессора.
Большинство новых наборов микросхем Intel для процессоров Pentium 4 поддерживают технологию HT; более подробная информация представлена в главе 4. Тем не менее, если системная плата или компьютер были выпущены до появления HT, необходимо программно обновить (“перепрошить”) BIOS системной платы. Хотя Windows NT 4.0 и Windows 2000 разработаны для использования нескольких физических процессоров, для обеспечения работы процессора HT потребуется изменить ряд конфигурационных параметров. Операционные системы Linux с версией ядра 2.4.18 и выше также поддерживают данную технологию.
Ранние результаты тестов показывают, что технология HT заметно повышает производительность существующих приложений. В свою очередь, производительность специально созданных для поддержки HT приложений будет еще выше.

Компьютеры и периферия   Теги: Процессор

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉