This Project Has Not Released Any Files
Project PuzzleBoxは,関数型言語で書かれたプログラムを高速かつ低消費電力で実行することのできるプロセッサと,そのプロセッサに最適な関数型言語を開発するプロジェクトです.プロセッサはVerilog RTLで提供され,IPとしてシステムに組み込むことができます.同時に,ヴァーチャルマシンとコンパイラも提供し,設計開発からデバッグまでの作業を一通り行うことができます.
プロジェクトの第一段階では,純粋非正格関数型言語LazyKで記述されたプログラムを,FPGA上で動かします.LazyKを遅延評価を用いながらFPGA上で実行するために,Graph Reduction MachineをVerilog RTLにて開発します.このGraph Reduction MachineをPuzzleBox Iと呼びます.FPGA上でGraph Reduction Machineを実現し,LazyKで記述されたコードをこのマシン用のバイナリに変換,ロードさせることにより,LazyKのコードを高速かつ低消費電力で実行することを目標とします.また,LazyKに対し,基本データ構造であるConstant Applicative Form (CAF)の読み出し効率化や,チャーチ数ではないmachine integerのサポートや組み込み演算(加減乗除,比較,car, cdr, cons, if等)を追加することにより,プロセッシングをさらに高速かつ低消費電力で実現します.
このプロジェクト第一段階では,以下の成果物を配布します.
このプロジェクトは未だアルファ段階です.ヴァーチャルマシンを利用したサンプルプログラムの動作まで実装してあります.作業中のPuzzleBox Iコアは,svn:puzzlebox:/trunk から閲覧できます.READMEに,サンプルプログラムをヴァーチャルマシン上で動作させるための手順が記載されています.現状,ヴァーチャルマシンの動作およびサンプルプログラムのコンパイルには,以下のモジュールが必要となります.
プロジェクトの進捗は,Project管理者のブログにて報告しております.将来的には,本サイトに全ての成果物を掲載する予定ですが,成果物がとぼしい現状では,こちらのブログより進捗を確認下さい.
TODO: