1 điểm bởi GN⁺ 2024-09-21 | 2 bình luận | Chia sẻ qua WhatsApp

Bắt đầu

  • Năm 2012, đã lập kỷ lục thế giới chạy Linux trên cỗ máy có cấu hình thấp nhất bằng cách chạy Linux trên vi điều khiển 8-bit (AVR)
  • Năm 2023, xuất hiện một dự án khởi động Linux trên MOS 6510 có cấu hình còn thấp hơn AVR
  • Intel 4004 là vi xử lý thương mại đầu tiên trên thế giới; dự án này được bắt đầu để thiết lập một chuẩn cấu hình tối thiểu mới với con chip 4-bit này

4004

  • 4004 hoạt động theo đơn vị 4-bit và chủ yếu được phát triển cho máy tính bỏ túi
  • Không có phép toán logic, chủ yếu chỉ có các lệnh ADD và SUB
  • Cách vận hành phép toán độc đáo sử dụng cờ carry
  • Có 16 thanh ghi 4-bit, bộ đếm chương trình 12-bit và ngăn xếp phần cứng 4 mức
  • Cần tốc độ xung nhịp tối thiểu và không hỗ trợ interrupt
  • Có một vài lệnh có thể thực hiện trực tiếp các thao tác bộ nhớ

Luồng điều khiển

  • Gọi và trả về chương trình con bằng ngăn xếp phần cứng
  • Có lệnh nhảy có điều kiện, và có thể phát hiện sự kiện bên ngoài thông qua chân TEST
  • Quản lý không gian mã 4096 byte bằng khái niệm trang mã

Bộ nhớ và I/O

  • 4004 không trực tiếp xử lý lệnh bộ nhớ; chip nhớ sẽ đảm nhiệm việc này
  • Hỗ trợ tối đa 8 bank RAM, mỗi bank gồm 4 chip 4002
  • 4001 bao gồm ROM 256 byte và cổng I/O 4-bit
  • 4265 là thiết bị I/O đa dụng, có 4 cổng I/O 4-bit

4008, 4009, 4289

  • 4008 và 4009 được thiết kế để có thể giao tiếp với các chip nhớ thông thường
  • 4289 là chip kết hợp 4008 và 4009, có thể giao tiếp ở mức tín hiệu 5V

Sử dụng bộ nhớ và nibble trạng thái

  • Dùng lệnh DCL để chọn bank bộ nhớ
  • Mỗi bank RAM gồm 4 chip 4002, và mỗi chip có 16 nibble địa chỉ hóa được cùng 4 nibble trạng thái

Tổng kết của GN⁺

  • Dự án này rất hữu ích để hiểu cách hoạt động của các vi xử lý đời đầu như Intel 4004
  • Cho thấy cách vượt qua thiết kế độc đáo và các chức năng hạn chế của 4004
  • Mang lại cơ hội trải nghiệm các giới hạn của vi xử lý đời đầu khi so sánh với vi điều khiển hiện đại
  • Một dự án tương tự về chức năng là dự án khởi động Linux trên MOS 6510

2 bình luận

 
y15un 2024-09-21

Tác giả bài gốc chính là người vừa bị kéo xuống khỏi sân khấu ở DEF CON vì vụ liên quan đến badge lần này. Tôi sẽ không đứng về phía nào, nhưng dù sao thì năng lực của ông ấy thực sự rất đáng nể.

 
GN⁺ 2024-09-21
Ý kiến trên Hacker News
  • Tôi từng nghĩ NetBSD chạy chậm trên m68030 15 MHz, nhưng dự án này thực sự quá ấn tượng

    • Vào cuối thập niên 80 và đầu 90, khi máy tính bắt đầu có thiết bị lưu trữ bền vững, không gian địa chỉ mở và MMU, chúng đã đạt tới mức điện toán hiện đại
    • Amiga 3000 hay máy tính i80486 cũng có thể thực hiện các chức năng giống như máy tính hiện đại
    • Dmitry cho thấy có thể nới lỏng định nghĩa của "chức năng" đến mức nào
  • Tôi muốn mở rộng kiến thức của mình đến mức có thể hiểu được dự án này

    • Tôi đã hiểu hoàn toàn phần "Section 14.b & 14.c - Getting the data..."
    • Tôi đã xử lý 400K tệp trong 4 năm (khoảng 275 bức ảnh mỗi ngày)
    • Dù có rất nhiều năng lực xử lý, dung lượng lưu trữ và mạng, các ứng dụng đồng bộ media vẫn bị crash hoặc gặp vấn đề đồng bộ chậm
    • AirDrop thất bại và UI thiếu tính năng 'Select-All'
  • Tôi thích các ví dụ về AVR, giờ lại có thêm một ví dụ mới

    • Xét về tần số và mức tiêu thụ điện, tôi tò mò không biết nó phát ra RF nhiều đến đâu
    • Có lẽ "soubroutine" là một lỗi chính tả
  • Dự án này không hề rẻ, xin cảm ơn các nhà sưu tầm trên Ebay

    • Tôi có lẽ đã chọn VFD thay vì LCD, dù VFD có thể bị xuống cấp khi biên dịch trong thời gian dài
  • Một dự án đáng kinh ngạc

    • Có thể nhìn thấy thứ đang chạy hiện tại ở các bit cao của PC
    • P.S.: Nó tải kernel còn nhanh hơn IPMI của máy chủ qua Internet
  • Quay video mất 9 ngày, với tốc độ mô phỏng là 4 giờ mỗi giây

    • Tôi tự hỏi vì sao lại dùng Windows 95
  • Loại dự án như thế này xứng đáng có giải Nobel

  • Bài đọc rất thú vị

    • Tôi có biết chút ít về 4004, nhưng mức độ rối rắm đến vậy thật đáng ngạc nhiên
    • Tôi bắt đầu tự hỏi liệu có thể tạo ra CPU với cùng số lượng transistor đó không
    • 8-bit khiến việc lập trình dễ hơn rất nhiều
    • Cảm ơn vì đã tài liệu hóa công việc rất tốt
  • Máy ảo (Z-machine hay JVM) từng hoạt động trên các máy vi tính đời đầu

    • Điều đó hữu ích khi không thể dùng làm target cho compiler
    • SWEET16
    • UCSD Pascal
  • Trong phần "Why MIPS?":

    • Một số kiến trúc có chế độ địa chỉ hóa chậm (RISCV)
    • Tôi thắc mắc vấn đề của chế độ địa chỉ hóa trong RISC-V là gì