`
hilyhoo
  • 浏览: 13693 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

多核、多线程的引入

阅读更多

引言:

对应着处理器从单核到多处理器及多核,操作系统的发展历程中,从进程演化到线程、多线程。于是,我们会想到这些问题:

1、为什么微处理要从单核转向多核?

功耗问题 限制了单核处理器不断提高性能的发展途径:


作为计算机核心,影响计算机性能高低的核心部件就是处理器。反映在指令上就是处理器执行指令的效率。
  处理器性能 = 主频 x IPC
可以看出,衡量处理器性能的主要指标是每个时钟周期内可以执行的指令数(IPC)和处理器的主频。


因此,提高处理器性能就是两个途径:

提高主频和提高每个时钟周期内执行的指令数(IPC)。

1)处理器微架构的变化可以改变IPC,效率更高的微架构可以 提高IPC从而提高处理器的性能。但是,对于同一代的架构,改良架构来提高IPC的幅度是非常有限的,所以在单核处理器时代通过提高处理器的主频来提高性 能就成了唯一的手段。


2)然而,给处理器提高主频不是没有止境的,从下面的推导中可以看出,处理器的功耗和处理器内部的电流、电压的平方和主频成正比,而主频和电压成正比。
  处理器功耗 正比于 电流 x 电压 x 电压 x 主频

主频 正比于 电压
  处理器功耗 正比于 主频的三次方


3)如果通过提高主频来提高处理器的性能,就会使处理器的功耗以三次方非线性(一次方) 的速度急剧上升,很快就会触及frequency wall。过快的能耗上升,需要寻找提高处理器性能的因子,提高IPC。

  提高IPC可以通过提高指令执行的并行度来实现,而提高并行度有两种途径:一是提高处理器微架构的并行度;二是采用多核架构。

  在采用同样的微架构的情况下,为了达到处理器IPC的目的,我们可以采用多核的方法,同时有效地控制功耗的急剧上升。
  处理器功耗 正比于 电流x 电压 x 电压 x 主频

IPC 正比于 电流
  处理器功耗 正比于 IPC

  由单核处理器增加到双核处理器,如果主频不变的话,IPC理论上可以提高一倍,功耗理论上也就最多提高一倍,因为功耗的增加是线性的。而实际情况是, 双核处理器性能达到单核处理器同等性能的时候,前者的主频可以更低,因此功耗的下降也是三次方下降 的。反映到产品中就是双核处理器的起跳主频可以比单核处理器更低,性能更好。

  由此可见,将来处理器发展的趋势是:为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。这样设计的效果是,更多的并行提高IPC,较低的主频有效地控制了功耗的上升。

2、为什么提出线程?

其目的有二:

1)如上面所提到的,更好的支持SMP和多核:进程在SMP上可以同时使用多个cpu或者核执行各个线程,很好的支持并行。
2)减小上下文切换的开销:同一进程的线程共享资源、状态记录等;实现同类任务的内存块共享,对逻辑内存重用,而进程间只能实现对物理内存的分时共享。

3、线程模型

针对上述两大目的,相应的提出了两大线程模型 :用户级线程和核心级线程;分类的标准在于线程的调度者在核内还是核外。
其中,核内的可以实现并发;核外的使得上下文切换开销更小。

1、核心以线程为单位,控制线程的分发调度;
2、单纯的用户线程的调度全部在核外实现,只需完成线程运行栈的切换,但由于核心信号都以进程为单位,无法定位到线程,因此不能用于多处理器系统。

于是,现在的大多操作系统不是采用单一的线程模型,而是将两个模型结合起来,譬如Solaris和Linux]都是采用这样的混合模型

1、提供核心线程,高层包括基本抽象,如硬件状态和软件上下文,满足SMP;
2、支持线程库,一个核心线程成为多个用户线程的调度者,进而减小了上下文开销。每个用户线程可以独立于该进程的其他线程进行调度执行。
这个模型中,一个进程的某个线程(内核线程)由核内调度,而他又可以调度用户线程。其目的是保证内核负载最小的条件下,一个进程可以创建大量用户线程,为并发提供条件。
分享到:
评论

相关推荐

    英特尔多核多线程技术

    ### 英特尔多核多线程技术解析 #### 一、多核多线程技术概览 在当今计算领域,多核多线程技术已成为提高计算机性能的关键手段之一。随着计算机硬件技术的进步,传统的单核心处理器已经难以满足日益增长的数据处理...

    英特尔多核-多线程技术

    在大数据分析、科学计算、3D渲染等高性能计算领域,多核多线程技术能够显著减少计算时间,提高工作效率。 然而,多核多线程技术并非没有挑战。编程时需要考虑如何有效地分配任务到各个核心,以避免线程间的竞争条件...

    炉边夜话---多核多线程杂谈

    - **未来趋势**:随着多核处理器成为主流,掌握多核多线程编程技术变得越来越重要。预计未来几年,处理器的核心数量将继续增加,使得并发编程成为提高程序性能的关键因素。 - **学习资源**:为了适应这一变化,...

    多核多线程处理器存储技术研究进展

    ### 多核多线程处理器存储技术研究进展 #### 摘要与背景介绍 近年来,随着集成电路制造工艺水平的迅速提升以及计算机体系结构设计的进步,微处理器领域迎来了线程级并行的新时代。线程级并行技术作为下一代高性能...

    intel英特尔多核_多线程技术中文版

    从最初的电子管计算机到现在的多核多线程处理器,每一次技术革新都极大地推动了计算机性能的进步。 **第一代计算机(1946~1958)——电子管时代** 这一时期的计算机使用电子管作为基本元件,如著名的ENIAC计算机。...

    多核多线程处理器上任务调度技术研究的开题报告.pdf

    多核多线程处理器的任务调度技术是现代计算机系统性能优化的关键环节。随着计算机技术的快速发展,多核多线程处理器已经成为提升计算效率、降低功耗的有效解决方案。然而,要充分发挥其潜能,必须深入理解其基本原理...

    多核多线程处理器二级Cache预取结构的设计.pdf

    随着科技的不断进步,多核多线程处理器在现代计算机系统中的应用变得越来越广泛。在这一背景下,如何优化处理器性能,尤其是在提升二级Cache的效率方面,成为了研究者和工程师们关注的焦点。本文即针对多核多线程...

    英特尔多核/多线程技术-资料汇集

    多线程编程虽然带来了性能提升,但也引入了诸如竞态条件、死锁、活锁、饥饿等问题。这些问题通常与资源访问控制、线程间的通信和同步有关。解决这些挑战的方法包括合理使用同步原语,避免共享状态,使用线程局部存储...

    多核多线程处理器XLR732的多核间通信.pdf

    多核多线程处理器XLR732是一种融合了单片多处理器(CMP)和同时多线程(SMT)技术的创新处理器架构,旨在通过提高指令级并行性和线程级并行性来实现更高的性能提升。XLR732处理器在单一芯片上集成了多个处理器核心,...

    多核多线程下java设计模式性能提升.zip

    在现代计算机系统中,多核处理器已经成为主流,Java作为一款广泛应用的编程语言,其在多核多线程环境下的性能优化至关重要。Java设计模式在这样的背景下扮演着关键角色,能够帮助开发者有效地利用多核资源,提升软件...

    面向实时流处理的多核多线程处理器访存队列.pdf

    本文主要探讨了针对实时流处理的多核多线程处理器中的内存请求队列设计,以优化内存带宽并确保实时性。在多核多线程处理器中,内存访问是性能的关键瓶颈,特别是对于实时流处理应用,需要高效地调度内存请求以满足...

    基于粒子群算法的多核处理器线程调度研究.pdf

    【标题】: "基于粒子群算法的多核处理器线程调度研究" 【描述】: 本文探讨了如何利用粒子群优化...未来的研究可能集中在进一步改进PSO算法,例如引入更多智能优化技术,以适应更复杂的多核架构和动态变化的系统需求。

    通信与网络中的RMI多核多线程XLR处理器应用到Allot通信服务网关

    这种多核多线程技术的引入,使得Allot Service Gateway能够满足服务供应商执行特定应用策略的需求,比如流量管理、QoS(服务质量)设定、网络安全以及新服务的快速部署。通过P2P通信量控制,网络监控,以及对潜在...

    多核和单核中多线程及单线程的特点

    多线程带来了更高效的资源利用,但也引入了新的挑战。线程间通信和同步是关键问题。例如,当多个线程访问同一数据时,可能需要锁机制来防止数据不一致。死锁、活锁和饥饿是多线程编程中的常见问题,需要谨慎设计线程...

    多线程与多核编程.pdf

    线程之间的通信和资源共享使得多线程编程带来了更高的执行效率,但同时也引入了同步、排队和资源竞争的问题,如死锁、数据竞争等,需要程序员进行妥善处理。 13.1.2 进程与线程的比较 进程拥有独立的资源,包括...

Global site tag (gtag.js) - Google Analytics