并发和并行
并发(concurrency):处理器同时做多件事。
并行(parallelism):用并发的方式加速系统的运行。
线程级并发
- 多核
单核处理器通过多个进程之间的不断跳转,模拟出并发。
多核处理器是将多个 CPU(称为“核”)集成到一个集成电路芯片上。
-
超线程技术
它涉及 CPU 某些硬件有多个备份。比如两个程序计数器和寄存器文件。
常规的处理器需要大约20 000 个时钟周期做不同线程间的转换,而超线程的处理器可以在单个周期的基础上决定要执行哪一个线程。比如,一个线程必须等到某些数据被装载到高速缓存中,那么此时 CPU 就可以继续去执行另一个线程。 -
多核和超线程技术从两个方面提高了系统性能
(1)减少了在执行多个任务时模拟并发的需要。
(2)能利用多线程的程序运行速度更快。
指令级并行
指令级并行:现代处理器可以同时执行多条指令的属性。
每条指令从开始到结束大约 20 个或者更多周期,但是处理器采用流水线(pipelining)模式,将执行一条指令所需要的活动划分成不同的步骤,将处理器的硬件组织成一系列的阶段,每个阶段执行一个步骤。这些阶段可以并行地操作,用来处理不同指令的不同部分。
单指令、多数据并行(待补充)
单指令、多数据并行:允许一条指令产生多个可以并行执行的操作