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

  • (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 вопросов, которые позволят оценить ситуацию

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

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

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

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