BÀI MÔ TẢ HỌC THUẬT: GIÁO TRÌNH KIẾN TRÚC MÁY VI TÍNH PC VÀ GHÉP NỐI NGOẠI VI


Tổng quan về giáo trình

Giáo trình Kiến trúc máy vi tính PC và Đơn vị xử lý trung tâm là tài liệu học tập thuộc khối kiến thức cơ sở ngành bắt buộc trong chương trình đào tạo trình độ Đại học và Sau đại học thuộc các ngành Khoa học Máy tính, Kỹ thuật Máy tính, Công nghệ Thông tin và Kỹ thuật Điều khiển - Tự động hóa.

Mục tiêu học tập của giáo trình nhằm trang bị cho người học hệ thống tri thức toàn diện về:

  • Nguyên lý vận hành và kiến trúc phần cứng của máy vi tính số (digital computer).
  • Cấu trúc bên trong và cơ chế hoạt động của Đơn vị xử lý trung tâm (CPU), lấy vi xử lý kiến trúc x86 (từ 80286 đến Pentium) làm hệ quy chiếu tiêu chuẩn.
  • Cơ chế quản lý bộ nhớ ở chế độ thực (Real Mode) và chế độ bảo vệ (Protected Mode), bao gồm phân đoạn (Segmentation) và phân trang (Paging).
  • Các kỹ thuật nâng cao hiệu năng thực thi lệnh như đường ống (Pipeline) và xử lý song song mức lệnh (Instruction-Level Parallelism - ILP).
  • Nguyên lý tổ chức hệ thống phân cấp bộ nhớ và các phương thức truyền thông vào/ra dữ liệu (I/O).

Về mặt cấu trúc, giáo trình được biên soạn theo trình tự phát triển từ mức logic phần cứng thấp đến kiến trúc hệ thống bậc cao: bắt đầu từ các phương pháp biểu diễn thông tin nhị phân, cấu tạo vi xử lý, đến cơ chế tổ chức bộ nhớ vật lý - bộ nhớ ảo và các vi mạch điều khiển ghép nối ngoại vi chuyên dụng.

Điểm đặc sắc của tài liệu là phương pháp tiếp cận kỹ thuật tường minh; mọi khái niệm lý thuyết đều được lượng hóa qua các sơ đồ chân tín hiệu vi xử lý, cấu trúc định dạng thanh ghi, cấu trúc các mục nhập mô tả (Descriptor Table Entries), bảng trang (Page Tables), cũng như bản đồ phân bổ không gian địa chỉ cổng I/O chuẩn trên dòng máy vi tính PC/AT.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Cấu trúc nội dung của giáo trình bao gồm 4 khối kiến thức trọng tâm:

  • Chương 1: Kiến trúc máy vi tính PC và đơn vị xử lý trung tâm: Trình bày các khối chức năng cơ bản của máy tính số (CPU, Bộ nhớ chính RAM/ROM, Bộ nhớ ngoài, Thiết bị I/O, Hệ thống Bus dữ liệu 2 chiều, Bus địa chỉ 1 chiều, Bus điều khiển 2 chiều). Phân tích các hệ đếm (Cơ số 2, 8, 10, 16), số BCD, số nguyên có dấu dạng bù 2, định dạng dấu chấm động IEEE 754 (chính xác đơn 32-bit và chính xác kép 64-bit), các bảng mã ký tự (ASCII, Unicode), mã hóa âm thanh và hình ảnh. Phân tích chi tiết CPU 80286: cấu hình chân tín hiệu (CLK, RST, A23-A0, D15-D0, INT, NMI, HOLD, HLDA, LOCK, BHE, READY), cấu trúc 4 đơn vị nội bộ (BU, IU, EU, AU). Cơ chế quản lý bộ nhớ Chế độ thực ($Segment \times 10h + Offset$) và Chế độ bảo vệ (4 mức đặc quyền PL=0 đến PL=3, bảng GDT, LDT, IDT, đoạn trạng thái nhiệm vụ TSS, cổng giao dịch Call Gate). Tập lệnh x86, 8 chế độ định vị toán hạng, kỹ thuật đường ống 5 giai đoạn (GOA, FO, EI...) và kiến trúc siêu vô hướng (Superscalar) với hai đường ống song song U và V trên Pentium.
  • Chương 2: Tổ chức bộ nhớ trong máy vi tính PC: Phân tích hệ thống phân cấp bộ nhớ (Thanh ghi $\rightarrow$ Cache SRAM $\rightarrow$ Bộ nhớ chính DRAM $\rightarrow$ Bộ nhớ ngoài) dựa trên nguyên lý quy chiếu phân vùng. Kỹ thuật tổ chức Cache: ánh xạ trực tiếp (Direct Mapping), tập liên hợp (Set-Associative), cơ chế ghi xuyên (Write-Through) và sao lưu có cờ (Copy-Back / Dirty bit F). Cơ chế quản lý bộ nhớ phân trang 32-bit: cấu trúc Thư mục trang (Page Directory - 1024 PDE), Bảng trang (Page Table - 1024 PTE), Khung trang kích thước 4KB, và thuật toán chuyển đổi địa chỉ tuyến tính 32-bit sang địa chỉ vật lý.
  • Chương 3: Các phương pháp vào/ra dữ liệu trong máy vi tính: Cấu trúc phần cứng của hệ thống I/O với 3 loại thanh ghi chức năng (Control, Status, Data). Phân loại và so sánh 4 phương pháp vào/ra dữ liệu: Vào/ra theo định trình (Scheduled I/O), Thăm dò (Polling), Ngắt cứng (Hardware Interrupt), và Truy nhập bộ nhớ trực tiếp (DMA - Direct Memory Access), phân chia theo nhóm CPU chủ động và Thiết bị ngoại vi chủ động.
  • Chương 4: Các thiết bị vào/ra và vi mạch phụ trợ: Phân tích nguyên lý hoạt động, cấu trúc bên trong và cơ chế ghép nối của các chip điều khiển chuyên dụng: Bộ điều khiển ngắt khả trình PIC 8259, Bộ điều khiển DMA 8237, Bộ định thời TIMER 8254 (3 kênh đếm 16-bit nhận xung nhịp 1.19 MHz), Giao diện nối tiếp không đồng bộ UART 8250/16450 (chuẩn RS-232), Giao diện bàn phím KC 8042, Giao diện màn hình CRTC, Bộ điều khiển ổ đĩa FDC/HDC, cùng bảng phân bổ địa chỉ cổng I/O từ 000h đến 3FFh.

Kiến thức nền tảng được xây dựng

Giáo trình thiết lập hệ thống lý thuyết nền tảng vững chắc qua các mô hình:

  1. Lý thuyết biểu diễn dữ liệu nhị phân: Nguyên tắc thực hiện các phép tính số học (+, -, $\times$, /) trên hệ nhị phân, quy tắc chuyển đổi dấu bù 2, và công thức chuẩn hóa số thực IEEE 754: $$V = (-1)^S \times 2^{E-127} \times 1.F \quad (\text{dạng 32-bit})$$ $$V = (-1)^S \times 2^{E-1023} \times 1.F \quad (\text{dạng 64-bit})$$
  2. Nguyên lý phân cấp và chuyển dịch không gian địa chỉ: Cơ chế định địa chỉ thực qua cặp thanh ghi đoạn và offset, mô hình bảo vệ bộ nhớ đa nhiệm thông qua các bảng mô tả GDT/LDT/IDT kết hợp kiểm tra điều kiện đặc quyền: $$\text{EPL} = \max(\text{CPL}, \text{RPL}) \le \text{DPL}$$
  3. Mô hình giải mã địa chỉ phân trang: Phân tách địa chỉ tuyến tính 32-bit thành 3 thành phần chỉ số: 10-bit chỉ số thư mục trang ($A_{31} \div A_{22}$), 10-bit chỉ số bảng trang ($A_{21} \div A_{12}$), và 12-bit offset trong trang ($A_{11} \div A_0$).
+-------------------+------------------+-----------------------+
| 10-bit Chỉ số PDE | 10-bit Chỉ số PTE| 12-bit Offset ô nhớ   |
| (Bit 31 - Bit 22) | (Bit 21 - Bit 12)| (Bit 11 - Bit 0)      |
+-------------------+------------------+-----------------------+

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Khả năng phân tích giản đồ tín hiệu bus phần cứng; tính toán chính xác địa chỉ vật lý của ô nhớ trong cả hai chế độ thực và bảo vệ; thiết lập cấu hình các thanh ghi điều khiển cổng I/O thông qua tập lệnh Assembly x86 (như IN, OUT, MOV, INT, CLI, STI).
  • Kỹ năng phân tích (Analytical skills): Đánh giá các hiện tượng xung đột dữ liệu (Data Hazards) trong vi kiến trúc đường ống; phân tích hiệu quả của bộ tiên đoán nhánh BPU; phân tích hiện tượng Trúng (Hit) / Trượt (Miss) trong bộ nhớ đệm Cache.
  • Kỹ năng thực hành hệ thống (Practical competencies): Lập trình phối ghép và điều khiển các vi mạch ngoại vi (8254, 8259, 8237, UART 8250); cấu hình bảng vectơ ngắt và xử lý truyền dữ liệu trực tiếp bộ nhớ qua DMA.

Phương pháp giảng dạy và học tập

Giáo trình được thiết kế nhằm phục vụ phương pháp tiếp cận sư phạm tích hợp giữa lý thuyết vi kiến trúc và kỹ năng tính toán, phân tích hệ thống phần cứng cụ thể.

Tiếp cận sư phạm (Pedagogical approach)

Nội dung bài học được dẫn dắt theo phương pháp quy nạp kỹ thuật: từ các bài toán cơ sở (như biểu diễn số nguyên, số thực, cơ chế cộng bù 2) phát triển lên cấu trúc phần cứng của từng khối chức năng vi xử lý (ALU, CU, Bus Interface Unit, Address Unit), từ đó mở rộng sang sự tương tác phức tạp giữa CPU với bộ nhớ chính và các chip điều khiển ngoại vi.

Bài tập và phân tích trường hợp (Practical exercises & Case studies)

Giáo trình cung cấp hệ thống bài tập phong phú, bao gồm:

  • Bài toán chuyển đổi dữ liệu: Chuyển đổi các giá trị thập phân sang định dạng nhị phân, thập lục phân, BCD và biểu diễn số thực chuẩn IEEE 754 đơn/kép (ví dụ: chuyển đổi số thập phân $-12.625_{10}$ sang chuỗi 32-bit).
  • Bài toán định địa chỉ: Xác định địa chỉ vật lý tương ứng với các cặp địa chỉ logic $Segment:Offset$ trong chế độ thực; tính toán không gian địa chỉ bộ nhớ ảo của CPU 80286 với $2^{14} \times 2^{16} = 2^{30} = 1\text{ GB}$.
  • Trường hợp phân tích pipeline: Phân tích sự suy giảm hiệu năng khi xuất hiện các lệnh phụ thuộc dữ liệu trong đường ống 5 giai đoạn, yêu cầu xả đường ống và nạp lại, từ đó làm rõ vai trò của bộ tiên đoán phân nhánh BPU.

Phương pháp đánh giá và hướng dẫn tự học

  • Phương pháp đánh giá: Đánh giá định kỳ thông qua các bài kiểm tra trắc nghiệm/tự luận về nguyên lý phần cứng, bài tập tính toán địa chỉ bộ nhớ phân trang, và bài thi thực hành lập trình vi điều khiển/hợp ngữ giao tiếp với các cổng phần cứng chuẩn PC.
  • Hướng dẫn tự học: Người học cần chủ động vẽ lại sơ đồ giải mã địa chỉ, lập bảng theo dõi trạng thái các thanh ghi khi thực thi từng lệnh đơn vị, và phân tích các trường bit trong các bộ mô tả đoạn và mục nhập bảng trang.

Điểm nổi bật và cập nhật

Nội dung giáo trình phản ánh các mốc tiến hóa quan trọng của kiến trúc máy vi tính họ x86:

Đặc tính kỹ thuật Kiến trúc 16-bit (80286 / Chế độ thực) Kiến trúc 32-bit (Pentium / Chế độ bảo vệ)
Không gian địa chỉ vật lý 16 MB (Bus địa chỉ 24-bit: $A_{23} \div A_0$) 4 GB (Bus địa chỉ 32-bit: $A_{31} \div A_0$)
Cơ chế quản lý bộ nhớ Phân đoạn (Segmentation), đoạn tối đa 64 KB Phân đoạn kết hợp Phân trang 3 tầng (4 KB/trang)
Kiến trúc đường ống Đơn đường ống 5 giai đoạn (GOA, FO, EI...) Siêu vô hướng (Superscalar) với 2 đường ống U & V
Bảo vệ hệ thống 4 mức đặc quyền (PL0 - PL3), Bảng GDT/LDT Kiểm tra đặc quyền cấp trang (User/Supervisor)
Giao tiếp ngoại vi Chip rời (8259, 8237, 8254, 8250) Chipset tích hợp, chuẩn hóa Bus PCI và Cầu nối
  1. Chuẩn hóa công nghệ bộ nhớ đệm và phân trang: Phân tích tường minh thuật toán ánh xạ trực tiếp và kỹ thuật tập liên hợp, cơ chế giải phóng bộ nhớ đệm bằng cờ Dirty bit $F$, cũng như cấu trúc phân trang 3 tầng tương thích kiến trúc x86 32-bit.
  2. Kỹ thuật vi kiến trúc siêu vô hướng: Trình bày nguyên lý song song hóa mức lệnh (ILP) trên dòng CPU Pentium với hai đường ống thực thi độc lập U và V, đối chiếu với các vi xử lý RISC tiên phong như Intel i860 và IBM RS/6000.
  3. Mô hình hóa hệ thống vi mạch PC chuẩn công nghiệp: Bảng phân bổ không gian cổng I/O từ 000h đến 3FFh cung cấp chi tiết vị trí các mạch chức năng thực tế:
    • 020h-03Fh / 0A0h-0BFh: Bộ điều khiển ngắt PIC-1 (Chủ) và PIC-2 (Thợ) 8259.
    • 000h-01Fh / 0C0h-0DFh: Bộ điều khiển DMAC-1 và DMAC-2 8237.
    • 040h-043h: Bộ định thời Timer 8254.
    • 070h-071h: CMOS RAM và Đồng hồ thời gian thực.
    • 2F8h-2FFh / 3F8h-3FFh: Cổng nối tiếp COM2 và COM1 (UART 8250).
    • 278h-27Fh / 378h-37Fh: Cổng song song máy in LPT2 và LPT1.

Đối tượng sử dụng giáo trình

Giáo trình được biên soạn phục vụ các nhóm đối tượng học thuật và kỹ thuật cụ thể:

  • Sinh viên Đại học và Học viên Cao học:
    • Sinh viên từ năm thứ hai hoặc năm thứ ba các ngành Khoa học Máy tính, Kỹ thuật Máy tính, Công nghệ Thông tin, Hệ thống Nhúng, Điện tử Viễn thông.
    • Học viên cao học chuyên ngành Hệ thống Máy tính cần tài liệu chuẩn hóa về kiến trúc tập lệnh và cơ chế bảo vệ phân tầng phần cứng.
  • Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Đã hoàn thành học phần Nhập môn Kỹ thuật số / Toán rời rạc (hiểu biết về cổng logic, đại số Boolean, mạch lật flip-flop, thanh ghi dịch).
    • Đã học qua Kỹ thuật lập trình cơ bản (ngôn ngữ C/C++, cấu trúc dữ liệu con trỏ và mảng).
  • Giảng viên và Nghiên cứu viên:
    • Sử dụng làm giáo trình giảng dạy chính khóa hoặc tài liệu tham khảo để biên soạn đề cương chi tiết học phần Kiến trúc máy tính, Hợp ngữ và Vi xử lý, Ghép nối ngoại vi.
  • Kỹ sư phần mềm nhúng và lập trình hệ thống:
    • Dùng làm tài liệu tra cứu chuyên sâu về các thanh ghi điều khiển phần cứng, cơ chế chuyển ngữ cảnh đa nhiệm qua TSS và cấu trúc giao tiếp cổng I/O.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với đối tượng người học nào?

Giáo trình được thiết kế cho sinh viên đại học khối ngành Công nghệ Thông tin, Kỹ thuật Máy tính và Điện tử Viễn thông, cũng như các kỹ sư phần mềm hệ thống/nhúng cần nắm vững cơ chế vận hành ở tầng phần cứng của máy vi tính x86.

2. Cần trang bị những kiến thức nền tảng nào trước khi học giáo trình này?

Người học cần có kiến thức cơ bản về Mạch số (các cổng logic, mạch đếm, flip-flop), Đại số nhị phân và kỹ năng lập trình cơ bản (C/C++) để tiếp cận tốt các nội dung về hợp ngữ và cấu trúc thanh ghi.

3. Điểm khác biệt cốt lõi của giáo trình so với các tài liệu nhập môn máy tính đại cương là gì?

Giáo trình đi sâu vào chi tiết kỹ thuật phần cứng: phân tích từng chân tín hiệu vi xử lý, chi tiết định dạng byte quyền truy nhập trong các bộ mô tả đoạn (Segment Descriptors), cơ chế bảng trang phân cấp (PDE/PTE), và cách phối ghép thực tế với các vi mạch phụ trợ chuẩn (8259, 8237, 8254, 8250).

4. Phương pháp tự học giáo trình như thế nào để đạt hiệu quả cao nhất?

Người học nên kết hợp đọc lý thuyết với việc tự giải các bài tập tính toán địa chỉ ($Segment:Offset$, chuyển đổi địa chỉ tuyến tính sang địa chỉ vật lý qua bảng trang), phân tích luồng dữ liệu trên bus và thực hành viết các đoạn mã Assembly tương tác trực tiếp với các cổng I/O.

5. Có những tài liệu chuẩn hoặc tiêu chuẩn kỹ thuật nào được tích hợp trong giáo trình?

Giáo trình tích hợp các tiêu chuẩn công nghiệp gồm: Chuẩn biểu diễn số thực dấu chấm động IEEE 754, Chuẩn truyền thông nối tiếp RS-232, Chuẩn giao tiếp ổ đĩa IDE, kiến trúc phân tầng bảo vệ x86 và sơ đồ ánh xạ cổng I/O của dòng máy vi tính PC/AT.


Kết luận

Giáo trình Kiến trúc máy vi tính PC và Đơn vị xử lý trung tâm cung cấp một hệ thống lý thuyết chuẩn xác và chặt chẽ về cấu trúc phần cứng máy vi tính số, kiến trúc vi xử lý x86, cơ chế quản lý bộ nhớ phân cấp và kỹ thuật ghép nối ngoại vi.

Lộ trình học tập khuyến nghị cho người học là tiếp cận tuần tự theo 3 giai đoạn:

  1. Nắm vững kỹ thuật biểu diễn dữ liệu số học và kiến trúc CPU cơ bản ở Chương 1.
  2. Làm chủ cơ chế quản lý bộ nhớ phân cấp, phân đoạn và phân trang ở Chương 2.
  3. Làm chủ các phương thức truyền thông, kỹ thuật ngắt, DMA và điều khiển vi mạch ngoại vi ở Chương 3 và Chương 4.

Để hoàn thiện khối kiến thức, người học nên kết hợp tham khảo các tài liệu hướng dẫn lập trình Hợp ngữ (Assembly Language for x86 Processors), tài liệu kỹ thuật datasheet của các dòng vi mạch Intel (80286, 8259, 8237, 8254, 8250) và các phần mềm mô phỏng kiến trúc máy tính.