是否可以运行在GA144上模拟的C代码?

时间:2010-01-22 06:32:34

标签: c++ c forth emulation

该公司的an interesting CPU以惊人的速度运行。是否有可能模拟C或内存太小?

6 个答案:

答案 0 :(得分:5)

SEAforth40芯片(以前版本的GA144芯片)有C转换器

演示: http://www.asu.ru/files/documents/00002990.pdf

答案 1 :(得分:2)

第一次粗略地看一下指令集表明“colorForth”可以被认为是一种简单的机器语言。鉴于此,可以编写一个编译为colorForth的C编译器作为其目标指令集。

当然,首先在colorForth中编写代码可能更容易。

答案 2 :(得分:1)

从它的外观来看,如果有人编写了一个可以输出机器代码的编译器(33条指令,而不是太复杂),你就不需要模拟C了,你可以直接编译它。

当然,它会非常有限,因为看起来每个芯片都有很少的内部RAM(64个字不是很多)。有一个18位内存地址端口连接到其中一个内核,所以你可以拥有256MB的外部RAM,但它只能由一个内核直接访问,然后需要传递到另一个内核

不同的内核可能会用于不同的功能,但这会使编译器复杂化。

答案 3 :(得分:1)

可以这样做,但是他们的解释器应该处理并行任务,负载分配等。最好只使用他们的Forth解释器。

答案 4 :(得分:1)

叶绿素有一些普遍感兴趣的想法。我也碰巧看起来像C:

  

我们开发了叶绿素,一种合成辅助编程模型和   GreenArrays GA144的编译器,非常简约   低功耗空间架构,需要对程序进行分区   分成不超过256个指令和64个单词的片段   数据。该处理器的能效比其处理器高100倍   竞争对手,但目前只能使用低级编程   基于堆栈的语言。叶绿素编程模型允许   程序员通过指定部分来提供人类洞察力   分区数据和计算。叶绿素编译器依赖   在综合上,回避了发展经典的必要性   优化,鉴于不寻常的可能是挑战   建筑。为了将合成扩展到实际问题,我们将其分解   汇编成更小的综合子问题 - 分区,布局,   和代码生成。我们表明合成的程序已不复存在   比高度优化的专家编写的程序慢65%   比启发式,非合成版本生成的程序更快   我们的编译器。

http://www.eecs.berkeley.edu/~mangpo/www/talks/1311_forthday_handout.pdf

http://www.eecs.berkeley.edu/~nishant/papers/Chlorophyll.pdf

答案 5 :(得分:0)

你需要使用外部记忆,但除此之外,根据white paper Greg Bailey的{{3}},这肯定是可行的:

  

构建支持C的虚拟机并不困难,   而且仅在美国就有很多人和公司为他们服务   构建这样一台机器并完成C语言的“端口”   编译器和库到虚拟机只是一个   重复他们以前做过的事情。一旦这样了   完成后,GreenArray芯片可以运行适合的任何C程序   外部存储器将满足任何C应用程序的要求   由最终的执行速度来满足。

     

- 摘自第4页

他还在该论文中讨论了他们对eForth虚拟机的实现。