Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Организация ЭВМиС; Орлов С.А., Цилькер Б.Я

..pdf
Скачиваний:
431
Добавлен:
25.12.2020
Размер:
5.43 Mб
Скачать

Каналы и процессоры ввода/вывода

381

 

 

ввода/вывода. Некоторые пути решения этой задачи уже были рассмотрены. Следующими шагами в преодолении проблемы могут быть:

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

2.Рассмотренному в пункте 1 процессору ввода/вывода придается собственная локальная память, при этом возможно управление множеством устройств В/ ВЫВ с минимальным привлечением ЦП.

В первом случае МВВ называют каналом ввода/вывода (КВВ), а во втором — процессором ввода/вывода. В принципе, различие между каналом и процессором ввода/вывода достаточно условно, поэтому в дальнейшем будем пользоваться термином «канал».

Концепция системы ввода/вывода с КВВ характерна для больших универсальных вычислительных машин (мэйнфреймов), где проблема эффективной организации ввода/вывода и максимального высвобождения центрального процессора в пользу его основной функции стоит наиболее остро. СВВ с каналами ввода/вывода была предложена и реализована в ВМ семейства IBM 360 и получила дальнейшее развитие в семействах IBM 370 и IBM 390.

В ВМ с каналами ввода/вывода центральный процессор практически не участвует в непосредственном управлении периферийными устройствами, делегируя эту задачу специализированному процессору, входящему в состав КВВ. Все функции ЦП сводятся к запуску и остановке операций в КВВ, а также проверке состояния канала и подключенных к нему ПУ. Для этих целей ЦП использует лишь несколько (от 4 до 8) команд ввода/вывода. Например, в IBM 360 таких команд четыре:

«Начать ввод-вывод»; «Остановить ввод-вывод»; «Проверить ввод-вывод»; «Проверить канал».

КВВ реализует операции ввода/вывода путем выполнения так называемой канальной программы. Канальные программы для каждого ПУ, с которым предполагается обмен информацией, описывают нужную последовательность операций ввода-вывода и хранятся в основной памяти ВМ либо локальной памяти канала. Роль команд в канальных программах выполняют управляющие слова канала (УСК), структура которых отличается от структуры обычной машинной команды. Типовое УСК содержит:

код операции, определяющий для КВВ и ПУ тип операции: «Записать» (вывод информации из ОП в ПУ), «Прочитать» (ввод информации из ПУ в ОП), «Управление» (перемещение головок НМД, магнитной ленты и т. п.);

указатели — дополнительные предписания, задающие более сложную последовательность операций В/ВЫВ, например при вводе пропускать отдельные

382

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

 

 

записи или наоборот — с помощью одной команды вводить «разбросанный» по ОП массив как единый;

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

счетчик данных, хранящий значение длины передаваемого блока данных.

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

Центральный процессор инициирует ввод/вывод, оповещая канал о необходимости выполнить канальную программу, находящуюся в ОП, и указывая начальный адрес этой программы в памяти ВМ. КВВ следует этим указаниям и управляет пересылкой данных. Пересылка информации каналом ведется непосредственно между периферийным устройством (ПУ) и основной памятью, минуя центральный процессор. Таким образом, в вычислительной машине с КВВ управление вводом/ выводом строится иерархическим образом. В операциях ввода/вывода участвуют три типа устройств:

процессор (первый уровень управления);канал ввода/вывода (второй уровень);периферийное устройство (третий уровень).

Каждому типу устройств соответствует свой вид управляющей информации:

процессору — команды ввода/вывода;каналу — управляющие слова канала;периферийному устройству — приказы.

Структура ВМ с канальной системой ввода/вывода показана на рис. 8.10.

Рис. 8.10. ВМ с канальной системой ввода/вывода

Каналы и процессоры ввода/вывода

383

 

 

Обмен информацией между КВВ и основной памятью осуществляется посредством системной шины ВМ. ПУ подключаются к каналу не непосредственно, а через блоки управления периферийными устройствами (БУПУ). БУПУ принимает от канала приказы по управлению периферийным устройством (чтение, запись, перемещение носителя или магнитной головки и т. п.) и преобразует их в сигналы управления, свойственные данному типу ПУ. Обычно один БУПУ может обслуживать несколько однотипных ПУ, но для подключения быстродействующих периферийных устройств часто применяются индивидуальные блоки управления. В свою очередь, некоторые ПУ могут подключаться одновременно к нескольким БУПУ. Это позволяет воспользоваться свободным трактом другого БУПУ при занятости данного БУПУ обслуживанием одного из подключенных к нему ПУ. Физически БУПУ может быть самостоятельным устройством или интегрирован с ПУ или каналом.

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

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

Обмен информацией между ПУ и ОП, как уже упоминалось, реализуется в режиме прямого доступа к памяти, при этом для взаимодействия ЦП и канала задействованы сигналы Запрос ПДП и Подтверждение ПДП.

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

Способ организации взаимодействия ПУ с каналом определяется соотношением быстродействия ОП и ПУ. По этому признаку ПУ образуют две группы: быстродействующие (накопители на магнитных дисках (НМД), накопители на магнитных лентах (НМЛ)) со скоростью приема и выдачи информации около 1 Мбайт/с и медленнодействующие (дисплеи, печатающие устройства и др.) со скоростями порядка 1 Кбайт/с и менее. Быстродействие основной памяти обычно значительно выше. С учетом производительности ПУ в КВВ реализуются два режима работы: мультиплексный (режим разделения времени) и монопольный.

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

384

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

 

 

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

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

Канальная подсистема

В последовавших за IBM 360 семействах универсальных ВМ IBM 370 и особенно, IBM 390 концепция системы ввода/вывода на базе каналов получила дальнейшее развитие и вылилась в так называемую канальную подсистему ввода/вывода (КПВВ). Главная идея заключается в интегрировании отдельных КВВ в единый специализированный процессор ввода/вывода с большим числом канальных трактов и подканалов. Блоки управления периферийными устройствами обычно подключаются к нескольким канальным трактам, что позволяет динамически менять путь пересылки информации с учетом текущей их загруженности. Кроме того, разные канальные тракты могут обладать различной пропускной способностью и при выборе трактов для подключения определенных ПУ может быть учтено их быстродействие.

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

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

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

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

385

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Глава 9

Процессоры

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

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

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

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

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

смотренной схеме данные на вход конвейера могут подаваться с интервалом

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

387

 

 

Теперь распределим функции, выполняемые в функциональном блоке ФБ, между тремя независимыми блоками, образующими последовательность: ФБ1, ФБ2 и ФБ3, причем так, чтобы максимальное время обработки в каждом ФБi было одинаковым

и равнялось Tmax3 . Между блоками разместим буферные регистры Ргi (рис. 9.1, б),

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

Tmax

3

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

валом Tmax3 .

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

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

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

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

1 Понятие «перекос» сигнала было пояснено в разделе «Протокол шины» главы 7.

388

Глава 9. Процессоры

 

 

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

TK = TСМAX + TБР .

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

TK = TСМAX + TБР + TПК.

Каждая ступень может содержать множество логических трактов обработки. TK определяется наиболее длинными трактами во всех ступенях конвейера. При разработке конвейера необходимо учитывать, что для двух смежных элементов, обрабатываемых одной и той же ступенью, обработка первого элемента может проходить по тракту максимальной длины, а второго элемента — по минимальному тракту. В итоге результат обработки второго элемента может появиться на выходе ступени прежде, чем в выходном регистре ступени будет запомнен предыдущий результат. Чтобы избежать подобной ситуации, сумма TБР + TПК не должна превышать минимальное время обработки в ступени TСMIN, откуда

TБР TСMIN TПК.

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

TСМAX + TБР + TПК TK TСМAX + TСMIN TПК.

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

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

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

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

TNK = (K + (N – 1))TK.

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

В процессоре без конвейера общее время выполнения составляет NKTK. Таким образом, ускорение вычислений S за счет конвейеризации вычислений можно описать формулой:

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

 

 

 

389

 

 

 

 

 

S =

NKTK

=

NK

 

 

.

(K + (N 1))T

K + (N 1)

 

K

 

 

 

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

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

E =

S

=

N

.

K

K +(N 1)

 

 

 

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

P = N .

TK (K + (N 1))

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

 

 

1

 

тактирования конвейера F F

=

.

 

 

 

 

TK

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

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

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

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

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

390

Глава 9. Процессоры

 

 

предложена в 1956 году академиком С. А. Лебедевым. Как известно, цикл команды представляет собой последовательность этапов. Возложив реализацию каждого из них на самостоятельное устройство и последовательно соединив такие устройства, мы получим классическую схему конвейера команд. На рис. 9.3 показан конвейер с семью ступенями, соответствующими семи этапам цикла команды, рассмотренным в главе 3:

выборка команды (ВК); декодирование команды (ДК);

вычисление исполнительных адресов (ВА); выборка операндов (ВО); исполнение операции (ИО); запись результата (ЗР);

формирование адреса следующей команды (ФАСК).

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

В диаграмме предполагается, что каждая команда обязательно проходит все семь ступеней, хотя этот случай не совсем типичен. Так, команда загрузки регистра не требует этапа ЗР. Кроме того, здесь принято, что все этапы могут выполняться одновременно. Без конвейеризации выполнение девяти команд заняло бы 9 × 7 = 63 единицы времени. Использование конвейера позволяет сократить время обработки до 15 единиц.

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

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

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