多核与多线程技术的区别到底在哪里?
处理器,执行一个线程到一半若想改执行另一个线程,就必须将原线程、现线程的相关内容与信息搬迁到快取或内存,然后自快取及内存引入另一个线程,由于此一搬转颇耗时,所以多半选择将原有的线程执行完再引入下一个线程,如此在时间上可能还比较经济。然而无论一线程完整执行后再执行下一个线程,还是进行线程的进出搬迁转移,都不会比具备多线程能力的处理器来的快速有效。
至此我们可以归纳整理:
1.多核、多处理器系统中的每颗处理器(每个核),同时间内可以执行各自不同的行程(或线程)。
2.一颗多线程能力的处理器,无论是支持二线程、四线程、八线程,这些线程都必须是在同一个行程内,所以一颗处理器(一个核)还是只能执行一个行程,双核处理器就能够同时执行两个不同的行程(或线程),四核就可以同时不同的四个行程(或线程)。
3.倘若是执行不支持多线程的程序,其执行上的分拆最多只到行程而未到线程,那么每颗处理器内的多线程功效就无从发挥,而这类的程序历史较长久,相对的原生支持多线程的程序历史较短,不过信息技术的脚步向来进展快速,两种不同层次的支持仅差距数年时间。
产业实际发展可为证明
真的是多核优于、先于多线程吗?关于此可通过产业实际发展做为应证,Sun的UltraSPARC T1处理器(研发代号:Niagara)是八核四线程的设计,但接续的UltraSPARC T2处理器(研发代号:Niagara 2)则是八核八线程的设计,所以是核多、核优先,然后再来拉跋、提升线程的执行。
同样的,IBM为Microsoft Xbox 360所设计的Xenon处理器,是个三核二线程的设计,核数依然是高于线程数,又如IBM、Sony、Toshiba三家业者合研的Cell处理器,现有第一代的Cell(研发代号:DD1)是九核,组态上是八核媒体(SPE)、一核泛用(PPE),新一代的Cell(研发代号:DD2)也针对PPE的部分进行双线程发展,如此再次表示核比线程重要,当Cell仅进行增一线程的扩展改进时,而非再增一核,即可知这仅是一次小幅的改进。
"多核"、"多线程"之外 还有"多令"、"多机"
最后,且让我们谈谈与多核、多线程不同加速走向的"多令","多令"是笔者发明的词,指的是比执行行程(Process)、线程(Thread)更基底层次的执行指令(Instruction),多核的作法是尽可能在同时间内执行多个行程,多令则是尽可能在同时间内执行多个指令,学术上的VLIW与产业上的EPIC皆是多令理念下的架构。
到目前为止多令并非不可行,但仅行于数字信号、图像等处理,绘图芯片、媒体处理器等多实行VLIW架构,然多令在泛用运算上却未见效益,至于科学研究之类的高效运算也倾向使用更高层次的平行:多机(丛集、网格,执行范畴与分配类同于线程、行程),看来多令、多程/线程、多机各有所用,端看运用场合的适切性。
- 展望未来 多核DSP技术不仅仅是小把戏(04-03)
- Windows操作系统多核CPU内核线程管理方法(01-21)
- 嵌入式多媒体多核应用软件设计框架(11-30)
- 多核DSP Bootloader 代码加载方法(01-12)
- 多核处理器设计的要素(01-12)
- 基于多核DSP Bootload代码加载方法研究(01-16)
