Функции и принципы работы математического сопроцессора

 

Введение


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

Целью дипломной работы являются изучение темы:

- изучение функций и принципа работы математического сопроцессора.

Для достижения этой цели необходимо решить ряд задач, а именно:

изучить основные понятия математического сопроцессора;

изучить принцип работы математического сопроцессора;

изучить функции математического сопроцессора;

- рассчитать себестоимость рабочего места и экономическую эффективность;

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

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

математический сопроцессор деление тригонометрический


1. Общая часть


.1 История математических сопроцессоров


С учетом того, что большинство современных приложений и игр требуют огромного количества вычислений именно над вещественными числами (числа с плавающей точкой), то общая производительность процессора зависит от того, насколько быстро он их обрабатывает. Для этих целей в процессоре существует специальный модуль, получивший название Floating-Point Unit (FPU) - модуль вычислений с плавающей точкой. В то же время производительность этого модуля зависит не только от рабочей частоты процессора, но и от его конструктивных особенностей.

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

При работе с вещественными числами существует тот же нюанс, что и в целочисленных операциях - команда не может быть выполнена за один такт ядра процессора. И если в 486-х процессорах для обработки целочисленных команд уже начал использоваться пятиступенчатый конвейер, то FPU был по-прежнему не конвейерного типа, т.е. следующая команда с плавающей точкой всегда должна была дожидаться выполнения предыдущей. Это существенно тормозило работу процессора с мультимедийными приложениями. А последние в то время уже начали стремительно набирать обороты в своих "запросах". Поэтому вполне естественно, что Intel, начиная с процессоров Pentium, стала применять конвейер не только в целочисленных, но и в вещественных операциях. Корпорация AMD, в свою очередь, пошла по несколько иному пути - вместо конвейеризации FPU она начала внедрять в свою продукцию технологию 3DNow, которая также была направлена на повышение производительности в операциях с вещественными числами. Эта технология столкнулась с множеством проблем в своей реализации. Думаю, многие помнят, как AMD K6-2, призванный конкурировать с Pentium II в целочисленных операциях, на процентов тридцать отставал от него в обработке вещественных чисел.

В Athlon'ах и последующих процессорах корпорация AMD перешла на конвейерный тип FPU. Более того, в новых процессорах AMD применила в модуле вычислений с плавающей точкой не только супер конвейеризацию, но и суперскалярность - в одном процессоре стало располагаться, грубо говоря, три модуля FPU, каждый из которых принимает участие в вычислениях с плавающей точкой. Другими словами, с выходом процессоров Athlon/Duron продукция AMD перестала уступать в скорости вычислений над вещественными числами своему конкуренту - корпорации Intel. А это сыграло очень существенную роль в расстановке сил этих извечных соперников на современном процессорном рынке.(Floating Point Unit) используется для ускорения и упрощения вычислений с плавающей точкой.

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

До некоторых моделей 80486 FPU исполнялся в виде отдельной микросхемы, устанавливаемой опционально. В некоторых 486 и во всех Pentium (и выше), FPU интегрирован в процессор, поэтому можно считать, что он присутствует в каждом более-менее современном компьютере. Начиная с Pentium Pro FPU имеет дополнительные команды, упрощающие сравнение чисел. В любом случае, если FPU недоступен, или не поддерживает какие-либо ф-ции, то возможна их программная эмуляция.

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

Первым математическим сопроцессором для персонального компьютера IBM стал i8087 производства Intell, который появился в 1980 году. Со временем, помимо чисто Intell-x сопроцессоров, появились сопроцессор и ряда других фирм. CYRIX предлагал один из самых быстрых сопроцессоров, основанных на классической архитектуре. Причем гарантировалась полная совместимость с сопроцессорами Intell. Производительность этой микросхемы несколько выше потому, что все критичные по времени выполнения операции реализованы в данной микросхеме с использованием жесткой логики (аппаратный умножитель, отдельное арифметико-логическое устройство для вычисления мантиссы и т.д.). Повышение производительности особенно заметно при вычислении квадратного корня или тригонометрических функций. Он еще и точнее Intell-го.была основана в 1981 году несколькими инженерами, покинувшими Intell. Выполнение простых операций с одинарной точностью на сопроцессоре Weitek происходит менее чем за 200 нс., тогда как сопроцессор, использующий классическую архитектуру, выполняет подобные операции за 1.5 с. Обращение к сопроцессору происходит как бы через ОЗУ. Таким образом, загрузив операнды в область памяти, соответствующей сопроцессору, следующей командой можно уже считывать результат. Применение сопроцессора Weitek имеет смысл только тогда, когда он поддерживается программным обеспечением. В связи с этим сопроцессор Weitek находит достаточно ограниченное применение.

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

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

Они предназначались для линейки процессоров 80286, также некоторые сопроцессоры использовались с процессорами Intel 80386. Более того, до 1987 года, пока не были выпущены математические сопроцессоры Intel 80387, это были единственные сопроцессоры, способные работать с процессорами Intel 80386. Они могли использоваться даже с процессорами Cyrix Cx486SLC, но после выхода сопроцессоров Intel 80387 его использование стало предпочтительнее, так как он выигрывал у Intel 80287 по всем показателям.

В зависимости от модификации, сопроцессоры работали на тактовой частоте - от 5 до 20 МГц. На рис.1 показан математический сопроцессор Intel 80387.


Рис.1 Математический сопроцессор Intel 80387


Линейка математических сопроцессоров, производимых компанией Intel с 1987 года. Сопроцессоры значительно расширяли возможности процессоров 80386 по обработке чисел с плавающей запятой, предоставляя более 50 новых инструкций, и соответствовали требованиям стандарта IEEE 754-1985.

Для процессоров 80386SX разрабатывалась своя серия модификаций сопроцессоров 80387 с индексом SX, так как процессоры 80386SX имели 16-разрядную внешнюю шину данных.

Сопроцессоры 80387 работали на той же частоте, что и процессоры 80386, и поддерживали тактовые частоты - 16, 20, 25 и 33 МГц. Эта линейка сопроцессоров была быстрее сопроцессоров 80287, и программы, разработанные для сопроцессоров 80287, были совместимы с новыми версиями сопроцессоров, так что они быстро вытеснили своих предшественников.

Компания Intel несколько запоздала с выпуском математического сопроцессора, поэтому часто с процессорами 80386 использовались математические сопроцессоры 80287.

Производительность такой связки была значительно меньше возможностей, достигнутых впоследствии связкой 386-ой процессор-387-ой сопроцессор, но на тот момент особого выбора не было. На рис.2 показан математический сопроцессор Intel80387.


Рис.2 Математический сопроцессор Intel80387


Линейка математических сопроцессоров, выпускаемых компанией Intel с сентября 1991 года. На рис.3 показан математический сопроцессор Intel 80487.


Рис.3 математический сопроцессор Intel80487


Использовались совместно с процессорами Intel 486 SX для ускорения обработки операций с вещественными числами.

На самом деле, сопроцессор 80487 был больше, чем сопроцессор. Он представлял собой полноценный процессор Intel 486 DX с несколько измененной распиновкой.


.2 Математический сопроцессор


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


Рис.1.Математический сопроцессор


Несмотря на то, что практически все процессоры, начиная с 486-го, оснащены встроенным сопроцессором, их быстродействие может изменяться. Исторически сложилось так, что сопроцессоры производства Intel работают быстрее, чем сопроцессоры AMD и Cyrix, однако в последнее время ситуация начинает изменяться.

Модуль операций с плавающей запятой (или с плавающей точкой) - часть процессора для выполнения широкого спектра математических операций над вещественными числами.

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

Математические сопроцессоры называют ещё процессорами с плавающей запятой, потому что они особенно ярко проявляют свои возможности в этой области математики. Числа с плавающей запятой часто используются в научных расчетах и представляются, как правило, мантиссой и ординатой. Преимущество, получаемое от установки математического сопроцессора, зависит от того какие задачи решаются на компьютере. Согласно утверждению Intel сопроцессор может уменьшить время выполнения математических операций, таких как умножение, деление, возведение в степень на 80% и более. Скорость выполнения простых операций, таких как сложение и вычитание практически не уменьшается.

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

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

Микропроцессоры 8088, 80286, 80386 сконструированы так, что они позволяют использовать арифметические сопроцессоры 8087, 80287, 80387 фирмы "Intel"-соответственно. Более поздние модели микропроцессоров имеют встроенные сопроцессоры.

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

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

Простым "целочисленным" процессорам для работы с вещественными числами и математическими операциями требуются соответствующие процедуры поддержки и время для их выполнения. Модуль операций с плавающей запятой поддерживает работу с ними на уровне примитивов - загрузка, выгрузка вещественного числа (из специализированных регистров) или математическая операция над ними выполняется одной командой, за счёт этого достигается значительное ускорение таких операций. Внутри FPU числа хранятся в 80-битном формате с плавающей запятой, для записи же или чтения из памяти могут использоваться:

вещественные числа в трёх форматах: коротком (32 бита), длинном (64 бита) и расширенном (80 бит).

двоичные целые числа в трёх форматах: 16, 32 и 64 бита.

упакованные целые десятичные числа (BCD) числа - длина максимального числа составляет 18 упакованных десятичных цифр (72 бита).также поддерживает специальные численные значения:

деморализованные вещественные числа - числа, которые меньше минимального нормализованного числа. При формировании такого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение (10);

бесконечность (положительная и отрицательная), возникает при делении на нуль ненулевого значения, а также при переполнениях. При формированиитакого значения в некотором регистре стека в соответствующем этому регистру теге регистра TWR формируется специальное значение (10).

-нечисло <#"justify">Специальный процессор, который настроен на выполнение математических операций и реализует их во много раз быстрее, чем центральный процессор. Таким образом, была получена возможность наращивать производительность центрального процессора за счет специального модуля - математического сопроцессора. Не в пример центральному процессору, математический сопроцессор не держит под управлением основную массу цепей компьютера. Наоборот, вся деятельность математического сопроцессора определяется центральным процессором, который может посылать математическому сопроцессору команды на выполнение программ и формирование результатов. В обычном режиме центральный процессор выполняет все функции компьютера. И лишь, когда встречается задача, с которой лучше справится математический сопроцессор, ему выдаются данные и команды, а центральный процессор ожидает результаты. К таким задачам относятся, например, математические операции между вещественными числами (операции между числами с плавающей запятой), где числа представлены мантиссой и ординатой (десятичная степень числа, определяющая положение десятичной запятой). Если раньше, в компьютерах первых поколений (i80386, i80486) модуль математического сопроцессора устанавливался на материнскую плату в виде отдельного чипа, то в современных компьютерах использование математического сопроцессора, как отдельного чипа, не требуется, поскольку он уже встроен в центральный процессор. Преимущества, которые вы получаете от использования математического сопроцессора, зависят от того, какие задачи решаются на персональном компьютере.

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


1.3 Математический сопроцессор х87


Математический сопроцессор x87 - это специальный набор инструкций для работы с математическими вычислениями, являющийся подмножеством архитектуры процессоров x86. Такое название он получил, потому что первоначальные отдельные математические сопроцессорные чипы имели названия, заканчивающиеся на 87. Как и другие расширения базового набора инструкций процессора, эти инструкции не являются строго необходимыми для построения рабочей программы, но будучи аппаратно реализованными, общие математические задачи они позволяют выполнять гораздо быстрее. Например, в наборе инструкции x87 присутствуют команды для расчета значений синуса или косинуса.


1.4 Математические сопроцессоры Intel семейства x86


Для математических сопроцессоров семейства x86 с 8086,8088 по 386, модуль операций с плавающей запятой был выделен в отдельную микросхему, называемую математическим сопроцессором.

Математический сопроцессор не является полноценным процессором, так как не умеет делать многих необходимых для этого операций (например, не умеет работать с программой и вычислять адреса памяти), являясь всего лишь придатком центрального процессора. Одна из схем взаимодействия центрального процессора и сопроцессора, применяемая, в частности, в x86 сопроцессорах, реализуется следующим образом:

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

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

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

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

Начиная, с процессора Intel486DX модуль операций с плавающей запятой интегрирован в центральный процессор и назван FPU(блок, производящий операции с плавающей точкой (часто говорят запятой) или математический сопроцессор.) В линейке Intel486SXмодуль FPUотключался (поначалу в эту линейку попадали процессоры с бракованный FPU)

Для процессоров Intel486SX также выпускался сопроцессор Intel487SXно, фактически, он являлся процессором Intel486DX и при его установке процессор Intel486SX отключался.

Несмотря на интеграцию, FPU в процессорах i486 представляет собой неизменный сопроцессор, выполненный на том же кристалле, более того, схема FPU i486 полностью идентична сопроцессору предыдущего поколения 387DX вплоть до тактовой частоты (в два раза меньшей, чем частота центрального процессора).

Настоящая интеграция FPU c центральным процессором началась только в процессорах Pentium модели MMX.


1.5 Математические сопроцессоры x86 от сторонних производителей


Широкое распространение в соответствующий период получили сопроцессоры для платформы x86, выпускавшиеся компанией Weitek - ею были выпущены 1167, 2167 в виде набора микросхем и микросхемы 3167, 4167, для процессоров 8086 <#"justify">.6 Другие платформы


Аналогично,материнские платы ПК, построенных на процессорах Motorola <#"138" src="doc_zip5.jpg" />

Рис. 5


Как правило, в качестве FPU использовался сопроцессор 68881 16 МГц или 68882 25 МГц. Практически любой современный процессор имеет встроенный сопроцессор.

Компания Weitek также выпускала математические сопроцессоры для платформ 68000 и MIPS.



1.7 Устройство FPU


Все процессоры Intel <#"justify">1.8 Классификация команд математического сопроцессора


Классификация команд математического сопроцессора:

команды передачи данных;

вещественные данные;

целочисленные данные;

- десятичные данные;

- загрузка констант (0, 1, число Пи, log2(10), log2(e), lg(2), ln(2));

обмен;

условная пересылка (Pentium II/III);

команды сравнения данных;

анализ;

c нулём;

условное сравнение (Pentium II/III);

арифметические команды;

вещественные данные: сложение, вычитание, умножение, деление;

целочисленные данные: сложение, вычитание, умножение, деление;

вспомогательные арифметические команды (квадратный корень, модуль, изменение знака, выделение порядка и мантиссы);

трансцендентные команды;

тригонометрия: синус, косинус, тангенс, арктангенс;

вычисление логарифмов и степеней;

команды управления;

инициализация сопроцессора;

работа со средой;

работа со стеком;

переключение режимов.



1.9 Типы математических сопроцессоров


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


Таблица 1

Главные типы данных и команды математического сопроцессора

КомандыТипРазрядностьЗагрузка, запоминание, сравнение, сложение, вычитание, умножение, делениеЦелое16,32,64 битЗагрузка, запоминаниеУпакованное десятичное18 цифрЗагрузка, запоминание, сложение, вычитание, умножение, делениеДействительное32,64 битСложение, вычитание, умножение, деление, извлечение квадратного корня и других операцийПромежуточное действительное80 бит


1.10 Система команд сопроцессора


Команды передачи данныхисточник - загрузка вещественного числа из памяти в вершину стека сопроцессора;приемник-сохранение вещественного числа из вершины стека сопроцессора в память. Сохранение числа в памяти не сопровождается выталкиванием его из стека, то есть текущая вершина стека сопроцессора не изменяется (поле top не изменяется);приемник - сохранение вещественного числа из вершины стека сопроцессора в память. В отличие от предыдущей команды, происходит выталкивание вещественного числа из стека после его сохранения в памяти. Команда изменяет поле top, увеличивая его на единицу. Вследствие этого, вершиной стека становится следующий, больший по своему физическому номеру, регистр стека сопроцессора.источник - загрузка целого числа из памяти в вершину стека сопроцессора;приемник - сохранение целого числа из вершины стека сопроцессора в память. Сохранение целого числа в памяти не сопровождается выталкиванием его из стека, то есть текущая вершина стека сопроцессора не изменяется;приемник - сохранение целого числа из вершины стека в память. Аналогично сказанному выше о команде fstp, последним действием команды является выталкивание числа из стека с одновременным преобразованием его в целое значение.источник - загрузка десятичного числа из памяти в вершину стека сопроцессора;приемник - сохранение десятичного числа из вершины стека сопроцессора в области памяти. Значение выталкивается из стека после преобразования его в формат десятичного числа.st(i) - обмен значений между текущей вершиной стека и регистром стека сопроцессора st(i).

Команды загрузки констант- загрузка нуля в вершину стека сопроцессора;- загрузка единицы в вершину стека сопроцессора;- загрузка числа p в вершину стека сопроцессора;t - загрузка двоичного логарифма десяти в вершину стека сопроцессора;e - загрузка двоичного логарифма е в вершину стека сопроцессора;- загрузка десятичного логарифма двух в вершину стека сопроцессора;- загрузка натурального логарифма двух в вершину стека сопроцессора.

Команды сравнения данных[операнд_в_памяти] - команда без операндов сравнивает два значения: одно находится в регистре st(0), другое в регистре st(1). Если указан [операнд_в_памяти], то сравнивается значение в регистре st(0) стека сопроцессора со значением в памяти;операнд - команда сравнивает значение в вершине стека сопроцессора st(0) со значением операнда, который находится в регистре или в памяти. Последним действием команды является выталкивание значения из st(0);операнд - команда аналогична по действию fcom без операндов, но последним ее действием является выталкивание из стека значений обоих регистров st(0) и st(1);операнд_в_памяти - команда сравнивает значение в вершине стека сопроцессора st(0) с целым операндом в памяти. Длина целого операнда 16 или 32 бита, то есть целое слово и короткое целое;операнд - команда сравнивает значение в вершине стека сопроцессора st(0) с целым операнлом в памяти. После сравнения и установки бит с3-с0 команда выталкивает значение из st(0). Длина целого операнда 16 или 32 бита, то есть целое слово и короткое целое.- команда не имеет операндов и сравнивает значения в st(0) со значением 00.st(i) - команда сравнивает значения (без учета их порядков) в регистрах стека сопроцессора st(0) и st(i);st(i) - команда сравнивает значения (без учета их порядков) в регистрах стека сопроцессора - в st(0) и st(i). Последним действием команды является выталкивание значения из вершины стека;st(i) - команда сравнивает значения (без учета их порядков) в регистрах стека сопроцессора - в st(0) и st(i). Последние два действия команды одинаковы - выталкивание значения из вершины стека.

Арифметические команды

Целочисленные арифметические командыисточник - команда складывает значения st(0) и целочисленного источника, в качестве которого выступает 16- или 32-разрядный операнд в памяти. Результат сложения запоминается в регистре стека сопроцессора st(0);источник - команда вычитает значение целочисленного иточника из st(0). Результат вычитания запоминается в регистре стека сопроцессора st(0). В качестве источника выступает 16- и ли 32-разрядный целочисленный операнд в памяти;источник - команда умножает значение целочисленного источника на содержимое st(0). Результат умножения запоминается в регистре стека сопроцессора st(0). В качестве источника выступает 16-ти или 32-разрядный целочисленный операнд в памяти;источник - команда делит содержимое st(0) на значение целочисленного источника. Результат деления запоминается в регистре стека сопроцессора st(0). В качестве источника выступает 16- или 32-разрядный целочисленный операнд в памяти.источник - команда вычитает значение st(0) из целочисленного источника. Результат вычитания запоминается в регистре стека сопроцессора st(0). В качестве источника выступает 140 или 32- разрядный целочисленный операнд в памяти;источник - команда делит значение целочисленного источника на содержимое st(0). Результат деления запоминается в регистре стека сопроцессора st(0). В качестве источника выступает 16- или 32-разрядный целочисленный операнд в памяти.

Вещественные арифметические команды- команда складывает значение в st(0) и st(1). Результат сложения запоминается в регистре стека сопроцессора st(0);источник - команда складывает значения st(0) и источника, представляющего адрес ячейки памяти. Результат сложения запоминается в регистре стека сопроцессора st(0);st(i),st - команда складывает значение в регистре стека сопроцессора st(0) со значением в вершине стека st(0). Результат сложения запоминается в регистре t(0).st(i),st - команда поизводит сложение вещественных операндов аналогично команде fadd st(i), st. Последним действием команды является выталкивание значения из вершины стека сопроцессора st(0). Результат сложения остается в регистре st(i-1).- команда вычитает значение в st(1) из значения в st(0). Результат вычитания запоминается в регистре стека сопроцессора st(0). Результат вычитания запоминается в регистре стека сопроцессора st(0);источник - команда вычитает значение источника из значения в st(0). Источник представляет адрес ячейки памяти, содержащей допустимое вещественное число. Результат сложения запоминается в регистре стека сопроцессора st(0);st(i),st - команда вычитает значение в вершине стека st(0) из значения в регистр стека сопроцессора st(i). Результат вычитания запоминается в регистре стека сопроцессора st(i);st(i), st - команда вычитает вещественные операнды аналогично команде fsubp st(i),st. Последним действием команды является выталкивание значения из вершины стека сопроцессора st(0). Результат вычитания остается в регистре st(i-1).st(i), st - команда вычитает значения в вершине стека st(0) из значения в регистре стека сопроцессора st(i). Результат вычитания запоминается в вершине стека сопроцессора - регистре st(0);st(i), st - команда производит вычитание подобно команде fsubr st(i),st. Последним действием команды является выталкивание значения из вершины стека сопроцессора st(0). Результат вычитания остается в регистре st(i-1).- команда не имеет операндов. Умножает значения в st(0) на содержимое в st(1). Результат умножения запоминается в регистре стека сопроцессора st(0);st(i) - команда умножает значение в st(0) на содержимое регистра стека st(i). Результат умножения запоминается в регистре стека сопроцессора st(0);st(i), st - команда умножает значения в st(0) на содержимое произвольного регистра стека st(i). Результат умножения запоминается в регистре стека сопроцессора st(i);st(i), st - команда производит умножение подобно команде fmul st(i), st. Последним действием команды является выталкивание значения из вершины стека сопроцессора st(0). Результат умножения остается в регистре st(i-1).- команда (без операндов ) делит содержимое регистра st(0) на значение регистра сопроцессора st(1). Результат деления запоминается в регистре стека сопроцессора st(0);st(i) - команда делит содержимое регистра st(0) на содержимое регистра сопроцессора st(i). Результат деления запоминается в регистре стека сопроцессора st(0);st(i), st - команда производит деление аналогично команде fdiv st(i), но результат деления запоминается в регистре стека сопроцессора st(i);st(i), st - команда производит деление аналогично команде Fdiv st(i), st. Последним действием команды является выталкивание значения из вершины стека сопроцессора st(0). Результат деления остается в регистре st(i-1).st(i), st - команда делит содержимое регистра st(i) на содержимое вершины регистра сопроцессора st(0). Результат деления запоминается в регистре стека сопроцессора st(0);st(i), st - команда делит содержимое регистра st(i) на содержимое вершины регистра сопроцессора st(0). Результат деления запоминается в регистре стека сопроцессора st(i), после чего производится выталкивание содержимого st(0) из стека. Результат деления остается в регистре st(i-1).

Дополнительные арифметические команды- вычисление квадратного корня из значения, находящегося в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат вычисления помещается в регистр st(0). Следует отметить, что данная команда обладает определенными достоинствами. Во-первых, результат извлечения достаточно точен, во-вторых, скорость исполнения чуть больше скорости выполнения команды деления вещественных чисел fdiv;- вычисление модуля значения, находящегося в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат вычисления помещается в регистр st(0);- изменение знака значения, находящегося в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат вычисления помещается обратно в регистр st(0). Отличие команды fchs от команды fabs в том, что команда fchs только инвертирует знаковый разряд значения в регистре st(0), не меняя значения остальных бит. Команда вычисления модуля fabs при наличии отрицательного значения в регистре st(0), наряду с инвертированием знакового ряда, выполняет изменение остальных бит значения таким образом, чтобы в st(0) получилось соответствующее положительное число.- команда выделения порядка и мантиссы значения, находящегося в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат выделения помещается в два регистра стека - мантисса в st(0), а порядок в st(1). При этом мантисса представляется вещественным числом с тем же знаком, что и у исходного числа, и порядком равным нулю. Порядок, помещенный в st(1), представляется как истинный порядок, то есть без константы смещения, в виде вещественного числа со знаком и соответствует величине p формулы A=(±M)*N±(p).- команда масштабирования - изменяет порядок значения, находящегося в вершине стека сопроцессора - регистре st(0) на величину в st(1). Команда не имеет операндов. Величина в st(1) рассматривается как число со знаком. Его прибавление к полю порядка вещественного числа в st(0) означает его умножение на величину 2st(0).- команда округления до целого значения - округляет значение находящееся в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов.

Команды трансцендентных функций- команда вычисляет косинус угла находящийся в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат возвращается в регистр st(0).- команда вычисляет синус угла находящийся в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат возвращается в регистр st(0).- команда вычисляет синус и косинус угла находящиеся в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат возвращается в регистры st(0) и st(1). При этом синус помещается в st(0), а косинус в st(1).- команда вычисляет частичный тангенс угла находящийся в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат возвращается в регистры st(0) и st(1).- команда вычисляет частичный арктангенс угла находящийся в вершине стека сопроцессора - регистре st(0). Команда не имеет операндов. Результат возвращается в регистры st(0) и st(1).- команда получения частичного остатка от деления. Исходные значения делимого и делителя размещаются в стеке - делимое в st(0), делитель в st(1). Делитель рассматривается как некоторый модуль. Поэтому в результате работы команды получается остаток от деления по модулю. Но произойти это может не сразу, так как этот результат, в общем случае, достигается за несколько производимых подряд обращений к команде fprem. Это происходит, если значения операндов сильно различаются. Физическая работа команды заключается в реализации хорошо известного действия: деления в столбик. При этом каждое промежуточное деление осуществляется отдельной командой fprem. Цикл, центральное место в котором занимает команда fprem, завершается, когда очередная полученная разность в st(0) становится меньше значения модуля в st(1). Судить об этом можно по состоянию флага c2 в регистре состояния SWR:

Если с2=0, то работа команды fprem полностью завершена, так как разность st(0) меньше значения модуля в st(1);

Если с2=1, то необходимо продолжить выполнение команды fprem, так как разность st(0) больше значения модуля в st(1);xm1 - команда вычисления значения функции y=2x-1. Исходное значение x размещается в вершине стека сопроцессора в регистре st(0) и должно лежать в диапазоне -1ЈxЈ1. Результат y замещает x в регистре st(0). Эта команда может быть использована для вычисления различных показательных функций.x - команда вычисления значения функции z=ylog2(x). Исходное значение х размещается в вершине стека сопроцессора, а исходное значение y - в регистре st(1). Значение х должно лежать в диапазоне 0ЈxЈ+Ґ, а значение у - в диапазоне -ҐЈуЈ+Ґ. Перед тем как осуществить запись результата z в вершину стека, команда fy12x выталкивает значение х и у из стека и только после этого производит запись z в регистр st(0).xp1 - команда вычисления значения функции z = ylog2(x+1). Исходное значение х размещается в вершине стека сопроцессора - регистре st(0), а исходное значение y - в регистре st(1). ). Значение х должно лежать в диапазоне 0ЈxЈ1-1/Ц2, а значение у - в диапазоне -ҐЈуЈ+Ґ. Перед тем как осуществить запись результата z в вершину стека, команда fy12xp1 выталкивает значение х и у из стека и только после этого производит запись z в регистр st(0).

Команды управления сопроцессором/ fwait - команда ожидания, предназначена для синхронизации работы процессора и сопроцессора./ fninit - команда инициализации сопроцессора.



2. Специальная часть


2.1 Подключение математического сопроцессора


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

В данное время многие персональные компьютеры продаются с уже установленными сопроцессорами. Чтобы узнать, установлен ли на компьютере сопроцессор, можно воспользоваться любой диагностической программой, например, CheckIt или Microsoft Diagnostics.

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

При выборе математического сопроцессора, необходимо убедится, что он совместим центральным процессором и соответствует стандарту ANSI/IEEE-754-1985. Лучше всего ознакомиться с документацией на системную плату и сопроцессор. В табл.2 перечислены совместимые пары центральных процессоров и арифметических сопроцессоров.


Таблица 2

Совместимые пары центральных процессоров и арифметических сопроцессоров

Центральный процессорАрифметический сопроцессор80386DX80387DX, Weitek 316780386SX80387SX80486SX80487SX


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


Таблица 3

Модели математических сопроцессоров и их тактовая частота

Математический сопроцессорТактовая частота, Мгц80387DX-161680387DX-202080387DX-252580387DX-333380387DX-4040

Отключить питание компьютера и открыть корпус. На системной плате нужно найти большую пустую панельку для сопроцессора. Для сопроцессоров 387DX эта панелька имеет квадратную форму. По ее периметру в два или три ряда расположены отверстия выводов. На рис.7 показаны отверстия выводов. Сопроцессоры серии 80387SX имеют планарные корпуса без штырьковых выводов. На рис.8 показана панель для крепления


Рис. 7 Отверстия выводов


Рис. 8. Панель для сопроцессора 80387SX


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

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


Рис. 8 Внешний вид сопроцессора


Неиспользованные выводы предназначены для установки других моделей сопроцессоров, которые имеют большее количество выводов, чем 80387DX. В качестве такого сопроцессора может быть использован, например, Weitek 3167.

Перед тем как вставлять сопроцессор в панель, нужно проверить все его выводы. Если они искривились, аккуратно выпрямите их.

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

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


.2 Принцип работы математического сопроцессора


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

Для вычислений сопроцессор первоначально загружает одно число в один регистр, а второе число - во второй регистр. Затем он читает программную команду, говорящую, какую операцию нужно выполнить над этими двумя числами. Эта команда запускает другую миниатюрную программу, выполняемую внутри чипа сопроцессора. Данная программа и заставляет его найти искомый результат. Множество внутренних команд сопроцессора, предназначенных для выполнения различных операций, понятных сопроцессору, называется его микрокодом (как это имеет место и для простого процессора).

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

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

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

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

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

Для вычислений сопроцессор первоначально загружает одно число в один регистр, а второе число - во второй регистр. Затем он читает программную команду, говорящую, какую операцию нужно выполнить над этими двумя числами. Эта команда запускает другую миниатюрную программу, выполняемую внутри чипа сопроцессора. Данная программа и заставляет его найти искомый результат. Множество внутренних команд сопроцессора, предназначенных для выполнения различных операций, понятных сопроцессору, называется его микрокодом (как это имеет место и для простого процессора).

Синхронизация по командам при работе арифметического сопроцессора.

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

Синхронизация по данным при работе арифметического сопроцессора.

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

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

Математический сопроцессорпредназначен для быстрого выполнения арифметических операций с плавающей точкой, предоставления часто используемых вещественных констант (log210,log2e,ln2), вычисления тригонометрических и прочих трансцендентных функций (tg,arctg,log).

Большинство современных математических сопроцессоров для представлениявещественныхчиселиспользуютстандарт IEEE 754-198.Старший разряд двоичного представления вещественного числа всегда кодирует знак числа.

Остальная часть разбивается на две части экспоненту и мантисса. Вещественное число вычисляется как:(-1)S·2E·M,где S - знаковый бит числа, Е - экспонента, М - мантисса.

<=M<2, то такое число называется нормализованным. При хранении нормализованных чисел сопроцессор отбрасывает целую часть мантиссы (она всегда 1), сохраняя лишь дробную часть. Экспонента кодируется со сдвигом на половину разрядной сетки, таким образом, удается избежать вопроса о кодировании знака экспоненты. Т.е. при 8-битной разрядности экспоненты код 0 соответствует числу -127, 1 - числу -126, ..., 255 числу +126 (экспонента вычисляется как код 127).

Стандарт IEEE-754 определяет три основных способа кодирования (типа) вещественных чисел:

вещественное ординарной точности;

вещественное двойной точности;

вещественное расширенной точности.

Стандарт IEEE 754 - широко распространённый стандарт формата представления чисел с плавающей точкой, используемый как в программных реализациях арифметических действий, так и во многих аппаратных (CPU и FPU) реализациях. Многие компиляторы языков программирования используют этот стандарт для хранения данных и выполнения математических операций.

Однако сопроцессор может производить обмен информацией с оперативной памятью, используя при этом адреса, сформированные в микропроцессоре. Стандартное соединение ВМ86 и ВМ87 приведено на рис. 6.


Рис. 6 Стандартное соединение ВМ86 и ВМ87


После прихода сигнала RESET (сброс) сопроцессор анализирует сигнал на линии BHE(выходной сигнал разрешения старшего байта шины данных), выясняя с каким микропроцессором он работает. Для ВМ86 на этой линии в первый момент будет ноль, а для ВМ88 - единица. После этого сопроцессор переходит в пассивное состояние.

Микропроцессор читает из оперативной памяти команды и заносит их в свою внутреннюю очередь. Сопроцессор эти команды перехватывает и также заносит их в свою внутреннюю очередь. В любой момент времени ситуация в обеих очередях должна быть одинаковой, поэтому сопроцессор следит за изменениями в очереди по линиям QS 1-0(входной сигнал кода состояния очереди команд).

Когда ВМ87 перехватывает команду, являющуюся командой сопроцессора, он начинает переходить в активный режим. Полностью активным он становится, когда микропроцессор начинает выполнять его команду.

Система команд сопроцессора включает в себя более 80 команд, однако микропроцессор воспринимает все их как одну команду esc (escape). С точки зрения микропроцессора имеется 3 разновидности этой команды.

команда работает с внутренними регистрами сопроцессора и не требует обращения к оперативной памяти. ВМ86 и ВМ87 одновременно начинают выполнение этой команды. При этом ВМ86 выполняет ее как команду nop (nooperation) и переходит к выполнению следующей команды программы, а ВМ87 продолжает правильное выполнение заданной команды. Далее оба процессора работают параллельно.

команда читает операнд, из оперативной памяти заносит его во внутренний регистр сопроцессора. Адрес перехватывает сопроцессор и заносит его в свой специальный внутренний регистр. Из оперативной памяти по выставленному адресу считывается слово, которое сопроцессор принимает, а микропроцессоригнорирует. Далее микропроцессор переходит к выполнению следующей команды программы. Операнды сопроцессора занимают в памяти до 10-ти байт, поэтому оставшийся "хвост" операнда сопроцессор должен считать самостоятельно. Для этих целей сопроцессор запрашивает у микропроцессора шину по линии RQ/GT и считывает остаток операнда из оперативной памяти, используя перехваченный адрес.

команда заносит в память содержимое внутреннего регистра сопроцессора. ВМ86 вырабатывает адрес, который перехватывает сопроцессор. По этому адресу из оперативной памяти считывается слово, которое игнорируют оба процессора. Затем ВМ87 запрашивает шину по линии RQ/GT и производит запись в оперативную память, используя перехваченный адрес.

Команды сопроцессора сложны, и для их выполнения требуется много времени. Поэтому высока вероятность того, что к началу выполнения следующей команды сопроцессора последний не успеет завершить выполнение предыдущей команды. Перед командами сопроцессора в программах рекомендуется ставить команду wait (ждать). Эта команда проверяет сигнал на входе TEST и, если там стоит единица, микропроцессор ждет, пока на входе TEST не появится ноль. Сигнал на вход TEST заводится с выхода BUSY (занят) сопроцессора. При этом если на BUSY стоит единица, значит ВМ87 занят выполнением команды.


2.3 Функции математического сопроцессора


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

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

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

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

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



3. Экономическая часть


.1 Расчет себестоимости рабочего места техника


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

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

-затраты на оплату труда;

-отчисления на социальные нужды;

-амортизация основных фондов и НМА;

-материальные затраты;

-затраты на электроэнергию;

-прочие затраты.

Расчет фонда заработной платы

Затраты на оплату труда включают:

оплату труда основного производственного персонала, включая премии за производственные результаты;

стимулирующие и компенсирующие выплаты, в том числе в связи с повышением цен и индексацией доходов в пределах норм предусмотренными законодательством;

отчисления на социальные нужды в размере 30% от годового фонда оплаты труда.

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

Расходы на оплату труда определяются по формуле:


Фот = (До + å Д) Рк ? Тк, (1)


где, До - должностной оклад, руб.;

å Д - сумма доплат, руб.;

Рк - коэффициент районного регулирования заработной платы - 1,4к - календарный фонд времени, мес.

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


Фот =(12200+3660)1,4Ч12 = 2204 руб.


Расчет отчислений на социальные нужды(Зсн)

ЗСН выплачивается предприятием в пенсионные и социальные фонды РФ в соответствии с Федеральным законом от 20.07.04 №70-ФЗ. С изменениями и дополнениями 2014 год. Сумма затрат составляет в размере 30% от годового фонда заработной платы.


Зсн= 30 ? Фот /100 (2)

Зсн = 30 Ч 22204 / 100 =6661 руб.


Основные производственные фонды

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

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

Амортизация основных фондов

К амортизации основных фондов относится все амортизационные отчисления по основным средствам за отчетный период.

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

Размер амортизационных отчислений определяется на основе норм амортизационных отчислений и положения о порядке планирования, начислений и использования начислений.

Расчет амортизационных отчислений АО, руб. производится по формуле


АО = ОФбал ?Na: 100 (3)


где, ОФбал - балансовая стоимость, руб.;- норма амортизации, %.

Пример расчета амортизационных отчислений для персонального компьютера


АО = 23839Ч2,5/100:12 =198 руб.


Остальные расчеты сведены в табл. 1


Таблица 1

Расчет амортизационных отчислений

Наименование и маркаоборудованияКолвоБалансовая стоимость, руб.Нормаамортизации, %Сумма, руб.одноговсехКомпьютер Atlon1238392383910198Принтер лазерный НР15282528233,3146Источник бесперебойного питания: APCSmartBoy 110014686468640156Кондиционер LG1294992949933811Кресло офисное1345634563395Компьютерный стол110880108801090Хоз. инвентарь (инструменты, запчасти)22800Итого24296Неучтенное оборудование, 10%2429Всего26725

Расчет амортизации нематериальных активов (НМА)

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

Пример амортизации нематериальных активов


АОнма = 1Ч3650Ч10/100/12 = 30 руб.


Остальные расчеты аналогичны и сведены в табл. 3


Таблица 2. Расчет амортизации нематериальных активов (НМА)

Наименование программыКол-воБалансовая стоимостьНормаамортизацииСумма ,руб.однойвсехАнтивирусКасперского 20141365036501030Windows 7 Basic1147601476028119Microsoft office 20101510051001563Turbo pascal1252225221531Итого251Неучтененные НМА25Всего277

Расчет стоимости материалов

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

Стоимость единицы материалов устанавливается по прейскуранту оптовых цен с учетом транспортных и заготовительно-складских расходов.

Стоимость материалов З м руб. определяется по формуле


Зм=Рг?Цед, (4)


где Рг - расход материалов;

Цед - цена за единицу, руб.

Пример расчета стоимости компьютерной мыши


Зм = 1Ч480 = 480 руб.


Остальные расчеты аналогичны, результаты расчетов сводятся в табл. 3.


Таблица 3

Расход и стоимости материалов

Наименование и марка материалаЕдиница измеренияРасход в месЦена за единицу, руб.Сумма в мес, руб.Расходные материалы к оргтехнике: - набор для раб. мест - мышь - картридж - бумага А4 шт. шт. шт. шт. 0,1 1 0,1 1 1210 480 1840 425 121 480 184 425- хозяйственный инвентарь (для уборки помещения, инструменты.)110001000ИтогоНеучтенные материалы, 10 %.775Всего8530

Расчет стоимости электроэнергии

Расчет стоимости электроэнергии производится по формуле


Зэл.= N ? tсут ? Тэф?Кз ?Тэл, (5)


где Зэл. - затраты на электроэнергию, руб.- мощность потребителя, кВт.

Тэф-эффективное время работы время работы потребителя, дней.

Кз - коэффициент, учитывающий загрузку потребителя по мощности.

Тэл - тариф на электроэнергию, руб./квт.час

Расчет затрат на электроэнергию производится для компьютеров


Зэл=1Ч0,30Ч3Ч25.4Ч0,25Ч3,95=567 руб.


Остальные расчеты аналогичны и сводятся в табл.5



Таблица 5

Расчет стоимости электроэнергии для оборудования.

ПотребителиМощностьВремя рабочие в сутки, час.Эффективное время работы, дниКоэффициент загрузки,%Общий расход электроэнергииТариф, руб.СтоимостьКомпьютер0,30325,40,25113,9545Принтер0,230,525,40,2513,954Кондиционер0,25425,40,2563,9523ИБП0,25325,40,2553,9519Итого91


Прочие расходы

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

Определяются прочие затраты Зпроч, руб. по формуле


(6)


Расчет себестоимости

Себестоимость рабочего места Срм, руб. определяется по формуле



где - совокупность затрат, руб.;



Данные предыдущих расчетов сводятся в табл. 6


Таблица 5

Себестоимость рабочего места

Элементы затратЗатрат итого, руб.Расходы на оплату труда2204Отчисления на соц. нужды6661Амортизационные отчисления26725Материальные затраты8530Расходы электроэнергии91Прочие расходы, 15%отФот330Амортизация НМА277Всего44468

.2 Заключение по экономической эффективности


Для оценки уровня эффективности работы предприятия получаемый результат сопоставляется с затратами или используемыми ресурсами.

Расчеты показали, что затраты на себестоимость рабочего места техника составило 44468 рублей.

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



Заключение


В данной дипломной работе, была изучена тема "Функции и принцип работы математических сопроцессоров", посредствам решения конкретных задач, а именно были закреплены знания:

общие понятия о математических сопроцессоров;

принцип работы математического сопроцессора;

функции математического сопроцессора;

история развития математических сопроцессоров.

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



Список литературы


1. Автономов B.C. Процессоры / М.: Вита-Пресс, 2010. - 256 с.

2. Зыков Н.В. Единые требования к оформлению курсового и дипломного проекта (работы): методические указания для студентов технических специальностей: изд. 2, испр. и доп. / Н.В. Зыков. - Чита: ЗабГК, 2007. - 45 с.

. Леонтьев В.П. Новейшая энциклопедия персонального компьютера / В.П. Леонтьев. - М.: ОЛМА Медиа групп, 2011. - 928 с.

4. Мамедов О.Ю. Современные компьютеры / О.Ю. Мамедов. - М: Феникс, 2011.- 608 с.

5. Мураховский В.И. Основы процессоров / В.И. Мураховский. - М: Аст- пресс книга, 2009. - 392 с.

. Мюллер С. Все о компьютерах / С.Мюллер.- М.;Диалектис-Вильямс, 2010. - 992 с.

. Райзберг Б.А. Персональный компьютер / Б.А. Райзберг. - М.: ИНФА, 200-9. - 96 с.

8. Романов В.П. Техническое обслуживание средств вычислительной техники: учебное пособие: изд.3 / В.П.Романов. - СПб.: 2010. - 180 с.

9. Сергеев И.В. Основы ПК: учебное пособие: изд. 2 / И.В. Сергеев. - М.: Финансы и статистика, 2013. - 304 с.

10. Томпсон Р. Персональный компьютер / Р.Томпсон. - СПб.: БХВ-Петрбург, 2013. - 608 с.

. Хведюк М.А. РС для начинающих. Аппаратные средства / М.А. Хведюк. - СПб.: БХВ-Петербург, 2007. - 192 с.

. Чечевицына Л.И. ПК для новичков / Л.И. Чечевицына. - М.: Феникс, 2011. - 384 с.

. Белый В.А. Основы работы с персональный комьютером / Белый В.А. - М.: Феникс, 2011. - 334 с.



Введение Математический сопроцессор - сопроцессор для расширения командного множества центрального процессора и обеспечивающий его функциональностью моду

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

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

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

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

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