
- •Развитие микропроцессорных архитектур
- •Введение ……………………………………………….........................................4
- •С благодарностью
- •Введение
- •1. История развития микропроцессоров фирмы Intel
- •2. Микропроцессоры класса cisc
- •Можно отметить следующие основные черты архитектуры amd64:
- •4. Микропроцессоры класса risc
- •5. Повышение производительности микропроцессоров
- •6. Конвейерная работа микропроцессоров
- •7. Метод переименования регистров (регистровые окна)
- •8.Принцип обработки операндов simd
- •8.1. Архитектура mmx
- •8.2 Технология sse
- •8.3 Технология sse2
- •9. Обзор simd-команд
- •9.1. Команды передачи данных
- •9.2 Арифметические команды
- •9.2.2 Команды упакованного/скалярного умножения и деления
- •9.2.3 Команды упакованого/скалярного вычисления квадратных корней
- •9.2.4. Команды упакованного/скалярного нахождения максимума и минимума
- •9.2.5 Команды сравнения
- •9.3. Команды преобразования типов данных
- •9.4. Логические команды
- •9.5. Дополнительные команды simd над целочисленными операндами
- •9.6. Команды перестановки
- •9.7. Команды управления состоянием
- •9.8. Команды технологии sse3
- •1. Преобразование чисел с плавающей запятой в целые числа. В эту подгруппу входит одна-единственная инструкция, которая работает на уровне арифметического сопроцессора x87 fpu.
- •3. Загрузка невыровненных переменных. Данную подгруппу представляет инструкция lddqu.
- •Команда monitor устанавливает диапазон адресов памяти (обычно используется одна строка кэша), по которому будет осуществляться отслеживание записей по стандартному протоколу write-back.
- •10. Технология Hyper-Threading
- •11. Vliw (epic) микропроцессор
- •Литература
- •Замковец Сергей Всеволодович Развитие микропроцессорных архитектур
- •119333, Москва, ул. Вавилова, д. 44, кор. 2
7. Метод переименования регистров (регистровые окна)
Одним из интересных аппаратных методов минимизации конфликтов по данным является метод переименования регистров (register renaming). Этот метод получил свое название от широко применяющегося в компиляторах метода переименования - метода размещения данных, при котором осуществляется сокращение числа зависимостей между этими данными, и тем самым происходит увеличение производительности при отображении необходимых исходной программе объектов (например, переменных) на аппаратные ресурсы (например, ячейки памяти и регистры).
При аппаратной реализации данного метода в микропроцессоре, в регистровом файле, используется очень большое количество физических регистров. Необходимо отметить, что программист при помощи соответствующих полей команды может обращаться только к так называемым архитектурным (логическим) регистрам команды. Как только что было сказано количество физических регистров в значительной мере больше, чем количество архитектурных регистров. Например, количество архитектурных регистров в микропроцессорах Pentium равно 8, в то же время количество физических регистров равно 40. В типичной SPARC-архитектуре используется регистровый файл из 128 регистров; причем пользователю из них одновременно доступны только расположенные подряд 24 регистра, образующие в этом файле окно. Процессор всегда содержит указатель текущего окна с возможностью его модификации в рамках реализованной глубины вложения процедур. Номера логических регистров динамически отображаются на номера физических регистров посредством таблиц отображения.
Регистровые окна часто используются при вызовах процедур. Во время этих вызовов микропроцессор должен запомнить содержимое регистров, а после завершения вызова – восстановить их, на что может потребоваться значительное время. Обычно содержимое регистров запоминается в стеке, т.е. процессор в этом случае обращается к памяти. В современных структурированных программах вызовы процедур делаются достаточно часто, что приводит к увеличенным накладным расходам на выполнение команд вызова процедур. Для того, чтобы уменьшить время передачи данных, эти данные остаются в регистрах, а микропроцессор сдвигает указатель регистрового окна для возможности использования новых регистров. Таким образом, при вызове процедур регистровое окно просто сдвигается на определенное количество регистров и к этим свободным регистрам можно обращаться, как к архитектурным. При возврате из процедуры окно сдвигается обратно, к регистрам вызвавшей процедуры.
Другой метод использования регистрового окна связан с применением переменных. В современных языках программирования, например в языке С, переменные принято разделять на локальные и глобальные. Локальные переменные используются только одной конкретной функцией и существуют только то время, пока эта функция работает. Глобальные переменные существуют все время, пока выполняется программа, и доступны всем функциям программы. Когда вызывается определенная функция, то необходимые для ее работы исходные данные записываются в конец окна, а процессор при вызове функции смещает окно по регистровому файлу таким образом, чтобы записанные данные оказались в начале нового, пока пустого окна. Требовавшие сохранения временные данные вызывавшего функцию кода оказываются за пределами окна, вследствие чего являются недоступными. После завершения работы функции полученные результаты записываются в те же самые регистры в начале окна, после чего процессор смещает окно обратно.