Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ЭВМ и ПУ.doc
Скачиваний:
64
Добавлен:
16.03.2015
Размер:
1.16 Mб
Скачать

4.6.Совместная работа двух процессоров в системе.

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

4.6.1.Синхронизация по командам.

Если сопроцессор занят выполнением команды, а центральный процессор выбирает для выполнения следующую команду - опять команду сопроцессора, то центральный процессор не должен ее передавать сопроцессору, а должен подождать. Следовательно, перед каждой командой сопроцессора в программе должна быть специальная команда центрального процессора, которая проверяет занятость сопроцессора и переводит его в состояние ожидания, если надо. Такой командой является команда FWAIT, а вставляет ее ассемблер (или компилятор языка высокого уровня).

Команда FWAITне вставляется перед административными командами в мнемокоде которых есть букваN,FNXXX... Это так называемые команды без ожидания.

Происходит это по следующей схеме (см. рисунок 1). Некоторые административные команды могут выполняться устройством управления, а не численным операционным устройством. Поэтому перед такими командами не надо проверять бит Bв регистре состояния, который показывает занятость численного операционного устройства.

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

Структурная схема сопроцессора

Устройство управления

Численное операционное устройство

Основной процессор

Регистр управления

Регистр состояния

Указатели ОС

Тэги

Числовой стек

Рисунок 4.1