Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.433


Таненбаум Э.- Архитектура компьютера. стр.433

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

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

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

Начнем с дублирования ресурсов (resource duplication). Как известно, некоторые ресурсы с целью организации программных потоков дублируются. Например, так как каждому программному потоку требуется индивидуальное управление, нужен второй счетчик команд. Кроме того, необходимо ввести вторую таблицу отображения архитектурных регистров (ЕАХ, ЕВХ и т. д.) на физические регистры; аналогичным образом, дублируется контроллер прерываний, поскольку обработка прерываний для каждого потока производится индивидуально.

Далее следует методика жесткого разделения ресурсов (partitioned resource sharing) между программными потоками. К примеру, если в процессоре предусмотрена очередь между двумя функциональными ступенями конвейера, то половину слотов можно отдавать потоку 1, другую половину — потоку 2. Разделение ресурсов легко реализуется, не ведет к дисбалансу и обеспечивает полную независимость программных потоков друг от друга. При полном разделении всех ресурсов один процессор фактически превращается в два. С другой стороны, может сложиться такая ситуация, при которой один программный поток не использует ресурсы, которые могли бы пригодиться второму потоку, но в отношении которых у него нет полномочий доступа. В результате ресурсы, которые в иной ситуации могли бы быть задействованы, простаивают.

Противоположность жесткого разделения — полное разделение ресурсов (full resource sharing). В этой схеме к нужным ресурсам может получить доступ любой программный поток, а обслуживаются они в порядке поступления запросов на доступ. Рассмотрим ситуацию, в которой быстрый поток, состоящий преимущественно из операций сложения и вычитания, сосуществует с медленным потоком, реализующим операции умножения и деления. Если команды вызываются


⇐ Предыдущая страница| |Следующая страница ⇒

.