close

Вход

Забыли?

вход по аккаунту

?

отчет 6 лаба оргэвм прерывания

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
"Вятский государственный университет"
(ФГБОУ ВПО "ВятГУ")
Факультет автоматики и вычислительной техники
Кафедра электронных вычислительных машин
СИСТЕМА ПРЕРЫВАНИЯ ЭВМ
Отчёт по лабораторной работе №3 по дисциплине
"Организация ЭВМ и систем"
Выполнил студент группы ВМ-32 ____________/Митрак Е.И./
Проверил преподаватель:___________________/Агалаков Е.В./
Киров 2013
Постановка задачи
Разработать архитектуру, алгоритм и микропрограмму командного цикла ЭВМ, составить и выполнить программы для решения следующих задач: 1) Вычисление суммы S элементов Ti массива размерности N (S=∑ Ti), где Ti >0 и S<32768.
2)Обработка поступающих в ЭВМ запросов на прерывание Zi. Одновременно может поступать до восьми запросов на прерывание. Запросы на прерывание могут быть замаскированы с помощью 8-разрядной маски М, записываемой в регистр маски RM (запрос маскируется по единичному значению соответствующего разряда маски).
3) Выполнение с помощью одной из программ обработки прерывания (программа P0) алгоритма нахождения номера старшего бита комбинации "10".
Кроме основной программы P и программ обработки прерываний Pi, при запуске ЭВМ выполняется программа PS, выполняющая необходимые начальные установки и передающая управление основной программе. Каждая программа должна иметь маску, с помощью которой она в той или иной степени может быть защищена от прерываний (PS должна быть защищена от всех прерываний, в программе P разрешены все прерывания). Необходимо построить диаграмму прерываний, исходя из анализа работы ЭВМ для заданного начального состояния системы прерываний. Начальное состояние системы прерываний.
ОбъектУсловное обозначениеЗначениеМаска программы РМ0000 0000Маска программы Р0 М00000 0001Маска программы Р1 М10101 0111Маска программы Р2 М20100 1101Маска программы Р3 М31011 1100Маска программы Р4 М40011 0110Маска программы Р5 М50111 0011Маска программы Р6 М60111 0010Маска программы Р7 М71110 0110Маска программы РS МS1111 1111Множество запросовZ11111 0111
Граф-схема алгоритма основной программы:
Граф-схема алгоритма прерывающей программы Р0:
Структурная схема аппаратуры прерываний:
Описание архитектуры ЭВМ
Форматы данных: данные в задаче являются целыми числами, изменяющимися в пределах от 0 до 32767.
Программно-доступные регистры: в состав ЭВМ входят три регистра общего назначения r0-r5, программный счётчик РС (r6), регистр признаков RP (r7), содержащий признак нуля PZ, регистр указателя стека rSP (r8), регистр адреса таблицы прерываний rATI (r9), а также 8-разрядный регистр маски RM.
Регистры ЭВМr0:X Операнд Xr1:T Суммируемые числа T r2:Z Результат Zr3:S Сумма Sr4:N Число повторений цикла Nr5:AM Адрес массива AMr6:PC Программный счетчикr7:PSRPPZ Регистр признаковr8:rSP Регистр указателя стекаr9:rATI Регистр адреса таблицы прерываний
RM:M Регистр маски программы
Таблица 1 - Система команд
НаименованиеМнемоникаОписаниеПризнакиPZPSСУММИРОВАНИЕADD r r*r:= r+r*, PC:=PC+1++ВЫЧИТАНИЕSUB r r*r:= r-r*, PC:=PC+1++ДОБАВЛЕНИЕ СAD r Cr:= r+C, PC:=PC+1++ВЫЧИТАНИЕ СSB r Cr:= r-C, PC:=PC+1++ЧТЕНИЕ В РЕГИСТРLD r Ar:= M[A], PC:=PC+1++ЗАПИСЬ РЕГИСТРАMV r AM[A]:= r, PC:=PC+1--ЧТЕНИЕ В РЕГИСТР
с индексациейLDI r (r*)+r:= M[r*], r*:= r*+1;
PC:=PC+1++СДВИГ ВЛЕВОSHL r r:=L1(r).0;
PC:=PC+1++ЧТЕНИЕ ИЗ СТЕКАPOP r (rSP)+rSP:=rSP+1;
r:=M[rSP], PC:=PC+1--ПЕРЕХОДBR APC:=A--ПЕРЕХОД, ЕСЛИ НУЛЬBEQ AЕсли PZ=0, то PC:=A, иначе PC:=PC+1--ОСТАНОВHLT APC:=A, остановПЕРЕХОД, ЕСЛИ ПЛЮСBMI AЕсли PS=0, то PC:=A, иначе PC:=PC+1--ЗАГРУЗКА МАСКИLM ARM:= M[A], PC:=PC+1--ОСТАНОВHLT APC:=A, останов--ПЕРЕХОД, ЕСЛИ НЕ НУЛЬBNQ AЕсли PZ=1, то PC:=A, иначе PC:=PC+1
--ЗАПИСЬ В СТЕКPUSH r (rSP)- M[rSP]:=r;
rSP:=rSP-1, PC:=PC+1--ВОЗВРАТ ИЗ ПРЕРЫВАЮЩЕЙ ПРОГРАММЫIRETrSP:=rSP+1, RM:=M[rSP];
rSP:=rSP+1, PC:=M[rSP]-- Служебная программа начальных установок
LM АMSЗагрузка маски служебной программы
LD rSP ASPЗагрузка указателя стека SP
LD rATI ATIЗагрузка адреса таблицы прерываний ATI LD PC APЗагрузка начального адреса программы P
Основная программа
LM AMPЗагрузка маски программы P
LD r5 AAMЗагрузка адреса массива AM в регистр r5
LD r4 ANЗагрузка числа повторений цикла N в регистр r4
SUB r3 r3 Очистка регистра r3 для суммы S
m2LDI r1 (r5)+Чтение числа T[i] в регистр r1
ADD r3 r1Суммирование
SB r4 "1"Вычитание единицы из числа повторений цикла
BNQ m1Если PZ=1 (r4=0), то переход на метку m1
BR m2Переход на метку m2
m1MV r3 ASЗапись в память суммы S по адресу AS
HLT SAЗагрузка PC и останов
Программа обработки прерывания Р0:
LM AM0Загрузка маски программы
PUSH RPСохранение содержимого регистра RP
PUSH r0Сохранение содержимого регистра r0
PUSH r2Сохранение содержимого регистра r2
SUB r2 r2Очистка регистра r2 для роезультата Z
LD r0 XЗагрузка числа Х в регистр r0
AD r2 15Запись константы в регистр r2
M1:AD r0 0Сложение операнда Х с нулем
BMI m2Если PS=0, то переход на m2
SHL r0Сдвиг r0 влево на один разряд
BMI m3Если PS=0, то переход на m3
BR m4Переход на метку m4
M2:SHL r0Сдвиг r0 влево на один разряд
M4:SB r2 1Вычитание из r1 единицы
BEQ m1Если PZ=0, то переход на m1
SB R2 1Вычитание из r1 единицы
M3:MV r2 ASЗапись результата в ячейку памяти
POP r2Восстановление содержимого регистра r2
POP r0Восстановление содержимого регистра r0
POP RPВосстановление содержимого регистра RP
IRETВозврат из прерывающей программы
Программа обработки прерывания Pi (i>0)
LM AMiЗагрузка маски программы
IRETВозврат из прерывающей программы
В программе приняты следующие обозначения ячеек памяти:
AP - начальный адрес основной программы Р;
AMS - маска служебной программы;
ATI - адрес таблицы прерываний;
AMP - маска программы Р;
AN - число повторений цикла N;
AASP - адрес начала накопителя стека;
AAM - начальный адрес массива исходных данных;
AS - адрес ячейки, в которую записывается сумма S;
SA - начальный адрес программы суммирования номеров.
Таблица 2 - Коды операций
НаименованиеМнемоникаКод операцииАдрес первой МКЗАГРУЗКА В РЕГИСТРLD 0811ВЫЧИТАНИЕSUB 0117ЗАГРУЗКА В РЕГИСТР
с индексациейLDI 021BСДВИГ ВЛЕВОSHL1332СЛОЖЕНИЕ С КОНСТАНТОЙAD 0934ПЕРЕХОД, ЕСЛИ НОЛЬBEQ 0424ПЕРЕХОДBR 0525ПЕРЕХОД, ЕСЛИ МИНУСBMI1027СЛОЖЕНИЕADD 0602ВЫЧИТАНИЕSB 0B30ЧТЕНИЕ ИЗ СТЕКАPOP0721ОСТАНОВHLT 002AЗАПИСЬ РЕГИСТРАMV С14ЗАГРУЗКА МАСКИLM 0E49ВОЗВРАТ ИЗ ПРЕРЫВАЮЩЕЙ ПРОГРАММЫIRET0D4CЗАПИСЬ В СТЕКPUSH 0F39ПЕРЕХОД, ЕСЛИ НЕ НУЛЬBNQ0334
Распределение памяти программ и данных
Таблица 3 - Распределение памяти (служебная программа, таблица прерываний и маски программ)
АдресКодМнемоникаКомментарийСлужебная программа000005SAНачальный адрес служебной программы0100FFMSМаска служебной программы02FFFFASPНачальный адрес области памяти стека03000AATIНачальный адрес таблицы прерываний040013APНачальный адрес основной программы P051101LM АМSЗагрузка маски служебной программы06B802LD rSP ASPЗагрузка указателя стека SP07B903LD rATI ATIЗагрузка адреса таблицы прерываний08B604LD PC APЗагрузка начального адреса программы P09Свободная ячейка памятиТаблица прерываний0A0043AP0Адрес прерывающей программы P00B0060AP1Адрес прерывающей программы P10C0062AP2Адрес прерывающей программы P20D0064AP3Адрес прерывающей программы P30E0066AP4Адрес прерывающей программы P40F0068AP5Адрес прерывающей программы P510006AAP6Адрес прерывающей программы P611006CAP7Адрес прерывающей программы P7Маски программ120000MМаска основной программы P1300FFM0Маска прерывающей программы P0140000M1Маска прерывающей программы P1150000M2Маска прерывающей программы P2160000M3Маска прерывающей программы P3170000M4Маска прерывающей программы P4180000M5Маска прерывающей программы P5190000M6Маска прерывающей программы P61A0000M7Маска прерывающей программы P7
Таблица 4 - Распределение памяти (основная программа и прерывающая программа P0)
АдресКодМнемоникаКомментарийОсновная программа 20002EAMНачальный адрес массива210003NКоличество чисел в массиве22SРезультат - сумма чисел231112LM AMPЗагрузка маски программы P24B520LD r5 AAM Загрузка адреса массива AM в регистр r5 25B421LD r4 ANЗагрузка числа повторений цикла N 260233SUB r3 r3Очистка регистра r3 для суммы S271015LDI r1 (r5)+Чтение числа T[i] в регистр r1 280131ADD r3 r1Суммирование29A401SB r4 "1"Вычитание единицы из числа N2A062CBEQ m1Если PZ=1 (N=0), то переход на метку m12B0527BR m2Переход на метку m22CC322MV r3 ASЗапись суммы S адресу AS2D0005HLT SAЗагрузка PC и останов2ET12FT230T3Прерывающая программа P0 41XОперанд X42ZРезультат Z430E13LM AM0Загрузка маски подпрограммы Р0440F70PUSH RPСохранение содержимого регистра RP450F00PUSH R0Сохранение содержимого регистра r0460F20PUSH R2Сохранение содержимого регистра r2470122SUB R2 R2Очистка регистра R2 для результата Z488041LD R0 XЗагрузка Х в регистр r0499115AD R2 15Загрузка константы в r24A9000AD R0 0Сложение r0 с нулем4B104FBMI M2Если PS=0, то переход на m24C1300SHL R0Сдвиг r0 влево4D1053BMI M3Если PS=0, то переход на m34E0550BR M4Переход на m44F1300SHL R0Сдвиг r0 влево50B201SB R2 1Вычитание из r2 единицы51044ABEQ M1Если PZ=0, то переход на m152B201SB R2 1Вычитание из r2 единицы53C242MV R2 AZЗапись результата в ячейку памяти540720POP R2Чтение из стека содержимого r2550700POP R0Чтение из стека содержимого r0560770POP RPЧтение из стека содержимого RP570D00IRETВозврат из подпрограммы Р0
Таблица 5 - Распределение памяти (прерывающие программы P1-P7 и стек)
АдресКодМнемоникаКомментарийПрерывающая программа P1601114LM AM1Загрузка маски программы P1611200IERTВозврат из программы P1Прерывающая программа P2621115LM AM2Загрузка маски программы P2631200IERTВозврат из программы P2Прерывающая программа P3641116LM AM3Загрузка маски программы P3651200IERTВозврат из программы P3Прерывающая программа P4661117LM AM4Загрузка маски программы P4671200IERTВозврат из программы P4Прерывающая программа P5681118LM AM5Загрузка маски программы P5691200IERTВозврат из программы P5Прерывающая программа P66A1119LM AM6Загрузка маски программы P66B1200IERTВозврат из программы P6Прерывающая программа P76C111ALM AM7Загрузка маски программы P76D1200IERTВозврат из программы P7Область памяти стека...FCFDFEFF
Граф-схемы дополнительных команд
Граф-схема командного цикла ЭВМ
Микропрограммная реализация ЭВМ
Распределение регистров:
РЗУ (R0-R7)РЗУ (R8-R15)0:r0 X8:r8 (rSP)1:r1T9:r9 (rATI)2:r2Z10:3:r3S11:4:r4N12:5:r5AM13:Буферный регистр команд6:r6 (PC)14:Регистр константы7:PSr7 (RP)PZ15:Счетчик адреса ЗУ RK[A]
RM:МаскаRQ:Регистр операндаRA:Адрес ЗУRZ:ЗапросыRK:Регистр командыRV:Вектор
Таблица 6 - Микропрограмма командного цикла (вызов программы обработки прерывания, выборка команды и установка признаков)
№МИРЗУУпр. АЛУУпр. ОЗУШинаМИУпр. усл.Упр. УУУпр. РКМКI8-0ABС0SCD11-0I3-0AUС0ML00571EE0000111006C000001100011 RE:=0111111111111111; РА/СЦ:=6015330E00001110019000001100011 RE - сдвиг вправо; РА/СЦ:=РА/СЦ-102143060000110000E000001100011 RA:=003337060100010000E000001100011 R6:=SA (PC:=SA)04203661000110000E000001100011 RA:=R6; R6:=R6+1 (RA:=PC; PC:=PC+1)053370C01000110073001101100001 RK:=K; RC:=K06345EF01001110002000001100010 RF:=K[A] Переход по КОП07345EF0100111003C000001100010 RF:=K[A] РА/СЦ:=3085330C00001110089000001100011 RC - сдвиг вправо; РА/СЦ:=РА/СЦ-109131CC00001110002000001100001 RK:=RC; Переход по КОП0A343070100111000E000001100011 R7:=0 (RP:=0) Формирование признаков0B13300010011100E3000101100111 Переход, если r=00C13300010011103C3001001100111 Переход, если r[15]=00D50307110111103C3000011100011 R7:=R7+1; циклический сдвиг вправо (PS:=1)0E30307110011103C3000011100011 R7:=R7+1 (PZ:=1)0F............................
Таблица 7 - Микропрограмма командного цикла (выполнение операций):
№МИРЗУУпр. АЛУУпр. ОЗУШинаМИУпр. усл.Упр. УУУпр. РКМКI8-0ABС0SCD11-0I3-0AUС0ML11:1330F0000110000E00001100011(LDA r A) RA:=RF[A]12:33700010001100A300111100111R:=M[A]14:1330F0000110000E00001100011(MV r A) RA:=RF[A]15:13300000000100A300011100111M[A]:=r17:31100100011100A300011101111(SUB r r*) r:=r-r*19:30100000011100A300011101111(ADD r r*) r:=r+r*1B:104000000110000E00001101111(LDI r(r*)+) RA:=r*1C:33700010001103CC00011101111r:=M[r*] PA/CЦ:=41D:733CC000011101D900001100001RC - сдвиг влево РА/СЦ:=РА/СЦ-11E:303001100111000E00001101111r*:=r*+11F:1330F000011100A300011100001RK:=RF (для формирования признаков)21:303081000110000E00011100011(POP r) SP:=SP+1; RA:=SP22:33700010001103C300011101111r:=M[SP]24:11307010011103C300101100011(BEQ A) Переход, если R7[0]=025:334F6010011103C300011100011(BR A) R6:=RF (PC:=RK[A])27:13307010011103C301101100011(BMI A) Переход, если R7[15]=028:334F6010011103C300011100011R6:=RF (PC:=RK[A])2A:334F6010011103C300011110011(HLT A) R6:=RF (PC:=RK[A])2C:213880000110000E00011100011(CALL A) RA:=SP; SP:=SP-12D:133060000001000E00011100011M[SP]:=r2E:334F6010011103C300011100011R6:=RF (PC:=RK[A])30:311F0100011100A300011100111(SB r C) r:=r-C32:70300000011100A300011100011(SHL r) r:=0.r34:301F0000011100A300011100111(AD r C) r:=r+C36:11307010011103C300001100011(BNQ A) Переход, если R7[0]=137:33460100111003C000111000111 R6:=RF (PC:=RK[A])39:21388100011003CE000011100011(PUSH r) RA:=SP; SP:=SP-13A:13300000000103C300011100011M[SP]:=r
МИРЗУУпр. АЛУУпр. ОЗУШинаМИУпр. усл.Упр. УУУпр. РКУпр. АПМКI8-0ABС0SCD11-0I3-0AUС0MLCZ^OEV^LM^OEM3C:1330000001110043000011000110111(INT) Если IN=0, то переход3D133080000110000E000011000110111RA:=rSP3F313080000111000E000011000110111rSP:=rSP-140133060000001000E000011000110111M[RA]:=PC41133080000110000E000011000110111RA:=rSP42313080000111000E000011000110111rSP:=rSP-143137000100001000E000011000110110M[RA]:=RM443059F0100111000E000011000110011RF:=rATI+RV451330F0000110000E000011000111111RA:=RF; CZ: RZ[RV]:=046337060100011000E000011000110111PC:=M[RA]47171FF00001110043000011000110101RM:=11..1491330F0000110000E000111000110111(LM A) RA:=RK[A]4A10400010001103C3001111000110101RM:=M[RA]4C304881000110000E000011000110111(IRET) RA:=rSP+1; rSP:=rSP+14D104000100011000E000011000110101RM:=M[RA]4E304881000110000E000011000110111RA:=rSP+1; rSP:=rSP+14F33706010001103C3000111000110111PC:=M[RA]
Диаграмма прерываний ЭВМ
Вывод
В результате работы была построена ЭВМ, которая выполняет пользовательские программы и подпрограммы и имеет систему прерываний, включающую аппаратуру и набор различных программ обработки прерываний. 
Документ
Категория
Рефераты
Просмотров
16
Размер файла
598 Кб
Теги
лабораторная работа, оргэвм, лаба, отчет, прерывания, лабораторная
1/--страниц
Пожаловаться на содержимое документа