Э.П. ЛАНИНА

 

ОСНОВНЫЕ ЧЕРТЫ СОВРЕМЕННЫХ ПРОЦЕССОРОВ.

Иркутский государственный технический университет

Рассматриваются основные направления развития архитектуры современных процессоров, прослеживается сближение СISC и RISC архитектур. Обсуждаются современные архитектурные решения, позволяющие увеличить производительность современных процессоров.

 Два конкурирующих направления развития структуры микропроцессоров - СISC (Complex Instruction Set Computer – полная система команд компьютера)  и RISC(Reduced Instruction Set Computer - сокращённая система команд компьютера) в настоящее время сближается  за счет введения характерных черт RISC архитектуры в  СISC и наоборот. Процессоры СISC- архитектуры разрабатывались как процессоры, набор инструкций которых сокращал объем программ и трудоемкость их написания. В настоящее время эти требования уже не столь существенны, так как размер оперативной памяти и новые способы управления памятью уже не ограничивают объем программы, а новые программные продукты позволяют значительно облегчить сам процесс программирования и отладки программ. Большое количество сложных по структуре команд требовало разработки  сложных схем их для их аппаратной реализации и  сложных микропрограмм для микропрограммной реализации. Это привело к появлению многочисленных ошибок в работе процессоров СISC- архитектуры и ограничило развитие параллельных вычислений временным параллелизмом конвейера команд, осуществлявшего выборку команды, дешифрацию команды, выборку данных, выполнение команды, запись результата. На каждой из перечисленных стадий (ступеней) конвейера находилась одна из пяти, последовательно выполняемых команд.

 Сокращенный набор команд одинаковой структуры  процессоров RISC архитектуры  позволил использовать параллельное выполнение нескольких команд (пространственный параллелизм) в различных операционных устройствах. Для этого были введены специализированные АЛУ для выполнения логических операций, операций с плавающей точкой, операций с фиксированной точкой. Кроме того, эти блоки делились на под- блоки, выполняющие параллельно операции сложения, умножения, деления, сдвига и т.д. Чтобы обеспечить параллельную работу этих устройств, пришлось ввести раздельную быструю буферную память для команд и данных - кэш команд и кэш данных, ввести раздельные шины для связи с внешней памятью и системной шиной. Это позволило увеличить число ступеней конвейера команд и ввести ступени предварительной подготовки команды к выполнению при вводе в специальный кэш команд, повысив тем самым производительность процессора. Процесс разработки  RISC-процессоров значительно проще, чем процессоров – СISC архитектуры и осуществляется за более короткие сроки. 

Производители программного обеспечения для персональных компьютеров готовятся к широкому распространению процессоров, основанных на 64-х разрядной архитектуре, 64-х разрядные платформы послужат основой гораздо более гибких компьютерных архитектур, предназначенных  для работы с  базами данных. На 64-х разрядную платформу переходят в ближайшем будущем все крупные фирмы- производители процессоров. При разработке суперскалярного процессора, выполняющего за такт более трех команд, необходимо преодолеть аппаратные ограничения на выполнение нескольких команд в каждом такте, на количество портов  процессора, количество конвейеров, выполняющих целочисленные операции и конвейеров для выполнения операций с плавающей точкой,  организовать управление потоком команд и данных.

Высокие тактовые частоты, сложная микроархитектура суперскалярных МП, поддерживающих внеочередное (out-of-order) выполнение команд, приводят к возникновению принципиально новых проблем, связанных с конечной скоростью распространения сигналов, требующих решения вопроса о взаимном расположении различных функциональных блоков.  Высокоскоростная обработка графики и видео изображений также базируется на суперскалярной архитектуре процессора, при этом для вычисления адресов команд  используются регистры целочисленных операционных устройств, а для манипуляций с данными- регистры устройств для выполнения операций в формате с плавающей точкой. Такое функциональное разделение регистров увеличивает пропускную способность процессора, обеспечивая приложению максимальное количество доступных регистров и параллельное выполнение команд. Высокая производительность процессора поддерживается соответствующей скоростью поступления для обработки команд и данных. Обычно эта задача ложится на иерархическую структуру памяти системы. Устройство управления памятью процессора выполняет все операции обращения к памяти, реализуя необходимые средства поддержки виртуальной памяти. Виртуальное адресное пространство задачи определяется разрядностью адресной шины, сегодня это 64-х битовый виртуальный адрес. Применение конвейерного принципа обработки информации требует своевременной загрузки конвейера команд и слежения за процессом их выполнения. Чем выше частота, тем больше ступеней конвейера используется для выполнения операций, но при этом возрастает время загрузки конвейера. Особенно велики потери времени при выполнении переходов, когда конвейер приходится полностью перезагружать. Поэтому в современных процессорах используется система предсказания переходов и внеочередное, "спекулятивное" выполнение команд. При неверном предсказании переходов производительность процессора резко падает, т.к. возникают большие задержки на время перезагрузки конвейера. Существует два метода предсказания переходов-  статический и динамический. Как динамический, так и статический подходы имеют свои преимущества и недостатки.

Статические предсказания делаются компилятором до выполнения программы. Этот процесс можно считать оптимизацией программы при ее компиляции. Компилятор фиксирует предсказываемое направление перехода, записывая его в коды выполняемой программы. Эти коды используются затем системой «спекулятивного» выполнения программы. Преимущество статического подхода- отсутствие необходимости интегрировать в микропроцессоре дополнительную аппаратуру предсказания переходов.

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

Традиционно CISC- процессоры разрабатывались фирмой Intel, это процессоры серии x86 и их клоны, производимые фирмами AMD и Cyrix. Процессоры CISC- архитектуры долгое время лидировали  на рынке персональных компьютеров благодаря совместимости с программным обеспечением младших моделей.

RISC – процессоры, это процессоры  Alpha, PowerPC, SPARC, MIPS. Достоинства RISC-процессоров укрепили их позиции на рынке высокопроизводительных машин. В дальнейшем CISC и RISC-процессоры совершенствовались за счет заимствования взаимных удачных решений. Начиная с процессора i486 в процессоры CISC- архитектуры был введен пространственный параллелизм вычислений за счет введения отдельных операционных устройств для выполнения операций с фиксированной и плавающей точкой. Введение кэш и очереди команд позволило увеличить внутреннюю частоту процессора в 2-3 раза по сравнению с частотой системной шины. Один кэш для команд и данных требовал полной перезагрузки кэш памяти в случае выполнения команд переходов. Поэтому  в Pentium  уже введены раздельные кэш для команд и данных, позволяющие в случае  условного перехода на другой адрес  перезагружать только кэш команд. Архитектура памяти  с раздельными кэш называется Гарвардской архитектурой, в отличии от Принстонской - с общим кэш. В процессор введена система предсказания переходов, позволяющая заранее подготовить конвейер команд. Введение второго целочисленного тракта, включающего АЛУ, адресный блок, шины для передачи данных, шины для передачи команд и работающего на общий блок регистров, повысило производительность за счет поддержки параллельной обработки целочисленных данных. При этом, в случае выборки двух целочисленных команд, зависящих по данным, команды выполняются последовательно, что снижает эффективность работы процессора. Ситуацию исправляет система распределения последовательности выполнения команд, по возможности разделяющая такие команды. Развитием тенденции параллельной обработки стало обогащение Pentium MMX мультимедийным расширением, включающее расширение числа команд  и аппаратное расширение.  Учитывая сложность разработки процессоров CISC- архитектуры  компания Intel, сохранив программную совместимость, реализовала в Pentium Pro RISC-подобную организацию вычислений. Частица PRO в названии первого процессора этой серии обозначает - полноценная RISC-архитектура (Precision RISC Organization). В процессор введен интерпретатор команд х86, преобразующий их в инструкции VLIW-формата. VLIW (Very Long Instruction Word) расшифровывается как "очень длинное командное слово". Инструкции этого формата содержат управляющие поля для всех параллельных АЛУ и обеспечивают синхронную работу четырёх операционных устройств - два с плавающей и два с фиксированной запятой. Введение предварительной выборки команд и данных повысило регулярность загрузки вычислительных трактов. Предварительная выборка из интегрированного на кристалле кэш второго уровня, обслуживаемого раздельными шинами "интерфейс-кэш" и " АЛУ -кэш" и работающего на частоте АЛУ, повысило быстродействие подготовки команд в сравнении с внешними кэш. Дополнительное повышение производительности Pentium Pro обеспечило увеличение длины конвейера команд до 11 ступеней (вместо обычных пяти) введением дополнительных ступеней трансляции и предвыборки. Кроме того, интеграция кэш второго уровня позволила умножить внутреннюю частоту процессора в 5-6 раз. В то же время применение кэш второго уровня привело к удорожанию процессора, поэтому в последующих разработках фирма отказалась от интегрированного кэш второго уровня и в целях уменьшения соотношения цена – производительность в процессоре Celeron, например, вообще отказалась от такого кэш.

Следующий процессор, который должна представить публике корпорация Intel - это Katmai. Этот процессор нацелен на применение в сравнительно недорогих персональных компьютерах. Чтобы иметь представление о параметрах современных процессоров, приведем следующие данные: во второй половине 1999 года ожидается выпуск версии Katmai с частотой 533 МГц, выполненной по технологии 0.18 мкм и использующей  системную шину  с частотой 133 МГц, с удвоенным объемом кэш первого в 64 Кбайт и кэш второго уровня в 512 Кбайт.  В последующих  моделях Katmai объем L2-кэша будет достигать 1 или даже 2 Мбайт.

В процессоре Katmai, кроме увеличения  частоты, увеличения объема кэш и применения нового технологического процесса, были введены изменения архитектуры. В архитектуре сохраняются введенные в  Pentium II-процессорах динамическое исполнение команд, специальная шина P6 и технология MMX с добавлением новых инструкций, кроме того, добавлены элементы архитектуры SIMD-FP (Single Instruction Multiple Data - один поток команд, много потоков данных в операционных устройствах с плавающей точкой) с набором команд KNI (Katmai New Instructions - Katmai новые инструкции), и поточная архитектура работы с системной памятью.

KNI оперируют с восемью новыми регистрами процессора, представляя собой еще один модуль, типа арифметического сопроцессора, названный SIMD-FP. Регистры SIMD-FP являются 128-битными и позволяют хранить в себе одновременно 4 числа с плавающей точкой одинарной точности. Таким образом, оперируя с двумя такими регистрами, возможно выполнить операцию одновременно над четырьмя парами аргументов. Эта идея позволяет достичь пиковой производительности одного конвейера SIMD-FP до 2 GFLOP/с при частоте ядра 500 МГц. Пока не ясно, сколько параллельных конвейеров будет содержать Katmai - 1 или 2, то есть в последнем случае пиковая производительность сможет достигнуть 4 GFLOP/с

Несмотря на большие преимущества, KNI вскрывает и многие недостатки архитектуры x86. А именно - аппаратное ограничение в 8 регистров приводит к тому, что некоторые приложения цифровой обработки сигналов не смогут быть оптимизированы под эту архитектуру. К тому же все операции в x86 - бинарные, а уже сейчас есть необходимость в вычислении функций типа скалярного произведения векторов, реализуемых в современных процессорах, выполняющих графические функции. То есть, развитие KNI лежит, скорее всего, за пределами x86-архитектуры. 

Организация современных RISC-процессоров тоже изменяется в сторону сближения с СISC. Идея SIMD уже была использована AMD в процессоре K6-2, где были введены инструкции 3DNow, включающие загрузку, запись, сложение, умножение, логические операции, модуль, квадратный корень и.т.п, эти инструкции вошли и в новый набор KNI фирмы Intel. В свое время ввод инструкций 3DNow фирмой AMD был сделан в ответ на введение расширения MMX в процессоры архитектуры x86.

Изменения затрагивают развитие системы команд с целью сохранения иерархической совместимости и снижения трудоёмкости разработки программ. Это сближает технологии обработки команд процессорами упомянутых архитектур. Например, в процессорах SuperSparc используется предсказание переходов и предварительная интерпретация кода, как это сделано в последних процессорах линии х86. Таким образом, развиваясь, каждая из рассматриваемых архитектур приобретает лучшие черты, CISC архитектура использует суперскалярность вычислений, RISC архитектура отказывается от простой системы команд.

Эти тенденции подтверждает и процессор Merced, разрабатываемый еще недавно конкурирующими фирмами Intel и Hewlett Packard на основе новой архитектуры IA-64. Новая архитектура не является  64-разрядным расширением 32-разрядной архитектуры х86 компании Intel или переработкой 64-разрядной архитектуры PA-RISC компании HP. IA-64 представляет собой новую передовую архитектуру, использующую длинные слова команд (long instruction words -- LIW), предикаты команд (instruction predication), устранение ветвлений (branch elimination), предварительную загрузку данных (speculative loading) и другие ухищрения для того, чтобы "извлечь больше параллелизма" из кода программ.

 Его архитектура продолжает тенденции Pentium Pro по преобразованию команд в инструкции VLIW-формата и их оптимизации. Возможно создание двух вариантов этого чипа, различающихся  множеством этих инструкций. Фирмы Intel и HP обещали добиться обратной совместимости с существующим программным обеспечением, работающим на процессорах архитектур х86 и PA-RISC. Это позволяет предположить, что дальнейшее развитие производства процессоров пройдёт по пути развития  вычислительного ядра RISC-организации и развития системы команд, характерной для процессоров CISC архитектуры.

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

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

·        Увеличивается степень интеграции.

·                    В процессор встраиваются устройства управления памятью.

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

·                    Вводится большое количество параллельно работающих конвейерных операционных устройств (т.е. используется суперскалярный принцип и принцип конвейеризации вычислений).

·        Увеличивается число ступеней конвейера команд.

·                    Вводится система предсказания переходов.

·                    Вводится система опережающего -“спекулятивного” выполнения команд.

·                    Обеспечивается как можно более полная загрузка работой всех операционных устройств.

·                    Реализация команд обмена данными между памятью и регистрами операционных устройств осуществляется без остановки работы операционного устройства.

·                    Вводится внутренняя кэш-память (первого уровня) большой емкости, с высоким  быстродействием.

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

·                    Расширяется шина данных до 128 разрядов для связи с кэш памятью второго уровня и до 64разрядов для связи с системной шиной.

·                    Вводятся высокоскоростные интерфейсы для связи процессора с системной шиной и связи с внешней памятью.

 

ЛИТЕРАТУРА

1. Илья Полещук (elanin@lviv.gu.net, Журнал PC Club) Архитектуры CISC и RISC: братанье после битвы? Опубликовано  3 декабря 1998 г.

2. Intel Katmai. 19 октября 1998 года  Copyright (c) by iXBT, 1998. Produced by pavel@ixbt.com & gavric@ixbt.com

3. Николай Дорофеев Архитектура IA64  Merсed 16 февраля 1998г.Copyright (с) by iXBT, 1998. Produced by pavel@ixbt.com & gavric@ixbt.com

4. Intel Architecture Laboratory Report :- Intel Corp. 1998 (Pentium II, Merced)

5. RISC Processors Architecture Guide :- IBM Corp. 1996 (общие черты RISC)

 

 

Hosted by uCoz