应用程序真正利用桌面上多个核心进行单独使用的能力与英特尔之间存在长期的紧张关系。早在首次引入MMX和随后引入超线程(虚拟多个核心)以及真正的核心时,单用户系统对多个核心的场景并不多。我们宣布转向ARM时,英特尔(以及许多科技评论员)对ARM的一个主要批评就是缺乏多个核心。 有很多理论上的想法。英特尔通过Office提出了从拼写检查、视频会议、电子邮件搜索到图像压缩/解压缩(当JPEG刚出现时)以及表格重新计算等各种功能。我们在Office中有很多“后台”任务(本质上是手动编码的虚拟多进程模型),但将它们改造成多线程/多核心的工作与我们使用的空闲时间相比,付出的努力很大,而收益却很小。我们还发现,为线程/多个处理器架构设计最终在内存和/或代码复杂性上成本相当高。 最终,个人的工作速度也有限。像拼写这样的真正重要的事情并不是特别困难。 通常,像视频编解码或打印这样的最有趣的场景,最终被转移到专用处理器上,或者变得不那么重要。 浏览(作为一个应用程序)受益于安全性、隔离性,当然,对于复杂页面(代码、图像等)的页面加载也得到了现代处理器架构的优化。有些人可能会争辩说这些被过度使用以获得好处。这种情况发生在新技术扩散时。 有一些系统范围的事情受益于可靠性和真正的后台处理,这变得非常重要——例如本地内容索引或浏览。但随着时间的推移,这些本地处理变得不那么重要。 与许多事情一样,开发人员对他们自己的工具和工作有许多用途,这扭曲了这一场景的重要性。我们的开发人员总是在进行其他工作(浏览)时在后台运行多个构建和测试。像这些高度I/O绑定的过程显著受益于多个核心/进程/线程。 是的,总有办法做到这一点,但最终将所有精力投入到图形上会更好,这就是我们一直告诉英特尔的,直到图形成为英特尔无法兴奋的更专业的处理器。