Проектирование процессора 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.


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

311570EAXAHAXALEBXBHBXBLECXCHCXCLEDXDHDXDLESPSPEAXBPEAXSIEAXDI

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

15 0CSSSDSESFSGS

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

31 EIP 0

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

0…………0OSZA0P1C310Рис. 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.34542 86BA3


Таблица 1

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

КороткийДлинныйРасширенныйДлина числа, бит326480Разрядность мантиссы245364Диапазон значений10-38…103810-308…1030810-4932…104932Размерность порядка k81115(2k-1-1)127102316383Диапазон Pсмещ0…2550…20470…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 байт

MODREG/opcodeR/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/mdwregmodr/mРис. 10. Двухоперандная команда байтом mod r/m


Таблица 2

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

ПолеДлина (бит)Описаниеw1Определяет размер операнда в байт (w=0) или в полный размер(w=1). Полный размер составляет 16 или 32 битаd1В двухоперандных командах определяет направление передачи данных: из регистра в регистр/ память (d=0) или из регистра/памяти в регистр (d=1)s1Определяет расширение 8-битных непосредственных данных до полного размера (s=1) или нет (s=0)reg3Определяет 8/16/32 - битный регистр общего назначенияmod r/m2,3Спецификатор режима адресацииssМасштабный множитель (коэффициент) для режима масштабированной индексной адресации: 00В = Х1, 01В= Х2, 10В= Х4, 11В = Х8index3Определяет регистр общего назначения, используемый как индексный регистрbase3Определяет регистр общего назначения, используемый как базовый регистрsreg22Определяет один из сегментных регистров: 00B=ES, 01B=CS, 10B=SS, 11B=DSsreg33Определяет любой сегментный регистр: 000B=ES, 001B=CS, 010B=SS, 011B=DS, 100B=FS, 101B=GS (комбинации 110В и 111В не используются)tttn4В командах условных переходов и установок определяет проверяемое условие

Таблица 3

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

16-разрядный режим32-разрядный режимадресmodR/MадресmodR/M[BX+SI] [BX+DI] [BP+SI] [BP+DI] [SI] [DI] смещ16 [ВХ]00000 001 010 011 100 101 110 111[EAX] [ECX] [EDX] [EBX] [-] [-] смещ32 [ESI] [EDI]00000 001 010 011 100 101 110 111[BX+SI]+смещ8 [BX+DI]+смещ8 [BP+SI]+смещ8 [BP+DI]+смещ8 [SI]+смещ8 [DI]+смещ8 [ВР]+смещ8 [ВХ]+смещ801000 001 010 011 100 101 110 111смещ8 [EAX] смещ8 [ECX] смещ8 [EDX] смещ8 [EBX] смещ8 [-] [-] смещ8 [EBP] смещ8 [ESI] смещ8 [ЕО1]01000 001 010 011 100 101 110 111[ВХ+SI]+смещ16 [ВХ+DI]+смещ16 [ВР+SI]+смещ16 [ВР+DI]+смещ16 [SI]+смещ16 [DI]+смещ16 [ВР]+смещ16 [ВХ]+смещ1610000 001 010 011 100 101 110 111смещ32 [ЕАХ] смещ32 [ЕСХ] смещ32 [ЕDХ] смещ32 [ЕВХ] смещ32 [-] [-] смещ8 [EBP] смещ8 [ESI] смещ8 [EDI]10000 001 010 011 100 101 110 111

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


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

Байт 1 - байт mod r/mБайт 2 - байт sibregmod100ssindexbaseоперанд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В)Объем ОПШирина выборки1ADC X,imm16 Mod=00FADD m32realJA rel8256МБ162ADD m16,r16 Mod=00FABSLAHF128МБ163AND r,imm8 Mod=01FADD m64realJCXZ rel84ГБ164CMP m32,r32 Mod=00FADD m32realLODS m82ГБ325DEC m32 Mod=11FCOM ST(i)JAE rel8512МБ166DIV EAX,m32 Mod=11FCOM m32realLODS m32256МБ327SAR m16,1 Mod=00FSUB m64realJGE rel8128МБ168IMULr16,m16 Mod=00FDIV ST(i),STJNA rel84ГБ169INC r16 Mod=11FSUB ST,ST(i)IMUL r16,imm82ГБ1610MOV r,r16 Mod=00FDIV m32realJNG rel8512МБ3211MOV r16,m16 Mod=01FMUL m32realJNO rel8128МБ3212MUL AL,m8 Mod=11FICOM m32intJNS rel84ГБ3213ADDr,imm16 Mod=00FADD m16intSUBm16, imm162ГБ1614OR AL,imm8 Mod=11FINCSTPADC r,r16512МБ815MOV r,r8 Mod=11FST m64realMUL AL,m8128МБ816ADD r,m8 Mod=11FSUB ST(i),STJN0 rel84ГБ1617IMUL r,m8 Mod=11FMUL ST,ST(i)MUL EAX,r322ГБ1618SUB r,imm8 Mod=11FDIV m64realJS rel8512МБ1619SUBm32,imm8 Mod=00FSUBST,ST(2)JNZ rel8128МБ1620MOVreg16,imm16 Mod=11FMUL ST(1),STJZ rel164ГБ3221SUB r,r16 Mod=11FADD ST(i),STJS rel162ГБ3222IMUL r16,r Mod=00FDIVR ST(i),STLMSW512МБ3223MUL AX,r Mod=11FADD ST,ST(i)LODS m16128МБ3224SUB AL,imm8 Mod=11FIADD m32intJMP m164ГБ1625MOVm16,imm16 Mod=01FIMUL m32intJO rel162ГБ3226XOR r,r16 Mod=11FDIV ST,ST(i)LAHF512МБ3227MOVr32,m32 Mod=00FADD m64 realJMP rel8128МБ1628SALr,imm8 Mod=11FDIVR m32realJMP m164ГБ1629SAR r,imm8 Mod=11FSUB ST(i),STJMP rel162ГБ1630SUBAX,imm 16 Mod=11FSTP m80realJMP m16512МБ831ADDm16,r16 Mod=00FIADD m16intDECm8512МБ1632ADD r,imm8 Mod=01FMUL ST(2), STJMP m161ГБ16


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ