Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MProc / M9 / Архитектура часть 6..doc
Скачиваний:
35
Добавлен:
16.04.2013
Размер:
480.26 Кб
Скачать

6.2.5.4. Ia-32 среда с плавающей точкой

Для поддержки модели отложенного числового исключения Intel8087, регистрыFSR,FDRиFIRсодержат отложенную информация связанную с числовым исключением. РегистрFDRсодержит эффективный адрес и селектор сегмента операнда. РегистрFIRсодержит эффективный адрес, селектор кодового сегмента и биты кода операции числовой инструкции. РегистрFSRуказывает на тип числового исключения совокупностью битовIE,DE,ZE,OE,UE,PE,SFиES. БитESитожитIA-32 состояние исключения с плавающей точкой, следующим образом:

  • Если FSR.esчитается кодом типа Itanium, то возвращаемое значение является итогом любых немаскируемых отложенных исключений содержащихся в битахIE,DE,ZE,OE,UEиPEрегистраFSR.

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

  • Если FSR.esустановлен в 1 кодом типа Itanium, то задержанные числовыеIA-32 исключения генерируются на следующейIA-32 инструкции с плавающей точкой, независимо от информации числового исключения, записанной вFSRбитахIE,DE,ZE,OE,UEиPE.

  • Если FSR.esзаписан в противоречии сFSRбитами (IE,DE,ZE,OE,UEиPE), то последующие числовые исключения могут сообщить противоречивые биты состояний с плавающей точкой.

Когда программа типа Itanium загружает эти прикладные регистры (AR29,AR30), тогда, если не нулевое значение будет записано в битах, перечисленных как резервированные, то будет вызвана ошибка «Зарезервированный регистр/поле». При записи этих регистров никакие значения кодов полей не проверяются. РегистрыFSR,FDRиFIRдолжны быть сохранены, не смотря на переключение контекста, чтобы генерировать и точно сообщать числовые исключения.

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Смещение операнда (fea)

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

Резервировано (установлено в 0)

Селектор операнда (fds)

Рис. 6.10. Регистр данных с плавающей точкой (FDR)

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Смещение кода (fip)

63

62

61

60

59

58

57

56

55

54

53

52

51

50

49

48

47

46

45

44

43

42

41

40

39

38

37

36

35

34

33

32

резервировано

Код операции {10:0} (fop)

Селектор кода (fcs)

Рис. 6.11. Регистр инструкций с плавающей точкой (FIR)

6.2.6. Ia-32 регистры ммх технологии

Восемь IA-32 регистров ММХ технологии отображаются в восьми Itanium регистрах с плавающей точкойFR8-FR15, причем ММ0 отображается вFR8, а ММ7 отображается вFR15. Отображение регистра ММХ технологии для представленияIA-32 стека с плавающей точкой, зависит от значения указателя вершиныIA-32 стека с плавающей точкой

81

80

64

63

0

1

единицы

ММ0…ММ7{31:0}

FR8-FR15

Рис. 6.12. IA-32 регистры ММХ технологии (от ММ0 до ММ7)

  • Когда значение, записанное в регистр ММХ технологии, используется IA-32 инструкцией ММХ технологии:

    • В поле порядка соответствующего регистра с плавающей точкой (биты 80-64) и в знаковом бите (бит 81), все биты устанавливаются в единицы.

    • Мантисса (биты 63-0) устанавливается в значение данных технологии ММХ.

  • Когда из регистра ММХ технологии считывается значение с помощью IA-32 инструкции ММХ технологии:

    • Поле порядка соответствующего регистра с плавающей точкой (биты 80-64) и знаковый бит (бит 81) игнорируются, включая любые коды NaTVal.

В результате этого отображения мантисса значения с плавающей точкой, записанного либо IA-32, либо Itanium инструкциями, проявится вIA-32 регистре ММХ технологии. Также,IA-32 регистр технологии ММХ проявится в поле мантиссы одного из восьми отображаемых регистров с плавающей точкой.

Чтобы избежать деградации эффективности, программистам настоятельно советуется не смешивать IA-32 инструкции с плавающей точкой и ММХ технологии. Детальнее рекомендации по программированию ММХ технологии см. в Intel Architecture Software Developer's Manual.