andrey

Путь к Файлу: /Организация ЭВМ / Лекции ВМ-91 / Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 / Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91.doc

Ознакомиться или скачать весь учебный материал данного пользователя
Скачиваний:   0
Пользователь:   andrey
Добавлен:   13.01.2015
Размер:   1.3 МБ
СКАЧАТЬ

5.4.3 Свойства корректной программной обработки прерывания

Мы начинаем с некоторого определения. Сначала, мы определим уровень прерываний il в ситуациях, где сохраняют последовательности - не interrupted:2(Мы покажем позже, что это бывает).

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Последовательность команд SAVE H RESTORE называется образцом ISR(j) если в течении H уровень прерывания равен: il=j.

Она называется не прерывающимся выполнением ISR(j) если уровень прерывания подчиняется

                            il   =   j   в течении save и restore

il   £   j   в течение H.

Таким образом, в течение выполнения ISR(j) обработчик H(j) может быть прерван. Мы не рассматриваем бесконечное выполнение.

Предположим, что H не заканчивается последовательностью restore уровня  прерывания j, тогда

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

называется прерывающимся выполнением ISR(j) если

il          =         j           в течении SAVE1

il          <=      j           в течении H

il          <=      2          в течении SAVE2, H' и RESTORE.

 

Мы называем выполняющуюся процедуру обработки прерываний правильно вложенной или проще вложенной, если

1. прерван не кодовый сегмент save или restore,

2. последовательность кодовых сегментов save и restore формирует начальный сегмент соответствующей скобочной структуры, и если

3. парные скобки принадлежат примеру некоторого ISR(j) в следующем значении: Пусть L и R парные последовательности save и restore. Пусть H состоит из команд между L и R

(a) которые не принадлежат последовательностям save и restore, и

(b) которые не включаются парными скобками внутрь L и R.

Тогда L H R образец некоторого ISR(j).

Мы называем выполнения совершенно вложенными (perfectly nested) если они правильно вложены и последовательность saves и restores формирует соответствующую скобочную структуру. В следующих доказательствах мы установим другие вещи

 

Теорема 5.2

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

 

Мы сначала установим свойства совершенно вложенного выполнения программ обработки прерывания в лемме 5.3. В лемме 5.4 мы покажем индукцию существования структуры скобки.

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

 

            Лемма 5.3

Пусть механизм прерывания подчиняется программным ограничениям 1 - 3. Рассмотрим совершенное вложенное выполнение ISR(j). Последовательность выполняемых команд имеет форму

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

тогда мы имеем:

1. Если выполнение ISR(j) не прервано, тогда стек прерываний IS хранит одно и то же количество кадров до и после ISR(j), и сегменты IS, зарезервированные для регистров HER, остаются неизменными, т.е.,

ISPa-1 = ISPd    и   IS.EHRa-1 = IS.EHRd .

2. Точность. Если ISR(j) не прервано, выполнение продолжается с

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

С масками

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

ДОКАЗАТЕЛЬСТВО

Доказательство индукцией по числу n прерываний, которые прерывают выполнение ISR(j).

n = 0. Выполнение ISR(j) непрерывно. Так как прерывание j является непрерывным, save размещает новый кадр на стеке IS а restore снимает один кадр. Обработчик H(j) сам не изменяет указатель стека (ограничение 1), таким образом

ISPa-1 = ISPd .

Согласно ограничению 1, поля EHR на стеке прерываний IS пишутся только SAVE. Однако SAVE просто модифицирует один кадр IS, который удаляется restore. Таким образом

IS.EHRa-1 = IS.EHRd

и требование 1 выполняется. Что касается требования 2, мы покажем только точность масок SR; точность PC может быть показана тем же путем.

SRd      =   ESRd-1                          по определению rfe

=   IS.TOP.ESRc-1       по определению restore

 

где IS.TOP означает верхний кадр стека IS. Сам обработчик не модифицирует ни указатель стека ISP, ни поля EHR на стеке IS (ограничение 1), из этого следует

IS.TOP.ESRc-1    =   IS.TOP.ESRb

                           =   ESRa-1       по определению save ,

и по определению JISR следует, что

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

В шаге индукции мы решаем от n до n+ 1. Выполнение ISR(j) прерывается n+1 прерыванием, и коды SAVE и RESTORE соответствующих образцов  ISR формируют надлежащую скобочную структуру. Так как save и restore непрерывны, существует m верхне-уровневых пар скобок в потоке команд обработчика H(j); каждая пара соответствует примеру ISR( jr ):

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Каждое из ISR( jr ) прерываний  согласно индукционной гипотезы возвращает указатель ISP и поля EHR на стек неизмененными:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Так как команды обработчика H (j) не обновляют эти данные, то для указателя ISP следует

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Тоже верно для полей EHR стека прерываний:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Так как restore удаляет кадр, добавленный SAVE, и так как save только обновляет поля EHR в верхнем кадре, требование 1 выполняется для n + 1. Точность ISR(j) может быть выражена подобно случаю n = 0, за исключением равенства

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

 

Что эквивалентно утверждению 5.2

Лемма 5.4

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

Док-во выполняется за три шага:

1. save никогда не прерывается: Согласно программному ограничению 2, коды save и restore избегают любого немаскируемого внутреннего прерывания. Сброс – единственное немаскируемое внешнее прерывание, но нас интересует только не прерывающееся выполнение. Таким образом, SAVE и RESTORE могут прерываться только маскируемыми прерываниями.

Если команда Ii вызывает прерывание, все маски очищаются, т.е., SRi = 0, и инициализируется переход на ISR: JISRi = 1. В коде save маски обновляются только последней командой. Так как новые маски применяются к более поздним командам, save также не может быть прервано маскируемыми прерываниями.

2. Код restore избегает немаскируемых прерываний, и только последняя команда обновляет регистр состояний. Таким образом, restore не может быть прервано, если оно начинается с SR = 0. Последняя команда любого non-aborting обработчика прерываний – специальное перемещение

SR := GPR[0] = 0.

Если это специальное перемещение не прерывается, тогда restore также не прерывается.

3. Пусть код restore включает команды R1 ... RS. Обратите внимание, что конструкция процедуры обработки прерываний каждого примера ISR стартует с save и – в случае если не прерывается - она выполняет позже точно одну первую команду R1 из последовательности restore. Поэтому, в выполняющейся процедурой обработки прерываний последовательности saves (которая никогда не прерывается) и команды R1 формируют начальный сегмент соответствующей скобочной структуры.

В не прерывающемся выполнении, мы обозначим через Rn1 энное нахождение R1. Мы докажем индукцией по n, что до Rn1

• кодовый сегмент restore всегда стартует с SR = 0 (следовательно, он не прерывается)

• кодовые сегменты save и restore формируют начальную последовательность соответствующей скобочной структуры, и

• парные скобки принадлежат  выполнению некоторого ISR(j).

Для n = 1 save должно быть левее первого R1 . Рассмотрим сначала такое save слева от R11 . Тогда, эти save и R11 принадлежат к непрерывному примеру ISR(j). Таким образом, R11 стартует с SR = 0 и первый RESTORE является непрерывным.

Для шага индукции рассмотрим R1n+1. Есть n команд Ri1 слева. По индукционной гипотезе кодовые сегменты save и restore до Rn1 формируют начальную последовательность соответствующей скобочной структуры с парными скобками, принадлежащими выполнению этого ISR(j). По лемме 5.3, эти выполнения точны. Так как последовательность SAVES и R1s формируют начальный сегмент скобочной структуры, мы можем объединить R1n+1 с предшествующей save кодовой последовательностью L . Пусть H' – последовательность команд между L и R1n+1. Создадим H из H' отменив все выполнения соответствующего ISR(j). Поскольку эти выполнения точны, мы имеем в течении H постоянный уровень прерываний

il = i,

таким образом, обработчик H(i) выполняется в течение H.

Пусть ISR(jn) означает образец ISR, который принадлежит R1n. Тогда команда R1n+1 непосредственно предшествует

(a) специальному перемещению I с SR := 0, или

(b) специальному перемещению I сопровождаемому ISR(jn).

Первый случай легкий (смотри n = 1). Во втором случае, ISR(jn) прерывает специальное перемещение, и прерывание jn имеет тип continue. Из-за точности ISR(jn), R1n+1 начинается с маской SRum = 0, и (n+ l)  блок restore не прерывается.

 

Лемма 5.5

Приоритетный критерий. Для допустимых процедур обработки прерываний это означает:

1. В течении выполнения ISR(j), маскируемые прерывания i при i >= j маскируются все время.

2. ISR(j) может прерываться только прерываниями  i < j высшего приоритета.

 

Согласно лемме 5.4, коды save и RESTORE могут прерываться только сбросом. Таким образом, мы сосредотачиваемся на обработчиках прерываний. Для любого немаскируемого прерывания j < 6 второе требование следует непосредственно из ограничения 2. Для маскируемых прерываний j >= 6 мы докажем требования индукцией по числу n прерываний которые прерывают обработчик H(j).

* n = 0: ISR всегда начинается с SR = 0, из-за сигнала JISR. ISR модифицирует маски только специальным перемещением movi2s или командой rfe. Так как rfe используется только как последняя команда ISR (ограничение 2), у нее нет влияния на маски используемые самой ISR. В случае специального перемещения SR:= R, бит R[i] должен быть нулем для любых i >= j. Таким образом, маскируемые прерывания маскируются правильно. Из-за определения причины маскируемых прерываний команды Il

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

и определения уровня прерываний

ill = min{j' | MCA[j']l = 1},

ISR(j) не может быть прервано маскируемыми прерываниями j' >= j, и требование выполняется.

* n > 0: Обработчик H(j) прерывается n раз, и коды save и restore формируют соответствующую скобочную структуру. Таким образом, последовательность команд ISR(j) имеет следующую форму

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

для любых m <= n. Команды, которые принадлежат коду обработчика H(j) не размаскируют прерывания j’ при j' <= j. Из-за точности ISR, любые ISR( jr ) возвращают маски SR поставленные этому регистру ESR. Индукцией по m тогда следует, что прерывание jr имеет более высокий приоритет, чем j,т.е., jr < j.

Так как любое ISR( jr ) прерывается самое большее n - 1 раз, применима индукционная гипотеза. ISR( jr ) сохраняет все прерывания j' с j' >= jr маскируемыми, в особенности, с j' >= j

 

Согласно теорема 5.2 и лемме 5.5.

 

Теорема 5.6 

Не прерывающееся выполнения допустимой процедуры обработки прерываний – совершенно вложенные.

 

ДОКАЗАТЕЛЬСТВО Пусть LHR – не прерывающееся выполнение ISR(j), где L – сохраняющая последовательность и R – восстанавливающая последовательность. По теореме 5.2, последовательности saves и restores в LHR – начальные сегменты скобочной структуры. Если скобки L и R - парные, тогда последовательности save и restore в H формируют скобочную структуру. Следовательно, скобки в LHR формируют скобочную структуру и LHR – совершенно вложен.

Предположите, что R соединен с левой скобкой L ' с право от L:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Тогда по лемме 5.5, уровень прерывания непосредственно перед L' – больше чем  j, и LHR – не непрерывающаяся последовательность.   .

Согласно лемме 5.5, ISR прерывания j > 0 может быть прервано только прерыванием более высокого приоритета. Таким образом, может быть самое большее один кадр на стеке IS для каждого уровня прерываний j > 0. Сброс может прервать даже ISR(0). Однако, при сбросе ISR не размещает новый кадр, стек IS вместо этого является очищенным. Следовательно, размер стека прерываний IS ограничен; ISR использует самое большее 32 кадра.

Подобно многим программным протоколам, для механизма прерываний желательна справедливость. В этом контексте справедливость означает, что обрабатывается каждое прерывание. Из-за чисто приоритетной схемы это не может всегда достигаться. Рассмотрим случай, когда сигналы событий двух внешних прерываний ev[15] и ev[17] становятся активными в тоже время, когда внешнее прерывание ev[16] происходит всякий раз, когда покидаем ISR(15) и наоборот. При этих условиях, прерывание 17 обламывается прерываниями 15 и 16. Таким образом, справедливость и чисто приоритетная схема не идут вместе. Тем не менее, по крайней мере хотелось бы гарантировать, что ни одно внутреннее прерывание не потеряется.

 

Лемма 5.7

Истина. Пусть механизм прерывания, удовлетворяют условиям программных реакций связи. Каждое внутреннее прерывание j, которое происходит в команде Ii, и которое не замаскировано, получает обслуживание в команде Ii+1 или команде Ii, повторено после ISR которое начинается c командой Ii+1.

 

ДОКАЗАТЕЛЬСТВО

Пусть команда Ii вызывает внутреннее прерывание j, т.е., ev[j]i = 1. тогда бит причины CA[j]i также активируется. Согласно предположению леммы, j - немаскируемое или размаскированое (SR[j]i-1 = 1). В любом случае, соответствующий бит MCA установлен и инициирован переход на ISR. Таким образом, Ii+1 – первая команда процедуры ISR(k), где k = ili означает уровень прерывания после Ii . Из-за определения уровня прерываний, k <= j. Для k = j, требование следует немедленно. Для k < j, прерывание k – внешнее или внутреннее. В случае внешнего прерывания, k должен быть сбросом (ограничение 3) который прерывает выполнение обслуживания любых рассматриваемых прерываний. Если k – внутреннее прерывание, оно имеет тип abort или repeat из-за требования 3. Таким образом, ISR(k) обслуживающее любое рассмотренное прерывание прерывает выполнение, или после ISR(k), выполнение продолжается с команды Ii .

Если ограничение 3 слабое, полнота механизма прерываний в значении леммы 5.7 не может быть гарантирована. Примем, что команда Ii является причиной двух внутренних прерываний j и j', и что j < j'. Если j имеет тип continue, ISR(j) обслужит только j и продолжит выполнение с команды, которая следует за Ii в случае JISRi = 0. Таким образом, прерывание j' потеряется. Если прерывание j имеет тип repeat, ISR(j) также не обслуживает прерывание j'. Однако, команда Ii повторится после ISR, и ошибка, которая соответствует прерыванию j' – может произойти снова.

 

 

5.5  Аппаратные средства для реализаций прерываний.

В этом разделе мы сконструируем аппаратуру прерываний для подготовленной последовательной архитектуры DLX согласно спецификации раздела 5.2. Набор команд архитектуры (ISA) расширяется

• файлом регистров специального назначения SPR,

• регистром S, который буферизирует данные, читаемые из SPR,3 - Регистры A и В играют здесь роль файла регистров GPR

• схемой для сбора прерывающих событий,       

• механизмом вызова ISR, который в случае активации событий прерываний помещает параметры прерывания в файл регистров SPR и пару адресов (SISR, SISR + 4) в регистры DPC и PC', и

• управлением, реализующим команды из таблицы 5.4.

 

Расширение ISA требует изменений в путях данных и в управлении (раздел 5.5.6). Пути данных получают дополнительное окружение CAenv, которое собирает сигналы прерывающих событий и определяет причину прерываний (раздел 5.5.5). За исключением окружения PC, регистрового файла окружения RFenv и схемы Daddr, остальные пути данных подвергаются только незначительным изменениям (раздел 5.5.4). Рисунок 5.1 изображает верхнеуровневые схемные решения расширенных путей данных DLX. Их стоимость может быть выражена как

 

cdp = CPCenv + CIMenv + CIRenv + CEXenv + CDMenv + CSH4Lenv        

     +   CRFenv + CDaddr + CCAenv+Cbuffer + 8*Cff(32).     

 

Заметим, что из аппаратных средств прерывания, Reset, в основном исполняет две задачи, это приводит к аппаратной инициализации и повторно запускает выполнение команды. В DLX конструкция с аппаратными средствами прерывания, сигнал сброса непосредственно инициализирует управление и вызывает прерывание. Механизм прерывания тогда заботится о повторном запуске, сообщают  JISR, берет место сброса сигнала.

 

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

 

Рисунок 5.1 Тракт данных подготовленных последовательных конструкций с подеживанием прерываний.

 

 

5.5.1 Среда PСenv.

Среда PCENV рисунок 5.2 все еще использует замедленный механизм PC, но снабжен дополнительным регистром DDPC (delay delay PC) который буферизует PC текущей команды.

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Функциональные возможности среды также должны быть расширены, чтобы объяснить новую команду управления rfe и поддерживать переход к ISR. Без обработки прерываний, PC на reset. Теперь reset обрабатывается подобно любому другому прерыванию, и поэтому, PC инициализированный

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Рисунок 5.2 Среды PCENV с поддержкой прерываний

на JISR, вместо:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Если бы не команда rfe, значения PC’’i и DPC’’i вычислялись бы как прежде:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Таким образом, новое вычисление PC требует двух дополнительных переключений, управляемых сигналом rfe. Два регистра и DDPC модифицированы, в текущее время, сообщают о PCce, принимая во внимание, что PC’ и DPC также модифицированы на переход к ISR:

 Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Эти изменения не имеют никакого влияния на звено регистров, ни на связующей логике PCGLUE, которая генерирует сигнал bjtaken. Стоимость среды теперь

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Два исключение PC снабжается средой RFENV. Пусть csID обозначают управляющие сигналы, которые управляют стадией идентификации, включая сигнал JISR;

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Рисунок 5.3 Схемы Daddr

 

И пусть Аcon (csID) обозначает их задержку накопления. Среда PCENV тогда требует продолжительности цикла

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

 

5.5.2 Схема Daddr

Схема Daddr состоит из двух подсхем Caddr и Saddr. Как и прежде, схема Caddr генерирует адрес назначения Cad универсального блока регистров РОН. схема Saddr (рисунок 5.3) устанавливает исходный адрес Sas и адрес назначения, Sad из специального блока регистров цели SPR.

Два адреса блока регистров SPR обычно определяются битами SA = IR[10: 6]. Однако, при rfe команде, состояние исключения ESR скопировано в регистр состояния, SR. Согласно таблице 5.3, регистры ESR и SR имеют адрес 1 и 0, соответственно. Таким образом, схема Saddr выбирает исходный адрес и адрес назначения блока регистров SPR как

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Схема Daddr снабжает три адреса Cad, Sas и Sad со следующей стоимостью и задержкой:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

 

 

 

 

 

5.5.3 Среда Блока регистров RFENV

DLX архитектура теперь включает два блока регистров, один для универсальных регистров, РОН и один для специальных целей - SPR. Оба блока регистров формируют среду RFENV.

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Среда GPRENV универсального блока регистров имеет те же самые функциональные возможности как и прежде. Дополнительные регистры SPR проведены в блоке регистров с расширенным режимом доступа. Специальные команды movi2s перемещения и movs2i обращаются к этим регистрам как к регулярному блоку регистров, который разрешает одновременно одно чтение и одну операцию записи. Однако, JISR все регистры читаются и модифицируются параллельно. Перед описанием среды SPRENV подробно, мы сначала вводим специальный блок регистров с таким расширенным режимом доступа.

 

Специальный Блок регистров

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

· флажок w определяет, выполнение операции записи

· адреса adr и adw определяют адрес чтения и записи блока регистров

· Din и Dout определяют ввод данных и выходной сигнал блока регистров.

Кроме того, специальный блок регистров SF снабжает запись и чтение порта для каждого из регистров. Для любого регистра SF [r],

•Do[r], определяет выходной сигнал порта чтения

•Di [r] определяет данные, которые будут записаны в регистр SF[r] активируют флаг записи w[r].

В случае конфликта адресов, такая специальная запись имеет приоритет доступа для записи, точно установленный адресом adw. Таким образом, данные d[r], которые будут записаны в  SF[r], эквивалентны

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Регистр модифицирован в случае w[r] = 1 по адресу r:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Рисунок 5.4 Специальный блок регистров SF размера (К х n)

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Рисунок 5.5 Дешифратора адреса AdDec SF блока регистров

Мы не определяем выходной сигнал Dout специального блока регистров цели, если регистр модифицирован и считан одновременно.

 

Реализация

Рисунок 5.4 изображает реализацию примера специального блока регистров SF размера (K x n). Мультиплексор перед регистром SF[r] выбирает присущий вход в зависимости от специальной записи w [r].

Схема дешифратора адреса AdDec в рисунке 5.5 содержит два k-бита декодера (k=[logK]). Адрес чтения adr декодирован в биты выбора sl[K - 1:0]. Базируясь на этом декодированном адресе, электросхема выбора DataSel выбирает собственное значение стандартного вывода данных Dout. Для той цели, данные Do[r],  замаскированы битом выбора sl[r]. Замаскированные данные тогда объединены n-or-trees разрезаемым на биты способом:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Адрес записи adw декодирован в биты выбора К. Сигналы clock регистров К сгенерированы от этих сигналов согласно уравнению 5.3. Таким образом, стоимость целого блока регистров SF укладывается в

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91    

Рисунок 5.6 Среда SPRENV конструкции DLXZ

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

 Видимые порты чтения имеют нулевую задержку, принимая во внимание, что стандартный вывод Dout отсрочен дешифратором адреса и электросхемой выбора:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Для записи, специальный блок регистров имеет время доступа DSFw,  запись сигнализирует w и w[] имеет задержку Dsf (w; ce):

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

 

Среда SPRENV

Ядро специальной среды регистра цели SPRENV (рисунок 5.6) - специальный блок регистров размера 6 x 32. Названия этих регистров SPR[5:0] перечислены в таблице 5.3. Среда управляется записью SPRW [5: 0] и сигналами JISR, repeat и sel.

Стандартная запись и чтение портов только с помощью специальных команд movi2s перемещения, movs2i и rfe команде. Стандартный вывод данных блока регистров приравнивает

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

И в случае записи SPRw = 1, блок регистров модифицирован как

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Согласно спецификации раздела 5.2, регистры SPR должны также быть модифицированы при команде ловушки и переходе к ISR. Это прерывание выполняет модификацию через шесть видимых портов записи специального блока регистров.

Так как команда ловушки всегда вызывает прерывание, то есть trapi=1 SPR регистрируют JISRi = 1, требуz специальной записи на JISR.Сигналы записи поэтому установлены

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Во время JISR, регистр состояния SR очищен. ECA регистр буферизует маскированную причину MCA и регистр Edata получает C.4. В ловушке, С.4 постоянно снабжает ловушку, при загрузке или сохранение, эффективным адресом памяти:

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Выбор ввода Di[1] более усложнен. Если команда I, прервана, новое значение ESR зависит от типа прерывания и из типа Ii

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Иначе.

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Среда SPRENV выбирает присущий ввод

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

С

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Согласно спецификации JISR, если команда Ii, прервана двумя исключениями, PC должны быть установлены в

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Принимая во внимание, что для прерывания типа abort, значение исключения PC не имеют значения. Среда PCENV генерирует значения PCui,DPCui  и

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

которые переданы в конвейер вместе с командой Ii. Исключая rfe команду,

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

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

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

Среда SPRENV состоит из специального блока регистров, электросхемы SPRSEL, которая выбирает входы видимых портов чтения, и которая связующей логикой генерирует сигнал sel. Таким образом, стоимость, выполнения

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

Весь ввод данных обеспечивается регистрми в нулевой задержке. Пусть входы управления имеют задержку Acon (csSPR). Выходной Sin и входной Di тогда имеют накопленную задержку

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91

И доступ для записи требует продолжительности цикла

Глава5_5.4.3-5.5.3_Селютина_Миронов_ВМ_91 

 

 

Наверх страницы

Внимание! Не забудьте ознакомиться с остальными документами данного пользователя!

Соседние файлы в текущем каталоге:

    На сайте уже 21970 файлов общим размером 9.9 ГБ.

    Наш сайт представляет собой Сервис, где студенты самых различных специальностей могут делиться своей учебой. Для удобства организован онлайн просмотр содержимого самых разных форматов файлов с возможностью их скачивания. У нас можно найти курсовые и лабораторные работы, дипломные работы и диссертации, лекции и шпаргалки, учебники, чертежи, инструкции, пособия и методички - можно найти любые учебные материалы. Наш полезный сервис предназначен прежде всего для помощи студентам в учёбе, ведь разобраться с любым предметом всегда быстрее когда можно посмотреть примеры, ознакомится более углубленно по той или иной теме. Все материалы на сайте представлены для ознакомления и загружены самими пользователями. Учитесь с нами, учитесь на пятерки и становитесь самыми грамотными специалистами своей профессии.

    Не нашли нужный документ? Воспользуйтесь поиском по содержимому всех файлов сайта:



    Каждый день, проснувшись по утру, заходи на obmendoc.ru

    Товарищ, не ленись - делись файлами и новому учись!

    Яндекс.Метрика