เริ่มต้น
- ในปี 2012 มีการรัน Linux บนไมโครคอนโทรลเลอร์ 8 บิต (AVR) และสร้างสถิติโลกในการรัน Linux บนเครื่องที่มีสเปกต่ำที่สุด
- ในปี 2023 มีโปรเจ็กต์ที่บูต Linux บน MOS 6510 ซึ่งมีสเปกต่ำกว่า AVR อีก
- Intel 4004 เป็นไมโครโปรเซสเซอร์เชิงพาณิชย์ตัวแรกของโลก เป็นชิป 4 บิต จึงเริ่มโปรเจ็กต์นี้เพื่อสร้างมาตรฐานใหม่ของสเปกต่ำที่สุด
4004
- 4004 ทำงานเป็นหน่วย 4 บิต และพัฒนามาเพื่อใช้กับเครื่องคิดเลขเป็นหลัก
- ไม่มีการดำเนินการเชิงตรรกะ และมีคำสั่งหลักเพียง ADD กับ SUB
- มีรูปแบบการคำนวณที่เป็นเอกลักษณ์โดยใช้ carry flag
- มีรีจิสเตอร์ 4 บิต 16 ตัว, program counter 12 บิต และฮาร์ดแวร์สแตก 4 ระดับ
- ต้องการความเร็วสัญญาณนาฬิกาขั้นต่ำ และไม่รองรับ interrupt
- มีคำสั่งบางอย่างที่สามารถดำเนินการกับหน่วยความจำได้โดยตรง
การควบคุมลำดับการทำงาน
- ใช้ฮาร์ดแวร์สแตกสำหรับการเรียกและคืนค่าซับรูทีน
- มีคำสั่งกระโดดแบบมีเงื่อนไข และสามารถตรวจจับเหตุการณ์ภายนอกผ่านขา TEST
- ใช้แนวคิด code page เพื่อจัดการพื้นที่โค้ดขนาด 4096 ไบต์
หน่วยความจำและ I/O
- 4004 ไม่ประมวลผลคำสั่งหน่วยความจำโดยตรง แต่ให้ชิปหน่วยความจำเป็นผู้จัดการ
- รองรับ RAM bank ได้สูงสุด 8 ชุด โดยแต่ละชุดประกอบด้วยชิป 4002 จำนวน 4 ตัว
- 4001 มี ROM ขนาด 256 ไบต์และพอร์ต I/O 4 บิต
- 4265 เป็นอุปกรณ์ I/O ทั่วไปที่มีพอร์ต I/O 4 บิต 4 พอร์ต
4008, 4009, 4289
- 4008 และ 4009 ถูกออกแบบมาเพื่อเชื่อมต่อกับชิปหน่วยความจำทั่วไป
- 4289 เป็นชิปที่รวม 4008 และ 4009 เข้าด้วยกัน และสื่อสารได้ที่ระดับสัญญาณ 5V
การใช้หน่วยความจำและ state nibble
- ใช้คำสั่ง DCL เพื่อเลือก memory bank
- RAM bank แต่ละชุดประกอบด้วยชิป 4002 จำนวน 4 ตัว โดยแต่ละชิปมี nibble ที่ระบุตำแหน่งได้ 16 ค่า และ state nibble 4 ค่า
สรุปโดย GN⁺
- โปรเจ็กต์นี้ช่วยให้เข้าใจวิธีการทำงานของไมโครโปรเซสเซอร์ยุคแรกอย่าง Intel 4004 ได้เป็นอย่างดี
- แสดงให้เห็นวิธีเอาชนะการออกแบบที่เป็นเอกลักษณ์และข้อจำกัดของ 4004
- เปิดโอกาสให้ได้สัมผัสข้อจำกัดของไมโครโปรเซสเซอร์ยุคแรกเมื่อเทียบกับไมโครคอนโทรลเลอร์สมัยใหม่
- โปรเจ็กต์ที่มีลักษณะคล้ายกันคือโปรเจ็กต์บูต Linux บน MOS 6510
2 ความคิดเห็น
คนเขียนต้นฉบับคือคนนั้นเองที่เพิ่งถูกพาตัวลงจากเวทีในงาน DEF CON เพราะเรื่องแบดจ์ครั้งนี้ ผมจะไม่เข้าข้างฝ่ายไหน แต่ถึงอย่างนั้นฝีมือของเขาก็น่าทึ่งจริง ๆ
ความคิดเห็นจาก Hacker News
เคยคิดว่า NetBSD บน m68030 15 MHz ก็ช้าแล้ว แต่โปรเจกต์นี้สุดยอดจริงๆ
อยากเพิ่มพูนความรู้จนสามารถเข้าใจโปรเจกต์นี้ได้
ชอบตัวอย่าง AVR อยู่แล้ว และตอนนี้ก็มีตัวอย่างใหม่เพิ่มมาอีก
โปรเจกต์นี้ไม่ได้ถูกเลย ต้องขอบคุณนักสะสมบน Ebay
เป็นโปรเจกต์ที่น่าทึ่งมาก
ใช้เวลาถ่ายวิดีโอ 9 วัน, อีมูเลชันได้ 4 ชั่วโมงต่อ 1 วินาที
โปรเจกต์แบบนี้ควรมีรางวัลโนเบล
เป็นบทความที่น่าสนใจมาก
บนไมโครคอมพิวเตอร์ยุคแรกๆ มี virtual machine (Z-machine หรือ JVM) ที่ทำงานได้
ในส่วน "Why MIPS?":