为什么要采用多核呢?如果设计一款两倍于原来大小的处理器,性能并会不增加到原来的两倍,性能大概只会作平方根的增长,所以尺寸加倍并不会带来同等数量级的性能增长,只会带来大概1.4倍于原来的性能,即增长40%。这个被称为Pollack定律(由英特尔工程师FredPollack定义),在单核系统中已经得到了证明。而芯片制造商力图采用多个核心来提高性能和速度提升的系数。
但设计一个多核系统面临一些新的挑战。
通信的鸿沟
核心之间的通信也许是最关键的问题,因为在一些系统中会起到至关重要的作用。无需特别的测量,一般通信量的增加与核心的数量n是一个二次方程(n+1)*n/2的关系,因此一个四核系统在通信数据量上相比单核系统会有成十倍的增加,一个16核系统会增加到原来的136倍,一个256核系统会增加超过32,000倍!因此一个核心之间的灵活的通信系统对于多核系统的工作是最基本的。
有几个解决方案是采用中心存储器来缓冲,不过当所有的处理器核都与存储器进行内部通信时就会出现问题。一般会采用信息包开关网络或其他架构。
我们可以做一个有趣的类比,假设这是一个人类组织,如果人数增多,交流就会变得困难,甚至会带来瓶颈。如果是一个2个人或4个人的小团体,交流起来就简单得多,如果人数超过20个或更多,就需要一个更有效的交流架构,比如每周例会、技术小组等等。
实践表明一个6到8个人的小组是最为有效的。更大的小组需要合理的架构和其他形式的咨询和协作。在多核系统中也是一样的道理。
人为设计因素
人为设计因素同样会影响多核系统的架构。在1990年我曾经在荷兰埃因霍温作个一个技术讲演,我将设计分解为一个一个的模块和模块之间的互联。同样,连接的数目也同模块数是一个二次方程的关系。
解决复杂问题的方法是应用和归纳概念的能力。这里,一些元件被看成是宏元件。
自下而上的设计,简单的分解和构造各个元件直到达到最基本的构成--逻辑门或是运算单元,例如,采用分级的方法,复杂的二次方程问题可以简化为线性问题。
在设计一个多核系统中完成通信和设计复杂性的管理,选择合适的架构、设计思想、工具的应用等等都非常重要。
功耗的平衡
降低多核系统的功耗和散热处理是工程师面临的另一个主要的问题。降低功耗可以通过限制每个核心的运算来实现,称为"voltagescaling"--每个核心的频率和供电电压可以根据每个处理核的任务运算两来进行功耗优化。
另一个要考虑的因素是可以由进程推断的并行处理的数量,如果并行运算很少,采用多核来处理也就没有什么优势。
多线程是处理并行运算的一个方法。在通信处理器里面写软件是另一个方法。这些技术由特殊的运算支持,以维持系统的精确度和一致性。
资讯排行
- 买不起触摸版MacBook?其实用iPad也能体验
- 珀金埃尔默新型QSight™ 三重四极杆液质联用仪帮助分析实验室实现高灵敏度、高通量和高效率样品分析进程
- 村田适用于车载以太网BroadR-Reach的静噪元件
- LTE-V2V协议冻结 开启汽车智能网联市场大幕
- Hexiwear,一款可以编程的手表
- 三美电机开发出小型MEMS压阻式数字压力传感器
- 借助新型60V FemtoFET MOSFET缩小工业元件占位面积
- Maxim发布业界最小八通道高边驱动器MAX14913,全面提升工业4.0应用体验
- 安森美半导体扩展CMOS 图像传感器PYTHON系列,推出紧凑的SVGA器件
- 大数据时代的核心:超高速短距离光互联
- 七大不可思议 盘点3D打印机技术惊奇应用
- 拍子弹时间不是问题!超高速抓拍单电点评
- 打电话上网全能 超低价3G通讯平板推荐
- 双城记(长崎&东京) 三桥NEX-5R日本游记之三
- 蒸汽朋克再袭 四款DIY达人USB产品秀