Модель учебной ЭВМ

Автор работы: Пользователь скрыл имя, 22 Декабря 2010 в 03:16, курсовая работа

Краткое описание

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

Содержание

Пояснительная записка 3
Введение 4
Задание №1 5
Задание №2 7
Задание №3 9
Задание №4 11
Задание №5 14
Задание №6 18
Задание №7 21
Задание №8 24
Заключение 26
Список литературы 27

Прикрепленные файлы: 1 файл

Модель учебной ЭВМ.docx

— 148.80 Кб (Скачать документ)

 

Последовательность  микрокоманд:

    Мнемокод Микрокоманда Мнемокод Микрокоманда
     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 адресов, при этом адресные пространства памяти и ввода/вывода в этой модели разделены.

  Разные  ВУ содержат различное число программно-доступных  регистров, каждому из них присвоен свой адрес, нумерация которых начинается с 0. Подключаемому ВУ ставится в  соответствие базовый адрес в  пространстве ввода/вывода, а все  адреса его регистров становятся смещениями относительно этого базового адреса.

  Связь процессора и ВУ может осуществляться в синхронном или асинхронном режиме.

  Синхронный  режим используется для ВУ, всегда готовых к обмену (в нашей модели – дисплей и тоногенератор). Процессор может обращаться к этим ВУ, не анализируя их состояние (в учебной модели дисплей блокирует прием данных после ввода 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

Принципы  работы кэш-памяти

  Цель  работы – ознакомиться с организацией и принципом работы кэш-памяти, а также алгоритмами замещения при различных режимах записи.

Теоретические положения:

  Между медленнодействующей динамической основной памятью (ОП) и процессором  размещается небольшая, но быстродействующая  буферная память. В процессе работы системы в буферную память копируются те участки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии – производится отображение участков ОП на буферную память. Если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться существенного повышения производительности ЭВМ. Такая буферная память называется кэш-памятью. Кэш-память скрыта от программиста в том смысле, что он не может ее адресовать.

Информация о работе Модель учебной ЭВМ