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

Sự phát triển mạnh mẽ của khoa học kỹ thuật kéo theo khối lượng dữ liệu khổng lồ cần xử lý trong các hệ thống tính toán hiện đại. Yêu cầu này đặt ra bài toán cấp thiết là phải xây dựng các bộ vi xử lý (CPU) có năng lực tính toán và tốc độ thực thi cao. Trong thiết kế kiến trúc máy tính, phương pháp xử lý theo thứ tự (In-of-Order) bộc lộ hạn chế lớn khi chuỗi lệnh gặp phải các xung đột dữ liệu (data hazards), dẫn đến việc đường ống vi xử lý bị đình trệ (pipeline stall) và tiêu tốn nhiều chu kỳ xung nhịp chờ đợi. Để giải quyết triệt để vấn đề nghẽn hiệu năng này, việc ứng dụng vi kiến trúc thực thi không theo thứ tự (Out-of-Order - OoO) là một giải pháp cốt lõi cho các bộ xử lý hiệu năng cao.

Tại thời điểm thực hiện đề tài (năm 2021), các nghiên cứu và sản phẩm thực nghiệm liên quan đến kiến trúc tập lệnh mở RISC-V kết hợp với vi kiến trúc Out-of-Order tại Việt Nam còn rất hạn chế. Để đáp ứng nhu cầu nghiên cứu thực nghiệm và xây dựng nền tảng kiến trúc vi xử lý thế hệ mới, đồ án tốt nghiệp kỹ sư ngành Kỹ thuật Máy tính tại Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM của hai tác giả Phan Văn Tiến và Huỳnh Trung Tấn đã tập trung giải quyết bài toán thiết kế hoàn chỉnh bộ xử lý RISC-V theo mô hình OoO.

Mục tiêu cụ thể của đề tài bao gồm:

  1. Thiết kế bộ xử lý RISC-V theo mô hình đường ống (pipeline) 5 tầng ứng dụng vi kiến trúc OoO.
  2. Thực thi 37 lệnh số nguyên cơ bản thuộc tập lệnh chuẩn RV32I.
  3. Thực thi 4 lệnh tính toán số dấu chấm động độ chính xác đơn (FADD, FSUB, FMUL, FDIV) thuộc tập lệnh chuẩn RVF.
  4. Tối ưu hóa phần cứng để hệ thống hoạt động ổn định ở tần số xung nhịp mục tiêu 50 MHz.

Đối tượng nghiên cứu của khóa luận là vi kiến trúc bộ xử lý Out-of-Order, tập lệnh RISC-V 32-bit (RV32I và RVF) và chuẩn tính toán số dấu chấm động IEEE 754. Phạm vi nghiên cứu tập trung vào việc mô hình hóa phần cứng bằng ngôn ngữ mô tả phần cứng (Verilog HDL), kiểm tra tính đúng đắn trên công cụ mô phỏng RARS và Xilinx Vivado, cũng như tổng hợp và đánh giá tài nguyên theo luồng thiết kế FPGA (hướng tới dòng chip Xilinx Virtex-7).

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

Khóa luận được xây dựng dựa trên các nền tảng lý thuyết và tiêu chuẩn kỹ thuật sau:

  • Kiến trúc tập lệnh RISC và RISC-V: Mô hình kiến trúc rút gọn đơn giản hóa tập lệnh, cố định chiều dài lệnh để tối ưu hóa giải mã và thực thi đường ống. Tập lệnh RISC-V 32-bit phân chia cấu trúc thành 6 định dạng lệnh chính: R-type, I-type, S-type, SB-type, U-type và UJ-type.
  • Kỹ thuật đường ống song song (Parallel Pipeline): Cho phép nạp lệnh mới tại mỗi chu kỳ xung nhịp thay vì phải chờ lệnh trước hoàn tất qua toàn bộ 5 tầng xử lý, từ đó tối ưu hóa thông lượng (throughput).
  • Lý thuyết xử lý xung đột dữ liệu (Data Hazards): Phân tích và xử lý ba dạng phụ thuộc dữ liệu cơ bản:
    • Phụ thuộc thực Read-After-Write (RAW): Giải quyết bằng cơ chế chuyển tiếp dữ liệu trực tiếp (Forwarding).
    • Phụ thuộc ngược Write-After-Read (WAR) và phụ thuộc giả Write-After-Write (WAW): Giải quyết bằng kỹ thuật đổi tên thanh ghi (Register Renaming) thông qua việc ánh xạ các thanh ghi kiến trúc (Architectural Register File - ARF) sang tập thanh ghi vật lý (Physical Register File - PRF) và hàng đợi trạm bảo lưu (Reservation Station - RS).
  • Chuẩn biểu diễn số dấu chấm động IEEE 754: Định dạng độ chính xác đơn 32-bit gồm 1 bit dấu ($S$), 8 bit số mũ ($E$ với độ lệch bias là 127) và 23 bit phần định trị ($M$, kết hợp cùng 1 bit ẩn tạo nên độ chính xác 24-bit thực tế).
Thành phần số mũ ($E$) Thành phần định trị ($M$) Giá trị thể hiện theo chuẩn IEEE 754
$E = 0$ $M = 0$ Số $0$ (Zero)
$E = 0$ $M \neq 0$ Số không chuẩn hóa (Denormalized)
$1 \le E \le 254$ Giá trị bất kỳ Số chuẩn hóa thông thường (Normalized)
$E = 255$ $M = 0$ Vô cùng ($\pm\infty$)
$E = 255$ $M \neq 0$ Không phải là số (NaN - Not a Number)

Phương pháp nghiên cứu thực nghiệm áp dụng luồng thiết kế ASIC/FPGA chuẩn:

  • Phương pháp phân tích và thiết kế: Phân rã kiến trúc vi xử lý thành hai phân hệ chính gồm khối đường truyền dữ liệu (Datapath) và khối điều khiển (Control Unit), kết hợp khối tính toán dấu chấm động FPU.
  • Phương pháp kiểm thử và mô phỏng: Sử dụng phần mềm mô phỏng tập lệnh RISC-V (RARS) làm môi trường đối chiếu dữ liệu chuẩn; sử dụng bộ công cụ Xilinx Vivado để mô phỏng dạng sóng mức chuyển thanh ghi (RTL) và tổng hợp sau thiết kế (Post-synthesis).

Thiết kế và triển khai

Hệ thống vi xử lý được thiết kế hoàn chỉnh với các khối chức năng chính nhằm hiện thực hóa khả năng thực thi Out-of-Order và tính toán số thực:

1. Phân hệ điều khiển và xử lý phụ thuộc dữ liệu

  • Khối điều khiển (Control Unit): Tiếp nhận mã lệnh inst[31:0], thực hiện giải mã các trường opcode, funct3, funct7 để sinh ra hệ thống tín hiệu điều khiển phân phối tới các tầng thực thi: pcSel, immSel[2:0], regWEn, brUn, bSel, aSel, aluSel[3:0], memRW, dataType và wbSel[1:0].
  • Khối tính toán ALU (Arithmetic Logic Unit): Nhận hai toán hạng 32-bit a[31:0], b[31:0] cùng mã điều khiển phép tính aluSel[3:0] để xuất kết quả tính toán số nguyên result[31:0].
  • Khối xử lý Forwarding: Giám sát địa chỉ thanh ghi tại các chốt trung gian instX (giai đoạn IF/ID), instM (giai đoạn ID/EX) và instW (giai đoạn EX/WB) để phát hiện xung đột RAW và phát tín hiệu chọn dữ liệu fwselBranchA[1:0], fwselBranchB[1:0].
  • Khối đổi tên thanh ghi (Rename Unit) và Trạm bảo lưu (Reservation Station):
    • Khối Rename ánh xạ thanh ghi kiến trúc sang thanh ghi vật lý bổ sung (như $T0 - T19$), quản lý cờ trạng thái hợp lệ validA, validB, cập nhật thẻ định danh tagA, tagB nhằm loại bỏ hoàn toàn xung đột WAR và WAW.
    • Khối rsSource đóng vai trò hàng đợi lệnh, lưu giữ trạng thái toán hạng và tag. Lệnh chỉ được rời RS đi vào Functional Unit khi toàn bộ toán hạng nguồn đã sẵn sàng.
    • Khối rsFree kiểm tra trạng thái bận rộn rs_busy để cấp phát các vị trí RS còn trống cho các lệnh tiếp theo.
Khối chức năng Tín hiệu ngõ vào chính Tín hiệu ngõ ra chính Vai trò kiến trúc
Control inst[31:0] pcSel, immSel, regWEn, aluSel, wbSel... Giải mã lệnh và điều phối luồng thực thi
ALU a[31:0], b[31:0], aluSel[3:0] result[31:0] Tính toán số học và logic 32-bit
Forwarding instX, instM, instW fwselBranchA, fwselBranchB Giải quyết xung đột dữ liệu RAW
Rename clk, regWEn, addrA, addrB, addrD, updatetag validA, validB, dataA, dataB, tagA, tagB Khử xung đột WAR và WAW
rsSource clk, rsFree, rs_dataA, rs_dataB, rs_busy, checktag_rs in_dataA, in_dataB, in_validA, in_tagA... Lưu vết và phát lệnh khi sẵn sàng toán hạng
rsFree clk, rs_busy rsFree Quản lý và cấp phát trạm RS trống

2. Thiết kế đơn vị xử lý số dấu chấm động (FPU)

FPU xử lý trực tiếp các toán hạng số thực 32-bit, hỗ trợ 4 phép toán cơ bản và xử lý 5 loại ngoại lệ chuẩn (Invalid Operation, Division by Zero, Inexact, Overflow, Underflow).

  • Giao diện hệ thống của FPU: Nhận RS1Operand[31:0], RS2Operand[31:0], FloatOp[3:0] và xuất Float_Output[31:0] kèm các cờ báo hiệu trạng thái Exception, Overflow, Underflow.
  • Khối phép tính Cộng/Trừ (Addition/Subtraction Unit):
    1. So sánh số mũ: Lấy hiệu hai số mũ để xác định toán hạng có số mũ nhỏ hơn.
    2. Căn chỉnh định trị: Dịch phải phần định trị của toán hạng có số mũ nhỏ hơn một khoảng bằng trị tuyệt đối của hiệu hai số mũ.
    3. Cộng/Trừ định trị: Thực hiện tính toán trên phần định trị đã căn chỉnh.
    4. Chuẩn hóa và làm tròn: Dịch định trị để đưa về dạng chuẩn hóa $1.M$, điều chỉnh số mũ tương ứng và thực hiện làm tròn số chẵn gần nhất.
  • Khối phép tính Nhân (Multiplication Unit):
    1. Xác định dấu: Thực hiện phép XOR giữa hai bit dấu đầu vào.
    2. Nhân định trị: Nhân hai phần định trị 24-bit (chứa bit ẩn) để thu được kết quả 48-bit.
    3. Tính số mũ: Cộng hai số mũ và trừ đi độ lệch 127. Bắt ngoại lệ tràn trên Overflow khi tổng số mũ nằm trong khoảng từ 383 đến 508, hoặc tràn dưới Underflow khi tổng số mũ nhỏ hơn 127.
    4. Chuẩn hóa và làm tròn: Trích xuất 23-bit định trị sau chuẩn hóa.
  • Khối phép tính Chia (Division Unit):
    1. Xác định dấu: Phép XOR giữa hai bit dấu.
    2. Tính số mũ: Lấy số mũ của số bị chia trừ số mũ của số chia, sau đó cộng bù độ lệch 127.
    3. Chia định trị: Thực hiện giải thuật chia dịch và trừ lặp lại (restoring/shift-and-subtract) để xác định từng bit thương từ MSB đến LSB.
    4. Chuẩn hóa, bắt ngoại lệ chia cho 0 và làm tròn kết quả.
Phép tính FPU Toán hạng ngõ vào Tín hiệu điều khiển Cờ trạng thái ngõ ra Kết quả ngõ ra
Cộng / Trừ a_operand[31:0], b_operand[31:0] AddBar_Sub (1-bit) Exception result[31:0]
Nhân a_operand[31:0], b_operand[31:0] Tự động qua opcode FPU Exception, OverFlow, Underflow result[31:0]
Chia a_operand[31:0], b_operand[31:0] Tự động qua opcode FPU Exception result[31:0]

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

Chương 1. Tổng quan đề tài

Trình bày tính cấp thiết của việc nghiên cứu vi kiến trúc Out-of-Order nhằm nâng cao năng lực xử lý dữ liệu. Đánh giá tổng quan các công trình trong nước, tiêu biểu là đề tài thiết kế bộ xử lý MIPS32 pipeline 5 tầng In-of-Order năm 2018 (Nguyễn Hoàng Dũng, Phan Gia Bảo), chỉ ra các mặt hạn chế về tốc độ và thiếu khối tính toán số thực. Xác định rõ mục tiêu thiết kế bộ xử lý RISC-V OoO thực thi 37 lệnh RV32I và 4 lệnh RVF tại tần số 50 MHz.

Chương 2. Kiến trúc bộ xử lý và kiến trúc tập lệnh RISC-V

Phân tích đặc tính kỹ thuật của kiến trúc RISC so với CISC (giảm diện tích bộ điều khiển từ 60% xuống 10%, tăng tốc độ giải mã). Giới thiệu lịch sử và cấu trúc tập lệnh RISC-V do David Patterson phát triển. So sánh ba cấu hình đường ống: One-Deep Single-Completion, Superpipeline và Parallel Pipeline; từ đó lựa chọn Parallel Pipeline. Phân tích sự khác biệt về chu trình xử lý giữa mô hình In-of-Order và Out-of-Order (sử dụng Instruction Buffer, Reservation Station, Functional Units và Reorder Buffer). Trình bày chi tiết 6 định dạng lệnh RISC-V.

Chương 3. Thiết kế bộ xử lý RISC-V theo vi kiến trúc OoO

Phân tích cơ chế phát sinh các loại Data Hazards (RAW, WAR, WAW) trong đường ống. Trình bày chi tiết giải pháp Forwarding cho RAW và cơ chế Register Renaming cho WAR/WAW. Mô tả chi tiết kiến trúc phần cứng, giao tiếp cổng và bảng chức năng tín hiệu của các khối: Khối điều khiển Control, Khối tính toán ALU, Khối xử lý Forwarding, Khối Rename, Khối Reservation Station (rsSource) và Khối quản lý trạm trống (rsFree).

Chương 4. Thiết kế đơn vị xử lý số dấu chấm động (FPU)

Trình bày cơ sở toán học của số dấu chấm động theo chuẩn IEEE 754 độ chính xác đơn 32-bit, các trường hợp số đặc biệt và 5 loại ngoại lệ tính toán. Thiết kế chi tiết kiến trúc hệ thống và lưu đồ giải thuật cho từng đơn vị chức năng: bộ cộng/trừ số thực, bộ nhân số thực (phân tích chi tiết ngưỡng phát hiện tràn số mũ 383–508), bộ chia số thực và các cơ chế làm tròn.

Chương 5. Mô phỏng và đánh giá kết quả

Thực hiện quy trình kiểm tra chức năng thông qua hai bước: chạy chương trình kiểm thử trên phần mềm mô phỏng RARS để lấy tập giá trị thanh ghi chuẩn, sau đó nạp mã máy vào bộ mô phỏng RTL trên Xilinx Vivado để so sánh dạng sóng. Kiểm thử thành công 37 lệnh RV32I, 4 lệnh số thực (FADD, FSUB, FMUL, FDIV) và chuỗi lệnh phức tạp chứng minh khả năng thực thi Out-of-Order không bị gián đoạn. Đánh giá kết quả tổng hợp sau thiết kế (Post-synthesis) về mặt định thời (Timing) và mức độ chiếm dụng tài nguyên trên FPGA Xilinx Virtex-7 trước và sau khi tích hợp FPU.

Chương 6. Kết luận và hướng phát triển đề tài

Tổng kết các kết quả đạt được về mặt chức năng và hiệu năng. Nêu rõ các mặt hạn chế còn tồn tại về độ phức tạp phần cứng và số lượng thanh ghi vật lý. Đặt ra các định hướng mở rộng hệ thống trong tương lai.

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

1. Kết quả thực nghiệm

  • Hoàn thiện thiết kế phần cứng bộ xử lý RISC-V pipeline 5 tầng tích hợp cơ chế thực thi Out-of-Order.
  • Kiểm thử và xác thực độ chính xác 100% của 37 lệnh thuộc tập lệnh RV32I và 4 lệnh tính toán số dấu chấm động đơn (FADD, FSUB, FMUL, FDIV) thuộc tập lệnh RVF thông qua đối sánh trực tiếp giữa RARS và Vivado RTL.
  • Triển khai thành công bộ xử lý FPU chuẩn IEEE 754 độc lập và tích hợp hoàn chỉnh vào đường truyền dữ liệu của CPU.
  • Đạt mục tiêu hoạt động ở tần số xung nhịp 50 MHz trên nền tảng FPGA Xilinx Virtex-7, đảm bảo yêu cầu định thời sau tổng hợp (Post-synthesis Timing).

2. Đóng góp học thuật và kỹ thuật

So với nghiên cứu thiết kế vi xử lý MIPS32 năm 2018 tại Khoa Kỹ thuật Máy tính (vốn sử dụng vi kiến trúc In-of-Order và chỉ hỗ trợ tính toán số nguyên), khóa luận này có những đóng góp mới:

  • Chuyển đổi thành công từ kiến trúc tập lệnh thương mại đóng sang kiến trúc tập lệnh mở hiện đại RISC-V (RV32I).
  • Nâng cấp vi kiến trúc từ xử lý tuần tự (In-of-Order) sang xử lý không tuần tự (Out-of-Order), ứng dụng cơ chế Reservation Station và Register Renaming để triệt tiêu hiện tượng stall do phụ thuộc dữ liệu WAR/WAW.
  • Tích hợp thêm đơn vị tính toán số thực FPU 32-bit theo chuẩn IEEE 754, mở rộng khả năng xử lý các tác vụ tính toán khoa học trên phần cứng.

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

1. Hạn chế

  • Tài nguyên thanh ghi vật lý: Do giới hạn phần cứng, số lượng thanh ghi vật lý dùng cho cơ chế đổi tên còn hạn chế (sử dụng tập thanh ghi mở rộng cố định), đòi hỏi việc quản lý giải phóng trạm RS phải thật tối ưu.
  • Độ phức tạp phần cứng: Mạch logic điều khiển, bảng đổi tên và hàng đợi trạm bảo lưu chiếm dụng diện tích logic lớn, làm tăng độ phức tạp trong luồng tổng hợp và tối ưu định thời.

2. Hướng nghiên cứu tiếp

  • Mở rộng hỗ trợ đầy đủ các tập lệnh mở rộng khác của RISC-V như RV64I, RV64M (phép nhân/chia số nguyên mở rộng) và chuẩn dấu chấm động độ chính xác kép RV64D.
  • Thiết kế và tích hợp thêm khối dự đoán rẽ nhánh (Branch Prediction) và bộ nhớ đệm (L1 Instruction/Data Cache) để tối ưu hóa tối đa hiệu suất của kiến trúc OoO.
  • Tối ưu hóa vi kiến trúc để nâng cao tần số hoạt động vượt mức 50 MHz trên các dòng FPGA cao cấp hơn hoặc tiến hành đóng gói kiểm thử theo luồng ASIC vật lý.

Giá trị tham khảo

Khóa luận là tài liệu kỹ thuật có giá trị tham khảo cao đối với:

  • Sinh viên và học viên chuyên ngành Kỹ thuật Máy tính, Điện tử – Viễn thông, Công nghệ Vi mạch: Nắm bắt phương pháp thiết kế vi kiến trúc vi xử lý hiện đại từ mức giải thuật, sơ đồ khối đến mã nguồn Verilog HDL cụ thể.
  • Người nghiên cứu kiến trúc máy tính: Tham khảo chi tiết giải thuật phần cứng xử lý số thực chuẩn IEEE 754 (Cộng, Trừ, Nhân, Chia) và phương pháp giải quyết xung đột dữ liệu bằng Forwarding, Register Renaming và Reservation Station.
  • Kỹ sư thiết kế FPGA/ASIC: Cung cấp quy trình kiểm thử đối chiếu chuẩn xác giữa phần mềm mô phỏng mức tập lệnh (RARS) và mô phỏng dạng sóng phần cứng (Vivado RTL).

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

1. Đồ án giải quyết các loại xung đột dữ liệu (Data Hazards) trong đường ống bằng những kỹ thuật cụ thể nào?

Khóa luận phân loại và xử lý triệt để ba dạng xung đột dữ liệu:

  • Xung đột RAW (Read-After-Write): Được giải quyết bằng kỹ thuật chuyển tiếp dữ liệu (Forwarding), cho phép gửi kết quả tính toán trực tiếp từ các tầng sau (EX/MEM hoặc MEM/WB) về tầng giải mã/thực thi mà không cần chờ ghi vào thanh ghi.
  • Xung đột WAR (Write-After-Read) và WAW (Write-After-Write): Được loại bỏ hoàn toàn bằng kỹ thuật đổi tên thanh ghi (Register Renaming), ánh xạ thanh ghi kiến trúc sang các thanh ghi vật lý tạm thời thông qua trạm bảo lưu (Reservation Station - RS).

2. Kiến trúc FPU trong đồ án xử lý những phép toán nào và tuân theo tiêu chuẩn nào?

FPU được thiết kế theo chuẩn IEEE 754 đơn (Single-Precision 32-bit), bao gồm 1 bit dấu, 8 bit số mũ và 23 bit định trị. Đơn vị này thực thi 4 phép toán cơ bản gồm FADD (cộng), FSUB (trừ), FMUL (nhân) và FDIV (chia), hỗ trợ 4 chế độ làm tròn và phát hiện 5 loại ngoại lệ: Invalid Operation, Division by Zero, Inexact, Overflow và Underflow.

3. Trong giải thuật nhân số thực (FMUL), điều kiện nào được xác định là gây ra ngoại lệ tràn trên (Overflow)?

Ngoại lệ tràn trên (Overflow) trong phép nhân số thực được xác định qua hai giai đoạn:

  • Tại bước cộng số mũ: Khi tổng hai số mũ của hai toán hạng đầu vào nằm trong khoảng từ 383 đến 508 (do giá trị tối đa không gây tràn là $255 + 127 = 382$).
  • Tại bước chuẩn hóa kết quả: Khi số mũ hiện tại đạt giá trị 254 và kết quả chuẩn hóa yêu cầu cộng thêm 1 vào phần mũ.

4. Quy trình kiểm thử và xác thực chức năng của bộ xử lý được tiến hành như thế nào?

Nhóm tác giả sử dụng phần mềm RARS (RISC-V Assembler and Runtime Simulator) để chạy chương trình hợp ngữ và trích xuất trạng thái dữ liệu thanh ghi chuẩn làm dữ liệu đối chứng. Sau đó, mã máy được nạp vào mô hình RTL thiết kế trên Xilinx Vivado để tiến hành mô phỏng dạng sóng. Kết quả dạng sóng và giá trị thanh ghi sau thực thi trên Vivado được đối chiếu khớp hoàn toàn với kết quả từ RARS.

5. Khóa luận này có điểm cải tiến nổi bật nào so với đề tài thiết kế vi xử lý MIPS32 năm 2018 tại trường?

So với đề tài MIPS32 năm 2018 (sử dụng vi kiến trúc In-of-Order, thực thi tuần tự và chỉ hỗ trợ lệnh số nguyên), khóa luận đã chuyển dịch sang kiến trúc tập lệnh mở thế hệ mới RISC-V (RV32I), nâng cấp vi kiến trúc lên Out-of-Order (OoO) giúp giải quyết nghẽn đường ống do phụ thuộc dữ liệu, đồng thời tích hợp thêm khối tính toán số dấu chấm động FPU 32-bit chuẩn IEEE 754.

Kết luận

Khóa luận tốt nghiệp của hai tác giả Phan Văn Tiến và Huỳnh Trung Tấn đã nghiên cứu, thiết kế và xác thực thành công bộ xử lý RISC-V 32-bit theo vi kiến trúc thực thi không theo thứ tự (Out-of-Order) trên nền tảng FPGA Xilinx Virtex-7. Hệ thống thực thi chính xác 37 lệnh RV32I cùng 4 lệnh số thực RVF (FADD, FSUB, FMUL, FDIV) ở tần số xung nhịp 50 MHz, xử lý hiệu quả các xung đột dữ liệu đường ống thông qua cơ chế Forwarding, Register Renaming và Reservation Station. Đây là công trình thực nghiệm phần cứng có độ hoàn thiện cao, đóng góp tài liệu kỹ thuật và mô hình vi kiến trúc giá trị cho công tác nghiên cứu, đào tạo chuyên ngành Kỹ thuật Máy tính và thiết kế vi mạch.