Модель процессора
План лекции
Структура модели процессора
Структура
Структура
Регистры
Регистры
Регистры
Регистры
Регистры
Регистры
Примеры
Обозначения на Ассемблере
Обозначения на Ассемблере
Примеры машинных команд, записанных на Ассемблере
Обозначения на Ассемблере
Регистры
Регистры
Регистры
Арифметико-логическое устройство
АЛУ
АЛУ
АЛУ
АЛУ
Флаги
Флаги
Флаги
Флаги
Устройство управления
Микропрограммы
Микропрограммы
Микропрограммы
Микропрограммы
Цикл команды
Цикл команды
Цикл команды
Цикл команды
Цикл команды
Цикл команды
Цикл команды
Цикл команды
Цикл команды
Микропрограммы
Микропрограммы
Микропрограммы
Пример 1
Пример 2

Структура модели процессора. Регистры. Ассемблер. АЛУ. Микропрограммы. Цикл команды

1. Модель процессора

2. План лекции

Структура модели процессора
Регистры
Ассемблер
АЛУ
Микропрограммы
Цикл команды
Примеры

3. Структура модели процессора

4. Структура

Регистр
адреса
Счетчик
команд
Регистр
данных
Регистр
команд
Оперативная
память
А
Таблица
адресов
микропрограмм
Память
микропрограмм
В
АЛУ
Флаги
Регистры
общего
назначения
AX
BX
CX
DX
Сигналы
управления

5. Структура

Процессор включает:
регистры (микропроцессорная память)
УУ (устройство управления)
память
микропрограмм
таблица адресов микропрограмм
АЛУ (арифметико-логическое устройство)

6. Регистры

7. Регистры

Счетчик команд
Регистр команд
Регистр адреса
Регистр данных
Регистры общего назначения:
AX,
BX, CX, DX

8. Регистры

Все регистры 8-разрядные
Регистры делятся на группы:
управляющие
счетчик команд и регистр команд
регистры
работы с оперативной памятью
регистр адреса и регистр данных
регистры
регистры
общего назначения
AX, BX, CX, DX

9. Регистры

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

10. Регистры

Регистр команд – регистр, в котором
хранится код операции выполняемой
команды

11. Регистры

Машинная команда состоит из двух
частей – код операции и операнды
Код операции говорит о том, что нужно
сделать с операндами
Операндами могут быть:
регистры
константы
адреса
ячеек памяти (переменные)

12. Примеры

Код
операции
Операнд
01
0A
Загрузить в регистр АХ
число 10
MOV AX, 10
Загрузить в регистр АХ
регистр ВХ
MOV AX, BX
Загрузить в регистр АХ
содержимое ячейки
памяти по адресу D5
MOV AX, [D5]
Код
операции
02
Код
операции
Операнд
25
D5

13. Обозначения на Ассемблере

Загрузка: MOV (move)
Сложение: ADD (addition)
Сложение с переносом: ADC
Вычитание: SUB (subtract)
Вычитание с переносом: SBB

14. Обозначения на Ассемблере

Сдвиг влево: SHL (shift left)
Сдвиг вправо: SHR (shift right)
Переход: JMP (jump – прыжок)
Вычитание без изменения операндов:
CMP (compare – сравнить)
используется
в командах условного перехода

15. Примеры машинных команд, записанных на Ассемблере

MOV AX, BX
ADD AX, DX
ADC AX, BX
SUB CX, BX
SBB DX, AX
SHL AX
SHR BX
AX := BX
AX := AX + DX
AX := AX + BX + CF
CX := CX – BX
DX := DX – AX – CF
сдвиг AX влево на 1 бит
сдвиг BX вправо на 1 бит

16. Обозначения на Ассемблере

Константы обозначаются числами:
ADD
AX, 5
AX := AX + 5
Содержимое ячейки памяти
указывается в квадратных скобках:
BX, [89]
вычесть из ВХ
содержимое ячейки памяти по адресу 8916
MOV CX, [AX]
загрузить в СХ
содержимое ячейки памяти, адрес которой
хранится в АХ
SUB

17. Регистры

Регистр адреса (ADDR) содержит
адрес ячейки оперативной памяти,
с которой сейчас будем работать
(читать или писать)

18. Регистры

Регистр данных (DATA):
в случае записи в ОЗУ содержит то,
что будем записывать
в случае чтения из ОЗУ туда придут
данные из ячейки памяти

19. Регистры

Регистры общего назначения
(AX, BX, CX, DX) нужны для временного
хранения данных, с которыми сейчас
работаем

20. Арифметико-логическое устройство

21. АЛУ

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

22.

Y15
Y16
Y17
Y18
Операция
0
0
0
0
Нет операции
0
0
0
1
A+B
0
0
1
0
A + B + CF
0
0
1
1
A–B
0
1
0
0
A – B – CF
0
1
0
1
A and B
0
1
1
0
A or B
0
1
1
1
A xor B
1
0
0
0
not A
1
0
0
1
not B
1
0
1
0
shl A
1
0
1
1
shr A
1
1
0
0
A
1
1
0
1
B
1
1
1
0
A+1
1
1
1
1
A–1

23. АЛУ

Вход А и выход:
Y7
Y8
Y9
Y10
Вход
1
0
x
x
DATA
0
1
x
x
ADDR
0
0
0
0
AX
0
0
0
1
BX
0
0
1
0
CX
0
0
1
1
DX

24. АЛУ

Вход В:
Y11
Y12
Y13
Y14
Вход
1
0
x
x
DATA
0
1
x
x
ADDR
0
0
0
0
AX
0
0
0
1
BX
0
0
1
0
CX
0
0
1
1
DX

25. АЛУ

Результат выполненной операции
влияет на флаги
Флаг – это бит в специальном регистре
процессора, отвечающего за результат
последней выполненной в АЛУ операции

26. Флаги

CF (Carry Flag) – флаг переноса
OF (Overflow Flag) – флаг переполнения
ZF (Zero Flag) – флаг нуля
SF (Signum Flag) – флаг знака
PF (Parity Flag) – флаг четности

27. Флаги

CF = 1, если получился бит переноса
OF = 1, если есть переполнение
ZF = 1, если результат равен нулю
SF = 1, если знаковый бит равен 1
PF = 1, если количество единиц четно

28. Флаги

Флаги учитываются при выполнении
команд условных переходов:
JZ N – переход на адрес N, если ZF = 1
JNZ N – переход на адрес N, если ZF = 0
JS N – переход на адрес N, если SF = 1
JNS N – переход на адрес N, если SF = 0

29. Флаги

Пример:
Если AX = BX перейти на адрес N
CMP AX, BX
AX – BX, флаги
JZ N
Проверка флага ZF

30. Устройство управления

31. Микропрограммы

Все компоненты процессора работают
в соответствии с сигналами управления
(Y1-Y30)
Набор конкретных значений всех
сигналов Y1-Y30 называется
микрокомандой
Одна микрокоманда определяет
поведение процессора в одном такте

32. Микропрограммы

Машинная команда обычно
реализуется несколькими
микрокомандами
Для каждой машинной команды нужна
своя последовательность микрокоманд
Такая последовательность называется
микропрограммой

33. Микропрограммы

Машинные
команды
Оперативная
память
01
MOV AX, 10
0A
MOV BX, AX
ADD AX, BX
02
05
Таблица адресов
микропрограмм
Память микропрограмм
Адрес
Микрокоманда
01
Y1-Y30
02
Y1-Y30
...
...
10
Y1-Y30
Код операции
Адрес в памяти
микропрограмм
01
10
02
20
03
30
...
...
04
40
20
Y1-Y30
05
50
...
...
50
Y1-Y30
...
...

34. Микропрограммы

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

35. Цикл команды

Цикл команды включает:
Выборка команды
Декодирование команды
Выполнение команды
Запись результата

36. Цикл команды

1. Выборка команды – это чтение
из ОЗУ очередной машинной команды
Как процессор узнает, откуда брать
следующую команду?

37. Цикл команды

1. Выборка команды
Адрес команды находится в счетчике
команд
Первый байт команды (код операции)
считывается в регистр команды

38. Цикл команды

2. Декодирование команды
– определение по коду операции
адреса в памяти микропрограмм,
где располагается соответствующая
коду операции микропрограмма

39. Цикл команды

3. Выполнение команды –
осуществление необходимых для
данной машинной команды действий:
настройка АЛУ на нужную операцию
подготовка входов А и В
выполнение операции

40. Цикл команды

4. Запись результата – пересылка
результата операции в нужный регистр
или ячейку памяти

41. Цикл команды

Выборка
Машинные
команды
Оперативная
память
01
MOV AX, 10
0A
MOV BX, AX
02
ADD AX, BX
05
Счетчик
команд
Таблица адресов
микропрограмм
Декодирование
Регистр
команд
Запись
результата
Память микропрограмм
Адрес
Микрокоманда
01
Y1-Y30
02
Y1-Y30
...
...
Код операции
Адрес в памяти
микропрограмм
01
10
02
20
10
Y1-Y30
03
30
...
...
04
40
20
Y1-Y30
05
50
...
...
50
Y1-Y30
...
...
Выполнение
АЛУ
Регистры
Сигналы управления
(микрокоманды)

42. Цикл команды

В цикле команды необходимо также
предусмотреть формирование адреса
следующей команды
Как это делать?

43. Цикл команды

Обычно это делается путем увеличения
счетчика команд на 1
В том случае, если выполняются
команды перехода, в счетчик команд
из памяти заносится адрес перехода

44. Микропрограммы

Сигналы управления делятся на группы:
Y1-Y6 – управляющие регистры
и регистры работы с ОЗУ
Y7-Y18 – АЛУ
Y19-Y30 – переход на следующую
команду в памяти микропрограмм

45. Микропрограммы

Y19-Y22 определяют условие перехода
Y23-Y30 кодируют адрес безусловного
перехода

46. Микропрограммы

Y19 Y20 Y21 Y22
Переход
0
0
0
0
Переход по следующему адресу
0
0
0
1
Флаг CF сброшен
0
0
1
0
Флаг OF сброшен
0
0
1
1
Флаг ZF сброшен
0
1
0
0
Флаг SF сброшен
0
1
0
1
Флаг PF сброшен
0
1
1
0
Переход по следующему адресу
0
1
1
1
Безусловный переход по адресу
1
0
0
0
СТОП
1
0
0
1
Флаг CF установлен
1
0
1
0
Флаг OF установлен
1
0
1
1
Флаг ZF установлен
1
1
0
0
Флаг SF установлен
1
1
0
1
Флаг PF установлен
1
1
1
0
Переход по следующему адресу
1
1
1
1
Переход по адресу из таблицы адресов

47. Пример 1

Написать микропрограмму реализации
машинной команды
MOV AX, const

48. Пример 2

Написать микропрограмму реализации
машинной команды
MOV BX, AX
English     Русский Правила