7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
Примером реализации мультитредового процессора с тредами, выявляемыми путем анализа потоков данных программы, служит микропроцессор Kin. Этот микропроцессор строится как совокупность функциональных блоков, связи между которыми выполняются через FIFO-очереди. Каждый функциональный блок может быть внутри как синхронным (что вполне возможно в силу ограниченного размера блока), так и асинхронным. Последнее достаточно актуально, т.к. существует мнение о том, что микропроцессоры на кристаллах с миллиардом транзисторов и тактовыми частотами на уровне гигагерц не могут быть синхронными. На больших кристаллах время распространения от одного края кристалла до противоположного края любых сигналов, включая тактовые, составляет порядка 3 нс, что при тактовой частоте 2 ГГц занимает 5‑7 тактов. Традиционное решение, основанное на введении сети распределения тактового сигнала, требует много ресурсов и энергии. Например, в микропроцессоре Alpha 40% мощности расходуется на распределение тактового сигнала без скоса (skew) фронтов и неравномерностей (jitter) периодов.
Для понимания функционирования микропроцессора Kin важно то, что блок выбирает из входной очереди элементы по мере их поступления, производит заданные действия и помещает результат в выходную очередь. При такой организации поток команд распространяется между блоками как поток пакетов, содержащих в себе теги и другую необходимую информацию для управления функциональными блоками. Используемая в. Kin модель ILP организации вычислений служит развитием на современном этапе идей потоковых вычислений (data flow).
Основным архитектурным понятием микропроцессора Kin является базисный блок: последовательность команд преобразования данных в регистрах и памяти, завершающаяся командой перехода.
Устройство выборки команд извлекает и декодирует команды очередного базисного блока и размещает этот блок как строку кэш-памяти декодированных команд. Каждая команда получает при этом уникальный динамический тег.
Далее в блоках переименования регистров устраняются лишние WAR- и WAW-зависимости между командами, и команды поступают в блок организации внеочередного исполнения. Из блока внеочередного исполнения команды передаются в резервирующие станции, в которых они ожидают готовности операндов для начала своего исполнения.
Команды с готовыми операндами посылаются резервирующими станциями для исполнения в функциональные блоки: интерпретации команд перехода, интерпретации арифметических, логических команд и команд сдвига, выполнения команд обращения к памяти. Результаты работы функциональных блоков передаются в резервирующие станции, в блок внеочередного исполнения команд и, в случае команд перехода, в блок предвыборки команд.
Описанная организация функционирования микропроцессора Kin обычна для процессоров с внеочередным исполнением команд. Особенность Kin состоит в применении механизма жадной (avid) выборки команд базисных блоков и механизма удаления команд, которые были выбраны при ошибочном предсказании хода вычислений.
Блок предвыборки команд, реализующий предсказание переходов и жадную предвыборку команд, извлекает команды из кэш-памяти декодированных команд и приписывает им динамический тег, содержащий, среди прочего, трассу, которой принадлежит команда. При этом одни и те же команды могут извлекаться многократно. Например, в случае цикла, организуемого командой условного перехода, команды тела цикла многократно извлекаются. При этом они рассматриваются как независимые друг от друга. Одновременно могут извлекаться команды разных кэш-строк памяти декодированных команд. Это и составляет суть жадной предвыборки команд.
При жадной предвыборке команд выбираются команды как по направлению перехода, так и по направлению отсутствия перехода. Поэтому при определении значения предиката команды перехода необходимо устранить результаты неверно предвыбранных команд и сами эти команды. Для этого используются динамический тег, который формируется при выполнении команд перехода. Если команда перехода имела в теге трассу m, то предвыбранные команды одного направления получают трассу m0, а другого направления – трассу m1. Тем самым, появляется возможность при каждом определении направления перехода установить все те команды, которые были ошибочно выбраны. Блок удаления ошибочно выбранных команд рассылает сообщения другим блокам о трассах команд, подлежащих удалению.
- Предисловие
- Глава 1. Общие сведения о микропроцессорах
- 1.1 Классификация микропроцессоров
- 1.2 Характеристики микропроцессоров
- 1.2.1 Тактовая частота
- 1.2.2 Архитектура процессора
- 1.2.3 Технологический процесс производства
- 1.2.4 Частота системной шины
- 1.2.5 Размер кэша
- 1.3 Типы архитектур микропроцессоров
- 1.4 Структурная схема микропроцессоров
- 1.4.1 Микропроцессор Фон-Неймана
- 1.4.2 Конвейер
- 1.4.3 Зависимость между частотой и количеством ступеней конвейера
- 1.5 Представление информации в эвм
- 1.5.1 Двоичное представление целых чисел
- 1.5.2 Представление символьной информации
- Глава 2. Архитектура микропроцессоров ia-32
- 2.1 Состав и функции регистров
- 2.1.1 Основные регистры
- 2.1.2 Регистры дополнительных функциональных модулей
- 2.2 Типы адресации
- 2.3 Система команд
- 2.3.1 Классификация команд
- 2.3.2 Формат команды
- 2.3.3 Однобайтовые команды
- 2.3.4 Непосредственно заданные операнды
- 2.3.5 Команды с регистровыми операндами
- 2.3.7 Команды с операндами, расположенными в памяти
- Глава 3. Организация многоуровневой памяти
- 3.1 Принцип построения многоуровневой памяти
- 3.2 Организация кэш-памяти
- 3.3 Протоколы когерентности памяти микропроцессоров
- 3.4 Страничная организация памяти
- Глава 4. Режимы работы процессоров ia-32
- 4.1 Обзор режимов работы
- 4.2 Реальный режим адресации
- 4.3 Защищённый режим
- 4.3.1 Дескрипторные таблицы
- 4.3.2 Дескрипторные регистры
- 4.3.3 Дескриптор
- 4.3.4 Односегментная модель памяти
- 4.3.5 Многосегментная модель памяти
- Глава 5. Страничная организация памяти в процессорах ia‑32
- 5.1 Каталог страниц
- 5.2 Таблица страниц
- 5.3 Страничная переадресация
- 5.4 Диспетчер виртуальных машин системы Microsoft Windows
- Глава 6. Архитектура процессоров с параллелизмом уровня команд
- 6.1 Подходы к использованию ресурса транзисторов в микропроцессорах
- 6.2 Суперскалярные процессоры и процессоры с длинным командным словом
- 6.3 Зависимости между командами, препятствующие их параллельному исполнению
- 6.4 Предварительная выборка команд и предсказание переходов
- 6.5 Условное выполнение команд в vliw-процессорах
- 6.6 Декодирование команд, переименование ресурсов и диспетчеризация
- 6.7 Исполнение команд
- 6.8 Завершение выполнения команды
- 6.9 Направления развития архитектуры процессоров с параллелизмом уровня команд
- Глава 7. Мультитредовые микропроцессоры
- 7.1 Основы мультитредовой архитектуры
- 7.2 Выявление тредов
- 7.3 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков управления программы
- 7.3.1 Мультитредовая модель выполнения программы
- 7.3.2 Мультитредовые программы
- 7.3.3 Аппаратные средства мультитредовой архитектуры
- 7.3.4 Преимущества мультитредовой архитектуры
- 7.4 Мультитредовые процессоры с тредами, выявляемыми путем анализа потоков данных программы
- 7.5 Специфика мультитредовых моделей распараллеливания
- Глава 8. Модуль обработки вещественных чисел
- 8.1 Представление чисел с плавающей запятой
- 8.2 Состав модуля fpu
- Глава 9. Основы 64-разрядной архитектуры
- 9.1 Состав и назначение регистров микропроцессора ia-64
- 9.2 Особенности архитектуры epic
- 9.3 Архитектура x86-64
- 9.4 Структура одноядерного процессора
- 9.5 Многоядерные процессоры
- 9.6 Зачем нужны “лишние” разряды?
- Глава 10. Современные 64-разрядные микропроцессоры корпораций Intel и amd
- 10.1 Архитектура Intel Core 2
- 10.1.1 Intel Wide Dynamic Execution
- 10.1.2 Intel Intelligent Power Capability
- 10.1.3 Intel Advanced Smart Cache
- 10.1.4 Intel Smart Memory Access
- 10.1.5 Intel Advanced Digital Media Boost
- 10.1.6 Логическая схема процессора
- 10.2 Архитектура Intel Core i7
- 10.2.1 Технология Hyper-Threading в архитектуре Nehalem
- 10.2.2 Иерархия кэш-памяти в архитектуре Nehalem
- 10.3 Хронология развития семейств микропроцессоров с архитектурой Nehalem
- 10.4 Архитектура amd Athlon 64
- 10.4.1 Ядро процессора
- 10.4.3 Контроллер памяти
- 10.4.4 Контроллер HyperTransport
- 10.5 Архитектура amd k10
- 10.4.1 Технология amd Memory Optimizer Technology
- 10.5.2 Ядро процессора
- 10.5.3 Предвыборка данных и инструкций
- 10.5.4 Выборка из кэша
- 10.5.5 Предсказание переходов и ветвлений
- 10.5.6 Процесс декодирования
- 10.5.7 Диспетчеризация и переупорядочение микроопераций
- 10.5.8 Выполнение микроопераций
- 10.5.9 Технологии энергосбережения
- 10.5.10 Шина HyperTransport 3.0
- 10.5.11 Семейство процессоров Barcelona
- 10.5.12 Семейство процессоров Phenom
- Глава 11. Технологии, поддерживаемые современными микропроцессорами
- 11.1 Технологии тепловой защиты
- 11.1.1 Технология Thermal Monitor
- 11.1.2 Технология Thermal Monitor 2
- 11.1.3 Режим аварийного отключения
- 11.2 Технологии энергосбережения
- 11.2.1 Технология Enhanced Intel SpeedStep
- 11.2.2 Технология Cool'n'Quiet
- 11.3 Технология расширенной памяти
- 11.4 Технология антивирусной защиты
- 11.5 Технология виртуализации
- 11.6 Реализация технологий в современных микроархитектурах
- 11.6.2 Em64t – NetBurst
- 11.6.3 Intel Core
- 11.6.4 Intel Atom
- 11.6.5 Nehalem
- 11.6.6 Xeon
- Глава 12. Графические микропроцессоры
- 12.1 Основные термины и определения
- 12.2 Технологии построения трёхмерного изображения
- 12.2.1 Технологии повышения реалистичности трехмерного изображения
- 12.3 Шейдерный процессор
- 12.4 Особенности современных графических процессоров
- Глава 13. Однокристальные микроконтроллеры
- 13.1 Общая характеристика микроконтроллеров
- 13.2 Микроконтроллеры семейства avr
- Почему именно avr?
- 13.3 Общие сведения об омк avr
- 13.4 Характеристики avr-микроконтроллеров
- Глава 14. Технология производства микропроцессоров
- 14.1 Особенности производства процессоров
- 14.2 Новые технологические решения
- 14.3 Технология производства сверхбольших интегральных схем
- I. Выращивание кристалла кремния
- II. Создание проводящих областей
- III. Тестирование
- IV. Изготовление корпуса
- V. Доставка
- 14.4 Перспективы производства сбис
- Англо-русский словарь терминов и аббревиатур
- Библиографический список
- Интернет-ссылки
- 350072. Краснодар, ул. Московская, 2, кор. А.