Проектирование процессора

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

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

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

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

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

Проектирование процессора

1. Исходные данные для проектирования

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

Рисунок 1. Структурная схема вычислительного устройства: ОЗУ - оперативное запоминающее устройство; Рг - блок регистров и логических схем; АЛУ - арифметико-логическое устройство (устройство управления АЛУ не показано); УУ - устройство управления; БС - блок согласования разрядности шин; ША - шина адреса; ШД - шина данных; ШС - шина состояния; ШУ - шина управления; ВУ - внешние устройства

Необходимо реализовать следующий набор операций:

1) арифметические операции:

* сложение;

* вычитание;

* умножение;

* деление;

2) логические операции:

* дизъюнкция;

* конъюнкция;

* сложение по модулю два;

* условный переход по значению >0;

* условный переход по значению <0;

* условный переход по значению =0;

* условный переход по переполнению;

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

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

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

3) операции с запоминающим устройством:

* запись в запоминающее устройство;

* чтение из запоминающего устройства;

4) операции со стеком:

* запись;

* чтение;

* сложение со стеком;

* вычитание из стека;

5) операции с внешними устройствами:

* запись во внешнее устройство;

* чтение из внешнего устройства;

6) системные операции:

* останов;

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

* запрещение прерывания;

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

* загрузка регистра базы;

* загрузка указателя стека.

При этом используются следующие форматы команд:

RR - «регистр - регистр»;

RS - «регистр - ячейка оперативной памяти»;

AR -- «аккумулятор - регистр»;

AS -- «аккумулятор - ячейка оперативной памяти»;

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

SI - «ячейка оперативной памяти - непосредственный операнд».

Формирование исполнительного адреса операнда должно быть организовано следующими способами (типами) адресации (ТА):

* непосредственной (прямой) адресации (П);

* косвенной адресации (К);

* относительной адресации (О).

Устройство управления предполагается разрабатывать в виде трех видов организаций:

* с жесткой логикой (ЖЛ);

* с программируемой последовательной логикой (микропрограммные автоматы с хранимой программой) (ППЛ);

* с программируемой параллельной логикой (автоматы на программируемых логических матрицах, программируемых матрицах логических элементов (ПЛИС).

В качестве примера исходных данных при проектировании процессора воспользуемся данными, соответствующими варианту 1 (приложение).

2. Определение форматов команд процессора

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

Первый этап - это определение разрядностей основных коммуникационных элементов разрабатываемого процессора: шины данных (ШД), шины адреса (ША) и шины управления (ШУ).

Разрядность ШД определяется из варианта задания. В задании задана разрядность шины данных. Она равна 64. Это и будет разрядностью шины данных, то есть ШД(63-0).

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

Оценку разрядности ША можно выполнить за два этапа. На первом этапе необходимо произвести арифметическую операцию деления заданной емкости запоминающего устройства на разрядность его слова; при этом необходимо учитывать, что емкость памяти задана в килобайтах. Выполнив операцию 316*1024/32, получим, что память содержит 512 ячеек. На следующем этапе необходимо подобрать ближайшую наименьшую степень двойки, достаточную для того, чтобы записать в двоичной системе счисления полученное число ячеек. Такой степенью является число 9, то есть 29. Таким образом, разрядность шины адреса должна быть равна 9. Получаем ША(8-0).

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

Коп

ФК

ТА

S

I

Так как количество операций, которые необходимо реализовать в разрабатываемом устройстве, равно 28, то для того, чтобы их закодировать, необходимо 5 двоичных разрядов как наименьшей степени двойки, достаточной для двоичного кодирования данного количества операций. После выбора количества разрядов КОп необходимо закодировать все операции системы команд. Для этого составляем таблицу, в которой проставляем коды заданных команд (табл. 1).

Таблица 1 - Кодирование команд

Тип операции

Код

Тип операции

Код

Сложение

00000

Запись в ЗУ

01110

Вычитание

00001

Чтение из ЗУ

01111

Умножение

00010

Запись в стек

10000

Деление

00011

Чтение из стека

10001

ИЛИ

00100

Сложение со стеком

10010

И

00101

Вычитание из стека

10011

Сумма по модулю 2

00110

Запись в ВУ

10100

Условный переход, если >0

00111

Чтение из ВУ

10101

Условный переход, если <0

01000

Остановка

10110

Условный переход по =0

01001

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

10111

Условный переход по переполнению

01010

Запрещение прерывания

11000

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

01011

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

11001

Переход к подпрограмме

01100

Загрузка регистра базы

11010

Выход из подпрограммы

01101

Загрузка указателя стека

11011

Так как в задании дано два формата команды, то, чтобы их закодировать, достаточно одного бита. Выбираем следующие коды заданных форматов: SI - ФК=0, для формата RI - ФК=1.

Для того чтобы закодировать содержимое поля ТА, необходимо два разряда, так как задано три типа адресации. При этом необходимо выбрать коды всех заданных видов ТА. Примем для прямой адресации код ТА=0., для косвенной - ТА=1.

После кодирования содержимых этих полей необходимо переходить к выбору длин остальных полей. Поле S, то есть адрес ячейки оперативной памяти, имеет разрядность 9, так как шина адреса имеет разрядность 9. Последнее поле I - это непосредственный операнд, который имеет разрядность 16 в соответствии с разрядностью данных по заданию.

Получаем следующий формат команды:

Полученный формат команды имеет длину 32 бит, отсюда получаем разрядность шины управления, так как она равна разрядности формата команды. Таким образом получаем ШУ(15-0).

Для команд формата RI ситуация выглядит иначе. Здесь формат команды будет немного другим. Поля формата будут практически одинаковы, кроме поля S. Для выбора разрядности поля R сначала необходимо выбрать число регистров общего назначения (РОН). В данном курсовом проекте вполне достаточно восьми регистров. Следовательно, для адресации к восьми регистрам необходимо иметь три разряда внутренней шины адреса АЛУ:R=3. Разрядность поля I будет равна заданной разрядности шины данных, так как поле I является полем непосредственного операнда: I=64. Отсюда получаем следующий формат команды для варианта RI:

Для удобства последующей распаковки кода формата команды разряды с 9-го по 15-й делаем «пустыми», для того чтобы второе поле непосредственного операнда I, как и в предыдущей команде, начиналось с 16-го бита и заканчивалось 31-м битом.

После определения форматов команд процессора необходимо составить содержательную таблицу кодирования всех вариантов форматов команд (табл. 2).

Таблица 2 - Кодирование форматов команд

Код операции

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

Тип адресации (ТА)

Код ТА

Содержание операции

Арифметические

Сложение 00000

RI

П

00

A1.A2:= POH[R] +I;

К

01

A1.A2:= OP[POH[R]] + I;

SI

П

00

A1.A2:= OP[S] + I;

К

01

A1.A2:= OP[OP[S]] + I;

Вычитание 00001

RI

П

00

A1.A2:=POH[R]-I;

К

01

А1.A2:= OP[POH[R]] - I;

SI

П

00

A1.A2:= OP[S] - I;

К

01

A1.A2:= OP[OP[ S]] - I; I

Умножение

00010

RI

П

00

A1.A2:= POH[R]*I;

К

01

A1.A2:=OP[POH[R]]*I;

SI

П

00

A1.A2:= OP[S]*I;

К

01

A1.A2:=OP[OP[S]]*I;

Деление

00011

RI

П

00

A1.A2:=POH[R] / I;

К

01

A1.A2:=OP[POH[R]]/I;

SI

П

00

A1.A2:=OP[S] / I;

К

01

A1.A2.В1.В2:=OP[OP[S]]/I;

Логические

Дизъюнкция 00100

RI

П

00

A1.A2:=POH[R]vI;

К

01

A1.A2:=OP[POH[R]]vI;

SI

П

00

A1.A2:= OP[S]vI;

К

01

A1.A2:=OP[OP[S]]vI;

Конъюнкция

00101

RI

П

00

A1.A2:=POH[R]ЛI;

К

01

A1.A2:= OP[POH[R]]ЛI;

SI

П

00

A1.A2:= OP[S] Л I;

К

01

A1.A2:=OP[OP[S]]ЛI;

Сложение пo модулю

2

00110

RI

П

00

A1.A2:=POH[R]_I;

К

01

A1.A2:= OP[POH[R]] _I;

SI

П

00

А1.A2:= OP[S] _ I;

К

01

A1.A2:=OP[OP[S]] _I

УП пo > 0 00111

RI

П

00

if (SF = 0) and (ZF = 0) then PC:=I

К

01

SI

П

00

К

01

УП пo < 0 01000

RI

П

00

if SF = 1 thenPC:=I

К

01

SI

П

00

К

01

УП по = 001001

RI

П

00

If ZF = l then PC := I

К

01

SI

П

00

К

01

УП по

переполнению

01010

RI

П

00

If OF = l then PC := I

К

01

SI

П

00

К

01

Безус-

ловный переход

01011

RI

П

00

PC := I

К

01

SI

П

00

К

01

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

01100

RI

П

00

SP := SP - 1,

OP[SP] := PC+2,

PC := I

К

01

SI

П

00

К

01

Возврат из под-

программы 01101

RI

П

00

PC := OP[SP],

SP := SP + 1

К

01

SI

П

00

К

01

Операции с запоминающим устройством

Запись в ЗУ

01110

RI

П

00

POH[R] := A1.A2

К

01

OP[POH[R]] := I

SI

П

00

OP[S] :=A1.A2

К

01

OP[OP[S]]:=I

Чтение из ЗУ 01111

RI

П

00

A1.A2:= POH[R]

К

01

A1.A2:= OP[POH[R]]

SI

П

00

A1.A2:= OP[S]

К

01

A1.A2:= OP[OP[S]]

Операции со стеком

Запись 10000

RI

П

00

SP := SP - 2, OP[SP] := POH[R]

К

01

SI

П

00

SP := SP - 2, OP[SP] := A1.A2

К

01

Чтение 10001

RI

П

00

POH[R] := OP[SP], SP := SP + 2

К

01

SI

П

00

A1.A2:= OP[SP], SP := SP + 2

К

01

Сложение со стеком 10010

RI

П

00

OP[SP] := OP[SP] + POH[R]

К

01

SI

П

00

OP[SP]:=OP[SP]+A1.A2

К

01

Вычита-

ние из

стека

10011

RI

П

00

OP[SP] := OP[SP] - POH[R]

К

01

SI

П

00

OP[SP] := OP[SP] - A1.A2

К

01

Операции с внешними устройствами

Запись в ВУ 10100

RI

П

00

RgED := POH[R]

К

01

SI

П

00

RgED := OP[S]

К

01

Чтение изВУ 10101

RI

П

00

POH[R] := RgED

К

01

SI

П

00

OP[S] := RgED

К

01

Системные операции

Останов

10110

RI

П

00

WF := U

К

01

SI

П

00

К

01

Разре-

шение

преры-

вания

10111

RI

П

00

IF := 1

К

01

SI

П

00

К

01

Запрещение прерывания 11000

RI

П

00

IF := 0

К

01

SI

П

00

К

01

Возврат

из пре-

рывания

11001

RI

П

00

PC := OP[SP], SP := SP + 1

RgF:=OP[SP], SP:=SP+1

К

01

SI

П

00

К

01

Загрузка

регистра

базы (В)

11010

RI

П

00

B:=POH[R]

К

01

SI

П

00

В := OP[S]

К

01

Загрузка

указателя стека (SP)

11011

RI

П

00

SP := POH[R]

К

01

SI

П

00

SP := OP[S]

К

01

Примечание. Сокращения наименований и условные обозначения содержимого полей, ячеек ОП и регистров следующие: R, S - значения полей из кода инструкции; ОР - операнд из памяти; A1.A2 -аккумулятор, состоящий из 2 8-разрядных регистров; SP - регистр - указатель стека; PC - регистр - программный счетчик; RI -адресация «регистр - непосредственный операнд»; SI - адресация «ячейка оперативной памяти - непосредственный операнд»; RgED -регистр внешнего устройства; RgF - регистр флагов; WF - флаг пуска-останова процессора; SF - флаг знака; OF - флаг переполнения; ZF - флаг нуля; [address] - операнд из ячейки с адресом address; В -регистр базы; IF - флаг прерывания.

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

3. Проектирование алгоритма командного цикла процессора

На основе содержательной таблицы команд 2 проектируем обобщенный алгоритм командного цикла (рисунок 2), где используемые в алгоритме двоичные разряды содержимого шин, ячеек и регистров обозначаем в квадратных скобках: например, РС[9:0]:=0 означает, что все биты регистра-счетчика PC с 0-го по 9-й используются в данном алгоритме и вначале устанавливаются в нулевое состояние.

Рисунок 2. Блок-схема обобщенного алгоритма командного цикла

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

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

Описание слова состоит из названия (идентификатора) и разрядного указателя. Идентификатором может быть произвольная последовательность букв и цифр, начинающаяся с буквы. Разрядный указатель состоит из номеров старшего и младшего разрядов слова, разделенных горизонтальной чертой (дефис). Номер старшего разряда записывается слева от черты, а номер младшего - справа. Указатель заключается в круглые скобки. Так, описание слова, представляющего 32-разрядный адрес Аисп = a31, а30,..., а0, записывается в виде Аисп(31-0). Разрядный указатель может опускаться, если это не вызывает недоразумений (например, если слово уже было описано раньше).

Описание шины, как и слова, состоит из идентификатора и разрядного указателя: например, описание 32-разрядной шины адреса имеет вид ША(31-0).

Описание регистра также включает в себя названия регистра и разрядного указателя. Например, пусть команда имеет длину 32 бита и состоит из 8-разрядного кода операции, 4-разрядного поля способа адресации и 20-разрядного поля адреса. Тогда описание регистра команды выглядит следующим образом: РК(31-0), а описания его отдельных элементов и, соответственно, полей команды имеют вид: РК(31-24), РК(23-20), РК(19-0). Вместо номеров разрядов в разрядном указателе можно записывать наименование поля слова. Тогда два первых поля регистра команды должны быть представлены так: РК(КОп), РК(СА).

В самом общем виде описание памяти емкостью 1000 16-разрядных слов имеет вид: ПАМ[000:999](15-0), где ПАМ -стандартное название памяти. Будем использовать следующие идентификаторы памяти: ОП (основная память), ОЗУ (модуль оперативного запоминающего устройства), ПЗУ (модуль постоянного запоминающего устройства). В квадратных скобках записывается адресный указатель: слева от двоеточия адрес первого, а справа - адрес последнего слова памяти. В круглые скобки заключается разрядный указатель слова, если все слова памяти имеют одинаковую разрядность.

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

Примеры описаний слов памяти: ОЗУ1[211], или ОЗУ1[Аисп], или ОЗУ1[(РАП)], где Аисп - символический адрес, (РАП) - косвенный адрес, значение которого содержится в регистре РАП.

Микрооператор по форме записи представляет собой оператор присваивания. Выражение справа от знака присваивания (:=) называется формулой микрооператора, которая определяет вид преобразования, производимого микрооперацией, и местоположение преобразуемых операндов. Слева от знака присваивания в микрооператоре указывается приемник результата реализации формулы.

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

Микрооперация установки - присваивание слову значения константы, например:

ПРгХ: PrX(s * m) := 0; ПРгС:С(7-0) := 3110.

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

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

БпУп: СК := РА.

Здесь микрооператор описывает занесение в счетчик команд содержимого регистра адреса (адресного поля регистра команды).

Другие примеры микроопераций пересылки:

PXPY: PгY(15-0) := РгХ(15-0);

РевХУ: PrY(15-0) > РгХ(0-15).

Первый микрооператор описывает пересылку 16-разрядного слова из регистра РгХ в регистр PгY с сохранением расположения разрядов, а второй - с «разворотом» исходного слова.

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

Пусть в 16-разрядный регистр А нужно передать слово, старшие разряды которого содержатся в 8-разрядном регистре В, а младшие -в 8-разрядном регистре С. Соответствующую микрооперацию можно описать так:

ПРгА: РгА(15-0) := РгВ(7-0) * РгС(7-0),

где точка (*) - знак присоединения.

Операция присоединения предназначена для присоединения значения слова, указанного справа от знака операции, к значению слова, расположенного слева от знака операции.

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

Микрооперации сдвига слова в аккумуляторе, например, могут быть описаны в следующих формах:

R2AK: АК(15-0) := PC(l-0) * АК(15-2) - сдвиг на два разряда вправо с введением в два старших освобождающихся разряда содержимого двух младших разрядов регистра PC;

L1AK: АК(15-0) := АК(14-0) * 0 - сдвиг на один разряд влево-с занесением в освобождающийся разряд нуля;

R2AK(15-0): РС(15-0) := АК(15) * АК(15) * АК(15-2) - арифметический сдвиг слова вправо на два разряда с загрузкой в старшие освобождающиеся разряды знака. Для сокращения записи микрооперации сдвига используются две процедуры:

Rn(A) - удаление п младших правых разрядов из слова А, то есть сдвиг значения на п разрядов вправо;

Ln(A) - удаление п старших левых разрядов из слова А, то есть сдвиг значения на п разрядов влево.

Использование этих процедур приводит к представлению ранее рассмотренных микрооператоров в форме:

AK(15-0):=R2(PC(l-0) *АК);

AK(15-0):=L1(AK * 0);

PC (15-0) := R2(AK(s) * AK(s) * AK).

Микрооперация счета обеспечивает изменение значения слова на единицу:

+1СК:СК:=СК+1.

Микрооперация сложения служит для присваивания слову суммы слагаемых:

СлАд: РАП:=ИР+РА.

Логические микрооперации присваивают слову значение, полученное поразрядным применением функций И (Л), ИЛИ (V), исключающее ИЛИ (_) к парам соответствующих разрядов операндов:

И: АК := РгХ Л PгY; M2: АК := РгХ _ PгY.

Микрооперации могут снабжаться произвольными комментариями, которые записываются справа от микрооперации и заключаются в угловые скобки, например:

+1СК: СК := СК + 1 <Увеличение содержимого СК на единицу>.

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

Рисунок 3,а. Алгоритмы выборки команды

Алгоритм выборки команды (см. рис. 3,а) функционирует следующим образом. Вначале происходит обнуление регистра iR. В данной операции он будет выполнять роль счётчика групп для регистра RgI и изменяться от 0 до 3. После этого на шину адреса (ША) выставляется значение программного счётчика (PC). Затем на шину данных выбирается слудующая группа бит команды (находящейся в ОЗУ), адресуемые содержимым шины адреса.

Выборка команды заканчивается, когда все группы пройдены, т.е. iR=2.

Рисунок 3,б. перехода к подпрограмме прерывания

Команда перехода к подпрограмме прерывания выполняется в следующем порядке (см. рис. 3,6). Команда выполняется, если установлен флаг IF и в регистре RgZ присутствует номер прерывания. Первоначально необходимо сохранить в стеке содержимое программного счётчика. Для этого следует уменьшить на 1 содержимое SP, выставить его на шину адреса; выставить на шину данных содержимое PC, записать его в стек.

После этого необходимо передать управление по адресу обработчика требуемого прерывания. Для этого на шину адреса следует выставить номер прерывания из RgZ; на шину данных выбрать адрес обработчика, лежащий в ячейке ОЗУ, определяемой номером прерывания и перейти к обработчику прерывания.

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

В конце алгоритма необходимо сбросить флаг прерывания IF.

Формирование операндов в данном алгоритме происходит следующим образом (рис. 4). Вторым операндом будет значение поля I из регистра RgI. Значение первого операнда зависит от формата команды и типа адресации.

процессор алгоритм блок схема

Рисунок 4. Алгоритм формирования операндов для арифметико-логического устройства

В случае использования формата команды RI на шину адреса выставляется номер регистра, а на шину данных выбирается из блока регистров содержимое нужного регистра. Если адресация прямая, можно переходить к передаче операндов в АЛУ и выполнению операции. Если же адресация косвенная, то это значит, что на шине данных сейчас находится лишь адрес. Он копируется в буферный регистр RgBuf, содержимое которого выставляется на шину адреса.

В случае использования формата команды SI и при прямой адресации адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка с нужным адресом. Затем этот адрес копируется в RgBuf и выводится на шину адреса. Теперь остаётся загрузить операнды в АЛУ: в аккумулятор RgA1.RgA2 с шины данных, а в RgC1.RgC2 с шины управления (на ней - содержимое Rgl). После этого АЛУ производит выполнение операции.

Рисунок 5. Алгоритмы передачи управления (а-д), перехода (е) и возврата из подпрограммы (ж)

Алгоритмы операций перехода выполняются в зависимости от состояния соответствующих флагов (рис. 5,а-д). Управление на новый адрес передаётся путём загрузки программного счётчика значением с шины управления (из кода команды).

Алгоритм вызова подпрограммы (рис. 5,е) реализуется так. Сначала необходимо сохранить в стеке содержимое программного счётчика аналогично тому, как это делалось при обработке прерывания. Затем передается управление на новый адрес.

Для возврата из подпрограммы (рис. 5,ж) необходимо извлечь и установить из стека на шину данных сохранённое значение программного счётчика; сдвинуть указатель стека.

Рисунок 6. Алгоритмы операций со стеком: а - запись в стек; б - чтение из стека; в - сложение и вычитание из стека

- для формата RI: выставляется на шину адреса номер регистра из кода команды, на шину данных - содержимое этого регистра;

- для формата SI: выбрать на шину данных содержимое A1.A2. После этого необходимо записать 16 бит с шины данных в ОЗУ, начиная с адреса, определяемого SP.

При выполнении операции чтения из стека (рис. 6,б) вначале следует прочитать 16 бит на шину данных из ОЗУ, начиная с адреса, определяемого SP:

- для формата RI: выставляется на шину адреса номер регистра из кода команды; содержимое этого регистра загружается с шины данных;

- для формата SI: сначала загружается содержимое A1.A2 с шины данных.

При выполнении команд сложения и вычитания со стеком (рис. 6,в):

- для формата RI сначала следует выбрать на шину адреса номер регистра из кода команды, а на шину данных - содержимое этого регистра;

- для формата SI: выставляется на шину данных содержимое A1.A2. Затем загружается операнд с шины данных в регистры АЛУ RgС1.RgС2. После этого необходимо прочитать 64 бита на шину данных из ОЗУ, начиная с адреса, определяемого SP, а затем загружается операнд с шины данных в регистры АЛУ RgA1.RgA2. После этого, в зависимости от кода операции, производится сложение либо вычитание операндов в АЛУ; выгружается результат на шину данных из регистров A1.A2, затем записывается 16 бит с шины данных в ОЗУ, начиная с адреса, определяемого SP.

Рассмотрим алгоритмы системных операций и операций с ВУ (рис. 7).

Команда записи в В У выполняется следующим образом:

- для формата RI: выставляется на шину адреса номер регистра из кода команды, на шину данных - содержимое этого регистра;

- для формата SI: на шину адреса выставляется адрес из кода команды, считывается на шину данных 16 бит из ОЗУ, записывается содержимое шины данных в регистр внешнего устройства RgED.

Рисунок 7. Алгоритмы выполнения системных и операций с ВУ:

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

При чтении из ВУ выполняются следующие действия:

- для формата RI: выставляется на шину адреса номер регистра из кода команды, на шину данных - содержимое этого регистра.

- для формата SI: на шину адреса выставляется адрес из кода команды, считывается на шину данных 16 бит из ОЗУ. Записывается содержимое шины данных в регистр внешнего устройства RgED.

По командам запрещения и разрешения прерываний выполняется установка соответствующего значения флага IF.

По команде выхода из прерывания сначала необходимо извлечь из стека сохранённое значение PC, для чего считать на шину данных из ОЗУ по адресу SP содержимое PC, установить PC и сместить указатель стека. Затем таким же образом восстановить регистр флагов RgF и в заключение установить требуемое значение флага IF.

Команда загрузки регистра базы происходит в таком порядке:

- для формата RI: необходимо выбрать на шину адреса номер регистра из кода команды, на шину данных - содержимое этого регистра;

- для формата SI: следует на шину адреса выставить адрес из кода команды, загрузить 16 бит из ОЗУ на шину данных и загрузить регистр базы с шины данных.

Команда загрузки указателя стека выполняется аналогично загрузке регистра базы. При этом с шины данных загружается регистр SP.

Алгоритм выполнения операции чтения из ЗУ реализуется следующим образом (рисунок 8).

Рисунок 8. Алгоритм чтения из ОЗУ

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

При косвенной адресации адрес с шины данных копируется в RgBuf и выставляется на шину адреса. Затем производится выборка 16 бит из ОЗУ на шину данных и копирование их в A1.A2.

Для формата SI при прямой адресации на шину адреса выставляется адрес из кода команды, а при косвенной - последовательность действий аналогична применённой для записи в ОЗУ. Затем производится выборка 16 бит из ОЗУ на шину данных и копирование их в A1.A2.

Рисунок 9. Алгоритм записи в ОЗУ

Алгоритм записи в ОЗУ (рисунок 9) выполняется следующим способом:

- для формата команды RI: на шину адреса выставляется номер регистра из кода команды. Затем при прямой адресации на шину данных передается содержимое A1.A2. и записывается с шины данных в регистр, определяемый по его номеру на шине адреса.

При косвенной адресации нужно вначале выбрать адрес для записи из регистра. На шину данных передается непосредственный операнд из кода команды. В заключение записывается последовательно 16 бит с шины данных в ОЗУ;

- для формата команды SI: при прямой адресации выставляется адрес из кода команды на шину адреса. Затем последовательно выставляется на шину данных и записывается в ОЗУ содержимое регистровых пар A1.A2 и С1.С2 При косвенной адресации необходимо считать по адресу, взятому из кода команды, другой адрес, по которому будет производиться запись в ОЗУ и выставить на шину адреса.

4. Разработка операционного автомата процессора

При построении операционного автомата процессора как автомата выполнения команд необходимо представить полученный выше алгоритм командного цикла (рисунок 2 - 9) в виде последовательности микроопераций МПА ведущего УУ процессора (рисунок 11). Обозначим множество входных сигналов (логических условий) МПА ведущего УУ через X = {xl,x2,...,xl}, а множество его выходных (управляющих) сигналов - через Y={yl,y2,...,ym}. Выходные сигналы Y УУ процессора управляют коммуникациями (передачей) операндов, адресов, флагов и т.п.) между регистрами и блоками процессора, создавая тем самым необходимые предпосылки для выполнения команд. Его входными сигналами X являются флаги, хранящиеся в регистре флагов, и унитарные коды, являющиеся результатами дешифрирования управляющих полей команды, хранящиеся в регистре команд.

Совокупность недетализованных основных блоков процессора (за (исключением УУ процессора), детально проработанных регистров и счетчиков, а также коммуникаций между ними является операционным автоматом процессора (иногда называемым устройством или автоматом выполнения команд). Входными сигналами операционного автомата процессора являются выходные сигналы Y ведущего УУ процессора (УУ верхнего уровня), а выходными сигналами - входные сигналы X ведущего УУ процессора. В связи с этим оба автомата процессора - и операционный, и управляющий - могут быть разработаны на основании одного и того же алгоритма командного цикла, так как он реализуется в результате их взаимодействия

В качестве закона функционирования управляющего автомата выберем закон функционирования автомата Мили. Множество состояний автомата обозначим через S={sl,s2,...sn}. Список соответствующих микроопераций для варианта 1 представлен в таблице 3.

Таблица 3 - Списки микроопераций и логических условий

Выходные сигналы УУ

Микрооперация

y0

WF:=0

y1

ZF:=0

y2

IF:=0

y3

SF:=O

y4

OF:=0

y5

PC[8:0]:=0

y6

iR:=0

y7

ША[8:0]:=РС[8:0]

y8

ШД[15:0]:=ОЗУ[ША[8:0]]

y9

RgI[iR*16+15: iR*16] :=ШД[15:0]

y10

iR:=iR+l

y11

PC[8:0]:=PC[8:0]+1

y12

ША[2:0]:=Rgl[9:7]

y13

ШД[15:0]:=Rg[ША[2:0]]

y14

RgBuf[8:0]:=ШД[8:0]

y15

ШA[8:0]:=RgBuf[8:0]

y16

ШД[iR*16+15:iR*16]:=O3У[ШA[8:0]]

y17

ША[8:0]:=ША[8:0]+1

y19

ША[8:0]:=RgI[16:7]

y21

RgA1:= ШД[7:0]; RgA2:= ШД[15:8];

y22

RgС2:=ШД[15:0]; RgС1:=ШД[31:16]

y23

A:=RgA-RgB

y24

A:=RgA+RgB

y25

A:=RgA*RgB

y26

A:=RgA/RgB

y27

A:=RgAVRgB

y28

A:=RgAЛRgB

y29

A:=RgA_RgB

y30

PС[8:0]:=ШУ[25:16]

y31

SP[8:0]:=SP[8:0]-l

y32

ШA[8:0]:=SP[8:0]

y33

ШД[8:0]:=РС[8:0]

y34

ОЗУ[ША[8:0]]:=ШД[15:0]

y35

PC[8:0]:=ШД[8:0]

y36

SP[8:0]:=SP[8:0]+l

y37

ШД[7:0]:=А1; ШД[15:8]:=А2;

у38

Rg[ШA[2:0]] :=ШД[15:0]

у39

ШД[15:0]:=RgI[31:16]

у40

O3У[ШA[8:0]]:=ШД[iR*16+15:iR*16]

у41

ШД[7:0]:=С1; ШД[15:8]:=С2

у42

А1:=ШД[7:0]; А2:=ШД[15:8];

у43

SP[8:0]:=SP[8:0]-2

у44

SP[8:0]:=SP[8:0]+2

у45

RgС2:=ШД[7:0]; RgС1:=ШД[15:8]

у46

RgED[15:0]:=ШД[15:0]

у47

ШД[15:0]:=RgED[15:0]

у48

IF:=1

у49

RgF[4:0]:=ШД[4:0]

у50

В[8:0]:=ШД[8:0]

y51

SP[8:0]:=ШД[8:0]

y52

ШA[8:0]:=RgZ[8:0]

у53

ШД[4:0]:=RgF[4:0]

Входные сигналы УУ

Логическое условие

х0

WF=1

xl

iR=2

х2

КОп = "сложение"

хЗ

КOп = "вычитание"

х4

КОп = "умножение"

х5

КОп = "деление"

Х6

КОп = "дизъюнкция"

х7

КОп = "конъюнкция"

х8

КОп = "сумма по модулю 2"

х9

КОп = "УП>0"

х10

КОп = "УП<0"

x11

КОп = "УП=0"

х12

КОп = "УП по переполнению"

х13

КОп = "безусловный переход"

х14

КОп = "вызов подпрограммы"

х15

КОп = "возврат из подпрограммы"

х16

КОп = "запись в ЗУ"

Выходные сигналы УУ

Логическое условие

х17

КОп = "чтение из ЗУ"

х18

КОп = "запись в стек"

х19

КОп = "чтение из стека"

х20

КОп = "сложение со стеком"

х21

КОп = "вычитание из стека"

х22

КОп = "запись в ВУ"

х23

КОп = "чтение из ВУ"

х24

КОп = "запрещение прерывания"

х25

КОп = "разрешение прерывания"

х26

КОп = "останов"

х27

КОп = "выход из прерывания"

х28

КОп = "загрузка регистра базы"

х29

КОп = "загрузка указателя стека"

х30

ФК = "SI"

х31

ТА = "П"

х33

iR = 2

х34

SF=0 & ZF=0

х35

SF=1

х36

ZF=1

х37

OF=1

х38

IF=1

х39

RgZ[8:0]=0

х40

арифметико-логическая операция

х41

сложение или вычитание со стеком

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

Рисунок 3.10. Размеченный обобщенный алгоритм командного цикла

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Продолжение

Рисунок 3.10. Окончание

Размещено на Allbest.ru

...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Рост производительности и снижение потребляемой мощности процессора. Упрощенная-схема процессора BF535. Поддержка моделей памяти. Стандарты коммуникационных протоколов. Системные регистры процессора. Регистровый файл данных. Шины связи регистрового файла.

    презентация [6,3 M], добавлен 14.12.2013

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

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

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

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

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

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

  • Строка Меню текстового процессора и панель инструментов Форматирование текстового процессора MS Word, назначение основных команд и кнопок. Технология формирования (расчета) ведомости выдачи заработной платы средствами табличного процессора MS Excel.

    контрольная работа [15,1 K], добавлен 09.05.2010

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

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

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

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

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

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

  • Структура процессора Pentium, суперскалярность, основные особенности архитектуры. Организация конвейера команд, правила объединения. Дополнительные режимы работы процессора. Источники аппаратных прерываний. Формат ММХ команды. Процессор Pentium 4, схемы.

    лекция [4,0 M], добавлен 14.12.2013

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

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

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