Проектирование процессора IBM совместимых команд

  • Вид работы:
    Учебное пособие
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    555,94 Кб
  • Опубликовано:
    2013-04-09
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование процессора IBM совместимых команд

Калужский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования

Московский государственный технический университет имени Н.Э. Баумана










ПРОЕКТИРОВАНИЕ ПРОЦЕССОРА IBM СОВМЕСТИМЫХ КОМАНД












Калуга 2012

ВВЕДЕНИЕ

1. Методика проектирования процессора

.1 Функциональная организация процессора

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

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

.4 Синтез микропрограммного автомата

. Особенности функциональной организации процессора

.1 Программные модели процессора

.2 Форматы данных

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

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

3.1 Организация оперативной памяти

.2 Регистровые виды памяти

.3 Рекомендуемая структура процессора

.4 Интерфейс основной памяти и регистровой памяти

.5 Процедура выборки команд

.6 Выборка операндов

.7 Выполнение операций двоичной арифметики

.8 Разработка микропрограммы функционирования процессора

4. Проектирование блока операций

5. Порядок выполнения работы

Список литературы

Приложение 1. Варианты исходных данных для курсового проектирования

ВВЕДЕНИЕ

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

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

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

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

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

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

На рис.1 приведена обобщенная структурная схема внутренних устройств в традиционной фон-неймановской структуре ЭВМ [1].

Рис. 1. Обобщенная структурная схема ЭВМ


Центральный процессор представлен на этой схеме в составе:

центрального устройства управления (ЦУУ);

арифметико-логического устройства (АЛУ), в состав которого входят блок операций (БО) и местное устройство управления (МУУ);

регистровой памяти (РП).

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

§ магистралей (шин), к которым подключаются различные устройства ЭВМ;

§  связей «каждый с каждым», соединяющих отдельные устройства независимыми линиями связи;

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

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

Этот недостаток снижается за счет использования раздельных шин передачи данных (ШД), адреса (ША) и управления (ШУ), а также использованием внутренних магистралей (ВШД, ВША).

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

Функционирование ЦП может быть представлено следующим образом.

По сигналу «Сброс» (RESET) все аппаратные элементы хранения (регистры, триггеры) устанавливаются в «0», а на счетчике команд (СчК) ЦУУ устанавливается начальный адрес команды выполняемой программы.

Далее по сигналу «Пуск» (START) начинает работу ЦУУ и производится выборка команды из ОП, которая передается на регистр команд (РгК) ЦУУ. В команде указывается код выполняемой операции, адреса операндов и используемые способы адресации.

ЦУУ обеспечивает формирование исполнительного адреса операнда Аисп, по которому осуществляется выбор данных из ОП или РП.

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

Обычно такая организация взаимодействия между отдельными блоками ЭВМ реализуется полусинхронным принципом работы, при котором время цикла работы каждого из устройств может быть выбрано кратным такту генератора синхроимпульсов (ГТИ) ЦУУ.

Закончив выборку операндов, ЦУУ выдает сигнал обращения к АЛУ, по которому начинается обработка информации. Окончание операции в АЛУ сопровождается выдачей сигнала окончания операции в ЦУУ. Далее этот процесс продолжается по очередной команде до завершения реализуемого алгоритма.

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

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

В соответствии с техническим заданием необходимо выполнить разработку блока операций (БО) и центрального устройства управления процессора для IBM совместимых команд с учетом использования единой магистрали.

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

Устройство управления должно обеспечить выработку распределенных во времени и пространстве управляющих сигналов в соответствии с разработанными алгоритмами выполнения операции. Используются два типа построения МУУ: с «жесткой логикой» и программируемой.

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

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

Блок управления командами обеспечивает выборку последовательности команд в соответствии с реализуемым алгоритмом. БУК содержит схемы формирования адресов (СхФАК) команд и операндов, при этом исполнительный адрес Аисп формируется аппаратурой БУК, а в его составе используются схемы сумматоров, мультиплексоров и других логических элементов, с помощью которых реализуется установленный набор различных методов адресации. К этой аппаратуре предъявляются требования высокого быстродействия. Блок микрокоманд используется для выработки совокупность сигналов, управляющих работой всех устройств ЭВМ.

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

 

1. МЕТОДИКА ПРОЕКТИРОВАНИЯ ПРОЦЕССОРА

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

1.1 Функциональная организация ЭВМ

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

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

Разрабатываемая структурная схема должна ориентироваться на выполнение трех (четырех) указанных в задании команд.

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

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

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

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

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

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

Синтез автомата с жесткой логикой проводится интерпретационным методом. В пояснительной записке необходимо представить расчетные материалы по всем этапам синтеза автомата. В соответствии с ЕСКД вычерчивается схема автомата, для которой входными сигналами являются набор осведомительных сигналов {X}, сигнал B установки автомата в начальное состояние, запускающий сигнал Z, синхронизирующий сигнал C и выходные сигналы - набор управляющих сигналов {Y}, инициирующих отдельные микрооперации. Составляется функциональная схема управляющего автомата и выбирается элементная база для принципиальной схемы. Принципиальная схема вычерчивается на листах соответствующего формата.

Для синтезированного автомата рассчитываются затраты времени на формирование управляющих сигналов с учетом задержек сигналов на логических элементах выбранных при проектировании [10].

.4 Синтез микропрограммного автомата

В соответствии с указанным в задании выбирается формат микрокоманды и решается задача оптимального распределения микроопераций по полям операционной части микрокоманды. Необходимо стремиться минимизировать затраты памяти на хранение микрокоманд в ПЗУ и затраты оборудования на интерпретацию микрокоманд. Синтезируется схема алгоритма и структурная схема автомата и составляется таблица прошивки постоянного запоминающего устройства для выбранного участка микрокоманд [6]. Структурная и функциональная схемы автомата представляются на чертеже. Таблица прошивки приводится в пояснительной записке.

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

2. ОСОБЕННОСТИ ФУНКЦИОНАЛЬНОЙ ОРГАНИЗАЦИИ ПРОЦЕССОРА

Вычислительные системы типа IBM состоят из процессора, объединяющего в себе арифметическое устройство и центральное устройство управления, основной (оперативной) памяти, регистровой (сверхоперативной) памяти, сопроцессора, систем ввода-вывода. Подробно функциональная организация ЦВМ этого типа описана в [2,3]. Основные элементы структуры, используемые при проектировании процессора представлены на рисунке 2.

Рис. 2. Основные элементы проектируемого устройства

.1 Программные модели процессоров

Главным объектом при изучении любого процессора является набор доступных внутренних регистров, образующих программную или регистровую модель процессора [5]. Она показывает те ресурсы процессора, которыми может пользоваться программист, привлекая всю систему команд [8,9].

Пользовательские регистры IBM совместимых процессоров в структурном плане идентичны и отличаются расширением длины регистров до 32-х бит. При проектировании используются следующие регистровые модели: регистры общего назначения для целочисленных операций и регистры блока FPU(плавающей точки). Структура программной модели целочисленного блока представлена на рисунке 3.

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

31

15

7

0

EAX

AH

AX

AL

EBX

BH

BX

BL

ECX

CH

CX

CL

EDX

DH

DX

DL

ESP

SP

EAX

BP

EAX

SI

EAX

DI


Сегментные регистры

15 0

CS

SS

DS

ES

FS

GS


Указатель команды (Счетчик команд)

31 EIP 0


Регистр флагов

0…………0

O


S

Z

A

0

P

1

C

31









0

Рис. 3. Программная модель целочисленного блока

Восемь 32-битных регистров общего назначения применяются для хранения данных и/или адресов. Для всех регистров общего назначения допускается указывать в командах их младшие 16-битные половины - регистры АХ, ВХ, СХ, DХ, SР, ВР, SI, DI. Кроме того, в первых четырех регистрах общего назначения отдельно адресуются старшие и младшие байты младших 16-битных половин - регистры АН, ВН, СН, DН и АL, ВL, СL, DL. Старшие половины, т.е. биты 31-16, регистров общего назначения адресовать нельзя.

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

ЕАХ/АХ/АL - аккумулятор, регистр наиболее часто применяется для хранения промежуточных данных. Многие команды оперируют данными в аккумуляторе несколько быстрее, чем в других регистрах. В операциях умножения/деления аккумулятор содержит множимое/делимое до выполнения операции и произведение/частное после операции. Вся десятичная арифметика выполняется только с участием аккумулятора АL.

ЕВХ/ВХ - базовый регистр, применяется для указания базового (начального) адреса объекта данных в памяти, а также содержит базовый адрес таблицы в команде преобразования.

ЕСХ/СХ/СL - регистр-счетчик, участвует в качестве счетчика в некоторых командах, которые производят повторяющиеся операции, например сдвиги или манипуляции цепочками.

ЕDХ/DХ - регистр данных, привлекается для хранения промежуточных данных, а также в командах умножения и деления (совместно с аккумулятором).

ЕSР/SР - указатель стека, неявно используется в командах РUSН (включения в стек) и РОР (извлечения из стека), а также в других стековых операциях.

ЕВР/ВР - указатель базы, предназначен для удобного доступа к объектам данных, находящимся в стеке.

ЕSI/SI - индекс источника, выполняет функцию регистра адреса при производстве цепочечных операций.

ЕDI/DI - индекс получателя или приемника, выполняет функцию регистра адреса при производстве цепочечных операций.

Шесть 16-битных сегментных регистров, которые содержат селекторы сегментов, ассоциируются с различными формами обращения к памяти. Подробно организация регистров описана в [5,8].

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

1. Флажок переноса СF.

2. Флажок паритета РF (или четности) .

3. Флажок вспомогательного переноса АF

4. Флажок нуля ZF.

5. Флажок знака SF.

6. Флажок переполнения ОF.

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

Программная модель блока с плавающей точкой, как и большинство других арифметических сопроцессоров, опирается на общую стековую организацию. Выбор ее обусловлен несколькими обстоятельствами. Одно из них заключается в том, что в математических расчетах результат текущей операции часто может заместить один или оба исходных операнда и является операндом следующей команды. Стековая организация позволяет в этих случаях применять так называемые безадресные (нуль-адресные) команды небольшой длины, сокращая таким образом число обращений к памяти и, следовательно, повышая быстродействие. Основу программной модели сопроцессора, показанной на рисунке 4, образует регистровый стек из восьми 80-битных регистров RО-R7. В этих (арифметических) регистрах хранятся числа, представленные в расширенном вещественном формате. В любой момент времени трехбитное поле SТ в слове состояния (TOP) определяет регистр, являющийся текущей вершиной стека ST. При операции включения в стек осуществляется декремент поля SТ и загружаются адресуемые данные в новую вершину стека. При операции извлечения из стека в приемник, которым чаще всего является память, передается содержимое текущей вершины стека, а затем производится инкремент поля SТ. Таким образом, при стандартных стековых операциях поле SТ выполняет функции традиционного указателя стека SР.

Стек имеет круговую организацию. В командах сопроцессора допускается явное или неявное обращение к регистрам стека с модификацией или без модификации поля SТ. Так, в некоторых операциях операндом служит содержимое вершины стека, а результат замещает операнд. В некоторых бинарных операциях операндами служат числа в двух верхних регистрах стека, а результат помещается на место одного из них. Наконец, в бинарных операциях допускается явное указание регистров, содержащих операнды. Явная адресация регистров осуществляется относительно текущей вершины стека, и обозначение SТ(i) определяет i-й регистр в стеке. Если, например, поле SТ содержит 1002, т. е. вершиной стека является регистр R4, то команда FАDD SТ, SТ(2) прибавит к числу в регистре R4 число из регистра R6. FPU имеет команды, в которых не выдерживаются обычные соглашения о стеке, т. е. о том, что любая стековая операция, автоматически модифицирует указатель стека. Например, команда FST (запомнить в памяти) передает содержимое вершины стека в память, но не производит инкремент поля SТ. Предусмотрены также специальные команды инкремента и декремента поля SТ.

С каждым регистром стека ассоциируется двухбитный тэг (признак), совокупность которых образует слово тэгов. Тэг регистра RО находится в младших битах этого слова, а тэг регистра R7- в старших. Тэг фиксирует наличие в регистре действительного числа (конечное ненулевое число) - код 00, истинного нуля - код 01, специального числа (денормализованное число, не-число или бесконечность) - код 10 и отсутствие данных - код 11.

В последнем случае регистр называется пустым (неинициализированным) и одно из действий сопроцессора при инициализации заключается в загрузке в биты тэгов всех регистров кода 11. Попытка команды извлечь число из пустого регистра фиксируется как особый случай недействительной операции. Кроме того, попытка загрузить число в непустой регистр также вызывает регистрацию аналогичного особого случая. Таким образом, наличие регистра тэгов позволяет сопроцессору быстрее обнаруживать особые случаи и эффективнее обрабатывать специальные численные значения, включая и нуль. Структура программной модели блока сопроцессора представлена на рисунке 4.

Сопроцессор имеет два программно доступных 16-битных регистра слово управления CW и слово состояния SW, содержимое которых определяет его режим работы и текущее состояние.

Регистры сопроцессора

Регистр состояния SW

Рис. 4. Программная модель сопроцессора

Регистр управления содержит 6 бит масок особых случаев, а регистр состояния 6 бит флажков особых случаев: Р - потеря точности, U-антипереполнение, О - переполнение, Z -деление на нуль, D - денормализованный операнд, I -недействительная операция.

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

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

Команды можно классифицировать не только по типу команды, но также и в соответствии с типом данных, над которыми выполняются операции.

Представление чисел с фиксированной точкой.

Под числом с фиксированной точкой понимается двоичное целое число, занимающее байт, полуслово, полное слово, двойное слово. Нулевой бит отводится под знак числа: 0 означает плюс, а 1 - минус. Предполагается, что десятичная точка находится справа от самой младшей цифры числа, т.е. используются только целые числа. Форматы целых чисел (3 формата) отличаются только длиной и диапазоном допустимых чисел. Таким образом, возможный диапазон представляемых значений для знаковых целых составляет: от -128 до +127 для байтовых величин, от -32768 до +32767 для слов, от -231 до 231-1 для двойных слов. Беззнаковые целые могут принимать значения: от 0 до 255 для байтовых величин, от 0 до 65535 для слов, от 0 до 232-1 для двойных слов.

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

Представление чисел с плавающей точкой

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

Рис. 5. Форматы целочисленных данных

Для вещественных чисел в курсовом проекте применяются форматы с плавающей точкой: короткий, длинный или расширенный в соответствии со стандартом IEEE754 (таблица 1). В общем случае вещественные числа кодируются с помощью трех полей: знак, порядок и мантисса. Для индикации знака отводится один самый старший бит числа. В следующих битах располагается поле порядка, оно занимает 8, 11 или 15 бит в зависимости от формата. Структура форматов представлена на рисунке 6.

Одинарная точность

Зн 1бит

Порядок 8 бит

Мантисса 23 бита


Двойная точность

Зн 1бит

Порядок 11 бит

Мантисса 52 бита


Расширенная точность

Зн 1бит

Порядок 15 бит

Мантисса 64 бита

Рис. 6. Структуры форматов вещественных чисел

Для поля порядка не предусмотрено отдельного бита знака, здесь применяется т.н. смещение порядка, оно заключается в прибавлении к реальному значению порядка некоторой константы и последующему кодированию уже этой суммы. Таким образом, все кодируемые значения положительны. С учетом применяемых в различных форматах констант (127 для коротких вещественных, 1023 для длинных вещественных, 16383 для временных вещественных) в поле порядка могут кодироваться следующие значения для порядка: от - 126 до 127 для коротких вещественных, от -1022 до 1023 для длинных вещественных, от -16382 до 16383 для временных вещественных.

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

Пример записи чисел в коротком формате со скрытым разрядом мантиссы:

Десятичное Двоичное С плавающей точкой

00000001 3F 800000

10 0000000А 41 200000

3D CCCCCD

3C 23D70A

00000F38 44 F38000

67 345 00838880 27 838880

345 10838880 A7 838880

915 527 343 3A 700000

67.345  42 86BA3

Таблица 1

Представления вещественных чисел


Короткий

Длинный

Расширенный

Длина числа, бит

32

64

80

Разрядность мантиссы

24

53

64

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

10-38…1038

10-308…10308

10-4932…104932

Размерность порядка k

8

11

15

(2k-1-1)

127

1023

16383

Диапазон Pсмещ

0…255

0…2047

0…32767

Диапазон порядка

-126…127

-1022…1023

-16382…16383


Числа, представленные с обычной точностью, занимают меньше места в памяти, а числа с удвоенной точностью значительно увеличивают точность вычислений.

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

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

Почти все команды оперируют 8/16/32-битными регистрами процессора. В большинстве команд с обращением к памяти допускается применение базовых и индексных регистров. Базовым регистром может служить любой из восьми регистров общего назначения, а индексным - любой из них, кроме ESP. В большинстве команд с обращением к памяти допускается масштабированное индексирование, т.е. содержимое индексного регистра до использования его в адресных вычислениях можно умножить на 2, 4 или 8. Этот новый режим адресации упрощает операции над многомерными массивами.

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

Базовый формат команды процессора приведен на рисунке 8. Команды состоят из необязательных префиксов, одного или двух байт главного кода операции, спецификатора адреса, представленного байтами MOD r/m и sib, смещения в команде (displacement) и непосредственных данных. Английские аббревиатуры означают следующее: Base - база, MODe - режим, Register/Memory - регистр/память, Scale - масштаб, Index - индекс. Из всех полей команды обязательными являются только один или два байта кода операции. В зависимости от способа адресации команды имеют длину от одного до 15 байт.

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

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

размера операнда, переключает 16- и 32-битные операнды;

размера адреса, коммутирует формирование 16- и 32 -битных адресов;

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

Префикс команды 0 или 1 байт

Префикс размера адреса 0 или 1 байт

Префикс размера операнда 0 или 1 байт

Префикс замещения сегмента 0 или 1 байт


КОП ½  байт

MODR/0 /1 байт

SIB 0/1байт

Смещение 0,1,2,4байт

Непосредственное значение 0,1,2,4байта

Рис. 8. Базовый формат команды

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

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

Описатель режима адресации. Этот элемент, если он присутствует, описывает, является ли операнд содержимым регистра или ячейки памяти. Если операнд находится в памяти, описатель режима указывает, надо ли использовать смещение, индексный регистр, регистр базы и масштабирование (Речь идет о поле MOD байта MODR/M). Большинство команд, ссылающихся на операнд, находящийся в памяти, содержат после байта (или байтов) основного кода операции еще байт формы адресации. Этот байт описывает используемую форму адреса. Определенные значения кода поля MOD R/M указывают на наличие второго адресного байта SIB. Структура форматов полей ModR/M и SIB байтов представлена на рисунке 9.

MOD R/M байт

MOD

REG/opcode

R/M


SIB байт

SSINDEXBASE



Рис. 9. Формат полей ModR/M и SIB

Байт MOD R/M содержит три поля:

) MOD - разряды 7 и 6 в комбинации с полем r/m определяет 32 возможных типа адресации (8 регистровых и 24 индексных).

) REG - разряды 5, 4 и 3, которые описывают номер регистра, либо являются дополнительными разрядами кода операции. Значение поля REG определяется первым байтом команды (байтом Коп).

) R/M - разряды 2, 1 и 0, которые могут описывать регистр в качестве местоположения операнда или образовывать вместе с полем MOD код режима адресации.

Байт SIB включает следующие три поля:

) SS - разряды 7 и 6, описывающие масштабный коэффициент.

) INDEX - разряды 5, 4 и 3, описывающие номер индексного регистра.

) BASE - разряды 2, 1 и 0, описывающие номер регистра базы.

Регистровые модификаторы для вычисления адреса представляют собой 32-разрядные регистры (например, ЕАХ) и описаны ниже в таблице 3, с учетом того, что поле r/m не равно 100. Вычисление адреса при отсутствии байта SIB выполняется следующим образом.

MOD =00. Вычисляется адрес вида DS: [r/m]. Поле r/m описывает используемый регистр:

MOD=01. К адресам, вычисленным по вышеприведенной таблице, прибавляется 8-разрядное смещение, так что при r/m =000 адрес составит DS: [EAX + смещение].

MOD=10. Прибавляется 32-разрядное смещение. При r/m=000 адрес составит DS: [EAX+ смещение]

MOD=11. В поле r/m указан 8- или 32- разрядный регистр. Выбор разрядности регистра зависит от состояния бита W - старший бит кода команды, определяющего разрядность операции (8 или 32 разряда). Двухбитное поле mod показывает местоположение второго операнда и способ адресации. Смысл всех полей в байтах кода операции приведен в таблице 2. процессор программный оперативный память

Пример двухоперандной команды с байтом mod r/m представлен на рисунке 10.

Байт 0 -код операции

Байт 1 - байтmod r/m







d

w

reg

mod

r/m

Рис. 10. Двухоперандная команда байтом mod r/m

Таблица 2

Поля в байтах кода операции

Поле

Длина (бит)

Описание

w

1

Определяет размер операнда в байт (w=0) или в полный размер(w=1). Полный размер составляет 16 или 32 бита

d

1

В двухоперандных командах определяет направление передачи данных: из регистра в регистр/ память (d=0) или из регистра/памяти в регистр (d=1)

s

1

Определяет расширение 8-битных непосредственных данных до полного размера (s=1) или нет (s=0)

reg

3

Определяет 8/16/32 - битный регистр общего назначения

mod r/m

2,3

Спецификатор режима адресации

ss


Масштабный множитель (коэффициент) для режима масштабированной индексной адресации: 00В = Х1, 01В= Х2, 10В= Х4, 11В = Х8

index

3

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

base

3

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

sreg2

2

Определяет один из сегментных регистров: 00B=ES, 01B=CS, 10B=SS, 11B=DS

sreg3

3

Определяет любой сегментный регистр: 000B=ES, 001B=CS, 010B=SS, 011B=DS, 100B=FS, 101B=GS (комбинации 110В и 111В не используются)

tttn

4

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


Таблица 3

Формирование эффективного адреса памяти

16-разрядный режим

32-разрядный режим

адрес

mod

R/M

адрес

mod

R/M

[BX+SI] [BX+DI] [BP+SI] [BP+DI] [SI] [DI] смещ16 [ВХ]

00

000 001 010 011 100 101 110 111

[EAX] [ECX] [EDX] [EBX] [-] [-] смещ32 [ESI] [EDI]

00

000 001 010 011 100 101 110 111

[BX+SI]+смещ8 [BX+DI]+смещ8 [BP+SI]+смещ8 [BP+DI]+смещ8 [SI]+смещ8 [DI]+смещ8 [ВР]+смещ8 [ВХ]+смещ8

01

000 001 010 011 100 101 110 111

смещ8 [EAX] смещ8 [ECX] смещ8 [EDX] смещ8 [EBX] смещ8 [-] [-] смещ8 [EBP] смещ8 [ESI] смещ8 [ЕО1]

01

[ВХ+SI]+смещ16 [ВХ+DI]+смещ16 [ВР+SI]+смещ16 [ВР+DI]+смещ16 [SI]+смещ16 [DI]+смещ16 [ВР]+смещ16 [ВХ]+смещ16

10

000 001 010 011 100 101 110 111

смещ32 [ЕАХ] смещ32 [ЕСХ] смещ32 [ЕDХ] смещ32 [ЕВХ] смещ32 [-] [-] смещ8 [EBP] смещ8 [ESI] смещ8 [EDI]

10

000 001 010 011 100 101 110 111


Пример двухоперандной команды с байтами mod r/m и sib представлен на рисунке 11.

Байт 0 -код операции







d

w


Байт 1 - байт mod r/m

Байт 2 - байт sib

reg

mod

1

0

0

ss

index

base

операнд1 ¬ операнд 2 ®

Рис. 10. Двухоперандная команда байтом mod r/m

Устройство FPU имеет пять форматов команд, представленных на рисунке 9. Во всех форматах минимальная длина команды составляет два байта и все команды начинаются с двоичного набора 11011, который выделяет класс команд устройства FPU. Назначение и кодирование представленных в коде команды полей следующее:- формат ячейки памяти:

·  00 - 32-битное вещественное;

·        01 - 32-битное целое;

·        10 - 64-битное вещественное;

·        11 - 16-битное целое.

P - извлечение из стека:

·  0 - не извлекать из стека;

·        1 - извлекать из стека.

R - направление операции:

·  R = 0 - результат возвращается в вершину стека;

·        R= 1 - результат возвращается в другой(не в вершину)регистр стека.

ST(i) - элемент регистрового стека:

·  000 - вершина стека;

·        ...

·        111 - восьмой элемент стека.

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

Поля MOD, r/m и SIB кодируются также, как и для базовых команд процессора (см. выше).

Рис. 9. Форматы команд блока FPU

 


3. РАЗРАБОТКА СТРУКТУРЫ ПРОЦЕССОРА


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

.1 Организация оперативной памяти

В ОП емкостью Е байтов хранятся 16,32 и 64 - слова. Слово читается и записывается в ОП только целиком за одно обращение к ОП. Адрес слова, к которому производится обращение, указывается на регистре адреса основной памяти РгАОП. Длина регистра РгАОП равняется log2Ec, где Ес - емкость ОП в словах, равная:

Ec=E/L,

где L -длина слова ОП в байтах.

Слово информации, которое записывается или читается из ОП, передается в РгИОП. Операция в ОП возбуждается сигналами чтения из ОП ЧТОП и записи в ОП ЗПОП. Момент окончания операции в ОП отмечается сигналом zоп. Так как цикл основной памяти имеет длительность большую, чем такт работы процессора, то должна обеспечиваться синхронизация работы процессора и ОП за счет ждущих вершин микропрограммы.

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

Для увеличения быстродействия процессора применяется РП, состоящая из регистров общего назначения (РОН). РОНы используются в качестве индекс - регистров, базовых регистров, а также для хранения слов и полуслов, участвующих в операциях с фиксированной запятой. РОНы представляют собой 32-разрядные регистры и адресуются числами от 0 до 7, т.е. регистры используются как для хранения адресов , так и для хранения самих операндов. Для обращения к РОНам в командах любого формата отводятся 3-разрядное поле reg.

При выполнении операций с плавающей запятой используется блок FPU, состоящий из восьми регистров длиной в 80 бит. Регистры имеют адресную структуру, т.е. адрес регистра указывается на 3-разрядном регистре адреса РгАРОН. Операнд, который записывается или считается из РП, помещается на регистр РгИРОН. Чтение и запись слова инициируется соответственно сигналами ЧТРП и ЗПРП.

.3 Рекомендуемая структура процессора

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

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

В структуру процессора включены дополнительные регистры: РгК, БР, СчК

Длина регистра команды РгК(содержит текущую команду) соответствует максимальному формату команды из набора команд, реализуемых процессором. Счетчик адреса команд СчК хранит адрес команды. Так как адрес команды всегда кратен полуслову, то длина СчК определяется емкостью ОП в полусловах, т.е. log2E -I, где Е емкость ОП в байтах. Длина счетчика тактов СЧТ определяется максимальным числом тактов, отводимых для выполнения арифметических операций. Буферный регистр БР используется для хранения части слова ОП в процессе выборки команд из ОП и имеет длину в 1 или 3 полуслова при 32 или 64 разрядной ОП соответственно. При использовании 64 - разрядной ОП буферный регистр для упрощения структуры операционного автомата рекомендуется выносить за пределы памяти операционного автомата и подключать к магистрали непосредственно.

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

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

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

 

3.4 Интерфейсы основной и регистровой памяти

Интерфейс основной памяти (Рис. 11) состоит из совокупности шин W, R, A, C и Zoп. По шине записи W на РгИОП поступает информация, которую необходимо записать в оперативную память. По шине чтения R осуществляется передача информации из ОП в процессор. По шине адреса А на регистр адреса (РгАОП) при обращении к ОП поступает адрес слова, которое необходимо прочитать в ОП. По шине управления С предаются сигналы ЧТОП и ЗПОП, инициирующие операцию чтения или записи. По шине идентификации из ОП поступает сигнал Zоп, который отмечает момент окончания цикла обращения к памяти. Единицей информации, передаваемой по интерфейсу основной памяти, является слово ОП. Разрядность слова зависит от ширины выборки из памяти.

Рис. 11. Интерфейс основной памяти

Предлагается следующий способ подключения информационных и адресных шин. В схеме на рисунке 11 обмен информацией между ОП и процессором происходит через регистр Z, соединенный с магистралью двумя шинами. Предварительно оформленный адрес слова хранится на адресном регистре АР, который связан с регистром РгАОП шиной А. Длина АР равна log2Е, где Е - емкость основной памяти в байтах, а длина АОП определяется как log2Ec, - емкость ОП в словах.

Нулевое значение сигнала Zоп отметит окончание операции записи в ОП. Чтение из ОП осуществляется в соответствии с микропрограммой Рис. 12. Регистровая память является внутренней памятью процессора. Сопряжение операционного автомата с ОП может быть организовано как на рисунке 11. Обмен между РП и процессором происходит аналогично обмену с ОП, но так как время обращения к РП меньше такта работы операционного автомата, в интерфейсе РП отсутствует шина идентификации. Так как РП объединяет в себе РОНы и блок FPU, то необходимо организовать доступ к тем и другим регистрам. В формате команды как под адрес РОНов, так и под адрес FPU отводится трехразрядное поле R; обращение к определенному виду регистров зависит от кода команды.

Рис. 12. Процедура обращения к основной памяти

.5 Процедура выборки команд

Действия и адреса операндов задаются командами. Процессор оперирует с командами различной длины. Длина команды зависит от того, в какой памяти (основной или регистровой) размещаются операнды. В курсовой работе используется следующие форматы команд: RR, RX, RS,SI, RI . Формат RR предписывает операцию типа регистр-регистр, в которую вступают операнды, хранимые в регистровой памяти. Команда RX указывает один операнд из регистровой памяти, а другой - из основной, при чем адрес основной памяти допускает индексацию - адрес типа X . Команда формата RS определяет операцию типа регистр-память, но без индексации второго адреса. В командах типа SI, RI один операнд находится в основной памяти или регистре, а другой непосредственно в команде (случай непосредственной адресации, представляемый адресом типа I). Команды различных форматов имеют разную длину, но команды любого формата должны иметь адрес, являющийся целочисленной границей для полуслова. В курсовой работе предполагается возможность непосредственной передачи информации из основной памяти (наличие поля m) в регистры или в операционное устройство. На практике для этого необходимо выполнить дополнительные команды загрузки.

Пример расположения команд в памяти представлен на рисунке 13.

Рис. 13. Пример расположения команд в памяти

Для отметки порядка следования команд в структуру процессора вводится триггер перехода ТП. Если команды выполняются в естественном порядке, то ТП:=1. Состояние ТП определяет возможность использования информации из ранее выбранного слова, хранимой на БР. Если ТП:=0, то содержимое буферного регистра БР может быть использовано для образования следующей команды. Если ТП:=1, то управление передано другому слову, отсутствующему на БР, и, следовательно, содержимое БР не может быть использовано для формирования следующей команды.

Слово ОП может содержать полностью команду или только ее часть. В 32-разрядном слове ОП может содержаться только одна команда, например RX, или два поля по полуслову, принадлежащие различным командам. В последнем случае использование БР для хранения второго полуслова позволяет исключить чтение из ОП того же слова. Роль БР увеличивается при 64-разрядном слове ОП.

Последовательная выборка команд и их обработка, при которой триггер перехода ТП сохраняет нулевое значение, имеет свои особенности. В этом случае вся команда, если она имеет формат RR, или часть команды формата RX может храниться на буферном регистре. Значения первых разрядов БР определяет формат хранимой на нем команды, в случае команды формата RR достаточно содержимое БР передать на РК и счетчик адреса увеличить на 1. Обращения к памяти не требуется. Если же на БР находится первое полуслово команды формата RX, его необходимо переслать на РК (например, 0:15), затем увеличить СчК на 2 и прочитать из ОП слово. Первым полусловом дополняется регистр команд, а второе полуслово заносится на БР. Для занесения информации на регистр команд рекомендуется использовать систему шин, представленную на рисунке 16. Шина Z перед подсоединением ее к регистру РК разделяется на две подшины Z (0:15) и Z(16:31). Каждая из подшин может подключиться как к старшим, так и к младшим разрядам регистра РК.

Рис. 16. Цепи, используемые при выборке команд

.6 Выборка операндов

Исполнительный алрес операнда определяется по полям(mod, d,w,reg) формата команды. В рамках курсового проектирования используются способы адресации представленные в таблице 4.

Таблица 4

Пример команд

Адресация

Пример команды

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

Mov eax,12345678h

Регистровая

Mov eax,ecx

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

Mov eax, [ecx]

Индексная со смещением

Mov eax,ecx+1200h

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

Mov eax, [ecx] [edx]+40h

Индексная со смещением и масштабированием

Mov eax, [edx] [ecx*2]


Процесс формирования адреса операнда при заданной индексной адресации со смещением и масштабированием представлен на рисунке 17.

Рис. 17. Формирование исполнительного адреса операнда

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

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

 

.7 Выполнение операций двоичной арифметики


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

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

При выполнении операций деления и умножения контролируются случаи переполнения и исчезновения порядка.

 


3.8 Разработка микропрограммы функционирования процессора


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

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

Микропрограмма должна начинаться с выборки команды из ОП в соответствии с адресом, находящимся на СчК (СчК:=Нач.Адрес). После того, как команда выбрана на регистр команд, в зависимости от кода операции действие переходит на одну из трех (четырех) ветвей, соответствующих различным командам: арифметическим, логическим или командам перехода. Рекомендуется для команд одной длины сначала обрабатывать адреса операндов и читать операнды из ОП, а затем только производить анализ кода операции. Это позволит исключить из микропрограммы повторяющиеся участки. Три ветви, реализующие различные операции, объединяются и действия передаются на выполнение следующей команды программы.

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

Рис. 18. Этапы рабочего цикла процессора

4. ПРОЕКТИРОВАНИЕ БЛОКА ОПЕРАЦИЙ

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

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

На практике построение логической структуры БО производят поэтапно:

§ вначале выявляют общий состав разрабатываемого БО, определяют характер связей между его частями и последовательность их работы во времени;

§  затем отдельно с помощью известных методов синтезируют логическую схему каждой части БО.

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

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

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

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

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

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

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

§ требует относительно большого количества оборудования для своего выполнения;

§  содержит наибольшее количество различных по характеру микроопераций;

§  часто встречается в программах задач, решаемых ЭВМ.

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

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

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

§ каждой микрооперации алгоритма ставится с соответствие свой функциональный узел;

§  характер и направление связей между функциональными узлами определяется последовательностью выполнения микроопераций;

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

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

Итак, последовательность действий при проектировании функциональной схемы БО следующая:

1) выбор определяющей операции из заданного списка;

2)      оценка различных алгоритмов определяющей операции по некоторым критериям и выбор оптимального;

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

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

)        построение общей функциональной схемы БО.

Проектирование логической схемы БО в базисе выбранной (заданной) системы базовых элементов, как отмечалось, состоит в синтезе отдельных частей (функциональных узлов) БО. Оно не вызывает принципиальных затруднений и может быть осуществлено известными формальными методами. В работе не требуется проводить оценку различных алгоритмов определяющей операции по заданным критериям и выбор оптимального алгоритма, поскольку в техническом задании алгоритм определяющей операции задан, главное, - показать как реализуются заданные алгоритм. Структуры и алгоритмы рассмотрены в [7].

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

5. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Выполняется анализ команд, в соответствии с вариантом задания, для разработки оптимизированной структуры процессора. При этом необходимо:

¾      определить формат данных для чисел с фиксированной точкой (разрядность, знаковые, беззнаковые);

¾      определить формат данных для чисел с плавающей точкой;

¾      самостоятельно выбрать код выполнения арифметической операции (прямой, обратный, дополнительный);

¾      выбрать алгоритм выполнения арифметической операции (например, деление с восстановлением остатка).

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

2. Анализ форматов команд. На этом этапе определяется :

¾      местоположение операндов (исходных данных и результатов): либо в регистрах, либо в оперативной памяти;

¾      формат команды и количество ячеек, которые команда занимает в памяти, в зависимости от ширины выборки,

¾      рассчитывается организация ОП.

3. На основе изучения структуры используемого процессора, привести стандартную организацию и порядок обращения к РОН, блоку FPU.

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

. На основе данных, полученных в п.1-4, разработать оптимизированную структуру процессора для заданных команд. Структура представляется на листах формата A1или A2 с указанием всех управляющих и осведомительных сигналов.

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

.   порядок выборки команд из ОП;

2.      определение типа операции;

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

4.      выполнение операции в БО, формирование флагов;

5.      запись результата.

Схема микропрограммы выполняется в соответствии с требованиями ЕСПД на листах формата A1или A2. Все блоки микропрограммы должны быть пронумерованы и основные этапы описаны.

. Разработка устройства управления (УУ) с программируемой логикой выполняется в соответствии с методическими указаниями. Принципиальная схема УУ выполняется в соответствии с требованиями ЕСКД. Выбор элементов должен быть обоснован и приведен в описании принципиальной схемы в курсовом проекте.

. Разработка микропрограммного устройства управления выполняется в соответствии с методическим пособием. Функциональная схема УУ выполняется в соответствии с требованиями ЕСКД. Структурная организация всех элементов должна быть обоснована и описана.

СПИСОК ЛИТЕРАТУРЫ

1. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем: Учебник для вузов.-СПб.: Питер, 2004.-668с.

2.      Таненбаум Э. Архитектура компьютера: - СПб.: Питер, 2002. -704 с.

.        Гук М. Аппаратные средства IBM PC.:- СПб.: Питер, 2000.-793 с.

.        Хамахер К., Вранешич З., Заки С. Организация ЭВМ: - СПб.: Питер, 2003.- 848 с.

.        Юров В.И. Assembler:- СПб.: Питер, 2003.- 622 с.

6. Онуфриева Т.А. Микропрограммное устройство управления - КФ МГТУ 2007г.- 20 c.

.   Онуфриева Т.А. Выполнение базовых арифметических операций. - КФ МГТУ 2008 г.- 20 с.

.   Болибок Г.Н., В.И. Алексеев. Синтез операционных и управляющих автоматов центрального процессора - КФ МГТУ 2002г.- 50 c.

.   Григорьев В.Л. Архитектура и программирование арифметического сопроцессора: Энергоатомиздат.1991 г.- 240 с.

10.    Григорьев В.Л. Микропроцессоры 486.: М. Бином.1993 г.-384 с.

ПРИЛОЖЕНИЕ 1

Варианты заданий

№ вар.

Заданные команды (r/m не равно 100В)

Объем ОП

Ширина выборки

1

ADC X,imm16 Mod=00

FADD m32real

JA rel8

256МБ

16

2

ADD m16,r16 Mod=00

FABS

LAHF

128МБ

16

3

AND r,imm8 Mod=01

FADD m64real

JCXZ rel8

4ГБ

16

4

CMP m32,r32 Mod=00

FADD m32real

LODS m8

2ГБ

32

5

DEC m32 Mod=11

FCOM ST(i)

JAE rel8

512МБ

16

6

DIV EAX,m32 Mod=11

FCOM m32real

LODS m32

256МБ

32

7

SAR m16,1 Mod=00

FSUB m64real

JGE rel8

128МБ

16

8

IMULr16,m16 Mod=00

FDIV ST(i),ST

JNA rel8

4ГБ

16

9

INC r16 Mod=11

FSUB ST,ST(i)

IMUL r16,imm8

2ГБ

16

10

MOV r,r16 Mod=00

FDIV m32real

JNG rel8

512МБ

32

11

MOV r16,m16 Mod=01

FMUL m32real

JNO rel8

128МБ

32

12

MUL AL,m8 Mod=11

FICOM m32int

JNS rel8

4ГБ

32

13

ADDr,imm16 Mod=00

FADD m16int

SUBm16, imm16

2ГБ

16

14

OR AL,imm8 Mod=11

FINCSTP

ADC r,r16

512МБ

8

15

MOV r,r8 Mod=11

FST m64real

MUL AL,m8

128МБ

8

16

ADD r,m8 Mod=11

FSUB ST(i),ST

JN0 rel8

4ГБ

16

17

IMUL r,m8 Mod=11

FMUL ST,ST(i)

MUL EAX,r32

2ГБ

16

18

SUB r,imm8 Mod=11

FDIV m64real

JS rel8

512МБ

16

19

SUBm32,imm8 Mod=00

FSUBST,ST(2)

JNZ rel8

128МБ

16

20

MOVreg16,imm16 Mod=11

FMUL ST(1),ST

JZ rel16

4ГБ

32

21

SUB r,r16 Mod=11

FADD ST(i),ST

JS rel16

2ГБ

32

22

IMUL r16,r Mod=00

FDIVR ST(i),ST

LMSW

512МБ

32

23

MUL AX,r Mod=11

FADD ST,ST(i)

LODS m16

128МБ

32

24

SUB AL,imm8 Mod=11

FIADD m32int

JMP m16

4ГБ

16

25

MOVm16,imm16 Mod=01

FIMUL m32int

JO rel16

2ГБ

32

26

XOR r,r16 Mod=11

FDIV ST,ST(i)

LAHF

512МБ

32

27

MOVr32,m32 Mod=00

FADD m64 real

JMP rel8

128МБ

16

28

SALr,imm8 Mod=11

FDIVR m32real

JMP m16

4ГБ

16

29

SAR r,imm8 Mod=11

FSUB ST(i),ST

2ГБ

16

30

SUBAX,imm 16 Mod=11

FSTP m80real

JMP m16

512МБ

8

31

ADDm16,r16 Mod=00

FIADD m16int

DECm8

512МБ

16

32

ADD r,imm8 Mod=01

FMUL ST(2), ST

JMP m16

1ГБ

16


Похожие работы на - Проектирование процессора IBM совместимых команд

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!