Chương I: Giới Thiệu Tổng Quan Chương này giới thiệu tổng quan đề tài, tình hình nghiên cứu trong và ngoài nước có liên quan mật thiết đến đề tài và đề ra nhiệm vụ chính của đề tài. Tổng Quan Về Đề Tài. Hệ thống nhúng trở nên ngày càng quan trọng trong một thập niên vừa qua khi hầu hết các thiết bị điện tử đều có chúng. Hệ thống nhúng xuất hiện ở khắp mọi nơi từ các lĩnh vực công nghiệp cho đến đời sống.
Các thiết bị điện tử sử dụng hệ thống nhúng ngày nay có xu hướng ngày càng trở nên tinh gọn hơn, ứng dụng được nhiều chương trình phức tạp hơn, khả năng thực thi cao hơn và thời gian sử dụng Pin lâu hơn. Và qua đó, những ràng buộc cho việc thiết kế hệ thống nhúng ngày nay là: giảm giá thành, giảm kích thước và đặc biệt là giảm công suất tiêu thụ là những thách thức đối với những nhà thiết kế hệ thống nhúng. Thiết kế hệ thống nhúng để đạt được sự tối ưu trong những ràng buộc đã nêu trên cần phải có sự phối hợp nhịp nhàng của cả phần mềm lẫn phần cứng. Đã có rất nhiều phương pháp được ứng dụng để làm giảm công suất tiêu thụ cho hệ thống nhúng cả ở trên phần cứng lẫn phần mềm.
Trên phần mềm, người lập trình có thể tối ưu trình biên dịch để có thể đạt được sự tinh gọn và hiệu quả của mã lệnh thực thi và điều này sẽ làm giảm công suất tiêu thụ của hệ thống. Trên phần cứng, các kỹ thuật sau thường được sử dụng chính: clock-gating [1] tắt xung clock hệ thống cho những vùng không còn hoạt động nữa, sử dụng nhiều mức điện áp ngưỡng cho những khối khác nhau, power-gating tắt năng lượng cung cấp cho các khối không dùng tới hoặc đang ở trạng thái nhàn rỗi. Bên cạnh những phương pháp đã nêu ở trên, một trong những phương pháp rất hiệu quả trong việc giảm năng lượng hệ thống nhúng là Nén Mã Lệnh. Trong hệ thống nhúng, hệ thống bộ nhớ thường tiêu thụ một phần lớn diện tích của hệ thống.
Và hiện nay, kích thước chương trình thực thi có xu hướng phát triển một cách mạnh mẽ khi mà những ứng dụng đang ngày càng trở nên phức tạp hơn [2]. Nén mã lệnh Trang 1 HVTH: Trần Quốc Bảo Toàn GVHD: TS. Lê Chí Thông được đề xuất như một giải pháp để giảm kích cỡ chương trình, giảm việc sử dụng bộ nhớ và đồng thời được xem xét như một phương pháp giảm công suất hiệu quả cho hệ thống nhúng khi mà năng lượng trong giao tiếp giữa bộ nhớ và Vi Xử Lý (VXL) chiếm phần lớn trong toàn bộ năng lượng tiêu thụ của hệ thống nhúng [3]. Trước sự hiệu quả của phương pháp nén mã lệnh trong việc làm giảm công suất tiêu hao của hệ thống, đề tài “ Ứng dụng nén mã lệnh làm giảm công suất tiêu hao trong hệ thống nhúng sử dụng Vi Điều Khiển ” được chọn làm đề tài nghiên cứu luận văn thạc sĩ.
Tình Hình Nghiên Cứu Trong Và Ngoài Nước. Đã có rất nhiều công trình khoa học, hoạt động nghiên cứu liên quan đến kỹ thuật nén mã lệnh ứng dụng trong hệ thống nhúng cả trong và ngoài nước. Và hiện đã có hơn 2000 bài báo khoa học đã được thực hiện và công bố trên tạp chí IEEE (Institute of Electrical and Electronics Engineers) với các hướng nghiên cứu cả về phần mềm lẫn phần cứng (chi tiết thông tin và kết quả tìm kiếm được đính kèm trong đường dẫn [4] ) Wolfe và Chanin là những người đầu tiên ứng dụng nén mã lệnh vào hệ thống nhúng [5] VXL RISC (Reduced Instructions Set Computer) ứng dụng nén mã lệnh của họ sử dụng mã hóa Huffman để nén chương trình MIPS (Microprocessor without Interlocked Pipeline Stages). Một bảng truy suất đường dây được sử dụng để ánh xạ địa chỉ khối nén và được thừa kế hầu hết ở những nghiên cứu sau.
Dựa trên cùng nguyên lý IBM đã xây dựng nên một khối giải nén được gọi là Code- Pack, cho chuỗi PowerPC 400 [6]. Mã lệnh thì được đặt ở bộ nhớ ngoài và CodePack thì được đặt giữa bộ nhớ và bộ đệm. Liao [7] và Lefurgy [8] đã thay thế những nhóm lệnh được sử dụng thường xuyên như những chỉ thị của một bộ từ điển, cái mà làm mã lệnh dễ dàng được giải mã. Lekatsas va Wolf đã đề xuất SAMC [9], một khung thống kê dựa trên mã hóa số học trong việc kết hợp với mô hình Markov được tính toán trước.
Netto và những người khác đã đề xuất một ứng Trang 2 HVTH: Trần Quốc Bảo Toàn GVHD: TS. Lê Chí Thông dụng nén mã lệnh dựa trên bộ từ điển sử dụng những chỉ số có độ dài thay đổi được [10]. Lệnh trong bảng giải mã được chọn dựa trên sự định hình của cả tĩnh và động để giảm kích thước mã và tăng hiệu suất. Benini và những người khác sử dụng phương pháp nén mã dựa trên bộ từ điển được hình thành bằng cách sử dụng cả Entropy tĩnh và động [11], [12].
Các sơ đồ của họ thì có tính cạnh tranh với CodePack về quá trình nén chiếm dụng và đạt được lưu lượng kênh truyền cao hơn giảm thiểu năng lượng tiêu hao. Tất cả những phương pháp trên tập trung ở kiến trúc mã lệnh RISC và CISC (Complex instruction set computer). Một phương pháp khác để giảm kích cỡ mã lệnh cho những VXL RISC là để xác định một tập lệnh dày đặc sử dụng số lượng được giới hạn của những lệnh ngắn và đã được thực thi trong một vài nhân VXL thương mại như ARM Thumb [13], MIPS16 [14] , Tensilica Xtensa [15] và AR Compact [16]. Bộ lệnh dày đặc thường gây ra sự bất lợi về hiệu suất bởi vì thiếu lệnh và yêu cầu thay đổi đến nhân VXL và công cụ phát triển phần mềm.
Phương pháp này thì không thích hợp cho hệ thống nhúng với những lõi VXL không thay đổi được. Tại Việt Nam hiện tại cũng đã có công trình nghiên cứu về nén mã lệnh ứng dụng trong thiết kế hệ thống nhúng của tác giả Đỗ Ngọc Quỳnh [17]. Đề tài nghiên cứu và áp dụng phương pháp nén mã lệnh vào trong hệ thống nhúng sử dụng lõi VXL ARM để làm giảm công suất của toàn bộ hệ thống. Khối giải nén sẽ nằm ngoài VXL và được đặt giữa lõi VXL và bộ nhớ ngoài.
Hướng nghiên cứu của các công trình đã nêu trên tập trung chủ yếu vào việc thiết kế bộ giải nén nằm ngoài VXL ứng dụng trong trường hợp hệ thống nhúng có VXL không thay đổi được kiến trúc, điều này dẫn đến việc công suất tiêu hao của khối giải nén sẽ cao hơn vì điện dung tải của các chân I/O của khối giải nén ngoài sẽ lớn rất nhiều so với điện dung tải của các đường dây nằm bên trong VXL. Thông qua tình hình nghiên cứu trên, đề tài này sẽ tập trung đi sâu nghiên cứu về các giải thuật tối ưu ứng dụng cho phương pháp nén mã lệnh và sẽ thiết kế một bộ Trang 3 HVTH: Trần Quốc Bảo Toàn GVHD: TS. Lê Chí Thông giải nén nằm bên trong Vi Điều Khiển (VĐK), can thiệt vào kiến trúc tầng nhận lệnh của VĐK nhằm làm giảm công suất của toàn bộ hệ thống. Mục Tiêu Đề Tài.
Hiện nay ứng dụng trong hệ thống nhúng sử dụng VĐK ngày càng phát triển. Với một số ràng buộc trong thiết kế VĐK, một số VĐK sẽ không có bộ nhớ chương trình nội hoặc có bộ nhớ chương trình rất nhỏ. Khi chương trình ngày càng có xu hướng tăng lên về kích cỡ và sự phức tạp, các hệ thống nhúng sử dụng VĐK có xu hướng sử dụng bộ nhớ ngoài để đáp ứng được việc lưu trữ những chương trình lớn và phức tạp. Và điều này làm tiêu tốn nhiều năng lượng hơn cho hệ thống qua việc thực thi chương trình và qua sự giao tiếp của VĐK với bộ nhớ ngoài.
Nén mã lệnh sẽ là một giải pháp để giải quyết những thách thức trên đối với hệ thống nhúng sử dụng VĐK. Qua đó, mục tiêu của đề tài này là: Nghiên cứu kỹ thuật nén mã lệnh và cách thức làm giảm công suất của kỹ thuật nén mã lệnh đồng thời áp dụng kỹ thuật nén mã lệnh vào hệ thống nhúng sử dụng VĐK để làm giảm công suất của hệ thống. Tóm Tắt Nội Dung Các Chương. Luận văn này được tổ chức như sau : Chương II: Giới thiệu tổng quan hệ thống nhúng và các phương pháp giảm công suất tiêu hao trong hệ thống.
Chương III: Giới thiệu về phương pháp nén mã lệnh và đặc trưng giảm công suất tiêu hao của nén mã lệnh. Chương IV: Giới thiệu về phương pháp thiết kế của đề tài. Chương V: Giới thiệu về quá trình Nén Mã Lệnh. Trang 4 HVTH: Trần Quốc Bảo Toàn GVHD: TS.
Lê Chí Thông Chương VI: Quá trình giải Nén Mã Lệnh Chương VII: Kết quả và phân tích. Chương VIII: Kết luận và hướng phát triển. Chương IX: Tài liệu tham khảo. Trang 5 HVTH: Trần Quốc Bảo Toàn GVHD: TS.
Lê Chí Thông Chương II: Giới Thiệu Về Hệ Thống Nhúng Và Các Phương Pháp Giảm Công Suất Trong Hệ Thống Nhúng I. Giới thiệu về hệ thống nhúng. Sau sự phát triển của máy tính lớn và mini (mainframe và mini computer) giai đoạn 1960-1980, PC-Internet giai dọan 1980-2000, thì hiện nay chúng ta đang ở thời đại hậu PC. Giai đoạn hậu PC-Internet này dược dự đoán từ năm 2000 đến 2020 là giai đoạn của môi trường thông minh mà hệ thống nhúng là cốt lõi và đang làm nên làn sóng đổi mới thứ 3 trong sự phát triển của Công nghệ thông tin.
Một thực tế khách quan là thị trường của các hệ thống nhúng lớn gấp khoảng 100 lần thị trường của PC và mạng LAN, trong khi đó chúng ta mới nhìn thấy bề nổi của công nghệ thông tin là PC và Internet còn phần chìm của công nghệ thông tin chiếm 99% số processor trên toàn cầu này nằm trong các hệ nhúng thì còn ít được biết đến. Sức đẩy của công nghệ đưa công nghệ vi điện tử, các công nghệ vi cơ điện, công nghệ sinh học hội tụ tạo nên các chip của công nghệ nano, là nền tảng cho những thay đổi cơ bản trong công nghệ thông tin và truyền thông. Sức kéo của thị trường đòi hỏi các thiết bị phải có nhiều chức năng thân thiện với người dùng, có mức độ thông minh ngày càng cải thiện đưa đến vai trò và tầm quan trọng của các hệ thống nhúng ngày càng cao trong nền kinh tế quốc dân [26]. Khái niệm về hệ thống nhúng.
Theo định nghĩa của IEEE thì hệ thống nhúng là một hệ tính toán nằm trong sản phẩm, tạo thành một phần của hệ thống lớn hơn và thực hiện một số chức năng của hệ thống .