簡易檢索 / 詳目顯示

研究生: 黃冠穎
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章 緒 論 1 1.1 研究背景 1 1.2 單晶片多核心處理器架構 3 1.3 行程溝通機制 4 1.4 研究動機與目的 5 1.5 章節規劃 6 第2章 相關研究 7 2.1 Linux作業系統之行程溝通機制 7 2.2 Windows作業系統之行程溝通機制 11 2.3 單晶片多核心處理器架構之行程溝通機制 12 2.3.1 同質性多核心處理器之行程溝通機制 13 2.3.2 異質性多核心處理器之行程溝通機制 14 2.4 實例探討 15 2.4.1 德州儀器公司DaVinci之行程溝通機制 15 2.4.2 Cell處理器之行程溝通機制 18 2.5 討論 22 第3章 行程溝通機制設計 24 3.1 行程溝通機制架構與組成 24 3.1.1 跨匯流排共享記憶體之資料傳輸 26 3.1.2 直接記憶體存取(DMA)之資料傳輸 26 3.1.3 硬體中斷之訊息傳遞機制 27 3.2 共享記憶體管理機制 29 3.3 行程溝通管理者 31 3.4 訊息佇列儲存管理機制 33 3.5 訊息傳遞程序 35 3.5.1 非等待式訊息傳遞(Non-Blocking Send) 36 3.5.2 等待式訊息傳遞(Blocking Send) 38 3.6 訊息接收程序 39 3.6.1 非等待式訊息接收(Non-Blocking Receive) 40 3.6.2 等待式訊息接收(Blocking Receive) 42 3.7 系統運作說明 42 第4章 行程溝通機制實作 44 4.1 實作環境 44 4.1.1 硬體介紹 44 4.1.2 軟體介紹 49 4.2 跨匯流排共享記憶體資料傳輸之實作 49 4.3 直接記憶體存取(DMA)資料傳輸之實作 52 4.4 訊息佇列儲存管理機制之實作 53 4.5 行程溝通管理者之實作 58 4.6 訊息傳遞實作 60 4.6.1非等待式訊息傳遞 60 4.6.2等待式訊息傳遞 62 4.7 訊息接收實作 65 4.7.1非等待式訊息接收 65 4.7.2等待式訊息接收 66 第5章 功能測試與效能分析 69 5.1 測試環境 69 5.2 功能性測試 69 5.2.1 匯流排共享記憶體之資料傳輸驗證 69 5.2.2 直接記憶體存取之資料傳輸驗證 71 5.2.3 多核心間行程溝通驗證 72 5.2.3.1 多核心作業系統訊息傳遞與接收驗證 72 5.2.3.2 共享記憶體管理機制驗證 75 5.3 系統效能分析 78 5.3.1 共享記憶體與直接記憶體存取資料傳輸之效能分析 78 5.3.2 訊息佇列儲存管理機制之效能分析 82 5.3.3 訊息傳遞與接收之效能分析 84 第6章 結論與展望 89 6.1 結論 89 6.2 展望 90 參考文獻 91 附錄 A 95 自述 107

    [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.

    下載圖示 校內:2013-09-10公開
    校外:2013-09-10公開
    QR CODE