并发和并行

并发(concurrency):处理器同时做多件事。
并行(parallelism):用并发的方式加速系统的运行。

线程级并发

  1. 多核
    单核处理器通过多个进程之间的不断跳转,模拟出并发。
    多核处理器是将多个 CPU(称为“核”)集成到一个集成电路芯片上。

并发和并行

  1. 超线程技术
    它涉及 CPU 某些硬件有多个备份。比如两个程序计数器和寄存器文件。
    常规的处理器需要大约20 000 个时钟周期做不同线程间的转换,而超线程的处理器可以在单个周期的基础上决定要执行哪一个线程。比如,一个线程必须等到某些数据被装载到高速缓存中,那么此时 CPU 就可以继续去执行另一个线程。

  2. 多核和超线程技术从两个方面提高了系统性能
    (1)减少了在执行多个任务时模拟并发的需要。
    (2)能利用多线程的程序运行速度更快。

指令级并行

指令级并行:现代处理器可以同时执行多条指令的属性。

每条指令从开始到结束大约 20 个或者更多周期,但是处理器采用流水线(pipelining)模式,将执行一条指令所需要的活动划分成不同的步骤,将处理器的硬件组织成一系列的阶段,每个阶段执行一个步骤。这些阶段可以并行地操作,用来处理不同指令的不同部分。

单指令、多数据并行(待补充)

单指令、多数据并行:允许一条指令产生多个可以并行执行的操作