- •1.1. Основные характеристики эвм
- •1.2.Классификация средств эвт
- •1.3. Общие принципы построения современных эвм
- •1.4 Понятие о состоянии процессора (программы). Вектор (слово) состояния
- •2. Определение архитектуры эвм
- •2.1. Классификация эвм по областям применения
- •Основные характеристики, области применения эвм различных классов Понятие архитектуры эвм
- •Основные характеристики эвм
- •СуперЭвм
- •2.1. Общие сведения и классификация устройств памяти
- •2.2 Адресная, ассоциативная и стековая организации памяти
- •Структура машинной команды
- •Способы задания операндов команды
- •Прямая адресация
- •Косвенная базовая (регистровая) адресация
- •Косвенная базовая (регистровая) адресация со смещением
- •Косвенная индексная адресация со смещением
- •Косвенная базовая индексная адресация
- •Косвенная базовая индексная адресация со смещением
- •9.5. Способы адресации
- •3.6. Стековая адресация
- •9.7. Команды, процедуры и микропрограммы
- •Архитектура суперскалярных процессоров
- •Предварительная выборка команд и предсказание переходов
- •Декодирование команд, переименование ресурсов и диспетчеризация
- •Исполнение команд
- •Работа с памятью
- •Завершение выполнения команды
- •Направления развития суперскалярной архитектуры
- •9.16. Принципы организации системы прерывания программ
- •9.17. Особенности систем прерывания малых эвм
- •9.19. Процедура выполнения команд. Рабочий цикл процессора
- •9.20. Принцип совмещения операций академика с. А. Лебедева. Конвейер операций
- •Контрольные вопросы
- •Иерархическая структура памяти
- •Классификация вычислительных систем
- •Основные классы современных параллельных компьютеров mpp, smp, numa, pvp, кластеры.
- •Denelcor hep (Heterogeneous Element Processor)
- •Pasm (Partitioned simd/mimd computer)
- •Pringle
- •LCap (loosely Coupled Array Processors
- •Pepe (Parallel Element Processor Ensemble)
Предварительная выборка команд и предсказание переходов
Поскольку при суперскалярной обработке необходимо извлекать из памяти несколько команд за один такт для загрузки параллельно работающих функциональных модулей, повышенные требования предъявляются к пропускной способности интерфейса микропроцессор-память. В современных микропроцессорах применяются многоуровневые раздельные кэш-памяти данных и команд.
Для уменьшения потерь процессорных циклов, связанных с промахами при обращении к кэш-памяти в случае выполнения команд ветвления, в состав системы кэширования введены средства предсказания переходов, основное назначение которых - повысить вероятность наличия в кэш-памяти требуемой команды.
Исполнение условных ветвлений состоит из следующих этапов:
• распознание команды условного ветвления;
• проверка выполнения условия перехода;
• вычисление адреса перехода;
• передача управления, в случае перехода. На каждом этапе используются специальные приемы повышения производительности.
1. Для быстрого декодирования используются либо дополнительные биты в поле команды, либо преддекодирование команд при выборе из кэш-памяти команд.
2. Часто, когда команда уже выбрана в кэш, условие перехода еще не вычислено. Чтобы не задерживать поток команд в данном случае используется предсказание перехода по одной из нескольких возможных схем. Некоторые предсказатели используют статическую информацию из двоичного кода программы или специально выработанную компилятором. Например, определенные коды операций чаще вырабатывают ветвление, чем другие коды, или ветвление более вероятно (при организации циклов), или компилятор может устанавливать флаг, указывающий направления перехода. Может также использоваться статистическая информация, полученная при трассировке программы.
Другие предсказатели используют динамически формируемую информацию в процессе исполнения программы. Обычно это информация, касающаяся истории выполнения данного ветвления, сохраняемая в таблице ветвлений или в таблице предсказаний ветвлений. Таблица предсказания ветвлений организуется по ассоциативному принципу, подобно кэш-памяти, ее элементы доступны по адресу команды, ветвление которой предсказывается. В некоторых реализациях элемент таблицы предсказания ветвления является счетчиком, значение которого увеличивается при правильном предсказании и уменьшается при неправильном. При этом значение счетчика определяет преобладающее направление ветвлений.
В момент определения действительного значения условия ветвления, вносится изменение в историю ветвления. Если предсказание было неверным, то должна инициироваться выборка правильных команд. Результаты команд, которые были условно выполнены, должны быть аннулированы.
3. Для определения адреса ветвления обычно требуется выполнить целочисленное сложение, прибавляющее к текущему значению счетчика команд смещение, заданное в поле команды ветвления. И хотя это не требует дополнительных циклов для обращения к регистрам, ускорение вычисления адреса может быть достигнуто благодаря использованию буфера, содержащего ранее использованные адреса переходов.
Если требуется осуществить смену значения счетчика команд, то необходим, по крайней мере, один такт для распознания команды ветвления, модификации счетчика команд и выборки команды по заданному значению счетчика команд. Эти задержки вызывают пустые такты в конвейерах процессора. Более сложные решения используют буферы, содержащие наборы команд для двух возможных результатов ветвлений.
Возможно также использование "отложенных переходов", когда одна или несколько команд после команды ветвления выполняются безусловно.