资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
多核程序设计多核处理器与多线程技术的研究 一、多核处理器的基本架构 二、操作系统对多核处理器的支持方法 三、多线程简介 四、多核多线程处理器简介一、多核处理器的基本架构一、多核处理器的基本架构 背景:随着芯片制成工艺的不断进步,从体系结构来看,传 统的处理器体系结构技术已面临瓶颈,晶体管集成度已经过 亿,很难通过提高主频来提升性能;从应用需求来看,日益 复杂的多媒体、科学计算、虚拟化等多个应用领域都呼唤更 为强大的计算能力。在这样的背景下,各主流处理器厂商纷 纷将产品战略从提高芯片的时钟频率转向多线程、多内核。1.1.多核芯片多核芯片 发展近况:继双核之后,Intel已经在2006年11月推出了4核 产品,AMD也推出了代号为巴塞罗那的4核处理器。目前, 多核处理器的推出越演越烈,在推出了代号为Niagara的8核 处理器之后,Sun公司还计划推出Niagara2处理器。 Intel近 日内声称,明年即将研制推出10核以上的处理器产品。 定义:片上多核处理器(Chip Multi-Processor,CMP) 就是将多个计算内核集成在一个处理器芯片中,从而提 高计算能力。一、多核处理器的基本架构一、多核处理器的基本架构2.2.片上多核处理器体系结构片上多核处理器体系结构 分类:按计算内核是否对等,CMP可分为同构多核和异 构多核。计算内核相同,地位对等的称为“同构多核” ,现在Intel和AMD主推的双核处理器就是同构多核的 ;计算内核不同,地位不对等的称为“异构多核”,异 构多核采用“主处理器协处理器”的设计,IBM、 SONY等联手推出的Cell处理器就是异构多核处理器的 典范。 硬件结构:由于CMP处理器的各CPU核心执行的程序之 间有时需要进行数据共享与同步,故硬件结构必须支持 核间通信。一、多核处理器的基本架构一、多核处理器的基本架构2.2.片上多核处理器体系结构片上多核处理器体系结构 总线共享cache结构:是指每个CPU内核拥有共享的二 级或三级cache,用于保存比较常用的数据,并通过连 接核心的总线进行通信。 基于片上互连的结构:指每个CPU内核拥有独立的处理 单元和cache,各个CPU核心间通过交叉开火或片上网 路等方式连接在一起,各个CPU核心间通过消息通信。 面向多核体系结构的操作系统调度是目前多核软件的一个热点, 其中主要热点有:程序的并行研究;多进程的时间相关性研究; 任务的分配与调度;缓存的错误共享;一致性访问研究;进程间 通信;多处理器核内部资源竞争等。 在单核处理器中,常见调度策略有先来先服务(FCFS)、最短作 业调度(SJF)等,而对于多核处理器系统调度来讲,目前还没 有明确的标准与规范。如何处理好负载均衡问题是多核处理器系 统调度策略的关键所在。为解决该问题,可以考虑:共同就绪 队列,是所有处理器公用一个就绪队列;选择一个处理器来为 其他处理器调度,即创建主从结构。但以上方法都存在很大的弊 端,目前,仍然没有找到十分成熟的CMP调度算法。二、操作系统对多核处理器的支持方法二、操作系统对多核处理器的支持方法1.1.调度与中断调度与中断 高级编程中断控制器APIC(Advanced Programmable Interrupt Controllers)是基于中断控制器分散在两个基础功能单元本 地单元以及I/O单元的分布式体系结构。在多核系统中,多个本地 和I/O APIC单元能够作为一个整体通过ICC总线互相操作。 APIC发挥的功能有:(1)接受来自处理器中断引脚中的内部或外部I/O APIC的中断,然后将这些中断发送给处理器核处理。(2)在多核处理器系统中,接收发送核内中断消息。二、操作系统对多核处理器的支持方法二、操作系统对多核处理器的支持方法1.1.调度与中断调度与中断 多核体系处理器中,必须将中断处理分发给一组核处理。当系统 中有多个核在并行执行时,必须有一个能够接收到的中断分发给 能够提供服务的核的机制。 虚拟化技术:是指对计算机资源进行的抽象,是在系统、应 用或用户与资源进行交互时,对计算机资源的物理特性进行 隐藏的一种技术。二、操作系统对多核处理器的支持方法二、操作系统对多核处理器的支持方法2.2.虚拟化技术虚拟化技术 分类:(1)平台虚拟化:由指定硬件平台上的宿主软件来实行,为 其他软件提供一个模拟的计算机环境。其他软件通常都是完 整的操作系统,就像安装在独立的硬件平台上一样运行。(2)资源虚拟化:它是被扩展到具体系统资源的虚拟化,它 涉及资源的合并、划分以及简化的模拟等作用。 线程:线程:它是进程上下文中执行的代码序列,又称为“轻量级”进程。 它负责在单个程序里执行多任务。 多线程:它是为了使得多个线程并行的工作以完成多项任务,以 提高系统的效率。线程是在同一时间需要完成多项任务的时候被 实现的。三、多线程简介三、多线程简介1.1.多线程的概念多线程的概念 多线程机制的优点:(1)创建一个线程比创建一个进程的代价小。(2)线程的切换比进程间切换的代价小。(3)充分利用多处理器。(4)数据共享。(5)快速响应特性。用户级线程:有关线程的所有管理工作都由在用户级实现的线程库来支 持。用户级线程库是用于用户级线程管理的例程包,支持线程的创建、 终止等工作。对于那些内核本身不支持多线程的操作系统,通过用户级 线程库可以使用户获得多线程编程的好处。但由于内核不能感知到用户 级线程的存在,内核仍然以进程为单位进行调度,因而用户级线程的并 行性会受到一定的限制。 内核级线程:内核级线程的所有管理操作都由操作系统内核完成的,内 核保存线程的状态和上下文信息。在多处理器系统上,内核可以分派属 于同一进程的多个线程在多个处理器上运行,提高进程执行的并行度。三、多线程简介三、多线程简介2.2.用户级线程和内核级线程用户级线程和内核级线程由于需要内核完成线程的创建、调度和管理功能,所以和用户级线程相 比这些操作要慢得多,但是仍然比进程的创建和管理操作要快。市场上 大多数的操作系统,如Windows 2000、Solaris 2、Linux等都支持内核 级线程。 对于实现了用户级线程和内核级线程的操作系统,用户级线 程和内核级线程之间的可以有不同的映射方式: 多对一模型 多对一模型把多个用户级线程映射到一个内核级线程。 线程的管理在用户空间实现,所以效率高。 当一个线程因调用系统调用被阻塞时,整个进程被阻塞。 一对一模型 一对一模型把每个用户级线程影射到一个内核级线程。 当一个线程阻塞时,其他线程仍然可以运行。 多对多模型 多对多模型将m个用户级线程影射到n个内核级线程,mn。 用户可以创建所需要的用户级线程,通过分配适当数目的内核级线 程获得并发执行的优势并节省系统资源。三、多线程简介三、多线程简介3.3.多线程的映射模型多线程的映射模型 线程有4个基本状态: 就绪(ready):线程等待可用的处理器。 运行(running):线程正在被执行。 阻塞(blocked):线程正在等待某个事件的发生。 终止(terminated):线程从起始函数中返回或者调用pthread_exit。三、多线程简介三、多线程简介4.4.线程的状态线程的状态三、多线程简介三、多线程简介4.4.线程的状态线程的状态线程状态的转换图 为了提高指令级和线程级并行性,研究人员曾提出过两 种不同于单核处理器的结构单片多处理器(CMP)和 同时多线程处理器(SMT) CMP是指由在单个芯片上的多个处理器核所构成的多处 理器系统。 SMT结构的基本思想是:在一个时钟周期内发射多个线程 的指令到功能部件上执行,SMT的优势是结合了超标量和 多线程处理器的特点。四、多核多线程处理器简介四、多核多线程处理器简介1.1.多核多线程处理器多核多线程处理器 多核多线程处理器是通过支持单片多处理器(CMP)和 同时多线程处理器(SMT)的组合来实现的。多核多线 程处理器由多个简单的同时多线程处理器核构成,它 提供了一种更加简单有效的方法去提高集成度。 它不同于超标量处理器通过硬件来提取指令级的并 行, 多核多线程处理器可以提供一种线程级的并行 。 它由多个简单的同时多线程处理器构成,所以它拥有 单片多处理器主频高、设计和验证时间短的优势,又 拥有同时多线程资源利用率高的优势,从而大大提高 程序的运行效率。四、多核多线程处理器简介四、多核多线程处理器简介1.1.多核多线程处理器多核多线程处理器 提高存储系统性能的问题是处理器性能进一步提高的主 要障碍,学术界和工业界对此都极为关注。由于多核多 线程技术是最近才提出来的新技术,所以相关的研究还 较少。但是,多核多线程技术是通过将CMP(片上多处理) 和SMT(同时多线程)技术的组合来实现的,因此现有的一 些解决CMP和SMT存储访问延迟的技术也可以应用到多核 多线程处理器的设计上去。四、多核多线程处理器简介四、多核多线程处理器简介2.2.多核多线程处理器存储系统研究现状多核多线程处理器存储系统研究现状 国际上几所在多核多线程系统研究领域有影响的研究单位:国际上几所在多核多线程系统研究领域有影响的研究单位:SUN研究院、美国的Stanford大学、California大学、Pennsylvania大学、 North Carolina 大学、加拿大的Toronto大学、西班牙的Catalonia科技 大学等。 国内对线程级并行的研究:国内对线程级并行的研究:国防科技大学进行了一系列关于多线程技术的研究, 提出了前瞻性多线程系统结 构SMA 有机地结合前瞻性执行和多线程技术。中国科技大学提出了一种用cache存放线程现场的多线程实现技术,其核心思想 是改造多机系统中的cache 系统,将其分割成两个部分:一部分仍用作原来意义上 的cache ,另一部分则用来存放数个线程的现场。中科院计算所进行了低功耗SMT体系结构的研究,围绕高性能、低功耗这两个目 标讨论和探究SMT体系结构的基本思想、设计技术、低功耗考虑以及编译器和操 作系统设计应注意和对待的新问题。西北工业大学提出了双路径执行的置信度估计算法DCR算法,提出了线程预构的 思想。四、多核多线程处理器简介四、多核多线程处理器简介2.2.多核多线程处理器存储系统研究现状多核多线程处理器存储系统研究现状 目前研究多核多线程处理器存储系统的热点主要有: 通过分析多核多线程处理器的动态指令流特性,研 究多核多线程处理器结构的线程调度策略和指令调度 策略; 多核多线程处理器指令预取技术的研究; L1 cache、L2 cache、专用cache技术研究; 多核多线程处理器存储系统仿真模型的研究等。四、多核多线程处理器简介四、多核多线程处理器简介3.3.多核多线程处理器存储系统的研究热点多核多线程处理器存储系统的研究热点 主要观点1:对于多核多线程处理器中的每个同时多线程处理器 核,为了增加指令执行的并行性,提高资源的利用率和吞吐率,必然 要引入分支预测技术和乱序发射的推测执行技术。四、多核多线程处理器简介四、多核多线程处理器简介3.3.多核多线程处理器存储系统的研究热点多核多线程处理器存储系统的研究热点 主要观点2:在超标量处理器中比较适用的预取策略在多核多线 程处理器中不一定适用。 主要观点3:cache的引入是存储系统中最基本也是最有效的解决 这个问题的方法。 主要观点4:对于L2 cache,通常有两种结构,私有L2 cache和共 享L2 cache 。 主要观点5:为了提高处理器资源利用率,减少访存压力,需要 设置一些专用cache 。THE END谢谢!
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号