Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб. пособие по ОЭВМ.doc
Скачиваний:
0
Добавлен:
31.12.2019
Размер:
4.34 Mб
Скачать

Выполнение работы.

Работа буфера моделируется на уровне блоков, т.е. адрес ячейки в блоке не используется. Требуется написать программу моделирования буферной памяти со сквозной записью, моделирующую три обращения к памяти. В качестве примера в данном описании приводится текст программы моделирования буферной памяти с признаковым обменом. Соответствующая MCL-программа находится в рабочей директории и имеет имя CACHEAF.MCL.

В программе моделирования буферной памяти с признаковым обменом описаны следующие типы (см. программу).

Типы, используемые подпрограммами.

mem op[32][8] - оперативная память 32 слова по 8 бит

mem bp[16][11] - буферная память 16 слов по 11 бит, при этом 8 бит - данные, 1 бит изменения и 2 бита - адресная часть указывающая какому сегменту принадлежит данный блок. Для работы со словом БП необходимо считать его в структуру BUF_REG[11] (см. ниже)

mem ispadr[3][5] - память иcполнительных адpеcов, содержит три исполнительных адреса

mem inputs[3][8] - чиcла для запиcи, содержит 3 числа записываемых в память

mem coper[3][1] - память кодов опеpации, содержит 3 кода операции (1-чтение, 0-запись)

mem rep_seg[3][2] - вытеcняемый сегмент, содержит номера сегментов, вытесняемых из БП при замещении

struct iadr[5] адрес ячейки ОП 32 cлова

blok[3], номер блока, всего 8 блоков

seg [2]; номер сегмента, всего 4 сегмента

В данную структуру считывается исполнительный адрес из памяти, что позволяет различать в нем номера блока и сегмента.

struct bpadr[4] адрес ячейки БП 16 cлов

blok[3], номер блока, всего 8 блоков

sect[1]; номер сектора, всего 2 сектора

Данной структуре присваивается адрес буферной памяти, что позволяет различать в нем номера блока и сегмента.

struct buf_reg[11] структура слова буферной памяти

data[8], данные

ch_bit[1], бит изменения

address[2]; адресная часть

В эту структуру считывается слово БП при любой обработке, что позволяет различать в нем биты присутствия, изменения и собственно данные.

var i,j, вспомогательная переменная

choice, номер варианта

Переменные используемые в программе моделирования работы БП:

k,l, вспомогательная переменная

s_no; номер сектора, содержащего необходимый сегмент

Следующие переменные используются для упрощения. В них считываются соответственно значения coper, inputs, и rep_seg для данного обращения к памяти:

op_code, код операции

data, данные

replace, номер замещаемого сегмента

Используемые подпрограммы.

1. VARIANT - подпрограмма задания исходных данных по варианту и их распечатка. При исполнении подпрограммы на экран выводится сообщение: ”Введите номер варианта: " после чего необходимо ввести номер варианта от 1 до 15 включительно. При этом подпрограммой задаются начальные значения следующих описанных выше типов: op, bp, ispadr, inputs, coper, rep_seg.

Исходные данные заданы таким образом, что элементы массивов ispadr, inputs, coper и rep_seg с одинаковым индексом относятся к одному обращению к памяти. То есть если первое обращение к памяти - чтение, а второе запись, то inputs[1] не используется вообще, а во втором обращении используются сразу inputs[2]. Значения исходных данных см. ниже.

2. FIRST, SECOND, THIRD - данные подпрограммы используются исключительно подпрограммой VARIANT.

3. PRINT_BP - подпрограмма печати содержимого буферной памяти.

4. PRINT_BR - подпрограмма печати содержимого буферного регистра, используется исключительно подпрограммой PRINT_BP.

5. PRINT_OP - подпрограмма печати содержимого оперативной памяти.

6. PRINT_DOP - подпрограмма печати чисел заданных для записи и номеров вытесняемых сегментов, используется подпрограммами FIRST, SECOND и THIRD.

Типы, описанные в данном файле, полностью идентичны типам описанным в программе моделирования БП с признаковым обменом. Отличием является отсутствие поля CH_BIT[1] - бит изменения, структуры BUF_REG. Соответственно иначе описана и память BP. Так же отсутствуют описания переменных используемых собственно в программе моделирования, которые вводятся по усмотрению студентов. Подпрограммы имеющиеся в файле, имеют те же имена и назначение, что и в описанной выше программе.

Исходные данные:

Все возможные варианты разбиты на три группы в соответствии с чем задаются исходные данные.

Для вариантов 1-5 задаются следующие данные:

------------T------------------------------T------------¬

¦ Номер ¦ Исполнительный ¦ Код ¦

¦ обращения ¦ адрес ¦ операции ¦

¦ к памяти +-------T------------T---------+ ¦

¦ ¦ адрес ¦ N сегмента ¦ N блока ¦ ¦

+-----------+-------+------------+---------+--------T---+

¦ 1 ¦ 4 ¦ 0 ¦ 4 ¦ запись ¦ 0 ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦

¦ 2 ¦ 28 ¦ 3 ¦ 4 ¦ чтение ¦ 1 ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦

¦ 3 ¦ 22 ¦ 2 ¦ 6 ¦ запись ¦ 0 ¦

L-----------+-------+------------+---------+--------+----

Для вариантов 6-10 задаются следующие данные:

------------T------------------------------T------------¬

¦ Номер ¦ Исполнительный ¦ Код ¦

¦ обращения ¦ адрес ¦ операции ¦

¦ к памяти +-------T------------T---------+ ¦

¦ ¦ адрес ¦ N сегмента ¦ N блока ¦ ¦

+-----------+-------+------------+---------+--------T---+

¦ 1 ¦ 10 ¦ 1 ¦ 2 ¦ чтение ¦ 1 ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦

¦ 2 ¦ 30 ¦ 3 ¦ 6 ¦ запись ¦ 0 ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦

¦ 3 ¦ 6 ¦ 0 ¦ 6 ¦ чтение ¦ 1 ¦

L-----------+-------+------------+---------+--------+----

Для вариантов 11-15 задаются следующие данные:

------------T------------------------------T------------¬

¦ Номер ¦ Исполнительный ¦ Код ¦

¦ обращения ¦ адрес ¦ операции ¦

¦ к памяти +-------T------------T---------+ ¦

¦ ¦ адрес ¦ N сегмента ¦ N блока ¦ ¦

+-----------+-------+------------+---------+--------T---+

¦ 1 ¦ 8 ¦ 1 ¦ 0 ¦ запись ¦ 0 ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦

¦ 2 ¦ 26 ¦ 3 ¦ 2 ¦ запись ¦ 0 ¦

¦ ¦ ¦ ¦ ¦ ¦ ¦

¦ 3 ¦ 10 ¦ 1 ¦ 2 ¦ чтение ¦ 1 ¦

L-----------+-------+------------+---------+--------+----

Содержимое ОП и БП различно для каждого варианта.