- 9
- 0
- 约6.88千字
- 约 6页
- 2016-08-15 发布于重庆
- 举报
CMP操作系统技术
运“芯”帷幄 —CMP的操作系统技术单芯片多处理器(CMP),特别是在一个芯片上集成了多个相同通用处理器的单芯片对称多处理器(同构CMP)的发展,是上世纪90年代以来集成电路制造工艺的进步与微处理器体系结构的发展所带来的必然发展方向。和目前在服务器领域广泛采用的对称多处理器(Symmetric Multi-Processor, SMP)结构类似,在CMP系统中,位于同一个芯片内部所有处理器内核以平等的身份参与任务调度和中断处理,共享内存和外部设备,而且也可以共享片内的 (部分或全部)高速缓存。CMP的结构相对简单,可以直接使用现有的处理器内核,因此开发周期与成本相对较低,结构简单带来的另一个好处是更易获得高的主频。由于多个处理器集成在 一块芯片上,且共享cache,微处理器之间的通信延迟会明显降低,有利于提高系统的整体性能。因此,CMP具有良好的发展前景和广泛的应用空间,众多著名大学、科研机构和商业公司都展开了广泛而积极的研究。而要想真正发挥CMP的优势,软件,特别是操作系统和编译工具等系统软件的支持至关重要,没有这些软件,CMP将处于“空转”状态。因此,每一个CMP系统都需要为其量身打造的系统软件。CMP对操作系统提出的挑战系统软件对于CMP广泛、深入的应用有重要的意义,这里我们讨论操作系统。操作系统是计算机系统的基本系统软件,在整个计算机系统中处于核心地位,负责控制、管理计算机的所有软件、硬件资源,是惟一直接和硬件系统打交道的软件,是整个软件系统的基础部分,同时还为计算机用户提供良好的界面。对于普通用户而言,操作系统是一个资源管理者,通过它提供的系统命令和界面操作等工具,以某种易于理解的方式完成系统管理功能,有效地控制各种硬件资源,组织自己的数据,完成自己的工作并和其他人共享资源。对于程序员来讲,操作系统提供了一个与计算机硬件等价的扩展或虚拟的计算平台。操作系统提供给程序员的工具除了系统命令、界面操作之外,还有系统调用,系 统调用抽象了许多硬件细节,程序可以以某种统一的方式进行数据处理,程序员可以避开许多具体的硬件细节,提高程序开发效率,改善程序移植特性。并行是计算机科学与技术的重要分支之一,其核心思想是通过任务的合理划分和分配,使得多个处理器可以同时执行一个或多个任务,以达到系统整体计算能力的大幅度提升。CMP的意义在于能够提供任务并行执行的一个新思路,支持在一个芯片内的多个处理器内核之间任务的划分和分配(也就是调度),而任务的调度则需 要操作系统来完成。CMP的发展对操作系统提出了新的挑战。首先,如何合理组织、调度任务才能最大程度地发挥CMP结构的性能?其次,如何保持操作系统的外部接口的相对稳定?对于一般用户而言,大家希望的是平滑的过渡,一方面界面最好和以前的操作系统完全相同,另一方面以前能用的应用程序最好还能够不做任何修改就直接在 CMP的机器上直接运行,也就是说CMP对于用户来讲最好是透明的,这需要操作系统在用户界面和编程接口方面都保持不变。如何更好地组织和调度任务以便将CMP结构的性能发挥到极致是核心的问题,这是人们对CMP最大的期望。要解决这个问题,需要软硬件共同协作,从任务调度、中断分配、资源共享等几个方面入手,硬件方面则要求CMP系统提供全新的同步与互斥、中断分配以及CPU内核之间的中断等机制。支持CMP操作系统的关键技术目前国际上对于CMP的研究还处于探索阶段,相关操作系统也处在积极研究时期。研究、分析和借鉴支持CMP操作系统的关键技术对于我们认识、理解和设计用于CMP的操作系统有着非常重要的意义,这里,我们简单介绍支持CMP操作系统的引导和初始化、调度,中断处理和同步、互斥技术。?系统引导和初始化操作系统的引导和初始化是指从系统加电到能够在多个处理器内核之间平等地进行任务调度的过程,这一过程是建立平等调度实施的基础,对于整个系统的运行具有重要意义。虽然说对称多处理器系统中,各处理器可以平等地并行工作,但这是建立在系统有多个可并行执行任务的基础之上,而在引导和初始化过程中,由于很多工作只能串行地执行,所以在这个阶段处理器内核是不平等的,是有主次之分的。系统加电之后,受到硬件控制,只启动其中一个处理器,称为主CPU或者引导处理器(Booting Processor, BP),而其他处理器,称为次CPU或者应用处理器(Application Processor, AP),则处于停机等待状态。加电启动之后,主CPU跳转到特定的内存地址,通常映射到只读存储器,这里保存着整个计算机的引导程序,其任务是进行简单的硬件检测、初始化环境参数、将操作系统内核装载到内存中,跳转到操作系统的起始地址并开始执行。这段引导过程完全由BP完成。进入操作系统内核之后,B
原创力文档

文档评论(0)