Bối cảnh và vấn đề nghiên cứu

Phép nhân ma trận là phép toán số học nền tảng trong nhiều lĩnh vực kỹ thuật và công nghệ hiện đại, bao gồm xử lý tín hiệu số (DSP), xử lý hình ảnh, tính toán khoa học và trí tuệ nhân tạo (AI), đặc biệt là trong quá trình huấn luyện và suy luận của các mạng nơ-ron tích chập (CNN). Tuy nhiên, khi thực thi các phép tính ma trận quy mô lớn trên các bộ vi xử lý đa năng (CPU) hoặc vi điều khiển truyền thống theo kiến trúc von Neumann, hệ thống đối mặt với tình trạng suy giảm hiệu năng nghiêm trọng và lãng phí năng lượng. Nguyên nhân chính bắt nguồn từ việc các bộ xử lý này thực thi lệnh một cách tuần tự và chịu ảnh hưởng trực tiếp từ hiện tượng "bức tường bộ nhớ" (memory wall), nơi tốc độ truy xuất dữ liệu từ bộ nhớ chính chậm hơn rất nhiều so với tốc độ xử lý của mạch logic, dẫn đến độ trễ lớn và tiêu hao công suất do phải liên tục nạp/xả dữ liệu qua bus hệ thống. Đối với các hệ thống nhúng thời gian thực (như xe tự hành hay thiết bị thị giác máy tính), độ trễ tính toán vài mili-giây có thể gây ra những rủi ro kỹ thuật đáng kể. Nhằm giải quyết các hạn chế này, việc thiết kế phần cứng tăng tốc chuyên dụng sử dụng kiến trúc mảng tâm thu (systolic array) là giải pháp được tác giả lựa chọn để tối ưu hóa tốc độ và mức tiêu thụ năng lượng.

Nhiệm vụ và mục tiêu nghiên cứu của đồ án được xác định rõ ràng qua 6 nội dung cụ thể:

  1. Nghiên cứu và tìm hiểu nguyên lý phép nhân ma trận cùng phương pháp hiện thực phép toán này trên phần cứng chuyên dụng.
  2. Tìm hiểu nguyên lý hoạt động của kiến trúc mảng tâm thu (systolic array) và cơ chế tăng tốc các phép toán ma trận của kiến trúc này.
  3. Thiết kế các khối mạch số cơ bản phục vụ cho phép nhân ma trận, bao gồm bộ cộng (adders), bộ nhân (multipliers), thanh ghi (registers) và bộ dồn kênh (multiplexers).
  4. Tích hợp các khối mạch cơ bản thành các phần tử xử lý (Processing Elements - PE) hoàn chỉnh và ghép nối thành mảng tâm thu thực hiện phép nhân ma trận.
  5. Hiện thực hóa toàn bộ thiết kế trên phần mềm Cadence Virtuoso bằng công nghệ bán dẫn CMOS 90nm ở mức transistor.
  6. Mô phỏng hệ thống, đánh giá tính đúng đắn về mặt chức năng logic, luồng dữ liệu và hiệu năng hoạt động.

Đối tượng và phạm vi nghiên cứu của đề tài tập trung vào lĩnh vực thiết kế hệ thống số, cụ thể là phần cứng tăng tốc tính toán dựa trên kiến trúc mảng tâm thu. Đề tài được giới hạn trong các phạm vi kỹ thuật sau:

  • Tập trung chuyên biệt vào phép tính nhân ma trận nhị phân không dấu, không mở rộng sang các phép toán số học khác.
  • Hệ thống phần cứng được thiết kế và kiểm thử cho kích thước ma trận vuông 3×3 (và cấu hình thử nghiệm phụ 2×2).
  • Thiết kế mạch số bằng logic CMOS ở mức transistor (transistor level) trên quy trình công nghệ CMOS 90nm thông qua phần mềm Cadence Virtuoso.
  • Toàn bộ kết quả thiết kế được thẩm định và đánh giá thông qua mô phỏng dạng sóng trên công cụ ADE L của Cadence Virtuoso, chưa thực hiện layout vật lý, kiểm tra DRC/LVS, chế tạo chip thực tế (fabrication), và không bao gồm tầng phần mềm điều khiển hay giao diện người dùng.

Cơ sở lý thuyết và phương pháp

Về mặt cơ sở toán học, phép nhân hai ma trận $A$ (kích thước $M \times K$) và $B$ (kích thước $K \times N$) tạo ra ma trận kết quả $C$ (kích thước $M \times N$), trong đó mỗi phần tử $C(i, j)$ được xác định theo công thức tích vô hướng:

$$C(i, j) = \sum_{k=1}^K A(i, k) \times B(k, j)$$

Mỗi phần tử $C(i, j)$ đòi hỏi $K$ phép nhân và $K - 1$ phép cộng. Thuật toán nhân ma trận truyền thống có độ phức tạp tính toán là $O(N^3)$. Khi kích thước ma trận tăng lên (chẳng hạn ma trận $256 \times 256$), khối lượng tính toán vượt quá 16 triệu phép tính số học, đòi hỏi các cấu trúc phần cứng có khả năng xử lý song song cao.

Về mặt kiến trúc phần cứng, nghiên cứu dựa trên hai nguyên lý cốt lõi:

  • Kỹ thuật đường ống (pipelining): Chia nhỏ một tác vụ tính toán phức tạp thành nhiều giai đoạn (stages) liên tiếp phân tách bởi các thanh ghi chốt dữ liệu. Sau độ trễ khởi tạo ban đầu để nạp đầy đường ống (pipeline latency), hệ thống có thể cung cấp kết quả đầu ra đều đặn sau mỗi chu kỳ xung nhịp (clock cycle).
  • Xử lý song song (parallelism) và kiến trúc mảng tâm thu (systolic array): Hệ thống gồm mạng lưới các phần tử xử lý (Processing Elements - PE) được bố trí theo dạng lưới tọa độ hai chiều. Dữ liệu đầu vào từ hai ma trận được đẩy tuần tự vào mảng từ hai hướng (hàng của ma trận $A$ đi từ phía tây sang đông, cột của ma trận $B$ đi từ phía bắc xuống nam) một cách nhịp nhàng theo xung nhịp hệ thống. Dữ liệu được tái sử dụng cục bộ giữa các PE lân cận mà không cần liên tục truy xuất bộ nhớ ngoài, giúp giảm thiểu đáng kể năng lượng nạp/xả bus và độ trễ truyền thông. Tác giả tham chiếu các mô hình mảng tâm thu kinh điển đã ứng dụng thành công trong thực tế như Google TPU (sử dụng mảng tâm thu $256 \times 256$ phục vụ tăng tốc máy học), MIT Eyeriss (tối ưu hóa năng lượng cho mạng CNN di động) và các bộ tăng tốc trên nền tảng FPGA.

Phương pháp nghiên cứu thực tế được triển khai theo quy trình kỹ thuật từ dưới lên (bottom-up design methodology):

  • Phương pháp phân tích và mô hình hóa toán học: Xác định số lượng bit dữ liệu, xây dựng bảng chân trị (truth table) và thiết lập hàm logic Boole cho từng khối chức năng.
  • Phương pháp thiết kế vi mạch mức transistor: Xây dựng sơ đồ nguyên lý (schematic) chi tiết cho từng cổng logic, flip-flop, thanh ghi, bộ cộng, bộ nhân và bộ dồn kênh bằng công nghệ CMOS 90nm trong môi trường Cadence Virtuoso; đóng gói các mạch này thành các biểu tượng linh kiện (symbols) phân tầng.
  • Phương pháp tích hợp hệ thống: Kết nối các biểu tượng thành khối PE hoàn chỉnh và bố trí 9 khối PE thành mảng ma trận 3×3 với hệ thống dây tín hiệu đồng bộ, tín hiệu điều khiển và cấp nguồn ($V_{DD}$, $V_{SS}$).
  • Phương pháp mô phỏng thực nghiệm: Sử dụng công cụ Cadence Virtuoso ADE L để cấp xung nhịp (clk), tín hiệu cho phép (en), tín hiệu chọn (sel) và vector dữ liệu đầu vào nhị phân; đo đạc dạng sóng điện áp ngõ ra, tính toán công suất tiêu thụ trung bình, độ trễ truyền lan ($t_{pdr}$, $t_{pdf}$) và tích số công suất - độ trễ (PDP).

Nguồn dữ liệu đánh giá bao gồm các vector kiểm thử ma trận số học nhị phân được thiết kế theo kịch bản chuẩn hóa, các bảng chân lý lý thuyết và dạng sóng mô phỏng xuất trực tiếp từ bộ mô phỏng mạch điện tử tương tự/số ADE L.

Thiết kế và triển khai

Hệ thống tăng tốc nhân ma trận 3×3 được thiết kế từ các khối chức năng cơ bản ở mức transistor CMOS trên tiến trình 90nm, sau đó tích hợp thành phần tử xử lý (PE) và kết nối thành mảng hoàn chỉnh:

+-------------------------------------------------------------------------+
|                  CẤU TRÚC PHẦN TỬ XỬ LÝ (PE) VÀ MẢNG 3X3                |
|                                                                         |
|   Dữ liệu A (8-bit) ---> [ PIPO Reg 8-bit ] ---> A_OUT sang PE kế       |
|                                 |                                       |
|   Dữ liệu B (8-bit) ---> [ PIPO Reg 8-bit ] ---> B_OUT sang PE kế       |
|                                 |                                       |
|                                 v                                       |
|                    [ Bộ nhân 8-bit (Wallace Tree) ]                     |
|                                 | (Tích 16-bit)                         |
|                                 v                                       |
|    Kết quả cộng dồn ---> [ Bộ cộng 16-bit RCA ]                         |
|                                 | (Tổng 16-bit + Carry)                 |
|                                 v                                       |
|                 [ Bộ dồn kênh MUX 2:1 (17-bit) ]                        |
|                                 |                                       |
|                                 v                                       |
|                  [ PIPO Register 17-bit (Tích lũy) ]                    |
|                                 |                                       |
|                                 +---> Ngõ ra kết quả ma trận C          |
+-------------------------------------------------------------------------+

Thiết kế khối mạch số học

  • Bộ cộng toàn phần 1-bit (Full Adder - FA): Được thiết kế gồm 3 ngõ vào ($A, B, C_{in}$) và 2 ngõ ra ($S, C_{out}$). Phương trình logic được hiện thực:

    $$S = A \oplus B \oplus C_{in}$$ $$C_{out} = AB + (A \oplus B) \cdot C_{in}$$

    Mạch sử dụng 2 cổng XOR cho đường tạo tổng $S$, kết hợp các cổng AND và OR cho đường tạo nhớ $C_{out}$.

  • Bộ cộng 16-bit và 8-bit: Ứng dụng cấu trúc cộng lan truyền tia nhớ (Ripple Carry Adder - RCA). Bộ cộng 16-bit được tạo thành bằng cách ghép nối chuỗi 16 bộ Full Adder 1-bit, trong đó ngõ ra $C_{out}$ của tầng trước nối trực tiếp vào $C_{in}$ của tầng kế tiếp. Mạch nhận hai bus ngõ vào 16-bit ($A, B$), 1-bit $C_{in}$, tạo ra bus tổng 16-bit và 1-bit nhớ tràn ngõ ra. Tương tự, bộ cộng 8-bit gồm 8 khối Full Adder 1-bit liên kết theo kiến trúc RCA.

  • Bộ nhân 8-bit: Dựa trên nguyên lý cây Wallace (Wallace Tree), nhận hai giá trị nhị phân 8-bit ($A$ và $B$) để tạo tích 16-bit ngõ ra. Mạch bao gồm 64 cổng AND (bố trí thành 8 hàng tương ứng với các bit từ $A_0 - A_7$ và $B_0 - B_7$) để tạo 8 tích riêng phần (partial products). Bảy khối bộ cộng 8-bit RCA được sử dụng để cộng dồn các tích riêng phần này sau khi đã thực hiện dịch bit sang trái theo đúng quy tắc nhân nhị phân. Ngõ ra tích cuối cùng gồm 16 bit từ $P_0$ đến $P_{15}$.

Thiết kế khối lưu trữ và điều khiển

  • D Flip-Flop: Thiết kế theo cấu trúc master-slave sử dụng cổng truyền CMOS (Transmission Gate - TG) kết hợp các cổng đảo (Inverters). Tầng master nhận dữ liệu khi xung nhịp $clk = 0$ và chốt giá trị qua vòng lặp inverter khi $clk = 1$. Tầng slave mở cổng truyền cho phép dữ liệu chuyển sang ngõ ra $Q$ khi $clk = 1$. Cấu trúc này kích hoạt chốt dữ liệu chính xác tại cạnh lên của xung nhịp.
  • Enabled Flip-Flop: Bổ sung tính năng kiểm soát lưu trữ bằng kỹ thuật gating xung nhịp (clock gating). Một cổng AND kết hợp tín hiệu xung nhịp $clk$ và tín hiệu cho phép $en$; ngõ ra của cổng AND đóng vai trò là xung nhịp cục bộ điều khiển D Flip-Flop, giúp đóng băng trạng thái khi $en = 0$, ngăn ngừa chuyển mạch không cần thiết và tiết kiệm điện năng.
  • Thanh ghi PIPO (Parallel In Parallel Out):
    • Thanh ghi PIPO 8-bit: Được cấu tạo từ 8 khối Enabled Flip-Flop mắc song song, chung tín hiệu $clk$ và $en$. Khối này dùng để đệm và dịch dữ liệu ma trận đầu vào ($A$ và $B$) qua các phần tử PE theo từng chu kỳ.
    • Thanh ghi PIPO 17-bit: Cấu tạo từ 17 Enabled Flip-Flop mắc song song (chia thành bốn nhóm 4-bit và một nhóm 1-bit MSB). Thanh ghi này nằm trong mỗi PE nhằm lưu trữ kết quả tính toán cộng dồn 16-bit cùng bit nhớ tràn ($D_1 - D_{17}$, $Q_1 - Q_{17}$).
  • Bộ dồn kênh MUX 2:1 và MUX 17-bit: Bộ MUX 2:1 1-bit được cấu tạo từ 2 cổng truyền CMOS (TG) và 1 cổng đảo, hoạt động theo phương trình logic $Y = \overline{S} \cdot D_0 + S \cdot D_1$. Bộ MUX 2:1 độ rộng 17-bit được ghép nối từ 17 cell MUX 2:1 đơn lẻ, chung đường tín hiệu chọn $S$, cho phép chuyển đổi đồng thời toàn bộ 17 bit dữ liệu giữa trạng thái nạp giá trị ban đầu và giá trị tính toán lặp.

Tích hợp phần tử xử lý (PE) và mảng 3×3

Mỗi phần tử xử lý (PE) tích hợp một bộ nhân 8-bit, một bộ cộng 16-bit, hai thanh ghi PIPO 8-bit (dành cho đường truyền dữ liệu ngõ vào $A$ và $B$), một bộ MUX 2:1 17-bit và một thanh ghi PIPO 17-bit lưu trữ kết quả tính lũy tích-cộng (MAC). Trong mảng 3×3, 9 khối PE ($PE_{11}$ đến $PE_{33}$) được liên kết thành lưới hai chiều:

  • Các phần tử hàng của ma trận $A$ được đưa vào cạnh phía tây (hàng 1 vào $PE_{11}$, hàng 2 vào $PE_{21}$, hàng 3 vào $PE_{31}$).
  • Các phần tử cột của ma trận $B$ được đưa vào cạnh phía bắc (cột 1 vào $PE_{11}$, cột 2 vào $PE_{12}$, cột 3 vào $PE_{13}$).
  • Dữ liệu $A_{out}$ và $B_{out}$ sau mỗi chu kỳ được truyền tuần tự sang các PE lân cận ở bên phải và bên dưới, thực hiện tính toán song song - đường ống đồng bộ trên toàn bộ mảng.
Tên khối mạch Thành phần cấu tạo mức Transistor / Cổng Độ rộng bus ngõ vào Độ rộng bus ngõ ra Chức năng trong hệ thống
Full Adder (FA) Cổng XOR, AND, OR (CMOS 90nm) 3 bit ($A, B, C_{in}$) 2 bit ($S, C_{out}$) Phần tử cộng số học 1-bit cơ sở
8-bit RCA 8 khối Full Adder 1-bit liên hoàn $2 \times 8$ bit, 1-bit $C_{in}$ 8 bit Tổng, 1-bit $C_{out}$ Cộng tích riêng phần trong bộ nhân
16-bit RCA 16 khối Full Adder 1-bit liên hoàn $2 \times 16$ bit, 1-bit $C_{in}$ 16 bit Tổng, 1-bit $C_{out}$ Khối cộng dồn giá trị MAC trong PE
Bộ nhân 8-bit 64 cổng AND, 7 khối 8-bit RCA $2 \times 8$ bit ($A_0-A_7, B_0-B_7$) 16 bit ($P_0-P_{15}$) Nhân hai phần tử ma trận nhị phân
D Flip-Flop Master-Slave dùng Transmission Gate + Inverter 1 bit ($D$), $clk, clkb$ 1 bit ($Q$) Phần tử chốt dữ liệu theo xung nhịp
Enabled DFF Cổng AND (clock gating) + D Flip-Flop 1 bit ($D$), $clk, en$ 1 bit ($Q$) Chốt dữ liệu có điều kiện kích hoạt
PIPO Reg 8-bit 8 khối Enabled Flip-Flop song song 8 bit ($D_1-D_8$), $clk, en$ 8 bit ($Q_1-Q_8$) Dịch dữ liệu ngõ vào $A, B$ giữa các PE
PIPO Reg 17-bit 17 khối Enabled Flip-Flop song song 17 bit ($D_1-D_{17}$), $clk, en$ 17 bit ($Q_1-Q_{17}$) Lưu kết quả cộng dồn trung gian và đầu ra
MUX 2:1 17-bit 17 cell MUX 2:1 dùng cổng truyền TG $2 \times 17$ bit ($A, B$), 1-bit Sel 17 bit ($Y$) Chọn luồng dữ liệu nạp/tích lũy cho PE
Processing Element 1 Mult 8b, 1 Adder 16b, 2 Reg 8b, 1 Reg 17b, 1 MUX 17b Dữ liệu $A, B$ (8-bit), tín hiệu điều khiển $A_{out}, B_{out}$ (8-bit), $C$ (17-bit) Thực thi vi phép toán nhân và cộng dồn (MAC)
Mảng 3×3 9 khối Processing Element liên kết lưới 3 luồng hàng $A$, 3 luồng cột $B$ 9 ma trận ngõ ra $C_{11}-C_{33}$ Tăng tốc toàn bộ phép nhân hai ma trận 3×3

Nội dung chính theo từng chương

Chapter 1: INTRODUCTION

Chương mở đầu thiết lập cơ sở khoa học và bối cảnh thực tiễn của đề tài. Tác giả phân tích nhu cầu tính toán ma trận trong các thuật toán trí tuệ nhân tạo và xử lý tín hiệu số, chỉ ra các nút thắt cổ chai về độ trễ và tiêu hao năng lượng trên các kiến trúc vi xử lý truyền thống. Chương này công bố 6 mục tiêu nghiên cứu cụ thể, xác định đối tượng là kiến trúc mảng tâm thu và giới hạn phạm vi nghiên cứu ở mức mô phỏng schematic mạch CMOS 90nm cho ma trận 3×3 trên Cadence Virtuoso ADE L. Đồng thời, cấu trúc tổng thể gồm 5 chương của báo cáo khóa luận cũng được định hình chi tiết.

Chapter 2: LITERATURE REVIEW

Chương này tổng quan cơ sở lý thuyết toán học và kiến trúc máy tính chuyên dụng. Về mặt giải thuật, tác giả trình bày công thức nhân ma trận tổng quát, độ phức tạp thuật toán $O(N^3)$ và minh họa chi tiết quá trình tính toán tích vô hướng cho ma trận 3×3. Về mặt phần cứng, chương phân tích sự kết hợp giữa kỹ thuật đường ống (pipelining) và xử lý song song (parallelism), giải thích hiện tượng độ trễ đường ống (pipeline latency). Kiến trúc mảng tâm thu được định nghĩa tường minh cùng cấu trúc phần tử xử lý (PE). Tác giả so sánh ưu điểm (xử lý song song cao, tái sử dụng dữ liệu cục bộ, khả năng mở rộng mô-đun hóa, tiết kiệm năng lượng) và nhược điểm (chức năng cố định, hiệu suất phần cứng giảm khi kích thước ma trận tính toán nhỏ hơn kích thước mảng phần cứng, độ phức tạp trong thiết kế định thời). Cuối chương điểm qua các ứng dụng thực tế tiêu biểu như chip TPU của Google, kiến trúc Eyeriss của MIT và các hệ thống tăng tốc trên FPGA.

Chapter 3: SYSTOLIC ARRAY ARCHITECTURE DESIGN

Chương này tập trung toàn bộ vào quy trình thiết kế kỹ thuật từ mức cổng logic đến mức transistor trên phần mềm Cadence Virtuoso sử dụng tiến trình 90nm CMOS:

  • Thiết kế mạch cộng: Xây dựng bộ cộng toàn phần 1-bit (Full Adder) từ cổng XOR, AND, OR, đóng gói thành symbol; ghép 16 bộ FA thành bộ cộng 16-bit Ripple Carry Adder (RCA); thiết kế bộ cộng 8-bit RCA.
  • Thiết kế mạch nhân: Xây dựng bộ nhân 8-bit dựa trên kiến trúc cây Wallace gồm 64 cổng AND tạo 8 tích riêng phần và 7 bộ cộng 8-bit RCA để cộng dồn, tạo ngõ ra tích 16-bit ($P_0 - P_{15}$).
  • Thiết kế khối lưu trữ: Xây dựng D Flip-Flop master-slave kích hoạt cạnh lên bằng cổng truyền (TG) và inverter; tạo Enabled Flip-Flop bằng kỹ thuật clock gating với cổng AND; ghép nối các khối thành thanh ghi PIPO 8-bit và PIPO 17-bit.
  • Thiết kế bộ dồn kênh: Hiện thực MUX 2:1 dùng cổng truyền CMOS và mở rộng thành bộ MUX 2:1 độ rộng 17-bit từ 17 cell đơn lẻ.
  • Tích hợp PE và mảng 3×3: Ghép nối các khối thành phần tử PE và bố trí 9 khối PE thành mảng tâm thu 3×3 với đầy đủ mạng lưới phân phối dữ liệu ngõ vào, ngõ ra và các chân cấp nguồn $V_{DD}, V_{SS}$.

Chapter 4: SIMULATION & EVALUATION SYSTOLIC ARRAY ARCHITECTURE

Chương này công bố toàn bộ quy trình thiết lập thử nghiệm và kết quả mô phỏng dạng sóng trên công cụ ADE L cho từng linh kiện và toàn mảng:

  • Kiểm chứng chức năng các khối độc lập: Dạng sóng kiểm tra bộ cộng 1-bit FA, 8-bit RCA, 16-bit RCA; dạng sóng kiểm chứng 3 chu kỳ của bộ nhân 8-bit; dạng sóng chốt và giữ dữ liệu của thanh ghi PIPO 8-bit và 17-bit; dạng sóng chuyển mạch của MUX 17-bit; dạng sóng tích lũy MAC của một phần tử PE.
  • Kiểm chứng toàn mảng 3×3: Phân tích dạng sóng xuất kết quả tại 9 vị trí phần tử ngõ ra từ $C_{11}$ đến $C_{33}$ tương ứng với các thời điểm trễ đường ống (từ 5 chu kỳ xung nhịp cho $C_{11}$ đến 9 chu kỳ xung nhịp cho $C_{33}$).
  • Đo đạc thông số kỹ thuật: Xác định thời gian trễ lan truyền cạnh lên ($t_{pdr}$) và cạnh xuống ($t_{pdf}$) trên công cụ Virtuoso, từ đó xác định tần số xung nhịp cực đại (Maximum Clock Frequency). Tính toán tích số công suất - độ trễ (Power-Delay Product - PDP).
  • Đánh giá trên cấu hình ma trận 2×2: Thử nghiệm vận hành mảng 3×3 với ma trận đầu vào kích thước 2×2 để đánh giá tính linh hoạt và phân tích mức tiêu thụ công suất trung bình tương ứng qua các bảng dữ liệu thực nghiệm (Bảng 3 cho ma trận 3×3 và Bảng 4 cho ma trận 2×2).

Chapter 5: CONCLUSION AND DEVELOPMENT OF THE PROJECT

Chương cuối tổng kết toàn bộ các kết quả đạt được của khóa luận. Tác giả khẳng định tính khả thi của việc thiết kế bộ tăng tốc nhân ma trận từ mức logic cơ bản đến mức transistor trên công nghệ CMOS 90nm. Mặc dù mảng 3×3 còn giới hạn về kích thước ma trận xử lý, mô hình đã chứng minh được tính ưu việt của việc xử lý dữ liệu song song và đường ống. Đồ án đề xuất các hướng phát triển tiếp theo bao gồm việc mở rộng mảng PE lên kích thước lớn hơn, triển khai thiết kế layout vật lý, kiểm tra quy tắc thiết kế (DRC/LVS) và hướng tới quy trình chế tạo bán dẫn thực tế.

Kết quả và đóng góp

Nghiên cứu đã hiện thực hóa thành công một hệ thống phần cứng tăng tốc nhân ma trận hoàn chỉnh từ mức linh kiện bán dẫn đến mức hệ thống mảng 3×3. Các kết quả cụ thể gồm:

  • Hiện thực thành công thư viện các linh kiện số mức transistor trên tiến trình 90nm CMOS: Full Adder 1-bit, bộ cộng 8-bit RCA, bộ cộng 16-bit RCA, bộ nhân nhị phân 8-bit (64 cổng AND, 7 khối cộng 8-bit), D Flip-Flop master-slave dùng cổng truyền TG, Enabled DFF dùng clock gating, thanh ghi PIPO 8-bit, thanh ghi PIPO 17-bit và MUX 2:1 17-bit.
  • Tích hợp thành công 9 phần tử xử lý PE thành mảng tâm thu 3×3, kiểm chứng hoạt động đồng bộ của luồng dữ liệu song song và đường ống thông qua mô phỏng dạng sóng trên công cụ Cadence Virtuoso ADE L. Dữ liệu ngõ ra tại các vị trí từ $C_{11}$ đến $C_{33}$ cho thấy kết quả tính toán số học hoàn toàn trùng khớp với giá trị lý thuyết.
  • Xác định các thông số vận hành then chốt của mạch mảng 3×3: Đo đạc thời gian trễ lan truyền cạnh lên ($t_{pdr}$) và cạnh xuống ($t_{pdf}$), xác định tần số xung nhịp cực đại của hệ thống; tính toán tích số công suất - độ trễ (PDP); đo lường và tổng hợp mức tiêu thụ công suất trung bình khi thực hiện phép nhân ma trận 3×3 (Bảng 3 trong báo cáo) và ma trận 2×2 (Bảng 4 trong báo cáo).
  • Bản báo cáo khóa luận đạt chỉ số trùng lặp thấp (similarity index đạt 7%), thể hiện tính độc lập và nghiêm túc trong quá trình thực hiện nghiên cứu học thuật.

Đóng góp chính của đề tài so với các nghiên cứu trước (theo công bố của tác giả):

  • Cung cấp một phương pháp thiết kế phần cứng vi mạch chi tiết từ đáy lên (bottom-up), đi từ các cổng logic cơ bản đến sơ đồ nguyên lý mức transistor trên công nghệ thương mại 90nm, giúp làm sáng tỏ cấu trúc bên trong của các khối PE thay vì chỉ dừng lại ở mô tả phần cứng mức trừu tượng cao (RTL/VHDL/Verilog).
  • Ứng dụng kỹ thuật clock gating trên các Flip-Flop chốt dữ liệu và sử dụng cổng truyền CMOS (Transmission Gates) trong bộ dồn kênh và flip-flop nhằm tối ưu hóa diện tích mạch, hạn chế chuyển mạch dư thừa và giảm công suất tiêu thụ trong các ứng dụng nhúng công suất thấp.
  • Đóng gói toàn bộ các khối chức năng thành các biểu tượng (symbols) có tính mô-đun hóa cao, tạo điều kiện thuận lợi cho việc tái sử dụng và mở rộng hệ thống lên các mảng tâm thu quy mô lớn hơn trong tương lai.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đồ án:

  • Phạm vi chức năng hẹp: Mạch phần cứng chỉ thực hiện duy nhất phép toán nhân ma trận số học không dấu, không hỗ trợ các phép toán ma trận khác (chuyển vị, nghịch đảo) hoặc các phép toán phi tuyến.
  • Quy mô tính toán hạn chế: Hệ thống chỉ được thiết kế cố định cho ma trận kích thước 3×3. Khi nhân ma trận kích thước nhỏ hơn (như ma trận 2×2), một số phần tử PE không hoạt động nhưng vẫn tiêu tốn tài nguyên phần cứng.
  • Phạm vi thẩm định kỹ thuật: Mạch mới chỉ dừng lại ở mức mô phỏng sơ đồ nguyên lý (schematic simulation) trên ADE L; chưa tiến hành thiết kế layout vật lý, chưa trích xuất ký sinh (parasitic extraction), chưa kiểm tra quy tắc thiết kế (DRC/LVS) và chưa được chế tạo, đóng gói chip thực tế.
  • Công nghệ bán dẫn: Sử dụng quy trình công nghệ 90nm CMOS, chưa đại diện cho các tiến trình công nghệ bán dẫn tiên tiến dưới 10nm hiện nay.
  • Thiếu tầng điều khiển mềm: Thiết kế chưa tích hợp bộ điều khiển vi chương trình hoặc giao diện kết nối phần mềm để nạp dữ liệu tự động từ bộ nhớ hệ thống.

Hướng phát triển tiếp theo của đề tài:

  • Mở rộng kích thước mảng tâm thu lên quy mô lớn hơn để có thể xử lý các ma trận dữ liệu thực tế trong học máy và xử lý ảnh.
  • Bổ sung thêm các tính năng phần cứng và cơ chế điều khiển cấu hình linh hoạt.
  • Tiến hành thiết kế mặt nạ vi mạch (layout design), thực hiện các bước kiểm tra DRC, LVS, trích xuất điện trở/tụ điện ký sinh để đánh giá chính xác độ trễ hậu mô phỏng (post-layout simulation).
  • Hướng tới quy trình gửi băng chế tạo chip thực tế (fabrication process).

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo kỹ thuật chuyên sâu dành cho sinh viên, học viên cao học và kỹ sư thuộc các chuyên ngành Công nghệ Kỹ thuật Máy tính, Kỹ thuật Điện tử - Viễn thông, Thiết kế Vi mạch Bán dẫn (IC Design) và Kỹ thuật Hệ thống Nhúng.

Tài liệu có giá trị tham khảo đặc biệt tại các nội dung:

  • Phương pháp thiết kế vi mạch số mức transistor (transistor-level schematic design) trong môi trường Cadence Virtuoso, bao gồm kỹ thuật ghép nối cổng truyền CMOS (TG) và kỹ thuật clock gating tiết kiệm điện.
  • Cấu trúc chi tiết của bộ nhân cây Wallace 8-bit và bộ cộng lan truyền tia nhớ (Ripple Carry Adder) đa bit.
  • Quy trình thiết lập mô phỏng kiểm chứng dạng sóng, đo đạc độ trễ lan truyền, tần số xung nhịp cực đại, công suất tiêu thụ và chỉ số PDP trên công cụ ADE L.
  • Phương pháp phân rã và điều phối luồng dữ liệu song song - đường ống trong kiến trúc mảng tâm thu hai chiều.

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

Khóa luận sử dụng công nghệ bán dẫn và công cụ phần mềm nào để thiết kế và mô phỏng hệ thống?
Tác giả sử dụng tiến trình công nghệ 90nm CMOS và phần mềm Cadence Virtuoso để thiết kế sơ đồ mạch ở mức transistor, kết hợp với công cụ ADE L (Analog Design Environment L) để thiết lập các nguồn kích thích nhị phân và mô phỏng dạng sóng kiểm chứng chức năng cùng các thông số điện năng.

Cấu trúc bộ nhân 8-bit trong phần tử xử lý (PE) được hiện thực bằng những thành phần nào?
Bộ nhân 8-bit được thiết kế dựa trên kiến trúc cây Wallace (Wallace Tree), bao gồm 64 cổng AND (bố trí thành 8 hàng tương ứng với các cặp bit đầu vào của $A$ và $B$) để tạo 8 tích riêng phần, cùng 7 khối bộ cộng 8-bit Ripple Carry Adder (RCA) để cộng dồn các tích riêng phần này sau khi dịch bit, tạo ra kết quả tích 16-bit ở ngõ ra ($P_0 - P_{15}$).

Vai trò của hai loại thanh ghi PIPO 8-bit và 17-bit trong hệ thống là gì?
Thanh ghi PIPO 8-bit được đặt ở các ngõ vào của mỗi phần tử xử lý (PE) để đệm và dịch chuyển song song các phần tử dữ liệu của ma trận $A$ và ma trận $B$ sang các PE kế cận theo chu kỳ xung nhịp. Thanh ghi PIPO 17-bit được tích hợp bên trong PE để lưu trữ kết quả cộng dồn trung gian của phép toán nhân-cộng tích lũy (MAC) và chốt giá trị phần tử ma trận kết quả $C$.

Cấu trúc D Flip-Flop trong đề tài được thiết kế theo kiến trúc nào để đảm bảo tính đồng bộ?
D Flip-Flop được thiết kế theo cấu trúc master-slave sử dụng cổng truyền CMOS (Transmission Gates - TG) kết hợp với các cổng đảo (Inverters). Cấu trúc này chia làm hai tầng chốt dữ liệu lệch pha nhau theo trạng thái xung nhịp $clk$, đảm bảo ngõ ra chỉ lấy mẫu và cập nhật giá trị ngõ vào tại cạnh lên của xung nhịp.

Dữ liệu của hai ma trận A và B được nạp vào mảng tâm thu 3×3 theo luồng như thế nào?
Dữ liệu của ma trận $A$ được nạp vào mảng theo từng hàng từ cạnh phía tây (bên trái), còn dữ liệu của ma trận $B$ được nạp vào theo từng cột từ cạnh phía bắc (phía trên). Khi các phần tử của $A$ và $B$ gặp nhau tại một PE cụ thể theo từng chu kỳ xung nhịp, phép nhân được thực hiện và kết quả được cộng dồn vào giá trị lưu sẵn, sau đó dữ liệu $A$ và $B$ tiếp tục được truyền sang các PE lân cận.

Kết luận

Đồ án tốt nghiệp của sinh viên Nguyễn Hải Đăng đã hoàn thành việc nghiên cứu, thiết kế và mô phỏng thành công hệ thống tăng tốc phép nhân ma trận trên kiến trúc mảng tâm thu 3×3 ở mức transistor. Toàn bộ các khối số học và lưu trữ cơ bản được xây dựng trên công nghệ bán dẫn 90nm CMOS bằng phần mềm Cadence Virtuoso, chứng minh tính đúng đắn về chức năng và luồng dữ liệu song song - đường ống thông qua mô phỏng trên ADE L. Mặc dù còn giới hạn về kích thước ma trận và chưa triển khai bước layout vật lý, công trình đã xây dựng được một quy trình thiết kế vi mạch bán dẫn có hệ thống, cung cấp cơ sở dữ liệu thực nghiệm giá trị cho việc phát triển các bộ tăng tốc phần cứng tiết kiệm năng lượng trong tương lai.