200 likes | 381 Views
嵌入式操 作系统研究简介 (部分举例). 陈香兰 2008.3.5. 提纲. 嵌入式操作系统的多样性 嵌入式内存扩容技术举例. 嵌入式市场的多样性导致嵌入式操作系统的多样性. 嵌入式 Internet 应用. 信息家电. 军事方面. 嵌入式微处理器. 1000 多种硬件处理器 , MPU 、 MCU 、 DSP 、 SOC ARM RISC ARM TMS320 DSP TI Trimedia Philips StrongARM Intel, ru SA1110 ( 已被 PXA250 替代) Xscale
E N D
嵌入式操作系统研究简介(部分举例) 陈香兰 2008.3.5
提纲 • 嵌入式操作系统的多样性 • 嵌入式内存扩容技术举例
嵌入式市场的多样性导致嵌入式操作系统的多样性嵌入式市场的多样性导致嵌入式操作系统的多样性 • 嵌入式Internet应用 信息家电 军事方面
嵌入式微处理器 • 1000多种硬件处理器,MPU、MCU、DSP、SOC • ARM RISC • ARM • TMS320 DSP • TI • Trimedia • Philips • StrongARM • Intel, ru SA1110 (已被PXA250替代) • Xscale • Intel,ARM V5TE兼容产品,如PXA250 • MIPS RISC • MIPS • DragonBall • Motorala
典型的嵌入式操作系统 • 近200种操作系统,VxWorks,QNX,WinCE,Palm OS • 面向SOC的RTOS:Symbian的Epoc、ATI的Nucleus、Express logic的Threadx • 开放源码的OS:uCLinux,uC/OS,RTEMS • 典型性能指标: • 内核大小:几K~几百K • 调度时间片:几十ms • 实时进程/线程响应时间:20~40us? • 普通进程响应时间:20us~几百ms?
嵌入式操作系统的多样性 • 多地址空间 vs.单地址空间 • 有MMU vs. 没有MMU • 多进程 vs. 单进程多线程 • 多用户 vs. 单用户 • 模块化+动态加载 vs. 静态联编 • 标准C库支持 vs. 部分C库支持 • 是否可配置 • 是否可移植 • 是否易编程 • 是否支持实时调度 • 低功耗
嵌入式内存压缩技术研究 • L. Yang, R. P. Dick, H. Lekatsas, and S. Chakradhar, “CRAMES: Compressed RAM for Embedded Systems,”Proc. Int. Conf. Hardware/Software Codesign and System Synthesis, pp. 93–98, Sep. 2005. • Notes: NEC used this technology in their cellphones in June 2007. • Operating system technique to double usable memory in embedded systems without changing applications, or hardware, and with little or no performance or power penalty. • 已获专利
motivation: • 内存是稀缺资源,没有硬盘提供交换区 • 在嵌入式环境中,加大内存 • 增加成本 • 增加体积、功耗 • 硬件设计赶不上应用的变化 • 解决思路 • 不增加硬件、不改变硬件 • 在现有内存容量的基础上,动态增加有效的内存容量 • 方法: • 压缩,利用交换技术和缺页技术 • 限制:需要MMU的支持
Main problems • Does the technique allow existing applications to execute without performance and energy consumption penalties? • Can new applications withworking data sets that were originally too large for physical memory be automatically made to execute smoothly? • What compression algorithm should be used, and when should compression and decompression be performed? • How should the compressed RAM area bemanaged to minimize memory overhead? • How should the technique be evaluated for use in embedded systems?
Methods • Take advantage of the operating system (OS) virtual memory swapping mechanism • Multiple compression techniques and memory allocation methods were experimentally evaluated; • Bzip2,zlib default, zlib level1, zlib level9, RLE, LZRW-1A, LZO • Dynamically adjust the size of the compressed area during operation based on the amount of memory required • Implementation • a loadable Linux kernel module • This technique can easily be ported to other modern OSs.
不带MMU的内存扩展技术 • L. Bai, L. Yang, and R. P. Dick, “Automated Compile-Time and Run-Time Techniques to Increase Usable Memory in MMU-Less Embedded Systems,” in Proc. Int. Conf. Compilers, Architecture & Synthesis for Embedded Systems, pp. 125–135, Oct. 2006. • Notes: Compiler-assisted on-line data compression technique permits substantial increases in usable memory on MMU-less embedded systems, such as sensor network nodes.
motivation: • 内存是稀缺资源,没有MMU • 分析: • What MMU does? • 思路: • Software MMU (MEMMU) • 压缩 • 方法: • Compile-time compress • Runtime uncompress • 适用于: • 内存非常小的系统,而且不带MMU • 例如:无线传感器
Main problem: • Transparent to user • Intelligently determine which pages to compress and when to compress them to minimize performance and energy penalties. • This is particularly challenging for low-end embedded systems without MMUs. • Control the organization of compressed and uncompressed memory regions and the migration of data between them to maximize the increase in usable memory while minimizing performance and energy penalties. • Design a compression algorithm that has • low performance overhead, • low memory requirements, • and a good compression ratio
method • MEMMU divides physical RAM into three regions: • the reserved region, • OS,MEMMU • the compressed region, • application • and the uncompressed region. • Application • the size of each region is decided by • compile-time analysis of application memory requirements • and estimated compression ratio.
The application view • With MEMMU Software-maintained
Handle-based Data Access • Virtual address page num • Mapping array • If maps to uncompressed region, … • If has not been accessed before (no mapping) • Allocate an uncompressed page, and map • May be need replacement • If maps to compressed region • Decompressed, move, new map • May be need replacement
To be transparent: • Those routines runtime library • Need compiler transformations • 换入/换出抖动? • 压缩区域,页面大小不一致碎片?
交换技术和缺页技术 虚拟空间 物理内存 交换区 换入 换出 缺页 MMU,TLB,页表