为什么要采用多核呢?如果设计一款两倍于原来大小的处理器,性能并会不增加到原来的两倍,性能大概只会作平方根的增长,所以尺寸加倍并不会带来同等数量级的性能增长,只会带来大概1.4倍于原来的性能,即增长40%。这个被称为Pollack定律(由英特尔工程师FredPollack定义),在单核系统中已经得到了证明。而芯片制造商力图采用多个核心来提高性能和速度提升的系数。
但设计一个多核系统面临一些新的挑战。
通信的鸿沟
核心之间的通信也许是最关键的问题,因为在一些系统中会起到至关重要的作用。无需特别的测量,一般通信量的增加与核心的数量n是一个二次方程(n+1)*n/2的关系,因此一个四核系统在通信数据量上相比单核系统会有成十倍的增加,一个16核系统会增加到原来的136倍,一个256核系统会增加超过32,000倍!因此一个核心之间的灵活的通信系统对于多核系统的工作是最基本的。
有几个解决方案是采用中心存储器来缓冲,不过当所有的处理器核都与存储器进行内部通信时就会出现问题。一般会采用信息包开关网络或其他架构。
我们可以做一个有趣的类比,假设这是一个人类组织,如果人数增多,交流就会变得困难,甚至会带来瓶颈。如果是一个2个人或4个人的小团体,交流起来就简单得多,如果人数超过20个或更多,就需要一个更有效的交流架构,比如每周例会、技术小组等等。
实践表明一个6到8个人的小组是最为有效的。更大的小组需要合理的架构和其他形式的咨询和协作。在多核系统中也是一样的道理。
人为设计因素
人为设计因素同样会影响多核系统的架构。在1990年我曾经在荷兰埃因霍温作个一个技术讲演,我将设计分解为一个一个的模块和模块之间的互联。同样,连接的数目也同模块数是一个二次方程的关系。
解决复杂问题的方法是应用和归纳概念的能力。这里,一些元件被看成是宏元件。
自下而上的设计,简单的分解和构造各个元件直到达到最基本的构成--逻辑门或是运算单元,例如,采用分级的方法,复杂的二次方程问题可以简化为线性问题。
在设计一个多核系统中完成通信和设计复杂性的管理,选择合适的架构、设计思想、工具的应用等等都非常重要。
功耗的平衡
降低多核系统的功耗和散热处理是工程师面临的另一个主要的问题。降低功耗可以通过限制每个核心的运算来实现,称为"voltagescaling"--每个核心的频率和供电电压可以根据每个处理核的任务运算两来进行功耗优化。
另一个要考虑的因素是可以由进程推断的并行处理的数量,如果并行运算很少,采用多核来处理也就没有什么优势。
多线程是处理并行运算的一个方法。在通信处理器里面写软件是另一个方法。这些技术由特殊的运算支持,以维持系统的精确度和一致性。
资讯排行
- 投资超1万亿元,广东省2025年狠抓1500个重大建设项目
- 常州新能源科技服务专家行工作会在常州大学召开
- 交运部加快制定氢气道路运输技术规范标准 相关仪器如何积极响应?
- 北京发布重点领域设备贷款贴息实施草案 重大仪器以旧换新如何享受政策
- 杭州出台支持智能机器人产业发展政策 政府全力支持相关仪器发展要点有哪些?
- 中国氢能发展获政策持续加码 相关仪器如何做好替代能源发展的护航者
- 湖南发布中央引导地方科技发展资金第一批拟立项项目公示 仪器发展如何明确未来方向
- 设备更新贷款获政府贴息延长政策支持 仪器发展获持续增长点
- 商务部支持耐用消费品以旧换新 家电行业获有利政策哪些仪器有望快速发展?
- 液相色谱材料龙头企业赛分科技成功登陆上交所!
- 公斤力矩扳手怎样换算成N.m
- 无畏无惧:深入中国市场发展 聚力同心共创佳绩
- 高压隔离开关的导电部分和绝缘部分知识介绍
- 美国PARKER气缸磨损分析原因
- 河北大学管理学院北京校友会成立,北京中显霍刚荣任联席会长