Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСОВАЯ_ЭВМ_иправл.doc
Скачиваний:
12
Добавлен:
08.12.2018
Размер:
245.76 Кб
Скачать

Описание функционирования центрального процессора на микропрограммном уровне

Процесс считывания команды выглядит следующим образом:

  1. RAP:=SK;

В регистр РАП оперативной памяти переписывается значение счётчика команд;

  1. RCH:=ЧТZC(RAP);

Чтение команды из памяти в регистр РСП (регистр счёта памяти)10;

  1. RK:=RCH;

Запись в регистр РК значения регистра РСП.

  1. SK:=SK+1;

Увеличение значения счётчика команд на длину команды;

Процесс выборки операндов описывается следующими командами:

Выборка первого операнда:

1) RAP:=RK(A1);

В регистр РАП оперативной памяти переписывается значение адресного поля первого операнда;

2) RCH:=ЧТZC(RAP);

Чтение по адресу-значению регистра РАП из памяти в регистр РСП адреса ячейки, содержащей адрес первого операнда;

  1. RAP:=RCH;

Перезапись значения из регистра РСП в регистр РАП;

4) CPC:=RCH;

Присвоение счётчику CPC значения регистра РСП;

5) RCH:=ЧТZC(RAP);

Чтение по адресу-значению регистра РАП из памяти в регистр РСП значения операнда;

6) R1:=RCH;

Запись операнда из регистра РСП во входной регистр АЛУ – R1.

Выборка второго операнда:

  1. RARP:=RK(A2);

В регистр РАРП регистровой памяти переписывается значение адресного поля второго операнда;

2) RCHR:=ЧТRONS(RARP);

Чтение по адресу-значению регистра РАРП из регистровой памяти в регистр РСП значения операнда;

3) R2:=RCHR;

Запись операнда из регистра РСП во входной регистр АЛУ – R1.

Реализация алгоритма умножения описывается следующим образом

Теоретически алгоритм умножения двоичных чисел с фиксированной запятой, представленных в прямом коде описывается так:

  1. Определение знака произведения путем сложения по модулю 2 знаковых разрядов множимого и множителя;

  2. Обнуление знаковых разрядов отрицательных операндов;

  3. Анализ очередной цифры множителя (начиная с младших разрядов).

Если очередная цифра множителя равна 1, то к сумме частичных произведений (первоначально равной 0) прибавляется множимое, в противном случае прибавляется ноль.

  1. Сдвиг суммы частичных произведений вправо относительно неподвижного множимого, причём младший разряд суммы частичных произведений является очередным разрядом ответа – произведения двух чисел.

  2. Повторение пунктов 3 и 4 n раз, где n =r+1, r – разрядность чисел, без учёта знака.

  3. Присвоение произведению знака, определённого в п.1.

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

Микропрограммное описание

Подготовка к процессу умножения

  1. TZ:=R1[n-1] XOR R2[n-1];

Нахождение знака произведения и сохранение его значения в триггере знака TZ;

  1. R1[n-1]:=0; R2[n-1]:=0;

Обнуление знаков операндов;

  1. SCH:=n;

Присвоение счётчику циклов значения разрядности регистров операндов;

  1. RB:=0;

Обнуление регистра RB;

Умножение

  1. R2[0]=0?

Проверка младшего разряда множителя. Если он равен 0, то переход к пункту 2. Иначе переход к пункту 3.

  1. RA:=0;

Обнуление регистра RA. Переход к пункту 4.

  1. RA:= R1;

Присвоение регистру RA значения множимого, хранимого в регистре R1:

  1. RC:=П(1)( RA+RB);

Сложение значений регистров RA и RB и запись полученной суммы, сдвинутой на один разряд вправо в регистр RC;

  1. R3:=П(1)R2;

Запись в регистр R3 значения регистра R2, двинутого на 1 разряд вправо;

6) R3[n-1]:= ( RA+RB)[0];

Старшему разряду регистра R3 присваивается значение младшего разряда суммы значений регистров RA и RB.

  1. RB:=RC;

Запись значения регистра RC, содержащего значение текущей суммы частичных произведений, сдвинутое вправо в регистр RB;

  1. R2:=R3;

Запись в регистр множителя R2 значения регистра R3, содержащего оставшиеся непроанализированными разряды множителя в младшей части, а в старшей части – разряды результата.

  1. SCH:=SCH-1;

Уменьшение значения счётчика циклов на 1;

  1. Проверка значения счётчика циклов. Если SCH не равен нулю, то переход к п. 1. Иначе – переход к п. 10;

  1. RC[n-1]:=TZ;

Присвоение произведению значения триггера знака.

Запись результатов

  1. RCH:=RC;

Запись в регистр РСП значения старших разрядов произведения;

  1. CPC:=CPC+n;

Увеличение значения счётчика корректировки адреса на ширину выборки;

  1. ZS(RAP):=RCH;

Запись в память значения старших разрядов произведения;

  1. RCH:=R2;

Запись в РСП значение младших разрядов произведения;

  1. RAP:=CPC;

Установка в РАП значения счётчика корректировки адреса;

  1. ZS(RAP):=RCH.

Запись в память младших разрядов произведения.

Структурная схема микропрограммы с обозначением управляющих вентилей представлена на стр. 13.

Структурная схема микропрограммы

(без совмещения)

Выборка команды:

(V1) RAP:=SK;

(V5) RCH:=ЧТZC(RAP);

(V2) RK:=RCH;

(V3) SK:=SK+1;

Выборка операндов:

(V8) RAP:=RK(A1);

(V5) RCH:=ЧТZC(RAP);

(V7) RAP:=RCH;

(V26) CPC:=RCH;

(V5) RCH:=ЧТZC(RAP);

(V6) R1:=RCH;

(V9) RARP:=RK(A2);

(V11) RCHR:=ЧТRONS(RARP);

(V12) R2:=RCHR;

Подготовка к процессу умножения:

(V18) TZ:=R1[n-1] XOR R2[n-1];

(V22) R1[n-1]:=0;

(V22) R2[n-1]:=0;

(V19) SCH:=n;

(V20) RB:=0;

(V13) RA:= R1

(V21) RA:=0

(V14) RC:=П(1)( RA+RB);

(V14) R3[n-1]:= ( RA+RB)[0];

(V14) R3:=П(1)R2;

(V15) RB:=RC;

(V27) R2:=R3;

(V23) SCH:=SCH-1;