Специфичные для языка архитектуры / Процессоры
Я пишу исследовательскую работу для класса "Компьютерная архитектура" на тему "Архитектуры и процессоры для конкретного языка". Очевидно, что двумя основными компонентами этой темы являются LISP Machine и Java Computer. Тем не менее, мне трудно найти больше информации только с Google. Я прошу любую помощь по этой теме, такую как ссылки, новые подтемы, статьи, журналы, книги и т. Д. Заранее спасибо за любую помощь!
2 ответа
Большинство так называемых языковых архитектур более специфично ориентированы на язык или специфичны для языка. Даже оригинальный SPARC предоставил теговую арифметику (чтобы помочь LISP). Вам, вероятно, известно о SPUR Беркли (символьная обработка с использованием RISC, RISC с таргетингом на LISP) и picoJava (который выполняет байт-код Java). MAJC был разработан с учетом Java, но это довольно общий VLIW. (Расширение ARM Jazelle предоставило режим, который мог выполнять некоторые операции с байт-кодом напрямую с неподдерживаемыми операциями, генерируя исключение для программного интерпретатора.) Процессор Azul Systems Vega - это RISC, предназначенный для запуска Java (среди дружественных к Java функций есть барьеры записи для сбора мусора). и поддержка использования наиболее значимых битов указателей для тегов [функция, которая также присутствует в ARMv8 AArch64]).
Рекурсив был ориентирован на объектно-ориентированные языки. Intel 432 был ориентирован на "языки высокого уровня". SOAR Беркли (Smalltalk On A RISC) предназначался для Smalltalk.
Несколько процессоров были ориентированы на будущее, например, Novix NC4016, GreenArrays, Inc. F18, Bernd Paysan b16.
"Ретроспектива по компьютерной архитектуре на языке высокого уровня" (Дэвид Р. Дитцель и Дэвид А. Паттерсон, 1980) ссылается на некоторые архитектуры HLL. Эта статья и работа Уильяма А. Вульфа "Компиляторы и компьютерная архитектура" (1981) - это документы с начала "эры RISC", на которые стоит обратить внимание при изучении языковой поддержки в компьютерной архитектуре.
В качестве примечания отметим, что одной существенной проблемой, связанной с языковыми процессорами, выходящими за рамки неявного ограничения рынка (учитывая относительно высокие фиксированные затраты на аппаратное и программное обеспечение и сетевые эффекты, объем очень важен), является проблема проектирования архитектуры с конкретный способ реализации языка в уме. По мере того, как разрабатываются новые методы (которые часто происходят от разработки на других языках) или меняются технические компромиссы, первоначальный выбор ISA может стать заметно неоптимальным (одна из форм так называемого "семантического столкновения"). Выбирая общие примитивные операции, некоторая эффективность может быть принесена в жертву в ранних реализациях, но риск долгосрочного багажа уменьшается.
Язык Forth также имеет много аппаратных реализаций.
Вот книга: http://www.ece.cmu.edu/~koopman/stack_computers/
И недавняя реализация VHDL: http://www.excamera.com/sphinx/fpga-j1.html