我已经看到在同一主板上有两个处理器的新电脑。 同一主板上的两个处理器如何正常工作,因为它会像两个大脑一样(试图)控制一个主体,实际上他们如何执行并行处理,它实际上是这样吗?并行处理实际上可能吗?
4
A
回答
7
有其决定,如果两个(或更多)的CPU /内核要访问同一资源谁胜的规则。通常,一个CPU将尝试稍后访问它,因此它将不得不等待。如果两个CPU实际上想要在同一时间访问相同的资源,那么这些规则将确保获胜。今天,规则已变得相当复杂,以确保一个CPU无法占用资源(耗尽另一个)。
缓存就是一个非常复杂的一部分;每个CPU都会将部分真实RAM复制到其高速缓存中。这意味着如果CPU 1在其缓存中具有地址X并且CPU 2读取或写入该地址,则可能发生有趣的事情。解决这个问题的技术是地址嗅探(CPU 1告知哪些地址是CPU 2想要查看并发送信号以告诉它该地址的内容现在无效),RAM分段(CPU不能实际看到大部分内存,所以这个问题实际上只有很小的重叠),或者是一个特殊的高速缓存总线,CPU的高速缓存彼此交谈(“我只是读这个地址”,“我在写X该地址“)。
这是一个非常复杂的领域,它变得更加复杂与每一天。据我们所知,这是继续保持Moore's Law几年的唯一方法。
欲了解更多详情,请参阅Wikipedia article。
相关问题
- 1. 哪个XSLT处理器实际上利用了并行处理?
- 2. 可以实现并行处理吗?
- 3. 并行计算,f#和GPU并行处理可能解决的一些实际问题
- 4. Python3实际上并没有处理进程
- 5. jquery.validate dateISO:这实际上可用吗?
- 6. Windows上的Cygwin的SSH ControlMaster实际上可行吗?
- 7. 理论上,find_end可并行化吗?
- 8. 功能,但实际上没有可用
- 9. `<-`实际上比`=`慢吗?
- 10. after_commit实际运行吗?
- 11. Azure上的并行处理
- 12. 我可以使用多处理进行并行化吗?
- 13. 只能在一个处理器上进行运行只能在其他处理器上运行线程吗?
- 14. “动态”模板 - 处理它时可以更改实际的模板吗?
- 15. 在HTTP处理程序中实例化Silverlight控件,...可能吗?
- 16. 核心数据处理创建实际的数据库吗?
- 17. 批处理Freebase API调用可能吗?
- 18. 可能用Saxon处理XHTML吗?
- 19. WordPress可以处理这些功能吗?
- 20. 使DIV接受并通过JavaScript处理丢弃可能吗?
- 21. 可以使用Map Reduce和Hadoop来并行处理批处理作业吗?
- 22. 多线程可以在单处理器系统上实现吗?
- 23. 并行处理
- 24. 并行处理
- 25. AVAudioUnitEQ实际上可以在iOS上使用吗?
- 26. 实际上代理键的实现表
- 27. 我可以在Spring上处理POJO吗?
- 28. Python,如何实现并行处理
- 29. 实现服务激活并行处理
- 30. 我可以将图像处理与PLINQ并行吗?
似乎更像是一个关于计算机设计而不是编程的问题。 –
嗯...它没有编程相关? – Xinus
选择一个不同的隐喻,它变得更容易理解。假设一个办公室有两个秘书和一台计算机,文件柜,复印机等。显然,如果两个人都想使用相同的设备,他们必须轮流工作,但如果他们想使用不同的设备,他们可以并行工作。这就是并行处理的原因。有很多时候,他们都在使用(或做)不同的事情。 – tvanfosson