1 Punkte von GN⁺ 2024-09-21 | 2 Kommentare | Auf WhatsApp teilen

Einstieg

  • 2012 wurde Linux auf einem 8-Bit-Mikrocontroller (AVR) ausgeführt und damit ein Weltrekord für Linux auf einer Maschine mit minimalen Anforderungen aufgestellt
  • 2023 tauchte ein Projekt auf, das Linux auf dem noch schwächer ausgestatteten MOS 6510 bootete
  • Der Intel 4004 ist der erste kommerzielle Mikroprozessor der Welt; dieses Projekt wurde gestartet, um mit dem 4-Bit-Chip einen neuen Maßstab für die niedrigsten Anforderungen zu setzen

4004

  • Der 4004 arbeitet in 4-Bit-Einheiten und wurde hauptsächlich für Taschenrechner entwickelt
  • Es gibt keine logischen Operationen, im Wesentlichen nur die Befehle ADD und SUB
  • Ungewöhnliche Rechenweise unter Verwendung des Carry-Flags
  • Er besitzt 16 4-Bit-Register, einen 12-Bit-Programmzähler und einen vierstufigen Hardware-Stack
  • Eine minimale Taktfrequenz ist erforderlich, Interrupts werden nicht unterstützt
  • Es existieren einige Befehle, die Speicheroperationen direkt ausführen können

Kontrollfluss

  • Unterprogrammaufrufe und Rückkehr mittels Hardware-Stack
  • Es gibt bedingte Sprungbefehle, und über den TEST-Pin können externe Ereignisse erkannt werden
  • Zur Verwaltung des 4096-Byte-Codebereichs wird das Konzept von Code-Seiten verwendet

Speicher und I/O

  • Der 4004 verarbeitet Speicherbefehle nicht direkt; das übernehmen die Speicherchips
  • Es werden bis zu 8 RAM-Bänke unterstützt, jede Bank besteht aus 4 Chips vom Typ 4002
  • Der 4001 enthält 256 Byte ROM und einen 4-Bit-I/O-Port
  • Der 4265 ist ein allgemeines I/O-Gerät mit 4 I/O-Ports zu je 4 Bit

4008, 4009, 4289

  • 4008 und 4009 wurden dafür entwickelt, mit gewöhnlichen Speicherchips zu interagieren
  • Der 4289 ist ein Chip, der 4008 und 4009 kombiniert und bei 5-V-Signalpegeln kommunizieren kann

Speichernutzung und Status-Nibbles

  • Zur Auswahl einer Speicherbank wird der Befehl DCL verwendet
  • Jede RAM-Bank besteht aus 4 Chips vom Typ 4002; jeder Chip besitzt 16 adressierbare Nibbles und 4 Status-Nibbles

Zusammenfassung von GN⁺

  • Dieses Projekt hilft sehr dabei zu verstehen, wie frühe Mikroprozessoren wie der Intel 4004 funktionierten
  • Es zeigt, wie sich das ungewöhnliche Design und die begrenzten Funktionen des 4004 überwinden lassen
  • Im Vergleich zu modernen Mikrocontrollern bietet es die Möglichkeit, die Grenzen früher Mikroprozessoren selbst zu erleben
  • Ein ähnliches Projekt mit vergleichbarer Funktionalität ist das Booten von Linux auf dem MOS 6510

2 Kommentare

 
y15un 2024-09-21

Der Autor des Originalbeitrags ist also jener Typ, der diesmal auf der DEF CON wegen der Badge-Sache von der Bühne geholt wurde. Ich will mich auf keine Seite schlagen, aber seine Fähigkeiten sind trotzdem wirklich beeindruckend.

 
GN⁺ 2024-09-21
Hacker-News-Kommentare
  • Ich dachte, NetBSD auf einem 15-MHz-m68030 sei langsam, aber dieses Projekt ist wirklich beeindruckend

    • In den späten 80ern und frühen 90ern erreichten Computer modernes Computing, als sie über permanenten Speicher, einen offenen Adressraum und eine MMU zu verfügen begannen
    • Ein Amiga 3000 oder ein i80486-Computer kann ebenfalls die gleichen Funktionen wie ein moderner Computer ausführen
    • Dmitry zeigt, wie weit man die Definition von „funktional“ fassen kann
  • Ich würde gern mein Wissen so weit ausbauen, dass ich dieses Projekt verstehen kann

    • Den Teil „Section 14.b & 14.c - Getting the data...“ habe ich vollständig verstanden
    • Ich habe vier Jahre lang 400K Dateien verarbeitet (etwa 275 Fotos pro Tag)
    • Trotz reichlich Rechenleistung, Speicherplatz und Netzwerk stürzen Medien-Sync-Apps ab oder leiden unter langsamer Synchronisierung
    • AirDrop schlägt fehl und eine „Select-All“-Funktion in der UI fehlt
  • Ich mag AVR-Beispiele, und jetzt gibt es ein neues

    • Angesichts von Frequenz und Stromverbrauch frage ich mich, wie viel RF dabei herauskommt
    • „soubroutine“ könnte ein Tippfehler sein
  • Dieses Projekt war nicht billig, danke an die Ebay-Sammler

    • Ich hätte statt des LCD ein VFD gewählt; bei langen Compile-Läufen könnte ein VFD beschädigt werden
  • Erstaunliches Projekt

    • Man kann in den hohen PC-Bits sehen, was gerade ausgeführt wird
    • P.S.: Es lädt den Kernel schneller als das IPMI eines Servers über das Internet
  • Die Videoaufnahme hat 9 Tage gedauert, bei 4 emulierten Stunden pro Sekunde

    • Ich frage mich, warum Windows 95 verwendet wird
  • Für solche Projekte sollte es einen Nobelpreis geben

  • Sehr interessante Lektüre

    • Ich wusste ein wenig über den 4004, aber dieses Maß an Obskurität war erstaunlich
    • Ich frage mich, ob man mit derselben Anzahl an Transistoren eine CPU bauen könnte
    • 8 Bit machen das Programmieren sehr viel einfacher
    • Danke für die gute Dokumentation der Arbeit
  • Auf frühen Mikrocomputern liefen virtuelle Maschinen (Z-machine oder JVM)

    • Das war nützlich, wenn man sie nicht als Compiler-Ziel verwenden konnte
    • SWEET16
    • UCSD Pascal
  • Zum Abschnitt „Why MIPS?“:

    • Einige haben langsame Adressierungsmodi (RISCV)
    • Ich frage mich, was an den Adressierungsmodi von RISC-V problematisch ist