1 puan yazan GN⁺ 2024-09-21 | 2 yorum | WhatsApp'ta paylaş

Başlangıç

  • 2012'de 8 bitlik bir mikrodenetleyicide (AVR) Linux çalıştırılarak en düşük özellikli makinede Linux çalıştırma dünya rekoru kırıldı
  • 2023'te AVR'den daha düşük özellikli MOS 6510 üzerinde Linux önyükleyen bir proje ortaya çıktı
  • Intel 4004, dünyanın ilk ticari mikroişlemcisi olduğundan, 4 bitlik bu çipte yeni bir en düşük özellik standardı belirlemek için bu proje başlatıldı

4004

  • 4004, 4 bitlik birimlerle çalışır ve esas olarak hesap makineleri için geliştirildi
  • Mantıksal işlemleri yoktur; başlıca yalnızca ADD ve SUB komutları bulunur
  • Carry flag kullanan kendine özgü bir işlem yapısı vardır
  • 16 adet 4 bitlik register, 12 bitlik program counter ve 4 seviyeli donanım stack'ine sahiptir
  • Asgari saat hızı gerektirir ve interrupt desteği yoktur
  • Bellek işlemlerini doğrudan gerçekleştirebilen birkaç komut bulunur

Denetim akışı

  • Donanım stack'i kullanılarak alt yordam çağrısı ve dönüş yapılır
  • Koşullu atlama komutları vardır ve TEST pini üzerinden harici olaylar algılanabilir
  • 4096 baytlık kod alanını yönetmek için code page kavramı kullanılır

Bellek ve I/O

  • 4004 bellek komutlarını doğrudan işlemez; bunları bellek çipi işler
  • En fazla 8 RAM bankasını destekler ve her banka 4 adet 4002 çipinden oluşur
  • 4001, 256 baytlık ROM ve 4 bitlik I/O portu içerir
  • 4265, 4 adet 4 bitlik I/O portuna sahip genel amaçlı bir I/O aygıtıdır

4008, 4009, 4289

  • 4008 ve 4009, genel bellek çipleriyle arayüz kurabilmek için tasarlandı
  • 4289, 4008 ile 4009'u birleştiren bir çiptir ve 5V sinyal seviyesinde iletişim kurabilir

Bellek kullanımı ve durum nibble'ları

  • Bellek bankasını seçmek için DCL komutu kullanılır
  • Her RAM bankası 4 adet 4002 çipinden oluşur ve her çip 16 adreslenebilir nibble ile 4 durum nibble'ına sahiptir

GN⁺ özeti

  • Bu proje, Intel 4004 gibi erken dönem mikroişlemcilerin nasıl çalıştığını anlamaya büyük katkı sağlıyor
  • 4004'ün kendine özgü tasarımının ve sınırlı yeteneklerinin nasıl aşıldığını gösteriyor
  • Modern mikrodenetleyicilerle karşılaştırıldığında, erken dönem mikroişlemcilerin sınırlarını deneyimleme fırsatı sunuyor
  • Benzer işleve sahip projeler arasında MOS 6510 üzerinde Linux önyükleme projesi de bulunuyor

2 yorum

 
y15un 2024-09-21

Orijinal yazının yazarı, bu kez DEF CON'da rozet meselesi yüzünden sahneden indirilen o kişiymiş. Kimin tarafını tutacağım demeyeceğim ama yine de becerisi gerçekten etkileyici.

 
GN⁺ 2024-09-21
Hacker News yorumu
  • NetBSD'nin 15 MHz m68030'da yavaş olduğunu sanıyordum, ama bu proje gerçekten inanılmaz

    • 80'lerin sonu ve 90'ların başında bilgisayarlar kalıcı depolama, açık adres alanı ve MMU kazanmaya başlayınca modern bilişime ulaşıldı
    • Amiga 3000 ya da i80486 bilgisayarlar da modern bilgisayarlarla aynı işlevleri yerine getirebilir
    • Dmitry, "işlevsel" tanımının ne kadar gevşetilebileceğini gösteriyor
  • Bu projeyi anlayabilecek kadar bilgimi genişletmek isterdim

    • "Section 14.b & 14.c - Getting the data..." bölümünü tamamen anladım
    • 4 yıl boyunca 400K dosya (günde yaklaşık 275 fotoğraf) işledim
    • Bu kadar çok işlem gücü, depolama ve ağa rağmen medya senkronizasyon uygulamaları çöküyor ya da yavaş senkronizasyon sorunları yaşıyor
    • AirDrop başarısız oluyor ve 'Select-All' UI işlevi eksik
  • AVR örneklerini seviyorum, artık yeni bir örnek daha var

    • Frekans ve güç tüketimi düşünüldüğünde ne kadar RF çıktığını merak ediyorum
    • "soubroutine" kelimesi muhtemelen bir yazım hatası
  • Bu proje ucuz değildi, Ebay koleksiyoncularına teşekkürler

    • LCD yerine VFD seçerdim, uzun derleme süreçlerinde VFD zarar görebilir
  • İnanılmaz bir proje

    • Yüksek PC bitlerinden şu anda neyin çalıştığı görülebiliyor
    • P.S.: İnternet üzerinden bir sunucunun IPMI'sinden daha hızlı kernel yüklüyor
  • Videoyu çekmek 9 gün sürdü, emülasyonda saniyede 4 saat

    • Neden Windows 95 kullandığını merak ediyorum
  • Bu tür projeler için bir Nobel ödülü lazım

  • Okuması çok ilginçti

    • 4004 hakkında biraz bilgim vardı ama o seviyedeki karmaşıklık şaşırtıcıydı
    • Aynı transistör sayısıyla bir CPU yapılıp yapılamayacağını merak ettim
    • 8 bit programlamayı çok daha kolay hale getiriyor
    • Çalışmayı bu kadar iyi belgelendirdiği için teşekkürler
  • İlk mikro bilgisayarlarda sanal makineler (Z-machine ya da JVM) çalışıyordu

  • "Why MIPS?" bölümünde:

    • Bazılarında yavaş adresleme kipleri var (RISCV)
    • RISC-V adresleme kiplerinde neyin sorun olduğunu merak ediyorum