рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Как работают современные процессоры

Как работают современные процессоры - раздел Компьютеры, Pentium IV Как Работают Современные Процессоры. Для Начала Небольшая, Но Совершенно Необ...

Как работают современные процессоры. Для начала небольшая, но совершенно необходимая теоретическая часть.

Во первых, все современные CPU используют конвейерную (pipelined) архитектуру в различных ее вариантах. Это означает, что любая команда выполняется не одним, а несколькими блоками, объединенными в конвейер. Первым процессором, в котором было применено такое решение, стал Intel 486, он имел конвейер из пяти ступеней.

Однако это еще не все. Дело в том, что внутри любой современный CPU уже давно "наполовину RISC", т. е. фактически он исполняет совсем другие команды, а не те, что поступают к нему из ОЗУ. Эра процессоров, "напрямую" выполнявших команды x86-ассемблера, закончилась еще с приходом Intel Pentium Pro/II и AMD K5/K6. Все последующие CPU сначала осуществляют преобразование довольно "емких" x86-команд в более простой RISC-подобный код (как правило, при этом одна команда преобразуется в несколько), исполнением которого и занимается непосредственно ядро процессора.

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

Ну и кроме того, начиная с Intel Pentium, архитектура современных CPU стала "суперскалярной" (superpipelined), это означает, что конвейеров в них несколько и работают они параллельно. Конвейерная архитектура: плюсы и минусы, проблемы и решения Однако на этом пути возникла существенная проблема, связанная уже с недостатком самой конвейерной архитектуры. Поток команд, поступающих на конвейер, очень желательно сделать постоянным и непрерывным.

В противном случае из-за "заминки" на любой его стадии те операции, для которых необходимо "знать" результат исполнения предыдущей команды, будут просто ждать ее завершения, и все "замрет". Для устранения этой проблемы используются два приема: внеочередное исполнение (Out-of-Order Execution) и предсказание ветвлений (Branch Prediction). Внеочередное исполнение термин, понимать который следует именно буквально: команды, поступающие на конвейер позже, исполняются раньше.

Рассмотрим простой пример "программы": A = B + C N = A + 2 C = B + 3 В этом случае для выполнения второй операции необходимо завершить первую, так как значение A + 2 невозможно узнать до тех пор, пока в результате предыдущей операции не будет установлено значение A. Однако для выполнения третьей команды результаты двух предшествующих знать не обязательно! Значит, чтобы конвейер не простаивал, следует исполнять сначала первую команду, потом сразу же можно приступать к третьей, а уж пока она будет выполняться, "подоспеет" значение А, необходимое для выполнения второй.

Именно выявлением подобных последовательностей и занимаются современные CPU, что позволяет им в результате сократить время простоя. Механизм предсказания ветвлений штука более сложная, однако получить некоторое представление о нем на простейшем примере тоже можно. Правда, необходимо знать хотя бы азы программирования (к примеру, BASIC). Итак, представим себе цикл FOR I = 1 TO 10 NEXT I. При компиляции этого цикла в машинный код он преобразуется примерно в такую последовательность команд: 10 I = 1 20 30 I = I + 1 40 IF I <= 10 THEN GOTO 20 50 Как видите, переход со строки 40 в десяти случаях осуществляется на строку 20 и только в одном на строку 50. Механизм предсказания при этом просто "запомнит", куда произошел переход по условию в самый первый раз, после чего будет предполагать, что и в следующий раз переход осуществится туда же. И ошибется всего лишь один раз из десяти! А ведь в реальных задачах встречаются циклы с гораздо большим количеством повторений Зная же, какие команды последуют за операцией перехода, можно, соответственно, начать декодировать их задолго до того, как сама операция совершится.

И опять-таки конвейер будет "спасен" от простоя.

Разумеется, все приведенные выше примеры относятся к самым примитивным. На практике алгоритмы, ведающие внеочередным исполнением и предсказанием ветвлений, гораздо сложнее (и, кстати, являются тайной за семью печатями, потому что от них во многом зависит производительность конкретного CPU). Однако для того чтобы понять отличия Pentium 4 от предыдущих процессоров, знать "как это работает" просто необходимо.

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

Собственно, здесь мы уже вплотную подошли к ответу на вопрос, почему ядру Coppermine, наследнику "старичка" Pentium Pro, с таким трудом "давались" большие частоты: его конвейер из 12 ступеней приблизился уже к самому пределу своей максимально возможной частоты. Даже теоретически для 0,18-микронного процесса это значение составляет порядка 1,2 GHz, а ведь общеизвестно, что теоретический предел редко достижим на практике: "идеальных" кристаллов, увы, не бывает.

Поэтому было принято кардинальное решение: увеличить длину конвейера сразу до 20 ступеней! При этом многие части CPU, ранее входившие в конвейер (к примеру, блок декодирования команд), были вообще вынесены за его пределы и работают теперь как бы "сами по себе". Данная архитектура получила название "гиперконвейерной" (hyperpipelined) в честь конвейера небывалой длины. Естественно, возможная частота работы возросла, что с успехом подтверждают новые Pentium 4, вышедшие сразу же на частотах 1,4 и 1,5 GHz. И это при сохранении того же 0,18-микронного процесса! Однако далось такое увеличение частот работы отнюдь не "бесплатно". Длина конвейера Intel Pentium 4 увеличена до 20 этапов.

Хорошо ли это? Для примера - сегодняшний Pentium III имеет 12-этапный конвейер, Athlon - 10-ти. Но при этом не стоит забывать один общеизвестную истину - чем длиннее конвейер, тем легче наращивать тактовую частоту, но, соответственно, тем меньшая производительность приходится на каждый полученный мегагерц :-(. Выходит палка о двух концах.

Простой конвейера: старые проблемы, умноженные на новые частоты Приведенное ранее описание работы механизма предсказания ветвлений осталось все же немного незавершенным: мы закончили его на "победном" варианте: ветка предсказана правильно, процессор начал декодирование команд "наперед", переход осуществился к "угаданному" адресу, находящиеся там команды готовы к исполнению (или даже уже частично исполнены). Но что происходит, если "штатный предсказатель" все же ошибся? А происходит "воистину страшное" весь конвейер приходится очищать от ненужных команд и в срочном порядке начинать готовить к исполнению новые, находящиеся еще в памяти и совсем по другому адресу. Естественно, ядро CPU во время всего этого "разбора полетов" просто исполняет холостой цикл, так как ни подготовленных данных, ни команд к нему не поступает.

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

Да, такова реальность: не всегда высокая частота означает высокое быстродействие.

Однако не все так плохо естественно, проблема эта была известна еще задолго до выхода процессора, и минимизации потерь было уделено серьезное внимание. Предсказания должны сбываться! Применительно к соответствующему блоку процессора данная фраза выглядит как самое что ни на есть благое пожелание. И разработчики Pentium 4 сделали все от них зависящее, чтобы так это и происходило. Блок предсказания ветвлений нового CPU подвергся значительным модификациям размер буфера, в котором хранятся адреса возможных переходов (BTB Branch Target Buffer), увеличился до 4 KB (512 байт у Pentium III), кроме того, сам алгоритм был усовершенствован и теперь учитывает большее количество возможных факторов.

В итоге, по заявлениям разработчиков, результативность предсказаний увеличилась на треть, и сейчас их точность достигает 94%.

– Конец работы –

Эта тема принадлежит разделу:

Pentium IV

В защищенном режиме процессор i386 может использовать все механизмы 32-х разрядной организации памяти, в том числе механизмы поддержки виртуальной… Кроме этого, в защищенном режиме для каждой задачи процессор i386 может… Таким образом, при многозадачной работе в защищенном режиме процессор i386 работает как несколько виртуальных…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Как работают современные процессоры

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Средства поддержки сегментации памяти
Средства поддержки сегментации памяти. Физическое адресное пространство процессора i386 составляет 4 Гбайта, что определяется 32-разрядной шиной адреса. Физическая память является линейной с

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

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

Новая архитектура Pentium
Новая архитектура Pentium. Проще перечислить, что в новом процессоре Intel не изменилось: он все еще 64-битовый и все еще поддерживает систему команд x86. Собственно, если перечислять именно то, че

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

Удвоенная внутренняя частота ALU
Удвоенная внутренняя частота ALU. Арифметико-логические блоки (Arithmetical Logic Units) в Pentium 4 работают на удвоенной частоте. Так, к примеру, ALU у Pentium 4 1,5 GHz функционирует на ч

Платформа для Pentium
Платформа для Pentium. Естественно, процессор с таким количеством архитектурных новшеств требовал и принципиально новой платформы. Ее роль на данный момент выполняет новый чипсет Intel i850. Основн

Кэш первого и второго уровня
Кэш первого и второго уровня. В кэш-памяти первого уровня сохраняются декодированные команды - ~12 Кб микрокоманд, благодаря чему в цикле исполнения устраняются задержки, связанные с раскодирование

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги