Posted 2021-12-20 19:12:17 GMT
Lisp一人 Advent Calendar 2021 21日目の記事です。
RISC-Vが盛り上がっている昨今ですが、RISC-IVはLisp向けアーキテクチャだったことはご存知でしょうか。
などと、はじめましたが、RISC-VとRISC-IV間でアーキテクチャ的な継承をしていたりはないようです。残念。
そもそも、RISC-IVは、1988年あたりのプロジェクトで、RISC-Vは2010年あたりに開始だそうなので、年月的にも大分隔があります。
RISC-IVは、SPURと呼ばれていましたが、Symbolic Processing Using RISCsの略だそうで、そのまま解釈すると並列記号処理向けRISCというところです。
プロジェクトも実際にSMP構成のプロセッサを複数台接続し、分散OSで並列処理のLispを動かす試みというところだったようです。
Lispは、CMUCLやSBCLの先祖であるSpice Lispを並列処理拡張したもので、SPUR Lispという名前でした。
1988年当時は、並列Lispが結構熱い時代でしたが、Connection Machine Lispのような超並列マシンでデータ並列ではなく、それらからすると比較的少数のSMP構成のプロセッサを繋ぐものだったようです。
Common Lisp規格には並列/並行の規定がないため、SPUR Lispでは、メールボックスを基礎とし、その上にfutureやdelayを構成するような拡張をしていたとのことですが、近年のネイティブスレッド対応のCommon Lisp処理系は大体似たような拡張をしているかなと思います(futureやdelayの活用はあまり見掛けない気はしますが)し、SPURマシンの標準的プロセッサ数は多くても12台程度だったようなので最近のPCのコア数と大差ない感じです。
一応、SPURプロセッサのLisp向け機能としては、タグアーキテクチャ、世代別GCのハードウェア支援、関数呼び出しの高速化(レジスタウィンドウ)があるようです。
EECS at UC BerkeleyでSPUR
で検索すると文献が結構ありますので興味のある方は眺めてみてはいかがでしょうか。
■
HTML generated by 3bmd in LispWorks 8.0.0