はじめに
- 2012年に8ビットマイクロコントローラ(AVR)でLinuxを動かし、最低仕様のマシンでLinuxを実行する世界記録を打ち立てた
- 2023年には、AVRよりさらに低スペックなMOS 6510でLinuxを起動するプロジェクトが登場した
- Intel 4004は世界初の商用マイクロプロセッサであり、4ビットチップで新たな最低仕様の基準を打ち立てるためにこのプロジェクトが始まった
4004
- 4004は4ビット単位で動作し、主に電卓向けに開発された
- 論理演算がなく、主にADDとSUB命令しか存在しない
- キャリーフラグを使う独特な演算方式
- 16個の4ビットレジスタ、12ビットのプログラムカウンタ、4段のハードウェアスタックを持つ
- 最低クロック速度が必要で、割り込みをサポートしない
- メモリ操作を直接実行できるいくつかの命令が存在する
制御フロー
- ハードウェアスタックを使ったサブルーチン呼び出しと復帰
- 条件付きジャンプ命令があり、TESTピンを通じて外部イベントを検知できる
- コードページの概念を使って4096バイトのコード空間を管理する
メモリとI/O
- 4004はメモリ命令を直接処理せず、メモリチップがこれを処理する
- 最大8個のRAMバンクをサポートし、各バンクは4個の4002チップで構成される
- 4001は256バイトのROMと4ビットI/Oポートを含む
- 4265は汎用I/Oデバイスで、4個の4ビットI/Oポートを持つ
4008, 4009, 4289
- 4008と4009は一般的なメモリチップとインターフェースできるように設計された
- 4289は4008と4009を組み合わせたチップで、5V信号レベルで通信できる
メモリ使用とステートニブル
- メモリバンクを選択するためにDCL命令を使う
- 各RAMバンクは4個の4002チップで構成され、各チップは16個のアドレス可能なニブルと4個のステートニブルを持つ
GN⁺のまとめ
- このプロジェクトは、Intel 4004のような初期マイクロプロセッサの動作方式を理解するのに大いに役立つ
- 4004の独特な設計と限られた機能をどう克服するかを示している
- 現代のマイクロコントローラと比べて、初期マイクロプロセッサの限界を体験できる機会を提供する
- 類似のプロジェクトとして、MOS 6510でLinuxを起動するプロジェクトがある
2件のコメント
元記事の著者は、今回DEF CONでバッジ絡みの件でステージから連れ出されたあの人なんですね。どちらの肩を持つつもりもありませんが、それでも実力は本当にすごいですね。
Hacker Newsのコメント
NetBSDが15 MHzのm68030では遅いと思っていたが、このプロジェクトは本当にすごい
このプロジェクトを理解できるくらいまで知識を広げたい
AVRの例が好きだが、これで新しい例ができた
このプロジェクトは安くはなかった、Ebayのコレクターたちに感謝
驚くべきプロジェクトだ
ビデオ撮影には9日かかった、エミュレーションでは1秒あたり4時間
この種のプロジェクトにはノーベル賞が必要だ
とても興味深い読み物だった
初期のマイクロコンピュータでは仮想マシン(Z-machineやJVM)が動いていた
「Why MIPS?」セクションより: