多核计算机已成主流.doc_第1页
多核计算机已成主流.doc_第2页
多核计算机已成主流.doc_第3页
多核计算机已成主流.doc_第4页
多核计算机已成主流.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多核计算机已成主流一、多核结构由于人类的贪婪本性,我们对计算机芯片的速度总是感到不满意。英特尔公司一直在努力提升CPU的时钟频率,其最新最快的奔腾芯片时钟频率已经达到了令人咂舌的3.8GHZ。但这时芯片的散热成为了一个不可逾越的障碍,因此英特尔公司只得宣布停止4GHZ新产品的计划。质量上不行,数量上补。在今天,芯片厂商已经将将来压宝在多处理器和多核上面。多处理器指的是在一个体系结构上放置多个CPU,而多核则是指在同一块芯片(CPU)上放置多个核(core),即执行单元。为简单起见,人们现在将多处理器和多核结构统称为多核结构。多核和多CPU的区别是多核结构更加紧凑,成本在同等执行单元数量的情况下更便宜、功耗更低。随着AMD和Intel在多核技术上的大力研究和推进,多核技术已经从双核推进到4核、8核甚至更高。多核计算机的出现,打破了单核环境下的许多操作系统设计的正确性或可靠性。为了适应多核环境所提出的新要求,也为了更好地利用多核技术提供的新方便,操作系统需要作出相应调整。要讨论多核环境下操作系统所做的调整,首先需要了解单核环境和多核环境的不同之处。在X86体系结构下,多处理功能芯片经过了以下四个演变阶段:(1) 多处理器结构即一条总线上挂载多个处理器。在多个CPU的情况下,以CPU之间的关系不同可以分为对称多处理器结构(SMP结构,较普遍)和非对称多处理器结构(AMP结构)。(2) 超线程结构在一台电脑里安装多个CPU虽然提升了计算机的性能,但是付出的代价是高昂的成本和巨大的功耗。而在实际中,基于很多原因,CPU的执行单元并没有被充分利用。因此Intel提出了超线程技术来让一个CPU同时执行多重线程,从而提高CPU效率和用户满意度。超线程技术是在一个CPU上同时执行的多个程序共同分享该CPU内的资源,理论上像两个CPU在同一时间执行两个线程。超线程技术可在同一时间里,让应用程序使用芯片的不同部分。为了实现这种技术,需要在处理器上多加入一个逻辑处理单元指针。需用注意的是,含有超线程技术的CPU需要芯片组和软件支持,才能比较理想地发挥该项技术的优势。操作系统如Windows XP、Windows 2003、Linus2.4.x以后的版本均支持超线程技术。虽然采用超线程技术能同时执行两个线程,但它并不像两个真正的CPU那样,每个CPU都有具有独立的资源。当两个线程都需要某一个资源时,其中一个要暂时停止,并让出资源,直到这此资源闲置后才能继续。因此超线程的性能并不等同于两个CPU的性能。(3)多核结构有什么办法能同时克服多CPU和超线程的缺点呢?就是多核结构。多核结构就是在一个CPU里面布置两个执行核,即两套执行单元,如ALU、FPU和L2缓存等。而其他部分则两个核共享。这样由于使用的是一个CPU,其功耗和单CPU一样。由于布置了多个核,其指令级并行将是真正的并行,而不是超线程的半并行。(4)多核超线程结构而在多核情况下,我们也可以使用超线程技术,从而形成多核超线程技术。即每个物理执行核里面又分解为两个或多个逻辑执行单元。二、多核环境下操作系统的修正多核的出现对软件的设计产生了巨大的影响。例如,由于多CPU或者多个执行核的存在,我们在单核环境下的原语操作将不能适应,而需要修正。除此之外,进程的调度也是一个大大需要修改的地方,因为现在进程不只有一个执行核可以选择了。内存管理的变化是多核环境带来的另外一个重要变故。此外,能耗优化也是多核环境下必须考虑的问题:如果一个核上没有执行程序,是否需要让这个核停止工作?1 多核环境下的进程同步在单核环境下,一个时候只可有一个程序在执行。而在多核环境下,由于多个执行核或CPU的存在,多个程序可以真正的同时执行。因此,多核环境下的进程同步与单核环境下将有着很大不同。为了保证程序执行的正确性,我们需要采取措施保证一段程序的执行是原子操作。不过这里的原子操作与我们单核环境下的原子操作有所不同:它必须保证跨越CPU的原子性。即一个CPU执行某段程序时,得让另一个CPU不执行该程序。这种保证的实现,需要硬件的支持。2多核环境下的进程调度对于进程和线程来说,多核环境与单核环境的最大不同是可以有多个线程或进程真正地同时执行,而在单核情景下,这个同时不是真正的物理同时,而是虚拟的逻辑同时。就是这个从逻辑同时到物理同时的变化,使得多核环境下的调度与单核环境下的调度有所不同。在多核环境下,操作系统的任务分配和调度是目前研究的一个研究热点。在这个新环境中,操作系统需要考虑:(1) 新的任务给谁(2) 每个核如何调度它上面的任务(3) 是否采用一致的调度算法(4) 一个进程是否始终在一个核上运行(5) 如何调度实时任务和普通任务(6) 如何保证负载均衡,即如何保证每个核的工作量比较均衡(7) 负载不均衡是否迁移任务(8) 采用单独还是共同的就绪队列三、多核系统的性能多核真的能提高计算机的性能吗?答案是不一定。对于多核来说,每个核可以独立的执行任务。而这些核之间是否可以协调和在何种程度上进行协调就决定了多核系统的性能提升到底有多少。事实上,多核真的不一定能提升你的软件执行效率。多核技术到底是否带来益处完全取决于客户的应用是什么。如果说是解微分方程,请使用多核计算机,如果是进行海量信息筛选和数据挖掘,则最好不要使用多核计算机。即使是可以利用多核技术的应用,其利用程度也有赖于程序的编写方式。只有在程序编写时就充分考虑到多核的结构特点的软件才能最大限度地从多核技术获得益处。而充分利用多核结构编写并发度高的程序却不是很多人能够胜任的一个任务。当然了,即使我们写不出并发程序,也并不意味着多核技术就没有好处。至少,我们可以在不同的核上面跑不同的应用。当然,这些不同应用之间的联系最好别太多。造成多核技术这个问题的核心是所谓的内存墙。虽然CPU的速度不断提升,但其访问数据的速度却没有同步提升。虽然核数不断增加,但从这些核到计算机其余部件的链接并没有同步增加,这样,保持所有CPU获得充足的数据就是一个大问题。四、关于多核操作系统WindowsNT和Linus2.0之后的Windows系列、Linus操作系统都可以支持多核,但目前还没有专门针对CMP(单芯片多处理器)体系结构的多核操作系统,缺乏成熟的CMP调度算法。虽然Windows 和Linus可作为CMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论