Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
01.05.2014
Размер:
774.94 Кб
Скачать

Контрольные вопросы 4 1 1

Одной из наиболее совершенных канальных подсистем обладают ВМ семейства IBM 390. В ней предусмотрено использование до 65 536 подканалов и до 256 канальных трактов. Реализованы два типа канальных трактов: параллельный и последовательный.

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

Для работы с ВУ, соединенными с КПВВ волоконно-оптическими линиями, используются последовательные канальные тракты, реализующие протокол ESCON (Enterprise Systems Connection Architecture). Последовательный канальный тракт рассчитан на передачу информации только в последовательном коде и только в селекторном режиме. Для подключения блоков управления внешними устройствами (БУВУ) к ESCON-тракту служат специальные устройства, называемые ESCON-директорами. Каждое такое устройство может обеспечить одновременное подключение до 60 БУВУ и одновременную передачу информации от 30 из них со скоростью до 10 Мбайт/с.

Кроме того, в КПВВ предусмотрены специальные коммуникационные канальные тракты для подключения к сетям ВМ, модемам, другим системам.

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

Контрольные вопросы

1. Пояснитедостоинства и недостатки трех вариантов подключения системы ввода/вывода к процессору ВМ.

2.Сформулируйте достоинства, недостатки и область применения двух способов организации адресного пространства ввода/вывода

3.Дайте развернутую характеристику структуры ВУ, отображая ее элементы в каждый из трех типов ВУ.

4.В чем состоит локализация данных, выполняемая модулем ввода/вывода?

5.Опишите содержание процедуры «рукопожатия» при выполнении операции ввода.

6.Конкретизируйте последовательность действий процессора при обмене информацией с жестким диском.

7.Выберите конкретную скорость работы ЦП. Рассчитайте емкость буферной памяти МВБ для обмена с клавиатурой, символьным принтером и оптическим диском.

4 1 2 Глава 8. Системы ввода/вывода

8.Проведите маленькое исследование: спрогнозируйте вероятность возникновения ошибки мыши, лазерного принтера, оптического диска. Ответы обоснуйте.

9.Для конкретного ЦП определите структуры МВБ для мыши, клавиатуры, жесткого диска. Необходимость элементов структуры обоснуйте.

10.Сравните известные вам методы управления вводом/выводом по трем параметрам: достоинствам, недостаткам, области применения.

11.Поясните классификацию методов ввода/вывода по прерыванию.

12.Охарактеризуйте известные вам режимы прямого доступа к памяти, сформулируйте их достоинства и недостатки.

13.Опишите процесс вывода пяти слов и ввода семи слов при трех вариантах реализации ПДП.

14.Сравните ввод/вывод по прерыванию с вводом/выводом при ПДП. Для какого режима ПДП эти методы наиболее близки и почему?

15.Проведите сравнительный анализ контроллера ПДП и канала ввода/вывода. В чем их сходство? Чем они отличаются друг от друга?

16.Опишите процесс взаимодействия ЦП и КВВ. Какая при этом используется управляющая информация?

17.Опишите задачи посредника между КВВ и ВУ.

Глава 9

Основные направления в архитектуре процессоров

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

Конвейеризация вычислений

Совершенствование элементной базы уже не приводит к кардинальному росту производительности ВМ. Более перспективными в этом плане представляются архитектурные приемы, среди которых один из наиболее значимых — конвейеризация.

Для пояснения идеи конвейера сначала обратимся к рис. 9.1, а, где показан отдельный функциональный блок (ФБ). Исходные данные помещаются во входной регистр Ргвх, обрабатываются в функциональном блоке, а результат обработки фиксируется в выходном регистре Ргвых. Если максимальное время обработки в ФБ равно Тmax , то новые данные могут быть занесены во входной регистр Ргвх не ранее, чем спустя Тmax.

Рис. 9 . 1 . Обработка информации: а — в одиночном блоке; б —в конвейере с регистрами; в — в конвейере с буферной памятью

4 1 4 Глава9.Основныенаправлениявархитектурепроцессоров

Теперьраспределим функции, выполняемые вфункциональном блоке ФБ (см. рис. 9.1, а), между тремя последовательными независимыми блоками: и ФБ3, причем так, чтобы максимальное время обработки в каждомФБi было одина-

ковым и равнялось

. Между блоками разместим буферные регистры Рг,i

(рис. 9.1, 6), предназначенные для хранения результата обработки в

на слу-

чай, если следующий за ним функциональный блок еще не готов использовать этот результат. В рассмотренной схеме данные на вход конвейера могут подаваться с интервалом Tmax/3(втрое чаще), и хотя задержка от момента поступления первой единицы данных в Ргвх до момента появления результата ее обработки на выходе Ргвых по-прежнему составляет Тmax, последующие результаты появляются на выходе Ргвых уже с интервалом Tmax/3.

На практике редко удается добиться того, чтобы задержки в каждом ФБ, были одинаковыми. Какследствие, производительность конвейераснижается, поскольку период поступления входных данных определяется максимальным временем их обработки в каждом функциональном блоке. Для устранения этого недостатка или, по крайней мере, частичнойего компенсации каждый буферный регистрРг1,следует заменить буферной памятьюБПi способной хранить множество данных и организованной по принципу FIFO — "первым вошел — первым вышел" (рис. 9.1, в). Обработав элемент данных,ФБi,заносит результат в БПi извлекает из БПi-1 новый элементданных и приступает к очередному циклу обработки, причем эта последовательность осуществляется каждым функциональным блоком независимо от других блоков. Обработка в каждом блоке может продолжаться до тех пор, пока не ликвидируется предыдущая очередь или пока не переполнится следующая очередь. Если емкость буферной памяти достаточно велика, различия во времени обработки не сказываются на производительности, тем не менее желательно, чтобы средняя длительность обработки во всех ФБ, была одинаковой.

В архитектуре вычислительных машин можно найти множество объектов, где конвейеризация обеспечивает ощутимый прирост производительности ВМ. Ранее уже рассматривались два таких объекта — операционные устройства и память, однаконаиболее ощутимый эффектдостигается при конвейеризации этапов машинного цикла.

По способу синхронизации работы ступеней конвейеры могут быть синхроннымииасинхронными.ДлятрадиционныхВМхарактернысинхронныеконвейеры. Связано это, прежде всего, с синхронным характером работы процессоров. Ступени конвейеров в процессоре обычно располагаются близко друг от друга, благодаря чему тракты распространения сигналов синхронизации получаются достаточно короткими и фактор «перекоса» сигналов становится не столь существенным. Асинхронные конвейеры оказываются полезными, если связь между ступенями не столь сильна, а длина сигнальных трактов между разными ступенями сильно рознится. Примером асинхронных конвейеров могут служить систолические массивы (систолическая обработка будет рассмотрена в последующих разделах).

Синхронные линейные конвейеры

Эффективность синхронного конвейера во многом зависит от правильного выбора длительности тактового периода Tк. Минимально допустимую Tк можно определить как сумму наибольшего из времен обработки на отдельной ступени кон-

Конвейеризация вычислений 4 1 5

вейера TСМАХ и времени записи результатов обработки в буферные регистры между ступенями конвейераTБР:

Из-за вероятного «перекоса» в поступлении тактирующего сигнала в разные ступени конвейера предыдущую формулу следует дополнить еще одним элементом — максимальной величиной «перекоса»Tпк:

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

дыдущий результат. Чтобы избежать подобной ситуации, сумма

должна

быть меньше минимального времени обработки в ступени

откуда

Выбор длительности тактового периода для конвейера должен осуществляться с соблюдением соотношения

Несмотря на очевидные преимущества выбора Tк равным нижнему пределу, проектировщики ВМ обычно ориентируются на среднее значение между нижним и верхним пределами.

Метрики эффективности конвейеров

Чтобы охарактеризовать эффект, достигаемый за счет конвейеризации вычислний,обычно используюттри метрики: ускорение,эффективностьи производительность.

Подускорением понимается отношение времени обработки без конвейера и при его наличии. Теоретически наилучшее время обработки входного потока из N значений ТNK на конвейере с К ступенями и тактовым периодом Тк можно определить выражением

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

будут следовать в каждом такте.

 

В процессоре без конвейера общее время выполнения составляет

Таким

образом,ускорение вычисленийSзасчетконвейеризациивычисленийможноописать формулой

Приускорение стремится к величине, равной количеству ступеней в конвейере.

4 1 6 Глава 9. Основные направления в архитектуре процессоров

Еще одной метрикой, характеризующей конвейерный процессор, является эффективность Е — доля ускорения, приходящаяся на одну ступень конвейера:

Вкачестветретьейметрикичастовыступаетпропускнаяспособностьилипроизводительность Р — эффективность, деленная на длительность тактового периода:

Приэффективность стремится к единице, а производительность — к частоте тактирования конвейера:

Нелинейные конвейеры

Конвейер не всегда представляет собой линейную цепочку этапов. В ряде ситуаций оказывается выгодным, когда функциональные блоки соединены между собой не последовательно, а в соответствии с логикой обработки, при этом одни блоки в цепочке могут пропускаться, а другие — образовывать циклические структуры. Это позволяет с помощью одного и того же конвейера одновременно вычислять более одной функции, однако если эти функции конфликтуют между собой, то такой конвейер трудно загрузить полностью! Структура нелинейного конвейера, одновременно вычисляющего две функции X и Y, приведена на рис. 9.2. Там же показана последовательность, в которой функциями X и У востребуются те или иные функциональные блоки.

Рис.9.2.Нелинейныйконвейер

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

Так, в ходе реализации функции X запуск очередного ее вычисления возможен после 1,3 и 6 тактов. Запуск параллельного вычисления функции Увозможен после

Конвейеризация вычислений 4 1 7

2 и 4 тактов. При запуске функции Уочередной ее запуск позволен после тактов 1, 3 и 5, а параллельный запуск функции X допустим после 2 и 4 тактов.

Конвейер команд

Идея конвейера команд была предложена в 1956 году академиком С. А.Лебедевым. Как известно, цикл команды представляет собой последовательность этапов. Возложив реализацию каждого из них на самостоятельное устройство и последовательно соединив такие устройства, мы получим классическую схему конвейера команд. Для иллюстрации воспользуемся примером, приведенным в [200]. Выделим в цикле команды шесть этапов:

1.Выборка команды (ВК). Чтение очередной команды из памяти и занесение ее в регистр команды.

2.Декодирование команды (ДК). Определение кода операции и способов адресацииоперандов.

3.Вычисление адресов операндов (ВА). Вычисление исполнительных адресов каждого из операндов в соответствии с указанным в команде способом их адресаций.

4.Выборка операндов (ВО). Извлечение операндов из памяти. Эта операция не нужна для операндов, находящихся в регистрах.

5.Исполнение команды (ИК). Исполнение указанной операции.

6.Запись результата (ЗР), Занесение результата в память.

Рис. 9.3. Логика работы конвейера команд

На рис. 9.3 показан конвейер с шестью ступенями, соответствующими шести этапам цикла команды. В диаграмме предполагается, что каждая команда обязательно проходит все шесть ступеней, хотя этот случай не совсем типичен. Так, команда загрузки регистра не требует этапа ЗР. Кроме того, здесь принято, что все этапы могут выполняться одновременно. Без конвейеризации выполнение девяти команд заняло бы 9 х 6 = 54 единицы времени. Использование конвейера позволяет сократить время обработки до 14 единиц.

14 За*. 470

418 Глава 9. Основные направления в архитектуре процессоров

Конфликты в конвейере команд

Полученное в примере число 14 характеризует лишь потенциальную производительность конвейера команд. На практике в силу возникающих в конвейере конфликтных ситуаций достичь такой производительности не удается. Конфликтные ситуации в конвейере принято обозначать термином риск (hazard), а обусловлены они могут быть тремя причинами:

-попыткой нескольких команд одновременно обратиться к одному и тому же ресурсу ВМ (структурный риск);

-взаимосвязью команд по данным (риск по данным);

-неоднозначностью при выборке следующей команды в случае команд перехода (риск по управлению).

Структурный риск (конфликт по ресурсам) имеет место, когда несколько команд, находящихся на разных ступенях конвейера, пытаются одновременно использовать один и тот же ресурс, чаще всего — память. Так, в типовом цикле команды сразу три этапа (ВК, 80 и ЗР) связаны с обращением к памяти. Диаграмма (см. рис. 9.3) показывает, что все три обращения могут производиться одновременно, однако напрактикеэтоне всегда возможно. Подобных конфликтовчастично удается избежать за счет модульного Построения памяти и использования кэшпамяти — имеется вероятность того, что команды будут обращаться либо к разным модулям ОП, либо одна из них станет обращаться к основной памяти, а другая - к кэш-памяти. С этих позиций выгоднее разделять кэш-память команд и кэш-па- мять данных. Конфликты из-за одновременного обращения к памяти могут и не возникать, поскольку для многих команд ступени выборки операнда и записи результата часто не требуются. В целом, влияние структурного риска на производительность конвейера по сравнению с другими видами рисков сравнительно невелико.

Риск по данным, в противоположность структурному риску — типичная и регуданным положим, что две команды в конвейере (i и j) предусматривают обращение к одной и той же переменной х, причем команда i предшествует команде). В общем случае между i и j ожидаемы три типа конфликтов по данным (рис. 9.4):

-Чтение после записи» (ЧПЗ): командаj читает х до того, как команда i успела записать новое значение х, то есть j ошибочно получит старое значение х вместо нового. '

-«Запись после чтения» (ЗПЧ): команда; j записывает новое значение х до того, как команда i успела прочитать x:, то есть команда i ошибочно получит новое значение х вместо старого.

-«Запись после записи» (ЗПЗ): командаj записывает новое значение х прежде, чем команда i успела записать в качестве х свое значение, то есть х ошибочно содержит i-e значение х вместоj-го.

Возможен и четвертый случай, когда команда j читает x прежде команды i. Этот случай не вызывает никаких конфликтов, поскольку как i, так j получат верное значение х.

Конвейеризация вычислений

4 1 9

в

Рис- 9.4. Конфликты поданным: а — «Чтение после записи»; б — -Запись после чтения-; в — «Запись после записи»

Наиболее частый вид конфликтов по данным — ЧПЗ, поскольку операция чтения в цикле команды (этап ВО) предшествует операции записи (этап ЗР). По той же причине конфликты типа ЗПЧ большой проблемы не представляют. Сложности появляются, только если структура конвейера допускает запись прежде чтения или если команды в конвейере обрабатываются в последовательности, отличной от предписанной программой. Такое возможно, если командам в конвейере разрешается «догонять» предшествующие им команды, приостановленные из-за како- го-то конфликта. Конфликт типа ЗПЗ также не вызывает особых проблем в конвейерах, где команды следуют в порядке, определенном программой, и могут производить запись только на этапе ЗР. В худшем случае, когда одна команда догоняет другую из-за приостановки последней, имеет место конфликт по ресурсу — попытка одновременного доступа к одной и той же ячейке.

В борьбе с конфликтами по данным выделяют два аспекта: своевременное обнаружение потенциального конфликта и его устранение. Признаком возникновения конфликта по данным между двумя командами i и j служит невыполнение хотя бы одного из трех условий Бернстейна (Bernstein's Conditions):

Где O(k) — множество ячеек, изменяемых командой k; 1(1) — множество ячеек, читаемых командой l; Критерий может быть распространен и на большее число команд: для трех команд подобных уравнений будет 9, для четырех команд — 18 (по три на каждую пару). Соблюдение соотношений является достаточным, но не необходимым ус-

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

Для борьбы с конфликтами по данным применяются как программные, так и аппаратные методы.

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

4 2 0 Глава 9. Основныенаправления вархитектурепроцессоров

конфликтам, находилась достаточное количество нейтральных в этом плане команд. Если такое не удается, то между конфликтующими командами компилятор вставляет необходимое количество команд типа «Нет операции»,

Фактическое разрешение конфликтов возлагается на аппаратные методы. Наиболее очевидным решением является остановка команды; на несколько тактов с тем, чтобы команда i успела завершиться или, по крайней мере, миновать ступень конвейера, вызвавшую конфликт. Соответственно задерживаются и команды, следующие в конвейере за j-й командой. Данную ситуацию называют «пузырьком» в конвейере. Иногда приостанавливают только команду j, не задерживая следующие за ней команды. Это более эффективный прием, но его реализация усложняет конвейер.

Понятно, что остановки конвейера снижают его эффективность и разработчики ВМ всячески стремятся сократить общее число остановок или хотя бы их длительность. Поскольку наиболее частые конфликты по данным — это ЧПЗ, основные усилия тратятся на противодействие именно этому типу конфликтов. Среди известных методов борьбы с ЧПЗ наибольшее распространение получил прием ускоренного продвижения информации (forwarding). Обычно между двумя соседними ступенями конвейера располагается буферный регистр, через который предшествующая ступень передает результат своей работы на последующую ступень, то есть передача информации возможна лишь между соседними ступенями конвейера. При ускоренном продвижении, когда для выполнения команды требуется операнд, уже вычисленный предыдущей командой, этот операнд может быть получен непосредственно из соответствующего буферного регистра, минуя все промежуточные ступени конвейера. С данной целью в конвейере предусматриваются дополнительные тракты пересылки информации (тракты опережения, тракты обхода), снабженные средствами мультиплексирования.

Наибольшие проблемы при создании эффективного конвейера обусловлены командами,изменяющимиестественный порядоквычислений1. Простейшийконвейер ориентирован на линейные программы. В нем ступень выборки извлекает команды из последовательных ячеек памяти, используя для этого счетчик команд (СК). Адрес очередной команды в линейной программе формируется автоматически, за счет прибавления к содержимому СК числа, равного длине текущей ко- В них обязательно присутствуют команды управления, изменяющие последовавозврат из процедуры и т. п. Доля подобных команд в программе оценивается как 10-20% (по некоторым источникам она существенно больше). Выполнение команд, изменяющих последовательность вычислений (в дальнейшем будем их называть командами перехода), может приводить к приостановке конвейера на несколько тактов, из-за чего производительность процессора снижается. Приостановки конвейера при выполнении команд перехода обусловлены двумя факторами.

1В фон-неймановской ВМ команды размещаются в ячейках памяти и извлекаются для выполнения

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

Соседние файлы в папке Организация ЭВМ и систем