Архитектура компьютера

Рубрика «Параллельные компьютерные архитектуры»

Основные сведения о сетях

Вычислительные сети подразделяются на два основных вида: локальные сети (Local Area Networks, LAN) соединяют компьютеры, расположенные в одном помещении или здании, а глобальные сети (Wide Area Networks, WAN) связывают компьютеры, находящиеся на значительном расстоянии друг от друга. Наиболее популярный тип локальных сетей называется Ethernet. Первоначально простая сеть Ethernet состояла из толстого кабеля, к которому с помощью устройства под ироничным названием зуб вампира (vampire tap) подводились провода от входящих в сеть компьютеров. В современных сетях Ethernet компьютеры подключаются к центральному коммутатору (он показан справа на рис. 8.11). В первых версиях Ethernet скорость передачи данных ограничивалась значением 3 Мбит/с, а в первой коммерческой версии она увеличилось до 10 Мбит/с. Впоследствии появились версии Fast Ethernet и Gigabit Ethernet со скоростями передачи 100 Мбит/с и 1 Гбит/с соответственно. Не так давно выпущена коммерческая версия со скоростью 10 Гбит/с, а в недалеком будущем скорость возрастет до 40 Гбит/с.
Читать дальше »

Ваш отзыв

Сетевые процессоры

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

Ваш отзыв

Сопроцессоры

Разобравшись с методами реализации внутрипроцессорного параллелизма, рассмотрим варианты повышения быстродействия компьютера за счет введения второго, специализированного, процессора. Такие сопроцессоры очень разнообразны, в том числе по масштабу. В мэйнфреймах IBM 360 и во всех последующих моделях этой линейки для ввода-вывода предусмотрены независимые каналы. В составе CDC 6600 было 10 независимых процессоров, отвечавших за ввод-вывод. Другая область применения сопроцессоров — обработка графики и арифметические операции с плавающей точкой. Даже микросхему DMA можно рассматривать как сопроцессор. Иногда процессор передает сопроцессору на исполнение команду или набор команд; в иных случаях сопроцессор действует независимо и выполняет собственные команды.
Читать дальше »

Ваш отзыв

Гетерогенные однокристальные мультипроцессоры

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

Рассмотрим для примера портативный DVD-плеер. Размещенный в нем компьютер призван выполнять несколько функций:
Читать дальше »

Ваш отзыв

Гомогенные однокристальные мультипроцессоры

Благодаря развитию технологии СБИС (сверхбольшая интегральная схема), в настоящее время на один кристалл можно установить два или более мощных процессоров. Поскольку такие процессоры всегда обращаются к одним и тем же модулям памяти (кэшу первого и второго уровней и основной памяти), они, как мы выяснили в главе 2, считаются единым мультипроцессором. Как правило, они устанавливаются в крупных фермах веб-серверов. При совместном размещении двух процессоров, разделении ресурсов памяти, дисковых и сетевых интерфейсов производительность сервера во многих случаях можно удвоить, причем расходы на это возрастут в значительно меньшей степени (так как даже если мультипроцессор будет стоить в два раза больше обычного процессора, не стоит забывать, что его цена составляет лишь небольшую часть общей стоимости системы).

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

Ваш отзыв

Однокристальные мультипроцессоры

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

Ваш отзыв

Многопоточность в Pentium 4

Разобравшись с теорией многопоточности, рассмотрим практический пример — Pentium 4. Уже на этапе разработки этого процессора инженеры Intel продолжали работу над повышением его быстродействия без внесения изменений в программный интерфейс. Рассматривалось пять простейших способов:

1. Повышение тактовой частоты.

2. Размещение на одной микросхеме двух процессоров.

3. Введение новых функциональных блоков.

4. Удлинение конвейера.

5. Использование многопоточности.

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

Ваш отзыв

Внутрипроцессорная многопоточность

Для всех современных конвейеризованных процессоров характерна одна и та же проблема — если при запросе к памяти слово не обнаруживается в кэшах первого и второго уровней, на загрузку этого слова в кэш уходит длительное время, в течение которого конвейер простаивает. Одна из методик решения этой проблемы называется внутрипроцессорной многопоточностью (on-chip multithreading). Она позволяет процессору одновременно управлять несколькими программными потоками и тем самым маскировать простои. Вкратце принцип многопоточ-ности можно изложить так: если программный поток 1 блокируется, процессор может обеспечить полную загрузку аппаратуры, запустив программный поток 2.

Основополагающая идея проста, реализуется она разными способами, которые мы и рассмотрим. Первый из них, называемый мелкомодульной многопоточностью (fine-grained multithreading), применительно к процессору, способному вызывать одну команду за такт, иллюстрирует рис. 8.5. На рис. 8.5, а-в изображено три программных потока (A , B, C), соответствующих 12 машинным циклам. В ходе первого цикла поток А выполняет команду A1. Поскольку эта команда завершается за один цикл, при наступлении второго цикла запускается команда А2. Ее обращение в кэш первого уровня оказывается неудачным, поэтому до извлечения нужного слова из кэша второго уровня проходит два цикла. Исполнение потока продолжается в цикле 5. Как показано на рисунке, потоки В и С также регулярно простаивают. В рамках такого решения вызов последующей команды до завершения предыдущей не осуществляется. Точнее, при наличии сложного счетчика обращений в некоторых случаях это допустимо, но такую возможность мы для простоты исключаем.
Читать дальше »

Ваш отзыв

VLIW-процессор TriMedia

В главе 5 на примере процессора Itanium 2 мы уже сталкивались с архитектурой VLIW. Теперь познакомимся с другим VLIW-процессором — TriMedia производства компании Philips. TriMedia — это встроенный процессор для устройств обработки изображений, а также аудио- и видеустройств, таких как CD-, DVD-и МРЗ-плееры, устройства записи CD и DVD, интерактивные телевизоры, цифровые фотокамеры, видеокамеры и т. д. Учитывая специализацию, нет ничего удивительного в многочисленных отличиях TriMedia от Itanium 2 — универсального процессора для высокопроизводительных серверов.

В состав одной TriMedia-команды может входить до пяти операций. В полностью оптимальных условиях за тактовый цикл запускается одна команда и выбирается пять операций. Номинальная тактовая частота процессора составляет 266 или 366 МГц, но так как за один цикл может выполняться до пяти операций, фактическое быстродействие в пять раз больше. При дальнейшем изложении мы будем исходить из характеристик реализации ТМ3260 процессора. Другие версии TriMedia имеют ряд малозначительных отличий.
Читать дальше »

Ваш отзыв

Параллелизм на уровне команд

Параллелизм на уровне команд

Низкоуровневый параллелизм достигается, в частности, вызовом нескольких команд за один тактовый цикл. Процессоры, в которых реализуется этот принцип, делятся на две категории: суперскалярные и VLIW. Те и другие уже упоминались в предыдущих главах, но сейчас этот материал нелишне повторить.

Схема суперскалярного процессора приведена на рис. 2.5. В наиболее распространенных конфигурациях команда должна быть готова к исполнению в определенной точке конвейера. Суперскалярные процессоры способны за один тактовый цикл вызывать несколько команд. Число фактически вызываемых команд зависит как от конструкции процессора, так и от текущей ситуации. Аппаратные ограничения диктуют максимальное число одновременно вызываемых команд — обычно от двух до шести. К тому же, если для выполнения команды нужен недоступный функциональный блок или еще не полученный результат выполнения другой команды, такая команда не будет вызвана даже при наличии физической возможности.
Читать дальше »

Ваш отзыв