[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
да вычисления в виртуальной машине реализованы через стэк (я и раньше это подозревал :) ), то есть тут выигрыш у стэк процессоров
но кроме стэка есть framе и heap - то есть надо иметь индексную адресацию (то есть на пересылках ARM, MIPS, POWERPC и т.п - имеют выигрыш)
но так или иначе остаются операции по контролю сложных типов, массивов и т.п для которых нужно (по-моему гораздо проще чем в железе) делать какую-то софтверную поддержку (драйвер | микрокод или ...)
ну и еще надо учесть как будет в железе реализованы "хранилища" информации - регистровый файл, кэш, память (прошу прощения за нестэтовую терминологию)
то есть если стэк хранить в регистровом файле (я имею ввиду макроячейку) - то возникает вопрос в размере - размер стэка не известен. тут как в преферансе лучше перезаклад, но у него свои минусы - площадь|потребление, да и никто не гарантирует, что хватит (пример такого регистрового файла в SPARC-ах)
а при операциях со стэком во внешней памяти (даже кэшируемой) - наверняка можно успеть 4-8 операций в регистровом файле, что позволяет сэмулировать верхушку стэка в регистрах...
то есть (мое очень необъективное мнение) ARM c аппаратным декодером джавы может не уступать стэк процессору с более высокой тактовой, когда они работают на одинаковой памяти при исполнении байт-кода
--------------
все - пора работать :)
E-mail: info@telesys.ru