CPU的核心和线程的定义
[*]一个进程可以包含多个线程,多个进程就有更多的线程。当CPU只有一个物理核心时,同一时间只能运行一个线程,对多线程是通过分时处理,不断地切换运行线程,来达到宏观上“同时”运行多个线程的目的。
[*]多个核心就能同时运行多个线程,只要线程数不大于核心数,就不需要分时处理,是真正的同时。实际上桌面系统中,启动时就会运行上百个进程,线程数量更多。不过大部分线程处于等待和休眠状态,不消耗CPU时间,大部分桌面用户只需要一个“前台”程序流畅运行,因此桌面CPU只要有1~8个核心就可以很好地满足要求。
[*]“超线程”是把一个物理核心分成多个逻辑核心的技术。一个物理核心中有很多种不同类型的处理单元,比如计算加法的、计算除法的、访问内存的、处理分支跳转的……没有任何指令流可以使所有类型的单元都同时满负载。为了把空闲的单元利用起来,就把一个物理核心变成一到多个逻辑核心,每个逻辑核心可以运行不同的线程,提高了物理核心的利用率。
[*]CPU的单核性能等于“频率×IPC”,IPC是每个时钟周期可以执行指令的数量。由于每条指令所需的时钟周期不一定相同,IPC通常是指运行测试程序得到的平均值。现代CPU由于增加了乱序执行、分支预测等等技术,IPC的波动就更大。现在通常使用SPEC CPU等程序评估(测试)CPU性能,把单核的得分换算成1GHz频率时的成绩称为PPC,也可以仍然称为IPC。两款CPU如果PPC(IPC)一样,那么肯定是频率越高越好,否则就不能单独比较GHz谁更大。
[*]PPC和IPC可以用于衡量CPU核心的设计水平,而CPU频率既被核心逻辑设计影响,更受后端设计的布局布线和生产工艺影响。奔腾(Pentium)4的PPC(IPC)不到11代酷睿的1/5,因此在相同频率下奔腾(Pentium)4的单核性能不到11代酷睿的1/5。在这种情况下,11代酷睿只需要800MHz的频率,单核心就能比4.0GHz的奔腾(Pemtium)4更快。
[*]现代CPU仍然可以继续提高频率,但在技术没有革新之前,边际效应会造成提高频率的代价远远高于收获。比如高昂的CPU研发成本、高昂的工艺研发成本、高频率带来的高功耗问题……都会大幅度提高产品成本和使用成本。CPU的PPC(IPC)也已经触摸到了边际,要不然英特尔也不会挤那么多年的牙膏,现在又做出大小核的妥协。
[*]国产CPU的频率和PPC(IPC)都与世界最高水平有一段距离。总的来说提高IPC更烧脑子,提高频率更烧钱。只能自负盈亏的龙芯CPU选择了烧脑子的路线,重点提高PPC(IPC),相同频率性能已经与4~6代酷睿相当,频率保持稳中有升。兆芯和飞腾的PPC(IPC)则多年没有提升,已经落后到仅略高于龙芯3A5000的1/2。几代产品都是依靠更先进的工艺提高频率,然而它们最高的产品频率也只比龙芯3A5000高0.1~0.2GHz,导致龙芯4核的CPU与兆芯和飞腾8核的CPU整体性能相当。
[*]个人认为,即使先进工艺不受限制,也有充足的资金,国产CPU也仍然应该把提高PPC(IPC)作为重心。因为我们无论花多少代价,桌面和服务器CPU的频率也不太可能在20年内赶超Intel。但是主要依靠烧脑子的CPU核心设计,我们是有望数年内赶上Intel水平的。龙芯3A5000的PPC(IPC)已超11代酷睿的80%,下一代3A6000同频性能将于11代酷睿持平。而兆芯和飞腾的PPC(IPC)仅11代酷睿的45%左右,还有很大的提升空间。
页:
[1]