Тема 2.4 оптим.ppt
- Количество слайдов: 54
Что делает процессор в компьютере? Как известно, процессор является основным вычислительным блоком компьютера, в наибольшей степени определяющим его мощь. Процессор является устройством, исполняющим программу — последовательность команд (инструкций), задуманную программистом и оформленную в виде модуля программного кода.
• Всем известный IBM PC-совместимый компьютер представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин
• Машина состоит из • блока управления, • арифметико-логического устройства (АЛУ), • памяти и • устройств ввода-вывода
Арифметико-логическое устройство (АЛУ) • компонента процессора, выполняющая арифметические и логические операции над данными. • АЛУ реализует важную часть процесса обработки данных. • Она заключается в выполнении набора простых операций.
• АЛУ состоит из • регистров, • сумматора с соответствующими логическими схемами и блока управления выполняемым процессом. • Устройство работает в соответствии с сообщаемыми ему именами (кодами) операций, • которые при пересылке данных нужно выполнить над переменными, помещаемыми в регистры.
• Концепция хранимой программы: программы и данные хранятся в одной и той же памяти. • Выполняемые действия определяются блоком управления и АЛУ, которые вместе являются основой центрального процессора.
• Центральный процессор выбирает и исполняет команды из памяти последовательно, адрес очередной команды задается «счетчиком адреса» в блоке управления. • Этот принцип исполнения называется последовательной передачей управления
• Данные, с которыми работает программа, могут включать переменные — именованные области памяти, в которых сохраняются значения с целью дальнейшего использования в программе.
Центральный процессор (АЛУ с блоком управления) • Под архитектурой процессора понимается его программная модель, то есть программно-видимые свойства. Под микроархитектурой понимается внутренняя реализация этой программной модели
• Для одной и той же архитектуры • разными фирмами и в разных поколениях • применяются существенно различные микроархитектурные реализации,
Арифметической операцией • называют процедуру обработки данных, • аргументы и результат, которой являются числами (сложение, вычитание, умножение, деление).
Логической операцией • именуют процедуру, осуществляющую построение сложного высказывания (операции И, ИЛИ, НЕ, . . . ).
• В микроархитектуре процессоров пятого и шестого поколений существенное значение имеет реализация различных способов конвейеризации и распараллеливания вычислительных процессов
Конвейеризация (pipelining) • предполагает разбивку выполнения каждой инструкции на несколько этапов, • причем каждый этап выполняется на своей ступени конвейера процессора. • При выполнении инструкция продвигается по конвейеру по мере освобождении последующих ступеней.
Технологии повышения производительности процессоров • Конвейерная обработка команд (pipelining). • Суперскаляризация Рассмотрим процесс выполнения процессором команды для коротких (с фиксированной запятой или логические) операций. Как об этом говорилось выше, обработка команды, или цикл процессора, может быть разделена на несколько основных этапов, которые можно назвать микрокомандами, которых известно пять основных типов.
• На конвейере одновременно может обрабатываться несколько последовательных инструкций, и производительность процессора можно оценивать темпом выхода выполненных инструкций со всех его конвейеров.
• Каждая операция требует для своего выполнения времени, равного такту генератора процессора • Очевидно, что при тактовой частоте в 100 МГц быстродействие составит 20 миллионов операций в секунду.
• Конвейеризация осуществляет многопоточную параллельную обработку команд, так что в каждый момент • одна из команд считывается, • другая декодируется и т. д. , и всего в обработке одновременно находится пять команд.
Вычислительный конвейер • Конве йер — способ организации вычислений, используемый в современных процессорах и контроллерах с целью повышения их производительности (увеличения числа инструкций, выполняемых в единицу времени), технология, используемая при разработке компьютеров и других цифровых электронных устройств
• Идея заключается в разделении обработки компьютерной инструкции на последовательность независимых стадий с сохранением результатов в конце каждой стадии. • Это позволяет управляющим цепям процессора получать инструкции со скоростью самой медленной стадии обработки, однако при этом намного быстрее, чем при выполнении эксклюзивной полной обработки каждой инструкции от начала до конца.
• Простой пятиуровневый конвейер в RISCпроцессорах • На иллюстрации справа показан простой пятиуровневый конвейер в RISC-процессорах. Здесь: • IF (англ. Instruction Fetch) — получение инструкции, • ID (англ. Instruction Decode) — раскодирование инструкции, • EX (англ. Execute) — выполнение, • MEM (англ. Memory access) — доступ к памяти, • WB (англ. Register write back) — запись в регистр.
• Например, простейший конвейер RISCпроцессоров можно представить пятью стадиями с наборами триггеров между стадиями: • получение инструкции (англ. Instruction Fetch); • декодирование инструкции (англ. Instruction Decode) и чтение регистров (англ. Register fetch); • выполнение (англ. Execute); • доступ к памяти (англ. Memory access); • запись в регистр (англ. Register write back);
• Вертикальная ось — последовательные независимые инструкции, горизонтальная — время. • Зелёная колонка описывает состояние процессора в один момент времени, в ней самая ранняя, верхняя инструкция уже находится в состоянии записи в регистр, а самая последняя, нижняя инструкция только в процессе чтения.
История • Сам термин «конвейер» пришёл из промышленности, где используется подобный принцип работы — материал автоматически подтягивается по ленте конвейера к рабочему, который осуществляет с ним необходимые действия, • следующий за ним рабочий выполняет свои функции над получившейся заготовкой, • следующий делает ещё что-то. • Таким образом, к концу конвейера цепочка рабочих полностью выполняет все поставленные задачи, сохраняя высокий темп производства. • Например, если на самую медленную операцию затрачивается одна минута, то каждая деталь будет сходить с конвейера через одну минуту.
• Все этапы команды задействуются только один раз и всегда в одном и том же порядке: одна за другой • Это, в частности, означает, что • если первая микрокоманда выполнила свою работу и • передала результаты второй, • то для выполнения текущей команды она больше не понадобится, и, следовательно, может приступить к выполнению следующей команды.
• Конвейер «классического» процессора Pentium имеет пять ступеней. • Таким образом, на выходе конвейера на каждом такте процессора появляется результат обработки одной команды (одна команда в один такт).
• Первая инструкция может считаться выполненной, • когда завершат работу все пять микрокоманд.
Процессоры х86 имеют самую сложную в мире систему команд
• В зависимости от набора команд и порядка выполнения команд процессоры подразделяются на четыре класса,
• • • процессоры CISC. процессоры RISC, которые характеризуются сокращенным набором быстро выполняемых команд. Ряд редко встречающихся команд процессора CISC выполняется последовательностями команд процессора RISC. • процессоры MISC, использующая минимальный набор длинных команд. • процессоры VLIW, работающие со сверхдлинными командами
Процессор CISC. традиционная архитектура в 10 тактах одну команду RISC сокращенным набором быстро выполняемых команд в 1 такте. одну команду минимальный набор длинных команд в 1 такте. группу команд Увеличение разрядности процессоров до 128 бит привело к укладке нескольких команд в одно слово. Набор сверхдлинных команд в 1 такте. группу команд группа команд образует одну сверхдлинную команду MISC VLIW суперскалярную (многопоточн ую) и VLIW концепции. обрабатывает одноврем енно несколько потоков данных
Процессоры CISC. • CISC (complex instruction set computer) есть традиционная архитектура, в которой ЦП использует микропрограммы для выполнения исчерпывающего набора команд. • Команды могут иметь различную длину, Различные методы адресации и требуют сложных электронных цепей для декодирования и исполнения.
RISC (Redused Instuction Set Computer) — • процессор, функционирующий с сокращенным набором команд. • Ряд редко встречающихся команд процессора CISC выполняется последовательностями команд процессора RISC
Процессор MISC — MISC processor • работающий с минимальным набором длинных команд. • Увеличение разрядности процессоров привело к идее укладки нескольких команд в одно слово размером 128 бит
Процессор VLIW • процессор, работающий с системой команд сверхбольшой разрядности.
Процессор Pentium • Процессор Pentium состоит из следующих блоков. • Ядро (Core). Основное исполнительное устройство. • Пятикратное повышение (по сравнению с 80486 DX) достигалось благодаря двум конвейерам, позволяющим выполнить одновременно несколько инструкций. Это два параллельных 5 -ступенчатых конвейера обработки целых чисел, которые позволяют читать, интерпретировать, исполнять две команды одновременно.
Предсказатель переходов (Branch Predictor). • Пытается угадать направление ветвления программы и заранее загрузить информацию в блоки предвыборки и декодирования команд.
Буфер адреса переходов (Branch Target Buffer, BTB). • Пытается угадать направление ветвления программы и заранее загрузить информацию в блоки предвыборки и декодирования команд.
• Обеспечивает динамическое предсказание переходов. • Он улучшает выполнение команд путем запоминания состоявшихся переходов (256 последних переходов) и с опережением выполняет наиболее вероятный переход при выборке команды ветвления. Если предсказание верно, то эффективность увеличивается. Если нет, то конвейер приходится сбрасывать полностью.
• Согласно данным Intel, вероятность правильного предсказания переходов в процессорах Pentium, Pentium ММХ составляет 75— 80 %, а для Pentuim Pro, Pentium II — 90 %.
Блок плавающей точки (Floating Point Unit). • Выполняет обработку чисел с плавающей точкой
Кэш-память 1 -го уровня (Level I cache, L 1). • • Процессор имеет два банка памяти по 8 Кбайт: 1 -й — для команд, 2 -й — для данных, которые обладают большим быстродействием, чем более емкая внешняя кэш-память (L 2 cache).
Интерфейс шины (Bus Interface). • Передает в ЦП поток команд и данных, а также передает данные из ЦП.
Intel Core • (произносится: И нтел Ко) — это название, используемое для процессоров с кодовым именем Yonah • Процессор Core Duo является лучшим в мире двуядерным процессором с архитектурой x 86 с точки зрения энергопотребления (меньше 25 Вт)
Intel Core Duo • имеет два ядра, 2 Мб кэш 2 -го уровня, на оба ядра, и шину управления для контроля над кэшем 2 -го уровня и системной шиной. • В будущих процессорах Core Duo так же ожидается возможность отключения одного ядра для лучшего энергосбережения.
• Обмен данными между кэшем 2 -го уровня и ядрами осуществляется посредством арбитражной шины, что уменьшает нагрузку на системную шину. • В приложениях, оптимизированных под многопоточность, • наблюдается прирост производительности на двухъядерном процессоре. Однако, если приложение не оптимизировано, то оно не будет получать практически никакой выгоды от дополнительных ядер, а может даже выполняться медленнее, чем на процессоре с меньшим количеством ядер, но большей тактовой частотой. Это в основном старые приложения, либо приложения, которым многопоточность не нужна (например, проигрыватель музыки) или невозможна.
• В приложениях, оптимизированных под многопоточность, наблюдается прирост производительности на двухъядерном процессоре. • Однако, если приложение не оптимизировано, • то оно не будет получать практически никакой выгоды от дополнительных ядер, а может даже выполняться медленнее, чем на процессоре с меньшим количеством ядер, но большей тактовой частотой.
• Это в основном старые приложения, либо приложения, которым многопоточность не нужна (например, проигрыватель музыки) или невозможна.
Наращивание количества ядер • На сегодняшний день основными производителями процессоров — Intel и AMD дальнейшее увеличение числа ядер процессоров признано как одно из приоритетных направлений увеличения производительности. Уже освоено производство 4 -ядерных процессоров для домашних компьютеров, а также 6 ядерных в серверных системах.
• Если приходится заниматься обработкой музыкальных файлов и изменением формата видеофайлов, то многоядерность — это однозначно то, что вам нужно. Именно здесь работает формула 1+1 = 2. • То есть добавление второго ядра может привести к повышению производительности до 90%.
• Во всех остальных случаях ситуация выглядит не столь радужно. Однако даже в офисном ПК на сегодня найдется не одна программа, желающая загрузить второе ядро. Хочется надеяться, что оптимизация популярных приложений не заставит себя ждать — и тогда новые (и не только новые) процессоры смогут полностью реализовать свой потенциал.
• На протяжении длительного времени прогресс в области микропроцессоров фактически отождествлялся со значением тактовой частоты. • В 2001 году в корпоративных планах производителей микропроцессоров значилось, что уже к концу десятилетия будет преодолен барьер 10 ГГц. • Увы, планы эти оказались неверны. Прав же оказался тот, кто сделал ставку на многоядерные архитектуры.
• Однако, несмотря на видимый подъем интереса к многоядерным и многопотоковым процессорам, следует признать, что ключевой момент грядущей «параллельной революции» заключается не в собственно процессорах, • а в грядущих радикальных изменениях в программном обеспечении. • Оно должно стать таким, чтобы сохранилась возможность использовать преимущества экспоненциального роста производительности процессоров.