Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.325


Таненбаум Э.- Архитектура компьютера. стр.325

При вызове процедуры указатель стека регистров смещается таким образом, чтобы входные параметры оказались видимыми в регистрах, но сами регистры не были распределены между локальными переменными. Процедура сама определяет количество необходимых ей регистров и соответствующим образом перемещает указатель стека. Сохранять содержимое этих регистров при входе и восстанавливать при выходе не требуется, хотя, если процедуре нужно изменить статический регистр, она должна сначала явно сохранить его прежнее значение, а впоследствии восстановить его. Поскольку количество регистров выражено доступной переменной и обуславливается требованиями каждой конкретной процедуры, неэффективное применение регистров исключается. Кроме того,

увеличивается максимальная глубина вызова процедур, при которой регистры не требуется «сбрасывать» в память.

В Itanium 2 есть 128 регистров с плавающей точкой, организованных по стандарту IEEE 745 и не группируемых в стек. Большое количество регистров этого типа позволяет сохранять промежуточные результаты множества операций с плавающей точкой в регистрах, не перемещая их в память.

Кроме того, в Itanium 2 предусмотрено 64 1-разрядных предикатных регистра, 8 регистров ветвлений и 128 специализированных прикладных регистров, которые используются для самых различных целей, в частности для обмена параметрами между прикладными программами и операционной системой. Общая схема регистров Itanium 2 представлена на рис. 5.29.

Таненбаум Э.- Архитектура компьютера.

Рис. 5.29. Регистры Itanium 2

Планирование команд

Один из наиболее серьезных недостатков Pentium 4 — сложность планирования команд для обработки в различных функциональных блоках без взаимозависимостей. Для решения этой проблемы в период выполнения задействуются очень сложные механизмы, аппаратная поддержка которых требует много места на микросхеме. В архитектуре IA-64 и ее реализации — Itanium 2 — эти проблемы решены путем передачи соответствующих функций компилятору. Каждая программа теперь состоит из последовательности групп команд. Команды в рамках одной группы не конфликтуют друг с другом, не потребляют больше ресурсов и не обращаются к большему количеству функциональных блоков, чем предусмотрено системой, не образуют RAW- и WAW-взаимозависимости (WAR-взаимо-зависимости допускаются в ограниченном объеме). Создается впечатление, что последовательные группы команд выполняются строго по порядку, хотя на самом деле, если это безопасно, процессор может запустить часть команд следующей группы до завершения предыдущей.

Таким образом, процессор может планировать выполнение команд внутри каждой отдельно взятой группы в любом порядке, по возможности, — в параллель ном режиме. При этом вероятность возникновения конфликтов между командами равна нулю. Если группа команд нарушает вышеуказанные правила, поведение программы становится неопределенным. В такой ситуации обязанность по обеспечению соответствия полученного из исходной программы кода на ассемблере всем требованиям ложится на компилятор. Для того чтобы быстро провести компиляцию одновременно с отладкой программы, компилятор может поместить каждую команду в отдельную группу; сделать это просто, но производительность в результате этой операции снижается, а время оптимизации выходного кода значительно увеличивается.


⇐ Предыдущая страница| |Следующая страница ⇒

Карта Сайта