Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

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

Таненбаун Э. Архитектура компьютера — Спб.: Питер, 2007. — 844 c.
ISBN 5-469-01274-3
Скачать (прямая ссылка): arhkomputera2007.DjVu
Предыдущая << 1 .. 172 173 174 175 176 177 < 178 > 179 180 181 182 183 184 .. 422 >> Следующая

Buffer, ВТВ) первого уровня и продолжает декодирование с соответствующего
адреса. В кэше буфера объектов перехода первого уровня сохраняются 4000
последних переходов. Если необходимая команда перехода отсутствует в
таблице, применяется статическое прогнозирование. При этом
подразумевается, что обратный переход, во-первых, является частью цикла,
во-вторых, не занят. Точность статического прогноза в этом случае очень
высока. Прямой переход считается незанятым и входящим в структуру
оператора if. Точность статического прогноза в случае прямых переходов
значительно ниже, чем в случае обратных. Для прогнозирования
микроопераций перехода применяется буфер трасс объектов перехода, или ВТВ
трасс.
Второй компонент конвейера - логика исполнения с изменением
последовательности - получает данные из кэша трасс емкостью 12 ООО
микроопераций. При поступлении из блока предварительной обработки каждой
последующей микрооперации (а за цикл их поступает три) блок распределения
и подмены регистрирует ее в таблице, состоящей из 128 записей и
называемой буфером пере-упорядочивания команд (ReOrder Buffer, ROB). В
этом буфере хранятся данные о состоянии микрооперации, вплоть до
пересортировки ее результатов. Затем блок распределения и подмены
проводит проверку на предмет доступности ресурсов, необходимых для
выполнения микрооперации. Если ресурсы свободны, микрооперация
устанавливается в одну из очередей на выполнение. Для микроопераций,
исполняемых в памяти и вне памяти, предусмотрены отдельные очереди. Если
выполнение микрооперации в данный момент невозможно, она откладывается,
однако обработка последующих микроопераций продолжается; таким образом,
микрооперации часто выполняются вне их исходной последовательности. Этот
принцип позволяет поддерживать загрузку всех функциональных блоков на
максимально высоком уровне. В каждый отдельно взятый момент могут
одновременно обрабатываться до 126 команд, причем 48 из них могут
загружаться из памяти, а 24 - сохраняться в памяти.
Иногда микрооперации простаивают. Это происходит в тех случаях, когда к
одному и тому же регистру для чтения или записи пытаются обратиться
несколько микроопераций; соответственно, одной из них это удается, а
остальным -
356 Глава 4. Уровень микроархитектуры
нет. Такие конфликты, как мы уже выяснили, называются WAR- и WAW-взаи-
мозависимостями. Подмена целевого регистра позволяет записать результаты
выполнения микрооперации в один из 120 временных регистров, а значит,
выполнить эту микрооперацию немедленно. Если же все временные регистры
недоступны или микрооперация попадает в ситуацию RAW-взаимозависимости
(обойти которую нельзя), планировщик указывает характер возникшей
проблемы в виде записи в буфере ROB. Впоследствии, после освобождения
всех необходимых ресурсов, микрооперация устанавливается в одну из
очередей на выполнение.
Блок распределения и подмены помещает готовые к выполнению операции в
одну из двух очередей. Четыре планировщика ответственны за извлечение
микрокоманд из очередей. Каждый планировщик регламентирует обращения к
тем или иным ресурсам:
1. Планировщик 1 - АЛУ 1 и блок смещения операций с плавающей
точкой.
2. Планировщик 2 - АЛУ 2 и блок исполнения операций с
плавающей точкой.
3. Планировщик 3 - команды загрузки.
4. Планировщик 4 - команды сохранения.
Поскольку планировщики и АЛУ работают на скорости, вдвое превышающей
номинальную тактовую частоту, первые два планировщика могут передавать по
две микрооперации за цикл. Учитывая то, что два целочисленных АЛУ тоже
работают на удвоенной скорости, процессор Pentium 4 с тактовой частотой 3
ГГц способен выполнять 12 млрд целочисленных операций в секунду. В силу
столь высокой скорости блок контроля исполнения с изменением
последовательности испытывает некоторые трудности с загрузкой АЛУ.
Команды загрузки и сохранения проходят через один блок исполнения,
работающий на удвоенной частоте, который в течение одного цикла может
вызывать по одной команде обоих типов. Таким образом, в лучшем случае
(при отсутствии операций с плавающей точкой) за цикл может быть вызвано 6
целочисленных микроопераций.
Два целочисленных АЛУ не одинаковы. АЛУ 1 выполняет любые арифметические
и логические операции и переходы. АЛУ 2 способно выполнять только команды
сложения, вычитания, сдвига и циклического сдвига. Не идентичны и два
блока исполнения операций с плавающей точкой. Первый из них выполняет
только сдвиги и SSE-команды. Второй поддерживает арифметические операции
с плавающей точкой, а также ММХ- и SSE-команды.
АЛУ и блоки исполнения операций с плавающей точкой получают данные от
двух регистровых файлов емкостью по 128 записей. Один из этих файлов
отводится для целых чисел, другой - для чисел с плавающей точкой. В них
содержатся все операнды, необходимые для исполнения команд; кроме того,
они играют роль хранилища результатов. В силу подмены регистров восемь из
них содержат регистры, доступные на уровне архитектуры команд (ЕАХ, ЕВХ,
Предыдущая << 1 .. 172 173 174 175 176 177 < 178 > 179 180 181 182 183 184 .. 422 >> Следующая