標題: 應用於嵌入式異質多核心平台之系統軟體關鍵技術與開發工具---子計畫二:應用於嵌入式異質多核心平台之工作管理演算法的設計與實作(I)
Design and Implementation of Task Management Algorithms for Embedded Heterogeneous Multi-Core Platforms(I)
作者: 單智君
SHANN JEAN JYH-JIUN
國立交通大學資訊工程學系(所)
關鍵字: 嵌入式系統;多核心處理器;異質多核心架構;作業系統;編譯器;靜態程式碼分割/平行化/配置/排程;動態工作配置;動態執行序產生/排程;embedded systems;multi-core processors;heterogeneous multi-core architecture;static code partition/parallelization/allocation/scheduling;dynamic task allocation;thread generation and scheduling
公開日期: 2009
摘要: 為了滿足對計算機系統日益增加的效能需求,目前處理器的架構主要藉由增加處理 器核心(processor core)的方式來達到這個目的,這樣的架構通稱為多核心(multi-core) 處理器。由於嵌入式(embedded)系統在功率消耗上的限制,因此embedded 系統中的 multi-core 處理器通常採用異質多核心(heterogeneous multi-core)架構。為了要在 heterogeneous multi-core 處理器開發與執行程式,必須有相關的軟體開發工具與作業系 統(operating system,OS)來配合;其中,又以工作(task)的靜態與動態管理(management) 為其研究重點。 本計畫為期三年,第一年度已經申請核准,於97 年8 月開始執行。本計劃主要探 討靜態與動態的task management 相關的議題,並將研究的成果以開放原始碼(open source)的方式釋出。 在靜態task management 的部分,主要的研究重點在程式開發時程式碼分割 (partition)、平行化(parallelization)、配置(allocation)、及排程(scheduling)上。 程式碼partition 與parallelization 就是根據程式分析的結果把整個程式碼分割成code segments,其中在部分code segments 中的operations 是可以平行地被執行。Allocation 則為每一個code segment 指定一個processor core 來執行;scheduling 則是根據code segment 的相依關係來安排執行的先後次序。在task 靜態management 中包含的研究議 題有: (1) 程式碼分析機制的研究與設計。 (2) 程式碼靜態parallelization、partition 與allocation 演算法的研究與設計。 (3) 程式碼靜態scheduling 演算法的研究與設計。 在task 動態management 的部分則主要針對task 在執行時的管理機制,其中包含的研究 議題有: (1) Task 動態allocation 之研究。 (2) 執行序(thread)動態產生(generation)的研究與設計。 (3) Thread 動態scheduling 演算法。 除了上述的議題外,我們也將把開發的靜態與動態技術實作到一個常見的系統上,並將 這些技術與其他子計畫的成果做整合,其中包含: (1) 靜態技術與軟體開發工具的整合與實作。 (2) 動態技術與VM 的整合。
To meet the increasing demand for computing performance, more and more embedded systems deploy multi-core architectures to achieve this aim. Because of the diversity of architectures, multi-core architectures are usually classified into two categories: homogeneous multi-core and heterogeneous multi-core. Since heterogeneous multi-core architecture is an application-specific design, it has advantages in terms of computing performance and power consumption on many applications. These advantages are exactly what most of the embedded systems need. Nevertheless, due to the lack of software development tools and OS, it is difficult to develop and execute programs on an embedded heterogeneous multi-core system. This motivates us to design and implement several key technologies used in an embedded heterogeneous multi-core system. This project is scheduled to a period of three years, and the first year of this project has been approved by NSC and started from August 2008. The main objective of this project is to explore the static and dynamic task management related issues, and the results of research will be released in the open source way. In the static task management, we will concentrate on single source code partition, parallelization, allocation and scheduling. Source code partition and parallelization is used to split the input source code into a number of code segments and make the operations within some of code segments execute in parallel. Task allocation aims to assign each code segment (or called task) to one kind of processor core or a specific processor core for execution. According to the previous results and the dependence of tasks, task scheduling determines the execution order of tasks on a processor core. The design issues of static task management therefore include: (1) Design and development of the code analysis mechanism. (2) Design and development of the source code partition, parallelization and allocation algorithm. (3) Design and development of the task scheduling algorithm. In the dynamic task management, the attention will be paid on dynamic task allocation, thread generation and scheduling which include: (1) Study of the task dynamic allocation algorithm. (2) Design and development of the thread generation algorithm. (3) Study of the task dynamic scheduling algorithm. In addition to the above topics, the technologies of static and dynamic task management will be implemented in an embedded heterogeneous multi-core system and be integrated with other sub-projects. The design issues included are: (1) Implementation of the approaches of static task management on an open source compiler framework. (2) Implementation of the technologies of dynamic task management on an open source virtual machine.
官方說明文件#: NSC98-2220-E009-052
URI: http://hdl.handle.net/11536/101245
https://www.grb.gov.tw/search/planDetail?id=1922831&docId=319333
顯示於類別:研究計畫