Конференции ИВТ СО РАН


«Вычислительные и информационные технологии
в науке, технике и образовании»

Алматы, Казахстан, 6 – 10 октября 2004 года

Тезисы докладов


Эффективная реализация арифметики с плавающей запятой в виртуальной Java-машине для процессоров Intel x86

Сухарев В.В., Павлов П.Е.

ИСИ СО РАН (Новосибирск)

В настоящее время язык Java находит всё большее применение в сфере вычислительных технологий. Это обуславливается такими факторами, как
1) полной переносимостью созданных программ на любую архитектуру, на которую перенесена платформа Java, с сохранением аболютной предсказуемости результатов вычислений, в том числе и вещественных;
2) лавинообразное увеличение количества и улучшение качества всевозможных библиотек и средств разработки;
3) всё увеличивающуюся производительность исполнителей Java-программ (Java-машин).

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

Спецификация арифметики с плавающей запятой языка Java[1] является надмножеством с некоторыми ограничениями стандарта IEEE-754 [2], поддерживаемого в широком спектре современных вычислительных устройств и процессоров. Широко распространённое среди вычислительных рабочих станций семейство процессоров Intel x86, начиная с 80386/80387, и заканчивая Pentium IV на настоящий момент, также позволяет осуществлять вычисления согласно этому стандарту, используя различные ухищрения.

Перевод математических операций языка Java в оптимальный по быстродействию набор инструкций семейства процессоров Intel x86[3], в точном соответствии в семантикой требует решения большого количества проблем.

Данная статья содержит:
- сравнение арифметики с плавающей запятой (типы данных, набор значений, набор и семантика операций), представленной в стандарте IEEE 754, её реализации в семействе процессоров Intel x86 и спецификации языка Java.
- подходы к эффективной реализации арифметики языка Java для семейства x86.

[1] Java Language Specification, Second Edition http://java.sun.com/docs/books/jls/index.html
[2] ANSI/IEEE Standard 754-1985, Standard for Binary Floating Point Arithmetic
[3] i486 Microprocessor Programmer’s Reference Manual (c)INTEL Corporation 1990

Примечание. Тезисы докладов публикуются в авторской редакции



Ваши комментарии
Обратная связь
[ICT SBRAS]
[Головная страница]
[Конференции]

© 1996-2000, Институт вычислительных технологий СО РАН, Новосибирск
© 1996-2000, Сибирское отделение Российской академии наук, Новосибирск