片上处理器与多核系统

多线程支持多个线程以重叠方式共享单个处理的功能单元,但是开发线程级并行的一般方法是使用多处理器。

实现多线程的硬件方法主要有三种:

  1. 细粒度多线程, Fine-grained (interleaved) multithreading,每个时钟周期之间执行一个进程切换,采用轮询的方式。好处是:能够隐藏长短停顿而导致的吞吐损失;不足是:减缓了个体进程的执行速度。
  2. 粗粒度多线程, Coarse-grained multithreading,仅发生在成本较高的停顿时才切换进程,克服吞吐量损失的能力十分有限。
  3. 同步多线程SMT,Simultaneous multithreading ,是细粒度多线程的更进一步,指令集可以在相同周期在多个线程中进行切换。

处理器能力的差异:不支持多线程的超标量——支持粗粒度多线程的超标量——支持细粒度多线程的超标量——支持同步多线程的超标量。
超标量:

A A A
A A A A
A A
A A

粗粒度:

A A A
A A A A
A A
B B B
B B B B
B B B B B

细粒度:

A A A
B B B B
A A
B B B B B
A A A

同步多线程:

A A A B B B
B B B B A A
A B B B B B
B B B A A A
A A A
B B B A A

CMP和SMT

CMP,片上多处理器,将多个计算内核集成在一个处理器芯片上,从而提高计算能力。
SMT 比CMP的资源利用率高,在克服延迟方面具有优势。

多核SMT和单核SMT

单核SMT:指令级别的并行,为了更快的执行任务必须增加时钟频率,能耗和热损非常大,越来越耗时的设计;
多核SMT:线程级别的并行,在同一个芯片上集成多核。

你可能感兴趣的:(计算机体系结构)