Полная версия

Главная arrow Информатика arrow Архитектура ЭВМ и систем

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

Способы повышения производительности

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

  • нерасширяемая система, введение процессорных элементов в которую не повышает ее производительности. Если, например, систему из 4 процессорных элементов, соединенных с помощью шины (17.10,а), увеличить в 4 раза (рис. 17.10,6), то производительность не повысится, поскольку в 4 раза снизится пропускная способность шины;
  • расширяемая система, введение процессорных элементов в которую приводит к повышению ее производительности. Проделаем то же действие с системой, у которой цепь межсоединений имеет топологию решетки, или сетки (рис. 17.10,в,г). В этом случае добавление новых процессорных элементов приводит к появлению новых каналов, поэтому при расширении системы суммарная пропускная способность на каждый процессор возрастает. Идеальной расширяемой системой выступает такая система, которая при добавлении новых процессорных элементов сохраняет среднюю пропускную способность на каждый элемент и постоянное среднее время ожидания. Наилучшими с этой точки зрения системами являются системы с топологией гиперкуба.

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

Соединение процессорных элементов с использованием шины (а, б) и в виде сетки (в, г)

Рис. 17.10. Соединение процессорных элементов с использованием шины (а, б) и в виде сетки (в, г)

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

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

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

Многопоточная обработка. В большинстве современных систем поддерживается мультипрограммирование, при котором несколько процессов протекают одновременно или создается иллюзия параллельной работы на основе разделения времени. Если во втором случае переключение между процессами совершать достаточно быстро, например предоставляя каждому из них его собственную схему распределения памяти и аппаратные регистры, то, когда один процесс блокируется и ожидает прибытия данных, аппаратное обеспечение может быстро переключиться на другой процесс. В предельном случае процессор выполняет первую команду из потока 1, вторую команду из потока 2 и т.д. Таким образом, процессор всегда занят, даже при длительном времени ожидания в отдельных потоках.

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

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

 
<<   СОДЕРЖАНИЕ   >>