Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Java в кремнії

Фірма Sun Microelectronics недавно випустила перший Java-процесор - PicoJava I. Цей процесор розроблений спеціально для найбільш ефективного виконання байт-кодів мови Java. Очевидно, що пряме виконання Java-команд усуне деякі недоліки, властиві цій технології.

Очевидно, що пряме виконання Java-команд усуне деякі недоліки, властиві цій технології

До недавнього часу Java-програми запускалися тільки на спеціальних інтерпретатора або компіляторах. У першому випадку виконання програми сильно сповільнюється, так як універсальний процесор витрачає час на перетворення Java-програм в свій власний код. У разі ж компіляції "на льоту" (Just In Time - JIT) збільшується розмір програми (рази в три або більше). Якщо комп'ютер має обмежений обсяг пам'яті, то виконання Java-програм може призвести до серйозних проблем.

Архітектура JavaChip, розроблена Sun Microelectronics, дозволяє проектувати процесори, оптимізовані для швидкого виконання Java-програм в невеликому обсязі пам'яті. Процесор PicoJava I використовує систему команд, певну специфікацією віртуальної Java-машини. Оскільки коди Java можна виконувати на новому процесорі без їх попередньої обробки, то це дозволяє уникнути інтерпретації або компіляції Java-програм.

Віртуальна Java-машина

Віртуальна Java-машина - основний механізм, визначений фірмою Sun, для управління Java-програмами. Специфікація Java-машини повністю визначає систему команд Java, типи даних, які обробляються Java-машиною, і її регістри. Оскільки більшість команд Java вміщаються в один байт, то їх часто називають байт-кодом. Для Java-машини визначені наступні типи даних: byte - байт, short - двобайтові цілі числа, integer - чотирьохбайтові цілі числа, long - восьмібайтовие цілі числа, float - чотирьохбайтові речові числа, double - восьмібайтовие речові числа, char - двобайтові символи, object - чотирьохбайтового посилання на об'єкт, returnAddress - чотирьохбайтового адресаповернення з методу,

а також такі регістри: pc - лічильник команд, vars - регістр для доступу до локальних змінних, optop - покажчик на стек операндів, frame - покажчик на структуру оточення часу виконання.

Байт-коди мови Java розроблялися для забезпечення компактності програм. Це досягається за допомогою невеликої кількості регістрів і використання покажчиків. Середня команда для Java має довжину всього 1,8 байта, а команди звичайних RISC-процесорів - близько 4 байт. Java-машина має стекову архітектуру, так як операнди передаються через регістр процесора "стек операндів". Таким чином зменшується довжина команди, так як вона займає всього один байт, супроводжуваний (якщо необхідно) номером операнда - 0, 1, 2, 3 і т. Д.

RISC-архітектура Java-процесора

При створенні процесора, який ефективно реалізує "в залізі" віртуальну Java-машину, конструктори PicoJava I використовували RISC-технологію, успішно застосовується фахівцями фірми Sun Microsystems протягом останніх 15 років. Процесор можна легко налаштувати на різну довжину кеша команд і даних, а також включити або вимкнути речовинний обчислювач.

В ядрі PicoJava I використовується конвеєрний принцип обробки команд. Процесор виконує команду за три такти, зате одночасно можуть оброблятися відразу кілька команд. Однак PicoJava I виконує за три такту не всі команди, специфіковані в Java-машині. Деякі з них реалізовані як макрокоди або виражені через інші команди. Така ієрархія виконання забезпечує ефективну роботу програм при збереженні компактності коду.

Під час роботи процесора байт-коди Java спочатку записуються в кеш команд, розмір якого може змінюватися від нуля до 16 Кб. Хоча командний кеш в PicoJava I і менше за розміром, ніж в інших RISC-процесорах, але загальний ефект залишається приблизно таким же, так як в середньому Java-команда коротше. Потім байт-коди передаються в буфер команд, який має розмір 12 байт. Одночасно в нього може бути записано не більше 4 байт, а прочитано - 5 байт. Оскільки середня довжина команд становить 1,8 байта, то за один такт в процесор може бути завантажено відразу кілька команд. П'ять початкових байт буфера команд можуть бути декодовані і передані на наступну стадію конвеєра для подальшої обробки.

У процесорі є стековий кеш, який використовується для доступу до операндів і даними. Він є аналогом набору регістрів, використовуваних в більшості RISC-процесорів. Цей стек необхідний для ефективної реалізації Java-машини. Він може містити покажчики, цілочисельні і речові дані, але отримати доступ до його вмісту можна тільки в певних точках.

У PicoJava I, як і в віртуальної Java-машині, все обчислення виконуються в стеці. Тому часто виникає ситуація, коли дані завантажуються в стек безпосередньо перед виконанням команди. Конвеєр процесора відстежує таку ситуацію і виконує операції так, як ніби дані раніше вже були завантажені в стек. Це істотно прискорює обчислення, так як команди записи даних в стек - найпоширеніші.

PicoJava I має окремий дворівневий кеш даних, довжина якого також може змінюватися від нуля до 16 Кб. У ньому зберігаються найбільш часто використовувані дані. Все спілкування з зовнішніми пристроями процесор виконує через єдиний інтерфейс введення-виведення.

продуктивність

Процесор PicoJava I розроблений для найбільш ефективного виконання Java-програм. Саме для цього були використані конвеєрна обробка команд, спільне їх виконання і стековая архітектура. Тести на продуктивність PicoJava I показують, що час і зусилля, витрачені на розробку цього процесора, не пропали даром. В еталонних тестах PicoJava I працював в 15 - 20 разів швидше, ніж 486 з інтерпретатором (з тієї ж частотою), і в 5 разів швидше Pentium з JIT-компілятором.

Мова Java розроблявся спеціально для передачі по мережах. Саме тому програми, написані на ньому, дуже компактні. А висока продуктивність PicoJava I, його гнучкі настройки і невелика вартість роблять цю технологію найбільш прийнятною для розвитку мережі. Поява Java-процесора відкриває нові можливості для використання комп'ютерних мереж та інтеграції різних платформ.

Валерій Коржов

До Валерія Коржова можна звернутися за адресою: [email protected]

Версія для друку

Новости

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

Пиротехника своими руками в домашних
Самые лучшие полезные самоделки рунета! Как сделать самому, мастер-классы, фото, чертежи, инструкции, книги, видео. Главная САМОДЕЛКИ Дизайнерские

Фольгированные шары с гелием
Для начала давайте разберемся и чего же выполнен фольгированный шар и почему он летает дольше?! Как вы помните, наши латексные шарики достаточно пористые, поэтому их приходится обрабатывать специальным

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

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

Аниматоры на детские праздники в Зеленограде
Уж сколько раз твердили миру…Что готовиться ко дню рождения нужно заранее, а не бегать в предпраздничный день угорелой кошкой. Нельзя впихнуть в 24 часа дела, рассчитанные на недели. К празднику нужно

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

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