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

Giáo trình "Thiết Kế Máy Ảnh Kỹ Thuật Số: Yêu Cầu, Thông Số và Hiện Thực Hóa Hệ Thống Nhúng" được biên soạn phục vụ học phần Thiết kế Hệ thống Nhúng (Embedded System Design) và Đồng thiết kế Phần cứng/Phần mềm (Hardware/Software Co-design) thuộc chương trình đào tạo bậc Đại học và Sau đại học các ngành Kỹ thuật Máy tính, Điện tử - Viễn thông và Khoa học Máy tính.

Mục tiêu học tập của giáo trình nhằm trang bị cho người học phương pháp luận thiết kế hệ thống nhúng hiện đại: từ khâu phân tích thông số kỹ thuật, lập mô hình cấp hệ thống (System-level Modeling), đánh giá không gian giải pháp (Design Space Exploration), cho đến việc phân chia chức năng phần cứng/phần mềm (Hardware/Software Partitioning) và tối ưu hóa đa chỉ số ràng buộc.

Khác với các tài liệu thuần lý thuyết kiến trúc máy tính hoặc lập trình vi điều khiển đơn thuần, giáo trình tiếp cận theo phương pháp Nghiên cứu tình huống xuyên suốt (Case-Study Driven Approach). Toàn bộ chu trình thiết kế từ đầu đến cuối được cụ thể hóa trên một sản phẩm thương mại điển hình: máy ảnh kỹ thuật số tích hợp trên một vi mạch (System-on-Chip - SoC). Phương pháp tiếp cận này giúp người học hiểu rõ mối tương quan giữa thuật toán xử lý dữ liệu, kiến trúc phần cứng chuyên biệt và các chỉ số kinh tế kỹ thuật trong thực tế công nghiệp.


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

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

Nội dung giáo trình được tổ chức theo tiến trình phát triển của một dự án thiết kế hệ thống nhúng hoàn chỉnh, bao gồm 6 chủ đề chính:

  1. Tổng quan Hệ thống nhúng và Không gian Chỉ số Thiết kế (Design Metrics):

    • Phân loại bộ xử lý đa năng (General-Purpose Processor), bộ xử lý chuyên dụng tiêu chuẩn hoặc tùy chỉnh (Single-Purpose Processor - SPP) và giao tiếp bộ nhớ.
    • Phân tích các chỉ số kỹ thuật: Công suất tiêu thụ, kích thước vật lý (số lượng cổng logic), hiệu năng (độ trễ và thông lượng xử lý).
    • Phân tích các chỉ số kinh tế: Chi phí đơn vị sản xuất, chi phí kỹ thuật không định kỳ (Non-Recurring Engineering - NRE), thời gian đưa sản phẩm ra thị trường (Time-to-Market).
    • Mô hình định lượng tổn thất doanh thu do trễ hạn ra mắt sản phẩm: $$\text{Tỷ lệ thất thoát} = \frac{D(3W - D)}{2W^2} \times 100%$$ (trong đó $2W$ là vòng đời sản phẩm, $W$ là thời điểm doanh thu đạt đỉnh, $D$ là thời gian gia nhập thị trường bị trì hoãn).
  2. Cảm biến Hình ảnh và Xử lý Sai số Phần cứng:

    • Cấu trúc cảm biến thiết bị ghép điện tích (CCD - Charge-Coupled Device) dạng thể rắn silicon, cơ chế phơi sáng thông qua màn trập điện cơ và quét ma trận điểm ảnh $64 \times 64$.
    • Bản chất vật lý của sai số lệch điểm không (Zero-bias error) do quá trình chế tạo.
    • Thuật toán hiệu chỉnh sai số: Sử dụng các cột bị che phủ (covered columns) để đo điện tích dư, tính giá trị trung bình theo từng hàng và trừ độ lệch trên toàn bộ pixel của hàng đó.
  3. Thuật toán Nén Dữ liệu Hình ảnh JPEG:

    • Cơ chế nén ảnh tổn hao chuẩn JPEG trên khối $8 \times 8$ pixel.
    • Biến đổi Cosin rời rạc thuận (FDCT - Forward Discrete Cosine Transform): $$F(u,v) = \frac{1}{4} C(u) C(v) \sum_{x=0}^{7} \sum_{y=0}^{7} D_{xy} \cos\left(\frac{\pi(2x+1)u}{16}\right) \cos\left(\frac{\pi(2y+1)v}{16}\right)$$
    • Bảng hằng số mở rộng định dạng số nguyên COS_TABLE[8][8] tỉ lệ $32768$.
    • Lượng tử hóa (Quantization) bằng phép dịch bit phải để giảm độ chính xác không gian tần số cao.
    • Mã hóa Huffman dựa trên cây nhị phân tối ưu tần suất xuất hiện dữ liệu theo đường quét zigzag.
  4. Đặc tả và Xây dựng Mô hình Cấp Hệ thống bằng C/C++:

    • Hiện thực hóa mô hình thực thi ban đầu không phụ thuộc phần cứng (System-level executable model).
    • Thiết kế phân rã chức năng thành các mô-đun phần mềm: CCD.C, CCDPP.C (tiền xử lý), CODEC.C (nén ảnh), UART.C (giao tiếp truyền thông) và CNTRL.C (điều khiển luồng hệ thống).
    • Trích xuất kết quả đầu ra làm vector kiểm thử chuẩn (Golden vectors) phục vụ xác minh phần cứng sau này.
  5. Phân vùng Phần cứng/Phần mềm và Thiết kế Kiến trúc SoC:

    • Đánh giá bản hiện thực thứ nhất (thuần phần mềm trên nhân vi điều khiển Intel 8051 ở tần số $12\text{ MHz}$, $1\text{ MIPS}$): Phân tích lý do vi phạm ràng buộc thời gian trễ $1\text{ giây}$ (vòng lặp $64 \times 64$ tốn $409.000$ lệnh hợp ngữ, chiếm nửa ngân sách thời gian chỉ để đọc ảnh thô).
    • Bản hiện thực thứ hai (SoC kết hợp 8051 và phần cứng chuyên dụng): Thiết kế bộ đồng xử lý phần cứng CCDPP và khối UART dưới dạng máy trạng thái kết hợp đường dữ liệu (FSMD - Finite State Machine with Datapath) mô tả bằng VHDL mức RTL (Register-Transfer Level).
    • Cơ chế giao tiếp bộ nhớ ánh xạ (Memory-mapped I/O) sử dụng bus địa chỉ 16-bit, bus dữ liệu 8-bit và các thanh ghi điều khiển ngoại vi (xdata, _at_, U_TX_REG, U_STAT_REG).
    • Đo đạc kết quả trên trình mô phỏng VHDL: Thời gian thực thi $9.1\text{ giây}$, công suất $0.033\text{ W}$, diện tích $98.000$ cổng logic.
  6. Tối ưu hóa Thuật toán bằng Số học Điểm Cố định (Fixed-Point Arithmetic):

    • Đánh giá bản hiện thực thứ ba: Phân tích chi phí tính toán dấu phẩy động (Floating-point) trên nhân xử lý 8-bit (hơn $1\text{ triệu}$ phép toán float/ảnh tương đương $>10\text{ triệu}$ thao tác số nguyên mô phỏng).
    • Kỹ thuật chuyển đổi số thực sang số học điểm cố định (Fixed-point representation): Quy đổi phân số nhị phân với hệ số $2^k$, các phép toán cộng và nhân kèm thao tác dịch bit nhằm giảm thiểu chu kỳ tính toán của FDCT mà không phát sinh thêm chi phí phần cứng NRE.
+-----------------------------------------------------------------------------------+
|                           MÔ HÌNH HỆ THỐNG SO C MÁY ẢNH                            |
|                                                                                   |
|  +-------------------+       +-----------------------+     +-------------------+  |
|  | Cảm biến CCD      | ----> | SPP CCDPP (Hardware)  | --> | RAM / EEPROM      |  |
|  | (Bên ngoài SoC)   |       | Khử lệch Zero-bias    |     | Lưu trữ dữ liệu   |  |
|  +-------------------+       +-----------------------+     +-------------------+  |
|                                          |                                |       |
|                             BUS BỘ NHỚ 16-BIT / DỮ LIỆU 8-BIT             |       |
|                                          |                                |       |
|  +-------------------+       +-----------------------+     +-------------------+  |
|  | Nhân Intel 8051   | <---> | SPP UART (Hardware)   | --> | Ngõ ra PC         |  |
|  | Điều khiển & FDCT |       | Bộ truyền nối tiếp    |     | (Serial/USB)      |  |
|  +-------------------+       +-----------------------+     +-------------------+  |
+-----------------------------------------------------------------------------------+

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

  • Lý thuyết Kinh tế Kỹ thuật Vi mạch: Mối quan hệ giữa chi phí NRE và sản lượng sản phẩm $N$ qua công thức: $$\text{Chi phí mỗi sản phẩm} = \frac{\text{NRE}}{N} + \text{Chi phí đơn vị}$$ Định lượng bài toán lựa chọn giữa công nghệ ASIC tùy biến hoàn toàn (NRE cao, giá đơn vị thấp) và vi điều khiển tiêu chuẩn (NRE thấp, giá đơn vị cao).
  • Nguyên lý Xử lý Tín hiệu Số trên Hệ thống Nhúng: Chuyển đổi miền không gian sang miền tần số bằng FDCT 2 chiều, định lượng suy hao tín hiệu và kỹ thuật biểu diễn dữ liệu dấu chấm tĩnh.
  • Nguyên lý Kiến trúc Máy tính và Giao tiếp Vi mạch: Cơ chế bus đồng bộ, giao tiếp định địa chỉ bộ nhớ (Memory-mapped), cấu trúc thanh ghi điều khiển trạng thái (Control/Status Registers) và cơ chế Polling/Busy-wait.

Kỹ năng phát triển

  • Kỹ năng Phân tích và Tối ưu hóa: Khả năng định lượng các đánh đổi kỹ thuật (Trade-offs) giữa hiệu năng xử lý, năng lượng tiêu thụ, diện tích chip silicon và chi phí sản xuất.
  • Kỹ năng Thiết kế Phần cứng/Phần mềm: Lập trình mô hình hệ thống bằng ngôn ngữ C; viết mã RTL bằng VHDL; thiết kế máy trạng thái FSMD cho các tác vụ xử lý số liệu chuyên biệt.
  • Kỹ năng Đánh giá Hiệu năng (Profiling): Kỹ thuật phân tích điểm nghẽn hiệu năng (Bottlenecks) trong các vòng lặp tính toán để đưa ra quyết định chuyển đổi thuật toán hoặc chuyển giao tác vụ từ phần mềm sang phần cứng.

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

Giáo trình áp dụng phương pháp tiếp cận sư phạm tích hợp lý thuyết với kỹ thuật thiết kế thực hành:

  • Phương pháp Tiếp cận Từ trên xuống (Top-down Design Flow): Người học bắt đầu từ tài liệu mô tả yêu cầu thị trường mức cao (khách hàng, giá thành mục tiêu, doanh số dự báo), chuyển hóa thành đặc tả phi hình thức, sau đó là mô hình toán học thực thi bằng C, và cuối cùng là bản hiện thực phần cứng/phần mềm chi tiết.
  • Bài tập Tính toán Định lượng: Các bài toán phân tích điểm hòa vốn chi phí giữa các công nghệ sản xuất vi mạch (Công nghệ A, B, C); tính toán tỷ lệ thiệt hại doanh thu khi trễ hạn ra mắt thị trường $4\text{ tuần}$ ($22%$) hoặc $10\text{ tuần}$ ($50%$); tính toán thông lượng dữ liệu theo chu kỳ xung nhịp của vi xử lý.
  • Thực hành Thiết kế Module: Xây dựng thuật toán nén ảnh JPEG, lập trình mô phỏng các hàm CcdCapture, CcdppCapture, CodecDoFdct và phân bổ vùng nhớ ngoại vi bằng từ khóa xdata, _at_ trên trình biên dịch C cho 8051.
  • Phương pháp Kiểm tra Đánh giá: Đánh giá thông qua việc giải quyết các bài toán tối ưu hóa ràng buộc: thiết kế kiến trúc đáp ứng đồng thời các tiêu chí (chi phí IC $< $25$, công suất $< 200\text{ mW}$, thời gian xử lý ảnh $\le 1\text{ giây}$, dung lượng bộ nhớ cố định).

Điểm nổi bật và tính thực tiễn

  • Phương pháp luận Đồng thiết kế Hiện đại: Không tách rời phần cứng và phần mềm thành hai nhánh độc lập, giáo trình chỉ ra cách sử dụng mô hình C duy nhất làm gốc để phân rã chức năng, giúp người học hiểu rõ ranh giới phần cứng/phần mềm là một biến số có thể tối ưu hóa.
  • Mô hình Hóa Đầy đủ Chi phí Kinh tế Kỹ thuật: Đưa các khái niệm kinh doanh thực tế (Cửa sổ thị trường - Market Window, tổn thất trễ hạn, phân bổ chi phí NRE trên từng đơn vị sản phẩm) vào trong quyết định kỹ thuật của kỹ sư vi mạch.
  • Minh họa Trực quan về Tối ưu Thuật toán: Minh chứng rõ ràng rằng việc tăng hiệu năng hệ thống không nhất thiết phải dùng phần cứng đắt tiền, mà có thể đạt được bằng cách chuyển đổi biểu diễn số học (từ dấu phẩy động sang điểm cố định) trực tiếp trên nhân xử lý cấp thấp.
  • Mô phỏng Chân thực Kiến trúc SoC Thương mại: Cung cấp đầy đủ sơ đồ khối bộ xử lý 8051 (ALU, 4K ROM, 128 RAM, Controller), các khối SPP (CCDPP, UART) và quy trình tổng hợp mức cổng (Gate-level synthesis) để đo lường công suất và diện tích vi mạch.

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

  • Sinh viên Đại học: Sinh viên năm 3 và năm 4 chuyên ngành Kỹ thuật Máy tính, Điện tử Viễn thông, Công nghệ Thông tin đang theo học các học phần: Hệ thống nhúng, Thiết kế vi mạch số, Kiến trúc máy tính nâng cao, Xử lý tín hiệu số.
  • Học viên Cao học: Học viên theo học các chương trình thạc sĩ kỹ thuật cần tài liệu tham khảo về phương pháp luận đồng thiết kế phần cứng/phần mềm và tối ưu hóa hệ thống trên chip (SoC).
  • Kiến thức Tiên quyết:
    • Ngôn ngữ lập trình C/C++ cơ bản (con trỏ, mảng nhiều chiều, cấu trúc file, phép toán thao tác bit).
    • Khái niệm cơ bản về logic số (cổng logic, thanh ghi, máy trạng thái FSM).
    • Kiến thức nền tảng về tổ chức và kiến trúc máy tính (bus, bộ nhớ, chu kỳ lệnh của CPU).
  • Giảng viên và Nghiên cứu viên: Dùng làm khung giáo trình giảng dạy chuyên đề, cung cấp bộ bài tập tình huống và hệ thống ví dụ tính toán hoàn chỉnh từ lý thuyết đến mã nguồn thực thi.

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

1. Giáo trình này phù hợp với ai?

Giáo trình được thiết kế chuyên biệt cho sinh viên đại học từ năm thứ ba trở lên, học viên cao học và kỹ sư ngành Kỹ thuật Máy tính, Điện tử Viễn thông muốn nắm vững quy trình thiết kế hệ thống nhúng từ mức phân tích yêu cầu đến triển khai kiến trúc SoC.

2. Cần chuẩn bị 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 cơ bản về kỹ thuật số (máy trạng thái, cổng logic), kiến trúc máy tính (tập lệnh, bus, bộ nhớ) và kỹ năng lập trình ngôn ngữ C/C++ (đặc biệt là thao tác mảng 2 chiều và toán tử bit).

3. Điểm khác biệt cốt lõi của giáo trình này so với các tài liệu khác là gì?

Giáo trình sử dụng duy nhất một ca nghiên cứu thực tế xuyên suốt (thiết kế máy ảnh kỹ thuật số) để dẫn dắt toàn bộ các nguyên lý kỹ thuật, đồng thời tích hợp chặt chẽ các chỉ số kinh tế thực tế (chi phí NRE, mô hình trễ thị trường $D(3W-D)/2W^2$) vào bài toán kỹ thuật.

4. Làm sao để tự học và thực hành nội dung giáo trình đạt hiệu quả cao nhất?

Người học nên tự cài đặt lại toàn bộ mô hình C cấp hệ thống (các mô-đun CCD, CCDPP, CODEC, UART, CNTRL), tự chạy thử nghiệm thuật toán FDCT và lượng tử hóa, sau đó phân tích chu kỳ thực thi và thiết kế máy trạng thái FSMD cho từng khối chức năng.

5. Có tài liệu và công cụ bổ trợ nào cần kèm theo?

Người học cần trang bị trình biên dịch C chuẩn (GCC/Clang) để chạy mô hình phần mềm mức hệ thống, trình biên dịch C cho vi điều khiển 8051 (như Keil C) và phần mềm mô phỏng VHDL/ModelSim để kiểm chứng hoạt động mức truyền thanh ghi (RTL) của các khối phần cứng.


Kết luận

Giáo trình cung cấp nền tảng phương pháp luận toàn diện về thiết kế hệ thống nhúng và SoC thông qua ca nghiên cứu thực tiễn về máy ảnh kỹ thuật số. Nội dung tài liệu làm rõ mối liên hệ khăng khít giữa thuật toán xử lý dữ liệu, phân vùng phần cứng/phần mềm và các chỉ số tối ưu hóa kỹ thuật - kinh tế.

Lộ trình học tập đề xuất bắt đầu từ việc nắm vững mô hình toán học và chỉ số thiết kế, hiện thực hóa mô hình phần mềm kiểm chứng bằng C, sau đó phân tích đánh đổi kiến trúc trên nhân vi điều khiển và phần cứng chuyên dụng VHDL. Để mở rộng kiến thức, người học có thể tham khảo thêm các tài liệu chuyên sâu về chuẩn mã hóa video/hình ảnh, ngôn ngữ mô tả phần cứng SystemC và các kiến trúc vi xử lý nhúng tiên tiến như ARM hoặc RISC-V.