跳到主要內容

臺灣博碩士論文加值系統

(3.236.124.56) 您好!臺灣時間:2021/07/28 09:05
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:蕭光哲
研究生(外文):Kuang-tse Hsiao
論文名稱:嵌入式系統之客製化動態記憶體管理
論文名稱(外文):Customized Dynamic Memory Management for Embedded Systems
指導教授:陳敬陳敬引用關係
指導教授(外文):Jing Chen
學位類別:碩士
校院名稱:國立成功大學
系所名稱:電腦與通信工程研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2009
畢業學年度:97
語文別:中文
論文頁數:106
中文關鍵詞:動態記憶體管理嵌入式系統微核心
外文關鍵詞:dynamic memory managementmicrokernelembedded systems
相關次數:
  • 被引用被引用:2
  • 點閱點閱:301
  • 評分評分:
  • 下載下載:81
  • 收藏至我的研究室書目清單書目收藏:0
越來越多的應用軟體被移植至嵌入式系統行動平台上,例如多媒體應用或是網路服務等等相關應用。這些應用軟體在執行期間由於有許多無法預期的資料產生,因此相當依賴動態記憶體的使用。在一般系統中如桌上型電腦,許多一般類型之記憶體管理機制即可滿足上述所說明之應用。但對於嵌入式系統,由於硬體資源相對缺乏與有較多限制,對於大量動態記憶體需求之應用可能無法順利執行,且一般類型之記憶體管理機制也不一定可以直接移植至嵌入式系統上。因此客製化動態記憶體管理機制的提供成為一個更好的解決方案。藉由不同的應用需求提供合適的動態記憶體管理機制使有限資源之嵌入式系統可被應用於不同情況,特別是針對有大量動態記憶體需求之應用。當客製化動態記憶體管理可被整合進軟體移植或是開發過程時,將可以低成本獲得更有效率地使用記憶體並獲得更好的執行效能。
客製化動態記憶體管理機制的實現分成兩部份:多樣化之動態記憶體管理機制與協助選擇記憶體管理機制之工具。藉由多種類型動態記憶體管理機制,應用軟體可依據其需求而選用較適合之動態記憶體管理機制。協助選擇記憶體管理機制工具依據應用程式對於動態記憶體需求情形,系統化地選擇合適之動態記憶體管理機制。因此,協助選擇記憶體管理機制工具必須先取得應用之動態記憶體需求相關資訊,才能依據此特性協助選擇合適動態記憶體管理機制。
本論文於Zinix微核心嵌入式系統實作客製化動態記憶體管理。除了在提供給應用程式之函數庫中有多種動態記憶體管理機制,更針對作業系統管理實體記憶體部分提供多種管理方式。且為了協助應用程式選擇合適之記憶體管理機制,本論文之實作包含應用程式記憶體使用情形之分析工具以協助應用程式選取合適之記憶體管理者。經實際於TI DaVinci開發板上使用H.264 Decoder與計算3D貼圖工具測試驗證本論文實作於嵌入式系統平台之成果,達到預期之效果,藉由記憶體之使用更有效率縮短測試程式之執行時間。
More and more applications for multimedia or for network services are ported to embedded systems. These applications usually depend on dynamic memory usage for their executions due to the inherent unpredictability in the processing. Many general dynamic memory management policies and their implementations are available to achieve good performance in general purpose systems. However, using a common and general purpose memory management mechanism might not be suitable for embedded system platforms due to resource constraint. Instead, customized dynamic memory management would be a suitable solution. When customizing dynamic memory management is integrated into the porting process or development process, it would be an effective approach to produce efficient memory usage and better performance at low cost.
This thesis presents the design and implementation of customized dynamic memory management for embedded system platforms. There are two parts in the customized dynamic memory management: configurable dynamic memory management mechanisms for applications and supporting tools which help select memory management mechanisms. By providing several dynamic memory management mechanisms, application developer may choose suitable management mechanisms based on the pattern of memory requests. The supporting tools provide information on memory usage by collecting data of memory requests at run time and analyzing the collected data. The data are collected from both application side and operating system side. Hence, the choice on suitable dynamic memory management mechanism might, at least, achieve balance between these two aspects and better performance.
The customized dynamic memory management of this thesis is implemented in the Zinix micro-kernel operating system running on TI DaVinci EVM. The implementation includes memory management policies in function library to be used by application software, and page management policies in operating system. To help choose suitable memory management policy for application software, a tool which analyzes memory usage of application software and suggests suitable choice, is implemented. The implementation is tested with H.264 decoder software and predicted 3D objects rendering software. The results are promising as predicted and the efficient memory usage makes the test programs execute faster.
第1章 簡 介 1
1.1 嵌入式系統 1
1.2 記憶體管理 2
1.2.1 靜態記憶體 2
1.2.2 動態記憶體管理 2
1.3 客製化動態記憶體管理 4
1.4 問題描述 5
1.5 研究動機 8
1.6 研究方法 9
1.7 論文組織 10
第2章 相關研究 11
2.1 記憶體管理機制 11
2.1.1 循序適合(Sequential Fits) 11
2.1.2 分離閒置串列(Segregated Free List) 12
2.1.3 夥伴系統(Buddy Systems) 13
2.1.4 位元對應適合(Bitmapped Fits) 15
2.1.5 厚片配置(Slab Allocation) 15
2.1.6 討論 16
2.2 特別記憶體管理機制 17
2.3 分析應用程式與提供多記憶體管理機制之方式 18
2.3.1 C++語言特性與物件導向應用-Mixin 18
2.3.2 分析應用程式與選擇合適之記憶體管理機制 19
2.3.3 討論 19
2.4 作業系統之記憶體管理 20
2.4.1 Linux 20
2.4.2 Windows CE 22
2.4.3 μC/OS-II 22
2.4.4 討論 23
2.5 函數庫之記憶體管理 24
2.5.1 uClibc 24
2.5.2 Newlib 25
2.5.3 diet libc 26
2.5.4 討論 26
2.6 總結 27
第3章 客製化記憶體管理設計與實作 29
3.1 記憶體管理架構 29
3.2 作業系統之頁面管理 30
3.3 函數庫之區塊管理 33
3.4 記憶體管理選擇機制 35
3.5 實作環境 38
3.5.1 硬體平台 38
3.5.2 軟體環境 39
3.6 客製化記憶體管理之實作內容 43
3.6.1 作業系統之頁面管理者 44
3.6.2 函數庫之閒置區塊管理者 47
第4章 客製化記憶體管理機制分析與選擇 49
4.1 客製化記憶體需求行為模式分析與選擇之設計與實作 50
4.1.1 擷取記憶體需求行為訊息 50
4.1.2 分析記憶體需求行為所需擷取之資料 52
4.1.3 記憶體需求行為資料擷取之方法 53
4.1.4 分析擷取資料-函數庫之閒置區塊管理 55
4.1.5 分析擷取資料-作業系統之頁面管理 63
4.1.6 選擇合適記憶體管理機制之方法 64
4.2 客製化記憶體管理機制之操作 67
4.2.1 客製化記憶體管理分析與選擇操作流程 67
4.2.2 應用程式記憶體需求行為分析之步驟 69
4.2.3 擷取應用程式記憶體需求行為之過程 70
4.2.4 應用程式閒置區塊與頁面使用情形分析之流程 73
4.2.5 客製化記憶體管理方式之選擇 76
第5章 效能分析 77
5.1 測試環境 77
5.2 測試方法 79
5.3 測試結果1 82
5.3.1 簡介 82
5.3.2 記憶體使用情形 82
5.3.3 客製化之效能比較 85
5.4 測試結果2 88
5.4.1 簡介 88
5.4.2 記憶體使用情形 89
5.4.3 客製化之效能比較 93
5.5 分析與討論 97
第6章 結論與未來方向 101
6.1 結論 101
6.2 未來方向 102
參考文獻 103
[1]“ARM Architecture Overviews,” http://www.arm.com/products/CPUs/index.html.
[2]“ARM Architecture Version 6,” http://www.arm.com/pdfs/ARMv6_Architecture.pdf.
[3]“Intel x86 Based Architecture,” http://www.intel.com/products/processor/index.htm.
[4]“MIPS Processor Overviews,” http://www.mips.com/products/processors/.
[5]“TMS320DM644x Digital Media Processors,” http://focus.ti.com.cn/cn/lit/ml/sprt411b/sprt411b.pdf.
[6]A. Silberschatz, P. B. Galvin, G. Gagne,“Operating System Concepts,”7th edition, John Wiley & Sons, 2003.
[7]C. Poucet, S. Mamagkakis, D. Atienza, and F. Catthoor, “Systematic Intermediate Sequence Removal for Reduced Memory Accesses,” Proceedings of the 10th International Workshop on Software & Compilers for Embedded Systems, pp. 51-60, 2007.
[8]D. Atienza, S. Mamagkakis, F. Catthoor, J. M. Mendias1, and D. Soudris, “Modular Construction and Power Modeling of Dynamic Memory Managers for Embedded Systems,” Fourteenth International Workshop on Power and Timing Modeling, Optimization and Simulation, pp. 510-520, 2004.
[9]D. Atienza, S. Mamagkakis, F. Catthoor, J. M. Mendias, and D. Soudris, “Reducing Memory Accesses with a System-Level Design Methodology in Customized Dynamic Memory Management,” Workshop on Embedded Systems for Real-Time Multimedia, pp. 93-98, 2004.
[10]D. Atienza, S. Mamagkakis, F. Catthoor, J. M. Mendias, and D. Soudris, “Dynamic Memory Management Design Methodology For Reduced Memory Footprint In Multimedia And Wireless Network Applications,” Proceeding of Design, Automation and Test in Europe Conference and Exhibition, pp. 532-537, 2004.
[11]D. P. Bovet and M. Cesati, “Understanding the LINUX KERNEL,” 3rd edition, O’Reilly, 2005.
[12]“diet libc,” http://www.fefe.de/dietlibc/.
[13]“Dong Lea Memory Allocator,” http://gee.cs.oswego.edu/dl/html/malloc.html.
[14]E. D. Berger, B. G. Zorn, and K. S. McKinley, "Composing High-Performance Memory Allocators," In Proceedings of the 2001 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 114-124, 2001.
[15]“GNU C Library,” http://www.gnu.org/software/libc/.
[16]J. Bonwick, “The Slab Allocator: An Object-Caching Kernel Memory Allocator,” In USENIX Summer, pp. 87-98, 1994.
[17]J. J. Labrosse, ”MicroC/OS II: The Real Time Kernel,” CMP Books, 2002.
[18]“H.264/AVC Software Coordination,” http://iphome.hhi.de/suehring/tml/.
[19]“Linux,” http://www.linux.org/.
[20]M. Gorman, “Understanding the Linux Virtual Memory Manager,” Prentice Hall PTR, 2004.
[21]M. Leeman, G. Deconinck, V. De Florio, D. Atienza, J. M. Mendias, C. Ykman, F. Catthoor, and R. Lauwereins, “Methodology For Refinement And Optimization Of Dynamic Memory Management For Embedded Systems In Multimedia Applications,” IEEE Workshop on Signal Processing Systems, pp. 369-374, 2003.
[22]M. S. Johnstone, and P. R. Wilson, “The Memory Fragmentation Problem: Solved?” International Symposium on Memory Management Proceedings of the First International Symposium on Memory Management, pp. 26-36, 1998.
[23]“Meteor,” http://sourceforge.net/projects/meteor.
[24]“Newlib,” http://sourceware.org/newlib/.
[25]Wikipedia, “Newlib,” http://en.wikipedia.org/wiki/Newlib.
[26]P. R. Wilson, M. S. Johnstone, M. Neely, and D. Boles, “Dynamic Storage Allocation, A Survey and Critical Review,” International Workshop on Memory Management, pp. 1-116, 1995.
[27]Spectrum Digital Inc., “DaVinci EVM Technical Reference,” http://c6000.spectrumdigital.com/davincievm/revf/files/DaVinciEVM_TechRef.pdf, 2007.
[28]“μC/OS-II,” http://www.micrium.com/products/rtos/kernel/rtos.html.
[29]“uCLibc,” http://www.uclibc.org/.
[30]“Windows CE,” http://www.microsoft.com/windowsembedded/zh-tw/products/default.mspx.
[31]“Windows CE 編程實驗(第四章 儲存管理),” http://blog.csdn.net/tanbin6833232/archive/2009/01/08/3732500.aspx
[32]Y. Smaragdakis, and D. Batory, “Mixin-Based Programming in C++,” Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers, pp. 163-177, 2000.
[33]戴顯權, 陳瀅如, 王春清, “多媒體通訊,”3rd edition, 紳藍出版社, 2006.
[34]洪文彬, “嵌入式微核心系統之設計與實作,” 碩士論文, 國立成功大學, 2005.
連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top