TỔNG QUAN HỌC THUẬT VÀ NỘI DUNG GIÁO TRÌNH: "KHÁM PHÁ KIẾN TRÚC MÁY TÍNH VÀ KỸ THUẬT TỔ CHỨC"
Tổng quan về giáo trình
Giáo trình "Khám Phá Kiến Trúc Máy Tính và Kỹ Thuật Tổ Chức" do tác giả Phạm Văn Khoa (Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật) biên soạn, là tài liệu phục vụ công tác giảng dạy và nghiên cứu trong khối ngành kỹ thuật. Trong chương trình đào tạo đại học, học phần Kiến trúc Máy tính và Vi điều khiển giữ vị trí bản lề, kết nối giữa kiến thức điện tử số cơ bản với các hệ thống nhúng và ứng dụng Kết nối vạn vật (Internet of Things - IoT).
+-------------------------------------------------------------------------------+
| MÔ HÌNH HỆ THỐNG MÁY TÍNH TRÊN CHIP |
| |
| +--------------------------+ +-----------------------------+ |
| | Máy tính đa dụng | UART | Máy tính trên chip | |
| | (General Purpose System) | <----------> | (Specific Purpose / 8051) | |
| +--------------------------+ +--------------+--------------+ |
| | |
| +--------------+--------------+ |
| | - ALU & Thanh ghi (A, B, DPTR) |
| | - Bộ định thời (Timer 0/1) | |
| | - Hệ thống ngắt & Ngoại vi | |
| +-----------------------------+ |
+-------------------------------------------------------------------------------+
Mục tiêu học tập (Learning Outcomes) của tài liệu bao gồm:
- Nắm vững cấu trúc phần cứng và tổ chức vi kiến trúc của một máy tính có chức năng xác định (specific purpose computer) điển hình – họ vi điều khiển 8051.
- Hiểu rõ cơ chế quản lý thanh ghi, không gian địa chỉ bộ nhớ nội/ngoại, và chu kỳ máy (machine cycle) trong quá trình thực thi lệnh.
- Làm chủ phương pháp lập trình cấp thấp bằng Hợp ngữ (Assembly) và lập trình cấp cao bằng ngôn ngữ C.
- Thiết kế mạch nguyên lý, lưu đồ giải thuật và phát triển firmware điều khiển các khối ngoại vi cơ bản và nâng cao (LED, LCD, bàn phím ma trận, ADC, UART, mở rộng RAM/ROM).
Giáo trình có độ dài 169 trang, được chia thành 4 phần chính với cấu trúc sư phạm đi từ phân tích phần cứng, khảo sát tập lệnh, đến các bài thực hành thiết kế hệ thống hoàn chỉnh. Điểm đặc sắc của tài liệu là phương pháp tiếp cận thực nghiệm: tích hợp hệ thống 31 câu hỏi ôn tập chuyên sâu về phần cứng, phân tích chi tiết từng chu kỳ lệnh (CPI), và triển khai các đoạn mã nguồn mẫu gắn liền với môi trường mô phỏng thực tế.
Nội dung kiến thức cốt lõi
Các phần và chủ đề chính
Tài liệu được phân bổ thành 4 phần trọng tâm cùng hệ thống các bài thực hành chuyên đề:
CẤU TRÚC PHÂN BỔ NỘI DUNG TÀI LIỆU
Phần I: Phần cứng & Assembly (Thanh ghi, Cờ trạng thái, Quá trình biên dịch)
Phần II: Tập lệnh 8051 (Di chuyển, Tính toán số học, Luận lý, Chuyển đổi hệ số)
Phần III: Giao tiếp Ngoại vi bằng ASM (Cộng/trừ nhị phân, Timer 100Hz, Ngắt ngoài)
Phần IV: Giao tiếp Ngoại vi bằng C (LED, LCD, ADC, UART, Bộ nhớ RAM/ROM)
1. Phần I: Khảo sát kiến trúc phần cứng 8051 và ngôn ngữ hợp ngữ (Trang 9 - 18)
- Khảo sát vi kiến trúc thanh ghi: Phân tích chức năng và kích thước của các thanh ghi 8-bit và 16-bit, bao gồm Thanh ghi tích lũy
A (Accumulator), thanh ghi phụ B, con trỏ dữ liệu DPTR (DPL và DPH), bộ đếm chương trình PC, con trỏ ngăn xếp SP, và các thanh ghi đa dụng từ R0 đến R7.
- Cơ chế hoạt động của ngăn xếp và cổng I/O: Phân tích sự biến thiên của thanh ghi
SP khi thực hiện thao tác PUSH/POP, giá trị khởi tạo khi reset; cấu hình các cổng P0, P1, P2, P3, cơ chế truy cập theo bit và đặc tính "read-modify-write".
- Cấu trúc chương trình Hợp ngữ: Quy định định dạng dòng lệnh hợp ngữ gồm 4 trường
[label:] Mnemonic [operands] [;comment], phân biệt các chỉ dẫn biên dịch (Assembler Directives như ORG, END) không tạo mã máy với các lệnh tạo mã thao tác (Opcode).
2. Phần II: Khảo sát tập lệnh được hỗ trợ đối với vi điều khiển họ 8051 (Trang 19 - 40)
- Bài thực hành số 1 (Di chuyển và trao đổi dữ liệu): Khảo sát các lệnh
MOV, MOVX, phương pháp truy xuất bộ nhớ nội và ngoại qua con trỏ @R0, @R1, @DPTR. Triển khai thuật toán tìm giá trị nhỏ nhất/lớn nhất trong mảng và thuật toán sắp xếp nổi bọt (Bubble Sort) trên mảng dữ liệu đặt tại vùng nhớ 9000H.
- Bài thực hành số 2 (Tính toán số học): Thực hiện phép cộng/trừ 8-bit và 16-bit có nhớ (
ADD, ADDC, SUBB); phép nhân/chia 8-bit (MUL AB, DIV AB), khảo sát sự thay đổi của cờ tràn OV và cờ nhớ CY.
- Bài thực hành số 3 (Xử lý luận lý và bộ đếm): Sử dụng các lệnh logic
ANL, ORL, XRL, lệnh quay bit RL, RR, RLC, RRC, lệnh đảo bit CPL. Xây dựng thuật toán đếm số lượng bit 0 và 1 trong một byte, tạo bộ đếm tiến hệ thập lục phân (HEX) và bộ đếm BCD có hiệu chỉnh bằng lệnh DA A.
- Bài thực hành số 4 (Chuyển đổi giá trị hệ thống số): Thuật toán chuyển đổi qua lại giữa các định dạng dữ liệu: BCD sang ASCII (
+30H), số nhị phân (BIN) sang thập phân (DEC) thông qua phép chia liên tiếp cho 0AH, và các bảng quy đổi hệ 2, hệ 10, hệ 16.
BẢNG TRA CỨU MỘT SỐ NHÓM LỆNH VÀ CƠ CHẾ TÁC ĐỘNG THANH GHI
3. Phần III: Lập trình giao tiếp 8051 và ngoại vi sử dụng ASM (Trang 41 - 74)
- Bài thực hành số 1: Thiết kế sơ đồ nguyên lý mạch cộng/trừ 2 số nhị phân nhập từ công tắc và hiển thị kết quả ra LED đơn kết nối qua cổng
P0, P1, P2, điều khiển qua chân P3.1 và P3.2.
- Bài thực hành số 2: Cấu hình bộ định thời Timer 0 ở Chế độ 1 (16-bit) và Chế độ 2 (Auto-reload) thông qua thanh ghi
TMOD, IE, nạp giá trị đếm để tạo xung dao động tần số 100Hz và 10Hz tại chân P1.0 bằng ngắt định thời TIMER_INT0 (0BH).
- Bài thực hành số 3 & 4: Kỹ thuật quét bàn phím ma trận sử dụng ngắt ngoài (
EX_INT0 tại 03H), giải mã hiển thị LED 7 đoạn và thiết kế máy tính bỏ túi thực hiện phép tính cộng/trừ 2 chữ số.
4. Phần IV: Lập trình giao tiếp 8051 và ngoại vi sử dụng C (Trang 75 - 168)
Phần này chuyển giao phương pháp lập trình từ Hợp ngữ sang ngôn ngữ C với 7 bài thực hành ứng dụng:
- Bài 1 & 2: Điều khiển LED đơn và ghép tầng hiển thị LED 7 đoạn.
- Bài 3 & 4: Quét phím ma trận và giao tiếp điều khiển hiển thị ký tự trên màn hình LCD.
- Bài 5: Giao tiếp bộ chuyển đổi tín hiệu tương tự sang số (ADC).
- Bài 6: Cấu hình truyền thông nối tiếp dị bộ UART (truyền nhận dữ liệu giữa máy tính trên chip và máy tính đa dụng).
- Bài 7: Kỹ thuật ghép nối mở rộng không gian nhớ RAM và ROM ngoài.
Kiến thức nền tảng được xây dựng
Giáo trình xây dựng hệ thống lý thuyết có tính liên kết chặt chẽ:
- Mô hình kiến trúc vi xử lý 8-bit: Nguyên lý hoạt động của khối số học và logic (ALU), con trỏ chương trình, hệ thống bus dữ liệu và bus địa chỉ.
- Không gian bộ nhớ: Cơ chế định địa chỉ trực tiếp, gián tiếp qua thanh ghi, định địa chỉ tức thời, và phân biệt giữa bộ nhớ dữ liệu nội, bộ nhớ dữ liệu ngoại (
MOVX) và bộ nhớ chương trình (MOVC).
- Cơ chế ngắt (Interrupt Architecture): Xử lý vector ngắt phần cứng, bao gồm ngắt ngoài (
IE0, IE1), ngắt bộ định thời (TF0, TF1), ngắt cổng nối tiếp (TI/RI), và thứ tự ưu tiên ngắt.
- Phân tích hiệu năng hệ thống: Đánh giá số chu kỳ máy (machine cycle) trên từng lệnh, khái niệm số chu kỳ trên mỗi lệnh (CPI - Cycles Per Instruction), và phương pháp tối ưu hóa thời gian thực thi thuật toán với tần số dao động thạch anh (như 12MHz).
Kỹ năng phát triển cho người học
- Kỹ năng kỹ thuật (Technical Skills): Khả năng viết và tối ưu hóa mã nguồn hợp ngữ; cấu hình các thanh ghi chức năng đặc biệt (
SFR); thiết kế giải thuật điều khiển hệ thống nhúng bằng ngôn ngữ C.
- Kỹ năng phân tích (Analytical Skills): Phân tích mã máy (machine code), giải mã nguyên nhân phát sinh lỗi tràn cờ (
OV, CY), tính toán chính xác hằng số thời gian nạp cho bộ định thời để tạo tần số mong muốn.
- Kỹ năng thực hành (Practical Competencies): Sử dụng thành thạo các công cụ mô phỏng phần cứng và môi trường phát triển tích hợp (IDE) để kiểm tra, gỡ lỗi và nạp firmware.
Phương pháp giảng dạy và học tập
Giáo trình áp dụng mô hình sư phạm "Lý thuyết gắn liền với Phân tích ca học thuật và Thực hành mô phỏng":
+-------------------------------------------------------------------------------+
| QUY TRÌNH HỌC TẬP VÀ ĐÁNH GIÁ |
| |
| +-----------------------+ +-----------------------+ |
| | 1. Câu hỏi định hướng | ---> | 2. Lưu đồ giải thuật | |
| | (Phân tích thanh ghi) | | (Xây dựng logic ASM/C)| |
| +-----------------------+ +-----------+-----------+ |
| | |
| +-----------------------+ +-----------v-----------+ |
| | 4. Kiểm chứng phần cứng|<--- | 3. Biên dịch & Mô phỏng| |
| | (Proteus & EdSim51) | | (Keil IDE & Tính CPI) | |
| +-----------------------+ +-----------------------+ |
+-------------------------------------------------------------------------------+
- Hệ thống câu hỏi phản biện: Ngay từ Phần I, tài liệu đưa ra 31 câu hỏi ôn tập mang tính chất truy vấn sâu về kiến trúc (ví dụ: Phân biệt
MOV A, 40H và MOV A, #40H; Khác biệt giữa lệnh ADD và ADDC; Ảnh hưởng của cờ OV trong phép nhân/chia; So sánh tốc độ giữa lệnh MUL và bảng tra Look-up Table).
- Môi trường công cụ thực hành:
- EdSim51DITM / Keil: Dùng để biên dịch hợp ngữ, theo dõi sự thay đổi từng bit trong thanh ghi, bộ nhớ RAM và kiểm soát cờ trạng thái
PSW.
- Proteus ISIS: Dùng để vẽ sơ đồ nguyên lý mạch điện tử, kết nối các đường I/O của vi điều khiển với công tắc, LED, bộ định thời, màn hình LCD và chạy mô phỏng tương tác thời gian thực.
- Phương pháp tự học: Người học được yêu cầu phân tích lưu đồ giải thuật trước khi đọc mã nguồn, sau đó tính toán thời gian thực thi của CPU (dựa trên tần số 12MHz) và viết lại các đoạn mã tối ưu hơn (ví dụ: chuyển đổi giải thuật sắp xếp để giảm thời gian thực thi cho mảng 60 bytes).
Điểm nổi bật và tính ứng dụng
- Định vị trong bối cảnh IoT: Tài liệu phân tích rõ sự chuyển dịch từ các máy tính đa dụng (General Purpose Computer) sang các máy tính chuyên dụng (Specific Purpose Computer) được tích hợp trên chip, làm nền tảng tính toán nhúng trong các nút mạng cảm biến và thiết bị thông minh.
- Tính liên kết giữa Hợp ngữ và Ngôn ngữ C: Không dừng lại ở mức mô tả cú pháp, giáo trình tạo cầu nối rõ ràng giữa việc hiểu rõ cấu trúc phần cứng (thông qua ASM ở Phần I, II, III) với việc làm chủ kỹ thuật lập trình hệ thống ở tầng cao hơn (thông qua C ở Phần IV).
- Ứng dụng ngoại vi toàn diện: Các bài thực hành bao quát từ các khối vào/ra đơn giản đến các chuẩn giao tiếp phức tạp:
- Khối biến đổi tín hiệu tương tự sang số (ADC) phục vụ thu thập dữ liệu cảm biến.
- Chuẩn truyền thông nối tiếp dị bộ UART phục vụ ghép nối giữa vi điều khiển và máy tính.
- Kỹ thuật mở rộng bus địa chỉ/dữ liệu cho bộ nhớ ngoài RAM và ROM khi bộ nhớ nội của vi điều khiển không đủ đáp ứng.
Đối tượng sử dụng giáo trình
- Sinh viên đại học: Giáo trình được thiết kế trực tiếp cho sinh viên ngành Kỹ thuật Máy tính, Kỹ thuật Điện - Điện tử, Tự động hóa và Điện tử Viễn thông trong các học phần Kiến trúc máy tính, Vi xử lý và Hệ thống nhúng.
- Yêu cầu kiến thức tiên quyết (Prerequisites):
- Kiến thức Kỹ thuật số cơ bản (Hệ thống số nhị phân, thập lục phân, cổng logic, flip-flop, giải mã).
- Khái niệm cơ bản về cấu trúc dữ liệu và giải thuật logic.
- Ngôn ngữ lập trình C căn bản.
- Giảng viên: Tài liệu cung cấp khung đề cương chi tiết cho các buổi học lý thuyết kết hợp giờ thí nghiệm thực hành, có sẵn hệ thống sơ đồ nguyên lý, lưu đồ thuật toán và mã nguồn mẫu chuẩn hóa.
- Kỹ sư và người tự học: Phục vụ nghiên cứu về lập trình vi điều khiển cấp thấp, hiểu sâu bản chất hoạt động của CPU và cách tổ chức một hệ thống máy tính nhúng từ phần cứng đến phần mềm.
Câu hỏi thường gặp (FAQ)
1. Giáo trình này phù hợp với ai?
Tài liệu được biên soạn cho sinh viên, giảng viên khối ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Tự động hóa và các kỹ sư phần mềm nhúng muốn nắm vững kiến trúc phần cứng máy tính và kỹ thuật lập trình điều khiển mức thanh ghi.
2. Cần kiến thức nền nào trước khi học giáo trình này?
Người học cần có kiến thức nền tảng về Toán logic, Mạch số (các cổng logic, hệ thống số DEC, HEX, BIN, BCD) và nguyên lý lập trình cơ bản (tư duy giải thuật, cấu trúc điều kiện, vòng lặp).
3. Điểm khác biệt của giáo trình này so với các tài liệu vi xử lý khác là gì?
Tài liệu kết hợp chặt chẽ giữa phân tích vi kiến trúc máy tính (thanh ghi, chu kỳ lệnh, CPI, cờ trạng thái) với hai cấp độ lập trình: Hợp ngữ (ASM) để hiểu sâu bản chất phần cứng và ngôn ngữ C để xây dựng các ứng dụng giao tiếp ngoại vi thực tế (ADC, LCD, UART, RAM/ROM).
4. Làm sao để tự học và thực hành giáo trình hiệu quả?
Người học nên kết hợp đọc lý thuyết với việc sử dụng phần mềm Keil để biên dịch từng đoạn mã ASM/C, nạp vào mô hình mạch trên Proteus ISIS hoặc EdSim51DITM để quan sát sự thay đổi trạng thái của các thanh ghi và tín hiệu ngõ ra.
5. Giáo trình có cung cấp các ví dụ thực hành hoàn chỉnh không?
Có. Giáo trình cung cấp mã nguồn hợp ngữ và C đầy đủ cho từng bài thực hành, kèm theo sơ đồ nguyên lý mạch vẽ bằng Proteus, lưu đồ giải thuật chi tiết và các câu hỏi tính toán chu kỳ máy thực thi.
Kết luận
Giáo trình "Khám Phá Kiến Trúc Máy Tính và Kỹ Thuật Tổ Chức" của tác giả Phạm Văn Khoa là tài liệu học thuật có cấu trúc sư phạm chặt chẽ, kết hợp hài hòa giữa nguyên lý kiến trúc máy tính và kỹ thuật lập trình hệ thống nhúng.
Lộ trình học tập đề xuất:
- Nghiên cứu cấu trúc thanh ghi, cổng I/O và trả lời 31 câu hỏi ôn tập tại Phần I.
- Thực hành các nhóm lệnh số học, logic, mảng dữ liệu và tính toán chu kỳ CPI tại Phần II.
- Thiết kế mạch nguyên lý, lập trình ASM điều khiển ngắt và bộ định thời tại Phần III.
- Nâng cao kỹ năng với lập trình C cho các ngoại vi ADC, LCD, UART và mở rộng bộ nhớ tại Phần IV.
Công cụ bổ trợ yêu cầu: Môi trường lập trình Keil C51/ASM, phần mềm mô phỏng mạch điện tử Proteus ISIS và phần mềm mô phỏng vi điều khiển EdSim51DITM.