Hành trình chế tạo CPU TD4 4-bit: Bài học về kiến trúc máy tính từ những con chip logic cơ bản
TD4 là một bộ vi xử lý 4-bit nổi tiếng được xây dựng hoàn toàn từ các mạch tích hợp logic TTL cơ bản. Bài viết này chia sẻ hành trình lắp ráp, kiến trúc mạch và trải nghiệm lập trình thực tế với dự án phần cứng giáo dục thú vị này.

TD4 là một bộ vi xử lý 4-bit nổi tiếng được giới thiệu trong cuốn sách How to Build a CPU của Kaoru Tonami. Cuốn sách tập trung vào việc chế tạo một bộ vi xử lý hoạt động hoàn chỉnh chỉ từ các IC logic TTL dòng 74 cơ bản. Mặc dù cuốn sách hiện chỉ có bằng tiếng Nhật, nhưng nhờ sự hỗ trợ của một người bạn tại Nhật Bản, tôi đã có được bản cứng cùng với một tấm mạch in PCB TD4. Tôi tin rằng tấm PCB này được dựa trên các tệp thiết kế mã nguồn mở có sẵn trên kho lưu trữ GitHub của BG5DIW.
Cuốn sách và mạch PCB TD4
Gần đây, tôi cuối cùng cũng đã tìm thấy thời gian để xây dựng và thực nghiệm với dự án này. Dự án kéo dài vài tháng vì tôi phải tự dịch cuốn sách để nắm bắt được các khái niệm cốt lõi. Thiết kế tổng thể rất tối giản và tinh tế, cung cấp một bộ gồm 12 lệnh指令 và bộ nhớ ROM 16 byte (được triển khai thông qua các công tắc DIP) để lập trình. Bo mạch hoạt động ở mức điện áp 5V và có thể được cấp nguồn qua USB. Hầu hết các linh kiện đều được mua từ các cửa hàng địa phương, dù tôi phải đặt mua một số IC dòng 74HC trực tuyến. Sau này, tôi đã kiểm tra mạch bằng cách thay thế một số thành phần 74HC bằng chip dòng 74LS và mọi thứ hoạt động bình thường.
Quá trình lắp ráp và thách thức
Tấm PCB khá đơn giản để hàn. Các linh kiện bề mặt gắn (SMD) duy nhất là bốn đèn LED và cổng Micro-USB. Nếu bạn chưa từng hàn linh kiện SMD trước đây, cổng USB có trông có vẻ đáng sợ, nhưng bạn chỉ cần hàn chân số 1 và chân số 5 (các chân còn lại không được sử dụng trong thiết kế này).
CPU TD4 sau khi lắp ráp hoàn thiện
Phần tốn nhiều thời gian nhất trong quá trình lắp ráp là hàn các đi-ốt 1N4148. Cuốn sách gợi ý sử dụng đi-ốt 1S1588 hoặc mạng đi-ốt D8-1A, nhưng những linh kiện này rất khó tìm mua tại địa phương hoặc trực tuyến. Do đó, tôi quyết định sử dụng các đi-ốt 1N4148 riêng lẻ. Trong kiến trúc TD4, các đi-ốt này hoạt động như một Ma trận ROM (Diode Matrix ROM). Vì "chương trình" được lưu trữ thông qua các công tắc DIP vật lý, các đi-ót đóng vai trò là cổng một chiều. Chúng ngăn chặn dòng điện ngược trở lại các phần khác của mạch khi nhiều công tắc được bật, hiệu quả tạo ra các cổng logic cần thiết để giải mã địa chỉ bộ nhớ 16 byte thành các lệnh 4-bit cụ thể để CPU thực thi.
Kiến trúc và hoạt động của TD4
Sau khi lắp ráp hoàn tất, TD4 đã sẵn sàng sử dụng ngay lập tức; không cần firmware hay hiệu chỉnh nào. PCB cung cấp hai tùy chọn nguồn điện: cách dễ nhất là qua cổng Micro-USB, và cách thứ hai là qua header pin 2.54mm. Tôi đã sử dụng header pin để gắn dây nguồn cho đầu dò logic của mình, điều này rất cần thiết khi tôi nghiên cứu hoạt động của mạch song song với việc đọc sách.
TD4 là một bộ vi xử lý sử dụng logic dây cứng (hard-wired logic), nghĩa là nó không sử dụng vi mã (microprogram); mọi lệnh đều được thực thi bởi các đường dẫn điện trực tiếp qua các cổng logic. Bộ chip điển hình bao gồm:
- 74HC161: Dùng cho thanh ghi A và B và Cổng đầu ra.
- 74HC161: Một bộ đếm 4-bit khác dùng cho Bộ đếm chương trình (PC).
- 74HC153: Các bộ chọn đa công (Multiplexers) đóng vai trò bộ chọn cho đầu vào ALU.
- 74HC283: Được cấu hình sebagai ALU 4-bit.
- 74HC10 và 74HC32: Các cổng NAND/AND được dùng cho bộ giải mã lệnh.
Xung nhịp được tạo ra bởi một mạch dao động 74HC14 đơn giản, cho phép bạn duyệt qua từng lệnh theo cách thủ công hoặc chạy ở tần số rất thấp để quan sát các đèn LED nhấp nháy khi dữ liệu di chuyển giữa các thanh ghi.
Kiểm tra logic và hoạt động của CPU
Trải nghiệm lập trình
Phần thú vị nhất của dự án này là lập trình cho hệ thống. Do không gian địa chỉ bị giới hạn, các tác vụ bạn có thể thực hiện khá khiêm tốn. Tôi đã thử nghiệm với các hệ thống đếm khác nhau và tất cả đều hoạt động như预期. Ban đầu, tôi viết mã trên giấy và tính toán vị trí công tắc DIP thủ công dựa trên tập lệnh trong sách.
Để đơn giản hóa quá trình này, tôi đã phát triển một tiện ích web nhỏ sử dụng JavaScript chuyển đổi mã nguồn assembler trực tiếp thành vị trí công tắc DIP. Điều này cho phép tôi lặp lại nhanh chóng và thử nghiệm các logic phức tạp hơn. Bạn có thể tìm thấy tiện ích TD4 Assembler này tại GitHub của tôi.
Đây là một trong các chương trình đếm mà tôi đã kiểm thử với CPU. Thao tác cụ thể này đọc đầu vào từ các công tắc DIP và tăng giá trị lên sau mỗi chu kỳ xung nhịp. Khi bộ đếm đạt đến giá trị 0xF, nó sẽ đặt lại về giá trị bắt đầu do người dùng chỉ định và tiếp tục đếm:
in b
out b
add b, 1
jnc 1
jmp 0
TD4 là bài "Hello World" hoàn hảo cho kiến trúc máy tính vì nó gạt bỏ sự phức tạp của các bộ vi xử lý hiện đại. Không có lớp ẩn nào — không có vi mã, không có bộ nhớ đệm phức tạp và không có hệ điều hành. Bằng cách xây dựng nó, bạn thấy chính xác cách một bit di chuyển từ một công tắc, qua bộ chọn đa công (multiplexer), và vào một thanh ghi. Nó giải mã mối quan hệ giữa phần cứng vật lý và logic phần mềm, biến nó thành một công cụ giáo dục vô giá cho bất kỳ ai quan tâm đến hệ thống nhúng hoặc kỹ thuật điện tử.
Bài viết liên quan

Công nghệ
Bị AI từ chối hồ sơ xin việc? Cuộc chiến đơn độc của một sinh viên y khoa
05 tháng 5, 2026

Công nghệ
Tổng hợp thị trường M&A an ninh mạng: 33 thương vụ được công bố trong tháng 4/2026
04 tháng 5, 2026

Công nghệ
Nhà xuất bản cáo buộc Mark Zuckerberg cá nhân chỉ đạo vi phạm bản quyền để đào tạo AI Llama
05 tháng 5, 2026
