自从IBM于2000年以180奈米铜导线搭绝缘硅(SOI)制程打造Power4(双核)以来,多核心处理器的发展就备受关注,但那时在通用用户使用方面还是不被接受,一是价格太高,而是软件相关支持差,所以一般还是在服务器上。但是,现在大家可以看到,非多核非主流,AMD,INTEL等主流的都是2-8核心的cpu,可见多核的普及多么迅速,同时2009年10月27日, 来自美国硅谷的多核心处理器厂商Tilera今天宣布推出全球第一款核心数量多达100个的微处理器“TILE-Gx100”,提前应证了多核芯片之父称2012将现百核CPU的说法。这只是PC方面,在嵌入式方面,多核也进入高速发展阶段,一是以ARM为主的CPU,二是以TI为主DSP等。ARM已经推出了ARM11 MPCORE,和Cortex-A9 MPCORE两种多核处理器,而TI和freescale在多核DSP方面已经推出一段时间了,刚刚推出OMAP4430等OMAP4系列就会使用Cortex™-A9 MPCore+DSP。同时去年Nvidia推出了多核Tegra芯片,今年推出了产品,这款芯片的口号是“Computer in a chip",一个电脑都在一个芯片上,可见这个芯片有多么强大,现在这个系列的芯片已经有10个核心了,它这个是异构的,使用了ARM11 MP和Geforce图形渲染处理器,及音频处理器,图形处理器等,但是其功耗却只有1W,这个是ATOM的1/10,这个一推出,就掀起了netbook,MID的风暴,估计对NetBook,MID将有极大推动作用,现在到google一搜估计就可以发现99美元MID的普天盖地的消息。
在当前软件仍然不够充分支持多核的情况下,那么多核真的有这么大用吗,需要用吗?我摘了一片文章,觉的有道理。
摘自周伟明的文章:
多核时代,很重要的一点就是要将多个CPU核同时运转起来,提高CPU的利用率,说得专业一点就是要提高多核CPU的加速比系数。
但是并不是任何时候都可以同时将多个核运转起来,比如一些不能并行化执行的代码,特别是使用了锁的代码,它的执行是串行化的,无法同时利用多个核,还有负载平衡问题,多个任务无法划分得很均匀,导致实际情况中有些任务先运行完,有些任务后运行完,先运行完的CPU核就处于空闲状态。
是不是任何时候都需要将多个核利用到极致呢?答案是否定的,比如一个服务器软件,如果只有一个客户端连接过来,那么只要用一个核来处理这个请求已经绰绰有余了,何必非要同时将多个核同时运行起来呢? 再比如在客户端软件中,客户做了一个操作后,机器只是进行一个时间非常短的运算就结果返回给用户,然后机器处于空闲状态直到用户的下一次操作为止,在这种情况下,由于机器运算量很小,一个核进行运算完全能够满足用户所需的性能需求,就没有必要同时利用多个核进行运算,因为很小的计算量情况下,多个核同时运行效率可能还不如一个核。
既然有那么多情况下不需要多个核同时进行运算,那么买多核的机器干什么? 这不由得将CPU和内存比较起来,比如装了一个2G内存的机器,其实很多情况下是不可能将2G的内存都用完的,但是当运行一些大的应用,或者玩一些大型游戏的情况下,内存就基本上都利用上了,其实以后用多核CPU可能就象用内存一样,并不是任何时候都需要将所有的CPU核都用上的,只有计算量很大的情况下才需要完全利用多个CPU核来进行计算,也就是说全部的CPU核主要是为计算达到一定规模时才全部使用的,当然这个计算规模随CPU核数的不同而不同。
当然使用CPU和使用内存并不是完全相同的,因为现在软件规模越来越大,大多数计算的规模是可以达到为多核而使用的,因为软件规模会随着CPU核数的增加而同步增长,大部分情况下多个CPU核都是可以充分利用上的,而内存则不一样,不论是客户端机还是服务器,可能大部分时候内存利用率并不是很高,只有少数高峰时候才能将内存全部用上。
这个就是他说的:像使用内存一样使用CPU
阅读(1108) | 评论(0) | 转发(0) |