| 研究生: |
黃冠穎 Huang, Guan-Ying |
|---|---|
| 論文名稱: |
異質性多核心架構下對稱式訊息傳遞與管理機制之設計與實作 The Design and Implementation of Symmetric Message Passing and Management Mechanism in Heterogeneous Multi-Core Architecture |
| 指導教授: |
陳 敬
Chen, Jing |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 電腦與通信工程研究所 Institute of Computer & Communication Engineering |
| 論文出版年: | 2010 |
| 畢業學年度: | 98 |
| 語文別: | 中文 |
| 論文頁數: | 107 |
| 中文關鍵詞: | 異質性多核心 、對稱式行程溝通 、共享記憶體 、直接記憶體存取 、訊息管理模組 、PAC Duo |
| 外文關鍵詞: | heterogeneous multi-core, symmetric Inter-Process Communication, shared memory, DMA, message management functions, PAC Duo |
| 相關次數: | 點閱:97 下載:1 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
本論文設計並實作異質性多核心架構嵌入式系統平台之行程溝通(IPC)機制,提供運行於異質性多核心平台之行程間一對稱式之傳遞訊息與交換資料之管道。運行於不同處理器核心之行程藉由本論文提供之行程溝通機制,能夠有效地相互通訊、分享資料與協調同步,使多核心架構下之系統資源能有效地被利用。
本論文設計之對稱式行程溝通機制以共享記憶體架構為基礎。設計之內容包含: 存取不同匯流排之間共享記憶體之基本資料分享功能、適合傳輸大量資料之直接記憶體存取(DMA)機制、使用硬體中斷信號之高效能訊息傳遞機制、訊息儲存與管理功能等,以充分利用系統平台之特徵。為滿足應用程式行程溝通之多樣化需求與提高行程溝通之效率,本論文之設計將訊息傳送與接收功能分為等待式(Blocking)與非等待式(Non-Blocking)兩種模式,並設計應用程式介面(API),以便利應用程式開發。
本論文之設計實作於PAC Duo系統平台。PAC Duo是工業技術研究院所開發之異質性多處理器核心架構平台,其系統晶片包含一顆ARM處理器核心與兩顆高階DSP處理器核心(又稱PACDSP)。本論文中以ARM端運行Linux作業系統、PACDSP端分別運行μC/OS-II即時系統核心與資料流(Dataflow)系統核心為應用程式執行環境,實作嵌入系統核心之訊息傳遞模組與訊息管理模組、應用程式介面函式庫,並利用PAC Duo支援之硬體中斷機制實作基本訊息傳遞機制。經效能實測結果顯示本論文之行程溝通機制,可符合應用程式之需求,並兼顧即時與非即時系統之作業條件。
關鍵詞: 異質性多核心、對稱式行程溝通、共享記憶體、直接記憶體存取、訊息管理模組、PAC Duo
This thesis designs and implements a symmetric Inter-Process Communication (IPC) mechanism for embedded system platform of heterogeneous multi-core architecture. The goal is to provide a symmetric architecture for processes running on different processor cores to communicate and exchange data. With this symmetric IPC mechanism, processes are able to achieve effective communication, sharing data, co-operative execution and synchronization. The utilization of system resources thereby can be improved.
The symmetric IPC is designed with shared memory architecture as the basis. It is composed of the fundamental functions of sharing data through accessing shared memory modules connected by different buses, DMA mechanism suitable for transferring large data blocks, high performance message passing mechanism based on hardware interrupt support, and message management functions in order to make the best of the system capacity. In meeting the various requirements of inter-process communication and improving the efficiency, the functions of sending and receiving messages in blocking and non-blocking mode are supported by the design. To help application development, application program interfaces (API) of using this mechanism are also included in the design.
For evaluation purpose, the design of this symmetric IPC mechanism is implemented using PAC Duo as the embedded system platform. PAC Duo is heterogeneous multi-core system-on-chip (SOC) developed by Industrial Technology Research Institute (ITRI), which consists of one ARM processor and two advanced DSP processors (PACDSP). The implementation assumes that Linux operating system is running on the ARM side and, on the two PACDSPs, the real-time kernel C/OS-II and a dataflow kernel are running respectively. Function modules of message passing and management are embedded into system kernel and an API function library is provided for application development. The results of performance evaluation show that this symmetric IPC mechanism meets the requirements of application with either real-time or non-real-time conditions.
[1] Wikipedia, “Inter Process Communication”,
http://en.wikipedia.org/wiki/Inter_Process_Communication.
[2] Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, “Operating Sytem Principles”, 7th edition, John Wiley & Sons Pte Ltd., 2006.
[3] Richard Stones, Neil Matthew, “Beginning Linux Programming”, 4th edition, Wiley Publishing Inc., 2008.
[4] MSDN, “Interprocess Communications”,
http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx.
[5] MSDN, “Clipboard”,
http://msdn.microsoft.com/en-us/library/ms648709(VS.85).aspx.
[6] MSDN, “Mailslots”,
http://msdn.microsoft.com/en-us/library/aa365576(VS.85).aspx.
[7] MSDN, “Windows Sockets”,
http://msdn.microsoft.com/en-us/library/ms882974(v=MSDN.10).aspx.
[8] Wikipedia, “Multicore”, http://en.wikipedia.org/wiki/Multi-core_(computing).
[9] Lance Hammond, Benedict Hubbert, Michael Siu, Manohar Prabhu, Michael Chen, Kunle Olukotun, “The Standford Hydra CMP”, Micro, IEEE, 2000.
[10] Wikipedia, “Symmetric multiprocessing”,
http://en.wikipedia.org/wiki/Symmetric_multiprocessing.
[11] Wikipedia, “Crossbar switch”,
http://en.wikipedia.org/wiki/Crossbar_switch.
[12] Wikipedia, “Mesh network”,
http://en.wikipedia.org/wiki/Mesh_network.
[13] Like Yan, Qingsong Shi, Tianzhou Chen, Guobing Chen, “An On-chip Communication Mechanism Design in the Embedded Heterogeneous Multi-core Architecture”, IEEE International Conference on Networking, Sensing and Control, 2008.
[14] Robert Baumgartl, Hermann Härtig, “Efficient Communication Mechanisms for DSP-based Multimedia Accelerators”, Proceedings of ICSPAT’97, September, 1997.
[15] Like Yan, Qingsong Shi, Tianzhou Chen, Guobing Chen , “Design of a Message-based Inter-process Communication Method for Multi-CPU Embedded Systems”, First International Workshop on Education Technology and Computer Science, 2009.
[16] Jih-Ching Chiu, Kai-Ming Yang, and Mu-Chi Chang , “The Rendezvous Mechanism for the Multi-Core AMBA System”, International Conference on Parallel Processing Workshops, 2009.
[17] TMS320DSC25,
http://www.rockbox.org/wiki/pub/Main/ArchosAV100Port/tms320dsc25pb.pdf,
2003.
[18] Jian-Hong Liu, “A Micro-Kernel for Embedded Systems with Heterogeneous Multiprocessors”, Master Thesis, National Cheng Kung University, 2004.
[19] TMS320DM6446(DaVinci),
http://focus.ti.com/docs/prod/folders/print/tms320dm6446.html, February 2009.
[20] 趙勇、袁譽樂、丁銳、DAVINCI技術原理與應用指南,江蘇東南大學出版社,2008年1月。
[21] OMAP, http://www.ti.com.tw/product/omap/, February 2009.
[22] Bodhisattwa Mukherjee, Karsten Schwan, Prabha Gopinath, “A Survey of Multiprocessor Operating System Kernels”, Technical Report, Georgia Institute of Technology, College of Computing, 1993.
[23] Anand Tripathi, Neeran Karnik, “Trends in Multiprocessor and Distributed Operating System Designs”, The Journal of Supercomputing, vol.9, no.1/2, pp 23-49, 1995.
[24] Andrew Stuart Tanenbaum, “Modern Operating Systems”, 2nd edition, Prentice Hall, 2001, ISBN 0130926418.
[25] Jean J. Labrosse, “MicroC/OS-II : The Real-Time Kernel “, 2nd edition , CMP Books, 2002, ISBN 1-55860-596-7.
[26] SUN’s OpenSPARC,
https://www.opensparc.net/pubs/t2/docs//OpenSPARCT2_Core_Micro_Arch.pdf, February 2009.
[27] IBM’s Cell BE,
http://www.ibm.com/developerworks/power/cell/documents.html?S_TACT=105AGX16&S_CMP=LP, February 2009.
[28] Matthew Scarpino, “Programming the Cell Processor: For Games, Graphics, and Computation”, Prentice Hall, 2008, ISBN 0136008860.
[29] Håkan Sundell, Philippas Tsigas, “NOBLE: A Non-Blocking Inter-Process Communication Library”, Technical Report in Computing Science at Chalmers University of Technology and Göteborg University, 2002.
[30] Chi-Lun Chen, “MPEG-4 Decoder Based on TI OMAP Dual-core Platform”, Master Thesis, National Cheng Kung University, 2006.
[31] Wikipedia, “Cell_microprocessor”,
http://en.wikipedia.org/wiki/Cell_microprocessor.
[32] Jim Turley, “Cell處理器開啟多重處理架構的新紀元”, 電子工程專輯,
http://www.eettaiwan.com/ART_8800426546_622964_NT_45e827d1.htm.
[33] ITRI, “Eclipse SDK V3.1.0”, 2009.
[34] ITRI, “PAC教學平台快速上手手冊”, 2009.
[35] ITRI, “PACDSP V3 Software Developer’s Manual Volume 3: Programming Guide”, 2009.
[36] ITRI, “EMDMA Controller使用者手冊”, 2009.
[37] Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman, ”Linux Device Driver”, 3rd edition, O'Reilly Media, February 2005.
[38] Syu-Jiang Ou, “The Design and Implementation of a Dataflow Kernel in Heterogeneous Multiprocessor Environment”, Master Thesis, National Cheng Kung University, 2005.