|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Структура арифметического сопроцессора К1810ВМ87Форматы данных. АСП ВМ87 может оперировать данными семи различных форматов: целых двоичных чисел (три формата), целых двоично-десятичных чисел (один формат) и вещественных чисел с плавающей запятой (три формата). Структура форматов приведена на рис. 14, а наименование и примерный диапазон значений - в табл. 7. Рисунок 14 – Структура форматов данных АСП ВМ87
Целые двоичные числа записываются в памяти, начиная с младших байтов. Во всех трех форматах ЦС, КЦ и ДЦ отрицательные числа представляются в дополнительном коде (рис. 14), тем самым старший байт определяет знак числа (0 - положительное число, 1 - отрицательное число). Полный диапазон целых чисел представлен в табл. 7. Один из кодов в котором знаковый разряд s = 1, а в значащих разрядах все нули, выделен для обозначения неопределенности. Код неопределенности генерируется в исключительных ситуациях, описываемых далее. Целые двоично-десятичные числа записываются в плотно упакованном двоично-десятичном (ДД) коде, в котором под каждую цифру d0 - d17 (рис. 14) отводится четыре двоичных разряда. В памяти ДД числа также располагаются начиная с младших разрядов и занимают 10 байт. Старший байт используется только под знак числа, который расположен в разряде 79, а остальные разряды старшего байта 78 - 72 содержат нули.
Таблица 7
Таблица 8
Полный диапазон двоично-десятичных чисел представлен в табл. 9. В него входят коды +0 и – 0, а также специальный код неопределенности. Код неопределенности является результатом в исключительных ситуациях, описываемых далее. Таблица 9
Вещественные числа в каждом из трех форматов КВ, ДВ и ВВ выключают три поля: поле знака мантиссы, поле порядка и поле мантиссы (рис. 14). Мантисса числа всегда (кроме исключительных случаев) записывается в нормализованном виде 1, , где - дробная часть числа. Целая часть, всегда равная единице, прямо не представляется в форматах KB и ДВ, а учитывается неявно. В формате ВВ старший бит мантиссы представляется явно. Порядок вещественных чисел записывается в поле порядка в смещенном виде, поэтому истинный порядок равен числу в поле порядка минус значение смещения. Применение смещенных порядков позволяет упростить операцию сравнения вещественных чисел, достаточно сравнить их порядки как обычные целые числа без знака. Поскольку операция сравнения является доминирующей в вычислительных программах, такое упрощение существенно повышает эффективность программ. Структурная схема АСП (рис. 15) содержит две относительно независимые части: операционное устройство, которое выполняет операции, заданные командой, и устройство шинного интерфейса, которое получает и декодирует команды, осуществляет считывание операндов из памяти и преобразование их в формат ВВ, а также запись результатов в память с обратным преобразованием в требуемый формат. Оба устройства могут работать параллельно, что обеспечивает совмещение во времени процессов передачи и преобразования данных. Рисунок 15 - Укрупненная структурная схема АСП ВМ87
Операционное устройство АСП содержит группу арифметических регистров, модули обработки порядка и мантиссы, ПЗУ констант, регистр этикеток и блок управления. Группа арифметических регистров включает восемь 80-битовых регистров, организованных в стек. Со стеком связан 3-битовый указатель стека SТ, содержимое которого определяет номер одного из восьми арифметических регистров, являющегося вершиной стека. Нумерация регистров начинается всегда от вершины (рис 16), и регистры обозначаются через ST(0), ST(1),..., ST(7). Группа арифметических регистров служит для хранения обрабатываемых данных, представленных в формате ВВ. При загрузке данных в арифметический регистр содержимое указателя стека ST предварительно уменьшается ST←ST - 1 и указывает номер регистра, в который производится загрузка. При извлечении данных, после запоминания извлеченного значения в памяти, содержимое ST автоматически увеличивается на единицу ST ← ST+1. С группой арифметических регистров связан регистр этикеток TAG, в котором каждому АР ставится в соответствие 2-битовое поле. В этом поле автоматически формируется код, характеризующий загруженное в АР значение, в соответствии с табл. 10. Модуль обработки мантиссы состоит из 68-битового сумматора, регистра сдвига и регистра результата. Он выполняет заданные операции над мантиссами операндов и формирует признаки различных исключительных ситуации, возникающих при обработке данных. Модуль обработки порядка осуществляет действие над значениями поля порядка исходных операндов в соответствии с командой. ПЗУ констант хранит семь различных числовых констант, которые часто используются в вычислительных программах: +0,0; +1,0; π; lg 2; ln 2; log2l0 и log2e. Все константы представлены в формате ВВ. Рисунок 16 - Нумерация арифметических регистров (при ST = 5) и соответствующих полей регистра
Блок управления связан с выходом очереди из байтов команд и построен по микропрограммному принципу. Его назначение состоит в дешифрации очередной команды, поступающей на исполнение из устройства шинного интерфейса, и формировании управляющих сигналов, определяющих режим работы модулей обработки и других устройств АСП.
Таблица 10
Устройство шинного интерфейса содержит группу вспомогательных регистров, буферный регистр (БР), очереди команд и операндов. Группа вспомогательных регистров включает 16-битовый регистр состояния SR, 16-битовый регистр управления CR и 64-битовый регистр - указатель исключительных ситуаций ЕР. Регистр состояния SR (рис. 17) содержит 13 полей, разряды которых при функционировании АСП автоматически устанавливаются в соответствии с выполняемыми действиями или результатами действий. Поле В регистра SR (paзряд 15) устанавливается в единицу, когда сопроцессор выполняет команду. Значение этого поля выдается на выход BUSY и осуществляет синхронизацию действий ЦП и АСП,»удерживая» ЦП в режиме ожидания. Разряды пол ST устанавливаются в соответствии с номером арифметического регистра, который является вершиной стека. Уменьшение или увеличение значения ST на единицу осуществляется автоматически при выполнении команд загрузки и запоминания соответственно. Разряды полей С3 - С0 содержат значения флагов характеризующих результаты выполнения различных команд (табл. 11). Разряды полей РЕ, UE, OE, ZE, DE, IE являются флагами исключительных ситуаций, возникающих в результате выполнения команд. Флаг IЕ - недействительная операция - устанавливается в единицу при переполнении стека, извлечения из пустого стека, выполнения действий приводящих к неопределенным значениям типа ∞/∞, ∞×0, или с операндом NAN. Если флаг IE замаскирован, результат недействительной операции формируется следующим образом. Когда один из операндов равен NAN, то результатом является NAN; когда оба операнда NAN, результатом является NAN с большим абсолютным значением. Если ни один из операндов не является NAN, результатом является код неопределенности.
Рисунок 17 - Регистр состояния АСП ВМВ7
Флаг DE - денормализованный операнд - устанавливается в единицу, когда хотя бы один из операндов денормализован. Если флаг DE замаскирован и операнд находится в памяти, то сопроцессор оперирует с денормализованным операндом как с нормализованным. Когда денормализованный операнд находится в регистре, сопроцессор предварительно преобразует его в ненормализованный, путем сдвига мантиссы и изменения порядка. Таблица 11
Флаг ZE - деление на нуль - устанавливается в единицу, когда делимое - конечное число, не равное нулю, а делитель равен нулю. Если флаг ZE замаскирован, то в качестве результата выдается код ∞ со знаком, равным сумме по модулю два знаков операндов. Флаг ОЕ - переполнение - устанавливается в единицу, когда результат операции не может быть представлен конечным числом, т.е. его значение превышает 1,2∙104931. Если флаг ОЕ замаскирован, то в качестве результата выдается код ∞. Флаг UE - антипереполнение - устанавливается в единицу, когда результат операции не может быть представлен нормализованным конечным числом. Если флаг UE замаскирован, то в качестве результата выдается де-нормализованное число. Флаг РЕ - неточный результат - устанавливается в единицу, когда значение результата не может быть представлено точно в том формате, который определен командой. Результат в этом случае округляется в соответствии с заданным режимом округления. Если флаг РЕ замаскирован, сопроцессор округляет результат, не вызывая прерывания. Поле SR(7) = IR содержит флаг запроса прерывания, который устанавливается в»1» при возникновении какой-либо незамаскированной из (перечисленных выше) исключительной ситуации. Значений флага IR формируется на выходе INT сопроцессора. Флаг IR может быть замаскирован программным путем.
Рисунок 18 - Регистр управления АСП ВМВ7
После инициализации ВМ87 все биты регистра состояния, за исключением С0, C1, C2, СЗ, устанавливаются в нуль. Регистр управления CR (рис. 18) содержит десять полей, которые служат для задания требуемого режима работы АСП программным путем. Различают две основные группы режимов - вычислений и обработки исключительных ситуаций. Режимами вычислений управляют поля старшего байта регистра CR, а режимами обработки исключительных ситуаций - поля младшего байта. Поле CR(12) = IС - управление бесконечностью - определяет, что +∞ и - ∞ считаются одной беззнаковой бесконечностью; IC = 1 - определяет обычную ситуацию, когда +∞ и - ∞ считаются двумя знаковыми бесконечностями Первый режим (IС = 0) носит название»проективная арифметика», а второй (IС = 1) -»аффинная арифметика». Поле CR (11, 10) = RC - управление округлением - определяет способ округления в соответствии с табл. 12.
Таблица 12
Первый режим RC = 00 является обычным способом округления. Режимы RC = 01 и 10 используются для определения граничных левых и правых значений соответственно. В режиме RC = 11 осуществляется усечение (отбрасывание) лишних битов результата. Поле CR (9, 8) = PC - управление точностью позволяет определить формат представления результатов вычислений в соответствии с табл. 13 и задать один из трех режимов работы. Режимы, соответствующие РС = 00 и 10, позволяют на основе ВМ87 эмулировать работу процессоров с разрядной сеткой, отведенной под мантиссу 24 и 53 бит соответственно. В этих режимах результаты операций с плавающей запятой перед размещением в арифметический регистр округляются до указанного размера. Поля CR(5) - CR(0) позволяют установить маски исключительных ситуаций, описанных ранее, при этом: IМ = 1 маскирует флаг IE; DM = 1 - флаг DE; ZM = 1 - флаг ZE; ОМ = 1 - флаг ОЕ; UM = 1 - флаг UE; РМ = 1 - флаг РЕ. Поле CR(7) = IEM - маскирует флаг запроса прерывания IR, т.е. независимо от значений перечисленных шести масок сигнал IЕМ = 1 заставляет ВМ87 обрабатывать все исключительные ситуации стандартным образом.
Таблица 13
При инициализации ВМ87 сигналом RESET поля регистра управления устанавливаются следующим образом: IC = 0, RC = 00, РС = 11, IЕМ = 0, все маски устанавливаются в единицу.
Рисунок 19 - Регистр - указатель исключительной ситуации
Регистр - указатель исключительной ситуации ЕР (рис. 19) состоит из двух 32-битовых регистров. Когда сопроцессор выполняет очередную команду, устройство шинного интерфейса засылает в первый регистр 20-битовый адрес этой команды и 11-битовый код команды, а во второй - 20-битовый адрес операнда, если он взят из памяти. Эта информация может потребоваться центральному процессору при нестандартной обработке незамаскированной исключительной ситуации по запросу прерывания от ВМ87. Содержимое регистра ЕР может быть записано в память с помощью соответствующей команды ВМ87 для анализа в процессе обработки запроса. Неиспользуемые бить регистра - указателя ЕР заполняются нулями.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |