ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA - VŨ CHÍ HIẾU XÂY DỰNG HỆ ĐIỀU HÀNH THỜI GIAN THỰC CHO ỨNG DỤNG ĐỒNG HỒ TRÊN VI XỬ LÝ S1C17704 VỚI TIÊU CHÍ TIÊU THỤ NĂNG LƯỢNG THẤP Chuyên ngành: Khoa học Máy tính Mã số: 604801 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN: TS ĐINH ĐỨC ANH VŨ TP HỒ CHÍ MINH, tháng 05 năm 2012 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM Cán hướng dẫn khoa học: TS ĐINH ĐỨC ANH VŨ Cán chấm nhận xét 1: TS Nguyễn Đức Thái Cán chấm nhận xét 2: TS Bùi Trọng Tú Luận văn thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 14 tháng 06 năm 2012 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: TS Nguyễn Thanh Bình (Chủ tịch hội đồng) TS Nguyễn Thanh Hiên (Thư ký hội đồng) TS Nguyễn Đức Thái (Phản biện 1) TS Bùi Trọng Tú (Phản biện 2) TS Đinh Đức Anh Vũ (Ủy viên) Xác nhận Chủ tịch Hội đồng đánh giá LV Trưởng Khoa quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA………… ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: VŨ CHÍ HIẾU MSHV: 09070437 Ngày, tháng, năm sinh: 15-09-1978 Nơi sinh: Bình Định Chuyên ngành: Khoa học Máy tính Mã số: 604801 I TÊN ĐỀ TÀI: Xây dựng hệ điều hành thời gian thực cho ứng dụng đồng hồ vi xử lý S1C17704 với tiêu chí tiêu thụ lượng thấp II NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu xây dựng hệ điều hành thời gian thực cho ứng dụng đồng hồ vi xử lý S1C17704 với tiêu chí tiêu thụ lượng thấp III NGÀY GIAO NHIỆM VỤ : 04-07-2011 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15-05-2012 V CÁN BỘ HƯỚNG DẪN: TS ĐINH ĐỨC ANH VŨ Tp HCM, ngày 15 tháng 05 năm 2012 CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO TRƯỞNG KHOA ….……… LỜI CẢM ƠN Tơi xin bày tỏ lịng biết ơn sâu sắc đến TS Đinh Đức Anh Vũ, người tận tình hướng dẫn, giúp đỡ động viên tơi suốt q trình thực luận văn Tơi xin cảm ơn thầy cô khoa Khoa học Kỹ thuật Máy tính, phịng Đào tạo Sau đại học trường Đại học Bách Khoa TP Hồ Chí Minh đóng góp nhiều ý kiến quý báu tạo điều kiện thuận lợi để thực luận văn Tơi xin gửi lời cảm ơn tới gia đình bạn bè, người hỗ trợ tơi suốt trình học tập nghiên cứu trường Đại học Bách Khoa TP Hồ Chí Minh TP Hồ Chí Minh, tháng 05 năm 2012 Người thực Vũ Chí Hiếu TĨM TẮT Đồng hồ điện tử số đời từ thập niên 70 kỷ 20 trải qua nhiều giai đoạn phát triển Lúc đời đồng hồ điện tử số có chức xem giờ, xem ngày tháng, đồng hồ bấm (stopwatch) đồng hồ đếm ngược (countdown timer) với phần cứng đơn giản bao gồm vi xử lý, phím nhấn hình hiển thị Tuy nhiên với phát triển công nghệ bán dẫn việc tạo vi xử lý mạnh với dòng tiêu thụ thấp với việc tích hợp chức khác nhằm tạo tính cạnh tranh, đồng hồ điện tử số không đơn dùng để xem mà cịn cung cấp nhiều chức khác để thỏa mãn yêu cầu ngày cao người sử dụng Đồng hồ điện tử số xem đồng hồ đa chức vi tính hóa (computerized multi-function watch) với chức tích hợp khác đo áp suất, đo độ cao, đo nhiệt độ, đo độ sâu, la bàn điện tử, GPS, … Việc phát triển phần mềm cho đồng hồ điện tử số trước chủ yếu sử dụng hợp ngữ (assembly language) với tài nguyên phần cứng hạn chế thường dựa kinh nghiệm lập trình người viết chương trình Tuy nhiên với việc chương trình phần mềm cho đồng hồ ngày phức tạp, việc phát triển dựa hợp ngữ kinh nghiệm người lập trình khơng cịn phù hợp phần mềm có chất lượng thời gian ngắn Với phát triển công nghệ bán dẫn, vi xử lý ngày mạnh hỗ trợ phát triển phần mềm ngôn ngữ cấp cao C/C++, việc tạo khung chương trình (software platform) để giúp việc phát triển phần mềm cho ứng dụng đồng hồ điều cần thiết nhằm giảm thời gian phát triển chương trình tạo chương trình có chất lượng thời gian ngắn Đề tài nghiên cứu tập trung xây dựng hệ điều hành thời gian thực cho việc phát triển ứng dụng đồng hồ điện tử số vi xử lý S1C17704 Seiko Epson với tiêu chí tiêu thụ lượng thấp Phần trọng tâm đề tài tập trung nghiên cứu việc quản lý tác vụ hàng đợi phân cấp kết hợp với xung đồng hồ hệ thống động nhằm giảm lượng tiêu thụ đáp ứng yêu cầu thời gian thực thi tác vụ ABSTRACT Electronic digital watch was first intruduced in the 70s of the 20th century and spent several stages of development so far At the beginning, electronic digital watch has only the basic functions such as time viewing, date viewing, stopwatch and countdown timer with a simple hardware including processor, keys and the display However with the development of semiconductor technology, the more powerful processors with lower power consumption with the integration of other functions, electronic digital watch is currently not only use for time viewing but also provides many other functions to satisfy the increasing requirements of users Electronic digital watch is now considered as a computerized multi-function watch with integrated functions such as pressure, altimeter, temperature, depth meter, electronics compass, GPS, The software development of electronic digital watch in the past mostly based on assembly language with limited hardware resources and often based on the experience of programmer However with the increasingly complex of software programs, the software development based on the assembly language and the programmer's experience is no longer suitable to produce quality software in a short time Together with the development of semiconductor technology, the processor has more powerful and supports software development in the high-level language like C/C++, creating a framework based (software platform) to help the development of application software for electronic digital watch is necessary This can help to reduce development time and make a quality program in the shorter time This study focuses on building a real-time operating system for developing applications of electronic digital watch on the S1C17704 processor of Seiko Epson with low energy consumption criteria In this study, I focus on the management of task in a multi-level task queue with dynamic system tick to reduce power consumption while meeting the requirements of the deadline execution time of tasks LỜI CAM ĐOAN Tôi xin cam đoan nội dung luận văn cơng trình nghiên cứu khoa học Các kết luận văn trung thực chưa khác công bố cơng trình khác TP Hồ Chí Minh, tháng 05 năm 2012 Người thực Vũ Chí Hiếu i MỤC LỤC MỤC LỤC i DANH MỤC HÌNH iv DANH MỤC BẢNG v DANH MỤC CÁC TỪ VIẾT TẮT vi Chương 1: MỞ ĐẦU 1.1 Động nghiên cứu 1.2 Mục tiêu Software Platform 1.3 Mục tiêu nhiệm vụ luận văn 1.3.1 Mục tiêu đề tài 1.3.2 Bài toán cần giải .3 1.3.3 Phạm vi nghiên cứu – nhiệm vụ luận văn 1.4 Phương pháp nghiên cứu 1.5 Đóng góp nghiên cứu 1.5.1 Về giải thuật 1.5.2 Về mục tiêu .4 1.6 Cấu trúc luận văn .4 Chương 2: TỔNG THUẬT CÁC CƠNG TRÌNH LIÊN QUAN .7 2.1 Tối ưu hóa lượng tiêu thụ hệ thống thời gian thực .7 2.2 Tối ưu nhớ hệ thống nhúng .11 Chương 3: CƠ SỞ LÝ THUYẾT 12 3.1 Hệ điều hành thời gian thực 12 3.1.1 Khái niệm hệ thống thời gian thực 12 3.1.2 Lịch sử phát triển hệ điều hành .12 3.1.3 Hệ điều hành thời gian thực (RTOS) 15 3.1.3.1 Khái niệm hệ điều hành thời gian thực 15 3.1.3.2 Scheduler 16 3.1.3.3 Các đối tượng (Objects) 23 3.1.3.4 Dịch vụ .23 3.1.3.5 Các đặc tính hệ điều hành 23 3.2 Vi xử lý S1C17704 26 ii 3.2.1 Giới thiệu họ vi xử lý S1C17 Seiko Epson 26 3.2.2 Vi xử lý S1C17704 28 3.3 Các đặc tính phần mềm ứng dụng đồng hồ 30 Chương 4: GIẢI PHÁP, KIẾN TRÚC VÀ HIỆN THỰC HỆ THỐNG 32 4.1 Giải pháp .32 4.1.1 Động 33 4.1.2 Giải pháp 34 4.2 Kiến trúc hệ thống 37 4.2.1 API 38 4.2.2 Hàng đợi tác vụ phân cấp (Hierarchical Task Queue) 38 4.2.3 Scheduler phân cấp (Hierarchical Scheduler) 38 4.2.4 Trình quản lý ngắt 39 4.2.5 Lớp giao tiếp phần cứng (Hardware Access Layer) .39 4.3 Hiện thực hệ thống 39 4.3.1 Công cụ phát triển ngôn ngữ lập trình .39 4.3.2 Các cấu trúc liệu sử dụng hệ điều hành 40 4.3.2.1 Khối điều khiển tác vụ (Task Control Block) 40 4.3.2.2 Khối điều khiển kiện (Event Control Block) 41 4.3.2.3 Khối điều khiển Semaphore (Semaphore Control Block) .42 4.3.2.4 Khối điều khiển hàng đợi tin nhắn (Message Queue Control Block) 42 4.3.3 Hiện thực khối chức .43 4.3.3.1 Hàng đợi tác vụ phân cấp (Hierarchical Task Queue) .43 4.3.3.2 Hàng đợi tác vụ sẵn sàng (Ready Task Queue) .44 4.3.3.3 Scheduler phân cấp 45 4.3.3.4 Giao tiếp tác vụ (intertask communication) 47 4.3.3.5 Trình điều khiển thiết bị 47 4.3.4 Hiện thực thời gian thực 48 Chương 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ 49 5.1 Phần cứng thử nghiệm 49 5.2 Phần mềm thử nghiệm 50 iii 5.3 Cách thức tiến hành thử nghiệm 51 5.4 Kết thử nghiệm .52 5.4.1 Kết hàng đợi phân cấp xung đồng hồ hệ thống động 53 5.4.2 Kết hàng đợi cấp xung đồng hồ hệ thống cố định 53 5.5 Đánh giá kết thử nghiệm .54 Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 55 6.1 Kết luận 55 6.2 Hướng phát triển 55 PHỤ LỤC: BÀI BÁO KHOA HỌC 56 TÀI LIỆU THAM KHẢO 66 57 58 59 60 61 62 63 64 65 66 TÀI LIỆU THAM KHẢO [1] Hakan Aydin, Rami Melhem, Daniel Mossé, Pedro Mejía-Alvarez, Determining Optimal Processor Speeds for Periodic Real-Time Tasks with Different Power Characteristics, ecrts, pp.0225, 13th Euromicro Conference on Real-Time Systems (ECRTS'01), 2001 [2] Hakan Aydin, Pedro Mejía-Alvarez, Daniel Mossé, Rami Melhem, Dynamic and Aggressive Scheduling Techniques for Power-Aware Real-Time Systems, rtss, pp.95, 22nd IEEE Real-Time Systems Symposium (RTSS'01), 2001 [3] T P Baker, Stack-based scheduling of realtime processes, The Journal of Real-Time Systems, 3, 67 99 (1991) 1991 Kluwer Academic Publishers Manufactured in The Netherlands [4] S Baruah, G Koren, D Mao, B Mishra, A Raghunathan, L Rosier, D Shasha, and F Wang, On the competitiveness of on-line real-time task scheduling, Proceedings of the Real-Time Systems Symposium, pp 106-115 San Antonio, Texas December 1991 IEEE Computer Society Press [5] Sanjoy Baruah, Aloysius Mok, and Louis Rosier, Preemptively scheduling hard-real-time sporadic tasks on one processor, Proceedings of the RealTime Systems Symposium, pp 182-190, Orlando, Florida December 1990 IEEE Computer Society Press [6] Luca Benini, Alessandro Bogliolo, and Giovanni De Micheli, A Survey of Design Techniques for System - Level Dynamic Power Management, IEEE Transactions on Very Large Scale Integration (VLSI) System, VOL 8, NO 3, JUNE 2000, pp299-316 [7] Luca Benini, Alberto Macii, Enrico Macii, Massimo Poncino, Synthesis of application-specific memories for power optimization in embedded 67 systems, Proceedings of the 37th conference on Design automation, Los Angeles, California, United States, pp.300-303, June 2000 [8] Nathan Cooprider & John Regehr, Offline compression for on-chip ram, Proceedings of the 2007 PLDI conference, Volume 42 Issue 6, June 2007, pp.363-372 [9] F Cottet, J Delacroix, Z Mammeri – Scheduling in Real-Time Systems – John Wiley & Sons, 2002, pp.23 – 42 [10] Robert Davis, Nick Merriam and Nigel Tracey, How Embedded Applications using an RTOS can stay within On-chip Memory Limits, in Proc of the Industrial Experience Session, the 12th Euromicro Conference on Real-Time Systems, June 2000 [11] Paolo Gai, Giuseppe Lipari, Marco Di Natale, Minimizing Memory Utilization of Real-Time Task Sets in Single and Multi-Processor Systems-on-a-Chip, pp.73, 22nd IEEE Real-Time Systems Symposium (RTSS'01), 2001 [12] Flavius Gruian, Hard Real-Time Scheduling for Low-Energy Using Stochastic Data and DVS Processors, Low Power Electronics and Design, International Symposium on, 2001 pp 46 – 51 [13] Pao-Ann Hsiung and Hsin-Chieh Kao, Device-Centric Low-Power Scheduling For Real-Time Embedded Systems, International Journal of Software Engineering and Knowledge Engineering, Vol 15, No (2005) pp 461-466, © World Scientific Publishing Company [14] Ravindra Jejurikar, Rajesh Gupta, Energy aware task scheduling with task synchronization for embedded real time systems, Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, June 2002, pp1024-1037 68 [15] Niraj K Jha, Low Power System Scheduling and Synthesis Computer Aided Design, 2001 ICCAD 2001 IEEE/ACM International Conference on pp 259-263 [16] M Kandemir , J Ramanujam , J Irwin , N Vijaykrishnan , I Kadayif , A Parikh, Dynamic management of scratch-pad memory space, Proceedings of the 38th conference on Design automation, Las Vegas, Nevada, United States, pp.690-695, June 2001 [17] N Abid Ali Khan and K Ushadevi, Embedded Software Power Optimization Techniques in Real Time Operating System, 4th International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 25-29, 2007 – TUNISIA [18] Phillip A Laplante, Real-Time Systems Design and Analysis 3rd edition, Wiley Interscience ISBN 0-471-22855-9, © 2004 Institute of Electrical and Electronics Engineers [19] J Y T Leung and J Whitehead - On the Complexity of Fixed-Priority Scheduling of Periodic, Real-Time Tasks - Performance Evaluation (Netherlands) (4) (1982) 237-250 [20] Qing Li and Caroline Yao, Real-Time Concepts for Embedded Systems, CMP Books, 2003, ISBN: 1-578-20124-1 [21] A Mok - Fundamental Design Problems of Distributed Systems for Hard Real-time Environments -PhD thesis, Massachusetts Institute of Technology, Cambridge, MA, 1983 [22] Massoud Pedram, Power Optimization and Management in Embedded Systems, Proceeding ASP-DAC '01 Proceedings of the 2001 Asia and South Pacific Design Automation Conference, pp 239 – 244 69 [23] Ramamritham, K.; Stankovic, J.A., Scheduling algorithms and operating systems support for real-time systems, Proceedings of the IEEE, VOL 82, NO 1, 1994 [24] Zhiyuan Ren, Bruce H Krogh, Radu Marculescu, Hierarchical Adaptive Dynamic Power Management, IEEE Transactions on Computers, vol 54, no 4, pp 409-420, Apr 2005 [25] Youngsoo Shin, Kiyoung Choi, Takayasu Sakurai, Power Optimization of Real-Time Embedded Systems on Variable Speed Processors, iccad, pp.365, 2000 International Conference on Computer-Aided Design (ICCAD '00), 2000 [26] J Sjödin, B Fröderberg, and T Lindgren Allocation of Global Data Objects in On-Chip RAM In Proc Workshop on Compiler and Architectural Support for Embedded Computer Systems, Washington DC, Dec 1998 ACM [27] S Steinke, L Wehmeyer, B Lee, P Marwedel, Assigning Program and Data Objects to Scratchpad for Energy Reduction, Proceedings of the conference on Design, automation and test in Europe, p.409, March 04-08, 2002 [28] Thiele, L.; Chakraborty, S.; Naedele, M.; Real-time calculus for scheduling hard real-time systems, Zurich Circuits and Systems, 2000 Proceedings ISCAS 2000 Geneva The 2000 IEEE International Symposium on, pp 101-104 [29] Osman S Unsal and Israel Koren System Level Power Aware Design Techniques in Real-Time Systems Proceedings of the IEEE, VOL.91, NO 7, HULY 2003 [30] Gang Zeng, Hiroyuki Tomiyama and Hiroaki Takada, Dynamic Power Management for Embedded System Idle State in the Presence of 70 Periodic Interrupt Services, Information and Media Technologies, Vol 3, No , 2008, pp.661-670 [31] Epson, S1C17 Family S1C17 Core Manual, Dec 2007 [32] Epson, S1C17704 Technical Manual, Aug 2008 71 PHẦN LÝ LỊCH TRÍCH NGANG Họ tên: VŨ CHÍ HIẾU Ngày, tháng, năm sinh: 15-09-1978 Nơi sinh: Bình Định Địa liên lạc: 125/5/23 Lê Văn Thọ, Phường 11, Quận Gị Vấp, TP.HCM Q TRÌNH ĐÀO TẠO Từ năm 1996 đến năm 2001: Đại học Bách Khoa TP Hồ Chí Minh, khoa Điện – Điện tử, ngành Điện tử - Viễn Thơng Q TRÌNH CƠNG TÁC Từ năm 2001 đến năm 2008: Công ty TNHH Điện tử DGS Từ năm 2010 đến 2012: Công ty TNHH Phonak Việt Nam ... Vi? ??c xây dựng hệ điều hành thời gian thực cho ứng dụng đồng hồ với tiêu chí tiêu thụ lượng thấp dựa vi? ??c giảm thiểu lượng sử dụng hệ điều hành thời gian thực vi? ??c xây dựng hệ điều hành thời gian. .. Xây dựng hệ điều hành thời gian thực cho ứng dụng đồng hồ vi xử lý S1C17704 với tiêu chí tiêu thụ lượng thấp II NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu xây dựng hệ điều hành thời gian thực cho ứng dụng. .. HIỆN THỰC HỆ THỐNG 4.1 Giải pháp Mục tiêu đề tài xây dựng hệ điều hành thời gian thực cho ứng dụng đồng hồ vi xử lý S1C17704 Seiko Epson với tiêu chí tiêu thụ lượng thấp Bên cạnh vi? ??c xây dựng