Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1


Федеральное агентство по образованию

Федеральное государственное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет имени И.Н. Ульянова»

Технический институт

Факультет дизайна и компьютерных технологий



Кафедра компьютерных технологий
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Контрольная работа

Выполнил:

студент


Вариант

Проверил:

доцент Димитриев А.П.

Чебоксары, 2009 г.



Сопроцессор и его программирование
Сопроцессор (FPU, Floating Point Unit) как модуль для выполнения операций над числами с плавающей запятой представляет из себя специальное устройство, имеющее общий с основным процессором (CPU) доступ к потоку команд и памяти данных. Начиная с модели 80486DX сопроцессор исполняется на одной микросхеме с процессором, но остаётся логически отдельным устройством. С точки зрения программиста сопроцессор представляет из себя множество регистров и набор команд, предназначенных для обработки собственных типов данных: три целых двоичных, один целый десятичный и три – с плавающей запятой.

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




Тип данных

Число бит

К-во знач.

цифр

Диапазон

Целое слово

16

4

–32768…32767

Короткое целое

32

9

–2х109…2х109

Длинное целое

64

18

–9х1018…9х1018

Упаков. десятичное

80

18

–99..99…+99..99 (18 цифр)

Короткое веществ.

32

7

1.18х10-38…3.40х1038

Длинное веществ.

64

15-16

2.23х10-308…1.79х10308

Расшир. веществ.

80

19

3.37х10-4932…1.18х104932

Кроме обычных чисел, формат IEEE сопроцессора предусматривает несколько специальных случаев, которые могут получаться в результате математических операций, и над которыми модно выполнять отдельные операции:



  • Положительный и отрицательный ноль;

  • Положительная и отрицательная бесконечность;

  • Денормализованные числа;

  • Неопределённость;

  • Сигнальные не-числа (SNAN);

  • Спокойные (тихие) не-числа (QNAN);

  • Неподдерживаемые числа.


Регистры FPU. FPU предоставляет восемь регистров для хранения данных и 5 вспомогательных регистров.

Регистры данных (R0-R7) не адресуются по физическим именам, а рассматриваются в качестве стека, вершина которого называется ST (или ST(0)), и которая может находиться в любом физическом регистре. Её положение указывается полем TOP регистра SWR. Остальные регистры доступны программисту под именами ST(1) – ST(7). Операции могут выполняться либо между двумя операндами в вершине стека (в этом случае используется команда без операндов), либо между вершиной стека и операндом в памяти. Загрузка и выгрузка операндов всегда идет через вершину стека, при этом устанавливается новое соответствие физических и логических регистров (но программисту не надо об этом задумываться).

Регистр SWR – 16-битный регистр состояния.


бита

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Название

B

C3

TOP

C2

C1

C0

ES

SF

PE

UE

OE

ZE

DE

IE

Здесь Bбит занятости сопроцессора, C3–C0 – условные флаги, ES и SFфлаги ошибок, PEIE – флаги состояния (неточный результат, антипереполнение, переполнение, деление на ноль, денормализация результата, недопустимая операция).



Регистр CWR –16-битный регистр управления.


бита

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Название




1

RC

PC







PM

UM

OM

ZM

DM

IM

Здесь RCуправление округлением, PCуправление точностью, PMIM – маски состояний, соответствующих битам регистра SWR.


Регистр TWR – регистр тегов, каждая пара бит описывает соответствующий физический регистр данных (11 – пуст, 00 – содержит число, 01 – 0, 10 – всё остальное).

Регистр FIP – 48-битный физический адрес последней выполненной команды;

Регистр FDP – 48-битный физический адрес операнда этой команды.
Команды FPU. FPU может выполнять команды загрузки-сохранения данных, команды базовой арифметики, команды сравнения и команды вычисления трансцендентных функций (расширенная арифметика). Независимо от типов исходных данных вычисления в регистрах сопроцессора всегда выполняются над величинами в расширенном вещественном формате. На выполнение команд влияют биты управляющего регистра CWR, а индикация состояний ведётся в регистре SWR.

CPU и FPU одновременно «видят» очередную команду выполняемого потока. Сопроцессор распознаёт «свои» команды по битам 11011 в начале кода, а прочие – пропускает. Если команда содержит операнд, то сопроцессор может обратиться к процессору за требуемыми данными. После этого CPU и FPU могут работать параллельно. Для синхронизации работы CPU и FPU может потребоваться команда FWAIT, которая сейчас встроена в большинство команд сопроцессора.

Сравнения и условные переходы. Нужно помнить, что условия команд сравнения для сопроцессора записываются не в регистр флагов, а помещаются в биты C3,C2,C0 регистра SWR. С помощью команды FSTSW AX можно сохранить регистр SWR в регистре AX. Далее можно проанализировать командами логической обработки соответствующие биты в регистре AX непосредственно, организовав по ним условный переход, или же переписать регистр AH в младший байт регистра FLAGS, при этом установится следующее соответствие битов и условий:



УСЛОВИЕ

C3

C2

C0

ZF

PF

CF




ST(0) > источник

0

0

0

ST(0) < источник

0

0

1

ST(0) = источник

1

0

0

Несравнимы

1

1

1

Пример программы. Ниже даётся фрагмент программы для вычисления функции y=sinx2).

Команда комментарий

…….………………………………………..……………………………………………

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

fld x ; x→st(0).

fmul x ; st(0):=st(0)*x, st(0)=x2.

fldpi ;загрузка в st(0) константы π,

;x2 проталкивается в st(1).

fmul ; перемножение данных в st(0)и st(1);

; после этого в вершине стека – πx2.



fsin ; вычисление синуса от операнда,

; находящегося в вершине стека (st(0)).



fstp y ; запись результата в память.

…………………………………………………………………………………………..

Вероятно, к этому моменту Вы достаточно уже успели привыкнуть к правилам написания программ, чтобы по данному фрагменту написать целую программу. Если же нет – то рекомендуется заново выполнить лабораторные работы 1–3.

Задание

Для выполнения контрольной работы нужно воспользоваться вариантами заданий из приведённых ниже двух таблиц. В таблицах приведены уравнения в виде . Необходимо преобразовать их к виду , где , и составить программу вычисления значения f(x).

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

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






Теоретическая часть

  1. Уровни СПО.

  2. Языки и грамматики.

  3. Автоматы.

  4. Драйвера.

  5. Лексический анализ.

  6. Организация резидентных программ.

  7. Q-грамматики.

  8. Архитектура сопроцессора.

  9. S-грамматики.

  10. Регистры сопроцессора.

  11. LL(k)-грамматики.

  12. Форматы данных сопроцессора.

  13. Форма Бэкуса-Наура.

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

  15. Цепочки вывода.

  16. Исключения сопроцессора.

  17. Сентенциальная форма.

  18. Методы защиты программ.

  19. Схема компилятора.

  20. Методы оптимизации кода.

  21. Правый и левый выводы.

  22. Нисходящий грамматический разбор.

Вопросы из теоретической части выбираются по номеру в алфавите первой буквы фамилии. Если полученное число больше 22, из произведения отнимается 22.
Список литературы


  1. Юров В. Ассемблер. Учебник. СПб.:Питер, 2001. 624 с.: ил.

  2. А.А. Андреева. Программирование на языке «Ассемблер» для микропроцессора «Intel 80x86». Лабораторный практикум.

  3. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение. Учебник для вузов. СПб: Питер, 2003. -736 с.

Образец выполнения






Лекция 4 Программное обеспечение компьютера

Новые термины и понятия: программа, программное обеспечение, базовое программное обеспечение, системное программное обеспечение, служебное программное обеспечение, прикладное прогр

193.96kb.

10 10 2014
1 стр.


Гунько А. В. Системное программное обеспечение

Системное программное обеспечение. Конспект лекций. – Новосибирск: Изд-во нгту, 2011.– 127 с

1844.38kb.

12 09 2014
14 стр.


Системное программное обеспечение контрольная работа

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

91.58kb.

11 10 2014
1 стр.


Производственная практика

Операционные системы", "Базы данных", "Информационные технологии", "Теория принятия решений", "Системное программное обеспечение"

29.3kb.

30 09 2014
1 стр.


Аппаратные средства тело компьютера тогда, программное обеспечение

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

48.25kb.

14 12 2014
1 стр.


Программное обеспечение Гринстоун

Программное обеспечение для создания полнотекстовых коллекций (электронных библиотек) гринстоун

415.6kb.

15 10 2014
3 стр.


Программа дисциплины «Оборудование и программное обеспечение радиостудии»

Программа «Оборудование и программное обеспечение радиостудии» носит исключительно прикладной характер и являет своей целью предварительное знакомство студентов с оборудованием Уче

92.97kb.

02 10 2014
1 стр.


Рабочая учебная программа для студентов специальности 050704 «Вычислительная техника и программное обеспечение»

Рабочая программа разработана в соответствии с государственным общеобязательным стандартом образования (госо-2006г.) на основе рабочего учебного плана специальности 050704 «Вычисли

162.19kb.

15 09 2014
1 стр.