Главная » Просмотр файлов » Жмакин А.П. Архитектура ЭВМ (2006)

Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 33

Файл №1186252 Жмакин А.П. Архитектура ЭВМ (2006) (Жмакин А.П. Архитектура ЭВМ (2006)) 33 страницаЖмакин А.П. Архитектура ЭВМ (2006) (1186252) страница 332020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

□ все операции выполняются за одинаковый промежуток времени (обычно 1 или 2 такта);

Й операнды всех арифметических и логических операций располагаются только в регистрах, к оперативной памяти обращаются только команды за­грузки и сохранения;

□ сверхоперативная память представлена большим числом регистров (32—256).

Реализация этих особенностей, с одной стороны, позволяет приблизить рабо­ту конвейера к идеальной, с другой стороны — существенно ограничивает возможности системы команд процессора. Действительно, из системы опера­ций исключаются "длинные" операции — умножение, деление, операции над числами с плавающей запятой и др. Исключаются сложные (и эффективные) способы адресации, например, автоиндексные. Это приводит к значительно­му увеличению длины программ, увеличению времени на выборку команд из памяти, при этом среднее число команд, выполняемых в единицу времени, в RISC-процессорах значительно больше, чем в CISC-процессорах.

По мере совершенствования интегральной технологии появилась возмож­ность ценой значительных аппаратных затрат «(теперь разработчики уже мог-i ли их себе позволить) резко сократить время выполнения "длинных" операций, например, за счет реализации матричного умножителя, табличной ариф­метики и др. В этом случае длинные операции можно включать в систему команд RISC-процессоров, не нарушая принципов их организации, но увели­чивая эффективность системы команд.

В настоящее время понятия "RISC-" и "CISC-архитектура" скорее являются обозначением некоторых принципов проектирования, но не характеристика­ми конкретных процессоров. Современные процессоры, как правило, реали­зованы по "гибридному" принципу: содержат ядро RISC, которое выполняет простые и самые распространенные команды за один такт на стадию конвей­ера, а сложные команды интерпретируются как некая последовательность простых (на уровне микрокоманд). Пользователь же в этом случае имеет дело с системой команд привычной CISC-архитектуры, а внутренние вопросы реа­лизации командного цикла его, как правило, не интересуют.

При реализации конвейеров возникает еще одна проблема, связанная с его оптимальной загрузкой— команды условной передачи управления (в сред­нем каждая 5—6-я команда программы). Действительно, когда такая команда передается со стадии F на стадию D, на стадию F надо ставить следующую команду, но какую? Условие перехода будет проверено лишь на стадии Е, тогда же определится адрес следующей команды. Здесь возможны два пути решения:

□ приостановить загрузку конвейера до завершения командой перехода ста­дии Е;

□ загрузить конвейер "наугад" командой по одному из двух возможных ад­ресов, а на стадии Е проверить правильность выбора и, если он оказался неверным — очистить весь конвейер и начать загрузку заново по правиль­ному адресу.

Второй путь представляется предпочтительным, т. к. конвейер не останавли­вается, и (в среднем) в половине случаев мы избежим потери времени на пе­резагрузку. Результаты работы конвейера будут еще лучше, если мы научим­ся правильно предсказывать адрес перехода, чтобы вероятность угадывания адреса приближалась к 1.

В современных процессорах часто предусматривают специальные аппарат­ные блоки предсказания переходов. В разных процессорах реализуются раз­личные алгоритмы предсказания, основанные на анализе результатов выпол­нения предыдущих команд переходов [12].

7.5.2. Динамический параллелизм

Один конвейер хорошо, а два лучше? Почему бы, если позволяют ресурсы интегральной технологии, не построить два конвейера и ставить на них одновременно пару команд программы. В процессоре Pentium именно так и сдела­ли— предусмотрели два 5-уровневых конвейера, которые могли работать одновременно и выполнять две целочисленные команды за машинный такт.

Однако возможность одновременной постановки на два разных конвейера пары последовательных команд программы ограничивается рядом условий. Очевидно, что нельзя ставить на разные конвейеры две последовательные команды, если вторая использует в качестве операнда результат работы пер­вой или, во всяком случае, необходимо гарантировать, что к началу стадии выборки операндов второй команды первая (на другом конвейере) уже за­вершит стадию размещения результата. Существуют и другие ограничения, которые определяют т. н. условия "спаривания" последовательных команд (pairing), позволяющие размещать их одновременно на разных конвейерах.

В процессоре Pentium два конвейера не являются равноправными. Один i них (U) может принять любую команду, а другой (V) — только удовлетв! ряющую условиям "спаривания" (довольно сложным) с командой, постав­ленной на U. Если эти условия не соблюдаются, следующая команда так же помещается на U-конвейер, а V-конвейер пропускает такт. Некоторые коман­ды могут появляться только на U-конвейере.

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

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

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

Рассмотрим фрагмент программы, написанный на некотором условном языке:

MOV Rl, R4 ADD Rl, @R0 MOV R5, R6 SUB R5, R7 CLR R6

Вторая команда этого фрагмента использует в качестве операнда содержимое ячейки памяти (косвенно-регистровая адресация) и, следовательно, попав на конвейер, будет "тормозить" его' на стадии А. В то же время следующие три команды этого фрагмента никак не связаны с результатами работы второй команды, выполняют действия только над регистрами и могли бы выпол­няться еще до завершения предыдущей команды, однако в этом случае при­шлось бы изменить порядок выполнения команд, определенный программой, чего конвейер не предусматривает.

Суперскалярная архитектура процессора предполагает, что команды (на не­котором ограниченном участке программы) могут выполняться не только в порядке их размещения в программе, но и по мере возможности их выполне­ния независимо от порядка следования. Возможность выполнения определя­ется, во-первых, отсутствием зависимостей от ранее расположенных, но еще не завершенных команд, во-вторых, наличием свободных ресурсов процессо­ра, необходимых для выполнения команды.

Одним из первых микропроцессоров, реализующих механизм динамического параллелизма, был процессор Pentium Pro (Pentium II) фирмы Intel (рис. 7.15).

На кристалле процессора размещаются два блока кэш-памяти первого уров­ня, в одном из которых (кэш-С) размещается программа, а в другом (кэш-D) — данные.

Устройство выборки/декодирования выбирает очередную команду из кэш-(в порядке их размещения в программе), при необходимости заменяет ело ные команды на последовательность микрокоманд, снабжает каждую ком ду полем признаков (тегом) и помещает в специальным образом организ ванную память — пул команд.

Устройство диспетчирования постоянно анализирует, с одной стороны, со«| держимое пула команд и выявляет команды, готовые к выполнению на какой-нибудь стадии, с другой стороны — свободные в данный момент операцион­ные устройства. При совпадении "желания" (команда завершила предыду­щую стадию и готова к выполнению следующей) и "возможностей" (сво­бодны соответствующие ресурсы) устройство диспетчирования отправляет команду на выполнение независимо от порядка поступления команд в пул. После завершения обработки на очередной стадии команда возвращается в пул с соответствующей пометкой в поле тега.

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

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

Реальный набор регистров контролируется устройством отката, и результаты выполнения команд отражаются на состоянии вычислительной системы только после того, как выполненная команда удаляется из пула команд в со­ответствии с истинным порядком команд в программе.

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

Суперскалярная архитектура предполагает наличие на кристалле процессора нескольких параллельно работающих операционных устройств (в т. ч. и не­скольких одинаковых). Так, например, RISC-процессор PowerPC содержит шесть параллельно работающих исполнительных устройств: блок предсказа-

Гпава 7. Эволюция архитектур микропроцессоров и микроЭВМ

223

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

Все операции обработки данных выполняются с регистровой адресацией. При этом для хранения целочисленных операндов используется блок, вклю­чающий тридцать два 32-разрядных регистра, а для хранения операндов с плавающей запятой — блок из тридцати двух 64-разрядных регистров.

Выборка данных из памяти производится только командами пересылки, ко­торые выполняются блоком обращения к памяти и осуществляют загрузку данных в регистры или запись их содержимого в память.

При параллельной работе исполнительных устройств возможно их одновре­менное обращение к одним регистрам. Чтобы избежать ошибок, возникаю­щих при этом в случае записи нового содержимого до того, как другим уст­ройством будет считано предыдущее, введены буферные регистры— 12 для целочисленных регистров и 8 — для регистров с плавающей запятой. Эти регистры служат для промежуточного хранения операндов, дублируя основ­ные регистры блоков, используемые при выполнении текущих операций. По­сле завершения операций производится перезапись полученных результатов в основные регистры (обратная запись).

7.5.3. VLIW-архитектура

Для реализации динамического параллелизма в процессорах с традиционной системой команд и способами компиляции программного кода требуются весьма сложные схемы организации пула, планировщики, схемы "отката" и др. Процессоры такой архитектуры имеют несколько операционных блоков различного, а иногда и одинакового назначения, которые могут работать па­раллельно, например, 1—2 блока вычисления адресов, 2—3 блока АЛУ для чисел с фиксированной запятой, блок обработки чисел с плавающей запятой, блок размещения результата, блок предсказания переходов и др.

Поскольку процессор может планировать и формировать последовательность выполнения команд на ограниченном (размером пула) участке программы, то для эффективной загрузки операционных блоков требуются не только слож­ные и эффективные процедуры планирования, но и некоторое "везение" — хорошо, если в пул загружены команды, для выполнения которых нужны различные операционные блоки, а если нет?

Один из путей дальнейшего повышения эффективности подобных систем лежит в области разработки специальных компиляторов, которые упаковывают несколько простых команд в "очень длинное командное слово' (VLIW — аббревиатура от Very Long Instruction Word) таким образом, чтобы в одной "очень длинной команде" можно было использовать все существую­щие в процессоре операционные блоки. В этом случае командное слово соот­ветствует набору функциональных устройств.

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

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

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