Помощь в написании студенческих работ
Антистрессовый сервис

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

Учебное пособиеПомощь в написанииУзнать стоимостьмоей работы

Под числом с фиксированной точкой понимается двоичное целое число, занимающее байт, полуслово, полное слово, двойное слово. Нулевой бит отводится под знак числа: 0 означает плюс, а 1 — минус. Предполагается, что десятичная точка находится справа от самой младшей цифры числа, т. е. используются только целые числа. Форматы целых чисел (3 формата) отличаются только длиной и диапазоном допустимых… Читать ещё >

Проектирование процессора IBM совместимых команд (реферат, курсовая, диплом, контрольная)

Калужский филиал федерального государственного бюджетного образовательного учреждения высшего профессионального образования Московский государственный технический университет имени Н. Э. Баумана ПРОЕКТИРОВАНИЕ ПРОЦЕССОРА IBM СОВМЕСТИМЫХ КОМАНД Калуга 2012

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

P

C

Рис. 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. Шесть его арифметических флажков фиксируют определенные свойства или признаки результата арифметической или логической операции. Команды МП воздействуют на эти флажки по-разному, но в общем они отражают следующие особенности результата.

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

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

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

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

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

Флажок переполнения О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 для байтовых величин, от -32 768 до +32 767 для слов, от -231 до 231-1 для двойных слов. Беззнаковые целые могут принимать значения: от 0 до 255 для байтовых величин, от 0 до 65 535 для слов, от 0 до 232-1 для двойных слов.

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

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

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

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

Зн 1бит

Порядок 8 бит

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

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

Зн 1бит

Порядок 11 бит

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

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

Зн 1бит

Порядок 15 бит

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

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

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

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

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

1 1 3 °F 800 000

10 0А 41 200 000

1 3D CCCCCD

01 3C 23D70A

974 00000F38 44 F38000

67 345 838 880 27 838 880

— 67 345 10 838 880 A7 838 880

000 915 527 343 3A 700 000

67.345 42 86BA3

Таблица 1

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

Короткий

Длинный

Расширенный

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

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

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

10-38…1038

10-308…10308

10-4932…104932

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

(2k-1-1)

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

0…255

0…2047

0…32 767

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

— 126…127

— 1022…1023

— 16 382…16 383

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

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

2.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 байт

SS

INDEX

BASE

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

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

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

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

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

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

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

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

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

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

d

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

s

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

reg

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

mod r/m

2,3

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

ss

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

index

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

base

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

sreg2

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

sreg3

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

tttn

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

Таблица 3

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

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

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

адрес

mod

R/M

адрес

mod

R/M

[BX+SI]

[BX+DI]

[BP+SI]

[BP+DI]

[SI]

[DI]

смещ16

[ВХ]

[EAX]

[ECX]

[EDX]

[EBX]

[-] [-]

смещ32

[ESI]

[EDI]

[BX+SI]+смещ8

[BX+DI]+смещ8

[BP+SI]+смещ8

[BP+DI]+смещ8

[SI]+смещ8

[DI]+смещ8

[ВР]+смещ8

[ВХ]+смещ8

смещ8 [EAX]

смещ8 [ECX]

смещ8 [EDX]

смещ8 [EBX]

смещ8 [-] [-]

смещ8 [EBP]

смещ8 [ESI]

смещ8 [ЕО1]

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

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

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

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

[SI]+смещ16

[DI]+смещ16

[ВР]+смещ16

[ВХ]+смещ16

смещ32 [ЕАХ]

смещ32 [ЕСХ]

смещ32 [ЕDХ]

смещ32 [ЕВХ]

смещ32 [-] [-]

смещ8 [EBP]

смещ8 [ESI]

смещ8 [EDI]

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

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

d

w

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

Байт 2 — байт sib

reg

mod

ss

index

base

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

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

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

Показать весь текст
Заполнить форму текущей работой