Э. Таненбаум - Архитектура компьютера (1127755), страница 157
Текст из файла (страница 157)
В настоящее время существуют ядра для процессоров различных типов (АКМ, М1РЯ, РоттгегРС и т. д.), декодеров МРЕС, цифровых процессоров сигналов и всех стандартных контроллеров ввода-вывода. Помимо СогеСоппесц существуют и другие архитектуры встраиваемых в микро- схему шин.
В частности [67], по популярности ей ничем не уступает шина АМВА Сопроцессоры 61 9 (Адчапсеб М(сгосопгго!1ег Внз АгсЫесгпге — расширенная шинная архитектура для микроконтроллеров). Несколько менее популярны [116, 157] шины ЧС1 (Ч1ггиа1 Со1пропепт 1пгегсоппесг — взаимодействие виртуальных компонентов) и ОСР-1Р (Ореп Соге Ргогосо1-1птегпабопа! Рагтпегз)пр — международный консорциум по открытому протоколу ядра). Впрочем, встроенные в микросхему шины — это только начало; уже сейчас проектируются целые сети на одной микросхеме [22]. Поскольку производителям микросхем не удается постоянно повышать тактовую частоту из-за проблем, связанных с тепловыделением, разработка однокристальных мультипроцессоров становится крайне актуальной. Дополнительные сведения по этой теме можно получить в [43, 102, 120, 123, 129, 172].
Сопроцессоры Разобравшись с методами реализации внутрипроцессорного параллелизма, рассмотрим варианты повьппения быстродействия компьютера за счет введения второго, специализированного, процессора. Такие сопроцессоры очень разнообразны, в том числе по масштабу. В мэйнфреймах 1ВМ 360 и во всех последующих моделях этой линейки для ввода-вывода предусмотрены независимые каналы. В составе С1)С 6600 было 10 независимых процессоров, отвечавших за ввод-вывод.
Другая область применения сопроцессоров — обработка графики и арифметические операции с плавающей точкой. Даже микросхему 1)МА можно рассматривать как сопроцессор. Иногда процессор передает сопроцессору на исполнение команду или набор команд; в иных случаях сопроцессор действует независимо и выполняет собственные команды. Конструктивно сопроцессоры могут быть выполнены в отдельном корпусе (пример — каналы ввода-вывода 1ВМ 360), в виде подключаемой платы (как в сетевых процессорах) или установлены на основной микросхеме (таковы сопроцессоры для обработки чисел с плавающей точкой). Как бы то ни было, все эти варианты объединяет подчиненная роль сопроцессора по отношению к основному процессору. Далее мгя рассмотрим несколько областей, в которых применение сопроцессоров приводит к ощутимому повышению быстродействия, в том числе сетевую поддержку, обработку мультимедийных данных и криптографию.
Сетевые процессоры Большинство современных компьютеров подключены к локальной сети или Интернету. В результате технологического прогресса в области сетевого оборудования передача данных в сетях сегодня происходит так быстро, что программно обрабатывать все входящие и исходящие данные становится все сложнее.
В связи с этим разрабатываются специальные сетевые процессоры, предназначенные для обработки графика, и ими уже сегодня оснащаются многие профессиональные вычислительные системы. В этом подразделе мы вкратце напомним основы организации сетей и обсудим принципы работы сетевых процессоров. 620 Глава 8. Параллельные компьютерные архитектуры Основные сведения о сетях Вычислительные сети подразделя1отся на два основных вида: локальные сети (1.оса1 Агеа Хегтуогйз, ЕАХ) соединяют компьютеры, расположенные в одном помещении или здании, а глобальные сети (Ъ'Ые Агеа Хегтуогйз, "т1тАХ) связывают компьютеры, находящиеся на значительном расстоянии друг от друга.
Наиболее популярный тип локальных сетей называется ЕГЬегпеп Первоначально простая сеть ЕгЬегпег состояла из толстого кабеля, к которому с помощью устройства под ироничным названием зуб вампира (уа1пр1ге Гар) подводились провода от входящих в сеть компьютеров. В современных сетях Е1Ьегпег компьютеры подключаются к центральному коммутатору (он показан справа на рис. 8.11). В первых версиях ЕГЬегпег скорость передачи данных ограничивалась значением 3 Мбит/с, а в первой коммерческой версии она увеличилось до 10 Мбит/с.
Впоследствии появились версии Еазт Ейегпег и СфаЬ11 Е1Ьегпег со скоростями передачи 100 Мбит/с и 1 Гбит/с соответственно. Не так давно выпущена коммерческая версия со скоростью 10 Гбит/с, а в недалеком будущем скорость возрастет до 40 Гбит/с. Помещение поставщика приложений Г Сервер Интернет Маршрутизатор Оптоволоконный канал Рис. 8.11. Схема подключении пользователей к серверам интернета Организация глобальных сетей не столь единообразна.
В таких сетях устанавливаются компьютеры, называемые маршрутизаторами, между которыми прокладываются проводные или оптоволоконные каналы. От исходного компьютера к целевому данные передаются в виде небольших блоков по 64 — 1500 байт, называемых пакетами. На каждом ретрансляционном участке, или хопе, пакет сначала сохраняется в памяти маршрутизатора, а затем отправляется дальше, как только освободится необходимая линия связи. Такой подход называется коммутацией с сохранением и продвижением пакетов (згоге-апг(-(огшагт1 рас1сег зачгсЬ)п8).
Хотя многим кажется, что Интернет является глобальной сетью, технически он представляет собой объединение большого числа разнообразных сетей. Впрочем, это различие для дальнейшего рассмотрения непринципиально. На рис. 8.11 Сопроцессоры 621 структура Интернета показана с точки зрения домашнего пользователя. Компьютер такого пользователя обычно обращается к веб-серверам через телефонную линию, подключаясь к ней либо при помощи обычного модема, либо через линию АТ)ЯЕ (см. главу 2). Для подключения может также использоваться кабель кабельного телевидения. В этом случае правая часть рис. 8.11 будет выглядеть немного иначе, поскольку поставщиком приложений будет компания кабельного телевидения. Итак, компьютер пользователя разбивает данные на пакеты, чтобы передать их специальной компании, которая называется поставщиком услуг Интернета (1пгегпес Бегч!се РгочЫег, 1ЯР).
Сам поставщик услуг Интернета использует высокоскоростное соединение (обычно по оптоволокну) с одной из региональных или магистральных сетей, составляюших Интернет. Пакеты передаются между компьютерами сети, перемеШаясь хоп за холом к серверу. В большинстве компаний, предлагающих веб-услуги, имеется так называемый брандмауэр — специализированный компьютер, фильтруюьчий входяшие пакеты, удаляя нежелательные (например, пакеты от хакеров). Брандмауэр подключается к местной локальной сети (обычно через коммутатор), которая отвечает за доставку пакетов требуемому серверу.
Естественно, реальность значительно сложнее, но основные идеи, которые иллюстрирует рис. 8.11, верны. Сетевое программное обеспечение состоит из нескольких протоколов, каждый из которых представляет собой набор форматов, последовательностей обмена и правил, определяющих назначение пакетов. Например, когда пользователь хочет получить веб-страницу с сервера, его браузер по протоколу НТТР (НурегТехг Тгапз(ег Ргогосо! — протокол передачи гипертекста) отправляет пакет с запросом 6ЕТ РА6Е серверу, который «знает», как обрабатывать полученный пакет. В процессе передачи используются множество различных протоколов, причем зачастую совместно. Обычно они организованы в иерархическую многоуровневую структуру, в которой протоколы верхнего уровня передают пакеты протоколам нижележащих уровней, а реальной передачей данных занимается протокол самого нижнего уровня. На стороне получателя пакеты поднимаются вверх по иерархии в обратном порядке. Раз сетевые процессоры заняты выполнением протоколов, перед изучением процессоров имеет смысл поговорить о протоколах немного подробнее.
Вернемся ненадолго к запросу 6ЕТ РА6Е. Как именно он попадает на веб-сервер? Прежде всего, браузер устанавливает с сервером соединение по протоколу ТСР (Тгапзш!зз!оп Сопгго! Ргогосо! — протокол управления передачей). Программное обеспечение, реализующее этот протокол, следит за тем, чтобы все отправленные пакеты были доставлены, причем в правильном порядке. В случае потери пакета программное обеспечение ТСР максимально быстро повторяет передачу до тех пор, пока пакет, наконец, не будет получен. Реально происходит следуюшее. Браузер формирует корректное НТТР-сообщение с запросом 6ЕТ РА6Е, а затем передает его программному обеспечению ТСР, которое и передает пакет через соединение.