Проектирование универсального процессора

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 01.02.2013
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Реферат

Лошкарев Д.А., Мигалев Ф.В. Проектирование универсального процессора. Курсовой проект; ВятГУ, каф. ЭВМ; рук. Матвеев В.Д. - Киров, 2009. ПЗ 62 с., рис.22, табл.28, 3 прил.

ПРОЦЕССОР, ОПЕРАЦИОННОЕ УСТРОЙСТВО, УСТРОЙСТВО УПРАВЛЕНИЯ, АППАРАТУРА ПРЕРЫВАНИЙ, КОНВЕЙЕР, ОЧЕРЕДЬ КОМАНД.

Объект разработки - универсальный процессор.

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

быстродействие - 4.0 млн. оп/сек;

объём ОЗУ - 256 Мбайт;

ширина выборки из памяти - 64 бит;

количество прерываний - 13, вложенность - 5;

форматы данных с ФЗ - 8/16/32 разряда;

форматы данных с ПЗ - 64 разряда;

время доступа к ОЗУ 150 нс;

дополнительная функция - y =ln (x2)

Разработана структурная схема и технические задания на операционное устройство, устройства управления, оперативное запоминающее устройство, постоянное запоминающее устройство и арифметическое устройство для операций над числами с плавающей запятой. Произведен расчёт быстродействия процессора.

Содержание

Введение

1. Постановка задачи

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

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

2.2 Определение РОН

2.3 Выбор видов адресации

2.4 Выбор форматов команд

2.5 Разработка системы команд

2.6 Определение внутренних регистров

2.7 Выбор системы управления памятью

3. Разработка структуры процессора

3.1 Разработка ступеней конвейера

3.2 Разработка операционного устройства

3.3 Разработка структуры ОЗУ

3.4 Разработка кэш-памяти

3.5 Разработка очереди команд

3.6 Разработка аппаратуры прерываний

3.7 Разработка устройства управления и форматов микрокоманд

3.8 Математический сопроцессор

3.9 Внешние устройства

3.10 Разработка арбитра шины

4. Разработка граф-схем алгоритмов работы микропроцессора

4.1 Разработка блока формирования эффективного и физического адреса

4.2 Разработка ГСА командного цикла микропроцессора

5. Расчетная часть

5.1 Расчёт быстродействия

5.2 Расчёт надёжности аппаратуры процессора

5.3 Расчет потребляемой мощности

6. Разработка подпрограммы вычисления функций

Заключение

Перечень сокращений

Библиографический список

Приложение

Введение

Процессор (ПР) занимает центральное место в структуре ЭВМ, так как он осуществляет управление взаимодействием устройств, входящих в состав ЭВМ.

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

Современные процессоры способны работать с различными способами представления чисел, различающиеся как разрядностью (восемь, шестнадцать или тридцать два), так и формой (с плавающей запятой (ПЗ) и фиксированной (ФЗ)).

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

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

В современных компьютерах адресная часть команды представлена в виде логического адреса (ЛА), а не физического (ФА). Главными причинами такого представления являются необходимость защиты данных и программ в многозадачных режимах работы, динамического распределения памяти и эффективного ее использования, а также переносимости программ с младших моделей.

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

Для повышения производительности процессоров, помимо выбора более быстродействующей элементарной базы, используют структурные методы ее повышения. В частности к ним относятся использование КЭШ-памяти различных уровней, памяти с расслоением обращений, двухпортовой памяти, очереди команд, параллельного выполнения стадий командного цикла на конвейере.

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

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

1. Постановка задачи

Разработать универсальный ПР со следующими характеристиками:

быстродействие - 4.0 млн. оп/сек;

объём ОЗУ - 256 Мбайт;

ширина выборки из памяти - 64 бит;

количество прерываний - 13, вложенность - 5;

форматы данных с ФЗ - 8/16/32 разряда;

форматы данных с ПЗ - 64 разряда;

время доступа к ОЗУ 150 нс;

дополнительная функция - y =ln (x2)

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

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

По техническому заданию ПР должен поддерживать (использовать в качестве операндов) числа в формате с фиксированной запятой (ФЗ): байт - 8 бит, слово - 16 бит и двойное слово - 32 бита. Действительные числа в формате с плавающей запятой (ПЗ) обрабатывает сопроцессор (СоПР) с разрядностью 64 бита.

Для ускорения передачи данных шины данных (ШД) имеют разрядность 32 бита. 8-битные и 16-битные данные при передаче по ШД располагаются в младших разрядах.

Целые числа без знака представлены в прямом коде (ПК), целые числа со знаком - в дополнительном коде (ДК). Процессор не различает числа со знаком и без знака, это решает программист.

Форматы данных:

1) Байт со знаком. Диапазон представления чисел от -128 до 127.

2) Байт без знака. Диапазон представления чисел от 0 до 255.

3) Слово со знаком. Диапазон представления чисел от -32768 до 32767.

4) Слово без знака. Диапазон представления чисел от 0 до 65535.

5) Двойное слово со знаком. Диапазон представления чисел от -2147483648 до 2147483647.

6) Двойное слово без знака. Диапазон представления чисел от 0 до 4294967295.

7) Формат чисел с плавающей запятой. Диапазон представления чисел от 4,94 Ч 10?324 до 1.79 Ч 10308.

Данные такого типа состоят из знака, положительной мантиссы (51 бит) и смещенного порядка (12 бит).

2.2 Определение регистров общего назначения

Регистры этой группы используются в программе для хранения:

1) операндов логических и арифметических операций;

2) компонент адреса;

3) указателей на ячейки памяти.

Регистры общего назначения, или арифметические регистры, обозначаются AX, BX, CX и DX (рис.2.2). Каждый из них можно также рассматривать как пару независимо адресуемых восьмиразрядных регистров. Левый байт является старшей частью (high), а правый - младшей частью (low) и соответственно обозначаются старшие - AH, BH, CH и DH, младшие - AL, BL, CL и DL. В команде разрядность данных определяется полем P и состоянием триггера разрядности Тр, следовательно, при Тр=0 и P=0 команда работает с 8-разрядными данными, при Тр=0 и P=1 - с 16-разрядными, а при Тр=1- с 32-разрядными.

В таблице 1 представлен формат регистров общего назначения. В таблице 2 представлено кодирование РОН в командах.

Таблица 1 - Формат регистров общего назначения
31 16 15 8 7 0

EAX

AH

AL

AX

EBX

BH

BL

BX

ECX

CH

CL

CX

EDX

DH

DL

DX

DI

SI

BP

19 SP 0

- EAX - аккумулятор, может использоваться в качестве неявного операнда в некоторых командах;
- EBX, BP - базовые регистры, используются в качестве базового регистра, при базовой адресации;
- SI, DI - индексные регистры, используются в качестве индекса при индексной адресации.
- ECX - счетчик, является счетчиком при организации циклов;
- EDX - данные, является расширением регистра AX при умножении двойных слов, а также при операциях деления хранит остаток;
- SP - указатель стека.
- AX - регистр аккумулятор и основной регистр, используемый в арифметических операциях.
- BX часто используется для хранения адреса начала таблицы перекодирования символов, а также может содержать смещение для косвенной адресации.
- CX - счетчик числа повторений циклов и блочных пересылок.
- DX используется как расширение аккумулятора для операций, дающих 32-разрядный результат. Регистры общего назначения используются также для передачи значений или адресов параметров к подпрограммам.
Таблица 2 - Кодирование РОН в командах.

РЕГ

Регистр (Тр и Р = 0и0/0и1/1иX)

РЕГ

Регистр (Тр и Р = 0и0/0и1/1иX)

000

AL / AX / EAX

100

AH / BP / BP

001

BL / BX / EBX

101

BH / SP / SP

010

CL / CX / ECX

110

CH / SI / SI

011

DL / DX / EDX

111

DH / DI / DI

2.3 Выбор видов адресации
Система команд процессора предусматривает десять видов адресации (таблица 3).
При мнемонической записи команды на языке ассемблера первый операнд указывает приёмник информации, второй - источник. Признак адресации кодируется соответствующими битами в формате команды.
Эффективный адрес вычисляется с использованием комбинации следующих компонентов:
Смещение (С) -20-разрядное число, включенное в команду.
База (Б) - содержимое базового регистра (обычно используется для указания на начало некоторого массива).
Индекс (И) - содержимое индексного регистра. Обычно используется для выбора элемента массива.
Таблица 3 - Виды адресации

Способ адресации

Пояснения

Исполнительный адрес

Пример использования

1

Непосредственная

операнд указывается непосредственно в самой команде

Операнд в команде

MOVAH, 4Ch

2

Регистровая

операнд находится в регистре процессора, указанном в команде

Операнд в регистре

MOVСX, AX

3

Косвенная регистровая

исполнительный адрес операнда хранится в регистре процессора. В команде же указывается данный регистр

Аисп=Р

MOVAX, [DX]

4

Прямая

в адресной части команды указан адрес

ячейки памяти, к которой происходит обращение при выполнении команды

Аисп=Aк

ADD[02531h], AX

5

Индексная

адресная часть команды содержит адрес ячейки памяти, а регистр, указанный явно или неявно - смещение относительно этого адреса

Аисп=И+С

ADD AX, [SI +0254h]

6

Базовая регистровая

базовый регистр содержит полноразрядный адрес, а в адресной части команды содержится смещение относительно этого адреса.

Аисп=Б+С

ADDAX, [BX+0Ch]

7

Базово-индексная

адрес операнда определяется суммированием содержимого регистра базы и регистра индекса

Аисп=Б+И

ADDAX, [BX][SI]
8

Базово-индексная со смещением

адрес операнда определяется суммированием содержимого регистра базы, смещения и регистра индекса

Аисп=Б+И+С

ADD AX, [BX][SI][034h]

9

Базово-индексная автоинкрементная

после получения адреса операнда, содержимое индексного регистра увеличивается

Аисп=Б+И

И:=И+1

MOV[BP][SI]++, CX

10

Базово-индексная автодекрементная

после получения адреса операнда, содержимое индексного регистра уменьшается

Аисп=Б+И

И:=И-1

MOV [BP][SI]--, CX
В таблице 3 использованы следующие условные обозначения:
Aисп - исполнительный адрес;
Ак - адресный код;
Б - содержимое базового регистра;
Р - содержимое регистра;
И - содержимое индексного регистра;
С - смещение.
2.4 Выбор форматов команд
Для обеспечения функциональной полноты набора команд процессора в нем предусмотрено три формата команд: безадресные, одноадресные и двухадресные. Соответствующие поля команд совмещены в большинстве форматов, что позволяет упростить дешифрацию.
Для увеличения номинального быстродействия в системе команд отсутствуют двухадресные команды типа память-память, т.е. одним операндом должен быть РОН, либо непосредственный операнд (НО). Введение такого формата команд не только потребует увеличения разрядности управляющей части, но и увеличения количества обращений к памяти, что отразится на быстродействии и эффективности хранения команд для разрабатываемого ПР.
1) Двухадресные команды
Двухадресные команды можно разделить по типам источника и приёмника, участвующих в операции:

· регистр - регистр;

· регистр - память;

· регистр - непосредственный операнд.

Формат двухадресной команды:

Двухадресная команда определяется по полю Ф (1 бит), равному нулю.

Рисунок 1 - Формат двухадресной команды

Выбор полей ПА2 или РЕГ2 определяется по значению ПА1: если 00 или 01, то используется РЕГ2, в остальных случаях ПА2.

Назначение полей:

НП (1 бит) - направление пересылки результата: 1 - в память, 0 - в регистр;

КОП (5 бит) - код операции;

Р (1 бит) - разрядность операндов: 0 - 8 бит, 1 - 16 бит, при Тр=0; при Тр=1 разрядность операндов 32 бита;

ПА1 (2 бита) и ПА2 (3 бита) - коды для видов адресаций, используемых в операции;

РЕГ1 (3 бита) и РЕГ2 (3 бита) - номера регистров;

НО - непосредственный операнд;

Таблица 4 - Сочетания видов адресации

ПА1

ПА2

Способ адресации

10

0хх

РЕГ <-> НО

10

1хх

[РЕГ] <- НО

00

хxx

РЕГ <-> РЕГ

01

хxx

[РЕГ] <-> РЕГ

11

000

[А] <-> РЕГ

11

001

[И]+С <-> РЕГ

11

010

[Б]+C <-> РЕГ

11

011

[Б]+[И] <-> РЕГ

11

100

[Б]+[И]+С <-> РЕГ

11

101

[Б]+[И++] <-> РЕГ

11

11х

[Б]+[И--] <-> РЕГ

2) Одноадресные команды

Формат одноадресной команды:

Одноадресная команда определяется по полям Ф1 и Ф2, равным единице и нулю соответственно.

Рисунок 2 - Формат одноадресной команды

Выбор полей ПА2 или РЕГ1 определяется по значению ПА1: если 00 или 01, то используется РЕГ1, в остальных случаях ПА2.

Назначение полей:

КОП (5 бит) - код операции;

Р (1 бит) - разрядность операндов: 0 - 8 бит, 1 - 16 бит, при Тр=0; при Тр=1 разрядность операндов 32 бита;

ПА1 (2 бита) и ПА2 (3 бита) - коды для видов адресаций, используемых в операции;

РЕГ1 (3 бита) - номера регистра;

НО - непосредственный операнд;

Таблица 5 - Используемые виды адресаций

ПА1

ПА2

Способ адресации

00

xxx

РЕГ

01

ххх

[РЕГ]

11

000

[А]

11

001

[И]+С

11

010

[Б]+C

11

011

[Б]+[И]

11

100

[Б]+[И]+С

11

101

[Б]+[И++]

11

11х

[Б]+[И--]

3) Безадресные команды

Формат безадресной команды:

Безадресная команда определяется по полям Ф1 и Ф2, равным единице, а так же по полю Ф3, равному нулю.

Рисунок 3 - Формат безадресной команды

Назначение полей:

КОП (5 бит) - код операции;

Ф4 - специальное поле для определения того, что данная команда является либо обычной безадресной командой(при Ф4=0), либо безадресной командой, работающей с отдельным триггером разрядности данных;

ФЛАГ (3 бита) - номер флага;

* - зарезервировано.

4) Команды сопроцессора.

Формат команды сопроцессора:

Безадресная команда определяется по полям Ф1, Ф2 и Ф3 равным единице.

Рисунок 4 - Формат команды сопроцессора

2.5 Разработка системы команд

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

Система команд (94).

1) Двухадресные команды (20).

1) Арифметические команды (4).

Таблица 6 - Арифметические команды

Код операции

Мнемоника

Описание

00000

ADD X,Y

сложение

00001

SUB X,Y

вычитание

00010

ADC X,Y

сложение с переносом

00011

SBB X,Y

вычитание с переносом

2) Логические команды (4).

Таблица 7 - Логические команды

Код операции

Мнемоника

Описание

00100

AND X,Y

логическое «И»

00101

OR X,Y

логическое «ИЛИ»

00110

XOR X,Y

«исключающее ИЛИ»

00111

TEST X,Y

логическое «И» без записи результата

3) Команды пересылки (3).

Таблица 8 - Команды пересылки

Код операции

Мнемоника

Описание

01000

MOV X,Y

пересылка операнда Y на место X

01001

LEA X,Y

загрузка ЭА в регистр

01010

XCHG X,Y

обмен данными

4) Команды сравнения (1).

Таблица 9 - Команды сравнения

Код операции

Мнемоника

Описание

01011

CMP X,Y

сравнение операндов

5) Команды сдвига (8).

Таблица 10 - Команды сдвига

Код операции

Мнемоника

Описание

01100

RCL X,Y

циклический сдвиг влево через CF

01101

RCR X,Y

циклический сдвиг вправо через CF

01110

ROL X,Y

циклический сдвиг влево

01111

ROR X,Y

циклический сдвиг вправо

10000

SAL X,Y

арифметический сдвиг влево

10001

SAR X,Y

арифметический сдвиг вправо

10010

SHL X,Y

логический сдвиг влево

10011

SHR X,Y

логический сдвиг вправо

2) Одноадресные команды (45).

1) Арифметические команды (6).

Таблица 11 - Арифметические команды

Код операции

Мнемоника

Описание

00000

INC X

инкремент операнда

00001

DEC X

декремент операнда

00010

DIV X

деление

00011

MUL X

умножение

00100

IDIV X

деление со знаком

00101

IMUL X

умножение со знаком

2) Логические команды (2).

Таблица 12 - Логические команды

Код операции

Мнемоника

Описание

00110

NOT X

инвертирование операнда

00111

NEG X

инверсия знака операнда

3) Команды передачи управления (5).

Таблица 13 - Команды передачи управления

Код операции

Мнемоника

Описание

01000 100

CALL A

вызов подпрограммы

01001 100

FARCALL А

дальний вызов

01010 100

LOOP A

переход на А, пока CX<>0

01011 100

INT N

программное прерывание

01100 100

JMP A

безусловный переход

4) Команды условного перехода (14).

Таблица 14 - Команды условного перехода

Код операции

Мнемоника

Описание

01101 101

JC

если перенос

01101 100

JNC

если нет переноса

01110 101

JE

если равно

01110 100

JNE

если не равно

01111 101

JZ

если 0

01111 100

JNZ

если не ноль

10000 100

JG

если больше

10000 101

JNG

если не больше

10001 100

JL

если меньше

10001 101

JNL

если не меньше

10010 101

JS

если знак минус

10010 100

JNS

если знак плюс

10011 101

JO

если переполнение

10011 100

JNO

если нет переполнения

5) Привилегированные команды (12).

Таблица 15 - Привилегированные команды

Код операции

Мнемоника

Описание

10100 000

LGDT

загрузка GDTR

10100 001

SGDT

сохранение GDTR

10101 000

LIDT

загрузка IDTR

10101 001

SIDT

сохранение IDTR

10110 000

LDS

загрузка DS

10110 001

SDS

сохранение DS

10111 000

LSS

загрузка SS

10111 001

SSS

сохранение SS

11000 000

LES

загрузка ES

11000 001

SES

сохранение ES

11001 000

LCS

загрузка CS

11001 001

SCS

сохранение CS

6) Прочие одноадресные команды (6).

Таблица 16 - Прочие одноадресные команды

Код операции

Мнемоника

Описание

11010

IN N

чтение из порта

11011

OUT N

запись в порт

11100

POP X

извлечение из стека

11101

PUSH X

загрузка в стек

3) Безадресные команды (9).

Таблица 17 - Безадресные команды

Код операции

Мнемоника

Описание

00001

NOP

нет операции

00010

HLT

останов процессора

00011

RET

возврат из ПП

00100

IRET

возврат из прерывания

00101

STI

разрешение прерывание

00110

CLI

запрещение прерываний

00111

SMRL

сброс триггера разрядности

01000

SMRH

установка триггера разрядности

01001 F

INVF F

инверсия флага

01001 F

CLRF F

сброс флага

01001 F

INSTF F

установка флага

01010

POPF

извлечение регистра флагов из стека

01011

PUSHF

размещение регистра флагов в стеке

4) Команды для обработки чисел с ПЗ (команды сопроцессора) (11).

Таблица 18 - Команды сопроцессора

Код операции

Мнемоника

Описание

00000

FMOV

загрузка вещественного числа

00001

FPUSH

сохранение в стеке

00010

FPOP

выборка из стека

00011

FADD

сложение с ПЗ

00100

FSUB

вычитание с ПЗ

00101

FMUL

деление с ПЗ

00110

FDIV

умножение с ПЗ

00111

FINC

инкремент с ПЗ

01000

FDEC

декремент с ПЗ

01001

FNOP

пустая операция

01010

FCMP

сравнение операндов

5) Команды аппаратуры прерывания (6)

Таблица 19 - Команды аппаратуры прерывания

Код операции

Мнемоника

Описание

01010

LDM

Загрузка маски АП

01011

RDM

Чтение маски АП

01100

LDRS

Загрузка регистра состояния АП

01101

RDRS

Чтение регистра состояния АП

01110

LDMSK X

Поразрядная загрузка регистра маски в АП

01111

CRMSK Х

Поразрядная очистка регистра маски в АП

В системе команд процессора существует возможность расширения набора команд для всех форматов.

Коды флагов ( F).

Таблица 20 - Кодирование флагов

Код флага

Мнемоника

Описание

000

ZF

флаг нулевого результата

001

CF

флаг переноса

010

SF

флаг знакового разряда результата

011

OF

флаг переполнения

1хх

PF

флаг фиксации четности результата

2.6 Определение внутренних регистров процессора

Регистрами называют элементы высокоскоростной памяти, расположенные внутри процессора в непосредственной близости от исполнительных устройств. Доступ к ним осуществляется несравнимо быстрее, чем к ячейкам оперативной памяти (ОП). Внутренние регистры процессора подразделяются на следующие группы:

- пользовательские регистры, которые в свою очередь также подразделяются на:

а) регистры общего назначения (РОН) - программно доступные регистры, предназначенные для хранения данных и адресов;

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

в) регистры состояния и управления - содержат информацию о состоянии процессора, исполняемой программы, позволяют изменить это состояние;

- системные регистры - предназначены для обеспечения различных режимов работы, сервисных функций. К ним относятся регистры управления памятью (RgGDT и так далее).

Разрядность РОН определяется максимальной разрядностью данных, обрабатываемых устройством. Следовательно, РОН данного устройства будут 32х разрядными (AX, BX, CX, DX) и 20ти разрядные (BP, SP, SI, DI). Каждый из РОН может быть использован в арифметико-логических операциях. Однако каждый РОН имеет своё определённое назначение. Это позволяет уменьшить разрядность команд при неявном использовании какого-либо из РОН.

Так как в проектируемом устройстве используются данные разрядностью восемь, шестнадцать и тридцать два, в РОН'ах есть возможность адресации к младшим 8 и 16 битам, поделённым на восьмибитные поля.

Регистры общего назначения

Данный вопрос был рассмотрен в п. 2.2.

2) Указатель команд, стека и регистр слова состояния ПР

Регистр командного указателя IP содержит смещение относительно базы сегмента кода на команду, которая должна быть выполнена.

Рисунок 5 - Формат регистра командного указателя

В качестве указателя стека используется регистр SP (20 разрядов). Данный регистр содержит относительный адрес вершины стека и включен в РОН.

В состав архитектуры процессора входит 32х разрядный регистр слова состояния ПР PSW.

Рисунок 6 - Формат слова состояния процессора

Слово состояния содержит следующую информацию:

M - текущий режим работы процессора (00 - реальный режим, 11 - защищённый режим);

Р - признак привилегий процесса (00 - системный, 11 - пользовательский);

ERR - код ошибки;

DF - флаг текущего сегментного регистра (0 - DS,1- ES);

TF - флаг трассировки;

IF - флаг запрещения прерываний;

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

OF - признак переполнения;

SF - флаг знакового разряда результата;

СF - признак переноса;

IRF - индексный регистр, используемый при индексной адресации (0 - SI, 1 - DI).

3) Регистры сегментов

В структуру ПР входят четыре сегментных регистра. Их существование обусловлено спецификой организации и использования памяти ПР (сегментная организация памяти).

Регистры сегментов содержат 5-битные указатели (в реальном режиме) или селекторы (в защищенном режиме) сегментов: CS (сегмент кодов команд); SS (сегмент стека); DS (сегмент данных); ES (дополнительный сегмент). Использование сегментных регистров определяется типом обращения к памяти. С каждым из 4-х сегментных регистров связаны теневые регистры дескрипторов, автоматически загружаемые при загрузке соответствующих сегментных регистров.

Формат селектора в защищенном режиме

Рисунок 7 - Формат селектора в защищенном режиме

4) Регистры базы

Регистр базы глобальной GDTR представляет собой 32-х разрядный регистр, старшие 19 разрядов указывают базовый адрес таблицы дескрипторов в ОП, а младшие 13 разрядов указывают размер таблицы (рисунок 8).

Регистр таблицы дескрипторов сегментов GDTR.

Рисунок 8 - Формат регистра дескрипторов сегментов

В регистре 13-разрядный размер таблицы в дескрипторах, следовательно, максимально возможное число сегментов 2^13=8K, чего вполне достаточно для нормального функционирования.

В процессор также включен регистр дескрипторов векторов прерываний IDTR (рисунок 9), в котором содержится базовый адрес таблицы адресов подпрограмм обработки прерываний.

Регистр таблицы адресов прерываний (IDTR).

Рисунок 9 - Формат регистра дескрипторов векторов прерываний

2.7 Выбор системы управления памятью

Разрабатываемое устройство способно работать как в режиме реальной адресации, так и в защищённом режиме. Ввиду того, что возможно использование восьмиразрядных операндов (по ТЗ), минимальный размер адресуемой ячейки памяти равен одному байту.

Адресная часть команд поступает в процессор в виде логического адреса (ЛА). Необходимость введения логической адресации обусловлена следующими факторами:

1) позволяет наращивать ОП без изменения разрядности ЛА (формата команды);

2) обеспечивает написание программ без привязки к физическому адресу (ФА) памяти;

3) предоставляет возможность динамического распределения памяти программ и данных и эффективного использования емкости ОП;

4) предоставляет возможность обеспечения защиты сегментов памяти программ и данных.

Введение ЛА возлагает на аппаратуру дополнительную задачу по преобразованию ЛА в ФА, что потребует дополнительных аппаратурных затрат и времени. Так как размер ОЗУ по ТЗ составляет 256 Мбайт то, разрядность физического адреса должна быть 28 разрядов.

· Реальный режим.

В режиме реальных адресов программисту доступен весь объём оперативной памяти (256 Мбайт). Вся физическая память разбивается на сегменты размером 1 Мбайт. Физический адрес получается из логического путём конкатенации младших пяти разрядов содержимого сегментных регистров со смещением (рисунок 10). Реальный режим - это исходный режим работы процессора. Предполагается, что процессор будет работать в нём только на этапе инициализации структур для защищённого режима, на этапе первоначальной загрузки операционной системы (ОС). При работе в реальном режиме все функции по контролю доступа к сегментам программ и данных возлагаются на программиста.

Рисунок 10 - Формирование ФА в режиме реальных адресов

В режиме реальных адресов таблица векторов прерываний (IDT) находится, начиная с нулевого адреса оперативной памяти, каждый элемент таблицы занимает 32 бита. Это необходимо для того, чтобы минимизировать аппаратурные затраты на разную реализацию вычисления адреса элемента в таблице IDT в режиме реальной адресации

· Защищенный режим.

В защищенном режиме адресуются 256 Мбайт с разделением на сегменты с максимальным размером 1 Мбайт и минимальным размером 32 Кбайт. В данном режиме используется механизм защиты памяти. ПР работает в однозадачном режиме, следовательно для организации его работы требуется всего одна глобальная таблица дескрипторов (GDT). Количество сегментов, т.е. размер таблицы дескрипторов, выбран таким образом, чтобы можно было адресовать всю физическую память, и составляет до 8192 дескрипторов. Адрес начала ТД и её размер определяются в регистре GDTR (рисунок 11).

Рисунок 11 - Регистр GDTR

Физический адрес формируется, как сумма 26-разрядной базы, которая хранится в дескрипторе (рисунок 12), и 20-разрядного эффективного адреса (смещения).

Рисунок 12 - Формат дескриптора сегмента.

S - поле определяет тип сегмента (S=1 - системный; S=0 - пользовательский);

DPL - уровень привилегий сегмента (0 - системный, 1 - пользовательский);

ST - тип сегмента (0 - кода, 1 - данные);

ED - направление расширения сегмента данных (0 - в сторону старших адресов, 1 - в сторону младших адресов - стек);

R/W - запрет чтения из сегмента кода или запрет записи в сегмент данных (R/W=0). Если бит R=1 для сегмента кода, то наряду с обращением к такому сегменту для выполнения команд разрешается и обращение для их считывания. Если R=0, любая попытка считать из сегмента команду вызывает прерывание по защите памяти. Любая попытка записать информацию в исполняемый сегмент (кода) по умолчанию также приводит в выработке прерывания по защите памяти и доступ к памяти (запись в память) блокируется. При R=0 сегмент должен содержать «чистый» код (только команды), иначе данные невозможно будет прочитать. Если бит W=1 для сегментов данных (DS, SS, ES), то помимо считывания из сегмента данных разрешена и запись в него. Если же W=0, то любая попытка записи в сегмент вызывает прерывание (особый случай защиты) и блокировку доступа к памяти по записи (такие сегменты могут содержать таблицы констант, общесистемные справочные данные, информацию о состоянии, базы данных с запретом обновления записей и т.д.).

Размер - размер сегмента в блоках (по 16 байт);

Базовый адрес - физический адрес начала сегмента;

* - зарезервировано.

При формировании ФА адрес базы сегмента выбирается из теневого регистра, расположенного в блоке формирования физического адреса. Селектором в данном режиме служат сегментные регистры. При загрузке в сегментные регистры нового селектора (рисунок 13) производится выборка соответствующего дескриптора из ТД, выполняется контроль по доступу и размеру и, если доступ разрешен, загрузка его в соответствующий теневой регистр.

Рисунок 13 - Формат селектора

Селектор содержит следующие поля:

индекс - номер дескриптора в ТД;

RS - запрашиваемый уровень привилегий.

Формирование физического адреса в защищенном режиме на основе ТД с использованием теневых регистров, которые используются для хранения дескрипторов активных сегментов, показано на рисунке 14.

Рисунок 14 - Формирование физического адреса в защищённом режиме

3. Разработка структуры процессора

По техническому заданию быстродействие разрабатываемого процессора должно составлять 4,0 млн. оп./с. Следовательно время Т выполнения одной команды не должно превышать:

Т ? 1/(4.0*106) > Т ? 250 нс.

Предварительный расчет быстродействия

1) выборка команды на выполнение осуществляется из памяти: T1=150+12=162 нс.;

2) дешифрация КОП может производится дешифратором: T2=2*33=66 нс (два слоя для получения нужной разрядности). Также включим в эту стадию время работы устройства управления (УУ), которое по дешифрированному КОП должно выдать соответствующие инструкции другим устройствам. Однако, если использовать программируемое УУ, то дешифрацию КОП можно выполнять с помощью преобразователя начального адреса (ПНА), которое представляет из себя ПЗУ. Таким образом: T2=tпна+tрег+tms+tпзу+tрег=35+12+10+35+12=104 нс.

3) простейший блок формирования эффективного адреса состоит из сумматора, на плечи которого подаются база, индекс и смещение. Однако, с точки зрения быстродействия стоит использовать на выходе сумматора мультиплексор, который позволяет получить значение, например, базы без участия сумматора:

T3=tрег+tsm+tms+tрег=12+46*2+10+12=126 нс.

4) T4=tsm+2*tрег+tms=46+2*12+10=80 нс.

5) операнды выбираются из памяти: T5=150+12=162 нс.

6) возьмем задержку на стандартном АЛУ при выполнении коротких операций: T6=150 нс.

7) Запись в память: T7=162 нс.

Итого:

Т=Т1+Т2+0,7*(Т3+Т4+Т5+Т6+Т7)

=162+104+0,7*(126+80+162+150+162)=742

Введём КЭШ данных. Время работы КЭШД tКЭШ = 30 нс, вероятность попадания - 95%. Тогда tВО= tЗР= 0,95* tКЭШД + 0,05*tОЗУ =36 нс. Таким образом,

5) операнды выбираются из памяти: T5=30*0,95+0,05*150 =36 нс.

7) Запись в память: T7=30*0,95+0,05*150 =36 нс.

Итого:

Т=Т1+Т2+0,7*(Т3+Т4+Т5+Т6+Т7)

=162+104+0,7*(126+80+36+150+36)=565,6

Структура с КЭШД по-прежнему не дает требуемого быстродействия, вводим ОК, которая позволяет выполнять предвыборку команды, тогда время ВК составит время чтения из ОК, вероятность сброса ОК - 10%, время заполнения - 50нс. Тогда

tВК= 12*0,9+0,1*(50 + tОЗУ)= 31нс.

Таким образом,

1) выборка команды на выполнение осуществляется из памяти:

T1=12*0,9+0,1*(50 + tОЗУ)= 31нс

Т2 = 35+12+10+35+12=104 нс.

Т1+Т2 = 31+104 = 135

Итого:

Т=Т1+Т2+0,7*(Т3+Т4+Т5+Т6+Т7) =135+0,7*(135+80+36+150+36)=489

Было принято ввести две ступени конвейера. 489/2 = 245

Структурная схема ПР включает операционное устройство (ОУ), два устройства управления (УУ) работой ступенями конвейера, оперативное запоминающее устройство (ОЗУ), аппаратуру прерываний (АП), очередь команд (ОК), блок формирования физического адреса (БФФА), кэш-данных (КЭШД), контроллер шины (КШ), арбитр шины (АШ), математический сопроцессор и буферные регистры для передачи данных между ступенями.

3.1 Разработка ступеней конвейера

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

К аппаратуре первой ступени относятся:

· управляющее устройство первой ступени (УУ1), осуществляющее роль связующего звена между остальными блоками и выполняющего выборку команды из ОК и её дешифрацию;

· очередь команд (ОК), позволяющая благодаря предвыборке команд из оперативной памяти и своей организации выбирать команды и содержащийся в команде операнд за один такт;

· набор регистров для хранения промежуточных данных.

· блок дешифрации команд (БДШК) осуществляет частичную дешифрацию команд, признаков адресации и определяет другие параметры.

К аппаратуре второй ступени относятся:

· управляющее устройство второй ступени (УУ2) осуществляет управление формированием эффективного и физического адреса, а также выборкой данных.

· блок формирования физического адреса (БФФА), организующий вычисление эффективного адреса, а затем физического, а также защиту памяти;

· набор регистров для хранения промежуточных данных.

К третьей ступени относятся:

· устройство управления третьей ступенью (УУ3) осуществляет непосредственное выполнение команд, запись в РОН, запись результата в кэш-память;

· набор регистров для хранения промежуточных данных.

· операционное устройство осуществляет работу под управлением УУ2 (работа с регистрами) и УУ3 (выполнение команды).

Для уменьшения нагрузки на системную магистраль данных и адреса, между некоторыми блоками введены непосредственные связи.

3.2 Разработка операционного устройства

Операционное устройство (ОУ) процессора предназначено для выполнения простых арифметических, логических операций, операций сдвига и сложных арифметических операций, таких как умножение, на основе простых. ОУ выполняет действия с операндами, имеющими разрядность 32, 16 или 8 бит. Подробнее о разработке операционного устройства написано далее в пункте описания процесса разработки функциональной схемы.

3.3 Разработка структуры ОЗУ

По ТЗ объем ОЗУ равен 256 Мбайт с шириной выборки 64 бит. Но передача за один цикл всего двух команд не даст существенного прироста быстродействия. Поэтому было решено увеличить ширину выборки до 128 байт.

Работа с ОЗУ производится в следующих направлениях:

1) заполнение ОК (2 128-х разрядных слова);

2) пополнение ОК (2 128-х разрядных слова);

3) заполнение КЭШД (128-е разрядное слово);

4) удаление из КЭШД (128-е разрядное слово).

Вся память делится на 4 модуля по 64 Мб каждый с шириной выборки 128 бит.

Структурная схема ОЗУ приведена на рисунке 15.

Рисунок 15 - Структурная схема ОЗУ

Взаимодействие ОЗУ и КЭШД или ОК осуществляется через локальную шину данных разрядностью 128 бита.

3.4 Разработка кэш-памяти

Время доступа к ОЗУ по техническому заданию составляет 150 нс. При заданном быстродействии работы процессора 4 млн. оп/сек это составляет половину всего времени, отведённого на команду, что не допустимо и прежде всего говорит о необходимости введения кэш-памяти.

Кэш-память вместе с ОЗУ образуют иерархическую структуру доступа к данным и ее действие эквивалентно быстрому доступу к ОЗУ. Рекомендуемый объем кэш-памяти 1/1000 от объема ОЗУ, что составит 256 Кбайт, однако, учитывая то, что процессор будет работать в однозадачном режиме, примем его равным 128 Кбайт.

Кэш-память строится из четырех модулей на основе частично-ассоциативного распределения (ЧАР). Достоинствами данного метода распределения является сокращение числа промахов по сравнению с методом прямого распределения, высокое быстродействие - чтение за один такт, а также незначительные аппаратурные затраты.

Модули образуют группу строк. Для выбора группы строк используется метод прямого распределения, а для выбора строки в группе - метод полностью ассоциативного распределения. Емкость строки - восемь 32-разрядных слов.

При ЧАР адрес разбивается на три части: старшая часть - тег - для сравнения с тегами из группы строк и выбора одной строки, средняя часть - индекс - для выбора группы строк и младшая часть - номер слова в строке. Таким образом, по индексу выбирается множество строк (группа), а по тегу - конкретная строка из этого множества. Ещё одно поле e вводится для того, чтобы обратиться в соответствии с заданными форматами к 8, 16 или полностью к 32 разрядам в 32-разрядном слове.

Обращение к массиву тегов и СОЗУ данных кэш-памяти происходит параллельно, поэтому, если требуемая строка присутствует в кэш-памяти, данные сразу же выдаются на МД.

Стратегия обновления ОЗУ - сквозная (прямая) запись с распределением WTWA. При такой стратегии, если адрес не принадлежит тегу (кэш-памяти), то и при чтении, и при записи нет необходимости удалять строку из кэш-памяти в ОЗУ, а сразу реализуется процедура замещения кэш-памяти по выбранной стратегии. Из ОП считывается строка и записывается в кэш-память на место строки, назначенной кандидатом на удаление, в память тегов записывается новый тег считанной строки. Таким образом, данный метод даёт выигрыш в быстродействии, так как не требуется выполнять процедуру удаления строки из кэш-памяти в ОЗУ (её копия всегда хранится там). Кроме того, выполнение командного цикла продолжается сразу после записи данных в кэш-память, не дожидаясь окончания цикла записи в ОП.

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

Если АTeg (кэш-памяти), то по одной из выбранных стратегий замещения определяется строка, подлежащая удалению из кэш-памяти в ОП, и выполняется процедура удаления (перезаписи) выбранной строки в ОП как при чтении, так и при записи, а затем реализуется процедура замещения кэш-памяти, т.е. из ОП считывается запрашиваемая строка и записывается в СОЗУ данных на место удаленной строки, а в память тегов - новый тег считанной строки. Затем требуемое слово записывается или считывается из кэш-памяти, т.к. теперь АTeg.

В целях повышения производительности КЭШД имеет два адресных порта. Через порт А происходит выборка операндов и если необходимо (в кэш-памяти нет необходимых данных), то через этот порт происходит обновление ОП и замещение кэш. Через порт B осуществляется запись результата в память.

Структура кэш памяти представлена на рисунке 16. Так как в двух портовой кэш очень много связей приведены только связи для одного порта. Второй порт аналогичен первому.

Рисунок 16 - Структура КЭШ-памяти

3.5 Разработка очереди команд

Т.к. КЭШД используется на 2-х ступенях конвейера из 3-х, и использование его для хранения и выборки команд привело бы к возникновению конфликтов по доступу к данным между ступенями конвейера, для первой ступени было решено ввести очередь команд (ОК).

ОК представляет собой буфер FIFO, в который выбираются команды из памяти перед выполнением. Для безостановочной работы ОК необходим объём в 2 раза превышающий ширину выборки, поэтому ОК состоит из 8 32-х разрядных слов или 256 бит. Функциональная схема ОК приведена на рисунке 17.

На схеме: CTWR - счётчик записи, указывает на первое свободно...


Подобные документы

  • Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.

    курсовая работа [734,9 K], добавлен 27.10.2010

  • Разработка структурной схемы вычислительного устройства, выбор системы команд и определение форматов. Разработка алгоритма командного цикла, выполнения арифметических и логических операций. Проектирование операционного автомата, устройств управления.

    курсовая работа [2,8 M], добавлен 15.05.2014

  • Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.

    учебное пособие [1,1 M], добавлен 09.04.2013

  • Функциональная организация процессора. Сложение с нормализацией, синтез операций, выборка команды. Описание структурной схемы процессора. Синтез управляющего автомата, разметка граф схемы. Разбиение микроопераций по полям и кодирование логических условий.

    курсовая работа [91,8 K], добавлен 24.09.2010

  • Описание структурной схемы операционного устройства. Построение обратной структурной таблицы автомата. Проектирование функций выходов и управление элементами памяти. Изображение пользовательского интерфейса и инструкции по инсталляции и запуску программы.

    курсовая работа [642,6 K], добавлен 19.05.2014

  • Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.

    дипломная работа [4,0 M], добавлен 25.03.2012

  • Анализ выбора цифрового сигнального процессора и структурной схемы устройства обработки информации. Расчет надежности устройства и производительности обмена данных, разработка ленточного графика. Обзор особенностей радиального и межмодульного интерфейса.

    дипломная работа [1,8 M], добавлен 20.05.2012

  • История развития центрального процессора. Основные проблемы создания многоядерных процессоров. Проектирование микропроцессорной системы на базе процессора Intel 8080. Разработка принципиальной схемы и блок-схемы алгоритма работы микропроцессорной системы.

    курсовая работа [467,6 K], добавлен 11.05.2014

  • Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.

    курсовая работа [1,2 M], добавлен 26.05.2022

  • Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.

    реферат [35,2 K], добавлен 13.11.2009

  • Разработка функциональной схемы операционного автомата микросхемы специализированного процессора, выполняющего заданную арифметическую операцию. Закодированная граф-схема машинного алгоритма. Таблица входов мультиплексора выбора осведомительного сигнала.

    курсовая работа [669,9 K], добавлен 25.07.2013

  • Разработка структурной, функциональной и принципиальной схем блока выполнения арифметической операции над числами, представленными в дополнительном коде в форме с плавающей запятой. Алгоритмы выполнения операции умножения. Анализ временных задержек.

    курсовая работа [287,7 K], добавлен 07.06.2013

  • Разработка структурной схемы устройства управления учебным роботом. Выбор двигателя, микроконтроллера, микросхемы, интерфейса связи и стабилизатора. Расчет схемы электрической принципиальной. Разработка сборочного чертежа устройства и алгоритма программы.

    курсовая работа [577,8 K], добавлен 24.06.2013

  • Расчет трудоемкости алгоритма. Определение быстродействия процессора. Характеристика контроллеров серии Direct Logic DL. Устройства, которые вошли в структуру системы. Выбор программного обеспечения. Расчет работоспособности и надежности системы.

    курсовая работа [2,0 M], добавлен 14.01.2013

  • Описание архитектуры внешних выводов кристалла процессора. Рассмотрение форматов данных для целых чисел со знаком и без знака. Выбор модели памяти и структуры регистровой памяти. Использование кэш прямого отображения. Арифметические и логические команды.

    курсовая работа [890,5 K], добавлен 05.06.2015

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

    курсовая работа [1,9 M], добавлен 20.11.2020

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

    курсовая работа [871,9 K], добавлен 16.09.2010

  • Алгоритм умножения двоичных чисел. Выбор и описание структурной схемы операционного автомата. Реализация содержательной граф-схемы алгоритма. Построение отмеченной граф-схемы и структурной таблицы переходов и выходов. Правила кодирования на D-триггерах.

    курсовая работа [273,2 K], добавлен 01.04.2013

  • Синтез структуры простого магистрального процессора с одним АЛУ, выполняющего 8 заданных команд. Разработка формата и кодировки команд, структурной схемы процессора, функциональные схемы всех его блоков в целом с указанием шин и управляющих сигналов.

    реферат [123,9 K], добавлен 18.05.2009

  • Применение цифровых микросхем для вычисления, управления и обработки информации. Назначение микропроцессора и устройств микропроцессорной системы, их структурная и принципиальная схемы. Системная шина процессора и распределение адресного пространства.

    курсовая работа [1,5 M], добавлен 29.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.