10. Основные механизмы динамического управления выполнением команд.
Существует три основных метода управлением потоком команд в конвейере команд. 1. Статическое управление выполняется оптимизирующим компилятором. 2. Динамическое управление на основе алгоритма Томасуло, примененного в IBM 360/91 и использующего схему управления регистрами специальными тэгами. 3. Схема, основанная на технике «табло» и впервые примененная в процессоре СDС 6600.
Статическое управление основано на выявлении независимых команд и перестройке порядка следования команд, так чтобы они выполнялись без конфликтов и параллельно. Статические методы достаточно дешевы и гибки к применению. В современных МП, как правило, для достижения производительности и сокращения простоев ступеней КК применяется дополнительные аппаратные методы, основанные на динамических методах управления.
Схемы, основанные на алгоритме Томасуло, позволяют исключить конфликты по ресурсам и по взаимозависимости по данным на основе слежения за занятостью и освобождением регистров-источников и регистров- приемников результатов используя специальные тэги (битовые регистры).
Схема «табло», примененная в CDC6600. В нем множественные функциональные устройства образуют множественные исполнительные ступени конвейеров. Функциональные устройства разрешают командам выполняться в порядке очередности. Процессор имеет буферы команд для каждого функционального блока. Команды выдаются на множественные ФУ независимо от того, были ли доступны для них данные из регистров. УУ командами ожидает в буфере свои данные , которые создаются другими командами. Для контроля над правильностью прохождения данных между ФУ и регистрами данных процессор использует централизованное УУ, называемое «табло счета». Табло следит за нужными для команд регистрами, ожидая различные ФУ.
Когда все регистры содержат достоверные данные, «табло» разрешает выполнение команд. Сходным образом, когда ФУ завершает выполнение команд, оно сообщает в «табло», что регистры могут быть освобождены.
Таким образом, устраняется взаимозависимости по данным и достигается больший параллелизм в выполнении команд. Подобная техника была реализована в современных МП, например, таких, как M88000-M88100 фирмы Motorola. Большинство современных RISC и суперскалярных МП содержат встроенные аппаратные схемы для динамического управления потоком команд. Статические и динамические методы могут быть использованы совместно как две стадии оптимизации процесса выполнения.
Рис. Структура динамического управления командами
на основе схемы «табло» (CDC6600).
Алгоритм Томасуло.
В соответствии с алгоритмом Томасуло, реализация работы устройства с плавающей запятой происходит следующим образом. Команды с плавающей запятой загружаются в очередь выборки, где они декодируются. Станции резервации хранят команды и их операнды, так же как и информацию необходимую для обнаружения и разрешения конфликтов (resolving hazards). Буфера загрузки предназначены для хранения результатов, ожидающих загрузки, а буферы сохранения для хранения адресов ожидающих операндов. Все результаты от исполнительных устройств с пл. запятой или от устройства загрузки помещаются на общую шину данных, с которой они могут быть помещены в FP-регистры, в станции резервации или в буферы сохранения.
Исполнительные устройства выполняют операции сложения- вычитания и умножения - деления соответственно.
Таким образом, станции резервации, являясь буфером между ступенью декодирования и считывания данных, позволяют временно хранить операнды, не считывая их из регистров. После считывания очередной команды связанные с ней имена регистров – операндов переименовываются и им временно присваиваются имена станций резерваций. Такая комбинация логики считывания команд и переименования уменьшает коллизии типа WAW и WAR.
Рис. Архитектура устройства с плавающей запятой с применением алгоритма Томасуло.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.