Tổng quan nghiên cứu

Trong kỷ nguyên hậu máy tính cá nhân, hệ thống nhúng chiếm hơn 99% tổng số bộ vi xử lý trên toàn cầu và định hình quy mô thị trường lớn gấp khoảng 100 lần so với thị trường máy tính để bàn cùng mạng cục bộ. Khi các ứng dụng nhúng ngày càng phức tạp, kích thước chương trình thực thi phình to, dẫn đến sự gia tăng đột biến về số lần truy xuất bộ nhớ ngoài. Trong cấu trúc phần cứng của hệ thống nhúng sử dụng vi điều khiển, năng lượng tiêu hao cho hoạt động giao tiếp trên đường bus giữa vi xử lý và bộ nhớ ngoài chiếm từ 30% đến hơn 50% tổng công suất tiêu thụ của toàn hệ thống. Ràng buộc khắt khe về thời lượng pin, kích thước vật lý và giá thành đòi hỏi những đột phá công nghệ mới trong thiết kế vi mạch công suất thấp.

Nhằm giải quyết bài toán cốt lõi này, luận văn thạc sĩ kỹ thuật điện tử mang mã số 60 52 70, được thực hiện tại Trường Đại học Bách Khoa – Đại học Quốc gia Thành phố Hồ Chí Minh trong giai đoạn từ tháng 07 năm 2012 đến tháng 01 năm 2013, tập trung nghiên cứu giải pháp nén mã lệnh theo từ điển để tối ưu hóa năng lượng tiêu thụ. Mục tiêu cụ thể của đề tài là xây dựng hoàn chỉnh giải thuật nén mã chương trình độc lập trên phần mềm và thiết kế khối giải nén phần cứng thời gian thực tích hợp trực tiếp vào tầng nạp lệnh của vi điều khiển kiến trúc RISC 16-bit. Ý nghĩa thực tiễn nổi bật của công trình là giảm tải băng thông giao tiếp bộ nhớ, hạ thấp tần suất chuyển mạch trên đường bus và giúp toàn bộ hệ thống nhúng cắt giảm tới 44.33% tổng công suất tiêu hao mà vẫn duy trì tính toàn vẹn 100% của chương trình gốc.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng trên nền tảng lý thuyết tối ưu hóa công suất mạch tích hợp CMOS và lý thuyết nén dữ liệu không tổn hao dựa trên từ điển. Trong công nghệ bán dẫn CMOS, tổng công suất tiêu hao bao gồm công suất chuyển mạch động, công suất ngắn mạch và công suất rò tĩnh. Trong đó, công suất chuyển mạch động chiếm tỷ trọng chủ yếu, được xác định bởi biểu thức toán học phụ thuộc vào hệ số hoạt động chuyển mạch, điện dung ký sinh tải tại ngõ ra, bình phương điện áp nguồn và tần số xung nhịp làm việc. Để giảm thiểu công suất chuyển mạch, phương pháp nén mã lệnh can thiệp trực tiếp vào việc làm giảm hệ số chuyển mạch và giảm dung lượng bit dữ liệu truyền tải trên bus liên kết ngoài.

Mô hình nghiên cứu áp dụng kiến trúc phần cứng vi điều khiển RISC 16-bit hoạt động theo mô hình Harvard với đường truyền dữ liệu và bộ nhớ chương trình tách biệt. Khung lý thuyết của đề tài xoay quanh 5 khái niệm cốt lõi: cấu trúc nén mã lệnh dựa trên từ điển, tầng nạp lệnh trong đường ống xử lý 5 tầng, bộ nhớ khởi tạo 32-bit, từ mã nén 8-bit và cơ chế giải nén thời gian thực không độ trễ phụ. Bằng cách thay thế các lệnh thực thi gốc có kích thước 24-bit thành các chỉ số từ mã 8-bit ngắn gọn, hệ thống tối ưu hóa không gian lưu trữ và giảm thiểu bức xạ năng lượng trên các đường bus ngoại vi.

Phương pháp nghiên cứu

Nguồn dữ liệu thực nghiệm của đề tài được trích xuất từ tập lệnh chuẩn của dòng vi điều khiển 16-bit dsPIC33FJ06GS101 thuộc hãng Microchip. Cỡ mẫu nghiên cứu bao gồm 62 lệnh thông dụng nhất được tuyển chọn kỹ lưỡng trong tổng số hơn 200 lệnh của kiến trúc tập lệnh vi điều khiển. Phương pháp chọn mẫu dựa trên kỹ thuật phân tích thống kê tần suất xuất hiện thực tế của các khối lệnh trong các chương trình điều khiển nhúng điển hình, ưu tiên các lệnh số học, logic và điều khiển rẽ nhánh có mật độ xuất hiện lặp lại cao.

Phương pháp phân tích và thiết kế được tiến hành qua 2 giai đoạn chính trong khung thời gian 5 tháng từ tháng 07 năm 2012 đến tháng 11 năm 2012. Ở mức phần mềm, tác giả sử dụng ngôn ngữ C trên môi trường Visual Studio 2010 và trình biên dịch MPLAB để phân tích tập tin mã máy dạng thập lục phân, trích xuất bảng từ điển và mã hóa nhị phân sang định dạng tệp tin khởi tạo bộ nhớ 32-bit. Ở mức phần cứng, phương pháp mô tả phần cứng bằng ngôn ngữ Verilog HDL được triển khai trên phần mềm Altera Quartus II Web Edition và tổng hợp ước lượng công suất chuyên sâu trên phần mềm công nghiệp Synopsys Design Compiler. Lý do lựa chọn hệ công cụ này là khả năng mô phỏng định thời chính xác ở mức cổng logic, phản ánh trung thực mức tiêu thụ năng lượng của từng tế bào chuẩn bán dẫn và kiểm tra chức năng trực tiếp trên kit phần cứng FPGA.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Nghiên cứu đã ghi nhận 4 phát hiện thực nghiệm mang tính đột phá về hiệu năng tối ưu hóa phần cứng và năng lượng:

Thứ nhất, việc áp dụng giải thuật nén mã lệnh dựa trên bộ từ điển đã giúp cô đọng 4 chỉ thị nén 8-bit vào trong 1 từ nhớ 32-bit duy nhất. Kết quả này giúp giảm số lần vi điều khiển phải truy xuất vào bộ nhớ chương trình ngoài tới 75%, tức tần suất đọc bộ nhớ chỉ còn 25% so với kiến trúc truyền thống.

Thứ hai, toàn bộ hệ thống nhúng tích hợp khối giải nén nội khối đã ghi nhận mức giảm công suất tiêu hao tổng thể lên tới 44.33% khi kiểm thử thực thi ứng dụng. Đây là tỷ lệ tiết kiệm năng lượng vượt trội trong phân khúc vi điều khiển 16-bit.

Thứ ba, khối giải nén phần cứng được thiết kế tinh gọn hoàn toàn bằng ngôn ngữ Verilog, hoạt động ăn khớp với chu kỳ máy gồm 3 chu kỳ xung clock nội mà không làm phát sinh thêm chu kỳ chờ của vi xử lý.

Thứ tư, quá trình kiểm tra mô phỏng dạng sóng trên phần mềm Quartus II cho thấy độ chính xác giải mã đạt tuyệt đối 100% trên toàn bộ 62 lệnh thử nghiệm, bảo toàn trọn vẹn kết quả tính toán tại các thanh ghi làm việc từ W0 đến W15 và các cờ trạng thái.

Thảo luận kết quả

Nguyên nhân căn bản giúp hệ thống đạt mức cắt giảm công suất ấn tượng 44.33% bắt nguồn từ việc triệt tiêu phần lớn năng lượng sạc và xả của điện dung ký sinh trên các chân ngõ vào/ra cùng các đường bus ngoài. Khi kích thước từ lệnh truyền tải giảm từ 24-bit hoặc 32-bit xuống còn các gói 8-bit, số lượng chuyển mạch mức logic 0 và 1 trên bus giảm mạnh, kéo theo sự sụt giảm tức thì của công suất chuyển mạch động.

Khi so sánh với các công trình nghiên cứu tiền nhiệm, điển hình như giải pháp đặt khối giải nén bên ngoài vi xử lý ARM của một số tác giả trong nước và quốc tế, thiết kế tích hợp bộ giải nén ngay bên trong vi điều khiển của luận văn mang lại ưu thế vượt trội. Khối giải nén bên ngoài thường chịu tổn hao công suất cao do điện dung tải của các chân tiếp xúc cổng vào/ra lớn hơn gấp nhiều lần so với các đường liên kết vi mạch nội khối.

Dữ liệu thực nghiệm của nghiên cứu có thể được trực quan hóa tối ưu thông qua một bảng tổng hợp đối sánh công suất giữa hai cấu hình nén và không nén, kết hợp với biểu đồ cột phân rã các thành phần tiêu hao năng lượng gồm công suất bộ nhớ ngoài, công suất bus giao tiếp và công suất lõi vi điều khiển. Đồ thị phân tích định thời và giản đồ 3 pha xung clock chứng minh rõ ràng rằng việc chèn thêm khối giải nén không gây ra hiện tượng thắt cổ chai về mặt băng thông xử lý thời gian thực.

Đề xuất và khuyến nghị

Dựa trên những phát hiện khoa học và kết quả kiểm chứng thực nghiệm, luận văn đưa ra 4 nhóm giải pháp và khuyến nghị hành động cụ thể nhằm thúc đẩy ứng dụng công nghệ nén mã lệnh trong phát triển hệ thống nhúng:

Thứ nhất, nâng cấp giải thuật nén từ điển tĩnh sang từ điển động đa cấp nhằm mở rộng khả năng hỗ trợ từ 62 lệnh lên toàn bộ hơn 200 lệnh của vi điều khiển, hướng tới mục tiêu gia tăng tỷ lệ nén mã chương trình thêm 15% đến 20%. Nhiệm vụ này do các nhóm nghiên cứu giải thuật phần mềm và kỹ sư kiến trúc tập lệnh thực hiện trong lộ trình 6 tháng.

Thứ hai, tối ưu hóa cấu trúc vi mạch của khối giải nén nội khối bằng cách áp dụng kỹ thuật gating xung nhịp để ngắt các thanh ghi từ điển khi không có yêu cầu nạp lệnh, đặt chỉ tiêu giảm thêm 10% công suất rò tĩnh trên chip. Chủ thể triển khai là các kỹ sư thiết kế phần cứng vi mạch số với mốc thời gian hoàn thành trong vòng 3 tháng.

Thứ ba, tích hợp và kiểm thử giải pháp nén mã lệnh trên các dòng vi điều khiển 32-bit kiến trúc ARM Cortex-M hoặc RISC-V mã nguồn mở, nhắm đến đích cắt giảm từ 35% đến 50% điện năng tiêu thụ cho các thiết bị Internet vạn vật chạy pin. Nhóm kỹ sư phát triển sản phẩm nhúng công nghiệp cần chủ trì triển khai trong khung thời gian 9 đến 12 tháng.

Thứ tư, chuẩn hóa quy trình chuyển đổi tự động từ mã nguồn sang tập tin khởi tạo bộ nhớ nén 32-bit bằng cách phát triển công cụ phần mềm bổ trợ tích hợp thẳng vào các môi trường phát triển thương mại như MPLAB X IDE hay Keil MDK. Mục tiêu là rút ngắn 80% thời gian biên dịch và đóng gói nén mã lệnh cho các lập trình viên hệ thống trong thời hạn 4 tháng.

Đối tượng nên tham khảo luận văn

Tài liệu luận văn thạc sĩ này là nguồn tham khảo học thuật và kỹ thuật giá trị cao cho 4 nhóm đối tượng chuyên môn:

Thứ nhất, các kỹ sư thiết kế vi mạch và kỹ sư phần cứng FPGA/ASIC. Lợi ích thu nhận được là quy trình chi tiết thiết kế khối giải nén phần cứng bằng ngôn ngữ Verilog HDL, phương pháp can thiệp vào tầng nạp lệnh 5 tầng và kỹ thuật tối ưu hóa định thời trên công cụ Altera Quartus II cùng Synopsys Design Compiler với mục tiêu cắt giảm hơn 40% công suất chip.

Thứ hai, các kỹ sư lập trình hệ thống nhúng và thiết bị IoT. Đối tượng này có thể ứng dụng giải thuật nén mã lệnh dựa trên từ điển để giảm kích thước bộ nhớ chương trình trên các vi điều khiển có dung lượng bộ nhớ nội hạn chế dưới 64KB, từ đó kéo dài thời lượng hoạt động của pin thiết bị thêm khoảng 1.5 đến 2 lần.

Thứ ba, các nhà nghiên cứu và học viên cao học chuyên ngành Kỹ thuật Điện tử, Kỹ thuật Máy tính và Tự động hóa. Luận văn cung cấp khung phương pháp luận chuẩn mực về tối ưu hóa năng lượng kết hợp phần cứng và phần mềm, cùng dữ liệu phân tích 62 lệnh vi điều khiển cụ thể để kế thừa và phát triển các đề tài luận văn thạc sĩ hoặc bài báo khoa học.

Thứ tư, các giảng viên đại học phụ trách giảng dạy các học phần Kiến trúc máy tính, Thiết kế hệ thống nhúng và Vi mạch số. Luận văn là tài liệu tham khảo giàu tính thực tế, cung cấp các mô hình mô phỏng đường dữ liệu Harvard, giản đồ xung 3 pha clock và mã nguồn Verilog hoàn chỉnh phục vụ công tác giảng dạy chuyên sâu.

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

Nguyên lý cơ bản giúp nén mã lệnh giảm được 44.33% công suất tiêu hao là gì? Giải pháp nén mã lệnh dựa vào bộ từ điển để thay thế các lệnh gốc dài 24-bit bằng từ mã 8-bit ngắn gọn. Khi 4 lệnh nén được ghép chung vào một từ nhớ 32-bit, số lần vi điều khiển phải truy cập bộ nhớ ngoài giảm đi 75%, qua đó cắt giảm mạnh năng lượng chuyển mạch trên các đường bus giao tiếp ngoài.

Việc tích hợp khối giải nén vào vi điều khiển có làm giảm tốc độ xử lý không? Hoàn toàn không làm suy giảm tốc độ. Khối giải nén được thiết kế phần cứng chuyên biệt bằng Verilog để giải mã thời gian thực ngay trong chu kỳ máy chuẩn gồm 3 xung nhịp clock của vi điều khiển. Việc giải mã diễn ra song song và tức thời, đảm bảo không phát sinh bất kỳ chu kỳ trễ bổ sung nào.

Tại sao nghiên cứu lại chọn tập lệnh vi điều khiển dsPIC33FJ06GS101 làm mẫu thử nghiệm? Vi điều khiển dsPIC33FJ06GS101 sở hữu kiến trúc RISC 16-bit hiện đại theo mô hình Harvard với tập lệnh phong phú. Tác giả chọn lọc cỡ mẫu 62 lệnh tiêu biểu có tần suất lặp lại cao nhất trong hơn 200 lệnh để tối ưu hóa kích thước bảng từ điển, mang lại hiệu quả nén cao và tiết kiệm tài nguyên logic.

Khối giải nén đặt bên trong vi điều khiển có ưu điểm gì so với đặt bên ngoài? Đặt khối giải nén nội bộ giúp giảm thiểu đáng kể điện dung tải ký sinh tại các chân tiếp xúc ngõ vào và ngõ ra. Các đường dây liên kết vi mạch bên trong chip có điện dung cực nhỏ, giúp tiết kiệm thêm khoảng 15% đến 20% công suất tiêu hao so với kiến trúc đặt khối giải nén bên ngoài chip.

Quy trình nén mã lệnh từ mã nguồn phần mềm diễn ra như thế nào? Quy trình gồm 4 bước: Lập trình và biên dịch ứng dụng trên MPLAB để xuất tệp tin hex, dùng phần mềm C phân tích tần suất xuất hiện của các lệnh, tạo bảng từ điển mã hóa các lệnh phổ biến thành mã 8-bit, và cuối cùng đóng gói toàn bộ chương trình thành tệp tin MIF 32-bit nạp vào ROM.

Kết luận

Luận văn thạc sĩ kỹ thuật điện tử của tác giả Trần Quốc Bảo Toàn đã giải quyết trọn vẹn bài toán tối ưu hóa năng lượng cho hệ thống nhúng thông qua kỹ thuật nén mã lệnh tiên tiến:

  • Xây dựng thành công giải thuật nén mã lệnh độc lập dựa trên bộ từ điển, mã hóa các lệnh 24-bit thành từ mã 8-bit nhỏ gọn.
  • Thiết kế hoàn chỉnh khối giải nén phần cứng thời gian thực bằng ngôn ngữ Verilog HDL tích hợp trực tiếp vào tầng nạp lệnh của vi điều khiển kiến trúc Harvard.
  • Giảm thiểu 75% số lần truy xuất bộ nhớ ngoài, giúp toàn bộ hệ thống nhúng cắt giảm tới 44.33% tổng công suất tiêu hao.
  • Kiểm chứng thực nghiệm thành công 62 lệnh vi điều khiển trên phần mềm Quartus II và Synopsys Design Compiler, đạt độ tin cậy tuyệt đối 100%.
  • Mở ra hướng tiếp cận mới trong thiết kế vi mạch số công suất thấp ứng dụng cho các thiết bị IoT và hệ thống điều khiển tự động.

Về lộ trình phát triển tiếp theo, các nhóm kỹ thuật nên tiến hành nâng cấp từ điển nén đa cấp trong Quý 1, áp dụng kỹ thuật gating xung nhịp trong Quý 2 và thử nghiệm trên nền tảng vi xử lý 32-bit RISC-V trong Quý 3 và Quý 4. Hãy liên hệ và tham khảo toàn văn công trình nghiên cứu để ứng dụng ngay giải pháp nén mã lệnh vào các dự án thiết kế vi mạch và phát triển hệ thống nhúng của bạn.