- •Факультет Информационных Технологий Кафедра «Информатики и вычислительной техники»
- •Содержание
- •Глава 1. Введение
- •Техническое задание на курсовое проектирование
- •Цели курсового проектирования
- •Задачи курсового проектирования
- •Необходимые технические и программные средства:
- •Глава 2. Теоретические сведения
- •2.1 Организация компьютерных систем
- •2.2 Устройство процессора (классическая архитектура эвм)
- •2.3 Обзор существующих архитектур
- •2.4 Принципы проектирования процессоров
- •2.5 Система команд процессора
- •2.6 Организация устройств процессора
- •Глава 3. Исследуемые устройства
- •3.1 Обзор архитектуры mips
- •Глава 4. Проектирование
- •4.1 Описание устройства
- •4.2 Этапы проектирования
- •4.2.1 Описание формата и точного набора инструкций
- •4.2.2 Разработка комбинационных и последовательных блоков процессора
- •4.2.3 Разработка операционного устройства
- •4.2.4 Разработка устройства управления
- •4.3 Временные диаграммы
- •4.4 Расчет быстродействия
- •Глава 5. Заключение
- •5.1 Список литературы
Глава 4. Проектирование
4.1 Описание устройства
В основу устройства, разработанного в процессе выполнения работы, легли принципы RISC реализованные в архитектуре процессоров MIPS. Процессор построен на базе фон-неймановской архитектуры (данные и инструкции в одной памяти). Тракт данных процессора и устройство управления являются многотактными. Управление осуществляется автоматом с программируемой логикой. Данный тип автомата совмещает в себе гибкость и удобство проектирования в отличие от автомата с жесткой логикой.
Характеристики устройства:
Полное название устройства: «16-и битный RISC процессор с микропрограммным устройством управления»;
Архитектура: RISC;
Разрядность данных: 16 бит;
Разрядность адреса: 16 бит;
Адресация: пословная;
Порядок следования битов: little-endian;
Количество и тип регистров: 16 регистров общего назначения;
Общее количество команд: 32 команды;
Общее число форматов команд: 3 формата;
Способы адресации: прямая, непосредственная, относительная;
Система операций: арифметико-логические, пересылки и загрузки, передачи управления.
Таблица условного назначения регистров:
Номер регистра |
Назначение |
0 |
0x0 - Константный нуль |
1 |
Временный регистр (аккумулятор) |
2-15 |
Регистры общего назначения |
4.2 Этапы проектирования
4.2.1 Описание формата и точного набора инструкций
Инструкции делятся на три типа: R, I и J. Каждая инструкция начинается с 4-битного кода операции. В дополнение к коду, инструкции R-типа определяют два регистра и функцию АЛУ; инструкции I-типа определяют регистр и непосредственное значение; инструкции J-типа состоят из кода операции и 12-битного адреса перехода.
Opcode |
Rg1 |
Rg2 |
Funct |
Opcode |
Rg1 |
Imm |
|
Opcode |
Addr |
Общая таблица инструкций:
№ |
HEX |
Opcode |
Funct |
Мнемоника |
Описание |
|
0 |
0000 |
- |
lw rg1, imm |
Загрузка слова из памяти |
|
1 |
0001 |
- |
mov rg1, rg2 |
Пересылка из rg2 в rg1 |
|
2 |
0010 |
- |
sw rg1, imm |
Сохранить слово в памяти |
|
3 |
0011 |
- |
cmp rg1, rg2 |
Сравнение |
|
4 |
0100 |
- |
jmp label |
Безусловный переход |
|
5 |
0101 |
- |
je imm |
Переход, если rg1 == rg2 |
|
6 |
0110 |
- |
jne imm |
Переход, если rg1 != rg2 |
|
7 |
0111 |
- |
jl Imm |
Переход, если rg1 < rg2 |
|
8 |
1000 |
- |
jg imm |
Переход, если rg1 > rg2 |
|
9 |
1001 |
- |
jle imm |
Переход, если rg1 <= rg2 |
|
a |
1010 |
- |
jge imm |
Переход, если rg1 >= rg2 |
|
b |
1011 |
0000…1111 |
операция rg1, rg2 |
Арифметические операции |
|
c |
1100 |
- |
ori rg1, imm |
Поразрядное ИЛИ с константой |
|
d |
1101 |
- |
lui rg1, imm |
Загрузка константы в старшую часть |
|
e |
1110 |
- |
movh rg1 |
Пересылка из hi регистра |
|
f |
1111 |
- |
jmr rg1 |
Безусловный переход по регистру |
Полная таблица инструкций:
№ |
HEX |
Opcode |
HEX funct |
Funct |
Мнемоника |
Описание |
|
0 |
0000 |
|
- |
lw rg1, imm |
Загрузка слова из памяти |
|
1 |
0001 |
|
- |
mov rg1, rg2 |
Пересылка из rg2 в rg1 |
|
2 |
0010 |
|
- |
sw rg1, imm |
Сохранить слово в памяти |
|
3 |
0011 |
|
- |
cmp rg1, rg2 |
Сравнение |
|
4 |
0100 |
|
- |
jmp label |
Безусловный переход |
|
5 |
0101 |
|
- |
je, imm |
Переход, если rg1 == rg2 |
|
6 |
0110 |
|
- |
jne, imm |
Переход, если rg1 != rg2 |
|
7 |
0111 |
|
- |
jl, Imm |
Переход, если rg1 < rg2 |
|
8 |
1000 |
|
- |
jg, imm |
Переход, если rg1 > rg2 |
|
9 |
1001 |
|
- |
jle, imm |
Переход, если rg1 <= rg2 |
|
a |
1010 |
|
- |
jge, imm |
Переход, если rg1 >= rg2 |
|
b |
1011 |
0 |
0000 |
add rg1, rg2 |
Сложение |
|
|
|
1 |
0001 |
sub rg1, rg2 |
Вычитание |
|
|
|
2 |
0010 |
mul rg1, rg2 |
Умножение |
|
|
|
3 |
0011 |
div rg1, rg2 |
Деление |
|
|
|
4 |
0100 |
and rg1, rg2 |
Поразрядное И |
|
|
|
5 |
0101 |
or rg1, rg2 |
Поразрядное ИЛИ |
|
|
|
6 |
0110 |
xor rg1, rg2 |
Поразрядное Искл-ИЛИ |
|
|
|
7 |
0111 |
nor rg1, rg2 |
Поразрядное И-НЕ |
|
|
|
8 |
1000 |
nand rg1, rg2 |
Поразрядное ИЛИ-НЕ |
|
|
|
9 |
1001 |
par rg1, rg2 |
Четность |
|
|
|
a |
1010 |
npar rg1, rg2 |
Нечетность |
|
|
|
b |
1011 |
sll rg1, shift |
Логический сдвиг влево |
|
|
|
c |
1100 |
slr rg1, shift |
Логический сдвиг вправо |
|
|
|
d |
1101 |
sar rg1, shift |
Арифметический сдвиг вправо |
|
|
|
e |
1110 |
ror rg1, shift |
Циклический сдвиг вправо |
|
|
|
f |
1111 |
rol rg1, shift |
Циклический сдвиг влево |
|
c |
1100 |
|
- |
ori rg1, imm |
Поразрядное ИЛИ с константой |
|
d |
1101 |
|
- |
lui rg1, imm |
Загрузка константы в старшую часть регистра |
|
e |
1110 |
|
- |
movh rg1 |
Пересылка из hi регистра |
|
f |
1111 |
|
- |
jmr rg1 |
Безусловный переход по регистру |