У этой компании есть an interesting CPU, которые работают с удивительной скоростью. Можно ли эмулировать C или память слишком мала?Можно ли запустить код C, эмулируемый на GA144?
ответ
Первый беглый взгляд на набор инструкций предполагает, что «colorForth» можно рассматривать как простой машинный язык. Учитывая это, может быть возможно написать компилятор C, который компилирует colorForth в качестве его целевого набора команд.
Конечно, может быть проще написать код в colorForth в первую очередь.
uhhhhhhh, не действительно – TheDoctor
Из-за внешнего вида, если кто-то пишет компилятор, который может выводить машинный код (33 инструкции, не слишком сложные), вам не нужно будет эмулировать C, вы можете просто его скомпилировать.
Конечно, это было бы крайне ограничено, так как похоже, что каждый чип получает крошечное количество внутренней памяти (с 64-мя словами работать не так много). В один из ядер имеется 18-разрядный адресный порт памяти, поэтому вы можете иметь 256 МБ внешней ОЗУ, но к нему можно получить доступ только по одному из ядер, а затем его нужно будет передать другому ,
Возможно, что различные ядра могут использоваться для различных функций, но это усложнит компилятор совсем немного.
Это может быть сделано, но их интерпретатор должен выполнять параллельные задачи, распределять нагрузку и т. Д. Вероятнее всего, будет просто просто пойти с их интерпретатором Forth.
Существует C переводчик для чипа SEAforth40 (предыдущая версия чипа GA144)
Презентация: http://www.asu.ru/files/documents/00002990.pdf
Есть ли способ связи через последовательный порт? – TheDoctor
Вы должны использовать внешнюю память, но кроме этого, это, безусловно, выполнимы, согласно это white paper по Greg Bailey:
это не было бы трудно построить виртуальную машину, поддерживающую C, и есть много людей и компаний в США АОТ ne для кого создание такой машины и завершение «порта» языка C компилятором и библиотекой виртуальной машины было бы просто повторением того, что они делали раньше. После того, как это было сделано , чип GreenArray может запускать любую программу на C, которая вписывается в внешнюю память и удовлетворяет любому требованию приложения C, что отвечает полученной скорости выполнения.
- выдержка из страницы 4
Он также обсудить их реализации виртуальной машины eForth в этой работе.
Хлорофилл имеет некоторые идеи, представляющие общий интерес. Я также бываю выглядеть так C:
Мы разработали хлорофилл, синтез автоматизированной модель программирования и компилятор для GreenArrays GA144, чрезвычайно минималистского маломощной пространственной архитектуры, которая требует разбиения программы на фрагменты не более 256 инструкций и 64 слова из данных.Этот процессор в 100 раз более энергоэффективен, чем его конкуренты , но в настоящее время он может быть запрограммирован только с использованием низкоуровневого языка на основе стека . Модель программирования Chlorophyll позволяет программистам дать представление о человеке, указав частичное разбиение данных и вычисление на части . Компилятор Chlorophyll полагается на синтез, обойдя необходимость разработки классических оптимизаций , что может быть сложным с учетом необычной архитектуры . Чтобы масштабировать синтез до реальных проблем, мы разлагаем компиляцию на более мелкие подзадачи синтеза - разбиение на разделы, компоновку, и генерацию кода. Мы показываем, что синтезированные программы не более , чем на 65% медленнее, чем высоко оптимизированные экспертно-написанные программы, и являются быстрее, чем программы, созданные эвристической, несинтезирующей версией нашего компилятора.
http://www.eecs.berkeley.edu/~mangpo/www/talks/1311_forthday_handout.pdf
http://www.eecs.berkeley.edu/~nishant/papers/Chlorophyll.pdf
Эти URL-адреса мертвы. Немного отследил обновленные ссылки: http://pl.eecs.berkeley.edu/projects/chlorophyll/ и https://github.com/mangpo/chlorophyll –
Хах, Чак Мур по-прежнему ногами! Ему не понравится твоя идея. –
[Переводчик C C] (http://www.asu.ru/files/documents/00002991.pdf) доступен для чипа SEAforth40. Просто скачайте, измените расширение файла на .zip и распакуйте. Руководство пользователя находится здесь: [C Руководство пользователя переводчика] (http://www.asu.ru/files/documents/00002989.pdf). Если вам нужна помощь, спросите :) – diver
Как я сюда попал и думаю, что это хорошая идея? – meawoppl