我们知道现在的 CPU 至少都是两个核心以上的 多核心CPU 了,但是 Intel 还有个很怪的东西,叫做 CPU 的超线程 (Hyper-Threading) 功能!我们知道现在的 CPU 指令周期都太快了,因此 运算核心 经常处于闲置状态下。
而我们也知道现在的 系统大多都是 多任务的系统, 同时间有很多的程序会让 CPU 来执行。因此,若 CPU 可以假象的同时执行两个程序,不就可以让系统效能增加了吗?反正 CPU 的运算能力还是没有用完啊!那是怎么达成的啊这个 HT 功能?在每一个 CPU 内部将重要的 缓存器 (register) 分成两群, 而让程序分别使用这两群 缓存器。也就是说,可以有两个程序『同时竞争 CPU 的运算单元』,而非透过操作系统的多任务切换! 这一过程就会让 CPU 好像『同时有两个核心』的模样!因此,虽然大部分 i7 等级的 CPU 其实只有四个实体核心,但透过HT 的机制, 则操作系统可以抓到八个核心!并且让每个核心逻辑上分离,就可以同时运作八个程序了。
虽然很多研究与测试中,大多发现 HT 虽然可以提升效能,不过,有些情况下却可能导致效能降低
喔!因为,实际上明明就仅有一个运算单元嘛! 不过在鸟哥使用数值模式的情况下,因为鸟哥操作
的数值模式主要为平行运算功能,且运算通常无法达到 100% 的 CPU 使用率,通常仅有大约 60%
运算量而已。 因此在鸟哥的实作过程中,这个 HT 确实提升相当多的效能!至少应该可以节省鸟哥
大约 30%~50%的等待时间!不过网络上大家的研究中, 大多说这个是 case by case(具体问题具体分析),而且使用的
软件影响很大!所以,在鸟哥的例子是启用 HT 帮助很大!您的案例就得要自行研究啰!
一个ALU对应多个register和pc