1.4.2 Конвейер
Данный процессор содержит ряд параллельно работающих конвейеров для раздельной обработки целочисленных и вещественных данных. На рисунке 1.4 представлена структурная схема “классического” процессора с одним конвейером. Она содержит очередь команд (Queue of commands), регистр команды (Register of command), ячейки ОЗУ (Cells of data RAM), программно доступные регистры (Program accessible registers), дешифратор команд (Command DC), АЛУ (ALU), регистр флагов (Flags).
Алгоритм функционирования конвейера процессора сводится к циклическому прохождению ступеней всех конвейеров и показан на рисунке 1.5. Конвейер – упорядоченная совокупность ступеней обработки команд. В нашем случае конвейер является пятиступенчатым. Важно, что каждую из этих ступеней команда должна проходить ровно за один такт. Соответственно для пятиступенчатого конвейера на выполнение одной команды отводится ровно пять тактов.
На первой ступени, называемой "Выборка из памяти очередной команды", из ячейки памяти, адрес которой содержится в специальном адресном регистре IP, извлекается команда, помещаемая в регистр команд. Адресный регистр именуется указателем команд – Instruction Pointer (IP), или счётчиком команд.
Исходно предполагается, что команды программы размещаются в смежных ячейках памяти. На рисунке 1.6 изображён пример линейной последовательности расположения команд в памяти. Первая команда располагается в четырёх ячейках памяти с адресами 01, 02, 03 и 04. Другими словами первая команда располагается по адресу 01 и занимает 4 байта. Вторая команда располагается по адресу 05 и занимает 2 байта. Третья команда располагается по адресу 07 и занимает 6 байтов. Четвёртая команда располагается по адресу 13 и занимает 2 байта.
Пусть в указателе команд IP находится значение 01. Это говорит о том, что в данный квант времени выполняется команда I1. Для выборки из памяти следующей команды необходимо определить адрес, по которому расположена команда. Для этого к регистру IP процессор прибавляет размер предыдущей команды в байтах, т.е. IP2 = IP1 + 4 = 01 + 4 = 05. После чего, начиная с ячейки 05, в регистр команд считывается следующая команда I2, имеющая размер 2 байта. Откуда процессор знает размер считываемой команды? Дело в том, что в кэше команд отведены специальные поля для хранения размера каждой команды.
Таким образом, в случае линейной последовательности команд, для определения адреса следующей выполняемой команды IPi+1 необходимо увеличить текущее значение IPi на размер выполняемой команды в байтах Sizei
IPi+1 = IPi + Sizei.
В случае выполнения команды условного перехода, когда следующей должна выполняться команда, адрес которой станет известен после определения истинности условия, в указатель команд загружается соответствующий адрес перехода Апрх, т.е. . Команды безусловных переходов изменяют содержимое счетчика команд аналогичным образом.
На второй ступени, называемой “Декодирование команды”, команда, помещенная в регистр команд, подвергается разбору на предмет выявления функционального преобразования, задаваемого этой командой, а также регистров и адресов ячеек памяти, используемых в качестве операндов и места сохранения результата. Собственно на шаге декодирования команды выполняется подготовка к подаче управляющих сигналов на мультиплексоры для установления связи между регистрами, в которых хранятся операнды, и одним из функциональных блоков АЛУ, который выполнит требуемую операцию.
На третьей ступени, называемой “Загрузка операндов”, выполняется загрузка операндов из памяти по тем адресам, которые были определены на шаге декодирования. Этот шаг может отсутствовать, если выполняемая команда не имеет операндов или имеет, но они хранятся в регистрах МП или в самой команде. В этом случае обращение к ячейкам внешней памяти не требуется.
На четвёртой ступени “Выполнение команды” функциональный блок, выбранный дешифратором команд в АЛУ производит действие над данными и выставляет результат на выходе.
На пятой ступени “Запись результата” согласно коду команды осуществляется запись результата или в регистр АЛУ, или в память.
Таким образом, конвейер современного процессора включает несколько конструктивных элементов: кэш команд и данных, предпроцессор (Front End) и постпроцессор (Back End), содержащий блоки исполнения команд (Execution Engine).
Процессы выборки инструкций из кэша, их декодирование и продвижение к исполнительным блокам осуществляются в предпроцессоре (рис. 1.7), а процесс выполнения декодированных команд – в постпроцессоре. В самом простейшем случае команда проходит, как минимум, пять стадий обработки.
- Предисловие
- Глава 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, кор. А.