Проектирование процессора электронной вычислительной машины

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

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

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

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

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

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

1. Техническое задание

процессор адресация кэш память

Разработать процессор ЭВМ со следующими характеристиками:

§ быстродействие для словных операций с ФЗ2,9 млн. оп./с;

§ параметры ЗУ:

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

- объем ОЗУ128 мегабайт;

- время доступа к ОЗУ (наносекунд)330 нс;

§ разрядность данных:

- с ФЗ8, 32 бит;

- с ПЗ32 бит;

§ средства обработки прерываний:

- число источников16

- из них внутренние5

- глубина максимальной вложенности6

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

Процессор должен работать со следующими форматами данных: байт, двойное слово, слово с ПЗ. Система адресации должна включать не менее 5 видов. Элементная база для проектирования: секционированные микропроцессорные комплекты и ТТЛ - серии.

Идивидуальное задание - разработать функциональные схемы следующих устройств:

- операционное устройство;

- кэш-память

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

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

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

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

На рисунке 2.1 представлены используемые форматы данных.

Рисунок 2.1 - Форматы данных

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

2.2 Выбор и обоснование способов адресации

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

Таблица 2.1 - Виды адресации данных

Обозначение

Пример

Описание

Название

data

1984

OP=1984

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

Reg

EAX

OP=EAX

Регистровая прямая

[Reg]

[EAX]

EA=EAX

Регистровая косвенная

offset

1984

EA=1984

Относительная прямая

offset[Reg]

14[ESI]

EA=14+ESI

Прямая индексная

offset[Reg-]

14[ESI-]

EA=14+ ESI

ESI:= ESI -1

Прямая индексная автодекрементная

offset[+Reg]

14[+ESI]

ESI:= ESI +1

EA= 14 + ESI

Прямая индексная автоинкрементная

[Reg][Reg]

[EBX][ESI]

EA=EBX+ESI

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

*OP - операнд

**EA - эффективный адрес

***offset - смещение

****data - данные

*****Reg - регистр

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

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

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

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

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

2.3 Выбор и обоснование форматов команд

В общем случае команда содержит следующие данные:

- подлежащая выполнению операция;

- адреса исходных данных;

- адрес по которому помещается результат.

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

- не смотря на то, что для безадресных команд достаточно 1 байта, было принято решение сделать длину данного типа команд 2 байта. А так, как безадресные команды - это в основном команды управления, которые используются, не так часто, то расходы на память, будут окупать расходы на обеспечение распаковки команд;

- во всех форматах, непосредственный операнд размером в байт будет занимать слово (младший байт равен нулю, а старший содержит операнд размером 1 байт), а так как работа с байтами не так часта, то особых проигрышей по занимаемой памяти не будет. К тому же для работы с байтовыми массивами, в систему команд введены специальные команды для работы со строками. Все безадресные команды занимают один байт, под код операции (КОП) отведено 5 бит. Формат безадресных команд приведён на рисунке 2.2.

-

15

14

10

9

8

7

6

5

4

3

2

1

0

1

КОП

x

x

1

1

1

1

1

x

x

x

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

Двухадресные команды включают следующие поля:

- поле формата команды - биты 15;

- КОП - код операции;

- D - направление пересылки результата: 0 - слева на право, 1 - справа на лево;

- G - разрядность данных: 0 - 8 бита, 1 - 32 бит;

- BA1, ВА2 - вид адресации, кодирование видов адресации приведено в таблице 2.2;

- R1 - номер регистра;

- следующие байты могут содержать (могут отсутствовать):

§ 8 - восьми битные данные;

§ 32 - 32 битные данные.

Формат двухадресных команд представлен на рисунке 2.4.

15

14

10

9

8

7

6

5

3

2

0

0

КОП

D

G

BA1

R2

R1

BA2

8/32(младшее слово)

32(старшее слово)

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

В двухадресных командах один из операндов всегда регистр. В таблице 2.2, приведены возможные виды адресации.

Выделяется 4 вида пересылки данных:

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

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

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

- память - непосредственный операнд.

Таблица 2.2 - Кодирование видов адресации для двухадресных команд

BA1

BA2

Описание

00

xxx

R1 R2 (р - р)

01

xxx

R1 [R2] (р - п, регистровая косвенная)

10

000

R1 Addr (р - п, относительная прямая)

10

001

R1 [ESI] + offset (р - п, индексная прямая)

10

010

R1 [EDI] + offset (р - п, индексная прямая)

10

011

R1 [EBX][ESI] (р - п, базово - индексная)

10

100

R1 [EBX][EDI] (р - п, базово - индексная)

10

101

R1 [EBP][ESI] (р - п, базово - индексная)

10

110

R1 [EBP][EDI] (р - п, базово - индексная)

10

111

R1 [ESI-] + offset (р - п, прямая индексная автодекрементная)

11

000

R1 [EDI-] + offset (р - п, прямая индексная автодекрементная)

11

001

R1 [+ESI] + offset (р - п, прямая индексная автоинкрементная)

11

010

R1 [+EDI] + offset (р - п, прямая индексная автоинкрементная)

11

011

R1 операнд (р - но)

11

100

[R1] операнд (п - но)

11

101

не используется

11

110

не используется

11

111

не используется

*xxx - номер регистра

**Addr - адрес операнда

***offset - смещение

**** р - регистр; п - память; но - непосредственный операнд

Одноадресные команды включают следующие поля:

- поле формата команды - биты 15 и 9;

- КОП - код операции;

- G - разрядность данных: 0 - 8 бита, 1 - 32 бит;

- BA1, ВА2 - вид адресации, кодирование видов адресации приведено в таблице 2.3;

- R - номер регистра, либо не используется (при относительной прямой адресации);

- следующие байты могут содержать (могут отсутствовать):

§ 8 - восьми битные данные;

§ 32 - 32 битные данные.

Формат одноадресных команд представлен на рисунке 2.3.

15

14

13

10

9

8

7

6

5

3

2

0

1

КОП

0

G

BA1

BA2

R

8/32(младшее слово)

32(старшее слово)

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

Используемые виды адресации приведены в таблице 2.3.

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

BA1

BA2

Описание

00

-

R (регистровая прямая)

01

-

[R] (регистровая косвенная)

10

000

Addr (относительная прямая)

10

001

[ESI] + offset (прямая индексная)

10

010

[EDI] + offset (прямая индексная)

10

011

[EBX][ESI] (базово-индексная)

10

100

[EBX][EDI] (базово-индексная)

10

101

[EBP][ESI] (базово-индексная)

10

110

[EBP][EDI] (базово-индексная)

10

111

[ESI-] + offset (прямая индексная автодекрементная)

11

000

[EDI-] + offset (прямая индексная автодекрементная)

11

001

[+ESI] + offset (прямая индексная автоинкрементная)

11

010

[+EDI] + offset (прямая индексная автоинкрементная)

11

011

не используется

11

100

не используется

11

101

не используется

11

110

не используется

11

111

не используется

*прочерк обозначает безразличное значение поля

**Addr - адрес операнда

***offset - смещение

Команды перехода имеют следующие поля:

- поле формата команды - биты 15, 9;

- КОП - код операции;

- G - разрядность данных: 0 - 8 бита, 1 - 32 бит;

- BA1, ВА2 - вид адресации, кодирование видов адресации приведено в таблице 2.4;

- R - номер регистра;

- следующие байты могут содержать (могут отсутствовать):

§ 8 - восьми битные данные;

§ 32 - 32 битные данные.

Формат команд перехода представлен на рисунке 2.5.

15

14

13

12

11

10

9

8

7

6

5

3

2

0

1

КОП

1

G

BA1

BA2

R

8/32(младшее слово)

32(старшее слово)

Рисунок 2.5 - Формат команд перехода

Используемые виды адресации приведены в таблице 2.4.

Таблица 2.4 - Кодирование видов адресации для команд перехода

BA1

BA2

Описание

00

-

R (регистровая прямая)

01

-

[R] (регистровая косвенная)

10

000

Addr (относительная прямая)

10

001

[ESI] + offset (прямая индексная)

10

010

[EDI] + offset (прямая индексная)

10

011

[EBX][ESI] (базово-индексная)

10

100

[EBX][EDI] (базово-индексная)

10

101

[EBP][ESI] (базово-индексная)

10

110

[EBP][EDI] (базово-индексная)

10

111

не используется

11

011

непосредственный операнд

11

xxx

не используется

*прочерк обозначает безразличное значение поля

**xxx - все возможные комбинации кроме 011

***Addr - адрес операнда

****offset - смещение

Команды сопроцессора имеют следующие поля:

- поле формата команды - биты 15, 14;

- КОП - код операции;

- биты 7 - 3 не используются;

- номер регистра сопроцессора;

- следующие байты могут содержать (могут отсутствовать) 32 битные данные

Формат команд сопроцессора представлен на рисунке 2.6.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

0

1

КОП

x

x

1

1

1

1

0

R

32(младшее слово)

32(старшее слово)

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

2.4 Разработка системы команд процессора

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

В таблице 2.5 приведён список безадресных команд.

Таблица 2.5 - Список безадресных команд

Код

Мнемоника

Описание

00000

CLC

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

00001

CLZ

сброс флага нуля

00010

CLS

сброс флага знака

00011

CLO

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

00100

CLD

сброс флага направления

00101

CLI

сброс флага прерывания

00110

STC

установка флага переноса

00111

STZ

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

01000

STS

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

01001

STO

установка флага переполнения

01010

STD

установка флага направления

01011

STI

установка флага прерывания

01100

NOP

нет операции

01101

RET

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

01110

RETF

дальний возврат из подпрограммы

01111

IRET

возврат из пользовательского прерывания

10000

WAIT

ожидание выполнения операции в сопроцессоре

10001

LAXF

загрузка регистра флагов в младшее слово регистра EAX

10010

SAXF

загрузка в регистр флагов из младшего слова регистра EAX

10011

HLT

останов

10100

RRM

загрузка регистра маски в EAX

10101

LRM

загрузка в регистр маски значения из EAX

10110

MOVS

пересылка ECX слов из DS:ESI в ES:EDI

10111

CMPS

сравнение строк длиной ECX

11000

LODS

чтение байта из строки

11001

STOS

запись байта в строку

11010

DS:

установка префикса DS

11011

SS:

установка префикса SS

11100

ES:

установка префикса ES

В таблице 2.6 приведён список одноадресных команд.

Таблица 2.6 - Список одноадресных команд

Код

Мнемоника

Описание

00000

NOT

инверсия

00001

NEG

смена знака

00010

INC

инкремент

00011

DEC

декремент

00100

POP

запись в стек

00101

PUSH

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

00110

MUL

умножение

00111

IMUL

умножение с учётом знака

01000

DIV

деление

01001

IDIV

деление с учётом знака

01010

LGDT

загрузка GDTR

01011

SGDT

сохранение GDTR

01100

LIDT

загрузка IDTR

01101

SIDT

сохранение IDTR

01110

LCS

загрузка CS

01111

LDS

загрузка DS

10000

LSS

загрузка SS

10001

LES

загрузка ES

10010

SCS

сохранение CS

10011

SDS

сохранение DS

10100

SSS

сохранение SS

10101

SES

сохранение ES

В таблице 2.7 приведён список двухадресных команд.

Таблица 2.7 - Список двухадресных команд

Код

Мнемоника

Описание

00000

MOV

пересылка

00001

CMP

сравнение

00010

ADD

сложение

00011

ADC

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

00100

SUB

вычитание

00101

SBB

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

00110

TEST

проверка бит

00111

AND

конъюнкция

01000

OR

дизъюнкция

01001

XOR

исключающее или

01010

MUL

умножение

01011

IMUL

умножение с учётом знака

01100

DIV

деление

01101

IDIV

деление с учётом знака

01110

SHL

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

01111

SHR

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

10000

SAR

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

10001

ROL

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

10010

ROR

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

10011

IN

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

10100

OUT

Запись в порт

В таблице 2.8 приведён список команд сопроцессора.

Таблица 2.8 - Список команд сопроцессора

Код

Мнемоника

Действие

Описание

00000

FADD st(i)

st(i) st(i) + st(0)

Сложение вещественных чисел

00001

FADD src

st(0) st(0) + m32

Сложение вещественных чисел

00010

FSUB st(i)

st(i) st(i) - st(0)

Вычитание вещественных чисел

00011

FSUB src

st(0) st(0) - m32

Вычитание вещественных чисел

00100

FMUL st(i)

st(0) st(i) x st(0)

Умножение вещественных чисел

00101

FDIV st(i)

st(0) st(0) / st(i)

Деление вещественных чисел

00110

FMULP st(i)

st(i) st(i) x st(0)

Умножение вещественных чисел

00111

FDIVP st(i)

st(i) st(0) / st(i)

Деление вещественных чисел

01000

FSQRT

st(0) SQRT(st(0))

Вычисление квадратного корня

01001

FABS

st(0) ABS (st(0))

Нахождение абсолютного значения

01010

FCHS

st(0) - st(0)

Изменение знака

01011

FLDZ st(i)

st(i) 0.0

Загрузка нуля

01100

FLD src

st(0) m32

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

Код

Мнемоника

Действие

Описание

01101

FST m32

m32 st(0)

Запись вещественного числа в память

01110

FSTP m32

m32 st(0)

Запись вещественного числа в память и выталкивание из стека

01111

FCMP m32

st(0) ? m32

Сравнение вещественных чисел

10000

FCMP st(i)

st(0) ? st(i)

Сравнение вещественных чисел

10001

FSTFL

PSW <- FPU FLAG

Запись флагов сопроцессора в младшие 4 бита слова состояния процессора

10010

FILD src

st(0) m32

Загрузка целого числа из памяти

10011

FIST

m32 st(0)

Запись целого числа в память

10100

FISTP

m32 st(0)

Запись целого числа в память и выталкивание из стека

10101

FMOV st(i)

st(0) st(i)

запись в вершину стека

10110

FNEG

st(i) -st(i)

смена знака

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

В таблице 2.9 приведён список команд для передачи управления.

Таблица 2.9 - Список команд передачи управления

Код

Мнемоника

Описание

00000

JC

переход если CF=1

00001

JNC

переход если CF=0

00010

JS

переход если SF=1

00011

JNS

переход если SF=0

00100

JZ

переход если ZF=1

00101

JNZ

переход если ZF=0

00110

JO

переход если SF=1

00111

JNO

переход если SF=0

01000

JGE/JNL

переход если SF=OF

01001

JNGE/JL

переход если SF<>OF

01010

JG/JNLE

переход если (SF=OF)&ZF=0

01011

JNG/JLE

переход если (SF<>OF)vZF=1

01100

JA/JNBE

переход если CF=1vZF=1

01101

JNA/JBE

переход если CF=0&ZF=0

01110

JMP

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

01111

JMPF

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

10000

CALL

вызов процедуры

10001

CALLF

дальний вызов процедуры

Таблица 2.9 - Продолжение

Код

Мнемоника

Описание

10010

LOOP

переход если CX<>0

2.5 Выбор и обоснование архитектуры процессора

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

- EAX - аккумулятор;

- ECX - счетчик. Является счетчиком при организации циклов и работе со строками;

- EDX - данные;

- EBX - базовый регистр. Используется в качестве базового регистра при базово-индексной адресации;

- ESP - указатель стека;

- EBP - указатель базы;

- ESI - индекс источника. Используется в качестве индексного регистра при индексной и базово-индексной;

- EDI - индекс приемника. Индексный регистр приемника при строковых операциях и индекс при автодекрементной адресации;

В структуру процессора так же входят следующие регистры:

- сегментные регистры;

- слово состояния процессора;

- RGDT - регистр, содержащий базовый адрес глобальной таблицы дескрипторов сегментов и размер данной таблицы (структура данного регистра будет разработана далее);

- RIDT - регистр, содержащий базовый адрес таблицы прерываний (структура данного регистра будет разработана далее);

- теневые регистры сегментов CS, DS, SS, ES (структура данных регистров будет разработана далее);

- регистры аппаратуры прерывания;

На рисунке 2.7 приведена структура РОН, их коды, регистры сегментов, указатель команд.

32

16

15

8

7

0

EAX

Аккумулятор 000

AH 100

AL 000

ECX

Счётчик 001

CH 101

CL 001

EDX

Данные 010

DH 110

DL 010

EBX

База 011

BH 111

BL 011

ESP

Указатель стека 100

EBP

Указатель базы 101

ESI

Индекс источника 110

EDI

Индекс приёмника 111

EIP

Указатель команд

CS

Сегментный регистр кода

DS

Сегментный регистр данных

SS

Сегментный регистр стека

ES

Сегментный регистр данных

Рисунок 2.7 - Регистровые структуры

На рисунке 2.8 представлена структура слова состояния процессора.

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

U/S

M

x

x

x

x

x

x

x

IF

DF

OF

ZF

SF

CF

Рисунок 2.8 - Слово состояния процессора

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

- CF - флаг переноса;

- SF - флаг знака;

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

- OF - флаг переполнения;

- DF - флаг направления в строковых командах: 0 - строки просматриваются от начала к концу, 1 - от конца к началу;

- IF - флаг запрещения прерываний: 0 - процессор перестаёт реагировать на прерывания;

- M - 0 - реальный режим/1 - защищённый режим;

- U/S - режим работы процессора: 00 - пользовательский, 11 - системный.

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

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

,

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

гдесреднее количество тактов УУ необходимое для выполнения команды без учета количества тактов на выборку из памяти самой команды и операнда задержки на АЛУ при вычислении операции и помещение результата в память;

задержка в УУ;

среднее количество обращений к ОЗУ при выполнении команды;

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

количество тактов, необходимых на выполнение команды в АЛУ;

-задержка в АЛУ.

Для расчёта параметра для разрабатываемого ПР примем следующие значения параметров: . Таким образом , что в четыре раза больше необходимого значения, следовательно классическая структура ПР не подходит. Введение в структуру очереди команд и кэш-памяти, по-прежнему не даст необходимого быстродействия. Следовательно, необходимо ввести конвейерное выполнение команд. Конвейер будет иметь четыре ступени.

Структурная схема ПР приведена в приложении А.

3.1 Разработка структуры операционной части процессора

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

В качестве прототипа была выбрана микропроцессорная секция IDT49C402 фирмы Integrated Device Technology. В отличии от Am2901 в IDT49C402 регистровый файл и регистр расширения RgQ имеют по одному дополнительному порту ввода, связанному с шиной D. Это даёт возможность совмещения выполнения микрооперации в АЛУ и приём данных от внешнего источника. IDT49C402 реализует подмножество микроопераций Am2901 при сохранении их кодировки, когда . Значение не изменяет кодировку полей инструкции и задаёт новые дополнительные функции управления внутренними трактами данных и приёмником. Взяв данную МПС за прототип, в неё внесены следующие изменения:

- разрядность МПС 32 бита;

- количество регистров 16;

- возможность работать с операндами разрядностью 8 и 32 бита;

- возможность записи в регистровый файл как двойных слов, так и операндов размером один байт, причём можно записывать как старший так и младший байт.

Структурная схема операционной части приведена на рисунке 3.1.

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

Рисунок 3.1 - Структурная схема операционного устройства

3.2 Разработка ТЗ на сопроцессор

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

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

СоПР предназначен для обработки чисел с ПЗ и работает независимо от основного ПР. При выборке команда поступает как в ПР, так и в СоПР. Если выбранная команда является командой СоПР, то СоПР выдает сигнал ожидания для ПР. Когда обработка в СоПР закончена он снимает этот сигнал и ПР продолжает свою работу.

Для СоПР имеется своя система команд, которая приведена в разделе 2.4.

СоПР имеет восемь 32-разрядных регистров FR0-FR7, в которых хранятся операнды и результаты выполнения операций над числами с ПЗ. В СоПР входит УУ, которое при необходимости считывает операнды из ОК, а также обращается к ОП.

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

В соответсвии с техническим заданием объем ОЗУ равен 128 Мбайт, ширина выборки из памяти 32 байта. Для адресации каждой ячейки памяти необходимо 27 разрядов адреса. ОЗУ делится на 8 модулей по 16Мбайта. Адрес разделён на два поля: первое ФА[26:3] выбирает строку, а второе ФА[2:0] выбирает один из 8 модулей. У каждого модуля имеется 32-разрядный регистр данных RgDIO с выходами на три состояния. За одно обращение к памяти выбирается строка 256 бит. Время обращения к ОЗУ не должно превышать 300 нс.

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

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

3.4 Разработка УУ

Устройство управления (УУ) является управляющим звеном всех блоков процессора.

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

- выборка декодирование команды;

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

- выборка операндов;

- выполнение команды в АЛУ и запись результата.

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

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

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

- управляющее устройство первой ступени (УУ1);

- очередь команд (ОК);

- дешифратор команд;

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

Управляющие сигналы для первой ступени конвейера:

- y0 - запись в RgK;

- y1 - запись в EIP;

- y2 - сброс ОК;

- y3 - запуск ОК;

- y4 - чтение из ОК;

- y5 - запись в CTAok;

- y6 - установка триггера ;

- y7 - сброс ;

- y8 - запись в RgD2, RgBuf31, RgBuf41;

- y9..y17 - управление АП.

Вторая ступень состоит из:

- управляющего устройства второй ступени (УУ2);

- часть ОУ, отвечающая за вычисление исполнительного адрес в зависимости от признаков адресации;

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

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

Управляющие сигналы для второй ступени конвейера:

- y18..y37 - управление ОУ;

- y38..y47 - управление БФФА;

- y48 - установка триггера ;

- y49 - сброс ;

- y50 - запись в RgD1;

- y51 - запись в RgD3, RgBuf42.

Третья ступень состоит из:

- управляющего устройства третьей ступени (УУ3);

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

Управляющие сигналы третьей ступени конвейера:

- y52..y56 - управление кэш-памятью;

- y57 - установка триггера ;

- y58 - сброс ;

- y59 - запись в RgD4.

Четвертая ступени состоит из:

- устройство управления четвертой ступенью (УУ4);

- операционное устройство (ОУ), выполняющее арифметико-логические операции;

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

Управляющие сигналы для четвёртой ступени конвейера:

- y18..y37 - управление ОУ;

- y52..y56 - управление кэш-памятью;

- y60 - установка триггера ;

- y61 - сброс ;

Так как на третьей ступени происходит обращение только к кэш-памяти, то выгоднее для данной ступени управляющий автомат построить на жёсткой логике. Для первой, второй и четвёртой ступеней конвейера УУ строится на основе программируемой логики.

УУ с программируемой логикой имеет классическую структуру и включает блок управления последовательностью микрокоманд (БУПМ) на основе КР1804ВУ4, ПЗУ микропрограмм, регистр микрокоманд RgMK, мультиплексор и инвертор кода условий. Структура УУ представлена на рисунке х.х

Рисунок х.х - Структура УУ с программируемой логикой

Форматы регистров RgD2, RgD3, RgD4 приведены на рисунках x.x-x.x соответственно.

12

11

10

9

8

7

переход

смещение

регистр

база

индекс

автодекр.

6

5

4

3

2

1

0

автоинкр.

регистр базы

регистр индекса

Рисунок х.х - Формат регистра RgD2

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

0

0-выборка из памяти не производиться/1-выборка из памяти

Рисунок х.х - Формат RgD3

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

n

.

.

.

.

.

.

.

.

1

0

начальный адрес ПМП

запись результата в память

Рисунок х.х - Формат RgD4

Регистр RgD4 необходим для хранения информации о необходимости записи результата в ОЗУ, а также содержит начальный адрес подмикропрограммы, разрядность данного поля будет известна только после разработки ПМП. Данные из данного регистра используются на четвёртой ступени конвейера.

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

Время доступа к ОЗУ по техническому заданию составляет 330 нс. Оно не позволяет достигнуть заданного быстродействия ПР. Поэтому в структуру ПР была введена кэш-память.

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

Способ распределения для кэш-памяти выбран частично-ассоциативный, так как у него наиболее лучшие показатели:

- меньшее число промахов, по сравнению с прямым распределением;

- высокое быстродействие.

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

При ЧАР адрес разбивается на три части:

- тег - 15 разрядов;

- индекс группы - 7 разрядов;

- номер 32-разрядоного слова в строке - 3 разряда.

Однако по ТЗ необходимо предусмотреть работу с 8-ми разрядными данными, для чего вводится четвёртое поле, которое выбирает один из 4-х байтов 32-х разрядного слова. Обращение к массиву тегов и СОЗУ данных кэш-памяти происходит параллельно, поэтому, если требуемая строка присутствует в кэш-памяти, данные сразу же выдаются на ШД.

Стратегия обновления ОЗУ - флаговая обратная запись.

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

В целях повышения производительности кэш-память имеет два адресных порта. Кэш-память через порт А происходит чтение данных, пополнение очереди команд и запись данных из ОЗУ в случае промаха. Через порт B происходит запись результатов и запись данных из ОЗУ в случае промаха.

Структурная схема кэш-памяти приведена в приложении В. ГСА работы контроллера кэш-памяти приведена в приложении Г.

Управляющие сигналы для кэш-памяти:

- запись/чтение в порт А;

- запись в порт В;

3.6 Разработка блока формирования фи...


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

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

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

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

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

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

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

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

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

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

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

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

    контрольная работа [43,6 K], добавлен 11.11.2015

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

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

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

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

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

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

  • Базовая структура процессора. Хранение признаков перехода и состояний. Применение буферного регистра. Алгоритм выполнения команды условного перехода. Увеличение быстродействия процессора. Выполнение микроопераций и вычисление логических условий.

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

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

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

  • Разработка управляющего автомата процессора с жесткой логикой в САПР Quartus II. Построение схемы функциональной микропрограммы команды "Исключающее ИЛИ" в размеченном виде. Унитарное кодирование состояний автомата. Запись функций переходов и выходов.

    курсовая работа [671,3 K], добавлен 04.11.2014

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

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

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

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

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

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

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

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

  • Принцип работы процессора, способы его охлаждения, кодовые названия. Шины процессора, разрядность и кэш–память. Технологии расширения и поток команд процессора. Процессорные вентиляторы и их характеристика. Алгоритм и способы разгона процессора.

    реферат [38,0 K], добавлен 21.02.2009

  • Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.

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

  • Ознакомление с языком ассемблера процессора Neuro Matrix NM 6403, его возможности, особенности работы, содержание операций в регистрах, архитектура. Разработка программы для заполнения блока памяти, компилирование и отладка файла, фиксирование его адреса.

    лабораторная работа [48,2 K], добавлен 18.10.2012

  • Разработка программы на языке Ассемблер для определения типа центрального процессора и его производительности. Основные этапы определения любого существующего Intel-совместимого процессора. Тактовая частота процессора, алгоритм и листинг программы.

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

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