Дипломированных специалистов «Информатика и вычислительная техника»


Состояние стека сопроцессора до выполнения операции записи в стек



Download 12,06 Mb.
Pdf ko'rish
bet240/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   236   237   238   239   240   241   242   243   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Состояние стека сопроцессора до выполнения операции записи в стек
сопроце
I
RO
st(0)
R1
st(1)
R2
st(2)
R3
st(3)
R4
st(4)
R5
st(5)
R6
st(6)
R7
st(7)
ре
с
Вершина стека
i номера I
стека поле top
ссора
SWR
I
000
|
I
ческие номера
гистров стека
Физические номера
регистров стека
сопроцессора
Вершина стека
Поле top
SWR
I
RO
 st(5)
R1
 st(6)
R2
 st(7)
R3
 st(0)
R5
 st(2)
R6
 st(3)
R7
 st(4)
Логические номера
регистров стека
сопроцессора
Состояние стека сопроцессора после выполнения операции записи в стек
Физические
сопроце
I
RO
st(7)
R1
st(1)
R2
st(2)
R3
st(3)
R4
st(4)
R5
st(5)
R6
R7
st(0)
ре
C(
Вершина стека
номера I
Поле top
хора
SWR
I
I
I
ческие номера
гистров стека
Физические номера
регистров стека
сопроцессора
Вершина стека
Поле top
SWR
|
RO
 st(6)
R1
 st(7)
R2
 st(0)
R3
 st(1)
R4
 st(2)
R5
 st(3)
R6
 st(4)
Логические номера
регистров стека
сопроцессора
Рис.
Физическая и логическая нумерации регистров стека сопроцессора
параметров подпрограмме. Для повышения гибкости подпрограмм (в разработке
и использовании) нежелательно привязывать их по передаваемым параметрам к ап-
паратным ресурсам (физическим номерам регистров сопроцессора). Гораздо удоб-
нее задавать порядок следования передаваемых параметров в виде логических но-
меров, поскольку такой способ передачи однозначен и не требует от разработчика
знания лишних подробностей о вариантах аппаратной реализации сопроцессора.
Логическая нумерация регистров сопроцессора, поддерживаемая на уровне систе-
мы команд, идеально реализует эту идею. При этом не имеет значения, в какой
физический регистр стека сопроцессора были помещены данные перед вызовом


452 Глава
Архитектура и программирование сопроцессора
подпрограммы, определяющим является только порядок следования параметров
в стеке. По этой причине подпрограмме достаточно знать не место, а только поря-
док размещения передаваемых параметров в стеке.
Перед тем как приступить к описанию команд и данных, с которыми работает
сопроцессор, отметим, каким образом «уживаются» между собой эти два разных
вычислительных устройства — процессор и сопроцессор. Каждое из них имеет свои
несовместимые друг с другом системы команд и форматы обрабатываемых дан-
ных. Несмотря на то что сопроцессор архитектурно представляет собой отдельное
вычислительное устройство, он не может существовать отдельно от основного про-
цессора. Ранее уже было отмечено, что первые модели процессоров Intel
i286, i386) и сопроцессоров (соответственно,
выполнялись как
отдельные устройства — сопроцессор при необходимости вставлялся в специаль-
ный разъем на системной плате. Начиная с модели i486 сопроцессор и основной
процессор производятся в одном корпусе и являются физически неделимыми, то
есть архитектурно это по-прежнему два разных устройства, а
— одно.
Процессор и сопроцессор, являясь двумя самостоятельными вычислительны-
ми устройствами, могут работать параллельно. Но этот параллелизм касается толь-
ко их внутренней работы над исполнением очередной команды. Как реализован
этот параллелизм, в чем его суть и особенности? Оба процессора подключены к об-
щей системной шине и имеют доступ к одинаковой информации. Инициирует про-
цесс выборки очередной команды всегда основной процессор. После выборки ко-
манда попадает одновременно в оба процессора. Любая команда сопроцессора имеет
код операции, первые 5 битов которого имеют значение
Когда код опера-
ции начинается этими битами, то основной процессор по дальнейшему содержи-
мому кода операции выясняет, требует ли данная команда обращения к памяти.
Если это так, то основной процессор формирует физический адрес операнда и об-
ращается к памяти, после чего содержимое ячейки памяти выставляется на шину
данных. Если обращение к памяти не требуется, то основной процессор заканчи-
вает работу над данной командой (не делая попытки ее
и приступает
к декодированию следующей команды из текущего входного командного потока.
Что же касается сопроцессора, то выбранная команда, как уже было отмечено, по-
падает к нему и к основному процессору одновременно. Сопроцессор, определив
по первым пяти битам, что очередная команда принадлежит его системе команд,
начинает ее исполнение. Если команда требует операнда в памяти, то сопроцессор
обращается к шине данных за чтением содержимого ячейки памяти, которое к это-
му моменту должно быть предоставлено основным процессором. Из этой схемы
взаимодействия следует, что в определенных случаях необходимо согласовывать
работу обоих устройств. К примеру, если во входном потоке сразу за командой
сопроцессора следует команда основного процессора, использующая результаты
работы предыдущей команды, то сопроцессор не успеет выполнить свою команду
за то время, пока основной процессор, пропустив сопроцессорную команду, вы-
полняет свою. Очевидно, что логика работы программы нарушается. Возможна
и другая ситуация. Если входной поток команд содержит последовательность из
нескольких
сопроцессора, то, очевидно, что процессор, в отличие от сопро-
цессора, проверит их очень
чего он не должен делать, так как обеспечивает
внешний интерфейс для сопроцессора. Эти и другие более сложные ситуации при-


Архитектура сопроцессора 453
водят к необходимости синхронизировать между собой работу двух процессоров.
В первых моделях процессоров подобная синхронизация проводилась програм-
мистом «вручную» путем вставки перед или после каждой команды сопроцессора
специальной команды WAIT или FWAIT. Работа данной команды заключалась в при-
остановке работы основного процессора до тех пор, пока сопроцессор не закончит
работу над последней командой. Начиная с модели процессора i486, подобная син-
хронизация выполняется командами WAIT/FWAIT, которые введены в алгоритм
работы большинства команд сопроцессора, и программисту нет необходимость за-
ботиться об этом явно. Но некоторые команды из группы команд управления со-
процессором (см. далее) имеют два варианта реализации — с синхронизацией (ожи-
данием) и без нее.
Из всего сказанного можно сделать важный вывод: использование сопроцессо-
ра является совершенно прозрачным для программиста. В общем случае програм-
мисту следует воспринимать сопроцессор как набор дополнительных регистров,
для работы с которыми предназначены специальные команды. Для эффективного
применения сопроцессора программист должен хорошо разобраться в структуре
регистров и логике их использования. Поэтому перед тем как приступить к рас-
смотрению команд и данных, с которыми работает сопроцессор, приведем описа-
ние структуры некоторых регистров сопроцессора.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   236   237   238   239   240   241   242   243   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish