Автор работы: Пользователь скрыл имя, 22 Декабря 2010 в 03:16, курсовая работа
Все работы выполнены на программной модели учебной ЭВМ и взаимодействующих с ней программных моделях ВУ и кэш-памяти. Учебная ЭВМ является упрощенной программной моделью компьютера, позволяющей обучаемым освоить базовые понятия архитектуры: система команд, командный цикл, способы адресации, уровни памяти, способы взаимодействия процессора с внешними устройствами.
Пояснительная записка 3
Введение 4
Задание №1 5
Задание №2 7
Задание №3 9
Задание №4 11
Задание №5 14
Задание №6 18
Задание №7 21
Задание №8 24
Заключение 26
Список литературы 27
Последовательность микрокоманд:
Мнемокод | Микрокоманда | Мнемокод | Микрокоманда |
ADD R3 | MAR := PC | JRNZ R3,5 | MAR := PC |
MRd | MRd | ||
CR := MDR | CR := MDR | ||
PC := PC+1 | PC := PC+1 | ||
RAR := CR5 | RAR := CR2 | ||
RRd | DEC_GR | ||
DR := RDR | JRNZ | ||
ALU <-- COP | MOV R4,R2 | MAR := PC | |
Start ALU | MRd | ||
ADD @R3 | MAR := PC | CR := MDR | |
MRd | PC := PC+1 | ||
CR := MDR | RAR := CR5 | ||
PC := PC+1 | RRd | ||
RAR := CR5 | RAR := CR4 | ||
RRd | RWr | ||
RA := RDR | JMP 7 | MAR := PC | |
MAR := RA | MRd | ||
MRd | CR := MDR | ||
DR := MDR | PC := PC+1 | ||
ALU <-- COP | PC := ADR | ||
Start ALU | CALL 8 | MAR := PC | |
ADD @R3+ | MAR := PC | MRd | |
MRd | CR := MDR | ||
CR := MDR | PC := PC+1 | ||
PC := PC+1 | MDR := PC | ||
RAR := CR5 | SP := SP-1 | ||
RRd | MAR := SP | ||
RA := RDR | MWr | ||
MAR := RA | PC := ADR | ||
MRd | RET: PUSH R3 | MAR := PC | |
DR := MDR | MRd | ||
INC_GR | CR := MDR | ||
ALU <-- COP | PC := PC+1 | ||
Start ALU | RAR := CR5 | ||
ADD -@R3 | MAR := PC | RRd | |
MRd | MDR := RDR | ||
CR := MDR | SP := SP-1 | ||
PC := PC+1 | MAR := SP | ||
RAR := CR5 | MWr | ||
DEC_GR | POP R5 | MAR := PC | |
RRd | MRd | ||
RA := RDR | CR := MDR | ||
MAR := RA | PC := PC+1 | ||
MRd | MAR := SP | ||
DR := MDR | MRd | ||
ALU <-- COP | RDR := MDR | ||
Start ALU | SP := SP+1 | ||
RAR := CR5 | |||
RWr |
Задание №6
Программирование внешних устройств
Целью лабораторной работы является изучение способов организации взаимодействия процессора и внешних устройств (ВУ) в составе ЭВМ.
Теоретические положения:
Модели
внешних устройств (ВУ), используемые
в учебной ЭВМ, реализованы по
единому принципу. С точки зрения
процессора они представляют собой
ряд программно-доступных
Доступ к регистрам ВУ осуществляется по командам IN аа, OUT аа, где аа – двухразрядный десятичный адрес регистра ВУ. Общий объем адресного пространства ввода/вывода составляет 100 адресов, при этом адресные пространства памяти и ввода/вывода в этой модели разделены.
Разные
ВУ содержат различное число программно-
Связь процессора и ВУ может осуществляться в синхронном или асинхронном режиме.
Синхронный режим используется для ВУ, всегда готовых к обмену (в нашей модели – дисплей и тоногенератор). Процессор может обращаться к этим ВУ, не анализируя их состояние (в учебной модели дисплей блокирует прием данных после ввода 128 символов, формируя флаг ошибки).
Асинхронный обмен предполагает анализ процессором состояния ВУ, которое определяет готовность ВУ выдать или принять данные или факт осуществления некоторого события, контролируемого системой (в нашей модели – клавиатура и блок таймеров.
Анализ состояния ВУ может осуществляться процессором двумя способами: в программно-управляемом режиме и в режиме прерывания.
В первом случае предполагается программное обращение процессора к регистру состояния ВУ с последующим анализом значения соответствующего разряда слова состояния. Такое обращение следует предусмотреть в программе с некоторой периодичностью, независимо от фактического наступления контролируемого события (например, нажатие клавиши).
Во втором случае при возникновении контролируемого события ВУ формирует процессору запрос на прерывание программы, по которому процессор и осуществляет связь с ВУ.
Если в системе создаются несколько ВУ, то их базовые адреса следует выбирать с учетом величины адресного пространства, занимаемого этими устройствами, исключая наложение адресов.
Вариант задания:
№ варианта | Задание | Используемые ВУ | Пояснения |
7 | Селективный ввод символов с клавиатуры | Клавиатура, дисплей | Все русские буквы, встречающиеся в строке ввода – в верхнюю часть экрана дисплея (строки 1-4), все цифры – в нижнюю часть экрана (строки 5-8), остальные символы не выводить |
Текст программы с программным анализом флагов и готовности ВУ:
RD #0 ;Начальный адрес, куда будем писать русские символы
wr R0 ;Сохраним
rd #64 ;Начальный адрес куда будем писать цифры
wr R1 ;Сохраним
RDI #101 ;Команда очистки буфера
out 1 ;для клавиатуры
out 11 ;и дисплея
RDI #102 ;Команда сброса ошибки
out 1 ;для клавиатуры
out 11 ;и для дисплея
RDI #10 ;Команда разрешения МВУ
OUT 1 ;для клавиатуры без прерываний (по опросу)
out 11 ;для монитора без автоувеличения адреса
RDI #103 ;Команда установки посимвольного ввода
out 1 ;для клавиатуры
LOOP:IN 2 ;Читаем регистр состояния клавиатуры
DIV #10 ;делим на 10, чтобы второй разряд готовности стал в первом разряде
WR R3 ;Сохраним
DIV #2 ;Разделим на 2
MUL #2 ;Умножим на 2
SUB R3 ;Отнимем сохранное
JZ LOOP ;Если четное, то нет кода в буфере, идем на цикл
IN 0 ;Считываем код с клавиатуры
wr R2 ;Сохраним
sbi #48 ;<'0'
js RESET ;Игнорируем, на сброс клавиатуры
rd R2 ;код
sbi #58 ;>'9'
jns CMPRUS ;Проверим на русские буквы
RD R1 ;Цифру выводим в нижней части экрана, в R1 адрес, куда писать
out 13 ;в регистр адреса
adi #1 ;инкремент адреса
wr R1 ;Сохраним
rd R2 ;код
out 10 ;На дисплей!
jmp RESET ;На сброс клавиатуры
CMPRUS:RD R2 ;код, проверим на > 128 - там русские буквы
SBI #128 ;Сравним со 128
JS RESET ;< 128 игнорируем
RD R0 ;Русские буковки выводим в верхней части экрана, в R0 адрес, куда писать
out 13 ;в регистр адреса
adi #1 ;инкремент адреса
wr R0 ;Сохраним
rd R2 ;код
out 10 ;На дисплей!
RESET:RDI #101 ;Команда сброса
out 1 ;В клавиатуру
RDI #103 ;Команда установки посимвольного ввода (сбрасывается при сбросе)
out 1 ;В клавиатуру
jmp LOOP ;На чтение состояния клавиатуры
Текст программы с обработчиком прерываний:
RD #27 ;Адрес обработчика прерывания клавиатуры
WR 100 ;запишем по адресу обработчика IRQ0
RD #0 ;Начальный адрес куда будем писать русские символы
wr R0 ;Сохраним
rd #64 ;Начальный адрес куда будем писать цифры
wr R1 ;Сохраним
RDI #101 ;Команда очистки буфера
out 1 ;для клавиатуры
out 11 ;и дисплея
RDI #102 ;Команда сброса ошибки
out 1 ;для клавиатуры
out 11 ;и для дисплея
RDI #11 ;Команда разрешения МВУ и работы по прерыванию
OUT 1 ;для клавиатуры
RDI #10 ;Команда разрешения МВУ
out 11 ;для монитора без автоувеличения адреса
RDI #103 ;Команда установки посимвольного ввода
out 1 ;для клавиатуры
EI ;Разрешаем прерывания от устройств (клавиатуры)
LOOP: ;Пустой цикл
NOP ;Вся работа в прерывании
NOP
JMP LOOP
INT0:IN 0 ;Считываем код с клавиатуры
wr R2 ;Сохраним
sbi #48 ;<'0'
js RESET ;Игнорируем, на сброс клавиатуры
rd R2 ;код
sbi #58 ;>'9'
jns CMPRUS ;Проверим на русские буквы
RD R1 ;Цифру выводим в нижней части экрана, в R1 адрес, куда писать
out 13 ;В регистр адреса
adi #1 ;инкремент адреса
wr R1 ;Сохраним
rd R2 ;код
out 10 ;На дисплей!
jmp RESET ;На сброс клавиатуры
CMPRUS:RD R2 ;Код, проверим на > 128 - там русские буквы
SBI #128 ;Сравним со 128
JS RESET ;< 128 игнорируем
RD R0 ;Русские буковки выводим в верхней части экрана, в R0 адрес, куда писать
out 13 ;в регистр адреса
adi #1 ;инкремент адреса
wr R0 ;Сохраним
rd R2 ;код
out 10 ;На дисплей!
RESET:RDI #101 ;Команда сброса
out 1 ;В клавиатуру
RDI #103 ;Команда установки посимвольного ввода (сбрасывается при сбросе)
out 1 ;В клавиатуру
IRET ;Возврат
из прерывания
Задание №7
Принципы работы кэш-памяти
Цель работы – ознакомиться с организацией и принципом работы кэш-памяти, а также алгоритмами замещения при различных режимах записи.
Теоретические положения:
Между
медленнодействующей