Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 116

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 116 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 1162019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 116)

Сократить число обращений к памяти можно путем размещения большого кэша первого уровня на микросхеме процессора и еше большего кэша второго уровня в непосредственной близости от микросхемы. Двумя модулями кэш-памяти оснашаются все современные процессоры. В то же время существуют и другие методы, позволяющие сократить объем взаимодействия с памятью, и некоторые из них реализованы в 1А-64. Лучший способ ускорить обращения к памяти — выполнять эту операцию в фоновом режиме. В процессоре 1сап1шп 2 предусмотрено 128 64-разрядных регистров общего назначения.

Первые 32 из них являются статическими, а оставшиеся 96 группируются в стек регистров, напоминающий регистровое окно 1)1ггаВРАКС П1. В отличие от П1гаБРАКС, количество доступных программе регистров меняется от одной процедуры к другой. В итоге каждая процедура получает доступ к 32 статическим регистрам и некоторому (переменному) количеству регистров, распределяемых динамически.

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

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

Уровень архитектуры набора команд увеличивается максимальная глубина вызова процедур, при которой регистры не требуется «сбрасывать» в память. В 1гап1пш 2 есть 128 регистров с плавающей точкой, организованных по стандарту 1ЕЕЕ 745 и не группируемых в стек. Большое количество регистров этого типа позволяет сохранять промежуточные результаты множества операций с плавающей точкой в регистрах, не перемещая их в память. Кроме того, в 1гап1шп 2 предусмотрено 64 1-разрядных предикатных регистра, 8 регистров ветвлений и 128 специализированных прикладных регистров, которые используются для самых различных целей, в частности для обмена параметрами между прикладными программами и операционной системой. Общая схема регистров 1гапппп 2 представлена на рис.

5.29. 84 1-разрядных предикатных регистра 128 регистров общего назначения 128 регистров с плавающей точкой 128 регистров прикладных регистров 98 регистров, используемых в качестве стека регистров 32 статических регистра Рис. 8.29. Регистры Иапмгп 2 Планирование команд Один из наиболее серьезных недостатков Репйшп 4 — сложность планирования команд для обработки в различных функциональных блоках без взаимозависимостей. Для решения этой проблемы в период выполнения задействуются очень сложные механизмы, аппаратная поддержка которых требует много места на микросхеме. В архитектуре 1А-64 и ее реализации — 1гап1шп 2 — эти проблемы решены путем передачи соответствующих функций компилятору. Каждая программа теперь состоит из последовательности групп команд. Команды в рамках одной группы не конфликтуют друг с другом, не потребляют больше ресурсов и не обращаются к большему количеству функциональных блоков, чем предусмотрено системой, не образуют КАттг- и 1йгА1Ч-взаимозависимости (ЪгАК-взаимозависимости допускаются в ограниченном объеме).

Создается впечатление, что последовательные группы команд выполняются строго по порядку, хотя на самом деле, если это безопасно, процессор может запустить часть команд следующей группы до завершения предыдущей. Таким образом, процессор может планировать выполнение команд внутри каждой отдельно взятой группы в любом порядке, по возможности, — в параллель- Архитектура 1А-64 и процессор 11апагп 2 465 ном режиме.

При этом вероятность возникновения конфликтов между командами равна нулю. Если группа команд нарушает вышеуказанные правила, поведение программы становится неопределенным. В такой ситуации обязанность по обеспечению соответствия полученного из исходной программы кода на ассемблере всем требованиям ложится на компилятор. Для того чтобы быстро провести компиляцию одновременно с отладкой программы, компилятор может поместить каждую команду в отдельную группу; сделать это просто, но производительность в результате этой операции снижается, а время оптимизации выходного кода значительно увеличивается. Команды объединяются в 128-разрядные пучки (ЬппгПез), подобные изображенному в верхней части рис. 5.30.

В каждом пучке содержится три 41-разрядных команды и 5-разрядный шаблон. Количество пучков в группе команд не всегда выражается целым числом — в некоторых случаях группы начинаются и заканчиваются посередине пучков. Биты 41 Команда 2 Команда 0 Команда 1 Шебпсн Биты 4 10 тип операции Регистр 3 Регистр 2 Регистр 1 Предикатный регистр Группа операций Рис. Б.ЗО. Пучок е архитектуре!А-64 состоит из трех команд Существует более 100 форматов команд.

На рис. 5.30 представлен наиболее распространенный формат. В данном случае он применяется для выполнения при помощи АЛУ операции А00, которая размещает сумму двух регистров в третьем. Поле группы операций определяет общий класс команды (например, целочисленная операция АЛУ). В поле типа операции указывается конкретная операция (например, А00 или 50В). Далее следуют три поля регистра. Последнее поле данного формата — поле предикатного регистра — мы обсудим чуть позже.

Шаблон пучка указывает, какие функциональные блоки нужны для его обработки, а также определяет положение границы группы команд (если таковая предусмотрена). Основными функциональными блоками считаются целочисленные и нецелочисленные команды АЛУ, обращения к памяти, операции с плавающей точкой, ветвление и т. д. Очевидно, что при наличии 6 блоков и 3 команд для полной ортогональности требуются 216 базовых комбинаций плюс 3 х 216 дополнительных комбинаций для определения маркеров группы после команд О, 1 и 2. Поскольку доступно всего 5 бит, из всего разнообразия комбинаций допускаются лишь некоторые.

С другой стороны, если бы в состав пучка можно было включить сразу три команды с плавающей точкой, процессор просто не смог бы 466 Глава 5. Уровень архитектуры набора команд их одновременно запустить. Таким образом, допустимыми считаются фактиче- ски осуществимые комбинации. Сокращение числа условных переходов— предикация Еще одна особенность архитектуры 1А-64 — новый способ обработки условных переходов. Если бы была возможность избавиться от большинства из них, центральный процессор стал бы гораздо проще и работал бы гораздо быстрее. На первый взгляд может показаться, что устранить условные переходы невозможно, поскольку в программах всегда полно операторов 16 Однако в архитектуре 1А-64 используется специальная технология, названная предикацией (ргег(1саг1оп), которая позволяет сильно сократить их число 114, 98~.

Кратко опишем эту технологию. В нынешних машинах все команды являются безусловными в том смысле, что когда центральный процессор встречает команду, он просто ее выполняет. Здесь никогда не решается вопрос «Выполнять или не выполнять?» И напротив, в предикатной архитектуре команды содержат условия, которые сообщают, в каком случае нужно выполнять команду, а в каком — нет. Именно этот переход от безусловных команд к предикатным позволяет избавиться от многих условных переходов.

Вместо того чтобы выбирать ту или иную последовательность безусловных команд, все команды сливаются в одну последовательность предикатных команд, в которой у разных команд разные предикаты. Чтобы понять, как работает предикация, рассмотрим простой пример (листинги 5.9 — 5.11), в котором показано условное выполнение команд (условное выполнение — предтеча предикации).

В листинге 5.9 мы видим оператор 16 В листинге 5.10 после его трансляции получилось три команды: сравнения, условного перехода и перемещения. В листинге 5.11 мы избавились от условного перехода, используя новую команду СИОЧ2, которая является командой условного перемещения. Эта команда проверяет, равен ли третий регистр К1 нулю. Если да, то команда копирует ВЗ в В2. Если нет, то команда не выполняет никаких действий.

Листинг 5.9. Оператор й 1 Е ЕЙ1 01 Й2 " ЙЗ; Листинг 5.10. Код на ассемблере для листинга 5.9 СИР Й1.0 ВИЕ Е1 НОЧ й2. ЙЗ Е1 Листинг 5.11. Условная команда СНОЧ2 Й2.ЙЗ.Й1 Если у нас есть команда, которая может копировать данные, когда какой-либо регистр равен нулю, значит, у нас может быть и такая команда, которая копирует данные, если какой-нибудь регистр не равен нулю. Пусть это будет команда СИОЧЧ. При наличии обеих команд мы уже на пути к полному условному выполнению.

Представим оператор 11 с несколькими операторами присваивания в части Феп и несколькими операторами присваивания в части е1зе. Весь этот фраг- Архитектура!А-64 и процессор Иапгат 2 467 мент программы можно транслировать в код, который будет устанавливать какой-нибудь регистр на О, если условие не выполнено, и на какое-нибудь другое значение, если условие выполнено. Таким образом, присваивания в части Феп можно скомпилировать в последовательность команд СМОЧИ, а присваивания в части е1 зе — в последовательность команд СИОЧ2. Все эти команды, в том числе команды установки регистров, СМОЧИ и СИОЧ2, формируют единый основной блок без условных переходов.

Команды можно даже переупорядочить при компиляции или во время выполнения программы. Единственное требование состоит в том, чтобы условие было известно к тому моменту, когда условные команды потребуется помещать в выходные регистры (то есть где-то в конце конвейера). Простой пример фрагмента программы с операторами ФИеп и е1 зе приведен в листингах 5.12 — 5.14. Листинг 6.12. Оператор И ~ЦЙ1 01 ( Й2 ЙЗ; Й4 Й5, ) е14е ( Йб Р7. ЙВ - Й9: Листинг 6.13. Код на ассемблере дпя листинга 5.12 СИР Й1.0 ВИЕ Е1 МОН й2,ЙЗ МОЧ Й4,95 Вй 02 Е1; МОЧ Йб.Й7 МОЧ ЙВ,Й9 02; Листинг 6.14. Условное выполнение СМОЧ7 й2,ЙЗ.й1 СИОЧ2 Й4,95,91 СМОЧИ Йб,ЙЧ.Й1 СМОЧИ ЙВ.Й9.91 Мы показали только очень простые условные команды (взятые из архитектуры команд Репг(пгп 4), но в архитектуре 1А-64 все команды предикатные.

Характеристики

Тип файла
DJVU-файл
Размер
13,7 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6551
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее