Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 6.doc
Скачиваний:
63
Добавлен:
25.03.2015
Размер:
1.24 Mб
Скачать

Лекция 6. Тенденция развития процессоры.Многоядерные процессоры и новые технологии многоядерной обработки данных

Центральный процессор

Центральный процессор(CPU, от англ. Central Processing Unit) — это основной рабочий компонент компьютера, который выполняет арифметические и логические операции, заданные программой, управляет вычислительным процессом и координирует работу всех устройств компьютера.

Центральный процессор в общем случае содержит в себе:

  • арифметико-логическое устройство;

  • шины данных и шины адресов;

  • регистры;

  • счетчики команд;

  • кэш — очень быструю память малого объема (от 8 до 512 Кбайт);

  • математический сопроцессор чисел с плавающей точкой.

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

1. Повышение производительности процессоров

На протяжении длительного времени прогресс в области микропроцессоров фактически отождествлялся со значением тактовой частоты. В 2001 году в корпоративных планах производителей микропроцессоров значилось, что уже к концу десятилетия будет преодолен барьер 10 ГГц. Увы, планы эти оказались неверны. Прав же оказался тот, кто сделал ставку на многоядерные архитектуры.

Первый двухъядерный процессор в семействе Power выпустила корпорация IBM. Сегодня многоядерные процессоры предлагает Sun Microsystems (восьмиядерный UltraSPARC T1), а также Intel и AMD.

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

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

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

Производительностьпроцессора (Performance) — это отношение общегочисла выполненных инструкций программного кода ко времени их выполнения иликоличество инструкций, выполняемых за секунду (Instructions rate):

количество инструкций = производительность

врем я выполнения

Таккак основнойхарактеристикойпроцессорасталаего тактоваячастота, то введемчастоту в формулупроизводительностьпроцессора. Помножимчислитель изнаменатель на количество тактов, за которое выполнены инструкции:

производительность = количество инструкций количество тактов

количество тактов время выполнения

Перваячастьполученногопроизведения -количествоинструкций, выполняемыхза один такт(InstructionPer Clock,IPC),Втораячастьпроизведения -количество тактов процессора в единицу времени (тактовая частота процессора, F илиFrequency). Таким образом, производительность процессора зависит не только от его тактовойчастоты,но и от количества инструкций, выполняемых за такт(IPC):

производительность = (IPC) (F)

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

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

Количествоинструкций, выполняемыхза время одного такта, зависит от микроархитектуры процессора: от количества исполнительных блоков, от длины конвейера и эффективности его заполнения, от блока предвыборки, от оптимизации программного кода к данной микроархитектуре процессора.

Поэтомусравнение производительности процессоров на основании их тактовой частоты возможно только впределах одной и той жеархитектуры (при одинаковом значенииколичества выполняемых операций всекунду -IPCпроцессоров).

Сравнениепроизводительностипроцессоров с различнойархитектурой на основе тактовой частотынеправомерно. К примеру, основываясь на тактовой частоте,некорректносравниватьпроизводительностипроцессоров с разным размеромкэшпамяти уровня L2, или производительности процессоров, поддерживающих и неподдерживающих технологию Hyper-Threading.

Из-за удельного удешевления транзисторов открылась возможность компенсировать несовершенство процессорной архитектуры их количеством, что в конечном итоге и стало причиной консервации предложенной в далекие 40-е годы схемы организации компьютерных систем, которая получила свое название по имени Джона фон Неймана. Трудно представить еще какую-либо из современных технологических областей, которая, декларируя свою причастность к техническому прогрессу, была бы столь консервативна по своей сути. О врожденных недостатках фон-неймановской схемы написано немало, но, что бы сейчас ни говорили на эту тему, еще лет десять назад никакие аргументы не возможно было противопоставить убеждению в том, что процессорная индустрия выбрала единственно правильный путь, основанный на количественном росте. Достаточно вспомнить, с какой гордостью произносились новые цифры; считалось, что, если не хватит миллиона транзисторов, сделаем миллиард — «нет проблем», главное уменьшить размеры кристаллов и межсоединений и повысить тактовую частоту. Но за все приходится платить. Каждый транзистор потребляет энергию, в итоге, по данным IDC, сегодня затраты на электричество, необходимое для питания центров обработки данных, составляют свыше 80% от затрат на приобретение компьютерного оборудования, а через пару лет эти показатели сравняются.

Отход отпоследовательногоисполнениякоманд ииспользованиенесколькихисполняющих блоков в одномпроцессорепозволяют одновременно обрабатыватьнесколько процессорных микрокоманд, то есть организовывать параллелизм на уровне инструкций(InstructionLevelParallelism -ILP),что, разумеется,увеличивает общуюпроизводительность.

Еще одинподход к решению даннойпроблемы был реализован вVLIW/EPIC -архитектуре IA-64 (очень длинных команд), где часть проблем переложена саппаратурынакомпилятор. И все же разработчикипризнают,что для достижения высокой производительности архитектура важнее.

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

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

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

К 2006 годувсе ведущиеразработчикимикропроцессоровсоздали двуядерныепроцессоры. Первымипоявились двуядерныеRISC-процессорыSun Microsystems (UltraSPARCIV), IBM (Power4,Power5) и HP(PA-8800 иPA-8900).

О выпуске двуядерныхпроцессоров с архитектуройх86 фирмы AMD и Intelобъявили почти одновременно.

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

Модернизации схемы фон Неймана

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

SISD (Single Instruction Single Data)— «один поток команд, один поток данных»;

SIMD (Single Instruction Multiple Data)— «один поток команд, много потоков данных»;

MISD (Multiple Instruction Single Data)— «много потоков команд, один поток данных»;

MIMD (Multiple Instruction Multiple Data) — «много потоков команд, много потоков данных»;

Класс SISD предполагает, что в один момент времени может быть выполнена одна команда, и она может оперировать только теми порциями данными, адреса которых непосредственным образом присутствуют в операндах этой команды. Напротив, в класс MIMD попадают машины, которые могут одновременно выполнять множество команд, используя при этом множество фрагментов данных. Эта классификация известна как «таксономия Флинна», она названа так по имени предложившего ее Майкла Флинна, выдающегося инженера и ученого, ныне являющегося профессором Стэндфордского университета. Из нее следует, что фон-неймановская машина является частным случаем, попадающим в класс SISD. Большинство современных компьютеров построено именно по этой схеме; между тем все суперкомпьютеры из первой десятки TOP500 построены по схеме MIMD.

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

Исторически первым оказалось изобретение процессоров, способных выполнять операции не над содержимым одного или нескольких регистров, а над более крупными фрагментами данных; по классификации Флинна они попадают в класс SIMD. Их появление связывают с проектом Solomon (1962 год, компания Westinghouse).

Позднее аналогичный принцип работы с данными был реализован в самой производительной машине своего времени ILLIAC IV (1972). Если процессор, используя одну команду, может выполнять действия над векторами, то его называют векторным процессором(vector processor), а если над массивами, топроцессором массивов(array processor). Впоследствии Сеймур Крей использовал векторные принципы при разработке своих суперкомпьютеров, начиная с Cray-1. Сегодня схема SIMD широко используется в специализированных процессорах, предназначенных для игровых консолей.

После введения нового класса векторных процессоров обычные процессоры стали вынужденно, чтобы различать, называть «скалярными»; именно поэтому на следующем шаге появились решения со странным названием «суперскалярные процессоры».Идея суперскалярности заключается в том, что процессор просматривает приближающиеся к исполнению команды и выбирает из них те последовательности, которые могут быть выполнены параллельно. Такие процессоры способны выполнять несколько инструкций за один такт, а такой вид параллелизма стали называтьпараллелизмом на уровне команд(Instruction-Level Parallelism,ILP). Очевидно, что при заданной частоте суперскалярный процессор будет производительнее скалярного, поскольку он способен выделить в подмножество и одновременно выполнить несколько команд, распределив их по своим функциональным устройствам. Родоначальником идеи ILP был тот же Крей; он реализовал ее в 1965 году в компьютере CDC 6600, затем ILP была воспроизведена в процессоры Intel i960 (1988 год) и AMD 29050 (1990), особенно «впору» суперскалярный подход пришелся для RISC-процессоров с их упрощенной системой команд. Позже, начиная с Pentium II, обрели ILP и процессоры с архитектурой CISC.

Примерно в то же время — сначала на мэйнфреймах, а позже и на мини-ЭВМ — появилась кэш-память; в дальнейшем идея кэширования получила развитие в многоуровневых решениях, предполагавших наличие кэшей первого и второго, а затем и третьего уровня.

Еще одним существенным изобретением, ускорившим работу процессоров, оказалось внеочередное исполнение(out-of-order execution, OoO), представляющее собой ограниченную реализацию идеи обработкипотока данных(data flow computation). Хотя первые попытки в этом направлении были предприняты еще при проектировании компьютеров CDC, но реально первые внедрения были в IBM 360, а затем в процессорах Power1. Одно из важнейших достоинств внеочередного исполнения состоит в том, что данная технология позволяет согласовать более высокую скорость работы процессоров с менее быстродействующей памятью, сняв часть нагрузки с кэш-памяти.

Заметной вехой в ряду усовершенствований фон-неймановской архитектуры стоит распараллеливание потоков(Thread Level Parallelism, TLP). Данная технология существует в нескольких версиях; среди них —одновременная многопоточность(Simultaneous Multithreading, SMT) имногопоточность на уровне кристалла(Сhip-level Multithreading, CMT). Эти два подхода в основном различаются представлением о том, что есть «поток», иначе говоря, по уровню гранулярности потоков.

Хронологически первым процессором, поддерживающим многопоточность, был процессор DEC Alpha EV4 21064. Драматическая судьба этого процессорного семейства была и остается предметом серьезных обсуждений, и, хотя на версии EV7 производство прекратилось, а EV8 и EV9 остались на бумаге, есть основания полагать, что ядро EV7 может возродиться в одном из готовящихся к выпуску многоядерных процессоров. Типичным представителем лагеря SMT является Pentium 4 с его технологией HTT(Hyper-Threading Technology). Процессор поддерживает деление на два потока команд, выбираемых из одной задачи в режиме SMT, что обеспечивает суммарное повышение производительности примерно на 30%. В процессоре UltraSPARC T1, известном прежде под кодовым названием Niagara, потоки образуются из разных задач; никакой одновременности в данном случае нет, каждый поток представляет собой виртуальное ядро процессора.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]