
- •Архитектура эвм и вычислительных систем
- •1 Архитектура эвм и вычислительных систем
- •Понятия об архитектуре эвм Основные типы эвм и их особенности
- •Характеристики эвм и ее состав
- •Состав эвм
- •Понятие архитектуры эвм
- •Типы архитектур
- •Понятие о вычислительной системе
- •Архитектура вычислительных систем
- •Р ис.1.2.3. Система мкод
- •Многомашинные мкмд
- •Многопроцессорные вс
- •Вопросы к теме «Архитектура эвм и вычислительных систем»
- •2 Архитектура и структура эвм
- •2.1 Процессор Назначение и классификация
- •Принцип построения
- •Многокристальные и секционные процессоры
- •Тип архитектуры
- •Обобщенная структура процессора
- •Арифметико-логическое устройство
- •Устройство управления
- •Устройство управления с «жесткой логикой»
- •Регистры процессора и способы адресации
- •Системы команд
- •2.2 Подсистема памяти Организация памяти
- •Организация оперативной памяти
- •Основные параметры памяти
- •Асинхронная dram
- •Синхронная память (sdram)
- •Энергонезависимая память
- •Энергонезависимая память с произвольным доступом
- •Постоянная и полупостоянная память – rom, prom, eprom
- •Флэш-память
- •Разновидность компакт-дисков
- •2.3 Подсистема ввода-вывода Организация ввода-вывода информации
- •Интерфейсы
- •Интерфейсы периферийных устройств.
- •Внешние интерфейсы
- •2.4. Технология повышения производительности эвм. Пути повышения производительности эвм
- •Режимы процессора
- •Практическая работа. Устройство пк на процессорах Intel.
- •Вопросы к разделу 2
- •3 Архитектура вычислительных систем Типы вычислительных систем и их особенности
- •Перспективные типы процессоров
- •Кластерные системы
2.4. Технология повышения производительности эвм. Пути повышения производительности эвм
Современные ЭВМ развиваются в нескольких направлениях. Повышение производительности ЭВМ заключается в первую очередь в повышении скорости выполнения операций.
Первоначально повышение скорости шло по пути повышения частоты тактового генератора, т.е. повышения скорости процессора. Сейчас частота процессора достигла 4 ГГц, и ее можно было бы повышать, но ограничивающим фактором является частота шины, которая растет значительно медленнее. Для повышения частоты шины используются двукратная и четырехкратная синхронизация по тактовым импульсам, но очевидно этот путь имеет свои пределы.
Следующий путь – повышение разрядности процессора, но здесь тоже достигнут уровень 64 разрядов, и пока остановка. В больших ЭВМ процессоры применяют 128 и 256 разрядные, видимо по этому пути пойдут и ПК.
Большой сдвиг в повышении скорости дало кэширование, в современных ПК кэш размещается прямо на кристалле процессора. Но наибольший выигрыш в производительности дают архитектурные изменения в ЭВМ.
Конвейерная обработка команд.
Если вспомнить, как ЭВМ выполняет команду, то обработка каманды или цикл процессора, может быть разделен на несколько основных этапов, которых известно 5 основных типов: выборка команды; расшифровка кода операции; генерация адреса и выборка данных из памяти; выполнение операции; запись результата в память. Все этапы выполнения команды задействуются один раз и всегда в одном и том же порядке, одна за другой. Конвейеризация осуществляет многопоточную параллельную обработку команд, так что в каждый момент времени, одна из команд считывается , другая декодируется, третья выполняется и всего в обработке одновременно находятся несколько команд. Таким образом на выходе конвейера в каждом такте процессора появляется результат обработки одной команды. Для устройства конвейера необходимо разбиение процессора на части (ступени). Общее количество ступеней называется длиной конвейера. С ростом числа линий конвейера и увеличением числа ступеней увеличивается пропускная способность процессора при неизменной тактовой частоте. Процессоры с несколькими линиями конвейера получили название суперскалярных. Pentium – первый суперскалярный процессор фирмы Интел.Здесь имеются две линии, что позволяет при одинаковых частотах быть вдвое производительнее, выполняя две инструкции за такт.
Рассмотрим компьютер Pentium 4.
Рис.2.4.1.Структурная схема процессора Pentium -4
Конвейер процессора Pentium 4 состоит из трех частей (рис.2.4.1): 1) устройства предварительной обработки команд в порядке их следования в программе; 2) исполнительного ядра, исполняющего микрооперации в удобном для него порядке; 3) блока упорядоченного завершения, отражающего результаты выполнения микроопераций в правильный порядок. В свою очередь каждая часть конвейера делится на 20 ступеней. Это позволяет выпускать с конвейера за один такт до з инструкций.
Динамическое исполнение. Помимо конвейера операций в процессоре Pentium 4 применяется динамическое исполнение. Это новая технология обработки данных, которая представляет комбинацию трех методов обработки:
множественное предсказание ветвлений;
анализ потока данных;
спекулятивное (по предположению) исполнение.
Множественное предсказание ветвлений. Предсказывается прохождение программы по нескольким ветвям, процессор использует предсказание, в какой области памяти можно найти следующие команды. Это становится возможным, так как процессор просматривает программу на несколько шагов вперед и этот метод позволяет повысить загруженность процессора.
Хотя буфер предсказания переходов и не может правильно предсказать абсолютно все переходы, но большинство предсказаний оказывется точными, что обеспечивает значительное повышение производительности. Такой буфер мы видим в процессоре Pentium 4.
Анализ потока данных. Процессор анализирует и составляет график исполнения команд в оптимальной последовательности, независимо от их порядка следования в программе. Используя анализ потока данных, процессор просматривает декодированные команды и определяет, готовы ли они к непосредственному исполнению или зависят от результатов выполнения других команд. Далее процессор определяет оптимальную последовательность выполнения и исполняет команды наиболее эффективным способом. Такое беспорядочно исполняющее ядро является одной из частей конвейера.
Спекулятивное выполнение повышает скорость выполнения, просматривая программу вперед и исполняя те команды, которые необходимы.Процессор выполняет их одновременно по мере их поступления в оптимизированной последовательности (спекулятивно). На конечном этапе порядок инструкций восстанавливается и переводится в обычное машинное состояние.
Первое отличие процессора Pentium 4 от первых МП – отсутствие первичного КЭШа команд, в котором у МП хранились копии фрагментов ОЗУ, и вторичного КЭШа, содержащего ранее исполненные команды и следующие за ним строки. Остались КЭШ данных L1 и вторичный КЭШ данных L2, которые размещены непосредственно в микросхеме.
Появился КЭШ трасс исполнение, в которых хранятся трассы (последовательности микроопераций, в которых были декодированные команды)
КЭШ трасс совместно с блоками выборки и декодирования образуют устройство предварительной обработки, которая выполняет следующие функции:
- предварительную выборку команд, которые предполагается исполнить;
- декодирование команд в микрооперации;
- генерацию микрокодов для сложных команд;
- доставку декодированных команд из КЭШа трасс;
- предсказание переходов.
КЭШ трасс способен хранить до 12 Кбайт микроопераций и за каждый такт доставляет ядру до 3 микроопераций.
Исполнительное ядро имеет максимальную пропускную способность, которая превышает возможности блока предварительной обработки и блока завершения. Оно способно запустить в исполнительные блоки до 6 микроопераций.
Блок завершения упорядочивает микрооперации произведенные ядром и позволяет выпускать за каждый такт до 3 микроопераций.
Еще более полно динамическое исполнение представлено в 64-разрядных процессорах. Эти процессоры имеют мощные вычислительные ресурсы, включая 128 регистров целых чисел, 128 регистров действительных чисел, 64 предикационных регистра и ряд специальных регистров.
Предикация – одновременное исполнение двух ветвей программы, вместо предсказания переходов (выполнения наиболее вероятного).
Опережающее чтение данных, т.е. загрузка данных в регистры с опережением, до того, как определилось реальное ветвление программы.
Эти возможности осуществляются комбинированно – при компиляции и выполнении программы.
Компилятор транслирует операторы исходного кода, содержащие ветвление (условный переход), в совокупность блоков машинных команд, идущих друг за другом. Процессор пытается прогнозировать исход операции и заранее выполняет один из блоков, теряя время при ошибке прогнозирования. Когда компилятор обнаруживает оператор перехода, он анализирует все возможные ветви и помечает их метками или предикатами.После этого, он определяет, какие из них могут быть выполнены параллельно.
Затем компилятор группирует машинные коды в 128 битовые связки по 3 команды в каждой. Это трассы исполнения.
В процессе выполнения программы процессор просматривает описания связок, выбирает команды, которые взаимно независимы и распределяет их на параллельную обработку. Если процессор обнаруживает ветвление, он не пытается предсказать переход, а начинает выполнять все возможные ветви программы.
Опережающее чтение разделяет загрузку данных в регистры и их реальное использование, избегая ожиданий. Прежде всего, компилятор анализирует программу, определяя команды, которые требуют приема данных из оперативной памяти. Там, где это возможно, он вставляет команды опережающего чтения, и переставляет команды так, чтобы процессор мог их обрабоатывать параллельно. В процессе работы процессор, встречая команду опережающего чтения, пытается выбрать данные из памяти. Если данные не все готовы, обработка продолжается до тех пор пока все данные не считаны. Если к моменту прихода в точку «команда проверки опережающего чтения» не все данные готовы, вырабатывается сигнал прерывания.
Все перечисленные методы повышения производительности относятся к однопроцессорным системам, т.е. ЭВМ.