1 ポイント 投稿者 GN⁺ 2024-09-21 | 2件のコメント | WhatsAppで共有

はじめに

  • 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件のコメント

 
y15un 2024-09-21

元記事の著者は、今回DEF CONでバッジ絡みの件でステージから連れ出されたあの人なんですね。どちらの肩を持つつもりもありませんが、それでも実力は本当にすごいですね。

 
GN⁺ 2024-09-21
Hacker Newsのコメント
  • NetBSDが15 MHzのm68030では遅いと思っていたが、このプロジェクトは本当にすごい

    • 80年代後半から90年代前半にかけて、コンピュータが永続ストレージ、オープンなアドレス空間、MMUを備え始め、そこで現代的なコンピューティングに到達した
    • Amiga 3000やi80486コンピュータでも、現代のコンピュータと同じ機能を実行できる
    • Dmitryは「機能的」という定義をどこまで緩くできるかを示している
  • このプロジェクトを理解できるくらいまで知識を広げたい

    • 「Section 14.b & 14.c - Getting the data...」の部分は完全に理解できた
    • 4年間で400K件のファイル(1日あたり約275枚の写真)を処理した
    • 大量の処理能力、ストレージ、ネットワークがあるにもかかわらず、メディア同期アプリがクラッシュしたり同期が遅かったりする問題を抱えている
    • AirDropは失敗するし、'Select-All' のUI機能も不足している
  • AVRの例が好きだが、これで新しい例ができた

    • 周波数と消費電力を考えると、どれくらいのRFが出ているのか気になる
    • 「soubroutine」という単語はタイプミスの可能性がある
  • このプロジェクトは安くはなかった、Ebayのコレクターたちに感謝

    • LCDの代わりにVFDを選んだだろう、長時間のコンパイルでVFDが傷む可能性がある
  • 驚くべきプロジェクトだ

    • 高位のPCビットで現在実行中のものが見える
    • P.S.: インターネット越しのサーバーIPMIよりも速くカーネルをロードしている
  • ビデオ撮影には9日かかった、エミュレーションでは1秒あたり4時間

    • なぜWindows 95を使っているのか気になる
  • この種のプロジェクトにはノーベル賞が必要だ

  • とても興味深い読み物だった

    • 4004について少しは知っていたが、そのレベルの難解さには驚いた
    • 同じトランジスタ数でCPUを作れるのか気になった
    • 8ビットならプログラミングはずっと簡単になる
    • 作業をしっかり文書化してくれてありがとう
  • 初期のマイクロコンピュータでは仮想マシン(Z-machineやJVM)が動いていた

    • コンパイラのターゲットとして使えないときに役立った
    • SWEET16
    • UCSD Pascal
  • 「Why MIPS?」セクションより:

    • 一部には遅いアドレッシングモードがある(RISCV)
    • RISC-Vのアドレッシングモードの何が問題なのか気になる