Проектирование операционного и управляющего автоматов процессора ЦВМ широкого назначения

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

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

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

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

7171711717119:34

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

Т.контр

ЗЭВМ-110

Н.контр.

Провер. Буланкин В.Б. `

2

Разраб. Игошев И.А.. `

Утв.

Изм

Лист

N докум.

Подп.

Дата

Лит.

Листов

Лист

73

Введение

В настоящее время компьютеры вычислительная техника получила очень большое развитие. Основной составляющей современной вычислительной техники являются процессоры и микроконтроллеры. Современные цифровые системы связи также невозможно создать без применения микропроцессоров и микроконтроллеров. Поэтому для студента специальности «Средства связи с подвижными объектами» необходимо знать и понимать принципы работы и функционирования современных микропроцессоров.

Цель данного курсового проекта заключается в формировании навыков проектирования операционного и управляющего автоматов процессора ЦВМ широкого назначения, изложенного в дисциплинах "Информатика", "Организация и архитектура ИВС ", а также в составлении технической документации, оформленной в виде пояснительной записки.

1. Задание на курсовой проект

1.1 Общие аспекты проектирования процессора

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

1) ознакомление с системой заданных машинных команд и архитектурой IA-32,

2) синтез структуры операционных автоматов блоков обработки данных в базисе микропроцессорных секций (МПС) или программируемых логических интегральных схем (ПЛИС),

3) синтез управляющих автоматов с жесткой и микропрограммируемой логикой,

4) разработка математического обеспечения в виде алгоритмов реализации цикла работы процессора и выполнения заданного набора команд,

5) формирование микрокоманды и составление микропрограммы выполнения операции из заданного набора над числами с плавающей точкой,

6) разработка электрических схем (структурной, функциональной и принципиальной) и оформление пояснительной записки.

1.2 Исходные данные

Таблица 1.2.1. - Операции

Код оперции

Операция

Описание

01 h

ADD Reg16, Reg16

ADD Reg16, Reg16

Reg16 +Reg16 Reg16

Reg16 +Reg32 Reg32

23 h

AND Reg16, Mem16

AND Reg32, Mem32

Reg16 & Mem16 Reg16

Reg32 & Mem32?Reg32

8B h

MOV Reg16, Mem16

MOV Reg32, Mem32

Mem16 Reg16

Mem32 Reg32

D8/2 h

FCOM ST(0), m32fp

ST(0) - m32fp 0, C2,C3

Таблица 1.2.2. - Исходные данные

Параметр

Условное обозначение

Значение

Емкость ОП

E

1 Мб

Длина слова ОП

L

4 байта

Базис реализации процессора МПС К1800ВС1.

2. Архитектура процессора

2.1 Форматы команд

2.1.1 Команда ADD

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

1 операндом является регистр.

2 операндом является регистр.

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

Флаг CF устанавливается 1 в случае переполнения приемника

Флаг PE - устанавливается в соответствии с разрядностью операндов (PE=0 - 32 бита, PE=1 - 16 бит)

Код операции: 01/h

Для заданной команды значение w - 1.

Значения полей reg1 и reg2 представлены в таблице 2.1.1.1.

Таблица 2.1.1.1. - Значения полей reg1 и reg2

Значение reg

Регистр

16 - бит

32- бита

000

001

010

011

100

101

110

111

AX

CX

DX

BX

SP

BP

SI

DI

EAX

ECX

EDX

EBX

ESP

EBP

ESI

EDI

2.1.2 Команда AND

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

1 операндом является регистр.

2 операндом является операнд в памяти.

Флаги SF, ZF, PF выставляются в соответствии с результатом, флаги OF, CF равны нулю.

Флаг PE - устанавливается в соответствии с разрядностью операндов (PE=0 - 32 бита, PE=1 - 16 бит)

Код операции: 23/h

Для данной команды значение w - 1, mod - 00.

Значения полей reg и r/m представлены в таблицах 2.1.1 и 2.1.2.

2.1.3 Команда MOV

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

1 операндом является регистр.

2 операндом является операнд в памяти

Флаг PE - устанавливается в соответствии с разрядностью операндов (PE=0 - 32 бита, P =1 - 16 бит)

Код операции: 8B/h

Для заданной команды значение w - 1, mod -00.

Значения полей reg иr/m представлены в таблицах 2.1.1.1 и 2.1.3.1 .

Таблица 2.1.3.1. - Значения поля r/m

Значение r/m

Эф. адрес

16 - бит

32- бита

000

001

010

011

100

101

110

111

[BX+SI]

[BX+DI]

[BP+SI]

[BP+DI]

[SI]

[DI]

Disp_16

[BX]

[EAX]

[ECX]

[EDX]

[EBX]

[sib]

Disp_32

[ESI]

[EDI]

2.1.4 Команда FCOM

Выполняется сравнение значения в регистре ST(0) и значения, указанного в команде. Результат сравнения определяется состоянием битов С3, С2 и С0. Значения битов С3, С2 и С0 в зависимости от результатов сравнения приведены в таблице 2.1.3

Таблица 2.1.4.1. - Результат сравнения по состоянию битов С3, С2 и С0

Результат сравнения

С3

С2

С0

Второй операнд больше первого

Второй операнд меньше первого

Второй операнд равен первому

Операнды несравнимы

0

0

1

1

0

0

0

1

1

0

0

1

Код операции: D8/h

Для данной команды значение mod - 00.

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

2.2.1 Числа с фиксированной точкой

Числа с фиксированной точкой могут быть представлены как со знаком, так и без него

Целый тип со знаком - двоичное значение со знаком размером 16 или 32 бита. Знак в этом двоичном числе содержится в 15 или 31 бите соответственно: ноль соответствует положительному числу, а единица отрицательному. Отрицательные числа представляются в дополнительном коде.

Диапазон значений:

16 - бит: -32768 - 32767

32 - бита: -231 - 231-1

Данный формат используется в командах ADD и MOV.

Целый тип без знака - двоичное значение без знака, размером 16 или 32 бита.

Диапазон значений:

16 - бит: 0 - 65535

32 - бита: 0 - 232-1

Данный формат используется в команде AND.

2.2.2 Числа с плавающей точкой

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

Диапазон значений:

10-38 - 1038

Диапазон значений:

10-308 - 10308

Диапазон значений:

10-4932 - 104932

В команде FCOM используются числа в коротком и расширенном форматах.

2.3 Расчет и выбор разрядности основных узлов процессора

а) Регистр команд предназначен для хранения команд, и его длина определяется максимальным форматом команды из заданного набора команд:

n(РгК) = 48 [бит];

б) Длина счетчика адреса команд СчАК, входящего в состав ССП, определяется емкостью ОП:

n(СчАК) = log2 E = log2 220= 20 [бит];

в) Расчет длины регистра адреса ОП:

n(РгАОП) = log2 ( E / L ) = log2(220/ 22) = 18 [бит] ;

г) Регистр записи оперативной памяти:

n(РгЗаОП) = 32 [бит];

д) Регистр чтения оперативной памяти:

n(РгЧтОП) = 32 [бит];

2.4 Слово состояния процессора

В данном проекте ССП является регистр CR0.

Описание флагов:

PE - состояние флага показывает то, в каком режиме работает процессор: 0 - в реальном, 1- в защищенном.

MP - указывает на наличие сопроцессора (всегда 1).

TS - переключение задач. Автоматически устанавливается при переключении на выполнение другой задачи.

AM - маска выравнивания. Если равен 1, то контроль выравнивания разрешен, 0 - запрещен.

CD - блокирование кэш-памяти. Если равен 1, то использование внутренней кэш-памяти разрешено, 0 - запрещено.

PG - 1 - разрешение страничного преобразования, 0 - запрет.

NW - разрешение сквозной записи (Используется в механизме расширения кэширования).

WP - защита записи. Страницы защищены от записи в режиме супервизора.

NE - разрешает механизм регистрации ошибок FPU;

ET - установлен равным 1.

EM - устанавливается при отсутствии сопроцессора (ЕМ=0)

2.5 Регистровая модель

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

1. Регистры общего назначения EAX/AX/AH/AL (регистр-аккумулятор применяется для хранения промежуточных данных), EBX/BX/BH/BL (базовый регистр задуман как место хранения базового адреса некоторого объекта в памяти), EDX/DX/DH/DL (регистр данных хранит промежуточные данные), ECX/CX/CH/CL (регистр-счетчик применяется в командах, производящих некоторые многократные действия), EBP/BP, ESI/SI, EDI/DI, ESP/SP предназначены для хранения данных и адресов, программист может их использовать (с определенными ограничениями) для реализации своих алгоритмов.

2. Сегментные регистры CS, DS, SS, ES, FS, GS служат для хранения значений, интерпретация которых зависит от режима работы процессора. В реальном режиме сегментные регистры содержат адрес параграфа начала сегмента в памяти. В защищенном режиме сегментные регистры хранят индекс входа в одну из системных таблиц дескрипторов -- GDT или LDT.

3. Регистр указателя команд (instruction pointer register) EIP/IP имеет разрядность 32/16 бит и содержит смещение следующей подлежащей выполнению команды относительно начала сегмента кода. Этот регистр непосредственно недоступен программисту, то есть его нельзя указывать в качестве операнда команд. Но к нему возможен косвенный доступ, так загрузка и изменение его содержимого производятся в результате работы различных команд управления программным потоком, к которым относятся команды условных и безусловных переходов, вызова процедур и возврата из процедур. Возникновение прерываний также приводит к модификации содержимого регистра EIP/IP.

4. Регистр флагов (FLAG register) имеет разрядность 32/16 бит. Отдельные биты данного регистра имеют функциональное назначение и называются флагами. Младшая часть регистра EFLAGS/FLAGS полностью аналогична регистру FLAGS процессора i8086.

Описание флагов:

Флаги состояния:

CF - (флаг переноса) если равен 1, то арифметическая операция произвела перенос из старшего бита результата или в старший бит результата. Старшим является 7-й, 15-й или 31-й бит в зависимости от размерности операнда; если CF равен 0 - переноса не было. Этот флаг показывает условие переполнения для беззнаковой арифметики.

PF - (флаг четности) если равен 1, то 8 младших разрядов результата содержат четное число единиц; если равен 0 - среди 8 младших разрядов результата количество единиц нечетно.

AF - (вспомогательный флаг переноса) применяется только для команд, работающих с BCD-числами. Если равен 1 - в результате операции сложения был произведен перенос из разряда 3 в старший разряд или при вычитании был заем в разряд 3; если равен 0 - переносов и заемов в третий разряд (из третьего разряда) результата не было.

ZF - (флаг нуля) когда равен 1 - результат нулевой; когда равен 0 - результат ненулевой.

SF - (флаг знака) если равен 1, то старший бит результата равен 1; если равен 0 - старший бит результата также 0.

OF - (флаг переполнения) если равен 1, то в результате операции происходит перенос в старший знаковый бит результата или заем из старшего знакового бита результата, если равен 0 - значение говорит об отсутствии переноса или заема.

Системные флаги и поле IOPL:

TF - (флаг трассировки) предназначен для организации пошаговой работы процессора: если он равен 1 - процессор генерирует прерывание с номером 1 после выполнения каждой машинной команды; если равен 0 -- обычная работа.

IF - (флаг прерывания) предназначен контроля аппаратных прерываний: когда он равен 1 - аппаратные прерывания разрешены; при равенстве 0 -- аппаратные прерывания запрещены.

IOPL - (уровень привилегированности ввода-вывода) используется в защищенном режиме работы процессора для контроля доступа к командам ввода-вывода в зависимости от назначенного задаче приоритета.

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

RF - (флаг возобновления) применяется при обработке прерываний от регистров отладки.

VM - (флаг виртуального процессора 8086) признак текущего режима процессора: если он равен 1 - процессор функционирует в режиме виртуального процессора 8086; равенство 0 означает работу в реальном или защищенном режиме.

AC - (флаг контроля выравнивания) предназначен для разрешения контроля выравнивания при обращениях к памяти. Используется совместно с битом AM в Системном регистре CR0.

VIF - (флаг виртуального прерывания) при определенных условиях, является аналогом флага IF. Флаг VIF используется совместно с флагом VIP (при CR4.VME = 1).

VIP - (флаг отложенного прерывания) устанавливается в 1 для индикации отложенного прерывания. Применяется при работе в режиме виртуального процессора i8086 совместно с флагом VIF (при CR4.VME = 1). Может быть установлен только программно.

ID - (флаг поддержки идентификации процессора) используется для индикации поддержки процессором инструкции CPUID.

Флаг управления:

DF - (флаг направления) определяет направление обработки данных. Если равен 1, то обработка происходит от конца к началу, если равен 0 - от начала к концу.

5. 80-разрядные регистры сопроцессора R0 - R7 предназначены для написания программ, оперирующих данными с плавающей запятой;

6. Регистр управления FPSR (CWR)

PC = 00 - длина мантиссы 24 бита;

PC = 10 - длина мантиссы 53 бита;

PC = 11 - длина мантиссы 64 бита;

В данной задаче значение PC = 00.

RC используется для задания характера округления

P - ошибка точности;

U - потеря точности;

O - переполнение;

Z - деление на ноль;

D - денормализованный операнд;

I - недействительная операция.

7. Регистр состояния FPCR (SWR)

SF - индикатор ошибки работы стека FPU, устанавливается в 1 если возникает PE, UE или IE;

ES - ошибка FPU (любая из шести исключительных операций);

С0-С3 - выполнение условия;

TOP - указатель текущей вершины стека;

PE - ошибка точности;

UE - потеря точности;

OE - переполнение;

ZE - деление на ноль;

DE - денормализованный операнд;

IE - недействительная операция.

8. Регистр тегов TW.

Состоит из двухбитовых полей.

Возможные значения полей TW:

00 - регистр занят допустимым ненулевым значением;

01 - нулевое значение в регистре;

10 - одно из специальных значений;

11 - в регистр можно производить запись (регистр пуст).

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

В дополнение к РЗУ в процессоре аппаратно реализуется следующий ряд регистров.

1. Регистр оперативной памяти (РгЧтОП). Разрядность - 32. Хранит последнее прочитанное из ОП слово.

2. Регистр оперативной памяти (РгЗаОП). Разрядность - 32. Регистр адреса ОП (РгАОП). Разрядность - 18. Хранит адрес слова оперативной памяти.

3. Регистр команд (РгК). Разрядность - 48. Хранит текущую команду.

2.5 Виды адресации

Поле mod (2 бита) отвечает за способ адресации и количество байтов, занимаемых в команде адресом операнда (поле смещения). Поле mod используется совместно с полем г/m, которое определяет способ модификации адреса операнда полем смещения в команде. Поле mod в комбинации с полем r/m образует 32 возможных значения, соответствующих одному из восьми регистров и 24 режимам адресации. Для упрощения в данной работе полагается, что поле mod может принимать значения 0h и 3h.

mod = 00 -- поле смещения в команде отсутствует, а адрес операнда рассчитывается исходя из содержимого базового и/или индексного регистра. Вывод о том, какие именно регистры потребуются для вычисления эффективного адреса, делается из содержимого поля r/m (см. далее). Для данного значения поля mod существуют исключения.

mod = 11 -- операндов в памяти нет -- они находятся в регистрах. Это же значение поле mod имеет в случае, когда команда работает с непосредственным операндом.

Таблица 2.5.1 - Значения байта mod r/m в 16-ти разрядном режиме адресации

Значение mod

Значение r/m

Эффективный адрес

00

00

00

000

001

010

BX+SI

BX+DI

BP+SI

00

00

00

00

00

011

100

101

110

111

BP+DI

DI

SI

Смещение 16

BX

11

11

11

11

11

11

11

11

000

001

010

011

100

101

110

111

AX

CX

DX

BX

SP

BP

SI

DI

В 32-х битном режиме адресации совпадение значений mod=00 и r/m=100 приводит к появлению SIB-байта.

Таблица 2.5.2. - Значения байта mod r/m в 32-х разрядном режиме адресации

Значение mod

Значение r/m

Эффективный адрес

00

00

00

00

00

00

00

00

000

001

010

011

100

101

110

111

EAX

ECX

EDX

EBX

[sib]

Смещение 32

ESI

EDI

11

11

11

11

11

11

11

11

000

001

010

011

100

101

110

111

EAX

ECX

EDX

EBX

ESP

EBP

ESI

EDI

SIB-байт используется для расширения возможностей адресации операндов.

Таблица 2.5.3 Значения байта SIB

Значение SS

Индекс

Масштабирование индексного регистра

00

00

00

00

00

00

00

00

000

001

010

011

100

101

110

111

EAX

ECX

EDX

EBX

---

EBP

ESI

EDI

01

01

01

01

01

01

000

001

010

011

100

101

EAX*2

ECX*2

EDX*2

EBX*2

---

EBP*2

01

01

110

111

ESI*2

EDI*2

10

10

10

10

10

10

10

10

000

001

010

011

100

101

110

111

EAX*4

ECX*4

EDX*4

EBX*4

---

EBP*4

ESI*4

EDI*4

11

11

11

11

11

11

11

11

000

001

010

011

100

101

110

111

EAX*8

ECX*8

EDX*8

EBX*8

---

EBP*8

ESI*8

EDI*8

3. Структурная организация процессора

3.1 Общая структура процессора

В состав процессора входят: блок микропрограммного управления (БМУ), операционный блок для обработки данных с фиксированной точкой (БФТ), блок обработки данных с плавающей точкой (БПТ), блок вычисления адреса следующей команды. Обмен между блоками и также связь между процессором и ОП осуществляется через блок интерфейса (БИНТ). Управляющие сигналы передаются из БМУ в БФТ, БПТ, ОП и блок вычисления адреса следующей команды по шине управления (ШУ). Осведомительные сигналы (ОС) из БФТ, БПТ и ОП поступают в БМУ по шине ШОС. Структурная схема процессора представлена на рисунке 3.1

Рисунок 3.1.1

3.2 Выбор и обоснование элементной базы

В качестве блоков обработки данных был использован базис, предложенный в индивидуальном задании (МПС К1800ВС1). Они соединены при помощи схемы ускоренного переноса К1500ИП179. Эта схема была выбрана т.к. она является 8-ми разрядной. В качестве БМУ была использована микросхема К1800ВУ1. В качестве РЗУ были использованы микросхемы К1800РП16. В качестве регистров, не входящих в РЗУ были использованы микросхемы К1500ИР141.

3.3 Блоки обработки данных

3.3.1 Операционный блок с фиксированной точкой

Основу БФТ составляет блок обработки данных (БОД), реализуемый на восьми центральных процессорных элементах (ЦПЭ) К1800ВС1. Структура ЦПЭ показана на рис. 3.1.2. Микросхема четырехразрядная, для создания 32'х разрядного блока необходимо восемь таких микросхем. Для увеличения скорости обработки данных ЦПЭ соединяются посредством схем ускоренного переноса К1500ИП179. Условно графическое изображение К1800ВС1 приведено на рис. 3.1.1, назначение выводов в табл. 3.3.1.

7171711717119:34

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

Т.контр

ЗЭВМ-110

Н.контр.

Провер. Буланкин В.Б. `

2

Разраб. Игошев И.А.. `

Утв.

Изм

Лист

N докум.

Подп.

Дата

Лит.

Листов

Лист

73

Рисунок 3.3.1. К1800ВС1

Связь БОД с ОП, БПТ и БМУ осуществляется через шины данных DI, OB, IB. Шины OB и IB - двунаправленные. На шины DI и OB могут подаваться значения в РЗУ, значение в поле CONST микропрограммы, значение из регистра BUF(операнд в памяти) и часть регистра команд, содержащая SIB-байт или смещение. На шину IB могут выставляться значения входных шин DI и OB, значение из аккумулятора или значение из АЛУ. Флаги могут фиксироваться в регистре флагов БФТ (EFLAGS). Под флажками подразумеваются четыре сигнала, вырабатываемые ЦПЭ:

1. ZD - признак нуля на входе сдвигателя;

2. OF - переполнение;

3. PR - четность результата;

4. CRO - перенос.

В БФТ выполняется вычисление исполнительных адресов и адресов переходов, выполняются операции с ФТ.

Таблица 3.3.1. - Назначение выводов К1800ВС1

N вывода

Обозначение

Назначение

1,24

UCC1

Напряжение источника питании, -5,2 B

2

РС

Выход чeтноcти перенocа

3

CRO

Выход переноса

4

CRG

Выход генерации группового переноса

5

CRP

Выход распространения группового переноса

6

OF

Выход переполнения

7,17

USS0

Общий (выходных транзисторов)

8,9

LBS, MBS

Двунаправленные выводы младшeгo и старшего разрядов сдвигателя

10

PR

Выход четности результата

11

ZD

Выход проверки на нуль

12,36

USS

Общий (схемы)

13…16

IВ0...IВ3

Входная шина IB - двунаправленные выводы разрядов 0...3

18,19

СО15, СО9

Входы упpaвления входной шины накопителя

20…23

ОВЗ...ОВ0

Выходная шина ОВ - двунаправленные выводы разрядов 0...3

25,48

UCC2

Напряжение источника питания, -2 В

26

SYN2

Вход синхронизации фиксатора

27

SYN1

Вход синхронизации накопителя

28

СО8

Вход управления разрешением шины IB

29,30,32,34

DI0, DI3, DI1, DI2

Входы данных DI разрядов 0...3

31,33

СО6, СО5

Входы управления выходной шины и блока управления

35,37…40

СОЗ, СО0, СО1, СО4, СО2

Входы управления передачей данных в сумматор

41

СО10

Вход управления режимом: сложение - вычитание

42

СО11

Вход управления режимом: двоичный - двоично-десятичный

43

СО12

Вход управления режимом: арифметический - логический

44

СRI

Вход переноса

45,46,47

СО7, СО14, СО13

Входы управления режимом сдвига

Рисунок 3.3.2. Структура К1800ВС1

Микросхема К1800ВС1 выполняет 28 логических операций, 23 операции двоичной арифметики.

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

Таблица 3.3.1. - Логические операции

Операция

MUXD

MUXM

Формирователь кодов

ACC

CO0

CO1

CO2

CO4

CO10

CO5•CO6

Установка 0

DI

OB

DI

OB

DIvOB

DIvOB

DIvOB

DI•OB

DI•OB

DI•OB

DI+OB

DI+OB

DI•OB

DI+OB

Установка 1

ACC•DI

ACC•OB

ACCvDI

ACCvOB

ACC+DI

ACC+DI

ACC+OB

ACC+OB

ACC+ DI•OB

ACC+ DI•OB

ACC+ DIvOB

ACC+ DIvOB

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

1

1

1

1

0

0

1

0

1

0

1

0

0

0

0

0

0

0

0

0

1

0

1

0

1

0

0

0

1

0

1

1

0

1

0

1

0

1

0

1

1

0

0

0

0

1

1

1

0

1

0

1

1

0

0

0

1

0

0

0

0

1

1

0

1

0

1

0

0

1

1

0

0

1

1

1

1

1

0

0

1

0

0

1

1

1

1

0

0

0

0

1

1

0

0

1

0

1

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

Арифметические операции, выполняемые микросхемой представлены в таблице 3.3.2.

Таблица3.3.2. - Арифметические операции

Двоичные

операции

(+CRI)

Десятично-

двоичные

операции(+CRI)

MUXD

MUXO

MUXD

(±2)

ACC

Формирователь

кодов

CO11•1

CO11•0

CO0

CO1

CO2

CO3

CO4

CO5•CO6

CO10

DI+OB

DI+OB

OB+DI

DI

OB

DI

OB

-1+DI

-1+OB

-2+DI

-2+OB

+2+DI

+2+OB

DI+DI

OB+OB

ACC+DI

ACC+OB

ACC+DI

ACC+OB

ACC+DI•OB

ACC+DI•OB

ACC+DIvOB

ACC+DIvOB

DI+OB

DI+доп. 9 OB

OB+доп. 9 DI

DI

OB

доп. 9 DI

доп. 9 OB

X

X

X

X

+2+DI

+2+OB

DI+DI

OB+OB

ACC+DI

ACC+OB

ACC+ доп. 9 DI

ACC+ доп. 9 OB

ACC+DI•OB

ACC+доп. 9 DI•OB

X

X

1

1

0

0

0

0

0

1

1

1

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

1

1

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

0

0

1

1

1

1

0

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

0

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

1

0

0

1

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

3.3.2 Операционный блок с плавающей точкой

Основу БПТ составляет блок обработки данных (БОД), реализуемый на центральных процессорных элементах (ЦПЭ) К1800ВС1. Структура ЦПЭ показана на рис. 3.3.2. Микросхема четырехразрядная, для создания 80-ти разрядного блока необходимо двадцать таких микросхем. Для увеличения скорости обработки данных ЦПЭ соединяются посредством схем ускоренного переноса К1500ИП179.

Связь БОД с ОП, БПТ и БМУ осуществляется через шины данных DI, OB, IB. Шины OB и IB - двунаправленные. На шины DI и OB могут подаваться значения в РЗУ, значение в поле CONST микропрограммы, значение из регистра BUF(операнд в памяти) и выход сдвигателя не 8 тетрад. На шину IB могут выставляться значения входных шин DI и OB, значение из аккумулятора или значение из АЛУ. Флаги могут фиксироваться в регистре флагов БФТ (SWR).

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

Регистровая память организована на микросхеме К1800РП16. Каждая такая микросхема содержит 64 9-ти разрядных регистра и является двухадресной. Таким образом РЗУ можно организовать на 9 таких микросхемах.

Адреса и соответствующие им регистры представлены в таблице 3.4.1.

Регистры управления (CR0,CWR) и регистры состояния (EFLAGS, SWR, TW,TWW) не входят в состав РЗУ и реализуются отдельно.

Таблица 3.4.1. - Адреса регистров

Адрес

Регистр

000000

EAX

000001

ECX

000010

EDX

000011

EBX

000100

EDI

000101

ESI

000110

EBP

000111

ESP

001000

РгА

010000

R0

010001

R1

010010

R2

010011

R3

010100

R4

010101

R5

010110

R6

010111

R7

011000

RGA

011001

RGB

011010

RGC

011011

RGD

011100

RGE

011101

RGF

011110

RGG

011111

RGH

3.5 Оперативная память

В ОП хранятся слова длинной 4 байта. Емкость оперативной памяти составляет 1Мб. Слово выбирается или записывается за одно обращение к памяти. В состав ОП входят запоминающее устройство, регистр адреса оперативной памяти (РгАОП),входной регистр - регистр записи(РгЗаОП), выходной регистр - регистр чтения(РгЧтОП). Чтение и запись в ОП инициируются сигналами ЧтОП и ЗпОП соответственно.

3.6 Блок интерфейсов

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

3.7 Управляющий автомат

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

Схема управления последовательностью микрокоманд реализуется на микросхеме К1800ВУ1. Устройство также содержит микропрограммную память и регистр микрокоманд. Оно выполняет функцию формирования последовательности адресов микрокоманд под воздействием внешних управляющих сигналов, организации циклических процессов и подпрограмм.

3.7.2 Управляющий автомат с жесткой логикой

Управляющий автомат с жесткой логикой реализует алгоритм выполнения команды MOV. ГСА имеет 1 условную вершину: x1 - PE и 3 операторные вершины:

y1 - РОН1(0:31):=BUF(0:31),

y2 - PОН1 = PОН1 & FFFF,

y3 - PОН1(0:31):=BUF(0:31).

ГСА представлена на рисунке 3.7.2.1.

Рисунок 3.7.2.1. Граф- схема автомата

В качестве автомата выбран автомат Мили.

Рисунок 3.7.2.2. Граф автомата.

Таблица 3.7.1.1 - Обратная таблица переходов

am

Q

as

Q

x

y

Сигналы возбуждения

a0

a0

a1

0

0

1

a0

a1

a0

0

1

0

x1

x1

1

y3

y1

y2

0

1

0

Функции переходов и выходов

D = Q x1

y1 = Q x1

y2 = Q

y3 = Q x1

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

Рисунок 3.7.2.3. Схема автомата

4. Содержательные схемы алгоритмов работы процессора

4.1 Общий алгоритм цикла работы процессора

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

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

Алгоритм функционирования процессора приведен на рисунке 4.1.

Рисунок 4.1. Цикл работы процессора

4.2 Алгоритм выборки команды

Вначале анализируется триггер перехода. Он введен для фиксации порядка следования команд и устанавливается в состояние 0 при естественном порядке выборки или в состояние 1 - в случае перехода. Далее происходит чтение оперативной памяти и запись слова в РгЧтОП.

Длина слова оперативной памяти составляет 4 байта, поэтому необходимо проанализировать два последних бита СчАК для определения с какого байта начинается команда в слове оперативной памяти.

Далее происходит загрузка 2 байт в регистр команд. При необходимости происходит чтение новой строки оперативной памяти (два последних бита СчАК = 11, т.е команда начинается с последнего байта в строке). Оставшаяся часть слова из РгЧтОП помещается в регистр-буфер РгБ. Первая часть алгоритма приведена на рисунке 4.2.1.

Затем происходит декодирование команды. В ходе декодирования определяется режим адресации. При определении регистровой адресации загрузка команды заканчивается. При необходимости загрузки смещения или SIB-байта происходит анализ режима адресации (16-ти или 32-х битная адресация). Алгоритм декодирования представлен приведена на рисунке 4.2.2.

Далее происходит загрузка оставшейся части команды. Алгоритм загрузки SIB-байта представлен на рисунке 4.2.3. Алгоритм загрузки смещения в 16-ти разрядном режиме адресации представлен на рисунке 4.2.4. Алгоритм загрузки смещения в 32-х разрядном режиме адресации представлен на рисунке 4.2.5.

Рисунок 4.2.1. Выборка команды

Рисунок 4.2.2. Декодирование команды

Рисунок 4.2.3. загрузка SIB-байта

Рисунок 4.2.4. Загрузка смещения в 16-ти разрядном режиме адресации

Рисунок 4.2.5. Загрузка смещения в 32-х разрядном режиме адресации

4.3 Алгоритм формирования ИА и выборки операндов

Формирование исполнительного адреса происходит в БФТ и начинается с анализа флага PE регистра EFLAGS, отвечающего за режим адресации. Далее анализируется значение mod регистра команд. При значении mod отличном от нуля происходит переход к микропрограмме обработки прерывания. При mod равном нулю происходит анализ поля r/m регистра команд. Далее в зависимости от значения поля r/m происходит запись в регистр РгА соответствующего значения. Формирование соответствующего значения происходит по таблицам Intel. При 32-х разрядном режиме адресации и значениях mod=0h и r/m=4h вычисление исполнительного адреса осуществляется исходя из значения SIB-байта в команде. Формирование исполнительного адреса в этом случае также происходит по таблицам Intel.

Алгоритм формирования исполнительного адреса в 16-ти разрядном режиме представлен на рисунке 4.3.1. Алгоритм формирования исполнительного адреса в 32-х разрядном режиме представлен на рисунке 4.3.3.

После формирования значения в РгА происходит его анализ. В зависимости от режима адресации значение в РгА не должно превышать FFFF h в 16-ти разрядном режиме и FFFFF h в 32-х разрядном режиме адресации. В последнем случае размер адреса ограничен объемом оперативной памяти.

Далее осуществляется загрузка операнда. Правила записи операндов в оперативную память также накладывают ограничения на значение РгА.

Алгоритм извлечения операнда из оперативной памяти в 16-ти разрядном режиме представлен на рисунке 4.3.2. Алгоритм извлечения операнда из оперативной памяти в 32-х разрядном режиме представлен на рисунке 4.3.4.

Рисунок 4.3.1. Алгоритм формирования исполнительного адреса в 16-ти разрядном режиме

Рисунок 4.3.2. Загрузка операнда в 16-ти разрядном режиме адресации

Рисунок 4.3.3. Алгоритм формирования исполнительного адреса в 32-х разрядном режиме

Рисунок 4.3.4. Загрузка операнда в 32-х разрядном режиме адресации

Рисунок 4.3.5. Вычисление ИА по SIB-байту

4.4 Алгоритм обработки прерываний

При возникновении прерывания старое ССП записывается в ОП, новое читается из ОП. Т.к. слово ОП - 32 разряда, то при записи и чтении происходит два обращения к ОП. Алгоритм показан на рисунке 4.4.1

Рисунок 4.4.1 Алгоритм обработки прерывания

4.5 Команда ADD

В БФТ выполняется операция сложения РОН'ов по адресу REG1 и REG2, результат записывается в РОН по адресу REG1. Если при выполнении операции возникло переполнение, то происходит переход к обработке прерывания. Если прерывания не возникло, то формируется признак результата и происходит переход к началу работы цикла процессора. Алгоритм показан на рисунке 4.5.1.

Рисунок 4.5.1 Алгоритм выполнения команды ADD

4.6 Команда AND

В БФТ выполняется операция логического умножения РОН'а по адресу REG1 и значения в буферном регистре хранения операнда BUF, результат записывается в РОН по адресу REG1. По выполнении формируется признак результата и происходит переход к началу работы цикла процессора. Алгоритм показан на рисунке 4.6.1.

Рисунок 4.6.1 Алгоритм выполнения команды AND

4.7 Команда MOV

Выполняется операция пересылки значения в буферном регистре хранения операнда BUF в РОН по адресу REG1. Алгоритм показан на рисунке 4.7.1.

Рисунок 4.7.1 Алгоритм выполнения команды MOV

4.8 Команда FCOM

В начале происходит загрузка значений из регистра-буфера BUF и регистра ST(0) в рабочие регистры RGA и RGB. Далее происходит разделение операндов на знаки, характеристики и мантиссы. Расположение соответствующих частей операндов представлено в таблице 4.8.1.

Таблица 4.8.1. - Расположение частей операндов в рабочих регистрах

Часть

Первый операнд

Второй операнд

Знак

Характеристика

Мантисса

RGE

RGC

RGA

RGF

RGD

RGB

Алгоритм разделения операндов на знаки характеристики и мантиссы представлен на рисунке 4.8.1.

Далее происходит проверка знаков. Если знаки различны, то происходит принятие решения. Если знаки одинаковые то происходит выравнивание характеристик. Мантисса операнда с меньшей характеристикой сдвигается вправо, к этой характеристике прибавляется единица. Алгоритм выполнения второго этапа показан на рисунке 4.8.3.

Затем происходи вычитание мантисс. После вычитания анализируется знак результата и выставляется соответствующие значение в RGG. Далее происходит анализ значения в RGG и в зависимости от знака происходит принятие решения.

Алгоритмы вычитания мантисс и принятия решения представлены на рисунках 4.8.4 и 4.8.5.

После принятия решения в регистр RGH заносится соответствующая константа. Затем происходит выставление флагов C0, С2, С3 в регистре SWR.

Рисунок 4.8.1 Алгоритм разделения операндов на знаки характеристики и мантиссы

Рисунок 4.8.2 Проверка знаков

Рисунок 4.8.3 Выравнивание характеристик

Рисунок 4.8.4 Вычитание мантисс

Рисунок 4.8.5 Принятие решения

Рисунок 4.8.6 Запись результата

5. Микропрограммное управление

5.1 Формат микрокоманды

Микрокоманда состоит из зоны БФТ, БПТ, БМУ, ОП, БИНТ управляющие одноименными блоками и отдельное поле CONST. Структура микрокоманды приведена в таблице 5.1.1.

Таблица 5.1.1 - Структура микрокоманды

Зона

Поле

Количество разрядов

Разряды

Значение по умолчанию

БФТ

REG1

REG2

MDI

MOB

MIB

OX

OY

ALU

SDV

FLAGS

4

4

2

2

2

2

2

4

2

1

0:3

4:7

8:9

10:11

12:13

14:15

16:17

18:21

22:23

24:25

0

0

00

00

01

00

01

0

0

БПТ

REG1

REG2

MDI

MOB

MIB

OX

OY

ALU

SDV

SDV32

FLAGS

4

4

2

2

2

2

2

4

2

2

1

26:27

28:33

34:35

36:37

38:39

40:41

42:43

44:47

48:49

50:51

52

0

0

00

00

01

00

01

0

0

0

БМУ

П

У

ТП

ADDR

NF

1

1

2

8

1

53

54

55:56

57:64

65

0

0

0

0

0

БИНТ

W

R

WA

RGС

RGB

1

1

1

1

1

66

67

68

69

70

0

0

0

0

0

ОП

WRITE

READ

1

1

71

72

0

0

CONST

32

73:105

0

Описание полей приведено ниже, при необходимости представлены таблицы значений полей, где + - значение по умолчанию.

5.1.1 Зона БФТ

Поля REG1 и REG2 содержат номера регистров. Поля MDI и MOB управляют потоками информации на шинах DI и OB соответственно. Поле MIB управляет выдачей информации на шину IB. Поля OX и OY управляют потоками информации на входе АЛУ. Поле SDV управляет сдвигателем в АЛУ. Поле FLAGS разрешает запись флагов.

Таблица 5.1.1.1 - Значения полей REG1/2

Значение

Регистр

0000

0001

0010

0011

0100

0101

0110

0111

1000

EAX

ECX

EDX

EBX

EDI

ESI

EBP

ESP

РгА

Таблица 5.1.1.2 - Значения полей MDI/MOB

Значение

Источник

00

01

10

11

РЗУ

BUF

CONST

ША

Таблица 5.1.1.3 - Значения поля MIB

Значение

Источник

00

01

10

11

ALU

DI

OB

ACC

Таблица 5.1.1.4 - Значения поля OX

Значение

Источник

00

01

10

DI

OB

ACC

Таблица 5.1.1.5 - Значения поля OY

Значение

Источник

00

01

10

DI

OB

ACC

Таблица 5.1.1.6 - Значения поля ALU

Значение (hex)

Операция

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

Установка 0

Установка 1

DI

OB

ACC

not(DI)

not(OB)

not(ACC)

DI&OB

DIvOB

DI+OB

DI-OB

DEC(DI)

DEC(OB)

DI+2

OB+2

Таблица 5.1.1.7 - Значения поля SDV

Значение

Сдвиг

00

01

10

11

Сдвиг влево

Лог. сдвиг вправо

Нет сдвига

Арифм. сдвиг вправо

5.1.2 Зона БПТ

Поля REG1 и REG2 содержат номера регистров. Поля MDI и MOB управляют потоками информации на шинах DI и OB соответственно. Поле MIB управляет выдачей информации на шину IB. Поля OX и OY управляют потоками информации на входе АЛУ. Поле SDV управляет сдвигателем в АЛУ. Поле SDV32 управляет внешним сдвигателем на 32 разряда, который используется только при загрузке констант. Поле FLAGS разрешает запись флагов C0, C1, C2 в регистр SWR.

Таблица 5.1.2.1 - Значения полей REG1/2

Значение

Регистр

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

R0

R1

R2

R3

R4

R5

R6

R7

RgA

RgB

RgC

RgD

RgE

RgF

RgG

RgH

Таблица 5.1.2.2 - Значения полей MDI/MOB

Значение

Источник

00

01

10

11

РЗУ

BUF

CONST

SDV32

Таблица 5.1.2.3 - Значения поля MIB

Значение

Источник

00

01

10

11

ALU

DI

OB

ACC

Таблица 5.1.2.4 - Значения поля OX

Значение

Источник

00

01

10

DI

OB

ACC

Таблица 5.1.2.5 - Значения поля OY

Значение

Источник

00

01

10

DI

OB

ACC

Таблица 5.1.2.6 - Значения поля SDV

Значение

Сдвиг

00

01

10

11

Сдвиг влево

Лог. сдвиг вправо

Нет сдвига

Арифм. сдвиг вправо

Таблица 5.1.2.7 - Значения поля SDV32

Значение

Сдвиг

00

01

10

Нет сдвига

Сдвиг влево

Сдвиг в...


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.

    реферат [1,1 M], добавлен 06.01.2011

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    курсовая работа [314,4 K], добавлен 12.03.2014

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

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

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

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

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

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

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

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

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