Forth http://fforum.winglion.ru/ |
|
Что такое аппаратный JAVA-процессор? http://fforum.winglion.ru/viewtopic.php?f=3&t=2830 |
Страница 1 из 1 |
Автор: | wwwalker [ Чт мар 29, 2012 19:51 ] |
Заголовок сообщения: | Что такое аппаратный JAVA-процессор? |
Я слышал про аппаратные JAVA-процессоры (вроде бы стековые), но не могу понять почему они так называются и как идеология высокоуровневого языка повлияла на особенности аппаратной реализации этого процессора. Для Паскаля или Си процессор другим бы был что ли? ) |
Автор: | Hishnik [ Чт мар 29, 2012 20:05 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
Java использует стековую модель вычислений. Процессор с регистровой архитектурой вынужден тратить дополнительные такты на эмуляцию такой модели. Можно посмотреть на расширение Jazelle, которое делали для ARM именно для ускорения JVM. Паскаль и Си напрямую не предполагают какую-то конкретную модель вычислений, регистры процессора участвуют там довольно опосредованно. Фактически, они предполагают наличие переменных в памяти, а вовсе не какие-то регистры. Поэтому сделать процессор для Си или Паскаля можно только при учете той модели кода, которую они используют, а не синтаксиса языка. |
Автор: | gudleifr [ Чт мар 29, 2012 20:18 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
Хищник, кончай опять дурить людей. C-переводится в язык ассемблера стандартным способом. Подразумевается некоторый достаточно универсальный и почти всеми понимаемый. Для проверки, надо взять пару компиляторов и посмотреть, что они выдадут с ключом -s. |
Автор: | wwwalker [ Чт мар 29, 2012 20:19 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
Хищник писал(а): Java использует стековую модель вычислений. Имеется в виду Java-процессор/JVM? Интересно то, что при рекламном описании JVM не акцентируется внимание на стековой модели вычислений. Только при упоминании об аппаратных Java-процессорах я первый раз услышал про стековую модель. |
Автор: | Hishnik [ Чт мар 29, 2012 20:23 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
gudleifr писал(а): Хищник, кончай опять дурить людей. C-переводится в язык ассемблера стандартным способом. Подразумевается некоторый достаточно универсальный и почти всеми понимаемый. Для проверки, надо взять пару компиляторов и посмотреть, что они выдадут с ключом -s. Неужели же язык Си жестко привязан к определенному промежуточному представлению кода? Какому, если не секрет? Стековое, тройки, четверки? А какая конкретно конструкция Си заставляет пользоваться только этим промежуточным представлением? Что-то мне подсказывает, что проверка "пары компиляторов" не позволит однозначно ответить на этот вопрос. Скорее она позволит убедиться, что для определенной группы компиляторов было эффективным/модным/удобным определенное представление кода. |
Автор: | Hishnik [ Чт мар 29, 2012 20:26 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
wwwalker писал(а): Имеется в виду Java-процессор/JVM? Интересно то, что при рекламном описании JVM не акцентируется внимание на стековой модели вычислений. Только при упоминании об аппаратных Java-процессорах я первый раз услышал про стековую модель. В .net используется такой Microsoft Intermediate Language (MSIL). Если почитать его спецификацию, то среди его команд имеются... dup drop и прочее! Только арифметические действия названы по мнемоникам - add, sub и т.п., да store использует порядок операндов, противоположный требуемому словом !. А так MSIL - это стековая машина плюс сборка мусора плюс метаданные. Другое дело, что потом добавляется back-end, который переводит команды этого промежуточного представления в код, оптимизированный для конкретной архитектуры. |
Автор: | gudleifr [ Чт мар 29, 2012 20:30 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
Хищник писал(а): Неужели же язык Си жестко привязан к определенному промежуточному представлению кода? Какому, если не секрет? Да. См. выше.
|
Автор: | Hishnik [ Чт мар 29, 2012 20:49 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
gudleifr писал(а): Да. См. выше. Что "да"? К какому - к стековому? А в тройки компилировать нельзя? А для трехадресной ортогональной архитектуры компилировать в четверки не будем из вредности - все через бутылочное горлышко стека? Навскидку, по ключевым словам "язык Си промежуточное представление" нашлось, к примеру, вот такое: http://www.optimitech.com/docs/006.pdf Жду комментариев. |
Автор: | gudleifr [ Чт мар 29, 2012 21:04 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
Хищник писал(а): Что "да"? Для тех, "кто на бронепоезде" повторяю: промежуточным представлением C-программ является универсальный упрощенный язык ассемблера.
|
Автор: | Hishnik [ Чт мар 29, 2012 22:16 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
gudleifr писал(а): Для тех, "кто на бронепоезде" повторяю: промежуточным представлением C-программ является универсальный упрощенный язык ассемблера. Ответ из серии: "какие бывают станки? Фрезерные, токарные, сверлильные? Нет! Легкие, средние, тяжелые". Так вот этот язык ассемблера - он строится для процессора с какой архитектурой? |
Автор: | gudleifr [ Чт мар 29, 2012 22:32 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
Хищник писал(а): для процессора с какой архитектурой? Так трудно набрать -s ? Все, надоел этот маразм. Если хотите что-то спросить, пишите на мыло. Больше на вопросы в темах не отвечаю.
|
Автор: | Hishnik [ Чт мар 29, 2012 22:42 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
gudleifr писал(а): Так трудно набрать -s ? Мне не так уж трудно набрать -s. Мне труднее подобрать способ объяснения человеку, который априори считает себя правым, что выбранные им понятия и термины не относятся к поставленному вопросу. Как насчет ассемблера с load/store подходом? Это тоже ассемблер, но выступающий только как инструмент технической реализации процесса компиляции. А речь идет о разных вычислительных моделях. gudleifr писал(а): Все, надоел этот маразм. Если хотите что-то спросить, пишите на мыло. Больше на вопросы в темах не отвечаю. А мне вот хамоватый апломб еще не надоел Он меня даже где-то развлекает... |
Автор: | wwwalker [ Пт мар 30, 2012 21:59 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
То есть Java-процессор был придуман для того, чтобы все наработки под JVM смогли выполняться аппаратно? |
Автор: | Hishnik [ Сб мар 31, 2012 00:38 ] |
Заголовок сообщения: | Re: Что такое аппаратный JAVA-процессор? |
wwwalker писал(а): То есть Java-процессор был придуман для того, чтобы все наработки под JVM смогли выполняться аппаратно? В целом я ничего не могу сказать про соображения авторов Java-процессоров, но когда-то в рамках НИР коллеги показывали презентацию по Jazelle - это аппаратный ускоритель Java для ARM. Сейчас на сайте документация уже где-то в скрытых разделах, но при небольших аппаратных затратах там в демо-ролике получалось, что телефон на обычном ARM показывал 2 чего-то там (fps? или абстрактных баллах?) на довольно навороченной игрушке, а с Jazelle - целых 6. В принципе понятно, что Java хороша своей универсальностью, и при этом какие-то архитектуры выполняют байт-код Java эффективно, а какие-то - не очень. Видимо, должна быть и архитектура, которая будет выполнять такой код максимально эффективно. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |