この会社には、驚くべき速度で動作する興味深いCPUがあります。Cをエミュレートすることは可能ですか、それともメモリが小さすぎますか?
6 に答える
SEAforth40 チップ (以前のバージョンの GA144 チップ) 用の C トランスレータがあります。
命令セットをざっと見てみると、「colorForth」は単純な機械語と考えることができることがわかります。そのため、ターゲット命令セットとして colorForth にコンパイルする C コンパイラを作成できる可能性があります。
もちろん、最初から colorForth でコードを書く方が簡単かもしれません。
それは可能ですが、彼らのインタプリタは並列タスクや負荷分散などを処理する必要があります。おそらく、Forthインタプリタを使用するのが最善でしょう。
見た目からすると、誰かが機械語コード (33 命令、それほど複雑ではない) を出力できるコンパイラーを作成した場合、C をエミュレートする必要はなく、直接コンパイルするだけで済みます。
もちろん、各チップはごくわずかな量の内部 RAM (64 ワードは処理するには多すぎません) を取得するように見えるため、非常に制限されます。コアの 1 つに 18 ビットのメモリ アドレス ポートが接続されているため、256MB の外部 RAM を使用できますが、直接アクセスできるのはコアの 1 つだけであり、それを他のコアに渡す必要があります。 .
さまざまな機能にさまざまなコアを使用できる可能性がありますが、それはコンパイラをかなり複雑にします。
外部メモリを使用する必要がありますが、それを除けば、 Greg Baileyによるこのホワイト ペーパーによると、それは確かに実行可能です。
C をサポートする仮想マシンを構築することは難しくありません。米国だけでも、そのようなマシンを構築し、仮想マシンへの C 言語コンパイラとライブラリの「ポート」を完成させることを簡単にできる人や企業がたくさんあります。彼らが以前にしたことの繰り返し。これが完了すると、GreenArray チップは、外部メモリに収まる任意の C プログラムを実行でき、結果の実行速度によって満たされる任意の C アプリケーション要件を満たします。
-- 4 ページからの抜粋
彼はまた、その論文で eForth 仮想マシンの実装についても説明しています。