
2. Основные элементы архитектуры микропроцессора. Отличительные особенности CISC- и RISC- архитектуры. Типовые форматы данных.
ОСНОВНЫЕ ЭЛЕМЕНТЫ АРХИТЕКТУРЫ МИКРОПРОЦЕССОРА
-
Типы и форматы данных (представление чисел в формате с плавающей., фиксированной. точкой.) Организация памяти
-
Состояния и назначения программно-доступных регистров
-
Способы адресации памяти и способы адресации ПУ
-
Состав системы команд; типы и форматы команд
-
Структура процессорного цикла
-
Организация системы прерываний
Принципы взаимодействия ядра процессора с периферийными устройствами
Практически все микропроцессоры содержат по меньшей мере следующие элементы: АЛУ, несколько регистров, счетчик команд, систему декодирования команд, секцию управления и синхронизации, буферы и защелки, внутренние шины цепей управления, несколько входов и выходов управления.
Кроме того кристалл микропроцессора может также содержать функциональные устройства: ПЗУ, ОЗУ, ряд портов ВВ, внутренние цепи ГТИ – часов, программируемый таймер, систему выбора приоритета прерываний, логическое управление прямым доступом к памяти(ПДП).
К основным относят группы CISC и RISC.
RISC – архитектура процессора, в которой быстродействие увеличивается за счёт упрощения команд, чтобы их декодирование было проще, а время выполнения - короче.
4 основных принципа RISC:
-
Любая операция должна выполняться за один такт, вне зависимости от ее типа.
-
Система команд должна содержать минимальное количество наиболее часто используемых простейших инструкций одинаковой длины.
-
Операции обработки данных реализуются только в формате “регистр - регистр“
-
Состав системы команд должен быть “ удобен “ для компиляции операторов языков высокого уровня
СISC – процессорная архитектура, основанная на усложнённом наборе команд, которая характеризуется следующим набором свойств:
-
нефиксированное значение длины команды;
-
арифметические действия кодируются в одной команде;
-
небольшое число регистров, каждый из которых выполняет строго определённую функцию.
ТИПОВЫЕ ФОРМАТЫ ДАННЫХ
-
целые числа с фиксированной точкой, точка зафиксирована после младшего разряда
-
Отрицательные числа
-
С плавающей точкой: 0,13e6. (Плавающая запятая - форма представления действительных чисел, в которой число хранится в форме мантиссы и показателя степени.)
-
представление чисел с фиксированной точкой.
ОСНОВНЫЕ СПОСОБЫ АДРЕСАЦИИ:
-
подразумеваемая адресация (Программа сама подразумевает что о один из операндов берется из аккумулятора: Push R0, POP R0)
-
непосредственная адресация
-
абсолютная адресация (указывается hex адрес операнда): JMP $3FF: jump к команде по адресу 3FFh
-
относительная адресация
-
прямая регистровая адресация
косвенная регистровая адресация (Когда указано на адрес первой команды, а затем путем прибавления числа к данному он условно указывает на др.)
ТИПОВЫЕ ФОРМАТЫ И СОСТАВ КОМАНД МК ОБЩЕГО НАЗНАЧЕНИЯ.
-
Ввод/Вывод: IN R3, $16; OUT $16, R12
-
Арифметические команды
-
Сложение: ADD R0,R1, суммирование с учетом переноса: ADC R0,R1 (R0R0+R1+C)
-
Вычитание: SUB R0,R1; вычитание с учетом переноса: SBC R0,R1 (R0 R0-R1-C)
-
Произведение: MUL – беззнаковое, MULS – знаковое
-
Деление: DIV – беззнаковое, IDIV – знаковое
-
PUSH - загрузит в стек, POPвыгрузить из стека
-
Сдвиги: циклический сдвиг: ROL, RON;
-
Логические операции: AND, OR, IOR-исключающее ИЛИ, NAND, NOR; операция сравнения – CP
-
Вызов: RCALL – относительный вызов, ICALL – косвенный вызов, CALL – абсолютный вызов
-
Переходы: относительный безусловный переход – RJMP, косвенный переход – IJMP, абсолютный безусловный переход – JMP; условные переходы: Skip, Branch
-
Служебные и спец команды: NOP, SLEEP
Вычитание осуществляется через сложение в дополнительном коде (например: R3+(-R5)). Основной смысл использования дополнительного кода - это одинаковость операций сложения и вычитания с положительными и отрицательными числами, что упрощает аппаратную реализацию и программирование ЭВМ. Более того, использование дополнительного кода также делает и сами операции сложения и вычитания одинаковыми.
Пример представления отрицательного числа в дополнительном коде:
Возьмем число 15:
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
-
Инвертируем:
0
0
0
0
1
1
1
0
-
Инкрементируем:
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
Получили число 15