
- •Учебное пособие для лабораторных работ
- •По курсу:
- •Организация эвм и систем
- •Содержание
- •Инструкция по использованию программного обеспечения.
- •Описание языка mcl.
- •1. Описание языка mcl.
- •2. Алфавит.
- •7. Операции и выражения. Побитовые операции:
- •Операции сдвига:
- •8. Приоритеты и порядок выполнения операций:
- •9. Арифметические преобразования в выражениях.
- •10. Типы языка mcl.
- •11. Переменные языка mcl.
- •12. Операторы языка mcl. Оператор - формат:
- •Оператор - метка:
- •Оператор - безусловный переход: goто
- •Оператор - вызов подпрограммы: gosub
- •Оператор - возврат из подпрограммы: return
- •Оператор - условный оператор: if then
- •Оператор - оператор цикла: for to next
- •Оператор - пауза: pause
- •Оператор - вывод: write writeln
- •Оператор – ввод: read
- •14. Общие замечания.
- •Арифметико-логические устройства эвм и принципы их функционирования.
- •Лабораторная работа № 1. Моделирование функционирования алу при выполнении операции сложения/вычитания. Цель работы:
- •Алгоритм алгебраического сложения/вычитания двоичных чисел с фиксированной запятой при использовании дополнительного кода для представления слагаемых.
- •Моделирование функционирования алу.
- •Проверка на переполнение
- •Результат работы программы:
- •Контрольные вопросы.
- •Содержание отчета.
- •Варианты заданий.
- •Алгоритм умножения двоичных чисел с фиксированной запятой, представленных в дополнительном коде.
- •Моделирование функционирования алу при выполнении операции умножения чисел, представленных в прямом коде.
- •Моделирование функционирования алу при выполнении операции умножения чисел, представленных в дополнительном коде.
- •Контрольные вопросы.
- •Содержание отчета.
- •Варианты заданий.
- •Моделирование функционирования алу при выполнении операции деления методом с восстановлением остатка над числами, представленными в прямом коде.
- •2. Моделирование функционирования алу при выполнении операции деления методом без восстановления остатка над числами, представленными в прямом коде.
- •Контрольные вопросы.
- •Содержание отчета.
- •Варианты заданий.
- •Организация операционной части центрального процессора. Команды эвм.
- •Одноадресные команды.
- •Безадресные команды.
- •Способы адресации.
- •Микропрограмма и структурная схема операционной части цп при выполнении двухадресной команды формата регистр-регистр.
- •Примечания:
- •На рисунке 28 слева на графике расставлены вентили, которые в данной лабораторной работе не используются (они нужны для моделирования блока устройства управления);
- •Задание для выполнения лабораторной работы.
- •Содержание отчета.
- •Поэтапное выполнение программы (см. Файл буу.Mcl):
- •Примечание:
- •Задание для выполнения лабораторной работы.
- •Варианты заданий.
- •Лабораторная работа № 6. Моделирование функционирования селекторного канала.
- •Файл sk.Mcl.
- •Описание подпрограмм для моделирования селекторного канала, хранящихся в файле sk.Mcl. Подпрограмма k_u_k:
- •Подпрограмма w_reg:
- •Подпрограмма out_op:
- •Подпрограмма in_op:
- •Подпрограмма к_ор:
- •Подпрограмма w_op:
- •Подпрограмма z_rdu:
- •Подпрограмма zagr:
- •Задание.
- •Содержание отчета.
- •Пример результатов моделирования работы селекторного канала.
- •Варианты заданий для моделирования селекторного канала. Вариант номер 1
- •Вариант номер 2
- •Вариант номер 3
- •Вариант номер 4
- •Вариант номер 5
- •Вариант номер 6
- •Вариант номер 7
- •Вариант номер 8
- •Вариант номер 9
- •Вариант номер 10
- •Вариант номер 11
- •Вариант номер 12
- •Вариант номер 13
- •Вариант номер 14
- •Вариант номер 15
- •Лабораторная работа № 7. Моделирование функционирования мультиплексного канала.
- •Файл mk.Mcl.
- •Описание подпрограмм для моделирования мультиплексного канала, хранящихся в файле мk.Mcl. Подпрограммы k_u_k, оut_op, in_op и k_op:
- •Подпрограмма w_op:
- •Подпрограмма act:
- •Подпрограмма pas:
- •Подпрограмма w_pk:
- •Подпрограмма zagr2:
- •Задание.
- •Содержание отчета.
- •Пример результатов моделирования работы мультиплексного канала.
- •Варианты заданий для моделирования мультиплексного канала. Вариант номер 1
- •Вариант номер 2
- •Вариант номер 3
- •Вариант номер 4
- •Вариант номер 5
- •Вариант номер 6
- •Вариант номер 7
- •Вариант номер 8
- •Вариант номер 9
- •Вариант номер 10
- •Вариант номер 11
- •Вариант номер 12
- •Лабораторная работа № 8. Моделирование буферной памяти с признаковым обменом и сквозной записью. Сверхбыстродействующая кэш-память и ее моделирование.
- •Моделирование функционирования секторного буфера.
- •Выполнение работы.
- •Типы, используемые подпрограммами.
- •Используемые подпрограммы.
- •Исходные данные.
- •Содержание отчета.
- •Пример выполнения программы с признаковым обменом (файл cachesf.Mcl) для 1-го варианта:
- •Варианты заданий. Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Лабораторная работа № 9. Моделирование буферной памяти с признаковым обменом и сквозной записью. Моделирование функционирования группо-ассоциативного буфера.
- •Выполнение работы.
- •Типы, используемые подпрограммами.
- •Содержание отчета.
- •Пример выполнения программы с признаковым обменом (файл cacheaf.Mcl) для 1-го варианта:
Моделирование функционирования алу при выполнении операции деления методом с восстановлением остатка над числами, представленными в прямом коде.
Метод деления с восстановлением остатка состоит в следующем:
Из сдвинутого частичного остатка вычитается делитель. Если результат больше либо равен нулю, очередной разряд частного получает значение 1. Если результат меньше нуля, то разряд частного равен нулю и происходит восстановление промежуточного остатка путем прибавления к текущему остатку делителя.
Промежуточный остаток сдвигается влево на один разряд и в него заносится очередной разряд делимого. Цикл деления повторяется.
Рассмотрим пример деления целых чисел, представленных в прямом коде, методом с восстановлением остатка.
Пример 1.
Z = ; X=15, Y=-3
-
Зн.
Информ. разряды
X=
0
0
0
0
0
0
1
1
1
1
Y=
1
0
0
1
1
Формируем знак результата путем сложения по модулю 2 знаков делимого и делителя: ZN=01=1. Обнуляем знаковый разряд делителя, получаем Y=00011.
Дополнительный код делителя: [Y]доп.код=11101
Описание операции |
Зн. |
Информац. разряды |
|
|
Делимое |
+00 |
0000 |
1111 |
|
Сдвиг делителя влево на 4 разряда, вычитание делителя |
1 |
1101 |
|
|
Остаток от деления < 0 => деление возможно |
+1 |
1101 |
1111 |
|
Восстановление остатка: прибавление делителя |
0 |
0011 |
|
|
Восстановленный остаток |
0 |
0000 |
1111 |
|
Сдвиг влево остатка на 1 разряд |
+0 |
0001 |
1110 |
|
Вычитание делителя |
1 |
1101 |
|
|
1-ый остаток от деления < 0 |
+1 |
1110 |
1110 |
|
Восстановление остатка: прибавление делителя |
0 |
0011 |
|
|
Восстановленный остаток |
0 |
0001 |
1110 |
|
Сдвиг влево остатка на 1 разряд |
+0 |
0011 |
1100 |
|
Вычитание делителя |
1 |
1101 |
|
|
2-ой остаток от деления > 0 |
0 |
0000 |
1100 |
|
Сдвиг влево остатка на 1 разряд |
+0 |
0001 |
1000 |
|
Вычитание делителя |
1 |
1101 |
|
|
3-ий остаток от деления < 0 |
+1 |
1110 |
1000 |
|
Восстановление остатка: прибавление делителя |
0 |
0011 |
|
|
Восстановленный остаток |
0 |
0001 |
1000 |
|
Сдвиг влево остатка на 1 разряд |
+0 |
0011 |
0000 |
|
Вычитание делителя |
1 |
1101 |
|
|
4-ый остаток от деления = 0 |
0 |
0000 |
0000 |
|
Z= |
1 |
0 |
1 |
0 |
1 |
|
Зн |
1 ост |
2 ост |
3 ост |
4 ост |
Выполнение операции деления с восстановлением остатка можно организовать по-другому, сдвигая делитель вправо на один разряд. Промежуточный остаток при этом остается на месте.
Структурная схема АЛУ представлена на рис. 14.
Делимое записывается в регистры RB и R2: в RB - старшая часть, в R2 - младшая. Делитель записывается в регистр R1. Частное формируется в регистре R3.
Появляется связь между регистрами R2 и RС для сдвига промежуточного остатка и организован доступ к нулевому разряду регистра R3 для записи очередного разряда частного. Старшая и младшая части промежуточного остатка хранятся в регистрах RB и R2 соответственно. Если промежуточный остаток отрицательный, то делитель переписывается в регистр RA в прямом коде и в очередной разряд частного в регистр R3 записывается 0, если промежуточный остаток неотрицательный, то делитель переписывается в регистр RA в обратном коде и в очередной разряд частного в регистр R3 записывается 1. Регистры SM и R2 используются для организации сдвигов. При сдвиге промежуточного остатка в освободившийся разряд регистра RC заносится очередной разряд делимого. В каждом цикле результат с регистра RC переписывается на регистр RB. Триггер ТS хранит знак результата, который формируется сложением по модулю 2 знаковых разрядов делимого и делителя. Так как деление производится над положительными числами в прямом коде, в случае отрицательных операндов, сначала формируется знак результата и заносится в триггер TS, операнды переводятся в прямой код и только тогда выполняется деление по уже известному алгоритму. Число циклов равно n-1, т.е. семи (без учета пробного вычитания).
Блок-схема выполнения операции деления методом с восстановление остатка представлена на рис. 13.
Формирование
знака результата, обнуление знаков
делимого и делителя
Сдвиг делимого
на 1 разряд влево
Пробное вычитание
делителя
Деление
невозможно
“0”
Деление
возможно
“<0”
Запись
в RA
делителя в прямом коде
Восстановление
остатка
Суммирование
RA
и RB
(промежуточного остатка)
Сдвиг остатка
на 1 разряд влево, занесение очередного
разряда делимого
Запись
в RA
делителя в обратном коде
Суммирование
RA
и RB
(промежуточного остатка) с прибавлением
1
Восстановление
остатка
“0”
“<0”
Запись 1 в очередной
разряд частного
Запись 0 в очередной
разряд частного
“>0”
Уменьшение
содержимого счетчика на 1
“=0”
Запись
в RA
делителя в прямом коде
Суммирование
RA
и RB
(промежуточного остатка)
Рис.
13. Блок-схема выполнения операции
деления с восстановлением остатка