Здравствуйте, <Аноним>, Вы писали:
А>И где тут оптимизация? передача дополнительной информации неизбежно повлечет дополнительные действия для обработки этих данных, что существенно понизит скорость работы такого процессора. Наверно в существующих процессорах не зря всетаки сделано так как сделано, и лишнюю информацию туда не передают с точки зрения оптимизации, я уже не говорю о нагреваемости и других проблемах с этим связанных. Или я не прав?
Прав. Болие того в современных процессорах гоняют слишком много всякого хлама.
Например защита памяти, преобразование x86'х комманд в инструкции того процессора который реально работает...
Все это делается по тому что некоторые праграммисты убеждены в том что ASM/C/C++ необходимы. Да и унаследованный код тоже делает свое грязное дело.
А если бы все работало под строготипизированной виртуальной машиной с поверкой границ массивов то софт работал бы гораздо быстрее и надежнее. Да и разработка была бы сильно проще.
Правда ВМ нужна умная, а не убожество типа жабы которая по недразумению превратилась из интерпритатора для программ управляющих чайником в серверную платформу.
Именно над такой ВМ я и работаю.
Как я понял computer20 хочет сделать тоже самое только в железе.
Это ошибка.
Ибо реализовать сложную логику проверки типов в железе очень накладно.
Болие того всю эту типизацию придется постоянно проверять что тоже мягко говоря не бесплатно.
Виртуальная машина позволяет выполнить почти все эти проверки на этапе компиляции что позволит сильно упростить процессоры и тем самым их разогнать. А те проверки что останутся (в идеале только при вводе выводе) будут оттягивать на себя гораздо меньше ресурсов чем тотальный контроль. Также компилятор может взять на себя всю работу по распаралеливанию инструкций см
VLIW что позволит еще сильнее упростить и разгрузить процессор, а чтобы не гонять по шине NOP'ы можно добавить в инструкцию бит сигнализирующий о том что данная инструкция в текущем пакете завершающая (декодер получится тривиальный).
Еще один плюс виртуальных машин то что создатели процессоров спокойно могут менять набор инструкций/регистров не боясь сломать весь написанный софт. Ибо все что нужно для того чтобы портировать весь софт написанный под ВМ это написать новый таргет для ВМ.
Что позволит гораздо динамичние развивать сами процессоры.
Также ВМ абсолютно прозрачно позволяет общаться процессам не только на разных процессорах но и на разных машинах с разной архитектурой (например x86 и spark).
Мне очень нравится концепция каналов из
Singularity
Знаю. Создать такую ВМ очень не прото. И еще сложнее будет ее раскрутить. Но если ничего не делать то все останется как есть.
... << RSDN@Home 1.2.0 alpha rev. 673>>