GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH VÀ KỸ THUẬT GHÉP NỐI NGOẠI VI

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

  • Môn học và vị trí trong chương trình đào tạo: Giáo trình thuộc khối kiến thức cơ sở ngành và chuyên ngành trong chương trình đào tạo kỹ sư, cử nhân các ngành Kỹ thuật Máy tính, Khoa học Máy tính, Điện tử – Viễn thông và Kỹ thuật Điều khiển & Tự động hóa. Nội dung học phần đóng vai trò cầu nối trung gian giữa khối kiến thức phần cứng điện tử số và khối kiến thức phần mềm hệ thống, giúp người học hiểu rõ phương thức bộ vi xử lý trung tâm (CPU) tương tác, quản lý và điều khiển các thành phần ngoại vi cũng như hệ thống nhớ.
  • Mục tiêu học tập (Learning Outcomes):
    • Nắm vững cấu trúc phần cứng, sơ đồ chân tín hiệu và nguyên lý hoạt động của các vi mạch bổ trợ tiêu chuẩn (PIC-8259, PPI-8255, PIT-8253/54, DMAC-8237A).
    • Hiểu rõ cơ chế tổ chức của hệ thống phân cấp bộ nhớ, bao gồm bộ nhớ truy cập ngẫu nhiên động (DRAM), bộ nhớ truy cập ngẫu nhiên tĩnh (SRAM), bộ nhớ chỉ đọc (ROM), bộ nhớ đệm (Cache) và thiết bị lưu trữ ngoài.
    • Có khả năng thiết kế mạch giải mã địa chỉ, thiết lập các từ điều khiển (ICW, OCW, CWR) và lập trình hợp ngữ (Assembly x86) để điều khiển ghép nối phần cứng.
  • Cấu trúc và cách tiếp cận: Giáo trình được biên soạn theo phương pháp tiếp cận phân tích phần cứng kết hợp lập trình điều khiển mức thấp (low-level programming). Mỗi chủ đề đi từ sơ đồ khối chức năng, mô tả chân tín hiệu, cơ chế giao tiếp bus, giản đồ thời gian (timing diagram) đến các bước lập trình cấu hình thanh ghi với ví dụ minh họa chi tiết.
  • Điểm đặc sắc của giáo trình: Nội dung gắn liền việc phân tích lý thuyết mạch với các dòng vi xử lý thực tế như Intel 8086/8088 và kiến trúc máy tính IBM PC/XT, PC/AT; cung cấp bảng bit chi tiết của các thanh ghi điều khiển cùng mã lệnh Assembly mẫu.

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

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

  • Chủ đề 1: Vi mạch điều khiển ngắt khả trình PIC-8259 (Programmable Interrupt Controller):
    • Khái niệm và cấu trúc: Đảm nhiệm vai trò quản lý và xử lý 8 mức yêu cầu ngắt phần cứng (IR0–IR7) từ thiết bị ngoại vi gửi tới CPU. Cấu trúc gồm thanh ghi yêu cầu ngắt (IRR), thanh ghi ngắt đang phục vụ (ISR), thanh ghi mặt nạ ngắt (IMR), mạch logic giải quyết ưu tiên (PR), khối logic điều khiển đọc/ghi và bộ đệm nối tầng/so sánh (cho phép kết nối 1 vi mạch chủ với tối đa 8 vi mạch tớ qua các chân CAS0–CAS2 và chân chọn SP/EN).
    • Nguyên lý điều khiển: Quá trình khởi động thực hiện qua các từ điều khiển khởi tạo ICW1–ICW4 (xác lập chế độ làm việc đơn lẻ hay nối tầng, kích hoạt ngắt theo sườn hay theo mức, định dạng vector ngắt cho hệ vi xử lý 8086/88, chế độ kết thúc ngắt EOI thường hay tự động, chế độ đệm bus). Quá trình vận hành sử dụng các từ điều khiển hoạt động OCW1–OCW3 để che/mở mặt nạ ngắt và truy xuất trạng thái các thanh ghi IRR, ISR.
  • Chủ đề 2: Vi mạch ghép nối ngoại vi song song khả trình PPI-8255 (Programmable Peripheral Interface):
    • Cấu trúc phần cứng: Vi mạch 40 chân với 24 đường vào/ra chia thành 3 cổng 8-bit: Cổng A (PA0–PA7), Cổng B (PB0–PB7) và Cổng C (PC0–PC7, được chia thành hai nhóm PCH từ PC4–PC7 thuộc Nhóm A và PCL từ PC0–PC3 thuộc Nhóm B). Bộ đệm dữ liệu 8-bit hai chiều (D0–D7) kết nối với CPU; các chân điều khiển gồm $\overline{\text{CS}}$, $\overline{\text{RD}}$, $\overline{\text{WR}}$, A0, A1 và Reset.
    • Các chế độ vận hành: Thiết lập qua thanh ghi từ điều khiển CWR (Control Word Register). Mode 0: Vào/ra cơ bản độc lập cho cả 3 cổng. Mode 1: Vào/ra có bắt tay (handshaking) trên cổng A và B sử dụng các đường tín hiệu của cổng C ($\overline{\text{STB}}$, IBF, $\overline{\text{OBF}}$, $\overline{\text{ACK}}$, INTR, INTE). Mode 2: Vào/ra hai chiều trên cổng A sử dụng các tín hiệu điều khiển của cổng C. Chế độ lập/xóa từng bit cổng C (Bit Set/Reset – BSR).
  • Chủ đề 3: Vi mạch định thời khả trình PIT-8253/54 (Programmable Interval Timer):
    • Cấu tạo: Tích hợp 3 bộ đếm 16-bit độc lập (Counter 0, Counter 1, Counter 2), mỗi bộ đếm có chân cấp xung CLK, chân cổng điều khiển GATE và chân ngõ ra tín hiệu OUT. Bộ đếm hỗ trợ đếm nhị phân hoặc đếm thập phân BCD với tần số xung nhịp ngõ vào tối đa 2 MHz đến 8 MHz (đối với 8253) và lên đến 8 MHz – 10 MHz (đối với 8254).
    • Sáu chế độ hoạt động: Mode 0 (ngắt khi đếm xong – Interrupt on Terminal Count); Mode 1 (đa hài đơn ổn lập trình được – Programmable One-Shot); Mode 2 (bộ chia tần số – Rate Generator); Mode 3 (tạo sóng vuông – Square-Wave Generator); Mode 4 (phát xung kích bằng phần mềm – Software-triggered Pulse); Mode 5 (phát xung kích bằng phần cứng qua chân GATE – Hardware-triggered Pulse).
    • Ứng dụng trong máy vi tính: Counter 0 định thời phát ngắt cứng IRQ0 cập nhật đồng hồ hệ thống (ngắt 08h); Counter 1 kích hoạt chu kỳ DMA làm tươi bộ nhớ DRAM; Counter 2 điều khiển phát tín hiệu âm thanh ra loa PC.
  • Chủ đề 4: Vi mạch điều khiển truy cập bộ nhớ trực tiếp DMAC-8237A (Direct Memory Access Controller):
    • Khái niệm và tín hiệu bus: Cho phép thiết bị ngoại vi trao đổi dữ liệu trực tiếp với bộ nhớ hệ thống mà không cần thông qua CPU. Quá trình bắt tay sử dụng cặp tín hiệu HOLD (yêu cầu DMA) và HLDA (xác nhận DMA), đặt các bus của CPU vào trạng thái trở kháng cao. Các tín hiệu điều khiển đọc/ghi bao gồm $\overline{\text{MEMR}}$, $\overline{\text{MEMW}}$, $\overline{\text{IOR}}$, $\overline{\text{IOW}}$, HRQ, ADSTB, AEN và $\overline{\text{EOP}}$.
    • Cấu trúc: Gồm 4 kênh DMA độc lập tương thích hệ vi xử lý 8086, mỗi kênh có khả năng đánh địa chỉ và truyền khối dữ liệu lên đến 64 KB.
  • Chủ đề 5: Cấu trúc bộ nhớ bán dẫn (RAM, ROM) và Hệ thống Cache:
    • Bộ nhớ bán dẫn: Cấu tạo ô nhớ DRAM (1 transistor trường và 1 tụ điện lưu trữ điện tích, tốc độ truy cập từ vài chục đến hàng trăm nanogiây, yêu cầu chu kỳ làm tươi định kỳ 1–15 ms) và ô nhớ SRAM (mạch lật transistor, không cần làm tươi, thời gian truy cập ngắn cỡ 10 ns). Cấu trúc ROM diode lập trình kiểu mặt nạ dựa trên ma trận dây dẫn hàng và cột.
    • Bộ nhớ Cache: Nguyên lý ánh xạ trực tiếp (Direct-mapped Cache) dựa trên phân tách trường địa chỉ thành số hiệu thẻ (Tag), số thứ tự khối (Index) và số thứ tự từ trong khối. Hai kỹ thuật ghi: Ghi xuyên (Write-through) và Ghi sao lưu có dựng cờ (Write-back với bit cờ F). Kỹ thuật tập liên hợp (Set-associative) giảm thiểu xung đột truy cập cùng vị trí khối nhớ.
    • Bộ nhớ ngoài: Đặc điểm và vai trò lưu trữ dung lượng lớn dài hạn của ổ đĩa cứng, ổ đĩa mềm, ổ đĩa quang và bộ nhớ flash.

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

  • Lý thuyết nền tảng (Fundamental Theories): Nguyên lý kiến trúc Von Neumann, lý thuyết chuyển mạch logic bán dẫn, lý thuyết ghép nối bus vi xử lý và nguyên lý phân cấp hệ thống bộ nhớ máy tính.
  • Nguyên lý cốt lõi (Core Principles): Cơ chế xử lý ngắt theo mức ưu tiên; giao thức truyền thông song song có bắt tay đồng bộ và bất đồng bộ; nguyên lý đếm xung chia tần số phần cứng; cơ chế chuyển giao quyền chủ bus (Bus Mastership) trong kỹ thuật DMA; nguyên lý lưu trữ điện tích và làm tươi định kỳ của tế bào nhớ động.
  • Khung cấu trúc căn bản (Essential Frameworks): Mô hình không gian địa chỉ vào/ra biệt lập (Isolated I/O) sử dụng các đường tín hiệu điều khiển chuyên dụng ($\overline{\text{RD}}$, $\overline{\text{WR}}$, $\overline{\text{IOR}}$, $\overline{\text{IOW}}$); cấu trúc bảng vector ngắt và thủ tục phục vụ ngắt (ISR).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical Skills): Giải mã địa chỉ cổng I/O từ các đường bus địa chỉ (A0–A7) và tín hiệu chọn chip ($\overline{\text{CS}}$); tính toán và thiết lập các byte từ điều khiển cấu hình phần cứng (ICW1–ICW4, CWR, từ điều khiển PIT); phân tích giản đồ thời gian của các chu kỳ đọc/ghi dữ liệu.
  • Kỹ năng phân tích (Analytical Skills): Phân tích sự cân bằng hiệu năng giữa tốc độ bộ vi xử lý và thời gian trễ của bộ nhớ (DRAM, SRAM, Cache); đánh giá cơ chế xử lý tranh chấp ngắt và xung đột truy cập khối nhớ đệm.
  • Kỹ năng thực hành (Practical Competencies): Lập trình hợp ngữ x86 với các tập lệnh IN, OUT, MOV để khởi tạo vi mạch, điều khiển truyền nhận dữ liệu qua các cổng song song, cấu hình các bộ đếm định thời và thiết lập thông số cho các kênh truyền DMA.

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

  • Phương pháp tiếp cận sư phạm (Pedagogical Approach): Kết hợp chặt chẽ giữa lý thuyết cấu trúc phần cứng và thực hành lập trình điều khiển. Quy trình giảng dạy đi từ việc phân tích chức năng của từng khối vi mạch, xác định ý nghĩa từng chân tín hiệu, phân tích bảng trạng thái logic, sau đó chuyển hóa thành các giải thuật lập trình cấu hình thanh ghi.
  • Bài tập và nghiên cứu tình huống (Case Studies):
    • Tình huống lập trình PIC-8259A: Lập trình cho 8259A làm việc với CPU 8086 ở chế độ chủ đơn lẻ, hệ thống có đệm bus, chế độ ưu tiên cố định, EOI thường, ngắt kích hoạt theo mức, gán số hiệu ngắt cho đường IR0 là 50H. Xác lập chuỗi từ điều khiển: $\text{ICW1} = 1\text{BH}$, $\text{ICW2} = 50\text{H}$, $\text{ICW4} = 0\text{DH}$.
    • Tình huống ghép nối PPI-8255: Giải mã địa chỉ vi mạch với $\overline{\text{CS}}$ nhận địa chỉ nhị phân xác định, gán địa chỉ Cổng A là 50H, Cổng B là 51H, Cổng C là 52H, thanh ghi CWR là 53H. Xác lập từ điều khiển $90\text{H}$ để cấu hình Cổng A làm cổng vào, Cổng B và Cổng C làm cổng ra; viết đoạn chương trình Assembly đọc dữ liệu từ Cổng A và xuất đồng thời ra Cổng B, Cổng C.
    • Tình huống cấu hình PIT-8253/54: Xác định địa chỉ cổng cho 3 bộ đếm và thanh ghi điều khiển khi đường $\overline{\text{CS}}$ kết nối với bộ giải mã địa chỉ nhị phân $\text{A7–A2} = 100101\text{B}$ (Counter 0: 94H, Counter 1: 95H, Counter 2: 96H, CWR: 97H); phân tích từ điều khiển $00110110\text{B}$ xác định cấu hình cho Counter 0 chạy ở Mode 3 (phát sóng vuông), ghi/đọc byte thấp (LSB) trước, byte cao (MSB) sau theo định dạng đếm nhị phân.
  • Bài tập thực hành (Practical Exercises): Thiết kế sơ đồ logic giải mã địa chỉ sử dụng các cổng logic cơ bản; tính toán chu kỳ xung clock ngõ vào để tạo tần số ngõ ra mong muốn; viết các thủ tục điều khiển vào/ra dữ liệu theo phương pháp thăm dò (polling) và ngắt cứng (interrupt).
  • Phương pháp đánh giá (Assessment Methods): Kiểm tra trắc nghiệm và tự luận về sơ đồ khối, phân tích bitmask thanh ghi; đánh giá bài tập thiết kế mạch ghép nối và kiểm tra kỹ năng viết mã Assembly cấu hình vi mạch trên các hệ thống giả lập.
  • Hướng dẫn tự học (Self-study Guidelines): Đọc kỹ sơ đồ chân và chức năng của từng thanh ghi trước khi xem các ví dụ lập trình; tự tay vẽ lại giản đồ dạng sóng ngõ ra của 6 chế độ làm việc trong PIT-8253/54; đối chiếu bảng chân lý điều khiển đọc/ghi ($\overline{\text{RD}}$, $\overline{\text{WR}}$, $\overline{\text{CS}}$, A0, A1) để ghi nhớ địa chỉ các cổng.

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

  • Cập nhật so với các ấn bản cũ:
    • Phân tích quá trình phát triển từ các vi mạch bổ trợ nằm rời rạc trên bản mạch chính (mainboard) thế hệ đầu sang việc tích hợp toàn diện vào các vi mạch tích hợp cỡ lớn như Super I/O và Chipset hệ thống (chứa các địa chỉ I/O cố định tương thích ngược).
    • So sánh chi tiết sự nâng cấp kỹ thuật giữa PIT-8253 và PIT-8254: nâng giới hạn tần số hoạt động cực đại từ 2–8 MHz lên 8–10 MHz (ở phiên bản 8254-2), bổ sung tập lệnh và lệnh đọc ngược trạng thái thanh ghi từ điều khiển CWR.
    • Phân loại công nghệ sản xuất vi mạch CMOS (như các mã hiệu MSM82C53-2RS 24 chân, MSM82C53-2JS 28 chân, MSM82C53-2GS-VK 32 chân) giúp giảm điện năng tiêu thụ và hỗ trợ hoạt động ở chế độ tĩnh hoàn toàn.
  • Tích hợp các xu hướng kiến trúc hiện đại: Trình bày kiến trúc tổ chức bộ nhớ Cache đa cấp, phân tích các giải pháp ghi dữ liệu (Write-through, Write-back với bit cờ F) và cơ chế tập liên hợp nhằm xử lý nghẽn cổ chai tốc độ giữa bộ xử lý và bộ nhớ chính.
  • Ứng dụng thực tế và liên kết công nghiệp:
    • Hệ thống IBM PC/XT và PC/AT: Minh họa trực tiếp các địa chỉ cổng I/O tiêu chuẩn (như vùng 40h–43h cho bộ định thời, vùng 000h và 0C0h cho bộ điều khiển DMA).
    • Hệ thống đo lường và điều khiển: Ứng dụng các chip bổ trợ như PPI-8255 và PIC-8259A trong các bo mạch ghép nối mở rộng cắm qua khe bus để giao tiếp với cảm biến, cơ cấu chấp hành và điều khiển động cơ bước.
    • Cơ chế vận hành hệ thống: Phân tích vai trò thực tế của Counter 0 trong việc phát xung ngắt 18.2 Hz cập nhật đồng hồ thời gian thực và vai trò của Counter 1 kết hợp với kênh 0 của DMAC-8237A thực hiện chu kỳ đọc giả mỗi 15 ms để làm tươi bộ nhớ DRAM.

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

  • Sinh viên chuyên ngành: Sinh viên từ năm thứ hai đến năm thứ tư thuộc các ngành Kỹ thuật Máy tính, Điện tử – Viễn thông, Công nghệ Thông tin, Kỹ thuật Điều khiển & Tự động hóa và Cơ điện tử theo học các học phần Kiến trúc máy tính, Kỹ thuật vi xử lý, Hệ thống nhúng và Ghép nối ngoại vi.
  • Kiến thức tiên quyết (Prerequisites):
    • Học phần Kỹ thuật số (hiểu rõ mạch tuần tự, mạch tổ hợp, mạch lật flip-flop, cổng logic, bộ giải mã địa chỉ).
    • Khái niệm cơ bản về cấu trúc máy tính (tổ chức bus địa chỉ, bus dữ liệu, bus điều khiển).
    • Lập trình Hợp ngữ x86 căn bản (các lệnh chuyển dữ liệu MOV, lệnh xuất nhập cổng IN, OUT, các thanh ghi đa năng như AX, AL, AH).
  • Giảng viên và phương thức khai thác: Sử dụng làm tài liệu giảng dạy chính khóa trên lớp; trích xuất hệ thống bảng chân lý, sơ đồ khối và lưu đồ khởi tạo để xây dựng bài giảng lý thuyết; sử dụng hệ thống ví dụ lập trình mẫu để thiết kế các bài thí nghiệm, thực hành và đề thi học phần.
  • Tự học và tài liệu tra cứu: Kỹ sư thiết kế phần cứng nhúng, kỹ thuật viên phát triển trình điều khiển thiết bị (device driver) cấp thấp và người học cần tài liệu tra cứu chính xác về cấu trúc bit thanh ghi của các dòng vi mạch Intel 82xx.

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?
Tài liệu được biên soạn phục vụ sinh viên đại học, học viên cao học khối kỹ thuật phần cứng, công nghệ thông tin và các kỹ sư hệ thống cần nắm vững nguyên lý giao tiếp phần cứng tầng thấp của máy vi tính.

2. Cần chuẩn bị những kiến thức nền tảng nào trước khi học?
Người học cần có kiến thức về kỹ thuật mạch số (mạch logic, mạch lật, giải mã nhị phân), hiểu nguyên lý hoạt động của CPU 8086/8088 và nắm được cú pháp các lệnh lập trình Assembly cơ bản.

3. Điểm khác biệt về nội dung của giáo trình là gì?
Giáo trình mô tả cấu trúc phần cứng chi tiết đến từng chân tín hiệu và từng bit của thanh ghi nội bộ (IRR, ISR, IMR, CWR, ICW, OCW), đồng thời cung cấp mã lệnh Assembly x86 tương ứng với các tình huống tính toán địa chỉ cổng thực tế.

4. Phương pháp tự học giáo trình như thế nào để đạt hiệu quả?
Người học nên phân tích kỹ cấu tạo chân tín hiệu và sơ đồ khối chức năng của vi mạch, sau đó đối chiếu với bảng định dạng từ điều khiển, tự tay giải các bài tập xác định mã hex của từ điều khiển và viết lại các đoạn lệnh khởi tạo tương ứng.

5. Giáo trình có cung cấp tài liệu kỹ thuật bổ trợ nào không?
Tài liệu cung cấp đầy đủ sơ đồ chân vi mạch (24 chân, 28 chân, 40 chân), bảng phân bố địa chỉ cổng I/O, giản đồ thời gian hoạt động của 6 mode định thời PIT và mã nguồn Assembly mẫu cho các bài toán ghép nối ngoại vi điển hình.


Kết luận

  • Giá trị cốt lõi: Giáo trình cung cấp hệ thống kiến thức chuẩn xác, tường minh về cấu trúc phần cứng và phương thức lập trình điều khiển các vi mạch bổ trợ kinh điển (PIC-8259, PPI-8255, PIT-8253/54, DMAC-8237A) cùng kiến trúc phân cấp bộ nhớ máy tính.
  • Lộ trình học tập đề xuất: Người học nên tiếp cận theo trình tự: $$\text{Cấu trúc vi mạch bổ trợ & Cơ chế ngắt/bắt tay} \longrightarrow \text{Cơ chế định thời & Truy cập nhớ trực tiếp DMA} \longrightarrow \text{Tế bào nhớ bán dẫn (DRAM/SRAM/ROM)} \longrightarrow \text{Tổ chức bộ nhớ Cache & Thiết bị lưu trữ ngoài}$$
  • Tài liệu tham khảo bổ trợ: Bảng tra cứu cấu trúc thanh ghi điều khiển họ Intel 82xx, tập lệnh hợp ngữ Intel 8086/8088 và tài liệu kỹ thuật kiến trúc máy tính IBM PC.