Luận văn Thạc sĩ: Phương pháp Phần mềm Giảm Tiêu thụ Điện năng

Luận văn thạc sĩ: Tiếp cận phần mềm giảm tiêu thụ điện năng. Nghiên cứu chuyên sâu về phương pháp và giải pháp tối ưu năng lượng hiệu quả.

Chuyên ngành

Computer Science

Người đăng

Ẩn danh

Thể loại

Thesis

2014

66
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

ORIGINALITY STATEMENT

ABSTRACT

ACKNOWLEDGEMENTS

Table of Contents

1. Chapter 1 Introduction

1.1. Software power optimization

1.2. Power optimization by instruction scheduling

1.3. Our work

1.4. Thesis organization

2. Chapter 2 Related Work

2.1. Software power estimation

2.2. Energy code driven generation for low power

2.3. Reducing memory access

2.4. Software power optimization using symbolic algebra

2.5. List scheduling for low power

2.6. Instruction scheduling to reduce switching activity

2.7. Low power instruction scheduling as a traveling salesman problem

2.8. Force-directed instruction scheduling for low power

2.9. Instruction scheduling to reduce the off-chip power

List of Figures

List of Tables

List of Abbreviations

List of Notations

1. Chapter 1: Introduction

1.1. Software power optimization

1.2. Power optimization by instruction scheduling

1.3. Our work

1.4. Thesis organization

2. Chapter 2: Related Work

2.1. Software power estimation

2.2. Energy code driven generation for low power

2.3. Reducing memory access

2.4. Software power optimization using symbolic algebra

2.5. List scheduling for low power

2.6. Instruction scheduling to reduce switching activity

2.7. Low power instruction scheduling as a traveling salesman problem

2.8. Force-directed instruction scheduling for low power

2.9. Instruction scheduling to reduce the off-chip power

Tóm tắt

I. Tổng Quan Về Luận Văn Thạc Sĩ Về Tiết Kiệm Năng Lượng Phần Mềm

Trong bối cảnh kỹ thuật hệ thống nhúng, việc tối ưu hóa trở thành một vấn đề then chốt. Các hệ thống nhúng thường bị giới hạn về tài nguyên, bao gồm dung lượng bộ nhớ, tốc độ bộ xử lý và nguồn cung cấp năng lượng. Tối ưu hóa cho phép hệ thống hoạt động hiệu quả hơn với các tài nguyên hạn chế. Việc tiết kiệm năng lượng là một vấn đề quan trọng, đặc biệt đối với các hệ thống nhúng sử dụng nguồn pin. Do các thiết bị nhúng thường di động và sử dụng pin DC, việc tối ưu hóa tiêu thụ năng lượng phần mềm có thể giúp kéo dài tuổi thọ của các hệ thống đó. Ngày nay, các thiết bị nhúng ngày càng trở nên phổ biến trong cuộc sống hàng ngày cũng như trong khoa học và công nghệ. Nhiều người bị thu hút bởi các thiết bị nhúng phổ biến như điện thoại thông minh, máy tính bảng, máy nghe nhạc MP3. Các thiết bị phổ biến sẽ cần thời lượng pin dài hơn. Vì khả năng giảm tiêu thụ năng lượng của một thiết bị nhúng ngày càng quan trọng, nên vấn đề tối ưu hóa này đã trở thành một thách thức lớn đối với các nhà thiết kế và nhà sản xuất. Họ phải liên tục cải thiện chất lượng sản phẩm để đáp ứng nhu cầu của người dùng và việc tiết kiệm năng lượng thực sự là một yêu cầu cần thiết. Luận văn này tập trung vào lập lịch phần mềm tiết kiệm năng lượng, một phương pháp hiệu quả để giảm tiêu thụ năng lượng phần mềm trong hệ thống nhúng. Theo Tiwari [1], tiết kiệm năng lượng có thể đạt được bằng các kỹ thuật phần mềm như lập lịch lại các lệnh. Một lệnh ở một vị trí nhất định có thể tiêu thụ nhiều hay ít năng lượng hơn so với vị trí khác.

1.1. Tầm Quan Trọng Của Tiết Kiệm Năng Lượng Trong Hệ Thống Nhúng

Các hệ thống nhúng, với tài nguyên hạn chế, hưởng lợi đáng kể từ việc tối ưu hóa năng lượng. Tiết kiệm năng lượng kéo dài tuổi thọ pin, tăng tính di động và giảm tác động môi trường. Việc nghiên cứu và phát triển các phương pháp tiết kiệm năng lượng hiệu quả là vô cùng quan trọng đối với sự phát triển bền vững của công nghệ nhúng. Việc quản lý năng lượng phần mềm hiệu quả cũng góp phần giảm chi phí vận hành và bảo trì hệ thống. Các phương pháp lập lịch giúp thay đổi thứ tự thực hiện các lệnh, khiến cho việc sử dụng năng lượng được tối ưu.

1.2. Giới Thiệu Về Lập Lịch Phần Mềm Tiết Kiệm Năng Lượng

Lập lịch phần mềm tiết kiệm năng lượng là một kỹ thuật tối ưu hóa giúp giảm tiêu thụ năng lượng bằng cách sắp xếp lại thứ tự thực hiện các lệnh trong chương trình. Mục tiêu là giảm thiểu tiêu thụ năng lượng của bộ xử lý và các thành phần khác trong hệ thống. Kỹ thuật này tập trung vào việc giảm thiểu sự chuyển đổi trạng thái (switching activity) và giảm thiểu các hoạt động tốn năng lượng như truy cập bộ nhớ. Các thuật toán lập lịch được thiết kế để tìm kiếm thứ tự lệnh tối ưu, đảm bảo hiệu suất và hiệu quả năng lượng.

II. Thách Thức Trong Tối Ưu Hóa Tiêu Thụ Năng Lượng Phần Mềm Hiệu Quả

Tối ưu hóa tiêu thụ năng lượng phần mềm là một nhiệm vụ phức tạp với nhiều thách thức. Việc đo lường và phân tích năng lượng phần mềm đòi hỏi các công cụ và kỹ thuật chuyên biệt. Các yếu tố ảnh hưởng đến tiêu thụ năng lượng phần mềm rất đa dạng, bao gồm kiến trúc bộ xử lý, hệ điều hành và các thư viện phần mềm. Để đạt được tối ưu hóa năng lượng phần mềm hiệu quả, cần phải xem xét tất cả các yếu tố này và áp dụng các phương pháp tối ưu hóa phù hợp. Theo Tiwari [1], inter-instruction effects bao gồm hiệu ứng trạng thái mạch, hiệu ứng ràng buộc tài nguyên (ví dụ, pipeline stall và write buffer stall) và hiệu ứng cache miss. Tổng năng lượng của chương trình được tính bằng tổng chi phí năng lượng cơ bản của tất cả các lệnh và tất cả các hiệu ứng inter-instruction.

2.1. Sự Phức Tạp Của Việc Đo Lường Và Phân Tích Năng Lượng

Việc đo lường chính xác tiêu thụ năng lượng của các thành phần phần mềm là một thách thức lớn. Các công cụ phần cứng và phần mềm chuyên dụng cần thiết để theo dõi tiêu thụ năng lượng ở mức độ chi tiết. Phân tích năng lượng phần mềm đòi hỏi kiến thức sâu rộng về kiến trúc hệ thống và các hoạt động phần mềm. Các yếu tố như nhiệt độ môi trường, điện áp cung cấp và tần số hoạt động cũng có thể ảnh hưởng đến kết quả đo lường.

2.2. Các Yếu Tố Ảnh Hưởng Đến Tiêu Thụ Năng Lượng Phần Mềm

Nhiều yếu tố ảnh hưởng đến tiêu thụ năng lượng phần mềm, bao gồm kiến trúc bộ xử lý (ví dụ: số lượng lõi, tần số hoạt động), hệ điều hành (ví dụ: lập lịch tiến trình, quản lý bộ nhớ), ngôn ngữ lập trình, trình biên dịch và thư viện phần mềm. Kiến trúc phần mềm tiết kiệm năng lượng có thể giảm tiêu thụ năng lượng tổng thể. Hiệu quả của các phương pháp tiết kiệm năng lượng phụ thuộc vào sự tương tác phức tạp giữa các yếu tố này.

2.3. Tìm Kiếm Sự Cân Bằng Giữa Hiệu Suất Và Tiết Kiệm Năng Lượng

Một trong những thách thức lớn nhất trong tối ưu hóa năng lượng phần mềm là tìm kiếm sự cân bằng giữa hiệu suất và tiết kiệm năng lượng. Việc tối ưu hóa cho tiết kiệm năng lượng có thể dẫn đến giảm hiệu suất, và ngược lại. Các nhà phát triển cần phải cân nhắc các yếu tố này và đưa ra các quyết định sáng suốt để đạt được sự cân bằng tối ưu. Các thuật toán lập lịch tiết kiệm năng lượng được thiết kế để giảm tiêu thụ năng lượng mà không ảnh hưởng đáng kể đến hiệu suất.

III. Phương Pháp Lập Lịch Dựa Trên Giải Thuật Di Truyền Tiết Kiệm Năng Lượng

Thuật toán lập lịch tiết kiệm năng lượng là một vấn đề NP-khó; khó khăn chính là không gian tìm kiếm các thứ tự lệnh có thể có là rất lớn. Theo tác giả luận văn, vấn đề khi tìm một lịch trình tốt là giải quyết các ràng buộc của biểu đồ luồng dữ liệu (Data Flow Graph - DFG). Do đó, phương pháp tiếp cận của tác giả sử dụng thuật toán di truyền với mã hóa nhiễm sắc thể để giải quyết các vấn đề phụ thuộc dữ liệu. Giải thuật di truyền (Genetic Algorithm - GA) là một thuật toán tìm kiếm heuristic mô phỏng quá trình tiến hóa tự nhiên, thường được sử dụng để giải quyết các vấn đề tối ưu hóa phức tạp. GA có thể tạo ra các giải pháp tối ưu bằng cách mô phỏng các quá trình như kế thừa, đột biến, lai ghép và chọn lọc tự nhiên.

3.1. Sử Dụng Giải Thuật Di Truyền Để Giải Bài Toán Lập Lịch

GA được áp dụng trong bài toán lập lịch bằng cách biểu diễn các lịch trình (schedules) có thể có dưới dạng nhiễm sắc thể. Mỗi nhiễm sắc thể đại diện cho một thứ tự thực hiện các lệnh. GA sử dụng các toán tử như chọn lọc, lai ghép và đột biến để tạo ra các lịch trình mới và cải thiện chúng theo thời gian. Hàm mục tiêu (fitness function) đánh giá hiệu quả năng lượng của từng lịch trình. Nghiên cứu này sử dụng một bảng heuristic, được gọi là Power Dissipation Table (PDT), được tạo ra bằng mô phỏng năng lượng.

3.2. Mã Hóa Nhiễm Sắc Thể Và Các Toán Tử Di Truyền

Mã hóa nhiễm sắc thể là một phần quan trọng của GA. Mỗi nhiễm sắc thể phải biểu diễn một giải pháp hợp lệ cho bài toán lập lịch. Các toán tử di truyền, chẳng hạn như lai ghép (crossover) và đột biến (mutation), được sử dụng để tạo ra các nhiễm sắc thể mới từ các nhiễm sắc thể hiện có. Các toán tử này phải được thiết kế cẩn thận để đảm bảo rằng các nhiễm sắc thể mới là hợp lệ và có khả năng cải thiện hiệu quả năng lượng.

3.3. Hàm Mục Tiêu Đánh Giá Hiệu Quả Năng Lượng Của Lịch Trình

Hàm mục tiêu là một hàm toán học đánh giá hiệu quả năng lượng của từng lịch trình (nhiễm sắc thể). Hàm mục tiêu này thường dựa trên các thông số như tiêu thụ năng lượng, thời gian thực hiện và các yếu tố khác liên quan đến hiệu suất và hiệu quả năng lượng. GA sử dụng hàm mục tiêu để chọn lọc các lịch trình tốt nhất và loại bỏ các lịch trình kém hiệu quả.

IV. Xây Dựng Bảng Tiêu Hao Năng Lượng PDT Cho Lập Lịch Phần Mềm

PDT là một bảng tra cứu chứa thông tin về tiêu thụ năng lượng của các lệnh khác nhau trong hệ thống. PDT được sử dụng làm heuristic để đánh giá hiệu quả năng lượng của các lịch trình khác nhau. Việc xây dựng PDT chính xác và đầy đủ là rất quan trọng để đảm bảo hiệu quả của thuật toán lập lịch. PDT cho một tập lệnh với n lệnh là một ma trận (n × n), trong đó mỗi mục PDT(i,j) là chi phí năng lượng tiêu thụ trong việc thực thi lệnh i theo sau là lệnh j. Mỗi mục được sử dụng làm chi phí chung giữa i và j, và bảng này được sử dụng để đánh giá giải pháp.

4.1. Phương Pháp Tạo Bảng PDT Dựa Trên Mô Phỏng Năng Lượng

Bảng PDT thường được tạo ra bằng cách sử dụng các công cụ mô phỏng năng lượng để đo tiêu thụ năng lượng của các lệnh khác nhau. Các công cụ mô phỏng này cho phép các nhà phát triển đánh giá tiêu thụ năng lượng của các lệnh khác nhau trong các tình huống khác nhau. Các công cụ này cũng cho phép các nhà phát triển xác định các lệnh và các chuỗi lệnh tốn năng lượng nhất.

4.2. Các Yếu Tố Ảnh Hưởng Đến Giá Trị Trong Bảng PDT

Các giá trị trong bảng PDT phụ thuộc vào nhiều yếu tố, bao gồm kiến trúc bộ xử lý, tần số hoạt động, điện áp cung cấp và các yếu tố khác liên quan đến hiệu suất và hiệu quả năng lượng. Việc lựa chọn giá trị điện trở, tụ điện phải hợp lý. Các nhà phát triển cần phải xem xét tất cả các yếu tố này khi xây dựng bảng PDT.

4.3. Sử Dụng Bảng PDT Để Đánh Giá Hiệu Quả Lập Lịch

Bảng PDT được sử dụng để đánh giá hiệu quả năng lượng của các lịch trình khác nhau bằng cách tính tổng tiêu thụ năng lượng của tất cả các lệnh trong lịch trình. GA sử dụng PDT để chọn lọc các lịch trình tốt nhất và loại bỏ các lịch trình kém hiệu quả. Tuy nhiên, PDT chỉ là một heuristic và không phải lúc nào cũng chính xác. Do đó, cần phải kết hợp PDT với các phương pháp đánh giá khác để đảm bảo hiệu quả của thuật toán lập lịch.

V. Kết Quả Thử Nghiệm Và Đánh Giá Hiệu Quả Tiết Kiệm Năng Lượng

Các thí nghiệm sử dụng hai công cụ mô phỏng mã nguồn mở: SimpleScalar Tool Set [16-18] và SimplePower [19]. Một tập hợp con của SimpleScalar Instruction Set được xem xét và SimplePower được sử dụng để mô phỏng tiêu thụ năng lượng. Thuật toán được áp dụng cho các chương trình lắp ráp của SimpleScalar ISA. Sau đó, các chương trình này được biên dịch và tiêu thụ năng lượng của chúng được đo bằng SimplePower để quan sát trực quan. Các kết quả thử nghiệm cho thấy hiệu quả của phương pháp được đề xuất. Theo luận văn, đã thu được mức giảm tiêu thụ năng lượng lên tới 20% so với các chương trình không được lập lịch.

5.1. Mô Tả Môi Trường Thử Nghiệm Và Bộ Dữ Liệu Đánh Giá

Môi trường thử nghiệm bao gồm các công cụ mô phỏng SimpleScalar và SimplePower. Bộ dữ liệu đánh giá bao gồm các chương trình lắp ráp khác nhau, bao gồm các chương trình tiêu chuẩn và các chương trình được tạo ra đặc biệt để kiểm tra hiệu quả của thuật toán lập lịch. Các chương trình này được lựa chọn để đại diện cho các loại ứng dụng khác nhau và các loại workload khác nhau.

5.2. Phân Tích So Sánh Với Các Phương Pháp Lập Lịch Khác

Để đánh giá hiệu quả của thuật toán lập lịch dựa trên GA, các kết quả được so sánh với các phương pháp lập lịch khác, chẳng hạn như lập lịch danh sách (list scheduling). So sánh này cho phép đánh giá hiệu quả của GA so với các phương pháp truyền thống. Lập lịch danh sách là một thuật toán lập lịch cơ bản sử dụng chiến lược tham lam. Trên thực tế, lập lịch danh sách chỉ là một thuật toán sắp xếp topo đơn giản.

5.3. Thảo Luận Về Ưu Điểm Và Hạn Chế Của Phương Pháp Đề Xuất

Phương pháp lập lịch dựa trên GA có một số ưu điểm so với các phương pháp khác, bao gồm khả năng tìm kiếm các giải pháp tối ưu trong không gian tìm kiếm lớn và khả năng thích ứng với các kiến trúc hệ thống khác nhau. Tuy nhiên, phương pháp này cũng có một số hạn chế, bao gồm chi phí tính toán cao và sự phụ thuộc vào chất lượng của bảng PDT. Do đó, cần phải cân nhắc các ưu điểm và hạn chế này khi áp dụng phương pháp lập lịch dựa trên GA.

VI. Kết Luận Và Hướng Nghiên Cứu Tiềm Năng Trong Tương Lai

Luận văn này đã trình bày một phương pháp tiếp cận mới để tối ưu hóa tiêu thụ năng lượng ở cấp độ lệnh - Lập lịch phần mềm tiết kiệm năng lượng. Nghiên cứu cho thấy việc áp dụng thuật toán di truyền cho vấn đề lập lịch cho phép giảm tiêu thụ năng lượng. Đồng thời, kết quả có thể được cải thiện bằng cách tiếp tục giải quyết các vấn đề còn tồn tại của phương pháp lập lịch. Trong tương lai, tác giả sẽ tiếp tục giải quyết các vấn đề còn lại của phương pháp lập lịch. Và tác giả cũng sẽ triển khai một phương pháp phần mềm khác để tối ưu hóa tiêu thụ năng lượng; đây là phương pháp sửa đổi mã lắp ráp để giảm truy cập bộ nhớ.

6.1. Tóm Tắt Những Đóng Góp Chính Của Luận Văn

Luận văn đã đóng góp vào lĩnh vực tiết kiệm năng lượng trong phần mềm bằng cách đề xuất một phương pháp lập lịch mới dựa trên thuật toán di truyền. Phương pháp này đã được chứng minh là hiệu quả trong việc giảm tiêu thụ năng lượng của các chương trình lắp ráp. Luận văn cũng đã cung cấp một phân tích so sánh với các phương pháp lập lịch khác và thảo luận về các ưu điểm và hạn chế của phương pháp đề xuất. Quan trọng hơn cả là đưa ra được những kiến thức về vấn đề tiết kiệm năng lượng phần mềm

6.2. Các Hướng Nghiên Cứu Tiềm Năng Trong Tương Lai

Các hướng nghiên cứu tiềm năng trong tương lai bao gồm việc cải thiện hiệu quả của thuật toán di truyền, phát triển các phương pháp xây dựng bảng PDT chính xác hơn và khám phá các kỹ thuật tối ưu hóa khác có thể được kết hợp với phương pháp lập lịch để đạt được hiệu quả năng lượng cao hơn. Việc nghiên cứu các kiến trúc phần cứng mới có thể tiết kiệm năng lượng cũng là một hướng đi đầy hứa hẹn.

24/09/2025

Trích đoạn nội dung tài liệu

A SOFTWARE APPROACH FOR LOWER POWER CONSUMPTION Bui Ngoc Hai Faculty of Information Technology University of Engineering and Technology Vietnam National University, Hanoi Supervised by Assoc. Nguyen Ngoc Binh A thesis submitted in fulfillment of the requirements for the degree of Master of Science in Computer Science April 2014 TIEU LUAN MOI download : skknchat@gmail.com ORIGINALITY STATEMENT ‘I hereby declare that this submission is my own work and to the best of my knowledge it contains no materials previously published or written by another person, or substantial proportions of material which have been accepted for the award of any other degree or diploma at University of Engineering and Technology (UET) or any other educational institution, except where due acknowledgement is made in the thesis. Any contribution made to the research by others, with whom I have worked at UET or elsewhere, is explicitly acknowledged in the thesis. I also declare that the intellectual content of this thesis is the product of my own work, except to the extent that assistance from others in the project's design and conception or in style, presentation and linguistic expression is acknowledged.’ Hanoi, April 25th , 2014 Signed.

TIEU LUAN MOI download : skknchat@gmail.com ABSTRACT Optimizing the power consumption is an important topic in embedded system engineering, especially for embedded systems that use battery power source. Power optimization can be achieved by software techniques and instruction scheduling is an effective software approach for reducing power cost of processor(s). In this thesis, we propose our idea of using a genetic algorithm for low power instruction scheduling. Our algorithm is applied to each basic block of assembly code to generate lower power program.

In the experiment section, we use two open source simulation tools that are SimpleScalar Tool Set and SimplePower, the algorithm is applied to assembly programs of SimpleScalar Instruction Set, these programs are compiled and then have their power consumptions measured by SimplePower. The experimental results showed the effectiveness of our proposed method. This scheduling method will be combined with the idea of reducing memory access for low power design in our further work. TIEU LUAN MOI download : skknchat@gmail.com ACKNOWLEDGEMENTS First and foremost, I would like to express my deepest gratitude to my supervisor, Assoc.

Nguyen Ngoc Binh for giving me the opportunity to work with him and for his patient guidance and continuous support throughout the years. I would like to give my honest appreciation to my colleagues at the Laboratory of Embedded Systems for their great support. I also would like to thank all my friends who gave me moral support during this work. Finally, this thesis would not have been possible without the moral support and love of my parents and my brother.

Thank you! TIEU LUAN MOI download : skknchat@gmail.com Table of Contents Chapter 1.1 Software power optimization .2 Power optimization by instruction scheduling .1 Software power estimation .2 Energy code driven generation for low power .3 Reducing memory access .4 Software power optimization using symbolic algebra .5 List scheduling for low power .6 Instruction scheduling to reduce switching activity .7 Low power instruction scheduling as traveling salesman problem .8 Force-directed scheduling for low power.9 Instruction scheduling to reduce the off-chip power .10 Energy-oriented and performance-oriented combination scheduling .11 Criticality-directed and Uncriticality-directed instruction scheduling for low power .12 Low power instruction scheduling using Particle Swarm Optimization algorithm. Instruction Scheduling for Low Power.2 Partitioning Basic Blocks of assembly code .2 Data Flow Graph construction .4 Generating Power Dissipation Table. 14 TIEU LUAN MOI download : skknchat@gmail.Genetic Algorithm for low power Instruction scheduling .3 Representation of chromosome .4 Cross Over operator.7 Genetic Algorithm for low power scheduling .1 SimpleScalar tool set .3 Experimental benchmarks set .5 Analysis and evaluation. Conclusion and Future Work.

Some important source code. Source code of benchmark programs. Power Dissipation Table. An example of scheduling a basic block.

56 TIEU LUAN MOI download : skknchat@gmail.com List of Figures Figure 2.1 List scheduling for low power .1 Flow of low power instruction scheduling .2 An example of a Basic Block and its Data Flow Graph .3 Examples of Basic Blocks .4 Algorithm to construct a DFG .5 PDT generation example .1 Topological sorting with random priorities assignment .3 Cross over operator .4 Cross over operator example .6 Genetic algorithm for low power scheduling .2 SimpleScalar simulator software architecture .3 SimplePower result example. 31 TIEU LUAN MOI download : skknchat@gmail.com List of Tables Table 3.1 Instruction set architecture .1 Experimental benchmark set .2 Experimental results of GA scheduling .3 Experimental results of list scheduling .4 Results comparison of two algorithms. 35 TIEU LUAN MOI download : skknchat@gmail.com List of Abbreviations BB Basic Block DC Direct Current DFG Data Flow Graph GA Genetic Algorithm ISA Instruction Set Architecture PDT Power Dissipation Table PISA Portable Instruction Set Architecture PSO Particle Swarm Optimization RAW Read after Write RTL Register Transfer Level TSP Travelling Salesman Problem WAR Write after Read WAW Write after Write TIEU LUAN MOI download : skknchat@gmail.com List of Notations ∑ Sum Energy Power of a program Power Base Cost of instruction i Overhead cost between two instruction i and j n Number of instruction in a basic block Number of times i get executed Number of times the pair (i,j) get executed Energy cost of other effects of the program P(t) Population at the loop t xti Solution i at the loop t vi Vertex i TIEU LUAN MOI download : skknchat@gmail.com 1 Chapter 1 Introduction In embedded system engineering, optimization is an important problem. Embedded systems always have limited resources such as the size of memory, the speed of the processor, power supply, etc.

Optimization will make the system work more efficiently with allowed resources. Optimizing the power consumption is an important issue, especially for embedded systems using battery power source. Since embedded devices are portable and use DC powered cells, optimized power consumption can help prolong the life time of such systems. Today, embedded devices are becoming more popular in daily life as well as in science and technology.

Many people have become attracted by popular embedded devices such as smart phones, tablet computers, MP3 players. Ubiquitous devices will need a longer battery life. Since the ability to reduce power consumption of an embedded device is more important, this optimization problem has become a major challenge for the designers and the manufacturers. They must continually improve product quality to meet the needs of users, and low power consumption really is a necessary requirement.1 Software power optimization Software controls most activity of hardware in the systems, therefore, it can have a significant effect on the power dissipation of a system.

Power can be optimized by software techniques. There have been many software techniques on optimizing the power consumption of the processor. Some techniques are instruction scheduling [1-10], reducing memory access, energy cost driven code generation, and instruction packing [2-3,11]. Since the order of instructions controls internal switching in the processor; it can affect the power of processor during execution.

Therefore choosing a suitable order of instructions can reduce power consumption of the system. In terms of energy consumption, memory accesses are more expensive than register accesses, so optimal register allocation that reduces the TIEU LUAN MOI download : skknchat@gmail.com 2 memory operands, can also reduce power. If we can obtain a table of power costs of individual instructions, a reduction in total power cost can be obtained by using a code generator which selects proper low power instructions. Another method is optimizing program source code for low power.

An example of this method is proposed in [12], where the authors optimize the C code by approximating complex expressions by simple polynomial expressions and converting floating point data to fixed point data, so that the energy dissipation of the program execution is reduced. Some other techniques are voltage software controlling and frequency scaling for dynamic power optimization [13].2 Power optimization by instruction scheduling One of the main features that affect the power consumption of the systems is how the assembly instructions are scheduled or combined together, the power consumed during the execution of an instruction will depend on the previous instruction. For a given C program as well as other high level languages code, there can be more than one sequence of instructions (assembly code) for a given processor. Therefore, a suitable order of instructions in a program can result in the lower power consumption.

Instruction Scheduling for Low Power is an effective software approach for power optimization; this work is reordering the assembly instructions of a program so that power consumption is reduced, of course keeping the semantics of the program. There are many scheduling techniques that have been proposed, most of which aim to reduce overhead cost between pairs of instructions [2-5,7-9,11]. Moreover, some techniques have other objectives for power reduction such as reducing switching activity [6,22] and using critical path [14].3 Our work In this thesis, we introduce our method for optimizing power consumption by instruction scheduling. Scheduling is an NP-hard problem; the main difficulty being that the search space of the possible instruction orders is very large.

When finding a good schedule, our usual stumbling block is resolving the constraints of the data flow graph, i. when we create a new order of instructions, we are not sure whether it satisfies the data flow graph or not. Hence, our approach uses a genetic algorithm with a chromosome encoding that solves the data dependency problems TIEU LUAN MOI download : skknchat@gmail. This method was introduced in [15], where the authors proposed this method to solve the traveling salesman problem (TSP).

We apply their method to the scheduling problem in order to reduce energy consumption. This algorithm has the advantage of avoiding the local optimum. For finding solutions in the large search space, we use a heuristic table, called Power Dissipation Table (PDT), which is generated by power simulations. A PDT for an instruction set with n instructions is a (n × n) matrix, where each entry PDT(i,j) is the power cost consumed in the execution of instruction i followed by instruction j.

Each entry is used as overhead cost between i and j, and this table is used for evaluating the solution. The original assembly programs are divided into basic blocks, and then a Data Flow Graph (DFG) is constructed for each basic block. This is a directed graph that presents the data dependencies of instructions in a basic block. Our algorithm is applied for each basic block of an assembly program; it takes as input a data flow graph of a given basic block and the power dissipation table and its output is the low power instruction sequence.

For experiments, we use two open source simulation tools: SimpleScalar Tool Set [16-18] and SimplePower [19]. A sub set of SimpleScalar Instruction Set is considered and SimplePower is used to simulate the power consumption. The algorithm is applied to assembly programs of SimpleScalar ISA. Then these programs are compiled and their power consumptions are measured by SimplePower for visual observation.4 Thesis organization The remainder of this thesis is organized as follows.

Chapter 2 introduces some related works about software power optimization and instruction scheduling for low power. Chapter 3 describes the steps of our low power instruction scheduling problem in detail. Chapter 4 presents the proposed approach based on a genetic algorithm for this problem. Chapter 5 reports the simulation tools, the benchmarks for experiment, experimental results and analysis.

Chapter 6 presents our conclusions and introduces the future work. TIEU LUAN MOI download : skknchat@gmail.com 4 Chapter 2 Related Work This chapter summarizes related research about software power optimization 2.1 Software power estimation The first step for power consumption is power estimation. The ability to estimate software power consumption can help to verify that a design meets its power constraints and verify the correctness of power optimization methods.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ