Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
01.05.2014
Размер:
212.99 Кб
Скачать

3. Форматы данных

Исходя из ТЗ, данные должны быть представлены 16-ти и 32-хразрядными числами с фиксированной запятой. Ниже показаны форматы данных, используемых в проектируемой системе:

Слово:

Двойное слово:

Число с ПТ одинарной точности:

Отрицательные целые числа представляются в дополнительном коде.

4. Организация памяти

Так как процессор проектируется по гарвардской архитектуре, то память команд и память данных разделяются. Как было сказано ранее, память команд и память данных адресуются раздельно.

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

Память команд представляет собой flash-память с организацией 16К x 8. Начиная с нулевого адреса, в памяти размещаются пользовательские программы. Адреса с 0x3F0F по 0x3FFF предназначены для хранения таблицы векторов прерываний (15 векторов по 16 байт (4 команды)).

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

Память данных представляет собой SDRAM- или SRAM-память с организацией 128K x 8. На соседнем рисунке изображена регистровая модель, состоящая из 16 регистров общего назначения (РОН), а также 2 регистра спец функций: регистр флагов (eflags) и счётчик команд (Program Counter).

Аппаратно стек не реализуется, а адрес возврата хранится в одном из РОН (R0).

Формат регистра флагов приведён ниже:

Пояснения: каждый флажок занимает 1 бит. Используются 5 младших битов, остальные зарезервированы.

C (Carry) – флаг переноса из старшего разряда

Z (Zero) – флаг нулевого результата

O (Overflow) – флаг переполнения

I (Interrupt enable) – флаг маскирования прерываний (0 – все прерывания маскированы, 1 – прерывания разрешены)

S (Sign) – флаг знака результата

Структура адресного пространства приведена ниже:

Под порты ввода-вывода отводится диапазон адресов с 0x0001FFFF по 0x0011FFFF. Остальные адреса зарезервированы.

Согласно ТЗ, требуется представить три типа адресации: непосредственная, относительная и косвенная.

Непосредственная адресация предполагает, что операнд занимает одно из полей команды.

пример: ADD R5,#0FDh

Косвенная адресация предполагает, что в поле команды подставляется номер регистра, содержащего адрес операнда в памяти данных.

Пример: ADD R5,@R6 *В R6 – АДРЕС ОПЕРАНДА

Относительная адресация удобна для работы с массивами. Она предполагает, что адрес операнда складывается из некоторого базового адреса, хранящегося в одном из РОН, и смещения относительно этого базового адреса.

Пример: MOV R11, @R4 + 3

5. Формат команды

Согласно ТЗ, команда должна иметь длину 32 бита. Формат команды представлен на рисунке ниже:

Пояснения к формату команды.

ПА – префикс адресации. Задёт тип адресации операндов. Длина – 2 разряда. 00 – непосредственная, 01 – косвенная, 10 - относительная

ОпКод – опкод, задаёт код выполняемой операции. Имеет длину 5 бит

DST – номер регистра назначения. Имеет длину 4 бита.

OP1 – номер регистра-приёмника. Также 4 бита

F – признак адресации. При F=0 поле OP2 трактуется как константа и используется либо при непосредственной, либо при относительной адресации. При F=1 поле OP2 рассматривается как номер регистра

OP2 – операнд 2. Имеет длину 16 бит.