Министерство Образования
Российской Федерации
РГРТА
Кафедра ЭВМ
Пояснительная записка к курсовому проекту по дисциплине
«Организация ЭВМ и систем»
по теме
«Проектирование процессора с плавающей точкой»
Выполнил студент гр.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. Алгоритм операции FMulSt,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.
FStm32real - сохранение.
m32real ← ST
Особые случаи: P, U, O, D, I.
Емкость ОП 4 Кбайт.
Длина слова памяти 128 бит.
С появлением процессора i486 и его сопроцессора FPU – сопроцессора с плавающей точкой, работа с вещественными числами стала аппаратной, а не программной задачей. Производительность ЭВМ увеличилась. Возможности использования ЭВМ в бухгалтерии и многих других областях деятельности человека дали толчок массовому внедрению их в повседневную жизнь. Были переписаны многие программы, компиляторы. Освоение архитектуры, принципов работы сопроцессора FPU стало для программистов едва ли не основной задачей.
В данной работе описываются команды, форматы данных ППТ, программная модель и почти все блоки процессора, рассматриваются алгоритмы выполнения заданных операций, а также моделирование одной арифметической операции на модели микропрограммируемого процессора (MICRO).
1.1. FMulST, ST(i) - умножение.
Команда умножения умножает операнды источника и получателя и возвращает произведение в получатель.
ST ← ST * ST(i)
Оба операнда находятся в регистровом стеке в формате 80real.
Умножение с анализом младшего бита множителя со сдвигом множимого.
Особые случаи:
P - неточный результат;
U - антипереполнение;
O - переполнение;
D - денормализованный операнд;
I - недействительная операция.
Формат команды представлен на рисунке 1.1
Адрес второго операнда определяется полем ST(i), которое принимает значения от 000 до 111, где 000 – вершина стека, 111 – восьмой элемент регистрового стека.
Бит R показывает, возвращается ли результат в вершину стека. В данном случае R = 0.
Бит P указывает, что после операции производится извлечение из стека. P = 0, так как извлечения нет.
1.2. FStm32real- сохранение.
Команда FSt m32real передает значение из регистра ST в ОП. Содержимое ST остается неизменным.
Особые случаи:
P - неточный результат;
U - антипереполнение;
O - переполнение;
D - денормализованный операнд;
I - недействительная операция.
Формат команды представлен на рисунке 1.2
Адрес операнда m32real определяется полями mod, r/m, SIB, Disp. Адрес вычисляется целочисленным процессором. К началу операции он уже сформирован. Бит [0] первого байта команды определяет тип операции.
В данном случае Бит [0] = 1 – передача данного из стека в память.
Поле MF определяет тип операнда. При m32realMF = 00.
2.1. Внутренний формат.
Во внутренних операциях процессор с плавающей точкой (ППТ) использует представление вещественных чисел в формате с расширенной точностью (РТ, m80real) (рис.2.1). Длина формата 80 бит.
Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 64 бита. Поле порядка (E) показывает фактическое положение двоичной точки в разрядах мантиссы. Длина порядка 15 бит. Бит знака (S) определяет знак числа. Мантисса представлена в прямом коде. Порядок задается в смещенной форме; он равен истинному порядку (П), увеличенному на значение смещения – смещ РТ = 16383:
E = П + смещ РТ
Истинный порядок изменяется от –16382 до 16383. Порядки 000…0b и 111…1b зарезервированы для специальных значений. Числа в формате РТ имеют явный бит F0.
Значение числа в формате РТ равно
.В данном курсовом проекте рассматривается один внешний формат m32real – формат обычной точности (ОТ) (рис.2.2). Длина формата 32 бита.
Значащие цифры числа находятся в поле мантиссы (М). Длина мантиссы 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.
2.4. Пример формата m32real.
Покажем представление десятичного числа -85.125 в формате ОТ. Двоичный код числа равен -1010101.001b, истинный порядок равен 6. Смещенный порядок E=6+127=133=10000101b. Число в формате ОТ приведено на рис. 2.4.
3. Программная модель процессора
Программная модель (рис. 3.1) включает в себя кольцевой стек из восьми регистров R0-R7, слово тэгов TW, слово состояния SW и слово управления CW. В стеке хранятся числа в формате РТ. В полях S, Е и М регистров записаны соответственно знак, порядок и мантисса. Вершина стека определяется полем TOP слова состояния SW и обозначается ST(0), или просто ST. На рисунке вершиной стека является физический регистр R3. ST(0) содержит последнее включенное в стек значение, регистр ST(1) предпоследнее и т.д. Включение в стек осуществляет декремент TOP и загрузку в новую вершину стека. При извлечении из стека данное читается из ST(0), а затем производится инкремент TOP.
С каждым регистром стека ассоциируется двухбитный тэг, характеризующий хранимое число:
00 - нормализованное число;
01 - истинный нуль;
10 - денормализованное число, бесконечность или неопределенность;
11 - пустой регистр.
В слове состояния SW поле TOP содержит адрес текущей вершины стека. Биты кода условия C0-C3 фиксируют результаты команд сравнения, проверки и анализа. Восемь бит отведены для регистрации особых случаев (ошибок) (рис.3.2).
При выполнении команд с ПТ возможны следующие особые случаи:
·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). Если бит маски установлен, прерывание при соответствующем особом случае не происходит. Если бит маски сброшен, происходит прерывание.
В данном курсовом проекте используются следующие особые случаи: P, U, O, D, I.
Недействительная операция.
Этот случай возникает при антипереполнении стека (попытка извлечения из пустого регистра) и переполнении стека (попытка включения в непустой регистр). Стековые операции распознаются по биту SF=1 в SW. При антипереполнении стека бит C1=0, С1=1 при переполнении. В операциях FStm32real и FMulSt, St(i) формируется особый случай I при попытке извлечения из пустого регистра.
Переполнение.
Возникает, когда округленный результат арифметической команды с преобразованием формата превышает наибольшее конечное число в формате получателя. Маскированная реакция зависит от режима округления.