на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Проектирование процессора с плавающей точкой

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

37

Министерство Образования

Российской Федерации

РГРТА

Кафедра ЭВМ

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

«Организация ЭВМ и систем»

по теме

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

Выполнил студент гр.343

Савченко Н.

Проверил:

Юдинцев А.С.

Рязань 2004

Содержание

Техническое задание

Введение

1. Описание команд

1.1. FMul ST, ST(i) - умножение

1.2. FSt m32real - сохранение

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

2.1. Внутренний формат

2.2. Внешний формат

2.3. Пример формата m80real

2.4. Пример формата m32real

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

4. Блок - схема процессора

5. Алгоритмы операций

5.1. Алгоритм операции FMul St,St(i)

5.2. Алгоритм операции FSt m32real

6. Структурные схемы блоков процессора

6.1. Блок памяти

6.2. Блок преобразования форматов

6.3. Блок регистров

6.4. Блок обработки данных (блок умножения)

6.5. Блок микропрограммного управления

7. Моделирование операции FMul St,St(i)

Заключение

Список использованных источников

Техническое задание

FMul ST, ST(i) - умножение.

Команда умножения умножает операнды источника и получателя и возвращает произведение в получатель.

ST < ST * ST(i)

Оба операнда находятся в регистровом стеке в формате 80real.

Умножение с анализом младшего бита множителя со сдвигом множимого.

Особые случаи: P, U, O, D, I.

FSt m32real - сохранение.

m32real < ST

Особые случаи: P, U, O, D, I.

Емкость ОП 4 Кбайт.

Длина слова памяти 128 бит.

Введение

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

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

1. Описание команд

1.1. FMul ST, ST(i) - умножение.

Команда умножения умножает операнды источника и получателя и возвращает произведение в получатель.

ST < ST * ST(i)

Оба операнда находятся в регистровом стеке в формате 80real.

Умножение с анализом младшего бита множителя со сдвигом множимого.

Особые случаи:

P - неточный результат;

U - антипереполнение;

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

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

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

Формат команды представлен на рисунке 1.1

37

Адрес второго операнда определяется полем ST(i), которое принимает значения от 000 до 111, где 000 - вершина стека, 111 - восьмой элемент регистрового стека.

Бит R показывает, возвращается ли результат в вершину стека. В данном случае R = 0.

Бит P указывает, что после операции производится извлечение из стека. P = 0, так как извлечения нет.

1.2. FSt m32real - сохранение.

Команда FSt m32real передает значение из регистра ST в ОП. Содержимое ST остается неизменным.

Особые случаи:

P - неточный результат;

U - антипереполнение;

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

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

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

Формат команды представлен на рисунке 1.2

37

Адрес операнда m32real определяется полями mod, r/m, SIB, Disp. Адрес вычисляется целочисленным процессором. К началу операции он уже сформирован. Бит [0] первого байта команды определяет тип операции.

В данном случае Бит [0] = 1 - передача данного из стека в память.

Поле MF определяет тип операнда. При m32real MF = 00.

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

2.1. Внутренний формат.

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

37

Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 64 бита. Поле порядка (E) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина порядка 15 бит. Бит знака (S) определяет знак числа. Мантисса представлена в прямом коде. Порядок задается в смещенной форме; он равен истинному порядку (П), увеличенному на значение смещения - смещ РТ = 16383:

E = П + смещ РТ

Истинный порядок изменяется от -16382 до 16383. Порядки 000…0b и 111…1b зарезервированы для специальных значений. Числа в формате РТ имеют явный бит F0.

Значение числа в формате РТ равно .

2.2. Внешний формат.

В данном курсовом проекте рассматривается один внешний формат m32real - формат обычной точности (ОТ) (рис.2.2). Длина формата 32 бита.

37

Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 23 бита. Поле порядка (E) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина порядка 8 бит. Бит знака (S) определяет знак числа. Мантисса представлена в прямом коде. Порядок задается в смещенной форме; он равен истинному порядку (П), увеличенному на значение смещения - смещ ОТ = 127:

E = П + смещ ОТ

Истинный порядок изменяется от -126 до 127. Порядки 000…0b и 111…1b зарезервированы для специальных значений. Явный бит F0 в формате ОТ отсутствует и мантисса оказывается правильной дробью.

Значение числа в формате ОТ равно .

2.3. Пример формата m80real.

Покажем представление десятичного числа 24789.8125 в формате РТ. Двоичный код числа равен 110000011010101.1101b, истинный порядок равен 14. Смещенный порядок E=14+16383=16397=100000000001101b. Число в формате РТ приведено на рис. 2.3.

37

2.4. Пример формата m32real.

Покажем представление десятичного числа -85.125 в формате ОТ. Двоичный код числа равен -1010101.001b, истинный порядок равен 6. Смещенный порядок E=6+127=133=10000101b. Число в формате ОТ приведено на рис. 2.4.

37

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

Программная модель (рис. 3.1) включает в себя кольцевой стек из восьми регистров R0-R7, слово тэгов TW, слово состояния SW и слово управления CW. В стеке хранятся числа в формате РТ. В полях S, Е и М регистров записаны соответственно знак, порядок и мантисса. Вершина стека определяется полем TOP слова состояния SW и обозначается ST(0), или просто ST. На рисунке вершиной стека является физический регистр R3. ST(0) содержит последнее включенное в стек значение, регистр ST(1) предпоследнее и т.д. Включение в стек осуществляет декремент TOP и загрузку в новую вершину стека. При извлечении из стека данное читается из ST(0), а затем производится инкремент TOP.

37

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

00 - нормализованное число;

01 - истинный нуль;

10 - денормализованное число, бесконечность или неопределенность;

11 - пустой регистр.

В слове состояния SW поле TOP содержит адрес текущей вершины стека. Биты кода условия C0-C3 фиксируют результаты команд сравнения, проверки и анализа. Восемь бит отведены для регистрации особых случаев (ошибок) (рис.3.2).

37

При выполнении команд с ПТ возможны следующие особые случаи:

P - неточный результат (точность);

U - антипереполнение;

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

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

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

Z - деление на нуль.

Особым случаям соответствуют флажки в слове состояния SW (рис.3.2): IE, ZE, DE, OE, UE, PE. При любом особом случае устанавливается бит суммарной ошибки ES, а также вырабатывается активный сигнал ошибки FERR.

В слове управления CW поле RC задает режим округления, когда формат получателя не позволяет точно представить результат. Пусть B - точный результат, A и C - ближайшие к нему представимые в заданном формате числа: A<B<C. Поле RC задает режим округления:

00 - округление к ближайшему - выбор из А и С, ближайшего к В;

01 - округление вниз - А;

10 - округление вверх - С;

11 - усечение - меньшее из А и С по модулю.

Младшие 6 битов CW хранят маски особых случаев: IM, DM, ZM, OM, UM, PM (рис.3.3). Если бит маски установлен, прерывание при соответствующем особом случае не происходит. Если бит маски сброшен, происходит прерывание.

37

В данном курсовом проекте используются следующие особые случаи: P, U, O, D, I.

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

Этот случай возникает при антипереполнении стека (попытка извлечения из пустого регистра) и переполнении стека (попытка включения в непустой регистр). Стековые операции распознаются по биту SF=1 в SW. При антипереполнении стека бит C1=0, С1=1 при переполнении. В операциях FSt m32real и FMul St, St(i) формируется особый случай I при попытке извлечения из пустого регистра.

Переполнение.

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

Денормализованный операнд.

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

4. Блок - схема процессора

На основании анализа заданных операций укрупненная блок-схема процессора представлена на рис 4.1. В него входят оперативная память ОП, блок преобразования форматов данных БПФ, блок регистров БР, блок обработки данных БОД, блок микропрограммного управления БМУ. БПФ и ОП связаны 128-битной шиной и через нее передаются данные в ОП в формате m32real. БПФ осуществляет обратное преобразование из формата PT в OТ.

БР включает в себя регистровый стек, регистры слов тэгов, управления и состояния. Из БР в БПФ передается операнд из вершины стека в формате РТ (операция FSt). Из БР в БОД передаются 2 операнда в формате РТ для операции умножения (FMul) и из БОД в БР передается результат операции умножения в формате РТ в вершину стека. В БОД осуществляется операция умножения.

Управление операциями осуществляется БМУ путем выборки последовательности микрокодов (МК). Обратная связь от БПФ, БР и БОД к БМУ обеспечивается через шину осведомительных сигналов ОС.

37

5. Алгоритмы операций

5.1. Алгоритм операции FMul St,St(i).

Порядок выполнения операции состоит из следующих этапов:

а) Чтение операнда из вершины стека ST(0) в БОД;

б) Чтение операнда из ST(i) в БОД;

в) Операция умножения;

г) Запись результата умножения в стек ST(0).

1 этап. Чтение операнда из вершины стека ST(0) в БОД.

Если регистр ST(0) непустой (Т(0)11), то читаем операнд в RGD=ST(0), а оттуда в рабочий регистр RG1.

2 этап. Чтение операнда из ST(i) в БОД.

Если регистр ST(i) непустой (Т(i)11), то читаем операнд в RGD=ST(i), а оттуда в рабочий регистр RG2.

3 этап. Операция умножения.

Первый операнд читается из вершины стека в рабочий регистр

RG1:RG1=ST(0).

Второй операнд читается из вершины стека в рабочий регистр RG2:

RG2=ST(i).

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.