Chặng đường để tự thiết kế một CPU đơn giản?

Thứ Hai, 08 tháng 12, 2025

Hãy tưởng tượng một ngày nào đó, bạn nhận được đề bài tập lớn của môn học: “Thiết kế một vi xử lý RISC-V 32-bit.”
Trong khi mình chỉ nắm trong tay các kiến thức của môn kỹ thuật số cơ bản mà mình đã học trong kỳ trước. Vậy bạn sẽ làm gì và bắt đầu như thế nào?

Nghe thì có vẻ cao siêu và khó nhằn, nhưng thực tế CPU cũng chỉ được ghép lại từ chính những phần tử logic cơ bản mà bạn đã học. Chỉ cần bạn biết mình phải bắt đầu từ đâu và ghép chúng lại như thế nào. Giống như trò chơi LEGO vậy. Bạn phải biết mình đang lắp ghép cái gì và dùng những khối đúng đắn để tạo nên một hình thù to lớn.

Điều đầu tiên, các bạn phải hiểu rõ những khối logic cơ bản trong phần cứng, và cách mô tả chúng bằng ngôn ngữ mô tả phần cứng (Verilog, SystemVerilog). Những module tưởng chừng đơn giản như mux, bộ mã hóa, bộ giải mã, bộ đếm, mạch phát hiện cạnh, thanh ghi… chính là nền móng để xây dựng mọi cấu trúc phức tạp bên trong CPU. Khi bạn hiểu dữ liệu chảy qua mux như thế nào, tín hiệu điều khiển làm việc ra sao, và một trigger cạnh lên khiến thanh ghi thay đổi như thế nào… thì bạn đã nắm trong tay những viên gạch đầu tiên để dựng lên bất kỳ hệ thống số nào.

Nhưng chỉ hiểu kỹ thuật số không thì vẫn thiếu đi một thứ quan trọng, đó là hiểu cách một hệ thống máy tính vận hành. Điều này không đòi hỏi bạn phải biết tất cả mọi thứ về kiến trúc máy tính, nhưng bạn cần nắm được vài khái niệm nền như CPU lấy lệnh từ đâu, PC hoạt động ra sao, cách bộ nhớ được địa chỉ hóa, load/store diễn ra như thế nào, và vai trò của thanh ghi trong một kiến trúc. Những khái niệm này giúp bạn hiểu vì sao CPU cần khối này, và khối đó phải làm gì thay vì chỉ lắp ghép trong vô thức. Khi hiểu được hệ thống vận hành ở mức tổng thể, việc ráp từng module trở nên hợp lý và có mục đích.

Tiếp theo, và có thể là quan trọng nhất, chính là hiểu tập lệnh mà bạn sẽ sử dụng cho CPU của mình. Nếu coi CPU là người thợ, thì tập lệnh chính là tập hợp các kỹ năng của người thợ đó. Bạn phải trả lời được câu hỏi: CPU của mình sẽ biết làm những gì? Với RISC-V, bạn không nhất thiết phải hỗ trợ đầy đủ các extension đồ sộ. Người mới thường chỉ cần chọn một nhóm lệnh cực nhỏ trong RV32I: vài phép cộng trừ logic, vài lệnh nạp và lưu, cùng vài lệnh nhảy. Khi đọc từng lệnh, bạn sẽ thấy nó mô tả cụ thể: cần bao nhiêu nguồn dữ liệu, lấy dữ liệu từ đâu, phải tính cái gì, đưa kết quả đi đâu. Chính phần này sẽ quyết định cấu trúc của ALU, số cổng đọc của register file, kiểu immediate cần giải mã, và cả cách bạn điều khiển PC. Khi bạn hiểu được một lệnh mô tả điều gì, bạn đang thực sự hiểu CPU cần phải xây như thế nào.

Khi đã nắm được tập lệnh, bạn bắt đầu xây những khối nền tảng. Register file thường là điểm xuất phát hợp lý. Dữ liệu của hầu hết lệnh đều nằm trong các thanh ghi, nên bạn cần một khối chứa khoảng 16 hoặc 32 thanh ghi, cho phép mỗi chu kỳ đọc hai giá trị và ghi một giá trị. Chính từ dữ liệu đọc ra này, ALU có nguyên liệu để hoạt động.

Sau đó, bạn bắt đầu xây dựng ALU. Đây là khối làm các phép tính cơ bản như cộng, trừ, AND, OR, XOR. Nếu tập lệnh bạn chọn có thêm phép dịch, bạn chỉ cần thêm mạch shift. Khi ALU hoạt động xong, bạn cho kết quả quay lại register file. Ở giai đoạn này, CPU của bạn đã chạy được những chương trình tuyến tính, nơi PC chỉ tăng dần mà không có nhánh rẽ.

Tuy nhiên, một CPU mà chỉ biết chạy thẳng thì giống như chiếc xe chỉ có ga mà không có lái. Đây là lúc bạn thêm cờ trạng thái. Khi ALU tính toán, bạn có thể sinh ra cờ zero, sign, carry, overflow… Các cờ này là tín hiệu để CPU đưa ra quyết định xem có nên nhảy sang địa chỉ khác hay không. Với việc bổ sung các lệnh nhảy theo điều kiện, chương trình của bạn đã biết rẽ nhánh và lặp lại.

Tiếp theo, bạn cần để CPU làm việc với dữ liệu nằm ngoài thanh ghi. Điều này dẫn đến việc thêm bộ nhớ dữ liệu (DMEM) và bộ nhớ lệnh (IMEM). Bạn có thể sử dụng Harvard architecture (tách riêng IMEM và DMEM) cho dễ tiếp cận. IMEM chỉ đọc để lấy lệnh, còn DMEM phục vụ load/store. Khi bộ nhớ xuất hiện, bạn đồng thời bổ sung thêm kiểu địa chỉ hoá như immediate và load/store theo địa chỉ.

Đến thời điểm này, CPU của bạn đã đủ để được gọi là một “Very Small Instruction Set Processor”: có register file, có ALU, có cờ nhảy, có bộ nhớ, có vài kiểu addressing, và quan trọng nhất là có tập lệnh rõ ràng, gọn gàng, phù hợp với khả năng của người mới.

Điều thú vị là khi bạn ghép xong tất cả, bạn sẽ nhận ra CPU không phải là thứ gì quá bí ẩn. Nó không khác mấy so với các bài lab trước đây, chỉ là bạn gom tất cả các module nhỏ thành một hệ thống lớn hơn, có tổ chức hơn. Và bài tập tưởng chừng khổng lồ ấy lại giúp bạn mở cánh cửa đến thế giới kiến trúc máy tính, pipeline, bus, và cả các hệ thống SoC hoàn chỉnh.

——————————————————

Hiện tại ICTC đang mở các khóa học thiết kế vi mạch từ cơ bản đến nâng cao, các bạn có thể tìm hiểu tại các bài viết sau nhé:

 

Truy cập Server EDA Miễn Phí của ICTC để thực hành thiết kế vi mạch:
Truy cập Server EDA Miễn Phí

 

Thứ Hai, 08 tháng 12, 2025

Đội Ngũ Giảng Viên Đến Từ Các Công ty vi mạch hàng đầu với NHiều năm kinh nghiệm

Khóa học thiết kế vi mạch ICTC giảng viên từ Ampere
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ MediaTek Singapore
Khóa học thiết kế vi mạch ICTC giảng viên từ BOS
Khóa học thiết kế vi mạch ICTC giảng viên từ Marvell
Khóa học thiết kế vi mạch ICTC giảng viên từ Renesas
Khóa học thiết kế vi mạch ICTC giảng viên từ NSING

Nổi Bật

Workshop Làm Quen Với Linux

Workshop Làm Quen Với Linux

Để giúp các bạn làm quen với command line, terminal trong Linux, ICTC sẽ tổ chức một buổi workshop về Linux với cơ hội thực hành trực tiếp trên Server ICTC cùng host là anh Thông (người xây dựng và quản lý Server ICTC). Nội dung workshop: Hướng dẫn làm quen và thực...

Final Project Của Lớp Thiết Kế Vi Mạch Cơ Bản

Final Project Của Lớp Thiết Kế Vi Mạch Cơ Bản

Boom!  Cảm giác vỡ òa khi màn hình hiện kết quả design của bạn đã "pass" golden model – cửa ải cuối cùng trước khi “tốt nghiệp”!À quên, còn một điều kiện là coverage phải đủ nữa nha  Nhưng mà... cái cảm giác được thông báo ALL_PASSED vẫn là một điều gì đó thật đặc...

Bài Viết Mới

Vi xử lý 8-bit và khởi đầu của trí tưởng tượng trên silicon

Vi xử lý 8-bit và khởi đầu của trí tưởng tượng trên silicon

Có một nhà sưu tầm đã dành hàng giờ bên kính hiển vi, chụp 216 tấm ảnh rồi ghép chúng lại để tạo ra điều kỳ diệu: toàn bộ layout của bộ vi xử lý Intel 8008.Mỗi đường kim loại nhỏ xíu, mỗi bond pad tròn trịa… đều từng mang trên mình những lệnh 8-bit đầu tiên của lịch...

Quốc Gia Nào Có Nhiều Nhà Máy Bán Dẫn Nhất?

Quốc Gia Nào Có Nhiều Nhà Máy Bán Dẫn Nhất?

1. Nhật Bản: 102 nhà máyDẫn đầu thế giới nhờ đầu tư R&D mạnh, quy trình sản xuất tiên tiến và văn hóa kỹ thuật chính xác. 2. Đài Loan: 77 nhà máyVới các tên tuổi như TSMC và MediaTek, Đài Loan nổi bật ở công nghệ sản xuất hiện đại và hợp tác chiến lược toàn cầu....

Cleanroom – Nơi Không Dành Cho Bụi

Cleanroom – Nơi Không Dành Cho Bụi

Trong sản xuất bán dẫn, một hạt bụi nhỏ hơn sợi tóc hàng nghìn lần cũng có thể khiến làm hỏng cả con chip. Khi các linh kiện được chế tạo ở cấp độ nanomet, việc duy trì một môi trường tuyệt đối sạch là điều kiện bắt buộc. Đó là lý do vì sao cleanroom ra đời. Nó không...

BẠN CHƯA BIẾT BẮT ĐẦU TỪ ĐÂU?

Sau nhiều năm tư vấn và đào tạo vi mạch cho hàng trăm bạn sinh viên, học sinh và phụ huynh, kết hợp với kinh nghiệm từ các anh chị kỹ sư vi mạch có nhiều năm kinh nghiệm, đây là tất cả những kinh nghiệm và tài liệu mà mình đúc kết, tổng hợp lại được thành một quy trình tìm hiểu ngành vi mạch để các bạn mình mới tham gia vào ngành có thể bắt đầu một cách hiệu quả nhất.

 

Bấm nút bên dưới để tìm hiểu về ngành, về nghề nghiệp cũng như những thứ bản thân cần chuẩn bị để tham gia vào hành trình trở thành kỹ sư vi mạch tuy có phần gian nan nhưng vô cùng thú vị bạn nhé!

LỘ TRÌNH TỰ HỌC VI MẠCHGROUP CHAT HỌC TẬP VI MẠCH