- •Лабораторная работа № 1 Изучение общей структуры арифметико-логического устройства эвм
- •Подготовка к работе
- •Программа работы
- •Методические указания к работе
- •Лабораторная работа № 2 Синтез управляющего устройства эвм на основе автоматов Мура и Мили
- •Подготовка к работе
- •Программа работы
- •Методические указания к работе
- •Лабораторная работа № 3 Изучение архитектуры и функциональных возможностей арифметико-логического устройства на базе вычислительной секции к1804вс1
- •Подготовка к работе
- •Программа работы
- •Методические указания к работе
- •Методические указания к работе
- •Литература: [1, c.277–316; 7, c.154–158; 8, c.355-358] Библиографический список
Методические указания к работе
Общая структура процессора с микропрограммным устройством управления (УУ) контроллера МТ1804, представлена на рис. 7. Основной функцией УУ является извлечение микрокоманд из управляющего запоминающего устройства (УЗУ) в соответствии с реализуемым алгоритмом. Основным элементом УУ является схема формирования следующего адреса микрокоманды (СФСАМК), реализуемая на ИС К1804ВУ1.
Внутренняя структура ИС К1804ВУ1 приведена на рис. 8.
Назначение схемы – формирование адреса микрокоманды на выходах A3,..A0. Адрес микрокоманды ИС К1804ВУ1 формирует из 4 возможных источников:
Выводы R3,..,R0 – на них подается адрес, задаваемый седьмой тетрадой МК, который используется при ветвлениях.
Выводы P (P3,..,P0) – на которые подается адрес начальной микрокоманды из микропрограммы.
СМК (счетчик микрокоманд) – этот источник используется при переходе от одной МК к другой, расположенные последовательно в ячейках памяти.
СТЕК (стековая память) – используется при вызове и возврате из микроподпрограмм или организации циклов.
рис. 7 Общая структура процессора с микропрограммным устройством управления
Источник адреса определяется мультиплексором MS, который коммутирует источники адреса в соответствии с кодов на входах S1,S0 (00-СМК, 01-R, 10- СТЕК, 11-P).
СТЕК- представляет собой память "магазинного" типа объемом 4*4 бита и предназначена для хранения адресов МК (возврата из подпрограмм или цикла). Управление стеком осуществляется сигналами:
- разрешение стека; PUP – операция со стеком (0 – вытолкнуть из стека; 1 – записать в стек).
Входы OR используются для изменения отдельных разрядов адреса по схеме "ИЛИ". Вход Z позволяет обнулить адрес МК.
В зависимости от значений сигналов на линиях S0, S1, PUP, схемой генерируется та или иная команда перехода в микропрограмме.
Для реализации условных переходов используется дополнительная схема ПЗУ ( ПЛМ) формирующая сигналы S0, S1, PUP, в соответствии с сигналами признаками результата из АЛУ (см рис. 9).
Для выполнения лабораторной работы необходимо воспользоваться методическими указаниями к работе № 3, где в таблицах приведены формат и назначение битов микрокоманды.
При организации микропрограмм в микрокоманде указывается информация об источнике адреса следующей микрокоманды. Поля 6 и 7 (см. табл. 160 в лаб. работе № 3) МК служат для этих целей. Поле 7 содержит непосредственный адрес перехода, а поле 6 служит для управления следующим адресом МК. Назначение разрядов поля 6 приведено в табл. 237.
рис. 8 Структура ИС К1804ВУ1
рис. 9. Схема управления переходами в УУ.
табл. 237
P3P2P1P0 |
Вид перехода |
0 0 0 0 |
Переход, если F # 0 |
0 0 0 1 |
Безусловный переход |
0 0 1 0 |
Продолжить |
0 0 1 1 |
Переход по вектору |
0 1 0 0 |
Переход к подпрограмме, если F # 0 |
0 1 0 1 |
Переход к подпрограмме |
0 1 1 0 |
Возврат из подпрограммы |
0 1 1 1 |
Переход по стеку |
1 0 0 0 |
Окончить цикл и вытолкнуть из стека, если F = 0 |
1 0 0 1 |
Загрузить стек (и продолжить) |
1 0 1 0 |
Вытолкнуть из стека (и продолжить) |
1 0 1 1 |
Окончить цикл и вытолкнуть из стека, если С4 |
1 1 0 0 |
Переход, если F = 0 |
1 1 0 1 |
Переход, если N |
1 1 1 0 |
Переход, если OVR |
1 1 1 1 |
Переход, если С4 |
табл. 28
вар. |
Задания для разработки МП с использованием линейного алгоритма |
|
Загрузить регистры R0,R1,R2. Найти их сумму. |
|
Загрузить регистры R7,R8,R9. Перевести их содержимое в дополнительный код. |
|
Загрузить регистры R3,R4. Выполнить циклический сдвиг влево их содержимого. |
|
Установить в единицу разряды 0,1,2,3 соответственно в регистрах R11-R14. |
|
Загрузить регистры R6=3, R7=6, R8=9. Сложить по модулю 2 регистры R6,R7 с R8. Результаты занести в регистры R10,R11. |
|
R1=1. Заполнить регистры R8–R11 “бегущей” единицей, выполняя команды сдвига регистра R1. |
|
Выполнить циклический сдвиг влево регистров R6=1, R7=5, R8=4, R9=6 и произвести попарное сложение этих регистров: R6=R6+R7, R8=R8+R9. |
|
Регистры R10,R11 сдвинуть соответственно влево и вправо на 2 разряда, а затем найти их разность: R12=R11-R10. |
|
Инвертировать содержимое регистров R14 и R15, а затем сложить их по модулю 2. Результат записать в регистр R0. |
|
Обнулить 2 и 3 разряды соответственно в регистрах R1 и R2, с последующим арифметическим сдвигом этих регистров на 2 разряда влево. |
|
В регистрах R11, R12 установить в “1” 2 и 3 разряды и обнулить 0-е разряды. Найти разность этих регистров: R15=R12-R11. |
|
Выполнить арифметический сдвиг вправо регистра R3. Затем сложить его с R4. Результат инвертировать и занести в R5. |
табл. 2924
вар. |
Задания для разработки МП с использованием условных переходов |
|
Сложить два числа в регистрах R14,R15 в BCD-коде с десятичной коррекцией результата. |
|
Загрузить регистры R5-R8. Определить максимальное число в этих регистрах и записать его в R15. |
|
Загрузить регистры R1,R2,R3, определить наименьшее число, инвертировать его и поместить в R15. |
|
Загрузить регистры R3,R4. Если R3=0, то R4= , иначе R4=2R4; найти R6=R4+R3. |
|
Если R58, то инвертировать старший разряд R5 и поместить в Q, иначе Q=R5+1. Найти R12=R5+Q. |
|
Загрузить регистры R12,R13. Найти R0=R12+R13, если R0=15, то перевести R13 в дополнительный код и пересчитать R0. |
|
К минимальному числу из чисел, хранящихся в регистрах R7 и R8, прибавить 7; в максимальном инвертировать старший разряд. |
|
Если одно из чисел, хранящихся в регистрах R10 и R11, равно 0, то в R8 занести константу 10, иначе к содержимому R9 прибавить 6. |
|
Если в регистре R9 число четное, то выполнить циклический сдвиг влево на два разряда, иначе R9=R9+R15. |
|
Если оба числа в регистрах R4 и R5 меньше 6, то провести обмен данными регистров, иначе обнулить в R4 и R5 все четные разряды. |
|
Если в регистре R11 число нечетное, то инвертировать его и выполнить арифметический сдвиг вправо, иначе R12=R11V R14. |
|
Если одно из значений в R8 или R9, имеет старший разряд равный 1, то найти разность R6=R7-R6, иначе выполнить циклический сдвиг двойной длины влево и вправо соответственно регистров R8 и R9. |
табл. 30
вар. |
Задания для разработки МП с использованием циклов |
|
Найти дополнительный код содержимого регистра R5 и поместить его в R0, путем суммирования R5 с “1” до тех пор, пока не появится переполнение. |
|
Найти произведение R0=R2*3, вычитая в цикле из R2 “1” и суммируя в регистре результата R3 число 3 с собой до тех пор, пока R2 не станет равным 0. |
|
Найти R0=R8&Q, если Q=R7*R8. (Организовать цикл при нахождении произведения, заменив его сложением) |
|
Найти максимальную степень 2, на которую делится содержимое регистра R2. |
|
Составить МП, моделирующую генератор, формирующий пачки импульсов в виде меандра. Промежуток между пачками 14 тактов. |
|
Составить МП, моделирующую двоично-десятичный счетчик импульсов на базе регистра R7. |
|
Смоделировать счетчик по модулю 12 на базе регистра R8. |
|
Выполнить двойной циклический сдвиг регистров R7,Q на 5 разрядов влево. |
|
Подсчитать количество 0 и 1 в регистре R7. Результат поместить в R0 и R1. |
|
Загрузить регистр R1, сформировать задержку времени длительностью 11 тактов после чего загрузить регистр R2 |
|
Возвести в квадрат содержимое регистра R4. Результат поместить в регистры R7 и Q. |
|
Выполнить деление числа, хранящегося в регистре R13 на число в регистре R5 (заменив деление вычитанием). Результат поместить в R0. |
Табл. 31
вар. |
Задания для разработки МП с использованием подпрограмм |
|
Найти сумму максимальных чисел из попарно рассматриваемых регистров R0,R1 и R2,R3; результат поместить в R6. п/п: определение максимального из двух чисел Ri и Ri+1. |
|
К содержимому регистров R5,R6,R7 прибавить соответственно константы 3,10,12. п/п: суммирование Ri и константы. |
|
Инвертировать 0,1,2 разряды в регистрах R6,R7,R8 соответственно. п/п: инвертирование i-го разряда регистра Ri. |
|
Найти R6=(R0-R1)+(R2-R3)+(R4-R5). п/п: Ri–Ri+1. |
|
Найти R6=max{R0,R1} - max{R3,R4}. п/п: max{Ri,Ri+1 }. |
|
Найти сумму R13=R10/4-R11/4-R12/4. п/п: Ri/4. |
|
Найти R0=R3*4-R4*4-R5*4. п/п: Ri*4. |
|
Инвертировать, а затем сдвинуть влево на два разряда содержимое регистров R1 и R2. п/п: инвертирование и сдвиг регистра Ri. |
|
Подсчитать количество четных и нечетных чисел в регистрах R13-R15. п/п: проверка содержимого Ri |
|
Преобразовать числа в регистрах R6,R7 в двоично-десятичный код и поместить результаты соответственно в R10,R11 и R12,R13. п/п: преобразование Ri в BCD–код. |
|
Подсчитать количество нулей в регистрах R7,R8 результат поместить в R0. п/п: подсчет количества нулей в регистре Ri. |
|
Преобразовать числа в регистрах R3 и R4 в дополнительный код. п/п: получение обратного кода числа в регистре Ri. |