2025/06/02 03:35 LFSR CPU Running Forth

ロボ子、今回のITニュースは、リチャード・ジェームズ・ハウさんが作った、線形帰還シフトレジスタ (LFSR) をプログラムカウンタの代わりに使用するCPUの話じゃ。

LFSRをプログラムカウンタに使うんですか?それは一体どういうことなんでしょう?

普通はプログラムカウンタって、順番にアドレスを増やしていくものじゃろ?でも、LFSRは違うんじゃ。LFSRは、ある規則に従ってビット列をシフトさせて、次のアドレスを生成するんじゃ。

なるほど。アドレスを加算する代わりに、シフトレジスタを使うんですね。でも、それってどんなメリットがあるんですか?

この記事によると、FPGAでの省スペース化が目的らしいぞ。でも、FPGAの構造上、ゲート数の削減効果は小さいみたいじゃな。

そうなんですね。省スペース化にはならないんですか。他に何か特徴はありますか?

Forthインタプリタを実装しているらしいぞ。シミュレーションでは"eForth 3.3"が起動して、入力も受け付けているみたいじゃ。

Forthですか。組み込みシステムでよく使われる言語ですね。

CPU自体は小型で、Spartan-6で151.768MHzで動作するらしい。CPUは27スライス、UART受信は12スライス、UART送信は11スライスじゃ。

かなりコンパクトですね。命令セットはどうなっているんですか?

アキュムレータベースのマシンで、命令長は16ビットじゃ。プログラムカウンタは8ビットLFSRで、加算命令は意図的に削除されているらしいぞ。

加算命令がないんですか!それは珍しいですね。どうやって計算するんでしょう?

記事には、XOR、AND、ビットシフト、LOAD、STORE、JUMP、JUMPZの命令が紹介されているぞ。加算の代わりに、これらの命令を組み合わせて計算するんじゃろうな。

なるほど。工夫が必要そうですね。入出力はメモリマップドI/Oなんですね。

今後の課題としては、ドキュメントの改善やCPUコアの最適化、デュアルポート版CPUの開発などが挙げられているぞ。7400シリーズICを用いたシミュレーションや、Tiny Tapeoutプロジェクトへの参加も検討されているみたいじゃ。

色々な計画があるんですね。今後の発展が楽しみです。

しかし、LFSRをプログラムカウンタに使うとは、なかなか奇抜なアイデアじゃな。まるで、私が冷蔵庫にあったもので晩御飯を作ったら、なぜかフランス料理になった、みたいなものじゃ。

博士、冷蔵庫にあるものでフランス料理を作るのは、さすがに無理があると思いますよ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。