Скачиваний:
41
Добавлен:
03.06.2014
Размер:
123.96 Кб
Скачать

2.2. Разработка архитектуры цп

2.2.1. Уточнение структуры системы

Рис. 1

Обобщенная структура процессора, соответствующая гарвардской архитектуре, приведена на рис. 1. Она представляет собой одноплатную ЭВМ, предназначенную для встроенных применений. На плате размещаются: ЦП, память данных, счетчик-таймер, адаптер интерфейса. Кроме того, на плате могут размещаться вспомогательные схемы и интерфейсные схемы для подключения внешних устройств (на рис. 2 эти схемы не показаны).

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

2.2.2. Разработка архитектуры внешних выводов

Для разрабатываемого процессора выбираем стандартный корпус с 132 выводами.

Frame

BHE

OUT

RD

INTA

WR

INT

HLDA

HLD

ALE

64

AD

CPU

+5V

Reset

CLC

Рис. 2

Процессор (рис. 2) имеет совмещенную шину адреса и данных (AD), разрядностью 64. Сигнал ALE используется для фиксации адреса на внешнем регистре-защелке, а пара сигналов HLD и HLDA – для реализации механизма захвата шины. Сигналы INT и INTA являются сигналами запроса и подтверждения прерывания. Если на корпусе имеется достаточное число свободных выводов, то целесообразно ввести несколько уровней запроса на прерывание. Линии RD (Чтение), WR (Запись), IN (Ввод), OUT (Вывод), BHE (Разрешение записи старшего байта) задают выполняемую на шине операцию. Линия FRAME используется для организации режима пакетного обмена между ОЗУ и внутренними кэшами. Появление данного сигнала на шине означает начало транзакции, а снятие – указывает на то, что следующий цикл передачи данных на шине является последним. Оставшиеся выводы используем для дублирования питания и заземления.

2.2.3. Выбор форматов данных

Разрабатываемый процессор, в соответствии с техническим заданием, работает с двумя форматами данных: байт и слово (см. рис. 2).

Числа с фиксированной точкой представляют собой целые со знаком или без него. Целые числа со знаком представляются в дополнительных кодах.

6

0

S

Байт

7

14

0

S

Слово

15

Рис. 2

Адреса представляются в виде целых чисел без знака.

2.2.4. Определение модели памяти и структуры регистровой памяти

В соответствии с техническим заданием необходимо реализовать 64 шестнадцати разрядных функционально ориентированных регистра общего назначения. Каждому регистру условно присвоено имя R0 – R63. Все регистры общего назначения разделены на 3 группы по своей функциональной ориентации.

R32

R62

R63

R0

R1

.

.

R30

R31

R33

.

.

R60

R61

R54

R55

16

0

16

0

16

0

R0 – R15 регистры для хранения данных

R32 – R55 регистры для хранения базовых адресов

R60 – R63 регистры для хранения индексов

IP

15

0

Flags

РК

63

0

РД

15

0

РА

15

0

РКОП

15

0

Р1

15

0

Р2

15

0

Р3

15

0

Р4

15

0

Регистры R0 – R63 доступны для пользователя, как на чтение, так и на запись.

Регистры IP, Flags, Р1-P4, РКОП, РК, РД и РА являются системными .

Регистр IP представляет собой счётчик команд, в котором постоянно хранится адрес следующей команды, которую необходимо выполнить. Данный регистр недоступен для пользователя, однако существует один из способов его изменения – это команды перехода.

В регистре Flags хранится состояние процессора (см. рис. 3).

Z – признак нулевого результата;

C – признак переноса из старшего разряда;

S – знак результата;

O – признак переполнения результата;

I – разрешение прерывания;

T – пошаговый режим;

U – режим супервизор/пользователь.

Регистр РК представляет собой регистр команд, в который записывается выполняемая команда.

Регистр РД – регистр данных.

Регистр РКОП – регистр кода операции.

Регистр РА– регистр адреса.

Регистры Р1, Р2, Р3 и Р4 это внутренние регистры АЛУ. Они предназначены для хранения 1-го и 2-го операндов, а также результатов и флагов выполнения операции. Это внутренние регистры и они недоступны для программиста.

Соседние файлы в папке Сидоров 2011г