Đề tài Phát triển, tối ưu thuật toán adaptive page layout trên thiết bị nhúng

Ngày nay TBDĐ đang ngày một trở nên phổ biến bởi những tính năng ưu việt của chúng, tuy nhiên không giống như môi trường PC với màn hình hiển thị lớn và cấu hình mạnh mẽ, các TBDĐ có những hạn chế như màn hình hiển thị nhỏ và có rất nhiều kích thước với mục đích sử dụng khác nhau. Việc xây dựng một giao diện thông minh dành cho các TBDĐ luôn rất quan trọng, một ứng dụng với giao diện thông minh có thể sử dụng trên nhiều loại thiết bị khác nhau như điện thoại di dộng, TV hay thiết bị định hướng GPS của ôtô. Thuật toán Adaptive Page Layout [1] là một giải pháp để đưa ra cách sắp xếp màn hình hiệu quả cho các TBDĐ. Trong khóa luận này tôi sẽ hướng đến việc phát triển, tối ưu thuật toán APL về tốc độ xử lý, bộ nhớ sử dụng cũng như các yêu cầu về giao diện hiển thị khi chạy trên thiết bị nhúng sử dụng kiến trúc vi xử lý ARM. Các phương pháp tối ưu sẽ được kiểm chứng qua kết quả chương trình cài đặt thuật toán APL trên ARM. Đồng thời tôi cũng xây dựng ứng dụng minh họa Health Examination Visualization sử dụng APL như một mô đun để biểu diễn các dữ liệu kiểm tra sức khỏe một cách trực quan (theo yêu cầu bên phía Toshiba) trên ARM, qua đó có thể chứng minh khả năng ứng dụng vào thực tiễn thiết bị nhúng của thuật toán APL áp dụng các cải tiến của tôi. Trong khóa luận của tôi có sử dụng các kết quả tối ưu thuật toán APL trên PC đã được trình bày trong khóa luận của bạn Cao Bắc Tiến[2]. Dựa trên các đặc điểm của kiến trúc ARM tôi thực hiện tối ưu tốc độ tính toán khi cài đặt thuật toán APL trên ARM và các vấn đề về giao diện hiển thị hiển thị của chương trình.

pdf44 trang | Chia sẻ: nhungnt | Lượt xem: 1987 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Phát triển, tối ưu thuật toán adaptive page layout trên thiết bị nhúng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1  ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Tài Tuệ PHÁT TRIỂN, TỐI ƯU THUẬT TOÁN ADAPTIVE PAGE LAYOUT TRÊN THIẾT BỊ NHÚNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 2  ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Tài Tuệ PHÁT TRIỂN, TỐI ƯU THUẬT TOÁN ADAPTIVE PAGE LAYOUT TRÊN THIẾT BỊ NHÚNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: PGS.TS Nguyễn Việt Hà Cán bộ đồng hướng dẫn: Th.S Vũ Quang Dũng HÀ NỘI - 2010 1  Lời cảm ơn Tôi xin chân thành cảm ơn các thầy cô giáo trường Đại học Công Nghệ trong suốt bốn năm học vừa qua đã trang bị cho tôi nền tảng kiến thức quý báu, rất cần thiết cho việc hoàn thành khóa luận và làm việc sau này. Các thầy cô luôn là những tấm gương mẫu mực về tác phong nghiên cứu khoa học để tôi noi theo. Tôi muốn gửi lời cảm ơn sâu sắc tới PGS.TS Nguyễn Việt Hà, phó hiệu trưởng trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội, cùng Th.S Vũ Quang Dũng, giảng viên bộ môn Công nghệ phần mềm, trường Đại học Công Nghệ. Các thầy đã hết lòng chỉ bảo giúp đỡ tôi trong thời gian học tập tại trường cũng như trong suốt quá trình nghiên cứu hoàn thành khóa luận này. Xin gửi lời cảm ơn tới các thành viên phòng nghiên cứu Toshiba-Coltech đã nhiệt tình cộng tác và chia sẻ cùng tôi trong thời gian làm việc tại đây. Tôi xin gửi lời cảm ơn đến gia đình và bạn bè đã luôn động viên, giúp đỡ tôi trong lúc khó khăn và giúp đỡ tôi trong suốt quá trình học tập và thực hiện khóa luận. Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nỗ lực của bản thân,nhưng luận văn chắc chắn không tránh khỏi những thiếu sót, kính mong quý thầy cô tận tình chỉ bảo. Một lần nữa xin gửi đến tất cả mọi người lời cảm ơn chân thành nhất. Hà Nội, 15 tháng 5 năm 2010 Sinh viên, Nguyễn Tài Tuệ i Tổng quan Ngày nay TBDĐ đang ngày một trở nên phổ biến bởi những tính năng ưu việt của chúng, tuy nhiên không giống như môi trường PC với màn hình hiển thị lớn và cấu hình mạnh mẽ, các TBDĐ có những hạn chế như màn hình hiển thị nhỏ và có rất nhiều kích thước với mục đích sử dụng khác nhau. Việc xây dựng một giao diện thông minh dành cho các TBDĐ luôn rất quan trọng, một ứng dụng với giao diện thông minh có thể sử dụng trên nhiều loại thiết bị khác nhau như điện thoại di dộng, TV hay thiết bị định hướng GPS của ôtô. Thuật toán Adaptive Page Layout [1] là một giải pháp để đưa ra cách sắp xếp màn hình hiệu quả cho các TBDĐ. Trong khóa luận này tôi sẽ hướng đến việc phát triển, tối ưu thuật toán APL về tốc độ xử lý, bộ nhớ sử dụng cũng như các yêu cầu về giao diện hiển thị khi chạy trên thiết bị nhúng sử dụng kiến trúc vi xử lý ARM. Các phương pháp tối ưu sẽ được kiểm chứng qua kết quả chương trình cài đặt thuật toán APL trên ARM. Đồng thời tôi cũng xây dựng ứng dụng minh họa Health Examination Visualization sử dụng APL như một mô đun để biểu diễn các dữ liệu kiểm tra sức khỏe một cách trực quan (theo yêu cầu bên phía Toshiba) trên ARM, qua đó có thể chứng minh khả năng ứng dụng vào thực tiễn thiết bị nhúng của thuật toán APL áp dụng các cải tiến của tôi. Trong khóa luận của tôi có sử dụng các kết quả tối ưu thuật toán APL trên PC đã được trình bày trong khóa luận của bạn Cao Bắc Tiến[2]. Dựa trên các đặc điểm của kiến trúc ARM tôi thực hiện tối ưu tốc độ tính toán khi cài đặt thuật toán APL trên ARM và các vấn đề về giao diện hiển thị hiển thị của chương trình. ii Abstract Mobile devices are becoming more and more popular because of their mobilty and wire- less technology. However mobile devices are not like a PC which has large screen and powerful capability, they have small screens with many sizes based on various targets. It is very impor- tant to construct an intelligent graphical user interfaces (GUIs) which can be constructed for one application and should be usable on different interactive devices, e.g cell phone, TV or GPS devices on car. Adaptive Page Layout [1] algorithm is a solution for constructing an ef- fective layout on mobile devices. In this thesis, we focus on optimizing the APL algorithm in computation speed, memory consumption and satisfying some requirements of GUIs on em- bedded system using ARM. The optimization methods will be proved by results of the program using APL on ARM. I also build Health Data Visualization Application using APL as a module to visualize health data (based on requirement of Toshiba) on ARM, the application denotes the ablity of my optimization methods on APL in embedded system. In my thesis, I use some results of optmizing APL on PC which are represented in Cao Bắc Tiến graduation thesis. Based on properites of ARM system, I improve APL computation speed and GUI of applications on ARM. iii Bảng từ viết tắt STT Từ hoặc cụm từ Từ viết tắt Chú thích 1 Adaptive Page Layout APL Dàn trang mang tính thích ứng 2 Personal Computer PC Máy tính cá nhân 3 Health Examination Data Visu- alization HEDV Hệ thống trực quan hóa dữ liệu kiểm tra sức khỏe 4 Thiết bị di động TBDĐ 5 Zoomable User Interface ZUI Giao diện người dùng hỗ trợ "zoom" 6 Floating Point Accelerator FPA Thành phần tăng tốc xử lý dấu phảy động 7 Vector Floating Points VFP Thành phần xử lý dấu phảy động 8 Graphical User Interface GUI Giao diện người dùng Bảng 1: Bảng từ viết tắt iv Mục lục 1 Mở đầu 2 2 Cơ sở lý thuyết 4 2.1 Thuật toán Squarified Treemap . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.1 Treemap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.2 Squarified Treemap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Kiến trúc ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 OpenGL|ES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Bài toán đặt ra 10 3.1 Phát triển phần mềm cho ARM . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.1 Các đặc điểm của kiến trúc xử lý ARM . . . . . . . . . . . . . . . . . 10 3.1.2 Xây dựng môi trường phát triển phần mềm cho ARM . . . . . . . . . . 11 3.2 Các yêu cầu về giao diện người dùng . . . . . . . . . . . . . . . . . . . . . . . 11 4 Giải pháp 12 4.1 Giải pháp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2 Xây dựng môi trường phát triển phần mềm cho ARM . . . . . . . . . . . . . . 12 v MỤC LỤC 4.3 Sử dụng dấu phẩy tĩnh thay thế cho dấu phẩy động . . . . . . . . . . . . . . . . 13 4.4 Tối ưu mã chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5 Demo, thực nghiệm 19 5.1 Thử nghiệm trên ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1.1 Cài đặt thuật toán APL . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2 Health Data Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2.1 Các bước phát triển hệ thống . . . . . . . . . . . . . . . . . . . . . . . 22 5.2.2 Kiến trúc chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.2.3 Tiền xử lý dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.2.4 Cài đặt mô đun dàn trang . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.2.5 Một số hình ảnh về giao diện của chương trình . . . . . . . . . . . . . 25 5.2.6 Kết quả kiểm thử demo chương trình . . . . . . . . . . . . . . . . . . . 25 6 Kết luận và hướng phát triển 27 6.1 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.2 Một số hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 A Phụ lục 29 A.1 Demo chương trình hiển thị ảnh . . . . . . . . . . . . . . . . . . . . . . . . . 29 A.2 Phiên bản HEDV chúng tôi phát triển trên nền tảng ARM . . . . . . . . . . . . 29 Tài liệu tham khảo 34 vi Danh sách hình vẽ 2.1 Biểu đồ cây và treemap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Các trạng thái của vi xử lý kiến trúc ARM . . . . . . . . . . . . . . . . . . . . 7 2.3 Biểu đồ sử dụng điện năng của các thành phần trong TBDĐ . . . . . . . . . . . 8 4.1 Giao diện WideStudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Biểu diễn dấu phẩy tĩnh và dấu phẩy động . . . . . . . . . . . . . . . . . . . . 14 5.1 Thử nghiệm thuật toán APL chưa tối ưu . . . . . . . . . . . . . . . . . . . . . 20 5.2 Thử nghiệm thuật toán APL sau khi tối ưu . . . . . . . . . . . . . . . . . . . . 20 5.3 Kết quả tối ưu về hiển thị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.4 Đồ thị thể hiện sự tối ưu về tốc độ . . . . . . . . . . . . . . . . . . . . . . . . 24 A.1 Giao diện demo chương trình hiển thị ảnh . . . . . . . . . . . . . . . . . . . . 30 A.2 Demo HEDV phiên bản trên ARM với các mục được chia theo treemap . . . . 31 A.3 Demo HEDV phiên bản trên ARM với các mục được chia theo đường chéo . . . 32 A.4 Thanh công cụ tùy chỉnh hiển thị dữ liệu . . . . . . . . . . . . . . . . . . . . . 33 vii Danh sách bảng 1 Bảng từ viết tắt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv 2.1 SDRAM tiết kiệm năng lượng . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.1 Kết quả test trên ARM về diện tích che phủ(%) . . . . . . . . . . . . . . . . . 22 5.2 Kết quả thực hiện thuật toán APL (trước và sau khi tối ưu) trên ARM . . . . . . 23 5.3 Kết quả kiểm thử demo chương trình . . . . . . . . . . . . . . . . . . . . . . . 26 1 CHƯƠNG 1 Mở đầu Xây dựng dàn trang cho TBDĐ là một vấn đề có cốt yếu trong việc đưa ra một giao diện thông minh với khả năng hỗ trợ người dung cao . Các kỹ thuật sắp xếp giao diện cho TBDĐ hiện nay có rât nhiều hạn về mặt tốc độ cũng như hiệu quả hiển thị. Sự khác biệt về màn hình hiển thị, cấu hình và mục đích sử dụng của các TBDĐ cũng yêu cầu dữ liệu được biểu diễn rất khác nhau. Vì thế hiện nay nhiều thuật toán về dàn trang (page layout) đã được nghiên cứu và phát triển như Layout Manga Algorithm [3] , VIPS (Vision-based Page Segmentation Algorithm) [4], hay Web Page Layout [5]... Nhưng hầu hết các thuật toán này đều được ứng dụng cho nền tảng PC, không thực sự đáp ứng được các yêu cầu khi chuyển đổi và cài trên thiết bị nhúng (như giới hạn về khả năng xử lý, bộ nhớ và màn hình hiển thị...). Trong luận văn này, tôi sẽ chọn thuật toán APL (cho các hình khối có thứ tự) và tiến hành các bước tối ưu để giải quyết bài toán về dàn trang trên TBDĐ. Tôi hi vọng cách tiếp cận và giải quyết bài toán được đưa ra trong khóa luận này sẽ mang lại những ý nghĩa tích cực trong thực tiễn. Ngoài phần mở đầu, bố cục của khóa luận gồm bốn chương tiếp theo: • Chương 2: Trình bày các cơ sở lý thuyết mà tôi sử dụng trong việc giải quyết bài toán của mình. • Chương 3: Trình bày cụ thể những yêu cầu mà bài toán đặt ra. • Chương 4: Trình bày giải pháp đề giải quyết bài toán nêu ở chương 3. 2 CHƯƠNG 1: MỞ ĐẦU • Chương 5: Trình bày các demo, kết quả thực nghiệm đồng thời đánh giá hiệu suất cũng như ý nghĩa thực tiễn. • Chương 6: Kết luận và nêu một số hướng phát triển trong tương lai. 3 CHƯƠNG 2 Cơ sở lý thuyết Trong khuôn khổ vấn đề đã nêu ở phần giới thiệu tôi cần quan tâm đến thuật toán Adaptive Page Layout (dàn trang mang tính thích ứng) [1], thuật toán về trực quan hóa dữ liệu Squarified Treemap [6], các cơ sở và đặc điểm về kiến trúc ARM và thư viện đồ họa OpenGL|ES. Tôi đã sử dụng các kết quả nghiên cứu được trình bày trong khóa luận của bạn Cao Bắc Tiến [2] về thuật toán APL trên PC. 2.1 Thuật toán Squarified Treemap Thuật toán Squarified Treemap [6] là thành phần khá quan trọng trong việc xây dựng demo Health Examination Data Visualization của chúng tôi. Squarified Treemap được phát triển dựa trên treemap. 2.1.1 Treemap Treemap là một dạng biểu diễn cấu trúc dữ liệu có thứ bậc thay thế cho biểu đồ cây. Mỗi hình chữ nhật trong treemap biểu diễn một lá của biểu đồ cây. Và việc chia các hình chữ nhật theo chiều thẳng đứng hoặc chiều ngang thể hiện các lá cùng cấp hay không (Ví dụ: Các lá trên cùng một cấp sẽ được chia theo cùng chiều thẳng đứng hoặc cùng chiều dọc). Và cỡ của mỗi 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT hình chữ nhật trong treemap thể hiện cỡ của các lá tương ứng trong biểu đồ cây. Biểu đồ 2.1 thể hiện sự tương ứng giữa biểu đồ cây và treemap. Về mặt ý tưởng một thuật toán treemap sẽ tạo cho mỗi hình chữ nhật một tỉ lệ tương ứng với nó dựa theo đặc điểm dữ liệu của từng hình mà nó biểu diễn sau đó dựa theo các thỉ lệ này sẽ đưa ra một khung hình sắp xếp hù hợp. (a) Biểu đồ cây (b) Biểu diễn theo treemap Hình 2.1: Biểu đồ cây và treemap 2.1.2 Squarified Treemap Thuật toán Squarified Treemap là một trong các thuật toán xây dựng treemap hiệu quả. Squarified Treemap nhằm mục đích cải thiện tính trực quan trong biểu diễn treemaps bằng cách đưa các khối hình chữ nhật trong biểu diễn treemap về các khối hình gần với hình vuông hơn. Điều này sẽ giúp không gian hiển thị được hiệu quả hơn, dễ so sánh cỡ của các khối hình hơn, đồng thời, độ chính xác của việc biểu diễn cũng được cải thiện hơn. Tư tưởng Squarified Treemap được thể hiện qua đoạn mã sau: void s q u a r i f y ( l i s t c h i l d r e n , l i s t row , r e a l w){ r e a l c = head ( c h i l d r e n ) ; i f ( wo r s t ( row , w) <= wor s t ( row++[ c ] , w) s q u a r i f y ( t a i l ( c h i l d r e n ) , row++[ c ] , w ) ; e l s e { l ayou t r ow ( row ) ; s q u a r i f y ( c h i l d r e n , [ ] , w id th ( ) ) ; } } 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Với R là danh sách các diện tích cho trước và s là tổng diện tích thì hàm worst được định nghĩa bởi công thức 4: worst(R,w) = max r∈R (max(w2r/s2, s2/(w2r)))(4) width là hàm chỉ ra độ dài của cạnh nhỏ nhất của hình chữ nhật con trong hàng, layoutrow() thêm một hàng con vào hình chữ nhật. Đầu vào của thuật toán Squarify Treemap là danh sách diện tích các hình chữ nhật con cần đưa ra dàn trang. Danh sách row bao gồm các hình chữ nhật sẽ đước sắp. Theo đoạn mã trên một hình chữ nhật con sẽ được lấy ra từ đầu vào (list children) sau đó sẽ so sánh điểm qua hàm đánh giá worst() rồi tiếp tục đưa ra dàn trang mới. 2.2 Kiến trúc ARM Ứng dụng cho các hệ thống nhúng hiện nay ngày càng trở nên phức tạp, không phải đơn giản chỉ là điều khiển một chốt đèn giao thông định thời, đếm số người ra vào cửa, điều khiển động cơ ON-OFF, hiển thị một câu thông báo trên LCD, theo xu thế tất yếu các nhân điều khiển cần có cấu hình mạnh hơn, đáp ứng thời gian thực tốt hơn các nhân điều khiển 8bit đang dùng. Chính sự hạn chế về dung lượng bộ nhớ chương trình-dữ liệu cũng đã ảnh hưởng không ít tới phạm vi ứng dụng của hệ chip vi điều khiển 8bit. Vi điều khiển 8bit gặp phải rất nhiều vấn đề về tính toán số thực, cài đặt thuật toán phức tạp. Các kết quả thu được từ vi điều khiển 8bit ấy luôn bị hạn chế khi ta ứng dụng vào công nghệ cao: truyền thông đa phương tiện, xử lý âm thanh, hình ảnh, các thiết bị hỗ trợ cá nhân , các ứng dụng trong mobile robot linh hoạt, tự hành và ‘biết ứng xử’. Từ những đánh giá trên hệ thống hiện tại cần một kiến trúc vi xử lý đủ mạnh, đáp ứng được tốt về mặt tương tác giao diện người dùng. Do đó trong khóa luận này chúng tôi tập trung vào nghiên cứu phát triển phần mềm chạy trên hệ thống sử dụng hệ vi xử lý ARM 32 bit. Kiến trúc ARM là thành phần quan trọng của nhiều hệ thống nhúng 32-bit đã rất thành công và được sử dụng rộng rãi trong TBDĐ, theo eeglossary [? ] 75% các bộ vi xử lý của các thiết bị nhúng trên thị trường hiện nay sử dụng vi xử lý kiến trúc ARM. Kiến trúc cũng như cách xử lý của ARM có sự khác biệt đối với máy tính cá nhân, điều đó dẫn đến nảy sinh một số khác biệt 6 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT trong việc lập trình trên nền tảng ARM và PC. ARM sử dụng cấu trúc RISC thay vì CISC như PC. RISC tập trung chú ý vào việc giảm tính phức tạp của các chỉ dẫn được thi hành bởi phần cứng bởi vì cung cấp tính mềm dẻo và thông minh trong phần mềm dễ dàng hơn trong phần cứng. Như một hệ quả, thiết kế RISC đặt nhiều yêu cầu đối với trình dịch hơn. Hệ vi xử lý ARM được sử dụng rộng rãi trong các thiết bị di động bởi khả năng tiết kiệm năng lượng của nó. Cơ chế hoạt động linh hoạt của ARM được thể hiện trong hình 2.2, hệ vi xử lý ARM có nhiều trạng thái hoạt động thích hợp với các tác vụ mà CPU phải thực hiện. Trạng thái RUN là khi CPU Hình 2.2: Các trạng thái của vi xử lý kiến trúc ARM đang thực hiện tác vụ, IDLE là trạng thái CPU khi không thực hiện tác vụ nào và chờ thực hiện tác vụ tiếp theo, SUSPEND là khi CPU ngừng hoạt động nhưng lưu các tác vụ đang thực hiện, OFF là trạng thái khi CPU ngừng hoạt động, việc quản lý lính hoạt giữa các trạng thái này giúp tiết kiệm năng lượng tối đa trên hệ thống sử dụng kiến trúc vi xử lý ARM. Hệ thống sử dụng kiến trúc vi xử lý ARM sử dụng SDRAM 2.5V tiết kiệm năng lượng hơn rất nhiều so với loại SDRAM 3.3V thông thường (theo bang. Theo biểu đồ 2.3 [7] chi tiết việc tiêu thụ điện năng Bảng 2.1: SDRAM tiết kiệm năng lượng Loại RAM Điện năng khi chạy(mW) Điện năng khi Suspend(mW) Loại bình thường(3.3V) 891 9.9 Tiết kiệm năng lượng(2.5V) 324 1.2 7 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT của các thành phần trên TBDĐ bình thường sử dụng kiến trúc vi xử lý ARM dành đến 46.5 % năng lượng để dành cho việc hiển thị trên màn hình, do đó việc xây dựng giao diện chương trình chạy trên kiến trúc vi xử lý ARM rất quan trọng đối với việc hoạt động tiết kiệm điện năng của TBDĐ. Các kiến trúc vi xử lý ARM từ ARM7 trở lên có hỗ trợ tính toán với dấu phẩy động sử Hình 2.3: Biểu đồ sử dụng điện năng của các thành phần trong TBDĐ dụng Floating Point Accelerator (FPA) và phần cứng Vector Floating Point accelerator (VFP), tuy nhiên việc tính toán bằng dấu phẩy động tiêu tốn nhiều năng lượng và tốc độ chậm hơn rất nhiều so với dấu phẩy tĩnh, khi đó trình biên dịch C sẽ phải xử lý các tính toán sử dụng dấu phẩy động thay thế bằng nhiều phép toán số học, điều này đòi hỏi nhiều thời gian và năng lượng hơn các phép toán số học thông thường. 8 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.3 OpenGL|ES OpenGL|ES [8] cung cấp các giao diện lập trình cho các chương trình ứng dụng đồ họa 2D-3D trên các hệ thống nhúng. Các giao diện lập trình này cho phép chương trình đồ họa giao tiếp với phần cứng dễ dàng hơn với các tính năng ưu việt tương tự như của OpenGL, tuy nhiên thư viện đồ họa OpenGLES đã được rút gọn đi để thích hợp hơn cho việc phát triển phần mềm trên thiết bị nhúng. OpenGL|ES hỗ trợ các kiến trúc vi xử lý ARM (từ ARM7 trở lên) đồng thời thư viện này cũng cho phép thực hiện các phép toán sử dụng dấu phảy tĩnh do đó các ứng dụng phát triển cho ARM có thể sử dụng các giao diện lập trình phong phú từ thư viện này. 9 CHƯƠNG 3 Bài toán đặt ra Mục tiêu bài toán là giải quyết vấn đề hiển thị và tương tác người dùng trên TBDĐ, bởi vậy, ngoài những yêu cầu về giao diện thì có những yêu cầu đặt ra đặc trưng bởi nền tảng thiết bị nhúng. Có thể nói, bài toán bao gồm hai vấn đề lớn: (1) tốc độ xử lý và (2) các yêu cầu về giao diện người dùng. Nội dung khóa luận tập trung vào phát triển tối ưu thuật toán cho ARM do đó các bài toán đặt ra ở đây sẽ dựa trên đặc điểm của kiến trúc ARM. 3.1 Phát triển phần mềm cho ARM 3.1.1 Các đặc điểm của kiến trúc xử lý ARM Các hệ sử dụng kiến trúc xử lý ARM từ ARM7 trở lên được cài đặt phần cứng hỗ trợ tính toán dấu phảy động (FPA và VFP) tuy nhiên việc tính toán dấu phảy động chậm hơn rất nhiều so với dấu phảy tĩnh bởi phải qua FPA. Bên cạnh đó các phép toán với số thực cũng mất chi phí tính toán rất cao. Bởi vậy, cần có giải pháp xử lý các phép tính toán với số thực và chuyển từ dấu phảy động qua dấu phảy tĩnh sử dụng trong APL để thuật toán có thể thực hiện chính xác và đảm bảo hiệu năng xử lý trên ARM. Đặc điểm của kiến trúc ARM yêu cầu các kỹ thuật lập trình phù hợp. 10 CHƯƠNG 3: BÀI TOÁN ĐẶT RA 3.1.2 Xây dựng môi trường phát triển phần mềm cho ARM Đối với máy sử dụng kiến trúc vi xử lý ARM có bộ nhớ và tốc độ tương đối nhỏ, việc phát triển phần mềm và xây dựng trực tiếp trên chúng (hoặc trên giả lập) là rất k